diff --git a/app/Http/Controllers/ClientController.php b/app/Http/Controllers/ClientController.php new file mode 100644 index 0000000..b0b7571 --- /dev/null +++ b/app/Http/Controllers/ClientController.php @@ -0,0 +1,19 @@ + $clients]); + } +} diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php deleted file mode 100644 index 35b238c..0000000 --- a/app/Http/Controllers/UserController.php +++ /dev/null @@ -1,18 +0,0 @@ - $users]); - } -} diff --git a/app/Livewire/Forms/ClientForm.php b/app/Livewire/Forms/ClientForm.php index 2a8c0d0..e6f4801 100644 --- a/app/Livewire/Forms/ClientForm.php +++ b/app/Livewire/Forms/ClientForm.php @@ -2,6 +2,7 @@ namespace App\Livewire\Forms; +use Livewire\Attributes\Validate; use Livewire\Form; use App\Models\Client; @@ -46,7 +47,7 @@ public function rules() 'client_name' => 'required|string|max:255', 'legal_name' => 'required|string|max:255', 'cnpj' => 'required|string|max:20|unique:clients,cnpj', - 'profile_image_path' => 'nullable|file|mimes:jpeg,png,bmp,gif,svg,webp|max:2048', // 2MB Max 'pbx_hosting' => 'nullable|string|max:255', + 'profile_image_path' => 'nullable|file|mimes:jpeg,png,bmp,gif,svg,webp|max:2048', 'activation_date' => 'nullable|date', 'carrier' => 'nullable|string|max:255', 'access_type' => 'nullable|string|max:255', diff --git a/app/View/Components/SessionMessages.php b/app/View/Components/SessionMessages.php new file mode 100644 index 0000000..19e5006 --- /dev/null +++ b/app/View/Components/SessionMessages.php @@ -0,0 +1,26 @@ + 'inglinesystemsadmin@inglinesystems.com.br', 'password' => Hash::make('*Ingline.Sys#9420%SECURITY#') ]); - - Client::factory()->create([]); } } diff --git a/resources/css/app.css b/resources/css/app.css index 5d548b8..8413264 100644 --- a/resources/css/app.css +++ b/resources/css/app.css @@ -28,7 +28,17 @@ @layer utilities { @layer components { - /* Estilos globais */ + /* body (Seu código, está correto) */ + body { + @apply bg-white h-screen w-screen; + background-image: url('../images/bg-primary.png'); + @apply bg-cover bg-center bg-fixed; + @apply overflow-y-auto overflow-x-hidden; + } + + /*End body */ + + /* Estilos globais (Seu código) */ h1 { @apply text-black font-semibold; @apply border-b border-blue-500 rounded-md shadow-md shadow-blue-400; @@ -39,58 +49,142 @@ @layer components { /* Fim estilos globais */ - /* body */ - body { - @apply bg-white h-screen w-screen; - background-image: url('../images/bg-primary.png'); - @apply bg-cover bg-center bg-fixed; - @apply overflow-y-auto overflow-x-hidden; + + /* --- ESTILOS DO LOGIN REFORMULADOS --- */ + + /* 1. Container de Centralização */ + .container-form { + @apply w-full min-h-screen mx-auto; + /* Garante altura total */ + @apply flex justify-center items-center p-4; } - /*End body */ + /* 2. O Card de Login "Vidro Fosco" */ + .form-class { + @apply w-full max-w-md; + /* Tamanho responsivo */ + @apply p-8; + /* O EFEITO "VIDRO FOSCO" */ + @apply bg-white/20 backdrop-blur-lg; + /* Fundo 20% opaco + Borrão */ + @apply rounded-xl shadow-2xl; + @apply border border-white/10; + /* Borda sutil */ + } - /* Container */ + /* 3. A Logo */ .container-title { - @apply text-2xl absolute top-20; - @apply text-black font-semibold; - @apply border-b border-blue-500 rounded-md shadow-md shadow-blue-400; - @apply p-4 transition-all duration-300 transform hover:scale-105; + @apply flex justify-center mb-6 text-nowrap; } + .container-message { + @apply flex justify-center mb-6 text-nowrap; + } + + .container-title img { + @apply h-10; + /* Ajuste o tamanho da sua logo */ + } + + /* 4. Título ("Efetue seu login") */ + .form-title { + @apply text-2xl font-semibold text-black text-center mb-6; + } + + /* 5. Grupo de Input (Label + Campo) */ + .input-group { + @apply mb-4; + } + + .form-label { + @apply block text-sm font-medium text-gray-800 mb-1; + } + + /* 6. Inputs com Estilo "Vidro" */ + .form-input-class { + @apply w-full p-3; + @apply bg-transparent; + /* Fundo transparente */ + @apply border-b-2 border-gray-200; + /* Apenas borda inferior */ + @apply text-gray-500 placeholder-white/70; + @apply focus:outline-none focus:ring-0; + @apply focus:border-white; + /* Borda fica branca sólida no foco */ + @apply transition-all duration-300; + } + + /* Remove o fundo de preenchimento automático do navegador */ + .form-input-class:-webkit-autofill { + -webkit-text-fill-color: #0f0e0e !important; + -webkit-box-shadow: 0 0 0 1000px rgba(255, 255, 255, 0.1) inset !important; + transition: background-color 5000s ease-in-out 0s; + } + + + /* 7. Botão Principal */ + .form-button-class { + @apply w-full; + /* Botão com largura total */ + @apply bg-blue-600 text-white rounded-md p-3; + @apply font-semibold text-base; + @apply cursor-pointer; + @apply hover:bg-blue-700; + @apply transition-all duration-300 transform hover:scale-105; + } + + /* 8. Link "Esqueceu a senha" */ + .forget-password { + @apply text-center mt-4; + } + + .forget-password a { + @apply text-sm text-white/80 hover:text-white hover:underline; + @apply transition-colors; + } + + /* 9. Estilizando as mensagens de erro (x-session-messages) */ + .messages { + @apply flex justify-center mb-4; + } + + .messages div[role="alert"] { + /* Assumindo que seu componente renderiza um div */ + @apply bg-red-500/50 text-white p-3 rounded-md border border-red-700 text-sm; + } + + /* --- FIM DOS ESTILOS DE LOGIN --- */ + + /* 9. Estilizando as mensagens de erro (x-session-messages) */ + .messages { + @apply flex justify-center mb-4; + + /* 1. MUDANÇA: Usando "vidro branco" (como o card) + em vez de "vidro vermelho". + */ + @apply bg-white/10 backdrop-blur-md; + /* 'md' para um borrão mais forte */ + + /* 2. MUDANÇA: Borda sutil de "vidro" */ + @apply border border-white/10; + + /* 3. NOVO: Sombra para "flutuar" */ + @apply shadow-lg rounded-lg; + + /* 4. MUDANÇA: A cor do erro agora está no texto. + 'text-red-200' (ou 300) tem ótimo contraste + no fundo de ondas. + */ + @apply text-red-300 font-semibold p-4 text-sm; + } + + /* Classes antigas genéricas (podem ser usadas em outros lugares) */ .container { /* Deixe APENAS as classes de largura, margem e padding */ @apply w-full mx-auto px-4 sm:px-6 lg:px-8 mt-15 mb-10; } - .container-form { - @apply w-full h-full mx-auto; - @apply flex justify-center items-center; - } - - .messages { - @apply flex justify-center; - } - - .form-class { - @apply flex flex-col gap-4 p-3; - @apply mb-10 w-1/5; - } - - .form-input-class { - @apply border border-gray-300 rounded-md p-2 outline-none; - } - - .form-button-class { - @apply bg-blue-500 text-white rounded-md p-2 cursor-pointer hover:bg-blue-800 w-1/2; - } - - .forget-password { - @apply flex justify-center w-1/2; - @apply shadow-lg rounded-md; - @apply transition scale-80 hover:scale-95; - } - .container h1 { @apply text-2xl font-bold transition-all duration-300 transform hover:scale-105 mb-4; } diff --git a/resources/images/favicon.png b/resources/images/favicon.png new file mode 100644 index 0000000..2d6cf14 Binary files /dev/null and b/resources/images/favicon.png differ diff --git a/resources/js/app.js b/resources/js/app.js index 75aab97..98acbd7 100644 --- a/resources/js/app.js +++ b/resources/js/app.js @@ -1,7 +1,7 @@ import './bootstrap'; function showContainerTitle() { - const containerTitle = document.querySelector('.container-title'); + const containerTitle = document.querySelector('.container-message'); const containerTitleText = 'Bem vindo ao painel administrativo da Ingline Systems!'; const containerTitleLength = containerTitleText.length; let text = ''; diff --git a/resources/views/components/session-messages.blade.php b/resources/views/components/session-messages.blade.php new file mode 100644 index 0000000..588992d --- /dev/null +++ b/resources/views/components/session-messages.blade.php @@ -0,0 +1,10 @@ +
-
-
+
+