initial commit
15
.editorconfig
Normal 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
|
||||||
33
.env.example
Normal 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=
|
||||||
128
.eslintrc.js
Normal file
@ -0,0 +1,128 @@
|
|||||||
|
module.exports = {
|
||||||
|
extends: ['next/core-web-vitals', 'plugin:@typescript-eslint/recommended', 'plugin:import/recommended', 'prettier'],
|
||||||
|
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',
|
||||||
|
'@typescript-eslint/consistent-type-imports': 'error',
|
||||||
|
'@typescript-eslint/ban-ts-comment': 'off',
|
||||||
|
'@typescript-eslint/no-explicit-any': 'off',
|
||||||
|
'@typescript-eslint/no-unused-vars': 'error',
|
||||||
|
'@typescript-eslint/no-non-null-assertion': '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'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
'@typescript-eslint/ban-types': [
|
||||||
|
'error',
|
||||||
|
{
|
||||||
|
extendDefaults: true,
|
||||||
|
types: {
|
||||||
|
Function: 'Use a specific function type instead',
|
||||||
|
Object: 'Use object instead',
|
||||||
|
Boolean: 'Use boolean instead',
|
||||||
|
Number: 'Use number instead',
|
||||||
|
String: 'Use string instead',
|
||||||
|
Symbol: 'Use symbol instead',
|
||||||
|
any: false,
|
||||||
|
'{}': false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
settings: {
|
||||||
|
react: {
|
||||||
|
version: 'detect'
|
||||||
|
},
|
||||||
|
'import/parsers': {
|
||||||
|
'@typescript-eslint/parser': ['.ts', '.tsx']
|
||||||
|
},
|
||||||
|
'import/resolver': {
|
||||||
|
node: {},
|
||||||
|
typescript: {
|
||||||
|
project: './tsconfig.json'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
overrides: [
|
||||||
|
{
|
||||||
|
files: ['*.ts', '*.tsx', 'src/iconify-bundle/*'],
|
||||||
|
rules: {
|
||||||
|
'@typescript-eslint/explicit-module-boundary-types': 'off',
|
||||||
|
'@typescript-eslint/no-var-requires': 'off'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
41
.gitignore
vendored
Normal 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
|
||||||
3
.npmrc
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
auto-install-peers=true
|
||||||
|
shamefully-hoist=true
|
||||||
|
node-linker=hoisted
|
||||||
17
.prettierrc.json
Normal 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
|
||||||
|
}
|
||||||
16
.stylelintrc.json
Normal 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"
|
||||||
|
}
|
||||||
|
}
|
||||||
109
.vscode/custom.code-snippets
vendored
Normal 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}'",
|
||||||
|
""
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
26
.vscode/extensions.json
vendored
Normal 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"
|
||||||
|
]
|
||||||
|
}
|
||||||
53
.vscode/settings.json
vendored
Normal 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"
|
||||||
|
]
|
||||||
|
}
|
||||||
34
README.md
Normal 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.
|
||||||
1
declarations.d.ts
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
declare module 'tailwindcss-logical'
|
||||||
29
next.config.ts
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
import type { NextConfig } from 'next'
|
||||||
|
|
||||||
|
const nextConfig: 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: '/((?!(?:en|fr|ar|front-pages|favicon.ico)\\b)):path',
|
||||||
|
destination: '/en/:path',
|
||||||
|
permanent: true,
|
||||||
|
locale: false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default nextConfig
|
||||||
12974
package-lock.json
generated
Normal file
116
package.json
Normal file
@ -0,0 +1,116 @@
|
|||||||
|
{
|
||||||
|
"name": "vuexy-mui-nextjs-admin-template",
|
||||||
|
"version": "4.0.0",
|
||||||
|
"license": "Commercial",
|
||||||
|
"private": true,
|
||||||
|
"scripts": {
|
||||||
|
"dev": "next dev --turbopack",
|
||||||
|
"build": "next build",
|
||||||
|
"start": "next start",
|
||||||
|
"lint": "next lint",
|
||||||
|
"lint:fix": "next lint --fix",
|
||||||
|
"format": "prettier --write \"src/**/*.{js,jsx,ts,tsx}\"",
|
||||||
|
"build:icons": "tsx src/assets/iconify-icons/bundle-icons-css.ts",
|
||||||
|
"removeI18n": "tsx src/remove-translation-scripts/index.ts"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@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.0",
|
||||||
|
"@floating-ui/react": "0.27.2",
|
||||||
|
"@formatjs/intl-localematcher": "0.5.9",
|
||||||
|
"@formkit/drag-and-drop": "0.2.6",
|
||||||
|
"@fullcalendar/common": "5.11.5",
|
||||||
|
"@fullcalendar/core": "6.1.15",
|
||||||
|
"@fullcalendar/daygrid": "6.1.15",
|
||||||
|
"@fullcalendar/interaction": "6.1.15",
|
||||||
|
"@fullcalendar/list": "6.1.15",
|
||||||
|
"@fullcalendar/react": "6.1.15",
|
||||||
|
"@fullcalendar/timegrid": "6.1.15",
|
||||||
|
"@hookform/resolvers": "3.9.1",
|
||||||
|
"@mui/lab": "6.0.0-beta.19",
|
||||||
|
"@mui/material": "6.2.1",
|
||||||
|
"@mui/material-nextjs": "6.2.1",
|
||||||
|
"@reduxjs/toolkit": "2.5.0",
|
||||||
|
"@tanstack/match-sorter-utils": "8.19.4",
|
||||||
|
"@tanstack/react-query": "^5.84.1",
|
||||||
|
"@tanstack/react-query-devtools": "^5.84.1",
|
||||||
|
"@tanstack/react-table": "8.20.6",
|
||||||
|
"@tiptap/extension-color": "^2.10.4",
|
||||||
|
"@tiptap/extension-list-item": "^2.10.4",
|
||||||
|
"@tiptap/extension-placeholder": "^2.10.4",
|
||||||
|
"@tiptap/extension-text-align": "^2.10.4",
|
||||||
|
"@tiptap/extension-text-style": "^2.10.4",
|
||||||
|
"@tiptap/extension-underline": "^2.10.4",
|
||||||
|
"@tiptap/pm": "^2.10.4",
|
||||||
|
"@tiptap/react": "^2.10.4",
|
||||||
|
"@tiptap/starter-kit": "^2.10.4",
|
||||||
|
"apexcharts": "3.49.0",
|
||||||
|
"axios": "^1.11.0",
|
||||||
|
"bootstrap-icons": "1.11.3",
|
||||||
|
"classnames": "2.5.1",
|
||||||
|
"cmdk": "1.0.4",
|
||||||
|
"date-fns": "4.1.0",
|
||||||
|
"emoji-mart": "5.6.0",
|
||||||
|
"fs-extra": "11.2.0",
|
||||||
|
"input-otp": "1.4.1",
|
||||||
|
"keen-slider": "6.8.6",
|
||||||
|
"mapbox-gl": "3.9.0",
|
||||||
|
"negotiator": "1.0.0",
|
||||||
|
"next": "15.1.2",
|
||||||
|
"react": "18.3.1",
|
||||||
|
"react-apexcharts": "1.4.1",
|
||||||
|
"react-colorful": "5.6.1",
|
||||||
|
"react-datepicker": "7.3.0",
|
||||||
|
"react-dom": "18.3.1",
|
||||||
|
"react-dropzone": "14.3.5",
|
||||||
|
"react-hook-form": "7.54.1",
|
||||||
|
"react-map-gl": "7.1.8",
|
||||||
|
"react-perfect-scrollbar": "1.5.8",
|
||||||
|
"react-player": "2.16.0",
|
||||||
|
"react-redux": "9.2.0",
|
||||||
|
"react-toastify": "10.0.6",
|
||||||
|
"react-use": "17.6.0",
|
||||||
|
"recharts": "2.15.0",
|
||||||
|
"valibot": "0.42.1"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@iconify/json": "2.2.286",
|
||||||
|
"@iconify/tools": "4.1.1",
|
||||||
|
"@iconify/types": "2.0.0",
|
||||||
|
"@iconify/utils": "2.2.1",
|
||||||
|
"@types/fs-extra": "^11.0.4",
|
||||||
|
"@types/mapbox-gl": "^3.4.1",
|
||||||
|
"@types/negotiator": "^0.6.3",
|
||||||
|
"@types/node": "^22.10.2",
|
||||||
|
"@types/react": "^18.3.18",
|
||||||
|
"@types/react-dom": "^18.3.5",
|
||||||
|
"@typescript-eslint/eslint-plugin": "7.18.0",
|
||||||
|
"@typescript-eslint/parser": "7.18.0",
|
||||||
|
"autoprefixer": "10.4.20",
|
||||||
|
"consola": "3.3.0",
|
||||||
|
"eslint": "8.57.1",
|
||||||
|
"eslint-config-next": "15.1.2",
|
||||||
|
"eslint-config-prettier": "9.1.0",
|
||||||
|
"eslint-import-resolver-typescript": "3.7.0",
|
||||||
|
"eslint-plugin-import": "2.31.0",
|
||||||
|
"globby": "14.0.2",
|
||||||
|
"postcss": "8.4.49",
|
||||||
|
"postcss-styled-syntax": "0.7.0",
|
||||||
|
"prettier": "3.4.2",
|
||||||
|
"stylelint": "16.12.0",
|
||||||
|
"stylelint-use-logical-spec": "5.0.1",
|
||||||
|
"stylis": "4.3.4",
|
||||||
|
"stylis-plugin-rtl": "2.1.1",
|
||||||
|
"tailwindcss": "3.4.17",
|
||||||
|
"tailwindcss-logical": "3.0.1",
|
||||||
|
"tsx": "4.19.2",
|
||||||
|
"typescript": "5.5.4"
|
||||||
|
},
|
||||||
|
"resolutions": {
|
||||||
|
"rimraf": "^5.0.7",
|
||||||
|
"@tiptap/core": "^2.0.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
8663
pnpm-lock.yaml
generated
Normal file
10
postcss.config.mjs
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
/** @type {import('postcss-load-config').Config} */
|
||||||
|
const config = {
|
||||||
|
plugins: {
|
||||||
|
'tailwindcss/nesting': {},
|
||||||
|
tailwindcss: {},
|
||||||
|
autoprefixer: {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default config
|
||||||
BIN
public/images/apps/academy/1.png
Normal file
|
After Width: | Height: | Size: 73 KiB |
BIN
public/images/apps/academy/2.png
Normal file
|
After Width: | Height: | Size: 60 KiB |
BIN
public/images/apps/academy/3.png
Normal file
|
After Width: | Height: | Size: 82 KiB |
BIN
public/images/apps/academy/4.png
Normal file
|
After Width: | Height: | Size: 88 KiB |
BIN
public/images/apps/academy/5.png
Normal file
|
After Width: | Height: | Size: 87 KiB |
BIN
public/images/apps/academy/6.png
Normal file
|
After Width: | Height: | Size: 73 KiB |
BIN
public/images/apps/academy/7.png
Normal file
|
After Width: | Height: | Size: 96 KiB |
BIN
public/images/apps/academy/8.png
Normal file
|
After Width: | Height: | Size: 102 KiB |
BIN
public/images/apps/academy/9.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
public/images/apps/academy/hand-with-bulb-dark.png
Normal file
|
After Width: | Height: | Size: 29 KiB |
BIN
public/images/apps/academy/hand-with-bulb-light.png
Normal file
|
After Width: | Height: | Size: 29 KiB |
BIN
public/images/apps/ecommerce/3d-rocket.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
public/images/apps/ecommerce/american-express.png
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
public/images/apps/ecommerce/mastercard.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
public/images/apps/ecommerce/paypal.png
Normal file
|
After Width: | Height: | Size: 958 B |
BIN
public/images/apps/ecommerce/product-1.png
Normal file
|
After Width: | Height: | Size: 8.4 KiB |
BIN
public/images/apps/ecommerce/product-10.png
Normal file
|
After Width: | Height: | Size: 7.7 KiB |
BIN
public/images/apps/ecommerce/product-11.png
Normal file
|
After Width: | Height: | Size: 6.3 KiB |
BIN
public/images/apps/ecommerce/product-12.png
Normal file
|
After Width: | Height: | Size: 5.5 KiB |
BIN
public/images/apps/ecommerce/product-13.png
Normal file
|
After Width: | Height: | Size: 9.7 KiB |
BIN
public/images/apps/ecommerce/product-14.png
Normal file
|
After Width: | Height: | Size: 6.2 KiB |
BIN
public/images/apps/ecommerce/product-15.png
Normal file
|
After Width: | Height: | Size: 6.9 KiB |
BIN
public/images/apps/ecommerce/product-16.png
Normal file
|
After Width: | Height: | Size: 7.3 KiB |
BIN
public/images/apps/ecommerce/product-17.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
BIN
public/images/apps/ecommerce/product-18.png
Normal file
|
After Width: | Height: | Size: 8.5 KiB |
BIN
public/images/apps/ecommerce/product-19.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
public/images/apps/ecommerce/product-2.png
Normal file
|
After Width: | Height: | Size: 9.4 KiB |
BIN
public/images/apps/ecommerce/product-20.png
Normal file
|
After Width: | Height: | Size: 6.3 KiB |
BIN
public/images/apps/ecommerce/product-21.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
public/images/apps/ecommerce/product-22.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
public/images/apps/ecommerce/product-23.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
public/images/apps/ecommerce/product-24.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
public/images/apps/ecommerce/product-25.png
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
BIN
public/images/apps/ecommerce/product-26.png
Normal file
|
After Width: | Height: | Size: 6.7 KiB |
BIN
public/images/apps/ecommerce/product-3.png
Normal file
|
After Width: | Height: | Size: 6.3 KiB |
BIN
public/images/apps/ecommerce/product-4.png
Normal file
|
After Width: | Height: | Size: 9.7 KiB |
BIN
public/images/apps/ecommerce/product-5.png
Normal file
|
After Width: | Height: | Size: 7.7 KiB |
BIN
public/images/apps/ecommerce/product-6.png
Normal file
|
After Width: | Height: | Size: 5.1 KiB |
BIN
public/images/apps/ecommerce/product-7.png
Normal file
|
After Width: | Height: | Size: 7.0 KiB |
BIN
public/images/apps/ecommerce/product-8.png
Normal file
|
After Width: | Height: | Size: 8.5 KiB |
BIN
public/images/apps/ecommerce/product-9.png
Normal file
|
After Width: | Height: | Size: 6.8 KiB |
BIN
public/images/apps/ecommerce/visa.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
public/images/apps/kanban/plant.png
Normal file
|
After Width: | Height: | Size: 44 KiB |
BIN
public/images/apps/logistics/fleet-car.png
Normal file
|
After Width: | Height: | Size: 6.7 KiB |
BIN
public/images/avatars/1.png
Normal file
|
After Width: | Height: | Size: 4.6 KiB |
BIN
public/images/avatars/10.png
Normal file
|
After Width: | Height: | Size: 5.3 KiB |
BIN
public/images/avatars/2.png
Normal file
|
After Width: | Height: | Size: 5.7 KiB |
BIN
public/images/avatars/3.png
Normal file
|
After Width: | Height: | Size: 4.9 KiB |
BIN
public/images/avatars/4.png
Normal file
|
After Width: | Height: | Size: 6.2 KiB |
BIN
public/images/avatars/5.png
Normal file
|
After Width: | Height: | Size: 6.1 KiB |
BIN
public/images/avatars/6.png
Normal file
|
After Width: | Height: | Size: 5.5 KiB |
BIN
public/images/avatars/7.png
Normal file
|
After Width: | Height: | Size: 4.7 KiB |
BIN
public/images/avatars/8.png
Normal file
|
After Width: | Height: | Size: 5.2 KiB |
BIN
public/images/avatars/9.png
Normal file
|
After Width: | Height: | Size: 5.1 KiB |
BIN
public/images/cards/1.png
Normal file
|
After Width: | Height: | Size: 100 KiB |
BIN
public/images/cards/2.png
Normal file
|
After Width: | Height: | Size: 77 KiB |
BIN
public/images/cards/3.png
Normal file
|
After Width: | Height: | Size: 80 KiB |
BIN
public/images/cards/4.png
Normal file
|
After Width: | Height: | Size: 78 KiB |
BIN
public/images/cards/5.png
Normal file
|
After Width: | Height: | Size: 6.4 KiB |
BIN
public/images/cards/6.png
Normal file
|
After Width: | Height: | Size: 96 KiB |
BIN
public/images/cards/amazon-echo-dot.png
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
BIN
public/images/cards/apple-iPhone-13.png
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
BIN
public/images/cards/apple-watch-series-7.png
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
BIN
public/images/cards/australia.png
Normal file
|
After Width: | Height: | Size: 3.0 KiB |
BIN
public/images/cards/beats-studio-2.png
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
BIN
public/images/cards/brazil.png
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
BIN
public/images/cards/china.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
public/images/cards/france.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
public/images/cards/graphic-illustration-1.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
public/images/cards/graphic-illustration-2.png
Normal file
|
After Width: | Height: | Size: 38 KiB |
BIN
public/images/cards/graphic-illustration-3.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
public/images/cards/india.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
public/images/cards/nike-air-jordan.png
Normal file
|
After Width: | Height: | Size: 3.0 KiB |
BIN
public/images/cards/play-station-console.png
Normal file
|
After Width: | Height: | Size: 3.4 KiB |
BIN
public/images/cards/us.png
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
public/images/front-pages/apple-icon.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
public/images/front-pages/checkout.png
Normal file
|
After Width: | Height: | Size: 48 KiB |
BIN
public/images/front-pages/dropdown-image.png
Normal file
|
After Width: | Height: | Size: 66 KiB |
BIN
public/images/front-pages/footer-bg-dark.png
Normal file
|
After Width: | Height: | Size: 59 KiB |
BIN
public/images/front-pages/footer-bg-light.png
Normal file
|
After Width: | Height: | Size: 52 KiB |
BIN
public/images/front-pages/google-play-icon.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
public/images/front-pages/landing-page/bg-shape.png
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 224 KiB |