diff --git a/docs/cortex-platform/overview.mdx b/docs/cortex-platform/overview.mdx new file mode 100644 index 00000000..bbd4bbd2 --- /dev/null +++ b/docs/cortex-platform/overview.mdx @@ -0,0 +1,5 @@ +--- +title: Overview +description: Cortex Platform Overview. +slug: /cortex-platform +--- \ No newline at end of file diff --git a/docs/quickstart.mdx b/docs/quickstart.mdx index 7f160110..6cae044e 100644 --- a/docs/quickstart.mdx +++ b/docs/quickstart.mdx @@ -14,10 +14,10 @@ import TabItem from "@theme/TabItem"; ## Installation ```sh -# Install using Brew for Mac and Linux +# Install using Brew for Mac brew install cortexso -# Install using winger for Windows +# Install using Winget for Windows winget install cortexso # Install using Sudo for Linux diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 019cb87f..0068e0ba 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -222,9 +222,10 @@ const config: Config = { }; }, [ - "@scalar/docusaurus", + "./src/plugins/scalar/index.ts", { label: "API Reference", + showNavLink: false, route: "/api-reference", configuration: { spec: { @@ -367,12 +368,21 @@ const config: Config = { items: [ { type: "doc", - position: "left", + position: "right", docId: "overview", label: "Docs", }, + { + to: "/api-reference", + label: "API Reference", + position: "right", + }, // { to: "/docs/cli", label: "CLI", position: "left" }, - { to: "/models", label: "Models", position: "right" }, + { + type: "custom-productMegaMenu", + position: "left", + }, + { to: "/models", label: "Models", position: "left" }, { type: "search", position: "right", diff --git a/sidebars.ts b/sidebars.ts index ab2a7781..e5ba8877 100644 --- a/sidebars.ts +++ b/sidebars.ts @@ -167,6 +167,14 @@ const sidebars: SidebarsConfig = { }, { type: "doc", id: "troubleshooting", label: "Troubleshooting" }, ], + platform: [ + { + type: "html", + value: "GET STARTED", + className: "sidebar-divider", + }, + "cortex-platform/overview", + ] }; export default sidebars; diff --git a/src/components/NavbarMegaMenu/index.tsx b/src/components/NavbarMegaMenu/index.tsx new file mode 100644 index 00000000..e1166262 --- /dev/null +++ b/src/components/NavbarMegaMenu/index.tsx @@ -0,0 +1,111 @@ +import React from "react"; +import { motion } from "framer-motion"; +import Link from "@docusaurus/Link"; + +const transition = { + type: "spring", + mass: 0.5, + damping: 11.5, + stiffness: 100, + restDelta: 0.001, + restSpeed: 0.001, +}; + +export const MenuItem = ({ + setActive, + active, + item, + children, +}: { + setActive: (item: string) => void; + active: string | null; + item: string; + children?: React.ReactNode; +}) => { + return ( +
setActive(item)} className="relative "> + + {item} + + {active !== null && ( + + {active === item && ( +
+ + + {children} + + +
+ )} +
+ )} +
+ ); +}; + +export const Menu = ({ + setActive, + children, +}: { + setActive: (item: string | null) => void; + children: React.ReactNode; +}) => { + return ( +
setActive(null)} // resets the state + > + {children} +
+ ); +}; + +export const ProductItem = ({ + title, + description, + href, + src, +}: { + title: string; + description: string; + href: string; + src: string; +}) => { + return ( + +
+

+ {title} +

+

+ {description} +

+
+ + ); +}; + +export const HoveredLink = ({ children, ...rest }: any) => { + return ( + + {children} + + ); +}; diff --git a/src/components/ProductsMenu/index.tsx b/src/components/ProductsMenu/index.tsx new file mode 100644 index 00000000..8f674ede --- /dev/null +++ b/src/components/ProductsMenu/index.tsx @@ -0,0 +1,59 @@ +import { HoveredLink, Menu, MenuItem, ProductItem } from "../NavbarMegaMenu"; +import { useState } from "react"; + +const ProductsMenu = () => { + const [active, setActive] = useState(null); + + return ( + + +
+ +
+

Cortex.cpp

+

+ Local AI Engine +

+
+
+ +
+

Cortex Platform

+

+ Self-hosted AI Platform +

+
+
+ +
+
+

Cortex Desktop

+
+ Coming Soon +
+
+

+ Easy-to-use Desktop app +

+
+
+ +
+
+

Cortex Server

+
+ Coming Soon +
+
+

+ Run Cortex in Production +

+
+
+
+
+
+ ); +}; + +export default ProductsMenu; diff --git a/src/plugins/scalar/index.ts b/src/plugins/scalar/index.ts new file mode 100644 index 00000000..40419dbb --- /dev/null +++ b/src/plugins/scalar/index.ts @@ -0,0 +1,62 @@ +import type { LoadContext, Plugin } from "@docusaurus/types"; +import type { ReferenceProps } from "@scalar/api-reference-react"; + +export type ScalarOptions = { + label: string; + route: string; + showNavLink?: boolean; +} & ReferenceProps; + +/** + * Used to set default options from the user-provided options + * This is also useful to ensure backwards compatibility with older configs that don't have the new options + */ +const createDefaultScalarOptions = (options: ScalarOptions): ScalarOptions => ({ + showNavLink: true, + ...options, +}); + +/** + * Scalar's Docusaurus plugin for Api References + */ +function ScalarDocusaurusCustomPlugin( + context: LoadContext, + options: ScalarOptions +): Plugin { + const defaultOptions = createDefaultScalarOptions(options); + + return { + name: "@scalar/docusaurus", + + async loadContent() { + return defaultOptions; + }, + + async contentLoaded({ content, actions }) { + const { addRoute } = actions; + + // If showNavLink is true, add a link to the navbar + if (defaultOptions.showNavLink) { + ( + context.siteConfig.themeConfig.navbar as { + items: Record[]; + } + ).items.push({ + to: defaultOptions.route ?? "/scalar", + label: defaultOptions.label ?? "Scalar", + position: "left", + }); + } + + addRoute({ + path: defaultOptions.route, + component: "@scalar/docusaurus/dist/ScalarDocusaurus", + // Provide the path to the loaded spec as a prop to your component + exact: true, + ...content, + }); + }, + }; +} + +export default ScalarDocusaurusCustomPlugin; \ No newline at end of file diff --git a/src/theme/NavbarItem/ComponentTypes.tsx b/src/theme/NavbarItem/ComponentTypes.tsx index 05e28f72..4a3866a3 100644 --- a/src/theme/NavbarItem/ComponentTypes.tsx +++ b/src/theme/NavbarItem/ComponentTypes.tsx @@ -1,7 +1,9 @@ import ComponentTypes from "@theme-original/NavbarItem/ComponentTypes"; import SocialNavbar from "@site/src/components/SocialNavbar"; +import ProductsMenu from "@site/src/components/ProductsMenu"; export default { ...ComponentTypes, "custom-socialNavbar": SocialNavbar, + "custom-productMegaMenu": ProductsMenu, }; diff --git a/static/openapi/jan.json b/static/openapi/jan.json index bfd6ec3a..21d62155 100644 --- a/static/openapi/jan.json +++ b/static/openapi/jan.json @@ -1216,7 +1216,7 @@ ], "x-tagGroups": [ { - "name": "Endpoints", + "name": "CORTEX.CPP", "tags": [ "Inference", "Embeddings", @@ -1228,7 +1228,7 @@ ] }, { - "name": "Assistants", + "name": "CORTEX PLATFORM", "tags": [ "Assistants", "Messages",