├── .editorconfig ├── .env.example ├── .gitattributes ├── .gitignore ├── LICENSE.md ├── README.md ├── SECURITY.md ├── app ├── Console │ ├── Commands │ │ ├── CreateRole.php │ │ └── CreateUser.php │ └── Kernel.php ├── Exceptions │ └── Handler.php ├── Filament │ ├── Pages │ │ ├── Dashboard.php │ │ ├── Media.php │ │ ├── Plugins.php │ │ └── Themes.php │ └── Resources │ │ ├── CategoryResource.php │ │ ├── CategoryResource │ │ └── Pages │ │ │ ├── CreateCategory.php │ │ │ ├── EditCategory.php │ │ │ └── ListCategories.php │ │ ├── ChangelogResource.php │ │ ├── ChangelogResource │ │ └── Pages │ │ │ ├── CreateChangelog.php │ │ │ ├── EditChangelog.php │ │ │ └── ListChangelogs.php │ │ ├── FormsResource.php │ │ ├── FormsResource │ │ └── Pages │ │ │ ├── CreateForms.php │ │ │ ├── EditForms.php │ │ │ └── ListForms.php │ │ ├── PageResource.php │ │ ├── PageResource │ │ └── Pages │ │ │ ├── CreatePage.php │ │ │ ├── EditPage.php │ │ │ └── ListPages.php │ │ ├── PermissionResource.php │ │ ├── PermissionResource │ │ └── Pages │ │ │ ├── CreatePermission.php │ │ │ ├── EditPermission.php │ │ │ └── ListPermissions.php │ │ ├── PlanResource.php │ │ ├── PlanResource │ │ └── Pages │ │ │ ├── CreatePlan.php │ │ │ ├── EditPlan.php │ │ │ └── ListPlans.php │ │ ├── PostResource.php │ │ ├── PostResource │ │ └── Pages │ │ │ ├── CreatePost.php │ │ │ ├── EditPost.php │ │ │ └── ListPosts.php │ │ ├── RoleResource.php │ │ ├── RoleResource │ │ └── Pages │ │ │ ├── CreateRole.php │ │ │ ├── EditRole.php │ │ │ └── ListRoles.php │ │ ├── SettingResource.php │ │ ├── SettingResource │ │ └── Pages │ │ │ ├── CreateSetting.php │ │ │ ├── EditSetting.php │ │ │ └── ListSettings.php │ │ ├── UserResource.php │ │ └── UserResource │ │ └── Pages │ │ ├── CreateUser.php │ │ ├── EditUser.php │ │ └── ListUsers.php ├── Http │ ├── Controllers │ │ ├── Api │ │ │ └── ApiController.php │ │ ├── Auth │ │ │ ├── ForgotPasswordController.php │ │ │ ├── RegisterController.php │ │ │ └── ResetPasswordController.php │ │ └── Controller.php │ ├── Kernel.php │ └── Middleware │ │ ├── Authenticate.php │ │ ├── EncryptCookies.php │ │ ├── HttpsRedirect.php │ │ ├── PreventRequestsDuringMaintenance.php │ │ ├── RedirectIfAuthenticated.php │ │ ├── TrimStrings.php │ │ ├── TrustHosts.php │ │ ├── TrustProxies.php │ │ └── VerifyCsrfToken.php ├── Listeners │ └── UserRegistered.php ├── Models │ ├── Category.php │ ├── Forms.php │ ├── Post.php │ └── User.php ├── Notifications │ └── TestNotification.php └── Providers │ ├── AppServiceProvider.php │ ├── AuthServiceProvider.php │ ├── BroadcastServiceProvider.php │ ├── EventServiceProvider.php │ ├── Filament │ └── AdminPanelProvider.php │ ├── FolioServiceProvider.php │ ├── RouteServiceProvider.php │ └── VoltServiceProvider.php ├── artisan ├── bootstrap ├── app.php └── cache │ └── .gitignore ├── composer.json ├── composer.lock ├── config ├── app.php ├── auth.php ├── broadcasting.php ├── cache.php ├── cors.php ├── database.php ├── devdojo │ ├── auth │ │ ├── appearance.php │ │ ├── descriptions.php │ │ ├── language.php │ │ ├── providers.php │ │ └── settings.php │ └── billing │ │ ├── keys.php │ │ ├── language.php │ │ └── style.php ├── discussions.php ├── features.php ├── filament-google-analytics.php ├── filesystems.php ├── forms.php ├── hashing.php ├── image.php ├── jwt.php ├── livewire.php ├── logging.php ├── mail.php ├── passport.php ├── permission.php ├── profile.php ├── queue.php ├── services.php ├── session.php ├── style.php ├── themes.php ├── view.php ├── voyager.php └── wave.php ├── database ├── .gitignore ├── factories │ └── UserFactory.php ├── migrations │ ├── 2024_04_24_000001_add_user_social_provider_table.php │ ├── 2024_04_24_000002_update_passwords_field_to_be_nullable.php │ ├── 2024_05_07_000003_add_two_factor_auth_columns.php │ ├── 2024_07_31_133819_add_description_to_roles_table.php │ └── 2025_02_19_101241_change_user_social_provider_table.php └── seeders │ ├── ApiKeysTableSeeder.php │ ├── CategoriesTableSeeder.php │ ├── ChangelogsTableSeeder.php │ ├── DatabaseSeeder.php │ ├── ModelHasRolesTableSeeder.php │ ├── NotificationsTableSeeder.php │ ├── PagesTableSeeder.php │ ├── PasswordResetsTableSeeder.php │ ├── PermissionRoleTableSeeder.php │ ├── PermissionsTableSeeder.php │ ├── PlansTableSeeder.php │ ├── PostsTableSeeder.php │ ├── ProfileKeyValuesTableSeeder.php │ ├── RolesTableSeeder.php │ ├── SettingsTableSeeder.php │ ├── ThemesTableSeeder.php │ ├── TranslationsTableSeeder.php │ ├── UsersTableSeeder.php │ ├── VoyagerThemeOptionsTableSeeder.php │ └── VoyagerThemesTableSeeder.php ├── lang ├── al │ └── voyager.php ├── ar │ ├── auth.php │ ├── pagination.php │ ├── passwords.php │ ├── validation.php │ └── voyager.php ├── de │ └── voyager.php ├── en │ ├── auth.php │ ├── pagination.php │ ├── passwords.php │ ├── validation.php │ └── voyager.php ├── es │ └── voyager.php ├── fr │ └── voyager.php ├── it │ ├── auth.php │ ├── pagination.php │ ├── passwords.php │ ├── validation.php │ └── voyager.php ├── pl │ ├── auth.php │ ├── pagination.php │ ├── passwords.php │ ├── validation.php │ └── voyager.php ├── pt │ └── voyager.php ├── pt_br │ └── voyager.php ├── ro │ └── voyager.php ├── ru │ └── voyager.php ├── tr │ └── voyager.php ├── uk │ └── voyager.php └── zh_CN │ └── voyager.php ├── package-lock.json ├── package.json ├── phpunit.xml ├── postcss.config.js ├── public ├── .htaccess ├── auth │ ├── app.css │ ├── build │ │ ├── assets │ │ │ ├── scripts.js │ │ │ └── styles.css │ │ └── manifest.json │ └── img │ │ ├── favicon-dark.png │ │ ├── favicon.ico │ │ └── favicon.png ├── billing │ ├── main.css │ ├── main.js │ └── manifest.json ├── build │ ├── assets │ │ ├── app-CaUPGaqM.js │ │ ├── app-wtvMdoFz.css │ │ └── theme-DQ4Ao_DX.css │ └── manifest.json ├── composer │ ├── install.php │ ├── mac.php │ └── windows.php ├── css │ ├── bezhansalleh │ │ └── filament-google-analytics │ │ │ └── filament-google-analytics.css │ └── filament │ │ ├── filament │ │ └── app.css │ │ ├── forms │ │ └── forms.css │ │ └── support │ │ └── support.css ├── favicon.ico ├── index.php ├── js │ └── filament │ │ ├── filament │ │ ├── app.js │ │ └── echo.js │ │ ├── forms │ │ └── components │ │ │ ├── color-picker.js │ │ │ ├── date-time-picker.js │ │ │ ├── file-upload.js │ │ │ ├── key-value.js │ │ │ ├── markdown-editor.js │ │ │ ├── rich-editor.js │ │ │ ├── select.js │ │ │ ├── tags-input.js │ │ │ └── textarea.js │ │ ├── notifications │ │ └── notifications.js │ │ ├── support │ │ ├── async-alpine.js │ │ └── support.js │ │ ├── tables │ │ └── components │ │ │ └── table.js │ │ └── widgets │ │ └── components │ │ ├── chart.js │ │ └── stats-overview │ │ └── stat │ │ └── chart.js ├── mix-manifest.json ├── robots.txt ├── themes │ ├── drift │ │ └── shadow.svg │ ├── tailwind │ │ ├── css │ │ │ └── app.css │ │ ├── images │ │ │ ├── admin.png │ │ │ ├── announcements.png │ │ │ ├── api.png │ │ │ ├── authentication.png │ │ │ ├── blog.png │ │ │ ├── impersonation.png │ │ │ ├── notifications.png │ │ │ ├── plans.png │ │ │ ├── profile.png │ │ │ ├── roles.png │ │ │ ├── subscriptions.png │ │ │ ├── testimonial-1.jpg │ │ │ ├── testimonial-2.jpg │ │ │ ├── testimonial-3.jpg │ │ │ └── themes.png │ │ ├── js │ │ │ └── app.js │ │ ├── mix-manifest.json │ │ └── tailwind.jpg │ └── tallstack │ │ ├── css │ │ └── app.css │ │ ├── js │ │ └── app.js │ │ ├── mix-manifest.json │ │ └── tallstack.jpg ├── vendor │ ├── binarytorch │ │ └── larecipe │ │ │ └── assets │ │ │ ├── css │ │ │ ├── app.css │ │ │ ├── font-awesome-v4-shims.css │ │ │ └── font-awesome.css │ │ │ ├── fonts │ │ │ ├── fa-brands-400.eot │ │ │ ├── fa-brands-400.svg │ │ │ ├── fa-brands-400.ttf │ │ │ ├── fa-brands-400.woff │ │ │ ├── fa-brands-400.woff2 │ │ │ ├── fa-regular-400.eot │ │ │ ├── fa-regular-400.svg │ │ │ ├── fa-regular-400.ttf │ │ │ ├── fa-regular-400.woff │ │ │ ├── fa-regular-400.woff2 │ │ │ ├── fa-solid-900.eot │ │ │ ├── fa-solid-900.svg │ │ │ ├── fa-solid-900.ttf │ │ │ ├── fa-solid-900.woff │ │ │ ├── fa-solid-900.woff2 │ │ │ ├── fontawesome-webfont.eot │ │ │ ├── fontawesome-webfont.svg │ │ │ ├── fontawesome-webfont.ttf │ │ │ ├── fontawesome-webfont.woff │ │ │ ├── fontawesome-webfont.woff2 │ │ │ ├── nucleo-icons.eot │ │ │ ├── nucleo-icons.svg │ │ │ ├── nucleo-icons.ttf │ │ │ ├── nucleo-icons.woff │ │ │ └── nucleo-icons.woff2 │ │ │ └── js │ │ │ └── app.js │ ├── livewire │ │ ├── livewire.esm.js │ │ ├── livewire.esm.js.map │ │ ├── livewire.js │ │ ├── livewire.min.js │ │ ├── livewire.min.js.map │ │ └── manifest.json │ └── tcg │ │ └── voyager │ │ └── assets │ │ ├── css │ │ ├── app.css │ │ └── rtl.css │ │ ├── fonts │ │ ├── bootstrap │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ └── glyphicons-halflings-regular.woff2 │ │ ├── icons-reference.html │ │ ├── voyager.eot │ │ ├── voyager.svg │ │ ├── voyager.ttf │ │ └── voyager.woff │ │ ├── images │ │ ├── bg.jpg │ │ ├── captain-avatar.png │ │ ├── compass │ │ │ ├── documentation.jpg │ │ │ ├── hooks.jpg │ │ │ └── voyager-home.jpg │ │ ├── helm.svg │ │ ├── large-logo-icon-light.png │ │ ├── large-logo-icon.png │ │ ├── logo-icon-light.png │ │ ├── logo-icon.png │ │ ├── voyager-character.png │ │ ├── voyager-character.sketch │ │ └── widget-backgrounds │ │ │ ├── 01.jpg │ │ │ ├── 02.jpg │ │ │ └── 03.jpg │ │ └── js │ │ ├── app.js │ │ ├── plugins │ │ ├── advlist │ │ │ └── plugin.min.js │ │ ├── anchor │ │ │ └── plugin.min.js │ │ ├── autolink │ │ │ └── plugin.min.js │ │ ├── autoresize │ │ │ └── plugin.min.js │ │ ├── autosave │ │ │ └── plugin.min.js │ │ ├── bbcode │ │ │ └── plugin.min.js │ │ ├── charmap │ │ │ └── plugin.min.js │ │ ├── code │ │ │ └── plugin.js │ │ ├── codesample │ │ │ ├── css │ │ │ │ └── prism.css │ │ │ └── plugin.min.js │ │ ├── colorpicker │ │ │ └── plugin.min.js │ │ ├── contextmenu │ │ │ └── plugin.min.js │ │ ├── directionality │ │ │ └── plugin.min.js │ │ ├── emoticons │ │ │ ├── img │ │ │ │ ├── smiley-cool.gif │ │ │ │ ├── smiley-cry.gif │ │ │ │ ├── smiley-embarassed.gif │ │ │ │ ├── smiley-foot-in-mouth.gif │ │ │ │ ├── smiley-frown.gif │ │ │ │ ├── smiley-innocent.gif │ │ │ │ ├── smiley-kiss.gif │ │ │ │ ├── smiley-laughing.gif │ │ │ │ ├── smiley-money-mouth.gif │ │ │ │ ├── smiley-sealed.gif │ │ │ │ ├── smiley-smile.gif │ │ │ │ ├── smiley-surprised.gif │ │ │ │ ├── smiley-tongue-out.gif │ │ │ │ ├── smiley-undecided.gif │ │ │ │ ├── smiley-wink.gif │ │ │ │ └── smiley-yell.gif │ │ │ └── plugin.min.js │ │ ├── example │ │ │ ├── dialog.html │ │ │ └── plugin.min.js │ │ ├── example_dependency │ │ │ └── plugin.min.js │ │ ├── fullpage │ │ │ └── plugin.min.js │ │ ├── fullscreen │ │ │ └── plugin.min.js │ │ ├── giphy │ │ │ ├── html │ │ │ │ ├── css │ │ │ │ │ └── giphyPopup.css │ │ │ │ ├── giphy.html │ │ │ │ ├── img │ │ │ │ │ ├── clear.gif │ │ │ │ │ ├── giphy_icon_128.png │ │ │ │ │ ├── giphy_icon_16.png │ │ │ │ │ ├── giphy_icon_19.png │ │ │ │ │ ├── giphy_icon_38.png │ │ │ │ │ ├── giphy_icon_48.png │ │ │ │ │ ├── giphy_logo_laser.gif │ │ │ │ │ ├── giphy_logo_txt.png │ │ │ │ │ ├── icon_add.png │ │ │ │ │ ├── icon_back.png │ │ │ │ │ ├── icon_categories.png │ │ │ │ │ ├── icon_email.png │ │ │ │ │ ├── icon_facebook.png │ │ │ │ │ ├── icon_heart_red.png │ │ │ │ │ ├── icon_heart_white.png │ │ │ │ │ ├── icon_link_white.png │ │ │ │ │ ├── icon_menu.png │ │ │ │ │ ├── icon_reactions.png │ │ │ │ │ ├── icon_search.png │ │ │ │ │ ├── icon_sms.png │ │ │ │ │ ├── icon_twitter.png │ │ │ │ │ └── loader_purple.gif │ │ │ │ └── js │ │ │ │ │ ├── GiphySearch.js │ │ │ │ │ ├── giphy_cms_ext.js │ │ │ │ │ ├── imagesloaded.pkgd.min.js │ │ │ │ │ ├── init.js │ │ │ │ │ ├── jquery.xdomainrequest.min.js │ │ │ │ │ ├── masonry.pkgd.min.js │ │ │ │ │ └── newT.js │ │ │ ├── img │ │ │ │ ├── clear.gif │ │ │ │ ├── giphyicon20px.png │ │ │ │ └── giphyiconoff20px.png │ │ │ └── plugin.js │ │ ├── hr │ │ │ └── plugin.min.js │ │ ├── image │ │ │ └── plugin.js │ │ ├── imagetools │ │ │ └── plugin.min.js │ │ ├── importcss │ │ │ └── plugin.min.js │ │ ├── insertdatetime │ │ │ └── plugin.min.js │ │ ├── layer │ │ │ └── plugin.min.js │ │ ├── legacyoutput │ │ │ └── plugin.min.js │ │ ├── link │ │ │ └── plugin.js │ │ ├── lists │ │ │ ├── index.js │ │ │ ├── plugin.js │ │ │ └── plugin.min.js │ │ ├── media │ │ │ ├── moxieplayer.swf │ │ │ └── plugin.min.js │ │ ├── nonbreaking │ │ │ └── plugin.min.js │ │ ├── noneditable │ │ │ └── plugin.min.js │ │ ├── pagebreak │ │ │ └── plugin.min.js │ │ ├── paste │ │ │ └── plugin.min.js │ │ ├── preview │ │ │ └── plugin.min.js │ │ ├── print │ │ │ └── plugin.min.js │ │ ├── save │ │ │ └── plugin.min.js │ │ ├── searchreplace │ │ │ └── plugin.min.js │ │ ├── spellchecker │ │ │ └── plugin.min.js │ │ ├── tabfocus │ │ │ └── plugin.min.js │ │ ├── table │ │ │ └── plugin.js │ │ ├── template │ │ │ └── plugin.min.js │ │ ├── textcolor │ │ │ └── plugin.js │ │ ├── textpattern │ │ │ └── plugin.min.js │ │ ├── toc │ │ │ └── plugin.min.js │ │ ├── visualblocks │ │ │ ├── css │ │ │ │ └── visualblocks.css │ │ │ └── plugin.min.js │ │ ├── visualchars │ │ │ └── plugin.min.js │ │ ├── wordcount │ │ │ └── plugin.min.js │ │ └── youtube │ │ │ ├── css │ │ │ ├── bootstrap-theme.min.css │ │ │ ├── bootstrap.min.css │ │ │ └── style.css │ │ │ ├── fonts │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ └── glyphicons-halflings-regular.woff │ │ │ ├── icon.png │ │ │ ├── js │ │ │ ├── bootstrap.js │ │ │ ├── bootstrap.min.js │ │ │ ├── jQuery.jQTubeUtil.js │ │ │ ├── jquery.js │ │ │ ├── jquery.yt_data_v3.js │ │ │ ├── modernizr.js │ │ │ ├── mustache.js │ │ │ └── youtube.js │ │ │ ├── langs │ │ │ ├── de.js │ │ │ ├── en.js │ │ │ └── nl.js │ │ │ ├── plugin.js │ │ │ ├── preview.jpg │ │ │ ├── slider │ │ │ ├── css │ │ │ │ ├── slide.png │ │ │ │ └── slider.css │ │ │ ├── js │ │ │ │ └── bootstrap-slider.js │ │ │ └── less │ │ │ │ └── slider.less │ │ │ ├── template │ │ │ └── forms.html │ │ │ └── youtube.html │ │ ├── skins │ │ ├── lightgray │ │ │ ├── content.inline.min.css │ │ │ ├── content.min.css │ │ │ ├── fonts │ │ │ │ ├── tinymce-small.eot │ │ │ │ ├── tinymce-small.svg │ │ │ │ ├── tinymce-small.ttf │ │ │ │ ├── tinymce-small.woff │ │ │ │ ├── tinymce.eot │ │ │ │ ├── tinymce.svg │ │ │ │ ├── tinymce.ttf │ │ │ │ └── tinymce.woff │ │ │ ├── img │ │ │ │ ├── anchor.gif │ │ │ │ ├── loader.gif │ │ │ │ ├── object.gif │ │ │ │ └── trans.gif │ │ │ ├── skin.ie7.min.css │ │ │ └── skin.min.css │ │ └── voyager │ │ │ ├── Variables.less │ │ │ ├── content.inline.min.css │ │ │ ├── content.min.css │ │ │ ├── fonts │ │ │ ├── readme.md │ │ │ ├── tinymce-small.eot │ │ │ ├── tinymce-small.json │ │ │ ├── tinymce-small.svg │ │ │ ├── tinymce-small.ttf │ │ │ ├── tinymce-small.woff │ │ │ ├── tinymce.eot │ │ │ ├── tinymce.json │ │ │ ├── tinymce.svg │ │ │ ├── tinymce.ttf │ │ │ └── tinymce.woff │ │ │ ├── img │ │ │ ├── anchor.gif │ │ │ ├── loader.gif │ │ │ ├── object.gif │ │ │ └── trans.gif │ │ │ ├── skin.ie7.min.css │ │ │ ├── skin.json │ │ │ └── skin.min.css │ │ └── themes │ │ └── modern │ │ └── theme.js └── wave │ ├── css │ └── docs.css │ ├── favicon-dark.png │ ├── favicon.png │ ├── img │ ├── analytics-placeholder.jpg │ ├── character.png │ ├── community.png │ ├── docs.png │ ├── docs │ │ ├── 1.0 │ │ │ ├── admin-1.png │ │ │ ├── admin-themes-1.png │ │ │ ├── admin-themes-2.png │ │ │ ├── admin-themes-3.png │ │ │ ├── announcements-1.png │ │ │ ├── announcements-2.png │ │ │ ├── announcements-3.png │ │ │ ├── announcements-4.png │ │ │ ├── api-1.png │ │ │ ├── api-2.png │ │ │ ├── api-3.png │ │ │ ├── api-4.png │ │ │ ├── api-5.png │ │ │ ├── api-6.png │ │ │ ├── api-7.png │ │ │ ├── blog-index.png │ │ │ ├── blog-post.png │ │ │ ├── impersonate-1.png │ │ │ ├── impersonate-2.png │ │ │ ├── insomnia-1.png │ │ │ ├── insomnia-2.png │ │ │ ├── insomnia-3.png │ │ │ ├── notifications-1.png │ │ │ ├── notifications-2.png │ │ │ ├── plans-stripe-create.png │ │ │ ├── plans-stripe-dashboard.png │ │ │ ├── plans-stripe-new.png │ │ │ ├── posts-admin-1.png │ │ │ ├── posts-admin-2.png │ │ │ ├── posts-admin-3.png │ │ │ ├── register-billing.png │ │ │ ├── stripe-dashboard.png │ │ │ ├── user-profile-settings.png │ │ │ ├── user-profile.png │ │ │ ├── user-roles-1.png │ │ │ ├── user-roles-2.png │ │ │ ├── user-roles-3.png │ │ │ ├── verify-email.png │ │ │ ├── wave-docs.png │ │ │ ├── wave-plan-new.png │ │ │ ├── wave-plans-delete.png │ │ │ ├── wave-role-add-new.png │ │ │ ├── wave-role-create.png │ │ │ ├── wave-role-permissions.png │ │ │ └── wave-roles-delete.png │ │ └── 2.0 │ │ │ ├── admin-1.png │ │ │ ├── admin-themes-1.png │ │ │ ├── admin-themes-2.png │ │ │ ├── admin-themes-3.png │ │ │ ├── announcements-1.png │ │ │ ├── announcements-2.png │ │ │ ├── announcements-3.png │ │ │ ├── announcements-4.png │ │ │ ├── api-1.png │ │ │ ├── api-2.png │ │ │ ├── api-3.png │ │ │ ├── api-4.png │ │ │ ├── api-5.png │ │ │ ├── api-6.png │ │ │ ├── api-7.png │ │ │ ├── blog-index.png │ │ │ ├── blog-post.png │ │ │ ├── impersonate-1.png │ │ │ ├── impersonate-2.png │ │ │ ├── insomnia-1.png │ │ │ ├── insomnia-2.png │ │ │ ├── insomnia-3.png │ │ │ ├── notifications-1.png │ │ │ ├── notifications-2.png │ │ │ ├── plans-stripe-create.png │ │ │ ├── plans-stripe-dashboard.png │ │ │ ├── plans-stripe-new.png │ │ │ ├── posts-admin-1.png │ │ │ ├── posts-admin-2.png │ │ │ ├── posts-admin-3.png │ │ │ ├── register-billing.png │ │ │ ├── stripe-dashboard.png │ │ │ ├── user-profile-settings.png │ │ │ ├── user-profile.png │ │ │ ├── user-roles-1.png │ │ │ ├── user-roles-2.png │ │ │ ├── user-roles-3.png │ │ │ ├── verify-email.png │ │ │ ├── wave-docs-2.png │ │ │ ├── wave-docs.png │ │ │ ├── wave-plan-new.png │ │ │ ├── wave-plans-delete.png │ │ │ ├── wave-role-add-new.png │ │ │ ├── wave-role-create.png │ │ │ ├── wave-role-permissions.png │ │ │ └── wave-roles-delete.png │ ├── empty-state-dark.png │ ├── empty-state.png │ ├── globe.png │ ├── icons │ │ ├── anchor.png │ │ ├── chest.png │ │ ├── compass.png │ │ ├── lighthouse.png │ │ └── turtle.png │ ├── laptop.png │ └── logo.png │ └── js │ └── docs.js ├── resources ├── css │ └── filament │ │ └── admin │ │ ├── tailwind.config.js │ │ └── theme.css ├── plugins │ └── installed.json ├── themes │ ├── .gitignore │ └── anchor │ │ ├── assets │ │ ├── css │ │ │ ├── app.css │ │ │ └── component-styles.css │ │ └── js │ │ │ └── app.js │ │ ├── components │ │ ├── app │ │ │ ├── alert.blade.php │ │ │ ├── container-full.blade.php │ │ │ ├── container.blade.php │ │ │ ├── dashboard-card.blade.php │ │ │ ├── heading.blade.php │ │ │ ├── light-dark-toggle.blade.php │ │ │ ├── message-for-admin.blade.php │ │ │ ├── message-for-subscriber.blade.php │ │ │ ├── settings-layout.blade.php │ │ │ ├── sidebar-dropdown.blade.php │ │ │ ├── sidebar-link.blade.php │ │ │ ├── sidebar.blade.php │ │ │ └── user-menu.blade.php │ │ ├── elements │ │ │ ├── back-button.blade.php │ │ │ ├── button.blade.php │ │ │ ├── card.blade.php │ │ │ ├── checkbox.blade.php │ │ │ ├── code-inline.blade.php │ │ │ ├── container.blade.php │ │ │ ├── heading-description.blade.php │ │ │ ├── icon.blade.php │ │ │ ├── input.blade.php │ │ │ ├── label.blade.php │ │ │ ├── link.blade.php │ │ │ ├── placeholder.blade.php │ │ │ └── settings-sidebar-link.blade.php │ │ ├── layouts │ │ │ ├── app.blade.php │ │ │ ├── empty.blade.php │ │ │ └── marketing.blade.php │ │ └── marketing │ │ │ ├── elements │ │ │ ├── header.blade.php │ │ │ └── heading.blade.php │ │ │ └── sections │ │ │ ├── features.blade.php │ │ │ ├── hero.blade.php │ │ │ ├── pricing.blade.php │ │ │ └── testimonials.blade.php │ │ ├── emails │ │ └── verify-email.blade.php │ │ ├── page.blade.php │ │ ├── pages │ │ ├── blog │ │ │ ├── [.Wave.Category-slug] │ │ │ │ ├── [.Wave.Post-slug].blade.php │ │ │ │ └── index.blade.php │ │ │ └── index.blade.php │ │ ├── changelog │ │ │ ├── [.Wave.Changelog].blade.php │ │ │ └── index.blade.php │ │ ├── dashboard │ │ │ └── index.blade.php │ │ ├── index.blade.php │ │ ├── layout │ │ │ └── fullscreen.blade.php │ │ ├── notifications │ │ │ └── index.blade.php │ │ ├── pricing │ │ │ └── index.blade.php │ │ ├── profile │ │ │ └── [username].blade.php │ │ ├── settings │ │ │ ├── api.blade.php │ │ │ ├── invoices.blade.php │ │ │ ├── profile.blade.php │ │ │ ├── security.blade.php │ │ │ └── subscription.blade.php │ │ └── subscription │ │ │ └── welcome.blade.php │ │ ├── partials │ │ ├── blog │ │ │ ├── categories.blade.php │ │ │ └── posts-loop.blade.php │ │ ├── cancel-modal.blade.php │ │ ├── cancel.blade.php │ │ ├── changelogs.blade.php │ │ ├── dev_bar.blade.php │ │ ├── footer-scripts.blade.php │ │ ├── footer.blade.php │ │ ├── head.blade.php │ │ ├── header-app.blade.php │ │ ├── menus │ │ │ ├── app-mobile.blade.php │ │ │ ├── app.blade.php │ │ │ ├── marketing-mobile.blade.php │ │ │ └── marketing.blade.php │ │ ├── notifications.blade.php │ │ ├── pagination.blade.php │ │ ├── payment-form.blade.php │ │ ├── reactivate.blade.php │ │ ├── switch-plans-modal.blade.php │ │ └── toast.blade.php │ │ ├── theme.jpg │ │ └── theme.json └── views │ ├── components │ ├── avatar.blade.php │ ├── button-s.blade.php │ ├── button.blade.php │ ├── empty-state.blade.php │ ├── favicon.blade.php │ ├── logo-icon.blade.php │ └── logo.blade.php │ ├── filament │ └── pages │ │ ├── media.blade.php │ │ ├── my-custom-dashboard-page.blade.php │ │ ├── plugins.blade.php │ │ └── themes.blade.php │ ├── livewire │ ├── form.blade.php │ └── wave │ │ └── deploy-to-do.blade.php │ └── vendor │ ├── mail │ ├── html │ │ ├── button.blade.php │ │ ├── footer.blade.php │ │ ├── header.blade.php │ │ ├── layout.blade.php │ │ ├── message.blade.php │ │ ├── panel.blade.php │ │ ├── promotion.blade.php │ │ ├── promotion │ │ │ └── button.blade.php │ │ ├── subcopy.blade.php │ │ ├── table.blade.php │ │ └── themes │ │ │ └── default.css │ ├── markdown │ │ ├── button.blade.php │ │ ├── footer.blade.php │ │ ├── header.blade.php │ │ ├── layout.blade.php │ │ ├── message.blade.php │ │ ├── panel.blade.php │ │ ├── promotion.blade.php │ │ ├── promotion │ │ │ └── button.blade.php │ │ ├── subcopy.blade.php │ │ └── table.blade.php │ └── text │ │ ├── button.blade.php │ │ ├── footer.blade.php │ │ ├── header.blade.php │ │ ├── layout.blade.php │ │ ├── message.blade.php │ │ ├── panel.blade.php │ │ ├── subcopy.blade.php │ │ └── table.blade.php │ └── notifications │ └── email.blade.php ├── routes ├── api.php ├── channels.php ├── console.php └── web.php ├── storage ├── app │ └── public │ │ ├── auth │ │ ├── favicon-dark.png │ │ └── favicon.png │ │ └── demo │ │ ├── blog-1.jpg │ │ ├── blog-2.jpg │ │ ├── cove-hero-image.png │ │ ├── default.png │ │ ├── post-dreams.jpg │ │ ├── post-foundation.jpg │ │ ├── post-market.jpg │ │ ├── post-never-stop.jpg │ │ ├── post-solution.jpg │ │ └── post-useful.jpg ├── database.sqlite ├── dump.sql ├── framework │ ├── .gitignore │ ├── cache │ │ └── .gitignore │ ├── sessions │ │ └── .gitignore │ ├── testing │ │ └── .gitignore │ └── views │ │ └── .gitignore ├── logs │ └── .gitignore ├── pail │ └── .gitignore ├── test │ └── scooby.jpg ├── wave-logo.png └── wave-svg.sketch ├── tailwind.config.js ├── tests ├── Datasets │ ├── AuthRoutes.php │ └── Routes.php ├── Feature │ ├── HomeTest.php │ └── RouteTest.php ├── Pest.php ├── TestCase.php └── Unit │ └── ExampleTest.php ├── theme.json ├── vite.config.js └── wave ├── composer.json ├── database └── migrations │ ├── 2024_03_29_225419_create_users_table.php │ ├── 2024_03_29_225420_create_permission_roles_tables.php │ ├── 2024_03_29_225435_create_categories_table.php │ ├── 2024_03_29_225523_create_themes_table.php │ ├── 2024_03_29_225656_create_changelogs_table.php │ ├── 2024_03_29_225657_create_changelog_user_table.php │ ├── 2024_03_29_225729_create_api_keys_table.php │ ├── 2024_03_29_225928_create_notifications_table.php │ ├── 2024_03_29_230148_create_pages_table.php │ ├── 2024_03_29_230255_create_password_resets_table.php │ ├── 2024_03_29_230312_create_plans_table.php │ ├── 2024_03_29_230313_create_subscriptions_table.php │ ├── 2024_03_29_230316_create_posts_table.php │ ├── 2024_03_29_230531_create_settings_table.php │ ├── 2024_03_29_230541_create_theme_options_table.php │ ├── 2024_03_29_230648_create_key_values_table.php │ └── 2024_06_26_224315_create_forms_table.php ├── resources ├── demo │ └── builds │ │ └── vite.config.js └── views │ ├── admin-boxes.blade.php │ ├── admin │ ├── components │ │ └── label.blade.php │ ├── logo-dark.blade.php │ └── logo.blade.php │ ├── components │ └── billing │ │ ├── billing_cycle_toggle.blade.php │ │ └── button.blade.php │ ├── install.blade.php │ ├── livewire │ └── billing │ │ ├── checkout.blade.php │ │ └── update.blade.php │ ├── media │ ├── index.blade.php │ └── views │ │ ├── active-file.blade.php │ │ ├── breadcrumbs.blade.php │ │ ├── files.blade.php │ │ ├── full-screen-file-modal.blade.php │ │ ├── header.blade.php │ │ └── header │ │ ├── add-folder.blade.php │ │ ├── delete.blade.php │ │ ├── move.blade.php │ │ └── search.blade.php │ ├── partials │ └── billing │ │ └── paddle_init.blade.php │ ├── premium-theme-message.blade.php │ ├── premium-theme-messages │ ├── 1.blade.php │ ├── 2.blade.php │ ├── 3.blade.php │ ├── 4.blade.php │ ├── 5.blade.php │ ├── 6.blade.php │ ├── 7.blade.php │ ├── 8.blade.php │ └── 9.blade.php │ ├── welcome.blade.php │ └── widgets │ ├── analytics-placeholder-widget.blade.php │ ├── posts-pages-widget.blade.php │ ├── users-widget.blade.php │ ├── wave-info-widget.blade.php │ ├── wave-stats-widget.blade.php │ └── welcome-widget.blade.php ├── routes ├── api.php └── web.php ├── src ├── Actions │ ├── Billing │ │ └── Paddle │ │ │ └── AddSubscriptionIdFromTransaction.php │ └── Reset.php ├── ApiKey.php ├── Category.php ├── Changelog.php ├── Console │ └── Commands │ │ ├── CancelExpiredSubscriptions.php │ │ └── CreatePluginCommand.php ├── Facades │ └── Wave.php ├── Form.php ├── FormEntry.php ├── Helpers │ └── globals.php ├── Http │ ├── Controllers │ │ ├── API │ │ │ └── AuthController.php │ │ ├── Billing │ │ │ ├── Paddle.php │ │ │ ├── Stripe.php │ │ │ └── Webhooks │ │ │ │ ├── PaddleWebhook.php │ │ │ │ └── StripeWebhook.php │ │ ├── ChangelogController.php │ │ ├── LogoutController.php │ │ ├── NotificationController.php │ │ ├── PageController.php │ │ ├── PluginImageController.php │ │ ├── SubscriptionController.php │ │ └── ThemeImageController.php │ ├── Livewire │ │ ├── Billing │ │ │ ├── Checkout.php │ │ │ └── Update.php │ │ └── Notifications │ │ │ └── Notification.php │ └── Middleware │ │ ├── AdminMiddleware.php │ │ ├── InstallMiddleware.php │ │ ├── Subscribed.php │ │ ├── ThemeDemoMiddleware.php │ │ ├── TokenMiddleware.php │ │ ├── VerifyPaddleWebhookSignature.php │ │ └── VerifyWebhook.php ├── Notifications │ └── VerifyEmail.php ├── Overrides │ └── Vite.php ├── Page.php ├── Plan.php ├── Plugins │ ├── Plugin.php │ ├── PluginAutoloader.php │ ├── PluginManager.php │ └── PluginServiceProvider.php ├── Post.php ├── ProfileKeyValue.php ├── Setting.php ├── Subscription.php ├── Theme.php ├── ThemeOptions.php ├── Traits │ ├── HasDynamicFields.php │ └── HasProfileKeyValues.php ├── Translation.php ├── User.php ├── Wave.php ├── WaveServiceProvider.php └── Widgets │ ├── AnalyticsPlaceholderWidget.php │ ├── PostsPagesWidget.php │ ├── UsersWidget.php │ ├── WaveInfoWidget.php │ ├── WaveStatsWidget.php │ └── WelcomeWidget.php └── wave.json /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | end_of_line = lf 6 | insert_final_newline = true 7 | indent_style = space 8 | indent_size = 4 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 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 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 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | **PLEASE DON'T DISCLOSE SECURITY-RELATED ISSUES PUBLICLY.** 4 | 5 | ## Reporting a Vulnerability 6 | 7 | If you discover a security vulnerability within Wave, please send an email to the DevDojo team at support@devdojo.com. All security vulnerabilities will be promptly addressed. 8 | -------------------------------------------------------------------------------- /app/Filament/Pages/Dashboard.php: -------------------------------------------------------------------------------- 1 | pages([]); 15 | } 16 | } -------------------------------------------------------------------------------- /app/Filament/Pages/Media.php: -------------------------------------------------------------------------------- 1 | expectsJson()) { 18 | return route('login'); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/Http/Middleware/EncryptCookies.php: -------------------------------------------------------------------------------- 1 | 13 | */ 14 | protected $except = [ 15 | 'theme' 16 | ]; 17 | } 18 | -------------------------------------------------------------------------------- /app/Http/Middleware/HttpsRedirect.php: -------------------------------------------------------------------------------- 1 | secure() && app()->environment('production')) { 19 | return redirect()->secure($request->getRequestUri()); 20 | } 21 | 22 | return $next($request); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /app/Http/Middleware/PreventRequestsDuringMaintenance.php: -------------------------------------------------------------------------------- 1 | 13 | */ 14 | protected $except = [ 15 | // 16 | ]; 17 | } 18 | -------------------------------------------------------------------------------- /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() 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/VerifyCsrfToken.php: -------------------------------------------------------------------------------- 1 | 13 | */ 14 | protected $except = [ 15 | '/webhook/paddle', 16 | '/webhook/stripe' 17 | ]; 18 | } 19 | -------------------------------------------------------------------------------- /app/Listeners/UserRegistered.php: -------------------------------------------------------------------------------- 1 | user; 25 | // Perform any functionality to the user here... 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /app/Models/Category.php: -------------------------------------------------------------------------------- 1 | 16 | */ 17 | protected $fillable = [ 18 | 'name', 19 | 'slug', 20 | 'fields', 21 | 'is_active', 22 | ]; 23 | 24 | /** 25 | * The attributes that should be cast. 26 | * 27 | * @var array 28 | */ 29 | protected $casts = [ 30 | 'fields' => 'array', // Cast the fields attribute to an array 31 | 'is_active' => 'boolean', 32 | ]; 33 | } 34 | -------------------------------------------------------------------------------- /app/Models/Post.php: -------------------------------------------------------------------------------- 1 | 14 | */ 15 | protected $policies = [ 16 | // 'App\Models\Model' => 'App\Policies\ModelPolicy', 17 | ]; 18 | 19 | /** 20 | * Register any authentication / authorization services. 21 | * 22 | * @return void 23 | */ 24 | public function boot() 25 | { 26 | // 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/Providers/BroadcastServiceProvider.php: -------------------------------------------------------------------------------- 1 | '/', 8 | 'registration_enabled' => true, 9 | 'registration_show_password_same_screen' => true, 10 | 'registration_include_name_field' => false, 11 | 'registration_include_password_confirmation_field' => false, 12 | 'registration_require_email_verification' => false, 13 | 'enable_branding' => true, 14 | 'dev_mode' => false, 15 | 'enable_2fa' => false, // Enable or disable 2FA functionality globally 16 | 'enable_email_registration' => true, 17 | 'login_show_social_providers' => true, 18 | 'center_align_social_provider_button_content' => false, 19 | 'center_align_text' => false, 20 | 'social_providers_location' => 'bottom', 21 | 'check_account_exists_before_login' => false, 22 | ]; 23 | -------------------------------------------------------------------------------- /config/devdojo/billing/keys.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'publishable_key' => env('STRIPE_PUBLISHABLE_KEY'), 6 | 'secret_key' => env('STRIPE_SECRET_KEY'), 7 | 'webhook_secret' => env('STRIPE_WEBHOOK_SECRET') 8 | ], 9 | 'paddle' => [ 10 | 'vendor_id' => env('PADDLE_VENDOR_ID'), 11 | 'api_key' => env('PADDLE_API_KEY'), 12 | 'env' => env('PADDLE_ENV'), 13 | 'public_key' => env('PADDLE_PUBLIC_KEY'), 14 | ] 15 | ]; -------------------------------------------------------------------------------- /config/devdojo/billing/language.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'header' => 'Subscribe to a Plan Below', 6 | 'description' => 'Select a plan below. This description text is editable inside the devdojo.billing.language file.', 7 | 'sidebar_description' => 'Welcome to the checkout page for your SaaS product. This sidebar description text is customizable from inside the devdojo.billing.language config.', 8 | 'notification' => '' 9 | ] 10 | ]; -------------------------------------------------------------------------------- /config/devdojo/billing/style.php: -------------------------------------------------------------------------------- 1 | 'blue', // black, white, red, green, blue, yellow, orange, pink, purple 5 | 'logo_height' => '36' 6 | ]; -------------------------------------------------------------------------------- /config/forms.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'TextInput' => 'Text Input', 6 | 'Textarea' => 'Textarea Input', 7 | 'RichEditor' => 'Rich Text Editor', 8 | 'MarkdownEditor' => 'Markdown Editor', 9 | 'Select' => 'Select Dropdown', 10 | 'Checkbox' => 'Checkbox', 11 | 'Toggle' => 'Toggle', 12 | 'CheckBoxList' => 'Checkbox List', 13 | 'Radio' => 'Radio', 14 | 'DateTimePicker' => 'Date Time Picker', 15 | 'DatePicker' => 'Date Picker', 16 | 'TimePicker' => 'Time Picker', 17 | 'FileUpload' => 'File Upload', 18 | 'TagsInput' => 'Tags Input', 19 | 'ColorPicker' => 'Color Picker' 20 | ] 21 | ]; -------------------------------------------------------------------------------- /config/image.php: -------------------------------------------------------------------------------- 1 | 'gd' 19 | 20 | ]; 21 | -------------------------------------------------------------------------------- /config/passport.php: -------------------------------------------------------------------------------- 1 | env('PASSPORT_PRIVATE_KEY'), 17 | 18 | 'public_key' => env('PASSPORT_PUBLIC_KEY'), 19 | 20 | ]; 21 | -------------------------------------------------------------------------------- /config/profile.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'about' => [ 6 | 'label' => 'About', 7 | 'type' => 'Textarea', 8 | 'rules' => 'required' 9 | ], 10 | 'occupation' => [ 11 | 'label' => 'What do you do for a living?', 12 | 'type' => 'TextInput', 13 | 'rules' => '' 14 | ] 15 | ], 16 | ]; 17 | -------------------------------------------------------------------------------- /config/style.php: -------------------------------------------------------------------------------- 1 | '#FF69B4' 5 | 'primary_color' => '#000000' 6 | ]; 7 | -------------------------------------------------------------------------------- /config/themes.php: -------------------------------------------------------------------------------- 1 | resource_path('themes'), 5 | 'publish_assets' => false, 6 | 'create_tables' => false 7 | ]; -------------------------------------------------------------------------------- /database/.gitignore: -------------------------------------------------------------------------------- 1 | *.sqlite 2 | -------------------------------------------------------------------------------- /database/factories/UserFactory.php: -------------------------------------------------------------------------------- 1 | $this->faker->name, 29 | 'email' => $this->faker->unique()->safeEmail, 30 | 'password' => $password ?: $password = bcrypt('secret'), 31 | 'remember_token' => Str::random(10), 32 | ]; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /database/migrations/2024_07_31_133819_add_description_to_roles_table.php: -------------------------------------------------------------------------------- 1 | string('description')->nullable(); 16 | }); 17 | } 18 | 19 | /** 20 | * Reverse the migrations. 21 | */ 22 | public function down(): void 23 | { 24 | Schema::table('roles', function (Blueprint $table) { 25 | $table->dropColumn('description'); 26 | }); 27 | } 28 | }; 29 | -------------------------------------------------------------------------------- /database/seeders/ApiKeysTableSeeder.php: -------------------------------------------------------------------------------- 1 | delete(); 20 | 21 | 22 | 23 | } 24 | } -------------------------------------------------------------------------------- /database/seeders/ModelHasRolesTableSeeder.php: -------------------------------------------------------------------------------- 1 | delete(); 20 | 21 | \DB::table('model_has_roles')->insert(array ( 22 | 0 => 23 | array ( 24 | 'role_id' => 1, 25 | 'model_type' => 'users', 26 | 'model_id' => 1 27 | ), 28 | )); 29 | 30 | 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /database/seeders/NotificationsTableSeeder.php: -------------------------------------------------------------------------------- 1 | delete(); 20 | 21 | 22 | 23 | } 24 | } -------------------------------------------------------------------------------- /database/seeders/PasswordResetsTableSeeder.php: -------------------------------------------------------------------------------- 1 | delete(); 20 | 21 | 22 | 23 | } 24 | } -------------------------------------------------------------------------------- /database/seeders/PermissionRoleTableSeeder.php: -------------------------------------------------------------------------------- 1 | delete(); 18 | } 19 | } -------------------------------------------------------------------------------- /database/seeders/PermissionsTableSeeder.php: -------------------------------------------------------------------------------- 1 | delete(); 18 | } 19 | } -------------------------------------------------------------------------------- /database/seeders/ThemesTableSeeder.php: -------------------------------------------------------------------------------- 1 | delete(); 20 | 21 | \DB::table('themes')->insert(array ( 22 | 0 => 23 | array ( 24 | 'id' => 1, 25 | 'name' => 'Anchor Theme', 26 | 'folder' => 'anchor', 27 | 'active' => 1, 28 | 'version' => 1.0 29 | ) 30 | )); 31 | 32 | 33 | } 34 | } -------------------------------------------------------------------------------- /database/seeders/VoyagerThemesTableSeeder.php: -------------------------------------------------------------------------------- 1 | delete(); 20 | 21 | \DB::table('themes')->insert(array ( 22 | 0 => 23 | array ( 24 | 'id' => 1, 25 | 'name' => 'Tailwind Theme', 26 | 'folder' => 'tailwind', 27 | 'active' => 1, 28 | 'version' => '1.0', 29 | 'created_at' => '2020-08-23 08:06:45', 30 | 'updated_at' => '2020-08-23 08:06:45', 31 | ) 32 | )); 33 | 34 | 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /lang/ar/auth.php: -------------------------------------------------------------------------------- 1 | 'بيانات الدخول هذه غير متطابقة للبيانات المسجلة لدينا.', 17 | 'password' => 'كلمة المرور المدخلة غير صحيحة.', 18 | 'throttle' => 'لقد تعديت الحد المسموح لعمليات الدخول المتكررة. يرجى المحاولة مرة أخرى بعد :seconds ثانية.', 19 | 20 | ]; 21 | -------------------------------------------------------------------------------- /lang/ar/pagination.php: -------------------------------------------------------------------------------- 1 | '« السابق', 17 | 'next' => 'التالي »', 18 | 19 | ]; 20 | -------------------------------------------------------------------------------- /lang/ar/passwords.php: -------------------------------------------------------------------------------- 1 | 'تمت إعادة تعيين كلمة المرور', 17 | 'sent' => 'تم إرسال تفاصيل استعادة كلمة المرور الخاصة بك إلى بريدك الإلكتروني', 18 | 'throttled' => 'الرجاء الانتظار قبل إعادة المحاولة', 19 | 'token' => 'رمز استعادة كلمة المرور هذا غير صالح', 20 | 'user' => "لم يتم العثور على أيّ حسابٍ بهذا العنوان الإلكتروني", 21 | 22 | ]; 23 | -------------------------------------------------------------------------------- /lang/en/auth.php: -------------------------------------------------------------------------------- 1 | 'These credentials do not match our records.', 17 | 'password' => 'The provided password is incorrect.', 18 | 'throttle' => 'Too many login attempts. Please try again in :seconds seconds.', 19 | 20 | ]; 21 | -------------------------------------------------------------------------------- /lang/en/pagination.php: -------------------------------------------------------------------------------- 1 | '« Previous', 17 | 'next' => 'Next »', 18 | 19 | ]; 20 | -------------------------------------------------------------------------------- /lang/en/passwords.php: -------------------------------------------------------------------------------- 1 | 'Your password has been reset!', 17 | 'sent' => 'We have emailed your password reset link!', 18 | 'throttled' => 'Please wait before retrying.', 19 | 'token' => 'This password reset token is invalid.', 20 | 'user' => "We can't find a user with that email address.", 21 | 22 | ]; 23 | -------------------------------------------------------------------------------- /lang/it/auth.php: -------------------------------------------------------------------------------- 1 | 'Queste credenziali non corrispondono a quelle in archivio.', 17 | 'throttle' => 'Troppi tentativi di accesso. Riprova tra :seconds secondi.', 18 | 19 | ]; 20 | -------------------------------------------------------------------------------- /lang/it/pagination.php: -------------------------------------------------------------------------------- 1 | '« Precedente', 17 | 'next' => 'Successivo »', 18 | 19 | ]; 20 | -------------------------------------------------------------------------------- /lang/pl/auth.php: -------------------------------------------------------------------------------- 1 | 'Podane dane nie pasują do naszych rekordów.', 17 | 'password' => 'Podane hasło jest nieprawidłowe.', 18 | 'throttle' => 'Zbyt wiele prób logowania. Spróbuj ponownie za :seconds sekund.', 19 | 20 | ]; 21 | -------------------------------------------------------------------------------- /lang/pl/pagination.php: -------------------------------------------------------------------------------- 1 | '« Poprzednia', 17 | 'next' => 'Następna »', 18 | 19 | ]; 20 | -------------------------------------------------------------------------------- /lang/pl/passwords.php: -------------------------------------------------------------------------------- 1 | 'Twoje hasło zostało zresetowane!', 17 | 'sent' => 'Na Twój adres mailowy został wysłany link do zresetowania hasła!', 18 | 'throttled' => 'Poczekaj przed następną próbą.', 19 | 'token' => 'Token resetowania hasła jest niepoprawny.', 20 | 'user' => "W naszej bazie nie ma użytkownika z podanym adresem mailowym.", 21 | 22 | ]; 23 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "type": "module", 4 | "scripts": { 5 | "dev": "vite", 6 | "build": "vite build" 7 | }, 8 | "devDependencies": { 9 | "@tailwindcss/forms": "^0.5.7", 10 | "@tailwindcss/typography": "^0.5.12", 11 | "alpinejs": "^3.4.2", 12 | "autoprefixer": "^10.4.19", 13 | "axios": "^1.8.2", 14 | "laravel-vite-plugin": "^1.0", 15 | "postcss": "^8.4.38", 16 | "postcss-nesting": "^12.1.1", 17 | "tailwindcss": "^3.4.3", 18 | "vite": "^6.2" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /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/auth/app.css: -------------------------------------------------------------------------------- 1 | #auth-heading-title{ 2 | padding-top:8px; 3 | } 4 | 5 | #auth-container{ 6 | border:0px; 7 | } 8 | -------------------------------------------------------------------------------- /public/auth/build/assets/scripts.js: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /public/auth/build/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "resources/css/auth.css": { 3 | "file": "assets/styles.css", 4 | "src": "resources/css/auth.css", 5 | "isEntry": true 6 | }, 7 | "resources/js/auth.js": { 8 | "file": "assets/scripts.js", 9 | "name": "scripts", 10 | "src": "resources/js/auth.js", 11 | "isEntry": true 12 | } 13 | } -------------------------------------------------------------------------------- /public/auth/img/favicon-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/auth/img/favicon-dark.png -------------------------------------------------------------------------------- /public/auth/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/auth/img/favicon.ico -------------------------------------------------------------------------------- /public/auth/img/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/auth/img/favicon.png -------------------------------------------------------------------------------- /public/billing/main.js: -------------------------------------------------------------------------------- 1 | console.log("Billing page JS loaded"); 2 | -------------------------------------------------------------------------------- /public/billing/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "css/main.css": { 3 | "file": "main.css", 4 | "src": "css/main.css", 5 | "isEntry": true 6 | }, 7 | "js/main.js": { 8 | "file": "main.js", 9 | "name": "main", 10 | "src": "js/main.js", 11 | "isEntry": true 12 | } 13 | } -------------------------------------------------------------------------------- /public/build/assets/app-CaUPGaqM.js: -------------------------------------------------------------------------------- 1 | window.demoButtonClickMessage=function(o){o.preventDefault(),new FilamentNotification().title("Modify this button in your theme folder").icon("heroicon-o-pencil-square").iconColor("info").send()}; 2 | -------------------------------------------------------------------------------- /public/build/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "resources/css/filament/admin/theme.css": { 3 | "file": "assets/theme-DQ4Ao_DX.css", 4 | "src": "resources/css/filament/admin/theme.css", 5 | "isEntry": true 6 | }, 7 | "resources/themes/anchor/assets/css/app.css": { 8 | "file": "assets/app-wtvMdoFz.css", 9 | "src": "resources/themes/anchor/assets/css/app.css", 10 | "isEntry": true 11 | }, 12 | "resources/themes/anchor/assets/js/app.js": { 13 | "file": "assets/app-CaUPGaqM.js", 14 | "name": "app", 15 | "src": "resources/themes/anchor/assets/js/app.js", 16 | "isEntry": true 17 | } 18 | } -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/favicon.ico -------------------------------------------------------------------------------- /public/js/filament/forms/components/tags-input.js: -------------------------------------------------------------------------------- 1 | function i({state:a,splitKeys:n}){return{newTag:"",state:a,createTag:function(){if(this.newTag=this.newTag.trim(),this.newTag!==""){if(this.state.includes(this.newTag)){this.newTag="";return}this.state.push(this.newTag),this.newTag=""}},deleteTag:function(t){this.state=this.state.filter(e=>e!==t)},reorderTags:function(t){let e=this.state.splice(t.oldIndex,1)[0];this.state.splice(t.newIndex,0,e),this.state=[...this.state]},input:{"x-on:blur":"createTag()","x-model":"newTag","x-on:keydown"(t){["Enter",...n].includes(t.key)&&(t.preventDefault(),t.stopPropagation(),this.createTag())},"x-on:paste"(){this.$nextTick(()=>{if(n.length===0){this.createTag();return}let t=n.map(e=>e.replace(/[/\-\\^$*+?.()|[\]{}]/g,"\\$&")).join("|");this.newTag.split(new RegExp(t,"g")).forEach(e=>{this.newTag=e,this.createTag()})})}}}}export{i as default}; 2 | -------------------------------------------------------------------------------- /public/js/filament/forms/components/textarea.js: -------------------------------------------------------------------------------- 1 | function r({initialHeight:t,shouldAutosize:i,state:s}){return{state:s,wrapperEl:null,init:function(){this.wrapperEl=this.$el.parentNode,this.setInitialHeight(),i?this.$watch("state",()=>{this.resize()}):this.setUpResizeObserver()},setInitialHeight:function(){this.$el.scrollHeight<=0||(this.wrapperEl.style.height=t+"rem")},resize:function(){if(this.setInitialHeight(),this.$el.scrollHeight<=0)return;let e=this.$el.scrollHeight+"px";this.wrapperEl.style.height!==e&&(this.wrapperEl.style.height=e)},setUpResizeObserver:function(){new ResizeObserver(()=>{this.wrapperEl.style.height=this.$el.style.height}).observe(this.$el)}}}export{r as default}; 2 | -------------------------------------------------------------------------------- /public/mix-manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "/js/app.js": "/js/app.js" 3 | } -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: 3 | -------------------------------------------------------------------------------- /public/themes/tailwind/images/admin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/themes/tailwind/images/admin.png -------------------------------------------------------------------------------- /public/themes/tailwind/images/announcements.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/themes/tailwind/images/announcements.png -------------------------------------------------------------------------------- /public/themes/tailwind/images/api.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/themes/tailwind/images/api.png -------------------------------------------------------------------------------- /public/themes/tailwind/images/authentication.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/themes/tailwind/images/authentication.png -------------------------------------------------------------------------------- /public/themes/tailwind/images/blog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/themes/tailwind/images/blog.png -------------------------------------------------------------------------------- /public/themes/tailwind/images/impersonation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/themes/tailwind/images/impersonation.png -------------------------------------------------------------------------------- /public/themes/tailwind/images/notifications.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/themes/tailwind/images/notifications.png -------------------------------------------------------------------------------- /public/themes/tailwind/images/plans.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/themes/tailwind/images/plans.png -------------------------------------------------------------------------------- /public/themes/tailwind/images/profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/themes/tailwind/images/profile.png -------------------------------------------------------------------------------- /public/themes/tailwind/images/roles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/themes/tailwind/images/roles.png -------------------------------------------------------------------------------- /public/themes/tailwind/images/subscriptions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/themes/tailwind/images/subscriptions.png -------------------------------------------------------------------------------- /public/themes/tailwind/images/testimonial-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/themes/tailwind/images/testimonial-1.jpg -------------------------------------------------------------------------------- /public/themes/tailwind/images/testimonial-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/themes/tailwind/images/testimonial-2.jpg -------------------------------------------------------------------------------- /public/themes/tailwind/images/testimonial-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/themes/tailwind/images/testimonial-3.jpg -------------------------------------------------------------------------------- /public/themes/tailwind/images/themes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/themes/tailwind/images/themes.png -------------------------------------------------------------------------------- /public/themes/tailwind/mix-manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "/js/app.js": "/js/app.js", 3 | "/css/app.css": "/css/app.css" 4 | } 5 | -------------------------------------------------------------------------------- /public/themes/tailwind/tailwind.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/themes/tailwind/tailwind.jpg -------------------------------------------------------------------------------- /public/themes/tallstack/mix-manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "/js/app.js": "/js/app.js", 3 | "/tallstack.jpg": "/tallstack.jpg" 4 | } 5 | -------------------------------------------------------------------------------- /public/themes/tallstack/tallstack.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/themes/tallstack/tallstack.jpg -------------------------------------------------------------------------------- /public/vendor/binarytorch/larecipe/assets/fonts/fa-brands-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/binarytorch/larecipe/assets/fonts/fa-brands-400.eot -------------------------------------------------------------------------------- /public/vendor/binarytorch/larecipe/assets/fonts/fa-brands-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/binarytorch/larecipe/assets/fonts/fa-brands-400.ttf -------------------------------------------------------------------------------- /public/vendor/binarytorch/larecipe/assets/fonts/fa-brands-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/binarytorch/larecipe/assets/fonts/fa-brands-400.woff -------------------------------------------------------------------------------- /public/vendor/binarytorch/larecipe/assets/fonts/fa-brands-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/binarytorch/larecipe/assets/fonts/fa-brands-400.woff2 -------------------------------------------------------------------------------- /public/vendor/binarytorch/larecipe/assets/fonts/fa-regular-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/binarytorch/larecipe/assets/fonts/fa-regular-400.eot -------------------------------------------------------------------------------- /public/vendor/binarytorch/larecipe/assets/fonts/fa-regular-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/binarytorch/larecipe/assets/fonts/fa-regular-400.ttf -------------------------------------------------------------------------------- /public/vendor/binarytorch/larecipe/assets/fonts/fa-regular-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/binarytorch/larecipe/assets/fonts/fa-regular-400.woff -------------------------------------------------------------------------------- /public/vendor/binarytorch/larecipe/assets/fonts/fa-regular-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/binarytorch/larecipe/assets/fonts/fa-regular-400.woff2 -------------------------------------------------------------------------------- /public/vendor/binarytorch/larecipe/assets/fonts/fa-solid-900.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/binarytorch/larecipe/assets/fonts/fa-solid-900.eot -------------------------------------------------------------------------------- /public/vendor/binarytorch/larecipe/assets/fonts/fa-solid-900.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/binarytorch/larecipe/assets/fonts/fa-solid-900.ttf -------------------------------------------------------------------------------- /public/vendor/binarytorch/larecipe/assets/fonts/fa-solid-900.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/binarytorch/larecipe/assets/fonts/fa-solid-900.woff -------------------------------------------------------------------------------- /public/vendor/binarytorch/larecipe/assets/fonts/fa-solid-900.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/binarytorch/larecipe/assets/fonts/fa-solid-900.woff2 -------------------------------------------------------------------------------- /public/vendor/binarytorch/larecipe/assets/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/binarytorch/larecipe/assets/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /public/vendor/binarytorch/larecipe/assets/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/binarytorch/larecipe/assets/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /public/vendor/binarytorch/larecipe/assets/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/binarytorch/larecipe/assets/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /public/vendor/binarytorch/larecipe/assets/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/binarytorch/larecipe/assets/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /public/vendor/binarytorch/larecipe/assets/fonts/nucleo-icons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/binarytorch/larecipe/assets/fonts/nucleo-icons.eot -------------------------------------------------------------------------------- /public/vendor/binarytorch/larecipe/assets/fonts/nucleo-icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/binarytorch/larecipe/assets/fonts/nucleo-icons.ttf -------------------------------------------------------------------------------- /public/vendor/binarytorch/larecipe/assets/fonts/nucleo-icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/binarytorch/larecipe/assets/fonts/nucleo-icons.woff -------------------------------------------------------------------------------- /public/vendor/binarytorch/larecipe/assets/fonts/nucleo-icons.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/binarytorch/larecipe/assets/fonts/nucleo-icons.woff2 -------------------------------------------------------------------------------- /public/vendor/livewire/manifest.json: -------------------------------------------------------------------------------- 1 | 2 | {"/livewire.js":"13b7c601"} 3 | -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/fonts/bootstrap/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/fonts/bootstrap/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/fonts/bootstrap/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/fonts/bootstrap/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/fonts/bootstrap/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/fonts/bootstrap/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/fonts/bootstrap/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/fonts/bootstrap/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/fonts/voyager.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/fonts/voyager.eot -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/fonts/voyager.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/fonts/voyager.ttf -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/fonts/voyager.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/fonts/voyager.woff -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/images/bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/images/bg.jpg -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/images/captain-avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/images/captain-avatar.png -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/images/compass/documentation.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/images/compass/documentation.jpg -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/images/compass/hooks.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/images/compass/hooks.jpg -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/images/compass/voyager-home.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/images/compass/voyager-home.jpg -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/images/large-logo-icon-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/images/large-logo-icon-light.png -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/images/large-logo-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/images/large-logo-icon.png -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/images/logo-icon-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/images/logo-icon-light.png -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/images/logo-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/images/logo-icon.png -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/images/voyager-character.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/images/voyager-character.png -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/images/voyager-character.sketch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/images/voyager-character.sketch -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/images/widget-backgrounds/01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/images/widget-backgrounds/01.jpg -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/images/widget-backgrounds/02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/images/widget-backgrounds/02.jpg -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/images/widget-backgrounds/03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/images/widget-backgrounds/03.jpg -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/code/plugin.js: -------------------------------------------------------------------------------- 1 | tinymce.PluginManager.add("code",function(e){function t(){var t=e.windowManager.open({title:"Source code",body:{type:"textbox",name:"code",multiline:!0,minWidth:e.getParam("code_dialog_width",600),minHeight:e.getParam("code_dialog_height",Math.min(tinymce.DOM.getViewPort().h-200,500)),spellcheck:!1,style:"direction: ltr; text-align: left"},onSubmit:function(t){e.focus(),e.undoManager.transact(function(){e.setContent(t.data.code)}),e.selection.setCursorLocation(),e.nodeChanged()}});t.find("#code").value(e.getContent({source_view:!0}))}e.addCommand("mceCodeEditor",t),e.addButton("code",{icon:"code",tooltip:"Source code",onclick:t}),e.addMenuItem("code",{icon:"code",text:"Source code",context:"tools",onclick:t})}); -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/directionality/plugin.min.js: -------------------------------------------------------------------------------- 1 | tinymce.PluginManager.add("directionality",function(e){function t(t){var n,r=e.dom,i=e.selection.getSelectedBlocks();i.length&&(n=r.getAttrib(i[0],"dir"),tinymce.each(i,function(e){r.getParent(e.parentNode,"*[dir='"+t+"']",r.getRoot())||(n!=t?r.setAttrib(e,"dir",t):r.setAttrib(e,"dir",null))}),e.nodeChanged())}function n(e){var t=[];return tinymce.each("h1 h2 h3 h4 h5 h6 div p".split(" "),function(n){t.push(n+"[dir="+e+"]")}),t.join(",")}e.addCommand("mceDirectionLTR",function(){t("ltr")}),e.addCommand("mceDirectionRTL",function(){t("rtl")}),e.addButton("ltr",{title:"Left to right",cmd:"mceDirectionLTR",stateSelector:n("ltr")}),e.addButton("rtl",{title:"Right to left",cmd:"mceDirectionRTL",stateSelector:n("rtl")})}); -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/emoticons/img/smiley-cool.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/js/plugins/emoticons/img/smiley-cool.gif -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/emoticons/img/smiley-cry.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/js/plugins/emoticons/img/smiley-cry.gif -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/emoticons/img/smiley-embarassed.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/js/plugins/emoticons/img/smiley-embarassed.gif -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/emoticons/img/smiley-foot-in-mouth.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/js/plugins/emoticons/img/smiley-foot-in-mouth.gif -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/emoticons/img/smiley-frown.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/js/plugins/emoticons/img/smiley-frown.gif -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/emoticons/img/smiley-innocent.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/js/plugins/emoticons/img/smiley-innocent.gif -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/emoticons/img/smiley-kiss.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/js/plugins/emoticons/img/smiley-kiss.gif -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/emoticons/img/smiley-laughing.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/js/plugins/emoticons/img/smiley-laughing.gif -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/emoticons/img/smiley-money-mouth.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/js/plugins/emoticons/img/smiley-money-mouth.gif -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/emoticons/img/smiley-sealed.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/js/plugins/emoticons/img/smiley-sealed.gif -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/emoticons/img/smiley-smile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/js/plugins/emoticons/img/smiley-smile.gif -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/emoticons/img/smiley-surprised.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/js/plugins/emoticons/img/smiley-surprised.gif -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/emoticons/img/smiley-tongue-out.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/js/plugins/emoticons/img/smiley-tongue-out.gif -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/emoticons/img/smiley-undecided.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/js/plugins/emoticons/img/smiley-undecided.gif -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/emoticons/img/smiley-wink.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/js/plugins/emoticons/img/smiley-wink.gif -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/emoticons/img/smiley-yell.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/js/plugins/emoticons/img/smiley-yell.gif -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/example/dialog.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |

