diff --git a/.github/ISSUE_TEMPLATE/community_member_profile.md b/.github/ISSUE_TEMPLATE/community_member_profile.md index 57b9a8c1740b6..a9efdd451cdca 100644 --- a/.github/ISSUE_TEMPLATE/community_member_profile.md +++ b/.github/ISSUE_TEMPLATE/community_member_profile.md @@ -16,7 +16,7 @@ Let's recognize <@github-username> as a contributor and community member by crea - GitHub: - Twitter: - LinkedIn: -- Layer5 Cloud: +- Layer5 Cloud: - Link to profile picture: A detailed explanation on how to set up a community member profile can be found in the [CONTRIBUTING.md](https://github.com/layer5io/layer5/blob/master/CONTRIBUTING.md) diff --git a/README.md b/README.md index 392449261e19e..c0ed2af83be76 100644 --- a/README.md +++ b/README.md @@ -147,7 +147,7 @@ alt="Nighthawk" align="left" />

-

Meshery Catalog

+

Meshery Catalog

{ 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 c8255dedc1d03..36db5793f9316 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", @@ -3518,11 +3518,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 +3536,7 @@ "mui-datatables": "*", "react": ">=17", "react-dom": ">=17", - "xstate": "^5.13.0" + "xstate": "^5.18.2" }, "peerDependenciesMeta": { "@emotion/react": { @@ -3560,6 +3562,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", @@ -6168,20 +6182,14 @@ "resolved": "https://registry.npmjs.org/@types/yoga-layout/-/yoga-layout-1.9.2.tgz", "integrity": "sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==" }, - "node_modules/@typescript-eslint/eslint-plugin": { + "node_modules/@typescript-eslint/type-utils": { "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==", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", + "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/type-utils": "5.62.0", + "@typescript-eslint/typescript-estree": "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": { @@ -6192,8 +6200,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "eslint": "*" }, "peerDependenciesMeta": { "typescript": { @@ -6201,26 +6208,30 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/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/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==", "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/parser": { + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", - "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "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/scope-manager": "5.62.0", "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "debug": "^4.3.4" + "@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" @@ -6229,22 +6240,19 @@ "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/@typescript-eslint/scope-manager": { + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "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", - "@typescript-eslint/visitor-keys": "5.62.0" + "eslint-visitor-keys": "^3.3.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -6254,15 +6262,41 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/type-utils": { + "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/utils": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", "@typescript-eslint/typescript-estree": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -6272,15 +6306,26 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "*" + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "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" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/types": { + "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==", @@ -6292,7 +6337,7 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/typescript-estree": { + "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==", @@ -6318,54 +6363,7 @@ } } }, - "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==", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - }, - "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" - } - }, - "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": { + "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 +6379,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,6 +6390,17 @@ "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/@ungap/structured-clone": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", @@ -7618,6 +7627,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 +9192,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", @@ -14011,16 +14030,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 +14977,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 +15212,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", diff --git a/package.json b/package.json index c0e0de30d58cf..11fc528e5674c 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 f14f8054c7347..3c48767e55044 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 b6a40624d0d2c..32b764d4f3d7d 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 3750861b10bbc..72f5fa0c76918 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 e509a1b5a42ee..6fc970b1ba196 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 a985d28043d0c..0a0a2f410ea1b 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 cae5b1b6dbe39..9aa8164a931ef 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 0000000000000..df65c7be37ae4 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 0000000000000..760a411d258a0 --- /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 cd1deb19fa32c..04ac618f115f9 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 12f1ca430ea7c..8d1efb11a2118 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 5e4e368e504a5..30211106de999 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 76519b4935ad1..07abbe744b147 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 e60a16b4eb5f7..6d26491dd0a8b 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 a059586993b2e..eacdffaf469bd 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/2022/2022-06-08-experience-lfx-pranav-singh/index.mdx b/src/collections/blog/2022/2022-06-08-experience-lfx-pranav-singh/index.mdx index ffec6abb20f98..5c188d25e8ce7 100644 --- a/src/collections/blog/2022/2022-06-08-experience-lfx-pranav-singh/index.mdx +++ b/src/collections/blog/2022/2022-06-08-experience-lfx-pranav-singh/index.mdx @@ -30,7 +30,7 @@ more excited by the enthusiasm and energy of each community members welcoming me learned about the project through the demos/updates from fellow contributors. Slowly and gradually, I started contributing too, then delivering updates in the community calls, and consequently started climbing the contributor ladder. -When I realised that I would be working on [Layer5 Cloud](https://meshery.layer5.io) and Meshery as an LFX intern at Layer5, then I couldn't control my excitement. +When I realised that I would be working on [Layer5 Cloud](https://cloud.layer5.io) and Meshery as an LFX intern at Layer5, then I couldn't control my excitement. That excitement was to ship more impactful features for the Layer5 projects, work and engage more deeply with the engineering team at Layer5 and have an overall upliftment of my development skills. Throughout my internship I worked on several features. Few on the top of the list are as follows, expanding [Meshery extension points](https://docs.meshery.io/extensibility), exposing node details of the K8s clusters on which Meshery runs performance tests, diff --git a/src/collections/blog/2023/2023-09-05-unlocking-the-power-of-webassembly-in-service-mesh-management/index.mdx b/src/collections/blog/2023/2023-09-05-unlocking-the-power-of-webassembly-in-service-mesh-management/index.mdx index 7d44ff951180b..03b94ee34678f 100644 --- a/src/collections/blog/2023/2023-09-05-unlocking-the-power-of-webassembly-in-service-mesh-management/index.mdx +++ b/src/collections/blog/2023/2023-09-05-unlocking-the-power-of-webassembly-in-service-mesh-management/index.mdx @@ -32,7 +32,7 @@ With this collaboration, we're introducing powerful features that simplify the m ### Meshery UI and CLI Integration - **Import WASM Envoy Filters**: Easily import your WebAssembly Envoy filters into Meshery using the intuitive UI or the command-line interface ([CLI](https://docs.meshery.io/reference/mesheryctl#data-plane-intelligence)). - **Publish and Clone Filters**: Share your filters with the community by publishing them in the [Meshery Catalog](https://meshery.io/catalog) and make it effortless for others to clone them. -- **Download WASM Binaries**: Access and download WebAssembly binaries directly from [Meshery Cloud](https://meshery.layer5.io/). +- **Download WASM Binaries**: Access and download WebAssembly binaries directly from [Meshery Cloud](https://cloud.layer5.io/). - **Efficient Data Plane Design**: Seamlessly design and deploy Istio and Envoy data planes using [MeshMap](https://layer5.io/cloud-native-management/meshmap). - **Contribute to Open Source**: Get involved with the service mesh community by contributing to any of the 7 open-source [wasm-filters](https://github.com/layer5io/wasm-filters) developed by Layer5. 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 11340b95645e9..5251a37c3f4ab 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/10-22-meet-the-maintainer-aadhitya-amarendiran/aadhitya-amarendiran-layer5-maintainer.png b/src/collections/blog/2024/10-22-meet-the-maintainer-aadhitya-amarendiran/aadhitya-amarendiran-layer5-maintainer.png new file mode 100644 index 0000000000000..8fa9efbe6df3a Binary files /dev/null and b/src/collections/blog/2024/10-22-meet-the-maintainer-aadhitya-amarendiran/aadhitya-amarendiran-layer5-maintainer.png differ diff --git a/src/collections/blog/2024/10-22-meet-the-maintainer-aadhitya-amarendiran/post.mdx b/src/collections/blog/2024/10-22-meet-the-maintainer-aadhitya-amarendiran/post.mdx new file mode 100644 index 0000000000000..4c1d851741be8 --- /dev/null +++ b/src/collections/blog/2024/10-22-meet-the-maintainer-aadhitya-amarendiran/post.mdx @@ -0,0 +1,197 @@ +--- +title: "Meet the Maintainer: Aadhitya Amarendiran" +subtitle: "An interview series with open source maintainers" +date: 2024-09-08 10:30:05 -0530 +author: Vivek Vishal +thumbnail: ./aadhitya-amarendiran-layer5-maintainer.png +darkthumbnail: ./aadhitya-amarendiran-layer5-maintainer.png +description: Meet the Maintainer series with open source maintainer, Aadhitya Amarendiran +type: Blog +category: Open Source +tags: + - Open Source +featured: false +published: true +--- + +import { BlogWrapper } from "../../Blog.style.js"; +import img from "./aadhitya-amarendiran-layer5-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{" "} + Aadhitya Amarendiran. Aadhitya + is a maintainer of the{" "} + Meshery CLI project. In + this interview, we get to know Aadhitya a little better and learn about his + journey as an open source project maintainer and with Layer5 community. +

+
+ +
+ Vivek: +

+ Aadhitya, 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 Aadhitya is and how you arrived at your maintainer role. Indulge us. How did you discover the Layer5 community? What made you stay? +

+
+ +
+ Aadhitya: +

+ It was around the year 2020 when I was a sophomore and explored many things in the field of open source. I got to know about Meshery via the LFX program and tried applying for it, though I was a newcomer at that time. Later, I learned more about Layer5, started attending the community call, and met the community. The community members helped me a lot wherever I got stuck as a newcomer, which made me learn new things and involve myself in the project, which later helped me grow. Oh, of course, great learning sessions from Lee during development and community calls. +

+
+ +
+ Vivek: +

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

+
+ +
+ Aadhitya: +

+ Three things come into my mind: Learning lots of new things, Challenging yourself to your limits and being a helpful navigator for contributors. During my time as a newcomer, I started out with a simple readme fix PR in the Meshery project, which I thought would cause less impact. But the maintainers accepted my PR though it’s a very small one. That instilled a feeling in me that I should give back to the community by helping newcomers and contributors whenever they are stuck in work. +

+
+ +
+ Vivek: +

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

+
+ +
+ Aadhitya: +

+ Not a lot, but I worked on quite a few open source projects. Layer5 is one of the best places to start if you are new to open source. By being involved in the community, you will feel and understand the spirit of open source. +

+
+ +
+ Vivek: +

+ 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? +

+
+ +
+ Aadhitya: +

+ I currently work on Meshery, as it piqued my interest during my initial days. I also work on the Meshery-SMP GitHub action project as well. +

+
+ +
+ Vivek: +

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

+
+ +
+ Aadhitya: +

+ I’ve seen a lot of demos but the coolest one for me is the Meshery Docker extension where you can start and use Meshery right from DockerHub! +

+
+ +
+ Vivek: +

+ What is your favorite Meshery CLI Command? +

+
+ +
+ Aadhitya: +

Oof! That’s a tricky one. But my favorite one is definitely mesheryctl perf

+
+ +
+ Vivek: +

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

+
+ +
+ Aadhitya: +

+ If you’re starting out with Meshery, make sure to use the Meshery Playground if you want to get hands-on for the first time without the need to deploy Meshery in your system. After you get the basics right, install Meshery and log in to your deployed instance. You’ll see that your designs, performance test results and configurations remain intact in your instance as if they are present exactly the same in the Playground. There’s no need to start from scratch. Just continue where you left off! +

+
+ +
+ Vivek: +

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

+
+ +
+ Aadhitya: +

Considering the fact that Meshery is now a part of CNCF (especially the fact that we are aiming for the Incubation status as well!), I feel that Meshery has a wide range of scope for contributors to be involved in. Whether you’re an expert or a newbie, Meshery has lots of subdomains to contribute. Documentation, Frontend, Backend, Adapters… the list goes on.

+
+ +
+ Vivek: +

+ 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? +

+
+ +
+ Aadhitya: +

+ Most used emoji: 😎. I’m a morning person usually and sleep early, but sometimes I’m a night owl when it comes to intense work. I’d prefer movies compared to books as for some they clearly adapt from books. I’ve worked on refactoring the mesheryctl pattern command to mesheryctl design without losing the core features present. This took me a bit of time as I had to balance my current work as well which caused a bit of inactivity. But I managed to complete it, and I’m proud of doing such great work! +

+
+ +
+ Vivek: +

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

+
+ +
+ Aadhitya: +

+ Make your presence stand out from the crowd even if you are a beginner, and learn as much as you can. Seek MeshMates and maintainers if you get stuck in something. Ask questions during meets or in Slack, and get feedback on your PRs, doesn’t matter if it’s big or small. Incorporate feedback and improvise. Remember, communication is the key, and be active! +

+
+ +
+ Vivek: +

+ 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. +

+
+ +
+ Aadhitya: +

+ Yes, you got it right! Even the smallest contribution which creates a good impact in a project becomes a great factor in Open source. All that matters is perseverance, challenging yourself to limits and learning. Do these things right and you’ll find yourself growing in the community. +

+
+ +
+ +

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

+
+ + + 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 0000000000000..78d3c60418e8c --- /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 0000000000000..6f5d1afba7f81 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 0000000000000..1f53b04f9ee08 --- /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/blog/2024/11-10-kubecon-na-2024/kubeconna-2024.png b/src/collections/blog/2024/11-10-kubecon-na-2024/kubeconna-2024.png new file mode 100644 index 0000000000000..edbbe2fa45be3 Binary files /dev/null and b/src/collections/blog/2024/11-10-kubecon-na-2024/kubeconna-2024.png differ diff --git a/src/collections/blog/2024/11-10-kubecon-na-2024/post.mdx b/src/collections/blog/2024/11-10-kubecon-na-2024/post.mdx new file mode 100644 index 0000000000000..69dda7e6fe3b4 --- /dev/null +++ b/src/collections/blog/2024/11-10-kubecon-na-2024/post.mdx @@ -0,0 +1,91 @@ +--- +title: "Meshery at KubeCon + CloudNativeCon NA 2024" +subtitle: "Join us at these Meshery sessions" +date: 2024-11-10 +author: Layer5 Team +thumbnail: ./kubeconna-2024.png +darkthumbnail: ./kubeconna-2024.png +description: "Meshery sessions at KubeCon + CloudNativeCon NA 2024" +type: Blog +category: Events +tags: + - Meshery +featured: false +published: true +resource: false +--- + +import { BlogWrapper } from "../../Blog.style.js"; +import { Link } from "gatsby"; +import Button from "../../../../reusecore/Button"; + + + + +Join Layer5 at KubeCon + CloudNativeCon NA, Salt Lake City, Utah! + + +

+Join the Meshery project at KubeCon NA 2024 from November 11th to November 16th, 2024 and get introduced to collaborative cloud native management and Meshery open source maintainers. +

+ +### Session: Meshery - Visualizing Kubernetes Resource Relationships with Meshery + +

+Meshery and its extensions empower you to navigate cloud native infrastructure in complex environments. This lighting talk delves into the human-computer interaction (HCI) principles that underpin MeshMap's intuitive visualization of Kubernetes resources and the various forms of inter/relationships with other CNCF projects' resources. + +Human-Computer Interaction Principles in Meshery: + +

+

+ +
+

+ Date: November 12, 2024
+ Time: 3:04pm - 3:09pm MST +

+ +
+ +### Session: CNCF TAG Network - Intro & Deep Dive + +

+“It’s the network!” is the cry of every engineer. With the increased prevalence of microservices and distributed systems, it’s true - networking as a discipline has never been more critical in the well-architected design and efficient operation of modern infrastructure. Join this talk for an intro to the TAG, its charter and a deeper discussion of current cloud native networking topics being advanced in this TAG. +

+ +
+

+ Date: November 14, 2024
+ Time: 11:55am - 12:30pm MST +

+ +
+ +### Session: Contribfest - Meshery Contribfest: Extending the Cloud Native Manager + +

+Join the Meshery maintainers and community in improving the leading cloud native management plane. This is your chance to get hands-on with the tools shaping the future of collaborative cloud native management. Opportunities: Work on core functionality in the Server (Golang) or UI (React) or extend Meshery by building your own plugin. Contribute to the Meshery documentation by incorporating your own examples of cloud native solution architectures using Meshery Designer. +

+

+Why Contribute to Meshery? - Gain experience with cloud native technologies, including essentially every CNCF project and open source development practices. As is the 10th fastest growing CNCF project, Meshery has a vibrant community. Work alongside passionate maintainers and contributors. No Prior Experience Needed: We welcome contributions from all levels of experience. Join us at Meshery Contribfest and be part of the growing community shaping the future of collaborative cloud native management. +

+ +
+

+ Date: November 14, 2024
+ Time: 4:30pm - 6:00pm MST +

+
+ + + + + +
diff --git a/src/collections/integrations/antrea/icons/components/packet-capture/icons/color/packet-capture-color.svg b/src/collections/integrations/antrea/icons/components/packet-capture/icons/color/packet-capture-color.svg new file mode 100644 index 0000000000000..8294df7d2b511 --- /dev/null +++ b/src/collections/integrations/antrea/icons/components/packet-capture/icons/color/packet-capture-color.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/collections/integrations/antrea/icons/components/packet-capture/icons/white/packet-capture-white.svg b/src/collections/integrations/antrea/icons/components/packet-capture/icons/white/packet-capture-white.svg new file mode 100644 index 0000000000000..c016e3a306b92 --- /dev/null +++ b/src/collections/integrations/antrea/icons/components/packet-capture/icons/white/packet-capture-white.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/collections/integrations/antrea/index.mdx b/src/collections/integrations/antrea/index.mdx index 0d695cbbf8d7e..cf138d411dc32 100644 --- a/src/collections/integrations/antrea/index.mdx +++ b/src/collections/integrations/antrea/index.mdx @@ -110,6 +110,12 @@ components: [ "colorIcon": "icons/components/node-latency-monitor/icons/color/node-latency-monitor-color.svg", "whiteIcon": "icons/components/node-latency-monitor/icons/white/node-latency-monitor-white.svg", "description": "", +}, +{ +"name": "packet-capture", +"colorIcon": "icons/components/packet-capture/icons/color/packet-capture-color.svg", +"whiteIcon": "icons/components/packet-capture/icons/white/packet-capture-white.svg", +"description": "", }] featureList: [ "Network policy enforcement", 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 0000000000000..2824417477442 --- /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 0000000000000..7f776934ed583 --- /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 fdfce90f9d517..043d7f59203b3 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 0000000000000..2db7c10ded120 --- /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 0000000000000..26d3561c5a31b --- /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 322f97e7e19d8..8d7a268a2d4d7 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": "", }] featureList: [ "Scales applications based on various metrics", diff --git a/src/collections/members/Hargun-Kaur/index.mdx b/src/collections/members/Hargun-Kaur/index.mdx index 5713b0e040fc5..863782637a06b 100644 --- a/src/collections/members/Hargun-Kaur/index.mdx +++ b/src/collections/members/Hargun-Kaur/index.mdx @@ -12,6 +12,6 @@ badges: - community - docs community_manager: yes -status: Active +status: Inactive published: true --- diff --git a/src/collections/members/_member-profile-template/index.mdx b/src/collections/members/_member-profile-template/index.mdx index 8bfbfa25a84ee..a250b8b4ab053 100644 --- a/src/collections/members/_member-profile-template/index.mdx +++ b/src/collections/members/_member-profile-template/index.mdx @@ -5,7 +5,7 @@ image_path: ./display-picture.webp github: # just the user handle (e.g. vinayaksh42) twitter: # just the user handle (e.g. Vinayak47427793) linkedin: # last portion of https://www.linkedin.com/in/ (e.g. vinayak-sharma-141096193) -layer5: # Layer5 Cloud user ID; last portion of https://meshery.layer5.io/user/ +layer5: # Layer5 Cloud user ID; last portion of https://cloud.layer5.io/user/ location: # City, Country bio: # One or two paragraphs about the community member, enclosed in quotation marks. badges: # List of badges that this member carries. diff --git a/src/collections/members/ aditya-Mohan/aditya-mohan.webp b/src/collections/members/aditya-Mohan/aditya-mohan.webp similarity index 100% rename from src/collections/members/ aditya-Mohan/aditya-mohan.webp rename to src/collections/members/aditya-Mohan/aditya-mohan.webp diff --git a/src/collections/members/ aditya-Mohan/index.mdx b/src/collections/members/aditya-Mohan/index.mdx similarity index 97% rename from src/collections/members/ aditya-Mohan/index.mdx rename to src/collections/members/aditya-Mohan/index.mdx index 9bb9525557683..33de690f48c92 100644 --- a/src/collections/members/ aditya-Mohan/index.mdx +++ b/src/collections/members/aditya-Mohan/index.mdx @@ -10,7 +10,7 @@ location: Atlanta, Georgia, United States bio: Hi, Open-source enthusiast, full-stack developer, and M.S. Computer Science student at Georgia State University—blending creativity in code, music, and gaming with a passion for tech and gadgets, and always on the lookout for the next cool toy to tinker with. badges: - meshery -status: Active +status: Inactive published: true maintainer: no --- diff --git a/src/collections/news/2024/2024-11-12-layer5-launches-kanvas-a-collaborative-platform-for-cloud-native-infrastructure/index.mdx b/src/collections/news/2024/2024-11-12-layer5-launches-kanvas-a-collaborative-platform-for-cloud-native-infrastructure/index.mdx new file mode 100644 index 0000000000000..6deb429fd4e0f --- /dev/null +++ b/src/collections/news/2024/2024-11-12-layer5-launches-kanvas-a-collaborative-platform-for-cloud-native-infrastructure/index.mdx @@ -0,0 +1,114 @@ +--- +title: "Layer5 Launches Kanvas: A Collaborative Platform for Cloud Native Infrastructure" +subtitle: "Enabling teams to collaboratively design, deploy, and manage cloud native infrastructure without finger-pointing" +date: 2024-11-15 08:00:00 -0530 +author: The Newsroom +thumbnail: ../../../../assets/images/kanvas/stacked/kanvas-stacked-color.svg +darkthumbnail: ../../../../assets/images/kanvas/stacked/kanvas-stacked-partial-color.svg +category: "Press Release" +description: "Layer5 announces Kanvas, a collaboration platform for engineering teams managing cloud native infrastructure. Built on Meshery, Kanvas provides an intuitive design suite for engineers to visualize, manage, and collaboratively design multi-cloud and Kubernetes-native infrastructure." +tags: + - Announcements + - Kanvas +type: News +presskit: "" +resource: false +published: true +--- +import { Link } from "gatsby"; +import Kanvas from "./kanvas-icon-color.svg"; +import KanvasScreenshot from "./layer5-kanvas-designer.webp"; +import { NewsWrapper } from "../../News.style.js"; +import Blockquote from "../../../../reusecore/Blockquote"; +import BlockquoteAlt from "../../../../reusecore/Blockquote/Blockquote-alt-style"; + + +

+[Salt Lake City, UT] [KubeCon + CloudNativeCon] - November 14th, 2024 – Layer5, the open source company behind the popular Meshery project, announces Kanvas, a new collaboration platform that is like Google Workspace, but designed for engineering teams. +

+ +Layer5 Kanvas Designer + +

Kanvas is a multi-modal collaboration suite built atop one of the Cloud Native Computing Foundation’s highest velocity open source projects: Meshery. Kanvas’s two modes, Designer and Operator, offer declarative and imperative DevOps workflows, respectively. Both modes provide a visual interface for creating and managing complex cloud native infrastructure, expediting collaborative problem-solving, brainstorming and innovation, engineer onboarding, and auto-documented infrastructure. Importantly, Kanvas helps teams avoid finger-pointing and the blame-game by allowing them to be on the same page - literally.

+ + + +

+As an extensible, self-service engineering platform with hundreds of technology integrations, supporting multi-cloud and Kubernetes native infrastructure, Meshery is the ideal management platform upon which to build Kanvas’ novel collaboration experience. Meshery has thousands of pre-built components supporting Kubernetes and Cloud services and with over 2,000 contributors, Meshery is the 9th fastest growing CNCF (out of 200+ projects). +

+ + +
+ +

+Like Figma for engineers, Kanvas users can access Kanvas from any computer with an internet connection and a web browser. +

+ +#### Feature Highlights: +
    +
  • Infrastructure as Design: Intuitive drag-and-drop interface for designing and visualizing cloud native infrastructure and general architecture diagrams. Supports Kubernetes and multi-cloud services.
  • +
  • Self-Service DevOps: Empowers engineers to create, share, and manage their own environments on demand.
  • +
  • Greenfields and Brownfield Infrastructure: Import existing cloud environments to visualize current infrastructure or create a new design from scratch.
  • +
  • GitOps Integration: Pull request integration for infrastructure design reviews.
  • +
  • Model-Driven characterization of both semantic and non-semantic infrastructure as design components.
  • +
  • Policy-driven intelligent inference of infrastructure components and their relationships.
  • +
  • Real-Time Collaboration: Work with others on your designs in real-time, making it easier to collaborate and share ideas, while all changes are saved automatically.
  • +
  • Design Patterns: A catalog full of ready-made blueprints for common infrastructure and application architectures.
  • +
  • Kanvas Spaces: provide a collaborative environment similar to Google Shared Drive, but specifically tailored for cloud-native infrastructure management.
  • +
  • Design Reviews: Collaboratively review and provide feedback on designs and prototypes.
  • +
+ +
+ +

Birth of Kanvas from Meshery

+
+#### Kanvas caters to a wide range of users, including: +
    +
  • Teams and engineering managers for brainstorming, diagramming, wireframing, and interviewing.
  • +
  • Platform engineers for underpinning self-service and developer empowerment.
  • +
  • Site reliability engineers for curating a catalog of design patterns as a center of excellence.
  • +
  • Operators for managing and visualizing infrastructure components.
  • +
  • Solution architects designing infrastructure across multiple cloud providers from a single canvas.
  • +
  • Developer advocates and educators for facilitating real-time exploration and asynchronous study of any cloud native technology.
  • +
  • Developers and product engineers for ease of understanding and design of their application infrastructure.
  • +
  • System integrators and consultants for a service provider-grade organization hierarchy, multi-tenant, white-labelable, highly extensible delivery platform.
  • +
+ + + +

Kanvas Designer is available now in beta as a service or self-hosted solution. Kanvas Operator will be available early next year. Try dragging and dropping your Kubernetes manifest into https://kanvas.new today.

+ + + +#### Resources + + +##### About Layer5, Inc. +

+Our open source and commercial products empower organizations to embrace the power of cloud native with confidence. Layer5's mission is to simplify the adoption and operation of cloud native infrastructure, enabling organizations to innovate faster and engineers to do so collaboratively. +Layer5’s award-winning open source community has over 10,000 members. For more information, visit https://layer5.io

+ +##### About Kanvas +

+Kanvas is a web-based collaboration tool that allows you to create, review, and operate highly-detailed architecture diagrams of your cloud and cloud infrastructure using a drag-and-drop interface. Kanvas is popular with site reliability engineers, platform engineers, architects, operators, and developers as an enabler of productive, collaborative infrastructure management. Try Kanvas at https://kanvas.new.

+ + + \ No newline at end of file diff --git a/src/collections/news/2024/2024-11-12-layer5-launches-kanvas-a-collaborative-platform-for-cloud-native-infrastructure/kanvas-icon-color.svg b/src/collections/news/2024/2024-11-12-layer5-launches-kanvas-a-collaborative-platform-for-cloud-native-infrastructure/kanvas-icon-color.svg new file mode 100644 index 0000000000000..80226d79285bf --- /dev/null +++ b/src/collections/news/2024/2024-11-12-layer5-launches-kanvas-a-collaborative-platform-for-cloud-native-infrastructure/kanvas-icon-color.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/src/collections/news/2024/2024-11-12-layer5-launches-kanvas-a-collaborative-platform-for-cloud-native-infrastructure/kanvas-icon-white.svg b/src/collections/news/2024/2024-11-12-layer5-launches-kanvas-a-collaborative-platform-for-cloud-native-infrastructure/kanvas-icon-white.svg new file mode 100644 index 0000000000000..29c4be1f481b1 --- /dev/null +++ b/src/collections/news/2024/2024-11-12-layer5-launches-kanvas-a-collaborative-platform-for-cloud-native-infrastructure/kanvas-icon-white.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/collections/news/2024/2024-11-12-layer5-launches-kanvas-a-collaborative-platform-for-cloud-native-infrastructure/layer5-kanvas-designer.png b/src/collections/news/2024/2024-11-12-layer5-launches-kanvas-a-collaborative-platform-for-cloud-native-infrastructure/layer5-kanvas-designer.png new file mode 100644 index 0000000000000..5f003679a602c Binary files /dev/null and b/src/collections/news/2024/2024-11-12-layer5-launches-kanvas-a-collaborative-platform-for-cloud-native-infrastructure/layer5-kanvas-designer.png differ diff --git a/src/collections/news/2024/2024-11-12-layer5-launches-kanvas-a-collaborative-platform-for-cloud-native-infrastructure/layer5-kanvas-designer.webp b/src/collections/news/2024/2024-11-12-layer5-launches-kanvas-a-collaborative-platform-for-cloud-native-infrastructure/layer5-kanvas-designer.webp new file mode 100644 index 0000000000000..0bc9841f6f118 Binary files /dev/null and b/src/collections/news/2024/2024-11-12-layer5-launches-kanvas-a-collaborative-platform-for-cloud-native-infrastructure/layer5-kanvas-designer.webp differ diff --git a/src/collections/news/News.style.js b/src/collections/news/News.style.js index da6604f3540ab..945d178711c9c 100644 --- a/src/collections/news/News.style.js +++ b/src/collections/news/News.style.js @@ -19,6 +19,9 @@ export const NewsWrapper = styled.div` .block-display { display: block; } + .align-center { + text-align: center; + } @media screen and (max-width: 768px) { 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 a0edff246470e..95cb3448411a9 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/Learn-Components/what-await-section/index.js b/src/components/Learn-Components/what-await-section/index.js index 016c12fd22ab1..8ed297465a539 100644 --- a/src/components/Learn-Components/what-await-section/index.js +++ b/src/components/Learn-Components/what-await-section/index.js @@ -15,7 +15,7 @@ const WhatAwaitsSection = () => {

Cloud Native patterns help you get the most out of any cloud native. Each pattern can be used as a template and is customizable.

- @@ -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 45748ee0605fa..db08ab18caaf7 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/Legal/terms-of-service/index.js b/src/sections/Company/Legal/terms-of-service/index.js index c88f9b0abb534..a4e89da9958b5 100644 --- a/src/sections/Company/Legal/terms-of-service/index.js +++ b/src/sections/Company/Legal/terms-of-service/index.js @@ -15,7 +15,7 @@ const Conduct = () => {

Agreement between User and Layer5, Inc.

-

Welcome to meshery.layer5.io. The meshery.layer5.io website (the “Site”) is comprised of various web pages operated by Layer5.io, Inc (“Layer5”). meshery.layer5.io is offered to you conditioned on your acceptance without modification of the terms, conditions, and notices contained herein (the “Terms”). Your use of meshery.layer5.io constitutes your agreement to all such Terms. Please read these terms carefully, and keep a copy of them for your reference. +

Welcome to cloud.layer5.io. The cloud.layer5.io website (the “Site”) is comprised of various web pages operated by Layer5.io, Inc (“Layer5”). cloud.layer5.io is offered to you conditioned on your acceptance without modification of the terms, conditions, and notices contained herein (the “Terms”). Your use of cloud.layer5.io constitutes your agreement to all such Terms. Please read these terms carefully, and keep a copy of them for your reference.

layer5.io is a Software Product and Services Site.

@@ -29,7 +29,7 @@ const Conduct = () => {

Electronic Communications

- Visiting meshery.layer5.io or sending emails to Layer5 constitutes electronic communications. You consent to receive electronic communications and you agree that all agreements, notices, disclosures and other communications that we provide to you electronically, via email and on the Site, satisfy any legal requirement that such communications be in writing. + Visiting cloud.layer5.io or sending emails to Layer5 constitutes electronic communications. You consent to receive electronic communications and you agree that all agreements, notices, disclosures and other communications that we provide to you electronically, via email and on the Site, satisfy any legal requirement that such communications be in writing.

@@ -39,7 +39,7 @@ const Conduct = () => {

Children Under Thirteen

-Layer5 does not knowingly collect, either online or offline, personal information from persons under the age of thirteen. If you are under 18, you may use meshery.layer5.io only with permission of a parent or guardian. +Layer5 does not knowingly collect, either online or offline, personal information from persons under the age of thirteen. If you are under 18, you may use cloud.layer5.io only with permission of a parent or guardian.
@@ -48,9 +48,9 @@ Layer5 does not knowingly collect, either online or offline, personal informatio

No Unlawful or Prohibited Use/Intellectual Property

Links to Third Party Sites/Third Party Services
-meshery.layer5.io may contain links to other websites ("Linked Sites"). The Linked Sites are not under the control of Layer5 and Layer5 is not responsible for the contents of any Linked Site, including without limitation any link contained in a Linked Site, or any changes or updates to a Linked Site. Layer5 is providing these links to you only as a convenience, and the inclusion of any link does not imply endorsement by Layer5 of the site or any association with its operators. + cloud.layer5.io may contain links to other websites ("Linked Sites"). The Linked Sites are not under the control of Layer5 and Layer5 is not responsible for the contents of any Linked Site, including without limitation any link contained in a Linked Site, or any changes or updates to a Linked Site. Layer5 is providing these links to you only as a convenience, and the inclusion of any link does not imply endorsement by Layer5 of the site or any association with its operators. -

Certain services made available via meshery.layer5.io are delivered by third party sites and organizations. By using any product, service or functionality originating from the meshery.layer5.io domain, you hereby acknowledge and consent that Layer5 may share such information and data with any third party with whom Layer5 has a contractual relationship to provide the requested product, service or functionality on behalf of meshery.layer5.io users and customers.

+

Certain services made available via cloud.layer5.io are delivered by third party sites and organizations. By using any product, service or functionality originating from the cloud.layer5.io domain, you hereby acknowledge and consent that Layer5 may share such information and data with any third party with whom Layer5 has a contractual relationship to provide the requested product, service or functionality on behalf of cloud.layer5.io users and customers.

@@ -59,7 +59,7 @@ meshery.layer5.io may contain links to other websites ("Linked Sites"). The Link

No Unlawful or Prohibited Use/Intellectual Property

-

You are granted a non-exclusive, non-transferable, revocable license to access and use meshery.layer5.io strictly in accordance with these terms of use. As a condition of your use of the Site, you warrant to Layer5 that you will not use the Site for any purpose that is unlawful or prohibited by these Terms. You may not use the Site in any manner which could damage, disable, overburden, or impair the Site or interfere with any other party's use and enjoyment of the Site.

+

You are granted a non-exclusive, non-transferable, revocable license to access and use cloud.layer5.io strictly in accordance with these terms of use. As a condition of your use of the Site, you warrant to Layer5 that you will not use the Site for any purpose that is unlawful or prohibited by these Terms. You may not use the Site in any manner which could damage, disable, overburden, or impair the Site or interfere with any other party's use and enjoyment of the Site.

You may not obtain or attempt to obtain any materials or information through any means not intentionally made available or provided for through the Site.

@@ -74,7 +74,7 @@ meshery.layer5.io may contain links to other websites ("Linked Sites"). The Link

International Users

- The Service is controlled, operated and administered by Layer5 from our offices within the USA. If you access the Service from a location outside the USA, you are responsible for compliance with all local laws. You agree that you will not use the Layer5 Content accessed through meshery.layer5.io in any country or in any manner prohibited by any applicable laws, restrictions or regulations. + The Service is controlled, operated and administered by Layer5 from our offices within the USA. If you access the Service from a location outside the USA, you are responsible for compliance with all local laws. You agree that you will not use the Layer5 Content accessed through cloud.layer5.io in any country or in any manner prohibited by any applicable laws, restrictions or regulations.

@@ -128,7 +128,7 @@ meshery.layer5.io may contain links to other websites ("Linked Sites"). The Link

Changes to Terms

- Layer5 reserves the right, in its sole discretion, to change the Terms under which meshery.layer5.io is offered. The most current version of the Terms will supersede all previous versions. Layer5 encourages you to periodically review the Terms to stay informed of our updates. + Layer5 reserves the right, in its sole discretion, to change the Terms under which cloud.layer5.io is offered. The most current version of the Terms will supersede all previous versions. Layer5 encourages you to periodically review the Terms to stay informed of our updates.

diff --git a/src/sections/Company/News-grid/NewsGrid.style.js b/src/sections/Company/News-grid/NewsGrid.style.js index 6af902eb10e8f..ea1ae027904a8 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/Company/News-single/index.js b/src/sections/Company/News-single/index.js index e549695db4f09..2bb787049db81 100644 --- a/src/sections/Company/News-single/index.js +++ b/src/sections/Company/News-single/index.js @@ -8,8 +8,10 @@ import NewsSidebar from "./Sidebar"; import NewsPageWrapper from "./NewsSingle.style.js"; import RelatedPosts from "../../../components/Related-Posts"; +import { useStyledDarkMode } from "../../../theme/app/useStyledDarkMode"; const NewsSingle = ({ data }) => { + const { isDark } = useStyledDarkMode(); const { frontmatter, body, fields } = data.mdx; const newsData = useStaticQuery( graphql`query relatedNewsPosts { @@ -54,7 +56,8 @@ const NewsSingle = ({ data }) => { subtitle={frontmatter.subtitle} category={frontmatter.category} author={{ name: frontmatter.author }} - thumbnail={frontmatter.thumbnail} + thumbnail={ isDark && frontmatter.darkthumbnail && frontmatter.darkthumbnail.publicURL !== frontmatter.thumbnail.publicURL + ? frontmatter.darkthumbnail : frontmatter.thumbnail} date={frontmatter.date} />
diff --git a/src/sections/Counters/index.js b/src/sections/Counters/index.js index 996065b41063d..7f90f142f3e0d 100644 --- a/src/sections/Counters/index.js +++ b/src/sections/Counters/index.js @@ -5,7 +5,7 @@ import Counter from "../../reusecore/Counter"; import CounterSectionWrapper from "./counterSection.style"; -export const URL = "https://meshery.layer5.io/api/performance/results/total"; +export const URL = "https://cloud.layer5.io/api/performance/results/total"; const Counters = () => { const [performanceCount, setPerformanceCount] = useState(0); diff --git a/src/sections/FeatureHero/index.js b/src/sections/FeatureHero/index.js index 9272e37b96d1b..c1081b43df929 100644 --- a/src/sections/FeatureHero/index.js +++ b/src/sections/FeatureHero/index.js @@ -36,7 +36,7 @@ const FeatureHero = (props) => {
diff --git a/src/sections/GCP-Diagram/diagram.js b/src/sections/GCP-Diagram/diagram.js index e84703e10a105..35ab063a05594 100644 --- a/src/sections/GCP-Diagram/diagram.js +++ b/src/sections/GCP-Diagram/diagram.js @@ -176,7 +176,7 @@ const Gcp = () => { -

Extensive GCP Icon Library

+

Extensive GCP component library

Utilize a vast and continually expanding collection of GCP icons designed for both diagramming and orchestration scenarios. Craft globally comprehensible diagrams that are not only authentic but also aligned with the latest industry standards.

diff --git a/src/sections/GCP-Diagram/index.js b/src/sections/GCP-Diagram/index.js index fcf310317ea5d..d80ee016860b0 100644 --- a/src/sections/GCP-Diagram/index.js +++ b/src/sections/GCP-Diagram/index.js @@ -11,7 +11,7 @@ const GcpDiagramPage = () => { const { isDark } = useStyledDarkMode(); let data = { heading: "GCP Orchestration and Diagramming Software", - sub_heading: "Orchestrate and design Google Cloud Platform architecture diagrams easily with predefined templates and symbols designed for professionals.", + sub_heading: "Orchestrate and design Google Cloud Platform architecture diagrams easily with predefined templates designed for professionals.", image: isDark ? GCPDiagramDark : GCPDiagramDark }; return ( diff --git a/src/sections/General/Navigation/index.js b/src/sections/General/Navigation/index.js index 808523911eeea..dc5b61b7e0093 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", }, }, ], @@ -183,7 +183,7 @@ const Navigation = () => { } useEffect(() => { const CLOUD_USER_API = - "https://meshery.layer5.io/api/identity/users/profile"; + "https://cloud.layer5.io/api/identity/users/profile"; const fetchData = async () => { try { const token = getCookieValue("provider_token"); @@ -347,7 +347,7 @@ const Navigation = () => { $secondary className="banner-btn two" title="Get Started" - $url="https://meshery.layer5.io/login" + $url="https://cloud.layer5.io/login" $external={true} /> @@ -396,7 +396,7 @@ const Navigation = () => { rel="noreferrer" target="_blank" className="drop-item" - href={`https://meshery.layer5.io/user/${userData.id}`} + href={`https://cloud.layer5.io/user/${userData.id}`} >
@@ -429,7 +429,7 @@ const Navigation = () => { onClick={() => { removeCookie("provider_token"); // Open logout API link in a new tab - window.open("https://meshery.layer5.io/logout", "_blank"); + window.open("https://cloud.layer5.io/logout", "_blank"); // Refresh the current page window.location.reload(); @@ -453,7 +453,7 @@ const Navigation = () => { $external={true} title="Get Started" alt="Signup for Layer5 Cloud" - $url="https://meshery.layer5.io/registration" + $url="https://cloud.layer5.io/registration" /> )} {/* - diff --git a/src/sections/Home/FeaturesContainer/index.js b/src/sections/Home/FeaturesContainer/index.js index 95a2602ff268a..73c7bc8549cc9 100644 --- a/src/sections/Home/FeaturesContainer/index.js +++ b/src/sections/Home/FeaturesContainer/index.js @@ -41,7 +41,7 @@ const FeaturesContainer = () => { redirectLink: "", desc: ( - Incorporate AWS and{" "} GCP components into Meshery designs for + Incorporate AWS and{" "} GCP components into Kanvas designs for comprehensive and{" "} intuitive system mapping, documentation, and{" "} orchestration. diff --git a/src/sections/Home/Playground-home/index.js b/src/sections/Home/Playground-home/index.js index 87a6c545d36c9..c2aff158ba189 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` @@ -57,7 +64,10 @@ const ViewsSectionWrapper = styled.div` @media only screen and (max-width: 767px) { text-align: center; flex-direction: column-reverse; + height: 600px; + padding: 0 2%; } + } .hero-text { display: flex; @@ -69,7 +79,13 @@ const ViewsSectionWrapper = styled.div` max-width: 100%; justify-content: center; text-align: center; + margin-top: 4rem; + } + @media only screen and (min-width: 768px) and (max-width: 1100px) { + padding-left: 1rem; } + + } .hero-image { @@ -239,31 +255,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 +323,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 9fb6483251f40..1186dbc3d09ee 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 bdbb6d5ba9381..89fe4d68cd519 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 f507a1b1ed504..20947a3195830 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 2d9f0db74702c..4547ee7276225 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 7db6233a1e494..23de0cc64ec0f 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 d71129808f899..9c889aa516398 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 b45cef0f2cafd..29c4be1f481b1 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 c51b6d9bb9cfa..80226d79285bf 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 782289fde6526..832855b66bb6f 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/Landscape/smi.js b/src/sections/Landscape/smi.js index 4cbd74187cf06..ee097268120d7 100644 --- a/src/sections/Landscape/smi.js +++ b/src/sections/Landscape/smi.js @@ -37,7 +37,7 @@ function SMI_Compatibility() { const [smiData, setSmiData] = useState(0); useEffect(() => { - fetch("https://meshery.layer5.io/api/smi/results/public") + fetch("https://cloud.layer5.io/api/smi/results/public") .then(response => response.json()) // Group by SMI-spec version .then(results => { diff --git a/src/sections/Meshery/Features-Col/index.js b/src/sections/Meshery/Features-Col/index.js index eeec9fb67718f..850ea68f4d76e 100644 --- a/src/sections/Meshery/Features-Col/index.js +++ b/src/sections/Meshery/Features-Col/index.js @@ -60,7 +60,7 @@ function getFeatureBlock(feature, index, performanceCount) { const Features = () => { const [performanceCount, setPerformanceCount] = useState(0); - const performanceCountEndpoint = "https://meshery.layer5.io/api/performance/results/total"; + const performanceCountEndpoint = "https://cloud.layer5.io/api/performance/results/total"; useEffect(() => { fetch(performanceCountEndpoint) diff --git a/src/sections/Meshery/Meshery-integrations/Individual-Integrations/CatalogGrid.js b/src/sections/Meshery/Meshery-integrations/Individual-Integrations/CatalogGrid.js index 27a1f1ad114ad..2ddb301c232db 100644 --- a/src/sections/Meshery/Meshery-integrations/Individual-Integrations/CatalogGrid.js +++ b/src/sections/Meshery/Meshery-integrations/Individual-Integrations/CatalogGrid.js @@ -13,7 +13,7 @@ const CatalogGrid = ({ frontmatter }) => { const { isDark } = useStyledDarkMode(); useEffect(() => { - const CLOUD_FETCH_DESIGN = `https://meshery.layer5.io/api/catalog/content/pattern?technology=${ + const CLOUD_FETCH_DESIGN = `https://cloud.layer5.io/api/catalog/content/pattern?technology=${ technology[technology.length - 1] }&page=0&pagesize=${designSize}&search=&order=&metrics=true`; const fetchData = async () => { @@ -52,7 +52,7 @@ const CatalogGrid = ({ frontmatter }) => { return ( { ) : isGcpItem ? ( ) : ( diff --git a/src/sections/Meshery/Meshery-integrations/Integration.style.js b/src/sections/Meshery/Meshery-integrations/Integration.style.js index 506ffc1c8a30a..7c7ee84326d24 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/data.js b/src/sections/Pricing/data.js index 90838de228b14..731ab10e2e8ce 100644 --- a/src/sections/Pricing/data.js +++ b/src/sections/Pricing/data.js @@ -434,7 +434,7 @@ export const options = [ monthlyprice: 0, yearlyprice: 0, byline: "Open Source features, plus:", - button: ["Join for Free", "https://meshery.layer5.io"], + button: ["Join for Free", "https://cloud.layer5.io"], summary: [ { id: 0, category: "Cloud Native Design Patterns", description: "Import and export your designs using your local filesystem or remote URL." }, { id: 1, category: "Multiple Kubernetes Clusters", description: "Ongoing synchronization of Kubernetes configuration, workloads and cloud native infrastructure changes across any number of Kubernetes clusters." }, diff --git a/src/sections/Pricing/icons/kanvas-icon.svg b/src/sections/Pricing/icons/kanvas-icon.svg index c51b6d9bb9cfa..80226d79285bf 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 d00fb50c066a6..147b9ad88a0d0 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 67cb2939d6cb1..9d215be6d39a4 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/Products/index.js b/src/sections/Products/index.js index 656fa5b706bfd..40caa00cad8a1 100644 --- a/src/sections/Products/index.js +++ b/src/sections/Products/index.js @@ -24,7 +24,7 @@ const options = [ monthlyprice: 0, yearlyprice: 0, byline: "Open Source features, plus:", - button: ["Join for Free", "https://meshery.layer5.io"], + button: ["Join for Free", "https://cloud.layer5.io"], summary: [ { id: 0, @@ -212,7 +212,7 @@ const index = () => { flexibility, elevating operations to new efficiencies.{" "}

-
diff --git a/src/sections/Projects/Sistent/components/box/code.js b/src/sections/Projects/Sistent/components/box/code.js new file mode 100644 index 0000000000000..e2ef20c0ed790 --- /dev/null +++ b/src/sections/Projects/Sistent/components/box/code.js @@ -0,0 +1,208 @@ +import React from "react"; +import { navigate } from "gatsby"; +import { useLocation } from "@reach/router"; + +import { SistentThemeProvider, Box } from "@layer5/sistent"; +import { CodeBlock } from "../button/code-block"; +import { SistentLayout } from "../../sistent-layout"; + +import TabButton from "../../../../../reusecore/Button"; +import { useStyledDarkMode } from "../../../../../theme/app/useStyledDarkMode"; + +const codes = [ + ` +

+ This is a Box component with custom background and padding. +

+
`, + ` +

+ This Box is responsive, changing style based on screen size. +

+
`, + ` +

+ This Box is responsive, changing style based on screen size. +

+
`, + ` +

Hover over this Box to see the interactive effect.

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

Box

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

+ The Box component is a flexible and foundational + container in Sistent, designed to structure and style content. It + provides quick access to the theme and CSS utilities, allowing for + easy customization and responsive design. Using the sx prop, + developers can apply CSS styles directly with theme-aware + properties, making Box ideal for layouts, spacing, and other UI + adjustments. It can render as any HTML element using the component + prop, offering high versatility in both structure and styling. +

+
+

Basic Box Example

+
+

+ A simple Box component can be used to contain and structure other + elements. Here, the Box serves as a basic container without any + styling applied. +

+
+
+ + +

This is a basic Box component.

+
+
+
+ +
+ +

Styled Box Example

+
+

+ You can add custom styles to a Box component by applying{" "} + sx + properties. In this example, the Box has a background color, + padding, and a defined height. +

+
+
+ + +

+ This is a Box component with custom background and padding. +

+
+
+
+ +
+ +

Responsive Box Example

+
+

+ The Box component also supports responsive styling using the{" "} + sx prop. In this example, the Box adjusts its padding + and background color based on screen size. +

+
+
+ + +

+ This Box is responsive, changing style based on screen size. +

+
+
+
+ +
+ +

Interactive Box Example

+
+

+ Here’s an example where the Box component includes hover effects to + create a more interactive experience. This is useful for buttons, + cards, and other clickable elements. +

+
+
+ + +

+ Hover over this Box to see the interactive effect. +

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

Box

+
+

+ The Box component is a flexible, theme-aware container that adapts + seamlessly across various layouts. It provides a convenient way to + apply styles, positioning, and responsive adjustments to content, + making it ideal for any layout needs. +

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

+ The Box component is a highly versatile tool that can be used for + layout management, spacing, styling, and more. With full support for + responsive design, Box is an essential part of any well-structured + application, allowing developers to customize and style elements + while keeping the theme consistent. +

+ + +

Function

+
+ +

The Box component serves several functions:

+ +

Responsive Styling

+

+ The sx prop makes it easy to apply responsive styles + directly within the component, allowing for adaptive design that + looks great across all screen sizes. +

+ + + +

+ This is a responsive Box component. +

+
+
+
+ +

Flexible Layout Control

+

+ Box can serve as a container for organizing other elements, whether + it's aligning text, images, or interactive components. The + flexibility of the Box component allows it to adapt to a wide range + of layout needs, from card-style containers to more complex nested + structures. +

+ +

Customizable Appearance

+

+ The Box component’s customization options allow you to adjust + colors, borders, shadows, and more through the sx prop, + ensuring that components blend well with your app's overall theme. +

+ + + +

+ Customized Box with shadow and color. +

+
+
+
+ + +

Use Cases

+
+ +

Nested Layouts

+

+ Use Box to create nested layouts by embedding one Box within + another, each with distinct styling. This setup enables the creation + of structured and multi-layered designs. +

+ + + + +

Nested Box layout example.

+
+
+
+
+ +

Utility for Spacing and Margin

+

+ Leveraging Box for margin and padding adjustments offers + fine-grained control over spacing between components, making it + useful in complex layouts where alignment and spacing are crucial. +

+ +

Event Handling and State Management

+

+ Box can also be used as an interactive element, handling events and + managing state. This makes it ideal for use cases that require + dynamic behavior or user interaction. +

+ +

Responsive Design

+

+ The Box component seamlessly integrates with Sistent’s responsive + design principles, providing a cohesive experience across various + screen sizes by leveraging breakpoints in the sx prop. +

+
+
+
+ ); +}; diff --git a/src/sections/Projects/Sistent/components/box/index.js b/src/sections/Projects/Sistent/components/box/index.js new file mode 100644 index 0000000000000..bb02738c61228 --- /dev/null +++ b/src/sections/Projects/Sistent/components/box/index.js @@ -0,0 +1,133 @@ +import React from "react"; +import { navigate } from "gatsby"; +import { useLocation } from "@reach/router"; + +import { SistentThemeProvider, 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 SistentBox = () => { + const location = useLocation(); + const { isDark } = useStyledDarkMode(); + + return ( + +
+ +

Box

+
+

+ The Box component is a versatile, theme-aware container + in Sistent, ideal for styling and layout customization. It supports + the sx prop for easy, responsive styling and can render as any HTML + element. +

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

+ The Box component is a flexible and foundational + container in Sistent, designed to structure and style content. It + provides quick access to the theme and CSS utilities, allowing for + easy customization and responsive design. Using the sx prop, + developers can apply CSS styles directly with theme-aware + properties, making Box ideal for layouts, spacing, and other UI + adjustments. It can render as any HTML element using the component + prop, offering high versatility in both structure and styling. +

+ +

Usage

+
+

+ The Box component differs from other containers available in Sistent + in that its usage is intended to be multipurpose and open-ended, + just like a `div`. Components like Container, Stack and + Paper, by contrast, feature usage-specific props that make them + ideal for certain use cases: Container for main layout orientation, + Stack for one-dimensional layouts, and Paper for elevated surfaces. +

+

Box component

+

+ The Box component renders as a `div` by default, but + you can swap in any other valid HTML tag or React component using + the component prop. The demo below replaces the `div` + with a `section` element: +

+ + + + This Box renders as an HTML section element. + + + + + +

Customization

+
+

+ The Box component can be styled flexibly with Sistent + sxprop and custom themes. The sx prop allows quick + application of CSS styles that are theme-aware, enabling responsive + and consistent design. +

+ +

Using the sx Prop

+

+ The sx prop supports a wide range of style properties, including + colors, spacing, and responsive adjustments. It directly accesses + theme values, allowing you to apply theme-based styles to a Box with + minimal code. +

+ + + + + +
+
+
+ ); +}; + +export default SistentBox; 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 0000000000000..4b414a557d93f --- /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 0000000000000..bd9ae5122313d --- /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 0000000000000..3748ff273d087 --- /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 0000000000000..dc55461dd067d --- /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 0000000000000..6578572a29f9a --- /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 0000000000000..03c53dfa0ded1 --- /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 ca05b2d297927..2c5e401325b81 100644 --- a/src/sections/Projects/Sistent/components/index.js +++ b/src/sections/Projects/Sistent/components/index.js @@ -58,7 +58,27 @@ const componentsData = [ "Links are essential and integral components of an interface. They are primarily used for navigation, guiding users to the next step in a journey or redirecting them to relevant sections or pages.", url: "/projects/sistent/components/link", }, - + { + 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: "Box", + description: + "Box is used as a flexible container for layout and styling, allowing quick customization and responsive design adjustments.", + url: "/projects/sistent/components/box", + }, ]; const SistentComponents = () => { @@ -121,7 +141,6 @@ const SistentComponents = () => {
))} -
diff --git a/src/sections/Projects/Sistent/sistent.style.js b/src/sections/Projects/Sistent/sistent.style.js index 7deb603dcd3c3..57ef8e728ca46 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 c09e589735535..dbff856e861e4 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/sections/gitops/PerformanceManagementPage.js b/src/sections/gitops/PerformanceManagementPage.js index a4d03c38cbca1..37b2a336dcda8 100644 --- a/src/sections/gitops/PerformanceManagementPage.js +++ b/src/sections/gitops/PerformanceManagementPage.js @@ -25,7 +25,7 @@ const PerformanceManagementPage = () => { Test your Kubernetes cluster and service mesh implementation for conformance with the SMI specification -
diff --git a/src/templates/news-single.js b/src/templates/news-single.js index ed520e6efb6a2..2a18df86558f8 100644 --- a/src/templates/news-single.js +++ b/src/templates/news-single.js @@ -24,6 +24,13 @@ export const query = graphql` extension publicURL } + darkthumbnail { + childImageSharp { + gatsbyImageData(width: 500, layout: CONSTRAINED) + } + extension + publicURL + } } fields { slug diff --git a/src/theme/app/themeStyles.js b/src/theme/app/themeStyles.js index f4f8e83b9af99..aff46ff5d86f9 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 ed73c07f6d03b..27804c7d6aa97 100644 Binary files a/static/brand/kanvas-brand-kit.zip and b/static/brand/kanvas-brand-kit.zip differ diff --git a/static/mail/2023/feature-friday.html b/static/mail/2023/feature-friday.html index 13feb8255f2c1..f2c11b30836b9 100644 --- a/static/mail/2023/feature-friday.html +++ b/static/mail/2023/feature-friday.html @@ -493,7 +493,7 @@

  • Import your WASM Envoy filters into Meshery using the UI or CLI.
  • Publish and clone your WASM Envoy filters in the Meshery Catalog
  • -
  • Download WASM binaries from Layer5 Cloud.
  • +
  • Download WASM binaries from Layer5 Cloud.
  • Design and deploy Istio and Envoy dataplanes in Kanvas.
  • Contribute to any of the 7 open source wasm-filters.