Spaces:
Running
Running
<html lang="pt-BR"> | |
<head> | |
<meta charset="UTF-8"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<title>Gaya Lex - Pesquisa Simples</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> | |
:root { | |
--bg-primary: #1a1a1a; | |
--bg-secondary: #252525; | |
--bg-tertiary: #2d2d2d; | |
--text-primary: #e0e0e0; | |
--text-secondary: #a0a0a0; | |
--accent-color: #7e57c2; | |
--border-color: #3d3d3d; | |
} | |
body { | |
font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif; | |
background-color: var(--bg-primary); | |
color: var(--text-primary); | |
margin: 0; | |
padding: 0; | |
height: 100vh; | |
} | |
.search-input { | |
background-color: var(--bg-tertiary); | |
border: 1px solid var(--border-color); | |
color: var(--text-primary); | |
} | |
.search-input:focus { | |
outline: none; | |
border-color: var(--accent-color); | |
} | |
.result-card { | |
background-color: var(--bg-secondary); | |
border-left: 3px solid var(--accent-color); | |
} | |
.btn-primary { | |
background-color: var(--accent-color); | |
} | |
.btn-primary:hover { | |
background-color: #9575cd; | |
} | |
.btn-secondary { | |
background-color: var(--bg-tertiary); | |
border: 1px solid var(--border-color); | |
} | |
.btn-secondary:hover { | |
background-color: #3d3d3d; | |
} | |
.info-card { | |
background-color: var(--bg-secondary); | |
border: 1px solid var(--border-color); | |
} | |
</style> | |
</head> | |
<body class="flex flex-col"> | |
<!-- Header --> | |
<header class="bg-gray-800 p-4 border-b border-gray-700"> | |
<div class="container mx-auto flex justify-between items-center"> | |
<div class="flex items-center space-x-2"> | |
<i class="fas fa-gavel text-purple-500 text-2xl"></i> | |
<span class="font-semibold text-xl text-white">Gaya Lex</span> | |
</div> | |
<nav class="flex space-x-4"> | |
<a href="#" class="text-gray-400 hover:text-white">Pesquisa Simples</a> | |
<a href="#" class="text-gray-400 hover:text-white">Pesquisa Avançada</a> | |
<a href="#" class="text-gray-400 hover:text-white">Documentação</a> | |
</nav> | |
<div class="flex items-center space-x-3"> | |
<div class="w-8 h-8 rounded-full bg-purple-600 flex items-center justify-center text-white"> | |
<i class="fas fa-user"></i> | |
</div> | |
<span class="text-sm text-white">Usuário</span> | |
</div> | |
</div> | |
</header> | |
<!-- Main Content --> | |
<main class="flex-1 container mx-auto p-6"> | |
<div class="max-w-4xl mx-auto"> | |
<!-- Search Section --> | |
<section class="mb-8"> | |
<h1 class="text-2xl font-bold text-white mb-4">Pesquisa Simples de Processos Judiciais</h1> | |
<div class="info-card rounded-lg p-6 mb-6"> | |
<p class="text-gray-300 mb-4"> | |
Digite qualquer uma das informações abaixo para localizar processos em todos os tribunais do Brasil: | |
</p> | |
<ul class="list-disc list-inside text-gray-400 space-y-1 mb-4"> | |
<li>CPF do participante</li> | |
<li>RG do participante</li> | |
<li>Nome completo do participante</li> | |
<li>Número da OAB do advogado</li> | |
</ul> | |
<p class="text-gray-300"> | |
A busca retornará uma lista organizada com todos os processos encontrados, incluindo: | |
</p> | |
<ul class="list-disc list-inside text-gray-400 space-y-1"> | |
<li>Número do processo</li> | |
<li>Tribunal</li> | |
<li>Nome das partes</li> | |
<li>Link direto para consultar o processo</li> | |
</ul> | |
</div> | |
<div class="flex items-end space-x-4"> | |
<div class="flex-1"> | |
<label for="search-term" class="block text-gray-400 text-sm font-medium mb-2">Termo de busca</label> | |
<input | |
type="text" | |
id="search-term" | |
class="search-input w-full p-3 rounded-lg" | |
placeholder="Ex: 123.456.789-10 ou João Silva ou OAB/SP 123456" | |
> | |
</div> | |
<button id="search-button" class="btn-primary py-3 px-6 rounded-lg flex items-center space-x-2 h-12"> | |
<i class="fas fa-search"></i> | |
<span>Pesquisar</span> | |
</button> | |
</div> | |
<div class="mt-2 text-right"> | |
<a href="#" class="text-purple-400 hover:text-purple-300 text-sm"> | |
<i class="fas fa-cog mr-1"></i> Pesquisa Avançada | |
</a> | |
</div> | |
</section> | |
<!-- Results Section --> | |
<section id="results-section" class="hidden"> | |
<div class="flex justify-between items-center mb-4"> | |
<h2 class="text-xl font-semibold text-white">Resultados da Pesquisa</h2> | |
<div class="flex space-x-2"> | |
<button class="btn-secondary py-2 px-4 rounded-lg flex items-center space-x-1"> | |
<i class="fas fa-download"></i> | |
<span>Exportar</span> | |
</button> | |
<button class="btn-secondary py-2 px-4 rounded-lg flex items-center space-x-1"> | |
<i class="fas fa-filter"></i> | |
<span>Filtrar</span> | |
</button> | |
</div> | |
</div> | |
<div id="results-container" class="space-y-4"> | |
<!-- Results will be inserted here dynamically --> | |
</div> | |
<div class="mt-6 flex justify-center"> | |
<nav class="inline-flex space-x-1"> | |
<button class="btn-secondary py-2 px-4 rounded-lg"> | |
<i class="fas fa-chevron-left"></i> | |
</button> | |
<button class="btn-primary py-2 px-4 rounded-lg">1</button> | |
<button class="btn-secondary py-2 px-4 rounded-lg">2</button> | |
<button class="btn-secondary py-2 px-4 rounded-lg">3</button> | |
<button class="btn-secondary py-2 px-4 rounded-lg"> | |
<i class="fas fa-chevron-right"></i> | |
</button> | |
</nav> | |
</div> | |
</section> | |
<!-- Empty State --> | |
<section id="empty-state" class="text-center py-12"> | |
<div class="mx-auto w-24 h-24 bg-gray-800 rounded-full flex items-center justify-center mb-4"> | |
<i class="fas fa-search text-3xl text-gray-500"></i> | |
</div> | |
<h3 class="text-xl font-medium text-gray-300 mb-2">Nenhuma pesquisa realizada</h3> | |
<p class="text-gray-500 max-w-md mx-auto"> | |
Digite um CPF, RG, nome completo ou número da OAB no campo acima para buscar processos judiciais em todos os tribunais do Brasil. | |
</p> | |
</section> | |
<!-- Loading State --> | |
<section id="loading-state" class="hidden text-center py-12"> | |
<div class="animate-spin rounded-full h-12 w-12 border-t-2 border-b-2 border-purple-500 mx-auto mb-4"></div> | |
<p class="text-gray-400">Buscando processos...</p> | |
</section> | |
</div> | |
</main> | |
<!-- Footer --> | |
<footer class="bg-gray-800 border-t border-gray-700 py-4"> | |
<div class="container mx-auto px-4 text-center text-gray-500 text-sm"> | |
<p>© 2023 Gaya Lex - Consulta Processual. Todos os direitos reservados.</p> | |
<p class="mt-1">Dados fornecidos pela API Pública do DataJud - CNJ</p> | |
</div> | |
</footer> | |
<script> | |
document.addEventListener('DOMContentLoaded', function() { | |
const searchButton = document.getElementById('search-button'); | |
const searchTerm = document.getElementById('search-term'); | |
const resultsSection = document.getElementById('results-section'); | |
const emptyState = document.getElementById('empty-state'); | |
const loadingState = document.getElementById('loading-state'); | |
const resultsContainer = document.getElementById('results-container'); | |
searchButton.addEventListener('click', performSearch); | |
searchTerm.addEventListener('keypress', function(e) { | |
if (e.key === 'Enter') { | |
performSearch(); | |
} | |
}); | |
function performSearch() { | |
const term = searchTerm.value.trim(); | |
if (!term) return; | |
// Show loading state | |
emptyState.classList.add('hidden'); | |
resultsSection.classList.add('hidden'); | |
loadingState.classList.remove('hidden'); | |
// Simulate API call delay | |
setTimeout(() => { | |
loadingState.classList.add('hidden'); | |
if (term.toLowerCase().includes('teste') || term.toLowerCase().includes('erro')) { | |
showEmptyResults(); | |
} else { | |
showResults(term); | |
} | |
}, 1500); | |
} | |
function showResults(term) { | |
resultsSection.classList.remove('hidden'); | |
resultsContainer.innerHTML = ''; | |
// Sample results - in a real app, this would come from the API | |
const sampleResults = [ | |
{ | |
processNumber: '0001234-56.2023.5.00.0000', | |
tribunal: 'TST - Tribunal Superior do Trabalho', | |
parties: 'João Silva vs. Empresa XYZ Ltda.', | |
status: 'Ativo', | |
date: '15/03/2023', | |
subject: 'Rescisão de contrato' | |
}, | |
{ | |
processNumber: '0005678-90.2022.8.26.0100', | |
tribunal: 'TJSP - Tribunal de Justiça de São Paulo', | |
parties: 'Maria Oliveira vs. Banco ABC S.A.', | |
status: 'Arquivado', | |
date: '22/11/2022', | |
subject: 'Cobrança indevida' | |
}, | |
{ | |
processNumber: '0009012-34.2021.4.01.3400', | |
tribunal: 'TRF1 - Tribunal Regional Federal da 1ª Região', | |
parties: 'Empresa DEF S.A. vs. União', | |
status: 'Em andamento', | |
date: '05/07/2021', | |
subject: 'Imposto de renda' | |
} | |
]; | |
sampleResults.forEach(process => { | |
const processCard = document.createElement('div'); | |
processCard.className = 'result-card rounded-lg p-5'; | |
processCard.innerHTML = ` | |
<div class="flex justify-between items-start mb-3"> | |
<div> | |
<h3 class="font-semibold text-lg text-white">Processo nº ${process.processNumber}</h3> | |
<p class="text-sm text-gray-400">${process.tribunal}</p> | |
</div> | |
<span class="text-xs px-3 py-1 rounded-full ${getStatusColor(process.status)}">${process.status}</span> | |
</div> | |
<div class="mb-4"> | |
<p class="text-gray-400 text-sm mb-1">Partes</p> | |
<p class="text-white">${process.parties}</p> | |
</div> | |
<div class="grid grid-cols-3 gap-4 text-sm"> | |
<div> | |
<p class="text-gray-400 mb-1">Distribuição</p> | |
<p class="text-white">${process.date}</p> | |
</div> | |
<div> | |
<p class="text-gray-400 mb-1">Assunto</p> | |
<p class="text-white">${process.subject}</p> | |
</div> | |
<div> | |
<p class="text-gray-400 mb-1">Ações</p> | |
<a href="#" class="text-purple-400 hover:text-purple-300">Ver detalhes <i class="fas fa-external-link-alt ml-1"></i></a> | |
</div> | |
</div> | |
`; | |
resultsContainer.appendChild(processCard); | |
}); | |
} | |
function showEmptyResults() { | |
resultsSection.classList.remove('hidden'); | |
resultsContainer.innerHTML = ` | |
<div class="text-center py-12"> | |
<div class="mx-auto w-24 h-24 bg-gray-800 rounded-full flex items-center justify-center mb-4"> | |
<i class="fas fa-exclamation-triangle text-3xl text-yellow-500"></i> | |
</div> | |
<h3 class="text-xl font-medium text-gray-300 mb-2">Nenhum processo encontrado</h3> | |
<p class="text-gray-500 max-w-md mx-auto"> | |
Não foram encontrados processos com o termo "${searchTerm.value.trim()}". Verifique se os dados estão corretos ou tente uma pesquisa diferente. | |
</p> | |
</div> | |
`; | |
} | |
function getStatusColor(status) { | |
switch(status.toLowerCase()) { | |
case 'ativo': | |
return 'bg-green-900 text-green-300'; | |
case 'em andamento': | |
return 'bg-blue-900 text-blue-300'; | |
case 'arquivado': | |
return 'bg-gray-700 text-gray-300'; | |
default: | |
return 'bg-gray-600 text-gray-200'; | |
} | |
} | |
}); | |
</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=SherlockRamos/gayalex" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body> | |
</html> |