From 2183fb133295bf7601c7a1df781b452d3b5b4a16 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 1 Sep 2024 22:14:41 +0000 Subject: [PATCH 01/30] Bump react-countdown from 2.3.5 to 2.3.6 Bumps [react-countdown](https://github.com/ndresx/react-countdown) from 2.3.5 to 2.3.6. - [Release notes](https://github.com/ndresx/react-countdown/releases) - [Commits](https://github.com/ndresx/react-countdown/compare/v2.3.5...v2.3.6) --- updated-dependencies: - dependency-name: react-countdown dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 040e331e8ccd..df50ca69e656 100644 --- a/package-lock.json +++ b/package-lock.json @@ -66,7 +66,7 @@ "react": "^17.0.2", "react-accessible-accordion": "^5.0.0", "react-copy-to-clipboard": "^5.1.0", - "react-countdown": "^2.3.5", + "react-countdown": "^2.3.6", "react-countup": "^6.1.1", "react-debounce-input": "^3.3.0", "react-dom": "^17.0.2", @@ -21374,9 +21374,9 @@ } }, "node_modules/react-countdown": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/react-countdown/-/react-countdown-2.3.5.tgz", - "integrity": "sha512-K26ENYEesMfPxhRRtm1r+Pf70SErrvW3g4CArLi/x6MPFjgfDFYePT4UghEj8p2nI0cqVV7/JjDgjyr//U60Og==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/react-countdown/-/react-countdown-2.3.6.tgz", + "integrity": "sha512-ZfX6S08Hb6x6W6eCn1hMDvxPICI/T30fd+gaeVTCR/2cGZ2WJ3f26e4ImNIMX1fHkopJrUdnRpWXP13/D39+gg==", "dependencies": { "prop-types": "^15.7.2" }, diff --git a/package.json b/package.json index a33f3fe6d733..3e31a42bad0a 100644 --- a/package.json +++ b/package.json @@ -83,7 +83,7 @@ "react": "^17.0.2", "react-accessible-accordion": "^5.0.0", "react-copy-to-clipboard": "^5.1.0", - "react-countdown": "^2.3.5", + "react-countdown": "^2.3.6", "react-countup": "^6.1.1", "react-debounce-input": "^3.3.0", "react-dom": "^17.0.2", From 570b092060deb6c2e2c8088a8c05687e0b6398d0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 1 Sep 2024 22:28:01 +0000 Subject: [PATCH 02/30] Bump @babel/cli from 7.22.5 to 7.25.6 Bumps [@babel/cli](https://github.com/babel/babel/tree/HEAD/packages/babel-cli) from 7.22.5 to 7.25.6. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.25.6/packages/babel-cli) --- updated-dependencies: - dependency-name: "@babel/cli" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 61 ++++++++++++++++++++++++++--------------------- package.json | 2 +- 2 files changed, 35 insertions(+), 28 deletions(-) diff --git a/package-lock.json b/package-lock.json index 040e331e8ccd..4f363192268e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -94,7 +94,7 @@ "url": "^0.11.3" }, "devDependencies": { - "@babel/cli": "^7.18.10", + "@babel/cli": "^7.25.6", "@babel/core": "^7.22.9", "@babel/eslint-parser": "^7.22.15", "babel-plugin-module-resolver": "^5.0.0", @@ -217,14 +217,14 @@ } }, "node_modules/@babel/cli": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.22.5.tgz", - "integrity": "sha512-N5d7MjzwsQ2wppwjhrsicVDhJSqF9labEP/swYiHhio4Ca2XjEehpgPmerjnLQl7BPE59BLud0PTWGYwqFl/cQ==", + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.25.6.tgz", + "integrity": "sha512-Z+Doemr4VtvSD2SNHTrkiFZ1LX+JI6tyRXAAOb4N9khIuPyoEPmTPJarPm8ljJV1D6bnMQjyHMWTT9NeKbQuXA==", "dev": true, "dependencies": { - "@jridgewell/trace-mapping": "^0.3.17", - "commander": "^4.0.1", - "convert-source-map": "^1.1.0", + "@jridgewell/trace-mapping": "^0.3.25", + "commander": "^6.2.0", + "convert-source-map": "^2.0.0", "fs-readdir-recursive": "^1.1.0", "glob": "^7.2.0", "make-dir": "^2.1.0", @@ -239,12 +239,27 @@ }, "optionalDependencies": { "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.3", - "chokidar": "^3.4.0" + "chokidar": "^3.6.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/cli/node_modules/commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@babel/cli/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, "node_modules/@babel/code-frame": { "version": "7.22.5", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", @@ -3573,19 +3588,14 @@ "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", - "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" - }, "node_modules/@layer5/meshery-design-embed": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/@layer5/meshery-design-embed/-/meshery-design-embed-0.2.0.tgz", @@ -8447,15 +8457,9 @@ } }, "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -8468,6 +8472,9 @@ "engines": { "node": ">= 8.10.0" }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, "optionalDependencies": { "fsevents": "~2.3.2" } diff --git a/package.json b/package.json index a33f3fe6d733..400d35961d67 100644 --- a/package.json +++ b/package.json @@ -111,7 +111,7 @@ "url": "^0.11.3" }, "devDependencies": { - "@babel/cli": "^7.18.10", + "@babel/cli": "^7.25.6", "@babel/core": "^7.22.9", "@babel/eslint-parser": "^7.22.15", "babel-plugin-module-resolver": "^5.0.0", From 15411e79c928af3f8ce59aeb55f902ecd415e21d Mon Sep 17 00:00:00 2001 From: yash37158 Date: Wed, 4 Sep 2024 01:30:13 +0530 Subject: [PATCH 03/30] fix: resolve layout inconsistency in CTA_Bottom for mobile screens Signed-off-by: yash37158 --- .../Call-To-Actions/CTA_Bottom/index.js | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/components/Call-To-Actions/CTA_Bottom/index.js b/src/components/Call-To-Actions/CTA_Bottom/index.js index d4e250e19ace..a3b3e29d4470 100644 --- a/src/components/Call-To-Actions/CTA_Bottom/index.js +++ b/src/components/Call-To-Actions/CTA_Bottom/index.js @@ -17,6 +17,11 @@ const CTA_BottomWrapper = styled.div` border-radius: 0.5rem; overflow: hidden; + @media (max-width: 507px) { + flex-direction: column; + height: auto; + } + .cta-content { padding: 0.5rem 1.5rem; text-align: center; @@ -30,6 +35,11 @@ const CTA_BottomWrapper = styled.div` p { margin-top: 0.5rem; } + + @media (max-width: 507px) { + max-width: 100%; + margin-right: 0; + } } img { @@ -39,10 +49,20 @@ const CTA_BottomWrapper = styled.div` padding: 1rem; max-height: 100%; border-radius: 0 0.5rem 0.5rem 0; + + @media (max-width: 507px) { + max-width: 100%; + padding: 0; + border-radius: 0; + } } button { width: fit-content; + + @media (max-width: 507px) { + margin-top: 1rem; + } } `; @@ -53,6 +73,7 @@ const defaultURL = "https://slack.layer5.io"; const CTA_Bottom = ({ alt, button_text, category, content, external_link, image, url, heading, ...props }) => { return ( + {category
{ category ? ( <> @@ -67,7 +88,7 @@ const CTA_Bottom = ({ alt, button_text, category, content, external_link, image, )}
- {category +
); }; From 6aba24f3743aa67417ded947eceebf5e8b413fc8 Mon Sep 17 00:00:00 2001 From: Ashparsh Pandey <150526286+Ashparshp@users.noreply.github.com> Date: Mon, 9 Sep 2024 15:22:54 +0530 Subject: [PATCH 04/30] Add files via upload Signed-off-by: Ashparsh Pandey <150526286+Ashparshp@users.noreply.github.com> --- .../members/aviral-asthana/aviral-asthana.webp | Bin 0 -> 131954 bytes .../members/aviral-asthana/index.mdx | 12 ++++++++++++ 2 files changed, 12 insertions(+) create mode 100644 src/collections/members/aviral-asthana/aviral-asthana.webp create mode 100644 src/collections/members/aviral-asthana/index.mdx diff --git a/src/collections/members/aviral-asthana/aviral-asthana.webp b/src/collections/members/aviral-asthana/aviral-asthana.webp new file mode 100644 index 0000000000000000000000000000000000000000..a25815ae6cad86ddbff9e0ba77f5306219f963ad GIT binary patch literal 131954 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

`_C0mc@q9Bw?wK$b*p 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 m-My8Kc7GEx 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 literal 0 HcmV?d00001 diff --git a/src/collections/members/aviral-asthana/index.mdx b/src/collections/members/aviral-asthana/index.mdx new file mode 100644 index 000000000000..4d05f99b8145 --- /dev/null +++ b/src/collections/members/aviral-asthana/index.mdx @@ -0,0 +1,12 @@ +--- +name: Aviral Asthana +position: Contributor +image_path: ./aviral-asthana.webp +github: Aviral0702 +linkedin: aviral-asthana-02b70824b +layer5: 3f770688-e487-45c2-943b-c94b950d3d69 +location: Ghaziabad, India +bio: Aviral Asthana is a Computer Science student with a passion for full-stack web development. Proficient in the MERN stack, Aviral has hands-on experience in building robust applications and is keenly interested in Golang, Docker, and Kubernetes. He is dedicated to continuous improvement through contributions to open-source projects and actively engaging with the developer community. +status: Active +published: true +--- \ No newline at end of file From 281bc634e6b50d5c1a6686528a4895c9e8a763ea Mon Sep 17 00:00:00 2001 From: Lee Calcote Date: Mon, 9 Sep 2024 21:53:12 -0500 Subject: [PATCH 05/30] Refactor redirect paths for Kanvas and Meshmap Signed-off-by: Lee Calcote --- gatsby-node.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/gatsby-node.js b/gatsby-node.js index 76e47087e289..97354d3bb490 100644 --- a/gatsby-node.js +++ b/gatsby-node.js @@ -284,6 +284,18 @@ exports.createPages = async ({ actions, graphql, reporter }) => { redirectInBrowser: true, isPermanent: true, }); + createRedirect({ + fromPath: "/kanvas", + toPath: "/cloud-native-management/meshmap", + redirectInBrowser: true, + isPermanent: true, + }); + createRedirect({ + fromPath: "/cloud-native-management/meshmap", + toPath: "/cloud-native-management/kanvas", + redirectInBrowser: true, + isPermanent: true, + }); createRedirect({ fromPath: "/meshmap", toPath: "/cloud-native-management/meshmap", From 4f20383bdf474fd80bb11550c3450bc165a4419e Mon Sep 17 00:00:00 2001 From: Vivek Vishal Date: Tue, 10 Sep 2024 08:52:48 +0530 Subject: [PATCH 06/30] update redirect Signed-off-by: Vivek Vishal --- gatsby-node.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gatsby-node.js b/gatsby-node.js index 97354d3bb490..6b8e231f4787 100644 --- a/gatsby-node.js +++ b/gatsby-node.js @@ -291,8 +291,8 @@ exports.createPages = async ({ actions, graphql, reporter }) => { isPermanent: true, }); createRedirect({ - fromPath: "/cloud-native-management/meshmap", - toPath: "/cloud-native-management/kanvas", + fromPath: "/cloud-native-management/kanvas", + toPath: "/cloud-native-management/meshmap", redirectInBrowser: true, isPermanent: true, }); From d307cf065a9b6fef23e34ac51746cb45b8dcd5c0 Mon Sep 17 00:00:00 2001 From: Lee Calcote Date: Mon, 9 Sep 2024 23:07:00 -0500 Subject: [PATCH 07/30] Refactor badges to use "kanvas" instead of "meshmap" Signed-off-by: Lee Calcote --- .desktop-lighthouserc.js | 2 +- .github/labeler.yml | 4 +- .github/workflows/meshmap.yml | 10 ++-- .lighthouserc.js | 2 +- CONTRIBUTING.md | 6 +-- README.md | 8 ++-- src/assets/data/faq/index.js | 44 +++++++++--------- src/assets/discuss/html/footer.html | 2 +- .../{meshmap.webp => kanvas.webp} | Bin .../kanvas-snapshot.svg} | 0 .../KanvasCatalog.webp} | Bin .../KanvasDesigner.webp} | Bin .../KanvasVisualizer.webp} | Bin .../{meshmap => kanvas}/MesheryCloud.webp | Bin .../catalog-card-images/circuit-breaker.svg | 0 .../catalog-card-images/correlate-event.svg | 0 .../catalog-card-images/denial.svg | 0 .../catalog-card-images/http.svg | 0 .../catalog-card-images/jwt.svg | 0 .../catalog-card-images/multicluster.svg | 0 .../catalog-card-images/mutual-tls.svg | 0 .../catalog-card-images/node-agent.svg | 0 .../catalog-card-images/only-wagent.svg | 0 .../catalog-card-images/pre-provision.svg | 0 .../catalog-card-images/retries.svg | 0 .../catalog-card-images/retry-deadline.svg | 0 .../catalog-card-images/single-tenant.svg | 0 .../catalog-card-images/singleton.svg | 0 .../catalog-card-images/traces.svg | 0 .../{meshmap => kanvas}/docker_white.svg | 0 .../images/{meshmap => kanvas}/ebpf-dark.webp | Bin .../images/{meshmap => kanvas}/ebpf.svg | 0 .../icon-only/kanvas-icon-white.svg} | 0 .../icon-only/kanvas-icon-white.webp} | Bin .../icon-only/kanvas-icon.svg} | 0 .../icon-only/kanvas-icon.webp} | Bin .../kanvas-collaborate.webp} | Bin .../kanvas-color-horizontal.svg} | 0 .../kanvas-color-icon.svg} | 0 .../kanvas-color-icon.webp} | Bin .../kanvas-color-stacked.svg} | 0 .../kanvas-color-stacked.webp} | Bin .../kanvas-color-text.svg} | 0 .../kanvas-color-text.webp} | Bin .../kanvas-light-stacked.svg} | 0 .../{meshmap => kanvas}/kubernetes_white.svg | 0 src/assets/images/{meshmap => kanvas}/opa.svg | 0 .../integrations/wordpress-operator/index.mdx | 4 +- .../_member-profile-template/index.mdx | 2 +- src/collections/members/aabid-sofi/index.mdx | 2 +- .../members/abhishek-kumar/index.mdx | 2 +- .../members/akshay-sharma/index.mdx | 2 +- .../members/gaurav-chadha/index.mdx | 2 +- src/collections/members/harkirat/index.mdx | 2 +- .../members/pranav-singh/index.mdx | 2 +- .../members/senali-dilumika/index.mdx | 2 +- src/collections/members/shivam-sood/index.mdx | 2 +- .../members/usman-siddique/index.mdx | 2 +- .../members/uzair-shaikh/index.mdx | 2 +- src/collections/members/yash-sharma/index.mdx | 2 +- .../getting-started-with-kubernetes/index.mdx | 12 ++--- .../globe.svg | 0 .../hpe.style.js | 0 .../index.mdx | 6 +-- .../layers.svg | 0 .../meshery-and-hpe.svg | 0 .../meshery-integrations.svg | 0 .../network.svg | 0 .../users.svg | 0 .../yogi.webp | Bin .../use-cases/commenting/index.mdx | 4 +- .../use-cases/whiteboarding/index.mdx | 2 +- .../CTA_Bottom/cta_bottom_categories.js | 14 +++--- src/components/Case-study-banner/index.js | 4 +- .../generate-aws-architecture-diagram.js | 2 +- .../generate-gcp-architecture-diagram.js | 2 +- ...enerate-kubernetes-architecture-diagram.js | 2 +- .../{meshmap => kanvas}/collaborate/index.js | 8 ++-- .../collaborate/peer-reviews/index.js | 0 .../cloud-native-management/kanvas/design.js | 17 +++++++ .../cloud-native-management/kanvas/index.js | 18 +++++++ .../kanvas/visualize.js | 21 +++++++++ .../meshery/operating-cloud-native-infra.js | 8 ++-- .../cloud-native-management/meshmap/design.js | 17 ------- .../cloud-native-management/meshmap/index.js | 18 ------- .../meshmap/visualize.js | 21 --------- src/pages/community/members.js | 6 +-- src/pages/solutions/gitops/snapshot.js | 2 +- src/sections/AWS-Diagram/diagram.js | 8 ++-- src/sections/AWS-Diagram/header.js | 4 +- src/sections/Blog/Blog-single/author.js | 2 +- src/sections/Blog/Blog-single/index.js | 2 +- src/sections/Cloud-Native-Catalog/catalog.js | 6 +-- src/sections/Cloud-Native-Catalog/patterns.js | 30 ++++++------ .../CloudNativeDeployments/features.js | 8 ++-- src/sections/Comments/index.js | 2 +- .../Community/Calendar/meetLinksData.js | 2 +- src/sections/Community/Event-single/index.js | 2 +- .../Community/Handbook/recognition.js | 12 ++--- src/sections/Community/Handbook/repo-data.js | 4 +- src/sections/Community/Handbook/repository.js | 8 ++-- .../Handbook/security-vulnerabilities.js | 8 ++-- .../Community/Handbook/writing-program.js | 2 +- src/sections/Community/Member-single/index.js | 10 ++-- .../Company/Brand/Brand-components/catalog.js | 2 +- .../{meshmap.js => kanvas.js} | 32 ++++++------- src/sections/Company/Brand/index.js | 16 +++---- src/sections/Company/News-single/Sidebar.js | 6 +-- .../Developer-Infrastructure/index.js | 2 +- .../docker-extension-meshery.js | 4 +- src/sections/Docker-Meshery/index.js | 4 +- src/sections/GCP-Diagram/diagram.js | 12 ++--- src/sections/GCP-Diagram/header.js | 4 +- src/sections/General/Footer/index.js | 6 +-- src/sections/General/Navigation/index.js | 12 ++--- .../utility/{MeshMapIcon.js => KanvasIcon.js} | 4 +- .../Navigation/utility/ScrollspyMenu.js | 22 ++++----- .../General/Navigation/utility/menu-items.js | 10 ++-- src/sections/Home/Banner-4/banner4.style.js | 4 +- src/sections/Home/Banner-4/index.js | 12 ++--- .../Home/CloudNativeManagement/index.js | 4 +- src/sections/Home/FeaturesContainer/index.js | 2 +- src/sections/Home/Layer5-statement/index.js | 4 +- src/sections/Home/Playground-home/index.js | 4 +- src/sections/Home/Projects-home/index.js | 8 ++-- .../ServiceMesh.style.js | 2 +- .../Home/service-mesh-management/index.js | 4 +- .../Collaborate/CollaboratorFeatures.js | 4 +- .../Collaborate/CollaboratorFeatures.style.js | 0 .../CollaboratorFeatures_diagram.js | 0 .../Collaborate/images/avatar1.webp | Bin .../Collaborate/images/avatar2.webp | Bin .../Collaborate/images/avatar3.webp | Bin .../Collaborate/images/collab1-colorMode.svg | 0 .../Collaborate/images/collab1-dark.svg | 0 .../Collaborate/images/collab1.svg | 0 .../Collaborate/images/collab2-colorMode.svg | 0 .../Collaborate/images/collab2-dark.svg | 0 .../Collaborate/images/collab2.svg | 0 .../Collaborate/images/collab3-colorMode.svg | 0 .../Collaborate/images/collab3-dark.svg | 0 .../Collaborate/images/collab3.svg | 0 .../Collaborate/images/collab4-colorMode.svg | 0 .../Collaborate/images/collab4-dark.svg | 0 .../Collaborate/images/collab4.svg | 0 .../Design/DesignerFeatures.js | 4 +- .../Design/DesignerFeatures.style.js | 0 .../Design/DesignerFeatures_diagram.js | 0 .../images/role-binding-1-colorMode.svg | 0 .../Design/images/role-binding-1-dark.svg | 0 .../Design/images/role-binding-1.svg | 0 .../images/role-binding-2-colorMode.svg | 0 .../Design/images/role-binding-2-dark.svg | 0 .../Design/images/role-binding-2.svg | 0 .../images/role-binding-3-colorMode.svg | 0 .../Design/images/role-binding-3-dark.svg | 0 .../Design/images/role-binding-3.svg | 0 .../images/role-binding-4-colorMode.svg | 0 .../Design/images/role-binding-4-dark.svg | 0 .../Design/images/role-binding-4.svg | 0 .../Visualize/VisualizerFeatures.js | 4 +- .../Visualize/VisualizerFeatures.style.js | 0 .../Visualize/VisualizerFeatures_diagram.js | 0 .../images/visualize-1-colorMode.svg | 0 .../Visualize/images/visualize-1-dark.svg | 0 .../Visualize/images/visualize-1.svg | 0 .../images/visualize-2-colorMode.svg | 0 .../Visualize/images/visualize-2-dark.svg | 0 .../Visualize/images/visualize-2.svg | 0 .../FeaturesSection/useGsapTimeline.js | 0 .../collaboration-feature-team.js | 0 .../collaboration-feature-terms.js | 0 .../collaboration-feature-work.js | 0 .../images/banner-transitions/canvas.svg | 0 .../images/banner-transitions/empty-dark.svg | 0 .../images/banner-transitions/empty-light.svg | 0 .../ingress-gateway-partial-colorMode.svg | 0 .../ingress-gateway-partial-dark.svg | 0 .../ingress-gateway-partial.svg | 0 .../kubernetes-navbar-light.svg | 0 .../banner-transitions/kubernetes-navbar.svg | 0 .../kubernetes-partial-colorMode.svg | 0 .../kubernetes-partial-dark.svg | 0 .../banner-transitions/kubernetes-partial.svg | 0 .../pod-partial-colorMode.svg | 0 .../banner-transitions/pod-partial-dark.svg | 0 .../images/banner-transitions/pod-partial.svg | 0 .../prometheus-partial-colorMode.svg | 0 .../prometheus-partial-dark.svg | 0 .../banner-transitions/prometheus-partial.svg | 0 .../service-interface-partial-colorMode.svg | 0 .../service-interface-partial-dark.svg | 0 .../service-interface-partial.svg | 0 .../banner-transitions/supporting-arrows.svg | 0 .../images/world-transitions/world-1.svg | 0 .../images/world-transitions/world-2.svg | 0 .../images/world-transitions/world-3.svg | 0 .../images/world-transitions/world-4.svg | 0 .../images/world-transitions/world-5.svg | 0 .../images/world-transitions/world-6.svg | 0 .../images/world-transitions/world-7.svg | 0 .../images/world-transitions/world-image.svg | 0 .../Kanvas-collaborate}/index.js | 14 +++--- .../Kanvas-collaborate}/index.test.js | 4 +- .../kanvas-collaborate-banner.js} | 4 +- .../kanvas-collaborate.style.js} | 4 +- .../Kanvas-design-features}/index.js | 26 +++++------ .../KanvasMobileSwiper.js} | 6 +-- .../images/BlankSwiper.webp | Bin .../mobile-swiper.style.js | 0 .../Kanvas-design}/cytoscape-demo.js | 0 .../Kanvas-design}/cytoscape-demo.style.js | 0 .../Kanvas-design}/cytoscapeCanvas.js | 0 .../images/background-dots-pattern.svg | 0 .../images/banner-image-colorMode.svg | 0 .../images/banner-image-dark.svg | 0 .../images/banner-image-light.svg | 0 .../images/connect-components.gif | Bin .../Kanvas-design}/images/cytoNodes.js | 0 .../images/cytoscape-colorMode.svg | 0 .../Kanvas-design}/images/cytoscape-dark.svg | 0 .../Kanvas-design}/images/cytoscape-light.svg | 0 .../images/drag-drop-components.gif | Bin .../images/integration-image-colorMode.svg | 0 .../images/kanvas-bottom-image-dark.svg} | 0 .../images/kanvas-bottom-image-light.svg} | 0 .../images/kanvas-locator-dark.svg} | 0 .../images/kanvas-locator-light.svg} | 0 .../Kanvas-design}/images/merge-design.gif | Bin .../images/plus-sign-colorMode.svg | 0 .../Kanvas-design}/images/share-design.gif | Bin .../Kanvas-design}/images/underline.svg | 0 src/sections/Kanvas/Kanvas-design/index.js | 28 +++++++++++ .../Kanvas-design}/index.test.js | 4 +- .../Kanvas-design/kanvas-design-banner.js} | 6 +-- .../kanvas-design-features-carousel.js} | 6 +-- .../Kanvas-design/kanvas-design-hero.js} | 18 +++---- .../kanvas-design-integrations.js} | 4 +- .../Kanvas-design/kanvas-design.style.js} | 4 +- .../images/application-import-arrows.svg | 0 .../images/application-import-boxes.svg | 0 .../images/interactive-terminal-code.svg | 0 .../images/interactive-terminal.svg | 0 .../images/log-stream-search.svg | 0 .../Kanvas-visualize}/images/log-stream.svg | 0 .../images/oval-blur-shape.svg | 0 .../images/performance-metrics-bars.svg | 0 .../images/performance-metrics-graph.svg | 0 .../images/service-performance-gear-dark.svg | 0 .../images/service-performance-gear-light.svg | 0 .../service-performance-meter-colorMode.svg | 0 .../images/service-performance-meter-dark.svg | 0 .../service-performance-meter-light.svg | 0 .../images/timeline-dvr-clock.svg | 0 .../Kanvas-visualize}/images/timeline-dvr.svg | 0 .../images/visualizer-views-colorMode.svg | 0 .../images/visualizer-views-dark.svg | 0 .../images/visualizer-views-light.svg | 0 .../images/visualizer-views-lines.svg | 0 src/sections/Kanvas/Kanvas-visualize/index.js | 29 ++++++++++++ .../Kanvas-visualize}/index.test.js | 4 +- .../kanvas-visualize-banner.js} | 6 +-- .../kanvas-visualize-features.js} | 4 +- .../kanvas-visualize-views.js} | 4 +- .../kanvas-visualize.style.js} | 4 +- .../diagram/diagram.style.js | 0 .../features/features.style.js | 0 .../{Meshmap => Kanvas}/features/index.js | 0 .../images/MesheryCloud.svg | 0 .../{Meshmap => Kanvas}/images/circles.svg | 0 .../images/collaborate1.svg | 0 .../images/collaborate2.svg | 0 .../images/datacenter-crash.svg | 0 .../{Meshmap => Kanvas}/images/grid.svg | 0 .../images/link-arrow-dark.svg | 0 .../{Meshmap => Kanvas}/images/link-arrow.svg | 0 .../images/meshery-cloud.svg | 0 .../images/meshmap-draft-logos.webp | Bin src/sections/{Meshmap => Kanvas}/index.js | 42 ++++++++--------- .../{Meshmap => Kanvas}/index.test.js | 4 +- .../kanvas-catalog.js} | 36 +++++++------- .../kanvas-icon.svg} | 0 .../kanvas-modes.js} | 22 ++++----- .../kanvas-newicon.svg} | 0 .../kanvas-platform.js} | 18 +++---- .../kanvas.style.js} | 4 +- .../kanvas_banner.js} | 22 ++++----- .../{Meshmap => Kanvas}/meshery-action.js | 2 +- .../{Meshmap => Kanvas}/signup-form.js | 20 ++++---- .../{Meshmap => Kanvas}/use-viewport-size.js | 0 src/sections/Kubernetes-Diagram/diagram.js | 2 +- .../Meshery/Features-Col/data/index.js | 2 +- .../Meshery/Meshery-features/index.js | 2 +- src/sections/Meshery/Meshery-quotes/index.js | 2 +- src/sections/Meshmap/Meshmap-design/index.js | 28 ----------- .../Meshmap/Meshmap-visualize/index.js | 29 ------------ .../Playground/playground-features.js | 2 +- src/sections/Pricing/data.js | 14 +++--- .../{meshmap-icon.svg => kanvas-icon.svg} | 0 src/sections/Pricing/review-slider.js | 10 ++-- src/sections/Products/index.js | 10 ++-- src/sections/Projects/Project-grid/index.js | 14 +++--- .../Project-grid/projectGrid.style.js | 4 +- src/sections/Projects/SMI/index.js | 4 +- src/sections/Projects/SMP/index.js | 4 +- .../Resources/Resource-single/index.js | 2 +- .../Resources/Resources-grid/options.js | 2 +- .../gitops/PerformanceManagementPage.js | 4 +- src/sections/gitops/SnapshotPage.js | 14 +++--- src/sections/gitops/gitops.style.js | 8 ++-- src/sections/gitops/index.js | 10 ++-- src/sections/gitops/snapshot.style.js | 4 +- .../{meshmap-cta => kanvas-cta}/index.js | 16 +++---- .../kanvas-icon-white.svg} | 0 .../{meshmap-cta => kanvas-cta}/locator.svg | 0 .../meshery-surface.svg | 0 src/sections/z_other/Features/index.js | 2 +- src/theme/app/THEME.md | 4 +- ...map-brand-kit.zip => kanvas-brand-kit.zip} | Bin ...adoption-of-layer5-meshery-and-kanvas.pdf} | Bin static/mail/2022/dockercon-2022-recap.html | 4 +- static/mail/2023/feature-friday.html | 2 +- 322 files changed, 570 insertions(+), 570 deletions(-) rename src/assets/images/homePage-images/{meshmap.webp => kanvas.webp} (100%) rename src/assets/images/{meshmap-snapshot/meshmap-snapshot.svg => kanvas-snapshot/kanvas-snapshot.svg} (100%) rename src/assets/images/{meshmap/MeshmapCatalog.webp => kanvas/KanvasCatalog.webp} (100%) rename src/assets/images/{meshmap/MeshmapDesigner.webp => kanvas/KanvasDesigner.webp} (100%) rename src/assets/images/{meshmap/MeshmapVisualizer.webp => kanvas/KanvasVisualizer.webp} (100%) rename src/assets/images/{meshmap => kanvas}/MesheryCloud.webp (100%) rename src/assets/images/{meshmap => kanvas}/catalog-card-images/circuit-breaker.svg (100%) rename src/assets/images/{meshmap => kanvas}/catalog-card-images/correlate-event.svg (100%) rename src/assets/images/{meshmap => kanvas}/catalog-card-images/denial.svg (100%) rename src/assets/images/{meshmap => kanvas}/catalog-card-images/http.svg (100%) rename src/assets/images/{meshmap => kanvas}/catalog-card-images/jwt.svg (100%) rename src/assets/images/{meshmap => kanvas}/catalog-card-images/multicluster.svg (100%) rename src/assets/images/{meshmap => kanvas}/catalog-card-images/mutual-tls.svg (100%) rename src/assets/images/{meshmap => kanvas}/catalog-card-images/node-agent.svg (100%) rename src/assets/images/{meshmap => kanvas}/catalog-card-images/only-wagent.svg (100%) rename src/assets/images/{meshmap => kanvas}/catalog-card-images/pre-provision.svg (100%) rename src/assets/images/{meshmap => kanvas}/catalog-card-images/retries.svg (100%) rename src/assets/images/{meshmap => kanvas}/catalog-card-images/retry-deadline.svg (100%) rename src/assets/images/{meshmap => kanvas}/catalog-card-images/single-tenant.svg (100%) rename src/assets/images/{meshmap => kanvas}/catalog-card-images/singleton.svg (100%) rename src/assets/images/{meshmap => kanvas}/catalog-card-images/traces.svg (100%) rename src/assets/images/{meshmap => kanvas}/docker_white.svg (100%) rename src/assets/images/{meshmap => kanvas}/ebpf-dark.webp (100%) rename src/assets/images/{meshmap => kanvas}/ebpf.svg (100%) rename src/assets/images/{meshmap/icon-only/meshmap-icon-white.svg => kanvas/icon-only/kanvas-icon-white.svg} (100%) rename src/assets/images/{meshmap/icon-only/meshmap-icon-white.webp => kanvas/icon-only/kanvas-icon-white.webp} (100%) rename src/assets/images/{meshmap/icon-only/meshmap-icon.svg => kanvas/icon-only/kanvas-icon.svg} (100%) rename src/assets/images/{meshmap/icon-only/meshmap-icon.webp => kanvas/icon-only/kanvas-icon.webp} (100%) rename src/assets/images/{meshmap/meshmap-collaborate.webp => kanvas/kanvas-collaborate.webp} (100%) rename src/assets/images/{meshmap/meshmap-color-horizontal.svg => kanvas/kanvas-color-horizontal.svg} (100%) rename src/assets/images/{meshmap/meshmap-color-icon.svg => kanvas/kanvas-color-icon.svg} (100%) rename src/assets/images/{meshmap/meshmap-color-icon.webp => kanvas/kanvas-color-icon.webp} (100%) rename src/assets/images/{meshmap/meshmap-color-stacked.svg => kanvas/kanvas-color-stacked.svg} (100%) rename src/assets/images/{meshmap/meshmap-color-stacked.webp => kanvas/kanvas-color-stacked.webp} (100%) rename src/assets/images/{meshmap/meshmap-color-text.svg => kanvas/kanvas-color-text.svg} (100%) rename src/assets/images/{meshmap/meshmap-color-text.webp => kanvas/kanvas-color-text.webp} (100%) rename src/assets/images/{meshmap/meshmap-light-stacked.svg => kanvas/kanvas-light-stacked.svg} (100%) rename src/assets/images/{meshmap => kanvas}/kubernetes_white.svg (100%) rename src/assets/images/{meshmap => kanvas}/opa.svg (100%) rename src/collections/resources/case-study/{hpes-adoption-of-meshery-and-meshmap => hpes-adoption-of-meshery-and-kanvas}/globe.svg (100%) rename src/collections/resources/case-study/{hpes-adoption-of-meshery-and-meshmap => hpes-adoption-of-meshery-and-kanvas}/hpe.style.js (100%) rename src/collections/resources/case-study/{hpes-adoption-of-meshery-and-meshmap => hpes-adoption-of-meshery-and-kanvas}/index.mdx (97%) rename src/collections/resources/case-study/{hpes-adoption-of-meshery-and-meshmap => hpes-adoption-of-meshery-and-kanvas}/layers.svg (100%) rename src/collections/resources/case-study/{hpes-adoption-of-meshery-and-meshmap => hpes-adoption-of-meshery-and-kanvas}/meshery-and-hpe.svg (100%) rename src/collections/resources/case-study/{hpes-adoption-of-meshery-and-meshmap => hpes-adoption-of-meshery-and-kanvas}/meshery-integrations.svg (100%) rename src/collections/resources/case-study/{hpes-adoption-of-meshery-and-meshmap => hpes-adoption-of-meshery-and-kanvas}/network.svg (100%) rename src/collections/resources/case-study/{hpes-adoption-of-meshery-and-meshmap => hpes-adoption-of-meshery-and-kanvas}/users.svg (100%) rename src/collections/resources/case-study/{hpes-adoption-of-meshery-and-meshmap => hpes-adoption-of-meshery-and-kanvas}/yogi.webp (100%) rename src/pages/cloud-native-management/{meshmap => kanvas}/collaborate/index.js (63%) rename src/pages/cloud-native-management/{meshmap => kanvas}/collaborate/peer-reviews/index.js (100%) create mode 100644 src/pages/cloud-native-management/kanvas/design.js create mode 100644 src/pages/cloud-native-management/kanvas/index.js create mode 100644 src/pages/cloud-native-management/kanvas/visualize.js delete mode 100644 src/pages/cloud-native-management/meshmap/design.js delete mode 100644 src/pages/cloud-native-management/meshmap/index.js delete mode 100644 src/pages/cloud-native-management/meshmap/visualize.js rename src/sections/Company/Brand/Brand-components/{meshmap.js => kanvas.js} (72%) rename src/sections/General/Navigation/utility/{MeshMapIcon.js => KanvasIcon.js} (98%) rename src/sections/{Meshmap => Kanvas}/FeaturesSection/Collaborate/CollaboratorFeatures.js (95%) rename src/sections/{Meshmap => Kanvas}/FeaturesSection/Collaborate/CollaboratorFeatures.style.js (100%) rename src/sections/{Meshmap => Kanvas}/FeaturesSection/Collaborate/CollaboratorFeatures_diagram.js (100%) rename src/sections/{Meshmap => Kanvas}/FeaturesSection/Collaborate/images/avatar1.webp (100%) rename src/sections/{Meshmap => Kanvas}/FeaturesSection/Collaborate/images/avatar2.webp (100%) rename src/sections/{Meshmap => Kanvas}/FeaturesSection/Collaborate/images/avatar3.webp (100%) rename src/sections/{Meshmap => Kanvas}/FeaturesSection/Collaborate/images/collab1-colorMode.svg (100%) rename src/sections/{Meshmap => Kanvas}/FeaturesSection/Collaborate/images/collab1-dark.svg (100%) rename src/sections/{Meshmap => Kanvas}/FeaturesSection/Collaborate/images/collab1.svg (100%) rename src/sections/{Meshmap => Kanvas}/FeaturesSection/Collaborate/images/collab2-colorMode.svg (100%) rename src/sections/{Meshmap => Kanvas}/FeaturesSection/Collaborate/images/collab2-dark.svg (100%) rename src/sections/{Meshmap => Kanvas}/FeaturesSection/Collaborate/images/collab2.svg (100%) rename src/sections/{Meshmap => Kanvas}/FeaturesSection/Collaborate/images/collab3-colorMode.svg (100%) rename src/sections/{Meshmap => Kanvas}/FeaturesSection/Collaborate/images/collab3-dark.svg (100%) rename src/sections/{Meshmap => Kanvas}/FeaturesSection/Collaborate/images/collab3.svg (100%) rename src/sections/{Meshmap => Kanvas}/FeaturesSection/Collaborate/images/collab4-colorMode.svg (100%) rename src/sections/{Meshmap => Kanvas}/FeaturesSection/Collaborate/images/collab4-dark.svg (100%) rename src/sections/{Meshmap => Kanvas}/FeaturesSection/Collaborate/images/collab4.svg (100%) rename src/sections/{Meshmap => Kanvas}/FeaturesSection/Design/DesignerFeatures.js (96%) rename src/sections/{Meshmap => Kanvas}/FeaturesSection/Design/DesignerFeatures.style.js (100%) rename src/sections/{Meshmap => Kanvas}/FeaturesSection/Design/DesignerFeatures_diagram.js (100%) rename src/sections/{Meshmap => Kanvas}/FeaturesSection/Design/images/role-binding-1-colorMode.svg (100%) rename src/sections/{Meshmap => Kanvas}/FeaturesSection/Design/images/role-binding-1-dark.svg (100%) rename src/sections/{Meshmap => Kanvas}/FeaturesSection/Design/images/role-binding-1.svg (100%) rename src/sections/{Meshmap => Kanvas}/FeaturesSection/Design/images/role-binding-2-colorMode.svg (100%) rename src/sections/{Meshmap => Kanvas}/FeaturesSection/Design/images/role-binding-2-dark.svg (100%) rename src/sections/{Meshmap => Kanvas}/FeaturesSection/Design/images/role-binding-2.svg (100%) rename src/sections/{Meshmap => Kanvas}/FeaturesSection/Design/images/role-binding-3-colorMode.svg (100%) rename src/sections/{Meshmap => Kanvas}/FeaturesSection/Design/images/role-binding-3-dark.svg (100%) rename src/sections/{Meshmap => Kanvas}/FeaturesSection/Design/images/role-binding-3.svg (100%) rename src/sections/{Meshmap => Kanvas}/FeaturesSection/Design/images/role-binding-4-colorMode.svg (100%) rename src/sections/{Meshmap => Kanvas}/FeaturesSection/Design/images/role-binding-4-dark.svg (100%) rename src/sections/{Meshmap => Kanvas}/FeaturesSection/Design/images/role-binding-4.svg (100%) rename src/sections/{Meshmap => Kanvas}/FeaturesSection/Visualize/VisualizerFeatures.js (95%) rename src/sections/{Meshmap => Kanvas}/FeaturesSection/Visualize/VisualizerFeatures.style.js (100%) rename src/sections/{Meshmap => Kanvas}/FeaturesSection/Visualize/VisualizerFeatures_diagram.js (100%) rename src/sections/{Meshmap => Kanvas}/FeaturesSection/Visualize/images/visualize-1-colorMode.svg (100%) rename src/sections/{Meshmap => Kanvas}/FeaturesSection/Visualize/images/visualize-1-dark.svg (100%) rename src/sections/{Meshmap => Kanvas}/FeaturesSection/Visualize/images/visualize-1.svg (100%) rename src/sections/{Meshmap => Kanvas}/FeaturesSection/Visualize/images/visualize-2-colorMode.svg (100%) rename src/sections/{Meshmap => Kanvas}/FeaturesSection/Visualize/images/visualize-2-dark.svg (100%) rename src/sections/{Meshmap => Kanvas}/FeaturesSection/Visualize/images/visualize-2.svg (100%) rename src/sections/{Meshmap => Kanvas}/FeaturesSection/useGsapTimeline.js (100%) rename src/sections/{Meshmap/Meshmap-collaborate => Kanvas/Kanvas-collaborate}/collaboration-feature-team.js (100%) rename src/sections/{Meshmap/Meshmap-collaborate => Kanvas/Kanvas-collaborate}/collaboration-feature-terms.js (100%) rename src/sections/{Meshmap/Meshmap-collaborate => Kanvas/Kanvas-collaborate}/collaboration-feature-work.js (100%) rename src/sections/{Meshmap/Meshmap-collaborate => Kanvas/Kanvas-collaborate}/images/banner-transitions/canvas.svg (100%) rename src/sections/{Meshmap/Meshmap-collaborate => Kanvas/Kanvas-collaborate}/images/banner-transitions/empty-dark.svg (100%) rename src/sections/{Meshmap/Meshmap-collaborate => Kanvas/Kanvas-collaborate}/images/banner-transitions/empty-light.svg (100%) rename src/sections/{Meshmap/Meshmap-collaborate => Kanvas/Kanvas-collaborate}/images/banner-transitions/ingress-gateway-partial-colorMode.svg (100%) rename src/sections/{Meshmap/Meshmap-collaborate => Kanvas/Kanvas-collaborate}/images/banner-transitions/ingress-gateway-partial-dark.svg (100%) rename src/sections/{Meshmap/Meshmap-collaborate => Kanvas/Kanvas-collaborate}/images/banner-transitions/ingress-gateway-partial.svg (100%) rename src/sections/{Meshmap/Meshmap-collaborate => Kanvas/Kanvas-collaborate}/images/banner-transitions/kubernetes-navbar-light.svg (100%) rename src/sections/{Meshmap/Meshmap-collaborate => Kanvas/Kanvas-collaborate}/images/banner-transitions/kubernetes-navbar.svg (100%) rename src/sections/{Meshmap/Meshmap-collaborate => Kanvas/Kanvas-collaborate}/images/banner-transitions/kubernetes-partial-colorMode.svg (100%) rename src/sections/{Meshmap/Meshmap-collaborate => Kanvas/Kanvas-collaborate}/images/banner-transitions/kubernetes-partial-dark.svg (100%) rename src/sections/{Meshmap/Meshmap-collaborate => Kanvas/Kanvas-collaborate}/images/banner-transitions/kubernetes-partial.svg (100%) rename src/sections/{Meshmap/Meshmap-collaborate => Kanvas/Kanvas-collaborate}/images/banner-transitions/pod-partial-colorMode.svg (100%) rename src/sections/{Meshmap/Meshmap-collaborate => Kanvas/Kanvas-collaborate}/images/banner-transitions/pod-partial-dark.svg (100%) rename src/sections/{Meshmap/Meshmap-collaborate => Kanvas/Kanvas-collaborate}/images/banner-transitions/pod-partial.svg (100%) rename src/sections/{Meshmap/Meshmap-collaborate => Kanvas/Kanvas-collaborate}/images/banner-transitions/prometheus-partial-colorMode.svg (100%) rename src/sections/{Meshmap/Meshmap-collaborate => Kanvas/Kanvas-collaborate}/images/banner-transitions/prometheus-partial-dark.svg (100%) rename src/sections/{Meshmap/Meshmap-collaborate => Kanvas/Kanvas-collaborate}/images/banner-transitions/prometheus-partial.svg (100%) rename src/sections/{Meshmap/Meshmap-collaborate => Kanvas/Kanvas-collaborate}/images/banner-transitions/service-interface-partial-colorMode.svg (100%) rename src/sections/{Meshmap/Meshmap-collaborate => Kanvas/Kanvas-collaborate}/images/banner-transitions/service-interface-partial-dark.svg (100%) rename src/sections/{Meshmap/Meshmap-collaborate => Kanvas/Kanvas-collaborate}/images/banner-transitions/service-interface-partial.svg (100%) rename src/sections/{Meshmap/Meshmap-collaborate => Kanvas/Kanvas-collaborate}/images/banner-transitions/supporting-arrows.svg (100%) rename src/sections/{Meshmap/Meshmap-collaborate => Kanvas/Kanvas-collaborate}/images/world-transitions/world-1.svg (100%) rename src/sections/{Meshmap/Meshmap-collaborate => Kanvas/Kanvas-collaborate}/images/world-transitions/world-2.svg (100%) rename src/sections/{Meshmap/Meshmap-collaborate => Kanvas/Kanvas-collaborate}/images/world-transitions/world-3.svg (100%) rename src/sections/{Meshmap/Meshmap-collaborate => Kanvas/Kanvas-collaborate}/images/world-transitions/world-4.svg (100%) rename src/sections/{Meshmap/Meshmap-collaborate => Kanvas/Kanvas-collaborate}/images/world-transitions/world-5.svg (100%) rename src/sections/{Meshmap/Meshmap-collaborate => Kanvas/Kanvas-collaborate}/images/world-transitions/world-6.svg (100%) rename src/sections/{Meshmap/Meshmap-collaborate => Kanvas/Kanvas-collaborate}/images/world-transitions/world-7.svg (100%) rename src/sections/{Meshmap/Meshmap-collaborate => Kanvas/Kanvas-collaborate}/images/world-transitions/world-image.svg (100%) rename src/sections/{Meshmap/Meshmap-collaborate => Kanvas/Kanvas-collaborate}/index.js (58%) rename src/sections/{Meshmap/Meshmap-collaborate => Kanvas/Kanvas-collaborate}/index.test.js (68%) rename src/sections/{Meshmap/Meshmap-collaborate/meshmap-collaborate-banner.js => Kanvas/Kanvas-collaborate/kanvas-collaborate-banner.js} (98%) rename src/sections/{Meshmap/Meshmap-collaborate/meshmap-collaborate.style.js => Kanvas/Kanvas-collaborate/kanvas-collaborate.style.js} (88%) rename src/sections/{Meshmap/Meshmap-design/Meshmap-design-features => Kanvas/Kanvas-design/Kanvas-design-features}/index.js (75%) rename src/sections/{Meshmap/Meshmap-design/Meshmap_Mobile_swiper/MeshmapMobileSwiper.js => Kanvas/Kanvas-design/Kanvas_Mobile_swiper/KanvasMobileSwiper.js} (86%) rename src/sections/{Meshmap/Meshmap-design/Meshmap_Mobile_swiper => Kanvas/Kanvas-design/Kanvas_Mobile_swiper}/images/BlankSwiper.webp (100%) rename src/sections/{Meshmap/Meshmap-design/Meshmap_Mobile_swiper => Kanvas/Kanvas-design/Kanvas_Mobile_swiper}/mobile-swiper.style.js (100%) rename src/sections/{Meshmap/Meshmap-design => Kanvas/Kanvas-design}/cytoscape-demo.js (100%) rename src/sections/{Meshmap/Meshmap-design => Kanvas/Kanvas-design}/cytoscape-demo.style.js (100%) rename src/sections/{Meshmap/Meshmap-design => Kanvas/Kanvas-design}/cytoscapeCanvas.js (100%) rename src/sections/{Meshmap/Meshmap-design => Kanvas/Kanvas-design}/images/background-dots-pattern.svg (100%) rename src/sections/{Meshmap/Meshmap-design => Kanvas/Kanvas-design}/images/banner-image-colorMode.svg (100%) rename src/sections/{Meshmap/Meshmap-design => Kanvas/Kanvas-design}/images/banner-image-dark.svg (100%) rename src/sections/{Meshmap/Meshmap-design => Kanvas/Kanvas-design}/images/banner-image-light.svg (100%) rename src/sections/{Meshmap/Meshmap-design => Kanvas/Kanvas-design}/images/connect-components.gif (100%) rename src/sections/{Meshmap/Meshmap-design => Kanvas/Kanvas-design}/images/cytoNodes.js (100%) rename src/sections/{Meshmap/Meshmap-design => Kanvas/Kanvas-design}/images/cytoscape-colorMode.svg (100%) rename src/sections/{Meshmap/Meshmap-design => Kanvas/Kanvas-design}/images/cytoscape-dark.svg (100%) rename src/sections/{Meshmap/Meshmap-design => Kanvas/Kanvas-design}/images/cytoscape-light.svg (100%) rename src/sections/{Meshmap/Meshmap-design => Kanvas/Kanvas-design}/images/drag-drop-components.gif (100%) rename src/sections/{Meshmap/Meshmap-design => Kanvas/Kanvas-design}/images/integration-image-colorMode.svg (100%) rename src/sections/{Meshmap/Meshmap-design/images/meshmap-bottom-image-dark.svg => Kanvas/Kanvas-design/images/kanvas-bottom-image-dark.svg} (100%) rename src/sections/{Meshmap/Meshmap-design/images/meshmap-bottom-image-light.svg => Kanvas/Kanvas-design/images/kanvas-bottom-image-light.svg} (100%) rename src/sections/{Meshmap/Meshmap-design/images/meshmap-locator-dark.svg => Kanvas/Kanvas-design/images/kanvas-locator-dark.svg} (100%) rename src/sections/{Meshmap/Meshmap-design/images/meshmap-locator-light.svg => Kanvas/Kanvas-design/images/kanvas-locator-light.svg} (100%) rename src/sections/{Meshmap/Meshmap-design => Kanvas/Kanvas-design}/images/merge-design.gif (100%) rename src/sections/{Meshmap/Meshmap-design => Kanvas/Kanvas-design}/images/plus-sign-colorMode.svg (100%) rename src/sections/{Meshmap/Meshmap-design => Kanvas/Kanvas-design}/images/share-design.gif (100%) rename src/sections/{Meshmap/Meshmap-design => Kanvas/Kanvas-design}/images/underline.svg (100%) create mode 100644 src/sections/Kanvas/Kanvas-design/index.js rename src/sections/{Meshmap/Meshmap-design => Kanvas/Kanvas-design}/index.test.js (68%) rename src/sections/{Meshmap/Meshmap-design/meshmap-design-banner.js => Kanvas/Kanvas-design/kanvas-design-banner.js} (98%) rename src/sections/{Meshmap/Meshmap-design/meshmap-design-features-carousel.js => Kanvas/Kanvas-design/kanvas-design-features-carousel.js} (90%) rename src/sections/{Meshmap/Meshmap-design/meshmap-design-hero.js => Kanvas/Kanvas-design/kanvas-design-hero.js} (75%) rename src/sections/{Meshmap/Meshmap-design/meshmap-design-integrations.js => Kanvas/Kanvas-design/kanvas-design-integrations.js} (97%) rename src/sections/{Meshmap/Meshmap-design/meshmap-design.style.js => Kanvas/Kanvas-design/kanvas-design.style.js} (89%) rename src/sections/{Meshmap/Meshmap-visualize => Kanvas/Kanvas-visualize}/images/application-import-arrows.svg (100%) rename src/sections/{Meshmap/Meshmap-visualize => Kanvas/Kanvas-visualize}/images/application-import-boxes.svg (100%) rename src/sections/{Meshmap/Meshmap-visualize => Kanvas/Kanvas-visualize}/images/interactive-terminal-code.svg (100%) rename src/sections/{Meshmap/Meshmap-visualize => Kanvas/Kanvas-visualize}/images/interactive-terminal.svg (100%) rename src/sections/{Meshmap/Meshmap-visualize => Kanvas/Kanvas-visualize}/images/log-stream-search.svg (100%) rename src/sections/{Meshmap/Meshmap-visualize => Kanvas/Kanvas-visualize}/images/log-stream.svg (100%) rename src/sections/{Meshmap/Meshmap-visualize => Kanvas/Kanvas-visualize}/images/oval-blur-shape.svg (100%) rename src/sections/{Meshmap/Meshmap-visualize => Kanvas/Kanvas-visualize}/images/performance-metrics-bars.svg (100%) rename src/sections/{Meshmap/Meshmap-visualize => Kanvas/Kanvas-visualize}/images/performance-metrics-graph.svg (100%) rename src/sections/{Meshmap/Meshmap-visualize => Kanvas/Kanvas-visualize}/images/service-performance-gear-dark.svg (100%) rename src/sections/{Meshmap/Meshmap-visualize => Kanvas/Kanvas-visualize}/images/service-performance-gear-light.svg (100%) rename src/sections/{Meshmap/Meshmap-visualize => Kanvas/Kanvas-visualize}/images/service-performance-meter-colorMode.svg (100%) rename src/sections/{Meshmap/Meshmap-visualize => Kanvas/Kanvas-visualize}/images/service-performance-meter-dark.svg (100%) rename src/sections/{Meshmap/Meshmap-visualize => Kanvas/Kanvas-visualize}/images/service-performance-meter-light.svg (100%) rename src/sections/{Meshmap/Meshmap-visualize => Kanvas/Kanvas-visualize}/images/timeline-dvr-clock.svg (100%) rename src/sections/{Meshmap/Meshmap-visualize => Kanvas/Kanvas-visualize}/images/timeline-dvr.svg (100%) rename src/sections/{Meshmap/Meshmap-visualize => Kanvas/Kanvas-visualize}/images/visualizer-views-colorMode.svg (100%) rename src/sections/{Meshmap/Meshmap-visualize => Kanvas/Kanvas-visualize}/images/visualizer-views-dark.svg (100%) rename src/sections/{Meshmap/Meshmap-visualize => Kanvas/Kanvas-visualize}/images/visualizer-views-light.svg (100%) rename src/sections/{Meshmap/Meshmap-visualize => Kanvas/Kanvas-visualize}/images/visualizer-views-lines.svg (100%) create mode 100644 src/sections/Kanvas/Kanvas-visualize/index.js rename src/sections/{Meshmap/Meshmap-visualize => Kanvas/Kanvas-visualize}/index.test.js (68%) rename src/sections/{Meshmap/Meshmap-visualize/meshmap-visualize-banner.js => Kanvas/Kanvas-visualize/kanvas-visualize-banner.js} (94%) rename src/sections/{Meshmap/Meshmap-visualize/meshmap-visualize-features.js => Kanvas/Kanvas-visualize/kanvas-visualize-features.js} (99%) rename src/sections/{Meshmap/Meshmap-visualize/meshmap-visualize-views.js => Kanvas/Kanvas-visualize/kanvas-visualize-views.js} (97%) rename src/sections/{Meshmap/Meshmap-visualize/meshmap-visualize.style.js => Kanvas/Kanvas-visualize/kanvas-visualize.style.js} (90%) rename src/sections/{Meshmap => Kanvas}/diagram/diagram.style.js (100%) rename src/sections/{Meshmap => Kanvas}/features/features.style.js (100%) rename src/sections/{Meshmap => Kanvas}/features/index.js (100%) rename src/sections/{Meshmap => Kanvas}/images/MesheryCloud.svg (100%) rename src/sections/{Meshmap => Kanvas}/images/circles.svg (100%) rename src/sections/{Meshmap => Kanvas}/images/collaborate1.svg (100%) rename src/sections/{Meshmap => Kanvas}/images/collaborate2.svg (100%) rename src/sections/{Meshmap => Kanvas}/images/datacenter-crash.svg (100%) rename src/sections/{Meshmap => Kanvas}/images/grid.svg (100%) rename src/sections/{Meshmap => Kanvas}/images/link-arrow-dark.svg (100%) rename src/sections/{Meshmap => Kanvas}/images/link-arrow.svg (100%) rename src/sections/{Meshmap => Kanvas}/images/meshery-cloud.svg (100%) rename src/sections/{Meshmap => Kanvas}/images/meshmap-draft-logos.webp (100%) rename src/sections/{Meshmap => Kanvas}/index.js (89%) rename src/sections/{Meshmap => Kanvas}/index.test.js (68%) rename src/sections/{Meshmap/meshmap-catalog.js => Kanvas/kanvas-catalog.js} (86%) rename src/sections/{Meshmap/meshmap-icon.svg => Kanvas/kanvas-icon.svg} (100%) rename src/sections/{Meshmap/meshmap-modes.js => Kanvas/kanvas-modes.js} (89%) rename src/sections/{Meshmap/meshmap-newicon.svg => Kanvas/kanvas-newicon.svg} (100%) rename src/sections/{Meshmap/meshmap-platform.js => Kanvas/kanvas-platform.js} (80%) rename src/sections/{Meshmap/meshmap.style.js => Kanvas/kanvas.style.js} (96%) rename src/sections/{Meshmap/meshmap_banner.js => Kanvas/kanvas_banner.js} (93%) rename src/sections/{Meshmap => Kanvas}/meshery-action.js (97%) rename src/sections/{Meshmap => Kanvas}/signup-form.js (79%) rename src/sections/{Meshmap => Kanvas}/use-viewport-size.js (100%) delete mode 100644 src/sections/Meshmap/Meshmap-design/index.js delete mode 100644 src/sections/Meshmap/Meshmap-visualize/index.js rename src/sections/Pricing/icons/{meshmap-icon.svg => kanvas-icon.svg} (100%) rename src/sections/{meshmap-cta => kanvas-cta}/index.js (87%) rename src/sections/{meshmap-cta/meshmap-icon-white.svg => kanvas-cta/kanvas-icon-white.svg} (100%) rename src/sections/{meshmap-cta => kanvas-cta}/locator.svg (100%) rename src/sections/{meshmap-cta => kanvas-cta}/meshery-surface.svg (100%) rename static/brand/{meshmap-brand-kit.zip => kanvas-brand-kit.zip} (100%) rename static/case-studies/{hpe-adoption-of-layer5-meshery-and-meshmap.pdf => hpe-adoption-of-layer5-meshery-and-kanvas.pdf} (100%) diff --git a/.desktop-lighthouserc.js b/.desktop-lighthouserc.js index 5ddb404fa313..6e6304566de2 100644 --- a/.desktop-lighthouserc.js +++ b/.desktop-lighthouserc.js @@ -10,7 +10,7 @@ module.exports = { "http://localhost/?desktop", "http://localhost/company/about/index.html?desktop", "http://localhost/cloud-native-management/meshery/index.html?desktop", - "http://localhost/cloud-native-management/meshmap/index.html?desktop", + "http://localhost/cloud-native-management/kanvas/index.html?desktop", "http://localhost/learn/learning-paths/index.html?desktop", "http://localhost/learn/service-mesh-books/index.html?desktop", "http://localhost/learn/service-mesh-workshops/index.html?desktop", diff --git a/.github/labeler.yml b/.github/labeler.yml index 080e048af5dd..49da5263a5b2 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -93,7 +93,7 @@ project/meshery: - changed-files: - any-glob-to-any-file: - "src/collections/integrations/**/*" -project/meshmap: +project/kanvas: - changed-files: - any-glob-to-any-file: - - "src/sections/Meshmap/**/*" + - "src/sections/Kanvas/**/*" diff --git a/.github/workflows/meshmap.yml b/.github/workflows/meshmap.yml index a39642227960..f1c83b0278ee 100644 --- a/.github/workflows/meshmap.yml +++ b/.github/workflows/meshmap.yml @@ -1,4 +1,4 @@ -name: MeshMap Screenshot Service +name: Kanvas Screenshot Service 'on': pull_request_target: types: @@ -14,7 +14,7 @@ name: MeshMap Screenshot Service outputs: resource_url: description: The URL of the generated resource. - value: ${{ jobs.MeshMapScreenshot.outputs.resource_url }} + value: ${{ jobs.KanvasScreenshot.outputs.resource_url }} permissions: actions: read contents: write @@ -23,7 +23,7 @@ permissions: pull-requests: write id-token: write jobs: - MeshMapScreenshot: + KanvasScreenshot: runs-on: ubuntu-latest outputs: resource_url: ${{ steps.test_result.outputs.resource_url }} @@ -36,9 +36,9 @@ jobs: - uses: actions/checkout@v4 with: path: action - repository: layer5labs/meshmap-snapshot + repository: layer5labs/kanvas-snapshot - id: test_result - uses: layer5labs/MeshMap-Snapshot@v0.2.8 + uses: layer5labs/Kanvas-Snapshot@v0.2.8 with: githubToken: ${{ secrets.GITHUB_TOKEN }} mesheryToken: ${{ secrets.MESHERY_TOKEN }} diff --git a/.lighthouserc.js b/.lighthouserc.js index 06bc8b98b5c9..3e6067c7e302 100644 --- a/.lighthouserc.js +++ b/.lighthouserc.js @@ -8,7 +8,7 @@ module.exports = { "http://localhost", "http://localhost/company/about/index.html", "http://localhost/cloud-native-management/meshery/index.html", - "http://localhost/cloud-native-management/meshmap/index.html", + "http://localhost/cloud-native-management/kanvas/index.html", "http://localhost/learn/learning-paths/index.html", "http://localhost/learn/service-mesh-books/index.html", "http://localhost/learn/service-mesh-workshops/index.html", diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5b54053833db..b24af2cdbd63 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -227,7 +227,7 @@ OR - SVG or image uses transparent sections that change with the background color to work with either theme. -[Example of SVG file with transparent sections](https://github.com/layer5io/layer5/blob/master/src/assets/images/meshmap/icon-only/meshmap-icon.svg) +[Example of SVG file with transparent sections](https://github.com/layer5io/layer5/blob/master/src/assets/images/kanvas/icon-only/kanvas-icon.svg) [Example of image file with transparent sections](https://github.com/layer5io/layer5/blob/master/src/assets/images/app/projects/meshery-logo-light.webp) @@ -331,7 +331,7 @@ If possible we wish to avoid using images dependent on the theme because we are 1. To change images or SVG as the image source, according to the theme, you have to import the hook `useStyledDarkMode` from the following [folder](https://github.com/layer5io/layer5/blob/master/src/theme/app/useStyledDarkMode.js), and then use the `isDark` value from `useStyledDarkMode` hook for the conditional. -For example, you can view the code for [this file](https://github.com/layer5io/layer5/blob/master/src/sections/Meshmap/Meshmap-collaborate/meshmap-collaborate-banner.js). +For example, you can view the code for [this file](https://github.com/layer5io/layer5/blob/master/src/sections/Kanvas/Kanvas-collaborate/kanvas-collaborate-banner.js). Here are the relevant parts of the code: @@ -403,7 +403,7 @@ Badges are a great way of highlighting the area of contribution by any given com - Docker Extension - Docs - Meshery Catalog -- MeshMap +- Kanvas - Landscape - ImageHub - Meshery diff --git a/README.md b/README.md index 8e502d142285..eeb5107f2714 100644 --- a/README.md +++ b/README.md @@ -39,11 +39,11 @@

-

- - MeshMap logo +

Kanvas

+ + Kanvas logo -MeshMap is an end-to-end management platform, here to help teams understand problems, deploy designs, apply patterns, manage and operate your deployments and services in real-time. +Kanvas is an end-to-end management platform, here to help teams understand problems, deploy designs, apply patterns, manage and operate your deployments and services in real-time.



diff --git a/src/assets/data/faq/index.js b/src/assets/data/faq/index.js index ccc5a2582884..82b304813e16 100644 --- a/src/assets/data/faq/index.js +++ b/src/assets/data/faq/index.js @@ -107,10 +107,10 @@ const data = { ], }, { - question: "Can I deploy Meshery / MeshMap on-premises?", + question: "Can I deploy Meshery / Kanvas on-premises?", category: "Meshery", answer: [ - "Yes, Meshery, MeshMap, and Layer5 Cloud can be deployed on-premises in minutes using Helm charts.", + "Yes, Meshery, Kanvas, and Layer5 Cloud can be deployed on-premises in minutes using Helm charts.", "With a small number of manual steps, air-gapped deployments to run Meshery without internet access is also supported.", ], }, @@ -125,18 +125,18 @@ const data = { question: "Is it possible to migrate from managed Layer5 Cloud to self-hosted Layer5 Cloud on-premises?", category: "Meshery", answer: [ - "Yes, Meshery, MeshMap, and Layer5 Cloud can be deployed on-premises in minutes using Helm charts.", + "Yes, Meshery, Kanvas, and Layer5 Cloud can be deployed on-premises in minutes using Helm charts.", "A one-time export of your data can be requested as you transition from managed Layer5 Cloud to self-hosted Layer5 Cloud.", "With a small number of manual steps, air-gapped deployments to run Meshery without internet access is also supported.", ], }, { - question: `What is the difference between MeshMap and the Cloud Native Playground?`, + question: `What is the difference between Kanvas and the Cloud Native Playground?`, category: "Meshery", answer: [ - "The Cloud Native Playground (aka Meshery Playground) is a managed instance of Meshery that offers a sandbox environment in which half of MeshMapBETA functionality is enabled (Designer mode) and the other half of MeshMapBETA functionality is disabled (Visualizer mode).", - "The sandbox environment is not connected to an active Kuberentes cluster, and as such, specific actions within MeshMap Designer are also disabled. Meshery and MeshMap are feature-rich, sophisticated management applications for cloud native infrastructure. To access their full set of capabilities, simply deploy your own copy of Meshery into the environment of your choosing.", + "The Cloud Native Playground (aka Meshery Playground) is a managed instance of Meshery that offers a sandbox environment in which half of KanvasBETA functionality is enabled (Designer mode) and the other half of KanvasBETA functionality is disabled (Visualizer mode).", + "The sandbox environment is not connected to an active Kuberentes cluster, and as such, specific actions within Kanvas Designer are also disabled. Meshery and Kanvas are feature-rich, sophisticated management applications for cloud native infrastructure. To access their full set of capabilities, simply deploy your own copy of Meshery into the environment of your choosing.", ], }, { @@ -181,13 +181,13 @@ const data = { ], }, { - question: "Is MeshMap cloud or a self-hosted solution?", - category: "MeshMap", - link: "https://layer5.io/cloud-native-management/meshmap", + question: "Is Kanvas cloud or a self-hosted solution?", + category: "Kanvas", + link: "https://layer5.io/cloud-native-management/kanvas", linktext: "Learn More", answer: [ - "Yes, MeshMap is available both as a hosted solution and is also deployable on-premises as a self-hosted solution.", - "MeshMap can be self-hosted to keep your designs and applications internal to your premises. You can also choose to have MeshMap hosted as SaaS solution offered by Layer5.", + "Yes, Kanvas is available both as a hosted solution and is also deployable on-premises as a self-hosted solution.", + "Kanvas can be self-hosted to keep your designs and applications internal to your premises. You can also choose to have Kanvas hosted as SaaS solution offered by Layer5.", "Whether self-hosted or hosted by Layer5, we are here to support you." ] }, @@ -201,23 +201,23 @@ const data = { ] }, { - question: "How can I try out MeshMap?", - category: "MeshMap", - link: "https://layer5.io/cloud-native-management/meshmap", - linktext: "MeshMap Beta", + question: "How can I try out Kanvas?", + category: "Kanvas", + link: "https://layer5.io/cloud-native-management/kanvas", + linktext: "Kanvas Beta", answer: [ - "MeshMap is available in beta today. Signup for MeshMap beta access and use MeshMap for free.", + "Kanvas is available in beta today. Signup for Kanvas beta access and use Kanvas for free.", "Your request for early access will be processeed as quicky as possible but due to the large influx of program participation requests, it may take some time before system access is granted. In the meantime to help you familiarize with Meshery, the maintainers team will send you additional information about the early access program." ] }, { - question: "What is MeshMap early access program?", - category: "MeshMap", - link: "https://layer5.io/cloud-native-management/meshmap", - linktext: "MeshMap Beta", + question: "What is Kanvas early access program?", + category: "Kanvas", + link: "https://layer5.io/cloud-native-management/kanvas", + linktext: "Kanvas Beta", answer: [ - "MeshMap is cloud native collaboration tool for managing your infrastructure and applications. MeshMap has two modes: Visualizer for operating your actively running Kubernetes clusters and Designer for configuring your Kubernetes clusters and creating your creating your application deployments.", - "MeshMap is in beta mode and you can ask for early access to try it out.", + "Kanvas is cloud native collaboration tool for managing your infrastructure and applications. Kanvas has two modes: Visualizer for operating your actively running Kubernetes clusters and Designer for configuring your Kubernetes clusters and creating your creating your application deployments.", + "Kanvas is in beta mode and you can ask for early access to try it out.", ] }, diff --git a/src/assets/discuss/html/footer.html b/src/assets/discuss/html/footer.html index 1dc4e2786079..cd11cd1797b4 100644 --- a/src/assets/discuss/html/footer.html +++ b/src/assets/discuss/html/footer.html @@ -59,7 +59,7 @@ + diff --git a/src/assets/images/homePage-images/meshmap.webp b/src/assets/images/homePage-images/kanvas.webp similarity index 100% rename from src/assets/images/homePage-images/meshmap.webp rename to src/assets/images/homePage-images/kanvas.webp diff --git a/src/assets/images/meshmap-snapshot/meshmap-snapshot.svg b/src/assets/images/kanvas-snapshot/kanvas-snapshot.svg similarity index 100% rename from src/assets/images/meshmap-snapshot/meshmap-snapshot.svg rename to src/assets/images/kanvas-snapshot/kanvas-snapshot.svg diff --git a/src/assets/images/meshmap/MeshmapCatalog.webp b/src/assets/images/kanvas/KanvasCatalog.webp similarity index 100% rename from src/assets/images/meshmap/MeshmapCatalog.webp rename to src/assets/images/kanvas/KanvasCatalog.webp diff --git a/src/assets/images/meshmap/MeshmapDesigner.webp b/src/assets/images/kanvas/KanvasDesigner.webp similarity index 100% rename from src/assets/images/meshmap/MeshmapDesigner.webp rename to src/assets/images/kanvas/KanvasDesigner.webp diff --git a/src/assets/images/meshmap/MeshmapVisualizer.webp b/src/assets/images/kanvas/KanvasVisualizer.webp similarity index 100% rename from src/assets/images/meshmap/MeshmapVisualizer.webp rename to src/assets/images/kanvas/KanvasVisualizer.webp diff --git a/src/assets/images/meshmap/MesheryCloud.webp b/src/assets/images/kanvas/MesheryCloud.webp similarity index 100% rename from src/assets/images/meshmap/MesheryCloud.webp rename to src/assets/images/kanvas/MesheryCloud.webp diff --git a/src/assets/images/meshmap/catalog-card-images/circuit-breaker.svg b/src/assets/images/kanvas/catalog-card-images/circuit-breaker.svg similarity index 100% rename from src/assets/images/meshmap/catalog-card-images/circuit-breaker.svg rename to src/assets/images/kanvas/catalog-card-images/circuit-breaker.svg diff --git a/src/assets/images/meshmap/catalog-card-images/correlate-event.svg b/src/assets/images/kanvas/catalog-card-images/correlate-event.svg similarity index 100% rename from src/assets/images/meshmap/catalog-card-images/correlate-event.svg rename to src/assets/images/kanvas/catalog-card-images/correlate-event.svg diff --git a/src/assets/images/meshmap/catalog-card-images/denial.svg b/src/assets/images/kanvas/catalog-card-images/denial.svg similarity index 100% rename from src/assets/images/meshmap/catalog-card-images/denial.svg rename to src/assets/images/kanvas/catalog-card-images/denial.svg diff --git a/src/assets/images/meshmap/catalog-card-images/http.svg b/src/assets/images/kanvas/catalog-card-images/http.svg similarity index 100% rename from src/assets/images/meshmap/catalog-card-images/http.svg rename to src/assets/images/kanvas/catalog-card-images/http.svg diff --git a/src/assets/images/meshmap/catalog-card-images/jwt.svg b/src/assets/images/kanvas/catalog-card-images/jwt.svg similarity index 100% rename from src/assets/images/meshmap/catalog-card-images/jwt.svg rename to src/assets/images/kanvas/catalog-card-images/jwt.svg diff --git a/src/assets/images/meshmap/catalog-card-images/multicluster.svg b/src/assets/images/kanvas/catalog-card-images/multicluster.svg similarity index 100% rename from src/assets/images/meshmap/catalog-card-images/multicluster.svg rename to src/assets/images/kanvas/catalog-card-images/multicluster.svg diff --git a/src/assets/images/meshmap/catalog-card-images/mutual-tls.svg b/src/assets/images/kanvas/catalog-card-images/mutual-tls.svg similarity index 100% rename from src/assets/images/meshmap/catalog-card-images/mutual-tls.svg rename to src/assets/images/kanvas/catalog-card-images/mutual-tls.svg diff --git a/src/assets/images/meshmap/catalog-card-images/node-agent.svg b/src/assets/images/kanvas/catalog-card-images/node-agent.svg similarity index 100% rename from src/assets/images/meshmap/catalog-card-images/node-agent.svg rename to src/assets/images/kanvas/catalog-card-images/node-agent.svg diff --git a/src/assets/images/meshmap/catalog-card-images/only-wagent.svg b/src/assets/images/kanvas/catalog-card-images/only-wagent.svg similarity index 100% rename from src/assets/images/meshmap/catalog-card-images/only-wagent.svg rename to src/assets/images/kanvas/catalog-card-images/only-wagent.svg diff --git a/src/assets/images/meshmap/catalog-card-images/pre-provision.svg b/src/assets/images/kanvas/catalog-card-images/pre-provision.svg similarity index 100% rename from src/assets/images/meshmap/catalog-card-images/pre-provision.svg rename to src/assets/images/kanvas/catalog-card-images/pre-provision.svg diff --git a/src/assets/images/meshmap/catalog-card-images/retries.svg b/src/assets/images/kanvas/catalog-card-images/retries.svg similarity index 100% rename from src/assets/images/meshmap/catalog-card-images/retries.svg rename to src/assets/images/kanvas/catalog-card-images/retries.svg diff --git a/src/assets/images/meshmap/catalog-card-images/retry-deadline.svg b/src/assets/images/kanvas/catalog-card-images/retry-deadline.svg similarity index 100% rename from src/assets/images/meshmap/catalog-card-images/retry-deadline.svg rename to src/assets/images/kanvas/catalog-card-images/retry-deadline.svg diff --git a/src/assets/images/meshmap/catalog-card-images/single-tenant.svg b/src/assets/images/kanvas/catalog-card-images/single-tenant.svg similarity index 100% rename from src/assets/images/meshmap/catalog-card-images/single-tenant.svg rename to src/assets/images/kanvas/catalog-card-images/single-tenant.svg diff --git a/src/assets/images/meshmap/catalog-card-images/singleton.svg b/src/assets/images/kanvas/catalog-card-images/singleton.svg similarity index 100% rename from src/assets/images/meshmap/catalog-card-images/singleton.svg rename to src/assets/images/kanvas/catalog-card-images/singleton.svg diff --git a/src/assets/images/meshmap/catalog-card-images/traces.svg b/src/assets/images/kanvas/catalog-card-images/traces.svg similarity index 100% rename from src/assets/images/meshmap/catalog-card-images/traces.svg rename to src/assets/images/kanvas/catalog-card-images/traces.svg diff --git a/src/assets/images/meshmap/docker_white.svg b/src/assets/images/kanvas/docker_white.svg similarity index 100% rename from src/assets/images/meshmap/docker_white.svg rename to src/assets/images/kanvas/docker_white.svg diff --git a/src/assets/images/meshmap/ebpf-dark.webp b/src/assets/images/kanvas/ebpf-dark.webp similarity index 100% rename from src/assets/images/meshmap/ebpf-dark.webp rename to src/assets/images/kanvas/ebpf-dark.webp diff --git a/src/assets/images/meshmap/ebpf.svg b/src/assets/images/kanvas/ebpf.svg similarity index 100% rename from src/assets/images/meshmap/ebpf.svg rename to src/assets/images/kanvas/ebpf.svg diff --git a/src/assets/images/meshmap/icon-only/meshmap-icon-white.svg b/src/assets/images/kanvas/icon-only/kanvas-icon-white.svg similarity index 100% rename from src/assets/images/meshmap/icon-only/meshmap-icon-white.svg rename to src/assets/images/kanvas/icon-only/kanvas-icon-white.svg diff --git a/src/assets/images/meshmap/icon-only/meshmap-icon-white.webp b/src/assets/images/kanvas/icon-only/kanvas-icon-white.webp similarity index 100% rename from src/assets/images/meshmap/icon-only/meshmap-icon-white.webp rename to src/assets/images/kanvas/icon-only/kanvas-icon-white.webp diff --git a/src/assets/images/meshmap/icon-only/meshmap-icon.svg b/src/assets/images/kanvas/icon-only/kanvas-icon.svg similarity index 100% rename from src/assets/images/meshmap/icon-only/meshmap-icon.svg rename to src/assets/images/kanvas/icon-only/kanvas-icon.svg diff --git a/src/assets/images/meshmap/icon-only/meshmap-icon.webp b/src/assets/images/kanvas/icon-only/kanvas-icon.webp similarity index 100% rename from src/assets/images/meshmap/icon-only/meshmap-icon.webp rename to src/assets/images/kanvas/icon-only/kanvas-icon.webp diff --git a/src/assets/images/meshmap/meshmap-collaborate.webp b/src/assets/images/kanvas/kanvas-collaborate.webp similarity index 100% rename from src/assets/images/meshmap/meshmap-collaborate.webp rename to src/assets/images/kanvas/kanvas-collaborate.webp diff --git a/src/assets/images/meshmap/meshmap-color-horizontal.svg b/src/assets/images/kanvas/kanvas-color-horizontal.svg similarity index 100% rename from src/assets/images/meshmap/meshmap-color-horizontal.svg rename to src/assets/images/kanvas/kanvas-color-horizontal.svg diff --git a/src/assets/images/meshmap/meshmap-color-icon.svg b/src/assets/images/kanvas/kanvas-color-icon.svg similarity index 100% rename from src/assets/images/meshmap/meshmap-color-icon.svg rename to src/assets/images/kanvas/kanvas-color-icon.svg diff --git a/src/assets/images/meshmap/meshmap-color-icon.webp b/src/assets/images/kanvas/kanvas-color-icon.webp similarity index 100% rename from src/assets/images/meshmap/meshmap-color-icon.webp rename to src/assets/images/kanvas/kanvas-color-icon.webp diff --git a/src/assets/images/meshmap/meshmap-color-stacked.svg b/src/assets/images/kanvas/kanvas-color-stacked.svg similarity index 100% rename from src/assets/images/meshmap/meshmap-color-stacked.svg rename to src/assets/images/kanvas/kanvas-color-stacked.svg diff --git a/src/assets/images/meshmap/meshmap-color-stacked.webp b/src/assets/images/kanvas/kanvas-color-stacked.webp similarity index 100% rename from src/assets/images/meshmap/meshmap-color-stacked.webp rename to src/assets/images/kanvas/kanvas-color-stacked.webp diff --git a/src/assets/images/meshmap/meshmap-color-text.svg b/src/assets/images/kanvas/kanvas-color-text.svg similarity index 100% rename from src/assets/images/meshmap/meshmap-color-text.svg rename to src/assets/images/kanvas/kanvas-color-text.svg diff --git a/src/assets/images/meshmap/meshmap-color-text.webp b/src/assets/images/kanvas/kanvas-color-text.webp similarity index 100% rename from src/assets/images/meshmap/meshmap-color-text.webp rename to src/assets/images/kanvas/kanvas-color-text.webp diff --git a/src/assets/images/meshmap/meshmap-light-stacked.svg b/src/assets/images/kanvas/kanvas-light-stacked.svg similarity index 100% rename from src/assets/images/meshmap/meshmap-light-stacked.svg rename to src/assets/images/kanvas/kanvas-light-stacked.svg diff --git a/src/assets/images/meshmap/kubernetes_white.svg b/src/assets/images/kanvas/kubernetes_white.svg similarity index 100% rename from src/assets/images/meshmap/kubernetes_white.svg rename to src/assets/images/kanvas/kubernetes_white.svg diff --git a/src/assets/images/meshmap/opa.svg b/src/assets/images/kanvas/opa.svg similarity index 100% rename from src/assets/images/meshmap/opa.svg rename to src/assets/images/kanvas/opa.svg diff --git a/src/collections/integrations/wordpress-operator/index.mdx b/src/collections/integrations/wordpress-operator/index.mdx index 7a33bc2e7e7e..db6d8ca8e967 100644 --- a/src/collections/integrations/wordpress-operator/index.mdx +++ b/src/collections/integrations/wordpress-operator/index.mdx @@ -21,8 +21,8 @@ featureList: [ "Ongoing synchronization of Kubernetes configuration and changes across any number of clusters." ] workingSlides: [ - ../_images/meshmap-visualizer.png, - ../_images/meshmap-designer.png + ../_images/kanvas-visualizer.png, + ../_images/kanvas-designer.png ] howItWorks: "Collaborative Infrastructure as Design" howItWorksDetails: "Collaboratively manage infrastructure with your coworkers synchronously sharing the same designs." diff --git a/src/collections/members/_member-profile-template/index.mdx b/src/collections/members/_member-profile-template/index.mdx index fb31854ec0d6..8bfbfa25a84e 100644 --- a/src/collections/members/_member-profile-template/index.mdx +++ b/src/collections/members/_member-profile-template/index.mdx @@ -24,7 +24,7 @@ badges: # List of badges that this member carries. # - docker-extension # - meshery-catalog # - docs -# - meshmap +# - kanvas blurb: # (Currently not used) Member's tagline, if they have one (a short quip or phrase) status: # [Active | Inactive] maintainer: # [no | yes] Designates whether this member is a project maintainer or not. diff --git a/src/collections/members/aabid-sofi/index.mdx b/src/collections/members/aabid-sofi/index.mdx index 5f1f4b5ee056..dd09eb9a5273 100644 --- a/src/collections/members/aabid-sofi/index.mdx +++ b/src/collections/members/aabid-sofi/index.mdx @@ -9,7 +9,7 @@ location: Srinagar, Jammu & Kashmir, India bio: Hi, I'm Aabid Sofi, a software engineer and web developer. I specialize in creating custom software and web applications that are both functional and visually appealing, with a focus on design, security, and performance. Highly passionate about cloud native and open source . badges: - - meshmap + - kanvas status: Active published: true --- diff --git a/src/collections/members/abhishek-kumar/index.mdx b/src/collections/members/abhishek-kumar/index.mdx index 64ef6e13d085..5f64b6aa050f 100644 --- a/src/collections/members/abhishek-kumar/index.mdx +++ b/src/collections/members/abhishek-kumar/index.mdx @@ -9,7 +9,7 @@ layer5: efbdda42-67a0-4cb8-a968-4ef321eb6369 badges: - meshery - nighthawk - - meshmap + - kanvas location: New Delhi, India bio: I am an undergrad student from Delhi who loves to work on different open-source projects and their development. Thanks to all open source organisations that has groomed me with providing better knowledge and practical implementation of every problem. Have been part of open source orgs like Checkstyle Java, Codeforcause org and Layer5 Meshery that has taught me 90% I know. diff --git a/src/collections/members/akshay-sharma/index.mdx b/src/collections/members/akshay-sharma/index.mdx index b763a7e2dd4b..25dffe0e5a8a 100644 --- a/src/collections/members/akshay-sharma/index.mdx +++ b/src/collections/members/akshay-sharma/index.mdx @@ -9,7 +9,7 @@ layer5: 51f49d2c-0050-4bdb-9bce-fdddcb4742be location: West Bengal, India bio: "Hi,I like to code!" badges: - - meshmap + - kanvas status: Inactive published: true --- diff --git a/src/collections/members/gaurav-chadha/index.mdx b/src/collections/members/gaurav-chadha/index.mdx index ec0abc8e92a3..c901dfdc18c2 100644 --- a/src/collections/members/gaurav-chadha/index.mdx +++ b/src/collections/members/gaurav-chadha/index.mdx @@ -10,7 +10,7 @@ badges: - landscape - meshery - community - - meshmap + - kanvas location: Delhi, India bio: "I am an undergraduate student at IP University majoring in Computer Science and Engineering. I am passionate about open-source, web development, software engineering, and UX/UI designing. My working principle is learning and sharing knowledge. Apart from coding, I love to cook Indian and Italian food as well. Yoga and workout are also in my daily routine." status: Inactive diff --git a/src/collections/members/harkirat/index.mdx b/src/collections/members/harkirat/index.mdx index 3be1f0a6c818..3f80b16fe5b9 100644 --- a/src/collections/members/harkirat/index.mdx +++ b/src/collections/members/harkirat/index.mdx @@ -12,7 +12,7 @@ He is a FullStack Web Developer & is passionate about Open Source & DevOps. He is Open to collaborate on Projects and Believes in Learning By Doing." badges: - meshery -- meshmap +- kanvas status: Inactive published: true --- diff --git a/src/collections/members/pranav-singh/index.mdx b/src/collections/members/pranav-singh/index.mdx index f7fb54d5717a..4ef46836f517 100644 --- a/src/collections/members/pranav-singh/index.mdx +++ b/src/collections/members/pranav-singh/index.mdx @@ -15,7 +15,7 @@ badges: - meshery - meshery-operator - nighthawk - - meshmap + - kanvas status: Inactive published: true --- diff --git a/src/collections/members/senali-dilumika/index.mdx b/src/collections/members/senali-dilumika/index.mdx index 1aabf2fadfb9..327eaec4599b 100644 --- a/src/collections/members/senali-dilumika/index.mdx +++ b/src/collections/members/senali-dilumika/index.mdx @@ -10,7 +10,7 @@ location: Colombo, Sri Lanka bio: Hi, I possess a strong passion for software development. Contributing to Layer5 has been an amazing experience. Collaboration is an excellent way to learn and grow within the tech community. I'm constantly learning new things due to my curiosity and interest in exploring new things. badges: - docs - - meshmap + - kanvas - meshery-catalog status: Inactive published: true diff --git a/src/collections/members/shivam-sood/index.mdx b/src/collections/members/shivam-sood/index.mdx index 64dd50054a4f..2108b993d5c8 100644 --- a/src/collections/members/shivam-sood/index.mdx +++ b/src/collections/members/shivam-sood/index.mdx @@ -11,6 +11,6 @@ bio: "Shivam is an aspiring software engineer, currently graduating from Nationa status: Inactive published: true badges: - - meshmap + - kanvas - landscape --- diff --git a/src/collections/members/usman-siddique/index.mdx b/src/collections/members/usman-siddique/index.mdx index 4eea6a46eec2..0f9a9038788c 100644 --- a/src/collections/members/usman-siddique/index.mdx +++ b/src/collections/members/usman-siddique/index.mdx @@ -9,6 +9,6 @@ status: Inactive location: Lahore, Pakistan bio: Hello, I am a software developer who specializes in MERN stack development. I am passionate about technology and its impact on the world. My love of coding began during my student years, and I quickly became involved in the tech community, eager to learn and share my skills.Throughout my career, I have remained committed to working with the tech community, and I am particularly enthusiastic about open source software. As a result, I joined the Layer 5 community and continue to thrive here, collaborating with other developers and contributing to open source projects. badges: -- meshmap +- kanvas published: true --- diff --git a/src/collections/members/uzair-shaikh/index.mdx b/src/collections/members/uzair-shaikh/index.mdx index 6a1ba0515426..b7bf73eb939c 100644 --- a/src/collections/members/uzair-shaikh/index.mdx +++ b/src/collections/members/uzair-shaikh/index.mdx @@ -12,7 +12,7 @@ badges: - meshery - meshery-operator - nighthawk - - meshmap + - kanvas status: Active published: true --- diff --git a/src/collections/members/yash-sharma/index.mdx b/src/collections/members/yash-sharma/index.mdx index 5118581ac1ff..38a561aa0056 100644 --- a/src/collections/members/yash-sharma/index.mdx +++ b/src/collections/members/yash-sharma/index.mdx @@ -11,7 +11,7 @@ bio: "Hi there! I'm an enthusiastic technology lover who's always on the lookout badges: - meshery - meshery-catalog - - meshmap + - kanvas status: Active meshmate: yes published: true diff --git a/src/collections/resources/articles/kubernetes/getting-started-with-kubernetes/index.mdx b/src/collections/resources/articles/kubernetes/getting-started-with-kubernetes/index.mdx index 6ebe3e011bdb..eeb58a72c450 100644 --- a/src/collections/resources/articles/kubernetes/getting-started-with-kubernetes/index.mdx +++ b/src/collections/resources/articles/kubernetes/getting-started-with-kubernetes/index.mdx @@ -15,8 +15,8 @@ resource: true import { ResourcesWrapper } from "../../../Resources.style.js"; import picture1 from "./Picture1.webp"; import ClusterImg from "./multi-cluster-kubernetes-management-with-meshery.webp"; -import MeshmapDesigner from "./MeshmapDesigner.webp" -import MeshmapVisualizer from "./MeshmapVisualizer.webp" +import KanvasDesigner from "./KanvasDesigner.webp" +import KanvasVisualizer from "./KanvasVisualizer.webp" @@ -121,13 +121,13 @@ In this article, we'll talk about Kubernetes, its benefits, and the best ways fo

Kubernetes is an open-source system for automating the deployment, scaling, and management of containerized applications. Kubernetes was made by Google, and the Cloud Native Computing Foundation now takes care of it.

-

Kubernetes Cluster Visualization and Designing using MeshMap

-

MeshMap has been developed for visualizing and managing kubernetes clusters. You can learn more about MeshMap here +

Kubernetes Cluster Visualization and Designing using Kanvas

+

Kanvas has been developed for visualizing and managing kubernetes clusters. You can learn more about Kanvas here

Users can drag-and-drop your cloud native infrastructure using a palette of thousands of versioned Kubernetes components. Integrate advanced performance analysis into your pipeline.

- Kubernetes Architecture + Kubernetes Architecture

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

- Kubernetes Architecture + Kubernetes Architecture

Set Resource Requests & Limits

diff --git a/src/collections/resources/case-study/hpes-adoption-of-meshery-and-meshmap/globe.svg b/src/collections/resources/case-study/hpes-adoption-of-meshery-and-kanvas/globe.svg similarity index 100% rename from src/collections/resources/case-study/hpes-adoption-of-meshery-and-meshmap/globe.svg rename to src/collections/resources/case-study/hpes-adoption-of-meshery-and-kanvas/globe.svg diff --git a/src/collections/resources/case-study/hpes-adoption-of-meshery-and-meshmap/hpe.style.js b/src/collections/resources/case-study/hpes-adoption-of-meshery-and-kanvas/hpe.style.js similarity index 100% rename from src/collections/resources/case-study/hpes-adoption-of-meshery-and-meshmap/hpe.style.js rename to src/collections/resources/case-study/hpes-adoption-of-meshery-and-kanvas/hpe.style.js diff --git a/src/collections/resources/case-study/hpes-adoption-of-meshery-and-meshmap/index.mdx b/src/collections/resources/case-study/hpes-adoption-of-meshery-and-kanvas/index.mdx similarity index 97% rename from src/collections/resources/case-study/hpes-adoption-of-meshery-and-meshmap/index.mdx rename to src/collections/resources/case-study/hpes-adoption-of-meshery-and-kanvas/index.mdx index 60ab6241ec72..5e42bf329bc0 100644 --- a/src/collections/resources/case-study/hpes-adoption-of-meshery-and-meshmap/index.mdx +++ b/src/collections/resources/case-study/hpes-adoption-of-meshery-and-kanvas/index.mdx @@ -1,7 +1,7 @@ --- -title: HPE's Adoption of Layer5 Meshery and MeshMap +title: HPE's Adoption of Layer5 Meshery and Kanvas subtitle: HPE uses Meshery to manage SPIRE instances -permalink: case-study/hpes-adoption-of-meshery-and-meshmap +permalink: case-study/hpes-adoption-of-meshery-and-kanvas date: 2023-06-17 08:00:00 -0530 author: Layer5 Team thumbnail: ./meshery-and-hpe.svg @@ -38,7 +38,7 @@ HPE's adoption of Meshery was driven by the need to simplify Kubernetes cluster
-
diff --git a/src/collections/resources/case-study/hpes-adoption-of-meshery-and-meshmap/layers.svg b/src/collections/resources/case-study/hpes-adoption-of-meshery-and-kanvas/layers.svg similarity index 100% rename from src/collections/resources/case-study/hpes-adoption-of-meshery-and-meshmap/layers.svg rename to src/collections/resources/case-study/hpes-adoption-of-meshery-and-kanvas/layers.svg diff --git a/src/collections/resources/case-study/hpes-adoption-of-meshery-and-meshmap/meshery-and-hpe.svg b/src/collections/resources/case-study/hpes-adoption-of-meshery-and-kanvas/meshery-and-hpe.svg similarity index 100% rename from src/collections/resources/case-study/hpes-adoption-of-meshery-and-meshmap/meshery-and-hpe.svg rename to src/collections/resources/case-study/hpes-adoption-of-meshery-and-kanvas/meshery-and-hpe.svg diff --git a/src/collections/resources/case-study/hpes-adoption-of-meshery-and-meshmap/meshery-integrations.svg b/src/collections/resources/case-study/hpes-adoption-of-meshery-and-kanvas/meshery-integrations.svg similarity index 100% rename from src/collections/resources/case-study/hpes-adoption-of-meshery-and-meshmap/meshery-integrations.svg rename to src/collections/resources/case-study/hpes-adoption-of-meshery-and-kanvas/meshery-integrations.svg diff --git a/src/collections/resources/case-study/hpes-adoption-of-meshery-and-meshmap/network.svg b/src/collections/resources/case-study/hpes-adoption-of-meshery-and-kanvas/network.svg similarity index 100% rename from src/collections/resources/case-study/hpes-adoption-of-meshery-and-meshmap/network.svg rename to src/collections/resources/case-study/hpes-adoption-of-meshery-and-kanvas/network.svg diff --git a/src/collections/resources/case-study/hpes-adoption-of-meshery-and-meshmap/users.svg b/src/collections/resources/case-study/hpes-adoption-of-meshery-and-kanvas/users.svg similarity index 100% rename from src/collections/resources/case-study/hpes-adoption-of-meshery-and-meshmap/users.svg rename to src/collections/resources/case-study/hpes-adoption-of-meshery-and-kanvas/users.svg diff --git a/src/collections/resources/case-study/hpes-adoption-of-meshery-and-meshmap/yogi.webp b/src/collections/resources/case-study/hpes-adoption-of-meshery-and-kanvas/yogi.webp similarity index 100% rename from src/collections/resources/case-study/hpes-adoption-of-meshery-and-meshmap/yogi.webp rename to src/collections/resources/case-study/hpes-adoption-of-meshery-and-kanvas/yogi.webp diff --git a/src/collections/use-cases/commenting/index.mdx b/src/collections/use-cases/commenting/index.mdx index 3b4a1b6388d5..3e747fec8f64 100644 --- a/src/collections/use-cases/commenting/index.mdx +++ b/src/collections/use-cases/commenting/index.mdx @@ -1,8 +1,8 @@ --- title: Brainstorm with commenting -abstract: "MeshMap's Designer Mode offers a powerful collaboration feature through comments." +abstract: "Kanvas's Designer Mode offers a powerful collaboration feature through comments." thumbnail: ../../../assets/images/comments/comment.svg -eurl: https://layer5.io/cloud-native-management/meshmap/collaborate/peer-reviews +eurl: https://layer5.io/cloud-native-management/kanvas/collaborate/peer-reviews category: usecase status: delivered --- \ No newline at end of file diff --git a/src/collections/use-cases/whiteboarding/index.mdx b/src/collections/use-cases/whiteboarding/index.mdx index 5fc7527fca5b..368da1b3347e 100644 --- a/src/collections/use-cases/whiteboarding/index.mdx +++ b/src/collections/use-cases/whiteboarding/index.mdx @@ -1,6 +1,6 @@ --- title: Whiteboarding -abstract: "The Whiteboardingg and Freestyle Drawing feature introduces versatile drawing capabilities within MeshMap" +abstract: "The Whiteboardingg and Freestyle Drawing feature introduces versatile drawing capabilities within Kanvas" thumbnail: ../../../assets/images/whiteboard/whiteboard.svg eurl: https://layer5.io/architecture-diagram/design-architecture-diagramm category: usecase 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 b2c4f31b7f10..a0edff246470 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 @@ -1,5 +1,5 @@ import img_source from "../../../assets/images/callout/callout.webp"; -import meshmap_icon from "../../../assets/images/meshmap/meshmap-collaborate.webp"; +import kanvas_icon from "../../../assets/images/kanvas/kanvas-collaborate.webp"; import docker from "../../../assets/images/docker-extension/docker-extension-meshery-logo.svg"; export const Categories = { @@ -12,13 +12,13 @@ export const Categories = { "Link": "https://slack.layer5.io", "Link_external": true }, - "MeshMap": { - "Image": meshmap_icon, - "Image_Alt": "MeshMap", - "Heading": "Get started with MeshMap!", + "Kanvas": { + "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.", - "Button_Text": "Try MeshMap now!", - "Link": "/cloud-native-management/meshmap", + "Button_Text": "Try Kanvas now!", + "Link": "/cloud-native-management/kanvas", "Link_external": false }, "Docker": { diff --git a/src/components/Case-study-banner/index.js b/src/components/Case-study-banner/index.js index 16645981289f..4d7f6dea6e89 100644 --- a/src/components/Case-study-banner/index.js +++ b/src/components/Case-study-banner/index.js @@ -2,7 +2,7 @@ import React, { useState } from "react"; import styled from "styled-components"; import MesheryLogo from "../../assets/images/meshery/icon-only/meshery-logo-light.svg"; import SpireLogo from "../../collections/integrations/spire/icons/color/spire-color.svg"; -import MesheryAndSpire from "../../collections/resources/case-study/hpes-adoption-of-meshery-and-meshmap/meshery-and-hpe.svg"; +import MesheryAndSpire from "../../collections/resources/case-study/hpes-adoption-of-meshery-and-kanvas/meshery-and-hpe.svg"; const BannerWrapper = styled.div` @@ -208,7 +208,7 @@ const CaseStudyBanner = () => { return ( <> - +
diff --git a/src/pages/cloud-native-management/generate-aws-architecture-diagram.js b/src/pages/cloud-native-management/generate-aws-architecture-diagram.js index c7adb9fbdccb..acc5d8bcde0c 100644 --- a/src/pages/cloud-native-management/generate-aws-architecture-diagram.js +++ b/src/pages/cloud-native-management/generate-aws-architecture-diagram.js @@ -13,6 +13,6 @@ const Aws = () => { export default Aws; export const Head = () => { return ; }; \ No newline at end of file diff --git a/src/pages/cloud-native-management/generate-gcp-architecture-diagram.js b/src/pages/cloud-native-management/generate-gcp-architecture-diagram.js index 43707e7ab0b9..67b1dfbc656b 100644 --- a/src/pages/cloud-native-management/generate-gcp-architecture-diagram.js +++ b/src/pages/cloud-native-management/generate-gcp-architecture-diagram.js @@ -13,6 +13,6 @@ const Gcp = () => { export default Gcp; export const Head = () => { return ; }; \ No newline at end of file diff --git a/src/pages/cloud-native-management/generate-kubernetes-architecture-diagram.js b/src/pages/cloud-native-management/generate-kubernetes-architecture-diagram.js index 83f3fe5fc258..7826bdf3c692 100644 --- a/src/pages/cloud-native-management/generate-kubernetes-architecture-diagram.js +++ b/src/pages/cloud-native-management/generate-kubernetes-architecture-diagram.js @@ -13,6 +13,6 @@ const Kubernetes = () => { export default Kubernetes; export const Head = () => { return ; }; \ No newline at end of file diff --git a/src/pages/cloud-native-management/meshmap/collaborate/index.js b/src/pages/cloud-native-management/kanvas/collaborate/index.js similarity index 63% rename from src/pages/cloud-native-management/meshmap/collaborate/index.js rename to src/pages/cloud-native-management/kanvas/collaborate/index.js index 9b9956e02b29..3fbccacd9910 100644 --- a/src/pages/cloud-native-management/meshmap/collaborate/index.js +++ b/src/pages/cloud-native-management/kanvas/collaborate/index.js @@ -2,16 +2,16 @@ import React from "react"; import SEO from "../../../../components/seo"; -import MeshmapCollaborate from "../../../../sections/Meshmap/Meshmap-collaborate"; -const MeshmapCollaboratePage = () => { +import KanvasCollaborate from "../../../../sections/Kanvas/Kanvas-collaborate"; +const KanvasCollaboratePage = () => { return ( <> - + ); }; -export default MeshmapCollaboratePage; +export default KanvasCollaboratePage; export const Head = () => { return ; }; \ No newline at end of file diff --git a/src/pages/cloud-native-management/meshmap/collaborate/peer-reviews/index.js b/src/pages/cloud-native-management/kanvas/collaborate/peer-reviews/index.js similarity index 100% rename from src/pages/cloud-native-management/meshmap/collaborate/peer-reviews/index.js rename to src/pages/cloud-native-management/kanvas/collaborate/peer-reviews/index.js diff --git a/src/pages/cloud-native-management/kanvas/design.js b/src/pages/cloud-native-management/kanvas/design.js new file mode 100644 index 000000000000..1666b3da2d86 --- /dev/null +++ b/src/pages/cloud-native-management/kanvas/design.js @@ -0,0 +1,17 @@ +import React from "react"; + +import SEO from "../../../components/seo"; + +import KanvasDesign from "../../../sections/Kanvas/Kanvas-design/index"; +const KanvasDesignPage = () => { + return ( + <> + + + + ); +}; +export default KanvasDesignPage; +export const Head = () => { + return ; +}; \ No newline at end of file diff --git a/src/pages/cloud-native-management/kanvas/index.js b/src/pages/cloud-native-management/kanvas/index.js new file mode 100644 index 000000000000..a5f1a9619458 --- /dev/null +++ b/src/pages/cloud-native-management/kanvas/index.js @@ -0,0 +1,18 @@ +import React from "react"; + +import SEO from "../../../components/seo"; + +import Kanvas from "../../../sections/Kanvas/index"; +const KanvasPage = ({ location }) => { + const params = new URLSearchParams(location.search); + const parameter1 = params.get("teaser"); + return ( + <> + + + ); +}; +export default KanvasPage; +export const Head = () => { + return ; +}; diff --git a/src/pages/cloud-native-management/kanvas/visualize.js b/src/pages/cloud-native-management/kanvas/visualize.js new file mode 100644 index 000000000000..264d1d4e4057 --- /dev/null +++ b/src/pages/cloud-native-management/kanvas/visualize.js @@ -0,0 +1,21 @@ +import React from "react"; + +import SEO from "../../../components/seo"; + +import KanvasVisualize from "../../../sections/Kanvas/Kanvas-visualize/index"; + +const KanvasVisualizePage = () => { + + return ( + <> + + + + ); +}; +export default KanvasVisualizePage; + + +export const Head = () => { + return ; +}; \ No newline at end of file diff --git a/src/pages/cloud-native-management/meshery/operating-cloud-native-infra.js b/src/pages/cloud-native-management/meshery/operating-cloud-native-infra.js index f9e7ac706e8f..03bd606670f1 100644 --- a/src/pages/cloud-native-management/meshery/operating-cloud-native-infra.js +++ b/src/pages/cloud-native-management/meshery/operating-cloud-native-infra.js @@ -58,12 +58,12 @@ const OperatingServiceMeshes = () => { ), }, { - title: "MeshMap", + title: "Kanvas", icon: VisualTopology, description: ( diff --git a/src/pages/cloud-native-management/meshmap/design.js b/src/pages/cloud-native-management/meshmap/design.js deleted file mode 100644 index f7293b861dbb..000000000000 --- a/src/pages/cloud-native-management/meshmap/design.js +++ /dev/null @@ -1,17 +0,0 @@ -import React from "react"; - -import SEO from "../../../components/seo"; - -import MeshmapDesign from "../../../sections/Meshmap/Meshmap-design/index"; -const MeshmapDesignPage = () => { - return ( - <> - - - - ); -}; -export default MeshmapDesignPage; -export const Head = () => { - return ; -}; \ No newline at end of file diff --git a/src/pages/cloud-native-management/meshmap/index.js b/src/pages/cloud-native-management/meshmap/index.js deleted file mode 100644 index ada0be4137ac..000000000000 --- a/src/pages/cloud-native-management/meshmap/index.js +++ /dev/null @@ -1,18 +0,0 @@ -import React from "react"; - -import SEO from "../../../components/seo"; - -import Meshmap from "../../../sections/Meshmap/index"; -const MeshmapPage = ({ location }) => { - const params = new URLSearchParams(location.search); - const parameter1 = params.get("teaser"); - return ( - <> - - - ); -}; -export default MeshmapPage; -export const Head = () => { - return ; -}; diff --git a/src/pages/cloud-native-management/meshmap/visualize.js b/src/pages/cloud-native-management/meshmap/visualize.js deleted file mode 100644 index d09a87a71989..000000000000 --- a/src/pages/cloud-native-management/meshmap/visualize.js +++ /dev/null @@ -1,21 +0,0 @@ -import React from "react"; - -import SEO from "../../../components/seo"; - -import MeshmapVisualize from "../../../sections/Meshmap/Meshmap-visualize/index"; - -const MeshmapVisualizePage = () => { - - return ( - <> - - - - ); -}; -export default MeshmapVisualizePage; - - -export const Head = () => { - return ; -}; \ No newline at end of file diff --git a/src/pages/community/members.js b/src/pages/community/members.js index cec11c4c8d38..ac9b8d0882bb 100644 --- a/src/pages/community/members.js +++ b/src/pages/community/members.js @@ -26,7 +26,7 @@ import uiuxrIcon from "../../assets/images/uiuxr/uiuxr.svg"; import docsIcon from "../../assets/images/docs/docs.svg"; import dockerExtensionIcon from "../../assets/images/docker-extension/docker-extension-meshery-logo.svg"; import mesheryCatalogIcon from "../../assets/images/meshery/meshery-catalog.svg"; -import meshMapIcon from "../../assets/images/meshmap/icon-only/meshmap-icon.svg"; +import meshMapIcon from "../../assets/images/kanvas/icon-only/kanvas-icon.svg"; /** * Array containing a list of categories to be shown in the dropdown. * The map function in the end wraps the label property with a component. @@ -113,8 +113,8 @@ const options = [ className: "allOptions", }, { - label: "MeshMap", - value: "meshmap", + label: "Kanvas", + value: "kanvas", color: lighttheme.linkColor, isFixed: true, icon: meshMapIcon, diff --git a/src/pages/solutions/gitops/snapshot.js b/src/pages/solutions/gitops/snapshot.js index ad544b98b6df..37da8d92d5f5 100644 --- a/src/pages/solutions/gitops/snapshot.js +++ b/src/pages/solutions/gitops/snapshot.js @@ -7,6 +7,6 @@ export default SnapshotPage; export const Head = () => { return ; }; \ No newline at end of file diff --git a/src/sections/AWS-Diagram/diagram.js b/src/sections/AWS-Diagram/diagram.js index edd2462bafba..816bf9264dbc 100644 --- a/src/sections/AWS-Diagram/diagram.js +++ b/src/sections/AWS-Diagram/diagram.js @@ -160,7 +160,7 @@ const Aws = () => {

Deploy with No Code AWS

- Our visual AWS interface enables anyone to deploy production-grade software with no code. Whether you're new to AWS and are looking for the best way to learn or a seasoned pro, MeshMap has all the features you need to be successful in deploying and configuring your software, all with no code. + Our visual AWS interface enables anyone to deploy production-grade software with no code. Whether you're new to AWS and are looking for the best way to learn or a seasoned pro, Kanvas has all the features you need to be successful in deploying and configuring your software, all with no code.

@@ -178,9 +178,9 @@ const Aws = () => {

Visual drag & drop

- MeshMap allow you to drag, drop and connect all your cloud components together simply and easily - no-code required! + Kanvas allow you to drag, drop and connect all your cloud components together simply and easily - no-code required!

- Learn more → + Learn more → @@ -199,7 +199,7 @@ const Aws = () => {
- Designing AWS Diagrams with MeshMap + Designing AWS Diagrams with Kanvas
diff --git a/src/sections/AWS-Diagram/header.js b/src/sections/AWS-Diagram/header.js index e0a7bdf8f9db..386da8e6f387 100644 --- a/src/sections/AWS-Diagram/header.js +++ b/src/sections/AWS-Diagram/header.js @@ -123,9 +123,9 @@ const Header = () => {
diff --git a/src/sections/Blog/Blog-single/author.js b/src/sections/Blog/Blog-single/author.js index e76bad04cfda..5450b2e6537f 100644 --- a/src/sections/Blog/Blog-single/author.js +++ b/src/sections/Blog/Blog-single/author.js @@ -30,7 +30,7 @@ const AboutTheAuthor = (props) => {

Meshery

Meshery is the world's only collaborative cloud manager.

-

Share

diff --git a/src/sections/Blog/Blog-single/index.js b/src/sections/Blog/Blog-single/index.js index 387f75422f67..cfb3cd98741c 100644 --- a/src/sections/Blog/Blog-single/index.js +++ b/src/sections/Blog/Blog-single/index.js @@ -159,7 +159,7 @@ const BlogSingle = ({ data }) => {
diff --git a/src/sections/Cloud-Native-Catalog/catalog.js b/src/sections/Cloud-Native-Catalog/catalog.js index d0a37bf0bef6..bfe03d02f5b0 100644 --- a/src/sections/Cloud-Native-Catalog/catalog.js +++ b/src/sections/Cloud-Native-Catalog/catalog.js @@ -2,9 +2,9 @@ import React from "react"; import styled from "styled-components"; import Wasm from "../../assets/images/webassembly/webssembly_icon.svg"; import Patterns from "../../assets/images/service-mesh-patterns/service-mesh-pattern.svg"; -// import Ebpf from "../../assets/images/meshmap/ebpf.svg"; -// import EbpfDark from "../../assets/images/meshmap/ebpf-dark.webp"; -import Opa from "../../assets/images/meshmap/opa.svg"; +// import Ebpf from "../../assets/images/kanvas/ebpf.svg"; +// import EbpfDark from "../../assets/images/kanvas/ebpf-dark.webp"; +import Opa from "../../assets/images/kanvas/opa.svg"; import CatalogsLight from "../../assets/images/catalog/catalog-light.svg"; import CatalogsDark from "../../assets/images/catalog/catalog-dark.svg"; import { Container, Row, Col } from "../../reusecore/Layout"; diff --git a/src/sections/Cloud-Native-Catalog/patterns.js b/src/sections/Cloud-Native-Catalog/patterns.js index 8046dc48ef9f..fb7562f4896d 100644 --- a/src/sections/Cloud-Native-Catalog/patterns.js +++ b/src/sections/Cloud-Native-Catalog/patterns.js @@ -1,20 +1,20 @@ import React from "react"; import styled from "styled-components"; -import Mutual_tls from "../../assets/images/meshmap/catalog-card-images/mutual-tls.svg"; -import Retries from "../../assets/images/meshmap/catalog-card-images/retries.svg"; -import Traces from "../../assets/images/meshmap/catalog-card-images/traces.svg"; -import Denial from "../../assets/images/meshmap/catalog-card-images/denial.svg"; -import Correlate_event from "../../assets/images/meshmap/catalog-card-images/correlate-event.svg"; -import Only_wagent from "../../assets/images/meshmap/catalog-card-images/only-wagent.svg"; -import Node_agent from "../../assets/images/meshmap/catalog-card-images/node-agent.svg"; -import Single_tenant from "../../assets/images/meshmap/catalog-card-images/single-tenant.svg"; -import Pre_provison from "../../assets/images/meshmap/catalog-card-images/pre-provision.svg"; -import Circuit_breaker from "../../assets/images/meshmap/catalog-card-images/circuit-breaker.svg"; -import Retry_deadline from "../../assets/images/meshmap/catalog-card-images/retry-deadline.svg"; -import Singleton from "../../assets/images/meshmap/catalog-card-images/singleton.svg"; -import Jwt_transformer from "../../assets/images/meshmap/catalog-card-images/jwt.svg"; -import Multicluster from "../../assets/images/meshmap/catalog-card-images/multicluster.svg"; -import Http_metrics from "../../assets/images/meshmap/catalog-card-images/http.svg"; +import Mutual_tls from "../../assets/images/kanvas/catalog-card-images/mutual-tls.svg"; +import Retries from "../../assets/images/kanvas/catalog-card-images/retries.svg"; +import Traces from "../../assets/images/kanvas/catalog-card-images/traces.svg"; +import Denial from "../../assets/images/kanvas/catalog-card-images/denial.svg"; +import Correlate_event from "../../assets/images/kanvas/catalog-card-images/correlate-event.svg"; +import Only_wagent from "../../assets/images/kanvas/catalog-card-images/only-wagent.svg"; +import Node_agent from "../../assets/images/kanvas/catalog-card-images/node-agent.svg"; +import Single_tenant from "../../assets/images/kanvas/catalog-card-images/single-tenant.svg"; +import Pre_provison from "../../assets/images/kanvas/catalog-card-images/pre-provision.svg"; +import Circuit_breaker from "../../assets/images/kanvas/catalog-card-images/circuit-breaker.svg"; +import Retry_deadline from "../../assets/images/kanvas/catalog-card-images/retry-deadline.svg"; +import Singleton from "../../assets/images/kanvas/catalog-card-images/singleton.svg"; +import Jwt_transformer from "../../assets/images/kanvas/catalog-card-images/jwt.svg"; +import Multicluster from "../../assets/images/kanvas/catalog-card-images/multicluster.svg"; +import Http_metrics from "../../assets/images/kanvas/catalog-card-images/http.svg"; import { Container } from "../../reusecore/Layout"; const CatalogWrapper = styled.div` diff --git a/src/sections/CloudNativeDeployments/features.js b/src/sections/CloudNativeDeployments/features.js index 9d3077e358ab..3535fd473797 100644 --- a/src/sections/CloudNativeDeployments/features.js +++ b/src/sections/CloudNativeDeployments/features.js @@ -157,22 +157,22 @@ const Feature = () => { -

MeshMap Designer

+

Kanvas Designer

Drag-and-drop your cloud native infrastructure using a palette of thousands of versioned Kubernetes components.

- Learn more → + Learn more →

- MeshMap Visualizer + Kanvas Visualizer

Deploy designs, apply patterns, manage and operate your deployments in real-time. Bring all your Kubernetes clusters under a common point of management.

- Learn more → + Learn more →
diff --git a/src/sections/Comments/index.js b/src/sections/Comments/index.js index ebba44dd78fe..457207184e77 100644 --- a/src/sections/Comments/index.js +++ b/src/sections/Comments/index.js @@ -19,7 +19,7 @@ let data = { let card_data = [ { heading: "Dynamic collaboration", - subtitle: "Bring your ideas to life by adding visual annotations and comments directly onto your MeshMap canvas.", + subtitle: "Bring your ideas to life by adding visual annotations and comments directly onto your Kanvas canvas.", image: use_case_1 }, { diff --git a/src/sections/Community/Calendar/meetLinksData.js b/src/sections/Community/Calendar/meetLinksData.js index 4f141d7c7bad..097481bb4f49 100644 --- a/src/sections/Community/Calendar/meetLinksData.js +++ b/src/sections/Community/Calendar/meetLinksData.js @@ -19,7 +19,7 @@ export const meet_links_data = [ }, { day: "Tuesdays", - meeting: "Meshery MeshSync/MeshMap Meeting", + meeting: "Meshery MeshSync/Kanvas Meeting", slack_channel: "#meshery-ci", slack_link: "https://layer5io.slack.com/archives/C010LFFGFFA", meeting_minutes: "https://bit.ly/3aXOaAs", diff --git a/src/sections/Community/Event-single/index.js b/src/sections/Community/Event-single/index.js index 9c0e61591268..b7e0eb496fb0 100644 --- a/src/sections/Community/Event-single/index.js +++ b/src/sections/Community/Event-single/index.js @@ -95,7 +95,7 @@ const EventSingle = ({ data }) => {
{/* { Review Rockstar - awarded to individuals who provide thorough and valuable code reviews.
  • - - MeshMap Snapshot - awarded to users upon creation of their first infrastructure screenshot directly in their pull request. + + Kanvas Snapshot - awarded to users upon creation of their first infrastructure screenshot directly in their pull request.
  • @@ -175,8 +175,8 @@ const RecognitionPage = () => { Image Hub - awarded to the community members who make consistent and impactful contributions to the Image Hub project in recognition and appreciation of their efforts.
  • - - MeshMap - awarded to the community members who make consistent and impactful contributions to the MeshMap project in recognition and appreciation of their efforts. Community members who earn this badge occasionally become a project maintainer. + + Kanvas - awarded to the community members who make consistent and impactful contributions to the Kanvas project in recognition and appreciation of their efforts. Community members who earn this badge occasionally become a project maintainer.
  • diff --git a/src/sections/Community/Handbook/repo-data.js b/src/sections/Community/Handbook/repo-data.js index 65dd16a62234..76606f3403c6 100644 --- a/src/sections/Community/Handbook/repo-data.js +++ b/src/sections/Community/Handbook/repo-data.js @@ -83,9 +83,9 @@ export const repo_data = [ repository: "https://github.com/layer5io/getnighthawk", }, { - project: "MeshMap", + project: "Kanvas", image: meshery, - site: "/cloud-native-management/meshmap", + site: "/cloud-native-management/kanvas", language: "React.js, Cytoscape.js", maintainers_name: ["Aabid Sofi"], link: ["https://layer5.io/community/members/aabid-sofi"], diff --git a/src/sections/Community/Handbook/repository.js b/src/sections/Community/Handbook/repository.js index 88be857bbb42..460117f1d0b5 100644 --- a/src/sections/Community/Handbook/repository.js +++ b/src/sections/Community/Handbook/repository.js @@ -12,7 +12,7 @@ import meshery from "../../../assets/images/meshery/icon-only/meshery-logo-light import servicemeshpattern from "../../../assets/images/service-mesh-patterns/service-mesh-pattern.svg"; import TocPagination from "../../../components/handbook-navigation/TocPagination"; import IntraPage from "../../../components/handbook-navigation/intra-page"; -import MeshMap from "../../../assets/images/meshmap/icon-only/meshmap-icon.svg"; +import Kanvas from "../../../assets/images/kanvas/icon-only/kanvas-icon.svg"; import { Link } from "gatsby"; @@ -116,10 +116,10 @@ const Repository = () => { - emerging projects and Meshery extensions, like MeshMap logo MeshMap. + /> Kanvas.
  • diff --git a/src/sections/Community/Handbook/security-vulnerabilities.js b/src/sections/Community/Handbook/security-vulnerabilities.js index 012dcda3f24a..451d507b0dc2 100644 --- a/src/sections/Community/Handbook/security-vulnerabilities.js +++ b/src/sections/Community/Handbook/security-vulnerabilities.js @@ -10,7 +10,7 @@ import MeshSync from "../../../assets/images/meshsync/meshsync.svg"; import servicemeshperformance from "../../../assets/images/service-mesh-performance/icon/smp-dark.svg"; import meshery from "../../../assets/images/meshery/icon-only/meshery-logo-light.svg"; import servicemeshpattern from "../../../assets/images/service-mesh-patterns/service-mesh-pattern.svg"; -import MeshMap from "../../../assets/images/meshmap/icon-only/meshmap-icon.svg"; +import Kanvas from "../../../assets/images/kanvas/icon-only/kanvas-icon.svg"; const SecurityVulnerabilitiesPage = () => { return ( @@ -88,10 +88,10 @@ const SecurityVulnerabilitiesPage = () => {   Layer5 Labs - emerging projects and Meshery extensions, like MeshMap logoMeshMap. + />Kanvas.

    You can find the list of all the Layer5 project repositories here

    diff --git a/src/sections/Community/Handbook/writing-program.js b/src/sections/Community/Handbook/writing-program.js index 67881f8e10f5..f98d1c450f0a 100644 --- a/src/sections/Community/Handbook/writing-program.js +++ b/src/sections/Community/Handbook/writing-program.js @@ -365,7 +365,7 @@ const Writers = () => {
  • Creating and Deploying your first application with - MeshMap. + Kanvas.

  • diff --git a/src/sections/Community/Member-single/index.js b/src/sections/Community/Member-single/index.js index a9a9554c08fd..5ad5729b2ff1 100644 --- a/src/sections/Community/Member-single/index.js +++ b/src/sections/Community/Member-single/index.js @@ -22,7 +22,7 @@ import writerIcon from "../../../assets/images/writer-program/writer-program-bad import docsLogo from "../../../assets/images/docs/docs.svg"; import mesheryCatalogLogo from "../../../assets/images/meshery/meshery-catalog.svg"; import dockerExtensionLogo from "../../../assets/images/docker-extension/docker-extension-meshery-logo.svg"; -import meshMapLogo from "../../../assets/images/meshmap/icon-only/meshmap-icon.svg"; +import meshMapLogo from "../../../assets/images/kanvas/icon-only/kanvas-icon.svg"; import Button from "../../../reusecore/Button"; import { ReactComponent as TwitterIcon } from "../../../assets/images/socialIcons/twitter.svg"; @@ -192,18 +192,18 @@ const MemberSingle = ({ frontmatter }) => { )} - {badges.includes("meshmap") && ( + {badges.includes("kanvas") && (
  • - + MeshMap Logo
  • - Meshmap + Kanvas )} {badges.includes("docker-extension") && ( diff --git a/src/sections/Company/Brand/Brand-components/catalog.js b/src/sections/Company/Brand/Brand-components/catalog.js index f6811ed2fa4c..e21b35abf21b 100644 --- a/src/sections/Company/Brand/Brand-components/catalog.js +++ b/src/sections/Company/Brand/Brand-components/catalog.js @@ -60,7 +60,7 @@ const Catalog = () => { diff --git a/src/sections/Company/Brand/Brand-components/meshmap.js b/src/sections/Company/Brand/Brand-components/kanvas.js similarity index 72% rename from src/sections/Company/Brand/Brand-components/meshmap.js rename to src/sections/Company/Brand/Brand-components/kanvas.js index 53632bfb0c03..dffa790653d5 100644 --- a/src/sections/Company/Brand/Brand-components/meshmap.js +++ b/src/sections/Company/Brand/Brand-components/kanvas.js @@ -5,28 +5,28 @@ import { Row, Col } from "../../../../reusecore/Layout"; import Button from "../../../../reusecore/Button"; import ColorBox from "../../../../components/ColorBox"; import { FiDownloadCloud } from "@react-icons/all-files/fi/FiDownloadCloud"; -import MeshMapIcon from "../../../../assets/images/meshmap/meshmap-color-icon.svg"; -import MeshMap from "../../../../assets/images/meshmap/meshmap-color-horizontal.svg"; -import MeshMapTitle from "../../../../assets/images/meshmap/meshmap-color-text.webp"; +import KanvasIcon from "../../../../assets/images/kanvas/kanvas-color-icon.svg"; +import Kanvas from "../../../../assets/images/kanvas/kanvas-color-horizontal.svg"; +import KanvasTitle from "../../../../assets/images/kanvas/kanvas-color-text.webp"; -const MeshMapWrapper = styled.section` +const KanvasWrapper = styled.section` .sub-project { margin-top: -2rem; } `; -const MeshMapBrand = () => { +const KanvasBrand = () => { return ( - +

    - MeshMap + Kanvas

    - + @@ -34,7 +34,7 @@ const MeshMapBrand = () => {

    - The MeshMap mark includes the MeshMap name & logo, and any word, + The Kanvas mark includes the Kanvas name & logo, and any word, phrase, image, or other designation that identifies the source or origin of any Layer5 projects. Please don’t modify the marks or use them in a confusing way, including suggesting sponsorship or @@ -52,13 +52,13 @@ const MeshMapBrand = () => { - MeshMap Logo + Kanvas Logo - MeshMapLight Icon + KanvasLight Icon - MeshMapTitle Text + KanvasTitle Text @@ -71,8 +71,8 @@ const MeshMapBrand = () => {

    - The MeshMap color palette consists of the primary MeshMap color - and additional shades. The MeshMap logo should be white or + The Kanvas color palette consists of the primary Kanvas color + and additional shades. The Kanvas logo should be white or monochrome tonal when using a color background.

    @@ -83,8 +83,8 @@ const MeshMapBrand = () => {
    -
    + ); }; -export default MeshMapBrand; +export default KanvasBrand; diff --git a/src/sections/Company/Brand/index.js b/src/sections/Company/Brand/index.js index b260b42a0736..a6572dcd6ed5 100644 --- a/src/sections/Company/Brand/index.js +++ b/src/sections/Company/Brand/index.js @@ -16,7 +16,7 @@ const NightHawk = loadable(() => import("./Brand-components/nighthawk")); const ServiceMeshPatterns = loadable(() => import("./Brand-components/servicemeshpatterns")); const MeshMasterBrand = loadable(() => import("./Brand-components/meshmaster")); const MeshMarkBrand = loadable(() => import("./Brand-components/meshmark")); -const MeshMapBrand = loadable(() => import("./Brand-components/meshmap")); +const KanvasBrand = loadable(() => import("./Brand-components/kanvas")); const BrandGuide = loadable(() => import("./Brand-components/brand-guide")); const StickFigures = loadable(() => import("./Brand-components/stickfigures")); const Catalog = loadable(() => import("./Brand-components/catalog")); @@ -104,7 +104,7 @@ const Brand = () => { const nightHawkRef = useRef(null); const meshmateRef = useRef(null); const meshmarkRef = useRef(null); - const meshmapRef = useRef(null); + const kanvasRef = useRef(null); const stickfiguresRef = useRef(null); const CatalogRef = useRef(null); const SocialBackgroundsRef = useRef(null); @@ -121,7 +121,7 @@ const Brand = () => { { section: "NightHawk", ref: nightHawkRef }, { section: "MeshMate", ref: meshmateRef }, { section: "MeshMaster", ref: meshMasterRef }, - { section: "MeshMap", ref: meshmapRef }, + { section: "Kanvas", ref: kanvasRef }, { section: "Five", ref: stickfiguresRef }, { section: "Catalog", ref: CatalogRef }, { section: "SocialBackgrounds", ref: SocialBackgroundsRef } @@ -212,8 +212,8 @@ const Brand = () => {
    -
    - +
    +
    @@ -346,13 +346,13 @@ const Brand = () => {

    { - scrollTo(meshmapRef.current); + scrollTo(kanvasRef.current); }} > - MeshMap + Kanvas

    {

    press@layer5.io

    - +

    - MeshMap + Kanvas

    @@ -123,7 +123,7 @@ const NewsSidebar = (props) => {

    diff --git a/src/sections/Developer-Infrastructure/index.js b/src/sections/Developer-Infrastructure/index.js index f59d8a5af6d9..0347247e4fb9 100644 --- a/src/sections/Developer-Infrastructure/index.js +++ b/src/sections/Developer-Infrastructure/index.js @@ -34,7 +34,7 @@ const KubernetesMultiCluster = () => { { heading: "Inclusive collaboration from start to finish", subtitle: - "MeshMap is an end-to-end management platform, here to help teams understand problems, explore options, and build solutions—together.", + "Kanvas is an end-to-end management platform, here to help teams understand problems, explore options, and build solutions—together.", image: collaborate_svg, }, ]; diff --git a/src/sections/Docker-Meshery/docker-extension-meshery.js b/src/sections/Docker-Meshery/docker-extension-meshery.js index 237e6ab90045..34c38848a55e 100644 --- a/src/sections/Docker-Meshery/docker-extension-meshery.js +++ b/src/sections/Docker-Meshery/docker-extension-meshery.js @@ -27,7 +27,7 @@ const DockerExtensionMeshery = () => { Wrangle cloud native apps using Docker Desktop and Meshery

    - From the convenience of your Docker Desktop interface, connect Meshery with your Kubernetes cluster. Watch as MeshSync discovers all of your Kuberentes clusters. Visually design your Docker-based infrastructure. Choose from hundreds of ready-made design patterns using Meshery Catalog. Use our no-code designer, MeshMap, to collaboratively design and operate your infra. + From the convenience of your Docker Desktop interface, connect Meshery with your Kubernetes cluster. Watch as MeshSync discovers all of your Kuberentes clusters. Visually design your Docker-based infrastructure. Choose from hundreds of ready-made design patterns using Meshery Catalog. Use our no-code designer, Kanvas, to collaboratively design and operate your infra.

    @@ -58,7 +58,7 @@ const DockerExtensionMeshery = () => {
    Visual designer for cloud native applications and infrastructure
    {" "} - Using MeshMap as a visual topology for designing Docker Compose applications, operating Kubernetes, service meshes, and their workloads. + Using Kanvas as a visual topology for designing Docker Compose applications, operating Kubernetes, service meshes, and their workloads. diff --git a/src/sections/Docker-Meshery/index.js b/src/sections/Docker-Meshery/index.js index b4e1a2b3bedd..8e999159f26b 100644 --- a/src/sections/Docker-Meshery/index.js +++ b/src/sections/Docker-Meshery/index.js @@ -4,7 +4,7 @@ import { Row, Col } from "../../reusecore/Layout"; import docker from "../../assets/images/socialIcons/docker_white.svg"; import meshery from "../../assets/images/meshery/icon-only/meshery-logo-white.svg"; import DockerExtensionMeshery from "./docker-extension-meshery"; -import MeshMapCTA from "../meshmap-cta"; +import KanvasCTA from "../kanvas-cta"; const MesheryDockerPage = () => { return ( @@ -23,7 +23,7 @@ const MesheryDockerPage = () => {
    - + ); }; diff --git a/src/sections/GCP-Diagram/diagram.js b/src/sections/GCP-Diagram/diagram.js index 1917a534900a..e84703e10a10 100644 --- a/src/sections/GCP-Diagram/diagram.js +++ b/src/sections/GCP-Diagram/diagram.js @@ -151,7 +151,7 @@ const Gcp = () => {

    Deploy with No Code GCP

    - Our visual GCP interface enables anyone to deploy production-grade software with no code. Whether you're new to GCP and are looking for the best way to learn or a seasoned pro, MeshMap has all the features you need to be successful in deploying and configuring your software, all with no code. + Our visual GCP interface enables anyone to deploy production-grade software with no code. Whether you're new to GCP and are looking for the best way to learn or a seasoned pro, Kanvas has all the features you need to be successful in deploying and configuring your software, all with no code.

    @@ -169,9 +169,9 @@ const Gcp = () => {

    Visual drag & drop

    - MeshMap allow you to drag, drop and connect all your cloud components together simply and easily - no-code required! + Kanvas allow you to drag, drop and connect all your cloud components together simply and easily - no-code required!

    - Learn more → + Learn more → @@ -190,7 +190,7 @@ const Gcp = () => {
    - Designing GCP Diagrams with MeshMap + Designing GCP Diagrams with Kanvas
    @@ -219,7 +219,7 @@ const Gcp = () => { Leverage Google Cloud Platform diagrams to utilize various services in facilitating storage and analysis of large datasets. These services encompass BigQuery, Dataflow, Dataproc, and Data Fusion, contributing to cloud-based data management.

    - Learn more → + Learn more →

    @@ -240,7 +240,7 @@ const Gcp = () => {
    - Designing GCP Diagrams with MeshMap + Designing GCP Diagrams with KanvasclassName=
    */} diff --git a/src/sections/GCP-Diagram/header.js b/src/sections/GCP-Diagram/header.js index e8b9367ab087..ac9272fb6b59 100644 --- a/src/sections/GCP-Diagram/header.js +++ b/src/sections/GCP-Diagram/header.js @@ -86,9 +86,9 @@ const Header = () => {
    diff --git a/src/sections/General/Footer/index.js b/src/sections/General/Footer/index.js index fd2d9e2f0901..557a244735b6 100644 --- a/src/sections/General/Footer/index.js +++ b/src/sections/General/Footer/index.js @@ -21,7 +21,7 @@ const Footer = ({ location }) => { "/blog", "/careers", "/meshery", - "/meshmap", + "/kanvas", "/community", "/handbook", "projects", @@ -215,9 +215,9 @@ const Footer = ({ location }) => {
  • - MeshMap + Kanvas NEW
  • diff --git a/src/sections/General/Navigation/index.js b/src/sections/General/Navigation/index.js index 5e5017338c99..8da456f82949 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 meshmap_dark from "../../..//assets/images/meshmap/icon-only/meshmap-icon.svg"; +import kanvas_dark from "../../..//assets/images/kanvas/icon-only/kanvas-icon.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"; @@ -19,7 +19,7 @@ import DefaultAvatar from "./utility/DefaultAvatar.js"; import CloudIcon from "./utility/CloudIcon.js"; import LogoutIcon from "./utility/LogoutIcon.js"; // import LogoutIcon from "./utility/LogoutIcon.js"; -import MeshMapIcon from "./utility/MeshMapIcon.js"; +import KanvasIcon from "./utility/KanvasIcon.js"; const Navigation = () => { let data = useStaticQuery( graphql` @@ -158,12 +158,12 @@ const Navigation = () => { { frontmatter: { thumbnail: { - img: meshmap_dark, + img: kanvas_dark, }, - title: "MeshMap, collaborative infrastructure management", + title: "Kanvas, collaborative infrastructure management", }, fields: { - slug: "/cloud-native-management/meshmap", + slug: "/cloud-native-management/kanvas", }, }, ], @@ -414,7 +414,7 @@ const Navigation = () => { target="_blank" >
    - +
    Playground diff --git a/src/sections/General/Navigation/utility/MeshMapIcon.js b/src/sections/General/Navigation/utility/KanvasIcon.js similarity index 98% rename from src/sections/General/Navigation/utility/MeshMapIcon.js rename to src/sections/General/Navigation/utility/KanvasIcon.js index 44d02d542347..0ef5893cdc8b 100644 --- a/src/sections/General/Navigation/utility/MeshMapIcon.js +++ b/src/sections/General/Navigation/utility/KanvasIcon.js @@ -1,6 +1,6 @@ import React from "react"; -function MeshMapIcon() { +function KanvasIcon() { return ( {
    ) : ( <> - +
    @@ -121,7 +121,7 @@ const ScrollspyMenu = ({ menuItems, ...props }) => {
    -

    MeshMap

    +

    Kanvas

    Stop finger-pointing.
    Start collaborating.
    diff --git a/src/sections/General/Navigation/utility/menu-items.js b/src/sections/General/Navigation/utility/menu-items.js index edc2a3cad4d3..9e3a15cc7447 100644 --- a/src/sections/General/Navigation/utility/menu-items.js +++ b/src/sections/General/Navigation/utility/menu-items.js @@ -5,7 +5,7 @@ const Data = { menuItems: [ { name: "Solutions", - path: "/cloud-native-management/meshmap", + path: "/cloud-native-management/kanvas", subItems: [ { name: "Developer-defined Infrastructure", @@ -24,7 +24,7 @@ const Data = { }, { name: "Collaborative GitOps", - path: "/cloud-native-management/meshmap/collaborate", + path: "/cloud-native-management/kanvas/collaborate", sepLine: true }, { @@ -89,12 +89,12 @@ const Data = { sepLine: true }, { - name: "MeshMap", - path: "/cloud-native-management/meshmap", + name: "Kanvas", + path: "/cloud-native-management/kanvas", }, // { // name: "---", - // // path: "/cloud-native-management/meshmap", + // // path: "/cloud-native-management/kanvas", // }, { diff --git a/src/sections/Home/Banner-4/banner4.style.js b/src/sections/Home/Banner-4/banner4.style.js index ae734f06f3e5..38f31f0fc654 100644 --- a/src/sections/Home/Banner-4/banner4.style.js +++ b/src/sections/Home/Banner-4/banner4.style.js @@ -67,7 +67,7 @@ const Banner1SectionWrapper = styled.section` } } } - .meshmapVideo { + .kanvasVideo { position: relative; min-width:25%; max-width:100%; @@ -211,7 +211,7 @@ const Banner1SectionWrapper = styled.section` content: none; } } - .meshmapVideo { + .kanvasVideo { top: 1rem; } } diff --git a/src/sections/Home/Banner-4/index.js b/src/sections/Home/Banner-4/index.js index 0c08e50e85b8..1b72e628416b 100644 --- a/src/sections/Home/Banner-4/index.js +++ b/src/sections/Home/Banner-4/index.js @@ -7,7 +7,7 @@ import Button from "../../../reusecore/Button"; import VintageBox from "../../../reusecore/VintageBox"; import BGImg from "../../../components/BGImage"; import ReactPlayer from "react-player/youtube"; -// import mesheryPlayground from "./meshery-playground-meshmap.png"; +// import mesheryPlayground from "./meshery-playground-kanvas.png"; import videoThumbnail from "./meshery-infrastructure-as-diagram.webp"; import { FaMapMarkedAlt } from "@react-icons/all-files/fa/FaMapMarkedAlt"; @@ -16,7 +16,7 @@ import playIcon from "../../../assets/images/homePage-images/play-button.webp"; import Banner1SectionWrapper from "./banner4.style"; -// import meshmapVideo from "../../../assets/video/meshery/meshmap/meshmap-short-consul.mp4"; +// import kanvasVideo from "../../../assets/video/meshery/kanvas/kanvas-short-consul.mp4"; import { graphql, useStaticQuery } from "gatsby"; import { getImage } from "gatsby-plugin-image"; import useHasMounted from "../../../utils/useHasMounted"; @@ -68,7 +68,7 @@ const Banner1 = (props) => { -
    - +
    diff --git a/src/sections/Home/Playground-home/index.js b/src/sections/Home/Playground-home/index.js index bd2df1029335..f25686df3a52 100644 --- a/src/sections/Home/Playground-home/index.js +++ b/src/sections/Home/Playground-home/index.js @@ -204,7 +204,7 @@ const ViewsSectionWrapper = styled.div` `; -const MeshmapVisualizerViews = () => { +const KanvasVisualizerViews = () => { const [imageRef, inView] = useInView({ threshold: 0.3 }); const [imageInView, setimageInView] = useState(false); @@ -290,4 +290,4 @@ const MeshmapVisualizerViews = () => { ); }; -export default MeshmapVisualizerViews; +export default KanvasVisualizerViews; diff --git a/src/sections/Home/Projects-home/index.js b/src/sections/Home/Projects-home/index.js index 8b205218065f..623ed594cc54 100644 --- a/src/sections/Home/Projects-home/index.js +++ b/src/sections/Home/Projects-home/index.js @@ -14,7 +14,7 @@ const Projects = () => { const projectImage2_dark = "../../../assets/images/app/projects/smp.webp"; const projectImage3 = "../../../assets/images/app/projects/meshery-logo-light.webp"; const projectImage4 = "../../../assets/images/app/projects/nighthawk-logo.webp"; - const meshmapLogo = "../../../assets/images/meshmap/icon-only/meshmap-icon.svg"; + const kanvasLogo = "../../../assets/images/kanvas/icon-only/kanvas-icon.svg"; if (!didLoad){ return null; } @@ -38,10 +38,10 @@ const Projects = () => {
    - +
    - -

    MeshMap

    + +

    Kanvas

    Collaborative GitOps

    {/*

    Multiplayer Kubernetes by Design

    */}
    diff --git a/src/sections/Home/service-mesh-management/ServiceMesh.style.js b/src/sections/Home/service-mesh-management/ServiceMesh.style.js index d18d7e7c3f15..b13aa51e3518 100644 --- a/src/sections/Home/service-mesh-management/ServiceMesh.style.js +++ b/src/sections/Home/service-mesh-management/ServiceMesh.style.js @@ -152,7 +152,7 @@ const MeshSectionWrapper = styled.section` * MIT license (https://opensource.org/licenses/MIT) * W. https://svgartista.net **************************************************/ -.meshmap { +.kanvas { svg .svg-elem-1{stroke-dashoffset:168.8795166015625px;stroke-dasharray:168.8795166015625px;fill:transparent;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 2.5s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 0s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 2.5s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 0s}svg.active .svg-elem-1{stroke-dashoffset:0;fill:rgb(0,0,0)}svg .svg-elem-2{stroke-dashoffset:168.8795166015625px;stroke-dasharray:168.8795166015625px;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 2.6s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 0.09s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 2.6s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 0.09s}svg.active .svg-elem-2{stroke-dashoffset:0}svg .svg-elem-3{stroke-dashoffset:173.59739685058594px;stroke-dasharray:173.59739685058594px;fill:transparent;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 2.7s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 0.18s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 2.7s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 0.18s}svg.active .svg-elem-3{stroke-dashoffset:0;fill:rgb(0,179,159)}svg .svg-elem-4{stroke-dashoffset:173.56723022460938px;stroke-dasharray:173.56723022460938px;fill:transparent;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 2.8s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 0.27s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 2.8s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 0.27s}svg.active .svg-elem-4{stroke-dashoffset:0;fill:rgb(0,179,159)}svg .svg-elem-5{stroke-dashoffset:83.45301055908203px;stroke-dasharray:83.45301055908203px;fill:transparent;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 2.9s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 0.36s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 2.9s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 0.36s}svg.active .svg-elem-5{stroke-dashoffset:0;fill:rgb(0,0,0)}svg .svg-elem-6{stroke-dashoffset:83.45301055908203px;stroke-dasharray:83.45301055908203px;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 3s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 0.44999999999999996s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 3s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 0.44999999999999996s}svg.active .svg-elem-6{stroke-dashoffset:0}svg .svg-elem-7{stroke-dashoffset:173.4873046875px;stroke-dasharray:173.4873046875px;fill:transparent;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 3.1s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 0.54s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 3.1s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 0.54s}svg.active .svg-elem-7{stroke-dashoffset:0;fill:rgb(0,179,159)}svg .svg-elem-8{stroke-dashoffset:173.54556274414062px;stroke-dasharray:173.54556274414062px;fill:transparent;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 3.2s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 0.63s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 3.2s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 0.63s}svg.active .svg-elem-8{stroke-dashoffset:0;fill:rgb(0,179,159)}svg .svg-elem-9{stroke-dashoffset:173.59738159179688px;stroke-dasharray:173.59738159179688px;fill:transparent;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 3.3s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 0.72s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 3.3s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 0.72s}svg.active .svg-elem-9{stroke-dashoffset:0;fill:rgb(0,179,159)}svg .svg-elem-10{stroke-dashoffset:100.71990203857422px;stroke-dasharray:100.71990203857422px;fill:transparent;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 3.4s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 0.8099999999999999s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 3.4s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 0.8099999999999999s}svg.active .svg-elem-10{stroke-dashoffset:0;fill:rgb(0,0,0)}svg .svg-elem-11{stroke-dashoffset:100.71990203857422px;stroke-dasharray:100.71990203857422px;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 3.5s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 0.8999999999999999s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 3.5s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 0.8999999999999999s}svg.active .svg-elem-11{stroke-dashoffset:0}svg .svg-elem-12{stroke-dashoffset:43.39763641357422px;stroke-dasharray:43.39763641357422px;fill:transparent;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 3.6s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 0.99s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 3.6s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 0.99s}svg.active .svg-elem-12{stroke-dashoffset:0;fill:rgb(0,0,0)}svg .svg-elem-13{stroke-dashoffset:43.39763641357422px;stroke-dasharray:43.39763641357422px;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 3.7s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 1.08s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 3.7s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 1.08s}svg.active .svg-elem-13{stroke-dashoffset:0}svg .svg-elem-14{stroke-dashoffset:108.3414306640625px;stroke-dasharray:108.3414306640625px;fill:transparent;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 3.8s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 1.17s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 3.8s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 1.17s}svg.active .svg-elem-14{stroke-dashoffset:0;fill:rgb(0,0,0)}svg .svg-elem-15{stroke-dashoffset:108.3414306640625px;stroke-dasharray:108.3414306640625px;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 3.9000000000000004s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 1.26s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 3.9000000000000004s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 1.26s}svg.active .svg-elem-15{stroke-dashoffset:0}svg .svg-elem-16{stroke-dashoffset:75.88581085205078px;stroke-dasharray:75.88581085205078px;fill:transparent;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 4s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 1.3499999999999999s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 4s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 1.3499999999999999s}svg.active .svg-elem-16{stroke-dashoffset:0;fill:rgb(0,0,0)}svg .svg-elem-17{stroke-dashoffset:75.88581085205078px;stroke-dasharray:75.88581085205078px;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 4.1s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 1.44s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 4.1s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 1.44s}svg.active .svg-elem-17{stroke-dashoffset:0}svg .svg-elem-18{stroke-dashoffset:173.5455322265625px;stroke-dasharray:173.5455322265625px;fill:transparent;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 4.2s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 1.53s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 4.2s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 1.53s}svg.active .svg-elem-18{stroke-dashoffset:0;fill:rgb(0,179,159)}svg .svg-elem-19{stroke-dashoffset:173.5973358154297px;stroke-dasharray:173.5973358154297px;fill:transparent;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 4.3s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 1.6199999999999999s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 4.3s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 1.6199999999999999s}svg.active .svg-elem-19{stroke-dashoffset:0;fill:rgb(0,179,159)}svg .svg-elem-20{stroke-dashoffset:173.56723022460938px;stroke-dasharray:173.56723022460938px;fill:transparent;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 4.4s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 1.71s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 4.4s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 1.71s}svg.active .svg-elem-20{stroke-dashoffset:0;fill:rgb(0,179,159)}svg .svg-elem-21{stroke-dashoffset:75.43915557861328px;stroke-dasharray:75.43915557861328px;fill:transparent;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 4.5s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 1.7999999999999998s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 4.5s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 1.7999999999999998s}svg.active .svg-elem-21{stroke-dashoffset:0;fill:rgb(0,0,0)}svg .svg-elem-22{stroke-dashoffset:75.43915557861328px;stroke-dasharray:75.43915557861328px;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 4.6s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 1.89s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 4.6s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 1.89s}svg.active .svg-elem-22{stroke-dashoffset:0}svg .svg-elem-23{stroke-dashoffset:21.905780792236328px;stroke-dasharray:21.905780792236328px;fill:transparent;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 4.7s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 1.98s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 4.7s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 1.98s}svg.active .svg-elem-23{stroke-dashoffset:0;fill:rgb(0,0,0)}svg .svg-elem-24{stroke-dashoffset:21.905780792236328px;stroke-dasharray:21.905780792236328px;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 4.800000000000001s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 2.07s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 4.800000000000001s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 2.07s}svg.active .svg-elem-24{stroke-dashoffset:0}svg .svg-elem-25{stroke-dashoffset:15.808277130126953px;stroke-dasharray:15.808277130126953px;fill:transparent;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 4.9s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 2.16s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 4.9s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 2.16s}svg.active .svg-elem-25{stroke-dashoffset:0;fill:rgb(0,0,0)}svg .svg-elem-26{stroke-dashoffset:15.808277130126953px;stroke-dasharray:15.808277130126953px;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 5s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 2.25s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 5s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 2.25s}svg.active .svg-elem-26{stroke-dashoffset:0}svg .svg-elem-27{stroke-dashoffset:103.98786926269531px;stroke-dasharray:103.98786926269531px;fill:transparent;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 5.1s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 2.34s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 5.1s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 2.34s}svg.active .svg-elem-27{stroke-dashoffset:0;fill:rgb(0,0,0)}svg .svg-elem-28{stroke-dashoffset:103.98786926269531px;stroke-dasharray:103.98786926269531px;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 5.2s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 2.4299999999999997s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 5.2s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 2.4299999999999997s}svg.active .svg-elem-28{stroke-dashoffset:0}svg .svg-elem-29{stroke-dashoffset:173.5672149658203px;stroke-dasharray:173.5672149658203px;fill:transparent;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 5.300000000000001s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 2.52s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 5.300000000000001s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 2.52s}svg.active .svg-elem-29{stroke-dashoffset:0;fill:rgb(0,179,159)}svg .svg-elem-30{stroke-dashoffset:15.808284759521484px;stroke-dasharray:15.808284759521484px;fill:transparent;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 5.4s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 2.61s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 5.4s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 2.61s}svg.active .svg-elem-30{stroke-dashoffset:0;fill:rgb(0,0,0)}svg .svg-elem-31{stroke-dashoffset:15.808284759521484px;stroke-dasharray:15.808284759521484px;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 5.5s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 2.6999999999999997s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 5.5s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 2.6999999999999997s}svg.active .svg-elem-31{stroke-dashoffset:0}svg .svg-elem-32{stroke-dashoffset:75.43917846679688px;stroke-dasharray:75.43917846679688px;fill:transparent;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 5.6s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 2.79s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 5.6s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 2.79s}svg.active .svg-elem-32{stroke-dashoffset:0;fill:rgb(0,0,0)}svg .svg-elem-33{stroke-dashoffset:75.43917846679688px;stroke-dasharray:75.43917846679688px;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 5.7s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 2.88s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 5.7s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 2.88s}svg.active .svg-elem-33{stroke-dashoffset:0}svg .svg-elem-34{stroke-dashoffset:173.5671844482422px;stroke-dasharray:173.5671844482422px;fill:transparent;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 5.800000000000001s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 2.9699999999999998s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 5.800000000000001s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 2.9699999999999998s}svg.active .svg-elem-34{stroke-dashoffset:0;fill:rgb(0,179,159)}svg .svg-elem-35{stroke-dashoffset:173.567138671875px;stroke-dasharray:173.567138671875px;fill:transparent;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 5.9s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 3.06s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 5.9s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 3.06s}svg.active .svg-elem-35{stroke-dashoffset:0;fill:rgb(0,179,159)}svg .svg-elem-36{stroke-dashoffset:173.5671844482422px;stroke-dasharray:173.5671844482422px;fill:transparent;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 6s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 3.15s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 6s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 3.15s}svg.active .svg-elem-36{stroke-dashoffset:0;fill:rgb(0,179,159)}svg .svg-elem-37{stroke-dashoffset:75.42085266113281px;stroke-dasharray:75.42085266113281px;fill:transparent;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 6.1s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 3.2399999999999998s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 6.1s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 3.2399999999999998s}svg.active .svg-elem-37{stroke-dashoffset:0;fill:rgb(0,0,0)}svg .svg-elem-38{stroke-dashoffset:75.42085266113281px;stroke-dasharray:75.42085266113281px;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 6.2s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 3.33s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 6.2s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 3.33s}svg.active .svg-elem-38{stroke-dashoffset:0}svg .svg-elem-39{stroke-dashoffset:21.905784606933594px;stroke-dasharray:21.905784606933594px;fill:transparent;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 6.300000000000001s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 3.42s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 6.300000000000001s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 3.42s}svg.active .svg-elem-39{stroke-dashoffset:0;fill:rgb(0,0,0)}svg .svg-elem-40{stroke-dashoffset:21.905784606933594px;stroke-dasharray:21.905784606933594px;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 6.4s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 3.51s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 6.4s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 3.51s}svg.active .svg-elem-40{stroke-dashoffset:0}svg .svg-elem-41{stroke-dashoffset:15.808269500732422px;stroke-dasharray:15.808269500732422px;fill:transparent;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 6.5s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 3.5999999999999996s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 6.5s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 3.5999999999999996s}svg.active .svg-elem-41{stroke-dashoffset:0;fill:rgb(0,0,0)}svg .svg-elem-42{stroke-dashoffset:15.808269500732422px;stroke-dasharray:15.808269500732422px;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 6.6000000000000005s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 3.69s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 6.6000000000000005s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 3.69s}svg.active .svg-elem-42{stroke-dashoffset:0}svg .svg-elem-43{stroke-dashoffset:173.5672149658203px;stroke-dasharray:173.5672149658203px;fill:transparent;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 6.7s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 3.78s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 6.7s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 3.78s}svg.active .svg-elem-43{stroke-dashoffset:0;fill:rgb(0,179,159)}svg .svg-elem-44{stroke-dashoffset:15.808269500732422px;stroke-dasharray:15.808269500732422px;fill:transparent;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 6.8s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 3.8699999999999997s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 6.8s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 3.8699999999999997s}svg.active .svg-elem-44{stroke-dashoffset:0;fill:rgb(0,0,0)}svg .svg-elem-45{stroke-dashoffset:15.808269500732422px;stroke-dasharray:15.808269500732422px;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 6.9s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 3.96s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 6.9s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 3.96s}svg.active .svg-elem-45{stroke-dashoffset:0}svg .svg-elem-46{stroke-dashoffset:75.43917846679688px;stroke-dasharray:75.43917846679688px;fill:transparent;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 7s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 4.05s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 7s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 4.05s}svg.active .svg-elem-46{stroke-dashoffset:0;fill:rgb(0,0,0)}svg .svg-elem-47{stroke-dashoffset:75.43917846679688px;stroke-dasharray:75.43917846679688px;-webkit-transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 7.1000000000000005s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 4.14s;transition:stroke-dashoffset 0.9s cubic-bezier(0.6,-0.28,0.735,0.045) 7.1000000000000005s,fill 0.7s cubic-bezier(0.6,0.04,0.98,0.335) 4.14s}svg.active .svg-elem-47{stroke-dashoffset:0} } diff --git a/src/sections/Home/service-mesh-management/index.js b/src/sections/Home/service-mesh-management/index.js index 7e192f3e3faf..75f446689b91 100644 --- a/src/sections/Home/service-mesh-management/index.js +++ b/src/sections/Home/service-mesh-management/index.js @@ -6,7 +6,7 @@ import { IoIosArrowForward } from "@react-icons/all-files/io/IoIosArrowForward"; import { Link } from "gatsby"; import { StaticImage } from "gatsby-plugin-image"; -const MeshMap = "../../../assets/images/homePage-images/meshmap.webp"; +const Kanvas = "../../../assets/images/homePage-images/kanvas.webp"; const ServiceMeshManagement = () => { return ( @@ -27,7 +27,7 @@ const ServiceMeshManagement = () => { - + diff --git a/src/sections/Meshmap/FeaturesSection/Collaborate/CollaboratorFeatures.js b/src/sections/Kanvas/FeaturesSection/Collaborate/CollaboratorFeatures.js similarity index 95% rename from src/sections/Meshmap/FeaturesSection/Collaborate/CollaboratorFeatures.js rename to src/sections/Kanvas/FeaturesSection/Collaborate/CollaboratorFeatures.js index bc6c4506c7d6..04082d9634cc 100644 --- a/src/sections/Meshmap/FeaturesSection/Collaborate/CollaboratorFeatures.js +++ b/src/sections/Kanvas/FeaturesSection/Collaborate/CollaboratorFeatures.js @@ -28,7 +28,7 @@ export default function CollaboratorFeatures({ features }) {
    - +

    Collaborate

    @@ -38,7 +38,7 @@ export default function CollaboratorFeatures({ features }) {
    - +
    diff --git a/src/sections/Meshmap/FeaturesSection/Collaborate/CollaboratorFeatures.style.js b/src/sections/Kanvas/FeaturesSection/Collaborate/CollaboratorFeatures.style.js similarity index 100% rename from src/sections/Meshmap/FeaturesSection/Collaborate/CollaboratorFeatures.style.js rename to src/sections/Kanvas/FeaturesSection/Collaborate/CollaboratorFeatures.style.js diff --git a/src/sections/Meshmap/FeaturesSection/Collaborate/CollaboratorFeatures_diagram.js b/src/sections/Kanvas/FeaturesSection/Collaborate/CollaboratorFeatures_diagram.js similarity index 100% rename from src/sections/Meshmap/FeaturesSection/Collaborate/CollaboratorFeatures_diagram.js rename to src/sections/Kanvas/FeaturesSection/Collaborate/CollaboratorFeatures_diagram.js diff --git a/src/sections/Meshmap/FeaturesSection/Collaborate/images/avatar1.webp b/src/sections/Kanvas/FeaturesSection/Collaborate/images/avatar1.webp similarity index 100% rename from src/sections/Meshmap/FeaturesSection/Collaborate/images/avatar1.webp rename to src/sections/Kanvas/FeaturesSection/Collaborate/images/avatar1.webp diff --git a/src/sections/Meshmap/FeaturesSection/Collaborate/images/avatar2.webp b/src/sections/Kanvas/FeaturesSection/Collaborate/images/avatar2.webp similarity index 100% rename from src/sections/Meshmap/FeaturesSection/Collaborate/images/avatar2.webp rename to src/sections/Kanvas/FeaturesSection/Collaborate/images/avatar2.webp diff --git a/src/sections/Meshmap/FeaturesSection/Collaborate/images/avatar3.webp b/src/sections/Kanvas/FeaturesSection/Collaborate/images/avatar3.webp similarity index 100% rename from src/sections/Meshmap/FeaturesSection/Collaborate/images/avatar3.webp rename to src/sections/Kanvas/FeaturesSection/Collaborate/images/avatar3.webp diff --git a/src/sections/Meshmap/FeaturesSection/Collaborate/images/collab1-colorMode.svg b/src/sections/Kanvas/FeaturesSection/Collaborate/images/collab1-colorMode.svg similarity index 100% rename from src/sections/Meshmap/FeaturesSection/Collaborate/images/collab1-colorMode.svg rename to src/sections/Kanvas/FeaturesSection/Collaborate/images/collab1-colorMode.svg diff --git a/src/sections/Meshmap/FeaturesSection/Collaborate/images/collab1-dark.svg b/src/sections/Kanvas/FeaturesSection/Collaborate/images/collab1-dark.svg similarity index 100% rename from src/sections/Meshmap/FeaturesSection/Collaborate/images/collab1-dark.svg rename to src/sections/Kanvas/FeaturesSection/Collaborate/images/collab1-dark.svg diff --git a/src/sections/Meshmap/FeaturesSection/Collaborate/images/collab1.svg b/src/sections/Kanvas/FeaturesSection/Collaborate/images/collab1.svg similarity index 100% rename from src/sections/Meshmap/FeaturesSection/Collaborate/images/collab1.svg rename to src/sections/Kanvas/FeaturesSection/Collaborate/images/collab1.svg diff --git a/src/sections/Meshmap/FeaturesSection/Collaborate/images/collab2-colorMode.svg b/src/sections/Kanvas/FeaturesSection/Collaborate/images/collab2-colorMode.svg similarity index 100% rename from src/sections/Meshmap/FeaturesSection/Collaborate/images/collab2-colorMode.svg rename to src/sections/Kanvas/FeaturesSection/Collaborate/images/collab2-colorMode.svg diff --git a/src/sections/Meshmap/FeaturesSection/Collaborate/images/collab2-dark.svg b/src/sections/Kanvas/FeaturesSection/Collaborate/images/collab2-dark.svg similarity index 100% rename from src/sections/Meshmap/FeaturesSection/Collaborate/images/collab2-dark.svg rename to src/sections/Kanvas/FeaturesSection/Collaborate/images/collab2-dark.svg diff --git a/src/sections/Meshmap/FeaturesSection/Collaborate/images/collab2.svg b/src/sections/Kanvas/FeaturesSection/Collaborate/images/collab2.svg similarity index 100% rename from src/sections/Meshmap/FeaturesSection/Collaborate/images/collab2.svg rename to src/sections/Kanvas/FeaturesSection/Collaborate/images/collab2.svg diff --git a/src/sections/Meshmap/FeaturesSection/Collaborate/images/collab3-colorMode.svg b/src/sections/Kanvas/FeaturesSection/Collaborate/images/collab3-colorMode.svg similarity index 100% rename from src/sections/Meshmap/FeaturesSection/Collaborate/images/collab3-colorMode.svg rename to src/sections/Kanvas/FeaturesSection/Collaborate/images/collab3-colorMode.svg diff --git a/src/sections/Meshmap/FeaturesSection/Collaborate/images/collab3-dark.svg b/src/sections/Kanvas/FeaturesSection/Collaborate/images/collab3-dark.svg similarity index 100% rename from src/sections/Meshmap/FeaturesSection/Collaborate/images/collab3-dark.svg rename to src/sections/Kanvas/FeaturesSection/Collaborate/images/collab3-dark.svg diff --git a/src/sections/Meshmap/FeaturesSection/Collaborate/images/collab3.svg b/src/sections/Kanvas/FeaturesSection/Collaborate/images/collab3.svg similarity index 100% rename from src/sections/Meshmap/FeaturesSection/Collaborate/images/collab3.svg rename to src/sections/Kanvas/FeaturesSection/Collaborate/images/collab3.svg diff --git a/src/sections/Meshmap/FeaturesSection/Collaborate/images/collab4-colorMode.svg b/src/sections/Kanvas/FeaturesSection/Collaborate/images/collab4-colorMode.svg similarity index 100% rename from src/sections/Meshmap/FeaturesSection/Collaborate/images/collab4-colorMode.svg rename to src/sections/Kanvas/FeaturesSection/Collaborate/images/collab4-colorMode.svg diff --git a/src/sections/Meshmap/FeaturesSection/Collaborate/images/collab4-dark.svg b/src/sections/Kanvas/FeaturesSection/Collaborate/images/collab4-dark.svg similarity index 100% rename from src/sections/Meshmap/FeaturesSection/Collaborate/images/collab4-dark.svg rename to src/sections/Kanvas/FeaturesSection/Collaborate/images/collab4-dark.svg diff --git a/src/sections/Meshmap/FeaturesSection/Collaborate/images/collab4.svg b/src/sections/Kanvas/FeaturesSection/Collaborate/images/collab4.svg similarity index 100% rename from src/sections/Meshmap/FeaturesSection/Collaborate/images/collab4.svg rename to src/sections/Kanvas/FeaturesSection/Collaborate/images/collab4.svg diff --git a/src/sections/Meshmap/FeaturesSection/Design/DesignerFeatures.js b/src/sections/Kanvas/FeaturesSection/Design/DesignerFeatures.js similarity index 96% rename from src/sections/Meshmap/FeaturesSection/Design/DesignerFeatures.js rename to src/sections/Kanvas/FeaturesSection/Design/DesignerFeatures.js index 1c86d07d9eaa..c31540688b4f 100644 --- a/src/sections/Meshmap/FeaturesSection/Design/DesignerFeatures.js +++ b/src/sections/Kanvas/FeaturesSection/Design/DesignerFeatures.js @@ -29,7 +29,7 @@ export default function DesignerFeatures({ features }) {
    - +

    Design

    @@ -39,7 +39,7 @@ export default function DesignerFeatures({ features }) {
    - +
    diff --git a/src/sections/Meshmap/FeaturesSection/Design/DesignerFeatures.style.js b/src/sections/Kanvas/FeaturesSection/Design/DesignerFeatures.style.js similarity index 100% rename from src/sections/Meshmap/FeaturesSection/Design/DesignerFeatures.style.js rename to src/sections/Kanvas/FeaturesSection/Design/DesignerFeatures.style.js diff --git a/src/sections/Meshmap/FeaturesSection/Design/DesignerFeatures_diagram.js b/src/sections/Kanvas/FeaturesSection/Design/DesignerFeatures_diagram.js similarity index 100% rename from src/sections/Meshmap/FeaturesSection/Design/DesignerFeatures_diagram.js rename to src/sections/Kanvas/FeaturesSection/Design/DesignerFeatures_diagram.js diff --git a/src/sections/Meshmap/FeaturesSection/Design/images/role-binding-1-colorMode.svg b/src/sections/Kanvas/FeaturesSection/Design/images/role-binding-1-colorMode.svg similarity index 100% rename from src/sections/Meshmap/FeaturesSection/Design/images/role-binding-1-colorMode.svg rename to src/sections/Kanvas/FeaturesSection/Design/images/role-binding-1-colorMode.svg diff --git a/src/sections/Meshmap/FeaturesSection/Design/images/role-binding-1-dark.svg b/src/sections/Kanvas/FeaturesSection/Design/images/role-binding-1-dark.svg similarity index 100% rename from src/sections/Meshmap/FeaturesSection/Design/images/role-binding-1-dark.svg rename to src/sections/Kanvas/FeaturesSection/Design/images/role-binding-1-dark.svg diff --git a/src/sections/Meshmap/FeaturesSection/Design/images/role-binding-1.svg b/src/sections/Kanvas/FeaturesSection/Design/images/role-binding-1.svg similarity index 100% rename from src/sections/Meshmap/FeaturesSection/Design/images/role-binding-1.svg rename to src/sections/Kanvas/FeaturesSection/Design/images/role-binding-1.svg diff --git a/src/sections/Meshmap/FeaturesSection/Design/images/role-binding-2-colorMode.svg b/src/sections/Kanvas/FeaturesSection/Design/images/role-binding-2-colorMode.svg similarity index 100% rename from src/sections/Meshmap/FeaturesSection/Design/images/role-binding-2-colorMode.svg rename to src/sections/Kanvas/FeaturesSection/Design/images/role-binding-2-colorMode.svg diff --git a/src/sections/Meshmap/FeaturesSection/Design/images/role-binding-2-dark.svg b/src/sections/Kanvas/FeaturesSection/Design/images/role-binding-2-dark.svg similarity index 100% rename from src/sections/Meshmap/FeaturesSection/Design/images/role-binding-2-dark.svg rename to src/sections/Kanvas/FeaturesSection/Design/images/role-binding-2-dark.svg diff --git a/src/sections/Meshmap/FeaturesSection/Design/images/role-binding-2.svg b/src/sections/Kanvas/FeaturesSection/Design/images/role-binding-2.svg similarity index 100% rename from src/sections/Meshmap/FeaturesSection/Design/images/role-binding-2.svg rename to src/sections/Kanvas/FeaturesSection/Design/images/role-binding-2.svg diff --git a/src/sections/Meshmap/FeaturesSection/Design/images/role-binding-3-colorMode.svg b/src/sections/Kanvas/FeaturesSection/Design/images/role-binding-3-colorMode.svg similarity index 100% rename from src/sections/Meshmap/FeaturesSection/Design/images/role-binding-3-colorMode.svg rename to src/sections/Kanvas/FeaturesSection/Design/images/role-binding-3-colorMode.svg diff --git a/src/sections/Meshmap/FeaturesSection/Design/images/role-binding-3-dark.svg b/src/sections/Kanvas/FeaturesSection/Design/images/role-binding-3-dark.svg similarity index 100% rename from src/sections/Meshmap/FeaturesSection/Design/images/role-binding-3-dark.svg rename to src/sections/Kanvas/FeaturesSection/Design/images/role-binding-3-dark.svg diff --git a/src/sections/Meshmap/FeaturesSection/Design/images/role-binding-3.svg b/src/sections/Kanvas/FeaturesSection/Design/images/role-binding-3.svg similarity index 100% rename from src/sections/Meshmap/FeaturesSection/Design/images/role-binding-3.svg rename to src/sections/Kanvas/FeaturesSection/Design/images/role-binding-3.svg diff --git a/src/sections/Meshmap/FeaturesSection/Design/images/role-binding-4-colorMode.svg b/src/sections/Kanvas/FeaturesSection/Design/images/role-binding-4-colorMode.svg similarity index 100% rename from src/sections/Meshmap/FeaturesSection/Design/images/role-binding-4-colorMode.svg rename to src/sections/Kanvas/FeaturesSection/Design/images/role-binding-4-colorMode.svg diff --git a/src/sections/Meshmap/FeaturesSection/Design/images/role-binding-4-dark.svg b/src/sections/Kanvas/FeaturesSection/Design/images/role-binding-4-dark.svg similarity index 100% rename from src/sections/Meshmap/FeaturesSection/Design/images/role-binding-4-dark.svg rename to src/sections/Kanvas/FeaturesSection/Design/images/role-binding-4-dark.svg diff --git a/src/sections/Meshmap/FeaturesSection/Design/images/role-binding-4.svg b/src/sections/Kanvas/FeaturesSection/Design/images/role-binding-4.svg similarity index 100% rename from src/sections/Meshmap/FeaturesSection/Design/images/role-binding-4.svg rename to src/sections/Kanvas/FeaturesSection/Design/images/role-binding-4.svg diff --git a/src/sections/Meshmap/FeaturesSection/Visualize/VisualizerFeatures.js b/src/sections/Kanvas/FeaturesSection/Visualize/VisualizerFeatures.js similarity index 95% rename from src/sections/Meshmap/FeaturesSection/Visualize/VisualizerFeatures.js rename to src/sections/Kanvas/FeaturesSection/Visualize/VisualizerFeatures.js index f5ff5728f4c8..9fb6483251f4 100644 --- a/src/sections/Meshmap/FeaturesSection/Visualize/VisualizerFeatures.js +++ b/src/sections/Kanvas/FeaturesSection/Visualize/VisualizerFeatures.js @@ -30,7 +30,7 @@ export default function VisualizerFeatures({ features }) {
    - +

    Visualize

    @@ -40,7 +40,7 @@ export default function VisualizerFeatures({ features }) {
    - +
    diff --git a/src/sections/Meshmap/FeaturesSection/Visualize/VisualizerFeatures.style.js b/src/sections/Kanvas/FeaturesSection/Visualize/VisualizerFeatures.style.js similarity index 100% rename from src/sections/Meshmap/FeaturesSection/Visualize/VisualizerFeatures.style.js rename to src/sections/Kanvas/FeaturesSection/Visualize/VisualizerFeatures.style.js diff --git a/src/sections/Meshmap/FeaturesSection/Visualize/VisualizerFeatures_diagram.js b/src/sections/Kanvas/FeaturesSection/Visualize/VisualizerFeatures_diagram.js similarity index 100% rename from src/sections/Meshmap/FeaturesSection/Visualize/VisualizerFeatures_diagram.js rename to src/sections/Kanvas/FeaturesSection/Visualize/VisualizerFeatures_diagram.js diff --git a/src/sections/Meshmap/FeaturesSection/Visualize/images/visualize-1-colorMode.svg b/src/sections/Kanvas/FeaturesSection/Visualize/images/visualize-1-colorMode.svg similarity index 100% rename from src/sections/Meshmap/FeaturesSection/Visualize/images/visualize-1-colorMode.svg rename to src/sections/Kanvas/FeaturesSection/Visualize/images/visualize-1-colorMode.svg diff --git a/src/sections/Meshmap/FeaturesSection/Visualize/images/visualize-1-dark.svg b/src/sections/Kanvas/FeaturesSection/Visualize/images/visualize-1-dark.svg similarity index 100% rename from src/sections/Meshmap/FeaturesSection/Visualize/images/visualize-1-dark.svg rename to src/sections/Kanvas/FeaturesSection/Visualize/images/visualize-1-dark.svg diff --git a/src/sections/Meshmap/FeaturesSection/Visualize/images/visualize-1.svg b/src/sections/Kanvas/FeaturesSection/Visualize/images/visualize-1.svg similarity index 100% rename from src/sections/Meshmap/FeaturesSection/Visualize/images/visualize-1.svg rename to src/sections/Kanvas/FeaturesSection/Visualize/images/visualize-1.svg diff --git a/src/sections/Meshmap/FeaturesSection/Visualize/images/visualize-2-colorMode.svg b/src/sections/Kanvas/FeaturesSection/Visualize/images/visualize-2-colorMode.svg similarity index 100% rename from src/sections/Meshmap/FeaturesSection/Visualize/images/visualize-2-colorMode.svg rename to src/sections/Kanvas/FeaturesSection/Visualize/images/visualize-2-colorMode.svg diff --git a/src/sections/Meshmap/FeaturesSection/Visualize/images/visualize-2-dark.svg b/src/sections/Kanvas/FeaturesSection/Visualize/images/visualize-2-dark.svg similarity index 100% rename from src/sections/Meshmap/FeaturesSection/Visualize/images/visualize-2-dark.svg rename to src/sections/Kanvas/FeaturesSection/Visualize/images/visualize-2-dark.svg diff --git a/src/sections/Meshmap/FeaturesSection/Visualize/images/visualize-2.svg b/src/sections/Kanvas/FeaturesSection/Visualize/images/visualize-2.svg similarity index 100% rename from src/sections/Meshmap/FeaturesSection/Visualize/images/visualize-2.svg rename to src/sections/Kanvas/FeaturesSection/Visualize/images/visualize-2.svg diff --git a/src/sections/Meshmap/FeaturesSection/useGsapTimeline.js b/src/sections/Kanvas/FeaturesSection/useGsapTimeline.js similarity index 100% rename from src/sections/Meshmap/FeaturesSection/useGsapTimeline.js rename to src/sections/Kanvas/FeaturesSection/useGsapTimeline.js diff --git a/src/sections/Meshmap/Meshmap-collaborate/collaboration-feature-team.js b/src/sections/Kanvas/Kanvas-collaborate/collaboration-feature-team.js similarity index 100% rename from src/sections/Meshmap/Meshmap-collaborate/collaboration-feature-team.js rename to src/sections/Kanvas/Kanvas-collaborate/collaboration-feature-team.js diff --git a/src/sections/Meshmap/Meshmap-collaborate/collaboration-feature-terms.js b/src/sections/Kanvas/Kanvas-collaborate/collaboration-feature-terms.js similarity index 100% rename from src/sections/Meshmap/Meshmap-collaborate/collaboration-feature-terms.js rename to src/sections/Kanvas/Kanvas-collaborate/collaboration-feature-terms.js diff --git a/src/sections/Meshmap/Meshmap-collaborate/collaboration-feature-work.js b/src/sections/Kanvas/Kanvas-collaborate/collaboration-feature-work.js similarity index 100% rename from src/sections/Meshmap/Meshmap-collaborate/collaboration-feature-work.js rename to src/sections/Kanvas/Kanvas-collaborate/collaboration-feature-work.js diff --git a/src/sections/Meshmap/Meshmap-collaborate/images/banner-transitions/canvas.svg b/src/sections/Kanvas/Kanvas-collaborate/images/banner-transitions/canvas.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-collaborate/images/banner-transitions/canvas.svg rename to src/sections/Kanvas/Kanvas-collaborate/images/banner-transitions/canvas.svg diff --git a/src/sections/Meshmap/Meshmap-collaborate/images/banner-transitions/empty-dark.svg b/src/sections/Kanvas/Kanvas-collaborate/images/banner-transitions/empty-dark.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-collaborate/images/banner-transitions/empty-dark.svg rename to src/sections/Kanvas/Kanvas-collaborate/images/banner-transitions/empty-dark.svg diff --git a/src/sections/Meshmap/Meshmap-collaborate/images/banner-transitions/empty-light.svg b/src/sections/Kanvas/Kanvas-collaborate/images/banner-transitions/empty-light.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-collaborate/images/banner-transitions/empty-light.svg rename to src/sections/Kanvas/Kanvas-collaborate/images/banner-transitions/empty-light.svg diff --git a/src/sections/Meshmap/Meshmap-collaborate/images/banner-transitions/ingress-gateway-partial-colorMode.svg b/src/sections/Kanvas/Kanvas-collaborate/images/banner-transitions/ingress-gateway-partial-colorMode.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-collaborate/images/banner-transitions/ingress-gateway-partial-colorMode.svg rename to src/sections/Kanvas/Kanvas-collaborate/images/banner-transitions/ingress-gateway-partial-colorMode.svg diff --git a/src/sections/Meshmap/Meshmap-collaborate/images/banner-transitions/ingress-gateway-partial-dark.svg b/src/sections/Kanvas/Kanvas-collaborate/images/banner-transitions/ingress-gateway-partial-dark.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-collaborate/images/banner-transitions/ingress-gateway-partial-dark.svg rename to src/sections/Kanvas/Kanvas-collaborate/images/banner-transitions/ingress-gateway-partial-dark.svg diff --git a/src/sections/Meshmap/Meshmap-collaborate/images/banner-transitions/ingress-gateway-partial.svg b/src/sections/Kanvas/Kanvas-collaborate/images/banner-transitions/ingress-gateway-partial.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-collaborate/images/banner-transitions/ingress-gateway-partial.svg rename to src/sections/Kanvas/Kanvas-collaborate/images/banner-transitions/ingress-gateway-partial.svg diff --git a/src/sections/Meshmap/Meshmap-collaborate/images/banner-transitions/kubernetes-navbar-light.svg b/src/sections/Kanvas/Kanvas-collaborate/images/banner-transitions/kubernetes-navbar-light.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-collaborate/images/banner-transitions/kubernetes-navbar-light.svg rename to src/sections/Kanvas/Kanvas-collaborate/images/banner-transitions/kubernetes-navbar-light.svg diff --git a/src/sections/Meshmap/Meshmap-collaborate/images/banner-transitions/kubernetes-navbar.svg b/src/sections/Kanvas/Kanvas-collaborate/images/banner-transitions/kubernetes-navbar.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-collaborate/images/banner-transitions/kubernetes-navbar.svg rename to src/sections/Kanvas/Kanvas-collaborate/images/banner-transitions/kubernetes-navbar.svg diff --git a/src/sections/Meshmap/Meshmap-collaborate/images/banner-transitions/kubernetes-partial-colorMode.svg b/src/sections/Kanvas/Kanvas-collaborate/images/banner-transitions/kubernetes-partial-colorMode.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-collaborate/images/banner-transitions/kubernetes-partial-colorMode.svg rename to src/sections/Kanvas/Kanvas-collaborate/images/banner-transitions/kubernetes-partial-colorMode.svg diff --git a/src/sections/Meshmap/Meshmap-collaborate/images/banner-transitions/kubernetes-partial-dark.svg b/src/sections/Kanvas/Kanvas-collaborate/images/banner-transitions/kubernetes-partial-dark.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-collaborate/images/banner-transitions/kubernetes-partial-dark.svg rename to src/sections/Kanvas/Kanvas-collaborate/images/banner-transitions/kubernetes-partial-dark.svg diff --git a/src/sections/Meshmap/Meshmap-collaborate/images/banner-transitions/kubernetes-partial.svg b/src/sections/Kanvas/Kanvas-collaborate/images/banner-transitions/kubernetes-partial.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-collaborate/images/banner-transitions/kubernetes-partial.svg rename to src/sections/Kanvas/Kanvas-collaborate/images/banner-transitions/kubernetes-partial.svg diff --git a/src/sections/Meshmap/Meshmap-collaborate/images/banner-transitions/pod-partial-colorMode.svg b/src/sections/Kanvas/Kanvas-collaborate/images/banner-transitions/pod-partial-colorMode.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-collaborate/images/banner-transitions/pod-partial-colorMode.svg rename to src/sections/Kanvas/Kanvas-collaborate/images/banner-transitions/pod-partial-colorMode.svg diff --git a/src/sections/Meshmap/Meshmap-collaborate/images/banner-transitions/pod-partial-dark.svg b/src/sections/Kanvas/Kanvas-collaborate/images/banner-transitions/pod-partial-dark.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-collaborate/images/banner-transitions/pod-partial-dark.svg rename to src/sections/Kanvas/Kanvas-collaborate/images/banner-transitions/pod-partial-dark.svg diff --git a/src/sections/Meshmap/Meshmap-collaborate/images/banner-transitions/pod-partial.svg b/src/sections/Kanvas/Kanvas-collaborate/images/banner-transitions/pod-partial.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-collaborate/images/banner-transitions/pod-partial.svg rename to src/sections/Kanvas/Kanvas-collaborate/images/banner-transitions/pod-partial.svg diff --git a/src/sections/Meshmap/Meshmap-collaborate/images/banner-transitions/prometheus-partial-colorMode.svg b/src/sections/Kanvas/Kanvas-collaborate/images/banner-transitions/prometheus-partial-colorMode.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-collaborate/images/banner-transitions/prometheus-partial-colorMode.svg rename to src/sections/Kanvas/Kanvas-collaborate/images/banner-transitions/prometheus-partial-colorMode.svg diff --git a/src/sections/Meshmap/Meshmap-collaborate/images/banner-transitions/prometheus-partial-dark.svg b/src/sections/Kanvas/Kanvas-collaborate/images/banner-transitions/prometheus-partial-dark.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-collaborate/images/banner-transitions/prometheus-partial-dark.svg rename to src/sections/Kanvas/Kanvas-collaborate/images/banner-transitions/prometheus-partial-dark.svg diff --git a/src/sections/Meshmap/Meshmap-collaborate/images/banner-transitions/prometheus-partial.svg b/src/sections/Kanvas/Kanvas-collaborate/images/banner-transitions/prometheus-partial.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-collaborate/images/banner-transitions/prometheus-partial.svg rename to src/sections/Kanvas/Kanvas-collaborate/images/banner-transitions/prometheus-partial.svg diff --git a/src/sections/Meshmap/Meshmap-collaborate/images/banner-transitions/service-interface-partial-colorMode.svg b/src/sections/Kanvas/Kanvas-collaborate/images/banner-transitions/service-interface-partial-colorMode.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-collaborate/images/banner-transitions/service-interface-partial-colorMode.svg rename to src/sections/Kanvas/Kanvas-collaborate/images/banner-transitions/service-interface-partial-colorMode.svg diff --git a/src/sections/Meshmap/Meshmap-collaborate/images/banner-transitions/service-interface-partial-dark.svg b/src/sections/Kanvas/Kanvas-collaborate/images/banner-transitions/service-interface-partial-dark.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-collaborate/images/banner-transitions/service-interface-partial-dark.svg rename to src/sections/Kanvas/Kanvas-collaborate/images/banner-transitions/service-interface-partial-dark.svg diff --git a/src/sections/Meshmap/Meshmap-collaborate/images/banner-transitions/service-interface-partial.svg b/src/sections/Kanvas/Kanvas-collaborate/images/banner-transitions/service-interface-partial.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-collaborate/images/banner-transitions/service-interface-partial.svg rename to src/sections/Kanvas/Kanvas-collaborate/images/banner-transitions/service-interface-partial.svg diff --git a/src/sections/Meshmap/Meshmap-collaborate/images/banner-transitions/supporting-arrows.svg b/src/sections/Kanvas/Kanvas-collaborate/images/banner-transitions/supporting-arrows.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-collaborate/images/banner-transitions/supporting-arrows.svg rename to src/sections/Kanvas/Kanvas-collaborate/images/banner-transitions/supporting-arrows.svg diff --git a/src/sections/Meshmap/Meshmap-collaborate/images/world-transitions/world-1.svg b/src/sections/Kanvas/Kanvas-collaborate/images/world-transitions/world-1.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-collaborate/images/world-transitions/world-1.svg rename to src/sections/Kanvas/Kanvas-collaborate/images/world-transitions/world-1.svg diff --git a/src/sections/Meshmap/Meshmap-collaborate/images/world-transitions/world-2.svg b/src/sections/Kanvas/Kanvas-collaborate/images/world-transitions/world-2.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-collaborate/images/world-transitions/world-2.svg rename to src/sections/Kanvas/Kanvas-collaborate/images/world-transitions/world-2.svg diff --git a/src/sections/Meshmap/Meshmap-collaborate/images/world-transitions/world-3.svg b/src/sections/Kanvas/Kanvas-collaborate/images/world-transitions/world-3.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-collaborate/images/world-transitions/world-3.svg rename to src/sections/Kanvas/Kanvas-collaborate/images/world-transitions/world-3.svg diff --git a/src/sections/Meshmap/Meshmap-collaborate/images/world-transitions/world-4.svg b/src/sections/Kanvas/Kanvas-collaborate/images/world-transitions/world-4.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-collaborate/images/world-transitions/world-4.svg rename to src/sections/Kanvas/Kanvas-collaborate/images/world-transitions/world-4.svg diff --git a/src/sections/Meshmap/Meshmap-collaborate/images/world-transitions/world-5.svg b/src/sections/Kanvas/Kanvas-collaborate/images/world-transitions/world-5.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-collaborate/images/world-transitions/world-5.svg rename to src/sections/Kanvas/Kanvas-collaborate/images/world-transitions/world-5.svg diff --git a/src/sections/Meshmap/Meshmap-collaborate/images/world-transitions/world-6.svg b/src/sections/Kanvas/Kanvas-collaborate/images/world-transitions/world-6.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-collaborate/images/world-transitions/world-6.svg rename to src/sections/Kanvas/Kanvas-collaborate/images/world-transitions/world-6.svg diff --git a/src/sections/Meshmap/Meshmap-collaborate/images/world-transitions/world-7.svg b/src/sections/Kanvas/Kanvas-collaborate/images/world-transitions/world-7.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-collaborate/images/world-transitions/world-7.svg rename to src/sections/Kanvas/Kanvas-collaborate/images/world-transitions/world-7.svg diff --git a/src/sections/Meshmap/Meshmap-collaborate/images/world-transitions/world-image.svg b/src/sections/Kanvas/Kanvas-collaborate/images/world-transitions/world-image.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-collaborate/images/world-transitions/world-image.svg rename to src/sections/Kanvas/Kanvas-collaborate/images/world-transitions/world-image.svg diff --git a/src/sections/Meshmap/Meshmap-collaborate/index.js b/src/sections/Kanvas/Kanvas-collaborate/index.js similarity index 58% rename from src/sections/Meshmap/Meshmap-collaborate/index.js rename to src/sections/Kanvas/Kanvas-collaborate/index.js index 357ae4c63560..a4712bd76ca8 100644 --- a/src/sections/Meshmap/Meshmap-collaborate/index.js +++ b/src/sections/Kanvas/Kanvas-collaborate/index.js @@ -1,6 +1,6 @@ import React from "react"; -import MeshmapCollaborateWrapper from "./meshmap-collaborate.style"; -import MeshmapCollaborateBanner from "./meshmap-collaborate-banner"; +import KanvasCollaborateWrapper from "./kanvas-collaborate.style"; +import KanvasCollaborateBanner from "./kanvas-collaborate-banner"; import CollaborationFeatureTeam from "./collaboration-feature-team"; import CollaborationFeatureWork from "./collaboration-feature-work"; @@ -8,17 +8,17 @@ import SignupForm from "./../signup-form"; import Reviews from "../../Pricing/review-slider"; -const MeshmapCollaborate = () => { +const KanvasCollaborate = () => { return ( - - + + {/* */} - + ); }; -export default MeshmapCollaborate; +export default KanvasCollaborate; diff --git a/src/sections/Meshmap/Meshmap-collaborate/index.test.js b/src/sections/Kanvas/Kanvas-collaborate/index.test.js similarity index 68% rename from src/sections/Meshmap/Meshmap-collaborate/index.test.js rename to src/sections/Kanvas/Kanvas-collaborate/index.test.js index 293b1fc35124..8e8fd5cbb5ab 100644 --- a/src/sections/Meshmap/Meshmap-collaborate/index.test.js +++ b/src/sections/Kanvas/Kanvas-collaborate/index.test.js @@ -1,7 +1,7 @@ import React from 'react'; import { shallow } from 'enzyme'; -import Meshmap from './index'; +import Kanvas from './index'; it('Blog-sidebar renders without crashing', () => { - shallow(); + shallow(); }); \ No newline at end of file diff --git a/src/sections/Meshmap/Meshmap-collaborate/meshmap-collaborate-banner.js b/src/sections/Kanvas/Kanvas-collaborate/kanvas-collaborate-banner.js similarity index 98% rename from src/sections/Meshmap/Meshmap-collaborate/meshmap-collaborate-banner.js rename to src/sections/Kanvas/Kanvas-collaborate/kanvas-collaborate-banner.js index d63ad955c9c6..a71e51784596 100644 --- a/src/sections/Meshmap/Meshmap-collaborate/meshmap-collaborate-banner.js +++ b/src/sections/Kanvas/Kanvas-collaborate/kanvas-collaborate-banner.js @@ -179,7 +179,7 @@ const CollaborationBannerWrapper = styled.div` } `; -const MeshmapCollaborateBanner = () => { +const KanvasCollaborateBanner = () => { const [transitionRef, inView] = useInView({ threshold: 0.7 }); const [imageInView, setimageInView] = useState(false); if (inView && !imageInView) @@ -221,4 +221,4 @@ const MeshmapCollaborateBanner = () => { ); }; -export default MeshmapCollaborateBanner; \ No newline at end of file +export default KanvasCollaborateBanner; \ No newline at end of file diff --git a/src/sections/Meshmap/Meshmap-collaborate/meshmap-collaborate.style.js b/src/sections/Kanvas/Kanvas-collaborate/kanvas-collaborate.style.js similarity index 88% rename from src/sections/Meshmap/Meshmap-collaborate/meshmap-collaborate.style.js rename to src/sections/Kanvas/Kanvas-collaborate/kanvas-collaborate.style.js index 93bdb26334b0..2247176a8018 100644 --- a/src/sections/Meshmap/Meshmap-collaborate/meshmap-collaborate.style.js +++ b/src/sections/Kanvas/Kanvas-collaborate/kanvas-collaborate.style.js @@ -1,6 +1,6 @@ import styled from "styled-components"; -const MeshmapCollaborateWrapper = styled.div` +const KanvasCollaborateWrapper = styled.div` display: flex; flex-direction: column; @@ -39,4 +39,4 @@ const MeshmapCollaborateWrapper = styled.div` `; -export default MeshmapCollaborateWrapper; +export default KanvasCollaborateWrapper; diff --git a/src/sections/Meshmap/Meshmap-design/Meshmap-design-features/index.js b/src/sections/Kanvas/Kanvas-design/Kanvas-design-features/index.js similarity index 75% rename from src/sections/Meshmap/Meshmap-design/Meshmap-design-features/index.js rename to src/sections/Kanvas/Kanvas-design/Kanvas-design-features/index.js index 5f9fecd3ace0..923964519065 100644 --- a/src/sections/Meshmap/Meshmap-design/Meshmap-design-features/index.js +++ b/src/sections/Kanvas/Kanvas-design/Kanvas-design-features/index.js @@ -4,12 +4,12 @@ import { Container } from "../../../../reusecore/Layout"; import Features from "../../../../components/Features-carousel"; import { StaticImage } from "gatsby-plugin-image"; -const img1 = "../../../../assets/images/meshmap/MeshmapDesigner.webp"; -const img2 = "../../../../assets/images/meshmap/MeshmapDesigner.webp"; -const img3 = "../../../../assets/images/meshmap/MeshmapDesigner.webp"; -const img4 = "../../../../assets/images/meshmap/MeshmapDesigner.webp"; +const img1 = "../../../../assets/images/kanvas/KanvasDesigner.webp"; +const img2 = "../../../../assets/images/kanvas/KanvasDesigner.webp"; +const img3 = "../../../../assets/images/kanvas/KanvasDesigner.webp"; +const img4 = "../../../../assets/images/kanvas/KanvasDesigner.webp"; -const MeshmapDesignFeaturesWrapper = styled.div` +const KanvasDesignFeaturesWrapper = styled.div` margin: auto; margin-top: 12% !important; margin-bottom: 12%; @@ -33,9 +33,9 @@ const MeshmapDesignFeaturesWrapper = styled.div` } `; -const MeshmapDesignFeatures = () => { +const KanvasDesignFeatures = () => { return ( - + { title: "Design your deployments the way you want", description: "Drag-and-drop your cloud native infrastructure using a palette of thousands of versioned Kubernetes components. Say goodbye to YAML configurations.", - learnMoreLink: "/cloud-native-management/meshmap", + learnMoreLink: "/cloud-native-management/kanvas", content: , }, { title: "Manage your applications visually and intuitively", description: "Play with powerful features including context-aware designs and namespace configurations to easily manage all services.", - learnMoreLink: "/cloud-native-management/meshmap", + learnMoreLink: "/cloud-native-management/kanvas", content: ( ), @@ -59,7 +59,7 @@ const MeshmapDesignFeatures = () => { title: "Build the bridge", description: "Go from developer handoffs to ongoing conversations with a shared language between design and development.", - learnMoreLink: "/cloud-native-management/meshmap", + learnMoreLink: "/cloud-native-management/kanvas", content: ( ), @@ -71,13 +71,13 @@ const MeshmapDesignFeatures = () => { content: ( ), - learnMoreLink: "/cloud-native-management/meshmap", + learnMoreLink: "/cloud-native-management/kanvas", } ]} /> - + ); }; -export default MeshmapDesignFeatures; \ No newline at end of file +export default KanvasDesignFeatures; \ No newline at end of file diff --git a/src/sections/Meshmap/Meshmap-design/Meshmap_Mobile_swiper/MeshmapMobileSwiper.js b/src/sections/Kanvas/Kanvas-design/Kanvas_Mobile_swiper/KanvasMobileSwiper.js similarity index 86% rename from src/sections/Meshmap/Meshmap-design/Meshmap_Mobile_swiper/MeshmapMobileSwiper.js rename to src/sections/Kanvas/Kanvas-design/Kanvas_Mobile_swiper/KanvasMobileSwiper.js index 1cb1e20f7a42..a4b8f37a159d 100644 --- a/src/sections/Meshmap/Meshmap-design/Meshmap_Mobile_swiper/MeshmapMobileSwiper.js +++ b/src/sections/Kanvas/Kanvas-design/Kanvas_Mobile_swiper/KanvasMobileSwiper.js @@ -16,14 +16,14 @@ const CONTENT = [ title: "Confidently make changes to your infrastructure", img: dragDrop, description: - "MeshMap automatically catalogs and provides insight into all of your services, datastores and the connections between them, allowing teams to deeply understand application architecture.", + "Kanvas automatically catalogs and provides insight into all of your services, datastores and the connections between them, allowing teams to deeply understand application architecture.", gradient: "one", }, { title: "Understand your infrastructure with visualization and automation", img: mergeDesign, description: - "MeshMap helps your team automate infrastructure understanding from the architecture to a single PR so your team can ship, refactor and onboard to legacy or existing applications faster.", + "Kanvaselps your team automate infrastructure understanding from the architecture to a single PR so your team can ship, refactor and onboard to legacy or existing applications faster.", gradient: "two", }, { @@ -55,7 +55,7 @@ const Card = ({ title, description, img, readMoreLink }) => { ); }; -export const MeshmapMobileSwiper = () => { +export const KanvasMobileSwiper = () => { return (

    Multi user real time collaboration

    diff --git a/src/sections/Meshmap/Meshmap-design/Meshmap_Mobile_swiper/images/BlankSwiper.webp b/src/sections/Kanvas/Kanvas-design/Kanvas_Mobile_swiper/images/BlankSwiper.webp similarity index 100% rename from src/sections/Meshmap/Meshmap-design/Meshmap_Mobile_swiper/images/BlankSwiper.webp rename to src/sections/Kanvas/Kanvas-design/Kanvas_Mobile_swiper/images/BlankSwiper.webp diff --git a/src/sections/Meshmap/Meshmap-design/Meshmap_Mobile_swiper/mobile-swiper.style.js b/src/sections/Kanvas/Kanvas-design/Kanvas_Mobile_swiper/mobile-swiper.style.js similarity index 100% rename from src/sections/Meshmap/Meshmap-design/Meshmap_Mobile_swiper/mobile-swiper.style.js rename to src/sections/Kanvas/Kanvas-design/Kanvas_Mobile_swiper/mobile-swiper.style.js diff --git a/src/sections/Meshmap/Meshmap-design/cytoscape-demo.js b/src/sections/Kanvas/Kanvas-design/cytoscape-demo.js similarity index 100% rename from src/sections/Meshmap/Meshmap-design/cytoscape-demo.js rename to src/sections/Kanvas/Kanvas-design/cytoscape-demo.js diff --git a/src/sections/Meshmap/Meshmap-design/cytoscape-demo.style.js b/src/sections/Kanvas/Kanvas-design/cytoscape-demo.style.js similarity index 100% rename from src/sections/Meshmap/Meshmap-design/cytoscape-demo.style.js rename to src/sections/Kanvas/Kanvas-design/cytoscape-demo.style.js diff --git a/src/sections/Meshmap/Meshmap-design/cytoscapeCanvas.js b/src/sections/Kanvas/Kanvas-design/cytoscapeCanvas.js similarity index 100% rename from src/sections/Meshmap/Meshmap-design/cytoscapeCanvas.js rename to src/sections/Kanvas/Kanvas-design/cytoscapeCanvas.js diff --git a/src/sections/Meshmap/Meshmap-design/images/background-dots-pattern.svg b/src/sections/Kanvas/Kanvas-design/images/background-dots-pattern.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-design/images/background-dots-pattern.svg rename to src/sections/Kanvas/Kanvas-design/images/background-dots-pattern.svg diff --git a/src/sections/Meshmap/Meshmap-design/images/banner-image-colorMode.svg b/src/sections/Kanvas/Kanvas-design/images/banner-image-colorMode.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-design/images/banner-image-colorMode.svg rename to src/sections/Kanvas/Kanvas-design/images/banner-image-colorMode.svg diff --git a/src/sections/Meshmap/Meshmap-design/images/banner-image-dark.svg b/src/sections/Kanvas/Kanvas-design/images/banner-image-dark.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-design/images/banner-image-dark.svg rename to src/sections/Kanvas/Kanvas-design/images/banner-image-dark.svg diff --git a/src/sections/Meshmap/Meshmap-design/images/banner-image-light.svg b/src/sections/Kanvas/Kanvas-design/images/banner-image-light.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-design/images/banner-image-light.svg rename to src/sections/Kanvas/Kanvas-design/images/banner-image-light.svg diff --git a/src/sections/Meshmap/Meshmap-design/images/connect-components.gif b/src/sections/Kanvas/Kanvas-design/images/connect-components.gif similarity index 100% rename from src/sections/Meshmap/Meshmap-design/images/connect-components.gif rename to src/sections/Kanvas/Kanvas-design/images/connect-components.gif diff --git a/src/sections/Meshmap/Meshmap-design/images/cytoNodes.js b/src/sections/Kanvas/Kanvas-design/images/cytoNodes.js similarity index 100% rename from src/sections/Meshmap/Meshmap-design/images/cytoNodes.js rename to src/sections/Kanvas/Kanvas-design/images/cytoNodes.js diff --git a/src/sections/Meshmap/Meshmap-design/images/cytoscape-colorMode.svg b/src/sections/Kanvas/Kanvas-design/images/cytoscape-colorMode.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-design/images/cytoscape-colorMode.svg rename to src/sections/Kanvas/Kanvas-design/images/cytoscape-colorMode.svg diff --git a/src/sections/Meshmap/Meshmap-design/images/cytoscape-dark.svg b/src/sections/Kanvas/Kanvas-design/images/cytoscape-dark.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-design/images/cytoscape-dark.svg rename to src/sections/Kanvas/Kanvas-design/images/cytoscape-dark.svg diff --git a/src/sections/Meshmap/Meshmap-design/images/cytoscape-light.svg b/src/sections/Kanvas/Kanvas-design/images/cytoscape-light.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-design/images/cytoscape-light.svg rename to src/sections/Kanvas/Kanvas-design/images/cytoscape-light.svg diff --git a/src/sections/Meshmap/Meshmap-design/images/drag-drop-components.gif b/src/sections/Kanvas/Kanvas-design/images/drag-drop-components.gif similarity index 100% rename from src/sections/Meshmap/Meshmap-design/images/drag-drop-components.gif rename to src/sections/Kanvas/Kanvas-design/images/drag-drop-components.gif diff --git a/src/sections/Meshmap/Meshmap-design/images/integration-image-colorMode.svg b/src/sections/Kanvas/Kanvas-design/images/integration-image-colorMode.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-design/images/integration-image-colorMode.svg rename to src/sections/Kanvas/Kanvas-design/images/integration-image-colorMode.svg diff --git a/src/sections/Meshmap/Meshmap-design/images/meshmap-bottom-image-dark.svg b/src/sections/Kanvas/Kanvas-design/images/kanvas-bottom-image-dark.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-design/images/meshmap-bottom-image-dark.svg rename to src/sections/Kanvas/Kanvas-design/images/kanvas-bottom-image-dark.svg diff --git a/src/sections/Meshmap/Meshmap-design/images/meshmap-bottom-image-light.svg b/src/sections/Kanvas/Kanvas-design/images/kanvas-bottom-image-light.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-design/images/meshmap-bottom-image-light.svg rename to src/sections/Kanvas/Kanvas-design/images/kanvas-bottom-image-light.svg diff --git a/src/sections/Meshmap/Meshmap-design/images/meshmap-locator-dark.svg b/src/sections/Kanvas/Kanvas-design/images/kanvas-locator-dark.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-design/images/meshmap-locator-dark.svg rename to src/sections/Kanvas/Kanvas-design/images/kanvas-locator-dark.svg diff --git a/src/sections/Meshmap/Meshmap-design/images/meshmap-locator-light.svg b/src/sections/Kanvas/Kanvas-design/images/kanvas-locator-light.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-design/images/meshmap-locator-light.svg rename to src/sections/Kanvas/Kanvas-design/images/kanvas-locator-light.svg diff --git a/src/sections/Meshmap/Meshmap-design/images/merge-design.gif b/src/sections/Kanvas/Kanvas-design/images/merge-design.gif similarity index 100% rename from src/sections/Meshmap/Meshmap-design/images/merge-design.gif rename to src/sections/Kanvas/Kanvas-design/images/merge-design.gif diff --git a/src/sections/Meshmap/Meshmap-design/images/plus-sign-colorMode.svg b/src/sections/Kanvas/Kanvas-design/images/plus-sign-colorMode.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-design/images/plus-sign-colorMode.svg rename to src/sections/Kanvas/Kanvas-design/images/plus-sign-colorMode.svg diff --git a/src/sections/Meshmap/Meshmap-design/images/share-design.gif b/src/sections/Kanvas/Kanvas-design/images/share-design.gif similarity index 100% rename from src/sections/Meshmap/Meshmap-design/images/share-design.gif rename to src/sections/Kanvas/Kanvas-design/images/share-design.gif diff --git a/src/sections/Meshmap/Meshmap-design/images/underline.svg b/src/sections/Kanvas/Kanvas-design/images/underline.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-design/images/underline.svg rename to src/sections/Kanvas/Kanvas-design/images/underline.svg diff --git a/src/sections/Kanvas/Kanvas-design/index.js b/src/sections/Kanvas/Kanvas-design/index.js new file mode 100644 index 000000000000..f931646468c1 --- /dev/null +++ b/src/sections/Kanvas/Kanvas-design/index.js @@ -0,0 +1,28 @@ +import React from "react"; +import KanvasDesignWrapper from "./kanvas-design.style"; +import KanvasDesignBanner from "./kanvas-design-banner"; +import KanvasHeroSection from "./kanvas-design-hero"; +import KanvasIntegrationsSection from "./kanvas-design-integrations"; +import { KanvasMobileSwiper } from "./Kanvas_Mobile_swiper/KanvasMobileSwiper"; +import KanvasDesignFeatureCarousel from "./kanvas-design-features-carousel"; + +import SignupForm from "../signup-form"; +import Reviews from "../../Pricing/review-slider"; + + +const KanvasDesign = () => { + return ( + + + + {/* */} + + + + + + + ); +}; + +export default KanvasDesign; diff --git a/src/sections/Meshmap/Meshmap-design/index.test.js b/src/sections/Kanvas/Kanvas-design/index.test.js similarity index 68% rename from src/sections/Meshmap/Meshmap-design/index.test.js rename to src/sections/Kanvas/Kanvas-design/index.test.js index 293b1fc35124..8e8fd5cbb5ab 100644 --- a/src/sections/Meshmap/Meshmap-design/index.test.js +++ b/src/sections/Kanvas/Kanvas-design/index.test.js @@ -1,7 +1,7 @@ import React from 'react'; import { shallow } from 'enzyme'; -import Meshmap from './index'; +import Kanvas from './index'; it('Blog-sidebar renders without crashing', () => { - shallow(); + shallow(); }); \ No newline at end of file diff --git a/src/sections/Meshmap/Meshmap-design/meshmap-design-banner.js b/src/sections/Kanvas/Kanvas-design/kanvas-design-banner.js similarity index 98% rename from src/sections/Meshmap/Meshmap-design/meshmap-design-banner.js rename to src/sections/Kanvas/Kanvas-design/kanvas-design-banner.js index 57d872e593e1..7443669a818b 100644 --- a/src/sections/Meshmap/Meshmap-design/meshmap-design-banner.js +++ b/src/sections/Kanvas/Kanvas-design/kanvas-design-banner.js @@ -151,13 +151,13 @@ const DesignBannerWrapper = styled.div` } `; -const MeshmapDesignBanner = () => { +const KanvasDesignBanner = () => { return ( {/* */}
    -

    MeshMap

    +

    Kanvas

    Designer

    Drag-and-drop your cloud native infrastructure using a palette of thousands of versioned Kubernetes components. Using GitOps? Integrate visual reviews into your pipeline.

    @@ -173,4 +173,4 @@ const MeshmapDesignBanner = () => { ); }; -export default MeshmapDesignBanner; \ No newline at end of file +export default KanvasDesignBanner; \ No newline at end of file diff --git a/src/sections/Meshmap/Meshmap-design/meshmap-design-features-carousel.js b/src/sections/Kanvas/Kanvas-design/kanvas-design-features-carousel.js similarity index 90% rename from src/sections/Meshmap/Meshmap-design/meshmap-design-features-carousel.js rename to src/sections/Kanvas/Kanvas-design/kanvas-design-features-carousel.js index c075bf55952a..46c0b65e989c 100644 --- a/src/sections/Meshmap/Meshmap-design/meshmap-design-features-carousel.js +++ b/src/sections/Kanvas/Kanvas-design/kanvas-design-features-carousel.js @@ -12,13 +12,13 @@ const CONTENT = [ title: "Confidently make changes to your infrastructure", img: dragDrop, description: - "MeshMap automatically catalogs and provides insight into all of your services, datastores and the connections between them, allowing teams to deeply understand application architecture.", + "Kanvas automatically catalogs and provides insight into all of your services, datastores and the connections between them, allowing teams to deeply understand application architecture.", }, { title: "Visualize and automate infrastructure understanding", img: mergeDesign, description: - "MeshMap helps automate infrastructure understanding from the architecture to a single PR so your team can ship, refactor and onboard to legacy or existing applications faster.", + "Kanvaselps automate infrastructure understanding from the architecture to a single PR so your team can ship, refactor and onboard to legacy or existing applications faster.", }, { title: "Make working across services as easy as working across files", @@ -116,7 +116,7 @@ const DivWrapper = styled.div` } `; -export default function MeshmapDesignFeatureCarousel() { +export default function KanvasDesignFeatureCarousel() { const [cardIndices, setCardIndices] = useState([ ...Array(CONTENT.length).keys(), ]); diff --git a/src/sections/Meshmap/Meshmap-design/meshmap-design-hero.js b/src/sections/Kanvas/Kanvas-design/kanvas-design-hero.js similarity index 75% rename from src/sections/Meshmap/Meshmap-design/meshmap-design-hero.js rename to src/sections/Kanvas/Kanvas-design/kanvas-design-hero.js index e1f079bd3b08..0fbdacf50a9c 100644 --- a/src/sections/Meshmap/Meshmap-design/meshmap-design-hero.js +++ b/src/sections/Kanvas/Kanvas-design/kanvas-design-hero.js @@ -1,9 +1,9 @@ import React from "react"; import styled from "styled-components"; -import MeshmapLocatorLight from "./images/meshmap-locator-light.svg"; -import MeshmapLocatorDark from "./images/meshmap-locator-dark.svg"; -import MeshmapImageBottomLight from "./images/meshmap-bottom-image-light.svg"; -import MeshmapImageBottomDark from "./images/meshmap-bottom-image-dark.svg"; +import KanvasLocatorLight from "./images/kanvas-locator-light.svg"; +import KanvasLocatorDark from "./images/kanvas-locator-dark.svg"; +import KanvasImageBottomLight from "./images/kanvas-bottom-image-light.svg"; +import KanvasImageBottomDark from "./images/kanvas-bottom-image-dark.svg"; import { useInView } from "react-intersection-observer"; import { useState } from "react"; import { useStyledDarkMode } from "../../../theme/app/useStyledDarkMode"; @@ -75,7 +75,7 @@ const HeroSectionWrapper = styled.div` `; -const MeshmapHeroSection = () => { +const KanvasHeroSection = () => { const [locatorRef, inView] = useInView({ threshold: 0.8 }); const [imageInView, setimageInView] = useState(false); if (inView && !imageInView) @@ -89,15 +89,15 @@ const MeshmapHeroSection = () => {

    Design your infrastructure

    -

    MeshMap is the world’s only visual designer for Kubernetes and cloud native applications. Design, deploy, and manage your Kubernetes-based, cloud native deployments allowing you to speed up infrastructure configuration.

    +

    Kanvasis the world’s only visual designer for Kubernetes and cloud native applications. Design, deploy, and manage your Kubernetes-based, cloud native deployments allowing you to speed up infrastructure configuration.

    - locator - integrations + locator + integrations
    ); }; -export default MeshmapHeroSection; \ No newline at end of file +export default KanvasHeroSection; \ No newline at end of file diff --git a/src/sections/Meshmap/Meshmap-design/meshmap-design-integrations.js b/src/sections/Kanvas/Kanvas-design/kanvas-design-integrations.js similarity index 97% rename from src/sections/Meshmap/Meshmap-design/meshmap-design-integrations.js rename to src/sections/Kanvas/Kanvas-design/kanvas-design-integrations.js index 9048f5507915..197e1fd1a9c6 100644 --- a/src/sections/Meshmap/Meshmap-design/meshmap-design-integrations.js +++ b/src/sections/Kanvas/Kanvas-design/kanvas-design-integrations.js @@ -90,7 +90,7 @@ const IntegrationsSectionWrapper = styled.div` } `; -const MeshmapIntegrationsSection = () => { +const KanvasIntegrationsSection = () => { const [diagramRef, inView] = useInView({ threshold: 0.6 }); const [imageInView, setimageInView] = useState(false); @@ -155,4 +155,4 @@ const MeshmapIntegrationsSection = () => { ); }; -export default MeshmapIntegrationsSection; +export default KanvasIntegrationsSection; diff --git a/src/sections/Meshmap/Meshmap-design/meshmap-design.style.js b/src/sections/Kanvas/Kanvas-design/kanvas-design.style.js similarity index 89% rename from src/sections/Meshmap/Meshmap-design/meshmap-design.style.js rename to src/sections/Kanvas/Kanvas-design/kanvas-design.style.js index 5f869dbdb671..ff7fefc21362 100644 --- a/src/sections/Meshmap/Meshmap-design/meshmap-design.style.js +++ b/src/sections/Kanvas/Kanvas-design/kanvas-design.style.js @@ -1,6 +1,6 @@ import styled from "styled-components"; -const MeshmapDesignWrapper = styled.div` +const KanvasDesignWrapper = styled.div` display: flex; flex-direction: column; @@ -39,4 +39,4 @@ const MeshmapDesignWrapper = styled.div` `; -export default MeshmapDesignWrapper; +export default KanvasDesignWrapper; diff --git a/src/sections/Meshmap/Meshmap-visualize/images/application-import-arrows.svg b/src/sections/Kanvas/Kanvas-visualize/images/application-import-arrows.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-visualize/images/application-import-arrows.svg rename to src/sections/Kanvas/Kanvas-visualize/images/application-import-arrows.svg diff --git a/src/sections/Meshmap/Meshmap-visualize/images/application-import-boxes.svg b/src/sections/Kanvas/Kanvas-visualize/images/application-import-boxes.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-visualize/images/application-import-boxes.svg rename to src/sections/Kanvas/Kanvas-visualize/images/application-import-boxes.svg diff --git a/src/sections/Meshmap/Meshmap-visualize/images/interactive-terminal-code.svg b/src/sections/Kanvas/Kanvas-visualize/images/interactive-terminal-code.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-visualize/images/interactive-terminal-code.svg rename to src/sections/Kanvas/Kanvas-visualize/images/interactive-terminal-code.svg diff --git a/src/sections/Meshmap/Meshmap-visualize/images/interactive-terminal.svg b/src/sections/Kanvas/Kanvas-visualize/images/interactive-terminal.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-visualize/images/interactive-terminal.svg rename to src/sections/Kanvas/Kanvas-visualize/images/interactive-terminal.svg diff --git a/src/sections/Meshmap/Meshmap-visualize/images/log-stream-search.svg b/src/sections/Kanvas/Kanvas-visualize/images/log-stream-search.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-visualize/images/log-stream-search.svg rename to src/sections/Kanvas/Kanvas-visualize/images/log-stream-search.svg diff --git a/src/sections/Meshmap/Meshmap-visualize/images/log-stream.svg b/src/sections/Kanvas/Kanvas-visualize/images/log-stream.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-visualize/images/log-stream.svg rename to src/sections/Kanvas/Kanvas-visualize/images/log-stream.svg diff --git a/src/sections/Meshmap/Meshmap-visualize/images/oval-blur-shape.svg b/src/sections/Kanvas/Kanvas-visualize/images/oval-blur-shape.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-visualize/images/oval-blur-shape.svg rename to src/sections/Kanvas/Kanvas-visualize/images/oval-blur-shape.svg diff --git a/src/sections/Meshmap/Meshmap-visualize/images/performance-metrics-bars.svg b/src/sections/Kanvas/Kanvas-visualize/images/performance-metrics-bars.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-visualize/images/performance-metrics-bars.svg rename to src/sections/Kanvas/Kanvas-visualize/images/performance-metrics-bars.svg diff --git a/src/sections/Meshmap/Meshmap-visualize/images/performance-metrics-graph.svg b/src/sections/Kanvas/Kanvas-visualize/images/performance-metrics-graph.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-visualize/images/performance-metrics-graph.svg rename to src/sections/Kanvas/Kanvas-visualize/images/performance-metrics-graph.svg diff --git a/src/sections/Meshmap/Meshmap-visualize/images/service-performance-gear-dark.svg b/src/sections/Kanvas/Kanvas-visualize/images/service-performance-gear-dark.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-visualize/images/service-performance-gear-dark.svg rename to src/sections/Kanvas/Kanvas-visualize/images/service-performance-gear-dark.svg diff --git a/src/sections/Meshmap/Meshmap-visualize/images/service-performance-gear-light.svg b/src/sections/Kanvas/Kanvas-visualize/images/service-performance-gear-light.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-visualize/images/service-performance-gear-light.svg rename to src/sections/Kanvas/Kanvas-visualize/images/service-performance-gear-light.svg diff --git a/src/sections/Meshmap/Meshmap-visualize/images/service-performance-meter-colorMode.svg b/src/sections/Kanvas/Kanvas-visualize/images/service-performance-meter-colorMode.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-visualize/images/service-performance-meter-colorMode.svg rename to src/sections/Kanvas/Kanvas-visualize/images/service-performance-meter-colorMode.svg diff --git a/src/sections/Meshmap/Meshmap-visualize/images/service-performance-meter-dark.svg b/src/sections/Kanvas/Kanvas-visualize/images/service-performance-meter-dark.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-visualize/images/service-performance-meter-dark.svg rename to src/sections/Kanvas/Kanvas-visualize/images/service-performance-meter-dark.svg diff --git a/src/sections/Meshmap/Meshmap-visualize/images/service-performance-meter-light.svg b/src/sections/Kanvas/Kanvas-visualize/images/service-performance-meter-light.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-visualize/images/service-performance-meter-light.svg rename to src/sections/Kanvas/Kanvas-visualize/images/service-performance-meter-light.svg diff --git a/src/sections/Meshmap/Meshmap-visualize/images/timeline-dvr-clock.svg b/src/sections/Kanvas/Kanvas-visualize/images/timeline-dvr-clock.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-visualize/images/timeline-dvr-clock.svg rename to src/sections/Kanvas/Kanvas-visualize/images/timeline-dvr-clock.svg diff --git a/src/sections/Meshmap/Meshmap-visualize/images/timeline-dvr.svg b/src/sections/Kanvas/Kanvas-visualize/images/timeline-dvr.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-visualize/images/timeline-dvr.svg rename to src/sections/Kanvas/Kanvas-visualize/images/timeline-dvr.svg diff --git a/src/sections/Meshmap/Meshmap-visualize/images/visualizer-views-colorMode.svg b/src/sections/Kanvas/Kanvas-visualize/images/visualizer-views-colorMode.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-visualize/images/visualizer-views-colorMode.svg rename to src/sections/Kanvas/Kanvas-visualize/images/visualizer-views-colorMode.svg diff --git a/src/sections/Meshmap/Meshmap-visualize/images/visualizer-views-dark.svg b/src/sections/Kanvas/Kanvas-visualize/images/visualizer-views-dark.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-visualize/images/visualizer-views-dark.svg rename to src/sections/Kanvas/Kanvas-visualize/images/visualizer-views-dark.svg diff --git a/src/sections/Meshmap/Meshmap-visualize/images/visualizer-views-light.svg b/src/sections/Kanvas/Kanvas-visualize/images/visualizer-views-light.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-visualize/images/visualizer-views-light.svg rename to src/sections/Kanvas/Kanvas-visualize/images/visualizer-views-light.svg diff --git a/src/sections/Meshmap/Meshmap-visualize/images/visualizer-views-lines.svg b/src/sections/Kanvas/Kanvas-visualize/images/visualizer-views-lines.svg similarity index 100% rename from src/sections/Meshmap/Meshmap-visualize/images/visualizer-views-lines.svg rename to src/sections/Kanvas/Kanvas-visualize/images/visualizer-views-lines.svg diff --git a/src/sections/Kanvas/Kanvas-visualize/index.js b/src/sections/Kanvas/Kanvas-visualize/index.js new file mode 100644 index 000000000000..ba6558c8bef6 --- /dev/null +++ b/src/sections/Kanvas/Kanvas-visualize/index.js @@ -0,0 +1,29 @@ +import React from "react"; +import KanvasVisualizeWrapper from "./kanvas-visualize.style"; +import KanvasVisualizeBanner from "./kanvas-visualize-banner"; +import KanvasVisualizerFeatures from "./kanvas-visualize-features"; +import KanvasVisualizerViews from "./kanvas-visualize-views"; +import BackgroundImage from "./images/oval-blur-shape.svg"; +import SignupForm from "../signup-form"; +import Reviews from "../../Pricing/review-slider"; +import { useRef } from "react"; + +const KanvasVisualize = () => { + const targetRef = useRef(null); + return ( + +
    + +
    + + + + {/* */} + {/* */} + + +
    + ); +}; + +export default KanvasVisualize; diff --git a/src/sections/Meshmap/Meshmap-visualize/index.test.js b/src/sections/Kanvas/Kanvas-visualize/index.test.js similarity index 68% rename from src/sections/Meshmap/Meshmap-visualize/index.test.js rename to src/sections/Kanvas/Kanvas-visualize/index.test.js index 293b1fc35124..8e8fd5cbb5ab 100644 --- a/src/sections/Meshmap/Meshmap-visualize/index.test.js +++ b/src/sections/Kanvas/Kanvas-visualize/index.test.js @@ -1,7 +1,7 @@ import React from 'react'; import { shallow } from 'enzyme'; -import Meshmap from './index'; +import Kanvas from './index'; it('Blog-sidebar renders without crashing', () => { - shallow(); + shallow(); }); \ No newline at end of file diff --git a/src/sections/Meshmap/Meshmap-visualize/meshmap-visualize-banner.js b/src/sections/Kanvas/Kanvas-visualize/kanvas-visualize-banner.js similarity index 94% rename from src/sections/Meshmap/Meshmap-visualize/meshmap-visualize-banner.js rename to src/sections/Kanvas/Kanvas-visualize/kanvas-visualize-banner.js index f74f079ebc6e..76501fcec653 100644 --- a/src/sections/Meshmap/Meshmap-visualize/meshmap-visualize-banner.js +++ b/src/sections/Kanvas/Kanvas-visualize/kanvas-visualize-banner.js @@ -83,7 +83,7 @@ const VisualizeBannerWrapper = styled.div` } `; -const MeshmapVisualizeBanner = ({ targetRef }) => { +const KanvasisualizeBanner = ({ targetRef }) => { const handleClick = () => { const offset = 100; const targetPos = targetRef.current.getBoundingClientRect().top + window.pageYOffset; @@ -99,7 +99,7 @@ const MeshmapVisualizeBanner = ({ targetRef }) => {

    Visualize your infrastructure

    See your designs in action. Operate with best practices.

    -
    {/*
    @@ -109,4 +109,4 @@ const MeshmapVisualizeBanner = ({ targetRef }) => { ); }; -export default MeshmapVisualizeBanner; \ No newline at end of file +export default KanvasisualizeBanner; \ No newline at end of file diff --git a/src/sections/Meshmap/Meshmap-visualize/meshmap-visualize-features.js b/src/sections/Kanvas/Kanvas-visualize/kanvas-visualize-features.js similarity index 99% rename from src/sections/Meshmap/Meshmap-visualize/meshmap-visualize-features.js rename to src/sections/Kanvas/Kanvas-visualize/kanvas-visualize-features.js index 246c194eeb16..300ac8ab6618 100644 --- a/src/sections/Meshmap/Meshmap-visualize/meshmap-visualize-features.js +++ b/src/sections/Kanvas/Kanvas-visualize/kanvas-visualize-features.js @@ -122,7 +122,7 @@ z-index: 10; } `; -const MeshmapVisualizerFeatures = () => { +const KanvasisualizerFeatures = () => { const [isHovered, setisHovered] = useState(false); const [hoveredFeature, sethoveredFeature] = useState(""); @@ -211,4 +211,4 @@ const MeshmapVisualizerFeatures = () => { ); }; -export default MeshmapVisualizerFeatures; \ No newline at end of file +export default KanvasisualizerFeatures; \ No newline at end of file diff --git a/src/sections/Meshmap/Meshmap-visualize/meshmap-visualize-views.js b/src/sections/Kanvas/Kanvas-visualize/kanvas-visualize-views.js similarity index 97% rename from src/sections/Meshmap/Meshmap-visualize/meshmap-visualize-views.js rename to src/sections/Kanvas/Kanvas-visualize/kanvas-visualize-views.js index 0c0671f7f8e1..f9d52995298e 100644 --- a/src/sections/Meshmap/Meshmap-visualize/meshmap-visualize-views.js +++ b/src/sections/Kanvas/Kanvas-visualize/kanvas-visualize-views.js @@ -112,7 +112,7 @@ const ViewsSectionWrapper = styled.div` `; -const MeshmapVisualizerViews = () => { +const KanvasVisualizerViews = () => { const [imageRef, inView] = useInView({ threshold: 0.4 }); const [imageInView, setimageInView] = useState(false); @@ -138,4 +138,4 @@ const MeshmapVisualizerViews = () => { ); }; -export default MeshmapVisualizerViews; \ No newline at end of file +export default KanvasVisualizerViews; \ No newline at end of file diff --git a/src/sections/Meshmap/Meshmap-visualize/meshmap-visualize.style.js b/src/sections/Kanvas/Kanvas-visualize/kanvas-visualize.style.js similarity index 90% rename from src/sections/Meshmap/Meshmap-visualize/meshmap-visualize.style.js rename to src/sections/Kanvas/Kanvas-visualize/kanvas-visualize.style.js index f755d0088693..86a4b7a5830f 100644 --- a/src/sections/Meshmap/Meshmap-visualize/meshmap-visualize.style.js +++ b/src/sections/Kanvas/Kanvas-visualize/kanvas-visualize.style.js @@ -1,6 +1,6 @@ import styled from "styled-components"; -const MeshmapVisualizeWrapper = styled.div` +const KanvasVisualizeWrapper = styled.div` display: flex; flex-direction: column; @@ -47,4 +47,4 @@ const MeshmapVisualizeWrapper = styled.div` `; -export default MeshmapVisualizeWrapper; +export default KanvasVisualizeWrapper; diff --git a/src/sections/Meshmap/diagram/diagram.style.js b/src/sections/Kanvas/diagram/diagram.style.js similarity index 100% rename from src/sections/Meshmap/diagram/diagram.style.js rename to src/sections/Kanvas/diagram/diagram.style.js diff --git a/src/sections/Meshmap/features/features.style.js b/src/sections/Kanvas/features/features.style.js similarity index 100% rename from src/sections/Meshmap/features/features.style.js rename to src/sections/Kanvas/features/features.style.js diff --git a/src/sections/Meshmap/features/index.js b/src/sections/Kanvas/features/index.js similarity index 100% rename from src/sections/Meshmap/features/index.js rename to src/sections/Kanvas/features/index.js diff --git a/src/sections/Meshmap/images/MesheryCloud.svg b/src/sections/Kanvas/images/MesheryCloud.svg similarity index 100% rename from src/sections/Meshmap/images/MesheryCloud.svg rename to src/sections/Kanvas/images/MesheryCloud.svg diff --git a/src/sections/Meshmap/images/circles.svg b/src/sections/Kanvas/images/circles.svg similarity index 100% rename from src/sections/Meshmap/images/circles.svg rename to src/sections/Kanvas/images/circles.svg diff --git a/src/sections/Meshmap/images/collaborate1.svg b/src/sections/Kanvas/images/collaborate1.svg similarity index 100% rename from src/sections/Meshmap/images/collaborate1.svg rename to src/sections/Kanvas/images/collaborate1.svg diff --git a/src/sections/Meshmap/images/collaborate2.svg b/src/sections/Kanvas/images/collaborate2.svg similarity index 100% rename from src/sections/Meshmap/images/collaborate2.svg rename to src/sections/Kanvas/images/collaborate2.svg diff --git a/src/sections/Meshmap/images/datacenter-crash.svg b/src/sections/Kanvas/images/datacenter-crash.svg similarity index 100% rename from src/sections/Meshmap/images/datacenter-crash.svg rename to src/sections/Kanvas/images/datacenter-crash.svg diff --git a/src/sections/Meshmap/images/grid.svg b/src/sections/Kanvas/images/grid.svg similarity index 100% rename from src/sections/Meshmap/images/grid.svg rename to src/sections/Kanvas/images/grid.svg diff --git a/src/sections/Meshmap/images/link-arrow-dark.svg b/src/sections/Kanvas/images/link-arrow-dark.svg similarity index 100% rename from src/sections/Meshmap/images/link-arrow-dark.svg rename to src/sections/Kanvas/images/link-arrow-dark.svg diff --git a/src/sections/Meshmap/images/link-arrow.svg b/src/sections/Kanvas/images/link-arrow.svg similarity index 100% rename from src/sections/Meshmap/images/link-arrow.svg rename to src/sections/Kanvas/images/link-arrow.svg diff --git a/src/sections/Meshmap/images/meshery-cloud.svg b/src/sections/Kanvas/images/meshery-cloud.svg similarity index 100% rename from src/sections/Meshmap/images/meshery-cloud.svg rename to src/sections/Kanvas/images/meshery-cloud.svg diff --git a/src/sections/Meshmap/images/meshmap-draft-logos.webp b/src/sections/Kanvas/images/meshmap-draft-logos.webp similarity index 100% rename from src/sections/Meshmap/images/meshmap-draft-logos.webp rename to src/sections/Kanvas/images/meshmap-draft-logos.webp diff --git a/src/sections/Meshmap/index.js b/src/sections/Kanvas/index.js similarity index 89% rename from src/sections/Meshmap/index.js rename to src/sections/Kanvas/index.js index 60b3e1219f9f..b7e02adc60c6 100644 --- a/src/sections/Meshmap/index.js +++ b/src/sections/Kanvas/index.js @@ -1,13 +1,13 @@ import React from "react"; -import MeshmapWrapper from "./meshmap.style"; +import KanvasWrapper from "./kanvas.style"; import { Container } from "../../reusecore/Layout"; import Features from "../../components/Features-carousel"; -import MeshmapModes from "./meshmap-modes"; -import Catalog from "./meshmap-catalog"; -import Platform from "./meshmap-platform"; -import MeshmapBanner from "./meshmap_banner"; -import designerImage from "../../assets/images/meshmap/MeshmapDesigner.webp"; -import visualizerImage from "../../assets/images/meshmap/MeshmapVisualizer.webp"; +import KanvasModes from "./kanvas-modes"; +import Catalog from "./kanvas-catalog"; +import Platform from "./kanvas-platform"; +import KanvasBanner from "./kanvas_banner"; +import designerImage from "../../assets/images/kanvas/KanvasDesigner.webp"; +import visualizerImage from "../../assets/images/kanvas/KanvasVisualizer.webp"; import DesignerFeatures from "./FeaturesSection/Design/DesignerFeatures"; import CollaboratorFeatures from "./FeaturesSection/Collaborate/CollaboratorFeatures"; import VisualizerFeatures from "./FeaturesSection/Visualize/VisualizerFeatures"; @@ -37,16 +37,16 @@ import Alex from "../../sections/Pricing/reviews/alex-hokanson.jpeg"; import TeaserModal from "../../components/TeaserModal"; -const Meshmap = (props) => { +const Kanvas = (props) => { return ( - +
    - +
    { ]} />
    - + { { }, ]} /> @@ -155,7 +155,7 @@ const Meshmap = (props) => { }, // { // title: "Nothing great is made alone.", - // description: "MeshMap connects everyone in the DevOps process so teams can deliver better products, faster." + // description: "Kanvas connects everyone in the DevOps process so teams can deliver better products, faster." // }, { title: "Create. Iterate. Repeat.", @@ -183,7 +183,7 @@ const Meshmap = (props) => { // }, { title: "Inclusive collaboration from start to finish", - description: "MeshMap is an end-to-end management platform, here to help teams understand problems, explore options, and build solutions—together.", + description: "Kanvas is an end-to-end management platform, here to help teams understand problems, explore options, and build solutions—together.", imgContent: ( <> avatar-3 @@ -233,13 +233,13 @@ const Meshmap = (props) => { }, ]} />*/} @@ -250,10 +250,10 @@ const Meshmap = (props) => {
    <> - + -
    + ); }; -export default Meshmap; \ No newline at end of file +export default Kanvas; \ No newline at end of file diff --git a/src/sections/Meshmap/index.test.js b/src/sections/Kanvas/index.test.js similarity index 68% rename from src/sections/Meshmap/index.test.js rename to src/sections/Kanvas/index.test.js index 293b1fc35124..8e8fd5cbb5ab 100644 --- a/src/sections/Meshmap/index.test.js +++ b/src/sections/Kanvas/index.test.js @@ -1,7 +1,7 @@ import React from 'react'; import { shallow } from 'enzyme'; -import Meshmap from './index'; +import Kanvas from './index'; it('Blog-sidebar renders without crashing', () => { - shallow(); + shallow(); }); \ No newline at end of file diff --git a/src/sections/Meshmap/meshmap-catalog.js b/src/sections/Kanvas/kanvas-catalog.js similarity index 86% rename from src/sections/Meshmap/meshmap-catalog.js rename to src/sections/Kanvas/kanvas-catalog.js index dbc17ec04a6a..638050f39b69 100644 --- a/src/sections/Meshmap/meshmap-catalog.js +++ b/src/sections/Kanvas/kanvas-catalog.js @@ -1,25 +1,25 @@ import React from "react"; import styled from "styled-components"; -import Mutual_tls from "../../assets/images/meshmap/catalog-card-images/mutual-tls.svg"; -import Retries from "../../assets/images/meshmap/catalog-card-images/retries.svg"; -import Traces from "../../assets/images/meshmap/catalog-card-images/traces.svg"; -import Denial from "../../assets/images/meshmap/catalog-card-images/denial.svg"; -import Correlate_event from "../../assets/images/meshmap/catalog-card-images/correlate-event.svg"; -import Only_wagent from "../../assets/images/meshmap/catalog-card-images/only-wagent.svg"; -import Node_agent from "../../assets/images/meshmap/catalog-card-images/node-agent.svg"; -import Single_tenant from "../../assets/images/meshmap/catalog-card-images/single-tenant.svg"; -import Pre_provison from "../../assets/images/meshmap/catalog-card-images/pre-provision.svg"; -import Circuit_breaker from "../../assets/images/meshmap/catalog-card-images/circuit-breaker.svg"; -import Retry_deadline from "../../assets/images/meshmap/catalog-card-images/retry-deadline.svg"; -import Singleton from "../../assets/images/meshmap/catalog-card-images/singleton.svg"; -import Jwt_transformer from "../../assets/images/meshmap/catalog-card-images/jwt.svg"; -import Multicluster from "../../assets/images/meshmap/catalog-card-images/multicluster.svg"; -import Http_metrics from "../../assets/images/meshmap/catalog-card-images/http.svg"; +import Mutual_tls from "../../assets/images/kanvas/catalog-card-images/mutual-tls.svg"; +import Retries from "../../assets/images/kanvas/catalog-card-images/retries.svg"; +import Traces from "../../assets/images/kanvas/catalog-card-images/traces.svg"; +import Denial from "../../assets/images/kanvas/catalog-card-images/denial.svg"; +import Correlate_event from "../../assets/images/kanvas/catalog-card-images/correlate-event.svg"; +import Only_wagent from "../../assets/images/kanvas/catalog-card-images/only-wagent.svg"; +import Node_agent from "../../assets/images/kanvas/catalog-card-images/node-agent.svg"; +import Single_tenant from "../../assets/images/kanvas/catalog-card-images/single-tenant.svg"; +import Pre_provison from "../../assets/images/kanvas/catalog-card-images/pre-provision.svg"; +import Circuit_breaker from "../../assets/images/kanvas/catalog-card-images/circuit-breaker.svg"; +import Retry_deadline from "../../assets/images/kanvas/catalog-card-images/retry-deadline.svg"; +import Singleton from "../../assets/images/kanvas/catalog-card-images/singleton.svg"; +import Jwt_transformer from "../../assets/images/kanvas/catalog-card-images/jwt.svg"; +import Multicluster from "../../assets/images/kanvas/catalog-card-images/multicluster.svg"; +import Http_metrics from "../../assets/images/kanvas/catalog-card-images/http.svg"; import Wasm from "../../assets/images/webassembly/webssembly_icon.svg"; import Patterns from "../../assets/images/service-mesh-patterns/service-mesh-pattern.svg"; -import Ebpf from "../../assets/images/meshmap/ebpf.svg"; -import Opa from "../../assets/images/meshmap/opa.svg"; +import Ebpf from "../../assets/images/kanvas/ebpf.svg"; +import Opa from "../../assets/images/kanvas/opa.svg"; import { Container } from "../../reusecore/Layout"; const CatalogWrapper = styled.div` @@ -423,7 +423,7 @@ const Catalog = () => {

    - MeshMap is a sophisticated and delightfully intuitive tool for designing and operating cloud native infrastructure for Kubernetes. Choose freestyle composition of your infrastructure by drawing shapes, lines, text, and icons to represent the components and relationships of your Kubernetes clusters or quickstart by selecting a pattern the catalog of predefined templates. + Kanvass a sophisticated and delightfully intuitive tool for designing and operating cloud native infrastructure for Kubernetes. Choose freestyle composition of your infrastructure by drawing shapes, lines, text, and icons to represent the components and relationships of your Kubernetes clusters or quickstart by selecting a pattern the catalog of predefined templates.

    diff --git a/src/sections/Meshmap/meshmap-icon.svg b/src/sections/Kanvas/kanvas-icon.svg similarity index 100% rename from src/sections/Meshmap/meshmap-icon.svg rename to src/sections/Kanvas/kanvas-icon.svg diff --git a/src/sections/Meshmap/meshmap-modes.js b/src/sections/Kanvas/kanvas-modes.js similarity index 89% rename from src/sections/Meshmap/meshmap-modes.js rename to src/sections/Kanvas/kanvas-modes.js index 247ed3214421..782289fde652 100644 --- a/src/sections/Meshmap/meshmap-modes.js +++ b/src/sections/Kanvas/kanvas-modes.js @@ -1,9 +1,9 @@ import React, { useState } from "react"; import styled from "styled-components"; -import designerImage from "../../assets/images/meshmap/MeshmapDesigner.webp"; -import visualizerImage from "../../assets/images/meshmap/MeshmapVisualizer.webp"; +import designerImage from "../../assets/images/kanvas/KanvasDesigner.webp"; +import visualizerImage from "../../assets/images/kanvas/KanvasVisualizer.webp"; -const MeshmapModesWrapper = styled.div` +const KanvasModesWrapper = styled.div` margin-top: 0.1rem; p.caption { @@ -242,18 +242,18 @@ const MeshmapModesWrapper = styled.div` `; -const MeshmapModes = () => { +const KanvasModes = () => { const [designerEnlarged, setDesignerEnlarged] = useState(false); const [vizEnlarged, setVizEnlarged] = useState(false); return ( - + {/*

    Choose Your Mode

    */} {/*

    */} {/* Discover and Visualize - any and all of your cloud native infra and apps. */} {/* Collaboratively design and manage your Kubernetes clusters, service mesh deployments, and cloud native apps. */} {/*

    */} - {/* MeshMap supports 10+ service meshes. */} + {/* Kanvassupports 10+ service meshes. */}
    @@ -261,7 +261,7 @@ const MeshmapModes = () => {

    Discover and model your cloud native deployments

    - MeshMap Designer setDesignerEnlarged(!designerEnlarged)} className={`designer-img ${designerEnlarged ? "big" : "small"}`} /> + Kanvas Designer setDesignerEnlarged(!designerEnlarged)} className={`designer-img ${designerEnlarged ? "big" : "small"}`} />

    Drag-and-drop your cloud native infrastructure using a palette of thousands of versioned Kubernetes components. Using GitOps? Integrate advanced performance analysis into your pipeline.

    @@ -274,7 +274,7 @@ const MeshmapModes = () => {

    Apply patterns and manage many Kubernetes clusters

    - MeshMap Visualizer setVizEnlarged(!vizEnlarged)} className={vizEnlarged ? "big" : "small"} /> + Kanvas Visualizer 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.

    @@ -290,13 +290,13 @@ const MeshmapModes = () => {

    Deploy your cloud native infrastructure

    Catalog -

    Create and share your own Kubernetes deployments and service mesh patterns in MeshMap Designer or import from the catalog.

    +

    Create and share your own Kubernetes deployments and service mesh patterns in KanvasDesigner or import from the catalog.

    */} -
    + ); }; -export default MeshmapModes; +export default KanvasModes; diff --git a/src/sections/Meshmap/meshmap-newicon.svg b/src/sections/Kanvas/kanvas-newicon.svg similarity index 100% rename from src/sections/Meshmap/meshmap-newicon.svg rename to src/sections/Kanvas/kanvas-newicon.svg diff --git a/src/sections/Meshmap/meshmap-platform.js b/src/sections/Kanvas/kanvas-platform.js similarity index 80% rename from src/sections/Meshmap/meshmap-platform.js rename to src/sections/Kanvas/kanvas-platform.js index 29176ff9cfbd..cd9b485c7cbe 100644 --- a/src/sections/Meshmap/meshmap-platform.js +++ b/src/sections/Kanvas/kanvas-platform.js @@ -116,7 +116,7 @@ const Platform = () => {

    Choose Your Deployment Model

    - Get MeshMap where you need it. + Get Kanvas where you need it.

    { { title: "Self-hosted", description: - "Keep your MeshMap designs internal to your workplace. Get remote support from Layer5 when you need it.", + "Keep your Kanvas designs internal to your workplace. Get remote support from Layer5 when you need it.", content: ( MeshMap Self-hosted ), @@ -137,11 +137,11 @@ const Platform = () => { { title: "Cloud", description: - "Connect to Layer5 Cloud and have your MeshMap designs versioned and available for team sharing and real-time collaboration.", + "Connect to Layer5 Cloud and have your Kanvas designs versioned and available for team sharing and real-time collaboration.", content: ( MeshMap Cloud ), @@ -153,16 +153,16 @@ const Platform = () => {

    Self-Hosted

    - MeshMap Self-hosted + Kanvas Self-hosted

    - Keep your MeshMap designs internal to your workplace. Get remote support from Layer5 when you need it. + Keep your Kanvas designs internal to your workplace. Get remote support from Layer5 when you need it.

    Cloud

    - MeshMap Cloud + Kanvas Cloud

    - Connect to Layer5 Cloud and have your MeshMap designs versioned and available for team sharing and real-time collaboration. + Connect to Layer5 Cloud and have your Kanvasdesigns versioned and available for team sharing and real-time collaboration.

    diff --git a/src/sections/Meshmap/meshmap.style.js b/src/sections/Kanvas/kanvas.style.js similarity index 96% rename from src/sections/Meshmap/meshmap.style.js rename to src/sections/Kanvas/kanvas.style.js index 5336e8984f01..15154065a66a 100644 --- a/src/sections/Meshmap/meshmap.style.js +++ b/src/sections/Kanvas/kanvas.style.js @@ -1,6 +1,6 @@ import styled from "styled-components"; -const MeshmapWrapper = styled.div` +const KanvasWrapper = styled.div` display: flex; flex-direction: column; @@ -86,4 +86,4 @@ const MeshmapWrapper = styled.div` `; -export default MeshmapWrapper; +export default KanvasWrapper; diff --git a/src/sections/Meshmap/meshmap_banner.js b/src/sections/Kanvas/kanvas_banner.js similarity index 93% rename from src/sections/Meshmap/meshmap_banner.js rename to src/sections/Kanvas/kanvas_banner.js index 6ad2b8c91bb1..78e3ddbf9041 100644 --- a/src/sections/Meshmap/meshmap_banner.js +++ b/src/sections/Kanvas/kanvas_banner.js @@ -1,6 +1,6 @@ import React from "react"; import styled from "styled-components"; -import MeshmapIcon from "./meshmap-icon.svg"; +import KanvasIcon from "./kanvas-icon.svg"; const BannerSectionWrapper = styled.div` @@ -91,7 +91,7 @@ const BannerSectionWrapper = styled.div` } } - .meshmap-logo { + .kanvas-logo { width: 14rem; overflow: hidden; margin-top: -7rem; @@ -116,7 +116,7 @@ const BannerSectionWrapper = styled.div` } @media screen and (max-width: 1700px) { - .meshmap-logo { + .kanvas-logo { width: 12rem; /* right: 12rem; */ /* margin-top: -5rem; */ @@ -126,7 +126,7 @@ const BannerSectionWrapper = styled.div` } } @media screen and (max-width: 1200px) { - .meshmap-logo { + .kanvas-logo { left: 20%; width: 10rem; /* right: 8rem; */ @@ -135,7 +135,7 @@ const BannerSectionWrapper = styled.div` /* border-radius: 0% 85% 0% 0% / 0% 60% 0% 0% ; */ } @media screen and (max-width: 992px) { - .meshmap-logo { + .kanvas-logo { width: 8rem; margin-top: -2rem; left: 15%; @@ -145,7 +145,7 @@ const BannerSectionWrapper = styled.div` @media screen and (max-width: 768px) { padding: 8rem 2rem 3rem; - .meshmap-logo { + .kanvas-logo { margin-top: -5rem; margin-right: 2rem; left: 7%; @@ -154,7 +154,7 @@ const BannerSectionWrapper = styled.div` border-radius: 0% 85% 0% 0% / 0% 40% 0% 0% ; } @media screen and (max-width: 500px) { - .meshmap-logo { + .kanvas-logo { margin-top: -5rem; margin-right: 2rem; left: 0%; @@ -163,7 +163,7 @@ const BannerSectionWrapper = styled.div` border-radius: 0% 85% 0% 0% / 0% 40% 0% 0% ; } @media screen and (max-width: 400px) { - .meshmap-logo { + .kanvas-logo { margin-top: -5rem; margin-right: 0; left: -20%; @@ -178,7 +178,7 @@ const BannerSection = () => { return (
    - {/* */} + {/* */}

    Step aside, YAML

    Meshery is here

    {/*

    the world's only visual designer for cloud native infrastructure.

    */} @@ -192,8 +192,8 @@ const BannerSection = () => {

    Collaborate and Design

    any and all your cloud native infra and apps */}
    -
    - Meshery Logo +
    + Meshery Logo {/*
    asdf
    */}
    {/*

    Ready, Players?

    */} diff --git a/src/sections/Meshmap/meshery-action.js b/src/sections/Kanvas/meshery-action.js similarity index 97% rename from src/sections/Meshmap/meshery-action.js rename to src/sections/Kanvas/meshery-action.js index 8f3e37ea6e37..73c01333d1cb 100644 --- a/src/sections/Meshmap/meshery-action.js +++ b/src/sections/Kanvas/meshery-action.js @@ -97,7 +97,7 @@ p.caption { const MesheryAction = () => { return ( -

    See MeshMap In-Action

    +

    See Kanvasn-Action

    Recently on-stage at...

    diff --git a/src/sections/Meshmap/signup-form.js b/src/sections/Kanvas/signup-form.js similarity index 79% rename from src/sections/Meshmap/signup-form.js rename to src/sections/Kanvas/signup-form.js index 081d79737872..85ebec50c168 100644 --- a/src/sections/Meshmap/signup-form.js +++ b/src/sections/Kanvas/signup-form.js @@ -10,7 +10,7 @@ const SignupFormWrapper = styled.div` flex-direction: column; } - .meshmap-video { + .kanvas-video { /* box-shadow: 0px 5px 5px 2px #b3b3b3; */ height: 28rem; text-align: center; @@ -31,20 +31,20 @@ const SignupForm = ({ targetRef }) => {

    Signup for

    -

    MeshMap Beta

    +

    Kanvas Beta

    Join the waiting list for participation in the beta program. Your request for access will be processed as quickly as possible. Due to the large influx of program participation requests, it may take some time before system access is granted. So that you can familiarize while you wait, the Layer5 team will - send you additional information about beta program, MeshMap + send you additional information about beta program, Kanvas modes, and cloud native design patterns.

    -
    - {/*

    Help choose the best logo for MeshMap:

    +
    + {/*

    Help choose the best logo for Kanvas:

    - MeshMap Draft
    + Kanvas Draft

    Vote for your favorite design

    */}

    MeshMap