From 22dd71da0884265490a6310aa29e72bfb93e050e Mon Sep 17 00:00:00 2001 From: a-bochilo <103776395+a-bochilo@users.noreply.github.com> Date: Mon, 10 Jul 2023 07:16:56 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20master=20from=20@=20CodeCavePr?= =?UTF-8?q?o/codecave-website-client@483a37a0cdd64085c6ca11e61fbbf29f94318?= =?UTF-8?q?18e=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 404.html | 4 ++-- 404/index.html | 4 ++-- _gatsby/slices/_gatsby-scripts-1.html | 4 ++-- blog/6689ffd5-2f85-591d-9c08-c4ee78d10a23/index.html | 4 ++-- blog/6ab9aa62-087e-5384-9ea4-f33ef27f2ec2/index.html | 4 ++-- blog/a930c9c2-79fa-5b34-9dd9-6451ccc28467/index.html | 4 ++-- blog/b2ffcc60-69e6-5663-80d7-d9c1b58e7267/index.html | 4 ++-- blog/d718ed05-a72f-5791-afb2-3dd8e56285c5/index.html | 4 ++-- blog/f0770dd2-9b48-5099-9f6c-cdb6ca213648/index.html | 4 ++-- blog/index.html | 4 ++-- blog/page/1/index.html | 4 ++-- blog/page/2/index.html | 4 ++-- chunk-map.json | 2 +- ...ent---src-pages-index-tsx-51c4d6c78f0455be8e64.js | 2 ++ ...--src-pages-index-tsx-51c4d6c78f0455be8e64.js.map | 1 + ...ent---src-pages-index-tsx-8f11132d55ccda45c143.js | 2 -- ...--src-pages-index-tsx-8f11132d55ccda45c143.js.map | 1 - ...---src-pages-services-tsx-004b5c906bc78a1f96ae.js | 2 ++ ...rc-pages-services-tsx-004b5c906bc78a1f96ae.js.map | 1 + ...---src-pages-services-tsx-ad089d9c65e0d5421453.js | 2 -- ...rc-pages-services-tsx-ad089d9c65e0d5421453.js.map | 1 - ...-pages-templates-blog-tsx-2739ab3251f03f4eb07f.js | 2 ++ ...es-templates-blog-tsx-2739ab3251f03f4eb07f.js.map | 1 + ...-pages-templates-blog-tsx-3e928f3e8cb34f3b7e4c.js | 2 -- ...es-templates-blog-tsx-3e928f3e8cb34f3b7e4c.js.map | 1 - ...-pages-templates-post-tsx-7f7e2c93fcb41ce4f82f.js | 2 ++ ...es-templates-post-tsx-7f7e2c93fcb41ce4f82f.js.map | 1 + ...-pages-templates-post-tsx-f2b5783ab45f7133a802.js | 2 -- ...es-templates-post-tsx-f2b5783ab45f7133a802.js.map | 1 - ...es-templates-projects-tsx-75dd824378dedee3ee1b.js | 2 ++ ...emplates-projects-tsx-75dd824378dedee3ee1b.js.map | 1 + ...es-templates-projects-tsx-bc2345c3e66bde0622dc.js | 2 -- ...emplates-projects-tsx-bc2345c3e66bde0622dc.js.map | 1 - ...---src-pages-workflow-tsx-66c85385336912fb7c37.js | 2 -- ...rc-pages-workflow-tsx-66c85385336912fb7c37.js.map | 1 - ...---src-pages-workflow-tsx-71ff73d9d1233d63de8e.js | 2 ++ ...rc-pages-workflow-tsx-71ff73d9d1233d63de8e.js.map | 1 + index.html | 12 ++++++------ page-data/app-data.json | 2 +- page-data/sq/d/2239467241.json | 2 +- page-data/sq/d/687265830.json | 2 +- .../2df68c09-ccd8-5c98-8c7b-df6ed596ab7b/index.html | 4 ++-- .../444bdbbc-cac8-564e-99a5-aef7520a42fb/index.html | 4 ++-- .../641cda9e-7e00-5704-9d96-9c89f2b1b76f/index.html | 4 ++-- .../bcb90cf1-0e2a-5f23-a891-0c2ed8948cbc/index.html | 4 ++-- projects/index.html | 4 ++-- projects/page/1/index.html | 4 ++-- services/index.html | 4 ++-- webpack-runtime-462cd70edcbbeae08639.js | 2 ++ ...ap => webpack-runtime-462cd70edcbbeae08639.js.map | 2 +- webpack-runtime-9d58aaf54df1d848a0ab.js | 2 -- webpack.stats.json | 2 +- workflow/index.html | 6 +++--- 53 files changed, 73 insertions(+), 73 deletions(-) create mode 100644 component---src-pages-index-tsx-51c4d6c78f0455be8e64.js create mode 100644 component---src-pages-index-tsx-51c4d6c78f0455be8e64.js.map delete mode 100644 component---src-pages-index-tsx-8f11132d55ccda45c143.js delete mode 100644 component---src-pages-index-tsx-8f11132d55ccda45c143.js.map create mode 100644 component---src-pages-services-tsx-004b5c906bc78a1f96ae.js create mode 100644 component---src-pages-services-tsx-004b5c906bc78a1f96ae.js.map delete mode 100644 component---src-pages-services-tsx-ad089d9c65e0d5421453.js delete mode 100644 component---src-pages-services-tsx-ad089d9c65e0d5421453.js.map create mode 100644 component---src-pages-templates-blog-tsx-2739ab3251f03f4eb07f.js create mode 100644 component---src-pages-templates-blog-tsx-2739ab3251f03f4eb07f.js.map delete mode 100644 component---src-pages-templates-blog-tsx-3e928f3e8cb34f3b7e4c.js delete mode 100644 component---src-pages-templates-blog-tsx-3e928f3e8cb34f3b7e4c.js.map create mode 100644 component---src-pages-templates-post-tsx-7f7e2c93fcb41ce4f82f.js create mode 100644 component---src-pages-templates-post-tsx-7f7e2c93fcb41ce4f82f.js.map delete mode 100644 component---src-pages-templates-post-tsx-f2b5783ab45f7133a802.js delete mode 100644 component---src-pages-templates-post-tsx-f2b5783ab45f7133a802.js.map create mode 100644 component---src-pages-templates-projects-tsx-75dd824378dedee3ee1b.js create mode 100644 component---src-pages-templates-projects-tsx-75dd824378dedee3ee1b.js.map delete mode 100644 component---src-pages-templates-projects-tsx-bc2345c3e66bde0622dc.js delete mode 100644 component---src-pages-templates-projects-tsx-bc2345c3e66bde0622dc.js.map delete mode 100644 component---src-pages-workflow-tsx-66c85385336912fb7c37.js delete mode 100644 component---src-pages-workflow-tsx-66c85385336912fb7c37.js.map create mode 100644 component---src-pages-workflow-tsx-71ff73d9d1233d63de8e.js create mode 100644 component---src-pages-workflow-tsx-71ff73d9d1233d63de8e.js.map create mode 100644 webpack-runtime-462cd70edcbbeae08639.js rename webpack-runtime-9d58aaf54df1d848a0ab.js.map => webpack-runtime-462cd70edcbbeae08639.js.map (98%) delete mode 100644 webpack-runtime-9d58aaf54df1d848a0ab.js diff --git a/404.html b/404.html index a860948b..d274fffe 100644 --- a/404.html +++ b/404.html @@ -5,6 +5,6 @@ <script id="gatsby-chunk-mapping" > - window.___chunkMapping="{\"app\":[\"/app-0be32afa8722358651ed.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-985104a1d001afc81f25.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-8f11132d55ccda45c143.js\"],\"component---src-pages-services-tsx\":[\"/component---src-pages-services-tsx-ad089d9c65e0d5421453.js\"],\"component---src-pages-templates-blog-tsx\":[\"/component---src-pages-templates-blog-tsx-3e928f3e8cb34f3b7e4c.js\"],\"component---src-pages-templates-post-tsx\":[\"/component---src-pages-templates-post-tsx-f2b5783ab45f7133a802.js\"],\"component---src-pages-templates-project-tsx\":[\"/component---src-pages-templates-project-tsx-808e529df29d8bdea686.js\"],\"component---src-pages-templates-projects-tsx\":[\"/component---src-pages-templates-projects-tsx-bc2345c3e66bde0622dc.js\"],\"component---src-pages-workflow-tsx\":[\"/component---src-pages-workflow-tsx-66c85385336912fb7c37.js\"]}"; + window.___chunkMapping="{\"app\":[\"/app-0be32afa8722358651ed.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-985104a1d001afc81f25.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-51c4d6c78f0455be8e64.js\"],\"component---src-pages-services-tsx\":[\"/component---src-pages-services-tsx-004b5c906bc78a1f96ae.js\"],\"component---src-pages-templates-blog-tsx\":[\"/component---src-pages-templates-blog-tsx-2739ab3251f03f4eb07f.js\"],\"component---src-pages-templates-post-tsx\":[\"/component---src-pages-templates-post-tsx-7f7e2c93fcb41ce4f82f.js\"],\"component---src-pages-templates-project-tsx\":[\"/component---src-pages-templates-project-tsx-808e529df29d8bdea686.js\"],\"component---src-pages-templates-projects-tsx\":[\"/component---src-pages-templates-projects-tsx-75dd824378dedee3ee1b.js\"],\"component---src-pages-workflow-tsx\":[\"/component---src-pages-workflow-tsx-71ff73d9d1233d63de8e.js\"]}"; </script> - <script>window.___webpackCompilationHash="2552ca4b597845d70de8";</script><script src="/webpack-runtime-9d58aaf54df1d848a0ab.js" async></script><script src="/framework-e4f3e98283dd6d5d8e77.js" async></script><script src="/app-0be32afa8722358651ed.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html> \ No newline at end of file + <script>window.___webpackCompilationHash="2282541953a94831106d";</script><script src="/webpack-runtime-462cd70edcbbeae08639.js" async></script><script src="/framework-e4f3e98283dd6d5d8e77.js" async></script><script src="/app-0be32afa8722358651ed.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html> \ No newline at end of file diff --git a/404/index.html b/404/index.html index d53251bc..2496aebb 100644 --- a/404/index.html +++ b/404/index.html @@ -5,6 +5,6 @@ <script id="gatsby-chunk-mapping" > - window.___chunkMapping="{\"app\":[\"/app-0be32afa8722358651ed.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-985104a1d001afc81f25.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-8f11132d55ccda45c143.js\"],\"component---src-pages-services-tsx\":[\"/component---src-pages-services-tsx-ad089d9c65e0d5421453.js\"],\"component---src-pages-templates-blog-tsx\":[\"/component---src-pages-templates-blog-tsx-3e928f3e8cb34f3b7e4c.js\"],\"component---src-pages-templates-post-tsx\":[\"/component---src-pages-templates-post-tsx-f2b5783ab45f7133a802.js\"],\"component---src-pages-templates-project-tsx\":[\"/component---src-pages-templates-project-tsx-808e529df29d8bdea686.js\"],\"component---src-pages-templates-projects-tsx\":[\"/component---src-pages-templates-projects-tsx-bc2345c3e66bde0622dc.js\"],\"component---src-pages-workflow-tsx\":[\"/component---src-pages-workflow-tsx-66c85385336912fb7c37.js\"]}"; + window.___chunkMapping="{\"app\":[\"/app-0be32afa8722358651ed.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-985104a1d001afc81f25.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-51c4d6c78f0455be8e64.js\"],\"component---src-pages-services-tsx\":[\"/component---src-pages-services-tsx-004b5c906bc78a1f96ae.js\"],\"component---src-pages-templates-blog-tsx\":[\"/component---src-pages-templates-blog-tsx-2739ab3251f03f4eb07f.js\"],\"component---src-pages-templates-post-tsx\":[\"/component---src-pages-templates-post-tsx-7f7e2c93fcb41ce4f82f.js\"],\"component---src-pages-templates-project-tsx\":[\"/component---src-pages-templates-project-tsx-808e529df29d8bdea686.js\"],\"component---src-pages-templates-projects-tsx\":[\"/component---src-pages-templates-projects-tsx-75dd824378dedee3ee1b.js\"],\"component---src-pages-workflow-tsx\":[\"/component---src-pages-workflow-tsx-71ff73d9d1233d63de8e.js\"]}"; </script> - <script>window.___webpackCompilationHash="2552ca4b597845d70de8";</script><script src="/webpack-runtime-9d58aaf54df1d848a0ab.js" async></script><script src="/framework-e4f3e98283dd6d5d8e77.js" async></script><script src="/app-0be32afa8722358651ed.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html> \ No newline at end of file + <script>window.___webpackCompilationHash="2282541953a94831106d";</script><script src="/webpack-runtime-462cd70edcbbeae08639.js" async></script><script src="/framework-e4f3e98283dd6d5d8e77.js" async></script><script src="/app-0be32afa8722358651ed.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html> \ No newline at end of file diff --git a/_gatsby/slices/_gatsby-scripts-1.html b/_gatsby/slices/_gatsby-scripts-1.html index 67cc2f46..45460391 100644 --- a/_gatsby/slices/_gatsby-scripts-1.html +++ b/_gatsby/slices/_gatsby-scripts-1.html @@ -2,6 +2,6 @@ <script id="gatsby-chunk-mapping" > - window.___chunkMapping="{\"app\":[\"/app-0be32afa8722358651ed.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-985104a1d001afc81f25.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-8f11132d55ccda45c143.js\"],\"component---src-pages-services-tsx\":[\"/component---src-pages-services-tsx-ad089d9c65e0d5421453.js\"],\"component---src-pages-templates-blog-tsx\":[\"/component---src-pages-templates-blog-tsx-3e928f3e8cb34f3b7e4c.js\"],\"component---src-pages-templates-post-tsx\":[\"/component---src-pages-templates-post-tsx-f2b5783ab45f7133a802.js\"],\"component---src-pages-templates-project-tsx\":[\"/component---src-pages-templates-project-tsx-808e529df29d8bdea686.js\"],\"component---src-pages-templates-projects-tsx\":[\"/component---src-pages-templates-projects-tsx-bc2345c3e66bde0622dc.js\"],\"component---src-pages-workflow-tsx\":[\"/component---src-pages-workflow-tsx-66c85385336912fb7c37.js\"]}"; + window.___chunkMapping="{\"app\":[\"/app-0be32afa8722358651ed.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-985104a1d001afc81f25.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-51c4d6c78f0455be8e64.js\"],\"component---src-pages-services-tsx\":[\"/component---src-pages-services-tsx-004b5c906bc78a1f96ae.js\"],\"component---src-pages-templates-blog-tsx\":[\"/component---src-pages-templates-blog-tsx-2739ab3251f03f4eb07f.js\"],\"component---src-pages-templates-post-tsx\":[\"/component---src-pages-templates-post-tsx-7f7e2c93fcb41ce4f82f.js\"],\"component---src-pages-templates-project-tsx\":[\"/component---src-pages-templates-project-tsx-808e529df29d8bdea686.js\"],\"component---src-pages-templates-projects-tsx\":[\"/component---src-pages-templates-projects-tsx-75dd824378dedee3ee1b.js\"],\"component---src-pages-workflow-tsx\":[\"/component---src-pages-workflow-tsx-71ff73d9d1233d63de8e.js\"]}"; </script> - <script>window.___webpackCompilationHash="2552ca4b597845d70de8";</script><script src="/webpack-runtime-9d58aaf54df1d848a0ab.js" async></script><script src="/framework-e4f3e98283dd6d5d8e77.js" async></script><script src="/app-0be32afa8722358651ed.js" async></script> \ No newline at end of file + <script>window.___webpackCompilationHash="2282541953a94831106d";</script><script src="/webpack-runtime-462cd70edcbbeae08639.js" async></script><script src="/framework-e4f3e98283dd6d5d8e77.js" async></script><script src="/app-0be32afa8722358651ed.js" async></script> \ No newline at end of file diff --git a/blog/6689ffd5-2f85-591d-9c08-c4ee78d10a23/index.html b/blog/6689ffd5-2f85-591d-9c08-c4ee78d10a23/index.html index 0fe4c2c4..5aedd5b7 100644 --- a/blog/6689ffd5-2f85-591d-9c08-c4ee78d10a23/index.html +++ b/blog/6689ffd5-2f85-591d-9c08-c4ee78d10a23/index.html @@ -5,6 +5,6 @@ <script id="gatsby-chunk-mapping" > - window.___chunkMapping="{\"app\":[\"/app-0be32afa8722358651ed.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-985104a1d001afc81f25.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-8f11132d55ccda45c143.js\"],\"component---src-pages-services-tsx\":[\"/component---src-pages-services-tsx-ad089d9c65e0d5421453.js\"],\"component---src-pages-templates-blog-tsx\":[\"/component---src-pages-templates-blog-tsx-3e928f3e8cb34f3b7e4c.js\"],\"component---src-pages-templates-post-tsx\":[\"/component---src-pages-templates-post-tsx-f2b5783ab45f7133a802.js\"],\"component---src-pages-templates-project-tsx\":[\"/component---src-pages-templates-project-tsx-808e529df29d8bdea686.js\"],\"component---src-pages-templates-projects-tsx\":[\"/component---src-pages-templates-projects-tsx-bc2345c3e66bde0622dc.js\"],\"component---src-pages-workflow-tsx\":[\"/component---src-pages-workflow-tsx-66c85385336912fb7c37.js\"]}"; + window.___chunkMapping="{\"app\":[\"/app-0be32afa8722358651ed.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-985104a1d001afc81f25.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-51c4d6c78f0455be8e64.js\"],\"component---src-pages-services-tsx\":[\"/component---src-pages-services-tsx-004b5c906bc78a1f96ae.js\"],\"component---src-pages-templates-blog-tsx\":[\"/component---src-pages-templates-blog-tsx-2739ab3251f03f4eb07f.js\"],\"component---src-pages-templates-post-tsx\":[\"/component---src-pages-templates-post-tsx-7f7e2c93fcb41ce4f82f.js\"],\"component---src-pages-templates-project-tsx\":[\"/component---src-pages-templates-project-tsx-808e529df29d8bdea686.js\"],\"component---src-pages-templates-projects-tsx\":[\"/component---src-pages-templates-projects-tsx-75dd824378dedee3ee1b.js\"],\"component---src-pages-workflow-tsx\":[\"/component---src-pages-workflow-tsx-71ff73d9d1233d63de8e.js\"]}"; </script> - <script>window.___webpackCompilationHash="2552ca4b597845d70de8";</script><script src="/webpack-runtime-9d58aaf54df1d848a0ab.js" async></script><script src="/framework-e4f3e98283dd6d5d8e77.js" async></script><script src="/app-0be32afa8722358651ed.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html> \ No newline at end of file + <script>window.___webpackCompilationHash="2282541953a94831106d";</script><script src="/webpack-runtime-462cd70edcbbeae08639.js" async></script><script src="/framework-e4f3e98283dd6d5d8e77.js" async></script><script src="/app-0be32afa8722358651ed.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html> \ No newline at end of file diff --git a/blog/6ab9aa62-087e-5384-9ea4-f33ef27f2ec2/index.html b/blog/6ab9aa62-087e-5384-9ea4-f33ef27f2ec2/index.html index d11c43c5..d1622b80 100644 --- a/blog/6ab9aa62-087e-5384-9ea4-f33ef27f2ec2/index.html +++ b/blog/6ab9aa62-087e-5384-9ea4-f33ef27f2ec2/index.html @@ -141,6 +141,6 @@ <h3>Part 2</h3> <script id="gatsby-chunk-mapping" > - window.___chunkMapping="{\"app\":[\"/app-0be32afa8722358651ed.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-985104a1d001afc81f25.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-8f11132d55ccda45c143.js\"],\"component---src-pages-services-tsx\":[\"/component---src-pages-services-tsx-ad089d9c65e0d5421453.js\"],\"component---src-pages-templates-blog-tsx\":[\"/component---src-pages-templates-blog-tsx-3e928f3e8cb34f3b7e4c.js\"],\"component---src-pages-templates-post-tsx\":[\"/component---src-pages-templates-post-tsx-f2b5783ab45f7133a802.js\"],\"component---src-pages-templates-project-tsx\":[\"/component---src-pages-templates-project-tsx-808e529df29d8bdea686.js\"],\"component---src-pages-templates-projects-tsx\":[\"/component---src-pages-templates-projects-tsx-bc2345c3e66bde0622dc.js\"],\"component---src-pages-workflow-tsx\":[\"/component---src-pages-workflow-tsx-66c85385336912fb7c37.js\"]}"; + window.___chunkMapping="{\"app\":[\"/app-0be32afa8722358651ed.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-985104a1d001afc81f25.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-51c4d6c78f0455be8e64.js\"],\"component---src-pages-services-tsx\":[\"/component---src-pages-services-tsx-004b5c906bc78a1f96ae.js\"],\"component---src-pages-templates-blog-tsx\":[\"/component---src-pages-templates-blog-tsx-2739ab3251f03f4eb07f.js\"],\"component---src-pages-templates-post-tsx\":[\"/component---src-pages-templates-post-tsx-7f7e2c93fcb41ce4f82f.js\"],\"component---src-pages-templates-project-tsx\":[\"/component---src-pages-templates-project-tsx-808e529df29d8bdea686.js\"],\"component---src-pages-templates-projects-tsx\":[\"/component---src-pages-templates-projects-tsx-75dd824378dedee3ee1b.js\"],\"component---src-pages-workflow-tsx\":[\"/component---src-pages-workflow-tsx-71ff73d9d1233d63de8e.js\"]}"; </script> - <script>window.___webpackCompilationHash="2552ca4b597845d70de8";</script><script src="/webpack-runtime-9d58aaf54df1d848a0ab.js" async></script><script src="/framework-e4f3e98283dd6d5d8e77.js" async></script><script src="/app-0be32afa8722358651ed.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html> \ No newline at end of file + <script>window.___webpackCompilationHash="2282541953a94831106d";</script><script src="/webpack-runtime-462cd70edcbbeae08639.js" async></script><script src="/framework-e4f3e98283dd6d5d8e77.js" async></script><script src="/app-0be32afa8722358651ed.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html> \ No newline at end of file diff --git a/blog/a930c9c2-79fa-5b34-9dd9-6451ccc28467/index.html b/blog/a930c9c2-79fa-5b34-9dd9-6451ccc28467/index.html index 035c5215..c57300c0 100644 --- a/blog/a930c9c2-79fa-5b34-9dd9-6451ccc28467/index.html +++ b/blog/a930c9c2-79fa-5b34-9dd9-6451ccc28467/index.html @@ -117,6 +117,6 @@ <h3>Part 2</h3> <script id="gatsby-chunk-mapping" > - window.___chunkMapping="{\"app\":[\"/app-0be32afa8722358651ed.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-985104a1d001afc81f25.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-8f11132d55ccda45c143.js\"],\"component---src-pages-services-tsx\":[\"/component---src-pages-services-tsx-ad089d9c65e0d5421453.js\"],\"component---src-pages-templates-blog-tsx\":[\"/component---src-pages-templates-blog-tsx-3e928f3e8cb34f3b7e4c.js\"],\"component---src-pages-templates-post-tsx\":[\"/component---src-pages-templates-post-tsx-f2b5783ab45f7133a802.js\"],\"component---src-pages-templates-project-tsx\":[\"/component---src-pages-templates-project-tsx-808e529df29d8bdea686.js\"],\"component---src-pages-templates-projects-tsx\":[\"/component---src-pages-templates-projects-tsx-bc2345c3e66bde0622dc.js\"],\"component---src-pages-workflow-tsx\":[\"/component---src-pages-workflow-tsx-66c85385336912fb7c37.js\"]}"; + window.___chunkMapping="{\"app\":[\"/app-0be32afa8722358651ed.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-985104a1d001afc81f25.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-51c4d6c78f0455be8e64.js\"],\"component---src-pages-services-tsx\":[\"/component---src-pages-services-tsx-004b5c906bc78a1f96ae.js\"],\"component---src-pages-templates-blog-tsx\":[\"/component---src-pages-templates-blog-tsx-2739ab3251f03f4eb07f.js\"],\"component---src-pages-templates-post-tsx\":[\"/component---src-pages-templates-post-tsx-7f7e2c93fcb41ce4f82f.js\"],\"component---src-pages-templates-project-tsx\":[\"/component---src-pages-templates-project-tsx-808e529df29d8bdea686.js\"],\"component---src-pages-templates-projects-tsx\":[\"/component---src-pages-templates-projects-tsx-75dd824378dedee3ee1b.js\"],\"component---src-pages-workflow-tsx\":[\"/component---src-pages-workflow-tsx-71ff73d9d1233d63de8e.js\"]}"; </script> - <script>window.___webpackCompilationHash="2552ca4b597845d70de8";</script><script src="/webpack-runtime-9d58aaf54df1d848a0ab.js" async></script><script src="/framework-e4f3e98283dd6d5d8e77.js" async></script><script src="/app-0be32afa8722358651ed.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html> \ No newline at end of file + <script>window.___webpackCompilationHash="2282541953a94831106d";</script><script src="/webpack-runtime-462cd70edcbbeae08639.js" async></script><script src="/framework-e4f3e98283dd6d5d8e77.js" async></script><script src="/app-0be32afa8722358651ed.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html> \ No newline at end of file diff --git a/blog/b2ffcc60-69e6-5663-80d7-d9c1b58e7267/index.html b/blog/b2ffcc60-69e6-5663-80d7-d9c1b58e7267/index.html index d90df1a0..edbfe722 100644 --- a/blog/b2ffcc60-69e6-5663-80d7-d9c1b58e7267/index.html +++ b/blog/b2ffcc60-69e6-5663-80d7-d9c1b58e7267/index.html @@ -117,6 +117,6 @@ <h3>Part 2</h3> <script id="gatsby-chunk-mapping" > - window.___chunkMapping="{\"app\":[\"/app-0be32afa8722358651ed.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-985104a1d001afc81f25.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-8f11132d55ccda45c143.js\"],\"component---src-pages-services-tsx\":[\"/component---src-pages-services-tsx-ad089d9c65e0d5421453.js\"],\"component---src-pages-templates-blog-tsx\":[\"/component---src-pages-templates-blog-tsx-3e928f3e8cb34f3b7e4c.js\"],\"component---src-pages-templates-post-tsx\":[\"/component---src-pages-templates-post-tsx-f2b5783ab45f7133a802.js\"],\"component---src-pages-templates-project-tsx\":[\"/component---src-pages-templates-project-tsx-808e529df29d8bdea686.js\"],\"component---src-pages-templates-projects-tsx\":[\"/component---src-pages-templates-projects-tsx-bc2345c3e66bde0622dc.js\"],\"component---src-pages-workflow-tsx\":[\"/component---src-pages-workflow-tsx-66c85385336912fb7c37.js\"]}"; + window.___chunkMapping="{\"app\":[\"/app-0be32afa8722358651ed.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-985104a1d001afc81f25.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-51c4d6c78f0455be8e64.js\"],\"component---src-pages-services-tsx\":[\"/component---src-pages-services-tsx-004b5c906bc78a1f96ae.js\"],\"component---src-pages-templates-blog-tsx\":[\"/component---src-pages-templates-blog-tsx-2739ab3251f03f4eb07f.js\"],\"component---src-pages-templates-post-tsx\":[\"/component---src-pages-templates-post-tsx-7f7e2c93fcb41ce4f82f.js\"],\"component---src-pages-templates-project-tsx\":[\"/component---src-pages-templates-project-tsx-808e529df29d8bdea686.js\"],\"component---src-pages-templates-projects-tsx\":[\"/component---src-pages-templates-projects-tsx-75dd824378dedee3ee1b.js\"],\"component---src-pages-workflow-tsx\":[\"/component---src-pages-workflow-tsx-71ff73d9d1233d63de8e.js\"]}"; </script> - <script>window.___webpackCompilationHash="2552ca4b597845d70de8";</script><script src="/webpack-runtime-9d58aaf54df1d848a0ab.js" async></script><script src="/framework-e4f3e98283dd6d5d8e77.js" async></script><script src="/app-0be32afa8722358651ed.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html> \ No newline at end of file + <script>window.___webpackCompilationHash="2282541953a94831106d";</script><script src="/webpack-runtime-462cd70edcbbeae08639.js" async></script><script src="/framework-e4f3e98283dd6d5d8e77.js" async></script><script src="/app-0be32afa8722358651ed.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html> \ No newline at end of file diff --git a/blog/d718ed05-a72f-5791-afb2-3dd8e56285c5/index.html b/blog/d718ed05-a72f-5791-afb2-3dd8e56285c5/index.html index 4b6a9430..51c07b18 100644 --- a/blog/d718ed05-a72f-5791-afb2-3dd8e56285c5/index.html +++ b/blog/d718ed05-a72f-5791-afb2-3dd8e56285c5/index.html @@ -5,6 +5,6 @@ <script id="gatsby-chunk-mapping" > - window.___chunkMapping="{\"app\":[\"/app-0be32afa8722358651ed.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-985104a1d001afc81f25.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-8f11132d55ccda45c143.js\"],\"component---src-pages-services-tsx\":[\"/component---src-pages-services-tsx-ad089d9c65e0d5421453.js\"],\"component---src-pages-templates-blog-tsx\":[\"/component---src-pages-templates-blog-tsx-3e928f3e8cb34f3b7e4c.js\"],\"component---src-pages-templates-post-tsx\":[\"/component---src-pages-templates-post-tsx-f2b5783ab45f7133a802.js\"],\"component---src-pages-templates-project-tsx\":[\"/component---src-pages-templates-project-tsx-808e529df29d8bdea686.js\"],\"component---src-pages-templates-projects-tsx\":[\"/component---src-pages-templates-projects-tsx-bc2345c3e66bde0622dc.js\"],\"component---src-pages-workflow-tsx\":[\"/component---src-pages-workflow-tsx-66c85385336912fb7c37.js\"]}"; + window.___chunkMapping="{\"app\":[\"/app-0be32afa8722358651ed.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-985104a1d001afc81f25.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-51c4d6c78f0455be8e64.js\"],\"component---src-pages-services-tsx\":[\"/component---src-pages-services-tsx-004b5c906bc78a1f96ae.js\"],\"component---src-pages-templates-blog-tsx\":[\"/component---src-pages-templates-blog-tsx-2739ab3251f03f4eb07f.js\"],\"component---src-pages-templates-post-tsx\":[\"/component---src-pages-templates-post-tsx-7f7e2c93fcb41ce4f82f.js\"],\"component---src-pages-templates-project-tsx\":[\"/component---src-pages-templates-project-tsx-808e529df29d8bdea686.js\"],\"component---src-pages-templates-projects-tsx\":[\"/component---src-pages-templates-projects-tsx-75dd824378dedee3ee1b.js\"],\"component---src-pages-workflow-tsx\":[\"/component---src-pages-workflow-tsx-71ff73d9d1233d63de8e.js\"]}"; </script> - <script>window.___webpackCompilationHash="2552ca4b597845d70de8";</script><script src="/webpack-runtime-9d58aaf54df1d848a0ab.js" async></script><script src="/framework-e4f3e98283dd6d5d8e77.js" async></script><script src="/app-0be32afa8722358651ed.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html> \ No newline at end of file + <script>window.___webpackCompilationHash="2282541953a94831106d";</script><script src="/webpack-runtime-462cd70edcbbeae08639.js" async></script><script src="/framework-e4f3e98283dd6d5d8e77.js" async></script><script src="/app-0be32afa8722358651ed.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html> \ No newline at end of file diff --git a/blog/f0770dd2-9b48-5099-9f6c-cdb6ca213648/index.html b/blog/f0770dd2-9b48-5099-9f6c-cdb6ca213648/index.html index be5878b0..d3e68318 100644 --- a/blog/f0770dd2-9b48-5099-9f6c-cdb6ca213648/index.html +++ b/blog/f0770dd2-9b48-5099-9f6c-cdb6ca213648/index.html @@ -117,6 +117,6 @@ <h4>One more list:</h4> <script id="gatsby-chunk-mapping" > - window.___chunkMapping="{\"app\":[\"/app-0be32afa8722358651ed.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-985104a1d001afc81f25.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-8f11132d55ccda45c143.js\"],\"component---src-pages-services-tsx\":[\"/component---src-pages-services-tsx-ad089d9c65e0d5421453.js\"],\"component---src-pages-templates-blog-tsx\":[\"/component---src-pages-templates-blog-tsx-3e928f3e8cb34f3b7e4c.js\"],\"component---src-pages-templates-post-tsx\":[\"/component---src-pages-templates-post-tsx-f2b5783ab45f7133a802.js\"],\"component---src-pages-templates-project-tsx\":[\"/component---src-pages-templates-project-tsx-808e529df29d8bdea686.js\"],\"component---src-pages-templates-projects-tsx\":[\"/component---src-pages-templates-projects-tsx-bc2345c3e66bde0622dc.js\"],\"component---src-pages-workflow-tsx\":[\"/component---src-pages-workflow-tsx-66c85385336912fb7c37.js\"]}"; + window.___chunkMapping="{\"app\":[\"/app-0be32afa8722358651ed.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-985104a1d001afc81f25.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-51c4d6c78f0455be8e64.js\"],\"component---src-pages-services-tsx\":[\"/component---src-pages-services-tsx-004b5c906bc78a1f96ae.js\"],\"component---src-pages-templates-blog-tsx\":[\"/component---src-pages-templates-blog-tsx-2739ab3251f03f4eb07f.js\"],\"component---src-pages-templates-post-tsx\":[\"/component---src-pages-templates-post-tsx-7f7e2c93fcb41ce4f82f.js\"],\"component---src-pages-templates-project-tsx\":[\"/component---src-pages-templates-project-tsx-808e529df29d8bdea686.js\"],\"component---src-pages-templates-projects-tsx\":[\"/component---src-pages-templates-projects-tsx-75dd824378dedee3ee1b.js\"],\"component---src-pages-workflow-tsx\":[\"/component---src-pages-workflow-tsx-71ff73d9d1233d63de8e.js\"]}"; </script> - <script>window.___webpackCompilationHash="2552ca4b597845d70de8";</script><script src="/webpack-runtime-9d58aaf54df1d848a0ab.js" async></script><script src="/framework-e4f3e98283dd6d5d8e77.js" async></script><script src="/app-0be32afa8722358651ed.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html> \ No newline at end of file + <script>window.___webpackCompilationHash="2282541953a94831106d";</script><script src="/webpack-runtime-462cd70edcbbeae08639.js" async></script><script src="/framework-e4f3e98283dd6d5d8e77.js" async></script><script src="/app-0be32afa8722358651ed.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html> \ No newline at end of file diff --git a/blog/index.html b/blog/index.html index fc47a8a4..7ab430b5 100644 --- a/blog/index.html +++ b/blog/index.html @@ -5,6 +5,6 @@ <script id="gatsby-chunk-mapping" > - window.___chunkMapping="{\"app\":[\"/app-0be32afa8722358651ed.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-985104a1d001afc81f25.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-8f11132d55ccda45c143.js\"],\"component---src-pages-services-tsx\":[\"/component---src-pages-services-tsx-ad089d9c65e0d5421453.js\"],\"component---src-pages-templates-blog-tsx\":[\"/component---src-pages-templates-blog-tsx-3e928f3e8cb34f3b7e4c.js\"],\"component---src-pages-templates-post-tsx\":[\"/component---src-pages-templates-post-tsx-f2b5783ab45f7133a802.js\"],\"component---src-pages-templates-project-tsx\":[\"/component---src-pages-templates-project-tsx-808e529df29d8bdea686.js\"],\"component---src-pages-templates-projects-tsx\":[\"/component---src-pages-templates-projects-tsx-bc2345c3e66bde0622dc.js\"],\"component---src-pages-workflow-tsx\":[\"/component---src-pages-workflow-tsx-66c85385336912fb7c37.js\"]}"; + window.___chunkMapping="{\"app\":[\"/app-0be32afa8722358651ed.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-985104a1d001afc81f25.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-51c4d6c78f0455be8e64.js\"],\"component---src-pages-services-tsx\":[\"/component---src-pages-services-tsx-004b5c906bc78a1f96ae.js\"],\"component---src-pages-templates-blog-tsx\":[\"/component---src-pages-templates-blog-tsx-2739ab3251f03f4eb07f.js\"],\"component---src-pages-templates-post-tsx\":[\"/component---src-pages-templates-post-tsx-7f7e2c93fcb41ce4f82f.js\"],\"component---src-pages-templates-project-tsx\":[\"/component---src-pages-templates-project-tsx-808e529df29d8bdea686.js\"],\"component---src-pages-templates-projects-tsx\":[\"/component---src-pages-templates-projects-tsx-75dd824378dedee3ee1b.js\"],\"component---src-pages-workflow-tsx\":[\"/component---src-pages-workflow-tsx-71ff73d9d1233d63de8e.js\"]}"; </script> - <script>window.___webpackCompilationHash="2552ca4b597845d70de8";</script><script src="/webpack-runtime-9d58aaf54df1d848a0ab.js" async></script><script src="/framework-e4f3e98283dd6d5d8e77.js" async></script><script src="/app-0be32afa8722358651ed.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html> \ No newline at end of file + <script>window.___webpackCompilationHash="2282541953a94831106d";</script><script src="/webpack-runtime-462cd70edcbbeae08639.js" async></script><script src="/framework-e4f3e98283dd6d5d8e77.js" async></script><script src="/app-0be32afa8722358651ed.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html> \ No newline at end of file diff --git a/blog/page/1/index.html b/blog/page/1/index.html index 370744b5..7ada8bdf 100644 --- a/blog/page/1/index.html +++ b/blog/page/1/index.html @@ -5,6 +5,6 @@ <script id="gatsby-chunk-mapping" > - window.___chunkMapping="{\"app\":[\"/app-0be32afa8722358651ed.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-985104a1d001afc81f25.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-8f11132d55ccda45c143.js\"],\"component---src-pages-services-tsx\":[\"/component---src-pages-services-tsx-ad089d9c65e0d5421453.js\"],\"component---src-pages-templates-blog-tsx\":[\"/component---src-pages-templates-blog-tsx-3e928f3e8cb34f3b7e4c.js\"],\"component---src-pages-templates-post-tsx\":[\"/component---src-pages-templates-post-tsx-f2b5783ab45f7133a802.js\"],\"component---src-pages-templates-project-tsx\":[\"/component---src-pages-templates-project-tsx-808e529df29d8bdea686.js\"],\"component---src-pages-templates-projects-tsx\":[\"/component---src-pages-templates-projects-tsx-bc2345c3e66bde0622dc.js\"],\"component---src-pages-workflow-tsx\":[\"/component---src-pages-workflow-tsx-66c85385336912fb7c37.js\"]}"; + window.___chunkMapping="{\"app\":[\"/app-0be32afa8722358651ed.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-985104a1d001afc81f25.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-51c4d6c78f0455be8e64.js\"],\"component---src-pages-services-tsx\":[\"/component---src-pages-services-tsx-004b5c906bc78a1f96ae.js\"],\"component---src-pages-templates-blog-tsx\":[\"/component---src-pages-templates-blog-tsx-2739ab3251f03f4eb07f.js\"],\"component---src-pages-templates-post-tsx\":[\"/component---src-pages-templates-post-tsx-7f7e2c93fcb41ce4f82f.js\"],\"component---src-pages-templates-project-tsx\":[\"/component---src-pages-templates-project-tsx-808e529df29d8bdea686.js\"],\"component---src-pages-templates-projects-tsx\":[\"/component---src-pages-templates-projects-tsx-75dd824378dedee3ee1b.js\"],\"component---src-pages-workflow-tsx\":[\"/component---src-pages-workflow-tsx-71ff73d9d1233d63de8e.js\"]}"; </script> - <script>window.___webpackCompilationHash="2552ca4b597845d70de8";</script><script src="/webpack-runtime-9d58aaf54df1d848a0ab.js" async></script><script src="/framework-e4f3e98283dd6d5d8e77.js" async></script><script src="/app-0be32afa8722358651ed.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html> \ No newline at end of file + <script>window.___webpackCompilationHash="2282541953a94831106d";</script><script src="/webpack-runtime-462cd70edcbbeae08639.js" async></script><script src="/framework-e4f3e98283dd6d5d8e77.js" async></script><script src="/app-0be32afa8722358651ed.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html> \ No newline at end of file diff --git a/blog/page/2/index.html b/blog/page/2/index.html index 27e24431..691ff97e 100644 --- a/blog/page/2/index.html +++ b/blog/page/2/index.html @@ -5,6 +5,6 @@ <script id="gatsby-chunk-mapping" > - window.___chunkMapping="{\"app\":[\"/app-0be32afa8722358651ed.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-985104a1d001afc81f25.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-8f11132d55ccda45c143.js\"],\"component---src-pages-services-tsx\":[\"/component---src-pages-services-tsx-ad089d9c65e0d5421453.js\"],\"component---src-pages-templates-blog-tsx\":[\"/component---src-pages-templates-blog-tsx-3e928f3e8cb34f3b7e4c.js\"],\"component---src-pages-templates-post-tsx\":[\"/component---src-pages-templates-post-tsx-f2b5783ab45f7133a802.js\"],\"component---src-pages-templates-project-tsx\":[\"/component---src-pages-templates-project-tsx-808e529df29d8bdea686.js\"],\"component---src-pages-templates-projects-tsx\":[\"/component---src-pages-templates-projects-tsx-bc2345c3e66bde0622dc.js\"],\"component---src-pages-workflow-tsx\":[\"/component---src-pages-workflow-tsx-66c85385336912fb7c37.js\"]}"; + window.___chunkMapping="{\"app\":[\"/app-0be32afa8722358651ed.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-985104a1d001afc81f25.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-51c4d6c78f0455be8e64.js\"],\"component---src-pages-services-tsx\":[\"/component---src-pages-services-tsx-004b5c906bc78a1f96ae.js\"],\"component---src-pages-templates-blog-tsx\":[\"/component---src-pages-templates-blog-tsx-2739ab3251f03f4eb07f.js\"],\"component---src-pages-templates-post-tsx\":[\"/component---src-pages-templates-post-tsx-7f7e2c93fcb41ce4f82f.js\"],\"component---src-pages-templates-project-tsx\":[\"/component---src-pages-templates-project-tsx-808e529df29d8bdea686.js\"],\"component---src-pages-templates-projects-tsx\":[\"/component---src-pages-templates-projects-tsx-75dd824378dedee3ee1b.js\"],\"component---src-pages-workflow-tsx\":[\"/component---src-pages-workflow-tsx-71ff73d9d1233d63de8e.js\"]}"; </script> - <script>window.___webpackCompilationHash="2552ca4b597845d70de8";</script><script src="/webpack-runtime-9d58aaf54df1d848a0ab.js" async></script><script src="/framework-e4f3e98283dd6d5d8e77.js" async></script><script src="/app-0be32afa8722358651ed.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html> \ No newline at end of file + <script>window.___webpackCompilationHash="2282541953a94831106d";</script><script src="/webpack-runtime-462cd70edcbbeae08639.js" async></script><script src="/framework-e4f3e98283dd6d5d8e77.js" async></script><script src="/app-0be32afa8722358651ed.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html> \ No newline at end of file diff --git a/chunk-map.json b/chunk-map.json index 11cd294a..a03a926f 100644 --- a/chunk-map.json +++ b/chunk-map.json @@ -1 +1 @@ -{"app":["/app-0be32afa8722358651ed.js"],"component---src-pages-404-tsx":["/component---src-pages-404-tsx-985104a1d001afc81f25.js"],"component---src-pages-index-tsx":["/component---src-pages-index-tsx-8f11132d55ccda45c143.js"],"component---src-pages-services-tsx":["/component---src-pages-services-tsx-ad089d9c65e0d5421453.js"],"component---src-pages-templates-blog-tsx":["/component---src-pages-templates-blog-tsx-3e928f3e8cb34f3b7e4c.js"],"component---src-pages-templates-post-tsx":["/component---src-pages-templates-post-tsx-f2b5783ab45f7133a802.js"],"component---src-pages-templates-project-tsx":["/component---src-pages-templates-project-tsx-808e529df29d8bdea686.js"],"component---src-pages-templates-projects-tsx":["/component---src-pages-templates-projects-tsx-bc2345c3e66bde0622dc.js"],"component---src-pages-workflow-tsx":["/component---src-pages-workflow-tsx-66c85385336912fb7c37.js"]} \ No newline at end of file +{"app":["/app-0be32afa8722358651ed.js"],"component---src-pages-404-tsx":["/component---src-pages-404-tsx-985104a1d001afc81f25.js"],"component---src-pages-index-tsx":["/component---src-pages-index-tsx-51c4d6c78f0455be8e64.js"],"component---src-pages-services-tsx":["/component---src-pages-services-tsx-004b5c906bc78a1f96ae.js"],"component---src-pages-templates-blog-tsx":["/component---src-pages-templates-blog-tsx-2739ab3251f03f4eb07f.js"],"component---src-pages-templates-post-tsx":["/component---src-pages-templates-post-tsx-7f7e2c93fcb41ce4f82f.js"],"component---src-pages-templates-project-tsx":["/component---src-pages-templates-project-tsx-808e529df29d8bdea686.js"],"component---src-pages-templates-projects-tsx":["/component---src-pages-templates-projects-tsx-75dd824378dedee3ee1b.js"],"component---src-pages-workflow-tsx":["/component---src-pages-workflow-tsx-71ff73d9d1233d63de8e.js"]} \ No newline at end of file diff --git a/component---src-pages-index-tsx-51c4d6c78f0455be8e64.js b/component---src-pages-index-tsx-51c4d6c78f0455be8e64.js new file mode 100644 index 00000000..5a84f375 --- /dev/null +++ b/component---src-pages-index-tsx-51c4d6c78f0455be8e64.js @@ -0,0 +1,2 @@ +(self.webpackChunkcode_cave=self.webpackChunkcode_cave||[]).push([[691],{1929:function(e,t,l){"use strict";l.d(t,{Z:function(){return c}});var n=l(7294),a=l(4471),r=l.n(a),s=l(1164);var i=e=>{let{className:t}=e;return n.createElement("div",{className:"flex justify-center items-center h-full w-full "+t},n.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"},n.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"}),n.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 o=()=>{const{0:e,1:t}=(0,n.useState)(!1),a=(0,n.useRef)(!0),r=(0,n.useRef)(null);return(0,n.useEffect)((()=>{if(!a.current||!r.current||"undefined"==typeof window)return;a.current=!1;const e=new Worker(new URL(l.p+l.u(475),l.b),{type:void 0});e.onmessage=e=>{let{data:l}=e;"ready"===l&&t(!0)};const n=r.current;n.width=n.clientWidth,n.height=n.clientHeight;const s=n.transferControlToOffscreen();e.postMessage({canvas:s},[s]);const i=()=>{e.postMessage({width:n.clientWidth,height:n.clientHeight})};window.addEventListener("resize",i);const o=t=>{t.preventDefault(),e.postMessage({wheel:t.deltaY})};n.addEventListener("wheel",o);const c=t=>{e.postMessage({x:t.movementX,y:t.movementY})};n.addEventListener("mousedown",(e=>{e.preventDefault(),window.addEventListener("mousemove",c),window.addEventListener("mouseup",(()=>window.removeEventListener("mousemove",c)),{once:!0})}));let m;return n.addEventListener("touchstart",(t=>{if(1!==t.touches.length)return;const l=t.touches[0];t.preventDefault();const n={x:l.screenX,y:l.screenY};m=t=>{const{newX:l,newY:a}=((t,l)=>{const n=t.touches[0];return e.postMessage({x:n.screenX-l.x,y:n.screenY-l.y}),{newX:n.screenX,newY:n.screenY}})(t,n);n.x=l,n.y=a},window.addEventListener("touchmove",m),window.addEventListener("touchend",(()=>{window.removeEventListener("touchmove",m)}))})),()=>{window&&(window.removeEventListener("resize",i),window.removeEventListener("mousemove",c),window.removeEventListener("touchmove",m),n&&n.removeEventListener("wheel",o),e.terminate())}}),[]),n.createElement("div",{className:"h-full w-full relative"},n.createElement("canvas",{ref:r,className:"bg-main-100 h-160 w-full flex items-center justify-center cursor-pointer"}),e?null:n.createElement(i,{className:"absolute top-0 left-0 right-0 bottom-0 z-10"}))};var c=e=>{let{heightClass:t="min-h-160",title:l,text:a,className:i,borderBottom:c,borderTop:m,babylon:d}=e;const{0:u,1:f}=(0,n.useState)("translate-y-full");return(0,n.useEffect)((()=>{f("translate-y-0")}),[]),n.createElement("div",{className:"w-full flex items-center bg-main-100 relative overflow-hidden px-6 "+t+" "+i},m?n.createElement(r(),{className:"absolute top-0 left-0 right-0 w-full"}):null,n.createElement(s.Z,{className:"h-full flex flex-col lg:flex-row py-12 lg:py-0 items-center text-secondary-100 flex-grow"},n.createElement("div",{className:"flex flex-col overflow-hidden items-left h-full justify-center text-secondary-100 h-full w-full lg:w-1/2 bg-main-100"},n.createElement("h2",{className:"overflow-hidden mb-8 w-full"},n.createElement("span",{className:"inline-block font-['Rubik_Glitch'] text-5xl sm:text-6xl w-full text-center lg:text-start transition-all duration-1000 "+u},l.toUpperCase())),n.createElement("p",{className:"overflow-hidden w-full"},n.createElement("span",{className:"inline-block w-full text-3xl sm:text-4xl font-light text-center lg:text-start transition-all duration-1000 "+u},a.toUpperCase()))),d?n.createElement("div",{className:"w-[85%] lg:w-1/2 lg:h-full flex"},n.createElement(o,null)):null),c?n.createElement(r(),{className:"absolute bottom-0 left-0 right-0 w-full"}):null)}},216:function(e,t,l){"use strict";var n=l(7294),a=l(1883),r=l(1164);t.Z=e=>{let{section:t,title:l,linkTitle:s,className:i,fullWidth:o,children:c}=e;return n.createElement("section",{className:"w-full py-48 px-6 "+i},n.createElement(r.Z,{className:"flex-col items-center",fullWidth:o},n.createElement("div",{className:"flex justify-between w-full items-center pb-10 md:pb-16"},n.createElement("h3",{className:"text-4xl md:text-5xl font-black w-full max-w-7xl mx-auto pr-8"},l.toUpperCase()),t?n.createElement(a.Link,{to:"/"+t,className:"text-end text-2xl md:text-3xl text-secondary-10 hover:text-secondary-100 font-normal cursor-pointer whitespace-nowrap"},s?s.toUpperCase():"SEE MORE"," →"):null),c))}},3793:function(e,t,l){"use strict";var n=l(7294),a=l(1883),r=l(4344),s=l.n(r),i=l(4697),o=l.n(i),c=l(9165);t.Z=e=>{let{post:t,className:l,fontColor:r,gradientBorder:i}=e;const{date:m,title:d,text:u}=t.frontmatter,f=Math.floor(t.wordCount.words/200),h=f||1,p="main"===r?"text-main-100":"text-secondary-100",v="main"===r?"text-main-100":"text-secondary-10",x="main"===r?"hover:text-main-10":"hover:text-secondary-100";return n.createElement(a.Link,{to:"/blog/"+t.id,className:"flex flex-col sm:flex-row w-full "+v+" "+x+" "+l+" "+(i?"gradient-border":""),itemScope:!0,itemType:"https://schema.org/Article"},n.createElement("div",{className:"hidden md:flex md:basis-1/4 shrink-0 justify-center p-6",itemProp:"image"},n.createElement(s(),{className:"secondary"===r?"":"brightness-0"})),n.createElement("div",{className:"flex flex-col basis-1/2 md:basis-1/3 shrink-0 mb-12 sm:mb-0"},n.createElement("p",{className:"text-3xl font-light "+v+" pb-5"},m),n.createElement("h3",{className:"text-4xl font-bold "+p,itemProp:"headline"},d)),n.createElement("div",{className:"flex flex-col basis-1/2 md:basis-1/3 shrink-0"},n.createElement("p",{className:"font-normal text-2xl "+v,itemProp:"abstract"},u.split(" ").slice(0,60).join(" "),"..."),n.createElement("div",{className:"flex justify-between items-center pt-6"},n.createElement("p",{className:"text-2xl font-bold"},"Read more"),n.createElement("p",null,n.createElement(o(),{className:"inline"}),n.createElement("span",{className:"inline text-xl font-light italic pl-4"},"Reading time: ",h,"m.")))),n.createElement(c.L,{itemProp:"copyrightHolder"}))}},1601:function(e,t,l){"use strict";var n=l(7294),a=l(1883),r=l(6745),s=l(216);t.Z=e=>{var t,l;let{title:o,excludeId:c}=e;const m=(0,a.useStaticQuery)(i);let d=null!=m&&null!==(t=m.allMarkdownRemark)&&void 0!==t&&null!==(l=t.nodes)&&void 0!==l&&l.length?m.allMarkdownRemark.nodes:null;return d?(c&&(d=d.filter((e=>e.id!==c))),n.createElement(s.Z,{section:"projects",title:o||"OUR PROJECTS",className:"bg-main-100 text-secondary-100"},n.createElement("div",{className:"flex justify-between flex-col items-center sm:items-stretch sm:flex-row"},d.map(((e,t)=>{if(3!==t)return n.createElement(r.Z,{key:e.id,project:e,theme:"light",className:"basis-[48%] sm:last:hidden md:last:flex md:basis-[31%] mt-16 sm:mt-0"})}))))):n.createElement(n.Fragment,null)};const i="555951317"},735:function(e,t,l){"use strict";l.d(t,{Z:function(){return m}});var n=l(7294),a=l(1883),r=l(4471),s=l.n(r),i=l(7576),o=l(2074);var c=(0,n.forwardRef)(((e,t)=>{let{className:l,children:a}=e;const[r,s]=(0,i.Z)({loop:!0,dragFree:!0,duration:1e4,align:0},[(0,o.Z)({delay:0,stopOnInteraction:!1,stopOnMouseEnter:!0})]);return n.createElement("div",{className:"overflow-hidden "+l,ref:r},n.createElement("div",{ref:t,className:"h-full flex items-center",onMouseEnter:()=>{null==s||s.internalEngine().animation.stop()},onMouseLeave:()=>{null==s||s.internalEngine().animation.start()}},a))}));var m=()=>{var e,t;const l=(0,a.useStaticQuery)(d),r=null==l||null===(e=l.markdownRemark)||void 0===e||null===(t=e.frontmatter)||void 0===t?void 0:t.stack;return n.createElement(n.Fragment,null,r?n.createElement("section",{className:"h-28 flex flex-col relative",id:"clients"},n.createElement(c,{className:"grow"},r.map((e=>n.createElement("div",{key:e,className:"h-full shrink-0 min-w-0 cursor-pointer flex flex-col justify-between items-center content-center w-[352px] md:w-[400px] xl:w-[480px] 3xl:w-[576px]"},n.createElement(s(),{className:"min-w-0 shrink-0 w-full"}),n.createElement("p",{className:"text-4xl font-extrabold whitespace-nowrap"},e),n.createElement(s(),{className:"min-w-0 shrink-0 w-full"})))))):null)};const d="3518807326"},6183:function(e,t,l){"use strict";l.r(t),l.d(t,{Head:function(){return b},default:function(){return g}});var n=l(7294),a=l(9720),r=l(1929),s=l(735),i=l(1883),o=l(7576),c=l(2074),m=l(4471),d=l.n(m),u=l(8032);var f=e=>{let{review:{frontmatter:{company:t,person:l,position:a,location:r,image:s},html:i}}=e;const o=(0,u.c)(s);return n.createElement("div",{className:"h-full flex flex-col grow p-8 text-main-100",itemProp:"review",itemScope:!0,itemType:"https://schema.org/Review"},n.createElement("div",{className:"mb-6 flex flex-nowrap justify-start items-center border-b-[4px] border-dashed border-secondary-100 gradient-border pb-10",itemProp:"author",itemScope:!0,itemType:"https://schema.org/Person"},n.createElement("div",{className:"inline-block rounded-full h-32 w-32 flex items-center mr-10"},o?n.createElement(u.G,{image:o,alt:t,className:"h-full object-cover rounded-full h-32 w-32",itemProp:"image"}):null),n.createElement("div",null,n.createElement("h5",{className:"text-xl font-extrabold whitespace-nowrap",itemProp:"familyName"},l),n.createElement("h5",{className:"text-xl font-extrabold whitespace-nowrap"},n.createElement("span",{itemProp:"jobTitle"},a),","," ",n.createElement("span",{itemProp:"worksFor"},t)),n.createElement("h5",{className:"text-xl font-extrabold whitespace-nowrap",itemProp:"workLocation"},r))),n.createElement("div",{className:"review-body shrink-0 text-2xl",itemProp:"reviewBody",dangerouslySetInnerHTML:{__html:i}}))},h=l(216);var p=()=>{var e,t;const[l,a]=(0,o.Z)({loop:!0,dragFree:!0,duration:3e4,align:0},[(0,c.Z)({delay:0,stopOnInteraction:!1,stopOnMouseEnter:!0})]),r=(0,i.useStaticQuery)(v),s=null!=r&&null!==(e=r.allMarkdownRemark)&&void 0!==e&&null!==(t=e.nodes)&&void 0!==t&&t.length?r.allMarkdownRemark.nodes:null;return n.createElement(n.Fragment,null,s?n.createElement(n.Fragment,null,n.createElement(d(),{className:"w-full"}),n.createElement(h.Z,{fullWidth:!0,title:"our clients' testimonials",className:"bg-secondary-100 text-main-100 w-full"},n.createElement("div",{className:"w-full overflow-hidden min-h-max",ref:l},n.createElement("div",{id:"container",className:"flex",onMouseEnter:()=>{null==a||a.internalEngine().animation.stop()},onMouseLeave:()=>{null==a||a.internalEngine().animation.start()}},s.map((e=>n.createElement("div",{key:e.id,className:"flex shrink-0 min-w-0 cursor-pointer basis-full sm:basis-5/6 md:basis-4/6 lg:basis-1/2 xl:basis-2/5 3xl:basis-1/3 4xl:basis-1/4 rounded-2xl border-dashed border-main-10 mx-12 top-0 bottom-0"},n.createElement(f,{review:e}))))))),n.createElement(d(),{className:"w-full"})):null)};const v="687265830";var x=l(3793);var w=()=>{var e,t;const l=(0,i.useStaticQuery)(C),a=null!=l&&null!==(e=l.allMarkdownRemark)&&void 0!==e&&null!==(t=e.nodes)&&void 0!==t&&t.length?l.allMarkdownRemark.nodes[0]:null;return n.createElement(n.Fragment,null,a?n.createElement(h.Z,{title:"new in our blog",linkTitle:"all posts",section:"blog",className:"bg-main-100 text-secondary-100"},n.createElement(x.Z,{post:a,fontColor:"secondary"})):null)};const C="1671064017";var E=l(1601);var g=()=>n.createElement(a.Pd.Provider,{value:{style:{verticalAlign:"middle"}}},n.createElement(r.Z,{title:"OUTSTANDING OUTSOURCING",text:"the best developers ever",babylon:!0}),n.createElement(s.Z,null),n.createElement(E.Z,null),n.createElement(p,null),n.createElement(w,null));const b=()=>n.createElement("title",null,"CodeCave")},4471:function(e,t,l){var n=l(7294);function a(e){return n.createElement("svg",e,[n.createElement("line",{width:"800",height:"8",stroke:"white",strokeWidth:"8",strokeDasharray:"8 8",x1:"0",x2:"100%",y1:"4",y2:"4",key:0}),n.createElement("line",{width:"800",height:"8",stroke:"black",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},4344:function(e,t,l){var n=l(7294);function a(e){return n.createElement("svg",e,[n.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M15.875 7.9375H111.125C113.23 7.9375 115.249 8.77377 116.738 10.2623C118.226 11.7509 119.062 13.7698 119.062 15.875V107.839L103.188 91.9639C100.211 88.9865 96.1738 87.3134 91.9639 87.3125H15.875C13.7698 87.3125 11.7509 86.4762 10.2623 84.9877C8.77377 83.4991 7.9375 81.4802 7.9375 79.375V15.875C7.9375 13.7698 8.77377 11.7509 10.2623 10.2623C11.7509 8.77377 13.7698 7.9375 15.875 7.9375ZM111.125 0C115.335 0 119.373 1.67254 122.35 4.64968C125.327 7.62682 127 11.6647 127 15.875V117.419C127 118.205 126.767 118.972 126.33 119.625C125.893 120.278 125.273 120.786 124.547 121.086C123.822 121.386 123.023 121.464 122.253 121.31C121.483 121.156 120.776 120.777 120.221 120.221L97.5757 97.5757C96.0875 96.087 94.0689 95.2505 91.9639 95.25H15.875C11.6647 95.25 7.62682 93.5775 4.64968 90.6003C1.67254 87.6232 0 83.5853 0 79.375V15.875C0 11.6647 1.67254 7.62682 4.64968 4.64968C7.62682 1.67254 11.6647 0 15.875 0L111.125 0Z",fill:"#FAFAFA",key:0}),n.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M56.0865 37.7825C54.5404 35.3747 52.2544 33.5337 49.5723 32.5363C46.8902 31.5389 43.9569 31.439 41.2131 32.2515C38.4694 33.0641 36.0635 34.7453 34.357 37.0423C32.6506 39.3394 31.7358 42.1283 31.7502 44.9898C31.7516 47.3594 32.3893 49.6851 33.5968 51.7241C34.8042 53.763 36.537 55.4402 38.6142 56.5806C40.6914 57.721 43.0367 58.2826 45.4051 58.2069C47.7735 58.1311 50.0781 57.4207 52.0781 56.1499C51.0383 59.2376 49.1015 62.5316 45.9107 65.8336C45.3002 66.4652 44.9656 67.3134 44.9804 68.1916C44.9953 69.0699 45.3585 69.9063 45.99 70.5168C46.6216 71.1273 47.4698 71.4619 48.348 71.447C49.2263 71.4321 50.0627 71.0689 50.6732 70.4374C62.4683 58.2136 60.9364 44.9263 56.0865 37.7984V37.7825ZM87.8365 37.7825C86.2904 35.3747 84.0044 33.5337 81.3223 32.5363C78.6403 31.5389 75.7069 31.439 72.9631 32.2515C70.2194 33.0641 67.8135 34.7453 66.107 37.0423C64.4006 39.3394 63.4858 42.1283 63.5002 44.9898C63.5016 47.3594 64.1393 49.6851 65.3468 51.7241C66.5542 53.763 68.287 55.4402 70.3642 56.5806C72.4414 57.721 74.7867 58.2826 77.1551 58.2069C79.5235 58.1311 81.8281 57.4207 83.8281 56.1499C82.7883 59.2376 80.8515 62.5316 77.6607 65.8336C77.0502 66.4652 76.7156 67.3134 76.7304 68.1916C76.7453 69.0699 77.1085 69.9063 77.74 70.5168C78.3716 71.1273 79.2198 71.4619 80.098 71.447C80.9763 71.4321 81.8127 71.0689 82.4232 70.4374C94.2183 58.2136 92.6864 44.9263 87.8365 37.7984V37.7825Z",fill:"#FAFAFA",key:1})])}a.defaultProps={width:"127",height:"127",viewBox:"0 0 127 127",fill:"none"},e.exports=a,a.default=a},4697:function(e,t,l){var n=l(7294);function a(e){return n.createElement("svg",e,[n.createElement("g",{clipPath:"url(#clip0_829_432)",key:0},[n.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M9.57938 1.14638C9.38658 1.13214 9.19332 1.12501 9 1.125V0C9.2211 0.000107806 9.44213 0.00836341 9.66262 0.02475L9.57938 1.14638ZM11.8339 1.65263C11.4733 1.51347 11.1029 1.40104 10.7258 1.31625L10.9721 0.21825C11.403 0.315 11.8271 0.44325 12.2389 0.603L11.8339 1.65263ZM13.3751 2.45138C13.2143 2.34411 13.0495 2.24279 12.8812 2.14763L13.4359 1.16888C13.8205 1.38683 14.1886 1.63274 14.5372 1.90463L13.8454 2.79225C13.6929 2.67326 13.536 2.55993 13.3751 2.4525V2.45138ZM15.4384 4.46513C15.2158 4.14897 14.9703 3.84966 14.7037 3.56963L15.5182 2.79338C15.822 3.114 16.1032 3.45713 16.3586 3.81713L15.4384 4.46513ZM16.2754 5.98613C16.2015 5.80777 16.1212 5.63215 16.0346 5.45963L17.0392 4.95338C17.2379 5.34835 17.4071 5.75746 17.5455 6.17738L16.4767 6.5295C16.4163 6.34597 16.3491 6.16473 16.2754 5.98613ZM16.8716 8.8065C16.8625 8.41988 16.8249 8.03446 16.7591 7.65338L17.8672 7.46213C17.9426 7.89638 17.9865 8.33738 17.9977 8.77838L16.8727 8.8065H16.8716ZM16.7242 10.5368C16.7614 10.3455 16.7917 10.1554 16.8154 9.963L17.9325 10.1014C17.8785 10.5403 17.792 10.9746 17.6737 11.4008L16.5892 11.1004C16.641 10.9148 16.686 10.7269 16.7242 10.5368ZM15.6532 13.2131C15.8602 12.8869 16.0425 12.5449 16.2 12.1916L17.2282 12.6473C17.0482 13.0523 16.8401 13.4415 16.6039 13.815L15.6532 13.2131ZM14.5687 14.5688C14.706 14.4315 14.8376 14.2898 14.9625 14.1435L15.8152 14.8781C15.6708 15.0456 15.5204 15.2077 15.3641 15.3641L14.5687 14.5688Z",fill:"black",key:0}),n.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.99961 1.125C7.7046 1.12509 6.4296 1.44455 5.28753 2.05508C4.14547 2.66561 3.1716 3.54836 2.45217 4.62516C1.73275 5.70195 1.28998 6.93954 1.16308 8.22832C1.03618 9.5171 1.22907 10.8173 1.72466 12.0137C2.22025 13.2101 3.00325 14.2659 4.0043 15.0874C5.00535 15.909 6.19356 16.471 7.46368 16.7237C8.73381 16.9763 10.0466 16.9119 11.2859 16.536C12.5252 16.1601 13.6526 15.4844 14.5684 14.5688L15.3637 15.3641C14.3172 16.4113 13.0285 17.1841 11.6119 17.6141C10.1953 18.0442 8.69447 18.1182 7.24243 17.8295C5.79039 17.5409 4.43195 16.8986 3.28748 15.9595C2.143 15.0204 1.24784 13.8135 0.681284 12.4458C0.114733 11.078 -0.105707 9.59162 0.0394939 8.1183C0.184695 6.64499 0.691055 5.23024 1.51371 3.9994C2.33636 2.76855 3.44991 1.75962 4.75569 1.062C6.06147 0.364382 7.51916 -0.000392324 8.99961 3.16641e-07V1.125Z",fill:"black",key:1}),n.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.4375 3.375C8.58668 3.375 8.72976 3.43426 8.83525 3.53975C8.94074 3.64524 9 3.78832 9 3.9375V9.79875L12.654 11.8867C12.7798 11.9626 12.8709 12.0847 12.9078 12.2268C12.9448 12.369 12.9247 12.5199 12.8518 12.6475C12.779 12.775 12.6591 12.869 12.5179 12.9093C12.3766 12.9496 12.2252 12.9331 12.096 12.8632L8.1585 10.6132C8.07241 10.5641 8.00084 10.493 7.95106 10.4073C7.90127 10.3215 7.87503 10.2241 7.875 10.125V3.9375C7.875 3.78832 7.93426 3.64524 8.03975 3.53975C8.14524 3.43426 8.28832 3.375 8.4375 3.375Z",fill:"black",key:2})]),n.createElement("defs",{key:1},n.createElement("clipPath",{id:"clip0_829_432"},n.createElement("rect",{width:"18",height:"18",fill:"white"})))])}a.defaultProps={width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"},e.exports=a,a.default=a}}]); +//# sourceMappingURL=component---src-pages-index-tsx-51c4d6c78f0455be8e64.js.map \ No newline at end of file diff --git a/component---src-pages-index-tsx-51c4d6c78f0455be8e64.js.map b/component---src-pages-index-tsx-51c4d6c78f0455be8e64.js.map new file mode 100644 index 00000000..380483a9 --- /dev/null +++ b/component---src-pages-index-tsx-51c4d6c78f0455be8e64.js.map @@ -0,0 +1 @@ +{"version":3,"file":"component---src-pages-index-tsx-51c4d6c78f0455be8e64.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/./src/components/common/templateSection.tsx","webpack://code-cave/./src/components/posts/postPreview.tsx","webpack://code-cave/./src/components/projects/projectsSection.tsx","webpack://code-cave/./src/components/stack/stackCarousel.tsx","webpack://code-cave/./src/components/stack/stackSection.tsx","webpack://code-cave/./src/components/reviews/review.tsx","webpack://code-cave/./src/components/reviews/reviewsSection.tsx","webpack://code-cave/./src/components/posts/postSection.tsx","webpack://code-cave/./src/pages/index.tsx","webpack://code-cave/./src/assets/common/border.svg","webpack://code-cave/./src/assets/common/chat-right-quote.svg","webpack://code-cave/./src/assets/common/clock.svg"],"sourcesContent":["import React from \"react\";\n\nconst Spinner = ({ className }: { className?: string }) => {\n return (\n <div\n className={`flex justify-center items-center h-full w-full ${className}`}\n >\n <svg\n aria-hidden=\"true\"\n className=\"w-8 h-8 mr-2 text-main-10 animate-spin dark:text-secondary-10 fill-main-100\"\n viewBox=\"0 0 100 101\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n 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\"\n fill=\"currentColor\"\n />\n <path\n 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\"\n fill=\"currentFill\"\n />\n </svg>\n </div>\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<boolean>(false);\n const isInitial = useRef<boolean>(true);\n const canvasRef = useRef<HTMLCanvasElement>(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);\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 window.addEventListener(\n \"mouseup\",\n () => window.removeEventListener(\"mousemove\", onMouseMoveHandler),\n { once: 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(\"touchstart\", (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 window.addEventListener(\"touchend\", () => {\n window.removeEventListener(\"touchmove\", onTouchMoveHandler);\n });\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 <div className={`h-full w-full relative`}>\n <canvas\n ref={canvasRef}\n className={`bg-main-100 h-160 w-full flex items-center justify-center cursor-pointer`}\n />\n {!isBabylonReady ? (\n <Spinner className=\"absolute top-0 left-0 right-0 bottom-0 z-10\" />\n ) : null}\n </div>\n );\n};\n\nexport default Babylon;\n","import React, { useEffect, useState } from \"react\";\n\nimport Border from \"../../assets/common/border.svg\";\n\nimport ContentContainer from \"./contentContainer\";\nimport Babylon from \"../babylonjs/babylon\";\n\nconst Banner = ({\n heightClass = \"min-h-160\",\n title,\n text,\n className,\n borderBottom,\n borderTop,\n babylon,\n}: {\n heightClass?: string;\n title: string;\n text: string;\n className?: string;\n borderBottom?: boolean;\n borderTop?: boolean;\n babylon?: boolean;\n}) => {\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 <div\n className={`w-full flex items-center bg-main-100 relative overflow-hidden px-6 ${heightClass} ${className}`}\n >\n {borderTop ? (\n <Border className=\"absolute top-0 left-0 right-0 w-full\" />\n ) : null}\n <ContentContainer\n className={`h-full flex flex-col lg:flex-row py-12 lg:py-0 items-center text-secondary-100 flex-grow`}\n >\n <div className=\"flex flex-col overflow-hidden items-left h-full justify-center text-secondary-100 h-full w-full lg:w-1/2 bg-main-100\">\n <h2 className={`overflow-hidden mb-8 w-full`}>\n <span\n className={`inline-block font-['Rubik_Glitch'] text-5xl sm:text-6xl w-full text-center lg:text-start transition-all duration-1000 ${textTranslate}`}\n >\n {title.toUpperCase()}\n </span>\n </h2>\n <p className={`overflow-hidden w-full`}>\n <span\n className={`inline-block w-full text-3xl sm:text-4xl font-light text-center lg:text-start transition-all duration-1000 ${textTranslate}`}\n >\n {text.toUpperCase()}\n </span>\n </p>\n </div>\n {babylon ? (\n <div className=\"w-[85%] lg:w-1/2 lg:h-full flex\">\n <Babylon />\n </div>\n ) : null}\n </ContentContainer>\n {borderBottom ? (\n <Border className=\"absolute bottom-0 left-0 right-0 w-full\" />\n ) : null}\n </div>\n );\n};\n\nexport default Banner;\n","import React, { PropsWithChildren } from \"react\";\nimport { Link } from \"gatsby\";\n\nimport ContentContainer from \"./contentContainer\";\n\nconst TemplateSection = ({\n section,\n title,\n linkTitle,\n className,\n fullWidth,\n children,\n}: PropsWithChildren<{\n title: string;\n linkTitle?: string;\n section?: string;\n className?: string;\n fullWidth?: boolean;\n}>) => (\n <section className={`w-full py-48 px-6 ${className}`}>\n <ContentContainer className=\"flex-col items-center\" fullWidth={fullWidth}>\n <div className=\"flex justify-between w-full items-center pb-10 md:pb-16\">\n <h3 className=\"text-4xl md:text-5xl font-black w-full max-w-7xl mx-auto pr-8\">\n {title.toUpperCase()}\n </h3>\n {section ? (\n <Link\n to={`/${section}`}\n className=\"text-end text-2xl md:text-3xl text-secondary-10 hover:text-secondary-100 font-normal cursor-pointer whitespace-nowrap\"\n >\n {linkTitle ? linkTitle.toUpperCase() : \"SEE MORE\"} →\n </Link>\n ) : null}\n </div>\n {children}\n </ContentContainer>\n </section>\n);\n\nexport default TemplateSection;\n","import React from \"react\";\n\nimport { Link } from \"gatsby\";\n\nimport Quote from \"../../assets/common/chat-right-quote.svg\";\nimport Clock from \"../../assets/common/clock.svg\";\n\nimport { IPostPreviewQueryResult } from \"../../types/post.type\";\nimport { LocalBusinessMetadata } from \"../common/metadata\";\n\nconst PostPreview = ({\n post,\n className,\n fontColor,\n gradientBorder,\n}: {\n post: IPostPreviewQueryResult;\n className?: string;\n fontColor: \"main\" | \"secondary\";\n gradientBorder?: boolean;\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 fontColor === \"main\" ? \"text-main-100\" : \"text-secondary-100\";\n const fontColorClass10 =\n fontColor === \"main\" ? \"text-main-100\" : \"text-secondary-10\";\n const fontColorHover =\n fontColor === \"main\" ? \"hover:text-main-10\" : \"hover:text-secondary-100\";\n\n return (\n <Link\n to={`/blog/${post.id}`}\n className={`flex flex-col sm:flex-row w-full ${fontColorClass10} ${fontColorHover} ${className} ${\n gradientBorder ? \"gradient-border\" : \"\"\n }`}\n itemScope\n itemType=\"https://schema.org/Article\"\n >\n <div\n className=\"hidden md:flex md:basis-1/4 shrink-0 justify-center p-6\"\n itemProp=\"image\"\n >\n <Quote className={fontColor === \"secondary\" ? \"\" : \"brightness-0\"} />\n </div>\n <div className=\"flex flex-col basis-1/2 md:basis-1/3 shrink-0 mb-12 sm:mb-0\">\n <p className={`text-3xl font-light ${fontColorClass10} pb-5`}>{date}</p>\n <h3\n className={`text-4xl font-bold ${fontColorClass100}`}\n itemProp=\"headline\"\n >\n {title}\n </h3>\n </div>\n <div className=\"flex flex-col basis-1/2 md:basis-1/3 shrink-0\">\n <p\n className={`font-normal text-2xl ${fontColorClass10}`}\n itemProp=\"abstract\"\n >\n {text.split(\" \").slice(0, 60).join(\" \")}...\n </p>\n <div className=\"flex justify-between items-center pt-6\">\n <p className={`text-2xl font-bold`}>Read more</p>\n <p>\n <Clock className={\"inline\"} />\n\n <span className=\"inline text-xl font-light italic pl-4\">\n Reading time: {readingTime}m.\n </span>\n </p>\n </div>\n </div>\n <LocalBusinessMetadata itemProp=\"copyrightHolder\" />\n </Link>\n );\n};\n\nexport default PostPreview;\n","import React from \"react\";\n\nimport { graphql, useStaticQuery } from \"gatsby\";\n\nimport { IProjectPreviewQueryResult } from \"../../types/project.type\";\n\nimport ProjectPreview from \"./projectPreview\";\nimport TemplateSection from \"../common/templateSection\";\n\nconst ProjectsSection = ({\n title,\n excludeId,\n}: {\n title?: string;\n excludeId?: string;\n}) => {\n const projectsData = useStaticQuery(query);\n\n let projects = (\n projectsData?.allMarkdownRemark?.nodes?.length\n ? projectsData.allMarkdownRemark.nodes\n : null\n ) as IProjectPreviewQueryResult[] | null;\n\n if (!projects) return <></>;\n\n if (excludeId) {\n projects = projects.filter((project) => project.id !== excludeId);\n }\n\n return (\n <TemplateSection\n section=\"projects\"\n title={title ? title : \"OUR PROJECTS\"}\n className=\"bg-main-100 text-secondary-100\"\n >\n <div className=\"flex justify-between flex-col items-center sm:items-stretch sm:flex-row\">\n {projects.map((project, i) => {\n if (i === 3) return;\n return (\n <ProjectPreview\n key={project.id}\n project={project}\n theme=\"light\"\n className=\"basis-[48%] sm:last:hidden md:last:flex md:basis-[31%] mt-16 sm:mt-0\"\n />\n );\n })}\n </div>\n </TemplateSection>\n );\n};\n\nexport default ProjectsSection;\n\nexport const query = graphql`\n query {\n allMarkdownRemark(\n filter: { fields: { sourceName: { eq: \"projects\" } } }\n sort: { frontmatter: { date: DESC } }\n limit: 4\n ) {\n nodes {\n id\n frontmatter {\n title\n cover {\n childImageSharp {\n gatsbyImageData(\n width: 600\n formats: [AUTO, WEBP, AVIF]\n placeholder: BLURRED\n )\n }\n }\n }\n }\n }\n }\n`;\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: 0 },\n [\n Autoplay({\n delay: 0,\n stopOnInteraction: false,\n stopOnMouseEnter: true,\n }),\n ]\n );\n\n return (\n <div className={`overflow-hidden ${className}`} ref={emblaRef}>\n <div\n ref={ref}\n className=\"h-full flex items-center\"\n onMouseEnter={() => {\n emblaApi?.internalEngine().animation.stop();\n }}\n onMouseLeave={() => {\n emblaApi?.internalEngine().animation.start();\n }}\n >\n {children}\n </div>\n </div>\n );\n});\n\nexport default StackCarousel;\n","import React from \"react\";\nimport { useStaticQuery, graphql } from \"gatsby\";\n\nimport Border from \"../../assets/common/border.svg\";\nimport StackCarousel from \"./stackCarousel\";\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 <section className={`h-28 flex flex-col relative`} id=\"clients\">\n <StackCarousel className=\"grow\">\n {techArr.map((tech) => (\n <div\n key={tech}\n className=\"h-full shrink-0 min-w-0 cursor-pointer flex flex-col justify-between items-center content-center w-[352px] md:w-[400px] xl:w-[480px] 3xl:w-[576px]\"\n >\n <Border className={`min-w-0 shrink-0 w-full`} />\n <p className=\"text-4xl font-extrabold whitespace-nowrap\">\n {tech}\n </p>\n <Border className={`min-w-0 shrink-0 w-full`} />\n </div>\n ))}\n </StackCarousel>\n </section>\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 { GatsbyImage, getImage } from \"gatsby-plugin-image\";\n\nimport { IReviewQueryResult } from \"../../types/review.type\";\n\nconst Review = ({\n review: {\n frontmatter: { company, person, position, location, image },\n html,\n },\n}: {\n review: IReviewQueryResult;\n}) => {\n const avatar = getImage(image);\n\n return (\n <div\n className=\"h-full flex flex-col grow p-8 text-main-100\"\n itemProp=\"review\"\n itemScope\n itemType=\"https://schema.org/Review\"\n >\n <div\n className=\"mb-6 flex flex-nowrap justify-start items-center border-b-[4px] border-dashed border-secondary-100 gradient-border pb-10\"\n itemProp=\"author\"\n itemScope\n itemType=\"https://schema.org/Person\"\n >\n <div\n className={`inline-block rounded-full h-32 w-32 flex items-center mr-10`}\n >\n {avatar ? (\n <GatsbyImage\n image={avatar}\n alt={company}\n className=\"h-full object-cover rounded-full h-32 w-32\"\n itemProp=\"image\"\n />\n ) : null}\n </div>\n <div>\n <h5\n className=\"text-xl font-extrabold whitespace-nowrap\"\n itemProp=\"familyName\"\n >\n {person}\n </h5>\n <h5 className=\"text-xl font-extrabold whitespace-nowrap\">\n <span itemProp=\"jobTitle\">{position}</span>,{\" \"}\n <span itemProp=\"worksFor\">{company}</span>\n </h5>\n <h5\n className=\"text-xl font-extrabold whitespace-nowrap\"\n itemProp=\"workLocation\"\n >\n {location}\n </h5>\n </div>\n </div>\n <div\n className=\"review-body shrink-0 text-2xl\"\n itemProp=\"reviewBody\"\n dangerouslySetInnerHTML={{ __html: html }}\n />\n </div>\n );\n};\n\nexport default Review;\n","import React from \"react\";\n\nimport { graphql, useStaticQuery } from \"gatsby\";\n\nimport useEmblaCarousel from \"embla-carousel-react\";\nimport Autoplay from \"embla-carousel-autoplay\";\n\nimport { IReviewQueryResult } from \"../../types/review.type\";\n\nimport Border from \"../../assets/common/border.svg\";\nimport Review from \"./review\";\nimport TemplateSection from \"../common/templateSection\";\n\nconst ReviewsSection = () => {\n const [emblaRef, emblaApi] = useEmblaCarousel(\n { loop: true, dragFree: true, duration: 30000, align: 0 },\n [\n Autoplay({\n delay: 0,\n stopOnInteraction: false,\n stopOnMouseEnter: true,\n }),\n ]\n );\n\n const reviewsData = useStaticQuery(query);\n\n const reviews = (\n reviewsData?.allMarkdownRemark?.nodes?.length\n ? reviewsData.allMarkdownRemark.nodes\n : null\n ) as IReviewQueryResult[] | null;\n\n return (\n <>\n {reviews ? (\n <>\n <Border className=\"w-full\" />\n <TemplateSection\n fullWidth\n title={\"our clients' testimonials\"}\n className=\"bg-secondary-100 text-main-100 w-full\"\n >\n <div className=\"w-full overflow-hidden min-h-max\" ref={emblaRef}>\n <div\n id=\"container\"\n className=\"flex\"\n onMouseEnter={() => {\n emblaApi?.internalEngine().animation.stop();\n }}\n onMouseLeave={() => {\n emblaApi?.internalEngine().animation.start();\n }}\n >\n {reviews.map((review) => (\n <div\n key={review.id}\n className=\"flex shrink-0 min-w-0 cursor-pointer basis-full sm:basis-5/6 md:basis-4/6 lg:basis-1/2 xl:basis-2/5 3xl:basis-1/3 4xl:basis-1/4 rounded-2xl border-dashed border-main-10 mx-12 top-0 bottom-0\"\n >\n {<Review review={review} />}\n </div>\n ))}\n </div>\n </div>\n </TemplateSection>\n <Border className=\"w-full\" />\n </>\n ) : null}\n </>\n );\n};\n\nexport default ReviewsSection;\n\nexport const query = graphql`\n query {\n allMarkdownRemark(filter: { fields: { sourceName: { eq: \"reviews\" } } }) {\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 }\n`;\n","import React from \"react\";\n\nimport { graphql, useStaticQuery } from \"gatsby\";\n\nimport { IPostPreviewQueryResult } from \"../../types/post.type\";\n\nimport PostPreview from \"./postPreview\";\nimport TemplateSection from \"../common/templateSection\";\n\nconst PostSection = () => {\n const postData = useStaticQuery(query);\n\n const post = (\n postData?.allMarkdownRemark?.nodes?.length\n ? postData.allMarkdownRemark.nodes[0]\n : null\n ) as IPostPreviewQueryResult | null;\n\n return (\n <>\n {post ? (\n <TemplateSection\n title=\"new in our blog\"\n linkTitle=\"all posts\"\n section=\"blog\"\n className=\"bg-main-100 text-secondary-100\"\n >\n <PostPreview post={post} fontColor=\"secondary\" />\n </TemplateSection>\n ) : null}\n </>\n );\n};\n\nexport default PostSection;\n\nexport const query = graphql`\n query {\n allMarkdownRemark(\n filter: { fields: { sourceName: { eq: \"posts\" } } }\n sort: { frontmatter: { date: DESC } }\n limit: 1\n ) {\n nodes {\n id\n frontmatter {\n date(formatString: \"MMM DD, YYYY\")\n title\n text\n }\n wordCount {\n words\n }\n }\n }\n }\n`;\n","import * as React from \"react\";\nimport type { HeadFC } from \"gatsby\";\n\nimport { IconContext } from \"@react-icons/all-files\";\nimport \"../styles/styles.css\";\n\nimport Banner from \"../components/common/banner\";\nimport StackSection from \"../components/stack/stackSection\";\nimport ReviewsSection from \"../components/reviews/reviewsSection\";\nimport PostSection from \"../components/posts/postSection\";\nimport ProjectsSection from \"../components/projects/projectsSection\";\n\nconst IndexPage = () => {\n return (\n <IconContext.Provider value={{ style: { verticalAlign: \"middle\" } }}>\n <Banner\n title=\"OUTSTANDING OUTSOURCING\"\n text=\"the best developers ever\"\n babylon\n />\n <StackSection />\n <ProjectsSection />\n <ReviewsSection />\n <PostSection />\n </IconContext.Provider>\n );\n};\n\nexport default IndexPage;\n\nexport const Head: HeadFC = () => <title>CodeCave</title>;\n","var React = require('react');\n\nfunction Border (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"line\",{\"width\":\"800\",\"height\":\"8\",\"stroke\":\"white\",\"strokeWidth\":\"8\",\"strokeDasharray\":\"8 8\",\"x1\":\"0\",\"x2\":\"100%\",\"y1\":\"4\",\"y2\":\"4\",\"key\":0}),React.createElement(\"line\",{\"width\":\"800\",\"height\":\"8\",\"stroke\":\"black\",\"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","var React = require('react');\n\nfunction ChatRightQuote (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"path\",{\"fillRule\":\"evenodd\",\"clipRule\":\"evenodd\",\"d\":\"M15.875 7.9375H111.125C113.23 7.9375 115.249 8.77377 116.738 10.2623C118.226 11.7509 119.062 13.7698 119.062 15.875V107.839L103.188 91.9639C100.211 88.9865 96.1738 87.3134 91.9639 87.3125H15.875C13.7698 87.3125 11.7509 86.4762 10.2623 84.9877C8.77377 83.4991 7.9375 81.4802 7.9375 79.375V15.875C7.9375 13.7698 8.77377 11.7509 10.2623 10.2623C11.7509 8.77377 13.7698 7.9375 15.875 7.9375ZM111.125 0C115.335 0 119.373 1.67254 122.35 4.64968C125.327 7.62682 127 11.6647 127 15.875V117.419C127 118.205 126.767 118.972 126.33 119.625C125.893 120.278 125.273 120.786 124.547 121.086C123.822 121.386 123.023 121.464 122.253 121.31C121.483 121.156 120.776 120.777 120.221 120.221L97.5757 97.5757C96.0875 96.087 94.0689 95.2505 91.9639 95.25H15.875C11.6647 95.25 7.62682 93.5775 4.64968 90.6003C1.67254 87.6232 0 83.5853 0 79.375V15.875C0 11.6647 1.67254 7.62682 4.64968 4.64968C7.62682 1.67254 11.6647 0 15.875 0L111.125 0Z\",\"fill\":\"#FAFAFA\",\"key\":0}),React.createElement(\"path\",{\"fillRule\":\"evenodd\",\"clipRule\":\"evenodd\",\"d\":\"M56.0865 37.7825C54.5404 35.3747 52.2544 33.5337 49.5723 32.5363C46.8902 31.5389 43.9569 31.439 41.2131 32.2515C38.4694 33.0641 36.0635 34.7453 34.357 37.0423C32.6506 39.3394 31.7358 42.1283 31.7502 44.9898C31.7516 47.3594 32.3893 49.6851 33.5968 51.7241C34.8042 53.763 36.537 55.4402 38.6142 56.5806C40.6914 57.721 43.0367 58.2826 45.4051 58.2069C47.7735 58.1311 50.0781 57.4207 52.0781 56.1499C51.0383 59.2376 49.1015 62.5316 45.9107 65.8336C45.3002 66.4652 44.9656 67.3134 44.9804 68.1916C44.9953 69.0699 45.3585 69.9063 45.99 70.5168C46.6216 71.1273 47.4698 71.4619 48.348 71.447C49.2263 71.4321 50.0627 71.0689 50.6732 70.4374C62.4683 58.2136 60.9364 44.9263 56.0865 37.7984V37.7825ZM87.8365 37.7825C86.2904 35.3747 84.0044 33.5337 81.3223 32.5363C78.6403 31.5389 75.7069 31.439 72.9631 32.2515C70.2194 33.0641 67.8135 34.7453 66.107 37.0423C64.4006 39.3394 63.4858 42.1283 63.5002 44.9898C63.5016 47.3594 64.1393 49.6851 65.3468 51.7241C66.5542 53.763 68.287 55.4402 70.3642 56.5806C72.4414 57.721 74.7867 58.2826 77.1551 58.2069C79.5235 58.1311 81.8281 57.4207 83.8281 56.1499C82.7883 59.2376 80.8515 62.5316 77.6607 65.8336C77.0502 66.4652 76.7156 67.3134 76.7304 68.1916C76.7453 69.0699 77.1085 69.9063 77.74 70.5168C78.3716 71.1273 79.2198 71.4619 80.098 71.447C80.9763 71.4321 81.8127 71.0689 82.4232 70.4374C94.2183 58.2136 92.6864 44.9263 87.8365 37.7984V37.7825Z\",\"fill\":\"#FAFAFA\",\"key\":1})]);\n}\n\nChatRightQuote.defaultProps = {\"width\":\"127\",\"height\":\"127\",\"viewBox\":\"0 0 127 127\",\"fill\":\"none\"};\n\nmodule.exports = ChatRightQuote;\n\nChatRightQuote.default = ChatRightQuote;\n","var React = require('react');\n\nfunction Clock (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"g\",{\"clipPath\":\"url(#clip0_829_432)\",\"key\":0},[React.createElement(\"path\",{\"fillRule\":\"evenodd\",\"clipRule\":\"evenodd\",\"d\":\"M9.57938 1.14638C9.38658 1.13214 9.19332 1.12501 9 1.125V0C9.2211 0.000107806 9.44213 0.00836341 9.66262 0.02475L9.57938 1.14638ZM11.8339 1.65263C11.4733 1.51347 11.1029 1.40104 10.7258 1.31625L10.9721 0.21825C11.403 0.315 11.8271 0.44325 12.2389 0.603L11.8339 1.65263ZM13.3751 2.45138C13.2143 2.34411 13.0495 2.24279 12.8812 2.14763L13.4359 1.16888C13.8205 1.38683 14.1886 1.63274 14.5372 1.90463L13.8454 2.79225C13.6929 2.67326 13.536 2.55993 13.3751 2.4525V2.45138ZM15.4384 4.46513C15.2158 4.14897 14.9703 3.84966 14.7037 3.56963L15.5182 2.79338C15.822 3.114 16.1032 3.45713 16.3586 3.81713L15.4384 4.46513ZM16.2754 5.98613C16.2015 5.80777 16.1212 5.63215 16.0346 5.45963L17.0392 4.95338C17.2379 5.34835 17.4071 5.75746 17.5455 6.17738L16.4767 6.5295C16.4163 6.34597 16.3491 6.16473 16.2754 5.98613ZM16.8716 8.8065C16.8625 8.41988 16.8249 8.03446 16.7591 7.65338L17.8672 7.46213C17.9426 7.89638 17.9865 8.33738 17.9977 8.77838L16.8727 8.8065H16.8716ZM16.7242 10.5368C16.7614 10.3455 16.7917 10.1554 16.8154 9.963L17.9325 10.1014C17.8785 10.5403 17.792 10.9746 17.6737 11.4008L16.5892 11.1004C16.641 10.9148 16.686 10.7269 16.7242 10.5368ZM15.6532 13.2131C15.8602 12.8869 16.0425 12.5449 16.2 12.1916L17.2282 12.6473C17.0482 13.0523 16.8401 13.4415 16.6039 13.815L15.6532 13.2131ZM14.5687 14.5688C14.706 14.4315 14.8376 14.2898 14.9625 14.1435L15.8152 14.8781C15.6708 15.0456 15.5204 15.2077 15.3641 15.3641L14.5687 14.5688Z\",\"fill\":\"black\",\"key\":0}),React.createElement(\"path\",{\"fillRule\":\"evenodd\",\"clipRule\":\"evenodd\",\"d\":\"M8.99961 1.125C7.7046 1.12509 6.4296 1.44455 5.28753 2.05508C4.14547 2.66561 3.1716 3.54836 2.45217 4.62516C1.73275 5.70195 1.28998 6.93954 1.16308 8.22832C1.03618 9.5171 1.22907 10.8173 1.72466 12.0137C2.22025 13.2101 3.00325 14.2659 4.0043 15.0874C5.00535 15.909 6.19356 16.471 7.46368 16.7237C8.73381 16.9763 10.0466 16.9119 11.2859 16.536C12.5252 16.1601 13.6526 15.4844 14.5684 14.5688L15.3637 15.3641C14.3172 16.4113 13.0285 17.1841 11.6119 17.6141C10.1953 18.0442 8.69447 18.1182 7.24243 17.8295C5.79039 17.5409 4.43195 16.8986 3.28748 15.9595C2.143 15.0204 1.24784 13.8135 0.681284 12.4458C0.114733 11.078 -0.105707 9.59162 0.0394939 8.1183C0.184695 6.64499 0.691055 5.23024 1.51371 3.9994C2.33636 2.76855 3.44991 1.75962 4.75569 1.062C6.06147 0.364382 7.51916 -0.000392324 8.99961 3.16641e-07V1.125Z\",\"fill\":\"black\",\"key\":1}),React.createElement(\"path\",{\"fillRule\":\"evenodd\",\"clipRule\":\"evenodd\",\"d\":\"M8.4375 3.375C8.58668 3.375 8.72976 3.43426 8.83525 3.53975C8.94074 3.64524 9 3.78832 9 3.9375V9.79875L12.654 11.8867C12.7798 11.9626 12.8709 12.0847 12.9078 12.2268C12.9448 12.369 12.9247 12.5199 12.8518 12.6475C12.779 12.775 12.6591 12.869 12.5179 12.9093C12.3766 12.9496 12.2252 12.9331 12.096 12.8632L8.1585 10.6132C8.07241 10.5641 8.00084 10.493 7.95106 10.4073C7.90127 10.3215 7.87503 10.2241 7.875 10.125V3.9375C7.875 3.78832 7.93426 3.64524 8.03975 3.53975C8.14524 3.43426 8.28832 3.375 8.4375 3.375Z\",\"fill\":\"black\",\"key\":2})]),React.createElement(\"defs\",{\"key\":1},React.createElement(\"clipPath\",{\"id\":\"clip0_829_432\"},React.createElement(\"rect\",{\"width\":\"18\",\"height\":\"18\",\"fill\":\"white\"})))]);\n}\n\nClock.defaultProps = {\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"};\n\nmodule.exports = Clock;\n\nClock.default = Clock;\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","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","text","borderBottom","borderTop","babylon","textTranslate","setTextTranslate","Border","ContentContainer","toUpperCase","section","linkTitle","fullWidth","children","Link","to","post","fontColor","gradientBorder","date","frontmatter","minutes","Math","floor","wordCount","words","readingTime","fontColorClass100","fontColorClass10","fontColorHover","id","itemScope","itemType","itemProp","Quote","split","slice","join","Clock","LocalBusinessMetadata","_projectsData$allMark","_projectsData$allMark2","excludeId","projectsData","useStaticQuery","query","projects","allMarkdownRemark","nodes","filter","project","TemplateSection","map","i","ProjectPreview","key","theme","forwardRef","emblaRef","emblaApi","useEmblaCarousel","loop","dragFree","duration","align","Autoplay","delay","stopOnInteraction","stopOnMouseEnter","onMouseEnter","internalEngine","animation","stop","onMouseLeave","start","StackSection","_techData$markdownRem","_techData$markdownRem2","techData","techArr","markdownRemark","stack","StackCarousel","tech","review","company","person","position","location","image","html","avatar","getImage","GatsbyImage","alt","dangerouslySetInnerHTML","__html","ReviewsSection","_reviewsData$allMarkd","_reviewsData$allMarkd2","reviewsData","reviews","Review","PostSection","_postData$allMarkdown","_postData$allMarkdown2","postData","PostPreview","IndexPage","IconContext","Provider","value","style","verticalAlign","Banner","ProjectsSection","Head","props","createElement","defaultProps","module","exports","default","ChatRightQuote"],"sourceRoot":""} \ No newline at end of file diff --git a/component---src-pages-index-tsx-8f11132d55ccda45c143.js b/component---src-pages-index-tsx-8f11132d55ccda45c143.js deleted file mode 100644 index bbd061ff..00000000 --- a/component---src-pages-index-tsx-8f11132d55ccda45c143.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunkcode_cave=self.webpackChunkcode_cave||[]).push([[691],{1929:function(e,t,l){"use strict";l.d(t,{Z:function(){return c}});var n=l(7294),a=l(4471),r=l.n(a),s=l(1164);var i=e=>{let{className:t}=e;return n.createElement("div",{className:"flex justify-center items-center h-full w-full "+t},n.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"},n.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"}),n.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 o=()=>{const{0:e,1:t}=(0,n.useState)(!1),a=(0,n.useRef)(!0),r=(0,n.useRef)(null);return(0,n.useEffect)((()=>{if(!a.current||!r.current||"undefined"==typeof window)return;a.current=!1;const e=new Worker(new URL(l.p+l.u(475),l.b),{type:void 0});e.onmessage=e=>{let{data:l}=e;"ready"===l&&t(!0)};const n=r.current;n.width=n.clientWidth,n.height=n.clientHeight;const s=n.transferControlToOffscreen();e.postMessage({canvas:s},[s]);const i=()=>{e.postMessage({width:n.clientWidth,height:n.clientHeight})};window.addEventListener("resize",i);const o=t=>{t.preventDefault(),e.postMessage({wheel:t.deltaY})};n.addEventListener("wheel",o);const c=t=>{e.postMessage({x:t.movementX,y:t.movementY})};n.addEventListener("mousedown",(e=>{e.preventDefault(),window.addEventListener("mousemove",c),window.addEventListener("mouseup",(()=>window.removeEventListener("mousemove",c)),{once:!0})}));let m;return n.addEventListener("touchstart",(t=>{if(1!==t.touches.length)return;const l=t.touches[0];t.preventDefault();const n={x:l.screenX,y:l.screenY};m=t=>{const{newX:l,newY:a}=((t,l)=>{const n=t.touches[0];return e.postMessage({x:n.screenX-l.x,y:n.screenY-l.y}),{newX:n.screenX,newY:n.screenY}})(t,n);n.x=l,n.y=a},window.addEventListener("touchmove",m),window.addEventListener("touchend",(()=>{window.removeEventListener("touchmove",m)}))})),()=>{window&&(window.removeEventListener("resize",i),window.removeEventListener("mousemove",c),window.removeEventListener("touchmove",m)),n&&n.removeEventListener("wheel",o),e.postMessage({dispose:!0})}}),[]),n.createElement("div",{className:"h-full w-full relative"},n.createElement("canvas",{ref:r,className:"bg-main-100 h-160 w-full flex items-center justify-center cursor-pointer"}),e?null:n.createElement(i,{className:"absolute top-0 left-0 right-0 bottom-0 z-10"}))};var c=e=>{let{heightClass:t="min-h-160",title:l,text:a,className:i,borderBottom:c,borderTop:m,babylon:d}=e;const{0:u,1:f}=(0,n.useState)("translate-y-full");return(0,n.useEffect)((()=>{f("translate-y-0")}),[]),n.createElement("div",{className:"w-full flex items-center bg-main-100 relative overflow-hidden px-6 "+t+" "+i},m?n.createElement(r(),{className:"absolute top-0 left-0 right-0 w-full"}):null,n.createElement(s.Z,{className:"h-full flex flex-col lg:flex-row py-12 lg:py-0 items-center text-secondary-100 flex-grow"},n.createElement("div",{className:"flex flex-col overflow-hidden items-left h-full justify-center text-secondary-100 h-full w-full lg:w-1/2 bg-main-100"},n.createElement("h2",{className:"overflow-hidden mb-8 w-full"},n.createElement("span",{className:"inline-block font-['Rubik_Glitch'] text-5xl sm:text-6xl w-full text-center lg:text-start transition-all duration-1000 "+u},l.toUpperCase())),n.createElement("p",{className:"overflow-hidden w-full"},n.createElement("span",{className:"inline-block w-full text-3xl sm:text-4xl font-light text-center lg:text-start transition-all duration-1000 "+u},a.toUpperCase()))),d?n.createElement("div",{className:"w-[85%] lg:w-1/2 lg:h-full flex"},n.createElement(o,null)):null),c?n.createElement(r(),{className:"absolute bottom-0 left-0 right-0 w-full"}):null)}},216:function(e,t,l){"use strict";var n=l(7294),a=l(1883),r=l(1164);t.Z=e=>{let{section:t,title:l,linkTitle:s,className:i,fullWidth:o,children:c}=e;return n.createElement("section",{className:"w-full py-48 px-6 "+i},n.createElement(r.Z,{className:"flex-col items-center",fullWidth:o},n.createElement("div",{className:"flex justify-between w-full items-center pb-10 md:pb-16"},n.createElement("h3",{className:"text-4xl md:text-5xl font-black w-full max-w-7xl mx-auto pr-8"},l.toUpperCase()),t?n.createElement(a.Link,{to:"/"+t,className:"text-end text-2xl md:text-3xl text-secondary-10 hover:text-secondary-100 font-normal cursor-pointer whitespace-nowrap"},s?s.toUpperCase():"SEE MORE"," →"):null),c))}},3793:function(e,t,l){"use strict";var n=l(7294),a=l(1883),r=l(4344),s=l.n(r),i=l(4697),o=l.n(i),c=l(9165);t.Z=e=>{let{post:t,className:l,fontColor:r,gradientBorder:i}=e;const{date:m,title:d,text:u}=t.frontmatter,f=Math.floor(t.wordCount.words/200),h=f||1,p="main"===r?"text-main-100":"text-secondary-100",v="main"===r?"text-main-100":"text-secondary-10",x="main"===r?"hover:text-main-10":"hover:text-secondary-100";return n.createElement(a.Link,{to:"/blog/"+t.id,className:"flex flex-col sm:flex-row w-full "+v+" "+x+" "+l+" "+(i?"gradient-border":""),itemScope:!0,itemType:"https://schema.org/Article"},n.createElement("div",{className:"hidden md:flex md:basis-1/4 shrink-0 justify-center p-6",itemProp:"image"},n.createElement(s(),{className:"secondary"===r?"":"brightness-0"})),n.createElement("div",{className:"flex flex-col basis-1/2 md:basis-1/3 shrink-0 mb-12 sm:mb-0"},n.createElement("p",{className:"text-3xl font-light "+v+" pb-5"},m),n.createElement("h3",{className:"text-4xl font-bold "+p,itemProp:"headline"},d)),n.createElement("div",{className:"flex flex-col basis-1/2 md:basis-1/3 shrink-0"},n.createElement("p",{className:"font-normal text-2xl "+v,itemProp:"abstract"},u.split(" ").slice(0,60).join(" "),"..."),n.createElement("div",{className:"flex justify-between items-center pt-6"},n.createElement("p",{className:"text-2xl font-bold"},"Read more"),n.createElement("p",null,n.createElement(o(),{className:"inline"}),n.createElement("span",{className:"inline text-xl font-light italic pl-4"},"Reading time: ",h,"m.")))),n.createElement(c.L,{itemProp:"copyrightHolder"}))}},1601:function(e,t,l){"use strict";var n=l(7294),a=l(1883),r=l(6745),s=l(216);t.Z=e=>{var t,l;let{title:o,excludeId:c}=e;const m=(0,a.useStaticQuery)(i);let d=null!=m&&null!==(t=m.allMarkdownRemark)&&void 0!==t&&null!==(l=t.nodes)&&void 0!==l&&l.length?m.allMarkdownRemark.nodes:null;return d?(c&&(d=d.filter((e=>e.id!==c))),n.createElement(s.Z,{section:"projects",title:o||"OUR PROJECTS",className:"bg-main-100 text-secondary-100"},n.createElement("div",{className:"flex justify-between flex-col items-center sm:items-stretch sm:flex-row"},d.map(((e,t)=>{if(3!==t)return n.createElement(r.Z,{key:e.id,project:e,theme:"light",className:"basis-[48%] sm:last:hidden md:last:flex md:basis-[31%] mt-16 sm:mt-0"})}))))):n.createElement(n.Fragment,null)};const i="555951317"},735:function(e,t,l){"use strict";l.d(t,{Z:function(){return m}});var n=l(7294),a=l(1883),r=l(4471),s=l.n(r),i=l(7576),o=l(2074);var c=(0,n.forwardRef)(((e,t)=>{let{className:l,children:a}=e;const[r,s]=(0,i.Z)({loop:!0,dragFree:!0,duration:1e4,align:0},[(0,o.Z)({delay:0,stopOnInteraction:!1,stopOnMouseEnter:!0})]);return n.createElement("div",{className:"overflow-hidden "+l,ref:r},n.createElement("div",{ref:t,className:"h-full flex items-center",onMouseEnter:()=>{null==s||s.internalEngine().animation.stop()},onMouseLeave:()=>{null==s||s.internalEngine().animation.start()}},a))}));var m=()=>{var e,t;const l=(0,a.useStaticQuery)(d),r=null==l||null===(e=l.markdownRemark)||void 0===e||null===(t=e.frontmatter)||void 0===t?void 0:t.stack;return n.createElement(n.Fragment,null,r?n.createElement("section",{className:"h-28 flex flex-col relative",id:"clients"},n.createElement(c,{className:"grow"},r.map((e=>n.createElement("div",{key:e,className:"h-full shrink-0 min-w-0 cursor-pointer flex flex-col justify-between items-center content-center w-[352px] md:w-[400px] xl:w-[480px] 3xl:w-[576px]"},n.createElement(s(),{className:"min-w-0 shrink-0 w-full"}),n.createElement("p",{className:"text-4xl font-extrabold whitespace-nowrap"},e),n.createElement(s(),{className:"min-w-0 shrink-0 w-full"})))))):null)};const d="3518807326"},6183:function(e,t,l){"use strict";l.r(t),l.d(t,{Head:function(){return b},default:function(){return g}});var n=l(7294),a=l(9720),r=l(1929),s=l(735),i=l(1883),o=l(7576),c=l(2074),m=l(4471),d=l.n(m),u=l(8032);var f=e=>{let{review:{frontmatter:{company:t,person:l,position:a,location:r,image:s},html:i}}=e;const o=(0,u.c)(s);return n.createElement("div",{className:"h-full flex flex-col grow p-8 text-main-100",itemProp:"review",itemScope:!0,itemType:"https://schema.org/Review"},n.createElement("div",{className:"mb-6 flex flex-nowrap justify-start items-center border-b-[4px] border-dashed border-secondary-100 gradient-border pb-10",itemProp:"author",itemScope:!0,itemType:"https://schema.org/Person"},n.createElement("div",{className:"inline-block rounded-full h-32 w-32 flex items-center mr-10"},o?n.createElement(u.G,{image:o,alt:t,className:"h-full object-cover rounded-full h-32 w-32",itemProp:"image"}):null),n.createElement("div",null,n.createElement("h5",{className:"text-xl font-extrabold whitespace-nowrap",itemProp:"familyName"},l),n.createElement("h5",{className:"text-xl font-extrabold whitespace-nowrap"},n.createElement("span",{itemProp:"jobTitle"},a),","," ",n.createElement("span",{itemProp:"worksFor"},t)),n.createElement("h5",{className:"text-xl font-extrabold whitespace-nowrap",itemProp:"workLocation"},r))),n.createElement("div",{className:"review-body shrink-0 text-2xl",itemProp:"reviewBody",dangerouslySetInnerHTML:{__html:i}}))},h=l(216);var p=()=>{var e,t;const[l,a]=(0,o.Z)({loop:!0,dragFree:!0,duration:3e4,align:0},[(0,c.Z)({delay:0,stopOnInteraction:!1,stopOnMouseEnter:!0})]),r=(0,i.useStaticQuery)(v),s=null!=r&&null!==(e=r.allMarkdownRemark)&&void 0!==e&&null!==(t=e.nodes)&&void 0!==t&&t.length?r.allMarkdownRemark.nodes:null;return n.createElement(n.Fragment,null,s?n.createElement(n.Fragment,null,n.createElement(d(),{className:"w-full"}),n.createElement(h.Z,{fullWidth:!0,title:"our clients' testimonials",className:"bg-secondary-100 text-main-100 w-full"},n.createElement("div",{className:"w-full overflow-hidden min-h-max",ref:l},n.createElement("div",{id:"container",className:"flex",onMouseEnter:()=>{null==a||a.internalEngine().animation.stop()},onMouseLeave:()=>{null==a||a.internalEngine().animation.start()}},s.map((e=>n.createElement("div",{key:e.id,className:"flex shrink-0 min-w-0 cursor-pointer basis-full sm:basis-5/6 md:basis-4/6 lg:basis-1/2 xl:basis-2/5 3xl:basis-1/3 4xl:basis-1/4 rounded-2xl border-dashed border-main-10 mx-12 top-0 bottom-0"},n.createElement(f,{review:e}))))))),n.createElement(d(),{className:"w-full"})):null)};const v="687265830";var x=l(3793);var w=()=>{var e,t;const l=(0,i.useStaticQuery)(C),a=null!=l&&null!==(e=l.allMarkdownRemark)&&void 0!==e&&null!==(t=e.nodes)&&void 0!==t&&t.length?l.allMarkdownRemark.nodes[0]:null;return n.createElement(n.Fragment,null,a?n.createElement(h.Z,{title:"new in our blog",linkTitle:"all posts",section:"blog",className:"bg-main-100 text-secondary-100"},n.createElement(x.Z,{post:a,fontColor:"secondary"})):null)};const C="1671064017";var E=l(1601);var g=()=>n.createElement(a.Pd.Provider,{value:{style:{verticalAlign:"middle"}}},n.createElement(r.Z,{title:"OUTSTANDING OUTSOURCING",text:"the best developers ever",babylon:!0}),n.createElement(s.Z,null),n.createElement(E.Z,null),n.createElement(p,null),n.createElement(w,null));const b=()=>n.createElement("title",null,"CodeCave")},4471:function(e,t,l){var n=l(7294);function a(e){return n.createElement("svg",e,[n.createElement("line",{width:"800",height:"8",stroke:"white",strokeWidth:"8",strokeDasharray:"8 8",x1:"0",x2:"100%",y1:"4",y2:"4",key:0}),n.createElement("line",{width:"800",height:"8",stroke:"black",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},4344:function(e,t,l){var n=l(7294);function a(e){return n.createElement("svg",e,[n.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M15.875 7.9375H111.125C113.23 7.9375 115.249 8.77377 116.738 10.2623C118.226 11.7509 119.062 13.7698 119.062 15.875V107.839L103.188 91.9639C100.211 88.9865 96.1738 87.3134 91.9639 87.3125H15.875C13.7698 87.3125 11.7509 86.4762 10.2623 84.9877C8.77377 83.4991 7.9375 81.4802 7.9375 79.375V15.875C7.9375 13.7698 8.77377 11.7509 10.2623 10.2623C11.7509 8.77377 13.7698 7.9375 15.875 7.9375ZM111.125 0C115.335 0 119.373 1.67254 122.35 4.64968C125.327 7.62682 127 11.6647 127 15.875V117.419C127 118.205 126.767 118.972 126.33 119.625C125.893 120.278 125.273 120.786 124.547 121.086C123.822 121.386 123.023 121.464 122.253 121.31C121.483 121.156 120.776 120.777 120.221 120.221L97.5757 97.5757C96.0875 96.087 94.0689 95.2505 91.9639 95.25H15.875C11.6647 95.25 7.62682 93.5775 4.64968 90.6003C1.67254 87.6232 0 83.5853 0 79.375V15.875C0 11.6647 1.67254 7.62682 4.64968 4.64968C7.62682 1.67254 11.6647 0 15.875 0L111.125 0Z",fill:"#FAFAFA",key:0}),n.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M56.0865 37.7825C54.5404 35.3747 52.2544 33.5337 49.5723 32.5363C46.8902 31.5389 43.9569 31.439 41.2131 32.2515C38.4694 33.0641 36.0635 34.7453 34.357 37.0423C32.6506 39.3394 31.7358 42.1283 31.7502 44.9898C31.7516 47.3594 32.3893 49.6851 33.5968 51.7241C34.8042 53.763 36.537 55.4402 38.6142 56.5806C40.6914 57.721 43.0367 58.2826 45.4051 58.2069C47.7735 58.1311 50.0781 57.4207 52.0781 56.1499C51.0383 59.2376 49.1015 62.5316 45.9107 65.8336C45.3002 66.4652 44.9656 67.3134 44.9804 68.1916C44.9953 69.0699 45.3585 69.9063 45.99 70.5168C46.6216 71.1273 47.4698 71.4619 48.348 71.447C49.2263 71.4321 50.0627 71.0689 50.6732 70.4374C62.4683 58.2136 60.9364 44.9263 56.0865 37.7984V37.7825ZM87.8365 37.7825C86.2904 35.3747 84.0044 33.5337 81.3223 32.5363C78.6403 31.5389 75.7069 31.439 72.9631 32.2515C70.2194 33.0641 67.8135 34.7453 66.107 37.0423C64.4006 39.3394 63.4858 42.1283 63.5002 44.9898C63.5016 47.3594 64.1393 49.6851 65.3468 51.7241C66.5542 53.763 68.287 55.4402 70.3642 56.5806C72.4414 57.721 74.7867 58.2826 77.1551 58.2069C79.5235 58.1311 81.8281 57.4207 83.8281 56.1499C82.7883 59.2376 80.8515 62.5316 77.6607 65.8336C77.0502 66.4652 76.7156 67.3134 76.7304 68.1916C76.7453 69.0699 77.1085 69.9063 77.74 70.5168C78.3716 71.1273 79.2198 71.4619 80.098 71.447C80.9763 71.4321 81.8127 71.0689 82.4232 70.4374C94.2183 58.2136 92.6864 44.9263 87.8365 37.7984V37.7825Z",fill:"#FAFAFA",key:1})])}a.defaultProps={width:"127",height:"127",viewBox:"0 0 127 127",fill:"none"},e.exports=a,a.default=a},4697:function(e,t,l){var n=l(7294);function a(e){return n.createElement("svg",e,[n.createElement("g",{clipPath:"url(#clip0_829_432)",key:0},[n.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M9.57938 1.14638C9.38658 1.13214 9.19332 1.12501 9 1.125V0C9.2211 0.000107806 9.44213 0.00836341 9.66262 0.02475L9.57938 1.14638ZM11.8339 1.65263C11.4733 1.51347 11.1029 1.40104 10.7258 1.31625L10.9721 0.21825C11.403 0.315 11.8271 0.44325 12.2389 0.603L11.8339 1.65263ZM13.3751 2.45138C13.2143 2.34411 13.0495 2.24279 12.8812 2.14763L13.4359 1.16888C13.8205 1.38683 14.1886 1.63274 14.5372 1.90463L13.8454 2.79225C13.6929 2.67326 13.536 2.55993 13.3751 2.4525V2.45138ZM15.4384 4.46513C15.2158 4.14897 14.9703 3.84966 14.7037 3.56963L15.5182 2.79338C15.822 3.114 16.1032 3.45713 16.3586 3.81713L15.4384 4.46513ZM16.2754 5.98613C16.2015 5.80777 16.1212 5.63215 16.0346 5.45963L17.0392 4.95338C17.2379 5.34835 17.4071 5.75746 17.5455 6.17738L16.4767 6.5295C16.4163 6.34597 16.3491 6.16473 16.2754 5.98613ZM16.8716 8.8065C16.8625 8.41988 16.8249 8.03446 16.7591 7.65338L17.8672 7.46213C17.9426 7.89638 17.9865 8.33738 17.9977 8.77838L16.8727 8.8065H16.8716ZM16.7242 10.5368C16.7614 10.3455 16.7917 10.1554 16.8154 9.963L17.9325 10.1014C17.8785 10.5403 17.792 10.9746 17.6737 11.4008L16.5892 11.1004C16.641 10.9148 16.686 10.7269 16.7242 10.5368ZM15.6532 13.2131C15.8602 12.8869 16.0425 12.5449 16.2 12.1916L17.2282 12.6473C17.0482 13.0523 16.8401 13.4415 16.6039 13.815L15.6532 13.2131ZM14.5687 14.5688C14.706 14.4315 14.8376 14.2898 14.9625 14.1435L15.8152 14.8781C15.6708 15.0456 15.5204 15.2077 15.3641 15.3641L14.5687 14.5688Z",fill:"black",key:0}),n.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.99961 1.125C7.7046 1.12509 6.4296 1.44455 5.28753 2.05508C4.14547 2.66561 3.1716 3.54836 2.45217 4.62516C1.73275 5.70195 1.28998 6.93954 1.16308 8.22832C1.03618 9.5171 1.22907 10.8173 1.72466 12.0137C2.22025 13.2101 3.00325 14.2659 4.0043 15.0874C5.00535 15.909 6.19356 16.471 7.46368 16.7237C8.73381 16.9763 10.0466 16.9119 11.2859 16.536C12.5252 16.1601 13.6526 15.4844 14.5684 14.5688L15.3637 15.3641C14.3172 16.4113 13.0285 17.1841 11.6119 17.6141C10.1953 18.0442 8.69447 18.1182 7.24243 17.8295C5.79039 17.5409 4.43195 16.8986 3.28748 15.9595C2.143 15.0204 1.24784 13.8135 0.681284 12.4458C0.114733 11.078 -0.105707 9.59162 0.0394939 8.1183C0.184695 6.64499 0.691055 5.23024 1.51371 3.9994C2.33636 2.76855 3.44991 1.75962 4.75569 1.062C6.06147 0.364382 7.51916 -0.000392324 8.99961 3.16641e-07V1.125Z",fill:"black",key:1}),n.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.4375 3.375C8.58668 3.375 8.72976 3.43426 8.83525 3.53975C8.94074 3.64524 9 3.78832 9 3.9375V9.79875L12.654 11.8867C12.7798 11.9626 12.8709 12.0847 12.9078 12.2268C12.9448 12.369 12.9247 12.5199 12.8518 12.6475C12.779 12.775 12.6591 12.869 12.5179 12.9093C12.3766 12.9496 12.2252 12.9331 12.096 12.8632L8.1585 10.6132C8.07241 10.5641 8.00084 10.493 7.95106 10.4073C7.90127 10.3215 7.87503 10.2241 7.875 10.125V3.9375C7.875 3.78832 7.93426 3.64524 8.03975 3.53975C8.14524 3.43426 8.28832 3.375 8.4375 3.375Z",fill:"black",key:2})]),n.createElement("defs",{key:1},n.createElement("clipPath",{id:"clip0_829_432"},n.createElement("rect",{width:"18",height:"18",fill:"white"})))])}a.defaultProps={width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"},e.exports=a,a.default=a}}]); -//# sourceMappingURL=component---src-pages-index-tsx-8f11132d55ccda45c143.js.map \ No newline at end of file diff --git a/component---src-pages-index-tsx-8f11132d55ccda45c143.js.map b/component---src-pages-index-tsx-8f11132d55ccda45c143.js.map deleted file mode 100644 index 34c6541f..00000000 --- a/component---src-pages-index-tsx-8f11132d55ccda45c143.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"component---src-pages-index-tsx-8f11132d55ccda45c143.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/./src/components/common/templateSection.tsx","webpack://code-cave/./src/components/posts/postPreview.tsx","webpack://code-cave/./src/components/projects/projectsSection.tsx","webpack://code-cave/./src/components/stack/stackCarousel.tsx","webpack://code-cave/./src/components/stack/stackSection.tsx","webpack://code-cave/./src/components/reviews/review.tsx","webpack://code-cave/./src/components/reviews/reviewsSection.tsx","webpack://code-cave/./src/components/posts/postSection.tsx","webpack://code-cave/./src/pages/index.tsx","webpack://code-cave/./src/assets/common/border.svg","webpack://code-cave/./src/assets/common/chat-right-quote.svg","webpack://code-cave/./src/assets/common/clock.svg"],"sourcesContent":["import React from \"react\";\n\nconst Spinner = ({ className }: { className?: string }) => {\n return (\n <div\n className={`flex justify-center items-center h-full w-full ${className}`}\n >\n <svg\n aria-hidden=\"true\"\n className=\"w-8 h-8 mr-2 text-main-10 animate-spin dark:text-secondary-10 fill-main-100\"\n viewBox=\"0 0 100 101\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n 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\"\n fill=\"currentColor\"\n />\n <path\n 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\"\n fill=\"currentFill\"\n />\n </svg>\n </div>\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<boolean>(false);\n const isInitial = useRef<boolean>(true);\n const canvasRef = useRef<HTMLCanvasElement>(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);\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 window.addEventListener(\n \"mouseup\",\n () => window.removeEventListener(\"mousemove\", onMouseMoveHandler),\n { once: 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(\"touchstart\", (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 window.addEventListener(\"touchend\", () => {\n window.removeEventListener(\"touchmove\", onTouchMoveHandler);\n });\n });\n\n // UNMOUNT handler\n return () => {\n if (window) {\n window.removeEventListener(\"resize\", onResizeHandler);\n window.removeEventListener(\"mousemove\", onMouseMoveHandler);\n window.removeEventListener(\"touchmove\", onTouchMoveHandler);\n }\n if (canvas) {\n canvas.removeEventListener(\"wheel\", onWheelHandler);\n }\n babylonWorker.postMessage({ dispose: true });\n };\n }, []);\n\n return (\n <div className={`h-full w-full relative`}>\n <canvas\n ref={canvasRef}\n className={`bg-main-100 h-160 w-full flex items-center justify-center cursor-pointer`}\n />\n {!isBabylonReady ? (\n <Spinner className=\"absolute top-0 left-0 right-0 bottom-0 z-10\" />\n ) : null}\n </div>\n );\n};\n\nexport default Babylon;\n","import React, { useEffect, useState } from \"react\";\n\nimport Border from \"../../assets/common/border.svg\";\n\nimport ContentContainer from \"./contentContainer\";\nimport Babylon from \"../babylonjs/babylon\";\n\nconst Banner = ({\n heightClass = \"min-h-160\",\n title,\n text,\n className,\n borderBottom,\n borderTop,\n babylon,\n}: {\n heightClass?: string;\n title: string;\n text: string;\n className?: string;\n borderBottom?: boolean;\n borderTop?: boolean;\n babylon?: boolean;\n}) => {\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 <div\n className={`w-full flex items-center bg-main-100 relative overflow-hidden px-6 ${heightClass} ${className}`}\n >\n {borderTop ? (\n <Border className=\"absolute top-0 left-0 right-0 w-full\" />\n ) : null}\n <ContentContainer\n className={`h-full flex flex-col lg:flex-row py-12 lg:py-0 items-center text-secondary-100 flex-grow`}\n >\n <div className=\"flex flex-col overflow-hidden items-left h-full justify-center text-secondary-100 h-full w-full lg:w-1/2 bg-main-100\">\n <h2 className={`overflow-hidden mb-8 w-full`}>\n <span\n className={`inline-block font-['Rubik_Glitch'] text-5xl sm:text-6xl w-full text-center lg:text-start transition-all duration-1000 ${textTranslate}`}\n >\n {title.toUpperCase()}\n </span>\n </h2>\n <p className={`overflow-hidden w-full`}>\n <span\n className={`inline-block w-full text-3xl sm:text-4xl font-light text-center lg:text-start transition-all duration-1000 ${textTranslate}`}\n >\n {text.toUpperCase()}\n </span>\n </p>\n </div>\n {babylon ? (\n <div className=\"w-[85%] lg:w-1/2 lg:h-full flex\">\n <Babylon />\n </div>\n ) : null}\n </ContentContainer>\n {borderBottom ? (\n <Border className=\"absolute bottom-0 left-0 right-0 w-full\" />\n ) : null}\n </div>\n );\n};\n\nexport default Banner;\n","import React, { PropsWithChildren } from \"react\";\nimport { Link } from \"gatsby\";\n\nimport ContentContainer from \"./contentContainer\";\n\nconst TemplateSection = ({\n section,\n title,\n linkTitle,\n className,\n fullWidth,\n children,\n}: PropsWithChildren<{\n title: string;\n linkTitle?: string;\n section?: string;\n className?: string;\n fullWidth?: boolean;\n}>) => (\n <section className={`w-full py-48 px-6 ${className}`}>\n <ContentContainer className=\"flex-col items-center\" fullWidth={fullWidth}>\n <div className=\"flex justify-between w-full items-center pb-10 md:pb-16\">\n <h3 className=\"text-4xl md:text-5xl font-black w-full max-w-7xl mx-auto pr-8\">\n {title.toUpperCase()}\n </h3>\n {section ? (\n <Link\n to={`/${section}`}\n className=\"text-end text-2xl md:text-3xl text-secondary-10 hover:text-secondary-100 font-normal cursor-pointer whitespace-nowrap\"\n >\n {linkTitle ? linkTitle.toUpperCase() : \"SEE MORE\"} →\n </Link>\n ) : null}\n </div>\n {children}\n </ContentContainer>\n </section>\n);\n\nexport default TemplateSection;\n","import React from \"react\";\n\nimport { Link } from \"gatsby\";\n\nimport Quote from \"../../assets/common/chat-right-quote.svg\";\nimport Clock from \"../../assets/common/clock.svg\";\n\nimport { IPostPreviewQueryResult } from \"../../types/post.type\";\nimport { LocalBusinessMetadata } from \"../common/metadata\";\n\nconst PostPreview = ({\n post,\n className,\n fontColor,\n gradientBorder,\n}: {\n post: IPostPreviewQueryResult;\n className?: string;\n fontColor: \"main\" | \"secondary\";\n gradientBorder?: boolean;\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 fontColor === \"main\" ? \"text-main-100\" : \"text-secondary-100\";\n const fontColorClass10 =\n fontColor === \"main\" ? \"text-main-100\" : \"text-secondary-10\";\n const fontColorHover =\n fontColor === \"main\" ? \"hover:text-main-10\" : \"hover:text-secondary-100\";\n\n return (\n <Link\n to={`/blog/${post.id}`}\n className={`flex flex-col sm:flex-row w-full ${fontColorClass10} ${fontColorHover} ${className} ${\n gradientBorder ? \"gradient-border\" : \"\"\n }`}\n itemScope\n itemType=\"https://schema.org/Article\"\n >\n <div\n className=\"hidden md:flex md:basis-1/4 shrink-0 justify-center p-6\"\n itemProp=\"image\"\n >\n <Quote className={fontColor === \"secondary\" ? \"\" : \"brightness-0\"} />\n </div>\n <div className=\"flex flex-col basis-1/2 md:basis-1/3 shrink-0 mb-12 sm:mb-0\">\n <p className={`text-3xl font-light ${fontColorClass10} pb-5`}>{date}</p>\n <h3\n className={`text-4xl font-bold ${fontColorClass100}`}\n itemProp=\"headline\"\n >\n {title}\n </h3>\n </div>\n <div className=\"flex flex-col basis-1/2 md:basis-1/3 shrink-0\">\n <p\n className={`font-normal text-2xl ${fontColorClass10}`}\n itemProp=\"abstract\"\n >\n {text.split(\" \").slice(0, 60).join(\" \")}...\n </p>\n <div className=\"flex justify-between items-center pt-6\">\n <p className={`text-2xl font-bold`}>Read more</p>\n <p>\n <Clock className={\"inline\"} />\n\n <span className=\"inline text-xl font-light italic pl-4\">\n Reading time: {readingTime}m.\n </span>\n </p>\n </div>\n </div>\n <LocalBusinessMetadata itemProp=\"copyrightHolder\" />\n </Link>\n );\n};\n\nexport default PostPreview;\n","import React from \"react\";\n\nimport { graphql, useStaticQuery } from \"gatsby\";\n\nimport { IProjectPreviewQueryResult } from \"../../types/project.type\";\n\nimport ProjectPreview from \"./projectPreview\";\nimport TemplateSection from \"../common/templateSection\";\n\nconst ProjectsSection = ({\n title,\n excludeId,\n}: {\n title?: string;\n excludeId?: string;\n}) => {\n const projectsData = useStaticQuery(query);\n\n let projects = (\n projectsData?.allMarkdownRemark?.nodes?.length\n ? projectsData.allMarkdownRemark.nodes\n : null\n ) as IProjectPreviewQueryResult[] | null;\n\n if (!projects) return <></>;\n\n if (excludeId) {\n projects = projects.filter((project) => project.id !== excludeId);\n }\n\n return (\n <TemplateSection\n section=\"projects\"\n title={title ? title : \"OUR PROJECTS\"}\n className=\"bg-main-100 text-secondary-100\"\n >\n <div className=\"flex justify-between flex-col items-center sm:items-stretch sm:flex-row\">\n {projects.map((project, i) => {\n if (i === 3) return;\n return (\n <ProjectPreview\n key={project.id}\n project={project}\n theme=\"light\"\n className=\"basis-[48%] sm:last:hidden md:last:flex md:basis-[31%] mt-16 sm:mt-0\"\n />\n );\n })}\n </div>\n </TemplateSection>\n );\n};\n\nexport default ProjectsSection;\n\nexport const query = graphql`\n query {\n allMarkdownRemark(\n filter: { fields: { sourceName: { eq: \"projects\" } } }\n sort: { frontmatter: { date: DESC } }\n limit: 4\n ) {\n nodes {\n id\n frontmatter {\n title\n cover {\n childImageSharp {\n gatsbyImageData(\n width: 600\n formats: [AUTO, WEBP, AVIF]\n placeholder: BLURRED\n )\n }\n }\n }\n }\n }\n }\n`;\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: 0 },\n [\n Autoplay({\n delay: 0,\n stopOnInteraction: false,\n stopOnMouseEnter: true,\n }),\n ]\n );\n\n return (\n <div className={`overflow-hidden ${className}`} ref={emblaRef}>\n <div\n ref={ref}\n className=\"h-full flex items-center\"\n onMouseEnter={() => {\n emblaApi?.internalEngine().animation.stop();\n }}\n onMouseLeave={() => {\n emblaApi?.internalEngine().animation.start();\n }}\n >\n {children}\n </div>\n </div>\n );\n});\n\nexport default StackCarousel;\n","import React from \"react\";\nimport { useStaticQuery, graphql } from \"gatsby\";\n\nimport Border from \"../../assets/common/border.svg\";\nimport StackCarousel from \"./stackCarousel\";\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 <section className={`h-28 flex flex-col relative`} id=\"clients\">\n <StackCarousel className=\"grow\">\n {techArr.map((tech) => (\n <div\n key={tech}\n className=\"h-full shrink-0 min-w-0 cursor-pointer flex flex-col justify-between items-center content-center w-[352px] md:w-[400px] xl:w-[480px] 3xl:w-[576px]\"\n >\n <Border className={`min-w-0 shrink-0 w-full`} />\n <p className=\"text-4xl font-extrabold whitespace-nowrap\">\n {tech}\n </p>\n <Border className={`min-w-0 shrink-0 w-full`} />\n </div>\n ))}\n </StackCarousel>\n </section>\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 { GatsbyImage, getImage } from \"gatsby-plugin-image\";\n\nimport { IReviewQueryResult } from \"../../types/review.type\";\n\nconst Review = ({\n review: {\n frontmatter: { company, person, position, location, image },\n html,\n },\n}: {\n review: IReviewQueryResult;\n}) => {\n const avatar = getImage(image);\n\n return (\n <div\n className=\"h-full flex flex-col grow p-8 text-main-100\"\n itemProp=\"review\"\n itemScope\n itemType=\"https://schema.org/Review\"\n >\n <div\n className=\"mb-6 flex flex-nowrap justify-start items-center border-b-[4px] border-dashed border-secondary-100 gradient-border pb-10\"\n itemProp=\"author\"\n itemScope\n itemType=\"https://schema.org/Person\"\n >\n <div\n className={`inline-block rounded-full h-32 w-32 flex items-center mr-10`}\n >\n {avatar ? (\n <GatsbyImage\n image={avatar}\n alt={company}\n className=\"h-full object-cover rounded-full h-32 w-32\"\n itemProp=\"image\"\n />\n ) : null}\n </div>\n <div>\n <h5\n className=\"text-xl font-extrabold whitespace-nowrap\"\n itemProp=\"familyName\"\n >\n {person}\n </h5>\n <h5 className=\"text-xl font-extrabold whitespace-nowrap\">\n <span itemProp=\"jobTitle\">{position}</span>,{\" \"}\n <span itemProp=\"worksFor\">{company}</span>\n </h5>\n <h5\n className=\"text-xl font-extrabold whitespace-nowrap\"\n itemProp=\"workLocation\"\n >\n {location}\n </h5>\n </div>\n </div>\n <div\n className=\"review-body shrink-0 text-2xl\"\n itemProp=\"reviewBody\"\n dangerouslySetInnerHTML={{ __html: html }}\n />\n </div>\n );\n};\n\nexport default Review;\n","import React from \"react\";\n\nimport { graphql, useStaticQuery } from \"gatsby\";\n\nimport useEmblaCarousel from \"embla-carousel-react\";\nimport Autoplay from \"embla-carousel-autoplay\";\n\nimport { IReviewQueryResult } from \"../../types/review.type\";\n\nimport Border from \"../../assets/common/border.svg\";\nimport Review from \"./review\";\nimport TemplateSection from \"../common/templateSection\";\n\nconst ReviewsSection = () => {\n const [emblaRef, emblaApi] = useEmblaCarousel(\n { loop: true, dragFree: true, duration: 30000, align: 0 },\n [\n Autoplay({\n delay: 0,\n stopOnInteraction: false,\n stopOnMouseEnter: true,\n }),\n ]\n );\n\n const reviewsData = useStaticQuery(query);\n\n const reviews = (\n reviewsData?.allMarkdownRemark?.nodes?.length\n ? reviewsData.allMarkdownRemark.nodes\n : null\n ) as IReviewQueryResult[] | null;\n\n return (\n <>\n {reviews ? (\n <>\n <Border className=\"w-full\" />\n <TemplateSection\n fullWidth\n title={\"our clients' testimonials\"}\n className=\"bg-secondary-100 text-main-100 w-full\"\n >\n <div className=\"w-full overflow-hidden min-h-max\" ref={emblaRef}>\n <div\n id=\"container\"\n className=\"flex\"\n onMouseEnter={() => {\n emblaApi?.internalEngine().animation.stop();\n }}\n onMouseLeave={() => {\n emblaApi?.internalEngine().animation.start();\n }}\n >\n {reviews.map((review) => (\n <div\n key={review.id}\n className=\"flex shrink-0 min-w-0 cursor-pointer basis-full sm:basis-5/6 md:basis-4/6 lg:basis-1/2 xl:basis-2/5 3xl:basis-1/3 4xl:basis-1/4 rounded-2xl border-dashed border-main-10 mx-12 top-0 bottom-0\"\n >\n {<Review review={review} />}\n </div>\n ))}\n </div>\n </div>\n </TemplateSection>\n <Border className=\"w-full\" />\n </>\n ) : null}\n </>\n );\n};\n\nexport default ReviewsSection;\n\nexport const query = graphql`\n query {\n allMarkdownRemark(filter: { fields: { sourceName: { eq: \"reviews\" } } }) {\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 }\n`;\n","import React from \"react\";\n\nimport { graphql, useStaticQuery } from \"gatsby\";\n\nimport { IPostPreviewQueryResult } from \"../../types/post.type\";\n\nimport PostPreview from \"./postPreview\";\nimport TemplateSection from \"../common/templateSection\";\n\nconst PostSection = () => {\n const postData = useStaticQuery(query);\n\n const post = (\n postData?.allMarkdownRemark?.nodes?.length\n ? postData.allMarkdownRemark.nodes[0]\n : null\n ) as IPostPreviewQueryResult | null;\n\n return (\n <>\n {post ? (\n <TemplateSection\n title=\"new in our blog\"\n linkTitle=\"all posts\"\n section=\"blog\"\n className=\"bg-main-100 text-secondary-100\"\n >\n <PostPreview post={post} fontColor=\"secondary\" />\n </TemplateSection>\n ) : null}\n </>\n );\n};\n\nexport default PostSection;\n\nexport const query = graphql`\n query {\n allMarkdownRemark(\n filter: { fields: { sourceName: { eq: \"posts\" } } }\n sort: { frontmatter: { date: DESC } }\n limit: 1\n ) {\n nodes {\n id\n frontmatter {\n date(formatString: \"MMM DD, YYYY\")\n title\n text\n }\n wordCount {\n words\n }\n }\n }\n }\n`;\n","import * as React from \"react\";\nimport type { HeadFC } from \"gatsby\";\n\nimport { IconContext } from \"@react-icons/all-files\";\nimport \"../styles/styles.css\";\n\nimport Banner from \"../components/common/banner\";\nimport StackSection from \"../components/stack/stackSection\";\nimport ReviewsSection from \"../components/reviews/reviewsSection\";\nimport PostSection from \"../components/posts/postSection\";\nimport ProjectsSection from \"../components/projects/projectsSection\";\n\nconst IndexPage = () => {\n return (\n <IconContext.Provider value={{ style: { verticalAlign: \"middle\" } }}>\n <Banner\n title=\"OUTSTANDING OUTSOURCING\"\n text=\"the best developers ever\"\n babylon\n />\n <StackSection />\n <ProjectsSection />\n <ReviewsSection />\n <PostSection />\n </IconContext.Provider>\n );\n};\n\nexport default IndexPage;\n\nexport const Head: HeadFC = () => <title>CodeCave</title>;\n","var React = require('react');\n\nfunction Border (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"line\",{\"width\":\"800\",\"height\":\"8\",\"stroke\":\"white\",\"strokeWidth\":\"8\",\"strokeDasharray\":\"8 8\",\"x1\":\"0\",\"x2\":\"100%\",\"y1\":\"4\",\"y2\":\"4\",\"key\":0}),React.createElement(\"line\",{\"width\":\"800\",\"height\":\"8\",\"stroke\":\"black\",\"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","var React = require('react');\n\nfunction ChatRightQuote (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"path\",{\"fillRule\":\"evenodd\",\"clipRule\":\"evenodd\",\"d\":\"M15.875 7.9375H111.125C113.23 7.9375 115.249 8.77377 116.738 10.2623C118.226 11.7509 119.062 13.7698 119.062 15.875V107.839L103.188 91.9639C100.211 88.9865 96.1738 87.3134 91.9639 87.3125H15.875C13.7698 87.3125 11.7509 86.4762 10.2623 84.9877C8.77377 83.4991 7.9375 81.4802 7.9375 79.375V15.875C7.9375 13.7698 8.77377 11.7509 10.2623 10.2623C11.7509 8.77377 13.7698 7.9375 15.875 7.9375ZM111.125 0C115.335 0 119.373 1.67254 122.35 4.64968C125.327 7.62682 127 11.6647 127 15.875V117.419C127 118.205 126.767 118.972 126.33 119.625C125.893 120.278 125.273 120.786 124.547 121.086C123.822 121.386 123.023 121.464 122.253 121.31C121.483 121.156 120.776 120.777 120.221 120.221L97.5757 97.5757C96.0875 96.087 94.0689 95.2505 91.9639 95.25H15.875C11.6647 95.25 7.62682 93.5775 4.64968 90.6003C1.67254 87.6232 0 83.5853 0 79.375V15.875C0 11.6647 1.67254 7.62682 4.64968 4.64968C7.62682 1.67254 11.6647 0 15.875 0L111.125 0Z\",\"fill\":\"#FAFAFA\",\"key\":0}),React.createElement(\"path\",{\"fillRule\":\"evenodd\",\"clipRule\":\"evenodd\",\"d\":\"M56.0865 37.7825C54.5404 35.3747 52.2544 33.5337 49.5723 32.5363C46.8902 31.5389 43.9569 31.439 41.2131 32.2515C38.4694 33.0641 36.0635 34.7453 34.357 37.0423C32.6506 39.3394 31.7358 42.1283 31.7502 44.9898C31.7516 47.3594 32.3893 49.6851 33.5968 51.7241C34.8042 53.763 36.537 55.4402 38.6142 56.5806C40.6914 57.721 43.0367 58.2826 45.4051 58.2069C47.7735 58.1311 50.0781 57.4207 52.0781 56.1499C51.0383 59.2376 49.1015 62.5316 45.9107 65.8336C45.3002 66.4652 44.9656 67.3134 44.9804 68.1916C44.9953 69.0699 45.3585 69.9063 45.99 70.5168C46.6216 71.1273 47.4698 71.4619 48.348 71.447C49.2263 71.4321 50.0627 71.0689 50.6732 70.4374C62.4683 58.2136 60.9364 44.9263 56.0865 37.7984V37.7825ZM87.8365 37.7825C86.2904 35.3747 84.0044 33.5337 81.3223 32.5363C78.6403 31.5389 75.7069 31.439 72.9631 32.2515C70.2194 33.0641 67.8135 34.7453 66.107 37.0423C64.4006 39.3394 63.4858 42.1283 63.5002 44.9898C63.5016 47.3594 64.1393 49.6851 65.3468 51.7241C66.5542 53.763 68.287 55.4402 70.3642 56.5806C72.4414 57.721 74.7867 58.2826 77.1551 58.2069C79.5235 58.1311 81.8281 57.4207 83.8281 56.1499C82.7883 59.2376 80.8515 62.5316 77.6607 65.8336C77.0502 66.4652 76.7156 67.3134 76.7304 68.1916C76.7453 69.0699 77.1085 69.9063 77.74 70.5168C78.3716 71.1273 79.2198 71.4619 80.098 71.447C80.9763 71.4321 81.8127 71.0689 82.4232 70.4374C94.2183 58.2136 92.6864 44.9263 87.8365 37.7984V37.7825Z\",\"fill\":\"#FAFAFA\",\"key\":1})]);\n}\n\nChatRightQuote.defaultProps = {\"width\":\"127\",\"height\":\"127\",\"viewBox\":\"0 0 127 127\",\"fill\":\"none\"};\n\nmodule.exports = ChatRightQuote;\n\nChatRightQuote.default = ChatRightQuote;\n","var React = require('react');\n\nfunction Clock (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"g\",{\"clipPath\":\"url(#clip0_829_432)\",\"key\":0},[React.createElement(\"path\",{\"fillRule\":\"evenodd\",\"clipRule\":\"evenodd\",\"d\":\"M9.57938 1.14638C9.38658 1.13214 9.19332 1.12501 9 1.125V0C9.2211 0.000107806 9.44213 0.00836341 9.66262 0.02475L9.57938 1.14638ZM11.8339 1.65263C11.4733 1.51347 11.1029 1.40104 10.7258 1.31625L10.9721 0.21825C11.403 0.315 11.8271 0.44325 12.2389 0.603L11.8339 1.65263ZM13.3751 2.45138C13.2143 2.34411 13.0495 2.24279 12.8812 2.14763L13.4359 1.16888C13.8205 1.38683 14.1886 1.63274 14.5372 1.90463L13.8454 2.79225C13.6929 2.67326 13.536 2.55993 13.3751 2.4525V2.45138ZM15.4384 4.46513C15.2158 4.14897 14.9703 3.84966 14.7037 3.56963L15.5182 2.79338C15.822 3.114 16.1032 3.45713 16.3586 3.81713L15.4384 4.46513ZM16.2754 5.98613C16.2015 5.80777 16.1212 5.63215 16.0346 5.45963L17.0392 4.95338C17.2379 5.34835 17.4071 5.75746 17.5455 6.17738L16.4767 6.5295C16.4163 6.34597 16.3491 6.16473 16.2754 5.98613ZM16.8716 8.8065C16.8625 8.41988 16.8249 8.03446 16.7591 7.65338L17.8672 7.46213C17.9426 7.89638 17.9865 8.33738 17.9977 8.77838L16.8727 8.8065H16.8716ZM16.7242 10.5368C16.7614 10.3455 16.7917 10.1554 16.8154 9.963L17.9325 10.1014C17.8785 10.5403 17.792 10.9746 17.6737 11.4008L16.5892 11.1004C16.641 10.9148 16.686 10.7269 16.7242 10.5368ZM15.6532 13.2131C15.8602 12.8869 16.0425 12.5449 16.2 12.1916L17.2282 12.6473C17.0482 13.0523 16.8401 13.4415 16.6039 13.815L15.6532 13.2131ZM14.5687 14.5688C14.706 14.4315 14.8376 14.2898 14.9625 14.1435L15.8152 14.8781C15.6708 15.0456 15.5204 15.2077 15.3641 15.3641L14.5687 14.5688Z\",\"fill\":\"black\",\"key\":0}),React.createElement(\"path\",{\"fillRule\":\"evenodd\",\"clipRule\":\"evenodd\",\"d\":\"M8.99961 1.125C7.7046 1.12509 6.4296 1.44455 5.28753 2.05508C4.14547 2.66561 3.1716 3.54836 2.45217 4.62516C1.73275 5.70195 1.28998 6.93954 1.16308 8.22832C1.03618 9.5171 1.22907 10.8173 1.72466 12.0137C2.22025 13.2101 3.00325 14.2659 4.0043 15.0874C5.00535 15.909 6.19356 16.471 7.46368 16.7237C8.73381 16.9763 10.0466 16.9119 11.2859 16.536C12.5252 16.1601 13.6526 15.4844 14.5684 14.5688L15.3637 15.3641C14.3172 16.4113 13.0285 17.1841 11.6119 17.6141C10.1953 18.0442 8.69447 18.1182 7.24243 17.8295C5.79039 17.5409 4.43195 16.8986 3.28748 15.9595C2.143 15.0204 1.24784 13.8135 0.681284 12.4458C0.114733 11.078 -0.105707 9.59162 0.0394939 8.1183C0.184695 6.64499 0.691055 5.23024 1.51371 3.9994C2.33636 2.76855 3.44991 1.75962 4.75569 1.062C6.06147 0.364382 7.51916 -0.000392324 8.99961 3.16641e-07V1.125Z\",\"fill\":\"black\",\"key\":1}),React.createElement(\"path\",{\"fillRule\":\"evenodd\",\"clipRule\":\"evenodd\",\"d\":\"M8.4375 3.375C8.58668 3.375 8.72976 3.43426 8.83525 3.53975C8.94074 3.64524 9 3.78832 9 3.9375V9.79875L12.654 11.8867C12.7798 11.9626 12.8709 12.0847 12.9078 12.2268C12.9448 12.369 12.9247 12.5199 12.8518 12.6475C12.779 12.775 12.6591 12.869 12.5179 12.9093C12.3766 12.9496 12.2252 12.9331 12.096 12.8632L8.1585 10.6132C8.07241 10.5641 8.00084 10.493 7.95106 10.4073C7.90127 10.3215 7.87503 10.2241 7.875 10.125V3.9375C7.875 3.78832 7.93426 3.64524 8.03975 3.53975C8.14524 3.43426 8.28832 3.375 8.4375 3.375Z\",\"fill\":\"black\",\"key\":2})]),React.createElement(\"defs\",{\"key\":1},React.createElement(\"clipPath\",{\"id\":\"clip0_829_432\"},React.createElement(\"rect\",{\"width\":\"18\",\"height\":\"18\",\"fill\":\"white\"})))]);\n}\n\nClock.defaultProps = {\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"};\n\nmodule.exports = Clock;\n\nClock.default = Clock;\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","onWheelHandler","e","preventDefault","wheel","deltaY","onMouseMoveHandler","x","movementX","y","movementY","removeEventListener","once","onTouchMoveHandler","touches","length","firstTouch","previousCoords","screenX","screenY","newX","newY","nestedTouchMoveHandler","touch","dispose","ref","Spinner","heightClass","title","text","borderBottom","borderTop","babylon","textTranslate","setTextTranslate","Border","ContentContainer","toUpperCase","section","linkTitle","fullWidth","children","Link","to","post","fontColor","gradientBorder","date","frontmatter","minutes","Math","floor","wordCount","words","readingTime","fontColorClass100","fontColorClass10","fontColorHover","id","itemScope","itemType","itemProp","Quote","split","slice","join","Clock","LocalBusinessMetadata","_projectsData$allMark","_projectsData$allMark2","excludeId","projectsData","useStaticQuery","query","projects","allMarkdownRemark","nodes","filter","project","TemplateSection","map","i","ProjectPreview","key","theme","forwardRef","emblaRef","emblaApi","useEmblaCarousel","loop","dragFree","duration","align","Autoplay","delay","stopOnInteraction","stopOnMouseEnter","onMouseEnter","internalEngine","animation","stop","onMouseLeave","start","StackSection","_techData$markdownRem","_techData$markdownRem2","techData","techArr","markdownRemark","stack","StackCarousel","tech","review","company","person","position","location","image","html","avatar","getImage","GatsbyImage","alt","dangerouslySetInnerHTML","__html","ReviewsSection","_reviewsData$allMarkd","_reviewsData$allMarkd2","reviewsData","reviews","Review","PostSection","_postData$allMarkdown","_postData$allMarkdown2","postData","PostPreview","IndexPage","IconContext","Provider","value","style","verticalAlign","Banner","ProjectsSection","Head","props","createElement","defaultProps","module","exports","default","ChatRightQuote"],"sourceRoot":""} \ No newline at end of file diff --git a/component---src-pages-services-tsx-004b5c906bc78a1f96ae.js b/component---src-pages-services-tsx-004b5c906bc78a1f96ae.js new file mode 100644 index 00000000..1d05a3e2 --- /dev/null +++ b/component---src-pages-services-tsx-004b5c906bc78a1f96ae.js @@ -0,0 +1,2 @@ +(self.webpackChunkcode_cave=self.webpackChunkcode_cave||[]).push([[858],{1929:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var l=n(7294),r=n(4471),a=n.n(r),s=n(1164);var o=e=>{let{className:t}=e;return l.createElement("div",{className:"flex justify-center items-center h-full w-full "+t},l.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"},l.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"}),l.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 i=()=>{const{0:e,1:t}=(0,l.useState)(!1),r=(0,l.useRef)(!0),a=(0,l.useRef)(null);return(0,l.useEffect)((()=>{if(!r.current||!a.current||"undefined"==typeof window)return;r.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 l=a.current;l.width=l.clientWidth,l.height=l.clientHeight;const s=l.transferControlToOffscreen();e.postMessage({canvas:s},[s]);const o=()=>{e.postMessage({width:l.clientWidth,height:l.clientHeight})};window.addEventListener("resize",o);const i=t=>{t.preventDefault(),e.postMessage({wheel:t.deltaY})};l.addEventListener("wheel",i);const c=t=>{e.postMessage({x:t.movementX,y:t.movementY})};l.addEventListener("mousedown",(e=>{e.preventDefault(),window.addEventListener("mousemove",c),window.addEventListener("mouseup",(()=>window.removeEventListener("mousemove",c)),{once:!0})}));let m;return l.addEventListener("touchstart",(t=>{if(1!==t.touches.length)return;const n=t.touches[0];t.preventDefault();const l={x:n.screenX,y:n.screenY};m=t=>{const{newX:n,newY:r}=((t,n)=>{const l=t.touches[0];return e.postMessage({x:l.screenX-n.x,y:l.screenY-n.y}),{newX:l.screenX,newY:l.screenY}})(t,l);l.x=n,l.y=r},window.addEventListener("touchmove",m),window.addEventListener("touchend",(()=>{window.removeEventListener("touchmove",m)}))})),()=>{window&&(window.removeEventListener("resize",o),window.removeEventListener("mousemove",c),window.removeEventListener("touchmove",m),l&&l.removeEventListener("wheel",i),e.terminate())}}),[]),l.createElement("div",{className:"h-full w-full relative"},l.createElement("canvas",{ref:a,className:"bg-main-100 h-160 w-full flex items-center justify-center cursor-pointer"}),e?null:l.createElement(o,{className:"absolute top-0 left-0 right-0 bottom-0 z-10"}))};var c=e=>{let{heightClass:t="min-h-160",title:n,text:r,className:o,borderBottom:c,borderTop:m,babylon:u}=e;const{0:d,1:f}=(0,l.useState)("translate-y-full");return(0,l.useEffect)((()=>{f("translate-y-0")}),[]),l.createElement("div",{className:"w-full flex items-center bg-main-100 relative overflow-hidden px-6 "+t+" "+o},m?l.createElement(a(),{className:"absolute top-0 left-0 right-0 w-full"}):null,l.createElement(s.Z,{className:"h-full flex flex-col lg:flex-row py-12 lg:py-0 items-center text-secondary-100 flex-grow"},l.createElement("div",{className:"flex flex-col overflow-hidden items-left h-full justify-center text-secondary-100 h-full w-full lg:w-1/2 bg-main-100"},l.createElement("h2",{className:"overflow-hidden mb-8 w-full"},l.createElement("span",{className:"inline-block font-['Rubik_Glitch'] text-5xl sm:text-6xl w-full text-center lg:text-start transition-all duration-1000 "+d},n.toUpperCase())),l.createElement("p",{className:"overflow-hidden w-full"},l.createElement("span",{className:"inline-block w-full text-3xl sm:text-4xl font-light text-center lg:text-start transition-all duration-1000 "+d},r.toUpperCase()))),u?l.createElement("div",{className:"w-[85%] lg:w-1/2 lg:h-full flex"},l.createElement(i,null)):null),c?l.createElement(a(),{className:"absolute bottom-0 left-0 right-0 w-full"}):null)}},735:function(e,t,n){"use strict";n.d(t,{Z:function(){return m}});var l=n(7294),r=n(1883),a=n(4471),s=n.n(a),o=n(7576),i=n(2074);var c=(0,l.forwardRef)(((e,t)=>{let{className:n,children:r}=e;const[a,s]=(0,o.Z)({loop:!0,dragFree:!0,duration:1e4,align:0},[(0,i.Z)({delay:0,stopOnInteraction:!1,stopOnMouseEnter:!0})]);return l.createElement("div",{className:"overflow-hidden "+n,ref:a},l.createElement("div",{ref:t,className:"h-full flex items-center",onMouseEnter:()=>{null==s||s.internalEngine().animation.stop()},onMouseLeave:()=>{null==s||s.internalEngine().animation.start()}},r))}));var m=()=>{var e,t;const n=(0,r.useStaticQuery)(u),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-28 flex flex-col relative",id:"clients"},l.createElement(c,{className:"grow"},a.map((e=>l.createElement("div",{key:e,className:"h-full shrink-0 min-w-0 cursor-pointer flex flex-col justify-between items-center content-center w-[352px] md:w-[400px] xl:w-[480px] 3xl:w-[576px]"},l.createElement(s(),{className:"min-w-0 shrink-0 w-full"}),l.createElement("p",{className:"text-4xl font-extrabold whitespace-nowrap"},e),l.createElement(s(),{className:"min-w-0 shrink-0 w-full"})))))):null)};const u="3518807326"},8253:function(e,t,n){"use strict";n.r(t),n.d(t,{Head:function(){return m},default:function(){return c}});var l=n(7294),r=n(1883),a=n(1929),s=n(1164);var o=e=>{let{service:t,className:n}=e;const{html:r,frontmatter:{title:a,image:{publicURL:s}}}=t;return l.createElement("div",{className:"service-preview break-inside-avoid flex flex-col h-min rounded-2xl p-10 mx-2 my-10 first:mt-0 md:mx-3 border-[3px] border-dashed border-main-100 text-secondary-100 cursor-pointer hover:invert transition "+n,itemScope:!0,itemType:"https://schema.org/Service"},l.createElement("div",{className:"flex items-center"},l.createElement("img",{src:s,alt:a+" logo",className:"mr-7 invert"}),l.createElement("h4",{className:"font-extrabold text-2xl",itemProp:"serviceType"},a)),l.createElement("div",{className:"text-xl",dangerouslySetInnerHTML:{__html:r},itemProp:"description"}))},i=n(735);var c=()=>{var e,t;const n=(0,r.useStaticQuery)(u);let c=null!=n&&null!==(e=n.allMarkdownRemark)&&void 0!==e&&null!==(t=e.nodes)&&void 0!==t&&t.length?n.allMarkdownRemark.nodes:null;return l.createElement(l.Fragment,null,l.createElement(a.Z,{heightClass:"h-136",title:"our expertise is your advantage",text:""}),l.createElement(i.Z,null),l.createElement("div",{className:"bg-main-100"},l.createElement(s.Z,{className:"flex-col items-center p-6 md:p-12"},l.createElement("div",{className:"columns-1 md:columns-2 w-full py-14"},c?c.map((e=>l.createElement(o,{service:e,key:e.id}))):null))))};const m=()=>l.createElement("title",null,"CodeCave Services"),u="2803081629"},4471:function(e,t,n){var l=n(7294);function r(e){return l.createElement("svg",e,[l.createElement("line",{width:"800",height:"8",stroke:"white",strokeWidth:"8",strokeDasharray:"8 8",x1:"0",x2:"100%",y1:"4",y2:"4",key:0}),l.createElement("line",{width:"800",height:"8",stroke:"black",strokeWidth:"8",strokeDasharray:"8 8",x1:"8",x2:"100%",y1:"4",y2:"4",key:1})])}r.defaultProps={height:"8"},e.exports=r,r.default=r}}]); +//# sourceMappingURL=component---src-pages-services-tsx-004b5c906bc78a1f96ae.js.map \ No newline at end of file diff --git a/component---src-pages-services-tsx-004b5c906bc78a1f96ae.js.map b/component---src-pages-services-tsx-004b5c906bc78a1f96ae.js.map new file mode 100644 index 00000000..fa322e29 --- /dev/null +++ b/component---src-pages-services-tsx-004b5c906bc78a1f96ae.js.map @@ -0,0 +1 @@ +{"version":3,"file":"component---src-pages-services-tsx-004b5c906bc78a1f96ae.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/./src/components/stack/stackCarousel.tsx","webpack://code-cave/./src/components/stack/stackSection.tsx","webpack://code-cave/./src/components/services/servicePreview.tsx","webpack://code-cave/./src/pages/services.tsx","webpack://code-cave/./src/assets/common/border.svg"],"sourcesContent":["import React from \"react\";\n\nconst Spinner = ({ className }: { className?: string }) => {\n return (\n <div\n className={`flex justify-center items-center h-full w-full ${className}`}\n >\n <svg\n aria-hidden=\"true\"\n className=\"w-8 h-8 mr-2 text-main-10 animate-spin dark:text-secondary-10 fill-main-100\"\n viewBox=\"0 0 100 101\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n 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\"\n fill=\"currentColor\"\n />\n <path\n 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\"\n fill=\"currentFill\"\n />\n </svg>\n </div>\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<boolean>(false);\n const isInitial = useRef<boolean>(true);\n const canvasRef = useRef<HTMLCanvasElement>(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);\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 window.addEventListener(\n \"mouseup\",\n () => window.removeEventListener(\"mousemove\", onMouseMoveHandler),\n { once: 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(\"touchstart\", (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 window.addEventListener(\"touchend\", () => {\n window.removeEventListener(\"touchmove\", onTouchMoveHandler);\n });\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 <div className={`h-full w-full relative`}>\n <canvas\n ref={canvasRef}\n className={`bg-main-100 h-160 w-full flex items-center justify-center cursor-pointer`}\n />\n {!isBabylonReady ? (\n <Spinner className=\"absolute top-0 left-0 right-0 bottom-0 z-10\" />\n ) : null}\n </div>\n );\n};\n\nexport default Babylon;\n","import React, { useEffect, useState } from \"react\";\n\nimport Border from \"../../assets/common/border.svg\";\n\nimport ContentContainer from \"./contentContainer\";\nimport Babylon from \"../babylonjs/babylon\";\n\nconst Banner = ({\n heightClass = \"min-h-160\",\n title,\n text,\n className,\n borderBottom,\n borderTop,\n babylon,\n}: {\n heightClass?: string;\n title: string;\n text: string;\n className?: string;\n borderBottom?: boolean;\n borderTop?: boolean;\n babylon?: boolean;\n}) => {\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 <div\n className={`w-full flex items-center bg-main-100 relative overflow-hidden px-6 ${heightClass} ${className}`}\n >\n {borderTop ? (\n <Border className=\"absolute top-0 left-0 right-0 w-full\" />\n ) : null}\n <ContentContainer\n className={`h-full flex flex-col lg:flex-row py-12 lg:py-0 items-center text-secondary-100 flex-grow`}\n >\n <div className=\"flex flex-col overflow-hidden items-left h-full justify-center text-secondary-100 h-full w-full lg:w-1/2 bg-main-100\">\n <h2 className={`overflow-hidden mb-8 w-full`}>\n <span\n className={`inline-block font-['Rubik_Glitch'] text-5xl sm:text-6xl w-full text-center lg:text-start transition-all duration-1000 ${textTranslate}`}\n >\n {title.toUpperCase()}\n </span>\n </h2>\n <p className={`overflow-hidden w-full`}>\n <span\n className={`inline-block w-full text-3xl sm:text-4xl font-light text-center lg:text-start transition-all duration-1000 ${textTranslate}`}\n >\n {text.toUpperCase()}\n </span>\n </p>\n </div>\n {babylon ? (\n <div className=\"w-[85%] lg:w-1/2 lg:h-full flex\">\n <Babylon />\n </div>\n ) : null}\n </ContentContainer>\n {borderBottom ? (\n <Border className=\"absolute bottom-0 left-0 right-0 w-full\" />\n ) : null}\n </div>\n );\n};\n\nexport default Banner;\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: 0 },\n [\n Autoplay({\n delay: 0,\n stopOnInteraction: false,\n stopOnMouseEnter: true,\n }),\n ]\n );\n\n return (\n <div className={`overflow-hidden ${className}`} ref={emblaRef}>\n <div\n ref={ref}\n className=\"h-full flex items-center\"\n onMouseEnter={() => {\n emblaApi?.internalEngine().animation.stop();\n }}\n onMouseLeave={() => {\n emblaApi?.internalEngine().animation.start();\n }}\n >\n {children}\n </div>\n </div>\n );\n});\n\nexport default StackCarousel;\n","import React from \"react\";\nimport { useStaticQuery, graphql } from \"gatsby\";\n\nimport Border from \"../../assets/common/border.svg\";\nimport StackCarousel from \"./stackCarousel\";\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 <section className={`h-28 flex flex-col relative`} id=\"clients\">\n <StackCarousel className=\"grow\">\n {techArr.map((tech) => (\n <div\n key={tech}\n className=\"h-full shrink-0 min-w-0 cursor-pointer flex flex-col justify-between items-center content-center w-[352px] md:w-[400px] xl:w-[480px] 3xl:w-[576px]\"\n >\n <Border className={`min-w-0 shrink-0 w-full`} />\n <p className=\"text-4xl font-extrabold whitespace-nowrap\">\n {tech}\n </p>\n <Border className={`min-w-0 shrink-0 w-full`} />\n </div>\n ))}\n </StackCarousel>\n </section>\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 { 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 image: { publicURL: imageURL },\n },\n } = service;\n\n return (\n <div\n className={`service-preview break-inside-avoid flex flex-col h-min rounded-2xl p-10 mx-2 my-10 first:mt-0 md:mx-3 border-[3px] border-dashed border-main-100 text-secondary-100 cursor-pointer hover:invert transition ${className}`}\n itemScope\n itemType=\"https://schema.org/Service\"\n >\n <div className=\"flex items-center\">\n <img src={imageURL} alt={`${title} logo`} className=\"mr-7 invert\" />\n <h4 className=\"font-extrabold text-2xl\" itemProp=\"serviceType\">\n {title}\n </h4>\n </div>\n <div\n className={`text-xl`}\n dangerouslySetInnerHTML={{ __html: html }}\n itemProp=\"description\"\n />\n </div>\n );\n};\n\nexport default ServicePreview;\n","import React from \"react\";\n\nimport { HeadFC, useStaticQuery } from \"gatsby\";\nimport { graphql } from \"gatsby\";\n\nimport { IServicePreview } from \"../types/services.type\";\n\nimport Banner from \"../components/common/banner\";\nimport ContentContainer from \"../components/common/contentContainer\";\nimport ServicePreview from \"../components/services/servicePreview\";\nimport StackSection from \"../components/stack/stackSection\";\n\nconst Services = () => {\n const servicesData = useStaticQuery(query);\n let services = (\n servicesData?.allMarkdownRemark?.nodes?.length\n ? servicesData.allMarkdownRemark.nodes\n : null\n ) as IServicePreview[] | null;\n\n return (\n <>\n <Banner\n heightClass=\"h-136\"\n title=\"our expertise is your advantage\"\n text=\"\"\n />\n <StackSection />\n <div className=\"bg-main-100\">\n <ContentContainer className=\"flex-col items-center p-6 md:p-12\">\n <div className=\"columns-1 md:columns-2 w-full py-14\">\n {services\n ? services.map((service) => (\n <ServicePreview service={service} key={service.id} />\n ))\n : null}\n </div>\n </ContentContainer>\n </div>\n </>\n );\n};\n\nexport default Services;\n\nexport const Head: HeadFC = () => <title>CodeCave Services</title>;\n\nconst query = graphql`\n query {\n allMarkdownRemark(filter: { fields: { sourceName: { eq: \"services\" } } }) {\n nodes {\n id\n html\n frontmatter {\n title\n image {\n publicURL\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\":\"white\",\"strokeWidth\":\"8\",\"strokeDasharray\":\"8 8\",\"x1\":\"0\",\"x2\":\"100%\",\"y1\":\"4\",\"y2\":\"4\",\"key\":0}),React.createElement(\"line\",{\"width\":\"800\",\"height\":\"8\",\"stroke\":\"black\",\"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","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","text","borderBottom","borderTop","babylon","textTranslate","setTextTranslate","Border","ContentContainer","toUpperCase","forwardRef","children","emblaRef","emblaApi","useEmblaCarousel","loop","dragFree","duration","align","Autoplay","delay","stopOnInteraction","stopOnMouseEnter","onMouseEnter","internalEngine","animation","stop","onMouseLeave","start","StackSection","_techData$markdownRem","_techData$markdownRem2","techData","useStaticQuery","query","techArr","markdownRemark","frontmatter","stack","id","StackCarousel","map","tech","key","service","html","image","publicURL","imageURL","itemScope","itemType","src","alt","itemProp","dangerouslySetInnerHTML","__html","Services","_servicesData$allMark","_servicesData$allMark2","servicesData","services","allMarkdownRemark","nodes","Banner","ServicePreview","Head","props","createElement","defaultProps","module","exports","default"],"sourceRoot":""} \ No newline at end of file diff --git a/component---src-pages-services-tsx-ad089d9c65e0d5421453.js b/component---src-pages-services-tsx-ad089d9c65e0d5421453.js deleted file mode 100644 index b4bab7a5..00000000 --- a/component---src-pages-services-tsx-ad089d9c65e0d5421453.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunkcode_cave=self.webpackChunkcode_cave||[]).push([[858],{1929:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var l=n(7294),r=n(4471),a=n.n(r),s=n(1164);var o=e=>{let{className:t}=e;return l.createElement("div",{className:"flex justify-center items-center h-full w-full "+t},l.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"},l.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"}),l.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 i=()=>{const{0:e,1:t}=(0,l.useState)(!1),r=(0,l.useRef)(!0),a=(0,l.useRef)(null);return(0,l.useEffect)((()=>{if(!r.current||!a.current||"undefined"==typeof window)return;r.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 l=a.current;l.width=l.clientWidth,l.height=l.clientHeight;const s=l.transferControlToOffscreen();e.postMessage({canvas:s},[s]);const o=()=>{e.postMessage({width:l.clientWidth,height:l.clientHeight})};window.addEventListener("resize",o);const i=t=>{t.preventDefault(),e.postMessage({wheel:t.deltaY})};l.addEventListener("wheel",i);const c=t=>{e.postMessage({x:t.movementX,y:t.movementY})};l.addEventListener("mousedown",(e=>{e.preventDefault(),window.addEventListener("mousemove",c),window.addEventListener("mouseup",(()=>window.removeEventListener("mousemove",c)),{once:!0})}));let m;return l.addEventListener("touchstart",(t=>{if(1!==t.touches.length)return;const n=t.touches[0];t.preventDefault();const l={x:n.screenX,y:n.screenY};m=t=>{const{newX:n,newY:r}=((t,n)=>{const l=t.touches[0];return e.postMessage({x:l.screenX-n.x,y:l.screenY-n.y}),{newX:l.screenX,newY:l.screenY}})(t,l);l.x=n,l.y=r},window.addEventListener("touchmove",m),window.addEventListener("touchend",(()=>{window.removeEventListener("touchmove",m)}))})),()=>{window&&(window.removeEventListener("resize",o),window.removeEventListener("mousemove",c),window.removeEventListener("touchmove",m)),l&&l.removeEventListener("wheel",i),e.postMessage({dispose:!0})}}),[]),l.createElement("div",{className:"h-full w-full relative"},l.createElement("canvas",{ref:a,className:"bg-main-100 h-160 w-full flex items-center justify-center cursor-pointer"}),e?null:l.createElement(o,{className:"absolute top-0 left-0 right-0 bottom-0 z-10"}))};var c=e=>{let{heightClass:t="min-h-160",title:n,text:r,className:o,borderBottom:c,borderTop:m,babylon:u}=e;const{0:d,1:f}=(0,l.useState)("translate-y-full");return(0,l.useEffect)((()=>{f("translate-y-0")}),[]),l.createElement("div",{className:"w-full flex items-center bg-main-100 relative overflow-hidden px-6 "+t+" "+o},m?l.createElement(a(),{className:"absolute top-0 left-0 right-0 w-full"}):null,l.createElement(s.Z,{className:"h-full flex flex-col lg:flex-row py-12 lg:py-0 items-center text-secondary-100 flex-grow"},l.createElement("div",{className:"flex flex-col overflow-hidden items-left h-full justify-center text-secondary-100 h-full w-full lg:w-1/2 bg-main-100"},l.createElement("h2",{className:"overflow-hidden mb-8 w-full"},l.createElement("span",{className:"inline-block font-['Rubik_Glitch'] text-5xl sm:text-6xl w-full text-center lg:text-start transition-all duration-1000 "+d},n.toUpperCase())),l.createElement("p",{className:"overflow-hidden w-full"},l.createElement("span",{className:"inline-block w-full text-3xl sm:text-4xl font-light text-center lg:text-start transition-all duration-1000 "+d},r.toUpperCase()))),u?l.createElement("div",{className:"w-[85%] lg:w-1/2 lg:h-full flex"},l.createElement(i,null)):null),c?l.createElement(a(),{className:"absolute bottom-0 left-0 right-0 w-full"}):null)}},735:function(e,t,n){"use strict";n.d(t,{Z:function(){return m}});var l=n(7294),r=n(1883),a=n(4471),s=n.n(a),o=n(7576),i=n(2074);var c=(0,l.forwardRef)(((e,t)=>{let{className:n,children:r}=e;const[a,s]=(0,o.Z)({loop:!0,dragFree:!0,duration:1e4,align:0},[(0,i.Z)({delay:0,stopOnInteraction:!1,stopOnMouseEnter:!0})]);return l.createElement("div",{className:"overflow-hidden "+n,ref:a},l.createElement("div",{ref:t,className:"h-full flex items-center",onMouseEnter:()=>{null==s||s.internalEngine().animation.stop()},onMouseLeave:()=>{null==s||s.internalEngine().animation.start()}},r))}));var m=()=>{var e,t;const n=(0,r.useStaticQuery)(u),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-28 flex flex-col relative",id:"clients"},l.createElement(c,{className:"grow"},a.map((e=>l.createElement("div",{key:e,className:"h-full shrink-0 min-w-0 cursor-pointer flex flex-col justify-between items-center content-center w-[352px] md:w-[400px] xl:w-[480px] 3xl:w-[576px]"},l.createElement(s(),{className:"min-w-0 shrink-0 w-full"}),l.createElement("p",{className:"text-4xl font-extrabold whitespace-nowrap"},e),l.createElement(s(),{className:"min-w-0 shrink-0 w-full"})))))):null)};const u="3518807326"},8253:function(e,t,n){"use strict";n.r(t),n.d(t,{Head:function(){return m},default:function(){return c}});var l=n(7294),r=n(1883),a=n(1929),s=n(1164);var o=e=>{let{service:t,className:n}=e;const{html:r,frontmatter:{title:a,image:{publicURL:s}}}=t;return l.createElement("div",{className:"service-preview break-inside-avoid flex flex-col h-min rounded-2xl p-10 mx-2 my-10 first:mt-0 md:mx-3 border-[3px] border-dashed border-main-100 text-secondary-100 cursor-pointer hover:invert transition "+n,itemScope:!0,itemType:"https://schema.org/Service"},l.createElement("div",{className:"flex items-center"},l.createElement("img",{src:s,alt:a+" logo",className:"mr-7 invert"}),l.createElement("h4",{className:"font-extrabold text-2xl",itemProp:"serviceType"},a)),l.createElement("div",{className:"text-xl",dangerouslySetInnerHTML:{__html:r},itemProp:"description"}))},i=n(735);var c=()=>{var e,t;const n=(0,r.useStaticQuery)(u);let c=null!=n&&null!==(e=n.allMarkdownRemark)&&void 0!==e&&null!==(t=e.nodes)&&void 0!==t&&t.length?n.allMarkdownRemark.nodes:null;return l.createElement(l.Fragment,null,l.createElement(a.Z,{heightClass:"h-136",title:"our expertise is your advantage",text:""}),l.createElement(i.Z,null),l.createElement("div",{className:"bg-main-100"},l.createElement(s.Z,{className:"flex-col items-center p-6 md:p-12"},l.createElement("div",{className:"columns-1 md:columns-2 w-full py-14"},c?c.map((e=>l.createElement(o,{service:e,key:e.id}))):null))))};const m=()=>l.createElement("title",null,"CodeCave Services"),u="2803081629"},4471:function(e,t,n){var l=n(7294);function r(e){return l.createElement("svg",e,[l.createElement("line",{width:"800",height:"8",stroke:"white",strokeWidth:"8",strokeDasharray:"8 8",x1:"0",x2:"100%",y1:"4",y2:"4",key:0}),l.createElement("line",{width:"800",height:"8",stroke:"black",strokeWidth:"8",strokeDasharray:"8 8",x1:"8",x2:"100%",y1:"4",y2:"4",key:1})])}r.defaultProps={height:"8"},e.exports=r,r.default=r}}]); -//# sourceMappingURL=component---src-pages-services-tsx-ad089d9c65e0d5421453.js.map \ No newline at end of file diff --git a/component---src-pages-services-tsx-ad089d9c65e0d5421453.js.map b/component---src-pages-services-tsx-ad089d9c65e0d5421453.js.map deleted file mode 100644 index 434cc20d..00000000 --- a/component---src-pages-services-tsx-ad089d9c65e0d5421453.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"component---src-pages-services-tsx-ad089d9c65e0d5421453.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/./src/components/stack/stackCarousel.tsx","webpack://code-cave/./src/components/stack/stackSection.tsx","webpack://code-cave/./src/components/services/servicePreview.tsx","webpack://code-cave/./src/pages/services.tsx","webpack://code-cave/./src/assets/common/border.svg"],"sourcesContent":["import React from \"react\";\n\nconst Spinner = ({ className }: { className?: string }) => {\n return (\n <div\n className={`flex justify-center items-center h-full w-full ${className}`}\n >\n <svg\n aria-hidden=\"true\"\n className=\"w-8 h-8 mr-2 text-main-10 animate-spin dark:text-secondary-10 fill-main-100\"\n viewBox=\"0 0 100 101\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n 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\"\n fill=\"currentColor\"\n />\n <path\n 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\"\n fill=\"currentFill\"\n />\n </svg>\n </div>\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<boolean>(false);\n const isInitial = useRef<boolean>(true);\n const canvasRef = useRef<HTMLCanvasElement>(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);\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 window.addEventListener(\n \"mouseup\",\n () => window.removeEventListener(\"mousemove\", onMouseMoveHandler),\n { once: 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(\"touchstart\", (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 window.addEventListener(\"touchend\", () => {\n window.removeEventListener(\"touchmove\", onTouchMoveHandler);\n });\n });\n\n // UNMOUNT handler\n return () => {\n if (window) {\n window.removeEventListener(\"resize\", onResizeHandler);\n window.removeEventListener(\"mousemove\", onMouseMoveHandler);\n window.removeEventListener(\"touchmove\", onTouchMoveHandler);\n }\n if (canvas) {\n canvas.removeEventListener(\"wheel\", onWheelHandler);\n }\n babylonWorker.postMessage({ dispose: true });\n };\n }, []);\n\n return (\n <div className={`h-full w-full relative`}>\n <canvas\n ref={canvasRef}\n className={`bg-main-100 h-160 w-full flex items-center justify-center cursor-pointer`}\n />\n {!isBabylonReady ? (\n <Spinner className=\"absolute top-0 left-0 right-0 bottom-0 z-10\" />\n ) : null}\n </div>\n );\n};\n\nexport default Babylon;\n","import React, { useEffect, useState } from \"react\";\n\nimport Border from \"../../assets/common/border.svg\";\n\nimport ContentContainer from \"./contentContainer\";\nimport Babylon from \"../babylonjs/babylon\";\n\nconst Banner = ({\n heightClass = \"min-h-160\",\n title,\n text,\n className,\n borderBottom,\n borderTop,\n babylon,\n}: {\n heightClass?: string;\n title: string;\n text: string;\n className?: string;\n borderBottom?: boolean;\n borderTop?: boolean;\n babylon?: boolean;\n}) => {\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 <div\n className={`w-full flex items-center bg-main-100 relative overflow-hidden px-6 ${heightClass} ${className}`}\n >\n {borderTop ? (\n <Border className=\"absolute top-0 left-0 right-0 w-full\" />\n ) : null}\n <ContentContainer\n className={`h-full flex flex-col lg:flex-row py-12 lg:py-0 items-center text-secondary-100 flex-grow`}\n >\n <div className=\"flex flex-col overflow-hidden items-left h-full justify-center text-secondary-100 h-full w-full lg:w-1/2 bg-main-100\">\n <h2 className={`overflow-hidden mb-8 w-full`}>\n <span\n className={`inline-block font-['Rubik_Glitch'] text-5xl sm:text-6xl w-full text-center lg:text-start transition-all duration-1000 ${textTranslate}`}\n >\n {title.toUpperCase()}\n </span>\n </h2>\n <p className={`overflow-hidden w-full`}>\n <span\n className={`inline-block w-full text-3xl sm:text-4xl font-light text-center lg:text-start transition-all duration-1000 ${textTranslate}`}\n >\n {text.toUpperCase()}\n </span>\n </p>\n </div>\n {babylon ? (\n <div className=\"w-[85%] lg:w-1/2 lg:h-full flex\">\n <Babylon />\n </div>\n ) : null}\n </ContentContainer>\n {borderBottom ? (\n <Border className=\"absolute bottom-0 left-0 right-0 w-full\" />\n ) : null}\n </div>\n );\n};\n\nexport default Banner;\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: 0 },\n [\n Autoplay({\n delay: 0,\n stopOnInteraction: false,\n stopOnMouseEnter: true,\n }),\n ]\n );\n\n return (\n <div className={`overflow-hidden ${className}`} ref={emblaRef}>\n <div\n ref={ref}\n className=\"h-full flex items-center\"\n onMouseEnter={() => {\n emblaApi?.internalEngine().animation.stop();\n }}\n onMouseLeave={() => {\n emblaApi?.internalEngine().animation.start();\n }}\n >\n {children}\n </div>\n </div>\n );\n});\n\nexport default StackCarousel;\n","import React from \"react\";\nimport { useStaticQuery, graphql } from \"gatsby\";\n\nimport Border from \"../../assets/common/border.svg\";\nimport StackCarousel from \"./stackCarousel\";\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 <section className={`h-28 flex flex-col relative`} id=\"clients\">\n <StackCarousel className=\"grow\">\n {techArr.map((tech) => (\n <div\n key={tech}\n className=\"h-full shrink-0 min-w-0 cursor-pointer flex flex-col justify-between items-center content-center w-[352px] md:w-[400px] xl:w-[480px] 3xl:w-[576px]\"\n >\n <Border className={`min-w-0 shrink-0 w-full`} />\n <p className=\"text-4xl font-extrabold whitespace-nowrap\">\n {tech}\n </p>\n <Border className={`min-w-0 shrink-0 w-full`} />\n </div>\n ))}\n </StackCarousel>\n </section>\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 { 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 image: { publicURL: imageURL },\n },\n } = service;\n\n return (\n <div\n className={`service-preview break-inside-avoid flex flex-col h-min rounded-2xl p-10 mx-2 my-10 first:mt-0 md:mx-3 border-[3px] border-dashed border-main-100 text-secondary-100 cursor-pointer hover:invert transition ${className}`}\n itemScope\n itemType=\"https://schema.org/Service\"\n >\n <div className=\"flex items-center\">\n <img src={imageURL} alt={`${title} logo`} className=\"mr-7 invert\" />\n <h4 className=\"font-extrabold text-2xl\" itemProp=\"serviceType\">\n {title}\n </h4>\n </div>\n <div\n className={`text-xl`}\n dangerouslySetInnerHTML={{ __html: html }}\n itemProp=\"description\"\n />\n </div>\n );\n};\n\nexport default ServicePreview;\n","import React from \"react\";\n\nimport { HeadFC, useStaticQuery } from \"gatsby\";\nimport { graphql } from \"gatsby\";\n\nimport { IServicePreview } from \"../types/services.type\";\n\nimport Banner from \"../components/common/banner\";\nimport ContentContainer from \"../components/common/contentContainer\";\nimport ServicePreview from \"../components/services/servicePreview\";\nimport StackSection from \"../components/stack/stackSection\";\n\nconst Services = () => {\n const servicesData = useStaticQuery(query);\n let services = (\n servicesData?.allMarkdownRemark?.nodes?.length\n ? servicesData.allMarkdownRemark.nodes\n : null\n ) as IServicePreview[] | null;\n\n return (\n <>\n <Banner\n heightClass=\"h-136\"\n title=\"our expertise is your advantage\"\n text=\"\"\n />\n <StackSection />\n <div className=\"bg-main-100\">\n <ContentContainer className=\"flex-col items-center p-6 md:p-12\">\n <div className=\"columns-1 md:columns-2 w-full py-14\">\n {services\n ? services.map((service) => (\n <ServicePreview service={service} key={service.id} />\n ))\n : null}\n </div>\n </ContentContainer>\n </div>\n </>\n );\n};\n\nexport default Services;\n\nexport const Head: HeadFC = () => <title>CodeCave Services</title>;\n\nconst query = graphql`\n query {\n allMarkdownRemark(filter: { fields: { sourceName: { eq: \"services\" } } }) {\n nodes {\n id\n html\n frontmatter {\n title\n image {\n publicURL\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\":\"white\",\"strokeWidth\":\"8\",\"strokeDasharray\":\"8 8\",\"x1\":\"0\",\"x2\":\"100%\",\"y1\":\"4\",\"y2\":\"4\",\"key\":0}),React.createElement(\"line\",{\"width\":\"800\",\"height\":\"8\",\"stroke\":\"black\",\"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","onWheelHandler","e","preventDefault","wheel","deltaY","onMouseMoveHandler","x","movementX","y","movementY","removeEventListener","once","onTouchMoveHandler","touches","length","firstTouch","previousCoords","screenX","screenY","newX","newY","nestedTouchMoveHandler","touch","dispose","ref","Spinner","heightClass","title","text","borderBottom","borderTop","babylon","textTranslate","setTextTranslate","Border","ContentContainer","toUpperCase","forwardRef","children","emblaRef","emblaApi","useEmblaCarousel","loop","dragFree","duration","align","Autoplay","delay","stopOnInteraction","stopOnMouseEnter","onMouseEnter","internalEngine","animation","stop","onMouseLeave","start","StackSection","_techData$markdownRem","_techData$markdownRem2","techData","useStaticQuery","query","techArr","markdownRemark","frontmatter","stack","id","StackCarousel","map","tech","key","service","html","image","publicURL","imageURL","itemScope","itemType","src","alt","itemProp","dangerouslySetInnerHTML","__html","Services","_servicesData$allMark","_servicesData$allMark2","servicesData","services","allMarkdownRemark","nodes","Banner","ServicePreview","Head","props","createElement","defaultProps","module","exports","default"],"sourceRoot":""} \ No newline at end of file diff --git a/component---src-pages-templates-blog-tsx-2739ab3251f03f4eb07f.js b/component---src-pages-templates-blog-tsx-2739ab3251f03f4eb07f.js new file mode 100644 index 00000000..bf525640 --- /dev/null +++ b/component---src-pages-templates-blog-tsx-2739ab3251f03f4eb07f.js @@ -0,0 +1,2 @@ +(self.webpackChunkcode_cave=self.webpackChunkcode_cave||[]).push([[926],{1929:function(e,t,l){"use strict";l.d(t,{Z:function(){return c}});var n=l(7294),a=l(4471),r=l.n(a),s=l(1164);var i=e=>{let{className:t}=e;return n.createElement("div",{className:"flex justify-center items-center h-full w-full "+t},n.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"},n.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"}),n.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 o=()=>{const{0:e,1:t}=(0,n.useState)(!1),a=(0,n.useRef)(!0),r=(0,n.useRef)(null);return(0,n.useEffect)((()=>{if(!a.current||!r.current||"undefined"==typeof window)return;a.current=!1;const e=new Worker(new URL(l.p+l.u(475),l.b),{type:void 0});e.onmessage=e=>{let{data:l}=e;"ready"===l&&t(!0)};const n=r.current;n.width=n.clientWidth,n.height=n.clientHeight;const s=n.transferControlToOffscreen();e.postMessage({canvas:s},[s]);const i=()=>{e.postMessage({width:n.clientWidth,height:n.clientHeight})};window.addEventListener("resize",i);const o=t=>{t.preventDefault(),e.postMessage({wheel:t.deltaY})};n.addEventListener("wheel",o);const c=t=>{e.postMessage({x:t.movementX,y:t.movementY})};n.addEventListener("mousedown",(e=>{e.preventDefault(),window.addEventListener("mousemove",c),window.addEventListener("mouseup",(()=>window.removeEventListener("mousemove",c)),{once:!0})}));let m;return n.addEventListener("touchstart",(t=>{if(1!==t.touches.length)return;const l=t.touches[0];t.preventDefault();const n={x:l.screenX,y:l.screenY};m=t=>{const{newX:l,newY:a}=((t,l)=>{const n=t.touches[0];return e.postMessage({x:n.screenX-l.x,y:n.screenY-l.y}),{newX:n.screenX,newY:n.screenY}})(t,n);n.x=l,n.y=a},window.addEventListener("touchmove",m),window.addEventListener("touchend",(()=>{window.removeEventListener("touchmove",m)}))})),()=>{window&&(window.removeEventListener("resize",i),window.removeEventListener("mousemove",c),window.removeEventListener("touchmove",m),n&&n.removeEventListener("wheel",o),e.terminate())}}),[]),n.createElement("div",{className:"h-full w-full relative"},n.createElement("canvas",{ref:r,className:"bg-main-100 h-160 w-full flex items-center justify-center cursor-pointer"}),e?null:n.createElement(i,{className:"absolute top-0 left-0 right-0 bottom-0 z-10"}))};var c=e=>{let{heightClass:t="min-h-160",title:l,text:a,className:i,borderBottom:c,borderTop:m,babylon:d}=e;const{0:u,1:f}=(0,n.useState)("translate-y-full");return(0,n.useEffect)((()=>{f("translate-y-0")}),[]),n.createElement("div",{className:"w-full flex items-center bg-main-100 relative overflow-hidden px-6 "+t+" "+i},m?n.createElement(r(),{className:"absolute top-0 left-0 right-0 w-full"}):null,n.createElement(s.Z,{className:"h-full flex flex-col lg:flex-row py-12 lg:py-0 items-center text-secondary-100 flex-grow"},n.createElement("div",{className:"flex flex-col overflow-hidden items-left h-full justify-center text-secondary-100 h-full w-full lg:w-1/2 bg-main-100"},n.createElement("h2",{className:"overflow-hidden mb-8 w-full"},n.createElement("span",{className:"inline-block font-['Rubik_Glitch'] text-5xl sm:text-6xl w-full text-center lg:text-start transition-all duration-1000 "+u},l.toUpperCase())),n.createElement("p",{className:"overflow-hidden w-full"},n.createElement("span",{className:"inline-block w-full text-3xl sm:text-4xl font-light text-center lg:text-start transition-all duration-1000 "+u},a.toUpperCase()))),d?n.createElement("div",{className:"w-[85%] lg:w-1/2 lg:h-full flex"},n.createElement(o,null)):null),c?n.createElement(r(),{className:"absolute bottom-0 left-0 right-0 w-full"}):null)}},4568:function(e,t,l){"use strict";var n=l(7294),a=l(1883),r=l(1434);t.Z=e=>{let{section:t,pagesQuantity:l,currentPage:s,className:i}=e;const o=Array.from({length:l},((e,t)=>t+1)),c=s+1;return n.createElement("div",{className:"my-16 flex justify-between w-full "+i},s<l?n.createElement(a.Link,{to:"/"+t+"/page/"+c,className:"basis-1/2"},n.createElement(r.Z,{size:"large",variant:"dark",className:"w-max"},"NEXT PAGE")):null,n.createElement("nav",{className:"w-full flex justify-end"},l>1?o.map((e=>n.createElement(a.Link,{key:"pagination-link-"+e,to:"/"+t+"/page/"+e},n.createElement(r.Z,{size:"large",variant:e===s?"dark":"light",border:e!==s,className:"mx-[-1px]"},e)))):null))}},3793:function(e,t,l){"use strict";var n=l(7294),a=l(1883),r=l(4344),s=l.n(r),i=l(4697),o=l.n(i),c=l(9165);t.Z=e=>{let{post:t,className:l,fontColor:r,gradientBorder:i}=e;const{date:m,title:d,text:u}=t.frontmatter,f=Math.floor(t.wordCount.words/200),C=f||1,h="main"===r?"text-main-100":"text-secondary-100",v="main"===r?"text-main-100":"text-secondary-10",p="main"===r?"hover:text-main-10":"hover:text-secondary-100";return n.createElement(a.Link,{to:"/blog/"+t.id,className:"flex flex-col sm:flex-row w-full "+v+" "+p+" "+l+" "+(i?"gradient-border":""),itemScope:!0,itemType:"https://schema.org/Article"},n.createElement("div",{className:"hidden md:flex md:basis-1/4 shrink-0 justify-center p-6",itemProp:"image"},n.createElement(s(),{className:"secondary"===r?"":"brightness-0"})),n.createElement("div",{className:"flex flex-col basis-1/2 md:basis-1/3 shrink-0 mb-12 sm:mb-0"},n.createElement("p",{className:"text-3xl font-light "+v+" pb-5"},m),n.createElement("h3",{className:"text-4xl font-bold "+h,itemProp:"headline"},d)),n.createElement("div",{className:"flex flex-col basis-1/2 md:basis-1/3 shrink-0"},n.createElement("p",{className:"font-normal text-2xl "+v,itemProp:"abstract"},u.split(" ").slice(0,60).join(" "),"..."),n.createElement("div",{className:"flex justify-between items-center pt-6"},n.createElement("p",{className:"text-2xl font-bold"},"Read more"),n.createElement("p",null,n.createElement(o(),{className:"inline"}),n.createElement("span",{className:"inline text-xl font-light italic pl-4"},"Reading time: ",C,"m.")))),n.createElement(c.L,{itemProp:"copyrightHolder"}))}},6906:function(e,t,l){"use strict";l.r(t),l.d(t,{Head:function(){return o}});var n=l(7294),a=l(1929),r=l(1164),s=l(3793),i=l(4568);t.default=e=>{let{data:t,pageContext:l}=e;const o=t.allMarkdownRemark.nodes,{currentPage:c,pagesQuantity:m}=l;return n.createElement(n.Fragment,null,n.createElement(a.Z,{heightClass:"h-136",title:"MAKE BLOGGING GREAT AGAIN",text:"Well unknown facts for your tech savvy and entertainment",borderBottom:!0}),n.createElement(r.Z,{className:"flex-col items-center p-6 md:p-12"},o?o.map((e=>n.createElement(s.Z,{key:e.id,post:e,fontColor:"main",className:"py-14 border-b-4 border-dashed border-secondary-100",gradientBorder:!0}))):null,n.createElement(i.Z,{section:"blog",pagesQuantity:m,currentPage:c})))};const o=()=>n.createElement("title",null,"CodeCave Blog")},4471:function(e,t,l){var n=l(7294);function a(e){return n.createElement("svg",e,[n.createElement("line",{width:"800",height:"8",stroke:"white",strokeWidth:"8",strokeDasharray:"8 8",x1:"0",x2:"100%",y1:"4",y2:"4",key:0}),n.createElement("line",{width:"800",height:"8",stroke:"black",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},4344:function(e,t,l){var n=l(7294);function a(e){return n.createElement("svg",e,[n.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M15.875 7.9375H111.125C113.23 7.9375 115.249 8.77377 116.738 10.2623C118.226 11.7509 119.062 13.7698 119.062 15.875V107.839L103.188 91.9639C100.211 88.9865 96.1738 87.3134 91.9639 87.3125H15.875C13.7698 87.3125 11.7509 86.4762 10.2623 84.9877C8.77377 83.4991 7.9375 81.4802 7.9375 79.375V15.875C7.9375 13.7698 8.77377 11.7509 10.2623 10.2623C11.7509 8.77377 13.7698 7.9375 15.875 7.9375ZM111.125 0C115.335 0 119.373 1.67254 122.35 4.64968C125.327 7.62682 127 11.6647 127 15.875V117.419C127 118.205 126.767 118.972 126.33 119.625C125.893 120.278 125.273 120.786 124.547 121.086C123.822 121.386 123.023 121.464 122.253 121.31C121.483 121.156 120.776 120.777 120.221 120.221L97.5757 97.5757C96.0875 96.087 94.0689 95.2505 91.9639 95.25H15.875C11.6647 95.25 7.62682 93.5775 4.64968 90.6003C1.67254 87.6232 0 83.5853 0 79.375V15.875C0 11.6647 1.67254 7.62682 4.64968 4.64968C7.62682 1.67254 11.6647 0 15.875 0L111.125 0Z",fill:"#FAFAFA",key:0}),n.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M56.0865 37.7825C54.5404 35.3747 52.2544 33.5337 49.5723 32.5363C46.8902 31.5389 43.9569 31.439 41.2131 32.2515C38.4694 33.0641 36.0635 34.7453 34.357 37.0423C32.6506 39.3394 31.7358 42.1283 31.7502 44.9898C31.7516 47.3594 32.3893 49.6851 33.5968 51.7241C34.8042 53.763 36.537 55.4402 38.6142 56.5806C40.6914 57.721 43.0367 58.2826 45.4051 58.2069C47.7735 58.1311 50.0781 57.4207 52.0781 56.1499C51.0383 59.2376 49.1015 62.5316 45.9107 65.8336C45.3002 66.4652 44.9656 67.3134 44.9804 68.1916C44.9953 69.0699 45.3585 69.9063 45.99 70.5168C46.6216 71.1273 47.4698 71.4619 48.348 71.447C49.2263 71.4321 50.0627 71.0689 50.6732 70.4374C62.4683 58.2136 60.9364 44.9263 56.0865 37.7984V37.7825ZM87.8365 37.7825C86.2904 35.3747 84.0044 33.5337 81.3223 32.5363C78.6403 31.5389 75.7069 31.439 72.9631 32.2515C70.2194 33.0641 67.8135 34.7453 66.107 37.0423C64.4006 39.3394 63.4858 42.1283 63.5002 44.9898C63.5016 47.3594 64.1393 49.6851 65.3468 51.7241C66.5542 53.763 68.287 55.4402 70.3642 56.5806C72.4414 57.721 74.7867 58.2826 77.1551 58.2069C79.5235 58.1311 81.8281 57.4207 83.8281 56.1499C82.7883 59.2376 80.8515 62.5316 77.6607 65.8336C77.0502 66.4652 76.7156 67.3134 76.7304 68.1916C76.7453 69.0699 77.1085 69.9063 77.74 70.5168C78.3716 71.1273 79.2198 71.4619 80.098 71.447C80.9763 71.4321 81.8127 71.0689 82.4232 70.4374C94.2183 58.2136 92.6864 44.9263 87.8365 37.7984V37.7825Z",fill:"#FAFAFA",key:1})])}a.defaultProps={width:"127",height:"127",viewBox:"0 0 127 127",fill:"none"},e.exports=a,a.default=a},4697:function(e,t,l){var n=l(7294);function a(e){return n.createElement("svg",e,[n.createElement("g",{clipPath:"url(#clip0_829_432)",key:0},[n.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M9.57938 1.14638C9.38658 1.13214 9.19332 1.12501 9 1.125V0C9.2211 0.000107806 9.44213 0.00836341 9.66262 0.02475L9.57938 1.14638ZM11.8339 1.65263C11.4733 1.51347 11.1029 1.40104 10.7258 1.31625L10.9721 0.21825C11.403 0.315 11.8271 0.44325 12.2389 0.603L11.8339 1.65263ZM13.3751 2.45138C13.2143 2.34411 13.0495 2.24279 12.8812 2.14763L13.4359 1.16888C13.8205 1.38683 14.1886 1.63274 14.5372 1.90463L13.8454 2.79225C13.6929 2.67326 13.536 2.55993 13.3751 2.4525V2.45138ZM15.4384 4.46513C15.2158 4.14897 14.9703 3.84966 14.7037 3.56963L15.5182 2.79338C15.822 3.114 16.1032 3.45713 16.3586 3.81713L15.4384 4.46513ZM16.2754 5.98613C16.2015 5.80777 16.1212 5.63215 16.0346 5.45963L17.0392 4.95338C17.2379 5.34835 17.4071 5.75746 17.5455 6.17738L16.4767 6.5295C16.4163 6.34597 16.3491 6.16473 16.2754 5.98613ZM16.8716 8.8065C16.8625 8.41988 16.8249 8.03446 16.7591 7.65338L17.8672 7.46213C17.9426 7.89638 17.9865 8.33738 17.9977 8.77838L16.8727 8.8065H16.8716ZM16.7242 10.5368C16.7614 10.3455 16.7917 10.1554 16.8154 9.963L17.9325 10.1014C17.8785 10.5403 17.792 10.9746 17.6737 11.4008L16.5892 11.1004C16.641 10.9148 16.686 10.7269 16.7242 10.5368ZM15.6532 13.2131C15.8602 12.8869 16.0425 12.5449 16.2 12.1916L17.2282 12.6473C17.0482 13.0523 16.8401 13.4415 16.6039 13.815L15.6532 13.2131ZM14.5687 14.5688C14.706 14.4315 14.8376 14.2898 14.9625 14.1435L15.8152 14.8781C15.6708 15.0456 15.5204 15.2077 15.3641 15.3641L14.5687 14.5688Z",fill:"black",key:0}),n.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.99961 1.125C7.7046 1.12509 6.4296 1.44455 5.28753 2.05508C4.14547 2.66561 3.1716 3.54836 2.45217 4.62516C1.73275 5.70195 1.28998 6.93954 1.16308 8.22832C1.03618 9.5171 1.22907 10.8173 1.72466 12.0137C2.22025 13.2101 3.00325 14.2659 4.0043 15.0874C5.00535 15.909 6.19356 16.471 7.46368 16.7237C8.73381 16.9763 10.0466 16.9119 11.2859 16.536C12.5252 16.1601 13.6526 15.4844 14.5684 14.5688L15.3637 15.3641C14.3172 16.4113 13.0285 17.1841 11.6119 17.6141C10.1953 18.0442 8.69447 18.1182 7.24243 17.8295C5.79039 17.5409 4.43195 16.8986 3.28748 15.9595C2.143 15.0204 1.24784 13.8135 0.681284 12.4458C0.114733 11.078 -0.105707 9.59162 0.0394939 8.1183C0.184695 6.64499 0.691055 5.23024 1.51371 3.9994C2.33636 2.76855 3.44991 1.75962 4.75569 1.062C6.06147 0.364382 7.51916 -0.000392324 8.99961 3.16641e-07V1.125Z",fill:"black",key:1}),n.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.4375 3.375C8.58668 3.375 8.72976 3.43426 8.83525 3.53975C8.94074 3.64524 9 3.78832 9 3.9375V9.79875L12.654 11.8867C12.7798 11.9626 12.8709 12.0847 12.9078 12.2268C12.9448 12.369 12.9247 12.5199 12.8518 12.6475C12.779 12.775 12.6591 12.869 12.5179 12.9093C12.3766 12.9496 12.2252 12.9331 12.096 12.8632L8.1585 10.6132C8.07241 10.5641 8.00084 10.493 7.95106 10.4073C7.90127 10.3215 7.87503 10.2241 7.875 10.125V3.9375C7.875 3.78832 7.93426 3.64524 8.03975 3.53975C8.14524 3.43426 8.28832 3.375 8.4375 3.375Z",fill:"black",key:2})]),n.createElement("defs",{key:1},n.createElement("clipPath",{id:"clip0_829_432"},n.createElement("rect",{width:"18",height:"18",fill:"white"})))])}a.defaultProps={width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"},e.exports=a,a.default=a}}]); +//# sourceMappingURL=component---src-pages-templates-blog-tsx-2739ab3251f03f4eb07f.js.map \ No newline at end of file diff --git a/component---src-pages-templates-blog-tsx-2739ab3251f03f4eb07f.js.map b/component---src-pages-templates-blog-tsx-2739ab3251f03f4eb07f.js.map new file mode 100644 index 00000000..131cd542 --- /dev/null +++ b/component---src-pages-templates-blog-tsx-2739ab3251f03f4eb07f.js.map @@ -0,0 +1 @@ +{"version":3,"file":"component---src-pages-templates-blog-tsx-2739ab3251f03f4eb07f.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/./src/components/common/pagination.tsx","webpack://code-cave/./src/components/posts/postPreview.tsx","webpack://code-cave/./src/pagesTemplates/blog.tsx","webpack://code-cave/./src/assets/common/border.svg","webpack://code-cave/./src/assets/common/chat-right-quote.svg","webpack://code-cave/./src/assets/common/clock.svg"],"sourcesContent":["import React from \"react\";\n\nconst Spinner = ({ className }: { className?: string }) => {\n return (\n <div\n className={`flex justify-center items-center h-full w-full ${className}`}\n >\n <svg\n aria-hidden=\"true\"\n className=\"w-8 h-8 mr-2 text-main-10 animate-spin dark:text-secondary-10 fill-main-100\"\n viewBox=\"0 0 100 101\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n 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\"\n fill=\"currentColor\"\n />\n <path\n 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\"\n fill=\"currentFill\"\n />\n </svg>\n </div>\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<boolean>(false);\n const isInitial = useRef<boolean>(true);\n const canvasRef = useRef<HTMLCanvasElement>(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);\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 window.addEventListener(\n \"mouseup\",\n () => window.removeEventListener(\"mousemove\", onMouseMoveHandler),\n { once: 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(\"touchstart\", (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 window.addEventListener(\"touchend\", () => {\n window.removeEventListener(\"touchmove\", onTouchMoveHandler);\n });\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 <div className={`h-full w-full relative`}>\n <canvas\n ref={canvasRef}\n className={`bg-main-100 h-160 w-full flex items-center justify-center cursor-pointer`}\n />\n {!isBabylonReady ? (\n <Spinner className=\"absolute top-0 left-0 right-0 bottom-0 z-10\" />\n ) : null}\n </div>\n );\n};\n\nexport default Babylon;\n","import React, { useEffect, useState } from \"react\";\n\nimport Border from \"../../assets/common/border.svg\";\n\nimport ContentContainer from \"./contentContainer\";\nimport Babylon from \"../babylonjs/babylon\";\n\nconst Banner = ({\n heightClass = \"min-h-160\",\n title,\n text,\n className,\n borderBottom,\n borderTop,\n babylon,\n}: {\n heightClass?: string;\n title: string;\n text: string;\n className?: string;\n borderBottom?: boolean;\n borderTop?: boolean;\n babylon?: boolean;\n}) => {\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 <div\n className={`w-full flex items-center bg-main-100 relative overflow-hidden px-6 ${heightClass} ${className}`}\n >\n {borderTop ? (\n <Border className=\"absolute top-0 left-0 right-0 w-full\" />\n ) : null}\n <ContentContainer\n className={`h-full flex flex-col lg:flex-row py-12 lg:py-0 items-center text-secondary-100 flex-grow`}\n >\n <div className=\"flex flex-col overflow-hidden items-left h-full justify-center text-secondary-100 h-full w-full lg:w-1/2 bg-main-100\">\n <h2 className={`overflow-hidden mb-8 w-full`}>\n <span\n className={`inline-block font-['Rubik_Glitch'] text-5xl sm:text-6xl w-full text-center lg:text-start transition-all duration-1000 ${textTranslate}`}\n >\n {title.toUpperCase()}\n </span>\n </h2>\n <p className={`overflow-hidden w-full`}>\n <span\n className={`inline-block w-full text-3xl sm:text-4xl font-light text-center lg:text-start transition-all duration-1000 ${textTranslate}`}\n >\n {text.toUpperCase()}\n </span>\n </p>\n </div>\n {babylon ? (\n <div className=\"w-[85%] lg:w-1/2 lg:h-full flex\">\n <Babylon />\n </div>\n ) : null}\n </ContentContainer>\n {borderBottom ? (\n <Border className=\"absolute bottom-0 left-0 right-0 w-full\" />\n ) : null}\n </div>\n );\n};\n\nexport default Banner;\n","import React from \"react\";\n\nimport { Link } from \"gatsby\";\n\nimport Button from \"./button\";\n\nconst Pagination = ({\n section,\n pagesQuantity,\n currentPage,\n className,\n}: {\n section: \"projects\" | \"blog\";\n pagesQuantity: number;\n currentPage: number;\n className?: string;\n}) => {\n const pages = Array.from({ length: pagesQuantity }, (_, i) => i + 1);\n const nextPage = currentPage + 1;\n\n return (\n <div className={`my-16 flex justify-between w-full ${className}`}>\n {currentPage < pagesQuantity ? (\n <Link to={`/${section}/page/${nextPage}`} className=\"basis-1/2\">\n <Button size=\"large\" variant=\"dark\" className=\"w-max\">\n NEXT PAGE\n </Button>\n </Link>\n ) : null}\n\n <nav className=\"w-full flex justify-end\">\n {pagesQuantity > 1\n ? pages.map((page) => (\n <Link\n key={`pagination-link-${page}`}\n to={`/${section}/page/${page}`}\n >\n <Button\n size=\"large\"\n variant={page === currentPage ? \"dark\" : \"light\"}\n border={page !== currentPage}\n className=\"mx-[-1px]\"\n >\n {page}\n </Button>\n </Link>\n ))\n : null}\n </nav>\n </div>\n );\n};\n\nexport default Pagination;\n","import React from \"react\";\n\nimport { Link } from \"gatsby\";\n\nimport Quote from \"../../assets/common/chat-right-quote.svg\";\nimport Clock from \"../../assets/common/clock.svg\";\n\nimport { IPostPreviewQueryResult } from \"../../types/post.type\";\nimport { LocalBusinessMetadata } from \"../common/metadata\";\n\nconst PostPreview = ({\n post,\n className,\n fontColor,\n gradientBorder,\n}: {\n post: IPostPreviewQueryResult;\n className?: string;\n fontColor: \"main\" | \"secondary\";\n gradientBorder?: boolean;\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 fontColor === \"main\" ? \"text-main-100\" : \"text-secondary-100\";\n const fontColorClass10 =\n fontColor === \"main\" ? \"text-main-100\" : \"text-secondary-10\";\n const fontColorHover =\n fontColor === \"main\" ? \"hover:text-main-10\" : \"hover:text-secondary-100\";\n\n return (\n <Link\n to={`/blog/${post.id}`}\n className={`flex flex-col sm:flex-row w-full ${fontColorClass10} ${fontColorHover} ${className} ${\n gradientBorder ? \"gradient-border\" : \"\"\n }`}\n itemScope\n itemType=\"https://schema.org/Article\"\n >\n <div\n className=\"hidden md:flex md:basis-1/4 shrink-0 justify-center p-6\"\n itemProp=\"image\"\n >\n <Quote className={fontColor === \"secondary\" ? \"\" : \"brightness-0\"} />\n </div>\n <div className=\"flex flex-col basis-1/2 md:basis-1/3 shrink-0 mb-12 sm:mb-0\">\n <p className={`text-3xl font-light ${fontColorClass10} pb-5`}>{date}</p>\n <h3\n className={`text-4xl font-bold ${fontColorClass100}`}\n itemProp=\"headline\"\n >\n {title}\n </h3>\n </div>\n <div className=\"flex flex-col basis-1/2 md:basis-1/3 shrink-0\">\n <p\n className={`font-normal text-2xl ${fontColorClass10}`}\n itemProp=\"abstract\"\n >\n {text.split(\" \").slice(0, 60).join(\" \")}...\n </p>\n <div className=\"flex justify-between items-center pt-6\">\n <p className={`text-2xl font-bold`}>Read more</p>\n <p>\n <Clock className={\"inline\"} />\n\n <span className=\"inline text-xl font-light italic pl-4\">\n Reading time: {readingTime}m.\n </span>\n </p>\n </div>\n </div>\n <LocalBusinessMetadata itemProp=\"copyrightHolder\" />\n </Link>\n );\n};\n\nexport default PostPreview;\n","import React from \"react\";\n\nimport { HeadFC, PageProps } from \"gatsby\";\nimport { graphql } from \"gatsby\";\n\nimport { IBlogPageData, IBlogPageContext } from \"../types/blog.type\";\n\nimport Banner from \"../components/common/banner\";\nimport ContentContainer from \"../components/common/contentContainer\";\nimport PostPreview from \"../components/posts/postPreview\";\nimport Pagination from \"../components/common/pagination\";\n\nconst Blog = ({\n data,\n pageContext,\n}: PageProps<IBlogPageData, IBlogPageContext>) => {\n const posts = data.allMarkdownRemark.nodes;\n const { currentPage, pagesQuantity } = pageContext;\n\n return (\n <>\n <Banner\n heightClass=\"h-136\"\n title=\"MAKE BLOGGING GREAT AGAIN\"\n text=\"Well unknown facts for your tech savvy and entertainment\"\n borderBottom\n />\n <ContentContainer className=\"flex-col items-center p-6 md:p-12\">\n {posts\n ? posts.map((post) => (\n <PostPreview\n key={post.id}\n post={post}\n fontColor=\"main\"\n className=\"py-14 border-b-4 border-dashed border-secondary-100\"\n gradientBorder\n />\n ))\n : null}\n <Pagination\n section={\"blog\"}\n pagesQuantity={pagesQuantity}\n currentPage={currentPage}\n />\n </ContentContainer>\n </>\n );\n};\n\nexport default Blog;\n\nexport const Head: HeadFC = () => <title>CodeCave Blog</title>;\n\nexport const query = graphql`\n query ($skip: Int!, $limit: Int!) {\n allMarkdownRemark(\n filter: { fields: { sourceName: { eq: \"posts\" } } }\n sort: { frontmatter: { date: DESC } }\n limit: $limit\n skip: $skip\n ) {\n nodes {\n id\n frontmatter {\n date(formatString: \"MMM DD, YYYY\")\n title\n text\n cover {\n childImageSharp {\n gatsbyImageData(\n formats: [AUTO, WEBP, AVIF]\n placeholder: BLURRED\n width: 600\n )\n }\n }\n }\n wordCount {\n words\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\":\"white\",\"strokeWidth\":\"8\",\"strokeDasharray\":\"8 8\",\"x1\":\"0\",\"x2\":\"100%\",\"y1\":\"4\",\"y2\":\"4\",\"key\":0}),React.createElement(\"line\",{\"width\":\"800\",\"height\":\"8\",\"stroke\":\"black\",\"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","var React = require('react');\n\nfunction ChatRightQuote (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"path\",{\"fillRule\":\"evenodd\",\"clipRule\":\"evenodd\",\"d\":\"M15.875 7.9375H111.125C113.23 7.9375 115.249 8.77377 116.738 10.2623C118.226 11.7509 119.062 13.7698 119.062 15.875V107.839L103.188 91.9639C100.211 88.9865 96.1738 87.3134 91.9639 87.3125H15.875C13.7698 87.3125 11.7509 86.4762 10.2623 84.9877C8.77377 83.4991 7.9375 81.4802 7.9375 79.375V15.875C7.9375 13.7698 8.77377 11.7509 10.2623 10.2623C11.7509 8.77377 13.7698 7.9375 15.875 7.9375ZM111.125 0C115.335 0 119.373 1.67254 122.35 4.64968C125.327 7.62682 127 11.6647 127 15.875V117.419C127 118.205 126.767 118.972 126.33 119.625C125.893 120.278 125.273 120.786 124.547 121.086C123.822 121.386 123.023 121.464 122.253 121.31C121.483 121.156 120.776 120.777 120.221 120.221L97.5757 97.5757C96.0875 96.087 94.0689 95.2505 91.9639 95.25H15.875C11.6647 95.25 7.62682 93.5775 4.64968 90.6003C1.67254 87.6232 0 83.5853 0 79.375V15.875C0 11.6647 1.67254 7.62682 4.64968 4.64968C7.62682 1.67254 11.6647 0 15.875 0L111.125 0Z\",\"fill\":\"#FAFAFA\",\"key\":0}),React.createElement(\"path\",{\"fillRule\":\"evenodd\",\"clipRule\":\"evenodd\",\"d\":\"M56.0865 37.7825C54.5404 35.3747 52.2544 33.5337 49.5723 32.5363C46.8902 31.5389 43.9569 31.439 41.2131 32.2515C38.4694 33.0641 36.0635 34.7453 34.357 37.0423C32.6506 39.3394 31.7358 42.1283 31.7502 44.9898C31.7516 47.3594 32.3893 49.6851 33.5968 51.7241C34.8042 53.763 36.537 55.4402 38.6142 56.5806C40.6914 57.721 43.0367 58.2826 45.4051 58.2069C47.7735 58.1311 50.0781 57.4207 52.0781 56.1499C51.0383 59.2376 49.1015 62.5316 45.9107 65.8336C45.3002 66.4652 44.9656 67.3134 44.9804 68.1916C44.9953 69.0699 45.3585 69.9063 45.99 70.5168C46.6216 71.1273 47.4698 71.4619 48.348 71.447C49.2263 71.4321 50.0627 71.0689 50.6732 70.4374C62.4683 58.2136 60.9364 44.9263 56.0865 37.7984V37.7825ZM87.8365 37.7825C86.2904 35.3747 84.0044 33.5337 81.3223 32.5363C78.6403 31.5389 75.7069 31.439 72.9631 32.2515C70.2194 33.0641 67.8135 34.7453 66.107 37.0423C64.4006 39.3394 63.4858 42.1283 63.5002 44.9898C63.5016 47.3594 64.1393 49.6851 65.3468 51.7241C66.5542 53.763 68.287 55.4402 70.3642 56.5806C72.4414 57.721 74.7867 58.2826 77.1551 58.2069C79.5235 58.1311 81.8281 57.4207 83.8281 56.1499C82.7883 59.2376 80.8515 62.5316 77.6607 65.8336C77.0502 66.4652 76.7156 67.3134 76.7304 68.1916C76.7453 69.0699 77.1085 69.9063 77.74 70.5168C78.3716 71.1273 79.2198 71.4619 80.098 71.447C80.9763 71.4321 81.8127 71.0689 82.4232 70.4374C94.2183 58.2136 92.6864 44.9263 87.8365 37.7984V37.7825Z\",\"fill\":\"#FAFAFA\",\"key\":1})]);\n}\n\nChatRightQuote.defaultProps = {\"width\":\"127\",\"height\":\"127\",\"viewBox\":\"0 0 127 127\",\"fill\":\"none\"};\n\nmodule.exports = ChatRightQuote;\n\nChatRightQuote.default = ChatRightQuote;\n","var React = require('react');\n\nfunction Clock (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"g\",{\"clipPath\":\"url(#clip0_829_432)\",\"key\":0},[React.createElement(\"path\",{\"fillRule\":\"evenodd\",\"clipRule\":\"evenodd\",\"d\":\"M9.57938 1.14638C9.38658 1.13214 9.19332 1.12501 9 1.125V0C9.2211 0.000107806 9.44213 0.00836341 9.66262 0.02475L9.57938 1.14638ZM11.8339 1.65263C11.4733 1.51347 11.1029 1.40104 10.7258 1.31625L10.9721 0.21825C11.403 0.315 11.8271 0.44325 12.2389 0.603L11.8339 1.65263ZM13.3751 2.45138C13.2143 2.34411 13.0495 2.24279 12.8812 2.14763L13.4359 1.16888C13.8205 1.38683 14.1886 1.63274 14.5372 1.90463L13.8454 2.79225C13.6929 2.67326 13.536 2.55993 13.3751 2.4525V2.45138ZM15.4384 4.46513C15.2158 4.14897 14.9703 3.84966 14.7037 3.56963L15.5182 2.79338C15.822 3.114 16.1032 3.45713 16.3586 3.81713L15.4384 4.46513ZM16.2754 5.98613C16.2015 5.80777 16.1212 5.63215 16.0346 5.45963L17.0392 4.95338C17.2379 5.34835 17.4071 5.75746 17.5455 6.17738L16.4767 6.5295C16.4163 6.34597 16.3491 6.16473 16.2754 5.98613ZM16.8716 8.8065C16.8625 8.41988 16.8249 8.03446 16.7591 7.65338L17.8672 7.46213C17.9426 7.89638 17.9865 8.33738 17.9977 8.77838L16.8727 8.8065H16.8716ZM16.7242 10.5368C16.7614 10.3455 16.7917 10.1554 16.8154 9.963L17.9325 10.1014C17.8785 10.5403 17.792 10.9746 17.6737 11.4008L16.5892 11.1004C16.641 10.9148 16.686 10.7269 16.7242 10.5368ZM15.6532 13.2131C15.8602 12.8869 16.0425 12.5449 16.2 12.1916L17.2282 12.6473C17.0482 13.0523 16.8401 13.4415 16.6039 13.815L15.6532 13.2131ZM14.5687 14.5688C14.706 14.4315 14.8376 14.2898 14.9625 14.1435L15.8152 14.8781C15.6708 15.0456 15.5204 15.2077 15.3641 15.3641L14.5687 14.5688Z\",\"fill\":\"black\",\"key\":0}),React.createElement(\"path\",{\"fillRule\":\"evenodd\",\"clipRule\":\"evenodd\",\"d\":\"M8.99961 1.125C7.7046 1.12509 6.4296 1.44455 5.28753 2.05508C4.14547 2.66561 3.1716 3.54836 2.45217 4.62516C1.73275 5.70195 1.28998 6.93954 1.16308 8.22832C1.03618 9.5171 1.22907 10.8173 1.72466 12.0137C2.22025 13.2101 3.00325 14.2659 4.0043 15.0874C5.00535 15.909 6.19356 16.471 7.46368 16.7237C8.73381 16.9763 10.0466 16.9119 11.2859 16.536C12.5252 16.1601 13.6526 15.4844 14.5684 14.5688L15.3637 15.3641C14.3172 16.4113 13.0285 17.1841 11.6119 17.6141C10.1953 18.0442 8.69447 18.1182 7.24243 17.8295C5.79039 17.5409 4.43195 16.8986 3.28748 15.9595C2.143 15.0204 1.24784 13.8135 0.681284 12.4458C0.114733 11.078 -0.105707 9.59162 0.0394939 8.1183C0.184695 6.64499 0.691055 5.23024 1.51371 3.9994C2.33636 2.76855 3.44991 1.75962 4.75569 1.062C6.06147 0.364382 7.51916 -0.000392324 8.99961 3.16641e-07V1.125Z\",\"fill\":\"black\",\"key\":1}),React.createElement(\"path\",{\"fillRule\":\"evenodd\",\"clipRule\":\"evenodd\",\"d\":\"M8.4375 3.375C8.58668 3.375 8.72976 3.43426 8.83525 3.53975C8.94074 3.64524 9 3.78832 9 3.9375V9.79875L12.654 11.8867C12.7798 11.9626 12.8709 12.0847 12.9078 12.2268C12.9448 12.369 12.9247 12.5199 12.8518 12.6475C12.779 12.775 12.6591 12.869 12.5179 12.9093C12.3766 12.9496 12.2252 12.9331 12.096 12.8632L8.1585 10.6132C8.07241 10.5641 8.00084 10.493 7.95106 10.4073C7.90127 10.3215 7.87503 10.2241 7.875 10.125V3.9375C7.875 3.78832 7.93426 3.64524 8.03975 3.53975C8.14524 3.43426 8.28832 3.375 8.4375 3.375Z\",\"fill\":\"black\",\"key\":2})]),React.createElement(\"defs\",{\"key\":1},React.createElement(\"clipPath\",{\"id\":\"clip0_829_432\"},React.createElement(\"rect\",{\"width\":\"18\",\"height\":\"18\",\"fill\":\"white\"})))]);\n}\n\nClock.defaultProps = {\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"};\n\nmodule.exports = Clock;\n\nClock.default = Clock;\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","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","text","borderBottom","borderTop","babylon","textTranslate","setTextTranslate","Border","ContentContainer","toUpperCase","section","pagesQuantity","currentPage","pages","Array","from","_","i","nextPage","Link","to","Button","size","variant","map","page","key","border","post","fontColor","gradientBorder","date","frontmatter","minutes","Math","floor","wordCount","words","readingTime","fontColorClass100","fontColorClass10","fontColorHover","id","itemScope","itemType","itemProp","Quote","split","slice","join","Clock","LocalBusinessMetadata","pageContext","posts","allMarkdownRemark","nodes","Banner","PostPreview","Pagination","Head","props","createElement","defaultProps","module","exports","default","ChatRightQuote"],"sourceRoot":""} \ No newline at end of file diff --git a/component---src-pages-templates-blog-tsx-3e928f3e8cb34f3b7e4c.js b/component---src-pages-templates-blog-tsx-3e928f3e8cb34f3b7e4c.js deleted file mode 100644 index 5709be83..00000000 --- a/component---src-pages-templates-blog-tsx-3e928f3e8cb34f3b7e4c.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunkcode_cave=self.webpackChunkcode_cave||[]).push([[926],{1929:function(e,t,l){"use strict";l.d(t,{Z:function(){return c}});var n=l(7294),a=l(4471),r=l.n(a),s=l(1164);var i=e=>{let{className:t}=e;return n.createElement("div",{className:"flex justify-center items-center h-full w-full "+t},n.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"},n.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"}),n.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 o=()=>{const{0:e,1:t}=(0,n.useState)(!1),a=(0,n.useRef)(!0),r=(0,n.useRef)(null);return(0,n.useEffect)((()=>{if(!a.current||!r.current||"undefined"==typeof window)return;a.current=!1;const e=new Worker(new URL(l.p+l.u(475),l.b),{type:void 0});e.onmessage=e=>{let{data:l}=e;"ready"===l&&t(!0)};const n=r.current;n.width=n.clientWidth,n.height=n.clientHeight;const s=n.transferControlToOffscreen();e.postMessage({canvas:s},[s]);const i=()=>{e.postMessage({width:n.clientWidth,height:n.clientHeight})};window.addEventListener("resize",i);const o=t=>{t.preventDefault(),e.postMessage({wheel:t.deltaY})};n.addEventListener("wheel",o);const c=t=>{e.postMessage({x:t.movementX,y:t.movementY})};n.addEventListener("mousedown",(e=>{e.preventDefault(),window.addEventListener("mousemove",c),window.addEventListener("mouseup",(()=>window.removeEventListener("mousemove",c)),{once:!0})}));let m;return n.addEventListener("touchstart",(t=>{if(1!==t.touches.length)return;const l=t.touches[0];t.preventDefault();const n={x:l.screenX,y:l.screenY};m=t=>{const{newX:l,newY:a}=((t,l)=>{const n=t.touches[0];return e.postMessage({x:n.screenX-l.x,y:n.screenY-l.y}),{newX:n.screenX,newY:n.screenY}})(t,n);n.x=l,n.y=a},window.addEventListener("touchmove",m),window.addEventListener("touchend",(()=>{window.removeEventListener("touchmove",m)}))})),()=>{window&&(window.removeEventListener("resize",i),window.removeEventListener("mousemove",c),window.removeEventListener("touchmove",m)),n&&n.removeEventListener("wheel",o),e.postMessage({dispose:!0})}}),[]),n.createElement("div",{className:"h-full w-full relative"},n.createElement("canvas",{ref:r,className:"bg-main-100 h-160 w-full flex items-center justify-center cursor-pointer"}),e?null:n.createElement(i,{className:"absolute top-0 left-0 right-0 bottom-0 z-10"}))};var c=e=>{let{heightClass:t="min-h-160",title:l,text:a,className:i,borderBottom:c,borderTop:m,babylon:d}=e;const{0:u,1:f}=(0,n.useState)("translate-y-full");return(0,n.useEffect)((()=>{f("translate-y-0")}),[]),n.createElement("div",{className:"w-full flex items-center bg-main-100 relative overflow-hidden px-6 "+t+" "+i},m?n.createElement(r(),{className:"absolute top-0 left-0 right-0 w-full"}):null,n.createElement(s.Z,{className:"h-full flex flex-col lg:flex-row py-12 lg:py-0 items-center text-secondary-100 flex-grow"},n.createElement("div",{className:"flex flex-col overflow-hidden items-left h-full justify-center text-secondary-100 h-full w-full lg:w-1/2 bg-main-100"},n.createElement("h2",{className:"overflow-hidden mb-8 w-full"},n.createElement("span",{className:"inline-block font-['Rubik_Glitch'] text-5xl sm:text-6xl w-full text-center lg:text-start transition-all duration-1000 "+u},l.toUpperCase())),n.createElement("p",{className:"overflow-hidden w-full"},n.createElement("span",{className:"inline-block w-full text-3xl sm:text-4xl font-light text-center lg:text-start transition-all duration-1000 "+u},a.toUpperCase()))),d?n.createElement("div",{className:"w-[85%] lg:w-1/2 lg:h-full flex"},n.createElement(o,null)):null),c?n.createElement(r(),{className:"absolute bottom-0 left-0 right-0 w-full"}):null)}},4568:function(e,t,l){"use strict";var n=l(7294),a=l(1883),r=l(1434);t.Z=e=>{let{section:t,pagesQuantity:l,currentPage:s,className:i}=e;const o=Array.from({length:l},((e,t)=>t+1)),c=s+1;return n.createElement("div",{className:"my-16 flex justify-between w-full "+i},s<l?n.createElement(a.Link,{to:"/"+t+"/page/"+c,className:"basis-1/2"},n.createElement(r.Z,{size:"large",variant:"dark",className:"w-max"},"NEXT PAGE")):null,n.createElement("nav",{className:"w-full flex justify-end"},l>1?o.map((e=>n.createElement(a.Link,{key:"pagination-link-"+e,to:"/"+t+"/page/"+e},n.createElement(r.Z,{size:"large",variant:e===s?"dark":"light",border:e!==s,className:"mx-[-1px]"},e)))):null))}},3793:function(e,t,l){"use strict";var n=l(7294),a=l(1883),r=l(4344),s=l.n(r),i=l(4697),o=l.n(i),c=l(9165);t.Z=e=>{let{post:t,className:l,fontColor:r,gradientBorder:i}=e;const{date:m,title:d,text:u}=t.frontmatter,f=Math.floor(t.wordCount.words/200),C=f||1,h="main"===r?"text-main-100":"text-secondary-100",p="main"===r?"text-main-100":"text-secondary-10",v="main"===r?"hover:text-main-10":"hover:text-secondary-100";return n.createElement(a.Link,{to:"/blog/"+t.id,className:"flex flex-col sm:flex-row w-full "+p+" "+v+" "+l+" "+(i?"gradient-border":""),itemScope:!0,itemType:"https://schema.org/Article"},n.createElement("div",{className:"hidden md:flex md:basis-1/4 shrink-0 justify-center p-6",itemProp:"image"},n.createElement(s(),{className:"secondary"===r?"":"brightness-0"})),n.createElement("div",{className:"flex flex-col basis-1/2 md:basis-1/3 shrink-0 mb-12 sm:mb-0"},n.createElement("p",{className:"text-3xl font-light "+p+" pb-5"},m),n.createElement("h3",{className:"text-4xl font-bold "+h,itemProp:"headline"},d)),n.createElement("div",{className:"flex flex-col basis-1/2 md:basis-1/3 shrink-0"},n.createElement("p",{className:"font-normal text-2xl "+p,itemProp:"abstract"},u.split(" ").slice(0,60).join(" "),"..."),n.createElement("div",{className:"flex justify-between items-center pt-6"},n.createElement("p",{className:"text-2xl font-bold"},"Read more"),n.createElement("p",null,n.createElement(o(),{className:"inline"}),n.createElement("span",{className:"inline text-xl font-light italic pl-4"},"Reading time: ",C,"m.")))),n.createElement(c.L,{itemProp:"copyrightHolder"}))}},6906:function(e,t,l){"use strict";l.r(t),l.d(t,{Head:function(){return o}});var n=l(7294),a=l(1929),r=l(1164),s=l(3793),i=l(4568);t.default=e=>{let{data:t,pageContext:l}=e;const o=t.allMarkdownRemark.nodes,{currentPage:c,pagesQuantity:m}=l;return n.createElement(n.Fragment,null,n.createElement(a.Z,{heightClass:"h-136",title:"MAKE BLOGGING GREAT AGAIN",text:"Well unknown facts for your tech savvy and entertainment",borderBottom:!0}),n.createElement(r.Z,{className:"flex-col items-center p-6 md:p-12"},o?o.map((e=>n.createElement(s.Z,{key:e.id,post:e,fontColor:"main",className:"py-14 border-b-4 border-dashed border-secondary-100",gradientBorder:!0}))):null,n.createElement(i.Z,{section:"blog",pagesQuantity:m,currentPage:c})))};const o=()=>n.createElement("title",null,"CodeCave Blog")},4471:function(e,t,l){var n=l(7294);function a(e){return n.createElement("svg",e,[n.createElement("line",{width:"800",height:"8",stroke:"white",strokeWidth:"8",strokeDasharray:"8 8",x1:"0",x2:"100%",y1:"4",y2:"4",key:0}),n.createElement("line",{width:"800",height:"8",stroke:"black",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},4344:function(e,t,l){var n=l(7294);function a(e){return n.createElement("svg",e,[n.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M15.875 7.9375H111.125C113.23 7.9375 115.249 8.77377 116.738 10.2623C118.226 11.7509 119.062 13.7698 119.062 15.875V107.839L103.188 91.9639C100.211 88.9865 96.1738 87.3134 91.9639 87.3125H15.875C13.7698 87.3125 11.7509 86.4762 10.2623 84.9877C8.77377 83.4991 7.9375 81.4802 7.9375 79.375V15.875C7.9375 13.7698 8.77377 11.7509 10.2623 10.2623C11.7509 8.77377 13.7698 7.9375 15.875 7.9375ZM111.125 0C115.335 0 119.373 1.67254 122.35 4.64968C125.327 7.62682 127 11.6647 127 15.875V117.419C127 118.205 126.767 118.972 126.33 119.625C125.893 120.278 125.273 120.786 124.547 121.086C123.822 121.386 123.023 121.464 122.253 121.31C121.483 121.156 120.776 120.777 120.221 120.221L97.5757 97.5757C96.0875 96.087 94.0689 95.2505 91.9639 95.25H15.875C11.6647 95.25 7.62682 93.5775 4.64968 90.6003C1.67254 87.6232 0 83.5853 0 79.375V15.875C0 11.6647 1.67254 7.62682 4.64968 4.64968C7.62682 1.67254 11.6647 0 15.875 0L111.125 0Z",fill:"#FAFAFA",key:0}),n.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M56.0865 37.7825C54.5404 35.3747 52.2544 33.5337 49.5723 32.5363C46.8902 31.5389 43.9569 31.439 41.2131 32.2515C38.4694 33.0641 36.0635 34.7453 34.357 37.0423C32.6506 39.3394 31.7358 42.1283 31.7502 44.9898C31.7516 47.3594 32.3893 49.6851 33.5968 51.7241C34.8042 53.763 36.537 55.4402 38.6142 56.5806C40.6914 57.721 43.0367 58.2826 45.4051 58.2069C47.7735 58.1311 50.0781 57.4207 52.0781 56.1499C51.0383 59.2376 49.1015 62.5316 45.9107 65.8336C45.3002 66.4652 44.9656 67.3134 44.9804 68.1916C44.9953 69.0699 45.3585 69.9063 45.99 70.5168C46.6216 71.1273 47.4698 71.4619 48.348 71.447C49.2263 71.4321 50.0627 71.0689 50.6732 70.4374C62.4683 58.2136 60.9364 44.9263 56.0865 37.7984V37.7825ZM87.8365 37.7825C86.2904 35.3747 84.0044 33.5337 81.3223 32.5363C78.6403 31.5389 75.7069 31.439 72.9631 32.2515C70.2194 33.0641 67.8135 34.7453 66.107 37.0423C64.4006 39.3394 63.4858 42.1283 63.5002 44.9898C63.5016 47.3594 64.1393 49.6851 65.3468 51.7241C66.5542 53.763 68.287 55.4402 70.3642 56.5806C72.4414 57.721 74.7867 58.2826 77.1551 58.2069C79.5235 58.1311 81.8281 57.4207 83.8281 56.1499C82.7883 59.2376 80.8515 62.5316 77.6607 65.8336C77.0502 66.4652 76.7156 67.3134 76.7304 68.1916C76.7453 69.0699 77.1085 69.9063 77.74 70.5168C78.3716 71.1273 79.2198 71.4619 80.098 71.447C80.9763 71.4321 81.8127 71.0689 82.4232 70.4374C94.2183 58.2136 92.6864 44.9263 87.8365 37.7984V37.7825Z",fill:"#FAFAFA",key:1})])}a.defaultProps={width:"127",height:"127",viewBox:"0 0 127 127",fill:"none"},e.exports=a,a.default=a},4697:function(e,t,l){var n=l(7294);function a(e){return n.createElement("svg",e,[n.createElement("g",{clipPath:"url(#clip0_829_432)",key:0},[n.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M9.57938 1.14638C9.38658 1.13214 9.19332 1.12501 9 1.125V0C9.2211 0.000107806 9.44213 0.00836341 9.66262 0.02475L9.57938 1.14638ZM11.8339 1.65263C11.4733 1.51347 11.1029 1.40104 10.7258 1.31625L10.9721 0.21825C11.403 0.315 11.8271 0.44325 12.2389 0.603L11.8339 1.65263ZM13.3751 2.45138C13.2143 2.34411 13.0495 2.24279 12.8812 2.14763L13.4359 1.16888C13.8205 1.38683 14.1886 1.63274 14.5372 1.90463L13.8454 2.79225C13.6929 2.67326 13.536 2.55993 13.3751 2.4525V2.45138ZM15.4384 4.46513C15.2158 4.14897 14.9703 3.84966 14.7037 3.56963L15.5182 2.79338C15.822 3.114 16.1032 3.45713 16.3586 3.81713L15.4384 4.46513ZM16.2754 5.98613C16.2015 5.80777 16.1212 5.63215 16.0346 5.45963L17.0392 4.95338C17.2379 5.34835 17.4071 5.75746 17.5455 6.17738L16.4767 6.5295C16.4163 6.34597 16.3491 6.16473 16.2754 5.98613ZM16.8716 8.8065C16.8625 8.41988 16.8249 8.03446 16.7591 7.65338L17.8672 7.46213C17.9426 7.89638 17.9865 8.33738 17.9977 8.77838L16.8727 8.8065H16.8716ZM16.7242 10.5368C16.7614 10.3455 16.7917 10.1554 16.8154 9.963L17.9325 10.1014C17.8785 10.5403 17.792 10.9746 17.6737 11.4008L16.5892 11.1004C16.641 10.9148 16.686 10.7269 16.7242 10.5368ZM15.6532 13.2131C15.8602 12.8869 16.0425 12.5449 16.2 12.1916L17.2282 12.6473C17.0482 13.0523 16.8401 13.4415 16.6039 13.815L15.6532 13.2131ZM14.5687 14.5688C14.706 14.4315 14.8376 14.2898 14.9625 14.1435L15.8152 14.8781C15.6708 15.0456 15.5204 15.2077 15.3641 15.3641L14.5687 14.5688Z",fill:"black",key:0}),n.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.99961 1.125C7.7046 1.12509 6.4296 1.44455 5.28753 2.05508C4.14547 2.66561 3.1716 3.54836 2.45217 4.62516C1.73275 5.70195 1.28998 6.93954 1.16308 8.22832C1.03618 9.5171 1.22907 10.8173 1.72466 12.0137C2.22025 13.2101 3.00325 14.2659 4.0043 15.0874C5.00535 15.909 6.19356 16.471 7.46368 16.7237C8.73381 16.9763 10.0466 16.9119 11.2859 16.536C12.5252 16.1601 13.6526 15.4844 14.5684 14.5688L15.3637 15.3641C14.3172 16.4113 13.0285 17.1841 11.6119 17.6141C10.1953 18.0442 8.69447 18.1182 7.24243 17.8295C5.79039 17.5409 4.43195 16.8986 3.28748 15.9595C2.143 15.0204 1.24784 13.8135 0.681284 12.4458C0.114733 11.078 -0.105707 9.59162 0.0394939 8.1183C0.184695 6.64499 0.691055 5.23024 1.51371 3.9994C2.33636 2.76855 3.44991 1.75962 4.75569 1.062C6.06147 0.364382 7.51916 -0.000392324 8.99961 3.16641e-07V1.125Z",fill:"black",key:1}),n.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.4375 3.375C8.58668 3.375 8.72976 3.43426 8.83525 3.53975C8.94074 3.64524 9 3.78832 9 3.9375V9.79875L12.654 11.8867C12.7798 11.9626 12.8709 12.0847 12.9078 12.2268C12.9448 12.369 12.9247 12.5199 12.8518 12.6475C12.779 12.775 12.6591 12.869 12.5179 12.9093C12.3766 12.9496 12.2252 12.9331 12.096 12.8632L8.1585 10.6132C8.07241 10.5641 8.00084 10.493 7.95106 10.4073C7.90127 10.3215 7.87503 10.2241 7.875 10.125V3.9375C7.875 3.78832 7.93426 3.64524 8.03975 3.53975C8.14524 3.43426 8.28832 3.375 8.4375 3.375Z",fill:"black",key:2})]),n.createElement("defs",{key:1},n.createElement("clipPath",{id:"clip0_829_432"},n.createElement("rect",{width:"18",height:"18",fill:"white"})))])}a.defaultProps={width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"},e.exports=a,a.default=a}}]); -//# sourceMappingURL=component---src-pages-templates-blog-tsx-3e928f3e8cb34f3b7e4c.js.map \ No newline at end of file diff --git a/component---src-pages-templates-blog-tsx-3e928f3e8cb34f3b7e4c.js.map b/component---src-pages-templates-blog-tsx-3e928f3e8cb34f3b7e4c.js.map deleted file mode 100644 index d50ee82e..00000000 --- a/component---src-pages-templates-blog-tsx-3e928f3e8cb34f3b7e4c.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"component---src-pages-templates-blog-tsx-3e928f3e8cb34f3b7e4c.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/./src/components/common/pagination.tsx","webpack://code-cave/./src/components/posts/postPreview.tsx","webpack://code-cave/./src/pagesTemplates/blog.tsx","webpack://code-cave/./src/assets/common/border.svg","webpack://code-cave/./src/assets/common/chat-right-quote.svg","webpack://code-cave/./src/assets/common/clock.svg"],"sourcesContent":["import React from \"react\";\n\nconst Spinner = ({ className }: { className?: string }) => {\n return (\n <div\n className={`flex justify-center items-center h-full w-full ${className}`}\n >\n <svg\n aria-hidden=\"true\"\n className=\"w-8 h-8 mr-2 text-main-10 animate-spin dark:text-secondary-10 fill-main-100\"\n viewBox=\"0 0 100 101\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n 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\"\n fill=\"currentColor\"\n />\n <path\n 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\"\n fill=\"currentFill\"\n />\n </svg>\n </div>\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<boolean>(false);\n const isInitial = useRef<boolean>(true);\n const canvasRef = useRef<HTMLCanvasElement>(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);\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 window.addEventListener(\n \"mouseup\",\n () => window.removeEventListener(\"mousemove\", onMouseMoveHandler),\n { once: 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(\"touchstart\", (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 window.addEventListener(\"touchend\", () => {\n window.removeEventListener(\"touchmove\", onTouchMoveHandler);\n });\n });\n\n // UNMOUNT handler\n return () => {\n if (window) {\n window.removeEventListener(\"resize\", onResizeHandler);\n window.removeEventListener(\"mousemove\", onMouseMoveHandler);\n window.removeEventListener(\"touchmove\", onTouchMoveHandler);\n }\n if (canvas) {\n canvas.removeEventListener(\"wheel\", onWheelHandler);\n }\n babylonWorker.postMessage({ dispose: true });\n };\n }, []);\n\n return (\n <div className={`h-full w-full relative`}>\n <canvas\n ref={canvasRef}\n className={`bg-main-100 h-160 w-full flex items-center justify-center cursor-pointer`}\n />\n {!isBabylonReady ? (\n <Spinner className=\"absolute top-0 left-0 right-0 bottom-0 z-10\" />\n ) : null}\n </div>\n );\n};\n\nexport default Babylon;\n","import React, { useEffect, useState } from \"react\";\n\nimport Border from \"../../assets/common/border.svg\";\n\nimport ContentContainer from \"./contentContainer\";\nimport Babylon from \"../babylonjs/babylon\";\n\nconst Banner = ({\n heightClass = \"min-h-160\",\n title,\n text,\n className,\n borderBottom,\n borderTop,\n babylon,\n}: {\n heightClass?: string;\n title: string;\n text: string;\n className?: string;\n borderBottom?: boolean;\n borderTop?: boolean;\n babylon?: boolean;\n}) => {\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 <div\n className={`w-full flex items-center bg-main-100 relative overflow-hidden px-6 ${heightClass} ${className}`}\n >\n {borderTop ? (\n <Border className=\"absolute top-0 left-0 right-0 w-full\" />\n ) : null}\n <ContentContainer\n className={`h-full flex flex-col lg:flex-row py-12 lg:py-0 items-center text-secondary-100 flex-grow`}\n >\n <div className=\"flex flex-col overflow-hidden items-left h-full justify-center text-secondary-100 h-full w-full lg:w-1/2 bg-main-100\">\n <h2 className={`overflow-hidden mb-8 w-full`}>\n <span\n className={`inline-block font-['Rubik_Glitch'] text-5xl sm:text-6xl w-full text-center lg:text-start transition-all duration-1000 ${textTranslate}`}\n >\n {title.toUpperCase()}\n </span>\n </h2>\n <p className={`overflow-hidden w-full`}>\n <span\n className={`inline-block w-full text-3xl sm:text-4xl font-light text-center lg:text-start transition-all duration-1000 ${textTranslate}`}\n >\n {text.toUpperCase()}\n </span>\n </p>\n </div>\n {babylon ? (\n <div className=\"w-[85%] lg:w-1/2 lg:h-full flex\">\n <Babylon />\n </div>\n ) : null}\n </ContentContainer>\n {borderBottom ? (\n <Border className=\"absolute bottom-0 left-0 right-0 w-full\" />\n ) : null}\n </div>\n );\n};\n\nexport default Banner;\n","import React from \"react\";\n\nimport { Link } from \"gatsby\";\n\nimport Button from \"./button\";\n\nconst Pagination = ({\n section,\n pagesQuantity,\n currentPage,\n className,\n}: {\n section: \"projects\" | \"blog\";\n pagesQuantity: number;\n currentPage: number;\n className?: string;\n}) => {\n const pages = Array.from({ length: pagesQuantity }, (_, i) => i + 1);\n const nextPage = currentPage + 1;\n\n return (\n <div className={`my-16 flex justify-between w-full ${className}`}>\n {currentPage < pagesQuantity ? (\n <Link to={`/${section}/page/${nextPage}`} className=\"basis-1/2\">\n <Button size=\"large\" variant=\"dark\" className=\"w-max\">\n NEXT PAGE\n </Button>\n </Link>\n ) : null}\n\n <nav className=\"w-full flex justify-end\">\n {pagesQuantity > 1\n ? pages.map((page) => (\n <Link\n key={`pagination-link-${page}`}\n to={`/${section}/page/${page}`}\n >\n <Button\n size=\"large\"\n variant={page === currentPage ? \"dark\" : \"light\"}\n border={page !== currentPage}\n className=\"mx-[-1px]\"\n >\n {page}\n </Button>\n </Link>\n ))\n : null}\n </nav>\n </div>\n );\n};\n\nexport default Pagination;\n","import React from \"react\";\n\nimport { Link } from \"gatsby\";\n\nimport Quote from \"../../assets/common/chat-right-quote.svg\";\nimport Clock from \"../../assets/common/clock.svg\";\n\nimport { IPostPreviewQueryResult } from \"../../types/post.type\";\nimport { LocalBusinessMetadata } from \"../common/metadata\";\n\nconst PostPreview = ({\n post,\n className,\n fontColor,\n gradientBorder,\n}: {\n post: IPostPreviewQueryResult;\n className?: string;\n fontColor: \"main\" | \"secondary\";\n gradientBorder?: boolean;\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 fontColor === \"main\" ? \"text-main-100\" : \"text-secondary-100\";\n const fontColorClass10 =\n fontColor === \"main\" ? \"text-main-100\" : \"text-secondary-10\";\n const fontColorHover =\n fontColor === \"main\" ? \"hover:text-main-10\" : \"hover:text-secondary-100\";\n\n return (\n <Link\n to={`/blog/${post.id}`}\n className={`flex flex-col sm:flex-row w-full ${fontColorClass10} ${fontColorHover} ${className} ${\n gradientBorder ? \"gradient-border\" : \"\"\n }`}\n itemScope\n itemType=\"https://schema.org/Article\"\n >\n <div\n className=\"hidden md:flex md:basis-1/4 shrink-0 justify-center p-6\"\n itemProp=\"image\"\n >\n <Quote className={fontColor === \"secondary\" ? \"\" : \"brightness-0\"} />\n </div>\n <div className=\"flex flex-col basis-1/2 md:basis-1/3 shrink-0 mb-12 sm:mb-0\">\n <p className={`text-3xl font-light ${fontColorClass10} pb-5`}>{date}</p>\n <h3\n className={`text-4xl font-bold ${fontColorClass100}`}\n itemProp=\"headline\"\n >\n {title}\n </h3>\n </div>\n <div className=\"flex flex-col basis-1/2 md:basis-1/3 shrink-0\">\n <p\n className={`font-normal text-2xl ${fontColorClass10}`}\n itemProp=\"abstract\"\n >\n {text.split(\" \").slice(0, 60).join(\" \")}...\n </p>\n <div className=\"flex justify-between items-center pt-6\">\n <p className={`text-2xl font-bold`}>Read more</p>\n <p>\n <Clock className={\"inline\"} />\n\n <span className=\"inline text-xl font-light italic pl-4\">\n Reading time: {readingTime}m.\n </span>\n </p>\n </div>\n </div>\n <LocalBusinessMetadata itemProp=\"copyrightHolder\" />\n </Link>\n );\n};\n\nexport default PostPreview;\n","import React from \"react\";\n\nimport { HeadFC, PageProps } from \"gatsby\";\nimport { graphql } from \"gatsby\";\n\nimport { IBlogPageData, IBlogPageContext } from \"../types/blog.type\";\n\nimport Banner from \"../components/common/banner\";\nimport ContentContainer from \"../components/common/contentContainer\";\nimport PostPreview from \"../components/posts/postPreview\";\nimport Pagination from \"../components/common/pagination\";\n\nconst Blog = ({\n data,\n pageContext,\n}: PageProps<IBlogPageData, IBlogPageContext>) => {\n const posts = data.allMarkdownRemark.nodes;\n const { currentPage, pagesQuantity } = pageContext;\n\n return (\n <>\n <Banner\n heightClass=\"h-136\"\n title=\"MAKE BLOGGING GREAT AGAIN\"\n text=\"Well unknown facts for your tech savvy and entertainment\"\n borderBottom\n />\n <ContentContainer className=\"flex-col items-center p-6 md:p-12\">\n {posts\n ? posts.map((post) => (\n <PostPreview\n key={post.id}\n post={post}\n fontColor=\"main\"\n className=\"py-14 border-b-4 border-dashed border-secondary-100\"\n gradientBorder\n />\n ))\n : null}\n <Pagination\n section={\"blog\"}\n pagesQuantity={pagesQuantity}\n currentPage={currentPage}\n />\n </ContentContainer>\n </>\n );\n};\n\nexport default Blog;\n\nexport const Head: HeadFC = () => <title>CodeCave Blog</title>;\n\nexport const query = graphql`\n query ($skip: Int!, $limit: Int!) {\n allMarkdownRemark(\n filter: { fields: { sourceName: { eq: \"posts\" } } }\n sort: { frontmatter: { date: DESC } }\n limit: $limit\n skip: $skip\n ) {\n nodes {\n id\n frontmatter {\n date(formatString: \"MMM DD, YYYY\")\n title\n text\n cover {\n childImageSharp {\n gatsbyImageData(\n formats: [AUTO, WEBP, AVIF]\n placeholder: BLURRED\n width: 600\n )\n }\n }\n }\n wordCount {\n words\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\":\"white\",\"strokeWidth\":\"8\",\"strokeDasharray\":\"8 8\",\"x1\":\"0\",\"x2\":\"100%\",\"y1\":\"4\",\"y2\":\"4\",\"key\":0}),React.createElement(\"line\",{\"width\":\"800\",\"height\":\"8\",\"stroke\":\"black\",\"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","var React = require('react');\n\nfunction ChatRightQuote (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"path\",{\"fillRule\":\"evenodd\",\"clipRule\":\"evenodd\",\"d\":\"M15.875 7.9375H111.125C113.23 7.9375 115.249 8.77377 116.738 10.2623C118.226 11.7509 119.062 13.7698 119.062 15.875V107.839L103.188 91.9639C100.211 88.9865 96.1738 87.3134 91.9639 87.3125H15.875C13.7698 87.3125 11.7509 86.4762 10.2623 84.9877C8.77377 83.4991 7.9375 81.4802 7.9375 79.375V15.875C7.9375 13.7698 8.77377 11.7509 10.2623 10.2623C11.7509 8.77377 13.7698 7.9375 15.875 7.9375ZM111.125 0C115.335 0 119.373 1.67254 122.35 4.64968C125.327 7.62682 127 11.6647 127 15.875V117.419C127 118.205 126.767 118.972 126.33 119.625C125.893 120.278 125.273 120.786 124.547 121.086C123.822 121.386 123.023 121.464 122.253 121.31C121.483 121.156 120.776 120.777 120.221 120.221L97.5757 97.5757C96.0875 96.087 94.0689 95.2505 91.9639 95.25H15.875C11.6647 95.25 7.62682 93.5775 4.64968 90.6003C1.67254 87.6232 0 83.5853 0 79.375V15.875C0 11.6647 1.67254 7.62682 4.64968 4.64968C7.62682 1.67254 11.6647 0 15.875 0L111.125 0Z\",\"fill\":\"#FAFAFA\",\"key\":0}),React.createElement(\"path\",{\"fillRule\":\"evenodd\",\"clipRule\":\"evenodd\",\"d\":\"M56.0865 37.7825C54.5404 35.3747 52.2544 33.5337 49.5723 32.5363C46.8902 31.5389 43.9569 31.439 41.2131 32.2515C38.4694 33.0641 36.0635 34.7453 34.357 37.0423C32.6506 39.3394 31.7358 42.1283 31.7502 44.9898C31.7516 47.3594 32.3893 49.6851 33.5968 51.7241C34.8042 53.763 36.537 55.4402 38.6142 56.5806C40.6914 57.721 43.0367 58.2826 45.4051 58.2069C47.7735 58.1311 50.0781 57.4207 52.0781 56.1499C51.0383 59.2376 49.1015 62.5316 45.9107 65.8336C45.3002 66.4652 44.9656 67.3134 44.9804 68.1916C44.9953 69.0699 45.3585 69.9063 45.99 70.5168C46.6216 71.1273 47.4698 71.4619 48.348 71.447C49.2263 71.4321 50.0627 71.0689 50.6732 70.4374C62.4683 58.2136 60.9364 44.9263 56.0865 37.7984V37.7825ZM87.8365 37.7825C86.2904 35.3747 84.0044 33.5337 81.3223 32.5363C78.6403 31.5389 75.7069 31.439 72.9631 32.2515C70.2194 33.0641 67.8135 34.7453 66.107 37.0423C64.4006 39.3394 63.4858 42.1283 63.5002 44.9898C63.5016 47.3594 64.1393 49.6851 65.3468 51.7241C66.5542 53.763 68.287 55.4402 70.3642 56.5806C72.4414 57.721 74.7867 58.2826 77.1551 58.2069C79.5235 58.1311 81.8281 57.4207 83.8281 56.1499C82.7883 59.2376 80.8515 62.5316 77.6607 65.8336C77.0502 66.4652 76.7156 67.3134 76.7304 68.1916C76.7453 69.0699 77.1085 69.9063 77.74 70.5168C78.3716 71.1273 79.2198 71.4619 80.098 71.447C80.9763 71.4321 81.8127 71.0689 82.4232 70.4374C94.2183 58.2136 92.6864 44.9263 87.8365 37.7984V37.7825Z\",\"fill\":\"#FAFAFA\",\"key\":1})]);\n}\n\nChatRightQuote.defaultProps = {\"width\":\"127\",\"height\":\"127\",\"viewBox\":\"0 0 127 127\",\"fill\":\"none\"};\n\nmodule.exports = ChatRightQuote;\n\nChatRightQuote.default = ChatRightQuote;\n","var React = require('react');\n\nfunction Clock (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"g\",{\"clipPath\":\"url(#clip0_829_432)\",\"key\":0},[React.createElement(\"path\",{\"fillRule\":\"evenodd\",\"clipRule\":\"evenodd\",\"d\":\"M9.57938 1.14638C9.38658 1.13214 9.19332 1.12501 9 1.125V0C9.2211 0.000107806 9.44213 0.00836341 9.66262 0.02475L9.57938 1.14638ZM11.8339 1.65263C11.4733 1.51347 11.1029 1.40104 10.7258 1.31625L10.9721 0.21825C11.403 0.315 11.8271 0.44325 12.2389 0.603L11.8339 1.65263ZM13.3751 2.45138C13.2143 2.34411 13.0495 2.24279 12.8812 2.14763L13.4359 1.16888C13.8205 1.38683 14.1886 1.63274 14.5372 1.90463L13.8454 2.79225C13.6929 2.67326 13.536 2.55993 13.3751 2.4525V2.45138ZM15.4384 4.46513C15.2158 4.14897 14.9703 3.84966 14.7037 3.56963L15.5182 2.79338C15.822 3.114 16.1032 3.45713 16.3586 3.81713L15.4384 4.46513ZM16.2754 5.98613C16.2015 5.80777 16.1212 5.63215 16.0346 5.45963L17.0392 4.95338C17.2379 5.34835 17.4071 5.75746 17.5455 6.17738L16.4767 6.5295C16.4163 6.34597 16.3491 6.16473 16.2754 5.98613ZM16.8716 8.8065C16.8625 8.41988 16.8249 8.03446 16.7591 7.65338L17.8672 7.46213C17.9426 7.89638 17.9865 8.33738 17.9977 8.77838L16.8727 8.8065H16.8716ZM16.7242 10.5368C16.7614 10.3455 16.7917 10.1554 16.8154 9.963L17.9325 10.1014C17.8785 10.5403 17.792 10.9746 17.6737 11.4008L16.5892 11.1004C16.641 10.9148 16.686 10.7269 16.7242 10.5368ZM15.6532 13.2131C15.8602 12.8869 16.0425 12.5449 16.2 12.1916L17.2282 12.6473C17.0482 13.0523 16.8401 13.4415 16.6039 13.815L15.6532 13.2131ZM14.5687 14.5688C14.706 14.4315 14.8376 14.2898 14.9625 14.1435L15.8152 14.8781C15.6708 15.0456 15.5204 15.2077 15.3641 15.3641L14.5687 14.5688Z\",\"fill\":\"black\",\"key\":0}),React.createElement(\"path\",{\"fillRule\":\"evenodd\",\"clipRule\":\"evenodd\",\"d\":\"M8.99961 1.125C7.7046 1.12509 6.4296 1.44455 5.28753 2.05508C4.14547 2.66561 3.1716 3.54836 2.45217 4.62516C1.73275 5.70195 1.28998 6.93954 1.16308 8.22832C1.03618 9.5171 1.22907 10.8173 1.72466 12.0137C2.22025 13.2101 3.00325 14.2659 4.0043 15.0874C5.00535 15.909 6.19356 16.471 7.46368 16.7237C8.73381 16.9763 10.0466 16.9119 11.2859 16.536C12.5252 16.1601 13.6526 15.4844 14.5684 14.5688L15.3637 15.3641C14.3172 16.4113 13.0285 17.1841 11.6119 17.6141C10.1953 18.0442 8.69447 18.1182 7.24243 17.8295C5.79039 17.5409 4.43195 16.8986 3.28748 15.9595C2.143 15.0204 1.24784 13.8135 0.681284 12.4458C0.114733 11.078 -0.105707 9.59162 0.0394939 8.1183C0.184695 6.64499 0.691055 5.23024 1.51371 3.9994C2.33636 2.76855 3.44991 1.75962 4.75569 1.062C6.06147 0.364382 7.51916 -0.000392324 8.99961 3.16641e-07V1.125Z\",\"fill\":\"black\",\"key\":1}),React.createElement(\"path\",{\"fillRule\":\"evenodd\",\"clipRule\":\"evenodd\",\"d\":\"M8.4375 3.375C8.58668 3.375 8.72976 3.43426 8.83525 3.53975C8.94074 3.64524 9 3.78832 9 3.9375V9.79875L12.654 11.8867C12.7798 11.9626 12.8709 12.0847 12.9078 12.2268C12.9448 12.369 12.9247 12.5199 12.8518 12.6475C12.779 12.775 12.6591 12.869 12.5179 12.9093C12.3766 12.9496 12.2252 12.9331 12.096 12.8632L8.1585 10.6132C8.07241 10.5641 8.00084 10.493 7.95106 10.4073C7.90127 10.3215 7.87503 10.2241 7.875 10.125V3.9375C7.875 3.78832 7.93426 3.64524 8.03975 3.53975C8.14524 3.43426 8.28832 3.375 8.4375 3.375Z\",\"fill\":\"black\",\"key\":2})]),React.createElement(\"defs\",{\"key\":1},React.createElement(\"clipPath\",{\"id\":\"clip0_829_432\"},React.createElement(\"rect\",{\"width\":\"18\",\"height\":\"18\",\"fill\":\"white\"})))]);\n}\n\nClock.defaultProps = {\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"};\n\nmodule.exports = Clock;\n\nClock.default = Clock;\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","onWheelHandler","e","preventDefault","wheel","deltaY","onMouseMoveHandler","x","movementX","y","movementY","removeEventListener","once","onTouchMoveHandler","touches","length","firstTouch","previousCoords","screenX","screenY","newX","newY","nestedTouchMoveHandler","touch","dispose","ref","Spinner","heightClass","title","text","borderBottom","borderTop","babylon","textTranslate","setTextTranslate","Border","ContentContainer","toUpperCase","section","pagesQuantity","currentPage","pages","Array","from","_","i","nextPage","Link","to","Button","size","variant","map","page","key","border","post","fontColor","gradientBorder","date","frontmatter","minutes","Math","floor","wordCount","words","readingTime","fontColorClass100","fontColorClass10","fontColorHover","id","itemScope","itemType","itemProp","Quote","split","slice","join","Clock","LocalBusinessMetadata","pageContext","posts","allMarkdownRemark","nodes","Banner","PostPreview","Pagination","Head","props","createElement","defaultProps","module","exports","default","ChatRightQuote"],"sourceRoot":""} \ No newline at end of file diff --git a/component---src-pages-templates-post-tsx-7f7e2c93fcb41ce4f82f.js b/component---src-pages-templates-post-tsx-7f7e2c93fcb41ce4f82f.js new file mode 100644 index 00000000..62c48625 --- /dev/null +++ b/component---src-pages-templates-post-tsx-7f7e2c93fcb41ce4f82f.js @@ -0,0 +1,2 @@ +(self.webpackChunkcode_cave=self.webpackChunkcode_cave||[]).push([[354],{2916:function(e,t,l){var n=l(9720).w_;e.exports.t=function(e){return n({tag:"svg",attr:{viewBox:"0 0 320 512"},child:[{tag:"path",attr:{d:"M279.14 288l14.22-92.66h-88.91v-60.13c0-25.35 12.42-50.06 52.24-50.06h40.42V6.26S260.43 0 225.36 0c-73.22 0-121.08 44.38-121.08 124.72v70.62H22.89V288h81.39v224h100.17V288z"}}]})(e)}},6433:function(e,t,l){var n=l(9720).w_;e.exports.u=function(e){return n({tag:"svg",attr:{viewBox:"0 0 640 512"},child:[{tag:"path",attr:{d:"M386.061 228.496c1.834 9.692 3.143 19.384 3.143 31.956C389.204 370.205 315.599 448 204.8 448c-106.084 0-192-85.915-192-192s85.916-192 192-192c51.864 0 95.083 18.859 128.611 50.292l-52.126 50.03c-14.145-13.621-39.028-29.599-76.485-29.599-65.484 0-118.92 54.221-118.92 121.277 0 67.056 53.436 121.277 118.92 121.277 75.961 0 104.513-54.745 108.965-82.773H204.8v-66.009h181.261zm185.406 6.437V179.2h-56.001v55.733h-55.733v56.001h55.733v55.733h56.001v-55.733H627.2v-56.001h-55.733z"}}]})(e)}},6625:function(e,t,l){var n=l(9720).w_;e.exports.c=function(e){return n({tag:"svg",attr:{viewBox:"0 0 384 512"},child:[{tag:"path",attr:{d:"M204 6.5C101.4 6.5 0 74.9 0 185.6 0 256 39.6 296 63.6 296c9.9 0 15.6-27.6 15.6-35.4 0-9.3-23.7-29.1-23.7-67.8 0-80.4 61.2-137.4 140.4-137.4 68.1 0 118.5 38.7 118.5 109.8 0 53.1-21.3 152.7-90.3 152.7-24.9 0-46.2-18-46.2-43.8 0-37.8 26.4-74.4 26.4-113.4 0-66.2-93.9-54.2-93.9 25.8 0 16.8 2.1 35.4 9.6 50.7-13.8 59.4-42 147.9-42 209.1 0 18.9 2.7 37.5 4.5 56.4 3.4 3.8 1.7 3.4 6.9 1.5 50.4-69 48.6-82.5 71.4-172.8 12.3 23.4 44.1 36 69.3 36 106.2 0 153.9-103.5 153.9-196.8C384 71.3 298.2 6.5 204 6.5z"}}]})(e)}},1362:function(e,t,l){var n=l(9720).w_;e.exports.f=function(e){return n({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"}}]})(e)}},1929:function(e,t,l){"use strict";l.d(t,{Z:function(){return c}});var n=l(7294),r=l(4471),a=l.n(r),s=l(1164);var i=e=>{let{className:t}=e;return n.createElement("div",{className:"flex justify-center items-center h-full w-full "+t},n.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"},n.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"}),n.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 o=()=>{const{0:e,1:t}=(0,n.useState)(!1),r=(0,n.useRef)(!0),a=(0,n.useRef)(null);return(0,n.useEffect)((()=>{if(!r.current||!a.current||"undefined"==typeof window)return;r.current=!1;const e=new Worker(new URL(l.p+l.u(475),l.b),{type:void 0});e.onmessage=e=>{let{data:l}=e;"ready"===l&&t(!0)};const n=a.current;n.width=n.clientWidth,n.height=n.clientHeight;const s=n.transferControlToOffscreen();e.postMessage({canvas:s},[s]);const i=()=>{e.postMessage({width:n.clientWidth,height:n.clientHeight})};window.addEventListener("resize",i);const o=t=>{t.preventDefault(),e.postMessage({wheel:t.deltaY})};n.addEventListener("wheel",o);const c=t=>{e.postMessage({x:t.movementX,y:t.movementY})};n.addEventListener("mousedown",(e=>{e.preventDefault(),window.addEventListener("mousemove",c),window.addEventListener("mouseup",(()=>window.removeEventListener("mousemove",c)),{once:!0})}));let m;return n.addEventListener("touchstart",(t=>{if(1!==t.touches.length)return;const l=t.touches[0];t.preventDefault();const n={x:l.screenX,y:l.screenY};m=t=>{const{newX:l,newY:r}=((t,l)=>{const n=t.touches[0];return e.postMessage({x:n.screenX-l.x,y:n.screenY-l.y}),{newX:n.screenX,newY:n.screenY}})(t,n);n.x=l,n.y=r},window.addEventListener("touchmove",m),window.addEventListener("touchend",(()=>{window.removeEventListener("touchmove",m)}))})),()=>{window&&(window.removeEventListener("resize",i),window.removeEventListener("mousemove",c),window.removeEventListener("touchmove",m),n&&n.removeEventListener("wheel",o),e.terminate())}}),[]),n.createElement("div",{className:"h-full w-full relative"},n.createElement("canvas",{ref:a,className:"bg-main-100 h-160 w-full flex items-center justify-center cursor-pointer"}),e?null:n.createElement(i,{className:"absolute top-0 left-0 right-0 bottom-0 z-10"}))};var c=e=>{let{heightClass:t="min-h-160",title:l,text:r,className:i,borderBottom:c,borderTop:m,babylon:u}=e;const{0:d,1:f}=(0,n.useState)("translate-y-full");return(0,n.useEffect)((()=>{f("translate-y-0")}),[]),n.createElement("div",{className:"w-full flex items-center bg-main-100 relative overflow-hidden px-6 "+t+" "+i},m?n.createElement(a(),{className:"absolute top-0 left-0 right-0 w-full"}):null,n.createElement(s.Z,{className:"h-full flex flex-col lg:flex-row py-12 lg:py-0 items-center text-secondary-100 flex-grow"},n.createElement("div",{className:"flex flex-col overflow-hidden items-left h-full justify-center text-secondary-100 h-full w-full lg:w-1/2 bg-main-100"},n.createElement("h2",{className:"overflow-hidden mb-8 w-full"},n.createElement("span",{className:"inline-block font-['Rubik_Glitch'] text-5xl sm:text-6xl w-full text-center lg:text-start transition-all duration-1000 "+d},l.toUpperCase())),n.createElement("p",{className:"overflow-hidden w-full"},n.createElement("span",{className:"inline-block w-full text-3xl sm:text-4xl font-light text-center lg:text-start transition-all duration-1000 "+d},r.toUpperCase()))),u?n.createElement("div",{className:"w-[85%] lg:w-1/2 lg:h-full flex"},n.createElement(o,null)):null),c?n.createElement(a(),{className:"absolute bottom-0 left-0 right-0 w-full"}):null)}},697:function(e,t,l){"use strict";l.r(t),l.d(t,{Head:function(){return y},default:function(){return b}});var n=l(7294),r=l(7896),a=l(4697),s=l.n(a),i=l(9165),o=l(1164),c=l(1929),m=l(2916),u=l(1362),d=l(6433),f=l(6625),h=l(7951);const C=e=>{let{url:t,media:l,children:r}=e;return n.createElement("a",{href:t,target:"_blank",title:"Share on "+l},n.createElement("button",{className:"w-12 h-12 border border-solid rounded-full border-main-10 flex justify-center items-center m-2 hover:bg-secondary-70"},r))};var w=e=>{let{url:t,title:l}=e;return n.createElement(n.Fragment,null,n.createElement(C,{media:"Facebook",url:"https://www.facebook.com/sharer/sharer.php?u="+t+"&p[title]="+l},n.createElement(m.t,{size:"20px"})),n.createElement(C,{media:"Twitter",url:"http://twitter.com/share?text="+l+"&url="+t},n.createElement(u.f,{size:"20px"})),n.createElement(C,{media:"Google+",url:"https://plus.google.com/share?url="+t},n.createElement(d.u,{size:"20px"})),n.createElement(C,{media:"Pinterest",url:"http://pinterest.com/pin/create/button/?url="+t+"&description="+l},n.createElement(f.c,{size:"20px"})),n.createElement(C,{media:"Linkedin",url:"http://www.linkedin.com/shareArticle?mini=true&url="+t+"&title="+l+"&source=CodeCave"},n.createElement(h.B,{size:"20px"})))},v=l(4471),p=l.n(v),x=l(35),E=l.n(x);var g=()=>n.createElement("div",{className:"w-full h-96 bg-main-100 flex px-6 relative"},n.createElement(p(),{className:"absolute top-0 left-0 right-0 w-full"}),n.createElement(o.Z,{className:"items-center"},n.createElement("div",{className:"w-full basis-1/5 hidden sm:flex justify-start items-center pr-16"},n.createElement(E(),null)),n.createElement("div",{className:"w-full text-center sm:text-start sm:basis-3/5 flex flex-col justify-center items-center"},n.createElement("h4",{className:"text-secondary-100 text-4xl font-bold pb-5"},"Congratulations! Now you can show off with your new knowledge!"),n.createElement("p",{className:"text-3xl font-light text-secondary-100"},"If you want us to uncover some other Well unknown facts, you can contact us via the socials or e-mail below. See you!"," "))));var b=e=>{let{data:{markdownRemark:{frontmatter:t,html:l,wordCount:{words:a}}}}=e;const{href:m}=(0,r.useLocation)(),{date:u,title:d,keywords:f}=t,h=Math.floor(a/200),C=h||1;return n.createElement(n.Fragment,null,n.createElement(c.Z,{heightClass:"h-136",title:"MAKE BLOGGING GREAT AGAIN",text:"Well unknown facts for your tech savvy and entertainment",borderBottom:!0}),n.createElement("div",{itemScope:!0,itemType:"https://schema.org/Article",className:"px-6"},n.createElement(o.Z,{className:"flex-col max-w-6xl"},n.createElement("div",{className:"w-full flex pt-14 pb-9 items-center"},n.createElement("span",{className:"inline text-2xl sm:text-3xl text-main-100 font-light pr-11",itemProp:"datePublished"},u),n.createElement(s(),null),n.createElement("span",{className:"inline text-xl font-light italic pl-4"},"Reading time: ",C,"m.")),n.createElement("h2",{className:"text-main-100 text-4xl sm:text-5xl md:text-6xl font-semibold leading-[52px] sm:pb-10 md:pb-16",itemProp:"headline"},d),n.createElement("div",{className:"single-post text-main-100 font-medium text-2xl pb-10",dangerouslySetInnerHTML:{__html:l},itemProp:"articleBody"}),n.createElement("div",{className:"w-full flex flex-col md:flex-row justify-between items-center pb-24"},f?n.createElement("div",{className:"basis-full sm:basis-3/5 text-center md:text-start pb-10 md:pb-0"},f.map((e=>n.createElement("div",{key:e,className:"inline-block text-main-10 border-main-10 border-solid border rounded-full p-1 px-4 text-2xl m-2",itemProp:"keywords"},"#",e.toLowerCase())))):null,n.createElement("div",{className:"basis-full sm:basis-2/5 flex flex-row justify-end"},n.createElement(w,{url:m,title:d})))),n.createElement(i.L,{itemProp:"copyrightHolder"})),n.createElement(g,null))};const y=e=>{let{data:{markdownRemark:{frontmatter:{title:t}}}}=e;return n.createElement("title",null,"CodeCave blog: ",t)}},4471:function(e,t,l){var n=l(7294);function r(e){return n.createElement("svg",e,[n.createElement("line",{width:"800",height:"8",stroke:"white",strokeWidth:"8",strokeDasharray:"8 8",x1:"0",x2:"100%",y1:"4",y2:"4",key:0}),n.createElement("line",{width:"800",height:"8",stroke:"black",strokeWidth:"8",strokeDasharray:"8 8",x1:"8",x2:"100%",y1:"4",y2:"4",key:1})])}r.defaultProps={height:"8"},e.exports=r,r.default=r},4697:function(e,t,l){var n=l(7294);function r(e){return n.createElement("svg",e,[n.createElement("g",{clipPath:"url(#clip0_829_432)",key:0},[n.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M9.57938 1.14638C9.38658 1.13214 9.19332 1.12501 9 1.125V0C9.2211 0.000107806 9.44213 0.00836341 9.66262 0.02475L9.57938 1.14638ZM11.8339 1.65263C11.4733 1.51347 11.1029 1.40104 10.7258 1.31625L10.9721 0.21825C11.403 0.315 11.8271 0.44325 12.2389 0.603L11.8339 1.65263ZM13.3751 2.45138C13.2143 2.34411 13.0495 2.24279 12.8812 2.14763L13.4359 1.16888C13.8205 1.38683 14.1886 1.63274 14.5372 1.90463L13.8454 2.79225C13.6929 2.67326 13.536 2.55993 13.3751 2.4525V2.45138ZM15.4384 4.46513C15.2158 4.14897 14.9703 3.84966 14.7037 3.56963L15.5182 2.79338C15.822 3.114 16.1032 3.45713 16.3586 3.81713L15.4384 4.46513ZM16.2754 5.98613C16.2015 5.80777 16.1212 5.63215 16.0346 5.45963L17.0392 4.95338C17.2379 5.34835 17.4071 5.75746 17.5455 6.17738L16.4767 6.5295C16.4163 6.34597 16.3491 6.16473 16.2754 5.98613ZM16.8716 8.8065C16.8625 8.41988 16.8249 8.03446 16.7591 7.65338L17.8672 7.46213C17.9426 7.89638 17.9865 8.33738 17.9977 8.77838L16.8727 8.8065H16.8716ZM16.7242 10.5368C16.7614 10.3455 16.7917 10.1554 16.8154 9.963L17.9325 10.1014C17.8785 10.5403 17.792 10.9746 17.6737 11.4008L16.5892 11.1004C16.641 10.9148 16.686 10.7269 16.7242 10.5368ZM15.6532 13.2131C15.8602 12.8869 16.0425 12.5449 16.2 12.1916L17.2282 12.6473C17.0482 13.0523 16.8401 13.4415 16.6039 13.815L15.6532 13.2131ZM14.5687 14.5688C14.706 14.4315 14.8376 14.2898 14.9625 14.1435L15.8152 14.8781C15.6708 15.0456 15.5204 15.2077 15.3641 15.3641L14.5687 14.5688Z",fill:"black",key:0}),n.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.99961 1.125C7.7046 1.12509 6.4296 1.44455 5.28753 2.05508C4.14547 2.66561 3.1716 3.54836 2.45217 4.62516C1.73275 5.70195 1.28998 6.93954 1.16308 8.22832C1.03618 9.5171 1.22907 10.8173 1.72466 12.0137C2.22025 13.2101 3.00325 14.2659 4.0043 15.0874C5.00535 15.909 6.19356 16.471 7.46368 16.7237C8.73381 16.9763 10.0466 16.9119 11.2859 16.536C12.5252 16.1601 13.6526 15.4844 14.5684 14.5688L15.3637 15.3641C14.3172 16.4113 13.0285 17.1841 11.6119 17.6141C10.1953 18.0442 8.69447 18.1182 7.24243 17.8295C5.79039 17.5409 4.43195 16.8986 3.28748 15.9595C2.143 15.0204 1.24784 13.8135 0.681284 12.4458C0.114733 11.078 -0.105707 9.59162 0.0394939 8.1183C0.184695 6.64499 0.691055 5.23024 1.51371 3.9994C2.33636 2.76855 3.44991 1.75962 4.75569 1.062C6.06147 0.364382 7.51916 -0.000392324 8.99961 3.16641e-07V1.125Z",fill:"black",key:1}),n.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.4375 3.375C8.58668 3.375 8.72976 3.43426 8.83525 3.53975C8.94074 3.64524 9 3.78832 9 3.9375V9.79875L12.654 11.8867C12.7798 11.9626 12.8709 12.0847 12.9078 12.2268C12.9448 12.369 12.9247 12.5199 12.8518 12.6475C12.779 12.775 12.6591 12.869 12.5179 12.9093C12.3766 12.9496 12.2252 12.9331 12.096 12.8632L8.1585 10.6132C8.07241 10.5641 8.00084 10.493 7.95106 10.4073C7.90127 10.3215 7.87503 10.2241 7.875 10.125V3.9375C7.875 3.78832 7.93426 3.64524 8.03975 3.53975C8.14524 3.43426 8.28832 3.375 8.4375 3.375Z",fill:"black",key:2})]),n.createElement("defs",{key:1},n.createElement("clipPath",{id:"clip0_829_432"},n.createElement("rect",{width:"18",height:"18",fill:"white"})))])}r.defaultProps={width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"},e.exports=r,r.default=r},35:function(e,t,l){var n=l(7294);function r(e){return n.createElement("svg",e,n.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M17.9629 15.3376C17.9629 11.1936 19.6091 7.21936 22.5393 4.2891C25.4696 1.35885 29.4439 -0.287354 33.5879 -0.287354C37.7319 -0.287354 41.7062 1.35885 44.6364 4.2891C47.5667 7.21936 49.2129 11.1936 49.2129 15.3376C49.2129 11.1936 50.8591 7.21936 53.7893 4.2891C56.7196 1.35885 60.6939 -0.287354 64.8379 -0.287354C68.9819 -0.287354 72.9562 1.35885 75.8864 4.2891C78.8167 7.21936 80.4629 11.1936 80.4629 15.3376V15.3751C80.4629 15.8126 80.4629 17.0626 80.2254 18.4626H92.9629C94.6205 18.4626 96.2102 19.1211 97.3823 20.2932C98.5544 21.4653 99.2129 23.055 99.2129 24.7126V37.2126C99.2129 38.8703 98.5544 40.46 97.3823 41.6321C96.2102 42.8042 94.6205 43.4626 92.9629 43.4626V90.3376C92.9629 92.8241 91.9752 95.2086 90.217 96.9668C88.4589 98.7249 86.0743 99.7126 83.5879 99.7126H14.8379C12.3515 99.7126 9.96692 98.7249 8.20877 96.9668C6.45061 95.2086 5.46289 92.8241 5.46289 90.3376V43.4626C3.80529 43.4626 2.21558 42.8042 1.04347 41.6321C-0.128629 40.46 -0.787109 38.8703 -0.787109 37.2126V24.7126C-0.787109 23.055 -0.128629 21.4653 1.04347 20.2932C2.21558 19.1211 3.80529 18.4626 5.46289 18.4626H18.2004C18.0353 17.4419 17.9559 16.4091 17.9629 15.3751V15.3376ZM24.6379 18.4626H42.9629V15.3376C42.9629 14.1065 42.7204 12.8874 42.2493 11.75C41.7781 10.6126 41.0876 9.57907 40.217 8.70852C39.3465 7.83797 38.313 7.14741 37.1755 6.67628C36.0381 6.20514 34.819 5.96265 33.5879 5.96265C32.3567 5.96265 31.1377 6.20514 30.0002 6.67628C28.8628 7.14741 27.8293 7.83797 26.9588 8.70852C26.0882 9.57907 25.3977 10.6126 24.9265 11.75C24.4554 12.8874 24.2129 14.1065 24.2129 15.3376C24.2129 15.8689 24.2254 17.0501 24.4941 18.0251C24.5317 18.1742 24.5797 18.3204 24.6379 18.4626ZM55.4629 18.4626H73.7879C73.8454 18.3201 73.8934 18.174 73.9316 18.0251C74.2004 17.0501 74.2129 15.8689 74.2129 15.3376C74.2129 12.8512 73.2252 10.4667 71.467 8.70852C69.7089 6.95037 67.3243 5.96265 64.8379 5.96265C62.3515 5.96265 59.9669 6.95037 58.2088 8.70852C56.4506 10.4667 55.4629 12.8512 55.4629 15.3376V18.4626ZM5.46289 24.7126V37.2126H42.9629V24.7126H5.46289ZM55.4629 24.7126V37.2126H92.9629V24.7126H55.4629ZM86.7129 43.4626H55.4629V93.4626H83.5879C84.4167 93.4626 85.2115 93.1334 85.7976 92.5474C86.3837 91.9613 86.7129 91.1665 86.7129 90.3376V43.4626ZM42.9629 93.4626V43.4626H11.7129V90.3376C11.7129 91.1665 12.0421 91.9613 12.6282 92.5474C13.2142 93.1334 14.0091 93.4626 14.8379 93.4626H42.9629Z",fill:"white"}))}r.defaultProps={width:"100",height:"100",viewBox:"0 0 100 100",fill:"none"},e.exports=r,r.default=r}}]); +//# sourceMappingURL=component---src-pages-templates-post-tsx-7f7e2c93fcb41ce4f82f.js.map \ No newline at end of file diff --git a/component---src-pages-templates-post-tsx-7f7e2c93fcb41ce4f82f.js.map b/component---src-pages-templates-post-tsx-7f7e2c93fcb41ce4f82f.js.map new file mode 100644 index 00000000..6c0d9bc8 --- /dev/null +++ b/component---src-pages-templates-post-tsx-7f7e2c93fcb41ce4f82f.js.map @@ -0,0 +1 @@ +{"version":3,"file":"component---src-pages-templates-post-tsx-7f7e2c93fcb41ce4f82f.js","mappings":"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","sources":["webpack://code-cave/./node_modules/@react-icons/all-files/fa/FaFacebookF.js","webpack://code-cave/./node_modules/@react-icons/all-files/fa/FaGooglePlusG.js","webpack://code-cave/./node_modules/@react-icons/all-files/fa/FaPinterestP.js","webpack://code-cave/./node_modules/@react-icons/all-files/fa/FaTwitter.js","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/./src/components/posts/shareButtons.tsx","webpack://code-cave/./src/components/posts/postFooter.tsx","webpack://code-cave/./src/pagesTemplates/post.tsx","webpack://code-cave/./src/assets/common/border.svg","webpack://code-cave/./src/assets/common/clock.svg","webpack://code-cave/./src/assets/common/gift.svg"],"sourcesContent":["// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.FaFacebookF = function FaFacebookF (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M279.14 288l14.22-92.66h-88.91v-60.13c0-25.35 12.42-50.06 52.24-50.06h40.42V6.26S260.43 0 225.36 0c-73.22 0-121.08 44.38-121.08 124.72v70.62H22.89V288h81.39v224h100.17V288z\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.FaGooglePlusG = function FaGooglePlusG (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M386.061 228.496c1.834 9.692 3.143 19.384 3.143 31.956C389.204 370.205 315.599 448 204.8 448c-106.084 0-192-85.915-192-192s85.916-192 192-192c51.864 0 95.083 18.859 128.611 50.292l-52.126 50.03c-14.145-13.621-39.028-29.599-76.485-29.599-65.484 0-118.92 54.221-118.92 121.277 0 67.056 53.436 121.277 118.92 121.277 75.961 0 104.513-54.745 108.965-82.773H204.8v-66.009h181.261zm185.406 6.437V179.2h-56.001v55.733h-55.733v56.001h55.733v55.733h56.001v-55.733H627.2v-56.001h-55.733z\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.FaPinterestP = function FaPinterestP (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M204 6.5C101.4 6.5 0 74.9 0 185.6 0 256 39.6 296 63.6 296c9.9 0 15.6-27.6 15.6-35.4 0-9.3-23.7-29.1-23.7-67.8 0-80.4 61.2-137.4 140.4-137.4 68.1 0 118.5 38.7 118.5 109.8 0 53.1-21.3 152.7-90.3 152.7-24.9 0-46.2-18-46.2-43.8 0-37.8 26.4-74.4 26.4-113.4 0-66.2-93.9-54.2-93.9 25.8 0 16.8 2.1 35.4 9.6 50.7-13.8 59.4-42 147.9-42 209.1 0 18.9 2.7 37.5 4.5 56.4 3.4 3.8 1.7 3.4 6.9 1.5 50.4-69 48.6-82.5 71.4-172.8 12.3 23.4 44.1 36 69.3 36 106.2 0 153.9-103.5 153.9-196.8C384 71.3 298.2 6.5 204 6.5z\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.FaTwitter = function FaTwitter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z\"}}]})(props);\n};\n","import React from \"react\";\n\nconst Spinner = ({ className }: { className?: string }) => {\n return (\n <div\n className={`flex justify-center items-center h-full w-full ${className}`}\n >\n <svg\n aria-hidden=\"true\"\n className=\"w-8 h-8 mr-2 text-main-10 animate-spin dark:text-secondary-10 fill-main-100\"\n viewBox=\"0 0 100 101\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n 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\"\n fill=\"currentColor\"\n />\n <path\n 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\"\n fill=\"currentFill\"\n />\n </svg>\n </div>\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<boolean>(false);\n const isInitial = useRef<boolean>(true);\n const canvasRef = useRef<HTMLCanvasElement>(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);\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 window.addEventListener(\n \"mouseup\",\n () => window.removeEventListener(\"mousemove\", onMouseMoveHandler),\n { once: 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(\"touchstart\", (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 window.addEventListener(\"touchend\", () => {\n window.removeEventListener(\"touchmove\", onTouchMoveHandler);\n });\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 <div className={`h-full w-full relative`}>\n <canvas\n ref={canvasRef}\n className={`bg-main-100 h-160 w-full flex items-center justify-center cursor-pointer`}\n />\n {!isBabylonReady ? (\n <Spinner className=\"absolute top-0 left-0 right-0 bottom-0 z-10\" />\n ) : null}\n </div>\n );\n};\n\nexport default Babylon;\n","import React, { useEffect, useState } from \"react\";\n\nimport Border from \"../../assets/common/border.svg\";\n\nimport ContentContainer from \"./contentContainer\";\nimport Babylon from \"../babylonjs/babylon\";\n\nconst Banner = ({\n heightClass = \"min-h-160\",\n title,\n text,\n className,\n borderBottom,\n borderTop,\n babylon,\n}: {\n heightClass?: string;\n title: string;\n text: string;\n className?: string;\n borderBottom?: boolean;\n borderTop?: boolean;\n babylon?: boolean;\n}) => {\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 <div\n className={`w-full flex items-center bg-main-100 relative overflow-hidden px-6 ${heightClass} ${className}`}\n >\n {borderTop ? (\n <Border className=\"absolute top-0 left-0 right-0 w-full\" />\n ) : null}\n <ContentContainer\n className={`h-full flex flex-col lg:flex-row py-12 lg:py-0 items-center text-secondary-100 flex-grow`}\n >\n <div className=\"flex flex-col overflow-hidden items-left h-full justify-center text-secondary-100 h-full w-full lg:w-1/2 bg-main-100\">\n <h2 className={`overflow-hidden mb-8 w-full`}>\n <span\n className={`inline-block font-['Rubik_Glitch'] text-5xl sm:text-6xl w-full text-center lg:text-start transition-all duration-1000 ${textTranslate}`}\n >\n {title.toUpperCase()}\n </span>\n </h2>\n <p className={`overflow-hidden w-full`}>\n <span\n className={`inline-block w-full text-3xl sm:text-4xl font-light text-center lg:text-start transition-all duration-1000 ${textTranslate}`}\n >\n {text.toUpperCase()}\n </span>\n </p>\n </div>\n {babylon ? (\n <div className=\"w-[85%] lg:w-1/2 lg:h-full flex\">\n <Babylon />\n </div>\n ) : null}\n </ContentContainer>\n {borderBottom ? (\n <Border className=\"absolute bottom-0 left-0 right-0 w-full\" />\n ) : null}\n </div>\n );\n};\n\nexport default Banner;\n","import React from \"react\";\n\nimport { FaFacebookF } from \"@react-icons/all-files/fa/FaFacebookF\";\nimport { FaTwitter } from \"@react-icons/all-files/fa/FaTwitter\";\nimport { FaGooglePlusG } from \"@react-icons/all-files/fa/FaGooglePlusG\";\nimport { FaPinterestP } from \"@react-icons/all-files/fa/FaPinterestP\";\nimport { FaLinkedinIn } from \"@react-icons/all-files/fa/FaLinkedinIn\";\n\nconst ShareButtons = ({ url, title }: { url: string; title: string }) => {\n return (\n <>\n <ShareButton\n media=\"Facebook\"\n url={`https://www.facebook.com/sharer/sharer.php?u=${url}&p[title]=${title}`}\n >\n <FaFacebookF size=\"20px\" />\n </ShareButton>\n <ShareButton\n media=\"Twitter\"\n url={`http://twitter.com/share?text=${title}&url=${url}`}\n >\n <FaTwitter size=\"20px\" />\n </ShareButton>\n <ShareButton\n media=\"Google+\"\n url={`https://plus.google.com/share?url=${url}`}\n >\n <FaGooglePlusG size=\"20px\" />\n </ShareButton>\n <ShareButton\n media=\"Pinterest\"\n url={`http://pinterest.com/pin/create/button/?url=${url}&description=${title}`}\n >\n <FaPinterestP size=\"20px\" />\n </ShareButton>\n <ShareButton\n media=\"Linkedin\"\n url={`http://www.linkedin.com/shareArticle?mini=true&url=${url}&title=${title}&source=CodeCave`}\n >\n <FaLinkedinIn size=\"20px\" />\n </ShareButton>\n </>\n );\n};\n\nexport const ShareButton = ({\n url,\n media,\n children,\n}: React.PropsWithChildren<{ url: string; media: string }>) => {\n return (\n <a href={url} target=\"_blank\" title={`Share on ${media}`}>\n <button className=\"w-12 h-12 border border-solid rounded-full border-main-10 flex justify-center items-center m-2 hover:bg-secondary-70\">\n {children}\n </button>\n </a>\n );\n};\n\nexport default ShareButtons;\n","import React from \"react\";\n\nimport Border from \"../../assets/common/border.svg\";\nimport GiftImg from \"../../assets/common/gift.svg\";\nimport ContentContainer from \"../common/contentContainer\";\n\nconst PostFooter = () => {\n return (\n <div className=\"w-full h-96 bg-main-100 flex px-6 relative\">\n <Border className=\"absolute top-0 left-0 right-0 w-full\" />\n <ContentContainer className=\"items-center\">\n <div className=\"w-full basis-1/5 hidden sm:flex justify-start items-center pr-16\">\n <GiftImg />\n </div>\n <div className=\"w-full text-center sm:text-start sm:basis-3/5 flex flex-col justify-center items-center\">\n <h4 className=\"text-secondary-100 text-4xl font-bold pb-5\">\n Congratulations! Now you can show off with your new knowledge!\n </h4>\n <p className=\"text-3xl font-light text-secondary-100\">\n If you want us to uncover some other Well unknown facts, you can\n contact us via the socials or e-mail below. See you!{\" \"}\n </p>\n </div>\n </ContentContainer>\n </div>\n );\n};\n\nexport default PostFooter;\n","import React from \"react\";\n\nimport { HeadFC, PageProps, graphql } from \"gatsby\";\nimport { useLocation } from \"@reach/router\";\n\nimport { IPostQueryResult } from \"../types/post.type\";\n\nimport Clock from \"../assets/common/clock.svg\";\n\nimport { LocalBusinessMetadata } from \"../components/common/metadata\";\n\nimport ContentContainer from \"../components/common/contentContainer\";\nimport Banner from \"../components/common/banner\";\nimport ShareButtons from \"../components/posts/shareButtons\";\nimport PostFooter from \"../components/posts/postFooter\";\n\nconst Post = ({\n data: {\n markdownRemark: {\n frontmatter,\n html,\n wordCount: { words },\n },\n },\n}: PageProps<IPostQueryResult>) => {\n const { href: currentUrl } = useLocation();\n\n const { date, title, keywords } = frontmatter;\n\n const minutes = Math.floor(words / 200);\n const readingTime = minutes ? minutes : 1;\n\n return (\n <>\n <Banner\n heightClass=\"h-136\"\n title=\"MAKE BLOGGING GREAT AGAIN\"\n text=\"Well unknown facts for your tech savvy and entertainment\"\n borderBottom\n />\n <div itemScope itemType=\"https://schema.org/Article\" className=\"px-6\">\n <ContentContainer className=\"flex-col max-w-6xl\">\n <div className=\"w-full flex pt-14 pb-9 items-center\">\n <span\n className={`inline text-2xl sm:text-3xl text-main-100 font-light pr-11`}\n itemProp=\"datePublished\"\n >\n {date}\n </span>\n\n <Clock />\n\n <span className=\"inline text-xl font-light italic pl-4\">\n Reading time: {readingTime}m.\n </span>\n </div>\n <h2\n className=\"text-main-100 text-4xl sm:text-5xl md:text-6xl font-semibold leading-[52px] sm:pb-10 md:pb-16\"\n itemProp=\"headline\"\n >\n {title}\n </h2>\n <div\n className=\"single-post text-main-100 font-medium text-2xl pb-10\"\n dangerouslySetInnerHTML={{ __html: html }}\n itemProp=\"articleBody\"\n />\n <div className=\"w-full flex flex-col md:flex-row justify-between items-center pb-24\">\n {keywords ? (\n <div className=\"basis-full sm:basis-3/5 text-center md:text-start pb-10 md:pb-0\">\n {keywords.map((hashtag) => (\n <div\n key={hashtag}\n className=\"inline-block text-main-10 border-main-10 border-solid border rounded-full p-1 px-4 text-2xl m-2\"\n itemProp=\"keywords\"\n >\n #{hashtag.toLowerCase()}\n </div>\n ))}\n </div>\n ) : null}\n <div className=\"basis-full sm:basis-2/5 flex flex-row justify-end\">\n <ShareButtons url={currentUrl} title={title} />\n </div>\n </div>\n </ContentContainer>\n <LocalBusinessMetadata itemProp=\"copyrightHolder\" />\n </div>\n <PostFooter />\n </>\n );\n};\n\nexport default Post;\n\nexport const Head: HeadFC<IPostQueryResult> = ({\n data: {\n markdownRemark: {\n frontmatter: { title },\n },\n },\n}) => <title>CodeCave blog: {title}</title>;\n\nexport const query = graphql`\n query ($id: String) {\n markdownRemark(id: { eq: $id }) {\n frontmatter {\n date(formatString: \"MMM DD, YYYY\")\n title\n keywords\n }\n html\n wordCount {\n words\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\":\"white\",\"strokeWidth\":\"8\",\"strokeDasharray\":\"8 8\",\"x1\":\"0\",\"x2\":\"100%\",\"y1\":\"4\",\"y2\":\"4\",\"key\":0}),React.createElement(\"line\",{\"width\":\"800\",\"height\":\"8\",\"stroke\":\"black\",\"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","var React = require('react');\n\nfunction Clock (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"g\",{\"clipPath\":\"url(#clip0_829_432)\",\"key\":0},[React.createElement(\"path\",{\"fillRule\":\"evenodd\",\"clipRule\":\"evenodd\",\"d\":\"M9.57938 1.14638C9.38658 1.13214 9.19332 1.12501 9 1.125V0C9.2211 0.000107806 9.44213 0.00836341 9.66262 0.02475L9.57938 1.14638ZM11.8339 1.65263C11.4733 1.51347 11.1029 1.40104 10.7258 1.31625L10.9721 0.21825C11.403 0.315 11.8271 0.44325 12.2389 0.603L11.8339 1.65263ZM13.3751 2.45138C13.2143 2.34411 13.0495 2.24279 12.8812 2.14763L13.4359 1.16888C13.8205 1.38683 14.1886 1.63274 14.5372 1.90463L13.8454 2.79225C13.6929 2.67326 13.536 2.55993 13.3751 2.4525V2.45138ZM15.4384 4.46513C15.2158 4.14897 14.9703 3.84966 14.7037 3.56963L15.5182 2.79338C15.822 3.114 16.1032 3.45713 16.3586 3.81713L15.4384 4.46513ZM16.2754 5.98613C16.2015 5.80777 16.1212 5.63215 16.0346 5.45963L17.0392 4.95338C17.2379 5.34835 17.4071 5.75746 17.5455 6.17738L16.4767 6.5295C16.4163 6.34597 16.3491 6.16473 16.2754 5.98613ZM16.8716 8.8065C16.8625 8.41988 16.8249 8.03446 16.7591 7.65338L17.8672 7.46213C17.9426 7.89638 17.9865 8.33738 17.9977 8.77838L16.8727 8.8065H16.8716ZM16.7242 10.5368C16.7614 10.3455 16.7917 10.1554 16.8154 9.963L17.9325 10.1014C17.8785 10.5403 17.792 10.9746 17.6737 11.4008L16.5892 11.1004C16.641 10.9148 16.686 10.7269 16.7242 10.5368ZM15.6532 13.2131C15.8602 12.8869 16.0425 12.5449 16.2 12.1916L17.2282 12.6473C17.0482 13.0523 16.8401 13.4415 16.6039 13.815L15.6532 13.2131ZM14.5687 14.5688C14.706 14.4315 14.8376 14.2898 14.9625 14.1435L15.8152 14.8781C15.6708 15.0456 15.5204 15.2077 15.3641 15.3641L14.5687 14.5688Z\",\"fill\":\"black\",\"key\":0}),React.createElement(\"path\",{\"fillRule\":\"evenodd\",\"clipRule\":\"evenodd\",\"d\":\"M8.99961 1.125C7.7046 1.12509 6.4296 1.44455 5.28753 2.05508C4.14547 2.66561 3.1716 3.54836 2.45217 4.62516C1.73275 5.70195 1.28998 6.93954 1.16308 8.22832C1.03618 9.5171 1.22907 10.8173 1.72466 12.0137C2.22025 13.2101 3.00325 14.2659 4.0043 15.0874C5.00535 15.909 6.19356 16.471 7.46368 16.7237C8.73381 16.9763 10.0466 16.9119 11.2859 16.536C12.5252 16.1601 13.6526 15.4844 14.5684 14.5688L15.3637 15.3641C14.3172 16.4113 13.0285 17.1841 11.6119 17.6141C10.1953 18.0442 8.69447 18.1182 7.24243 17.8295C5.79039 17.5409 4.43195 16.8986 3.28748 15.9595C2.143 15.0204 1.24784 13.8135 0.681284 12.4458C0.114733 11.078 -0.105707 9.59162 0.0394939 8.1183C0.184695 6.64499 0.691055 5.23024 1.51371 3.9994C2.33636 2.76855 3.44991 1.75962 4.75569 1.062C6.06147 0.364382 7.51916 -0.000392324 8.99961 3.16641e-07V1.125Z\",\"fill\":\"black\",\"key\":1}),React.createElement(\"path\",{\"fillRule\":\"evenodd\",\"clipRule\":\"evenodd\",\"d\":\"M8.4375 3.375C8.58668 3.375 8.72976 3.43426 8.83525 3.53975C8.94074 3.64524 9 3.78832 9 3.9375V9.79875L12.654 11.8867C12.7798 11.9626 12.8709 12.0847 12.9078 12.2268C12.9448 12.369 12.9247 12.5199 12.8518 12.6475C12.779 12.775 12.6591 12.869 12.5179 12.9093C12.3766 12.9496 12.2252 12.9331 12.096 12.8632L8.1585 10.6132C8.07241 10.5641 8.00084 10.493 7.95106 10.4073C7.90127 10.3215 7.87503 10.2241 7.875 10.125V3.9375C7.875 3.78832 7.93426 3.64524 8.03975 3.53975C8.14524 3.43426 8.28832 3.375 8.4375 3.375Z\",\"fill\":\"black\",\"key\":2})]),React.createElement(\"defs\",{\"key\":1},React.createElement(\"clipPath\",{\"id\":\"clip0_829_432\"},React.createElement(\"rect\",{\"width\":\"18\",\"height\":\"18\",\"fill\":\"white\"})))]);\n}\n\nClock.defaultProps = {\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"};\n\nmodule.exports = Clock;\n\nClock.default = Clock;\n","var React = require('react');\n\nfunction Gift (props) {\n return React.createElement(\"svg\",props,React.createElement(\"path\",{\"fillRule\":\"evenodd\",\"clipRule\":\"evenodd\",\"d\":\"M17.9629 15.3376C17.9629 11.1936 19.6091 7.21936 22.5393 4.2891C25.4696 1.35885 29.4439 -0.287354 33.5879 -0.287354C37.7319 -0.287354 41.7062 1.35885 44.6364 4.2891C47.5667 7.21936 49.2129 11.1936 49.2129 15.3376C49.2129 11.1936 50.8591 7.21936 53.7893 4.2891C56.7196 1.35885 60.6939 -0.287354 64.8379 -0.287354C68.9819 -0.287354 72.9562 1.35885 75.8864 4.2891C78.8167 7.21936 80.4629 11.1936 80.4629 15.3376V15.3751C80.4629 15.8126 80.4629 17.0626 80.2254 18.4626H92.9629C94.6205 18.4626 96.2102 19.1211 97.3823 20.2932C98.5544 21.4653 99.2129 23.055 99.2129 24.7126V37.2126C99.2129 38.8703 98.5544 40.46 97.3823 41.6321C96.2102 42.8042 94.6205 43.4626 92.9629 43.4626V90.3376C92.9629 92.8241 91.9752 95.2086 90.217 96.9668C88.4589 98.7249 86.0743 99.7126 83.5879 99.7126H14.8379C12.3515 99.7126 9.96692 98.7249 8.20877 96.9668C6.45061 95.2086 5.46289 92.8241 5.46289 90.3376V43.4626C3.80529 43.4626 2.21558 42.8042 1.04347 41.6321C-0.128629 40.46 -0.787109 38.8703 -0.787109 37.2126V24.7126C-0.787109 23.055 -0.128629 21.4653 1.04347 20.2932C2.21558 19.1211 3.80529 18.4626 5.46289 18.4626H18.2004C18.0353 17.4419 17.9559 16.4091 17.9629 15.3751V15.3376ZM24.6379 18.4626H42.9629V15.3376C42.9629 14.1065 42.7204 12.8874 42.2493 11.75C41.7781 10.6126 41.0876 9.57907 40.217 8.70852C39.3465 7.83797 38.313 7.14741 37.1755 6.67628C36.0381 6.20514 34.819 5.96265 33.5879 5.96265C32.3567 5.96265 31.1377 6.20514 30.0002 6.67628C28.8628 7.14741 27.8293 7.83797 26.9588 8.70852C26.0882 9.57907 25.3977 10.6126 24.9265 11.75C24.4554 12.8874 24.2129 14.1065 24.2129 15.3376C24.2129 15.8689 24.2254 17.0501 24.4941 18.0251C24.5317 18.1742 24.5797 18.3204 24.6379 18.4626ZM55.4629 18.4626H73.7879C73.8454 18.3201 73.8934 18.174 73.9316 18.0251C74.2004 17.0501 74.2129 15.8689 74.2129 15.3376C74.2129 12.8512 73.2252 10.4667 71.467 8.70852C69.7089 6.95037 67.3243 5.96265 64.8379 5.96265C62.3515 5.96265 59.9669 6.95037 58.2088 8.70852C56.4506 10.4667 55.4629 12.8512 55.4629 15.3376V18.4626ZM5.46289 24.7126V37.2126H42.9629V24.7126H5.46289ZM55.4629 24.7126V37.2126H92.9629V24.7126H55.4629ZM86.7129 43.4626H55.4629V93.4626H83.5879C84.4167 93.4626 85.2115 93.1334 85.7976 92.5474C86.3837 91.9613 86.7129 91.1665 86.7129 90.3376V43.4626ZM42.9629 93.4626V43.4626H11.7129V90.3376C11.7129 91.1665 12.0421 91.9613 12.6282 92.5474C13.2142 93.1334 14.0091 93.4626 14.8379 93.4626H42.9629Z\",\"fill\":\"white\"}));\n}\n\nGift.defaultProps = {\"width\":\"100\",\"height\":\"100\",\"viewBox\":\"0 0 100 100\",\"fill\":\"none\"};\n\nmodule.exports = Gift;\n\nGift.default = Gift;\n"],"names":["GenIcon","module","exports","props","_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","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","text","borderBottom","borderTop","babylon","textTranslate","setTextTranslate","Border","ContentContainer","toUpperCase","ShareButton","_ref2","url","media","children","href","target","FaFacebookF","size","FaTwitter","FaGooglePlusG","FaPinterestP","FaLinkedinIn","PostFooter","GiftImg","markdownRemark","frontmatter","html","wordCount","words","currentUrl","useLocation","date","keywords","minutes","Math","floor","readingTime","Banner","itemScope","itemType","itemProp","Clock","dangerouslySetInnerHTML","__html","map","hashtag","key","toLowerCase","ShareButtons","LocalBusinessMetadata","Head","createElement","defaultProps","default","Gift"],"sourceRoot":""} \ No newline at end of file diff --git a/component---src-pages-templates-post-tsx-f2b5783ab45f7133a802.js b/component---src-pages-templates-post-tsx-f2b5783ab45f7133a802.js deleted file mode 100644 index f73a9149..00000000 --- a/component---src-pages-templates-post-tsx-f2b5783ab45f7133a802.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunkcode_cave=self.webpackChunkcode_cave||[]).push([[354],{2916:function(e,t,l){var n=l(9720).w_;e.exports.t=function(e){return n({tag:"svg",attr:{viewBox:"0 0 320 512"},child:[{tag:"path",attr:{d:"M279.14 288l14.22-92.66h-88.91v-60.13c0-25.35 12.42-50.06 52.24-50.06h40.42V6.26S260.43 0 225.36 0c-73.22 0-121.08 44.38-121.08 124.72v70.62H22.89V288h81.39v224h100.17V288z"}}]})(e)}},6433:function(e,t,l){var n=l(9720).w_;e.exports.u=function(e){return n({tag:"svg",attr:{viewBox:"0 0 640 512"},child:[{tag:"path",attr:{d:"M386.061 228.496c1.834 9.692 3.143 19.384 3.143 31.956C389.204 370.205 315.599 448 204.8 448c-106.084 0-192-85.915-192-192s85.916-192 192-192c51.864 0 95.083 18.859 128.611 50.292l-52.126 50.03c-14.145-13.621-39.028-29.599-76.485-29.599-65.484 0-118.92 54.221-118.92 121.277 0 67.056 53.436 121.277 118.92 121.277 75.961 0 104.513-54.745 108.965-82.773H204.8v-66.009h181.261zm185.406 6.437V179.2h-56.001v55.733h-55.733v56.001h55.733v55.733h56.001v-55.733H627.2v-56.001h-55.733z"}}]})(e)}},6625:function(e,t,l){var n=l(9720).w_;e.exports.c=function(e){return n({tag:"svg",attr:{viewBox:"0 0 384 512"},child:[{tag:"path",attr:{d:"M204 6.5C101.4 6.5 0 74.9 0 185.6 0 256 39.6 296 63.6 296c9.9 0 15.6-27.6 15.6-35.4 0-9.3-23.7-29.1-23.7-67.8 0-80.4 61.2-137.4 140.4-137.4 68.1 0 118.5 38.7 118.5 109.8 0 53.1-21.3 152.7-90.3 152.7-24.9 0-46.2-18-46.2-43.8 0-37.8 26.4-74.4 26.4-113.4 0-66.2-93.9-54.2-93.9 25.8 0 16.8 2.1 35.4 9.6 50.7-13.8 59.4-42 147.9-42 209.1 0 18.9 2.7 37.5 4.5 56.4 3.4 3.8 1.7 3.4 6.9 1.5 50.4-69 48.6-82.5 71.4-172.8 12.3 23.4 44.1 36 69.3 36 106.2 0 153.9-103.5 153.9-196.8C384 71.3 298.2 6.5 204 6.5z"}}]})(e)}},1362:function(e,t,l){var n=l(9720).w_;e.exports.f=function(e){return n({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"}}]})(e)}},1929:function(e,t,l){"use strict";l.d(t,{Z:function(){return c}});var n=l(7294),r=l(4471),a=l.n(r),s=l(1164);var i=e=>{let{className:t}=e;return n.createElement("div",{className:"flex justify-center items-center h-full w-full "+t},n.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"},n.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"}),n.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 o=()=>{const{0:e,1:t}=(0,n.useState)(!1),r=(0,n.useRef)(!0),a=(0,n.useRef)(null);return(0,n.useEffect)((()=>{if(!r.current||!a.current||"undefined"==typeof window)return;r.current=!1;const e=new Worker(new URL(l.p+l.u(475),l.b),{type:void 0});e.onmessage=e=>{let{data:l}=e;"ready"===l&&t(!0)};const n=a.current;n.width=n.clientWidth,n.height=n.clientHeight;const s=n.transferControlToOffscreen();e.postMessage({canvas:s},[s]);const i=()=>{e.postMessage({width:n.clientWidth,height:n.clientHeight})};window.addEventListener("resize",i);const o=t=>{t.preventDefault(),e.postMessage({wheel:t.deltaY})};n.addEventListener("wheel",o);const c=t=>{e.postMessage({x:t.movementX,y:t.movementY})};n.addEventListener("mousedown",(e=>{e.preventDefault(),window.addEventListener("mousemove",c),window.addEventListener("mouseup",(()=>window.removeEventListener("mousemove",c)),{once:!0})}));let m;return n.addEventListener("touchstart",(t=>{if(1!==t.touches.length)return;const l=t.touches[0];t.preventDefault();const n={x:l.screenX,y:l.screenY};m=t=>{const{newX:l,newY:r}=((t,l)=>{const n=t.touches[0];return e.postMessage({x:n.screenX-l.x,y:n.screenY-l.y}),{newX:n.screenX,newY:n.screenY}})(t,n);n.x=l,n.y=r},window.addEventListener("touchmove",m),window.addEventListener("touchend",(()=>{window.removeEventListener("touchmove",m)}))})),()=>{window&&(window.removeEventListener("resize",i),window.removeEventListener("mousemove",c),window.removeEventListener("touchmove",m)),n&&n.removeEventListener("wheel",o),e.postMessage({dispose:!0})}}),[]),n.createElement("div",{className:"h-full w-full relative"},n.createElement("canvas",{ref:a,className:"bg-main-100 h-160 w-full flex items-center justify-center cursor-pointer"}),e?null:n.createElement(i,{className:"absolute top-0 left-0 right-0 bottom-0 z-10"}))};var c=e=>{let{heightClass:t="min-h-160",title:l,text:r,className:i,borderBottom:c,borderTop:m,babylon:u}=e;const{0:d,1:f}=(0,n.useState)("translate-y-full");return(0,n.useEffect)((()=>{f("translate-y-0")}),[]),n.createElement("div",{className:"w-full flex items-center bg-main-100 relative overflow-hidden px-6 "+t+" "+i},m?n.createElement(a(),{className:"absolute top-0 left-0 right-0 w-full"}):null,n.createElement(s.Z,{className:"h-full flex flex-col lg:flex-row py-12 lg:py-0 items-center text-secondary-100 flex-grow"},n.createElement("div",{className:"flex flex-col overflow-hidden items-left h-full justify-center text-secondary-100 h-full w-full lg:w-1/2 bg-main-100"},n.createElement("h2",{className:"overflow-hidden mb-8 w-full"},n.createElement("span",{className:"inline-block font-['Rubik_Glitch'] text-5xl sm:text-6xl w-full text-center lg:text-start transition-all duration-1000 "+d},l.toUpperCase())),n.createElement("p",{className:"overflow-hidden w-full"},n.createElement("span",{className:"inline-block w-full text-3xl sm:text-4xl font-light text-center lg:text-start transition-all duration-1000 "+d},r.toUpperCase()))),u?n.createElement("div",{className:"w-[85%] lg:w-1/2 lg:h-full flex"},n.createElement(o,null)):null),c?n.createElement(a(),{className:"absolute bottom-0 left-0 right-0 w-full"}):null)}},697:function(e,t,l){"use strict";l.r(t),l.d(t,{Head:function(){return y},default:function(){return b}});var n=l(7294),r=l(7896),a=l(4697),s=l.n(a),i=l(9165),o=l(1164),c=l(1929),m=l(2916),u=l(1362),d=l(6433),f=l(6625),h=l(7951);const C=e=>{let{url:t,media:l,children:r}=e;return n.createElement("a",{href:t,target:"_blank",title:"Share on "+l},n.createElement("button",{className:"w-12 h-12 border border-solid rounded-full border-main-10 flex justify-center items-center m-2 hover:bg-secondary-70"},r))};var w=e=>{let{url:t,title:l}=e;return n.createElement(n.Fragment,null,n.createElement(C,{media:"Facebook",url:"https://www.facebook.com/sharer/sharer.php?u="+t+"&p[title]="+l},n.createElement(m.t,{size:"20px"})),n.createElement(C,{media:"Twitter",url:"http://twitter.com/share?text="+l+"&url="+t},n.createElement(u.f,{size:"20px"})),n.createElement(C,{media:"Google+",url:"https://plus.google.com/share?url="+t},n.createElement(d.u,{size:"20px"})),n.createElement(C,{media:"Pinterest",url:"http://pinterest.com/pin/create/button/?url="+t+"&description="+l},n.createElement(f.c,{size:"20px"})),n.createElement(C,{media:"Linkedin",url:"http://www.linkedin.com/shareArticle?mini=true&url="+t+"&title="+l+"&source=CodeCave"},n.createElement(h.B,{size:"20px"})))},v=l(4471),p=l.n(v),x=l(35),E=l.n(x);var g=()=>n.createElement("div",{className:"w-full h-96 bg-main-100 flex px-6 relative"},n.createElement(p(),{className:"absolute top-0 left-0 right-0 w-full"}),n.createElement(o.Z,{className:"items-center"},n.createElement("div",{className:"w-full basis-1/5 hidden sm:flex justify-start items-center pr-16"},n.createElement(E(),null)),n.createElement("div",{className:"w-full text-center sm:text-start sm:basis-3/5 flex flex-col justify-center items-center"},n.createElement("h4",{className:"text-secondary-100 text-4xl font-bold pb-5"},"Congratulations! Now you can show off with your new knowledge!"),n.createElement("p",{className:"text-3xl font-light text-secondary-100"},"If you want us to uncover some other Well unknown facts, you can contact us via the socials or e-mail below. See you!"," "))));var b=e=>{let{data:{markdownRemark:{frontmatter:t,html:l,wordCount:{words:a}}}}=e;const{href:m}=(0,r.useLocation)(),{date:u,title:d,keywords:f}=t,h=Math.floor(a/200),C=h||1;return n.createElement(n.Fragment,null,n.createElement(c.Z,{heightClass:"h-136",title:"MAKE BLOGGING GREAT AGAIN",text:"Well unknown facts for your tech savvy and entertainment",borderBottom:!0}),n.createElement("div",{itemScope:!0,itemType:"https://schema.org/Article",className:"px-6"},n.createElement(o.Z,{className:"flex-col max-w-6xl"},n.createElement("div",{className:"w-full flex pt-14 pb-9 items-center"},n.createElement("span",{className:"inline text-2xl sm:text-3xl text-main-100 font-light pr-11",itemProp:"datePublished"},u),n.createElement(s(),null),n.createElement("span",{className:"inline text-xl font-light italic pl-4"},"Reading time: ",C,"m.")),n.createElement("h2",{className:"text-main-100 text-4xl sm:text-5xl md:text-6xl font-semibold leading-[52px] sm:pb-10 md:pb-16",itemProp:"headline"},d),n.createElement("div",{className:"single-post text-main-100 font-medium text-2xl pb-10",dangerouslySetInnerHTML:{__html:l},itemProp:"articleBody"}),n.createElement("div",{className:"w-full flex flex-col md:flex-row justify-between items-center pb-24"},f?n.createElement("div",{className:"basis-full sm:basis-3/5 text-center md:text-start pb-10 md:pb-0"},f.map((e=>n.createElement("div",{key:e,className:"inline-block text-main-10 border-main-10 border-solid border rounded-full p-1 px-4 text-2xl m-2",itemProp:"keywords"},"#",e.toLowerCase())))):null,n.createElement("div",{className:"basis-full sm:basis-2/5 flex flex-row justify-end"},n.createElement(w,{url:m,title:d})))),n.createElement(i.L,{itemProp:"copyrightHolder"})),n.createElement(g,null))};const y=e=>{let{data:{markdownRemark:{frontmatter:{title:t}}}}=e;return n.createElement("title",null,"CodeCave blog: ",t)}},4471:function(e,t,l){var n=l(7294);function r(e){return n.createElement("svg",e,[n.createElement("line",{width:"800",height:"8",stroke:"white",strokeWidth:"8",strokeDasharray:"8 8",x1:"0",x2:"100%",y1:"4",y2:"4",key:0}),n.createElement("line",{width:"800",height:"8",stroke:"black",strokeWidth:"8",strokeDasharray:"8 8",x1:"8",x2:"100%",y1:"4",y2:"4",key:1})])}r.defaultProps={height:"8"},e.exports=r,r.default=r},4697:function(e,t,l){var n=l(7294);function r(e){return n.createElement("svg",e,[n.createElement("g",{clipPath:"url(#clip0_829_432)",key:0},[n.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M9.57938 1.14638C9.38658 1.13214 9.19332 1.12501 9 1.125V0C9.2211 0.000107806 9.44213 0.00836341 9.66262 0.02475L9.57938 1.14638ZM11.8339 1.65263C11.4733 1.51347 11.1029 1.40104 10.7258 1.31625L10.9721 0.21825C11.403 0.315 11.8271 0.44325 12.2389 0.603L11.8339 1.65263ZM13.3751 2.45138C13.2143 2.34411 13.0495 2.24279 12.8812 2.14763L13.4359 1.16888C13.8205 1.38683 14.1886 1.63274 14.5372 1.90463L13.8454 2.79225C13.6929 2.67326 13.536 2.55993 13.3751 2.4525V2.45138ZM15.4384 4.46513C15.2158 4.14897 14.9703 3.84966 14.7037 3.56963L15.5182 2.79338C15.822 3.114 16.1032 3.45713 16.3586 3.81713L15.4384 4.46513ZM16.2754 5.98613C16.2015 5.80777 16.1212 5.63215 16.0346 5.45963L17.0392 4.95338C17.2379 5.34835 17.4071 5.75746 17.5455 6.17738L16.4767 6.5295C16.4163 6.34597 16.3491 6.16473 16.2754 5.98613ZM16.8716 8.8065C16.8625 8.41988 16.8249 8.03446 16.7591 7.65338L17.8672 7.46213C17.9426 7.89638 17.9865 8.33738 17.9977 8.77838L16.8727 8.8065H16.8716ZM16.7242 10.5368C16.7614 10.3455 16.7917 10.1554 16.8154 9.963L17.9325 10.1014C17.8785 10.5403 17.792 10.9746 17.6737 11.4008L16.5892 11.1004C16.641 10.9148 16.686 10.7269 16.7242 10.5368ZM15.6532 13.2131C15.8602 12.8869 16.0425 12.5449 16.2 12.1916L17.2282 12.6473C17.0482 13.0523 16.8401 13.4415 16.6039 13.815L15.6532 13.2131ZM14.5687 14.5688C14.706 14.4315 14.8376 14.2898 14.9625 14.1435L15.8152 14.8781C15.6708 15.0456 15.5204 15.2077 15.3641 15.3641L14.5687 14.5688Z",fill:"black",key:0}),n.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.99961 1.125C7.7046 1.12509 6.4296 1.44455 5.28753 2.05508C4.14547 2.66561 3.1716 3.54836 2.45217 4.62516C1.73275 5.70195 1.28998 6.93954 1.16308 8.22832C1.03618 9.5171 1.22907 10.8173 1.72466 12.0137C2.22025 13.2101 3.00325 14.2659 4.0043 15.0874C5.00535 15.909 6.19356 16.471 7.46368 16.7237C8.73381 16.9763 10.0466 16.9119 11.2859 16.536C12.5252 16.1601 13.6526 15.4844 14.5684 14.5688L15.3637 15.3641C14.3172 16.4113 13.0285 17.1841 11.6119 17.6141C10.1953 18.0442 8.69447 18.1182 7.24243 17.8295C5.79039 17.5409 4.43195 16.8986 3.28748 15.9595C2.143 15.0204 1.24784 13.8135 0.681284 12.4458C0.114733 11.078 -0.105707 9.59162 0.0394939 8.1183C0.184695 6.64499 0.691055 5.23024 1.51371 3.9994C2.33636 2.76855 3.44991 1.75962 4.75569 1.062C6.06147 0.364382 7.51916 -0.000392324 8.99961 3.16641e-07V1.125Z",fill:"black",key:1}),n.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.4375 3.375C8.58668 3.375 8.72976 3.43426 8.83525 3.53975C8.94074 3.64524 9 3.78832 9 3.9375V9.79875L12.654 11.8867C12.7798 11.9626 12.8709 12.0847 12.9078 12.2268C12.9448 12.369 12.9247 12.5199 12.8518 12.6475C12.779 12.775 12.6591 12.869 12.5179 12.9093C12.3766 12.9496 12.2252 12.9331 12.096 12.8632L8.1585 10.6132C8.07241 10.5641 8.00084 10.493 7.95106 10.4073C7.90127 10.3215 7.87503 10.2241 7.875 10.125V3.9375C7.875 3.78832 7.93426 3.64524 8.03975 3.53975C8.14524 3.43426 8.28832 3.375 8.4375 3.375Z",fill:"black",key:2})]),n.createElement("defs",{key:1},n.createElement("clipPath",{id:"clip0_829_432"},n.createElement("rect",{width:"18",height:"18",fill:"white"})))])}r.defaultProps={width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"},e.exports=r,r.default=r},35:function(e,t,l){var n=l(7294);function r(e){return n.createElement("svg",e,n.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M17.9629 15.3376C17.9629 11.1936 19.6091 7.21936 22.5393 4.2891C25.4696 1.35885 29.4439 -0.287354 33.5879 -0.287354C37.7319 -0.287354 41.7062 1.35885 44.6364 4.2891C47.5667 7.21936 49.2129 11.1936 49.2129 15.3376C49.2129 11.1936 50.8591 7.21936 53.7893 4.2891C56.7196 1.35885 60.6939 -0.287354 64.8379 -0.287354C68.9819 -0.287354 72.9562 1.35885 75.8864 4.2891C78.8167 7.21936 80.4629 11.1936 80.4629 15.3376V15.3751C80.4629 15.8126 80.4629 17.0626 80.2254 18.4626H92.9629C94.6205 18.4626 96.2102 19.1211 97.3823 20.2932C98.5544 21.4653 99.2129 23.055 99.2129 24.7126V37.2126C99.2129 38.8703 98.5544 40.46 97.3823 41.6321C96.2102 42.8042 94.6205 43.4626 92.9629 43.4626V90.3376C92.9629 92.8241 91.9752 95.2086 90.217 96.9668C88.4589 98.7249 86.0743 99.7126 83.5879 99.7126H14.8379C12.3515 99.7126 9.96692 98.7249 8.20877 96.9668C6.45061 95.2086 5.46289 92.8241 5.46289 90.3376V43.4626C3.80529 43.4626 2.21558 42.8042 1.04347 41.6321C-0.128629 40.46 -0.787109 38.8703 -0.787109 37.2126V24.7126C-0.787109 23.055 -0.128629 21.4653 1.04347 20.2932C2.21558 19.1211 3.80529 18.4626 5.46289 18.4626H18.2004C18.0353 17.4419 17.9559 16.4091 17.9629 15.3751V15.3376ZM24.6379 18.4626H42.9629V15.3376C42.9629 14.1065 42.7204 12.8874 42.2493 11.75C41.7781 10.6126 41.0876 9.57907 40.217 8.70852C39.3465 7.83797 38.313 7.14741 37.1755 6.67628C36.0381 6.20514 34.819 5.96265 33.5879 5.96265C32.3567 5.96265 31.1377 6.20514 30.0002 6.67628C28.8628 7.14741 27.8293 7.83797 26.9588 8.70852C26.0882 9.57907 25.3977 10.6126 24.9265 11.75C24.4554 12.8874 24.2129 14.1065 24.2129 15.3376C24.2129 15.8689 24.2254 17.0501 24.4941 18.0251C24.5317 18.1742 24.5797 18.3204 24.6379 18.4626ZM55.4629 18.4626H73.7879C73.8454 18.3201 73.8934 18.174 73.9316 18.0251C74.2004 17.0501 74.2129 15.8689 74.2129 15.3376C74.2129 12.8512 73.2252 10.4667 71.467 8.70852C69.7089 6.95037 67.3243 5.96265 64.8379 5.96265C62.3515 5.96265 59.9669 6.95037 58.2088 8.70852C56.4506 10.4667 55.4629 12.8512 55.4629 15.3376V18.4626ZM5.46289 24.7126V37.2126H42.9629V24.7126H5.46289ZM55.4629 24.7126V37.2126H92.9629V24.7126H55.4629ZM86.7129 43.4626H55.4629V93.4626H83.5879C84.4167 93.4626 85.2115 93.1334 85.7976 92.5474C86.3837 91.9613 86.7129 91.1665 86.7129 90.3376V43.4626ZM42.9629 93.4626V43.4626H11.7129V90.3376C11.7129 91.1665 12.0421 91.9613 12.6282 92.5474C13.2142 93.1334 14.0091 93.4626 14.8379 93.4626H42.9629Z",fill:"white"}))}r.defaultProps={width:"100",height:"100",viewBox:"0 0 100 100",fill:"none"},e.exports=r,r.default=r}}]); -//# sourceMappingURL=component---src-pages-templates-post-tsx-f2b5783ab45f7133a802.js.map \ No newline at end of file diff --git a/component---src-pages-templates-post-tsx-f2b5783ab45f7133a802.js.map b/component---src-pages-templates-post-tsx-f2b5783ab45f7133a802.js.map deleted file mode 100644 index 3f8fb4e4..00000000 --- a/component---src-pages-templates-post-tsx-f2b5783ab45f7133a802.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"component---src-pages-templates-post-tsx-f2b5783ab45f7133a802.js","mappings":"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","sources":["webpack://code-cave/./node_modules/@react-icons/all-files/fa/FaFacebookF.js","webpack://code-cave/./node_modules/@react-icons/all-files/fa/FaGooglePlusG.js","webpack://code-cave/./node_modules/@react-icons/all-files/fa/FaPinterestP.js","webpack://code-cave/./node_modules/@react-icons/all-files/fa/FaTwitter.js","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/./src/components/posts/shareButtons.tsx","webpack://code-cave/./src/components/posts/postFooter.tsx","webpack://code-cave/./src/pagesTemplates/post.tsx","webpack://code-cave/./src/assets/common/border.svg","webpack://code-cave/./src/assets/common/clock.svg","webpack://code-cave/./src/assets/common/gift.svg"],"sourcesContent":["// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.FaFacebookF = function FaFacebookF (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M279.14 288l14.22-92.66h-88.91v-60.13c0-25.35 12.42-50.06 52.24-50.06h40.42V6.26S260.43 0 225.36 0c-73.22 0-121.08 44.38-121.08 124.72v70.62H22.89V288h81.39v224h100.17V288z\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.FaGooglePlusG = function FaGooglePlusG (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M386.061 228.496c1.834 9.692 3.143 19.384 3.143 31.956C389.204 370.205 315.599 448 204.8 448c-106.084 0-192-85.915-192-192s85.916-192 192-192c51.864 0 95.083 18.859 128.611 50.292l-52.126 50.03c-14.145-13.621-39.028-29.599-76.485-29.599-65.484 0-118.92 54.221-118.92 121.277 0 67.056 53.436 121.277 118.92 121.277 75.961 0 104.513-54.745 108.965-82.773H204.8v-66.009h181.261zm185.406 6.437V179.2h-56.001v55.733h-55.733v56.001h55.733v55.733h56.001v-55.733H627.2v-56.001h-55.733z\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.FaPinterestP = function FaPinterestP (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M204 6.5C101.4 6.5 0 74.9 0 185.6 0 256 39.6 296 63.6 296c9.9 0 15.6-27.6 15.6-35.4 0-9.3-23.7-29.1-23.7-67.8 0-80.4 61.2-137.4 140.4-137.4 68.1 0 118.5 38.7 118.5 109.8 0 53.1-21.3 152.7-90.3 152.7-24.9 0-46.2-18-46.2-43.8 0-37.8 26.4-74.4 26.4-113.4 0-66.2-93.9-54.2-93.9 25.8 0 16.8 2.1 35.4 9.6 50.7-13.8 59.4-42 147.9-42 209.1 0 18.9 2.7 37.5 4.5 56.4 3.4 3.8 1.7 3.4 6.9 1.5 50.4-69 48.6-82.5 71.4-172.8 12.3 23.4 44.1 36 69.3 36 106.2 0 153.9-103.5 153.9-196.8C384 71.3 298.2 6.5 204 6.5z\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.FaTwitter = function FaTwitter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z\"}}]})(props);\n};\n","import React from \"react\";\n\nconst Spinner = ({ className }: { className?: string }) => {\n return (\n <div\n className={`flex justify-center items-center h-full w-full ${className}`}\n >\n <svg\n aria-hidden=\"true\"\n className=\"w-8 h-8 mr-2 text-main-10 animate-spin dark:text-secondary-10 fill-main-100\"\n viewBox=\"0 0 100 101\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n 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\"\n fill=\"currentColor\"\n />\n <path\n 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\"\n fill=\"currentFill\"\n />\n </svg>\n </div>\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<boolean>(false);\n const isInitial = useRef<boolean>(true);\n const canvasRef = useRef<HTMLCanvasElement>(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);\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 window.addEventListener(\n \"mouseup\",\n () => window.removeEventListener(\"mousemove\", onMouseMoveHandler),\n { once: 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(\"touchstart\", (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 window.addEventListener(\"touchend\", () => {\n window.removeEventListener(\"touchmove\", onTouchMoveHandler);\n });\n });\n\n // UNMOUNT handler\n return () => {\n if (window) {\n window.removeEventListener(\"resize\", onResizeHandler);\n window.removeEventListener(\"mousemove\", onMouseMoveHandler);\n window.removeEventListener(\"touchmove\", onTouchMoveHandler);\n }\n if (canvas) {\n canvas.removeEventListener(\"wheel\", onWheelHandler);\n }\n babylonWorker.postMessage({ dispose: true });\n };\n }, []);\n\n return (\n <div className={`h-full w-full relative`}>\n <canvas\n ref={canvasRef}\n className={`bg-main-100 h-160 w-full flex items-center justify-center cursor-pointer`}\n />\n {!isBabylonReady ? (\n <Spinner className=\"absolute top-0 left-0 right-0 bottom-0 z-10\" />\n ) : null}\n </div>\n );\n};\n\nexport default Babylon;\n","import React, { useEffect, useState } from \"react\";\n\nimport Border from \"../../assets/common/border.svg\";\n\nimport ContentContainer from \"./contentContainer\";\nimport Babylon from \"../babylonjs/babylon\";\n\nconst Banner = ({\n heightClass = \"min-h-160\",\n title,\n text,\n className,\n borderBottom,\n borderTop,\n babylon,\n}: {\n heightClass?: string;\n title: string;\n text: string;\n className?: string;\n borderBottom?: boolean;\n borderTop?: boolean;\n babylon?: boolean;\n}) => {\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 <div\n className={`w-full flex items-center bg-main-100 relative overflow-hidden px-6 ${heightClass} ${className}`}\n >\n {borderTop ? (\n <Border className=\"absolute top-0 left-0 right-0 w-full\" />\n ) : null}\n <ContentContainer\n className={`h-full flex flex-col lg:flex-row py-12 lg:py-0 items-center text-secondary-100 flex-grow`}\n >\n <div className=\"flex flex-col overflow-hidden items-left h-full justify-center text-secondary-100 h-full w-full lg:w-1/2 bg-main-100\">\n <h2 className={`overflow-hidden mb-8 w-full`}>\n <span\n className={`inline-block font-['Rubik_Glitch'] text-5xl sm:text-6xl w-full text-center lg:text-start transition-all duration-1000 ${textTranslate}`}\n >\n {title.toUpperCase()}\n </span>\n </h2>\n <p className={`overflow-hidden w-full`}>\n <span\n className={`inline-block w-full text-3xl sm:text-4xl font-light text-center lg:text-start transition-all duration-1000 ${textTranslate}`}\n >\n {text.toUpperCase()}\n </span>\n </p>\n </div>\n {babylon ? (\n <div className=\"w-[85%] lg:w-1/2 lg:h-full flex\">\n <Babylon />\n </div>\n ) : null}\n </ContentContainer>\n {borderBottom ? (\n <Border className=\"absolute bottom-0 left-0 right-0 w-full\" />\n ) : null}\n </div>\n );\n};\n\nexport default Banner;\n","import React from \"react\";\n\nimport { FaFacebookF } from \"@react-icons/all-files/fa/FaFacebookF\";\nimport { FaTwitter } from \"@react-icons/all-files/fa/FaTwitter\";\nimport { FaGooglePlusG } from \"@react-icons/all-files/fa/FaGooglePlusG\";\nimport { FaPinterestP } from \"@react-icons/all-files/fa/FaPinterestP\";\nimport { FaLinkedinIn } from \"@react-icons/all-files/fa/FaLinkedinIn\";\n\nconst ShareButtons = ({ url, title }: { url: string; title: string }) => {\n return (\n <>\n <ShareButton\n media=\"Facebook\"\n url={`https://www.facebook.com/sharer/sharer.php?u=${url}&p[title]=${title}`}\n >\n <FaFacebookF size=\"20px\" />\n </ShareButton>\n <ShareButton\n media=\"Twitter\"\n url={`http://twitter.com/share?text=${title}&url=${url}`}\n >\n <FaTwitter size=\"20px\" />\n </ShareButton>\n <ShareButton\n media=\"Google+\"\n url={`https://plus.google.com/share?url=${url}`}\n >\n <FaGooglePlusG size=\"20px\" />\n </ShareButton>\n <ShareButton\n media=\"Pinterest\"\n url={`http://pinterest.com/pin/create/button/?url=${url}&description=${title}`}\n >\n <FaPinterestP size=\"20px\" />\n </ShareButton>\n <ShareButton\n media=\"Linkedin\"\n url={`http://www.linkedin.com/shareArticle?mini=true&url=${url}&title=${title}&source=CodeCave`}\n >\n <FaLinkedinIn size=\"20px\" />\n </ShareButton>\n </>\n );\n};\n\nexport const ShareButton = ({\n url,\n media,\n children,\n}: React.PropsWithChildren<{ url: string; media: string }>) => {\n return (\n <a href={url} target=\"_blank\" title={`Share on ${media}`}>\n <button className=\"w-12 h-12 border border-solid rounded-full border-main-10 flex justify-center items-center m-2 hover:bg-secondary-70\">\n {children}\n </button>\n </a>\n );\n};\n\nexport default ShareButtons;\n","import React from \"react\";\n\nimport Border from \"../../assets/common/border.svg\";\nimport GiftImg from \"../../assets/common/gift.svg\";\nimport ContentContainer from \"../common/contentContainer\";\n\nconst PostFooter = () => {\n return (\n <div className=\"w-full h-96 bg-main-100 flex px-6 relative\">\n <Border className=\"absolute top-0 left-0 right-0 w-full\" />\n <ContentContainer className=\"items-center\">\n <div className=\"w-full basis-1/5 hidden sm:flex justify-start items-center pr-16\">\n <GiftImg />\n </div>\n <div className=\"w-full text-center sm:text-start sm:basis-3/5 flex flex-col justify-center items-center\">\n <h4 className=\"text-secondary-100 text-4xl font-bold pb-5\">\n Congratulations! Now you can show off with your new knowledge!\n </h4>\n <p className=\"text-3xl font-light text-secondary-100\">\n If you want us to uncover some other Well unknown facts, you can\n contact us via the socials or e-mail below. See you!{\" \"}\n </p>\n </div>\n </ContentContainer>\n </div>\n );\n};\n\nexport default PostFooter;\n","import React from \"react\";\n\nimport { HeadFC, PageProps, graphql } from \"gatsby\";\nimport { useLocation } from \"@reach/router\";\n\nimport { IPostQueryResult } from \"../types/post.type\";\n\nimport Clock from \"../assets/common/clock.svg\";\n\nimport { LocalBusinessMetadata } from \"../components/common/metadata\";\n\nimport ContentContainer from \"../components/common/contentContainer\";\nimport Banner from \"../components/common/banner\";\nimport ShareButtons from \"../components/posts/shareButtons\";\nimport PostFooter from \"../components/posts/postFooter\";\n\nconst Post = ({\n data: {\n markdownRemark: {\n frontmatter,\n html,\n wordCount: { words },\n },\n },\n}: PageProps<IPostQueryResult>) => {\n const { href: currentUrl } = useLocation();\n\n const { date, title, keywords } = frontmatter;\n\n const minutes = Math.floor(words / 200);\n const readingTime = minutes ? minutes : 1;\n\n return (\n <>\n <Banner\n heightClass=\"h-136\"\n title=\"MAKE BLOGGING GREAT AGAIN\"\n text=\"Well unknown facts for your tech savvy and entertainment\"\n borderBottom\n />\n <div itemScope itemType=\"https://schema.org/Article\" className=\"px-6\">\n <ContentContainer className=\"flex-col max-w-6xl\">\n <div className=\"w-full flex pt-14 pb-9 items-center\">\n <span\n className={`inline text-2xl sm:text-3xl text-main-100 font-light pr-11`}\n itemProp=\"datePublished\"\n >\n {date}\n </span>\n\n <Clock />\n\n <span className=\"inline text-xl font-light italic pl-4\">\n Reading time: {readingTime}m.\n </span>\n </div>\n <h2\n className=\"text-main-100 text-4xl sm:text-5xl md:text-6xl font-semibold leading-[52px] sm:pb-10 md:pb-16\"\n itemProp=\"headline\"\n >\n {title}\n </h2>\n <div\n className=\"single-post text-main-100 font-medium text-2xl pb-10\"\n dangerouslySetInnerHTML={{ __html: html }}\n itemProp=\"articleBody\"\n />\n <div className=\"w-full flex flex-col md:flex-row justify-between items-center pb-24\">\n {keywords ? (\n <div className=\"basis-full sm:basis-3/5 text-center md:text-start pb-10 md:pb-0\">\n {keywords.map((hashtag) => (\n <div\n key={hashtag}\n className=\"inline-block text-main-10 border-main-10 border-solid border rounded-full p-1 px-4 text-2xl m-2\"\n itemProp=\"keywords\"\n >\n #{hashtag.toLowerCase()}\n </div>\n ))}\n </div>\n ) : null}\n <div className=\"basis-full sm:basis-2/5 flex flex-row justify-end\">\n <ShareButtons url={currentUrl} title={title} />\n </div>\n </div>\n </ContentContainer>\n <LocalBusinessMetadata itemProp=\"copyrightHolder\" />\n </div>\n <PostFooter />\n </>\n );\n};\n\nexport default Post;\n\nexport const Head: HeadFC<IPostQueryResult> = ({\n data: {\n markdownRemark: {\n frontmatter: { title },\n },\n },\n}) => <title>CodeCave blog: {title}</title>;\n\nexport const query = graphql`\n query ($id: String) {\n markdownRemark(id: { eq: $id }) {\n frontmatter {\n date(formatString: \"MMM DD, YYYY\")\n title\n keywords\n }\n html\n wordCount {\n words\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\":\"white\",\"strokeWidth\":\"8\",\"strokeDasharray\":\"8 8\",\"x1\":\"0\",\"x2\":\"100%\",\"y1\":\"4\",\"y2\":\"4\",\"key\":0}),React.createElement(\"line\",{\"width\":\"800\",\"height\":\"8\",\"stroke\":\"black\",\"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","var React = require('react');\n\nfunction Clock (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"g\",{\"clipPath\":\"url(#clip0_829_432)\",\"key\":0},[React.createElement(\"path\",{\"fillRule\":\"evenodd\",\"clipRule\":\"evenodd\",\"d\":\"M9.57938 1.14638C9.38658 1.13214 9.19332 1.12501 9 1.125V0C9.2211 0.000107806 9.44213 0.00836341 9.66262 0.02475L9.57938 1.14638ZM11.8339 1.65263C11.4733 1.51347 11.1029 1.40104 10.7258 1.31625L10.9721 0.21825C11.403 0.315 11.8271 0.44325 12.2389 0.603L11.8339 1.65263ZM13.3751 2.45138C13.2143 2.34411 13.0495 2.24279 12.8812 2.14763L13.4359 1.16888C13.8205 1.38683 14.1886 1.63274 14.5372 1.90463L13.8454 2.79225C13.6929 2.67326 13.536 2.55993 13.3751 2.4525V2.45138ZM15.4384 4.46513C15.2158 4.14897 14.9703 3.84966 14.7037 3.56963L15.5182 2.79338C15.822 3.114 16.1032 3.45713 16.3586 3.81713L15.4384 4.46513ZM16.2754 5.98613C16.2015 5.80777 16.1212 5.63215 16.0346 5.45963L17.0392 4.95338C17.2379 5.34835 17.4071 5.75746 17.5455 6.17738L16.4767 6.5295C16.4163 6.34597 16.3491 6.16473 16.2754 5.98613ZM16.8716 8.8065C16.8625 8.41988 16.8249 8.03446 16.7591 7.65338L17.8672 7.46213C17.9426 7.89638 17.9865 8.33738 17.9977 8.77838L16.8727 8.8065H16.8716ZM16.7242 10.5368C16.7614 10.3455 16.7917 10.1554 16.8154 9.963L17.9325 10.1014C17.8785 10.5403 17.792 10.9746 17.6737 11.4008L16.5892 11.1004C16.641 10.9148 16.686 10.7269 16.7242 10.5368ZM15.6532 13.2131C15.8602 12.8869 16.0425 12.5449 16.2 12.1916L17.2282 12.6473C17.0482 13.0523 16.8401 13.4415 16.6039 13.815L15.6532 13.2131ZM14.5687 14.5688C14.706 14.4315 14.8376 14.2898 14.9625 14.1435L15.8152 14.8781C15.6708 15.0456 15.5204 15.2077 15.3641 15.3641L14.5687 14.5688Z\",\"fill\":\"black\",\"key\":0}),React.createElement(\"path\",{\"fillRule\":\"evenodd\",\"clipRule\":\"evenodd\",\"d\":\"M8.99961 1.125C7.7046 1.12509 6.4296 1.44455 5.28753 2.05508C4.14547 2.66561 3.1716 3.54836 2.45217 4.62516C1.73275 5.70195 1.28998 6.93954 1.16308 8.22832C1.03618 9.5171 1.22907 10.8173 1.72466 12.0137C2.22025 13.2101 3.00325 14.2659 4.0043 15.0874C5.00535 15.909 6.19356 16.471 7.46368 16.7237C8.73381 16.9763 10.0466 16.9119 11.2859 16.536C12.5252 16.1601 13.6526 15.4844 14.5684 14.5688L15.3637 15.3641C14.3172 16.4113 13.0285 17.1841 11.6119 17.6141C10.1953 18.0442 8.69447 18.1182 7.24243 17.8295C5.79039 17.5409 4.43195 16.8986 3.28748 15.9595C2.143 15.0204 1.24784 13.8135 0.681284 12.4458C0.114733 11.078 -0.105707 9.59162 0.0394939 8.1183C0.184695 6.64499 0.691055 5.23024 1.51371 3.9994C2.33636 2.76855 3.44991 1.75962 4.75569 1.062C6.06147 0.364382 7.51916 -0.000392324 8.99961 3.16641e-07V1.125Z\",\"fill\":\"black\",\"key\":1}),React.createElement(\"path\",{\"fillRule\":\"evenodd\",\"clipRule\":\"evenodd\",\"d\":\"M8.4375 3.375C8.58668 3.375 8.72976 3.43426 8.83525 3.53975C8.94074 3.64524 9 3.78832 9 3.9375V9.79875L12.654 11.8867C12.7798 11.9626 12.8709 12.0847 12.9078 12.2268C12.9448 12.369 12.9247 12.5199 12.8518 12.6475C12.779 12.775 12.6591 12.869 12.5179 12.9093C12.3766 12.9496 12.2252 12.9331 12.096 12.8632L8.1585 10.6132C8.07241 10.5641 8.00084 10.493 7.95106 10.4073C7.90127 10.3215 7.87503 10.2241 7.875 10.125V3.9375C7.875 3.78832 7.93426 3.64524 8.03975 3.53975C8.14524 3.43426 8.28832 3.375 8.4375 3.375Z\",\"fill\":\"black\",\"key\":2})]),React.createElement(\"defs\",{\"key\":1},React.createElement(\"clipPath\",{\"id\":\"clip0_829_432\"},React.createElement(\"rect\",{\"width\":\"18\",\"height\":\"18\",\"fill\":\"white\"})))]);\n}\n\nClock.defaultProps = {\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"};\n\nmodule.exports = Clock;\n\nClock.default = Clock;\n","var React = require('react');\n\nfunction Gift (props) {\n return React.createElement(\"svg\",props,React.createElement(\"path\",{\"fillRule\":\"evenodd\",\"clipRule\":\"evenodd\",\"d\":\"M17.9629 15.3376C17.9629 11.1936 19.6091 7.21936 22.5393 4.2891C25.4696 1.35885 29.4439 -0.287354 33.5879 -0.287354C37.7319 -0.287354 41.7062 1.35885 44.6364 4.2891C47.5667 7.21936 49.2129 11.1936 49.2129 15.3376C49.2129 11.1936 50.8591 7.21936 53.7893 4.2891C56.7196 1.35885 60.6939 -0.287354 64.8379 -0.287354C68.9819 -0.287354 72.9562 1.35885 75.8864 4.2891C78.8167 7.21936 80.4629 11.1936 80.4629 15.3376V15.3751C80.4629 15.8126 80.4629 17.0626 80.2254 18.4626H92.9629C94.6205 18.4626 96.2102 19.1211 97.3823 20.2932C98.5544 21.4653 99.2129 23.055 99.2129 24.7126V37.2126C99.2129 38.8703 98.5544 40.46 97.3823 41.6321C96.2102 42.8042 94.6205 43.4626 92.9629 43.4626V90.3376C92.9629 92.8241 91.9752 95.2086 90.217 96.9668C88.4589 98.7249 86.0743 99.7126 83.5879 99.7126H14.8379C12.3515 99.7126 9.96692 98.7249 8.20877 96.9668C6.45061 95.2086 5.46289 92.8241 5.46289 90.3376V43.4626C3.80529 43.4626 2.21558 42.8042 1.04347 41.6321C-0.128629 40.46 -0.787109 38.8703 -0.787109 37.2126V24.7126C-0.787109 23.055 -0.128629 21.4653 1.04347 20.2932C2.21558 19.1211 3.80529 18.4626 5.46289 18.4626H18.2004C18.0353 17.4419 17.9559 16.4091 17.9629 15.3751V15.3376ZM24.6379 18.4626H42.9629V15.3376C42.9629 14.1065 42.7204 12.8874 42.2493 11.75C41.7781 10.6126 41.0876 9.57907 40.217 8.70852C39.3465 7.83797 38.313 7.14741 37.1755 6.67628C36.0381 6.20514 34.819 5.96265 33.5879 5.96265C32.3567 5.96265 31.1377 6.20514 30.0002 6.67628C28.8628 7.14741 27.8293 7.83797 26.9588 8.70852C26.0882 9.57907 25.3977 10.6126 24.9265 11.75C24.4554 12.8874 24.2129 14.1065 24.2129 15.3376C24.2129 15.8689 24.2254 17.0501 24.4941 18.0251C24.5317 18.1742 24.5797 18.3204 24.6379 18.4626ZM55.4629 18.4626H73.7879C73.8454 18.3201 73.8934 18.174 73.9316 18.0251C74.2004 17.0501 74.2129 15.8689 74.2129 15.3376C74.2129 12.8512 73.2252 10.4667 71.467 8.70852C69.7089 6.95037 67.3243 5.96265 64.8379 5.96265C62.3515 5.96265 59.9669 6.95037 58.2088 8.70852C56.4506 10.4667 55.4629 12.8512 55.4629 15.3376V18.4626ZM5.46289 24.7126V37.2126H42.9629V24.7126H5.46289ZM55.4629 24.7126V37.2126H92.9629V24.7126H55.4629ZM86.7129 43.4626H55.4629V93.4626H83.5879C84.4167 93.4626 85.2115 93.1334 85.7976 92.5474C86.3837 91.9613 86.7129 91.1665 86.7129 90.3376V43.4626ZM42.9629 93.4626V43.4626H11.7129V90.3376C11.7129 91.1665 12.0421 91.9613 12.6282 92.5474C13.2142 93.1334 14.0091 93.4626 14.8379 93.4626H42.9629Z\",\"fill\":\"white\"}));\n}\n\nGift.defaultProps = {\"width\":\"100\",\"height\":\"100\",\"viewBox\":\"0 0 100 100\",\"fill\":\"none\"};\n\nmodule.exports = Gift;\n\nGift.default = Gift;\n"],"names":["GenIcon","module","exports","props","_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","onWheelHandler","e","preventDefault","wheel","deltaY","onMouseMoveHandler","x","movementX","y","movementY","removeEventListener","once","onTouchMoveHandler","touches","length","firstTouch","previousCoords","screenX","screenY","newX","newY","nestedTouchMoveHandler","touch","dispose","ref","Spinner","heightClass","title","text","borderBottom","borderTop","babylon","textTranslate","setTextTranslate","Border","ContentContainer","toUpperCase","ShareButton","_ref2","url","media","children","href","target","FaFacebookF","size","FaTwitter","FaGooglePlusG","FaPinterestP","FaLinkedinIn","PostFooter","GiftImg","markdownRemark","frontmatter","html","wordCount","words","currentUrl","useLocation","date","keywords","minutes","Math","floor","readingTime","Banner","itemScope","itemType","itemProp","Clock","dangerouslySetInnerHTML","__html","map","hashtag","key","toLowerCase","ShareButtons","LocalBusinessMetadata","Head","createElement","defaultProps","default","Gift"],"sourceRoot":""} \ No newline at end of file diff --git a/component---src-pages-templates-projects-tsx-75dd824378dedee3ee1b.js b/component---src-pages-templates-projects-tsx-75dd824378dedee3ee1b.js new file mode 100644 index 00000000..24f483fe --- /dev/null +++ b/component---src-pages-templates-projects-tsx-75dd824378dedee3ee1b.js @@ -0,0 +1,2 @@ +(self.webpackChunkcode_cave=self.webpackChunkcode_cave||[]).push([[650],{1929:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var l=n(7294),a=n(4471),r=n.n(a),s=n(1164);var c=e=>{let{className:t}=e;return l.createElement("div",{className:"flex justify-center items-center h-full w-full "+t},l.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"},l.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"}),l.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 o=()=>{const{0:e,1:t}=(0,l.useState)(!1),a=(0,l.useRef)(!0),r=(0,l.useRef)(null);return(0,l.useEffect)((()=>{if(!a.current||!r.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 l=r.current;l.width=l.clientWidth,l.height=l.clientHeight;const s=l.transferControlToOffscreen();e.postMessage({canvas:s},[s]);const c=()=>{e.postMessage({width:l.clientWidth,height:l.clientHeight})};window.addEventListener("resize",c);const o=t=>{t.preventDefault(),e.postMessage({wheel:t.deltaY})};l.addEventListener("wheel",o);const i=t=>{e.postMessage({x:t.movementX,y:t.movementY})};l.addEventListener("mousedown",(e=>{e.preventDefault(),window.addEventListener("mousemove",i),window.addEventListener("mouseup",(()=>window.removeEventListener("mousemove",i)),{once:!0})}));let m;return l.addEventListener("touchstart",(t=>{if(1!==t.touches.length)return;const n=t.touches[0];t.preventDefault();const l={x:n.screenX,y:n.screenY};m=t=>{const{newX:n,newY:a}=((t,n)=>{const l=t.touches[0];return e.postMessage({x:l.screenX-n.x,y:l.screenY-n.y}),{newX:l.screenX,newY:l.screenY}})(t,l);l.x=n,l.y=a},window.addEventListener("touchmove",m),window.addEventListener("touchend",(()=>{window.removeEventListener("touchmove",m)}))})),()=>{window&&(window.removeEventListener("resize",c),window.removeEventListener("mousemove",i),window.removeEventListener("touchmove",m),l&&l.removeEventListener("wheel",o),e.terminate())}}),[]),l.createElement("div",{className:"h-full w-full relative"},l.createElement("canvas",{ref:r,className:"bg-main-100 h-160 w-full flex items-center justify-center cursor-pointer"}),e?null:l.createElement(c,{className:"absolute top-0 left-0 right-0 bottom-0 z-10"}))};var i=e=>{let{heightClass:t="min-h-160",title:n,text:a,className:c,borderBottom:i,borderTop:m,babylon:u}=e;const{0:d,1:f}=(0,l.useState)("translate-y-full");return(0,l.useEffect)((()=>{f("translate-y-0")}),[]),l.createElement("div",{className:"w-full flex items-center bg-main-100 relative overflow-hidden px-6 "+t+" "+c},m?l.createElement(r(),{className:"absolute top-0 left-0 right-0 w-full"}):null,l.createElement(s.Z,{className:"h-full flex flex-col lg:flex-row py-12 lg:py-0 items-center text-secondary-100 flex-grow"},l.createElement("div",{className:"flex flex-col overflow-hidden items-left h-full justify-center text-secondary-100 h-full w-full lg:w-1/2 bg-main-100"},l.createElement("h2",{className:"overflow-hidden mb-8 w-full"},l.createElement("span",{className:"inline-block font-['Rubik_Glitch'] text-5xl sm:text-6xl w-full text-center lg:text-start transition-all duration-1000 "+d},n.toUpperCase())),l.createElement("p",{className:"overflow-hidden w-full"},l.createElement("span",{className:"inline-block w-full text-3xl sm:text-4xl font-light text-center lg:text-start transition-all duration-1000 "+d},a.toUpperCase()))),u?l.createElement("div",{className:"w-[85%] lg:w-1/2 lg:h-full flex"},l.createElement(o,null)):null),i?l.createElement(r(),{className:"absolute bottom-0 left-0 right-0 w-full"}):null)}},4568:function(e,t,n){"use strict";var l=n(7294),a=n(1883),r=n(1434);t.Z=e=>{let{section:t,pagesQuantity:n,currentPage:s,className:c}=e;const o=Array.from({length:n},((e,t)=>t+1)),i=s+1;return l.createElement("div",{className:"my-16 flex justify-between w-full "+c},s<n?l.createElement(a.Link,{to:"/"+t+"/page/"+i,className:"basis-1/2"},l.createElement(r.Z,{size:"large",variant:"dark",className:"w-max"},"NEXT PAGE")):null,l.createElement("nav",{className:"w-full flex justify-end"},n>1?o.map((e=>l.createElement(a.Link,{key:"pagination-link-"+e,to:"/"+t+"/page/"+e},l.createElement(r.Z,{size:"large",variant:e===s?"dark":"light",border:e!==s,className:"mx-[-1px]"},e)))):null))}},3997:function(e,t,n){"use strict";n.r(t),n.d(t,{Head:function(){return o}});var l=n(7294),a=n(1929),r=n(1164),s=n(6745),c=n(4568);t.default=e=>{let{data:t,pageContext:n}=e;const o=t.allMarkdownRemark.nodes,{currentPage:i,pagesQuantity:m}=n;return l.createElement(l.Fragment,null,l.createElement(a.Z,{heightClass:"h-136",title:"CodeCave projects",text:"Our super amazing projects",borderBottom:!0}),l.createElement(r.Z,{className:"flex-col items-center p-6 md:p-12"},l.createElement("div",{className:"flex flex-wrap w-full justify-center py-14"},o?o.map((e=>l.createElement(s.Z,{key:e.id,project:e,theme:"dark",className:"basis-full md:basis-3/4 lg:basis-2/5 my-10 md:m-12"}))):null),m>1?l.createElement(c.Z,{section:"projects",pagesQuantity:m,currentPage:i}):null))};const o=()=>l.createElement("title",null,"CodeCave Projects")},4471:function(e,t,n){var l=n(7294);function a(e){return l.createElement("svg",e,[l.createElement("line",{width:"800",height:"8",stroke:"white",strokeWidth:"8",strokeDasharray:"8 8",x1:"0",x2:"100%",y1:"4",y2:"4",key:0}),l.createElement("line",{width:"800",height:"8",stroke:"black",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=component---src-pages-templates-projects-tsx-75dd824378dedee3ee1b.js.map \ No newline at end of file diff --git a/component---src-pages-templates-projects-tsx-75dd824378dedee3ee1b.js.map b/component---src-pages-templates-projects-tsx-75dd824378dedee3ee1b.js.map new file mode 100644 index 00000000..03edf59a --- /dev/null +++ b/component---src-pages-templates-projects-tsx-75dd824378dedee3ee1b.js.map @@ -0,0 +1 @@ +{"version":3,"file":"component---src-pages-templates-projects-tsx-75dd824378dedee3ee1b.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/./src/components/common/pagination.tsx","webpack://code-cave/./src/pagesTemplates/projects.tsx","webpack://code-cave/./src/assets/common/border.svg"],"sourcesContent":["import React from \"react\";\n\nconst Spinner = ({ className }: { className?: string }) => {\n return (\n <div\n className={`flex justify-center items-center h-full w-full ${className}`}\n >\n <svg\n aria-hidden=\"true\"\n className=\"w-8 h-8 mr-2 text-main-10 animate-spin dark:text-secondary-10 fill-main-100\"\n viewBox=\"0 0 100 101\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n 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\"\n fill=\"currentColor\"\n />\n <path\n 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\"\n fill=\"currentFill\"\n />\n </svg>\n </div>\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<boolean>(false);\n const isInitial = useRef<boolean>(true);\n const canvasRef = useRef<HTMLCanvasElement>(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);\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 window.addEventListener(\n \"mouseup\",\n () => window.removeEventListener(\"mousemove\", onMouseMoveHandler),\n { once: 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(\"touchstart\", (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 window.addEventListener(\"touchend\", () => {\n window.removeEventListener(\"touchmove\", onTouchMoveHandler);\n });\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 <div className={`h-full w-full relative`}>\n <canvas\n ref={canvasRef}\n className={`bg-main-100 h-160 w-full flex items-center justify-center cursor-pointer`}\n />\n {!isBabylonReady ? (\n <Spinner className=\"absolute top-0 left-0 right-0 bottom-0 z-10\" />\n ) : null}\n </div>\n );\n};\n\nexport default Babylon;\n","import React, { useEffect, useState } from \"react\";\n\nimport Border from \"../../assets/common/border.svg\";\n\nimport ContentContainer from \"./contentContainer\";\nimport Babylon from \"../babylonjs/babylon\";\n\nconst Banner = ({\n heightClass = \"min-h-160\",\n title,\n text,\n className,\n borderBottom,\n borderTop,\n babylon,\n}: {\n heightClass?: string;\n title: string;\n text: string;\n className?: string;\n borderBottom?: boolean;\n borderTop?: boolean;\n babylon?: boolean;\n}) => {\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 <div\n className={`w-full flex items-center bg-main-100 relative overflow-hidden px-6 ${heightClass} ${className}`}\n >\n {borderTop ? (\n <Border className=\"absolute top-0 left-0 right-0 w-full\" />\n ) : null}\n <ContentContainer\n className={`h-full flex flex-col lg:flex-row py-12 lg:py-0 items-center text-secondary-100 flex-grow`}\n >\n <div className=\"flex flex-col overflow-hidden items-left h-full justify-center text-secondary-100 h-full w-full lg:w-1/2 bg-main-100\">\n <h2 className={`overflow-hidden mb-8 w-full`}>\n <span\n className={`inline-block font-['Rubik_Glitch'] text-5xl sm:text-6xl w-full text-center lg:text-start transition-all duration-1000 ${textTranslate}`}\n >\n {title.toUpperCase()}\n </span>\n </h2>\n <p className={`overflow-hidden w-full`}>\n <span\n className={`inline-block w-full text-3xl sm:text-4xl font-light text-center lg:text-start transition-all duration-1000 ${textTranslate}`}\n >\n {text.toUpperCase()}\n </span>\n </p>\n </div>\n {babylon ? (\n <div className=\"w-[85%] lg:w-1/2 lg:h-full flex\">\n <Babylon />\n </div>\n ) : null}\n </ContentContainer>\n {borderBottom ? (\n <Border className=\"absolute bottom-0 left-0 right-0 w-full\" />\n ) : null}\n </div>\n );\n};\n\nexport default Banner;\n","import React from \"react\";\n\nimport { Link } from \"gatsby\";\n\nimport Button from \"./button\";\n\nconst Pagination = ({\n section,\n pagesQuantity,\n currentPage,\n className,\n}: {\n section: \"projects\" | \"blog\";\n pagesQuantity: number;\n currentPage: number;\n className?: string;\n}) => {\n const pages = Array.from({ length: pagesQuantity }, (_, i) => i + 1);\n const nextPage = currentPage + 1;\n\n return (\n <div className={`my-16 flex justify-between w-full ${className}`}>\n {currentPage < pagesQuantity ? (\n <Link to={`/${section}/page/${nextPage}`} className=\"basis-1/2\">\n <Button size=\"large\" variant=\"dark\" className=\"w-max\">\n NEXT PAGE\n </Button>\n </Link>\n ) : null}\n\n <nav className=\"w-full flex justify-end\">\n {pagesQuantity > 1\n ? pages.map((page) => (\n <Link\n key={`pagination-link-${page}`}\n to={`/${section}/page/${page}`}\n >\n <Button\n size=\"large\"\n variant={page === currentPage ? \"dark\" : \"light\"}\n border={page !== currentPage}\n className=\"mx-[-1px]\"\n >\n {page}\n </Button>\n </Link>\n ))\n : null}\n </nav>\n </div>\n );\n};\n\nexport default Pagination;\n","import React from \"react\";\n\nimport { HeadFC, PageProps } from \"gatsby\";\nimport { graphql } from \"gatsby\";\n\nimport { IProjectsPageContext, IProjectsPageData } from \"../types/project.type\";\n\nimport Banner from \"../components/common/banner\";\nimport ContentContainer from \"../components/common/contentContainer\";\nimport ProjectPreview from \"../components/projects/projectPreview\";\nimport Pagination from \"../components/common/pagination\";\n\nconst Projects = ({\n data,\n pageContext,\n}: PageProps<IProjectsPageData, IProjectsPageContext>) => {\n const projects = data.allMarkdownRemark.nodes;\n const { currentPage, pagesQuantity } = pageContext;\n\n return (\n <>\n <Banner\n heightClass=\"h-136\"\n title=\"CodeCave projects\"\n text=\"Our super amazing projects\"\n borderBottom\n />\n <ContentContainer className=\"flex-col items-center p-6 md:p-12\">\n <div className=\"flex flex-wrap w-full justify-center py-14\">\n {projects\n ? projects.map((project) => (\n <ProjectPreview\n key={project.id}\n project={project}\n theme=\"dark\"\n className=\"basis-full md:basis-3/4 lg:basis-2/5 my-10 md:m-12\"\n />\n ))\n : null}\n </div>\n {pagesQuantity > 1 ? (\n <Pagination\n section={\"projects\"}\n pagesQuantity={pagesQuantity}\n currentPage={currentPage}\n />\n ) : null}\n </ContentContainer>\n </>\n );\n};\n\nexport default Projects;\n\nexport const Head: HeadFC = () => <title>CodeCave Projects</title>;\n\nexport const query = graphql`\n query ($skip: Int!, $limit: Int!) {\n allMarkdownRemark(\n filter: { fields: { sourceName: { eq: \"projects\" } } }\n sort: { frontmatter: { date: DESC } }\n limit: $limit\n skip: $skip\n ) {\n nodes {\n id\n frontmatter {\n date(formatString: \"MMM DD, YYYY\")\n title\n text\n stack\n cover {\n childImageSharp {\n gatsbyImageData(\n formats: [AUTO, WEBP, AVIF]\n placeholder: BLURRED\n width: 600\n )\n }\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\":\"white\",\"strokeWidth\":\"8\",\"strokeDasharray\":\"8 8\",\"x1\":\"0\",\"x2\":\"100%\",\"y1\":\"4\",\"y2\":\"4\",\"key\":0}),React.createElement(\"line\",{\"width\":\"800\",\"height\":\"8\",\"stroke\":\"black\",\"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","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","text","borderBottom","borderTop","babylon","textTranslate","setTextTranslate","Border","ContentContainer","toUpperCase","section","pagesQuantity","currentPage","pages","Array","from","_","i","nextPage","Link","to","Button","size","variant","map","page","key","border","pageContext","projects","allMarkdownRemark","nodes","Banner","project","ProjectPreview","id","theme","Pagination","Head","props","createElement","defaultProps","module","exports","default"],"sourceRoot":""} \ No newline at end of file diff --git a/component---src-pages-templates-projects-tsx-bc2345c3e66bde0622dc.js b/component---src-pages-templates-projects-tsx-bc2345c3e66bde0622dc.js deleted file mode 100644 index 88a85990..00000000 --- a/component---src-pages-templates-projects-tsx-bc2345c3e66bde0622dc.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunkcode_cave=self.webpackChunkcode_cave||[]).push([[650],{1929:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var l=n(7294),a=n(4471),r=n.n(a),s=n(1164);var o=e=>{let{className:t}=e;return l.createElement("div",{className:"flex justify-center items-center h-full w-full "+t},l.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"},l.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"}),l.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,l.useState)(!1),a=(0,l.useRef)(!0),r=(0,l.useRef)(null);return(0,l.useEffect)((()=>{if(!a.current||!r.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 l=r.current;l.width=l.clientWidth,l.height=l.clientHeight;const s=l.transferControlToOffscreen();e.postMessage({canvas:s},[s]);const o=()=>{e.postMessage({width:l.clientWidth,height:l.clientHeight})};window.addEventListener("resize",o);const c=t=>{t.preventDefault(),e.postMessage({wheel:t.deltaY})};l.addEventListener("wheel",c);const i=t=>{e.postMessage({x:t.movementX,y:t.movementY})};l.addEventListener("mousedown",(e=>{e.preventDefault(),window.addEventListener("mousemove",i),window.addEventListener("mouseup",(()=>window.removeEventListener("mousemove",i)),{once:!0})}));let m;return l.addEventListener("touchstart",(t=>{if(1!==t.touches.length)return;const n=t.touches[0];t.preventDefault();const l={x:n.screenX,y:n.screenY};m=t=>{const{newX:n,newY:a}=((t,n)=>{const l=t.touches[0];return e.postMessage({x:l.screenX-n.x,y:l.screenY-n.y}),{newX:l.screenX,newY:l.screenY}})(t,l);l.x=n,l.y=a},window.addEventListener("touchmove",m),window.addEventListener("touchend",(()=>{window.removeEventListener("touchmove",m)}))})),()=>{window&&(window.removeEventListener("resize",o),window.removeEventListener("mousemove",i),window.removeEventListener("touchmove",m)),l&&l.removeEventListener("wheel",c),e.postMessage({dispose:!0})}}),[]),l.createElement("div",{className:"h-full w-full relative"},l.createElement("canvas",{ref:r,className:"bg-main-100 h-160 w-full flex items-center justify-center cursor-pointer"}),e?null:l.createElement(o,{className:"absolute top-0 left-0 right-0 bottom-0 z-10"}))};var i=e=>{let{heightClass:t="min-h-160",title:n,text:a,className:o,borderBottom:i,borderTop:m,babylon:u}=e;const{0:d,1:f}=(0,l.useState)("translate-y-full");return(0,l.useEffect)((()=>{f("translate-y-0")}),[]),l.createElement("div",{className:"w-full flex items-center bg-main-100 relative overflow-hidden px-6 "+t+" "+o},m?l.createElement(r(),{className:"absolute top-0 left-0 right-0 w-full"}):null,l.createElement(s.Z,{className:"h-full flex flex-col lg:flex-row py-12 lg:py-0 items-center text-secondary-100 flex-grow"},l.createElement("div",{className:"flex flex-col overflow-hidden items-left h-full justify-center text-secondary-100 h-full w-full lg:w-1/2 bg-main-100"},l.createElement("h2",{className:"overflow-hidden mb-8 w-full"},l.createElement("span",{className:"inline-block font-['Rubik_Glitch'] text-5xl sm:text-6xl w-full text-center lg:text-start transition-all duration-1000 "+d},n.toUpperCase())),l.createElement("p",{className:"overflow-hidden w-full"},l.createElement("span",{className:"inline-block w-full text-3xl sm:text-4xl font-light text-center lg:text-start transition-all duration-1000 "+d},a.toUpperCase()))),u?l.createElement("div",{className:"w-[85%] lg:w-1/2 lg:h-full flex"},l.createElement(c,null)):null),i?l.createElement(r(),{className:"absolute bottom-0 left-0 right-0 w-full"}):null)}},4568:function(e,t,n){"use strict";var l=n(7294),a=n(1883),r=n(1434);t.Z=e=>{let{section:t,pagesQuantity:n,currentPage:s,className:o}=e;const c=Array.from({length:n},((e,t)=>t+1)),i=s+1;return l.createElement("div",{className:"my-16 flex justify-between w-full "+o},s<n?l.createElement(a.Link,{to:"/"+t+"/page/"+i,className:"basis-1/2"},l.createElement(r.Z,{size:"large",variant:"dark",className:"w-max"},"NEXT PAGE")):null,l.createElement("nav",{className:"w-full flex justify-end"},n>1?c.map((e=>l.createElement(a.Link,{key:"pagination-link-"+e,to:"/"+t+"/page/"+e},l.createElement(r.Z,{size:"large",variant:e===s?"dark":"light",border:e!==s,className:"mx-[-1px]"},e)))):null))}},3997:function(e,t,n){"use strict";n.r(t),n.d(t,{Head:function(){return c}});var l=n(7294),a=n(1929),r=n(1164),s=n(6745),o=n(4568);t.default=e=>{let{data:t,pageContext:n}=e;const c=t.allMarkdownRemark.nodes,{currentPage:i,pagesQuantity:m}=n;return l.createElement(l.Fragment,null,l.createElement(a.Z,{heightClass:"h-136",title:"CodeCave projects",text:"Our super amazing projects",borderBottom:!0}),l.createElement(r.Z,{className:"flex-col items-center p-6 md:p-12"},l.createElement("div",{className:"flex flex-wrap w-full justify-center py-14"},c?c.map((e=>l.createElement(s.Z,{key:e.id,project:e,theme:"dark",className:"basis-full md:basis-3/4 lg:basis-2/5 my-10 md:m-12"}))):null),m>1?l.createElement(o.Z,{section:"projects",pagesQuantity:m,currentPage:i}):null))};const c=()=>l.createElement("title",null,"CodeCave Projects")},4471:function(e,t,n){var l=n(7294);function a(e){return l.createElement("svg",e,[l.createElement("line",{width:"800",height:"8",stroke:"white",strokeWidth:"8",strokeDasharray:"8 8",x1:"0",x2:"100%",y1:"4",y2:"4",key:0}),l.createElement("line",{width:"800",height:"8",stroke:"black",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=component---src-pages-templates-projects-tsx-bc2345c3e66bde0622dc.js.map \ No newline at end of file diff --git a/component---src-pages-templates-projects-tsx-bc2345c3e66bde0622dc.js.map b/component---src-pages-templates-projects-tsx-bc2345c3e66bde0622dc.js.map deleted file mode 100644 index 574721eb..00000000 --- a/component---src-pages-templates-projects-tsx-bc2345c3e66bde0622dc.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"component---src-pages-templates-projects-tsx-bc2345c3e66bde0622dc.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/./src/components/common/pagination.tsx","webpack://code-cave/./src/pagesTemplates/projects.tsx","webpack://code-cave/./src/assets/common/border.svg"],"sourcesContent":["import React from \"react\";\n\nconst Spinner = ({ className }: { className?: string }) => {\n return (\n <div\n className={`flex justify-center items-center h-full w-full ${className}`}\n >\n <svg\n aria-hidden=\"true\"\n className=\"w-8 h-8 mr-2 text-main-10 animate-spin dark:text-secondary-10 fill-main-100\"\n viewBox=\"0 0 100 101\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n 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\"\n fill=\"currentColor\"\n />\n <path\n 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\"\n fill=\"currentFill\"\n />\n </svg>\n </div>\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<boolean>(false);\n const isInitial = useRef<boolean>(true);\n const canvasRef = useRef<HTMLCanvasElement>(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);\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 window.addEventListener(\n \"mouseup\",\n () => window.removeEventListener(\"mousemove\", onMouseMoveHandler),\n { once: 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(\"touchstart\", (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 window.addEventListener(\"touchend\", () => {\n window.removeEventListener(\"touchmove\", onTouchMoveHandler);\n });\n });\n\n // UNMOUNT handler\n return () => {\n if (window) {\n window.removeEventListener(\"resize\", onResizeHandler);\n window.removeEventListener(\"mousemove\", onMouseMoveHandler);\n window.removeEventListener(\"touchmove\", onTouchMoveHandler);\n }\n if (canvas) {\n canvas.removeEventListener(\"wheel\", onWheelHandler);\n }\n babylonWorker.postMessage({ dispose: true });\n };\n }, []);\n\n return (\n <div className={`h-full w-full relative`}>\n <canvas\n ref={canvasRef}\n className={`bg-main-100 h-160 w-full flex items-center justify-center cursor-pointer`}\n />\n {!isBabylonReady ? (\n <Spinner className=\"absolute top-0 left-0 right-0 bottom-0 z-10\" />\n ) : null}\n </div>\n );\n};\n\nexport default Babylon;\n","import React, { useEffect, useState } from \"react\";\n\nimport Border from \"../../assets/common/border.svg\";\n\nimport ContentContainer from \"./contentContainer\";\nimport Babylon from \"../babylonjs/babylon\";\n\nconst Banner = ({\n heightClass = \"min-h-160\",\n title,\n text,\n className,\n borderBottom,\n borderTop,\n babylon,\n}: {\n heightClass?: string;\n title: string;\n text: string;\n className?: string;\n borderBottom?: boolean;\n borderTop?: boolean;\n babylon?: boolean;\n}) => {\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 <div\n className={`w-full flex items-center bg-main-100 relative overflow-hidden px-6 ${heightClass} ${className}`}\n >\n {borderTop ? (\n <Border className=\"absolute top-0 left-0 right-0 w-full\" />\n ) : null}\n <ContentContainer\n className={`h-full flex flex-col lg:flex-row py-12 lg:py-0 items-center text-secondary-100 flex-grow`}\n >\n <div className=\"flex flex-col overflow-hidden items-left h-full justify-center text-secondary-100 h-full w-full lg:w-1/2 bg-main-100\">\n <h2 className={`overflow-hidden mb-8 w-full`}>\n <span\n className={`inline-block font-['Rubik_Glitch'] text-5xl sm:text-6xl w-full text-center lg:text-start transition-all duration-1000 ${textTranslate}`}\n >\n {title.toUpperCase()}\n </span>\n </h2>\n <p className={`overflow-hidden w-full`}>\n <span\n className={`inline-block w-full text-3xl sm:text-4xl font-light text-center lg:text-start transition-all duration-1000 ${textTranslate}`}\n >\n {text.toUpperCase()}\n </span>\n </p>\n </div>\n {babylon ? (\n <div className=\"w-[85%] lg:w-1/2 lg:h-full flex\">\n <Babylon />\n </div>\n ) : null}\n </ContentContainer>\n {borderBottom ? (\n <Border className=\"absolute bottom-0 left-0 right-0 w-full\" />\n ) : null}\n </div>\n );\n};\n\nexport default Banner;\n","import React from \"react\";\n\nimport { Link } from \"gatsby\";\n\nimport Button from \"./button\";\n\nconst Pagination = ({\n section,\n pagesQuantity,\n currentPage,\n className,\n}: {\n section: \"projects\" | \"blog\";\n pagesQuantity: number;\n currentPage: number;\n className?: string;\n}) => {\n const pages = Array.from({ length: pagesQuantity }, (_, i) => i + 1);\n const nextPage = currentPage + 1;\n\n return (\n <div className={`my-16 flex justify-between w-full ${className}`}>\n {currentPage < pagesQuantity ? (\n <Link to={`/${section}/page/${nextPage}`} className=\"basis-1/2\">\n <Button size=\"large\" variant=\"dark\" className=\"w-max\">\n NEXT PAGE\n </Button>\n </Link>\n ) : null}\n\n <nav className=\"w-full flex justify-end\">\n {pagesQuantity > 1\n ? pages.map((page) => (\n <Link\n key={`pagination-link-${page}`}\n to={`/${section}/page/${page}`}\n >\n <Button\n size=\"large\"\n variant={page === currentPage ? \"dark\" : \"light\"}\n border={page !== currentPage}\n className=\"mx-[-1px]\"\n >\n {page}\n </Button>\n </Link>\n ))\n : null}\n </nav>\n </div>\n );\n};\n\nexport default Pagination;\n","import React from \"react\";\n\nimport { HeadFC, PageProps } from \"gatsby\";\nimport { graphql } from \"gatsby\";\n\nimport { IProjectsPageContext, IProjectsPageData } from \"../types/project.type\";\n\nimport Banner from \"../components/common/banner\";\nimport ContentContainer from \"../components/common/contentContainer\";\nimport ProjectPreview from \"../components/projects/projectPreview\";\nimport Pagination from \"../components/common/pagination\";\n\nconst Projects = ({\n data,\n pageContext,\n}: PageProps<IProjectsPageData, IProjectsPageContext>) => {\n const projects = data.allMarkdownRemark.nodes;\n const { currentPage, pagesQuantity } = pageContext;\n\n return (\n <>\n <Banner\n heightClass=\"h-136\"\n title=\"CodeCave projects\"\n text=\"Our super amazing projects\"\n borderBottom\n />\n <ContentContainer className=\"flex-col items-center p-6 md:p-12\">\n <div className=\"flex flex-wrap w-full justify-center py-14\">\n {projects\n ? projects.map((project) => (\n <ProjectPreview\n key={project.id}\n project={project}\n theme=\"dark\"\n className=\"basis-full md:basis-3/4 lg:basis-2/5 my-10 md:m-12\"\n />\n ))\n : null}\n </div>\n {pagesQuantity > 1 ? (\n <Pagination\n section={\"projects\"}\n pagesQuantity={pagesQuantity}\n currentPage={currentPage}\n />\n ) : null}\n </ContentContainer>\n </>\n );\n};\n\nexport default Projects;\n\nexport const Head: HeadFC = () => <title>CodeCave Projects</title>;\n\nexport const query = graphql`\n query ($skip: Int!, $limit: Int!) {\n allMarkdownRemark(\n filter: { fields: { sourceName: { eq: \"projects\" } } }\n sort: { frontmatter: { date: DESC } }\n limit: $limit\n skip: $skip\n ) {\n nodes {\n id\n frontmatter {\n date(formatString: \"MMM DD, YYYY\")\n title\n text\n stack\n cover {\n childImageSharp {\n gatsbyImageData(\n formats: [AUTO, WEBP, AVIF]\n placeholder: BLURRED\n width: 600\n )\n }\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\":\"white\",\"strokeWidth\":\"8\",\"strokeDasharray\":\"8 8\",\"x1\":\"0\",\"x2\":\"100%\",\"y1\":\"4\",\"y2\":\"4\",\"key\":0}),React.createElement(\"line\",{\"width\":\"800\",\"height\":\"8\",\"stroke\":\"black\",\"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","onWheelHandler","e","preventDefault","wheel","deltaY","onMouseMoveHandler","x","movementX","y","movementY","removeEventListener","once","onTouchMoveHandler","touches","length","firstTouch","previousCoords","screenX","screenY","newX","newY","nestedTouchMoveHandler","touch","dispose","ref","Spinner","heightClass","title","text","borderBottom","borderTop","babylon","textTranslate","setTextTranslate","Border","ContentContainer","toUpperCase","section","pagesQuantity","currentPage","pages","Array","from","_","i","nextPage","Link","to","Button","size","variant","map","page","key","border","pageContext","projects","allMarkdownRemark","nodes","Banner","project","ProjectPreview","id","theme","Pagination","Head","props","createElement","defaultProps","module","exports","default"],"sourceRoot":""} \ No newline at end of file diff --git a/component---src-pages-workflow-tsx-66c85385336912fb7c37.js b/component---src-pages-workflow-tsx-66c85385336912fb7c37.js deleted file mode 100644 index 313248ac..00000000 --- a/component---src-pages-workflow-tsx-66c85385336912fb7c37.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunkcode_cave=self.webpackChunkcode_cave||[]).push([[311],{1929:function(e,t,l){"use strict";l.d(t,{Z:function(){return i}});var n=l(7294),r=l(4471),a=l.n(r),s=l(1164);var o=e=>{let{className:t}=e;return n.createElement("div",{className:"flex justify-center items-center h-full w-full "+t},n.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"},n.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"}),n.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,n.useState)(!1),r=(0,n.useRef)(!0),a=(0,n.useRef)(null);return(0,n.useEffect)((()=>{if(!r.current||!a.current||"undefined"==typeof window)return;r.current=!1;const e=new Worker(new URL(l.p+l.u(475),l.b),{type:void 0});e.onmessage=e=>{let{data:l}=e;"ready"===l&&t(!0)};const n=a.current;n.width=n.clientWidth,n.height=n.clientHeight;const s=n.transferControlToOffscreen();e.postMessage({canvas:s},[s]);const o=()=>{e.postMessage({width:n.clientWidth,height:n.clientHeight})};window.addEventListener("resize",o);const c=t=>{t.preventDefault(),e.postMessage({wheel:t.deltaY})};n.addEventListener("wheel",c);const i=t=>{e.postMessage({x:t.movementX,y:t.movementY})};n.addEventListener("mousedown",(e=>{e.preventDefault(),window.addEventListener("mousemove",i),window.addEventListener("mouseup",(()=>window.removeEventListener("mousemove",i)),{once:!0})}));let m;return n.addEventListener("touchstart",(t=>{if(1!==t.touches.length)return;const l=t.touches[0];t.preventDefault();const n={x:l.screenX,y:l.screenY};m=t=>{const{newX:l,newY:r}=((t,l)=>{const n=t.touches[0];return e.postMessage({x:n.screenX-l.x,y:n.screenY-l.y}),{newX:n.screenX,newY:n.screenY}})(t,n);n.x=l,n.y=r},window.addEventListener("touchmove",m),window.addEventListener("touchend",(()=>{window.removeEventListener("touchmove",m)}))})),()=>{window&&(window.removeEventListener("resize",o),window.removeEventListener("mousemove",i),window.removeEventListener("touchmove",m)),n&&n.removeEventListener("wheel",c),e.postMessage({dispose:!0})}}),[]),n.createElement("div",{className:"h-full w-full relative"},n.createElement("canvas",{ref:a,className:"bg-main-100 h-160 w-full flex items-center justify-center cursor-pointer"}),e?null:n.createElement(o,{className:"absolute top-0 left-0 right-0 bottom-0 z-10"}))};var i=e=>{let{heightClass:t="min-h-160",title:l,text:r,className:o,borderBottom:i,borderTop:m,babylon:d}=e;const{0:u,1:f}=(0,n.useState)("translate-y-full");return(0,n.useEffect)((()=>{f("translate-y-0")}),[]),n.createElement("div",{className:"w-full flex items-center bg-main-100 relative overflow-hidden px-6 "+t+" "+o},m?n.createElement(a(),{className:"absolute top-0 left-0 right-0 w-full"}):null,n.createElement(s.Z,{className:"h-full flex flex-col lg:flex-row py-12 lg:py-0 items-center text-secondary-100 flex-grow"},n.createElement("div",{className:"flex flex-col overflow-hidden items-left h-full justify-center text-secondary-100 h-full w-full lg:w-1/2 bg-main-100"},n.createElement("h2",{className:"overflow-hidden mb-8 w-full"},n.createElement("span",{className:"inline-block font-['Rubik_Glitch'] text-5xl sm:text-6xl w-full text-center lg:text-start transition-all duration-1000 "+u},l.toUpperCase())),n.createElement("p",{className:"overflow-hidden w-full"},n.createElement("span",{className:"inline-block w-full text-3xl sm:text-4xl font-light text-center lg:text-start transition-all duration-1000 "+u},r.toUpperCase()))),d?n.createElement("div",{className:"w-[85%] lg:w-1/2 lg:h-full flex"},n.createElement(c,null)):null),i?n.createElement(a(),{className:"absolute bottom-0 left-0 right-0 w-full"}):null)}},216:function(e,t,l){"use strict";var n=l(7294),r=l(1883),a=l(1164);t.Z=e=>{let{section:t,title:l,linkTitle:s,className:o,fullWidth:c,children:i}=e;return n.createElement("section",{className:"w-full py-48 px-6 "+o},n.createElement(a.Z,{className:"flex-col items-center",fullWidth:c},n.createElement("div",{className:"flex justify-between w-full items-center pb-10 md:pb-16"},n.createElement("h3",{className:"text-4xl md:text-5xl font-black w-full max-w-7xl mx-auto pr-8"},l.toUpperCase()),t?n.createElement(r.Link,{to:"/"+t,className:"text-end text-2xl md:text-3xl text-secondary-10 hover:text-secondary-100 font-normal cursor-pointer whitespace-nowrap"},s?s.toUpperCase():"SEE MORE"," →"):null),i))}},2891:function(e,t,l){"use strict";l.r(t),l.d(t,{Head:function(){return h},default:function(){return w}});var n=l(7294),r=l(1883),a=l(1929),s=l(1164),o=l(4799),c=l.n(o);var i=e=>{let{step:t,scroll:l,stepNumber:r,className:a}=e;const s=(0,n.useRef)(null),{0:o,1:i}=(0,n.useState)("w-[100%]");(0,n.useEffect)((()=>{if(!s.current||!window)return;const e=s.current.getBoundingClientRect().bottom;window.innerHeight>e&&i("w-0")}),[l]);const{html:m,frontmatter:{title:d,image:{publicURL:u}}}=t;return n.createElement("div",{className:"workflow-step relative md:w-1/2 flex flex-row items-center h-min my-20 first:mt-36 md:-my-2 md:first:mt-0 md:last:mb-0 text-secondary-100 z-10 md:z-0 "+a,ref:s},n.createElement("div",{className:"hidden md:block cover absolute -right-6 -top-2 -bottom-2 z-10 bg-secondary-100 transition-all duration-1000 "+o}),n.createElement("p",{className:"step-number absolute rounded-full h-12 w-12 flex items-center justify-center bg-main-100 text-secondary-100 font-extrabold text-2xl -translate-x-1/2 -translate-y-[120%] md:translate-x-full z-30 top-0 md:top-auto left-1/2 md:left-auto md:translate-y-0"},r),n.createElement(c(),{className:"hidden md:block basis-1/6"}),n.createElement("div",{className:"md:basis-5/6 flex flex-row justify-around h-min rounded-2xl p-10 bg-main-100 text-secondary-100"},n.createElement("img",{src:u,alt:d+" logo",className:"basis-1/6 mr-7 invert"}),n.createElement("div",{className:"flex flex-col pb-4 basis-4/6"},n.createElement("h4",{className:"font-extrabold text-2xl pb-6"},d),n.createElement("div",{className:"text-xl",dangerouslySetInnerHTML:{__html:m}}))))},m=l(216);var d=e=>{let{reason:{frontmatter:{title:t},html:l},className:r}=e;return n.createElement("div",{className:"why-us-card relative flex flex-col basis-5/12 text-secondary-100 p-10 cursor-pointer "+r},n.createElement("h6",{className:"text-center w-full text-2xl font-bold pb-6"},t),n.createElement("div",{className:"text-xl",dangerouslySetInnerHTML:{__html:l}}),n.createElement("div",{className:"line w-1 h-0 bg-secondary-100 absolute top-1/2 left-0 -translate-y-1/2 transition-all duration-500"}))};var u=()=>{var e,t;const l=(0,r.useStaticQuery)(f);let a=null!=l&&null!==(e=l.allMarkdownRemark)&&void 0!==e&&null!==(t=e.nodes)&&void 0!==t&&t.length?l.allMarkdownRemark.nodes:null;return n.createElement(n.Fragment,null,a?n.createElement(m.Z,{title:"why us",className:"bg-main-100 text-secondary-100 py-32"},n.createElement("div",{className:"flex flex-wrap flex-col sm:flex-row justify-around items-stretch"},a.map((e=>n.createElement(d,{key:e.id,reason:e}))))):null)};const f="2239467241";var w=()=>{var e,t;const l=(0,n.useRef)(!0),{0:o,1:c}=(0,n.useState)(!1),m=()=>{c((e=>!e))};(0,n.useEffect)((()=>{if(l.current&&window)return l.current=!1,window.addEventListener("scroll",m),()=>window.removeEventListener("scroll",m)}),[]);const d=(0,r.useStaticQuery)(x);let f=null!=d&&null!==(e=d.allMarkdownRemark)&&void 0!==e&&null!==(t=e.nodes)&&void 0!==t&&t.length?d.allMarkdownRemark.nodes:null;return n.createElement(n.Fragment,null,n.createElement(a.Z,{heightClass:"h-136",title:"how & why",text:"solid reasons to choose us to go through app dev process"}),n.createElement("div",{className:"bg-secondary-100"},n.createElement(s.Z,{className:"flex-col items-start p-6 md:py-24 relative transition-all duration-1000"},f?f.map(((e,t)=>n.createElement(i,{key:e.id,step:e,className:"md:even:translate-x-full md:odd:flex-row-reverse md:-ms-6 md:odd:ms-6",scroll:o,stepNumber:t+1}))):null,n.createElement("div",{className:"absolute left-1/2 top-0 bottom-0 border-r-8 border-solid border main-100 -translate-x-1/2"})),n.createElement(u,null)))};const h=()=>n.createElement("title",null,"CodeCave Workflow"),x="4195958887"},4471:function(e,t,l){var n=l(7294);function r(e){return n.createElement("svg",e,[n.createElement("line",{width:"800",height:"8",stroke:"white",strokeWidth:"8",strokeDasharray:"8 8",x1:"0",x2:"100%",y1:"4",y2:"4",key:0}),n.createElement("line",{width:"800",height:"8",stroke:"black",strokeWidth:"8",strokeDasharray:"8 8",x1:"8",x2:"100%",y1:"4",y2:"4",key:1})])}r.defaultProps={height:"8"},e.exports=r,r.default=r},4799:function(e,t,l){var n=l(7294);function r(e){return n.createElement("svg",e,n.createElement("line",{width:"800",height:"4",stroke:"black",strokeWidth:"4",x1:"0",x2:"100%",y1:"2",y2:"2"}))}r.defaultProps={height:"4"},e.exports=r,r.default=r}}]); -//# sourceMappingURL=component---src-pages-workflow-tsx-66c85385336912fb7c37.js.map \ No newline at end of file diff --git a/component---src-pages-workflow-tsx-66c85385336912fb7c37.js.map b/component---src-pages-workflow-tsx-66c85385336912fb7c37.js.map deleted file mode 100644 index a565e676..00000000 --- a/component---src-pages-workflow-tsx-66c85385336912fb7c37.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"component---src-pages-workflow-tsx-66c85385336912fb7c37.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/./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/pages/workflow.tsx","webpack://code-cave/./src/assets/common/border.svg","webpack://code-cave/./src/assets/workflow/bond.svg"],"sourcesContent":["import React from \"react\";\n\nconst Spinner = ({ className }: { className?: string }) => {\n return (\n <div\n className={`flex justify-center items-center h-full w-full ${className}`}\n >\n <svg\n aria-hidden=\"true\"\n className=\"w-8 h-8 mr-2 text-main-10 animate-spin dark:text-secondary-10 fill-main-100\"\n viewBox=\"0 0 100 101\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n 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\"\n fill=\"currentColor\"\n />\n <path\n 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\"\n fill=\"currentFill\"\n />\n </svg>\n </div>\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<boolean>(false);\n const isInitial = useRef<boolean>(true);\n const canvasRef = useRef<HTMLCanvasElement>(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);\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 window.addEventListener(\n \"mouseup\",\n () => window.removeEventListener(\"mousemove\", onMouseMoveHandler),\n { once: 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(\"touchstart\", (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 window.addEventListener(\"touchend\", () => {\n window.removeEventListener(\"touchmove\", onTouchMoveHandler);\n });\n });\n\n // UNMOUNT handler\n return () => {\n if (window) {\n window.removeEventListener(\"resize\", onResizeHandler);\n window.removeEventListener(\"mousemove\", onMouseMoveHandler);\n window.removeEventListener(\"touchmove\", onTouchMoveHandler);\n }\n if (canvas) {\n canvas.removeEventListener(\"wheel\", onWheelHandler);\n }\n babylonWorker.postMessage({ dispose: true });\n };\n }, []);\n\n return (\n <div className={`h-full w-full relative`}>\n <canvas\n ref={canvasRef}\n className={`bg-main-100 h-160 w-full flex items-center justify-center cursor-pointer`}\n />\n {!isBabylonReady ? (\n <Spinner className=\"absolute top-0 left-0 right-0 bottom-0 z-10\" />\n ) : null}\n </div>\n );\n};\n\nexport default Babylon;\n","import React, { useEffect, useState } from \"react\";\n\nimport Border from \"../../assets/common/border.svg\";\n\nimport ContentContainer from \"./contentContainer\";\nimport Babylon from \"../babylonjs/babylon\";\n\nconst Banner = ({\n heightClass = \"min-h-160\",\n title,\n text,\n className,\n borderBottom,\n borderTop,\n babylon,\n}: {\n heightClass?: string;\n title: string;\n text: string;\n className?: string;\n borderBottom?: boolean;\n borderTop?: boolean;\n babylon?: boolean;\n}) => {\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 <div\n className={`w-full flex items-center bg-main-100 relative overflow-hidden px-6 ${heightClass} ${className}`}\n >\n {borderTop ? (\n <Border className=\"absolute top-0 left-0 right-0 w-full\" />\n ) : null}\n <ContentContainer\n className={`h-full flex flex-col lg:flex-row py-12 lg:py-0 items-center text-secondary-100 flex-grow`}\n >\n <div className=\"flex flex-col overflow-hidden items-left h-full justify-center text-secondary-100 h-full w-full lg:w-1/2 bg-main-100\">\n <h2 className={`overflow-hidden mb-8 w-full`}>\n <span\n className={`inline-block font-['Rubik_Glitch'] text-5xl sm:text-6xl w-full text-center lg:text-start transition-all duration-1000 ${textTranslate}`}\n >\n {title.toUpperCase()}\n </span>\n </h2>\n <p className={`overflow-hidden w-full`}>\n <span\n className={`inline-block w-full text-3xl sm:text-4xl font-light text-center lg:text-start transition-all duration-1000 ${textTranslate}`}\n >\n {text.toUpperCase()}\n </span>\n </p>\n </div>\n {babylon ? (\n <div className=\"w-[85%] lg:w-1/2 lg:h-full flex\">\n <Babylon />\n </div>\n ) : null}\n </ContentContainer>\n {borderBottom ? (\n <Border className=\"absolute bottom-0 left-0 right-0 w-full\" />\n ) : null}\n </div>\n );\n};\n\nexport default Banner;\n","import React, { PropsWithChildren } from \"react\";\nimport { Link } from \"gatsby\";\n\nimport ContentContainer from \"./contentContainer\";\n\nconst TemplateSection = ({\n section,\n title,\n linkTitle,\n className,\n fullWidth,\n children,\n}: PropsWithChildren<{\n title: string;\n linkTitle?: string;\n section?: string;\n className?: string;\n fullWidth?: boolean;\n}>) => (\n <section className={`w-full py-48 px-6 ${className}`}>\n <ContentContainer className=\"flex-col items-center\" fullWidth={fullWidth}>\n <div className=\"flex justify-between w-full items-center pb-10 md:pb-16\">\n <h3 className=\"text-4xl md:text-5xl font-black w-full max-w-7xl mx-auto pr-8\">\n {title.toUpperCase()}\n </h3>\n {section ? (\n <Link\n to={`/${section}`}\n className=\"text-end text-2xl md:text-3xl text-secondary-10 hover:text-secondary-100 font-normal cursor-pointer whitespace-nowrap\"\n >\n {linkTitle ? linkTitle.toUpperCase() : \"SEE MORE\"} →\n </Link>\n ) : null}\n </div>\n {children}\n </ContentContainer>\n </section>\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<HTMLDivElement>(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: {\n title,\n image: { publicURL: imageURL },\n },\n } = step;\n\n return (\n <div\n className={`workflow-step relative md:w-1/2 flex flex-row items-center h-min my-20 first:mt-36 md:-my-2 md:first:mt-0 md:last:mb-0 text-secondary-100 z-10 md:z-0 ${className}`}\n ref={div}\n >\n <div\n className={`hidden md:block cover absolute -right-6 -top-2 -bottom-2 z-10 bg-secondary-100 transition-all duration-1000 ${coverWidth}`}\n />\n <p className=\"step-number absolute rounded-full h-12 w-12 flex items-center justify-center bg-main-100 text-secondary-100 font-extrabold text-2xl -translate-x-1/2 -translate-y-[120%] md:translate-x-full z-30 top-0 md:top-auto left-1/2 md:left-auto md:translate-y-0\">\n {stepNumber}\n </p>\n <Bond className=\"hidden md:block basis-1/6\" />\n <div\n className={`md:basis-5/6 flex flex-row justify-around h-min rounded-2xl p-10 bg-main-100 text-secondary-100`}\n >\n <img\n src={imageURL}\n alt={`${title} logo`}\n className=\"basis-1/6 mr-7 invert\"\n />\n <div className=\"flex flex-col pb-4 basis-4/6\">\n <h4 className=\"font-extrabold text-2xl pb-6\">{title}</h4>\n <div\n className={`text-xl`}\n dangerouslySetInnerHTML={{ __html: html }}\n />\n </div>\n </div>\n </div>\n );\n};\n\nexport default WorkflowStep;\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 <div\n className={`why-us-card relative flex flex-col basis-5/12 text-secondary-100 p-10 cursor-pointer ${className}`}\n >\n <h6 className=\"text-center w-full text-2xl font-bold pb-6\">{title}</h6>\n <div className={`text-xl`} dangerouslySetInnerHTML={{ __html: html }} />\n <div\n className={`line w-1 h-0 bg-secondary-100 absolute top-1/2 left-0 -translate-y-1/2 transition-all duration-500`}\n />\n </div>\n );\n};\n\nexport default WhyUsReason;\n","import React from \"react\";\n\nimport { graphql, useStaticQuery } from \"gatsby\";\nimport { IWhyUsReason } from \"../../types/whyUs.type\";\n\nimport TemplateSection from \"../common/templateSection\";\nimport WhyUsReason from \"./whyUsReason\";\n\nconst WhyUsSection = () => {\n const whyUsData = useStaticQuery(query);\n let whyUsReasons = (\n whyUsData?.allMarkdownRemark?.nodes?.length\n ? whyUsData.allMarkdownRemark.nodes\n : null\n ) as IWhyUsReason[] | null;\n\n return (\n <>\n {whyUsReasons ? (\n <TemplateSection\n title=\"why us\"\n className=\"bg-main-100 text-secondary-100 py-32\"\n >\n <div className=\"flex flex-wrap flex-col sm:flex-row justify-around items-stretch\">\n {whyUsReasons.map((reason) => (\n <WhyUsReason key={reason.id} reason={reason} />\n ))}\n </div>\n </TemplateSection>\n ) : null}\n </>\n );\n};\n\nexport default WhyUsSection;\n\nconst query = graphql`\n query {\n allMarkdownRemark(\n filter: { fields: { sourceName: { eq: \"whyUs\" } } }\n sort: { frontmatter: { order: ASC } }\n ) {\n nodes {\n id\n html\n frontmatter {\n title\n }\n }\n }\n }\n`;\n","import React, { useEffect, useRef, useState } from \"react\";\n\nimport { HeadFC, useStaticQuery } from \"gatsby\";\nimport { graphql } from \"gatsby\";\n\nimport { IWorkflowStep } 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\";\n\nconst Workflow = () => {\n const isInitial = useRef<boolean>(true);\n const [scroll, setScroll] = useState<boolean>(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 const workflowStepsData = useStaticQuery(query);\n let workflowSteps = (\n workflowStepsData?.allMarkdownRemark?.nodes?.length\n ? workflowStepsData.allMarkdownRemark.nodes\n : null\n ) as IWorkflowStep[] | null;\n\n return (\n <>\n <Banner\n heightClass=\"h-136\"\n title=\"how & why\"\n text=\"solid reasons to choose us to go through app dev process\"\n />\n <div className=\"bg-secondary-100\">\n <ContentContainer className=\"flex-col items-start p-6 md:py-24 relative transition-all duration-1000\">\n {workflowSteps\n ? workflowSteps.map((step, i) => (\n <WorkflowStep\n key={step.id}\n step={step}\n className=\"md:even:translate-x-full md:odd:flex-row-reverse md:-ms-6 md:odd:ms-6\"\n scroll={scroll}\n stepNumber={i + 1}\n />\n ))\n : null}\n <div className=\"absolute left-1/2 top-0 bottom-0 border-r-8 border-solid border main-100 -translate-x-1/2\" />\n </ContentContainer>\n <WhyUsSection />\n </div>\n </>\n );\n};\n\nexport default Workflow;\n\nexport const Head: HeadFC = () => <title>CodeCave Workflow</title>;\n\nconst query = graphql`\n query {\n allMarkdownRemark(\n filter: { fields: { sourceName: { eq: \"workflow\" } } }\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","var React = require('react');\n\nfunction Border (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"line\",{\"width\":\"800\",\"height\":\"8\",\"stroke\":\"white\",\"strokeWidth\":\"8\",\"strokeDasharray\":\"8 8\",\"x1\":\"0\",\"x2\":\"100%\",\"y1\":\"4\",\"y2\":\"4\",\"key\":0}),React.createElement(\"line\",{\"width\":\"800\",\"height\":\"8\",\"stroke\":\"black\",\"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","var React = require('react');\n\nfunction Bond (props) {\n return React.createElement(\"svg\",props,React.createElement(\"line\",{\"width\":\"800\",\"height\":\"4\",\"stroke\":\"black\",\"strokeWidth\":\"4\",\"x1\":\"0\",\"x2\":\"100%\",\"y1\":\"2\",\"y2\":\"2\"}));\n}\n\nBond.defaultProps = {\"height\":\"4\"};\n\nmodule.exports = Bond;\n\nBond.default = Bond;\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","onWheelHandler","e","preventDefault","wheel","deltaY","onMouseMoveHandler","x","movementX","y","movementY","removeEventListener","once","onTouchMoveHandler","touches","length","firstTouch","previousCoords","screenX","screenY","newX","newY","nestedTouchMoveHandler","touch","dispose","ref","Spinner","heightClass","title","text","borderBottom","borderTop","babylon","textTranslate","setTextTranslate","Border","ContentContainer","toUpperCase","section","linkTitle","fullWidth","children","Link","to","step","scroll","stepNumber","div","coverWidth","setCoverWidth","divBottom","getBoundingClientRect","bottom","innerHeight","html","frontmatter","image","publicURL","imageURL","Bond","src","alt","dangerouslySetInnerHTML","__html","reason","WhyUsSection","_whyUsData$allMarkdow","_whyUsData$allMarkdow2","whyUsData","useStaticQuery","query","whyUsReasons","allMarkdownRemark","nodes","TemplateSection","map","WhyUsReason","key","id","Workflow","_workflowStepsData$al","_workflowStepsData$al2","setScroll","scrollHandler","workflowStepsData","workflowSteps","Banner","i","WorkflowStep","Head","props","createElement","defaultProps","module","exports","default"],"sourceRoot":""} \ No newline at end of file diff --git a/component---src-pages-workflow-tsx-71ff73d9d1233d63de8e.js b/component---src-pages-workflow-tsx-71ff73d9d1233d63de8e.js new file mode 100644 index 00000000..6cc8bf26 --- /dev/null +++ b/component---src-pages-workflow-tsx-71ff73d9d1233d63de8e.js @@ -0,0 +1,2 @@ +(self.webpackChunkcode_cave=self.webpackChunkcode_cave||[]).push([[311],{1929:function(e,t,l){"use strict";l.d(t,{Z:function(){return i}});var n=l(7294),r=l(4471),a=l.n(r),s=l(1164);var o=e=>{let{className:t}=e;return n.createElement("div",{className:"flex justify-center items-center h-full w-full "+t},n.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"},n.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"}),n.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,n.useState)(!1),r=(0,n.useRef)(!0),a=(0,n.useRef)(null);return(0,n.useEffect)((()=>{if(!r.current||!a.current||"undefined"==typeof window)return;r.current=!1;const e=new Worker(new URL(l.p+l.u(475),l.b),{type:void 0});e.onmessage=e=>{let{data:l}=e;"ready"===l&&t(!0)};const n=a.current;n.width=n.clientWidth,n.height=n.clientHeight;const s=n.transferControlToOffscreen();e.postMessage({canvas:s},[s]);const o=()=>{e.postMessage({width:n.clientWidth,height:n.clientHeight})};window.addEventListener("resize",o);const c=t=>{t.preventDefault(),e.postMessage({wheel:t.deltaY})};n.addEventListener("wheel",c);const i=t=>{e.postMessage({x:t.movementX,y:t.movementY})};n.addEventListener("mousedown",(e=>{e.preventDefault(),window.addEventListener("mousemove",i),window.addEventListener("mouseup",(()=>window.removeEventListener("mousemove",i)),{once:!0})}));let m;return n.addEventListener("touchstart",(t=>{if(1!==t.touches.length)return;const l=t.touches[0];t.preventDefault();const n={x:l.screenX,y:l.screenY};m=t=>{const{newX:l,newY:r}=((t,l)=>{const n=t.touches[0];return e.postMessage({x:n.screenX-l.x,y:n.screenY-l.y}),{newX:n.screenX,newY:n.screenY}})(t,n);n.x=l,n.y=r},window.addEventListener("touchmove",m),window.addEventListener("touchend",(()=>{window.removeEventListener("touchmove",m)}))})),()=>{window&&(window.removeEventListener("resize",o),window.removeEventListener("mousemove",i),window.removeEventListener("touchmove",m),n&&n.removeEventListener("wheel",c),e.terminate())}}),[]),n.createElement("div",{className:"h-full w-full relative"},n.createElement("canvas",{ref:a,className:"bg-main-100 h-160 w-full flex items-center justify-center cursor-pointer"}),e?null:n.createElement(o,{className:"absolute top-0 left-0 right-0 bottom-0 z-10"}))};var i=e=>{let{heightClass:t="min-h-160",title:l,text:r,className:o,borderBottom:i,borderTop:m,babylon:d}=e;const{0:u,1:f}=(0,n.useState)("translate-y-full");return(0,n.useEffect)((()=>{f("translate-y-0")}),[]),n.createElement("div",{className:"w-full flex items-center bg-main-100 relative overflow-hidden px-6 "+t+" "+o},m?n.createElement(a(),{className:"absolute top-0 left-0 right-0 w-full"}):null,n.createElement(s.Z,{className:"h-full flex flex-col lg:flex-row py-12 lg:py-0 items-center text-secondary-100 flex-grow"},n.createElement("div",{className:"flex flex-col overflow-hidden items-left h-full justify-center text-secondary-100 h-full w-full lg:w-1/2 bg-main-100"},n.createElement("h2",{className:"overflow-hidden mb-8 w-full"},n.createElement("span",{className:"inline-block font-['Rubik_Glitch'] text-5xl sm:text-6xl w-full text-center lg:text-start transition-all duration-1000 "+u},l.toUpperCase())),n.createElement("p",{className:"overflow-hidden w-full"},n.createElement("span",{className:"inline-block w-full text-3xl sm:text-4xl font-light text-center lg:text-start transition-all duration-1000 "+u},r.toUpperCase()))),d?n.createElement("div",{className:"w-[85%] lg:w-1/2 lg:h-full flex"},n.createElement(c,null)):null),i?n.createElement(a(),{className:"absolute bottom-0 left-0 right-0 w-full"}):null)}},216:function(e,t,l){"use strict";var n=l(7294),r=l(1883),a=l(1164);t.Z=e=>{let{section:t,title:l,linkTitle:s,className:o,fullWidth:c,children:i}=e;return n.createElement("section",{className:"w-full py-48 px-6 "+o},n.createElement(a.Z,{className:"flex-col items-center",fullWidth:c},n.createElement("div",{className:"flex justify-between w-full items-center pb-10 md:pb-16"},n.createElement("h3",{className:"text-4xl md:text-5xl font-black w-full max-w-7xl mx-auto pr-8"},l.toUpperCase()),t?n.createElement(r.Link,{to:"/"+t,className:"text-end text-2xl md:text-3xl text-secondary-10 hover:text-secondary-100 font-normal cursor-pointer whitespace-nowrap"},s?s.toUpperCase():"SEE MORE"," →"):null),i))}},2891:function(e,t,l){"use strict";l.r(t),l.d(t,{Head:function(){return h},default:function(){return w}});var n=l(7294),r=l(1883),a=l(1929),s=l(1164),o=l(4799),c=l.n(o);var i=e=>{let{step:t,scroll:l,stepNumber:r,className:a}=e;const s=(0,n.useRef)(null),{0:o,1:i}=(0,n.useState)("w-[100%]");(0,n.useEffect)((()=>{if(!s.current||!window)return;const e=s.current.getBoundingClientRect().bottom;window.innerHeight>e&&i("w-0")}),[l]);const{html:m,frontmatter:{title:d,image:{publicURL:u}}}=t;return n.createElement("div",{className:"workflow-step relative md:w-1/2 flex flex-row items-center h-min my-20 first:mt-36 md:-my-2 md:first:mt-0 md:last:mb-0 text-secondary-100 z-10 md:z-0 "+a,ref:s},n.createElement("div",{className:"hidden md:block cover absolute -right-6 -top-2 -bottom-2 z-10 bg-secondary-100 transition-all duration-1000 "+o}),n.createElement("p",{className:"step-number absolute rounded-full h-12 w-12 flex items-center justify-center bg-main-100 text-secondary-100 font-extrabold text-2xl -translate-x-1/2 -translate-y-[120%] md:translate-x-full z-30 top-0 md:top-auto left-1/2 md:left-auto md:translate-y-0"},r),n.createElement(c(),{className:"hidden md:block basis-1/6"}),n.createElement("div",{className:"md:basis-5/6 flex flex-row justify-around h-min rounded-2xl p-10 bg-main-100 text-secondary-100"},n.createElement("img",{src:u,alt:d+" logo",className:"basis-1/6 mr-7 invert"}),n.createElement("div",{className:"flex flex-col pb-4 basis-4/6"},n.createElement("h4",{className:"font-extrabold text-2xl pb-6"},d),n.createElement("div",{className:"text-xl",dangerouslySetInnerHTML:{__html:m}}))))},m=l(216);var d=e=>{let{reason:{frontmatter:{title:t},html:l},className:r}=e;return n.createElement("div",{className:"why-us-card relative flex flex-col basis-5/12 text-secondary-100 p-10 cursor-pointer "+r},n.createElement("h6",{className:"text-center w-full text-2xl font-bold pb-6"},t),n.createElement("div",{className:"text-xl",dangerouslySetInnerHTML:{__html:l}}),n.createElement("div",{className:"line w-1 h-0 bg-secondary-100 absolute top-1/2 left-0 -translate-y-1/2 transition-all duration-500"}))};var u=()=>{var e,t;const l=(0,r.useStaticQuery)(f);let a=null!=l&&null!==(e=l.allMarkdownRemark)&&void 0!==e&&null!==(t=e.nodes)&&void 0!==t&&t.length?l.allMarkdownRemark.nodes:null;return n.createElement(n.Fragment,null,a?n.createElement(m.Z,{title:"why us",className:"bg-main-100 text-secondary-100 py-32"},n.createElement("div",{className:"flex flex-wrap flex-col sm:flex-row justify-around items-stretch"},a.map((e=>n.createElement(d,{key:e.id,reason:e}))))):null)};const f="2239467241";var w=()=>{var e,t;const l=(0,n.useRef)(!0),{0:o,1:c}=(0,n.useState)(!1),m=()=>{c((e=>!e))};(0,n.useEffect)((()=>{if(l.current&&window)return l.current=!1,window.addEventListener("scroll",m),()=>window.removeEventListener("scroll",m)}),[]);const d=(0,r.useStaticQuery)(x);let f=null!=d&&null!==(e=d.allMarkdownRemark)&&void 0!==e&&null!==(t=e.nodes)&&void 0!==t&&t.length?d.allMarkdownRemark.nodes:null;return n.createElement(n.Fragment,null,n.createElement(a.Z,{heightClass:"h-136",title:"how & why",text:"solid reasons to choose us to go through app dev process"}),n.createElement("div",{className:"bg-secondary-100"},n.createElement(s.Z,{className:"flex-col items-start p-6 md:py-24 relative transition-all duration-1000"},f?f.map(((e,t)=>n.createElement(i,{key:e.id,step:e,className:"md:even:translate-x-full md:odd:flex-row-reverse md:-ms-6 md:odd:ms-6",scroll:o,stepNumber:t+1}))):null,n.createElement("div",{className:"absolute left-1/2 top-0 bottom-0 border-r-8 border-solid border main-100 -translate-x-1/2"})),n.createElement(u,null)))};const h=()=>n.createElement("title",null,"CodeCave Workflow"),x="4195958887"},4471:function(e,t,l){var n=l(7294);function r(e){return n.createElement("svg",e,[n.createElement("line",{width:"800",height:"8",stroke:"white",strokeWidth:"8",strokeDasharray:"8 8",x1:"0",x2:"100%",y1:"4",y2:"4",key:0}),n.createElement("line",{width:"800",height:"8",stroke:"black",strokeWidth:"8",strokeDasharray:"8 8",x1:"8",x2:"100%",y1:"4",y2:"4",key:1})])}r.defaultProps={height:"8"},e.exports=r,r.default=r},4799:function(e,t,l){var n=l(7294);function r(e){return n.createElement("svg",e,n.createElement("line",{width:"800",height:"4",stroke:"black",strokeWidth:"4",x1:"0",x2:"100%",y1:"2",y2:"2"}))}r.defaultProps={height:"4"},e.exports=r,r.default=r}}]); +//# sourceMappingURL=component---src-pages-workflow-tsx-71ff73d9d1233d63de8e.js.map \ No newline at end of file diff --git a/component---src-pages-workflow-tsx-71ff73d9d1233d63de8e.js.map b/component---src-pages-workflow-tsx-71ff73d9d1233d63de8e.js.map new file mode 100644 index 00000000..4012201d --- /dev/null +++ b/component---src-pages-workflow-tsx-71ff73d9d1233d63de8e.js.map @@ -0,0 +1 @@ +{"version":3,"file":"component---src-pages-workflow-tsx-71ff73d9d1233d63de8e.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/./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/pages/workflow.tsx","webpack://code-cave/./src/assets/common/border.svg","webpack://code-cave/./src/assets/workflow/bond.svg"],"sourcesContent":["import React from \"react\";\n\nconst Spinner = ({ className }: { className?: string }) => {\n return (\n <div\n className={`flex justify-center items-center h-full w-full ${className}`}\n >\n <svg\n aria-hidden=\"true\"\n className=\"w-8 h-8 mr-2 text-main-10 animate-spin dark:text-secondary-10 fill-main-100\"\n viewBox=\"0 0 100 101\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n 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\"\n fill=\"currentColor\"\n />\n <path\n 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\"\n fill=\"currentFill\"\n />\n </svg>\n </div>\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<boolean>(false);\n const isInitial = useRef<boolean>(true);\n const canvasRef = useRef<HTMLCanvasElement>(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);\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 window.addEventListener(\n \"mouseup\",\n () => window.removeEventListener(\"mousemove\", onMouseMoveHandler),\n { once: 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(\"touchstart\", (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 window.addEventListener(\"touchend\", () => {\n window.removeEventListener(\"touchmove\", onTouchMoveHandler);\n });\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 <div className={`h-full w-full relative`}>\n <canvas\n ref={canvasRef}\n className={`bg-main-100 h-160 w-full flex items-center justify-center cursor-pointer`}\n />\n {!isBabylonReady ? (\n <Spinner className=\"absolute top-0 left-0 right-0 bottom-0 z-10\" />\n ) : null}\n </div>\n );\n};\n\nexport default Babylon;\n","import React, { useEffect, useState } from \"react\";\n\nimport Border from \"../../assets/common/border.svg\";\n\nimport ContentContainer from \"./contentContainer\";\nimport Babylon from \"../babylonjs/babylon\";\n\nconst Banner = ({\n heightClass = \"min-h-160\",\n title,\n text,\n className,\n borderBottom,\n borderTop,\n babylon,\n}: {\n heightClass?: string;\n title: string;\n text: string;\n className?: string;\n borderBottom?: boolean;\n borderTop?: boolean;\n babylon?: boolean;\n}) => {\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 <div\n className={`w-full flex items-center bg-main-100 relative overflow-hidden px-6 ${heightClass} ${className}`}\n >\n {borderTop ? (\n <Border className=\"absolute top-0 left-0 right-0 w-full\" />\n ) : null}\n <ContentContainer\n className={`h-full flex flex-col lg:flex-row py-12 lg:py-0 items-center text-secondary-100 flex-grow`}\n >\n <div className=\"flex flex-col overflow-hidden items-left h-full justify-center text-secondary-100 h-full w-full lg:w-1/2 bg-main-100\">\n <h2 className={`overflow-hidden mb-8 w-full`}>\n <span\n className={`inline-block font-['Rubik_Glitch'] text-5xl sm:text-6xl w-full text-center lg:text-start transition-all duration-1000 ${textTranslate}`}\n >\n {title.toUpperCase()}\n </span>\n </h2>\n <p className={`overflow-hidden w-full`}>\n <span\n className={`inline-block w-full text-3xl sm:text-4xl font-light text-center lg:text-start transition-all duration-1000 ${textTranslate}`}\n >\n {text.toUpperCase()}\n </span>\n </p>\n </div>\n {babylon ? (\n <div className=\"w-[85%] lg:w-1/2 lg:h-full flex\">\n <Babylon />\n </div>\n ) : null}\n </ContentContainer>\n {borderBottom ? (\n <Border className=\"absolute bottom-0 left-0 right-0 w-full\" />\n ) : null}\n </div>\n );\n};\n\nexport default Banner;\n","import React, { PropsWithChildren } from \"react\";\nimport { Link } from \"gatsby\";\n\nimport ContentContainer from \"./contentContainer\";\n\nconst TemplateSection = ({\n section,\n title,\n linkTitle,\n className,\n fullWidth,\n children,\n}: PropsWithChildren<{\n title: string;\n linkTitle?: string;\n section?: string;\n className?: string;\n fullWidth?: boolean;\n}>) => (\n <section className={`w-full py-48 px-6 ${className}`}>\n <ContentContainer className=\"flex-col items-center\" fullWidth={fullWidth}>\n <div className=\"flex justify-between w-full items-center pb-10 md:pb-16\">\n <h3 className=\"text-4xl md:text-5xl font-black w-full max-w-7xl mx-auto pr-8\">\n {title.toUpperCase()}\n </h3>\n {section ? (\n <Link\n to={`/${section}`}\n className=\"text-end text-2xl md:text-3xl text-secondary-10 hover:text-secondary-100 font-normal cursor-pointer whitespace-nowrap\"\n >\n {linkTitle ? linkTitle.toUpperCase() : \"SEE MORE\"} →\n </Link>\n ) : null}\n </div>\n {children}\n </ContentContainer>\n </section>\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<HTMLDivElement>(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: {\n title,\n image: { publicURL: imageURL },\n },\n } = step;\n\n return (\n <div\n className={`workflow-step relative md:w-1/2 flex flex-row items-center h-min my-20 first:mt-36 md:-my-2 md:first:mt-0 md:last:mb-0 text-secondary-100 z-10 md:z-0 ${className}`}\n ref={div}\n >\n <div\n className={`hidden md:block cover absolute -right-6 -top-2 -bottom-2 z-10 bg-secondary-100 transition-all duration-1000 ${coverWidth}`}\n />\n <p className=\"step-number absolute rounded-full h-12 w-12 flex items-center justify-center bg-main-100 text-secondary-100 font-extrabold text-2xl -translate-x-1/2 -translate-y-[120%] md:translate-x-full z-30 top-0 md:top-auto left-1/2 md:left-auto md:translate-y-0\">\n {stepNumber}\n </p>\n <Bond className=\"hidden md:block basis-1/6\" />\n <div\n className={`md:basis-5/6 flex flex-row justify-around h-min rounded-2xl p-10 bg-main-100 text-secondary-100`}\n >\n <img\n src={imageURL}\n alt={`${title} logo`}\n className=\"basis-1/6 mr-7 invert\"\n />\n <div className=\"flex flex-col pb-4 basis-4/6\">\n <h4 className=\"font-extrabold text-2xl pb-6\">{title}</h4>\n <div\n className={`text-xl`}\n dangerouslySetInnerHTML={{ __html: html }}\n />\n </div>\n </div>\n </div>\n );\n};\n\nexport default WorkflowStep;\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 <div\n className={`why-us-card relative flex flex-col basis-5/12 text-secondary-100 p-10 cursor-pointer ${className}`}\n >\n <h6 className=\"text-center w-full text-2xl font-bold pb-6\">{title}</h6>\n <div className={`text-xl`} dangerouslySetInnerHTML={{ __html: html }} />\n <div\n className={`line w-1 h-0 bg-secondary-100 absolute top-1/2 left-0 -translate-y-1/2 transition-all duration-500`}\n />\n </div>\n );\n};\n\nexport default WhyUsReason;\n","import React from \"react\";\n\nimport { graphql, useStaticQuery } from \"gatsby\";\nimport { IWhyUsReason } from \"../../types/whyUs.type\";\n\nimport TemplateSection from \"../common/templateSection\";\nimport WhyUsReason from \"./whyUsReason\";\n\nconst WhyUsSection = () => {\n const whyUsData = useStaticQuery(query);\n let whyUsReasons = (\n whyUsData?.allMarkdownRemark?.nodes?.length\n ? whyUsData.allMarkdownRemark.nodes\n : null\n ) as IWhyUsReason[] | null;\n\n return (\n <>\n {whyUsReasons ? (\n <TemplateSection\n title=\"why us\"\n className=\"bg-main-100 text-secondary-100 py-32\"\n >\n <div className=\"flex flex-wrap flex-col sm:flex-row justify-around items-stretch\">\n {whyUsReasons.map((reason) => (\n <WhyUsReason key={reason.id} reason={reason} />\n ))}\n </div>\n </TemplateSection>\n ) : null}\n </>\n );\n};\n\nexport default WhyUsSection;\n\nconst query = graphql`\n query {\n allMarkdownRemark(\n filter: { fields: { sourceName: { eq: \"whyUs\" } } }\n sort: { frontmatter: { order: ASC } }\n ) {\n nodes {\n id\n html\n frontmatter {\n title\n }\n }\n }\n }\n`;\n","import React, { useEffect, useRef, useState } from \"react\";\n\nimport { HeadFC, useStaticQuery } from \"gatsby\";\nimport { graphql } from \"gatsby\";\n\nimport { IWorkflowStep } 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\";\n\nconst Workflow = () => {\n const isInitial = useRef<boolean>(true);\n const [scroll, setScroll] = useState<boolean>(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 const workflowStepsData = useStaticQuery(query);\n let workflowSteps = (\n workflowStepsData?.allMarkdownRemark?.nodes?.length\n ? workflowStepsData.allMarkdownRemark.nodes\n : null\n ) as IWorkflowStep[] | null;\n\n return (\n <>\n <Banner\n heightClass=\"h-136\"\n title=\"how & why\"\n text=\"solid reasons to choose us to go through app dev process\"\n />\n <div className=\"bg-secondary-100\">\n <ContentContainer className=\"flex-col items-start p-6 md:py-24 relative transition-all duration-1000\">\n {workflowSteps\n ? workflowSteps.map((step, i) => (\n <WorkflowStep\n key={step.id}\n step={step}\n className=\"md:even:translate-x-full md:odd:flex-row-reverse md:-ms-6 md:odd:ms-6\"\n scroll={scroll}\n stepNumber={i + 1}\n />\n ))\n : null}\n <div className=\"absolute left-1/2 top-0 bottom-0 border-r-8 border-solid border main-100 -translate-x-1/2\" />\n </ContentContainer>\n <WhyUsSection />\n </div>\n </>\n );\n};\n\nexport default Workflow;\n\nexport const Head: HeadFC = () => <title>CodeCave Workflow</title>;\n\nconst query = graphql`\n query {\n allMarkdownRemark(\n filter: { fields: { sourceName: { eq: \"workflow\" } } }\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","var React = require('react');\n\nfunction Border (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"line\",{\"width\":\"800\",\"height\":\"8\",\"stroke\":\"white\",\"strokeWidth\":\"8\",\"strokeDasharray\":\"8 8\",\"x1\":\"0\",\"x2\":\"100%\",\"y1\":\"4\",\"y2\":\"4\",\"key\":0}),React.createElement(\"line\",{\"width\":\"800\",\"height\":\"8\",\"stroke\":\"black\",\"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","var React = require('react');\n\nfunction Bond (props) {\n return React.createElement(\"svg\",props,React.createElement(\"line\",{\"width\":\"800\",\"height\":\"4\",\"stroke\":\"black\",\"strokeWidth\":\"4\",\"x1\":\"0\",\"x2\":\"100%\",\"y1\":\"2\",\"y2\":\"2\"}));\n}\n\nBond.defaultProps = {\"height\":\"4\"};\n\nmodule.exports = Bond;\n\nBond.default = Bond;\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","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","text","borderBottom","borderTop","babylon","textTranslate","setTextTranslate","Border","ContentContainer","toUpperCase","section","linkTitle","fullWidth","children","Link","to","step","scroll","stepNumber","div","coverWidth","setCoverWidth","divBottom","getBoundingClientRect","bottom","innerHeight","html","frontmatter","image","publicURL","imageURL","Bond","src","alt","dangerouslySetInnerHTML","__html","reason","WhyUsSection","_whyUsData$allMarkdow","_whyUsData$allMarkdow2","whyUsData","useStaticQuery","query","whyUsReasons","allMarkdownRemark","nodes","TemplateSection","map","WhyUsReason","key","id","Workflow","_workflowStepsData$al","_workflowStepsData$al2","setScroll","scrollHandler","workflowStepsData","workflowSteps","Banner","i","WorkflowStep","Head","props","createElement","defaultProps","module","exports","default"],"sourceRoot":""} \ No newline at end of file diff --git a/index.html b/index.html index 2f5abdb5..e5964af6 100644 --- a/index.html +++ b/index.html @@ -3,14 +3,14 @@ ! 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}}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-y-0{bottom:0;top:0}.-bottom-2{bottom:-.5rem}.-right-6{right:-1.5rem}.-top-2{top:-.5rem}.bottom-0{bottom:0}.bottom-1{bottom:.25rem}.bottom-\[5\%\]{bottom:5%}.left-0{left:0}.left-1\/2{left:50%}.left-6{left:1.5rem}.right-0{right:0}.right-6{right:1.5rem}.right-\[2\%\]{right:2%}.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}.z-\[1\]{z-index:1}.m-2{margin:.5rem}.m-4{margin:1rem}.mx-0{margin-left:0;margin-right:0}.mx-12{margin-left:3rem;margin-right:3rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.mx-\[-1px\]{margin-left:-1px;margin-right:-1px}.mx-auto{margin-left:auto;margin-right:auto}.my-10{margin-bottom:2.5rem;margin-top:2.5rem}.my-16{margin-bottom:4rem;margin-top:4rem}.my-20{margin-bottom:5rem;margin-top:5rem}.mb-12{margin-bottom:3rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mr-10{margin-right:2.5rem}.mr-2{margin-right:.5rem}.mr-6{margin-right:1.5rem}.mr-7{margin-right:1.75rem}.mt-16{margin-top:4rem}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.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-136{height:34rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-160{height:40rem}.h-2\/3{height:66.666667%}.h-20{height:5rem}.h-24{height:6rem}.h-28{height:7rem}.h-32{height:8rem}.h-36{height:9rem}.h-8{height:2rem}.h-96{height:24rem}.h-full{height:100%}.h-min{height:-moz-min-content;height:min-content}.min-h-160{min-height:40rem}.min-h-96{min-height:24rem}.min-h-\[8\.5rem\]{min-height:8.5rem}.w-0{width:0}.w-1{width:.25rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2\/3{width:66.666667%}.w-32{width:8rem}.w-40{width:10rem}.w-56{width:14rem}.w-64{width:16rem}.w-8{width:2rem}.w-\[100\%\]{width:100%}.w-\[352px\]{width:352px}.w-\[85\%\]{width:85%}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.min-w-10{min-width:2.5rem}.max-w-6xl{max-width:72rem}.max-w-7xl{max-width:80rem}.flex-1{flex:1 1 0%}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.basis-1\/2{flex-basis:50%}.basis-1\/3{flex-basis:33.333333%}.basis-1\/4{flex-basis:25%}.basis-1\/5{flex-basis:20%}.basis-1\/6{flex-basis:16.666667%}.basis-4\/6{flex-basis:66.666667%}.basis-5\/12{flex-basis:41.666667%}.basis-\[48\%\]{flex-basis:48%}.basis-full{flex-basis:100%}.-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%;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-manipulation{touch-action:manipulation}.resize{resize:both}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.columns-1{-moz-columns:1;column-count:1}.break-inside-avoid{-moz-column-break-inside:avoid;break-inside:avoid}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.content-center{align-content:center}.items-start{align-items:flex-start}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.overflow-hidden{overflow:hidden}.whitespace-nowrap{white-space:nowrap}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-t-2xl{border-top-left-radius:1rem;border-top-right-radius:1rem}.border{border-width:1px}.border-2{border-width:2px}.border-\[3px\]{border-width:3px}.border-b-2{border-bottom-width:2px}.border-b-4,.border-b-\[4px\]{border-bottom-width:4px}.border-r-8{border-right-width:8px}.border-t-4{border-top-width:4px}.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(0 0 0/var(--tw-border-opacity))}.border-secondary-100{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity))}.border-secondary-30{--tw-border-opacity:1;border-color:rgb(231 231 231/var(--tw-border-opacity))}.bg-main-100{--tw-bg-opacity:1;background-color:rgb(0 0 0/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(255 255 255/var(--tw-bg-opacity))}.bg-secondary-70{--tw-bg-opacity:1;background-color:rgb(245 245 245/var(--tw-bg-opacity))}.fill-main-100{fill:#000}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-10{padding:2.5rem}.p-12{padding:3rem}.p-2{padding:.5rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-0{padding-left:0;padding-right:0}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-12{padding-bottom:3rem;padding-top:3rem}.py-14{padding-bottom:3.5rem;padding-top:3.5rem}.py-20{padding-bottom:5rem;padding-top:5rem}.py-32{padding-bottom:8rem;padding-top:8rem}.py-48{padding-bottom:12rem;padding-top:12rem}.pb-10{padding-bottom:2.5rem}.pb-24{padding-bottom:6rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-5{padding-bottom:1.25rem}.pb-6{padding-bottom:1.5rem}.pb-9{padding-bottom:2.25rem}.pl-4{padding-left:1rem}.pr-11{padding-right:2.75rem}.pr-16{padding-right:4rem}.pr-8{padding-right:2rem}.pt-14{padding-top:3.5rem}.pt-2{padding-top:.5rem}.pt-6{padding-top:1.5rem}.text-center{text-align:center}.text-end{text-align:end}.font-\[\'Rubik_Glitch\'\]{font-family:Rubik Glitch}.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-5xl{font-size:3rem;line-height:1}.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}.font-black{font-weight:900}.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}.italic{font-style:italic}.leading-7{line-height:1.75rem}.leading-\[52px\]{line-height:52px}.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(0 0 0/var(--tw-text-opacity))}.text-main-70{--tw-text-opacity:1;color:rgb(61 61 61/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(255 255 255/var(--tw-text-opacity))}.text-secondary-30{--tw-text-opacity:1;color:rgb(231 231 231/var(--tw-text-opacity))}.underline{text-decoration-line:underline}.opacity-50{opacity:.5}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-main-100{--tw-shadow-color:#000;--tw-shadow:var(--tw-shadow-colored)}.brightness-0{--tw-brightness:brightness(0)}.brightness-0,.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)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.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}.after\:h-1:after{content:var(--tw-content);height:.25rem}.after\:h-1\.5:after{content:var(--tw-content);height:.375rem}.after\:w-full:after{content:var(--tw-content);width:100%}.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-main-100:after{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity));content:var(--tw-content)}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.first\:mt-0:first-child{margin-top:0}.first\:mt-36:first-child{margin-top:9rem}.hover\:bg-main-100:hover{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity))}.hover\:bg-main-70:hover{--tw-bg-opacity:1;background-color:rgb(61 61 61/var(--tw-bg-opacity))}.hover\:bg-secondary-100:hover{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.hover\:bg-secondary-30:hover{--tw-bg-opacity:1;background-color:rgb(231 231 231/var(--tw-bg-opacity))}.hover\:bg-secondary-70:hover{--tw-bg-opacity:1;background-color:rgb(245 245 245/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-100:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.hover\:outline-main-100:hover{outline-color:#000}.hover\:outline-secondary-100:hover{outline-color:#fff}.hover\:invert:hover{--tw-invert:invert(100%);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)}.disabled\:opacity-30:disabled{opacity:.3}@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-0{margin-bottom:0}.sm\:mt-0{margin-top:0}.sm\:inline{display:inline}.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:basis-2\/5{flex-basis:40%}.sm\:basis-3\/5{flex-basis:60%}.sm\:basis-5\/6{flex-basis:83.333333%}.sm\:flex-row{flex-direction:row}.sm\:items-stretch{align-items:stretch}.sm\:px-5{padding-left:1.25rem;padding-right:1.25rem}.sm\:pb-10{padding-bottom:2.5rem}.sm\:text-start{text-align:start}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-5xl{font-size:3rem;line-height:1}.sm\:text-6xl{font-size:3.75rem;line-height:1}.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\:m-12{margin:3rem}.md\:-my-2{margin-bottom:-.5rem;margin-top:-.5rem}.md\:mx-3{margin-left:.75rem;margin-right:.75rem}.md\:-ms-6{margin-inline-start:-1.5rem}.md\:block{display:block}.md\:flex{display:flex}.md\:w-1\/2{width:50%}.md\:w-\[400px\]{width:400px}.md\:basis-1\/3{flex-basis:33.333333%}.md\:basis-1\/4{flex-basis:25%}.md\:basis-3\/4{flex-basis:75%}.md\:basis-4\/6{flex-basis:66.666667%}.md\:basis-5\/6{flex-basis:83.333333%}.md\:basis-\[31\%\]{flex-basis:31%}.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\:columns-2{-moz-columns:2;column-count:2}.md\:flex-row{flex-direction:row}.md\:p-12{padding:3rem}.md\:px-40{padding-left:10rem;padding-right:10rem}.md\:px-7{padding-left:1.75rem;padding-right:1.75rem}.md\:py-24{padding-bottom:6rem;padding-top:6rem}.md\:pb-0{padding-bottom:0}.md\:pb-10{padding-bottom:2.5rem}.md\:pb-16{padding-bottom:4rem}.md\:pt-10{padding-top:2.5rem}.md\:text-start{text-align:start}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-6xl{font-size:3.75rem;line-height:1}.md\:leading-10{line-height:2.5rem}.md\:first\:mt-0:first-child{margin-top:0}.md\:last\:mb-0:last-child{margin-bottom:0}.md\:last\:flex:last-child{display:flex}.md\:odd\:ms-6:nth-child(odd){-webkit-margin-start:1.5rem;margin-inline-start:1.5rem}.md\:odd\:flex-row-reverse:nth-child(odd){flex-direction:row-reverse}.md\:even\:translate-x-full:nth-child(2n){--tw-translate-x:100%;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))}}@media (min-width:1024px){.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:h-full{height:100%}.lg\:w-1\/2{width:50%}.lg\:basis-1\/2{flex-basis:50%}.lg\:basis-2\/5{flex-basis:40%}.lg\:basis-4\/6{flex-basis:66.666667%}.lg\:flex-row{flex-direction:row}.lg\:justify-between{justify-content:space-between}.lg\:py-0{padding-bottom:0;padding-top:0}.lg\:text-start{text-align:start}}@media (min-width:1280px){.xl\:w-\[480px\]{width:480px}.xl\:basis-1\/3{flex-basis:33.333333%}.xl\:basis-2\/3{flex-basis:66.666667%}.xl\:basis-2\/5{flex-basis:40%}}@media (min-width:1900px){.\33xl\:w-\[576px\]{width:576px}.\33xl\:basis-1\/3{flex-basis:33.333333%}}@media (min-width:2200px){.\34xl\:basis-1\/4{flex-basis:25%}}*{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:Urbanist,Helvetica,Arial,sans-serif}div.single-post h3{font-size:1.875rem;font-weight:600;line-height:2.25rem;padding-bottom:2rem}div.single-post p{padding-bottom:3rem;text-align:justify;text-indent:2.5rem}div.single-post h4,div.single-post p{font-size:1.5rem;font-weight:500;line-height:2rem}div.single-post ul{padding-bottom:3rem;padding-left:1rem}div.single-post ul li{list-style-position:inside;list-style-type:disc}div.single-post ol{padding-bottom:.5rem;padding-left:1rem}div.single-post ol li{list-style-position:inside;list-style-type:decimal}div.single-post span.gatsby-resp-image-wrapper{margin:1.5rem!important;width:100%!important}div.single-post span.gatsby-resp-image-wrapper:nth-child(odd){float:left!important;margin-left:0!important}div.single-post span.gatsby-resp-image-wrapper:nth-child(2n){float:right!important;margin-right:0!important}@media (min-width:1024px){div.single-post span.gatsby-resp-image-wrapper{margin:3.5rem!important;width:50%!important}}div.single-post img{border-radius:1rem}div.single-post pre{--tw-bg-opacity:1;background-color:rgb(245 245 245/var(--tw-bg-opacity));font-size:1rem;line-height:1rem;padding:1.5rem;white-space:pre-wrap}div.service-preview{background:linear-gradient(#000 0 0) padding-box,linear-gradient(90deg,#fff 0 0) border-box}div.service-preview:hover{background:#000}div.service-preview p{padding-top:1.75rem}.gradient-border{background:linear-gradient(#fff 0 0) padding-box,linear-gradient(90deg,#fff,#000 50%,#fff) border-box}div.team-member:hover div.line{width:100%}div.applied-tech:hover div.line{height:100%}div.review-body p{padding-top:1.25rem}div.review-body p:first-child{padding-top:0}div.workflow-step:nth-child(odd) div.cover{left:-1.5rem}div.workflow-step:nth-child(2n) p.step-number{z-index:30}@media (min-width:768px){div.workflow-step:nth-child(2n) p.step-number{--tw-translate-x:-100%;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))}}div.why-us-card p{text-align:justify}div.why-us-card:hover div.line{height:100%}</style><style>.gatsby-image-wrapper{position:relative;overflow:hidden}.gatsby-image-wrapper picture.object-fit-polyfill{position:static!important}.gatsby-image-wrapper img{bottom:0;height:100%;left:0;margin:0;max-width:none;padding:0;position:absolute;right:0;top:0;width:100%;object-fit:cover}.gatsby-image-wrapper [data-main-image]{opacity:0;transform:translateZ(0);transition:opacity .25s linear;will-change:opacity}.gatsby-image-wrapper-constrained{display:inline-block;vertical-align:top}</style><noscript><style>.gatsby-image-wrapper noscript [data-main-image]{opacity:1!important}.gatsby-image-wrapper [data-placeholder-image]{opacity:0!important}</style></noscript><script type="module">const e="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;e&&document.body.addEventListener("load",(function(e){const t=e.target;if(void 0===t.dataset.mainImage)return;if(void 0===t.dataset.gatsbyImageSsr)return;let a=null,n=t;for(;null===a&&n;)void 0!==n.parentNode.dataset.gatsbyImageWrapper&&(a=n.parentNode),n=n.parentNode;const o=a.querySelector("[data-placeholder-image]"),r=new Image;r.src=t.currentSrc,r.decode().catch((()=>{})).then((()=>{t.style.opacity=1,o&&(o.style.opacity=0,o.style.transition="opacity 500ms linear")}))}),!0);</script><link rel="icon" href="/favicon-32x32.png?v=5756421ebf828bcb98a5197892727485" type="image/png"/><link rel="manifest" href="/manifest.webmanifest" crossorigin="anonymous"/><link rel="apple-touch-icon" sizes="48x48" href="/icons/icon-48x48.png?v=5756421ebf828bcb98a5197892727485"/><link rel="apple-touch-icon" sizes="72x72" href="/icons/icon-72x72.png?v=5756421ebf828bcb98a5197892727485"/><link rel="apple-touch-icon" sizes="96x96" href="/icons/icon-96x96.png?v=5756421ebf828bcb98a5197892727485"/><link rel="apple-touch-icon" sizes="144x144" href="/icons/icon-144x144.png?v=5756421ebf828bcb98a5197892727485"/><link rel="apple-touch-icon" sizes="192x192" href="/icons/icon-192x192.png?v=5756421ebf828bcb98a5197892727485"/><link rel="apple-touch-icon" sizes="256x256" href="/icons/icon-256x256.png?v=5756421ebf828bcb98a5197892727485"/><link rel="apple-touch-icon" sizes="384x384" href="/icons/icon-384x384.png?v=5756421ebf828bcb98a5197892727485"/><link rel="apple-touch-icon" sizes="512x512" href="/icons/icon-512x512.png?v=5756421ebf828bcb98a5197892727485"/><title data-gatsby-head="true">CodeCave</title></head><body><div id="___gatsby"><div style="outline:none" tabindex="-1" id="gatsby-focus-wrapper"><main class="min-h-screen" itemscope="" itemType="https://schema.org/LocalBusiness"><meta itemProp="sameAs" content="https://facebook.com/codecavepro"/><meta itemProp="sameAs" content="https://youtube.com/c/CodeCavePro"/><meta itemProp="sameAs" content="https://twitter.com/codecavepro"/><meta itemProp="sameAs" content="https://vk.com/codecavepro"/><meta itemProp="sameAs" content="https://github.com/CodeCavePro"/><meta itemProp="sameAs" content="https://instagram.com/codecave.pro"/><meta itemProp="sameAs" content="https://linkedin.com/company/codecavepro"/><meta itemProp="name" content="CodeCave"/><meta name="description" content="Outsourcing software and web development"/><meta property="og:image" content="/logo.svg"/><nav class="sticky top-0 z-50 bg-secondary-100 px-6"><div class="flex w-full max-w-7xl mx-auto undefined"><div class="w-full"><div class="mx-auto max-w-7xl w-full"><div class="relative flex h-20 items-center justify-between"><div class="relative inset-y-0 left-0 flex items-center lg:hidden"><button type="button" class="inline-flex items-center justify-center text-main-70 hover:bg-secondary-30" aria-controls="mobile-menu" aria-expanded="false"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 1024 1024" class="text-4xl " height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M904 160H120c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8zm0 624H120c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8zm0-312H120c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8z"></path></svg><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 1024 1024" class="text-4xl hidden" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M563.8 512l262.5-312.9c4.4-5.2.7-13.1-6.1-13.1h-79.8c-4.7 0-9.2 2.1-12.3 5.7L511.6 449.8 295.1 191.7c-3-3.6-7.5-5.7-12.3-5.7H203c-6.8 0-10.5 7.9-6.1 13.1L459.4 512 196.9 824.9A7.95 7.95 0 0 0 203 838h79.8c4.7 0 9.2-2.1 12.3-5.7l216.5-258.1 216.5 258.1c3 3.6 7.5 5.7 12.3 5.7h79.8c6.8 0 10.5-7.9 6.1-13.1L563.8 512z"></path></svg></button></div><div class="flex flex-1 items-center justify-center lg:justify-between"><a aria-current="page" class="" href="/"><svg class="w-64 object-contain" width="258" height="28" viewBox="0 0 258 28" fill="none"><path d="M67.3555 26.6954V8.61084V0.989258C67.3555 0.989258 80.9501 1.12298 86.0513 1.12298C87.7605 1.12298 89.4434 1.35697 91.0474 1.95868C93.7033 2.96152 95.3073 4.9672 95.5965 7.97572C95.9646 11.7865 95.9121 15.6642 95.6491 19.475C95.3598 23.7872 92.9407 26.2274 88.9438 26.6954H67.3555ZM75.3755 20.8789C76.3494 20.8789 77.3167 20.8844 78.2794 20.8899C80.67 20.9036 83.032 20.917 85.394 20.8455C86.8928 20.8121 87.8657 19.709 87.892 18.1044C87.9446 15.3633 87.9446 12.6222 87.892 9.88113C87.8657 8.37686 86.9454 7.24031 85.6043 7.20688C83.1844 7.13534 80.7644 7.14886 78.3254 7.16248C77.3456 7.16795 76.3627 7.17344 75.3755 7.17344V20.8789Z" fill="black"></path><path d="M67.3555 26.6954V8.61084V0.989258C67.3555 0.989258 80.9501 1.12298 86.0513 1.12298C87.7605 1.12298 89.4434 1.35697 91.0474 1.95868C93.7033 2.96152 95.3073 4.9672 95.5965 7.97572C95.9646 11.7865 95.9121 15.6642 95.6491 19.475C95.3598 23.7872 92.9407 26.2274 88.9438 26.6954H67.3555ZM75.3755 20.8789C76.3494 20.8789 77.3167 20.8844 78.2794 20.8899C80.67 20.9036 83.032 20.917 85.394 20.8455C86.8928 20.8121 87.8657 19.709 87.892 18.1044C87.9446 15.3633 87.9446 12.6222 87.892 9.88113C87.8657 8.37686 86.9454 7.24031 85.6043 7.20688C83.1844 7.13534 80.7644 7.14886 78.3254 7.16248C77.3456 7.16795 76.3627 7.17344 75.3755 7.17344V20.8789Z" stroke="url(#paint0_linear_805_210)"></path><path d="M37.7194 26.8624C36.2995 26.6284 35.0899 25.7593 34.0907 24.5559C33.7225 24.1213 33.4596 23.6868 33.3281 23.4193C32.8811 22.5836 32.6444 21.6142 32.5393 20.4442C32.1448 16.4663 32.2237 12.4884 32.4341 8.51042C32.697 3.73021 34.6429 1.45712 39.1394 1.18969C44.3984 0.888841 49.6837 0.721689 54.9428 1.32339C58.2823 1.72453 60.307 3.89735 60.5962 7.50758C60.9644 11.7864 60.9381 16.0986 60.5962 20.3774C60.4911 21.6811 60.2544 22.5836 59.9126 23.2522C59.9077 23.2584 59.8937 23.2842 59.8714 23.3256C59.7733 23.5069 59.514 23.9867 59.15 24.4222C57.7564 26.0602 55.4424 26.5616 54.8902 26.6284C52.0766 26.9961 46.5546 27.3638 37.7194 26.8624ZM52.9706 14.0929C52.9706 13.646 52.9736 13.2027 52.9765 12.7608C52.9823 11.8805 52.9881 11.0051 52.9706 10.115C52.918 8.24299 52.024 7.20673 50.2885 7.1733C47.7905 7.10644 45.2661 7.10644 42.7681 7.1733C41.0326 7.20673 40.1912 8.20957 40.1649 10.0147C40.1386 12.6555 40.1386 15.3297 40.1649 17.9706C40.1912 19.7422 41.0852 20.8119 42.7681 20.8454C45.3187 20.9122 47.8694 20.9122 50.42 20.8454C52.0503 20.8119 52.9443 19.7088 52.9706 17.9037C52.9882 17.0792 52.9823 16.2249 52.9765 15.3706C52.9736 14.9435 52.9706 14.5163 52.9706 14.0929Z" fill="black"></path><path d="M37.7194 26.8624C36.2995 26.6284 35.0899 25.7593 34.0907 24.5559C33.7225 24.1213 33.4596 23.6868 33.3281 23.4193C32.8811 22.5836 32.6444 21.6142 32.5393 20.4442C32.1448 16.4663 32.2237 12.4884 32.4341 8.51042C32.697 3.73021 34.6429 1.45712 39.1394 1.18969C44.3984 0.888841 49.6837 0.721689 54.9428 1.32339C58.2823 1.72453 60.307 3.89735 60.5962 7.50758C60.9644 11.7864 60.9381 16.0986 60.5962 20.3774C60.4911 21.6811 60.2544 22.5836 59.9126 23.2522C59.9077 23.2584 59.8937 23.2842 59.8714 23.3256C59.7733 23.5069 59.514 23.9867 59.15 24.4222C57.7564 26.0602 55.4424 26.5616 54.8902 26.6284C52.0766 26.9961 46.5546 27.3638 37.7194 26.8624ZM52.9706 14.0929C52.9706 13.646 52.9736 13.2027 52.9765 12.7608C52.9823 11.8805 52.9881 11.0051 52.9706 10.115C52.918 8.24299 52.024 7.20673 50.2885 7.1733C47.7905 7.10644 45.2661 7.10644 42.7681 7.1733C41.0326 7.20673 40.1912 8.20957 40.1649 10.0147C40.1386 12.6555 40.1386 15.3297 40.1649 17.9706C40.1912 19.7422 41.0852 20.8119 42.7681 20.8454C45.3187 20.9122 47.8694 20.9122 50.42 20.8454C52.0503 20.8119 52.9443 19.7088 52.9706 17.9037C52.9882 17.0792 52.9823 16.2249 52.9765 15.3706C52.9736 14.9435 52.9706 14.5163 52.9706 14.0929Z" stroke="url(#paint1_linear_805_210)"></path><path d="M253.421 20.8786C253.868 20.8786 254.184 20.9454 254.447 21.146C254.841 21.4134 254.999 21.9817 255.078 22.1154C255.367 22.9511 256.103 24.4888 257.287 26.929C257.076 26.929 256.892 26.929 256.761 26.929C256.603 26.929 238.012 26.929 228.967 26.929C228.967 26.7285 229.019 1.79116 229.019 1.18945C237.749 1.18945 246.4 1.18945 255.104 1.18945C255.104 3.12828 255.104 5.03367 255.104 7.07278C249.109 7.07278 242.982 7.07278 236.934 7.07278C236.934 7.67448 236.882 10.1147 236.882 10.683C241.431 10.683 245.875 10.683 250.371 10.683C250.371 12.7221 250.371 14.6275 250.371 16.6666C245.953 16.6666 241.51 16.6666 236.961 16.6666C236.961 18.104 236.961 19.508 236.961 20.8117" fill="black"></path><path d="M125.941 20.8786C126.388 20.8786 126.703 20.9454 126.966 21.146C127.361 21.4134 127.519 21.9817 127.597 22.1154C127.887 22.9511 128.623 24.4888 129.806 26.929C129.596 26.929 129.412 26.929 129.28 26.929C129.123 26.929 110.532 26.929 101.486 26.929C101.486 26.7285 101.539 1.79116 101.539 1.18945C110.269 1.18945 118.92 1.18945 127.624 1.18945C127.624 3.12828 127.624 5.03367 127.624 7.07278C121.628 7.07278 115.502 7.07278 109.454 7.07278C109.454 7.67448 109.401 10.1147 109.401 10.683C113.95 10.683 118.394 10.683 122.891 10.683C122.891 12.7221 122.891 14.6275 122.891 16.6666C118.473 16.6666 114.029 16.6666 109.48 16.6666C109.48 18.104 109.48 19.508 109.48 20.8117" fill="black"></path><path d="M101.486 26.929C101.513 20.0094 101.539 13.1233 101.539 6.20366C101.539 4.56569 101.539 2.92771 101.539 1.18945C110.269 1.18945 118.92 1.18945 127.65 1.18945C127.65 3.12828 127.65 5.0671 127.65 7.13964C121.602 7.13964 115.581 7.13964 109.506 7.13964C109.506 8.34305 109.506 9.41275 109.506 10.6496C113.924 10.6496 118.368 10.6496 122.891 10.6496C122.891 12.7221 122.891 14.661 122.891 16.7335C118.499 16.7335 114.055 16.7335 109.533 16.7335C109.533 18.1375 109.533 19.4412 109.533 20.7783C109.953 21.0457 110.453 20.912 110.9 20.912C115.949 20.912 121.024 20.9454 126.072 20.912C126.809 20.912 127.229 21.146 127.519 21.8814C128.123 23.4191 128.833 24.9234 129.438 26.3608C129.123 26.9625 128.492 26.3942 128.307 26.9625C119.341 26.929 110.427 26.929 101.486 26.929Z" fill="black"></path><path d="M162.52 26.9288C162.782 25.6585 163.466 24.5888 163.992 23.4857C167.253 16.399 170.566 9.34564 173.8 2.22547C174.195 1.35634 174.642 1.05548 175.536 1.0889C178.349 1.15576 181.163 1.12233 183.95 1.0889C184.529 1.0889 184.949 1.15576 185.265 1.82433C189.051 10.1145 192.89 18.3712 196.703 26.6279C196.73 26.6948 196.73 26.7951 196.756 26.8954C193.863 26.8954 190.971 26.8954 188.078 26.8954C187.526 25.5582 186.948 24.2546 186.448 22.9174C186.238 22.3492 185.896 22.2154 185.37 22.2154C181.557 22.2489 177.744 22.2489 173.932 22.2154C173.432 22.2154 173.064 22.3157 172.827 22.8506C172.249 24.2211 171.591 25.5248 170.96 26.8954C168.147 26.9288 165.333 26.9288 162.52 26.9288ZM179.848 6.87197C179.717 6.87197 179.533 6.87197 179.401 6.87197C178.086 9.94735 176.772 12.9893 175.43 16.1315C178.297 16.1315 180.979 16.1315 183.792 16.1315C182.425 12.9559 181.137 9.91393 179.848 6.87197Z" fill="black"></path><path d="M155.866 26.8957C150.37 26.8623 144.848 27.1966 139.352 26.9292C139.168 26.9292 138.984 26.8957 138.669 26.8289C138.511 26.7954 138.353 26.762 138.222 26.7286C137.275 26.4612 136.144 25.9597 135.04 24.6895C134.146 23.6198 133.594 22.4498 133.41 20.4775C133.041 16.5665 133.068 12.622 133.357 8.71089C133.699 3.89725 136.092 1.28986 140.562 1.18958C146.084 1.05587 151.843 1.05587 157.391 1.35672C158.127 1.39015 159.389 1.42358 159.232 2.02528C158.784 3.83039 158.39 5.60206 157.969 7.4406C153.683 7.4406 149.423 7.4406 145.19 7.4406C141.614 7.4406 141.114 7.97546 141.114 11.7528C141.114 13.7251 141.088 15.6973 141.14 17.6696C141.193 19.8424 141.956 20.6112 143.98 20.6447C148.582 20.6447 153.157 20.6781 157.759 20.6113C158.153 20.6113 158.469 20.6781 158.706 20.8118C159.047 21.0458 159.179 21.3801 159.232 21.5138C159.547 22.2158 160.31 25.2912 160.914 26.9626" fill="black"></path><path d="M194.18 1.12354C196.783 1.12354 199.412 1.12354 202.042 1.12354C202.647 1.12354 202.699 1.59152 202.831 1.99266C205.013 7.87599 207.59 13.6256 209.457 19.6761C209.536 19.9101 209.536 20.2444 209.852 20.3447C210.193 20.3447 210.193 20.0104 210.272 19.7764C212.087 13.6256 214.821 7.84257 217.057 1.89238C217.214 1.49124 217.319 1.15696 217.819 1.15696C220.396 1.19038 223.078 1.15696 225.734 1.15696C225.261 2.66122 224.735 3.53035 224.235 4.9009C221.211 12.1214 218.45 18.6733 215.347 25.6931C215.163 26.0943 215.032 26.5288 214.874 26.9634C211.561 26.9634 208.221 26.9634 204.908 26.9634C202.673 21.6483 200.412 16.2999 198.177 10.9848" fill="black"></path><path d="M23.4439 26.6953C17.9482 26.6619 12.4262 26.9962 6.93047 26.7288C6.7464 26.7288 6.56234 26.6953 6.24679 26.6285C6.08902 26.595 5.93126 26.5616 5.79978 26.5282C4.85315 26.2608 3.72246 25.7593 2.61806 24.4891C1.72402 23.4194 1.17182 22.2494 0.987753 20.2771C0.61962 16.3661 0.64592 12.4216 0.935167 8.51048C1.277 3.69684 3.66987 1.08945 8.14005 0.989167C13.662 0.855455 19.3944 0.822027 24.969 1.15631C25.7052 1.18974 26.9674 1.22316 26.8096 1.82487C26.3626 3.62998 25.9682 5.40167 25.5475 7.24021C21.2614 7.24021 17.0015 7.24021 12.768 7.24021C9.19186 7.24021 8.69225 7.77507 8.69225 11.5524C8.69225 13.5247 8.66596 15.4969 8.71855 17.4692C8.77114 19.642 9.5337 20.4109 11.5584 20.4443C16.1601 20.4443 20.7354 20.4777 25.3371 20.4109C25.7315 20.4109 26.0471 20.4777 26.2837 20.6114C26.6256 20.8454 26.7571 21.1797 26.8096 21.3134C27.1252 22.0154 27.8877 25.0908 28.4925 26.7622" fill="black"></path><defs><linearGradient id="paint0_linear_805_210" x1="81.6075" y1="0.989258" x2="81.6075" y2="26.6954" gradientUnits="userSpaceOnUse"><stop></stop><stop offset="1" stop-color="#B7B2F3" stop-opacity="0"></stop></linearGradient><linearGradient id="paint1_linear_805_210" x1="46.5612" y1="0.917969" x2="46.5612" y2="27.1068" gradientUnits="userSpaceOnUse"><stop></stop><stop offset="1" stop-color="#B7B2F3" stop-opacity="0"></stop></linearGradient></defs></svg></a><ul class="hidden lg:flex grow justify-evenly lg:basis-4/6" itemscope="" itemType="https://schema.org/SiteNavigationElement"><li class="mr-6"><a class="text-xl font-bold text-main-100 hover:text-main-10 false" href="/services/">SERVICES</a></li><li class="mr-6"><a class="text-xl font-bold text-main-100 hover:text-main-10 false" href="/workflow/">WORKFLOW</a></li><li class="mr-6"><a class="text-xl font-bold text-main-100 hover:text-main-10 false" href="/projects/">PROJECTS</a></li><li class="mr-6"><a class="text-xl font-bold text-main-100 hover:text-main-10 false" href="/blog/">BLOG</a></li></ul></div><div class="relative"><button class="flex min-h-10 min-w-10 m-2 items-center justify-center px-3 text-sm h-10 bg-main-100 text-secondary-100 border-secondary-100 hover:bg-main-70 hover:outline-main-100 px-0 sm:px-5 md:px-7 text-xl font-bold whitespace-nowrap rounded-full mx-0"><span class="hidden sm:inline">CONTACT US</span><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" class="sm:hidden" height="20px" width="20px" xmlns="http://www.w3.org/2000/svg"><g><path fill="none" d="M0 0h24v24H0z"></path><path d="M7 2v20H3V2h4zm2 0h10.005C20.107 2 21 2.898 21 3.99v16.02c0 1.099-.893 1.99-1.995 1.99H9V2zm13 4h2v4h-2V6zm0 6h2v4h-2v-4zm-7 0a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm-3 4h6a3 3 0 0 0-6 0z"></path></g></svg></button><div class="absolute flex flex-col flex-nowrap w-full items-center align-center top-full left-0 z-50 mx-2 bg-secondary-100 py-1 shadow-lg shadow-main-100 hidden" role="menu" aria-orientation="vertical" aria-labelledby="user-menu-button" tabindex="-1" itemscope="" itemType="https://schema.org/ContactPoint" itemProp="contactPoint"><a href="mailto:info@codecave.pro" target="_blank" title="Email" itemProp="email"><button class="flex min-h-10 min-w-10 m-2 items-center justify-center px-3 text-sm h-10 bg-secondary-100 text-main-100 border-main-100 hover:bg-secondary-30 hover:outline-secondary-100 border border-solid undefined"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 1024 1024" height="20px" width="20px" xmlns="http://www.w3.org/2000/svg"><path d="M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 110.8V792H136V270.8l-27.6-21.5 39.3-50.5 42.8 33.3h643.1l42.8-33.3 39.3 50.5-27.7 21.5zM833.6 232L512 482 190.4 232l-42.8-33.3-39.3 50.5 27.6 21.5 341.6 265.6a55.99 55.99 0 0 0 68.7 0L888 270.8l27.6-21.5-39.3-50.5-42.7 33.2z"></path></svg></button></a><a href="https://t.me/salaros_com" target="_blank" title="Telegram" itemProp="contactOption"><button class="flex min-h-10 min-w-10 m-2 items-center justify-center px-3 text-sm h-10 bg-secondary-100 text-main-100 border-main-100 hover:bg-secondary-30 hover:outline-secondary-100 border border-solid undefined"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="20px" width="20px" xmlns="http://www.w3.org/2000/svg"><path d="M446.7 98.6l-67.6 318.8c-5.1 22.5-18.4 28.1-37.3 17.5l-103-75.9-49.7 47.8c-5.5 5.5-10.1 10.1-20.7 10.1l7.4-104.9 190.9-172.5c8.3-7.4-1.8-11.5-12.9-4.1L117.8 284 16.2 252.2c-22.1-6.9-22.5-22.1 4.6-32.7L418.2 66.4c18.4-6.9 34.5 4.1 28.5 32.2z"></path></svg></button></a><a href="https://wa.me/375292366125" target="_blank" title="Whatsapp" itemProp="contactOption"><button class="flex min-h-10 min-w-10 m-2 items-center justify-center px-3 text-sm h-10 bg-secondary-100 text-main-100 border-main-100 hover:bg-secondary-30 hover:outline-secondary-100 border border-solid undefined"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="20px" width="20px" xmlns="http://www.w3.org/2000/svg"><path d="M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z"></path></svg></button></a><a href="https://www.linkedin.com/signup/public-profile-join?vieweeVanityName=salaros" target="_blank" title="Linkedin" itemProp="contactOption"><button class="flex min-h-10 min-w-10 m-2 items-center justify-center px-3 text-sm h-10 bg-secondary-100 text-main-100 border-main-100 hover:bg-secondary-30 hover:outline-secondary-100 border border-solid undefined"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="20px" width="20px" xmlns="http://www.w3.org/2000/svg"><path d="M100.28 448H7.4V148.9h92.88zM53.79 108.1C24.09 108.1 0 83.5 0 53.8a53.79 53.79 0 0 1 107.58 0c0 29.7-24.1 54.3-53.79 54.3zM447.9 448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29 0-55.69 37.7-55.69 76.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5 42.69-48.3 87.88-48.3 94 0 111.28 61.9 111.28 142.3V448z"></path></svg></button></a><a href="https://gitter.im/CodeCavePro/Lobby" target="_blank" title="Gitter" itemProp="contactOption"><button class="flex min-h-10 min-w-10 m-2 items-center justify-center px-3 text-sm h-10 bg-secondary-100 text-main-100 border-main-100 hover:bg-secondary-30 hover:outline-secondary-100 border border-solid undefined"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 384 512" height="20px" width="20px" xmlns="http://www.w3.org/2000/svg"><path d="M66.4 322.5H16V0h50.4v322.5zM166.9 76.1h-50.4V512h50.4V76.1zm100.6 0h-50.4V512h50.4V76.1zM368 76h-50.4v247H368V76z"></path></svg></button></a></div></div></div></div><div class="lg:hidden hidden" id="mobile-menu"><ul class="space-y-1 px-2 pb-3 pt-2" itemscope="" itemType="https://schema.org/SiteNavigationElement"><li class="mr-6"><a class="text-xl font-bold text-main-100 hover:text-main-10 false" href="/services/">SERVICES</a></li><li class="mr-6"><a class="text-xl font-bold text-main-100 hover:text-main-10 false" href="/workflow/">WORKFLOW</a></li><li class="mr-6"><a class="text-xl font-bold text-main-100 hover:text-main-10 false" href="/projects/">PROJECTS</a></li><li class="mr-6"><a class="text-xl font-bold text-main-100 hover:text-main-10 false" href="/blog/">BLOG</a></li></ul></div></div></div><div class="h-1 w-full bg-secondary-100 absolute bottom-0 left-0"><div class="h-full w-0 bg-main-100 transition-all ease-linear duration-300" style="width:0%"></div></div></nav><div class="w-full flex items-center bg-main-100 relative overflow-hidden px-6 min-h-160 undefined"><div class="flex w-full max-w-7xl mx-auto h-full flex flex-col lg:flex-row py-12 lg:py-0 items-center text-secondary-100 flex-grow"><div class="flex flex-col overflow-hidden items-left h-full justify-center text-secondary-100 h-full w-full lg:w-1/2 bg-main-100"><h2 class="overflow-hidden mb-8 w-full"><span class="inline-block font-['Rubik_Glitch'] text-5xl sm:text-6xl w-full text-center lg:text-start transition-all duration-1000 translate-y-full">OUTSTANDING OUTSOURCING</span></h2><p class="overflow-hidden w-full"><span class="inline-block w-full text-3xl sm:text-4xl font-light text-center lg:text-start transition-all duration-1000 translate-y-full">THE BEST DEVELOPERS EVER</span></p></div><div class="w-[85%] lg:w-1/2 lg:h-full flex"><div class="h-full w-full relative"><canvas class="bg-main-100 h-160 w-full flex items-center justify-center cursor-pointer"></canvas><div class="flex justify-center items-center h-full w-full absolute top-0 left-0 right-0 bottom-0 z-10"><svg aria-hidden="true" class="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"><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"></path><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"></path></svg></div></div></div></div></div><section class="h-28 flex flex-col relative" id="clients"><div class="overflow-hidden grow"><div class="h-full flex items-center"><div class="h-full shrink-0 min-w-0 cursor-pointer flex flex-col justify-between items-center content-center w-[352px] md:w-[400px] xl:w-[480px] 3xl:w-[576px]"><svg class="min-w-0 shrink-0 w-full" height="8"><line width="800" height="8" stroke="white" stroke-width="8" stroke-dasharray="8 8" x1="0" x2="100%" y1="4" y2="4"></line><line width="800" height="8" stroke="black" stroke-width="8" stroke-dasharray="8 8" x1="8" x2="100%" y1="4" y2="4"></line></svg><p class="text-4xl font-extrabold whitespace-nowrap">AR</p><svg class="min-w-0 shrink-0 w-full" height="8"><line width="800" height="8" stroke="white" stroke-width="8" stroke-dasharray="8 8" x1="0" x2="100%" y1="4" y2="4"></line><line width="800" height="8" stroke="black" stroke-width="8" stroke-dasharray="8 8" x1="8" x2="100%" y1="4" y2="4"></line></svg></div><div class="h-full shrink-0 min-w-0 cursor-pointer flex flex-col justify-between items-center content-center w-[352px] md:w-[400px] xl:w-[480px] 3xl:w-[576px]"><svg class="min-w-0 shrink-0 w-full" height="8"><line width="800" height="8" stroke="white" stroke-width="8" stroke-dasharray="8 8" x1="0" x2="100%" y1="4" y2="4"></line><line width="800" height="8" stroke="black" stroke-width="8" stroke-dasharray="8 8" x1="8" x2="100%" y1="4" y2="4"></line></svg><p class="text-4xl font-extrabold whitespace-nowrap">CAD ADDINS</p><svg class="min-w-0 shrink-0 w-full" height="8"><line width="800" height="8" stroke="white" stroke-width="8" stroke-dasharray="8 8" x1="0" x2="100%" y1="4" y2="4"></line><line width="800" height="8" stroke="black" stroke-width="8" stroke-dasharray="8 8" x1="8" x2="100%" y1="4" y2="4"></line></svg></div><div class="h-full shrink-0 min-w-0 cursor-pointer flex flex-col justify-between items-center content-center w-[352px] md:w-[400px] xl:w-[480px] 3xl:w-[576px]"><svg class="min-w-0 shrink-0 w-full" height="8"><line width="800" height="8" stroke="white" stroke-width="8" stroke-dasharray="8 8" x1="0" x2="100%" y1="4" y2="4"></line><line width="800" height="8" stroke="black" stroke-width="8" stroke-dasharray="8 8" x1="8" x2="100%" y1="4" y2="4"></line></svg><p class="text-4xl font-extrabold whitespace-nowrap">PLM</p><svg class="min-w-0 shrink-0 w-full" height="8"><line width="800" height="8" stroke="white" stroke-width="8" stroke-dasharray="8 8" x1="0" x2="100%" y1="4" y2="4"></line><line width="800" height="8" stroke="black" stroke-width="8" stroke-dasharray="8 8" x1="8" x2="100%" y1="4" y2="4"></line></svg></div><div class="h-full shrink-0 min-w-0 cursor-pointer flex flex-col justify-between items-center content-center w-[352px] md:w-[400px] xl:w-[480px] 3xl:w-[576px]"><svg class="min-w-0 shrink-0 w-full" height="8"><line width="800" height="8" stroke="white" stroke-width="8" stroke-dasharray="8 8" x1="0" x2="100%" y1="4" y2="4"></line><line width="800" height="8" stroke="black" stroke-width="8" stroke-dasharray="8 8" x1="8" x2="100%" y1="4" y2="4"></line></svg><p class="text-4xl font-extrabold whitespace-nowrap">QUALITY ASSURANCE</p><svg class="min-w-0 shrink-0 w-full" height="8"><line width="800" height="8" stroke="white" stroke-width="8" stroke-dasharray="8 8" x1="0" x2="100%" y1="4" y2="4"></line><line width="800" height="8" stroke="black" stroke-width="8" stroke-dasharray="8 8" x1="8" x2="100%" y1="4" y2="4"></line></svg></div><div class="h-full shrink-0 min-w-0 cursor-pointer flex flex-col justify-between items-center content-center w-[352px] md:w-[400px] xl:w-[480px] 3xl:w-[576px]"><svg class="min-w-0 shrink-0 w-full" height="8"><line width="800" height="8" stroke="white" stroke-width="8" stroke-dasharray="8 8" x1="0" x2="100%" y1="4" y2="4"></line><line width="800" height="8" stroke="black" stroke-width="8" stroke-dasharray="8 8" x1="8" x2="100%" y1="4" y2="4"></line></svg><p class="text-4xl font-extrabold whitespace-nowrap">3D</p><svg class="min-w-0 shrink-0 w-full" height="8"><line width="800" height="8" stroke="white" stroke-width="8" stroke-dasharray="8 8" x1="0" x2="100%" y1="4" y2="4"></line><line width="800" height="8" stroke="black" stroke-width="8" stroke-dasharray="8 8" x1="8" x2="100%" y1="4" y2="4"></line></svg></div><div class="h-full shrink-0 min-w-0 cursor-pointer flex flex-col justify-between items-center content-center w-[352px] md:w-[400px] xl:w-[480px] 3xl:w-[576px]"><svg class="min-w-0 shrink-0 w-full" height="8"><line width="800" height="8" stroke="white" stroke-width="8" stroke-dasharray="8 8" x1="0" x2="100%" y1="4" y2="4"></line><line width="800" height="8" stroke="black" stroke-width="8" stroke-dasharray="8 8" x1="8" x2="100%" y1="4" y2="4"></line></svg><p class="text-4xl font-extrabold whitespace-nowrap">ETL</p><svg class="min-w-0 shrink-0 w-full" height="8"><line width="800" height="8" stroke="white" stroke-width="8" stroke-dasharray="8 8" x1="0" x2="100%" y1="4" y2="4"></line><line width="800" height="8" stroke="black" stroke-width="8" stroke-dasharray="8 8" x1="8" x2="100%" y1="4" y2="4"></line></svg></div><div class="h-full shrink-0 min-w-0 cursor-pointer flex flex-col justify-between items-center content-center w-[352px] md:w-[400px] xl:w-[480px] 3xl:w-[576px]"><svg class="min-w-0 shrink-0 w-full" height="8"><line width="800" height="8" stroke="white" stroke-width="8" stroke-dasharray="8 8" x1="0" x2="100%" y1="4" y2="4"></line><line width="800" height="8" stroke="black" stroke-width="8" stroke-dasharray="8 8" x1="8" x2="100%" y1="4" y2="4"></line></svg><p class="text-4xl font-extrabold whitespace-nowrap">WEB DEVELOPMENT</p><svg class="min-w-0 shrink-0 w-full" height="8"><line width="800" height="8" stroke="white" stroke-width="8" stroke-dasharray="8 8" x1="0" x2="100%" y1="4" y2="4"></line><line width="800" height="8" stroke="black" stroke-width="8" stroke-dasharray="8 8" x1="8" x2="100%" y1="4" y2="4"></line></svg></div><div class="h-full shrink-0 min-w-0 cursor-pointer flex flex-col justify-between items-center content-center w-[352px] md:w-[400px] xl:w-[480px] 3xl:w-[576px]"><svg class="min-w-0 shrink-0 w-full" height="8"><line width="800" height="8" stroke="white" stroke-width="8" stroke-dasharray="8 8" x1="0" x2="100%" y1="4" y2="4"></line><line width="800" height="8" stroke="black" stroke-width="8" stroke-dasharray="8 8" x1="8" x2="100%" y1="4" y2="4"></line></svg><p class="text-4xl font-extrabold whitespace-nowrap">UX/UI</p><svg class="min-w-0 shrink-0 w-full" height="8"><line width="800" height="8" stroke="white" stroke-width="8" stroke-dasharray="8 8" x1="0" x2="100%" y1="4" y2="4"></line><line width="800" height="8" stroke="black" stroke-width="8" stroke-dasharray="8 8" x1="8" x2="100%" y1="4" y2="4"></line></svg></div><div class="h-full shrink-0 min-w-0 cursor-pointer flex flex-col justify-between items-center content-center w-[352px] md:w-[400px] xl:w-[480px] 3xl:w-[576px]"><svg class="min-w-0 shrink-0 w-full" height="8"><line width="800" height="8" stroke="white" stroke-width="8" stroke-dasharray="8 8" x1="0" x2="100%" y1="4" y2="4"></line><line width="800" height="8" stroke="black" stroke-width="8" stroke-dasharray="8 8" x1="8" x2="100%" y1="4" y2="4"></line></svg><p class="text-4xl font-extrabold whitespace-nowrap">MOBILE APP</p><svg class="min-w-0 shrink-0 w-full" height="8"><line width="800" height="8" stroke="white" stroke-width="8" stroke-dasharray="8 8" x1="0" x2="100%" y1="4" y2="4"></line><line width="800" height="8" stroke="black" stroke-width="8" stroke-dasharray="8 8" x1="8" x2="100%" y1="4" y2="4"></line></svg></div><div class="h-full shrink-0 min-w-0 cursor-pointer flex flex-col justify-between items-center content-center w-[352px] md:w-[400px] xl:w-[480px] 3xl:w-[576px]"><svg class="min-w-0 shrink-0 w-full" height="8"><line width="800" height="8" stroke="white" stroke-width="8" stroke-dasharray="8 8" x1="0" x2="100%" y1="4" y2="4"></line><line width="800" height="8" stroke="black" stroke-width="8" stroke-dasharray="8 8" x1="8" x2="100%" y1="4" y2="4"></line></svg><p class="text-4xl font-extrabold whitespace-nowrap">CLOUD & DEVOPS</p><svg class="min-w-0 shrink-0 w-full" height="8"><line width="800" height="8" stroke="white" stroke-width="8" stroke-dasharray="8 8" x1="0" x2="100%" y1="4" y2="4"></line><line width="800" height="8" stroke="black" stroke-width="8" stroke-dasharray="8 8" x1="8" x2="100%" y1="4" y2="4"></line></svg></div></div></div></section><section class="w-full py-48 px-6 bg-main-100 text-secondary-100"><div class="flex w-full max-w-7xl mx-auto flex-col items-center"><div class="flex justify-between w-full items-center pb-10 md:pb-16"><h3 class="text-4xl md:text-5xl font-black w-full max-w-7xl mx-auto pr-8">OUR PROJECTS</h3><a class="text-end text-2xl md:text-3xl text-secondary-10 hover:text-secondary-100 font-normal cursor-pointer whitespace-nowrap" href="/projects/">SEE MORE<!-- --> →</a></div><div class="flex justify-between flex-col items-center sm:items-stretch sm:flex-row"><a class="bg-secondary-70 hover:bg-secondary-100 text-main-100 hover:text-main-10 flex flex-col grow-1 justify-between hover:text-main-10 rounded-2xl basis-[48%] sm:last:hidden md:last:flex md:basis-[31%] mt-16 sm:mt-0" itemscope="" itemType="https://schema.org/CreativeWork" href="/projects/641cda9e-7e00-5704-9d96-9c89f2b1b76f/"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained aspect-square object-cover w-full rounded-t-2xl"><div style="max-width:600px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height='497.2972972972973'%20width='600'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear" decoding="async" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAARCAYAAADdRIy+AAAACXBIWXMAAAsTAAALEwEAmpwYAAACp0lEQVR42k2UWU8CQRCE958ZHkxMNBAQhAjhUpBTkEtA5PLkVFHAIAiEB2Lif2zztVnjQ7PMTE91VXXvGpeXl3J1dSXNZlNSqZTkcjnJZrPCfq1Wk2q1Kp1OR8+m06k8PT3J5+enfH9/y3w+l8ViIcViUfr9vni9XjEikYicnZ1JIpGQfD7/F4BVKhVptVpa8Pz8XIvd3t7KdrtVIMDb7bZsNhvp9Xpa1IjFYvrn4uJCg0smM4C4cHp6qgze3t7k/v5e4vG4PtfrtcZsNpPn52eBnAEzs3qhUFD65XJZwRqNhhZDPmwGg4HKJQ9WX19fuv74+NAzCitgOp2WTCajUkkGAIZI5hw5+DgajWQ8HmshQJA+mUzUS3LC4bAYyWTyDwwgAlAASajX61odhshCHpbAbLVaaZHX11d5eHiQQCAgBj905/j4WILBoG5C3efzaZCIjzyHw6EypMhyuVRQ9ijElHg8HjEAYkzwEd/wD6nX19fKkkQ6iyQuv7y8qNz393cFxAoUoErHxmq16gIfach//wDDr7u7Oy3GZQCRCUPks8c591H05yEbXCLwyBwd5CHZHHi8xDNGCJaMD2qi0ai43W4x9vf3tSGlUkkPYAUYwKwJ1t1uV05OTpQRMwlLQCmIwlAo9MuQRiDPfP2QCIjJFJassYPLyHt8fFTfCIjAHByLxSIGUukOm0gDkCdAhPkachFAgsIwpVl4TmN3dnaEfhjmx4FXkHG5ubnRNaxhBSD/6T7SmE0KmsAOh0MODg706XK5xDAH2kw6OjpSibzXAHAOGAEAa0BRREHmFu/ohd1uF4MDc/b4snCBRLqKTNb/5xP5APOBAAjvnE6n7O3t/QKSACPA+O/3+xUM//AX1owVZxQiOGMNKP4dHh7K7u6u2Gw2+QH6JjaXNvlaJAAAAABJRU5ErkJggg==" alt=""/><picture><source type="image/avif" data-srcset="/static/9274d0b1ad5f1b5d2317f42f999b3f1e/276ab/cover.avif 83w,/static/9274d0b1ad5f1b5d2317f42f999b3f1e/21058/cover.avif 167w,/static/9274d0b1ad5f1b5d2317f42f999b3f1e/1652b/cover.avif 333w" sizes="(min-width: 333px) 333px, 100vw"/><source type="image/webp" data-srcset="/static/9274d0b1ad5f1b5d2317f42f999b3f1e/8fdb0/cover.webp 83w,/static/9274d0b1ad5f1b5d2317f42f999b3f1e/65651/cover.webp 167w,/static/9274d0b1ad5f1b5d2317f42f999b3f1e/df1a8/cover.webp 333w" sizes="(min-width: 333px) 333px, 100vw"/><img data-gatsby-image-ssr="" itemProp="image" data-main-image="" style="opacity:0" sizes="(min-width: 333px) 333px, 100vw" decoding="async" loading="lazy" data-src="/static/9274d0b1ad5f1b5d2317f42f999b3f1e/f1acf/cover.png" data-srcset="/static/9274d0b1ad5f1b5d2317f42f999b3f1e/8e640/cover.png 83w,/static/9274d0b1ad5f1b5d2317f42f999b3f1e/0f16f/cover.png 167w,/static/9274d0b1ad5f1b5d2317f42f999b3f1e/f1acf/cover.png 333w" alt="The most expensive web-app ever"/></picture><noscript><picture><source type="image/avif" srcSet="/static/9274d0b1ad5f1b5d2317f42f999b3f1e/276ab/cover.avif 83w,/static/9274d0b1ad5f1b5d2317f42f999b3f1e/21058/cover.avif 167w,/static/9274d0b1ad5f1b5d2317f42f999b3f1e/1652b/cover.avif 333w" sizes="(min-width: 333px) 333px, 100vw"/><source type="image/webp" srcSet="/static/9274d0b1ad5f1b5d2317f42f999b3f1e/8fdb0/cover.webp 83w,/static/9274d0b1ad5f1b5d2317f42f999b3f1e/65651/cover.webp 167w,/static/9274d0b1ad5f1b5d2317f42f999b3f1e/df1a8/cover.webp 333w" sizes="(min-width: 333px) 333px, 100vw"/><img data-gatsby-image-ssr="" itemProp="image" data-main-image="" style="opacity:0" sizes="(min-width: 333px) 333px, 100vw" decoding="async" loading="lazy" src="/static/9274d0b1ad5f1b5d2317f42f999b3f1e/f1acf/cover.png" srcSet="/static/9274d0b1ad5f1b5d2317f42f999b3f1e/8e640/cover.png 83w,/static/9274d0b1ad5f1b5d2317f42f999b3f1e/0f16f/cover.png 167w,/static/9274d0b1ad5f1b5d2317f42f999b3f1e/f1acf/cover.png 333w" alt="The most expensive web-app ever"/></picture></noscript><script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script></div><h4 class="text-2xl p-6 flex grow items-center font-extrabold h-24" itemProp="description">THE MOST EXPENSIVE WEB-APP EVER</h4><div class="hidden" itemProp="author" itemscope="" itemType="https://schema.org/LocalBusiness"><meta itemProp="sameAs" content="https://facebook.com/codecavepro"/><meta itemProp="sameAs" content="https://youtube.com/c/CodeCavePro"/><meta itemProp="sameAs" content="https://twitter.com/codecavepro"/><meta itemProp="sameAs" content="https://vk.com/codecavepro"/><meta itemProp="sameAs" content="https://github.com/CodeCavePro"/><meta itemProp="sameAs" content="https://instagram.com/codecave.pro"/><meta itemProp="sameAs" content="https://linkedin.com/company/codecavepro"/><meta itemProp="name" content="CodeCave"/><meta itemProp="currenciesAccepted" content="USD, EUR"/><meta itemProp="openingHours" content="Mo-Fr 09:00-18:00"/><meta name="description" content="Outsourcing software and web development"/><meta name="image" content="/logo.svg"/></div></a><a class="bg-secondary-70 hover:bg-secondary-100 text-main-100 hover:text-main-10 flex flex-col grow-1 justify-between hover:text-main-10 rounded-2xl basis-[48%] sm:last:hidden md:last:flex md:basis-[31%] mt-16 sm:mt-0" itemscope="" itemType="https://schema.org/CreativeWork" href="/projects/2df68c09-ccd8-5c98-8c7b-df6ed596ab7b/"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained aspect-square object-cover w-full rounded-t-2xl"><div style="max-width:600px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height='497.2972972972973'%20width='600'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear" decoding="async" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAARCAYAAADdRIy+AAAACXBIWXMAAAsTAAALEwEAmpwYAAACW0lEQVR42l2TyW5iQQxF6/fYkSUSQoQFEAkxz/MQ5hkSBgFiw7ThD8i3uXUsuZXuRem95+c699rlcuv1Wvr9vmw2Gzmfz1Iul2U8HkulUpF8Pi+r1UoWi4V0u12pVqvS6XSEPZ+fn5r39fWl37PZTLbbrbh6vS7z+VyGw6G0Wi0ZDAa6+C4UCgoGyj+g7XZbJpOJ7uF9Op3Kfr+X0+mkphzqtVpNlQGNRqN/oNlsVp+9Xk/zWPaf2HK5VEHcKRAXx+NRAyiTBMAWGz8+PtRtOp3W/7hCmFZRLqYAU767Xq8SDoe1NJIp67dLRHK5nCQSCYnFYpJMJhWEGGBglM9edejxeOT5fKoCMJrLBiuZhUCpVNJ/CAPmQMwAQHoMw/38/Egmk9FE7JNgQEAA2Uzv7ECIMQ3kcKg2BeS7+/2uPy+Xi5ZFMk5Qt9IBcmjNZlNjLBwhAMjaw3Io7nY78fv94vV6xefzSSQSUftWrjlFmCd7iDUaDRVCHBiVue/v778zxbAyJjSbUnBmAIuZY6ogHyBgBAC7w+Ggbmg0SRz929ub9hTIbwBASrTBxhFGaAVG1CHJHDfXjABDitr7+7s22xzaSSJA3EQAAisWi2rAMYO3202i0aiq2/0kzruVa25TqZQKAmMqmFGEyAXuAoGAnnAoFNLDAYoDNtAfnBmUGG4YIXIplXx6Z8PuHo+HNpXBJUA/cYBLQP+75N0uAIfCO3GeGHCv10vdYZf+AWABxh3vBrL5ZCOOEMWMXQKgLhgMSjwe1xJIZhMA+kMiQoDtSjJmxPm2u86T8unlH533bEOPjdZmAAAAAElFTkSuQmCC" alt=""/><picture><source type="image/avif" data-srcset="/static/bb175619690159859a23d72eb0058cec/276ab/cover.avif 83w,/static/bb175619690159859a23d72eb0058cec/21058/cover.avif 167w,/static/bb175619690159859a23d72eb0058cec/1652b/cover.avif 333w" sizes="(min-width: 333px) 333px, 100vw"/><source type="image/webp" data-srcset="/static/bb175619690159859a23d72eb0058cec/8fdb0/cover.webp 83w,/static/bb175619690159859a23d72eb0058cec/65651/cover.webp 167w,/static/bb175619690159859a23d72eb0058cec/df1a8/cover.webp 333w" sizes="(min-width: 333px) 333px, 100vw"/><img data-gatsby-image-ssr="" itemProp="image" data-main-image="" style="opacity:0" sizes="(min-width: 333px) 333px, 100vw" decoding="async" loading="lazy" data-src="/static/bb175619690159859a23d72eb0058cec/f1acf/cover.png" data-srcset="/static/bb175619690159859a23d72eb0058cec/8e640/cover.png 83w,/static/bb175619690159859a23d72eb0058cec/0f16f/cover.png 167w,/static/bb175619690159859a23d72eb0058cec/f1acf/cover.png 333w" alt="Some regular app 4"/></picture><noscript><picture><source type="image/avif" srcSet="/static/bb175619690159859a23d72eb0058cec/276ab/cover.avif 83w,/static/bb175619690159859a23d72eb0058cec/21058/cover.avif 167w,/static/bb175619690159859a23d72eb0058cec/1652b/cover.avif 333w" sizes="(min-width: 333px) 333px, 100vw"/><source type="image/webp" srcSet="/static/bb175619690159859a23d72eb0058cec/8fdb0/cover.webp 83w,/static/bb175619690159859a23d72eb0058cec/65651/cover.webp 167w,/static/bb175619690159859a23d72eb0058cec/df1a8/cover.webp 333w" sizes="(min-width: 333px) 333px, 100vw"/><img data-gatsby-image-ssr="" itemProp="image" data-main-image="" style="opacity:0" sizes="(min-width: 333px) 333px, 100vw" decoding="async" loading="lazy" src="/static/bb175619690159859a23d72eb0058cec/f1acf/cover.png" srcSet="/static/bb175619690159859a23d72eb0058cec/8e640/cover.png 83w,/static/bb175619690159859a23d72eb0058cec/0f16f/cover.png 167w,/static/bb175619690159859a23d72eb0058cec/f1acf/cover.png 333w" alt="Some regular app 4"/></picture></noscript><script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script></div><h4 class="text-2xl p-6 flex grow items-center font-extrabold h-24" itemProp="description">SOME REGULAR APP 4</h4><div class="hidden" itemProp="author" itemscope="" itemType="https://schema.org/LocalBusiness"><meta itemProp="sameAs" content="https://facebook.com/codecavepro"/><meta itemProp="sameAs" content="https://youtube.com/c/CodeCavePro"/><meta itemProp="sameAs" content="https://twitter.com/codecavepro"/><meta itemProp="sameAs" content="https://vk.com/codecavepro"/><meta itemProp="sameAs" content="https://github.com/CodeCavePro"/><meta itemProp="sameAs" content="https://instagram.com/codecave.pro"/><meta itemProp="sameAs" content="https://linkedin.com/company/codecavepro"/><meta itemProp="name" content="CodeCave"/><meta itemProp="currenciesAccepted" content="USD, EUR"/><meta itemProp="openingHours" content="Mo-Fr 09:00-18:00"/><meta name="description" content="Outsourcing software and web development"/><meta name="image" content="/logo.svg"/></div></a><a class="bg-secondary-70 hover:bg-secondary-100 text-main-100 hover:text-main-10 flex flex-col grow-1 justify-between hover:text-main-10 rounded-2xl basis-[48%] sm:last:hidden md:last:flex md:basis-[31%] mt-16 sm:mt-0" itemscope="" itemType="https://schema.org/CreativeWork" href="/projects/444bdbbc-cac8-564e-99a5-aef7520a42fb/"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained aspect-square object-cover w-full rounded-t-2xl"><div style="max-width:600px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height='497.2972972972973'%20width='600'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear" decoding="async" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAARCAYAAADdRIy+AAAACXBIWXMAAAsTAAALEwEAmpwYAAACp0lEQVR42k2UWU8CQRCE958ZHkxMNBAQhAjhUpBTkEtA5PLkVFHAIAiEB2Lif2zztVnjQ7PMTE91VXXvGpeXl3J1dSXNZlNSqZTkcjnJZrPCfq1Wk2q1Kp1OR8+m06k8PT3J5+enfH9/y3w+l8ViIcViUfr9vni9XjEikYicnZ1JIpGQfD7/F4BVKhVptVpa8Pz8XIvd3t7KdrtVIMDb7bZsNhvp9Xpa1IjFYvrn4uJCg0smM4C4cHp6qgze3t7k/v5e4vG4PtfrtcZsNpPn52eBnAEzs3qhUFD65XJZwRqNhhZDPmwGg4HKJQ9WX19fuv74+NAzCitgOp2WTCajUkkGAIZI5hw5+DgajWQ8HmshQJA+mUzUS3LC4bAYyWTyDwwgAlAASajX61odhshCHpbAbLVaaZHX11d5eHiQQCAgBj905/j4WILBoG5C3efzaZCIjzyHw6EypMhyuVRQ9ijElHg8HjEAYkzwEd/wD6nX19fKkkQ6iyQuv7y8qNz393cFxAoUoErHxmq16gIfach//wDDr7u7Oy3GZQCRCUPks8c591H05yEbXCLwyBwd5CHZHHi8xDNGCJaMD2qi0ai43W4x9vf3tSGlUkkPYAUYwKwJ1t1uV05OTpQRMwlLQCmIwlAo9MuQRiDPfP2QCIjJFJassYPLyHt8fFTfCIjAHByLxSIGUukOm0gDkCdAhPkachFAgsIwpVl4TmN3dnaEfhjmx4FXkHG5ubnRNaxhBSD/6T7SmE0KmsAOh0MODg706XK5xDAH2kw6OjpSibzXAHAOGAEAa0BRREHmFu/ohd1uF4MDc/b4snCBRLqKTNb/5xP5APOBAAjvnE6n7O3t/QKSACPA+O/3+xUM//AX1owVZxQiOGMNKP4dHh7K7u6u2Gw2+QH6JjaXNvlaJAAAAABJRU5ErkJggg==" alt=""/><picture><source type="image/avif" data-srcset="/static/9274d0b1ad5f1b5d2317f42f999b3f1e/276ab/cover.avif 83w,/static/9274d0b1ad5f1b5d2317f42f999b3f1e/21058/cover.avif 167w,/static/9274d0b1ad5f1b5d2317f42f999b3f1e/1652b/cover.avif 333w" sizes="(min-width: 333px) 333px, 100vw"/><source type="image/webp" data-srcset="/static/9274d0b1ad5f1b5d2317f42f999b3f1e/8fdb0/cover.webp 83w,/static/9274d0b1ad5f1b5d2317f42f999b3f1e/65651/cover.webp 167w,/static/9274d0b1ad5f1b5d2317f42f999b3f1e/df1a8/cover.webp 333w" sizes="(min-width: 333px) 333px, 100vw"/><img data-gatsby-image-ssr="" itemProp="image" data-main-image="" style="opacity:0" sizes="(min-width: 333px) 333px, 100vw" decoding="async" loading="lazy" data-src="/static/9274d0b1ad5f1b5d2317f42f999b3f1e/f1acf/cover.png" data-srcset="/static/9274d0b1ad5f1b5d2317f42f999b3f1e/8e640/cover.png 83w,/static/9274d0b1ad5f1b5d2317f42f999b3f1e/0f16f/cover.png 167w,/static/9274d0b1ad5f1b5d2317f42f999b3f1e/f1acf/cover.png 333w" alt="Some regular app"/></picture><noscript><picture><source type="image/avif" srcSet="/static/9274d0b1ad5f1b5d2317f42f999b3f1e/276ab/cover.avif 83w,/static/9274d0b1ad5f1b5d2317f42f999b3f1e/21058/cover.avif 167w,/static/9274d0b1ad5f1b5d2317f42f999b3f1e/1652b/cover.avif 333w" sizes="(min-width: 333px) 333px, 100vw"/><source type="image/webp" srcSet="/static/9274d0b1ad5f1b5d2317f42f999b3f1e/8fdb0/cover.webp 83w,/static/9274d0b1ad5f1b5d2317f42f999b3f1e/65651/cover.webp 167w,/static/9274d0b1ad5f1b5d2317f42f999b3f1e/df1a8/cover.webp 333w" sizes="(min-width: 333px) 333px, 100vw"/><img data-gatsby-image-ssr="" itemProp="image" data-main-image="" style="opacity:0" sizes="(min-width: 333px) 333px, 100vw" decoding="async" loading="lazy" src="/static/9274d0b1ad5f1b5d2317f42f999b3f1e/f1acf/cover.png" srcSet="/static/9274d0b1ad5f1b5d2317f42f999b3f1e/8e640/cover.png 83w,/static/9274d0b1ad5f1b5d2317f42f999b3f1e/0f16f/cover.png 167w,/static/9274d0b1ad5f1b5d2317f42f999b3f1e/f1acf/cover.png 333w" alt="Some regular app"/></picture></noscript><script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script></div><h4 class="text-2xl p-6 flex grow items-center font-extrabold h-24" itemProp="description">SOME REGULAR APP</h4><div class="hidden" itemProp="author" itemscope="" itemType="https://schema.org/LocalBusiness"><meta itemProp="sameAs" content="https://facebook.com/codecavepro"/><meta itemProp="sameAs" content="https://youtube.com/c/CodeCavePro"/><meta itemProp="sameAs" content="https://twitter.com/codecavepro"/><meta itemProp="sameAs" content="https://vk.com/codecavepro"/><meta itemProp="sameAs" content="https://github.com/CodeCavePro"/><meta itemProp="sameAs" content="https://instagram.com/codecave.pro"/><meta itemProp="sameAs" content="https://linkedin.com/company/codecavepro"/><meta itemProp="name" content="CodeCave"/><meta itemProp="currenciesAccepted" content="USD, EUR"/><meta itemProp="openingHours" content="Mo-Fr 09:00-18:00"/><meta name="description" content="Outsourcing software and web development"/><meta name="image" content="/logo.svg"/></div></a></div></div></section><svg class="w-full" height="8"><line width="800" height="8" stroke="white" stroke-width="8" stroke-dasharray="8 8" x1="0" x2="100%" y1="4" y2="4"></line><line width="800" height="8" stroke="black" stroke-width="8" stroke-dasharray="8 8" x1="8" x2="100%" y1="4" y2="4"></line></svg><section class="w-full py-48 px-6 bg-secondary-100 text-main-100 w-full"><div class="flex w-full flex-col items-center"><div class="flex justify-between w-full items-center pb-10 md:pb-16"><h3 class="text-4xl md:text-5xl font-black w-full max-w-7xl mx-auto pr-8">OUR CLIENTS' TESTIMONIALS</h3></div><div class="w-full overflow-hidden min-h-max"><div id="container" class="flex"><div class="flex shrink-0 min-w-0 cursor-pointer basis-full sm:basis-5/6 md:basis-4/6 lg:basis-1/2 xl:basis-2/5 3xl:basis-1/3 4xl:basis-1/4 rounded-2xl border-dashed border-main-10 mx-12 top-0 bottom-0"><div class="h-full flex flex-col grow p-8 text-main-100" itemProp="review" itemscope="" itemType="https://schema.org/Review"><div class="mb-6 flex flex-nowrap justify-start items-center border-b-[4px] border-dashed border-secondary-100 gradient-border pb-10" itemProp="author" itemscope="" itemType="https://schema.org/Person"><div class="inline-block rounded-full h-32 w-32 flex items-center mr-10"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained h-full object-cover rounded-full h-32 w-32"><div style="max-width:112px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height='112'%20width='112'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear" decoding="async" src="data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGAABAQEBAQAAAAAAAAAAAAAAAAQDAQL/xAAXAQADAQAAAAAAAAAAAAAAAAACAwQB/9oADAMBAAIQAxAAAAHWSmMGWPCZnJCpWA0f/8QAGxAAAgIDAQAAAAAAAAAAAAAAAQIAAxESIzL/2gAIAQEAAQUCR0UXsmR5Q7LbNpVgi0cxcwH/xAAZEQABBQAAAAAAAAAAAAAAAAAAARARMUH/2gAIAQMBAT8BSiTG/8QAFhEAAwAAAAAAAAAAAAAAAAAAABAh/9oACAECAQE/ASv/xAAcEAACAgIDAAAAAAAAAAAAAAAAAREhAkEQMXH/2gAIAQEABj8CTyKdiIHPc8Oh5bk0/Uf/xAAbEAEAAwEAAwAAAAAAAAAAAAABABEhMUFRYf/aAAgBAQABPyFEdeZyMOQjtK6XDoUoz1tRwcMgwhi2Q/MoIOK+2k//2gAMAwEAAgADAAAAENfPfv/EABgRAAMBAQAAAAAAAAAAAAAAAAABETFB/9oACAEDAQE/EE4JHsrP/8QAFxEAAwEAAAAAAAAAAAAAAAAAAAERMf/aAAgBAgEBPxC0aoWoiP/EABwQAQEBAQACAwAAAAAAAAAAAAERACExkYHR8P/aAAgBAQABPxCBO0KTGIlVQSOtKYe2KE0fJ0xaCRSyuCEqAJ8Ywu5GPE+8VVSlbD8Z4wnAPtv/2Q==" alt=""/><picture><source type="image/avif" data-srcset="/static/925f87351999aef81e93dfc5e7e378cb/ee3b4/avatar.avif 28w,/static/925f87351999aef81e93dfc5e7e378cb/4175e/avatar.avif 56w,/static/925f87351999aef81e93dfc5e7e378cb/2110b/avatar.avif 112w,/static/925f87351999aef81e93dfc5e7e378cb/2898f/avatar.avif 224w" sizes="(min-width: 112px) 112px, 100vw"/><source type="image/webp" data-srcset="/static/925f87351999aef81e93dfc5e7e378cb/629a0/avatar.webp 28w,/static/925f87351999aef81e93dfc5e7e378cb/f8744/avatar.webp 56w,/static/925f87351999aef81e93dfc5e7e378cb/65bf6/avatar.webp 112w,/static/925f87351999aef81e93dfc5e7e378cb/f42a0/avatar.webp 224w" sizes="(min-width: 112px) 112px, 100vw"/><img data-gatsby-image-ssr="" itemProp="image" data-main-image="" style="opacity:0" sizes="(min-width: 112px) 112px, 100vw" decoding="async" loading="lazy" data-src="/static/925f87351999aef81e93dfc5e7e378cb/f41fb/avatar.jpg" data-srcset="/static/925f87351999aef81e93dfc5e7e378cb/80e21/avatar.jpg 28w,/static/925f87351999aef81e93dfc5e7e378cb/2c33f/avatar.jpg 56w,/static/925f87351999aef81e93dfc5e7e378cb/f41fb/avatar.jpg 112w,/static/925f87351999aef81e93dfc5e7e378cb/0e51d/avatar.jpg 224w" alt="Prima Consulting d.o.o."/></picture><noscript><picture><source type="image/avif" srcSet="/static/925f87351999aef81e93dfc5e7e378cb/ee3b4/avatar.avif 28w,/static/925f87351999aef81e93dfc5e7e378cb/4175e/avatar.avif 56w,/static/925f87351999aef81e93dfc5e7e378cb/2110b/avatar.avif 112w,/static/925f87351999aef81e93dfc5e7e378cb/2898f/avatar.avif 224w" sizes="(min-width: 112px) 112px, 100vw"/><source type="image/webp" srcSet="/static/925f87351999aef81e93dfc5e7e378cb/629a0/avatar.webp 28w,/static/925f87351999aef81e93dfc5e7e378cb/f8744/avatar.webp 56w,/static/925f87351999aef81e93dfc5e7e378cb/65bf6/avatar.webp 112w,/static/925f87351999aef81e93dfc5e7e378cb/f42a0/avatar.webp 224w" sizes="(min-width: 112px) 112px, 100vw"/><img data-gatsby-image-ssr="" itemProp="image" data-main-image="" style="opacity:0" sizes="(min-width: 112px) 112px, 100vw" decoding="async" loading="lazy" src="/static/925f87351999aef81e93dfc5e7e378cb/f41fb/avatar.jpg" srcSet="/static/925f87351999aef81e93dfc5e7e378cb/80e21/avatar.jpg 28w,/static/925f87351999aef81e93dfc5e7e378cb/2c33f/avatar.jpg 56w,/static/925f87351999aef81e93dfc5e7e378cb/f41fb/avatar.jpg 112w,/static/925f87351999aef81e93dfc5e7e378cb/0e51d/avatar.jpg 224w" alt="Prima Consulting d.o.o."/></picture></noscript><script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script></div></div><div><h5 class="text-xl font-extrabold whitespace-nowrap" itemProp="familyName">Roberto Assi</h5><h5 class="text-xl font-extrabold whitespace-nowrap"><span itemProp="jobTitle">CEO</span>,<!-- --> <span itemProp="worksFor">Prima Consulting d.o.o.</span></h5><h5 class="text-xl font-extrabold whitespace-nowrap" itemProp="workLocation">Čajetina, Serbia</h5></div></div><div class="review-body shrink-0 text-2xl" itemProp="reviewBody"><p>As a service company we wanted to create a website that would sum up all of our experiences gathered over the past 30 years.</p> <p>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.</p> -<p>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.</p></div></div></div><div class="flex shrink-0 min-w-0 cursor-pointer basis-full sm:basis-5/6 md:basis-4/6 lg:basis-1/2 xl:basis-2/5 3xl:basis-1/3 4xl:basis-1/4 rounded-2xl border-dashed border-main-10 mx-12 top-0 bottom-0"><div class="h-full flex flex-col grow p-8 text-main-100" itemProp="review" itemscope="" itemType="https://schema.org/Review"><div class="mb-6 flex flex-nowrap justify-start items-center border-b-[4px] border-dashed border-secondary-100 gradient-border pb-10" itemProp="author" itemscope="" itemType="https://schema.org/Person"><div class="inline-block rounded-full h-32 w-32 flex items-center mr-10"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained h-full object-cover rounded-full h-32 w-32"><div style="max-width:112px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height='112'%20width='112'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear" decoding="async" src="data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAMBBP/EABgBAQADAQAAAAAAAAAAAAAAAAABAgME/9oADAMBAAIQAxAAAAHhvO+fXyNRbAAf/8QAGxAAAQUBAQAAAAAAAAAAAAAAAQACAxASITH/2gAIAQEAAQUCHTLG1lDCOHo+3//EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQMBAT8BH//EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQIBAT8BH//EABwQAQACAQUAAAAAAAAAAAAAAAEAEQIQEiAhkf/aAAgBAQAGPwIIbcr07XyXYcf/xAAdEAEAAQQDAQAAAAAAAAAAAAABEQAhMVEQIEFh/9oACAEBAAE/IT9RiryCzkjHBgJnRS0hdBFAEDJ49P/aAAwDAQACAAMAAAAQ9PDD/8QAFhEBAQEAAAAAAAAAAAAAAAAAASAh/9oACAEDAQE/EF0j/8QAFREBAQAAAAAAAAAAAAAAAAAAIEH/2gAIAQIBAT8Qg//EAB4QAQEAAQMFAAAAAAAAAAAAAAERABAhUSBBcZGx/9oACAEBAAE/EK4yVcVmMNlC7BR9t0khXeg93CqGEBt37i+MkaVOQ56P/9k=" alt=""/><picture><source type="image/avif" data-srcset="/static/e695f1a48d28625cbba253860b1a47de/ee3b4/avatar.avif 28w,/static/e695f1a48d28625cbba253860b1a47de/4175e/avatar.avif 56w,/static/e695f1a48d28625cbba253860b1a47de/2110b/avatar.avif 112w" sizes="(min-width: 112px) 112px, 100vw"/><source type="image/webp" data-srcset="/static/e695f1a48d28625cbba253860b1a47de/629a0/avatar.webp 28w,/static/e695f1a48d28625cbba253860b1a47de/f8744/avatar.webp 56w,/static/e695f1a48d28625cbba253860b1a47de/65bf6/avatar.webp 112w" sizes="(min-width: 112px) 112px, 100vw"/><img data-gatsby-image-ssr="" itemProp="image" data-main-image="" style="opacity:0" sizes="(min-width: 112px) 112px, 100vw" decoding="async" loading="lazy" data-src="/static/e695f1a48d28625cbba253860b1a47de/f41fb/avatar.jpg" data-srcset="/static/e695f1a48d28625cbba253860b1a47de/80e21/avatar.jpg 28w,/static/e695f1a48d28625cbba253860b1a47de/2c33f/avatar.jpg 56w,/static/e695f1a48d28625cbba253860b1a47de/f41fb/avatar.jpg 112w" alt="Soytex LLC"/></picture><noscript><picture><source type="image/avif" srcSet="/static/e695f1a48d28625cbba253860b1a47de/ee3b4/avatar.avif 28w,/static/e695f1a48d28625cbba253860b1a47de/4175e/avatar.avif 56w,/static/e695f1a48d28625cbba253860b1a47de/2110b/avatar.avif 112w" sizes="(min-width: 112px) 112px, 100vw"/><source type="image/webp" srcSet="/static/e695f1a48d28625cbba253860b1a47de/629a0/avatar.webp 28w,/static/e695f1a48d28625cbba253860b1a47de/f8744/avatar.webp 56w,/static/e695f1a48d28625cbba253860b1a47de/65bf6/avatar.webp 112w" sizes="(min-width: 112px) 112px, 100vw"/><img data-gatsby-image-ssr="" itemProp="image" data-main-image="" style="opacity:0" sizes="(min-width: 112px) 112px, 100vw" decoding="async" loading="lazy" src="/static/e695f1a48d28625cbba253860b1a47de/f41fb/avatar.jpg" srcSet="/static/e695f1a48d28625cbba253860b1a47de/80e21/avatar.jpg 28w,/static/e695f1a48d28625cbba253860b1a47de/2c33f/avatar.jpg 56w,/static/e695f1a48d28625cbba253860b1a47de/f41fb/avatar.jpg 112w" alt="Soytex LLC"/></picture></noscript><script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script></div></div><div><h5 class="text-xl font-extrabold whitespace-nowrap" itemProp="familyName">SIA "Agrolats Group"</h5><h5 class="text-xl font-extrabold whitespace-nowrap"><span itemProp="jobTitle">CEO</span>,<!-- --> <span itemProp="worksFor">Soytex LLC</span></h5><h5 class="text-xl font-extrabold whitespace-nowrap" itemProp="workLocation">Dobele, Latvia</h5></div></div><div class="review-body shrink-0 text-2xl" itemProp="reviewBody"><p>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.</p> -<p>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.</p></div></div></div><div class="flex shrink-0 min-w-0 cursor-pointer basis-full sm:basis-5/6 md:basis-4/6 lg:basis-1/2 xl:basis-2/5 3xl:basis-1/3 4xl:basis-1/4 rounded-2xl border-dashed border-main-10 mx-12 top-0 bottom-0"><div class="h-full flex flex-col grow p-8 text-main-100" itemProp="review" itemscope="" itemType="https://schema.org/Review"><div class="mb-6 flex flex-nowrap justify-start items-center border-b-[4px] border-dashed border-secondary-100 gradient-border pb-10" itemProp="author" itemscope="" itemType="https://schema.org/Person"><div class="inline-block rounded-full h-32 w-32 flex items-center mr-10"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained h-full object-cover rounded-full h-32 w-32"><div style="max-width:112px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height='112'%20width='112'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear" decoding="async" src="data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGAABAQEBAQAAAAAAAAAAAAAAAAQCBQb/xAAWAQEBAQAAAAAAAAAAAAAAAAACAQD/2gAMAwEAAhADEAAAAaIL4yu6KPG7MtCn/8QAGhAAAwEBAQEAAAAAAAAAAAAAAQIDBAARM//aAAgBAQABBQLZoaZJrnYH0blHALXlACvR3LfKd6TX/8QAFhEBAQEAAAAAAAAAAAAAAAAAARAR/9oACAEDAQE/AQMhP//EABURAQEAAAAAAAAAAAAAAAAAAAEQ/9oACAECAQE/AWM//8QAHBAAAgIDAQEAAAAAAAAAAAAAAAECERIxQSED/9oACAEBAAY/Aowht9FPPK9lkfo+Mw1ehJaLnJsXnSoy8P/EABsQAAMAAwEBAAAAAAAAAAAAAAABESExQVFh/9oACAEBAAE/IcWJnxnqZA9KkbyWJp9ILTob4aECiLMP1kXhNjDNtD//2gAMAwEAAgADAAAAEOfwQf/EABYRAQEBAAAAAAAAAAAAAAAAAAEQMf/aAAgBAwEBPxBiWYZ//8QAFxEBAQEBAAAAAAAAAAAAAAAAARARMf/aAAgBAgEBPxBImTon/8QAHRABAAICAwEBAAAAAAAAAAAAAQARITFRYXGBof/aAAgBAQABPxCjIt2BousHMXugCKJ3CO0Q+w/W4i8eRIhKtKcv5EDwsl4CiAinTiPDRGi0gocEtUsos15P/9k=" alt=""/><picture><source type="image/avif" data-srcset="/static/0aa0acaae4a05477269e4460fe099907/ee3b4/avatar.avif 28w,/static/0aa0acaae4a05477269e4460fe099907/4175e/avatar.avif 56w,/static/0aa0acaae4a05477269e4460fe099907/2110b/avatar.avif 112w,/static/0aa0acaae4a05477269e4460fe099907/2898f/avatar.avif 224w" sizes="(min-width: 112px) 112px, 100vw"/><source type="image/webp" data-srcset="/static/0aa0acaae4a05477269e4460fe099907/629a0/avatar.webp 28w,/static/0aa0acaae4a05477269e4460fe099907/f8744/avatar.webp 56w,/static/0aa0acaae4a05477269e4460fe099907/65bf6/avatar.webp 112w,/static/0aa0acaae4a05477269e4460fe099907/f42a0/avatar.webp 224w" sizes="(min-width: 112px) 112px, 100vw"/><img data-gatsby-image-ssr="" itemProp="image" data-main-image="" style="opacity:0" sizes="(min-width: 112px) 112px, 100vw" decoding="async" loading="lazy" data-src="/static/0aa0acaae4a05477269e4460fe099907/f41fb/avatar.jpg" data-srcset="/static/0aa0acaae4a05477269e4460fe099907/80e21/avatar.jpg 28w,/static/0aa0acaae4a05477269e4460fe099907/2c33f/avatar.jpg 56w,/static/0aa0acaae4a05477269e4460fe099907/f41fb/avatar.jpg 112w,/static/0aa0acaae4a05477269e4460fe099907/0e51d/avatar.jpg 224w" alt="Specifi Europe Srl"/></picture><noscript><picture><source type="image/avif" srcSet="/static/0aa0acaae4a05477269e4460fe099907/ee3b4/avatar.avif 28w,/static/0aa0acaae4a05477269e4460fe099907/4175e/avatar.avif 56w,/static/0aa0acaae4a05477269e4460fe099907/2110b/avatar.avif 112w,/static/0aa0acaae4a05477269e4460fe099907/2898f/avatar.avif 224w" sizes="(min-width: 112px) 112px, 100vw"/><source type="image/webp" srcSet="/static/0aa0acaae4a05477269e4460fe099907/629a0/avatar.webp 28w,/static/0aa0acaae4a05477269e4460fe099907/f8744/avatar.webp 56w,/static/0aa0acaae4a05477269e4460fe099907/65bf6/avatar.webp 112w,/static/0aa0acaae4a05477269e4460fe099907/f42a0/avatar.webp 224w" sizes="(min-width: 112px) 112px, 100vw"/><img data-gatsby-image-ssr="" itemProp="image" data-main-image="" style="opacity:0" sizes="(min-width: 112px) 112px, 100vw" decoding="async" loading="lazy" src="/static/0aa0acaae4a05477269e4460fe099907/f41fb/avatar.jpg" srcSet="/static/0aa0acaae4a05477269e4460fe099907/80e21/avatar.jpg 28w,/static/0aa0acaae4a05477269e4460fe099907/2c33f/avatar.jpg 56w,/static/0aa0acaae4a05477269e4460fe099907/f41fb/avatar.jpg 112w,/static/0aa0acaae4a05477269e4460fe099907/0e51d/avatar.jpg 224w" alt="Specifi Europe Srl"/></picture></noscript><script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script></div></div><div><h5 class="text-xl font-extrabold whitespace-nowrap" itemProp="familyName">Fabio Tantaro</h5><h5 class="text-xl font-extrabold whitespace-nowrap"><span itemProp="jobTitle">General Manger</span>,<!-- --> <span itemProp="worksFor">Specifi Europe Srl</span></h5><h5 class="text-xl font-extrabold whitespace-nowrap" itemProp="workLocation">Venezia, Italy</h5></div></div><div class="review-body shrink-0 text-2xl" itemProp="reviewBody"><p>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.</p></div></div></div><div class="flex shrink-0 min-w-0 cursor-pointer basis-full sm:basis-5/6 md:basis-4/6 lg:basis-1/2 xl:basis-2/5 3xl:basis-1/3 4xl:basis-1/4 rounded-2xl border-dashed border-main-10 mx-12 top-0 bottom-0"><div class="h-full flex flex-col grow p-8 text-main-100" itemProp="review" itemscope="" itemType="https://schema.org/Review"><div class="mb-6 flex flex-nowrap justify-start items-center border-b-[4px] border-dashed border-secondary-100 gradient-border pb-10" itemProp="author" itemscope="" itemType="https://schema.org/Person"><div class="inline-block rounded-full h-32 w-32 flex items-center mr-10"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained h-full object-cover rounded-full h-32 w-32"><div style="max-width:150px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height='112.00000000000001'%20width='150'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear" decoding="async" src="data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAQBBf/EABUBAQEAAAAAAAAAAAAAAAAAAAEC/9oADAMBAAIQAxAAAAHmXRqnVJP/xAAbEAACAgMBAAAAAAAAAAAAAAABAgMSAAQjIf/aAAgBAQABBQJl61QwmmbB72IjV/P/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAWEQEBAQAAAAAAAAAAAAAAAAAAARH/2gAIAQIBAT8BjH//xAAcEAACAgIDAAAAAAAAAAAAAAAAAQIyIjFBUXH/2gAIAQEABj8CceiuhYsco8npU//EABoQAAIDAQEAAAAAAAAAAAAAAAABESExQVH/2gAIAQEAAT8hvnuhyu9RqKPBwW6iElW+znRn/9oADAMBAAIAAwAAABCEH//EABcRAQEBAQAAAAAAAAAAAAAAAAEAETH/2gAIAQMBAT8QTlrf/8QAFhEBAQEAAAAAAAAAAAAAAAAAAREA/9oACAECAQE/EFBunf/EABsQAQADAAMBAAAAAAAAAAAAAAEAESExQWFR/9oACAEBAAE/ENvWwV4xaUWWoIffGburdtnLHXQAvHTbi8Dn3lGsWgALpRP/2Q==" alt=""/><picture><source type="image/avif" data-srcset="/static/1653698f8fcf780cc3340eb9b946a2fc/8d237/avatar.avif 38w,/static/1653698f8fcf780cc3340eb9b946a2fc/2683f/avatar.avif 75w,/static/1653698f8fcf780cc3340eb9b946a2fc/2a822/avatar.avif 150w" sizes="(min-width: 150px) 150px, 100vw"/><source type="image/webp" data-srcset="/static/1653698f8fcf780cc3340eb9b946a2fc/9a1a2/avatar.webp 38w,/static/1653698f8fcf780cc3340eb9b946a2fc/e0f0e/avatar.webp 75w,/static/1653698f8fcf780cc3340eb9b946a2fc/b8b26/avatar.webp 150w" sizes="(min-width: 150px) 150px, 100vw"/><img data-gatsby-image-ssr="" itemProp="image" data-main-image="" style="opacity:0" sizes="(min-width: 150px) 150px, 100vw" decoding="async" loading="lazy" data-src="/static/1653698f8fcf780cc3340eb9b946a2fc/a4582/avatar.jpg" data-srcset="/static/1653698f8fcf780cc3340eb9b946a2fc/fc2b0/avatar.jpg 38w,/static/1653698f8fcf780cc3340eb9b946a2fc/d4afa/avatar.jpg 75w,/static/1653698f8fcf780cc3340eb9b946a2fc/a4582/avatar.jpg 150w" alt="Google"/></picture><noscript><picture><source type="image/avif" srcSet="/static/1653698f8fcf780cc3340eb9b946a2fc/8d237/avatar.avif 38w,/static/1653698f8fcf780cc3340eb9b946a2fc/2683f/avatar.avif 75w,/static/1653698f8fcf780cc3340eb9b946a2fc/2a822/avatar.avif 150w" sizes="(min-width: 150px) 150px, 100vw"/><source type="image/webp" srcSet="/static/1653698f8fcf780cc3340eb9b946a2fc/9a1a2/avatar.webp 38w,/static/1653698f8fcf780cc3340eb9b946a2fc/e0f0e/avatar.webp 75w,/static/1653698f8fcf780cc3340eb9b946a2fc/b8b26/avatar.webp 150w" sizes="(min-width: 150px) 150px, 100vw"/><img data-gatsby-image-ssr="" itemProp="image" data-main-image="" style="opacity:0" sizes="(min-width: 150px) 150px, 100vw" decoding="async" loading="lazy" src="/static/1653698f8fcf780cc3340eb9b946a2fc/a4582/avatar.jpg" srcSet="/static/1653698f8fcf780cc3340eb9b946a2fc/fc2b0/avatar.jpg 38w,/static/1653698f8fcf780cc3340eb9b946a2fc/d4afa/avatar.jpg 75w,/static/1653698f8fcf780cc3340eb9b946a2fc/a4582/avatar.jpg 150w" alt="Google"/></picture></noscript><script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script></div></div><div><h5 class="text-xl font-extrabold whitespace-nowrap" itemProp="familyName">Ivanov P.A.</h5><h5 class="text-xl font-extrabold whitespace-nowrap"><span itemProp="jobTitle">CEO</span>,<!-- --> <span itemProp="worksFor">Google</span></h5><h5 class="text-xl font-extrabold whitespace-nowrap" itemProp="workLocation">USA, Washington D.C.</h5></div></div><div class="review-body shrink-0 text-2xl" itemProp="reviewBody"><p>Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source.</p> -<p>Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.</p></div></div></div><div class="flex shrink-0 min-w-0 cursor-pointer basis-full sm:basis-5/6 md:basis-4/6 lg:basis-1/2 xl:basis-2/5 3xl:basis-1/3 4xl:basis-1/4 rounded-2xl border-dashed border-main-10 mx-12 top-0 bottom-0"><div class="h-full flex flex-col grow p-8 text-main-100" itemProp="review" itemscope="" itemType="https://schema.org/Review"><div class="mb-6 flex flex-nowrap justify-start items-center border-b-[4px] border-dashed border-secondary-100 gradient-border pb-10" itemProp="author" itemscope="" itemType="https://schema.org/Person"><div class="inline-block rounded-full h-32 w-32 flex items-center mr-10"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained h-full object-cover rounded-full h-32 w-32"><div style="max-width:150px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height='112.00000000000001'%20width='150'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear" decoding="async" src="data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAQBBf/EABUBAQEAAAAAAAAAAAAAAAAAAAEC/9oADAMBAAIQAxAAAAHmXRqnVJP/xAAbEAACAgMBAAAAAAAAAAAAAAABAgMSAAQjIf/aAAgBAQABBQJl61QwmmbB72IjV/P/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAWEQEBAQAAAAAAAAAAAAAAAAAAARH/2gAIAQIBAT8BjH//xAAcEAACAgIDAAAAAAAAAAAAAAAAAQIyIjFBUXH/2gAIAQEABj8CceiuhYsco8npU//EABoQAAIDAQEAAAAAAAAAAAAAAAABESExQVH/2gAIAQEAAT8hvnuhyu9RqKPBwW6iElW+znRn/9oADAMBAAIAAwAAABCEH//EABcRAQEBAQAAAAAAAAAAAAAAAAEAETH/2gAIAQMBAT8QTlrf/8QAFhEBAQEAAAAAAAAAAAAAAAAAAREA/9oACAECAQE/EFBunf/EABsQAQADAAMBAAAAAAAAAAAAAAEAESExQWFR/9oACAEBAAE/ENvWwV4xaUWWoIffGburdtnLHXQAvHTbi8Dn3lGsWgALpRP/2Q==" alt=""/><picture><source type="image/avif" data-srcset="/static/1653698f8fcf780cc3340eb9b946a2fc/8d237/avatar.avif 38w,/static/1653698f8fcf780cc3340eb9b946a2fc/2683f/avatar.avif 75w,/static/1653698f8fcf780cc3340eb9b946a2fc/2a822/avatar.avif 150w" sizes="(min-width: 150px) 150px, 100vw"/><source type="image/webp" data-srcset="/static/1653698f8fcf780cc3340eb9b946a2fc/9a1a2/avatar.webp 38w,/static/1653698f8fcf780cc3340eb9b946a2fc/e0f0e/avatar.webp 75w,/static/1653698f8fcf780cc3340eb9b946a2fc/b8b26/avatar.webp 150w" sizes="(min-width: 150px) 150px, 100vw"/><img data-gatsby-image-ssr="" itemProp="image" data-main-image="" style="opacity:0" sizes="(min-width: 150px) 150px, 100vw" decoding="async" loading="lazy" data-src="/static/1653698f8fcf780cc3340eb9b946a2fc/a4582/avatar.jpg" data-srcset="/static/1653698f8fcf780cc3340eb9b946a2fc/fc2b0/avatar.jpg 38w,/static/1653698f8fcf780cc3340eb9b946a2fc/d4afa/avatar.jpg 75w,/static/1653698f8fcf780cc3340eb9b946a2fc/a4582/avatar.jpg 150w" alt="Google"/></picture><noscript><picture><source type="image/avif" srcSet="/static/1653698f8fcf780cc3340eb9b946a2fc/8d237/avatar.avif 38w,/static/1653698f8fcf780cc3340eb9b946a2fc/2683f/avatar.avif 75w,/static/1653698f8fcf780cc3340eb9b946a2fc/2a822/avatar.avif 150w" sizes="(min-width: 150px) 150px, 100vw"/><source type="image/webp" srcSet="/static/1653698f8fcf780cc3340eb9b946a2fc/9a1a2/avatar.webp 38w,/static/1653698f8fcf780cc3340eb9b946a2fc/e0f0e/avatar.webp 75w,/static/1653698f8fcf780cc3340eb9b946a2fc/b8b26/avatar.webp 150w" sizes="(min-width: 150px) 150px, 100vw"/><img data-gatsby-image-ssr="" itemProp="image" data-main-image="" style="opacity:0" sizes="(min-width: 150px) 150px, 100vw" decoding="async" loading="lazy" src="/static/1653698f8fcf780cc3340eb9b946a2fc/a4582/avatar.jpg" srcSet="/static/1653698f8fcf780cc3340eb9b946a2fc/fc2b0/avatar.jpg 38w,/static/1653698f8fcf780cc3340eb9b946a2fc/d4afa/avatar.jpg 75w,/static/1653698f8fcf780cc3340eb9b946a2fc/a4582/avatar.jpg 150w" alt="Google"/></picture></noscript><script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script></div></div><div><h5 class="text-xl font-extrabold whitespace-nowrap" itemProp="familyName">Ivanov P.A.</h5><h5 class="text-xl font-extrabold whitespace-nowrap"><span itemProp="jobTitle">CEO</span>,<!-- --> <span itemProp="worksFor">Google</span></h5><h5 class="text-xl font-extrabold whitespace-nowrap" itemProp="workLocation">USA, Washington D.C.</h5></div></div><div class="review-body shrink-0 text-2xl" itemProp="reviewBody"><p>As a service company we wanted to create a website that would sum up all of our experiences gathered over the past 30 years.</p> +<p>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.</p></div></div></div><div class="flex shrink-0 min-w-0 cursor-pointer basis-full sm:basis-5/6 md:basis-4/6 lg:basis-1/2 xl:basis-2/5 3xl:basis-1/3 4xl:basis-1/4 rounded-2xl border-dashed border-main-10 mx-12 top-0 bottom-0"><div class="h-full flex flex-col grow p-8 text-main-100" itemProp="review" itemscope="" itemType="https://schema.org/Review"><div class="mb-6 flex flex-nowrap justify-start items-center border-b-[4px] border-dashed border-secondary-100 gradient-border pb-10" itemProp="author" itemscope="" itemType="https://schema.org/Person"><div class="inline-block rounded-full h-32 w-32 flex items-center mr-10"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained h-full object-cover rounded-full h-32 w-32"><div style="max-width:112px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height='112'%20width='112'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear" decoding="async" src="data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGAABAQEBAQAAAAAAAAAAAAAAAAQCBQb/xAAWAQEBAQAAAAAAAAAAAAAAAAACAQD/2gAMAwEAAhADEAAAAaIL4yu6KPG7MtCn/8QAGhAAAwEBAQEAAAAAAAAAAAAAAQIDBAARM//aAAgBAQABBQLZoaZJrnYH0blHALXlACvR3LfKd6TX/8QAFhEBAQEAAAAAAAAAAAAAAAAAARAR/9oACAEDAQE/AQMhP//EABURAQEAAAAAAAAAAAAAAAAAAAEQ/9oACAECAQE/AWM//8QAHBAAAgIDAQEAAAAAAAAAAAAAAAECERIxQSED/9oACAEBAAY/Aowht9FPPK9lkfo+Mw1ehJaLnJsXnSoy8P/EABsQAAMAAwEBAAAAAAAAAAAAAAABESExQVFh/9oACAEBAAE/IcWJnxnqZA9KkbyWJp9ILTob4aECiLMP1kXhNjDNtD//2gAMAwEAAgADAAAAEOfwQf/EABYRAQEBAAAAAAAAAAAAAAAAAAEQMf/aAAgBAwEBPxBiWYZ//8QAFxEBAQEBAAAAAAAAAAAAAAAAARARMf/aAAgBAgEBPxBImTon/8QAHRABAAICAwEBAAAAAAAAAAAAAQARITFRYXGBof/aAAgBAQABPxCjIt2BousHMXugCKJ3CO0Q+w/W4i8eRIhKtKcv5EDwsl4CiAinTiPDRGi0gocEtUsos15P/9k=" alt=""/><picture><source type="image/avif" data-srcset="/static/0aa0acaae4a05477269e4460fe099907/ee3b4/avatar.avif 28w,/static/0aa0acaae4a05477269e4460fe099907/4175e/avatar.avif 56w,/static/0aa0acaae4a05477269e4460fe099907/2110b/avatar.avif 112w,/static/0aa0acaae4a05477269e4460fe099907/2898f/avatar.avif 224w" sizes="(min-width: 112px) 112px, 100vw"/><source type="image/webp" data-srcset="/static/0aa0acaae4a05477269e4460fe099907/629a0/avatar.webp 28w,/static/0aa0acaae4a05477269e4460fe099907/f8744/avatar.webp 56w,/static/0aa0acaae4a05477269e4460fe099907/65bf6/avatar.webp 112w,/static/0aa0acaae4a05477269e4460fe099907/f42a0/avatar.webp 224w" sizes="(min-width: 112px) 112px, 100vw"/><img data-gatsby-image-ssr="" itemProp="image" data-main-image="" style="opacity:0" sizes="(min-width: 112px) 112px, 100vw" decoding="async" loading="lazy" data-src="/static/0aa0acaae4a05477269e4460fe099907/f41fb/avatar.jpg" data-srcset="/static/0aa0acaae4a05477269e4460fe099907/80e21/avatar.jpg 28w,/static/0aa0acaae4a05477269e4460fe099907/2c33f/avatar.jpg 56w,/static/0aa0acaae4a05477269e4460fe099907/f41fb/avatar.jpg 112w,/static/0aa0acaae4a05477269e4460fe099907/0e51d/avatar.jpg 224w" alt="Specifi Europe Srl"/></picture><noscript><picture><source type="image/avif" srcSet="/static/0aa0acaae4a05477269e4460fe099907/ee3b4/avatar.avif 28w,/static/0aa0acaae4a05477269e4460fe099907/4175e/avatar.avif 56w,/static/0aa0acaae4a05477269e4460fe099907/2110b/avatar.avif 112w,/static/0aa0acaae4a05477269e4460fe099907/2898f/avatar.avif 224w" sizes="(min-width: 112px) 112px, 100vw"/><source type="image/webp" srcSet="/static/0aa0acaae4a05477269e4460fe099907/629a0/avatar.webp 28w,/static/0aa0acaae4a05477269e4460fe099907/f8744/avatar.webp 56w,/static/0aa0acaae4a05477269e4460fe099907/65bf6/avatar.webp 112w,/static/0aa0acaae4a05477269e4460fe099907/f42a0/avatar.webp 224w" sizes="(min-width: 112px) 112px, 100vw"/><img data-gatsby-image-ssr="" itemProp="image" data-main-image="" style="opacity:0" sizes="(min-width: 112px) 112px, 100vw" decoding="async" loading="lazy" src="/static/0aa0acaae4a05477269e4460fe099907/f41fb/avatar.jpg" srcSet="/static/0aa0acaae4a05477269e4460fe099907/80e21/avatar.jpg 28w,/static/0aa0acaae4a05477269e4460fe099907/2c33f/avatar.jpg 56w,/static/0aa0acaae4a05477269e4460fe099907/f41fb/avatar.jpg 112w,/static/0aa0acaae4a05477269e4460fe099907/0e51d/avatar.jpg 224w" alt="Specifi Europe Srl"/></picture></noscript><script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script></div></div><div><h5 class="text-xl font-extrabold whitespace-nowrap" itemProp="familyName">Fabio Tantaro</h5><h5 class="text-xl font-extrabold whitespace-nowrap"><span itemProp="jobTitle">General Manger</span>,<!-- --> <span itemProp="worksFor">Specifi Europe Srl</span></h5><h5 class="text-xl font-extrabold whitespace-nowrap" itemProp="workLocation">Venezia, Italy</h5></div></div><div class="review-body shrink-0 text-2xl" itemProp="reviewBody"><p>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.</p></div></div></div><div class="flex shrink-0 min-w-0 cursor-pointer basis-full sm:basis-5/6 md:basis-4/6 lg:basis-1/2 xl:basis-2/5 3xl:basis-1/3 4xl:basis-1/4 rounded-2xl border-dashed border-main-10 mx-12 top-0 bottom-0"><div class="h-full flex flex-col grow p-8 text-main-100" itemProp="review" itemscope="" itemType="https://schema.org/Review"><div class="mb-6 flex flex-nowrap justify-start items-center border-b-[4px] border-dashed border-secondary-100 gradient-border pb-10" itemProp="author" itemscope="" itemType="https://schema.org/Person"><div class="inline-block rounded-full h-32 w-32 flex items-center mr-10"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained h-full object-cover rounded-full h-32 w-32"><div style="max-width:112px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height='112'%20width='112'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear" decoding="async" src="data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAMBBP/EABgBAQADAQAAAAAAAAAAAAAAAAABAgME/9oADAMBAAIQAxAAAAHhvO+fXyNRbAAf/8QAGxAAAQUBAQAAAAAAAAAAAAAAAQACAxASITH/2gAIAQEAAQUCHTLG1lDCOHo+3//EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQMBAT8BH//EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQIBAT8BH//EABwQAQACAQUAAAAAAAAAAAAAAAEAEQIQEiAhkf/aAAgBAQAGPwIIbcr07XyXYcf/xAAdEAEAAQQDAQAAAAAAAAAAAAABEQAhMVEQIEFh/9oACAEBAAE/IT9RiryCzkjHBgJnRS0hdBFAEDJ49P/aAAwDAQACAAMAAAAQ9PDD/8QAFhEBAQEAAAAAAAAAAAAAAAAAASAh/9oACAEDAQE/EF0j/8QAFREBAQAAAAAAAAAAAAAAAAAAIEH/2gAIAQIBAT8Qg//EAB4QAQEAAQMFAAAAAAAAAAAAAAERABAhUSBBcZGx/9oACAEBAAE/EK4yVcVmMNlC7BR9t0khXeg93CqGEBt37i+MkaVOQ56P/9k=" alt=""/><picture><source type="image/avif" data-srcset="/static/e695f1a48d28625cbba253860b1a47de/ee3b4/avatar.avif 28w,/static/e695f1a48d28625cbba253860b1a47de/4175e/avatar.avif 56w,/static/e695f1a48d28625cbba253860b1a47de/2110b/avatar.avif 112w" sizes="(min-width: 112px) 112px, 100vw"/><source type="image/webp" data-srcset="/static/e695f1a48d28625cbba253860b1a47de/629a0/avatar.webp 28w,/static/e695f1a48d28625cbba253860b1a47de/f8744/avatar.webp 56w,/static/e695f1a48d28625cbba253860b1a47de/65bf6/avatar.webp 112w" sizes="(min-width: 112px) 112px, 100vw"/><img data-gatsby-image-ssr="" itemProp="image" data-main-image="" style="opacity:0" sizes="(min-width: 112px) 112px, 100vw" decoding="async" loading="lazy" data-src="/static/e695f1a48d28625cbba253860b1a47de/f41fb/avatar.jpg" data-srcset="/static/e695f1a48d28625cbba253860b1a47de/80e21/avatar.jpg 28w,/static/e695f1a48d28625cbba253860b1a47de/2c33f/avatar.jpg 56w,/static/e695f1a48d28625cbba253860b1a47de/f41fb/avatar.jpg 112w" alt="Soytex LLC"/></picture><noscript><picture><source type="image/avif" srcSet="/static/e695f1a48d28625cbba253860b1a47de/ee3b4/avatar.avif 28w,/static/e695f1a48d28625cbba253860b1a47de/4175e/avatar.avif 56w,/static/e695f1a48d28625cbba253860b1a47de/2110b/avatar.avif 112w" sizes="(min-width: 112px) 112px, 100vw"/><source type="image/webp" srcSet="/static/e695f1a48d28625cbba253860b1a47de/629a0/avatar.webp 28w,/static/e695f1a48d28625cbba253860b1a47de/f8744/avatar.webp 56w,/static/e695f1a48d28625cbba253860b1a47de/65bf6/avatar.webp 112w" sizes="(min-width: 112px) 112px, 100vw"/><img data-gatsby-image-ssr="" itemProp="image" data-main-image="" style="opacity:0" sizes="(min-width: 112px) 112px, 100vw" decoding="async" loading="lazy" src="/static/e695f1a48d28625cbba253860b1a47de/f41fb/avatar.jpg" srcSet="/static/e695f1a48d28625cbba253860b1a47de/80e21/avatar.jpg 28w,/static/e695f1a48d28625cbba253860b1a47de/2c33f/avatar.jpg 56w,/static/e695f1a48d28625cbba253860b1a47de/f41fb/avatar.jpg 112w" alt="Soytex LLC"/></picture></noscript><script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script></div></div><div><h5 class="text-xl font-extrabold whitespace-nowrap" itemProp="familyName">SIA "Agrolats Group"</h5><h5 class="text-xl font-extrabold whitespace-nowrap"><span itemProp="jobTitle">CEO</span>,<!-- --> <span itemProp="worksFor">Soytex LLC</span></h5><h5 class="text-xl font-extrabold whitespace-nowrap" itemProp="workLocation">Dobele, Latvia</h5></div></div><div class="review-body shrink-0 text-2xl" itemProp="reviewBody"><p>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.</p> +<p>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.</p></div></div></div><div class="flex shrink-0 min-w-0 cursor-pointer basis-full sm:basis-5/6 md:basis-4/6 lg:basis-1/2 xl:basis-2/5 3xl:basis-1/3 4xl:basis-1/4 rounded-2xl border-dashed border-main-10 mx-12 top-0 bottom-0"><div class="h-full flex flex-col grow p-8 text-main-100" itemProp="review" itemscope="" itemType="https://schema.org/Review"><div class="mb-6 flex flex-nowrap justify-start items-center border-b-[4px] border-dashed border-secondary-100 gradient-border pb-10" itemProp="author" itemscope="" itemType="https://schema.org/Person"><div class="inline-block rounded-full h-32 w-32 flex items-center mr-10"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained h-full object-cover rounded-full h-32 w-32"><div style="max-width:150px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height='112.00000000000001'%20width='150'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear" decoding="async" src="data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAQBBf/EABUBAQEAAAAAAAAAAAAAAAAAAAEC/9oADAMBAAIQAxAAAAHmXRqnVJP/xAAbEAACAgMBAAAAAAAAAAAAAAABAgMSAAQjIf/aAAgBAQABBQJl61QwmmbB72IjV/P/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAWEQEBAQAAAAAAAAAAAAAAAAAAARH/2gAIAQIBAT8BjH//xAAcEAACAgIDAAAAAAAAAAAAAAAAAQIyIjFBUXH/2gAIAQEABj8CceiuhYsco8npU//EABoQAAIDAQEAAAAAAAAAAAAAAAABESExQVH/2gAIAQEAAT8hvnuhyu9RqKPBwW6iElW+znRn/9oADAMBAAIAAwAAABCEH//EABcRAQEBAQAAAAAAAAAAAAAAAAEAETH/2gAIAQMBAT8QTlrf/8QAFhEBAQEAAAAAAAAAAAAAAAAAAREA/9oACAECAQE/EFBunf/EABsQAQADAAMBAAAAAAAAAAAAAAEAESExQWFR/9oACAEBAAE/ENvWwV4xaUWWoIffGburdtnLHXQAvHTbi8Dn3lGsWgALpRP/2Q==" alt=""/><picture><source type="image/avif" data-srcset="/static/1653698f8fcf780cc3340eb9b946a2fc/8d237/avatar.avif 38w,/static/1653698f8fcf780cc3340eb9b946a2fc/2683f/avatar.avif 75w,/static/1653698f8fcf780cc3340eb9b946a2fc/2a822/avatar.avif 150w" sizes="(min-width: 150px) 150px, 100vw"/><source type="image/webp" data-srcset="/static/1653698f8fcf780cc3340eb9b946a2fc/9a1a2/avatar.webp 38w,/static/1653698f8fcf780cc3340eb9b946a2fc/e0f0e/avatar.webp 75w,/static/1653698f8fcf780cc3340eb9b946a2fc/b8b26/avatar.webp 150w" sizes="(min-width: 150px) 150px, 100vw"/><img data-gatsby-image-ssr="" itemProp="image" data-main-image="" style="opacity:0" sizes="(min-width: 150px) 150px, 100vw" decoding="async" loading="lazy" data-src="/static/1653698f8fcf780cc3340eb9b946a2fc/a4582/avatar.jpg" data-srcset="/static/1653698f8fcf780cc3340eb9b946a2fc/fc2b0/avatar.jpg 38w,/static/1653698f8fcf780cc3340eb9b946a2fc/d4afa/avatar.jpg 75w,/static/1653698f8fcf780cc3340eb9b946a2fc/a4582/avatar.jpg 150w" alt="Google"/></picture><noscript><picture><source type="image/avif" srcSet="/static/1653698f8fcf780cc3340eb9b946a2fc/8d237/avatar.avif 38w,/static/1653698f8fcf780cc3340eb9b946a2fc/2683f/avatar.avif 75w,/static/1653698f8fcf780cc3340eb9b946a2fc/2a822/avatar.avif 150w" sizes="(min-width: 150px) 150px, 100vw"/><source type="image/webp" srcSet="/static/1653698f8fcf780cc3340eb9b946a2fc/9a1a2/avatar.webp 38w,/static/1653698f8fcf780cc3340eb9b946a2fc/e0f0e/avatar.webp 75w,/static/1653698f8fcf780cc3340eb9b946a2fc/b8b26/avatar.webp 150w" sizes="(min-width: 150px) 150px, 100vw"/><img data-gatsby-image-ssr="" itemProp="image" data-main-image="" style="opacity:0" sizes="(min-width: 150px) 150px, 100vw" decoding="async" loading="lazy" src="/static/1653698f8fcf780cc3340eb9b946a2fc/a4582/avatar.jpg" srcSet="/static/1653698f8fcf780cc3340eb9b946a2fc/fc2b0/avatar.jpg 38w,/static/1653698f8fcf780cc3340eb9b946a2fc/d4afa/avatar.jpg 75w,/static/1653698f8fcf780cc3340eb9b946a2fc/a4582/avatar.jpg 150w" alt="Google"/></picture></noscript><script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script></div></div><div><h5 class="text-xl font-extrabold whitespace-nowrap" itemProp="familyName">Ivanov P.A.</h5><h5 class="text-xl font-extrabold whitespace-nowrap"><span itemProp="jobTitle">CEO</span>,<!-- --> <span itemProp="worksFor">Google</span></h5><h5 class="text-xl font-extrabold whitespace-nowrap" itemProp="workLocation">USA, Washington D.C.</h5></div></div><div class="review-body shrink-0 text-2xl" itemProp="reviewBody"><p>Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source.</p> +<p>Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.</p></div></div></div><div class="flex shrink-0 min-w-0 cursor-pointer basis-full sm:basis-5/6 md:basis-4/6 lg:basis-1/2 xl:basis-2/5 3xl:basis-1/3 4xl:basis-1/4 rounded-2xl border-dashed border-main-10 mx-12 top-0 bottom-0"><div class="h-full flex flex-col grow p-8 text-main-100" itemProp="review" itemscope="" itemType="https://schema.org/Review"><div class="mb-6 flex flex-nowrap justify-start items-center border-b-[4px] border-dashed border-secondary-100 gradient-border pb-10" itemProp="author" itemscope="" itemType="https://schema.org/Person"><div class="inline-block rounded-full h-32 w-32 flex items-center mr-10"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained h-full object-cover rounded-full h-32 w-32"><div style="max-width:150px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height='112.00000000000001'%20width='150'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear" decoding="async" src="data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAQBBf/EABUBAQEAAAAAAAAAAAAAAAAAAAEC/9oADAMBAAIQAxAAAAHmXRqnVJP/xAAbEAACAgMBAAAAAAAAAAAAAAABAgMSAAQjIf/aAAgBAQABBQJl61QwmmbB72IjV/P/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAWEQEBAQAAAAAAAAAAAAAAAAAAARH/2gAIAQIBAT8BjH//xAAcEAACAgIDAAAAAAAAAAAAAAAAAQIyIjFBUXH/2gAIAQEABj8CceiuhYsco8npU//EABoQAAIDAQEAAAAAAAAAAAAAAAABESExQVH/2gAIAQEAAT8hvnuhyu9RqKPBwW6iElW+znRn/9oADAMBAAIAAwAAABCEH//EABcRAQEBAQAAAAAAAAAAAAAAAAEAETH/2gAIAQMBAT8QTlrf/8QAFhEBAQEAAAAAAAAAAAAAAAAAAREA/9oACAECAQE/EFBunf/EABsQAQADAAMBAAAAAAAAAAAAAAEAESExQWFR/9oACAEBAAE/ENvWwV4xaUWWoIffGburdtnLHXQAvHTbi8Dn3lGsWgALpRP/2Q==" alt=""/><picture><source type="image/avif" data-srcset="/static/1653698f8fcf780cc3340eb9b946a2fc/8d237/avatar.avif 38w,/static/1653698f8fcf780cc3340eb9b946a2fc/2683f/avatar.avif 75w,/static/1653698f8fcf780cc3340eb9b946a2fc/2a822/avatar.avif 150w" sizes="(min-width: 150px) 150px, 100vw"/><source type="image/webp" data-srcset="/static/1653698f8fcf780cc3340eb9b946a2fc/9a1a2/avatar.webp 38w,/static/1653698f8fcf780cc3340eb9b946a2fc/e0f0e/avatar.webp 75w,/static/1653698f8fcf780cc3340eb9b946a2fc/b8b26/avatar.webp 150w" sizes="(min-width: 150px) 150px, 100vw"/><img data-gatsby-image-ssr="" itemProp="image" data-main-image="" style="opacity:0" sizes="(min-width: 150px) 150px, 100vw" decoding="async" loading="lazy" data-src="/static/1653698f8fcf780cc3340eb9b946a2fc/a4582/avatar.jpg" data-srcset="/static/1653698f8fcf780cc3340eb9b946a2fc/fc2b0/avatar.jpg 38w,/static/1653698f8fcf780cc3340eb9b946a2fc/d4afa/avatar.jpg 75w,/static/1653698f8fcf780cc3340eb9b946a2fc/a4582/avatar.jpg 150w" alt="Google"/></picture><noscript><picture><source type="image/avif" srcSet="/static/1653698f8fcf780cc3340eb9b946a2fc/8d237/avatar.avif 38w,/static/1653698f8fcf780cc3340eb9b946a2fc/2683f/avatar.avif 75w,/static/1653698f8fcf780cc3340eb9b946a2fc/2a822/avatar.avif 150w" sizes="(min-width: 150px) 150px, 100vw"/><source type="image/webp" srcSet="/static/1653698f8fcf780cc3340eb9b946a2fc/9a1a2/avatar.webp 38w,/static/1653698f8fcf780cc3340eb9b946a2fc/e0f0e/avatar.webp 75w,/static/1653698f8fcf780cc3340eb9b946a2fc/b8b26/avatar.webp 150w" sizes="(min-width: 150px) 150px, 100vw"/><img data-gatsby-image-ssr="" itemProp="image" data-main-image="" style="opacity:0" sizes="(min-width: 150px) 150px, 100vw" decoding="async" loading="lazy" src="/static/1653698f8fcf780cc3340eb9b946a2fc/a4582/avatar.jpg" srcSet="/static/1653698f8fcf780cc3340eb9b946a2fc/fc2b0/avatar.jpg 38w,/static/1653698f8fcf780cc3340eb9b946a2fc/d4afa/avatar.jpg 75w,/static/1653698f8fcf780cc3340eb9b946a2fc/a4582/avatar.jpg 150w" alt="Google"/></picture></noscript><script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script></div></div><div><h5 class="text-xl font-extrabold whitespace-nowrap" itemProp="familyName">Ivanov P.A.</h5><h5 class="text-xl font-extrabold whitespace-nowrap"><span itemProp="jobTitle">CEO</span>,<!-- --> <span itemProp="worksFor">Google</span></h5><h5 class="text-xl font-extrabold whitespace-nowrap" itemProp="workLocation">USA, Washington D.C.</h5></div></div><div class="review-body shrink-0 text-2xl" itemProp="reviewBody"><p>Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.</p></div></div></div><div class="flex shrink-0 min-w-0 cursor-pointer basis-full sm:basis-5/6 md:basis-4/6 lg:basis-1/2 xl:basis-2/5 3xl:basis-1/3 4xl:basis-1/4 rounded-2xl border-dashed border-main-10 mx-12 top-0 bottom-0"><div class="h-full flex flex-col grow p-8 text-main-100" itemProp="review" itemscope="" itemType="https://schema.org/Review"><div class="mb-6 flex flex-nowrap justify-start items-center border-b-[4px] border-dashed border-secondary-100 gradient-border pb-10" itemProp="author" itemscope="" itemType="https://schema.org/Person"><div class="inline-block rounded-full h-32 w-32 flex items-center mr-10"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained h-full object-cover rounded-full h-32 w-32"><div style="max-width:150px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height='112.00000000000001'%20width='150'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear" decoding="async" src="data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAQBBf/EABUBAQEAAAAAAAAAAAAAAAAAAAEC/9oADAMBAAIQAxAAAAHmXRqnVJP/xAAbEAACAgMBAAAAAAAAAAAAAAABAgMSAAQjIf/aAAgBAQABBQJl61QwmmbB72IjV/P/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAWEQEBAQAAAAAAAAAAAAAAAAAAARH/2gAIAQIBAT8BjH//xAAcEAACAgIDAAAAAAAAAAAAAAAAAQIyIjFBUXH/2gAIAQEABj8CceiuhYsco8npU//EABoQAAIDAQEAAAAAAAAAAAAAAAABESExQVH/2gAIAQEAAT8hvnuhyu9RqKPBwW6iElW+znRn/9oADAMBAAIAAwAAABCEH//EABcRAQEBAQAAAAAAAAAAAAAAAAEAETH/2gAIAQMBAT8QTlrf/8QAFhEBAQEAAAAAAAAAAAAAAAAAAREA/9oACAECAQE/EFBunf/EABsQAQADAAMBAAAAAAAAAAAAAAEAESExQWFR/9oACAEBAAE/ENvWwV4xaUWWoIffGburdtnLHXQAvHTbi8Dn3lGsWgALpRP/2Q==" alt=""/><picture><source type="image/avif" data-srcset="/static/1653698f8fcf780cc3340eb9b946a2fc/8d237/avatar.avif 38w,/static/1653698f8fcf780cc3340eb9b946a2fc/2683f/avatar.avif 75w,/static/1653698f8fcf780cc3340eb9b946a2fc/2a822/avatar.avif 150w" sizes="(min-width: 150px) 150px, 100vw"/><source type="image/webp" data-srcset="/static/1653698f8fcf780cc3340eb9b946a2fc/9a1a2/avatar.webp 38w,/static/1653698f8fcf780cc3340eb9b946a2fc/e0f0e/avatar.webp 75w,/static/1653698f8fcf780cc3340eb9b946a2fc/b8b26/avatar.webp 150w" sizes="(min-width: 150px) 150px, 100vw"/><img data-gatsby-image-ssr="" itemProp="image" data-main-image="" style="opacity:0" sizes="(min-width: 150px) 150px, 100vw" decoding="async" loading="lazy" data-src="/static/1653698f8fcf780cc3340eb9b946a2fc/a4582/avatar.jpg" data-srcset="/static/1653698f8fcf780cc3340eb9b946a2fc/fc2b0/avatar.jpg 38w,/static/1653698f8fcf780cc3340eb9b946a2fc/d4afa/avatar.jpg 75w,/static/1653698f8fcf780cc3340eb9b946a2fc/a4582/avatar.jpg 150w" alt="Google"/></picture><noscript><picture><source type="image/avif" srcSet="/static/1653698f8fcf780cc3340eb9b946a2fc/8d237/avatar.avif 38w,/static/1653698f8fcf780cc3340eb9b946a2fc/2683f/avatar.avif 75w,/static/1653698f8fcf780cc3340eb9b946a2fc/2a822/avatar.avif 150w" sizes="(min-width: 150px) 150px, 100vw"/><source type="image/webp" srcSet="/static/1653698f8fcf780cc3340eb9b946a2fc/9a1a2/avatar.webp 38w,/static/1653698f8fcf780cc3340eb9b946a2fc/e0f0e/avatar.webp 75w,/static/1653698f8fcf780cc3340eb9b946a2fc/b8b26/avatar.webp 150w" sizes="(min-width: 150px) 150px, 100vw"/><img data-gatsby-image-ssr="" itemProp="image" data-main-image="" style="opacity:0" sizes="(min-width: 150px) 150px, 100vw" decoding="async" loading="lazy" src="/static/1653698f8fcf780cc3340eb9b946a2fc/a4582/avatar.jpg" srcSet="/static/1653698f8fcf780cc3340eb9b946a2fc/fc2b0/avatar.jpg 38w,/static/1653698f8fcf780cc3340eb9b946a2fc/d4afa/avatar.jpg 75w,/static/1653698f8fcf780cc3340eb9b946a2fc/a4582/avatar.jpg 150w" alt="Google"/></picture></noscript><script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script></div></div><div><h5 class="text-xl font-extrabold whitespace-nowrap" itemProp="familyName">Ivanov P.A.</h5><h5 class="text-xl font-extrabold whitespace-nowrap"><span itemProp="jobTitle">CEO</span>,<!-- --> <span itemProp="worksFor">Google</span></h5><h5 class="text-xl font-extrabold whitespace-nowrap" itemProp="workLocation">USA, Washington D.C.</h5></div></div><div class="review-body shrink-0 text-2xl" itemProp="reviewBody"><p>As a service company we wanted to create a website that would sum up all of our experiences gathered over the past 30 years.</p> <p>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.</p> -<p>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.</p></div></div></div><div class="flex shrink-0 min-w-0 cursor-pointer basis-full sm:basis-5/6 md:basis-4/6 lg:basis-1/2 xl:basis-2/5 3xl:basis-1/3 4xl:basis-1/4 rounded-2xl border-dashed border-main-10 mx-12 top-0 bottom-0"><div class="h-full flex flex-col grow p-8 text-main-100" itemProp="review" itemscope="" itemType="https://schema.org/Review"><div class="mb-6 flex flex-nowrap justify-start items-center border-b-[4px] border-dashed border-secondary-100 gradient-border pb-10" itemProp="author" itemscope="" itemType="https://schema.org/Person"><div class="inline-block rounded-full h-32 w-32 flex items-center mr-10"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained h-full object-cover rounded-full h-32 w-32"><div style="max-width:150px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height='112.00000000000001'%20width='150'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear" decoding="async" src="data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAQBBf/EABUBAQEAAAAAAAAAAAAAAAAAAAEC/9oADAMBAAIQAxAAAAHmXRqnVJP/xAAbEAACAgMBAAAAAAAAAAAAAAABAgMSAAQjIf/aAAgBAQABBQJl61QwmmbB72IjV/P/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAWEQEBAQAAAAAAAAAAAAAAAAAAARH/2gAIAQIBAT8BjH//xAAcEAACAgIDAAAAAAAAAAAAAAAAAQIyIjFBUXH/2gAIAQEABj8CceiuhYsco8npU//EABoQAAIDAQEAAAAAAAAAAAAAAAABESExQVH/2gAIAQEAAT8hvnuhyu9RqKPBwW6iElW+znRn/9oADAMBAAIAAwAAABCEH//EABcRAQEBAQAAAAAAAAAAAAAAAAEAETH/2gAIAQMBAT8QTlrf/8QAFhEBAQEAAAAAAAAAAAAAAAAAAREA/9oACAECAQE/EFBunf/EABsQAQADAAMBAAAAAAAAAAAAAAEAESExQWFR/9oACAEBAAE/ENvWwV4xaUWWoIffGburdtnLHXQAvHTbi8Dn3lGsWgALpRP/2Q==" alt=""/><picture><source type="image/avif" data-srcset="/static/1653698f8fcf780cc3340eb9b946a2fc/8d237/avatar.avif 38w,/static/1653698f8fcf780cc3340eb9b946a2fc/2683f/avatar.avif 75w,/static/1653698f8fcf780cc3340eb9b946a2fc/2a822/avatar.avif 150w" sizes="(min-width: 150px) 150px, 100vw"/><source type="image/webp" data-srcset="/static/1653698f8fcf780cc3340eb9b946a2fc/9a1a2/avatar.webp 38w,/static/1653698f8fcf780cc3340eb9b946a2fc/e0f0e/avatar.webp 75w,/static/1653698f8fcf780cc3340eb9b946a2fc/b8b26/avatar.webp 150w" sizes="(min-width: 150px) 150px, 100vw"/><img data-gatsby-image-ssr="" itemProp="image" data-main-image="" style="opacity:0" sizes="(min-width: 150px) 150px, 100vw" decoding="async" loading="lazy" data-src="/static/1653698f8fcf780cc3340eb9b946a2fc/a4582/avatar.jpg" data-srcset="/static/1653698f8fcf780cc3340eb9b946a2fc/fc2b0/avatar.jpg 38w,/static/1653698f8fcf780cc3340eb9b946a2fc/d4afa/avatar.jpg 75w,/static/1653698f8fcf780cc3340eb9b946a2fc/a4582/avatar.jpg 150w" alt="Google"/></picture><noscript><picture><source type="image/avif" srcSet="/static/1653698f8fcf780cc3340eb9b946a2fc/8d237/avatar.avif 38w,/static/1653698f8fcf780cc3340eb9b946a2fc/2683f/avatar.avif 75w,/static/1653698f8fcf780cc3340eb9b946a2fc/2a822/avatar.avif 150w" sizes="(min-width: 150px) 150px, 100vw"/><source type="image/webp" srcSet="/static/1653698f8fcf780cc3340eb9b946a2fc/9a1a2/avatar.webp 38w,/static/1653698f8fcf780cc3340eb9b946a2fc/e0f0e/avatar.webp 75w,/static/1653698f8fcf780cc3340eb9b946a2fc/b8b26/avatar.webp 150w" sizes="(min-width: 150px) 150px, 100vw"/><img data-gatsby-image-ssr="" itemProp="image" data-main-image="" style="opacity:0" sizes="(min-width: 150px) 150px, 100vw" decoding="async" loading="lazy" src="/static/1653698f8fcf780cc3340eb9b946a2fc/a4582/avatar.jpg" srcSet="/static/1653698f8fcf780cc3340eb9b946a2fc/fc2b0/avatar.jpg 38w,/static/1653698f8fcf780cc3340eb9b946a2fc/d4afa/avatar.jpg 75w,/static/1653698f8fcf780cc3340eb9b946a2fc/a4582/avatar.jpg 150w" alt="Google"/></picture></noscript><script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script></div></div><div><h5 class="text-xl font-extrabold whitespace-nowrap" itemProp="familyName">Ivanov P.A.</h5><h5 class="text-xl font-extrabold whitespace-nowrap"><span itemProp="jobTitle">CEO</span>,<!-- --> <span itemProp="worksFor">Google</span></h5><h5 class="text-xl font-extrabold whitespace-nowrap" itemProp="workLocation">USA, Washington D.C.</h5></div></div><div class="review-body shrink-0 text-2xl" itemProp="reviewBody"><p>Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.</p></div></div></div></div></div></div></section><svg class="w-full" height="8"><line width="800" height="8" stroke="white" stroke-width="8" stroke-dasharray="8 8" x1="0" x2="100%" y1="4" y2="4"></line><line width="800" height="8" stroke="black" stroke-width="8" stroke-dasharray="8 8" x1="8" x2="100%" y1="4" y2="4"></line></svg><section class="w-full py-48 px-6 bg-main-100 text-secondary-100"><div class="flex w-full max-w-7xl mx-auto flex-col items-center"><div class="flex justify-between w-full items-center pb-10 md:pb-16"><h3 class="text-4xl md:text-5xl font-black w-full max-w-7xl mx-auto pr-8">NEW IN OUR BLOG</h3><a class="text-end text-2xl md:text-3xl text-secondary-10 hover:text-secondary-100 font-normal cursor-pointer whitespace-nowrap" href="/blog/">ALL POSTS<!-- --> →</a></div><a class="flex flex-col sm:flex-row w-full text-secondary-10 hover:text-secondary-100 undefined " itemscope="" itemType="https://schema.org/Article" href="/blog/b2ffcc60-69e6-5663-80d7-d9c1b58e7267/"><div class="hidden md:flex md:basis-1/4 shrink-0 justify-center p-6" itemProp="image"><svg class="" width="127" height="127" viewBox="0 0 127 127" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M15.875 7.9375H111.125C113.23 7.9375 115.249 8.77377 116.738 10.2623C118.226 11.7509 119.062 13.7698 119.062 15.875V107.839L103.188 91.9639C100.211 88.9865 96.1738 87.3134 91.9639 87.3125H15.875C13.7698 87.3125 11.7509 86.4762 10.2623 84.9877C8.77377 83.4991 7.9375 81.4802 7.9375 79.375V15.875C7.9375 13.7698 8.77377 11.7509 10.2623 10.2623C11.7509 8.77377 13.7698 7.9375 15.875 7.9375ZM111.125 0C115.335 0 119.373 1.67254 122.35 4.64968C125.327 7.62682 127 11.6647 127 15.875V117.419C127 118.205 126.767 118.972 126.33 119.625C125.893 120.278 125.273 120.786 124.547 121.086C123.822 121.386 123.023 121.464 122.253 121.31C121.483 121.156 120.776 120.777 120.221 120.221L97.5757 97.5757C96.0875 96.087 94.0689 95.2505 91.9639 95.25H15.875C11.6647 95.25 7.62682 93.5775 4.64968 90.6003C1.67254 87.6232 0 83.5853 0 79.375V15.875C0 11.6647 1.67254 7.62682 4.64968 4.64968C7.62682 1.67254 11.6647 0 15.875 0L111.125 0Z" fill="#FAFAFA"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M56.0865 37.7825C54.5404 35.3747 52.2544 33.5337 49.5723 32.5363C46.8902 31.5389 43.9569 31.439 41.2131 32.2515C38.4694 33.0641 36.0635 34.7453 34.357 37.0423C32.6506 39.3394 31.7358 42.1283 31.7502 44.9898C31.7516 47.3594 32.3893 49.6851 33.5968 51.7241C34.8042 53.763 36.537 55.4402 38.6142 56.5806C40.6914 57.721 43.0367 58.2826 45.4051 58.2069C47.7735 58.1311 50.0781 57.4207 52.0781 56.1499C51.0383 59.2376 49.1015 62.5316 45.9107 65.8336C45.3002 66.4652 44.9656 67.3134 44.9804 68.1916C44.9953 69.0699 45.3585 69.9063 45.99 70.5168C46.6216 71.1273 47.4698 71.4619 48.348 71.447C49.2263 71.4321 50.0627 71.0689 50.6732 70.4374C62.4683 58.2136 60.9364 44.9263 56.0865 37.7984V37.7825ZM87.8365 37.7825C86.2904 35.3747 84.0044 33.5337 81.3223 32.5363C78.6403 31.5389 75.7069 31.439 72.9631 32.2515C70.2194 33.0641 67.8135 34.7453 66.107 37.0423C64.4006 39.3394 63.4858 42.1283 63.5002 44.9898C63.5016 47.3594 64.1393 49.6851 65.3468 51.7241C66.5542 53.763 68.287 55.4402 70.3642 56.5806C72.4414 57.721 74.7867 58.2826 77.1551 58.2069C79.5235 58.1311 81.8281 57.4207 83.8281 56.1499C82.7883 59.2376 80.8515 62.5316 77.6607 65.8336C77.0502 66.4652 76.7156 67.3134 76.7304 68.1916C76.7453 69.0699 77.1085 69.9063 77.74 70.5168C78.3716 71.1273 79.2198 71.4619 80.098 71.447C80.9763 71.4321 81.8127 71.0689 82.4232 70.4374C94.2183 58.2136 92.6864 44.9263 87.8365 37.7984V37.7825Z" fill="#FAFAFA"></path></svg></div><div class="flex flex-col basis-1/2 md:basis-1/3 shrink-0 mb-12 sm:mb-0"><p class="text-3xl font-light text-secondary-10 pb-5">Jun 12, 2023</p><h3 class="text-4xl font-bold text-secondary-100" itemProp="headline">Awesome post 6</h3></div><div class="flex flex-col basis-1/2 md:basis-1/3 shrink-0"><p class="font-normal text-2xl text-secondary-10" itemProp="abstract">Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites<!-- -->...</p><div class="flex justify-between items-center pt-6"><p class="text-2xl font-bold">Read more</p><p><svg class="inline" width="18" height="18" viewBox="0 0 18 18" fill="none"><g clip-path="url(#clip0_829_432)"><path fill-rule="evenodd" clip-rule="evenodd" d="M9.57938 1.14638C9.38658 1.13214 9.19332 1.12501 9 1.125V0C9.2211 0.000107806 9.44213 0.00836341 9.66262 0.02475L9.57938 1.14638ZM11.8339 1.65263C11.4733 1.51347 11.1029 1.40104 10.7258 1.31625L10.9721 0.21825C11.403 0.315 11.8271 0.44325 12.2389 0.603L11.8339 1.65263ZM13.3751 2.45138C13.2143 2.34411 13.0495 2.24279 12.8812 2.14763L13.4359 1.16888C13.8205 1.38683 14.1886 1.63274 14.5372 1.90463L13.8454 2.79225C13.6929 2.67326 13.536 2.55993 13.3751 2.4525V2.45138ZM15.4384 4.46513C15.2158 4.14897 14.9703 3.84966 14.7037 3.56963L15.5182 2.79338C15.822 3.114 16.1032 3.45713 16.3586 3.81713L15.4384 4.46513ZM16.2754 5.98613C16.2015 5.80777 16.1212 5.63215 16.0346 5.45963L17.0392 4.95338C17.2379 5.34835 17.4071 5.75746 17.5455 6.17738L16.4767 6.5295C16.4163 6.34597 16.3491 6.16473 16.2754 5.98613ZM16.8716 8.8065C16.8625 8.41988 16.8249 8.03446 16.7591 7.65338L17.8672 7.46213C17.9426 7.89638 17.9865 8.33738 17.9977 8.77838L16.8727 8.8065H16.8716ZM16.7242 10.5368C16.7614 10.3455 16.7917 10.1554 16.8154 9.963L17.9325 10.1014C17.8785 10.5403 17.792 10.9746 17.6737 11.4008L16.5892 11.1004C16.641 10.9148 16.686 10.7269 16.7242 10.5368ZM15.6532 13.2131C15.8602 12.8869 16.0425 12.5449 16.2 12.1916L17.2282 12.6473C17.0482 13.0523 16.8401 13.4415 16.6039 13.815L15.6532 13.2131ZM14.5687 14.5688C14.706 14.4315 14.8376 14.2898 14.9625 14.1435L15.8152 14.8781C15.6708 15.0456 15.5204 15.2077 15.3641 15.3641L14.5687 14.5688Z" fill="black"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M8.99961 1.125C7.7046 1.12509 6.4296 1.44455 5.28753 2.05508C4.14547 2.66561 3.1716 3.54836 2.45217 4.62516C1.73275 5.70195 1.28998 6.93954 1.16308 8.22832C1.03618 9.5171 1.22907 10.8173 1.72466 12.0137C2.22025 13.2101 3.00325 14.2659 4.0043 15.0874C5.00535 15.909 6.19356 16.471 7.46368 16.7237C8.73381 16.9763 10.0466 16.9119 11.2859 16.536C12.5252 16.1601 13.6526 15.4844 14.5684 14.5688L15.3637 15.3641C14.3172 16.4113 13.0285 17.1841 11.6119 17.6141C10.1953 18.0442 8.69447 18.1182 7.24243 17.8295C5.79039 17.5409 4.43195 16.8986 3.28748 15.9595C2.143 15.0204 1.24784 13.8135 0.681284 12.4458C0.114733 11.078 -0.105707 9.59162 0.0394939 8.1183C0.184695 6.64499 0.691055 5.23024 1.51371 3.9994C2.33636 2.76855 3.44991 1.75962 4.75569 1.062C6.06147 0.364382 7.51916 -0.000392324 8.99961 3.16641e-07V1.125Z" fill="black"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M8.4375 3.375C8.58668 3.375 8.72976 3.43426 8.83525 3.53975C8.94074 3.64524 9 3.78832 9 3.9375V9.79875L12.654 11.8867C12.7798 11.9626 12.8709 12.0847 12.9078 12.2268C12.9448 12.369 12.9247 12.5199 12.8518 12.6475C12.779 12.775 12.6591 12.869 12.5179 12.9093C12.3766 12.9496 12.2252 12.9331 12.096 12.8632L8.1585 10.6132C8.07241 10.5641 8.00084 10.493 7.95106 10.4073C7.90127 10.3215 7.87503 10.2241 7.875 10.125V3.9375C7.875 3.78832 7.93426 3.64524 8.03975 3.53975C8.14524 3.43426 8.28832 3.375 8.4375 3.375Z" fill="black"></path></g><defs><clipPath id="clip0_829_432"><rect width="18" height="18" fill="white"></rect></clipPath></defs></svg><span class="inline text-xl font-light italic pl-4">Reading time: <!-- -->3<!-- -->m.</span></p></div></div><div class="hidden" itemProp="copyrightHolder" itemscope="" itemType="https://schema.org/LocalBusiness"><meta itemProp="sameAs" content="https://facebook.com/codecavepro"/><meta itemProp="sameAs" content="https://youtube.com/c/CodeCavePro"/><meta itemProp="sameAs" content="https://twitter.com/codecavepro"/><meta itemProp="sameAs" content="https://vk.com/codecavepro"/><meta itemProp="sameAs" content="https://github.com/CodeCavePro"/><meta itemProp="sameAs" content="https://instagram.com/codecave.pro"/><meta itemProp="sameAs" content="https://linkedin.com/company/codecavepro"/><meta itemProp="name" content="CodeCave"/><meta itemProp="currenciesAccepted" content="USD, EUR"/><meta itemProp="openingHours" content="Mo-Fr 09:00-18:00"/><meta name="description" content="Outsourcing software and web development"/><meta name="image" content="/logo.svg"/></div></a></div></section><footer class="bg-main-100 border-t-4 border-secondary-100 border-solid p-4"><div class="flex w-full max-w-7xl mx-auto min-h-[8.5rem]"><nav class="w-full flex items-center flex-col md:flex-row"><a aria-current="page" class="flex flex-1 items-center justify-start basis-1/4" href="/"><svg width="226" height="23" viewBox="0 0 226 23" fill="none"><path d="M58.4727 22.6392V6.77134V0.0839844C58.4727 0.0839844 70.4009 0.201314 74.8769 0.201314C76.3765 0.201314 77.8531 0.406627 79.2605 0.934577C81.5908 1.81449 82.9982 3.57432 83.252 6.21407C83.575 9.55775 83.5289 12.9601 83.2981 16.3038C83.0443 20.0874 80.9217 22.2285 77.4148 22.6392H58.4727ZM65.5096 17.5357C66.3641 17.5357 67.2129 17.5405 68.0576 17.5453C70.1551 17.5572 72.2276 17.5691 74.3001 17.5063C75.6152 17.477 76.4688 16.5091 76.4919 15.1012C76.538 12.6961 76.538 10.291 76.4919 7.88592C76.4688 6.56604 75.6613 5.5688 74.4846 5.53947C72.3613 5.4767 70.238 5.48856 68.0979 5.50051C67.2382 5.50532 66.3758 5.51013 65.5096 5.51013V17.5357Z" fill="#F7F7F7"></path><path d="M58.4727 22.6392V6.77134V0.0839844C58.4727 0.0839844 70.4009 0.201314 74.8769 0.201314C76.3765 0.201314 77.8531 0.406627 79.2605 0.934577C81.5908 1.81449 82.9982 3.57432 83.252 6.21407C83.575 9.55775 83.5289 12.9601 83.2981 16.3038C83.0443 20.0874 80.9217 22.2285 77.4148 22.6392H58.4727ZM65.5096 17.5357C66.3641 17.5357 67.2129 17.5405 68.0576 17.5453C70.1551 17.5572 72.2276 17.5691 74.3001 17.5063C75.6152 17.477 76.4688 16.5091 76.4919 15.1012C76.538 12.6961 76.538 10.291 76.4919 7.88592C76.4688 6.56604 75.6613 5.5688 74.4846 5.53947C72.3613 5.4767 70.238 5.48856 68.0979 5.50051C67.2382 5.50532 66.3758 5.51013 65.5096 5.51013V17.5357Z" stroke="url(#paint0_linear_807_267)"></path><path d="M32.4682 22.7858C31.2223 22.5804 30.161 21.8178 29.2842 20.7619C28.9612 20.3806 28.7305 19.9994 28.6151 19.7647C28.2229 19.0314 28.0153 18.1809 27.923 17.1543C27.5769 13.664 27.6461 10.1736 27.8307 6.68328C28.0614 2.48901 29.7687 0.494546 33.714 0.259902C38.3285 -0.00407292 42.9659 -0.150736 47.5803 0.377213C50.5105 0.72918 52.287 2.63566 52.5408 5.80336C52.8638 9.55767 52.8408 13.3413 52.5408 17.0956C52.4485 18.2395 52.2409 19.0314 51.941 19.6181C51.9367 19.6235 51.9244 19.6462 51.9048 19.6825C51.8188 19.8416 51.5912 20.2626 51.2719 20.6446C50.049 22.0818 48.0187 22.5218 47.5342 22.5804C45.0655 22.9031 40.2204 23.2257 32.4682 22.7858ZM45.8499 11.5815C45.8499 11.1893 45.8525 10.8004 45.8551 10.4126C45.8602 9.64026 45.8653 8.8722 45.8499 8.09114C45.8038 6.44863 45.0193 5.53939 43.4966 5.51006C41.3047 5.4514 39.0898 5.4514 36.898 5.51006C35.3752 5.53939 34.6369 6.4193 34.6139 8.00315C34.5908 10.3203 34.5908 12.6667 34.6139 14.9838C34.6369 16.5383 35.4214 17.4769 36.898 17.5063C39.136 17.5649 41.374 17.5649 43.6119 17.5063C45.0424 17.4769 45.8269 16.509 45.8499 14.9252C45.8653 14.2017 45.8602 13.4521 45.8551 12.7026C45.8525 12.3278 45.8499 11.953 45.8499 11.5815Z" fill="#F7F7F7"></path><path d="M32.4682 22.7858C31.2223 22.5804 30.161 21.8178 29.2842 20.7619C28.9612 20.3806 28.7305 19.9994 28.6151 19.7647C28.2229 19.0314 28.0153 18.1809 27.923 17.1543C27.5769 13.664 27.6461 10.1736 27.8307 6.68328C28.0614 2.48901 29.7687 0.494546 33.714 0.259902C38.3285 -0.00407292 42.9659 -0.150736 47.5803 0.377213C50.5105 0.72918 52.287 2.63566 52.5408 5.80336C52.8638 9.55767 52.8408 13.3413 52.5408 17.0956C52.4485 18.2395 52.2409 19.0314 51.941 19.6181C51.9367 19.6235 51.9244 19.6462 51.9048 19.6825C51.8188 19.8416 51.5912 20.2626 51.2719 20.6446C50.049 22.0818 48.0187 22.5218 47.5342 22.5804C45.0655 22.9031 40.2204 23.2257 32.4682 22.7858ZM45.8499 11.5815C45.8499 11.1893 45.8525 10.8004 45.8551 10.4126C45.8602 9.64026 45.8653 8.8722 45.8499 8.09114C45.8038 6.44863 45.0193 5.53939 43.4966 5.51006C41.3047 5.4514 39.0898 5.4514 36.898 5.51006C35.3752 5.53939 34.6369 6.4193 34.6139 8.00315C34.5908 10.3203 34.5908 12.6667 34.6139 14.9838C34.6369 16.5383 35.4214 17.4769 36.898 17.5063C39.136 17.5649 41.374 17.5649 43.6119 17.5063C45.0424 17.4769 45.8269 16.509 45.8499 14.9252C45.8653 14.2017 45.8602 13.4521 45.8551 12.7026C45.8525 12.3278 45.8499 11.953 45.8499 11.5815Z" stroke="url(#paint1_linear_807_267)"></path><path d="M221.73 17.5354C222.123 17.5354 222.399 17.5941 222.63 17.7701C222.976 18.0047 223.115 18.5034 223.184 18.6207C223.438 19.3539 224.084 20.7031 225.122 22.8443C224.937 22.8443 224.776 22.8443 224.661 22.8443C224.522 22.8443 208.21 22.8443 200.273 22.8443C200.273 22.6683 200.32 0.787715 200.32 0.259766C207.979 0.259766 215.57 0.259766 223.207 0.259766C223.207 1.96094 223.207 3.63277 223.207 5.42193C217.947 5.42193 212.571 5.42193 207.264 5.42193C207.264 5.94988 207.218 8.09101 207.218 8.58963C211.21 8.58963 215.109 8.58963 219.054 8.58963C219.054 10.3788 219.054 12.0506 219.054 13.8398C215.178 13.8398 211.279 13.8398 207.287 13.8398C207.287 15.101 207.287 16.3329 207.287 17.4768" fill="#F7F7F7"></path><path d="M109.877 17.5354C110.269 17.5354 110.546 17.5941 110.777 17.7701C111.123 18.0047 111.261 18.5034 111.33 18.6207C111.584 19.3539 112.23 20.7031 113.268 22.8443C113.084 22.8443 112.922 22.8443 112.807 22.8443C112.669 22.8443 96.3567 22.8443 88.4199 22.8443C88.4199 22.6683 88.4661 0.787715 88.4661 0.259766C96.126 0.259766 103.717 0.259766 111.354 0.259766C111.354 1.96094 111.354 3.63277 111.354 5.42193C106.093 5.42193 100.717 5.42193 95.4107 5.42193C95.4107 5.94988 95.3646 8.09101 95.3646 8.58963C99.3561 8.58963 103.255 8.58963 107.201 8.58963C107.201 10.3788 107.201 12.0506 107.201 13.8398C103.324 13.8398 99.4253 13.8398 95.4338 13.8398C95.4338 15.101 95.4338 16.3329 95.4338 17.4768" fill="#F7F7F7"></path><path d="M88.4199 22.8443C88.443 16.7729 88.4661 10.7308 88.4661 4.65935C88.4661 3.22215 88.4661 1.78495 88.4661 0.259766C96.126 0.259766 103.717 0.259766 111.377 0.259766C111.377 1.96094 111.377 3.6621 111.377 5.4806C106.07 5.4806 100.787 5.4806 95.4569 5.4806C95.4569 6.5365 95.4569 7.47507 95.4569 8.5603C99.333 8.5603 103.232 8.5603 107.201 8.5603C107.201 10.3788 107.201 12.08 107.201 13.8985C103.348 13.8985 99.4483 13.8985 95.48 13.8985C95.48 15.1303 95.48 16.2742 95.48 17.4475C95.8491 17.6821 96.2875 17.5648 96.6797 17.5648C101.11 17.5648 105.562 17.5941 109.992 17.5648C110.638 17.5648 111.007 17.7701 111.261 18.4154C111.792 19.7646 112.415 21.0844 112.945 22.3457C112.669 22.8736 112.115 22.375 111.953 22.8736C104.086 22.8443 96.2644 22.8443 88.4199 22.8443Z" fill="#F7F7F7"></path><path d="M141.971 22.8441C142.201 21.7296 142.801 20.791 143.263 19.8231C146.124 13.605 149.031 7.41626 151.869 1.16885C152.215 0.40626 152.607 0.142278 153.391 0.171608C155.86 0.230269 158.329 0.200939 160.774 0.171608C161.282 0.171608 161.651 0.230273 161.928 0.816884C165.25 8.09086 168.619 15.3355 171.964 22.5802C171.987 22.6388 171.987 22.7268 172.01 22.8148C169.473 22.8148 166.935 22.8148 164.397 22.8148C163.912 21.6416 163.405 20.4977 162.966 19.3245C162.782 18.8259 162.482 18.7085 162.02 18.7085C158.675 18.7378 155.329 18.7378 151.984 18.7085C151.546 18.7085 151.223 18.7965 151.015 19.2658C150.507 20.4684 149.931 21.6122 149.377 22.8148C146.908 22.8441 144.439 22.8441 141.971 22.8441ZM157.175 5.24581C157.06 5.24581 156.898 5.24581 156.783 5.24581C155.629 7.94422 154.476 10.6133 153.299 13.3704C155.814 13.3704 158.167 13.3704 160.636 13.3704C159.436 10.584 158.306 7.91489 157.175 5.24581Z" fill="#F7F7F7"></path><path d="M136.132 22.8148C131.31 22.7855 126.465 23.0788 121.643 22.8442C121.482 22.8442 121.32 22.8148 121.043 22.7562C120.905 22.7268 120.766 22.6975 120.651 22.6682C119.82 22.4335 118.828 21.9936 117.859 20.879C117.075 19.9404 116.59 18.9139 116.429 17.1834C116.106 13.7517 116.129 10.2907 116.383 6.85902C116.683 2.63543 118.782 0.347648 122.704 0.259656C127.55 0.142334 132.602 0.142334 137.471 0.406309C138.117 0.43564 139.224 0.46497 139.086 0.99292C138.693 2.57677 138.347 4.13127 137.978 5.74445C134.217 5.74445 130.48 5.74445 126.765 5.74445C123.627 5.74445 123.189 6.21375 123.189 9.5281C123.189 11.2586 123.166 12.9891 123.212 14.7196C123.258 16.6261 123.927 17.3007 125.704 17.33C129.741 17.33 133.756 17.3593 137.794 17.3007C138.14 17.3007 138.417 17.3593 138.624 17.4767C138.924 17.682 139.039 17.9753 139.086 18.0926C139.362 18.7086 140.032 21.407 140.562 22.8735" fill="#F7F7F7"></path><path d="M169.75 0.20166C172.034 0.20166 174.341 0.20166 176.649 0.20166C177.179 0.20166 177.225 0.61228 177.341 0.964247C179.256 6.12642 181.517 11.1713 183.155 16.4801C183.224 16.6854 183.224 16.9787 183.501 17.0667C183.801 17.0667 183.801 16.7734 183.87 16.5681C185.462 11.1713 187.862 6.09709 189.823 0.876259C189.961 0.524292 190.053 0.230984 190.492 0.230984C192.753 0.260314 195.106 0.230984 197.436 0.230984C197.021 1.55086 196.56 2.31346 196.121 3.51601C193.468 9.8514 191.045 15.6002 188.323 21.7596C188.161 22.1116 188.046 22.4929 187.908 22.8742C185.001 22.8742 182.07 22.8742 179.163 22.8742C177.202 18.2106 175.218 13.5177 173.257 8.85417" fill="#F7F7F7"></path><path d="M19.943 22.6391C15.1209 22.6098 10.2758 22.903 5.45373 22.6684C5.29223 22.6684 5.13072 22.6391 4.85386 22.5804C4.71543 22.5511 4.577 22.5218 4.46164 22.4924C3.63105 22.2578 2.63895 21.8178 1.66992 20.7033C0.885476 19.7647 0.400961 18.7381 0.239457 17.0076C-0.0835516 13.5759 -0.0604754 10.1149 0.193317 6.68326C0.493253 2.45967 2.59281 0.171884 6.51505 0.0838927C11.3602 -0.0334294 16.3899 -0.0627599 21.2811 0.230545C21.9272 0.259876 23.0346 0.289206 22.8962 0.817156C22.504 2.401 22.1579 3.95553 21.7887 5.56871C18.028 5.56871 14.2903 5.56871 10.5757 5.56871C7.43793 5.56871 6.99956 6.038 6.99956 9.35235C6.99956 11.0829 6.97649 12.8133 7.02264 14.5438C7.06878 16.4503 7.73787 17.1249 9.51441 17.1543C13.552 17.1543 17.5665 17.1836 21.6041 17.1249C21.9502 17.1249 22.2271 17.1836 22.4347 17.3009C22.7347 17.5062 22.85 17.7995 22.8962 17.9169C23.173 18.5328 23.8421 21.2312 24.3728 22.6977" fill="#F7F7F7"></path><defs><linearGradient id="paint0_linear_807_267" x1="70.9777" y1="0.0839844" x2="70.9777" y2="22.6392" gradientUnits="userSpaceOnUse"><stop></stop><stop offset="1" stop-color="#B7B2F3" stop-opacity="0"></stop></linearGradient><linearGradient id="paint1_linear_807_267" x1="40.2261" y1="0.0214844" x2="40.2261" y2="23.0002" gradientUnits="userSpaceOnUse"><stop></stop><stop offset="1" stop-color="#B7B2F3" stop-opacity="0"></stop></linearGradient></defs></svg></a><ul class="flex justify-center flex-wrap shrink basis-1/3"><li class="p-2 w-max"><a class="text-xl text-secondary-30 underline" href="/services/">SERVICES</a></li><li class="p-2 w-max"><a class="text-xl text-secondary-30 underline" href="/workflow/">WORKFLOW</a></li><li class="p-2 w-max"><a class="text-xl text-secondary-30 underline" href="/projects/">PROJECTS</a></li><li class="p-2 w-max"><a class="text-xl text-secondary-30 underline" href="/blog/">BLOG</a></li></ul><div class="flex flex-wrap shrink basis-1/3 justify-center" itemscope="" itemType="https://schema.org/ContactPoint" itemProp="contactPoint"><a href="mailto:info@codecave.pro" target="_blank" title="Email" itemProp="email"><button class="flex min-h-10 min-w-10 m-2 items-center justify-center px-3 text-sm h-10 bg-secondary-100 text-main-100 border-main-100 hover:bg-secondary-30 hover:outline-secondary-100 border border-solid undefined"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 1024 1024" height="20px" width="20px" xmlns="http://www.w3.org/2000/svg"><path d="M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 110.8V792H136V270.8l-27.6-21.5 39.3-50.5 42.8 33.3h643.1l42.8-33.3 39.3 50.5-27.7 21.5zM833.6 232L512 482 190.4 232l-42.8-33.3-39.3 50.5 27.6 21.5 341.6 265.6a55.99 55.99 0 0 0 68.7 0L888 270.8l27.6-21.5-39.3-50.5-42.7 33.2z"></path></svg></button></a><a href="https://t.me/salaros_com" target="_blank" title="Telegram" itemProp="contactOption"><button class="flex min-h-10 min-w-10 m-2 items-center justify-center px-3 text-sm h-10 bg-secondary-100 text-main-100 border-main-100 hover:bg-secondary-30 hover:outline-secondary-100 border border-solid undefined"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="20px" width="20px" xmlns="http://www.w3.org/2000/svg"><path d="M446.7 98.6l-67.6 318.8c-5.1 22.5-18.4 28.1-37.3 17.5l-103-75.9-49.7 47.8c-5.5 5.5-10.1 10.1-20.7 10.1l7.4-104.9 190.9-172.5c8.3-7.4-1.8-11.5-12.9-4.1L117.8 284 16.2 252.2c-22.1-6.9-22.5-22.1 4.6-32.7L418.2 66.4c18.4-6.9 34.5 4.1 28.5 32.2z"></path></svg></button></a><a href="https://wa.me/375292366125" target="_blank" title="Whatsapp" itemProp="contactOption"><button class="flex min-h-10 min-w-10 m-2 items-center justify-center px-3 text-sm h-10 bg-secondary-100 text-main-100 border-main-100 hover:bg-secondary-30 hover:outline-secondary-100 border border-solid undefined"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="20px" width="20px" xmlns="http://www.w3.org/2000/svg"><path d="M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z"></path></svg></button></a><a href="https://www.linkedin.com/signup/public-profile-join?vieweeVanityName=salaros" target="_blank" title="Linkedin" itemProp="contactOption"><button class="flex min-h-10 min-w-10 m-2 items-center justify-center px-3 text-sm h-10 bg-secondary-100 text-main-100 border-main-100 hover:bg-secondary-30 hover:outline-secondary-100 border border-solid undefined"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="20px" width="20px" xmlns="http://www.w3.org/2000/svg"><path d="M100.28 448H7.4V148.9h92.88zM53.79 108.1C24.09 108.1 0 83.5 0 53.8a53.79 53.79 0 0 1 107.58 0c0 29.7-24.1 54.3-53.79 54.3zM447.9 448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29 0-55.69 37.7-55.69 76.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5 42.69-48.3 87.88-48.3 94 0 111.28 61.9 111.28 142.3V448z"></path></svg></button></a><a href="https://gitter.im/CodeCavePro/Lobby" target="_blank" title="Gitter" itemProp="contactOption"><button class="flex min-h-10 min-w-10 m-2 items-center justify-center px-3 text-sm h-10 bg-secondary-100 text-main-100 border-main-100 hover:bg-secondary-30 hover:outline-secondary-100 border border-solid undefined"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 384 512" height="20px" width="20px" xmlns="http://www.w3.org/2000/svg"><path d="M66.4 322.5H16V0h50.4v322.5zM166.9 76.1h-50.4V512h50.4V76.1zm100.6 0h-50.4V512h50.4V76.1zM368 76h-50.4v247H368V76z"></path></svg></button></a></div></nav></div></footer></main></div><div id="gatsby-announcer" style="position:absolute;top:0;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0" aria-live="assertive" aria-atomic="true"></div></div><script id="gatsby-script-loader">/*<![CDATA[*/window.pagePath="/";/*]]>*/</script><!-- slice-start id="_gatsby-scripts-1" --> +<p>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.</p></div></div></div></div></div></div></section><svg class="w-full" height="8"><line width="800" height="8" stroke="white" stroke-width="8" stroke-dasharray="8 8" x1="0" x2="100%" y1="4" y2="4"></line><line width="800" height="8" stroke="black" stroke-width="8" stroke-dasharray="8 8" x1="8" x2="100%" y1="4" y2="4"></line></svg><section class="w-full py-48 px-6 bg-main-100 text-secondary-100"><div class="flex w-full max-w-7xl mx-auto flex-col items-center"><div class="flex justify-between w-full items-center pb-10 md:pb-16"><h3 class="text-4xl md:text-5xl font-black w-full max-w-7xl mx-auto pr-8">NEW IN OUR BLOG</h3><a class="text-end text-2xl md:text-3xl text-secondary-10 hover:text-secondary-100 font-normal cursor-pointer whitespace-nowrap" href="/blog/">ALL POSTS<!-- --> →</a></div><a class="flex flex-col sm:flex-row w-full text-secondary-10 hover:text-secondary-100 undefined " itemscope="" itemType="https://schema.org/Article" href="/blog/b2ffcc60-69e6-5663-80d7-d9c1b58e7267/"><div class="hidden md:flex md:basis-1/4 shrink-0 justify-center p-6" itemProp="image"><svg class="" width="127" height="127" viewBox="0 0 127 127" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M15.875 7.9375H111.125C113.23 7.9375 115.249 8.77377 116.738 10.2623C118.226 11.7509 119.062 13.7698 119.062 15.875V107.839L103.188 91.9639C100.211 88.9865 96.1738 87.3134 91.9639 87.3125H15.875C13.7698 87.3125 11.7509 86.4762 10.2623 84.9877C8.77377 83.4991 7.9375 81.4802 7.9375 79.375V15.875C7.9375 13.7698 8.77377 11.7509 10.2623 10.2623C11.7509 8.77377 13.7698 7.9375 15.875 7.9375ZM111.125 0C115.335 0 119.373 1.67254 122.35 4.64968C125.327 7.62682 127 11.6647 127 15.875V117.419C127 118.205 126.767 118.972 126.33 119.625C125.893 120.278 125.273 120.786 124.547 121.086C123.822 121.386 123.023 121.464 122.253 121.31C121.483 121.156 120.776 120.777 120.221 120.221L97.5757 97.5757C96.0875 96.087 94.0689 95.2505 91.9639 95.25H15.875C11.6647 95.25 7.62682 93.5775 4.64968 90.6003C1.67254 87.6232 0 83.5853 0 79.375V15.875C0 11.6647 1.67254 7.62682 4.64968 4.64968C7.62682 1.67254 11.6647 0 15.875 0L111.125 0Z" fill="#FAFAFA"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M56.0865 37.7825C54.5404 35.3747 52.2544 33.5337 49.5723 32.5363C46.8902 31.5389 43.9569 31.439 41.2131 32.2515C38.4694 33.0641 36.0635 34.7453 34.357 37.0423C32.6506 39.3394 31.7358 42.1283 31.7502 44.9898C31.7516 47.3594 32.3893 49.6851 33.5968 51.7241C34.8042 53.763 36.537 55.4402 38.6142 56.5806C40.6914 57.721 43.0367 58.2826 45.4051 58.2069C47.7735 58.1311 50.0781 57.4207 52.0781 56.1499C51.0383 59.2376 49.1015 62.5316 45.9107 65.8336C45.3002 66.4652 44.9656 67.3134 44.9804 68.1916C44.9953 69.0699 45.3585 69.9063 45.99 70.5168C46.6216 71.1273 47.4698 71.4619 48.348 71.447C49.2263 71.4321 50.0627 71.0689 50.6732 70.4374C62.4683 58.2136 60.9364 44.9263 56.0865 37.7984V37.7825ZM87.8365 37.7825C86.2904 35.3747 84.0044 33.5337 81.3223 32.5363C78.6403 31.5389 75.7069 31.439 72.9631 32.2515C70.2194 33.0641 67.8135 34.7453 66.107 37.0423C64.4006 39.3394 63.4858 42.1283 63.5002 44.9898C63.5016 47.3594 64.1393 49.6851 65.3468 51.7241C66.5542 53.763 68.287 55.4402 70.3642 56.5806C72.4414 57.721 74.7867 58.2826 77.1551 58.2069C79.5235 58.1311 81.8281 57.4207 83.8281 56.1499C82.7883 59.2376 80.8515 62.5316 77.6607 65.8336C77.0502 66.4652 76.7156 67.3134 76.7304 68.1916C76.7453 69.0699 77.1085 69.9063 77.74 70.5168C78.3716 71.1273 79.2198 71.4619 80.098 71.447C80.9763 71.4321 81.8127 71.0689 82.4232 70.4374C94.2183 58.2136 92.6864 44.9263 87.8365 37.7984V37.7825Z" fill="#FAFAFA"></path></svg></div><div class="flex flex-col basis-1/2 md:basis-1/3 shrink-0 mb-12 sm:mb-0"><p class="text-3xl font-light text-secondary-10 pb-5">Jun 12, 2023</p><h3 class="text-4xl font-bold text-secondary-100" itemProp="headline">Awesome post 6</h3></div><div class="flex flex-col basis-1/2 md:basis-1/3 shrink-0"><p class="font-normal text-2xl text-secondary-10" itemProp="abstract">Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites<!-- -->...</p><div class="flex justify-between items-center pt-6"><p class="text-2xl font-bold">Read more</p><p><svg class="inline" width="18" height="18" viewBox="0 0 18 18" fill="none"><g clip-path="url(#clip0_829_432)"><path fill-rule="evenodd" clip-rule="evenodd" d="M9.57938 1.14638C9.38658 1.13214 9.19332 1.12501 9 1.125V0C9.2211 0.000107806 9.44213 0.00836341 9.66262 0.02475L9.57938 1.14638ZM11.8339 1.65263C11.4733 1.51347 11.1029 1.40104 10.7258 1.31625L10.9721 0.21825C11.403 0.315 11.8271 0.44325 12.2389 0.603L11.8339 1.65263ZM13.3751 2.45138C13.2143 2.34411 13.0495 2.24279 12.8812 2.14763L13.4359 1.16888C13.8205 1.38683 14.1886 1.63274 14.5372 1.90463L13.8454 2.79225C13.6929 2.67326 13.536 2.55993 13.3751 2.4525V2.45138ZM15.4384 4.46513C15.2158 4.14897 14.9703 3.84966 14.7037 3.56963L15.5182 2.79338C15.822 3.114 16.1032 3.45713 16.3586 3.81713L15.4384 4.46513ZM16.2754 5.98613C16.2015 5.80777 16.1212 5.63215 16.0346 5.45963L17.0392 4.95338C17.2379 5.34835 17.4071 5.75746 17.5455 6.17738L16.4767 6.5295C16.4163 6.34597 16.3491 6.16473 16.2754 5.98613ZM16.8716 8.8065C16.8625 8.41988 16.8249 8.03446 16.7591 7.65338L17.8672 7.46213C17.9426 7.89638 17.9865 8.33738 17.9977 8.77838L16.8727 8.8065H16.8716ZM16.7242 10.5368C16.7614 10.3455 16.7917 10.1554 16.8154 9.963L17.9325 10.1014C17.8785 10.5403 17.792 10.9746 17.6737 11.4008L16.5892 11.1004C16.641 10.9148 16.686 10.7269 16.7242 10.5368ZM15.6532 13.2131C15.8602 12.8869 16.0425 12.5449 16.2 12.1916L17.2282 12.6473C17.0482 13.0523 16.8401 13.4415 16.6039 13.815L15.6532 13.2131ZM14.5687 14.5688C14.706 14.4315 14.8376 14.2898 14.9625 14.1435L15.8152 14.8781C15.6708 15.0456 15.5204 15.2077 15.3641 15.3641L14.5687 14.5688Z" fill="black"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M8.99961 1.125C7.7046 1.12509 6.4296 1.44455 5.28753 2.05508C4.14547 2.66561 3.1716 3.54836 2.45217 4.62516C1.73275 5.70195 1.28998 6.93954 1.16308 8.22832C1.03618 9.5171 1.22907 10.8173 1.72466 12.0137C2.22025 13.2101 3.00325 14.2659 4.0043 15.0874C5.00535 15.909 6.19356 16.471 7.46368 16.7237C8.73381 16.9763 10.0466 16.9119 11.2859 16.536C12.5252 16.1601 13.6526 15.4844 14.5684 14.5688L15.3637 15.3641C14.3172 16.4113 13.0285 17.1841 11.6119 17.6141C10.1953 18.0442 8.69447 18.1182 7.24243 17.8295C5.79039 17.5409 4.43195 16.8986 3.28748 15.9595C2.143 15.0204 1.24784 13.8135 0.681284 12.4458C0.114733 11.078 -0.105707 9.59162 0.0394939 8.1183C0.184695 6.64499 0.691055 5.23024 1.51371 3.9994C2.33636 2.76855 3.44991 1.75962 4.75569 1.062C6.06147 0.364382 7.51916 -0.000392324 8.99961 3.16641e-07V1.125Z" fill="black"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M8.4375 3.375C8.58668 3.375 8.72976 3.43426 8.83525 3.53975C8.94074 3.64524 9 3.78832 9 3.9375V9.79875L12.654 11.8867C12.7798 11.9626 12.8709 12.0847 12.9078 12.2268C12.9448 12.369 12.9247 12.5199 12.8518 12.6475C12.779 12.775 12.6591 12.869 12.5179 12.9093C12.3766 12.9496 12.2252 12.9331 12.096 12.8632L8.1585 10.6132C8.07241 10.5641 8.00084 10.493 7.95106 10.4073C7.90127 10.3215 7.87503 10.2241 7.875 10.125V3.9375C7.875 3.78832 7.93426 3.64524 8.03975 3.53975C8.14524 3.43426 8.28832 3.375 8.4375 3.375Z" fill="black"></path></g><defs><clipPath id="clip0_829_432"><rect width="18" height="18" fill="white"></rect></clipPath></defs></svg><span class="inline text-xl font-light italic pl-4">Reading time: <!-- -->3<!-- -->m.</span></p></div></div><div class="hidden" itemProp="copyrightHolder" itemscope="" itemType="https://schema.org/LocalBusiness"><meta itemProp="sameAs" content="https://facebook.com/codecavepro"/><meta itemProp="sameAs" content="https://youtube.com/c/CodeCavePro"/><meta itemProp="sameAs" content="https://twitter.com/codecavepro"/><meta itemProp="sameAs" content="https://vk.com/codecavepro"/><meta itemProp="sameAs" content="https://github.com/CodeCavePro"/><meta itemProp="sameAs" content="https://instagram.com/codecave.pro"/><meta itemProp="sameAs" content="https://linkedin.com/company/codecavepro"/><meta itemProp="name" content="CodeCave"/><meta itemProp="currenciesAccepted" content="USD, EUR"/><meta itemProp="openingHours" content="Mo-Fr 09:00-18:00"/><meta name="description" content="Outsourcing software and web development"/><meta name="image" content="/logo.svg"/></div></a></div></section><footer class="bg-main-100 border-t-4 border-secondary-100 border-solid p-4"><div class="flex w-full max-w-7xl mx-auto min-h-[8.5rem]"><nav class="w-full flex items-center flex-col md:flex-row"><a aria-current="page" class="flex flex-1 items-center justify-start basis-1/4" href="/"><svg width="226" height="23" viewBox="0 0 226 23" fill="none"><path d="M58.4727 22.6392V6.77134V0.0839844C58.4727 0.0839844 70.4009 0.201314 74.8769 0.201314C76.3765 0.201314 77.8531 0.406627 79.2605 0.934577C81.5908 1.81449 82.9982 3.57432 83.252 6.21407C83.575 9.55775 83.5289 12.9601 83.2981 16.3038C83.0443 20.0874 80.9217 22.2285 77.4148 22.6392H58.4727ZM65.5096 17.5357C66.3641 17.5357 67.2129 17.5405 68.0576 17.5453C70.1551 17.5572 72.2276 17.5691 74.3001 17.5063C75.6152 17.477 76.4688 16.5091 76.4919 15.1012C76.538 12.6961 76.538 10.291 76.4919 7.88592C76.4688 6.56604 75.6613 5.5688 74.4846 5.53947C72.3613 5.4767 70.238 5.48856 68.0979 5.50051C67.2382 5.50532 66.3758 5.51013 65.5096 5.51013V17.5357Z" fill="#F7F7F7"></path><path d="M58.4727 22.6392V6.77134V0.0839844C58.4727 0.0839844 70.4009 0.201314 74.8769 0.201314C76.3765 0.201314 77.8531 0.406627 79.2605 0.934577C81.5908 1.81449 82.9982 3.57432 83.252 6.21407C83.575 9.55775 83.5289 12.9601 83.2981 16.3038C83.0443 20.0874 80.9217 22.2285 77.4148 22.6392H58.4727ZM65.5096 17.5357C66.3641 17.5357 67.2129 17.5405 68.0576 17.5453C70.1551 17.5572 72.2276 17.5691 74.3001 17.5063C75.6152 17.477 76.4688 16.5091 76.4919 15.1012C76.538 12.6961 76.538 10.291 76.4919 7.88592C76.4688 6.56604 75.6613 5.5688 74.4846 5.53947C72.3613 5.4767 70.238 5.48856 68.0979 5.50051C67.2382 5.50532 66.3758 5.51013 65.5096 5.51013V17.5357Z" stroke="url(#paint0_linear_807_267)"></path><path d="M32.4682 22.7858C31.2223 22.5804 30.161 21.8178 29.2842 20.7619C28.9612 20.3806 28.7305 19.9994 28.6151 19.7647C28.2229 19.0314 28.0153 18.1809 27.923 17.1543C27.5769 13.664 27.6461 10.1736 27.8307 6.68328C28.0614 2.48901 29.7687 0.494546 33.714 0.259902C38.3285 -0.00407292 42.9659 -0.150736 47.5803 0.377213C50.5105 0.72918 52.287 2.63566 52.5408 5.80336C52.8638 9.55767 52.8408 13.3413 52.5408 17.0956C52.4485 18.2395 52.2409 19.0314 51.941 19.6181C51.9367 19.6235 51.9244 19.6462 51.9048 19.6825C51.8188 19.8416 51.5912 20.2626 51.2719 20.6446C50.049 22.0818 48.0187 22.5218 47.5342 22.5804C45.0655 22.9031 40.2204 23.2257 32.4682 22.7858ZM45.8499 11.5815C45.8499 11.1893 45.8525 10.8004 45.8551 10.4126C45.8602 9.64026 45.8653 8.8722 45.8499 8.09114C45.8038 6.44863 45.0193 5.53939 43.4966 5.51006C41.3047 5.4514 39.0898 5.4514 36.898 5.51006C35.3752 5.53939 34.6369 6.4193 34.6139 8.00315C34.5908 10.3203 34.5908 12.6667 34.6139 14.9838C34.6369 16.5383 35.4214 17.4769 36.898 17.5063C39.136 17.5649 41.374 17.5649 43.6119 17.5063C45.0424 17.4769 45.8269 16.509 45.8499 14.9252C45.8653 14.2017 45.8602 13.4521 45.8551 12.7026C45.8525 12.3278 45.8499 11.953 45.8499 11.5815Z" fill="#F7F7F7"></path><path d="M32.4682 22.7858C31.2223 22.5804 30.161 21.8178 29.2842 20.7619C28.9612 20.3806 28.7305 19.9994 28.6151 19.7647C28.2229 19.0314 28.0153 18.1809 27.923 17.1543C27.5769 13.664 27.6461 10.1736 27.8307 6.68328C28.0614 2.48901 29.7687 0.494546 33.714 0.259902C38.3285 -0.00407292 42.9659 -0.150736 47.5803 0.377213C50.5105 0.72918 52.287 2.63566 52.5408 5.80336C52.8638 9.55767 52.8408 13.3413 52.5408 17.0956C52.4485 18.2395 52.2409 19.0314 51.941 19.6181C51.9367 19.6235 51.9244 19.6462 51.9048 19.6825C51.8188 19.8416 51.5912 20.2626 51.2719 20.6446C50.049 22.0818 48.0187 22.5218 47.5342 22.5804C45.0655 22.9031 40.2204 23.2257 32.4682 22.7858ZM45.8499 11.5815C45.8499 11.1893 45.8525 10.8004 45.8551 10.4126C45.8602 9.64026 45.8653 8.8722 45.8499 8.09114C45.8038 6.44863 45.0193 5.53939 43.4966 5.51006C41.3047 5.4514 39.0898 5.4514 36.898 5.51006C35.3752 5.53939 34.6369 6.4193 34.6139 8.00315C34.5908 10.3203 34.5908 12.6667 34.6139 14.9838C34.6369 16.5383 35.4214 17.4769 36.898 17.5063C39.136 17.5649 41.374 17.5649 43.6119 17.5063C45.0424 17.4769 45.8269 16.509 45.8499 14.9252C45.8653 14.2017 45.8602 13.4521 45.8551 12.7026C45.8525 12.3278 45.8499 11.953 45.8499 11.5815Z" stroke="url(#paint1_linear_807_267)"></path><path d="M221.73 17.5354C222.123 17.5354 222.399 17.5941 222.63 17.7701C222.976 18.0047 223.115 18.5034 223.184 18.6207C223.438 19.3539 224.084 20.7031 225.122 22.8443C224.937 22.8443 224.776 22.8443 224.661 22.8443C224.522 22.8443 208.21 22.8443 200.273 22.8443C200.273 22.6683 200.32 0.787715 200.32 0.259766C207.979 0.259766 215.57 0.259766 223.207 0.259766C223.207 1.96094 223.207 3.63277 223.207 5.42193C217.947 5.42193 212.571 5.42193 207.264 5.42193C207.264 5.94988 207.218 8.09101 207.218 8.58963C211.21 8.58963 215.109 8.58963 219.054 8.58963C219.054 10.3788 219.054 12.0506 219.054 13.8398C215.178 13.8398 211.279 13.8398 207.287 13.8398C207.287 15.101 207.287 16.3329 207.287 17.4768" fill="#F7F7F7"></path><path d="M109.877 17.5354C110.269 17.5354 110.546 17.5941 110.777 17.7701C111.123 18.0047 111.261 18.5034 111.33 18.6207C111.584 19.3539 112.23 20.7031 113.268 22.8443C113.084 22.8443 112.922 22.8443 112.807 22.8443C112.669 22.8443 96.3567 22.8443 88.4199 22.8443C88.4199 22.6683 88.4661 0.787715 88.4661 0.259766C96.126 0.259766 103.717 0.259766 111.354 0.259766C111.354 1.96094 111.354 3.63277 111.354 5.42193C106.093 5.42193 100.717 5.42193 95.4107 5.42193C95.4107 5.94988 95.3646 8.09101 95.3646 8.58963C99.3561 8.58963 103.255 8.58963 107.201 8.58963C107.201 10.3788 107.201 12.0506 107.201 13.8398C103.324 13.8398 99.4253 13.8398 95.4338 13.8398C95.4338 15.101 95.4338 16.3329 95.4338 17.4768" fill="#F7F7F7"></path><path d="M88.4199 22.8443C88.443 16.7729 88.4661 10.7308 88.4661 4.65935C88.4661 3.22215 88.4661 1.78495 88.4661 0.259766C96.126 0.259766 103.717 0.259766 111.377 0.259766C111.377 1.96094 111.377 3.6621 111.377 5.4806C106.07 5.4806 100.787 5.4806 95.4569 5.4806C95.4569 6.5365 95.4569 7.47507 95.4569 8.5603C99.333 8.5603 103.232 8.5603 107.201 8.5603C107.201 10.3788 107.201 12.08 107.201 13.8985C103.348 13.8985 99.4483 13.8985 95.48 13.8985C95.48 15.1303 95.48 16.2742 95.48 17.4475C95.8491 17.6821 96.2875 17.5648 96.6797 17.5648C101.11 17.5648 105.562 17.5941 109.992 17.5648C110.638 17.5648 111.007 17.7701 111.261 18.4154C111.792 19.7646 112.415 21.0844 112.945 22.3457C112.669 22.8736 112.115 22.375 111.953 22.8736C104.086 22.8443 96.2644 22.8443 88.4199 22.8443Z" fill="#F7F7F7"></path><path d="M141.971 22.8441C142.201 21.7296 142.801 20.791 143.263 19.8231C146.124 13.605 149.031 7.41626 151.869 1.16885C152.215 0.40626 152.607 0.142278 153.391 0.171608C155.86 0.230269 158.329 0.200939 160.774 0.171608C161.282 0.171608 161.651 0.230273 161.928 0.816884C165.25 8.09086 168.619 15.3355 171.964 22.5802C171.987 22.6388 171.987 22.7268 172.01 22.8148C169.473 22.8148 166.935 22.8148 164.397 22.8148C163.912 21.6416 163.405 20.4977 162.966 19.3245C162.782 18.8259 162.482 18.7085 162.02 18.7085C158.675 18.7378 155.329 18.7378 151.984 18.7085C151.546 18.7085 151.223 18.7965 151.015 19.2658C150.507 20.4684 149.931 21.6122 149.377 22.8148C146.908 22.8441 144.439 22.8441 141.971 22.8441ZM157.175 5.24581C157.06 5.24581 156.898 5.24581 156.783 5.24581C155.629 7.94422 154.476 10.6133 153.299 13.3704C155.814 13.3704 158.167 13.3704 160.636 13.3704C159.436 10.584 158.306 7.91489 157.175 5.24581Z" fill="#F7F7F7"></path><path d="M136.132 22.8148C131.31 22.7855 126.465 23.0788 121.643 22.8442C121.482 22.8442 121.32 22.8148 121.043 22.7562C120.905 22.7268 120.766 22.6975 120.651 22.6682C119.82 22.4335 118.828 21.9936 117.859 20.879C117.075 19.9404 116.59 18.9139 116.429 17.1834C116.106 13.7517 116.129 10.2907 116.383 6.85902C116.683 2.63543 118.782 0.347648 122.704 0.259656C127.55 0.142334 132.602 0.142334 137.471 0.406309C138.117 0.43564 139.224 0.46497 139.086 0.99292C138.693 2.57677 138.347 4.13127 137.978 5.74445C134.217 5.74445 130.48 5.74445 126.765 5.74445C123.627 5.74445 123.189 6.21375 123.189 9.5281C123.189 11.2586 123.166 12.9891 123.212 14.7196C123.258 16.6261 123.927 17.3007 125.704 17.33C129.741 17.33 133.756 17.3593 137.794 17.3007C138.14 17.3007 138.417 17.3593 138.624 17.4767C138.924 17.682 139.039 17.9753 139.086 18.0926C139.362 18.7086 140.032 21.407 140.562 22.8735" fill="#F7F7F7"></path><path d="M169.75 0.20166C172.034 0.20166 174.341 0.20166 176.649 0.20166C177.179 0.20166 177.225 0.61228 177.341 0.964247C179.256 6.12642 181.517 11.1713 183.155 16.4801C183.224 16.6854 183.224 16.9787 183.501 17.0667C183.801 17.0667 183.801 16.7734 183.87 16.5681C185.462 11.1713 187.862 6.09709 189.823 0.876259C189.961 0.524292 190.053 0.230984 190.492 0.230984C192.753 0.260314 195.106 0.230984 197.436 0.230984C197.021 1.55086 196.56 2.31346 196.121 3.51601C193.468 9.8514 191.045 15.6002 188.323 21.7596C188.161 22.1116 188.046 22.4929 187.908 22.8742C185.001 22.8742 182.07 22.8742 179.163 22.8742C177.202 18.2106 175.218 13.5177 173.257 8.85417" fill="#F7F7F7"></path><path d="M19.943 22.6391C15.1209 22.6098 10.2758 22.903 5.45373 22.6684C5.29223 22.6684 5.13072 22.6391 4.85386 22.5804C4.71543 22.5511 4.577 22.5218 4.46164 22.4924C3.63105 22.2578 2.63895 21.8178 1.66992 20.7033C0.885476 19.7647 0.400961 18.7381 0.239457 17.0076C-0.0835516 13.5759 -0.0604754 10.1149 0.193317 6.68326C0.493253 2.45967 2.59281 0.171884 6.51505 0.0838927C11.3602 -0.0334294 16.3899 -0.0627599 21.2811 0.230545C21.9272 0.259876 23.0346 0.289206 22.8962 0.817156C22.504 2.401 22.1579 3.95553 21.7887 5.56871C18.028 5.56871 14.2903 5.56871 10.5757 5.56871C7.43793 5.56871 6.99956 6.038 6.99956 9.35235C6.99956 11.0829 6.97649 12.8133 7.02264 14.5438C7.06878 16.4503 7.73787 17.1249 9.51441 17.1543C13.552 17.1543 17.5665 17.1836 21.6041 17.1249C21.9502 17.1249 22.2271 17.1836 22.4347 17.3009C22.7347 17.5062 22.85 17.7995 22.8962 17.9169C23.173 18.5328 23.8421 21.2312 24.3728 22.6977" fill="#F7F7F7"></path><defs><linearGradient id="paint0_linear_807_267" x1="70.9777" y1="0.0839844" x2="70.9777" y2="22.6392" gradientUnits="userSpaceOnUse"><stop></stop><stop offset="1" stop-color="#B7B2F3" stop-opacity="0"></stop></linearGradient><linearGradient id="paint1_linear_807_267" x1="40.2261" y1="0.0214844" x2="40.2261" y2="23.0002" gradientUnits="userSpaceOnUse"><stop></stop><stop offset="1" stop-color="#B7B2F3" stop-opacity="0"></stop></linearGradient></defs></svg></a><ul class="flex justify-center flex-wrap shrink basis-1/3"><li class="p-2 w-max"><a class="text-xl text-secondary-30 underline" href="/services/">SERVICES</a></li><li class="p-2 w-max"><a class="text-xl text-secondary-30 underline" href="/workflow/">WORKFLOW</a></li><li class="p-2 w-max"><a class="text-xl text-secondary-30 underline" href="/projects/">PROJECTS</a></li><li class="p-2 w-max"><a class="text-xl text-secondary-30 underline" href="/blog/">BLOG</a></li></ul><div class="flex flex-wrap shrink basis-1/3 justify-center" itemscope="" itemType="https://schema.org/ContactPoint" itemProp="contactPoint"><a href="mailto:info@codecave.pro" target="_blank" title="Email" itemProp="email"><button class="flex min-h-10 min-w-10 m-2 items-center justify-center px-3 text-sm h-10 bg-secondary-100 text-main-100 border-main-100 hover:bg-secondary-30 hover:outline-secondary-100 border border-solid undefined"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 1024 1024" height="20px" width="20px" xmlns="http://www.w3.org/2000/svg"><path d="M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 110.8V792H136V270.8l-27.6-21.5 39.3-50.5 42.8 33.3h643.1l42.8-33.3 39.3 50.5-27.7 21.5zM833.6 232L512 482 190.4 232l-42.8-33.3-39.3 50.5 27.6 21.5 341.6 265.6a55.99 55.99 0 0 0 68.7 0L888 270.8l27.6-21.5-39.3-50.5-42.7 33.2z"></path></svg></button></a><a href="https://t.me/salaros_com" target="_blank" title="Telegram" itemProp="contactOption"><button class="flex min-h-10 min-w-10 m-2 items-center justify-center px-3 text-sm h-10 bg-secondary-100 text-main-100 border-main-100 hover:bg-secondary-30 hover:outline-secondary-100 border border-solid undefined"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="20px" width="20px" xmlns="http://www.w3.org/2000/svg"><path d="M446.7 98.6l-67.6 318.8c-5.1 22.5-18.4 28.1-37.3 17.5l-103-75.9-49.7 47.8c-5.5 5.5-10.1 10.1-20.7 10.1l7.4-104.9 190.9-172.5c8.3-7.4-1.8-11.5-12.9-4.1L117.8 284 16.2 252.2c-22.1-6.9-22.5-22.1 4.6-32.7L418.2 66.4c18.4-6.9 34.5 4.1 28.5 32.2z"></path></svg></button></a><a href="https://wa.me/375292366125" target="_blank" title="Whatsapp" itemProp="contactOption"><button class="flex min-h-10 min-w-10 m-2 items-center justify-center px-3 text-sm h-10 bg-secondary-100 text-main-100 border-main-100 hover:bg-secondary-30 hover:outline-secondary-100 border border-solid undefined"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="20px" width="20px" xmlns="http://www.w3.org/2000/svg"><path d="M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z"></path></svg></button></a><a href="https://www.linkedin.com/signup/public-profile-join?vieweeVanityName=salaros" target="_blank" title="Linkedin" itemProp="contactOption"><button class="flex min-h-10 min-w-10 m-2 items-center justify-center px-3 text-sm h-10 bg-secondary-100 text-main-100 border-main-100 hover:bg-secondary-30 hover:outline-secondary-100 border border-solid undefined"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="20px" width="20px" xmlns="http://www.w3.org/2000/svg"><path d="M100.28 448H7.4V148.9h92.88zM53.79 108.1C24.09 108.1 0 83.5 0 53.8a53.79 53.79 0 0 1 107.58 0c0 29.7-24.1 54.3-53.79 54.3zM447.9 448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29 0-55.69 37.7-55.69 76.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5 42.69-48.3 87.88-48.3 94 0 111.28 61.9 111.28 142.3V448z"></path></svg></button></a><a href="https://gitter.im/CodeCavePro/Lobby" target="_blank" title="Gitter" itemProp="contactOption"><button class="flex min-h-10 min-w-10 m-2 items-center justify-center px-3 text-sm h-10 bg-secondary-100 text-main-100 border-main-100 hover:bg-secondary-30 hover:outline-secondary-100 border border-solid undefined"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 384 512" height="20px" width="20px" xmlns="http://www.w3.org/2000/svg"><path d="M66.4 322.5H16V0h50.4v322.5zM166.9 76.1h-50.4V512h50.4V76.1zm100.6 0h-50.4V512h50.4V76.1zM368 76h-50.4v247H368V76z"></path></svg></button></a></div></nav></div></footer></main></div><div id="gatsby-announcer" style="position:absolute;top:0;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0" aria-live="assertive" aria-atomic="true"></div></div><script id="gatsby-script-loader">/*<![CDATA[*/window.pagePath="/";/*]]>*/</script><!-- slice-start id="_gatsby-scripts-1" --> <script id="gatsby-chunk-mapping" > - window.___chunkMapping="{\"app\":[\"/app-0be32afa8722358651ed.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-985104a1d001afc81f25.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-8f11132d55ccda45c143.js\"],\"component---src-pages-services-tsx\":[\"/component---src-pages-services-tsx-ad089d9c65e0d5421453.js\"],\"component---src-pages-templates-blog-tsx\":[\"/component---src-pages-templates-blog-tsx-3e928f3e8cb34f3b7e4c.js\"],\"component---src-pages-templates-post-tsx\":[\"/component---src-pages-templates-post-tsx-f2b5783ab45f7133a802.js\"],\"component---src-pages-templates-project-tsx\":[\"/component---src-pages-templates-project-tsx-808e529df29d8bdea686.js\"],\"component---src-pages-templates-projects-tsx\":[\"/component---src-pages-templates-projects-tsx-bc2345c3e66bde0622dc.js\"],\"component---src-pages-workflow-tsx\":[\"/component---src-pages-workflow-tsx-66c85385336912fb7c37.js\"]}"; + window.___chunkMapping="{\"app\":[\"/app-0be32afa8722358651ed.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-985104a1d001afc81f25.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-51c4d6c78f0455be8e64.js\"],\"component---src-pages-services-tsx\":[\"/component---src-pages-services-tsx-004b5c906bc78a1f96ae.js\"],\"component---src-pages-templates-blog-tsx\":[\"/component---src-pages-templates-blog-tsx-2739ab3251f03f4eb07f.js\"],\"component---src-pages-templates-post-tsx\":[\"/component---src-pages-templates-post-tsx-7f7e2c93fcb41ce4f82f.js\"],\"component---src-pages-templates-project-tsx\":[\"/component---src-pages-templates-project-tsx-808e529df29d8bdea686.js\"],\"component---src-pages-templates-projects-tsx\":[\"/component---src-pages-templates-projects-tsx-75dd824378dedee3ee1b.js\"],\"component---src-pages-workflow-tsx\":[\"/component---src-pages-workflow-tsx-71ff73d9d1233d63de8e.js\"]}"; </script> - <script>window.___webpackCompilationHash="2552ca4b597845d70de8";</script><script src="/webpack-runtime-9d58aaf54df1d848a0ab.js" async></script><script src="/framework-e4f3e98283dd6d5d8e77.js" async></script><script src="/app-0be32afa8722358651ed.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html> \ No newline at end of file + <script>window.___webpackCompilationHash="2282541953a94831106d";</script><script src="/webpack-runtime-462cd70edcbbeae08639.js" async></script><script src="/framework-e4f3e98283dd6d5d8e77.js" async></script><script src="/app-0be32afa8722358651ed.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html> \ No newline at end of file diff --git a/page-data/app-data.json b/page-data/app-data.json index 73616f86..447ac0ac 100644 --- a/page-data/app-data.json +++ b/page-data/app-data.json @@ -1 +1 @@ -{"webpackCompilationHash":"2552ca4b597845d70de8"} +{"webpackCompilationHash":"2282541953a94831106d"} diff --git a/page-data/sq/d/2239467241.json b/page-data/sq/d/2239467241.json index fa6818b2..062df0a4 100644 --- a/page-data/sq/d/2239467241.json +++ b/page-data/sq/d/2239467241.json @@ -1 +1 @@ -{"data":{"allMarkdownRemark":{"nodes":[{"id":"2d985b87-b996-5cfb-bdf4-25a1e458b3a2","html":"<p>We striving for the best achievable quality in our work</p>","frontmatter":{"title":"Quality"}},{"id":"2267702a-ac78-50a7-b1dc-d48a26e66393","html":"<p>We communicate honestly and openly to build trust and respect in a relationships with our customers</p>","frontmatter":{"title":"Relationships"}},{"id":"a3ae3b63-f33b-5e89-a28e-cf79db87b261","html":"<p>We foster a work environment that inspires professionals to continuously improve products throughout it's lifecycle</p>","frontmatter":{"title":"Improvements"}},{"id":"4d2e689a-c34e-5fd8-9e86-828cc229a339","html":"<p>We're ready to face new challenges at any stage of the project</p>","frontmatter":{"title":"Flexibility"}},{"id":"43703b5d-380d-5e6b-8af6-6ed8d57a3dcc","html":"<p>We care for all the projects as if they were our own</p>","frontmatter":{"title":"Responsibility"}},{"id":"babce37e-d880-5888-a1a9-35e9aee7d02d","html":"<p>We continuously track the latest development trends and are always prepared to apply advanced technologies</p>","frontmatter":{"title":"Advancement"}}]}}} \ No newline at end of file +{"data":{"allMarkdownRemark":{"nodes":[{"id":"e8012364-43de-52f3-892f-0c48dc213cb5","html":"<p>No surprises! We are consistent and have many time-tested techniques at our disposal</p>","frontmatter":{"title":"Consistency and standards"}},{"id":"2267702a-ac78-50a7-b1dc-d48a26e66393","html":"<p>The relationship with our customer is transparent. Mutual trust and straightforward communication are the key</p>","frontmatter":{"title":"Relationships"}},{"id":"6d9d08c0-3002-5e48-b9dd-1705e49ec55c","html":"<p>We know how to assemble the perfect team to protect you from paying extra</p>","frontmatter":{"title":"Team efficiency = cost efficiency"}},{"id":"4d2e689a-c34e-5fd8-9e86-828cc229a339","html":"<p>We're ready to face new challenges at any stage of the project</p>","frontmatter":{"title":"Flexibility"}},{"id":"43703b5d-380d-5e6b-8af6-6ed8d57a3dcc","html":"<p>Our light and clear coding helps us to escape unbreakable loops of re-development</p>","frontmatter":{"title":"Responsible development"}},{"id":"babce37e-d880-5888-a1a9-35e9aee7d02d","html":"<p>We're constantly keeping an eye on tech advancements and possible ways to implement it in our work</p>","frontmatter":{"title":"Curious minds"}}]}}} \ No newline at end of file diff --git a/page-data/sq/d/687265830.json b/page-data/sq/d/687265830.json index 4478fcab..2cdb8c40 100644 --- a/page-data/sq/d/687265830.json +++ b/page-data/sq/d/687265830.json @@ -1 +1 @@ -{"data":{"allMarkdownRemark":{"nodes":[{"id":"34868568-9b89-5a5c-8ddc-1324153ab835","html":"<p>As a service company we wanted to create a website that would sum up all of our experiences gathered over the past 30 years.</p>\n<p>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.</p>\n<p>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.</p>","frontmatter":{"company":"Prima Consulting d.o.o.","location":"Čajetina, Serbia","person":"Roberto Assi","position":"CEO","image":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGAABAQEBAQAAAAAAAAAAAAAAAAQDAQL/xAAXAQADAQAAAAAAAAAAAAAAAAACAwQB/9oADAMBAAIQAxAAAAHWSmMGWPCZnJCpWA0f/8QAGxAAAgIDAQAAAAAAAAAAAAAAAQIAAxESIzL/2gAIAQEAAQUCR0UXsmR5Q7LbNpVgi0cxcwH/xAAZEQABBQAAAAAAAAAAAAAAAAAAARARMUH/2gAIAQMBAT8BSiTG/8QAFhEAAwAAAAAAAAAAAAAAAAAAABAh/9oACAECAQE/ASv/xAAcEAACAgIDAAAAAAAAAAAAAAAAAREhAkEQMXH/2gAIAQEABj8CTyKdiIHPc8Oh5bk0/Uf/xAAbEAEAAwEAAwAAAAAAAAAAAAABABEhMUFRYf/aAAgBAQABPyFEdeZyMOQjtK6XDoUoz1tRwcMgwhi2Q/MoIOK+2k//2gAMAwEAAgADAAAAENfPfv/EABgRAAMBAQAAAAAAAAAAAAAAAAABETFB/9oACAEDAQE/EE4JHsrP/8QAFxEAAwEAAAAAAAAAAAAAAAAAAAERMf/aAAgBAgEBPxC0aoWoiP/EABwQAQEBAQACAwAAAAAAAAAAAAERACExkYHR8P/aAAgBAQABPxCBO0KTGIlVQSOtKYe2KE0fJ0xaCRSyuCEqAJ8Ywu5GPE+8VVSlbD8Z4wnAPtv/2Q=="},"images":{"fallback":{"src":"/static/925f87351999aef81e93dfc5e7e378cb/f41fb/avatar.jpg","srcSet":"/static/925f87351999aef81e93dfc5e7e378cb/80e21/avatar.jpg 28w,\n/static/925f87351999aef81e93dfc5e7e378cb/2c33f/avatar.jpg 56w,\n/static/925f87351999aef81e93dfc5e7e378cb/f41fb/avatar.jpg 112w,\n/static/925f87351999aef81e93dfc5e7e378cb/0e51d/avatar.jpg 224w","sizes":"(min-width: 112px) 112px, 100vw"},"sources":[{"srcSet":"/static/925f87351999aef81e93dfc5e7e378cb/ee3b4/avatar.avif 28w,\n/static/925f87351999aef81e93dfc5e7e378cb/4175e/avatar.avif 56w,\n/static/925f87351999aef81e93dfc5e7e378cb/2110b/avatar.avif 112w,\n/static/925f87351999aef81e93dfc5e7e378cb/2898f/avatar.avif 224w","type":"image/avif","sizes":"(min-width: 112px) 112px, 100vw"},{"srcSet":"/static/925f87351999aef81e93dfc5e7e378cb/629a0/avatar.webp 28w,\n/static/925f87351999aef81e93dfc5e7e378cb/f8744/avatar.webp 56w,\n/static/925f87351999aef81e93dfc5e7e378cb/65bf6/avatar.webp 112w,\n/static/925f87351999aef81e93dfc5e7e378cb/f42a0/avatar.webp 224w","type":"image/webp","sizes":"(min-width: 112px) 112px, 100vw"}]},"width":112,"height":112}}}}},{"id":"07793b04-f229-5c7b-91cb-1a34ea754692","html":"<p>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.</p>\n<p>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.</p>","frontmatter":{"company":"Soytex LLC","location":"Dobele, Latvia","person":"SIA \"Agrolats Group\"","position":"CEO","image":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAMBBP/EABgBAQADAQAAAAAAAAAAAAAAAAABAgME/9oADAMBAAIQAxAAAAHhvO+fXyNRbAAf/8QAGxAAAQUBAQAAAAAAAAAAAAAAAQACAxASITH/2gAIAQEAAQUCHTLG1lDCOHo+3//EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQMBAT8BH//EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQIBAT8BH//EABwQAQACAQUAAAAAAAAAAAAAAAEAEQIQEiAhkf/aAAgBAQAGPwIIbcr07XyXYcf/xAAdEAEAAQQDAQAAAAAAAAAAAAABEQAhMVEQIEFh/9oACAEBAAE/IT9RiryCzkjHBgJnRS0hdBFAEDJ49P/aAAwDAQACAAMAAAAQ9PDD/8QAFhEBAQEAAAAAAAAAAAAAAAAAASAh/9oACAEDAQE/EF0j/8QAFREBAQAAAAAAAAAAAAAAAAAAIEH/2gAIAQIBAT8Qg//EAB4QAQEAAQMFAAAAAAAAAAAAAAERABAhUSBBcZGx/9oACAEBAAE/EK4yVcVmMNlC7BR9t0khXeg93CqGEBt37i+MkaVOQ56P/9k="},"images":{"fallback":{"src":"/static/e695f1a48d28625cbba253860b1a47de/f41fb/avatar.jpg","srcSet":"/static/e695f1a48d28625cbba253860b1a47de/80e21/avatar.jpg 28w,\n/static/e695f1a48d28625cbba253860b1a47de/2c33f/avatar.jpg 56w,\n/static/e695f1a48d28625cbba253860b1a47de/f41fb/avatar.jpg 112w","sizes":"(min-width: 112px) 112px, 100vw"},"sources":[{"srcSet":"/static/e695f1a48d28625cbba253860b1a47de/ee3b4/avatar.avif 28w,\n/static/e695f1a48d28625cbba253860b1a47de/4175e/avatar.avif 56w,\n/static/e695f1a48d28625cbba253860b1a47de/2110b/avatar.avif 112w","type":"image/avif","sizes":"(min-width: 112px) 112px, 100vw"},{"srcSet":"/static/e695f1a48d28625cbba253860b1a47de/629a0/avatar.webp 28w,\n/static/e695f1a48d28625cbba253860b1a47de/f8744/avatar.webp 56w,\n/static/e695f1a48d28625cbba253860b1a47de/65bf6/avatar.webp 112w","type":"image/webp","sizes":"(min-width: 112px) 112px, 100vw"}]},"width":112,"height":112}}}}},{"id":"9ef2a36b-7e13-55f3-84e7-524f0f5d4692","html":"<p>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.</p>","frontmatter":{"company":"Specifi Europe Srl","location":"Venezia, Italy","person":"Fabio Tantaro","position":"General Manger","image":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGAABAQEBAQAAAAAAAAAAAAAAAAQCBQb/xAAWAQEBAQAAAAAAAAAAAAAAAAACAQD/2gAMAwEAAhADEAAAAaIL4yu6KPG7MtCn/8QAGhAAAwEBAQEAAAAAAAAAAAAAAQIDBAARM//aAAgBAQABBQLZoaZJrnYH0blHALXlACvR3LfKd6TX/8QAFhEBAQEAAAAAAAAAAAAAAAAAARAR/9oACAEDAQE/AQMhP//EABURAQEAAAAAAAAAAAAAAAAAAAEQ/9oACAECAQE/AWM//8QAHBAAAgIDAQEAAAAAAAAAAAAAAAECERIxQSED/9oACAEBAAY/Aowht9FPPK9lkfo+Mw1ehJaLnJsXnSoy8P/EABsQAAMAAwEBAAAAAAAAAAAAAAABESExQVFh/9oACAEBAAE/IcWJnxnqZA9KkbyWJp9ILTob4aECiLMP1kXhNjDNtD//2gAMAwEAAgADAAAAEOfwQf/EABYRAQEBAAAAAAAAAAAAAAAAAAEQMf/aAAgBAwEBPxBiWYZ//8QAFxEBAQEBAAAAAAAAAAAAAAAAARARMf/aAAgBAgEBPxBImTon/8QAHRABAAICAwEBAAAAAAAAAAAAAQARITFRYXGBof/aAAgBAQABPxCjIt2BousHMXugCKJ3CO0Q+w/W4i8eRIhKtKcv5EDwsl4CiAinTiPDRGi0gocEtUsos15P/9k="},"images":{"fallback":{"src":"/static/0aa0acaae4a05477269e4460fe099907/f41fb/avatar.jpg","srcSet":"/static/0aa0acaae4a05477269e4460fe099907/80e21/avatar.jpg 28w,\n/static/0aa0acaae4a05477269e4460fe099907/2c33f/avatar.jpg 56w,\n/static/0aa0acaae4a05477269e4460fe099907/f41fb/avatar.jpg 112w,\n/static/0aa0acaae4a05477269e4460fe099907/0e51d/avatar.jpg 224w","sizes":"(min-width: 112px) 112px, 100vw"},"sources":[{"srcSet":"/static/0aa0acaae4a05477269e4460fe099907/ee3b4/avatar.avif 28w,\n/static/0aa0acaae4a05477269e4460fe099907/4175e/avatar.avif 56w,\n/static/0aa0acaae4a05477269e4460fe099907/2110b/avatar.avif 112w,\n/static/0aa0acaae4a05477269e4460fe099907/2898f/avatar.avif 224w","type":"image/avif","sizes":"(min-width: 112px) 112px, 100vw"},{"srcSet":"/static/0aa0acaae4a05477269e4460fe099907/629a0/avatar.webp 28w,\n/static/0aa0acaae4a05477269e4460fe099907/f8744/avatar.webp 56w,\n/static/0aa0acaae4a05477269e4460fe099907/65bf6/avatar.webp 112w,\n/static/0aa0acaae4a05477269e4460fe099907/f42a0/avatar.webp 224w","type":"image/webp","sizes":"(min-width: 112px) 112px, 100vw"}]},"width":112,"height":112}}}}},{"id":"5e0b0b30-7c59-5069-845c-34009bdf9a12","html":"<p>Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source.</p>\n<p>Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of \"de Finibus Bonorum et Malorum\" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, \"Lorem ipsum dolor sit amet..\", comes from a line in section 1.10.32.</p>","frontmatter":{"company":"Google","location":"USA, Washington D.C.","person":"Ivanov P.A.","position":"CEO","image":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAQBBf/EABUBAQEAAAAAAAAAAAAAAAAAAAEC/9oADAMBAAIQAxAAAAHmXRqnVJP/xAAbEAACAgMBAAAAAAAAAAAAAAABAgMSAAQjIf/aAAgBAQABBQJl61QwmmbB72IjV/P/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAWEQEBAQAAAAAAAAAAAAAAAAAAARH/2gAIAQIBAT8BjH//xAAcEAACAgIDAAAAAAAAAAAAAAAAAQIyIjFBUXH/2gAIAQEABj8CceiuhYsco8npU//EABoQAAIDAQEAAAAAAAAAAAAAAAABESExQVH/2gAIAQEAAT8hvnuhyu9RqKPBwW6iElW+znRn/9oADAMBAAIAAwAAABCEH//EABcRAQEBAQAAAAAAAAAAAAAAAAEAETH/2gAIAQMBAT8QTlrf/8QAFhEBAQEAAAAAAAAAAAAAAAAAAREA/9oACAECAQE/EFBunf/EABsQAQADAAMBAAAAAAAAAAAAAAEAESExQWFR/9oACAEBAAE/ENvWwV4xaUWWoIffGburdtnLHXQAvHTbi8Dn3lGsWgALpRP/2Q=="},"images":{"fallback":{"src":"/static/1653698f8fcf780cc3340eb9b946a2fc/a4582/avatar.jpg","srcSet":"/static/1653698f8fcf780cc3340eb9b946a2fc/fc2b0/avatar.jpg 38w,\n/static/1653698f8fcf780cc3340eb9b946a2fc/d4afa/avatar.jpg 75w,\n/static/1653698f8fcf780cc3340eb9b946a2fc/a4582/avatar.jpg 150w","sizes":"(min-width: 150px) 150px, 100vw"},"sources":[{"srcSet":"/static/1653698f8fcf780cc3340eb9b946a2fc/8d237/avatar.avif 38w,\n/static/1653698f8fcf780cc3340eb9b946a2fc/2683f/avatar.avif 75w,\n/static/1653698f8fcf780cc3340eb9b946a2fc/2a822/avatar.avif 150w","type":"image/avif","sizes":"(min-width: 150px) 150px, 100vw"},{"srcSet":"/static/1653698f8fcf780cc3340eb9b946a2fc/9a1a2/avatar.webp 38w,\n/static/1653698f8fcf780cc3340eb9b946a2fc/e0f0e/avatar.webp 75w,\n/static/1653698f8fcf780cc3340eb9b946a2fc/b8b26/avatar.webp 150w","type":"image/webp","sizes":"(min-width: 150px) 150px, 100vw"}]},"width":150,"height":112.00000000000001}}}}},{"id":"69ef07d9-2e55-59e2-aeb7-af3c0fe1f12b","html":"<p>As a service company we wanted to create a website that would sum up all of our experiences gathered over the past 30 years.</p>\n<p>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.</p>\n<p>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.</p>","frontmatter":{"company":"Google","location":"USA, Washington D.C.","person":"Ivanov P.A.","position":"CEO","image":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAQBBf/EABUBAQEAAAAAAAAAAAAAAAAAAAEC/9oADAMBAAIQAxAAAAHmXRqnVJP/xAAbEAACAgMBAAAAAAAAAAAAAAABAgMSAAQjIf/aAAgBAQABBQJl61QwmmbB72IjV/P/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAWEQEBAQAAAAAAAAAAAAAAAAAAARH/2gAIAQIBAT8BjH//xAAcEAACAgIDAAAAAAAAAAAAAAAAAQIyIjFBUXH/2gAIAQEABj8CceiuhYsco8npU//EABoQAAIDAQEAAAAAAAAAAAAAAAABESExQVH/2gAIAQEAAT8hvnuhyu9RqKPBwW6iElW+znRn/9oADAMBAAIAAwAAABCEH//EABcRAQEBAQAAAAAAAAAAAAAAAAEAETH/2gAIAQMBAT8QTlrf/8QAFhEBAQEAAAAAAAAAAAAAAAAAAREA/9oACAECAQE/EFBunf/EABsQAQADAAMBAAAAAAAAAAAAAAEAESExQWFR/9oACAEBAAE/ENvWwV4xaUWWoIffGburdtnLHXQAvHTbi8Dn3lGsWgALpRP/2Q=="},"images":{"fallback":{"src":"/static/1653698f8fcf780cc3340eb9b946a2fc/a4582/avatar.jpg","srcSet":"/static/1653698f8fcf780cc3340eb9b946a2fc/fc2b0/avatar.jpg 38w,\n/static/1653698f8fcf780cc3340eb9b946a2fc/d4afa/avatar.jpg 75w,\n/static/1653698f8fcf780cc3340eb9b946a2fc/a4582/avatar.jpg 150w","sizes":"(min-width: 150px) 150px, 100vw"},"sources":[{"srcSet":"/static/1653698f8fcf780cc3340eb9b946a2fc/8d237/avatar.avif 38w,\n/static/1653698f8fcf780cc3340eb9b946a2fc/2683f/avatar.avif 75w,\n/static/1653698f8fcf780cc3340eb9b946a2fc/2a822/avatar.avif 150w","type":"image/avif","sizes":"(min-width: 150px) 150px, 100vw"},{"srcSet":"/static/1653698f8fcf780cc3340eb9b946a2fc/9a1a2/avatar.webp 38w,\n/static/1653698f8fcf780cc3340eb9b946a2fc/e0f0e/avatar.webp 75w,\n/static/1653698f8fcf780cc3340eb9b946a2fc/b8b26/avatar.webp 150w","type":"image/webp","sizes":"(min-width: 150px) 150px, 100vw"}]},"width":150,"height":112.00000000000001}}}}},{"id":"64c88e92-d833-580c-9746-78f9cbe7b770","html":"<p>Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of \"de Finibus Bonorum et Malorum\" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, \"Lorem ipsum dolor sit amet..\", comes from a line in section 1.10.32.</p>","frontmatter":{"company":"Google","location":"USA, Washington D.C.","person":"Ivanov P.A.","position":"CEO","image":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAQBBf/EABUBAQEAAAAAAAAAAAAAAAAAAAEC/9oADAMBAAIQAxAAAAHmXRqnVJP/xAAbEAACAgMBAAAAAAAAAAAAAAABAgMSAAQjIf/aAAgBAQABBQJl61QwmmbB72IjV/P/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAWEQEBAQAAAAAAAAAAAAAAAAAAARH/2gAIAQIBAT8BjH//xAAcEAACAgIDAAAAAAAAAAAAAAAAAQIyIjFBUXH/2gAIAQEABj8CceiuhYsco8npU//EABoQAAIDAQEAAAAAAAAAAAAAAAABESExQVH/2gAIAQEAAT8hvnuhyu9RqKPBwW6iElW+znRn/9oADAMBAAIAAwAAABCEH//EABcRAQEBAQAAAAAAAAAAAAAAAAEAETH/2gAIAQMBAT8QTlrf/8QAFhEBAQEAAAAAAAAAAAAAAAAAAREA/9oACAECAQE/EFBunf/EABsQAQADAAMBAAAAAAAAAAAAAAEAESExQWFR/9oACAEBAAE/ENvWwV4xaUWWoIffGburdtnLHXQAvHTbi8Dn3lGsWgALpRP/2Q=="},"images":{"fallback":{"src":"/static/1653698f8fcf780cc3340eb9b946a2fc/a4582/avatar.jpg","srcSet":"/static/1653698f8fcf780cc3340eb9b946a2fc/fc2b0/avatar.jpg 38w,\n/static/1653698f8fcf780cc3340eb9b946a2fc/d4afa/avatar.jpg 75w,\n/static/1653698f8fcf780cc3340eb9b946a2fc/a4582/avatar.jpg 150w","sizes":"(min-width: 150px) 150px, 100vw"},"sources":[{"srcSet":"/static/1653698f8fcf780cc3340eb9b946a2fc/8d237/avatar.avif 38w,\n/static/1653698f8fcf780cc3340eb9b946a2fc/2683f/avatar.avif 75w,\n/static/1653698f8fcf780cc3340eb9b946a2fc/2a822/avatar.avif 150w","type":"image/avif","sizes":"(min-width: 150px) 150px, 100vw"},{"srcSet":"/static/1653698f8fcf780cc3340eb9b946a2fc/9a1a2/avatar.webp 38w,\n/static/1653698f8fcf780cc3340eb9b946a2fc/e0f0e/avatar.webp 75w,\n/static/1653698f8fcf780cc3340eb9b946a2fc/b8b26/avatar.webp 150w","type":"image/webp","sizes":"(min-width: 150px) 150px, 100vw"}]},"width":150,"height":112.00000000000001}}}}}]}}} \ No newline at end of file +{"data":{"allMarkdownRemark":{"nodes":[{"id":"34868568-9b89-5a5c-8ddc-1324153ab835","html":"<p>As a service company we wanted to create a website that would sum up all of our experiences gathered over the past 30 years.</p>\n<p>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.</p>\n<p>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.</p>","frontmatter":{"company":"Prima Consulting d.o.o.","location":"Čajetina, Serbia","person":"Roberto Assi","position":"CEO","image":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGAABAQEBAQAAAAAAAAAAAAAAAAQDAQL/xAAXAQADAQAAAAAAAAAAAAAAAAACAwQB/9oADAMBAAIQAxAAAAHWSmMGWPCZnJCpWA0f/8QAGxAAAgIDAQAAAAAAAAAAAAAAAQIAAxESIzL/2gAIAQEAAQUCR0UXsmR5Q7LbNpVgi0cxcwH/xAAZEQABBQAAAAAAAAAAAAAAAAAAARARMUH/2gAIAQMBAT8BSiTG/8QAFhEAAwAAAAAAAAAAAAAAAAAAABAh/9oACAECAQE/ASv/xAAcEAACAgIDAAAAAAAAAAAAAAAAAREhAkEQMXH/2gAIAQEABj8CTyKdiIHPc8Oh5bk0/Uf/xAAbEAEAAwEAAwAAAAAAAAAAAAABABEhMUFRYf/aAAgBAQABPyFEdeZyMOQjtK6XDoUoz1tRwcMgwhi2Q/MoIOK+2k//2gAMAwEAAgADAAAAENfPfv/EABgRAAMBAQAAAAAAAAAAAAAAAAABETFB/9oACAEDAQE/EE4JHsrP/8QAFxEAAwEAAAAAAAAAAAAAAAAAAAERMf/aAAgBAgEBPxC0aoWoiP/EABwQAQEBAQACAwAAAAAAAAAAAAERACExkYHR8P/aAAgBAQABPxCBO0KTGIlVQSOtKYe2KE0fJ0xaCRSyuCEqAJ8Ywu5GPE+8VVSlbD8Z4wnAPtv/2Q=="},"images":{"fallback":{"src":"/static/925f87351999aef81e93dfc5e7e378cb/f41fb/avatar.jpg","srcSet":"/static/925f87351999aef81e93dfc5e7e378cb/80e21/avatar.jpg 28w,\n/static/925f87351999aef81e93dfc5e7e378cb/2c33f/avatar.jpg 56w,\n/static/925f87351999aef81e93dfc5e7e378cb/f41fb/avatar.jpg 112w,\n/static/925f87351999aef81e93dfc5e7e378cb/0e51d/avatar.jpg 224w","sizes":"(min-width: 112px) 112px, 100vw"},"sources":[{"srcSet":"/static/925f87351999aef81e93dfc5e7e378cb/ee3b4/avatar.avif 28w,\n/static/925f87351999aef81e93dfc5e7e378cb/4175e/avatar.avif 56w,\n/static/925f87351999aef81e93dfc5e7e378cb/2110b/avatar.avif 112w,\n/static/925f87351999aef81e93dfc5e7e378cb/2898f/avatar.avif 224w","type":"image/avif","sizes":"(min-width: 112px) 112px, 100vw"},{"srcSet":"/static/925f87351999aef81e93dfc5e7e378cb/629a0/avatar.webp 28w,\n/static/925f87351999aef81e93dfc5e7e378cb/f8744/avatar.webp 56w,\n/static/925f87351999aef81e93dfc5e7e378cb/65bf6/avatar.webp 112w,\n/static/925f87351999aef81e93dfc5e7e378cb/f42a0/avatar.webp 224w","type":"image/webp","sizes":"(min-width: 112px) 112px, 100vw"}]},"width":112,"height":112}}}}},{"id":"9ef2a36b-7e13-55f3-84e7-524f0f5d4692","html":"<p>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.</p>","frontmatter":{"company":"Specifi Europe Srl","location":"Venezia, Italy","person":"Fabio Tantaro","position":"General Manger","image":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGAABAQEBAQAAAAAAAAAAAAAAAAQCBQb/xAAWAQEBAQAAAAAAAAAAAAAAAAACAQD/2gAMAwEAAhADEAAAAaIL4yu6KPG7MtCn/8QAGhAAAwEBAQEAAAAAAAAAAAAAAQIDBAARM//aAAgBAQABBQLZoaZJrnYH0blHALXlACvR3LfKd6TX/8QAFhEBAQEAAAAAAAAAAAAAAAAAARAR/9oACAEDAQE/AQMhP//EABURAQEAAAAAAAAAAAAAAAAAAAEQ/9oACAECAQE/AWM//8QAHBAAAgIDAQEAAAAAAAAAAAAAAAECERIxQSED/9oACAEBAAY/Aowht9FPPK9lkfo+Mw1ehJaLnJsXnSoy8P/EABsQAAMAAwEBAAAAAAAAAAAAAAABESExQVFh/9oACAEBAAE/IcWJnxnqZA9KkbyWJp9ILTob4aECiLMP1kXhNjDNtD//2gAMAwEAAgADAAAAEOfwQf/EABYRAQEBAAAAAAAAAAAAAAAAAAEQMf/aAAgBAwEBPxBiWYZ//8QAFxEBAQEBAAAAAAAAAAAAAAAAARARMf/aAAgBAgEBPxBImTon/8QAHRABAAICAwEBAAAAAAAAAAAAAQARITFRYXGBof/aAAgBAQABPxCjIt2BousHMXugCKJ3CO0Q+w/W4i8eRIhKtKcv5EDwsl4CiAinTiPDRGi0gocEtUsos15P/9k="},"images":{"fallback":{"src":"/static/0aa0acaae4a05477269e4460fe099907/f41fb/avatar.jpg","srcSet":"/static/0aa0acaae4a05477269e4460fe099907/80e21/avatar.jpg 28w,\n/static/0aa0acaae4a05477269e4460fe099907/2c33f/avatar.jpg 56w,\n/static/0aa0acaae4a05477269e4460fe099907/f41fb/avatar.jpg 112w,\n/static/0aa0acaae4a05477269e4460fe099907/0e51d/avatar.jpg 224w","sizes":"(min-width: 112px) 112px, 100vw"},"sources":[{"srcSet":"/static/0aa0acaae4a05477269e4460fe099907/ee3b4/avatar.avif 28w,\n/static/0aa0acaae4a05477269e4460fe099907/4175e/avatar.avif 56w,\n/static/0aa0acaae4a05477269e4460fe099907/2110b/avatar.avif 112w,\n/static/0aa0acaae4a05477269e4460fe099907/2898f/avatar.avif 224w","type":"image/avif","sizes":"(min-width: 112px) 112px, 100vw"},{"srcSet":"/static/0aa0acaae4a05477269e4460fe099907/629a0/avatar.webp 28w,\n/static/0aa0acaae4a05477269e4460fe099907/f8744/avatar.webp 56w,\n/static/0aa0acaae4a05477269e4460fe099907/65bf6/avatar.webp 112w,\n/static/0aa0acaae4a05477269e4460fe099907/f42a0/avatar.webp 224w","type":"image/webp","sizes":"(min-width: 112px) 112px, 100vw"}]},"width":112,"height":112}}}}},{"id":"07793b04-f229-5c7b-91cb-1a34ea754692","html":"<p>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.</p>\n<p>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.</p>","frontmatter":{"company":"Soytex LLC","location":"Dobele, Latvia","person":"SIA \"Agrolats Group\"","position":"CEO","image":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAMBBP/EABgBAQADAQAAAAAAAAAAAAAAAAABAgME/9oADAMBAAIQAxAAAAHhvO+fXyNRbAAf/8QAGxAAAQUBAQAAAAAAAAAAAAAAAQACAxASITH/2gAIAQEAAQUCHTLG1lDCOHo+3//EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQMBAT8BH//EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQIBAT8BH//EABwQAQACAQUAAAAAAAAAAAAAAAEAEQIQEiAhkf/aAAgBAQAGPwIIbcr07XyXYcf/xAAdEAEAAQQDAQAAAAAAAAAAAAABEQAhMVEQIEFh/9oACAEBAAE/IT9RiryCzkjHBgJnRS0hdBFAEDJ49P/aAAwDAQACAAMAAAAQ9PDD/8QAFhEBAQEAAAAAAAAAAAAAAAAAASAh/9oACAEDAQE/EF0j/8QAFREBAQAAAAAAAAAAAAAAAAAAIEH/2gAIAQIBAT8Qg//EAB4QAQEAAQMFAAAAAAAAAAAAAAERABAhUSBBcZGx/9oACAEBAAE/EK4yVcVmMNlC7BR9t0khXeg93CqGEBt37i+MkaVOQ56P/9k="},"images":{"fallback":{"src":"/static/e695f1a48d28625cbba253860b1a47de/f41fb/avatar.jpg","srcSet":"/static/e695f1a48d28625cbba253860b1a47de/80e21/avatar.jpg 28w,\n/static/e695f1a48d28625cbba253860b1a47de/2c33f/avatar.jpg 56w,\n/static/e695f1a48d28625cbba253860b1a47de/f41fb/avatar.jpg 112w","sizes":"(min-width: 112px) 112px, 100vw"},"sources":[{"srcSet":"/static/e695f1a48d28625cbba253860b1a47de/ee3b4/avatar.avif 28w,\n/static/e695f1a48d28625cbba253860b1a47de/4175e/avatar.avif 56w,\n/static/e695f1a48d28625cbba253860b1a47de/2110b/avatar.avif 112w","type":"image/avif","sizes":"(min-width: 112px) 112px, 100vw"},{"srcSet":"/static/e695f1a48d28625cbba253860b1a47de/629a0/avatar.webp 28w,\n/static/e695f1a48d28625cbba253860b1a47de/f8744/avatar.webp 56w,\n/static/e695f1a48d28625cbba253860b1a47de/65bf6/avatar.webp 112w","type":"image/webp","sizes":"(min-width: 112px) 112px, 100vw"}]},"width":112,"height":112}}}}},{"id":"5e0b0b30-7c59-5069-845c-34009bdf9a12","html":"<p>Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source.</p>\n<p>Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of \"de Finibus Bonorum et Malorum\" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, \"Lorem ipsum dolor sit amet..\", comes from a line in section 1.10.32.</p>","frontmatter":{"company":"Google","location":"USA, Washington D.C.","person":"Ivanov P.A.","position":"CEO","image":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAQBBf/EABUBAQEAAAAAAAAAAAAAAAAAAAEC/9oADAMBAAIQAxAAAAHmXRqnVJP/xAAbEAACAgMBAAAAAAAAAAAAAAABAgMSAAQjIf/aAAgBAQABBQJl61QwmmbB72IjV/P/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAWEQEBAQAAAAAAAAAAAAAAAAAAARH/2gAIAQIBAT8BjH//xAAcEAACAgIDAAAAAAAAAAAAAAAAAQIyIjFBUXH/2gAIAQEABj8CceiuhYsco8npU//EABoQAAIDAQEAAAAAAAAAAAAAAAABESExQVH/2gAIAQEAAT8hvnuhyu9RqKPBwW6iElW+znRn/9oADAMBAAIAAwAAABCEH//EABcRAQEBAQAAAAAAAAAAAAAAAAEAETH/2gAIAQMBAT8QTlrf/8QAFhEBAQEAAAAAAAAAAAAAAAAAAREA/9oACAECAQE/EFBunf/EABsQAQADAAMBAAAAAAAAAAAAAAEAESExQWFR/9oACAEBAAE/ENvWwV4xaUWWoIffGburdtnLHXQAvHTbi8Dn3lGsWgALpRP/2Q=="},"images":{"fallback":{"src":"/static/1653698f8fcf780cc3340eb9b946a2fc/a4582/avatar.jpg","srcSet":"/static/1653698f8fcf780cc3340eb9b946a2fc/fc2b0/avatar.jpg 38w,\n/static/1653698f8fcf780cc3340eb9b946a2fc/d4afa/avatar.jpg 75w,\n/static/1653698f8fcf780cc3340eb9b946a2fc/a4582/avatar.jpg 150w","sizes":"(min-width: 150px) 150px, 100vw"},"sources":[{"srcSet":"/static/1653698f8fcf780cc3340eb9b946a2fc/8d237/avatar.avif 38w,\n/static/1653698f8fcf780cc3340eb9b946a2fc/2683f/avatar.avif 75w,\n/static/1653698f8fcf780cc3340eb9b946a2fc/2a822/avatar.avif 150w","type":"image/avif","sizes":"(min-width: 150px) 150px, 100vw"},{"srcSet":"/static/1653698f8fcf780cc3340eb9b946a2fc/9a1a2/avatar.webp 38w,\n/static/1653698f8fcf780cc3340eb9b946a2fc/e0f0e/avatar.webp 75w,\n/static/1653698f8fcf780cc3340eb9b946a2fc/b8b26/avatar.webp 150w","type":"image/webp","sizes":"(min-width: 150px) 150px, 100vw"}]},"width":150,"height":112.00000000000001}}}}},{"id":"64c88e92-d833-580c-9746-78f9cbe7b770","html":"<p>Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of \"de Finibus Bonorum et Malorum\" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, \"Lorem ipsum dolor sit amet..\", comes from a line in section 1.10.32.</p>","frontmatter":{"company":"Google","location":"USA, Washington D.C.","person":"Ivanov P.A.","position":"CEO","image":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAQBBf/EABUBAQEAAAAAAAAAAAAAAAAAAAEC/9oADAMBAAIQAxAAAAHmXRqnVJP/xAAbEAACAgMBAAAAAAAAAAAAAAABAgMSAAQjIf/aAAgBAQABBQJl61QwmmbB72IjV/P/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAWEQEBAQAAAAAAAAAAAAAAAAAAARH/2gAIAQIBAT8BjH//xAAcEAACAgIDAAAAAAAAAAAAAAAAAQIyIjFBUXH/2gAIAQEABj8CceiuhYsco8npU//EABoQAAIDAQEAAAAAAAAAAAAAAAABESExQVH/2gAIAQEAAT8hvnuhyu9RqKPBwW6iElW+znRn/9oADAMBAAIAAwAAABCEH//EABcRAQEBAQAAAAAAAAAAAAAAAAEAETH/2gAIAQMBAT8QTlrf/8QAFhEBAQEAAAAAAAAAAAAAAAAAAREA/9oACAECAQE/EFBunf/EABsQAQADAAMBAAAAAAAAAAAAAAEAESExQWFR/9oACAEBAAE/ENvWwV4xaUWWoIffGburdtnLHXQAvHTbi8Dn3lGsWgALpRP/2Q=="},"images":{"fallback":{"src":"/static/1653698f8fcf780cc3340eb9b946a2fc/a4582/avatar.jpg","srcSet":"/static/1653698f8fcf780cc3340eb9b946a2fc/fc2b0/avatar.jpg 38w,\n/static/1653698f8fcf780cc3340eb9b946a2fc/d4afa/avatar.jpg 75w,\n/static/1653698f8fcf780cc3340eb9b946a2fc/a4582/avatar.jpg 150w","sizes":"(min-width: 150px) 150px, 100vw"},"sources":[{"srcSet":"/static/1653698f8fcf780cc3340eb9b946a2fc/8d237/avatar.avif 38w,\n/static/1653698f8fcf780cc3340eb9b946a2fc/2683f/avatar.avif 75w,\n/static/1653698f8fcf780cc3340eb9b946a2fc/2a822/avatar.avif 150w","type":"image/avif","sizes":"(min-width: 150px) 150px, 100vw"},{"srcSet":"/static/1653698f8fcf780cc3340eb9b946a2fc/9a1a2/avatar.webp 38w,\n/static/1653698f8fcf780cc3340eb9b946a2fc/e0f0e/avatar.webp 75w,\n/static/1653698f8fcf780cc3340eb9b946a2fc/b8b26/avatar.webp 150w","type":"image/webp","sizes":"(min-width: 150px) 150px, 100vw"}]},"width":150,"height":112.00000000000001}}}}},{"id":"69ef07d9-2e55-59e2-aeb7-af3c0fe1f12b","html":"<p>As a service company we wanted to create a website that would sum up all of our experiences gathered over the past 30 years.</p>\n<p>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.</p>\n<p>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.</p>","frontmatter":{"company":"Google","location":"USA, Washington D.C.","person":"Ivanov P.A.","position":"CEO","image":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAQBBf/EABUBAQEAAAAAAAAAAAAAAAAAAAEC/9oADAMBAAIQAxAAAAHmXRqnVJP/xAAbEAACAgMBAAAAAAAAAAAAAAABAgMSAAQjIf/aAAgBAQABBQJl61QwmmbB72IjV/P/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAWEQEBAQAAAAAAAAAAAAAAAAAAARH/2gAIAQIBAT8BjH//xAAcEAACAgIDAAAAAAAAAAAAAAAAAQIyIjFBUXH/2gAIAQEABj8CceiuhYsco8npU//EABoQAAIDAQEAAAAAAAAAAAAAAAABESExQVH/2gAIAQEAAT8hvnuhyu9RqKPBwW6iElW+znRn/9oADAMBAAIAAwAAABCEH//EABcRAQEBAQAAAAAAAAAAAAAAAAEAETH/2gAIAQMBAT8QTlrf/8QAFhEBAQEAAAAAAAAAAAAAAAAAAREA/9oACAECAQE/EFBunf/EABsQAQADAAMBAAAAAAAAAAAAAAEAESExQWFR/9oACAEBAAE/ENvWwV4xaUWWoIffGburdtnLHXQAvHTbi8Dn3lGsWgALpRP/2Q=="},"images":{"fallback":{"src":"/static/1653698f8fcf780cc3340eb9b946a2fc/a4582/avatar.jpg","srcSet":"/static/1653698f8fcf780cc3340eb9b946a2fc/fc2b0/avatar.jpg 38w,\n/static/1653698f8fcf780cc3340eb9b946a2fc/d4afa/avatar.jpg 75w,\n/static/1653698f8fcf780cc3340eb9b946a2fc/a4582/avatar.jpg 150w","sizes":"(min-width: 150px) 150px, 100vw"},"sources":[{"srcSet":"/static/1653698f8fcf780cc3340eb9b946a2fc/8d237/avatar.avif 38w,\n/static/1653698f8fcf780cc3340eb9b946a2fc/2683f/avatar.avif 75w,\n/static/1653698f8fcf780cc3340eb9b946a2fc/2a822/avatar.avif 150w","type":"image/avif","sizes":"(min-width: 150px) 150px, 100vw"},{"srcSet":"/static/1653698f8fcf780cc3340eb9b946a2fc/9a1a2/avatar.webp 38w,\n/static/1653698f8fcf780cc3340eb9b946a2fc/e0f0e/avatar.webp 75w,\n/static/1653698f8fcf780cc3340eb9b946a2fc/b8b26/avatar.webp 150w","type":"image/webp","sizes":"(min-width: 150px) 150px, 100vw"}]},"width":150,"height":112.00000000000001}}}}}]}}} \ No newline at end of file diff --git a/projects/2df68c09-ccd8-5c98-8c7b-df6ed596ab7b/index.html b/projects/2df68c09-ccd8-5c98-8c7b-df6ed596ab7b/index.html index e3865e36..7072ab47 100644 --- a/projects/2df68c09-ccd8-5c98-8c7b-df6ed596ab7b/index.html +++ b/projects/2df68c09-ccd8-5c98-8c7b-df6ed596ab7b/index.html @@ -5,6 +5,6 @@ <script id="gatsby-chunk-mapping" > - window.___chunkMapping="{\"app\":[\"/app-0be32afa8722358651ed.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-985104a1d001afc81f25.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-8f11132d55ccda45c143.js\"],\"component---src-pages-services-tsx\":[\"/component---src-pages-services-tsx-ad089d9c65e0d5421453.js\"],\"component---src-pages-templates-blog-tsx\":[\"/component---src-pages-templates-blog-tsx-3e928f3e8cb34f3b7e4c.js\"],\"component---src-pages-templates-post-tsx\":[\"/component---src-pages-templates-post-tsx-f2b5783ab45f7133a802.js\"],\"component---src-pages-templates-project-tsx\":[\"/component---src-pages-templates-project-tsx-808e529df29d8bdea686.js\"],\"component---src-pages-templates-projects-tsx\":[\"/component---src-pages-templates-projects-tsx-bc2345c3e66bde0622dc.js\"],\"component---src-pages-workflow-tsx\":[\"/component---src-pages-workflow-tsx-66c85385336912fb7c37.js\"]}"; + window.___chunkMapping="{\"app\":[\"/app-0be32afa8722358651ed.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-985104a1d001afc81f25.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-51c4d6c78f0455be8e64.js\"],\"component---src-pages-services-tsx\":[\"/component---src-pages-services-tsx-004b5c906bc78a1f96ae.js\"],\"component---src-pages-templates-blog-tsx\":[\"/component---src-pages-templates-blog-tsx-2739ab3251f03f4eb07f.js\"],\"component---src-pages-templates-post-tsx\":[\"/component---src-pages-templates-post-tsx-7f7e2c93fcb41ce4f82f.js\"],\"component---src-pages-templates-project-tsx\":[\"/component---src-pages-templates-project-tsx-808e529df29d8bdea686.js\"],\"component---src-pages-templates-projects-tsx\":[\"/component---src-pages-templates-projects-tsx-75dd824378dedee3ee1b.js\"],\"component---src-pages-workflow-tsx\":[\"/component---src-pages-workflow-tsx-71ff73d9d1233d63de8e.js\"]}"; </script> - <script>window.___webpackCompilationHash="2552ca4b597845d70de8";</script><script src="/webpack-runtime-9d58aaf54df1d848a0ab.js" async></script><script src="/framework-e4f3e98283dd6d5d8e77.js" async></script><script src="/app-0be32afa8722358651ed.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html> \ No newline at end of file + <script>window.___webpackCompilationHash="2282541953a94831106d";</script><script src="/webpack-runtime-462cd70edcbbeae08639.js" async></script><script src="/framework-e4f3e98283dd6d5d8e77.js" async></script><script src="/app-0be32afa8722358651ed.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html> \ No newline at end of file diff --git a/projects/444bdbbc-cac8-564e-99a5-aef7520a42fb/index.html b/projects/444bdbbc-cac8-564e-99a5-aef7520a42fb/index.html index d134526c..dc7428a4 100644 --- a/projects/444bdbbc-cac8-564e-99a5-aef7520a42fb/index.html +++ b/projects/444bdbbc-cac8-564e-99a5-aef7520a42fb/index.html @@ -5,6 +5,6 @@ <script id="gatsby-chunk-mapping" > - window.___chunkMapping="{\"app\":[\"/app-0be32afa8722358651ed.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-985104a1d001afc81f25.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-8f11132d55ccda45c143.js\"],\"component---src-pages-services-tsx\":[\"/component---src-pages-services-tsx-ad089d9c65e0d5421453.js\"],\"component---src-pages-templates-blog-tsx\":[\"/component---src-pages-templates-blog-tsx-3e928f3e8cb34f3b7e4c.js\"],\"component---src-pages-templates-post-tsx\":[\"/component---src-pages-templates-post-tsx-f2b5783ab45f7133a802.js\"],\"component---src-pages-templates-project-tsx\":[\"/component---src-pages-templates-project-tsx-808e529df29d8bdea686.js\"],\"component---src-pages-templates-projects-tsx\":[\"/component---src-pages-templates-projects-tsx-bc2345c3e66bde0622dc.js\"],\"component---src-pages-workflow-tsx\":[\"/component---src-pages-workflow-tsx-66c85385336912fb7c37.js\"]}"; + window.___chunkMapping="{\"app\":[\"/app-0be32afa8722358651ed.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-985104a1d001afc81f25.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-51c4d6c78f0455be8e64.js\"],\"component---src-pages-services-tsx\":[\"/component---src-pages-services-tsx-004b5c906bc78a1f96ae.js\"],\"component---src-pages-templates-blog-tsx\":[\"/component---src-pages-templates-blog-tsx-2739ab3251f03f4eb07f.js\"],\"component---src-pages-templates-post-tsx\":[\"/component---src-pages-templates-post-tsx-7f7e2c93fcb41ce4f82f.js\"],\"component---src-pages-templates-project-tsx\":[\"/component---src-pages-templates-project-tsx-808e529df29d8bdea686.js\"],\"component---src-pages-templates-projects-tsx\":[\"/component---src-pages-templates-projects-tsx-75dd824378dedee3ee1b.js\"],\"component---src-pages-workflow-tsx\":[\"/component---src-pages-workflow-tsx-71ff73d9d1233d63de8e.js\"]}"; </script> - <script>window.___webpackCompilationHash="2552ca4b597845d70de8";</script><script src="/webpack-runtime-9d58aaf54df1d848a0ab.js" async></script><script src="/framework-e4f3e98283dd6d5d8e77.js" async></script><script src="/app-0be32afa8722358651ed.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html> \ No newline at end of file + <script>window.___webpackCompilationHash="2282541953a94831106d";</script><script src="/webpack-runtime-462cd70edcbbeae08639.js" async></script><script src="/framework-e4f3e98283dd6d5d8e77.js" async></script><script src="/app-0be32afa8722358651ed.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html> \ No newline at end of file diff --git a/projects/641cda9e-7e00-5704-9d96-9c89f2b1b76f/index.html b/projects/641cda9e-7e00-5704-9d96-9c89f2b1b76f/index.html index 64729767..5ceae294 100644 --- a/projects/641cda9e-7e00-5704-9d96-9c89f2b1b76f/index.html +++ b/projects/641cda9e-7e00-5704-9d96-9c89f2b1b76f/index.html @@ -5,6 +5,6 @@ <script id="gatsby-chunk-mapping" > - window.___chunkMapping="{\"app\":[\"/app-0be32afa8722358651ed.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-985104a1d001afc81f25.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-8f11132d55ccda45c143.js\"],\"component---src-pages-services-tsx\":[\"/component---src-pages-services-tsx-ad089d9c65e0d5421453.js\"],\"component---src-pages-templates-blog-tsx\":[\"/component---src-pages-templates-blog-tsx-3e928f3e8cb34f3b7e4c.js\"],\"component---src-pages-templates-post-tsx\":[\"/component---src-pages-templates-post-tsx-f2b5783ab45f7133a802.js\"],\"component---src-pages-templates-project-tsx\":[\"/component---src-pages-templates-project-tsx-808e529df29d8bdea686.js\"],\"component---src-pages-templates-projects-tsx\":[\"/component---src-pages-templates-projects-tsx-bc2345c3e66bde0622dc.js\"],\"component---src-pages-workflow-tsx\":[\"/component---src-pages-workflow-tsx-66c85385336912fb7c37.js\"]}"; + window.___chunkMapping="{\"app\":[\"/app-0be32afa8722358651ed.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-985104a1d001afc81f25.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-51c4d6c78f0455be8e64.js\"],\"component---src-pages-services-tsx\":[\"/component---src-pages-services-tsx-004b5c906bc78a1f96ae.js\"],\"component---src-pages-templates-blog-tsx\":[\"/component---src-pages-templates-blog-tsx-2739ab3251f03f4eb07f.js\"],\"component---src-pages-templates-post-tsx\":[\"/component---src-pages-templates-post-tsx-7f7e2c93fcb41ce4f82f.js\"],\"component---src-pages-templates-project-tsx\":[\"/component---src-pages-templates-project-tsx-808e529df29d8bdea686.js\"],\"component---src-pages-templates-projects-tsx\":[\"/component---src-pages-templates-projects-tsx-75dd824378dedee3ee1b.js\"],\"component---src-pages-workflow-tsx\":[\"/component---src-pages-workflow-tsx-71ff73d9d1233d63de8e.js\"]}"; </script> - <script>window.___webpackCompilationHash="2552ca4b597845d70de8";</script><script src="/webpack-runtime-9d58aaf54df1d848a0ab.js" async></script><script src="/framework-e4f3e98283dd6d5d8e77.js" async></script><script src="/app-0be32afa8722358651ed.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html> \ No newline at end of file + <script>window.___webpackCompilationHash="2282541953a94831106d";</script><script src="/webpack-runtime-462cd70edcbbeae08639.js" async></script><script src="/framework-e4f3e98283dd6d5d8e77.js" async></script><script src="/app-0be32afa8722358651ed.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html> \ No newline at end of file diff --git a/projects/bcb90cf1-0e2a-5f23-a891-0c2ed8948cbc/index.html b/projects/bcb90cf1-0e2a-5f23-a891-0c2ed8948cbc/index.html index e15b917d..22083e2f 100644 --- a/projects/bcb90cf1-0e2a-5f23-a891-0c2ed8948cbc/index.html +++ b/projects/bcb90cf1-0e2a-5f23-a891-0c2ed8948cbc/index.html @@ -5,6 +5,6 @@ <script id="gatsby-chunk-mapping" > - window.___chunkMapping="{\"app\":[\"/app-0be32afa8722358651ed.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-985104a1d001afc81f25.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-8f11132d55ccda45c143.js\"],\"component---src-pages-services-tsx\":[\"/component---src-pages-services-tsx-ad089d9c65e0d5421453.js\"],\"component---src-pages-templates-blog-tsx\":[\"/component---src-pages-templates-blog-tsx-3e928f3e8cb34f3b7e4c.js\"],\"component---src-pages-templates-post-tsx\":[\"/component---src-pages-templates-post-tsx-f2b5783ab45f7133a802.js\"],\"component---src-pages-templates-project-tsx\":[\"/component---src-pages-templates-project-tsx-808e529df29d8bdea686.js\"],\"component---src-pages-templates-projects-tsx\":[\"/component---src-pages-templates-projects-tsx-bc2345c3e66bde0622dc.js\"],\"component---src-pages-workflow-tsx\":[\"/component---src-pages-workflow-tsx-66c85385336912fb7c37.js\"]}"; + window.___chunkMapping="{\"app\":[\"/app-0be32afa8722358651ed.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-985104a1d001afc81f25.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-51c4d6c78f0455be8e64.js\"],\"component---src-pages-services-tsx\":[\"/component---src-pages-services-tsx-004b5c906bc78a1f96ae.js\"],\"component---src-pages-templates-blog-tsx\":[\"/component---src-pages-templates-blog-tsx-2739ab3251f03f4eb07f.js\"],\"component---src-pages-templates-post-tsx\":[\"/component---src-pages-templates-post-tsx-7f7e2c93fcb41ce4f82f.js\"],\"component---src-pages-templates-project-tsx\":[\"/component---src-pages-templates-project-tsx-808e529df29d8bdea686.js\"],\"component---src-pages-templates-projects-tsx\":[\"/component---src-pages-templates-projects-tsx-75dd824378dedee3ee1b.js\"],\"component---src-pages-workflow-tsx\":[\"/component---src-pages-workflow-tsx-71ff73d9d1233d63de8e.js\"]}"; </script> - <script>window.___webpackCompilationHash="2552ca4b597845d70de8";</script><script src="/webpack-runtime-9d58aaf54df1d848a0ab.js" async></script><script src="/framework-e4f3e98283dd6d5d8e77.js" async></script><script src="/app-0be32afa8722358651ed.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html> \ No newline at end of file + <script>window.___webpackCompilationHash="2282541953a94831106d";</script><script src="/webpack-runtime-462cd70edcbbeae08639.js" async></script><script src="/framework-e4f3e98283dd6d5d8e77.js" async></script><script src="/app-0be32afa8722358651ed.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html> \ No newline at end of file diff --git a/projects/index.html b/projects/index.html index 9bdd3505..8c4a0399 100644 --- a/projects/index.html +++ b/projects/index.html @@ -5,6 +5,6 @@ <script id="gatsby-chunk-mapping" > - window.___chunkMapping="{\"app\":[\"/app-0be32afa8722358651ed.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-985104a1d001afc81f25.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-8f11132d55ccda45c143.js\"],\"component---src-pages-services-tsx\":[\"/component---src-pages-services-tsx-ad089d9c65e0d5421453.js\"],\"component---src-pages-templates-blog-tsx\":[\"/component---src-pages-templates-blog-tsx-3e928f3e8cb34f3b7e4c.js\"],\"component---src-pages-templates-post-tsx\":[\"/component---src-pages-templates-post-tsx-f2b5783ab45f7133a802.js\"],\"component---src-pages-templates-project-tsx\":[\"/component---src-pages-templates-project-tsx-808e529df29d8bdea686.js\"],\"component---src-pages-templates-projects-tsx\":[\"/component---src-pages-templates-projects-tsx-bc2345c3e66bde0622dc.js\"],\"component---src-pages-workflow-tsx\":[\"/component---src-pages-workflow-tsx-66c85385336912fb7c37.js\"]}"; + window.___chunkMapping="{\"app\":[\"/app-0be32afa8722358651ed.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-985104a1d001afc81f25.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-51c4d6c78f0455be8e64.js\"],\"component---src-pages-services-tsx\":[\"/component---src-pages-services-tsx-004b5c906bc78a1f96ae.js\"],\"component---src-pages-templates-blog-tsx\":[\"/component---src-pages-templates-blog-tsx-2739ab3251f03f4eb07f.js\"],\"component---src-pages-templates-post-tsx\":[\"/component---src-pages-templates-post-tsx-7f7e2c93fcb41ce4f82f.js\"],\"component---src-pages-templates-project-tsx\":[\"/component---src-pages-templates-project-tsx-808e529df29d8bdea686.js\"],\"component---src-pages-templates-projects-tsx\":[\"/component---src-pages-templates-projects-tsx-75dd824378dedee3ee1b.js\"],\"component---src-pages-workflow-tsx\":[\"/component---src-pages-workflow-tsx-71ff73d9d1233d63de8e.js\"]}"; </script> - <script>window.___webpackCompilationHash="2552ca4b597845d70de8";</script><script src="/webpack-runtime-9d58aaf54df1d848a0ab.js" async></script><script src="/framework-e4f3e98283dd6d5d8e77.js" async></script><script src="/app-0be32afa8722358651ed.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html> \ No newline at end of file + <script>window.___webpackCompilationHash="2282541953a94831106d";</script><script src="/webpack-runtime-462cd70edcbbeae08639.js" async></script><script src="/framework-e4f3e98283dd6d5d8e77.js" async></script><script src="/app-0be32afa8722358651ed.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html> \ No newline at end of file diff --git a/projects/page/1/index.html b/projects/page/1/index.html index 98538010..7b84fa89 100644 --- a/projects/page/1/index.html +++ b/projects/page/1/index.html @@ -5,6 +5,6 @@ <script id="gatsby-chunk-mapping" > - window.___chunkMapping="{\"app\":[\"/app-0be32afa8722358651ed.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-985104a1d001afc81f25.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-8f11132d55ccda45c143.js\"],\"component---src-pages-services-tsx\":[\"/component---src-pages-services-tsx-ad089d9c65e0d5421453.js\"],\"component---src-pages-templates-blog-tsx\":[\"/component---src-pages-templates-blog-tsx-3e928f3e8cb34f3b7e4c.js\"],\"component---src-pages-templates-post-tsx\":[\"/component---src-pages-templates-post-tsx-f2b5783ab45f7133a802.js\"],\"component---src-pages-templates-project-tsx\":[\"/component---src-pages-templates-project-tsx-808e529df29d8bdea686.js\"],\"component---src-pages-templates-projects-tsx\":[\"/component---src-pages-templates-projects-tsx-bc2345c3e66bde0622dc.js\"],\"component---src-pages-workflow-tsx\":[\"/component---src-pages-workflow-tsx-66c85385336912fb7c37.js\"]}"; + window.___chunkMapping="{\"app\":[\"/app-0be32afa8722358651ed.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-985104a1d001afc81f25.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-51c4d6c78f0455be8e64.js\"],\"component---src-pages-services-tsx\":[\"/component---src-pages-services-tsx-004b5c906bc78a1f96ae.js\"],\"component---src-pages-templates-blog-tsx\":[\"/component---src-pages-templates-blog-tsx-2739ab3251f03f4eb07f.js\"],\"component---src-pages-templates-post-tsx\":[\"/component---src-pages-templates-post-tsx-7f7e2c93fcb41ce4f82f.js\"],\"component---src-pages-templates-project-tsx\":[\"/component---src-pages-templates-project-tsx-808e529df29d8bdea686.js\"],\"component---src-pages-templates-projects-tsx\":[\"/component---src-pages-templates-projects-tsx-75dd824378dedee3ee1b.js\"],\"component---src-pages-workflow-tsx\":[\"/component---src-pages-workflow-tsx-71ff73d9d1233d63de8e.js\"]}"; </script> - <script>window.___webpackCompilationHash="2552ca4b597845d70de8";</script><script src="/webpack-runtime-9d58aaf54df1d848a0ab.js" async></script><script src="/framework-e4f3e98283dd6d5d8e77.js" async></script><script src="/app-0be32afa8722358651ed.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html> \ No newline at end of file + <script>window.___webpackCompilationHash="2282541953a94831106d";</script><script src="/webpack-runtime-462cd70edcbbeae08639.js" async></script><script src="/framework-e4f3e98283dd6d5d8e77.js" async></script><script src="/app-0be32afa8722358651ed.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html> \ No newline at end of file diff --git a/services/index.html b/services/index.html index 6b36d908..5b012b69 100644 --- a/services/index.html +++ b/services/index.html @@ -9,6 +9,6 @@ <script id="gatsby-chunk-mapping" > - window.___chunkMapping="{\"app\":[\"/app-0be32afa8722358651ed.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-985104a1d001afc81f25.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-8f11132d55ccda45c143.js\"],\"component---src-pages-services-tsx\":[\"/component---src-pages-services-tsx-ad089d9c65e0d5421453.js\"],\"component---src-pages-templates-blog-tsx\":[\"/component---src-pages-templates-blog-tsx-3e928f3e8cb34f3b7e4c.js\"],\"component---src-pages-templates-post-tsx\":[\"/component---src-pages-templates-post-tsx-f2b5783ab45f7133a802.js\"],\"component---src-pages-templates-project-tsx\":[\"/component---src-pages-templates-project-tsx-808e529df29d8bdea686.js\"],\"component---src-pages-templates-projects-tsx\":[\"/component---src-pages-templates-projects-tsx-bc2345c3e66bde0622dc.js\"],\"component---src-pages-workflow-tsx\":[\"/component---src-pages-workflow-tsx-66c85385336912fb7c37.js\"]}"; + window.___chunkMapping="{\"app\":[\"/app-0be32afa8722358651ed.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-985104a1d001afc81f25.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-51c4d6c78f0455be8e64.js\"],\"component---src-pages-services-tsx\":[\"/component---src-pages-services-tsx-004b5c906bc78a1f96ae.js\"],\"component---src-pages-templates-blog-tsx\":[\"/component---src-pages-templates-blog-tsx-2739ab3251f03f4eb07f.js\"],\"component---src-pages-templates-post-tsx\":[\"/component---src-pages-templates-post-tsx-7f7e2c93fcb41ce4f82f.js\"],\"component---src-pages-templates-project-tsx\":[\"/component---src-pages-templates-project-tsx-808e529df29d8bdea686.js\"],\"component---src-pages-templates-projects-tsx\":[\"/component---src-pages-templates-projects-tsx-75dd824378dedee3ee1b.js\"],\"component---src-pages-workflow-tsx\":[\"/component---src-pages-workflow-tsx-71ff73d9d1233d63de8e.js\"]}"; </script> - <script>window.___webpackCompilationHash="2552ca4b597845d70de8";</script><script src="/webpack-runtime-9d58aaf54df1d848a0ab.js" async></script><script src="/framework-e4f3e98283dd6d5d8e77.js" async></script><script src="/app-0be32afa8722358651ed.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html> \ No newline at end of file + <script>window.___webpackCompilationHash="2282541953a94831106d";</script><script src="/webpack-runtime-462cd70edcbbeae08639.js" async></script><script src="/framework-e4f3e98283dd6d5d8e77.js" async></script><script src="/app-0be32afa8722358651ed.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html> \ No newline at end of file diff --git a/webpack-runtime-462cd70edcbbeae08639.js b/webpack-runtime-462cd70edcbbeae08639.js new file mode 100644 index 00000000..fcb51dd8 --- /dev/null +++ b/webpack-runtime-462cd70edcbbeae08639.js @@ -0,0 +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<e.length;s++){n=e[s][0],r=e[s][1],o=e[s][2];for(var a=!0,u=0;u<n.length;u++)(!1&o||c>=o)&&Object.keys(f.O).every((function(e){return f.O[e](n[u])}))?n.splice(u--,1):(a=!1,o<c&&(c=o));if(a){e.splice(s--,1);var i=r();void 0!==i&&(t=i)}}return t}o=o||0;for(var s=e.length;s>0&&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",218:"component---src-pages-404-tsx",255:"3a56c59e0e6796de92370eeb161aeff352abc670",311:"component---src-pages-workflow-tsx",354:"component---src-pages-templates-post-tsx",517:"6bc48222ba83afa56babedfa3f8ecf0aa4bc5b28",650:"component---src-pages-templates-projects-tsx",691:"component---src-pages-index-tsx",858:"component---src-pages-services-tsx",926:"component---src-pages-templates-blog-tsx"}[e]||e)+"-"+{147:"808e529df29d8bdea686",218:"985104a1d001afc81f25",255:"dfc379729c8f684736a7",311:"71ff73d9d1233d63de8e",354:"7f7e2c93fcb41ce4f82f",475:"bd06cc7edfc322d83276",517:"a5360fdffd7950e5762f",650:"75dd824378dedee3ee1b",691:"51c4d6c78f0455be8e64",731:"9eed37b9b450ac75eb5a",843:"82fd7f798c0dd9a6f67b",858:"004b5c906bc78a1f96ae",926:"2739ab3251f03f4eb07f"}[e]+".js"},f.miniCssF=function(e){return"styles.2277176ca8a8c85c6711.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<i.length;s++){var d=i[s];if(d.getAttribute("src")==e||d.getAttribute("data-webpack")==o+n){a=d;break}}a||(u=!0,(a=document.createElement("script")).charset="utf-8",a.timeout=120,f.nc&&a.setAttribute("nonce",f.nc),a.setAttribute("data-webpack",o+n),a.src=e),r[e]=[t];var l=function(t,n){a.onerror=a.onload=null,clearTimeout(p);var o=r[e];if(delete r[e],a.parentNode&&a.parentNode.removeChild(a),o&&o.forEach((function(e){return e(n)})),t)return t(n)},p=setTimeout(l.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=l.bind(null,a.onerror),a.onload=l.bind(null,a.onload),u&&document.head.appendChild(a)}},f.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.p="/",function(){f.b=document.baseURI||self.location.href;var e={658:0,532:0};f.f.j=function(t,n){var r=f.o(e,t)?e[t]:void 0;if(0!==r)if(r)n.push(r[2]);else if(/^(532|658)$/.test(t))e[t]=0;else{var o=new Promise((function(n,o){r=e[t]=[n,o]}));n.push(r[2]=o);var c=f.p+f.u(t),a=new Error;f.l(c,(function(n){if(f.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var o=n&&("load"===n.type?"missing":n.type),c=n&&n.target&&n.target.src;a.message="Loading chunk "+t+" failed.\n("+o+": "+c+")",a.name="ChunkLoadError",a.type=o,a.request=c,r[1](a)}}),"chunk-"+t,t)}},f.O.j=function(t){return 0===e[t]};var t=function(t,n){var r,o,c=n[0],a=n[1],u=n[2],i=0;if(c.some((function(t){return 0!==e[t]}))){for(r in a)f.o(a,r)&&(f.m[r]=a[r]);if(u)var s=u(f)}for(t&&t(n);i<c.length;i++)o=c[i],f.o(e,o)&&e[o]&&e[o][0](),e[o]=0;return f.O(s)},n=self.webpackChunkcode_cave=self.webpackChunkcode_cave||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))}()}(); +//# sourceMappingURL=webpack-runtime-462cd70edcbbeae08639.js.map \ No newline at end of file diff --git a/webpack-runtime-9d58aaf54df1d848a0ab.js.map b/webpack-runtime-462cd70edcbbeae08639.js.map similarity index 98% rename from webpack-runtime-9d58aaf54df1d848a0ab.js.map rename to webpack-runtime-462cd70edcbbeae08639.js.map index e58bd68f..903f9409 100644 --- a/webpack-runtime-9d58aaf54df1d848a0ab.js.map +++ b/webpack-runtime-462cd70edcbbeae08639.js.map @@ -1 +1 @@ -{"version":3,"file":"webpack-runtime-9d58aaf54df1d848a0ab.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\",\"218\":\"component---src-pages-404-tsx\",\"255\":\"3a56c59e0e6796de92370eeb161aeff352abc670\",\"311\":\"component---src-pages-workflow-tsx\",\"354\":\"component---src-pages-templates-post-tsx\",\"517\":\"6bc48222ba83afa56babedfa3f8ecf0aa4bc5b28\",\"650\":\"component---src-pages-templates-projects-tsx\",\"691\":\"component---src-pages-index-tsx\",\"858\":\"component---src-pages-services-tsx\",\"926\":\"component---src-pages-templates-blog-tsx\"}[chunkId] || chunkId) + \"-\" + {\"147\":\"808e529df29d8bdea686\",\"218\":\"985104a1d001afc81f25\",\"255\":\"dfc379729c8f684736a7\",\"311\":\"66c85385336912fb7c37\",\"354\":\"f2b5783ab45f7133a802\",\"475\":\"bd06cc7edfc322d83276\",\"517\":\"a5360fdffd7950e5762f\",\"650\":\"bc2345c3e66bde0622dc\",\"691\":\"8f11132d55ccda45c143\",\"731\":\"9eed37b9b450ac75eb5a\",\"843\":\"82fd7f798c0dd9a6f67b\",\"858\":\"ad089d9c65e0d5421453\",\"926\":\"3e928f3e8cb34f3b7e4c\"}[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\" + \".\" + \"2277176ca8a8c85c6711\" + \".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-462cd70edcbbeae08639.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\",\"218\":\"component---src-pages-404-tsx\",\"255\":\"3a56c59e0e6796de92370eeb161aeff352abc670\",\"311\":\"component---src-pages-workflow-tsx\",\"354\":\"component---src-pages-templates-post-tsx\",\"517\":\"6bc48222ba83afa56babedfa3f8ecf0aa4bc5b28\",\"650\":\"component---src-pages-templates-projects-tsx\",\"691\":\"component---src-pages-index-tsx\",\"858\":\"component---src-pages-services-tsx\",\"926\":\"component---src-pages-templates-blog-tsx\"}[chunkId] || chunkId) + \"-\" + {\"147\":\"808e529df29d8bdea686\",\"218\":\"985104a1d001afc81f25\",\"255\":\"dfc379729c8f684736a7\",\"311\":\"71ff73d9d1233d63de8e\",\"354\":\"7f7e2c93fcb41ce4f82f\",\"475\":\"bd06cc7edfc322d83276\",\"517\":\"a5360fdffd7950e5762f\",\"650\":\"75dd824378dedee3ee1b\",\"691\":\"51c4d6c78f0455be8e64\",\"731\":\"9eed37b9b450ac75eb5a\",\"843\":\"82fd7f798c0dd9a6f67b\",\"858\":\"004b5c906bc78a1f96ae\",\"926\":\"2739ab3251f03f4eb07f\"}[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\" + \".\" + \"2277176ca8a8c85c6711\" + \".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-runtime-9d58aaf54df1d848a0ab.js b/webpack-runtime-9d58aaf54df1d848a0ab.js deleted file mode 100644 index 8e2ecc69..00000000 --- a/webpack-runtime-9d58aaf54df1d848a0ab.js +++ /dev/null @@ -1,2 +0,0 @@ -!function(){"use strict";var e,t,n,r,o,c={},a={};function u(e){var t=a[e];if(void 0!==t)return t.exports;var n=a[e]={exports:{}};return c[e](n,n.exports,u),n.exports}u.m=c,e=[],u.O=function(t,n,r,o){if(!n){var c=1/0;for(s=0;s<e.length;s++){n=e[s][0],r=e[s][1],o=e[s][2];for(var a=!0,f=0;f<n.length;f++)(!1&o||c>=o)&&Object.keys(u.O).every((function(e){return u.O[e](n[f])}))?n.splice(f--,1):(a=!1,o<c&&(c=o));if(a){e.splice(s--,1);var i=r();void 0!==i&&(t=i)}}return t}o=o||0;for(var s=e.length;s>0&&e[s-1][2]>o;s--)e[s]=e[s-1];e[s]=[n,r,o]},u.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return u.d(t,{a:t}),t},n=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},u.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);u.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},u.d(o,c),o},u.d=function(e,t){for(var n in t)u.o(t,n)&&!u.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},u.f={},u.e=function(e){return Promise.all(Object.keys(u.f).reduce((function(t,n){return u.f[n](e,t),t}),[]))},u.u=function(e){return({147:"component---src-pages-templates-project-tsx",218:"component---src-pages-404-tsx",255:"3a56c59e0e6796de92370eeb161aeff352abc670",311:"component---src-pages-workflow-tsx",354:"component---src-pages-templates-post-tsx",517:"6bc48222ba83afa56babedfa3f8ecf0aa4bc5b28",650:"component---src-pages-templates-projects-tsx",691:"component---src-pages-index-tsx",858:"component---src-pages-services-tsx",926:"component---src-pages-templates-blog-tsx"}[e]||e)+"-"+{147:"808e529df29d8bdea686",218:"985104a1d001afc81f25",255:"dfc379729c8f684736a7",311:"66c85385336912fb7c37",354:"f2b5783ab45f7133a802",475:"bd06cc7edfc322d83276",517:"a5360fdffd7950e5762f",650:"bc2345c3e66bde0622dc",691:"8f11132d55ccda45c143",731:"9eed37b9b450ac75eb5a",843:"82fd7f798c0dd9a6f67b",858:"ad089d9c65e0d5421453",926:"3e928f3e8cb34f3b7e4c"}[e]+".js"},u.miniCssF=function(e){return"styles.2277176ca8a8c85c6711.css"},u.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),u.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r={},o="code-cave:",u.l=function(e,t,n,c){if(r[e])r[e].push(t);else{var a,f;if(void 0!==n)for(var i=document.getElementsByTagName("script"),s=0;s<i.length;s++){var d=i[s];if(d.getAttribute("src")==e||d.getAttribute("data-webpack")==o+n){a=d;break}}a||(f=!0,(a=document.createElement("script")).charset="utf-8",a.timeout=120,u.nc&&a.setAttribute("nonce",u.nc),a.setAttribute("data-webpack",o+n),a.src=e),r[e]=[t];var l=function(t,n){a.onerror=a.onload=null,clearTimeout(p);var o=r[e];if(delete r[e],a.parentNode&&a.parentNode.removeChild(a),o&&o.forEach((function(e){return e(n)})),t)return t(n)},p=setTimeout(l.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=l.bind(null,a.onerror),a.onload=l.bind(null,a.onload),f&&document.head.appendChild(a)}},u.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},u.p="/",function(){u.b=document.baseURI||self.location.href;var e={658:0,532:0};u.f.j=function(t,n){var r=u.o(e,t)?e[t]:void 0;if(0!==r)if(r)n.push(r[2]);else if(/^(532|658)$/.test(t))e[t]=0;else{var o=new Promise((function(n,o){r=e[t]=[n,o]}));n.push(r[2]=o);var c=u.p+u.u(t),a=new Error;u.l(c,(function(n){if(u.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var o=n&&("load"===n.type?"missing":n.type),c=n&&n.target&&n.target.src;a.message="Loading chunk "+t+" failed.\n("+o+": "+c+")",a.name="ChunkLoadError",a.type=o,a.request=c,r[1](a)}}),"chunk-"+t,t)}},u.O.j=function(t){return 0===e[t]};var t=function(t,n){var r,o,c=n[0],a=n[1],f=n[2],i=0;if(c.some((function(t){return 0!==e[t]}))){for(r in a)u.o(a,r)&&(u.m[r]=a[r]);if(f)var s=f(u)}for(t&&t(n);i<c.length;i++)o=c[i],u.o(e,o)&&e[o]&&e[o][0](),e[o]=0;return u.O(s)},n=self.webpackChunkcode_cave=self.webpackChunkcode_cave||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))}()}(); -//# sourceMappingURL=webpack-runtime-9d58aaf54df1d848a0ab.js.map \ No newline at end of file diff --git a/webpack.stats.json b/webpack.stats.json index 4dc58d0f..0aee3fbc 100644 --- a/webpack.stats.json +++ b/webpack.stats.json @@ -1 +1 @@ -{"name":"build-javascript","namedChunkGroups":{"app":{"name":"app","assets":[{"name":"webpack-runtime-9d58aaf54df1d848a0ab.js","size":4470},{"name":"styles.2277176ca8a8c85c6711.css","size":22749},{"name":"framework-e4f3e98283dd6d5d8e77.js","size":140759},{"name":"app-0be32afa8722358651ed.js","size":109780}],"filteredAssets":0,"assetsSize":277758,"filteredAuxiliaryAssets":3,"auxiliaryAssetsSize":706249},"component---src-pages-404-tsx":{"name":"component---src-pages-404-tsx","assets":[{"name":"component---src-pages-404-tsx-985104a1d001afc81f25.js","size":764}],"filteredAssets":0,"assetsSize":764,"filteredAuxiliaryAssets":1,"auxiliaryAssetsSize":1887},"component---src-pages-index-tsx":{"name":"component---src-pages-index-tsx","assets":[{"name":"styles.2277176ca8a8c85c6711.css","size":22749},{"name":"3a56c59e0e6796de92370eeb161aeff352abc670-dfc379729c8f684736a7.js","size":18634},{"name":"6bc48222ba83afa56babedfa3f8ecf0aa4bc5b28-a5360fdffd7950e5762f.js","size":11500},{"name":"component---src-pages-index-tsx-8f11132d55ccda45c143.js","size":19026}],"filteredAssets":0,"assetsSize":71909,"filteredAuxiliaryAssets":3,"auxiliaryAssetsSize":197774},"component---src-pages-services-tsx":{"name":"component---src-pages-services-tsx","assets":[{"name":"3a56c59e0e6796de92370eeb161aeff352abc670-dfc379729c8f684736a7.js","size":18634},{"name":"component---src-pages-services-tsx-ad089d9c65e0d5421453.js","size":8058}],"filteredAssets":0,"assetsSize":26692,"filteredAuxiliaryAssets":2,"auxiliaryAssetsSize":105036},"component---src-pages-templates-blog-tsx":{"name":"component---src-pages-templates-blog-tsx","assets":[{"name":"component---src-pages-templates-blog-tsx-3e928f3e8cb34f3b7e4c.js","size":14307}],"filteredAssets":0,"assetsSize":14307,"filteredAuxiliaryAssets":1,"auxiliaryAssetsSize":29833},"component---src-pages-templates-post-tsx":{"name":"component---src-pages-templates-post-tsx","assets":[{"name":"component---src-pages-templates-post-tsx-f2b5783ab45f7133a802.js","size":17727}],"filteredAssets":0,"assetsSize":17727,"filteredAuxiliaryAssets":1,"auxiliaryAssetsSize":34088},"component---src-pages-templates-project-tsx":{"name":"component---src-pages-templates-project-tsx","assets":[{"name":"3a56c59e0e6796de92370eeb161aeff352abc670-dfc379729c8f684736a7.js","size":18634},{"name":"6bc48222ba83afa56babedfa3f8ecf0aa4bc5b28-a5360fdffd7950e5762f.js","size":11500},{"name":"component---src-pages-templates-project-tsx-808e529df29d8bdea686.js","size":8441}],"filteredAssets":0,"assetsSize":38575,"filteredAuxiliaryAssets":3,"auxiliaryAssetsSize":176887},"component---src-pages-templates-projects-tsx":{"name":"component---src-pages-templates-projects-tsx","assets":[{"name":"6bc48222ba83afa56babedfa3f8ecf0aa4bc5b28-a5360fdffd7950e5762f.js","size":11500},{"name":"component---src-pages-templates-projects-tsx-bc2345c3e66bde0622dc.js","size":6712}],"filteredAssets":0,"assetsSize":18212,"filteredAuxiliaryAssets":2,"auxiliaryAssetsSize":89149},"component---src-pages-workflow-tsx":{"name":"component---src-pages-workflow-tsx","assets":[{"name":"component---src-pages-workflow-tsx-66c85385336912fb7c37.js","size":9875}],"filteredAssets":0,"assetsSize":9875,"filteredAuxiliaryAssets":1,"auxiliaryAssetsSize":25420}},"assetsByChunkName":{"app":["webpack-runtime-9d58aaf54df1d848a0ab.js","styles.2277176ca8a8c85c6711.css","framework-e4f3e98283dd6d5d8e77.js","app-0be32afa8722358651ed.js"],"component---src-pages-404-tsx":["component---src-pages-404-tsx-985104a1d001afc81f25.js"],"component---src-pages-index-tsx":["styles.2277176ca8a8c85c6711.css","3a56c59e0e6796de92370eeb161aeff352abc670-dfc379729c8f684736a7.js","6bc48222ba83afa56babedfa3f8ecf0aa4bc5b28-a5360fdffd7950e5762f.js","component---src-pages-index-tsx-8f11132d55ccda45c143.js"],"component---src-pages-services-tsx":["3a56c59e0e6796de92370eeb161aeff352abc670-dfc379729c8f684736a7.js","component---src-pages-services-tsx-ad089d9c65e0d5421453.js"],"component---src-pages-templates-blog-tsx":["component---src-pages-templates-blog-tsx-3e928f3e8cb34f3b7e4c.js"],"component---src-pages-templates-post-tsx":["component---src-pages-templates-post-tsx-f2b5783ab45f7133a802.js"],"component---src-pages-templates-project-tsx":["3a56c59e0e6796de92370eeb161aeff352abc670-dfc379729c8f684736a7.js","6bc48222ba83afa56babedfa3f8ecf0aa4bc5b28-a5360fdffd7950e5762f.js","component---src-pages-templates-project-tsx-808e529df29d8bdea686.js"],"component---src-pages-templates-projects-tsx":["6bc48222ba83afa56babedfa3f8ecf0aa4bc5b28-a5360fdffd7950e5762f.js","component---src-pages-templates-projects-tsx-bc2345c3e66bde0622dc.js"],"component---src-pages-workflow-tsx":["component---src-pages-workflow-tsx-66c85385336912fb7c37.js"]},"childAssetsByChunkName":{}} \ No newline at end of file +{"name":"build-javascript","namedChunkGroups":{"app":{"name":"app","assets":[{"name":"webpack-runtime-462cd70edcbbeae08639.js","size":4470},{"name":"styles.2277176ca8a8c85c6711.css","size":22749},{"name":"framework-e4f3e98283dd6d5d8e77.js","size":140759},{"name":"app-0be32afa8722358651ed.js","size":109780}],"filteredAssets":0,"assetsSize":277758,"filteredAuxiliaryAssets":3,"auxiliaryAssetsSize":706249},"component---src-pages-404-tsx":{"name":"component---src-pages-404-tsx","assets":[{"name":"component---src-pages-404-tsx-985104a1d001afc81f25.js","size":764}],"filteredAssets":0,"assetsSize":764,"filteredAuxiliaryAssets":1,"auxiliaryAssetsSize":1887},"component---src-pages-index-tsx":{"name":"component---src-pages-index-tsx","assets":[{"name":"styles.2277176ca8a8c85c6711.css","size":22749},{"name":"3a56c59e0e6796de92370eeb161aeff352abc670-dfc379729c8f684736a7.js","size":18634},{"name":"6bc48222ba83afa56babedfa3f8ecf0aa4bc5b28-a5360fdffd7950e5762f.js","size":11500},{"name":"component---src-pages-index-tsx-51c4d6c78f0455be8e64.js","size":19012}],"filteredAssets":0,"assetsSize":71895,"filteredAuxiliaryAssets":3,"auxiliaryAssetsSize":197735},"component---src-pages-services-tsx":{"name":"component---src-pages-services-tsx","assets":[{"name":"3a56c59e0e6796de92370eeb161aeff352abc670-dfc379729c8f684736a7.js","size":18634},{"name":"component---src-pages-services-tsx-004b5c906bc78a1f96ae.js","size":8044}],"filteredAssets":0,"assetsSize":26678,"filteredAuxiliaryAssets":2,"auxiliaryAssetsSize":104997},"component---src-pages-templates-blog-tsx":{"name":"component---src-pages-templates-blog-tsx","assets":[{"name":"component---src-pages-templates-blog-tsx-2739ab3251f03f4eb07f.js","size":14293}],"filteredAssets":0,"assetsSize":14293,"filteredAuxiliaryAssets":1,"auxiliaryAssetsSize":29794},"component---src-pages-templates-post-tsx":{"name":"component---src-pages-templates-post-tsx","assets":[{"name":"component---src-pages-templates-post-tsx-7f7e2c93fcb41ce4f82f.js","size":17713}],"filteredAssets":0,"assetsSize":17713,"filteredAuxiliaryAssets":1,"auxiliaryAssetsSize":34049},"component---src-pages-templates-project-tsx":{"name":"component---src-pages-templates-project-tsx","assets":[{"name":"3a56c59e0e6796de92370eeb161aeff352abc670-dfc379729c8f684736a7.js","size":18634},{"name":"6bc48222ba83afa56babedfa3f8ecf0aa4bc5b28-a5360fdffd7950e5762f.js","size":11500},{"name":"component---src-pages-templates-project-tsx-808e529df29d8bdea686.js","size":8441}],"filteredAssets":0,"assetsSize":38575,"filteredAuxiliaryAssets":3,"auxiliaryAssetsSize":176887},"component---src-pages-templates-projects-tsx":{"name":"component---src-pages-templates-projects-tsx","assets":[{"name":"6bc48222ba83afa56babedfa3f8ecf0aa4bc5b28-a5360fdffd7950e5762f.js","size":11500},{"name":"component---src-pages-templates-projects-tsx-75dd824378dedee3ee1b.js","size":6698}],"filteredAssets":0,"assetsSize":18198,"filteredAuxiliaryAssets":2,"auxiliaryAssetsSize":89110},"component---src-pages-workflow-tsx":{"name":"component---src-pages-workflow-tsx","assets":[{"name":"component---src-pages-workflow-tsx-71ff73d9d1233d63de8e.js","size":9861}],"filteredAssets":0,"assetsSize":9861,"filteredAuxiliaryAssets":1,"auxiliaryAssetsSize":25381}},"assetsByChunkName":{"app":["webpack-runtime-462cd70edcbbeae08639.js","styles.2277176ca8a8c85c6711.css","framework-e4f3e98283dd6d5d8e77.js","app-0be32afa8722358651ed.js"],"component---src-pages-404-tsx":["component---src-pages-404-tsx-985104a1d001afc81f25.js"],"component---src-pages-index-tsx":["styles.2277176ca8a8c85c6711.css","3a56c59e0e6796de92370eeb161aeff352abc670-dfc379729c8f684736a7.js","6bc48222ba83afa56babedfa3f8ecf0aa4bc5b28-a5360fdffd7950e5762f.js","component---src-pages-index-tsx-51c4d6c78f0455be8e64.js"],"component---src-pages-services-tsx":["3a56c59e0e6796de92370eeb161aeff352abc670-dfc379729c8f684736a7.js","component---src-pages-services-tsx-004b5c906bc78a1f96ae.js"],"component---src-pages-templates-blog-tsx":["component---src-pages-templates-blog-tsx-2739ab3251f03f4eb07f.js"],"component---src-pages-templates-post-tsx":["component---src-pages-templates-post-tsx-7f7e2c93fcb41ce4f82f.js"],"component---src-pages-templates-project-tsx":["3a56c59e0e6796de92370eeb161aeff352abc670-dfc379729c8f684736a7.js","6bc48222ba83afa56babedfa3f8ecf0aa4bc5b28-a5360fdffd7950e5762f.js","component---src-pages-templates-project-tsx-808e529df29d8bdea686.js"],"component---src-pages-templates-projects-tsx":["6bc48222ba83afa56babedfa3f8ecf0aa4bc5b28-a5360fdffd7950e5762f.js","component---src-pages-templates-projects-tsx-75dd824378dedee3ee1b.js"],"component---src-pages-workflow-tsx":["component---src-pages-workflow-tsx-71ff73d9d1233d63de8e.js"]},"childAssetsByChunkName":{}} \ No newline at end of file diff --git a/workflow/index.html b/workflow/index.html index a1d779b6..f1c70a67 100644 --- a/workflow/index.html +++ b/workflow/index.html @@ -1,10 +1,10 @@ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="ie=edge"/><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/><meta name="generator" content="Gatsby 5.11.0"/><meta name="theme-color" content="#000000"/><style data-href="/styles.2277176ca8a8c85c6711.css" data-identity="gatsby-global-css">@import url(https://fonts.googleapis.com/css2?family=Rubik+Glitch&family=Urbanist:wght@100;300;400;500;600;700;800;900&display=swap); /* ! 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}}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-y-0{bottom:0;top:0}.-bottom-2{bottom:-.5rem}.-right-6{right:-1.5rem}.-top-2{top:-.5rem}.bottom-0{bottom:0}.bottom-1{bottom:.25rem}.bottom-\[5\%\]{bottom:5%}.left-0{left:0}.left-1\/2{left:50%}.left-6{left:1.5rem}.right-0{right:0}.right-6{right:1.5rem}.right-\[2\%\]{right:2%}.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}.z-\[1\]{z-index:1}.m-2{margin:.5rem}.m-4{margin:1rem}.mx-0{margin-left:0;margin-right:0}.mx-12{margin-left:3rem;margin-right:3rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.mx-\[-1px\]{margin-left:-1px;margin-right:-1px}.mx-auto{margin-left:auto;margin-right:auto}.my-10{margin-bottom:2.5rem;margin-top:2.5rem}.my-16{margin-bottom:4rem;margin-top:4rem}.my-20{margin-bottom:5rem;margin-top:5rem}.mb-12{margin-bottom:3rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mr-10{margin-right:2.5rem}.mr-2{margin-right:.5rem}.mr-6{margin-right:1.5rem}.mr-7{margin-right:1.75rem}.mt-16{margin-top:4rem}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.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-136{height:34rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-160{height:40rem}.h-2\/3{height:66.666667%}.h-20{height:5rem}.h-24{height:6rem}.h-28{height:7rem}.h-32{height:8rem}.h-36{height:9rem}.h-8{height:2rem}.h-96{height:24rem}.h-full{height:100%}.h-min{height:-moz-min-content;height:min-content}.min-h-160{min-height:40rem}.min-h-96{min-height:24rem}.min-h-\[8\.5rem\]{min-height:8.5rem}.w-0{width:0}.w-1{width:.25rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2\/3{width:66.666667%}.w-32{width:8rem}.w-40{width:10rem}.w-56{width:14rem}.w-64{width:16rem}.w-8{width:2rem}.w-\[100\%\]{width:100%}.w-\[352px\]{width:352px}.w-\[85\%\]{width:85%}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.min-w-10{min-width:2.5rem}.max-w-6xl{max-width:72rem}.max-w-7xl{max-width:80rem}.flex-1{flex:1 1 0%}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.basis-1\/2{flex-basis:50%}.basis-1\/3{flex-basis:33.333333%}.basis-1\/4{flex-basis:25%}.basis-1\/5{flex-basis:20%}.basis-1\/6{flex-basis:16.666667%}.basis-4\/6{flex-basis:66.666667%}.basis-5\/12{flex-basis:41.666667%}.basis-\[48\%\]{flex-basis:48%}.basis-full{flex-basis:100%}.-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%;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-manipulation{touch-action:manipulation}.resize{resize:both}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.columns-1{-moz-columns:1;column-count:1}.break-inside-avoid{-moz-column-break-inside:avoid;break-inside:avoid}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.content-center{align-content:center}.items-start{align-items:flex-start}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.overflow-hidden{overflow:hidden}.whitespace-nowrap{white-space:nowrap}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-t-2xl{border-top-left-radius:1rem;border-top-right-radius:1rem}.border{border-width:1px}.border-2{border-width:2px}.border-\[3px\]{border-width:3px}.border-b-2{border-bottom-width:2px}.border-b-4,.border-b-\[4px\]{border-bottom-width:4px}.border-r-8{border-right-width:8px}.border-t-4{border-top-width:4px}.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(0 0 0/var(--tw-border-opacity))}.border-secondary-100{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity))}.border-secondary-30{--tw-border-opacity:1;border-color:rgb(231 231 231/var(--tw-border-opacity))}.bg-main-100{--tw-bg-opacity:1;background-color:rgb(0 0 0/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(255 255 255/var(--tw-bg-opacity))}.bg-secondary-70{--tw-bg-opacity:1;background-color:rgb(245 245 245/var(--tw-bg-opacity))}.fill-main-100{fill:#000}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-10{padding:2.5rem}.p-12{padding:3rem}.p-2{padding:.5rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-0{padding-left:0;padding-right:0}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-12{padding-bottom:3rem;padding-top:3rem}.py-14{padding-bottom:3.5rem;padding-top:3.5rem}.py-20{padding-bottom:5rem;padding-top:5rem}.py-32{padding-bottom:8rem;padding-top:8rem}.py-48{padding-bottom:12rem;padding-top:12rem}.pb-10{padding-bottom:2.5rem}.pb-24{padding-bottom:6rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-5{padding-bottom:1.25rem}.pb-6{padding-bottom:1.5rem}.pb-9{padding-bottom:2.25rem}.pl-4{padding-left:1rem}.pr-11{padding-right:2.75rem}.pr-16{padding-right:4rem}.pr-8{padding-right:2rem}.pt-14{padding-top:3.5rem}.pt-2{padding-top:.5rem}.pt-6{padding-top:1.5rem}.text-center{text-align:center}.text-end{text-align:end}.font-\[\'Rubik_Glitch\'\]{font-family:Rubik Glitch}.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-5xl{font-size:3rem;line-height:1}.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}.font-black{font-weight:900}.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}.italic{font-style:italic}.leading-7{line-height:1.75rem}.leading-\[52px\]{line-height:52px}.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(0 0 0/var(--tw-text-opacity))}.text-main-70{--tw-text-opacity:1;color:rgb(61 61 61/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(255 255 255/var(--tw-text-opacity))}.text-secondary-30{--tw-text-opacity:1;color:rgb(231 231 231/var(--tw-text-opacity))}.underline{text-decoration-line:underline}.opacity-50{opacity:.5}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-main-100{--tw-shadow-color:#000;--tw-shadow:var(--tw-shadow-colored)}.brightness-0{--tw-brightness:brightness(0)}.brightness-0,.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)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.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}.after\:h-1:after{content:var(--tw-content);height:.25rem}.after\:h-1\.5:after{content:var(--tw-content);height:.375rem}.after\:w-full:after{content:var(--tw-content);width:100%}.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-main-100:after{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity));content:var(--tw-content)}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.first\:mt-0:first-child{margin-top:0}.first\:mt-36:first-child{margin-top:9rem}.hover\:bg-main-100:hover{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity))}.hover\:bg-main-70:hover{--tw-bg-opacity:1;background-color:rgb(61 61 61/var(--tw-bg-opacity))}.hover\:bg-secondary-100:hover{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.hover\:bg-secondary-30:hover{--tw-bg-opacity:1;background-color:rgb(231 231 231/var(--tw-bg-opacity))}.hover\:bg-secondary-70:hover{--tw-bg-opacity:1;background-color:rgb(245 245 245/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-100:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.hover\:outline-main-100:hover{outline-color:#000}.hover\:outline-secondary-100:hover{outline-color:#fff}.hover\:invert:hover{--tw-invert:invert(100%);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)}.disabled\:opacity-30:disabled{opacity:.3}@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-0{margin-bottom:0}.sm\:mt-0{margin-top:0}.sm\:inline{display:inline}.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:basis-2\/5{flex-basis:40%}.sm\:basis-3\/5{flex-basis:60%}.sm\:basis-5\/6{flex-basis:83.333333%}.sm\:flex-row{flex-direction:row}.sm\:items-stretch{align-items:stretch}.sm\:px-5{padding-left:1.25rem;padding-right:1.25rem}.sm\:pb-10{padding-bottom:2.5rem}.sm\:text-start{text-align:start}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-5xl{font-size:3rem;line-height:1}.sm\:text-6xl{font-size:3.75rem;line-height:1}.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\:m-12{margin:3rem}.md\:-my-2{margin-bottom:-.5rem;margin-top:-.5rem}.md\:mx-3{margin-left:.75rem;margin-right:.75rem}.md\:-ms-6{margin-inline-start:-1.5rem}.md\:block{display:block}.md\:flex{display:flex}.md\:w-1\/2{width:50%}.md\:w-\[400px\]{width:400px}.md\:basis-1\/3{flex-basis:33.333333%}.md\:basis-1\/4{flex-basis:25%}.md\:basis-3\/4{flex-basis:75%}.md\:basis-4\/6{flex-basis:66.666667%}.md\:basis-5\/6{flex-basis:83.333333%}.md\:basis-\[31\%\]{flex-basis:31%}.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\:columns-2{-moz-columns:2;column-count:2}.md\:flex-row{flex-direction:row}.md\:p-12{padding:3rem}.md\:px-40{padding-left:10rem;padding-right:10rem}.md\:px-7{padding-left:1.75rem;padding-right:1.75rem}.md\:py-24{padding-bottom:6rem;padding-top:6rem}.md\:pb-0{padding-bottom:0}.md\:pb-10{padding-bottom:2.5rem}.md\:pb-16{padding-bottom:4rem}.md\:pt-10{padding-top:2.5rem}.md\:text-start{text-align:start}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-6xl{font-size:3.75rem;line-height:1}.md\:leading-10{line-height:2.5rem}.md\:first\:mt-0:first-child{margin-top:0}.md\:last\:mb-0:last-child{margin-bottom:0}.md\:last\:flex:last-child{display:flex}.md\:odd\:ms-6:nth-child(odd){-webkit-margin-start:1.5rem;margin-inline-start:1.5rem}.md\:odd\:flex-row-reverse:nth-child(odd){flex-direction:row-reverse}.md\:even\:translate-x-full:nth-child(2n){--tw-translate-x:100%;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))}}@media (min-width:1024px){.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:h-full{height:100%}.lg\:w-1\/2{width:50%}.lg\:basis-1\/2{flex-basis:50%}.lg\:basis-2\/5{flex-basis:40%}.lg\:basis-4\/6{flex-basis:66.666667%}.lg\:flex-row{flex-direction:row}.lg\:justify-between{justify-content:space-between}.lg\:py-0{padding-bottom:0;padding-top:0}.lg\:text-start{text-align:start}}@media (min-width:1280px){.xl\:w-\[480px\]{width:480px}.xl\:basis-1\/3{flex-basis:33.333333%}.xl\:basis-2\/3{flex-basis:66.666667%}.xl\:basis-2\/5{flex-basis:40%}}@media (min-width:1900px){.\33xl\:w-\[576px\]{width:576px}.\33xl\:basis-1\/3{flex-basis:33.333333%}}@media (min-width:2200px){.\34xl\:basis-1\/4{flex-basis:25%}}*{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:Urbanist,Helvetica,Arial,sans-serif}div.single-post h3{font-size:1.875rem;font-weight:600;line-height:2.25rem;padding-bottom:2rem}div.single-post p{padding-bottom:3rem;text-align:justify;text-indent:2.5rem}div.single-post h4,div.single-post p{font-size:1.5rem;font-weight:500;line-height:2rem}div.single-post ul{padding-bottom:3rem;padding-left:1rem}div.single-post ul li{list-style-position:inside;list-style-type:disc}div.single-post ol{padding-bottom:.5rem;padding-left:1rem}div.single-post ol li{list-style-position:inside;list-style-type:decimal}div.single-post span.gatsby-resp-image-wrapper{margin:1.5rem!important;width:100%!important}div.single-post span.gatsby-resp-image-wrapper:nth-child(odd){float:left!important;margin-left:0!important}div.single-post span.gatsby-resp-image-wrapper:nth-child(2n){float:right!important;margin-right:0!important}@media (min-width:1024px){div.single-post span.gatsby-resp-image-wrapper{margin:3.5rem!important;width:50%!important}}div.single-post img{border-radius:1rem}div.single-post pre{--tw-bg-opacity:1;background-color:rgb(245 245 245/var(--tw-bg-opacity));font-size:1rem;line-height:1rem;padding:1.5rem;white-space:pre-wrap}div.service-preview{background:linear-gradient(#000 0 0) padding-box,linear-gradient(90deg,#fff 0 0) border-box}div.service-preview:hover{background:#000}div.service-preview p{padding-top:1.75rem}.gradient-border{background:linear-gradient(#fff 0 0) padding-box,linear-gradient(90deg,#fff,#000 50%,#fff) border-box}div.team-member:hover div.line{width:100%}div.applied-tech:hover div.line{height:100%}div.review-body p{padding-top:1.25rem}div.review-body p:first-child{padding-top:0}div.workflow-step:nth-child(odd) div.cover{left:-1.5rem}div.workflow-step:nth-child(2n) p.step-number{z-index:30}@media (min-width:768px){div.workflow-step:nth-child(2n) p.step-number{--tw-translate-x:-100%;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))}}div.why-us-card p{text-align:justify}div.why-us-card:hover div.line{height:100%}</style><style>.gatsby-image-wrapper{position:relative;overflow:hidden}.gatsby-image-wrapper picture.object-fit-polyfill{position:static!important}.gatsby-image-wrapper img{bottom:0;height:100%;left:0;margin:0;max-width:none;padding:0;position:absolute;right:0;top:0;width:100%;object-fit:cover}.gatsby-image-wrapper [data-main-image]{opacity:0;transform:translateZ(0);transition:opacity .25s linear;will-change:opacity}.gatsby-image-wrapper-constrained{display:inline-block;vertical-align:top}</style><noscript><style>.gatsby-image-wrapper noscript [data-main-image]{opacity:1!important}.gatsby-image-wrapper [data-placeholder-image]{opacity:0!important}</style></noscript><script type="module">const e="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;e&&document.body.addEventListener("load",(function(e){const t=e.target;if(void 0===t.dataset.mainImage)return;if(void 0===t.dataset.gatsbyImageSsr)return;let a=null,n=t;for(;null===a&&n;)void 0!==n.parentNode.dataset.gatsbyImageWrapper&&(a=n.parentNode),n=n.parentNode;const o=a.querySelector("[data-placeholder-image]"),r=new Image;r.src=t.currentSrc,r.decode().catch((()=>{})).then((()=>{t.style.opacity=1,o&&(o.style.opacity=0,o.style.transition="opacity 500ms linear")}))}),!0);</script><link rel="icon" href="/favicon-32x32.png?v=5756421ebf828bcb98a5197892727485" type="image/png"/><link rel="manifest" href="/manifest.webmanifest" crossorigin="anonymous"/><link rel="apple-touch-icon" sizes="48x48" href="/icons/icon-48x48.png?v=5756421ebf828bcb98a5197892727485"/><link rel="apple-touch-icon" sizes="72x72" href="/icons/icon-72x72.png?v=5756421ebf828bcb98a5197892727485"/><link rel="apple-touch-icon" sizes="96x96" href="/icons/icon-96x96.png?v=5756421ebf828bcb98a5197892727485"/><link rel="apple-touch-icon" sizes="144x144" href="/icons/icon-144x144.png?v=5756421ebf828bcb98a5197892727485"/><link rel="apple-touch-icon" sizes="192x192" href="/icons/icon-192x192.png?v=5756421ebf828bcb98a5197892727485"/><link rel="apple-touch-icon" sizes="256x256" href="/icons/icon-256x256.png?v=5756421ebf828bcb98a5197892727485"/><link rel="apple-touch-icon" sizes="384x384" href="/icons/icon-384x384.png?v=5756421ebf828bcb98a5197892727485"/><link rel="apple-touch-icon" sizes="512x512" href="/icons/icon-512x512.png?v=5756421ebf828bcb98a5197892727485"/><title data-gatsby-head="true">CodeCave Workflow</title></head><body><div id="___gatsby"><div style="outline:none" tabindex="-1" id="gatsby-focus-wrapper"><main class="min-h-screen" itemscope="" itemType="https://schema.org/LocalBusiness"><meta itemProp="sameAs" content="https://facebook.com/codecavepro"/><meta itemProp="sameAs" content="https://youtube.com/c/CodeCavePro"/><meta itemProp="sameAs" content="https://twitter.com/codecavepro"/><meta itemProp="sameAs" content="https://vk.com/codecavepro"/><meta itemProp="sameAs" content="https://github.com/CodeCavePro"/><meta itemProp="sameAs" content="https://instagram.com/codecave.pro"/><meta itemProp="sameAs" content="https://linkedin.com/company/codecavepro"/><meta itemProp="name" content="CodeCave"/><meta name="description" content="Outsourcing software and web development"/><meta property="og:image" content="/logo.svg"/><nav class="sticky top-0 z-50 bg-secondary-100 px-6"><div class="flex w-full max-w-7xl mx-auto undefined"><div class="w-full"><div class="mx-auto max-w-7xl w-full"><div class="relative flex h-20 items-center justify-between"><div class="relative inset-y-0 left-0 flex items-center lg:hidden"><button type="button" class="inline-flex items-center justify-center text-main-70 hover:bg-secondary-30" aria-controls="mobile-menu" aria-expanded="false"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 1024 1024" class="text-4xl " height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M904 160H120c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8zm0 624H120c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8zm0-312H120c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8z"></path></svg><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 1024 1024" class="text-4xl hidden" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M563.8 512l262.5-312.9c4.4-5.2.7-13.1-6.1-13.1h-79.8c-4.7 0-9.2 2.1-12.3 5.7L511.6 449.8 295.1 191.7c-3-3.6-7.5-5.7-12.3-5.7H203c-6.8 0-10.5 7.9-6.1 13.1L459.4 512 196.9 824.9A7.95 7.95 0 0 0 203 838h79.8c4.7 0 9.2-2.1 12.3-5.7l216.5-258.1 216.5 258.1c3 3.6 7.5 5.7 12.3 5.7h79.8c6.8 0 10.5-7.9 6.1-13.1L563.8 512z"></path></svg></button></div><div class="flex flex-1 items-center justify-center lg:justify-between"><a href="/"><svg class="w-64 object-contain" width="258" height="28" viewBox="0 0 258 28" fill="none"><path d="M67.3555 26.6954V8.61084V0.989258C67.3555 0.989258 80.9501 1.12298 86.0513 1.12298C87.7605 1.12298 89.4434 1.35697 91.0474 1.95868C93.7033 2.96152 95.3073 4.9672 95.5965 7.97572C95.9646 11.7865 95.9121 15.6642 95.6491 19.475C95.3598 23.7872 92.9407 26.2274 88.9438 26.6954H67.3555ZM75.3755 20.8789C76.3494 20.8789 77.3167 20.8844 78.2794 20.8899C80.67 20.9036 83.032 20.917 85.394 20.8455C86.8928 20.8121 87.8657 19.709 87.892 18.1044C87.9446 15.3633 87.9446 12.6222 87.892 9.88113C87.8657 8.37686 86.9454 7.24031 85.6043 7.20688C83.1844 7.13534 80.7644 7.14886 78.3254 7.16248C77.3456 7.16795 76.3627 7.17344 75.3755 7.17344V20.8789Z" fill="black"></path><path d="M67.3555 26.6954V8.61084V0.989258C67.3555 0.989258 80.9501 1.12298 86.0513 1.12298C87.7605 1.12298 89.4434 1.35697 91.0474 1.95868C93.7033 2.96152 95.3073 4.9672 95.5965 7.97572C95.9646 11.7865 95.9121 15.6642 95.6491 19.475C95.3598 23.7872 92.9407 26.2274 88.9438 26.6954H67.3555ZM75.3755 20.8789C76.3494 20.8789 77.3167 20.8844 78.2794 20.8899C80.67 20.9036 83.032 20.917 85.394 20.8455C86.8928 20.8121 87.8657 19.709 87.892 18.1044C87.9446 15.3633 87.9446 12.6222 87.892 9.88113C87.8657 8.37686 86.9454 7.24031 85.6043 7.20688C83.1844 7.13534 80.7644 7.14886 78.3254 7.16248C77.3456 7.16795 76.3627 7.17344 75.3755 7.17344V20.8789Z" stroke="url(#paint0_linear_805_210)"></path><path d="M37.7194 26.8624C36.2995 26.6284 35.0899 25.7593 34.0907 24.5559C33.7225 24.1213 33.4596 23.6868 33.3281 23.4193C32.8811 22.5836 32.6444 21.6142 32.5393 20.4442C32.1448 16.4663 32.2237 12.4884 32.4341 8.51042C32.697 3.73021 34.6429 1.45712 39.1394 1.18969C44.3984 0.888841 49.6837 0.721689 54.9428 1.32339C58.2823 1.72453 60.307 3.89735 60.5962 7.50758C60.9644 11.7864 60.9381 16.0986 60.5962 20.3774C60.4911 21.6811 60.2544 22.5836 59.9126 23.2522C59.9077 23.2584 59.8937 23.2842 59.8714 23.3256C59.7733 23.5069 59.514 23.9867 59.15 24.4222C57.7564 26.0602 55.4424 26.5616 54.8902 26.6284C52.0766 26.9961 46.5546 27.3638 37.7194 26.8624ZM52.9706 14.0929C52.9706 13.646 52.9736 13.2027 52.9765 12.7608C52.9823 11.8805 52.9881 11.0051 52.9706 10.115C52.918 8.24299 52.024 7.20673 50.2885 7.1733C47.7905 7.10644 45.2661 7.10644 42.7681 7.1733C41.0326 7.20673 40.1912 8.20957 40.1649 10.0147C40.1386 12.6555 40.1386 15.3297 40.1649 17.9706C40.1912 19.7422 41.0852 20.8119 42.7681 20.8454C45.3187 20.9122 47.8694 20.9122 50.42 20.8454C52.0503 20.8119 52.9443 19.7088 52.9706 17.9037C52.9882 17.0792 52.9823 16.2249 52.9765 15.3706C52.9736 14.9435 52.9706 14.5163 52.9706 14.0929Z" fill="black"></path><path d="M37.7194 26.8624C36.2995 26.6284 35.0899 25.7593 34.0907 24.5559C33.7225 24.1213 33.4596 23.6868 33.3281 23.4193C32.8811 22.5836 32.6444 21.6142 32.5393 20.4442C32.1448 16.4663 32.2237 12.4884 32.4341 8.51042C32.697 3.73021 34.6429 1.45712 39.1394 1.18969C44.3984 0.888841 49.6837 0.721689 54.9428 1.32339C58.2823 1.72453 60.307 3.89735 60.5962 7.50758C60.9644 11.7864 60.9381 16.0986 60.5962 20.3774C60.4911 21.6811 60.2544 22.5836 59.9126 23.2522C59.9077 23.2584 59.8937 23.2842 59.8714 23.3256C59.7733 23.5069 59.514 23.9867 59.15 24.4222C57.7564 26.0602 55.4424 26.5616 54.8902 26.6284C52.0766 26.9961 46.5546 27.3638 37.7194 26.8624ZM52.9706 14.0929C52.9706 13.646 52.9736 13.2027 52.9765 12.7608C52.9823 11.8805 52.9881 11.0051 52.9706 10.115C52.918 8.24299 52.024 7.20673 50.2885 7.1733C47.7905 7.10644 45.2661 7.10644 42.7681 7.1733C41.0326 7.20673 40.1912 8.20957 40.1649 10.0147C40.1386 12.6555 40.1386 15.3297 40.1649 17.9706C40.1912 19.7422 41.0852 20.8119 42.7681 20.8454C45.3187 20.9122 47.8694 20.9122 50.42 20.8454C52.0503 20.8119 52.9443 19.7088 52.9706 17.9037C52.9882 17.0792 52.9823 16.2249 52.9765 15.3706C52.9736 14.9435 52.9706 14.5163 52.9706 14.0929Z" stroke="url(#paint1_linear_805_210)"></path><path d="M253.421 20.8786C253.868 20.8786 254.184 20.9454 254.447 21.146C254.841 21.4134 254.999 21.9817 255.078 22.1154C255.367 22.9511 256.103 24.4888 257.287 26.929C257.076 26.929 256.892 26.929 256.761 26.929C256.603 26.929 238.012 26.929 228.967 26.929C228.967 26.7285 229.019 1.79116 229.019 1.18945C237.749 1.18945 246.4 1.18945 255.104 1.18945C255.104 3.12828 255.104 5.03367 255.104 7.07278C249.109 7.07278 242.982 7.07278 236.934 7.07278C236.934 7.67448 236.882 10.1147 236.882 10.683C241.431 10.683 245.875 10.683 250.371 10.683C250.371 12.7221 250.371 14.6275 250.371 16.6666C245.953 16.6666 241.51 16.6666 236.961 16.6666C236.961 18.104 236.961 19.508 236.961 20.8117" fill="black"></path><path d="M125.941 20.8786C126.388 20.8786 126.703 20.9454 126.966 21.146C127.361 21.4134 127.519 21.9817 127.597 22.1154C127.887 22.9511 128.623 24.4888 129.806 26.929C129.596 26.929 129.412 26.929 129.28 26.929C129.123 26.929 110.532 26.929 101.486 26.929C101.486 26.7285 101.539 1.79116 101.539 1.18945C110.269 1.18945 118.92 1.18945 127.624 1.18945C127.624 3.12828 127.624 5.03367 127.624 7.07278C121.628 7.07278 115.502 7.07278 109.454 7.07278C109.454 7.67448 109.401 10.1147 109.401 10.683C113.95 10.683 118.394 10.683 122.891 10.683C122.891 12.7221 122.891 14.6275 122.891 16.6666C118.473 16.6666 114.029 16.6666 109.48 16.6666C109.48 18.104 109.48 19.508 109.48 20.8117" fill="black"></path><path d="M101.486 26.929C101.513 20.0094 101.539 13.1233 101.539 6.20366C101.539 4.56569 101.539 2.92771 101.539 1.18945C110.269 1.18945 118.92 1.18945 127.65 1.18945C127.65 3.12828 127.65 5.0671 127.65 7.13964C121.602 7.13964 115.581 7.13964 109.506 7.13964C109.506 8.34305 109.506 9.41275 109.506 10.6496C113.924 10.6496 118.368 10.6496 122.891 10.6496C122.891 12.7221 122.891 14.661 122.891 16.7335C118.499 16.7335 114.055 16.7335 109.533 16.7335C109.533 18.1375 109.533 19.4412 109.533 20.7783C109.953 21.0457 110.453 20.912 110.9 20.912C115.949 20.912 121.024 20.9454 126.072 20.912C126.809 20.912 127.229 21.146 127.519 21.8814C128.123 23.4191 128.833 24.9234 129.438 26.3608C129.123 26.9625 128.492 26.3942 128.307 26.9625C119.341 26.929 110.427 26.929 101.486 26.929Z" fill="black"></path><path d="M162.52 26.9288C162.782 25.6585 163.466 24.5888 163.992 23.4857C167.253 16.399 170.566 9.34564 173.8 2.22547C174.195 1.35634 174.642 1.05548 175.536 1.0889C178.349 1.15576 181.163 1.12233 183.95 1.0889C184.529 1.0889 184.949 1.15576 185.265 1.82433C189.051 10.1145 192.89 18.3712 196.703 26.6279C196.73 26.6948 196.73 26.7951 196.756 26.8954C193.863 26.8954 190.971 26.8954 188.078 26.8954C187.526 25.5582 186.948 24.2546 186.448 22.9174C186.238 22.3492 185.896 22.2154 185.37 22.2154C181.557 22.2489 177.744 22.2489 173.932 22.2154C173.432 22.2154 173.064 22.3157 172.827 22.8506C172.249 24.2211 171.591 25.5248 170.96 26.8954C168.147 26.9288 165.333 26.9288 162.52 26.9288ZM179.848 6.87197C179.717 6.87197 179.533 6.87197 179.401 6.87197C178.086 9.94735 176.772 12.9893 175.43 16.1315C178.297 16.1315 180.979 16.1315 183.792 16.1315C182.425 12.9559 181.137 9.91393 179.848 6.87197Z" fill="black"></path><path d="M155.866 26.8957C150.37 26.8623 144.848 27.1966 139.352 26.9292C139.168 26.9292 138.984 26.8957 138.669 26.8289C138.511 26.7954 138.353 26.762 138.222 26.7286C137.275 26.4612 136.144 25.9597 135.04 24.6895C134.146 23.6198 133.594 22.4498 133.41 20.4775C133.041 16.5665 133.068 12.622 133.357 8.71089C133.699 3.89725 136.092 1.28986 140.562 1.18958C146.084 1.05587 151.843 1.05587 157.391 1.35672C158.127 1.39015 159.389 1.42358 159.232 2.02528C158.784 3.83039 158.39 5.60206 157.969 7.4406C153.683 7.4406 149.423 7.4406 145.19 7.4406C141.614 7.4406 141.114 7.97546 141.114 11.7528C141.114 13.7251 141.088 15.6973 141.14 17.6696C141.193 19.8424 141.956 20.6112 143.98 20.6447C148.582 20.6447 153.157 20.6781 157.759 20.6113C158.153 20.6113 158.469 20.6781 158.706 20.8118C159.047 21.0458 159.179 21.3801 159.232 21.5138C159.547 22.2158 160.31 25.2912 160.914 26.9626" fill="black"></path><path d="M194.18 1.12354C196.783 1.12354 199.412 1.12354 202.042 1.12354C202.647 1.12354 202.699 1.59152 202.831 1.99266C205.013 7.87599 207.59 13.6256 209.457 19.6761C209.536 19.9101 209.536 20.2444 209.852 20.3447C210.193 20.3447 210.193 20.0104 210.272 19.7764C212.087 13.6256 214.821 7.84257 217.057 1.89238C217.214 1.49124 217.319 1.15696 217.819 1.15696C220.396 1.19038 223.078 1.15696 225.734 1.15696C225.261 2.66122 224.735 3.53035 224.235 4.9009C221.211 12.1214 218.45 18.6733 215.347 25.6931C215.163 26.0943 215.032 26.5288 214.874 26.9634C211.561 26.9634 208.221 26.9634 204.908 26.9634C202.673 21.6483 200.412 16.2999 198.177 10.9848" fill="black"></path><path d="M23.4439 26.6953C17.9482 26.6619 12.4262 26.9962 6.93047 26.7288C6.7464 26.7288 6.56234 26.6953 6.24679 26.6285C6.08902 26.595 5.93126 26.5616 5.79978 26.5282C4.85315 26.2608 3.72246 25.7593 2.61806 24.4891C1.72402 23.4194 1.17182 22.2494 0.987753 20.2771C0.61962 16.3661 0.64592 12.4216 0.935167 8.51048C1.277 3.69684 3.66987 1.08945 8.14005 0.989167C13.662 0.855455 19.3944 0.822027 24.969 1.15631C25.7052 1.18974 26.9674 1.22316 26.8096 1.82487C26.3626 3.62998 25.9682 5.40167 25.5475 7.24021C21.2614 7.24021 17.0015 7.24021 12.768 7.24021C9.19186 7.24021 8.69225 7.77507 8.69225 11.5524C8.69225 13.5247 8.66596 15.4969 8.71855 17.4692C8.77114 19.642 9.5337 20.4109 11.5584 20.4443C16.1601 20.4443 20.7354 20.4777 25.3371 20.4109C25.7315 20.4109 26.0471 20.4777 26.2837 20.6114C26.6256 20.8454 26.7571 21.1797 26.8096 21.3134C27.1252 22.0154 27.8877 25.0908 28.4925 26.7622" fill="black"></path><defs><linearGradient id="paint0_linear_805_210" x1="81.6075" y1="0.989258" x2="81.6075" y2="26.6954" gradientUnits="userSpaceOnUse"><stop></stop><stop offset="1" stop-color="#B7B2F3" stop-opacity="0"></stop></linearGradient><linearGradient id="paint1_linear_805_210" x1="46.5612" y1="0.917969" x2="46.5612" y2="27.1068" gradientUnits="userSpaceOnUse"><stop></stop><stop offset="1" stop-color="#B7B2F3" stop-opacity="0"></stop></linearGradient></defs></svg></a><ul class="hidden lg:flex grow justify-evenly lg:basis-4/6" itemscope="" itemType="https://schema.org/SiteNavigationElement"><li class="mr-6"><a class="text-xl font-bold text-main-100 hover:text-main-10 false" href="/services/">SERVICES</a></li><li class="mr-6"><a aria-current="page" class="text-xl font-bold text-main-100 hover:text-main-10 false" href="/workflow/">WORKFLOW</a></li><li class="mr-6"><a class="text-xl font-bold text-main-100 hover:text-main-10 false" href="/projects/">PROJECTS</a></li><li class="mr-6"><a class="text-xl font-bold text-main-100 hover:text-main-10 false" href="/blog/">BLOG</a></li></ul></div><div class="relative"><button class="flex min-h-10 min-w-10 m-2 items-center justify-center px-3 text-sm h-10 bg-main-100 text-secondary-100 border-secondary-100 hover:bg-main-70 hover:outline-main-100 px-0 sm:px-5 md:px-7 text-xl font-bold whitespace-nowrap rounded-full mx-0"><span class="hidden sm:inline">CONTACT US</span><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" class="sm:hidden" height="20px" width="20px" xmlns="http://www.w3.org/2000/svg"><g><path fill="none" d="M0 0h24v24H0z"></path><path d="M7 2v20H3V2h4zm2 0h10.005C20.107 2 21 2.898 21 3.99v16.02c0 1.099-.893 1.99-1.995 1.99H9V2zm13 4h2v4h-2V6zm0 6h2v4h-2v-4zm-7 0a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm-3 4h6a3 3 0 0 0-6 0z"></path></g></svg></button><div class="absolute flex flex-col flex-nowrap w-full items-center align-center top-full left-0 z-50 mx-2 bg-secondary-100 py-1 shadow-lg shadow-main-100 hidden" role="menu" aria-orientation="vertical" aria-labelledby="user-menu-button" tabindex="-1" itemscope="" itemType="https://schema.org/ContactPoint" itemProp="contactPoint"><a href="mailto:info@codecave.pro" target="_blank" title="Email" itemProp="email"><button class="flex min-h-10 min-w-10 m-2 items-center justify-center px-3 text-sm h-10 bg-secondary-100 text-main-100 border-main-100 hover:bg-secondary-30 hover:outline-secondary-100 border border-solid undefined"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 1024 1024" height="20px" width="20px" xmlns="http://www.w3.org/2000/svg"><path d="M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 110.8V792H136V270.8l-27.6-21.5 39.3-50.5 42.8 33.3h643.1l42.8-33.3 39.3 50.5-27.7 21.5zM833.6 232L512 482 190.4 232l-42.8-33.3-39.3 50.5 27.6 21.5 341.6 265.6a55.99 55.99 0 0 0 68.7 0L888 270.8l27.6-21.5-39.3-50.5-42.7 33.2z"></path></svg></button></a><a href="https://t.me/salaros_com" target="_blank" title="Telegram" itemProp="contactOption"><button class="flex min-h-10 min-w-10 m-2 items-center justify-center px-3 text-sm h-10 bg-secondary-100 text-main-100 border-main-100 hover:bg-secondary-30 hover:outline-secondary-100 border border-solid undefined"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="20px" width="20px" xmlns="http://www.w3.org/2000/svg"><path d="M446.7 98.6l-67.6 318.8c-5.1 22.5-18.4 28.1-37.3 17.5l-103-75.9-49.7 47.8c-5.5 5.5-10.1 10.1-20.7 10.1l7.4-104.9 190.9-172.5c8.3-7.4-1.8-11.5-12.9-4.1L117.8 284 16.2 252.2c-22.1-6.9-22.5-22.1 4.6-32.7L418.2 66.4c18.4-6.9 34.5 4.1 28.5 32.2z"></path></svg></button></a><a href="https://wa.me/375292366125" target="_blank" title="Whatsapp" itemProp="contactOption"><button class="flex min-h-10 min-w-10 m-2 items-center justify-center px-3 text-sm h-10 bg-secondary-100 text-main-100 border-main-100 hover:bg-secondary-30 hover:outline-secondary-100 border border-solid undefined"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="20px" width="20px" xmlns="http://www.w3.org/2000/svg"><path d="M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z"></path></svg></button></a><a href="https://www.linkedin.com/signup/public-profile-join?vieweeVanityName=salaros" target="_blank" title="Linkedin" itemProp="contactOption"><button class="flex min-h-10 min-w-10 m-2 items-center justify-center px-3 text-sm h-10 bg-secondary-100 text-main-100 border-main-100 hover:bg-secondary-30 hover:outline-secondary-100 border border-solid undefined"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="20px" width="20px" xmlns="http://www.w3.org/2000/svg"><path d="M100.28 448H7.4V148.9h92.88zM53.79 108.1C24.09 108.1 0 83.5 0 53.8a53.79 53.79 0 0 1 107.58 0c0 29.7-24.1 54.3-53.79 54.3zM447.9 448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29 0-55.69 37.7-55.69 76.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5 42.69-48.3 87.88-48.3 94 0 111.28 61.9 111.28 142.3V448z"></path></svg></button></a><a href="https://gitter.im/CodeCavePro/Lobby" target="_blank" title="Gitter" itemProp="contactOption"><button class="flex min-h-10 min-w-10 m-2 items-center justify-center px-3 text-sm h-10 bg-secondary-100 text-main-100 border-main-100 hover:bg-secondary-30 hover:outline-secondary-100 border border-solid undefined"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 384 512" height="20px" width="20px" xmlns="http://www.w3.org/2000/svg"><path d="M66.4 322.5H16V0h50.4v322.5zM166.9 76.1h-50.4V512h50.4V76.1zm100.6 0h-50.4V512h50.4V76.1zM368 76h-50.4v247H368V76z"></path></svg></button></a></div></div></div></div><div class="lg:hidden hidden" id="mobile-menu"><ul class="space-y-1 px-2 pb-3 pt-2" itemscope="" itemType="https://schema.org/SiteNavigationElement"><li class="mr-6"><a class="text-xl font-bold text-main-100 hover:text-main-10 false" href="/services/">SERVICES</a></li><li class="mr-6"><a aria-current="page" class="text-xl font-bold text-main-100 hover:text-main-10 false" href="/workflow/">WORKFLOW</a></li><li class="mr-6"><a class="text-xl font-bold text-main-100 hover:text-main-10 false" href="/projects/">PROJECTS</a></li><li class="mr-6"><a class="text-xl font-bold text-main-100 hover:text-main-10 false" href="/blog/">BLOG</a></li></ul></div></div></div><div class="h-1 w-full bg-secondary-100 absolute bottom-0 left-0"><div class="h-full w-0 bg-main-100 transition-all ease-linear duration-300" style="width:0%"></div></div></nav><div class="w-full flex items-center bg-main-100 relative overflow-hidden px-6 h-136 undefined"><div class="flex w-full max-w-7xl mx-auto h-full flex flex-col lg:flex-row py-12 lg:py-0 items-center text-secondary-100 flex-grow"><div class="flex flex-col overflow-hidden items-left h-full justify-center text-secondary-100 h-full w-full lg:w-1/2 bg-main-100"><h2 class="overflow-hidden mb-8 w-full"><span class="inline-block font-['Rubik_Glitch'] text-5xl sm:text-6xl w-full text-center lg:text-start transition-all duration-1000 translate-y-full">HOW & WHY</span></h2><p class="overflow-hidden w-full"><span class="inline-block w-full text-3xl sm:text-4xl font-light text-center lg:text-start transition-all duration-1000 translate-y-full">SOLID REASONS TO CHOOSE US TO GO THROUGH APP DEV PROCESS</span></p></div></div></div><div class="bg-secondary-100"><div class="flex w-full max-w-7xl mx-auto flex-col items-start p-6 md:py-24 relative transition-all duration-1000"><div class="workflow-step relative md:w-1/2 flex flex-row items-center h-min my-20 first:mt-36 md:-my-2 md:first:mt-0 md:last:mb-0 text-secondary-100 z-10 md:z-0 md:even:translate-x-full md:odd:flex-row-reverse md:-ms-6 md:odd:ms-6"><div class="hidden md:block cover absolute -right-6 -top-2 -bottom-2 z-10 bg-secondary-100 transition-all duration-1000 w-[100%]"></div><p class="step-number absolute rounded-full h-12 w-12 flex items-center justify-center bg-main-100 text-secondary-100 font-extrabold text-2xl -translate-x-1/2 -translate-y-[120%] md:translate-x-full z-30 top-0 md:top-auto left-1/2 md:left-auto md:translate-y-0">1</p><svg class="hidden md:block basis-1/6" height="4"><line width="800" height="4" stroke="black" stroke-width="4" x1="0" x2="100%" y1="2" y2="2"></line></svg><div class="md:basis-5/6 flex flex-row justify-around h-min rounded-2xl p-10 bg-main-100 text-secondary-100"><img src="/static/05e07cea9f3c8cd67fcd982da2946957/binoculars.svg" alt="Discovering logo" class="basis-1/6 mr-7 invert"/><div class="flex flex-col pb-4 basis-4/6"><h4 class="font-extrabold text-2xl pb-6">Discovering</h4><div class="text-xl"><p>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.</p></div></div></div></div><div class="workflow-step relative md:w-1/2 flex flex-row items-center h-min my-20 first:mt-36 md:-my-2 md:first:mt-0 md:last:mb-0 text-secondary-100 z-10 md:z-0 md:even:translate-x-full md:odd:flex-row-reverse md:-ms-6 md:odd:ms-6"><div class="hidden md:block cover absolute -right-6 -top-2 -bottom-2 z-10 bg-secondary-100 transition-all duration-1000 w-[100%]"></div><p class="step-number absolute rounded-full h-12 w-12 flex items-center justify-center bg-main-100 text-secondary-100 font-extrabold text-2xl -translate-x-1/2 -translate-y-[120%] md:translate-x-full z-30 top-0 md:top-auto left-1/2 md:left-auto md:translate-y-0">2</p><svg class="hidden md:block basis-1/6" height="4"><line width="800" height="4" stroke="black" stroke-width="4" x1="0" x2="100%" y1="2" y2="2"></line></svg><div class="md:basis-5/6 flex flex-row justify-around h-min rounded-2xl p-10 bg-main-100 text-secondary-100"><img src="/static/f158d48996c15ce8ac41a45d698c552f/cpu.svg" alt="Brainstorming logo" class="basis-1/6 mr-7 invert"/><div class="flex flex-col pb-4 basis-4/6"><h4 class="font-extrabold text-2xl pb-6">Brainstorming</h4><div class="text-xl"><p>Using first-step information we'll take a deep dive into your target audience, needs and challenges of your business, customers, and desired technology.</p></div></div></div></div><div class="workflow-step relative md:w-1/2 flex flex-row items-center h-min my-20 first:mt-36 md:-my-2 md:first:mt-0 md:last:mb-0 text-secondary-100 z-10 md:z-0 md:even:translate-x-full md:odd:flex-row-reverse md:-ms-6 md:odd:ms-6"><div class="hidden md:block cover absolute -right-6 -top-2 -bottom-2 z-10 bg-secondary-100 transition-all duration-1000 w-[100%]"></div><p class="step-number absolute rounded-full h-12 w-12 flex items-center justify-center bg-main-100 text-secondary-100 font-extrabold text-2xl -translate-x-1/2 -translate-y-[120%] md:translate-x-full z-30 top-0 md:top-auto left-1/2 md:left-auto md:translate-y-0">3</p><svg class="hidden md:block basis-1/6" height="4"><line width="800" height="4" stroke="black" stroke-width="4" x1="0" x2="100%" y1="2" y2="2"></line></svg><div class="md:basis-5/6 flex flex-row justify-around h-min rounded-2xl p-10 bg-main-100 text-secondary-100"><img src="/static/ef3b40caa2dd84668da2e808613682d2/puzzle.svg" alt="Defining logo" class="basis-1/6 mr-7 invert"/><div class="flex flex-col pb-4 basis-4/6"><h4 class="font-extrabold text-2xl pb-6">Defining</h4><div class="text-xl"><p>We’ll quickly define your project roadmap, select the right tools and technologies. We’ll assemble your team and assign you a PM.</p></div></div></div></div><div class="workflow-step relative md:w-1/2 flex flex-row items-center h-min my-20 first:mt-36 md:-my-2 md:first:mt-0 md:last:mb-0 text-secondary-100 z-10 md:z-0 md:even:translate-x-full md:odd:flex-row-reverse md:-ms-6 md:odd:ms-6"><div class="hidden md:block cover absolute -right-6 -top-2 -bottom-2 z-10 bg-secondary-100 transition-all duration-1000 w-[100%]"></div><p class="step-number absolute rounded-full h-12 w-12 flex items-center justify-center bg-main-100 text-secondary-100 font-extrabold text-2xl -translate-x-1/2 -translate-y-[120%] md:translate-x-full z-30 top-0 md:top-auto left-1/2 md:left-auto md:translate-y-0">4</p><svg class="hidden md:block basis-1/6" height="4"><line width="800" height="4" stroke="black" stroke-width="4" x1="0" x2="100%" y1="2" y2="2"></line></svg><div class="md:basis-5/6 flex flex-row justify-around h-min rounded-2xl p-10 bg-main-100 text-secondary-100"><img src="/static/987d2f3a3273bb8af01cb9357fa75b4f/briefcase.svg" alt="Proposition logo" class="basis-1/6 mr-7 invert"/><div class="flex flex-col pb-4 basis-4/6"><h4 class="font-extrabold text-2xl pb-6">Proposition</h4><div class="text-xl"><p>Complete solution for your project will be proposed as soon as possible. Every effort will be made to reach an agreement on all issues.</p></div></div></div></div><div class="workflow-step relative md:w-1/2 flex flex-row items-center h-min my-20 first:mt-36 md:-my-2 md:first:mt-0 md:last:mb-0 text-secondary-100 z-10 md:z-0 md:even:translate-x-full md:odd:flex-row-reverse md:-ms-6 md:odd:ms-6"><div class="hidden md:block cover absolute -right-6 -top-2 -bottom-2 z-10 bg-secondary-100 transition-all duration-1000 w-[100%]"></div><p class="step-number absolute rounded-full h-12 w-12 flex items-center justify-center bg-main-100 text-secondary-100 font-extrabold text-2xl -translate-x-1/2 -translate-y-[120%] md:translate-x-full z-30 top-0 md:top-auto left-1/2 md:left-auto md:translate-y-0">5</p><svg class="hidden md:block basis-1/6" height="4"><line width="800" height="4" stroke="black" stroke-width="4" x1="0" x2="100%" y1="2" y2="2"></line></svg><div class="md:basis-5/6 flex flex-row justify-around h-min rounded-2xl p-10 bg-main-100 text-secondary-100"><img src="/static/1d86d2753a2e40365d1147287d61b287/terminal.svg" alt="Development logo" class="basis-1/6 mr-7 invert"/><div class="flex flex-col pb-4 basis-4/6"><h4 class="font-extrabold text-2xl pb-6">Development</h4><div class="text-xl"><p>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.</p></div></div></div></div><div class="workflow-step relative md:w-1/2 flex flex-row items-center h-min my-20 first:mt-36 md:-my-2 md:first:mt-0 md:last:mb-0 text-secondary-100 z-10 md:z-0 md:even:translate-x-full md:odd:flex-row-reverse md:-ms-6 md:odd:ms-6"><div class="hidden md:block cover absolute -right-6 -top-2 -bottom-2 z-10 bg-secondary-100 transition-all duration-1000 w-[100%]"></div><p class="step-number absolute rounded-full h-12 w-12 flex items-center justify-center bg-main-100 text-secondary-100 font-extrabold text-2xl -translate-x-1/2 -translate-y-[120%] md:translate-x-full z-30 top-0 md:top-auto left-1/2 md:left-auto md:translate-y-0">6</p><svg class="hidden md:block basis-1/6" height="4"><line width="800" height="4" stroke="black" stroke-width="4" x1="0" x2="100%" y1="2" y2="2"></line></svg><div class="md:basis-5/6 flex flex-row justify-around h-min rounded-2xl p-10 bg-main-100 text-secondary-100"><img src="/static/d0295e671f612ed8d6d6283929be4ef5/flag.svg" alt="Launch logo" class="basis-1/6 mr-7 invert"/><div class="flex flex-col pb-4 basis-4/6"><h4 class="font-extrabold text-2xl pb-6">Launch</h4><div class="text-xl"><p>Congratulations! Successfully released product and non-broken deadlines are irrefutable evidence of your right desicion to choose CodeCave as your partner.</p></div></div></div></div><div class="workflow-step relative md:w-1/2 flex flex-row items-center h-min my-20 first:mt-36 md:-my-2 md:first:mt-0 md:last:mb-0 text-secondary-100 z-10 md:z-0 md:even:translate-x-full md:odd:flex-row-reverse md:-ms-6 md:odd:ms-6"><div class="hidden md:block cover absolute -right-6 -top-2 -bottom-2 z-10 bg-secondary-100 transition-all duration-1000 w-[100%]"></div><p class="step-number absolute rounded-full h-12 w-12 flex items-center justify-center bg-main-100 text-secondary-100 font-extrabold text-2xl -translate-x-1/2 -translate-y-[120%] md:translate-x-full z-30 top-0 md:top-auto left-1/2 md:left-auto md:translate-y-0">7</p><svg class="hidden md:block basis-1/6" height="4"><line width="800" height="4" stroke="black" stroke-width="4" x1="0" x2="100%" y1="2" y2="2"></line></svg><div class="md:basis-5/6 flex flex-row justify-around h-min rounded-2xl p-10 bg-main-100 text-secondary-100"><img src="/static/2e75bdce8a42097c6a1866f6a621e7b2/tools.svg" alt="Maintenance logo" class="basis-1/6 mr-7 invert"/><div class="flex flex-col pb-4 basis-4/6"><h4 class="font-extrabold text-2xl pb-6">Maintenance</h4><div class="text-xl"><p>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.</p></div></div></div></div><div class="absolute left-1/2 top-0 bottom-0 border-r-8 border-solid border main-100 -translate-x-1/2"></div></div><section class="w-full py-48 px-6 bg-main-100 text-secondary-100 py-32"><div class="flex w-full max-w-7xl mx-auto flex-col items-center"><div class="flex justify-between w-full items-center pb-10 md:pb-16"><h3 class="text-4xl md:text-5xl font-black w-full max-w-7xl mx-auto pr-8">WHY US</h3></div><div class="flex flex-wrap flex-col sm:flex-row justify-around items-stretch"><div class="why-us-card relative flex flex-col basis-5/12 text-secondary-100 p-10 cursor-pointer undefined"><h6 class="text-center w-full text-2xl font-bold pb-6">Quality</h6><div class="text-xl"><p>We striving for the best achievable quality in our work</p></div><div class="line w-1 h-0 bg-secondary-100 absolute top-1/2 left-0 -translate-y-1/2 transition-all duration-500"></div></div><div class="why-us-card relative flex flex-col basis-5/12 text-secondary-100 p-10 cursor-pointer undefined"><h6 class="text-center w-full text-2xl font-bold pb-6">Relationships</h6><div class="text-xl"><p>We communicate honestly and openly to build trust and respect in a relationships with our customers</p></div><div class="line w-1 h-0 bg-secondary-100 absolute top-1/2 left-0 -translate-y-1/2 transition-all duration-500"></div></div><div class="why-us-card relative flex flex-col basis-5/12 text-secondary-100 p-10 cursor-pointer undefined"><h6 class="text-center w-full text-2xl font-bold pb-6">Improvements</h6><div class="text-xl"><p>We foster a work environment that inspires professionals to continuously improve products throughout it's lifecycle</p></div><div class="line w-1 h-0 bg-secondary-100 absolute top-1/2 left-0 -translate-y-1/2 transition-all duration-500"></div></div><div class="why-us-card relative flex flex-col basis-5/12 text-secondary-100 p-10 cursor-pointer undefined"><h6 class="text-center w-full text-2xl font-bold pb-6">Flexibility</h6><div class="text-xl"><p>We're ready to face new challenges at any stage of the project</p></div><div class="line w-1 h-0 bg-secondary-100 absolute top-1/2 left-0 -translate-y-1/2 transition-all duration-500"></div></div><div class="why-us-card relative flex flex-col basis-5/12 text-secondary-100 p-10 cursor-pointer undefined"><h6 class="text-center w-full text-2xl font-bold pb-6">Responsibility</h6><div class="text-xl"><p>We care for all the projects as if they were our own</p></div><div class="line w-1 h-0 bg-secondary-100 absolute top-1/2 left-0 -translate-y-1/2 transition-all duration-500"></div></div><div class="why-us-card relative flex flex-col basis-5/12 text-secondary-100 p-10 cursor-pointer undefined"><h6 class="text-center w-full text-2xl font-bold pb-6">Advancement</h6><div class="text-xl"><p>We continuously track the latest development trends and are always prepared to apply advanced technologies</p></div><div class="line w-1 h-0 bg-secondary-100 absolute top-1/2 left-0 -translate-y-1/2 transition-all duration-500"></div></div></div></div></section></div><footer class="bg-main-100 border-t-4 border-secondary-100 border-solid p-4"><div class="flex w-full max-w-7xl mx-auto min-h-[8.5rem]"><nav class="w-full flex items-center flex-col md:flex-row"><a class="flex flex-1 items-center justify-start basis-1/4" href="/"><svg width="226" height="23" viewBox="0 0 226 23" fill="none"><path d="M58.4727 22.6392V6.77134V0.0839844C58.4727 0.0839844 70.4009 0.201314 74.8769 0.201314C76.3765 0.201314 77.8531 0.406627 79.2605 0.934577C81.5908 1.81449 82.9982 3.57432 83.252 6.21407C83.575 9.55775 83.5289 12.9601 83.2981 16.3038C83.0443 20.0874 80.9217 22.2285 77.4148 22.6392H58.4727ZM65.5096 17.5357C66.3641 17.5357 67.2129 17.5405 68.0576 17.5453C70.1551 17.5572 72.2276 17.5691 74.3001 17.5063C75.6152 17.477 76.4688 16.5091 76.4919 15.1012C76.538 12.6961 76.538 10.291 76.4919 7.88592C76.4688 6.56604 75.6613 5.5688 74.4846 5.53947C72.3613 5.4767 70.238 5.48856 68.0979 5.50051C67.2382 5.50532 66.3758 5.51013 65.5096 5.51013V17.5357Z" fill="#F7F7F7"></path><path d="M58.4727 22.6392V6.77134V0.0839844C58.4727 0.0839844 70.4009 0.201314 74.8769 0.201314C76.3765 0.201314 77.8531 0.406627 79.2605 0.934577C81.5908 1.81449 82.9982 3.57432 83.252 6.21407C83.575 9.55775 83.5289 12.9601 83.2981 16.3038C83.0443 20.0874 80.9217 22.2285 77.4148 22.6392H58.4727ZM65.5096 17.5357C66.3641 17.5357 67.2129 17.5405 68.0576 17.5453C70.1551 17.5572 72.2276 17.5691 74.3001 17.5063C75.6152 17.477 76.4688 16.5091 76.4919 15.1012C76.538 12.6961 76.538 10.291 76.4919 7.88592C76.4688 6.56604 75.6613 5.5688 74.4846 5.53947C72.3613 5.4767 70.238 5.48856 68.0979 5.50051C67.2382 5.50532 66.3758 5.51013 65.5096 5.51013V17.5357Z" stroke="url(#paint0_linear_807_267)"></path><path d="M32.4682 22.7858C31.2223 22.5804 30.161 21.8178 29.2842 20.7619C28.9612 20.3806 28.7305 19.9994 28.6151 19.7647C28.2229 19.0314 28.0153 18.1809 27.923 17.1543C27.5769 13.664 27.6461 10.1736 27.8307 6.68328C28.0614 2.48901 29.7687 0.494546 33.714 0.259902C38.3285 -0.00407292 42.9659 -0.150736 47.5803 0.377213C50.5105 0.72918 52.287 2.63566 52.5408 5.80336C52.8638 9.55767 52.8408 13.3413 52.5408 17.0956C52.4485 18.2395 52.2409 19.0314 51.941 19.6181C51.9367 19.6235 51.9244 19.6462 51.9048 19.6825C51.8188 19.8416 51.5912 20.2626 51.2719 20.6446C50.049 22.0818 48.0187 22.5218 47.5342 22.5804C45.0655 22.9031 40.2204 23.2257 32.4682 22.7858ZM45.8499 11.5815C45.8499 11.1893 45.8525 10.8004 45.8551 10.4126C45.8602 9.64026 45.8653 8.8722 45.8499 8.09114C45.8038 6.44863 45.0193 5.53939 43.4966 5.51006C41.3047 5.4514 39.0898 5.4514 36.898 5.51006C35.3752 5.53939 34.6369 6.4193 34.6139 8.00315C34.5908 10.3203 34.5908 12.6667 34.6139 14.9838C34.6369 16.5383 35.4214 17.4769 36.898 17.5063C39.136 17.5649 41.374 17.5649 43.6119 17.5063C45.0424 17.4769 45.8269 16.509 45.8499 14.9252C45.8653 14.2017 45.8602 13.4521 45.8551 12.7026C45.8525 12.3278 45.8499 11.953 45.8499 11.5815Z" fill="#F7F7F7"></path><path d="M32.4682 22.7858C31.2223 22.5804 30.161 21.8178 29.2842 20.7619C28.9612 20.3806 28.7305 19.9994 28.6151 19.7647C28.2229 19.0314 28.0153 18.1809 27.923 17.1543C27.5769 13.664 27.6461 10.1736 27.8307 6.68328C28.0614 2.48901 29.7687 0.494546 33.714 0.259902C38.3285 -0.00407292 42.9659 -0.150736 47.5803 0.377213C50.5105 0.72918 52.287 2.63566 52.5408 5.80336C52.8638 9.55767 52.8408 13.3413 52.5408 17.0956C52.4485 18.2395 52.2409 19.0314 51.941 19.6181C51.9367 19.6235 51.9244 19.6462 51.9048 19.6825C51.8188 19.8416 51.5912 20.2626 51.2719 20.6446C50.049 22.0818 48.0187 22.5218 47.5342 22.5804C45.0655 22.9031 40.2204 23.2257 32.4682 22.7858ZM45.8499 11.5815C45.8499 11.1893 45.8525 10.8004 45.8551 10.4126C45.8602 9.64026 45.8653 8.8722 45.8499 8.09114C45.8038 6.44863 45.0193 5.53939 43.4966 5.51006C41.3047 5.4514 39.0898 5.4514 36.898 5.51006C35.3752 5.53939 34.6369 6.4193 34.6139 8.00315C34.5908 10.3203 34.5908 12.6667 34.6139 14.9838C34.6369 16.5383 35.4214 17.4769 36.898 17.5063C39.136 17.5649 41.374 17.5649 43.6119 17.5063C45.0424 17.4769 45.8269 16.509 45.8499 14.9252C45.8653 14.2017 45.8602 13.4521 45.8551 12.7026C45.8525 12.3278 45.8499 11.953 45.8499 11.5815Z" stroke="url(#paint1_linear_807_267)"></path><path d="M221.73 17.5354C222.123 17.5354 222.399 17.5941 222.63 17.7701C222.976 18.0047 223.115 18.5034 223.184 18.6207C223.438 19.3539 224.084 20.7031 225.122 22.8443C224.937 22.8443 224.776 22.8443 224.661 22.8443C224.522 22.8443 208.21 22.8443 200.273 22.8443C200.273 22.6683 200.32 0.787715 200.32 0.259766C207.979 0.259766 215.57 0.259766 223.207 0.259766C223.207 1.96094 223.207 3.63277 223.207 5.42193C217.947 5.42193 212.571 5.42193 207.264 5.42193C207.264 5.94988 207.218 8.09101 207.218 8.58963C211.21 8.58963 215.109 8.58963 219.054 8.58963C219.054 10.3788 219.054 12.0506 219.054 13.8398C215.178 13.8398 211.279 13.8398 207.287 13.8398C207.287 15.101 207.287 16.3329 207.287 17.4768" fill="#F7F7F7"></path><path d="M109.877 17.5354C110.269 17.5354 110.546 17.5941 110.777 17.7701C111.123 18.0047 111.261 18.5034 111.33 18.6207C111.584 19.3539 112.23 20.7031 113.268 22.8443C113.084 22.8443 112.922 22.8443 112.807 22.8443C112.669 22.8443 96.3567 22.8443 88.4199 22.8443C88.4199 22.6683 88.4661 0.787715 88.4661 0.259766C96.126 0.259766 103.717 0.259766 111.354 0.259766C111.354 1.96094 111.354 3.63277 111.354 5.42193C106.093 5.42193 100.717 5.42193 95.4107 5.42193C95.4107 5.94988 95.3646 8.09101 95.3646 8.58963C99.3561 8.58963 103.255 8.58963 107.201 8.58963C107.201 10.3788 107.201 12.0506 107.201 13.8398C103.324 13.8398 99.4253 13.8398 95.4338 13.8398C95.4338 15.101 95.4338 16.3329 95.4338 17.4768" fill="#F7F7F7"></path><path d="M88.4199 22.8443C88.443 16.7729 88.4661 10.7308 88.4661 4.65935C88.4661 3.22215 88.4661 1.78495 88.4661 0.259766C96.126 0.259766 103.717 0.259766 111.377 0.259766C111.377 1.96094 111.377 3.6621 111.377 5.4806C106.07 5.4806 100.787 5.4806 95.4569 5.4806C95.4569 6.5365 95.4569 7.47507 95.4569 8.5603C99.333 8.5603 103.232 8.5603 107.201 8.5603C107.201 10.3788 107.201 12.08 107.201 13.8985C103.348 13.8985 99.4483 13.8985 95.48 13.8985C95.48 15.1303 95.48 16.2742 95.48 17.4475C95.8491 17.6821 96.2875 17.5648 96.6797 17.5648C101.11 17.5648 105.562 17.5941 109.992 17.5648C110.638 17.5648 111.007 17.7701 111.261 18.4154C111.792 19.7646 112.415 21.0844 112.945 22.3457C112.669 22.8736 112.115 22.375 111.953 22.8736C104.086 22.8443 96.2644 22.8443 88.4199 22.8443Z" fill="#F7F7F7"></path><path d="M141.971 22.8441C142.201 21.7296 142.801 20.791 143.263 19.8231C146.124 13.605 149.031 7.41626 151.869 1.16885C152.215 0.40626 152.607 0.142278 153.391 0.171608C155.86 0.230269 158.329 0.200939 160.774 0.171608C161.282 0.171608 161.651 0.230273 161.928 0.816884C165.25 8.09086 168.619 15.3355 171.964 22.5802C171.987 22.6388 171.987 22.7268 172.01 22.8148C169.473 22.8148 166.935 22.8148 164.397 22.8148C163.912 21.6416 163.405 20.4977 162.966 19.3245C162.782 18.8259 162.482 18.7085 162.02 18.7085C158.675 18.7378 155.329 18.7378 151.984 18.7085C151.546 18.7085 151.223 18.7965 151.015 19.2658C150.507 20.4684 149.931 21.6122 149.377 22.8148C146.908 22.8441 144.439 22.8441 141.971 22.8441ZM157.175 5.24581C157.06 5.24581 156.898 5.24581 156.783 5.24581C155.629 7.94422 154.476 10.6133 153.299 13.3704C155.814 13.3704 158.167 13.3704 160.636 13.3704C159.436 10.584 158.306 7.91489 157.175 5.24581Z" fill="#F7F7F7"></path><path d="M136.132 22.8148C131.31 22.7855 126.465 23.0788 121.643 22.8442C121.482 22.8442 121.32 22.8148 121.043 22.7562C120.905 22.7268 120.766 22.6975 120.651 22.6682C119.82 22.4335 118.828 21.9936 117.859 20.879C117.075 19.9404 116.59 18.9139 116.429 17.1834C116.106 13.7517 116.129 10.2907 116.383 6.85902C116.683 2.63543 118.782 0.347648 122.704 0.259656C127.55 0.142334 132.602 0.142334 137.471 0.406309C138.117 0.43564 139.224 0.46497 139.086 0.99292C138.693 2.57677 138.347 4.13127 137.978 5.74445C134.217 5.74445 130.48 5.74445 126.765 5.74445C123.627 5.74445 123.189 6.21375 123.189 9.5281C123.189 11.2586 123.166 12.9891 123.212 14.7196C123.258 16.6261 123.927 17.3007 125.704 17.33C129.741 17.33 133.756 17.3593 137.794 17.3007C138.14 17.3007 138.417 17.3593 138.624 17.4767C138.924 17.682 139.039 17.9753 139.086 18.0926C139.362 18.7086 140.032 21.407 140.562 22.8735" fill="#F7F7F7"></path><path d="M169.75 0.20166C172.034 0.20166 174.341 0.20166 176.649 0.20166C177.179 0.20166 177.225 0.61228 177.341 0.964247C179.256 6.12642 181.517 11.1713 183.155 16.4801C183.224 16.6854 183.224 16.9787 183.501 17.0667C183.801 17.0667 183.801 16.7734 183.87 16.5681C185.462 11.1713 187.862 6.09709 189.823 0.876259C189.961 0.524292 190.053 0.230984 190.492 0.230984C192.753 0.260314 195.106 0.230984 197.436 0.230984C197.021 1.55086 196.56 2.31346 196.121 3.51601C193.468 9.8514 191.045 15.6002 188.323 21.7596C188.161 22.1116 188.046 22.4929 187.908 22.8742C185.001 22.8742 182.07 22.8742 179.163 22.8742C177.202 18.2106 175.218 13.5177 173.257 8.85417" fill="#F7F7F7"></path><path d="M19.943 22.6391C15.1209 22.6098 10.2758 22.903 5.45373 22.6684C5.29223 22.6684 5.13072 22.6391 4.85386 22.5804C4.71543 22.5511 4.577 22.5218 4.46164 22.4924C3.63105 22.2578 2.63895 21.8178 1.66992 20.7033C0.885476 19.7647 0.400961 18.7381 0.239457 17.0076C-0.0835516 13.5759 -0.0604754 10.1149 0.193317 6.68326C0.493253 2.45967 2.59281 0.171884 6.51505 0.0838927C11.3602 -0.0334294 16.3899 -0.0627599 21.2811 0.230545C21.9272 0.259876 23.0346 0.289206 22.8962 0.817156C22.504 2.401 22.1579 3.95553 21.7887 5.56871C18.028 5.56871 14.2903 5.56871 10.5757 5.56871C7.43793 5.56871 6.99956 6.038 6.99956 9.35235C6.99956 11.0829 6.97649 12.8133 7.02264 14.5438C7.06878 16.4503 7.73787 17.1249 9.51441 17.1543C13.552 17.1543 17.5665 17.1836 21.6041 17.1249C21.9502 17.1249 22.2271 17.1836 22.4347 17.3009C22.7347 17.5062 22.85 17.7995 22.8962 17.9169C23.173 18.5328 23.8421 21.2312 24.3728 22.6977" fill="#F7F7F7"></path><defs><linearGradient id="paint0_linear_807_267" x1="70.9777" y1="0.0839844" x2="70.9777" y2="22.6392" gradientUnits="userSpaceOnUse"><stop></stop><stop offset="1" stop-color="#B7B2F3" stop-opacity="0"></stop></linearGradient><linearGradient id="paint1_linear_807_267" x1="40.2261" y1="0.0214844" x2="40.2261" y2="23.0002" gradientUnits="userSpaceOnUse"><stop></stop><stop offset="1" stop-color="#B7B2F3" stop-opacity="0"></stop></linearGradient></defs></svg></a><ul class="flex justify-center flex-wrap shrink basis-1/3"><li class="p-2 w-max"><a class="text-xl text-secondary-30 underline" href="/services/">SERVICES</a></li><li class="p-2 w-max"><a aria-current="page" class="text-xl text-secondary-30 underline" href="/workflow/">WORKFLOW</a></li><li class="p-2 w-max"><a class="text-xl text-secondary-30 underline" href="/projects/">PROJECTS</a></li><li class="p-2 w-max"><a class="text-xl text-secondary-30 underline" href="/blog/">BLOG</a></li></ul><div class="flex flex-wrap shrink basis-1/3 justify-center" itemscope="" itemType="https://schema.org/ContactPoint" itemProp="contactPoint"><a href="mailto:info@codecave.pro" target="_blank" title="Email" itemProp="email"><button class="flex min-h-10 min-w-10 m-2 items-center justify-center px-3 text-sm h-10 bg-secondary-100 text-main-100 border-main-100 hover:bg-secondary-30 hover:outline-secondary-100 border border-solid undefined"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 1024 1024" height="20px" width="20px" xmlns="http://www.w3.org/2000/svg"><path d="M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 110.8V792H136V270.8l-27.6-21.5 39.3-50.5 42.8 33.3h643.1l42.8-33.3 39.3 50.5-27.7 21.5zM833.6 232L512 482 190.4 232l-42.8-33.3-39.3 50.5 27.6 21.5 341.6 265.6a55.99 55.99 0 0 0 68.7 0L888 270.8l27.6-21.5-39.3-50.5-42.7 33.2z"></path></svg></button></a><a href="https://t.me/salaros_com" target="_blank" title="Telegram" itemProp="contactOption"><button class="flex min-h-10 min-w-10 m-2 items-center justify-center px-3 text-sm h-10 bg-secondary-100 text-main-100 border-main-100 hover:bg-secondary-30 hover:outline-secondary-100 border border-solid undefined"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="20px" width="20px" xmlns="http://www.w3.org/2000/svg"><path d="M446.7 98.6l-67.6 318.8c-5.1 22.5-18.4 28.1-37.3 17.5l-103-75.9-49.7 47.8c-5.5 5.5-10.1 10.1-20.7 10.1l7.4-104.9 190.9-172.5c8.3-7.4-1.8-11.5-12.9-4.1L117.8 284 16.2 252.2c-22.1-6.9-22.5-22.1 4.6-32.7L418.2 66.4c18.4-6.9 34.5 4.1 28.5 32.2z"></path></svg></button></a><a href="https://wa.me/375292366125" target="_blank" title="Whatsapp" itemProp="contactOption"><button class="flex min-h-10 min-w-10 m-2 items-center justify-center px-3 text-sm h-10 bg-secondary-100 text-main-100 border-main-100 hover:bg-secondary-30 hover:outline-secondary-100 border border-solid undefined"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="20px" width="20px" xmlns="http://www.w3.org/2000/svg"><path d="M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z"></path></svg></button></a><a href="https://www.linkedin.com/signup/public-profile-join?vieweeVanityName=salaros" target="_blank" title="Linkedin" itemProp="contactOption"><button class="flex min-h-10 min-w-10 m-2 items-center justify-center px-3 text-sm h-10 bg-secondary-100 text-main-100 border-main-100 hover:bg-secondary-30 hover:outline-secondary-100 border border-solid undefined"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="20px" width="20px" xmlns="http://www.w3.org/2000/svg"><path d="M100.28 448H7.4V148.9h92.88zM53.79 108.1C24.09 108.1 0 83.5 0 53.8a53.79 53.79 0 0 1 107.58 0c0 29.7-24.1 54.3-53.79 54.3zM447.9 448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29 0-55.69 37.7-55.69 76.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5 42.69-48.3 87.88-48.3 94 0 111.28 61.9 111.28 142.3V448z"></path></svg></button></a><a href="https://gitter.im/CodeCavePro/Lobby" target="_blank" title="Gitter" itemProp="contactOption"><button class="flex min-h-10 min-w-10 m-2 items-center justify-center px-3 text-sm h-10 bg-secondary-100 text-main-100 border-main-100 hover:bg-secondary-30 hover:outline-secondary-100 border border-solid undefined"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 384 512" height="20px" width="20px" xmlns="http://www.w3.org/2000/svg"><path d="M66.4 322.5H16V0h50.4v322.5zM166.9 76.1h-50.4V512h50.4V76.1zm100.6 0h-50.4V512h50.4V76.1zM368 76h-50.4v247H368V76z"></path></svg></button></a></div></nav></div></footer></main></div><div id="gatsby-announcer" style="position:absolute;top:0;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0" aria-live="assertive" aria-atomic="true"></div></div><script id="gatsby-script-loader">/*<![CDATA[*/window.pagePath="/workflow/";/*]]>*/</script><!-- slice-start id="_gatsby-scripts-1" --> +*/*,: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}}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-y-0{bottom:0;top:0}.-bottom-2{bottom:-.5rem}.-right-6{right:-1.5rem}.-top-2{top:-.5rem}.bottom-0{bottom:0}.bottom-1{bottom:.25rem}.bottom-\[5\%\]{bottom:5%}.left-0{left:0}.left-1\/2{left:50%}.left-6{left:1.5rem}.right-0{right:0}.right-6{right:1.5rem}.right-\[2\%\]{right:2%}.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}.z-\[1\]{z-index:1}.m-2{margin:.5rem}.m-4{margin:1rem}.mx-0{margin-left:0;margin-right:0}.mx-12{margin-left:3rem;margin-right:3rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.mx-\[-1px\]{margin-left:-1px;margin-right:-1px}.mx-auto{margin-left:auto;margin-right:auto}.my-10{margin-bottom:2.5rem;margin-top:2.5rem}.my-16{margin-bottom:4rem;margin-top:4rem}.my-20{margin-bottom:5rem;margin-top:5rem}.mb-12{margin-bottom:3rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mr-10{margin-right:2.5rem}.mr-2{margin-right:.5rem}.mr-6{margin-right:1.5rem}.mr-7{margin-right:1.75rem}.mt-16{margin-top:4rem}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.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-136{height:34rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-160{height:40rem}.h-2\/3{height:66.666667%}.h-20{height:5rem}.h-24{height:6rem}.h-28{height:7rem}.h-32{height:8rem}.h-36{height:9rem}.h-8{height:2rem}.h-96{height:24rem}.h-full{height:100%}.h-min{height:-moz-min-content;height:min-content}.min-h-160{min-height:40rem}.min-h-96{min-height:24rem}.min-h-\[8\.5rem\]{min-height:8.5rem}.w-0{width:0}.w-1{width:.25rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2\/3{width:66.666667%}.w-32{width:8rem}.w-40{width:10rem}.w-56{width:14rem}.w-64{width:16rem}.w-8{width:2rem}.w-\[100\%\]{width:100%}.w-\[352px\]{width:352px}.w-\[85\%\]{width:85%}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.min-w-10{min-width:2.5rem}.max-w-6xl{max-width:72rem}.max-w-7xl{max-width:80rem}.flex-1{flex:1 1 0%}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.basis-1\/2{flex-basis:50%}.basis-1\/3{flex-basis:33.333333%}.basis-1\/4{flex-basis:25%}.basis-1\/5{flex-basis:20%}.basis-1\/6{flex-basis:16.666667%}.basis-4\/6{flex-basis:66.666667%}.basis-5\/12{flex-basis:41.666667%}.basis-\[48\%\]{flex-basis:48%}.basis-full{flex-basis:100%}.-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%;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-manipulation{touch-action:manipulation}.resize{resize:both}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.columns-1{-moz-columns:1;column-count:1}.break-inside-avoid{-moz-column-break-inside:avoid;break-inside:avoid}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.content-center{align-content:center}.items-start{align-items:flex-start}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.overflow-hidden{overflow:hidden}.whitespace-nowrap{white-space:nowrap}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-t-2xl{border-top-left-radius:1rem;border-top-right-radius:1rem}.border{border-width:1px}.border-2{border-width:2px}.border-\[3px\]{border-width:3px}.border-b-2{border-bottom-width:2px}.border-b-4,.border-b-\[4px\]{border-bottom-width:4px}.border-r-8{border-right-width:8px}.border-t-4{border-top-width:4px}.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(0 0 0/var(--tw-border-opacity))}.border-secondary-100{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity))}.border-secondary-30{--tw-border-opacity:1;border-color:rgb(231 231 231/var(--tw-border-opacity))}.bg-main-100{--tw-bg-opacity:1;background-color:rgb(0 0 0/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(255 255 255/var(--tw-bg-opacity))}.bg-secondary-70{--tw-bg-opacity:1;background-color:rgb(245 245 245/var(--tw-bg-opacity))}.fill-main-100{fill:#000}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-10{padding:2.5rem}.p-12{padding:3rem}.p-2{padding:.5rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-0{padding-left:0;padding-right:0}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-12{padding-bottom:3rem;padding-top:3rem}.py-14{padding-bottom:3.5rem;padding-top:3.5rem}.py-20{padding-bottom:5rem;padding-top:5rem}.py-32{padding-bottom:8rem;padding-top:8rem}.py-48{padding-bottom:12rem;padding-top:12rem}.pb-10{padding-bottom:2.5rem}.pb-24{padding-bottom:6rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-5{padding-bottom:1.25rem}.pb-6{padding-bottom:1.5rem}.pb-9{padding-bottom:2.25rem}.pl-4{padding-left:1rem}.pr-11{padding-right:2.75rem}.pr-16{padding-right:4rem}.pr-8{padding-right:2rem}.pt-14{padding-top:3.5rem}.pt-2{padding-top:.5rem}.pt-6{padding-top:1.5rem}.text-center{text-align:center}.text-end{text-align:end}.font-\[\'Rubik_Glitch\'\]{font-family:Rubik Glitch}.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-5xl{font-size:3rem;line-height:1}.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}.font-black{font-weight:900}.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}.italic{font-style:italic}.leading-7{line-height:1.75rem}.leading-\[52px\]{line-height:52px}.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(0 0 0/var(--tw-text-opacity))}.text-main-70{--tw-text-opacity:1;color:rgb(61 61 61/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(255 255 255/var(--tw-text-opacity))}.text-secondary-30{--tw-text-opacity:1;color:rgb(231 231 231/var(--tw-text-opacity))}.underline{text-decoration-line:underline}.opacity-50{opacity:.5}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-main-100{--tw-shadow-color:#000;--tw-shadow:var(--tw-shadow-colored)}.brightness-0{--tw-brightness:brightness(0)}.brightness-0,.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)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.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}.after\:h-1:after{content:var(--tw-content);height:.25rem}.after\:h-1\.5:after{content:var(--tw-content);height:.375rem}.after\:w-full:after{content:var(--tw-content);width:100%}.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-main-100:after{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity));content:var(--tw-content)}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.first\:mt-0:first-child{margin-top:0}.first\:mt-36:first-child{margin-top:9rem}.hover\:bg-main-100:hover{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity))}.hover\:bg-main-70:hover{--tw-bg-opacity:1;background-color:rgb(61 61 61/var(--tw-bg-opacity))}.hover\:bg-secondary-100:hover{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.hover\:bg-secondary-30:hover{--tw-bg-opacity:1;background-color:rgb(231 231 231/var(--tw-bg-opacity))}.hover\:bg-secondary-70:hover{--tw-bg-opacity:1;background-color:rgb(245 245 245/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-100:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.hover\:outline-main-100:hover{outline-color:#000}.hover\:outline-secondary-100:hover{outline-color:#fff}.hover\:invert:hover{--tw-invert:invert(100%);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)}.disabled\:opacity-30:disabled{opacity:.3}@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-0{margin-bottom:0}.sm\:mt-0{margin-top:0}.sm\:inline{display:inline}.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:basis-2\/5{flex-basis:40%}.sm\:basis-3\/5{flex-basis:60%}.sm\:basis-5\/6{flex-basis:83.333333%}.sm\:flex-row{flex-direction:row}.sm\:items-stretch{align-items:stretch}.sm\:px-5{padding-left:1.25rem;padding-right:1.25rem}.sm\:pb-10{padding-bottom:2.5rem}.sm\:text-start{text-align:start}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-5xl{font-size:3rem;line-height:1}.sm\:text-6xl{font-size:3.75rem;line-height:1}.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\:m-12{margin:3rem}.md\:-my-2{margin-bottom:-.5rem;margin-top:-.5rem}.md\:mx-3{margin-left:.75rem;margin-right:.75rem}.md\:-ms-6{margin-inline-start:-1.5rem}.md\:block{display:block}.md\:flex{display:flex}.md\:w-1\/2{width:50%}.md\:w-\[400px\]{width:400px}.md\:basis-1\/3{flex-basis:33.333333%}.md\:basis-1\/4{flex-basis:25%}.md\:basis-3\/4{flex-basis:75%}.md\:basis-4\/6{flex-basis:66.666667%}.md\:basis-5\/6{flex-basis:83.333333%}.md\:basis-\[31\%\]{flex-basis:31%}.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\:columns-2{-moz-columns:2;column-count:2}.md\:flex-row{flex-direction:row}.md\:p-12{padding:3rem}.md\:px-40{padding-left:10rem;padding-right:10rem}.md\:px-7{padding-left:1.75rem;padding-right:1.75rem}.md\:py-24{padding-bottom:6rem;padding-top:6rem}.md\:pb-0{padding-bottom:0}.md\:pb-10{padding-bottom:2.5rem}.md\:pb-16{padding-bottom:4rem}.md\:pt-10{padding-top:2.5rem}.md\:text-start{text-align:start}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-6xl{font-size:3.75rem;line-height:1}.md\:leading-10{line-height:2.5rem}.md\:first\:mt-0:first-child{margin-top:0}.md\:last\:mb-0:last-child{margin-bottom:0}.md\:last\:flex:last-child{display:flex}.md\:odd\:ms-6:nth-child(odd){-webkit-margin-start:1.5rem;margin-inline-start:1.5rem}.md\:odd\:flex-row-reverse:nth-child(odd){flex-direction:row-reverse}.md\:even\:translate-x-full:nth-child(2n){--tw-translate-x:100%;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))}}@media (min-width:1024px){.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:h-full{height:100%}.lg\:w-1\/2{width:50%}.lg\:basis-1\/2{flex-basis:50%}.lg\:basis-2\/5{flex-basis:40%}.lg\:basis-4\/6{flex-basis:66.666667%}.lg\:flex-row{flex-direction:row}.lg\:justify-between{justify-content:space-between}.lg\:py-0{padding-bottom:0;padding-top:0}.lg\:text-start{text-align:start}}@media (min-width:1280px){.xl\:w-\[480px\]{width:480px}.xl\:basis-1\/3{flex-basis:33.333333%}.xl\:basis-2\/3{flex-basis:66.666667%}.xl\:basis-2\/5{flex-basis:40%}}@media (min-width:1900px){.\33xl\:w-\[576px\]{width:576px}.\33xl\:basis-1\/3{flex-basis:33.333333%}}@media (min-width:2200px){.\34xl\:basis-1\/4{flex-basis:25%}}*{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:Urbanist,Helvetica,Arial,sans-serif}div.single-post h3{font-size:1.875rem;font-weight:600;line-height:2.25rem;padding-bottom:2rem}div.single-post p{padding-bottom:3rem;text-align:justify;text-indent:2.5rem}div.single-post h4,div.single-post p{font-size:1.5rem;font-weight:500;line-height:2rem}div.single-post ul{padding-bottom:3rem;padding-left:1rem}div.single-post ul li{list-style-position:inside;list-style-type:disc}div.single-post ol{padding-bottom:.5rem;padding-left:1rem}div.single-post ol li{list-style-position:inside;list-style-type:decimal}div.single-post span.gatsby-resp-image-wrapper{margin:1.5rem!important;width:100%!important}div.single-post span.gatsby-resp-image-wrapper:nth-child(odd){float:left!important;margin-left:0!important}div.single-post span.gatsby-resp-image-wrapper:nth-child(2n){float:right!important;margin-right:0!important}@media (min-width:1024px){div.single-post span.gatsby-resp-image-wrapper{margin:3.5rem!important;width:50%!important}}div.single-post img{border-radius:1rem}div.single-post pre{--tw-bg-opacity:1;background-color:rgb(245 245 245/var(--tw-bg-opacity));font-size:1rem;line-height:1rem;padding:1.5rem;white-space:pre-wrap}div.service-preview{background:linear-gradient(#000 0 0) padding-box,linear-gradient(90deg,#fff 0 0) border-box}div.service-preview:hover{background:#000}div.service-preview p{padding-top:1.75rem}.gradient-border{background:linear-gradient(#fff 0 0) padding-box,linear-gradient(90deg,#fff,#000 50%,#fff) border-box}div.team-member:hover div.line{width:100%}div.applied-tech:hover div.line{height:100%}div.review-body p{padding-top:1.25rem}div.review-body p:first-child{padding-top:0}div.workflow-step:nth-child(odd) div.cover{left:-1.5rem}div.workflow-step:nth-child(2n) p.step-number{z-index:30}@media (min-width:768px){div.workflow-step:nth-child(2n) p.step-number{--tw-translate-x:-100%;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))}}div.why-us-card p{text-align:justify}div.why-us-card:hover div.line{height:100%}</style><style>.gatsby-image-wrapper{position:relative;overflow:hidden}.gatsby-image-wrapper picture.object-fit-polyfill{position:static!important}.gatsby-image-wrapper img{bottom:0;height:100%;left:0;margin:0;max-width:none;padding:0;position:absolute;right:0;top:0;width:100%;object-fit:cover}.gatsby-image-wrapper [data-main-image]{opacity:0;transform:translateZ(0);transition:opacity .25s linear;will-change:opacity}.gatsby-image-wrapper-constrained{display:inline-block;vertical-align:top}</style><noscript><style>.gatsby-image-wrapper noscript [data-main-image]{opacity:1!important}.gatsby-image-wrapper [data-placeholder-image]{opacity:0!important}</style></noscript><script type="module">const e="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;e&&document.body.addEventListener("load",(function(e){const t=e.target;if(void 0===t.dataset.mainImage)return;if(void 0===t.dataset.gatsbyImageSsr)return;let a=null,n=t;for(;null===a&&n;)void 0!==n.parentNode.dataset.gatsbyImageWrapper&&(a=n.parentNode),n=n.parentNode;const o=a.querySelector("[data-placeholder-image]"),r=new Image;r.src=t.currentSrc,r.decode().catch((()=>{})).then((()=>{t.style.opacity=1,o&&(o.style.opacity=0,o.style.transition="opacity 500ms linear")}))}),!0);</script><link rel="icon" href="/favicon-32x32.png?v=5756421ebf828bcb98a5197892727485" type="image/png"/><link rel="manifest" href="/manifest.webmanifest" crossorigin="anonymous"/><link rel="apple-touch-icon" sizes="48x48" href="/icons/icon-48x48.png?v=5756421ebf828bcb98a5197892727485"/><link rel="apple-touch-icon" sizes="72x72" href="/icons/icon-72x72.png?v=5756421ebf828bcb98a5197892727485"/><link rel="apple-touch-icon" sizes="96x96" href="/icons/icon-96x96.png?v=5756421ebf828bcb98a5197892727485"/><link rel="apple-touch-icon" sizes="144x144" href="/icons/icon-144x144.png?v=5756421ebf828bcb98a5197892727485"/><link rel="apple-touch-icon" sizes="192x192" href="/icons/icon-192x192.png?v=5756421ebf828bcb98a5197892727485"/><link rel="apple-touch-icon" sizes="256x256" href="/icons/icon-256x256.png?v=5756421ebf828bcb98a5197892727485"/><link rel="apple-touch-icon" sizes="384x384" href="/icons/icon-384x384.png?v=5756421ebf828bcb98a5197892727485"/><link rel="apple-touch-icon" sizes="512x512" href="/icons/icon-512x512.png?v=5756421ebf828bcb98a5197892727485"/><title data-gatsby-head="true">CodeCave Workflow</title></head><body><div id="___gatsby"><div style="outline:none" tabindex="-1" id="gatsby-focus-wrapper"><main class="min-h-screen" itemscope="" itemType="https://schema.org/LocalBusiness"><meta itemProp="sameAs" content="https://facebook.com/codecavepro"/><meta itemProp="sameAs" content="https://youtube.com/c/CodeCavePro"/><meta itemProp="sameAs" content="https://twitter.com/codecavepro"/><meta itemProp="sameAs" content="https://vk.com/codecavepro"/><meta itemProp="sameAs" content="https://github.com/CodeCavePro"/><meta itemProp="sameAs" content="https://instagram.com/codecave.pro"/><meta itemProp="sameAs" content="https://linkedin.com/company/codecavepro"/><meta itemProp="name" content="CodeCave"/><meta name="description" content="Outsourcing software and web development"/><meta property="og:image" content="/logo.svg"/><nav class="sticky top-0 z-50 bg-secondary-100 px-6"><div class="flex w-full max-w-7xl mx-auto undefined"><div class="w-full"><div class="mx-auto max-w-7xl w-full"><div class="relative flex h-20 items-center justify-between"><div class="relative inset-y-0 left-0 flex items-center lg:hidden"><button type="button" class="inline-flex items-center justify-center text-main-70 hover:bg-secondary-30" aria-controls="mobile-menu" aria-expanded="false"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 1024 1024" class="text-4xl " height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M904 160H120c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8zm0 624H120c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8zm0-312H120c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8z"></path></svg><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 1024 1024" class="text-4xl hidden" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M563.8 512l262.5-312.9c4.4-5.2.7-13.1-6.1-13.1h-79.8c-4.7 0-9.2 2.1-12.3 5.7L511.6 449.8 295.1 191.7c-3-3.6-7.5-5.7-12.3-5.7H203c-6.8 0-10.5 7.9-6.1 13.1L459.4 512 196.9 824.9A7.95 7.95 0 0 0 203 838h79.8c4.7 0 9.2-2.1 12.3-5.7l216.5-258.1 216.5 258.1c3 3.6 7.5 5.7 12.3 5.7h79.8c6.8 0 10.5-7.9 6.1-13.1L563.8 512z"></path></svg></button></div><div class="flex flex-1 items-center justify-center lg:justify-between"><a href="/"><svg class="w-64 object-contain" width="258" height="28" viewBox="0 0 258 28" fill="none"><path d="M67.3555 26.6954V8.61084V0.989258C67.3555 0.989258 80.9501 1.12298 86.0513 1.12298C87.7605 1.12298 89.4434 1.35697 91.0474 1.95868C93.7033 2.96152 95.3073 4.9672 95.5965 7.97572C95.9646 11.7865 95.9121 15.6642 95.6491 19.475C95.3598 23.7872 92.9407 26.2274 88.9438 26.6954H67.3555ZM75.3755 20.8789C76.3494 20.8789 77.3167 20.8844 78.2794 20.8899C80.67 20.9036 83.032 20.917 85.394 20.8455C86.8928 20.8121 87.8657 19.709 87.892 18.1044C87.9446 15.3633 87.9446 12.6222 87.892 9.88113C87.8657 8.37686 86.9454 7.24031 85.6043 7.20688C83.1844 7.13534 80.7644 7.14886 78.3254 7.16248C77.3456 7.16795 76.3627 7.17344 75.3755 7.17344V20.8789Z" fill="black"></path><path d="M67.3555 26.6954V8.61084V0.989258C67.3555 0.989258 80.9501 1.12298 86.0513 1.12298C87.7605 1.12298 89.4434 1.35697 91.0474 1.95868C93.7033 2.96152 95.3073 4.9672 95.5965 7.97572C95.9646 11.7865 95.9121 15.6642 95.6491 19.475C95.3598 23.7872 92.9407 26.2274 88.9438 26.6954H67.3555ZM75.3755 20.8789C76.3494 20.8789 77.3167 20.8844 78.2794 20.8899C80.67 20.9036 83.032 20.917 85.394 20.8455C86.8928 20.8121 87.8657 19.709 87.892 18.1044C87.9446 15.3633 87.9446 12.6222 87.892 9.88113C87.8657 8.37686 86.9454 7.24031 85.6043 7.20688C83.1844 7.13534 80.7644 7.14886 78.3254 7.16248C77.3456 7.16795 76.3627 7.17344 75.3755 7.17344V20.8789Z" stroke="url(#paint0_linear_805_210)"></path><path d="M37.7194 26.8624C36.2995 26.6284 35.0899 25.7593 34.0907 24.5559C33.7225 24.1213 33.4596 23.6868 33.3281 23.4193C32.8811 22.5836 32.6444 21.6142 32.5393 20.4442C32.1448 16.4663 32.2237 12.4884 32.4341 8.51042C32.697 3.73021 34.6429 1.45712 39.1394 1.18969C44.3984 0.888841 49.6837 0.721689 54.9428 1.32339C58.2823 1.72453 60.307 3.89735 60.5962 7.50758C60.9644 11.7864 60.9381 16.0986 60.5962 20.3774C60.4911 21.6811 60.2544 22.5836 59.9126 23.2522C59.9077 23.2584 59.8937 23.2842 59.8714 23.3256C59.7733 23.5069 59.514 23.9867 59.15 24.4222C57.7564 26.0602 55.4424 26.5616 54.8902 26.6284C52.0766 26.9961 46.5546 27.3638 37.7194 26.8624ZM52.9706 14.0929C52.9706 13.646 52.9736 13.2027 52.9765 12.7608C52.9823 11.8805 52.9881 11.0051 52.9706 10.115C52.918 8.24299 52.024 7.20673 50.2885 7.1733C47.7905 7.10644 45.2661 7.10644 42.7681 7.1733C41.0326 7.20673 40.1912 8.20957 40.1649 10.0147C40.1386 12.6555 40.1386 15.3297 40.1649 17.9706C40.1912 19.7422 41.0852 20.8119 42.7681 20.8454C45.3187 20.9122 47.8694 20.9122 50.42 20.8454C52.0503 20.8119 52.9443 19.7088 52.9706 17.9037C52.9882 17.0792 52.9823 16.2249 52.9765 15.3706C52.9736 14.9435 52.9706 14.5163 52.9706 14.0929Z" fill="black"></path><path d="M37.7194 26.8624C36.2995 26.6284 35.0899 25.7593 34.0907 24.5559C33.7225 24.1213 33.4596 23.6868 33.3281 23.4193C32.8811 22.5836 32.6444 21.6142 32.5393 20.4442C32.1448 16.4663 32.2237 12.4884 32.4341 8.51042C32.697 3.73021 34.6429 1.45712 39.1394 1.18969C44.3984 0.888841 49.6837 0.721689 54.9428 1.32339C58.2823 1.72453 60.307 3.89735 60.5962 7.50758C60.9644 11.7864 60.9381 16.0986 60.5962 20.3774C60.4911 21.6811 60.2544 22.5836 59.9126 23.2522C59.9077 23.2584 59.8937 23.2842 59.8714 23.3256C59.7733 23.5069 59.514 23.9867 59.15 24.4222C57.7564 26.0602 55.4424 26.5616 54.8902 26.6284C52.0766 26.9961 46.5546 27.3638 37.7194 26.8624ZM52.9706 14.0929C52.9706 13.646 52.9736 13.2027 52.9765 12.7608C52.9823 11.8805 52.9881 11.0051 52.9706 10.115C52.918 8.24299 52.024 7.20673 50.2885 7.1733C47.7905 7.10644 45.2661 7.10644 42.7681 7.1733C41.0326 7.20673 40.1912 8.20957 40.1649 10.0147C40.1386 12.6555 40.1386 15.3297 40.1649 17.9706C40.1912 19.7422 41.0852 20.8119 42.7681 20.8454C45.3187 20.9122 47.8694 20.9122 50.42 20.8454C52.0503 20.8119 52.9443 19.7088 52.9706 17.9037C52.9882 17.0792 52.9823 16.2249 52.9765 15.3706C52.9736 14.9435 52.9706 14.5163 52.9706 14.0929Z" stroke="url(#paint1_linear_805_210)"></path><path d="M253.421 20.8786C253.868 20.8786 254.184 20.9454 254.447 21.146C254.841 21.4134 254.999 21.9817 255.078 22.1154C255.367 22.9511 256.103 24.4888 257.287 26.929C257.076 26.929 256.892 26.929 256.761 26.929C256.603 26.929 238.012 26.929 228.967 26.929C228.967 26.7285 229.019 1.79116 229.019 1.18945C237.749 1.18945 246.4 1.18945 255.104 1.18945C255.104 3.12828 255.104 5.03367 255.104 7.07278C249.109 7.07278 242.982 7.07278 236.934 7.07278C236.934 7.67448 236.882 10.1147 236.882 10.683C241.431 10.683 245.875 10.683 250.371 10.683C250.371 12.7221 250.371 14.6275 250.371 16.6666C245.953 16.6666 241.51 16.6666 236.961 16.6666C236.961 18.104 236.961 19.508 236.961 20.8117" fill="black"></path><path d="M125.941 20.8786C126.388 20.8786 126.703 20.9454 126.966 21.146C127.361 21.4134 127.519 21.9817 127.597 22.1154C127.887 22.9511 128.623 24.4888 129.806 26.929C129.596 26.929 129.412 26.929 129.28 26.929C129.123 26.929 110.532 26.929 101.486 26.929C101.486 26.7285 101.539 1.79116 101.539 1.18945C110.269 1.18945 118.92 1.18945 127.624 1.18945C127.624 3.12828 127.624 5.03367 127.624 7.07278C121.628 7.07278 115.502 7.07278 109.454 7.07278C109.454 7.67448 109.401 10.1147 109.401 10.683C113.95 10.683 118.394 10.683 122.891 10.683C122.891 12.7221 122.891 14.6275 122.891 16.6666C118.473 16.6666 114.029 16.6666 109.48 16.6666C109.48 18.104 109.48 19.508 109.48 20.8117" fill="black"></path><path d="M101.486 26.929C101.513 20.0094 101.539 13.1233 101.539 6.20366C101.539 4.56569 101.539 2.92771 101.539 1.18945C110.269 1.18945 118.92 1.18945 127.65 1.18945C127.65 3.12828 127.65 5.0671 127.65 7.13964C121.602 7.13964 115.581 7.13964 109.506 7.13964C109.506 8.34305 109.506 9.41275 109.506 10.6496C113.924 10.6496 118.368 10.6496 122.891 10.6496C122.891 12.7221 122.891 14.661 122.891 16.7335C118.499 16.7335 114.055 16.7335 109.533 16.7335C109.533 18.1375 109.533 19.4412 109.533 20.7783C109.953 21.0457 110.453 20.912 110.9 20.912C115.949 20.912 121.024 20.9454 126.072 20.912C126.809 20.912 127.229 21.146 127.519 21.8814C128.123 23.4191 128.833 24.9234 129.438 26.3608C129.123 26.9625 128.492 26.3942 128.307 26.9625C119.341 26.929 110.427 26.929 101.486 26.929Z" fill="black"></path><path d="M162.52 26.9288C162.782 25.6585 163.466 24.5888 163.992 23.4857C167.253 16.399 170.566 9.34564 173.8 2.22547C174.195 1.35634 174.642 1.05548 175.536 1.0889C178.349 1.15576 181.163 1.12233 183.95 1.0889C184.529 1.0889 184.949 1.15576 185.265 1.82433C189.051 10.1145 192.89 18.3712 196.703 26.6279C196.73 26.6948 196.73 26.7951 196.756 26.8954C193.863 26.8954 190.971 26.8954 188.078 26.8954C187.526 25.5582 186.948 24.2546 186.448 22.9174C186.238 22.3492 185.896 22.2154 185.37 22.2154C181.557 22.2489 177.744 22.2489 173.932 22.2154C173.432 22.2154 173.064 22.3157 172.827 22.8506C172.249 24.2211 171.591 25.5248 170.96 26.8954C168.147 26.9288 165.333 26.9288 162.52 26.9288ZM179.848 6.87197C179.717 6.87197 179.533 6.87197 179.401 6.87197C178.086 9.94735 176.772 12.9893 175.43 16.1315C178.297 16.1315 180.979 16.1315 183.792 16.1315C182.425 12.9559 181.137 9.91393 179.848 6.87197Z" fill="black"></path><path d="M155.866 26.8957C150.37 26.8623 144.848 27.1966 139.352 26.9292C139.168 26.9292 138.984 26.8957 138.669 26.8289C138.511 26.7954 138.353 26.762 138.222 26.7286C137.275 26.4612 136.144 25.9597 135.04 24.6895C134.146 23.6198 133.594 22.4498 133.41 20.4775C133.041 16.5665 133.068 12.622 133.357 8.71089C133.699 3.89725 136.092 1.28986 140.562 1.18958C146.084 1.05587 151.843 1.05587 157.391 1.35672C158.127 1.39015 159.389 1.42358 159.232 2.02528C158.784 3.83039 158.39 5.60206 157.969 7.4406C153.683 7.4406 149.423 7.4406 145.19 7.4406C141.614 7.4406 141.114 7.97546 141.114 11.7528C141.114 13.7251 141.088 15.6973 141.14 17.6696C141.193 19.8424 141.956 20.6112 143.98 20.6447C148.582 20.6447 153.157 20.6781 157.759 20.6113C158.153 20.6113 158.469 20.6781 158.706 20.8118C159.047 21.0458 159.179 21.3801 159.232 21.5138C159.547 22.2158 160.31 25.2912 160.914 26.9626" fill="black"></path><path d="M194.18 1.12354C196.783 1.12354 199.412 1.12354 202.042 1.12354C202.647 1.12354 202.699 1.59152 202.831 1.99266C205.013 7.87599 207.59 13.6256 209.457 19.6761C209.536 19.9101 209.536 20.2444 209.852 20.3447C210.193 20.3447 210.193 20.0104 210.272 19.7764C212.087 13.6256 214.821 7.84257 217.057 1.89238C217.214 1.49124 217.319 1.15696 217.819 1.15696C220.396 1.19038 223.078 1.15696 225.734 1.15696C225.261 2.66122 224.735 3.53035 224.235 4.9009C221.211 12.1214 218.45 18.6733 215.347 25.6931C215.163 26.0943 215.032 26.5288 214.874 26.9634C211.561 26.9634 208.221 26.9634 204.908 26.9634C202.673 21.6483 200.412 16.2999 198.177 10.9848" fill="black"></path><path d="M23.4439 26.6953C17.9482 26.6619 12.4262 26.9962 6.93047 26.7288C6.7464 26.7288 6.56234 26.6953 6.24679 26.6285C6.08902 26.595 5.93126 26.5616 5.79978 26.5282C4.85315 26.2608 3.72246 25.7593 2.61806 24.4891C1.72402 23.4194 1.17182 22.2494 0.987753 20.2771C0.61962 16.3661 0.64592 12.4216 0.935167 8.51048C1.277 3.69684 3.66987 1.08945 8.14005 0.989167C13.662 0.855455 19.3944 0.822027 24.969 1.15631C25.7052 1.18974 26.9674 1.22316 26.8096 1.82487C26.3626 3.62998 25.9682 5.40167 25.5475 7.24021C21.2614 7.24021 17.0015 7.24021 12.768 7.24021C9.19186 7.24021 8.69225 7.77507 8.69225 11.5524C8.69225 13.5247 8.66596 15.4969 8.71855 17.4692C8.77114 19.642 9.5337 20.4109 11.5584 20.4443C16.1601 20.4443 20.7354 20.4777 25.3371 20.4109C25.7315 20.4109 26.0471 20.4777 26.2837 20.6114C26.6256 20.8454 26.7571 21.1797 26.8096 21.3134C27.1252 22.0154 27.8877 25.0908 28.4925 26.7622" fill="black"></path><defs><linearGradient id="paint0_linear_805_210" x1="81.6075" y1="0.989258" x2="81.6075" y2="26.6954" gradientUnits="userSpaceOnUse"><stop></stop><stop offset="1" stop-color="#B7B2F3" stop-opacity="0"></stop></linearGradient><linearGradient id="paint1_linear_805_210" x1="46.5612" y1="0.917969" x2="46.5612" y2="27.1068" gradientUnits="userSpaceOnUse"><stop></stop><stop offset="1" stop-color="#B7B2F3" stop-opacity="0"></stop></linearGradient></defs></svg></a><ul class="hidden lg:flex grow justify-evenly lg:basis-4/6" itemscope="" itemType="https://schema.org/SiteNavigationElement"><li class="mr-6"><a class="text-xl font-bold text-main-100 hover:text-main-10 false" href="/services/">SERVICES</a></li><li class="mr-6"><a aria-current="page" class="text-xl font-bold text-main-100 hover:text-main-10 false" href="/workflow/">WORKFLOW</a></li><li class="mr-6"><a class="text-xl font-bold text-main-100 hover:text-main-10 false" href="/projects/">PROJECTS</a></li><li class="mr-6"><a class="text-xl font-bold text-main-100 hover:text-main-10 false" href="/blog/">BLOG</a></li></ul></div><div class="relative"><button class="flex min-h-10 min-w-10 m-2 items-center justify-center px-3 text-sm h-10 bg-main-100 text-secondary-100 border-secondary-100 hover:bg-main-70 hover:outline-main-100 px-0 sm:px-5 md:px-7 text-xl font-bold whitespace-nowrap rounded-full mx-0"><span class="hidden sm:inline">CONTACT US</span><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" class="sm:hidden" height="20px" width="20px" xmlns="http://www.w3.org/2000/svg"><g><path fill="none" d="M0 0h24v24H0z"></path><path d="M7 2v20H3V2h4zm2 0h10.005C20.107 2 21 2.898 21 3.99v16.02c0 1.099-.893 1.99-1.995 1.99H9V2zm13 4h2v4h-2V6zm0 6h2v4h-2v-4zm-7 0a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm-3 4h6a3 3 0 0 0-6 0z"></path></g></svg></button><div class="absolute flex flex-col flex-nowrap w-full items-center align-center top-full left-0 z-50 mx-2 bg-secondary-100 py-1 shadow-lg shadow-main-100 hidden" role="menu" aria-orientation="vertical" aria-labelledby="user-menu-button" tabindex="-1" itemscope="" itemType="https://schema.org/ContactPoint" itemProp="contactPoint"><a href="mailto:info@codecave.pro" target="_blank" title="Email" itemProp="email"><button class="flex min-h-10 min-w-10 m-2 items-center justify-center px-3 text-sm h-10 bg-secondary-100 text-main-100 border-main-100 hover:bg-secondary-30 hover:outline-secondary-100 border border-solid undefined"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 1024 1024" height="20px" width="20px" xmlns="http://www.w3.org/2000/svg"><path d="M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 110.8V792H136V270.8l-27.6-21.5 39.3-50.5 42.8 33.3h643.1l42.8-33.3 39.3 50.5-27.7 21.5zM833.6 232L512 482 190.4 232l-42.8-33.3-39.3 50.5 27.6 21.5 341.6 265.6a55.99 55.99 0 0 0 68.7 0L888 270.8l27.6-21.5-39.3-50.5-42.7 33.2z"></path></svg></button></a><a href="https://t.me/salaros_com" target="_blank" title="Telegram" itemProp="contactOption"><button class="flex min-h-10 min-w-10 m-2 items-center justify-center px-3 text-sm h-10 bg-secondary-100 text-main-100 border-main-100 hover:bg-secondary-30 hover:outline-secondary-100 border border-solid undefined"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="20px" width="20px" xmlns="http://www.w3.org/2000/svg"><path d="M446.7 98.6l-67.6 318.8c-5.1 22.5-18.4 28.1-37.3 17.5l-103-75.9-49.7 47.8c-5.5 5.5-10.1 10.1-20.7 10.1l7.4-104.9 190.9-172.5c8.3-7.4-1.8-11.5-12.9-4.1L117.8 284 16.2 252.2c-22.1-6.9-22.5-22.1 4.6-32.7L418.2 66.4c18.4-6.9 34.5 4.1 28.5 32.2z"></path></svg></button></a><a href="https://wa.me/375292366125" target="_blank" title="Whatsapp" itemProp="contactOption"><button class="flex min-h-10 min-w-10 m-2 items-center justify-center px-3 text-sm h-10 bg-secondary-100 text-main-100 border-main-100 hover:bg-secondary-30 hover:outline-secondary-100 border border-solid undefined"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="20px" width="20px" xmlns="http://www.w3.org/2000/svg"><path d="M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z"></path></svg></button></a><a href="https://www.linkedin.com/signup/public-profile-join?vieweeVanityName=salaros" target="_blank" title="Linkedin" itemProp="contactOption"><button class="flex min-h-10 min-w-10 m-2 items-center justify-center px-3 text-sm h-10 bg-secondary-100 text-main-100 border-main-100 hover:bg-secondary-30 hover:outline-secondary-100 border border-solid undefined"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="20px" width="20px" xmlns="http://www.w3.org/2000/svg"><path d="M100.28 448H7.4V148.9h92.88zM53.79 108.1C24.09 108.1 0 83.5 0 53.8a53.79 53.79 0 0 1 107.58 0c0 29.7-24.1 54.3-53.79 54.3zM447.9 448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29 0-55.69 37.7-55.69 76.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5 42.69-48.3 87.88-48.3 94 0 111.28 61.9 111.28 142.3V448z"></path></svg></button></a><a href="https://gitter.im/CodeCavePro/Lobby" target="_blank" title="Gitter" itemProp="contactOption"><button class="flex min-h-10 min-w-10 m-2 items-center justify-center px-3 text-sm h-10 bg-secondary-100 text-main-100 border-main-100 hover:bg-secondary-30 hover:outline-secondary-100 border border-solid undefined"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 384 512" height="20px" width="20px" xmlns="http://www.w3.org/2000/svg"><path d="M66.4 322.5H16V0h50.4v322.5zM166.9 76.1h-50.4V512h50.4V76.1zm100.6 0h-50.4V512h50.4V76.1zM368 76h-50.4v247H368V76z"></path></svg></button></a></div></div></div></div><div class="lg:hidden hidden" id="mobile-menu"><ul class="space-y-1 px-2 pb-3 pt-2" itemscope="" itemType="https://schema.org/SiteNavigationElement"><li class="mr-6"><a class="text-xl font-bold text-main-100 hover:text-main-10 false" href="/services/">SERVICES</a></li><li class="mr-6"><a aria-current="page" class="text-xl font-bold text-main-100 hover:text-main-10 false" href="/workflow/">WORKFLOW</a></li><li class="mr-6"><a class="text-xl font-bold text-main-100 hover:text-main-10 false" href="/projects/">PROJECTS</a></li><li class="mr-6"><a class="text-xl font-bold text-main-100 hover:text-main-10 false" href="/blog/">BLOG</a></li></ul></div></div></div><div class="h-1 w-full bg-secondary-100 absolute bottom-0 left-0"><div class="h-full w-0 bg-main-100 transition-all ease-linear duration-300" style="width:0%"></div></div></nav><div class="w-full flex items-center bg-main-100 relative overflow-hidden px-6 h-136 undefined"><div class="flex w-full max-w-7xl mx-auto h-full flex flex-col lg:flex-row py-12 lg:py-0 items-center text-secondary-100 flex-grow"><div class="flex flex-col overflow-hidden items-left h-full justify-center text-secondary-100 h-full w-full lg:w-1/2 bg-main-100"><h2 class="overflow-hidden mb-8 w-full"><span class="inline-block font-['Rubik_Glitch'] text-5xl sm:text-6xl w-full text-center lg:text-start transition-all duration-1000 translate-y-full">HOW & WHY</span></h2><p class="overflow-hidden w-full"><span class="inline-block w-full text-3xl sm:text-4xl font-light text-center lg:text-start transition-all duration-1000 translate-y-full">SOLID REASONS TO CHOOSE US TO GO THROUGH APP DEV PROCESS</span></p></div></div></div><div class="bg-secondary-100"><div class="flex w-full max-w-7xl mx-auto flex-col items-start p-6 md:py-24 relative transition-all duration-1000"><div class="workflow-step relative md:w-1/2 flex flex-row items-center h-min my-20 first:mt-36 md:-my-2 md:first:mt-0 md:last:mb-0 text-secondary-100 z-10 md:z-0 md:even:translate-x-full md:odd:flex-row-reverse md:-ms-6 md:odd:ms-6"><div class="hidden md:block cover absolute -right-6 -top-2 -bottom-2 z-10 bg-secondary-100 transition-all duration-1000 w-[100%]"></div><p class="step-number absolute rounded-full h-12 w-12 flex items-center justify-center bg-main-100 text-secondary-100 font-extrabold text-2xl -translate-x-1/2 -translate-y-[120%] md:translate-x-full z-30 top-0 md:top-auto left-1/2 md:left-auto md:translate-y-0">1</p><svg class="hidden md:block basis-1/6" height="4"><line width="800" height="4" stroke="black" stroke-width="4" x1="0" x2="100%" y1="2" y2="2"></line></svg><div class="md:basis-5/6 flex flex-row justify-around h-min rounded-2xl p-10 bg-main-100 text-secondary-100"><img src="/static/05e07cea9f3c8cd67fcd982da2946957/binoculars.svg" alt="Discovering logo" class="basis-1/6 mr-7 invert"/><div class="flex flex-col pb-4 basis-4/6"><h4 class="font-extrabold text-2xl pb-6">Discovering</h4><div class="text-xl"><p>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.</p></div></div></div></div><div class="workflow-step relative md:w-1/2 flex flex-row items-center h-min my-20 first:mt-36 md:-my-2 md:first:mt-0 md:last:mb-0 text-secondary-100 z-10 md:z-0 md:even:translate-x-full md:odd:flex-row-reverse md:-ms-6 md:odd:ms-6"><div class="hidden md:block cover absolute -right-6 -top-2 -bottom-2 z-10 bg-secondary-100 transition-all duration-1000 w-[100%]"></div><p class="step-number absolute rounded-full h-12 w-12 flex items-center justify-center bg-main-100 text-secondary-100 font-extrabold text-2xl -translate-x-1/2 -translate-y-[120%] md:translate-x-full z-30 top-0 md:top-auto left-1/2 md:left-auto md:translate-y-0">2</p><svg class="hidden md:block basis-1/6" height="4"><line width="800" height="4" stroke="black" stroke-width="4" x1="0" x2="100%" y1="2" y2="2"></line></svg><div class="md:basis-5/6 flex flex-row justify-around h-min rounded-2xl p-10 bg-main-100 text-secondary-100"><img src="/static/f158d48996c15ce8ac41a45d698c552f/cpu.svg" alt="Brainstorming logo" class="basis-1/6 mr-7 invert"/><div class="flex flex-col pb-4 basis-4/6"><h4 class="font-extrabold text-2xl pb-6">Brainstorming</h4><div class="text-xl"><p>Using first-step information we'll take a deep dive into your target audience, needs and challenges of your business, customers, and desired technology.</p></div></div></div></div><div class="workflow-step relative md:w-1/2 flex flex-row items-center h-min my-20 first:mt-36 md:-my-2 md:first:mt-0 md:last:mb-0 text-secondary-100 z-10 md:z-0 md:even:translate-x-full md:odd:flex-row-reverse md:-ms-6 md:odd:ms-6"><div class="hidden md:block cover absolute -right-6 -top-2 -bottom-2 z-10 bg-secondary-100 transition-all duration-1000 w-[100%]"></div><p class="step-number absolute rounded-full h-12 w-12 flex items-center justify-center bg-main-100 text-secondary-100 font-extrabold text-2xl -translate-x-1/2 -translate-y-[120%] md:translate-x-full z-30 top-0 md:top-auto left-1/2 md:left-auto md:translate-y-0">3</p><svg class="hidden md:block basis-1/6" height="4"><line width="800" height="4" stroke="black" stroke-width="4" x1="0" x2="100%" y1="2" y2="2"></line></svg><div class="md:basis-5/6 flex flex-row justify-around h-min rounded-2xl p-10 bg-main-100 text-secondary-100"><img src="/static/ef3b40caa2dd84668da2e808613682d2/puzzle.svg" alt="Defining logo" class="basis-1/6 mr-7 invert"/><div class="flex flex-col pb-4 basis-4/6"><h4 class="font-extrabold text-2xl pb-6">Defining</h4><div class="text-xl"><p>We’ll quickly define your project roadmap, select the right tools and technologies. We’ll assemble your team and assign you a PM.</p></div></div></div></div><div class="workflow-step relative md:w-1/2 flex flex-row items-center h-min my-20 first:mt-36 md:-my-2 md:first:mt-0 md:last:mb-0 text-secondary-100 z-10 md:z-0 md:even:translate-x-full md:odd:flex-row-reverse md:-ms-6 md:odd:ms-6"><div class="hidden md:block cover absolute -right-6 -top-2 -bottom-2 z-10 bg-secondary-100 transition-all duration-1000 w-[100%]"></div><p class="step-number absolute rounded-full h-12 w-12 flex items-center justify-center bg-main-100 text-secondary-100 font-extrabold text-2xl -translate-x-1/2 -translate-y-[120%] md:translate-x-full z-30 top-0 md:top-auto left-1/2 md:left-auto md:translate-y-0">4</p><svg class="hidden md:block basis-1/6" height="4"><line width="800" height="4" stroke="black" stroke-width="4" x1="0" x2="100%" y1="2" y2="2"></line></svg><div class="md:basis-5/6 flex flex-row justify-around h-min rounded-2xl p-10 bg-main-100 text-secondary-100"><img src="/static/987d2f3a3273bb8af01cb9357fa75b4f/briefcase.svg" alt="Proposition logo" class="basis-1/6 mr-7 invert"/><div class="flex flex-col pb-4 basis-4/6"><h4 class="font-extrabold text-2xl pb-6">Proposition</h4><div class="text-xl"><p>Complete solution for your project will be proposed as soon as possible. Every effort will be made to reach an agreement on all issues.</p></div></div></div></div><div class="workflow-step relative md:w-1/2 flex flex-row items-center h-min my-20 first:mt-36 md:-my-2 md:first:mt-0 md:last:mb-0 text-secondary-100 z-10 md:z-0 md:even:translate-x-full md:odd:flex-row-reverse md:-ms-6 md:odd:ms-6"><div class="hidden md:block cover absolute -right-6 -top-2 -bottom-2 z-10 bg-secondary-100 transition-all duration-1000 w-[100%]"></div><p class="step-number absolute rounded-full h-12 w-12 flex items-center justify-center bg-main-100 text-secondary-100 font-extrabold text-2xl -translate-x-1/2 -translate-y-[120%] md:translate-x-full z-30 top-0 md:top-auto left-1/2 md:left-auto md:translate-y-0">5</p><svg class="hidden md:block basis-1/6" height="4"><line width="800" height="4" stroke="black" stroke-width="4" x1="0" x2="100%" y1="2" y2="2"></line></svg><div class="md:basis-5/6 flex flex-row justify-around h-min rounded-2xl p-10 bg-main-100 text-secondary-100"><img src="/static/1d86d2753a2e40365d1147287d61b287/terminal.svg" alt="Development logo" class="basis-1/6 mr-7 invert"/><div class="flex flex-col pb-4 basis-4/6"><h4 class="font-extrabold text-2xl pb-6">Development</h4><div class="text-xl"><p>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.</p></div></div></div></div><div class="workflow-step relative md:w-1/2 flex flex-row items-center h-min my-20 first:mt-36 md:-my-2 md:first:mt-0 md:last:mb-0 text-secondary-100 z-10 md:z-0 md:even:translate-x-full md:odd:flex-row-reverse md:-ms-6 md:odd:ms-6"><div class="hidden md:block cover absolute -right-6 -top-2 -bottom-2 z-10 bg-secondary-100 transition-all duration-1000 w-[100%]"></div><p class="step-number absolute rounded-full h-12 w-12 flex items-center justify-center bg-main-100 text-secondary-100 font-extrabold text-2xl -translate-x-1/2 -translate-y-[120%] md:translate-x-full z-30 top-0 md:top-auto left-1/2 md:left-auto md:translate-y-0">6</p><svg class="hidden md:block basis-1/6" height="4"><line width="800" height="4" stroke="black" stroke-width="4" x1="0" x2="100%" y1="2" y2="2"></line></svg><div class="md:basis-5/6 flex flex-row justify-around h-min rounded-2xl p-10 bg-main-100 text-secondary-100"><img src="/static/d0295e671f612ed8d6d6283929be4ef5/flag.svg" alt="Launch logo" class="basis-1/6 mr-7 invert"/><div class="flex flex-col pb-4 basis-4/6"><h4 class="font-extrabold text-2xl pb-6">Launch</h4><div class="text-xl"><p>Congratulations! Successfully released product and non-broken deadlines are irrefutable evidence of your right desicion to choose CodeCave as your partner.</p></div></div></div></div><div class="workflow-step relative md:w-1/2 flex flex-row items-center h-min my-20 first:mt-36 md:-my-2 md:first:mt-0 md:last:mb-0 text-secondary-100 z-10 md:z-0 md:even:translate-x-full md:odd:flex-row-reverse md:-ms-6 md:odd:ms-6"><div class="hidden md:block cover absolute -right-6 -top-2 -bottom-2 z-10 bg-secondary-100 transition-all duration-1000 w-[100%]"></div><p class="step-number absolute rounded-full h-12 w-12 flex items-center justify-center bg-main-100 text-secondary-100 font-extrabold text-2xl -translate-x-1/2 -translate-y-[120%] md:translate-x-full z-30 top-0 md:top-auto left-1/2 md:left-auto md:translate-y-0">7</p><svg class="hidden md:block basis-1/6" height="4"><line width="800" height="4" stroke="black" stroke-width="4" x1="0" x2="100%" y1="2" y2="2"></line></svg><div class="md:basis-5/6 flex flex-row justify-around h-min rounded-2xl p-10 bg-main-100 text-secondary-100"><img src="/static/2e75bdce8a42097c6a1866f6a621e7b2/tools.svg" alt="Maintenance logo" class="basis-1/6 mr-7 invert"/><div class="flex flex-col pb-4 basis-4/6"><h4 class="font-extrabold text-2xl pb-6">Maintenance</h4><div class="text-xl"><p>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.</p></div></div></div></div><div class="absolute left-1/2 top-0 bottom-0 border-r-8 border-solid border main-100 -translate-x-1/2"></div></div><section class="w-full py-48 px-6 bg-main-100 text-secondary-100 py-32"><div class="flex w-full max-w-7xl mx-auto flex-col items-center"><div class="flex justify-between w-full items-center pb-10 md:pb-16"><h3 class="text-4xl md:text-5xl font-black w-full max-w-7xl mx-auto pr-8">WHY US</h3></div><div class="flex flex-wrap flex-col sm:flex-row justify-around items-stretch"><div class="why-us-card relative flex flex-col basis-5/12 text-secondary-100 p-10 cursor-pointer undefined"><h6 class="text-center w-full text-2xl font-bold pb-6">Consistency and standards</h6><div class="text-xl"><p>No surprises! We are consistent and have many time-tested techniques at our disposal</p></div><div class="line w-1 h-0 bg-secondary-100 absolute top-1/2 left-0 -translate-y-1/2 transition-all duration-500"></div></div><div class="why-us-card relative flex flex-col basis-5/12 text-secondary-100 p-10 cursor-pointer undefined"><h6 class="text-center w-full text-2xl font-bold pb-6">Relationships</h6><div class="text-xl"><p>The relationship with our customer is transparent. Mutual trust and straightforward communication are the key</p></div><div class="line w-1 h-0 bg-secondary-100 absolute top-1/2 left-0 -translate-y-1/2 transition-all duration-500"></div></div><div class="why-us-card relative flex flex-col basis-5/12 text-secondary-100 p-10 cursor-pointer undefined"><h6 class="text-center w-full text-2xl font-bold pb-6">Team efficiency = cost efficiency</h6><div class="text-xl"><p>We know how to assemble the perfect team to protect you from paying extra</p></div><div class="line w-1 h-0 bg-secondary-100 absolute top-1/2 left-0 -translate-y-1/2 transition-all duration-500"></div></div><div class="why-us-card relative flex flex-col basis-5/12 text-secondary-100 p-10 cursor-pointer undefined"><h6 class="text-center w-full text-2xl font-bold pb-6">Flexibility</h6><div class="text-xl"><p>We're ready to face new challenges at any stage of the project</p></div><div class="line w-1 h-0 bg-secondary-100 absolute top-1/2 left-0 -translate-y-1/2 transition-all duration-500"></div></div><div class="why-us-card relative flex flex-col basis-5/12 text-secondary-100 p-10 cursor-pointer undefined"><h6 class="text-center w-full text-2xl font-bold pb-6">Responsible development</h6><div class="text-xl"><p>Our light and clear coding helps us to escape unbreakable loops of re-development</p></div><div class="line w-1 h-0 bg-secondary-100 absolute top-1/2 left-0 -translate-y-1/2 transition-all duration-500"></div></div><div class="why-us-card relative flex flex-col basis-5/12 text-secondary-100 p-10 cursor-pointer undefined"><h6 class="text-center w-full text-2xl font-bold pb-6">Curious minds</h6><div class="text-xl"><p>We're constantly keeping an eye on tech advancements and possible ways to implement it in our work</p></div><div class="line w-1 h-0 bg-secondary-100 absolute top-1/2 left-0 -translate-y-1/2 transition-all duration-500"></div></div></div></div></section></div><footer class="bg-main-100 border-t-4 border-secondary-100 border-solid p-4"><div class="flex w-full max-w-7xl mx-auto min-h-[8.5rem]"><nav class="w-full flex items-center flex-col md:flex-row"><a class="flex flex-1 items-center justify-start basis-1/4" href="/"><svg width="226" height="23" viewBox="0 0 226 23" fill="none"><path d="M58.4727 22.6392V6.77134V0.0839844C58.4727 0.0839844 70.4009 0.201314 74.8769 0.201314C76.3765 0.201314 77.8531 0.406627 79.2605 0.934577C81.5908 1.81449 82.9982 3.57432 83.252 6.21407C83.575 9.55775 83.5289 12.9601 83.2981 16.3038C83.0443 20.0874 80.9217 22.2285 77.4148 22.6392H58.4727ZM65.5096 17.5357C66.3641 17.5357 67.2129 17.5405 68.0576 17.5453C70.1551 17.5572 72.2276 17.5691 74.3001 17.5063C75.6152 17.477 76.4688 16.5091 76.4919 15.1012C76.538 12.6961 76.538 10.291 76.4919 7.88592C76.4688 6.56604 75.6613 5.5688 74.4846 5.53947C72.3613 5.4767 70.238 5.48856 68.0979 5.50051C67.2382 5.50532 66.3758 5.51013 65.5096 5.51013V17.5357Z" fill="#F7F7F7"></path><path d="M58.4727 22.6392V6.77134V0.0839844C58.4727 0.0839844 70.4009 0.201314 74.8769 0.201314C76.3765 0.201314 77.8531 0.406627 79.2605 0.934577C81.5908 1.81449 82.9982 3.57432 83.252 6.21407C83.575 9.55775 83.5289 12.9601 83.2981 16.3038C83.0443 20.0874 80.9217 22.2285 77.4148 22.6392H58.4727ZM65.5096 17.5357C66.3641 17.5357 67.2129 17.5405 68.0576 17.5453C70.1551 17.5572 72.2276 17.5691 74.3001 17.5063C75.6152 17.477 76.4688 16.5091 76.4919 15.1012C76.538 12.6961 76.538 10.291 76.4919 7.88592C76.4688 6.56604 75.6613 5.5688 74.4846 5.53947C72.3613 5.4767 70.238 5.48856 68.0979 5.50051C67.2382 5.50532 66.3758 5.51013 65.5096 5.51013V17.5357Z" stroke="url(#paint0_linear_807_267)"></path><path d="M32.4682 22.7858C31.2223 22.5804 30.161 21.8178 29.2842 20.7619C28.9612 20.3806 28.7305 19.9994 28.6151 19.7647C28.2229 19.0314 28.0153 18.1809 27.923 17.1543C27.5769 13.664 27.6461 10.1736 27.8307 6.68328C28.0614 2.48901 29.7687 0.494546 33.714 0.259902C38.3285 -0.00407292 42.9659 -0.150736 47.5803 0.377213C50.5105 0.72918 52.287 2.63566 52.5408 5.80336C52.8638 9.55767 52.8408 13.3413 52.5408 17.0956C52.4485 18.2395 52.2409 19.0314 51.941 19.6181C51.9367 19.6235 51.9244 19.6462 51.9048 19.6825C51.8188 19.8416 51.5912 20.2626 51.2719 20.6446C50.049 22.0818 48.0187 22.5218 47.5342 22.5804C45.0655 22.9031 40.2204 23.2257 32.4682 22.7858ZM45.8499 11.5815C45.8499 11.1893 45.8525 10.8004 45.8551 10.4126C45.8602 9.64026 45.8653 8.8722 45.8499 8.09114C45.8038 6.44863 45.0193 5.53939 43.4966 5.51006C41.3047 5.4514 39.0898 5.4514 36.898 5.51006C35.3752 5.53939 34.6369 6.4193 34.6139 8.00315C34.5908 10.3203 34.5908 12.6667 34.6139 14.9838C34.6369 16.5383 35.4214 17.4769 36.898 17.5063C39.136 17.5649 41.374 17.5649 43.6119 17.5063C45.0424 17.4769 45.8269 16.509 45.8499 14.9252C45.8653 14.2017 45.8602 13.4521 45.8551 12.7026C45.8525 12.3278 45.8499 11.953 45.8499 11.5815Z" fill="#F7F7F7"></path><path d="M32.4682 22.7858C31.2223 22.5804 30.161 21.8178 29.2842 20.7619C28.9612 20.3806 28.7305 19.9994 28.6151 19.7647C28.2229 19.0314 28.0153 18.1809 27.923 17.1543C27.5769 13.664 27.6461 10.1736 27.8307 6.68328C28.0614 2.48901 29.7687 0.494546 33.714 0.259902C38.3285 -0.00407292 42.9659 -0.150736 47.5803 0.377213C50.5105 0.72918 52.287 2.63566 52.5408 5.80336C52.8638 9.55767 52.8408 13.3413 52.5408 17.0956C52.4485 18.2395 52.2409 19.0314 51.941 19.6181C51.9367 19.6235 51.9244 19.6462 51.9048 19.6825C51.8188 19.8416 51.5912 20.2626 51.2719 20.6446C50.049 22.0818 48.0187 22.5218 47.5342 22.5804C45.0655 22.9031 40.2204 23.2257 32.4682 22.7858ZM45.8499 11.5815C45.8499 11.1893 45.8525 10.8004 45.8551 10.4126C45.8602 9.64026 45.8653 8.8722 45.8499 8.09114C45.8038 6.44863 45.0193 5.53939 43.4966 5.51006C41.3047 5.4514 39.0898 5.4514 36.898 5.51006C35.3752 5.53939 34.6369 6.4193 34.6139 8.00315C34.5908 10.3203 34.5908 12.6667 34.6139 14.9838C34.6369 16.5383 35.4214 17.4769 36.898 17.5063C39.136 17.5649 41.374 17.5649 43.6119 17.5063C45.0424 17.4769 45.8269 16.509 45.8499 14.9252C45.8653 14.2017 45.8602 13.4521 45.8551 12.7026C45.8525 12.3278 45.8499 11.953 45.8499 11.5815Z" stroke="url(#paint1_linear_807_267)"></path><path d="M221.73 17.5354C222.123 17.5354 222.399 17.5941 222.63 17.7701C222.976 18.0047 223.115 18.5034 223.184 18.6207C223.438 19.3539 224.084 20.7031 225.122 22.8443C224.937 22.8443 224.776 22.8443 224.661 22.8443C224.522 22.8443 208.21 22.8443 200.273 22.8443C200.273 22.6683 200.32 0.787715 200.32 0.259766C207.979 0.259766 215.57 0.259766 223.207 0.259766C223.207 1.96094 223.207 3.63277 223.207 5.42193C217.947 5.42193 212.571 5.42193 207.264 5.42193C207.264 5.94988 207.218 8.09101 207.218 8.58963C211.21 8.58963 215.109 8.58963 219.054 8.58963C219.054 10.3788 219.054 12.0506 219.054 13.8398C215.178 13.8398 211.279 13.8398 207.287 13.8398C207.287 15.101 207.287 16.3329 207.287 17.4768" fill="#F7F7F7"></path><path d="M109.877 17.5354C110.269 17.5354 110.546 17.5941 110.777 17.7701C111.123 18.0047 111.261 18.5034 111.33 18.6207C111.584 19.3539 112.23 20.7031 113.268 22.8443C113.084 22.8443 112.922 22.8443 112.807 22.8443C112.669 22.8443 96.3567 22.8443 88.4199 22.8443C88.4199 22.6683 88.4661 0.787715 88.4661 0.259766C96.126 0.259766 103.717 0.259766 111.354 0.259766C111.354 1.96094 111.354 3.63277 111.354 5.42193C106.093 5.42193 100.717 5.42193 95.4107 5.42193C95.4107 5.94988 95.3646 8.09101 95.3646 8.58963C99.3561 8.58963 103.255 8.58963 107.201 8.58963C107.201 10.3788 107.201 12.0506 107.201 13.8398C103.324 13.8398 99.4253 13.8398 95.4338 13.8398C95.4338 15.101 95.4338 16.3329 95.4338 17.4768" fill="#F7F7F7"></path><path d="M88.4199 22.8443C88.443 16.7729 88.4661 10.7308 88.4661 4.65935C88.4661 3.22215 88.4661 1.78495 88.4661 0.259766C96.126 0.259766 103.717 0.259766 111.377 0.259766C111.377 1.96094 111.377 3.6621 111.377 5.4806C106.07 5.4806 100.787 5.4806 95.4569 5.4806C95.4569 6.5365 95.4569 7.47507 95.4569 8.5603C99.333 8.5603 103.232 8.5603 107.201 8.5603C107.201 10.3788 107.201 12.08 107.201 13.8985C103.348 13.8985 99.4483 13.8985 95.48 13.8985C95.48 15.1303 95.48 16.2742 95.48 17.4475C95.8491 17.6821 96.2875 17.5648 96.6797 17.5648C101.11 17.5648 105.562 17.5941 109.992 17.5648C110.638 17.5648 111.007 17.7701 111.261 18.4154C111.792 19.7646 112.415 21.0844 112.945 22.3457C112.669 22.8736 112.115 22.375 111.953 22.8736C104.086 22.8443 96.2644 22.8443 88.4199 22.8443Z" fill="#F7F7F7"></path><path d="M141.971 22.8441C142.201 21.7296 142.801 20.791 143.263 19.8231C146.124 13.605 149.031 7.41626 151.869 1.16885C152.215 0.40626 152.607 0.142278 153.391 0.171608C155.86 0.230269 158.329 0.200939 160.774 0.171608C161.282 0.171608 161.651 0.230273 161.928 0.816884C165.25 8.09086 168.619 15.3355 171.964 22.5802C171.987 22.6388 171.987 22.7268 172.01 22.8148C169.473 22.8148 166.935 22.8148 164.397 22.8148C163.912 21.6416 163.405 20.4977 162.966 19.3245C162.782 18.8259 162.482 18.7085 162.02 18.7085C158.675 18.7378 155.329 18.7378 151.984 18.7085C151.546 18.7085 151.223 18.7965 151.015 19.2658C150.507 20.4684 149.931 21.6122 149.377 22.8148C146.908 22.8441 144.439 22.8441 141.971 22.8441ZM157.175 5.24581C157.06 5.24581 156.898 5.24581 156.783 5.24581C155.629 7.94422 154.476 10.6133 153.299 13.3704C155.814 13.3704 158.167 13.3704 160.636 13.3704C159.436 10.584 158.306 7.91489 157.175 5.24581Z" fill="#F7F7F7"></path><path d="M136.132 22.8148C131.31 22.7855 126.465 23.0788 121.643 22.8442C121.482 22.8442 121.32 22.8148 121.043 22.7562C120.905 22.7268 120.766 22.6975 120.651 22.6682C119.82 22.4335 118.828 21.9936 117.859 20.879C117.075 19.9404 116.59 18.9139 116.429 17.1834C116.106 13.7517 116.129 10.2907 116.383 6.85902C116.683 2.63543 118.782 0.347648 122.704 0.259656C127.55 0.142334 132.602 0.142334 137.471 0.406309C138.117 0.43564 139.224 0.46497 139.086 0.99292C138.693 2.57677 138.347 4.13127 137.978 5.74445C134.217 5.74445 130.48 5.74445 126.765 5.74445C123.627 5.74445 123.189 6.21375 123.189 9.5281C123.189 11.2586 123.166 12.9891 123.212 14.7196C123.258 16.6261 123.927 17.3007 125.704 17.33C129.741 17.33 133.756 17.3593 137.794 17.3007C138.14 17.3007 138.417 17.3593 138.624 17.4767C138.924 17.682 139.039 17.9753 139.086 18.0926C139.362 18.7086 140.032 21.407 140.562 22.8735" fill="#F7F7F7"></path><path d="M169.75 0.20166C172.034 0.20166 174.341 0.20166 176.649 0.20166C177.179 0.20166 177.225 0.61228 177.341 0.964247C179.256 6.12642 181.517 11.1713 183.155 16.4801C183.224 16.6854 183.224 16.9787 183.501 17.0667C183.801 17.0667 183.801 16.7734 183.87 16.5681C185.462 11.1713 187.862 6.09709 189.823 0.876259C189.961 0.524292 190.053 0.230984 190.492 0.230984C192.753 0.260314 195.106 0.230984 197.436 0.230984C197.021 1.55086 196.56 2.31346 196.121 3.51601C193.468 9.8514 191.045 15.6002 188.323 21.7596C188.161 22.1116 188.046 22.4929 187.908 22.8742C185.001 22.8742 182.07 22.8742 179.163 22.8742C177.202 18.2106 175.218 13.5177 173.257 8.85417" fill="#F7F7F7"></path><path d="M19.943 22.6391C15.1209 22.6098 10.2758 22.903 5.45373 22.6684C5.29223 22.6684 5.13072 22.6391 4.85386 22.5804C4.71543 22.5511 4.577 22.5218 4.46164 22.4924C3.63105 22.2578 2.63895 21.8178 1.66992 20.7033C0.885476 19.7647 0.400961 18.7381 0.239457 17.0076C-0.0835516 13.5759 -0.0604754 10.1149 0.193317 6.68326C0.493253 2.45967 2.59281 0.171884 6.51505 0.0838927C11.3602 -0.0334294 16.3899 -0.0627599 21.2811 0.230545C21.9272 0.259876 23.0346 0.289206 22.8962 0.817156C22.504 2.401 22.1579 3.95553 21.7887 5.56871C18.028 5.56871 14.2903 5.56871 10.5757 5.56871C7.43793 5.56871 6.99956 6.038 6.99956 9.35235C6.99956 11.0829 6.97649 12.8133 7.02264 14.5438C7.06878 16.4503 7.73787 17.1249 9.51441 17.1543C13.552 17.1543 17.5665 17.1836 21.6041 17.1249C21.9502 17.1249 22.2271 17.1836 22.4347 17.3009C22.7347 17.5062 22.85 17.7995 22.8962 17.9169C23.173 18.5328 23.8421 21.2312 24.3728 22.6977" fill="#F7F7F7"></path><defs><linearGradient id="paint0_linear_807_267" x1="70.9777" y1="0.0839844" x2="70.9777" y2="22.6392" gradientUnits="userSpaceOnUse"><stop></stop><stop offset="1" stop-color="#B7B2F3" stop-opacity="0"></stop></linearGradient><linearGradient id="paint1_linear_807_267" x1="40.2261" y1="0.0214844" x2="40.2261" y2="23.0002" gradientUnits="userSpaceOnUse"><stop></stop><stop offset="1" stop-color="#B7B2F3" stop-opacity="0"></stop></linearGradient></defs></svg></a><ul class="flex justify-center flex-wrap shrink basis-1/3"><li class="p-2 w-max"><a class="text-xl text-secondary-30 underline" href="/services/">SERVICES</a></li><li class="p-2 w-max"><a aria-current="page" class="text-xl text-secondary-30 underline" href="/workflow/">WORKFLOW</a></li><li class="p-2 w-max"><a class="text-xl text-secondary-30 underline" href="/projects/">PROJECTS</a></li><li class="p-2 w-max"><a class="text-xl text-secondary-30 underline" href="/blog/">BLOG</a></li></ul><div class="flex flex-wrap shrink basis-1/3 justify-center" itemscope="" itemType="https://schema.org/ContactPoint" itemProp="contactPoint"><a href="mailto:info@codecave.pro" target="_blank" title="Email" itemProp="email"><button class="flex min-h-10 min-w-10 m-2 items-center justify-center px-3 text-sm h-10 bg-secondary-100 text-main-100 border-main-100 hover:bg-secondary-30 hover:outline-secondary-100 border border-solid undefined"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 1024 1024" height="20px" width="20px" xmlns="http://www.w3.org/2000/svg"><path d="M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 110.8V792H136V270.8l-27.6-21.5 39.3-50.5 42.8 33.3h643.1l42.8-33.3 39.3 50.5-27.7 21.5zM833.6 232L512 482 190.4 232l-42.8-33.3-39.3 50.5 27.6 21.5 341.6 265.6a55.99 55.99 0 0 0 68.7 0L888 270.8l27.6-21.5-39.3-50.5-42.7 33.2z"></path></svg></button></a><a href="https://t.me/salaros_com" target="_blank" title="Telegram" itemProp="contactOption"><button class="flex min-h-10 min-w-10 m-2 items-center justify-center px-3 text-sm h-10 bg-secondary-100 text-main-100 border-main-100 hover:bg-secondary-30 hover:outline-secondary-100 border border-solid undefined"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="20px" width="20px" xmlns="http://www.w3.org/2000/svg"><path d="M446.7 98.6l-67.6 318.8c-5.1 22.5-18.4 28.1-37.3 17.5l-103-75.9-49.7 47.8c-5.5 5.5-10.1 10.1-20.7 10.1l7.4-104.9 190.9-172.5c8.3-7.4-1.8-11.5-12.9-4.1L117.8 284 16.2 252.2c-22.1-6.9-22.5-22.1 4.6-32.7L418.2 66.4c18.4-6.9 34.5 4.1 28.5 32.2z"></path></svg></button></a><a href="https://wa.me/375292366125" target="_blank" title="Whatsapp" itemProp="contactOption"><button class="flex min-h-10 min-w-10 m-2 items-center justify-center px-3 text-sm h-10 bg-secondary-100 text-main-100 border-main-100 hover:bg-secondary-30 hover:outline-secondary-100 border border-solid undefined"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="20px" width="20px" xmlns="http://www.w3.org/2000/svg"><path d="M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z"></path></svg></button></a><a href="https://www.linkedin.com/signup/public-profile-join?vieweeVanityName=salaros" target="_blank" title="Linkedin" itemProp="contactOption"><button class="flex min-h-10 min-w-10 m-2 items-center justify-center px-3 text-sm h-10 bg-secondary-100 text-main-100 border-main-100 hover:bg-secondary-30 hover:outline-secondary-100 border border-solid undefined"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="20px" width="20px" xmlns="http://www.w3.org/2000/svg"><path d="M100.28 448H7.4V148.9h92.88zM53.79 108.1C24.09 108.1 0 83.5 0 53.8a53.79 53.79 0 0 1 107.58 0c0 29.7-24.1 54.3-53.79 54.3zM447.9 448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29 0-55.69 37.7-55.69 76.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5 42.69-48.3 87.88-48.3 94 0 111.28 61.9 111.28 142.3V448z"></path></svg></button></a><a href="https://gitter.im/CodeCavePro/Lobby" target="_blank" title="Gitter" itemProp="contactOption"><button class="flex min-h-10 min-w-10 m-2 items-center justify-center px-3 text-sm h-10 bg-secondary-100 text-main-100 border-main-100 hover:bg-secondary-30 hover:outline-secondary-100 border border-solid undefined"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 384 512" height="20px" width="20px" xmlns="http://www.w3.org/2000/svg"><path d="M66.4 322.5H16V0h50.4v322.5zM166.9 76.1h-50.4V512h50.4V76.1zm100.6 0h-50.4V512h50.4V76.1zM368 76h-50.4v247H368V76z"></path></svg></button></a></div></nav></div></footer></main></div><div id="gatsby-announcer" style="position:absolute;top:0;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0" aria-live="assertive" aria-atomic="true"></div></div><script id="gatsby-script-loader">/*<![CDATA[*/window.pagePath="/workflow/";/*]]>*/</script><!-- slice-start id="_gatsby-scripts-1" --> <script id="gatsby-chunk-mapping" > - window.___chunkMapping="{\"app\":[\"/app-0be32afa8722358651ed.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-985104a1d001afc81f25.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-8f11132d55ccda45c143.js\"],\"component---src-pages-services-tsx\":[\"/component---src-pages-services-tsx-ad089d9c65e0d5421453.js\"],\"component---src-pages-templates-blog-tsx\":[\"/component---src-pages-templates-blog-tsx-3e928f3e8cb34f3b7e4c.js\"],\"component---src-pages-templates-post-tsx\":[\"/component---src-pages-templates-post-tsx-f2b5783ab45f7133a802.js\"],\"component---src-pages-templates-project-tsx\":[\"/component---src-pages-templates-project-tsx-808e529df29d8bdea686.js\"],\"component---src-pages-templates-projects-tsx\":[\"/component---src-pages-templates-projects-tsx-bc2345c3e66bde0622dc.js\"],\"component---src-pages-workflow-tsx\":[\"/component---src-pages-workflow-tsx-66c85385336912fb7c37.js\"]}"; + window.___chunkMapping="{\"app\":[\"/app-0be32afa8722358651ed.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-985104a1d001afc81f25.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-51c4d6c78f0455be8e64.js\"],\"component---src-pages-services-tsx\":[\"/component---src-pages-services-tsx-004b5c906bc78a1f96ae.js\"],\"component---src-pages-templates-blog-tsx\":[\"/component---src-pages-templates-blog-tsx-2739ab3251f03f4eb07f.js\"],\"component---src-pages-templates-post-tsx\":[\"/component---src-pages-templates-post-tsx-7f7e2c93fcb41ce4f82f.js\"],\"component---src-pages-templates-project-tsx\":[\"/component---src-pages-templates-project-tsx-808e529df29d8bdea686.js\"],\"component---src-pages-templates-projects-tsx\":[\"/component---src-pages-templates-projects-tsx-75dd824378dedee3ee1b.js\"],\"component---src-pages-workflow-tsx\":[\"/component---src-pages-workflow-tsx-71ff73d9d1233d63de8e.js\"]}"; </script> - <script>window.___webpackCompilationHash="2552ca4b597845d70de8";</script><script src="/webpack-runtime-9d58aaf54df1d848a0ab.js" async></script><script src="/framework-e4f3e98283dd6d5d8e77.js" async></script><script src="/app-0be32afa8722358651ed.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html> \ No newline at end of file + <script>window.___webpackCompilationHash="2282541953a94831106d";</script><script src="/webpack-runtime-462cd70edcbbeae08639.js" async></script><script src="/framework-e4f3e98283dd6d5d8e77.js" async></script><script src="/app-0be32afa8722358651ed.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html> \ No newline at end of file