risetechapps/view-suite

Pacote de views personalizadas da Rise Tech (erros, e-mails e layouts compartilhados).

Maintainers

Package info

github.com/risetechapps/view-suite

pkg:composer/risetechapps/view-suite

Transparency log

Statistics

Installs: 376

Dependents: 1

Suggesters: 0

Stars: 0

Open Issues: 0

1.3.1 2026-07-24 02:20 UTC

This package is auto-updated.

Last update: 2026-07-24 02:21:12 UTC


README

Pacote de views personalizadas da Rise Tech para aplicações Laravel. Inclui páginas de erro, templates de e-mail (HTML + texto), componentes Blade, layout web base e página de manutenção, prontos para uso, traduzidos em 15 idiomas e totalmente personalizáveis.

Compatível com Laravel 12+ e PHP 8.3+

Packagist Version License PHP Version Laravel

🚀 Instalação

composer require risetechapps/view-suite

O pacote é auto-registrado via Service Provider (RiseTechApps\ViewSuite\ViewSuiteServiceProvider). Sem passos manuais.

⚙️ Publicação (opcional)

Tag Comando Destino
Config --tag=config config/view-suite.php
Views --tag=views resources/views/vendor/view-suite/
Traduções --tag=lang resources/lang/vendor/view-suite/
php artisan vendor:publish --provider="RiseTechApps\ViewSuite\ViewSuiteServiceProvider" --tag=views

Views/traduções publicadas têm prioridade sobre as do pacote.

🎨 Marca configurável

Todos os e-mails leem cores/logo/redes de config/view-suite.phpbrand. Cada item tem fallback, então funciona out-of-the-box.

Env Config Padrão Aplica em
VIEW_SUITE_LOGO brand.logo banner RT banner do topo do e-mail
VIEW_SUITE_ICON brand.icon logo RT logo pequeno do index
VIEW_SUITE_COLOR brand.color #fb5f3d cor do botão
VIEW_SUITE_HEADER_COLOR brand.header_color #003188 título / código OTP
VIEW_SUITE_NAME brand.name Rise Tech layout web / footer
VIEW_SUITE_URL brand.url site RT layout web

Ícones sociais do rodapé em brand.social.{facebook,x,instagram,pinterest,linkedin,youtube} — sobrescreva publicando o config.

VIEW_SUITE_LOGO=https://cdn.suaempresa.com/logo.png
VIEW_SUITE_COLOR=#0066ff
VIEW_SUITE_HEADER_COLOR=#111827

🧩 Temas

As views de errors e emails são organizadas por tema (default). Ao referenciar você omite o tema — o pacote resolve view-suite::errors.404errors.{tema}.404 com fallback para default.

Env Config Padrão
ERROR_THEME theme.errors default
EMAIL_THEME theme.emails default

Para um tema custom, crie errors/<tema>/404.blade.php. Se a view não existir nesse tema, cai automaticamente para default.

🚨 Páginas de erro

Um ExceptionHandler intercepta requisições web (não-JSON, não api/*) e renderiza a view do status HTTP. Não precisa de código.

Status cobertos: 400, 401, 402, 403, 404, 405, 408, 410, 413, 418, 419, 422, 423, 429, 500, 502, 503, 504

Em APP_DEBUG=true, erros 500 caem no handler padrão do Laravel (stack trace).

As views são self-contained (CSS inline, sem CDN externo). Renderização manual:

return response()->view('view-suite::errors.404', [], 404);

📧 Templates de e-mail

Todos estendem emails.layout, reusam os partials e localizam o texto (15 idiomas), com valores dinâmicos via variáveis.

Template View Principais variáveis
Genérico (data-driven) emails.index subject_message, line, line_header[], tables[], lists[], action, line_footer[], signature[]
Boas-vindas emails.welcome name, line/lines[], action{url,text}, subject, signature
Verificar e-mail (OTP) emails.verify_email code, expires, action, subject, line
Código de login (OTP) emails.login_otp code, expires, action, subject, line
Redefinir senha emails.reset_password action{url}, expires, subject, line
Fatura / recibo emails.invoice items{headers[],rows[]}, total, action, line
Notificação / alerta emails.notification subject, line/lines[], level (info/success/warning/error), action
Conta excluída emails.account_deleted name, line, lines[], action, subject

Exemplo — OTP com versão texto-plano (multipart)

Mail::send(
    ['view-suite::emails.verify_email', 'view-suite::emails.text.verify_email'],
    ['code' => '123456', 'expires' => 10],
    fn ($m) => $m->to($user->email)->subject('Verifique seu e-mail')
);

Versões texto-plano disponíveis em emails.text.{welcome,verify_email,reset_password,login_otp,notification}.

Exemplo — Notificação

Mail::send('view-suite::emails.notification', [
    'subject' => 'Falha no pagamento',
    'level'   => 'error',
    'lines'   => ['Não conseguimos processar sua cobrança.'],
    'action'  => ['url' => $url, 'text' => 'Atualizar cartão'],
], fn ($m) => $m->to($user->email)->subject('Alerta'));

🧱 Componentes Blade

<x-view-suite::button url="https://app.test" color="#0066ff">Acessar</x-view-suite::button>

<x-view-suite::code code="123456" />

<x-view-suite::alert level="success" title="Tudo certo">
    Seu pagamento foi confirmado.
</x-view-suite::alert>

level do alert: info, success, warning, error.

🖼️ Layout web base

Para páginas web (não-e-mail), brand-aware e self-contained:

@extends('view-suite::layouts.base')

@section('title', 'Minha página')

@section('content')
    <p>Conteúdo da sua página.</p>
@endsection

Seções opcionais: head, header, footer.

🔧 Página de manutenção

php artisan down --render="view-suite::maintenance"

🌍 Idiomas

15 idiomas incluídos: da, de, el, en, es_ES, fr, it, ja, pl, pt_BR, pt_PT, ru, sv_SE, tr, zh_TW.

As pastas seguem a convenção do Laravel (underscore, ex. pt_BR) — o valor de app.locale deve casar exatamente.

🧪 Testes & Análise estática

composer test           # PHPUnit (Orchestra Testbench)
composer test-coverage  # cobertura HTML
composer analyse        # PHPStan / Larastan (level 5)

🛠️ Requisitos

Dependência Versão
PHP ^8.3
Laravel ^12.0
Orchestra Testbench ^10.0
PHPUnit ^11.0
Larastan ^3.0

🧑‍💻 Autor

Rise Tech 📧 apps@risetech.com.br 🌐 https://risetech.com.br 💼 https://github.com/risetechapps

🪪 Licença

Licenciado sob a MIT License.