├── .editorconfig ├── .env.dusk ├── .env.example ├── .gitattributes ├── .gitignore ├── LICENSE ├── README.md ├── app ├── Actions │ ├── Fortify │ │ ├── CreateNewUser.php │ │ ├── PasswordValidationRules.php │ │ ├── ResetUserPassword.php │ │ ├── UpdateUserPassword.php │ │ └── UpdateUserProfileInformation.php │ └── Jetstream │ │ └── DeleteUser.php ├── Console │ └── Kernel.php ├── Exceptions │ └── Handler.php ├── Helpers │ ├── Countries.php │ ├── MainHelper.php │ ├── SettingsHelper.php │ └── UserSystemInfoHelper.php ├── Http │ ├── Controllers │ │ ├── Controller.php │ │ └── Dashboard │ │ │ ├── DashboardController.php │ │ │ ├── LanguageController.php │ │ │ ├── PermissionController.php │ │ │ ├── PluginController.php │ │ │ ├── RoleController.php │ │ │ ├── SettingController.php │ │ │ ├── TrafficsController.php │ │ │ └── UserController.php │ ├── Kernel.php │ └── Middleware │ │ ├── Authenticate.php │ │ ├── CheckUserRegistration.php │ │ ├── EncryptCookies.php │ │ ├── Language.php │ │ ├── PreventRequestsDuringMaintenance.php │ │ ├── RateLimit.php │ │ ├── RedirectIfAuthenticated.php │ │ ├── TrimStrings.php │ │ ├── TrustHosts.php │ │ ├── TrustProxies.php │ │ ├── ValidateSignature.php │ │ └── VerifyCsrfToken.php ├── Models │ ├── Language.php │ ├── RateLimit.php │ ├── RateLimitDetail.php │ ├── ReportError.php │ ├── Setting.php │ └── User.php ├── Policies │ └── TeamPolicy.php ├── Providers │ ├── AppServiceProvider.php │ ├── AuthServiceProvider.php │ ├── BroadcastServiceProvider.php │ ├── EventServiceProvider.php │ ├── FortifyServiceProvider.php │ ├── JetstreamServiceProvider.php │ ├── RouteServiceProvider.php │ └── TranslationsServiceProvider.php └── Tables │ ├── ErrorReports.php │ ├── Languages.php │ ├── Permissions.php │ ├── Roles.php │ ├── Traffics.php │ ├── TrafficsLogs.php │ └── Users.php ├── artisan ├── bootstrap ├── app.php ├── cache │ └── .gitignore └── ssr │ ├── assets │ └── CompilerErrorMessages-6b34f14b-6b34f14b.js │ └── ssr.js ├── composer.json ├── composer.lock ├── config ├── app.php ├── auth.php ├── broadcasting.php ├── cache.php ├── cors.php ├── database.php ├── filesystems.php ├── fortify.php ├── hashing.php ├── jetstream.php ├── location.php ├── logging.php ├── mail.php ├── modules.php ├── permission.php ├── queue.php ├── sanctum.php ├── services.php ├── session.php ├── splade.php ├── translations.php └── view.php ├── database ├── .gitignore ├── factories │ ├── TeamFactory.php │ └── UserFactory.php ├── migrations │ ├── 2014_10_12_000000_create_users_table.php │ ├── 2014_10_12_100000_create_password_reset_tokens_table.php │ ├── 2014_10_12_200000_add_two_factor_columns_to_users_table.php │ ├── 2018_01_01_000000_create_permission_tables.php │ ├── 2019_08_19_000000_create_failed_jobs_table.php │ ├── 2019_12_14_000001_create_personal_access_tokens_table.php │ ├── 2023_08_03_171119_create_sessions_table.php │ ├── 2023_08_07_090927_create_settings_table.php │ ├── 2023_08_07_172433_create_languages_table.php │ ├── 2023_08_08_081808_create_rate_limits_table.php │ ├── 2023_08_08_082015_create_rate_limit_details_table.php │ └── 2023_08_08_082127_create_report_errors_table.php └── seeders │ ├── DatabaseSeeder.php │ ├── LanguagesSeeder.php │ ├── RolesAndPermissionsSeeder.php │ ├── SettingsSeeder.php │ └── UsersSeeder.php ├── lang ├── ar │ ├── auth.php │ ├── main.php │ ├── pagination.php │ ├── passwords.php │ └── validation.php └── en │ ├── auth.php │ ├── main.php │ ├── pagination.php │ ├── passwords.php │ └── validation.php ├── modules_statuses.json ├── package-lock.json ├── package.json ├── phpunit.xml ├── postcss.config.js ├── public ├── .htaccess ├── assets │ ├── flags │ │ ├── ad.svg │ │ ├── ae.svg │ │ ├── af.svg │ │ ├── ag.svg │ │ ├── ai.svg │ │ ├── al.svg │ │ ├── am.svg │ │ ├── ao.svg │ │ ├── aq.svg │ │ ├── ar.svg │ │ ├── as.svg │ │ ├── at.svg │ │ ├── au.svg │ │ ├── aw.svg │ │ ├── ax.svg │ │ ├── az.svg │ │ ├── ba.svg │ │ ├── bb.svg │ │ ├── bd.svg │ │ ├── be.svg │ │ ├── bf.svg │ │ ├── bg.svg │ │ ├── bh.svg │ │ ├── bi.svg │ │ ├── bj.svg │ │ ├── bl.svg │ │ ├── bm.svg │ │ ├── bn.svg │ │ ├── bo.svg │ │ ├── bq.svg │ │ ├── br.svg │ │ ├── bs.svg │ │ ├── bt.svg │ │ ├── bv.svg │ │ ├── bw.svg │ │ ├── by.svg │ │ ├── bz.svg │ │ ├── ca.svg │ │ ├── cc.svg │ │ ├── cd.svg │ │ ├── cf.svg │ │ ├── cg.svg │ │ ├── ch.svg │ │ ├── ci.svg │ │ ├── ck.svg │ │ ├── cl.svg │ │ ├── cm.svg │ │ ├── cn.svg │ │ ├── co.svg │ │ ├── cr.svg │ │ ├── cu.svg │ │ ├── cv.svg │ │ ├── cw.svg │ │ ├── cx.svg │ │ ├── cy.svg │ │ ├── cz.svg │ │ ├── de.svg │ │ ├── dj.svg │ │ ├── dk.svg │ │ ├── dm.svg │ │ ├── do.svg │ │ ├── dz.svg │ │ ├── ec.svg │ │ ├── ee.svg │ │ ├── eg.svg │ │ ├── eh.svg │ │ ├── er.svg │ │ ├── es.svg │ │ ├── et.svg │ │ ├── eu.svg │ │ ├── fi.svg │ │ ├── fj.svg │ │ ├── fk.svg │ │ ├── fm.svg │ │ ├── fo.svg │ │ ├── fr.svg │ │ ├── ga.svg │ │ ├── gb-eng.svg │ │ ├── gb-nir.svg │ │ ├── gb-sct.svg │ │ ├── gb-wls.svg │ │ ├── gb.svg │ │ ├── gd.svg │ │ ├── ge.svg │ │ ├── gf.svg │ │ ├── gg.svg │ │ ├── gh.svg │ │ ├── gi.svg │ │ ├── gl.svg │ │ ├── gm.svg │ │ ├── gn.svg │ │ ├── gp.svg │ │ ├── gq.svg │ │ ├── gr.svg │ │ ├── gs.svg │ │ ├── gt.svg │ │ ├── gu.svg │ │ ├── gw.svg │ │ ├── gy.svg │ │ ├── hk.svg │ │ ├── hm.svg │ │ ├── hn.svg │ │ ├── hr.svg │ │ ├── ht.svg │ │ ├── hu.svg │ │ ├── id.svg │ │ ├── ie.svg │ │ ├── il.svg │ │ ├── im.svg │ │ ├── in.svg │ │ ├── io.svg │ │ ├── iq.svg │ │ ├── ir.svg │ │ ├── is.svg │ │ ├── it.svg │ │ ├── je.svg │ │ ├── jm.svg │ │ ├── jo.svg │ │ ├── jp.svg │ │ ├── ke.svg │ │ ├── kg.svg │ │ ├── kh.svg │ │ ├── ki.svg │ │ ├── km.svg │ │ ├── kn.svg │ │ ├── kp.svg │ │ ├── kr.svg │ │ ├── kw.svg │ │ ├── ky.svg │ │ ├── kz.svg │ │ ├── la.svg │ │ ├── lb.svg │ │ ├── lc.svg │ │ ├── li.svg │ │ ├── lk.svg │ │ ├── lr.svg │ │ ├── ls.svg │ │ ├── lt.svg │ │ ├── lu.svg │ │ ├── lv.svg │ │ ├── ly.svg │ │ ├── ma.svg │ │ ├── mc.svg │ │ ├── md.svg │ │ ├── me.svg │ │ ├── mf.svg │ │ ├── mg.svg │ │ ├── mh.svg │ │ ├── mk.svg │ │ ├── ml.svg │ │ ├── mm.svg │ │ ├── mn.svg │ │ ├── mo.svg │ │ ├── mp.svg │ │ ├── mq.svg │ │ ├── mr.svg │ │ ├── ms.svg │ │ ├── mt.svg │ │ ├── mu.svg │ │ ├── mv.svg │ │ ├── mw.svg │ │ ├── mx.svg │ │ ├── my.svg │ │ ├── mz.svg │ │ ├── na.svg │ │ ├── nc.svg │ │ ├── ne.svg │ │ ├── nf.svg │ │ ├── ng.svg │ │ ├── ni.svg │ │ ├── nl.svg │ │ ├── no.svg │ │ ├── np.svg │ │ ├── nr.svg │ │ ├── nu.svg │ │ ├── nz.svg │ │ ├── om.svg │ │ ├── pa.svg │ │ ├── pe.svg │ │ ├── pf.svg │ │ ├── pg.svg │ │ ├── ph.svg │ │ ├── pk.svg │ │ ├── pl.svg │ │ ├── pm.svg │ │ ├── pn.svg │ │ ├── pr.svg │ │ ├── ps.svg │ │ ├── pt.svg │ │ ├── pw.svg │ │ ├── py.svg │ │ ├── qa.svg │ │ ├── re.svg │ │ ├── ro.svg │ │ ├── rs.svg │ │ ├── ru.svg │ │ ├── rw.svg │ │ ├── sa.svg │ │ ├── sb.svg │ │ ├── sc.svg │ │ ├── sd.svg │ │ ├── se.svg │ │ ├── sg.svg │ │ ├── sh.svg │ │ ├── si.svg │ │ ├── sj.svg │ │ ├── sk.svg │ │ ├── sl.svg │ │ ├── sm.svg │ │ ├── sn.svg │ │ ├── so.svg │ │ ├── sr.svg │ │ ├── ss.svg │ │ ├── st.svg │ │ ├── sv.svg │ │ ├── sx.svg │ │ ├── sy.svg │ │ ├── sz.svg │ │ ├── tc.svg │ │ ├── td.svg │ │ ├── tf.svg │ │ ├── tg.svg │ │ ├── th.svg │ │ ├── tj.svg │ │ ├── tk.svg │ │ ├── tl.svg │ │ ├── tm.svg │ │ ├── tn.svg │ │ ├── to.svg │ │ ├── tr.svg │ │ ├── tt.svg │ │ ├── tv.svg │ │ ├── tw.svg │ │ ├── tz.svg │ │ ├── ua.svg │ │ ├── ug.svg │ │ ├── um.svg │ │ ├── un.svg │ │ ├── us.svg │ │ ├── uy.svg │ │ ├── uz.svg │ │ ├── va.svg │ │ ├── vc.svg │ │ ├── ve.svg │ │ ├── vg.svg │ │ ├── vi.svg │ │ ├── vn.svg │ │ ├── vu.svg │ │ ├── wf.svg │ │ ├── ws.svg │ │ ├── ye.svg │ │ ├── yt.svg │ │ ├── za.svg │ │ ├── zm.svg │ │ └── zw.svg │ └── js │ │ └── toggle-dark-mode.js ├── build │ ├── assets │ │ ├── CompilerErrorMessages-6b34f14b-862555c2.js │ │ ├── _commonjsHelpers-725317a4.js │ │ ├── app-a1319ed7.css │ │ ├── app-e9331348.js │ │ ├── autosize.esm-32e303a0.js │ │ ├── choices-b4319f5a.js │ │ ├── fa-brands-400-003f1154.ttf │ │ ├── fa-brands-400-faae6fc0.woff2 │ │ ├── fa-regular-400-7d81a1a7.ttf │ │ ├── fa-regular-400-9169d8be.woff2 │ │ ├── fa-solid-900-886c8611.woff2 │ │ ├── fa-solid-900-cea79b34.ttf │ │ ├── fa-v4compatibility-335fd7d9.woff2 │ │ ├── fa-v4compatibility-455e8e72.ttf │ │ ├── filepond-plugin-file-validate-size.esm-cc68c999.js │ │ ├── filepond-plugin-file-validate-type.esm-54b3a46f.js │ │ ├── filepond-plugin-image-exif-orientation.esm-a30467e6.js │ │ ├── filepond-plugin-image-preview.esm-b8cee188.js │ │ ├── filepond-plugin-image-validate-size.esm-337c4814.js │ │ ├── filepond.esm-54e39f90.js │ │ ├── index-e698212e.js │ │ ├── jodit.min-bd42590e.js │ │ └── nprogress-e771348b.js │ └── manifest.json ├── favicon.ico ├── index.php ├── robots.txt └── vendor │ └── translations │ ├── app.css │ ├── app.js │ └── mix-manifest.json ├── resources ├── css │ └── app.css ├── js │ ├── app.js │ ├── bootstrap.js │ └── ssr.js ├── markdown │ ├── policy.md │ └── terms.md └── views │ ├── api │ ├── edit.blade.php │ └── index.blade.php │ ├── auth │ ├── confirm-password.blade.php │ ├── forgot-password.blade.php │ ├── login.blade.php │ ├── register.blade.php │ ├── reset-password.blade.php │ ├── two-factor-challenge.blade.php │ └── verify-email.blade.php │ ├── components │ ├── action-message.blade.php │ ├── action-section.blade.php │ ├── app-layout.blade.php │ ├── application-logo.blade.php │ ├── authentication-card.blade.php │ ├── banner.blade.php │ ├── btn-link.blade.php │ ├── dashboard-layout.blade.php │ ├── dialog-modal.blade.php │ ├── dropdown-link.blade.php │ ├── form-section.blade.php │ ├── layout.blade.php │ ├── nav-link.blade.php │ ├── navbar.blade.php │ ├── navigation.blade.php │ ├── panel.blade.php │ ├── responsive-nav-link.blade.php │ ├── section-border.blade.php │ ├── section-content.blade.php │ ├── section-title.blade.php │ ├── sidebar.blade.php │ └── welcome.blade.php │ ├── dashboard │ ├── index.blade.php │ ├── languages │ │ └── index.blade.php │ ├── permissions │ │ ├── edit.blade.php │ │ └── index.blade.php │ ├── plugins │ │ ├── create.blade.php │ │ └── index.blade.php │ ├── roles │ │ ├── edit.blade.php │ │ └── index.blade.php │ ├── settings │ │ └── index.blade.php │ ├── traffics │ │ ├── error-reports.blade.php │ │ ├── index.blade.php │ │ └── logs.blade.php │ └── users │ │ ├── edit.blade.php │ │ └── index.blade.php │ ├── docs.blade.php │ ├── emails │ └── team-invitation.blade.php │ ├── home.blade.php │ ├── policy.blade.php │ ├── profile │ ├── delete-user-form.blade.php │ ├── logout-other-browser-sessions-form.blade.php │ ├── show.blade.php │ ├── two-factor-authentication-form.blade.php │ ├── update-password-form.blade.php │ └── update-profile-information-form.blade.php │ ├── root.blade.php │ ├── terms.blade.php │ ├── vendor │ └── splade │ │ ├── components │ │ ├── button-with-dropdown.blade.php │ │ ├── button.blade.php │ │ ├── confirm.blade.php │ │ ├── dropdown.blade.php │ │ ├── modal-wrapper.blade.php │ │ ├── modal.blade.php │ │ ├── slideover.blade.php │ │ ├── toast-wrapper.blade.php │ │ └── toast.blade.php │ │ ├── form │ │ ├── checkbox.blade.php │ │ ├── checkboxes.blade.php │ │ ├── error.blade.php │ │ ├── file.blade.php │ │ ├── group.blade.php │ │ ├── help.blade.php │ │ ├── input.blade.php │ │ ├── label.blade.php │ │ ├── radio.blade.php │ │ ├── radios.blade.php │ │ ├── select-child.blade.php │ │ ├── select.blade.php │ │ ├── submit.blade.php │ │ ├── textarea.blade.php │ │ └── wysiwyg.blade.php │ │ └── table │ │ ├── add-search-row.blade.php │ │ ├── body.blade.php │ │ ├── bulk-actions-exports.blade.php │ │ ├── columns.blade.php │ │ ├── controls.blade.php │ │ ├── filters.blade.php │ │ ├── global-search.blade.php │ │ ├── head.blade.php │ │ ├── pagination.blade.php │ │ ├── per-page-selector.blade.php │ │ ├── search-row.blade.php │ │ ├── select-rows-dropdown.blade.php │ │ ├── simple-pagination.blade.php │ │ ├── table.blade.php │ │ └── wrapper.blade.php │ └── welcome.blade.php ├── routes ├── api.php ├── channels.php ├── console.php └── web.php ├── storage ├── app │ ├── .gitignore │ └── public │ │ └── .gitignore ├── framework │ ├── .gitignore │ ├── cache │ │ └── .gitignore │ ├── sessions │ │ └── .gitignore │ ├── testing │ │ └── .gitignore │ └── views │ │ └── .gitignore └── logs │ └── .gitignore ├── tailwind.config.js ├── tests ├── Browser │ ├── Jetstream │ │ ├── ApiTokenPermissionsTest.php │ │ ├── AuthenticationTest.php │ │ ├── BrowserSessionsTest.php │ │ ├── CreateApiTokenTest.php │ │ ├── CreateTeamTest.php │ │ ├── DeleteAccountTest.php │ │ ├── DeleteApiTokenTest.php │ │ ├── DeleteTeamTest.php │ │ ├── EmailVerificationTest.php │ │ ├── InviteTeamMemberTest.php │ │ ├── LeaveTeamTest.php │ │ ├── PasswordConfirmationTest.php │ │ ├── PasswordResetTest.php │ │ ├── PrivacyTest.php │ │ ├── ProfileInformationTest.php │ │ ├── RegistrationTest.php │ │ ├── RemoveTeamMemberTest.php │ │ ├── TermsTest.php │ │ ├── TwoFactorAuthenticationSettingsTest.php │ │ ├── UpdatePasswordTest.php │ │ ├── UpdateTeamMemberRoleTest.php │ │ ├── UpdateTeamNameTest.php │ │ └── photo.jpeg │ ├── Pages │ │ ├── HomePage.php │ │ └── Page.php │ ├── console │ │ └── .gitignore │ ├── screenshots │ │ └── .gitignore │ └── source │ │ └── .gitignore ├── CreatesApplication.php ├── DuskTestCase.php ├── Feature │ ├── AuthenticationTest.php │ ├── EmailVerificationTest.php │ ├── ExampleTest.php │ ├── PasswordConfirmationTest.php │ ├── PasswordResetTest.php │ └── RegistrationTest.php ├── TestCase.php └── Unit │ └── ExampleTest.php └── vite.config.js /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | end_of_line = lf 6 | indent_size = 4 7 | indent_style = space 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.md] 12 | trim_trailing_whitespace = false 13 | 14 | [*.{yml,yaml}] 15 | indent_size = 2 16 | 17 | [docker-compose.yml] 18 | indent_size = 4 19 | -------------------------------------------------------------------------------- /.env.dusk: -------------------------------------------------------------------------------- 1 | APP_NAME=Laravel 2 | APP_ENV=local 3 | APP_KEY=base64:xcEnu4C/PJvhan7I0PnHK/hAqVclnMU9ANW+LSXDVO4= 4 | APP_DEBUG=true 5 | APP_URL=http://127.0.0.1:8000 6 | 7 | LOG_CHANNEL=stack 8 | LOG_DEPRECATIONS_CHANNEL=null 9 | LOG_LEVEL=debug 10 | 11 | DB_CONNECTION=sqlite 12 | # DB_HOST=127.0.0.1 13 | # DB_PORT=3306 14 | # DB_DATABASE=splade 15 | # DB_USERNAME=root 16 | # DB_PASSWORD= 17 | 18 | BROADCAST_DRIVER=log 19 | CACHE_DRIVER=file 20 | FILESYSTEM_DISK=local 21 | QUEUE_CONNECTION=sync 22 | SESSION_DRIVER=file 23 | SESSION_LIFETIME=120 24 | 25 | MEMCACHED_HOST=127.0.0.1 26 | 27 | REDIS_HOST=127.0.0.1 28 | REDIS_PASSWORD=null 29 | REDIS_PORT=6379 30 | 31 | MAIL_MAILER=smtp 32 | MAIL_HOST=mailhog 33 | MAIL_PORT=1025 34 | MAIL_USERNAME=null 35 | MAIL_PASSWORD=null 36 | MAIL_ENCRYPTION=null 37 | MAIL_FROM_ADDRESS="hello@example.com" 38 | MAIL_FROM_NAME="${APP_NAME}" 39 | 40 | AWS_ACCESS_KEY_ID= 41 | AWS_SECRET_ACCESS_KEY= 42 | AWS_DEFAULT_REGION=us-east-1 43 | AWS_BUCKET= 44 | AWS_USE_PATH_STYLE_ENDPOINT=false 45 | 46 | PUSHER_APP_ID= 47 | PUSHER_APP_KEY= 48 | PUSHER_APP_SECRET= 49 | PUSHER_HOST= 50 | PUSHER_PORT=443 51 | PUSHER_SCHEME=https 52 | PUSHER_APP_CLUSTER=mt1 53 | 54 | VITE_PUSHER_APP_KEY="${PUSHER_APP_KEY}" 55 | VITE_PUSHER_HOST="${PUSHER_HOST}" 56 | VITE_PUSHER_PORT="${PUSHER_PORT}" 57 | VITE_PUSHER_SCHEME="${PUSHER_SCHEME}" 58 | VITE_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}" 59 | 60 | DUSK_FAKE_MAILS=true 61 | DUSK_FAKE_NOTIFICATIONS=true -------------------------------------------------------------------------------- /.env.example: -------------------------------------------------------------------------------- 1 | APP_NAME=Laravel 2 | APP_ENV=local 3 | APP_KEY= 4 | APP_DEBUG=true 5 | APP_URL=http://localhost 6 | 7 | LOG_CHANNEL=stack 8 | LOG_DEPRECATIONS_CHANNEL=null 9 | LOG_LEVEL=debug 10 | 11 | DB_CONNECTION=mysql 12 | DB_HOST=127.0.0.1 13 | DB_PORT=3306 14 | DB_DATABASE=dashboard 15 | DB_USERNAME=root 16 | DB_PASSWORD= 17 | 18 | BROADCAST_DRIVER=log 19 | CACHE_DRIVER=file 20 | FILESYSTEM_DISK=local 21 | QUEUE_CONNECTION=sync 22 | SESSION_DRIVER=database 23 | SESSION_LIFETIME=120 24 | 25 | MEMCACHED_HOST=127.0.0.1 26 | 27 | REDIS_HOST=127.0.0.1 28 | REDIS_PASSWORD=null 29 | REDIS_PORT=6379 30 | 31 | MAIL_MAILER=smtp 32 | MAIL_HOST=mailpit 33 | MAIL_PORT=1025 34 | MAIL_USERNAME=null 35 | MAIL_PASSWORD=null 36 | MAIL_ENCRYPTION=null 37 | MAIL_FROM_ADDRESS="hello@example.com" 38 | MAIL_FROM_NAME="${APP_NAME}" 39 | 40 | AWS_ACCESS_KEY_ID= 41 | AWS_SECRET_ACCESS_KEY= 42 | AWS_DEFAULT_REGION=us-east-1 43 | AWS_BUCKET= 44 | AWS_USE_PATH_STYLE_ENDPOINT=false 45 | 46 | PUSHER_APP_ID= 47 | PUSHER_APP_KEY= 48 | PUSHER_APP_SECRET= 49 | PUSHER_HOST= 50 | PUSHER_PORT=443 51 | PUSHER_SCHEME=https 52 | PUSHER_APP_CLUSTER=mt1 53 | 54 | VITE_APP_NAME="${APP_NAME}" 55 | VITE_PUSHER_APP_KEY="${PUSHER_APP_KEY}" 56 | VITE_PUSHER_HOST="${PUSHER_HOST}" 57 | VITE_PUSHER_PORT="${PUSHER_PORT}" 58 | VITE_PUSHER_SCHEME="${PUSHER_SCHEME}" 59 | VITE_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}" 60 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto eol=lf 2 | 3 | *.blade.php diff=html 4 | *.css diff=css 5 | *.html diff=html 6 | *.md diff=markdown 7 | *.php diff=php 8 | 9 | /.github export-ignore 10 | CHANGELOG.md export-ignore 11 | .styleci.yml export-ignore 12 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /vendor/ 2 | node_modules/ 3 | npm-debug.log 4 | yarn-error.log 5 | 6 | # Laravel 4 specific 7 | bootstrap/compiled.php 8 | app/storage/ 9 | 10 | # Laravel 5 & Lumen specific 11 | public/storage 12 | public/hot 13 | 14 | # Laravel 5 & Lumen specific with changed public path 15 | public_html/storage 16 | public_html/hot 17 | 18 | storage/*.key 19 | .env 20 | Homestead.yaml 21 | Homestead.json 22 | /.vagrant 23 | .phpunit.result.cache -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Abdelmjid Saber 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /app/Actions/Fortify/PasswordValidationRules.php: -------------------------------------------------------------------------------- 1 | 13 | */ 14 | protected function passwordRules(): array 15 | { 16 | return ['required', 'string', new Password, 'confirmed']; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /app/Actions/Fortify/ResetUserPassword.php: -------------------------------------------------------------------------------- 1 | $input 18 | */ 19 | public function reset(User $user, array $input): void 20 | { 21 | Validator::make($input, [ 22 | 'password' => $this->passwordRules(), 23 | ])->validate(); 24 | 25 | $user->forceFill([ 26 | 'password' => Hash::make($input['password']), 27 | ])->save(); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /app/Actions/Fortify/UpdateUserPassword.php: -------------------------------------------------------------------------------- 1 | $input 18 | */ 19 | public function update(User $user, array $input): void 20 | { 21 | Validator::make($input, [ 22 | 'current_password' => ['required', 'string', 'current_password:web'], 23 | 'password' => $this->passwordRules(), 24 | ], [ 25 | 'current_password.current_password' => __('The provided password does not match your current password.'), 26 | ])->validateWithBag('updatePassword'); 27 | 28 | $user->forceFill([ 29 | 'password' => Hash::make($input['password']), 30 | ])->save(); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /app/Actions/Jetstream/DeleteUser.php: -------------------------------------------------------------------------------- 1 | deletesTeams = $deletesTeams; 26 | } 27 | 28 | /** 29 | * Delete the given user. 30 | */ 31 | public function delete(User $user): void 32 | { 33 | DB::transaction(function () use ($user) { 34 | $this->deleteTeams($user); 35 | $user->deleteProfilePhoto(); 36 | $user->tokens->each->delete(); 37 | $user->delete(); 38 | }); 39 | } 40 | 41 | /** 42 | * Delete the teams and team associations attached to the user. 43 | */ 44 | protected function deleteTeams(User $user): void 45 | { 46 | $user->teams()->detach(); 47 | 48 | $user->ownedTeams->each(function (Team $team) { 49 | $this->deletesTeams->delete($team); 50 | }); 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /app/Console/Kernel.php: -------------------------------------------------------------------------------- 1 | command('inspire')->hourly(); 16 | } 17 | 18 | /** 19 | * Register the commands for the application. 20 | */ 21 | protected function commands(): void 22 | { 23 | $this->load(__DIR__.'/Commands'); 24 | 25 | require base_path('routes/console.php'); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /app/Exceptions/Handler.php: -------------------------------------------------------------------------------- 1 | 15 | */ 16 | protected $dontFlash = [ 17 | 'current_password', 18 | 'password', 19 | 'password_confirmation', 20 | ]; 21 | 22 | /** 23 | * Register the exception handling callbacks for the application. 24 | */ 25 | public function register(): void 26 | { 27 | $this->renderable(\ProtoneMedia\Splade\SpladeCore::exceptionHandler($this)); 28 | 29 | $this->reportable(function (Throwable $e) { 30 | MainHelper::make_error_report([ 31 | 'error'=>$e->getMessage(), 32 | 'error_code'=>500, 33 | 'details'=>"Error : ".$e->getFile()." Line : ". $e->getLine() . json_encode(request()->instance()) 34 | ]); 35 | }); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /app/Helpers/SettingsHelper.php: -------------------------------------------------------------------------------- 1 | value('value'); 11 | } catch (\Exception $e) { 12 | return "Error: Could not connect to database."; 13 | } 14 | } 15 | } 16 | 17 | function social_image() 18 | { 19 | return Storage::url(getSetting('social_image')); 20 | } 21 | 22 | function light_logo() 23 | { 24 | return Storage::url(getSetting('light_logo')); 25 | } 26 | 27 | function dark_logo() 28 | { 29 | return Storage::url(getSetting('dark_logo')); 30 | 31 | } 32 | 33 | function favicon() 34 | { 35 | return Storage::url(getSetting('favicon')); 36 | } 37 | 38 | function locales() 39 | { 40 | return Language::where('status', 1)->orderBy('name', 'asc')->get(); 41 | } -------------------------------------------------------------------------------- /app/Http/Controllers/Controller.php: -------------------------------------------------------------------------------- 1 | middleware('can:read reports', ['only' => ['index', 'logs', 'error_reports', 'error_report']]); 17 | } 18 | 19 | public function index() 20 | { 21 | return view('dashboard.traffics.index', [ 22 | 'traffics' => Traffics::class, 23 | ]); 24 | } 25 | 26 | public function logs() 27 | { 28 | return view('dashboard.traffics.logs', [ 29 | 'logs' => TrafficsLogs::class 30 | ]); 31 | } 32 | 33 | public function error_reports() 34 | { 35 | return view('dashboard.traffics.error-reports', [ 36 | 'reports' => ErrorReports::class 37 | ]); 38 | } 39 | 40 | public function error_report(ReportError $report) 41 | { 42 | return dd($report); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /app/Http/Middleware/Authenticate.php: -------------------------------------------------------------------------------- 1 | expectsJson() ? null : route('login'); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /app/Http/Middleware/CheckUserRegistration.php: -------------------------------------------------------------------------------- 1 | route('login')->withErrors(['message' => 'User registration is currently disabled.']); 22 | } 23 | 24 | return $next($request); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/Http/Middleware/EncryptCookies.php: -------------------------------------------------------------------------------- 1 | 13 | */ 14 | protected $except = [ 15 | // 16 | ]; 17 | } 18 | -------------------------------------------------------------------------------- /app/Http/Middleware/Language.php: -------------------------------------------------------------------------------- 1 | segment(1))->first(); 26 | $locale = $language ? $language->code : config('app.locale'); 27 | Session::put('locale', $locale); 28 | } 29 | 30 | App::setLocale($locale); 31 | return $next($request); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /app/Http/Middleware/PreventRequestsDuringMaintenance.php: -------------------------------------------------------------------------------- 1 | 13 | */ 14 | protected $except = [ 15 | // 16 | ]; 17 | } 18 | -------------------------------------------------------------------------------- /app/Http/Middleware/RateLimit.php: -------------------------------------------------------------------------------- 1 | check()) { 24 | return redirect(RouteServiceProvider::HOME); 25 | } 26 | } 27 | 28 | return $next($request); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /app/Http/Middleware/TrimStrings.php: -------------------------------------------------------------------------------- 1 | 13 | */ 14 | protected $except = [ 15 | 'current_password', 16 | 'password', 17 | 'password_confirmation', 18 | ]; 19 | } 20 | -------------------------------------------------------------------------------- /app/Http/Middleware/TrustHosts.php: -------------------------------------------------------------------------------- 1 | 13 | */ 14 | public function hosts(): array 15 | { 16 | return [ 17 | $this->allSubdomainsOfApplicationUrl(), 18 | ]; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /app/Http/Middleware/TrustProxies.php: -------------------------------------------------------------------------------- 1 | |string|null 14 | */ 15 | protected $proxies; 16 | 17 | /** 18 | * The headers that should be used to detect proxies. 19 | * 20 | * @var int 21 | */ 22 | protected $headers = 23 | Request::HEADER_X_FORWARDED_FOR | 24 | Request::HEADER_X_FORWARDED_HOST | 25 | Request::HEADER_X_FORWARDED_PORT | 26 | Request::HEADER_X_FORWARDED_PROTO | 27 | Request::HEADER_X_FORWARDED_AWS_ELB; 28 | } 29 | -------------------------------------------------------------------------------- /app/Http/Middleware/ValidateSignature.php: -------------------------------------------------------------------------------- 1 | 13 | */ 14 | protected $except = [ 15 | // 'fbclid', 16 | // 'utm_campaign', 17 | // 'utm_content', 18 | // 'utm_medium', 19 | // 'utm_source', 20 | // 'utm_term', 21 | ]; 22 | } 23 | -------------------------------------------------------------------------------- /app/Http/Middleware/VerifyCsrfToken.php: -------------------------------------------------------------------------------- 1 | 13 | */ 14 | protected $except = [ 15 | // 16 | ]; 17 | } 18 | -------------------------------------------------------------------------------- /app/Models/Language.php: -------------------------------------------------------------------------------- 1 | hasMany(RateLimitDetail::class); 17 | } 18 | 19 | public function user() 20 | { 21 | return $this->belongsTo(User::class); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /app/Models/RateLimitDetail.php: -------------------------------------------------------------------------------- 1 | belongsTo(RateLimit::class); 17 | } 18 | 19 | public function user() 20 | { 21 | return $this->belongsTo(User::class); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /app/Models/ReportError.php: -------------------------------------------------------------------------------- 1 | belongsTo(User::class); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /app/Models/Setting.php: -------------------------------------------------------------------------------- 1 | 15 | */ 16 | protected $policies = [ 17 | Team::class => TeamPolicy::class, 18 | ]; 19 | 20 | /** 21 | * Register any authentication / authorization services. 22 | */ 23 | public function boot(): void 24 | { 25 | $this->registerPolicies(); 26 | 27 | // 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /app/Providers/BroadcastServiceProvider.php: -------------------------------------------------------------------------------- 1 | > 16 | */ 17 | protected $listen = [ 18 | Registered::class => [ 19 | SendEmailVerificationNotification::class, 20 | ], 21 | ]; 22 | 23 | /** 24 | * Register any events for your application. 25 | */ 26 | public function boot(): void 27 | { 28 | // 29 | } 30 | 31 | /** 32 | * Determine if events and listeners should be automatically discovered. 33 | */ 34 | public function shouldDiscoverEvents(): bool 35 | { 36 | return false; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /app/Providers/RouteServiceProvider.php: -------------------------------------------------------------------------------- 1 | by($request->user()?->id ?: $request->ip()); 29 | }); 30 | 31 | $this->routes(function () { 32 | Route::middleware('api') 33 | ->prefix('api') 34 | ->group(base_path('routes/api.php')); 35 | 36 | Route::middleware('web') 37 | ->group(base_path('routes/web.php')); 38 | }); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /app/Providers/TranslationsServiceProvider.php: -------------------------------------------------------------------------------- 1 | email, [ 19 | // 20 | ]); 21 | }); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /bootstrap/cache/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /config/cors.php: -------------------------------------------------------------------------------- 1 | ['api/*', 'sanctum/csrf-cookie'], 19 | 20 | 'allowed_methods' => ['*'], 21 | 22 | 'allowed_origins' => ['*'], 23 | 24 | 'allowed_origins_patterns' => [], 25 | 26 | 'allowed_headers' => ['*'], 27 | 28 | 'exposed_headers' => [], 29 | 30 | 'max_age' => 0, 31 | 32 | 'supports_credentials' => false, 33 | 34 | ]; 35 | -------------------------------------------------------------------------------- /config/services.php: -------------------------------------------------------------------------------- 1 | [ 18 | 'domain' => env('MAILGUN_DOMAIN'), 19 | 'secret' => env('MAILGUN_SECRET'), 20 | 'endpoint' => env('MAILGUN_ENDPOINT', 'api.mailgun.net'), 21 | 'scheme' => 'https', 22 | ], 23 | 24 | 'postmark' => [ 25 | 'token' => env('POSTMARK_TOKEN'), 26 | ], 27 | 28 | 'ses' => [ 29 | 'key' => env('AWS_ACCESS_KEY_ID'), 30 | 'secret' => env('AWS_SECRET_ACCESS_KEY'), 31 | 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), 32 | ], 33 | 34 | ]; 35 | -------------------------------------------------------------------------------- /config/view.php: -------------------------------------------------------------------------------- 1 | [ 17 | resource_path('views'), 18 | ], 19 | 20 | /* 21 | |-------------------------------------------------------------------------- 22 | | Compiled View Path 23 | |-------------------------------------------------------------------------- 24 | | 25 | | This option determines where all the compiled Blade templates will be 26 | | stored for your application. Typically, this is within the storage 27 | | directory. However, as usual, you are free to change this value. 28 | | 29 | */ 30 | 31 | 'compiled' => env( 32 | 'VIEW_COMPILED_PATH', 33 | realpath(storage_path('framework/views')) 34 | ), 35 | 36 | ]; 37 | -------------------------------------------------------------------------------- /database/.gitignore: -------------------------------------------------------------------------------- 1 | *.sqlite* 2 | -------------------------------------------------------------------------------- /database/factories/TeamFactory.php: -------------------------------------------------------------------------------- 1 | 22 | */ 23 | public function definition(): array 24 | { 25 | return [ 26 | 'name' => $this->faker->unique()->company(), 27 | 'user_id' => User::factory(), 28 | 'personal_team' => true, 29 | ]; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /database/migrations/2014_10_12_000000_create_users_table.php: -------------------------------------------------------------------------------- 1 | id(); 16 | $table->string('name'); 17 | $table->string('username')->unique(); 18 | $table->string('email')->unique(); 19 | $table->timestamp('email_verified_at')->nullable(); 20 | $table->string('password'); 21 | $table->rememberToken(); 22 | $table->foreignId('current_team_id')->nullable(); 23 | $table->string('profile_photo_path', 2048)->nullable(); 24 | $table->longText('bio')->nullable(); 25 | $table->enum('status', ['Active', 'Banned'])->default('Active'); 26 | $table->timestamps(); 27 | }); 28 | } 29 | 30 | /** 31 | * Reverse the migrations. 32 | */ 33 | public function down(): void 34 | { 35 | Schema::dropIfExists('users'); 36 | } 37 | }; 38 | -------------------------------------------------------------------------------- /database/migrations/2014_10_12_100000_create_password_reset_tokens_table.php: -------------------------------------------------------------------------------- 1 | string('email')->primary(); 16 | $table->string('token'); 17 | $table->timestamp('created_at')->nullable(); 18 | }); 19 | } 20 | 21 | /** 22 | * Reverse the migrations. 23 | */ 24 | public function down(): void 25 | { 26 | Schema::dropIfExists('password_reset_tokens'); 27 | } 28 | }; 29 | -------------------------------------------------------------------------------- /database/migrations/2019_08_19_000000_create_failed_jobs_table.php: -------------------------------------------------------------------------------- 1 | id(); 16 | $table->string('uuid')->unique(); 17 | $table->text('connection'); 18 | $table->text('queue'); 19 | $table->longText('payload'); 20 | $table->longText('exception'); 21 | $table->timestamp('failed_at')->useCurrent(); 22 | }); 23 | } 24 | 25 | /** 26 | * Reverse the migrations. 27 | */ 28 | public function down(): void 29 | { 30 | Schema::dropIfExists('failed_jobs'); 31 | } 32 | }; 33 | -------------------------------------------------------------------------------- /database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php: -------------------------------------------------------------------------------- 1 | id(); 16 | $table->morphs('tokenable'); 17 | $table->string('name'); 18 | $table->string('token', 64)->unique(); 19 | $table->text('abilities')->nullable(); 20 | $table->timestamp('last_used_at')->nullable(); 21 | $table->timestamp('expires_at')->nullable(); 22 | $table->timestamps(); 23 | }); 24 | } 25 | 26 | /** 27 | * Reverse the migrations. 28 | */ 29 | public function down(): void 30 | { 31 | Schema::dropIfExists('personal_access_tokens'); 32 | } 33 | }; 34 | -------------------------------------------------------------------------------- /database/migrations/2023_08_03_171119_create_sessions_table.php: -------------------------------------------------------------------------------- 1 | string('id')->primary(); 16 | $table->foreignId('user_id')->nullable()->index(); 17 | $table->string('ip_address', 45)->nullable(); 18 | $table->text('user_agent')->nullable(); 19 | $table->longText('payload'); 20 | $table->integer('last_activity')->index(); 21 | }); 22 | } 23 | 24 | /** 25 | * Reverse the migrations. 26 | */ 27 | public function down(): void 28 | { 29 | Schema::dropIfExists('sessions'); 30 | } 31 | }; 32 | -------------------------------------------------------------------------------- /database/migrations/2023_08_07_090927_create_settings_table.php: -------------------------------------------------------------------------------- 1 | id(); 16 | $table->string('key')->nullable(); 17 | $table->longText('value')->nullable(); 18 | $table->timestamps(); 19 | }); 20 | } 21 | 22 | /** 23 | * Reverse the migrations. 24 | */ 25 | public function down(): void 26 | { 27 | Schema::dropIfExists('settings'); 28 | } 29 | }; 30 | -------------------------------------------------------------------------------- /database/migrations/2023_08_07_172433_create_languages_table.php: -------------------------------------------------------------------------------- 1 | id(); 16 | $table->string('name'); 17 | $table->string('code'); 18 | $table->enum('dir', ['ltr', 'rtl'])->default('ltr'); 19 | $table->string('icon')->nullable(); 20 | $table->enum('status', ['Active', 'Disabled'])->default('Active'); 21 | $table->timestamps(); 22 | }); 23 | } 24 | 25 | /** 26 | * Reverse the migrations. 27 | */ 28 | public function down(): void 29 | { 30 | Schema::dropIfExists('languages'); 31 | } 32 | }; 33 | -------------------------------------------------------------------------------- /database/migrations/2023_08_08_082015_create_rate_limit_details_table.php: -------------------------------------------------------------------------------- 1 | id(); 16 | $table->unsignedBigInteger('user_id')->nullable(); 17 | $table->foreign('user_id')->references('id')->on("users")->onDelete('cascade'); 18 | $table->unsignedBigInteger('rate_limit_id')->nullable(); 19 | $table->foreign('rate_limit_id')->references('id')->on("rate_limits")->onDelete('cascade'); 20 | $table->text('query')->nullable(); 21 | $table->string('url')->nullable()->index(); 22 | $table->string('ip')->index(); 23 | $table->timestamps(); 24 | }); 25 | } 26 | 27 | /** 28 | * Reverse the migrations. 29 | */ 30 | public function down(): void 31 | { 32 | Schema::dropIfExists('rate_limit_details'); 33 | } 34 | }; 35 | -------------------------------------------------------------------------------- /database/migrations/2023_08_08_082127_create_report_errors_table.php: -------------------------------------------------------------------------------- 1 | id(); 16 | $table->unsignedBigInteger('user_id')->nullable(); 17 | $table->foreign('user_id')->references('id')->on("users")->onDelete('cascade'); 18 | $table->text('title')->nullable(); 19 | $table->string('code'); 20 | $table->text('url'); 21 | $table->string('ip'); 22 | $table->string('user_agent')->nullable(); 23 | $table->text('request')->nullable(); 24 | $table->text('description')->nullable(); 25 | $table->text('note')->nullable(); 26 | $table->timestamps(); 27 | }); 28 | } 29 | 30 | /** 31 | * Reverse the migrations. 32 | */ 33 | public function down(): void 34 | { 35 | Schema::dropIfExists('report_errors'); 36 | } 37 | }; 38 | -------------------------------------------------------------------------------- /database/seeders/DatabaseSeeder.php: -------------------------------------------------------------------------------- 1 | call([ 16 | RolesAndPermissionsSeeder::class, 17 | UsersSeeder::class, 18 | SettingsSeeder::class, 19 | LanguagesSeeder::class 20 | ]); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /database/seeders/LanguagesSeeder.php: -------------------------------------------------------------------------------- 1 | 'English', 19 | 'code' => 'en', 20 | 'dir' => 'ltr', 21 | 'icon' => 'us', 22 | 'status' => 'Active', 23 | ], 24 | [ 25 | 'name' => 'العربية', 26 | 'code' => 'ar', 27 | 'dir' => 'rtl', 28 | 'icon' => 'eg', 29 | 'status' => 'Active', 30 | ], 31 | ]; 32 | 33 | foreach ($languages as $language) { 34 | Language::create($language); 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /database/seeders/UsersSeeder.php: -------------------------------------------------------------------------------- 1 | "Admin", 18 | 'username' => "admin", 19 | 'email' => 'admin@admin.com', 20 | 'email_verified_at' => now(), 21 | 'password' => bcrypt('password') 22 | ]); 23 | 24 | $user->syncRoles('super-admin'); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /lang/ar/auth.php: -------------------------------------------------------------------------------- 1 | 'لا تتطابق هذه البيانات مع سجلاتنا.', 5 | 'password' => 'كلمة المرور المقدمة غير صحيحة.', 6 | 'throttle' => 'عدد كبير من محاولات تسجيل الدخول. يُرجى المحاولة مرة أخرى بعد :seconds ثانية.', 7 | ]; 8 | -------------------------------------------------------------------------------- /lang/ar/pagination.php: -------------------------------------------------------------------------------- 1 | '« السابق', 5 | 'next' => 'التالي »', 6 | ]; 7 | -------------------------------------------------------------------------------- /lang/ar/passwords.php: -------------------------------------------------------------------------------- 1 | 'تم إعادة تعيين كلمة المرور.', 5 | 'sent' => 'لقد قمنا بإرسال رابط إعادة تعيين كلمة المرور إلى بريدك الإلكتروني.', 6 | 'throttled' => 'الرجاء الانتظار قبل إعادة المحاولة.', 7 | 'token' => 'رمز إعادة تعيين كلمة المرور هذا غير صالح.', 8 | 'user' => 'لا يمكننا العثور على مستخدم بهذا البريد الالكتروني.', 9 | ]; 10 | -------------------------------------------------------------------------------- /lang/en/auth.php: -------------------------------------------------------------------------------- 1 | 'These credentials do not match our records.', 5 | 'password' => 'The provided password is incorrect.', 6 | 'throttle' => 'Too many login attempts. Please try again in :seconds seconds.', 7 | ]; 8 | -------------------------------------------------------------------------------- /lang/en/pagination.php: -------------------------------------------------------------------------------- 1 | '« Previous', 5 | 'next' => 'Next »', 6 | ]; 7 | -------------------------------------------------------------------------------- /lang/en/passwords.php: -------------------------------------------------------------------------------- 1 | 'Your password has been reset.', 5 | 'sent' => 'We have emailed your password reset link.', 6 | 'throttled' => 'Please wait before retrying.', 7 | 'token' => 'This password reset token is invalid.', 8 | 'user' => 'We can\'t find a user with that email address.', 9 | ]; 10 | -------------------------------------------------------------------------------- /modules_statuses.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "type": "module", 4 | "scripts": { 5 | "dev": "vite", 6 | "build": "vite build && vite build --ssr" 7 | }, 8 | "devDependencies": { 9 | "@protonemedia/laravel-splade": "^1.4.8", 10 | "@tailwindcss/forms": "^0.5.3", 11 | "@tailwindcss/typography": "^0.5.2", 12 | "@vitejs/plugin-vue": "^4.0.0", 13 | "autoprefixer": "^10.4.12", 14 | "axios": "^1.1.2", 15 | "laravel-vite-plugin": "^0.7.5", 16 | "postcss": "^8.4.18", 17 | "tailwindcss": "^3.3.0", 18 | "vite": "^4.0.0", 19 | "vue": "^3.2.41" 20 | }, 21 | "dependencies": { 22 | "@fortawesome/fontawesome-free": "^6.4.2" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /phpunit.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | tests/Unit 10 | 11 | 12 | tests/Feature 13 | 14 | 15 | 16 | 17 | app 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | }; 7 | -------------------------------------------------------------------------------- /public/.htaccess: -------------------------------------------------------------------------------- 1 | 2 | 3 | Options -MultiViews -Indexes 4 | 5 | 6 | RewriteEngine On 7 | 8 | # Handle Authorization Header 9 | RewriteCond %{HTTP:Authorization} . 10 | RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 11 | 12 | # Redirect Trailing Slashes If Not A Folder... 13 | RewriteCond %{REQUEST_FILENAME} !-d 14 | RewriteCond %{REQUEST_URI} (.+)/$ 15 | RewriteRule ^ %1 [L,R=301] 16 | 17 | # Send Requests To Front Controller... 18 | RewriteCond %{REQUEST_FILENAME} !-d 19 | RewriteCond %{REQUEST_FILENAME} !-f 20 | RewriteRule ^ index.php [L] 21 | 22 | -------------------------------------------------------------------------------- /public/assets/flags/ae.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/ag.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/am.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/at.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/ax.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/az.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/ba.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/bb.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/bd.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/be.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/bf.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/bg.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/bh.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/bi.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/bj.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/bl.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/bq.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/bs.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/bv.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/bw.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/ca.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /public/assets/flags/cd.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/cf.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/cg.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/ch.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/ci.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/cl.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/cm.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/cn.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/co.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/cr.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/cu.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/cw.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/cz.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/de.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/dj.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/dk.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/dz.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/ee.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/eh.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/eu.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/fi.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/fm.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/fo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/fr.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/ga.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/gb-eng.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/gb-sct.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/gb.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/gf.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/gg.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/gh.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/gl.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/gm.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/gn.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/gp.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/gr.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/gw.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/gy.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/hn.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/hu.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/id.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/ie.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/il.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/in.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/is.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/it.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/jm.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/jo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/jp.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/ke.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/km.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/kn.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/kp.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/kw.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/la.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/lc.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/lr.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/lt.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/lu.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/lv.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/ly.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/ma.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/mc.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/mf.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/mg.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/mh.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/mk.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/ml.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/mm.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/mq.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/mr.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/mu.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/mv.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/na.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/nc.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/ne.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/ng.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/nl.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/no.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/np.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/nr.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/pa.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/pe.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/ph.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/pk.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/pl.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/pm.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/pr.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/ps.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/pw.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/qa.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/re.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/ro.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/ru.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/rw.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/sb.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/sc.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/sd.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/se.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/sg.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/sj.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/sl.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/sn.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/so.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/sr.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/ss.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/st.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/sy.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/td.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/tf.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/tg.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/th.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/tk.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/tl.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/tn.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/to.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/tr.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/tt.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/tw.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/tz.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/ua.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/uz.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/vc.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/ve.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/vn.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/wf.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/ws.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/ye.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/yt.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/assets/flags/za.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/build/assets/_commonjsHelpers-725317a4.js: -------------------------------------------------------------------------------- 1 | var o=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function l(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}export{o as c,l as g}; 2 | -------------------------------------------------------------------------------- /public/build/assets/fa-brands-400-003f1154.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/megoxv/SpladePanel/b25cfabdb199e79dfe1e60e9fa0e54b23dddf645/public/build/assets/fa-brands-400-003f1154.ttf -------------------------------------------------------------------------------- /public/build/assets/fa-brands-400-faae6fc0.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/megoxv/SpladePanel/b25cfabdb199e79dfe1e60e9fa0e54b23dddf645/public/build/assets/fa-brands-400-faae6fc0.woff2 -------------------------------------------------------------------------------- /public/build/assets/fa-regular-400-7d81a1a7.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/megoxv/SpladePanel/b25cfabdb199e79dfe1e60e9fa0e54b23dddf645/public/build/assets/fa-regular-400-7d81a1a7.ttf -------------------------------------------------------------------------------- /public/build/assets/fa-regular-400-9169d8be.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/megoxv/SpladePanel/b25cfabdb199e79dfe1e60e9fa0e54b23dddf645/public/build/assets/fa-regular-400-9169d8be.woff2 -------------------------------------------------------------------------------- /public/build/assets/fa-solid-900-886c8611.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/megoxv/SpladePanel/b25cfabdb199e79dfe1e60e9fa0e54b23dddf645/public/build/assets/fa-solid-900-886c8611.woff2 -------------------------------------------------------------------------------- /public/build/assets/fa-solid-900-cea79b34.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/megoxv/SpladePanel/b25cfabdb199e79dfe1e60e9fa0e54b23dddf645/public/build/assets/fa-solid-900-cea79b34.ttf -------------------------------------------------------------------------------- /public/build/assets/fa-v4compatibility-335fd7d9.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/megoxv/SpladePanel/b25cfabdb199e79dfe1e60e9fa0e54b23dddf645/public/build/assets/fa-v4compatibility-335fd7d9.woff2 -------------------------------------------------------------------------------- /public/build/assets/fa-v4compatibility-455e8e72.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/megoxv/SpladePanel/b25cfabdb199e79dfe1e60e9fa0e54b23dddf645/public/build/assets/fa-v4compatibility-455e8e72.ttf -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/megoxv/SpladePanel/b25cfabdb199e79dfe1e60e9fa0e54b23dddf645/public/favicon.ico -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: 3 | -------------------------------------------------------------------------------- /public/vendor/translations/mix-manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "/app.js": "/app.js", 3 | "/app.css": "/app.css" 4 | } 5 | -------------------------------------------------------------------------------- /resources/css/app.css: -------------------------------------------------------------------------------- 1 | @import "@fortawesome/fontawesome-free/css/all.css"; 2 | 3 | @tailwind base; 4 | @tailwind components; 5 | @tailwind utilities; 6 | 7 | @layer components { 8 | .dark .choices__item { 9 | color: white; 10 | } 11 | 12 | .dark .choices .choices__inner { 13 | background-color: #1F2937; 14 | color: white; 15 | border-color: rgb(75 85 99 / var(--tw-border-opacity)); 16 | } 17 | 18 | .dark .choices__input { 19 | background-color: transparent; 20 | } 21 | 22 | .dark .choices[data-type*=select-one] .choices__input { 23 | background-color: #111827 !important; 24 | color: white; 25 | } 26 | 27 | .dark .choices__list--dropdown, 28 | .dark .choices__list[aria-expanded] { 29 | background-color: #111827 !important; 30 | } 31 | 32 | .dark .choices .choices__list--dropdown .choices__item--selectable { 33 | color: white !important; 34 | } 35 | 36 | :dir(rtl) .choices[data-type*=select-one] .choices__button { 37 | left: 0; 38 | } 39 | } -------------------------------------------------------------------------------- /resources/js/app.js: -------------------------------------------------------------------------------- 1 | import "./bootstrap"; 2 | import "../css/app.css"; 3 | import "@protonemedia/laravel-splade/dist/style.css"; 4 | import { createApp } from "vue/dist/vue.esm-bundler.js"; 5 | import { renderSpladeApp, SpladePlugin } from "@protonemedia/laravel-splade"; 6 | import "@protonemedia/laravel-splade/dist/jodit.css"; 7 | import "../../public/assets/js/toggle-dark-mode"; 8 | 9 | const el = document.getElementById("app"); 10 | 11 | createApp({ 12 | render: renderSpladeApp({ el }) 13 | }) 14 | .use(SpladePlugin, { 15 | "max_keep_alive": 10, 16 | "transform_anchors": false, 17 | "progress_bar": true 18 | }) 19 | .mount(el); 20 | -------------------------------------------------------------------------------- /resources/js/bootstrap.js: -------------------------------------------------------------------------------- 1 | /** 2 | * We'll load the axios HTTP library which allows us to easily issue requests 3 | * to our Laravel back-end. This library automatically handles sending the 4 | * CSRF token as a header based on the value of the "XSRF" token cookie. 5 | */ 6 | 7 | import axios from 'axios'; 8 | window.axios = axios; 9 | 10 | window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'; 11 | 12 | /** 13 | * Echo exposes an expressive API for subscribing to channels and listening 14 | * for events that are broadcast by Laravel. Echo and event broadcasting 15 | * allows your team to easily build robust real-time web applications. 16 | */ 17 | 18 | // import Echo from 'laravel-echo'; 19 | 20 | // import Pusher from 'pusher-js'; 21 | // window.Pusher = Pusher; 22 | 23 | // window.Echo = new Echo({ 24 | // broadcaster: 'pusher', 25 | // key: import.meta.env.VITE_PUSHER_APP_KEY, 26 | // cluster: import.meta.env.VITE_PUSHER_APP_CLUSTER ?? 'mt1', 27 | // wsHost: import.meta.env.VITE_PUSHER_HOST ? import.meta.env.VITE_PUSHER_HOST : `ws-${import.meta.env.VITE_PUSHER_APP_CLUSTER}.pusher.com`, 28 | // wsPort: import.meta.env.VITE_PUSHER_PORT ?? 80, 29 | // wssPort: import.meta.env.VITE_PUSHER_PORT ?? 443, 30 | // forceTLS: (import.meta.env.VITE_PUSHER_SCHEME ?? 'https') === 'https', 31 | // enabledTransports: ['ws', 'wss'], 32 | // }); 33 | -------------------------------------------------------------------------------- /resources/js/ssr.js: -------------------------------------------------------------------------------- 1 | import { createServer } from "http"; 2 | import { createSSRApp } from "vue"; 3 | import { renderToString } from "@vue/server-renderer"; 4 | import { renderSpladeApp, SpladePlugin, startServer } from "@protonemedia/laravel-splade"; 5 | 6 | startServer(createServer, renderToString, (props) => { 7 | return createSSRApp({ 8 | render: renderSpladeApp(props) 9 | }) 10 | .use(SpladePlugin); 11 | }); -------------------------------------------------------------------------------- /resources/markdown/policy.md: -------------------------------------------------------------------------------- 1 | # Privacy Policy 2 | 3 | Edit this file to define the privacy policy for your application. 4 | -------------------------------------------------------------------------------- /resources/markdown/terms.md: -------------------------------------------------------------------------------- 1 | # Terms of Service 2 | 3 | Edit this file to define the terms of service for your application. 4 | -------------------------------------------------------------------------------- /resources/views/api/edit.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | {{ __('API Token Permissions') }} 7 | 8 | 9 | 10 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /resources/views/auth/confirm-password.blade.php: -------------------------------------------------------------------------------- 1 | @seoTitle(__('main.secure_area')) 2 | 3 | 4 |
5 | {{ __('main.confirm_password_message') }} 6 |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | -------------------------------------------------------------------------------- /resources/views/auth/forgot-password.blade.php: -------------------------------------------------------------------------------- 1 | @seoTitle(__('main.forgot_password')) 2 | 3 | 4 |