Custom dialog

5 | Input some text: 6 | 7 | 8 | -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/example/plugin.min.js: -------------------------------------------------------------------------------- 1 | tinymce.PluginManager.add("example",function(e,t){e.addButton("example",{text:"My button",icon:!1,onclick:function(){e.windowManager.open({title:"Example plugin",body:[{type:"textbox",name:"title",label:"Title"}],onsubmit:function(t){e.insertContent("Title: "+t.data.title)}})}}),e.addMenuItem("example",{text:"Example plugin",context:"tools",onclick:function(){e.windowManager.open({title:"TinyMCE site",url:t+"/dialog.html",width:600,height:400,buttons:[{text:"Insert",onclick:function(){var t=e.windowManager.getWindows()[0];e.insertContent(t.getContentWindow().document.getElementById("content").value),t.close()}},{text:"Close",onclick:"close"}]})}})}); -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/example_dependency/plugin.min.js: -------------------------------------------------------------------------------- 1 | tinymce.PluginManager.add("example_dependency",function(){},["example"]); -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/giphy/html/img/clear.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/js/plugins/giphy/html/img/clear.gif -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/giphy/html/img/giphy_icon_128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/js/plugins/giphy/html/img/giphy_icon_128.png -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/giphy/html/img/giphy_icon_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/js/plugins/giphy/html/img/giphy_icon_16.png -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/giphy/html/img/giphy_icon_19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/js/plugins/giphy/html/img/giphy_icon_19.png -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/giphy/html/img/giphy_icon_38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/js/plugins/giphy/html/img/giphy_icon_38.png -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/giphy/html/img/giphy_icon_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/js/plugins/giphy/html/img/giphy_icon_48.png -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/giphy/html/img/giphy_logo_laser.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/js/plugins/giphy/html/img/giphy_logo_laser.gif -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/giphy/html/img/giphy_logo_txt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/js/plugins/giphy/html/img/giphy_logo_txt.png -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/giphy/html/img/icon_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/js/plugins/giphy/html/img/icon_add.png -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/giphy/html/img/icon_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/js/plugins/giphy/html/img/icon_back.png -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/giphy/html/img/icon_categories.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/js/plugins/giphy/html/img/icon_categories.png -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/giphy/html/img/icon_email.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/js/plugins/giphy/html/img/icon_email.png -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/giphy/html/img/icon_facebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/js/plugins/giphy/html/img/icon_facebook.png -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/giphy/html/img/icon_heart_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/js/plugins/giphy/html/img/icon_heart_red.png -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/giphy/html/img/icon_heart_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/js/plugins/giphy/html/img/icon_heart_white.png -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/giphy/html/img/icon_link_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/js/plugins/giphy/html/img/icon_link_white.png -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/giphy/html/img/icon_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/js/plugins/giphy/html/img/icon_menu.png -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/giphy/html/img/icon_reactions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/js/plugins/giphy/html/img/icon_reactions.png -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/giphy/html/img/icon_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/js/plugins/giphy/html/img/icon_search.png -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/giphy/html/img/icon_sms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/js/plugins/giphy/html/img/icon_sms.png -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/giphy/html/img/icon_twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/js/plugins/giphy/html/img/icon_twitter.png -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/giphy/html/img/loader_purple.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/js/plugins/giphy/html/img/loader_purple.gif -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/giphy/html/js/init.js: -------------------------------------------------------------------------------- 1 | jQuery(document).ready(function() { 2 | jQuery('#gifs').masonry({ 3 | itemSelector: '#gifs li', 4 | columnWidth: 145, 5 | gutter: 10, 6 | transitionDuration: '0.2s', 7 | isFitWidth: true 8 | }); 9 | 10 | // init giphy 11 | GiphySearch.init(); 12 | 13 | // init the CMS extension app 14 | GiphyCMSExt.init(); 15 | 16 | // start the default search 17 | GiphySearch.search("giphytrending", 100, true); 18 | }); 19 | -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/giphy/img/clear.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/js/plugins/giphy/img/clear.gif -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/giphy/img/giphyicon20px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/js/plugins/giphy/img/giphyicon20px.png -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/giphy/img/giphyiconoff20px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/js/plugins/giphy/img/giphyiconoff20px.png -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/hr/plugin.min.js: -------------------------------------------------------------------------------- 1 | tinymce.PluginManager.add("hr",function(e){e.addCommand("InsertHorizontalRule",function(){e.execCommand("mceInsertContent",!1,"
")}),e.addButton("hr",{icon:"hr",tooltip:"Horizontal line",cmd:"InsertHorizontalRule"}),e.addMenuItem("hr",{icon:"hr",text:"Horizontal line",cmd:"InsertHorizontalRule",context:"insert"})}); -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/lists/index.js: -------------------------------------------------------------------------------- 1 | // Exports the "lists" plugin for usage with module loaders 2 | // Usage: 3 | // CommonJS: 4 | // require('tinymce/plugins/lists') 5 | // ES2015: 6 | // import 'tinymce/plugins/lists' 7 | require('./plugin.js'); -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/media/moxieplayer.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/public/vendor/tcg/voyager/assets/js/plugins/media/moxieplayer.swf -------------------------------------------------------------------------------- /public/vendor/tcg/voyager/assets/js/plugins/nonbreaking/plugin.min.js: -------------------------------------------------------------------------------- 1 | tinymce.PluginManager.add("nonbreaking",function(e){var t=e.getParam("nonbreaking_force_tab");if(e.addCommand("mceNonBreaking",function(){e.insertContent(e.plugins.visualchars&&e.plugins.visualchars.state?' ':" "),e.dom.setAttrib(e.dom.select("span.mce-nbsp"),"data-mce-bogus","1")}),e.addButton("nonbreaking",{title:"Nonbreaking space",cmd:"mceNonBreaking"}),e.addMenuItem("nonbreaking",{text:"Nonbreaking space",cmd:"mceNonBreaking",context:"insert"}),t){var n=+t>1?+t:3;e.on("keydown",function(t){if(9==t.keyCode){if(t.shiftKey)return;t.preventDefault();for(var r=0;rtwMerge('py-5 sm:py-8 lg:py-10 mx-auto w-full max-w-4xl') }}> 2 | {{ $slot }} 3 | -------------------------------------------------------------------------------- /resources/themes/anchor/components/app/heading.blade.php: -------------------------------------------------------------------------------- 1 | @props([ 2 | 'title' => '', 3 | 'description' => '', 4 | 'border' => true 5 | ]) 6 | 7 |
8 |

{{ $title ?? '' }}

9 |

{{ $description ?? '' }}

10 |
-------------------------------------------------------------------------------- /resources/themes/anchor/components/app/message-for-admin.blade.php: -------------------------------------------------------------------------------- 1 |

You're logged in with an Admin role. Did you know that you can use custom blade directives to check if a user is an admin user

2 |
@admin
3 |     <p>Only you as an admin will see this message</p>
4 | @notadmin
5 | -------------------------------------------------------------------------------- /resources/themes/anchor/components/app/message-for-subscriber.blade.php: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Did you know that you can use custom blade directives to check if a user is a subscriber, like the following:

4 |
5 |
@subscriber
 6 |     <p>You are a paid subscriber</p>
 7 | @endsubscriber
8 |
9 |

Click here to learn more about Blade directives you can use in your Wave application.

10 |
11 |
12 | -------------------------------------------------------------------------------- /resources/themes/anchor/components/elements/back-button.blade.php: -------------------------------------------------------------------------------- 1 |
twMerge('lg:px-5 mx-auto w-full lg:px-0') }}> 2 | 3 | 4 | {{ $text ?? '' }} 5 | 6 |
-------------------------------------------------------------------------------- /resources/themes/anchor/components/elements/button.blade.php: -------------------------------------------------------------------------------- 1 | 2 | {{ $slot }} 3 | -------------------------------------------------------------------------------- /resources/themes/anchor/components/elements/card.blade.php: -------------------------------------------------------------------------------- 1 |
twMerge('bg-white dark:bg-zinc-800 border-0 lg:border lg:p-8 rounded-lg relative lg:border h-auto w-full dark:border-zinc-700 border-zinc-200/50') }}> 2 | {{ $slot }} 3 |
-------------------------------------------------------------------------------- /resources/themes/anchor/components/elements/checkbox.blade.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/themes/anchor/components/elements/code-inline.blade.php: -------------------------------------------------------------------------------- 1 | {{ $slot }} -------------------------------------------------------------------------------- /resources/themes/anchor/components/elements/container.blade.php: -------------------------------------------------------------------------------- 1 |
twMerge('px-7 mx-auto max-w-7xl md:px-12 xl:px-20') }}> 2 | {{ $slot }} 3 |
-------------------------------------------------------------------------------- /resources/themes/anchor/components/elements/heading-description.blade.php: -------------------------------------------------------------------------------- 1 |

