+ Creating an account allows you to mark your favorite servers,
+ link your own servers with your own, link your Minecraft
+ account to your MHSF one, and store various different settings
+ to sync across all of the devices linked with your account.
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/apps/www/src/components/ui/badge.tsx b/apps/www/src/components/ui/badge.tsx
index 6befb67..78016dd 100644
--- a/apps/www/src/components/ui/badge.tsx
+++ b/apps/www/src/components/ui/badge.tsx
@@ -54,7 +54,7 @@ export interface BadgeProps
function Badge({ className, variant, ...props }: BadgeProps) {
return (
-
+
);
}
diff --git a/apps/www/src/components/ui/tabs.tsx b/apps/www/src/components/ui/tabs.tsx
new file mode 100644
index 0000000..dffca9d
--- /dev/null
+++ b/apps/www/src/components/ui/tabs.tsx
@@ -0,0 +1,61 @@
+"use client";
+
+import * as React from "react";
+import * as TabsPrimitive from "@radix-ui/react-tabs";
+
+import { cn } from "@/lib/utils";
+
+const Tabs = TabsPrimitive.Root;
+
+const TabsList = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, ...props }, ref) => (
+
+));
+TabsList.displayName = TabsPrimitive.List.displayName;
+
+const TabsTrigger = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, ...props }, ref) => (
+
+ {props.children}
+
+
+));
+TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
+
+const TabsContent = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, ...props }, ref) => (
+
+));
+TabsContent.displayName = TabsPrimitive.Content.displayName;
+
+export { Tabs, TabsList, TabsTrigger, TabsContent };
diff --git a/apps/www/src/components/util/link.tsx b/apps/www/src/components/util/link.tsx
index 4a66953..6e8721c 100644
--- a/apps/www/src/components/util/link.tsx
+++ b/apps/www/src/components/util/link.tsx
@@ -1,84 +1,22 @@
-/*
- * MHSF, Minehut Server List
- * All external content is rather licensed under the ECA Agreement
- * located here: https://list.mlnehut.com/docs/legal/external-content-agreement
- *
- * All code under MHSF is licensed under the MIT License
- * by open source contributors
- *
- * Copyright (c) 2024 dvelo
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- */
-
-import type { ReactNode } from "react";
-import { default as NextLink } from "next/link";
+import { type LinkProps, default as NextLink } from "next/link";
import { Book, ExternalLink, NotebookText } from "lucide-react";
-export default function A({
- children,
- alt,
-}: {
- children: string;
- alt: string | ReactNode;
-}) {
- return (
-
- {(children || "").startsWith("Docs:") && (
-
- )}
- {(children || "").startsWith("Wiki:") && (
-
- )}
- {alt}
- {(children || "").startsWith("https") && (
-
- )}
-
- );
-}
+export function Link(
+ props: LinkProps & {
+ children?: React.ReactNode;
+ }
+) {
+ const href = props.href as string;
-export function ALegacy({
- children,
- href,
-}: {
- children?: string | ReactNode;
- href?: string;
-}) {
return (
-
+
{(href || "").startsWith("Docs:") && (
)}
{(href || "").startsWith("Wiki:") && (
)}
- {children}
+ {props.children}
{(href || "").startsWith("https") && (
)}
diff --git a/apps/www/src/config/version.tsx b/apps/www/src/config/version.tsx
index db096ff..9960e31 100644
--- a/apps/www/src/config/version.tsx
+++ b/apps/www/src/config/version.tsx
@@ -29,10 +29,9 @@
*/
"use client";
-import A from "@/components/util/link";
+import { Link } from "@/components/util/link";
import { Button } from "@/components/ui/button";
import Github from "@/components/ui/github";
-import Link from "next/link";
import type { ReactNode } from "react";
const User = ({ user }: { user: string }) => (
@@ -238,9 +237,9 @@ export const changelog: { name: string; id: string; changelog: ReactNode }[] = [