feat: fase 2 - detecção de crianças, tags, filtros e histórico

- GPT retorna JSON estruturado: criancas, turma, tags, relatorio
- Frontmatter agora inclui criancas[], turma, tags[] no .md
- Índice JSON estruturado com metadados completos
- Prévia do relatório mostra crianças detectadas + tags + turma
- Modal 'Minhas Observações' na sidebar
- Filtros por mês, tag e busca por criança
- Lista de observações com preview e chips
- Modal de detalhe com copiar texto
- CSS para btn-observacoes, obs-modal, obs-items, tags/chips
This commit is contained in:
2026-05-27 15:57:04 +00:00
parent ea8e33c891
commit 0b35055e23
4 changed files with 434 additions and 25 deletions
+45
View File
@@ -65,6 +65,14 @@
<button class="tag-filter" data-tag="estudos">📚 Estudos</button>
</div>
<!-- Botão: Minhas Observações -->
<button class="btn-observacoes" id="btnObservacoes">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" d="M12 6.042A8.967 8.967 0 0 0 6 3.75c-1.052 0-2.062.18-3 .512v14.25A8.987 8.987 0 0 1 6 18c2.305 0 4.408.867 6 2.292m0-14.25a8.966 8.966 0 0 1 6-2.292c1.052 0 2.062.18 3 .512v14.25A8.987 8.987 0 0 0 18 18a8.967 8.967 0 0 0-6 2.292m0-14.25v14.25" />
</svg>
<span>Minhas Observações</span>
</button>
<!-- Histórico de Conversas -->
<div class="chat-history" id="chatHistory">
<!-- Histórico filtrado/busca -->
@@ -386,6 +394,43 @@
</div>
</div>
<!-- Modal: Minhas Observações -->
<div id="obsModal" class="settings-modal" style="display: none;">
<div class="settings-modal-content obs-modal-content">
<div class="settings-modal-header">
<h3>📒 Minhas Observações</h3>
<button id="btnCloseObsModal" class="btn-close-modal">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" d="M6 18 18 6M6 6l12 12" />
</svg>
</button>
</div>
<div class="obs-modal-body">
<!-- Filtros -->
<div class="obs-filters" id="obsFilters">
<select id="obsFilterMes" class="obs-select">
<option value="">Todos os meses</option>
</select>
<select id="obsFilterTag" class="obs-select">
<option value="">Todas as tags</option>
<option value="social">Social</option>
<option value="cognitivo">Cognitivo</option>
<option value="motor">Motor</option>
<option value="linguagem">Linguagem</option>
<option value="emocional">Emocional</option>
<option value="colaborativo">Colaborativo</option>
<option value="autónomo">Autónomo</option>
</select>
<input type="text" id="obsSearchCrianca" class="obs-input" placeholder="Buscar por criança...">
</div>
<!-- Lista de observações -->
<div id="obsList" class="obs-list">
<div class="obs-empty">Carregando observações...</div>
</div>
</div>
</div>
</div>
<!-- Bibliotecas externas para renderizar markdown e blocos de código -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/marked/12.0.1/marked.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js"></script>