Mercurial > packages > auth
changeset 1:a2a3059de103
Updates to some styles and general automation of creation
| author | luka |
|---|---|
| date | Thu, 14 Aug 2025 21:09:25 -0400 |
| parents | 90e38de8f2ba |
| children | ac199a7a8931 |
| files | composer.json src/Console/InstallsBladeStack.php stubs/default/resources/views/auth/register.blade.php stubs/default/resources/views/layouts/app.blade.php stubs/default/resources/views/layouts/navigation.blade.php |
| diffstat | 5 files changed, 74 insertions(+), 156 deletions(-) [+] |
line wrap: on
line diff
--- a/composer.json Wed Aug 13 22:17:20 2025 -0400 +++ b/composer.json Thu Aug 14 21:09:25 2025 -0400 @@ -1,6 +1,7 @@ { - "name": "wizzard/auth", + "name": "wizard/auth", "description": "Minimal Laravel authentication scaffolding with Blade and Bootstrap.", + "version": "1.0.0", "keywords": ["wizard", "auth"], "license": "MIT", "authors": [ @@ -22,7 +23,7 @@ }, "autoload": { "psr-4": { - "Laravel\\Breeze\\": "src/" + "Wizard\\Auth\\": "src/" } }, "extra": { @@ -35,6 +36,6 @@ "config": { "sort-packages": true }, - "minimum-stability": "dev", + "minimum-stability": "stable", "prefer-stable": true }
--- a/src/Console/InstallsBladeStack.php Wed Aug 13 22:17:20 2025 -0400 +++ b/src/Console/InstallsBladeStack.php Thu Aug 14 21:09:25 2025 -0400 @@ -34,15 +34,6 @@ (new Filesystem)->ensureDirectoryExists(resource_path('views')); (new Filesystem)->copyDirectory(__DIR__.'/../../stubs/default/resources/views', resource_path('views')); - if (! $this->option('dark')) { - $this->removeDarkClasses((new Finder) - ->in(resource_path('views')) - ->name('*.blade.php') - ->notPath('livewire/welcome/navigation.blade.php') - ->notName('welcome.blade.php') - ); - } - // Components... (new Filesystem)->ensureDirectoryExists(app_path('View/Components')); (new Filesystem)->copyDirectory(__DIR__.'/../../stubs/default/app/View/Components', app_path('View/Components')); @@ -60,26 +51,7 @@ $this->replaceInFile('/home', '/dashboard', resource_path('views/welcome.blade.php')); $this->replaceInFile('Home', 'Dashboard', resource_path('views/welcome.blade.php')); - // Tailwind / Vite... - copy(__DIR__.'/../../stubs/default/tailwind.config.js', base_path('tailwind.config.js')); - copy(__DIR__.'/../../stubs/default/postcss.config.js', base_path('postcss.config.js')); - copy(__DIR__.'/../../stubs/default/vite.config.js', base_path('vite.config.js')); - copy(__DIR__.'/../../stubs/default/resources/css/app.css', resource_path('css/app.css')); - copy(__DIR__.'/../../stubs/default/resources/js/app.js', resource_path('js/app.js')); - - $this->components->info('Installing and building Node dependencies.'); - - if (file_exists(base_path('pnpm-lock.yaml'))) { - $this->runCommands(['pnpm install', 'pnpm run build']); - } elseif (file_exists(base_path('yarn.lock'))) { - $this->runCommands(['yarn install', 'yarn run build']); - } elseif (file_exists(base_path('bun.lock')) || file_exists(base_path('bun.lockb'))) { - $this->runCommands(['bun install', 'bun run build']); - } elseif (file_exists(base_path('deno.lock'))) { - $this->runCommands(['deno install', 'deno task build']); - } else { - $this->runCommands(['npm install', 'npm run build']); - } + $this->runCommands(['npm install', 'npm run build']); $this->line(''); $this->components->info('Breeze scaffolding installed successfully.');
--- a/stubs/default/resources/views/auth/register.blade.php Wed Aug 13 22:17:20 2025 -0400 +++ b/stubs/default/resources/views/auth/register.blade.php Thu Aug 14 21:09:25 2025 -0400 @@ -44,9 +44,9 @@ {{ __('Already registered?') }} </a> - <x-primary-button class="btn btn-primary"> + <button type="submit" class="btn btn-primary"> {{ __('Register') }} - </x-primary-button> + </button> </div> </form> </x-guest-layout>
--- a/stubs/default/resources/views/layouts/app.blade.php Wed Aug 13 22:17:20 2025 -0400 +++ b/stubs/default/resources/views/layouts/app.blade.php Thu Aug 14 21:09:25 2025 -0400 @@ -1,36 +1,38 @@ <!DOCTYPE html> <html lang="{{ str_replace('_', '-', app()->getLocale()) }}"> - <head> - <meta charset="utf-8"> - <meta name="viewport" content="width=device-width, initial-scale=1"> - <meta name="csrf-token" content="{{ csrf_token() }}"> + +<head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <meta name="csrf-token" content="{{ csrf_token() }}"> + + <title>{{ config('app.name', 'Laravel') }}</title> - <title>{{ config('app.name', 'Laravel') }}</title> + <!-- Scripts --> + @vite(['resources/sass/app.scss', 'resources/js/app.js']) + @stack('styles') + @stack('scripts') +</head> - <!-- Fonts --> - <link rel="preconnect" href="https://fonts.bunny.net"> - <link href="https://fonts.bunny.net/css?family=figtree:400,500,600&display=swap" rel="stylesheet" /> +<body class="font-sans antialiased"> + <div class="min-vh-100 bg-light"> + @include('layouts.navigation') - <!-- Scripts --> - @vite(['resources/css/app.css', 'resources/js/app.js']) - </head> - <body class="font-sans antialiased"> - <div class="min-h-screen bg-gray-100 dark:bg-gray-900"> - @include('layouts.navigation') + <!-- Page Heading --> + @isset($header) + <header class="bg-white shadow-sm"> + <div class="container py-4"> + {{ $header }} + </div> + </header> + @endisset - <!-- Page Heading --> - @isset($header) - <header class="bg-white dark:bg-gray-800 shadow"> - <div class="max-w-7xl mx-auto py-6 px-4 sm:px-6 lg:px-8"> - {{ $header }} - </div> - </header> - @endisset + <!-- Page Content --> + <main> + {{ $slot }} + </main> + </div> + @stack('modals') +</body> - <!-- Page Content --> - <main> - {{ $slot }} - </main> - </div> - </body> </html>
--- a/stubs/default/resources/views/layouts/navigation.blade.php Wed Aug 13 22:17:20 2025 -0400 +++ b/stubs/default/resources/views/layouts/navigation.blade.php Thu Aug 14 21:09:25 2025 -0400 @@ -1,100 +1,43 @@ -<nav x-data="{ open: false }" class="bg-white dark:bg-gray-800 border-b border-gray-100 dark:border-gray-700"> +<nav x-data="{ open: false }" class="navbar navbar-expand-lg navbar-light bg-light border-bottom"> <!-- Primary Navigation Menu --> - <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> - <div class="flex justify-between h-16"> - <div class="flex"> - <!-- Logo --> - <div class="shrink-0 flex items-center"> - <a href="{{ route('dashboard') }}"> - <x-application-logo class="block h-9 w-auto fill-current text-gray-800 dark:text-gray-200" /> - </a> - </div> - - <!-- Navigation Links --> - <div class="hidden space-x-8 sm:-my-px sm:ms-10 sm:flex"> - <x-nav-link :href="route('dashboard')" :active="request()->routeIs('dashboard')"> - {{ __('Dashboard') }} + <div class="container-fluid"> + <a class="navbar-brand" href="{{ route('dashboard') }}"> + <x-application-logo class="d-inline-block align-text-top" /> + </a> + <button class="navbar-toggler" type="button" @click="open = ! open" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation"> + <span class="navbar-toggler-icon"></span> + </button> + <div :class="{ 'collapse': !open, 'navbar-collapse': open }" class="collapse navbar-collapse" id="navbarNav"> + <ul class="navbar-nav me-auto mb-2 mb-lg-0"> + <li class="nav-item"> + <x-nav-link :href="route('projects.index')" :active="request()->routeIs('projects.index')" class="nav-link"> + {{ __('Projects') }} </x-nav-link> - </div> - </div> - - <!-- Settings Dropdown --> - <div class="hidden sm:flex sm:items-center sm:ms-6"> - <x-dropdown align="right" width="48"> - <x-slot name="trigger"> - <button class="inline-flex items-center px-3 py-2 border border-transparent text-sm leading-4 font-medium rounded-md text-gray-500 dark:text-gray-400 bg-white dark:bg-gray-800 hover:text-gray-700 dark:hover:text-gray-300 focus:outline-none transition ease-in-out duration-150"> - <div>{{ Auth::user()->name }}</div> - - <div class="ms-1"> - <svg class="fill-current h-4 w-4" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"> - <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd" /> - </svg> - </div> - </button> - </x-slot> - - <x-slot name="content"> - <x-dropdown-link :href="route('profile.edit')"> - {{ __('Profile') }} - </x-dropdown-link> - - <!-- Authentication --> - <form method="POST" action="{{ route('logout') }}"> - @csrf - - <x-dropdown-link :href="route('logout')" - onclick="event.preventDefault(); - this.closest('form').submit();"> - {{ __('Log Out') }} + </li> + </ul> + <ul class="navbar-nav ms-auto"> + <li class="nav-item dropdown"> + <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false"> + {{ Auth::user()->name }} + </a> + <ul class="dropdown-menu dropdown-menu-end" aria-labelledby="navbarDropdown"> + <li> + <x-dropdown-link :href="route('profile.edit')" class="dropdown-item"> + {{ __('Profile') }} </x-dropdown-link> - </form> - </x-slot> - </x-dropdown> - </div> - - <!-- Hamburger --> - <div class="-me-2 flex items-center sm:hidden"> - <button @click="open = ! open" class="inline-flex items-center justify-center p-2 rounded-md text-gray-400 dark:text-gray-500 hover:text-gray-500 dark:hover:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-900 focus:outline-none focus:bg-gray-100 dark:focus:bg-gray-900 focus:text-gray-500 dark:focus:text-gray-400 transition duration-150 ease-in-out"> - <svg class="h-6 w-6" stroke="currentColor" fill="none" viewBox="0 0 24 24"> - <path :class="{'hidden': open, 'inline-flex': ! open }" class="inline-flex" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16" /> - <path :class="{'hidden': ! open, 'inline-flex': open }" class="hidden" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" /> - </svg> - </button> - </div> - </div> - </div> - - <!-- Responsive Navigation Menu --> - <div :class="{'block': open, 'hidden': ! open}" class="hidden sm:hidden"> - <div class="pt-2 pb-3 space-y-1"> - <x-responsive-nav-link :href="route('dashboard')" :active="request()->routeIs('dashboard')"> - {{ __('Dashboard') }} - </x-responsive-nav-link> - </div> - - <!-- Responsive Settings Options --> - <div class="pt-4 pb-1 border-t border-gray-200 dark:border-gray-600"> - <div class="px-4"> - <div class="font-medium text-base text-gray-800 dark:text-gray-200">{{ Auth::user()->name }}</div> - <div class="font-medium text-sm text-gray-500">{{ Auth::user()->email }}</div> - </div> - - <div class="mt-3 space-y-1"> - <x-responsive-nav-link :href="route('profile.edit')"> - {{ __('Profile') }} - </x-responsive-nav-link> - - <!-- Authentication --> - <form method="POST" action="{{ route('logout') }}"> - @csrf - - <x-responsive-nav-link :href="route('logout')" - onclick="event.preventDefault(); - this.closest('form').submit();"> - {{ __('Log Out') }} - </x-responsive-nav-link> - </form> - </div> + </li> + <li> + <form method="POST" action="{{ route('logout') }}"> + @csrf + <x-dropdown-link :href="route('logout')" class="dropdown-item" + onclick="event.preventDefault(); this.closest('form').submit();"> + {{ __('Log Out') }} + </x-dropdown-link> + </form> + </li> + </ul> + </li> + </ul> </div> </div> </nav>
