create-nextjs-cms 0.5.20 → 0.5.23

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.
Files changed (139) hide show
  1. package/package.json +5 -5
  2. package/templates/default/_gitignore +1 -1
  3. package/templates/default/app/(auth)/auth/login/LoginPage.tsx +5 -5
  4. package/templates/default/app/api/video/route.ts +1 -1
  5. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/LICENSE +191 -0
  6. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/README.md +118 -0
  7. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/install/build.js +38 -0
  8. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/install/check.js +14 -0
  9. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/lib/channel.js +177 -0
  10. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/lib/colour.js +195 -0
  11. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/lib/composite.js +212 -0
  12. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/lib/constructor.js +499 -0
  13. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/lib/index.d.ts +1971 -0
  14. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/lib/index.js +16 -0
  15. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/lib/input.js +809 -0
  16. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/lib/is.js +143 -0
  17. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/lib/libvips.js +207 -0
  18. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/lib/operation.js +1016 -0
  19. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/lib/output.js +1666 -0
  20. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/lib/resize.js +595 -0
  21. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/lib/sharp.js +121 -0
  22. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/lib/utility.js +291 -0
  23. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/package.json +202 -0
  24. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/src/binding.gyp +298 -0
  25. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/src/common.cc +1130 -0
  26. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/src/common.h +402 -0
  27. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/src/metadata.cc +346 -0
  28. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/src/metadata.h +90 -0
  29. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/src/operations.cc +499 -0
  30. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/src/operations.h +137 -0
  31. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/src/pipeline.cc +1814 -0
  32. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/src/pipeline.h +408 -0
  33. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/src/sharp.cc +43 -0
  34. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/src/stats.cc +186 -0
  35. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/src/stats.h +62 -0
  36. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/src/utilities.cc +288 -0
  37. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/src/utilities.h +22 -0
  38. package/templates/default/apps/cms/node_modules/sharp/LICENSE +191 -0
  39. package/templates/default/apps/cms/node_modules/sharp/README.md +118 -0
  40. package/templates/default/apps/cms/node_modules/sharp/install/check.js +41 -0
  41. package/templates/default/apps/cms/node_modules/sharp/lib/channel.js +174 -0
  42. package/templates/default/apps/cms/node_modules/sharp/lib/colour.js +180 -0
  43. package/templates/default/apps/cms/node_modules/sharp/lib/composite.js +210 -0
  44. package/templates/default/apps/cms/node_modules/sharp/lib/constructor.js +452 -0
  45. package/templates/default/apps/cms/node_modules/sharp/lib/index.d.ts +1754 -0
  46. package/templates/default/apps/cms/node_modules/sharp/lib/index.js +16 -0
  47. package/templates/default/apps/cms/node_modules/sharp/lib/input.js +658 -0
  48. package/templates/default/apps/cms/node_modules/sharp/lib/is.js +169 -0
  49. package/templates/default/apps/cms/node_modules/sharp/lib/libvips.js +203 -0
  50. package/templates/default/apps/cms/node_modules/sharp/lib/operation.js +958 -0
  51. package/templates/default/apps/cms/node_modules/sharp/lib/output.js +1587 -0
  52. package/templates/default/apps/cms/node_modules/sharp/lib/resize.js +587 -0
  53. package/templates/default/apps/cms/node_modules/sharp/lib/sharp.js +114 -0
  54. package/templates/default/apps/cms/node_modules/sharp/lib/utility.js +296 -0
  55. package/templates/default/apps/cms/node_modules/sharp/package.json +222 -0
  56. package/templates/default/apps/cms/node_modules/sharp/src/binding.gyp +280 -0
  57. package/templates/default/apps/cms/node_modules/sharp/src/common.cc +1091 -0
  58. package/templates/default/apps/cms/node_modules/sharp/src/common.h +393 -0
  59. package/templates/default/apps/cms/node_modules/sharp/src/metadata.cc +320 -0
  60. package/templates/default/apps/cms/node_modules/sharp/src/metadata.h +85 -0
  61. package/templates/default/apps/cms/node_modules/sharp/src/operations.cc +475 -0
  62. package/templates/default/apps/cms/node_modules/sharp/src/operations.h +125 -0
  63. package/templates/default/apps/cms/node_modules/sharp/src/pipeline.cc +1758 -0
  64. package/templates/default/apps/cms/node_modules/sharp/src/pipeline.h +393 -0
  65. package/templates/default/apps/cms/node_modules/sharp/src/sharp.cc +40 -0
  66. package/templates/default/apps/cms/node_modules/sharp/src/stats.cc +183 -0
  67. package/templates/default/apps/cms/node_modules/sharp/src/stats.h +59 -0
  68. package/templates/default/apps/cms/node_modules/sharp/src/utilities.cc +269 -0
  69. package/templates/default/apps/cms/node_modules/sharp/src/utilities.h +19 -0
  70. package/templates/default/components/AdminCard.tsx +1 -1
  71. package/templates/default/components/AdminsPage.tsx +1 -1
  72. package/templates/default/components/AdvancedSettingsPage.tsx +1 -1
  73. package/templates/default/components/AnalyticsPage.tsx +1 -1
  74. package/templates/default/components/BrowsePage.tsx +2 -2
  75. package/templates/default/components/CategorizedSectionPage.tsx +3 -3
  76. package/templates/default/components/CategoryDeleteConfirmPage.tsx +4 -4
  77. package/templates/default/components/CategorySectionSelectInput.tsx +1 -1
  78. package/templates/default/components/ContainerBox.tsx +1 -1
  79. package/templates/default/components/DashboardPage.tsx +1 -1
  80. package/templates/default/components/EmailCard.tsx +1 -1
  81. package/templates/default/components/EmailPasswordForm.tsx +2 -2
  82. package/templates/default/components/EmailQuotaForm.tsx +1 -1
  83. package/templates/default/components/EmailsPage.tsx +1 -1
  84. package/templates/default/components/GalleryPhoto.tsx +1 -1
  85. package/templates/default/components/ItemEditPage.tsx +2 -2
  86. package/templates/default/components/Layout.tsx +1 -1
  87. package/templates/default/components/LogPage.tsx +1 -1
  88. package/templates/default/components/Navbar.tsx +2 -2
  89. package/templates/default/components/NavbarAlt.tsx +6 -6
  90. package/templates/default/components/NewAdminForm.tsx +2 -2
  91. package/templates/default/components/NewEmailForm.tsx +3 -3
  92. package/templates/default/components/NewPage.tsx +2 -2
  93. package/templates/default/components/NewVariantComponent.tsx +1 -1
  94. package/templates/default/components/SectionItemCard.tsx +1 -1
  95. package/templates/default/components/SectionItemStatusBadge.tsx +1 -1
  96. package/templates/default/components/SectionPage.tsx +2 -2
  97. package/templates/default/components/SelectBox.tsx +2 -2
  98. package/templates/default/components/SettingsPage.tsx +1 -1
  99. package/templates/default/components/Sidebar.tsx +3 -3
  100. package/templates/default/components/VariantEditPage.tsx +2 -2
  101. package/templates/default/components/form/Form.tsx +1 -1
  102. package/templates/default/components/form/FormInputElement.tsx +1 -1
  103. package/templates/default/components/form/helpers/{_section-hot-reload.ts → _section-hot-reload.js} +1 -1
  104. package/templates/default/components/form/helpers/util.ts +1 -1
  105. package/templates/default/components/form/inputs/ColorFormInput.tsx +1 -1
  106. package/templates/default/components/form/inputs/DateFormInput.tsx +1 -1
  107. package/templates/default/components/form/inputs/DocumentFormInput.tsx +3 -3
  108. package/templates/default/components/form/inputs/NumberFormInput.tsx +1 -1
  109. package/templates/default/components/form/inputs/PasswordFormInput.tsx +1 -1
  110. package/templates/default/components/form/inputs/PhotoFormInput.tsx +4 -4
  111. package/templates/default/components/form/inputs/SelectFormInput.tsx +1 -1
  112. package/templates/default/components/form/inputs/TagsFormInput.tsx +1 -1
  113. package/templates/default/components/form/inputs/TextFormInput.tsx +1 -1
  114. package/templates/default/components/form/inputs/TextareaFormInput.tsx +1 -1
  115. package/templates/default/components/form/inputs/VideoFormInput.tsx +3 -3
  116. package/templates/default/components/ui/badge.tsx +6 -6
  117. package/templates/default/components/ui/button.tsx +5 -5
  118. package/templates/default/components/ui/card.tsx +1 -1
  119. package/templates/default/components/ui/checkbox.tsx +1 -1
  120. package/templates/default/components/ui/dropdown-menu.tsx +6 -6
  121. package/templates/default/components/ui/input.tsx +1 -1
  122. package/templates/default/components/ui/popover.tsx +1 -1
  123. package/templates/default/components/ui/scroll-area.tsx +2 -2
  124. package/templates/default/components/ui/select.tsx +4 -4
  125. package/templates/default/components/ui/sheet.tsx +1 -1
  126. package/templates/default/components/ui/switch.tsx +1 -1
  127. package/templates/default/components/ui/table.tsx +3 -3
  128. package/templates/default/components/ui/tabs.tsx +2 -2
  129. package/templates/default/components/ui/toast.tsx +4 -4
  130. package/templates/default/eslint.config.mjs +38 -0
  131. package/templates/default/lz.config.ts +25 -17
  132. package/templates/default/next-env.d.ts +1 -1
  133. package/templates/default/package.json +24 -33
  134. package/templates/default/postcss.config.mjs +7 -0
  135. package/templates/default/{middleware.ts → proxy.ts} +2 -3
  136. package/templates/default/styles/globals.css +107 -4
  137. package/templates/default/tsconfig.json +45 -44
  138. package/templates/default/postcss.config.js +0 -6
  139. package/templates/default/tailwind.config.js +0 -95