{{ $slot }}

-------------------------------------------------------------------------------- /resources/themes/anchor/components/elements/icon.blade.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/themes/anchor/components/elements/input.blade.php: -------------------------------------------------------------------------------- 1 | @props([ 2 | 'prefixText' => '', 3 | 'suffixText' => '', 4 | 'prefixIcon' => '', 5 | 'prefixIconColor' => '', 6 | 'suffixIcon' => '', 7 | 'affixIconColor' => '', 8 | 'valid' => true 9 | ]) 10 | 11 | 19 | @if ($prefixText) 20 | {{ $prefixText }} 21 | @endif 22 | 26 | @if ($suffixText) 27 | {{ $suffixText }} 28 | @endif 29 | -------------------------------------------------------------------------------- /resources/themes/anchor/components/elements/label.blade.php: -------------------------------------------------------------------------------- 1 | @props([ 2 | 'for' => '' 3 | ]) 4 | 5 | -------------------------------------------------------------------------------- /resources/themes/anchor/components/elements/link.blade.php: -------------------------------------------------------------------------------- 1 | 4 | {{ $slot }} 5 | -------------------------------------------------------------------------------- /resources/themes/anchor/components/elements/placeholder.blade.php: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
-------------------------------------------------------------------------------- /resources/themes/anchor/components/layouts/marketing.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | @include('theme::partials.head', ['seo' => ($seo ?? null) ]) 5 | 6 | 7 | 8 | 9 | 10 |
11 | {{ $slot }} 12 |
13 | 14 | @livewire('notifications') 15 | @include('theme::partials.footer') 16 | @include('theme::partials.footer-scripts') 17 | {{ $javascript ?? '' }} 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /resources/themes/anchor/components/marketing/elements/heading.blade.php: -------------------------------------------------------------------------------- 1 | @props([ 2 | 'level' => 'h1', 3 | 'title' => 'No Heading Title Entered', 4 | 'description' => 'Be sure to include the description attribute', 5 | 'align' => 'center' 6 | ]) 7 | 8 | 9 |
class([ 10 | 'relative w-full', 11 | 'text-left' => $align == 'left', 12 | 'text-right' => $align == 'right', 13 | 'text-center' => $align != 'left' && $align != 'right' 14 | ]) }}> 15 | <{{ $level }} class="text-3xl sm:text-4xl text-left md:text-center font-medium tracking-tighter lg:text-5xl">{!! $title!!} 16 |

