From 1473ecdecd51041d092644b3637a7ba8742e5280 Mon Sep 17 00:00:00 2001
From: MUzairS15
Date: Sun, 20 Oct 2024 00:25:09 +0000
Subject: [PATCH 01/30] [Docs] Generated documentation for Integration
Signed-off-by: l5io
Signed-off-by: NishantSinghhhhh
---
.../icons/color/persistent-volume-claim-color.svg | 2 +-
.../icons/white/persistent-volume-claim-white.svg | 2 +-
.../persistent-volume/icons/color/persistent-volume-color.svg | 4 ++--
.../persistent-volume/icons/white/persistent-volume-white.svg | 4 ++--
4 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/src/collections/integrations/kubernetes/icons/components/persistent-volume-claim/icons/color/persistent-volume-claim-color.svg b/src/collections/integrations/kubernetes/icons/components/persistent-volume-claim/icons/color/persistent-volume-claim-color.svg
index 2bae347ed22f..557585d126fb 100644
--- a/src/collections/integrations/kubernetes/icons/components/persistent-volume-claim/icons/color/persistent-volume-claim-color.svg
+++ b/src/collections/integrations/kubernetes/icons/components/persistent-volume-claim/icons/color/persistent-volume-claim-color.svg
@@ -1,3 +1,3 @@
-
+
diff --git a/src/collections/integrations/kubernetes/icons/components/persistent-volume-claim/icons/white/persistent-volume-claim-white.svg b/src/collections/integrations/kubernetes/icons/components/persistent-volume-claim/icons/white/persistent-volume-claim-white.svg
index 7b881f68e6a2..17d143c09de3 100644
--- a/src/collections/integrations/kubernetes/icons/components/persistent-volume-claim/icons/white/persistent-volume-claim-white.svg
+++ b/src/collections/integrations/kubernetes/icons/components/persistent-volume-claim/icons/white/persistent-volume-claim-white.svg
@@ -1,3 +1,3 @@
-
+
diff --git a/src/collections/integrations/kubernetes/icons/components/persistent-volume/icons/color/persistent-volume-color.svg b/src/collections/integrations/kubernetes/icons/components/persistent-volume/icons/color/persistent-volume-color.svg
index 557585d126fb..78f2447254e4 100644
--- a/src/collections/integrations/kubernetes/icons/components/persistent-volume/icons/color/persistent-volume-color.svg
+++ b/src/collections/integrations/kubernetes/icons/components/persistent-volume/icons/color/persistent-volume-color.svg
@@ -1,3 +1,3 @@
-
-
+
+
diff --git a/src/collections/integrations/kubernetes/icons/components/persistent-volume/icons/white/persistent-volume-white.svg b/src/collections/integrations/kubernetes/icons/components/persistent-volume/icons/white/persistent-volume-white.svg
index 17d143c09de3..2ed4db357583 100644
--- a/src/collections/integrations/kubernetes/icons/components/persistent-volume/icons/white/persistent-volume-white.svg
+++ b/src/collections/integrations/kubernetes/icons/components/persistent-volume/icons/white/persistent-volume-white.svg
@@ -1,3 +1,3 @@
-
-
+
+
From 576724216f5dd48e2b972239813e4cb9c39e2570 Mon Sep 17 00:00:00 2001
From: NishantSinghhhhh
Date: Mon, 21 Oct 2024 02:36:07 +0530
Subject: [PATCH 02/30] added documentation of Link Component
Signed-off-by: NishantSinghhhhh
---
.../projects/sistent/components/link/code.js | 8 +
.../sistent/components/link/guidance.js | 8 +
.../projects/sistent/components/link/index.js | 8 +
.../Projects/Sistent/components/index.js | 7 +
.../Sistent/components/link/code-block.js | 20 ++
.../Projects/Sistent/components/link/code.js | 316 ++++++++++++++++++
.../Sistent/components/link/guidance.js | 177 ++++++++++
.../Projects/Sistent/components/link/index.js | 189 +++++++++++
8 files changed, 733 insertions(+)
create mode 100644 src/pages/projects/sistent/components/link/code.js
create mode 100644 src/pages/projects/sistent/components/link/guidance.js
create mode 100644 src/pages/projects/sistent/components/link/index.js
create mode 100644 src/sections/Projects/Sistent/components/link/code-block.js
create mode 100644 src/sections/Projects/Sistent/components/link/code.js
create mode 100644 src/sections/Projects/Sistent/components/link/guidance.js
create mode 100644 src/sections/Projects/Sistent/components/link/index.js
diff --git a/src/pages/projects/sistent/components/link/code.js b/src/pages/projects/sistent/components/link/code.js
new file mode 100644
index 000000000000..06eae83ec9a3
--- /dev/null
+++ b/src/pages/projects/sistent/components/link/code.js
@@ -0,0 +1,8 @@
+import React from "react";
+import { LinkCode } from "../../../../../sections/Projects/Sistent/components/link/code";
+
+const LinkCodePage = () => {
+ return ;
+};
+
+export default LinkCodePage;
\ No newline at end of file
diff --git a/src/pages/projects/sistent/components/link/guidance.js b/src/pages/projects/sistent/components/link/guidance.js
new file mode 100644
index 000000000000..b9efe9988519
--- /dev/null
+++ b/src/pages/projects/sistent/components/link/guidance.js
@@ -0,0 +1,8 @@
+import React from "react";
+import { LinkGuidancePage } from "../../../../../sections/Projects/Sistent/components/link/guidance";
+
+const LinkGuidance = () => {
+ return ;
+};
+
+export default LinkGuidance;
\ No newline at end of file
diff --git a/src/pages/projects/sistent/components/link/index.js b/src/pages/projects/sistent/components/link/index.js
new file mode 100644
index 000000000000..67ea06f64fcf
--- /dev/null
+++ b/src/pages/projects/sistent/components/link/index.js
@@ -0,0 +1,8 @@
+import React from "react";
+import SistentLink from "../../../../../sections/Projects/Sistent/components/link";
+
+const SistentButtonPage = () => {
+ return ;
+};
+
+export default SistentButtonPage;
\ No newline at end of file
diff --git a/src/sections/Projects/Sistent/components/index.js b/src/sections/Projects/Sistent/components/index.js
index 8bb294655b0f..d673f3f75db7 100644
--- a/src/sections/Projects/Sistent/components/index.js
+++ b/src/sections/Projects/Sistent/components/index.js
@@ -30,6 +30,13 @@ const componentsData = [
"A text input is made up of multiple elements that combine to form a component that helps users to read, write, and edit text in an interface.",
url: "/projects/sistent/components/modal",
},
+ {
+ id: 4,
+ name: "Link",
+ description:
+ "A link component is a navigational element that directs users to another page or section within an application",
+ url: "/projects/sistent/components/link",
+ },
];
const SistentComponents = () => {
diff --git a/src/sections/Projects/Sistent/components/link/code-block.js b/src/sections/Projects/Sistent/components/link/code-block.js
new file mode 100644
index 000000000000..34bf21d9b570
--- /dev/null
+++ b/src/sections/Projects/Sistent/components/link/code-block.js
@@ -0,0 +1,20 @@
+import React, { useState } from "react";
+import Code from "../../../../../components/CodeBlock";
+
+export const CodeBlock = ({ name, code }) => {
+ const [showCode, setShowCode] = useState(false);
+ const onChange = () => {
+ setShowCode((prev) => !prev);
+ };
+ return (
+
+
+
+ Show Code
+
+ {showCode && (
+
+ )}
+
+ );
+};
\ No newline at end of file
diff --git a/src/sections/Projects/Sistent/components/link/code.js b/src/sections/Projects/Sistent/components/link/code.js
new file mode 100644
index 000000000000..8cab957f4a98
--- /dev/null
+++ b/src/sections/Projects/Sistent/components/link/code.js
@@ -0,0 +1,316 @@
+import React from "react";
+import { navigate } from "gatsby";
+import { useLocation } from "@reach/router";
+
+import { SistentThemeProvider, Link } from "@layer5/sistent";
+import { CodeBlock } from "./code-block";
+// import { FaArrowRight } from "@react-icons/all-files/fa/FaArrowRight";
+import { SistentLayout } from "../../sistent-layout";
+
+import TabButton from "../../../../../reusecore/Button";
+import { useStyledDarkMode } from "../../../../../theme/app/useStyledDarkMode";
+
+const codes = [
+ `
+
+ Simple Link
+
+ `,
+
+ `
+
+ Customized Link 1
+
+ `,
+
+ `
+
+ Underlined Link
+
+
+`,
+
+ `
+
+ Customized Link
+
+ `,
+
+ `
+
+ Download File
+
+ `,
+
+ `
+
+ Visit Secure Link
+
+ `
+];
+
+export const LinkCode = () => {
+ const location = useLocation();
+ const { isDark } = useStyledDarkMode();
+
+ return (
+
+
+
+ Link
+
+
+
+
+ navigate("/projects/sistent/components/link")}
+ title="Overview"
+ />
+
+ navigate("/projects/sistent/components/link/guidance")
+ }
+ title="Guidance"
+ />
+ navigate("/projects/sistent/identity/color/code")}
+ title="Code"
+ />
+
+
+
+ Links are fundamental components in web navigation, allowing users to move between different pages or resources. Their design and implementation are crucial for creating a seamless browsing experience.
+
+
+ Simple Link
+
+
The link can be presented in a simple format, primarily as underlined text that serves as a gateway to navigate users to other pages or resources, without any prominent styling or buttons attached to it.
+
+
+
+
+ Simple Link
+
+
+
+
+
+
+ Customized Links
+
+
+ Customized Links enhance user experience by adapting their design and behavior to match the app’s theme. They can include personalized styles, hover effects, or icons, ensuring both visual consistency and improved usability across the website.
+
+
+
Colored Link
+
+ Colored Links can help draw attention to key areas of a page. They are styled with custom colors to stand out and indicate their importance, enhancing navigation and usability.
+
+
+
+
+
+ Colored Link
+
+
+
+
+
+
+
Underlined Link
+
+ Underlined Links, often referred to as ghost buttons, are styled primarily with text without any fills or borders. They utilize specific text styling and color to signify different states, making them easily identifiable and enhancing user navigation.
+
+
+
+
+
+ Underlined Link
+
+
+
+
+
+
+
Customized Link
+
+ Customized Links allow for distinct text styles and presentations that can enhance the user experience. By leveraging different styling properties, these links can be tailored to fit the design aesthetics of your application while maintaining functionality.
+
+
+
+
+
+ Customized Link
+
+
+
+
+
+
+
Download Link
+
+ Download Links are essential when you want to provide users with downloadable content such as files, PDFs, or documents. These links can be styled to clearly indicate a download action to the user.
+
+
+
+
+
+ Download File
+
+
+
+
+
+
+
+ Security Considerations
+
+
+ When utilizing links we should use them with the target="_blank" attribute, it's essential to implement rel="noopener" or rel="noreferrer" to enhance security and user privacy
+
+
+
+
+
+ Visit Secure Link
+
+
+
+
+
+
+
+
+ );
+};
\ No newline at end of file
diff --git a/src/sections/Projects/Sistent/components/link/guidance.js b/src/sections/Projects/Sistent/components/link/guidance.js
new file mode 100644
index 000000000000..5f29b12970d8
--- /dev/null
+++ b/src/sections/Projects/Sistent/components/link/guidance.js
@@ -0,0 +1,177 @@
+import React from "react";
+import { navigate } from "gatsby";
+import { useLocation } from "@reach/router";
+import { Row } from "../../../../../reusecore/Layout";
+import { Button, SistentThemeProvider,Link } from "@layer5/sistent";
+import { SistentLayout } from "../../sistent-layout";
+
+import TabButton from "../../../../../reusecore/Button";
+import { useStyledDarkMode } from "../../../../../theme/app/useStyledDarkMode";
+
+export const LinkGuidancePage = () => {
+ const location = useLocation();
+ const { isDark } = useStyledDarkMode();
+
+ return (
+
+
+
+ Link
+
+
+ A link component is a navigational element that directs users to another page or section within an application.
+
+
+ navigate("/projects/sistent/components/link")}
+ title="Overview"
+ />
+
+ navigate("/projects/sistent/components/link/guidance")
+ }
+ title="Guidance"
+ />
+ navigate("/projects/sistent/components/link/code")}
+ title="Code"
+ />
+
+
+
+ Links are fundamental components in web navigation, allowing users to move between different pages or resources. Their design and implementation are crucial for creating a seamless browsing experience.
+
+
+ Function
+
+
+ Links too have a lot many functions as:
+
+
Navigation Links
+
+ These links help users navigate through a website, directing them to important sections or related content. They should be easily accessible and clearly labeled to enhance usability.
+
+
+
+
+ Navigate to Layer5
+
+
+
+
Call to Action (CTA) Links
+
+ CTA links encourage users to take specific actions, such as signing up for a newsletter or downloading a resource. They should stand out visually to attract user attention and drive engagement.
+
+
+
+
+ Get Started
+
+
+
+
External Links
+
+ These links direct users to external websites. It’s important to provide clear indicators (like icons or different styles) that these links lead to external content, which helps users manage their navigation expectations.
+
+
+
+
+ Visit External Resource
+
+
+
+
Download Links
+
+ These links allow users to download files, documents, or resources. It’s essential to provide information about the file type and size to prepare users for what they’re downloading.
+
+
+
+
+ Download File
+
+
+
+
+ Labeling
+
+
+ Link labels are vital for communicating the action associated with the link. Labels should be concise, informative, and use action-oriented language (e.g., "Download Report," "Learn More") to guide users effectively.
+
+
Case Style
+
+ Consistency in the case style of link text improves readability and enhances the overall aesthetic of the website. Using a uniform style, such as sentence case or title case, contributes to a more professional appearance.
+
+
Font Weight
+
+ The weight of the font in link text can signify importance and attract user attention. A bolder font can indicate a primary action, while a lighter font may denote secondary options. Legibility is essential for ensuring that links are easy to read.
+
+
Text Decoration
+
+ Links typically use underlines to distinguish them from regular text. However, it’s important to maintain the underline for accessibility and usability, as users often associate underlined text with clickable links. Consider hover effects to provide visual feedback.
+
+
+
+
+ );
+};
\ No newline at end of file
diff --git a/src/sections/Projects/Sistent/components/link/index.js b/src/sections/Projects/Sistent/components/link/index.js
new file mode 100644
index 000000000000..14806f22e397
--- /dev/null
+++ b/src/sections/Projects/Sistent/components/link/index.js
@@ -0,0 +1,189 @@
+import React from "react";
+import { navigate } from "gatsby";
+import { useLocation } from "@reach/router";
+
+import { SistentThemeProvider, Link } from "@layer5/sistent";
+import TabButton from "../../../../../reusecore/Button";
+import { SistentLayout } from "../../sistent-layout";
+import { Row } from "../../../../../reusecore/Layout";
+import { useStyledDarkMode } from "../../../../../theme/app/useStyledDarkMode";
+
+const SistentLink = () => {
+ const location = useLocation();
+ const { isDark } = useStyledDarkMode();
+
+ return (
+
+
+
+ link
+
+
+ A link component is a navigational element that directs users to another page or section within an application.
+
+
+
+ navigate("/projects/sistent/components/link")}
+ title="Overview"
+ />
+
+ navigate("/projects/sistent/components/link/guidance")
+ }
+ title="Guidance"
+ />
+ navigate("/projects/sistent/components/link/code")}
+ title="Code"
+ />
+
+
+
+ Links are essential and integral components of an interface. They are primarily used for navigation, guiding users to the next step in a journey or redirecting them to relevant sections or pages. Links can be paired with other elements to create cohesive designs, enhancing the digital experience by providing smooth transitions and interaction cues.
+
+
+ Types of Links
+
+
+ Links in an interface serve as vital elements for navigation and interaction. Multiple types of links are available to establish hierarchy, provide visual prominence, and enhance flexibility, guiding users towards their goals efficiently. With distinct styling and behaviors, links can help streamline user flows and create a cohesive user experience.
+
+
Simple Links
+
+ Basic anchor links with customizable colors and typography styles that inherit properties from the Typography component. This allows flexibility in styling with options like various text sizes or variants.
+
+
+
+
+ Simple Link
+
+
+
+
+
Customized Links
+
+ The links can be customized in the below mentioned way
+
+
1. Color
+
+ You can customize link colors with predefined values such as primary, secondary, error, success, warning, info, or inherit existing text colors like Blue, Red.
+
+
+
+
+ Customized Link 1
+
+
+
+
+
2. Underlining
+
+ Also known as ghost buttons, text buttons are mostly just what the
+ name implies; they are buttons without fills or borders which might
+ just have a specific text styling and color to denote different
+ states for easier identification.
+
+
+
+
+ Customized Link 2
+
+
+
+
+
+
3. Variants
+
+ Links can have various text styles using the different styling property
+
+
+
+
+ Customized Link 3
+
+
+
+
+
+ Security
+
+
+ When using target="_blank"
with links, it's crucial to include
+ rel="noopener"
or rel="noreferrer"
for security reasons:
+
+
+ Prevent Access: rel="noopener"
prevents the new page from accessing the
+ window.opener
property, securing your original page from potential malicious redirects.
+ Avoid Referer Leakage: rel="noreferrer"
not only blocks the new page's
+ access to your original page but also stops the Referer header from being sent, protecting user privacy.
+ Security Risk Mitigation: Using these attributes reduces the risk of phishing attacks
+ and ensures that your site maintains control over its navigation and data.
+
+
+ By following these practices, you can enhance the security of your web application and protect your users.
+
+
+
+
+ Optimized Rendering of Links Using
+
+
+
+ useMemo is a React hook that helps optimize the rendering of link components by memorizing computed values, which prevents unnecessary re-renders.
+
+
+
+
+ );
+};
+
+export default SistentLink;
\ No newline at end of file
From 8d9b424af0e11d83d2495de11dfd365bdd7e4712 Mon Sep 17 00:00:00 2001
From: NishantSinghhhhh
Date: Mon, 21 Oct 2024 12:10:51 +0530
Subject: [PATCH 03/30] added documentation of Link Component
Signed-off-by: NishantSinghhhhh
---
src/pages/projects/sistent/components/link/index.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/pages/projects/sistent/components/link/index.js b/src/pages/projects/sistent/components/link/index.js
index 67ea06f64fcf..2e2f14e7f001 100644
--- a/src/pages/projects/sistent/components/link/index.js
+++ b/src/pages/projects/sistent/components/link/index.js
@@ -1,5 +1,5 @@
import React from "react";
-import SistentLink from "../../../../../sections/Projects/Sistent/components/link";
+import SistentLink from "../../../../../sections/Projects/Sistent/components/link/index";
const SistentButtonPage = () => {
return ;
From d18bea5d44f327e3ec308a797cb5f7ccf8f627f0 Mon Sep 17 00:00:00 2001
From: MUzairS15
Date: Mon, 21 Oct 2024 00:24:09 +0000
Subject: [PATCH 04/30] [Docs] Generated documentation for Integration
Signed-off-by: l5io
Signed-off-by: NishantSinghhhhh
---
.../icons/color/open-stack-server-color.svg | 7 +++++++
.../icons/white/open-stack-server-white.svg | 6 ++++++
.../integrations/cluster-api-provider-openstack/index.mdx | 6 ++++++
3 files changed, 19 insertions(+)
create mode 100644 src/collections/integrations/cluster-api-provider-openstack/icons/components/open-stack-server/icons/color/open-stack-server-color.svg
create mode 100644 src/collections/integrations/cluster-api-provider-openstack/icons/components/open-stack-server/icons/white/open-stack-server-white.svg
diff --git a/src/collections/integrations/cluster-api-provider-openstack/icons/components/open-stack-server/icons/color/open-stack-server-color.svg b/src/collections/integrations/cluster-api-provider-openstack/icons/components/open-stack-server/icons/color/open-stack-server-color.svg
new file mode 100644
index 000000000000..67a1c4a07f6d
--- /dev/null
+++ b/src/collections/integrations/cluster-api-provider-openstack/icons/components/open-stack-server/icons/color/open-stack-server-color.svg
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/collections/integrations/cluster-api-provider-openstack/icons/components/open-stack-server/icons/white/open-stack-server-white.svg b/src/collections/integrations/cluster-api-provider-openstack/icons/components/open-stack-server/icons/white/open-stack-server-white.svg
new file mode 100644
index 000000000000..4350d73fa752
--- /dev/null
+++ b/src/collections/integrations/cluster-api-provider-openstack/icons/components/open-stack-server/icons/white/open-stack-server-white.svg
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/collections/integrations/cluster-api-provider-openstack/index.mdx b/src/collections/integrations/cluster-api-provider-openstack/index.mdx
index 7fdb04f6554a..e7cd337b6460 100644
--- a/src/collections/integrations/cluster-api-provider-openstack/index.mdx
+++ b/src/collections/integrations/cluster-api-provider-openstack/index.mdx
@@ -44,6 +44,12 @@ components: [
"colorIcon": "icons/components/open-stack-machine-template/icons/color/open-stack-machine-template-color.svg",
"whiteIcon": "icons/components/open-stack-machine-template/icons/white/open-stack-machine-template-white.svg",
"description": "",
+},
+{
+"name": "open-stack-server",
+"colorIcon": "icons/components/open-stack-server/icons/color/open-stack-server-color.svg",
+"whiteIcon": "icons/components/open-stack-server/icons/white/open-stack-server-white.svg",
+"description": "",
}]
featureList: [
"Automates Kubernetes cluster provisioning",
From 21554a3bd5d4c8a4843693ece242158961502660 Mon Sep 17 00:00:00 2001
From: Vidit Kushwaha <120644015+Vidit-Kushwaha@users.noreply.github.com>
Date: Sun, 20 Oct 2024 13:02:13 +0000
Subject: [PATCH 05/30] Add Paper component to the sistent components page
Signed-off-by: Vidit Kushwaha <120644015+Vidit-Kushwaha@users.noreply.github.com>
Signed-off-by: NishantSinghhhhh
---
src/components/SistentNavigation/content.js | 15 ++
.../projects/sistent/components/paper/code.js | 8 +
.../sistent/components/paper/guidance.js | 8 +
.../sistent/components/paper/index.js | 9 +
.../Projects/Sistent/components/index.js | 9 +-
.../Projects/Sistent/components/paper/code.js | 203 ++++++++++++++++++
.../Sistent/components/paper/guidance.js | 121 +++++++++++
.../Sistent/components/paper/index.js | 114 ++++++++++
.../Sistent/components/popper/guidance.js | 172 +++++++++++++++
9 files changed, 658 insertions(+), 1 deletion(-)
create mode 100644 src/pages/projects/sistent/components/paper/code.js
create mode 100644 src/pages/projects/sistent/components/paper/guidance.js
create mode 100644 src/pages/projects/sistent/components/paper/index.js
create mode 100644 src/sections/Projects/Sistent/components/paper/code.js
create mode 100644 src/sections/Projects/Sistent/components/paper/guidance.js
create mode 100644 src/sections/Projects/Sistent/components/paper/index.js
create mode 100644 src/sections/Projects/Sistent/components/popper/guidance.js
diff --git a/src/components/SistentNavigation/content.js b/src/components/SistentNavigation/content.js
index 51f8f57618ae..5ca0281ae851 100644
--- a/src/components/SistentNavigation/content.js
+++ b/src/components/SistentNavigation/content.js
@@ -43,4 +43,19 @@ export const content = [
link: "/projects/sistent/components/text-input/code",
text: "Text Input",
},
+ {
+ id: 15,
+ link: "/projects/sistent/components/paper",
+ text: "Paper",
+ },
+ {
+ id: 16,
+ link: "/projects/sistent/components/paper/guidance",
+ text: "Paper",
+ },
+ {
+ id: 17,
+ link: "/projects/sistent/components/paper/code",
+ text: "Paper",
+ },
];
diff --git a/src/pages/projects/sistent/components/paper/code.js b/src/pages/projects/sistent/components/paper/code.js
new file mode 100644
index 000000000000..aebd216c36dc
--- /dev/null
+++ b/src/pages/projects/sistent/components/paper/code.js
@@ -0,0 +1,8 @@
+import React from "react";
+import PaperCode from "../../../../../sections/Projects/Sistent/components/paper/code";
+
+const PaperCodePage = () => {
+ return ;
+};
+
+export default PaperCodePage;
\ No newline at end of file
diff --git a/src/pages/projects/sistent/components/paper/guidance.js b/src/pages/projects/sistent/components/paper/guidance.js
new file mode 100644
index 000000000000..a0ae573e7c1d
--- /dev/null
+++ b/src/pages/projects/sistent/components/paper/guidance.js
@@ -0,0 +1,8 @@
+import React from "react";
+import PaperGuidance from "../../../../../sections/Projects/Sistent/components/paper/guidance";
+
+const PaperGuidancePage = () => {
+ return ;
+};
+
+export default PaperGuidancePage;
diff --git a/src/pages/projects/sistent/components/paper/index.js b/src/pages/projects/sistent/components/paper/index.js
new file mode 100644
index 000000000000..cac37c7bd2c0
--- /dev/null
+++ b/src/pages/projects/sistent/components/paper/index.js
@@ -0,0 +1,9 @@
+import React from "react";
+import SistentPaper from "../../../../../sections/Projects/Sistent/components/paper";
+
+
+const SistentPaperPage = () => {
+ return ;
+};
+
+export default SistentPaperPage;
\ No newline at end of file
diff --git a/src/sections/Projects/Sistent/components/index.js b/src/sections/Projects/Sistent/components/index.js
index d673f3f75db7..3b01fbe129bd 100644
--- a/src/sections/Projects/Sistent/components/index.js
+++ b/src/sections/Projects/Sistent/components/index.js
@@ -32,9 +32,16 @@ const componentsData = [
},
{
id: 4,
+ name: "Paper",
+ description:
+ "The Paper component offers an elevated surface with shadow effects, following Material Design’s elevation system.",
+ url: "/projects/sistent/components/paper",
+ },
+ {
+ id: 5,
name: "Link",
description:
- "A link component is a navigational element that directs users to another page or section within an application",
+ "Links are essential and integral components of an interface. They are primarily used for navigation, guiding users to the next step in a journey or redirecting them to relevant sections or pages.",
url: "/projects/sistent/components/link",
},
];
diff --git a/src/sections/Projects/Sistent/components/paper/code.js b/src/sections/Projects/Sistent/components/paper/code.js
new file mode 100644
index 000000000000..2d8c254de522
--- /dev/null
+++ b/src/sections/Projects/Sistent/components/paper/code.js
@@ -0,0 +1,203 @@
+import React from "react";
+import { navigate } from "gatsby";
+import { useLocation } from "@reach/router";
+import TabButton from "../../../../../reusecore/Button";
+import { SistentLayout } from "../../sistent-layout";
+import { SistentThemeProvider, Paper } from "@layer5/sistent";
+import { useStyledDarkMode } from "../../../../../theme/app/useStyledDarkMode";
+import { CodeBlock } from "../button/code-block";
+
+const codes = [
+ `
+
+ Default Paper with Elevation 1
+
+ `,
+ `
+
+ Elevation 0 (No shadow)
+
+
+ Elevation 3
+
+
+ Elevation 8
+
+ `,
+ `
+
+ Elevation Variant (Default)
+
+
+ Outlined Variant (No shadow)
+
+ `,
+ `
+
+ Rounded Corners (Default)
+
+
+ Square Corners
+
+ `,
+];
+const PaperCode = () => {
+ const location = useLocation();
+ const { isDark } = useStyledDarkMode();
+
+ return (
+
+
+
+ Paper
+
+
+ The Paper component provides an elevated surface for displaying
+ content. It mimics the behavior of real-world surfaces with shadow
+ effects, supporting Material Design's elevation system.
+
+
+
+ navigate("/projects/sistent/components/paper")}
+ title="Overview"
+ />
+
+ navigate("/projects/sistent/components/paper/guidance")
+ }
+ title="Guidance"
+ />
+ navigate("/projects/sistent/components/paper/code")}
+ title="Code"
+ />
+
+
+
+ Basic Example
+
+
+ Here’s a simple example of a Paper component with default elevation.
+ This creates a surface with a subtle shadow.
+
+
+
+
+
+ Default Paper with Elevation 1
+
+
+
+
+
+
+
+ Elevation Example
+
+
+ The elevation
prop controls the shadow depth. Use
+ values from 0 to 24 to create varying levels of elevation:
+
+
+
+
+
+ Elevation 0 (No shadow)
+
+
+ Elevation 3
+
+
+ Elevation 8
+
+
+
+
+
+
+ Variant Example
+
+
+ The Paper component supports two variants: elevation
{" "}
+ (default) and outlined
. The outlined variant removes
+ shadows and adds a border instead:
+
+
+
+
+
+ Elevation Variant (Default)
+
+
+ Outlined Variant (No shadow)
+
+
+
+
+
+
+
+ Square and Rounded Corners
+
+
+ By default, the Paper component has rounded corners. You can make it
+ square by setting the square
prop to true
.
+
+
+
+
+
+ Rounded Corners (Default)
+
+
+ Square Corners
+
+
+
+
+
+
+
+
+ );
+};
+
+export default PaperCode;
diff --git a/src/sections/Projects/Sistent/components/paper/guidance.js b/src/sections/Projects/Sistent/components/paper/guidance.js
new file mode 100644
index 000000000000..6c2dd5a412fb
--- /dev/null
+++ b/src/sections/Projects/Sistent/components/paper/guidance.js
@@ -0,0 +1,121 @@
+import React from "react";
+import { SistentLayout } from "../../sistent-layout";
+import TabButton from "../../../../../reusecore/Button";
+import { navigate } from "gatsby";
+import { useLocation } from "@reach/router";
+
+const PaperGuidance = () => {
+ const location = useLocation();
+
+ return (
+
+
+
+ Paper
+
+
+ The Paper component provides an elevated surface for displaying
+ content. It mimics the behavior of real-world surfaces with shadow
+ effects, supporting Material Design's elevation system.
+
+
+
+ navigate("/projects/sistent/components/paper")}
+ title="Overview"
+ />
+
+ navigate("/projects/sistent/components/paper/guidance")
+ }
+ title="Guidance"
+ />
+ navigate("/projects/sistent/components/paper/code")}
+ title="Code"
+ />
+
+
+
+ Usage Guidelines
+
+
+ When using the Paper component, follow these guidelines to ensure
+ consistency and usability across your designs.
+
+
+
+ Elevation Guidelines
+
+
+ Use lower elevations (0-3) for subtle surfaces such as cards and
+ small sections.
+ Higher elevations (8-24) are best for modals or
+ key areas that need emphasis.
+ Be mindful of the dark mode
+ behavior, where higher elevations result in a lighter background.
+
+
+
+ Variant Guidelines
+
+
+
+ Use the outlined
variant for areas where shadows
+ might feel visually overwhelming.
+
+
+ Stick to the default elevation variant for core components
+ requiring shadow depth.
+
+
+
+ Corners Guidelines
+
+
+
+ Rounded corners are more user-friendly and should be preferred
+ unless a strict design requires square corners.
+
+
+ Use square corners sparingly, mostly for components meant to
+ indicate precision or alignment with grid systems.
+
+
+
+
+ Accessibility
+
+
+
+ Make sure elevated surfaces have sufficient contrast with the
+ background.
+
+
+ Use clear and concise labels or headings for content within Paper
+ components to enhance accessibility.
+
+
+
+
+
+ );
+};
+
+export default PaperGuidance;
diff --git a/src/sections/Projects/Sistent/components/paper/index.js b/src/sections/Projects/Sistent/components/paper/index.js
new file mode 100644
index 000000000000..34ed637986af
--- /dev/null
+++ b/src/sections/Projects/Sistent/components/paper/index.js
@@ -0,0 +1,114 @@
+import React from "react";
+import { SistentLayout } from "../../sistent-layout";
+import TabButton from "../../../../../reusecore/Button";
+import { navigate } from "gatsby";
+import { useLocation } from "@reach/router";
+import { useStyledDarkMode } from "../../../../../theme/app/useStyledDarkMode";
+import { Paper, SistentThemeProvider } from "@layer5/sistent";
+
+export const SistentPaper = () => {
+ const location = useLocation();
+ const { isDark } = useStyledDarkMode();
+ return (
+
+
+
+ Paper
+
+
+ The Paper component provides an elevated surface for displaying
+ content. It mimics the behavior of real-world surfaces with shadow
+ effects, supporting Material Design's elevation system.
+
+
+
+ navigate("/projects/sistent/components/paper")}
+ title="Overview"
+ />
+
+ navigate("/projects/sistent/components/paper/guidance")
+ }
+ title="Guidance"
+ />
+ navigate("/projects/sistent/components/paper/code")}
+ title="Code"
+ />
+
+
+
+ The Paper component is useful for designs that require elevated
+ surfaces, such as cards or modals, and offers multiple configuration
+ options like elevation, variants, and corner styles.
+
+
+
+ Types
+
+
+ Paper can be configured with different elevation
levels
+ to establish a visual hierarchy, and it also supports a flat,
+ outlined variant.
+
+
+
Elevation
+
+ The elevation prop determines the shadow depth, with values ranging
+ from 0 (no shadow) to 24 (maximum shadow).
+
+
+
+
+ Paper with Elevation 3
+
+
+
+
Outlined
+
+ For designs requiring minimal shadows, the outlined
{" "}
+ variant can be used instead of the default elevated one.
+
+
+
+
+ Outlined Paper Variant
+
+
+
+
+ Corners
+
+
+ The Paper component has rounded corners by default, but you can use
+ the square
prop to remove rounding.
+
+
+
+
+ Square Corners
+
+
+
+
+
+ );
+};
+export default SistentPaper;
diff --git a/src/sections/Projects/Sistent/components/popper/guidance.js b/src/sections/Projects/Sistent/components/popper/guidance.js
new file mode 100644
index 000000000000..8a9e4a4c9dab
--- /dev/null
+++ b/src/sections/Projects/Sistent/components/popper/guidance.js
@@ -0,0 +1,172 @@
+import React, { useState } from "react";
+import { navigate } from "gatsby";
+import { useLocation } from "@reach/router";
+import { SistentLayout } from "../../sistent-layout";
+import { SistentThemeProvider, Popper, Button, Box } from "@layer5/sistent";
+import { Row } from "../../../../../reusecore/Layout";
+import TabButton from "../../../../../reusecore/Button";
+import { useStyledDarkMode } from "../../../../../theme/app/useStyledDarkMode";
+
+export const PopperGuidance = () => {
+ const { isDark } = useStyledDarkMode();
+ const location = useLocation();
+ const [open, setOpen] = useState(false);
+ const [anchorEl, setAnchorEl] = useState(null);
+
+ const handleClick = (event) => {
+ setAnchorEl(event.currentTarget);
+ setOpen((prevOpen) => !prevOpen);
+ };
+
+ return (
+
+
+
+ Popper
+
+
+ The Popper component provides a mechanism for positioning content
+ dynamically relative to a reference element. It is commonly used for
+ tooltips, dropdowns, and modals, enhancing the user experience by
+ presenting contextual information without overcrowding the interface.
+
+
+ navigate("/projects/sistent/components/popper")}
+ title="Overview"
+ />
+
+ navigate("/projects/sistent/components/popper/guidance")
+ }
+ title="Guidance"
+ />
+ navigate("/projects/sistent/components/popper/code")}
+ title="Code"
+ />
+
+
+
+ Proper usage of the Popper component can greatly enhance user
+ experience by providing relevant contextual information at the right
+ time. Below are some guidelines to ensure effective implementation.
+
+
+
+ Positioning
+
+
+ The positioning of the Popper is critical for usability. Use the
+ `placement` prop to control where the Popper appears relative to its
+ anchor element. Options include:
+
+
+ top
+ bottom
+ left
+ right
+ top-start
+ top-end
+ bottom-start
+ bottom-end
+ left-start
+ left-end
+ right-start
+ right-end
+
+
+ Choosing the right position helps to prevent overlap with other
+ interface elements and improves readability.
+
+
+
+ Styling
+
+
+ The Popper component inherits styles from the Sistent theme. You can
+ customize the appearance by applying styles to the content inside
+ the Popper. For instance:
+
+
+
+
+
+
+ The content of the Popper.
+
+
+
+
+
+ Ensure that the styling aligns with your application's theme for a
+ cohesive look and feel.
+
+
+
+ Accessibility
+
+
+ It’s important to ensure that the Popper component is accessible to
+ all users. Here are some key considerations:
+
+
+
+ Use appropriate aria-
attributes to enhance screen
+ reader compatibility, such as aria-describedby
for
+ tooltips.
+
+
+ Ensure that the Popper is keyboard navigable, allowing users to
+ open/close it using keyboard shortcuts.
+
+
+ Provide sufficient contrast for the text and background colors to
+ improve readability.
+
+
+
+
+ Performance Tips
+
+
+ When using the Popper component, consider the following to optimize
+ performance:
+
+
+
+ Avoid excessive rendering by controlling when the Popper is
+ opened. Use state management effectively to minimize unnecessary
+ re-renders.
+
+
+ For complex popper content, consider lazy loading non-critical
+ elements to improve initial load times.
+
+
+
+
+
+ );
+};
From f46f7f23aa171fb5ba228713357e367b0292c0e8 Mon Sep 17 00:00:00 2001
From: Denish Tomar
Date: Wed, 16 Oct 2024 03:33:57 +0530
Subject: [PATCH 06/30] Add Kanvas Snapshot project to repository overview
Signed-off-by: Denish Tomar
Signed-off-by: NishantSinghhhhh
---
src/sections/Community/Handbook/repo-data.js | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/src/sections/Community/Handbook/repo-data.js b/src/sections/Community/Handbook/repo-data.js
index 65709eb5ecdb..9469d6de26b4 100644
--- a/src/sections/Community/Handbook/repo-data.js
+++ b/src/sections/Community/Handbook/repo-data.js
@@ -19,6 +19,7 @@ import appmeshLogo from "../../../assets/images/service-mesh-icons/aws-app-mesh.
import ciliumLogo from "../../../assets/images/service-mesh-icons/cilium.svg";
import wasm from "../../../assets/images/webassembly/webssembly_icon.svg";
import recognitionLogo from "../../../assets/images/recognition-program/recognition-program.png";
+import kanvasLogo from "../../../assets/images/kanvas-snapshot/kanvas-snapshot.svg";
export const repo_data = [
{
@@ -168,7 +169,15 @@ export const repo_data = [
link: [""],
repository: "https://github.com/layer5io/docs",
},
-
+ {
+ project: "Kanvas Snapshot",
+ image: kanvasLogo,
+ site: "https://layer5.io/solutions/gitops/snapshot",
+ language: "React.js",
+ maintainers_name: ["Vacant"],
+ link: [""],
+ repository: "https://github.com/layer5labs/kanvas-snapshot",
+ },
],
},
From ad2ca4ac36e644e9601376522e9ef639325c0fc1 Mon Sep 17 00:00:00 2001
From: Denish Tomar
Date: Sun, 20 Oct 2024 05:27:08 +0530
Subject: [PATCH 07/30] Add Kanvas Snapshot to backend
Signed-off-by: Denish Tomar
Signed-off-by: NishantSinghhhhh
---
src/sections/Community/Handbook/repo-data.js | 20 +++++++++++---------
1 file changed, 11 insertions(+), 9 deletions(-)
diff --git a/src/sections/Community/Handbook/repo-data.js b/src/sections/Community/Handbook/repo-data.js
index 9469d6de26b4..e411834aefd5 100644
--- a/src/sections/Community/Handbook/repo-data.js
+++ b/src/sections/Community/Handbook/repo-data.js
@@ -169,15 +169,6 @@ export const repo_data = [
link: [""],
repository: "https://github.com/layer5io/docs",
},
- {
- project: "Kanvas Snapshot",
- image: kanvasLogo,
- site: "https://layer5.io/solutions/gitops/snapshot",
- language: "React.js",
- maintainers_name: ["Vacant"],
- link: [""],
- repository: "https://github.com/layer5labs/kanvas-snapshot",
- },
],
},
@@ -320,6 +311,17 @@ export const repo_data = [
// language: "Golang",
// repository: "https://github.com/layer5io/meshmonkey",
// },
+ {
+ project: "Kanvas Snapshot",
+ image: kanvasLogo,
+ site: "https://layer5.io/solutions/gitops/snapshot",
+ language: "GitHub Actions",
+ maintainers_name: ["Vacant"],
+ link: [""],
+ description:
+ "Generates visual snapshots of infrastructure as code (e.g., Kubernetes manifests, Helm charts) and delivers them to pull requests for automated review.",
+ repository: "https://github.com/layer5labs/kanvas-snapshot",
+ },
],
},
From 454f2169e91fd596fc84efe6e8f0d7da66eaa7ed Mon Sep 17 00:00:00 2001
From: jerensl <54782057+jerensl@users.noreply.github.com>
Date: Mon, 21 Oct 2024 23:31:08 +0800
Subject: [PATCH 08/30] ci: bump kanvas snapshot
Signed-off-by: jerensl <54782057+jerensl@users.noreply.github.com>
Signed-off-by: NishantSinghhhhh
---
.github/workflows/meshmap.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/meshmap.yml b/.github/workflows/meshmap.yml
index a80a9c935ad7..91bf0525467d 100644
--- a/.github/workflows/meshmap.yml
+++ b/.github/workflows/meshmap.yml
@@ -38,7 +38,7 @@ jobs:
path: action
repository: layer5labs/kanvas-snapshot
- id: test_result
- uses: layer5labs/Kanvas-Snapshot@v0.2.13
+ uses: layer5labs/Kanvas-Snapshot@v0.2.15
with:
githubToken: ${{ secrets.GITHUB_TOKEN }}
mesheryToken: ${{ secrets.MESHERY_TOKEN }}
From 4e605a73f7ccd0c42977d0d4e1996b74ae7923da Mon Sep 17 00:00:00 2001
From: NishantSinghhhhh
Date: Mon, 21 Oct 2024 21:46:55 +0530
Subject: [PATCH 09/30] Did the Required changes
Signed-off-by: NishantSinghhhhh
---
.../Projects/Sistent/components/link/code.js | 32 ++++++++-----------
.../Sistent/components/link/guidance.js | 17 +++-------
.../Projects/Sistent/components/link/index.js | 11 +++----
3 files changed, 24 insertions(+), 36 deletions(-)
diff --git a/src/sections/Projects/Sistent/components/link/code.js b/src/sections/Projects/Sistent/components/link/code.js
index 8cab957f4a98..cd76aaeb2a63 100644
--- a/src/sections/Projects/Sistent/components/link/code.js
+++ b/src/sections/Projects/Sistent/components/link/code.js
@@ -16,7 +16,7 @@ const codes = [
href="Your Link"
style={{
textDecoration: "none",
- border: "1px solid black",
+ color:"green",
padding: "6px",
marginLeft: "10px",
}}
@@ -30,8 +30,7 @@ const codes = [
href="Your Path"
style={{
textDecoration: "none",
- border: "1px solid blue",
- color: "blue",
+ color: "green",
padding: "6px",
marginLeft: "10px",
}}
@@ -45,7 +44,7 @@ const codes = [
href="Your Path"
style={{
textDecoration: "underline",
- color: "blue",
+ color: "green",
padding: "6px",
marginLeft: "10px",
}}
@@ -60,7 +59,7 @@ const codes = [
href="Your Path"
style={{
textDecoration: "none",
- color: "green",
+ color: "blue",
fontWeight: "bold",
fontSize: "16px",
padding: "6px",
@@ -77,12 +76,12 @@ const codes = [
href="/path-to-file.zip"
download="file.zip"
style={{
- color: "blue",
+ color: "green",
fontWeight: "bold",
fontSize: "16px",
padding: "6px",
marginLeft: "10px",
- borderBottom: "2px solid blue",
+
}}
>
Download File
@@ -96,7 +95,7 @@ const codes = [
rel="noopener noreferrer"
style={{
textDecoration: "underline",
- color: "blue",
+ color: "green",
padding: "6px",
marginLeft: "10px",
}}
@@ -165,7 +164,7 @@ export const LinkCode = () => {
href="your path"
style={{
textDecoration: "none",
- border: "1px solid black",
+ color: "green",
padding: "6px",
marginLeft: "10px",
}}
@@ -193,8 +192,7 @@ export const LinkCode = () => {
{
href="Your Path"
style={{
textDecoration: "underline",
- color: "blue",
+ color: "green",
padding: "6px",
- border: "1px solid blue",
marginLeft: "10px",
}}
>
@@ -241,12 +238,12 @@ export const LinkCode = () => {
href="Your Path"
style={{
textDecoration: "none",
- color: "green",
+ color: "blue",
fontWeight: "bold",
fontSize: "16px",
padding: "6px",
marginLeft: "10px",
- borderBottom: "2px dashed green",
+ borderBottom: "2px dashed blue",
}}
>
Customized Link
@@ -268,12 +265,11 @@ export const LinkCode = () => {
download="file.zip"
style={{
textDecoration: "none",
- color: "blue",
+ color: "green",
fontWeight: "bold",
fontSize: "16px",
padding: "6px",
marginLeft: "10px",
- borderBottom: "2px solid blue",
}}
>
Download File
@@ -298,7 +294,7 @@ export const LinkCode = () => {
rel="noopener noreferrer"
style={{
textDecoration: "underline",
- color: "blue",
+ color: "green",
padding: "6px",
marginLeft: "10px",
}}
diff --git a/src/sections/Projects/Sistent/components/link/guidance.js b/src/sections/Projects/Sistent/components/link/guidance.js
index 5f29b12970d8..37b6c9f3225d 100644
--- a/src/sections/Projects/Sistent/components/link/guidance.js
+++ b/src/sections/Projects/Sistent/components/link/guidance.js
@@ -74,13 +74,11 @@ export const LinkGuidancePage = () => {
style={{
marginLeft: "10px",
textDecoration: "none",
- color: isDark ? "white" : "black", // Change color based on the theme
+ color: "green", // Change color based on the theme
padding: "6px",
- border: "2px solid",
- borderColor: isDark ? "white" : "black",
}}
>
- Navigate to Layer5
+ Navigate to Layer 5
@@ -96,13 +94,11 @@ export const LinkGuidancePage = () => {
display: "inline-block",
marginLeft: "10px",
textDecoration: "none",
- color: isDark ? "white" : "black",
- backgroundColor: isDark ? "#3f51b5" : "#2196f3", // Button background color
+ color: "green",
padding: "10px 20px",
borderRadius: "4px",
fontWeight: "bold",
- border: "2px solid",
- borderColor: isDark ? "white" : "black",
+ border: "2px solid black",
}}
>
Get Started
@@ -132,16 +128,13 @@ export const LinkGuidancePage = () => {
Download Links
- These links allow users to download files, documents, or resources. It’s essential to provide information about the file type and size to prepare users for what they’re downloading.
+ These links allow users to download files, documents, or resources. It’s essential to provide information about the file type and size to prepare users for what they’re downloading. You just have to pass Download as prop in link component.
{
href="https://layer5.io/"
style={{
marginLeft: "10px",
- textDecoration: "none",
- color: "black",
+ color: "green",
padding: "6px",
}}
>
@@ -89,8 +88,7 @@ const SistentLink = () => {
The links can be customized in the below mentioned way
1. Color
-
- You can customize link colors with predefined values such as primary, secondary, error, success, warning, info, or inherit existing text colors like Blue, Red.
+
Nomally the color of Sistent Link is green , but on adding styling properties, You can customize link colors with predefined values such as primary, secondary, error, success, warning, info, or inherit existing text colors like Blue, Red.
@@ -122,6 +120,7 @@ const SistentLink = () => {
style={{
marginLeft: "10px",
textDecoration: "underline",
+ color:"green",
padding: "6px",
}}
>
@@ -142,9 +141,9 @@ const SistentLink = () => {
style={{
marginLeft: "10px",
textDecoration: "underline",
- color: "blue",
+ color: "green",
padding: "6px",
- border: "2px solid blue",
+ border: "2px solid green",
}}
variant="body1"
>
From 1b38291b5da07470b641f9dc7eb5e66bcddc5c61 Mon Sep 17 00:00:00 2001
From: NISHANT SINGH <151461374+NishantSinghhhhh@users.noreply.github.com>
Date: Mon, 21 Oct 2024 22:23:09 +0530
Subject: [PATCH 10/30] Update guidance.js
Signed-off-by: NISHANT SINGH <151461374+NishantSinghhhhh@users.noreply.github.com>
Signed-off-by: NishantSinghhhhh
---
src/sections/Projects/Sistent/components/link/guidance.js | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/sections/Projects/Sistent/components/link/guidance.js b/src/sections/Projects/Sistent/components/link/guidance.js
index 37b6c9f3225d..c75c1517eb29 100644
--- a/src/sections/Projects/Sistent/components/link/guidance.js
+++ b/src/sections/Projects/Sistent/components/link/guidance.js
@@ -89,7 +89,7 @@ export const LinkGuidancePage = () => {
{
Download Links
- These links allow users to download files, documents, or resources. It’s essential to provide information about the file type and size to prepare users for what they’re downloading. You just have to pass Download as prop in link component.
+ These links allow users to download files, documents, or resources. It’s essential to provide information about the file type and size to prepare users for what they’re downloading. You just have to pass Download as prop in link component.
@@ -167,4 +167,4 @@ export const LinkGuidancePage = () => {
);
-};
\ No newline at end of file
+};
From 7d4bfc72e1c1c148bb83f7f7c3a87f4314748a7d Mon Sep 17 00:00:00 2001
From: NISHANT SINGH <151461374+NishantSinghhhhh@users.noreply.github.com>
Date: Mon, 21 Oct 2024 22:24:12 +0530
Subject: [PATCH 11/30] Update index.js
Signed-off-by: NISHANT SINGH <151461374+NishantSinghhhhh@users.noreply.github.com>
Signed-off-by: NishantSinghhhhh
---
src/sections/Projects/Sistent/components/link/index.js | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/sections/Projects/Sistent/components/link/index.js b/src/sections/Projects/Sistent/components/link/index.js
index d11d2c996787..71ce5f1a4add 100644
--- a/src/sections/Projects/Sistent/components/link/index.js
+++ b/src/sections/Projects/Sistent/components/link/index.js
@@ -88,7 +88,7 @@ const SistentLink = () => {
The links can be customized in the below mentioned way
1. Color
- Nomally the color of Sistent Link is green , but on adding styling properties, You can customize link colors with predefined values such as primary, secondary, error, success, warning, info, or inherit existing text colors like Blue, Red.
+
Nomally the color of Sistent Link is green , but on adding styling properties, You can customize link colors with predefined values such as primary, secondary, error, success, warning, info, or inherit existing text colors like Blue, Red.
@@ -120,7 +120,7 @@ const SistentLink = () => {
style={{
marginLeft: "10px",
textDecoration: "underline",
- color:"green",
+ color: "green",
padding: "6px",
}}
>
@@ -185,4 +185,4 @@ const SistentLink = () => {
);
};
-export default SistentLink;
\ No newline at end of file
+export default SistentLink;
From 1e70de092a477976e2b9a2f44e272d6b9684f065 Mon Sep 17 00:00:00 2001
From: NISHANT SINGH <151461374+NishantSinghhhhh@users.noreply.github.com>
Date: Mon, 21 Oct 2024 22:26:12 +0530
Subject: [PATCH 12/30] Update guidance.js
Signed-off-by: NISHANT SINGH <151461374+NishantSinghhhhh@users.noreply.github.com>
Signed-off-by: NishantSinghhhhh
---
src/sections/Projects/Sistent/components/link/guidance.js | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/sections/Projects/Sistent/components/link/guidance.js b/src/sections/Projects/Sistent/components/link/guidance.js
index c75c1517eb29..36dfc2ce72cb 100644
--- a/src/sections/Projects/Sistent/components/link/guidance.js
+++ b/src/sections/Projects/Sistent/components/link/guidance.js
@@ -94,7 +94,8 @@ export const LinkGuidancePage = () => {
display: "inline-block",
marginLeft: "10px",
textDecoration: "none",
- color: "green",
+ color: "black",
+ backgroundColor: "yellow",
padding: "10px 20px",
borderRadius: "4px",
fontWeight: "bold",
From edfc9d478af87fb3144cf35c8a8d5e51ff2e3098 Mon Sep 17 00:00:00 2001
From: Thiha Min Thant
Date: Mon, 21 Oct 2024 21:40:50 +0800
Subject: [PATCH 13/30] ci: Add 'project/sistent' label for PRs affecting
Sistent files in labeler.yml
Signed-off-by: Thiha Min Thant
Signed-off-by: NishantSinghhhhh
---
.github/labeler.yml | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/.github/labeler.yml b/.github/labeler.yml
index 49da5263a5b2..f2d1bece29cd 100644
--- a/.github/labeler.yml
+++ b/.github/labeler.yml
@@ -97,3 +97,9 @@ project/kanvas:
- changed-files:
- any-glob-to-any-file:
- "src/sections/Kanvas/**/*"
+project/sistent:
+- changed-files:
+ - any-glob-to-any-file:
+ - "src/components/SistentNavigation/**/*"
+ - "src/pages/projects/sistent/**/*"
+ - "src/sections/Projects/Sistent/**/*"
From b847bf704a3a719e041b8f30e20229ae1016e6ae Mon Sep 17 00:00:00 2001
From: MUzairS15
Date: Tue, 22 Oct 2024 00:23:12 +0000
Subject: [PATCH 14/30] [Docs] Generated documentation for Integration
Signed-off-by: l5io
Signed-off-by: NishantSinghhhhh
---
.../integrations/cluster-api-provider-openstack/index.mdx | 6 ------
.../icons/components/section/icons/color/section-color.svg | 5 +++--
.../icons/components/section/icons/white/section-white.svg | 5 +++--
3 files changed, 6 insertions(+), 10 deletions(-)
diff --git a/src/collections/integrations/cluster-api-provider-openstack/index.mdx b/src/collections/integrations/cluster-api-provider-openstack/index.mdx
index e7cd337b6460..7fdb04f6554a 100644
--- a/src/collections/integrations/cluster-api-provider-openstack/index.mdx
+++ b/src/collections/integrations/cluster-api-provider-openstack/index.mdx
@@ -44,12 +44,6 @@ components: [
"colorIcon": "icons/components/open-stack-machine-template/icons/color/open-stack-machine-template-color.svg",
"whiteIcon": "icons/components/open-stack-machine-template/icons/white/open-stack-machine-template-white.svg",
"description": "",
-},
-{
-"name": "open-stack-server",
-"colorIcon": "icons/components/open-stack-server/icons/color/open-stack-server-color.svg",
-"whiteIcon": "icons/components/open-stack-server/icons/white/open-stack-server-white.svg",
-"description": "",
}]
featureList: [
"Automates Kubernetes cluster provisioning",
diff --git a/src/collections/integrations/meshery-core/icons/components/section/icons/color/section-color.svg b/src/collections/integrations/meshery-core/icons/components/section/icons/color/section-color.svg
index f6fc58fb2ef5..81f9276710cf 100644
--- a/src/collections/integrations/meshery-core/icons/components/section/icons/color/section-color.svg
+++ b/src/collections/integrations/meshery-core/icons/components/section/icons/color/section-color.svg
@@ -1,3 +1,4 @@
-
-
+
+
+
\ No newline at end of file
diff --git a/src/collections/integrations/meshery-core/icons/components/section/icons/white/section-white.svg b/src/collections/integrations/meshery-core/icons/components/section/icons/white/section-white.svg
index 7d355f5221fc..90f4e0ddaf26 100644
--- a/src/collections/integrations/meshery-core/icons/components/section/icons/white/section-white.svg
+++ b/src/collections/integrations/meshery-core/icons/components/section/icons/white/section-white.svg
@@ -1,3 +1,4 @@
-
-
+
+
+
\ No newline at end of file
From 7552b8751c3041075d4fff8819d8c83396b7f167 Mon Sep 17 00:00:00 2001
From: NISHANT SINGH <151461374+NishantSinghhhhh@users.noreply.github.com>
Date: Tue, 22 Oct 2024 11:58:30 +0530
Subject: [PATCH 15/30] Update index.js
Signed-off-by: NishantSinghhhhh
---
src/sections/Projects/Sistent/components/link/index.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/sections/Projects/Sistent/components/link/index.js b/src/sections/Projects/Sistent/components/link/index.js
index 71ce5f1a4add..0ea769203831 100644
--- a/src/sections/Projects/Sistent/components/link/index.js
+++ b/src/sections/Projects/Sistent/components/link/index.js
@@ -16,7 +16,7 @@ const SistentLink = () => {
- link
+ Link
A link component is a navigational element that directs users to another page or section within an application.
From bc0d2149cecbc267f7b09bf2d0509d3444adcbae Mon Sep 17 00:00:00 2001
From: NISHANT SINGH <151461374+NishantSinghhhhh@users.noreply.github.com>
Date: Tue, 22 Oct 2024 13:21:14 +0530
Subject: [PATCH 16/30] Update code.js
Signed-off-by: NISHANT SINGH <151461374+NishantSinghhhhh@users.noreply.github.com>
Signed-off-by: NishantSinghhhhh
---
.../Projects/Sistent/components/link/code.js | 39 +------------------
1 file changed, 2 insertions(+), 37 deletions(-)
diff --git a/src/sections/Projects/Sistent/components/link/code.js b/src/sections/Projects/Sistent/components/link/code.js
index cd76aaeb2a63..58f76a87a88c 100644
--- a/src/sections/Projects/Sistent/components/link/code.js
+++ b/src/sections/Projects/Sistent/components/link/code.js
@@ -16,7 +16,6 @@ const codes = [
href="Your Link"
style={{
textDecoration: "none",
- color:"green",
padding: "6px",
marginLeft: "10px",
}}
@@ -30,7 +29,6 @@ const codes = [
href="Your Path"
style={{
textDecoration: "none",
- color: "green",
padding: "6px",
marginLeft: "10px",
}}
@@ -44,7 +42,6 @@ const codes = [
href="Your Path"
style={{
textDecoration: "underline",
- color: "green",
padding: "6px",
marginLeft: "10px",
}}
@@ -76,7 +73,6 @@ const codes = [
href="/path-to-file.zip"
download="file.zip"
style={{
- color: "green",
fontWeight: "bold",
fontSize: "16px",
padding: "6px",
@@ -95,7 +91,6 @@ const codes = [
rel="noopener noreferrer"
style={{
textDecoration: "underline",
- color: "green",
padding: "6px",
marginLeft: "10px",
}}
@@ -164,7 +159,6 @@ export const LinkCode = () => {
href="your path"
style={{
textDecoration: "none",
- color: "green",
padding: "6px",
marginLeft: "10px",
}}
@@ -192,7 +186,7 @@ export const LinkCode = () => {
{
href="Your Path"
style={{
textDecoration: "underline",
- color: "green",
padding: "6px",
marginLeft: "10px",
}}
@@ -252,33 +245,6 @@ export const LinkCode = () => {
-
- Download Link
-
- Download Links are essential when you want to provide users with downloadable content such as files, PDFs, or documents. These links can be styled to clearly indicate a download action to the user.
-
-
-
-
-
- Download File
-
-
-
-
-
-
Security Considerations
@@ -294,7 +260,6 @@ export const LinkCode = () => {
rel="noopener noreferrer"
style={{
textDecoration: "underline",
- color: "green",
padding: "6px",
marginLeft: "10px",
}}
@@ -309,4 +274,4 @@ export const LinkCode = () => {
);
-};
\ No newline at end of file
+};
From 89a4a3824185ae8f225aa37f5ae691a252902b07 Mon Sep 17 00:00:00 2001
From: NISHANT SINGH <151461374+NishantSinghhhhh@users.noreply.github.com>
Date: Tue, 22 Oct 2024 13:23:10 +0530
Subject: [PATCH 17/30] Update code.js
Signed-off-by: NISHANT SINGH <151461374+NishantSinghhhhh@users.noreply.github.com>
Signed-off-by: NishantSinghhhhh
---
.../Projects/Sistent/components/link/code.js | 20 ++-----------------
1 file changed, 2 insertions(+), 18 deletions(-)
diff --git a/src/sections/Projects/Sistent/components/link/code.js b/src/sections/Projects/Sistent/components/link/code.js
index 58f76a87a88c..586154a5144c 100644
--- a/src/sections/Projects/Sistent/components/link/code.js
+++ b/src/sections/Projects/Sistent/components/link/code.js
@@ -61,29 +61,13 @@ const codes = [
fontSize: "16px",
padding: "6px",
marginLeft: "10px",
- borderBottom: "2px dashed green",
+ borderBottom: "2px dashed blue",
}}
>
Customized Link
`,
- `
-
- Download File
-
- `,
-
`
{
-
+
From 4110f861d9fee70d6aa4320c544720b5724ecfdb Mon Sep 17 00:00:00 2001
From: NISHANT SINGH <151461374+NishantSinghhhhh@users.noreply.github.com>
Date: Tue, 22 Oct 2024 13:48:13 +0530
Subject: [PATCH 18/30] Update guidance.js
Signed-off-by: NISHANT SINGH <151461374+NishantSinghhhhh@users.noreply.github.com>
Signed-off-by: NishantSinghhhhh
---
.../Projects/Sistent/components/link/guidance.js | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/src/sections/Projects/Sistent/components/link/guidance.js b/src/sections/Projects/Sistent/components/link/guidance.js
index 36dfc2ce72cb..00885f717d9d 100644
--- a/src/sections/Projects/Sistent/components/link/guidance.js
+++ b/src/sections/Projects/Sistent/components/link/guidance.js
@@ -2,7 +2,7 @@ import React from "react";
import { navigate } from "gatsby";
import { useLocation } from "@reach/router";
import { Row } from "../../../../../reusecore/Layout";
-import { Button, SistentThemeProvider,Link } from "@layer5/sistent";
+import { Button, SistentThemeProvider, Link, ExternalLinkIcon} from "@layer5/sistent";
import { SistentLayout } from "../../sistent-layout";
import TabButton from "../../../../../reusecore/Button";
@@ -118,12 +118,14 @@ export const LinkGuidancePage = () => {
rel="noopener noreferrer"
style={{
marginLeft: "10px",
- textDecoration: "underline",
- color: isDark ? "lightblue" : "blue",
+ textDecoration: "none",
padding: "6px",
+ cursor: "pointer",
}}
+ onMouseEnter={(e) => (e.target.style.textDecoration = "underline")}
+ onMouseLeave={(e) => (e.target.style.textDecoration = "none")}
>
- Visit External Resource
+ Visit External Resource
From 00c1c1c616825163bd73052715bd95d6c3cce97c Mon Sep 17 00:00:00 2001
From: NISHANT SINGH <151461374+NishantSinghhhhh@users.noreply.github.com>
Date: Tue, 22 Oct 2024 14:12:42 +0530
Subject: [PATCH 19/30] Update guidance.js
Signed-off-by: NISHANT SINGH <151461374+NishantSinghhhhh@users.noreply.github.com>
Signed-off-by: NishantSinghhhhh
---
.../Sistent/components/link/guidance.js | 37 ++-----------------
1 file changed, 3 insertions(+), 34 deletions(-)
diff --git a/src/sections/Projects/Sistent/components/link/guidance.js b/src/sections/Projects/Sistent/components/link/guidance.js
index 00885f717d9d..ef9070e2fe31 100644
--- a/src/sections/Projects/Sistent/components/link/guidance.js
+++ b/src/sections/Projects/Sistent/components/link/guidance.js
@@ -6,6 +6,7 @@ import { Button, SistentThemeProvider, Link, ExternalLinkIcon} from "@layer5/sis
import { SistentLayout } from "../../sistent-layout";
import TabButton from "../../../../../reusecore/Button";
+import StyledButton from "../../../../../reusecore/Button";
import { useStyledDarkMode } from "../../../../../theme/app/useStyledDarkMode";
export const LinkGuidancePage = () => {
@@ -88,22 +89,9 @@ export const LinkGuidancePage = () => {
-
+
Get Started
-
+
External Links
@@ -129,25 +117,6 @@ export const LinkGuidancePage = () => {
- Download Links
-
- These links allow users to download files, documents, or resources. It’s essential to provide information about the file type and size to prepare users for what they’re downloading. You just have to pass Download as prop in link component.
-
-
-
-
- Download File
-
-
-
Labeling
From c93765ab2b9942e6cffde858421879d4cc6765ad Mon Sep 17 00:00:00 2001
From: NishantSinghhhhh
Date: Tue, 22 Oct 2024 15:11:41 +0530
Subject: [PATCH 20/30] Chanegd the button style , removed green color prop
from links and also removed download button
Signed-off-by: NishantSinghhhhh
---
.../Projects/Sistent/components/link/code.js | 6 +++---
.../Sistent/components/link/guidance.js | 18 +++++++++++++++---
.../Projects/Sistent/components/link/index.js | 4 +---
3 files changed, 19 insertions(+), 9 deletions(-)
diff --git a/src/sections/Projects/Sistent/components/link/code.js b/src/sections/Projects/Sistent/components/link/code.js
index 586154a5144c..dc259b9a8a57 100644
--- a/src/sections/Projects/Sistent/components/link/code.js
+++ b/src/sections/Projects/Sistent/components/link/code.js
@@ -25,15 +25,15 @@ const codes = [
`,
`
-
- Customized Link 1
+ Colored Link
`,
diff --git a/src/sections/Projects/Sistent/components/link/guidance.js b/src/sections/Projects/Sistent/components/link/guidance.js
index ef9070e2fe31..3db32b59f66e 100644
--- a/src/sections/Projects/Sistent/components/link/guidance.js
+++ b/src/sections/Projects/Sistent/components/link/guidance.js
@@ -2,7 +2,7 @@ import React from "react";
import { navigate } from "gatsby";
import { useLocation } from "@reach/router";
import { Row } from "../../../../../reusecore/Layout";
-import { Button, SistentThemeProvider, Link, ExternalLinkIcon} from "@layer5/sistent";
+import { Button, SistentThemeProvider, Link, ExternalLinkIcon } from "@layer5/sistent";
import { SistentLayout } from "../../sistent-layout";
import TabButton from "../../../../../reusecore/Button";
@@ -90,7 +90,16 @@ export const LinkGuidancePage = () => {
- Get Started
+
+ Get Started
+
@@ -109,14 +118,17 @@ export const LinkGuidancePage = () => {
textDecoration: "none",
padding: "6px",
cursor: "pointer",
+ display: "inline-flex",
+ alignItems: "center",
}}
onMouseEnter={(e) => (e.target.style.textDecoration = "underline")}
onMouseLeave={(e) => (e.target.style.textDecoration = "none")}
>
- Visit External Resource
+ Visit External Resource
+
Labeling
diff --git a/src/sections/Projects/Sistent/components/link/index.js b/src/sections/Projects/Sistent/components/link/index.js
index 0ea769203831..41cc740295e1 100644
--- a/src/sections/Projects/Sistent/components/link/index.js
+++ b/src/sections/Projects/Sistent/components/link/index.js
@@ -74,7 +74,6 @@ const SistentLink = () => {
href="https://layer5.io/"
style={{
marginLeft: "10px",
- color: "green",
padding: "6px",
}}
>
@@ -120,7 +119,6 @@ const SistentLink = () => {
style={{
marginLeft: "10px",
textDecoration: "underline",
- color: "green",
padding: "6px",
}}
>
@@ -141,7 +139,7 @@ const SistentLink = () => {
style={{
marginLeft: "10px",
textDecoration: "underline",
- color: "green",
+ color: "blue",
padding: "6px",
border: "2px solid green",
}}
From 4b99c719493485e6558174bc69ec2ddfdc31d608 Mon Sep 17 00:00:00 2001
From: NishantSinghhhhh
Date: Tue, 22 Oct 2024 15:12:49 +0530
Subject: [PATCH 21/30] Chanegd the button style , removed green color prop
from links and also removed download button
Signed-off-by: NishantSinghhhhh
---
src/sections/Projects/Sistent/components/link/guidance.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/sections/Projects/Sistent/components/link/guidance.js b/src/sections/Projects/Sistent/components/link/guidance.js
index 3db32b59f66e..e07030a91889 100644
--- a/src/sections/Projects/Sistent/components/link/guidance.js
+++ b/src/sections/Projects/Sistent/components/link/guidance.js
@@ -2,7 +2,7 @@ import React from "react";
import { navigate } from "gatsby";
import { useLocation } from "@reach/router";
import { Row } from "../../../../../reusecore/Layout";
-import { Button, SistentThemeProvider, Link, ExternalLinkIcon } from "@layer5/sistent";
+import { SistentThemeProvider, Link, ExternalLinkIcon } from "@layer5/sistent";
import { SistentLayout } from "../../sistent-layout";
import TabButton from "../../../../../reusecore/Button";
From f5ebd918a352958f5ad867be1238a8bc95beb3c9 Mon Sep 17 00:00:00 2001
From: NISHANT SINGH <151461374+NishantSinghhhhh@users.noreply.github.com>
Date: Thu, 24 Oct 2024 19:13:22 +0530
Subject: [PATCH 22/30] Updated index.js
Signed-off-by: NISHANT SINGH <151461374+NishantSinghhhhh@users.noreply.github.com>
---
src/sections/Projects/Sistent/components/index.js | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/sections/Projects/Sistent/components/index.js b/src/sections/Projects/Sistent/components/index.js
index 6647f9deae9b..4f1e4797ed7e 100644
--- a/src/sections/Projects/Sistent/components/index.js
+++ b/src/sections/Projects/Sistent/components/index.js
@@ -45,6 +45,7 @@ const componentsData = [
url: "/projects/sistent/components/popper",
},
{
+ id: 6,
name: "Link",
description:
"Links are essential and integral components of an interface. They are primarily used for navigation, guiding users to the next step in a journey or redirecting them to relevant sections or pages.",
From 8652ba5ca376ec4bc59bd25dfe483f2cc5c0a16f Mon Sep 17 00:00:00 2001
From: NISHANT SINGH <151461374+NishantSinghhhhh@users.noreply.github.com>
Date: Thu, 24 Oct 2024 19:55:11 +0530
Subject: [PATCH 23/30] Update code.js
Signed-off-by: NISHANT SINGH <151461374+NishantSinghhhhh@users.noreply.github.com>
---
src/sections/Projects/Sistent/components/link/code.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/sections/Projects/Sistent/components/link/code.js b/src/sections/Projects/Sistent/components/link/code.js
index dc259b9a8a57..82688dbd9c63 100644
--- a/src/sections/Projects/Sistent/components/link/code.js
+++ b/src/sections/Projects/Sistent/components/link/code.js
@@ -3,7 +3,7 @@ import { navigate } from "gatsby";
import { useLocation } from "@reach/router";
import { SistentThemeProvider, Link } from "@layer5/sistent";
-import { CodeBlock } from "./code-block";
+import { CodeBlock } from "../button/code.js";
// import { FaArrowRight } from "@react-icons/all-files/fa/FaArrowRight";
import { SistentLayout } from "../../sistent-layout";
From 9b47123d72018477412401896ea9e0080dfdcc2f Mon Sep 17 00:00:00 2001
From: NISHANT SINGH <151461374+NishantSinghhhhh@users.noreply.github.com>
Date: Thu, 24 Oct 2024 19:58:46 +0530
Subject: [PATCH 24/30] Deleting code-block.js
Signed-off-by: NISHANT SINGH <151461374+NishantSinghhhhh@users.noreply.github.com>
---
.../Sistent/components/link/code-block.js | 19 -------------------
1 file changed, 19 deletions(-)
diff --git a/src/sections/Projects/Sistent/components/link/code-block.js b/src/sections/Projects/Sistent/components/link/code-block.js
index 34bf21d9b570..8b137891791f 100644
--- a/src/sections/Projects/Sistent/components/link/code-block.js
+++ b/src/sections/Projects/Sistent/components/link/code-block.js
@@ -1,20 +1 @@
-import React, { useState } from "react";
-import Code from "../../../../../components/CodeBlock";
-export const CodeBlock = ({ name, code }) => {
- const [showCode, setShowCode] = useState(false);
- const onChange = () => {
- setShowCode((prev) => !prev);
- };
- return (
-
-
-
- Show Code
-
- {showCode && (
-
- )}
-
- );
-};
\ No newline at end of file
From 59b3df469c0dd23bd5e44576724ea35d148d85d6 Mon Sep 17 00:00:00 2001
From: NishantSinghhhhh
Date: Thu, 24 Oct 2024 20:06:07 +0530
Subject: [PATCH 25/30] Removed the extra component
Signed-off-by: NishantSinghhhhh
---
src/sections/Projects/Sistent/components/index.js | 2 +-
src/sections/Projects/Sistent/components/link/code-block.js | 1 -
2 files changed, 1 insertion(+), 2 deletions(-)
delete mode 100644 src/sections/Projects/Sistent/components/link/code-block.js
diff --git a/src/sections/Projects/Sistent/components/index.js b/src/sections/Projects/Sistent/components/index.js
index 0b1d7cb855bc..af50aab51e00 100644
--- a/src/sections/Projects/Sistent/components/index.js
+++ b/src/sections/Projects/Sistent/components/index.js
@@ -58,7 +58,7 @@ const componentsData = [
"Links are essential and integral components of an interface. They are primarily used for navigation, guiding users to the next step in a journey or redirecting them to relevant sections or pages.",
url: "/projects/sistent/components/link",
},
- }
+
];
const SistentComponents = () => {
diff --git a/src/sections/Projects/Sistent/components/link/code-block.js b/src/sections/Projects/Sistent/components/link/code-block.js
deleted file mode 100644
index 8b137891791f..000000000000
--- a/src/sections/Projects/Sistent/components/link/code-block.js
+++ /dev/null
@@ -1 +0,0 @@
-
From 8c668b7d6d4a5a83115ca8306800c558c49c8928 Mon Sep 17 00:00:00 2001
From: NishantSinghhhhh
Date: Thu, 24 Oct 2024 23:40:29 +0530
Subject: [PATCH 26/30] Did changes to pass the github tests
Signed-off-by: NishantSinghhhhh
---
src/sections/Projects/Sistent/components/index.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/sections/Projects/Sistent/components/index.js b/src/sections/Projects/Sistent/components/index.js
index af50aab51e00..ca05b2d29792 100644
--- a/src/sections/Projects/Sistent/components/index.js
+++ b/src/sections/Projects/Sistent/components/index.js
@@ -58,7 +58,7 @@ const componentsData = [
"Links are essential and integral components of an interface. They are primarily used for navigation, guiding users to the next step in a journey or redirecting them to relevant sections or pages.",
url: "/projects/sistent/components/link",
},
-
+
];
const SistentComponents = () => {
From af47fd9eb57540e70c4f7b71724b2b78bfea0066 Mon Sep 17 00:00:00 2001
From: NishantSinghhhhh
Date: Sun, 27 Oct 2024 15:32:53 +0530
Subject: [PATCH 27/30] chnanged the path
Signed-off-by: NishantSinghhhhh
---
src/sections/Projects/Sistent/components/button/code-block.js | 1 +
src/sections/Projects/Sistent/components/link/code.js | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/sections/Projects/Sistent/components/button/code-block.js b/src/sections/Projects/Sistent/components/button/code-block.js
index b3e4945c40e5..2a7463d6ceec 100644
--- a/src/sections/Projects/Sistent/components/button/code-block.js
+++ b/src/sections/Projects/Sistent/components/button/code-block.js
@@ -1,5 +1,6 @@
import React, { useState } from "react";
import Code from "../../../../../components/CodeBlock";
+
export const CodeBlock = ({ name, code }) => {
const [showCode, setShowCode] = useState(false);
const onChange = () => {
diff --git a/src/sections/Projects/Sistent/components/link/code.js b/src/sections/Projects/Sistent/components/link/code.js
index 82688dbd9c63..2096cd6fd8f8 100644
--- a/src/sections/Projects/Sistent/components/link/code.js
+++ b/src/sections/Projects/Sistent/components/link/code.js
@@ -3,7 +3,7 @@ import { navigate } from "gatsby";
import { useLocation } from "@reach/router";
import { SistentThemeProvider, Link } from "@layer5/sistent";
-import { CodeBlock } from "../button/code.js";
+import { CodeBlock } from "../button/code-block";
// import { FaArrowRight } from "@react-icons/all-files/fa/FaArrowRight";
import { SistentLayout } from "../../sistent-layout";
From d59078836469be31b48843467de2c1eda4126043 Mon Sep 17 00:00:00 2001
From: MUzairS15
Date: Mon, 28 Oct 2024 00:24:37 +0000
Subject: [PATCH 28/30] [Docs] Generated documentation for Integration
Signed-off-by: l5io
---
src/collections/integrations/kong-mesh/index.mdx | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/collections/integrations/kong-mesh/index.mdx b/src/collections/integrations/kong-mesh/index.mdx
index 361887e71b1b..a831cbf1328a 100644
--- a/src/collections/integrations/kong-mesh/index.mdx
+++ b/src/collections/integrations/kong-mesh/index.mdx
@@ -332,6 +332,12 @@ components: [
"colorIcon": "icons/components/mesh-multi-zone-service/icons/color/mesh-multi-zone-service-color.svg",
"whiteIcon": "icons/components/mesh-multi-zone-service/icons/white/mesh-multi-zone-service-white.svg",
"description": "",
+},
+{
+"name": "mesh-tls",
+"colorIcon": "icons/components/mesh-tls/icons/color/mesh-tls-color.svg",
+"whiteIcon": "icons/components/mesh-tls/icons/white/mesh-tls-white.svg",
+"description": "",
}]
featureList: [
"Built on top of Envoy with 50+ observability charts out of the box, you can collect metrics, traces and logs of all L4-L7 traffic.",
From dffb2313e23879ffafe684964323873849c8dfc9 Mon Sep 17 00:00:00 2001
From: Lee Calcote
Date: Sun, 27 Oct 2024 20:54:13 -0500
Subject: [PATCH 29/30] kanvas logo update
Signed-off-by: Lee Calcote
---
src/assets/brand/kanvas-brand-kit.zip | Bin 0 -> 400138 bytes
.../horizontal/kanvas-horizontal-color.png | Bin 94766 -> 92956 bytes
.../horizontal/kanvas-horizontal-color.svg | 30 +++++++---------
.../kanvas-horizontal-partial-color.png | Bin 87339 -> 86555 bytes
.../kanvas-horizontal-partial-color.svg | 32 +++++++++---------
.../kanvas/icon-only/kanvas-icon-color.png | Bin 29154 -> 28935 bytes
.../kanvas/icon-only/kanvas-icon-color.svg | 16 ++++-----
.../images/kanvas/icon-only/kanvas-icon.svg | 1 -
.../images/kanvas/icon-only/kanvas-icon.webp | Bin 13356 -> 0 bytes
.../kanvas/stacked/kanvas-stacked-color.png | Bin 0 -> 43574 bytes
.../kanvas/stacked/kanvas-stacked-color.svg | 22 ++++++------
.../images/kanvas/stacked/kanvas-stacked.png | Bin 43921 -> 0 bytes
.../kanvas/text-only/kanvas-text-color.png | Bin 57788 -> 56471 bytes
.../kanvas/text-only/kanvas-text-color.svg | 14 +++-----
14 files changed, 53 insertions(+), 62 deletions(-)
create mode 100644 src/assets/brand/kanvas-brand-kit.zip
delete mode 100644 src/assets/images/kanvas/icon-only/kanvas-icon.svg
delete mode 100644 src/assets/images/kanvas/icon-only/kanvas-icon.webp
create mode 100644 src/assets/images/kanvas/stacked/kanvas-stacked-color.png
delete mode 100644 src/assets/images/kanvas/stacked/kanvas-stacked.png
diff --git a/src/assets/brand/kanvas-brand-kit.zip b/src/assets/brand/kanvas-brand-kit.zip
new file mode 100644
index 0000000000000000000000000000000000000000..99e69096cdb8032bd35693e2e92da150df0e5483
GIT binary patch
literal 400138
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