From 8e960925a20f05414806192e3917cd868c71c4e3 Mon Sep 17 00:00:00 2001 From: NITISH084 Date: Sat, 12 Sep 2026 23:04:44 +0530 Subject: [PATCH 1/2] added vercel analytics --- package-lock.json | 39 ++++++++++++++++++++++++++++++++++++ package.json | 1 + src/app/layout.tsx | 2 ++ src/components/HeroVideo.tsx | 2 +- 4 files changed, 43 insertions(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index ce668a3..22a9a88 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,7 @@ "version": "0.1.0", "dependencies": { "@base-ui/react": "^1.8.0", + "@vercel/speed-insights": "^2.0.0", "class-variance-authority": "^0.7.1", "cn": "^0.2.6", "lucide-react": "^1.45.0", @@ -2962,6 +2963,44 @@ "win32" ] }, + "node_modules/@vercel/speed-insights": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@vercel/speed-insights/-/speed-insights-2.0.0.tgz", + "integrity": "sha512-jwkNcrTeafWxjmWq4AHBaptSqZiJkYU5adLC9QBSqeim0GcqDMgN5Ievh8OG1rJ6W3A4l1oiP7qr9CWxGuzu3w==", + "license": "Apache-2.0", + "peerDependencies": { + "@sveltejs/kit": "^1 || ^2", + "next": ">= 13", + "nuxt": ">= 3", + "react": "^18 || ^19 || ^19.0.0-rc", + "svelte": ">= 4", + "vue": "^3", + "vue-router": "^4" + }, + "peerDependenciesMeta": { + "@sveltejs/kit": { + "optional": true + }, + "next": { + "optional": true + }, + "nuxt": { + "optional": true + }, + "react": { + "optional": true + }, + "svelte": { + "optional": true + }, + "vue": { + "optional": true + }, + "vue-router": { + "optional": true + } + } + }, "node_modules/accepts": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", diff --git a/package.json b/package.json index 0153b99..39e073a 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ }, "dependencies": { "@base-ui/react": "^1.8.0", + "@vercel/speed-insights": "^2.0.0", "class-variance-authority": "^0.7.1", "cn": "^0.2.6", "lucide-react": "^1.45.0", diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 27f0074..a47db4b 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -1,5 +1,6 @@ import type { Metadata } from "next"; import { Capriola, Inter, JetBrains_Mono } from "next/font/google"; +import { SpeedInsights } from "@vercel/speed-insights/next" import "./globals.css"; const inter = Inter({ @@ -30,6 +31,7 @@ export default function RootLayout({ children }: LayoutProps<"/">) { className={`${capriola.variable} ${inter.variable} ${jetbrainsMono.variable} h-full antialiased`} > {children} + ); } diff --git a/src/components/HeroVideo.tsx b/src/components/HeroVideo.tsx index 5367f88..8c6f2b6 100644 --- a/src/components/HeroVideo.tsx +++ b/src/components/HeroVideo.tsx @@ -1,6 +1,6 @@ const HeroVideo = () => { return ( -
+
+ +
+ +
diff --git a/src/components/ToggleButton.tsx b/src/components/ToggleButton.tsx new file mode 100644 index 0000000..1e3838d --- /dev/null +++ b/src/components/ToggleButton.tsx @@ -0,0 +1,29 @@ +"use client"; + +import { Moon, Sun } from "lucide-react"; +import { useTheme } from "next-themes"; +import { Button } from "@/components/ui/button"; + +export function ModeToggle() { + const { theme, setTheme } = useTheme(); + + const toggleTheme = () => { + setTheme(theme === "dark" ? "light" : "dark"); + }; + + return ( + + ); +} \ No newline at end of file diff --git a/src/components/theme-provider.tsx b/src/components/theme-provider.tsx new file mode 100644 index 0000000..e018a73 --- /dev/null +++ b/src/components/theme-provider.tsx @@ -0,0 +1,11 @@ +"use client" + +import * as React from "react" +import { ThemeProvider as NextThemesProvider } from "next-themes" + +export function ThemeProvider({ + children, + ...props +}: React.ComponentProps) { + return {children} +} \ No newline at end of file