V pre0.3_10

main
Саске Учиха 3 years ago
parent 0fa9f9287c
commit 87d56f24a6

@ -31,7 +31,13 @@ Talent Team - разработка корпоративных мероприят
- В разделе бизнес игры кнопка "Заказать игру", теперь открывает модальное окно с формой связи.
- Теперь при нажатии на благодарственные письма они открываются в модальном окне.
- Оптимизированы все изображения на главной странице.
- В блоках с изображениями (Фассилитации, Тимбилдинг) добавленн разделительные рамки у изображений.
- В блоках с изображениями (Фассилитации, Тимбилдинг) добавлены разделительные рамки у изображений.
- Был произведен анализ, а также оптимизация сайта при помощи (gatsby-plugin-webpack-bundle-analyser-v2).
- Добавлена sitemap для сайта.
- Добавлены и настроены метатеги.
- Добавлена OpenGraph разметка.
- Добавлена микроразметка Schema.org.
- Добавлено анимированное появление элементов на странице.
#### V 0.2
- Добавлен блоки "Связаться с нами" и Футер сайта

@ -12,12 +12,18 @@ module.exports = {
title: `Talent Team`,
description: `Развиваем и создаем команды. Профессиональная команда поразработке и проведению корпоративных мероприятий: бизнес-игры,тимбилдинги, фамилитации, бизнес-тренинги. Руководитель компании Алёна Крюкова сертиыицированный бизнес-тренер, фасилитатор.`,
author: `@Alexandr Beknazaryan`,
siteUrl: `https://gatsbystarterdefaultsource.gatsbyjs.io/`,
siteUrl: `https://talentteam.beknazaryanstudio.ru`,
},
plugins: [
"gatsby-plugin-webpack-bundle-analyser-v2",
{
resolve: "gatsby-plugin-webpack-bundle-analyser-v2",
options: {
devMode: true,
},
},
'gatsby-plugin-postcss',
`gatsby-plugin-image`,
`gatsby-plugin-sitemap`,
{
resolve: `gatsby-source-filesystem`,
options: {

636
package-lock.json generated

@ -11,12 +11,14 @@
"dependencies": {
"@headlessui/react": "^1.7.12",
"@heroicons/react": "^2.0.16",
"@react-icons/all-files": "https://github.com/react-icons/react-icons/releases/download/v4.10.1/react-icons-all-files-4.10.1.tgz",
"body-scroll-lock": "^4.0.0-beta.0",
"framer-motion": "^10.12.16",
"gatsby": "^5.7.0",
"gatsby-plugin-image": "^3.7.0",
"gatsby-plugin-manifest": "^5.7.0",
"gatsby-plugin-sharp": "^5.7.0",
"gatsby-plugin-sitemap": "^6.11.0",
"gatsby-source-filesystem": "^5.7.0",
"gatsby-transformer-sharp": "^5.7.0",
"react": "^18.2.0",
@ -24,6 +26,7 @@
"react-hook-form": "^7.45.0",
"react-icons": "^4.7.1",
"react-input-mask": "^2.0.4",
"react-responsive": "^9.0.2",
"react-scroll": "^1.8.9",
"react-type-animation": "^3.0.1",
"swiper": "^9.3.2",
@ -100,20 +103,20 @@
}
},
"node_modules/@babel/core": {
"version": "7.20.12",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz",
"integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==",
"version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.5.tgz",
"integrity": "sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg==",
"dependencies": {
"@ampproject/remapping": "^2.1.0",
"@babel/code-frame": "^7.18.6",
"@babel/generator": "^7.20.7",
"@babel/helper-compilation-targets": "^7.20.7",
"@babel/helper-module-transforms": "^7.20.11",
"@babel/helpers": "^7.20.7",
"@babel/parser": "^7.20.7",
"@babel/template": "^7.20.7",
"@babel/traverse": "^7.20.12",
"@babel/types": "^7.20.7",
"@ampproject/remapping": "^2.2.0",
"@babel/code-frame": "^7.22.5",
"@babel/generator": "^7.22.5",
"@babel/helper-compilation-targets": "^7.22.5",
"@babel/helper-module-transforms": "^7.22.5",
"@babel/helpers": "^7.22.5",
"@babel/parser": "^7.22.5",
"@babel/template": "^7.22.5",
"@babel/traverse": "^7.22.5",
"@babel/types": "^7.22.5",
"convert-source-map": "^1.7.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.2",
@ -158,9 +161,9 @@
}
},
"node_modules/@babel/eslint-parser": {
"version": "7.19.1",
"resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.19.1.tgz",
"integrity": "sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==",
"version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.22.5.tgz",
"integrity": "sha512-C69RWYNYtrgIRE5CmTd77ZiLDXqgBipahJc/jHP3sLcAGj6AJzxNIuKNpVnICqbyK7X3pFUfEvL++rvtbQpZkQ==",
"dependencies": {
"@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1",
"eslint-visitor-keys": "^2.1.0",
@ -564,13 +567,13 @@
}
},
"node_modules/@babel/helpers": {
"version": "7.20.7",
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.7.tgz",
"integrity": "sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA==",
"version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.5.tgz",
"integrity": "sha512-pSXRmfE1vzcUIDFQcSGA5Mr+GxBV9oiRKDuDxXvWQQBCh8HoIjs/2DlDB7H8smac1IVrB9/xdXj2N3Wol9Cr+Q==",
"dependencies": {
"@babel/template": "^7.20.7",
"@babel/traverse": "^7.20.7",
"@babel/types": "^7.20.7"
"@babel/template": "^7.22.5",
"@babel/traverse": "^7.22.5",
"@babel/types": "^7.22.5"
},
"engines": {
"node": ">=6.9.0"
@ -3844,6 +3847,15 @@
"integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==",
"dev": true
},
"node_modules/@react-icons/all-files": {
"version": "4.10.1",
"resolved": "https://github.com/react-icons/react-icons/releases/download/v4.10.1/react-icons-all-files-4.10.1.tgz",
"integrity": "sha512-jm/9akpfUQRYke8YArGwnoTTTcsCNFjzXfC9rUwrtnEDrV3EOXYOF+R5sFrIgHPn+DMp5nEWLlPV4fmnLCEpMQ==",
"license": "MIT",
"peerDependencies": {
"react": "*"
}
},
"node_modules/@sideway/address": {
"version": "4.1.4",
"resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz",
@ -4149,6 +4161,14 @@
"@types/node": "*"
}
},
"node_modules/@types/sax": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.4.tgz",
"integrity": "sha512-pSAff4IAxJjfAXUG6tFkO7dsSbTmf8CtUpfhhZ5VhkRpC4628tJhh3+V6H1E+/Gs9piSzYKT5yzHO5M4GG9jkw==",
"dependencies": {
"@types/node": "*"
}
},
"node_modules/@types/scheduler": {
"version": "0.16.3",
"resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz",
@ -4776,8 +4796,7 @@
"node_modules/arg": {
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
"integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
"dev": true
"integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="
},
"node_modules/argparse": {
"version": "1.0.10",
@ -6346,6 +6365,11 @@
"webpack": "^4.27.0 || ^5.0.0"
}
},
"node_modules/css-mediaquery": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/css-mediaquery/-/css-mediaquery-0.1.2.tgz",
"integrity": "sha512-COtn4EROW5dBGlE/4PiKnh6rZpAPxDeFLaEEwt4i10jpDMFt2EhQGS79QmmrO+iKCHv0PU/HrOWEhijFd1x99Q=="
},
"node_modules/css-minimizer-webpack-plugin": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-2.0.0.tgz",
@ -8985,22 +9009,22 @@
}
},
"node_modules/gatsby-plugin-image": {
"version": "3.7.0",
"resolved": "https://registry.npmjs.org/gatsby-plugin-image/-/gatsby-plugin-image-3.7.0.tgz",
"integrity": "sha512-1KhYlia5DjCMqCdapaAwKzlIr0HkJDoV8I7s80UJNUOcBCKi0nCvbDrSwKHJShtH90+ELxbRRywHW8MOVztIew==",
"version": "3.11.0",
"resolved": "https://registry.npmjs.org/gatsby-plugin-image/-/gatsby-plugin-image-3.11.0.tgz",
"integrity": "sha512-hQ3MjE9v5Y84f/45wXB7D5NthO/3lgwnHzy1mFAz0Md3e1CxgV1lvKjVwY5MvI40l7Tlk4Bkx39p6Qt/0GAcEg==",
"dependencies": {
"@babel/code-frame": "^7.18.6",
"@babel/parser": "^7.20.13",
"@babel/runtime": "^7.20.13",
"@babel/traverse": "^7.20.13",
"babel-jsx-utils": "^1.1.0",
"babel-plugin-remove-graphql-queries": "^5.7.0",
"babel-plugin-remove-graphql-queries": "^5.11.0",
"camelcase": "^6.3.0",
"chokidar": "^3.5.3",
"common-tags": "^1.8.2",
"fs-extra": "^11.1.0",
"gatsby-core-utils": "^4.7.0",
"gatsby-plugin-utils": "^4.7.0",
"fs-extra": "^11.1.1",
"gatsby-core-utils": "^4.11.0",
"gatsby-plugin-utils": "^4.11.0",
"objectFitPolyfill": "^2.3.5",
"prop-types": "^15.8.1"
},
@ -9022,15 +9046,15 @@
}
},
"node_modules/gatsby-plugin-manifest": {
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/gatsby-plugin-manifest/-/gatsby-plugin-manifest-5.7.0.tgz",
"integrity": "sha512-UiMKCqIOLUFvjJsny0wOMCQWs/Wx0BXmBTQ7Ck1HJsgvq4N3yKTlwAlgu1+eV/ExcpESKc6bncKZFUibwnE/QA==",
"version": "5.11.0",
"resolved": "https://registry.npmjs.org/gatsby-plugin-manifest/-/gatsby-plugin-manifest-5.11.0.tgz",
"integrity": "sha512-f1ViusTLF3K4fNvn1vIKZwUeP1Bl9ercrhQBe7rBnu9Cl7EWYskH0MSXJfxev29kD7Ag+FTvC2MPObDvi3LFhw==",
"dependencies": {
"@babel/runtime": "^7.20.13",
"gatsby-core-utils": "^4.7.0",
"gatsby-plugin-utils": "^4.7.0",
"semver": "^7.3.8",
"sharp": "^0.31.3"
"gatsby-core-utils": "^4.11.0",
"gatsby-plugin-utils": "^4.11.0",
"semver": "^7.5.1",
"sharp": "^0.32.1"
},
"engines": {
"node": ">=18.0.0"
@ -9065,13 +9089,13 @@
}
},
"node_modules/gatsby-plugin-postcss": {
"version": "6.7.0",
"resolved": "https://registry.npmjs.org/gatsby-plugin-postcss/-/gatsby-plugin-postcss-6.7.0.tgz",
"integrity": "sha512-qJ9QF+0GtCO/I2hqpGV2OKTw6i9MF+7B+JMA4zxkfrzsLT9VF28OtQDzjksb2OAGqgdvY157aolOQd/iLMB05w==",
"version": "6.11.0",
"resolved": "https://registry.npmjs.org/gatsby-plugin-postcss/-/gatsby-plugin-postcss-6.11.0.tgz",
"integrity": "sha512-/gwAOPxiYPVVPmBwnkpD4Wlg+7svS0b17A6g0ajHfV46N0RQzvP25RRpkMskmC9NbyaxA/wHrASyF+Uv5i0fNQ==",
"dev": true,
"dependencies": {
"@babel/runtime": "^7.20.13",
"postcss-loader": "^7.0.2"
"postcss-loader": "^7.3.2"
},
"engines": {
"node": ">=18.0.0"
@ -9081,14 +9105,50 @@
"postcss": "^8.0.5"
}
},
"node_modules/gatsby-plugin-postcss/node_modules/argparse": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
"dev": true
},
"node_modules/gatsby-plugin-postcss/node_modules/cosmiconfig": {
"version": "8.2.0",
"resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.2.0.tgz",
"integrity": "sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==",
"dev": true,
"dependencies": {
"import-fresh": "^3.2.1",
"js-yaml": "^4.1.0",
"parse-json": "^5.0.0",
"path-type": "^4.0.0"
},
"engines": {
"node": ">=14"
},
"funding": {
"url": "https://github.com/sponsors/d-fischer"
}
},
"node_modules/gatsby-plugin-postcss/node_modules/js-yaml": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"dev": true,
"dependencies": {
"argparse": "^2.0.1"
},
"bin": {
"js-yaml": "bin/js-yaml.js"
}
},
"node_modules/gatsby-plugin-postcss/node_modules/postcss-loader": {
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.0.2.tgz",
"integrity": "sha512-fUJzV/QH7NXUAqV8dWJ9Lg4aTkDCezpTS5HgJ2DvqznexTbSTxgi/dTECvTZ15BwKTtk8G/bqI/QTu2HPd3ZCg==",
"version": "7.3.3",
"resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.3.tgz",
"integrity": "sha512-YgO/yhtevGO/vJePCQmTxiaEwER94LABZN0ZMT4A0vsak9TpO+RvKRs7EmJ8peIlB9xfXCsS7M8LjqncsUZ5HA==",
"dev": true,
"dependencies": {
"cosmiconfig": "^7.0.0",
"klona": "^2.0.5",
"cosmiconfig": "^8.2.0",
"jiti": "^1.18.2",
"semver": "^7.3.8"
},
"engines": {
@ -9149,44 +9209,28 @@
}
}
},
"node_modules/gatsby-plugin-sharp/node_modules/detect-libc": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz",
"integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==",
"engines": {
"node": ">=8"
}
},
"node_modules/gatsby-plugin-sharp/node_modules/ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"node_modules/gatsby-plugin-sharp/node_modules/node-addon-api": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz",
"integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA=="
},
"node_modules/gatsby-plugin-sharp/node_modules/sharp": {
"version": "0.32.1",
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.1.tgz",
"integrity": "sha512-kQTFtj7ldpUqSe8kDxoGLZc1rnMFU0AO2pqbX6pLy3b7Oj8ivJIdoKNwxHVQG2HN6XpHPJqCSM2nsma2gOXvOg==",
"hasInstallScript": true,
"node_modules/gatsby-plugin-sitemap": {
"version": "6.11.0",
"resolved": "https://registry.npmjs.org/gatsby-plugin-sitemap/-/gatsby-plugin-sitemap-6.11.0.tgz",
"integrity": "sha512-YpCnENEsmqcQ6s7OXKvj402i7ODHpmr4sNXxIf2ecT7EpL9JiRhmCwYsg0WGaAEC+QG1BggFuMDC9rAqoRcYng==",
"dependencies": {
"color": "^4.2.3",
"detect-libc": "^2.0.1",
"node-addon-api": "^6.1.0",
"prebuild-install": "^7.1.1",
"semver": "^7.5.0",
"simple-get": "^4.0.1",
"tar-fs": "^2.1.1",
"tunnel-agent": "^0.6.0"
"@babel/runtime": "^7.20.13",
"common-tags": "^1.8.2",
"minimatch": "^3.1.2",
"sitemap": "^7.1.1"
},
"engines": {
"node": ">=14.15.0"
"node": ">=18.0.0"
},
"funding": {
"url": "https://opencollective.com/libvips"
"peerDependencies": {
"gatsby": "^5.0.0-next",
"react": "^18.0.0 || ^0.0.0",
"react-dom": "^18.0.0 || ^0.0.0"
}
},
"node_modules/gatsby-plugin-typescript": {
@ -9297,55 +9341,20 @@
"node": ">=18.0.0"
}
},
"node_modules/gatsby-sharp/node_modules/detect-libc": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz",
"integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==",
"engines": {
"node": ">=8"
}
},
"node_modules/gatsby-sharp/node_modules/node-addon-api": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz",
"integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA=="
},
"node_modules/gatsby-sharp/node_modules/sharp": {
"version": "0.32.1",
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.1.tgz",
"integrity": "sha512-kQTFtj7ldpUqSe8kDxoGLZc1rnMFU0AO2pqbX6pLy3b7Oj8ivJIdoKNwxHVQG2HN6XpHPJqCSM2nsma2gOXvOg==",
"hasInstallScript": true,
"dependencies": {
"color": "^4.2.3",
"detect-libc": "^2.0.1",
"node-addon-api": "^6.1.0",
"prebuild-install": "^7.1.1",
"semver": "^7.5.0",
"simple-get": "^4.0.1",
"tar-fs": "^2.1.1",
"tunnel-agent": "^0.6.0"
},
"engines": {
"node": ">=14.15.0"
},
"funding": {
"url": "https://opencollective.com/libvips"
}
},
"node_modules/gatsby-source-filesystem": {
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/gatsby-source-filesystem/-/gatsby-source-filesystem-5.7.0.tgz",
"integrity": "sha512-XGmhWfrAiPvgHyhHI5DiFTh+N0MEIdqHuAvcVR+CMiygucF8wIl7ZJ6doosmf4mvhE17YXG85XSLHhE/+068kQ==",
"version": "5.11.0",
"resolved": "https://registry.npmjs.org/gatsby-source-filesystem/-/gatsby-source-filesystem-5.11.0.tgz",
"integrity": "sha512-42CXNzKgGvkZtqmFIIMbEJW5ZpQ5b4TQT7Rk21XsEMkoZT9QchqMG1S2VPK/LPe7LicvGv6zBziGrtn6ttch7w==",
"dependencies": {
"@babel/runtime": "^7.20.13",
"chokidar": "^3.5.3",
"file-type": "^16.5.4",
"fs-extra": "^11.1.0",
"gatsby-core-utils": "^4.7.0",
"fs-extra": "^11.1.1",
"gatsby-core-utils": "^4.11.0",
"mime": "^3.0.0",
"pretty-bytes": "^5.6.0",
"valid-url": "^1.0.9",
"xstate": "^4.35.3"
"xstate": "^4.37.2"
},
"engines": {
"node": ">=18.0.0"
@ -9389,18 +9398,18 @@
}
},
"node_modules/gatsby-transformer-sharp": {
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/gatsby-transformer-sharp/-/gatsby-transformer-sharp-5.7.0.tgz",
"integrity": "sha512-iFyN4qAz1oeeuEOh0qxGrqD80vIkrrzJkCaaeIKHx2FROvvU5PCcJGlvBICFtva+iuiMSafwFV1ZYixUBcKnWg==",
"version": "5.11.0",
"resolved": "https://registry.npmjs.org/gatsby-transformer-sharp/-/gatsby-transformer-sharp-5.11.0.tgz",
"integrity": "sha512-kIYrCtceqmgwgPRQGVbVY8JxMfJulFSqAeLigRYhrxpVYag90vskmh+HsiKHaY9j/rEARyCofnaAG/jwhSrcRg==",
"dependencies": {
"@babel/runtime": "^7.20.13",
"bluebird": "^3.7.2",
"common-tags": "^1.8.2",
"fs-extra": "^11.1.0",
"gatsby-plugin-utils": "^4.7.0",
"fs-extra": "^11.1.1",
"gatsby-plugin-utils": "^4.11.0",
"probe-image-size": "^7.2.3",
"semver": "^7.3.8",
"sharp": "^0.31.3"
"semver": "^7.5.1",
"sharp": "^0.32.1"
},
"engines": {
"node": ">=18.0.0"
@ -10149,6 +10158,11 @@
"node": ">=10.17.0"
}
},
"node_modules/hyphenate-style-name": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz",
"integrity": "sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ=="
},
"node_modules/iconv-lite": {
"version": "0.4.24",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
@ -10897,6 +10911,15 @@
"node": ">= 10.13.0"
}
},
"node_modules/jiti": {
"version": "1.18.2",
"resolved": "https://registry.npmjs.org/jiti/-/jiti-1.18.2.tgz",
"integrity": "sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==",
"dev": true,
"bin": {
"jiti": "bin/jiti.js"
}
},
"node_modules/joi": {
"version": "17.9.2",
"resolved": "https://registry.npmjs.org/joi/-/joi-17.9.2.tgz",
@ -11317,6 +11340,14 @@
"node": ">=0.10.0"
}
},
"node_modules/matchmediaquery": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/matchmediaquery/-/matchmediaquery-0.3.1.tgz",
"integrity": "sha512-Hlk20WQHRIm9EE9luN1kjRjYXAQToHOIAHPJn9buxBwuhfTHoKUcX+lXBbxc85DVQfXYbEQ4HcwQdd128E3qHQ==",
"dependencies": {
"css-mediaquery": "^0.1.2"
}
},
"node_modules/mdn-data": {
"version": "2.0.14",
"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz",
@ -13713,6 +13744,23 @@
"node": ">=0.10.0"
}
},
"node_modules/react-responsive": {
"version": "9.0.2",
"resolved": "https://registry.npmjs.org/react-responsive/-/react-responsive-9.0.2.tgz",
"integrity": "sha512-+4CCab7z8G8glgJoRjAwocsgsv6VA2w7JPxFWHRc7kvz8mec1/K5LutNC2MG28Mn8mu6+bu04XZxHv5gyfT7xQ==",
"dependencies": {
"hyphenate-style-name": "^1.0.0",
"matchmediaquery": "^0.3.0",
"prop-types": "^15.6.1",
"shallow-equal": "^1.2.1"
},
"engines": {
"node": ">=0.10"
},
"peerDependencies": {
"react": ">=16.8.0"
}
},
"node_modules/react-scroll": {
"version": "1.8.9",
"resolved": "https://registry.npmjs.org/react-scroll/-/react-scroll-1.8.9.tgz",
@ -14401,17 +14449,22 @@
"resolved": "https://registry.npmjs.org/shallow-compare/-/shallow-compare-1.2.2.tgz",
"integrity": "sha512-LUMFi+RppPlrHzbqmFnINTrazo0lPNwhcgzuAXVVcfy/mqPDrQmHAyz5bvV0gDAuRFrk804V0HpQ6u9sZ0tBeg=="
},
"node_modules/shallow-equal": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.1.tgz",
"integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA=="
},
"node_modules/sharp": {
"version": "0.31.3",
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.31.3.tgz",
"integrity": "sha512-XcR4+FCLBFKw1bdB+GEhnUNXNXvnt0tDo4WsBsraKymuo/IAuPuCBVAL2wIkUw2r/dwFW5Q5+g66Kwl2dgDFVg==",
"version": "0.32.1",
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.1.tgz",
"integrity": "sha512-kQTFtj7ldpUqSe8kDxoGLZc1rnMFU0AO2pqbX6pLy3b7Oj8ivJIdoKNwxHVQG2HN6XpHPJqCSM2nsma2gOXvOg==",
"hasInstallScript": true,
"dependencies": {
"color": "^4.2.3",
"detect-libc": "^2.0.1",
"node-addon-api": "^5.0.0",
"node-addon-api": "^6.1.0",
"prebuild-install": "^7.1.1",
"semver": "^7.3.8",
"semver": "^7.5.0",
"simple-get": "^4.0.1",
"tar-fs": "^2.1.1",
"tunnel-agent": "^0.6.0"
@ -14432,9 +14485,9 @@
}
},
"node_modules/sharp/node_modules/node-addon-api": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.0.0.tgz",
"integrity": "sha512-CvkDw2OEnme7ybCykJpVcKH+uAOLV2qLqiyla128dN9TkEWfrYmxG6C2boDe5KcNQqZF3orkqzGgOMvZ/JNekA=="
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz",
"integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA=="
},
"node_modules/shebang-command": {
"version": "2.0.0",
@ -14561,6 +14614,29 @@
"resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
"integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg=="
},
"node_modules/sitemap": {
"version": "7.1.1",
"resolved": "https://registry.npmjs.org/sitemap/-/sitemap-7.1.1.tgz",
"integrity": "sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==",
"dependencies": {
"@types/node": "^17.0.5",
"@types/sax": "^1.2.1",
"arg": "^5.0.0",
"sax": "^1.2.4"
},
"bin": {
"sitemap": "dist/cli.js"
},
"engines": {
"node": ">=12.0.0",
"npm": ">=5.6.0"
}
},
"node_modules/sitemap/node_modules/@types/node": {
"version": "17.0.45",
"resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz",
"integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw=="
},
"node_modules/slash": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
@ -16577,20 +16653,20 @@
"integrity": "sha512-4Jc/YuIaYqKnDDz892kPIledykKg12Aw1PYX5i/TY28anJtacvM1Rrr8wbieB9GfEJwlzqT0hUEao0CxEebiDA=="
},
"@babel/core": {
"version": "7.20.12",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz",
"integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==",
"version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.5.tgz",
"integrity": "sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg==",
"requires": {
"@ampproject/remapping": "^2.1.0",
"@babel/code-frame": "^7.18.6",
"@babel/generator": "^7.20.7",
"@babel/helper-compilation-targets": "^7.20.7",
"@babel/helper-module-transforms": "^7.20.11",
"@babel/helpers": "^7.20.7",
"@babel/parser": "^7.20.7",
"@babel/template": "^7.20.7",
"@babel/traverse": "^7.20.12",
"@babel/types": "^7.20.7",
"@ampproject/remapping": "^2.2.0",
"@babel/code-frame": "^7.22.5",
"@babel/generator": "^7.22.5",
"@babel/helper-compilation-targets": "^7.22.5",
"@babel/helper-module-transforms": "^7.22.5",
"@babel/helpers": "^7.22.5",
"@babel/parser": "^7.22.5",
"@babel/template": "^7.22.5",
"@babel/traverse": "^7.22.5",
"@babel/types": "^7.22.5",
"convert-source-map": "^1.7.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.2",
@ -16619,9 +16695,9 @@
}
},
"@babel/eslint-parser": {
"version": "7.19.1",
"resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.19.1.tgz",
"integrity": "sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==",
"version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.22.5.tgz",
"integrity": "sha512-C69RWYNYtrgIRE5CmTd77ZiLDXqgBipahJc/jHP3sLcAGj6AJzxNIuKNpVnICqbyK7X3pFUfEvL++rvtbQpZkQ==",
"requires": {
"@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1",
"eslint-visitor-keys": "^2.1.0",
@ -16920,13 +16996,13 @@
}
},
"@babel/helpers": {
"version": "7.20.7",
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.7.tgz",
"integrity": "sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA==",
"version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.5.tgz",
"integrity": "sha512-pSXRmfE1vzcUIDFQcSGA5Mr+GxBV9oiRKDuDxXvWQQBCh8HoIjs/2DlDB7H8smac1IVrB9/xdXj2N3Wol9Cr+Q==",
"requires": {
"@babel/template": "^7.20.7",
"@babel/traverse": "^7.20.7",
"@babel/types": "^7.20.7"
"@babel/template": "^7.22.5",
"@babel/traverse": "^7.22.5",
"@babel/types": "^7.22.5"
}
},
"@babel/highlight": {
@ -19147,6 +19223,11 @@
"integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==",
"dev": true
},
"@react-icons/all-files": {
"version": "https://github.com/react-icons/react-icons/releases/download/v4.10.1/react-icons-all-files-4.10.1.tgz",
"integrity": "sha512-jm/9akpfUQRYke8YArGwnoTTTcsCNFjzXfC9rUwrtnEDrV3EOXYOF+R5sFrIgHPn+DMp5nEWLlPV4fmnLCEpMQ==",
"requires": {}
},
"@sideway/address": {
"version": "4.1.4",
"resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz",
@ -19423,6 +19504,14 @@
"@types/node": "*"
}
},
"@types/sax": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.4.tgz",
"integrity": "sha512-pSAff4IAxJjfAXUG6tFkO7dsSbTmf8CtUpfhhZ5VhkRpC4628tJhh3+V6H1E+/Gs9piSzYKT5yzHO5M4GG9jkw==",
"requires": {
"@types/node": "*"
}
},
"@types/scheduler": {
"version": "0.16.3",
"resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz",
@ -19885,8 +19974,7 @@
"arg": {
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
"integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
"dev": true
"integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="
},
"argparse": {
"version": "1.0.10",
@ -21066,6 +21154,11 @@
"semver": "^7.3.5"
}
},
"css-mediaquery": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/css-mediaquery/-/css-mediaquery-0.1.2.tgz",
"integrity": "sha512-COtn4EROW5dBGlE/4PiKnh6rZpAPxDeFLaEEwt4i10jpDMFt2EhQGS79QmmrO+iKCHv0PU/HrOWEhijFd1x99Q=="
},
"css-minimizer-webpack-plugin": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-2.0.0.tgz",
@ -23188,36 +23281,36 @@
}
},
"gatsby-plugin-image": {
"version": "3.7.0",
"resolved": "https://registry.npmjs.org/gatsby-plugin-image/-/gatsby-plugin-image-3.7.0.tgz",
"integrity": "sha512-1KhYlia5DjCMqCdapaAwKzlIr0HkJDoV8I7s80UJNUOcBCKi0nCvbDrSwKHJShtH90+ELxbRRywHW8MOVztIew==",
"version": "3.11.0",
"resolved": "https://registry.npmjs.org/gatsby-plugin-image/-/gatsby-plugin-image-3.11.0.tgz",
"integrity": "sha512-hQ3MjE9v5Y84f/45wXB7D5NthO/3lgwnHzy1mFAz0Md3e1CxgV1lvKjVwY5MvI40l7Tlk4Bkx39p6Qt/0GAcEg==",
"requires": {
"@babel/code-frame": "^7.18.6",
"@babel/parser": "^7.20.13",
"@babel/runtime": "^7.20.13",
"@babel/traverse": "^7.20.13",
"babel-jsx-utils": "^1.1.0",
"babel-plugin-remove-graphql-queries": "^5.7.0",
"babel-plugin-remove-graphql-queries": "^5.11.0",
"camelcase": "^6.3.0",
"chokidar": "^3.5.3",
"common-tags": "^1.8.2",
"fs-extra": "^11.1.0",
"gatsby-core-utils": "^4.7.0",
"gatsby-plugin-utils": "^4.7.0",
"fs-extra": "^11.1.1",
"gatsby-core-utils": "^4.11.0",
"gatsby-plugin-utils": "^4.11.0",
"objectFitPolyfill": "^2.3.5",
"prop-types": "^15.8.1"
}
},
"gatsby-plugin-manifest": {
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/gatsby-plugin-manifest/-/gatsby-plugin-manifest-5.7.0.tgz",
"integrity": "sha512-UiMKCqIOLUFvjJsny0wOMCQWs/Wx0BXmBTQ7Ck1HJsgvq4N3yKTlwAlgu1+eV/ExcpESKc6bncKZFUibwnE/QA==",
"version": "5.11.0",
"resolved": "https://registry.npmjs.org/gatsby-plugin-manifest/-/gatsby-plugin-manifest-5.11.0.tgz",
"integrity": "sha512-f1ViusTLF3K4fNvn1vIKZwUeP1Bl9ercrhQBe7rBnu9Cl7EWYskH0MSXJfxev29kD7Ag+FTvC2MPObDvi3LFhw==",
"requires": {
"@babel/runtime": "^7.20.13",
"gatsby-core-utils": "^4.7.0",
"gatsby-plugin-utils": "^4.7.0",
"semver": "^7.3.8",
"sharp": "^0.31.3"
"gatsby-core-utils": "^4.11.0",
"gatsby-plugin-utils": "^4.11.0",
"semver": "^7.5.1",
"sharp": "^0.32.1"
}
},
"gatsby-plugin-page-creator": {
@ -23240,23 +23333,50 @@
}
},
"gatsby-plugin-postcss": {
"version": "6.7.0",
"resolved": "https://registry.npmjs.org/gatsby-plugin-postcss/-/gatsby-plugin-postcss-6.7.0.tgz",
"integrity": "sha512-qJ9QF+0GtCO/I2hqpGV2OKTw6i9MF+7B+JMA4zxkfrzsLT9VF28OtQDzjksb2OAGqgdvY157aolOQd/iLMB05w==",
"version": "6.11.0",
"resolved": "https://registry.npmjs.org/gatsby-plugin-postcss/-/gatsby-plugin-postcss-6.11.0.tgz",
"integrity": "sha512-/gwAOPxiYPVVPmBwnkpD4Wlg+7svS0b17A6g0ajHfV46N0RQzvP25RRpkMskmC9NbyaxA/wHrASyF+Uv5i0fNQ==",
"dev": true,
"requires": {
"@babel/runtime": "^7.20.13",
"postcss-loader": "^7.0.2"
"postcss-loader": "^7.3.2"
},
"dependencies": {
"argparse": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
"dev": true
},
"cosmiconfig": {
"version": "8.2.0",
"resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.2.0.tgz",
"integrity": "sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==",
"dev": true,
"requires": {
"import-fresh": "^3.2.1",
"js-yaml": "^4.1.0",
"parse-json": "^5.0.0",
"path-type": "^4.0.0"
}
},
"js-yaml": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"dev": true,
"requires": {
"argparse": "^2.0.1"
}
},
"postcss-loader": {
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.0.2.tgz",
"integrity": "sha512-fUJzV/QH7NXUAqV8dWJ9Lg4aTkDCezpTS5HgJ2DvqznexTbSTxgi/dTECvTZ15BwKTtk8G/bqI/QTu2HPd3ZCg==",
"version": "7.3.3",
"resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.3.tgz",
"integrity": "sha512-YgO/yhtevGO/vJePCQmTxiaEwER94LABZN0ZMT4A0vsak9TpO+RvKRs7EmJ8peIlB9xfXCsS7M8LjqncsUZ5HA==",
"dev": true,
"requires": {
"cosmiconfig": "^7.0.0",
"klona": "^2.0.5",
"cosmiconfig": "^8.2.0",
"jiti": "^1.18.2",
"semver": "^7.3.8"
}
}
@ -23294,38 +23414,24 @@
"ms": "2.1.2"
}
},
"detect-libc": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz",
"integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w=="
},
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"node-addon-api": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz",
"integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA=="
},
"sharp": {
"version": "0.32.1",
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.1.tgz",
"integrity": "sha512-kQTFtj7ldpUqSe8kDxoGLZc1rnMFU0AO2pqbX6pLy3b7Oj8ivJIdoKNwxHVQG2HN6XpHPJqCSM2nsma2gOXvOg==",
"requires": {
"color": "^4.2.3",
"detect-libc": "^2.0.1",
"node-addon-api": "^6.1.0",
"prebuild-install": "^7.1.1",
"semver": "^7.5.0",
"simple-get": "^4.0.1",
"tar-fs": "^2.1.1",
"tunnel-agent": "^0.6.0"
}
}
}
},
"gatsby-plugin-sitemap": {
"version": "6.11.0",
"resolved": "https://registry.npmjs.org/gatsby-plugin-sitemap/-/gatsby-plugin-sitemap-6.11.0.tgz",
"integrity": "sha512-YpCnENEsmqcQ6s7OXKvj402i7ODHpmr4sNXxIf2ecT7EpL9JiRhmCwYsg0WGaAEC+QG1BggFuMDC9rAqoRcYng==",
"requires": {
"@babel/runtime": "^7.20.13",
"common-tags": "^1.8.2",
"minimatch": "^3.1.2",
"sitemap": "^7.1.1"
}
},
"gatsby-plugin-typescript": {
"version": "5.11.0",
"resolved": "https://registry.npmjs.org/gatsby-plugin-typescript/-/gatsby-plugin-typescript-5.11.0.tgz",
@ -23394,49 +23500,22 @@
"integrity": "sha512-zJbN3JVCFur8Ilwn1scf7o8AN69//shpJhYqt3uhuwhhkU6ZMCMmVVNKHSiUiWkVqhwSRJ4y7c/I3Ys9xMxsIw==",
"requires": {
"sharp": "^0.32.1"
},
"dependencies": {
"detect-libc": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz",
"integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w=="
},
"node-addon-api": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz",
"integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA=="
},
"sharp": {
"version": "0.32.1",
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.1.tgz",
"integrity": "sha512-kQTFtj7ldpUqSe8kDxoGLZc1rnMFU0AO2pqbX6pLy3b7Oj8ivJIdoKNwxHVQG2HN6XpHPJqCSM2nsma2gOXvOg==",
"requires": {
"color": "^4.2.3",
"detect-libc": "^2.0.1",
"node-addon-api": "^6.1.0",
"prebuild-install": "^7.1.1",
"semver": "^7.5.0",
"simple-get": "^4.0.1",
"tar-fs": "^2.1.1",
"tunnel-agent": "^0.6.0"
}
}
}
},
"gatsby-source-filesystem": {
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/gatsby-source-filesystem/-/gatsby-source-filesystem-5.7.0.tgz",
"integrity": "sha512-XGmhWfrAiPvgHyhHI5DiFTh+N0MEIdqHuAvcVR+CMiygucF8wIl7ZJ6doosmf4mvhE17YXG85XSLHhE/+068kQ==",
"version": "5.11.0",
"resolved": "https://registry.npmjs.org/gatsby-source-filesystem/-/gatsby-source-filesystem-5.11.0.tgz",
"integrity": "sha512-42CXNzKgGvkZtqmFIIMbEJW5ZpQ5b4TQT7Rk21XsEMkoZT9QchqMG1S2VPK/LPe7LicvGv6zBziGrtn6ttch7w==",
"requires": {
"@babel/runtime": "^7.20.13",
"chokidar": "^3.5.3",
"file-type": "^16.5.4",
"fs-extra": "^11.1.0",
"gatsby-core-utils": "^4.7.0",
"fs-extra": "^11.1.1",
"gatsby-core-utils": "^4.11.0",
"mime": "^3.0.0",
"pretty-bytes": "^5.6.0",
"valid-url": "^1.0.9",
"xstate": "^4.35.3"
"xstate": "^4.37.2"
},
"dependencies": {
"mime": {
@ -23466,18 +23545,18 @@
}
},
"gatsby-transformer-sharp": {
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/gatsby-transformer-sharp/-/gatsby-transformer-sharp-5.7.0.tgz",
"integrity": "sha512-iFyN4qAz1oeeuEOh0qxGrqD80vIkrrzJkCaaeIKHx2FROvvU5PCcJGlvBICFtva+iuiMSafwFV1ZYixUBcKnWg==",
"version": "5.11.0",
"resolved": "https://registry.npmjs.org/gatsby-transformer-sharp/-/gatsby-transformer-sharp-5.11.0.tgz",
"integrity": "sha512-kIYrCtceqmgwgPRQGVbVY8JxMfJulFSqAeLigRYhrxpVYag90vskmh+HsiKHaY9j/rEARyCofnaAG/jwhSrcRg==",
"requires": {
"@babel/runtime": "^7.20.13",
"bluebird": "^3.7.2",
"common-tags": "^1.8.2",
"fs-extra": "^11.1.0",
"gatsby-plugin-utils": "^4.7.0",
"fs-extra": "^11.1.1",
"gatsby-plugin-utils": "^4.11.0",
"probe-image-size": "^7.2.3",
"semver": "^7.3.8",
"sharp": "^0.31.3"
"semver": "^7.5.1",
"sharp": "^0.32.1"
}
},
"gatsby-worker": {
@ -23837,6 +23916,11 @@
"resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
"integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw=="
},
"hyphenate-style-name": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz",
"integrity": "sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ=="
},
"iconv-lite": {
"version": "0.4.24",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
@ -24352,6 +24436,12 @@
"supports-color": "^7.0.0"
}
},
"jiti": {
"version": "1.18.2",
"resolved": "https://registry.npmjs.org/jiti/-/jiti-1.18.2.tgz",
"integrity": "sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==",
"dev": true
},
"joi": {
"version": "17.9.2",
"resolved": "https://registry.npmjs.org/joi/-/joi-17.9.2.tgz",
@ -24698,6 +24788,14 @@
"resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
"integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg=="
},
"matchmediaquery": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/matchmediaquery/-/matchmediaquery-0.3.1.tgz",
"integrity": "sha512-Hlk20WQHRIm9EE9luN1kjRjYXAQToHOIAHPJn9buxBwuhfTHoKUcX+lXBbxc85DVQfXYbEQ4HcwQdd128E3qHQ==",
"requires": {
"css-mediaquery": "^0.1.2"
}
},
"mdn-data": {
"version": "2.0.14",
"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz",
@ -26320,6 +26418,17 @@
"resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz",
"integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ=="
},
"react-responsive": {
"version": "9.0.2",
"resolved": "https://registry.npmjs.org/react-responsive/-/react-responsive-9.0.2.tgz",
"integrity": "sha512-+4CCab7z8G8glgJoRjAwocsgsv6VA2w7JPxFWHRc7kvz8mec1/K5LutNC2MG28Mn8mu6+bu04XZxHv5gyfT7xQ==",
"requires": {
"hyphenate-style-name": "^1.0.0",
"matchmediaquery": "^0.3.0",
"prop-types": "^15.6.1",
"shallow-equal": "^1.2.1"
}
},
"react-scroll": {
"version": "1.8.9",
"resolved": "https://registry.npmjs.org/react-scroll/-/react-scroll-1.8.9.tgz",
@ -26843,16 +26952,21 @@
"resolved": "https://registry.npmjs.org/shallow-compare/-/shallow-compare-1.2.2.tgz",
"integrity": "sha512-LUMFi+RppPlrHzbqmFnINTrazo0lPNwhcgzuAXVVcfy/mqPDrQmHAyz5bvV0gDAuRFrk804V0HpQ6u9sZ0tBeg=="
},
"shallow-equal": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.1.tgz",
"integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA=="
},
"sharp": {
"version": "0.31.3",
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.31.3.tgz",
"integrity": "sha512-XcR4+FCLBFKw1bdB+GEhnUNXNXvnt0tDo4WsBsraKymuo/IAuPuCBVAL2wIkUw2r/dwFW5Q5+g66Kwl2dgDFVg==",
"version": "0.32.1",
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.1.tgz",
"integrity": "sha512-kQTFtj7ldpUqSe8kDxoGLZc1rnMFU0AO2pqbX6pLy3b7Oj8ivJIdoKNwxHVQG2HN6XpHPJqCSM2nsma2gOXvOg==",
"requires": {
"color": "^4.2.3",
"detect-libc": "^2.0.1",
"node-addon-api": "^5.0.0",
"node-addon-api": "^6.1.0",
"prebuild-install": "^7.1.1",
"semver": "^7.3.8",
"semver": "^7.5.0",
"simple-get": "^4.0.1",
"tar-fs": "^2.1.1",
"tunnel-agent": "^0.6.0"
@ -26864,9 +26978,9 @@
"integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w=="
},
"node-addon-api": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.0.0.tgz",
"integrity": "sha512-CvkDw2OEnme7ybCykJpVcKH+uAOLV2qLqiyla128dN9TkEWfrYmxG6C2boDe5KcNQqZF3orkqzGgOMvZ/JNekA=="
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz",
"integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA=="
}
}
},
@ -26954,6 +27068,24 @@
"resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
"integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg=="
},
"sitemap": {
"version": "7.1.1",
"resolved": "https://registry.npmjs.org/sitemap/-/sitemap-7.1.1.tgz",
"integrity": "sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==",
"requires": {
"@types/node": "^17.0.5",
"@types/sax": "^1.2.1",
"arg": "^5.0.0",
"sax": "^1.2.4"
},
"dependencies": {
"@types/node": {
"version": "17.0.45",
"resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz",
"integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw=="
}
}
},
"slash": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",

