tailadmin
This commit is contained in:
171
package-lock.json
generated
171
package-lock.json
generated
@@ -9,18 +9,30 @@
|
||||
"version": "1.0.0",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"admin-lte": "^4.0.0-rc7"
|
||||
"@floating-ui/dom": "^1.7.4",
|
||||
"@fullcalendar/core": "^6.1.19",
|
||||
"@fullcalendar/daygrid": "^6.1.19",
|
||||
"@fullcalendar/interaction": "^6.1.19",
|
||||
"@fullcalendar/list": "^6.1.19",
|
||||
"@fullcalendar/timegrid": "^6.1.19",
|
||||
"admin-lte": "^4.0.0-rc7",
|
||||
"alpinejs": "^3.14.9",
|
||||
"apexcharts": "^5.3.5",
|
||||
"flatpickr": "^4.6.13",
|
||||
"jsvectormap": "^1.7.0",
|
||||
"prismjs": "^1.30.0",
|
||||
"swiper": "^12.0.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@popperjs/core": "^2.11.8",
|
||||
"@tailwindcss/vite": "^4.0.0",
|
||||
"@tailwindcss/vite": "^4.1.12",
|
||||
"axios": "^1.11.0",
|
||||
"bootstrap": "^5.3.8",
|
||||
"bootstrap-icons": "^1.13.1",
|
||||
"concurrently": "^9.0.1",
|
||||
"laravel-vite-plugin": "^2.1.0",
|
||||
"sass": "^1.56.1",
|
||||
"tailwindcss": "^4.0.0",
|
||||
"tailwindcss": "^4.1.12",
|
||||
"vite": "^7.3.1"
|
||||
}
|
||||
},
|
||||
@@ -440,6 +452,79 @@
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/@floating-ui/core": {
|
||||
"version": "1.7.5",
|
||||
"resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.5.tgz",
|
||||
"integrity": "sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@floating-ui/utils": "^0.2.11"
|
||||
}
|
||||
},
|
||||
"node_modules/@floating-ui/dom": {
|
||||
"version": "1.7.6",
|
||||
"resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.6.tgz",
|
||||
"integrity": "sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@floating-ui/core": "^1.7.5",
|
||||
"@floating-ui/utils": "^0.2.11"
|
||||
}
|
||||
},
|
||||
"node_modules/@floating-ui/utils": {
|
||||
"version": "0.2.11",
|
||||
"resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.11.tgz",
|
||||
"integrity": "sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@fullcalendar/core": {
|
||||
"version": "6.1.20",
|
||||
"resolved": "https://registry.npmjs.org/@fullcalendar/core/-/core-6.1.20.tgz",
|
||||
"integrity": "sha512-1cukXLlePFiJ8YKXn/4tMKsy0etxYLCkXk8nUCFi11nRONF2Ba2CD5b21/ovtOO2tL6afTJfwmc1ed3HG7eB1g==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"preact": "~10.12.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@fullcalendar/daygrid": {
|
||||
"version": "6.1.20",
|
||||
"resolved": "https://registry.npmjs.org/@fullcalendar/daygrid/-/daygrid-6.1.20.tgz",
|
||||
"integrity": "sha512-AO9vqhkLP77EesmJzuU+IGXgxNulsA8mgQHynclJ8U70vSwAVnbcLG9qftiTAFSlZjiY/NvhE7sflve6cJelyQ==",
|
||||
"license": "MIT",
|
||||
"peerDependencies": {
|
||||
"@fullcalendar/core": "~6.1.20"
|
||||
}
|
||||
},
|
||||
"node_modules/@fullcalendar/interaction": {
|
||||
"version": "6.1.20",
|
||||
"resolved": "https://registry.npmjs.org/@fullcalendar/interaction/-/interaction-6.1.20.tgz",
|
||||
"integrity": "sha512-p6txmc5txL0bMiPaJxe2ip6o0T384TyoD2KGdsU6UjZ5yoBlaY+dg7kxfnYKpYMzEJLG58n+URrHr2PgNL2fyA==",
|
||||
"license": "MIT",
|
||||
"peerDependencies": {
|
||||
"@fullcalendar/core": "~6.1.20"
|
||||
}
|
||||
},
|
||||
"node_modules/@fullcalendar/list": {
|
||||
"version": "6.1.20",
|
||||
"resolved": "https://registry.npmjs.org/@fullcalendar/list/-/list-6.1.20.tgz",
|
||||
"integrity": "sha512-7Hzkbb7uuSqrXwTyD0Ld/7SwWNxPD6SlU548vtkIpH55rZ4qquwtwYdMPgorHos5OynHA4OUrZNcH51CjrCf2g==",
|
||||
"license": "MIT",
|
||||
"peerDependencies": {
|
||||
"@fullcalendar/core": "~6.1.20"
|
||||
}
|
||||
},
|
||||
"node_modules/@fullcalendar/timegrid": {
|
||||
"version": "6.1.20",
|
||||
"resolved": "https://registry.npmjs.org/@fullcalendar/timegrid/-/timegrid-6.1.20.tgz",
|
||||
"integrity": "sha512-4H+/MWbz3ntA50lrPif+7TsvMeX3R1GSYjiLULz0+zEJ7/Yfd9pupZmAwUs/PBpA6aAcFmeRr0laWfcz1a9V1A==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@fullcalendar/daygrid": "~6.1.20"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@fullcalendar/core": "~6.1.20"
|
||||
}
|
||||
},
|
||||
"node_modules/@jridgewell/gen-mapping": {
|
||||
"version": "0.3.13",
|
||||
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
|
||||
@@ -1380,12 +1465,36 @@
|
||||
"integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@vue/reactivity": {
|
||||
"version": "3.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.1.5.tgz",
|
||||
"integrity": "sha512-1tdfLmNjWG6t/CsPldh+foumYFo3cpyCHgBYQ34ylaMsJ+SNHQ1kApMIa8jN+i593zQuaw3AdWH0nJTARzCFhg==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@vue/shared": "3.1.5"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/shared": {
|
||||
"version": "3.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.1.5.tgz",
|
||||
"integrity": "sha512-oJ4F3TnvpXaQwZJNF3ZK+kLPHKarDmJjJ6jyzVNDKH9md1dptjC7lWR//jrGuLdek/U6iltWxqAnYOu8gCiOvA==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/admin-lte": {
|
||||
"version": "4.0.0-rc7",
|
||||
"resolved": "https://registry.npmjs.org/admin-lte/-/admin-lte-4.0.0-rc7.tgz",
|
||||
"integrity": "sha512-v7JYiuxONrpXxvoRVhFJuLpZ9xoBvQ1bHkE1lanVR8+/AqBATWXU3vOO0TAWOoxhG6/26JkU5otXq0Z2SRQjZQ==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/alpinejs": {
|
||||
"version": "3.15.8",
|
||||
"resolved": "https://registry.npmjs.org/alpinejs/-/alpinejs-3.15.8.tgz",
|
||||
"integrity": "sha512-zxIfCRTBGvF1CCLIOMQOxAyBuqibxSEwS6Jm1a3HGA9rgrJVcjEWlwLcQTVGAWGS8YhAsTRLVrtQ5a5QT9bSSQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@vue/reactivity": "~3.1.1"
|
||||
}
|
||||
},
|
||||
"node_modules/ansi-regex": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
|
||||
@@ -1410,6 +1519,12 @@
|
||||
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/apexcharts": {
|
||||
"version": "5.10.4",
|
||||
"resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-5.10.4.tgz",
|
||||
"integrity": "sha512-gt0VUqZ2+mr25ScbUcKZgJr96jKYm4vjOcxEWCEh/E5F4dWqhyo3dBhPRvNNnkKiWxkMd2cBwj3ZYH3rK39fkA==",
|
||||
"license": "SEE LICENSE IN LICENSE"
|
||||
},
|
||||
"node_modules/asynckit": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
|
||||
@@ -1751,6 +1866,12 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/flatpickr": {
|
||||
"version": "4.6.13",
|
||||
"resolved": "https://registry.npmjs.org/flatpickr/-/flatpickr-4.6.13.tgz",
|
||||
"integrity": "sha512-97PMG/aywoYpB4IvbvUJi0RQi8vearvU0oov1WW3k0WZPBMrTQVqekSX5CjSG/M4Q3i6A/0FKXC7RyAoAUUSPw==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/follow-redirects": {
|
||||
"version": "1.15.11",
|
||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz",
|
||||
@@ -1969,6 +2090,12 @@
|
||||
"jiti": "lib/jiti-cli.mjs"
|
||||
}
|
||||
},
|
||||
"node_modules/jsvectormap": {
|
||||
"version": "1.7.0",
|
||||
"resolved": "https://registry.npmjs.org/jsvectormap/-/jsvectormap-1.7.0.tgz",
|
||||
"integrity": "sha512-8VmL3Uuen08Es9xb2N6Wdc32TrQDGPXYCIdTB126jAhTJsYd/4r4Mc63VQA3qHxG0p4zeCI8sFO5XRsdjljMJg==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/laravel-vite-plugin": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/laravel-vite-plugin/-/laravel-vite-plugin-2.1.0.tgz",
|
||||
@@ -2348,6 +2475,25 @@
|
||||
"node": "^10 || ^12 || >=14"
|
||||
}
|
||||
},
|
||||
"node_modules/preact": {
|
||||
"version": "10.12.1",
|
||||
"resolved": "https://registry.npmjs.org/preact/-/preact-10.12.1.tgz",
|
||||
"integrity": "sha512-l8386ixSsBdbreOAkqtrwqHwdvR35ID8c3rKPa8lCWuO86dBi32QWHV4vfsZK1utLLFMvw+Z5Ad4XLkZzchscg==",
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/preact"
|
||||
}
|
||||
},
|
||||
"node_modules/prismjs": {
|
||||
"version": "1.30.0",
|
||||
"resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz",
|
||||
"integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/proxy-from-env": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
|
||||
@@ -2511,6 +2657,25 @@
|
||||
"url": "https://github.com/chalk/supports-color?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/swiper": {
|
||||
"version": "12.1.2",
|
||||
"resolved": "https://registry.npmjs.org/swiper/-/swiper-12.1.2.tgz",
|
||||
"integrity": "sha512-4gILrI3vXZqoZh71I1PALqukCFgk+gpOwe1tOvz5uE9kHtl2gTDzmYflYCwWvR4LOvCrJi6UEEU+gnuW5BtkgQ==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "patreon",
|
||||
"url": "https://www.patreon.com/swiperjs"
|
||||
},
|
||||
{
|
||||
"type": "open_collective",
|
||||
"url": "http://opencollective.com/swiper"
|
||||
}
|
||||
],
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 4.7.0"
|
||||
}
|
||||
},
|
||||
"node_modules/tailwindcss": {
|
||||
"version": "4.2.0",
|
||||
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.2.0.tgz",
|
||||
|
||||
18
package.json
18
package.json
@@ -8,18 +8,30 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@popperjs/core": "^2.11.8",
|
||||
"@tailwindcss/vite": "^4.0.0",
|
||||
"@tailwindcss/vite": "^4.1.12",
|
||||
"axios": "^1.11.0",
|
||||
"bootstrap": "^5.3.8",
|
||||
"bootstrap-icons": "^1.13.1",
|
||||
"concurrently": "^9.0.1",
|
||||
"laravel-vite-plugin": "^2.1.0",
|
||||
"sass": "^1.56.1",
|
||||
"tailwindcss": "^4.0.0",
|
||||
"tailwindcss": "^4.1.12",
|
||||
"vite": "^7.3.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"admin-lte": "^4.0.0-rc7"
|
||||
"@floating-ui/dom": "^1.7.4",
|
||||
"@fullcalendar/core": "^6.1.19",
|
||||
"@fullcalendar/daygrid": "^6.1.19",
|
||||
"@fullcalendar/interaction": "^6.1.19",
|
||||
"@fullcalendar/list": "^6.1.19",
|
||||
"@fullcalendar/timegrid": "^6.1.19",
|
||||
"admin-lte": "^4.0.0-rc7",
|
||||
"alpinejs": "^3.14.9",
|
||||
"apexcharts": "^5.3.5",
|
||||
"flatpickr": "^4.6.13",
|
||||
"jsvectormap": "^1.7.0",
|
||||
"prismjs": "^1.30.0",
|
||||
"swiper": "^12.0.3"
|
||||
},
|
||||
"name": "alliance-services",
|
||||
"version": "1.0.0",
|
||||
|
||||
882
resources/css/app.css
Normal file
882
resources/css/app.css
Normal file
@@ -0,0 +1,882 @@
|
||||
@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@100..900&display=swap') layer(base);
|
||||
@import 'prismjs/themes/prism.min.css';
|
||||
@import 'tailwindcss';
|
||||
|
||||
|
||||
@source '../../vendor/laravel/framework/src/Illuminate/Pagination/resources/views/*.blade.php';
|
||||
@source '../../storage/framework/views/*.php';
|
||||
@source '../**/*.blade.php';
|
||||
@source '../**/*.js';
|
||||
|
||||
|
||||
@custom-variant dark (&:is(.dark *));
|
||||
|
||||
@theme {
|
||||
--font-*: initial;
|
||||
--font-outfit: Outfit, sans-serif;
|
||||
|
||||
--breakpoint-*: initial;
|
||||
--breakpoint-2xsm: 375px;
|
||||
--breakpoint-xsm: 425px;
|
||||
--breakpoint-3xl: 2000px;
|
||||
--breakpoint-sm: 640px;
|
||||
--breakpoint-md: 768px;
|
||||
--breakpoint-lg: 1024px;
|
||||
--breakpoint-xl: 1280px;
|
||||
--breakpoint-2xl: 1536px;
|
||||
|
||||
--text-title-2xl: 72px;
|
||||
--text-title-2xl--line-height: 90px;
|
||||
--text-title-xl: 60px;
|
||||
--text-title-xl--line-height: 72px;
|
||||
--text-title-lg: 48px;
|
||||
--text-title-lg--line-height: 60px;
|
||||
--text-title-md: 36px;
|
||||
--text-title-md--line-height: 44px;
|
||||
--text-title-sm: 30px;
|
||||
--text-title-sm--line-height: 38px;
|
||||
--text-theme-xl: 20px;
|
||||
--text-theme-xl--line-height: 30px;
|
||||
--text-theme-sm: 14px;
|
||||
--text-theme-sm--line-height: 20px;
|
||||
--text-theme-xs: 12px;
|
||||
--text-theme-xs--line-height: 18px;
|
||||
|
||||
--color-current: currentColor;
|
||||
--color-transparent: transparent;
|
||||
--color-white: #ffffff;
|
||||
--color-black: #101828;
|
||||
|
||||
--color-brand-25: #f2f7ff;
|
||||
--color-brand-50: #ecf3ff;
|
||||
--color-brand-100: #dde9ff;
|
||||
--color-brand-200: #c2d6ff;
|
||||
--color-brand-300: #9cb9ff;
|
||||
--color-brand-400: #7592ff;
|
||||
--color-brand-500: #465fff;
|
||||
--color-brand-600: #3641f5;
|
||||
--color-brand-700: #2a31d8;
|
||||
--color-brand-800: #252dae;
|
||||
--color-brand-900: #262e89;
|
||||
--color-brand-950: #161950;
|
||||
|
||||
--color-blue-light-25: #f5fbff;
|
||||
--color-blue-light-50: #f0f9ff;
|
||||
--color-blue-light-100: #e0f2fe;
|
||||
--color-blue-light-200: #b9e6fe;
|
||||
--color-blue-light-300: #7cd4fd;
|
||||
--color-blue-light-400: #36bffa;
|
||||
--color-blue-light-500: #0ba5ec;
|
||||
--color-blue-light-600: #0086c9;
|
||||
--color-blue-light-700: #026aa2;
|
||||
--color-blue-light-800: #065986;
|
||||
--color-blue-light-900: #0b4a6f;
|
||||
--color-blue-light-950: #062c41;
|
||||
|
||||
--color-gray-25: #fcfcfd;
|
||||
--color-gray-50: #f9fafb;
|
||||
--color-gray-100: #f2f4f7;
|
||||
--color-gray-200: #e4e7ec;
|
||||
--color-gray-300: #d0d5dd;
|
||||
--color-gray-400: #98a2b3;
|
||||
--color-gray-500: #667085;
|
||||
--color-gray-600: #475467;
|
||||
--color-gray-700: #344054;
|
||||
--color-gray-800: #1d2939;
|
||||
--color-gray-900: #101828;
|
||||
--color-gray-950: #0c111d;
|
||||
--color-gray-dark: #1a2231;
|
||||
|
||||
--color-orange-25: #fffaf5;
|
||||
--color-orange-50: #fff6ed;
|
||||
--color-orange-100: #ffead5;
|
||||
--color-orange-200: #fddcab;
|
||||
--color-orange-300: #feb273;
|
||||
--color-orange-400: #fd853a;
|
||||
--color-orange-500: #fb6514;
|
||||
--color-orange-600: #ec4a0a;
|
||||
--color-orange-700: #c4320a;
|
||||
--color-orange-800: #9c2a10;
|
||||
--color-orange-900: #7e2410;
|
||||
--color-orange-950: #511c10;
|
||||
|
||||
--color-success-25: #f6fef9;
|
||||
--color-success-50: #ecfdf3;
|
||||
--color-success-100: #d1fadf;
|
||||
--color-success-200: #a6f4c5;
|
||||
--color-success-300: #6ce9a6;
|
||||
--color-success-400: #32d583;
|
||||
--color-success-500: #12b76a;
|
||||
--color-success-600: #039855;
|
||||
--color-success-700: #027a48;
|
||||
--color-success-800: #05603a;
|
||||
--color-success-900: #054f31;
|
||||
--color-success-950: #053321;
|
||||
|
||||
--color-error-25: #fffbfa;
|
||||
--color-error-50: #fef3f2;
|
||||
--color-error-100: #fee4e2;
|
||||
--color-error-200: #fecdca;
|
||||
--color-error-300: #fda29b;
|
||||
--color-error-400: #f97066;
|
||||
--color-error-500: #f04438;
|
||||
--color-error-600: #d92d20;
|
||||
--color-error-700: #b42318;
|
||||
--color-error-800: #912018;
|
||||
--color-error-900: #7a271a;
|
||||
--color-error-950: #55160c;
|
||||
|
||||
--color-warning-25: #fffcf5;
|
||||
--color-warning-50: #fffaeb;
|
||||
--color-warning-100: #fef0c7;
|
||||
--color-warning-200: #fedf89;
|
||||
--color-warning-300: #fec84b;
|
||||
--color-warning-400: #fdb022;
|
||||
--color-warning-500: #f79009;
|
||||
--color-warning-600: #dc6803;
|
||||
--color-warning-700: #b54708;
|
||||
--color-warning-800: #93370d;
|
||||
--color-warning-900: #7a2e0e;
|
||||
--color-warning-950: #4e1d09;
|
||||
|
||||
--color-theme-pink-500: #ee46bc;
|
||||
|
||||
--color-theme-purple-500: #7a5af8;
|
||||
|
||||
--shadow-theme-md: 0px 4px 8px -2px rgba(16, 24, 40, 0.1), 0px 2px 4px -2px rgba(16, 24, 40, 0.06);
|
||||
--shadow-theme-lg: 0px 12px 16px -4px rgba(16, 24, 40, 0.08),
|
||||
0px 4px 6px -2px rgba(16, 24, 40, 0.03);
|
||||
--shadow-theme-sm: 0px 1px 3px 0px rgba(16, 24, 40, 0.1), 0px 1px 2px 0px rgba(16, 24, 40, 0.06);
|
||||
--shadow-theme-xs: 0px 1px 2px 0px rgba(16, 24, 40, 0.05);
|
||||
--shadow-theme-xl: 0px 20px 24px -4px rgba(16, 24, 40, 0.08),
|
||||
0px 8px 8px -4px rgba(16, 24, 40, 0.03);
|
||||
--shadow-datepicker: -5px 0 0 #262d3c, 5px 0 0 #262d3c;
|
||||
--shadow-focus-ring: 0px 0px 0px 4px rgba(70, 95, 255, 0.12);
|
||||
--shadow-slider-navigation: 0px 1px 2px 0px rgba(16, 24, 40, 0.1),
|
||||
0px 1px 3px 0px rgba(16, 24, 40, 0.1);
|
||||
--shadow-tooltip: 0px 4px 6px -2px rgba(16, 24, 40, 0.05),
|
||||
-8px 0px 20px 8px rgba(16, 24, 40, 0.05);
|
||||
|
||||
--drop-shadow-4xl: 0 35px 35px rgba(0, 0, 0, 0.25), 0 45px 65px rgba(0, 0, 0, 0.15);
|
||||
|
||||
--z-index-1: 1;
|
||||
--z-index-9: 9;
|
||||
--z-index-99: 99;
|
||||
--z-index-999: 999;
|
||||
--z-index-9999: 9999;
|
||||
--z-index-99999: 99999;
|
||||
--z-index-999999: 999999;
|
||||
}
|
||||
|
||||
/*
|
||||
The default border color has changed to `currentColor` in Tailwind CSS v4,
|
||||
so we've added these compatibility styles to make sure everything still
|
||||
looks the same as it did with Tailwind CSS v3.
|
||||
|
||||
If we ever want to remove these styles, we need to add an explicit border
|
||||
color utility to any element that depends on these defaults.
|
||||
*/
|
||||
@layer base {
|
||||
*,
|
||||
::after,
|
||||
::before,
|
||||
::backdrop,
|
||||
::file-selector-button {
|
||||
border-color: var(--color-gray-200, currentColor);
|
||||
}
|
||||
button:not(:disabled),
|
||||
[role='button']:not(:disabled) {
|
||||
cursor: pointer;
|
||||
}
|
||||
body {
|
||||
@apply relative font-normal font-outfit z-1 bg-gray-50;
|
||||
}
|
||||
}
|
||||
|
||||
@utility menu-item {
|
||||
@apply relative flex items-center w-full gap-3 px-3 py-2 font-medium rounded-lg text-theme-sm;
|
||||
}
|
||||
|
||||
@utility menu-item-active {
|
||||
@apply bg-brand-50 text-brand-500 dark:bg-brand-500/[0.12] dark:text-brand-400;
|
||||
}
|
||||
|
||||
@utility menu-item-inactive {
|
||||
@apply text-gray-700 hover:bg-gray-100 group-hover:text-gray-700 dark:text-gray-300 dark:hover:bg-white/5 dark:hover:text-gray-300;
|
||||
}
|
||||
|
||||
@utility menu-item-icon {
|
||||
@apply text-gray-500 group-hover:text-gray-700 dark:text-gray-400;
|
||||
}
|
||||
|
||||
@utility menu-item-icon-active {
|
||||
@apply text-brand-500 dark:text-brand-400;
|
||||
}
|
||||
|
||||
@utility menu-item-icon-inactive {
|
||||
@apply text-gray-500 group-hover:text-gray-700 dark:text-gray-400 dark:group-hover:text-gray-300;
|
||||
}
|
||||
|
||||
@utility menu-item-arrow {
|
||||
@apply relative;
|
||||
}
|
||||
|
||||
@utility menu-item-arrow-active {
|
||||
@apply rotate-180 text-brand-500 dark:text-brand-400;
|
||||
}
|
||||
|
||||
@utility menu-item-arrow-inactive {
|
||||
@apply text-gray-500 group-hover:text-gray-700 dark:text-gray-400 dark:group-hover:text-gray-300;
|
||||
}
|
||||
|
||||
@utility menu-dropdown-item {
|
||||
@apply relative flex items-center gap-3 rounded-lg px-3 py-2.5 text-theme-sm font-medium;
|
||||
}
|
||||
|
||||
@utility menu-dropdown-item-active {
|
||||
@apply bg-brand-50 text-brand-500 dark:bg-brand-500/[0.12] dark:text-brand-400;
|
||||
}
|
||||
|
||||
@utility menu-dropdown-item-inactive {
|
||||
@apply text-gray-700 hover:bg-gray-100 dark:text-gray-300 dark:hover:bg-white/5;
|
||||
}
|
||||
|
||||
@utility menu-dropdown-item {
|
||||
@apply text-theme-sm relative flex items-center gap-3 rounded-lg px-3 py-2.5 font-medium;
|
||||
}
|
||||
|
||||
@utility menu-dropdown-item-active {
|
||||
@apply bg-brand-50 text-brand-500 dark:bg-brand-500/[0.12] dark:text-brand-400;
|
||||
}
|
||||
|
||||
@utility menu-dropdown-item-inactive {
|
||||
@apply text-gray-700 hover:bg-gray-100 dark:text-gray-300 dark:hover:bg-white/5;
|
||||
}
|
||||
|
||||
@utility menu-dropdown-badge {
|
||||
@apply text-success-600 dark:text-success-500 block rounded-full px-2.5 py-0.5 text-xs font-medium uppercase;
|
||||
}
|
||||
|
||||
@utility menu-dropdown-badge-active {
|
||||
@apply bg-success-100 dark:bg-success-500/20;
|
||||
}
|
||||
|
||||
@utility menu-dropdown-badge-inactive {
|
||||
@apply bg-success-50 group-hover:bg-success-100 dark:bg-success-500/15 dark:group-hover:bg-success-500/20;
|
||||
}
|
||||
|
||||
@utility menu-dropdown-badge-pro {
|
||||
@apply text-brand-600 dark:text-brand-500 block rounded-full px-2.5 py-0.5 text-xs font-medium uppercase;
|
||||
}
|
||||
|
||||
@utility menu-dropdown-badge-pro-active {
|
||||
@apply bg-brand-100 dark:bg-brand-500/20;
|
||||
}
|
||||
|
||||
@utility menu-dropdown-badge-pro-inactive {
|
||||
@apply bg-brand-50 group-hover:bg-brand-100 dark:bg-brand-500/15 dark:group-hover:bg-brand-500/20;
|
||||
}
|
||||
|
||||
@utility no-scrollbar {
|
||||
/* Chrome, Safari and Opera */
|
||||
&::-webkit-scrollbar {
|
||||
display: none;
|
||||
}
|
||||
-ms-overflow-style: none; /* IE and Edge */
|
||||
scrollbar-width: none; /* Firefox */
|
||||
}
|
||||
|
||||
@utility custom-scrollbar {
|
||||
&::-webkit-scrollbar {
|
||||
@apply size-1.5;
|
||||
}
|
||||
|
||||
&::-webkit-scrollbar-track {
|
||||
@apply rounded-full;
|
||||
}
|
||||
|
||||
&::-webkit-scrollbar-thumb {
|
||||
@apply bg-gray-200 rounded-full dark:bg-gray-700;
|
||||
}
|
||||
}
|
||||
.dark .custom-scrollbar::-webkit-scrollbar-thumb {
|
||||
background-color: #344054;
|
||||
}
|
||||
@layer utilities {
|
||||
/* For Remove Date Icon */
|
||||
input[type='date']::-webkit-inner-spin-button,
|
||||
input[type='time']::-webkit-inner-spin-button,
|
||||
input[type='date']::-webkit-calendar-picker-indicator,
|
||||
input[type='time']::-webkit-calendar-picker-indicator {
|
||||
display: none;
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
}
|
||||
|
||||
.sidebar:hover {
|
||||
width: 290px;
|
||||
}
|
||||
.sidebar:hover .logo {
|
||||
display: block;
|
||||
}
|
||||
.sidebar:hover .logo-icon {
|
||||
display: none;
|
||||
}
|
||||
.sidebar:hover .sidebar-header {
|
||||
justify-content: space-between;
|
||||
}
|
||||
.sidebar:hover .menu-group-title {
|
||||
display: block;
|
||||
}
|
||||
.sidebar:hover .menu-group-icon {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.sidebar:hover .menu-item-text {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.sidebar:hover .menu-item-arrow {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.sidebar:hover .menu-dropdown {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.tableCheckbox:checked ~ span span {
|
||||
@apply opacity-100;
|
||||
}
|
||||
.tableCheckbox:checked ~ span {
|
||||
@apply border-brand-500 bg-brand-500;
|
||||
}
|
||||
|
||||
/* third-party libraries CSS */
|
||||
.apexcharts-legend-text {
|
||||
@apply !text-gray-700 dark:!text-gray-400;
|
||||
}
|
||||
|
||||
.apexcharts-text {
|
||||
@apply !fill-gray-700 dark:!fill-gray-400;
|
||||
}
|
||||
|
||||
.apexcharts-tooltip.apexcharts-theme-light {
|
||||
@apply gap-1 !rounded-lg !border-gray-200 p-3 !shadow-theme-sm dark:!border-gray-800 dark:!bg-gray-900;
|
||||
}
|
||||
|
||||
/* .apexcharts-tooltip-marker {
|
||||
@apply !mr-1.5 !h-1.5 !w-1.5;
|
||||
} */
|
||||
.apexcharts-legend-text {
|
||||
@apply !pl-5 !text-gray-700 dark:!text-gray-400;
|
||||
}
|
||||
.apexcharts-tooltip-series-group {
|
||||
@apply !p-0;
|
||||
}
|
||||
.apexcharts-tooltip-y-group {
|
||||
@apply !p-0;
|
||||
}
|
||||
.apexcharts-tooltip-title {
|
||||
@apply !mb-0 !border-b-0 !bg-transparent !p-0 !text-[10px] !leading-4 !text-gray-800 dark:!text-white/90;
|
||||
}
|
||||
.apexcharts-tooltip-text {
|
||||
@apply !text-theme-xs !text-gray-700 dark:!text-white/90;
|
||||
}
|
||||
.apexcharts-tooltip-text-y-value {
|
||||
@apply !font-medium;
|
||||
}
|
||||
|
||||
.apexcharts-gridline {
|
||||
@apply !stroke-gray-100 dark:!stroke-gray-800;
|
||||
}
|
||||
#chartTwo .apexcharts-datalabels-group {
|
||||
@apply !-translate-y-24;
|
||||
}
|
||||
|
||||
#chartSeven .apexcharts-datalabels-group .apexcharts-text,
|
||||
#chartTwo .apexcharts-datalabels-group .apexcharts-text,
|
||||
#chartThirteen .apexcharts-datalabels-group .apexcharts-text,
|
||||
#chartTwelve .apexcharts-datalabels-group .apexcharts-text {
|
||||
@apply !fill-gray-800 !font-semibold dark:!fill-white/90;
|
||||
}
|
||||
|
||||
#chartSixteen .apexcharts-legend {
|
||||
@apply !p-0 !pl-6;
|
||||
}
|
||||
|
||||
.jvm-container {
|
||||
@apply !bg-gray-50 dark:!bg-gray-900;
|
||||
}
|
||||
.jvm-region.jvm-element {
|
||||
@apply !fill-gray-300 hover:!fill-brand-500 dark:!fill-gray-700 dark:hover:!fill-brand-500;
|
||||
}
|
||||
.jvm-marker.jvm-element {
|
||||
@apply !stroke-gray-200 dark:!stroke-gray-800;
|
||||
}
|
||||
|
||||
.stocks-slider-outer .swiper-button-next:after,
|
||||
.stocks-slider-outer .swiper-button-prev:after {
|
||||
@apply hidden;
|
||||
}
|
||||
|
||||
.stocks-slider-outer .swiper-button-next,
|
||||
.stocks-slider-outer .swiper-button-prev {
|
||||
@apply static! mt-0 h-8 w-9 rounded-full border border-gray-200 !text-gray-700 transition hover:bg-gray-100 dark:border-gray-800 dark:bg-gray-800 dark:text-gray-400!;
|
||||
}
|
||||
|
||||
.stocks-slider-outer .swiper-button-next.swiper-button-disabled,
|
||||
.stocks-slider-outer .swiper-button-prev.swiper-button-disabled {
|
||||
@apply bg-white opacity-50 dark:bg-gray-900;
|
||||
}
|
||||
|
||||
.stocks-slider-outer .swiper-button-next svg,
|
||||
.stocks-slider-outer .swiper-button-prev svg {
|
||||
@apply !h-auto !w-auto;
|
||||
fill: none;
|
||||
}
|
||||
|
||||
.flatpickr-wrapper {
|
||||
@apply w-full;
|
||||
}
|
||||
.flatpickr-calendar {
|
||||
@apply mt-2 !rounded-xl bg-black !p-5 !border !border-transparent dark:!border-white/5 !text-gray-500 dark:!bg-gray-dark dark:!text-gray-400 dark:!shadow-theme-xl 2xsm:!w-auto;
|
||||
}
|
||||
.flatpickr-time input {
|
||||
background-color: #f9fafb !important;
|
||||
}
|
||||
.flatpickr-months .flatpickr-prev-month:hover svg,
|
||||
.flatpickr-months .flatpickr-next-month:hover svg {
|
||||
@apply stroke-brand-500;
|
||||
}
|
||||
.flatpickr-calendar.arrowTop:before,
|
||||
.flatpickr-calendar.arrowTop:after {
|
||||
@apply hidden;
|
||||
}
|
||||
.flatpickr-current-month .cur-month,
|
||||
.flatpickr-current-month input.cur-year {
|
||||
@apply !h-auto !pt-0 !text-lg !font-medium !text-gray-800 dark:!text-white/90;
|
||||
}
|
||||
|
||||
.flatpickr-prev-month,
|
||||
.flatpickr-next-month {
|
||||
@apply !p-0;
|
||||
}
|
||||
|
||||
.flatpickr-weekdays {
|
||||
@apply h-auto mt-6 mb-4;
|
||||
}
|
||||
|
||||
.flatpickr-weekday {
|
||||
@apply !text-theme-sm !font-medium !text-gray-500 dark:!text-gray-400;
|
||||
}
|
||||
|
||||
.flatpickr-day {
|
||||
@apply !flex !items-center !text-theme-sm !font-medium !text-gray-800 dark:!text-white/90 dark:hover:!border-gray-300 dark:hover:!bg-gray-900;
|
||||
}
|
||||
.flatpickr-day.nextMonthDay,
|
||||
.flatpickr-day.prevMonthDay {
|
||||
@apply !text-gray-400;
|
||||
}
|
||||
.flatpickr-months .flatpickr-prev-month,
|
||||
.flatpickr-months .flatpickr-next-month {
|
||||
@apply !top-7 dark:!fill-white dark:!text-white;
|
||||
}
|
||||
.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,
|
||||
.flatpickr-months .flatpickr-next-month.flatpickr-prev-month {
|
||||
@apply !left-7;
|
||||
}
|
||||
.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,
|
||||
.flatpickr-months .flatpickr-next-month.flatpickr-next-month {
|
||||
@apply !right-7;
|
||||
}
|
||||
span.flatpickr-weekday,
|
||||
.flatpickr-months .flatpickr-month {
|
||||
@apply dark:!fill-white dark:!text-white;
|
||||
}
|
||||
.flatpickr-day.inRange {
|
||||
box-shadow:
|
||||
-5px 0 0 #f9fafb,
|
||||
5px 0 0 #f9fafb !important;
|
||||
@apply dark:!shadow-datepicker;
|
||||
}
|
||||
.flatpickr-day.inRange,
|
||||
.flatpickr-day.prevMonthDay.inRange,
|
||||
.flatpickr-day.nextMonthDay.inRange,
|
||||
.flatpickr-day.today.inRange,
|
||||
.flatpickr-day.prevMonthDay.today.inRange,
|
||||
.flatpickr-day.nextMonthDay.today.inRange,
|
||||
.flatpickr-day:hover,
|
||||
.flatpickr-day.prevMonthDay:hover,
|
||||
.flatpickr-day.nextMonthDay:hover,
|
||||
.flatpickr-day:focus,
|
||||
.flatpickr-day.prevMonthDay:focus,
|
||||
.flatpickr-day.nextMonthDay:focus {
|
||||
@apply !border-gray-50 !bg-gray-50 dark:!border-0 dark:!border-white/5 dark:!bg-white/5;
|
||||
}
|
||||
.flatpickr-day.selected,
|
||||
.flatpickr-day.startRange,
|
||||
.flatpickr-day.selected,
|
||||
.flatpickr-day.endRange {
|
||||
@apply !text-white dark:!text-white;
|
||||
}
|
||||
.flatpickr-day.selected,
|
||||
.flatpickr-day.startRange,
|
||||
.flatpickr-day.endRange,
|
||||
.flatpickr-day.selected.inRange,
|
||||
.flatpickr-day.startRange.inRange,
|
||||
.flatpickr-day.endRange.inRange,
|
||||
.flatpickr-day.selected:focus,
|
||||
.flatpickr-day.startRange:focus,
|
||||
.flatpickr-day.endRange:focus,
|
||||
.flatpickr-day.selected:hover,
|
||||
.flatpickr-day.startRange:hover,
|
||||
.flatpickr-day.endRange:hover,
|
||||
.flatpickr-day.selected.prevMonthDay,
|
||||
.flatpickr-day.startRange.prevMonthDay,
|
||||
.flatpickr-day.endRange.prevMonthDay,
|
||||
.flatpickr-day.selected.nextMonthDay,
|
||||
.flatpickr-day.startRange.nextMonthDay,
|
||||
.flatpickr-day.endRange.nextMonthDay {
|
||||
background: #465fff;
|
||||
@apply !border-brand-500 !bg-brand-500 hover:!border-brand-500 hover:!bg-brand-500;
|
||||
}
|
||||
.flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n + 1)),
|
||||
.flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n + 1)),
|
||||
.flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n + 1)) {
|
||||
box-shadow: -10px 0 0 #465fff;
|
||||
}
|
||||
|
||||
.flatpickr-months .flatpickr-prev-month svg,
|
||||
.flatpickr-months .flatpickr-next-month svg,
|
||||
.flatpickr-months .flatpickr-prev-month,
|
||||
.flatpickr-months .flatpickr-next-month {
|
||||
@apply hover:!fill-none;
|
||||
}
|
||||
.flatpickr-months .flatpickr-prev-month:hover svg,
|
||||
.flatpickr-months .flatpickr-next-month:hover svg {
|
||||
fill: none !important;
|
||||
}
|
||||
|
||||
.flatpickr-calendar.static {
|
||||
@apply right-0;
|
||||
}
|
||||
.flatpickr-calendar.hasTime {
|
||||
width: 300px !important;
|
||||
}
|
||||
.flatpickr-calendar.hasTime .flatpickr-time {
|
||||
border: transparent !important;
|
||||
}
|
||||
.fc .fc-view-harness {
|
||||
@apply max-w-full overflow-x-auto custom-scrollbar;
|
||||
}
|
||||
.fc-dayGridMonth-view.fc-view.fc-daygrid {
|
||||
@apply min-w-[718px];
|
||||
}
|
||||
.fc .fc-scrollgrid-section > * {
|
||||
border-right-width: 0;
|
||||
border-bottom-width: 0;
|
||||
}
|
||||
.fc .fc-scrollgrid {
|
||||
border-left-width: 0;
|
||||
}
|
||||
.fc .fc-toolbar.fc-header-toolbar {
|
||||
@apply flex-col gap-4 px-6 pt-6 sm:flex-row;
|
||||
}
|
||||
.fc-button-group {
|
||||
@apply gap-2;
|
||||
}
|
||||
.fc-button-group .fc-button {
|
||||
@apply flex h-10 w-10 items-center justify-center !rounded-lg border border-gray-200 bg-transparent hover:border-gray-200 hover:bg-gray-50 focus:shadow-none active:!border-gray-200 active:!bg-transparent active:!shadow-none dark:border-gray-800 dark:hover:border-gray-800 dark:hover:bg-gray-900 dark:active:!border-gray-800;
|
||||
}
|
||||
|
||||
.fc-button-group .fc-button.fc-prev-button:before {
|
||||
@apply inline-block mt-1;
|
||||
content: url("data:image/svg+xml,%3Csvg width='25' height='24' viewBox='0 0 25 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M16.0068 6L9.75684 12.25L16.0068 18.5' stroke='%23344054' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A");
|
||||
}
|
||||
.fc-button-group .fc-button.fc-next-button:before {
|
||||
@apply inline-block mt-1;
|
||||
content: url("data:image/svg+xml,%3Csvg width='25' height='24' viewBox='0 0 25 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9.50684 19L15.7568 12.75L9.50684 6.5' stroke='%23344054' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A");
|
||||
}
|
||||
.dark .fc-button-group .fc-button.fc-prev-button:before {
|
||||
content: url("data:image/svg+xml,%3Csvg width='25' height='24' viewBox='0 0 25 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M16.0068 6L9.75684 12.25L16.0068 18.5' stroke='%2398A2B3' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A");
|
||||
}
|
||||
.dark .fc-button-group .fc-button.fc-next-button:before {
|
||||
content: url("data:image/svg+xml,%3Csvg width='25' height='24' viewBox='0 0 25 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9.50684 19L15.7568 12.75L9.50684 6.5' stroke='%2398A2B3' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A");
|
||||
}
|
||||
.fc-button-group .fc-button .fc-icon {
|
||||
@apply hidden;
|
||||
}
|
||||
.fc-addEventButton-button {
|
||||
@apply !rounded-lg !border-0 !bg-brand-500 !px-4 !py-2.5 !text-sm !font-medium hover:!bg-brand-600 focus:!shadow-none;
|
||||
}
|
||||
.fc-toolbar-title {
|
||||
@apply !text-lg !font-medium text-gray-800 dark:text-white/90;
|
||||
}
|
||||
.fc-header-toolbar.fc-toolbar .fc-toolbar-chunk:last-child {
|
||||
@apply rounded-lg bg-gray-100 p-0.5 dark:bg-gray-900;
|
||||
}
|
||||
.fc-header-toolbar.fc-toolbar .fc-toolbar-chunk:last-child .fc-button {
|
||||
@apply !h-auto !w-auto rounded-md !border-0 bg-transparent !px-5 !py-2 text-sm font-medium text-gray-500 hover:text-gray-700 focus:!shadow-none dark:text-gray-400;
|
||||
}
|
||||
.fc-header-toolbar.fc-toolbar .fc-toolbar-chunk:last-child .fc-button.fc-button-active {
|
||||
@apply text-gray-900 bg-white dark:bg-gray-800 dark:text-white;
|
||||
}
|
||||
.fc-theme-standard th {
|
||||
@apply !border-x-0 border-t !border-gray-200 bg-gray-50 !text-left dark:!border-gray-800 dark:bg-gray-900;
|
||||
}
|
||||
.fc-theme-standard td,
|
||||
.fc-theme-standard .fc-scrollgrid {
|
||||
@apply !border-gray-200 dark:!border-gray-800;
|
||||
}
|
||||
.fc .fc-col-header-cell-cushion {
|
||||
@apply !px-5 !py-4 text-sm font-medium uppercase text-gray-400;
|
||||
}
|
||||
.fc .fc-daygrid-day.fc-day-today {
|
||||
@apply bg-transparent;
|
||||
}
|
||||
.fc .fc-daygrid-day {
|
||||
@apply p-2;
|
||||
}
|
||||
.fc .fc-daygrid-day.fc-day-today .fc-scrollgrid-sync-inner {
|
||||
@apply rounded-sm bg-gray-100 dark:bg-white/[0.03];
|
||||
}
|
||||
.fc .fc-daygrid-day-number {
|
||||
@apply !p-3 text-sm font-medium text-gray-700 dark:text-gray-400;
|
||||
}
|
||||
.fc .fc-daygrid-day-top {
|
||||
@apply flex-row!;
|
||||
}
|
||||
.fc .fc-day-other .fc-daygrid-day-top {
|
||||
opacity: 1;
|
||||
}
|
||||
.fc .fc-day-other .fc-daygrid-day-top .fc-daygrid-day-number {
|
||||
@apply text-gray-400 dark:text-white/30;
|
||||
}
|
||||
.event-fc-color {
|
||||
@apply rounded-lg py-2.5 pl-4 pr-3;
|
||||
}
|
||||
.event-fc-color .fc-event-title {
|
||||
@apply p-0 text-sm font-normal text-gray-700;
|
||||
}
|
||||
.fc-daygrid-event-dot {
|
||||
@apply w-1 h-5 ml-0 mr-3 border-none rounded-sm;
|
||||
}
|
||||
.fc-event {
|
||||
@apply focus:shadow-none;
|
||||
}
|
||||
.fc-daygrid-event.fc-event-start {
|
||||
@apply !ml-3;
|
||||
}
|
||||
.event-fc-color.fc-bg-success {
|
||||
@apply border-success-50 bg-success-50;
|
||||
}
|
||||
.event-fc-color.fc-bg-danger {
|
||||
@apply border-error-50 bg-error-50;
|
||||
}
|
||||
.event-fc-color.fc-bg-primary {
|
||||
@apply border-brand-50 bg-brand-50;
|
||||
}
|
||||
.event-fc-color.fc-bg-warning {
|
||||
@apply border-orange-50 bg-orange-50;
|
||||
}
|
||||
.event-fc-color.fc-bg-success .fc-daygrid-event-dot {
|
||||
@apply bg-success-500;
|
||||
}
|
||||
.event-fc-color.fc-bg-danger .fc-daygrid-event-dot {
|
||||
@apply bg-error-500;
|
||||
}
|
||||
.event-fc-color.fc-bg-primary .fc-daygrid-event-dot {
|
||||
@apply bg-brand-500;
|
||||
}
|
||||
.event-fc-color.fc-bg-warning .fc-daygrid-event-dot {
|
||||
@apply bg-orange-500;
|
||||
}
|
||||
.fc-direction-ltr .fc-timegrid-slot-label-frame {
|
||||
@apply px-3 py-1.5 text-left text-sm font-medium text-gray-500 dark:text-gray-400;
|
||||
}
|
||||
.fc .fc-timegrid-axis-cushion {
|
||||
@apply text-sm font-medium text-gray-500 dark:text-gray-400;
|
||||
}
|
||||
|
||||
.input-date-icon::-webkit-inner-spin-button,
|
||||
.input-date-icon::-webkit-calendar-picker-indicator {
|
||||
opacity: 0;
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
|
||||
.swiper-button-prev svg,
|
||||
.swiper-button-next svg {
|
||||
@apply !h-auto w-auto!;
|
||||
}
|
||||
|
||||
.carouselTwo .swiper-button-next:after,
|
||||
.carouselTwo .swiper-button-prev:after,
|
||||
.carouselFour .swiper-button-next:after,
|
||||
.carouselFour .swiper-button-prev:after {
|
||||
@apply hidden;
|
||||
}
|
||||
.carouselTwo .swiper-button-next.swiper-button-disabled,
|
||||
.carouselTwo .swiper-button-prev.swiper-button-disabled,
|
||||
.carouselFour .swiper-button-next.swiper-button-disabled,
|
||||
.carouselFour .swiper-button-prev.swiper-button-disabled {
|
||||
@apply bg-white/60 opacity-100!;
|
||||
}
|
||||
.carouselTwo .swiper-button-next,
|
||||
.carouselTwo .swiper-button-prev,
|
||||
.carouselFour .swiper-button-next,
|
||||
.carouselFour .swiper-button-prev {
|
||||
@apply h-10 w-10 rounded-full border-[0.5px] border-white/10 bg-white/90 !text-gray-700 shadow-slider-navigation backdrop-blur-[10px];
|
||||
}
|
||||
|
||||
.carouselTwo .swiper-button-prev,
|
||||
.carouselFour .swiper-button-prev {
|
||||
@apply !left-3 sm:!left-4;
|
||||
}
|
||||
|
||||
.carouselTwo .swiper-button-next,
|
||||
.carouselFour .swiper-button-next {
|
||||
@apply !right-3 sm:!right-4;
|
||||
}
|
||||
|
||||
.carouselThree .swiper-pagination,
|
||||
.carouselFour .swiper-pagination {
|
||||
@apply !bottom-3 !left-1/2 inline-flex !w-auto -translate-x-1/2 items-center gap-1.5 rounded-[40px] border-[0.5px] border-white/10 bg-white/60 px-2 py-1.5 shadow-slider-navigation backdrop-blur-[10px] sm:!bottom-5;
|
||||
}
|
||||
|
||||
.carouselThree .swiper-pagination-bullet,
|
||||
.carouselFour .swiper-pagination-bullet {
|
||||
@apply !m-0 h-2.5 w-2.5 bg-white opacity-100 shadow-theme-xs duration-200 ease-in-out;
|
||||
}
|
||||
|
||||
.carouselThree .swiper-pagination-bullet-active,
|
||||
.carouselFour .swiper-pagination-bullet-active {
|
||||
@apply w-6.5 rounded-xl;
|
||||
}
|
||||
|
||||
.form-check-input:checked ~ span {
|
||||
@apply border-[6px] border-brand-500 dark:border-brand-500;
|
||||
}
|
||||
|
||||
.taskCheckbox:checked ~ .box span {
|
||||
@apply opacity-100;
|
||||
}
|
||||
.taskCheckbox:checked ~ p {
|
||||
@apply text-gray-400 line-through;
|
||||
}
|
||||
.taskCheckbox:checked ~ .box {
|
||||
@apply border-brand-500 bg-brand-500 dark:border-brand-500;
|
||||
}
|
||||
|
||||
.task {
|
||||
transition: all 0.2s ease; /* Smooth transition for visual effects */
|
||||
}
|
||||
|
||||
.task.is-dragging {
|
||||
border-radius: 0.75rem;
|
||||
box-shadow:
|
||||
0px 1px 3px 0px rgba(16, 24, 40, 0.1),
|
||||
0px 1px 2px 0px rgba(16, 24, 40, 0.06);
|
||||
opacity: 0.8;
|
||||
cursor: grabbing; /* Changes the cursor to indicate dragging */
|
||||
}
|
||||
|
||||
|
||||
.custom-calendar .fc-h-event {
|
||||
background-color: #0000;
|
||||
border: none;
|
||||
color: black;
|
||||
}
|
||||
|
||||
.simplebar-scrollbar:before {
|
||||
@apply !bg-gray-200 !rounded-full dark:!bg-gray-700 !opacity-100;
|
||||
}
|
||||
|
||||
.dark .simplebar-scrollbar::before {
|
||||
@apply !bg-gray-700;
|
||||
}
|
||||
|
||||
.simplebar-scrollbar.simplebar-visible:before {
|
||||
@apply opacity-100;
|
||||
}
|
||||
|
||||
.social-button {
|
||||
@apply flex h-11 w-11 items-center justify-center gap-2 rounded-full border border-gray-300 bg-white text-sm font-medium text-gray-700 shadow-theme-xs hover:bg-gray-50 hover:text-gray-800 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400 dark:hover:bg-white/[0.03] dark:hover:text-gray-200;
|
||||
}
|
||||
|
||||
.edit-button {
|
||||
@apply flex w-full items-center justify-center gap-2 rounded-full border border-gray-300 bg-white px-4 py-3 text-sm font-medium text-gray-700 shadow-theme-xs hover:bg-gray-50 hover:text-gray-800 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400 dark:hover:bg-white/[0.03] dark:hover:text-gray-200 lg:inline-flex lg:w-auto;
|
||||
}
|
||||
|
||||
/* Code Editor */
|
||||
code[class*='language-'],
|
||||
pre[class*='language-'] {
|
||||
text-shadow: none;
|
||||
color: #344054;
|
||||
overflow: hidden !important;
|
||||
font-size: 14px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
white-space: pre-wrap;
|
||||
word-wrap: break-word;
|
||||
text-align: justify;
|
||||
}
|
||||
|
||||
.dark code[class*='language-'],
|
||||
.dark pre[class*='language-'] {
|
||||
text-shadow: none;
|
||||
color: #98a2b3;
|
||||
}
|
||||
.language-html {
|
||||
background-color: #ffffff !important;
|
||||
}
|
||||
.dark .language-html {
|
||||
background-color: #ffffff00 !important;
|
||||
}
|
||||
.token {
|
||||
text-shadow: none;
|
||||
font-size: 14px;
|
||||
}
|
||||
.token.doctype-tag,
|
||||
.token.name {
|
||||
color: #018001;
|
||||
}
|
||||
.token.tag {
|
||||
color: #267f99;
|
||||
}
|
||||
.token.selector {
|
||||
color: #267f99;
|
||||
}
|
||||
.token.property {
|
||||
color: #0070c1;
|
||||
}
|
||||
.token.language-css {
|
||||
color: #1b00ff;
|
||||
}
|
||||
.token.attr-name {
|
||||
color: #98a2b3;
|
||||
}
|
||||
.token.attr-value {
|
||||
color: #a31615;
|
||||
}
|
||||
.token.punctuation {
|
||||
color: #344054;
|
||||
}
|
||||
.dark .token.punctuation {
|
||||
color: #98a2b3;
|
||||
}
|
||||
.custom-datepicker .flatpickr-calendar.static.open {
|
||||
left: 0;
|
||||
right: auto;
|
||||
}
|
||||
|
||||
.swiper-button-prev, .swiper-button-next {
|
||||
svg {
|
||||
fill: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 525px) {
|
||||
.flatpickr-calendar.static {
|
||||
margin-right: -60px !important;
|
||||
}
|
||||
}
|
||||
@@ -1 +1,51 @@
|
||||
import './bootstrap';
|
||||
import './bootstrap';
|
||||
import Alpine from 'alpinejs';
|
||||
import ApexCharts from 'apexcharts';
|
||||
|
||||
// flatpickr
|
||||
import flatpickr from 'flatpickr';
|
||||
import 'flatpickr/dist/flatpickr.min.css';
|
||||
// FullCalendar
|
||||
import { Calendar } from '@fullcalendar/core';
|
||||
|
||||
|
||||
|
||||
window.Alpine = Alpine;
|
||||
window.ApexCharts = ApexCharts;
|
||||
window.flatpickr = flatpickr;
|
||||
window.FullCalendar = Calendar;
|
||||
|
||||
Alpine.start();
|
||||
|
||||
// Initialize components on DOM ready
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
// Map imports
|
||||
if (document.querySelector('#mapOne')) {
|
||||
import('./components/map').then(module => module.initMap());
|
||||
}
|
||||
|
||||
// Chart imports
|
||||
if (document.querySelector('#chartOne')) {
|
||||
import('./components/chart/chart-1').then(module => module.initChartOne());
|
||||
}
|
||||
if (document.querySelector('#chartTwo')) {
|
||||
import('./components/chart/chart-2').then(module => module.initChartTwo());
|
||||
}
|
||||
if (document.querySelector('#chartThree')) {
|
||||
import('./components/chart/chart-3').then(module => module.initChartThree());
|
||||
}
|
||||
if (document.querySelector('#chartSix')) {
|
||||
import('./components/chart/chart-6').then(module => module.initChartSix());
|
||||
}
|
||||
if (document.querySelector('#chartEight')) {
|
||||
import('./components/chart/chart-8').then(module => module.initChartEight());
|
||||
}
|
||||
if (document.querySelector('#chartThirteen')) {
|
||||
import('./components/chart/chart-13').then(module => module.initChartThirteen());
|
||||
}
|
||||
|
||||
// Calendar init
|
||||
if (document.querySelector('#calendar')) {
|
||||
import('./components/calendar-init').then(module => module.calendarInit());
|
||||
}
|
||||
});
|
||||
|
||||
2
resources/js/bootstrap.js
vendored
2
resources/js/bootstrap.js
vendored
@@ -1,4 +1,4 @@
|
||||
import axios from 'axios';
|
||||
window.axios = axios;
|
||||
|
||||
window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
|
||||
window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
|
||||
|
||||
352
resources/js/components/calendar-init.js
Normal file
352
resources/js/components/calendar-init.js
Normal file
@@ -0,0 +1,352 @@
|
||||
|
||||
|
||||
import { Calendar } from "@fullcalendar/core";
|
||||
import dayGridPlugin from "@fullcalendar/daygrid";
|
||||
import listPlugin from "@fullcalendar/list";
|
||||
import timeGridPlugin from "@fullcalendar/timegrid";
|
||||
import interactionPlugin from "@fullcalendar/interaction";
|
||||
|
||||
export function calendarInit() {
|
||||
const calendarWrapper = document.querySelector("#calendar");
|
||||
|
||||
if (calendarWrapper) {
|
||||
// Calendar Date variable
|
||||
const newDate = new Date();
|
||||
const getDynamicMonth = () => {
|
||||
const month = newDate.getMonth() + 1;
|
||||
return month < 10 ? `0${month}` : `${month}`;
|
||||
};
|
||||
|
||||
// Calendar Modal Elements
|
||||
const getModalTitleEl = document.querySelector("#event-title");
|
||||
const getModalStartDateEl = document.querySelector("#event-start-date");
|
||||
const getModalEndDateEl = document.querySelector("#event-end-date");
|
||||
const getModalAddBtnEl = document.querySelector(".btn-add-event");
|
||||
const getModalUpdateBtnEl = document.querySelector(".btn-update-event");
|
||||
const getModalHeaderEl = document.querySelector("#eventModalLabel");
|
||||
|
||||
const calendarsEvents = {
|
||||
Danger: "danger",
|
||||
Success: "success",
|
||||
Primary: "primary",
|
||||
Warning: "warning",
|
||||
};
|
||||
|
||||
// Calendar Elements and options
|
||||
const calendarEl = document.querySelector("#calendar");
|
||||
|
||||
const calendarHeaderToolbar = {
|
||||
left: "prev,next addEventButton",
|
||||
center: "title",
|
||||
right: "dayGridMonth,timeGridWeek,timeGridDay",
|
||||
};
|
||||
|
||||
const calendarEventsList = [
|
||||
{
|
||||
id: "1",
|
||||
title: "Event Conf.",
|
||||
start: `${newDate.getFullYear()}-${getDynamicMonth()}-01`,
|
||||
extendedProps: { calendar: "Danger" },
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
title: "Seminar #4",
|
||||
start: `${newDate.getFullYear()}-${getDynamicMonth()}-07`,
|
||||
end: `${newDate.getFullYear()}-${getDynamicMonth()}-10`,
|
||||
extendedProps: { calendar: "Success" },
|
||||
},
|
||||
{
|
||||
id: "3",
|
||||
title: "Meeting #5",
|
||||
start: `${newDate.getFullYear()}-${getDynamicMonth()}-09T16:00:00`,
|
||||
extendedProps: { calendar: "Primary" },
|
||||
},
|
||||
{
|
||||
id: "4",
|
||||
title: "Submission #1",
|
||||
start: `${newDate.getFullYear()}-${getDynamicMonth()}-16T16:00:00`,
|
||||
extendedProps: { calendar: "Warning" },
|
||||
},
|
||||
{
|
||||
id: "5",
|
||||
title: "Seminar #6",
|
||||
start: `${newDate.getFullYear()}-${getDynamicMonth()}-11`,
|
||||
end: `${newDate.getFullYear()}-${getDynamicMonth()}-13`,
|
||||
extendedProps: { calendar: "Danger" },
|
||||
},
|
||||
];
|
||||
|
||||
// Modal Functions
|
||||
const openModal = () => {
|
||||
const modal = document.getElementById("eventModal");
|
||||
if (modal) {
|
||||
modal.style.display = "flex";
|
||||
document.body.style.overflow = "hidden"; // Prevent background scroll
|
||||
}
|
||||
};
|
||||
|
||||
const closeModal = () => {
|
||||
const modal = document.getElementById("eventModal");
|
||||
if (modal) {
|
||||
modal.style.display = "none";
|
||||
document.body.style.overflow = ""; // Restore scroll
|
||||
}
|
||||
resetModalFields();
|
||||
};
|
||||
|
||||
// Reset modal fields
|
||||
function resetModalFields() {
|
||||
if (getModalTitleEl) getModalTitleEl.value = "";
|
||||
if (getModalStartDateEl) getModalStartDateEl.value = "";
|
||||
if (getModalEndDateEl) getModalEndDateEl.value = "";
|
||||
|
||||
const getModalIfCheckedRadioBtnEl = document.querySelector(
|
||||
'input[name="event-level"]:checked'
|
||||
);
|
||||
if (getModalIfCheckedRadioBtnEl) {
|
||||
getModalIfCheckedRadioBtnEl.checked = false;
|
||||
}
|
||||
}
|
||||
|
||||
// Calendar Select function (when user clicks/drags on calendar)
|
||||
const calendarSelect = (info) => {
|
||||
resetModalFields();
|
||||
|
||||
// Update modal header
|
||||
if (getModalHeaderEl) {
|
||||
getModalHeaderEl.textContent = "Add Event";
|
||||
}
|
||||
|
||||
// Show Add button, hide Update button
|
||||
if (getModalAddBtnEl) getModalAddBtnEl.style.display = "flex";
|
||||
if (getModalUpdateBtnEl) getModalUpdateBtnEl.style.display = "none";
|
||||
|
||||
// Set dates from selection
|
||||
if (getModalStartDateEl) getModalStartDateEl.value = info.startStr;
|
||||
if (getModalEndDateEl) {
|
||||
getModalEndDateEl.value = info.endStr || info.startStr;
|
||||
}
|
||||
|
||||
openModal();
|
||||
};
|
||||
|
||||
// Calendar AddEvent button click
|
||||
const calendarAddEvent = () => {
|
||||
resetModalFields();
|
||||
|
||||
// Update modal header
|
||||
if (getModalHeaderEl) {
|
||||
getModalHeaderEl.textContent = "Add Event";
|
||||
}
|
||||
|
||||
// Show Add button, hide Update button
|
||||
if (getModalAddBtnEl) getModalAddBtnEl.style.display = "flex";
|
||||
if (getModalUpdateBtnEl) getModalUpdateBtnEl.style.display = "none";
|
||||
|
||||
// Set default start date to today
|
||||
const currentDate = new Date();
|
||||
const yyyy = currentDate.getFullYear();
|
||||
const mm = String(currentDate.getMonth() + 1).padStart(2, "0");
|
||||
const dd = String(currentDate.getDate()).padStart(2, "0");
|
||||
const combineDate = `${yyyy}-${mm}-${dd}`;
|
||||
|
||||
if (getModalStartDateEl) getModalStartDateEl.value = combineDate;
|
||||
|
||||
openModal();
|
||||
};
|
||||
|
||||
// Calendar Event Click function (when user clicks existing event)
|
||||
const calendarEventClick = (info) => {
|
||||
const eventObj = info.event;
|
||||
|
||||
if (eventObj.url) {
|
||||
window.open(eventObj.url);
|
||||
info.jsEvent.preventDefault();
|
||||
} else {
|
||||
resetModalFields();
|
||||
|
||||
// Update modal header
|
||||
if (getModalHeaderEl) {
|
||||
getModalHeaderEl.textContent = "Edit Event";
|
||||
}
|
||||
|
||||
// Get event details
|
||||
const getModalEventId = eventObj.id;
|
||||
const getModalEventLevel = eventObj.extendedProps.calendar;
|
||||
|
||||
// Set form values
|
||||
if (getModalTitleEl) getModalTitleEl.value = eventObj.title;
|
||||
if (getModalStartDateEl) {
|
||||
getModalStartDateEl.value = eventObj.startStr.split("T")[0];
|
||||
}
|
||||
if (getModalEndDateEl) {
|
||||
getModalEndDateEl.value = eventObj.endStr
|
||||
? eventObj.endStr.split("T")[0]
|
||||
: "";
|
||||
}
|
||||
|
||||
// Check the correct radio button
|
||||
const getModalCheckedRadioBtnEl = document.querySelector(
|
||||
`input[value="${getModalEventLevel}"]`
|
||||
);
|
||||
if (getModalCheckedRadioBtnEl) {
|
||||
getModalCheckedRadioBtnEl.checked = true;
|
||||
}
|
||||
|
||||
// Store event ID for update
|
||||
if (getModalUpdateBtnEl) {
|
||||
getModalUpdateBtnEl.dataset.fcEventPublicId = getModalEventId;
|
||||
}
|
||||
|
||||
// Hide Add button, show Update button
|
||||
if (getModalAddBtnEl) getModalAddBtnEl.style.display = "none";
|
||||
if (getModalUpdateBtnEl) getModalUpdateBtnEl.style.display = "flex";
|
||||
|
||||
openModal();
|
||||
}
|
||||
};
|
||||
|
||||
// Initialize Calendar
|
||||
const calendar = new Calendar(calendarEl, {
|
||||
plugins: [dayGridPlugin, timeGridPlugin, listPlugin, interactionPlugin],
|
||||
selectable: true,
|
||||
initialView: "dayGridMonth",
|
||||
initialDate: `${newDate.getFullYear()}-${getDynamicMonth()}-07`,
|
||||
headerToolbar: calendarHeaderToolbar,
|
||||
events: calendarEventsList,
|
||||
select: calendarSelect,
|
||||
eventClick: calendarEventClick,
|
||||
displayEventTime: false, // Hide time display
|
||||
customButtons: {
|
||||
addEventButton: {
|
||||
text: "Add Event +",
|
||||
click: calendarAddEvent,
|
||||
},
|
||||
},
|
||||
// eventClassNames({ event: calendarEvent }) {
|
||||
// const getColorValue =
|
||||
// calendarsEvents[calendarEvent._def.extendedProps.calendar];
|
||||
// return [`event-fc-color`, `fc-bg-${getColorValue}`];
|
||||
// },
|
||||
// Optional: Custom event content without time
|
||||
eventContent(eventInfo) {
|
||||
const colorClass = `fc-bg-${eventInfo.event.extendedProps.calendar.toLowerCase()}`
|
||||
return {
|
||||
html: `
|
||||
<div class="event-fc-color flex fc-event-main ${colorClass} p-1 rounded-sm">
|
||||
<div class="fc-daygrid-event-dot"></div>
|
||||
<div class="fc-event-time">${eventInfo.timeText}</div>
|
||||
<div class="fc-event-title">${eventInfo.event.title}</div>
|
||||
</div>
|
||||
`,
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
// Update Calendar Event
|
||||
// if (getModalUpdateBtnEl) {
|
||||
// getModalUpdateBtnEl.addEventListener("click", () => {
|
||||
// const getPublicID = getModalUpdateBtnEl.dataset.fcEventPublicId;
|
||||
// const getTitleUpdatedValue = getModalTitleEl.value;
|
||||
// const setModalStartDateValue = getModalStartDateEl.value;
|
||||
// const setModalEndDateValue = getModalEndDateEl.value;
|
||||
// const getEvent = calendar.getEventById(getPublicID);
|
||||
// const getModalUpdatedCheckedRadioBtnEl = document.querySelector(
|
||||
// 'input[name="event-level"]:checked'
|
||||
// );
|
||||
|
||||
// const getModalUpdatedCheckedRadioBtnValue =
|
||||
// getModalUpdatedCheckedRadioBtnEl
|
||||
// ? getModalUpdatedCheckedRadioBtnEl.value
|
||||
// : "";
|
||||
|
||||
// if (getEvent) {
|
||||
// getEvent.setProp("title", getTitleUpdatedValue);
|
||||
// getEvent.setDates(setModalStartDateValue, setModalEndDateValue);
|
||||
// getEvent.setExtendedProp("calendar", getModalUpdatedCheckedRadioBtnValue);
|
||||
// }
|
||||
|
||||
// closeModal();
|
||||
// });
|
||||
// }
|
||||
if (getModalUpdateBtnEl) {
|
||||
getModalUpdateBtnEl.addEventListener("click", () => {
|
||||
const getPublicID = getModalUpdateBtnEl.dataset.fcEventPublicId;
|
||||
const getTitleUpdatedValue = getModalTitleEl.value;
|
||||
const setModalStartDateValue = getModalStartDateEl.value;
|
||||
const setModalEndDateValue = getModalEndDateEl.value;
|
||||
const getEvent = calendar.getEventById(getPublicID);
|
||||
const getModalUpdatedCheckedRadioBtnEl = document.querySelector(
|
||||
'input[name="event-level"]:checked'
|
||||
);
|
||||
|
||||
const getModalUpdatedCheckedRadioBtnValue =
|
||||
getModalUpdatedCheckedRadioBtnEl
|
||||
? getModalUpdatedCheckedRadioBtnEl.value
|
||||
: "";
|
||||
|
||||
if (getEvent) {
|
||||
// Remove the old event
|
||||
getEvent.remove();
|
||||
|
||||
// Add updated event with all properties
|
||||
calendar.addEvent({
|
||||
id: getPublicID,
|
||||
title: getTitleUpdatedValue,
|
||||
start: setModalStartDateValue,
|
||||
end: setModalEndDateValue,
|
||||
allDay: true,
|
||||
extendedProps: { calendar: getModalUpdatedCheckedRadioBtnValue },
|
||||
});
|
||||
}
|
||||
|
||||
closeModal();
|
||||
});
|
||||
}
|
||||
|
||||
// Add Calendar Event
|
||||
if (getModalAddBtnEl) {
|
||||
getModalAddBtnEl.addEventListener("click", () => {
|
||||
const getModalCheckedRadioBtnEl = document.querySelector(
|
||||
'input[name="event-level"]:checked'
|
||||
);
|
||||
|
||||
const getTitleValue = getModalTitleEl.value;
|
||||
const setModalStartDateValue = getModalStartDateEl.value;
|
||||
const setModalEndDateValue = getModalEndDateEl.value;
|
||||
const getModalCheckedRadioBtnValue = getModalCheckedRadioBtnEl
|
||||
? getModalCheckedRadioBtnEl.value
|
||||
: "";
|
||||
|
||||
calendar.addEvent({
|
||||
id: Date.now().toString(),
|
||||
title: getTitleValue,
|
||||
start: setModalStartDateValue,
|
||||
end: setModalEndDateValue,
|
||||
allDay: true,
|
||||
extendedProps: { calendar: getModalCheckedRadioBtnValue },
|
||||
});
|
||||
|
||||
closeModal();
|
||||
});
|
||||
}
|
||||
|
||||
// Render Calendar
|
||||
calendar.render();
|
||||
|
||||
// Close modal event listeners
|
||||
document.querySelectorAll(".modal-close-btn").forEach((btn) => {
|
||||
btn.addEventListener("click", closeModal);
|
||||
});
|
||||
|
||||
// Close when clicking outside modal
|
||||
window.addEventListener("click", (event) => {
|
||||
const modal = document.getElementById("eventModal");
|
||||
if (event.target === modal) {
|
||||
closeModal();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export default calendarInit;
|
||||
100
resources/js/components/chart/chart-1.js
Normal file
100
resources/js/components/chart/chart-1.js
Normal file
@@ -0,0 +1,100 @@
|
||||
|
||||
|
||||
export const initChartOne = () => {
|
||||
const chartElement = document.querySelector('#chartOne');
|
||||
if (!chartElement) return;
|
||||
|
||||
const chartOneOptions = {
|
||||
series: [{
|
||||
name: "Sales",
|
||||
data: [168, 385, 201, 298, 187, 195, 291, 110, 215, 390, 280, 112],
|
||||
},],
|
||||
colors: ["#465fff"],
|
||||
chart: {
|
||||
fontFamily: "Outfit, sans-serif",
|
||||
type: "bar",
|
||||
height: 180,
|
||||
toolbar: {
|
||||
show: false,
|
||||
},
|
||||
},
|
||||
plotOptions: {
|
||||
bar: {
|
||||
horizontal: false,
|
||||
columnWidth: "39%",
|
||||
borderRadius: 5,
|
||||
borderRadiusApplication: "end",
|
||||
},
|
||||
},
|
||||
dataLabels: {
|
||||
enabled: false,
|
||||
},
|
||||
stroke: {
|
||||
show: true,
|
||||
width: 4,
|
||||
colors: ["transparent"],
|
||||
},
|
||||
xaxis: {
|
||||
categories: [
|
||||
"Jan",
|
||||
"Feb",
|
||||
"Mar",
|
||||
"Apr",
|
||||
"May",
|
||||
"Jun",
|
||||
"Jul",
|
||||
"Aug",
|
||||
"Sep",
|
||||
"Oct",
|
||||
"Nov",
|
||||
"Dec",
|
||||
],
|
||||
axisBorder: {
|
||||
show: false,
|
||||
},
|
||||
axisTicks: {
|
||||
show: false,
|
||||
},
|
||||
},
|
||||
legend: {
|
||||
show: true,
|
||||
position: "top",
|
||||
horizontalAlign: "left",
|
||||
fontFamily: "Outfit",
|
||||
markers: {
|
||||
radius: 99,
|
||||
},
|
||||
},
|
||||
yaxis: {
|
||||
title: false,
|
||||
},
|
||||
grid: {
|
||||
yaxis: {
|
||||
lines: {
|
||||
show: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
fill: {
|
||||
opacity: 1,
|
||||
},
|
||||
|
||||
tooltip: {
|
||||
x: {
|
||||
show: false,
|
||||
},
|
||||
y: {
|
||||
formatter: function (val) {
|
||||
return val;
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
const chart = new ApexCharts(chartElement, chartOneOptions);
|
||||
chart.render();
|
||||
|
||||
return chart;
|
||||
};
|
||||
|
||||
export default initChartOne;
|
||||
332
resources/js/components/chart/chart-13.js
Normal file
332
resources/js/components/chart/chart-13.js
Normal file
@@ -0,0 +1,332 @@
|
||||
|
||||
export function initChartThirteen() {
|
||||
const chartThirteenEl = document.querySelector("#chartThirteen");
|
||||
if (chartThirteenEl) {
|
||||
const data = [
|
||||
[1746153600000, 30.95],
|
||||
[1746240000000, 31.34],
|
||||
[1746326400000, 31.18],
|
||||
[1746412800000, 31.05],
|
||||
[1746672000000, 31.0],
|
||||
[1746758400000, 30.95],
|
||||
[1746844800000, 31.24],
|
||||
[1746931200000, 31.29],
|
||||
[1747017600000, 31.85],
|
||||
[1747276800000, 31.86],
|
||||
[1747363200000, 32.28],
|
||||
[1747449600000, 32.1],
|
||||
[1747536000000, 32.65],
|
||||
[1747622400000, 32.21],
|
||||
[1747881600000, 32.35],
|
||||
[1747968000000, 32.44],
|
||||
[1748054400000, 32.46],
|
||||
[1748140800000, 32.86],
|
||||
[1748227200000, 32.75],
|
||||
[1748572800000, 32.54],
|
||||
[1748659200000, 32.33],
|
||||
[1748745600000, 32.97],
|
||||
[1748832000000, 33.41],
|
||||
[1749091200000, 33.27],
|
||||
[1749177600000, 33.27],
|
||||
[1749264000000, 32.89],
|
||||
[1749350400000, 33.1],
|
||||
[1749436800000, 33.73],
|
||||
[1749696000000, 33.22],
|
||||
[1749782400000, 31.99],
|
||||
[1749868800000, 32.41],
|
||||
[1749955200000, 33.05],
|
||||
[1750041600000, 33.64],
|
||||
[1750300800000, 33.56],
|
||||
[1750387200000, 34.22],
|
||||
[1750473600000, 33.77],
|
||||
[1750560000000, 34.17],
|
||||
[1750646400000, 33.82],
|
||||
[1750905600000, 34.51],
|
||||
[1750992000000, 33.16],
|
||||
[1751078400000, 33.56],
|
||||
[1751164800000, 33.71],
|
||||
[1751251200000, 33.81],
|
||||
[1751506800000, 34.4],
|
||||
[1751593200000, 34.63],
|
||||
[1751679600000, 34.46],
|
||||
[1751766000000, 34.48],
|
||||
[1751852400000, 34.31],
|
||||
[1752111600000, 34.7],
|
||||
[1752198000000, 34.31],
|
||||
[1752284400000, 33.46],
|
||||
[1752370800000, 33.59],
|
||||
[1752716400000, 33.22],
|
||||
[1752802800000, 32.61],
|
||||
[1752889200000, 33.01],
|
||||
[1752975600000, 33.55],
|
||||
[1753062000000, 33.18],
|
||||
[1753321200000, 32.84],
|
||||
[1753407600000, 33.84],
|
||||
[1753494000000, 33.39],
|
||||
[1753580400000, 32.91],
|
||||
[1753666800000, 33.06],
|
||||
[1753926000000, 32.62],
|
||||
[1754012400000, 32.4],
|
||||
[1754098800000, 33.13],
|
||||
[1754185200000, 33.26],
|
||||
[1754271600000, 33.58],
|
||||
[1754530800000, 33.55],
|
||||
[1754617200000, 33.77],
|
||||
[1754703600000, 33.76],
|
||||
[1754790000000, 33.32],
|
||||
[1754876400000, 32.61],
|
||||
[1755135600000, 32.52],
|
||||
[1755222000000, 32.67],
|
||||
[1755308400000, 32.52],
|
||||
[1755394800000, 31.92],
|
||||
[1755481200000, 32.2],
|
||||
[1755740400000, 32.23],
|
||||
[1755826800000, 32.33],
|
||||
[1755913200000, 32.36],
|
||||
[1755999600000, 32.01],
|
||||
[1756086000000, 31.31],
|
||||
[1756345200000, 32.01],
|
||||
[1756431600000, 32.01],
|
||||
[1756518000000, 32.18],
|
||||
[1756604400000, 31.54],
|
||||
[1756690800000, 31.6],
|
||||
[1757036400000, 32.05],
|
||||
[1757122800000, 31.29],
|
||||
[1757209200000, 31.05],
|
||||
[1757295600000, 29.82],
|
||||
[1757554800000, 30.31],
|
||||
[1757641200000, 30.7],
|
||||
[1757727600000, 31.69],
|
||||
[1757814000000, 31.32],
|
||||
[1757900400000, 31.65],
|
||||
[1758159600000, 31.13],
|
||||
[1758246000000, 31.77],
|
||||
[1758332400000, 31.79],
|
||||
[1758418800000, 31.67],
|
||||
[1758505200000, 32.39],
|
||||
[1758764400000, 32.63],
|
||||
[1758850800000, 32.89],
|
||||
[1758937200000, 31.99],
|
||||
[1759023600000, 31.23],
|
||||
[1759110000000, 31.57],
|
||||
[1759369200000, 30.84],
|
||||
[1759455600000, 31.07],
|
||||
[1759542000000, 31.41],
|
||||
[1759628400000, 31.17],
|
||||
[1759714800000, 32.37],
|
||||
[1759974000000, 32.19],
|
||||
[1760060400000, 32.51],
|
||||
[1760233200000, 32.53],
|
||||
[1760319600000, 31.37],
|
||||
[1760578800000, 30.43],
|
||||
[1760665200000, 30.44],
|
||||
[1760751600000, 30.2],
|
||||
[1760838000000, 30.14],
|
||||
[1760924400000, 30.65],
|
||||
[1761183600000, 30.4],
|
||||
[1761270000000, 30.65],
|
||||
[1761356400000, 31.43],
|
||||
[1761442800000, 31.89],
|
||||
[1761529200000, 31.38],
|
||||
[1761788400000, 30.64],
|
||||
[1761874800000, 30.02],
|
||||
[1761961200000, 30.33],
|
||||
[1762047600000, 30.95],
|
||||
[1762134000000, 31.89],
|
||||
[1762393200000, 31.01],
|
||||
[1762479600000, 30.88],
|
||||
[1762566000000, 30.69],
|
||||
[1762652400000, 30.58],
|
||||
[1762738800000, 32.02],
|
||||
[1762998000000, 32.14],
|
||||
[1763084400000, 32.37],
|
||||
[1763170800000, 32.51],
|
||||
[1763257200000, 32.65],
|
||||
[1763343600000, 32.64],
|
||||
[1763602800000, 32.27],
|
||||
[1763689200000, 32.1],
|
||||
[1763775600000, 32.91],
|
||||
[1763862000000, 33.65],
|
||||
[1763948400000, 33.8],
|
||||
[1764207600000, 33.92],
|
||||
[1764294000000, 33.75],
|
||||
[1764380400000, 33.84],
|
||||
[1764466800000, 33.5],
|
||||
[1764553200000, 32.26],
|
||||
[1764812400000, 32.32],
|
||||
[1764898800000, 32.06],
|
||||
[1764985200000, 31.96],
|
||||
[1765071600000, 31.46],
|
||||
[1765158000000, 31.27],
|
||||
[1765503600000, 31.43],
|
||||
[1765590000000, 32.26],
|
||||
[1765676400000, 32.79],
|
||||
[1765762800000, 32.46],
|
||||
[1766022000000, 32.13],
|
||||
[1766108400000, 32.43],
|
||||
[1766194800000, 32.42],
|
||||
[1766281200000, 32.81],
|
||||
[1766367600000, 33.34],
|
||||
[1766626800000, 33.41],
|
||||
[1766713200000, 32.57],
|
||||
[1766799600000, 33.12],
|
||||
[1766886000000, 34.53],
|
||||
[1766972400000, 33.83],
|
||||
[1767231600000, 33.41],
|
||||
[1767318000000, 32.9],
|
||||
[1767404400000, 32.53],
|
||||
[1767490800000, 32.8],
|
||||
[1767577200000, 32.44],
|
||||
[1767836400000, 32.62],
|
||||
[1767922800000, 32.57],
|
||||
[1768009200000, 32.6],
|
||||
[1768095600000, 32.68],
|
||||
[1768182000000, 32.47],
|
||||
[1768441200000, 32.23],
|
||||
[1768527600000, 31.68],
|
||||
[1768614000000, 31.51],
|
||||
[1768700400000, 31.78],
|
||||
[1768786800000, 31.94],
|
||||
[1769046000000, 32.33],
|
||||
[1769132400000, 33.24],
|
||||
[1769218800000, 33.44],
|
||||
[1769305200000, 33.48],
|
||||
[1769391600000, 33.24],
|
||||
[1769650800000, 33.49],
|
||||
[1769737200000, 33.31],
|
||||
[1769823600000, 33.36],
|
||||
[1769910000000, 33.4],
|
||||
[1769996400000, 34.01],
|
||||
[1770432000000, 34.02],
|
||||
[1770518400000, 34.36],
|
||||
[1770604800000, 34.39],
|
||||
[1770864000000, 34.24],
|
||||
[1770950400000, 34.39],
|
||||
[1771036800000, 33.47],
|
||||
[1771123200000, 32.98],
|
||||
[1771209600000, 32.9],
|
||||
[1771468800000, 32.7],
|
||||
[1771555200000, 32.54],
|
||||
[1771641600000, 32.23],
|
||||
[1771728000000, 32.64],
|
||||
[1771814400000, 32.65],
|
||||
[1772073600000, 32.92],
|
||||
[1772160000000, 32.64],
|
||||
[1772246400000, 32.84],
|
||||
[1772419200000, 33.4],
|
||||
[1772678400000, 33.3],
|
||||
[1772764800000, 33.18],
|
||||
[1772851200000, 33.88],
|
||||
[1772937600000, 34.09],
|
||||
[1773024000000, 34.61],
|
||||
[1773283200000, 34.7],
|
||||
[1773369600000, 35.3],
|
||||
[1773456000000, 35.4],
|
||||
[1773542400000, 35.14],
|
||||
[1773628800000, 35.48],
|
||||
[1773888000000, 35.75],
|
||||
[1773974400000, 35.54],
|
||||
[1774060800000, 35.96],
|
||||
[1774147200000, 35.53],
|
||||
[1774233600000, 37.56],
|
||||
[1774492800000, 37.42],
|
||||
[1774579200000, 37.49],
|
||||
[1774665600000, 38.09],
|
||||
[1774752000000, 37.87],
|
||||
];
|
||||
|
||||
const chartOptions = {
|
||||
series: [
|
||||
{
|
||||
name: "Portfolio Performance",
|
||||
data: data,
|
||||
},
|
||||
],
|
||||
legend: {
|
||||
show: false,
|
||||
position: "top",
|
||||
horizontalAlign: "left",
|
||||
},
|
||||
colors: ["#465FFF"],
|
||||
chart: {
|
||||
fontFamily: "Outfit, sans-serif",
|
||||
height: 335,
|
||||
id: "area-datetime",
|
||||
type: "area",
|
||||
toolbar: {
|
||||
show: false,
|
||||
},
|
||||
},
|
||||
|
||||
stroke: {
|
||||
curve: "straight",
|
||||
width: ["1", "1"],
|
||||
},
|
||||
|
||||
dataLabels: {
|
||||
enabled: false,
|
||||
},
|
||||
|
||||
markers: {
|
||||
size: 0,
|
||||
},
|
||||
|
||||
labels: {
|
||||
show: false,
|
||||
position: "top",
|
||||
},
|
||||
|
||||
xaxis: {
|
||||
type: "datetime",
|
||||
tickAmount: 10,
|
||||
axisBorder: {
|
||||
show: false,
|
||||
},
|
||||
axisTicks: {
|
||||
show: false,
|
||||
},
|
||||
tooltip: false,
|
||||
},
|
||||
|
||||
tooltip: {
|
||||
x: {
|
||||
format: "dd MMM yyyy",
|
||||
},
|
||||
},
|
||||
|
||||
fill: {
|
||||
gradient: {
|
||||
enabled: true,
|
||||
opacityFrom: 0.55,
|
||||
opacityTo: 0,
|
||||
},
|
||||
},
|
||||
|
||||
grid: {
|
||||
xaxis: {
|
||||
lines: {
|
||||
show: false,
|
||||
},
|
||||
},
|
||||
yaxis: {
|
||||
lines: {
|
||||
show: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
yaxis: {
|
||||
title: {
|
||||
style: {
|
||||
fontSize: "0px",
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
const chartThirteen = new ApexCharts(chartThirteenEl, chartOptions);
|
||||
chartThirteen.render();
|
||||
return chartThirteen;
|
||||
}
|
||||
}
|
||||
|
||||
export default initChartThirteen;
|
||||
61
resources/js/components/chart/chart-2.js
Normal file
61
resources/js/components/chart/chart-2.js
Normal file
@@ -0,0 +1,61 @@
|
||||
|
||||
export const initChartTwo = () => {
|
||||
const chartElement = document.querySelector('#chartTwo');
|
||||
|
||||
if (chartElement) {
|
||||
const chartTwoOptions = {
|
||||
series: [75.55],
|
||||
colors: ["#465FFF"],
|
||||
chart: {
|
||||
fontFamily: "Outfit, sans-serif",
|
||||
type: "radialBar",
|
||||
height: 330,
|
||||
sparkline: {
|
||||
enabled: true,
|
||||
},
|
||||
},
|
||||
plotOptions: {
|
||||
radialBar: {
|
||||
startAngle: -90,
|
||||
endAngle: 90,
|
||||
hollow: {
|
||||
size: "80%",
|
||||
},
|
||||
track: {
|
||||
background: "#E4E7EC",
|
||||
strokeWidth: "100%",
|
||||
margin: 5, // margin is in pixels
|
||||
},
|
||||
dataLabels: {
|
||||
name: {
|
||||
show: false,
|
||||
},
|
||||
value: {
|
||||
fontSize: "36px",
|
||||
fontWeight: "600",
|
||||
offsetY: 60,
|
||||
color: "#1D2939",
|
||||
formatter: function (val) {
|
||||
return val + "%";
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
fill: {
|
||||
type: "solid",
|
||||
colors: ["#465FFF"],
|
||||
},
|
||||
stroke: {
|
||||
lineCap: "round",
|
||||
},
|
||||
labels: ["Progress"],
|
||||
};
|
||||
|
||||
const chart = new ApexCharts(chartElement, chartTwoOptions);
|
||||
chart.render();
|
||||
return chart;
|
||||
}
|
||||
}
|
||||
|
||||
export default initChartTwo;
|
||||
107
resources/js/components/chart/chart-3.js
Normal file
107
resources/js/components/chart/chart-3.js
Normal file
@@ -0,0 +1,107 @@
|
||||
|
||||
export const initChartThree = () => {
|
||||
const chartElement = document.querySelector('#chartThree');
|
||||
|
||||
if (chartElement) {
|
||||
const chartThreeOptions = {
|
||||
series: [{
|
||||
name: "Sales",
|
||||
data: [180, 190, 170, 160, 175, 165, 170, 205, 230, 210, 240, 235],
|
||||
},
|
||||
{
|
||||
name: "Revenue",
|
||||
data: [40, 30, 50, 40, 55, 40, 70, 100, 110, 120, 150, 140],
|
||||
},
|
||||
],
|
||||
legend: {
|
||||
show: false,
|
||||
position: "top",
|
||||
horizontalAlign: "left",
|
||||
},
|
||||
colors: ["#465FFF", "#9CB9FF"],
|
||||
chart: {
|
||||
fontFamily: "Outfit, sans-serif",
|
||||
height: 310,
|
||||
type: "area",
|
||||
toolbar: {
|
||||
show: false,
|
||||
},
|
||||
},
|
||||
fill: {
|
||||
gradient: {
|
||||
enabled: true,
|
||||
opacityFrom: 0.55,
|
||||
opacityTo: 0,
|
||||
},
|
||||
},
|
||||
stroke: {
|
||||
curve: "straight",
|
||||
width: ["2", "2"],
|
||||
},
|
||||
markers: {
|
||||
size: 0,
|
||||
},
|
||||
labels: {
|
||||
show: false,
|
||||
position: "top",
|
||||
},
|
||||
grid: {
|
||||
xaxis: {
|
||||
lines: {
|
||||
show: false,
|
||||
},
|
||||
},
|
||||
yaxis: {
|
||||
lines: {
|
||||
show: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
dataLabels: {
|
||||
enabled: false,
|
||||
},
|
||||
tooltip: {
|
||||
x: {
|
||||
format: "dd MMM yyyy",
|
||||
},
|
||||
},
|
||||
xaxis: {
|
||||
type: "category",
|
||||
categories: [
|
||||
"Jan",
|
||||
"Feb",
|
||||
"Mar",
|
||||
"Apr",
|
||||
"May",
|
||||
"Jun",
|
||||
"Jul",
|
||||
"Aug",
|
||||
"Sep",
|
||||
"Oct",
|
||||
"Nov",
|
||||
"Dec",
|
||||
],
|
||||
axisBorder: {
|
||||
show: false,
|
||||
},
|
||||
axisTicks: {
|
||||
show: false,
|
||||
},
|
||||
tooltip: false,
|
||||
},
|
||||
yaxis: {
|
||||
title: {
|
||||
style: {
|
||||
fontSize: "0px",
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
const chart = new ApexCharts(chartElement, chartThreeOptions);
|
||||
chart.render();
|
||||
return chart;
|
||||
}
|
||||
}
|
||||
|
||||
export default initChartThree;
|
||||
107
resources/js/components/chart/chart-6.js
Normal file
107
resources/js/components/chart/chart-6.js
Normal file
@@ -0,0 +1,107 @@
|
||||
|
||||
|
||||
export function initChartSix() {
|
||||
const chartSixEl = document.querySelector('#chartSix');
|
||||
if (chartSixEl) {
|
||||
const chartSixOptions = {
|
||||
series: [
|
||||
{
|
||||
name: "Direct",
|
||||
data: [44, 55, 41, 67, 22, 43, 55, 41],
|
||||
},
|
||||
{
|
||||
name: "Referral",
|
||||
data: [13, 23, 20, 8, 13, 27, 13, 23],
|
||||
},
|
||||
{
|
||||
name: "Organic Search",
|
||||
data: [11, 17, 15, 15, 21, 14, 18, 20],
|
||||
},
|
||||
{
|
||||
name: "Social",
|
||||
data: [21, 7, 25, 13, 22, 8, 18, 20],
|
||||
},
|
||||
],
|
||||
colors: ["#2a31d8", "#465fff", "#7592ff", "#c2d6ff"],
|
||||
chart: {
|
||||
fontFamily: "Outfit, sans-serif",
|
||||
type: "bar",
|
||||
stacked: true,
|
||||
height: 315,
|
||||
toolbar: {
|
||||
show: false,
|
||||
},
|
||||
zoom: {
|
||||
enabled: false,
|
||||
},
|
||||
},
|
||||
plotOptions: {
|
||||
bar: {
|
||||
horizontal: false,
|
||||
columnWidth: "39%",
|
||||
borderRadius: 10,
|
||||
borderRadiusApplication: "end",
|
||||
borderRadiusWhenStacked: "last",
|
||||
},
|
||||
},
|
||||
dataLabels: {
|
||||
enabled: false,
|
||||
},
|
||||
xaxis: {
|
||||
categories: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug"],
|
||||
axisBorder: {
|
||||
show: false,
|
||||
},
|
||||
axisTicks: {
|
||||
show: false,
|
||||
},
|
||||
},
|
||||
legend: {
|
||||
show: true,
|
||||
position: "top",
|
||||
horizontalAlign: "left",
|
||||
fontFamily: "Outfit",
|
||||
fontSize: "14px",
|
||||
fontWeight: 400,
|
||||
markers: {
|
||||
size: 5,
|
||||
shape: "circle",
|
||||
radius: 999,
|
||||
strokeWidth: 0,
|
||||
},
|
||||
itemMargin: {
|
||||
horizontal: 10,
|
||||
vertical: 0,
|
||||
},
|
||||
},
|
||||
yaxis: {
|
||||
title: false,
|
||||
},
|
||||
grid: {
|
||||
yaxis: {
|
||||
lines: {
|
||||
show: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
fill: {
|
||||
opacity: 1,
|
||||
},
|
||||
|
||||
tooltip: {
|
||||
x: {
|
||||
show: false,
|
||||
},
|
||||
y: {
|
||||
formatter: function (val) {
|
||||
return val;
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
const chartSix = new ApexCharts(chartSixEl, chartSixOptions);
|
||||
chartSix.render();
|
||||
return chartSix;
|
||||
}
|
||||
}
|
||||
108
resources/js/components/chart/chart-8.js
Normal file
108
resources/js/components/chart/chart-8.js
Normal file
@@ -0,0 +1,108 @@
|
||||
|
||||
export function initChartEight() {
|
||||
const chartEightEl = document.querySelector('#chartEight');
|
||||
if (chartEightEl) {
|
||||
const chartEightOptions = {
|
||||
series: [
|
||||
{
|
||||
name: "Sales",
|
||||
data: [180, 190, 170, 160, 175, 165, 170, 205, 230, 210, 240, 235],
|
||||
},
|
||||
{
|
||||
name: "Revenue",
|
||||
data: [40, 30, 50, 40, 55, 40, 70, 100, 110, 120, 150, 140],
|
||||
},
|
||||
],
|
||||
legend: {
|
||||
show: false,
|
||||
position: "top",
|
||||
horizontalAlign: "left",
|
||||
},
|
||||
colors: ["#465FFF", "#9CB9FF"],
|
||||
chart: {
|
||||
fontFamily: "Outfit, sans-serif",
|
||||
height: 310,
|
||||
type: "area",
|
||||
toolbar: {
|
||||
show: false,
|
||||
},
|
||||
},
|
||||
fill: {
|
||||
gradient: {
|
||||
enabled: true,
|
||||
opacityFrom: 0.55,
|
||||
opacityTo: 0,
|
||||
},
|
||||
},
|
||||
stroke: {
|
||||
curve: "smooth",
|
||||
width: ["2", "2"],
|
||||
},
|
||||
|
||||
markers: {
|
||||
size: 0,
|
||||
},
|
||||
labels: {
|
||||
show: false,
|
||||
position: "top",
|
||||
},
|
||||
grid: {
|
||||
xaxis: {
|
||||
lines: {
|
||||
show: false,
|
||||
},
|
||||
},
|
||||
yaxis: {
|
||||
lines: {
|
||||
show: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
dataLabels: {
|
||||
enabled: false,
|
||||
},
|
||||
tooltip: {
|
||||
x: {
|
||||
format: "dd MMM yyyy",
|
||||
},
|
||||
},
|
||||
xaxis: {
|
||||
type: "category",
|
||||
categories: [
|
||||
"Jan",
|
||||
"Feb",
|
||||
"Mar",
|
||||
"Apr",
|
||||
"May",
|
||||
"Jun",
|
||||
"Jul",
|
||||
"Aug",
|
||||
"Sep",
|
||||
"Oct",
|
||||
"Nov",
|
||||
"Dec",
|
||||
],
|
||||
axisBorder: {
|
||||
show: false,
|
||||
},
|
||||
axisTicks: {
|
||||
show: false,
|
||||
},
|
||||
tooltip: false,
|
||||
},
|
||||
yaxis: {
|
||||
title: {
|
||||
style: {
|
||||
fontSize: "0px",
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
const chartEight = new ApexCharts(chartEightEl, chartEightOptions);
|
||||
chartEight.render();
|
||||
|
||||
return chartEight;
|
||||
}
|
||||
}
|
||||
export default initChartEight;
|
||||
63
resources/js/components/map.js
Normal file
63
resources/js/components/map.js
Normal file
@@ -0,0 +1,63 @@
|
||||
import jsVectorMap from 'jsvectormap';
|
||||
import 'jsvectormap/dist/maps/world';
|
||||
import 'jsvectormap/dist/jsvectormap.min.css';
|
||||
|
||||
export const initMap = () => {
|
||||
const mapSelectorOne = document.querySelectorAll('#mapOne');
|
||||
|
||||
if (mapSelectorOne.length) {
|
||||
const mapOne = new jsVectorMap({
|
||||
selector: "#mapOne",
|
||||
map: "world",
|
||||
zoomButtons: false,
|
||||
regionStyle: {
|
||||
initial: {
|
||||
fontFamily: "Outfit",
|
||||
fill: "#D9D9D9",
|
||||
},
|
||||
hover: {
|
||||
fillOpacity: 1,
|
||||
fill: "#465fff",
|
||||
},
|
||||
},
|
||||
markers: [
|
||||
{
|
||||
name: "Egypt",
|
||||
coords: [26.8206, 30.8025],
|
||||
},
|
||||
{
|
||||
name: "United Kingdom",
|
||||
coords: [55.3781, 3.436],
|
||||
},
|
||||
{
|
||||
name: "United States",
|
||||
coords: [37.0902, -95.7129],
|
||||
},
|
||||
],
|
||||
|
||||
markerStyle: {
|
||||
initial: {
|
||||
strokeWidth: 1,
|
||||
fill: "#465fff",
|
||||
fillOpacity: 1,
|
||||
r: 4,
|
||||
},
|
||||
hover: {
|
||||
fill: "#465fff",
|
||||
fillOpacity: 1,
|
||||
},
|
||||
selected: {},
|
||||
selectedHover: {},
|
||||
},
|
||||
|
||||
onRegionTooltipShow: function (event, tooltip, code) {
|
||||
tooltip.text(
|
||||
tooltip.text() + (code === "EG" ? " <b>(Hello Russia)</b>" : ""),
|
||||
true // This second parameter enables HTML
|
||||
);
|
||||
},
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
export default initMap;
|
||||
@@ -1,7 +0,0 @@
|
||||
// Body
|
||||
$body-bg: #f8fafc;
|
||||
|
||||
// Typography
|
||||
$font-family-sans-serif: 'Nunito', sans-serif;
|
||||
$font-size-base: 0.9rem;
|
||||
$line-height-base: 1.6;
|
||||
@@ -1,8 +0,0 @@
|
||||
// Fonts
|
||||
@import url('https://fonts.bunny.net/css?family=Nunito');
|
||||
|
||||
// Variables
|
||||
@import 'variables';
|
||||
|
||||
// Bootstrap
|
||||
@import 'bootstrap/scss/bootstrap';
|
||||
@@ -1,14 +1,13 @@
|
||||
import { defineConfig } from 'vite';
|
||||
import laravel from 'laravel-vite-plugin';
|
||||
import tailwindcss from '@tailwindcss/vite';
|
||||
|
||||
export default defineConfig({
|
||||
plugins: [
|
||||
laravel({
|
||||
input: [
|
||||
'resources/sass/app.scss',
|
||||
'resources/js/app.js',
|
||||
],
|
||||
input: ['resources/css/app.css', 'resources/js/app.js'],
|
||||
refresh: true,
|
||||
}),
|
||||
tailwindcss(),
|
||||
],
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user