File size: 8,598 Bytes
cceb8c6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
import { useState, useMemo } from 'react'
import Head from 'next/head'
import { FiSearch, FiCopy, FiCheck, FiFilter } from 'react-icons/fi'
import { HiSparkles, HiBookOpen, HiDocumentText, HiAcademicCap } from 'react-icons/hi'
import toast from 'react-hot-toast'

const promptsData = [
  // Jurídicos
  {
    id: 1,
    title: 'Peticionamento Automático',
    description: 'Gera petições iniciais com base nos fatos narrados',
    category: 'juridico',
    tags: ['petição', 'direito civil', 'inicial'],
    prompt: 'Com base nos seguintes fatos: [inserir fatos], elabore uma petição inicial completa, seguindo o Código de Processo Civil brasileiro. Inclua: 1) qualificação das partes, 2) narração dos fatos, 3) fundamentação jurídica com citação de jurisprudência, 4) pedidos claros e objetivamente formulados. Use linguagem jurídica formal e técnica.',
    difficulty: 'Intermediário'
  },
  {
    id: 2,
    title: 'Análise de Contratos',
    description: 'Identifica cláusulas problemáticas em contratos',
    category: 'juridico',
    tags: ['contratos', 'análise', 'risco'],
    prompt: 'Analise o contrato apresentado e identifique: 1) cláusulas abusivas ou desequilibradas, 2) pontos de risco para o cliente, 3) sugestões de adequação, 4) conformidade com o Código Civil e CDC. Apresente análise crítica com fundamentação legal e sugestões práticas de negociação.',
    difficulty: 'Avançado'
  },
  {
    id: 3,
    title: 'Contestação Estruturada',
    description: 'Elabora contestações bem fundamentadas',
    category: 'juridico',
    tags: ['contestação', 'defesa', 'processo civil'],
    prompt: 'Elaborar contestação à petição inicial apresentada, seguindo esta estrutura: 1) preliminares (se houver), 2) impugnações específicas aos pedidos, 3) defesa de mérito, 4) reconvenção (se aplicável), 5) pedido de improcedência. Use argumentação jurídica sólida com citação de doutrina e jurisprudência.',
    difficulty: 'Intermediário'
  },
  {
    id: 4,
    title: 'Jurisprudência Aplicável',
    description: 'Busca precedentes relevantes para o caso',
    category: 'juridico',
    tags: ['jurisprudência', 'precedentes', 'STF', 'STJ'],
    prompt: 'Com base na seguinte questão jurídica: [inserir questão], encontre precedentes dos tribunais superiores (STF e STJ) e tribunais estaduais relevantes. Apresente: 1) ementa dos acórdãos, 2) ratio decidendi, 3) aplicabilidade ao caso concreto, 4) estratégia processual recomendada.',
    difficulty: 'Avançado'
  },
  
  // Administrativos
  {
    id: 5,
    title: 'Plano de Gestão Documental',
    description: 'Cria sistema de organização de documentos',
    category: 'administrativo',
    tags: ['gestão', 'documentos', 'organização'],
    prompt: 'Desenvolva um plano completo de gestão documental para [tipo de organização] incluindo: 1) classificação de documentos, 2) prazos de guarda, 3) procedimentos de arquivamento, 4)数字化 de processos, 5) conformidade com a Lei de Acesso à Informação e LGPD.',
    difficulty: 'Intermediário'
  },
  {
    id: 6,
    title: 'Mapeamento de Processos',
    description: 'Mapeia e otimiza processos administrativos',
    category: 'administrativo',
    tags: ['processos', 'otimização', 'workflow'],
    prompt: 'Mapeie o processo administrativo descrito: [descrever processo]. Identifique: 1) atividades desnecessárias, 2) gargalos, 3) pontos de controle, 4) oportunidades de automatização, 5) indicadores de performance, 6) cronograma de implementação das melhorias.',
    difficulty: 'Avançado'
  },
  {
    id: 7,
    title: 'Relatório de Gestão',
    description: 'Gera relatórios executivos estruturados',
    category: 'administrativo',
    tags: ['relatórios', 'gestão', 'indicadores'],
    prompt: 'Elabore um relatório de gestão executivo com base nos dados apresentados: [inserir dados]. Inclua: 1) resumo executivo, 2) análise de indicadores, 3) conquistas e desafios, 4) recomendações estratégicas, 5) plano de ação para o próximo período.',
    difficulty: 'Intermediário'
  },
  
  // Concursos
  {
    id: 8,
    title: 'Questões Personalizadas',
    description: 'Gera questões no estilo de concursos públicos',
    category: 'concurso',
    tags: ['questões', 'exercícios', 'estudo'],
    prompt: 'Crie 10 questões de múltipla escolha sobre [tópico] no estilo do [nome do concurso/organizadora]. Nível de dificuldade: [básico/intermediário/avançado]. Inclua: 1) enunciado claro, 2) 5 alternativas, 3) gabarito comentado com fundamentação legal/doutrinária, 4) dicas de estudo.',
    difficulty: 'Intermediário'
  },
  {
    id: 9,
    title: 'Resumão para Prova',
    description: 'Cria resumos organizados por tópicos',
    category: 'concurso',
    tags: ['resumo', 'estudo', 'revisão'],
    prompt: 'Elabore um resumo completo sobre [tópico] para concurso público, incluindo: 1) conceitos fundamentais, 2) legislação aplicável, 3) jurisprudência relevante, 4) esquemas e mapas mentais, 5) questões frequentes, 6) dicas de memorização.',
    difficulty: 'Básico'
  },
  {
    id: 10,
    title: 'Simulado Cronometrado',
    description: 'Cria simulados com tempo限定',
    category: 'concurso',
    tags: ['simulado', 'cronometro', 'avaliação'],
    prompt: 'Monte um simulado completo para [concurso] com [número] questões sobre [disciplinas]. Inclua: 1) distribuição por disciplinas conforme edital, 2) gabarito, 3) justificativas das alternativas, 4) cronograma de estudos baseado no desempenho, 5) dicas de gestão do tempo.',
    difficulty: 'Avançado'
  }
]

