feat: initial commit - Band Management application

This commit is contained in:
2026-01-06 03:11:46 +01:00
commit 34e12e00b3
24543 changed files with 3991790 additions and 0 deletions

View File

@@ -0,0 +1,45 @@
/*
* If you change the following items in the config object, you will not see any effect in the local development server
* as these are stored in the cookie (cookie has the highest priority over the themeConfig):
* 1. mode
* 2. skin
* 3. semiDark
* 4. layout
* 5. navbar.contentWidth
* 6. contentWidth
* 7. footer.contentWidth
*
* To see the effect of the above items, you can click on the reset button from the Customizer
* which is on the top-right corner of the customizer besides the close button.
* This will reset the cookie to the values provided in the config object below.
*
* Another way is to clear the cookie from the browser's Application/Storage tab and then reload the page.
*/
const themeConfig = {
templateName: 'Vuexy',
homePageUrl: '/dashboards/crm',
settingsCookieName: 'vuexy-mui-next-demo-1',
mode: 'light', // 'system', 'light', 'dark'
skin: 'default', // 'default', 'bordered'
semiDark: false, // true, false
layout: 'vertical', // 'vertical', 'collapsed', 'horizontal'
layoutPadding: 24, // Common padding for header, content, footer layout components (in px)
compactContentWidth: 1440, // in px
navbar: {
type: 'fixed', // 'fixed', 'static'
contentWidth: 'compact', // 'compact', 'wide'
floating: true, //! true, false (This will not work in the Horizontal Layout)
detached: true, //! true, false (This will not work in the Horizontal Layout or floating navbar is enabled)
blur: true // true, false
},
contentWidth: 'compact', // 'compact', 'wide'
footer: {
type: 'static', // 'fixed', 'static'
contentWidth: 'compact', // 'compact', 'wide'
detached: true //! true, false (This will not work in the Horizontal Layout)
},
disableRipple: false, // true, false
toastPosition: 'top-right' // 'top-right', 'top-center', 'top-left', 'bottom-right', 'bottom-center', 'bottom-left'
}
export default themeConfig

View File

@@ -0,0 +1,45 @@
/*
* If you change the following items in the config object, you will not see any effect in the local development server
* as these are stored in the cookie (cookie has the highest priority over the themeConfig):
* 1. mode
* 2. skin
* 3. semiDark
* 4. layout
* 5. navbar.contentWidth
* 6. contentWidth
* 7. footer.contentWidth
*
* To see the effect of the above items, you can click on the reset button from the Customizer
* which is on the top-right corner of the customizer besides the close button.
* This will reset the cookie to the values provided in the config object below.
*
* Another way is to clear the cookie from the browser's Application/Storage tab and then reload the page.
*/
const themeConfig = {
templateName: 'Vuexy',
homePageUrl: '/dashboards/crm',
settingsCookieName: 'vuexy-mui-next-demo-2',
mode: 'light', // 'system', 'light', 'dark'
skin: 'bordered', // 'default', 'bordered'
semiDark: false, // true, false
layout: 'vertical', // 'vertical', 'collapsed', 'horizontal'
layoutPadding: 24, // Common padding for header, content, footer layout components (in px)
compactContentWidth: 1440, // in px
navbar: {
type: 'fixed', // 'fixed', 'static'
contentWidth: 'compact', // 'compact', 'wide'
floating: true, //! true, false (This will not work in the Horizontal Layout)
detached: true, //! true, false (This will not work in the Horizontal Layout or floating navbar is enabled)
blur: true // true, false
},
contentWidth: 'compact', // 'compact', 'wide'
footer: {
type: 'static', // 'fixed', 'static'
contentWidth: 'compact', // 'compact', 'wide'
detached: true //! true, false (This will not work in the Horizontal Layout)
},
disableRipple: false, // true, false
toastPosition: 'top-right' // 'top-right', 'top-center', 'top-left', 'bottom-right', 'bottom-center', 'bottom-left'
}
export default themeConfig

View File

