Files
website/apps/docs-new/components/NavLinks.tsx
Mauricio Siu f9bf220bb1 feat: enhance documentation site with new components and styles
- Added new dependencies including @radix-ui/react-dropdown-menu, class-variance-authority, clsx, tailwind-merge, and tw-animate-css.
- Introduced new JSON configuration for components and updated layout with logo and navigation links.
- Created new MDX files for remote server documentation, including setup instructions and security recommendations.
- Updated global CSS to include new styles and themes.
- Removed outdated home layout and page components to streamline the documentation structure.
2025-12-07 05:39:06 -06:00

96 lines
3.6 KiB
TypeScript

import { Menu } from 'lucide-react';
import { LogIn, UserPlus, Globe, Heart, Github, Rss } from 'lucide-react';
import {
DropdownMenu,
DropdownMenuContent,
DropdownMenuItem,
DropdownMenuSeparator,
DropdownMenuTrigger,
} from '@/components/ui/dropdown-menu';
export function NavLinks() {
const links = [
{
text: 'Login',
url: 'https://app.dokploy.com/',
icon: LogIn,
},
{
text: 'Sign Up',
url: 'https://app.dokploy.com/register',
icon: UserPlus,
},
{
text: 'Website',
url: 'https://dokploy.com',
icon: Globe,
},
{
text: 'Discord',
url: 'https://discord.com/invite/2tBnJ3jDJc',
icon: () => (
<svg
role="img"
className="size-4"
fill="currentColor"
viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg"
>
<path d="M20.317 4.3698a19.7913 19.7913 0 00-4.8851-1.5152.0741.0741 0 00-.0785.0371c-.211.3753-.4447.8648-.6083 1.2495-1.8447-.2762-3.68-.2762-5.4868 0-.1636-.3933-.4058-.8742-.6177-1.2495a.077.077 0 00-.0785-.037 19.7363 19.7363 0 00-4.8852 1.515.0699.0699 0 00-.0321.0277C.5334 9.0458-.319 13.5799.0992 18.0578a.0824.0824 0 00.0312.0561c2.0528 1.5076 4.0413 2.4228 5.9929 3.0294a.0777.0777 0 00.0842-.0276c.4616-.6304.8731-1.2952 1.226-1.9942a.076.076 0 00-.0416-.1057c-.6528-.2476-1.2743-.5495-1.8722-.8923a.077.077 0 01-.0076-.1277c.1258-.0943.2517-.1923.3718-.2914a.0743.0743 0 01.0776-.0105c3.9278 1.7933 8.18 1.7933 12.0614 0a.0739.0739 0 01.0785.0095c.1202.099.246.1981.3728.2924a.077.077 0 01-.0066.1276 12.2986 12.2986 0 01-1.873.8914.0766.0766 0 00-.0407.1067c.3604.698.7719 1.3628 1.225 1.9932a.076.076 0 00.0842.0286c1.961-.6067 3.9495-1.5219 6.0023-3.0294a.077.077 0 00.0313-.0552c.5004-5.177-.8382-9.6739-3.5485-13.6604a.061.061 0 00-.0312-.0286zM8.02 15.3312c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9555-2.4189 2.157-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.9555 2.4189-2.1569 2.4189zm7.9748 0c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9554-2.4189 2.1569-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.946 2.4189-2.1568 2.4189Z" />
</svg>
),
},
{
text: 'Support',
url: 'https://opencollective.com/dokploy',
icon: Heart,
},
{
text: 'Github',
url: 'https://github.com/dokploy/dokploy',
icon: Github,
},
{
text: 'Blog',
url: 'https://dokploy.com/blog',
icon: Rss,
},
];
return (
<DropdownMenu>
<DropdownMenuTrigger asChild>
<button
className="inline-flex items-center justify-center rounded-md p-2 hover:bg-fd-accent hover:text-fd-accent-foreground transition-colors"
aria-label="Quick links menu"
>
<Menu className="size-4" />
</button>
</DropdownMenuTrigger>
<DropdownMenuContent align="end" className="w-56">
{links.map((link, index) => {
const IconComponent = link.icon;
const showSeparator = index === 2;
return (
<div key={link.text}>
<DropdownMenuItem asChild>
<a
href={link.url}
target="_blank"
rel="noopener noreferrer"
className="flex items-center gap-3 cursor-pointer"
>
<IconComponent className="size-4 text-fd-muted-foreground" />
<span>{link.text}</span>
</a>
</DropdownMenuItem>
{showSeparator && <DropdownMenuSeparator />}
</div>
);
})}
</DropdownMenuContent>
</DropdownMenu>
);
}