@lang('main.forgot_password')

5 |
6 | {{ __('main.forgot_password_message') }} 7 |
8 | 9 | @if($status = session('status')) 10 |
11 | {{ $status }} 12 |
13 | @endif 14 | 15 | 16 | 17 | 18 | 19 |
20 | -------------------------------------------------------------------------------- /resources/views/auth/login.blade.php: -------------------------------------------------------------------------------- 1 | @seoTitle(__('main.login')) 2 | 3 | 4 |

@lang('main.login')

5 | @if($status = session('status')) 6 |
7 | {{ $status }} 8 |
9 | @endif 10 | 11 | 12 | 13 | 14 | 15 |
16 | {{ __('main.remember_me') }} 17 | 18 | @if(Route::has('password.request')) 19 | 20 | {{ __('main.forgot_your_password?') }} 21 | 22 | @endif 23 |
24 | 25 |
26 |
27 | -------------------------------------------------------------------------------- /resources/views/auth/reset-password.blade.php: -------------------------------------------------------------------------------- 1 | @seoTitle(__('main.reset_password')) 2 | 3 | 4 |

@lang('main.reset_password')

5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | -------------------------------------------------------------------------------- /resources/views/components/action-message.blade.php: -------------------------------------------------------------------------------- 1 |
class('text-sm text-gray-600') }}> 2 | {{ $slot }} 3 |
4 | -------------------------------------------------------------------------------- /resources/views/components/action-section.blade.php: -------------------------------------------------------------------------------- 1 |
class('md:grid md:grid-cols-3 md:gap-6') }}> 2 | 3 | 4 | {{ $title }} 5 | 6 | 7 | 8 | {{ $description }} 9 | 10 | 11 | 12 |
13 |
14 | {{ $content }} 15 |
16 |
17 |
18 | 19 | -------------------------------------------------------------------------------- /resources/views/components/app-layout.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 | 7 | 8 | @isset($header) 9 |
10 |
11 | {{ $header }} 12 |
13 |
14 | @endif 15 | 16 | 17 |
18 | {{ $slot }} 19 |
20 |
-------------------------------------------------------------------------------- /resources/views/components/application-logo.blade.php: -------------------------------------------------------------------------------- 1 | @if (getSetting('light_logo') && getSetting('dark_logo')) 2 |
3 | {{ getSetting('website_name') }} 4 | 5 |
6 | @else 7 | {{ getSetting('website_name') }} 8 | @endif -------------------------------------------------------------------------------- /resources/views/components/authentication-card.blade.php: -------------------------------------------------------------------------------- 1 |
2 |
3 | {{ $slot }} 4 |
5 |
6 | 7 | -------------------------------------------------------------------------------- /resources/views/components/btn-link.blade.php: -------------------------------------------------------------------------------- 1 | merge() }} class="block border rounded-md shadow-sm font-bold py-2 px-4 focus:outline-none focus:ring focus:ring-opacity-50 bg-indigo-500 hover:bg-indigo-700 text-white border-transparent focus:border-indigo-300 focus:ring-indigo-200"> 2 | {{ $slot }} 3 | 4 | -------------------------------------------------------------------------------- /resources/views/components/dashboard-layout.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |
6 | 7 |
8 | 9 |
10 | {{ $slot }} 11 |
12 |
13 |
14 | -------------------------------------------------------------------------------- /resources/views/components/dialog-modal.blade.php: -------------------------------------------------------------------------------- 1 |
2 |
3 | {{ $title }} 4 |
5 | 6 |
7 | {{ $content }} 8 |
9 |
10 | 11 |
12 | {{ $footer }} 13 |
-------------------------------------------------------------------------------- /resources/views/components/dropdown-link.blade.php: -------------------------------------------------------------------------------- 1 | @props(['as' => false]) 2 | 3 |
4 | @if($as === 'button') 5 | 8 | @elseif($as === 'a') 9 | merge(['class' => 'flex w-full items-center gap-2 whitespace-nowrap rounded-md p-2 text-sm transition-colors duration-75 outline-none disabled:pointer-events-none disabled:opacity-70 hover:bg-gray-50 focus:bg-gray-50 dark:hover:bg-white/5 dark:focus:bg-white/5 dark:text-white']) }}> 10 | {{ $slot }} 11 | 12 | @else 13 | merge(['class' => 'flex w-full items-center gap-2 whitespace-nowrap rounded-md p-2 text-sm transition-colors duration-75 outline-none disabled:pointer-events-none disabled:opacity-70 hover:bg-gray-50 focus:bg-gray-50 dark:hover:bg-white/5 dark:focus:bg-white/5 dark:text-white']) }}> 14 | {{ $slot }} 15 | 16 | @endif 17 |
-------------------------------------------------------------------------------- /resources/views/components/form-section.blade.php: -------------------------------------------------------------------------------- 1 |
class('md:grid md:grid-cols-3 md:gap-6') }}> 2 | 3 | 4 | {{ $title }} 5 | 6 | 7 | 8 | {{ $description }} 9 | 10 | 11 | 12 |
13 |
14 |
15 | {{ $form }} 16 |
17 |
18 | 19 | @isset($actions) 20 |
21 | {{ $actions }} 22 |
23 | @endisset 24 |
25 |
26 | 27 | -------------------------------------------------------------------------------- /resources/views/components/layout.blade.php: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 | 5 | @if(isset($header)) 6 |
7 |
8 |