@@ -0,0 +1,45 @@
/*
* If you change the following items in the config object, you will not see any effect in the local development server
* as these are stored in the cookie (cookie has the highest priority over the themeConfig):
* 1. mode
* 2. skin
* 3. semiDark
* 4. layout
* 5. navbar.contentWidth
* 6. contentWidth
* 7. footer.contentWidth
*
* To see the effect of the above items, you can click on the reset button from the Customizer
* which is on the top-right corner of the customizer besides the close button.
* This will reset the cookie to the values provided in the config object below.
*
* Another way is to clear the cookie from the browser's Application/Storage tab and then reload the page.
*/
const themeConfig = {
templateName: 'Vuexy',
homePageUrl: '/dashboards/crm',
settingsCookieName: 'vuexy-mui-next-demo-3',
mode: 'light', // 'system', 'light', 'dark'
skin: 'default', // 'default', 'bordered'
semiDark: true, // true, false
layout: 'vertical', // 'vertical', 'collapsed', 'horizontal'
layoutPadding: 24, // Common padding for header, content, footer layout components (in px)
compactContentWidth: 1440, // in px
navbar: {
type: 'fixed', // 'fixed', 'static'
contentWidth: 'compact', // 'compact', 'wide'
floating: true, //! true, false (This will not work in the Horizontal Layout)
detached: true, //! true, false (This will not work in the Horizontal Layout or floating navbar is enabled)
blur: true // true, false
},
contentWidth: 'compact', // 'compact', 'wide'
footer: {
type: 'static', // 'fixed', 'static'
contentWidth: 'compact', // 'compact', 'wide'
detached: true //! true, false (This will not work in the Horizontal Layout)
},
disableRipple: false, // true, false
toastPosition: 'top-right' // 'top-right', 'top-center', 'top-left', 'bottom-right', 'bottom-center', 'bottom-left'
}
export default themeConfig

View File

@@ -0,0 +1,45 @@
/*
* If you change the following items in the config object, you will not see any effect in the local development server
* as these are stored in the cookie (cookie has the highest priority over the themeConfig):
* 1. mode
* 2. skin
* 3. semiDark
* 4. layout
* 5. navbar.contentWidth
* 6. contentWidth
* 7. footer.contentWidth
*
* To see the effect of the above items, you can click on the reset button from the Customizer
* which is on the top-right corner of the customizer besides the close button.
* This will reset the cookie to the values provided in the config object below.
*
* Another way is to clear the cookie from the browser's Application/Storage tab and then reload the page.
*/
const themeConfig = {
templateName: 'Vuexy',
homePageUrl: '/dashboards/crm',
settingsCookieName: 'vuexy-mui-next-demo-4',
mode: 'dark', // 'system', 'light', 'dark'
skin: 'default', // 'default', 'bordered'
semiDark: false, // true, false
layout: 'vertical', // 'vertical', 'collapsed', 'horizontal'
layoutPadding: 24, // Common padding for header, content, footer layout components (in px)
compactContentWidth: 1440, // in px
navbar: {
type: 'fixed', // 'fixed', 'static'
contentWidth: 'compact', // 'compact', 'wide'
floating: true, //! true, false (This will not work in the Horizontal Layout)
detached: true, //! true, false (This will not work in the Horizontal Layout or floating navbar is enabled)
blur: true // true, false
},
contentWidth: 'compact', // 'compact', 'wide'
footer: {
type: 'static', // 'fixed', 'static'
contentWidth: 'compact', // 'compact', 'wide'
detached: true //! true, false (This will not work in the Horizontal Layout)
},
disableRipple: false, // true, false
toastPosition: 'top-right' // 'top-right', 'top-center', 'top-left', 'bottom-right', 'bottom-center', 'bottom-left'
}
export default themeConfig

View File

