From 5ad54abff2ca5ae4fefac2b6b617c93d8f82ed50 Mon Sep 17 00:00:00 2001 From: Josh Date: Sat, 13 Sep 2025 22:32:19 +1000 Subject: [PATCH] Installed Laravel --- .editorconfig | 18 + .env.example | 65 + .gitattributes | 11 + .github/workflows/lint.yml | 45 + .github/workflows/tests.yml | 50 + .gitignore | 49 +- .idea/DredgeTours.iml | 18 +- .idea/php.xml | 24 + .prettierignore | 2 + .prettierrc | 19 + .../Auth/AuthenticatedSessionController.php | 63 + ...mailVerificationNotificationController.php | 24 + .../EmailVerificationPromptController.php | 22 + .../Auth/NewPasswordController.php | 69 + .../Auth/PasswordResetLinkController.php | 41 + .../Auth/RegisteredUserController.php | 51 + .../Auth/VerifyEmailController.php | 24 + app/Http/Controllers/Controller.php | 8 + .../Settings/PasswordController.php | 39 + .../Settings/ProfileController.php | 63 + .../TwoFactorAuthenticationController.php | 37 + app/Http/Middleware/HandleAppearance.php | 23 + app/Http/Middleware/HandleInertiaRequests.php | 51 + app/Http/Requests/Auth/LoginRequest.php | 94 + .../Settings/ProfileUpdateRequest.php | 30 + .../TwoFactorAuthenticationRequest.php | 30 + app/Models/User.php | 49 + app/Providers/AppServiceProvider.php | 24 + app/Providers/FortifyServiceProvider.php | 34 + artisan | 18 + bootstrap/app.php | 27 + bootstrap/cache/.gitignore | 2 + bootstrap/providers.php | 6 + components.json | 19 + composer.json | 87 + composer.lock | 9714 +++++++++++++++++ config/app.php | 126 + config/auth.php | 115 + config/cache.php | 108 + config/database.php | 182 + config/filesystems.php | 80 + config/fortify.php | 159 + config/inertia.php | 52 + config/logging.php | 132 + config/mail.php | 116 + config/queue.php | 112 + config/services.php | 38 + config/session.php | 217 + database/.gitignore | 1 + database/factories/UserFactory.php | 44 + .../0001_01_01_000000_create_users_table.php | 49 + .../0001_01_01_000001_create_cache_table.php | 35 + .../0001_01_01_000002_create_jobs_table.php | 57 + ..._add_two_factor_columns_to_users_table.php | 34 + database/seeders/DatabaseSeeder.php | 23 + eslint.config.js | 19 + package-lock.json | 5150 +++++++++ package.json | 49 + phpunit.xml | 33 + public/.htaccess | 25 + public/apple-touch-icon.png | Bin 0 -> 1662 bytes public/favicon.ico | Bin 0 -> 4286 bytes public/favicon.svg | 3 + public/index.php | 20 + public/robots.txt | 2 + resources/css/app.css | 167 + resources/js/app.ts | 25 + resources/js/components/AppContent.vue | 21 + resources/js/components/AppHeader.vue | 189 + resources/js/components/AppLogo.vue | 12 + resources/js/components/AppLogoIcon.vue | 24 + resources/js/components/AppShell.vue | 21 + resources/js/components/AppSidebar.vue | 58 + resources/js/components/AppSidebarHeader.vue | 27 + resources/js/components/AppearanceTabs.vue | 31 + resources/js/components/Breadcrumbs.vue | 33 + resources/js/components/DeleteUser.vue | 85 + resources/js/components/Heading.vue | 17 + resources/js/components/HeadingSmall.vue | 17 + resources/js/components/Icon.vue | 30 + resources/js/components/InputError.vue | 13 + resources/js/components/NavFooter.vue | 29 + resources/js/components/NavMain.vue | 28 + resources/js/components/NavUser.vue | 35 + .../js/components/PlaceholderPattern.vue | 16 + resources/js/components/TextLink.vue | 25 + .../js/components/TwoFactorRecoveryCodes.vue | 78 + .../js/components/TwoFactorSetupModal.vue | 188 + resources/js/components/UserInfo.vue | 34 + resources/js/components/UserMenuContent.vue | 43 + resources/js/components/ui/avatar/Avatar.vue | 18 + .../components/ui/avatar/AvatarFallback.vue | 23 + .../js/components/ui/avatar/AvatarImage.vue | 16 + resources/js/components/ui/avatar/index.ts | 3 + resources/js/components/ui/badge/Badge.vue | 26 + resources/js/components/ui/badge/index.ts | 26 + .../components/ui/breadcrumb/Breadcrumb.vue | 17 + .../ui/breadcrumb/BreadcrumbEllipsis.vue | 23 + .../ui/breadcrumb/BreadcrumbItem.vue | 17 + .../ui/breadcrumb/BreadcrumbLink.vue | 20 + .../ui/breadcrumb/BreadcrumbList.vue | 17 + .../ui/breadcrumb/BreadcrumbPage.vue | 20 + .../ui/breadcrumb/BreadcrumbSeparator.vue | 22 + .../js/components/ui/breadcrumb/index.ts | 7 + resources/js/components/ui/button/Button.vue | 27 + resources/js/components/ui/button/index.ts | 36 + resources/js/components/ui/card/Card.vue | 22 + .../js/components/ui/card/CardAction.vue | 17 + .../js/components/ui/card/CardContent.vue | 17 + .../js/components/ui/card/CardDescription.vue | 17 + .../js/components/ui/card/CardFooter.vue | 17 + .../js/components/ui/card/CardHeader.vue | 17 + resources/js/components/ui/card/CardTitle.vue | 17 + resources/js/components/ui/card/index.ts | 7 + .../js/components/ui/checkbox/Checkbox.vue | 37 + resources/js/components/ui/checkbox/index.ts | 1 + .../components/ui/collapsible/Collapsible.vue | 19 + .../ui/collapsible/CollapsibleContent.vue | 14 + .../ui/collapsible/CollapsibleTrigger.vue | 14 + .../js/components/ui/collapsible/index.ts | 3 + resources/js/components/ui/dialog/Dialog.vue | 17 + .../js/components/ui/dialog/DialogClose.vue | 14 + .../js/components/ui/dialog/DialogContent.vue | 49 + .../ui/dialog/DialogDescription.vue | 25 + .../js/components/ui/dialog/DialogFooter.vue | 15 + .../js/components/ui/dialog/DialogHeader.vue | 17 + .../js/components/ui/dialog/DialogOverlay.vue | 23 + .../ui/dialog/DialogScrollContent.vue | 59 + .../js/components/ui/dialog/DialogTitle.vue | 25 + .../js/components/ui/dialog/DialogTrigger.vue | 14 + resources/js/components/ui/dialog/index.ts | 10 + .../ui/dropdown-menu/DropdownMenu.vue | 17 + .../DropdownMenuCheckboxItem.vue | 41 + .../ui/dropdown-menu/DropdownMenuContent.vue | 39 + .../ui/dropdown-menu/DropdownMenuGroup.vue | 14 + .../ui/dropdown-menu/DropdownMenuItem.vue | 30 + .../ui/dropdown-menu/DropdownMenuLabel.vue | 22 + .../dropdown-menu/DropdownMenuRadioGroup.vue | 22 + .../dropdown-menu/DropdownMenuRadioItem.vue | 42 + .../dropdown-menu/DropdownMenuSeparator.vue | 26 + .../ui/dropdown-menu/DropdownMenuShortcut.vue | 17 + .../ui/dropdown-menu/DropdownMenuSub.vue | 19 + .../dropdown-menu/DropdownMenuSubContent.vue | 31 + .../dropdown-menu/DropdownMenuSubTrigger.vue | 30 + .../ui/dropdown-menu/DropdownMenuTrigger.vue | 16 + .../js/components/ui/dropdown-menu/index.ts | 16 + resources/js/components/ui/input/Input.vue | 33 + resources/js/components/ui/input/index.ts | 1 + resources/js/components/ui/label/Label.vue | 28 + resources/js/components/ui/label/index.ts | 1 + .../ui/navigation-menu/NavigationMenu.vue | 35 + .../navigation-menu/NavigationMenuContent.vue | 35 + .../NavigationMenuIndicator.vue | 25 + .../ui/navigation-menu/NavigationMenuItem.vue | 20 + .../ui/navigation-menu/NavigationMenuLink.vue | 27 + .../ui/navigation-menu/NavigationMenuList.vue | 30 + .../navigation-menu/NavigationMenuTrigger.vue | 35 + .../NavigationMenuViewport.vue | 34 + .../js/components/ui/navigation-menu/index.ts | 14 + .../js/components/ui/pin-input/PinInput.vue | 25 + .../components/ui/pin-input/PinInputGroup.vue | 21 + .../ui/pin-input/PinInputSeparator.vue | 19 + .../components/ui/pin-input/PinInputSlot.vue | 21 + resources/js/components/ui/pin-input/index.ts | 4 + .../js/components/ui/separator/Separator.vue | 28 + resources/js/components/ui/separator/index.ts | 1 + resources/js/components/ui/sheet/Sheet.vue | 17 + .../js/components/ui/sheet/SheetClose.vue | 14 + .../js/components/ui/sheet/SheetContent.vue | 63 + .../components/ui/sheet/SheetDescription.vue | 23 + .../js/components/ui/sheet/SheetFooter.vue | 16 + .../js/components/ui/sheet/SheetHeader.vue | 15 + .../js/components/ui/sheet/SheetOverlay.vue | 23 + .../js/components/ui/sheet/SheetTitle.vue | 23 + .../js/components/ui/sheet/SheetTrigger.vue | 14 + resources/js/components/ui/sheet/index.ts | 8 + .../js/components/ui/sidebar/Sidebar.vue | 96 + .../components/ui/sidebar/SidebarContent.vue | 18 + .../components/ui/sidebar/SidebarFooter.vue | 18 + .../js/components/ui/sidebar/SidebarGroup.vue | 18 + .../ui/sidebar/SidebarGroupAction.vue | 27 + .../ui/sidebar/SidebarGroupContent.vue | 18 + .../ui/sidebar/SidebarGroupLabel.vue | 25 + .../components/ui/sidebar/SidebarHeader.vue | 18 + .../js/components/ui/sidebar/SidebarInput.vue | 22 + .../js/components/ui/sidebar/SidebarInset.vue | 21 + .../js/components/ui/sidebar/SidebarMenu.vue | 18 + .../ui/sidebar/SidebarMenuAction.vue | 34 + .../ui/sidebar/SidebarMenuBadge.vue | 26 + .../ui/sidebar/SidebarMenuButton.vue | 49 + .../ui/sidebar/SidebarMenuButtonChild.vue | 34 + .../components/ui/sidebar/SidebarMenuItem.vue | 18 + .../ui/sidebar/SidebarMenuSkeleton.vue | 34 + .../components/ui/sidebar/SidebarMenuSub.vue | 22 + .../ui/sidebar/SidebarMenuSubButton.vue | 36 + .../ui/sidebar/SidebarMenuSubItem.vue | 18 + .../components/ui/sidebar/SidebarProvider.vue | 81 + .../js/components/ui/sidebar/SidebarRail.vue | 33 + .../ui/sidebar/SidebarSeparator.vue | 19 + .../components/ui/sidebar/SidebarTrigger.vue | 27 + resources/js/components/ui/sidebar/index.ts | 60 + resources/js/components/ui/sidebar/utils.ts | 19 + .../js/components/ui/skeleton/Skeleton.vue | 17 + resources/js/components/ui/skeleton/index.ts | 1 + .../js/components/ui/tooltip/Tooltip.vue | 17 + .../components/ui/tooltip/TooltipContent.vue | 33 + .../components/ui/tooltip/TooltipProvider.vue | 13 + .../components/ui/tooltip/TooltipTrigger.vue | 14 + resources/js/components/ui/tooltip/index.ts | 4 + resources/js/composables/useAppearance.ts | 92 + resources/js/composables/useInitials.ts | 14 + resources/js/composables/useTwoFactorAuth.ts | 79 + resources/js/layouts/AppLayout.vue | 18 + resources/js/layouts/AuthLayout.vue | 14 + resources/js/layouts/app/AppHeaderLayout.vue | 23 + resources/js/layouts/app/AppSidebarLayout.vue | 25 + resources/js/layouts/auth/AuthCardLayout.vue | 37 + .../js/layouts/auth/AuthSimpleLayout.vue | 32 + resources/js/layouts/auth/AuthSplitLayout.vue | 41 + resources/js/layouts/settings/Layout.vue | 65 + resources/js/lib/utils.ts | 15 + resources/js/pages/Dashboard.vue | 37 + resources/js/pages/Welcome.vue | 788 ++ resources/js/pages/auth/ConfirmPassword.vue | 42 + resources/js/pages/auth/ForgotPassword.vue | 48 + resources/js/pages/auth/Login.vue | 87 + resources/js/pages/auth/Register.vue | 69 + resources/js/pages/auth/ResetPassword.vue | 71 + .../js/pages/auth/TwoFactorChallenge.vue | 97 + resources/js/pages/auth/VerifyEmail.vue | 32 + resources/js/pages/settings/Appearance.vue | 31 + resources/js/pages/settings/Password.vue | 102 + resources/js/pages/settings/Profile.vue | 108 + resources/js/pages/settings/TwoFactor.vue | 92 + resources/js/ssr.ts | 19 + resources/js/types/globals.d.ts | 26 + resources/js/types/index.d.ts | 37 + resources/views/app.blade.php | 48 + routes/auth.php | 52 + routes/console.php | 8 + routes/settings.php | 28 + routes/web.php | 15 + storage/app/.gitignore | 4 + storage/app/private/.gitignore | 2 + storage/app/public/.gitignore | 2 + storage/framework/.gitignore | 9 + storage/framework/cache/.gitignore | 3 + storage/framework/cache/data/.gitignore | 2 + storage/framework/sessions/.gitignore | 2 + storage/framework/testing/.gitignore | 2 + storage/framework/views/.gitignore | 2 + storage/logs/.gitignore | 2 + tests/Feature/Auth/AuthenticationTest.php | 90 + tests/Feature/Auth/EmailVerificationTest.php | 97 + .../Feature/Auth/PasswordConfirmationTest.php | 24 + tests/Feature/Auth/PasswordResetTest.php | 75 + tests/Feature/Auth/RegistrationTest.php | 21 + tests/Feature/Auth/TwoFactorChallengeTest.php | 47 + .../Auth/VerificationNotificationTest.php | 31 + tests/Feature/DashboardTest.php | 18 + tests/Feature/ExampleTest.php | 7 + tests/Feature/Settings/PasswordUpdateTest.php | 52 + tests/Feature/Settings/ProfileUpdateTest.php | 87 + .../Settings/TwoFactorAuthenticationTest.php | 81 + tests/Pest.php | 47 + tests/TestCase.php | 10 + tests/Unit/ExampleTest.php | 5 + tsconfig.json | 126 + vite.config.ts | 27 + 269 files changed, 25065 insertions(+), 27 deletions(-) create mode 100644 .editorconfig create mode 100644 .env.example create mode 100644 .gitattributes create mode 100644 .github/workflows/lint.yml create mode 100644 .github/workflows/tests.yml create mode 100644 .prettierignore create mode 100644 .prettierrc create mode 100644 app/Http/Controllers/Auth/AuthenticatedSessionController.php create mode 100644 app/Http/Controllers/Auth/EmailVerificationNotificationController.php create mode 100644 app/Http/Controllers/Auth/EmailVerificationPromptController.php create mode 100644 app/Http/Controllers/Auth/NewPasswordController.php create mode 100644 app/Http/Controllers/Auth/PasswordResetLinkController.php create mode 100644 app/Http/Controllers/Auth/RegisteredUserController.php create mode 100644 app/Http/Controllers/Auth/VerifyEmailController.php create mode 100644 app/Http/Controllers/Controller.php create mode 100644 app/Http/Controllers/Settings/PasswordController.php create mode 100644 app/Http/Controllers/Settings/ProfileController.php create mode 100644 app/Http/Controllers/Settings/TwoFactorAuthenticationController.php create mode 100644 app/Http/Middleware/HandleAppearance.php create mode 100644 app/Http/Middleware/HandleInertiaRequests.php create mode 100644 app/Http/Requests/Auth/LoginRequest.php create mode 100644 app/Http/Requests/Settings/ProfileUpdateRequest.php create mode 100644 app/Http/Requests/Settings/TwoFactorAuthenticationRequest.php create mode 100644 app/Models/User.php create mode 100644 app/Providers/AppServiceProvider.php create mode 100644 app/Providers/FortifyServiceProvider.php create mode 100644 artisan create mode 100644 bootstrap/app.php create mode 100644 bootstrap/cache/.gitignore create mode 100644 bootstrap/providers.php create mode 100644 components.json create mode 100644 composer.json create mode 100644 composer.lock create mode 100644 config/app.php create mode 100644 config/auth.php create mode 100644 config/cache.php create mode 100644 config/database.php create mode 100644 config/filesystems.php create mode 100644 config/fortify.php create mode 100644 config/inertia.php create mode 100644 config/logging.php create mode 100644 config/mail.php create mode 100644 config/queue.php create mode 100644 config/services.php create mode 100644 config/session.php create mode 100644 database/.gitignore create mode 100644 database/factories/UserFactory.php create mode 100644 database/migrations/0001_01_01_000000_create_users_table.php create mode 100644 database/migrations/0001_01_01_000001_create_cache_table.php create mode 100644 database/migrations/0001_01_01_000002_create_jobs_table.php create mode 100644 database/migrations/2025_08_14_170933_add_two_factor_columns_to_users_table.php create mode 100644 database/seeders/DatabaseSeeder.php create mode 100644 eslint.config.js create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 phpunit.xml create mode 100644 public/.htaccess create mode 100644 public/apple-touch-icon.png create mode 100644 public/favicon.ico create mode 100644 public/favicon.svg create mode 100644 public/index.php create mode 100644 public/robots.txt create mode 100644 resources/css/app.css create mode 100644 resources/js/app.ts create mode 100644 resources/js/components/AppContent.vue create mode 100644 resources/js/components/AppHeader.vue create mode 100644 resources/js/components/AppLogo.vue create mode 100644 resources/js/components/AppLogoIcon.vue create mode 100644 resources/js/components/AppShell.vue create mode 100644 resources/js/components/AppSidebar.vue create mode 100644 resources/js/components/AppSidebarHeader.vue create mode 100644 resources/js/components/AppearanceTabs.vue create mode 100644 resources/js/components/Breadcrumbs.vue create mode 100644 resources/js/components/DeleteUser.vue create mode 100644 resources/js/components/Heading.vue create mode 100644 resources/js/components/HeadingSmall.vue create mode 100644 resources/js/components/Icon.vue create mode 100644 resources/js/components/InputError.vue create mode 100644 resources/js/components/NavFooter.vue create mode 100644 resources/js/components/NavMain.vue create mode 100644 resources/js/components/NavUser.vue create mode 100644 resources/js/components/PlaceholderPattern.vue create mode 100644 resources/js/components/TextLink.vue create mode 100644 resources/js/components/TwoFactorRecoveryCodes.vue create mode 100644 resources/js/components/TwoFactorSetupModal.vue create mode 100644 resources/js/components/UserInfo.vue create mode 100644 resources/js/components/UserMenuContent.vue create mode 100644 resources/js/components/ui/avatar/Avatar.vue create mode 100644 resources/js/components/ui/avatar/AvatarFallback.vue create mode 100644 resources/js/components/ui/avatar/AvatarImage.vue create mode 100644 resources/js/components/ui/avatar/index.ts create mode 100644 resources/js/components/ui/badge/Badge.vue create mode 100644 resources/js/components/ui/badge/index.ts create mode 100644 resources/js/components/ui/breadcrumb/Breadcrumb.vue create mode 100644 resources/js/components/ui/breadcrumb/BreadcrumbEllipsis.vue create mode 100644 resources/js/components/ui/breadcrumb/BreadcrumbItem.vue create mode 100644 resources/js/components/ui/breadcrumb/BreadcrumbLink.vue create mode 100644 resources/js/components/ui/breadcrumb/BreadcrumbList.vue create mode 100644 resources/js/components/ui/breadcrumb/BreadcrumbPage.vue create mode 100644 resources/js/components/ui/breadcrumb/BreadcrumbSeparator.vue create mode 100644 resources/js/components/ui/breadcrumb/index.ts create mode 100644 resources/js/components/ui/button/Button.vue create mode 100644 resources/js/components/ui/button/index.ts create mode 100644 resources/js/components/ui/card/Card.vue create mode 100644 resources/js/components/ui/card/CardAction.vue create mode 100644 resources/js/components/ui/card/CardContent.vue create mode 100644 resources/js/components/ui/card/CardDescription.vue create mode 100644 resources/js/components/ui/card/CardFooter.vue create mode 100644 resources/js/components/ui/card/CardHeader.vue create mode 100644 resources/js/components/ui/card/CardTitle.vue create mode 100644 resources/js/components/ui/card/index.ts create mode 100644 resources/js/components/ui/checkbox/Checkbox.vue create mode 100644 resources/js/components/ui/checkbox/index.ts create mode 100644 resources/js/components/ui/collapsible/Collapsible.vue create mode 100644 resources/js/components/ui/collapsible/CollapsibleContent.vue create mode 100644 resources/js/components/ui/collapsible/CollapsibleTrigger.vue create mode 100644 resources/js/components/ui/collapsible/index.ts create mode 100644 resources/js/components/ui/dialog/Dialog.vue create mode 100644 resources/js/components/ui/dialog/DialogClose.vue create mode 100644 resources/js/components/ui/dialog/DialogContent.vue create mode 100644 resources/js/components/ui/dialog/DialogDescription.vue create mode 100644 resources/js/components/ui/dialog/DialogFooter.vue create mode 100644 resources/js/components/ui/dialog/DialogHeader.vue create mode 100644 resources/js/components/ui/dialog/DialogOverlay.vue create mode 100644 resources/js/components/ui/dialog/DialogScrollContent.vue create mode 100644 resources/js/components/ui/dialog/DialogTitle.vue create mode 100644 resources/js/components/ui/dialog/DialogTrigger.vue create mode 100644 resources/js/components/ui/dialog/index.ts create mode 100644 resources/js/components/ui/dropdown-menu/DropdownMenu.vue create mode 100644 resources/js/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue create mode 100644 resources/js/components/ui/dropdown-menu/DropdownMenuContent.vue create mode 100644 resources/js/components/ui/dropdown-menu/DropdownMenuGroup.vue create mode 100644 resources/js/components/ui/dropdown-menu/DropdownMenuItem.vue create mode 100644 resources/js/components/ui/dropdown-menu/DropdownMenuLabel.vue create mode 100644 resources/js/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue create mode 100644 resources/js/components/ui/dropdown-menu/DropdownMenuRadioItem.vue create mode 100644 resources/js/components/ui/dropdown-menu/DropdownMenuSeparator.vue create mode 100644 resources/js/components/ui/dropdown-menu/DropdownMenuShortcut.vue create mode 100644 resources/js/components/ui/dropdown-menu/DropdownMenuSub.vue create mode 100644 resources/js/components/ui/dropdown-menu/DropdownMenuSubContent.vue create mode 100644 resources/js/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue create mode 100644 resources/js/components/ui/dropdown-menu/DropdownMenuTrigger.vue create mode 100644 resources/js/components/ui/dropdown-menu/index.ts create mode 100644 resources/js/components/ui/input/Input.vue create mode 100644 resources/js/components/ui/input/index.ts create mode 100644 resources/js/components/ui/label/Label.vue create mode 100644 resources/js/components/ui/label/index.ts create mode 100644 resources/js/components/ui/navigation-menu/NavigationMenu.vue create mode 100644 resources/js/components/ui/navigation-menu/NavigationMenuContent.vue create mode 100644 resources/js/components/ui/navigation-menu/NavigationMenuIndicator.vue create mode 100644 resources/js/components/ui/navigation-menu/NavigationMenuItem.vue create mode 100644 resources/js/components/ui/navigation-menu/NavigationMenuLink.vue create mode 100644 resources/js/components/ui/navigation-menu/NavigationMenuList.vue create mode 100644 resources/js/components/ui/navigation-menu/NavigationMenuTrigger.vue create mode 100644 resources/js/components/ui/navigation-menu/NavigationMenuViewport.vue create mode 100644 resources/js/components/ui/navigation-menu/index.ts create mode 100644 resources/js/components/ui/pin-input/PinInput.vue create mode 100644 resources/js/components/ui/pin-input/PinInputGroup.vue create mode 100644 resources/js/components/ui/pin-input/PinInputSeparator.vue create mode 100644 resources/js/components/ui/pin-input/PinInputSlot.vue create mode 100644 resources/js/components/ui/pin-input/index.ts create mode 100644 resources/js/components/ui/separator/Separator.vue create mode 100644 resources/js/components/ui/separator/index.ts create mode 100644 resources/js/components/ui/sheet/Sheet.vue create mode 100644 resources/js/components/ui/sheet/SheetClose.vue create mode 100644 resources/js/components/ui/sheet/SheetContent.vue create mode 100644 resources/js/components/ui/sheet/SheetDescription.vue create mode 100644 resources/js/components/ui/sheet/SheetFooter.vue create mode 100644 resources/js/components/ui/sheet/SheetHeader.vue create mode 100644 resources/js/components/ui/sheet/SheetOverlay.vue create mode 100644 resources/js/components/ui/sheet/SheetTitle.vue create mode 100644 resources/js/components/ui/sheet/SheetTrigger.vue create mode 100644 resources/js/components/ui/sheet/index.ts create mode 100644 resources/js/components/ui/sidebar/Sidebar.vue create mode 100644 resources/js/components/ui/sidebar/SidebarContent.vue create mode 100644 resources/js/components/ui/sidebar/SidebarFooter.vue create mode 100644 resources/js/components/ui/sidebar/SidebarGroup.vue create mode 100644 resources/js/components/ui/sidebar/SidebarGroupAction.vue create mode 100644 resources/js/components/ui/sidebar/SidebarGroupContent.vue create mode 100644 resources/js/components/ui/sidebar/SidebarGroupLabel.vue create mode 100644 resources/js/components/ui/sidebar/SidebarHeader.vue create mode 100644 resources/js/components/ui/sidebar/SidebarInput.vue create mode 100644 resources/js/components/ui/sidebar/SidebarInset.vue create mode 100644 resources/js/components/ui/sidebar/SidebarMenu.vue create mode 100644 resources/js/components/ui/sidebar/SidebarMenuAction.vue create mode 100644 resources/js/components/ui/sidebar/SidebarMenuBadge.vue create mode 100644 resources/js/components/ui/sidebar/SidebarMenuButton.vue create mode 100644 resources/js/components/ui/sidebar/SidebarMenuButtonChild.vue create mode 100644 resources/js/components/ui/sidebar/SidebarMenuItem.vue create mode 100644 resources/js/components/ui/sidebar/SidebarMenuSkeleton.vue create mode 100644 resources/js/components/ui/sidebar/SidebarMenuSub.vue create mode 100644 resources/js/components/ui/sidebar/SidebarMenuSubButton.vue create mode 100644 resources/js/components/ui/sidebar/SidebarMenuSubItem.vue create mode 100644 resources/js/components/ui/sidebar/SidebarProvider.vue create mode 100644 resources/js/components/ui/sidebar/SidebarRail.vue create mode 100644 resources/js/components/ui/sidebar/SidebarSeparator.vue create mode 100644 resources/js/components/ui/sidebar/SidebarTrigger.vue create mode 100644 resources/js/components/ui/sidebar/index.ts create mode 100644 resources/js/components/ui/sidebar/utils.ts create mode 100644 resources/js/components/ui/skeleton/Skeleton.vue create mode 100644 resources/js/components/ui/skeleton/index.ts create mode 100644 resources/js/components/ui/tooltip/Tooltip.vue create mode 100644 resources/js/components/ui/tooltip/TooltipContent.vue create mode 100644 resources/js/components/ui/tooltip/TooltipProvider.vue create mode 100644 resources/js/components/ui/tooltip/TooltipTrigger.vue create mode 100644 resources/js/components/ui/tooltip/index.ts create mode 100644 resources/js/composables/useAppearance.ts create mode 100644 resources/js/composables/useInitials.ts create mode 100644 resources/js/composables/useTwoFactorAuth.ts create mode 100644 resources/js/layouts/AppLayout.vue create mode 100644 resources/js/layouts/AuthLayout.vue create mode 100644 resources/js/layouts/app/AppHeaderLayout.vue create mode 100644 resources/js/layouts/app/AppSidebarLayout.vue create mode 100644 resources/js/layouts/auth/AuthCardLayout.vue create mode 100644 resources/js/layouts/auth/AuthSimpleLayout.vue create mode 100644 resources/js/layouts/auth/AuthSplitLayout.vue create mode 100644 resources/js/layouts/settings/Layout.vue create mode 100644 resources/js/lib/utils.ts create mode 100644 resources/js/pages/Dashboard.vue create mode 100644 resources/js/pages/Welcome.vue create mode 100644 resources/js/pages/auth/ConfirmPassword.vue create mode 100644 resources/js/pages/auth/ForgotPassword.vue create mode 100644 resources/js/pages/auth/Login.vue create mode 100644 resources/js/pages/auth/Register.vue create mode 100644 resources/js/pages/auth/ResetPassword.vue create mode 100644 resources/js/pages/auth/TwoFactorChallenge.vue create mode 100644 resources/js/pages/auth/VerifyEmail.vue create mode 100644 resources/js/pages/settings/Appearance.vue create mode 100644 resources/js/pages/settings/Password.vue create mode 100644 resources/js/pages/settings/Profile.vue create mode 100644 resources/js/pages/settings/TwoFactor.vue create mode 100644 resources/js/ssr.ts create mode 100644 resources/js/types/globals.d.ts create mode 100644 resources/js/types/index.d.ts create mode 100644 resources/views/app.blade.php create mode 100644 routes/auth.php create mode 100644 routes/console.php create mode 100644 routes/settings.php create mode 100644 routes/web.php create mode 100644 storage/app/.gitignore create mode 100644 storage/app/private/.gitignore create mode 100644 storage/app/public/.gitignore create mode 100644 storage/framework/.gitignore create mode 100644 storage/framework/cache/.gitignore create mode 100644 storage/framework/cache/data/.gitignore create mode 100644 storage/framework/sessions/.gitignore create mode 100644 storage/framework/testing/.gitignore create mode 100644 storage/framework/views/.gitignore create mode 100644 storage/logs/.gitignore create mode 100644 tests/Feature/Auth/AuthenticationTest.php create mode 100644 tests/Feature/Auth/EmailVerificationTest.php create mode 100644 tests/Feature/Auth/PasswordConfirmationTest.php create mode 100644 tests/Feature/Auth/PasswordResetTest.php create mode 100644 tests/Feature/Auth/RegistrationTest.php create mode 100644 tests/Feature/Auth/TwoFactorChallengeTest.php create mode 100644 tests/Feature/Auth/VerificationNotificationTest.php create mode 100644 tests/Feature/DashboardTest.php create mode 100644 tests/Feature/ExampleTest.php create mode 100644 tests/Feature/Settings/PasswordUpdateTest.php create mode 100644 tests/Feature/Settings/ProfileUpdateTest.php create mode 100644 tests/Feature/Settings/TwoFactorAuthenticationTest.php create mode 100644 tests/Pest.php create mode 100644 tests/TestCase.php create mode 100644 tests/Unit/ExampleTest.php create mode 100644 tsconfig.json create mode 100644 vite.config.ts diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..8f0de65 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,18 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +indent_size = 4 +indent_style = space +insert_final_newline = true +trim_trailing_whitespace = true + +[*.md] +trim_trailing_whitespace = false + +[*.{yml,yaml}] +indent_size = 2 + +[docker-compose.yml] +indent_size = 4 diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..35db1dd --- /dev/null +++ b/.env.example @@ -0,0 +1,65 @@ +APP_NAME=Laravel +APP_ENV=local +APP_KEY= +APP_DEBUG=true +APP_URL=http://localhost + +APP_LOCALE=en +APP_FALLBACK_LOCALE=en +APP_FAKER_LOCALE=en_US + +APP_MAINTENANCE_DRIVER=file +# APP_MAINTENANCE_STORE=database + +PHP_CLI_SERVER_WORKERS=4 + +BCRYPT_ROUNDS=12 + +LOG_CHANNEL=stack +LOG_STACK=single +LOG_DEPRECATIONS_CHANNEL=null +LOG_LEVEL=debug + +DB_CONNECTION=sqlite +# DB_HOST=127.0.0.1 +# DB_PORT=3306 +# DB_DATABASE=laravel +# DB_USERNAME=root +# DB_PASSWORD= + +SESSION_DRIVER=database +SESSION_LIFETIME=120 +SESSION_ENCRYPT=false +SESSION_PATH=/ +SESSION_DOMAIN=null + +BROADCAST_CONNECTION=log +FILESYSTEM_DISK=local +QUEUE_CONNECTION=database + +CACHE_STORE=database +# CACHE_PREFIX= + +MEMCACHED_HOST=127.0.0.1 + +REDIS_CLIENT=phpredis +REDIS_HOST=127.0.0.1 +REDIS_PASSWORD=null +REDIS_PORT=6379 + +MAIL_MAILER=log +MAIL_SCHEME=null +MAIL_HOST=127.0.0.1 +MAIL_PORT=2525 +MAIL_USERNAME=null +MAIL_PASSWORD=null +MAIL_FROM_ADDRESS="hello@example.com" +MAIL_FROM_NAME="${APP_NAME}" + +AWS_ACCESS_KEY_ID= +AWS_SECRET_ACCESS_KEY= +AWS_DEFAULT_REGION=us-east-1 +AWS_BUCKET= +AWS_USE_PATH_STYLE_ENDPOINT=false + +VITE_APP_NAME="${APP_NAME}" diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..4da48a8 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,11 @@ +* text=auto eol=lf + +*.blade.php diff=html +*.css diff=css +*.html diff=html +*.md diff=markdown +*.php diff=php + +CHANGELOG.md export-ignore +README.md export-ignore +.github/workflows/browser-tests.yml export-ignore diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000..9f2ccc0 --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,45 @@ +name: linter + +on: + push: + branches: + - develop + - main + pull_request: + branches: + - develop + - main + +permissions: + contents: write + +jobs: + quality: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: '8.4' + + - name: Install Dependencies + run: | + composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist + npm install + + - name: Run Pint + run: vendor/bin/pint + + - name: Format Frontend + run: npm run format + + - name: Lint Frontend + run: npm run lint + + # - name: Commit Changes + # uses: stefanzweifel/git-auto-commit-action@v5 + # with: + # commit_message: fix code style + # commit_options: '--no-verify' diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 0000000..038f158 --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,50 @@ +name: tests + +on: + push: + branches: + - develop + - main + pull_request: + branches: + - develop + - main + +jobs: + ci: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: 8.4 + tools: composer:v2 + coverage: xdebug + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: '22' + cache: 'npm' + + - name: Install Node Dependencies + run: npm ci + + - name: Install Dependencies + run: composer install --no-interaction --prefer-dist --optimize-autoloader + + - name: Copy Environment File + run: cp .env.example .env + + - name: Generate Application Key + run: php artisan key:generate + + - name: Build Assets + run: npm run build + + - name: Tests + run: ./vendor/bin/pest diff --git a/.gitignore b/.gitignore index f834e12..5504403 100644 --- a/.gitignore +++ b/.gitignore @@ -1,31 +1,28 @@ -/vendor/ -node_modules/ -npm-debug.log -yarn-error.log - -# Laravel 4 specific -bootstrap/compiled.php -app/storage/ - -# Laravel 5 & Lumen specific -public/storage -public/hot -docker/data/ - -# Laravel 5 & Lumen specific with changed public path -public_html/storage -public_html/hot - -storage/*.key -.env -Homestead.yaml -Homestead.json -/.vagrant -.phpunit.result.cache - +/.phpunit.cache +/bootstrap/ssr +/node_modules /public/build +/public/hot +/public/storage +/storage/*.key /storage/pail +/resources/js/actions +/resources/js/routes +/resources/js/wayfinder +/vendor +.DS_Store +.env .env.backup .env.production .phpactor.json -auth.json +.phpunit.result.cache +Homestead.json +Homestead.yaml +npm-debug.log +yarn-error.log +/auth.json +/.fleet +/.idea +/.nova +/.vscode +/.zed diff --git a/.idea/DredgeTours.iml b/.idea/DredgeTours.iml index c956989..212719e 100644 --- a/.idea/DredgeTours.iml +++ b/.idea/DredgeTours.iml @@ -1,7 +1,23 @@ - + + + + + + + + + + + + + + + + + diff --git a/.idea/php.xml b/.idea/php.xml index f324872..f15750e 100644 --- a/.idea/php.xml +++ b/.idea/php.xml @@ -10,9 +10,33 @@