{!! $description !!}

17 |
-------------------------------------------------------------------------------- /resources/themes/anchor/emails/verify-email.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Welcome Email 5 | 6 | 7 | 8 |

Welcome to the site {{$user['name']}}

9 |
10 | Your registered email-id is {{$user['email']}} , Please click on the below link to verify your email account 11 |
12 | Verify Email 13 | 14 | 15 | -------------------------------------------------------------------------------- /resources/themes/anchor/pages/layout/fullscreen.blade.php: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 |
5 | 6 |
7 |
8 |
9 |
-------------------------------------------------------------------------------- /resources/themes/anchor/pages/pricing/index.blade.php: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /resources/themes/anchor/partials/cancel.blade.php: -------------------------------------------------------------------------------- 1 |
2 |
3 |
Cancel Subscription Plan
4 |

Danger Zone! This will cancel your subscription

5 |
6 |
Cancel
7 |
-------------------------------------------------------------------------------- /resources/themes/anchor/partials/footer-scripts.blade.php: -------------------------------------------------------------------------------- 1 | @filamentScripts 2 | @livewireScripts 3 | @if(config('wave.dev_bar')) 4 | @include('theme::partials.dev_bar') 5 | @endif 6 | 7 | {{-- @yield('javascript') --}} 8 | 9 | @if(setting('site.google_analytics_tracking_id', '')) 10 | 11 | 12 | 19 | @endif -------------------------------------------------------------------------------- /resources/themes/anchor/partials/reactivate.blade.php: -------------------------------------------------------------------------------- 1 |
2 |
3 |
Reactivate My Subscription
4 |