@@ -0,0 +1,45 @@
/*
* If you change the following items in the config object, you will not see any effect in the local development server
* as these are stored in the cookie (cookie has the highest priority over the themeConfig):
* 1. mode
* 2. skin
* 3. semiDark
* 4. layout
* 5. navbar.contentWidth
* 6. contentWidth
* 7. footer.contentWidth
*
* To see the effect of the above items, you can click on the reset button from the Customizer
* which is on the top-right corner of the customizer besides the close button.
* This will reset the cookie to the values provided in the config object below.
*
* Another way is to clear the cookie from the browser's Application/Storage tab and then reload the page.
*/
const themeConfig = {
templateName: 'Vuexy',
homePageUrl: '/dashboards/crm',
settingsCookieName: 'vuexy-mui-next-demo-5',
mode: 'light', // 'system', 'light', 'dark'
skin: 'default', // 'default', 'bordered'
semiDark: false, // true, false
layout: 'horizontal', // 'vertical', 'collapsed', 'horizontal'
layoutPadding: 24, // Common padding for header, content, footer layout components (in px)
compactContentWidth: 1440, // in px
navbar: {
type: 'fixed', // 'fixed', 'static'
contentWidth: 'compact', // 'compact', 'wide'
floating: true, //! true, false (This will not work in the Horizontal Layout)
detached: true, //! true, false (This will not work in the Horizontal Layout or floating navbar is enabled)
blur: true // true, false
},
contentWidth: 'compact', // 'compact', 'wide'
footer: {
type: 'static', // 'fixed', 'static'
contentWidth: 'compact', // 'compact', 'wide'
detached: true //! true, false (This will not work in the Horizontal Layout)
},
disableRipple: false, // true, false
toastPosition: 'top-right' // 'top-right', 'top-center', 'top-left', 'bottom-right', 'bottom-center', 'bottom-left'
}
export default themeConfig

View File

@@ -0,0 +1,45 @@
/*
* If you change the following items in the config object, you will not see any effect in the local development server
* as these are stored in the cookie (cookie has the highest priority over the themeConfig):
* 1. mode
* 2. skin
* 3. semiDark
* 4. layout
* 5. navbar.contentWidth
* 6. contentWidth
* 7. footer.contentWidth
*
* To see the effect of the above items, you can click on the reset button from the Customizer
* which is on the top-right corner of the customizer besides the close button.
* This will reset the cookie to the values provided in the config object below.
*
* Another way is to clear the cookie from the browser's Application/Storage tab and then reload the page.
*/
const themeConfig = {
templateName: 'Vuexy',
homePageUrl: '/dashboards/crm',
settingsCookieName: 'vuexy-mui-next-demo-6',
mode: 'dark', // 'system', 'light', 'dark'
skin: 'bordered', // 'default', 'bordered'
semiDark: false, // true, false
layout: 'horizontal', // 'vertical', 'collapsed', 'horizontal'
layoutPadding: 24, // Common padding for header, content, footer layout components (in px)
compactContentWidth: 1440, // in px
navbar: {
type: 'fixed', // 'fixed', 'static'
contentWidth: 'compact', // 'compact', 'wide'
floating: true, //! true, false (This will not work in the Horizontal Layout)
detached: true, //! true, false (This will not work in the Horizontal Layout or floating navbar is enabled)
blur: true // true, false
},
contentWidth: 'compact', // 'compact', 'wide'
footer: {
type: 'static', // 'fixed', 'static'
contentWidth: 'compact', // 'compact', 'wide'
detached: true //! true, false (This will not work in the Horizontal Layout)
},
disableRipple: false, // true, false
toastPosition: 'top-right' // 'top-right', 'top-center', 'top-left', 'bottom-right', 'bottom-center', 'bottom-left'
}
export default themeConfig

View File

@@ -0,0 +1,15 @@
# Editor configuration, see http://editorconfig.org
root = true
[*]
charset = utf-8
end_of_line = lf
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true
[*.md]
max_line_length = off
trim_trailing_whitespace = false
[*.yml]
[*.{yml,yaml}]
indent_size = 2

View File

