diff --git a/404.html b/404.html index fb888c8c..7bab692b 100644 --- a/404.html +++ b/404.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/404/index.html b/404/index.html index 07477283..fcb088cf 100644 --- a/404/index.html +++ b/404/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/_gatsby/slices/_gatsby-scripts-1.html b/_gatsby/slices/_gatsby-scripts-1.html index bb10610e..21d798de 100644 --- a/_gatsby/slices/_gatsby-scripts-1.html +++ b/_gatsby/slices/_gatsby-scripts-1.html @@ -2,6 +2,6 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/blog/10582553-73a2-569f-8bdd-980e1f77c10a/index.html b/blog/10582553-73a2-569f-8bdd-980e1f77c10a/index.html index f75ceeb6..b2dbf06c 100644 --- a/blog/10582553-73a2-569f-8bdd-980e1f77c10a/index.html +++ b/blog/10582553-73a2-569f-8bdd-980e1f77c10a/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/1f201db1-7d1d-5ef0-b138-fe7b3dc57ba8/index.html b/blog/1f201db1-7d1d-5ef0-b138-fe7b3dc57ba8/index.html index 372ed027..9035faea 100644 --- a/blog/1f201db1-7d1d-5ef0-b138-fe7b3dc57ba8/index.html +++ b/blog/1f201db1-7d1d-5ef0-b138-fe7b3dc57ba8/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/45775c6a-7cd8-5018-9047-afbec09abf59/index.html b/blog/45775c6a-7cd8-5018-9047-afbec09abf59/index.html index 75bb19b0..f423afbc 100644 --- a/blog/45775c6a-7cd8-5018-9047-afbec09abf59/index.html +++ b/blog/45775c6a-7cd8-5018-9047-afbec09abf59/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/6a129001-a171-5d7e-9555-a943ae9d624f/index.html b/blog/6a129001-a171-5d7e-9555-a943ae9d624f/index.html index f3c9d28f..b3e7600d 100644 --- a/blog/6a129001-a171-5d7e-9555-a943ae9d624f/index.html +++ b/blog/6a129001-a171-5d7e-9555-a943ae9d624f/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/91d98aad-6ec6-5e71-b6ca-daff730c0ca4/index.html b/blog/91d98aad-6ec6-5e71-b6ca-daff730c0ca4/index.html index 65bddde9..4cc83424 100644 --- a/blog/91d98aad-6ec6-5e71-b6ca-daff730c0ca4/index.html +++ b/blog/91d98aad-6ec6-5e71-b6ca-daff730c0ca4/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/aa06b558-51ae-5f78-9989-0baadffbbc36/index.html b/blog/aa06b558-51ae-5f78-9989-0baadffbbc36/index.html index 7b20849c..5fe29af8 100644 --- a/blog/aa06b558-51ae-5f78-9989-0baadffbbc36/index.html +++ b/blog/aa06b558-51ae-5f78-9989-0baadffbbc36/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/c924c93c-fac0-517e-92e7-c5b5aaa083c2/index.html b/blog/c924c93c-fac0-517e-92e7-c5b5aaa083c2/index.html index 6015c73a..4baeac01 100644 --- a/blog/c924c93c-fac0-517e-92e7-c5b5aaa083c2/index.html +++ b/blog/c924c93c-fac0-517e-92e7-c5b5aaa083c2/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/e173a2ae-ebb5-5219-9479-035dde5fe8c8/index.html b/blog/e173a2ae-ebb5-5219-9479-035dde5fe8c8/index.html index fa098148..b243909b 100644 --- a/blog/e173a2ae-ebb5-5219-9479-035dde5fe8c8/index.html +++ b/blog/e173a2ae-ebb5-5219-9479-035dde5fe8c8/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/f7437acb-56dc-5ec6-9370-7726f39da57a/index.html b/blog/f7437acb-56dc-5ec6-9370-7726f39da57a/index.html index 3231e892..268b17f9 100644 --- a/blog/f7437acb-56dc-5ec6-9370-7726f39da57a/index.html +++ b/blog/f7437acb-56dc-5ec6-9370-7726f39da57a/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/index.html b/blog/index.html index e71dc63b..2f976f31 100644 --- a/blog/index.html +++ b/blog/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/page/1/index.html b/blog/page/1/index.html index 0a9b32eb..732271e1 100644 --- a/blog/page/1/index.html +++ b/blog/page/1/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/page/2/index.html b/blog/page/2/index.html index 508acd63..aed30053 100644 --- a/blog/page/2/index.html +++ b/blog/page/2/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/chunk-map.json b/chunk-map.json index c68c57bd..eab74051 100644 --- a/chunk-map.json +++ b/chunk-map.json @@ -1 +1 @@ -{"app":["/app-fb4af62ff471c4bd5365.js"],"component---src-pages-404-tsx":["/component---src-pages-404-tsx-8854ec07bcd813a2d5d9.js"],"component---src-pages-templates-blog-tsx":["/component---src-pages-templates-blog-tsx-e632eeb611475b6922a9.js"],"component---src-pages-templates-index-tsx":["/component---src-pages-templates-index-tsx-9eb91922ad7dfced24d1.js"],"component---src-pages-templates-policies-tsx":["/component---src-pages-templates-policies-tsx-15f53bf827c36e52ae75.js"],"component---src-pages-templates-post-tsx":["/component---src-pages-templates-post-tsx-f7d7682c4496902d891d.js"],"component---src-pages-templates-project-tsx":["/component---src-pages-templates-project-tsx-9b1b9adbc9274b4f8970.js"],"component---src-pages-templates-projects-tsx":["/component---src-pages-templates-projects-tsx-55b0a27fe736ce512ff7.js"],"component---src-pages-templates-services-tsx":["/component---src-pages-templates-services-tsx-5c395c45f908b7df0b61.js"],"component---src-pages-templates-workflow-tsx":["/component---src-pages-templates-workflow-tsx-5b55b4b34202d84e478f.js"]} \ No newline at end of file +{"app":["/app-fb4af62ff471c4bd5365.js"],"component---src-pages-404-tsx":["/component---src-pages-404-tsx-8854ec07bcd813a2d5d9.js"],"component---src-pages-templates-blog-tsx":["/component---src-pages-templates-blog-tsx-e632eeb611475b6922a9.js"],"component---src-pages-templates-index-tsx":["/component---src-pages-templates-index-tsx-c3e907b240efcbd2d914.js"],"component---src-pages-templates-policies-tsx":["/component---src-pages-templates-policies-tsx-15f53bf827c36e52ae75.js"],"component---src-pages-templates-post-tsx":["/component---src-pages-templates-post-tsx-f7d7682c4496902d891d.js"],"component---src-pages-templates-project-tsx":["/component---src-pages-templates-project-tsx-ad10d952e1365a3c9e6c.js"],"component---src-pages-templates-projects-tsx":["/component---src-pages-templates-projects-tsx-a79fa89cdf29a69f7449.js"],"component---src-pages-templates-services-tsx":["/component---src-pages-templates-services-tsx-5c395c45f908b7df0b61.js"],"component---src-pages-templates-workflow-tsx":["/component---src-pages-templates-workflow-tsx-5b55b4b34202d84e478f.js"]} \ No newline at end of file diff --git a/component---src-pages-templates-index-tsx-9eb91922ad7dfced24d1.js.map b/component---src-pages-templates-index-tsx-9eb91922ad7dfced24d1.js.map deleted file mode 100644 index 5c5ef989..00000000 --- a/component---src-pages-templates-index-tsx-9eb91922ad7dfced24d1.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"component---src-pages-templates-index-tsx-9eb91922ad7dfced24d1.js","mappings":"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","sources":["webpack://code-cave/./node_modules/@react-icons/all-files/ai/AiFillBug.js","webpack://code-cave/./node_modules/@react-icons/all-files/bs/BsArrowUpRight.js","webpack://code-cave/./node_modules/@react-icons/all-files/fa/FaQuoteRight.js","webpack://code-cave/./src/components/common/spinner.tsx","webpack://code-cave/./src/components/babylonjs/babylon.tsx","webpack://code-cave/./src/components/common/banner.tsx","webpack://code-cave/./src/components/common/textInput.tsx","webpack://code-cave/./src/components/common/textAreaInput.tsx","webpack://code-cave/./src/components/common/selectInput.tsx","webpack://code-cave/./src/components/common/contactFormSection.tsx","webpack://code-cave/./src/components/common/templateSection.tsx","webpack://code-cave/./src/components/posts/postPreview.tsx","webpack://code-cave/./src/components/projects/projectPreview.tsx","webpack://code-cave/./src/components/stack/stackCarousel.tsx","webpack://code-cave/./src/components/stack/stakUnit.tsx","webpack://code-cave/./src/components/stack/stackSection.tsx","webpack://code-cave/./src/components/posts/postSection.tsx","webpack://code-cave/./src/components/projects/projectsSection.tsx","webpack://code-cave/./src/components/reviews/review.tsx","webpack://code-cave/./src/components/reviews/staticReviewsSection.tsx","webpack://code-cave/./src/pagesTemplates/index.tsx","webpack://code-cave/./src/types/common.type.ts","webpack://code-cave/./src/assets/common/border.svg"],"sourcesContent":["// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.AiFillBug = function AiFillBug (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M304 280h416c4.4 0 8-3.6 8-8 0-40-8.8-76.7-25.9-108.1-17.2-31.5-42.5-56.8-74-74C596.7 72.8 560 64 520 64h-16c-40 0-76.7 8.8-108.1 25.9-31.5 17.2-56.8 42.5-74 74C304.8 195.3 296 232 296 272c0 4.4 3.6 8 8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M940 512H792V412c76.8 0 139-62.2 139-139 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 34.8-28.2 63-63 63H232c-34.8 0-63-28.2-63-63 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 76.8 62.2 139 139 139v100H84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h148v96c0 6.5.2 13 .7 19.3C164.1 728.6 116 796.7 116 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-44.2 23.9-82.9 59.6-103.7 6 17.2 13.6 33.6 22.7 49 24.3 41.5 59 76.2 100.5 100.5 28.9 16.9 61 28.8 95.3 34.5 4.4 0 8-3.6 8-8V484c0-4.4 3.6-8 8-8h60c4.4 0 8 3.6 8 8v464.2c0 4.4 3.6 8 8 8 34.3-5.7 66.4-17.6 95.3-34.5 41.5-24.3 76.2-59 100.5-100.5 9.1-15.5 16.7-31.9 22.7-49C812.1 793.1 836 831.8 836 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-79.3-48.1-147.4-116.7-176.7.4-6.4.7-12.8.7-19.3v-96h148c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.BsArrowUpRight = function BsArrowUpRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 16 16\",\"fill\":\"currentColor\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M6.5 4a.5.5 0 01.5-.5h5a.5.5 0 01.5.5v5a.5.5 0 01-1 0V4.5H7a.5.5 0 01-.5-.5z\",\"clipRule\":\"evenodd\"}},{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M12.354 3.646a.5.5 0 010 .708l-9 9a.5.5 0 01-.708-.708l9-9a.5.5 0 01.708 0z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.FaQuoteRight = function FaQuoteRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z\"}}]})(props);\n};\n","import React from \"react\";\n\nconst Spinner = ({ className }: { className?: string }) => {\n return (\n \n \n \n \n \n \n );\n};\n\nexport default Spinner;\n","import React, { useEffect, useRef, useState } from \"react\";\n\nimport Spinner from \"../common/spinner\";\n\nconst Babylon = () => {\n const [isBabylonReady, setIsBabylonReady] = useState(false);\n const isInitial = useRef(true);\n const canvasRef = useRef(null);\n\n useEffect(() => {\n if (\n !isInitial.current ||\n !canvasRef.current ||\n typeof window == \"undefined\"\n )\n return;\n\n isInitial.current = false;\n\n // WORKER instance creation\n const babylonWorker = new Worker(\n new URL(\"../../workers/babylon.worker.ts\", import.meta.url),\n {\n type: \"module\",\n }\n );\n babylonWorker.onmessage = ({ data }) => {\n if (data === \"ready\") setIsBabylonReady(true);\n };\n\n // OFFSCREEN canvas\n const canvas = canvasRef.current;\n canvas.width = canvas.clientWidth;\n canvas.height = canvas.clientHeight;\n\n const offscreenCanvas = canvas.transferControlToOffscreen();\n babylonWorker.postMessage({ canvas: offscreenCanvas }, [offscreenCanvas]);\n\n // RESIZE handler\n const onResizeHandler = () => {\n babylonWorker.postMessage({\n width: canvas.clientWidth,\n height: canvas.clientHeight,\n });\n };\n window.addEventListener(\"resize\", onResizeHandler, { passive: true });\n\n // WHEEL handler\n const onWheelHandler = (e: WheelEvent) => {\n e.preventDefault();\n babylonWorker.postMessage({ wheel: e.deltaY });\n };\n canvas.addEventListener(\"wheel\", onWheelHandler);\n\n // ROTATE mouse handler\n const onMouseMoveHandler = (e: MouseEvent) => {\n babylonWorker.postMessage({\n x: e.movementX,\n y: e.movementY,\n });\n };\n canvas.addEventListener(\"mousedown\", (e: MouseEvent) => {\n e.preventDefault();\n window.addEventListener(\"mousemove\", onMouseMoveHandler, {\n passive: true,\n });\n window.addEventListener(\n \"mouseup\",\n () => window.removeEventListener(\"mousemove\", onMouseMoveHandler),\n { once: true, passive: true }\n );\n });\n\n // ROTATE touch handler\n const nestedTouchMoveHandler = (\n e: TouchEvent,\n previousCoords: { x: number; y: number }\n ) => {\n const touch = e.touches[0];\n babylonWorker.postMessage({\n x: touch.screenX - previousCoords.x,\n y: touch.screenY - previousCoords.y,\n });\n\n return {\n newX: touch.screenX,\n newY: touch.screenY,\n };\n };\n let onTouchMoveHandler: (e: TouchEvent) => void;\n canvas.addEventListener(\n \"touchstart\",\n (e: TouchEvent) => {\n if (e.touches.length !== 1) return;\n\n const firstTouch = e.touches[0];\n\n e.preventDefault();\n const previousCoords = {\n x: firstTouch.screenX,\n y: firstTouch.screenY,\n };\n\n onTouchMoveHandler = (e: TouchEvent) => {\n const { newX, newY } = nestedTouchMoveHandler(e, previousCoords);\n previousCoords.x = newX;\n previousCoords.y = newY;\n };\n\n window.addEventListener(\"touchmove\", onTouchMoveHandler, {\n passive: true,\n });\n window.addEventListener(\n \"touchend\",\n () => {\n window.removeEventListener(\"touchmove\", onTouchMoveHandler);\n },\n { passive: true }\n );\n },\n { passive: true }\n );\n\n // UNMOUNT handler\n return () => {\n if (!window) return;\n\n window.removeEventListener(\"resize\", onResizeHandler);\n window.removeEventListener(\"mousemove\", onMouseMoveHandler);\n window.removeEventListener(\"touchmove\", onTouchMoveHandler);\n if (canvas) {\n canvas.removeEventListener(\"wheel\", onWheelHandler);\n }\n babylonWorker.terminate();\n };\n }, []);\n\n return (\n
\n \n {!isBabylonReady ? (\n \n ) : null}\n
\n );\n};\n\nexport default Babylon;\n","import React, { useEffect, useState } from \"react\";\nimport { GatsbyImage, IGatsbyImageData } from \"gatsby-plugin-image\";\n\nimport Border from \"../../assets/common/border.svg\";\n\nimport ContentContainer from \"./contentContainer\";\nimport Babylon from \"../babylonjs/babylon\";\n\nconst Banner = ({\n heightClass = \"min-h-91\",\n title,\n className,\n borderBottom,\n borderTop,\n babylon,\n image,\n}: {\n heightClass?: string;\n title: string;\n className?: string;\n borderBottom?: boolean;\n borderTop?: boolean;\n babylon?: boolean;\n image?: IGatsbyImageData;\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 \n {borderTop ? (\n \n ) : null}\n \n
\n

\n \n {title}\n \n

\n
\n {babylon ? (\n \n ) : null}\n {image && !babylon ? (\n
\n \n
\n ) : null}\n \n {borderBottom ? (\n \n ) : null}\n \n );\n};\n\nexport default Banner;\n","import React from \"react\";\n\ninterface ITextInputProps extends React.HTMLAttributes {\n type: string;\n name: string;\n label: string;\n className?: string;\n placeholderIndentClass?: string;\n}\n\nconst TextInput = ({\n id,\n type,\n label,\n placeholder,\n className,\n placeholderIndentClass = \"placeholder:left-[60px]\",\n ...attr\n}: ITextInputProps) => {\n return (\n
\n \n\n \n {label}\n \n
\n );\n};\n\nexport default TextInput;\n","import React from \"react\";\n\ninterface ITextAreaInputProps\n extends React.HTMLAttributes {\n name: string;\n label: string;\n className?: string;\n placeholderIndentClass?: string;\n rows?: number;\n}\n\nconst TextAreaInput = ({\n id,\n label,\n placeholder,\n className,\n placeholderIndentClass = \"placeholder:left-[60px]\",\n rows = 1,\n ...attr\n}: ITextAreaInputProps) => {\n return (\n
\n \n\n \n {label}\n \n
\n );\n};\n\nexport default TextAreaInput;\n","import React from \"react\";\n\ninterface ISelectInputProps extends React.HTMLAttributes {\n name: string;\n label: string;\n options: string[];\n className?: string;\n}\n\nconst SelectInput = ({\n id,\n name,\n label,\n options,\n placeholder,\n className,\n ...attr\n}: ISelectInputProps) => {\n const value = \"\";\n const isEmptySelected = !value;\n\n return (\n
\n \n \n {/* \n {options.map((option) => (\n \n {option}\n \n ))} */}\n \n\n \n {label}\n \n {placeholder}\n \n \n
\n );\n};\n\nexport default SelectInput;\n","import React from \"react\";\nimport { graphql, useStaticQuery } from \"gatsby\";\n\nimport { ILang, Theme } from \"../../types/common.type\";\nimport {\n IContactFormMarkup,\n IMarkupQueryResult,\n} from \"../../types/commonMarkup.type\";\n\nimport TemplateSection from \"./templateSection\";\nimport TextInput from \"./textInput\";\nimport TextAreaInput from \"./textAreaInput\";\nimport SelectInput from \"./selectInput\";\nimport DiscussProjectButton from \"../layout/discussProjectButton\";\n\ninterface IContactFromQueryResult\n extends IMarkupQueryResult<{ contactForm: IContactFormMarkup }> {\n en?: { nodes?: { html: string }[] };\n ru?: { nodes?: { html: string }[] };\n}\n\nconst ContactForm = ({ lang }: ILang) => {\n const formMdData = useStaticQuery(query) as IContactFromQueryResult;\n const formMarkup = formMdData?.markupData?.nodes?.find(\n (node) => node.fields.language === lang\n )?.frontmatter?.contactForm;\n\n let formDescription: string | null | undefined;\n if (lang in formMdData)\n formDescription = formMdData?.[lang]?.nodes?.[0]?.html as string | null;\n else formDescription = formMdData?.en?.nodes?.[0]?.html;\n\n return (\n <>\n {formMarkup ? (\n \n
\n {formDescription ? (\n \n ) : null}\n
\n \n \n \n \n \n \n \n \n
\n \n
\n \n
\n \n ) : null}\n \n );\n};\n\nexport default ContactForm;\n\nexport const query = graphql`\n query {\n en: allMarkdownRemark(\n filter: {\n fields: { sourceName: { eq: \"contactForm\" }, language: { eq: \"en\" } }\n }\n ) {\n nodes {\n html\n }\n }\n ru: allMarkdownRemark(\n filter: {\n fields: { sourceName: { eq: \"contactForm\" }, language: { eq: \"ru\" } }\n }\n ) {\n nodes {\n html\n }\n }\n markupData: allMarkdownRemark(\n filter: { fields: { sourceName: { eq: \"common\" } } }\n ) {\n nodes {\n fields {\n language\n }\n frontmatter {\n contactForm {\n sectionTitle\n sectionLinkTitle\n emailLabel\n nameLabel\n companyNameLabel\n servicesLabel\n budgetLabel\n selectPlaceholder\n descriptionLabel\n descriptionPlaceholder\n privacyPolicyCheckboxLabel\n adsCheckboxLabel\n buttonLabel\n }\n }\n }\n }\n }\n`;\n","import React, { PropsWithChildren } from \"react\";\nimport { Link } from \"gatsby\";\n\nimport { Theme } from \"../../types/common.type\";\n\nimport Border from \"../../assets/common/border.svg\";\n\nimport ContentContainer from \"./contentContainer\";\n\ninterface ITemplateSectionProps extends React.HTMLAttributes {\n title: string;\n theme: Theme;\n isArrowLink?: boolean;\n linkTitle?: string;\n section?: string;\n className?: string;\n borderT?: boolean;\n borderB?: boolean;\n}\n\nconst TemplateSection = ({\n section,\n theme,\n title,\n linkTitle,\n className,\n children,\n borderT,\n borderB,\n isArrowLink = true,\n ...attr\n}: PropsWithChildren) => {\n const mainColorClass =\n theme === Theme.dark ? \"text-secondary-100\" : \"text-main-100\";\n const linkColorClass =\n theme === Theme.dark\n ? \"text-secondary-100 hover:text-secondary-70\"\n : \"text-main-100 hover:text-main-10\";\n const bgColorClass =\n theme === Theme.dark ? \"bg-main-100\" : \"text-secondary-100\";\n\n return (\n <>\n {borderT ? : null}\n \n \n
\n

\n {title.toUpperCase()}\n

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

\n {date}\n

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

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

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

\n
\n
\n \n \n );\n};\n\nexport default PostPreview;\n","import React from \"react\";\nimport { Link } from \"gatsby\";\nimport { GatsbyImage, getImage } from \"gatsby-plugin-image\";\n\nimport { IProjectPreviewQueryResult } from \"../../types/project.type\";\nimport { TLang, Theme } from \"../../types/common.type\";\n\nimport { BsArrowUpRight } from \"@react-icons/all-files/bs/BsArrowUpRight\";\n\nimport { LocalBusinessMetadata } from \"../common/metadata\";\n\nconst ProjectPreview = ({\n project,\n className,\n theme,\n lang,\n}: {\n project: IProjectPreviewQueryResult;\n className?: string;\n theme: Theme;\n lang: TLang;\n}) => {\n const cover = getImage(project.frontmatter.cover);\n const { title } = project.frontmatter;\n\n const fontColorClass10 =\n theme === Theme.light\n ? \"text-main-100 hover:text-main-10\"\n : \"text-secondary-100 hover:text-secondary-10\";\n const bgColors =\n theme === Theme.light\n ? \"bg-secondary-100 hover:bg-secondary-100\"\n : \"bg-main-100 hover:bg-main-100\";\n\n return (\n \n {cover ? (\n \n ) : null}\n
\n \n {title}\n \n \n
\n \n \n );\n};\n\nexport default ProjectPreview;\n","import React, { forwardRef } from \"react\";\n\nimport useEmblaCarousel from \"embla-carousel-react\";\nimport Autoplay from \"embla-carousel-autoplay\";\n\nconst StackCarousel = forwardRef<\n HTMLDivElement,\n React.PropsWithChildren<{ className?: string }>\n>(({ className, children }, ref) => {\n const [emblaRef, emblaApi] = useEmblaCarousel(\n { loop: true, dragFree: true, duration: 10000, align: 0 },\n [\n Autoplay({\n delay: 0,\n stopOnInteraction: false,\n stopOnMouseEnter: true,\n }),\n ]\n );\n\n return (\n
\n {\n emblaApi?.internalEngine().animation.stop();\n }}\n onMouseLeave={() => {\n emblaApi?.internalEngine().animation.start();\n }}\n >\n {children}\n
\n \n );\n});\n\nexport default StackCarousel;\n","import React, { PropsWithChildren } from \"react\";\n\nimport Border from \"../../assets/common/border.svg\";\n\n\nconst StackUnit = ({ children }: PropsWithChildren) => {\n return (\n
\n \n

{children}

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

{person}

\n

\n {position}, {company}\n

\n

{location}

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

{person}

\n // {person}\n //

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

\n //

\n // {location}\n //

\n //
\n //
\n // \n // \n );\n};\n\nexport default Review;\n","import React from \"react\";\nimport { graphql, useStaticQuery } from \"gatsby\";\n\nimport { ILang, Theme } from \"../../types/common.type\";\nimport {\n IReviewQueryResult,\n IReviewSectionQueryResult,\n} from \"../../types/review.type\";\n\nimport TemplateSection from \"../common/templateSection\";\nimport Review from \"./review\";\n\nconst StaticReviewsSection = ({ lang }: ILang) => {\n const reviewsData = useStaticQuery(query) as IReviewSectionQueryResult;\n\n const sectionMarkup = reviewsData?.markupData?.nodes?.find(\n (node) => node.fields.language === lang\n )?.frontmatter?.reviews;\n\n let reviews: IReviewQueryResult[] | null | undefined;\n\n if (lang in reviewsData)\n reviews = reviewsData?.[lang]?.nodes?.sort((a, b) =>\n a.frontmatter.person > b.frontmatter.person ? 1 : -1\n ) as IReviewQueryResult[] | null | undefined;\n else\n reviews = reviewsData?.en?.nodes?.sort((a, b) =>\n a.frontmatter.person > b.frontmatter.person ? 1 : -1\n );\n\n return (\n <>\n {reviews ? (\n \n
\n {reviews.map((review) => (\n \n ))}\n
\n \n ) : null}\n \n );\n};\n\nexport default StaticReviewsSection;\n\nexport const query = graphql`\n query {\n en: allMarkdownRemark(\n filter: {\n fields: { sourceName: { eq: \"reviews\" }, language: { eq: \"en\" } }\n }\n ) {\n nodes {\n id\n html\n frontmatter {\n company\n location\n person\n position\n image {\n childImageSharp {\n gatsbyImageData(\n height: 112\n placeholder: BLURRED\n formats: [AUTO, AVIF, WEBP]\n )\n }\n }\n }\n }\n }\n ru: allMarkdownRemark(\n filter: {\n fields: { sourceName: { eq: \"reviews\" }, language: { eq: \"ru\" } }\n }\n ) {\n nodes {\n id\n html\n frontmatter {\n company\n location\n person\n position\n image {\n childImageSharp {\n gatsbyImageData(\n height: 112\n placeholder: BLURRED\n formats: [AUTO, AVIF, WEBP]\n )\n }\n }\n }\n }\n }\n markupData: allMarkdownRemark(\n filter: { fields: { sourceName: { eq: \"common\" } } }\n sort: { frontmatter: { order: ASC } }\n ) {\n nodes {\n fields {\n language\n }\n frontmatter {\n reviews {\n title\n linkTitle\n }\n }\n }\n }\n }\n`;\n","import * as React from \"react\";\nimport type { HeadFC, HeadProps, PageProps } from \"gatsby\";\n\nimport { IconContext } from \"@react-icons/all-files\";\nimport \"../styles/styles.css\";\n\nimport { IIndexPageContext } from \"../types/index.type\";\n\nimport Banner from \"../components/common/banner\";\nimport StackSection from \"../components/stack/stackSection\";\nimport PostSection from \"../components/posts/postSection\";\nimport ProjectsSection from \"../components/projects/projectsSection\";\nimport { HeadSeo } from \"../components/common/metadata\";\nimport StaticReviewsSection from \"../components/reviews/staticReviewsSection\";\nimport ContactForm from \"../components/common/contactFormSection\";\n\nconst IndexPage = ({\n pageContext: { markupData, lang },\n}: PageProps) => {\n return (\n \n \n \n \n \n \n \n \n );\n};\n\nexport default IndexPage;\n\nexport const Head: HeadFC = ({\n pageContext: { markupData, site, lang },\n location,\n}: HeadProps) => {\n return (\n \n );\n};\n","export interface ILang {\n lang: TLang;\n}\n\nexport type TLang = \"en\" | \"ru\";\n\nexport type TLinks = \"services\" | \"workflow\" | \"projects\" | \"blog\";\n\nexport interface IBasePageContext extends ILang {\n site: ISiteMetadata;\n}\n\nexport interface IMdQueryResult {\n allMarkdownRemark: {\n nodes: T[];\n };\n}\n\nexport interface ISiteMetadata {\n title: string;\n description: string;\n siteUrl: string;\n image: string;\n analyticsId: string;\n}\n\nexport enum Theme {\n dark = \"dark\",\n light = \"light\",\n}\n","var React = require('react');\n\nfunction Border (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"line\",{\"width\":\"800\",\"height\":\"8\",\"stroke\":\"#f9f9f9\",\"strokeWidth\":\"8\",\"strokeDasharray\":\"8 8\",\"x1\":\"0\",\"x2\":\"100%\",\"y1\":\"4\",\"y2\":\"4\",\"key\":0}),React.createElement(\"line\",{\"width\":\"800\",\"height\":\"8\",\"stroke\":\"#111111\",\"strokeWidth\":\"8\",\"strokeDasharray\":\"8 8\",\"x1\":\"8\",\"x2\":\"100%\",\"y1\":\"4\",\"y2\":\"4\",\"key\":1})]);\n}\n\nBorder.defaultProps = {\"height\":\"8\"};\n\nmodule.exports = Border;\n\nBorder.default = Border;\n"],"names":["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","passive","onWheelHandler","e","preventDefault","wheel","deltaY","onMouseMoveHandler","x","movementX","y","movementY","removeEventListener","once","onTouchMoveHandler","touches","length","firstTouch","previousCoords","screenX","screenY","newX","newY","nestedTouchMoveHandler","touch","terminate","ref","Spinner","heightClass","title","borderBottom","borderTop","babylon","image","textTranslate","setTextTranslate","Border","ContentContainer","GatsbyImage","alt","id","label","placeholder","placeholderIndentClass","attr","Object","assign","htmlFor","rows","name","options","disabled","value","hidden","_formMdData$markupDat","_formMdData$markupDat2","_formMdData$markupDat3","_formMdData$markupDat4","_formMdData$lang","_formMdData$lang$node","_formMdData$lang$node2","_formMdData$en","_formMdData$en$nodes","_formMdData$en$nodes$","_formMarkup$sectionTi","_formMarkup$sectionLi","lang","formMdData","useStaticQuery","query","formMarkup","markupData","nodes","find","node","fields","language","frontmatter","contactForm","formDescription","html","en","TemplateSection","theme","Theme","light","sectionTitle","linkTitle","sectionLinkTitle","section","isArrowLink","dangerouslySetInnerHTML","__html","action","TextInput","emailLabel","companyNameLabel","nameLabel","SelectInput","servicesLabel","selectPlaceholder","budgetLabel","TextAreaInput","descriptionLabel","descriptionPlaceholder","privacyPolicyCheckboxLabel","adsCheckboxLabel","DiscussProjectButton","buttonLabel","children","borderT","borderB","mainColorClass","dark","linkColorClass","bgColorClass","toUpperCase","Link","to","post","date","text","minutes","Math","floor","wordCount","words","readingTime","fontColorClass100","fontColorClass10","fontColorHover","itemScope","itemType","itemProp","split","slice","join","readPostLink","BsArrowUpRight","size","readingTimeTitle","readingTimeUnits","LocalBusinessMetadata","project","cover","getImage","bgColors","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","map","tech","StackUnit","key","AiFillBug","_postData$markupData","_postData$markupData$","_postData$markupData$2","_postData$markupData$3","_postData$lang","_postData$lang$nodes","_postData$en","_postData$en$nodes","_sectionMarkup$blogSe","_sectionMarkup$blogSe2","postData","sectionMarkup","blog","blogSectionTitle","blogSectionLinkTitle","PostPreview","_projectsPreviewData$","_projectsPreviewData$2","_projectsPreviewData$3","_projectsPreviewData$4","_projectsPreviewData$5","_projectsPreviewData$6","_sectionMarkup$morePr","_sectionMarkup$morePr2","excludeId","projectsPreviewData","projects","filter","moreProjectsSectionTitle","moreProjectsSectionLinkTitle","i","ProjectPreview","review","company","person","position","location","avatar","FaQuoteRight","color","_reviewsData$markupDa","_reviewsData$markupDa2","_reviewsData$markupDa3","_reviewsData$markupDa4","_reviewsData$lang","_reviewsData$lang$nod","_reviewsData$en","_reviewsData$en$nodes","_sectionMarkup$title","reviewsData","reviews","sort","a","b","Review","pageContext","IconContext","Provider","style","verticalAlign","Banner","bannerTitle","ProjectsSection","StaticReviewsSection","PostSection","ContactForm","Head","_ref2","site","HeadSeo","head","description","metaDescription","siteUrl","path","pathname","createElement","defaultProps","default"],"sourceRoot":""} \ No newline at end of file diff --git a/component---src-pages-templates-index-tsx-9eb91922ad7dfced24d1.js b/component---src-pages-templates-index-tsx-c3e907b240efcbd2d914.js similarity index 65% rename from component---src-pages-templates-index-tsx-9eb91922ad7dfced24d1.js rename to component---src-pages-templates-index-tsx-c3e907b240efcbd2d914.js index dd894a4e..80f26b9b 100644 --- a/component---src-pages-templates-index-tsx-9eb91922ad7dfced24d1.js +++ b/component---src-pages-templates-index-tsx-c3e907b240efcbd2d914.js @@ -1,2 +1,2 @@ -(self.webpackChunkcode_cave=self.webpackChunkcode_cave||[]).push([[832],{6838:function(e,t,l){var r=l(9720).w_;e.exports.z=function(e){return r({tag:"svg",attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M304 280h416c4.4 0 8-3.6 8-8 0-40-8.8-76.7-25.9-108.1-17.2-31.5-42.5-56.8-74-74C596.7 72.8 560 64 520 64h-16c-40 0-76.7 8.8-108.1 25.9-31.5 17.2-56.8 42.5-74 74C304.8 195.3 296 232 296 272c0 4.4 3.6 8 8 8z"}},{tag:"path",attr:{d:"M940 512H792V412c76.8 0 139-62.2 139-139 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 34.8-28.2 63-63 63H232c-34.8 0-63-28.2-63-63 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 76.8 62.2 139 139 139v100H84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h148v96c0 6.5.2 13 .7 19.3C164.1 728.6 116 796.7 116 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-44.2 23.9-82.9 59.6-103.7 6 17.2 13.6 33.6 22.7 49 24.3 41.5 59 76.2 100.5 100.5 28.9 16.9 61 28.8 95.3 34.5 4.4 0 8-3.6 8-8V484c0-4.4 3.6-8 8-8h60c4.4 0 8 3.6 8 8v464.2c0 4.4 3.6 8 8 8 34.3-5.7 66.4-17.6 95.3-34.5 41.5-24.3 76.2-59 100.5-100.5 9.1-15.5 16.7-31.9 22.7-49C812.1 793.1 836 831.8 836 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-79.3-48.1-147.4-116.7-176.7.4-6.4.7-12.8.7-19.3v-96h148c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z"}}]})(e)}},6488:function(e,t,l){var r=l(9720).w_;e.exports.p=function(e){return r({tag:"svg",attr:{viewBox:"0 0 16 16",fill:"currentColor"},child:[{tag:"path",attr:{fillRule:"evenodd",d:"M6.5 4a.5.5 0 01.5-.5h5a.5.5 0 01.5.5v5a.5.5 0 01-1 0V4.5H7a.5.5 0 01-.5-.5z",clipRule:"evenodd"}},{tag:"path",attr:{fillRule:"evenodd",d:"M12.354 3.646a.5.5 0 010 .708l-9 9a.5.5 0 01-.708-.708l9-9a.5.5 0 01.708 0z",clipRule:"evenodd"}}]})(e)}},4032:function(e,t,l){var r=l(9720).w_;e.exports.t=function(e){return r({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z"}}]})(e)}},1929:function(e,t,l){"use strict";l.d(t,{Z:function(){return d}});var r=l(7294),n=l(8032),a=l(4471),o=l.n(a),s=l(1164);var c=e=>{let{className:t}=e;return r.createElement("div",{className:`flex justify-center items-center h-full w-full ${t}`},r.createElement("svg",{"aria-hidden":"true",className:"w-8 h-8 mr-2 text-main-10 animate-spin dark:text-secondary-10 fill-main-100",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg"},r.createElement("path",{d:"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z",fill:"currentColor"}),r.createElement("path",{d:"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z",fill:"currentFill"})))};var i=()=>{const{0:e,1:t}=(0,r.useState)(!1),n=(0,r.useRef)(!0),a=(0,r.useRef)(null);return(0,r.useEffect)((()=>{if(!n.current||!a.current||"undefined"==typeof window)return;n.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 r=a.current;r.width=r.clientWidth,r.height=r.clientHeight;const o=r.transferControlToOffscreen();e.postMessage({canvas:o},[o]);const s=()=>{e.postMessage({width:r.clientWidth,height:r.clientHeight})};window.addEventListener("resize",s,{passive:!0});const c=t=>{t.preventDefault(),e.postMessage({wheel:t.deltaY})};r.addEventListener("wheel",c);const i=t=>{e.postMessage({x:t.movementX,y:t.movementY})};r.addEventListener("mousedown",(e=>{e.preventDefault(),window.addEventListener("mousemove",i,{passive:!0}),window.addEventListener("mouseup",(()=>window.removeEventListener("mousemove",i)),{once:!0,passive:!0})}));let d;return r.addEventListener("touchstart",(t=>{if(1!==t.touches.length)return;const l=t.touches[0];t.preventDefault();const r={x:l.screenX,y:l.screenY};d=t=>{const{newX:l,newY:n}=((t,l)=>{const r=t.touches[0];return e.postMessage({x:r.screenX-l.x,y:r.screenY-l.y}),{newX:r.screenX,newY:r.screenY}})(t,r);r.x=l,r.y=n},window.addEventListener("touchmove",d,{passive:!0}),window.addEventListener("touchend",(()=>{window.removeEventListener("touchmove",d)}),{passive:!0})}),{passive:!0}),()=>{window&&(window.removeEventListener("resize",s),window.removeEventListener("mousemove",i),window.removeEventListener("touchmove",d),r&&r.removeEventListener("wheel",c),e.terminate())}}),[]),r.createElement("div",{className:"h-full w-full relative"},r.createElement("canvas",{ref:a,className:"bg-main-100 h-91 w-full flex items-center justify-center cursor-pointer"}),e?null:r.createElement(c,{className:"absolute top-0 left-0 right-0 bottom-0 z-10"}))};var d=e=>{let{heightClass:t="min-h-91",title:l,className:a,borderBottom:c,borderTop:d,babylon:m,image:f}=e;const{0:u,1:p}=(0,r.useState)("translate-y-full");return(0,r.useEffect)((()=>{p("translate-y-0")}),[]),r.createElement("div",{className:`w-full flex items-center bg-main-100 relative overflow-hidden px-6 ${t} ${a}`},d?r.createElement(o(),{className:"absolute top-0 left-0 right-0 w-full"}):null,r.createElement(s.Z,{className:"h-full flex flex-col lg:flex-row py-12 lg:py-0 items-center text-secondary-100 flex-grow gap-y-8"},r.createElement("div",{className:"flex flex-col overflow-hidden items-left h-full justify-center text-secondary-100 h-full w-full lg:w-1/2 bg-main-100"},r.createElement("h1",{className:"overflow-hidden mb-8 w-full"},r.createElement("span",{className:`banner-title inline-block text-4xl w-full text-center transition-all duration-1000 font-light ${u}`},l))),m?r.createElement("div",{className:"w-[85%] lg:w-1/2 lg:h-full hidden md:flex -order-1 lg:order-none"},r.createElement(i,null)):null,f&&!m?r.createElement("div",{className:"w-[220px] lg:w-1/2 lg:h-full flex justify-center items-center -order-1 lg:order-none"},r.createElement(n.G,{image:f,alt:"cover",className:"object-contain aspect-square"})):null),c?r.createElement(o(),{className:"absolute bottom-0 left-0 right-0 w-full"}):null)}},8039:function(e,t,l){"use strict";l.d(t,{Z:function(){return m}});var r=l(7294),n=l(4160),a=l(8322),o=l(216);var s=e=>{let{id:t,type:l,label:n,placeholder:a,className:o,placeholderIndentClass:s="placeholder:left-[60px]",...c}=e;return r.createElement("div",{className:"relative w-full h-10"},r.createElement("input",Object.assign({id:t,type:l,placeholder:null!=a?a:" "},c,{className:`peer h-full w-full rounded-lg border-solid border border-main-100 border-t-secondary-100 px-4 py-2 text-sm font-medium text-main-100 placeholder-shown:border placeholder-shown:border-main-100 focus:border-t-secondary-100 focus:border-main-100 bg-secondary-100 placeholder:absolute ${s} focus:placeholder:left-4 placeholder:transition-all placeholder:italic placeholder:text-main-10 placeholder:font-light`})),r.createElement("label",{htmlFor:t,className:"font-medium before:content-[' '] after:content-[' '] pointer-events-none absolute leading-tight text-xs left-0 -top-[6.5px] flex h-full w-full select-none text-main-100 transition-all before:pointer-events-none before:mt-[6.5px] before:mr-1 before:box-border before:block before:h-1.5 before:w-2.5 before:rounded-tl-lg after:pointer-events-none after:mt-[6.5px] after:ml-1 after:box-border after:block after:h-1.5 after:w-2.5 after:flex-grow after:rounded-tr-lg peer-placeholder-shown:text-sm peer-placeholder-shown:leading-[3.9] peer-placeholder-shown:text-main-100 peer-placeholder-shown:before:border-0 peer-focus:text-main-100 peer-placeholder-shown:after:border-0 peer-focus:text-xs peer-focus:leading-tight before:border-t before:border-l before:border-main-100 after:border-t after:border-r after:border-main-100 peer-focus:before:border-t peer-focus:before:border-l peer-focus:before:border-main-100 peer-focus:after:border-t peer-focus:after:border-r peer-focus:after:border-main-100"},n))};var c=e=>{let{id:t,label:l,placeholder:n,className:a,placeholderIndentClass:o="placeholder:left-[60px]",rows:s=1,...c}=e;return r.createElement("div",{className:"relative w-full min-h-10"},r.createElement("textarea",Object.assign({id:t,placeholder:null!=n?n:" ",rows:s},c,{className:`peer h-full w-full rounded-lg border-solid border border-main-100 border-t-secondary-100 px-4 py-2 text-sm font-medium text-main-100 placeholder-shown:border placeholder-shown:border-main-100 focus:border-t-secondary-100 focus:border-main-100 bg-secondary-100 placeholder:absolute ${o} focus:placeholder:left-4 placeholder:transition-all placeholder:italic placeholder:text-main-10 placeholder:font-light`})),r.createElement("label",{htmlFor:t,className:"font-medium before:content-[' '] after:content-[' '] pointer-events-none absolute leading-tight text-xs left-0 -top-[6.5px] flex h-full w-full select-none text-main-100 transition-all before:pointer-events-none before:mt-[6.5px] before:mr-1 before:box-border before:block before:h-1.5 before:w-2.5 before:rounded-tl-lg after:pointer-events-none after:mt-[6.5px] after:ml-1 after:box-border after:block after:h-1.5 after:w-2.5 after:flex-grow after:rounded-tr-lg peer-placeholder-shown:text-sm peer-placeholder-shown:leading-[3.9] peer-placeholder-shown:text-main-100 peer-placeholder-shown:before:border-0 peer-focus:text-main-100 peer-placeholder-shown:after:border-0 peer-focus:text-xs peer-focus:leading-tight before:border-t before:border-l before:border-main-100 after:border-t after:border-r after:border-main-100 peer-focus:before:border-t peer-focus:before:border-l peer-focus:before:border-main-100 peer-focus:after:border-t peer-focus:after:border-r peer-focus:after:border-main-100"},l))};var i=e=>{let{id:t,name:l,label:n,options:a,placeholder:o,className:s,...c}=e;return r.createElement("div",{className:"relative w-full h-10"},r.createElement("select",Object.assign({disabled:!0,id:t,name:l,placeholder:null!=o?o:" "},c,{value:"",className:"peer h-full w-full rounded-lg border-solid border border-main-100 border-t-main-100 px-4 py-2 text-sm font-medium text-main-100 placeholder-shown:border placeholder-shown:border-main-100 focus:border-t-secondary-100 focus:border-main-100 bg-secondary-100 placeholder:absolute focus:placeholder:left-4 placeholder:transition-all placeholder:italic placeholder:text-main-10 placeholder:font-light"}),r.createElement("option",{hidden:!0,disabled:!0,value:""})),r.createElement("label",{htmlFor:t,className:"font-medium before:content-[' '] after:content-[' '] pointer-events-none absolute left-0 -top-[6.5px] flex h-full w-full select-none text-main-100 transition-all before:pointer-events-none before:mt-[6.5px] before:mr-1 before:box-border before:block before:h-1.5 before:w-2.5 before:rounded-tl-lg after:pointer-events-none after:mt-[6.5px] after:ml-1 after:box-border after:block after:h-1.5 after:w-2.5 after:flex-grow after:rounded-tr-lg text-sm leading-[3.9] text-main-100 before:border-0 after:border-0 peer-focus:text-main-100 peer-focus:text-xs peer-focus:leading-tight before:border-t before:border-l before:border-main-100 after:border-t after:border-r after:border-main-100 peer-focus:before:border-t peer-focus:before:border-l peer-focus:before:border-main-100 peer-focus:after:border-t peer-focus:after:border-r peer-focus:after:border-main-100"},n,r.createElement("span",{className:"italic text-main-10 font-light pl-1 group-[.hide]:hidden "},o)))},d=l(6061);var m=e=>{var t,l,m,u,p,h,v,b,x,g,w,E;let{lang:y}=e;const N=(0,n.K2)(f),k=null==N||null===(t=N.markupData)||void 0===t||null===(l=t.nodes)||void 0===l||null===(m=l.find((e=>e.fields.language===y)))||void 0===m||null===(u=m.frontmatter)||void 0===u?void 0:u.contactForm;let C;return C=y in N?null==N||null===(p=N[y])||void 0===p||null===(h=p.nodes)||void 0===h||null===(v=h[0])||void 0===v?void 0:v.html:null==N||null===(b=N.en)||void 0===b||null===(x=b.nodes)||void 0===x||null===(g=x[0])||void 0===g?void 0:g.html,r.createElement(r.Fragment,null,k?r.createElement(o.Z,{id:"contact-form",theme:a.Q.light,title:null!==(w=null==k?void 0:k.sectionTitle)&&void 0!==w?w:"Let’s discuss your project",linkTitle:null!==(E=null==k?void 0:k.sectionLinkTitle)&&void 0!==E?E:"we’ll be glad to hear from you!",section:"/#contact-form",isArrowLink:!1},r.createElement("div",{className:"flex flex-col md:flex-row gap-10 lg:gap-28 justify-center max-w-4.5xl items-stretch"},C?r.createElement("p",{className:"contact-form-description flex-1 text-xl font-light w-full",dangerouslySetInnerHTML:{__html:C}}):null,r.createElement("form",{action:"submit",className:"flex-1 flex flex-col gap-2.5"},r.createElement(s,{id:"email",type:"email",name:"email",label:k.emailLabel}),r.createElement(s,{id:"companyName",type:"text",name:"companyName",label:k.companyNameLabel}),r.createElement(s,{id:"name",type:"text",name:"name",label:k.nameLabel}),r.createElement(i,{id:"services",name:"services",label:k.servicesLabel,options:["Web development","QA","Mobile development","DevOps","UX/UI"],placeholder:k.selectPlaceholder}),r.createElement(i,{id:"budget",name:"budget",label:k.budgetLabel,options:["$5000","$15000","$50000"],placeholder:k.selectPlaceholder}),r.createElement(c,{name:"description",label:k.descriptionLabel,placeholder:k.descriptionPlaceholder,placeholderIndentClass:"placeholder:left-[150px]",rows:5}),r.createElement("label",{className:"flex items-center gap-2 pt-2.5 text-xs font-normal"},r.createElement("input",{type:"checkbox",className:"h-5 w-5 accent-main-100"})," ",r.createElement("span",null,k.privacyPolicyCheckboxLabel)),r.createElement("label",{className:"flex items-center gap-2 text-xs font-normal"},r.createElement("input",{type:"checkbox",className:"h-5 w-5 accent-main-100"})," ",r.createElement("span",null,k.adsCheckboxLabel)),r.createElement("div",{className:"flex items-center justify-center pt-5"},r.createElement(d.Z,{title:k.buttonLabel,className:"px-6"}))))):null)};const f="1713862793"},216:function(e,t,l){"use strict";var r=l(7294),n=l(4160),a=l(8322),o=l(4471),s=l.n(o),c=l(1164);t.Z=e=>{let{section:t,theme:l,title:o,linkTitle:i,className:d,children:m,borderT:f,borderB:u,isArrowLink:p=!0,...h}=e;const v=l===a.Q.dark?"text-secondary-100":"text-main-100",b=l===a.Q.dark?"text-secondary-100 hover:text-secondary-70":"text-main-100 hover:text-main-10",x=l===a.Q.dark?"bg-main-100":"text-secondary-100";return r.createElement(r.Fragment,null,f?r.createElement(s(),{className:"w-full"}):null,r.createElement("section",Object.assign({className:`w-full py-16 ${x} ${d}`},h),r.createElement(c.Z,{className:`flex-col items-center ${v}`},r.createElement("div",{className:"flex justify-between w-full items-center pb-8 sm:pb-14 flex-col sm:flex-row gap-5"},r.createElement("h2",{className:`text-4xl font-bold w-full ${v}`},o.toUpperCase()),t?r.createElement(n.rU,{to:`/${t}`,className:`w-full sm:w-auto text-start sm:text-end text-xl font-normal cursor-pointer whitespace-nowrap ${b}`},i?i.toUpperCase():"DISCOVER MORE"," ",p?r.createElement(r.Fragment,null,"→"):null):null),m)),u?r.createElement(s(),{className:"w-full"}):null)}},3793:function(e,t,l){"use strict";var r=l(7294),n=l(4160),a=l(6488),o=l(9165),s=l(8322);t.Z=e=>{let{post:t,theme:l,className:c,markupData:i,lang:d}=e;const{date:m,title:f,text:u}=t.frontmatter,p=Math.floor(t.wordCount.words/200),h=p||1,v=l===s.Q.light?"text-main-100":"text-secondary-100",b=l===s.Q.light?"text-main-10":"text-secondary-10",x=l===s.Q.light?"hover:text-main-10":"hover:text-secondary-10";return r.createElement(n.rU,{to:`/blog/${t.id}`,className:`flex flex-col sm:flex-row w-full justify-center gap-5 md:gap-14 ${v} ${x} ${c}`,itemScope:!0,itemType:"https://schema.org/Article"},r.createElement("div",{className:"flex flex-col w-full max-w-[400px] gap-2.5 sm:gap-5"},r.createElement("p",{itemProp:"dateCreated",className:`text-lg ${b}`},m),r.createElement("h3",{itemProp:"headline",className:`text-3xl font-semibold ${v}`},f)),r.createElement("div",{className:"flex flex-col w-full max-w-[500px] gap-5"},r.createElement("p",{className:`font-normal text-base ${v}`,itemProp:"abstract"},u.split(" ").slice(0,70).join(" "),"..."),r.createElement("div",{className:"flex w-full items-center justify-between"},r.createElement("div",{className:"flex items-center gap-3 text-sm font-bold"},r.createElement("span",null,null==i?void 0:i.readPostLink),r.createElement(a.p,{size:14})),r.createElement("p",{className:`text-sm ${b}`},`${null==i?void 0:i.readingTimeTitle}: ~${h} ${null==i?void 0:i.readingTimeUnits}.`))),r.createElement(o.Lx,{itemProp:"copyrightHolder",lang:d}))}},6745:function(e,t,l){"use strict";var r=l(7294),n=l(4160),a=l(8032),o=l(8322),s=l(6488),c=l(9165);t.Z=e=>{let{project:t,className:l,theme:i,lang:d}=e;const m=(0,a.c)(t.frontmatter.cover),{title:f}=t.frontmatter,u=i===o.Q.light?"text-main-100 hover:text-main-10":"text-secondary-100 hover:text-secondary-10",p=i===o.Q.light?"bg-secondary-100 hover:bg-secondary-100":"bg-main-100 hover:bg-main-100";return r.createElement(n.rU,{to:`/projects/${t.id}`,className:`${p} ${u} flex flex-col justify-between hover:text-main-10 rounded-2xl p-2.5 gap-2.5 ${l}`,itemScope:!0,itemType:"https://schema.org/CreativeWork"},m?r.createElement(a.G,{image:m,alt:"cover",itemProp:"image",className:"object-contain w-full rounded-[10px]"}):null,r.createElement("div",{className:"flex px-2.5 py-1 items-center grow"},r.createElement("h3",{className:"text-base grow font-medium h-full",itemProp:"description"},f),r.createElement(s.p,{size:20})),r.createElement(c.Lx,{itemProp:"author",lang:d}))}},171:function(e,t,l){"use strict";l.r(t),l.d(t,{Head:function(){return P},default:function(){return Z}});var r=l(7294),n=l(9720),a=l(1929),o=l(4160),s=l(6838),c=l(7576),i=l(2074);var d=(0,r.forwardRef)(((e,t)=>{let{className:l,children:n}=e;const[a,o]=(0,c.Z)({loop:!0,dragFree:!0,duration:1e4,align:0},[(0,i.Z)({delay:0,stopOnInteraction:!1,stopOnMouseEnter:!0})]);return r.createElement("div",{className:`overflow-hidden ${l}`,ref:a},r.createElement("div",{ref:t,className:"h-full flex items-center",onMouseEnter:()=>{null==o||o.internalEngine().animation.stop()},onMouseLeave:()=>{null==o||o.internalEngine().animation.start()}},n))})),m=l(4471),f=l.n(m);var u=e=>{let{children:t}=e;return r.createElement("div",{className:"h-full shrink-0 min-w-0 cursor-pointer flex flex-col justify-between items-center content-center w-[192px] md:w-[256px] xl:w-[256px] 3xl:w-[400px]"},r.createElement(f(),{className:"min-w-0 shrink-0 w-full"}),r.createElement("p",{className:"text-lg font-semibold whitespace-nowrap"},t),r.createElement(f(),{className:"min-w-0 shrink-0 w-full"}))};var p=()=>{var e,t;const l=(0,o.K2)(h),n=null==l||null===(e=l.markdownRemark)||void 0===e||null===(t=e.frontmatter)||void 0===t?void 0:t.stack;return r.createElement(r.Fragment,null,n?r.createElement("section",{className:"h-16 flex flex-col relative"},r.createElement(d,{className:"grow"},n.map((e=>r.createElement(u,{key:e},e))),r.createElement(u,null,r.createElement(s.z,{size:32,className:"-rotate-90"})))):null)};const h="3518807326";var v=l(3793),b=l(216),x=l(8322);var g=e=>{var t,l,n,a,s,c,i,d,m,f;let{lang:u}=e;const p=(0,o.K2)(w),h=null==p||null===(t=p.markupData)||void 0===t||null===(l=t.nodes)||void 0===l||null===(n=l.find((e=>e.fields.language===u)))||void 0===n||null===(a=n.frontmatter)||void 0===a?void 0:a.blog;let g;return g=u in p?null==p||null===(s=p[u])||void 0===s||null===(c=s.nodes)||void 0===c?void 0:c[0]:null==p||null===(i=p.en)||void 0===i||null===(d=i.nodes)||void 0===d?void 0:d[0],r.createElement(r.Fragment,null,g?r.createElement(b.Z,{theme:x.Q.dark,title:null!==(m=null==h?void 0:h.blogSectionTitle)&&void 0!==m?m:"new in our blog",linkTitle:null!==(f=null==h?void 0:h.blogSectionLinkTitle)&&void 0!==f?f:"all posts",section:"blog",borderB:!0},r.createElement(v.Z,{lang:u,post:g,theme:x.Q.dark,markupData:h})):null)};const w="641077248";var E=l(6745);var y=e=>{var t,l,n,a,s,c,i,d;let{excludeId:m,lang:f}=e;const u=(0,o.K2)(N),p=null==u||null===(t=u.markupData)||void 0===t||null===(l=t.nodes)||void 0===l||null===(n=l.find((e=>e.fields.language===f)))||void 0===n||null===(a=n.frontmatter)||void 0===a?void 0:a.projects;let h;return h=f in u?null==u||null===(s=u[f])||void 0===s?void 0:s.nodes:null===(c=u.en)||void 0===c?void 0:c.nodes,h?(m&&(h=h.filter((e=>e.id!==m))),r.createElement(b.Z,{theme:x.Q.dark,section:"projects",title:null!==(i=null==p?void 0:p.moreProjectsSectionTitle)&&void 0!==i?i:"OUR PROJECTS",linkTitle:null!==(d=null==p?void 0:p.moreProjectsSectionLinkTitle)&&void 0!==d?d:"Discover MORE",borderB:!0},r.createElement("div",{className:"flex justify-between items-center gap-5 lg:gap-10 flex-col sm:flex-row items-stretch"},h.map(((e,t)=>{if(3!==t)return r.createElement(E.Z,{key:e.id,project:e,lang:f,theme:x.Q.light,className:"flex-1 sm:last:hidden lg:last:flex"})}))))):r.createElement(r.Fragment,null)};const N="2041872833";var k=l(9165),C=l(8032),L=l(4032);var $=e=>{let{review:{frontmatter:{company:t,person:l,position:n,location:a,image:o},html:s},className:c}=e;const i=(0,C.c)(o);return r.createElement("div",{className:`flex flex-col p-6 gap-3.5 bg-secondary-100 shadow-[0px_2px_14px_rgba(68,68,68,0.25)] rounded-2.5xl text-main-100 ${c}`},r.createElement("div",{className:"flex w-full items-start"},i?r.createElement(C.G,{image:i,alt:t,className:"h-[72px] w-[72px] object-cover rounded-full mr-3.5"}):null,r.createElement("div",{className:"flex-1 font-normal text-base text-main-10 leading-5"},r.createElement("h3",{className:"font-bold text-xl text-main-100"},l),r.createElement("h4",null,r.createElement("span",null,n),", ",r.createElement("span",null,t)),r.createElement("h4",null,a)),r.createElement(L.t,{size:25,color:"#E4E4E4"})),r.createElement("div",{className:"review-body text-sm",dangerouslySetInnerHTML:{__html:s}}))};var j=e=>{var t,l,n,a,s,c,i,d,m;let{lang:f}=e;const u=(0,o.K2)(T),p=null==u||null===(t=u.markupData)||void 0===t||null===(l=t.nodes)||void 0===l||null===(n=l.find((e=>e.fields.language===f)))||void 0===n||null===(a=n.frontmatter)||void 0===a?void 0:a.reviews;let h;return h=f in u?null==u||null===(s=u[f])||void 0===s||null===(c=s.nodes)||void 0===c?void 0:c.sort(((e,t)=>e.frontmatter.person>t.frontmatter.person?1:-1)):null==u||null===(i=u.en)||void 0===i||null===(d=i.nodes)||void 0===d?void 0:d.sort(((e,t)=>e.frontmatter.person>t.frontmatter.person?1:-1)),r.createElement(r.Fragment,null,h?r.createElement(b.Z,{id:"reviews",theme:x.Q.light,title:null!==(m=null==p?void 0:p.title)&&void 0!==m?m:"our clients' testimonials",section:"/#reviews",linkTitle:null==p?void 0:p.linkTitle,isArrowLink:!1,borderB:!0},r.createElement("div",{className:"flex justify-between items-start gap-5 lg:gap-10 flex-col md:flex-row"},h.map((e=>r.createElement($,{review:e,key:e.id,className:"flex-1"}))))):null)};const T="1287994371";var M=l(8039);var Z=e=>{let{pageContext:{markupData:t,lang:l}}=e;return r.createElement(n.Pd.Provider,{value:{style:{verticalAlign:"middle"}}},r.createElement(a.Z,{title:t.bannerTitle,babylon:!0}),r.createElement(p,null),r.createElement(y,{lang:l}),r.createElement(j,{lang:l}),r.createElement(g,{lang:l}),r.createElement(M.Z,{lang:l}))};const P=e=>{let{pageContext:{markupData:t,site:l,lang:n},location:a}=e;return r.createElement(k.Ag,{title:`${t.head} | ${t.bannerTitle.toUpperCase()}`,description:t.metaDescription,siteUrl:l.siteUrl,path:a.pathname,lang:n})}},8322:function(e,t,l){"use strict";l.d(t,{Q:function(){return r}});let r=function(e){return e.dark="dark",e.light="light",e}({})},4471:function(e,t,l){var r=l(7294);function n(e){return r.createElement("svg",e,[r.createElement("line",{width:"800",height:"8",stroke:"#f9f9f9",strokeWidth:"8",strokeDasharray:"8 8",x1:"0",x2:"100%",y1:"4",y2:"4",key:0}),r.createElement("line",{width:"800",height:"8",stroke:"#111111",strokeWidth:"8",strokeDasharray:"8 8",x1:"8",x2:"100%",y1:"4",y2:"4",key:1})])}n.defaultProps={height:"8"},e.exports=n,n.default=n}}]); -//# sourceMappingURL=component---src-pages-templates-index-tsx-9eb91922ad7dfced24d1.js.map \ No newline at end of file +(self.webpackChunkcode_cave=self.webpackChunkcode_cave||[]).push([[832],{6838:function(e,t,l){var r=l(9720).w_;e.exports.z=function(e){return r({tag:"svg",attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M304 280h416c4.4 0 8-3.6 8-8 0-40-8.8-76.7-25.9-108.1-17.2-31.5-42.5-56.8-74-74C596.7 72.8 560 64 520 64h-16c-40 0-76.7 8.8-108.1 25.9-31.5 17.2-56.8 42.5-74 74C304.8 195.3 296 232 296 272c0 4.4 3.6 8 8 8z"}},{tag:"path",attr:{d:"M940 512H792V412c76.8 0 139-62.2 139-139 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 34.8-28.2 63-63 63H232c-34.8 0-63-28.2-63-63 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 76.8 62.2 139 139 139v100H84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h148v96c0 6.5.2 13 .7 19.3C164.1 728.6 116 796.7 116 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-44.2 23.9-82.9 59.6-103.7 6 17.2 13.6 33.6 22.7 49 24.3 41.5 59 76.2 100.5 100.5 28.9 16.9 61 28.8 95.3 34.5 4.4 0 8-3.6 8-8V484c0-4.4 3.6-8 8-8h60c4.4 0 8 3.6 8 8v464.2c0 4.4 3.6 8 8 8 34.3-5.7 66.4-17.6 95.3-34.5 41.5-24.3 76.2-59 100.5-100.5 9.1-15.5 16.7-31.9 22.7-49C812.1 793.1 836 831.8 836 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-79.3-48.1-147.4-116.7-176.7.4-6.4.7-12.8.7-19.3v-96h148c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z"}}]})(e)}},6488:function(e,t,l){var r=l(9720).w_;e.exports.p=function(e){return r({tag:"svg",attr:{viewBox:"0 0 16 16",fill:"currentColor"},child:[{tag:"path",attr:{fillRule:"evenodd",d:"M6.5 4a.5.5 0 01.5-.5h5a.5.5 0 01.5.5v5a.5.5 0 01-1 0V4.5H7a.5.5 0 01-.5-.5z",clipRule:"evenodd"}},{tag:"path",attr:{fillRule:"evenodd",d:"M12.354 3.646a.5.5 0 010 .708l-9 9a.5.5 0 01-.708-.708l9-9a.5.5 0 01.708 0z",clipRule:"evenodd"}}]})(e)}},4032:function(e,t,l){var r=l(9720).w_;e.exports.t=function(e){return r({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z"}}]})(e)}},1929:function(e,t,l){"use strict";l.d(t,{Z:function(){return d}});var r=l(7294),n=l(8032),a=l(4471),o=l.n(a),s=l(1164);var c=e=>{let{className:t}=e;return r.createElement("div",{className:`flex justify-center items-center h-full w-full ${t}`},r.createElement("svg",{"aria-hidden":"true",className:"w-8 h-8 mr-2 text-main-10 animate-spin dark:text-secondary-10 fill-main-100",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg"},r.createElement("path",{d:"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z",fill:"currentColor"}),r.createElement("path",{d:"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z",fill:"currentFill"})))};var i=()=>{const{0:e,1:t}=(0,r.useState)(!1),n=(0,r.useRef)(!0),a=(0,r.useRef)(null);return(0,r.useEffect)((()=>{if(!n.current||!a.current||"undefined"==typeof window)return;n.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 r=a.current;r.width=r.clientWidth,r.height=r.clientHeight;const o=r.transferControlToOffscreen();e.postMessage({canvas:o},[o]);const s=()=>{e.postMessage({width:r.clientWidth,height:r.clientHeight})};window.addEventListener("resize",s,{passive:!0});const c=t=>{t.preventDefault(),e.postMessage({wheel:t.deltaY})};r.addEventListener("wheel",c);const i=t=>{e.postMessage({x:t.movementX,y:t.movementY})};r.addEventListener("mousedown",(e=>{e.preventDefault(),window.addEventListener("mousemove",i,{passive:!0}),window.addEventListener("mouseup",(()=>window.removeEventListener("mousemove",i)),{once:!0,passive:!0})}));let d;return r.addEventListener("touchstart",(t=>{if(1!==t.touches.length)return;const l=t.touches[0];t.preventDefault();const r={x:l.screenX,y:l.screenY};d=t=>{const{newX:l,newY:n}=((t,l)=>{const r=t.touches[0];return e.postMessage({x:r.screenX-l.x,y:r.screenY-l.y}),{newX:r.screenX,newY:r.screenY}})(t,r);r.x=l,r.y=n},window.addEventListener("touchmove",d,{passive:!0}),window.addEventListener("touchend",(()=>{window.removeEventListener("touchmove",d)}),{passive:!0})}),{passive:!0}),()=>{window&&(window.removeEventListener("resize",s),window.removeEventListener("mousemove",i),window.removeEventListener("touchmove",d),r&&r.removeEventListener("wheel",c),e.terminate())}}),[]),r.createElement("div",{className:"h-full w-full relative"},r.createElement("canvas",{ref:a,className:"bg-main-100 h-91 w-full flex items-center justify-center cursor-pointer"}),e?null:r.createElement(c,{className:"absolute top-0 left-0 right-0 bottom-0 z-10"}))};var d=e=>{let{heightClass:t="min-h-91",title:l,className:a,borderBottom:c,borderTop:d,babylon:m,image:f}=e;const{0:u,1:p}=(0,r.useState)("translate-y-full");return(0,r.useEffect)((()=>{p("translate-y-0")}),[]),r.createElement("div",{className:`w-full flex items-center bg-main-100 relative overflow-hidden px-6 ${t} ${a}`},d?r.createElement(o(),{className:"absolute top-0 left-0 right-0 w-full"}):null,r.createElement(s.Z,{className:"h-full flex flex-col lg:flex-row py-12 lg:py-0 items-center text-secondary-100 flex-grow gap-y-8"},r.createElement("div",{className:"flex flex-col overflow-hidden items-left h-full justify-center text-secondary-100 h-full w-full lg:w-1/2 bg-main-100"},r.createElement("h1",{className:"overflow-hidden mb-8 w-full"},r.createElement("span",{className:`banner-title inline-block text-4xl w-full text-center transition-all duration-1000 font-light ${u}`},l))),m?r.createElement("div",{className:"w-[85%] lg:w-1/2 lg:h-full hidden md:flex -order-1 lg:order-none"},r.createElement(i,null)):null,f&&!m?r.createElement("div",{className:"w-[220px] lg:w-1/2 lg:h-full flex justify-center items-center -order-1 lg:order-none"},r.createElement(n.G,{image:f,alt:"cover",className:"object-contain aspect-square"})):null),c?r.createElement(o(),{className:"absolute bottom-0 left-0 right-0 w-full"}):null)}},8039:function(e,t,l){"use strict";l.d(t,{Z:function(){return m}});var r=l(7294),n=l(4160),a=l(8322),o=l(216);var s=e=>{let{id:t,type:l,label:n,placeholder:a,className:o,placeholderIndentClass:s="placeholder:left-[60px]",...c}=e;return r.createElement("div",{className:"relative w-full h-10"},r.createElement("input",Object.assign({id:t,type:l,placeholder:null!=a?a:" "},c,{className:`peer h-full w-full rounded-lg border-solid border border-main-100 border-t-secondary-100 px-4 py-2 text-sm font-medium text-main-100 placeholder-shown:border placeholder-shown:border-main-100 focus:border-t-secondary-100 focus:border-main-100 bg-secondary-100 placeholder:absolute ${s} focus:placeholder:left-4 placeholder:transition-all placeholder:italic placeholder:text-main-10 placeholder:font-light`})),r.createElement("label",{htmlFor:t,className:"font-medium before:content-[' '] after:content-[' '] pointer-events-none absolute leading-tight text-xs left-0 -top-[6.5px] flex h-full w-full select-none text-main-100 transition-all before:pointer-events-none before:mt-[6.5px] before:mr-1 before:box-border before:block before:h-1.5 before:w-2.5 before:rounded-tl-lg after:pointer-events-none after:mt-[6.5px] after:ml-1 after:box-border after:block after:h-1.5 after:w-2.5 after:flex-grow after:rounded-tr-lg peer-placeholder-shown:text-sm peer-placeholder-shown:leading-[3.9] peer-placeholder-shown:text-main-100 peer-placeholder-shown:before:border-0 peer-focus:text-main-100 peer-placeholder-shown:after:border-0 peer-focus:text-xs peer-focus:leading-tight before:border-t before:border-l before:border-main-100 after:border-t after:border-r after:border-main-100 peer-focus:before:border-t peer-focus:before:border-l peer-focus:before:border-main-100 peer-focus:after:border-t peer-focus:after:border-r peer-focus:after:border-main-100"},n))};var c=e=>{let{id:t,label:l,placeholder:n,className:a,placeholderIndentClass:o="placeholder:left-[60px]",rows:s=1,...c}=e;return r.createElement("div",{className:"relative w-full min-h-10"},r.createElement("textarea",Object.assign({id:t,placeholder:null!=n?n:" ",rows:s},c,{className:`peer h-full w-full rounded-lg border-solid border border-main-100 border-t-secondary-100 px-4 py-2 text-sm font-medium text-main-100 placeholder-shown:border placeholder-shown:border-main-100 focus:border-t-secondary-100 focus:border-main-100 bg-secondary-100 placeholder:absolute ${o} focus:placeholder:left-4 placeholder:transition-all placeholder:italic placeholder:text-main-10 placeholder:font-light`})),r.createElement("label",{htmlFor:t,className:"font-medium before:content-[' '] after:content-[' '] pointer-events-none absolute leading-tight text-xs left-0 -top-[6.5px] flex h-full w-full select-none text-main-100 transition-all before:pointer-events-none before:mt-[6.5px] before:mr-1 before:box-border before:block before:h-1.5 before:w-2.5 before:rounded-tl-lg after:pointer-events-none after:mt-[6.5px] after:ml-1 after:box-border after:block after:h-1.5 after:w-2.5 after:flex-grow after:rounded-tr-lg peer-placeholder-shown:text-sm peer-placeholder-shown:leading-[3.9] peer-placeholder-shown:text-main-100 peer-placeholder-shown:before:border-0 peer-focus:text-main-100 peer-placeholder-shown:after:border-0 peer-focus:text-xs peer-focus:leading-tight before:border-t before:border-l before:border-main-100 after:border-t after:border-r after:border-main-100 peer-focus:before:border-t peer-focus:before:border-l peer-focus:before:border-main-100 peer-focus:after:border-t peer-focus:after:border-r peer-focus:after:border-main-100"},l))};var i=e=>{let{id:t,name:l,label:n,options:a,placeholder:o,className:s,...c}=e;return r.createElement("div",{className:"relative w-full h-10"},r.createElement("select",Object.assign({disabled:!0,id:t,name:l,placeholder:null!=o?o:" "},c,{value:"",className:"peer h-full w-full rounded-lg border-solid border border-main-100 border-t-main-100 px-4 py-2 text-sm font-medium text-main-100 placeholder-shown:border placeholder-shown:border-main-100 focus:border-t-secondary-100 focus:border-main-100 bg-secondary-100 placeholder:absolute focus:placeholder:left-4 placeholder:transition-all placeholder:italic placeholder:text-main-10 placeholder:font-light"}),r.createElement("option",{hidden:!0,disabled:!0,value:""})),r.createElement("label",{htmlFor:t,className:"font-medium before:content-[' '] after:content-[' '] pointer-events-none absolute left-0 -top-[6.5px] flex h-full w-full select-none text-main-100 transition-all before:pointer-events-none before:mt-[6.5px] before:mr-1 before:box-border before:block before:h-1.5 before:w-2.5 before:rounded-tl-lg after:pointer-events-none after:mt-[6.5px] after:ml-1 after:box-border after:block after:h-1.5 after:w-2.5 after:flex-grow after:rounded-tr-lg text-sm leading-[3.9] text-main-100 before:border-0 after:border-0 peer-focus:text-main-100 peer-focus:text-xs peer-focus:leading-tight before:border-t before:border-l before:border-main-100 after:border-t after:border-r after:border-main-100 peer-focus:before:border-t peer-focus:before:border-l peer-focus:before:border-main-100 peer-focus:after:border-t peer-focus:after:border-r peer-focus:after:border-main-100"},n,r.createElement("span",{className:"italic text-main-10 font-light pl-1 group-[.hide]:hidden "},o)))},d=l(6061);var m=e=>{var t,l,m,u,p,h,b,v,x,g,w,E;let{lang:y}=e;const N=(0,n.K2)(f),k=null==N||null===(t=N.markupData)||void 0===t||null===(l=t.nodes)||void 0===l||null===(m=l.find((e=>e.fields.language===y)))||void 0===m||null===(u=m.frontmatter)||void 0===u?void 0:u.contactForm;let C;return C=y in N?null==N||null===(p=N[y])||void 0===p||null===(h=p.nodes)||void 0===h||null===(b=h[0])||void 0===b?void 0:b.html:null==N||null===(v=N.en)||void 0===v||null===(x=v.nodes)||void 0===x||null===(g=x[0])||void 0===g?void 0:g.html,r.createElement(r.Fragment,null,k?r.createElement(o.Z,{id:"contact-form",theme:a.Q.light,title:null!==(w=null==k?void 0:k.sectionTitle)&&void 0!==w?w:"Let’s discuss your project",linkTitle:null!==(E=null==k?void 0:k.sectionLinkTitle)&&void 0!==E?E:"we’ll be glad to hear from you!",section:"/#contact-form",isArrowLink:!1},r.createElement("div",{className:"flex flex-col md:flex-row gap-10 lg:gap-28 justify-center max-w-4.5xl items-stretch"},C?r.createElement("p",{className:"contact-form-description flex-1 text-xl font-light w-full",dangerouslySetInnerHTML:{__html:C}}):null,r.createElement("form",{action:"submit",className:"flex-1 flex flex-col gap-2.5"},r.createElement(s,{id:"email",type:"email",name:"email",label:k.emailLabel}),r.createElement(s,{id:"companyName",type:"text",name:"companyName",label:k.companyNameLabel}),r.createElement(s,{id:"name",type:"text",name:"name",label:k.nameLabel}),r.createElement(i,{id:"services",name:"services",label:k.servicesLabel,options:["Web development","QA","Mobile development","DevOps","UX/UI"],placeholder:k.selectPlaceholder}),r.createElement(i,{id:"budget",name:"budget",label:k.budgetLabel,options:["$5000","$15000","$50000"],placeholder:k.selectPlaceholder}),r.createElement(c,{name:"description",label:k.descriptionLabel,placeholder:k.descriptionPlaceholder,placeholderIndentClass:"placeholder:left-[150px]",rows:5}),r.createElement("label",{className:"flex items-center gap-2 pt-2.5 text-xs font-normal"},r.createElement("input",{type:"checkbox",className:"h-5 w-5 accent-main-100"})," ",r.createElement("span",null,k.privacyPolicyCheckboxLabel)),r.createElement("label",{className:"flex items-center gap-2 text-xs font-normal"},r.createElement("input",{type:"checkbox",className:"h-5 w-5 accent-main-100"})," ",r.createElement("span",null,k.adsCheckboxLabel)),r.createElement("div",{className:"flex items-center justify-center pt-5"},r.createElement(d.Z,{title:k.buttonLabel,className:"px-6"}))))):null)};const f="1713862793"},216:function(e,t,l){"use strict";var r=l(7294),n=l(4160),a=l(8322),o=l(4471),s=l.n(o),c=l(1164);t.Z=e=>{let{section:t,theme:l,title:o,linkTitle:i,className:d,children:m,borderT:f,borderB:u,isArrowLink:p=!0,...h}=e;const b=l===a.Q.dark?"text-secondary-100":"text-main-100",v=l===a.Q.dark?"text-secondary-100 hover:text-secondary-70":"text-main-100 hover:text-main-10",x=l===a.Q.dark?"bg-main-100":"text-secondary-100";return r.createElement(r.Fragment,null,f?r.createElement(s(),{className:"w-full"}):null,r.createElement("section",Object.assign({className:`w-full py-16 ${x} ${d}`},h),r.createElement(c.Z,{className:`flex-col items-center ${b}`},r.createElement("div",{className:"flex justify-between w-full items-center pb-8 sm:pb-14 flex-col sm:flex-row gap-5"},r.createElement("h2",{className:`text-4xl font-bold w-full ${b}`},o.toUpperCase()),t?r.createElement(n.rU,{to:`/${t}`,className:`w-full sm:w-auto text-start sm:text-end text-xl font-normal cursor-pointer whitespace-nowrap ${v}`},i?i.toUpperCase():"DISCOVER MORE"," ",p?r.createElement(r.Fragment,null,"→"):null):null),m)),u?r.createElement(s(),{className:"w-full"}):null)}},3793:function(e,t,l){"use strict";var r=l(7294),n=l(4160),a=l(6488),o=l(9165),s=l(8322);t.Z=e=>{let{post:t,theme:l,className:c,markupData:i,lang:d}=e;const{date:m,title:f,text:u}=t.frontmatter,p=Math.floor(t.wordCount.words/200),h=p||1,b=l===s.Q.light?"text-main-100":"text-secondary-100",v=l===s.Q.light?"text-main-10":"text-secondary-10",x=l===s.Q.light?"hover:text-main-10":"hover:text-secondary-10";return r.createElement(n.rU,{to:`/blog/${t.id}`,className:`flex flex-col sm:flex-row w-full justify-center gap-5 md:gap-14 ${b} ${x} ${c}`,itemScope:!0,itemType:"https://schema.org/Article"},r.createElement("div",{className:"flex flex-col w-full max-w-[400px] gap-2.5 sm:gap-5"},r.createElement("p",{itemProp:"dateCreated",className:`text-lg ${v}`},m),r.createElement("h3",{itemProp:"headline",className:`text-3xl font-semibold ${b}`},f)),r.createElement("div",{className:"flex flex-col w-full max-w-[500px] gap-5"},r.createElement("p",{className:`font-normal text-base ${b}`,itemProp:"abstract"},u.split(" ").slice(0,70).join(" "),"..."),r.createElement("div",{className:"flex w-full items-center justify-between"},r.createElement("div",{className:"flex items-center gap-3 text-sm font-bold"},r.createElement("span",null,null==i?void 0:i.readPostLink),r.createElement(a.p,{size:14})),r.createElement("p",{className:`text-sm ${v}`},`${null==i?void 0:i.readingTimeTitle}: ~${h} ${null==i?void 0:i.readingTimeUnits}.`))),r.createElement(o.Lx,{itemProp:"copyrightHolder",lang:d}))}},6745:function(e,t,l){"use strict";var r=l(7294),n=l(4160),a=l(8032),o=l(8322),s=l(6488),c=l(9165);t.Z=e=>{let{project:t,className:l,theme:i,lang:d}=e;const m=(0,a.c)(t.frontmatter.cover),{title:f,teamSize:u,duration:p}=t.frontmatter,h=i===o.Q.light?"text-main-100 hover:text-main-10":"text-secondary-100 hover:text-secondary-10",b=i===o.Q.light?"bg-secondary-100 hover:bg-secondary-100":"bg-main-100 hover:bg-main-100";return r.createElement(n.rU,{to:`/projects/${t.id}`,className:`${b} ${h} flex flex-col justify-between hover:text-main-10 rounded-2xl p-2.5 gap-2.5 ${l}`,itemScope:!0,itemType:"https://schema.org/CreativeWork"},r.createElement("div",{className:"w-full h-full relative"},m?r.createElement(a.G,{image:m,alt:"cover",itemProp:"image",className:"object-contain w-full rounded-[10px]"}):null,r.createElement("div",{className:"absolute left-2 bottom-2 flex items-center gap-2.5 z-50"},r.createElement("p",{className:"backdrop-blur-sm backdrop-brightness-75 text-secondary-100 px-5 h-10 flex items-center rounded-lg"},p),r.createElement("p",{className:"backdrop-blur-sm backdrop-brightness-75 text-secondary-100 px-5 h-10 flex items-center rounded-lg"},u))),r.createElement("div",{className:"flex px-2.5 py-1 items-center grow"},r.createElement("h3",{className:"text-base grow font-medium h-full",itemProp:"description"},f),r.createElement(s.p,{size:20})),r.createElement(c.Lx,{itemProp:"author",lang:d}))}},171:function(e,t,l){"use strict";l.r(t),l.d(t,{Head:function(){return P},default:function(){return Z}});var r=l(7294),n=l(9720),a=l(1929),o=l(4160),s=l(6838),c=l(7576),i=l(2074);var d=(0,r.forwardRef)(((e,t)=>{let{className:l,children:n}=e;const[a,o]=(0,c.Z)({loop:!0,dragFree:!0,duration:1e4,align:0},[(0,i.Z)({delay:0,stopOnInteraction:!1,stopOnMouseEnter:!0})]);return r.createElement("div",{className:`overflow-hidden ${l}`,ref:a},r.createElement("div",{ref:t,className:"h-full flex items-center",onMouseEnter:()=>{null==o||o.internalEngine().animation.stop()},onMouseLeave:()=>{null==o||o.internalEngine().animation.start()}},n))})),m=l(4471),f=l.n(m);var u=e=>{let{children:t}=e;return r.createElement("div",{className:"h-full shrink-0 min-w-0 cursor-pointer flex flex-col justify-between items-center content-center w-[192px] md:w-[256px] xl:w-[256px] 3xl:w-[400px]"},r.createElement(f(),{className:"min-w-0 shrink-0 w-full"}),r.createElement("p",{className:"text-lg font-semibold whitespace-nowrap"},t),r.createElement(f(),{className:"min-w-0 shrink-0 w-full"}))};var p=()=>{var e,t;const l=(0,o.K2)(h),n=null==l||null===(e=l.markdownRemark)||void 0===e||null===(t=e.frontmatter)||void 0===t?void 0:t.stack;return r.createElement(r.Fragment,null,n?r.createElement("section",{className:"h-16 flex flex-col relative"},r.createElement(d,{className:"grow"},n.map((e=>r.createElement(u,{key:e},e))),r.createElement(u,null,r.createElement(s.z,{size:32,className:"-rotate-90"})))):null)};const h="3518807326";var b=l(3793),v=l(216),x=l(8322);var g=e=>{var t,l,n,a,s,c,i,d,m,f;let{lang:u}=e;const p=(0,o.K2)(w),h=null==p||null===(t=p.markupData)||void 0===t||null===(l=t.nodes)||void 0===l||null===(n=l.find((e=>e.fields.language===u)))||void 0===n||null===(a=n.frontmatter)||void 0===a?void 0:a.blog;let g;return g=u in p?null==p||null===(s=p[u])||void 0===s||null===(c=s.nodes)||void 0===c?void 0:c[0]:null==p||null===(i=p.en)||void 0===i||null===(d=i.nodes)||void 0===d?void 0:d[0],r.createElement(r.Fragment,null,g?r.createElement(v.Z,{theme:x.Q.dark,title:null!==(m=null==h?void 0:h.blogSectionTitle)&&void 0!==m?m:"new in our blog",linkTitle:null!==(f=null==h?void 0:h.blogSectionLinkTitle)&&void 0!==f?f:"all posts",section:"blog",borderB:!0},r.createElement(b.Z,{lang:u,post:g,theme:x.Q.dark,markupData:h})):null)};const w="641077248";var E=l(6745);var y=e=>{var t,l,n,a,s,c,i,d;let{excludeId:m,lang:f}=e;const u=(0,o.K2)(N),p=null==u||null===(t=u.markupData)||void 0===t||null===(l=t.nodes)||void 0===l||null===(n=l.find((e=>e.fields.language===f)))||void 0===n||null===(a=n.frontmatter)||void 0===a?void 0:a.projects;let h;return h=f in u?null==u||null===(s=u[f])||void 0===s?void 0:s.nodes:null===(c=u.en)||void 0===c?void 0:c.nodes,h?(m&&(h=h.filter((e=>e.id!==m))),r.createElement(v.Z,{theme:x.Q.dark,section:"projects",title:null!==(i=null==p?void 0:p.moreProjectsSectionTitle)&&void 0!==i?i:"OUR PROJECTS",linkTitle:null!==(d=null==p?void 0:p.moreProjectsSectionLinkTitle)&&void 0!==d?d:"Discover MORE",borderB:!0},r.createElement("div",{className:"flex justify-between items-center gap-5 lg:gap-10 flex-col sm:flex-row items-stretch"},h.map(((e,t)=>{if(3!==t)return r.createElement(E.Z,{key:e.id,project:e,lang:f,theme:x.Q.light,className:"flex-1 sm:last:hidden lg:last:flex"})}))))):r.createElement(r.Fragment,null)};const N="2041872833";var k=l(9165),C=l(8032),L=l(4032);var $=e=>{let{review:{frontmatter:{company:t,person:l,position:n,location:a,image:o},html:s},className:c}=e;const i=(0,C.c)(o);return r.createElement("div",{className:`flex flex-col p-6 gap-3.5 bg-secondary-100 shadow-[0px_2px_14px_rgba(68,68,68,0.25)] rounded-2.5xl text-main-100 ${c}`},r.createElement("div",{className:"flex w-full items-start"},i?r.createElement(C.G,{image:i,alt:t,className:"h-[72px] w-[72px] object-cover rounded-full mr-3.5"}):null,r.createElement("div",{className:"flex-1 font-normal text-base text-main-10 leading-5"},r.createElement("h3",{className:"font-bold text-xl text-main-100"},l),r.createElement("h4",null,r.createElement("span",null,n),", ",r.createElement("span",null,t)),r.createElement("h4",null,a)),r.createElement(L.t,{size:25,color:"#E4E4E4"})),r.createElement("div",{className:"review-body text-sm",dangerouslySetInnerHTML:{__html:s}}))};var j=e=>{var t,l,n,a,s,c,i,d,m;let{lang:f}=e;const u=(0,o.K2)(T),p=null==u||null===(t=u.markupData)||void 0===t||null===(l=t.nodes)||void 0===l||null===(n=l.find((e=>e.fields.language===f)))||void 0===n||null===(a=n.frontmatter)||void 0===a?void 0:a.reviews;let h;return h=f in u?null==u||null===(s=u[f])||void 0===s||null===(c=s.nodes)||void 0===c?void 0:c.sort(((e,t)=>e.frontmatter.person>t.frontmatter.person?1:-1)):null==u||null===(i=u.en)||void 0===i||null===(d=i.nodes)||void 0===d?void 0:d.sort(((e,t)=>e.frontmatter.person>t.frontmatter.person?1:-1)),r.createElement(r.Fragment,null,h?r.createElement(v.Z,{id:"reviews",theme:x.Q.light,title:null!==(m=null==p?void 0:p.title)&&void 0!==m?m:"our clients' testimonials",section:"/#reviews",linkTitle:null==p?void 0:p.linkTitle,isArrowLink:!1,borderB:!0},r.createElement("div",{className:"flex justify-between items-start gap-5 lg:gap-10 flex-col md:flex-row"},h.map((e=>r.createElement($,{review:e,key:e.id,className:"flex-1"}))))):null)};const T="1287994371";var M=l(8039);var Z=e=>{let{pageContext:{markupData:t,lang:l}}=e;return r.createElement(n.Pd.Provider,{value:{style:{verticalAlign:"middle"}}},r.createElement(a.Z,{title:t.bannerTitle,babylon:!0}),r.createElement(p,null),r.createElement(y,{lang:l}),r.createElement(j,{lang:l}),r.createElement(g,{lang:l}),r.createElement(M.Z,{lang:l}))};const P=e=>{let{pageContext:{markupData:t,site:l,lang:n},location:a}=e;return r.createElement(k.Ag,{title:`${t.head} | ${t.bannerTitle.toUpperCase()}`,description:t.metaDescription,siteUrl:l.siteUrl,path:a.pathname,lang:n})}},8322:function(e,t,l){"use strict";l.d(t,{Q:function(){return r}});let r=function(e){return e.dark="dark",e.light="light",e}({})},4471:function(e,t,l){var r=l(7294);function n(e){return r.createElement("svg",e,[r.createElement("line",{width:"800",height:"8",stroke:"#f9f9f9",strokeWidth:"8",strokeDasharray:"8 8",x1:"0",x2:"100%",y1:"4",y2:"4",key:0}),r.createElement("line",{width:"800",height:"8",stroke:"#111111",strokeWidth:"8",strokeDasharray:"8 8",x1:"8",x2:"100%",y1:"4",y2:"4",key:1})])}n.defaultProps={height:"8"},e.exports=n,n.default=n}}]); +//# sourceMappingURL=component---src-pages-templates-index-tsx-c3e907b240efcbd2d914.js.map \ No newline at end of file diff --git a/component---src-pages-templates-index-tsx-c3e907b240efcbd2d914.js.map b/component---src-pages-templates-index-tsx-c3e907b240efcbd2d914.js.map new file mode 100644 index 00000000..ef8952b9 --- /dev/null +++ b/component---src-pages-templates-index-tsx-c3e907b240efcbd2d914.js.map @@ -0,0 +1 @@ +{"version":3,"file":"component---src-pages-templates-index-tsx-c3e907b240efcbd2d914.js","mappings":"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","sources":["webpack://code-cave/./node_modules/@react-icons/all-files/ai/AiFillBug.js","webpack://code-cave/./node_modules/@react-icons/all-files/bs/BsArrowUpRight.js","webpack://code-cave/./node_modules/@react-icons/all-files/fa/FaQuoteRight.js","webpack://code-cave/./src/components/common/spinner.tsx","webpack://code-cave/./src/components/babylonjs/babylon.tsx","webpack://code-cave/./src/components/common/banner.tsx","webpack://code-cave/./src/components/common/textInput.tsx","webpack://code-cave/./src/components/common/textAreaInput.tsx","webpack://code-cave/./src/components/common/selectInput.tsx","webpack://code-cave/./src/components/common/contactFormSection.tsx","webpack://code-cave/./src/components/common/templateSection.tsx","webpack://code-cave/./src/components/posts/postPreview.tsx","webpack://code-cave/./src/components/projects/projectPreview.tsx","webpack://code-cave/./src/components/stack/stackCarousel.tsx","webpack://code-cave/./src/components/stack/stakUnit.tsx","webpack://code-cave/./src/components/stack/stackSection.tsx","webpack://code-cave/./src/components/posts/postSection.tsx","webpack://code-cave/./src/components/projects/projectsSection.tsx","webpack://code-cave/./src/components/reviews/review.tsx","webpack://code-cave/./src/components/reviews/staticReviewsSection.tsx","webpack://code-cave/./src/pagesTemplates/index.tsx","webpack://code-cave/./src/types/common.type.ts","webpack://code-cave/./src/assets/common/border.svg"],"sourcesContent":["// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.AiFillBug = function AiFillBug (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M304 280h416c4.4 0 8-3.6 8-8 0-40-8.8-76.7-25.9-108.1-17.2-31.5-42.5-56.8-74-74C596.7 72.8 560 64 520 64h-16c-40 0-76.7 8.8-108.1 25.9-31.5 17.2-56.8 42.5-74 74C304.8 195.3 296 232 296 272c0 4.4 3.6 8 8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M940 512H792V412c76.8 0 139-62.2 139-139 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 34.8-28.2 63-63 63H232c-34.8 0-63-28.2-63-63 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 76.8 62.2 139 139 139v100H84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h148v96c0 6.5.2 13 .7 19.3C164.1 728.6 116 796.7 116 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-44.2 23.9-82.9 59.6-103.7 6 17.2 13.6 33.6 22.7 49 24.3 41.5 59 76.2 100.5 100.5 28.9 16.9 61 28.8 95.3 34.5 4.4 0 8-3.6 8-8V484c0-4.4 3.6-8 8-8h60c4.4 0 8 3.6 8 8v464.2c0 4.4 3.6 8 8 8 34.3-5.7 66.4-17.6 95.3-34.5 41.5-24.3 76.2-59 100.5-100.5 9.1-15.5 16.7-31.9 22.7-49C812.1 793.1 836 831.8 836 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-79.3-48.1-147.4-116.7-176.7.4-6.4.7-12.8.7-19.3v-96h148c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.BsArrowUpRight = function BsArrowUpRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 16 16\",\"fill\":\"currentColor\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M6.5 4a.5.5 0 01.5-.5h5a.5.5 0 01.5.5v5a.5.5 0 01-1 0V4.5H7a.5.5 0 01-.5-.5z\",\"clipRule\":\"evenodd\"}},{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M12.354 3.646a.5.5 0 010 .708l-9 9a.5.5 0 01-.708-.708l9-9a.5.5 0 01.708 0z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.FaQuoteRight = function FaQuoteRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z\"}}]})(props);\n};\n","import React from \"react\";\n\nconst Spinner = ({ className }: { className?: string }) => {\n return (\n \n \n \n \n \n \n );\n};\n\nexport default Spinner;\n","import React, { useEffect, useRef, useState } from \"react\";\n\nimport Spinner from \"../common/spinner\";\n\nconst Babylon = () => {\n const [isBabylonReady, setIsBabylonReady] = useState(false);\n const isInitial = useRef(true);\n const canvasRef = useRef(null);\n\n useEffect(() => {\n if (\n !isInitial.current ||\n !canvasRef.current ||\n typeof window == \"undefined\"\n )\n return;\n\n isInitial.current = false;\n\n // WORKER instance creation\n const babylonWorker = new Worker(\n new URL(\"../../workers/babylon.worker.ts\", import.meta.url),\n {\n type: \"module\",\n }\n );\n babylonWorker.onmessage = ({ data }) => {\n if (data === \"ready\") setIsBabylonReady(true);\n };\n\n // OFFSCREEN canvas\n const canvas = canvasRef.current;\n canvas.width = canvas.clientWidth;\n canvas.height = canvas.clientHeight;\n\n const offscreenCanvas = canvas.transferControlToOffscreen();\n babylonWorker.postMessage({ canvas: offscreenCanvas }, [offscreenCanvas]);\n\n // RESIZE handler\n const onResizeHandler = () => {\n babylonWorker.postMessage({\n width: canvas.clientWidth,\n height: canvas.clientHeight,\n });\n };\n window.addEventListener(\"resize\", onResizeHandler, { passive: true });\n\n // WHEEL handler\n const onWheelHandler = (e: WheelEvent) => {\n e.preventDefault();\n babylonWorker.postMessage({ wheel: e.deltaY });\n };\n canvas.addEventListener(\"wheel\", onWheelHandler);\n\n // ROTATE mouse handler\n const onMouseMoveHandler = (e: MouseEvent) => {\n babylonWorker.postMessage({\n x: e.movementX,\n y: e.movementY,\n });\n };\n canvas.addEventListener(\"mousedown\", (e: MouseEvent) => {\n e.preventDefault();\n window.addEventListener(\"mousemove\", onMouseMoveHandler, {\n passive: true,\n });\n window.addEventListener(\n \"mouseup\",\n () => window.removeEventListener(\"mousemove\", onMouseMoveHandler),\n { once: true, passive: true }\n );\n });\n\n // ROTATE touch handler\n const nestedTouchMoveHandler = (\n e: TouchEvent,\n previousCoords: { x: number; y: number }\n ) => {\n const touch = e.touches[0];\n babylonWorker.postMessage({\n x: touch.screenX - previousCoords.x,\n y: touch.screenY - previousCoords.y,\n });\n\n return {\n newX: touch.screenX,\n newY: touch.screenY,\n };\n };\n let onTouchMoveHandler: (e: TouchEvent) => void;\n canvas.addEventListener(\n \"touchstart\",\n (e: TouchEvent) => {\n if (e.touches.length !== 1) return;\n\n const firstTouch = e.touches[0];\n\n e.preventDefault();\n const previousCoords = {\n x: firstTouch.screenX,\n y: firstTouch.screenY,\n };\n\n onTouchMoveHandler = (e: TouchEvent) => {\n const { newX, newY } = nestedTouchMoveHandler(e, previousCoords);\n previousCoords.x = newX;\n previousCoords.y = newY;\n };\n\n window.addEventListener(\"touchmove\", onTouchMoveHandler, {\n passive: true,\n });\n window.addEventListener(\n \"touchend\",\n () => {\n window.removeEventListener(\"touchmove\", onTouchMoveHandler);\n },\n { passive: true }\n );\n },\n { passive: true }\n );\n\n // UNMOUNT handler\n return () => {\n if (!window) return;\n\n window.removeEventListener(\"resize\", onResizeHandler);\n window.removeEventListener(\"mousemove\", onMouseMoveHandler);\n window.removeEventListener(\"touchmove\", onTouchMoveHandler);\n if (canvas) {\n canvas.removeEventListener(\"wheel\", onWheelHandler);\n }\n babylonWorker.terminate();\n };\n }, []);\n\n return (\n
\n \n {!isBabylonReady ? (\n \n ) : null}\n
\n );\n};\n\nexport default Babylon;\n","import React, { useEffect, useState } from \"react\";\nimport { GatsbyImage, IGatsbyImageData } from \"gatsby-plugin-image\";\n\nimport Border from \"../../assets/common/border.svg\";\n\nimport ContentContainer from \"./contentContainer\";\nimport Babylon from \"../babylonjs/babylon\";\n\nconst Banner = ({\n heightClass = \"min-h-91\",\n title,\n className,\n borderBottom,\n borderTop,\n babylon,\n image,\n}: {\n heightClass?: string;\n title: string;\n className?: string;\n borderBottom?: boolean;\n borderTop?: boolean;\n babylon?: boolean;\n image?: IGatsbyImageData;\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 \n {borderTop ? (\n \n ) : null}\n \n
\n

\n \n {title}\n \n

\n
\n {babylon ? (\n \n ) : null}\n {image && !babylon ? (\n
\n \n
\n ) : null}\n \n {borderBottom ? (\n \n ) : null}\n \n );\n};\n\nexport default Banner;\n","import React from \"react\";\n\ninterface ITextInputProps extends React.HTMLAttributes {\n type: string;\n name: string;\n label: string;\n className?: string;\n placeholderIndentClass?: string;\n}\n\nconst TextInput = ({\n id,\n type,\n label,\n placeholder,\n className,\n placeholderIndentClass = \"placeholder:left-[60px]\",\n ...attr\n}: ITextInputProps) => {\n return (\n
\n \n\n \n {label}\n \n
\n );\n};\n\nexport default TextInput;\n","import React from \"react\";\n\ninterface ITextAreaInputProps\n extends React.HTMLAttributes {\n name: string;\n label: string;\n className?: string;\n placeholderIndentClass?: string;\n rows?: number;\n}\n\nconst TextAreaInput = ({\n id,\n label,\n placeholder,\n className,\n placeholderIndentClass = \"placeholder:left-[60px]\",\n rows = 1,\n ...attr\n}: ITextAreaInputProps) => {\n return (\n
\n \n\n \n {label}\n \n
\n );\n};\n\nexport default TextAreaInput;\n","import React from \"react\";\n\ninterface ISelectInputProps extends React.HTMLAttributes {\n name: string;\n label: string;\n options: string[];\n className?: string;\n}\n\nconst SelectInput = ({\n id,\n name,\n label,\n options,\n placeholder,\n className,\n ...attr\n}: ISelectInputProps) => {\n const value = \"\";\n const isEmptySelected = !value;\n\n return (\n
\n \n \n {/* \n {options.map((option) => (\n \n {option}\n \n ))} */}\n \n\n \n {label}\n \n {placeholder}\n \n \n
\n );\n};\n\nexport default SelectInput;\n","import React from \"react\";\nimport { graphql, useStaticQuery } from \"gatsby\";\n\nimport { ILang, Theme } from \"../../types/common.type\";\nimport {\n IContactFormMarkup,\n IMarkupQueryResult,\n} from \"../../types/commonMarkup.type\";\n\nimport TemplateSection from \"./templateSection\";\nimport TextInput from \"./textInput\";\nimport TextAreaInput from \"./textAreaInput\";\nimport SelectInput from \"./selectInput\";\nimport DiscussProjectButton from \"../layout/discussProjectButton\";\n\ninterface IContactFromQueryResult\n extends IMarkupQueryResult<{ contactForm: IContactFormMarkup }> {\n en?: { nodes?: { html: string }[] };\n ru?: { nodes?: { html: string }[] };\n}\n\nconst ContactForm = ({ lang }: ILang) => {\n const formMdData = useStaticQuery(query) as IContactFromQueryResult;\n const formMarkup = formMdData?.markupData?.nodes?.find(\n (node) => node.fields.language === lang\n )?.frontmatter?.contactForm;\n\n let formDescription: string | null | undefined;\n if (lang in formMdData)\n formDescription = formMdData?.[lang]?.nodes?.[0]?.html as string | null;\n else formDescription = formMdData?.en?.nodes?.[0]?.html;\n\n return (\n <>\n {formMarkup ? (\n \n
\n {formDescription ? (\n \n ) : null}\n
\n \n \n \n \n \n \n \n \n
\n \n
\n \n
\n \n ) : null}\n \n );\n};\n\nexport default ContactForm;\n\nexport const query = graphql`\n query {\n en: allMarkdownRemark(\n filter: {\n fields: { sourceName: { eq: \"contactForm\" }, language: { eq: \"en\" } }\n }\n ) {\n nodes {\n html\n }\n }\n ru: allMarkdownRemark(\n filter: {\n fields: { sourceName: { eq: \"contactForm\" }, language: { eq: \"ru\" } }\n }\n ) {\n nodes {\n html\n }\n }\n markupData: allMarkdownRemark(\n filter: { fields: { sourceName: { eq: \"common\" } } }\n ) {\n nodes {\n fields {\n language\n }\n frontmatter {\n contactForm {\n sectionTitle\n sectionLinkTitle\n emailLabel\n nameLabel\n companyNameLabel\n servicesLabel\n budgetLabel\n selectPlaceholder\n descriptionLabel\n descriptionPlaceholder\n privacyPolicyCheckboxLabel\n adsCheckboxLabel\n buttonLabel\n }\n }\n }\n }\n }\n`;\n","import React, { PropsWithChildren } from \"react\";\nimport { Link } from \"gatsby\";\n\nimport { Theme } from \"../../types/common.type\";\n\nimport Border from \"../../assets/common/border.svg\";\n\nimport ContentContainer from \"./contentContainer\";\n\ninterface ITemplateSectionProps extends React.HTMLAttributes {\n title: string;\n theme: Theme;\n isArrowLink?: boolean;\n linkTitle?: string;\n section?: string;\n className?: string;\n borderT?: boolean;\n borderB?: boolean;\n}\n\nconst TemplateSection = ({\n section,\n theme,\n title,\n linkTitle,\n className,\n children,\n borderT,\n borderB,\n isArrowLink = true,\n ...attr\n}: PropsWithChildren) => {\n const mainColorClass =\n theme === Theme.dark ? \"text-secondary-100\" : \"text-main-100\";\n const linkColorClass =\n theme === Theme.dark\n ? \"text-secondary-100 hover:text-secondary-70\"\n : \"text-main-100 hover:text-main-10\";\n const bgColorClass =\n theme === Theme.dark ? \"bg-main-100\" : \"text-secondary-100\";\n\n return (\n <>\n {borderT ? : null}\n \n \n
\n

\n {title.toUpperCase()}\n

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

\n {date}\n

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

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

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

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

\n {duration}\n

\n

\n {teamSize}\n

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

{children}

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

{person}

\n

\n {position}, {company}\n

\n

{location}

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

{person}

\n // {person}\n //

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

\n //

\n // {location}\n //

\n //
\n //
\n // \n // \n );\n};\n\nexport default Review;\n","import React from \"react\";\nimport { graphql, useStaticQuery } from \"gatsby\";\n\nimport { ILang, Theme } from \"../../types/common.type\";\nimport {\n IReviewQueryResult,\n IReviewSectionQueryResult,\n} from \"../../types/review.type\";\n\nimport TemplateSection from \"../common/templateSection\";\nimport Review from \"./review\";\n\nconst StaticReviewsSection = ({ lang }: ILang) => {\n const reviewsData = useStaticQuery(query) as IReviewSectionQueryResult;\n\n const sectionMarkup = reviewsData?.markupData?.nodes?.find(\n (node) => node.fields.language === lang\n )?.frontmatter?.reviews;\n\n let reviews: IReviewQueryResult[] | null | undefined;\n\n if (lang in reviewsData)\n reviews = reviewsData?.[lang]?.nodes?.sort((a, b) =>\n a.frontmatter.person > b.frontmatter.person ? 1 : -1\n ) as IReviewQueryResult[] | null | undefined;\n else\n reviews = reviewsData?.en?.nodes?.sort((a, b) =>\n a.frontmatter.person > b.frontmatter.person ? 1 : -1\n );\n\n return (\n <>\n {reviews ? (\n \n
\n {reviews.map((review) => (\n \n ))}\n
\n \n ) : null}\n \n );\n};\n\nexport default StaticReviewsSection;\n\nexport const query = graphql`\n query {\n en: allMarkdownRemark(\n filter: {\n fields: { sourceName: { eq: \"reviews\" }, language: { eq: \"en\" } }\n }\n ) {\n nodes {\n id\n html\n frontmatter {\n company\n location\n person\n position\n image {\n childImageSharp {\n gatsbyImageData(\n height: 112\n placeholder: BLURRED\n formats: [AUTO, AVIF, WEBP]\n )\n }\n }\n }\n }\n }\n ru: allMarkdownRemark(\n filter: {\n fields: { sourceName: { eq: \"reviews\" }, language: { eq: \"ru\" } }\n }\n ) {\n nodes {\n id\n html\n frontmatter {\n company\n location\n person\n position\n image {\n childImageSharp {\n gatsbyImageData(\n height: 112\n placeholder: BLURRED\n formats: [AUTO, AVIF, WEBP]\n )\n }\n }\n }\n }\n }\n markupData: allMarkdownRemark(\n filter: { fields: { sourceName: { eq: \"common\" } } }\n sort: { frontmatter: { order: ASC } }\n ) {\n nodes {\n fields {\n language\n }\n frontmatter {\n reviews {\n title\n linkTitle\n }\n }\n }\n }\n }\n`;\n","import * as React from \"react\";\nimport type { HeadFC, HeadProps, PageProps } from \"gatsby\";\n\nimport { IconContext } from \"@react-icons/all-files\";\nimport \"../styles/styles.css\";\n\nimport { IIndexPageContext } from \"../types/index.type\";\n\nimport Banner from \"../components/common/banner\";\nimport StackSection from \"../components/stack/stackSection\";\nimport PostSection from \"../components/posts/postSection\";\nimport ProjectsSection from \"../components/projects/projectsSection\";\nimport { HeadSeo } from \"../components/common/metadata\";\nimport StaticReviewsSection from \"../components/reviews/staticReviewsSection\";\nimport ContactForm from \"../components/common/contactFormSection\";\n\nconst IndexPage = ({\n pageContext: { markupData, lang },\n}: PageProps) => {\n return (\n \n \n \n \n \n \n \n \n );\n};\n\nexport default IndexPage;\n\nexport const Head: HeadFC = ({\n pageContext: { markupData, site, lang },\n location,\n}: HeadProps) => {\n return (\n \n );\n};\n","export interface ILang {\n lang: TLang;\n}\n\nexport type TLang = \"en\" | \"ru\";\n\nexport type TLinks = \"services\" | \"workflow\" | \"projects\" | \"blog\";\n\nexport interface IBasePageContext extends ILang {\n site: ISiteMetadata;\n}\n\nexport interface IMdQueryResult {\n allMarkdownRemark: {\n nodes: T[];\n };\n}\n\nexport interface ISiteMetadata {\n title: string;\n description: string;\n siteUrl: string;\n image: string;\n analyticsId: string;\n}\n\nexport enum Theme {\n dark = \"dark\",\n light = \"light\",\n}\n","var React = require('react');\n\nfunction Border (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"line\",{\"width\":\"800\",\"height\":\"8\",\"stroke\":\"#f9f9f9\",\"strokeWidth\":\"8\",\"strokeDasharray\":\"8 8\",\"x1\":\"0\",\"x2\":\"100%\",\"y1\":\"4\",\"y2\":\"4\",\"key\":0}),React.createElement(\"line\",{\"width\":\"800\",\"height\":\"8\",\"stroke\":\"#111111\",\"strokeWidth\":\"8\",\"strokeDasharray\":\"8 8\",\"x1\":\"8\",\"x2\":\"100%\",\"y1\":\"4\",\"y2\":\"4\",\"key\":1})]);\n}\n\nBorder.defaultProps = {\"height\":\"8\"};\n\nmodule.exports = Border;\n\nBorder.default = Border;\n"],"names":["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","passive","onWheelHandler","e","preventDefault","wheel","deltaY","onMouseMoveHandler","x","movementX","y","movementY","removeEventListener","once","onTouchMoveHandler","touches","length","firstTouch","previousCoords","screenX","screenY","newX","newY","nestedTouchMoveHandler","touch","terminate","ref","Spinner","heightClass","title","borderBottom","borderTop","babylon","image","textTranslate","setTextTranslate","Border","ContentContainer","GatsbyImage","alt","id","label","placeholder","placeholderIndentClass","attr","Object","assign","htmlFor","rows","name","options","disabled","value","hidden","_formMdData$markupDat","_formMdData$markupDat2","_formMdData$markupDat3","_formMdData$markupDat4","_formMdData$lang","_formMdData$lang$node","_formMdData$lang$node2","_formMdData$en","_formMdData$en$nodes","_formMdData$en$nodes$","_formMarkup$sectionTi","_formMarkup$sectionLi","lang","formMdData","useStaticQuery","query","formMarkup","markupData","nodes","find","node","fields","language","frontmatter","contactForm","formDescription","html","en","TemplateSection","theme","Theme","light","sectionTitle","linkTitle","sectionLinkTitle","section","isArrowLink","dangerouslySetInnerHTML","__html","action","TextInput","emailLabel","companyNameLabel","nameLabel","SelectInput","servicesLabel","selectPlaceholder","budgetLabel","TextAreaInput","descriptionLabel","descriptionPlaceholder","privacyPolicyCheckboxLabel","adsCheckboxLabel","DiscussProjectButton","buttonLabel","children","borderT","borderB","mainColorClass","dark","linkColorClass","bgColorClass","toUpperCase","Link","to","post","date","text","minutes","Math","floor","wordCount","words","readingTime","fontColorClass100","fontColorClass10","fontColorHover","itemScope","itemType","itemProp","split","slice","join","readPostLink","BsArrowUpRight","size","readingTimeTitle","readingTimeUnits","LocalBusinessMetadata","project","cover","getImage","teamSize","duration","bgColors","forwardRef","emblaRef","emblaApi","useEmblaCarousel","loop","dragFree","align","Autoplay","delay","stopOnInteraction","stopOnMouseEnter","onMouseEnter","internalEngine","animation","stop","onMouseLeave","start","StackSection","_techData$markdownRem","_techData$markdownRem2","techData","techArr","markdownRemark","stack","StackCarousel","map","tech","StackUnit","key","AiFillBug","_postData$markupData","_postData$markupData$","_postData$markupData$2","_postData$markupData$3","_postData$lang","_postData$lang$nodes","_postData$en","_postData$en$nodes","_sectionMarkup$blogSe","_sectionMarkup$blogSe2","postData","sectionMarkup","blog","blogSectionTitle","blogSectionLinkTitle","PostPreview","_projectsPreviewData$","_projectsPreviewData$2","_projectsPreviewData$3","_projectsPreviewData$4","_projectsPreviewData$5","_projectsPreviewData$6","_sectionMarkup$morePr","_sectionMarkup$morePr2","excludeId","projectsPreviewData","projects","filter","moreProjectsSectionTitle","moreProjectsSectionLinkTitle","i","ProjectPreview","review","company","person","position","location","avatar","FaQuoteRight","color","_reviewsData$markupDa","_reviewsData$markupDa2","_reviewsData$markupDa3","_reviewsData$markupDa4","_reviewsData$lang","_reviewsData$lang$nod","_reviewsData$en","_reviewsData$en$nodes","_sectionMarkup$title","reviewsData","reviews","sort","a","b","Review","pageContext","IconContext","Provider","style","verticalAlign","Banner","bannerTitle","ProjectsSection","StaticReviewsSection","PostSection","ContactForm","Head","_ref2","site","HeadSeo","head","description","metaDescription","siteUrl","path","pathname","createElement","defaultProps","default"],"sourceRoot":""} \ No newline at end of file diff --git a/component---src-pages-templates-project-tsx-9b1b9adbc9274b4f8970.js b/component---src-pages-templates-project-tsx-9b1b9adbc9274b4f8970.js deleted file mode 100644 index 4ca29957..00000000 --- a/component---src-pages-templates-project-tsx-9b1b9adbc9274b4f8970.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkcode_cave=self.webpackChunkcode_cave||[]).push([[147],{1880:function(e,t,l){l.r(t),l.d(t,{Head:function(){return g},default:function(){return d}});var a=l(7294),n=l(8032),r=l(1164),c=l(7576),s=l(2074);const i=e=>{let{selected:t,onClick:l}=e;return a.createElement("button",{"aria-label":"view image",className:"bg-transparent touch-manipulation inline-flex w-12 h-12 flex items-center mx-3 after:bg-main-10 after:w-full after:h-1.5 after:content-['']".concat(t?" after:bg-secondary-100":""),type:"button",onClick:l})},o=e=>{let{enabled:t,onClick:l}=e;return a.createElement("button",{"aria-label":"previous image",className:"bg-transparent touch-manipulation flex z-10 text-main-70 absolute flex items-center justify-center top-1/2 -translate-y-1/2 w-16 h-16 left-6 disabled:opacity-30",onClick:l,disabled:!t},a.createElement("svg",{className:"w-2/3 h-2/3",viewBox:"137.718 -1.001 366.563 644"},a.createElement("path",{fill:"#f9f9f9",d:"M428.36 12.5c16.67-16.67 43.76-16.67 60.42 0 16.67 16.67 16.67 43.76 0 60.42L241.7 320c148.25 148.24 230.61 230.6 247.08 247.08 16.67 16.66 16.67 43.75 0 60.42-16.67 16.66-43.76 16.67-60.42 0-27.72-27.71-249.45-249.37-277.16-277.08a42.308 42.308 0 0 1-12.48-30.34c0-11.1 4.1-22.05 12.48-30.42C206.63 234.23 400.64 40.21 428.36 12.5z"})))},m=e=>{let{enabled:t,onClick:l}=e;return a.createElement("button",{"aria-label":"next image",className:"bg-transparent touch-manipulation flex z-10 text-main-70 absolute flex items-center justify-center top-1/2 -translate-y-1/2 w-16 h-16 right-6 disabled:opacity-30",onClick:l,disabled:!t},a.createElement("svg",{className:"w-2/3 h-2/3",viewBox:"0 0 238.003 238.003"},a.createElement("path",{fill:"#f9f9f9",d:"M181.776 107.719L78.705 4.648c-6.198-6.198-16.273-6.198-22.47 0s-6.198 16.273 0 22.47l91.883 91.883-91.883 91.883c-6.198 6.198-6.198 16.273 0 22.47s16.273 6.198 22.47 0l103.071-103.039a15.741 15.741 0 0 0 4.64-11.283c0-4.13-1.526-8.199-4.64-11.313z"})))};var u=e=>{let{screenshots:t}=e;const[l,r]=(0,c.Z)({loop:!0},[(0,s.Z)({stopOnInteraction:!1,stopOnMouseEnter:!0})]),{0:u,1:p}=(0,a.useState)(!1),{0:x,1:f}=(0,a.useState)(!1),{0:d,1:g}=(0,a.useState)(0),{0:h,1:b}=(0,a.useState)([]),E=(0,a.useCallback)((()=>r&&r.scrollPrev()),[r]),w=(0,a.useCallback)((()=>r&&r.scrollNext()),[r]),k=(0,a.useCallback)((e=>r&&r.scrollTo(e)),[r]),v=(0,a.useCallback)((e=>{b(e.scrollSnapList())}),[]),N=(0,a.useCallback)((e=>{g(e.selectedScrollSnap()),p(e.canScrollPrev()),f(e.canScrollNext())}),[]);return(0,a.useEffect)((()=>{r&&(v(r),N(r),r.on("reInit",v),r.on("reInit",N),r.on("select",N))}),[r,v,N]),a.createElement("div",{className:"h-full overflow-hidden relative",ref:l},a.createElement("div",{className:"h-full flex items-center "},t.map((e=>{let{id:t,childImageSharp:l}=e;const r=(0,n.c)(l);return a.createElement("div",{key:t,className:"h-full shrink-0 min-w-0 basis-full px-24 py-8 cursor-pointer flex items-center justify-center"},r?a.createElement(n.G,{image:r,alt:"logo",className:"object-contain rounded-xl max-h-[424px]"}):null)}))),a.createElement(o,{onClick:E,enabled:u}),a.createElement(m,{onClick:w,enabled:x}),a.createElement("div",{className:"z-10 absolute bottom-1 left-0 right-0 flex justify-center items-center"},h.map(((e,t)=>a.createElement(i,{key:t,selected:t===d,onClick:()=>k(t)})))))},p=l(9165);var x=e=>{let{title:t,text:l,className:n,children:r,textAttr:c,...s}=e;return a.createElement("section",Object.assign({},s,{className:"w-full"}),a.createElement("h2",{className:"text-4xl text-secondary-100 uppercase w-full max-w-[320px] mb-2"},t),null!=c&&c.dangerouslySetInnerHTML?a.createElement("p",Object.assign({},c,{className:`text-lg w-full max-w-[544px] float-right ${n}`})):a.createElement("p",Object.assign({},c,{className:`text-lg w-full max-w-[544px] float-right ${n}`}),r||l))};var f=e=>{let{text:t,...l}=e;return a.createElement("p",Object.assign({},l,{className:"bg-main-70 px-5 h-16 whitespace-nowrap text-lg font-medium rounded-lg flex items-center"}),t)};var d=e=>{let{data:{markdownRemark:{frontmatter:t,html:l}},pageContext:{markupData:c,lang:s}}=e;const{title:i,description:o,challenge:m,clientDescription:d,team:g,screenshots:h,stack:b}=t,E=(0,n.c)(t.logo);return a.createElement("div",{itemScope:!0,itemType:"https://schema.org/CreativeWork",className:"flex bg-main-100"},a.createElement(r.Z,{maxWidthClass:"max-w-4.5xl",className:"flex-col text-secondary-70 py-16 !px-0 gap-8"},a.createElement("div",{className:"flex justify-between gap-x-16 gap-y-2.5 pb-10 gradient-border border-b border-solid"},a.createElement("div",{className:"flex-1 w-full max-w-[528px]"},a.createElement("h1",{itemProp:"name",className:"w-full text-4xl font-semibold text-secondary-100 mb-5 uppercase"},i),a.createElement("p",{itemProp:"description",className:"w-full text-base font-light"},o)),E?a.createElement("div",{className:"w-48 h-48 flex items-center justify-center"},a.createElement(n.G,{image:E,imgStyle:{objectFit:"contain"},alt:"logo",itemProp:"image",className:"max-h-full max-w-full"})):null),a.createElement(x,{title:c.clientSectionTitle,text:d,itemProp:"sourceOrganization",itemScope:!0,itemType:"https://schema.org/Organization",textAttr:{itemProp:"description"}}),a.createElement(x,{title:c.challengeSectionTitle,text:m,textAttr:{itemProp:"about"}}),l?a.createElement(x,{title:c.solutionSectionTitle,text:m,textAttr:{itemProp:"articleBody",dangerouslySetInnerHTML:{__html:l}}}):null,null!=g&&g.length?a.createElement(x,{title:c.teamSectionTitle,className:"flex gap-2.5 flex-wrap"},g.map((e=>a.createElement(f,{id:e,text:e,itemProp:"contributor"})))):null,null!=b&&b.length?a.createElement(x,{title:c.techSectionTitle,className:"flex gap-2.5 flex-wrap"},b.map((e=>a.createElement(f,{id:e,text:e,itemProp:"keywords"})))):null,null!=h&&h.length?a.createElement("section",{className:"w-full mb-8"},a.createElement("h2",{className:"text-4xl text-secondary-100 uppercase w-full max-w-[320px]"},c.resultSectionTitle),a.createElement(u,{screenshots:h})):null,a.createElement(p.Lx,{itemProp:"author",lang:s})))};const g=e=>{var t;let{data:{markdownRemark:{frontmatter:{title:l,cover:r}}},pageContext:c,location:s}=e;const i=(0,n.c)(r);return a.createElement(p.Ag,{title:`${c.markupData.head} | ${l.toUpperCase()}`,siteUrl:c.site.siteUrl,path:s.pathname,img:null==i||null===(t=i.images.fallback)||void 0===t?void 0:t.src,lang:c.lang})}}}]); -//# sourceMappingURL=component---src-pages-templates-project-tsx-9b1b9adbc9274b4f8970.js.map \ No newline at end of file diff --git a/component---src-pages-templates-project-tsx-9b1b9adbc9274b4f8970.js.map b/component---src-pages-templates-project-tsx-9b1b9adbc9274b4f8970.js.map deleted file mode 100644 index cdc2ead9..00000000 --- a/component---src-pages-templates-project-tsx-9b1b9adbc9274b4f8970.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"component---src-pages-templates-project-tsx-9b1b9adbc9274b4f8970.js","mappings":"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","sources":["webpack://code-cave/./src/components/projects/carouselDotsButtonsArrows.tsx","webpack://code-cave/./src/components/projects/screenshotsCarousel.tsx","webpack://code-cave/./src/components/projects/projectDescriptionSection.tsx","webpack://code-cave/./src/components/projects/stackOrTeamCard.tsx","webpack://code-cave/./src/pagesTemplates/project.tsx"],"sourcesContent":["import React from \"react\";\n\nimport {\n IDotButtonPropType,\n IPrevNextButtonPropType,\n} from \"../../types/carousel.type\";\n\nexport const DotButton = ({ selected, onClick }: IDotButtonPropType) => {\n return (\n \n );\n};\n\nexport const PrevButton = ({ enabled, onClick }: IPrevNextButtonPropType) => {\n return (\n \n \n \n \n \n );\n};\n\nexport const NextButton = ({ enabled, onClick }: IPrevNextButtonPropType) => {\n return (\n \n \n \n \n \n );\n};\n","import React, { useState, useEffect, useCallback } from \"react\";\nimport { GatsbyImage, getImage } from \"gatsby-plugin-image\";\n\nimport useEmblaCarousel, { EmblaCarouselType } from \"embla-carousel-react\";\nimport Autoplay from \"embla-carousel-autoplay\";\n\nimport { IScreenshot } from \"../../types/project.type\";\n\nimport { DotButton, PrevButton, NextButton } from \"./carouselDotsButtonsArrows\";\n\nconst ScreenshotsCarousel = ({\n screenshots,\n}: {\n screenshots: IScreenshot[];\n}) => {\n const [emblaRef, emblaApi] = useEmblaCarousel({ loop: true }, [\n Autoplay({\n stopOnInteraction: false,\n stopOnMouseEnter: true,\n }),\n ]);\n const [prevBtnEnabled, setPrevBtnEnabled] = useState(false);\n const [nextBtnEnabled, setNextBtnEnabled] = useState(false);\n const [selectedIndex, setSelectedIndex] = useState(0);\n const [scrollSnaps, setScrollSnaps] = useState([]);\n\n const scrollPrev = useCallback(\n () => emblaApi && emblaApi.scrollPrev(),\n [emblaApi]\n );\n const scrollNext = useCallback(\n () => emblaApi && emblaApi.scrollNext(),\n [emblaApi]\n );\n const scrollTo = useCallback(\n (index: number) => emblaApi && emblaApi.scrollTo(index),\n [emblaApi]\n );\n\n const onInit = useCallback((emblaApi: EmblaCarouselType) => {\n setScrollSnaps(emblaApi.scrollSnapList());\n }, []);\n\n const onSelect = useCallback((emblaApi: EmblaCarouselType) => {\n setSelectedIndex(emblaApi.selectedScrollSnap());\n setPrevBtnEnabled(emblaApi.canScrollPrev());\n setNextBtnEnabled(emblaApi.canScrollNext());\n }, []);\n\n useEffect(() => {\n if (!emblaApi) return;\n\n onInit(emblaApi);\n onSelect(emblaApi);\n emblaApi.on(\"reInit\", onInit);\n emblaApi.on(\"reInit\", onSelect);\n emblaApi.on(\"select\", onSelect);\n }, [emblaApi, onInit, onSelect]);\n\n return (\n
\n
\n {screenshots.map(({ id, childImageSharp }) => {\n const img = getImage(childImageSharp);\n return (\n \n {img ? (\n \n ) : null}\n
\n );\n })}\n
\n \n \n\n
\n {scrollSnaps.map((_, index) => (\n scrollTo(index)}\n />\n ))}\n
\n \n );\n};\n\nexport default ScreenshotsCarousel;\n","import React, { HTMLAttributes } from \"react\";\n\ninterface IProjectDescriptionSectionProps\n extends HTMLAttributes {\n title: string;\n className?: string;\n text?: string;\n textAttr?: HTMLAttributes;\n}\n\nconst ProjectDescriptionSection = ({\n title,\n text,\n className,\n children,\n textAttr,\n ...attr\n}: React.PropsWithChildren) => {\n return (\n
\n

\n {title}\n

\n {!!textAttr?.dangerouslySetInnerHTML ? (\n \n ) : (\n \n {children ? children : text}\n

\n )}\n
\n );\n};\n\nexport default ProjectDescriptionSection;\n","import React from \"react\";\n\ninterface IStackOrTeamCardProps\n extends React.HTMLAttributes {\n text: string;\n}\n\nconst StackOrTeamCard = ({ text, ...attr }: IStackOrTeamCardProps) => {\n return (\n \n {text}\n

\n );\n};\n\nexport default StackOrTeamCard;\n","import React from \"react\";\nimport { HeadFC, PageProps, graphql } from \"gatsby\";\nimport { GatsbyImage, getImage } from \"gatsby-plugin-image\";\n\nimport {\n IProjectQueryResult,\n IProjectsPageContext,\n} from \"../types/project.type\";\n\nimport ContentContainer from \"../components/common/contentContainer\";\nimport ScreenshotsCarousel from \"../components/projects/screenshotsCarousel\";\nimport { HeadSeo, LocalBusinessMetadata } from \"../components/common/metadata\";\nimport ProjectDescriptionSection from \"../components/projects/projectDescriptionSection\";\nimport StackOrTeamCard from \"../components/projects/stackOrTeamCard\";\n\nconst Project = ({\n data: {\n markdownRemark: { frontmatter, html },\n },\n pageContext: { markupData, lang },\n}: PageProps) => {\n const {\n title,\n description,\n challenge,\n clientDescription,\n team,\n screenshots,\n stack,\n } = frontmatter;\n const logo = getImage(frontmatter.logo);\n\n return (\n \n \n
\n
\n \n {title}\n \n

\n {description}\n

\n
\n\n {logo ? (\n
\n \n
\n ) : null}\n
\n\n \n\n \n\n {html ? (\n \n ) : null}\n\n {team?.length ? (\n \n {team.map((member) => (\n \n ))}\n \n ) : null}\n\n {stack?.length ? (\n \n {stack.map((tech) => (\n \n ))}\n \n ) : null}\n\n {screenshots?.length ? (\n
\n

\n {markupData.resultSectionTitle}\n

\n \n
\n ) : null}\n \n \n \n );\n};\n\nexport default Project;\n\nexport const Head: HeadFC = ({\n data: {\n markdownRemark: {\n frontmatter: { title, cover },\n },\n },\n pageContext,\n location,\n}) => {\n const coverImg = getImage(cover);\n\n return (\n \n );\n};\n\nexport const query = graphql`\n query ($id: String) {\n markdownRemark(id: { eq: $id }) {\n id\n html\n frontmatter {\n stack\n title\n description\n challenge\n clientDescription\n logo {\n childImageSharp {\n gatsbyImageData(\n formats: [AUTO, WEBP, AVIF]\n placeholder: BLURRED\n width: 180\n )\n }\n }\n cover {\n childImageSharp {\n gatsbyImageData(\n formats: [AUTO, WEBP, AVIF]\n placeholder: BLURRED\n height: 400\n )\n }\n }\n team\n screenshots {\n id\n childImageSharp {\n gatsbyImageData(\n formats: [AUTO, WEBP, AVIF]\n placeholder: BLURRED\n height: 424\n )\n }\n }\n }\n }\n }\n`;\n"],"names":["DotButton","_ref","selected","onClick","React","className","concat","type","PrevButton","_ref2","enabled","disabled","viewBox","fill","d","NextButton","_ref3","screenshots","emblaRef","emblaApi","useEmblaCarousel","loop","Autoplay","stopOnInteraction","stopOnMouseEnter","prevBtnEnabled","setPrevBtnEnabled","useState","nextBtnEnabled","setNextBtnEnabled","selectedIndex","setSelectedIndex","scrollSnaps","setScrollSnaps","scrollPrev","useCallback","scrollNext","scrollTo","index","onInit","scrollSnapList","onSelect","selectedScrollSnap","canScrollPrev","canScrollNext","useEffect","on","ref","map","id","childImageSharp","img","getImage","key","GatsbyImage","image","alt","_","title","text","children","textAttr","attr","Object","assign","dangerouslySetInnerHTML","data","markdownRemark","frontmatter","html","pageContext","markupData","lang","description","challenge","clientDescription","team","stack","logo","itemScope","itemType","ContentContainer","maxWidthClass","itemProp","imgStyle","objectFit","ProjectDescriptionSection","clientSectionTitle","challengeSectionTitle","solutionSectionTitle","__html","length","teamSectionTitle","member","StackOrTeamCard","techSectionTitle","tech","resultSectionTitle","ScreenshotsCarousel","LocalBusinessMetadata","Head","_coverImg$images$fall","cover","location","coverImg","HeadSeo","head","toUpperCase","siteUrl","site","path","pathname","images","fallback","src"],"sourceRoot":""} \ No newline at end of file diff --git a/component---src-pages-templates-project-tsx-ad10d952e1365a3c9e6c.js b/component---src-pages-templates-project-tsx-ad10d952e1365a3c9e6c.js new file mode 100644 index 00000000..93f904e1 --- /dev/null +++ b/component---src-pages-templates-project-tsx-ad10d952e1365a3c9e6c.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkcode_cave=self.webpackChunkcode_cave||[]).push([[147],{1880:function(e,t,l){l.r(t),l.d(t,{Head:function(){return g},default:function(){return f}});var a=l(7294),n=l(8032),r=l(1164),c=l(7576),s=l(2074);const m=e=>{let{selected:t,onClick:l}=e;return a.createElement("button",{"aria-label":"view image",className:"bg-transparent touch-manipulation inline-flex w-12 h-12 after:rounded-sm flex items-center mx-1.5 md:mx-3 after:bg-main-10 after:w-full after:h-1.5 after:content-['']".concat(t?" after:bg-secondary-100":""),type:"button",onClick:l})},i=e=>{let{enabled:t,onClick:l}=e;return a.createElement("button",{"aria-label":"previous image",className:"bg-transparent touch-manipulation flex z-10 text-main-70 absolute flex items-center justify-center top-1/2 -translate-y-1/2 w-10 md:w-16 h-10 md:h-16 left-0 disabled:opacity-30",onClick:l,disabled:!t},a.createElement("svg",{className:"w-2/3 h-2/3",viewBox:"137.718 -1.001 366.563 644"},a.createElement("path",{fill:"#f9f9f9",d:"M428.36 12.5c16.67-16.67 43.76-16.67 60.42 0 16.67 16.67 16.67 43.76 0 60.42L241.7 320c148.25 148.24 230.61 230.6 247.08 247.08 16.67 16.66 16.67 43.75 0 60.42-16.67 16.66-43.76 16.67-60.42 0-27.72-27.71-249.45-249.37-277.16-277.08a42.308 42.308 0 0 1-12.48-30.34c0-11.1 4.1-22.05 12.48-30.42C206.63 234.23 400.64 40.21 428.36 12.5z"})))},o=e=>{let{enabled:t,onClick:l}=e;return a.createElement("button",{"aria-label":"next image",className:"bg-transparent touch-manipulation flex z-10 text-main-70 absolute flex items-center justify-center top-1/2 -translate-y-1/2 w-10 md:w-16 h-10 md:h-16 right-0 disabled:opacity-30",onClick:l,disabled:!t},a.createElement("svg",{className:"w-2/3 h-2/3",viewBox:"0 0 238.003 238.003"},a.createElement("path",{fill:"#f9f9f9",d:"M181.776 107.719L78.705 4.648c-6.198-6.198-16.273-6.198-22.47 0s-6.198 16.273 0 22.47l91.883 91.883-91.883 91.883c-6.198 6.198-6.198 16.273 0 22.47s16.273 6.198 22.47 0l103.071-103.039a15.741 15.741 0 0 0 4.64-11.283c0-4.13-1.526-8.199-4.64-11.313z"})))};var p=e=>{let{screenshots:t}=e;const[l,r]=(0,c.Z)({loop:!0},[(0,s.Z)({stopOnInteraction:!1,stopOnMouseEnter:!0})]),{0:p,1:u}=(0,a.useState)(!1),{0:d,1:x}=(0,a.useState)(!1),{0:f,1:g}=(0,a.useState)(0),{0:h,1:b}=(0,a.useState)([]),w=(0,a.useCallback)((()=>r&&r.scrollPrev()),[r]),E=(0,a.useCallback)((()=>r&&r.scrollNext()),[r]),k=(0,a.useCallback)((e=>r&&r.scrollTo(e)),[r]),v=(0,a.useCallback)((e=>{b(e.scrollSnapList())}),[]),N=(0,a.useCallback)((e=>{g(e.selectedScrollSnap()),u(e.canScrollPrev()),x(e.canScrollNext())}),[]);return(0,a.useEffect)((()=>{r&&(v(r),N(r),r.on("reInit",v),r.on("reInit",N),r.on("select",N))}),[r,v,N]),a.createElement("div",{className:"h-full overflow-hidden relative",ref:l},a.createElement("div",{className:"h-full flex items-center "},t.map((e=>{let{id:t,childImageSharp:l}=e;const r=(0,n.c)(l);return a.createElement("div",{key:t,className:"h-full shrink-0 min-w-0 basis-full px-12 md:px-20 pt-2.5 pb-8 md:py-8 cursor-pointer flex items-center justify-center"},r?a.createElement(n.G,{image:r,alt:"logo",className:"object-contain rounded-xl max-h-[424px]"}):null)}))),a.createElement(i,{onClick:w,enabled:p}),a.createElement(o,{onClick:E,enabled:d}),a.createElement("div",{className:"z-10 absolute bottom-1 left-0 right-0 flex justify-center items-center"},h.map(((e,t)=>a.createElement(m,{key:t,selected:t===f,onClick:()=>k(t)})))))},u=l(9165);var d=e=>{let{title:t,text:l,className:n,children:r,textAttr:c,...s}=e;return a.createElement("section",Object.assign({},s,{className:"w-full"}),a.createElement("h2",{className:"text-[24px] md:text-4xl text-secondary-100 uppercase w-full max-w-[320px] mb-2"},t),null!=c&&c.dangerouslySetInnerHTML?a.createElement("p",Object.assign({},c,{className:`text-base md:text-lg w-full max-w-[544px] float-right ${n}`})):a.createElement("p",Object.assign({},c,{className:`text-base md:text-lg w-full max-w-[544px] float-right ${n}`}),r||l))};var x=e=>{let{text:t,...l}=e;return a.createElement("p",Object.assign({},l,{className:"bg-main-70 px-5 h-10 md:h-16 whitespace-nowrap text-sm md:text-lg font-medium rounded-lg flex items-center"}),t)};var f=e=>{let{data:{markdownRemark:{frontmatter:t,html:l}},pageContext:{markupData:c,lang:s}}=e;const{title:m,description:i,challenge:o,clientDescription:f,team:g,screenshots:h,stack:b}=t,w=(0,n.c)(t.logo);return a.createElement("div",{itemScope:!0,itemType:"https://schema.org/CreativeWork",className:"flex bg-main-100"},a.createElement(r.Z,{maxWidthClass:"max-w-4.5xl",className:"flex-col text-secondary-70 py-6 md:py-16 lg:!px-0 gap-5 md:gap-8"},a.createElement("div",{className:"flex flex-col flex-col-reverse items-center md:items-start md:flex-row justify-between gap-x-16 gap-y-2.5 pb-10 gradient-border border-b border-solid"},a.createElement("div",{className:"flex-1 w-full md:max-w-[528px]"},a.createElement("h1",{itemProp:"name",className:"w-full text-[24px] md:text-4xl font-semibold text-secondary-100 mb-5 uppercase"},m),a.createElement("p",{itemProp:"description",className:"w-full text-base font-light"},i)),w?a.createElement("div",{className:"w-28 md:w-48 h-28 md:h-48 flex items-center justify-center"},a.createElement(n.G,{image:w,imgStyle:{objectFit:"contain"},alt:"logo",itemProp:"image",className:"max-h-full max-w-full"})):null),a.createElement(d,{title:c.clientSectionTitle,text:f,itemProp:"sourceOrganization",itemScope:!0,itemType:"https://schema.org/Organization",textAttr:{itemProp:"description"}}),a.createElement(d,{title:c.challengeSectionTitle,text:o,textAttr:{itemProp:"about"}}),l?a.createElement(d,{title:c.solutionSectionTitle,text:o,textAttr:{itemProp:"articleBody",dangerouslySetInnerHTML:{__html:l}}}):null,null!=g&&g.length?a.createElement(d,{title:c.teamSectionTitle,className:"flex gap-2.5 flex-wrap pt-2 md:pt-0"},g.map((e=>a.createElement(x,{id:e,text:e,itemProp:"contributor"})))):null,null!=b&&b.length?a.createElement(d,{title:c.techSectionTitle,className:"flex gap-2.5 flex-wrap pt-2 md:pt-0"},b.map((e=>a.createElement(x,{id:e,text:e,itemProp:"keywords"})))):null,null!=h&&h.length?a.createElement("section",{className:"w-full mb-8"},a.createElement("h2",{className:"text-[24px] md:text-4xl text-secondary-100 uppercase w-full max-w-[320px]"},c.resultSectionTitle),a.createElement(p,{screenshots:h})):null,a.createElement(u.Lx,{itemProp:"author",lang:s})))};const g=e=>{var t;let{data:{markdownRemark:{frontmatter:{title:l,cover:r}}},pageContext:c,location:s}=e;const m=(0,n.c)(r);return a.createElement(u.Ag,{title:`${c.markupData.head} | ${l.toUpperCase()}`,siteUrl:c.site.siteUrl,path:s.pathname,img:null==m||null===(t=m.images.fallback)||void 0===t?void 0:t.src,lang:c.lang})}}}]); +//# sourceMappingURL=component---src-pages-templates-project-tsx-ad10d952e1365a3c9e6c.js.map \ No newline at end of file diff --git a/component---src-pages-templates-project-tsx-ad10d952e1365a3c9e6c.js.map b/component---src-pages-templates-project-tsx-ad10d952e1365a3c9e6c.js.map new file mode 100644 index 00000000..398dab73 --- /dev/null +++ b/component---src-pages-templates-project-tsx-ad10d952e1365a3c9e6c.js.map @@ -0,0 +1 @@ +{"version":3,"file":"component---src-pages-templates-project-tsx-ad10d952e1365a3c9e6c.js","mappings":"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","sources":["webpack://code-cave/./src/components/projects/carouselDotsButtonsArrows.tsx","webpack://code-cave/./src/components/projects/screenshotsCarousel.tsx","webpack://code-cave/./src/components/projects/projectDescriptionSection.tsx","webpack://code-cave/./src/components/projects/stackOrTeamCard.tsx","webpack://code-cave/./src/pagesTemplates/project.tsx"],"sourcesContent":["import React from \"react\";\n\nimport {\n IDotButtonPropType,\n IPrevNextButtonPropType,\n} from \"../../types/carousel.type\";\n\nexport const DotButton = ({ selected, onClick }: IDotButtonPropType) => {\n return (\n \n );\n};\n\nexport const PrevButton = ({ enabled, onClick }: IPrevNextButtonPropType) => {\n return (\n \n \n \n \n \n );\n};\n\nexport const NextButton = ({ enabled, onClick }: IPrevNextButtonPropType) => {\n return (\n \n \n \n \n \n );\n};\n","import React, { useState, useEffect, useCallback } from \"react\";\nimport { GatsbyImage, getImage } from \"gatsby-plugin-image\";\n\nimport useEmblaCarousel, { EmblaCarouselType } from \"embla-carousel-react\";\nimport Autoplay from \"embla-carousel-autoplay\";\n\nimport { IScreenshot } from \"../../types/project.type\";\n\nimport { DotButton, PrevButton, NextButton } from \"./carouselDotsButtonsArrows\";\n\nconst ScreenshotsCarousel = ({\n screenshots,\n}: {\n screenshots: IScreenshot[];\n}) => {\n const [emblaRef, emblaApi] = useEmblaCarousel({ loop: true }, [\n Autoplay({\n stopOnInteraction: false,\n stopOnMouseEnter: true,\n }),\n ]);\n const [prevBtnEnabled, setPrevBtnEnabled] = useState(false);\n const [nextBtnEnabled, setNextBtnEnabled] = useState(false);\n const [selectedIndex, setSelectedIndex] = useState(0);\n const [scrollSnaps, setScrollSnaps] = useState([]);\n\n const scrollPrev = useCallback(\n () => emblaApi && emblaApi.scrollPrev(),\n [emblaApi]\n );\n const scrollNext = useCallback(\n () => emblaApi && emblaApi.scrollNext(),\n [emblaApi]\n );\n const scrollTo = useCallback(\n (index: number) => emblaApi && emblaApi.scrollTo(index),\n [emblaApi]\n );\n\n const onInit = useCallback((emblaApi: EmblaCarouselType) => {\n setScrollSnaps(emblaApi.scrollSnapList());\n }, []);\n\n const onSelect = useCallback((emblaApi: EmblaCarouselType) => {\n setSelectedIndex(emblaApi.selectedScrollSnap());\n setPrevBtnEnabled(emblaApi.canScrollPrev());\n setNextBtnEnabled(emblaApi.canScrollNext());\n }, []);\n\n useEffect(() => {\n if (!emblaApi) return;\n\n onInit(emblaApi);\n onSelect(emblaApi);\n emblaApi.on(\"reInit\", onInit);\n emblaApi.on(\"reInit\", onSelect);\n emblaApi.on(\"select\", onSelect);\n }, [emblaApi, onInit, onSelect]);\n\n return (\n
\n
\n {screenshots.map(({ id, childImageSharp }) => {\n const img = getImage(childImageSharp);\n return (\n \n {img ? (\n \n ) : null}\n
\n );\n })}\n
\n \n \n\n
\n {scrollSnaps.map((_, index) => (\n scrollTo(index)}\n />\n ))}\n
\n \n );\n};\n\nexport default ScreenshotsCarousel;\n","import React, { HTMLAttributes } from \"react\";\n\ninterface IProjectDescriptionSectionProps\n extends HTMLAttributes {\n title: string;\n className?: string;\n text?: string;\n textAttr?: HTMLAttributes;\n}\n\nconst ProjectDescriptionSection = ({\n title,\n text,\n className,\n children,\n textAttr,\n ...attr\n}: React.PropsWithChildren) => {\n return (\n
\n

\n {title}\n

\n {!!textAttr?.dangerouslySetInnerHTML ? (\n \n ) : (\n \n {children ? children : text}\n

\n )}\n
\n );\n};\n\nexport default ProjectDescriptionSection;\n","import React from \"react\";\n\ninterface IStackOrTeamCardProps\n extends React.HTMLAttributes {\n text: string;\n}\n\nconst StackOrTeamCard = ({ text, ...attr }: IStackOrTeamCardProps) => {\n return (\n \n {text}\n

\n );\n};\n\nexport default StackOrTeamCard;\n","import React from \"react\";\nimport { HeadFC, PageProps, graphql } from \"gatsby\";\nimport { GatsbyImage, getImage } from \"gatsby-plugin-image\";\n\nimport {\n IProjectQueryResult,\n IProjectsPageContext,\n} from \"../types/project.type\";\n\nimport ContentContainer from \"../components/common/contentContainer\";\nimport ScreenshotsCarousel from \"../components/projects/screenshotsCarousel\";\nimport { HeadSeo, LocalBusinessMetadata } from \"../components/common/metadata\";\nimport ProjectDescriptionSection from \"../components/projects/projectDescriptionSection\";\nimport StackOrTeamCard from \"../components/projects/stackOrTeamCard\";\n\nconst Project = ({\n data: {\n markdownRemark: { frontmatter, html },\n },\n pageContext: { markupData, lang },\n}: PageProps) => {\n const {\n title,\n description,\n challenge,\n clientDescription,\n team,\n screenshots,\n stack,\n } = frontmatter;\n const logo = getImage(frontmatter.logo);\n\n return (\n \n \n
\n
\n \n {title}\n \n

\n {description}\n

\n
\n\n {logo ? (\n
\n \n
\n ) : null}\n
\n\n \n\n \n\n {html ? (\n \n ) : null}\n\n {team?.length ? (\n \n {team.map((member) => (\n \n ))}\n \n ) : null}\n\n {stack?.length ? (\n \n {stack.map((tech) => (\n \n ))}\n \n ) : null}\n\n {screenshots?.length ? (\n
\n

\n {markupData.resultSectionTitle}\n

\n \n
\n ) : null}\n \n \n \n );\n};\n\nexport default Project;\n\nexport const Head: HeadFC = ({\n data: {\n markdownRemark: {\n frontmatter: { title, cover },\n },\n },\n pageContext,\n location,\n}) => {\n const coverImg = getImage(cover);\n\n return (\n \n );\n};\n\nexport const query = graphql`\n query ($id: String) {\n markdownRemark(id: { eq: $id }) {\n id\n html\n frontmatter {\n stack\n title\n description\n challenge\n clientDescription\n logo {\n childImageSharp {\n gatsbyImageData(\n formats: [AUTO, WEBP, AVIF]\n placeholder: BLURRED\n width: 180\n )\n }\n }\n cover {\n childImageSharp {\n gatsbyImageData(\n formats: [AUTO, WEBP, AVIF]\n placeholder: BLURRED\n height: 400\n )\n }\n }\n team\n screenshots {\n id\n childImageSharp {\n gatsbyImageData(\n formats: [AUTO, WEBP, AVIF]\n placeholder: BLURRED\n height: 424\n )\n }\n }\n }\n }\n }\n`;\n"],"names":["DotButton","_ref","selected","onClick","React","className","concat","type","PrevButton","_ref2","enabled","disabled","viewBox","fill","d","NextButton","_ref3","screenshots","emblaRef","emblaApi","useEmblaCarousel","loop","Autoplay","stopOnInteraction","stopOnMouseEnter","prevBtnEnabled","setPrevBtnEnabled","useState","nextBtnEnabled","setNextBtnEnabled","selectedIndex","setSelectedIndex","scrollSnaps","setScrollSnaps","scrollPrev","useCallback","scrollNext","scrollTo","index","onInit","scrollSnapList","onSelect","selectedScrollSnap","canScrollPrev","canScrollNext","useEffect","on","ref","map","id","childImageSharp","img","getImage","key","GatsbyImage","image","alt","_","title","text","children","textAttr","attr","Object","assign","dangerouslySetInnerHTML","data","markdownRemark","frontmatter","html","pageContext","markupData","lang","description","challenge","clientDescription","team","stack","logo","itemScope","itemType","ContentContainer","maxWidthClass","itemProp","imgStyle","objectFit","ProjectDescriptionSection","clientSectionTitle","challengeSectionTitle","solutionSectionTitle","__html","length","teamSectionTitle","member","StackOrTeamCard","techSectionTitle","tech","resultSectionTitle","ScreenshotsCarousel","LocalBusinessMetadata","Head","_coverImg$images$fall","cover","location","coverImg","HeadSeo","head","toUpperCase","siteUrl","site","path","pathname","images","fallback","src"],"sourceRoot":""} \ No newline at end of file diff --git a/component---src-pages-templates-projects-tsx-55b0a27fe736ce512ff7.js b/component---src-pages-templates-projects-tsx-55b0a27fe736ce512ff7.js deleted file mode 100644 index 4e984801..00000000 --- a/component---src-pages-templates-projects-tsx-55b0a27fe736ce512ff7.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunkcode_cave=self.webpackChunkcode_cave||[]).push([[650],{6488:function(e,t,a){var n=a(9720).w_;e.exports.p=function(e){return n({tag:"svg",attr:{viewBox:"0 0 16 16",fill:"currentColor"},child:[{tag:"path",attr:{fillRule:"evenodd",d:"M6.5 4a.5.5 0 01.5-.5h5a.5.5 0 01.5.5v5a.5.5 0 01-1 0V4.5H7a.5.5 0 01-.5-.5z",clipRule:"evenodd"}},{tag:"path",attr:{fillRule:"evenodd",d:"M12.354 3.646a.5.5 0 010 .708l-9 9a.5.5 0 01-.708-.708l9-9a.5.5 0 01.708 0z",clipRule:"evenodd"}}]})(e)}},4858:function(e,t,a){"use strict";a.d(t,{Z:function(){return o}});var n=a(7294),r=a(4160),l=a(8322);var c=e=>{const{theme:t,onClick:a,className:r,children:c,border:o,...i}=e,s=""+(t===l.Q.dark?"bg-main-100 text-secondary-100 border-secondary-100 hover:bg-main-70":"bg-secondary-100 text-main-100 border-main-100 hover:bg-secondary-30");return n.createElement("button",Object.assign({onClick:a,className:`flex min-w-10 items-center justify-center rounded-lg border-solid ${o?"border":""} ${s} ${r}`},i),c)};var o=e=>{let{section:t,pagesQuantity:a,currentPage:o,nextPageTitle:i,className:s}=e;const m=Array.from({length:a},((e,t)=>t+1)),d=o+1;return n.createElement("div",{className:`flex justify-center w-full gap-6 ${s}`},o1?m.map((e=>n.createElement(r.rU,{key:`pagination-link-${e}`,to:`/${t}/page/${e}`},n.createElement(c,{theme:l.Q.light,border:e===o,className:"h-10 font-bold"},e)))):null))}},6745:function(e,t,a){"use strict";var n=a(7294),r=a(4160),l=a(8032),c=a(8322),o=a(6488),i=a(9165);t.Z=e=>{let{project:t,className:a,theme:s,lang:m}=e;const d=(0,l.c)(t.frontmatter.cover),{title:u}=t.frontmatter,g=s===c.Q.light?"text-main-100 hover:text-main-10":"text-secondary-100 hover:text-secondary-10",p=s===c.Q.light?"bg-secondary-100 hover:bg-secondary-100":"bg-main-100 hover:bg-main-100";return n.createElement(r.rU,{to:`/projects/${t.id}`,className:`${p} ${g} flex flex-col justify-between hover:text-main-10 rounded-2xl p-2.5 gap-2.5 ${a}`,itemScope:!0,itemType:"https://schema.org/CreativeWork"},d?n.createElement(l.G,{image:d,alt:"cover",itemProp:"image",className:"object-contain w-full rounded-[10px]"}):null,n.createElement("div",{className:"flex px-2.5 py-1 items-center grow"},n.createElement("h3",{className:"text-base grow font-medium h-full",itemProp:"description"},u),n.createElement(o.p,{size:20})),n.createElement(i.Lx,{itemProp:"author",lang:m}))}},3997:function(e,t,a){"use strict";a.r(t),a.d(t,{Head:function(){return s}});var n=a(7294),r=a(8322),l=a(1164),c=a(6745),o=a(4858),i=a(9165);t.default=e=>{let{data:t,pageContext:a}=e;const i=t.allMarkdownRemark.nodes,{currentPage:s,pagesQuantity:m,lang:d}=a;return n.createElement("div",{className:"flex w-full justify-center bg-main-100"},n.createElement(l.Z,{maxWidthClass:"max-w-4.5xl",className:"flex-col py-16"},n.createElement("div",{className:"w-full grid grid-cols-1 sm:grid-cols-2 gap-x-14 gap-y-8"},i?i.map((e=>n.createElement(c.Z,{key:e.id,project:e,lang:d,theme:r.Q.light}))):null),m>1?n.createElement(o.Z,{section:"projects",pagesQuantity:m,currentPage:s,nextPageTitle:a.pagination.next}):null))};const s=e=>{let{pageContext:{markupData:t,site:a,lang:r},location:l}=e;return n.createElement(i.Ag,{title:`${t.head} | ${t.bannerTitle.toUpperCase()}`,siteUrl:a.siteUrl,path:l.pathname,lang:r})}},8322:function(e,t,a){"use strict";a.d(t,{Q:function(){return n}});let n=function(e){return e.dark="dark",e.light="light",e}({})}}]); -//# sourceMappingURL=component---src-pages-templates-projects-tsx-55b0a27fe736ce512ff7.js.map \ No newline at end of file diff --git a/component---src-pages-templates-projects-tsx-55b0a27fe736ce512ff7.js.map b/component---src-pages-templates-projects-tsx-55b0a27fe736ce512ff7.js.map deleted file mode 100644 index 5f209f76..00000000 --- a/component---src-pages-templates-projects-tsx-55b0a27fe736ce512ff7.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"component---src-pages-templates-projects-tsx-55b0a27fe736ce512ff7.js","mappings":"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","sources":["webpack://code-cave/./node_modules/@react-icons/all-files/bs/BsArrowUpRight.js","webpack://code-cave/./src/components/common/button.tsx","webpack://code-cave/./src/components/common/pagination.tsx","webpack://code-cave/./src/components/projects/projectPreview.tsx","webpack://code-cave/./src/pagesTemplates/projects.tsx","webpack://code-cave/./src/types/common.type.ts"],"sourcesContent":["// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.BsArrowUpRight = function BsArrowUpRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 16 16\",\"fill\":\"currentColor\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M6.5 4a.5.5 0 01.5-.5h5a.5.5 0 01.5.5v5a.5.5 0 01-1 0V4.5H7a.5.5 0 01-.5-.5z\",\"clipRule\":\"evenodd\"}},{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M12.354 3.646a.5.5 0 010 .708l-9 9a.5.5 0 01-.708-.708l9-9a.5.5 0 01.708 0z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\n","import React from \"react\";\n\nimport { Theme } from \"../../types/common.type\";\n\ninterface IButtonProps extends React.ButtonHTMLAttributes {\n theme: Theme;\n onClick?: () => any;\n className?: string;\n border?: boolean;\n}\n\nconst Button = (props: React.PropsWithChildren) => {\n const { theme, onClick, className, children, border, ...attr } = props;\n\n const colorClasses = `${\n theme === Theme.dark\n ? \"bg-main-100 text-secondary-100 border-secondary-100 hover:bg-main-70\"\n : \"bg-secondary-100 text-main-100 border-main-100 hover:bg-secondary-30\"\n }`;\n\n return (\n \n {children}\n \n );\n};\n\nexport default Button;\n","import React from \"react\";\nimport { Link } from \"gatsby\";\n\nimport { Theme } from \"../../types/common.type\";\n\nimport Button from \"./button\";\n\nconst Pagination = ({\n section,\n pagesQuantity,\n currentPage,\n nextPageTitle,\n className,\n}: {\n section: \"projects\" | \"blog\";\n pagesQuantity: number;\n currentPage: number;\n nextPageTitle?: string;\n className?: string;\n}) => {\n const pages = Array.from({ length: pagesQuantity }, (_, i) => i + 1);\n const nextPage = currentPage + 1;\n\n return (\n
\n {currentPage < pagesQuantity ? (\n \n \n {nextPageTitle ?? \"Next page\"}\n \n \n ) : null}\n\n \n
\n );\n};\n\nexport default Pagination;\n","import React from \"react\";\nimport { Link } from \"gatsby\";\nimport { GatsbyImage, getImage } from \"gatsby-plugin-image\";\n\nimport { IProjectPreviewQueryResult } from \"../../types/project.type\";\nimport { TLang, Theme } from \"../../types/common.type\";\n\nimport { BsArrowUpRight } from \"@react-icons/all-files/bs/BsArrowUpRight\";\n\nimport { LocalBusinessMetadata } from \"../common/metadata\";\n\nconst ProjectPreview = ({\n project,\n className,\n theme,\n lang,\n}: {\n project: IProjectPreviewQueryResult;\n className?: string;\n theme: Theme;\n lang: TLang;\n}) => {\n const cover = getImage(project.frontmatter.cover);\n const { title } = project.frontmatter;\n\n const fontColorClass10 =\n theme === Theme.light\n ? \"text-main-100 hover:text-main-10\"\n : \"text-secondary-100 hover:text-secondary-10\";\n const bgColors =\n theme === Theme.light\n ? \"bg-secondary-100 hover:bg-secondary-100\"\n : \"bg-main-100 hover:bg-main-100\";\n\n return (\n \n {cover ? (\n \n ) : null}\n
\n \n {title}\n \n \n
\n \n \n );\n};\n\nexport default ProjectPreview;\n","import React from \"react\";\n\nimport { HeadFC, HeadProps, PageProps } from \"gatsby\";\nimport { graphql } from \"gatsby\";\n\nimport { IProjectsPageContext, IProjectsPageData } from \"../types/project.type\";\nimport { Theme } from \"../types/common.type\";\n\nimport ContentContainer from \"../components/common/contentContainer\";\nimport ProjectPreview from \"../components/projects/projectPreview\";\nimport Pagination from \"../components/common/pagination\";\nimport { HeadSeo } from \"../components/common/metadata\";\n\nconst Projects = ({\n data,\n pageContext,\n}: PageProps) => {\n const projects = data.allMarkdownRemark.nodes;\n const { currentPage, pagesQuantity, lang } = pageContext;\n\n return (\n
\n \n
\n {projects\n ? projects.map((project) => (\n \n ))\n : null}\n
\n {pagesQuantity > 1 ? (\n \n ) : null}\n
\n
\n );\n};\n\nexport default Projects;\n\nexport const Head: HeadFC = ({\n pageContext: { markupData, site, lang },\n location,\n}: HeadProps) => (\n \n);\n\nexport const query = graphql`\n query ($skip: Int!, $limit: Int!, $lang: String) {\n allMarkdownRemark(\n filter: {\n fields: { sourceName: { eq: \"projects\" }, language: { eq: $lang } }\n }\n sort: { frontmatter: { date: DESC } }\n limit: $limit\n skip: $skip\n ) {\n nodes {\n id\n frontmatter {\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","export interface ILang {\n lang: TLang;\n}\n\nexport type TLang = \"en\" | \"ru\";\n\nexport type TLinks = \"services\" | \"workflow\" | \"projects\" | \"blog\";\n\nexport interface IBasePageContext extends ILang {\n site: ISiteMetadata;\n}\n\nexport interface IMdQueryResult {\n allMarkdownRemark: {\n nodes: T[];\n };\n}\n\nexport interface ISiteMetadata {\n title: string;\n description: string;\n siteUrl: string;\n image: string;\n analyticsId: string;\n}\n\nexport enum Theme {\n dark = \"dark\",\n light = \"light\",\n}\n"],"names":["GenIcon","module","exports","props","theme","onClick","className","children","border","attr","colorClasses","Theme","dark","React","Object","assign","_ref","section","pagesQuantity","currentPage","nextPageTitle","pages","Array","from","length","_","i","nextPage","Link","to","Button","light","map","page","key","project","lang","cover","getImage","frontmatter","title","fontColorClass10","bgColors","id","itemScope","itemType","GatsbyImage","image","alt","itemProp","BsArrowUpRight","size","LocalBusinessMetadata","data","pageContext","projects","allMarkdownRemark","nodes","ContentContainer","maxWidthClass","ProjectPreview","Pagination","pagination","next","Head","_ref2","markupData","site","location","HeadSeo","head","bannerTitle","toUpperCase","siteUrl","path","pathname"],"sourceRoot":""} \ No newline at end of file diff --git a/component---src-pages-templates-projects-tsx-a79fa89cdf29a69f7449.js b/component---src-pages-templates-projects-tsx-a79fa89cdf29a69f7449.js new file mode 100644 index 00000000..c2264a55 --- /dev/null +++ b/component---src-pages-templates-projects-tsx-a79fa89cdf29a69f7449.js @@ -0,0 +1,2 @@ +(self.webpackChunkcode_cave=self.webpackChunkcode_cave||[]).push([[650],{6488:function(e,t,a){var r=a(9720).w_;e.exports.p=function(e){return r({tag:"svg",attr:{viewBox:"0 0 16 16",fill:"currentColor"},child:[{tag:"path",attr:{fillRule:"evenodd",d:"M6.5 4a.5.5 0 01.5-.5h5a.5.5 0 01.5.5v5a.5.5 0 01-1 0V4.5H7a.5.5 0 01-.5-.5z",clipRule:"evenodd"}},{tag:"path",attr:{fillRule:"evenodd",d:"M12.354 3.646a.5.5 0 010 .708l-9 9a.5.5 0 01-.708-.708l9-9a.5.5 0 01.708 0z",clipRule:"evenodd"}}]})(e)}},4858:function(e,t,a){"use strict";a.d(t,{Z:function(){return s}});var r=a(7294),n=a(4160),l=a(8322);var c=e=>{const{theme:t,onClick:a,className:n,children:c,border:s,...o}=e,i=""+(t===l.Q.dark?"bg-main-100 text-secondary-100 border-secondary-100 hover:bg-main-70":"bg-secondary-100 text-main-100 border-main-100 hover:bg-secondary-30");return r.createElement("button",Object.assign({onClick:a,className:`flex min-w-10 items-center justify-center rounded-lg border-solid ${s?"border":""} ${i} ${n}`},o),c)};var s=e=>{let{section:t,pagesQuantity:a,currentPage:s,nextPageTitle:o,className:i}=e;const m=Array.from({length:a},((e,t)=>t+1)),d=s+1;return r.createElement("div",{className:`flex justify-center w-full gap-6 ${i}`},s1?m.map((e=>r.createElement(n.rU,{key:`pagination-link-${e}`,to:`/${t}/page/${e}`},r.createElement(c,{theme:l.Q.light,border:e===s,className:"h-10 font-bold"},e)))):null))}},6745:function(e,t,a){"use strict";var r=a(7294),n=a(4160),l=a(8032),c=a(8322),s=a(6488),o=a(9165);t.Z=e=>{let{project:t,className:a,theme:i,lang:m}=e;const d=(0,l.c)(t.frontmatter.cover),{title:u,teamSize:g,duration:p}=t.frontmatter,h=i===c.Q.light?"text-main-100 hover:text-main-10":"text-secondary-100 hover:text-secondary-10",f=i===c.Q.light?"bg-secondary-100 hover:bg-secondary-100":"bg-main-100 hover:bg-main-100";return r.createElement(n.rU,{to:`/projects/${t.id}`,className:`${f} ${h} flex flex-col justify-between hover:text-main-10 rounded-2xl p-2.5 gap-2.5 ${a}`,itemScope:!0,itemType:"https://schema.org/CreativeWork"},r.createElement("div",{className:"w-full h-full relative"},d?r.createElement(l.G,{image:d,alt:"cover",itemProp:"image",className:"object-contain w-full rounded-[10px]"}):null,r.createElement("div",{className:"absolute left-2 bottom-2 flex items-center gap-2.5 z-50"},r.createElement("p",{className:"backdrop-blur-sm backdrop-brightness-75 text-secondary-100 px-5 h-10 flex items-center rounded-lg"},p),r.createElement("p",{className:"backdrop-blur-sm backdrop-brightness-75 text-secondary-100 px-5 h-10 flex items-center rounded-lg"},g))),r.createElement("div",{className:"flex px-2.5 py-1 items-center grow"},r.createElement("h3",{className:"text-base grow font-medium h-full",itemProp:"description"},u),r.createElement(s.p,{size:20})),r.createElement(o.Lx,{itemProp:"author",lang:m}))}},3997:function(e,t,a){"use strict";a.r(t),a.d(t,{Head:function(){return i}});var r=a(7294),n=a(8322),l=a(1164),c=a(6745),s=a(4858),o=a(9165);t.default=e=>{let{data:t,pageContext:a}=e;const o=t.allMarkdownRemark.nodes,{currentPage:i,pagesQuantity:m,lang:d}=a;return r.createElement("div",{className:"flex w-full justify-center bg-main-100"},r.createElement(l.Z,{maxWidthClass:"max-w-4.5xl",className:"flex-col py-16"},r.createElement("div",{className:"w-full grid grid-cols-1 sm:grid-cols-2 gap-x-14 gap-y-8"},o?o.map((e=>r.createElement(c.Z,{key:e.id,project:e,lang:d,theme:n.Q.light}))):null),m>1?r.createElement(s.Z,{section:"projects",pagesQuantity:m,currentPage:i,nextPageTitle:a.pagination.next}):null))};const i=e=>{let{pageContext:{markupData:t,site:a,lang:n},location:l}=e;return r.createElement(o.Ag,{title:`${t.head} | ${t.bannerTitle.toUpperCase()}`,siteUrl:a.siteUrl,path:l.pathname,lang:n})}},8322:function(e,t,a){"use strict";a.d(t,{Q:function(){return r}});let r=function(e){return e.dark="dark",e.light="light",e}({})}}]); +//# sourceMappingURL=component---src-pages-templates-projects-tsx-a79fa89cdf29a69f7449.js.map \ No newline at end of file diff --git a/component---src-pages-templates-projects-tsx-a79fa89cdf29a69f7449.js.map b/component---src-pages-templates-projects-tsx-a79fa89cdf29a69f7449.js.map new file mode 100644 index 00000000..1cb428e7 --- /dev/null +++ b/component---src-pages-templates-projects-tsx-a79fa89cdf29a69f7449.js.map @@ -0,0 +1 @@ +{"version":3,"file":"component---src-pages-templates-projects-tsx-a79fa89cdf29a69f7449.js","mappings":"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","sources":["webpack://code-cave/./node_modules/@react-icons/all-files/bs/BsArrowUpRight.js","webpack://code-cave/./src/components/common/button.tsx","webpack://code-cave/./src/components/common/pagination.tsx","webpack://code-cave/./src/components/projects/projectPreview.tsx","webpack://code-cave/./src/pagesTemplates/projects.tsx","webpack://code-cave/./src/types/common.type.ts"],"sourcesContent":["// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.BsArrowUpRight = function BsArrowUpRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 16 16\",\"fill\":\"currentColor\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M6.5 4a.5.5 0 01.5-.5h5a.5.5 0 01.5.5v5a.5.5 0 01-1 0V4.5H7a.5.5 0 01-.5-.5z\",\"clipRule\":\"evenodd\"}},{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M12.354 3.646a.5.5 0 010 .708l-9 9a.5.5 0 01-.708-.708l9-9a.5.5 0 01.708 0z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\n","import React from \"react\";\n\nimport { Theme } from \"../../types/common.type\";\n\ninterface IButtonProps extends React.ButtonHTMLAttributes {\n theme: Theme;\n onClick?: () => any;\n className?: string;\n border?: boolean;\n}\n\nconst Button = (props: React.PropsWithChildren) => {\n const { theme, onClick, className, children, border, ...attr } = props;\n\n const colorClasses = `${\n theme === Theme.dark\n ? \"bg-main-100 text-secondary-100 border-secondary-100 hover:bg-main-70\"\n : \"bg-secondary-100 text-main-100 border-main-100 hover:bg-secondary-30\"\n }`;\n\n return (\n \n {children}\n \n );\n};\n\nexport default Button;\n","import React from \"react\";\nimport { Link } from \"gatsby\";\n\nimport { Theme } from \"../../types/common.type\";\n\nimport Button from \"./button\";\n\nconst Pagination = ({\n section,\n pagesQuantity,\n currentPage,\n nextPageTitle,\n className,\n}: {\n section: \"projects\" | \"blog\";\n pagesQuantity: number;\n currentPage: number;\n nextPageTitle?: string;\n className?: string;\n}) => {\n const pages = Array.from({ length: pagesQuantity }, (_, i) => i + 1);\n const nextPage = currentPage + 1;\n\n return (\n
\n {currentPage < pagesQuantity ? (\n \n \n {nextPageTitle ?? \"Next page\"}\n \n \n ) : null}\n\n \n
\n );\n};\n\nexport default Pagination;\n","import React from \"react\";\nimport { Link } from \"gatsby\";\nimport { GatsbyImage, getImage } from \"gatsby-plugin-image\";\n\nimport { IProjectPreviewQueryResult } from \"../../types/project.type\";\nimport { TLang, Theme } from \"../../types/common.type\";\n\nimport { BsArrowUpRight } from \"@react-icons/all-files/bs/BsArrowUpRight\";\n\nimport { LocalBusinessMetadata } from \"../common/metadata\";\n\nconst ProjectPreview = ({\n project,\n className,\n theme,\n lang,\n}: {\n project: IProjectPreviewQueryResult;\n className?: string;\n theme: Theme;\n lang: TLang;\n}) => {\n const cover = getImage(project.frontmatter.cover);\n const { title, teamSize, duration } = project.frontmatter;\n\n const fontColorClass10 =\n theme === Theme.light\n ? \"text-main-100 hover:text-main-10\"\n : \"text-secondary-100 hover:text-secondary-10\";\n const bgColors =\n theme === Theme.light\n ? \"bg-secondary-100 hover:bg-secondary-100\"\n : \"bg-main-100 hover:bg-main-100\";\n\n return (\n \n
\n {cover ? (\n \n ) : null}\n
\n

\n {duration}\n

\n

\n {teamSize}\n

\n
\n
\n
\n \n {title}\n \n \n
\n \n \n );\n};\n\nexport default ProjectPreview;\n","import React from \"react\";\n\nimport { HeadFC, HeadProps, PageProps } from \"gatsby\";\nimport { graphql } from \"gatsby\";\n\nimport { IProjectsPageContext, IProjectsPageData } from \"../types/project.type\";\nimport { Theme } from \"../types/common.type\";\n\nimport ContentContainer from \"../components/common/contentContainer\";\nimport ProjectPreview from \"../components/projects/projectPreview\";\nimport Pagination from \"../components/common/pagination\";\nimport { HeadSeo } from \"../components/common/metadata\";\n\nconst Projects = ({\n data,\n pageContext,\n}: PageProps) => {\n const projects = data.allMarkdownRemark.nodes;\n const { currentPage, pagesQuantity, lang } = pageContext;\n\n return (\n
\n \n
\n {projects\n ? projects.map((project) => (\n \n ))\n : null}\n
\n {pagesQuantity > 1 ? (\n \n ) : null}\n
\n
\n );\n};\n\nexport default Projects;\n\nexport const Head: HeadFC = ({\n pageContext: { markupData, site, lang },\n location,\n}: HeadProps) => (\n \n);\n\nexport const query = graphql`\n query ($skip: Int!, $limit: Int!, $lang: String) {\n allMarkdownRemark(\n filter: {\n fields: { sourceName: { eq: \"projects\" }, language: { eq: $lang } }\n }\n sort: { frontmatter: { date: DESC } }\n limit: $limit\n skip: $skip\n ) {\n nodes {\n id\n frontmatter {\n title\n teamSize\n duration\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","export interface ILang {\n lang: TLang;\n}\n\nexport type TLang = \"en\" | \"ru\";\n\nexport type TLinks = \"services\" | \"workflow\" | \"projects\" | \"blog\";\n\nexport interface IBasePageContext extends ILang {\n site: ISiteMetadata;\n}\n\nexport interface IMdQueryResult {\n allMarkdownRemark: {\n nodes: T[];\n };\n}\n\nexport interface ISiteMetadata {\n title: string;\n description: string;\n siteUrl: string;\n image: string;\n analyticsId: string;\n}\n\nexport enum Theme {\n dark = \"dark\",\n light = \"light\",\n}\n"],"names":["GenIcon","module","exports","props","theme","onClick","className","children","border","attr","colorClasses","Theme","dark","React","Object","assign","_ref","section","pagesQuantity","currentPage","nextPageTitle","pages","Array","from","length","_","i","nextPage","Link","to","Button","light","map","page","key","project","lang","cover","getImage","frontmatter","title","teamSize","duration","fontColorClass10","bgColors","id","itemScope","itemType","GatsbyImage","image","alt","itemProp","BsArrowUpRight","size","LocalBusinessMetadata","data","pageContext","projects","allMarkdownRemark","nodes","ContentContainer","maxWidthClass","ProjectPreview","Pagination","pagination","next","Head","_ref2","markupData","site","location","HeadSeo","head","bannerTitle","toUpperCase","siteUrl","path","pathname"],"sourceRoot":""} \ No newline at end of file diff --git a/cookie-policy/index.html b/cookie-policy/index.html index 5cb699ff..ead98ce1 100644 --- a/cookie-policy/index.html +++ b/cookie-policy/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/index.html b/index.html index b8c94d3b..1766383c 100644 --- a/index.html +++ b/index.html @@ -1,6 +1,6 @@ -

AR

CAD ADDINS

PLM

QUALITY ASSURANCE

3D

ETL

WEB DEVELOPMENT

UX/UI

MOBILE APP

CLOUD & DEVOPS

SOME OF OUR PROJECTS

DISCOVER MORE
cover

Bimcore Revit Add-In

cover

Web & Mobile apps for a logistics company

cover

IFSE Parameters Tool for Revit

OUR CUSTOMERS' SAY ABOUT US

REAL FEEDBACK FROM REAL PEOPLE
Specifi Europe Srl

Fabio Tantaro

General Manger, Specifi Europe Srl

Italy

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

Prima Consulting d.o.o.

Roberto Assi

CEO, Prima Consulting d.o.o.

Serbia

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

+ }]);

AR

CAD ADDINS

PLM

QUALITY ASSURANCE

3D

ETL

WEB DEVELOPMENT

UX/UI

MOBILE APP

CLOUD & DEVOPS

SOME OF OUR PROJECTS

DISCOVER MORE
cover

Bimcore Revit Add-In

cover

Web & Mobile apps for a logistics company

cover

IFSE Parameters Tool for Revit

OUR CUSTOMERS' SAY ABOUT US

REAL FEEDBACK FROM REAL PEOPLE
Specifi Europe Srl

Fabio Tantaro

General Manger, Specifi Europe Srl

Italy

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

Prima Consulting d.o.o.

Roberto Assi

CEO, Prima Consulting d.o.o.

Serbia

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

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

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

Soytex LLC

SIA "Agrolats Group"

CEO, Soytex LLC

Latvia

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

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

LET’S DISCUSS YOUR PROJECT

WE’LL BE GLAD TO HEAR FROM YOU!

Give us some details about your project or idea, so we can offer you a better consultation. @@ -75,6 +75,6 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/page-data/app-data.json b/page-data/app-data.json index 986539a8..3a4cacbb 100644 --- a/page-data/app-data.json +++ b/page-data/app-data.json @@ -1 +1 @@ -{"webpackCompilationHash":"291355437a8f164acbc7"} +{"webpackCompilationHash":"598bc45273e16885b615"} diff --git a/page-data/projects/page-data.json b/page-data/projects/page-data.json index 4ba18718..66b7bd9c 100644 --- a/page-data/projects/page-data.json +++ b/page-data/projects/page-data.json @@ -1 +1 @@ -{"componentChunkName":"component---src-pages-templates-projects-tsx","path":"/projects/","result":{"data":{"allMarkdownRemark":{"nodes":[{"id":"f17de1e3-0a73-5f92-bf66-1e12d5fdc0fb","frontmatter":{"title":"Bimcore Revit Add-In","text":null,"stack":[".NET","WPF","Revit API","Azure Blob Storage"],"cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAAAsTAAALEwEAmpwYAAADaUlEQVR42j2TW0yTZxjHu9Iyszh1CgU3dRPlKOMkpyqiYiIFWgbCxgoUObXIaTCQlaGOcDenFcrGoS1b6Q1wwTipS+SQkDBDwgwm48KFhBsyXXYzEhJu+9v7vWR7Lr883//5n15VoFb7z4HAtzkeEupPSU4h32jCmGekrbWND0+eYmFhkQpLBdPT09hqrUSGR7C4uEhVZRWdX9n5vr+fGwWFDPww4I+JikalVQcQdPQYrV+00P1NN46HD2ltaRVACxTkF/DmrzfKMktLS1SUW7iov8j6y3Wampq4d/cuzj6nJDE+Pk5CXDwqjTrAH6LTCSAHjxyPcA0Pk5uTy8bGBhkZGRSK66Y8EysrK6yvv8RmtZGZcYmkhER+HBlhYmJCAN/j2bN5UpOTUYnh2tUsXvz2gq2tLfnj3OxjdnZ2uNN1R1ngXMw5/nz9GmUGBwY5/O4hzicmyf25uTnKzKXcstXtM1Sr3uLM6TBqa2qF1Bb6+vqYnZ1lb2+PYcFWo1aLb04Jtru7y9ramjyg+OV2u3E6+7mQfoHoyCjiP45DdUAbiCZAg1aj5eiR9ySDnp4eLmde5snjJxhz8xgUHv43f7x6RdhHp9Gn6xkdHcVwPVsGFSuOKKAqJWFFVkJ8Aqurq4yNjeEb9dH1dRf3v71P5qVM0lPTmJ+fZ+P3DSlPn5bOjcJCHA4HdpF0XGycDCYtJXXfw5LPSnj+63O8P3lxuVxMTk7idrlFNaplIKG6ELkcFxvLwXcOYsg2YLd3Ul5ahlVUqeN2Bz6fD0tZueKhWlL+tLiY6qpqkbKLB989oKG+QQIqnaypqRG+ztHd3U3WlSxMxk9ob+8QO42CaRF11jqyhXTFiv8lh4eHS2ZDQ0OYS8y0t7VjKS+XBZ6amsLj8dDb28uIZ0R0tlXI1nPTUikack0EFMPZsDMi3H1Af6AIJCY6mk67XUj10NjQSOXNSnINOdJHxXyl9DarlRwhVzG/9PNSmhub5XHDdQNREZHogoJRHTl0mOBjQZjNZurr6tnc3GR5eVlKTxRBNYsX4fV6KRN+KWzzTfmyh/W36mXFbgslWVeuKk9XtkR1XBf6d8TZcGZmZvxVgtXTp7/IZ6eU+tSJkzQ1NrG9vS3s+FmWVym0ApicdJ72L9soLiqScnXBwf4T73/AvxdjN8N5j2dFAAAAAElFTkSuQmCC"},"images":{"fallback":{"src":"/static/4a234cc3d17b93e9604e89fd6ca63114/745f1/cover.png","srcSet":"/static/4a234cc3d17b93e9604e89fd6ca63114/2e306/cover.png 107w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/b6da5/cover.png 213w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/745f1/cover.png 426w","sizes":"(min-width: 426px) 426px, 100vw"},"sources":[{"srcSet":"/static/4a234cc3d17b93e9604e89fd6ca63114/98df7/cover.avif 107w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/731c7/cover.avif 213w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/fcbb7/cover.avif 426w","type":"image/avif","sizes":"(min-width: 426px) 426px, 100vw"},{"srcSet":"/static/4a234cc3d17b93e9604e89fd6ca63114/ff5da/cover.webp 107w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/e21cd/cover.webp 213w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/ed65d/cover.webp 426w","type":"image/webp","sizes":"(min-width: 426px) 426px, 100vw"}]},"width":600,"height":376.056338028169}}}}},{"id":"9f63d17d-6164-509e-b2c7-4c655ab9ad7a","frontmatter":{"title":"Web & Mobile apps for a logistics company","text":null,"stack":["C#, .NET","Blazor","Maui","MongoDB, ClickHouse","SignalR","Dapr, Redis, RabbitMQ"],"cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAAAsTAAALEwEAmpwYAAADiUlEQVR42iWTe0iVZxzHX4/VtCwjNdRpXjI9huZmqaOxZUstLSWpebytNqaubNNS89IGHj3HzHlvkZfRsTyFutxgijcUQREFL6Uoggrm8LI/Gs1/GgjLz5732QsP7+99+L3f3/f5fr+PYmmhwdrKavt9J2cO2juw29oamz02HPP3Z21tjfX1Dd78/YaxsTFOnwrlWloao6OjvJh6wd2SEj4+eRJFUbZ3aCzRKBbrilro4nT09/fT29tLkb4IFxcX/P38WFlZYX5+nsXFBUZGRvjq6pfEfx7Hz42NvJx+SXd3N3HiWwBiqdEIQAVFLdSN4BNB1NfVU1FRQUhQMCHBIczNzTE1Ncns7CxtrW2yx+ewl2RqFOwMRiOXL10mOCgID3d3yVQyVAE9PTwpKysjIyOD7258S/r1dMbHx+UaHh6msqKSwIAP0Hp5ExUZSUNDI+XlFfJ0mRmZpHydInEUjYWFLI6IyXq9nuTEJAryCygsLKSzs5PBwUH5NhoMaL19cHNxJTwsjHulpdTU1PDDne/x9dZib2f3P6Cb6yGcnZwEQw/JLupcFN+kppGWmsrQ0JBcfX19GIqK8fXRopr3WWgoz395jvnxE35r/5W2llZJIuBYAMohFwHo6IyX52Fyc26Tfu06MecvcDY8Qhx1iNaWFqrEcXOysvF098DBzh4/7VEizoQTdiYMk8kkzfxRyNX8pBnF7oAdu3buwtPNnURdgph+mtSUVK5euSLZtQhAs2i8Ixh8JIyKPHuO80LD6spKYWA5sRcvUl1VTd3Dh7JXOf5hIAcdHHCwt5c/nPrkU24IQ75ISqbJ1ERzczMPfnqA6dEjsm7ewlhsYGBggMnJSSKElonxCeRkZ9Pxewf/vnuHciLwuGSTn5cnMqjnVuZN3F3dOGC7H3VYzIVoxkSQX//1mtzbuVLbxYUFJsYnMBQX097eLsK/zsbGn7x9+w+KKmZMdDRpKSnohbMqaHJSEvts9hIuNDKbzTxuaiI/N086PjExztLSEltbWyK3dUQIre/X1FJacpdXr1a2lXidjvu1tTQ2NJCUkICToyMFeflClyo6OzrY3NwUeSvH+j0rjmp9ZeYa6utl6C/Fxsq9eF08T58+Q32Unp4epqent9V7m52VJbO039aWstJ7zEzPsLy8LDW03bsPm9172Gm5Q737MpeVIthGg5GZmZntrq4uVldX//gPNxJT5PN0wHIAAAAASUVORK5CYII="},"images":{"fallback":{"src":"/static/6ef9f6d8ee22fa1e32dc39cd33357bae/745f1/cover.png","srcSet":"/static/6ef9f6d8ee22fa1e32dc39cd33357bae/2e306/cover.png 107w,\n/static/6ef9f6d8ee22fa1e32dc39cd33357bae/b6da5/cover.png 213w,\n/static/6ef9f6d8ee22fa1e32dc39cd33357bae/745f1/cover.png 426w","sizes":"(min-width: 426px) 426px, 100vw"},"sources":[{"srcSet":"/static/6ef9f6d8ee22fa1e32dc39cd33357bae/98df7/cover.avif 107w,\n/static/6ef9f6d8ee22fa1e32dc39cd33357bae/731c7/cover.avif 213w,\n/static/6ef9f6d8ee22fa1e32dc39cd33357bae/fcbb7/cover.avif 426w","type":"image/avif","sizes":"(min-width: 426px) 426px, 100vw"},{"srcSet":"/static/6ef9f6d8ee22fa1e32dc39cd33357bae/ff5da/cover.webp 107w,\n/static/6ef9f6d8ee22fa1e32dc39cd33357bae/e21cd/cover.webp 213w,\n/static/6ef9f6d8ee22fa1e32dc39cd33357bae/ed65d/cover.webp 426w","type":"image/webp","sizes":"(min-width: 426px) 426px, 100vw"}]},"width":600,"height":376.056338028169}}}}},{"id":"ff9598a3-3fad-5a4e-a8a8-a8858b3a27e7","frontmatter":{"title":"IFSE Parameters Tool for Revit","text":null,"stack":["React","JS","HTML","Node.js","NestJS","Swagger"],"cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAAAsTAAALEwEAmpwYAAADaUlEQVR42j2TW0yTZxjHu9Iyszh1CgU3dRPlKOMkpyqiYiIFWgbCxgoUObXIaTCQlaGOcDenFcrGoS1b6Q1wwTipS+SQkDBDwgwm48KFhBsyXXYzEhJu+9v7vWR7Lr883//5n15VoFb7z4HAtzkeEupPSU4h32jCmGekrbWND0+eYmFhkQpLBdPT09hqrUSGR7C4uEhVZRWdX9n5vr+fGwWFDPww4I+JikalVQcQdPQYrV+00P1NN46HD2ltaRVACxTkF/DmrzfKMktLS1SUW7iov8j6y3Wampq4d/cuzj6nJDE+Pk5CXDwqjTrAH6LTCSAHjxyPcA0Pk5uTy8bGBhkZGRSK66Y8EysrK6yvv8RmtZGZcYmkhER+HBlhYmJCAN/j2bN5UpOTUYnh2tUsXvz2gq2tLfnj3OxjdnZ2uNN1R1ngXMw5/nz9GmUGBwY5/O4hzicmyf25uTnKzKXcstXtM1Sr3uLM6TBqa2qF1Bb6+vqYnZ1lb2+PYcFWo1aLb04Jtru7y9ramjyg+OV2u3E6+7mQfoHoyCjiP45DdUAbiCZAg1aj5eiR9ySDnp4eLmde5snjJxhz8xgUHv43f7x6RdhHp9Gn6xkdHcVwPVsGFSuOKKAqJWFFVkJ8Aqurq4yNjeEb9dH1dRf3v71P5qVM0lPTmJ+fZ+P3DSlPn5bOjcJCHA4HdpF0XGycDCYtJXXfw5LPSnj+63O8P3lxuVxMTk7idrlFNaplIKG6ELkcFxvLwXcOYsg2YLd3Ul5ahlVUqeN2Bz6fD0tZueKhWlL+tLiY6qpqkbKLB989oKG+QQIqnaypqRG+ztHd3U3WlSxMxk9ob+8QO42CaRF11jqyhXTFiv8lh4eHS2ZDQ0OYS8y0t7VjKS+XBZ6amsLj8dDb28uIZ0R0tlXI1nPTUikack0EFMPZsDMi3H1Af6AIJCY6mk67XUj10NjQSOXNSnINOdJHxXyl9DarlRwhVzG/9PNSmhub5XHDdQNREZHogoJRHTl0mOBjQZjNZurr6tnc3GR5eVlKTxRBNYsX4fV6KRN+KWzzTfmyh/W36mXFbgslWVeuKk9XtkR1XBf6d8TZcGZmZvxVgtXTp7/IZ6eU+tSJkzQ1NrG9vS3s+FmWVym0ApicdJ72L9soLiqScnXBwf4T73/AvxdjN8N5j2dFAAAAAElFTkSuQmCC"},"images":{"fallback":{"src":"/static/4a234cc3d17b93e9604e89fd6ca63114/745f1/cover.png","srcSet":"/static/4a234cc3d17b93e9604e89fd6ca63114/2e306/cover.png 107w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/b6da5/cover.png 213w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/745f1/cover.png 426w","sizes":"(min-width: 426px) 426px, 100vw"},"sources":[{"srcSet":"/static/4a234cc3d17b93e9604e89fd6ca63114/98df7/cover.avif 107w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/731c7/cover.avif 213w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/fcbb7/cover.avif 426w","type":"image/avif","sizes":"(min-width: 426px) 426px, 100vw"},{"srcSet":"/static/4a234cc3d17b93e9604e89fd6ca63114/ff5da/cover.webp 107w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/e21cd/cover.webp 213w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/ed65d/cover.webp 426w","type":"image/webp","sizes":"(min-width: 426px) 426px, 100vw"}]},"width":600,"height":376.056338028169}}}}},{"id":"08716ab8-fc5f-5f90-9fc0-a8218ec51923","frontmatter":{"title":"Website for anarchitectural agency","text":null,"stack":["React","Gatsby","MUI"],"cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAAAsTAAALEwEAmpwYAAADZElEQVR42j2Ua0wUVxiGSWu1AiqXReqlTe+CTSs3CzYB/lTACyCKtCxKhFSQBapRi4nVVOkuURtccAVlSXepFdIq/lAkSIUN4ZpASITlZv8AIUEISAILiW5hnp45tJzkm5lMJs953/f7zrj4eGtmRCFK8fb04jP/7WRlnqC5uZmOjg7q6uqw2WwMDQ2hKApLS0uo6/69+8THxbHj8y/YsmkzvhofReOlwUWFbdT44LnBA79P/aiwVlBbW4vphonW1lb53NjYyNjYGP+v8jIzGccziImOISggkMiISLb7+UuwClRUoMf6DQTsCMBqsTIxMcHU1BStLS1SaU1NDaOjo1Kh8bqR4MAg9ghYdpaO3JxcondH4euzUdaKQhUYKID3/vgTQ0GBtOl0OqXl5G+TKS4qpqqqiqTERAoLCzl75izpaelcuHBRWI/nv9iWgSrZy8NTyA/i0cNHZGZmkvdDHr/fucPlny4Rtz+WlGQtKVot58T7J/VPOHnqFMe/y8BsLkcrNlRFrSjc5PsOa1a9hf82PxoaGoSNHMrFh9euXkOv15Ot0/FN4mFioqIx/Kynvr4eo9HIubw8rFar3Mzd1Q2Nl/cy0PXttYR+GUppaSkDAwN0d3fLDv8igPmXLou89oicoon6ejfGwuu0tbVRXV2NXsDLzWZSjxwlVriQClWrJSWlzM7O0i4+rKys5PXrV7x8OU1nZye/VVSQn5/P7Vu3OBAfj0FvoEU066LILvVoKkmHkwgN2Un6sWOczP1+WWFHezuLi4s4HA5GhodpamqixHST6elpnP84GX8xTuXdu/x4/jyPRcdtjTYSDiQQER5OZHiEgKVx5vRp0gTURQ3ziDZFzlbPs2c45h3MzMxgt9sZGhxkfn4ey68Wym6X0ddn5+nTvyg2FlEkymqxiLuR3OwcgoOCcVvriovwrajTHrtvP7oTWZgFuL+/n1fC9ovxcUZGhpmcnKS3t5ebJhMPRHbPn/9NV1cXBQYDO4NDZA9WvfHmCpCtm7fwyUcfsys0jEMJB8nRZUtFg0LhwsKCVKnm2dvTg12Ar165QohQtGb1ata5ubPefZ08abLL4jKpQsXoKB++/4GE7tu7l8SDh6TiZat9zM3NyY5+FbZLQlQ17219lzAxHeqRE/8BRR3sfwEEV2mX5rkISwAAAABJRU5ErkJggg=="},"images":{"fallback":{"src":"/static/5f0594038e6b8a515bbaffa94d889166/745f1/cover.png","srcSet":"/static/5f0594038e6b8a515bbaffa94d889166/2e306/cover.png 107w,\n/static/5f0594038e6b8a515bbaffa94d889166/b6da5/cover.png 213w,\n/static/5f0594038e6b8a515bbaffa94d889166/745f1/cover.png 426w","sizes":"(min-width: 426px) 426px, 100vw"},"sources":[{"srcSet":"/static/5f0594038e6b8a515bbaffa94d889166/98df7/cover.avif 107w,\n/static/5f0594038e6b8a515bbaffa94d889166/731c7/cover.avif 213w,\n/static/5f0594038e6b8a515bbaffa94d889166/fcbb7/cover.avif 426w","type":"image/avif","sizes":"(min-width: 426px) 426px, 100vw"},{"srcSet":"/static/5f0594038e6b8a515bbaffa94d889166/ff5da/cover.webp 107w,\n/static/5f0594038e6b8a515bbaffa94d889166/e21cd/cover.webp 213w,\n/static/5f0594038e6b8a515bbaffa94d889166/ed65d/cover.webp 426w","type":"image/webp","sizes":"(min-width: 426px) 426px, 100vw"}]},"width":600,"height":376.056338028169}}}}}]}},"pageContext":{"limit":10,"skip":0,"pagesQuantity":1,"currentPage":1,"lang":"en","markupData":{"bannerTitle":"CODECAVE AWESOME PROJECTS","head":"CodeCave Projects","clientSectionTitle":"Client","challengeSectionTitle":"Challenge","solutionSectionTitle":"Solution","teamSectionTitle":"Engaged team","techSectionTitle":"Applied technologies","resultSectionTitle":"Product","moreProjectsSectionTitle":"some of Our projects","moreProjectsSectionLinkTitle":"Discover MORE"},"pagination":{"next":"Next page"},"site":{"siteUrl":"https://www.codecave.it"}}},"staticQueryHashes":["2595676272","2708699711"],"slicesMap":{}} \ No newline at end of file +{"componentChunkName":"component---src-pages-templates-projects-tsx","path":"/projects/","result":{"data":{"allMarkdownRemark":{"nodes":[{"id":"f17de1e3-0a73-5f92-bf66-1e12d5fdc0fb","frontmatter":{"title":"Bimcore Revit Add-In","teamSize":"4 specialists","duration":"3 months","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAAAsTAAALEwEAmpwYAAADaUlEQVR42j2TW0yTZxjHu9Iyszh1CgU3dRPlKOMkpyqiYiIFWgbCxgoUObXIaTCQlaGOcDenFcrGoS1b6Q1wwTipS+SQkDBDwgwm48KFhBsyXXYzEhJu+9v7vWR7Lr883//5n15VoFb7z4HAtzkeEupPSU4h32jCmGekrbWND0+eYmFhkQpLBdPT09hqrUSGR7C4uEhVZRWdX9n5vr+fGwWFDPww4I+JikalVQcQdPQYrV+00P1NN46HD2ltaRVACxTkF/DmrzfKMktLS1SUW7iov8j6y3Wampq4d/cuzj6nJDE+Pk5CXDwqjTrAH6LTCSAHjxyPcA0Pk5uTy8bGBhkZGRSK66Y8EysrK6yvv8RmtZGZcYmkhER+HBlhYmJCAN/j2bN5UpOTUYnh2tUsXvz2gq2tLfnj3OxjdnZ2uNN1R1ngXMw5/nz9GmUGBwY5/O4hzicmyf25uTnKzKXcstXtM1Sr3uLM6TBqa2qF1Bb6+vqYnZ1lb2+PYcFWo1aLb04Jtru7y9ramjyg+OV2u3E6+7mQfoHoyCjiP45DdUAbiCZAg1aj5eiR9ySDnp4eLmde5snjJxhz8xgUHv43f7x6RdhHp9Gn6xkdHcVwPVsGFSuOKKAqJWFFVkJ8Aqurq4yNjeEb9dH1dRf3v71P5qVM0lPTmJ+fZ+P3DSlPn5bOjcJCHA4HdpF0XGycDCYtJXXfw5LPSnj+63O8P3lxuVxMTk7idrlFNaplIKG6ELkcFxvLwXcOYsg2YLd3Ul5ahlVUqeN2Bz6fD0tZueKhWlL+tLiY6qpqkbKLB989oKG+QQIqnaypqRG+ztHd3U3WlSxMxk9ob+8QO42CaRF11jqyhXTFiv8lh4eHS2ZDQ0OYS8y0t7VjKS+XBZ6amsLj8dDb28uIZ0R0tlXI1nPTUikack0EFMPZsDMi3H1Af6AIJCY6mk67XUj10NjQSOXNSnINOdJHxXyl9DarlRwhVzG/9PNSmhub5XHDdQNREZHogoJRHTl0mOBjQZjNZurr6tnc3GR5eVlKTxRBNYsX4fV6KRN+KWzzTfmyh/W36mXFbgslWVeuKk9XtkR1XBf6d8TZcGZmZvxVgtXTp7/IZ6eU+tSJkzQ1NrG9vS3s+FmWVym0ApicdJ72L9soLiqScnXBwf4T73/AvxdjN8N5j2dFAAAAAElFTkSuQmCC"},"images":{"fallback":{"src":"/static/4a234cc3d17b93e9604e89fd6ca63114/745f1/cover.png","srcSet":"/static/4a234cc3d17b93e9604e89fd6ca63114/2e306/cover.png 107w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/b6da5/cover.png 213w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/745f1/cover.png 426w","sizes":"(min-width: 426px) 426px, 100vw"},"sources":[{"srcSet":"/static/4a234cc3d17b93e9604e89fd6ca63114/98df7/cover.avif 107w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/731c7/cover.avif 213w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/fcbb7/cover.avif 426w","type":"image/avif","sizes":"(min-width: 426px) 426px, 100vw"},{"srcSet":"/static/4a234cc3d17b93e9604e89fd6ca63114/ff5da/cover.webp 107w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/e21cd/cover.webp 213w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/ed65d/cover.webp 426w","type":"image/webp","sizes":"(min-width: 426px) 426px, 100vw"}]},"width":600,"height":376.056338028169}}}}},{"id":"9f63d17d-6164-509e-b2c7-4c655ab9ad7a","frontmatter":{"title":"Web & Mobile apps for a logistics company","teamSize":"7 specialists","duration":"3 months","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAAAsTAAALEwEAmpwYAAADiUlEQVR42iWTe0iVZxzHX4/VtCwjNdRpXjI9huZmqaOxZUstLSWpebytNqaubNNS89IGHj3HzHlvkZfRsTyFutxgijcUQREFL6Uoggrm8LI/Gs1/GgjLz5732QsP7+99+L3f3/f5fr+PYmmhwdrKavt9J2cO2juw29oamz02HPP3Z21tjfX1Dd78/YaxsTFOnwrlWloao6OjvJh6wd2SEj4+eRJFUbZ3aCzRKBbrilro4nT09/fT29tLkb4IFxcX/P38WFlZYX5+nsXFBUZGRvjq6pfEfx7Hz42NvJx+SXd3N3HiWwBiqdEIQAVFLdSN4BNB1NfVU1FRQUhQMCHBIczNzTE1Ncns7CxtrW2yx+ewl2RqFOwMRiOXL10mOCgID3d3yVQyVAE9PTwpKysjIyOD7258S/r1dMbHx+UaHh6msqKSwIAP0Hp5ExUZSUNDI+XlFfJ0mRmZpHydInEUjYWFLI6IyXq9nuTEJAryCygsLKSzs5PBwUH5NhoMaL19cHNxJTwsjHulpdTU1PDDne/x9dZib2f3P6Cb6yGcnZwEQw/JLupcFN+kppGWmsrQ0JBcfX19GIqK8fXRopr3WWgoz395jvnxE35r/5W2llZJIuBYAMohFwHo6IyX52Fyc26Tfu06MecvcDY8Qhx1iNaWFqrEcXOysvF098DBzh4/7VEizoQTdiYMk8kkzfxRyNX8pBnF7oAdu3buwtPNnURdgph+mtSUVK5euSLZtQhAs2i8Ixh8JIyKPHuO80LD6spKYWA5sRcvUl1VTd3Dh7JXOf5hIAcdHHCwt5c/nPrkU24IQ75ISqbJ1ERzczMPfnqA6dEjsm7ewlhsYGBggMnJSSKElonxCeRkZ9Pxewf/vnuHciLwuGSTn5cnMqjnVuZN3F3dOGC7H3VYzIVoxkSQX//1mtzbuVLbxYUFJsYnMBQX097eLsK/zsbGn7x9+w+KKmZMdDRpKSnohbMqaHJSEvts9hIuNDKbzTxuaiI/N086PjExztLSEltbWyK3dUQIre/X1FJacpdXr1a2lXidjvu1tTQ2NJCUkICToyMFeflClyo6OzrY3NwUeSvH+j0rjmp9ZeYa6utl6C/Fxsq9eF08T58+Q32Unp4epqent9V7m52VJbO039aWstJ7zEzPsLy8LDW03bsPm9172Gm5Q737MpeVIthGg5GZmZntrq4uVldX//gPNxJT5PN0wHIAAAAASUVORK5CYII="},"images":{"fallback":{"src":"/static/6ef9f6d8ee22fa1e32dc39cd33357bae/745f1/cover.png","srcSet":"/static/6ef9f6d8ee22fa1e32dc39cd33357bae/2e306/cover.png 107w,\n/static/6ef9f6d8ee22fa1e32dc39cd33357bae/b6da5/cover.png 213w,\n/static/6ef9f6d8ee22fa1e32dc39cd33357bae/745f1/cover.png 426w","sizes":"(min-width: 426px) 426px, 100vw"},"sources":[{"srcSet":"/static/6ef9f6d8ee22fa1e32dc39cd33357bae/98df7/cover.avif 107w,\n/static/6ef9f6d8ee22fa1e32dc39cd33357bae/731c7/cover.avif 213w,\n/static/6ef9f6d8ee22fa1e32dc39cd33357bae/fcbb7/cover.avif 426w","type":"image/avif","sizes":"(min-width: 426px) 426px, 100vw"},{"srcSet":"/static/6ef9f6d8ee22fa1e32dc39cd33357bae/ff5da/cover.webp 107w,\n/static/6ef9f6d8ee22fa1e32dc39cd33357bae/e21cd/cover.webp 213w,\n/static/6ef9f6d8ee22fa1e32dc39cd33357bae/ed65d/cover.webp 426w","type":"image/webp","sizes":"(min-width: 426px) 426px, 100vw"}]},"width":600,"height":376.056338028169}}}}},{"id":"ff9598a3-3fad-5a4e-a8a8-a8858b3a27e7","frontmatter":{"title":"IFSE Parameters Tool for Revit","teamSize":"6 specialists","duration":"3 months","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAAAsTAAALEwEAmpwYAAADaUlEQVR42j2TW0yTZxjHu9Iyszh1CgU3dRPlKOMkpyqiYiIFWgbCxgoUObXIaTCQlaGOcDenFcrGoS1b6Q1wwTipS+SQkDBDwgwm48KFhBsyXXYzEhJu+9v7vWR7Lr883//5n15VoFb7z4HAtzkeEupPSU4h32jCmGekrbWND0+eYmFhkQpLBdPT09hqrUSGR7C4uEhVZRWdX9n5vr+fGwWFDPww4I+JikalVQcQdPQYrV+00P1NN46HD2ltaRVACxTkF/DmrzfKMktLS1SUW7iov8j6y3Wampq4d/cuzj6nJDE+Pk5CXDwqjTrAH6LTCSAHjxyPcA0Pk5uTy8bGBhkZGRSK66Y8EysrK6yvv8RmtZGZcYmkhER+HBlhYmJCAN/j2bN5UpOTUYnh2tUsXvz2gq2tLfnj3OxjdnZ2uNN1R1ngXMw5/nz9GmUGBwY5/O4hzicmyf25uTnKzKXcstXtM1Sr3uLM6TBqa2qF1Bb6+vqYnZ1lb2+PYcFWo1aLb04Jtru7y9ramjyg+OV2u3E6+7mQfoHoyCjiP45DdUAbiCZAg1aj5eiR9ySDnp4eLmde5snjJxhz8xgUHv43f7x6RdhHp9Gn6xkdHcVwPVsGFSuOKKAqJWFFVkJ8Aqurq4yNjeEb9dH1dRf3v71P5qVM0lPTmJ+fZ+P3DSlPn5bOjcJCHA4HdpF0XGycDCYtJXXfw5LPSnj+63O8P3lxuVxMTk7idrlFNaplIKG6ELkcFxvLwXcOYsg2YLd3Ul5ahlVUqeN2Bz6fD0tZueKhWlL+tLiY6qpqkbKLB989oKG+QQIqnaypqRG+ztHd3U3WlSxMxk9ob+8QO42CaRF11jqyhXTFiv8lh4eHS2ZDQ0OYS8y0t7VjKS+XBZ6amsLj8dDb28uIZ0R0tlXI1nPTUikack0EFMPZsDMi3H1Af6AIJCY6mk67XUj10NjQSOXNSnINOdJHxXyl9DarlRwhVzG/9PNSmhub5XHDdQNREZHogoJRHTl0mOBjQZjNZurr6tnc3GR5eVlKTxRBNYsX4fV6KRN+KWzzTfmyh/W36mXFbgslWVeuKk9XtkR1XBf6d8TZcGZmZvxVgtXTp7/IZ6eU+tSJkzQ1NrG9vS3s+FmWVym0ApicdJ72L9soLiqScnXBwf4T73/AvxdjN8N5j2dFAAAAAElFTkSuQmCC"},"images":{"fallback":{"src":"/static/4a234cc3d17b93e9604e89fd6ca63114/745f1/cover.png","srcSet":"/static/4a234cc3d17b93e9604e89fd6ca63114/2e306/cover.png 107w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/b6da5/cover.png 213w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/745f1/cover.png 426w","sizes":"(min-width: 426px) 426px, 100vw"},"sources":[{"srcSet":"/static/4a234cc3d17b93e9604e89fd6ca63114/98df7/cover.avif 107w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/731c7/cover.avif 213w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/fcbb7/cover.avif 426w","type":"image/avif","sizes":"(min-width: 426px) 426px, 100vw"},{"srcSet":"/static/4a234cc3d17b93e9604e89fd6ca63114/ff5da/cover.webp 107w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/e21cd/cover.webp 213w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/ed65d/cover.webp 426w","type":"image/webp","sizes":"(min-width: 426px) 426px, 100vw"}]},"width":600,"height":376.056338028169}}}}},{"id":"08716ab8-fc5f-5f90-9fc0-a8218ec51923","frontmatter":{"title":"Website for anarchitectural agency","teamSize":"5 specialists","duration":"3 months","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAAAsTAAALEwEAmpwYAAADZElEQVR42j2Ua0wUVxiGSWu1AiqXReqlTe+CTSs3CzYB/lTACyCKtCxKhFSQBapRi4nVVOkuURtccAVlSXepFdIq/lAkSIUN4ZpASITlZv8AIUEISAILiW5hnp45tJzkm5lMJs953/f7zrj4eGtmRCFK8fb04jP/7WRlnqC5uZmOjg7q6uqw2WwMDQ2hKApLS0uo6/69+8THxbHj8y/YsmkzvhofReOlwUWFbdT44LnBA79P/aiwVlBbW4vphonW1lb53NjYyNjYGP+v8jIzGccziImOISggkMiISLb7+UuwClRUoMf6DQTsCMBqsTIxMcHU1BStLS1SaU1NDaOjo1Kh8bqR4MAg9ghYdpaO3JxcondH4euzUdaKQhUYKID3/vgTQ0GBtOl0OqXl5G+TKS4qpqqqiqTERAoLCzl75izpaelcuHBRWI/nv9iWgSrZy8NTyA/i0cNHZGZmkvdDHr/fucPlny4Rtz+WlGQtKVot58T7J/VPOHnqFMe/y8BsLkcrNlRFrSjc5PsOa1a9hf82PxoaGoSNHMrFh9euXkOv15Ot0/FN4mFioqIx/Kynvr4eo9HIubw8rFar3Mzd1Q2Nl/cy0PXttYR+GUppaSkDAwN0d3fLDv8igPmXLou89oicoon6ejfGwuu0tbVRXV2NXsDLzWZSjxwlVriQClWrJSWlzM7O0i4+rKys5PXrV7x8OU1nZye/VVSQn5/P7Vu3OBAfj0FvoEU066LILvVoKkmHkwgN2Un6sWOczP1+WWFHezuLi4s4HA5GhodpamqixHST6elpnP84GX8xTuXdu/x4/jyPRcdtjTYSDiQQER5OZHiEgKVx5vRp0gTURQ3ziDZFzlbPs2c45h3MzMxgt9sZGhxkfn4ey68Wym6X0ddn5+nTvyg2FlEkymqxiLuR3OwcgoOCcVvriovwrajTHrtvP7oTWZgFuL+/n1fC9ovxcUZGhpmcnKS3t5ebJhMPRHbPn/9NV1cXBQYDO4NDZA9WvfHmCpCtm7fwyUcfsys0jEMJB8nRZUtFg0LhwsKCVKnm2dvTg12Ar165QohQtGb1ata5ubPefZ08abLL4jKpQsXoKB++/4GE7tu7l8SDh6TiZat9zM3NyY5+FbZLQlQ17219lzAxHeqRE/8BRR3sfwEEV2mX5rkISwAAAABJRU5ErkJggg=="},"images":{"fallback":{"src":"/static/5f0594038e6b8a515bbaffa94d889166/745f1/cover.png","srcSet":"/static/5f0594038e6b8a515bbaffa94d889166/2e306/cover.png 107w,\n/static/5f0594038e6b8a515bbaffa94d889166/b6da5/cover.png 213w,\n/static/5f0594038e6b8a515bbaffa94d889166/745f1/cover.png 426w","sizes":"(min-width: 426px) 426px, 100vw"},"sources":[{"srcSet":"/static/5f0594038e6b8a515bbaffa94d889166/98df7/cover.avif 107w,\n/static/5f0594038e6b8a515bbaffa94d889166/731c7/cover.avif 213w,\n/static/5f0594038e6b8a515bbaffa94d889166/fcbb7/cover.avif 426w","type":"image/avif","sizes":"(min-width: 426px) 426px, 100vw"},{"srcSet":"/static/5f0594038e6b8a515bbaffa94d889166/ff5da/cover.webp 107w,\n/static/5f0594038e6b8a515bbaffa94d889166/e21cd/cover.webp 213w,\n/static/5f0594038e6b8a515bbaffa94d889166/ed65d/cover.webp 426w","type":"image/webp","sizes":"(min-width: 426px) 426px, 100vw"}]},"width":600,"height":376.056338028169}}}}}]}},"pageContext":{"limit":10,"skip":0,"pagesQuantity":1,"currentPage":1,"lang":"en","markupData":{"bannerTitle":"CODECAVE AWESOME PROJECTS","head":"CodeCave Projects","clientSectionTitle":"Client","challengeSectionTitle":"Challenge","solutionSectionTitle":"Solution","teamSectionTitle":"Engaged team","techSectionTitle":"Applied technologies","resultSectionTitle":"Product","moreProjectsSectionTitle":"some of Our projects","moreProjectsSectionLinkTitle":"Discover MORE"},"pagination":{"next":"Next page"},"site":{"siteUrl":"https://www.codecave.it"}}},"staticQueryHashes":["2595676272","2708699711"],"slicesMap":{}} \ No newline at end of file diff --git a/page-data/projects/page/1/page-data.json b/page-data/projects/page/1/page-data.json index 6c8ff84e..f410214c 100644 --- a/page-data/projects/page/1/page-data.json +++ b/page-data/projects/page/1/page-data.json @@ -1 +1 @@ -{"componentChunkName":"component---src-pages-templates-projects-tsx","path":"/projects/page/1/","result":{"data":{"allMarkdownRemark":{"nodes":[{"id":"f17de1e3-0a73-5f92-bf66-1e12d5fdc0fb","frontmatter":{"title":"Bimcore Revit Add-In","text":null,"stack":[".NET","WPF","Revit API","Azure Blob Storage"],"cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAAAsTAAALEwEAmpwYAAADaUlEQVR42j2TW0yTZxjHu9Iyszh1CgU3dRPlKOMkpyqiYiIFWgbCxgoUObXIaTCQlaGOcDenFcrGoS1b6Q1wwTipS+SQkDBDwgwm48KFhBsyXXYzEhJu+9v7vWR7Lr883//5n15VoFb7z4HAtzkeEupPSU4h32jCmGekrbWND0+eYmFhkQpLBdPT09hqrUSGR7C4uEhVZRWdX9n5vr+fGwWFDPww4I+JikalVQcQdPQYrV+00P1NN46HD2ltaRVACxTkF/DmrzfKMktLS1SUW7iov8j6y3Wampq4d/cuzj6nJDE+Pk5CXDwqjTrAH6LTCSAHjxyPcA0Pk5uTy8bGBhkZGRSK66Y8EysrK6yvv8RmtZGZcYmkhER+HBlhYmJCAN/j2bN5UpOTUYnh2tUsXvz2gq2tLfnj3OxjdnZ2uNN1R1ngXMw5/nz9GmUGBwY5/O4hzicmyf25uTnKzKXcstXtM1Sr3uLM6TBqa2qF1Bb6+vqYnZ1lb2+PYcFWo1aLb04Jtru7y9ramjyg+OV2u3E6+7mQfoHoyCjiP45DdUAbiCZAg1aj5eiR9ySDnp4eLmde5snjJxhz8xgUHv43f7x6RdhHp9Gn6xkdHcVwPVsGFSuOKKAqJWFFVkJ8Aqurq4yNjeEb9dH1dRf3v71P5qVM0lPTmJ+fZ+P3DSlPn5bOjcJCHA4HdpF0XGycDCYtJXXfw5LPSnj+63O8P3lxuVxMTk7idrlFNaplIKG6ELkcFxvLwXcOYsg2YLd3Ul5ahlVUqeN2Bz6fD0tZueKhWlL+tLiY6qpqkbKLB989oKG+QQIqnaypqRG+ztHd3U3WlSxMxk9ob+8QO42CaRF11jqyhXTFiv8lh4eHS2ZDQ0OYS8y0t7VjKS+XBZ6amsLj8dDb28uIZ0R0tlXI1nPTUikack0EFMPZsDMi3H1Af6AIJCY6mk67XUj10NjQSOXNSnINOdJHxXyl9DarlRwhVzG/9PNSmhub5XHDdQNREZHogoJRHTl0mOBjQZjNZurr6tnc3GR5eVlKTxRBNYsX4fV6KRN+KWzzTfmyh/W36mXFbgslWVeuKk9XtkR1XBf6d8TZcGZmZvxVgtXTp7/IZ6eU+tSJkzQ1NrG9vS3s+FmWVym0ApicdJ72L9soLiqScnXBwf4T73/AvxdjN8N5j2dFAAAAAElFTkSuQmCC"},"images":{"fallback":{"src":"/static/4a234cc3d17b93e9604e89fd6ca63114/745f1/cover.png","srcSet":"/static/4a234cc3d17b93e9604e89fd6ca63114/2e306/cover.png 107w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/b6da5/cover.png 213w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/745f1/cover.png 426w","sizes":"(min-width: 426px) 426px, 100vw"},"sources":[{"srcSet":"/static/4a234cc3d17b93e9604e89fd6ca63114/98df7/cover.avif 107w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/731c7/cover.avif 213w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/fcbb7/cover.avif 426w","type":"image/avif","sizes":"(min-width: 426px) 426px, 100vw"},{"srcSet":"/static/4a234cc3d17b93e9604e89fd6ca63114/ff5da/cover.webp 107w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/e21cd/cover.webp 213w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/ed65d/cover.webp 426w","type":"image/webp","sizes":"(min-width: 426px) 426px, 100vw"}]},"width":600,"height":376.056338028169}}}}},{"id":"9f63d17d-6164-509e-b2c7-4c655ab9ad7a","frontmatter":{"title":"Web & Mobile apps for a logistics company","text":null,"stack":["C#, .NET","Blazor","Maui","MongoDB, ClickHouse","SignalR","Dapr, Redis, RabbitMQ"],"cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAAAsTAAALEwEAmpwYAAADiUlEQVR42iWTe0iVZxzHX4/VtCwjNdRpXjI9huZmqaOxZUstLSWpebytNqaubNNS89IGHj3HzHlvkZfRsTyFutxgijcUQREFL6Uoggrm8LI/Gs1/GgjLz5732QsP7+99+L3f3/f5fr+PYmmhwdrKavt9J2cO2juw29oamz02HPP3Z21tjfX1Dd78/YaxsTFOnwrlWloao6OjvJh6wd2SEj4+eRJFUbZ3aCzRKBbrilro4nT09/fT29tLkb4IFxcX/P38WFlZYX5+nsXFBUZGRvjq6pfEfx7Hz42NvJx+SXd3N3HiWwBiqdEIQAVFLdSN4BNB1NfVU1FRQUhQMCHBIczNzTE1Ncns7CxtrW2yx+ewl2RqFOwMRiOXL10mOCgID3d3yVQyVAE9PTwpKysjIyOD7258S/r1dMbHx+UaHh6msqKSwIAP0Hp5ExUZSUNDI+XlFfJ0mRmZpHydInEUjYWFLI6IyXq9nuTEJAryCygsLKSzs5PBwUH5NhoMaL19cHNxJTwsjHulpdTU1PDDne/x9dZib2f3P6Cb6yGcnZwEQw/JLupcFN+kppGWmsrQ0JBcfX19GIqK8fXRopr3WWgoz395jvnxE35r/5W2llZJIuBYAMohFwHo6IyX52Fyc26Tfu06MecvcDY8Qhx1iNaWFqrEcXOysvF098DBzh4/7VEizoQTdiYMk8kkzfxRyNX8pBnF7oAdu3buwtPNnURdgph+mtSUVK5euSLZtQhAs2i8Ixh8JIyKPHuO80LD6spKYWA5sRcvUl1VTd3Dh7JXOf5hIAcdHHCwt5c/nPrkU24IQ75ISqbJ1ERzczMPfnqA6dEjsm7ewlhsYGBggMnJSSKElonxCeRkZ9Pxewf/vnuHciLwuGSTn5cnMqjnVuZN3F3dOGC7H3VYzIVoxkSQX//1mtzbuVLbxYUFJsYnMBQX097eLsK/zsbGn7x9+w+KKmZMdDRpKSnohbMqaHJSEvts9hIuNDKbzTxuaiI/N086PjExztLSEltbWyK3dUQIre/X1FJacpdXr1a2lXidjvu1tTQ2NJCUkICToyMFeflClyo6OzrY3NwUeSvH+j0rjmp9ZeYa6utl6C/Fxsq9eF08T58+Q32Unp4epqent9V7m52VJbO039aWstJ7zEzPsLy8LDW03bsPm9172Gm5Q737MpeVIthGg5GZmZntrq4uVldX//gPNxJT5PN0wHIAAAAASUVORK5CYII="},"images":{"fallback":{"src":"/static/6ef9f6d8ee22fa1e32dc39cd33357bae/745f1/cover.png","srcSet":"/static/6ef9f6d8ee22fa1e32dc39cd33357bae/2e306/cover.png 107w,\n/static/6ef9f6d8ee22fa1e32dc39cd33357bae/b6da5/cover.png 213w,\n/static/6ef9f6d8ee22fa1e32dc39cd33357bae/745f1/cover.png 426w","sizes":"(min-width: 426px) 426px, 100vw"},"sources":[{"srcSet":"/static/6ef9f6d8ee22fa1e32dc39cd33357bae/98df7/cover.avif 107w,\n/static/6ef9f6d8ee22fa1e32dc39cd33357bae/731c7/cover.avif 213w,\n/static/6ef9f6d8ee22fa1e32dc39cd33357bae/fcbb7/cover.avif 426w","type":"image/avif","sizes":"(min-width: 426px) 426px, 100vw"},{"srcSet":"/static/6ef9f6d8ee22fa1e32dc39cd33357bae/ff5da/cover.webp 107w,\n/static/6ef9f6d8ee22fa1e32dc39cd33357bae/e21cd/cover.webp 213w,\n/static/6ef9f6d8ee22fa1e32dc39cd33357bae/ed65d/cover.webp 426w","type":"image/webp","sizes":"(min-width: 426px) 426px, 100vw"}]},"width":600,"height":376.056338028169}}}}},{"id":"ff9598a3-3fad-5a4e-a8a8-a8858b3a27e7","frontmatter":{"title":"IFSE Parameters Tool for Revit","text":null,"stack":["React","JS","HTML","Node.js","NestJS","Swagger"],"cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAAAsTAAALEwEAmpwYAAADaUlEQVR42j2TW0yTZxjHu9Iyszh1CgU3dRPlKOMkpyqiYiIFWgbCxgoUObXIaTCQlaGOcDenFcrGoS1b6Q1wwTipS+SQkDBDwgwm48KFhBsyXXYzEhJu+9v7vWR7Lr883//5n15VoFb7z4HAtzkeEupPSU4h32jCmGekrbWND0+eYmFhkQpLBdPT09hqrUSGR7C4uEhVZRWdX9n5vr+fGwWFDPww4I+JikalVQcQdPQYrV+00P1NN46HD2ltaRVACxTkF/DmrzfKMktLS1SUW7iov8j6y3Wampq4d/cuzj6nJDE+Pk5CXDwqjTrAH6LTCSAHjxyPcA0Pk5uTy8bGBhkZGRSK66Y8EysrK6yvv8RmtZGZcYmkhER+HBlhYmJCAN/j2bN5UpOTUYnh2tUsXvz2gq2tLfnj3OxjdnZ2uNN1R1ngXMw5/nz9GmUGBwY5/O4hzicmyf25uTnKzKXcstXtM1Sr3uLM6TBqa2qF1Bb6+vqYnZ1lb2+PYcFWo1aLb04Jtru7y9ramjyg+OV2u3E6+7mQfoHoyCjiP45DdUAbiCZAg1aj5eiR9ySDnp4eLmde5snjJxhz8xgUHv43f7x6RdhHp9Gn6xkdHcVwPVsGFSuOKKAqJWFFVkJ8Aqurq4yNjeEb9dH1dRf3v71P5qVM0lPTmJ+fZ+P3DSlPn5bOjcJCHA4HdpF0XGycDCYtJXXfw5LPSnj+63O8P3lxuVxMTk7idrlFNaplIKG6ELkcFxvLwXcOYsg2YLd3Ul5ahlVUqeN2Bz6fD0tZueKhWlL+tLiY6qpqkbKLB989oKG+QQIqnaypqRG+ztHd3U3WlSxMxk9ob+8QO42CaRF11jqyhXTFiv8lh4eHS2ZDQ0OYS8y0t7VjKS+XBZ6amsLj8dDb28uIZ0R0tlXI1nPTUikack0EFMPZsDMi3H1Af6AIJCY6mk67XUj10NjQSOXNSnINOdJHxXyl9DarlRwhVzG/9PNSmhub5XHDdQNREZHogoJRHTl0mOBjQZjNZurr6tnc3GR5eVlKTxRBNYsX4fV6KRN+KWzzTfmyh/W36mXFbgslWVeuKk9XtkR1XBf6d8TZcGZmZvxVgtXTp7/IZ6eU+tSJkzQ1NrG9vS3s+FmWVym0ApicdJ72L9soLiqScnXBwf4T73/AvxdjN8N5j2dFAAAAAElFTkSuQmCC"},"images":{"fallback":{"src":"/static/4a234cc3d17b93e9604e89fd6ca63114/745f1/cover.png","srcSet":"/static/4a234cc3d17b93e9604e89fd6ca63114/2e306/cover.png 107w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/b6da5/cover.png 213w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/745f1/cover.png 426w","sizes":"(min-width: 426px) 426px, 100vw"},"sources":[{"srcSet":"/static/4a234cc3d17b93e9604e89fd6ca63114/98df7/cover.avif 107w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/731c7/cover.avif 213w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/fcbb7/cover.avif 426w","type":"image/avif","sizes":"(min-width: 426px) 426px, 100vw"},{"srcSet":"/static/4a234cc3d17b93e9604e89fd6ca63114/ff5da/cover.webp 107w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/e21cd/cover.webp 213w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/ed65d/cover.webp 426w","type":"image/webp","sizes":"(min-width: 426px) 426px, 100vw"}]},"width":600,"height":376.056338028169}}}}},{"id":"08716ab8-fc5f-5f90-9fc0-a8218ec51923","frontmatter":{"title":"Website for anarchitectural agency","text":null,"stack":["React","Gatsby","MUI"],"cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAAAsTAAALEwEAmpwYAAADZElEQVR42j2Ua0wUVxiGSWu1AiqXReqlTe+CTSs3CzYB/lTACyCKtCxKhFSQBapRi4nVVOkuURtccAVlSXepFdIq/lAkSIUN4ZpASITlZv8AIUEISAILiW5hnp45tJzkm5lMJs953/f7zrj4eGtmRCFK8fb04jP/7WRlnqC5uZmOjg7q6uqw2WwMDQ2hKApLS0uo6/69+8THxbHj8y/YsmkzvhofReOlwUWFbdT44LnBA79P/aiwVlBbW4vphonW1lb53NjYyNjYGP+v8jIzGccziImOISggkMiISLb7+UuwClRUoMf6DQTsCMBqsTIxMcHU1BStLS1SaU1NDaOjo1Kh8bqR4MAg9ghYdpaO3JxcondH4euzUdaKQhUYKID3/vgTQ0GBtOl0OqXl5G+TKS4qpqqqiqTERAoLCzl75izpaelcuHBRWI/nv9iWgSrZy8NTyA/i0cNHZGZmkvdDHr/fucPlny4Rtz+WlGQtKVot58T7J/VPOHnqFMe/y8BsLkcrNlRFrSjc5PsOa1a9hf82PxoaGoSNHMrFh9euXkOv15Ot0/FN4mFioqIx/Kynvr4eo9HIubw8rFar3Mzd1Q2Nl/cy0PXttYR+GUppaSkDAwN0d3fLDv8igPmXLou89oicoon6ejfGwuu0tbVRXV2NXsDLzWZSjxwlVriQClWrJSWlzM7O0i4+rKys5PXrV7x8OU1nZye/VVSQn5/P7Vu3OBAfj0FvoEU066LILvVoKkmHkwgN2Un6sWOczP1+WWFHezuLi4s4HA5GhodpamqixHST6elpnP84GX8xTuXdu/x4/jyPRcdtjTYSDiQQER5OZHiEgKVx5vRp0gTURQ3ziDZFzlbPs2c45h3MzMxgt9sZGhxkfn4ey68Wym6X0ddn5+nTvyg2FlEkymqxiLuR3OwcgoOCcVvriovwrajTHrtvP7oTWZgFuL+/n1fC9ovxcUZGhpmcnKS3t5ebJhMPRHbPn/9NV1cXBQYDO4NDZA9WvfHmCpCtm7fwyUcfsys0jEMJB8nRZUtFg0LhwsKCVKnm2dvTg12Ar165QohQtGb1ata5ubPefZ08abLL4jKpQsXoKB++/4GE7tu7l8SDh6TiZat9zM3NyY5+FbZLQlQ17219lzAxHeqRE/8BRR3sfwEEV2mX5rkISwAAAABJRU5ErkJggg=="},"images":{"fallback":{"src":"/static/5f0594038e6b8a515bbaffa94d889166/745f1/cover.png","srcSet":"/static/5f0594038e6b8a515bbaffa94d889166/2e306/cover.png 107w,\n/static/5f0594038e6b8a515bbaffa94d889166/b6da5/cover.png 213w,\n/static/5f0594038e6b8a515bbaffa94d889166/745f1/cover.png 426w","sizes":"(min-width: 426px) 426px, 100vw"},"sources":[{"srcSet":"/static/5f0594038e6b8a515bbaffa94d889166/98df7/cover.avif 107w,\n/static/5f0594038e6b8a515bbaffa94d889166/731c7/cover.avif 213w,\n/static/5f0594038e6b8a515bbaffa94d889166/fcbb7/cover.avif 426w","type":"image/avif","sizes":"(min-width: 426px) 426px, 100vw"},{"srcSet":"/static/5f0594038e6b8a515bbaffa94d889166/ff5da/cover.webp 107w,\n/static/5f0594038e6b8a515bbaffa94d889166/e21cd/cover.webp 213w,\n/static/5f0594038e6b8a515bbaffa94d889166/ed65d/cover.webp 426w","type":"image/webp","sizes":"(min-width: 426px) 426px, 100vw"}]},"width":600,"height":376.056338028169}}}}}]}},"pageContext":{"limit":10,"skip":0,"pagesQuantity":1,"currentPage":1,"lang":"en","markupData":{"bannerTitle":"CODECAVE AWESOME PROJECTS","head":"CodeCave Projects","clientSectionTitle":"Client","challengeSectionTitle":"Challenge","solutionSectionTitle":"Solution","teamSectionTitle":"Engaged team","techSectionTitle":"Applied technologies","resultSectionTitle":"Product","moreProjectsSectionTitle":"some of Our projects","moreProjectsSectionLinkTitle":"Discover MORE"},"pagination":{"next":"Next page"},"site":{"siteUrl":"https://www.codecave.it"}}},"staticQueryHashes":["2595676272","2708699711"],"slicesMap":{}} \ No newline at end of file +{"componentChunkName":"component---src-pages-templates-projects-tsx","path":"/projects/page/1/","result":{"data":{"allMarkdownRemark":{"nodes":[{"id":"f17de1e3-0a73-5f92-bf66-1e12d5fdc0fb","frontmatter":{"title":"Bimcore Revit Add-In","teamSize":"4 specialists","duration":"3 months","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAAAsTAAALEwEAmpwYAAADaUlEQVR42j2TW0yTZxjHu9Iyszh1CgU3dRPlKOMkpyqiYiIFWgbCxgoUObXIaTCQlaGOcDenFcrGoS1b6Q1wwTipS+SQkDBDwgwm48KFhBsyXXYzEhJu+9v7vWR7Lr883//5n15VoFb7z4HAtzkeEupPSU4h32jCmGekrbWND0+eYmFhkQpLBdPT09hqrUSGR7C4uEhVZRWdX9n5vr+fGwWFDPww4I+JikalVQcQdPQYrV+00P1NN46HD2ltaRVACxTkF/DmrzfKMktLS1SUW7iov8j6y3Wampq4d/cuzj6nJDE+Pk5CXDwqjTrAH6LTCSAHjxyPcA0Pk5uTy8bGBhkZGRSK66Y8EysrK6yvv8RmtZGZcYmkhER+HBlhYmJCAN/j2bN5UpOTUYnh2tUsXvz2gq2tLfnj3OxjdnZ2uNN1R1ngXMw5/nz9GmUGBwY5/O4hzicmyf25uTnKzKXcstXtM1Sr3uLM6TBqa2qF1Bb6+vqYnZ1lb2+PYcFWo1aLb04Jtru7y9ramjyg+OV2u3E6+7mQfoHoyCjiP45DdUAbiCZAg1aj5eiR9ySDnp4eLmde5snjJxhz8xgUHv43f7x6RdhHp9Gn6xkdHcVwPVsGFSuOKKAqJWFFVkJ8Aqurq4yNjeEb9dH1dRf3v71P5qVM0lPTmJ+fZ+P3DSlPn5bOjcJCHA4HdpF0XGycDCYtJXXfw5LPSnj+63O8P3lxuVxMTk7idrlFNaplIKG6ELkcFxvLwXcOYsg2YLd3Ul5ahlVUqeN2Bz6fD0tZueKhWlL+tLiY6qpqkbKLB989oKG+QQIqnaypqRG+ztHd3U3WlSxMxk9ob+8QO42CaRF11jqyhXTFiv8lh4eHS2ZDQ0OYS8y0t7VjKS+XBZ6amsLj8dDb28uIZ0R0tlXI1nPTUikack0EFMPZsDMi3H1Af6AIJCY6mk67XUj10NjQSOXNSnINOdJHxXyl9DarlRwhVzG/9PNSmhub5XHDdQNREZHogoJRHTl0mOBjQZjNZurr6tnc3GR5eVlKTxRBNYsX4fV6KRN+KWzzTfmyh/W36mXFbgslWVeuKk9XtkR1XBf6d8TZcGZmZvxVgtXTp7/IZ6eU+tSJkzQ1NrG9vS3s+FmWVym0ApicdJ72L9soLiqScnXBwf4T73/AvxdjN8N5j2dFAAAAAElFTkSuQmCC"},"images":{"fallback":{"src":"/static/4a234cc3d17b93e9604e89fd6ca63114/745f1/cover.png","srcSet":"/static/4a234cc3d17b93e9604e89fd6ca63114/2e306/cover.png 107w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/b6da5/cover.png 213w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/745f1/cover.png 426w","sizes":"(min-width: 426px) 426px, 100vw"},"sources":[{"srcSet":"/static/4a234cc3d17b93e9604e89fd6ca63114/98df7/cover.avif 107w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/731c7/cover.avif 213w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/fcbb7/cover.avif 426w","type":"image/avif","sizes":"(min-width: 426px) 426px, 100vw"},{"srcSet":"/static/4a234cc3d17b93e9604e89fd6ca63114/ff5da/cover.webp 107w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/e21cd/cover.webp 213w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/ed65d/cover.webp 426w","type":"image/webp","sizes":"(min-width: 426px) 426px, 100vw"}]},"width":600,"height":376.056338028169}}}}},{"id":"9f63d17d-6164-509e-b2c7-4c655ab9ad7a","frontmatter":{"title":"Web & Mobile apps for a logistics company","teamSize":"7 specialists","duration":"3 months","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAAAsTAAALEwEAmpwYAAADiUlEQVR42iWTe0iVZxzHX4/VtCwjNdRpXjI9huZmqaOxZUstLSWpebytNqaubNNS89IGHj3HzHlvkZfRsTyFutxgijcUQREFL6Uoggrm8LI/Gs1/GgjLz5732QsP7+99+L3f3/f5fr+PYmmhwdrKavt9J2cO2juw29oamz02HPP3Z21tjfX1Dd78/YaxsTFOnwrlWloao6OjvJh6wd2SEj4+eRJFUbZ3aCzRKBbrilro4nT09/fT29tLkb4IFxcX/P38WFlZYX5+nsXFBUZGRvjq6pfEfx7Hz42NvJx+SXd3N3HiWwBiqdEIQAVFLdSN4BNB1NfVU1FRQUhQMCHBIczNzTE1Ncns7CxtrW2yx+ewl2RqFOwMRiOXL10mOCgID3d3yVQyVAE9PTwpKysjIyOD7258S/r1dMbHx+UaHh6msqKSwIAP0Hp5ExUZSUNDI+XlFfJ0mRmZpHydInEUjYWFLI6IyXq9nuTEJAryCygsLKSzs5PBwUH5NhoMaL19cHNxJTwsjHulpdTU1PDDne/x9dZib2f3P6Cb6yGcnZwEQw/JLupcFN+kppGWmsrQ0JBcfX19GIqK8fXRopr3WWgoz395jvnxE35r/5W2llZJIuBYAMohFwHo6IyX52Fyc26Tfu06MecvcDY8Qhx1iNaWFqrEcXOysvF098DBzh4/7VEizoQTdiYMk8kkzfxRyNX8pBnF7oAdu3buwtPNnURdgph+mtSUVK5euSLZtQhAs2i8Ixh8JIyKPHuO80LD6spKYWA5sRcvUl1VTd3Dh7JXOf5hIAcdHHCwt5c/nPrkU24IQ75ISqbJ1ERzczMPfnqA6dEjsm7ewlhsYGBggMnJSSKElonxCeRkZ9Pxewf/vnuHciLwuGSTn5cnMqjnVuZN3F3dOGC7H3VYzIVoxkSQX//1mtzbuVLbxYUFJsYnMBQX097eLsK/zsbGn7x9+w+KKmZMdDRpKSnohbMqaHJSEvts9hIuNDKbzTxuaiI/N086PjExztLSEltbWyK3dUQIre/X1FJacpdXr1a2lXidjvu1tTQ2NJCUkICToyMFeflClyo6OzrY3NwUeSvH+j0rjmp9ZeYa6utl6C/Fxsq9eF08T58+Q32Unp4epqent9V7m52VJbO039aWstJ7zEzPsLy8LDW03bsPm9172Gm5Q737MpeVIthGg5GZmZntrq4uVldX//gPNxJT5PN0wHIAAAAASUVORK5CYII="},"images":{"fallback":{"src":"/static/6ef9f6d8ee22fa1e32dc39cd33357bae/745f1/cover.png","srcSet":"/static/6ef9f6d8ee22fa1e32dc39cd33357bae/2e306/cover.png 107w,\n/static/6ef9f6d8ee22fa1e32dc39cd33357bae/b6da5/cover.png 213w,\n/static/6ef9f6d8ee22fa1e32dc39cd33357bae/745f1/cover.png 426w","sizes":"(min-width: 426px) 426px, 100vw"},"sources":[{"srcSet":"/static/6ef9f6d8ee22fa1e32dc39cd33357bae/98df7/cover.avif 107w,\n/static/6ef9f6d8ee22fa1e32dc39cd33357bae/731c7/cover.avif 213w,\n/static/6ef9f6d8ee22fa1e32dc39cd33357bae/fcbb7/cover.avif 426w","type":"image/avif","sizes":"(min-width: 426px) 426px, 100vw"},{"srcSet":"/static/6ef9f6d8ee22fa1e32dc39cd33357bae/ff5da/cover.webp 107w,\n/static/6ef9f6d8ee22fa1e32dc39cd33357bae/e21cd/cover.webp 213w,\n/static/6ef9f6d8ee22fa1e32dc39cd33357bae/ed65d/cover.webp 426w","type":"image/webp","sizes":"(min-width: 426px) 426px, 100vw"}]},"width":600,"height":376.056338028169}}}}},{"id":"ff9598a3-3fad-5a4e-a8a8-a8858b3a27e7","frontmatter":{"title":"IFSE Parameters Tool for Revit","teamSize":"6 specialists","duration":"3 months","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAAAsTAAALEwEAmpwYAAADaUlEQVR42j2TW0yTZxjHu9Iyszh1CgU3dRPlKOMkpyqiYiIFWgbCxgoUObXIaTCQlaGOcDenFcrGoS1b6Q1wwTipS+SQkDBDwgwm48KFhBsyXXYzEhJu+9v7vWR7Lr883//5n15VoFb7z4HAtzkeEupPSU4h32jCmGekrbWND0+eYmFhkQpLBdPT09hqrUSGR7C4uEhVZRWdX9n5vr+fGwWFDPww4I+JikalVQcQdPQYrV+00P1NN46HD2ltaRVACxTkF/DmrzfKMktLS1SUW7iov8j6y3Wampq4d/cuzj6nJDE+Pk5CXDwqjTrAH6LTCSAHjxyPcA0Pk5uTy8bGBhkZGRSK66Y8EysrK6yvv8RmtZGZcYmkhER+HBlhYmJCAN/j2bN5UpOTUYnh2tUsXvz2gq2tLfnj3OxjdnZ2uNN1R1ngXMw5/nz9GmUGBwY5/O4hzicmyf25uTnKzKXcstXtM1Sr3uLM6TBqa2qF1Bb6+vqYnZ1lb2+PYcFWo1aLb04Jtru7y9ramjyg+OV2u3E6+7mQfoHoyCjiP45DdUAbiCZAg1aj5eiR9ySDnp4eLmde5snjJxhz8xgUHv43f7x6RdhHp9Gn6xkdHcVwPVsGFSuOKKAqJWFFVkJ8Aqurq4yNjeEb9dH1dRf3v71P5qVM0lPTmJ+fZ+P3DSlPn5bOjcJCHA4HdpF0XGycDCYtJXXfw5LPSnj+63O8P3lxuVxMTk7idrlFNaplIKG6ELkcFxvLwXcOYsg2YLd3Ul5ahlVUqeN2Bz6fD0tZueKhWlL+tLiY6qpqkbKLB989oKG+QQIqnaypqRG+ztHd3U3WlSxMxk9ob+8QO42CaRF11jqyhXTFiv8lh4eHS2ZDQ0OYS8y0t7VjKS+XBZ6amsLj8dDb28uIZ0R0tlXI1nPTUikack0EFMPZsDMi3H1Af6AIJCY6mk67XUj10NjQSOXNSnINOdJHxXyl9DarlRwhVzG/9PNSmhub5XHDdQNREZHogoJRHTl0mOBjQZjNZurr6tnc3GR5eVlKTxRBNYsX4fV6KRN+KWzzTfmyh/W36mXFbgslWVeuKk9XtkR1XBf6d8TZcGZmZvxVgtXTp7/IZ6eU+tSJkzQ1NrG9vS3s+FmWVym0ApicdJ72L9soLiqScnXBwf4T73/AvxdjN8N5j2dFAAAAAElFTkSuQmCC"},"images":{"fallback":{"src":"/static/4a234cc3d17b93e9604e89fd6ca63114/745f1/cover.png","srcSet":"/static/4a234cc3d17b93e9604e89fd6ca63114/2e306/cover.png 107w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/b6da5/cover.png 213w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/745f1/cover.png 426w","sizes":"(min-width: 426px) 426px, 100vw"},"sources":[{"srcSet":"/static/4a234cc3d17b93e9604e89fd6ca63114/98df7/cover.avif 107w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/731c7/cover.avif 213w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/fcbb7/cover.avif 426w","type":"image/avif","sizes":"(min-width: 426px) 426px, 100vw"},{"srcSet":"/static/4a234cc3d17b93e9604e89fd6ca63114/ff5da/cover.webp 107w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/e21cd/cover.webp 213w,\n/static/4a234cc3d17b93e9604e89fd6ca63114/ed65d/cover.webp 426w","type":"image/webp","sizes":"(min-width: 426px) 426px, 100vw"}]},"width":600,"height":376.056338028169}}}}},{"id":"08716ab8-fc5f-5f90-9fc0-a8218ec51923","frontmatter":{"title":"Website for anarchitectural agency","teamSize":"5 specialists","duration":"3 months","cover":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAAAsTAAALEwEAmpwYAAADZElEQVR42j2Ua0wUVxiGSWu1AiqXReqlTe+CTSs3CzYB/lTACyCKtCxKhFSQBapRi4nVVOkuURtccAVlSXepFdIq/lAkSIUN4ZpASITlZv8AIUEISAILiW5hnp45tJzkm5lMJs953/f7zrj4eGtmRCFK8fb04jP/7WRlnqC5uZmOjg7q6uqw2WwMDQ2hKApLS0uo6/69+8THxbHj8y/YsmkzvhofReOlwUWFbdT44LnBA79P/aiwVlBbW4vphonW1lb53NjYyNjYGP+v8jIzGccziImOISggkMiISLb7+UuwClRUoMf6DQTsCMBqsTIxMcHU1BStLS1SaU1NDaOjo1Kh8bqR4MAg9ghYdpaO3JxcondH4euzUdaKQhUYKID3/vgTQ0GBtOl0OqXl5G+TKS4qpqqqiqTERAoLCzl75izpaelcuHBRWI/nv9iWgSrZy8NTyA/i0cNHZGZmkvdDHr/fucPlny4Rtz+WlGQtKVot58T7J/VPOHnqFMe/y8BsLkcrNlRFrSjc5PsOa1a9hf82PxoaGoSNHMrFh9euXkOv15Ot0/FN4mFioqIx/Kynvr4eo9HIubw8rFar3Mzd1Q2Nl/cy0PXttYR+GUppaSkDAwN0d3fLDv8igPmXLou89oicoon6ejfGwuu0tbVRXV2NXsDLzWZSjxwlVriQClWrJSWlzM7O0i4+rKys5PXrV7x8OU1nZye/VVSQn5/P7Vu3OBAfj0FvoEU066LILvVoKkmHkwgN2Un6sWOczP1+WWFHezuLi4s4HA5GhodpamqixHST6elpnP84GX8xTuXdu/x4/jyPRcdtjTYSDiQQER5OZHiEgKVx5vRp0gTURQ3ziDZFzlbPs2c45h3MzMxgt9sZGhxkfn4ey68Wym6X0ddn5+nTvyg2FlEkymqxiLuR3OwcgoOCcVvriovwrajTHrtvP7oTWZgFuL+/n1fC9ovxcUZGhpmcnKS3t5ebJhMPRHbPn/9NV1cXBQYDO4NDZA9WvfHmCpCtm7fwyUcfsys0jEMJB8nRZUtFg0LhwsKCVKnm2dvTg12Ar165QohQtGb1ata5ubPefZ08abLL4jKpQsXoKB++/4GE7tu7l8SDh6TiZat9zM3NyY5+FbZLQlQ17219lzAxHeqRE/8BRR3sfwEEV2mX5rkISwAAAABJRU5ErkJggg=="},"images":{"fallback":{"src":"/static/5f0594038e6b8a515bbaffa94d889166/745f1/cover.png","srcSet":"/static/5f0594038e6b8a515bbaffa94d889166/2e306/cover.png 107w,\n/static/5f0594038e6b8a515bbaffa94d889166/b6da5/cover.png 213w,\n/static/5f0594038e6b8a515bbaffa94d889166/745f1/cover.png 426w","sizes":"(min-width: 426px) 426px, 100vw"},"sources":[{"srcSet":"/static/5f0594038e6b8a515bbaffa94d889166/98df7/cover.avif 107w,\n/static/5f0594038e6b8a515bbaffa94d889166/731c7/cover.avif 213w,\n/static/5f0594038e6b8a515bbaffa94d889166/fcbb7/cover.avif 426w","type":"image/avif","sizes":"(min-width: 426px) 426px, 100vw"},{"srcSet":"/static/5f0594038e6b8a515bbaffa94d889166/ff5da/cover.webp 107w,\n/static/5f0594038e6b8a515bbaffa94d889166/e21cd/cover.webp 213w,\n/static/5f0594038e6b8a515bbaffa94d889166/ed65d/cover.webp 426w","type":"image/webp","sizes":"(min-width: 426px) 426px, 100vw"}]},"width":600,"height":376.056338028169}}}}}]}},"pageContext":{"limit":10,"skip":0,"pagesQuantity":1,"currentPage":1,"lang":"en","markupData":{"bannerTitle":"CODECAVE AWESOME PROJECTS","head":"CodeCave Projects","clientSectionTitle":"Client","challengeSectionTitle":"Challenge","solutionSectionTitle":"Solution","teamSectionTitle":"Engaged team","techSectionTitle":"Applied technologies","resultSectionTitle":"Product","moreProjectsSectionTitle":"some of Our projects","moreProjectsSectionLinkTitle":"Discover MORE"},"pagination":{"next":"Next page"},"site":{"siteUrl":"https://www.codecave.it"}}},"staticQueryHashes":["2595676272","2708699711"],"slicesMap":{}} \ No newline at end of file diff --git a/privacy-policy/index.html b/privacy-policy/index.html index fcbfdd01..883c554e 100644 --- a/privacy-policy/index.html +++ b/privacy-policy/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/projects/08716ab8-fc5f-5f90-9fc0-a8218ec51923/index.html b/projects/08716ab8-fc5f-5f90-9fc0-a8218ec51923/index.html index 647613ba..4815c858 100644 --- a/projects/08716ab8-fc5f-5f90-9fc0-a8218ec51923/index.html +++ b/projects/08716ab8-fc5f-5f90-9fc0-a8218ec51923/index.html @@ -1,6 +1,6 @@ -

Website for anarchitectural agency

LLC “Art-studio “Zrobim” needed a dynamic website presenting the offered services like private house designing, interior designing, villages, and blocks of houses designing.

logo

Client

LLC “Art-studio “Zrobim” is a team of architects striving to make housing affordable and of high quality.

Challenge

LLC “Art-studio “Zrobim” needed a dynamic website presenting the offered services like private house designing, interior designing, villages, and blocks of houses designing.

Solution

CODECAVE have developed a beautiful, modern, user-friendly website corresponding to the all customers’ needs.

Engaged team

2 senior frontend developers

1 UI/UX designer

1 QA engineer

1 DevOps engineer

Applied technologies

React

Gatsby

MUI

Product

logo
logo
logo
logo
+ }]);

Website for anarchitectural agency

LLC “Art-studio “Zrobim” needed a dynamic website presenting the offered services like private house designing, interior designing, villages, and blocks of houses designing.

logo

Client

LLC “Art-studio “Zrobim” is a team of architects striving to make housing affordable and of high quality.

Challenge

LLC “Art-studio “Zrobim” needed a dynamic website presenting the offered services like private house designing, interior designing, villages, and blocks of houses designing.

Solution

CODECAVE have developed a beautiful, modern, user-friendly website corresponding to the all customers’ needs.

Engaged team

2 senior frontend developers

1 UI/UX designer

1 QA engineer

1 DevOps engineer

Applied technologies

React

Gatsby

MUI

Product

logo
logo
logo
logo
- \ No newline at end of file + \ No newline at end of file diff --git a/projects/9f63d17d-6164-509e-b2c7-4c655ab9ad7a/index.html b/projects/9f63d17d-6164-509e-b2c7-4c655ab9ad7a/index.html index 642ed867..e505090c 100644 --- a/projects/9f63d17d-6164-509e-b2c7-4c655ab9ad7a/index.html +++ b/projects/9f63d17d-6164-509e-b2c7-4c655ab9ad7a/index.html @@ -1,6 +1,6 @@ -

Web & Mobile apps for a logistics company

Direxxt LLC wanted to lessen the expenses on cargo delivery and stop using “BTS System” (the one for optimization the routes and monitoring drivers) having their own soft for route optimization and delivery management, that would help to improve delivery management quality and speed.

logo

Client

Direxxt LLC provides express delivery services for shipments (including shipments for the fixed time), transportation services, courier services, freight forwarding services.

Challenge

Direxxt LLC wanted to lessen the expenses on cargo delivery and stop using “BTS System” (the one for optimization the routes and monitoring drivers) having their own soft for route optimization and delivery management, that would help to improve delivery management quality and speed.

Solution

There has been developed the Client-web for the users who need direct and expedited delivery service within Belarus. The Client-web allows the user to create the orders for delivery and see order statuses.

+ }]);

Web & Mobile apps for a logistics company

Direxxt LLC wanted to lessen the expenses on cargo delivery and stop using “BTS System” (the one for optimization the routes and monitoring drivers) having their own soft for route optimization and delivery management, that would help to improve delivery management quality and speed.

logo

Client

Direxxt LLC provides express delivery services for shipments (including shipments for the fixed time), transportation services, courier services, freight forwarding services.

Challenge

Direxxt LLC wanted to lessen the expenses on cargo delivery and stop using “BTS System” (the one for optimization the routes and monitoring drivers) having their own soft for route optimization and delivery management, that would help to improve delivery management quality and speed.

Solution

There has been developed the Client-web for the users who need direct and expedited delivery service within Belarus. The Client-web allows the user to create the orders for delivery and see order statuses.

The developed Admin-web allows to create optimized delivery routes, to get the data on the vehicles and the drivers in real-time mode to have the possibility to optimize order assignment. There are blocks with Driver’s schedule, Transport catalogue, Employees list, Clients list, Orders list and the main one – Maps an Routes.

-

The Drive’s App was developed for the driver and allows the driver to get the orders, mark the status of every delivery, and report problems on deliveries.

Engaged team

1 senior fullstack developer

2 middle fullstack developers

1 PM

1 UI/UX designer

1 QA engineer

1 DevOps engineer

Applied technologies

C#, .NET

Blazor

Maui

MongoDB, ClickHouse

SignalR

Dapr, Redis, RabbitMQ

Product

logo
logo
logo
logo
logo
logo
logo
logo
logo
+

The Drive’s App was developed for the driver and allows the driver to get the orders, mark the status of every delivery, and report problems on deliveries.

Engaged team

1 senior fullstack developer

2 middle fullstack developers

1 PM

1 UI/UX designer

1 QA engineer

1 DevOps engineer

Applied technologies

C#, .NET

Blazor

Maui

MongoDB, ClickHouse

SignalR

Dapr, Redis, RabbitMQ

Product

logo
logo
logo
logo
logo
logo
logo
logo
logo
- \ No newline at end of file + \ No newline at end of file diff --git a/projects/f17de1e3-0a73-5f92-bf66-1e12d5fdc0fb/index.html b/projects/f17de1e3-0a73-5f92-bf66-1e12d5fdc0fb/index.html index 58eef208..d6f8d7ba 100644 --- a/projects/f17de1e3-0a73-5f92-bf66-1e12d5fdc0fb/index.html +++ b/projects/f17de1e3-0a73-5f92-bf66-1e12d5fdc0fb/index.html @@ -1,6 +1,6 @@ -

Bimcore Revit Add-In

Simplify the access to the shop content for the users together with user management and get the statistics on content usage.

logo

Client

Ivan Zylev, Revit families online shop owner (the content for the architectural program Revit) bimcore.one.

Challenge

Simplify the access to the shop content for the users together with user management and get the statistics on content usage.

Solution

The bimcore Revit add-in is a sophisticated tool designed to enhance the functionality of Autodesk Revit. It streamlines the workflow for architects and designers by providing an efficient way to manage and synchronize BIM (Building Information Modeling) assets directly within the Revit environment.

+ }]);

Bimcore Revit Add-In

Simplify the access to the shop content for the users together with user management and get the statistics on content usage.

logo

Client

Ivan Zylev, Revit families online shop owner (the content for the architectural program Revit) bimcore.one.

Challenge

Simplify the access to the shop content for the users together with user management and get the statistics on content usage.

Solution

The bimcore Revit add-in is a sophisticated tool designed to enhance the functionality of Autodesk Revit. It streamlines the workflow for architects and designers by providing an efficient way to manage and synchronize BIM (Building Information Modeling) assets directly within the Revit environment.

The add-in boasts a robust architecture that facilitates the transfer of assets from the store to Revit, ensuring persistent synchronization and up-to-date content. It includes features like:

• Asset Path: Automated retrieval and caching of bundles and assets, with intelligent version control.

• Synchronization Logic: Timed checks for new bundles and updates, with user notifications and automatic updates based on user preferences.

-

• Installer Updates: Regular checks for new installer versions to keep the add-in current.

Engaged team

2 middle .NET developers

1 UI/UX designer

1 QA engineer

Applied technologies

.NET

WPF

Revit API

Azure Blob Storage

Product

logo
logo
logo
+

• Installer Updates: Regular checks for new installer versions to keep the add-in current.

Engaged team

2 middle .NET developers

1 UI/UX designer

1 QA engineer

Applied technologies

.NET

WPF

Revit API

Azure Blob Storage

Product

logo
logo
logo
- \ No newline at end of file + \ No newline at end of file diff --git a/projects/ff9598a3-3fad-5a4e-a8a8-a8858b3a27e7/index.html b/projects/ff9598a3-3fad-5a4e-a8a8-a8858b3a27e7/index.html index d333a528..c5fbf41b 100644 --- a/projects/ff9598a3-3fad-5a4e-a8a8-a8858b3a27e7/index.html +++ b/projects/ff9598a3-3fad-5a4e-a8a8-a8858b3a27e7/index.html @@ -1,6 +1,6 @@ -

IFSE Parameters Tool for Revit

Eliminate problems with Revit Parameters such as disorganization with Families parameter types, lack of unification and compliance with the Standards, specification issues

logo

Client

FCSI is the only such consulting society in the world, with over 1,000 members in more than 35 countries worldwide. FCSI is a strong and active association dedicated to serving the needs of professional foodservice consultants. FCSI Europe, Africa, Middle East (EAME) serve professional design and management consultants in the foodservice and hospitality industry across the region. Founded in 1971, FCSI EAME is one of the fastest growing and dynamic divisions within the Society, setting the highest standards for foodservice consultants. FCSI EAME members offer the most professional independent advice to the catering and hospitality industry.

Challenge

Eliminate problems with Revit Parameters such as disorganization with Families parameter types, lack of unification and compliance with the Standards, specification issues

Solution

Plugin that maps parameters semi-automatically (using AI) or manually and convert your projects or family libraries to IFSE from virtually any standard or no standard at all (RFAs with just family parameters)

Engaged team

3 senior fullstack developers

1 UI/UX designer

1 QA engineer

1 DevOps engineer

Applied technologies

React

JS

HTML

Node.js

NestJS

Swagger

Product

logo
logo
logo
+ }]);

IFSE Parameters Tool for Revit

Eliminate problems with Revit Parameters such as disorganization with Families parameter types, lack of unification and compliance with the Standards, specification issues

logo

Client

FCSI is the only such consulting society in the world, with over 1,000 members in more than 35 countries worldwide. FCSI is a strong and active association dedicated to serving the needs of professional foodservice consultants. FCSI Europe, Africa, Middle East (EAME) serve professional design and management consultants in the foodservice and hospitality industry across the region. Founded in 1971, FCSI EAME is one of the fastest growing and dynamic divisions within the Society, setting the highest standards for foodservice consultants. FCSI EAME members offer the most professional independent advice to the catering and hospitality industry.

Challenge

Eliminate problems with Revit Parameters such as disorganization with Families parameter types, lack of unification and compliance with the Standards, specification issues

Solution

Plugin that maps parameters semi-automatically (using AI) or manually and convert your projects or family libraries to IFSE from virtually any standard or no standard at all (RFAs with just family parameters)

Engaged team

3 senior fullstack developers

1 UI/UX designer

1 QA engineer

1 DevOps engineer

Applied technologies

React

JS

HTML

Node.js

NestJS

Swagger

Product

logo
logo
logo
- \ No newline at end of file + \ No newline at end of file diff --git a/projects/index.html b/projects/index.html index 6840efb4..543873fa 100644 --- a/projects/index.html +++ b/projects/index.html @@ -1,6 +1,6 @@ -
cover

Bimcore Revit Add-In

cover

Web & Mobile apps for a logistics company

cover

IFSE Parameters Tool for Revit

cover

Website for anarchitectural agency

+ }]);
cover

3 months

4 specialists

Bimcore Revit Add-In

cover

3 months

7 specialists

Web & Mobile apps for a logistics company

cover

3 months

6 specialists

IFSE Parameters Tool for Revit

cover

3 months

5 specialists

Website for anarchitectural agency

- \ No newline at end of file + \ No newline at end of file diff --git a/projects/page/1/index.html b/projects/page/1/index.html index 3ef09ae0..3e1dfdcd 100644 --- a/projects/page/1/index.html +++ b/projects/page/1/index.html @@ -1,6 +1,6 @@ -
cover

Bimcore Revit Add-In

cover

Web & Mobile apps for a logistics company

cover

IFSE Parameters Tool for Revit

cover

Website for anarchitectural agency

+ }]);
cover

3 months

4 specialists

Bimcore Revit Add-In

cover

3 months

7 specialists

Web & Mobile apps for a logistics company

cover

3 months

6 specialists

IFSE Parameters Tool for Revit

cover

3 months

5 specialists

Website for anarchitectural agency

- \ No newline at end of file + \ No newline at end of file diff --git a/services/index.html b/services/index.html index 8bc1b45a..cccea919 100644 --- a/services/index.html +++ b/services/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/static/937f509027bdf93e6a8a1c900ac54317/3684f/Commad_line.png b/static/937f509027bdf93e6a8a1c900ac54317/3684f/Commad_line.png index 28d3f7e1..25bb5855 100644 Binary files a/static/937f509027bdf93e6a8a1c900ac54317/3684f/Commad_line.png and b/static/937f509027bdf93e6a8a1c900ac54317/3684f/Commad_line.png differ diff --git a/styles.aace5082bacd377d082f.css b/styles.aace5082bacd377d082f.css new file mode 100644 index 00000000..b587bcdf --- /dev/null +++ b/styles.aace5082bacd377d082f.css @@ -0,0 +1,3 @@ +/* +! tailwindcss v3.3.2 | MIT License | https://tailwindcss.com +*/*,:after,:before{border:0 solid}:after,:before{--tw-content:""}html{-webkit-text-size-adjust:100%;font-feature-settings:normal;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1440px){.container{max-width:1440px}}@media (min-width:1900px){.container{max-width:1900px}}@media (min-width:2200px){.container{max-width:2200px}}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.-bottom-2{bottom:-.5rem}.-left-5{left:-1.25rem}.-right-6{right:-1.5rem}.-top-2{top:-.5rem}.-top-\[6\.5px\]{top:-6.5px}.bottom-0{bottom:0}.bottom-1{bottom:.25rem}.bottom-2{bottom:.5rem}.bottom-\[5\%\]{bottom:5%}.left-0{left:0}.left-1\/2{left:50%}.left-2{left:.5rem}.left-\[2\%\]{left:2%}.right-0{right:0}.top-0{top:0}.top-1\/2{top:50%}.top-full{top:100%}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.-order-1{order:-1}.float-right{float:right}.m-2{margin:.5rem}.mx-0{margin-left:0;margin-right:0}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-1\.5{margin-left:.375rem;margin-right:.375rem}.mx-12{margin-left:3rem;margin-right:3rem}.mx-5{margin-left:1.25rem;margin-right:1.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-14{margin-bottom:3.5rem;margin-top:3.5rem}.my-20{margin-bottom:5rem;margin-top:5rem}.my-6{margin-bottom:1.5rem;margin-top:1.5rem}.mb-2{margin-bottom:.5rem}.mb-2\.5{margin-bottom:.625rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mr-10{margin-right:2.5rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-3\.5{margin-right:.875rem}.mr-7{margin-right:1.75rem}.mt-3{margin-top:.75rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1/1}.h-0{height:0}.h-1{height:.25rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2\/3{height:66.666667%}.h-28{height:7rem}.h-32{height:8rem}.h-40{height:10rem}.h-5{height:1.25rem}.h-8{height:2rem}.h-91{height:22.75rem}.h-\[72px\]{height:72px}.h-full{height:100%}.h-min{height:-moz-min-content;height:min-content}.max-h-\[424px\]{max-height:424px}.max-h-full{max-height:100%}.min-h-91{min-height:22.75rem}.w-0{width:0}.w-1{width:.25rem}.w-10{width:2.5rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2\/3{width:66.666667%}.w-28{width:7rem}.w-32{width:8rem}.w-40{width:10rem}.w-5{width:1.25rem}.w-8{width:2rem}.w-\[100\%\]{width:100%}.w-\[192px\]{width:192px}.w-\[220px\]{width:220px}.w-\[72px\]{width:72px}.w-\[85\%\]{width:85%}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.min-w-10{min-width:2.5rem}.max-w-2xl{max-width:680px}.max-w-4\.5xl{max-width:958px}.max-w-\[1280px\]{max-width:1280px}.max-w-\[320px\]{max-width:320px}.max-w-\[400px\]{max-width:400px}.max-w-\[500px\]{max-width:500px}.max-w-\[544px\]{max-width:544px}.max-w-\[958px\]{max-width:958px}.flex-1{flex:1 1 0%}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.basis-1\/6{flex-basis:16.666667%}.basis-4\/6{flex-basis:66.666667%}.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%}.-rotate-90,.translate-y-full{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-90{--tw-rotate:-90deg}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.touch-manipulation{touch-action:manipulation}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.columns-1{-moz-columns:1;column-count:1}.break-inside-avoid{-moz-column-break-inside:avoid;break-inside:avoid}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.content-center{align-content:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-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}.gap-10{gap:2.5rem}.gap-14{gap:3.5rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-3\.5{gap:.875rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-14{-moz-column-gap:3.5rem;column-gap:3.5rem}.gap-x-16{-moz-column-gap:4rem;column-gap:4rem}.gap-x-20{-moz-column-gap:5rem;column-gap:5rem}.gap-x-24{-moz-column-gap:6rem;column-gap:6rem}.gap-x-28{-moz-column-gap:7rem;column-gap:7rem}.gap-x-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.gap-y-2{row-gap:.5rem}.gap-y-2\.5{row-gap:.625rem}.gap-y-5{row-gap:1.25rem}.gap-y-8{row-gap:2rem}.space-x-10>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(2.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(2.5rem*var(--tw-space-x-reverse))}.overflow-hidden{overflow:hidden}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.rounded{border-radius:.25rem}.rounded-2\.5xl{border-radius:20px}.rounded-2xl{border-radius:1rem}.rounded-\[10px\]{border-radius:10px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-b-2xl{border-bottom-left-radius:1rem;border-bottom-right-radius:1rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-b-\[4px\]{border-bottom-width:4px}.border-t-2{border-top-width:2px}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.border-main-10{--tw-border-opacity:1;border-color:rgb(143 143 143/var(--tw-border-opacity))}.border-main-100{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity))}.border-secondary-10{--tw-border-opacity:1;border-color:rgb(209 209 209/var(--tw-border-opacity))}.border-secondary-100{--tw-border-opacity:1;border-color:rgb(249 249 249/var(--tw-border-opacity))}.border-secondary-70{--tw-border-opacity:1;border-color:rgb(189 189 189/var(--tw-border-opacity))}.border-t-main-100{--tw-border-opacity:1;border-top-color:rgb(17 17 17/var(--tw-border-opacity))}.border-t-secondary-100{--tw-border-opacity:1;border-top-color:rgb(249 249 249/var(--tw-border-opacity))}.bg-main-100{--tw-bg-opacity:1;background-color:rgb(17 17 17/var(--tw-bg-opacity))}.bg-main-70{--tw-bg-opacity:1;background-color:rgb(61 61 61/var(--tw-bg-opacity))}.bg-secondary-10{--tw-bg-opacity:1;background-color:rgb(209 209 209/var(--tw-bg-opacity))}.bg-secondary-100{--tw-bg-opacity:1;background-color:rgb(249 249 249/var(--tw-bg-opacity))}.bg-secondary-30{--tw-bg-opacity:1;background-color:rgb(228 228 228/var(--tw-bg-opacity))}.fill-main-100{fill:#111}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-0{padding-left:0;padding-right:0}.px-12{padding-left:3rem;padding-right:3rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-10{padding-bottom:2.5rem;padding-top:2.5rem}.py-12{padding-bottom:3rem;padding-top:3rem}.py-14{padding-bottom:3.5rem;padding-top:3.5rem}.py-16{padding-bottom:4rem;padding-top:4rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-2\.5{padding-bottom:.625rem;padding-top:.625rem}.py-4{padding-bottom:1rem;padding-top:1rem}.py-6{padding-bottom:1.5rem;padding-top:1.5rem}.pb-10{padding-bottom:2.5rem}.pb-24{padding-bottom:6rem}.pb-4{padding-bottom:1rem}.pb-6{padding-bottom:1.5rem}.pb-8{padding-bottom:2rem}.pl-1{padding-left:.25rem}.pt-2{padding-top:.5rem}.pt-2\.5{padding-top:.625rem}.pt-5{padding-top:1.25rem}.pt-8{padding-top:2rem}.text-center{text-align:center}.text-start{text-align:start}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\[24px\]{font-size:24px}.text-\[88px\]{font-size:88px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-5{line-height:1.25rem}.leading-\[3\.9\]{line-height:3.9}.leading-tight{line-height:1.25}.tracking-wide{letter-spacing:.025em}.text-main-10{--tw-text-opacity:1;color:rgb(143 143 143/var(--tw-text-opacity))}.text-main-100{--tw-text-opacity:1;color:rgb(17 17 17/var(--tw-text-opacity))}.text-main-70{--tw-text-opacity:1;color:rgb(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(249 249 249/var(--tw-text-opacity))}.text-secondary-30{--tw-text-opacity:1;color:rgb(228 228 228/var(--tw-text-opacity))}.text-secondary-70{--tw-text-opacity:1;color:rgb(189 189 189/var(--tw-text-opacity))}.underline{text-decoration-line:underline}.accent-main-100{accent-color:#111}.opacity-50{opacity:.5}.shadow-\[0px_2px_14px_rgba\(68\2c 68\2c 68\2c 0\.25\)\]{--tw-shadow:0px 2px 14px rgba(68,68,68,.25);--tw-shadow-colored:0px 2px 14px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.outline-1{outline-width:1px}.outline-main-70{outline-color:#3d3d3d}.grayscale{--tw-grayscale:grayscale(100%)}.grayscale,.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)}.invert{--tw-invert:invert(100%)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.backdrop-blur-sm,.backdrop-brightness-75{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-brightness-75{--tw-backdrop-brightness:brightness(.75)}.transition{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}.placeholder\:absolute::-moz-placeholder{position:absolute}.placeholder\:absolute::placeholder{position:absolute}.placeholder\:left-\[150px\]::-moz-placeholder{left:150px}.placeholder\:left-\[150px\]::placeholder{left:150px}.placeholder\:left-\[60px\]::-moz-placeholder{left:60px}.placeholder\:left-\[60px\]::placeholder{left:60px}.placeholder\:font-light::-moz-placeholder{font-weight:300}.placeholder\:font-light::placeholder{font-weight:300}.placeholder\:italic::-moz-placeholder{font-style:italic}.placeholder\:italic::placeholder{font-style:italic}.placeholder\:text-main-10::-moz-placeholder{--tw-text-opacity:1;color:rgb(143 143 143/var(--tw-text-opacity))}.placeholder\:text-main-10::placeholder{--tw-text-opacity:1;color:rgb(143 143 143/var(--tw-text-opacity))}.placeholder\:transition-all::-moz-placeholder{transition-duration:.15s;-moz-transition-property:all;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.placeholder\:transition-all::placeholder{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.before\:pointer-events-none:before{content:var(--tw-content);pointer-events:none}.before\:mr-1:before{content:var(--tw-content);margin-right:.25rem}.before\:mt-\[6\.5px\]:before{content:var(--tw-content);margin-top:6.5px}.before\:box-border:before{box-sizing:border-box;content:var(--tw-content)}.before\:block:before{content:var(--tw-content);display:block}.before\:h-1:before{content:var(--tw-content);height:.25rem}.before\:h-1\.5:before{content:var(--tw-content);height:.375rem}.before\:w-2:before{content:var(--tw-content);width:.5rem}.before\:w-2\.5:before{content:var(--tw-content);width:.625rem}.before\:rounded-tl-lg:before{border-top-left-radius:.5rem;content:var(--tw-content)}.before\:border-0:before{border-width:0;content:var(--tw-content)}.before\:border-l:before{border-left-width:1px;content:var(--tw-content)}.before\:border-t:before{border-top-width:1px;content:var(--tw-content)}.before\:border-main-100:before{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity));content:var(--tw-content)}.after\:pointer-events-none:after{content:var(--tw-content);pointer-events:none}.after\:ml-1:after{content:var(--tw-content);margin-left:.25rem}.after\:mt-\[6\.5px\]:after{content:var(--tw-content);margin-top:6.5px}.after\:box-border:after{box-sizing:border-box;content:var(--tw-content)}.after\:block:after{content:var(--tw-content);display:block}.after\:h-1:after{content:var(--tw-content);height:.25rem}.after\:h-1\.5:after{content:var(--tw-content);height:.375rem}.after\:w-2:after{content:var(--tw-content);width:.5rem}.after\:w-2\.5:after{content:var(--tw-content);width:.625rem}.after\:w-full:after{content:var(--tw-content);width:100%}.after\:flex-grow:after{content:var(--tw-content);flex-grow:1}.after\:rounded-sm:after{border-radius:.125rem;content:var(--tw-content)}.after\:rounded-tr-lg:after{border-top-right-radius:.5rem;content:var(--tw-content)}.after\:border-0:after{border-width:0;content:var(--tw-content)}.after\:border-r:after{border-right-width:1px;content:var(--tw-content)}.after\:border-t:after{border-top-width:1px;content:var(--tw-content)}.after\:border-main-100:after{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity));content:var(--tw-content)}.after\:bg-main-10:after{--tw-bg-opacity:1;background-color:rgb(143 143 143/var(--tw-bg-opacity));content:var(--tw-content)}.after\:bg-secondary-100:after{--tw-bg-opacity:1;background-color:rgb(249 249 249/var(--tw-bg-opacity));content:var(--tw-content)}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.first\:mt-0:first-child{margin-top:0}.first\:mt-36:first-child{margin-top:9rem}.even\:flex-row-reverse:nth-child(2n){flex-direction:row-reverse}.placeholder-shown\:border:-moz-placeholder-shown{border-width:1px}.placeholder-shown\:border:placeholder-shown{border-width:1px}.placeholder-shown\:border-main-100:-moz-placeholder-shown{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity))}.placeholder-shown\:border-main-100:placeholder-shown{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity))}.hover\:bg-main-100:hover{--tw-bg-opacity:1;background-color:rgb(17 17 17/var(--tw-bg-opacity))}.hover\:bg-main-70:hover{--tw-bg-opacity:1;background-color:rgb(61 61 61/var(--tw-bg-opacity))}.hover\:bg-secondary-100:hover{--tw-bg-opacity:1;background-color:rgb(249 249 249/var(--tw-bg-opacity))}.hover\:bg-secondary-30:hover{--tw-bg-opacity:1;background-color:rgb(228 228 228/var(--tw-bg-opacity))}.hover\:text-main-10:hover{--tw-text-opacity:1;color:rgb(143 143 143/var(--tw-text-opacity))}.hover\:text-secondary-10:hover{--tw-text-opacity:1;color:rgb(209 209 209/var(--tw-text-opacity))}.hover\:text-secondary-70:hover{--tw-text-opacity:1;color:rgb(189 189 189/var(--tw-text-opacity))}.hover\:underline:hover{text-decoration-line:underline}.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)}.focus\:border-main-100:focus{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity))}.focus\:border-t-secondary-100:focus{--tw-border-opacity:1;border-top-color:rgb(249 249 249/var(--tw-border-opacity))}.focus\:placeholder\:left-4:focus::-moz-placeholder{left:1rem}.focus\:placeholder\:left-4:focus::placeholder{left:1rem}.disabled\:opacity-30:disabled{opacity:.3}.group.hide .group-\[\.hide\]\:hidden{display:none}.peer:-moz-placeholder-shown~.peer-placeholder-shown\:text-sm{font-size:.875rem;line-height:1.25rem}.peer:placeholder-shown~.peer-placeholder-shown\:text-sm{font-size:.875rem;line-height:1.25rem}.peer:-moz-placeholder-shown~.peer-placeholder-shown\:leading-\[3\.9\]{line-height:3.9}.peer:placeholder-shown~.peer-placeholder-shown\:leading-\[3\.9\]{line-height:3.9}.peer:-moz-placeholder-shown~.peer-placeholder-shown\:text-main-100{--tw-text-opacity:1;color:rgb(17 17 17/var(--tw-text-opacity))}.peer:placeholder-shown~.peer-placeholder-shown\:text-main-100{--tw-text-opacity:1;color:rgb(17 17 17/var(--tw-text-opacity))}.peer:-moz-placeholder-shown~.peer-placeholder-shown\:before\:border-0:before{border-width:0;content:var(--tw-content)}.peer:placeholder-shown~.peer-placeholder-shown\:before\:border-0:before{border-width:0;content:var(--tw-content)}.peer:-moz-placeholder-shown~.peer-placeholder-shown\:after\:border-0:after{border-width:0;content:var(--tw-content)}.peer:placeholder-shown~.peer-placeholder-shown\:after\:border-0:after{border-width:0;content:var(--tw-content)}.peer:focus~.peer-focus\:text-xs{font-size:.75rem;line-height:1rem}.peer:focus~.peer-focus\:leading-tight{line-height:1.25}.peer:focus~.peer-focus\:text-main-100{--tw-text-opacity:1;color:rgb(17 17 17/var(--tw-text-opacity))}.peer:focus~.peer-focus\:before\:border-l:before{border-left-width:1px;content:var(--tw-content)}.peer:focus~.peer-focus\:before\:border-t:before{border-top-width:1px;content:var(--tw-content)}.peer:focus~.peer-focus\:before\:border-main-100:before{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity));content:var(--tw-content)}.peer:focus~.peer-focus\:after\:border-r:after{border-right-width:1px;content:var(--tw-content)}.peer:focus~.peer-focus\:after\:border-t:after{border-top-width:1px;content:var(--tw-content)}.peer:focus~.peer-focus\:after\:border-main-100:after{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity));content:var(--tw-content)}@media (prefers-color-scheme:dark){.dark\:text-secondary-10{--tw-text-opacity:1;color:rgb(209 209 209/var(--tw-text-opacity))}}@media (min-width:640px){.sm\:mb-12{margin-bottom:3rem}.sm\:mb-5{margin-bottom:1.25rem}.sm\:block{display:block}.sm\:hidden{display:none}.sm\:w-64{width:16rem}.sm\:w-auto{width:auto}.sm\:w-max{width:-moz-max-content;width:max-content}.sm\:shrink-0{flex-shrink:0}.sm\:basis-2\/5{flex-basis:40%}.sm\:basis-3\/5{flex-basis:60%}.sm\:basis-5\/6{flex-basis:83.333333%}.sm\:basis-52{flex-basis:13rem}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:justify-start{justify-content:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:gap-5{gap:1.25rem}.sm\:gap-x-10{-moz-column-gap:2.5rem;column-gap:2.5rem}.sm\:px-12{padding-left:3rem;padding-right:3rem}.sm\:px-5{padding-left:1.25rem;padding-right:1.25rem}.sm\:pb-14{padding-bottom:3.5rem}.sm\:pt-16{padding-top:4rem}.sm\:text-end{text-align:end}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-\[148px\]{font-size:148px}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:last\:hidden:last-child{display:none}}@media (min-width:768px){.md\:left-auto{left:auto}.md\:top-auto{top:auto}.md\:z-0{z-index:0}.md\:-my-2{margin-bottom:-.5rem;margin-top:-.5rem}.md\:mx-3{margin-left:.75rem;margin-right:.75rem}.md\:mb-12{margin-bottom:3rem}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-16{height:4rem}.md\:h-48{height:12rem}.md\:w-1\/2{width:50%}.md\:w-16{width:4rem}.md\:w-48{width:12rem}.md\:w-\[256px\]{width:256px}.md\:max-w-\[528px\]{max-width:528px}.md\:basis-4\/6{flex-basis:66.666667%}.md\:basis-5\/6{flex-basis:83.333333%}.md\:translate-x-full{--tw-translate-x:100%}.md\:translate-x-full,.md\:translate-y-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.md\:translate-y-0{--tw-translate-y:0px}.md\:columns-2{-moz-columns:2;column-count:2}.md\:flex-row{flex-direction:row}.md\:items-start{align-items:flex-start}.md\:justify-start{justify-content:flex-start}.md\:justify-between{justify-content:space-between}.md\:gap-14{gap:3.5rem}.md\:gap-28{gap:7rem}.md\:gap-5{gap:1.25rem}.md\:gap-8{gap:2rem}.md\:gap-y-5{row-gap:1.25rem}.md\:p-12{padding:3rem}.md\:\!px-0{padding-left:0!important;padding-right:0!important}.md\:px-20{padding-left:5rem;padding-right:5rem}.md\:px-3{padding-left:.75rem;padding-right:.75rem}.md\:px-6{padding-left:1.5rem;padding-right:1.5rem}.md\:py-16{padding-bottom:4rem;padding-top:4rem}.md\:py-8{padding-bottom:2rem;padding-top:2rem}.md\:pb-0{padding-bottom:0}.md\:pt-0{padding-top:0}.md\:text-start{text-align:start}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-lg{font-size:1.125rem;line-height:1.75rem}.md\:first\:mt-0:first-child{margin-top:0}.md\:last\:mb-0:last-child{margin-bottom:0}}@media (min-width:1024px){.lg\:order-none{order:0}.lg\:h-99{height:396px}.lg\:h-full{height:100%}.lg\:w-1\/2{width:50%}.lg\:w-80{width:20rem}.lg\:w-max{width:-moz-max-content;width:max-content}.lg\:basis-1\/2{flex-basis:50%}.lg\:flex-row{flex-direction:row}.lg\:justify-start{justify-content:flex-start}.lg\:gap-10{gap:2.5rem}.lg\:gap-16{gap:4rem}.lg\:gap-28{gap:7rem}.lg\:gap-x-12{-moz-column-gap:3rem;column-gap:3rem}.lg\:\!px-0{padding-left:0!important;padding-right:0!important}.lg\:px-10{padding-left:2.5rem;padding-right:2.5rem}.lg\:px-12{padding-left:3rem;padding-right:3rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:py-0{padding-bottom:0;padding-top:0}.lg\:last\:flex:last-child{display:flex}}@media (min-width:1280px){.xl\:w-\[256px\]{width:256px}.xl\:basis-2\/5{flex-basis:40%}}@media (min-width:1900px){.\33xl\:w-\[400px\]{width:400px}.\33xl\:basis-1\/3{flex-basis:33.333333%}}@media (min-width:2200px){.\34xl\:basis-1\/4{flex-basis:25%}}@font-face{font-display:swap;font-family:Rubik Glitch;font-style:normal;font-weight:400;src:url(/static/rubik-glitch-cyrillic-ext-400-normal-caa98a3bc11105fffcfef482abfb2c37.woff2) format("woff2"),url(/static/rubik-glitch-cyrillic-ext-400-normal-54f97c66997053ace86c1d9f1bdef3fd.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Rubik Glitch;font-style:normal;font-weight:400;src:url(/static/rubik-glitch-cyrillic-400-normal-b32f20a71003e8bb78b28eec73c0385b.woff2) format("woff2"),url(/static/rubik-glitch-cyrillic-400-normal-3fd27e06a8bdf8edbd455443d0854c3f.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Rubik Glitch;font-style:normal;font-weight:400;src:url(/static/rubik-glitch-hebrew-400-normal-776cad11325d90d9061faad0b7107953.woff2) format("woff2"),url(/static/rubik-glitch-hebrew-400-normal-c8cefe9973692c5d21bdd5bb11616cc4.woff) format("woff");unicode-range:u+0590-05ff,u+200c-2010,u+20aa,u+25cc,u+fb1d-fb4f}@font-face{font-display:swap;font-family:Rubik Glitch;font-style:normal;font-weight:400;src:url(/static/rubik-glitch-latin-ext-400-normal-8ae808a02973fec508af9c0959fbbade.woff2) format("woff2"),url(/static/rubik-glitch-latin-ext-400-normal-16c59f7d884842f113e8ff185c8656c9.woff) format("woff");unicode-range:u+0100-02af,u+0304,u+0308,u+0329,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Rubik Glitch;font-style:normal;font-weight:400;src:url(/static/rubik-glitch-latin-400-normal-7a5b5bac6b066d71b0cae06ed087b905.woff2) format("woff2"),url(/static/rubik-glitch-latin-400-normal-3fb89918ce49908f5350076807cf1bef.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat Variable;font-style:normal;font-weight:100 900;src:url(/static/montserrat-cyrillic-ext-wght-normal-e84e812b71d18e04e6928fb272665c53.woff2) format("woff2-variations");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat Variable;font-style:normal;font-weight:100 900;src:url(/static/montserrat-cyrillic-wght-normal-eb1783eb42487132539645641f761eb2.woff2) format("woff2-variations");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat Variable;font-style:normal;font-weight:100 900;src:url(data:font/woff2;base64,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) format("woff2-variations");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat Variable;font-style:normal;font-weight:100 900;src:url(/static/montserrat-latin-ext-wght-normal-82d636d9375dd92118fd22c818a99c24.woff2) format("woff2-variations");unicode-range:u+0100-02af,u+0304,u+0308,u+0329,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat Variable;font-style:normal;font-weight:100 900;src:url(/static/montserrat-latin-wght-normal-5028c63f6a70ab0cf7cba9015ae04154.woff2) format("woff2-variations");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}code[class*=language-],pre[class*=language-]{word-wrap:normal;background:none;color:#ccc;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;text-align:left;white-space:pre;word-break:normal;word-spacing:normal}pre[class*=language-]{margin:.5em 0;overflow:auto;padding:1em}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{border-radius:.3em;padding:.1em;white-space:normal}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#999}.token.punctuation{color:#ccc}.token.attr-name,.token.deleted,.token.namespace,.token.tag{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.function,.token.number{color:#f08d49}.token.class-name,.token.constant,.token.property,.token.symbol{color:#f8c555}.token.atrule,.token.builtin,.token.important,.token.keyword,.token.selector{color:#cc99cd}.token.attr-value,.token.char,.token.regex,.token.string,.token.variable{color:#7ec699}.token.entity,.token.operator,.token.url{color:#67cdcc}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}*{border:0;margin:0;padding:0}*,:after,:before{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}:active,:focus,a:active,a:focus{outline:none}aside,footer,header,nav{display:block}body,html{-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;-webkit-text-size-adjust:100%;font-size:100%;font-size:14px;line-height:1;min-height:100vh}button,input,textarea{font-family:inherit}input::-ms-clear{display:none}button{cursor:pointer}button::-moz-focus-inner{border:0;padding:0}a,a:hover,a:visited{text-decoration:none}ul li{list-style:none}img{vertical-align:top}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:400}*,.banner-title{font-family:Montserrat Variable,Helvetica,Arial,sans-serif}@media screen and (max-width:640px){div#hubspot-messages-iframe-container{display:none!important}}#hubspot-messages-iframe-container{z-index:200!important}#hs-banner-parent{--hs-banner-font-family:"Montserrat Variable",Helvetica,Arial,sans-serif!important;--hs-banner-inset:auto 0px 10px 10px!important;--hs-banner-translate-x:0!important}#hs-eu-cookie-settings-button{font-weight:400!important;text-decoration:none!important}#hs-eu-cookie-confirmation{max-width:calc(100% - 20px)!important}div.privacy-policy h1{font-size:1.875rem;font-weight:600;line-height:2.25rem;text-align:center;width:100%}div.privacy-policy h2{font-size:1.5rem;font-weight:600;line-height:2rem;padding-top:1rem}div.privacy-policy h3{font-size:1.25rem;font-weight:600;line-height:1.75rem;padding-top:1rem}div.privacy-policy h4{font-weight:600;padding-top:.5rem}div.privacy-policy ul li{list-style-position:inside;list-style-type:disc;padding-top:1rem}div.privacy-policy ul li>h3{display:inline;font-weight:500;padding-top:0}div.privacy-policy a{text-decoration-line:underline}div.single-post{font-size:1rem;line-height:1.5rem}@media (min-width:640px){div.single-post{font-size:1.125rem;line-height:1.75rem}}div.single-post :is(h3,h4){--tw-text-opacity:1;color:rgb(249 249 249/var(--tw-text-opacity));font-size:1.125rem;font-weight:700;line-height:1.75rem;margin-bottom:.625rem;margin-top:2rem}@media (min-width:640px){div.single-post :is(h3,h4){font-size:1.25rem;line-height:1.75rem}}div.single-post h4{margin-top:1rem}div.single-post p{margin-bottom:1rem}@media (min-width:640px){div.single-post p{margin-bottom:2rem}}div.single-post span.gatsby-resp-image-wrapper{border-radius:20px!important;margin-bottom:1rem!important;margin-left:auto!important;margin-right:auto!important;max-width:444px!important;width:100%!important}@media (min-width:640px){div.single-post span.gatsby-resp-image-wrapper{margin-bottom:1.25rem!important}}div.single-post img{border-radius:20px!important}div.single-post span.gatsby-resp-image-wrapper+em{display:block;font-size:.875rem;font-style:normal;line-height:1.25rem;text-align:center;width:100%}div.single-post :is(ul,ol){margin-bottom:1rem;margin-top:1rem}@media (min-width:640px){div.single-post :is(ul,ol){margin-bottom:2rem;margin-top:2rem}}div.single-post ul li{list-style-position:inside;list-style-type:disc}div.single-post ol li{list-style-position:inside;list-style-type:decimal}div.single-post pre{--tw-bg-opacity:1;background-color:rgb(61 61 61/var(--tw-bg-opacity));border-radius:20px;font-size:.875rem;line-height:1.25rem;margin-bottom:1rem;margin-top:1rem;padding:1rem;white-space:pre-wrap}@media (min-width:640px){div.single-post pre{font-size:1rem;line-height:1.5rem;margin-bottom:2rem;margin-top:2rem;padding:2rem}}div.single-post pre code{white-space:pre-wrap}div.service-preview{background:linear-gradient(#111 0 0) padding-box,linear-gradient(90deg,#f1f1f1 1 1) border-box}div.service-preview:hover{background:#111}div.service-preview p{padding-top:1.75rem}.gradient-border{-o-border-image:linear-gradient(90deg,#bdbdbd,#111) 30;border-image:linear-gradient(90deg,#bdbdbd,#111) 30}div.team-member:hover div.line{width:100%}div.applied-tech:hover div.line{height:100%}div.review-body p{padding-top:.5rem}div.review-body p:first-child{padding-top:0}div.workflow-step:nth-child(odd) div.cover{right:-.5rem}div.workflow-step:nth-child(2n) div.cover{left:-.5rem}div.why-us-card p{text-align:justify}div.why-us-card:hover div.line{height:100%}p.contact-form-description span{display:block;padding-bottom:.5rem;padding-top:.5rem} \ No newline at end of file diff --git a/styles.c06ccc800b70845881cc.css b/styles.c06ccc800b70845881cc.css deleted file mode 100644 index b3ea4a7e..00000000 --- a/styles.c06ccc800b70845881cc.css +++ /dev/null @@ -1,3 +0,0 @@ -/* -! tailwindcss v3.3.2 | MIT License | https://tailwindcss.com -*/*,:after,:before{border:0 solid}:after,:before{--tw-content:""}html{-webkit-text-size-adjust:100%;font-feature-settings:normal;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1440px){.container{max-width:1440px}}@media (min-width:1900px){.container{max-width:1900px}}@media (min-width:2200px){.container{max-width:2200px}}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.-bottom-2{bottom:-.5rem}.-left-5{left:-1.25rem}.-right-6{right:-1.5rem}.-top-2{top:-.5rem}.-top-\[6\.5px\]{top:-6.5px}.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}.left-\[2\%\]{left:2%}.right-0{right:0}.right-6{right:1.5rem}.top-0{top:0}.top-1\/2{top:50%}.top-full{top:100%}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.-order-1{order:-1}.float-right{float:right}.m-2{margin:.5rem}.mx-0{margin-left:0;margin-right:0}.mx-12{margin-left:3rem;margin-right:3rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.mx-5{margin-left:1.25rem;margin-right:1.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-14{margin-bottom:3.5rem;margin-top:3.5rem}.my-20{margin-bottom:5rem;margin-top:5rem}.my-6{margin-bottom:1.5rem;margin-top:1.5rem}.mb-2{margin-bottom:.5rem}.mb-2\.5{margin-bottom:.625rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mr-10{margin-right:2.5rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-3\.5{margin-right:.875rem}.mr-7{margin-right:1.75rem}.mt-3{margin-top:.75rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1/1}.h-0{height:0}.h-1{height:.25rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2\/3{height:66.666667%}.h-32{height:8rem}.h-40{height:10rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-8{height:2rem}.h-91{height:22.75rem}.h-\[72px\]{height:72px}.h-full{height:100%}.h-min{height:-moz-min-content;height:min-content}.max-h-\[424px\]{max-height:424px}.max-h-full{max-height:100%}.min-h-91{min-height:22.75rem}.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-48{width:12rem}.w-5{width:1.25rem}.w-8{width:2rem}.w-\[100\%\]{width:100%}.w-\[192px\]{width:192px}.w-\[220px\]{width:220px}.w-\[72px\]{width:72px}.w-\[85\%\]{width:85%}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.min-w-10{min-width:2.5rem}.max-w-2xl{max-width:680px}.max-w-4\.5xl{max-width:958px}.max-w-\[1280px\]{max-width:1280px}.max-w-\[320px\]{max-width:320px}.max-w-\[400px\]{max-width:400px}.max-w-\[500px\]{max-width:500px}.max-w-\[528px\]{max-width:528px}.max-w-\[544px\]{max-width:544px}.max-w-\[958px\]{max-width:958px}.flex-1{flex:1 1 0%}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.basis-1\/6{flex-basis:16.666667%}.basis-4\/6{flex-basis:66.666667%}.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%}.-rotate-90,.translate-y-full{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-90{--tw-rotate:-90deg}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.touch-manipulation{touch-action:manipulation}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.columns-1{-moz-columns:1;column-count:1}.break-inside-avoid{-moz-column-break-inside:avoid;break-inside:avoid}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.content-center{align-content:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-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}.gap-10{gap:2.5rem}.gap-14{gap:3.5rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-3\.5{gap:.875rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-14{-moz-column-gap:3.5rem;column-gap:3.5rem}.gap-x-16{-moz-column-gap:4rem;column-gap:4rem}.gap-x-20{-moz-column-gap:5rem;column-gap:5rem}.gap-x-24{-moz-column-gap:6rem;column-gap:6rem}.gap-x-28{-moz-column-gap:7rem;column-gap:7rem}.gap-x-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.gap-y-2{row-gap:.5rem}.gap-y-2\.5{row-gap:.625rem}.gap-y-5{row-gap:1.25rem}.gap-y-8{row-gap:2rem}.space-x-10>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(2.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(2.5rem*var(--tw-space-x-reverse))}.overflow-hidden{overflow:hidden}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.rounded{border-radius:.25rem}.rounded-2\.5xl{border-radius:20px}.rounded-2xl{border-radius:1rem}.rounded-\[10px\]{border-radius:10px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-b-2xl{border-bottom-left-radius:1rem;border-bottom-right-radius:1rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-b-\[4px\]{border-bottom-width:4px}.border-t-2{border-top-width:2px}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.border-main-10{--tw-border-opacity:1;border-color:rgb(143 143 143/var(--tw-border-opacity))}.border-main-100{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity))}.border-secondary-10{--tw-border-opacity:1;border-color:rgb(209 209 209/var(--tw-border-opacity))}.border-secondary-100{--tw-border-opacity:1;border-color:rgb(249 249 249/var(--tw-border-opacity))}.border-secondary-70{--tw-border-opacity:1;border-color:rgb(189 189 189/var(--tw-border-opacity))}.border-t-main-100{--tw-border-opacity:1;border-top-color:rgb(17 17 17/var(--tw-border-opacity))}.border-t-secondary-100{--tw-border-opacity:1;border-top-color:rgb(249 249 249/var(--tw-border-opacity))}.bg-main-100{--tw-bg-opacity:1;background-color:rgb(17 17 17/var(--tw-bg-opacity))}.bg-main-70{--tw-bg-opacity:1;background-color:rgb(61 61 61/var(--tw-bg-opacity))}.bg-secondary-10{--tw-bg-opacity:1;background-color:rgb(209 209 209/var(--tw-bg-opacity))}.bg-secondary-100{--tw-bg-opacity:1;background-color:rgb(249 249 249/var(--tw-bg-opacity))}.bg-secondary-30{--tw-bg-opacity:1;background-color:rgb(228 228 228/var(--tw-bg-opacity))}.fill-main-100{fill:#111}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.\!px-0{padding-left:0!important;padding-right:0!important}.px-0{padding-left:0;padding-right:0}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-24{padding-left:6rem;padding-right:6rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-10{padding-bottom:2.5rem;padding-top:2.5rem}.py-12{padding-bottom:3rem;padding-top:3rem}.py-14{padding-bottom:3.5rem;padding-top:3.5rem}.py-16{padding-bottom:4rem;padding-top:4rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-2\.5{padding-bottom:.625rem;padding-top:.625rem}.py-4{padding-bottom:1rem;padding-top:1rem}.py-8{padding-bottom:2rem;padding-top:2rem}.pb-10{padding-bottom:2.5rem}.pb-24{padding-bottom:6rem}.pb-4{padding-bottom:1rem}.pb-6{padding-bottom:1.5rem}.pb-8{padding-bottom:2rem}.pl-1{padding-left:.25rem}.pt-2{padding-top:.5rem}.pt-2\.5{padding-top:.625rem}.pt-5{padding-top:1.25rem}.pt-8{padding-top:2rem}.text-center{text-align:center}.text-start{text-align:start}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\[24px\]{font-size:24px}.text-\[88px\]{font-size:88px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-5{line-height:1.25rem}.leading-\[3\.9\]{line-height:3.9}.leading-tight{line-height:1.25}.tracking-wide{letter-spacing:.025em}.text-main-10{--tw-text-opacity:1;color:rgb(143 143 143/var(--tw-text-opacity))}.text-main-100{--tw-text-opacity:1;color:rgb(17 17 17/var(--tw-text-opacity))}.text-main-70{--tw-text-opacity:1;color:rgb(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(249 249 249/var(--tw-text-opacity))}.text-secondary-30{--tw-text-opacity:1;color:rgb(228 228 228/var(--tw-text-opacity))}.text-secondary-70{--tw-text-opacity:1;color:rgb(189 189 189/var(--tw-text-opacity))}.underline{text-decoration-line:underline}.accent-main-100{accent-color:#111}.opacity-50{opacity:.5}.shadow-\[0px_2px_14px_rgba\(68\2c 68\2c 68\2c 0\.25\)\]{--tw-shadow:0px 2px 14px rgba(68,68,68,.25);--tw-shadow-colored:0px 2px 14px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.outline-1{outline-width:1px}.outline-main-70{outline-color:#3d3d3d}.grayscale{--tw-grayscale:grayscale(100%)}.grayscale,.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)}.invert{--tw-invert:invert(100%)}.filter{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}.placeholder\:absolute::-moz-placeholder{position:absolute}.placeholder\:absolute::placeholder{position:absolute}.placeholder\:left-\[150px\]::-moz-placeholder{left:150px}.placeholder\:left-\[150px\]::placeholder{left:150px}.placeholder\:left-\[60px\]::-moz-placeholder{left:60px}.placeholder\:left-\[60px\]::placeholder{left:60px}.placeholder\:font-light::-moz-placeholder{font-weight:300}.placeholder\:font-light::placeholder{font-weight:300}.placeholder\:italic::-moz-placeholder{font-style:italic}.placeholder\:italic::placeholder{font-style:italic}.placeholder\:text-main-10::-moz-placeholder{--tw-text-opacity:1;color:rgb(143 143 143/var(--tw-text-opacity))}.placeholder\:text-main-10::placeholder{--tw-text-opacity:1;color:rgb(143 143 143/var(--tw-text-opacity))}.placeholder\:transition-all::-moz-placeholder{transition-duration:.15s;-moz-transition-property:all;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.placeholder\:transition-all::placeholder{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.before\:pointer-events-none:before{content:var(--tw-content);pointer-events:none}.before\:mr-1:before{content:var(--tw-content);margin-right:.25rem}.before\:mt-\[6\.5px\]:before{content:var(--tw-content);margin-top:6.5px}.before\:box-border:before{box-sizing:border-box;content:var(--tw-content)}.before\:block:before{content:var(--tw-content);display:block}.before\:h-1:before{content:var(--tw-content);height:.25rem}.before\:h-1\.5:before{content:var(--tw-content);height:.375rem}.before\:w-2:before{content:var(--tw-content);width:.5rem}.before\:w-2\.5:before{content:var(--tw-content);width:.625rem}.before\:rounded-tl-lg:before{border-top-left-radius:.5rem;content:var(--tw-content)}.before\:border-0:before{border-width:0;content:var(--tw-content)}.before\:border-l:before{border-left-width:1px;content:var(--tw-content)}.before\:border-t:before{border-top-width:1px;content:var(--tw-content)}.before\:border-main-100:before{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity));content:var(--tw-content)}.after\:pointer-events-none:after{content:var(--tw-content);pointer-events:none}.after\:ml-1:after{content:var(--tw-content);margin-left:.25rem}.after\:mt-\[6\.5px\]:after{content:var(--tw-content);margin-top:6.5px}.after\:box-border:after{box-sizing:border-box;content:var(--tw-content)}.after\:block:after{content:var(--tw-content);display:block}.after\:h-1:after{content:var(--tw-content);height:.25rem}.after\:h-1\.5:after{content:var(--tw-content);height:.375rem}.after\:w-2:after{content:var(--tw-content);width:.5rem}.after\:w-2\.5:after{content:var(--tw-content);width:.625rem}.after\:w-full:after{content:var(--tw-content);width:100%}.after\:flex-grow:after{content:var(--tw-content);flex-grow:1}.after\:rounded-tr-lg:after{border-top-right-radius:.5rem;content:var(--tw-content)}.after\:border-0:after{border-width:0;content:var(--tw-content)}.after\:border-r:after{border-right-width:1px;content:var(--tw-content)}.after\:border-t:after{border-top-width:1px;content:var(--tw-content)}.after\:border-main-100:after{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity));content:var(--tw-content)}.after\:bg-main-10:after{--tw-bg-opacity:1;background-color:rgb(143 143 143/var(--tw-bg-opacity));content:var(--tw-content)}.after\:bg-secondary-100:after{--tw-bg-opacity:1;background-color:rgb(249 249 249/var(--tw-bg-opacity));content:var(--tw-content)}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.first\:mt-0:first-child{margin-top:0}.first\:mt-36:first-child{margin-top:9rem}.even\:flex-row-reverse:nth-child(2n){flex-direction:row-reverse}.placeholder-shown\:border:-moz-placeholder-shown{border-width:1px}.placeholder-shown\:border:placeholder-shown{border-width:1px}.placeholder-shown\:border-main-100:-moz-placeholder-shown{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity))}.placeholder-shown\:border-main-100:placeholder-shown{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity))}.hover\:bg-main-100:hover{--tw-bg-opacity:1;background-color:rgb(17 17 17/var(--tw-bg-opacity))}.hover\:bg-main-70:hover{--tw-bg-opacity:1;background-color:rgb(61 61 61/var(--tw-bg-opacity))}.hover\:bg-secondary-100:hover{--tw-bg-opacity:1;background-color:rgb(249 249 249/var(--tw-bg-opacity))}.hover\:bg-secondary-30:hover{--tw-bg-opacity:1;background-color:rgb(228 228 228/var(--tw-bg-opacity))}.hover\:text-main-10:hover{--tw-text-opacity:1;color:rgb(143 143 143/var(--tw-text-opacity))}.hover\:text-secondary-10:hover{--tw-text-opacity:1;color:rgb(209 209 209/var(--tw-text-opacity))}.hover\:text-secondary-70:hover{--tw-text-opacity:1;color:rgb(189 189 189/var(--tw-text-opacity))}.hover\:underline:hover{text-decoration-line:underline}.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)}.focus\:border-main-100:focus{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity))}.focus\:border-t-secondary-100:focus{--tw-border-opacity:1;border-top-color:rgb(249 249 249/var(--tw-border-opacity))}.focus\:placeholder\:left-4:focus::-moz-placeholder{left:1rem}.focus\:placeholder\:left-4:focus::placeholder{left:1rem}.disabled\:opacity-30:disabled{opacity:.3}.group.hide .group-\[\.hide\]\:hidden{display:none}.peer:-moz-placeholder-shown~.peer-placeholder-shown\:text-sm{font-size:.875rem;line-height:1.25rem}.peer:placeholder-shown~.peer-placeholder-shown\:text-sm{font-size:.875rem;line-height:1.25rem}.peer:-moz-placeholder-shown~.peer-placeholder-shown\:leading-\[3\.9\]{line-height:3.9}.peer:placeholder-shown~.peer-placeholder-shown\:leading-\[3\.9\]{line-height:3.9}.peer:-moz-placeholder-shown~.peer-placeholder-shown\:text-main-100{--tw-text-opacity:1;color:rgb(17 17 17/var(--tw-text-opacity))}.peer:placeholder-shown~.peer-placeholder-shown\:text-main-100{--tw-text-opacity:1;color:rgb(17 17 17/var(--tw-text-opacity))}.peer:-moz-placeholder-shown~.peer-placeholder-shown\:before\:border-0:before{border-width:0;content:var(--tw-content)}.peer:placeholder-shown~.peer-placeholder-shown\:before\:border-0:before{border-width:0;content:var(--tw-content)}.peer:-moz-placeholder-shown~.peer-placeholder-shown\:after\:border-0:after{border-width:0;content:var(--tw-content)}.peer:placeholder-shown~.peer-placeholder-shown\:after\:border-0:after{border-width:0;content:var(--tw-content)}.peer:focus~.peer-focus\:text-xs{font-size:.75rem;line-height:1rem}.peer:focus~.peer-focus\:leading-tight{line-height:1.25}.peer:focus~.peer-focus\:text-main-100{--tw-text-opacity:1;color:rgb(17 17 17/var(--tw-text-opacity))}.peer:focus~.peer-focus\:before\:border-l:before{border-left-width:1px;content:var(--tw-content)}.peer:focus~.peer-focus\:before\:border-t:before{border-top-width:1px;content:var(--tw-content)}.peer:focus~.peer-focus\:before\:border-main-100:before{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity));content:var(--tw-content)}.peer:focus~.peer-focus\:after\:border-r:after{border-right-width:1px;content:var(--tw-content)}.peer:focus~.peer-focus\:after\:border-t:after{border-top-width:1px;content:var(--tw-content)}.peer:focus~.peer-focus\:after\:border-main-100:after{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity));content:var(--tw-content)}@media (prefers-color-scheme:dark){.dark\:text-secondary-10{--tw-text-opacity:1;color:rgb(209 209 209/var(--tw-text-opacity))}}@media (min-width:640px){.sm\:mb-12{margin-bottom:3rem}.sm\:mb-5{margin-bottom:1.25rem}.sm\:block{display:block}.sm\:hidden{display:none}.sm\:w-64{width:16rem}.sm\:w-auto{width:auto}.sm\:w-max{width:-moz-max-content;width:max-content}.sm\:shrink-0{flex-shrink:0}.sm\:basis-2\/5{flex-basis:40%}.sm\:basis-3\/5{flex-basis:60%}.sm\:basis-5\/6{flex-basis:83.333333%}.sm\:basis-52{flex-basis:13rem}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:justify-start{justify-content:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:gap-5{gap:1.25rem}.sm\:gap-x-10{-moz-column-gap:2.5rem;column-gap:2.5rem}.sm\:px-12{padding-left:3rem;padding-right:3rem}.sm\:px-5{padding-left:1.25rem;padding-right:1.25rem}.sm\:pb-14{padding-bottom:3.5rem}.sm\:pt-16{padding-top:4rem}.sm\:text-end{text-align:end}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-\[148px\]{font-size:148px}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:last\:hidden:last-child{display:none}}@media (min-width:768px){.md\:left-auto{left:auto}.md\:top-auto{top:auto}.md\:z-0{z-index:0}.md\:-my-2{margin-bottom:-.5rem;margin-top:-.5rem}.md\:mb-12{margin-bottom:3rem}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:w-1\/2{width:50%}.md\:w-\[256px\]{width:256px}.md\:basis-4\/6{flex-basis:66.666667%}.md\:basis-5\/6{flex-basis:83.333333%}.md\:translate-x-full{--tw-translate-x:100%}.md\:translate-x-full,.md\:translate-y-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.md\:translate-y-0{--tw-translate-y:0px}.md\:columns-2{-moz-columns:2;column-count:2}.md\:flex-row{flex-direction:row}.md\:justify-start{justify-content:flex-start}.md\:justify-between{justify-content:space-between}.md\:gap-14{gap:3.5rem}.md\:gap-28{gap:7rem}.md\:gap-5{gap:1.25rem}.md\:gap-y-5{row-gap:1.25rem}.md\:p-12{padding:3rem}.md\:\!px-0{padding-left:0!important;padding-right:0!important}.md\:px-20{padding-left:5rem;padding-right:5rem}.md\:px-3{padding-left:.75rem;padding-right:.75rem}.md\:px-6{padding-left:1.5rem;padding-right:1.5rem}.md\:pb-0{padding-bottom:0}.md\:text-start{text-align:start}.md\:first\:mt-0:first-child{margin-top:0}.md\:last\:mb-0:last-child{margin-bottom:0}}@media (min-width:1024px){.lg\:order-none{order:0}.lg\:h-99{height:396px}.lg\:h-full{height:100%}.lg\:w-1\/2{width:50%}.lg\:w-80{width:20rem}.lg\:w-max{width:-moz-max-content;width:max-content}.lg\:basis-1\/2{flex-basis:50%}.lg\:flex-row{flex-direction:row}.lg\:justify-start{justify-content:flex-start}.lg\:gap-10{gap:2.5rem}.lg\:gap-16{gap:4rem}.lg\:gap-28{gap:7rem}.lg\:gap-x-12{-moz-column-gap:3rem;column-gap:3rem}.lg\:px-10{padding-left:2.5rem;padding-right:2.5rem}.lg\:px-12{padding-left:3rem;padding-right:3rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:py-0{padding-bottom:0;padding-top:0}.lg\:last\:flex:last-child{display:flex}}@media (min-width:1280px){.xl\:w-\[256px\]{width:256px}.xl\:basis-2\/5{flex-basis:40%}}@media (min-width:1900px){.\33xl\:w-\[400px\]{width:400px}.\33xl\:basis-1\/3{flex-basis:33.333333%}}@media (min-width:2200px){.\34xl\:basis-1\/4{flex-basis:25%}}@font-face{font-display:swap;font-family:Rubik Glitch;font-style:normal;font-weight:400;src:url(/static/rubik-glitch-cyrillic-ext-400-normal-caa98a3bc11105fffcfef482abfb2c37.woff2) format("woff2"),url(/static/rubik-glitch-cyrillic-ext-400-normal-54f97c66997053ace86c1d9f1bdef3fd.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Rubik Glitch;font-style:normal;font-weight:400;src:url(/static/rubik-glitch-cyrillic-400-normal-b32f20a71003e8bb78b28eec73c0385b.woff2) format("woff2"),url(/static/rubik-glitch-cyrillic-400-normal-3fd27e06a8bdf8edbd455443d0854c3f.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Rubik Glitch;font-style:normal;font-weight:400;src:url(/static/rubik-glitch-hebrew-400-normal-776cad11325d90d9061faad0b7107953.woff2) format("woff2"),url(/static/rubik-glitch-hebrew-400-normal-c8cefe9973692c5d21bdd5bb11616cc4.woff) format("woff");unicode-range:u+0590-05ff,u+200c-2010,u+20aa,u+25cc,u+fb1d-fb4f}@font-face{font-display:swap;font-family:Rubik Glitch;font-style:normal;font-weight:400;src:url(/static/rubik-glitch-latin-ext-400-normal-8ae808a02973fec508af9c0959fbbade.woff2) format("woff2"),url(/static/rubik-glitch-latin-ext-400-normal-16c59f7d884842f113e8ff185c8656c9.woff) format("woff");unicode-range:u+0100-02af,u+0304,u+0308,u+0329,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Rubik Glitch;font-style:normal;font-weight:400;src:url(/static/rubik-glitch-latin-400-normal-7a5b5bac6b066d71b0cae06ed087b905.woff2) format("woff2"),url(/static/rubik-glitch-latin-400-normal-3fb89918ce49908f5350076807cf1bef.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat Variable;font-style:normal;font-weight:100 900;src:url(/static/montserrat-cyrillic-ext-wght-normal-e84e812b71d18e04e6928fb272665c53.woff2) format("woff2-variations");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat Variable;font-style:normal;font-weight:100 900;src:url(/static/montserrat-cyrillic-wght-normal-eb1783eb42487132539645641f761eb2.woff2) format("woff2-variations");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat Variable;font-style:normal;font-weight:100 900;src:url(data:font/woff2;base64,d09GMgABAAAAACUoABQAAAAAaRgAACS2AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGoJtG5pSHIQwP0hWQVKCbQZgP1NUQVSBOCcyAIJ0L34RCAqxUKoTC4J8ADDOYAE2AiQDhG4EIAWJeAeRCAwHG4FiFcptF9wO4P86v3PI/v+QwI2h0huUr1C2Vc6JuEnKzZcMzQczSYz7tTvU4efjsIHb9Nk68iFuuSxoyJ82hVkdjX7conlL9DtraVF8PkKSWYL6NT575u0n3gMASUiS3V0QFaEMq0gC9SMMsENUSe3P87r5576Vl/eSvORlkEUIYcWALFkuTMLQIlAcC6wCAd2I7m4ijtnhXMXdgWNjl/5W/a1r4KDgAJUh7ABJoJ4/fH9m976UjqUaBSRA6aIhDGqEw7/UM3huBUIVjwrGsY3nP+61c9/HgGdCWDFAodbBunhZW6LVarK6FLSt2wHRP5TguLlBbkRipZlcVBbWFirZQ6Z1QiSkUx1D3BvEDm96tZbxBlGoVFQG+Hh6YO+CoAgXAmhMhIoSUS/sX5lapjvb23Qg/rFAXWHJlwEe2jeWL5PPoU6Z9ZEL4tnFA7PL5RKgxx4EEceTAR4y4Dm7BIg73L4xTsaZ5fEN5Hky1oYKjXGRDRUpiJzNAiWJfCpluUrwb+byPymwZQUmWiCP48LhVHv9ZTJ2oBeVyF4UuQ613jrOi3GMsVCWRfQ6vrb/Bgi4TgA+AgYh4CU48BywBahJIBgE3L4EVq2AtSth6RobN9u/2Q9bnNzlwl7H9ru8388H/HzQiUOCgAQih8qTtX83v2it6ax3Nbmau1s8PV43wjASpwiGJAUcLRcqxAaJn8TIGTh/zsQFyIKVkapoVZx2oH6IMS3YFR8bVRA1J3pubBHgQED/ygCCgXF/1mLcSn7cmw10wxA+VQLcZS3at7aQ2W4/DQRZDyOHcBAeD1HQQXz5Qfz1hUSIh/Q3CJIoDZIuHZJpDGS8bMhE0yAzzIMssBjyCLiDWz9ZuF/ACf7OAZ3CjYdvuEsfDYr5p/NmgeKQt6AIFAhA4wVdjte48DKvCAJzWQL9cSYzoACmlFUiIdjbDrS0Z7ZEgC+JUKQQBoLa9WyD2vIR0fvCLGHnv7LH63Zme/7JBsgt8Qjrl4AVXVcqAy3PkEXwEFkD95JNcLNQu5VOGOHtSFgkI4HnToLMyN/ZYG5yWWHL1SvtsIvKHvtoYhEgl5tgdOeqdwxCwCNsvgWyHwIINJTzIgGUUxCZli7sUdfxtvLYm15dsjfhXLT8PXbIXR5qhMIGVyEDRuQrF5AZVm6d7risZJnqoCWbCida83vCoEKDDpMhDKizHzrUczAiz9zdEo+xgBp0i8y3MKECQyd3rY+AfBMcar5NOb0kKnyDFq0C75OoYhsv+uKP6/gSlLGCWV+l/G4GE07krIa4oBrDADkYo/dn6Op9u2PZkNABHTuEqMnOi1769vJZUF0PlLv7wvq+fkaueYCVOxjbHQIoDwHdvpVe1CryLhLMJYRrCNcQP52KgyEAEsZvswJhIKAvAlQ1IEmubwDgQApq0IEZoiAW7JAEwyETcq68AAJaoQgDFhI+95TqWPd0lw+Fqc3SvTXvFcmX07u0MKhhpoqqFNZB9U2epUPCP05FfsTZlQ1ZRyRfiksK+RkvSKacmPylhScw2kgD6PcA+tZn3vXaZQFPesQ9fuNXLFZkgdlmaTWuMMNGRy8P0A6PZ3jBjV6pdBuuqdZgzq4uUYkhGxKbUGTVtiQw5RiI32xMWVpFwtyEVQCzEisbOsgXILWi2Cyr0GHFQQcZn/WhIwnRJ0gIbxIrjwnMXUKb86A76tBkrLnt1gjy0NH8cZi4BoYc8WWtEOhml6hE62phNdIlixDsR6Axg70QrUwmSDDXX4XHGKJYe00eaLG4r3sjX4AK9pCxIrVVyFJJvokyQcL4+ir+mMzw1sLQE2YwYK12JGoUJF4QGEPiPtoEWmtCjSD+oD10VCq26gBjvaevEhAqB1rE7DJ4UvjMIrkoGbkVEbGarO24A3fAoP19KyrGYiqLkB2I/5NiMHROFclAVJlZQEBxaS6FCwxg1fEtIjfplli3KhhNLYAVb3dcVgheTIxDZAEWWyQiM9BKLA/D8hUnrXgp0BcBsEMaZEC27GA6uV+9xeftx9qmseeDur6+kktW3dkVi6NeWaHrBiBDiHL+m6N3iRANrz5jHREEA9phpkkGrjbHwLCaqXKiTavpphn9MTYdXYDcOmCiLIFuW5DvnlxytHJ/LUjq49JNfQP18NUadjtO2XSoE1tjO9RsH2hupnGmy2juxpRfTQ1AGQRK99+m9BNF+W4cdrZHaJmxkUq5Nt3zeHG55NLWOplGNdfkNKcuW2p81aE5l9h8qfxyaszNNTyX43M11es0j1Mzz8PVwxuf39pHF8iPafRQ6/C6+bXFZWItXL9wiVsuSGQ1WjzLogGRVswm4sTYlg4B7n07iJXGYu+BAwmIgQY1UCAguExGAi/IeLAnQPBFTQAOFDBAAwYYEIAB6QgtmbwwZsBo2sJSARRQwAIBjIlTyUdysL7ILHOJ+TNXehjh762i3xcwiGltELKRdFF3gy+mlsXJBGMy4zmF1LYgzz/NLgbJ/WqgVLMpgljktGFQIlr5kuJD4AXGVReV2+IL+cbLFEMLpyBB2wuz5mUTKG8BVY2kE+nqoK8ADrUTdKGSsYSSlTDtmXIQQ2boMsHMckaiRjQCFJ3T4g16B2zGEmhCljGoig+BwZSKVxbLlVqj24KK/F2FqWAXzQ4D+mEUKAiCgABagOhVKxhsZQFkoVpfXQBlXF53GpJPhQJSGgYO4SEjgQDFSSRYr7kr8tkIAkD3Fgeie7LWKEM+c8InlTKok8tQvaJykNJ8VMqwohqiTK7r9F0xfURLRftEVYyvuhIIYC8c2A5MAWroqzza4Ue9FEgg/vueJMmQIqHi0HRsOovTW/U2wwCD3ZBsSg8riFkECPD1mBde5TwKkCAfzHjA9vZxxymiE0dzg5PBbiB9DBwc2QDeZ+scx68NCaA6qMQIehIgW7AKwGQ4BKFhQI0BpsOuvU1bgAD8xZN3CJKDKBiFSTDMaLlmWWIZBIiAAqCiCdfkgsJIiWUQ6LupfNs83YLaEG3Fxre20dF23FjowJfxEFRUALCj62fe5/fXTTuiU4pw3ylwn96Cz9MMxrdIsPQSIOY3iUUyHKtm0luZiNy31URSOAmbP4IjmX2c7n7Li3ACF+IB1y7jce8AqDYYkmp2mvv8pYCHSSPuC8Uw9fEh/n8HvvmEAMbSMzAyCRTMzALMBSgS8dL5yRZvHjOHKLOeTP5V+NRaEh/hpBFKxkolMpTYMIwUhCEoNgJ2tCQkK41RtEbTGUMhk0oWHyOojaT0MYMJfI0XLE+IfP4mCjBJoMmC5DL5RB8FQk0RZqq+prEoFGGGSDNFmy3GHLGKxZmrnyIDLNTfAgMtMshiCOiHQRSEmFk1AwXgNpXR+wkodCU6EXYMwyC6EH7o+UB0I+LQDwHRg8gX/jcQvYgCyCNA9CGBVKJfepsyGYgBhbyjMVj+ZNt4wTHAO4C4EbASlE1AdR1o/RCoXgeQsKY5lmhATwGpBrZccDTqz9vnOKjVLq6DoPOihjdyEng7BXHylhuabfiTHt837TaLELrZEyy7+isUIQpexKulUkEIoXyQVD3kfOQng7h1CJFoT0WiJuTS45BIE1T7pmZJMZEvJkXsTHY6M4OdNk4n1jzu89oHD6Dk/n1mLLv20SPkfPiQYXLEEJiwEJJVyyyRt+ZhhJDzkck2psrc/bGkoPXmmusRKHk612YBdu0t5NyjCtm821n9wvwV7HNcBeEsVvId69GHtvfFSDmFLWSmsgU+IEaoVa9WJqh+450BbPQaL8aVboSFZxa4VPspy+/nmY4d5DiUVOPIWem7JyQPjRuLs8Rj1isBERIrdiagM81EKCvuX3hzbJzKnTmzZH+LN/fj+f4CbFGpjijPXHPx2LGr8o9qZu9vfLq8cPQou/YXHburYuKJuHc+cnpZIhikfP71OmbNDYvP0Qvs2lv9xvnksNN+/P3auEnshFgelFwkhgSZM6wms2YLcm79eNjNULKJUZvMHMuOmTyOHb2w7GLGspaZhyZ2t/cHyY/ddz+2wclsFdXhX5CzUjJrt57rZl2GkoqpqMYv9Jy/M3lnMXP2e6UHsasGpBjY7f/239Kxu4yLnXBE3GlccON4YXjbcOC4Eqjaelg4avy40zoWvAKM8xc4mkNsqY25oqfiWEpOZA4Iky8pZsVn0HGm7ai7G05tgOUVwjkHs3N2Fxb2LP3mtPGtM3ePGbMpNxfG857ZChtnrZSvJFJ/ld+tuCL/ZW8bRQXsxzKWxuROjv06Pd2YsYtXhu6Xzg/7PConO3rJsGHOnLnXMNno+O+JbZIkKmF8H0X5lz57zir6WaNt0lGj/kzxmZIXX8opRgeGDiXRc0U7WId9+d3GTVsVW9YtXb148VJet0WxddOHD4S0Z/o/8JH/Ss+Gz/GvdWY7XP5c9teIUSOyBkwO8Xtun95nQPaknAmjHmMDRgRYbKFB4Vdyayn8l98+kga8cuA31s78z3MZ09a6IpM+g/1Y37Bvz5CmJbTeNtZbHyXEabirV/O0Xc3uagC3tVrWTmv5bX154p8wZSjlt34jPmuvAB/rG/W3DLzPWo3XtW4Muy+/fmuyebyot5qXdf3o+4bW88d64BRPDKl9rnFYYD6pICGFDSs+q1psHzZsLssTNBT1Hr++3jZSF1GhT+2njvozV7Dgw+2VH6lzluZwvJD5M5TEsdMy9SmDXFVkVH8JrojkxFf5s0/+U6YVs0+KjJ6cGqWIynU4cmyfxEU5bBoFqdjAK+0zMyHrqmlFalPKfb/gi0eDRqW+6vDhx/X5I2jVhRbO51VHPp58fRfLX8l710zKV5WaJf9MDl+WMF6G9TBsI8s0/SJ9YcCkzbPNa2eDZ9LaFDaX90/6dLZxVnRzJ1P+EJoTN3yQXK61RodH9E8qRo6nD4IZ4/VOgB/WKqQK6Ju9t6Fd4+PR+v9Z/CRbFnjI39AX/JvlTMjb0Xv4oGVREDqE0aJfhlhenC2fJi/SG+c/7Pgqh/krh/FVCqsYzmcfG+ZQsZ3R8I8dapkqLyoPDy8vkk+9vDYwbbZ2hkWlvkHLuUVGXfYApfq6QD5xRwv54eYhvyPCx3vwSSZ1yNVhXx++Jfp/GlUZTN4pyrKHEv7eTx7SqMdn5SsPegHYTBDQavP8gt7WeSY00/p6ROtZ0Ofo894XnOmt9EX6El3Ruh6wH6SlA895Q48MyMcvLEfKD+zgPQ23pC/RFcH1O3S4TdZ2QfSPI34BoNfBq+WH2BwyhiIukoywiPc03Iq+0jcaYQhmukojluvaQlMKb8kDDvWw41m0AM5B1HQ1D0AjXaaH0KTDISGKJNBleghNGBwVXwNuU6nzbCJad4Le0wfvozMt0Cf6TF+0H3Bhgckanqh4Ds7C5aEMH6S7FzKgm/c03Io+0xcaaQDJGucvPvaOAKyxGiKMWx5wM5QTmEhKOUDynoZb0Wf6QiMAOGiORpoBgOlR9AWE1Lzrgw8AMGua8wXQSDM0gERPH5qPFguizBWgASQoi05hLj2DFX2QPgRH6QnOXDQecwGnGVtZAIS5JZFECmlkkEUOeRRQRAllVFBFDXU00AQoBsOR8LKTJD2NriHNWprg8PRsyXDQ0+i6wLb+EvIxAWx92bsW93jAI57wLF6+74Z45/z4+kvv5/Pe09Q0pGnANwZWHb1h29uFEORLdRTCuVM1WXoaeAGPe5XZYBmWD/1CBVMhb0VhNM4lWR462jLNC+PqEMywDMuHfqGCqcCt+QksLHVzNJ4KfB4XgBg1e+C/u0K8zEhWq0PXgeVDv1BB7DfcajtcMMPLgdAEvl6Vnalwwc0shWXdzbAcso6uA7faE1ycCTAt6R9aswzWgVuZCbaqd/Iv6K6/V5auAwNE5WUFxyUSJai1NRTSIQRxq7M3b4SsrqSaFWX+1UGpA7W2RiItIZ9cwQE8mddgpFCJAYaJSYCfUzZ2GDeGYRiGYRiGYVjKNmWStnJXB8FsnKCQKbgDRcsWZQv51ytL1+A2cMUI4gamegbqCCn921uksfnJdLqtMfwOOUTK5NPFlp98xENZ5MkGp4BF5Es7GJ0x1/t74+O2DuekdUM3D0HKmPtt42C2O6EOykhJ4qVPkQPk7HFHssVy0V3QthM4VAh0shUixQUEg5hIHJFjReeN2S+r2cXdCpno5Q85gEOMLZUcyMkxVIKgdyLXqy2erSYUr3OQL3CIMXg85JkYWiaC3ileb3ks2V9+qFOEeOjrouSx/0Yy2wDpJpmr1GaHXfCPFz4EQwqDnepnrvFHf/WOL22PANMkNIMzKoVZnNWpS3fFuF+jmtQxnVrPki7Tilmpa/zatA6t8+vGerYaN1APJ08GknGkg1xIriS3k8cpngqk4qiPqBxqNvU19T1VRp2lrlGVVD3lEeQLFgieChpo8PB0IB1HD6Oz6Vn0V/RG+iB9jr4u9BVGCO3C0cIpwiXCNcJdjC8TwdiYUUwhq2YnskVsCbuBLWPPstfYSrae9YhSRRNEs0RfizaIafFQ8TjxVPFi8XrxbvEp8RVxtUQkGS7JkcyUfC5ZL9kt+UlyWdLCGbmh3ARuCjefK+HWczu4w9xp7g/uJveUq+PapZiUk+qlfWBL46RJ0ixpvnS19Jr0hbRNxssGy5bI1sh+k3l4CX/Nh/OJfCY/iS/iv+LX8tv4g/xJ/jf+H/4J/0bXYVWSoKDtAlgDpnSR7rsV9Pz9NaxbtR16r7S4OIi5L6PufHrQNjwoRa8+ew7akGdO8q1wuSXi4YMJFt0Fte8DDq9KPFxagoGCgAvbam9PLTH35VtoIIt+f4BGuqN9tGhLY0WaAxsYzbP8Chxw8zX27V09qR3R96KqCiOE4hggJLDBnjd//NzujzeewaWlBE7Ar9vJZOkQ/ZVQ/3d5f6mUQzZ2r01LoU8TjMpgUDFEKqzz9nqLJ1kafr1LcYp2dTttcJBt8IWhD9davTnevZgA2+FCEXidJYBKcYUWFC+pHZI2aWE6B2PZKigsoFAKqioIKIQ1PyFRiv6yKn4whoU8yXKiciDCvzSftthgFZBo+Gkr7HVavXnvqQq7ALuATUDOgv5mF2DKiyYgm2b5uaal5t+zF35Q2CvO/SZFVlUNHgx650ocQxgGFxusA+tSrrAE4iEjWH+OBJoDs3LvIeexqR/F0Z2DY+Tt+4x3tbe2ewVSXipo/e1Uq3xkpJzke3qBoCjS09OdEfbh1CmZLQN0WoQQjmEIYThCGLq18Tf7JPZ8qK35QHF6S5Ceq9qV5J05We8LzMyuvsVJsB8q9GrvR8UitrWtkxCJxSKis63VBnthOT7Or/qo3fv55NmzrEer/cZZYfmcC+PgvBUpCPTjODgVioJA0yy/hGgcGdide29zCIZSfgDCMJRu+HQ6CEPbYEhd2y1APa211X6Fch+tFhqr7t7IHOA3vcZv/WjkyFdCSB4jKRcEA3q7OoWk++29l/bRo9fVddDTnRH64cGpU783gzUDwJfKLWNgbQshJbwN9/6MXfkzMn7I3gWvr5Z9b4VVzEybxTLxBtVjsjaW1q4qasRkbWyPF/cFkTO4tbWt0w2EUCQOgfMjOtuaG3i2p+Hv/drk6LHrV+40gftxVasd9k6LLiPGGqDmWLL3i8kr/v/zxTpWA4axNlgGe0sz1zyNFuxfknsaq0IYrOi9NX8Ivm0k8OvEu7sp1klJLBnytUicGEt1lxI9j05rpR3WycNiSe7zdm9RbmNncT/ocOKtrWKVE+nHjx6zZxEar3diKnHrlibshd6oGzqapZGSqC9GDCEMtZCoGdB/DKrhkEhkfumhftzoK4W8p0BcW9v7YVRCb82gyJQUCHOWIN0rJwoMdKJXumX4X391PrXBZShBnRVJsBrmwB7YUwIFX12Jv3eNHHmBfk9c5jmsgrBQNBT8gknMxsml0Jqa5+FX34mzkqY2L6mLl+LpbWsc0E5Ka2pUlqFLCJV1vX5e+7YN9M4Sc2vXh8d/KXbnsV7L+6G34HYjASPT+EqoVrrEAYk+QbK7L92lht9/L5ffvXqk1Nc0CDn7V1LeVT95uJe3tPrSpcFz7bCzLAnzw7t3+V/5/39gc5aY3zRVn//OYvt/iokI8sPvgcuFS3hT3zAJdxWPzl70KNkNdW9d8z6sBH04EmzN043XHFPwpsPkGjh2s6dfrQKWBCchV+MIzCubKW9HS8Q7vBRyH8KLc+7/7hziPzfnPzgjNtj//v1bbfr0AbEzwO32IIFIxquN1kfQ2e5OS4vXCNof/U9tH7ULNPFpcE2QukLT3PzulYx3W77lxXUOUd0R4rm8fevLnpCsZPgOzpQ13wmz9u3bTBuHA0xOzuXqwTltYJA2DQ3gXC0uG2yhVlTcj3v/0yq+KH96z/UrtsKWErROYoXvViynCiZGwgRjQjzg6OHCOGWe6qzppnl9SJgtHGpJTOx59LgO4/0HDpf/wAAl5+42BxvA4AwmDoRAyPlLKE9XbXW1ry/veXaN8jM3h1QwtrTGezzuUs7MPRPVtPDB/T52UM7LtcG3/ZVTrYcOXSfMw1NgBRwtlrhS+HGEf3vzhFF2sDsNLhcwnNIYhH+wnvG+qqyMiQnGruzRllewYDpsmh3W41EjPi3s7bkawxwkL6A/2OdsP8dB0vRv4GiC5VcFOiwD0y0MhnSJSX3J8eUNe5VoAs4Jv9lgPaSDwcm0+wVaAqNzt1HIAcMxjPjCIX3TFpdzrhZKHRbEearv3Kn2/De1bkuD3A0MzxNwHbJO37GuFkBjEjdVxSGaxKb4MYWHGBNvcp3ftPV5l2l4MqyF8vK4tdhwSL7yxr30LHxUjEqO9mJe80+S3Ip+kNwrkZh+DRxNsPzyobEYvyzHcZSrJY7pEkg5TkS525TWIHPfgX50b0tVZbAlbDxI/WS6X7VnNRicMQuLyORkUvNlGJoifeQs2VbzVM/wi/9ENCUg4Kl1ojQ8o5twQSZzkBprslhjQ07+rIEZvlTj1YvZjsITOnqaqcCcyYivQiGTMBFmNVP/v5N6DJ+vUEvFuZc4NP0i0XgAf/72ZYiIEQpYTu6jbm3x0EJWLCTgt9ffqMySp6R0hrS3t7GIdbpc4oDBwBXqMWL08xO1T5+HqPz2ZYiIFdJiuT4o6GVNOy1kRQLU1dgUFeWX1+Onyk0GOAe9e1f78r+IvWtp0X4USs8a9VgbZrVq3k24BSXG4JCyuqu9/rUJQ2L+VNuzO21DQx8+fFP9Bjin1O32UJxC+uj0/ECT+uTrxHvvvXKXkg8e/nOFlXb4vqxyozT1J9b+l23fvut/XgGTk3a53BJ/g2FYURKUobQU/zju9lFz4qJXtatfmIawLAfT7qLDHtBc4B6I44DIL0/UjxtjcOibQx1ikrIWc2iwiWcIYXNK9pih/do7R8bBIKfK7faCPXVovO+HRAZYOC5AjrldHBdTKp6QaQmYnDM+I6WPWqh4kQS74RZchQPYgjfvrVCBPgcrrHLiLpe7NwVWwnewufQtFeUPG2cwDAshXS2bx8x87sfkhkbAoGcEQwizwQVYtQ53CmUjDBpFaefh739eLNCB8z0jt8gPSmur2bxNfgY7O8ViCDpDtsqX22Y0tm2Xn8GleJNO11Tqu2m+/Ddv8vI2zh1itu8JDAgAk1O+eX7Qa+322g30E7QUfxYf/+zaxpiSjxjuoYBYE6poWt88UN60emUDvaU+9fU9jNp8KTXTU69YMe+LnpuCfBM+URJe/v2D8vdLT4Dhoebhww5F1CguFaXoeKjSnpFEsrK8BEyl6+9DKoUsss8Tf/a3ObC0BKnVy/Crm5MHnS+W6OhlPPs/7n+Tq5iJcpRvLbj9PCDy3f0wFdcLcCKZbJngWHnW2NfX43Wc93Yik4kXjWhcconow/NncjkNHw0NgSZpqdjtZtVqP3MYfluedZfW/J+dORUSwsHj8ZOMtEDVulw+0dG2UWbY7Az5uObAkmkSft2AEURl5buuHkQS8N/bGxys0rxWRMaSeRa5XL2IJH/66WZju1dAE/DTM2pUtOb17PQLgMZfLP6v/58RBbahs2korc4/WiRLDfAKV2dz+LR3dXe/+9BLcH5aQFPKdyuVHCNACplCQku+vLD3SalPU8MLfGobW1v/fdIhDBwqM7aJVUpGBUeYgqdmTbj3oGC51wsGYEBF0tkJLmLdrrDIfjHZMu42txSGoQWkj0JEvr19u1RSX8909SjW2zO9eEksehl32HClSiXPsZF9NOyDw4d5UY/6UgnTWoPSCiLDQFEpW1fXQcoDB8rJjrrSEubV78or0FkH6krZmzcbWHPag2pmG27mZLF2FmmqUK0GBd0oEEPMXMafJ8HYcDZ8stSpUcAzdD0eDfjf/Mu9v+vKe1CEG0pqqqo6GX0sqwyiripy/2xA+Qf6FRn9qLl0qUExYDYPUqK68dKil2e9TSheVhWiqDreVSrvOjDewla/PK0IZFRBgyuNbrVnzKN+bsvX3fwpnJt1yERUauMsH+FYuDZcal4rSt/Lh2bfbo7rOTQmaDDUt7vWqyehhuDx7PmuLtesf9RH0SuVXrPuVpT6RvT3X+zpM14igK+WxsCgQhClvmHAEEV7f3rilJ9OBG+vqzOyggpBm0scFkYiHVqMxMjXQckSPV09bpJ8+vRtZy9JU4TbHRSkLlW2QW3v7GR9Szod3VZaIke6Or2UiC3/5U5zN83gnq6urBH9VKqtff2SWG1jo3JQV6L10RgSHy+rXfR7TB1nYOj7RbnE9fZ0mo+rx9vT1OolJBoZMmp7RCIBBn8oHpVaW+JorJuSsaP9PT4tXd3tT1/1Mob+MoOoUWs4Er5Resx9ox4ko5TsnmdfM6EAfrp7PTheWfmusxtIisDc7uBg5QorSnNBwWb4Q+j2Sg7r7uwFmj558ub7Zg8l1IGfXZmZUfm62tcYDRD/vIUZnp6JkcyKysSAkymNOskCXZMQn/YQpD9uDUsZQFVCwIMmi8G3GIQZvyqsIj9LQADt4Lv3aevJ3KBvNI7XAXzc8twBvnoUf8zY/+4WV92AVhhAgDI8JIDWiTP2bz3pAmmeW26s4ZirHOFtXxnAclFxZ9UulgfCQBaS1Lu/oCQz8NbW8vUdrnyY23witshe4m7I4X26Oez5LYl5zEoynziQKbf2NmbfwfROtR7qLOB9J5HLHCRe54Ajo3novbPsKeFlTPLMseu2RK8sL6WbnXaXTd8z7AOoqzsINDgTCBYv4Ux8xQocmJB8cKgSAngt3ygVMdQ1FSPJiyouula1ErRK0laRSZUw6zoSMaVfDwF0p1SoCOikVQwUaVNxYOKdTfjUoZIgihcqBdLcVAVAx18qDXxOq0Jg4pjKgDlLVRZikqmKwJJAVQzhOlQJhLmhchBphyrFbJ4qI5pV5bFQqXJEmB90BQywzxyz5SnykQXyzDKdQ4Y5iiwwX6F55smzwMrpyz6QvBM3E9UUSywwmXYu1CwF1rumNka5djlpptuSDFJw4RaabUdGFqZaGOGJm1c9J6WbbqppFiRiV9k7o03z1qJ0108nb+unwx0v99YwAO7BGAfv67dsiBcbIMKZz9FemK44TDPcnelm5Sd2jnmmivCxVOmRuMO3xhp0J91iTaME4SL37u7ZMdAY6WwG8jSbn6zRzkyqPLDYp+bFtb1RtEhRoiwuSCGj+2JZ5pljhkIOvWCzMC3WnCiYZc0psue/Kkw1nXQWyjfLkcdChLQwC9MVXmPWmJCpCMrqPjDNXWx2Ee0/SO8A0z39dZhh2iy7w+lye7y+QnqLy0xKhienoKTiUxg1DW3RdPR8Gfgx8mcSIFCQYCElMOvDIlSYvsJFiGyQKNH6iSmZECdegv4GGGiQwRINYWUbqrthgOMFUaqtU3qPpFmz3kgbNm3ZtmPXnn0HDh05dtL4wFEMJ0iKZtgmcrxEKpMrlCq1RqvTG4wms8VqszucLrfH6/OjGE6QFM2wHC8QisQSqUyuUKrUGq1ObzCazBarze5wutwer8+/0D+vcFHhqRhYWNyTYEMbBIkYqcQ7LDqUqNEi3o4m/vKlPH87hRQmnARipBIPgkYruaCz6+uk83afXQU+4TFQI0WeORe69UP/x3flS0FIdjg4oLODycYt8qLsP3DUpaSHowVa2+GcIRkzzEtHnpy8WL3Mx7Zsz6WT86nAiAoJMhQZoEeFBgFJxlWKE04BCTJJBMEgSD7o4Fwmuc8BEjTIUKBCf7Oxfw4CMvQYkaC4WdX/jgYJAvqbi8nCmxPJN6o1TN9VWdxW98cM6xGhLa1Y0WSMD51i7gvhSxsA39755fubSNKcNm1H5VAwcywIm9IzBs9TBoqxxBF3kDQXeXXsriwf/62/LmBgLQKjBeXb3/V3faLIxOgF6S/sr3Uy6roHSQnw7PgozKEozC9kDjpJ2jdQaXRIOvHRmAPCQLcsjlZj/qQMeOtk6uoeJMVA9pweS/fpAkxIQ/dUK/djczUrWXmZHXbC/nThOuSBcqSP8aR1i6z5hdZFJ/eYHyK3cR3H/3+9E+XnLBGlW9GYNsgIpQmNaTPMBs5T5z5IipMaZC5/dZEUJzXA1vwLrzwQ6wEAAAA=) format("woff2-variations");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat Variable;font-style:normal;font-weight:100 900;src:url(/static/montserrat-latin-ext-wght-normal-82d636d9375dd92118fd22c818a99c24.woff2) format("woff2-variations");unicode-range:u+0100-02af,u+0304,u+0308,u+0329,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat Variable;font-style:normal;font-weight:100 900;src:url(/static/montserrat-latin-wght-normal-5028c63f6a70ab0cf7cba9015ae04154.woff2) format("woff2-variations");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}code[class*=language-],pre[class*=language-]{word-wrap:normal;background:none;color:#ccc;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;text-align:left;white-space:pre;word-break:normal;word-spacing:normal}pre[class*=language-]{margin:.5em 0;overflow:auto;padding:1em}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{border-radius:.3em;padding:.1em;white-space:normal}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#999}.token.punctuation{color:#ccc}.token.attr-name,.token.deleted,.token.namespace,.token.tag{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.function,.token.number{color:#f08d49}.token.class-name,.token.constant,.token.property,.token.symbol{color:#f8c555}.token.atrule,.token.builtin,.token.important,.token.keyword,.token.selector{color:#cc99cd}.token.attr-value,.token.char,.token.regex,.token.string,.token.variable{color:#7ec699}.token.entity,.token.operator,.token.url{color:#67cdcc}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}*{border:0;margin:0;padding:0}*,:after,:before{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}:active,:focus,a:active,a:focus{outline:none}aside,footer,header,nav{display:block}body,html{-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;-webkit-text-size-adjust:100%;font-size:100%;font-size:14px;line-height:1;min-height:100vh}button,input,textarea{font-family:inherit}input::-ms-clear{display:none}button{cursor:pointer}button::-moz-focus-inner{border:0;padding:0}a,a:hover,a:visited{text-decoration:none}ul li{list-style:none}img{vertical-align:top}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:400}*,.banner-title{font-family:Montserrat Variable,Helvetica,Arial,sans-serif}@media screen and (max-width:640px){div#hubspot-messages-iframe-container{display:none!important}}#hubspot-messages-iframe-container{z-index:200!important}#hs-banner-parent{--hs-banner-font-family:"Montserrat Variable",Helvetica,Arial,sans-serif!important;--hs-banner-inset:auto 0px 10px 10px!important;--hs-banner-translate-x:0!important}#hs-eu-cookie-settings-button{font-weight:400!important;text-decoration:none!important}#hs-eu-cookie-confirmation{max-width:calc(100% - 20px)!important}div.privacy-policy h1{font-size:1.875rem;font-weight:600;line-height:2.25rem;text-align:center;width:100%}div.privacy-policy h2{font-size:1.5rem;font-weight:600;line-height:2rem;padding-top:1rem}div.privacy-policy h3{font-size:1.25rem;font-weight:600;line-height:1.75rem;padding-top:1rem}div.privacy-policy h4{font-weight:600;padding-top:.5rem}div.privacy-policy ul li{list-style-position:inside;list-style-type:disc;padding-top:1rem}div.privacy-policy ul li>h3{display:inline;font-weight:500;padding-top:0}div.privacy-policy a{text-decoration-line:underline}div.single-post{font-size:1rem;line-height:1.5rem}@media (min-width:640px){div.single-post{font-size:1.125rem;line-height:1.75rem}}div.single-post :is(h3,h4){--tw-text-opacity:1;color:rgb(249 249 249/var(--tw-text-opacity));font-size:1.125rem;font-weight:700;line-height:1.75rem;margin-bottom:.625rem;margin-top:2rem}@media (min-width:640px){div.single-post :is(h3,h4){font-size:1.25rem;line-height:1.75rem}}div.single-post h4{margin-top:1rem}div.single-post p{margin-bottom:1rem}@media (min-width:640px){div.single-post p{margin-bottom:2rem}}div.single-post span.gatsby-resp-image-wrapper{border-radius:20px!important;margin-bottom:1rem!important;margin-left:auto!important;margin-right:auto!important;max-width:444px!important;width:100%!important}@media (min-width:640px){div.single-post span.gatsby-resp-image-wrapper{margin-bottom:1.25rem!important}}div.single-post img{border-radius:20px!important}div.single-post span.gatsby-resp-image-wrapper+em{display:block;font-size:.875rem;font-style:normal;line-height:1.25rem;text-align:center;width:100%}div.single-post :is(ul,ol){margin-bottom:1rem;margin-top:1rem}@media (min-width:640px){div.single-post :is(ul,ol){margin-bottom:2rem;margin-top:2rem}}div.single-post ul li{list-style-position:inside;list-style-type:disc}div.single-post ol li{list-style-position:inside;list-style-type:decimal}div.single-post pre{--tw-bg-opacity:1;background-color:rgb(61 61 61/var(--tw-bg-opacity));border-radius:20px;font-size:.875rem;line-height:1.25rem;margin-bottom:1rem;margin-top:1rem;padding:1rem;white-space:pre-wrap}@media (min-width:640px){div.single-post pre{font-size:1rem;line-height:1.5rem;margin-bottom:2rem;margin-top:2rem;padding:2rem}}div.single-post pre code{white-space:pre-wrap}div.service-preview{background:linear-gradient(#111 0 0) padding-box,linear-gradient(90deg,#f1f1f1 1 1) border-box}div.service-preview:hover{background:#111}div.service-preview p{padding-top:1.75rem}.gradient-border{-o-border-image:linear-gradient(90deg,#bdbdbd,#111) 30;border-image:linear-gradient(90deg,#bdbdbd,#111) 30}div.team-member:hover div.line{width:100%}div.applied-tech:hover div.line{height:100%}div.review-body p{padding-top:.5rem}div.review-body p:first-child{padding-top:0}div.workflow-step:nth-child(odd) div.cover{right:-.5rem}div.workflow-step:nth-child(2n) div.cover{left:-.5rem}div.why-us-card p{text-align:justify}div.why-us-card:hover div.line{height:100%}p.contact-form-description span{display:block;padding-bottom:.5rem;padding-top:.5rem} \ No newline at end of file diff --git a/webpack-runtime-8eccf7df369f009ba9d4.js b/webpack-runtime-9b69a8cbeaed830a2837.js similarity index 93% rename from webpack-runtime-8eccf7df369f009ba9d4.js rename to webpack-runtime-9b69a8cbeaed830a2837.js index 58791916..c8f93c26 100644 --- a/webpack-runtime-8eccf7df369f009ba9d4.js +++ b/webpack-runtime-9b69a8cbeaed830a2837.js @@ -1,2 +1,2 @@ -!function(){"use strict";var e,t,n,r,o,c={},a={};function f(e){var t=a[e];if(void 0!==t)return t.exports;var n=a[e]={exports:{}};return c[e](n,n.exports,f),n.exports}f.m=c,e=[],f.O=function(t,n,r,o){if(!n){var c=1/0;for(s=0;s=o)&&Object.keys(f.O).every((function(e){return f.O[e](n[i])}))?n.splice(i--,1):(a=!1,o0&&e[s-1][2]>o;s--)e[s]=e[s-1];e[s]=[n,r,o]},f.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(t,{a:t}),t},n=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},f.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var o=Object.create(null);f.r(o);var c={};t=t||[null,n({}),n([]),n(n)];for(var a=2&r&&e;"object"==typeof a&&!~t.indexOf(a);a=n(a))Object.getOwnPropertyNames(a).forEach((function(t){c[t]=function(){return e[t]}}));return c.default=function(){return e},f.d(o,c),o},f.d=function(e,t){for(var n in t)f.o(t,n)&&!f.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},f.f={},f.e=function(e){return Promise.all(Object.keys(f.f).reduce((function(t,n){return f.f[n](e,t),t}),[]))},f.u=function(e){return({147:"component---src-pages-templates-project-tsx",149:"component---src-pages-templates-policies-tsx",218:"component---src-pages-404-tsx",252:"d30a71578427adb006614dd8857449316a352827",354:"component---src-pages-templates-post-tsx",374:"1470453bba0c0cc23f8aa20c3cefd756f6b7fd4b",417:"component---src-pages-templates-services-tsx",548:"component---src-pages-templates-workflow-tsx",650:"component---src-pages-templates-projects-tsx",832:"component---src-pages-templates-index-tsx",926:"component---src-pages-templates-blog-tsx"}[e]||e)+"-"+{147:"9b1b9adbc9274b4f8970",149:"15f53bf827c36e52ae75",218:"8854ec07bcd813a2d5d9",252:"2d8abc9ca321acaca0df",354:"f7d7682c4496902d891d",374:"836ed7a6c9535bee39d1",417:"5c395c45f908b7df0b61",475:"3e46bce72021fe5f8d9d",548:"5b55b4b34202d84e478f",650:"55b0a27fe736ce512ff7",731:"fc2222e8bcbd3a323b37",832:"9eb91922ad7dfced24d1",843:"82fd7f798c0dd9a6f67b",926:"e632eeb611475b6922a9"}[e]+".js"},f.miniCssF=function(e){return"styles.c06ccc800b70845881cc.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,i;if(void 0!==n)for(var u=document.getElementsByTagName("script"),s=0;s=o)&&Object.keys(f.O).every((function(e){return f.O[e](n[i])}))?n.splice(i--,1):(a=!1,o0&&e[s-1][2]>o;s--)e[s]=e[s-1];e[s]=[n,r,o]},f.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(t,{a:t}),t},n=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},f.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var o=Object.create(null);f.r(o);var c={};t=t||[null,n({}),n([]),n(n)];for(var a=2&r&&e;"object"==typeof a&&!~t.indexOf(a);a=n(a))Object.getOwnPropertyNames(a).forEach((function(t){c[t]=function(){return e[t]}}));return c.default=function(){return e},f.d(o,c),o},f.d=function(e,t){for(var n in t)f.o(t,n)&&!f.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},f.f={},f.e=function(e){return Promise.all(Object.keys(f.f).reduce((function(t,n){return f.f[n](e,t),t}),[]))},f.u=function(e){return({147:"component---src-pages-templates-project-tsx",149:"component---src-pages-templates-policies-tsx",218:"component---src-pages-404-tsx",252:"d30a71578427adb006614dd8857449316a352827",354:"component---src-pages-templates-post-tsx",374:"1470453bba0c0cc23f8aa20c3cefd756f6b7fd4b",417:"component---src-pages-templates-services-tsx",548:"component---src-pages-templates-workflow-tsx",650:"component---src-pages-templates-projects-tsx",832:"component---src-pages-templates-index-tsx",926:"component---src-pages-templates-blog-tsx"}[e]||e)+"-"+{147:"ad10d952e1365a3c9e6c",149:"15f53bf827c36e52ae75",218:"8854ec07bcd813a2d5d9",252:"2d8abc9ca321acaca0df",354:"f7d7682c4496902d891d",374:"836ed7a6c9535bee39d1",417:"5c395c45f908b7df0b61",475:"3e46bce72021fe5f8d9d",548:"5b55b4b34202d84e478f",650:"a79fa89cdf29a69f7449",731:"fc2222e8bcbd3a323b37",832:"c3e907b240efcbd2d914",843:"82fd7f798c0dd9a6f67b",926:"e632eeb611475b6922a9"}[e]+".js"},f.miniCssF=function(e){return"styles.aace5082bacd377d082f.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,i;if(void 0!==n)for(var u=document.getElementsByTagName("script"),s=0;s 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"code-cave:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"\" + ({\"147\":\"component---src-pages-templates-project-tsx\",\"149\":\"component---src-pages-templates-policies-tsx\",\"218\":\"component---src-pages-404-tsx\",\"252\":\"d30a71578427adb006614dd8857449316a352827\",\"354\":\"component---src-pages-templates-post-tsx\",\"374\":\"1470453bba0c0cc23f8aa20c3cefd756f6b7fd4b\",\"417\":\"component---src-pages-templates-services-tsx\",\"548\":\"component---src-pages-templates-workflow-tsx\",\"650\":\"component---src-pages-templates-projects-tsx\",\"832\":\"component---src-pages-templates-index-tsx\",\"926\":\"component---src-pages-templates-blog-tsx\"}[chunkId] || chunkId) + \"-\" + {\"147\":\"9b1b9adbc9274b4f8970\",\"149\":\"15f53bf827c36e52ae75\",\"218\":\"8854ec07bcd813a2d5d9\",\"252\":\"2d8abc9ca321acaca0df\",\"354\":\"f7d7682c4496902d891d\",\"374\":\"836ed7a6c9535bee39d1\",\"417\":\"5c395c45f908b7df0b61\",\"475\":\"3e46bce72021fe5f8d9d\",\"548\":\"5b55b4b34202d84e478f\",\"650\":\"55b0a27fe736ce512ff7\",\"731\":\"fc2222e8bcbd3a323b37\",\"832\":\"9eb91922ad7dfced24d1\",\"843\":\"82fd7f798c0dd9a6f67b\",\"926\":\"e632eeb611475b6922a9\"}[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\" + \".\" + \"c06ccc800b70845881cc\" + \".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-9b69a8cbeaed830a2837.js","mappings":"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","sources":["webpack://code-cave/webpack/runtime/chunk loaded","webpack://code-cave/webpack/runtime/create fake namespace object","webpack://code-cave/webpack/runtime/load script","webpack://code-cave/webpack/bootstrap","webpack://code-cave/webpack/runtime/compat get default export","webpack://code-cave/webpack/runtime/define property getters","webpack://code-cave/webpack/runtime/ensure chunk","webpack://code-cave/webpack/runtime/get javascript chunk filename","webpack://code-cave/webpack/runtime/get mini-css chunk filename","webpack://code-cave/webpack/runtime/global","webpack://code-cave/webpack/runtime/hasOwnProperty shorthand","webpack://code-cave/webpack/runtime/make namespace object","webpack://code-cave/webpack/runtime/publicPath","webpack://code-cave/webpack/runtime/jsonp chunk loading"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"code-cave:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"\" + ({\"147\":\"component---src-pages-templates-project-tsx\",\"149\":\"component---src-pages-templates-policies-tsx\",\"218\":\"component---src-pages-404-tsx\",\"252\":\"d30a71578427adb006614dd8857449316a352827\",\"354\":\"component---src-pages-templates-post-tsx\",\"374\":\"1470453bba0c0cc23f8aa20c3cefd756f6b7fd4b\",\"417\":\"component---src-pages-templates-services-tsx\",\"548\":\"component---src-pages-templates-workflow-tsx\",\"650\":\"component---src-pages-templates-projects-tsx\",\"832\":\"component---src-pages-templates-index-tsx\",\"926\":\"component---src-pages-templates-blog-tsx\"}[chunkId] || chunkId) + \"-\" + {\"147\":\"ad10d952e1365a3c9e6c\",\"149\":\"15f53bf827c36e52ae75\",\"218\":\"8854ec07bcd813a2d5d9\",\"252\":\"2d8abc9ca321acaca0df\",\"354\":\"f7d7682c4496902d891d\",\"374\":\"836ed7a6c9535bee39d1\",\"417\":\"5c395c45f908b7df0b61\",\"475\":\"3e46bce72021fe5f8d9d\",\"548\":\"5b55b4b34202d84e478f\",\"650\":\"a79fa89cdf29a69f7449\",\"731\":\"fc2222e8bcbd3a323b37\",\"832\":\"c3e907b240efcbd2d914\",\"843\":\"82fd7f798c0dd9a6f67b\",\"926\":\"e632eeb611475b6922a9\"}[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\" + \".\" + \"aace5082bacd377d082f\" + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t658: 0,\n\t532: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(!/^(532|658)$/.test(chunkId)) {\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkcode_cave\"] = self[\"webpackChunkcode_cave\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));"],"names":["deferred","leafPrototypes","getProto","inProgress","dataWebpackPrefix","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","m","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","Object","keys","every","key","splice","r","n","getter","__esModule","d","a","getPrototypeOf","obj","__proto__","t","value","mode","this","then","ns","create","def","current","indexOf","getOwnPropertyNames","forEach","definition","o","defineProperty","enumerable","get","f","e","chunkId","Promise","all","reduce","promises","u","miniCssF","g","globalThis","Function","window","prop","prototype","hasOwnProperty","call","l","url","done","push","script","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","setTimeout","bind","type","target","head","appendChild","Symbol","toStringTag","p","b","baseURI","self","location","href","installedChunks","installedChunkData","test","promise","resolve","reject","error","Error","errorType","realSrc","message","name","request","webpackJsonpCallback","parentChunkLoadingFunction","data","moreModules","runtime","some","id","chunkLoadingGlobal"],"sourceRoot":""} \ No newline at end of file diff --git a/webpack.stats.json b/webpack.stats.json index 2c3ee06c..e7b2cbff 100644 --- a/webpack.stats.json +++ b/webpack.stats.json @@ -1 +1 @@ -{"name":"build-javascript","namedChunkGroups":{"app":{"name":"app","assets":[{"name":"webpack-runtime-8eccf7df369f009ba9d4.js","size":4578},{"name":"styles.c06ccc800b70845881cc.css","size":49417},{"name":"framework-e4f3e98283dd6d5d8e77.js","size":140759},{"name":"app-fb4af62ff471c4bd5365.js","size":90723}],"filteredAssets":0,"assetsSize":285477,"filteredAuxiliaryAssets":17,"auxiliaryAssetsSize":1192483},"component---src-pages-404-tsx":{"name":"component---src-pages-404-tsx","assets":[{"name":"component---src-pages-404-tsx-8854ec07bcd813a2d5d9.js","size":762}],"filteredAssets":0,"assetsSize":762,"filteredAuxiliaryAssets":1,"auxiliaryAssetsSize":1887},"component---src-pages-templates-blog-tsx":{"name":"component---src-pages-templates-blog-tsx","assets":[{"name":"d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","size":10656},{"name":"component---src-pages-templates-blog-tsx-e632eeb611475b6922a9.js","size":9463}],"filteredAssets":0,"assetsSize":20119,"filteredAuxiliaryAssets":2,"auxiliaryAssetsSize":95370},"component---src-pages-templates-index-tsx":{"name":"component---src-pages-templates-index-tsx","assets":[{"name":"styles.c06ccc800b70845881cc.css","size":49417},{"name":"d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","size":10656},{"name":"1470453bba0c0cc23f8aa20c3cefd756f6b7fd4b-836ed7a6c9535bee39d1.js","size":18634},{"name":"component---src-pages-templates-index-tsx-9eb91922ad7dfced24d1.js","size":24740}],"filteredAssets":0,"assetsSize":103447,"filteredAuxiliaryAssets":17,"auxiliaryAssetsSize":730567},"component---src-pages-templates-policies-tsx":{"name":"component---src-pages-templates-policies-tsx","assets":[{"name":"component---src-pages-templates-policies-tsx-15f53bf827c36e52ae75.js","size":835}],"filteredAssets":0,"assetsSize":835,"filteredAuxiliaryAssets":1,"auxiliaryAssetsSize":2102},"component---src-pages-templates-post-tsx":{"name":"component---src-pages-templates-post-tsx","assets":[{"name":"d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","size":10656},{"name":"component---src-pages-templates-post-tsx-f7d7682c4496902d891d.js","size":6709}],"filteredAssets":0,"assetsSize":17365,"filteredAuxiliaryAssets":2,"auxiliaryAssetsSize":85994},"component---src-pages-templates-project-tsx":{"name":"component---src-pages-templates-project-tsx","assets":[{"name":"d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","size":10656},{"name":"1470453bba0c0cc23f8aa20c3cefd756f6b7fd4b-836ed7a6c9535bee39d1.js","size":18634},{"name":"component---src-pages-templates-project-tsx-9b1b9adbc9274b4f8970.js","size":6464}],"filteredAssets":0,"assetsSize":35754,"filteredAuxiliaryAssets":3,"auxiliaryAssetsSize":171261},"component---src-pages-templates-projects-tsx":{"name":"component---src-pages-templates-projects-tsx","assets":[{"name":"d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","size":10656},{"name":"component---src-pages-templates-projects-tsx-55b0a27fe736ce512ff7.js","size":3754}],"filteredAssets":0,"assetsSize":14410,"filteredAuxiliaryAssets":2,"auxiliaryAssetsSize":80374},"component---src-pages-templates-services-tsx":{"name":"component---src-pages-templates-services-tsx","assets":[{"name":"d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","size":10656},{"name":"component---src-pages-templates-services-tsx-5c395c45f908b7df0b61.js","size":16033}],"filteredAssets":0,"assetsSize":26689,"filteredAuxiliaryAssets":2,"auxiliaryAssetsSize":107900},"component---src-pages-templates-workflow-tsx":{"name":"component---src-pages-templates-workflow-tsx","assets":[{"name":"d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","size":10656},{"name":"component---src-pages-templates-workflow-tsx-5b55b4b34202d84e478f.js","size":17806}],"filteredAssets":0,"assetsSize":28462,"filteredAuxiliaryAssets":2,"auxiliaryAssetsSize":115683}},"assetsByChunkName":{"app":["webpack-runtime-8eccf7df369f009ba9d4.js","styles.c06ccc800b70845881cc.css","framework-e4f3e98283dd6d5d8e77.js","app-fb4af62ff471c4bd5365.js"],"component---src-pages-404-tsx":["component---src-pages-404-tsx-8854ec07bcd813a2d5d9.js"],"component---src-pages-templates-blog-tsx":["d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","component---src-pages-templates-blog-tsx-e632eeb611475b6922a9.js"],"component---src-pages-templates-index-tsx":["styles.c06ccc800b70845881cc.css","d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","1470453bba0c0cc23f8aa20c3cefd756f6b7fd4b-836ed7a6c9535bee39d1.js","component---src-pages-templates-index-tsx-9eb91922ad7dfced24d1.js"],"component---src-pages-templates-policies-tsx":["component---src-pages-templates-policies-tsx-15f53bf827c36e52ae75.js"],"component---src-pages-templates-post-tsx":["d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","component---src-pages-templates-post-tsx-f7d7682c4496902d891d.js"],"component---src-pages-templates-project-tsx":["d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","1470453bba0c0cc23f8aa20c3cefd756f6b7fd4b-836ed7a6c9535bee39d1.js","component---src-pages-templates-project-tsx-9b1b9adbc9274b4f8970.js"],"component---src-pages-templates-projects-tsx":["d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","component---src-pages-templates-projects-tsx-55b0a27fe736ce512ff7.js"],"component---src-pages-templates-services-tsx":["d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","component---src-pages-templates-services-tsx-5c395c45f908b7df0b61.js"],"component---src-pages-templates-workflow-tsx":["d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","component---src-pages-templates-workflow-tsx-5b55b4b34202d84e478f.js"]},"childAssetsByChunkName":{}} \ No newline at end of file +{"name":"build-javascript","namedChunkGroups":{"app":{"name":"app","assets":[{"name":"webpack-runtime-9b69a8cbeaed830a2837.js","size":4578},{"name":"styles.aace5082bacd377d082f.css","size":50676},{"name":"framework-e4f3e98283dd6d5d8e77.js","size":140759},{"name":"app-fb4af62ff471c4bd5365.js","size":90723}],"filteredAssets":0,"assetsSize":286736,"filteredAuxiliaryAssets":17,"auxiliaryAssetsSize":1192483},"component---src-pages-404-tsx":{"name":"component---src-pages-404-tsx","assets":[{"name":"component---src-pages-404-tsx-8854ec07bcd813a2d5d9.js","size":762}],"filteredAssets":0,"assetsSize":762,"filteredAuxiliaryAssets":1,"auxiliaryAssetsSize":1887},"component---src-pages-templates-blog-tsx":{"name":"component---src-pages-templates-blog-tsx","assets":[{"name":"d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","size":10656},{"name":"component---src-pages-templates-blog-tsx-e632eeb611475b6922a9.js","size":9463}],"filteredAssets":0,"assetsSize":20119,"filteredAuxiliaryAssets":2,"auxiliaryAssetsSize":95370},"component---src-pages-templates-index-tsx":{"name":"component---src-pages-templates-index-tsx","assets":[{"name":"styles.aace5082bacd377d082f.css","size":50676},{"name":"d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","size":10656},{"name":"1470453bba0c0cc23f8aa20c3cefd756f6b7fd4b-836ed7a6c9535bee39d1.js","size":18634},{"name":"component---src-pages-templates-index-tsx-c3e907b240efcbd2d914.js","size":25185}],"filteredAssets":0,"assetsSize":105151,"filteredAuxiliaryAssets":17,"auxiliaryAssetsSize":731269},"component---src-pages-templates-policies-tsx":{"name":"component---src-pages-templates-policies-tsx","assets":[{"name":"component---src-pages-templates-policies-tsx-15f53bf827c36e52ae75.js","size":835}],"filteredAssets":0,"assetsSize":835,"filteredAuxiliaryAssets":1,"auxiliaryAssetsSize":2102},"component---src-pages-templates-post-tsx":{"name":"component---src-pages-templates-post-tsx","assets":[{"name":"d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","size":10656},{"name":"component---src-pages-templates-post-tsx-f7d7682c4496902d891d.js","size":6709}],"filteredAssets":0,"assetsSize":17365,"filteredAuxiliaryAssets":2,"auxiliaryAssetsSize":85994},"component---src-pages-templates-project-tsx":{"name":"component---src-pages-templates-project-tsx","assets":[{"name":"d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","size":10656},{"name":"1470453bba0c0cc23f8aa20c3cefd756f6b7fd4b-836ed7a6c9535bee39d1.js","size":18634},{"name":"component---src-pages-templates-project-tsx-ad10d952e1365a3c9e6c.js","size":6768}],"filteredAssets":0,"assetsSize":36058,"filteredAuxiliaryAssets":3,"auxiliaryAssetsSize":171565},"component---src-pages-templates-projects-tsx":{"name":"component---src-pages-templates-projects-tsx","assets":[{"name":"d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","size":10656},{"name":"component---src-pages-templates-projects-tsx-a79fa89cdf29a69f7449.js","size":4199}],"filteredAssets":0,"assetsSize":14855,"filteredAuxiliaryAssets":2,"auxiliaryAssetsSize":81096},"component---src-pages-templates-services-tsx":{"name":"component---src-pages-templates-services-tsx","assets":[{"name":"d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","size":10656},{"name":"component---src-pages-templates-services-tsx-5c395c45f908b7df0b61.js","size":16033}],"filteredAssets":0,"assetsSize":26689,"filteredAuxiliaryAssets":2,"auxiliaryAssetsSize":107900},"component---src-pages-templates-workflow-tsx":{"name":"component---src-pages-templates-workflow-tsx","assets":[{"name":"d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","size":10656},{"name":"component---src-pages-templates-workflow-tsx-5b55b4b34202d84e478f.js","size":17806}],"filteredAssets":0,"assetsSize":28462,"filteredAuxiliaryAssets":2,"auxiliaryAssetsSize":115683}},"assetsByChunkName":{"app":["webpack-runtime-9b69a8cbeaed830a2837.js","styles.aace5082bacd377d082f.css","framework-e4f3e98283dd6d5d8e77.js","app-fb4af62ff471c4bd5365.js"],"component---src-pages-404-tsx":["component---src-pages-404-tsx-8854ec07bcd813a2d5d9.js"],"component---src-pages-templates-blog-tsx":["d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","component---src-pages-templates-blog-tsx-e632eeb611475b6922a9.js"],"component---src-pages-templates-index-tsx":["styles.aace5082bacd377d082f.css","d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","1470453bba0c0cc23f8aa20c3cefd756f6b7fd4b-836ed7a6c9535bee39d1.js","component---src-pages-templates-index-tsx-c3e907b240efcbd2d914.js"],"component---src-pages-templates-policies-tsx":["component---src-pages-templates-policies-tsx-15f53bf827c36e52ae75.js"],"component---src-pages-templates-post-tsx":["d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","component---src-pages-templates-post-tsx-f7d7682c4496902d891d.js"],"component---src-pages-templates-project-tsx":["d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","1470453bba0c0cc23f8aa20c3cefd756f6b7fd4b-836ed7a6c9535bee39d1.js","component---src-pages-templates-project-tsx-ad10d952e1365a3c9e6c.js"],"component---src-pages-templates-projects-tsx":["d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","component---src-pages-templates-projects-tsx-a79fa89cdf29a69f7449.js"],"component---src-pages-templates-services-tsx":["d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","component---src-pages-templates-services-tsx-5c395c45f908b7df0b61.js"],"component---src-pages-templates-workflow-tsx":["d30a71578427adb006614dd8857449316a352827-2d8abc9ca321acaca0df.js","component---src-pages-templates-workflow-tsx-5b55b4b34202d84e478f.js"]},"childAssetsByChunkName":{}} \ No newline at end of file diff --git a/workflow/index.html b/workflow/index.html index 8338a48e..514b5463 100644 --- a/workflow/index.html +++ b/workflow/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file