re-resp-vm3 / index.html
alexandremoraisdarosa's picture
Gere um aplicativo com Todo o Conteúdo (não exclua nada): <!DOCTYPE html> <html lang="pt-BR"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"/> <title>Recursos Especial e Extraordinário</title> <style> body { font-family: Arial, sans-serif; background: #fff; color: #000; margin: 0; padding: 0; } header { background-color: #001F54; color: #fff; padding: 1rem; text-align: center; } main { padding: 2rem; } section { margin-bottom: 2rem; } h2 { border-left: 4px solid #0077cc; padding-left: 0.5rem; color: #001F54; } table { width: 100%; border-collapse: collapse; margin-bottom: 1rem; } th, td { border: 1px solid #ccc; padding: 0.5rem; text-align: left; } th { background-color: #001F54; color: white; } textarea, select { width: 100%; padding: 0.5rem; margin: 0.5rem 0; } .tab-buttons { display: flex; background-color: #001F54; } .tab-buttons button { background-color: #001F54; color: white; padding: 1rem; flex: 1; cursor: pointer; border: none; } .tab { display: none; border: 1px solid #ccc; padding: 1rem; } .save-button, .export-button { background-color: #0077cc; color: white; padding: 0.5rem 1rem; border: none; cursor: pointer; margin-top: 1rem; } pre { background: #f4f4f4; padding: 1rem; white-space: pre-wrap; border-left: 4px solid #0077cc; } </style> </head> <body> <header> <h1>Recursos Especial e Extraordinário</h1> </header> <main> <!-- AVISO DE USO --> <div id="aviso" class="fixed inset-0 bg-black bg-opacity-70 z-50 flex justify-center items-center p-5 backdrop-blur-sm hidden"> <div class="bg-white rounded-xl shadow-2xl p-6 max-w-2xl w-full text-center space-y-5 animate-fade-in-down"> <i class="fas fa-exclamation-circle text-rose-600 text-4xl mb-2"></i> <h1 class="text-xl font-extrabold text-gray-800">⚠ ATENÇÃO!</h1> <ul class="text-left text-sm space-y-2 text-gray-700 list-disc list-inside"> <li>O que está sendo disponibilizado é um modelo-padrão e genérico de petição inicial recursal;</li> <li>Não dispensa consulta com advogado especialista;</li> <li>Não substitui análise cabal do caso concreto;</li> <li>Devem ser feitas adaptações ao caso específico antes do uso;</li> <li>Diferentes entendimentos podem existir entre tribunais;</li> <li>O programa é fornecido no "estado em que se encontra", sem garantias de desempenho ou precisão.</li> </ul> <button onclick="this.parentElement.parentElement.classList.add('hidden')" class="bg-blue-600 hover:bg-blue-700 transition-all text-white font-semibold px-6 py-2 rounded-full"> Clique aqui para aceitar e continuar </button> </div> </div> <section> <h2>📜 Dispositivos Legais Transcritos</h2> <h3>Art. 102, III - Constituição Federal</h3> <pre> Compete ao Supremo Tribunal Federal: III - julgar, mediante recurso extraordinário, as causas decididas em única ou última instância, quando a decisão recorrida: a) contrariar dispositivo desta Constituição; b) declarar a inconstitucionalidade de tratado ou lei federal; c) julgar válida lei ou ato de governo local contestado em face da Constituição; d) julgar válida lei local contestada em face de lei federal. </pre> <h3>Art. 105, III - Constituição da República</h3> <pre> Compete ao Superior Tribunal de Justiça: III - julgar, em recurso especial, as causas decididas, em única ou última instância, pelos Tribunais Regionais Federais ou pelos Tribunais dos Estados, do Distrito Federal e Territórios, quando a decisão recorrida: a) contrariar tratado ou lei federal, ou negar-lhes vigência; b) julgar válido ato de governo local contestado em face de lei federal; c) der a lei federal interpretação divergente da que lhe haja atribuído outro tribunal. </pre> <h3>Art. 1.035 - Código de Processo Civil</h3> <pre> Para repercussão geral, o recorrente deve demonstrar que a questão constitucional discutida possui relevância do ponto de vista econômico, político, social ou jurídico que ultrapasse os interesses subjetivos da causa. </pre> </section> <section> <h2>📘 Quadro Comparativo: RE x REsp x HC</h2> <table> <tr> <th>Aspecto</th> <th>RE</th> <th>REsp</th> <th>HC</th> </tr> <tr> <td>Objeto</td> <td>Matéria constitucional</td> <td>Matéria infraconstitucional</td> <td>Liberdade de locomoção</td> </tr> <tr> <td>Tribunal competente</td> <td>STF</td> <td>STJ</td> <td>Qualquer instância</td> </tr> <tr> <td>Provas</td> <td>Vedado reexame (Súm. 279/STF)</td> <td>Vedado reexame (Súm. 7/STJ)</td> <td>Admite reexame fático</td> </tr> </table> </section> <section> <h2>📎 Súmulas Relevantes</h2> <ul> <li><strong>STF 279:</strong> Para simples reexame de prova não cabe recurso extraordinário.</li> <li><strong>STJ 7:</strong> A pretensão de simples reexame de prova não enseja recurso especial.</li> <li><strong>STJ 83:</strong> Não se conhece do recurso especial pela divergência, quando a orientação do tribunal se firmou no mesmo sentido da decisão recorrida.</li> <li><strong>STJ 115:</strong> Na instância especial é inexistente recurso interposto por advogado sem procuração nos autos.</li> <li><strong>STF 284:</strong> Deficiência de fundamentação impede conhecimento do recurso.</li> <li><strong>STF 283:</strong> Necessário impugnar todos os fundamentos autônomos.</li> <li><strong>STJ 126:</strong> Mesmo princípio da Súmula 283/STF aplicado ao REsp.</li> </ul> </section> <section> <h2>📘 Glossário</h2> <ul> <li><strong>Repercussão Geral:</strong> Critério de admissibilidade do RE, exigindo relevância jurídica, social, econômica ou política da questão.</li> <li><strong>Prequestionamento:</strong> Exigência de que a matéria tenha sido expressamente tratada na decisão recorrida.</li> <li><strong>Reexame de Prova:</strong> Revisão do conteúdo probatório, vedado no RE e REsp.</li> <li><strong>Revaloração de Prova:</strong> Análise jurídica sobre fatos incontroversos, permitida.</li> <li><strong>Fundamento autônomo:</strong> Base independente da decisão que exige impugnação específica.</li> </ul> </section> <section> <h2>📑 Formulários de Petição</h2> <div class="tab-buttons"> <button onclick="showTab('resp')">REsp</button> <button onclick="showTab('re')">RE</button> </div> <div id="resp" class="tab"> <h3>Recurso Especial</h3> <label>Fundamento Legal:</label> <select id="fund_resp"> <option value="Art. 105, III, 'a'">Art. 105, III, 'a'</option> <option value="Art. 105, III, 'b'">Art. 105, III, 'b'</option> <option value="Art. 105, III, 'c'">Art. 105, III, 'c'</option> </select> <label>Relevância:</label><textarea id="relev_resp"></textarea> <label>Premissa Fática:</label><textarea id="fato_resp"></textarea> <label>Motivação:</label><textarea id="motivacao_resp"></textarea> <label>Pedido:</label><textarea id="pedido_resp"></textarea> <button class="save-button" onclick="saveData('resp')">Salvar</button> </div> <div id="re" class="tab"> <h3>Recurso Extraordinário</h3> <label>Fundamento Legal:</label> <select id="fund_re"> <option value="Art. 102, III, 'a'">Art. 102, III, 'a'</option> <option value="Art. 102, III, 'b'">Art. 102, III, 'b'</option> <option value="Art. 102, III, 'c'">Art. 102, III, 'c'</option> <option value="Art. 102, III, 'd'">Art. 102, III, 'd'</option> </select> <label>Relevância Geral:</label><textarea id="relev_re"></textarea> <label>Premissa Fática:</label><textarea id="fato_re"></textarea> <label>Motivação:</label><textarea id="motivacao_re"></textarea> <label>Pedido:</label><textarea id="pedido_re"></textarea> <button class="save-button" onclick="saveData('re')">Salvar</button> </div> <section> <h2>📝 Exportar Petições</h2> <p>Clique para exportar os dados preenchidos abaixo como arquivos locais em formato `.txt`.</p> <button class="export-button" onclick="exportData('resp')">Exportar REsp</button> <button class="export-button" onclick="exportData('re')">Exportar RE</button> </section> </section> </main> <script> function showTab(id) { document.querySelectorAll('.tab').forEach(t => t.style.display = 'none'); document.getElementById(id).style.display = 'block'; } function saveData(type) { const data = { fund: document.getElementById('fund_' + type).value, relev: document.getElementById('relev_' + type).value, fato: document.getElementById('fato_' + type).value, motivacao: document.getElementById('motivacao_' + type).value, pedido: document.getElementById('pedido_' + type).value }; localStorage.setItem('peticao_' + type, JSON.stringify(data)); alert('Salvo no localStorage.'); } function exportData(type) { const data = JSON.parse(localStorage.getItem('peticao_' + type)); if (!data) return alert('Nada salvo.'); const blob = new Blob([ `Fundamento: ${data.fund} Relevância: ${data.relev} Premissa Fática: ${data.fato} Motivação: ${data.motivacao} Pedido: ${data.pedido}` ], { type: 'text/plain' }); const a = document.createElement('a'); a.href = URL.createObjectURL(blob); a.download = `peticao_${type}.txt`; a.click(); <!-- RESULTADO --> <section class="bg-white shadow rounded-lg p-6 space-y-4"> <h2 class="font-semibold text-lg text-blue-900">📄 Modelo Gerado</h2> <pre id="modelo" class="whitespace-pre-wrap bg-gray-50 border border-gray-300 p-3 rounded text-sm h-64 overflow-auto"> Selecione o recurso desejado e preencha o formulário para gerar o modelo. </pre> <div class="flex flex-wrap gap-2 mt-4 justify-center"> <button onclick="exportar('txt')" class="flex items-center gap-2 bg-blue-600 hover:bg-blue-700 transition-all text-white font-medium px-4 py-2 rounded text-sm"> <i class="fas fa-file-alt"></i> Exportar TXT </button> <button onclick="exportar('docx')" class="flex items-center gap-2 bg-indigo-600 hover:bg-indigo-700 transition-all text-white font-medium px-4 py-2 rounded text-sm"> <i class="fas fa-file-word"></i> Exportar DOCX </button> <button onclick="window.print()" class="flex items-center gap-2 bg-gray-600 hover:bg-gray-700 transition-all text-white font-medium px-4 py-2 rounded text-sm"> <i class="fas fa-print"></i> Imprimir </button> </div> </section> } window.onload = () => { showTab('resp'); }; </script> </body> </html> - Initial Deployment
2fa66b7 verified
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>Recursos Especial e Extraordinário</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<style>
@keyframes fadeInDown {
from {
opacity: 0;
transform: translateY(-20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.animate-fade-in-down {
animation: fadeInDown 0.5s ease-out forwards;
}
pre {
white-space: pre-wrap;
word-wrap: break-word;
}
.tab-content {
display: none;
}
.tab-content.active {
display: block;
}
</style>
</head>
<body class="bg-gray-50 text-gray-800 font-sans">
<div id="aviso" class="fixed inset-0 bg-black bg-opacity-70 z-50 flex justify-center items-center p-5 backdrop-blur-sm">
<div class="bg-white rounded-xl shadow-2xl p-6 max-w-2xl w-full text-center space-y-5 animate-fade-in-down">
<i class="fas fa-exclamation-circle text-rose-600 text-4xl mb-2"></i>
<h1 class="text-xl font-extrabold text-gray-800">⚠ ATENÇÃO!</h1>
<ul class="text-left text-sm space-y-2 text-gray-700 list-disc list-inside">
<li>O que está sendo disponibilizado é um modelo-padrão e genérico de petição inicial recursal;</li>
<li>Não dispensa consulta com advogado especialista;</li>
<li>Não substitui análise cabal do caso concreto;</li>
<li>Devem ser feitas adaptações ao caso específico antes do uso;</li>
<li>Diferentes entendimentos podem existir entre tribunais;</li>
<li>O programa é fornecido no "estado em que se encontra", sem garantias de desempenho ou precisão.</li>
</ul>
<button onclick="this.parentElement.parentElement.classList.add('hidden')" class="bg-blue-600 hover:bg-blue-700 transition-all text-white font-semibold px-6 py-2 rounded-full">
Clique aqui para aceitar e continuar
</button>
</div>
</div>
<header class="bg-blue-900 text-white py-6 shadow-md">
<div class="container mx-auto px-4">
<h1 class="text-2xl md:text-3xl font-bold text-center">
<i class="fas fa-gavel mr-2"></i> Recursos Especial e Extraordinário
</h1>
</div>
</header>
<main class="container mx-auto px-4 py-8">
<section class="bg-white rounded-xl shadow-md p-6 mb-8">
<h2 class="text-xl md:text-2xl font-bold text-blue-800 border-l-4 border-blue-500 pl-3 mb-6 flex items-center">
<i class="fas fa-scroll mr-2"></i> Dispositivos Legais Transcritos
</h2>
<div class="space-y-8">
<div>
<h3 class="text-lg font-semibold text-blue-700 mb-3">Art. 102, III - Constituição Federal</h3>
<pre class="bg-gray-100 p-4 rounded-lg border-l-4 border-blue-500 text-sm md:text-base overflow-auto">Compete ao Supremo Tribunal Federal: III - julgar, mediante recurso extraordinário, as causas decididas em única ou última instância, quando a decisão recorrida: a) contrariar dispositivo desta Constituição; b) declarar a inconstitucionalidade de tratado ou lei federal; c) julgar válida lei ou ato de governo local contestado em face da Constituição; d) julgar válida lei local contestada em face de lei federal.</pre>
</div>
<div>
<h3 class="text-lg font-semibold text-blue-700 mb-3">Art. 105, III - Constituição da República</h3>
<pre class="bg-gray-100 p-4 rounded-lg border-l-4 border-blue-500 text-sm md:text-base overflow-auto">Compete ao Superior Tribunal de Justiça: III - julgar, em recurso especial, as causas decididas, em única ou última instância, pelos Tribunais Regionais Federais ou pelos Tribunais dos Estados, do Distrito Federal e Territórios, quando a decisão recorrida: a) contrariar tratado ou lei federal, ou negar-lhes vigência; b) julgar válido ato de governo local contestado em face de lei federal; c) der a lei federal interpretação divergente da que lhe haja atribuído outro tribunal.</pre>
</div>
<div>
<h3 class="text-lg font-semibold text-blue-700 mb-3">Art. 1.035 - Código de Processo Civil</h3>
<pre class="bg-gray-100 p-4 rounded-lg border-l-4 border-blue-500 text-sm md:text-base overflow-auto">Para repercussão geral, o recorrente deve demonstrar que a questão constitucional discutida possui relevância do ponto de vista econômico, político, social ou jurídico que ultrapasse os interesses subjetivos da causa.</pre>
</div>
</div>
</section>
<section class="bg-white rounded-xl shadow-md p-6 mb-8">
<h2 class="text-xl md:text-2xl font-bold text-blue-800 border-l-4 border-blue-500 pl-3 mb-6 flex items-center">
<i class="fas fa-table mr-2"></i> Quadro Comparativo: RE x REsp x HC
</h2>
<div class="overflow-x-auto">
<table class="w-full border-collapse">
<thead>
<tr class="bg-blue-900 text-white">
<th class="p-3 text-left">Aspecto</th>
<th class="p-3 text-left">RE</th>
<th class="p-3 text-left">REsp</th>
<th class="p-3 text-left">HC</th>
</tr>
</thead>
<tbody class="divide-y divide-gray-200">
<tr class="hover:bg-gray-50">
<td class="p-3 font-medium">Objeto</td>
<td class="p-3">Matéria constitucional</td>
<td class="p-3">Matéria infraconstitucional</td>
<td class="p-3">Liberdade de locomoção</td>
</tr>
<tr class="hover:bg-gray-50">
<td class="p-3 font-medium">Tribunal competente</td>
<td class="p-3">STF</td>
<td class="p-3">STJ</td>
<td class="p-3">Qualquer instância</td>
</tr>
<tr class="hover:bg-gray-50">
<td class="p-3 font-medium">Provas</td>
<td class="p-3">Vedado reexame (Súm. 279/STF)</td>
<td class="p-3">Vedado reexame (Súm. 7/STJ)</td>
<td class="p-3">Admite reexame fático</td>
</tr>
</tbody>
</table>
</div>
</section>
<section class="bg-white rounded-xl shadow-md p-6 mb-8">
<h2 class="text-xl md:text-2xl font-bold text-blue-800 border-l-4 border-blue-500 pl-3 mb-6 flex items-center">
<i class="fas fa-list-ol mr-2"></i> Súmulas Relevantes
</h2>
<ul class="space-y-3">
<li class="flex items-start">
<span class="inline-block bg-blue-100 text-blue-800 px-2 py-1 rounded-md text-xs font-semibold mr-2">STF 279</span>
<span>Para simples reexame de prova não cabe recurso extraordinário.</span>
</li>
<li class="flex items-start">
<span class="inline-block bg-blue-100 text-blue-800 px-2 py-1 rounded-md text-xs font-semibold mr-2">STJ 7</span>
<span>A pretensão de simples reexame de prova não enseja recurso especial.</span>
</li>
<li class="flex items-start">
<span class="inline-block bg-blue-100 text-blue-800 px-2 py-1 rounded-md text-xs font-semibold mr-2">STJ 83</span>
<span>Não se conhece do recurso especial pela divergência, quando a orientação do tribunal se firmou no mesmo sentido da decisão recorrida.</span>
</li>
<li class="flex items-start">
<span class="inline-block bg-blue-100 text-blue-800 px-2 py-1 rounded-md text-xs font-semibold mr-2">STJ 115</span>
<span>Na instância especial é inexistente recurso interposto por advogado sem procuração nos autos.</span>
</li>
<li class="flex items-start">
<span class="inline-block bg-blue-100 text-blue-800 px-2 py-1 rounded-md text-xs font-semibold mr-2">STF 284</span>
<span>Deficiência de fundamentação impede conhecimento do recurso.</span>
</li>
<li class="flex items-start">
<span class="inline-block bg-blue-100 text-blue-800 px-2 py-1 rounded-md text-xs font-semibold mr-2">STF 283</span>
<span>Necessário impugnar todos os fundamentos autônomos.</span>
</li>
<li class="flex items-start">
<span class="inline-block bg-blue-100 text-blue-800 px-2 py-1 rounded-md text-xs font-semibold mr-2">STJ 126</span>
<span>Mesmo princípio da Súmula 283/STF aplicado ao REsp.</span>
</li>
</ul>
</section>
<section class="bg-white rounded-xl shadow-md p-6 mb-8">
<h2 class="text-xl md:text-2xl font-bold text-blue-800 border-l-4 border-blue-500 pl-3 mb-6 flex items-center">
<i class="fas fa-book mr-2"></i> Glossário
</h2>
<div class="space-y-4">
<div class="p-4 bg-blue-50 rounded-lg border-l-4 border-blue-500">
<h3 class="font-bold text-blue-800">Repercussão Geral:</h3>
<p class="text-gray-700">Critério de admissibilidade do RE, exigindo relevância jurídica, social, econômica ou política da questão.</p>
</div>
<div class="p-4 bg-blue-50 rounded-lg border-l-4 border-blue-500">
<h3 class="font-bold text-blue-800">Prequestionamento:</h3>
<p class="text-gray-700">Exigência de que a matéria tenha sido expressamente tratada na decisão recorrida.</p>
</div>
<div class="p-4 bg-blue-50 rounded-lg border-l-4 border-blue-500">
<h3 class="font-bold text-blue-800">Reexame de Prova:</h3>
<p class="text-gray-700">Revisão do conteúdo probatório, vedado no RE e REsp.</p>
</div>
<div class="p-4 bg-blue-50 rounded-lg border-l-4 border-blue-500">
<h3 class="font-bold text-blue-800">Revaloração de Prova:</h3>
<p class="text-gray-700">Análise jurídica sobre fatos incontroversos, permitida.</p>
</div>
<div class="p-4 bg-blue-50 rounded-lg border-l-4 border-blue-500">
<h3 class="font-bold text-blue-800">Fundamento autônomo:</h3>
<p class="text-gray-700">Base independente da decisão que exige impugnação específica.</p>
</div>
</div>
</section>
<section class="bg-white rounded-xl shadow-md p-6 mb-8">
<h2 class="text-xl md:text-2xl font-bold text-blue-800 border-l-4 border-blue-500 pl-3 mb-6 flex items-center">
<i class="fas fa-file-alt mr-2"></i> Formulários de Petição
</h2>
<div class="mb-4 flex border-b border-gray-200">
<button class="tab-button py-2 px-4 font-medium text-blue-600 border-b-2 border-blue-500 active" data-tab="resp">
<i class="fas fa-file-invoice mr-2"></i> Recurso Especial (REsp)
</button>
<button class="tab-button py-2 px-4 font-medium text-gray-500 hover:text-blue-600" data-tab="re">
<i class="fas fa-file-signature mr-2"></i> Recurso Extraordinário (RE)
</button>
</div>
<div id="resp" class="tab-content active">
<h3 class="text-lg font-semibold text-blue-700 mb-4">Recurso Especial</h3>
<form class="space-y-4">
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Fundamento Legal:</label>
<select id="fund_resp" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-blue-500 focus:border-blue-500">
<option value="Art. 105, III, 'a'">Art. 105, III, 'a' - Contrariar tratado ou lei federal</option>
<option value="Art. 105, III, 'b'">Art. 105, III, 'b' - Julgar válido ato de governo local contestado</option>
<option value="Art. 105, III, 'c'">Art. 105, III, 'c' - Interpretação divergente de lei federal</option>
</select>
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Relevância:</label>
<textarea id="relev_resp" rows="3" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-blue-500 focus:border-blue-500" placeholder="Explique a relevância jurídica da questão..."></textarea>
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Premissa Fática:</label>
<textarea id="fato_resp" rows="3" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-blue-500 focus:border-blue-500" placeholder="Descreva os fatos relevantes do caso..."></textarea>
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Motivação:</label>
<textarea id="motivacao_resp" rows="4" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-blue-500 focus:border-blue-500" placeholder="Fundamentação jurídica do recurso..."></textarea>
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Pedido:</label>
<textarea id="pedido_resp" rows="2" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-blue-500 focus:border-blue-500" placeholder="Formule o pedido..."></textarea>
</div>
<div class="flex items-center justify-between">
<button type="button" onclick="saveData('resp')" class="bg-blue-600 hover:bg-blue-700 text-white font-medium py-2 px-4 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500">
<i class="fas fa-save mr-2"></i> Salvar
</button>
<button type="button" onclick="previewModel('resp')" class="bg-indigo-600 hover:bg-indigo-700 text-white font-medium py-2 px-4 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500">
<i class="fas fa-eye mr-2"></i> Visualizar Modelo
</button>
</div>
</form>
</div>
<div id="re" class="tab-content">
<h3 class="text-lg font-semibold text-blue-700 mb-4">Recurso Extraordinário</h3>
<form class="space-y-4">
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Fundamento Legal:</label>
<select id="fund_re" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-blue-500 focus:border-blue-500">
<option value="Art. 102, III, 'a'">Art. 102, III, 'a' - Contrariar dispositivo da CF</option>
<option value="Art. 102, III, 'b'">Art. 102, III, 'b' - Inconstitucionalidade de tratado ou lei federal</option>
<option value="Art. 102, III, 'c'">Art. 102, III, 'c' - Julgar válida lei/ato local contestado</option>
<option value="Art. 102, III, 'd'">Art. 102, III, 'd' - Julgar válida lei local contestada</option>
</select>
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Relevância Geral:</label>
<textarea id="relev_re" rows="3" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-blue-500 focus:border-blue-500" placeholder="Demonstre a repercussão geral..."></textarea>
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Premissa Fática:</label>
<textarea id="fato_re" rows="3" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-blue-500 focus:border-blue-500" placeholder="Descreva os fatos relevantes do caso..."></textarea>
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Motivação:</label>
<textarea id="motivacao_re" rows="4" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-blue-500 focus:border-blue-500" placeholder="Fundamentação constitucional do recurso..."></textarea>
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Pedido:</label>
<textarea id="pedido_re" rows="2" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-blue-500 focus:border-blue-500" placeholder="Formule o pedido..."></textarea>
</div>
<div class="flex items-center justify-between">
<button type="button" onclick="saveData('re')" class="bg-blue-600 hover:bg-blue-700 text-white font-medium py-2 px-4 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500">
<i class="fas fa-save mr-2"></i> Salvar
</button>
<button type="button" onclick="previewModel('re')" class="bg-indigo-600 hover:bg-indigo-700 text-white font-medium py-2 px-4 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500">
<i class="fas fa-eye mr-2"></i> Visualizar Modelo
</button>
</div>
</form>
</div>
</section>
<div id="modelo-section" class="bg-white rounded-xl shadow-md p-6 mb-8 hidden">
<h2 class="text-xl md:text-2xl font-bold text-blue-800 border-l-4 border-blue-500 pl-3 mb-6 flex items-center">
<i class="fas fa-file-download mr-2"></i> Modelo Gerado
</h2>
<div class="bg-gray-50 border border-gray-300 p-4 rounded-lg">
<pre id="modelo" class="whitespace-pre-wrap text-sm md:text-base overflow-auto max-h-96">Selecione o recurso desejado e preencha o formulário para gerar o modelo.</pre>
</div>
<div class="mt-6 flex flex-wrap gap-3">
<button onclick="exportar('txt')" class="flex items-center gap-2 bg-blue-600 hover:bg-blue-700 transition-all text-white font-medium px-4 py-2 rounded text-sm">
<i class="fas fa-file-alt"></i> Exportar TXT
</button>
<button onclick="exportar('docx')" class="flex items-center gap-2 bg-indigo-600 hover:bg-indigo-700 transition-all text-white font-medium px-4 py-2 rounded text-sm">
<i class="fas fa-file-word"></i> Exportar DOCX
</button>
<button onclick="window.print()" class="flex items-center gap-2 bg-gray-600 hover:bg-gray-700 transition-all text-white font-medium px-4 py-2 rounded text-sm">
<i class="fas fa-print"></i> Imprimir
</button>
</div>
</div>
<section class="bg-white rounded-xl shadow-md p-6">
<h2 class="text-xl md:text-2xl font-bold text-blue-800 border-l-4 border-blue-500 pl-3 mb-6 flex items-center">
<i class="fas fa-upload mr-2"></i> Exportar Petições
</h2>
<p class="text-gray-700 mb-4">Clique para exportar os dados preenchidos como arquivos locais nos formatos disponíveis.</p>
<div class="flex flex-wrap gap-3">
<button onclick="exportData('resp')" class="flex items-center gap-2 bg-blue-600 hover:bg-blue-700 transition-all text-white font-medium px-4 py-2 rounded text-sm">
<i class="fas fa-file-export mr-1"></i> Exportar REsp
</button>
<button onclick="exportData('re')" class="flex items-center gap-2 bg-blue-600 hover:bg-blue-700 transition-all text-white font-medium px-4 py-2 rounded text-sm">
<i class="fas fa-file-export mr-1"></i> Exportar RE
</button>
</div>
</section>
</main>
<footer class="bg-blue-900 text-white py-6">
<div class="container mx-auto px-4 text-center">
<p>© 2023 Recursos Especial e Extraordinário - Ferramenta para auxílio jurídico</p>
<p class="text-blue-200 text-sm mt-2"><i class="fas fa-info-circle mr-1"></i> Esta ferramenta não substitui o aconselhamento jurídico profissional</p>
</div>
</footer>
<script>
// Tab functionality
document.querySelectorAll('.tab-button').forEach(button => {
button.addEventListener('click', () => {
// Remove active classes from all buttons and tabs
document.querySelectorAll('.tab-button').forEach(btn => {
btn.classList.remove('active', 'text-blue-600', 'border-blue-500');
btn.classList.add('text-gray-500');
});
document.querySelectorAll('.tab-content').forEach(tab => {
tab.classList.remove('active');
});
// Add active class to clicked button and corresponding tab
button.classList.add('active', 'text-blue-600', 'border-blue-500');
button.classList.remove('text-gray-500');
const tabId = button.getAttribute('data-tab');
document.getElementById(tabId).classList.add('active');
});
});
// Save data to localStorage
function saveData(type) {
const data = {
fund: document.getElementById('fund_' + type).value,
relev: document.getElementById('relev_' + type).value,
fato: document.getElementById('fato_' + type).value,
motivacao: document.getElementById('motivacao_' + type).value,
pedido: document.getElementById('pedido_' + type).value
};
localStorage.setItem('peticao_' + type, JSON.stringify(data));
// Show notification
const notification = document.createElement('div');
notification.className = 'fixed top-4 right-4 bg-green-500 text-white px-4 py-2 rounded-md shadow-lg flex items-center gap-2 animate-fade-in-down';
notification.innerHTML = `
<i class="fas fa-check-circle"></i> Dados salvos com sucesso!
`;
document.body.appendChild(notification);
setTimeout(() => {
notification.classList.add('opacity-0', 'translate-x-10', 'transition-all', 'duration-300');
setTimeout(() => notification.remove(), 300);
}, 3000);
}
// Export data as file
function exportData(type) {
const data = JSON.parse(localStorage.getItem('peticao_' + type));
if (!data) {
alert('Nenhum dado salvo para este recurso.');
return;
}
let content = '';
if (type === 'resp') {
content = `RECURSO ESPECIAL\n\n`;
content += `Fundamento Legal: ${data.fund}\n\n`;
content += `Relevância: ${data.relev}\n\n`;
content += `Premissa Fática: ${data.fato}\n\n`;
content += `Motivação: ${data.motivacao}\n\n`;
content += `Pedido: ${data.pedido}`;
} else {
content = `RECURSO EXTRAORDINÁRIO\n\n`;
content += `Fundamento Legal: ${data.fund}\n\n`;
content += `Repercussão Geral: ${data.relev}\n\n`;
content += `Premissa Fática: ${data.fato}\n\n`;
content += `Motivação: ${data.motivacao}\n\n`;
content += `Pedido: ${data.pedido}`;
}
const blob = new Blob([content], { type: 'text/plain' });
const a = document.createElement('a');
a.href = URL.createObjectURL(blob);
a.download = `peticao_${type}.txt`;
a.click();
}
// Preview model
function previewModel(type) {
const data = JSON.parse(localStorage.getItem('peticao_' + type));
if (!data) {
alert('Preencha e salve os dados primeiro.');
return;
}
let modelText = '';
if (type === 'resp') {
modelText = `EXMO. SR. DR. JUIZ DE DIREITO DA ___ VARA CÍVEL DO(A) _________________________\n\n`;
modelText += `___________________________, por seu advogado(a) (procuração anexa), nos autos do processo n. ______, vem, mui respeitosamente, perante V. Exa., com fundamento no art. 105, III, ${data.fund.split("'")[1]} da Constituição Federal, interpor:\n\n`;
modelText += `RECURSO ESPECIAL\n\n`;
modelText += `contra a decisão de fls. ____, pelos seguintes motivos:\n\n`;
modelText += `1. DO TEMA\n\n${data.relev}\n\n`;
modelText += `2. DOS FATOS\n\n${data.fato}\n\n`;
modelText += `3. DA MOTIVAÇÃO\n\n${data.motivacao}\n\n`;
modelText += `4. DO PEDIDO\n\n${data.pedido}\n\n`;
modelText += `Nestes termos,\nPede deferimento.\n\n____________________, ___ de ___________ de _____.\n\n______________________________________\nAdvogado(a)\nOAB/______`;
} else {
modelText = `EXMO. SR. DR. JUIZ DE DIREITO DA ___ VARA CÍVEL DO(A) _________________________\n\n`;
modelText += `___________________________, por seu advogado(a) (procuração anexa), nos autos do processo n. ______, vem, mui respeitosamente, perante V. Exa., com fundamento no art. 102, III, ${data.fund.split("'")[1]} da Constituição Federal e na relevância geral demonstrada, interpor:\n\n`;
modelText += `RECURSO EXTRAORDINÁRIO\n\n`;
modelText += `contra a decisão de fls. ____, pelos seguintes motivos:\n\n`;
modelText += `1. DA REPERCUSSÃO GERAL\n\n${data.relev}\n\n`;
modelText += `2. DOS FATOS\n\n${data.fato}\n\n`;
modelText += `3. DA OFENSA CONSTITUCIONAL\n\n${data.motivacao}\n\n`;
modelText += `4. DO PEDIDO\n\n${data.pedido}\n\n`;
modelText += `Nestes termos,\nPede deferimento.\n\n____________________, ___ de ___________ de _____.\n\n______________________________________\nAdvogado(a)\nOAB/______`;
}
document.getElementById('modelo').textContent = modelText;
document.getElementById('modelo-section').classList.remove('hidden');
document.getElementById('modelo-section').scrollIntoView({ behavior: 'smooth' });
}
// Export function for the model
function exportar(format) {
const content = document.getElementById('modelo').textContent;
if (format === 'txt') {
const blob = new Blob([content], { type: 'text/plain' });
const a = document.createElement('a');
a.href = URL.createObjectURL(blob);
a.download = `peticao_modelo.txt`;
a.click();
} else if (format === 'docx') {
alert('Exportação para DOCX seria implementada com uma biblioteca específica em uma aplicação real.');
}
}
// Initialize first tab as active
document.addEventListener('DOMContentLoaded', function() {
showAlert();
});
function showAlert() {
// Show the alert modal on page load
document.getElementById('aviso').classList.remove('hidden');
}
</script>
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=alexandremoraisdarosa/re-resp-vm3" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
</html>