@@ -0,0 +1,33 @@
# -----------------------------------------------------------------------------
# App
# -----------------------------------------------------------------------------
BASEPATH=
NEXT_PUBLIC_APP_URL=http://localhost:3000${BASEPATH}
NEXT_PUBLIC_DOCS_URL=https://demos.pixinvent.com/vuexy-nextjs-admin-template/documentation
# -----------------------------------------------------------------------------
# Authentication (NextAuth.js)
# -----------------------------------------------------------------------------
NEXTAUTH_BASEPATH=${BASEPATH}/api/auth
NEXTAUTH_URL=http://localhost:3000${BASEPATH}/api/auth
NEXTAUTH_SECRET=
# Google OAuth 2.0 (https://console.cloud.google.com/apis/credentials)
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
# -----------------------------------------------------------------------------
# Database
# -----------------------------------------------------------------------------
DATABASE_URL=
# -----------------------------------------------------------------------------
# API
# -----------------------------------------------------------------------------
API_URL=http://localhost:3000${BASEPATH}/api
NEXT_PUBLIC_API_URL=${API_URL}
# -----------------------------------------------------------------------------
# Mapbox
# -----------------------------------------------------------------------------
MAPBOX_ACCESS_TOKEN=

View File

@@ -0,0 +1,143 @@
module.exports = {
"extends": [
"next/core-web-vitals",
"plugin:import/recommended",
"prettier"
],
"ignorePatterns": [
"next-env.d.ts",
".next/**",
"node_modules/**"
],
"rules": {
"jsx-a11y/alt-text": "off",
"react/display-name": "off",
"react/no-children-prop": "off",
"@next/next/no-img-element": "off",
"@next/next/no-page-custom-font": "off",
"import/no-named-as-default": "off",
"lines-around-comment": [
"error",
{
"beforeBlockComment": true,
"beforeLineComment": true,
"allowBlockStart": true,
"allowObjectStart": true,
"allowArrayStart": true
}
],
"padding-line-between-statements": [
"error",
{
"blankLine": "any",
"prev": "export",
"next": "export"
},
{
"blankLine": "always",
"prev": [
"const",
"let",
"var"
],
"next": "*"
},
{
"blankLine": "any",
"prev": [
"const",
"let",
"var"
],
"next": [
"const",
"let",
"var"
]
},
{
"blankLine": "always",
"prev": "*",
"next": [
"function",
"multiline-const",
"multiline-block-like"
]
},
{
"blankLine": "always",
"prev": [
"function",
"multiline-const",
"multiline-block-like"
],
"next": "*"
}
],
"newline-before-return": "error",
"import/newline-after-import": [
"error",
{
"count": 1
}
],
"import/order": [
"error",
{
"groups": [
"builtin",
"external",
[
"internal",
"parent",
"sibling",
"index"
],
[
"object",
"unknown"
]
],
"pathGroups": [
{
"pattern": "react",
"group": "external",
"position": "before"
},
{
"pattern": "next/**",
"group": "external",
"position": "before"
},
{
"pattern": "~/**",
"group": "external",
"position": "before"
},
{
"pattern": "@/**",
"group": "internal"
}
],
"pathGroupsExcludedImportTypes": [
"react",
"type"
],
"newlines-between": "always-and-inside-groups"
}
]
},
"settings": {
"react": {
"version": "detect"
},
"import/parsers": {},
"import/resolver": {
"node": {},
"typescript": {
"project": "./jsconfig.json"
}
}
},
"overrides": []
};

View File

@@ -0,0 +1,41 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
# dependencies
/node_modules
/.pnp
.pnp.js
# testing
/coverage
# next.js
/.next/
/out/
# production
/build
# misc
.DS_Store
*.pem
# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*
# local env files
.env*.local
.env
# vercel
.vercel
# typescript
*.tsbuildinfo
next-env.d.ts
# icon generated file
src/assets/iconify-icons/generated-icons.js
src/assets/iconify-icons/generated-icons.css

View File

@@ -0,0 +1,3 @@
auto-install-peers=true
shamefully-hoist=true
node-linker=hoisted

View File

@@ -0,0 +1,17 @@
{
"arrowParens": "avoid",
"bracketSpacing": true,
"htmlWhitespaceSensitivity": "css",
"insertPragma": false,
"bracketSameLine": false,
"jsxSingleQuote": true,
"printWidth": 120,
"proseWrap": "preserve",
"quoteProps": "as-needed",
"requirePragma": false,
"semi": false,
"singleQuote": true,
"tabWidth": 2,
"trailingComma": "none",
"useTabs": false
}

