diff --git a/components/CodeAnimation/AsyncAPIcontent.tsx b/components/CodeAnimation/AsyncAPIcontent.tsx
new file mode 100644
index 000000000000..1706b10f35b9
--- /dev/null
+++ b/components/CodeAnimation/AsyncAPIcontent.tsx
@@ -0,0 +1,7 @@
+/**
+ * @description Renders the content related to AsyncAPI in a styled div container.
+ * This is used as the default content for the "AsyncAPI Document" tab in the DemoAnimation component.
+ */
+export default function renderAsyncAPIContent() {
+ return
content here
;
+}
diff --git a/components/CodeAnimation/CodeGeneration.tsx b/components/CodeAnimation/CodeGeneration.tsx
new file mode 100644
index 000000000000..3c4cb94a17c2
--- /dev/null
+++ b/components/CodeAnimation/CodeGeneration.tsx
@@ -0,0 +1,11 @@
+/**
+ * @description Renders the content related to code generation in a styled div container.
+ * This is used as the content for the "Code Generation" tab in the DemoAnimation component.
+ */
+export default function renderCodeGeneration() {
+ return (
+
+
content here
+
+ );
+}
diff --git a/components/CodeAnimation/DemoAnimation.tsx b/components/CodeAnimation/DemoAnimation.tsx
new file mode 100644
index 000000000000..5dce0da6fd1f
--- /dev/null
+++ b/components/CodeAnimation/DemoAnimation.tsx
@@ -0,0 +1,70 @@
+import React, { useState } from 'react';
+
+import Container from '../layout/Container';
+import renderAsyncAPIContent from './AsyncAPIcontent';
+import renderCodeGeneration from './CodeGeneration';
+import renderDocumentation from './Documentation';
+
+/**
+ * @description A React component that displays a demo animation interface with three tabs:
+ * "AsyncAPI Document," "Code Generation," and "Documentation." The content of each tab
+ * dynamically updates based on the active tab selected by the user.
+ *
+ */
+export default function DemoAnimation() {
+ const [activeTab, setActiveTab] = useState('AsyncAPI Document');
+ const tabs = ['AsyncAPI Document', 'Code Generation', 'Documentation'];
+
+ /**
+ * @description Determines and renders the content for the currently active tab.
+ */
+ const renderContent = () => {
+ switch (activeTab) {
+ case 'Code Generation':
+ return renderCodeGeneration() ||
No content available
;
+ case 'Documentation':
+ return renderDocumentation() ||
No content available
;
+ default:
+ return renderAsyncAPIContent() ||
No content available
;
+ }
+ };
+
+ return (
+
+
+
Sneak Peek Into The Real Process
+
+ One of our main goals is to improve the current state of Event
+
+ Driven Architecture (EDA!)
+
+
+
+ {tabs.map((tab) => (
+
+ ))}
+
+
+
+
+
{renderContent()}
+
+
+
+
+ );
+}
diff --git a/components/CodeAnimation/Documentation.tsx b/components/CodeAnimation/Documentation.tsx
new file mode 100644
index 000000000000..1bdb59b21590
--- /dev/null
+++ b/components/CodeAnimation/Documentation.tsx
@@ -0,0 +1,11 @@
+/**
+ * @description Renders the documentation content in a styled container.
+ * This is used as the content for the "Documentation" tab in the DemoAnimation component.
+ */
+export default function renderDocumentation() {
+ return (
+
+
Documentation
+
+ );
+}
diff --git a/components/DemoAnimation.tsx b/components/DemoAnimation.tsx
deleted file mode 100644
index 1748d0c6ca2b..000000000000
--- a/components/DemoAnimation.tsx
+++ /dev/null
@@ -1,383 +0,0 @@
-import React, { useEffect, useState } from 'react';
-import Typing from 'react-typist-component';
-
-import { HeadingLevel, HeadingTypeStyle } from '@/types/typography/Heading';
-
-import OpenInStudioButton from './buttons/OpenInStudioButton';
-import ArrowRight from './icons/ArrowRight';
-import MacWindow from './MacWindow';
-import Heading from './typography/Heading';
-
-interface IDemoAnimationProps {
- className?: string;
-}
-
-interface ICursorProps {
- className?: string;
-}
-
-/**
- * @description A component that displays a cursor for the typing animation
- * @param {string} props.className - The class name for the component
- */
-function Cursor({ className = '' }: ICursorProps) {
- return (
-
- );
-}
-
-/**
- * @description A component that displays a demo animation of an AsyncAPI document
- * @param {string} props.className - The class name for the component
- */
-export default function DemoAnimation({ className = '' }: IDemoAnimationProps) {
- const [started] = useState(true);
- const [showInfo, setShowInfo] = useState(false);
- const [showChannelsAndOperation, setShowChannelsAndOperation] = useState(false);
- const [showUntilMessagePayload, setShowUntilMessagePayload] = useState(false);
- const [showDisplayName, setShowDisplayName] = useState(false);
- const [showEmail, setShowEmail] = useState(false);
- const [showDisplayNameDescription, setShowDisplayNameDescription] = useState(false);
- const [showEmailDescription, setShowEmailDescription] = useState(false);
- const [finished, setFinished] = useState(false);
- const [showControls, setShowControls] = useState(false);
- const typingDelay = 60;
-
- useEffect(() => {
- if (finished) {
- setTimeout(() => {
- setShowControls(true);
- }, 2000);
- }
- }, [finished]);
-
- /**
- * @description classes that displays a cursor for the typing animation
- * @param {boolean} condition - The condition to determine which class to apply
- */
- function transitionClassNames(condition: boolean) {
- return `transition-all duration-500 ease-in-out overflow-hidden ${condition ? 'opacity-100 max-h-auto' : 'max-h-0 opacity-0'}`;
- }
-
- /**
- * @description A component that displays a cursor for the typing animation
- */
- function renderTyping(children: React.ReactNode, callback: () => void) {
- return (
- } onTypingDone={callback}>
- {children}
-
- );
- }
-
- /**
- * @description A component that displays info block
- */
- function renderInfoBlock(callback: () => void) {
- const descriptionCallback = () => setFinished(true);
-
- const common = (
- <>
-
-
>
);
diff --git a/public/locales/de/landing-page.json b/public/locales/de/landing-page.json
index ab75bdab207f..7e48a59f860a 100644
--- a/public/locales/de/landing-page.json
+++ b/public/locales/de/landing-page.json
@@ -5,41 +5,38 @@
"body_pretext": "Open-Source-Tools zur einfachen Erstellung und Wartung Ihrer ereignisgesteuerten Architektur. Alle basieren auf der AsyncAPI-Spezifikation, der ",
"body_boldtext": "Industriestandard",
"body_posttext": " zur Definition asynchroner APIs.",
- "docs_btn": "Lesen Sie die Dokumente",
- "search_btn": "Schnellsuche...",
- "slogan_text": "Wir sind stolz darauf, Teil der",
- "slogan_link": "Linux Foundation"
+ "join_btn": "Join our Community",
+ "subscribe_btn": "Subscribe to our Newsletter",
+ "linuxFoundation_txt": "Part of the Linux Foundation"
},
"features": {
- "title": "Warum AsyncAPI?",
- "description": "Verbesserung des aktuellen Stands der ereignisgesteuerten Architekturen (EDA)",
-
- "specification.name": "Spezifikation",
- "specification.description": "Ermöglicht es Ihnen, die Schnittstellen von asynchronen APIs zu definieren und ist protokollunabhängig.",
- "specification.links.whyasyncapi-spec-documentation-link": "Dokumentation",
-
- "document-apis.name": "APIs dokumentieren",
- "document-apis.description": "Verwenden Sie unsere Tools, um Dokumentation auf Build-Ebene, auf einem Server und auf einem Client zu generieren.",
- "document-apis.links.whyasyncapi-apis-htmltemplate-link": "HTML-Vorlage",
- "document-apis.links.whyasyncapi-apis-reactcomponents-link": "React-Komponente",
-
- "code-generation.name": "Code-Generierung",
- "code-generation.description": "Generieren Sie Dokumentation, Code (TypeScript, Java, C# usw.) und mehr aus Ihren AsyncAPI-Dateien.",
- "code-generation.links.whyasyncapi-generation-generator-link": "Generator",
- "code-generation.links.whyasyncapi-generation-modelina-link": "Modelina",
-
- "community.name": "Gemeinschaft",
- "community.description": "Wir sind eine Gemeinschaft von großartigen Menschen, die leidenschaftlich an AsyncAPI und ereignisgesteuerten Architekturen interessiert sind.",
- "community.links.whyasyncapi-community-slack-link": "Treten Sie unserem Slack bei",
-
- "open-governance.links.whyasyncapi-governance-more-link": "Erfahren Sie mehr über Offene Governance",
- "open-governance.links.whyasyncapi-governance-tsc-link": "TSC-Mitglieder",
- "open-governance.name": "Offene Governance",
- "open-governance.description": "Unser Open-Source-Projekt ist Teil der Linux Foundation und arbeitet unter einem Modell der offenen Governance.",
-
- "much-more.name": "Und noch viel mehr...",
- "much-more.description": "Wir haben viele verschiedene Tools und laden Sie ein, unsere Ideen zu erkunden und neue Ideen für AsyncAPI vorzuschlagen.",
- "much-more.links.whyasyncapi-muchmore-github-link": "GitHub-Diskussionen anzeigen"
+ "title": "What You Can Use AsyncAPI For",
+ "description": "One of our main goals is to improve the current state of Event Driven Architecture (EDA)",
+ "costs-control": {
+ "name": "Costs Control",
+ "description": "Open-Source tools to easily build and maintain your event-driven architecture. All powered by the AsyncAPI specification, the industry standard for defining asynchronous APIs."
+ },
+ "publishing-api": {
+ "name": "Self-service for Publishing API",
+ "description": "Open-Source tools to easily build and maintain your event-driven architecture. All powered by the AsyncAPI specification, the industry standard for defining asynchronous APIs."
+ },
+ "code-generation": {
+ "name": "Code Generation",
+ "description": "Open-Source tools to easily build and maintain your event-driven architecture. All powered by the AsyncAPI specification, the industry standard for defining asynchronous APIs."
+ },
+ "infra-as-code": {
+ "name": "Infrastructure as Code",
+ "description": "Open-Source tools to easily build and maintain your event-driven architecture. All powered by the AsyncAPI specification, the industry standard for defining asynchronous APIs."
+ },
+ "governance-consistency": {
+ "name": "Governance & Consistency",
+ "description": "Open-Source tools to easily build and maintain your event-driven architecture. All powered by the AsyncAPI specification, the industry standard for defining asynchronous APIs."
+ },
+ "developer-portal": {
+ "name": "Developer Portal",
+ "description": "Open-Source tools to easily build and maintain your event-driven architecture. All powered by the AsyncAPI specification, the industry standard for defining asynchronous APIs."
+ },
+ "read-more": "Read More"
},
"adopters": {
"title": "Von den weltweit führenden Marken übernommen",
@@ -57,6 +54,7 @@
"meetingLink": "Erfahren Sie mehr über unsere Meetings."
},
"sponsors": {
+ "diamondTitle": "Diamond Sponsors",
"platinumTitle": "Platin-Sponsoren",
"goldTitle": "Gold-Sponsoren",
"silverTitle": "Silber-Sponsoren",
diff --git a/public/locales/en/landing-page.json b/public/locales/en/landing-page.json
index ae14df4c0145..439b12acde20 100644
--- a/public/locales/en/landing-page.json
+++ b/public/locales/en/landing-page.json
@@ -5,41 +5,38 @@
"body_pretext": "Open-Source tools to easily build and maintain your event-driven architecture. All powered by the AsyncAPI specification, the ",
"body_boldtext": "industry standard",
"body_posttext": " for defining asynchronous APIs.",
- "docs_btn": "Read the docs",
- "search_btn": "Quick search...",
- "slogan_text": "Proud to be part of the",
- "slogan_link": "Linux Foundation"
+ "join_btn": "Join our Community",
+ "subscribe_btn": "Subscribe to our Newsletter",
+ "linuxFoundation_txt": "Part of the Linux Foundation"
},
"features": {
- "title": "Why AsyncAPI?",
- "description": "Improving the current state of Event-Driven Architectures (EDA)",
-
- "specification.name": "Specification",
- "specification.description": "Allows you to define the interfaces of asynchronous APIs and is protocol agnostic.",
- "specification.links.whyasyncapi-spec-documentation-link": "Documentation",
-
- "document-apis.name": "Document APIs",
- "document-apis.description": "Use our tools to generate documentation at the build level, on a server, and on a client.",
- "document-apis.links.whyasyncapi-apis-htmltemplate-link": "HTML Template",
- "document-apis.links.whyasyncapi-apis-reactcomponents-link": "React Component",
-
- "code-generation.name": "Code Generation",
- "code-generation.description": "Generate documentation, Code (TypeScript, Java, C#, etc), and more out of your AsyncAPI files.",
- "code-generation.links.whyasyncapi-generation-generator-link": "Generator",
- "code-generation.links.whyasyncapi-generation-modelina-link": "Modelina",
-
- "community.name": "Community",
- "community.description": "We're a community of great people who are passionate about AsyncAPI and event-driven architectures.",
- "community.links.whyasyncapi-community-slack-link": "Join our Slack",
-
- "open-governance.name": "Open Governance",
- "open-governance.description": "Our Open-Source project is part of Linux Foundation and works under an Open Governance model.",
- "open-governance.links.whyasyncapi-governance-more-link": "Read more about Open Governance",
- "open-governance.links.whyasyncapi-governance-tsc-link": "TSC Members",
-
- "much-more.name": "And much more...",
- "much-more.description": "We have many different tools and welcome you to explore our ideas and propose new ideas to AsyncAPI.",
- "much-more.links.whyasyncapi-muchmore-github-link": "View GitHub Discussions"
+ "title": "What You Can Use AsyncAPI For",
+ "description": "One of our main goals is to improve the current state of Event Driven Architecture (EDA)",
+ "costs-control": {
+ "name": "Costs Control",
+ "description": "Open-Source tools to easily build and maintain your event-driven architecture. All powered by the AsyncAPI specification, the industry standard for defining asynchronous APIs."
+ },
+ "publishing-api": {
+ "name": "Self-service for Publishing API",
+ "description": "Open-Source tools to easily build and maintain your event-driven architecture. All powered by the AsyncAPI specification, the industry standard for defining asynchronous APIs."
+ },
+ "code-generation": {
+ "name": "Code Generation",
+ "description": "Open-Source tools to easily build and maintain your event-driven architecture. All powered by the AsyncAPI specification, the industry standard for defining asynchronous APIs."
+ },
+ "infra-as-code": {
+ "name": "Infrastructure as Code",
+ "description": "Open-Source tools to easily build and maintain your event-driven architecture. All powered by the AsyncAPI specification, the industry standard for defining asynchronous APIs."
+ },
+ "governance-consistency": {
+ "name": "Governance & Consistency",
+ "description": "Open-Source tools to easily build and maintain your event-driven architecture. All powered by the AsyncAPI specification, the industry standard for defining asynchronous APIs."
+ },
+ "developer-portal": {
+ "name": "Developer Portal",
+ "description": "Open-Source tools to easily build and maintain your event-driven architecture. All powered by the AsyncAPI specification, the industry standard for defining asynchronous APIs."
+ },
+ "read-more": "Read More"
},
"adopters": {
"title": "Adopted by the world leading brands",
@@ -51,12 +48,13 @@
"subtitle": "We're a community of great people who are passionate about AsyncAPI and event-driven architectures.",
"slackCTATitle": "Join our Slack workspace",
"slackCTADesc": "We welcome everyone to join our Slack workspace. If you have a question on how to use AsyncAPI, want to contribute, or simply want to say hello 👋, you're welcome to join us. We're nice people 🙂",
- "slackCTABtn": "Join us!",
+ "slackCTABtn": "Join us on slack",
"meetingTitle": "Join our public meetings",
"meetingDesc": "AsyncAPI hosts different meetings every week. They are focused on different topics, sometimes purely technical and sometimes about community building. Pick one and join us!",
"meetingLink": "Learn more about our meetings."
},
"sponsors": {
+ "diamondTitle": "Diamond Sponsors",
"platinumTitle": "Platinum Sponsors",
"goldTitle": "Gold Sponsors",
"silverTitle": "Silver Sponsors",