diff --git a/gatsby-node.js b/gatsby-node.js index cc5cf9aa3892..c70a2ca99181 100644 --- a/gatsby-node.js +++ b/gatsby-node.js @@ -308,6 +308,24 @@ exports.createPages = async ({ actions, graphql, reporter }) => { redirectInBrowser: true, isPermanent: true, }); + createRedirect({ + fromPath: "/cloud-native-management/kanvas/visualize", + toPath: "/cloud-native-management/kanvas/operate", + redirectInBrowser: true, + isPermanent: true, + }); + createRedirect({ + fromPath: "/kanvas/visualize", + toPath: "/cloud-native-management/kanvas/operate", + redirectInBrowser: true, + isPermanent: true, + }); + createRedirect({ + fromPath: "/kanvas/operate", + toPath: "/cloud-native-management/kanvas/operate", + redirectInBrowser: true, + isPermanent: true, + }); createRedirect({ fromPath: "/resources/cloud-native/hpes-adoption-of-meshery-and-meshmap", toPath: "/resources/case-study/hpes-adoption-of-meshery-and-meshmap", diff --git a/package-lock.json b/package-lock.json index c8255dedc1d0..54426d7a5db9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,7 +17,7 @@ "@fullcalendar/interaction": "^6.0.1", "@fullcalendar/react": "^6.1.8", "@layer5/meshery-design-embed": "^0.4.0", - "@layer5/sistent": "^0.14.60", + "@layer5/sistent": "^0.14.109", "@loadable/component": "^5.16.4", "@mdx-js/mdx": "1.6.22", "@mdx-js/react": "1.6.22", @@ -2345,7 +2345,6 @@ "version": "2.1.4", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", - "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -2368,7 +2367,6 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -2384,7 +2382,6 @@ "version": "13.24.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, "dependencies": { "type-fest": "^0.20.2" }, @@ -2398,14 +2395,12 @@ "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "node_modules/@eslint/js": { "version": "8.57.1", "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", - "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } @@ -2994,7 +2989,6 @@ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", "deprecated": "Use @eslint/config-array instead", - "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^2.0.3", "debug": "^4.3.1", @@ -3008,7 +3002,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, "engines": { "node": ">=12.22" }, @@ -3021,8 +3014,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead", - "dev": true + "deprecated": "Use @eslint/object-schema instead" }, "node_modules/@img/sharp-darwin-arm64": { "version": "0.33.5", @@ -3518,11 +3510,13 @@ } }, "node_modules/@layer5/sistent": { - "version": "0.14.93", - "resolved": "https://registry.npmjs.org/@layer5/sistent/-/sistent-0.14.93.tgz", - "integrity": "sha512-+J1IkTERVm8A/nJufAmbkA8WnChlyAR+9gM+8l03jXx/lKMmht2gPC2RuM+DHbb1vr9a+xqKiye6IG+GHjcPeg==", + "version": "0.14.109", + "resolved": "https://registry.npmjs.org/@layer5/sistent/-/sistent-0.14.109.tgz", + "integrity": "sha512-aLQhyA2Z/sZ4D87LWv5m3voJdQ5Fpw4WDb4oyNKfhOo8TaE/jp6irj0HvOq4UZFSVXN5gihkft1QOaLQ1xiitw==", "dependencies": { - "lodash": "^4.17.21" + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "react-share": "^5.1.0" }, "peerDependencies": { "@emotion/react": "^11.11.3", @@ -3534,7 +3528,7 @@ "mui-datatables": "*", "react": ">=17", "react-dom": ">=17", - "xstate": "^5.13.0" + "xstate": "^5.18.2" }, "peerDependenciesMeta": { "@emotion/react": { @@ -3560,6 +3554,18 @@ } } }, + "node_modules/@layer5/sistent/node_modules/react-share": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/react-share/-/react-share-5.1.0.tgz", + "integrity": "sha512-OvyfMtj/0UzH1wi90OdHhZVJ6WUC/+IeWvBwppeZozwIGyAjQgyR0QXlHOrxVHVECqnGvcpBaFTXVrqouTieaw==", + "dependencies": { + "classnames": "^2.3.2", + "jsonp": "^0.2.1" + }, + "peerDependencies": { + "react": "^17 || ^18" + } + }, "node_modules/@lezer/common": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.2.1.tgz", @@ -6169,31 +6175,30 @@ "integrity": "sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", - "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz", + "integrity": "sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==", + "peer": true, "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/type-utils": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", + "@typescript-eslint/experimental-utils": "4.33.0", + "@typescript-eslint/scope-manager": "4.33.0", + "debug": "^4.3.1", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.1.0", + "semver": "^7.3.5", "tsutils": "^3.21.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^10.12.0 || >=12.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "@typescript-eslint/parser": "^4.0.0", + "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -6205,6 +6210,7 @@ "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "peer": true, "bin": { "semver": "bin/semver.js" }, @@ -6212,25 +6218,68 @@ "node": ">=10" } }, + "node_modules/@typescript-eslint/experimental-utils": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz", + "integrity": "sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==", + "peer": true, + "dependencies": { + "@types/json-schema": "^7.0.7", + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + } + }, + "node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "peer": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, "node_modules/@typescript-eslint/parser": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", - "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.33.0.tgz", + "integrity": "sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==", + "peer": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "debug": "^4.3.4" + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "debug": "^4.3.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^10.12.0 || >=12.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -6239,15 +6288,16 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz", + "integrity": "sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==", + "peer": true, "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" }, "funding": { "type": "opencollective", @@ -6280,7 +6330,7 @@ } } }, - "node_modules/@typescript-eslint/types": { + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { "version": "5.62.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", @@ -6292,7 +6342,7 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/typescript-estree": { + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { "version": "5.62.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", @@ -6318,10 +6368,89 @@ } } }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz", + "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==", + "peer": true, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz", + "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==", + "peer": true, + "dependencies": { + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0", + "debug": "^4.3.1", + "globby": "^11.0.3", + "is-glob": "^4.0.1", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "peer": true, "bin": { "semver": "bin/semver.js" }, @@ -6354,18 +6483,61 @@ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/@typescript-eslint/utils/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "bin": { - "semver": "bin/semver.js" + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" }, "engines": { - "node": ">=10" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/visitor-keys": { + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { "version": "5.62.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", @@ -6381,7 +6553,7 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "node_modules/@typescript-eslint/utils/node_modules/eslint-visitor-keys": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", @@ -6392,11 +6564,38 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/@typescript-eslint/utils/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz", + "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==", + "peer": true, + "dependencies": { + "@typescript-eslint/types": "4.33.0", + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@ungap/structured-clone": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" }, "node_modules/@vercel/webpack-asset-relocator-loader": { "version": "1.7.3", @@ -6586,6 +6785,25 @@ "resolved": "https://registry.npmjs.org/@xobotyi/scrollbar-width/-/scrollbar-width-1.9.5.tgz", "integrity": "sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==" }, + "node_modules/@xstate/react": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@xstate/react/-/react-4.1.3.tgz", + "integrity": "sha512-zhE+ZfrcCR87bu71Rkh5Z5ruZBivR/7uD/dkelzJqjQdI45IZc9DqTI8lL4Cg5+VN2p5k86KxDsusqW1kW11Tg==", + "peer": true, + "dependencies": { + "use-isomorphic-layout-effect": "^1.1.2", + "use-sync-external-store": "^1.2.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "xstate": "^5.18.2" + }, + "peerDependenciesMeta": { + "xstate": { + "optional": true + } + } + }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", @@ -7233,6 +7451,36 @@ "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz", "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==" }, + "node_modules/babel-eslint": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", + "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==", + "deprecated": "babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.7.0", + "@babel/traverse": "^7.7.0", + "@babel/types": "^7.7.0", + "eslint-visitor-keys": "^1.0.0", + "resolve": "^1.12.0" + }, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "eslint": ">= 4.12.1" + } + }, + "node_modules/babel-eslint/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "peer": true, + "engines": { + "node": ">=4" + } + }, "node_modules/babel-jsx-utils": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/babel-jsx-utils/-/babel-jsx-utils-1.1.0.tgz", @@ -7618,6 +7866,14 @@ "regenerator-runtime": "^0.11.0" } }, + "node_modules/babel-runtime/node_modules/core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", + "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", + "dev": true, + "hasInstallScript": true + }, "node_modules/babel-runtime/node_modules/regenerator-runtime": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", @@ -9175,12 +9431,14 @@ } }, "node_modules/core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", - "dev": true, - "hasInstallScript": true + "version": "3.39.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.39.0.tgz", + "integrity": "sha512-raM0ew0/jJUqkJ0E6e8UDtl+y/7ktFivgWvqw8dNSQeNWoSDLvQ1H/RN3aPXB9tBd4/FhyR4RDPGhsNIMsAn7g==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } }, "node_modules/core-js-compat": { "version": "3.38.1", @@ -11257,7 +11515,6 @@ "version": "8.57.1", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", - "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -11703,7 +11960,6 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -11719,7 +11975,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -11734,7 +11989,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -11750,7 +12004,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -11761,14 +12014,12 @@ "node_modules/eslint/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/eslint/node_modules/eslint-scope": { "version": "7.2.2", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -11784,7 +12035,6 @@ "version": "3.4.3", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -11796,7 +12046,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, "dependencies": { "is-glob": "^4.0.3" }, @@ -11808,7 +12057,6 @@ "version": "13.24.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, "dependencies": { "type-fest": "^0.20.2" }, @@ -11823,7 +12071,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, "engines": { "node": ">=8" } @@ -11831,14 +12078,12 @@ "node_modules/eslint/node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "node_modules/eslint/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -11864,7 +12109,6 @@ "version": "9.6.1", "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, "dependencies": { "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", @@ -11881,7 +12125,6 @@ "version": "3.4.3", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -14011,16 +14254,6 @@ "upper-case": "^1.1.1" } }, - "node_modules/gatsby-plugin-mdx/node_modules/core-js": { - "version": "3.38.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", - "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, "node_modules/gatsby-plugin-mdx/node_modules/dot-case": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz", @@ -14968,6 +15201,154 @@ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "deprecated": "Use @eslint/object-schema instead" }, + "node_modules/gatsby/node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", + "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "dependencies": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/type-utils": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/gatsby/node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/gatsby/node_modules/@typescript-eslint/parser": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", + "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "dependencies": { + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/gatsby/node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/gatsby/node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/gatsby/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/gatsby/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/gatsby/node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/gatsby/node_modules/acorn": { "version": "7.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", @@ -15055,16 +15436,6 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "node_modules/gatsby/node_modules/core-js": { - "version": "3.38.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", - "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, "node_modules/gatsby/node_modules/eslint": { "version": "7.32.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", @@ -17102,7 +17473,6 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, "engines": { "node": ">=8" } @@ -17508,6 +17878,12 @@ "@sideway/pinpoint": "^2.0.0" } }, + "node_modules/jquery": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", + "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==", + "peer": true + }, "node_modules/js-cookie": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz", @@ -25738,6 +26114,19 @@ "is-typedarray": "^1.0.0" } }, + "node_modules/typescript": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, "node_modules/ua-parser-js": { "version": "1.0.39", "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.39.tgz", @@ -26327,6 +26716,15 @@ } } }, + "node_modules/use-sync-external-store": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz", + "integrity": "sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==", + "peer": true, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", diff --git a/package.json b/package.json index c0e0de30d58c..11fc528e5674 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "@fullcalendar/interaction": "^6.0.1", "@fullcalendar/react": "^6.1.8", "@layer5/meshery-design-embed": "^0.4.0", - "@layer5/sistent": "^0.14.60", + "@layer5/sistent": "^0.14.109", "@loadable/component": "^5.16.4", "@mdx-js/mdx": "1.6.22", "@mdx-js/react": "1.6.22", diff --git a/src/assets/images/stick-figures/SVG/1.svg b/src/assets/images/five/SVG/1.svg similarity index 100% rename from src/assets/images/stick-figures/SVG/1.svg rename to src/assets/images/five/SVG/1.svg diff --git a/src/assets/images/stick-figures/SVG/10.svg b/src/assets/images/five/SVG/10.svg similarity index 100% rename from src/assets/images/stick-figures/SVG/10.svg rename to src/assets/images/five/SVG/10.svg diff --git a/src/assets/images/stick-figures/SVG/11.svg b/src/assets/images/five/SVG/11.svg similarity index 100% rename from src/assets/images/stick-figures/SVG/11.svg rename to src/assets/images/five/SVG/11.svg diff --git a/src/assets/images/stick-figures/SVG/12.svg b/src/assets/images/five/SVG/12.svg similarity index 100% rename from src/assets/images/stick-figures/SVG/12.svg rename to src/assets/images/five/SVG/12.svg diff --git a/src/assets/images/stick-figures/SVG/13.svg b/src/assets/images/five/SVG/13.svg similarity index 100% rename from src/assets/images/stick-figures/SVG/13.svg rename to src/assets/images/five/SVG/13.svg diff --git a/src/assets/images/stick-figures/SVG/14.svg b/src/assets/images/five/SVG/14.svg similarity index 100% rename from src/assets/images/stick-figures/SVG/14.svg rename to src/assets/images/five/SVG/14.svg diff --git a/src/assets/images/stick-figures/SVG/15.svg b/src/assets/images/five/SVG/15.svg similarity index 100% rename from src/assets/images/stick-figures/SVG/15.svg rename to src/assets/images/five/SVG/15.svg diff --git a/src/assets/images/stick-figures/SVG/16.svg b/src/assets/images/five/SVG/16.svg similarity index 100% rename from src/assets/images/stick-figures/SVG/16.svg rename to src/assets/images/five/SVG/16.svg diff --git a/src/assets/images/stick-figures/SVG/17.svg b/src/assets/images/five/SVG/17.svg similarity index 100% rename from src/assets/images/stick-figures/SVG/17.svg rename to src/assets/images/five/SVG/17.svg diff --git a/src/assets/images/stick-figures/SVG/18.svg b/src/assets/images/five/SVG/18.svg similarity index 100% rename from src/assets/images/stick-figures/SVG/18.svg rename to src/assets/images/five/SVG/18.svg diff --git a/src/assets/images/stick-figures/SVG/19.svg b/src/assets/images/five/SVG/19.svg similarity index 100% rename from src/assets/images/stick-figures/SVG/19.svg rename to src/assets/images/five/SVG/19.svg diff --git a/src/assets/images/stick-figures/SVG/2.svg b/src/assets/images/five/SVG/2.svg similarity index 100% rename from src/assets/images/stick-figures/SVG/2.svg rename to src/assets/images/five/SVG/2.svg diff --git a/src/assets/images/stick-figures/SVG/3.svg b/src/assets/images/five/SVG/3.svg similarity index 100% rename from src/assets/images/stick-figures/SVG/3.svg rename to src/assets/images/five/SVG/3.svg diff --git a/src/assets/images/stick-figures/SVG/4.svg b/src/assets/images/five/SVG/4.svg similarity index 100% rename from src/assets/images/stick-figures/SVG/4.svg rename to src/assets/images/five/SVG/4.svg diff --git a/src/assets/images/stick-figures/SVG/5.svg b/src/assets/images/five/SVG/5.svg similarity index 100% rename from src/assets/images/stick-figures/SVG/5.svg rename to src/assets/images/five/SVG/5.svg diff --git a/src/assets/images/stick-figures/SVG/6.svg b/src/assets/images/five/SVG/6.svg similarity index 100% rename from src/assets/images/stick-figures/SVG/6.svg rename to src/assets/images/five/SVG/6.svg diff --git a/src/assets/images/stick-figures/SVG/7.svg b/src/assets/images/five/SVG/7.svg similarity index 100% rename from src/assets/images/stick-figures/SVG/7.svg rename to src/assets/images/five/SVG/7.svg diff --git a/src/assets/images/stick-figures/SVG/8.svg b/src/assets/images/five/SVG/8.svg similarity index 100% rename from src/assets/images/stick-figures/SVG/8.svg rename to src/assets/images/five/SVG/8.svg diff --git a/src/assets/images/stick-figures/SVG/9.svg b/src/assets/images/five/SVG/9.svg similarity index 100% rename from src/assets/images/stick-figures/SVG/9.svg rename to src/assets/images/five/SVG/9.svg diff --git a/src/assets/images/stick-figures/SVG/layer5-five-mascot-means-business.gif b/src/assets/images/five/SVG/layer5-five-mascot-means-business.gif similarity index 100% rename from src/assets/images/stick-figures/SVG/layer5-five-mascot-means-business.gif rename to src/assets/images/five/SVG/layer5-five-mascot-means-business.gif diff --git a/src/assets/images/stick-figures/SVG/layer5-five-mascot-means-business.png b/src/assets/images/five/SVG/layer5-five-mascot-means-business.png similarity index 100% rename from src/assets/images/stick-figures/SVG/layer5-five-mascot-means-business.png rename to src/assets/images/five/SVG/layer5-five-mascot-means-business.png diff --git a/src/assets/images/stick-figures/SVG/layer5-five-mascot-means-business.svg b/src/assets/images/five/SVG/layer5-five-mascot-means-business.svg similarity index 100% rename from src/assets/images/stick-figures/SVG/layer5-five-mascot-means-business.svg rename to src/assets/images/five/SVG/layer5-five-mascot-means-business.svg diff --git a/src/assets/images/stick-figures/SVG/resources-sign.svg b/src/assets/images/five/SVG/resources-sign.svg similarity index 100% rename from src/assets/images/stick-figures/SVG/resources-sign.svg rename to src/assets/images/five/SVG/resources-sign.svg diff --git a/src/assets/images/stick-figures/SVG/stick-figures.svg b/src/assets/images/five/SVG/stick-figures.svg similarity index 100% rename from src/assets/images/stick-figures/SVG/stick-figures.svg rename to src/assets/images/five/SVG/stick-figures.svg diff --git a/src/assets/images/stick-figures/SVG/team-of-fives.svg b/src/assets/images/five/SVG/team-of-fives.svg similarity index 100% rename from src/assets/images/stick-figures/SVG/team-of-fives.svg rename to src/assets/images/five/SVG/team-of-fives.svg diff --git a/src/assets/images/stick-figures/meshery-worship.png b/src/assets/images/five/meshery-worship.png similarity index 100% rename from src/assets/images/stick-figures/meshery-worship.png rename to src/assets/images/five/meshery-worship.png diff --git a/src/assets/images/kanvas/horizontal/kanvas-horizontal-partial-color.png b/src/assets/images/kanvas/horizontal/kanvas-horizontal-partial-color.png index f14f8054c734..3c48767e5504 100644 Binary files a/src/assets/images/kanvas/horizontal/kanvas-horizontal-partial-color.png and b/src/assets/images/kanvas/horizontal/kanvas-horizontal-partial-color.png differ diff --git a/src/assets/images/kanvas/horizontal/kanvas-horizontal-partial-color.svg b/src/assets/images/kanvas/horizontal/kanvas-horizontal-partial-color.svg index b6a40624d0d2..32b764d4f3d7 100644 --- a/src/assets/images/kanvas/horizontal/kanvas-horizontal-partial-color.svg +++ b/src/assets/images/kanvas/horizontal/kanvas-horizontal-partial-color.svg @@ -16,22 +16,22 @@ - - - - + + + + - - + + - + - - - - - - + + + + + + \ No newline at end of file diff --git a/src/assets/images/kanvas/horizontal/kanvas-horizontal-white.png b/src/assets/images/kanvas/horizontal/kanvas-horizontal-white.png index 3750861b10bb..72f5fa0c7691 100644 Binary files a/src/assets/images/kanvas/horizontal/kanvas-horizontal-white.png and b/src/assets/images/kanvas/horizontal/kanvas-horizontal-white.png differ diff --git a/src/assets/images/kanvas/horizontal/kanvas-horizontal-white.svg b/src/assets/images/kanvas/horizontal/kanvas-horizontal-white.svg index e509a1b5a42e..6fc970b1ba19 100644 --- a/src/assets/images/kanvas/horizontal/kanvas-horizontal-white.svg +++ b/src/assets/images/kanvas/horizontal/kanvas-horizontal-white.svg @@ -12,28 +12,28 @@ - - - - + + + + - - + + - + - - + + - + - + - + - + \ No newline at end of file diff --git a/src/assets/images/kanvas/stacked/kanvas-stacked-color.png b/src/assets/images/kanvas/stacked/kanvas-stacked-color.png index a985d28043d0..0a0a2f410ea1 100644 Binary files a/src/assets/images/kanvas/stacked/kanvas-stacked-color.png and b/src/assets/images/kanvas/stacked/kanvas-stacked-color.png differ diff --git a/src/assets/images/kanvas/stacked/kanvas-stacked-color.svg b/src/assets/images/kanvas/stacked/kanvas-stacked-color.svg index cae5b1b6dbe3..9aa8164a931e 100644 --- a/src/assets/images/kanvas/stacked/kanvas-stacked-color.svg +++ b/src/assets/images/kanvas/stacked/kanvas-stacked-color.svg @@ -20,22 +20,22 @@ - - - - + + + + - - + + - + - - - - - - + + + + + + \ No newline at end of file diff --git a/src/assets/images/kanvas/stacked/kanvas-stacked-partial-color.png b/src/assets/images/kanvas/stacked/kanvas-stacked-partial-color.png new file mode 100644 index 000000000000..df65c7be37ae Binary files /dev/null and b/src/assets/images/kanvas/stacked/kanvas-stacked-partial-color.png differ diff --git a/src/assets/images/kanvas/stacked/kanvas-stacked-partial-color.svg b/src/assets/images/kanvas/stacked/kanvas-stacked-partial-color.svg new file mode 100644 index 000000000000..760a411d258a --- /dev/null +++ b/src/assets/images/kanvas/stacked/kanvas-stacked-partial-color.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/kanvas/stacked/kanvas-stacked-white.png b/src/assets/images/kanvas/stacked/kanvas-stacked-white.png index cd1deb19fa32..04ac618f115f 100644 Binary files a/src/assets/images/kanvas/stacked/kanvas-stacked-white.png and b/src/assets/images/kanvas/stacked/kanvas-stacked-white.png differ diff --git a/src/assets/images/kanvas/stacked/kanvas-stacked-white.svg b/src/assets/images/kanvas/stacked/kanvas-stacked-white.svg index 12f1ca430ea7..8d1efb11a211 100644 --- a/src/assets/images/kanvas/stacked/kanvas-stacked-white.svg +++ b/src/assets/images/kanvas/stacked/kanvas-stacked-white.svg @@ -12,28 +12,28 @@ - - - - + + + + - - + + - + - - + + - + - + - + - + \ No newline at end of file diff --git a/src/assets/images/kanvas/text-only/kanvas-text-color.png b/src/assets/images/kanvas/text-only/kanvas-text-color.png index 5e4e368e504a..30211106de99 100644 Binary files a/src/assets/images/kanvas/text-only/kanvas-text-color.png and b/src/assets/images/kanvas/text-only/kanvas-text-color.png differ diff --git a/src/assets/images/kanvas/text-only/kanvas-text-color.svg b/src/assets/images/kanvas/text-only/kanvas-text-color.svg index 76519b4935ad..07abbe744b14 100644 --- a/src/assets/images/kanvas/text-only/kanvas-text-color.svg +++ b/src/assets/images/kanvas/text-only/kanvas-text-color.svg @@ -1,5 +1,5 @@ - + - - - - + + + + - - + + - + \ No newline at end of file diff --git a/src/assets/images/kanvas/text-only/kanvas-text-white.png b/src/assets/images/kanvas/text-only/kanvas-text-white.png index e60a16b4eb5f..6d26491dd0a8 100644 Binary files a/src/assets/images/kanvas/text-only/kanvas-text-white.png and b/src/assets/images/kanvas/text-only/kanvas-text-white.png differ diff --git a/src/assets/images/kanvas/text-only/kanvas-text-white.svg b/src/assets/images/kanvas/text-only/kanvas-text-white.svg index a059586993b2..eacdffaf469b 100644 --- a/src/assets/images/kanvas/text-only/kanvas-text-white.svg +++ b/src/assets/images/kanvas/text-only/kanvas-text-white.svg @@ -1,5 +1,5 @@ - + - - - - + + + + - - + + - + \ No newline at end of file diff --git a/src/collections/blog/2024/05-07-mythical-engineer/mythical-10x-engineer.mdx b/src/collections/blog/2024/05-07-mythical-engineer/mythical-10x-engineer.mdx index 11340b95645e..5251a37c3f4a 100644 --- a/src/collections/blog/2024/05-07-mythical-engineer/mythical-10x-engineer.mdx +++ b/src/collections/blog/2024/05-07-mythical-engineer/mythical-10x-engineer.mdx @@ -3,8 +3,8 @@ title: The Mythical 10x Engineer subtitle: Rockstar or Illusion date: 2024-05-08 author: Lee Calcote -thumbnail: ../../../../assets/images/stick-figures/SVG/layer5-five-mascot-means-business.svg -darkthumbnail: ../../../../assets/images/stick-figures/SVG/layer5-five-mascot-means-business.svg +thumbnail: ../../../../assets/images/five/SVG/layer5-five-mascot-means-business.svg +darkthumbnail: ../../../../assets/images/five/SVG/layer5-five-mascot-means-business.svg description: "Find a 10x engineer or build a 10x team." type: Blog category: Community diff --git a/src/collections/blog/2024/11-01-meet-the-maintainer-yash-sharma/post.mdx b/src/collections/blog/2024/11-01-meet-the-maintainer-yash-sharma/post.mdx new file mode 100644 index 000000000000..78d3c60418e8 --- /dev/null +++ b/src/collections/blog/2024/11-01-meet-the-maintainer-yash-sharma/post.mdx @@ -0,0 +1,256 @@ +--- +title: "Meet the Maintainer: Yash Sharma" +subtitle: "An interview series with open source maintainers" +date: 2024-11-01 10:30:05 -0530 +author: Hargun Kaur +thumbnail: ./yash-sharma-meshery-maintainer.png +darkthumbnail: ./yash-sharma-meshery-maintainer.png +description: Meet the Maintainer series with open source maintainer, Yash Sharma +type: Blog +category: Open Source +tags: + - Open Source +featured: false +published: true +--- + +import { BlogWrapper } from "../../Blog.style.js"; +import img from "./yash-sharma-meshery-maintainer.png"; +import { MeetTheMaintainer } from "../../MeetTheMaintainer.style.js"; +import { Link } from "gatsby"; +import ForkLift from "../../../../assets/images/app/hero/forklift.svg"; + + + + +
+

+ Continuing in our Meet the Maintainer series, we have{" "} + Yash Sharma. Yash is a + maintainer of Meshery UI. + In this interview, we get to know Yash a little better and learn about his + journey as an open source project maintainer and with Layer5 community. +

+
+ +
+ Hargun: +

+ Yash, thank you for joining me today. Many people inside and outside of the + Layer5 Community have seen the effects of your contributions, but may not + know the backstory as to who Yash is and how you arrived at your maintainer + role. Indulge us. How did you discover the Layer5 community? What made you + stay? +

+
+ +
+ Yash: +

+ Thanks for having me, Hargun, I got into open source about two years ago, + not really expecting to get so wrapped up in it. I found Layer5 and the + community through a Twitter post and thought, "Why not?" So, I jumped in. + The more I got involved, the more I saw how pumped the team and maintainers + were about Meshery and helping others, and it just got me hooked. I started + with some smaller, more routine issues but quickly moved on to bigger + challenges and started getting recognized. One time, during a meeting, Lee + said something that stuck with me, it’s become one of my go-to quotes. He + was like, "You don't start working like a maintainer after becoming one, you + act like a maintainer and do the work before you're promoted." That really + clicked for me. So I started thinking like a maintainer, doing the stuff + that isn’t always glamorous but really matters. Eventually, I took on more + responsibilities, and before I knew it, I became a maintainer. +

+
+ +
+ Hargun: +

+ You’re a Meshery maintainer and have been for some long time now. What does being a Meshery maintainer mean to you? +

+
+ +
+ Yash: +

+ Honestly, being a maintainer is about taking responsibility for a big part + of the project with taking care of small things too at the same time, and I + really enjoy that. One of my favourite things about it is that it lets me + think more broadly about what we’re doing. As a contributor, you often focus + on the details, but as a maintainer, you get to step back and see the bigger + picture, which is super rewarding. +

+
+ +
+ Hargun: +

+ Have you worked with any other open source project? How does Layer5 compare? +

+
+ +
+ Yash: +

+ I’ve contributed to other open source projects, but I didn’t really get a + chance to get involved deeply. I think it’s mostly because a lot of those + projects don’t have an active community, which makes it tough to get + involved. However, when I joined Layer5, everything changed. I quickly + figured out how to start contributing, and the community managers were super + helpful and always around to give a hand. You just don’t see that kind of + support in a lot of other open source projects. +

+
+ +
+ Hargun: +

+ Layer5 projects have a number of active, open + source projects. You’ve been consistently contributing to a few of them. + Which one(s) are you currently focusing on? +

+
+ +
+ Yash: +

+ Absolutely, Layer5 has a number of active open source projects, and I’ve + contributed to quite a few of them. But my main focus has been on Meshkit, + Sistent, Meshery Extensions, and, of course, Meshery itself. +

+
+ +
+ Hargun: +

What’s the coolest Meshery demo you have done/seen?

+
+ +
+ Yash: +

+ Haha good one, this year I got a chance to represent Meshery at KubeCon + which was really an amazing experience for me. I gave a demo of Kanvas and + during representation and during that I was collaborating with another user + which really showed Meshery’s capability. +

+
+ +
+ Hargun: +

What is your favorite feature in Meshery UI?

+
+ +
+ Yash: +

+ Meshery is an extensible platform and I like this feature of it, it gives Meshery a whole new powerful capability to interact with various + technologies in the ecosystem and use it as an extension. My favourite one + is Kanvas, though. +

+
+ +
+ Hargun: +

What is your hot tip for working with Meshery that others may not know?

+
+ +
+ Yash: +

+ I definitely encourage you to join the meetings. They’re a great way to + connect with the maintainers in real time. Text chats just don’t do it + justice when it comes to letting them really get to know you. Video calls + are way better for that and give you a chance to show yourself to the + project leaders and maintainers. +

+
+ +
+ Hargun: +

+ Where do you see opportunities for contributors to get involved within + Meshery and Layer5 community? +

+
+ +
+ Yash: +

+ Meshery is growing very fast, it is the 9th fastest growing project under + CNCF. There are many opportunities open for you to contribute. Start + with joining community, introducing yourself and sharing your skill. This + will help community managers to put you in right direction based on your + skills. All areas are consistently in need of help, including best at this + time to contribute like Meshery's CLI client, Meshery Server and digital + marketing. +
+ Out of a 100+ repos that the Layer5 community stewards, two are currently closed: Kanvas and Cloud. Both of these projects were created and are actively being developed by open source contributors, though. There are ~15 open source contributors who working on it now, who meet daily. New contributors in the community routinely express interest and are invited to participate, and are extremely well supported as they do. In other words, the source is currently closed (subject to change), but any community member here that shows interest, demonstrates competence and consistency of participation is readily invited to join in. +
+ The core team working on these two projects meets Mon, Tue, Wed, Fri at 9:00am Central / 7:30pm IST on meet.layer5.io/team. You are most encouraged and welcome to partake. +
+ Between the two projects, ~100 different contributors have helped create these two project to date. + This list of repositories and the expandable note on the page offers some additional context as well. +

+
+ +
+ Hargun: +

+ Your most often used emoji? Your preference: movie or book? Morning person + or night owl? What have you worked on in the past six months that you’re + particularly proud of? +

+
+ +
+ Yash: +

+ I’d definitely recommend reading 'Six Easy Pieces' by Richard Feynman. It’s + a fantastic book, especially if you’re a science lover like me, haha. +

+
+ +
+ Hargun: +

+ Do you have any advice for individuals hopeful to become Layer5 contributors + or potentially maintainers? +

+
+ +
+ Yash: +

+ Good question, I’d say think about the long-term. People are more likely to + invest in you if they see you’re committed for the long term. If you seem + like you’re just looking for a quick win, it sends a message to the + maintainers that they might not want to put too much into you. And of course + try to make high-quality contributions; it doesn't matter if it’s small or + big. +

+
+ +
+ Hargun: +

+ In other words, whether your contribution is big or small, it sounds like + aiming for high-quality contributions that add value to the projects is key. +

+
+ +
+ Yash: +

You summarized it perfectly, yes I agree with you Hargun.

+
+ +
+ +

+ The Meshery project moves at an impressive pace thanks to maintainers like + Yash. Be like Yash. Join the{" "} + Layer5 Slack and say “hi". +

+
+ + + diff --git a/src/collections/blog/2024/11-01-meet-the-maintainer-yash-sharma/yash-sharma-meshery-maintainer.png b/src/collections/blog/2024/11-01-meet-the-maintainer-yash-sharma/yash-sharma-meshery-maintainer.png new file mode 100644 index 000000000000..6f5d1afba7f8 Binary files /dev/null and b/src/collections/blog/2024/11-01-meet-the-maintainer-yash-sharma/yash-sharma-meshery-maintainer.png differ diff --git a/src/collections/blog/2024/11-05-what-is-the-kanvas-catalog/post.mdx b/src/collections/blog/2024/11-05-what-is-the-kanvas-catalog/post.mdx new file mode 100644 index 000000000000..3264a6af7d6f --- /dev/null +++ b/src/collections/blog/2024/11-05-what-is-the-kanvas-catalog/post.mdx @@ -0,0 +1,48 @@ +--- +title: "What is the Kanvas Catalog?" +subtitle: "Ready-to-go templates for cloud and cloud native infrastructure" +date: 2024-11-05 +author: Layer5 Team +thumbnail: ../../../../assets/images/catalog-icon/catalog2.svg +darkthumbnail: ../../../../assets/images/catalog-icon/catalog.svg +description: "A comprehensive guide to the Kanvas Catalog, a collection of curated, pre-built, and ready-to-use cloud and cloud native infrastructure configurations." +type: Blog +category: Kanvas +tags: + - Catalog +featured: false +published: true +resource: true +--- + +import { BlogWrapper } from "../../Blog.style.js"; +import { Link } from "gatsby"; + + + +### What is the Kanvas Catalog? + +Kanvas Catalog is a hub for sharing and discovering best practices, reusable templates, and operational patterns for Kubernetes and cloud-native infrastructure. It's like a marketplace where you can find and contribute pre-built infrastructure configurations and operational views. The Catalog is a part of the Kanvas platform, which is a comprehensive suite of tools for managing cloud-native infrastructure. + +
Explore the catalog
+ +### What can you find in the Catalog? + +- Design Patterns: Ready-made blueprints for common infrastructure and application architectures. These patterns can save you significant time and effort in designing your deployments. +- Filters and Applications: Pre-configured filters for Envoy proxies, WebAssembly filters, and complete application deployments. +- Meshery Designs: Share and reuse your own Meshery configurations, making it easier to collaborate and standardize your deployments. +- Meshery Models: Share and reuse your own Meshery models, making it easier to collaborate and standardize your component library. + +#### Why is the Catalog useful? + +- Accelerated Development: Leverage existing patterns to jumpstart your projects and avoid reinventing the wheel. +- Community Knowledge: Benefit from the collective experience of the Layer5 community and industry best practices. +- Standardization: Promote consistency and reduce errors by using predefined configurations. +- Collaboration: Share your own designs and contribute to the growing collection of patterns. + +### How can you contribute to the Catalog? + + + + +
diff --git a/src/collections/integrations/crossplane/icons/components/image-config/icons/color/image-config-color.svg b/src/collections/integrations/crossplane/icons/components/image-config/icons/color/image-config-color.svg new file mode 100644 index 000000000000..282441747744 --- /dev/null +++ b/src/collections/integrations/crossplane/icons/components/image-config/icons/color/image-config-color.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/collections/integrations/crossplane/icons/components/image-config/icons/white/image-config-white.svg b/src/collections/integrations/crossplane/icons/components/image-config/icons/white/image-config-white.svg new file mode 100644 index 000000000000..7f776934ed58 --- /dev/null +++ b/src/collections/integrations/crossplane/icons/components/image-config/icons/white/image-config-white.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/collections/integrations/crossplane/index.mdx b/src/collections/integrations/crossplane/index.mdx index fdfce90f9d51..043d7f59203b 100644 --- a/src/collections/integrations/crossplane/index.mdx +++ b/src/collections/integrations/crossplane/index.mdx @@ -98,6 +98,12 @@ components: [ "colorIcon": "icons/components/store-config/icons/color/store-config-color.svg", "whiteIcon": "icons/components/store-config/icons/white/store-config-white.svg", "description": "", +}, +{ +"name": "image-config", +"colorIcon": "icons/components/image-config/icons/color/image-config-color.svg", +"whiteIcon": "icons/components/image-config/icons/white/image-config-white.svg", +"description": "", }] featureList: [ "Highly extensible backend that enables you to orchestrate applications and infrastructure no matter where they run.", diff --git a/src/collections/integrations/keda/icons/components/cluster-cloud-event-source/icons/color/cluster-cloud-event-source-color.svg b/src/collections/integrations/keda/icons/components/cluster-cloud-event-source/icons/color/cluster-cloud-event-source-color.svg new file mode 100644 index 000000000000..2db7c10ded12 --- /dev/null +++ b/src/collections/integrations/keda/icons/components/cluster-cloud-event-source/icons/color/cluster-cloud-event-source-color.svg @@ -0,0 +1 @@ +keda-icon \ No newline at end of file diff --git a/src/collections/integrations/keda/icons/components/cluster-cloud-event-source/icons/white/cluster-cloud-event-source-white.svg b/src/collections/integrations/keda/icons/components/cluster-cloud-event-source/icons/white/cluster-cloud-event-source-white.svg new file mode 100644 index 000000000000..26d3561c5a31 --- /dev/null +++ b/src/collections/integrations/keda/icons/components/cluster-cloud-event-source/icons/white/cluster-cloud-event-source-white.svg @@ -0,0 +1 @@ +keda-icon-white \ No newline at end of file diff --git a/src/collections/integrations/keda/index.mdx b/src/collections/integrations/keda/index.mdx index 322f97e7e19d..a9cc3be78bef 100644 --- a/src/collections/integrations/keda/index.mdx +++ b/src/collections/integrations/keda/index.mdx @@ -44,6 +44,12 @@ components: [ "colorIcon": "icons/components/trigger-authentication/icons/color/trigger-authentication-color.svg", "whiteIcon": "icons/components/trigger-authentication/icons/white/trigger-authentication-white.svg", "description": "", +}, +{ +"name": "cluster-cloud-event-source", +"colorIcon": "icons/components/cluster-cloud-event-source/icons/color/cluster-cloud-event-source-color.svg", +"whiteIcon": "icons/components/cluster-cloud-event-source/icons/white/cluster-cloud-event-source-white.svg", +"description": "#326de6", }] featureList: [ "Scales applications based on various metrics", diff --git a/src/components/Call-To-Actions/CTA_Bottom/cta_bottom_categories.js b/src/components/Call-To-Actions/CTA_Bottom/cta_bottom_categories.js index a0edff246470..95cb3448411a 100644 --- a/src/components/Call-To-Actions/CTA_Bottom/cta_bottom_categories.js +++ b/src/components/Call-To-Actions/CTA_Bottom/cta_bottom_categories.js @@ -16,7 +16,7 @@ export const Categories = { "Image": kanvas_icon, "Image_Alt": "Kanvas", "Heading": "Get started with Kanvas!", - "Content": "Explore and understand your infrastructure at a glance with our powerful visualizer tool. Gain insights, track dependencies, and optimize performance effortlessly.", + "Content": "Explore and understand your infrastructure at a glance with our powerful Operator tool. Gain insights, track dependencies, and optimize performance effortlessly.", "Button_Text": "Try Kanvas now!", "Link": "/cloud-native-management/kanvas", "Link_external": false diff --git a/src/components/SistentNavigation/content.js b/src/components/SistentNavigation/content.js index 1932e1dc9356..77069a489955 100644 --- a/src/components/SistentNavigation/content.js +++ b/src/components/SistentNavigation/content.js @@ -87,5 +87,20 @@ export const content = [ id: 23, link: "/projects/sistent/components/text-field/code", text: "Text Field", - } + }, + { + id: 24, + link: "/projects/sistent/components/button-group", + text: "Button Group", + }, + { + id: 25, + link: "/projects/sistent/components/button-group/guidance", + text: "Button Group", + }, + { + id: 26, + link: "/projects/sistent/components/button-group/code", + text: "Button Group", + }, ]; diff --git a/src/pages/cloud-native-management/kanvas/operate.js b/src/pages/cloud-native-management/kanvas/operate.js new file mode 100644 index 000000000000..6ecbb1104419 --- /dev/null +++ b/src/pages/cloud-native-management/kanvas/operate.js @@ -0,0 +1,21 @@ +import React from "react"; + +import SEO from "../../../components/seo"; + +import KanvasOperator from "../../../sections/Kanvas/Kanvas-visualize/index"; + +const KanvasVisualizePage = () => { + + return ( + <> + + + + ); +}; +export default KanvasVisualizePage; + + +export const Head = () => { + return ; +}; diff --git a/src/pages/cloud-native-management/kanvas/visualize.js b/src/pages/cloud-native-management/kanvas/visualize.js deleted file mode 100644 index 264d1d4e4057..000000000000 --- a/src/pages/cloud-native-management/kanvas/visualize.js +++ /dev/null @@ -1,21 +0,0 @@ -import React from "react"; - -import SEO from "../../../components/seo"; - -import KanvasVisualize from "../../../sections/Kanvas/Kanvas-visualize/index"; - -const KanvasVisualizePage = () => { - - return ( - <> - - - - ); -}; -export default KanvasVisualizePage; - - -export const Head = () => { - return ; -}; \ No newline at end of file diff --git a/src/pages/projects/sistent/components/button-group/code.js b/src/pages/projects/sistent/components/button-group/code.js new file mode 100644 index 000000000000..dff80d0676aa --- /dev/null +++ b/src/pages/projects/sistent/components/button-group/code.js @@ -0,0 +1,8 @@ +import React from "react"; +import ButtonGroupCode from "../../../../../sections/Projects/Sistent/components/button-group/code"; + +const ButtonGroupCodePage = () => { + return ; +}; + +export default ButtonGroupCodePage; diff --git a/src/pages/projects/sistent/components/button-group/guidance.js b/src/pages/projects/sistent/components/button-group/guidance.js new file mode 100644 index 000000000000..c36d2d6d33f6 --- /dev/null +++ b/src/pages/projects/sistent/components/button-group/guidance.js @@ -0,0 +1,8 @@ +import React from "react"; +import ButtonGroupGuidance from "../../../../../sections/Projects/Sistent/components/button-group/guidance"; + +const ButtonGuidancePage = () => { + return ; +}; + +export default ButtonGuidancePage; diff --git a/src/pages/projects/sistent/components/button-group/index.js b/src/pages/projects/sistent/components/button-group/index.js new file mode 100644 index 000000000000..af543fb3279c --- /dev/null +++ b/src/pages/projects/sistent/components/button-group/index.js @@ -0,0 +1,8 @@ +import React from "react"; +import SistentButtonGroup from "../../../../../sections/Projects/Sistent/components/button-group"; + +const SistentButtonGroupPage = () => { + return ; +}; + +export default SistentButtonGroupPage; diff --git a/src/pages/projects/sistent/components/container/code.js b/src/pages/projects/sistent/components/container/code.js new file mode 100644 index 000000000000..ee5f12f95992 --- /dev/null +++ b/src/pages/projects/sistent/components/container/code.js @@ -0,0 +1,8 @@ +import React from "react"; +import { ContainerCode } from "../../../../../sections/Projects/Sistent/components/container/code"; + +const ContainerCodePage = () => { + return ; +}; + +export default ContainerCodePage; diff --git a/src/pages/projects/sistent/components/container/guidance.js b/src/pages/projects/sistent/components/container/guidance.js new file mode 100644 index 000000000000..763ec456f972 --- /dev/null +++ b/src/pages/projects/sistent/components/container/guidance.js @@ -0,0 +1,8 @@ +import React from "react"; +import { ContainerGuidancePage } from "../../../../../sections/Projects/Sistent/components/container/guidance"; + +const LinkGuidance = () => { + return ; +}; + +export default LinkGuidance; diff --git a/src/pages/projects/sistent/components/container/index.js b/src/pages/projects/sistent/components/container/index.js new file mode 100644 index 000000000000..a7bcf30afd1f --- /dev/null +++ b/src/pages/projects/sistent/components/container/index.js @@ -0,0 +1,8 @@ +import React from "react"; +import SistentContainer from "../../../../../sections/Projects/Sistent/components/container/index"; + +const SistentContainerPage = () => { + return ; +}; + +export default SistentContainerPage; diff --git a/src/sections/CloudNativeDeployments/features.js b/src/sections/CloudNativeDeployments/features.js index 3535fd473797..f6ac4deacb84 100644 --- a/src/sections/CloudNativeDeployments/features.js +++ b/src/sections/CloudNativeDeployments/features.js @@ -167,7 +167,7 @@ const Feature = () => {

- Kanvas Visualizer + Kanvas Operator

Deploy designs, apply patterns, manage and operate your deployments in real-time. Bring all your Kubernetes clusters under a common point of management. diff --git a/src/sections/CloudNativeDeployments/index.js b/src/sections/CloudNativeDeployments/index.js index 36fc5c8b3609..de65d83d7067 100644 --- a/src/sections/CloudNativeDeployments/index.js +++ b/src/sections/CloudNativeDeployments/index.js @@ -22,7 +22,7 @@ const KubernetesMultiCluster = () => { { heading: "Bring those ideas to life", subtitle: - "Designer and Visualizer live side-by-side, so all design work, from ideation to operation, can be found in one place.", + "Designer and Operator live side-by-side, so all design work, from ideation to operation, can be found in one place.", image: switcher_img, }, { diff --git a/src/sections/Community/Handbook/repo-data.js b/src/sections/Community/Handbook/repo-data.js index 682dc544d8dd..a2a5c33fc1b5 100644 --- a/src/sections/Community/Handbook/repo-data.js +++ b/src/sections/Community/Handbook/repo-data.js @@ -19,7 +19,7 @@ import appmeshLogo from "../../../assets/images/service-mesh-icons/aws-app-mesh. import ciliumLogo from "../../../assets/images/service-mesh-icons/cilium.svg"; import wasm from "../../../assets/images/webassembly/webssembly_icon.svg"; import recognitionLogo from "../../../assets/images/recognition-program/recognition-program.png"; -import kanvasLogo from "../../../assets/images/kanvas-snapshot/kanvas-snapshot.svg"; +import kanvasLogo from "../../../assets/images/kanvas/icon-only/kanvas-icon-color.svg"; export const repo_data = [ { @@ -85,7 +85,7 @@ export const repo_data = [ }, { project: "Kanvas", - image: meshery, + image: kanvasLogo, site: "/cloud-native-management/kanvas", language: "React.js, Cytoscape.js", maintainers_name: ["Aabid Sofi"], @@ -324,7 +324,7 @@ export const repo_data = [ }, { project: "Helm Kanvas Snapshot", - image: meshery, + image: kanvasLogo, language: "Golang", maintainers_name: ["Vacant"], link: [""], diff --git a/src/sections/Community/Web-based-from/index.js b/src/sections/Community/Web-based-from/index.js index bdbc9c3b7d74..394598b2598d 100644 --- a/src/sections/Community/Web-based-from/index.js +++ b/src/sections/Community/Web-based-from/index.js @@ -66,7 +66,7 @@ const WebBasedForm = () => { useEffect(() => { if (submit) { - axios.post("https://hook.us1.make.com/bmmi8btg3xb2fmx6kcavxmtf0a3uame2", { + axios.post("https://hook.us1.make.com/v66ana9yf3w11k4a1rf3epwquur1s9rd", { memberFormOne, MemberFormThirdValue, MemberFormFourValue, diff --git a/src/sections/Company/Brand/Brand-components/stickfigures.js b/src/sections/Company/Brand/Brand-components/stickfigures.js index 19ba4535fcc1..01b6f608ed1d 100644 --- a/src/sections/Company/Brand/Brand-components/stickfigures.js +++ b/src/sections/Company/Brand/Brand-components/stickfigures.js @@ -2,29 +2,29 @@ import React from "react"; import { FiDownloadCloud } from "@react-icons/all-files/fi/FiDownloadCloud"; import Button from "../../../../reusecore/Button"; import { Col, Row } from "../../../../reusecore/Layout"; -import SFL from "../../../../assets/images/stick-figures/SVG/stick-figures.svg"; -import teamOfFives from "../../../../assets/images/stick-figures/SVG/team-of-fives.svg"; -import resourcesSign from "../../../../assets/images/stick-figures/SVG/resources-sign.svg"; -import mesheryWorship from "../../../../assets/images/stick-figures/meshery-worship.png"; -import f1 from "../../../../assets/images/stick-figures/SVG/1.svg"; -import f2 from "../../../../assets/images/stick-figures/SVG/2.svg"; -import f3 from "../../../../assets/images/stick-figures/SVG/3.svg"; -import f4 from "../../../../assets/images/stick-figures/SVG/4.svg"; -import f5 from "../../../../assets/images/stick-figures/SVG/5.svg"; -import f6 from "../../../../assets/images/stick-figures/SVG/6.svg"; -import f7 from "../../../../assets/images/stick-figures/SVG/7.svg"; -import f8 from "../../../../assets/images/stick-figures/SVG/8.svg"; -import f9 from "../../../../assets/images/stick-figures/SVG/9.svg"; -import f10 from "../../../../assets/images/stick-figures/SVG/10.svg"; -import f11 from "../../../../assets/images/stick-figures/SVG/11.svg"; -import f12 from "../../../../assets/images/stick-figures/SVG/12.svg"; -import f13 from "../../../../assets/images/stick-figures/SVG/13.svg"; -import f14 from "../../../../assets/images/stick-figures/SVG/14.svg"; -import f15 from "../../../../assets/images/stick-figures/SVG/15.svg"; -import f16 from "../../../../assets/images/stick-figures/SVG/16.svg"; -import f17 from "../../../../assets/images/stick-figures/SVG/17.svg"; -import f18 from "../../../../assets/images/stick-figures/SVG/18.svg"; -import f19 from "../../../../assets/images/stick-figures/SVG/19.svg"; +import SFL from "../../../../assets/images/five/SVG/stick-figures.svg"; +import teamOfFives from "../../../../assets/images/five/SVG/team-of-fives.svg"; +import resourcesSign from "../../../../assets/images/five/SVG/resources-sign.svg"; +import mesheryWorship from "../../../../assets/images/five/meshery-worship.png"; +import f1 from "../../../../assets/images/five/SVG/1.svg"; +import f2 from "../../../../assets/images/five/SVG/2.svg"; +import f3 from "../../../../assets/images/five/SVG/3.svg"; +import f4 from "../../../../assets/images/five/SVG/4.svg"; +import f5 from "../../../../assets/images/five/SVG/5.svg"; +import f6 from "../../../../assets/images/five/SVG/6.svg"; +import f7 from "../../../../assets/images/five/SVG/7.svg"; +import f8 from "../../../../assets/images/five/SVG/8.svg"; +import f9 from "../../../../assets/images/five/SVG/9.svg"; +import f10 from "../../../../assets/images/five/SVG/10.svg"; +import f11 from "../../../../assets/images/five/SVG/11.svg"; +import f12 from "../../../../assets/images/five/SVG/12.svg"; +import f13 from "../../../../assets/images/five/SVG/13.svg"; +import f14 from "../../../../assets/images/five/SVG/14.svg"; +import f15 from "../../../../assets/images/five/SVG/15.svg"; +import f16 from "../../../../assets/images/five/SVG/16.svg"; +import f17 from "../../../../assets/images/five/SVG/17.svg"; +import f18 from "../../../../assets/images/five/SVG/18.svg"; +import f19 from "../../../../assets/images/five/SVG/19.svg"; const StickFigures = () => { return ( @@ -38,7 +38,7 @@ const StickFigures = () => { - + @@ -60,49 +60,49 @@ const StickFigures = () => {

Images

- + Layer5 Mascot, Five - + Layer5 Mascot, Five - + - - - - - - + Layer5 Mascot, Five + {/* Layer5 Mascot, Five + Layer5 Mascot, Five + Layer5 Mascot, Five + Layer5 Mascot, Five + Layer5 Mascot, Five */} - - - - - - + Layer5 Mascot, Five + {/* Layer5 Mascot, Five + Layer5 Mascot, Five + Layer5 Mascot, Five + Layer5 Mascot, Five + Layer5 Mascot, Five */} - + {/* - - - - - - + Layer5 Mascot, Five + Layer5 Mascot, Five + Layer5 Mascot, Five + Layer5 Mascot, Five + Layer5 Mascot, Five + Layer5 Mascot, Five - - - + Layer5 Mascot, Five + Layer5 Mascot, Five + Layer5 Mascot, Five - + */} ); diff --git a/src/sections/Company/Brand/brandPage.style.js b/src/sections/Company/Brand/brandPage.style.js index 45748ee0605f..db08ab18caaf 100644 --- a/src/sections/Company/Brand/brandPage.style.js +++ b/src/sections/Company/Brand/brandPage.style.js @@ -189,6 +189,17 @@ const BrandPageWrapper = styled.section` justify-content: center; flex-wrap: wrap; } + .fiveDiv { + width: 100%; + margin: auto; + justify-content: space-around; + gap: 1rem; + } + .fiveDiv > img { + max-width: 150px; + background-color: "#fff"; + align-self: center; + } img.Layer5Icon { width: auto; height: 80px; diff --git a/src/sections/Company/News-grid/NewsGrid.style.js b/src/sections/Company/News-grid/NewsGrid.style.js index 6af902eb10e8..ea1ae027904a 100644 --- a/src/sections/Company/News-grid/NewsGrid.style.js +++ b/src/sections/Company/News-grid/NewsGrid.style.js @@ -96,13 +96,5 @@ export const NewsPageWrapper = styled.div` } } - .search-box { - margin: auto; - input { - background-color: ${props => props.theme.shadowDarkColor}!important; - color: ${props => props.theme.text}; - transition: all 450ms ease 0s; - } - } `; diff --git a/src/sections/General/Navigation/index.js b/src/sections/General/Navigation/index.js index 808523911eee..ca80dcadc0ce 100644 --- a/src/sections/General/Navigation/index.js +++ b/src/sections/General/Navigation/index.js @@ -9,7 +9,7 @@ import { useStyledDarkMode } from "../../../theme/app/useStyledDarkMode"; import axios from "axios"; // import smp_dark_text from "../../../assets/images/service-mesh-performance/stacked/smp-dark-text.svg"; // import smp_light_text from "../../../assets/images/service-mesh-performance/stacked/smp-light-text.svg"; -import kanvas_dark from "../../../assets/images/kanvas/icon-only/kanvas-icon-white.svg"; +import kanvas_color from "../../../assets/images/kanvas/icon-only/kanvas-icon-color.svg"; import meshery from "../../../assets/images/meshery/icon-only/meshery-logo-light.svg"; import Data from "./utility/menu-items.js"; import ScrollspyMenu from "./utility/ScrollspyMenu.js"; @@ -133,23 +133,23 @@ const Navigation = () => { { frontmatter: { thumbnail: { - img: meshery, + img: kanvas_color, }, - title: "Meshery, the Cloud Native Manager", + title: "Kanvas, collaborative infrastructure management", }, fields: { - slug: "/cloud-native-management/meshery", + slug: "/cloud-native-management/kanvas", }, }, { frontmatter: { thumbnail: { - img: kanvas_dark, + img: meshery, }, - title: "Kanvas, collaborative infrastructure management", + title: "Meshery, the Cloud Native Manager", }, fields: { - slug: "/cloud-native-management/kanvas", + slug: "/cloud-native-management/meshery", }, }, ], diff --git a/src/sections/General/Navigation/utility/menu-items.js b/src/sections/General/Navigation/utility/menu-items.js index 9e3a15cc7447..3bc7ad493af1 100644 --- a/src/sections/General/Navigation/utility/menu-items.js +++ b/src/sections/General/Navigation/utility/menu-items.js @@ -84,41 +84,46 @@ const Data = { path: "/products", subItems: [ { - name: "Meshery", - path: "/cloud-native-management/meshery", + name: "Kanvas", + path: "/cloud-native-management/kanvas", sepLine: true }, { - name: "Kanvas", - path: "/cloud-native-management/kanvas", + name: "Designer", + path: "/cloud-native-management/kanvas/design", + }, + { + name: "Operator", + path: "/cloud-native-management/kanvas/operate", }, - // { - // name: "---", - // // path: "/cloud-native-management/kanvas", - - // }, { - name: "Catalog", + name: "Cloud + Catalog", path: "/cloud-native-management/catalog", }, { - name: "Docker Extension", - path: "/docker-extension-meshery", + name: "Open source projects", + path: "/projects", + sepLine: true }, { - name: "Playground", - path: "/cloud-native-management/playground", + name: "Meshery", + path: "/cloud-native-management/meshery", }, + { + name: "NightHawk", + path: "/projects/nighthawk", + }, + // { + // name: "---", + // // path: "/cloud-native-management/kanvas", + + // }, ], actionItems: [ { actionName: "Pricing", actionLink: "/pricing", }, - { - actionName: "Open source projects", - actionLink: "/projects", - }, // { // actionName: "Pricing", // actionLink: "/pricing", diff --git a/src/sections/Home/Playground-home/index.js b/src/sections/Home/Playground-home/index.js index 87a6c545d36c..0ba21c56e679 100644 --- a/src/sections/Home/Playground-home/index.js +++ b/src/sections/Home/Playground-home/index.js @@ -3,6 +3,7 @@ import styled from "styled-components"; import { useInView } from "react-intersection-observer"; import Button from "../../../reusecore/Button"; import argocd from "../../../collections/integrations/argo-cd/icons/color/argo-cd-color.svg"; +import certmanager from "../../../collections/integrations/cert-manager/icons/color/cert-manager-color.svg"; import cilium from "../../../collections/integrations/cilium/icons/color/cilium-color.svg"; import prometheus from "../../../collections/integrations/prometheus/icons/color/prometheus-color.svg"; import kubernetes from "../../../collections/integrations/kubernetes/icons/color/kubernetes-color.svg"; @@ -11,19 +12,25 @@ import linkerd from "../../../collections/integrations/linkerd/icons/color/linke import istio from "../../../collections/integrations/istio-base/icons/color/istio-base-color.svg"; import jaeger from "../../../collections/integrations/jaeger/icons/color/jaeger-color.svg"; import envoy from "../../../collections/integrations/envoy/icons/color/envoy-color.svg"; -import kong from "../../../collections/integrations/kong/icons/color/kong-color.svg"; -import grafana from "../../../collections/integrations/grafana-agent-operator/icons/color/grafana-agent-operator-color.svg"; -import docker from "../../../collections/integrations/docker/icons/color/docker-color.svg"; -import opentelemetry from "../../../collections/integrations/opentelemetry-operator/icons/color/opentelemetry-operator-color.svg"; -import kiali from "../../../collections/integrations/kiali-operator/icons/color/kiali-operator-color.svg"; -import knative from "../../../collections/integrations/knative/icons/color/knative-color.svg"; -import dapr from "../../../collections/integrations/dapr/icons/color/dapr-color.svg"; -import fabedge from "../../../collections/integrations/fabedge/icons/color/fabedge-color.svg"; -import amdgpu from "../../../collections/integrations/amd-gpu/icons/color/amd-gpu-color.svg"; -import karmada from "../../../collections/integrations/karmada/icons/color/karmada-color.svg"; -import kubeflow from "../../../collections/integrations/kubeflow/icons/color/kubeflow-color.svg"; -import terraform from "../../../collections/integrations/terraform/icons/color/terraform-color.svg"; import fluentd from "../../../collections/integrations/fluentd/icons/color/fluentd-color.svg"; +import cloudevents from "../../../collections/integrations/cloudevents/icons/color/cloudevents-color.svg"; +import containerd from "../../../collections/integrations/containerd/icons/color/containerd-color.svg"; +import coredns from "../../../collections/integrations/coredns/icons/color/coredns-color.svg"; +import crio from "../../../collections/integrations/cri-o/icons/color/cri-o-color.svg"; +import etcd from "../../../collections/integrations/etcd-cluster-operator/icons/color/etcd-cluster-operator-color.svg"; +import falco from "../../../collections/integrations/falco/icons/color/falco-color.svg"; +import flux from "../../../collections/integrations/flux/icons/color/flux-color.svg"; +import harbor from "../../../collections/integrations/harbor-operator/icons/color/harbor-operator-color.svg"; +import helm from "../../../collections/integrations/helm-controller/icons/color/helm-controller-color.svg"; +import kubeedge from "../../../collections/integrations/kubegems-edge/icons/color/kubegems-edge-color.svg"; +import opa from "../../../collections/integrations/open-policy-agent-(opa)/icons/color/open-policy-agent-(opa)-color.svg"; +import rook from "../../../collections/integrations/rook/icons/color/rook-color.svg"; +import spiffe from "../../../collections/integrations/spiffe/icons/color/spiffe-color.svg"; +import spire from "../../../collections/integrations/spire/icons/color/spire-color.svg"; +import tuf from "../../../collections/integrations/tuf/icons/color/tuf-color.svg"; +import tikvoperator from "../../../collections/integrations/tikv-operator/icons/color/tikv-operator-color.svg"; +import vitess from "../../../collections/integrations/vitess/icons/color/vitess-color.svg"; + const ViewsSectionWrapper = styled.div` @@ -239,31 +246,37 @@ const KanvasVisualizerViews = () => { const [imageRef] = useInView({ threshold: 0.3 }); const leftColumnItems = [ - { img: prometheus, name: "Prometheus" }, - { img: argocd, name: "Argo CD" }, + { img: argocd, name: "Argo" }, + { img: certmanager, name: "Cert Manager" }, { img: cilium, name: "Cilium" }, - { img: istio, name: "Istio" }, - { img: grafana, name: "Grafana" }, - { img: knative, name: "Knative" }, - { img: docker, name: "Docker" }, + { img: cloudevents, name: "CloudEvents" }, + { img: containerd, name: "containerd" }, + { img: coredns, name: "CoreDNS" }, + { img: crio, name: "cri-o" }, { img: envoy, name: "Envoy" }, - { img: karmada, name: "Karmada" }, - { img: amdgpu, name: "AMD GPU" }, - { img: fluentd, name: "Fluentd" } + { img: etcd, name: "etcd" }, + { img: falco, name: "Falco" }, + { img: fluentd, name: "Fluentd" }, + { img: flux, name: "Flux" }, + { img: harbor, name: "Harbor" }, + { img: helm, name: "Helm" } ]; const rightColumnItems = [ + { img: istio, name: "Istio" }, + { img: jaeger, name: "Jaeger" }, + { img: keda, name: "KEDA" }, + { img: kubeedge, name: "KubeEdge" }, { img: kubernetes, name: "Kubernetes" }, - { img: keda, name: "Keda" }, { img: linkerd, name: "Linkerd" }, - { img: jaeger, name: "Jaeger" }, - { img: kong, name: "Kong" }, - { img: opentelemetry, name: "Opentelemetry" }, - { img: dapr, name: "Dapr" }, - { img: kiali, name: "Kiali" }, - { img: fabedge, name: "FabEdge" }, - { img: kubeflow, name: "Kubeflow" }, - { img: terraform, name: "Terraform" } + { img: opa, name: "Open Policy Agent" }, + { img: prometheus, name: "Prometheus" }, + { img: rook, name: "Rook" }, + { img: spiffe, name: "SPIFFE" }, + { img: spire, name: "SPIRE" }, + { img: tuf, name: "TUF" }, + { img: tikvoperator, name: "TiKV" }, + { img: vitess, name: "Vitess" } ]; const renderColumn = (items, direction) => ( @@ -301,6 +314,7 @@ const KanvasVisualizerViews = () => {
+

Manage your Cloud Native mess

diff --git a/src/sections/Kanvas/FeaturesSection/Visualize/VisualizerFeatures.js b/src/sections/Kanvas/FeaturesSection/Visualize/VisualizerFeatures.js index 9fb6483251f4..1186dbc3d09e 100644 --- a/src/sections/Kanvas/FeaturesSection/Visualize/VisualizerFeatures.js +++ b/src/sections/Kanvas/FeaturesSection/Visualize/VisualizerFeatures.js @@ -30,9 +30,9 @@ export default function VisualizerFeatures({ features }) {
- +
-

Visualize

+

Operate

Learn more
Learn more @@ -40,7 +40,7 @@ export default function VisualizerFeatures({ features }) {
- +
diff --git a/src/sections/Kanvas/Kanvas-collaborate/kanvas-collaborate-banner.js b/src/sections/Kanvas/Kanvas-collaborate/kanvas-collaborate-banner.js index bdbb6d5ba938..89fe4d68cd51 100644 --- a/src/sections/Kanvas/Kanvas-collaborate/kanvas-collaborate-banner.js +++ b/src/sections/Kanvas/Kanvas-collaborate/kanvas-collaborate-banner.js @@ -194,7 +194,7 @@ const KanvasCollaborateBanner = () => {

Collaborate with the team.
Build solutions together

-

Designer and Visualizer live side-by-side, so all design work, from ideation to operation, can be found in one place.

+

Designer and Operator live side-by-side, so all design work, from ideation to operation, can be found in one place.

diff --git a/src/sections/Kanvas/Kanvas-design/Kanvas_Mobile_swiper/KanvasMobileSwiper.js b/src/sections/Kanvas/Kanvas-design/Kanvas_Mobile_swiper/KanvasMobileSwiper.js index f507a1b1ed50..20947a319583 100644 --- a/src/sections/Kanvas/Kanvas-design/Kanvas_Mobile_swiper/KanvasMobileSwiper.js +++ b/src/sections/Kanvas/Kanvas-design/Kanvas_Mobile_swiper/KanvasMobileSwiper.js @@ -60,7 +60,7 @@ export const KanvasMobileSwiper = () => {

Multi user real time collaboration

- Designer and Visualizer live side-by-side, so all design work, from ideation to operation, can be found in one + Designer and Operator live side-by-side, so all design work, from ideation to operation, can be found in one place.

Multi-user real-time collaboration

- Designer and Visualizer live side-by-side, so all design work, from + Designer and Operator live side-by-side, so all design work, from ideation to operation, can be found in one place.

diff --git a/src/sections/Kanvas/Kanvas-visualize/kanvas-visualize-banner.js b/src/sections/Kanvas/Kanvas-visualize/kanvas-visualize-banner.js index 2d9f0db74702..4547ee727622 100644 --- a/src/sections/Kanvas/Kanvas-visualize/kanvas-visualize-banner.js +++ b/src/sections/Kanvas/Kanvas-visualize/kanvas-visualize-banner.js @@ -91,9 +91,9 @@ const KanvasisualizeBanner = () => {
*/}
-

Visualize your infrastructure

+

Operate your infrastructure

See your designs in action. Operate with best practices.

- +
{/*
@@ -103,4 +103,4 @@ const KanvasisualizeBanner = () => { ); }; -export default KanvasisualizeBanner; \ No newline at end of file +export default KanvasisualizeBanner; diff --git a/src/sections/Kanvas/index.js b/src/sections/Kanvas/index.js index 7db6233a1e49..23de0cc64ec0 100644 --- a/src/sections/Kanvas/index.js +++ b/src/sections/Kanvas/index.js @@ -61,13 +61,13 @@ const Kanvas = (props) => { ), }, { - title: "Visualizer Mode", + title: "Operator Mode", description: - "Visualizer offers an interactive topology of your Kubernetes clusters with live terminal sessions, log streaming and performance testing of your applications. Designs created in Designer mode can be deployed and viewed as running in your environment using Visualizer.", + "Operator offers an interactive topology of your Kubernetes clusters with live terminal sessions, log streaming and performance testing of your applications. Designs created in Designer mode can be deployed and viewed as running in your environment using Operator.", content: ( Visualizer Mode ), @@ -144,7 +144,7 @@ const Kanvas = (props) => { [ { title: "Bring those ideas to life", - description: "Designer and Visualizer live side-by-side, so all design work, from ideation to operation, can be found in one place.", + description: "Designer and Operator live side-by-side, so all design work, from ideation to operation, can be found in one place.", imgContent: ( <> diff --git a/src/sections/Kanvas/kanvas-cta/index.js b/src/sections/Kanvas/kanvas-cta/index.js index d71129808f89..9c889aa51639 100644 --- a/src/sections/Kanvas/kanvas-cta/index.js +++ b/src/sections/Kanvas/kanvas-cta/index.js @@ -3,7 +3,6 @@ import styled from "styled-components"; import { Container } from "../../../reusecore/Layout"; import Locator from "./locator.svg"; -import MesherySurface from "./meshery-surface.svg"; import Button from "../../../reusecore/Button"; const KanvasCTAWrapper = styled.div` @@ -17,10 +16,6 @@ const KanvasCTAWrapper = styled.div` margin: 2rem auto; align-items: center; - .surface { - width: 60%; - min-width: 160px; - } .rotate{ animation: coin-rotate 4s ease-in-out infinite alternate; /* animation-fill-mode: both; */ @@ -59,9 +54,7 @@ const KanvasCTAWrapper = styled.div` @media screen and (max-width:767px) { display: block; - .surface { - width: 30%; - } + .rotate { margin: 0 auto 0.25rem; height: 12rem; @@ -97,7 +90,6 @@ const KanvasCTA = () => {
-

Kanvas is here!

diff --git a/src/sections/Kanvas/kanvas-cta/locator.svg b/src/sections/Kanvas/kanvas-cta/locator.svg index b45cef0f2caf..29c4be1f481b 100644 --- a/src/sections/Kanvas/kanvas-cta/locator.svg +++ b/src/sections/Kanvas/kanvas-cta/locator.svg @@ -1 +1,26 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/sections/Kanvas/kanvas-icon.svg b/src/sections/Kanvas/kanvas-icon.svg index c51b6d9bb9cf..80226d79285b 100644 --- a/src/sections/Kanvas/kanvas-icon.svg +++ b/src/sections/Kanvas/kanvas-icon.svg @@ -1 +1,20 @@ - \ No newline at end of file + + + + + + + + + + + + \ No newline at end of file diff --git a/src/sections/Kanvas/kanvas-modes.js b/src/sections/Kanvas/kanvas-modes.js index 782289fde652..832855b66bb6 100644 --- a/src/sections/Kanvas/kanvas-modes.js +++ b/src/sections/Kanvas/kanvas-modes.js @@ -270,11 +270,11 @@ const KanvasModes = () => {
-

Visualizer

+

Operator

Apply patterns and manage many Kubernetes clusters

- Kanvas Visualizer setVizEnlarged(!vizEnlarged)} className={vizEnlarged ? "big" : "small"} /> + Kanvas Operator setVizEnlarged(!vizEnlarged)} className={vizEnlarged ? "big" : "small"} />

Deploy designs, apply patterns, manage and operate your deployments in real-time. Bring all your Kubernetes clusters under a common point of management. Interactively connect to terminal sessions or initiate and search log streams from your containers.

diff --git a/src/sections/Meshery/Meshery-integrations/Integration.style.js b/src/sections/Meshery/Meshery-integrations/Integration.style.js index 506ffc1c8a30..7c7ee84326d2 100755 --- a/src/sections/Meshery/Meshery-integrations/Integration.style.js +++ b/src/sections/Meshery/Meshery-integrations/Integration.style.js @@ -16,6 +16,17 @@ export const HoneycombGrid = styled.div` } } + .search-box { + input { + border: 1px solid ${props => props.theme.headingColor} !important; + + &:focus { + border-color: #fff !important; + box-shadow: rgba(100, 100, 111, 0.2) 0px 7px 29px 0px !important; + } + } + } + .category { display: flex; flex-wrap: wrap; diff --git a/src/sections/Pricing/icons/kanvas-icon.svg b/src/sections/Pricing/icons/kanvas-icon.svg index c51b6d9bb9cf..80226d79285b 100644 --- a/src/sections/Pricing/icons/kanvas-icon.svg +++ b/src/sections/Pricing/icons/kanvas-icon.svg @@ -1 +1,20 @@ - \ No newline at end of file + + + + + + + + + + + + \ No newline at end of file diff --git a/src/sections/Products/images/layer5-products-overview-dark.svg b/src/sections/Products/images/layer5-products-overview-dark.svg index d00fb50c066a..147b9ad88a0d 100644 --- a/src/sections/Products/images/layer5-products-overview-dark.svg +++ b/src/sections/Products/images/layer5-products-overview-dark.svg @@ -1 +1,95 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/sections/Products/images/layer5-products-overview.svg b/src/sections/Products/images/layer5-products-overview.svg index 67cb2939d6cb..9d215be6d39a 100644 --- a/src/sections/Products/images/layer5-products-overview.svg +++ b/src/sections/Products/images/layer5-products-overview.svg @@ -1,801 +1,94 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/sections/Projects/Sistent/components/button-group/code.js b/src/sections/Projects/Sistent/components/button-group/code.js new file mode 100644 index 000000000000..4b414a557d93 --- /dev/null +++ b/src/sections/Projects/Sistent/components/button-group/code.js @@ -0,0 +1,393 @@ +import React from "react"; +import { navigate } from "gatsby"; +import { useLocation } from "@reach/router"; + +import { + SistentThemeProvider, + Button, + ButtonGroup, + Box, +} from "@layer5/sistent"; +import TabButton from "../../../../../reusecore/Button"; +import { SistentLayout } from "../../sistent-layout"; +import { useStyledDarkMode } from "../../../../../theme/app/useStyledDarkMode"; +import { CodeBlock } from "../button/code-block"; + +const buttons = [ + , + , + , +]; + +const codes = [ + ` + + + + + + `, + ` + + + + + + + + + + + + + + + + `, + ` + + + + + + + + + + + + + + + + `, + ` + + + + + + `, + ` + + + + + + + + + + + + + + + + `, + ` + + + + + + `, +]; + +const ButtonGroupCode = () => { + const location = useLocation(); + const { isDark } = useStyledDarkMode(); + + return ( + +
+ +

Button Group

+
+

+ The ButtonGroup component can be used to group related buttons + together. It is a container for multiple buttons that can be used to + group buttons together and apply styles to them. This component is + useful when you have a group of buttons that need to be styled in a + similar way. +

+
+ + navigate("/projects/sistent/components/button-group") + } + title="Overview" + /> + + navigate("/projects/sistent/components/button-group/guidance") + } + title="Guidance" + /> + + navigate("/projects/sistent/components/button-group/code") + } + title="Code" + /> +
+
+

+ The ButtonGroup component can be used to group related buttons + together. It is a container for multiple buttons that can be used to + group buttons together and apply styles to them. This component is + useful when you have a group of buttons that need to be styled in a + similar way. +

+
+

Basic Usage

+
+

+ The buttons can be grouped by wrapping them with the ButtonGroup + component. They need to be immediate children. +

+
+
+ + + {buttons} + + +
+ +
+ +

Button Variant

+
+

+ The ButtonGroup component supports three variants: Filled, Outlined, + and Text. +

+
+
+ + *": { + m: 1, + }, + }} + > + + {buttons} + + + {buttons} + + + {buttons} + + + +
+ +
+ +

Vertical Group

+
+

+ The ButtonGroup component can be used to create a vertical group of + buttons by setting the vertical prop to true. +

+
+
+ + *": { + m: 1, + }, + }} + > + + {buttons} + + + {buttons} + + + {buttons} + + + +
+ +
+ +

Disable elevation

+
+

+ The ButtonGroup component can be used to create a group of buttons + with no elevation by setting the disableElevation prop to true. +

+
+
+ + + {buttons} + + +
+ +
+ +

Sizes

+
+

+ For now, two different sizes of buttons exist: 56px height and 48px + height. +

+
+
+ + *": { + m: 1, + }, + }} + > + + {buttons} + + + {buttons} + + + {buttons} + + + +
+ +
+ +

Full Width

+
+

+ The ButtonGroup component can be used to create a group of buttons + that take up the full width of the container by setting the + fullWidth prop to true. +

+
+
+ + + {buttons} + + +
+ +
+
+
+ + ); +}; + +export default ButtonGroupCode; diff --git a/src/sections/Projects/Sistent/components/button-group/guidance.js b/src/sections/Projects/Sistent/components/button-group/guidance.js new file mode 100644 index 000000000000..bd9ae5122313 --- /dev/null +++ b/src/sections/Projects/Sistent/components/button-group/guidance.js @@ -0,0 +1,134 @@ +import React from "react"; +import { navigate } from "gatsby"; +import { useLocation } from "@reach/router"; +import TabButton from "../../../../../reusecore/Button"; +import { SistentLayout } from "../../sistent-layout"; + +const ButtonGroupGuidance = () => { + const location = useLocation(); + + return ( + +
+ +

Button Group

+
+

+ The ButtonGroup component can be used to group related buttons + together. It is a container for multiple buttons that can be used to + group buttons together and apply styles to them. This component is + useful when you have a group of buttons that need to be styled in a + similar way. +

+
+ + navigate("/projects/sistent/components/button-group") + } + title="Overview" + /> + + navigate("/projects/sistent/components/button-group/guidance") + } + title="Guidance" + /> + + navigate("/projects/sistent/components/button-group/code") + } + title="Code" + /> +
+
+

+ The ButtonGroup component can be used to group related buttons + together. It is a container for multiple buttons that can be used to + group buttons together and apply styles to them. This component is + useful when you have a group of buttons that need to be styled in a + similar way. +

+ +

Labeling

+
+

+ The ButtonGroup component should be labeled with a heading that + describes the group of buttons. This heading should be descriptive + and should clearly indicate the purpose of the group of buttons. +

+ +

Placement

+
+

+ The ButtonGroup component should be placed in a location that is + easily accessible to users. It should be placed in a prominent + location on the page where users can easily find it. The buttons + within the ButtonGroup should be large enough to be easily + clickable, and there should be enough space between the buttons to + prevent accidental clicks. Additionally, the ButtonGroup should be + accessible via keyboard navigation, and screen readers should be + able to read the labels of the buttons within the group. +

+ +

Behavior

+
+

+ The ButtonGroup component should behave in a consistent and + predictable manner. When a user clicks on a button within the group, + the button should respond visually to indicate that it has been + clicked. The ButtonGroup should also provide visual feedback when a + user hovers over a button, to indicate that the button is clickable. + Additionally, the ButtonGroup should be accessible via keyboard + navigation, and screen readers should be able to read the labels of + the buttons within the group. +

+ +

Styling

+
+

+ The ButtonGroup component should be styled in a way that is + consistent with the rest of the application. The buttons within the + group should be styled in a way that is visually distinct from other + buttons on the page, to indicate that they are part of a group. The + ButtonGroup should also be styled in a way that is accessible to + users with color blindness or low vision. The buttons within the + group should have a visible focus state, and the focus should be set + to the first button in the group by default. +

+ +

Accessibility

+
+

+ The ButtonGroup component should be accessible to all users, + including those with disabilities. The component should be keyboard + navigable, and screen readers should be able to read the labels of + the buttons within the group. The buttons within the ButtonGroup + should have a visible focus state, and the focus should be set to + the first button in the group by default. The ButtonGroup should + also be styled in a way that is accessible to users with color + blindness or low vision. +

+
+
+
+ ); +}; + +export default ButtonGroupGuidance; diff --git a/src/sections/Projects/Sistent/components/button-group/index.js b/src/sections/Projects/Sistent/components/button-group/index.js new file mode 100644 index 000000000000..3748ff273d08 --- /dev/null +++ b/src/sections/Projects/Sistent/components/button-group/index.js @@ -0,0 +1,258 @@ +import React from "react"; +import { navigate } from "gatsby"; +import { useLocation } from "@reach/router"; + +import { + SistentThemeProvider, + ButtonGroup, + Button, + Box, +} from "@layer5/sistent"; +import TabButton from "../../../../../reusecore/Button"; +import { SistentLayout } from "../../sistent-layout"; +import { Row } from "../../../../../reusecore/Layout"; +import { useStyledDarkMode } from "../../../../../theme/app/useStyledDarkMode"; + +const buttons = [ + , + , + , +]; + +const SistentButtonGroup = () => { + const location = useLocation(); + const { isDark } = useStyledDarkMode(); + + return ( + +
+ +

Button Group

+
+

+ The ButtonGroup component can be used to group related buttons + together. It is a container for multiple buttons that can be used to + group buttons together and apply styles to them. This component is + useful when you have a group of buttons that need to be styled in a + similar way. +

+
+ + navigate("/projects/sistent/components/button-group") + } + title="Overview" + /> + + navigate("/projects/sistent/components/button-group/guidance") + } + title="Guidance" + /> + + navigate("/projects/sistent/components/button-group/code") + } + title="Code" + /> +
+
+

+ The ButtonGroup component is a container for multiple buttons that + can be used to group buttons together and apply styles to them. This + component is useful when you have a group of buttons that need to be + styled in a similar way. The ButtonGroup component can be used to + group related buttons together. +

+ +

Basic Usage

+
+

+ The buttons can be grouped by wrapping them with the ButtonGroup + component. They need to be immediate children. +

+ + + + {buttons} + + + + +

Button variants

+
+

+ The ButtonGroup component supports the following variants: contained + (default), outlined, and text. +

+ + + *": { + m: 1, + }, + }} + > + + {buttons} + + + {buttons} + + + {buttons} + + + + + +

Vertical Group

+
+

+ The ButtonGroup component can be used to create a vertical group of + buttons by setting the vertical prop to true. +

+ + + *": { + m: 1, + }, + }} + > + + {buttons} + + + {buttons} + + + {buttons} + + + + + +

Disabled elevation

+
+

+ You can remove the elevation with the disableElevation{" "} + prop. +

+ + + + {buttons} + + + + +

Sizes

+
+

+ The ButtonGroup component supports the following sizes: small, + medium (default), and large. +

+ + + *": { + m: 1, + }, + }} + > + + {buttons} + + + {buttons} + + + {buttons} + + + + + +

Full width

+
+

+ You can make the ButtonGroup full width with the{" "} + fullWidth prop. +

+ + + + {buttons} + + + +
+
+
+ ); +}; + +export default SistentButtonGroup; diff --git a/src/sections/Projects/Sistent/components/container/code.js b/src/sections/Projects/Sistent/components/container/code.js new file mode 100644 index 000000000000..dc55461dd067 --- /dev/null +++ b/src/sections/Projects/Sistent/components/container/code.js @@ -0,0 +1,219 @@ +import React from "react"; +import { navigate } from "gatsby"; +import { useLocation } from "@reach/router"; + +import { SistentThemeProvider, Container, Box } from "@layer5/sistent"; +import { CodeBlock } from "../button/code-block"; +// import { FaArrowRight } from "@react-icons/all-files/fa/FaArrowRight"; +import { SistentLayout } from "../../sistent-layout"; + +import TabButton from "../../../../../reusecore/Button"; +import { useStyledDarkMode } from "../../../../../theme/app/useStyledDarkMode"; + +const codes = [ + ` + + + + `, + + ` + + + + `, + + ` + + + + +`, + ` + + + + +

