diff --git a/.env.example b/.env.example index 6fb3de6..99a33e6 100644 --- a/.env.example +++ b/.env.example @@ -21,7 +21,7 @@ LOG_STACK=single LOG_DEPRECATIONS_CHANNEL=null LOG_LEVEL=debug -DB_CONNECTION=sqlite +DB_CONNECTION=database # DB_HOST=127.0.0.1 # DB_PORT=3306 # DB_DATABASE=laravel diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index d01a0ef..040602d 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -2,9 +2,12 @@ namespace Database\Seeders; -use App\Models\User; // use Illuminate\Database\Console\Seeds\WithoutModelEvents; use Illuminate\Database\Seeder; +use Database\Seeders\RoleSeeder; +use Database\Seeders\PermissionSeeder; +use Database\Seeders\UserSeeder; +use Database\Seeders\SettingSeeder; class DatabaseSeeder extends Seeder { @@ -13,11 +16,11 @@ class DatabaseSeeder extends Seeder */ public function run(): void { - // User::factory(10)->create(); - - User::factory()->create([ - 'name' => 'Test User', - 'email' => 'test@example.com', + $this->call([ + RoleSeeder::class, + PermissionSeeder::class, + UserSeeder::class, + SettingSeeder::class, ]); } } diff --git a/package.json b/package.json index e32a862..a0cc241 100644 --- a/package.json +++ b/package.json @@ -1,17 +1,160 @@ { - "private": true, + "name": "laravel-vuexy-admin-mexico", + "version": "1.0.0", "type": "module", + "license": "MIT", "scripts": { + "dev": "vite", "build": "vite build", - "dev": "vite" + "watch": "vite build --watch" }, "devDependencies": { + "@babel/core": "7.23.7", + "@babel/preset-env": "7.23.8", + "@rollup/plugin-html": "1.0.3", + "@tailwindcss/postcss": "^4.0.4", "autoprefixer": "^10.4.20", - "axios": "^1.7.4", - "concurrently": "^9.0.1", - "laravel-vite-plugin": "^1.2.0", - "postcss": "^8.4.47", - "tailwindcss": "^3.4.13", - "vite": "^6.0.11" + "axios": "^1.7.9", + "glob": "10.4.1", + "postcss": "8.4.49", + "sass": "1.77.5", + "tailwindcss": "^3.4.16", + "vite": "^5.2.13" + }, + "overrides": { + "datatables.net": "1.13.11", + "datatables.net-bs5": "1.13.11", + "datatables.net-buttons": "2.4.3", + "datatables.net-buttons-bs5": "2.4.3", + "datatables.net-fixedcolumns": "4.3.1", + "datatables.net-fixedheader": "3.4.1", + "datatables.net-responsive": "2.5.1", + "datatables.net-rowgroup": "1.4.1", + "datatables.net-select": "1.7.1", + "prop-types": "15.8.1" + }, + "resolutions": { + "datatables.net": "1.13.11", + "datatables.net-bs5": "1.13.11", + "datatables.net-buttons": "2.4.3", + "datatables.net-buttons-bs5": "2.4.3", + "datatables.net-fixedcolumns": "4.3.1", + "datatables.net-fixedheader": "3.4.1", + "datatables.net-responsive": "2.5.1", + "datatables.net-rowgroup": "1.4.1", + "datatables.net-select": "1.7.1", + "prop-types": "15.8.1" + }, + "browserslist": [ + ">= 1%", + "last 2 versions", + "not dead", + "Chrome >= 45", + "Firefox >= 38", + "Edge >= 12", + "Explorer >= 10", + "iOS >= 9", + "Safari >= 9", + "Android >= 4.4", + "Opera >= 30" + ], + "babel": { + "presets": [ + [ + "@babel/env", + { + "targets": { + "browsers": [ + ">= 1%", + "last 2 versions", + "not dead", + "Chrome >= 45", + "Firefox >= 38", + "Edge >= 12", + "Explorer >= 10", + "iOS >= 9", + "Safari >= 9", + "Android >= 4.4", + "Opera >= 30" + ] + } + } + ] + ] + }, + "dependencies": { + "@form-validation/bundle": "2.4.0", + "@form-validation/core": "2.4.0", + "@form-validation/plugin-auto-focus": "2.4.0", + "@form-validation/plugin-bootstrap5": "2.4.0", + "@form-validation/plugin-framework": "2.4.0", + "@form-validation/plugin-message": "2.4.0", + "@fortawesome/fontawesome-free": "6.5.2", + "@fullcalendar/core": "6.1.14", + "@fullcalendar/daygrid": "6.1.14", + "@fullcalendar/interaction": "6.1.14", + "@fullcalendar/list": "6.1.14", + "@fullcalendar/timegrid": "6.1.14", + "@popperjs/core": "2.11.8", + "@simonwep/pickr": "1.9.1", + "@yaireo/tagify": "4.18.3", + "animate.css": "4.1.1", + "aos": "2.3.4", + "apexcharts-clevision": "3.28.5", + "autosize": "6.0.1", + "block-ui": "2.70.1", + "bootstrap": "5.3.3", + "bootstrap-datepicker": "1.10.0", + "bootstrap-daterangepicker": "3.1.0", + "bootstrap-maxlength": "^2.0.0", + "bootstrap-select": "1.14.0-beta3", + "bs-stepper": "1.7.0", + "chart.js": "4.4.3", + "cleave.js": "1.6.0", + "clipboard": "2.0.11", + "datatables.net-bs5": "1.13.11", + "datatables.net-buttons": "2.4.3", + "datatables.net-buttons-bs5": "2.4.3", + "datatables.net-fixedcolumns-bs5": "4.3.1", + "datatables.net-fixedheader-bs5": "3.4.1", + "datatables.net-responsive": "2.5.1", + "datatables.net-responsive-bs5": "2.5.1", + "datatables.net-rowgroup-bs5": "1.4.1", + "datatables.net-select-bs5": "1.7.1", + "dropzone": "5.9.3", + "flag-icons": "7.2.3", + "flatpickr": "4.6.13", + "hammerjs": "2.0.8", + "highlight.js": "11.9.0", + "jkanban": "1.3.1", + "jquery": "3.7.1", + "jquery-datatables-checkboxes": "1.2.14", + "jquery-sticky": "1.0.4", + "jquery.repeater": "1.2.1", + "jstree": "3.3.16", + "jszip": "3.10.1", + "katex": "^0.16.21", + "laravel-vite-plugin": "1.0.1", + "leaflet": "1.9.4", + "mapbox-gl": "3.0.1", + "masonry-layout": "4.2.2", + "moment": "2.30.1", + "node-waves": "0.7.6", + "nouislider": "15.7.2", + "numeral": "2.0.6", + "pdfmake": "0.2.10", + "perfect-scrollbar": "1.5.5", + "plyr": "3.7.8", + "quill": "^2.0.3", + "rateyo": "2.3.5", + "select2": "4.0.13", + "shepherd.js": "11.2.0", + "sortablejs": "1.15.2", + "spinkit": "2.0.1", + "sweetalert2": "^11.6.13", + "swiper": "11.0.7", + "timepicker": "1.14.1", + "toastr": "2.1.4", + "typeahead.js": "0.11.1" } } diff --git a/tailwind.config.js b/tailwind.config.js index ce0c57f..867ba6d 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -5,9 +5,8 @@ export default { content: [ './vendor/laravel/framework/src/Illuminate/Pagination/resources/views/*.blade.php', './storage/framework/views/*.php', - './resources/**/*.blade.php', - './resources/**/*.js', - './resources/**/*.vue', + './resources/**/*.{js,ts,jsx,tsx,vue,blade.php}', + './vendor/koneko/vuexy-admin-mexico/resources/**/*.{js,ts,jsx,tsx,vue,blade.php}' ], theme: { extend: { diff --git a/vite.config.js b/vite.config.js index 421b569..496b67d 100644 --- a/vite.config.js +++ b/vite.config.js @@ -1,11 +1,85 @@ import { defineConfig } from 'vite'; import laravel from 'laravel-vite-plugin'; +import html from '@rollup/plugin-html'; +import { glob } from 'glob'; +/** + * Obtener archivos desde el componente local + */ +function GetFilesArray(query) { + return glob.sync(query); +} + +// Page JS Files +const pageJsFiles = GetFilesArray('vendor/koneko/vuexy-admin-mexico/resources/js/**/*.js'); // Incluye admin-settings, auth, pages, etc. + +// Processing Vendor JS Files +const vendorJsFiles = GetFilesArray('vendor/koneko/vuexy-admin-mexico/resources/assets/vendor/js/*.js'); + +// Processing Libs JS Files +const LibsJsFiles = GetFilesArray('vendor/koneko/vuexy-admin-mexico/resources/assets/vendor/libs/**/*.js'); + +/** + * Scss Files + */ +// Page Scss Files +const pageScssFiles = GetFilesArray('vendor/koneko/vuexy-admin-mexico/resources/scss/**/!(_)*.scss'); + +// Processing Core, Themes & Pages Scss Files +const CoreScssFiles = GetFilesArray('vendor/koneko/vuexy-admin-mexico/resources/assets/vendor/scss/**/!(_)*.scss'); + +// Processing Libs Scss & Css Files +const LibsScssFiles = GetFilesArray('vendor/koneko/vuexy-admin-mexico/resources/assets/vendor/libs/**/!(_)*.scss'); +const LibsCssFiles = GetFilesArray('vendor/koneko/vuexy-admin-mexico/resources/assets/vendor/libs/**/*.css'); + +// Processing Fonts Scss Files +const FontsScssFiles = GetFilesArray('vendor/koneko/vuexy-admin-mexico/resources/assets/vendor/fonts/!(_)*.scss'); + + +// Processing Window Assignment for Libs like jKanban, pdfMake +function libsWindowAssignment() { + return { + name: 'libsWindowAssignment', + + transform(src, id) { + if (id.includes('jkanban.js')) { + return src.replace('this.jKanban', 'window.jKanban'); + } else if (id.includes('vfs_fonts')) { + return src.replaceAll('this.pdfMake', 'window.pdfMake'); + } + } + }; +} export default defineConfig({ plugins: [ laravel({ - input: ['resources/css/app.css', 'resources/js/app.js'], - refresh: true, + input: [ + 'vendor/koneko/vuexy-admin-mexico/resources/assets/css/demo.css', + ...pageJsFiles, + ...vendorJsFiles, + ...LibsJsFiles, + ...pageScssFiles, + ...CoreScssFiles, + ...LibsScssFiles, + ...LibsCssFiles, + ...FontsScssFiles + ], + refresh: ['resources/**', 'app/**', 'vendor/koneko/**'] }), + html(), + libsWindowAssignment(), ], + build: { + emptyOutDir: true + }, + server: { + cors: true, + hmr: { + host: '127.0.0.1', + }, + fs: { + allow: ['..'], + } + } }); +