You are currently on a grace period for your subscription plan

5 |
6 | Re-activate 7 |
-------------------------------------------------------------------------------- /resources/themes/anchor/theme.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/resources/themes/anchor/theme.jpg -------------------------------------------------------------------------------- /resources/themes/anchor/theme.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Anchor", 3 | "version": "1.0" 4 | } 5 | -------------------------------------------------------------------------------- /resources/views/components/button-s.blade.php: -------------------------------------------------------------------------------- 1 |

new btns

-------------------------------------------------------------------------------- /resources/views/components/button.blade.php: -------------------------------------------------------------------------------- 1 | 2 | {{ $slot }} 3 | -------------------------------------------------------------------------------- /resources/views/components/empty-state.blade.php: -------------------------------------------------------------------------------- 1 | @props([ 2 | 'description' => '' 3 | ]) 4 | 5 |
6 | 7 | 8 |

{{ $description ?? '' }}

9 |
-------------------------------------------------------------------------------- /resources/views/components/favicon.blade.php: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /resources/views/filament/pages/my-custom-dashboard-page.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /resources/views/livewire/form.blade.php: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | {{ $this->form }} 5 |
6 |
7 | Save 8 |
9 |
10 |
11 | -------------------------------------------------------------------------------- /resources/views/vendor/mail/html/button.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 18 | 19 |
4 | 5 | 6 | 15 | 16 |
7 | 8 | 9 | 12 | 13 |
10 | {{ $slot }} 11 |
14 |
17 |
20 | -------------------------------------------------------------------------------- /resources/views/vendor/mail/html/footer.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /resources/views/vendor/mail/html/header.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {{ $slot }} 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /resources/views/vendor/mail/html/message.blade.php: -------------------------------------------------------------------------------- 1 | @component('mail::layout') 2 | {{-- Header --}} 3 | @slot('header') 4 | @component('mail::header', ['url' => config('app.url')]) 5 | {{ config('app.name') }} 6 | @endcomponent 7 | @endslot 8 | 9 | {{-- Body --}} 10 | {{ $slot }} 11 | 12 | {{-- Subcopy --}} 13 | @isset($subcopy) 14 | @slot('subcopy') 15 | @component('mail::subcopy') 16 | {{ $subcopy }} 17 | @endcomponent 18 | @endslot 19 | @endisset 20 | 21 | {{-- Footer --}} 22 | @slot('footer') 23 | @component('mail::footer') 24 | © {{ date('Y') }} {{ config('app.name') }}. All rights reserved. 25 | @endcomponent 26 | @endslot 27 | @endcomponent 28 | -------------------------------------------------------------------------------- /resources/views/vendor/mail/html/panel.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 12 | 13 |
4 | 5 | 6 | 9 | 10 |
7 | {{ Illuminate\Mail\Markdown::parse($slot) }} 8 |
11 |
14 | -------------------------------------------------------------------------------- /resources/views/vendor/mail/html/promotion.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 |
4 | {{ Illuminate\Mail\Markdown::parse($slot) }} 5 |
8 | -------------------------------------------------------------------------------- /resources/views/vendor/mail/html/promotion/button.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 12 | 13 |
4 | 5 | 6 | 9 | 10 |
7 | {{ $slot }} 8 |
11 |
14 | -------------------------------------------------------------------------------- /resources/views/vendor/mail/html/subcopy.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 |
4 | {{ Illuminate\Mail\Markdown::parse($slot) }} 5 |
8 | -------------------------------------------------------------------------------- /resources/views/vendor/mail/html/table.blade.php: -------------------------------------------------------------------------------- 1 |
2 | {{ Illuminate\Mail\Markdown::parse($slot) }} 3 |
4 | -------------------------------------------------------------------------------- /resources/views/vendor/mail/markdown/button.blade.php: -------------------------------------------------------------------------------- 1 | {{ $slot }}: {{ $url }} 2 | -------------------------------------------------------------------------------- /resources/views/vendor/mail/markdown/footer.blade.php: -------------------------------------------------------------------------------- 1 | {{ $slot }} 2 | -------------------------------------------------------------------------------- /resources/views/vendor/mail/markdown/header.blade.php: -------------------------------------------------------------------------------- 1 | [{{ $slot }}]({{ $url }}) 2 | -------------------------------------------------------------------------------- /resources/views/vendor/mail/markdown/layout.blade.php: -------------------------------------------------------------------------------- 1 | {!! strip_tags($header) !!} 2 | 3 | {!! strip_tags($slot) !!} 4 | @isset($subcopy) 5 | 6 | {!! strip_tags($subcopy) !!} 7 | @endisset 8 | 9 | {!! strip_tags($footer) !!} 10 | -------------------------------------------------------------------------------- /resources/views/vendor/mail/markdown/message.blade.php: -------------------------------------------------------------------------------- 1 | @component('mail::layout') 2 | {{-- Header --}} 3 | @slot('header') 4 | @component('mail::header', ['url' => config('app.url')]) 5 | {{ config('app.name') }} 6 | @endcomponent 7 | @endslot 8 | 9 | {{-- Body --}} 10 | {{ $slot }} 11 | 12 | {{-- Subcopy --}} 13 | @isset($subcopy) 14 | @slot('subcopy') 15 | @component('mail::subcopy') 16 | {{ $subcopy }} 17 | @endcomponent 18 | @endslot 19 | @endisset 20 | 21 | {{-- Footer --}} 22 | @slot('footer') 23 | @component('mail::footer') 24 | © {{ date('Y') }} {{ config('app.name') }}. All rights reserved. 25 | @endcomponent 26 | @endslot 27 | @endcomponent 28 | -------------------------------------------------------------------------------- /resources/views/vendor/mail/markdown/panel.blade.php: -------------------------------------------------------------------------------- 1 | {{ $slot }} 2 | -------------------------------------------------------------------------------- /resources/views/vendor/mail/markdown/promotion.blade.php: -------------------------------------------------------------------------------- 1 | {{ $slot }} 2 | -------------------------------------------------------------------------------- /resources/views/vendor/mail/markdown/promotion/button.blade.php: -------------------------------------------------------------------------------- 1 | [{{ $slot }}]({{ $url }}) 2 | -------------------------------------------------------------------------------- /resources/views/vendor/mail/markdown/subcopy.blade.php: -------------------------------------------------------------------------------- 1 | {{ $slot }} 2 | -------------------------------------------------------------------------------- /resources/views/vendor/mail/markdown/table.blade.php: -------------------------------------------------------------------------------- 1 | {{ $slot }} 2 | -------------------------------------------------------------------------------- /resources/views/vendor/mail/text/button.blade.php: -------------------------------------------------------------------------------- 1 | {{ $slot }}: {{ $url }} 2 | -------------------------------------------------------------------------------- /resources/views/vendor/mail/text/footer.blade.php: -------------------------------------------------------------------------------- 1 | {{ $slot }} 2 | -------------------------------------------------------------------------------- /resources/views/vendor/mail/text/header.blade.php: -------------------------------------------------------------------------------- 1 | [{{ $slot }}]({{ $url }}) 2 | -------------------------------------------------------------------------------- /resources/views/vendor/mail/text/layout.blade.php: -------------------------------------------------------------------------------- 1 | {!! strip_tags($header) !!} 2 | 3 | {!! strip_tags($slot) !!} 4 | @isset($subcopy) 5 | 6 | {!! strip_tags($subcopy) !!} 7 | @endisset 8 | 9 | {!! strip_tags($footer) !!} 10 | -------------------------------------------------------------------------------- /resources/views/vendor/mail/text/message.blade.php: -------------------------------------------------------------------------------- 1 | @component('mail::layout') 2 | {{-- Header --}} 3 | @slot('header') 4 | @component('mail::header', ['url' => config('app.url')]) 5 | {{ config('app.name') }} 6 | @endcomponent 7 | @endslot 8 | 9 | {{-- Body --}} 10 | {{ $slot }} 11 | 12 | {{-- Subcopy --}} 13 | @isset($subcopy) 14 | @slot('subcopy') 15 | @component('mail::subcopy') 16 | {{ $subcopy }} 17 | @endcomponent 18 | @endslot 19 | @endisset 20 | 21 | {{-- Footer --}} 22 | @slot('footer') 23 | @component('mail::footer') 24 | © {{ date('Y') }} {{ config('app.name') }}. @lang('All rights reserved.') 25 | @endcomponent 26 | @endslot 27 | @endcomponent 28 | -------------------------------------------------------------------------------- /resources/views/vendor/mail/text/panel.blade.php: -------------------------------------------------------------------------------- 1 | {{ $slot }} 2 | -------------------------------------------------------------------------------- /resources/views/vendor/mail/text/subcopy.blade.php: -------------------------------------------------------------------------------- 1 | {{ $slot }} 2 | -------------------------------------------------------------------------------- /resources/views/vendor/mail/text/table.blade.php: -------------------------------------------------------------------------------- 1 | {{ $slot }} 2 | -------------------------------------------------------------------------------- /routes/api.php: -------------------------------------------------------------------------------- 1 | get('/user', function (Request $request) { 18 | return auth()->user(); 19 | }); 20 | 21 | Wave::api(); 22 | 23 | // Posts Example API Route 24 | Route::group(['middleware' => 'auth:api'], function () { 25 | Route::get('/posts', '\App\Http\Controllers\Api\ApiController@posts'); 26 | }); 27 | -------------------------------------------------------------------------------- /routes/channels.php: -------------------------------------------------------------------------------- 1 | id === (int) $id; 16 | }); 17 | -------------------------------------------------------------------------------- /routes/console.php: -------------------------------------------------------------------------------- 1 | comment(Inspiring::quote()); 18 | })->describe('Display an inspiring quote'); 19 | -------------------------------------------------------------------------------- /routes/web.php: -------------------------------------------------------------------------------- 1 | get('/'); 5 | $response->assertStatus(200); 6 | $response->assertSee('Ship in Days'); 7 | }); 8 | -------------------------------------------------------------------------------- /tests/Feature/RouteTest.php: -------------------------------------------------------------------------------- 1 | assertStatus(200); 10 | })->with('routes'); 11 | 12 | test('responds with 200 for all auth routes', function ($url) { 13 | $user = \App\Models\User::find(1); 14 | 15 | $this->actingAs($user); 16 | 17 | $response = $this->get($url); 18 | 19 | $response->assertStatus(200); 20 | })->with('authroutes'); -------------------------------------------------------------------------------- /tests/TestCase.php: -------------------------------------------------------------------------------- 1 | toBeTrue(); 5 | }); 6 | -------------------------------------------------------------------------------- /theme.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "anchor" 3 | } -------------------------------------------------------------------------------- /vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite'; 2 | import laravel from 'laravel-vite-plugin'; 3 | import fs from 'fs'; 4 | import path from 'path'; 5 | 6 | const themeFilePath = path.resolve(__dirname, 'theme.json'); 7 | const activeTheme = fs.existsSync(themeFilePath) ? JSON.parse(fs.readFileSync(themeFilePath, 'utf8')).name : 'anchor'; 8 | console.log(`Active theme: ${activeTheme}`); 9 | 10 | export default defineConfig({ 11 | plugins: [ 12 | laravel({ 13 | input: [ 14 | `resources/themes/${activeTheme}/assets/css/app.css`, 15 | `resources/themes/${activeTheme}/assets/js/app.js`, 16 | 'resources/css/filament/admin/theme.css', 17 | ], 18 | refresh: [ 19 | `resources/themes/${activeTheme}/**/*`, 20 | ], 21 | }), 22 | ], 23 | }); 24 | -------------------------------------------------------------------------------- /wave/resources/views/admin/components/label.blade.php: -------------------------------------------------------------------------------- 1 | @props([ 2 | 'for' => '' 3 | ]) 4 | 5 | -------------------------------------------------------------------------------- /wave/resources/views/admin/logo-dark.blade.php: -------------------------------------------------------------------------------- 1 |