9 | {{ $header }} 10 |

11 |
12 |
13 | @endif 14 | 15 | 16 |
17 | {{ $slot }} 18 |
19 |
20 | -------------------------------------------------------------------------------- /resources/views/components/nav-link.blade.php: -------------------------------------------------------------------------------- 1 | @props(['active' => false]) 2 | 3 | @php 4 | $classes = ($active ?? false) 5 | ? 'inline-flex items-center px-1 pt-1 border-b-2 border-indigo-400 dark:border-gray-300 text-sm font-medium leading-5 text-gray-900 dark:text-gray-300 focus:outline-none focus:border-indigo-700 dark:focus:border-gray-500 transition duration-150 ease-in-out' 6 | : 'inline-flex items-center px-1 pt-1 border-b-2 border-transparent text-sm font-medium leading-5 text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-200 hover:border-gray-300 dark:hover:border-gray-600 focus:outline-none focus:text-gray-700 dark:focus:text-gray-300 focus:border-gray-300 dark:focus:border-gray-500 transition duration-150 ease-in-out'; 7 | @endphp 8 | 9 | merge(['class' => $classes]) }}> 10 | {{ $slot }} 11 | 12 | -------------------------------------------------------------------------------- /resources/views/components/panel.blade.php: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
class(['p-6 sm:px-20 bg-white border-b border-gray-200' => true]) }}> 5 | {{ $slot }} 6 |
7 |
8 |
9 |
-------------------------------------------------------------------------------- /resources/views/components/responsive-nav-link.blade.php: -------------------------------------------------------------------------------- 1 | @props(['as' => false, 'active' => false]) 2 | 3 | @php 4 | $classes = ($active ?? false) 5 | ? 'block w-full pl-3 pr-4 py-2 border-l-4 border-indigo-400 text-left text-base font-medium text-indigo-700 bg-indigo-50 focus:outline-none focus:text-indigo-800 focus:bg-indigo-100 focus:border-indigo-700 transition duration-150 ease-in-out' 6 | : 'block w-full pl-3 pr-4 py-2 border-l-4 border-transparent text-left text-base font-medium text-gray-600 hover:text-gray-800 hover:bg-gray-50 hover:border-gray-300 focus:outline-none focus:text-gray-800 focus:bg-gray-50 focus:border-gray-300 transition duration-150 ease-in-out'; 7 | @endphp 8 | 9 | @if($as === 'button') 10 | 13 | @else 14 | merge(['class' => $classes]) }}> 15 | {{ $slot }} 16 | 17 | @endif -------------------------------------------------------------------------------- /resources/views/components/section-border.blade.php: -------------------------------------------------------------------------------- 1 |