View File

@@ -0,0 +1,16 @@
{
"plugins": [
"stylelint-use-logical-spec"
],
"overrides": [
{
"customSyntax": "postcss-styled-syntax",
"files": [
"**/*.{js,ts,jsx,tsx}"
]
}
],
"rules": {
"liberty/use-logical-spec": "always"
}
}

View File

@@ -0,0 +1,109 @@
{
// JavaScript Snippets
"exportDefault": {
"prefix": "exp",
"body": [
"export default ${1:moduleName}",
""
]
},
"exportDestructing": {
"prefix": "exd",
"body": [
"export { ${2:destructuredModule} } from '${1:module}'",
""
]
},
"exportAs": {
"prefix": "exa",
"body": [
"export { ${2:originalName} as ${3:aliasName}} from '${1:module}'",
""
]
},
"exportDefaultFunction": {
"prefix": "edf",
"body": [
"export default (${1:params}) => {",
" $0",
"}",
""
]
},
"exportDefaultNamedFunction": {
"prefix": "ednf",
"body": [
"export default function ${1:functionName}(${2:params}) {",
" $0",
"}",
""
]
},
// React Snippets
"reactArrowFunctionExportComponent": {
"prefix": "rafce",
"body": [
"const ${1:ComponentName} = () => {",
" return (",
" $0",
" )",
"}",
"",
"export default ${1:ComponentName}",
""
]
},
"reactArrowFunctionComponent": {
"prefix": "rafc",
"body": [
"const ${1:ComponentName} = () => {",
" return (",
" $0",
" )",
"}",
""
]
},
"reactUseState": {
"prefix": "useState",
"body": [
"const [${1:state}, set${1/(.*)/${1:/capitalize}/}] = useState(${2:initialState})"
]
},
"reactUseEffect": {
"prefix": "useEffect",
"body": [
"useEffect(() => {",
" $0",
"}, [])"
]
},
// Type Snippets
"exportType": {
"prefix": "exptp",
"body": [
"export type ${1:Props} = {",
" ${2:name}: ${3:string}",
"}",
""
]
},
"type": {
"prefix": "tp",
"body": [
"type ${1:Props} = {",
" ${2:name}: ${3:string}",
"}",
""
]
},
// Next Snippets
"nextImport": {
"prefix": "impn",
"body": [
"// Next Import",
"import ${2:second} from '${1:first}'",
""
]
}
}

View File

@@ -0,0 +1,26 @@
{
"recommendations": [
"formulahendry.auto-close-tag",
"steoates.autoimport",
"mgmcdermott.vscode-language-babel",
"aaron-bond.better-comments",
"MohammadBaqer.better-folding",
"pustelto.bracketeer",
"streetsidesoftware.code-spell-checker",
"naumovs.color-highlight",
"mikestead.dotenv",
"EditorConfig.EditorConfig",
"usernamehw.errorlens",
"dbaeumer.vscode-eslint",
"eamodio.gitlens",
"antfu.iconify",
"xabikos.JavaScriptSnippets",
"christian-kohler.npm-intellisense",
"christian-kohler.path-intellisense",
"esbenp.prettier-vscode",
"yoavbls.pretty-ts-errors",
"jasonnutter.search-node-modules",
"stylelint.vscode-stylelint",
"styled-components.vscode-styled-components"
]
}

View File

