-
Notifications
You must be signed in to change notification settings - Fork 32
Add enterprise page #545
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
madhuramendis
wants to merge
4
commits into
openchoreo:main
Choose a base branch
from
madhuramendis:main
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+271
−0
Open
Add enterprise page #545
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,10 @@ | ||
| /** | ||
| * Defines a no-op window.gtag if the Google Analytics script was blocked | ||
| * (e.g. by an ad blocker), preventing "window.gtag is not a function" errors | ||
| * thrown by @docusaurus/plugin-google-gtag on route changes. | ||
| */ | ||
| if (typeof window !== 'undefined' && typeof window.gtag !== 'function') { | ||
| (window as typeof window & { gtag: (...args: unknown[]) => void }).gtag = () => {}; | ||
| } | ||
|
|
||
| export {}; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,157 @@ | ||
| .root { | ||
| padding-top: 2rem; | ||
| padding-bottom: 2rem; | ||
| } | ||
|
|
||
| .root section.margin-bottom--lg { | ||
| padding-bottom: 3rem; | ||
| } | ||
|
|
||
| /* ============================ | ||
| OFFERING CARD | ||
| ============================ */ | ||
| .offeringCard { | ||
| background: var(--ifm-color-gray-100); | ||
| border-radius: 12px; | ||
| padding: 2.5rem; | ||
| max-width: 820px; | ||
| margin: 0 auto; | ||
| } | ||
|
|
||
| [data-theme='dark'] .offeringCard { | ||
| background: var(--ifm-background-color); | ||
| } | ||
|
|
||
| .offeringHeader { | ||
| display: flex; | ||
| flex-direction: column; | ||
| align-items: flex-start; | ||
| gap: 0.5rem; | ||
| margin-bottom: 1.25rem; | ||
| } | ||
|
|
||
| .providerLogo { | ||
| height: 32px; | ||
| width: auto; | ||
| flex-shrink: 0; | ||
| } | ||
|
|
||
| .offeringHeaderText { | ||
| font-size: 1.25rem; | ||
| font-weight: 700; | ||
| color: var(--ifm-heading-color); | ||
| line-height: 1.3; | ||
| } | ||
|
|
||
| .offeringTagline { | ||
| font-size: 1rem; | ||
| color: var(--ifm-color-emphasis-700); | ||
| margin-bottom: 2rem; | ||
| line-height: 1.6; | ||
| } | ||
|
|
||
| .featureList { | ||
| list-style: none; | ||
| padding: 0; | ||
| margin: 0 0 2rem; | ||
| display: flex; | ||
| flex-direction: column; | ||
| gap: 0.875rem; | ||
| } | ||
|
|
||
| .featureItem { | ||
| display: flex; | ||
| align-items: flex-start; | ||
| gap: 0.75rem; | ||
| font-size: 0.975rem; | ||
| color: var(--ifm-font-color-base); | ||
| line-height: 1.6; | ||
| } | ||
|
|
||
| .featureIcon { | ||
| flex-shrink: 0; | ||
| width: 20px; | ||
| height: 20px; | ||
| border-radius: 50%; | ||
| background: var(--ifm-color-primary-lightest); | ||
| color: var(--ifm-color-primary-darkest); | ||
| display: flex; | ||
| align-items: center; | ||
| justify-content: center; | ||
| font-size: 0.75rem; | ||
| font-weight: 700; | ||
| margin-top: 2px; | ||
| } | ||
|
|
||
| [data-theme='dark'] .featureIcon { | ||
| background: rgba(43, 140, 247, 0.2); | ||
| color: var(--ifm-color-primary-light); | ||
| } | ||
|
|
||
| .featureLabel { | ||
| font-weight: 600; | ||
| color: var(--ifm-heading-color); | ||
| } | ||
|
|
||
| /* ============================ | ||
| BUTTONS — same as marketplace | ||
| ============================ */ | ||
| .buttonGroup { | ||
| display: flex; | ||
| justify-content: center; | ||
| align-items: center; | ||
| gap: 0.75rem; | ||
| margin-top: 2rem; | ||
| flex-wrap: wrap; | ||
| } | ||
|
|
||
| .cButton { | ||
| display: inline-flex; | ||
| align-items: center; | ||
| justify-content: center; | ||
| padding: 0.75rem 2rem; | ||
| font-size: 1rem; | ||
| line-height: 1; | ||
| font-weight: 600; | ||
| border-radius: 6px; | ||
| border: 2px solid var(--ifm-color-primary); | ||
| background: var(--ifm-color-primary); | ||
| color: #fff; | ||
| text-decoration: none; | ||
| cursor: pointer; | ||
| box-sizing: border-box; | ||
| transition: | ||
| background-color 0.2s ease, | ||
| color 0.2s ease, | ||
| border-color 0.2s ease, | ||
| box-shadow 0.2s ease, | ||
| transform 0.1s ease; | ||
| } | ||
|
|
||
| .cButton:hover { | ||
| color: #fff; | ||
| opacity: 0.9; | ||
| transform: translateY(-1px); | ||
| } | ||
|
|
||
| .cButton:focus { | ||
| outline: none; | ||
| } | ||
|
|
||
| /* ============================ | ||
| RESPONSIVE | ||
| ============================ */ | ||
| @media (max-width: 768px) { | ||
| .offeringCard { | ||
| padding: 1.75rem 1.25rem; | ||
| } | ||
|
|
||
|
|
||
| .buttonGroup { | ||
| flex-direction: column; | ||
| } | ||
|
|
||
| .cButton { | ||
| width: 100%; | ||
| } | ||
| } | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,98 @@ | ||
| import type {ReactNode} from 'react'; | ||
| import React from 'react'; | ||
| import Layout from '@theme/Layout'; | ||
| import useBaseUrl from '@docusaurus/useBaseUrl'; | ||
| import SectionHeader from '@site/src/components/common/SectionHeader'; | ||
| import styles from './enterprise.module.css'; | ||
|
|
||
| const features = [ | ||
| { | ||
| label: '24/7 incident support.', | ||
| detail: 'Global, round-the-clock support with aggressive SLAs for production-stopping issues.', | ||
| }, | ||
| { | ||
| label: 'Proactive security monitoring.', | ||
| detail: '', | ||
| }, | ||
| { | ||
| label: 'Dedicated onboarding support', | ||
| detail: 'to help you move from legacy CI/CD to a modern IDP.', | ||
| }, | ||
| { | ||
| label: "Direct access to OpenChoreo's core engineers and WSO2's customer success team", | ||
| detail: 'for architectural advice, tuning, and best practices.', | ||
| }, | ||
| ]; | ||
|
|
||
| /** | ||
| * Enterprise page (/enterprise) | ||
| * | ||
| * Lists enterprise support offerings for OpenChoreo. | ||
| * Currently features the WSO2 Developer Platform for OpenChoreo offering, | ||
| * including a feature list and a CTA linking to the WSO2 product page. | ||
| */ | ||
| export default function Enterprise(): ReactNode { | ||
| return ( | ||
| <Layout | ||
| title="Enterprise" | ||
| description="Enterprise support options for OpenChoreo, originally created by WSO2 and a CNCF Sandbox Project." | ||
| > | ||
| <div className={styles.root}> | ||
| <main className="container margin-vert--xl"> | ||
|
|
||
| {/* HERO */} | ||
| <section className="margin-bottom--lg"> | ||
| <SectionHeader title="Enterprise OpenChoreo Offerings"> | ||
| <p> | ||
| OpenChoreo was originally created by WSO2 and is a CNCF Sandbox Project.<br /> | ||
| You can find enterprise support options for the project below. | ||
| </p> | ||
| </SectionHeader> | ||
| </section> | ||
|
|
||
| {/* OFFERING CARD */} | ||
| <section> | ||
| <div className={styles.offeringCard}> | ||
| <div className={styles.offeringHeader}> | ||
| <img | ||
| src={useBaseUrl('/img/logos/tech-logo-wso2.webp')} | ||
| alt="WSO2" | ||
| className={styles.providerLogo} | ||
| /> | ||
| <span className={styles.offeringHeaderText}>Developer Platform for OpenChoreo</span> | ||
| </div> | ||
| <p className={styles.offeringTagline}> | ||
| Get open source flexibility with enterprise platform reliability. Direct access to | ||
| architects and developers from the creators of OpenChoreo. | ||
| </p> | ||
|
|
||
| <ul className={styles.featureList}> | ||
| {features.map((f, i) => ( | ||
| <li key={i} className={styles.featureItem}> | ||
| <span className={styles.featureIcon}>✓</span> | ||
| <span> | ||
| <span className={styles.featureLabel}>{f.label}</span> | ||
| {f.detail && ` ${f.detail}`} | ||
| </span> | ||
| </li> | ||
| ))} | ||
| </ul> | ||
|
|
||
| <div className={styles.buttonGroup}> | ||
| <a | ||
| href="https://wso2.com/engineering-platform/openchoreo/" | ||
| target="_blank" | ||
| rel="noopener noreferrer" | ||
| className={styles.cButton} | ||
| > | ||
| Learn More | ||
| </a> | ||
| </div> | ||
| </div> | ||
| </section> | ||
|
|
||
| </main> | ||
| </div> | ||
| </Layout> | ||
| ); | ||
| } |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do not remove keyboard focus visibility on the CTA button.
Line 137-Line 139 removes focus outline with no replacement, which is an accessibility regression for keyboard users.
💡 Proposed fix
📝 Committable suggestion
🤖 Prompt for AI Agents