@ -7,12 +7,14 @@
"dependencies": {
"@headlessui/react": "^1.7.12",
"@heroicons/react": "^2.0.16",
"@react-icons/all-files": "https://github.com/react-icons/react-icons/releases/download/v4.10.1/react-icons-all-files-4.10.1.tgz",
"body-scroll-lock": "^4.0.0-beta.0",
"framer-motion": "^10.12.16",
"gatsby": "^5.7.0",
"gatsby-plugin-image": "^3.7.0",
"gatsby-plugin-manifest": "^5.7.0",
"gatsby-plugin-sharp": "^5.7.0",
"gatsby-plugin-sitemap": "^6.11.0",
"gatsby-source-filesystem": "^5.7.0",
"gatsby-transformer-sharp": "^5.7.0",
"react": "^18.2.0",
@ -20,6 +22,7 @@
"react-hook-form": "^7.45.0",
"react-icons": "^4.7.1",
"react-input-mask": "^2.0.4",
"react-responsive": "^9.0.2",
"react-scroll": "^1.8.9",
"react-type-animation": "^3.0.1",
"swiper": "^9.3.2",

@ -1,5 +1,4 @@
import React from 'react';
import Button from './UI/Button';
const About = ({...props}) => {
return (
@ -16,7 +15,6 @@ const About = ({...props}) => {
</div>
<div className='basis-1/2 lg:ml-5 max-lg:flex max-lg:flex-col max-lg:items-center max-lg:w-full max-md:mt-0 max-lg:mt-5'>
<iframe className='w-full h-[500px] max-sm:h-[250px] max-md:h-[350px] mb-7 rounded-lg' src="https://www.youtube-nocookie.com/embed/0zMLl9WbHVg" loading="lazy" title="YouTube video player" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowFullScreen></iframe>
<Button className='max-sm:w-full w-52'>Наши услуги</Button>
</div>
</div>
</section>

@ -1,15 +1,18 @@
import React from 'react';
import React, { forwardRef } from 'react';
import { motion } from "framer-motion";
const Advantage = ({className, icon, title, description}) => {
return (
<div className={['flex max-md:justify-center max-md:mb-5', className].join(' ')}>
<div className='flex flex-col items-center text-center'>
<div className='bg-yellow-400 rounded-lg w-16 h-16 max-md:w-12 max-md:h-12 flex justify-center items-center mb-4'>{icon}</div>
<h3 className='text-gray-900 font-semibold text-2xl max-md:text-base max-lg:text-xl mb-3'>{title}</h3>
<p className='text-gray-500 font-medium text-base max-md:text-sm leading-6'>{description}</p>
const Advantage = motion(
forwardRef(({className, icon, title, description}, ref) => {
return (
<div ref={ref} className={['flex max-md:justify-center max-md:mb-5', className].join(' ')}>
<div className='flex flex-col items-center text-center'>
<div className='bg-yellow-400 rounded-lg w-16 h-16 max-md:w-12 max-md:h-12 flex justify-center items-center mb-4'>{icon}</div>
<h3 className='text-gray-900 font-semibold text-2xl max-md:text-base max-lg:text-xl mb-3'>{title}</h3>
<p className='text-gray-500 font-medium text-base max-md:text-sm leading-6'>{description}</p>
</div>
</div>
</div>
);
}
);
})
)
export default Advantage;
export default Advantage;

@ -1,9 +1,9 @@
import React, { useState } from 'react';
import Advantage from './Advantage';
import { AiOutlineFieldTime } from "react-icons/ai";
import { TbWorld } from "react-icons/tb";
import { BsPersonCheck } from "react-icons/bs";
import { FaConnectdevelop } from "react-icons/fa";
import { AiOutlineFieldTime } from "@react-icons/all-files/ai/AiOutlineFieldTime";
import { TbWorld } from "@react-icons/all-files/tb/TbWorld";
import { BsPersonCheck } from "@react-icons/all-files/bs/BsPersonCheck";
import { FaConnectdevelop } from "@react-icons/all-files/fa/FaConnectdevelop";
const Advantages = ({...props}) => {
@ -21,8 +21,8 @@ const Advantages = ({...props}) => {
<p className='text-center text-lg max-md:text-base max-w-2xl text-slate-700'>Мы помогаем воодушевлять, развивать сотрудников с прицелом на плодотворную командную работу и результата для Бизнеса!</p>
</div>
<div className="flex max-md:flex-wrap">
{advantages.map(advantage=>
<Advantage className="basis-1/4 max-md:basis-1/2 mr-5 max-md:mr-0 last:mr-0" key={advantage.id} icon={advantage.icon} title={advantage.title} description={advantage.description}></Advantage>
{advantages.map((advantage, index)=>
<Advantage initial={{ x: -100, opacity: 0 }} whileInView={{ x: 0, opacity: 1 }} transition={{ delay:index*0.1, duration: 0.5 }} viewport={{ once: true }} className="basis-1/4 max-md:basis-1/2 mr-5 max-md:mr-0 last:mr-0" key={advantage.id} icon={advantage.icon} title={advantage.title} description={advantage.description}></Advantage>
)}
</div>
</section>

@ -52,8 +52,8 @@ const Example = () => {
<section className='pt-32 max-md:pt-16 bg-[#0E0808]'>
<h2 className='text-3xl max-md:text-2xl mb-20 max-md:mb-10 font-semibold text-white text-center uppercase'>Примеры фасилитационных сессий</h2>
<div className="flex flex-wrap">
{examples.map(example =>
<Image key={example.id} title={example.title} image={example.img}></Image>
{examples.map((example, index) =>
<Image initial={{ x: 0, opacity: 0 }} whileInView={{ x: 0, opacity: 1 }} transition={{ delay:index*0.1, duration: 0.5 }} viewport={{ once: true }} key={example.id} title={example.title} image={example.img}></Image>
)}
</div>
</section>

@ -1,14 +1,17 @@
import React from 'react'
import React, { forwardRef } from 'react'
import { getImage } from 'gatsby-plugin-image';
import { motion } from "framer-motion";
const Image = ({title, image}) => {
return (
<div className="flex basis-1/3 max-md:basis-1/2 h-80 max-md:h-44 max-lg:h-60 overflow-hidden border-2 border-[#0E0808]">
<div style={{'--image-url': `url(${getImage(image).images.fallback.src})`}} className="[&>h3]:hover:-translate-y-7 w-full bg-cover bg-center hover:scale-105 duration-[2s] ease-[cubic-bezier(0, 1, 0.35, 1)] transition-all flex items-center justify-center relative bg-no-repeat bg-[linear-gradient(to_bottom,rgba(0,0,0,0.5),rgba(0,0,0,0.5)),var(--image-url)]">
<h3 className='transition uppercase text-white font-medium text-center max-md:text-sm'>{title}</h3>
const Image = motion(
forwardRef(({title, image}, ref) => {
return (
<div ref={ref} className="flex basis-1/3 max-md:basis-1/2 h-80 max-md:h-44 max-lg:h-60 overflow-hidden border-2 border-[#0E0808]">
<div style={{'--image-url': `url(${getImage(image).images.fallback.src})`}} className="[&>h3]:hover:-translate-y-7 w-full bg-cover bg-center hover:scale-105 duration-[2s] ease-[cubic-bezier(0, 1, 0.35, 1)] transition-all flex items-center justify-center relative bg-no-repeat bg-[linear-gradient(to_bottom,rgba(0,0,0,0.5),rgba(0,0,0,0.5)),var(--image-url)]">
<h3 className='transition uppercase text-white font-medium text-center max-md:text-sm'>{title}</h3>
</div>
</div>
</div>
)
}
)
})
)
export default Image

@ -26,7 +26,7 @@ const Main = ({props}) => {
<div className="flex justify-end max-lg:justify-start basis-1/2">
<div className="flex flex-col">
{steps.map((step, count)=>
<Step key={step.id} ml={step.ml} title={step.title} ico={step.ico} count={count+1}></Step>
<Step initial={{ y: -50, opacity: 0 }} whileInView={{ y: 0, opacity: 1 }} transition={{ delay:count*0.1, duration: 0.5 }} viewport={{ once: true }} key={step.id} ml={step.ml} title={step.title} ico={step.ico} count={count+1}></Step>
)}
</div>
</div>

@ -1,15 +1,18 @@
import React from 'react'
import React, { forwardRef } from 'react'
import { motion } from "framer-motion";
const Step = ({title, count, ml}) => {
return (
<div style={{"--ml":ml+"px"}}className='flex flex-col mb-7 relative [&>div>.number]:last:before:content-none'>
<div className="flex items-center">
<div className={'number border-yellow-200 border-4 flex items-center justify-center text-lg text-white relative font-bold bg-yellow-400 rounded-full w-16 max-xl:min-w-[64px] h-16 mr-5 before:absolute before:bottom-0 before:bg-yellow-200 before:w-1 before:left-[calc(50%+5px)] before:h-[40px] before:-rotate-[11deg] max-sm:before:-rotate-[8deg] before:-translate-y-[-100%] ml-[var(--ml)] max-sm:ml-[calc(var(--ml)/2)]'}>0{count}</div>
<p className='text-xl max-md:text-lg font-medium text-gray-800'>{title}</p>
</div>
const Step = motion(
forwardRef(({title, count, ml}, ref) => {
return (
<div ref={ref} style={{"--ml":ml+"px"}}className='flex flex-col mb-7 relative [&>div>.number]:last:before:content-none'>
<div className="flex items-center">
<div className={'number border-yellow-200 border-4 flex items-center justify-center text-lg text-white relative font-bold bg-yellow-400 rounded-full w-16 max-xl:min-w-[64px] h-16 mr-5 before:absolute before:bottom-0 before:bg-yellow-200 before:w-1 before:left-[calc(50%+5px)] before:h-[40px] before:-rotate-[11deg] max-sm:before:-rotate-[8deg] before:-translate-y-[-100%] ml-[var(--ml)] max-sm:ml-[calc(var(--ml)/2)]'}>0{count}</div>
<p className='text-xl max-md:text-lg font-medium text-gray-800'>{title}</p>
</div>
</div>
)
}
</div>
)
})
)
export default Step

@ -1,21 +1,24 @@
import React from 'react';
import React, { forwardRef } from 'react';
import { Link } from 'gatsby';
import { GatsbyImage, getImage } from 'gatsby-plugin-image';
import { BsArrowRight } from "react-icons/bs";
import { BsArrowRight } from "@react-icons/all-files/bs/BsArrowRight";
import { motion } from "framer-motion";
const Game = ({img, title, description, slug}) => {
const image = getImage(img);
const Game = motion(
forwardRef(({img, title, description, slug}, ref) => {
const image = getImage(img);
return (
<Link to={'/games/' + slug} className={'flex basis-[calc(25%-15px)] max-sm:basis-full max-md:basis-[calc(50%-20px)] max-xl:basis-[calc(33%-20px)] mr-5 max-sm:mr-0 max-sm:last:mb-0 justify-center max-md:[&:nth-child(2n+2)]:mr-0 md:max-xl:[&:nth-child(3n+3)]:mr-0 xl:[&:nth-child(4n+4)]:mr-0 mb-14 max-sm:mb-10 [&>div>h2]:hover:text-yellow-500 [&>div]:hover:scale-105'}>
<div className="flex flex-col transition">
<GatsbyImage loading='lazy' className='rounded-lg mb-2 h-60 object-cover' image={image} alt="logo" placeholder="none"/>
<h2 className='text-white text-xl font-medium mb-3 transition'>{title}</h2>
<p className='text-gray-300 mb-4 grow'>{description}</p>
<p className='more transition flex items-center text-yellow-400'>Подробнее <BsArrowRight className='ml-2'/></p>
</div>
</Link>
);
}
return (
<Link ref={ref} to={'/games/' + slug} className={'flex basis-[calc(25%-15px)] max-sm:basis-full max-md:basis-[calc(50%-20px)] max-xl:basis-[calc(33%-20px)] mr-5 max-sm:mr-0 max-sm:last:mb-0 justify-center max-md:[&:nth-child(2n+2)]:mr-0 md:max-xl:[&:nth-child(3n+3)]:mr-0 xl:[&:nth-child(4n+4)]:mr-0 mb-14 max-sm:mb-10 [&>div>h2]:hover:text-yellow-500 [&>div]:hover:scale-105'} itemScope itemType="https://schema.org/Service">
<div className="flex flex-col transition">
<GatsbyImage loading='lazy' className='rounded-lg mb-2 h-60 object-cover' image={image} alt="logo" placeholder="none" itemProp="image"/>
<h2 className='text-white text-xl font-medium mb-3 transition' itemProp="name">{title}</h2>
<p className='text-gray-300 mb-4 grow' itemProp="description">{description}</p>
<p className='more transition flex items-center text-yellow-400'>Подробнее <BsArrowRight className='ml-2'/></p>
</div>
</Link>
);
})
)
export default Game;

@ -1,7 +1,7 @@
import React from "react";
import { GatsbyImage, getImage } from 'gatsby-plugin-image';
import { AiOutlineClockCircle, AiOutlineTeam } from "react-icons/ai";
import { AiOutlineClockCircle } from "@react-icons/all-files/ai/AiOutlineClockCircle";
import { AiOutlineTeam } from "@react-icons/all-files/ai/AiOutlineTeam";
const Hero = ({title, img, time, members, formats}) => {
return (
<section className="h-[60vh] min-h-[300px]">

@ -75,12 +75,12 @@ const Games = ({...props}) => {
<RecGame></RecGame>
</div>
</section>
<section className='py-32 max-md:py-16 max-md:px-3 bg-[#0E0808] max-sm:mb-0 -mb-14'>
<section className='py-32 max-md:py-16 max-md:px-3 bg-[#0E0808] max-sm:mb-0 -mb-14' itemScope itemType="https://schema.org/Service">
<div className="container mx-auto">
<h2 className='pb-20 max-md:pb-10 text-3xl max-md:text-2xl mb-1 font-semibold text-white text-center uppercase'>Другие игры</h2>
<div className="flex flex-wrap max-sm:flex-col">
{games.map(game=>
<Game title={game.title} description={game.description} img={game.img} key={game.slug} slug={game.slug}></Game>
<h2 className='pb-20 max-md:pb-10 text-3xl max-md:text-2xl mb-1 font-semibold text-white text-center uppercase' itemProp="serviceType">Другие игры</h2>
<div className="flex flex-wrap max-sm:flex-col" itemProp="hasOfferCatalog" itemScope itemType="https://schema.org/OfferCatalog">
{games.map((game, index) =>
<Game initial={{ x: -50, opacity: 0 }} whileInView={{ x: 0, opacity: 1 }} transition={{ delay:index*0.1, duration: 0.5 }} viewport={{ once: true }} title={game.title} description={game.description} img={game.img} key={game.slug} slug={game.slug}></Game>
)}
</div>
</div>

@ -1,10 +1,10 @@
import React from 'react';
import { AiFillCheckCircle } from "react-icons/ai";
import { AiFillCheckCircle } from "@react-icons/all-files/ai/AiFillCheckCircle";
import { useStaticQuery, graphql } from "gatsby"
import { StaticImage} from 'gatsby-plugin-image';
import { TypeAnimation } from 'react-type-animation';
import { motion } from "framer-motion"
import { SlArrowDown } from "react-icons/sl";
import { SlArrowDown } from "@react-icons/all-files/sl/SlArrowDown";
import { Link as AnchorLink } from "react-scroll";
const Hero = ({...props}) => {

@ -1,7 +1,7 @@
import React from 'react'
import Modal from '../UI/Modal';
import { AiOutlineCheckCircle } from "react-icons/ai";
import { BiErrorCircle } from "react-icons/bi";
import { AiOutlineCheckCircle } from "@react-icons/all-files/ai/AiOutlineCheckCircle";
import { BiErrorCircle } from "@react-icons/all-files/bi/BiErrorCircle";
const SubmitFormModal = ({ modal, setModal, error }) => {
return (

@ -2,10 +2,26 @@ import React from 'react'
import { GatsbyImage, getImage } from 'gatsby-plugin-image';
const Review = ({ img, ...props }) => {
const Review = ({ img, microdata, ...props }) => {
return (
<div className="h-full border-2 rounded-md p-5 border-[#0E0808] relative flex justify-center cursor-pointer" {...props}>
<div className="h-full border-2 rounded-md p-5 border-[#0E0808] relative flex justify-center cursor-pointer" itemScope itemType="https://schema.org/Review" {...props}>
<GatsbyImage className='rounded-lg mb-2' loading='lazy' imgClassName="!object-contain" image={getImage(img)} alt="logo" placeholder="none"/>
<div className="hidden">
<meta itemProp="reviewBody" content={microdata.text}/>
<meta itemProp="datePublished" content={microdata.date}/>
<meta itemProp="author" content={microdata.author}/>
<div itemProp="reviewRating" itemScope itemType="https://schema.org/Rating">
<meta itemProp="ratingValue" content='5'/>
</div>
<div itemProp="itemReviewed" itemScope itemType="https://schema.org/Organization">
<meta itemProp="name" content="Talent Team"/>
<meta itemProp="telephone" content="8 (920) 074 55-05"/>
<div itemProp="address" itemScope itemType="https://schema.org/PostalAddress">
<meta itemProp="addressLocality" content="Москва"/>
<meta itemProp="streetAddress" content="Льва Толстого, 16"/>
</div>
</div>
</div>
</div>
)
}

@ -34,10 +34,10 @@ const Reviews = () => {
}
}`);
const [reviews] = useState([
{id: 0, img: images.img1},
{id: 1, img: images.img2},
{id: 2, img: images.img3},
{id: 3, img: images.img4},
{id: 0, img: images.img1, microdata: {text: 'Компания PROБизнес выражает благодарность Алене Крюковой за проведение сессии LEGO SERIOUS PLAY в составе команды модераторов на ежегодной дилерской конференции ЛУКОЙЛ', author: 'Лукойл', date: '2021-09-29'}},
{id: 1, img: images.img2, microdata: {text: 'Выражаю огромную благодарность компании Talent Тeam за сотрудничество и проведение командообразущих мероприятий в ООО «Монтаж Телеком Сервис»', author: 'ООО "Монтаж Телеком Сервис"', date: '2023-06-24'}},
{id: 2, img: images.img3, microdata: {text: 'Компания SenseMachine в лице управляющего директора Овчарова Алексея Викторовича и всей команды, выражает благодарность Алене Крюковой и Можаваева Кристине за высокопрофессиональную организацию и проведение стратегической сессии! Отличная подготовка мероприятия, профессионализм фасилитаторов и интересные, занимательные блоки - все это создало атмосферу настоящей вовлечённости и погружения в процесс. Спасибо Вам, что помогли сотрудникам нашей компании по-настоящему окунуться в процесс взаимодействия с друг другока, дали высказатеся и быть услышанными друг другом! Желаем Вашей компании процветания и надеемся на долгое сотрудничество!', author: 'SenseMachine', date: '2022-11-15'}},
{id: 3, img: images.img4, microdata: {text: 'Руководство ООО «АМИ Клиник Север» выражает благодарность компании Talent Теаm за прекрасно проведенное мероприятие, которое позволило нам еще успешнее достигать высоких результатов! Ваши профессионализм, активная позиция и достойный пример вдохновляют наших на плодотворную работу, стремление к росту и получение новых умений и знаний. Мы ценим ваш вклад в развитие компании и верим, что совместно с вами наша компания достигнег нового уровня и процветания.', author: 'ООО "АМИ Клиник Север"', date: '2023-06-24'}},
])
const [modal, setModal] = useState(false);
@ -47,6 +47,19 @@ const Reviews = () => {
<section className='py-24 max-md:py-16 max-md:px-3'>
<div className="container mx-auto">
<h2 className='text-3xl mb-20 max-md:mb-10 font-semibold text-slate-800 text-center uppercase'>Отзывы</h2>
<div className='hidden' itemScope itemType="https://schema.org/AggregateRating">
<div itemProp="itemReviewed" itemScope itemType="https://schema.org/Organization">
<meta itemProp="name" content="Talent Team"/>
<meta itemProp="telephone" content="8 (920) 074 55-05"/>
<div itemProp="address" itemScope itemType="https://schema.org/PostalAddress">
<meta itemProp="addressLocality" content="Москва"/>
<meta itemProp="streetAddress" content="Льва Толстого, 16"/>
</div>
</div>
<meta itemProp="ratingValue" content='5'/>
<meta itemProp="bestRating" content='5'/>
<meta itemProp="reviewCount" content='4'/>
</div>
<Swiper modules={[Autoplay]} autoplay={true} spaceBetween={50} slidesPerView={1}
breakpoints={{
640: {
@ -58,7 +71,7 @@ const Reviews = () => {
}}>
{reviews.map(review=>
<SwiperSlide key={review.id} className='!h-auto'>
<Review key={review.id} img={review.img} onClick={()=>{setModalImg(review.img); setModal(true)}}></Review>
<Review key={review.id} img={review.img} microdata={review.microdata} onClick={()=>{setModalImg(review.img); setModal(true)}}></Review>
</SwiperSlide>
)}
</Swiper>

@ -1,18 +1,20 @@
import React from 'react'
import React, { forwardRef } from 'react'
import { GatsbyImage, getImage } from 'gatsby-plugin-image';
import { motion } from "framer-motion";
const Person = ({name, post, img}) => {
return (
<div className='flex p-6 flex-col basis-1/4 max-sm:basis-auto max-lg:basis-[calc(50%-16px)] max-lg:mb-6 relative h-[550px] max-sm:h-[450px] mr-6 max-lg:mr-4 max-sm:mr-0 sm:max-lg:[&:nth-child(2n+2)]:mr-0 [&:nth-child(4n+4)]:mr-0'>
<div className="h-full flex flex-col justify-end max-w-s z-20">
<h3 className='text-xl text-white mb-3'>{name}</h3>
<p className='text-base text-white whitespace-pre-wrap'>{post}</p>
const Person = motion(
forwardRef(({name, post, img}, ref) => {
return (
<div ref={ref} className='flex p-6 flex-col basis-1/4 max-sm:basis-auto max-lg:basis-[calc(50%-16px)] max-lg:mb-6 relative h-[550px] max-sm:h-[450px] mr-6 max-lg:mr-4 max-sm:mr-0 sm:max-lg:[&:nth-child(2n+2)]:mr-0 [&:nth-child(4n+4)]:mr-0'>
<div className="h-full flex flex-col justify-end max-w-s z-20">
<h3 className='text-xl text-white mb-3'>{name}</h3>
<p className='text-base text-white whitespace-pre-wrap'>{post}</p>
</div>
<div className="absolute top-0 left-0 h-full before:absolute before:bg-black before:h-full before:w-full before:top-0 before:left-0 before:z-10 before:rounded-lg before:opacity-25">
<GatsbyImage loading='lazy' className='h-full rounded-lg mb-2 object-cover' image={getImage(img)} alt="logo" placeholder="none"/>
</div>
</div>
<div className="absolute top-0 left-0 h-full before:absolute before:bg-black before:h-full before:w-full before:top-0 before:left-0 before:z-10 before:rounded-lg before:opacity-25">
<GatsbyImage loading='lazy' className='h-full rounded-lg mb-2 object-cover' image={getImage(img)} alt="logo" placeholder="none"/>
</div>
</div>
)
}
)
})
)
export default Person

@ -41,8 +41,8 @@ const Team = ({...props}) => {
<div className="container mx-auto">
<h2 className='text-3xl max-md:text-2xl mb-12 max-md:mb-6 font-semibold text-white text-center uppercase'>Наша команда</h2>
<div className="flex max-sm:flex-col sm:max-lg:flex-wrap">
{persons.map(person=>
<Person key={person.id} name={person.name} post={person.post} img={person.img}></Person>
{persons.map((person, index)=>
<Person initial={{ x: -100, opacity: 0 }} whileInView={{ x: 0, opacity: 1 }} transition={{ delay:index*0.1, duration: 0.5 }} viewport={{ once: true }} key={person.id} name={person.name} post={person.post} img={person.img}></Person>
)}
</div>
</div>

@ -56,8 +56,8 @@ const Example = () => {
<section className='pt-32 max-md:pt-16 bg-[#0E0808]'>
<h2 className='text-3xl max-md:text-2xl mb-20 max-md:mb-10 font-semibold text-white text-center uppercase'>Примеры тимбилдингов</h2>
<div className="flex flex-wrap">
{examples.map(example =>
<Image key={example.id} title={example.title} image={example.img}></Image>
{examples.map((example, index) =>
<Image initial={{ x: 0, opacity: 0 }} whileInView={{ x: 0, opacity: 1 }} transition={{ delay:index*0.1, duration: 0.5 }} viewport={{ once: true }} key={example.id} title={example.title} image={example.img}></Image>
)}
</div>
</section>

@ -1,14 +1,17 @@
import React from 'react'
import React, { forwardRef } from 'react'
import { getImage } from 'gatsby-plugin-image';
import { motion } from "framer-motion";
const Image = ({title, image}) => {
return (
<div className="flex basis-1/5 max-lg:basis-1/2 h-64 max-md:h-44 max-2xl:h-60 overflow-hidden border-2 border-[#0E0808]">
<div style={{'--image-url': `url(${getImage(image).images.fallback.src})`}} className="[&>h3]:hover:-translate-y-7 w-full bg-cover bg-center hover:scale-105 duration-[2s] ease-[cubic-bezier(0, 1, 0.35, 1)] transition-all flex items-center justify-center relative bg-no-repeat bg-[linear-gradient(to_bottom,rgba(0,0,0,0.5),rgba(0,0,0,0.5)),var(--image-url)] ">
<h3 className='transition uppercase text-white font-medium text-center max-md:text-sm'>{title}</h3>
const Image = motion(
forwardRef(({title, image}, ref) => {
return (
<div ref={ref} className="flex basis-1/5 max-lg:basis-1/2 h-64 max-md:h-44 max-2xl:h-60 overflow-hidden border-2 border-[#0E0808]">
<div style={{'--image-url': `url(${getImage(image).images.fallback.src})`}} className="[&>h3]:hover:-translate-y-7 w-full bg-cover bg-center hover:scale-105 duration-[2s] ease-[cubic-bezier(0, 1, 0.35, 1)] transition-all flex items-center justify-center relative bg-no-repeat bg-[linear-gradient(to_bottom,rgba(0,0,0,0.5),rgba(0,0,0,0.5)),var(--image-url)] ">
<h3 className='transition uppercase text-white font-medium text-center max-md:text-sm'>{title}</h3>
</div>
</div>
</div>
)
}
)
})
)
export default Image

@ -1,6 +1,6 @@
import React, { useEffect } from 'react'
import { motion, AnimatePresence } from "framer-motion";
import { IoMdClose } from "react-icons/io";
import { IoMdClose } from "@react-icons/all-files/io/IoMdClose";
import { disableBodyScroll, enableBodyScroll } from "body-scroll-lock";
const Modal = ({className, children, active, setActive, ...props}) => {

@ -2,20 +2,18 @@ import React from "react"
import { Link as AnchorLink } from "react-scroll";
import { Link } from "gatsby"
import { StaticImage } from "gatsby-plugin-image"
import { useLocation } from '@reach/router';
import { BsWhatsapp, BsTelegram } from "react-icons/bs";
import { BsWhatsapp } from "@react-icons/all-files/bs/BsWhatsapp";
import { BsTelegram } from "@react-icons/all-files/bs/BsTelegram";
const Footer = ({menu}) => {
const location = useLocation();
return(
<footer className="bg-[#0E0808] flex flex-col w-full">
<footer itemScope itemType="https://schema.org/WPFooter" className="bg-[#0E0808] flex flex-col w-full">
<div className="bg-black h-12 w-full"></div>
<div className="container mx-auto flex flex-col py-16 max-md:px-3">
<div className="flex max-md:flex-col items-center justify-between border-b-[1px] border-white pb-10">
<AnchorLink smooth={true} className="cursor-pointer max-md:mb-5" to="hero"><StaticImage src="../images/logo.svg" alt="logo" placeholder="none" className="w-20"/></AnchorLink>
{location.pathname === '/' && !menu
{menu === 'default'
?
<ul className='flex max-md:flex-col items-center'>
<li className="mr-12 max-md:mr-0 max-md:leading-7 text-white hover:text-gray-400 transition-colors text-sm"><AnchorLink className="cursor-pointer" to="about" smooth={true}>О компании</AnchorLink></li>
@ -33,13 +31,20 @@ const Footer = ({menu}) => {
}
</div>
<div className="flex mt-8 justify-between max-sm:flex-col max-sm:items-center">
<meta itemProp="copyrightYear" content={new Date().getFullYear()}/>
<meta itemProp="copyrightHolder" content="TalentTeam"/>
<p className="text-white text-sm max-sm:order-2">© {new Date().getFullYear()} TalentTeam</p>
<div className="flex max-sm:order-1 max-sm:mb-5">
<div className="flex max-sm:order-1 max-sm:mb-5" itemScope itemType="https://schema.org/Organization">
<meta itemProp="name" content="Talent Team"/>
<div className="hidden" itemProp="address" itemScope itemType="http://schema.org/PostalAddress">
<meta itemProp="streetAddress" content="Льва Толстого, 16"/>
<meta itemProp="addressLocality" content="Москва"/>
</div>
<div className="flex items-center">
<a href="https://wa.me/+79200745505" target="_blank" rel="noreferrer" aria-label="WhatsApp"><BsWhatsapp className="text-white text-lg mr-2"/></a>
<a href="https://t.me/+79200745505" target="_blank" rel="noreferrer" aria-label="Telegram"><BsTelegram className="text-white text-lg mr-2"/></a>
</div>
<a href="tel:+79200745505" className="text-white hover:text-gray-400 transition-colors">8 (920) 074 55-05</a>
<a href="tel:+79200745505" className="text-white hover:text-gray-400 transition-colors" itemProp="telephone">8 (920) 074 55-05</a>
</div>
</div>
</div>

@ -3,7 +3,8 @@ import { Link } from "gatsby"
import { Link as AnchorLink } from "react-scroll";
import { useLocation } from '@reach/router';
import { disableBodyScroll, enableBodyScroll } from "body-scroll-lock";
import { BsWhatsapp, BsTelegram } from "react-icons/bs";
import { BsWhatsapp } from "@react-icons/all-files/bs/BsWhatsapp";
import { BsTelegram } from "@react-icons/all-files/bs/BsTelegram";
const Header = ({ menu }) => {
@ -43,48 +44,58 @@ const Header = ({ menu }) => {
if(location.pathname === '/') {
setMenuH(ref.current.scrollHeight);
}
}, [location.pathname]);
}, [menu]); //eslint-disable-line
return (
<header className="bg-black h-9 flex w-full fixed top-0 z-30 max-md:justify-between max-md:px-3 max-md:items-center">
<nav className={burgerMenu ? menuGeneralClasses + " max-md:h-screen max-md:translate-y-0" : menuGeneralClasses + " max-md:h-0 max-md:-translate-y-full"}>
<div className="flex items-center max-md:mb-12 max-md:flex-col">
<div className="flex items-center max-md:mb-12 max-md:flex-col" itemScope itemType="https://schema.org/Organization">
<meta itemProp="name" content="Talent Team"/>
<div className="hidden" itemProp="address" itemScope itemType="https://schema.org/PostalAddress">
<meta itemProp="streetAddress" content="Льва Толстого, 16"/>
<meta itemProp="addressLocality" content="Москва"/>
</div>
<div className="flex items-center max-md:mb-3">
<a href="https://wa.me/+79200745505" target="_blank" rel="noreferrer" aria-label="WhatsApp"><BsWhatsapp className="text-white text-lg max-md:text-xl mr-2"/></a>
<a href="https://t.me/+79200745505" target="_blank" rel="noreferrer" aria-label="Telegram"><BsTelegram className="text-white text-lg max-md:text-xl mr-5 max-md:mr-0"/></a>
</div>
<a href="tel:+79200745505" className="text-white hover:text-gray-400 transition-colors text-xs max-md:text-xl">8 (920) 074 55-05</a>
<a itemProp="telephone" href="tel:+79200745505" className="text-white hover:text-gray-400 transition-colors text-xs max-md:text-xl">8 (920) 074 55-05</a>
</div>
{location.pathname === '/' && !menu
{menu === 'default'
?
<ul className='flex items-center max-md:flex-col'>
<li className="mr-12 max-md:mr-0 text-white hover:text-gray-400 transition-colors text-xs max-md:text-lg max-md:mb-3"><AnchorLink className="cursor-pointer" to="about" smooth={true} onClick={e=> menuHandler()}>О компании</AnchorLink></li>
<ul className='flex items-center max-md:flex-col' itemScope itemType="https://schema.org/SiteNavigationElement">
<li className="mr-12 max-md:mr-0 text-white hover:text-gray-400 transition-colors text-xs max-md:text-lg max-md:mb-3" itemProp="name"><AnchorLink itemProp="url" className="cursor-pointer" to="about" smooth={true} onClick={e=> menuHandler()}>О компании</AnchorLink></li>
<li style={{'--menu-h': `${menuH + 65 }px`}} className={"mr-12 max-md:mr-0 text-white text-xs max-md:text-lg max-md:mb-3 relative [&>.drop-menu]:hover:h-[var(--menu-h)]"}>
<p className="cursor-pointer">Услуги</p>
<ul ref={ref} className="absolute flex flex-col justify-center drop-menu bg-black px-4 -left-3 h-0 overflow-hidden transition-all">
<li className="mr-0 mb-2 hover:text-gray-400 transition-colors"><AnchorLink className="cursor-pointer" to="games" smooth={true} onClick={e=> menuHandler()}>Бизнес-игры</AnchorLink></li>
<li className="mr-0 mb-2 hover:text-gray-400 transition-colors"><AnchorLink className="cursor-pointer" to="facilitations" smooth={true} onClick={e=> menuHandler()}>Фасилитации</AnchorLink></li>
<li className="mr-0 mb-2 hover:text-gray-400 transition-colors"><AnchorLink className="cursor-pointer" to="teambuilding" smooth={true} onClick={e=> menuHandler()}>Тимбилдинг</AnchorLink></li>
<li className="mr-0 hover:text-gray-400 transition-colors"><AnchorLink className="cursor-pointer" to="legosp" smooth={true} onClick={e=> menuHandler()}>Lego SP</AnchorLink></li>
<li className="mr-0 mb-2 hover:text-gray-400 transition-colors" itemProp="name"><AnchorLink itemProp="url" className="cursor-pointer" to="games" smooth={true} onClick={e=> menuHandler()}>Бизнес-игры</AnchorLink></li>
<li className="mr-0 mb-2 hover:text-gray-400 transition-colors" itemProp="name"><AnchorLink itemProp="url" className="cursor-pointer" to="facilitations" smooth={true} onClick={e=> menuHandler()}>Фасилитации</AnchorLink></li>
<li className="mr-0 mb-2 hover:text-gray-400 transition-colors" itemProp="name"><AnchorLink itemProp="url" className="cursor-pointer" to="teambuilding" smooth={true} onClick={e=> menuHandler()}>Тимбилдинг</AnchorLink></li>
<li className="mr-0 hover:text-gray-400 transition-colors" itemProp="name"><AnchorLink itemProp="url" className="cursor-pointer" to="legosp" smooth={true} onClick={e=> menuHandler()}>Lego SP</AnchorLink></li>
</ul>
</li>
<li className="mr-12 max-md:mr-0 text-white hover:text-gray-400 transition-colors text-xs max-md:text-lg max-md:mb-3"><AnchorLink className="cursor-pointer" to="team" smooth={true} onClick={e=> menuHandler()}>Наша команда</AnchorLink></li>
<li className="text-white hover:text-gray-400 transition-colors text-xs max-md:text-lg max-md:mb-3"><AnchorLink className="cursor-pointer" to="contacts" smooth={true} onClick={e=> menuHandler()}>Контакты</AnchorLink></li>
<li className="mr-12 max-md:mr-0 text-white hover:text-gray-400 transition-colors text-xs max-md:text-lg max-md:mb-3" itemProp="name"><AnchorLink itemProp="url" className="cursor-pointer" to="team" smooth={true} onClick={e=> menuHandler()}>Наша команда</AnchorLink></li>
<li className="text-white hover:text-gray-400 transition-colors text-xs max-md:text-lg max-md:mb-3" itemProp="name"><AnchorLink itemProp="url" className="cursor-pointer" to="contacts" smooth={true} onClick={e=> menuHandler()}>Контакты</AnchorLink></li>
</ul>
:
<ul className='flex items-center max-md:flex-col last:[&>li]:mr-0'>
<li className="mr-12 max-md:mr-0 max-lg:mr-5 text-white hover:text-gray-400 transition-colors text-xs max-md:text-lg max-md:mb-3"><Link to="/">Главная</Link></li>
<ul className='flex items-center max-md:flex-col last:[&>li]:mr-0' itemScope itemType="https://schema.org/SiteNavigationElement">
<li className="mr-12 max-md:mr-0 max-lg:mr-5 text-white hover:text-gray-400 transition-colors text-xs max-md:text-lg max-md:mb-3" itemProp="name"><Link itemProp="url" to="/">Главная</Link></li>
{menu.map(item=>
<li key={item.id} className="mr-12 max-md:mr-0 max-lg:mr-5 text-white hover:text-gray-400 transition-colors text-xs max-md:text-lg max-md:mb-3"><AnchorLink className="cursor-pointer" to={item.to} smooth={true} onClick={e=> menuHandler()}>{item.title}</AnchorLink></li>
<li key={item.id} className="mr-12 max-md:mr-0 max-lg:mr-5 text-white hover:text-gray-400 transition-colors text-xs max-md:text-lg max-md:mb-3" itemProp="name"><AnchorLink itemProp="url" className="cursor-pointer" to={item.to} smooth={true} onClick={e=> menuHandler()}>{item.title}</AnchorLink></li>
)}
</ul>
}
</nav>
<div className="md:hidden flex">
<div className="md:hidden flex" itemScope itemType="https://schema.org/Organization">
<meta itemProp="name" content="Talent Team"/>
<div className="hidden" itemProp="address" itemScope itemType="https://schema.org/PostalAddress">
<meta itemProp="streetAddress" content="Льва Толстого, 16"/>
<meta itemProp="addressLocality" content="Москва"/>
</div>
<div className="flex items-center">
<a href="https://wa.me/+79200745505" target="_blank" rel="noreferrer" aria-label="WhatsApp"><BsWhatsapp className="text-white text-lg mr-2"/></a>
<a href="https://t.me/+79200745505" target="_blank" rel="noreferrer" aria-label="Telegram"><BsTelegram className="text-white text-lg mr-3"/></a>
</div>
<a href="tel:+79200745505" className="text-white hover:text-gray-400 transition-colors text-md">8 (920) 074 55-05</a>
<a itemProp="telephone" href="tel:+79200745505" className="text-white hover:text-gray-400 transition-colors text-md">8 (920) 074 55-05</a>
</div>
<div className="md:hidden cursor-pointer" role="presentation" onClick={e=> burgerActivation()} onKeyDown={e=> this.handleKeyDown}>
<div className={burgerMenu ? burgerGeneralClasses + ' before:rotate-45 before:top-0 after:-rotate-45 after:bottom-[3px]' : burgerGeneralClasses + ' before:top-[7px] after:bottom-[10px]'}></div>

@ -28,8 +28,8 @@ function Seo({ description, title, children }) {
return (
<>
<title>{defaultTitle ? `${title} | ${defaultTitle}` : title}</title>
<meta name="description" content={metaDescription} />
<title itemProp="headline">{defaultTitle ? `${title} | ${defaultTitle}` : title}</title>
<meta itemProp="description" name="description" content={metaDescription} />
<meta property="og:title" content={title} />
<meta property="og:description" content={metaDescription} />
<meta property="og:type" content="website" />

@ -0,0 +1,36 @@
import React from "react"
import PropTypes from "prop-types"
export default function HTML(props) {
return (
<html {...props.htmlAttributes}>
<head itemScope itemType="https://schema.org/WPHeader">
<meta charSet="utf-8" />
<meta httpEquiv="x-ua-compatible" content="ie=edge" />
<meta
name="viewport"
content="width=device-width, initial-scale=1, shrink-to-fit=no"
/>
{props.headComponents}
</head>
<body {...props.bodyAttributes}>
{props.preBodyComponents}
<div
key={`body`}
id="___gatsby"
dangerouslySetInnerHTML={{ __html: props.body }}
/>
{props.postBodyComponents}
</body>
</html>
)
}
HTML.propTypes = {
htmlAttributes: PropTypes.object,
headComponents: PropTypes.array,
bodyAttributes: PropTypes.object,
preBodyComponents: PropTypes.array,
body: PropTypes.string,
postBodyComponents: PropTypes.array,
}

@ -76,6 +76,6 @@ const EightColorsDelegationPage = () => {
*
* See: https://www.gatsbyjs.com/docs/reference/built-in-components/gatsby-head/
*/
export const Head = () => <Seo title='8 цветов делегирования'/>
export const Head = () => <Seo title='8 цветов делегирования' description='«8 ЦВЕТОВ ДЕЛЕГИРОВАНИЯ» деловая обучающая игра-тренажёр, которая познакомит с 7 уровнями передачи полномочий по модели Юргена Аппело (Jurgen Appelo, 2010г). Понятие относится к концепции Менеджмент 3.0 ― agile-подходу в бизнесе, позволяющему адаптировать менеджмент к гибкому мышлению, позволить сотрудникам раскрыть способности, и благодаря этому совершить прорыв в эффективности работы отдельных людей, команд и самих руководителей.'/>
export default EightColorsDelegationPage

@ -59,6 +59,6 @@ const BridgePage = () => {
*
* See: https://www.gatsbyjs.com/docs/reference/built-in-components/gatsby-head/
*/
export const Head = () => <Seo title="Мост" />
export const Head = () => <Seo title="Мост" description='LEONARDO BRIDGE это командная игра, в тематике проектного управления. Отличная возможность показать работу разных команд в едином проекте, их взаимодействие, умение мыслить системно, нацеленность участников на выработку общих решений, понимание работы с ограниченными ресурсами. Чтобы получить все важные делали для создания уникального моста, командам предстоит выполнить много сложных заданий' />
export default BridgePage

@ -88,6 +88,6 @@ const CAPage = () => {
*
* See: https://www.gatsbyjs.com/docs/reference/built-in-components/gatsby-head/
*/
export const Head = () => <Seo title="Вызов принят" />
export const Head = () => <Seo title="Вызов принят" description='Участники выступают в качестве руководителей региональных отделений одной компании в разных городах. Цель каждого - первым реализовать проект по увеличению объема продаж в своем регионе в 2 раза с наименьшими финансовыми затратами. Успех будет зависеть от правильности распределения задач, подбора сотрудников для их выполнения, выбора стиля руководства.' />
export default CAPage

@ -94,6 +94,6 @@ const EIPage = () => {
*
* See: https://www.gatsbyjs.com/docs/reference/built-in-components/gatsby-head/
*/
export const Head = () => <Seo title="Эмоциональный интеллект" />
export const Head = () => <Seo title="Эмоциональный интеллект" description='Эмоции самые быстрые механизмы принятия решений. Не принимать решений в эмоциях - очень разумный совет. Но умение эффективно использовать для принятия решений информацию, которую дают именно эмоции, отличает успешных людей. Это умение определяется эмоциональным интеллектом'/>
export default EIPage

@ -60,6 +60,6 @@ const HBCPage = () => {
*
* See: https://www.gatsbyjs.com/docs/reference/built-in-components/gatsby-head/
*/
export const Head = () => <Seo title="Нistory by cards" />
export const Head = () => <Seo title="Нistory by cards" description='Собрать правильную последовательность из зашифрованных карточек, которые вместе составляют единый логический сюжет и головоломку. Игра проходит в несколько раундов, важно не только правильно выполнять задания, но и работать на опережения.'/>
export default HBCPage

@ -87,6 +87,6 @@ const MansionMatildaPage = () => {
*
* See: https://www.gatsbyjs.com/docs/reference/built-in-components/gatsby-head/
*/
export const Head = () => <Seo title='Тайны особняка "Матильда"' />
export const Head = () => <Seo title='Тайны особняка "Матильда"' description='7 игровых дней в ролевой игре ТАЙНЫ ОСОБНЯКА "МАТИЛЬДА" участники занимаются разгадкой уникального преступления, и шансы на успех зависят от них самих. Минуты пролетают незаметно в поисках улик и вещдоков, которые ведут к разгадке...'/>
export default MansionMatildaPage

@ -65,6 +65,6 @@ const MiddleagesSecretsPage = () => {
*
* See: https://www.gatsbyjs.com/docs/reference/built-in-components/gatsby-head/
*/
export const Head = () => <Seo title="Секреты средневековья" />
export const Head = () => <Seo title="Секреты средневековья" description='По сюжету игры участники являются инженерами закрытой научной лаборатории, которая проводит исторические исследования, используя перемещения во времени. Участникам предстоит восстановить давно не функционирующие акведуки, которые сохранились в 4-х странах Империи.'/>
export default MiddleagesSecretsPage

@ -87,6 +87,6 @@ const PlaceUnderSunPage = () => {
*
* See: https://www.gatsbyjs.com/docs/reference/built-in-components/gatsby-head/
*/
export const Head = () => <Seo title='Место под солнцем' />
export const Head = () => <Seo title='Место под солнцем' description='Несколько поколений 4 семейных династии получали прибыль и делили место среди самых уважаемых жителей города. Но прогресс заставляет бизнес меняться, рушить выстроенные связи и строить новые партнерства. Кто из них станет более влиятельным? Кто потеряет свои позиции и почему? Как игра проявит шаблоны принятия решений и коммуникаций, влияющие на наш результат в бизнесе?'/>
export default PlaceUnderSunPage

@ -14,7 +14,7 @@ import Contact from "../components/Contact"
const IndexPage = ({data}) => {
return (
<Layout>
<Layout menu='default'>
<Hero id='hero'></Hero>
<Advantages id='advantages'></Advantages>
<About id='about'></About>

Loading…
Cancel
Save