@@ -0,0 +1,53 @@
{
// JS
"javascript.updateImportsOnFileMove.enabled": "always",
// JSON
"[json]": {
"editor.defaultFormatter": "vscode.json-language-features"
},
"[jsonc]": {
"editor.defaultFormatter": "vscode.json-language-features"
},
// VSCode Editor
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit",
"source.organizeImports": "never",
"source.fixAll.stylelint": "explicit"
},
// Extension: Git
"git.rebaseWhenSync": true,
"git.autofetch": true,
"git.enableSmartCommit": true,
// Extension: Prettier
"prettier.requireConfig": true,
// Extension: ESLint
"eslint.validate": [
"javascript",
"typescript",
"javascriptreact",
"typescriptreact"
],
"eslint.format.enable": true,
// Stylelint
"css.validate": false,
"less.validate": false,
"scss.validate": false,
"stylelint.enable": true,
"stylelint.validate": [
"css",
"scss",
"typescript",
"typescriptreact"
],
"markdown.extension.toc.updateOnSave": false,
"files.insertFinalNewline": true,
"editor.linkedEditing": true,
"typescript.tsdk": "node_modules/typescript/lib",
"cSpell.words": [
"customizer",
"iconify",
"tanstack"
]
}

View File

@@ -0,0 +1,34 @@
This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).
## Getting Started
First, run the development server:
```bash
npm run dev
# or
yarn dev
# or
pnpm dev
```
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font.
## Learn More
To learn more about Next.js, take a look at the following resources:
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!
## Deploy on Vercel
The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.

View File

@@ -0,0 +1,58 @@
{
"compilerOptions": {
"target": "ESNext",
"downlevelIteration": true,
"lib": [
"DOM",
"DOM.Iterable",
"ESNext"
],
"allowJs": true,
"skipLibCheck": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"noEmit": true,
"esModuleInterop": true,
"module": "ESNext",
"moduleResolution": "Bundler",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "react-jsx",
"paths": {
"@/*": [
"./src/*"
],
"@core/*": [
"./src/@core/*"
],
"@layouts/*": [
"./src/@layouts/*"
],
"@menu/*": [
"./src/@menu/*"
],
"@assets/*": [
"./src/assets/*"
],
"@components/*": [
"./src/components/*"
],
"@configs/*": [
"./src/configs/*"
],
"@views/*": [
"./src/views/*"
]
}
},
"include": [
"next.config.mjs",
"**/*.js",
"**/*.js",
".next/dev/types/**/*.js",
"**/*.jsx"
],
"exclude": [
"node_modules"
]
}

View File

@@ -0,0 +1,27 @@
/** @type {import('next').NextConfig} */
const nextConfig = {
basePath: process.env.BASEPATH,
redirects: async () => {
return [
{
source: '/',
destination: '/en/dashboards/crm',
permanent: true,
locale: false
},
{
source: '/:lang(en|fr|ar)',
destination: '/:lang/dashboards/crm',
permanent: true,
locale: false
},
{
source: '/:path((?!en|fr|ar|front-pages|images|api|favicon.ico).*)*',
destination: '/en/:path*',
permanent: true,
locale: false
}
];
}
};
export default nextConfig;

View File