@@ -14,7 +14,7 @@ const ToastViewport = React.forwardRef<
14
14
  <ToastPrimitives.Viewport
15
15
  ref={ref}
16
16
  className={cn(
17
- 'fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]',
17
+ 'fixed top-0 z-100 flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]',
18
18
  className,
19
19
  )}
20
20
  {...props}
@@ -23,7 +23,7 @@ const ToastViewport = React.forwardRef<
23
23
  ToastViewport.displayName = ToastPrimitives.Viewport.displayName
24
24
 
25
25
  const toastVariants = cva(
26
- 'group pointer-events-auto relative flex w-full items-center justify-between space-x-2 overflow-hidden rounded-md border p-4 pr-6 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full',
26
+ 'group pointer-events-auto relative flex w-full items-center justify-between space-x-2 overflow-hidden rounded-md border p-4 pr-6 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-(--radix-toast-swipe-end-x) data-[swipe=move]:translate-x-(--radix-toast-swipe-move-x) data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full sm:data-[state=open]:slide-in-from-bottom-full',
27
27
  {
28
28
  variants: {
29
29
  variant: {
@@ -54,7 +54,7 @@ const ToastAction = React.forwardRef<
54
54
  <ToastPrimitives.Action
55
55
  ref={ref}
56
56
  className={cn(
57
- 'inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium transition-colors hover:bg-secondary focus:outline-none focus:ring-1 focus:ring-ring disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive',
57
+ 'inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium transition-colors hover:bg-secondary focus:outline-hidden focus:ring-1 focus:ring-ring disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 hover:group-[.destructive]:border-destructive/30 hover:group-[.destructive]:bg-destructive hover:group-[.destructive]:text-destructive-foreground focus:group-[.destructive]:ring-destructive',
58
58
  className,
59
59
  )}
60
60
  {...props}
@@ -69,7 +69,7 @@ const ToastClose = React.forwardRef<
69
69
  <ToastPrimitives.Close
70
70
  ref={ref}
71
71
  className={cn(
72
- 'absolute right-1 top-1 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-1 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600',
72
+ 'absolute right-1 top-1 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-hidden focus:ring-1 group-hover:opacity-100 group-[.destructive]:text-red-300 hover:group-[.destructive]:text-red-50 focus:group-[.destructive]:ring-red-400 focus:group-[.destructive]:ring-offset-red-600',
73
73
  className,
74
74
  )}
75
75
  toast-close=''
@@ -0,0 +1,38 @@
1
+ import { defineConfig } from "eslint/config";
2
+ import next from "eslint-config-next";
3
+ import nextCoreWebVitals from "eslint-config-next/core-web-vitals";
4
+ import typescriptEslint from "@typescript-eslint/eslint-plugin";
5
+ import prettier from "eslint-plugin-prettier";
6
+ import drizzle from "eslint-plugin-drizzle";
7
+ import tsParser from "@typescript-eslint/parser";
8
+ import path from "node:path";
9
+ import { fileURLToPath } from "node:url";
10
+ import js from "@eslint/js";
11
+ import { FlatCompat } from "@eslint/eslintrc";
12
+
13
+ const __filename = fileURLToPath(import.meta.url);
14
+ const __dirname = path.dirname(__filename);
15
+ const compat = new FlatCompat({
16
+ baseDirectory: __dirname,
17
+ recommendedConfig: js.configs.recommended,
18
+ allConfig: js.configs.all
19
+ });
20
+
21
+ export default defineConfig([{
22
+ extends: [
23
+ ...nextCoreWebVitals,
24
+ ...compat.extends("prettier"),
25
+ ...next,
26
+ ...compat.extends("plugin:drizzle/recommended")
27
+ ],
28
+
29
+ plugins: {
30
+ "@typescript-eslint": typescriptEslint,
31
+ prettier,
32
+ drizzle,
33
+ },
34
+
35
+ languageOptions: {
36
+ parser: tsParser,
37
+ },
38
+ }]);
@@ -3,16 +3,26 @@ import process from 'process'
3
3
  import { resolve } from 'path'
4
4
 
5
5
  export const config: CMSConfig = {
6
- sectionsFolder: resolve(process.cwd(), 'sections'),
7
- siteName: 'NEXT CMS Admin',
8
- theme: 'dark',
9
- files: {
6
+ ui: {
7
+ title: 'NEXT CMS Admin',
8
+ defaultTheme: 'dark',
9
+ logo: '/logo.svg',
10
+ },
11
+ debug: true,
12
+ sections: {
13
+ path: resolve(process.cwd(), 'sections'),
14
+ strict: false,
15
+ category: {
16
+ allowRecursiveDelete: true,
17
+ },
18
+ },
19
+ media: {
10
20
  upload: {
11
- keepFileExtension: true,
12
- uploadPath:
21
+ path:
13
22
  process.env.NODE_ENV === 'development'
14
23
  ? 'D:/Work/WebstormProjects/turbo-expo-next/apps/web/public/content/'
15
24
  : '/home2/syriasell/public_html/assets/content',
25
+ preserveExtension: true,
16
26
  },
17
27
  images: {
18
28
  thumbnail: {
@@ -24,17 +34,15 @@ export const config: CMSConfig = {
24
34
  watermark: false,
25
35
  },
26
36
  },
27
- sections: {
28
- category: {
29
- allowRecursiveDelete: true,
30
- },
31
- },
32
- db: {
33
- schemaNamingConvention: {
34
- tableCaseStyle: 'pascalCase',
35
- columnCaseStyle: 'camelCase',
37
+ schemaGeneration: {
38
+ drizzle: {
39
+ enabled: true,
40
+ outDir: './dynamic-schemas',
41
+ fileName: 'schema.ts',
42
+ naming: {
43
+ tables: 'pascalCase',
44
+ columns: 'camelCase',
45
+ },
36
46
  },
37
47
  },
38
- debug: true,
39
- strict: false,
40
48
  }
@@ -1,6 +1,6 @@
1
1
  /// <reference types="next" />
2
2
  /// <reference types="next/image-types/global" />
3
- /// <reference path="./.next/types/routes.d.ts" />
3
+ import "./.next/dev/types/routes.d.ts";
4
4
 
5
5
  // NOTE: This file should not be edited
6
6
  // see https://nextjs.org/docs/app/api-reference/config/typescript for more information.
@@ -3,10 +3,10 @@
3
3
  "version": "0.0.1",
4
4
  "private": true,
5
5
  "scripts": {
6
- "dev": "next dev --turbopack",
6
+ "dev": "next dev --webpack",
7
7
  "build": "next build",
8
8
  "start": "next start",
9
- "lint": "next lint",
9
+ "lint": "eslint .",
10
10
  "typecheck": "tsc --noEmit",
11
11
  "postinstall": "node ./postinstall.js",
12
12
  "db:gen": "drizzle-kit generate",
@@ -28,7 +28,7 @@
28
28
  "@hookform/resolvers": "^5.2.2",
29
29
  "@material-tailwind/react": "^2.1.10",
30
30
  "@mui/material": "^6.4.3",
31
- "@next/env": "^15.1.6",
31
+ "@next/env": "^16.0.10",
32
32
  "@radix-ui/react-accordion": "^1.2.3",
33
33
  "@radix-ui/react-aspect-ratio": "^1.1.2",
34
34
  "@radix-ui/react-checkbox": "^1.1.4",
@@ -44,6 +44,7 @@
44
44
  "@radix-ui/react-tabs": "^1.1.3",
45
45
  "@radix-ui/react-toast": "^1.2.6",
46
46
  "@radix-ui/react-tooltip": "^1.1.8",
47
+ "@tailwindcss/postcss": "^4.1.18",
47
48
  "@tanstack/react-query": "^5.66.0",
48
49
  "@tanstack/react-query-devtools": "^5.66.0",
49
50
  "@tinymce/tinymce-react": "^5.1.1",
@@ -56,17 +57,13 @@
56
57
  "@vis.gl/react-google-maps": "^0.5.0",
57
58
  "app-root-path": "^3.1.0",
58
59
  "axios": "^1.8.4",
59
- "bcrypt": "^6.0.0",
60
60
  "chalk": "^5.4.1",
61
61
  "chart.js": "^4.4.7",
62
62
  "class-variance-authority": "^0.7.1",
63
63
  "classnames": "^2.5.1",
64
64
  "clsx": "^2.1.1",
65
- "commander": "^13.1.0",
66
- "cosmiconfig": "^9.0.0",
67
65
  "date-fns": "^4.1.0",
68
66
  "dayjs": "^1.11.13",
69
- "deepmerge": "^4.3.1",
70
67
  "dotenv": "^16.4.7",
71
68
  "drizzle-orm": "^0.44.6",
72
69
  "drizzle-zod": "^0.7.0",
@@ -80,54 +77,48 @@
80
77
  "lucide-react": "^0.475.0",
81
78
  "mysql2": "^3.12.0",
82
79
  "nanoid": "^5.1.2",
83
- "next": "^15.5.5",
80
+ "next": "^16.0.10",
84
81
  "next-themes": "^0.4.4",
85
- "nextjs-cms": "0.5.20",
82
+ "nextjs-cms": "0.5.23",
86
83
  "plaiceholder": "^3.0.0",
87
- "prettier-plugin-tailwindcss": "^0.6.11",
84
+ "postcss": "^8.5.6",
85
+ "prettier-plugin-tailwindcss": "^0.7.2",
88
86
  "qrcode": "^1.5.4",
89
- "react": "19.0.0",
87
+ "react": "19.2.3",
90
88
  "react-day-picker": "^8.10.1",
91
- "react-dom": "19.0.0",
89
+ "react-dom": "19.2.3",
92
90
  "react-dropzone": "^14.3.5",
93
91
  "react-hook-form": "^7.66.1",
94
92
  "read-chunk": "^5.0.0",
95
93
  "recharts": "^2.15.1",
96
94
  "remove": "^0.1.5",
97
- "require-main-filename": "^2.0.0",
98
95
  "server-only": "^0.0.1",
99
- "sharp": "^0.33.5",
96
+ "sharp": "^0.34.5",
100
97
  "superjson": "^2.2.2",
101
- "tailwind-merge": "^3.0.1",
98
+ "tailwind-merge": "^3.4.0",
99
+ "tailwindcss": "4.1.18",
102
100
  "tailwindcss-animate": "^1.0.7",
103
- "through2": "^4.0.2",
104
101
  "tinymce": "^7.6.1",
105
- "tsx": "^4.20.6",
102
+ "tsx": "^4.21.0",
106
103
  "zod": "4.1.12"
107
104
  },
108
105
  "devDependencies": {
109
- "@types/bcrypt": "^6.0.0",
110
106
  "@types/express-session": "^1.18.1",
111
107
  "@types/jsonwebtoken": "^9.0.9",
112
108
  "@types/lodash-es": "^4.17.12",
113
109
  "@types/node": "22.13.8",
114
- "@types/react": "19.0.10",
115
- "@types/react-dom": "19.0.4",
116
- "@types/through2": "^2.0.41",
117
- "autoprefixer": "^10.4.20",
118
- "cross-env": "^7.0.3",
110
+ "@types/react": "19.2.7",
111
+ "@types/react-dom": "19.2.3",
112
+ "autoprefixer": "^10.4.23",
119
113
  "drizzle-kit": "^0.31.5",
120
- "eslint": "^9.20.0",
121
- "eslint-config-next": "^15.3.0",
122
- "eslint-config-prettier": "^10.0.1",
123
- "eslint-plugin-prettier": "^5.2.3",
124
- "hanji": "^0.0.5",
125
- "nextjs-cms-kit": "0.5.20",
126
- "postcss": "^8.5.1",
114
+ "esbuild": "^0.27.1",
115
+ "eslint": "^9.39.2",
116
+ "eslint-config-next": "^16.0.10",
117
+ "eslint-config-prettier": "^10.1.8",
118
+ "eslint-plugin-prettier": "^5.5.4",
119
+ "nextjs-cms-kit": "0.5.23",
127
120
  "prettier": "3.5.0",
128
- "tailwindcss": "^3.4.16",
129
121
  "ts-node": "^10.9.2",
130
- "tsup": "^8.3.6",
131
- "typescript": "^5.7.3"
122
+ "typescript": "^5.9.3"
132
123
  }
133
124
  }
@@ -0,0 +1,7 @@
1
+ const config = {
2
+ plugins: {
3
+ "@tailwindcss/postcss": {},
4
+ },
5
+ };
6
+
7
+ export default config;
@@ -1,7 +1,7 @@
1
1
  import { NextRequest } from 'next/server'
2
2
  import { validateCSRFToken } from 'nextjs-cms/auth/actions'
3
3
 
4
- export async function middleware(request: NextRequest) {
4
+ export async function proxy(request: NextRequest) {
5
5
  /**
6
6
  * If the request is a POST request, we will check if the request body is empty.
7
7
  */
@@ -19,7 +19,6 @@ export async function middleware(request: NextRequest) {
19
19
  }
20
20
 
21
21
  export const config = {
22
- runtime: 'nodejs', // Specify the runtime environment as Node.js
23
22
  matcher: [
24
23
  /*
25
24
  * Match all request paths except for the ones starting with:
@@ -29,5 +28,5 @@ export const config = {
29
28
  * - favicon.ico (favicon file)
30
29
  */
31
30
  '/((?!_next/static|_next/image|favicon.ico).*)',
32
- ],
31
+ ]
33
32
  }
@@ -1,7 +1,110 @@
1
- @tailwind base;
2
- @tailwind components;
3
- @tailwind utilities;
4
-
1
+ @import 'tailwindcss';
2
+
3
+ @plugin 'tailwindcss-animate';
4
+
5
+ @custom-variant dark (&:is(.dark *));
6
+
7
+ @utility container {
8
+ margin-inline: auto;
9
+ padding-inline: 2rem;
10
+ @media (width >= --theme(--breakpoint-sm-sidebar)) {
11
+ max-width: none;
12
+ }
13
+ @media (width >= 1400px) {
14
+ max-width: 1400px;
15
+ }
16
+ }
17
+
18
+ @theme {
19
+ --breakpoint-sm-sidebar: 768px;
20
+ --breakpoint-md-sidebar: 1024px;
21
+ --breakpoint-lg-sidebar: 1280px;
22
+ --breakpoint-xl-sidebar: 1536px;
23
+ --breakpoint-2xl-sidebar: 1920px;
24
+
25
+ --font-sans:
26
+ var(--font-sans), ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji',
27
+ 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
28
+
29
+ --color-border: hsl(var(--border));
30
+ --color-input: hsl(var(--input));
31
+ --color-ring: hsl(var(--ring));
32
+ --color-background: hsl(var(--background));
33
+ --color-foreground: hsl(var(--foreground));
34
+
35
+ --color-primary: hsl(var(--primary));
36
+ --color-primary-foreground: hsl(var(--primary-foreground));
37
+
38
+ --color-secondary: hsl(var(--secondary));
39
+ --color-secondary-foreground: hsl(var(--secondary-foreground));
40
+
41
+ --color-success: hsl(var(--success));
42
+ --color-success-foreground: hsl(var(--success-foreground));
43
+
44
+ --color-warning: hsl(var(--warning));
45
+ --color-warning-foreground: hsl(var(--warning-foreground));
46
+
47
+ --color-destructive: hsl(var(--destructive));
48
+ --color-destructive-foreground: hsl(var(--destructive-foreground));
49
+
50
+ --color-muted: hsl(var(--muted));
51
+ --color-muted-foreground: hsl(var(--muted-foreground));
52
+
53
+ --color-accent: hsl(var(--accent));
54
+ --color-accent-foreground: hsl(var(--accent-foreground));
55
+
56
+ --color-popover: hsl(var(--popover));
57
+ --color-popover-foreground: hsl(var(--popover-foreground));
58
+
59
+ --color-card: hsl(var(--card));
60
+ --color-card-foreground: hsl(var(--card-foreground));
61
+
62
+ --color-disabled: hsl(var(--disabled));
63
+ --color-disabled-foreground: hsl(var(--disabled-foreground));
64
+
65
+ --radius-lg: var(--radius);
66
+ --radius-md: calc(var(--radius) - 2px);
67
+ --radius-sm: calc(var(--radius) - 4px);
68
+
69
+ --animate-accordion-down: accordion-down 0.2s ease-out;
70
+ --animate-accordion-up: accordion-up 0.2s ease-out;
71
+
72
+ @keyframes accordion-down {
73
+ from {
74
+ height: 0;
75
+ }
76
+ to {
77
+ height: var(--radix-accordion-content-height);
78
+ }
79
+ }
80
+ @keyframes accordion-up {
81
+ from {
82
+ height: var(--radix-accordion-content-height);
83
+ }
84
+ to {
85
+ height: 0;
86
+ }
87
+ }
88
+ }
89
+
90
+ /*
91
+ The default border color has changed to `currentcolor` in Tailwind CSS v4,
92
+ so we've added these compatibility styles to make sure everything still
93
+ looks the same as it did with Tailwind CSS v3.
94
+
95
+ If we ever want to remove these styles, we need to add an explicit border
96
+ color utility to any element that depends on these defaults.
97
+ */
98
+ @layer base {
99
+ *,
100
+ ::after,
101
+ ::before,
102
+ ::backdrop,
103
+ ::file-selector-button {
104
+ border-color: var(--color-gray-200, currentcolor);
105
+ }
106
+ }
107
+
5
108
  @layer base {
6
109
  :root {
7
110
  --background: 0 0% 100%;
@@ -1,44 +1,45 @@
1
- {
2
- "compilerOptions": {
3
- "target": "ES2020",
4
- "lib": [
5
- "dom",
6
- "dom.iterable",
7
- "esnext"
8
- ],
9
- "allowJs": true,
10
- "skipLibCheck": true,
11
- "strict": true,
12
- "strictNullChecks": true,
13
- "noEmit": true,
14
- "esModuleInterop": true,
15
- "forceConsistentCasingInFileNames": true,
16
- "module": "esnext",
17
- "moduleResolution": "bundler",
18
- "resolveJsonModule": true,
19
- "isolatedModules": true,
20
- "noImplicitOverride": true,
21
- "noUncheckedIndexedAccess": true,
22
- "jsx": "preserve",
23
- "plugins": [
24
- {
25
- "name": "next"
26
- }
27
- ],
28
- "paths": {
29
- "@/*": [
30
- "./*"
31
- ]
32
- },
33
- "incremental": true
34
- },
35
- "include": [
36
- "next-env.d.ts",
37
- "**/*.ts",
38
- "**/*.tsx",
39
- ".next/types/**/*.ts"
40
- ],
41
- "exclude": [
42
- "node_modules"
43
- ]
44
- }
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2020",
4
+ "lib": [
5
+ "dom",
6
+ "dom.iterable",
7
+ "esnext"
8
+ ],
9
+ "allowJs": true,
10
+ "skipLibCheck": true,
11
+ "strict": true,
12
+ "strictNullChecks": true,
13
+ "noEmit": true,
14
+ "esModuleInterop": true,
15
+ "forceConsistentCasingInFileNames": true,
16
+ "module": "esnext",
17
+ "moduleResolution": "bundler",
18
+ "resolveJsonModule": true,
19
+ "isolatedModules": true,
20
+ "noImplicitOverride": true,
21
+ "noUncheckedIndexedAccess": true,
22
+ "jsx": "react-jsx",
23
+ "plugins": [
24
+ {
25
+ "name": "next"
26
+ }
27
+ ],
28
+ "paths": {
29
+ "@/*": [
30
+ "./*"
31
+ ]
32
+ },
33
+ "incremental": true
34
+ },
35
+ "include": [
36
+ "next-env.d.ts",
37
+ "**/*.ts",
38
+ "**/*.tsx",
39
+ ".next/types/**/*.ts",
40
+ ".next/dev/types/**/*.ts"
41
+ , "components/form/helpers/_section-hot-reload.js" ],
42
+ "exclude": [
43
+ "node_modules"
44
+ ]
45
+ }
@@ -1,6 +0,0 @@
1
- module.exports = {
2
- plugins: {
3
- tailwindcss: {},
4
- autoprefixer: {},
5
- },
6
- };
@@ -1,95 +0,0 @@
1
- const { fontFamily } = require('tailwindcss/defaultTheme')
2
-
3
- /** @type {import('tailwindcss').Config} */
4
- module.exports = {
5
- darkMode: ['class'],
6
- content: ['./pages/**/*.{ts,tsx}', './components/**/*.{ts,tsx}', './app/**/*.{ts,tsx}', './src/**/*.{ts,tsx}'],
7
- theme: {
8
- container: {
9
- center: true,
10
- padding: '2rem',
11
- screens: {
12
- '2xl': '1400px',
13
- },
14
- },
15
- extend: {
16
- screens: {
17
- 'sm-sidebar': '768px',
18
- 'md-sidebar': '1024px',
19
- 'lg-sidebar': '1280px',
20
- 'xl-sidebar': '1536px',
21
- '2xl-sidebar': '1920px',
22
- },
23
- fontFamily: {
24
- sans: ['var(--font-sans)', ...fontFamily.sans],
25
- },
26
- colors: {
27
- border: 'hsl(var(--border))',
28
- input: 'hsl(var(--input))',
29
- ring: 'hsl(var(--ring))',
30
- background: 'hsl(var(--background))',
31
- foreground: 'hsl(var(--foreground))',
32
- primary: {
33
- DEFAULT: 'hsl(var(--primary))',
34
- foreground: 'hsl(var(--primary-foreground))',
35
- },
36
- secondary: {
37
- DEFAULT: 'hsl(var(--secondary))',
38
- foreground: 'hsl(var(--secondary-foreground))',
39
- },
40
- success: {
41
- DEFAULT: 'hsl(var(--success))',
42
- foreground: 'hsl(var(--success-foreground))',
43
- },
44
- warning: {
45
- DEFAULT: 'hsl(var(--warning))',
46
- foreground: 'hsl(var(--warning-foreground))',
47
- },
48
- destructive: {
49
- DEFAULT: 'hsl(var(--destructive))',
50
- foreground: 'hsl(var(--destructive-foreground))',
51
- },
52
- muted: {
53
- DEFAULT: 'hsl(var(--muted))',
54
- foreground: 'hsl(var(--muted-foreground))',
55
- },
56
- accent: {
57
- DEFAULT: 'hsl(var(--accent))',
58
- foreground: 'hsl(var(--accent-foreground))',
59
- },
60
- popover: {
61
- DEFAULT: 'hsl(var(--popover))',
62
- foreground: 'hsl(var(--popover-foreground))',
63
- },
64
- card: {
65
- DEFAULT: 'hsl(var(--card))',
66
- foreground: 'hsl(var(--card-foreground))',
67
- },
68
- disabled: {
69
- DEFAULT: 'hsl(var(--disabled))',
70
- foreground: 'hsl(var(--disabled-foreground))',
71
- },
72
- },
73
- borderRadius: {
74
- lg: 'var(--radius)',
75
- md: 'calc(var(--radius) - 2px)',
76
- sm: 'calc(var(--radius) - 4px)',
77
- },
78
- keyframes: {
79
- 'accordion-down': {
80
- from: { height: 0 },
81
- to: { height: 'var(--radix-accordion-content-height)' },
82
- },
83
- 'accordion-up': {
84
- from: { height: 'var(--radix-accordion-content-height)' },
85
- to: { height: 0 },
86
- },
87
- },
88
- animation: {
89
- 'accordion-down': 'accordion-down 0.2s ease-out',
90
- 'accordion-up': 'accordion-up 0.2s ease-out',
91
- },
92
- },
93
- },
94
- plugins: [require('tailwindcss-animate')],
95
- }