Files
Hayden Bleasel cf9ccd0076 Open Source Docs (#272)
* Scaffold Geistdocs instance

* Update biome.json

* Replace content

* Re-path docs

* Update docs package name

* Misc fixes

* Update geistdocs.tsx

* Move content to correct folder

* Start migrating custom components

* Finish migrating custom components

* Migrate existing redirects

* Remove #next suffixes from code blocks

* Migrate homepage and flags

* Remove duplicate lockfiles

* Start fixing homepage

* Replace Geist components

* Fix colors

* Improve layout

* Fix code blocks

* Fix hero

* Fix illustrations

* Fix redirect

* Fix nav links

* Patch in FrameworkSwitcher

* Bump Next.js in docs

* Delete turbo.json

* Misc fixes

* More logo fixes
2026-02-13 09:06:03 +02:00

50 lines
1.2 KiB
TypeScript

import { ExternalLinkIcon } from "lucide-react";
import {
OpenIn,
OpenInChatGPT,
OpenInClaude,
OpenInContent,
OpenInCursor,
OpenInScira,
OpenInSeparator,
OpenInT3,
OpenInTrigger,
OpenInv0,
} from "@/components/ai-elements/open-in-chat";
type OpenInChatProps = {
href: string;
};
export const OpenInChat = ({ href }: OpenInChatProps) => {
const protocol = process.env.NODE_ENV === "production" ? "https" : "http";
const url = new URL(
href,
`${protocol}://${process.env.NEXT_PUBLIC_VERCEL_PROJECT_PRODUCTION_URL}`
).toString();
const query = `Read this page, I want to ask questions about it. ${url}`;
return (
<OpenIn query={query}>
<OpenInTrigger asChild>
<button
className="flex items-center gap-1.5 text-muted-foreground text-sm transition-colors hover:text-foreground"
type="button"
>
<ExternalLinkIcon className="size-4" />
Open in chat
</button>
</OpenInTrigger>
<OpenInContent align="start" side="top">
<OpenInv0 />
<OpenInSeparator />
<OpenInChatGPT />
<OpenInClaude />
<OpenInT3 />
<OpenInScira />
<OpenInCursor />
</OpenInContent>
</OpenIn>
);
};