@@ -0,0 +1,132 @@
{
"name": "vuexy-mui-nextjs-admin-template",
"version": "5.0.1",
"license": "Commercial",
"private": true,
"scripts": {
"dev": "next dev --turbopack",
"build": "next build",
"start": "next start",
"lint": "eslint . --ext .js,.jsx,.ts,.tsx",
"lint:fix": "eslint . --ext .js,.jsx,.ts,.tsx --fix",
"format": "prettier --write \"src/**/*.{js,jsx,ts,tsx}\"",
"build:icons": "tsx src/assets/iconify-icons/bundle-icons-css.mjs",
"migrate": "dotenv -e .env -- npx prisma migrate dev",
"postinstall": "prisma generate && npm run build:icons",
"removeI18n": "tsx src/remove-translation-scripts/index.js",
"clean": "rm -rf .next",
"clear": "rm -rf node_modules .next"
},
"dependencies": {
"@auth/prisma-adapter": "2.11.1",
"@emoji-mart/data": "1.2.1",
"@emoji-mart/react": "1.1.1",
"@emotion/cache": "11.14.0",
"@emotion/react": "11.14.0",
"@emotion/styled": "11.14.1",
"@floating-ui/dom": "1.7.4",
"@floating-ui/react": "0.27.16",
"@formatjs/intl-localematcher": "0.6.2",
"@formkit/drag-and-drop": "0.5.3",
"@fullcalendar/common": "5.11.5",
"@fullcalendar/core": "6.1.20",
"@fullcalendar/daygrid": "6.1.20",
"@fullcalendar/interaction": "6.1.20",
"@fullcalendar/list": "6.1.20",
"@fullcalendar/react": "6.1.20",
"@fullcalendar/timegrid": "6.1.20",
"@hookform/resolvers": "5.2.2",
"@mui/lab": "7.0.1-beta.19",
"@mui/material": "7.3.6",
"@mui/material-nextjs": "7.3.6",
"@prisma/client": "6.19.1",
"@reduxjs/toolkit": "2.11.2",
"@tanstack/match-sorter-utils": "8.19.4",
"@tanstack/react-table": "8.21.3",
"@tiptap/core": "3.14.0",
"@tiptap/extension-color": "3.14.0",
"@tiptap/extension-list": "3.14.0",
"@tiptap/extension-list-item": "3.14.0",
"@tiptap/extension-placeholder": "3.14.0",
"@tiptap/extension-text-align": "3.14.0",
"@tiptap/extension-text-style": "3.14.0",
"@tiptap/extension-underline": "3.14.0",
"@tiptap/pm": "3.14.0",
"@tiptap/react": "3.14.0",
"@tiptap/starter-kit": "3.14.0",
"apexcharts": "3.49.0",
"bootstrap-icons": "1.13.1",
"classnames": "2.5.1",
"cmdk": "1.1.1",
"date-fns": "4.1.0",
"emoji-mart": "5.6.0",
"fs-extra": "11.3.3",
"input-otp": "1.4.2",
"keen-slider": "6.8.6",
"mapbox-gl": "3.17.0",
"negotiator": "1.0.0",
"next": "16.1.1",
"next-auth": "4.24.13",
"react": "19.2.3",
"react-apexcharts": "1.4.1",
"react-colorful": "5.6.1",
"react-datepicker": "8.9.0",
"react-dom": "19.2.3",
"react-dropzone": "14.3.8",
"react-hook-form": "7.69.0",
"react-map-gl": "8.1.0",
"react-perfect-scrollbar": "1.5.8",
"react-player": "3.4.0",
"react-redux": "9.2.0",
"react-toastify": "11.0.5",
"react-use": "17.6.0",
"recharts": "3.6.0",
"server-only": "0.0.1",
"valibot": "1.2.0"
},
"devDependencies": {
"@iconify/json": "2.2.408",
"@iconify/tools": "4.1.4",
"@iconify/utils": "3.0.2",
"@tailwindcss/postcss": "4.1.17",
"autoprefixer": "10.4.22",
"consola": "3.4.2",
"dotenv-cli": "11.0.0",
"eslint": "8.57.1",
"eslint-config-next": "15.1.2",
"eslint-config-prettier": "9.1.0",
"eslint-plugin-import": "2.31.0",
"globby": "14.0.2",
"postcss": "8.5.6",
"postcss-styled-syntax": "0.7.1",
"prettier": "3.6.2",
"prisma": "6.19.0",
"stylelint": "16.25.0",
"stylelint-use-logical-spec": "5.0.1",
"stylis": "4.3.6",
"stylis-plugin-rtl": "2.1.1",
"tailwindcss": "4.1.17",
"tailwindcss-logical": "4.1.0",
"tsx": "4.20.6"
},
"resolutions": {
"rimraf": "5.0.7",
"unicorn-magic": "0.1.0",
"react": "19.2.3",
"react-dom": "19.2.3",
"eslint": "8.57.1",
"eslint-config-next": "15.1.2"
},
"overrides": {
"rimraf": "5.0.7",
"unicorn-magic": "0.1.0",
"react": "19.2.3",
"react-dom": "19.2.3",
"@emoji-mart/react": {
"react": "19.2.3"
}
},
"prisma": {
"schema": "./src/prisma/schema.prisma"
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,5 @@
const config = {
plugins: ['@tailwindcss/postcss']
}
export default config

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Some files were not shown because too many files have changed in this diff Show More