diff --git a/package-lock.json b/package-lock.json index e4895e6..5909f97 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36,6 +36,7 @@ "@studio-freight/react-lenis": "^0.0.47", "@tabler/icons-react": "^3.2.0", "@tailwindcss/nesting": "^0.0.0-insiders.565cd3e", + "@tanstack/react-table": "^8.16.0", "@vercel/analytics": "^1.2.2", "@vercel/speed-insights": "^1.0.10", "class-variance-authority": "^0.7.0", @@ -51,6 +52,7 @@ "preline": "^2.1.0", "razorpay": "^2.9.3", "react": "^18", + "react-csv": "^2.2.2", "react-dom": "^18", "react-hook-form": "^7.51.3", "react-icons": "^5.1.0", @@ -70,6 +72,7 @@ "@types/node": "^20", "@types/nodemailer": "^6.4.14", "@types/react": "^18.3.1", + "@types/react-csv": "^1.1.10", "@types/react-dom": "^18", "@types/shortid": "^0.0.32", "autoprefixer": "^10.4.19", @@ -2917,6 +2920,37 @@ "node": ">=4" } }, + "node_modules/@tanstack/react-table": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/@tanstack/react-table/-/react-table-8.16.0.tgz", + "integrity": "sha512-rKRjnt8ostqN2fercRVOIH/dq7MAmOENCMvVlKx6P9Iokhh6woBGnIZEkqsY/vEJf1jN3TqLOb34xQGLVRuhAg==", + "dependencies": { + "@tanstack/table-core": "8.16.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "node_modules/@tanstack/table-core": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/@tanstack/table-core/-/table-core-8.16.0.tgz", + "integrity": "sha512-dCG8vQGk4js5v88/k83tTedWOwjGnIyONrKpHpfmSJB8jwFHl8GSu1sBBxbtACVAPtAQgwNxl0rw1d3RqRM1Tg==", + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, "node_modules/@ts-morph/common": { "version": "0.19.0", "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.19.0.tgz", @@ -3041,6 +3075,15 @@ "csstype": "^3.0.2" } }, + "node_modules/@types/react-csv": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@types/react-csv/-/react-csv-1.1.10.tgz", + "integrity": "sha512-PESAyASL7Nfi/IyBR3ufd8qZkyoS+7jOylKmJxRZUZLFASLo4NZaRsJ8rNP8pCcbIziADyWBbLPD1nPddhsL4g==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, "node_modules/@types/react-dom": { "version": "18.2.22", "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.22.tgz", @@ -8161,6 +8204,11 @@ "react": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" } }, + "node_modules/react-csv": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/react-csv/-/react-csv-2.2.2.tgz", + "integrity": "sha512-RG5hOcZKZFigIGE8LxIEV/OgS1vigFQT4EkaHeKgyuCbUAu9Nbd/1RYq++bJcJJ9VOqO/n9TZRADsXNDR4VEpw==" + }, "node_modules/react-dom": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", diff --git a/package.json b/package.json index c426c41..649ee15 100644 --- a/package.json +++ b/package.json @@ -38,6 +38,7 @@ "@studio-freight/react-lenis": "^0.0.47", "@tabler/icons-react": "^3.2.0", "@tailwindcss/nesting": "^0.0.0-insiders.565cd3e", + "@tanstack/react-table": "^8.16.0", "@vercel/analytics": "^1.2.2", "@vercel/speed-insights": "^1.0.10", "class-variance-authority": "^0.7.0", @@ -53,6 +54,7 @@ "preline": "^2.1.0", "razorpay": "^2.9.3", "react": "^18", + "react-csv": "^2.2.2", "react-dom": "^18", "react-hook-form": "^7.51.3", "react-icons": "^5.1.0", @@ -72,6 +74,7 @@ "@types/node": "^20", "@types/nodemailer": "^6.4.14", "@types/react": "^18.3.1", + "@types/react-csv": "^1.1.10", "@types/react-dom": "^18", "@types/shortid": "^0.0.32", "autoprefixer": "^10.4.19", diff --git a/src/app/(content)/layout.tsx b/src/app/(content)/layout.tsx new file mode 100644 index 0000000..8de6bc4 --- /dev/null +++ b/src/app/(content)/layout.tsx @@ -0,0 +1,21 @@ +import Glow from "@/components/shared/glow"; +import { StarsCanvas } from "@/components/ui/Stars"; +import Footer from "@/components/widgets/Footer"; +import { Header } from "@/components/widgets/Header"; +import React from "react"; + +function ContentLayout({ children }: { children: React.ReactNode }) { + return ( + <> + + +
+
+ {children} +
+