nextjs-starter-kit 0.1.3 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/cli.js +22 -5
- package/package.json +5 -73
- package/template/.github/PR_REQUEST_TEMPLATE.md +18 -0
- package/template/.github/workflows/pr_check.yml +38 -0
- package/template/.husky/pre-commit +1 -0
- package/template/.prettierignore +7 -0
- package/template/.prettierrc +9 -0
- package/template/README.md +165 -0
- package/template/components.json +21 -0
- package/template/eslint.config.mjs +42 -0
- package/template/jsconfig.json +7 -0
- package/template/lint-staged.config.js +6 -0
- package/template/next.config.mjs +6 -0
- package/template/package.json +72 -0
- package/template/pnpm-lock.yaml +7512 -0
- package/template/postcss.config.mjs +5 -0
- package/template/src/animations/loader.js +81 -0
- package/template/src/app/(routes)/(home)/page.jsx +7 -0
- package/template/src/app/favicon.ico +0 -0
- package/template/src/app/layout.js +81 -0
- package/template/src/app/not-found.jsx +19 -0
- package/template/src/app/robots.js +10 -0
- package/template/src/app/sitemap.js +10 -0
- package/template/src/assets/Logos/index.js +3 -0
- package/template/src/assets/index.js +5 -0
- package/template/src/components/ui/accordion.jsx +53 -0
- package/template/src/components/ui/alert-dialog.jsx +136 -0
- package/template/src/components/ui/alert.jsx +59 -0
- package/template/src/components/ui/avatar.jsx +44 -0
- package/template/src/components/ui/badge.jsx +40 -0
- package/template/src/components/ui/breadcrumb.jsx +96 -0
- package/template/src/components/ui/button.jsx +49 -0
- package/template/src/components/ui/calendar.jsx +221 -0
- package/template/src/components/ui/card.jsx +92 -0
- package/template/src/components/ui/carousel.jsx +217 -0
- package/template/src/components/ui/chart.jsx +332 -0
- package/template/src/components/ui/checkbox.jsx +29 -0
- package/template/src/components/ui/collapsible.jsx +27 -0
- package/template/src/components/ui/command.jsx +156 -0
- package/template/src/components/ui/container.jsx +18 -0
- package/template/src/components/ui/dialog.jsx +127 -0
- package/template/src/components/ui/drawer.jsx +114 -0
- package/template/src/components/ui/dropdown-menu.jsx +210 -0
- package/template/src/components/ui/form.jsx +140 -0
- package/template/src/components/ui/headings.jsx +34 -0
- package/template/src/components/ui/image.jsx +21 -0
- package/template/src/components/ui/input-otp.jsx +66 -0
- package/template/src/components/ui/input.jsx +21 -0
- package/template/src/components/ui/label.jsx +21 -0
- package/template/src/components/ui/pagination.jsx +105 -0
- package/template/src/components/ui/popover.jsx +42 -0
- package/template/src/components/ui/progress.jsx +27 -0
- package/template/src/components/ui/select.jsx +157 -0
- package/template/src/components/ui/separator.jsx +28 -0
- package/template/src/components/ui/sheet.jsx +117 -0
- package/template/src/components/ui/skeleton.jsx +13 -0
- package/template/src/components/ui/slider.jsx +63 -0
- package/template/src/components/ui/sonner.jsx +23 -0
- package/template/src/components/ui/switch.jsx +28 -0
- package/template/src/components/ui/table.jsx +113 -0
- package/template/src/components/ui/tabs.jsx +54 -0
- package/template/src/components/ui/textarea.jsx +18 -0
- package/template/src/components/ui/tooltip.jsx +49 -0
- package/template/src/lib/axios.js +8 -0
- package/template/src/lib/queryClient.js +11 -0
- package/template/src/lib/utils.js +6 -0
- package/template/src/providers/QueryProvider.jsx +15 -0
- package/template/src/shared/icons.js +308 -0
- package/template/src/styles/fonts.js +30 -0
- package/template/src/styles/globals.css +124 -0
package/bin/cli.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import
|
|
2
|
+
import { execSync } from "child_process";
|
|
3
|
+
import { existsSync, mkdirSync, writeFileSync, copyFileSync } from "fs";
|
|
3
4
|
import path from "path";
|
|
4
5
|
import { fileURLToPath } from "url";
|
|
5
6
|
|
|
@@ -7,9 +8,25 @@ const __filename = fileURLToPath(import.meta.url);
|
|
|
7
8
|
const __dirname = path.dirname(__filename);
|
|
8
9
|
|
|
9
10
|
const projectName = process.argv[2] || "my-app";
|
|
10
|
-
const
|
|
11
|
+
const projectPath = path.resolve(process.cwd(), projectName);
|
|
11
12
|
|
|
12
|
-
|
|
13
|
+
if (existsSync(projectPath)) {
|
|
14
|
+
console.error(`❌ Folder "${projectName}" already exists.`);
|
|
15
|
+
process.exit(1);
|
|
16
|
+
}
|
|
13
17
|
|
|
14
|
-
console.log(
|
|
15
|
-
|
|
18
|
+
console.log(`🚀 Creating Next.js app in "${projectName}"...`);
|
|
19
|
+
mkdirSync(projectPath);
|
|
20
|
+
|
|
21
|
+
// Copy template files
|
|
22
|
+
const templateDir = path.join(__dirname, "../template");
|
|
23
|
+
execSync(`cp -r ${templateDir}/* ${projectPath}`);
|
|
24
|
+
|
|
25
|
+
// Init git
|
|
26
|
+
execSync("git init", { cwd: projectPath, stdio: "inherit" });
|
|
27
|
+
|
|
28
|
+
// Install deps
|
|
29
|
+
console.log("📦 Installing dependencies...");
|
|
30
|
+
execSync("npm install", { cwd: projectPath, stdio: "inherit" });
|
|
31
|
+
|
|
32
|
+
console.log(`✅ Done! cd ${projectName} && npm run dev`);
|
package/package.json
CHANGED
|
@@ -1,81 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nextjs-starter-kit",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"private": false,
|
|
3
|
+
"version": "0.1.5",
|
|
5
4
|
"bin": {
|
|
6
|
-
"create-nextjs-starter
|
|
5
|
+
"create-nextjs-starter": "bin/cli.js"
|
|
7
6
|
},
|
|
7
|
+
"type": "module",
|
|
8
8
|
"files": [
|
|
9
9
|
"bin",
|
|
10
|
-
"template"
|
|
11
|
-
"package.json",
|
|
12
|
-
"README.md"
|
|
10
|
+
"template"
|
|
13
11
|
],
|
|
14
|
-
"
|
|
15
|
-
"dev": "next dev --turbopack",
|
|
16
|
-
"build": "pnpm lint && pnpm format && next build --turbopack",
|
|
17
|
-
"start": "next start",
|
|
18
|
-
"lint": "eslint",
|
|
19
|
-
"check-format": "prettier --check .",
|
|
20
|
-
"format": "prettier --write .",
|
|
21
|
-
"prepare": "husky"
|
|
22
|
-
},
|
|
23
|
-
"dependencies": {
|
|
24
|
-
"@hookform/resolvers": "^5.2.1",
|
|
25
|
-
"@next/third-parties": "^15.5.0",
|
|
26
|
-
"@radix-ui/react-accordion": "^1.2.12",
|
|
27
|
-
"@radix-ui/react-alert-dialog": "^1.1.15",
|
|
28
|
-
"@radix-ui/react-avatar": "^1.1.10",
|
|
29
|
-
"@radix-ui/react-checkbox": "^1.3.3",
|
|
30
|
-
"@radix-ui/react-collapsible": "^1.1.12",
|
|
31
|
-
"@radix-ui/react-dialog": "^1.1.15",
|
|
32
|
-
"@radix-ui/react-dropdown-menu": "^2.1.16",
|
|
33
|
-
"@radix-ui/react-label": "^2.1.7",
|
|
34
|
-
"@radix-ui/react-popover": "^1.1.15",
|
|
35
|
-
"@radix-ui/react-progress": "^1.1.7",
|
|
36
|
-
"@radix-ui/react-select": "^2.2.6",
|
|
37
|
-
"@radix-ui/react-separator": "^1.1.7",
|
|
38
|
-
"@radix-ui/react-slider": "^1.3.6",
|
|
39
|
-
"@radix-ui/react-slot": "^1.2.3",
|
|
40
|
-
"@radix-ui/react-switch": "^1.2.6",
|
|
41
|
-
"@radix-ui/react-tabs": "^1.1.13",
|
|
42
|
-
"@radix-ui/react-tooltip": "^1.2.8",
|
|
43
|
-
"@tabler/icons-react": "^3.34.1",
|
|
44
|
-
"@tanstack/react-query": "^5.85.5",
|
|
45
|
-
"@tanstack/react-query-devtools": "^5.85.5",
|
|
46
|
-
"axios": "^1.11.0",
|
|
47
|
-
"class-variance-authority": "^0.7.1",
|
|
48
|
-
"clsx": "^2.1.1",
|
|
49
|
-
"cmdk": "^1.1.1",
|
|
50
|
-
"date-fns": "^4.1.0",
|
|
51
|
-
"embla-carousel-react": "^8.6.0",
|
|
52
|
-
"input-otp": "^1.4.2",
|
|
53
|
-
"lucide-react": "^0.541.0",
|
|
54
|
-
"next": "15.5.0",
|
|
55
|
-
"next-themes": "^0.4.6",
|
|
56
|
-
"react": "19.1.0",
|
|
57
|
-
"react-day-picker": "^9.9.0",
|
|
58
|
-
"react-dom": "19.1.0",
|
|
59
|
-
"react-hook-form": "^7.62.0",
|
|
60
|
-
"recharts": "2.15.4",
|
|
61
|
-
"sonner": "^2.0.7",
|
|
62
|
-
"tailwind-merge": "^3.3.1",
|
|
63
|
-
"vaul": "^1.1.2",
|
|
64
|
-
"zod": "^4.0.17"
|
|
65
|
-
},
|
|
66
|
-
"devDependencies": {
|
|
67
|
-
"@eslint/eslintrc": "^3",
|
|
68
|
-
"@tailwindcss/postcss": "^0.6.14",
|
|
69
|
-
"@tanstack/eslint-plugin-query": "^5.83.1",
|
|
70
|
-
"eslint": "^9",
|
|
71
|
-
"eslint-config-next": "15.5.0",
|
|
72
|
-
"eslint-config-prettier": "^10.1.8",
|
|
73
|
-
"eslint-plugin-react-hooks": "^5.2.0",
|
|
74
|
-
"husky": "^9.1.7",
|
|
75
|
-
"lint-staged": "^16.1.5",
|
|
76
|
-
"prettier": "^3.6.2",
|
|
77
|
-
"prettier-plugin-tailwindcss": "^0.6.14",
|
|
78
|
-
"tailwindcss": "^4",
|
|
79
|
-
"tw-animate-css": "^1.3.7"
|
|
80
|
-
}
|
|
12
|
+
"dependencies": {}
|
|
81
13
|
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
## 📌 What’s changing?
|
|
2
|
+
|
|
3
|
+
<!-- Briefly explain what this PR does -->
|
|
4
|
+
|
|
5
|
+
## ✅ Checklist
|
|
6
|
+
|
|
7
|
+
- [ ] I tested this change locally
|
|
8
|
+
- [ ] I updated related docs (if needed)
|
|
9
|
+
- [ ] This PR is rebased on the latest base branch
|
|
10
|
+
- [ ] This PR is ready to squash & merge
|
|
11
|
+
|
|
12
|
+
## 🚀 Deployment notes
|
|
13
|
+
|
|
14
|
+
<!-- Optional: Add notes if anything special is needed during deploy -->
|
|
15
|
+
|
|
16
|
+
## 🎯 Related Issues or Cards
|
|
17
|
+
|
|
18
|
+
Closes #
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
name: PR Check
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
branches:
|
|
6
|
+
- development
|
|
7
|
+
- testing
|
|
8
|
+
- production
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
lint-and-build:
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
|
|
14
|
+
steps:
|
|
15
|
+
- name: Checkout
|
|
16
|
+
uses: actions/checkout@v4
|
|
17
|
+
|
|
18
|
+
- name: Use Node
|
|
19
|
+
uses: actions/setup-node@v4
|
|
20
|
+
with:
|
|
21
|
+
node-version: 20
|
|
22
|
+
|
|
23
|
+
- name: Enable Corepack & Install
|
|
24
|
+
run: |
|
|
25
|
+
corepack enable
|
|
26
|
+
pnpm install
|
|
27
|
+
|
|
28
|
+
- name: Lint
|
|
29
|
+
run: pnpm lint
|
|
30
|
+
|
|
31
|
+
- name: Format Check
|
|
32
|
+
run: pnpm format-check
|
|
33
|
+
|
|
34
|
+
- name: Format
|
|
35
|
+
run: pnpm format
|
|
36
|
+
|
|
37
|
+
- name: Build
|
|
38
|
+
run: pnpm build
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
pnpm lint-staged
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
# Next.js Starter
|
|
2
|
+
|
|
3
|
+
[](https://nextjs.org/)
|
|
4
|
+
[](https://pnpm.io/)
|
|
5
|
+
[](LICENSE)
|
|
6
|
+
[](https://prettier.io/)
|
|
7
|
+
[](https://eslint.org/)
|
|
8
|
+
|
|
9
|
+
> A modern Next.js starter template with modular structure, reusable UI components, and best practices for scalable web development.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Features
|
|
14
|
+
|
|
15
|
+
- **Next.js 15.5.0** with App Router
|
|
16
|
+
- Modular folder structure (`src/animations`, `src/assets`, `src/components`, etc.)
|
|
17
|
+
- Reusable UI components (Accordion, Button, Card, Table, etc.)
|
|
18
|
+
- Context, hooks, and helpers for state management and utilities
|
|
19
|
+
- Axios setup for API requests
|
|
20
|
+
- QueryClient for data fetching and caching
|
|
21
|
+
- Global styles and custom fonts
|
|
22
|
+
- Linting and formatting with ESLint, Prettier, and lint-staged
|
|
23
|
+
- PostCSS for advanced CSS processing
|
|
24
|
+
- Husky for Git hooks
|
|
25
|
+
- Tailwind CSS for utility-first styling
|
|
26
|
+
- Prettier and Prettier-plugin-tailwindcss for code formatting
|
|
27
|
+
- Embla Carousel, Recharts, Lucide, Tabler Icons, and more for UI/UX enhancements
|
|
28
|
+
- Zod for schema validation
|
|
29
|
+
- React Query for data fetching
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Getting Started
|
|
34
|
+
|
|
35
|
+
### Prerequisites
|
|
36
|
+
|
|
37
|
+
- Node.js 22+
|
|
38
|
+
- pnpm (recommended) or npm/yarn
|
|
39
|
+
|
|
40
|
+
### Installation
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
pnpm install
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Running the Development Server
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
pnpm dev
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Open [http://localhost:3000](http://localhost:3000) in your browser.
|
|
53
|
+
|
|
54
|
+
### Building for Production
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
pnpm build
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Project Structure
|
|
63
|
+
|
|
64
|
+
```text
|
|
65
|
+
src/
|
|
66
|
+
animations/ # Animation utilities
|
|
67
|
+
app/ # Next.js app router structure
|
|
68
|
+
(routes)/ # Route groups
|
|
69
|
+
(home)/ # Home page
|
|
70
|
+
assets/ # Static assets and logos
|
|
71
|
+
components/ # UI components, constants, context, helpers, hooks, lib, providers, schema, shared, styles, utils, validations
|
|
72
|
+
ui/ # Reusable UI elements
|
|
73
|
+
constants/ # App-wide constants
|
|
74
|
+
context/ # React context providers
|
|
75
|
+
helpers/ # Utility functions
|
|
76
|
+
hooks/ # Custom React hooks
|
|
77
|
+
lib/ # Libraries (axios, queryClient, utils)
|
|
78
|
+
providers/ # Context providers
|
|
79
|
+
schema/ # Validation schemas
|
|
80
|
+
shared/ # Shared resources (icons, etc.)
|
|
81
|
+
styles/ # Fonts and global styles
|
|
82
|
+
utils/ # Utility functions
|
|
83
|
+
validations/ # Validation logic
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## Scripts
|
|
89
|
+
|
|
90
|
+
- `pnpm dev` — Start development server
|
|
91
|
+
- `pnpm build` — Run lint, format, and build for production
|
|
92
|
+
- `pnpm lint` — Run ESLint
|
|
93
|
+
- `pnpm format` — Format code with Prettier
|
|
94
|
+
- `pnpm check-format` — Check code formatting
|
|
95
|
+
- `pnpm prepare` — Prepare Husky hooks
|
|
96
|
+
- `pnpm start` — Start production server
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## Dependencies
|
|
101
|
+
|
|
102
|
+
### Main
|
|
103
|
+
|
|
104
|
+
- next@15.5.0
|
|
105
|
+
- react@19.1.0, react-dom@19.1.0
|
|
106
|
+
- axios
|
|
107
|
+
- @tanstack/react-query, @tanstack/react-query-devtools
|
|
108
|
+
- @radix-ui/react-\* (Accordion, Dialog, Tabs, etc.)
|
|
109
|
+
- @tabler/icons-react, lucide-react
|
|
110
|
+
- embla-carousel-react
|
|
111
|
+
- recharts
|
|
112
|
+
- zod
|
|
113
|
+
- input-otp
|
|
114
|
+
- sonner
|
|
115
|
+
- tailwind-merge
|
|
116
|
+
- next-themes
|
|
117
|
+
- date-fns
|
|
118
|
+
- class-variance-authority, clsx
|
|
119
|
+
- vaul
|
|
120
|
+
|
|
121
|
+
### Dev
|
|
122
|
+
|
|
123
|
+
- eslint, eslint-config-next, eslint-config-prettier, eslint-plugin-react-hooks, @tanstack/eslint-plugin-query, @eslint/eslintrc
|
|
124
|
+
- prettier, prettier-plugin-tailwindcss
|
|
125
|
+
- husky
|
|
126
|
+
- lint-staged
|
|
127
|
+
- tailwindcss, @tailwindcss/postcss, tw-animate-css
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## Linting & Formatting
|
|
132
|
+
|
|
133
|
+
- ESLint config: `eslint.config.mjs`
|
|
134
|
+
- Prettier: integrated via lint-staged
|
|
135
|
+
- Lint-staged: `lint-staged.config.js`
|
|
136
|
+
- Husky for pre-commit hooks
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## Customization
|
|
141
|
+
|
|
142
|
+
- Add new UI components in `src/components/ui/`
|
|
143
|
+
- Add new routes in `src/app/(routes)/`
|
|
144
|
+
- Update global styles in `src/components/styles/globals.css`
|
|
145
|
+
- Configure Axios in `src/components/lib/axios.js`
|
|
146
|
+
- Add/modify validation schemas in `src/components/schema/`
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## Author
|
|
151
|
+
|
|
152
|
+
**Harshit Ostwal**
|
|
153
|
+
[codewithharshitjain@gmail.com](mailto:codewithharshitjain@gmail.com)
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## License
|
|
158
|
+
|
|
159
|
+
This project is licensed under the MIT License.
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## Contributing
|
|
164
|
+
|
|
165
|
+
Pull requests, issues, and suggestions are welcome!
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://ui.shadcn.com/schema.json",
|
|
3
|
+
"style": "new-york",
|
|
4
|
+
"rsc": true,
|
|
5
|
+
"tsx": false,
|
|
6
|
+
"tailwind": {
|
|
7
|
+
"config": "",
|
|
8
|
+
"css": "@/styles/globals.css",
|
|
9
|
+
"baseColor": "neutral",
|
|
10
|
+
"cssVariables": true,
|
|
11
|
+
"prefix": ""
|
|
12
|
+
},
|
|
13
|
+
"aliases": {
|
|
14
|
+
"components": "@/components",
|
|
15
|
+
"utils": "@/lib/utils",
|
|
16
|
+
"ui": "@/components/ui",
|
|
17
|
+
"lib": "@/lib",
|
|
18
|
+
"hooks": "@/hooks"
|
|
19
|
+
},
|
|
20
|
+
"iconLibrary": "lucide"
|
|
21
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { dirname } from "path";
|
|
2
|
+
import { fileURLToPath } from "url";
|
|
3
|
+
import { FlatCompat } from "@eslint/eslintrc";
|
|
4
|
+
|
|
5
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = dirname(__filename);
|
|
7
|
+
|
|
8
|
+
const compat = new FlatCompat({
|
|
9
|
+
baseDirectory: __dirname,
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
const eslintConfig = [
|
|
13
|
+
{
|
|
14
|
+
ignores: [
|
|
15
|
+
"node_modules/**",
|
|
16
|
+
".next/**",
|
|
17
|
+
"out/**",
|
|
18
|
+
"build/**",
|
|
19
|
+
"next-env.d.ts",
|
|
20
|
+
],
|
|
21
|
+
},
|
|
22
|
+
...compat.extends("next/core-web-vitals", "prettier"),
|
|
23
|
+
{
|
|
24
|
+
files: ["**/*.{js,jsx}"],
|
|
25
|
+
languageOptions: {
|
|
26
|
+
parserOptions: {
|
|
27
|
+
ecmaVersion: 2022,
|
|
28
|
+
sourceType: "module",
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
rules: {
|
|
32
|
+
"no-unused-vars": "warn",
|
|
33
|
+
"no-console": "warn",
|
|
34
|
+
"@next/next/no-document-import-in-page": "off",
|
|
35
|
+
"react-hooks/rules-of-hooks": "error",
|
|
36
|
+
"react-hooks/exhaustive-deps": "warn",
|
|
37
|
+
"@typescript-eslint/no-unused-vars": "off",
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
];
|
|
41
|
+
|
|
42
|
+
export default eslintConfig;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "nextjs-starter-kit",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"private": true,
|
|
5
|
+
"scripts": {
|
|
6
|
+
"dev": "next dev --turbopack",
|
|
7
|
+
"build": "pnpm lint && pnpm format && next build --turbopack",
|
|
8
|
+
"start": "next start",
|
|
9
|
+
"lint": "eslint",
|
|
10
|
+
"check-format": "prettier --check .",
|
|
11
|
+
"format": "prettier --write .",
|
|
12
|
+
"prepare": "husky"
|
|
13
|
+
},
|
|
14
|
+
"dependencies": {
|
|
15
|
+
"@hookform/resolvers": "^5.2.1",
|
|
16
|
+
"@next/third-parties": "^15.5.0",
|
|
17
|
+
"@radix-ui/react-accordion": "^1.2.12",
|
|
18
|
+
"@radix-ui/react-alert-dialog": "^1.1.15",
|
|
19
|
+
"@radix-ui/react-avatar": "^1.1.10",
|
|
20
|
+
"@radix-ui/react-checkbox": "^1.3.3",
|
|
21
|
+
"@radix-ui/react-collapsible": "^1.1.12",
|
|
22
|
+
"@radix-ui/react-dialog": "^1.1.15",
|
|
23
|
+
"@radix-ui/react-dropdown-menu": "^2.1.16",
|
|
24
|
+
"@radix-ui/react-label": "^2.1.7",
|
|
25
|
+
"@radix-ui/react-popover": "^1.1.15",
|
|
26
|
+
"@radix-ui/react-progress": "^1.1.7",
|
|
27
|
+
"@radix-ui/react-select": "^2.2.6",
|
|
28
|
+
"@radix-ui/react-separator": "^1.1.7",
|
|
29
|
+
"@radix-ui/react-slider": "^1.3.6",
|
|
30
|
+
"@radix-ui/react-slot": "^1.2.3",
|
|
31
|
+
"@radix-ui/react-switch": "^1.2.6",
|
|
32
|
+
"@radix-ui/react-tabs": "^1.1.13",
|
|
33
|
+
"@radix-ui/react-tooltip": "^1.2.8",
|
|
34
|
+
"@tabler/icons-react": "^3.34.1",
|
|
35
|
+
"@tanstack/react-query": "^5.85.5",
|
|
36
|
+
"@tanstack/react-query-devtools": "^5.85.5",
|
|
37
|
+
"axios": "^1.11.0",
|
|
38
|
+
"class-variance-authority": "^0.7.1",
|
|
39
|
+
"clsx": "^2.1.1",
|
|
40
|
+
"cmdk": "^1.1.1",
|
|
41
|
+
"date-fns": "^4.1.0",
|
|
42
|
+
"embla-carousel-react": "^8.6.0",
|
|
43
|
+
"input-otp": "^1.4.2",
|
|
44
|
+
"lucide-react": "^0.541.0",
|
|
45
|
+
"next": "15.5.0",
|
|
46
|
+
"next-themes": "^0.4.6",
|
|
47
|
+
"react": "19.1.0",
|
|
48
|
+
"react-day-picker": "^9.9.0",
|
|
49
|
+
"react-dom": "19.1.0",
|
|
50
|
+
"react-hook-form": "^7.62.0",
|
|
51
|
+
"recharts": "2.15.4",
|
|
52
|
+
"sonner": "^2.0.7",
|
|
53
|
+
"tailwind-merge": "^3.3.1",
|
|
54
|
+
"vaul": "^1.1.2",
|
|
55
|
+
"zod": "^4.0.17"
|
|
56
|
+
},
|
|
57
|
+
"devDependencies": {
|
|
58
|
+
"@eslint/eslintrc": "^3",
|
|
59
|
+
"@tailwindcss/postcss": "^0.6.14",
|
|
60
|
+
"@tanstack/eslint-plugin-query": "^5.83.1",
|
|
61
|
+
"eslint": "^9",
|
|
62
|
+
"eslint-config-next": "15.5.0",
|
|
63
|
+
"eslint-config-prettier": "^10.1.8",
|
|
64
|
+
"eslint-plugin-react-hooks": "^5.2.0",
|
|
65
|
+
"husky": "^9.1.7",
|
|
66
|
+
"lint-staged": "^16.1.5",
|
|
67
|
+
"prettier": "^3.6.2",
|
|
68
|
+
"prettier-plugin-tailwindcss": "^0.6.14",
|
|
69
|
+
"tailwindcss": "^4",
|
|
70
|
+
"tw-animate-css": "^1.3.7"
|
|
71
|
+
}
|
|
72
|
+
}
|