Admin

-------------------------------------------------------------------------------- /wave/resources/views/admin/logo.blade.php: -------------------------------------------------------------------------------- 1 |

Admin

-------------------------------------------------------------------------------- /wave/resources/views/partials/billing/paddle_init.blade.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/wave/resources/views/partials/billing/paddle_init.blade.php -------------------------------------------------------------------------------- /wave/resources/views/premium-theme-message.blade.php: -------------------------------------------------------------------------------- 1 | @if(config('wave.demo')) 2 | 16 | @endif -------------------------------------------------------------------------------- /wave/resources/views/premium-theme-messages/1.blade.php: -------------------------------------------------------------------------------- 1 | I see you've wandered into the source code of a premium theme! Before copy/pasting the code, hear me out: 2 | 3 | - This theme has been built for Laravel and Blade. Copy/Pasting from the DOM will result in broken functionality. 4 | - Why not consider upgrading? You'll have access to these premium themes, templates, and more! 5 | 6 | Support our work and make your life easier at the same time! ✨ -------------------------------------------------------------------------------- /wave/resources/views/premium-theme-messages/2.blade.php: -------------------------------------------------------------------------------- 1 | Whoa there, code wanderer! You've stumbled into the source of a premium theme. Before that Ctrl+C moment, just a heads-up: 2 | 3 | - This theme is tailor-made for Laravel and Blade. Copy/Pasting? Might cause a break-up… of functionality, that is. 💔 4 | - Why not level up with an upgrade? Get full access to these themes, templates, and more! 5 | 6 | Support our work and keep your project purring smoothly! 🐱✨ -------------------------------------------------------------------------------- /wave/resources/views/premium-theme-messages/3.blade.php: -------------------------------------------------------------------------------- 1 | Ah, a fellow code explorer! Sneaking a peek at a premium theme, I see. Before you copy/paste away: 2 | 3 | - This theme is crafted with Laravel and Blade magic. Copying from the DOM is like using a broken wand – things might go awry. 🧙‍♂️✨ 4 | - Upgrade for full access! Premium themes, templates, and beyond await you! 5 | 6 | Join us, and let's build awesome things together! 🚀 -------------------------------------------------------------------------------- /wave/resources/views/premium-theme-messages/4.blade.php: -------------------------------------------------------------------------------- 1 | Ahoy, code pirate! ☠️ You've boarded the premium theme ship! Before you plunder the code treasures with that 'copy-paste' hook: 2 | 3 | - This theme is enchanted with Laravel and Blade magic. Copying from the DOM is like sticking a banana in a car's exhaust – things will get messy, fast! 🍌🚗💨 4 | - Upgrade to claim the real loot – premium themes, templates, and other shiny things! 🏴‍☠️ 5 | 6 | Support our crew and sail smoothly on the seas of code! 🏝️⚓ -------------------------------------------------------------------------------- /wave/resources/views/premium-theme-messages/5.blade.php: -------------------------------------------------------------------------------- 1 | Peekaboo! Spying on the source code of a premium theme, are we? Before you go all copy/paste ninja: 2 | 3 | - This theme dances with Laravel and Blade. Stealing from the DOM will ruin the rhythm. 🕺💃 4 | - Upgrade to unlock these premium moves – themes, templates, and more await you! 5 | 6 | Help us keep the code party going! 🎉✨ -------------------------------------------------------------------------------- /wave/resources/views/premium-theme-messages/6.blade.php: -------------------------------------------------------------------------------- 1 | Aha, the source code secrets have lured you in! Before you Ctrl+C your way to glory: 2 | 3 | - This theme runs on Laravel and Blade sorcery. Copying from the DOM? You're inviting chaos to your party. 🎩 4 | - Upgrade to join the inner circle of premium themes and templates! 5 | 6 | Support our mission, and let's conquer code the right way! 💡⚔️ -------------------------------------------------------------------------------- /wave/resources/views/premium-theme-messages/7.blade.php: -------------------------------------------------------------------------------- 1 | Whoa! Code ninja, you've infiltrated the secret dojo of premium themes! 🥷 Before you unleash your 'copy-paste' jutsu, know this: 2 | 3 | - This theme has been trained in the ancient arts of Laravel and Blade. Copying from the DOM is like trying to eat soup with chopsticks – fun, but ultimately pointless. 🍜🥢 4 | - Upgrade to unlock the true way of the ninja – premium themes, templates, and ultimate power! 🥷🗡️ 5 | 6 | Support the dojo, and keep your ninja stars (and code) sharp! 🌟 -------------------------------------------------------------------------------- /wave/resources/views/premium-theme-messages/8.blade.php: -------------------------------------------------------------------------------- 1 | Looks like you've hacked your way into the premium theme's source! Before going copy/paste commando: 2 | 3 | - This theme is built for Laravel and Blade sorcery. Copying from the DOM? Say hello to broken functionality! 💔 4 | - Upgrade to unlock the real treasure – premium themes, templates, and beyond! 5 | 6 | Support our work and unlock the true power of these tools! 🛠️🚀 -------------------------------------------------------------------------------- /wave/resources/views/premium-theme-messages/9.blade.php: -------------------------------------------------------------------------------- 1 | Halt, brave explorer! You've crossed into the Forbidden Code Zone of premium themes! 🛑 Before you unleash a copy/paste spell, consider this: 2 | 3 | - These themes are infused with the dark arts of Laravel and Blade. Copying from the DOM is like adopting a pet dragon – cute at first, but soon you'll be running from fiery bugs! 🐉🔥 4 | - Why not make a noble upgrade? You'll gain access to the premium stash, templates, and more! 🏆 5 | 6 | Support our kingdom, and we'll keep your dragons friendly and bug-free! 🐉✨ -------------------------------------------------------------------------------- /wave/resources/views/welcome.blade.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thedevdojo/wave/fb1605851d76ec16b8a356633ce545effed5cb60/wave/resources/views/welcome.blade.php -------------------------------------------------------------------------------- /wave/routes/api.php: -------------------------------------------------------------------------------- 1 | route('home'); 13 | } 14 | } 15 | 16 | -------------------------------------------------------------------------------- /wave/src/ApiKey.php: -------------------------------------------------------------------------------- 1 | 15 | */ 16 | protected $fillable = [ 17 | 'user_id', 18 | 'name', 19 | 'key', 20 | 'last_used_at', 21 | ]; 22 | 23 | /** 24 | * The attributes that should be cast. 25 | * 26 | * @var array 27 | */ 28 | protected $casts = [ 29 | 'last_used_at' => 'datetime' 30 | ]; 31 | 32 | public function user(){ 33 | return $this->belongsTo(config('auth.providers.users.model')); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /wave/src/Category.php: -------------------------------------------------------------------------------- 1 | hasMany('Wave\Post'); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /wave/src/Changelog.php: -------------------------------------------------------------------------------- 1 | belongsToMany('Wave\User'); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /wave/src/Facades/Wave.php: -------------------------------------------------------------------------------- 1 | get($paddle_url . '/transactions/' . $transactionId . '/invoice'); 18 | $invoice = json_decode($response->body()); 19 | // redirect user to the invoice download URL 20 | return redirect($invoice->data->url); 21 | 22 | } 23 | } -------------------------------------------------------------------------------- /wave/src/Http/Controllers/ChangelogController.php: -------------------------------------------------------------------------------- 1 | user(); 14 | Changelog::whereDoesntHave('users', function ($query) use ($user) { 15 | $query->where('user_id', $user->id); 16 | })->get() 17 | ->pluck('id') 18 | ->tap(function ($missingChangelogNotifications) use ($user) { 19 | $user->changelogs()->attach($missingChangelogNotifications->toArray()); 20 | }); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /wave/src/Http/Controllers/LogoutController.php: -------------------------------------------------------------------------------- 1 | user()->notifications()->where('id', $id)->first(); 12 | if ($notification){ 13 | $notification->delete(); 14 | return response()->json(['type' => 'success', 'message' => 'Marked Notification as Read', 'listid' => $request->listid]); 15 | } 16 | else { 17 | return response()->json(['type' => 'error', 'message' => 'Could not find the specified notification.']); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /wave/src/Http/Controllers/PageController.php: -------------------------------------------------------------------------------- 1 | firstOrFail(); 12 | 13 | $seo = [ 14 | 'seo_title' => $page->title, 15 | 'seo_description' => $page->meta_description, 16 | ]; 17 | 18 | return view('theme::page', compact('page', 'seo')); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /wave/src/Http/Controllers/PluginImageController.php: -------------------------------------------------------------------------------- 1 | header("Content-Type", $type); 24 | 25 | return $response; 26 | } 27 | } -------------------------------------------------------------------------------- /wave/src/Http/Controllers/ThemeImageController.php: -------------------------------------------------------------------------------- 1 | header("Content-Type", $type); 24 | 25 | return $response; 26 | } 27 | } -------------------------------------------------------------------------------- /wave/src/Http/Livewire/Notifications/Notification.php: -------------------------------------------------------------------------------- 1 | user()->hasRole('admin') ){ 19 | return redirect()->route('home'); 20 | } 21 | 22 | return $next($request); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /wave/src/Http/Middleware/Subscribed.php: -------------------------------------------------------------------------------- 1 | user()->subscriber() || auth()->user()->hasRole('admin'))) { 21 | return $next($request); 22 | } 23 | 24 | return redirect()->route('billing'); 25 | } 26 | } -------------------------------------------------------------------------------- /wave/src/Http/Middleware/ThemeDemoMiddleware.php: -------------------------------------------------------------------------------- 1 | theme)){ 19 | return redirect('/')->withCookie(cookie('theme', $request->theme, 60, null, null, false, false)); 20 | } 21 | 22 | return $next($request); 23 | } 24 | } -------------------------------------------------------------------------------- /wave/src/Overrides/Vite.php: -------------------------------------------------------------------------------- 1 | slug); 13 | } 14 | 15 | public function image(){ 16 | return url($this->image); 17 | } 18 | 19 | public function author(){ 20 | return $this->belongsTo(User::class, 'author_id'); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /wave/src/Plan.php: -------------------------------------------------------------------------------- 1 | belongsTo(Role::class); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /wave/src/Plugins/Plugin.php: -------------------------------------------------------------------------------- 1 | name; 14 | } 15 | 16 | // Provide default implementations 17 | public function register() 18 | { 19 | // Default register logic, if any 20 | // Can be overridden by specific plugins 21 | } 22 | 23 | public function boot() 24 | { 25 | // Default boot logic, if any 26 | // Can be overridden by specific plugins 27 | } 28 | 29 | // You can add additional methods that plugins should implement 30 | abstract public function getPluginInfo(): array; 31 | 32 | public function postActivation() 33 | { 34 | // Default implementation (empty) 35 | } 36 | } -------------------------------------------------------------------------------- /wave/src/Plugins/PluginServiceProvider.php: -------------------------------------------------------------------------------- 1 | app->singleton(PluginManager::class, function ($app) { 12 | return new PluginManager($app); 13 | }); 14 | } 15 | 16 | public function boot() 17 | { 18 | $pluginManager = $this->app->make(PluginManager::class); 19 | $pluginManager->loadPlugins(); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /wave/src/Post.php: -------------------------------------------------------------------------------- 1 | category->slug . '/' . $this->slug); 14 | } 15 | 16 | public function user(){ 17 | return $this->belongsTo('\Wave\User', 'author_id'); 18 | } 19 | 20 | public function image(){ 21 | return Storage::url($this->image); 22 | } 23 | 24 | public function category(){ 25 | return $this->belongsTo('Wave\Category'); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /wave/src/ProfileKeyValue.php: -------------------------------------------------------------------------------- 1 | morphTo(); 24 | } 25 | } -------------------------------------------------------------------------------- /wave/src/Setting.php: -------------------------------------------------------------------------------- 1 | toArray(); 31 | }); 32 | 33 | return $settings[$key] ?? $default; 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /wave/src/Theme.php: -------------------------------------------------------------------------------- 1 | hasMany('\Wave\ThemeOptions', 'theme_id'); 15 | } 16 | } -------------------------------------------------------------------------------- /wave/src/ThemeOptions.php: -------------------------------------------------------------------------------- 1 | descriptionIcon('heroicon-m-arrow-trending-up'), 15 | Stat::make('Bounce rate', '21%'), 16 | Stat::make('Average time on page', '3:12'), 17 | ]; 18 | } 19 | } -------------------------------------------------------------------------------- /wave/src/Widgets/WelcomeWidget.php: -------------------------------------------------------------------------------- 1 |