From f6dfce2f37bfef2f9a934ecd94d03cd92f688994 Mon Sep 17 00:00:00 2001 From: Itai Smith Date: Mon, 16 Dec 2024 13:55:00 -0800 Subject: [PATCH] rename tabs --- docs/docs.trychroma.com/README.md | 2 +- .../components/markdoc/tabbed-code-block.tsx | 2 +- .../markdoc/tabbed-use-case-code-block.tsx | 2 +- .../markdoc/{markdoc-tabs.tsx => tabs.tsx} | 12 ++------- .../components/sidebar/menu-item.tsx | 24 ++++++++++-------- .../components/sidebar/page-index.tsx | 4 ++- .../components/sidebar/sidebar.tsx | 2 +- docs/docs.trychroma.com/markdoc/config.ts | 4 +-- .../docs/collections/create-get-delete.md | 16 +++++++----- .../content/docs/overview/getting-started.md | 14 +++++----- .../markdoc/content/docs/overview/roadmap.md | 5 ---- .../content/docs/overview/telemetry.md | 4 +-- .../content/docs/run-chroma/client-server.md | 4 +-- .../docs/run-chroma/ephemeral-client.md | 4 ++- .../docs/run-chroma/persistent-client.md | 19 ++++++++------ .../docs/run-chroma/python-http-client.md | 16 +++++++++++- .../integrations/embedding-models/cohere.md | 4 +-- .../embedding-models/google-gemini.md | 4 +-- .../integrations/embedding-models/openai.md | 4 +-- .../content/production/administration/auth.md | 8 +++--- .../chroma-server/client-server-mode.md | 4 +-- .../content/production/cloud-providers/aws.md | 4 +-- .../production/cloud-providers/azure.md | 4 +-- .../content/production/cloud-providers/gcp.md | 4 +-- .../content/production/containers/docker.md | 8 +++--- .../markdoc/content/sidebar-config.ts | 4 +-- docs/docs.trychroma.com/public/favicon.ico | Bin 285478 -> 0 bytes 27 files changed, 99 insertions(+), 83 deletions(-) rename docs/docs.trychroma.com/components/markdoc/{markdoc-tabs.tsx => tabs.tsx} (82%) delete mode 100644 docs/docs.trychroma.com/public/favicon.ico diff --git a/docs/docs.trychroma.com/README.md b/docs/docs.trychroma.com/README.md index e8a6ac1d73d..846120bc35e 100644 --- a/docs/docs.trychroma.com/README.md +++ b/docs/docs.trychroma.com/README.md @@ -28,7 +28,7 @@ It also incldues [Shadcn](https://ui.shadcn.com/) with [Tailwind](https://tailwi - Dark/Light Mode - Responsive - Global and Local state management with localstorage persistence -- MarkdocTabs +- Tabs - Code styling with Prism - Toasts diff --git a/docs/docs.trychroma.com/components/markdoc/tabbed-code-block.tsx b/docs/docs.trychroma.com/components/markdoc/tabbed-code-block.tsx index 5a4c1119959..2aa58fa5586 100644 --- a/docs/docs.trychroma.com/components/markdoc/tabbed-code-block.tsx +++ b/docs/docs.trychroma.com/components/markdoc/tabbed-code-block.tsx @@ -4,7 +4,7 @@ import { TabsContent, TabsList } from "@/components/ui/tabs"; import { tabLabelStyle } from "@/components/markdoc/code-block-header"; import { capitalize, cn } from "@/lib/utils"; import CodeBlock from "@/components/markdoc/code-block"; -import { TabProps, TabsTrigger } from "@/components/markdoc/markdoc-tabs"; +import { TabProps, TabsTrigger } from "@/components/markdoc/tabs"; import CodeTabs from "@/components/markdoc/code-tab"; const TabbedCodeBlock: React.FC<{ diff --git a/docs/docs.trychroma.com/components/markdoc/tabbed-use-case-code-block.tsx b/docs/docs.trychroma.com/components/markdoc/tabbed-use-case-code-block.tsx index 87490ba6fdf..446d8b6486b 100644 --- a/docs/docs.trychroma.com/components/markdoc/tabbed-use-case-code-block.tsx +++ b/docs/docs.trychroma.com/components/markdoc/tabbed-use-case-code-block.tsx @@ -2,7 +2,7 @@ import React, { ReactElement } from "react"; import { tabLabelStyle } from "@/components/markdoc/code-block-header"; import { capitalize, cn } from "@/lib/utils"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; -import { TabProps } from "@/components/markdoc/markdoc-tabs"; +import { TabProps } from "@/components/markdoc/tabs"; import CodeBlock from "@/components/markdoc/code-block"; import CopyButton from "@/components/markdoc/copy-button"; diff --git a/docs/docs.trychroma.com/components/markdoc/markdoc-tabs.tsx b/docs/docs.trychroma.com/components/markdoc/tabs.tsx similarity index 82% rename from docs/docs.trychroma.com/components/markdoc/markdoc-tabs.tsx rename to docs/docs.trychroma.com/components/markdoc/tabs.tsx index 32d794c421c..e6d1809ece8 100644 --- a/docs/docs.trychroma.com/components/markdoc/markdoc-tabs.tsx +++ b/docs/docs.trychroma.com/components/markdoc/tabs.tsx @@ -13,13 +13,6 @@ import AppContext from "@/context/app-context"; import CodeBlock from "@/components/markdoc/code-block"; import { Playfair_Display } from "next/font/google"; -export const playfairDisplay = Playfair_Display({ - subsets: ["latin"], - display: "swap", - weight: "500", - variable: "--font-playfair-display", -}); - export interface TabProps { label: string; children: React.ReactElement<{ content: string; showHeader: boolean }>; @@ -49,7 +42,7 @@ const Tab: React.FC = ({ children }) => { return
{children}
; }; -export const MarkdocTabs: React.FC<{ children: ReactElement[] }> = ({ +export const Tabs: React.FC<{ children: ReactElement[] }> = ({ children, }) => { const { language } = useContext(AppContext); @@ -67,8 +60,7 @@ export const MarkdocTabs: React.FC<{ children: ReactElement[] }> = ({ value={tab.props.label} className={cn( tabLabelStyle, - playfairDisplay.className, - "text-sm tracking-normal dark:data-[state=active]:bg-transparent data-[state=active]:border-b data-[state=active]:text-gray-900 dark:data-[state=active]:text-gray-200 data-[state=active]:border-gray-900 dark:data-[state=active]:border-gray-200", + "text-sm font-mono tracking-normal dark:data-[state=active]:bg-transparent data-[state=active]:border-b data-[state=active]:text-gray-900 dark:data-[state=active]:text-gray-200 data-[state=active]:border-gray-900 dark:data-[state=active]:border-gray-200", )} > {capitalize(tab.props.label)} diff --git a/docs/docs.trychroma.com/components/sidebar/menu-item.tsx b/docs/docs.trychroma.com/components/sidebar/menu-item.tsx index 174487a192d..aeaa02ec685 100644 --- a/docs/docs.trychroma.com/components/sidebar/menu-item.tsx +++ b/docs/docs.trychroma.com/components/sidebar/menu-item.tsx @@ -20,20 +20,22 @@ const MenuItem: React.FC<{ section: AppSection; active: boolean }> = ({ className={`flex items-center gap-2 text-gray-700/80 cursor-pointer ${!section.comingSoon && "hover:text-gray-800"} dark:text-gray-400/80 dark:hover:text-gray-300`} >
-

- {section.name} -

- {section.comingSoon && ( -
- Coming Soon -
- )} +
+

+ {section.name} +

+ {section.comingSoon && ( +
+ Coming Soon +
+ )} +
); diff --git a/docs/docs.trychroma.com/components/sidebar/page-index.tsx b/docs/docs.trychroma.com/components/sidebar/page-index.tsx index 9fd582eaa37..1a30aaa5e15 100644 --- a/docs/docs.trychroma.com/components/sidebar/page-index.tsx +++ b/docs/docs.trychroma.com/components/sidebar/page-index.tsx @@ -17,7 +17,9 @@ const PageIndex: React.FC<{ return (
{name && ( -

+

{name}

)} diff --git a/docs/docs.trychroma.com/components/sidebar/sidebar.tsx b/docs/docs.trychroma.com/components/sidebar/sidebar.tsx index 3e17910ef9d..2dea9c0274f 100644 --- a/docs/docs.trychroma.com/components/sidebar/sidebar.tsx +++ b/docs/docs.trychroma.com/components/sidebar/sidebar.tsx @@ -52,7 +52,7 @@ const Sidebar: React.FC<{ path: string[]; mobile?: boolean }> = ({ className={`h-full xl:ml-[calc((100vw-1256px)/2)] ${!mobile && "hidden md:block"}`} >
-
+
{sidebarConfig.map((section) => ( #### Client Set-Up -{% MarkdocTabs %} +{% Tabs %} {% Tab label="python" %} @@ -108,7 +108,7 @@ chromaClient.heartbeat() {% /Tab %} -{% /MarkdocTabs %} +{% /Tabs %} We recommend setting the environment variable `CHROMA_CLIENT_AUTH_CREDENTIALS` instead of specifying the credentials in code. @@ -156,7 +156,7 @@ export CHROMA_SERVER_AUTHZ_PROVIDER="chromadb.auth.simple_rbac_authz.SimpleRBACA #### Client Set-Up -{% MarkdocTabs %} +{% Tabs %} {% Tab label="python" %} @@ -204,6 +204,6 @@ chromaClient.heartbeat() ``` {% /Tab %} -{% /MarkdocTabs %} +{% /Tabs %} We recommend setting the environment variable `CHROMA_CLIENT_AUTH_CREDENTIALS` instead of specifying the token in code. Similarly, you can read the value of `CHROMA_AUTH_TOKEN_TRANSPORT_HEADER` in the client construction. \ No newline at end of file diff --git a/docs/docs.trychroma.com/markdoc/content/production/chroma-server/client-server-mode.md b/docs/docs.trychroma.com/markdoc/content/production/chroma-server/client-server-mode.md index 0d2795faa01..f4bab933f81 100644 --- a/docs/docs.trychroma.com/markdoc/content/production/chroma-server/client-server-mode.md +++ b/docs/docs.trychroma.com/markdoc/content/production/chroma-server/client-server-mode.md @@ -10,7 +10,7 @@ You can quickly experiment locally with Chroma in client/server mode by using ou chroma run --path /db_path ``` -{% MarkdocTabs %} +{% Tabs %} {% Tab label="python" %} @@ -57,4 +57,4 @@ const client = new ChromaClient(); {% /Tab %} -{% /MarkdocTabs %} \ No newline at end of file +{% /Tabs %} \ No newline at end of file diff --git a/docs/docs.trychroma.com/markdoc/content/production/cloud-providers/aws.md b/docs/docs.trychroma.com/markdoc/content/production/cloud-providers/aws.md index b6ba86d550b..33ba16d1109 100644 --- a/docs/docs.trychroma.com/markdoc/content/production/cloud-providers/aws.md +++ b/docs/docs.trychroma.com/markdoc/content/production/cloud-providers/aws.md @@ -230,7 +230,7 @@ Add the `CHROMA_CLIENT_AUTH_CREDENTIALS` environment variable to your local envi export CHROMA_CLIENT_AUTH_CREDENTIALS="test-token" ``` -{% MarkdocTabs %} +{% Tabs %} {% Tab label="python" %} @@ -283,7 +283,7 @@ chromaClient.heartbeat() {% /Tab %} -{% /MarkdocTabs %} +{% /Tabs %} ## Observability with AWS diff --git a/docs/docs.trychroma.com/markdoc/content/production/cloud-providers/azure.md b/docs/docs.trychroma.com/markdoc/content/production/cloud-providers/azure.md index 16c6665aff5..4d9bc766ffc 100644 --- a/docs/docs.trychroma.com/markdoc/content/production/cloud-providers/azure.md +++ b/docs/docs.trychroma.com/markdoc/content/production/cloud-providers/azure.md @@ -189,7 +189,7 @@ Add the `CHROMA_CLIENT_AUTH_CREDENTIALS` environment variable to your local envi export CHROMA_CLIENT_AUTH_CREDENTIALS="test-token" ``` -{% MarkdocTabs %} +{% Tabs %} {% Tab label="python" %} @@ -242,7 +242,7 @@ chromaClient.heartbeat() {% /Tab %} -{% /MarkdocTabs %} +{% /Tabs %} ## Observability with Azure diff --git a/docs/docs.trychroma.com/markdoc/content/production/cloud-providers/gcp.md b/docs/docs.trychroma.com/markdoc/content/production/cloud-providers/gcp.md index 70832936c52..92cbe226b0f 100644 --- a/docs/docs.trychroma.com/markdoc/content/production/cloud-providers/gcp.md +++ b/docs/docs.trychroma.com/markdoc/content/production/cloud-providers/gcp.md @@ -216,7 +216,7 @@ Add the `CHROMA_CLIENT_AUTH_CREDENTIALS` environment variable to your local envi export CHROMA_CLIENT_AUTH_CREDENTIALS="test-token" ``` -{% MarkdocTabs %} +{% Tabs %} {% Tab label="python" %} @@ -269,7 +269,7 @@ chromaClient.heartbeat() {% /Tab %} -{% /MarkdocTabs %} +{% /Tabs %} ## Observability with GCP diff --git a/docs/docs.trychroma.com/markdoc/content/production/containers/docker.md b/docs/docs.trychroma.com/markdoc/content/production/containers/docker.md index ed3b657674b..632f7c614fd 100644 --- a/docs/docs.trychroma.com/markdoc/content/production/containers/docker.md +++ b/docs/docs.trychroma.com/markdoc/content/production/containers/docker.md @@ -118,7 +118,7 @@ In your client environment, set the `CHROMA_CLIENT_AUTH_CREDENTIALS` variable to export CHROMA_CLIENT_AUTH_CREDENTIALS="admin:admin" ``` -{% MarkdocTabs %} +{% Tabs %} {% Tab label="python" %} @@ -170,7 +170,7 @@ chromaClient.heartbeat() {% /Tab %} -{% /MarkdocTabs %} +{% /Tabs %} ### Static API Token Authentication @@ -222,7 +222,7 @@ docker run --env-file ./.chroma_env -v :/chroma/ #### Client Set-Up -{% MarkdocTabs %} +{% Tabs %} {% Tab label="python" %} @@ -281,7 +281,7 @@ chromaClient.heartbeat() {% /Tab %} -{% /MarkdocTabs %} +{% /Tabs %} ## Observability with Docker diff --git a/docs/docs.trychroma.com/markdoc/content/sidebar-config.ts b/docs/docs.trychroma.com/markdoc/content/sidebar-config.ts index afc0e330a8a..ea683869762 100644 --- a/docs/docs.trychroma.com/markdoc/content/sidebar-config.ts +++ b/docs/docs.trychroma.com/markdoc/content/sidebar-config.ts @@ -181,8 +181,8 @@ const sidebarConfig: AppSection[] = [ ], }, { - id: "learn", - name: "Learn", + id: "guides-and-examples", + name: "Guides & Examples", icon: GraduationCap, comingSoon: true, }, diff --git a/docs/docs.trychroma.com/public/favicon.ico b/docs/docs.trychroma.com/public/favicon.ico deleted file mode 100644 index 53ab6af74e73c5529223dc706f37c1036cf6f7bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 285478 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 X@2x%qeFpjr^cm