Melissa: hub Configuracoes + Embed + 9 Pages novas + dialog blueprint dark

Sprints 04-29 + 04-30 acumuladas.

- MelissaConfiguracoes: hub 2-col com 6 grupos (Layout/Conta/Agenda/
  Financeiro/WhatsApp/Sistema), tudo embedado via MelissaEmbed.
- MelissaEmbed: wrapper generico que injeta layout-variant=melissa
  e remove cromos pra reaproveitar Pages tradicionais.
- 9 Melissa Pages novas: CadastrosRecebidos, Compromissos, Configuracoes,
  Conversas, Embed, Grupos, Medicos, Recorrencias, Tags.
- Dialog blueprint atualizado: bg-gray-100 (hardcoded light) ->
  bg-[var(--surface-ground)] (tema-aware). 22 dialogs migrados em
  9 arquivos. Anti-pattern documentado.
- PatientsCadastroPage: bug fix dropdown Grupo (optionLabel nome->name),
  toggle vertical/abas com persist localStorage, sticky margin-top.
- Surface picker no popover do MelissaLayout (8 swatches).
- useTopbarPlanMenu, useMelissaWhatsapp, useMelissaPacientesAside novos.
- Migration: status agenda remarcado/confirmado.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Leonardo
2026-05-04 11:41:19 -03:00
parent 269c380d9c
commit 86311ef305
52 changed files with 16214 additions and 1027 deletions
+1
View File
@@ -99,6 +99,7 @@
transition: opacity 0.12s;
width: 1rem;
text-align: center;
color: var(--primary-color);
}
.layout-menuitem-text {
+28
View File
@@ -36,6 +36,34 @@
}
}
/* Custom PrimeVue */
.p-floatlabel-on:has(input.p-filled) label,
.p-floatlabel-on:has(.p-inputwrapper-filled) label,
.p-floatlabel-on:has(textarea.p-filled) label {
padding: 2px 4px !important;
border: 1px solid var(--p-inputtext-border-color);
border-radius: 4px !important;
left: 10px !important;
top: -2px !important;
}
.p-floatlabel > label[for="f_nasc"] {
left: 44px !important;
}
.p-floatlabel:has(input.p-filled) label, .p-floatlabel:has(textarea.p-filled) label, .p-floatlabel:has(.p-inputwrapper-filled) label {
color: var(--p-floatlabel-focus-color) !important;
}
.p-dialog-header {
padding: 1rem !important;
}
.p-dialog-footer {
padding: 0.6rem !important;
}
/* Highlight pulse (acionado externamente via classe JS) */
@keyframes highlight-pulse {
0% {