const categories = [
  { id: 'all', name: 'Todos', icon: HiSparkles, color: 'bg-gray-500' },
  { id: 'juridico', name: 'Jurídico', icon: HiDocumentText, color: 'bg-blue-500' },
  { id: 'administrativo', name: 'Administrativo', icon: HiBookOpen, color: 'bg-green-500' },
  { id: 'concurso', name: 'Concursos', icon: HiAcademicCap, color: 'bg-purple-500' }
]

const difficulties = ['Básico', 'Intermediário', 'Avançado']

export default function PromptLibrary() {
  const [searchTerm, setSearchTerm] = useState('')
  const [selectedCategory, setSelectedCategory] = useState('all')
  const [selectedDifficulty, setSelectedDifficulty] = useState('')
  const [copiedId, setCopiedId] = useState(null)

  const filteredPrompts = useMemo(() => {
    return promptsData.filter(prompt => {
      const matchesSearch = prompt.title.toLowerCase().includes(searchTerm.toLowerCase()) ||
                           prompt.description.toLowerCase().includes(searchTerm.toLowerCase()) ||
                           prompt.tags.some(tag => tag.toLowerCase().includes(searchTerm.toLowerCase()))
      
      const matchesCategory = selectedCategory === 'all' || prompt.category === selectedCategory
      const matchesDifficulty = !selectedDifficulty || prompt.difficulty === selectedDifficulty

      return matchesSearch && matchesCategory && matchesDifficulty
    })
  }, [searchTerm, selectedCategory, selectedDifficulty])

  const copyToClipboard = async (text, id) => {
    try {
      await navigator.clipboard.writeText(text)
      setCopiedId(id)
      toast.success('Prompt copiado para a área de transferência!')
      setTimeout(() => setCopiedId(null), 2000)
    } catch (err) {
      toast.error('Erro ao copiar. Tente novamente.')
    }
  }

  const getDifficultyColor = (difficulty) => {
    switch (difficulty) {
      case 'Básico': return 'bg-green-100 text-green-800'
      case 'Intermediário': return 'bg-yellow-100 text-yellow-800'
      case 'Avançado': return 'bg-red-100 text-red-800'
      default: return 'bg-gray-100 text-gray-800'
    }
  }

  return (
    <>
      <Head>
        <title>Biblioteca de Prompts - AI.Wiki.BR</title>
        <meta name="description" content="Biblioteca completa de prompts para IA em escritórios jurídicos, administrativos e preparação para concursos públicos." />
      </Head>

      <div className="min-h-screen bg-gray-50 py-8">
        <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
          {/* Header */}
          <div className="text-center mb-12">
            <h1 className="text-4xl lg:text-5xl font-bold text-gray-900 mb-4">
              Biblioteca de Prompts
            </h1>
            <p className="text-xl text-gray-600 max-w-3xl mx-auto">
              Mais de 50 prompts especializados para transformar sua prática profissional
            </p>
          </div>

          {/* Search and Filters */}
          <div className="bg-white rounded-xl shadow-lg p-