+ This is a nested container example. +

+
+
+
+
+`, +]; + +export const ContainerCode = () => { + const location = useLocation(); + const { isDark } = useStyledDarkMode(); + + return ( + +
+ +

Container

+
+

+
+ navigate("/projects/sistent/components/container")} + title="Overview" + /> + + navigate("/projects/sistent/components/container/guidance") + } + title="Guidance" + /> + + navigate("/projects/sistent/components/container/code") + } + title="Code" + /> +
+
+

+ The Container component is an essential building block for creating + layouts. Its ability to center content, provide fluid and fixed + widths, and adapt responsively to different screen sizes makes it an + invaluable tool for developers. By using the Container effectively, + you can ensure that your application maintains a clean and organized + appearance while enhancing the user experience. +

+ +

Fluid Container Example

+
+

+ By default, the Container is fluid, meaning it adjusts its width + based on the viewport size. You can control its maximum width by + utilizing the maxWidth prop. +

+
+
+ + + + + +
+ +
+
+

maxWidth Prop Values

+

+ The maxWidth prop accepts several predefined values, each + corresponding to specific breakpoints. Here are the available + options: +

+
    +
  • + "xs": This sets the maximum width to the + extra-small breakpoint (0px to 600px). The container will not + exceed this width, providing a compact layout suitable for + mobile devices. +
  • +
  • + "sm": The small breakpoint (600px to 960px) + ensures that the container expands up to a width of 600px, + making it a good choice for tablets and smaller desktops. +
  • +
  • + "md": This option sets the maximum width to the + medium breakpoint (960px to 1280px). It is useful for standard + desktop views while still accommodating smaller devices. +
  • +
  • + "lg": The large breakpoint (1280px to 1920px) + allows the container to grow larger, up to 1280px, ideal for + wide-screen displays and detailed layouts. +
  • +
  • + "xl": This sets the maximum width to the + extra-large breakpoint (1920px and above). It's particularly + beneficial for high-resolution screens where more content can be + displayed without feeling cramped. +
  • +
  • + false: If set to false, the container will have + no maximum width constraint, allowing it to stretch the full + width of its parent element. +
  • +
+
+ +
+

+ Another Example with maxWith = "md" +

+
+
+ + + + + +
+ +
+
+ +

Fixed Container Example

+
+

+ If you prefer a fixed width, you can use the fixed prop. This aligns + the container's max-width with the minimum width of the current + breakpoint, ensuring that your layout remains consistent across + different screen sizes +

+
+
+ + + + + +
+ +
+ +

Nested Container Example

+

+ A small section on nesting containers, emphasizing best practices. +

+
+
+
+ + + + + + + +
+ +
+
+
+
+ ); +}; diff --git a/src/sections/Projects/Sistent/components/container/guidance.js b/src/sections/Projects/Sistent/components/container/guidance.js new file mode 100644 index 000000000000..6578572a29f9 --- /dev/null +++ b/src/sections/Projects/Sistent/components/container/guidance.js @@ -0,0 +1,164 @@ +import React from "react"; +import { navigate } from "gatsby"; +import { useLocation } from "@reach/router"; +import { Row } from "../../../../../reusecore/Layout"; +import { SistentThemeProvider, Container, Box } from "@layer5/sistent"; +import { SistentLayout } from "../../sistent-layout"; + +import TabButton from "../../../../../reusecore/Button"; +import { useStyledDarkMode } from "../../../../../theme/app/useStyledDarkMode"; + +export const ContainerGuidancePage = () => { + const location = useLocation(); + const { isDark } = useStyledDarkMode(); + + return ( + +
+ +

Container

+
+

+ Containers are fundamental layout elements, used to center and + structure content horizontally. They can be fluid or fixed, helping + maintain alignment across different screen sizes and improving + readability. +

+
+ navigate("/projects/sistent/components/container")} + title="Overview" + /> + + navigate("/projects/sistent/components/container/guidance") + } + title="Guidance" + /> + + navigate("/projects/sistent/components/container/code") + } + title="Code" + /> +
+
+

+ The Container component is an essential building block for creating + layouts. Its ability to center content, provide fluid and fixed + widths, and adapt responsively to different screen sizes makes it an + invaluable tool for developers. By using the Container effectively, + you can ensure that your application maintains a clean and organized + appearance while enhancing the user experience +

+ + +

Function

+
+ +

The Container serves various functions:

+ +

Fluid Container

+

+ A fluid container adapts to the width of its parent element and can + have a maximum width set by the maxWidth prop. This is + useful for creating responsive layouts that adjust based on screen + size. +

+ + + + +

+ This is a fluid container that adjusts its width based on + the screen size. +

+
+
+
+
+ +

Fixed Container

+

+ A fixed container uses predefined maximum widths based on + breakpoints, providing a consistent layout across different screen + sizes. This helps maintain a structured design that is visually + appealing. +

+ + + + +

+ This is a fixed container with a max width defined by the + current breakpoint +

+
+
+
+
+ +

Nested Containers

+

+ While nesting containers is possible, it is generally recommended to + avoid it unless necessary. Proper use of containers can enhance + layout structure without complicating the design. +

+ + + + + +

+ This is a nested container example. +

+
+
+
+
+
+ + +

Labeling

+
+

+ Container labeling is essential for understanding the layout + structure. Use clear and descriptive headings to indicate the + purpose of each container. +

+ +

Use Cases

+

+ Different use cases for containers include wrapping content + sections, creating responsive grids, and maintaining consistent + padding and margins across various components. +

+ +

Responsive Design

+

+ Leveraging the container's fluid and fixed properties contributes to + a responsive design that provides a seamless user experience across + devices of all sizes. +

+
+
+
+ ); +}; diff --git a/src/sections/Projects/Sistent/components/container/index.js b/src/sections/Projects/Sistent/components/container/index.js new file mode 100644 index 000000000000..03c53dfa0ded --- /dev/null +++ b/src/sections/Projects/Sistent/components/container/index.js @@ -0,0 +1,126 @@ +import React from "react"; +import { navigate } from "gatsby"; +import { useLocation } from "@reach/router"; + +import { SistentThemeProvider, Container, Box } from "@layer5/sistent"; +import TabButton from "../../../../../reusecore/Button"; +import { SistentLayout } from "../../sistent-layout"; +import { Row } from "../../../../../reusecore/Layout"; +import { useStyledDarkMode } from "../../../../../theme/app/useStyledDarkMode"; + +const SistentContainer = () => { + const location = useLocation(); + const { isDark } = useStyledDarkMode(); + + return ( + +
+ +

Container

+
+

+ Containers are fundamental layout elements, used to center and + structure content horizontally. They can be fluid or fixed, helping + maintain alignment across different screen sizes and improving + readability. +

+
+ navigate("/projects/sistent/components/container")} + title="Overview" + /> + + navigate("/projects/sistent/components/container/guidance") + } + title="Guidance" + /> + + navigate("/projects/sistent/components/container/code") + } + title="Code" + /> +
+
+

+ The Container component is an essential building block for creating + layouts. Its ability to center content, provide fluid and fixed + widths, and adapt responsively to different screen sizes makes it an + invaluable tool for developers. By using the Container effectively, + you can ensure that your application maintains a clean and organized + appearance while enhancing the user experience. +

+ +

Types of Container

+
+

+ Sistent has two main types of containers that cater to different + layout requirements: Fluid Containers and Fixed Containers. Each + type serves specific use cases in building responsive web + applications. +

+

1. Fluid Container

+

+ A Fluid Container automatically adjusts its width to fill the + available space based on the viewport size. It allows for a + responsive layout that adapts to different screen sizes. +

+

Usage

+

+ Ideal for layouts where you want the content to take full advantage + of the available width. The fluid nature of the container ensures + that it scales seamlessly across devices, from mobile to desktop. +

+ + + + + + + + +

2. Fixed Container

+

+ A Fixed Container has a predefined width that matches the minimum + width of the current breakpoint. This allows for a consistent and + controlled layout across different screen sizes. +

+

Usage

+

+ Suitable for designs that require specific width constraints, + ensuring that your content does not stretch too wide on larger + screens. This is particularly useful for fixed-width layouts where + the visual structure is maintained. +

+ + + + + + + +
+
+
+ ); +}; + +export default SistentContainer; diff --git a/src/sections/Projects/Sistent/components/index.js b/src/sections/Projects/Sistent/components/index.js index 123b30eea5dd..e440e4ed50d2 100644 --- a/src/sections/Projects/Sistent/components/index.js +++ b/src/sections/Projects/Sistent/components/index.js @@ -60,6 +60,20 @@ const componentsData = [ }, { id: 8, + name: "Container", + description: + "Containers align and center content, providing responsive layout options for different screen sizes.", + url: "/projects/sistent/components/container", + }, + { + id: 9, + name: "ButtonGroup", + description: + "ButtonGroup is a component that groups multiple buttons together.", + url: "/projects/sistent/components/button-group", + }, + { + id: 10, name: "Drawer", description: "A Drawer component provides a sliding panel that can be used to display navigation links, actions, or additional content", @@ -127,7 +141,6 @@ const SistentComponents = () => {
))} -
diff --git a/src/sections/Projects/Sistent/sistent.style.js b/src/sections/Projects/Sistent/sistent.style.js index 7deb603dcd3c..57ef8e728ca4 100644 --- a/src/sections/Projects/Sistent/sistent.style.js +++ b/src/sections/Projects/Sistent/sistent.style.js @@ -645,6 +645,7 @@ const SistentWrapper = styled.div` .product_cards .card { width: 400px; + height: 280px; display: flex; flex-direction: column; justify-content: space-between; @@ -652,6 +653,7 @@ const SistentWrapper = styled.div` background-color: ${(props) => props.theme.grey212121ToGreyF0F0F0}; padding: 2rem; } + .logo { max-height: 3rem; } @@ -675,14 +677,20 @@ const SistentWrapper = styled.div` color: ${props => props.theme.text}; } - .card .text { - padding-top: 1rem; - padding-bottom: 2rem; - font-size: 16px; - font-style: normal; - font-weight: 400; - color: ${(props) => props.theme.whiteToBlack}; - } +.card .text { + padding-top: 1rem; + padding-bottom: 2rem; + font-size: 16px; + font-style: normal; + font-weight: 400; + color: ${(props) => props.theme.whiteToBlack}; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 3; + overflow: hidden; + text-overflow: ellipsis; + max-height: calc(1.5rem * 4); +} .card { box-shadow: 0px 2px 6px 0px ${props => props.theme.green00D3A9ToBlackTwo}; diff --git a/src/sections/app.style.js b/src/sections/app.style.js index c09e58973553..dbff856e861e 100644 --- a/src/sections/app.style.js +++ b/src/sections/app.style.js @@ -174,6 +174,25 @@ section{ position: relative; } + // styling for the searchbox + .search-box { + input { + background-color: ${props => props.theme.shadowDarkColor}!important; + color: ${props => props.theme.text}; + transition: all 450ms ease 0s; + + &:focus { + border-color: #fff !important; + box-shadow: rgba(100, 100, 111, 0.2) 0px 7px 29px 0px !important; + } + } + + // for the Search Icon + svg { + color: ${(props) => props.theme.searchIconColor}; + } + } + /* Modal styling needs to be applied to the global CSS */ .Modal { diff --git a/src/theme/app/themeStyles.js b/src/theme/app/themeStyles.js index f4f8e83b9af9..aff46ff5d86f 100644 --- a/src/theme/app/themeStyles.js +++ b/src/theme/app/themeStyles.js @@ -38,6 +38,9 @@ const lighttheme = { headingColor: "#111111", + // searchbox Icon Color + searchIconColor: "#333333", + // light slate gray (medium gray) textColor: "#000000", shadowColor: "rgba(0, 0, 0, 0.05)", @@ -267,6 +270,9 @@ export const darktheme = { headingColor: "#000000", + // searchbox icon color + searchIconColor: "#FFFFFF", + // light slate gray (medium gray) textColor: "#000000", shadowColor: "rgba(255, 255, 255, 0.05)", diff --git a/static/brand/stick-figures.zip b/static/brand/five-mascot-kit.zip similarity index 100% rename from static/brand/stick-figures.zip rename to static/brand/five-mascot-kit.zip diff --git a/static/brand/kanvas-brand-kit.zip b/static/brand/kanvas-brand-kit.zip index ed73c07f6d03..27804c7d6aa9 100644 Binary files a/static/brand/kanvas-brand-kit.zip and b/static/brand/kanvas-brand-kit.zip differ