PHP code example of forever-prata / govbr-components-livewire

1. Go to this page and download the library: Download forever-prata/govbr-components-livewire library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

forever-prata / govbr-components-livewire example snippets


use Illuminate\Support\Pluralizer;

public function boot(): void
{
    Pluralizer::useLanguage('portuguese');
}

<livewire:botao 
    type="primary" 
    size="large" 
    label="Enviar" 
/>

<livewire:botao 
    href="https://gov.br" 
    type="secondary" 
    size="large" 
    label="Ir para o Gov.BR" 
/>

<livewire:botao 
    action="salvarUsuario" 
    type="danger" 
    label="Salvar" 
/>

<livewire:checkbox 
    name="termos"
    label="Aceito os termos"
    id="termos_aceite"
    checked="true"
/>

<livewire:input 
    type="email"
    name="email"
    label="E-mail"
    placeholder="[email protected]"
    wireModel="email"
/>

<livewire:radio 
    name="opcao"
    label="Opção 1"
    value="1"
    checked="true"
/>

<livewire:radio 
    name="opcao"
    label="Opção 2"
    value="2"
/>

<livewire:select 
    name="categoria"
    label="Categoria"
    :options="['1' => 'Opção 1', '2' => 'Opção 2']"
    placeholder="Selecione uma opção"
    id="select_simple"
/>

<livewire:table 
    :collection="$users"
    title="Lista de Usuários"
    :search="true"
    :selectable="true"
    :columns="['id', 'name', 'email']"
    extraClass="striped"
/>

<livewire:textarea 
    name="descricao"
    label="Descrição"
    placeholder="Digite a descrição..."
    rows="4"
/>

<livewire:upload />

<livewire:upload 
    :multiple="true" 
    label="Anexar múltiplos arquivos" 
/>

{{-- Card com array --}}
<livewire:card
    :data="$configData"
    title="Configurações"
/>

{{-- Card com objeto e avatar --}}
<livewire:card
    :data="$userData"
    title="Perfil de Usuário"
    :withAvatar="true"
    :actionButtons="$userActions"
/>

{{-- Card com modelo Eloquent --}}
<livewire:card
    :data="$produtoData"
    title="Detalhes do Produto"
    :withImage="true"
    :routeBase="'produtos'"
    imageStyle="max-height: 200px; object-fit: cover;"
/>

@php
    $configData = [
        'ID da Aplicação' => 'APP_12345',
        'Modo de Manutenção' => false,
        'Nível de Log' => 'debug',
        'URL do Banco' => 'mysql://user:pass@host:3306/db',
        'Última Verificação' => new DateTime('2025-09-29 10:00:00'),
    ];

    $userData = new stdClass();
    $userData->id = 101;
    $userData->name = 'Maria da Silva';
    $userData->position = 'Desenvolvedora Chefe';
    $userData->email = '[email protected]';
    $userData->avatar = 'https://i.pravatar.cc/150?img=25';
    $userActions = [
        'Ver Perfil' => [
            'route' => 'produtos.show',
            'params' => 1
        ],
        'Enviar Mensagem' => 'https://google.com'
    ];
@endphp

<div class="container my-5">
    <h1 class="mb-4">Exemplos de Componentes</h1>

    {{-- Cards --}}
    <div class="row">
        <div class="col-md-4">
            <livewire:card
                :data="$configData"
                title="Configurações"
            />
        </div>
        <div class="col-md-4">
            <livewire:card
                :data="$userData"
                title="Perfil de Usuário"
                :withAvatar="true"
                :actionButtons="$userActions"
            />
        </div>
    </div>

    {{-- Formulários --}}
    <div style="max-width: 500px;">
        <livewire:botao type="primary" size="large" label="Enviar" />
        <livewire:botao href="https://gov.br" type="secondary" size="large" label="Ir para o Gov.BR" />
        
        <livewire:input name="nome" label="Nome Completo" placeholder="Digite seu nome" />
        <livewire:input type="email" name="email" label="Email" placeholder="[email protected]" wireModel="email" />
        <livewire:textarea name="mensagem" label="Mensagem" placeholder="Deixe sua mensagem..." />
        
        <livewire:checkbox name="termos" label="Aceito os termos" checked="true" />
        
        <livewire:radio name="opcao" label="Opção 1" value="opcao1" id="opcao1" />
        <livewire:radio name="opcao" label="Opção 2" value="opcao2" id="opcao2" checked="true" />
        
        <livewire:upload :multiple="true" label="Anexar múltiplos arquivos" />
    </div>

    {{-- Tabela --}}
    <livewire:table
        :collection="App\Models\Produto::all()"
        title="Produtos"
        :search="true"
        :selectable="true"
        extraClass="striped"
    />
</div>

@php
    $dados = [
        ['nome' => 'Produto A', 'preco' => 10],
        ['nome' => 'Produto B', 'preco' => 20],
    ];
    $collection = collect($dados);
@endphp

<livewire:table
    :collection="$collection"
    title="Produtos"
    :columns="[
        'nome' => 'Nome do Produto',
        'preco' => 'Preço (R$)',
    ]"
    actionsTitle="Ações"
/>
bash
php artisan vendor:publish --provider="GovbrComponentsLivewire\GovbrComponentsLivewireServiceProvider" --force
ini
DESIGN_SYSTEM=govbr
bash
php artisan make:scaffold create_posts_table --belongs-to=user --has-many=comments