From 6504740d8944e0ba9f32c6d42a8654c430253316 Mon Sep 17 00:00:00 2001
From: tone <3341154833@qq.com>
Date: Thu, 24 Apr 2025 22:40:18 +0800
Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=9F=BA=E7=A1=80=E7=BB=93?=
=?UTF-8?q?=E6=9E=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
tone-page-web/app/account/page.tsx | 5 +
tone-page-web/app/blog/page.tsx | 5 +
tone-page-web/app/config/metadata.ts | 6 +
tone-page-web/app/layout.tsx | 23 ++-
tone-page-web/app/page.tsx | 2 +-
tone-page-web/app/resource/page.tsx | 5 +
tone-page-web/components/ui/button.tsx | 59 ++++++
tone-page-web/components/ui/hover-card.tsx | 44 +++++
.../components/ui/navigation-menu.tsx | 168 ++++++++++++++++++
tone-page-web/components/ui/popover.tsx | 48 +++++
10 files changed, 356 insertions(+), 9 deletions(-)
create mode 100644 tone-page-web/app/account/page.tsx
create mode 100644 tone-page-web/app/blog/page.tsx
create mode 100644 tone-page-web/app/config/metadata.ts
create mode 100644 tone-page-web/app/resource/page.tsx
create mode 100644 tone-page-web/components/ui/button.tsx
create mode 100644 tone-page-web/components/ui/hover-card.tsx
create mode 100644 tone-page-web/components/ui/navigation-menu.tsx
create mode 100644 tone-page-web/components/ui/popover.tsx
diff --git a/tone-page-web/app/account/page.tsx b/tone-page-web/app/account/page.tsx
new file mode 100644
index 0000000..ad24b5d
--- /dev/null
+++ b/tone-page-web/app/account/page.tsx
@@ -0,0 +1,5 @@
+export default function Account() {
+ return (
+
+ )
+}
\ No newline at end of file
diff --git a/tone-page-web/app/blog/page.tsx b/tone-page-web/app/blog/page.tsx
new file mode 100644
index 0000000..80700c6
--- /dev/null
+++ b/tone-page-web/app/blog/page.tsx
@@ -0,0 +1,5 @@
+export default function Blog() {
+ return (
+
+ )
+}
\ No newline at end of file
diff --git a/tone-page-web/app/config/metadata.ts b/tone-page-web/app/config/metadata.ts
new file mode 100644
index 0000000..e31d24f
--- /dev/null
+++ b/tone-page-web/app/config/metadata.ts
@@ -0,0 +1,6 @@
+import { Metadata } from "next";
+
+export const metadata: Metadata = {
+ title: "Create Next App",
+ description: "Generated by create next app",
+};
diff --git a/tone-page-web/app/layout.tsx b/tone-page-web/app/layout.tsx
index 70965c8..4326f52 100644
--- a/tone-page-web/app/layout.tsx
+++ b/tone-page-web/app/layout.tsx
@@ -2,6 +2,10 @@ import type { Metadata } from "next";
import { Geist, Geist_Mono } from "next/font/google";
import "./globals.css";
import { ThemeProvider } from "./components/theme-provider";
+import { metadata } from "./config/metadata";
+import Header from "./components/Header";
+import Footer from "./components/Footer";
+import { Toaster } from "sonner";
const geistSans = Geist({
variable: "--font-geist-sans",
@@ -13,10 +17,7 @@ const geistMono = Geist_Mono({
subsets: ["latin"],
});
-export const metadata: Metadata = {
- title: "Create Next App",
- description: "Generated by create next app",
-};
+export { metadata };
export default function RootLayout({
children,
@@ -24,9 +25,10 @@ export default function RootLayout({
children: React.ReactNode;
}>) {
return (
-
+
- {children}
+
+
+ {children}
+
+
+
);
-}
+}
\ No newline at end of file
diff --git a/tone-page-web/app/page.tsx b/tone-page-web/app/page.tsx
index aa23646..e7ed788 100644
--- a/tone-page-web/app/page.tsx
+++ b/tone-page-web/app/page.tsx
@@ -1,7 +1,7 @@
export default function Home() {
return (
-
+ 1312能哦
);
}
diff --git a/tone-page-web/app/resource/page.tsx b/tone-page-web/app/resource/page.tsx
new file mode 100644
index 0000000..d0d184e
--- /dev/null
+++ b/tone-page-web/app/resource/page.tsx
@@ -0,0 +1,5 @@
+export default function Resources() {
+ return (
+
+ )
+}
\ No newline at end of file
diff --git a/tone-page-web/components/ui/button.tsx b/tone-page-web/components/ui/button.tsx
new file mode 100644
index 0000000..a2df8dc
--- /dev/null
+++ b/tone-page-web/components/ui/button.tsx
@@ -0,0 +1,59 @@
+import * as React from "react"
+import { Slot } from "@radix-ui/react-slot"
+import { cva, type VariantProps } from "class-variance-authority"
+
+import { cn } from "@/lib/utils"
+
+const buttonVariants = cva(
+ "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
+ {
+ variants: {
+ variant: {
+ default:
+ "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
+ destructive:
+ "bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
+ outline:
+ "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
+ secondary:
+ "bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",
+ ghost:
+ "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
+ link: "text-primary underline-offset-4 hover:underline",
+ },
+ size: {
+ default: "h-9 px-4 py-2 has-[>svg]:px-3",
+ sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",
+ lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
+ icon: "size-9",
+ },
+ },
+ defaultVariants: {
+ variant: "default",
+ size: "default",
+ },
+ }
+)
+
+function Button({
+ className,
+ variant,
+ size,
+ asChild = false,
+ ...props
+}: React.ComponentProps<"button"> &
+ VariantProps & {
+ asChild?: boolean
+ }) {
+ const Comp = asChild ? Slot : "button"
+
+ return (
+
+ )
+}
+
+export { Button, buttonVariants }
diff --git a/tone-page-web/components/ui/hover-card.tsx b/tone-page-web/components/ui/hover-card.tsx
new file mode 100644
index 0000000..e754186
--- /dev/null
+++ b/tone-page-web/components/ui/hover-card.tsx
@@ -0,0 +1,44 @@
+"use client"
+
+import * as React from "react"
+import * as HoverCardPrimitive from "@radix-ui/react-hover-card"
+
+import { cn } from "@/lib/utils"
+
+function HoverCard({
+ ...props
+}: React.ComponentProps) {
+ return
+}
+
+function HoverCardTrigger({
+ ...props
+}: React.ComponentProps) {
+ return (
+
+ )
+}
+
+function HoverCardContent({
+ className,
+ align = "center",
+ sideOffset = 4,
+ ...props
+}: React.ComponentProps) {
+ return (
+
+
+
+ )
+}
+
+export { HoverCard, HoverCardTrigger, HoverCardContent }
diff --git a/tone-page-web/components/ui/navigation-menu.tsx b/tone-page-web/components/ui/navigation-menu.tsx
new file mode 100644
index 0000000..1199945
--- /dev/null
+++ b/tone-page-web/components/ui/navigation-menu.tsx
@@ -0,0 +1,168 @@
+import * as React from "react"
+import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu"
+import { cva } from "class-variance-authority"
+import { ChevronDownIcon } from "lucide-react"
+
+import { cn } from "@/lib/utils"
+
+function NavigationMenu({
+ className,
+ children,
+ viewport = true,
+ ...props
+}: React.ComponentProps & {
+ viewport?: boolean
+}) {
+ return (
+
+ {children}
+ {viewport && }
+
+ )
+}
+
+function NavigationMenuList({
+ className,
+ ...props
+}: React.ComponentProps) {
+ return (
+
+ )
+}
+
+function NavigationMenuItem({
+ className,
+ ...props
+}: React.ComponentProps) {
+ return (
+
+ )
+}
+
+const navigationMenuTriggerStyle = cva(
+ "group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=open]:hover:bg-accent data-[state=open]:text-accent-foreground data-[state=open]:focus:bg-accent data-[state=open]:bg-accent/50 focus-visible:ring-ring/50 outline-none transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1"
+)
+
+function NavigationMenuTrigger({
+ className,
+ children,
+ ...props
+}: React.ComponentProps) {
+ return (
+
+ {children}{" "}
+
+
+ )
+}
+
+function NavigationMenuContent({
+ className,
+ ...props
+}: React.ComponentProps) {
+ return (
+
+ )
+}
+
+function NavigationMenuViewport({
+ className,
+ ...props
+}: React.ComponentProps) {
+ return (
+
+
+
+ )
+}
+
+function NavigationMenuLink({
+ className,
+ ...props
+}: React.ComponentProps) {
+ return (
+
+ )
+}
+
+function NavigationMenuIndicator({
+ className,
+ ...props
+}: React.ComponentProps) {
+ return (
+
+
+
+ )
+}
+
+export {
+ NavigationMenu,
+ NavigationMenuList,
+ NavigationMenuItem,
+ NavigationMenuContent,
+ NavigationMenuTrigger,
+ NavigationMenuLink,
+ NavigationMenuIndicator,
+ NavigationMenuViewport,
+ navigationMenuTriggerStyle,
+}
diff --git a/tone-page-web/components/ui/popover.tsx b/tone-page-web/components/ui/popover.tsx
new file mode 100644
index 0000000..01e468b
--- /dev/null
+++ b/tone-page-web/components/ui/popover.tsx
@@ -0,0 +1,48 @@
+"use client"
+
+import * as React from "react"
+import * as PopoverPrimitive from "@radix-ui/react-popover"
+
+import { cn } from "@/lib/utils"
+
+function Popover({
+ ...props
+}: React.ComponentProps) {
+ return
+}
+
+function PopoverTrigger({
+ ...props
+}: React.ComponentProps) {
+ return
+}
+
+function PopoverContent({
+ className,
+ align = "center",
+ sideOffset = 4,
+ ...props
+}: React.ComponentProps) {
+ return (
+
+
+
+ )
+}
+
+function PopoverAnchor({
+ ...props
+}: React.ComponentProps) {
+ return
+}
+
+export { Popover, PopoverTrigger, PopoverContent, PopoverAnchor }