e7c0f6c4f5
EXTENSAO src/features/patients/utils/patientFormatters.js
- recordStatus(r): pago / vencido (paid_at NULL && due_date < hoje) / pendente
- RECORD_STATUS_LABEL map
- fmtPaymentMethod(v): PIX/Cartao/Dinheiro/Boleto/Transferencia/Convenio
cobrindo variantes pt-br + camelCase
EXTENSAO src/features/patients/composables/usePatientFinancial.js
- ref `busy` + `_lastPatientId` interno
- recordsOrdenados computed: DESC por due_date com fallback created_at
- markPaid(recordId): UPDATE financial_records SET paid_at=NOW() +
auto-reload via _lastPatientId. Retorna {ok, error?}
- markUnpaid(recordId): reverte (paid_at=NULL) + auto-reload
MELISSAPACIENTE.VUE — script
- Imports: recordStatus, RECORD_STATUS_LABEL, fmtPaymentMethod
- markRecordPaid(r): chama financialHook.markPaid + toast success/error
- revertRecordPaid(r): chama markUnpaid + toast
MELISSAPACIENTE.VUE — Tab Financeiro reescrita (substitui placeholder Fase 1)
- Loading state
- Empty state com CTA "Novo lancamento" (mpa-quick-btn--cta)
- 3 KPIs: Pago / Pendente com proxVenc / Em atraso (cor adaptativa
vermelho quando > 0, cinza quando 0)
- Header "Lancamentos" com badge count + botao "+ Novo" no canto
- Tabela 6-col responsiva:
- Vencimento (date mono + relative)
- Descricao
- Forma (PIX/Cartao/etc)
- Valor (mono right-aligned)
- Status pill colorida (verde pago / vermelho vencido / azul pendente)
- Action button (pi-check verde marca pago / pi-undo amarelo reverte)
- border-left adaptativa por status
- Mobile: tabela colapsa em cards 2-col 4-row
DIFERENCA DO LEGACY: o PatientProntuario.vue exibe a tabela mas NAO
permite marcar pago/reverter direto dela. MelissaPaciente adiciona essa
acao inline (mutation auto-reload).
CSS: ~190L novos. Padrao Melissa: status pills com color-mix, JetBrains
Mono pra valores, header cell uppercase letter-spacing.
ESLint: 0 errors da minha mudanca.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
375 lines
20 KiB
Markdown
375 lines
20 KiB
Markdown
# Wiki Log
|
|
|
|
Chronological, append-only record of everything that's happened in this wiki.
|
|
|
|
**Format:**
|
|
```
|
|
## [YYYY-MM-DD HH:MM] <type> | <title>
|
|
<optional detail line>
|
|
```
|
|
|
|
**Types:** `session`, `ingest`, `query`, `lint`, `rebuild`
|
|
|
|
**Quick access:** `grep "^## \[" log.md | tail -5` gives you the last 5 entries.
|
|
|
|
---
|
|
|
|
## [2026-05-05 23:45] session | Blueprint tabular Melissa + restore pacientes
|
|
Touched: none (sem mudança de wiki — handoff em HANDOFF.md)
|
|
Detalhes: criou `blueprints/melissa-table-page-blueprint.md` (~530L, 18 seções);
|
|
refatorou MelissaCadastrosRecebidos pro padrão (DataTable + frozen action +
|
|
view toggle list/grade); criou MelissaAgendamentosRecebidos nativa (substituindo
|
|
embed); MelissaPacientes ganhou subheader, sombras, status pills coloridas,
|
|
email/phone colunas próprias, mobile pencil+popover, view toggle, fix scroll
|
|
mobile (`min-height: 0` em `.mp-list`), botão Restaurar pra arquivados.
|
|
Repository: `restorePatient` novo. PatientsCadastroPage statusOpts: +Arquivado.
|
|
A66 V2 — user não gostou design, aguarda feedback específico.
|
|
|
|
## [2026-05-06 12:00] session | MelissaCompromissos refator blueprint
|
|
Touched: none (aplicacao direta do blueprint existente - sem mudanca de wiki)
|
|
Detalhes: refator de MelissaCompromissos pro melissa-table-page-blueprint preservando o design do row (color stripe + name+badges + descricao + meta inline). DataTable com 3 colunas (Compromisso flex / Atividade 220px / Acoes frozen 140px com toggle+pencil+trash). Sidebar com 2 grupos de filtros: Status (Ativos verde / Inativos amber) e Tipo (Nativos blue / Meus accent), cada um com Limpar filtro proprio. Grid view com cards (color stripe 28px + toggle topo + footer com edit/trash). Subheader explicativo. View toggle persistido em mc.viewMode.v1. Removeu Popover de actions (drawer mobile cobre). Stats: Total/Ativos/Inativos/Tempo total. ESLint 0 errors. UI nao testada em browser ainda.
|
|
|
|
## [2026-05-06 14:00] session | Melissa 6 Pages blueprint + WhatsApp drawer + commits
|
|
Touched: none (sem nova pagina de wiki - aplicacao do blueprint existente)
|
|
Detalhes: Sprint F entregue. Blueprint tabular aplicado em MelissaCompromissos
|
|
(row design preservado), MelissaGrupos, MelissaTags, MelissaMedicos,
|
|
MelissaConversas, MelissaRecorrencias. Dialogs de criar/editar harmonizados
|
|
(FloatLabel + IconField + section dividers espelhando PatientsCadastroPage
|
|
Identidade). Dialogs "Pacientes do grupo/tag/medico" com cor primary nos
|
|
avatares de letras + X de fechar igual .xx-close. ConversationDrawer redesign
|
|
estilo WhatsApp (avatar primary, bg papel de parede, bolhas com tail simulada,
|
|
time/status overlay no canto inferior direito, compose pill + send circular
|
|
verde #00a884). Bug fix em MelissaPacientes: g.cor->g.color em 20 lugares
|
|
(repository devolve camelCase, template lia PT-BR e cores nao apareciam).
|
|
5 commits criados: 957e912, 6d9b36d, 269b531, 98f7252, 15103ed. Working tree
|
|
limpa. HANDOFF.md atualizado.
|
|
|
|
## [2026-05-06 17:30] session | Melissa drawers: footer pattern AppMenu
|
|
Touched: none
|
|
|
|
## [2026-05-08 00:00] session | Melissa cfg-* nativas + temas + cronometro DB
|
|
Touched: none
|
|
|
|
## [2026-05-08 17:30] session | MelissaPaciente Fase 6 — Tab Financeiro completa + mark paid mutation
|
|
Touched: none
|
|
Detalhes: Tab Financeiro espelha o legacy + adiciona mutation que o
|
|
legacy NAO tem (mark/unmark pago direto da tabela).
|
|
|
|
EXTENSAO patientFormatters.js:
|
|
- recordStatus(r): pago | vencido | pendente
|
|
- RECORD_STATUS_LABEL map.
|
|
- fmtPaymentMethod(v): PIX/Cartao/Dinheiro/Boleto/Transferencia/Convenio
|
|
cobrindo variantes.
|
|
|
|
EXTENSAO usePatientFinancial.js:
|
|
- ref `busy` + `_lastPatientId` interno.
|
|
- recordsOrdenados computed (DESC por due_date com fallback created_at).
|
|
- markPaid(recordId): UPDATE financial_records SET paid_at=NOW() + auto-
|
|
reload. Retorna {ok, error?}.
|
|
- markUnpaid(recordId): UPDATE SET paid_at=NULL + auto-reload (reverte).
|
|
|
|
MELISSAPACIENTE.VUE — script
|
|
- Imports: recordStatus, RECORD_STATUS_LABEL, fmtPaymentMethod.
|
|
- markRecordPaid(record) handler: chama markPaid + toast success/error.
|
|
- revertRecordPaid(record): chama markUnpaid + toast.
|
|
|
|
MELISSAPACIENTE.VUE — Tab Financeiro reescrita
|
|
- Loading state.
|
|
- Empty state com CTA "Novo lancamento" (botao mpa-quick-btn--cta).
|
|
- 3 KPIs (Pago / Pendente com proxVenc / Em atraso com cor adaptativa).
|
|
- Header "Lancamentos" com badge count + botao "+ Novo" no canto.
|
|
- Tabela 6-col: Vencimento (date mono+rel) | Descricao | Forma | Valor
|
|
(mono right) | Status pill colorida (pago verde / vencido vermelho /
|
|
pendente azul) | Action button.
|
|
- Action: pi-check (verde) pra marcar pago, pi-undo (amarelo) pra reverter.
|
|
- border-left adaptativa por status (verde pago / vermelho vencido /
|
|
azul pendente).
|
|
- Mobile: tabela colapsa em cards 2-col 4-row (date|amount / desc /
|
|
method|status / action).
|
|
|
|
CSS: ~190L novos pros componentes (mpa-fin__table/row/date/desc/method/
|
|
amount/status/action + responsive). Padrao Melissa: status pills com
|
|
color-mix, JetBrains Mono pra valores, header cell uppercase letter-
|
|
spacing.
|
|
|
|
ESLint: 0 errors da minha mudanca.
|
|
|
|
## [2026-05-08 16:30] session | MelissaPaciente Fase 5 — Tab Agenda completa
|
|
Touched: none
|
|
Detalhes: Tab Agenda com KPIs, filtros, agrupamento por mes e acoes
|
|
rapidas (mark realizada/falta/cancelar). Espelha o legacy.
|
|
|
|
EXTENSAO patientFormatters.js: +2 helpers
|
|
- fmtHourShort (HH:MM 24h pt-br) e fmtDayShort (DOW abbreviado pt-br
|
|
sem ponto) — usados na coluna data dos cards.
|
|
|
|
EXTENSAO usePatientSessions.js: mutation + busy flag
|
|
- Novo ref `busy` pra disable de buttons durante mutation.
|
|
- _lastPatientId guardado pra auto-reload depois de mutation.
|
|
- Nova funcao `updateStatus(sessionId, novoStatus)` que faz
|
|
supabase.from('agenda_eventos').update({status}) + auto-reload da
|
|
lista. Retorna {ok, error?}.
|
|
|
|
MELISSAPACIENTE.VUE — script
|
|
- agendaFilter ref ('all' default) + AGENDA_FILTERS array com 6 opcoes
|
|
(Todas, Proximas, Passadas, Realizadas, Faltas, Canceladas).
|
|
- agendaSessoesFiltradas computed: filtra sessoes por future/past/status.
|
|
- agendaAgrupadas computed: agrupa por "Mes de YYYY" mantendo ordem DESC.
|
|
- updateSessionStatus(ev, status, msg) handler que chama
|
|
sessionsHook.updateStatus + toast de sucesso/erro.
|
|
- Removido `void toast` (toast usado de verdade agora).
|
|
|
|
MELISSAPACIENTE.VUE — Tab Agenda reescrita (substitui placeholder Fase 1)
|
|
- 4 KPI cards no padrao Visao Geral (numerados 01-04):
|
|
- 01 Total + cap "sessoes registradas"
|
|
- 02 Realizadas + cap "% do total"
|
|
- 03 Faltas + cap "+ N cancel." (cor vermelha quando > 0, cinza quando 0)
|
|
- 04 Proxima + relative + datetime
|
|
- 6 filter chips redondas (estilo Melissa: cor primary quando active).
|
|
- Empty state contextual (sem sessoes vs filtro vazio).
|
|
- Grupos por mes com header (label + badge count).
|
|
- Cards com 3 colunas: data column (DOW + dia + hora curta) | main
|
|
(status tag + chips modalidade/duracao + relative + titulo + note) |
|
|
actions (3 buttons: ok/warn/danger com tooltip + cor adaptativa hover).
|
|
- Mobile: stack date+main em 2 cols; actions full-width abaixo.
|
|
|
|
CSS: ~150L novos pros componentes (mpa-ag__group/list/item/date/main/
|
|
actions). Padrao visual Melissa: data column estilo calendario, actions
|
|
hover muda cor por intent (verde realiz / amarelo falta / vermelho cancel).
|
|
|
|
ESLint: 0 errors da minha mudanca.
|
|
|
|
## [2026-05-08 15:30] session | MelissaPaciente Fase 4 — Tab Prontuario MVP
|
|
Touched: none
|
|
Detalhes: O legacy PatientProntuario.vue tem a aba Prontuario como
|
|
PLACEHOLDER ("Em breve"). MVP entregue aqui supera o legacy: usa
|
|
agenda_eventos.observacoes como nota evolutiva (pq nao tem schema de
|
|
anamnese/clinical_notes ainda).
|
|
|
|
ESTADO + COMPUTEDS adicionados:
|
|
- pronFilter ref ('com-evolucao' default) + PRON_FILTERS array com 5
|
|
opcoes (Com evolucao, Todas, Realizadas, Faltas, Cancelamentos).
|
|
- pronSessions computed: filtra sessions por status/observacoes presentes.
|
|
- sessoesComEvolucao computed: count de sessoes com observacoes nao-vazia.
|
|
|
|
TEMPLATE Tab Prontuario (substitui placeholder Fase 1):
|
|
- Hint banner top: "Prontuario em construcao", explica que usa observacoes
|
|
de sessoes como historico evolutivo.
|
|
- 4 mini-stats em grid responsivo: com evolucao / realizadas / faltas /
|
|
total. Cada uma colorida + icone + value 800.
|
|
- 5 filter chips redondas (estilo Melissa): com-evolucao default; troca
|
|
pra todas/realiz/falt/cancel.
|
|
- Empty state contextual:
|
|
- Se nao tem sessoes: "Quando atender este paciente..."
|
|
- Se filtro 'com-evolucao' e zero: "Use o campo Observacoes ao editar
|
|
sessao..."
|
|
- Outro filtro: "Tente outro filtro acima."
|
|
- Lista de sessoes (pron-list) com:
|
|
- border-left colorida por status (verde realiz / vermelho falta /
|
|
amarelo cancel / cinza default)
|
|
- head com data + relative + chips status/modalidade/duracao
|
|
- titulo opcional (titulo_custom || titulo)
|
|
- block "Evolucao" quando tem observacoes (background medium, border-
|
|
left primary, label uppercase com icone, texto pre-wrap)
|
|
- mensagem "Sem evolucao registrada" italico cinza quando nao tem
|
|
- Roadmap card (border-dashed) listando 4 features futuras: anamnese
|
|
estruturada / plano terapeutico / evolucao por temas / assinatura
|
|
digital + LGPD Art. 18.
|
|
|
|
CSS: ~200L novos pros componentes (mpa-pron-hint/stats/filters/list/
|
|
item/roadmap). Padrao visual Melissa: chips redondas estilo MelissaTags,
|
|
border-left adaptativa, monospace inutilizado.
|
|
|
|
ESLint: 0 errors da minha mudanca.
|
|
|
|
## [2026-05-08 14:30] session | MelissaPaciente Fase 3 — Tab Perfil (6 sections stacked)
|
|
Touched: none
|
|
Detalhes: Substituiu o placeholder da aba Perfil por 6 sections stacked
|
|
com anchors no MelissaPaciente. Diferente do PatientProntuario legacy que
|
|
usava PrimeVue Accordion (1 painel aberto por vez), o Melissa nativo
|
|
mostra todos os 6 cards stacked com scroll suave do sidebar sub-nav pra
|
|
cada anchor. Mais legivel em desktop, mais rapido pra escanear.
|
|
|
|
EXTENSAO de patientFormatters.js: +5 formatters
|
|
- pickField (ja existia computed local; agora helper compartilhavel)
|
|
- onlyDigits, fmtCPF (000.000.000-00), fmtRG (passthrough), fmtPhoneMobile
|
|
((XX) 9XXXX-XXXX), fmtGender (Masculino/Feminino/Nao-binario/Outro),
|
|
fmtMarital (Solteiro/Casado/Divorciado/Viuvo/Uniao estavel).
|
|
|
|
MELISSAPACIENTE.VUE — script:
|
|
- 30+ field computeds usando pickField (cobre snake_case + camelCase do
|
|
schema): birthValue, telefone/Alternativo, email/Alternativo, genero,
|
|
estadoCivil, naturalidade, ondeNosConheceu, encaminhadoPor, observacoes,
|
|
notasInternas + 8 campos de endereco (cep/pais/cidade/estado/endereco/
|
|
numero/bairro/complemento) + 5 dados adicionais (escolaridade/profissao/
|
|
nomeParente/grauParentesco/telefoneParente) + 4 responsavel.
|
|
- groupNames/groupLabel/groupCountLabel pra Origem.
|
|
- scrollToProfileSection(key) que liga sidebar sub-nav -> nextTick ->
|
|
scrollIntoView do anchor #mpa-perfil-XXX. Em mobile fecha o drawer.
|
|
|
|
MELISSAPACIENTE.VUE — template Tab Perfil:
|
|
- 1. Informacoes Pessoais: 2-col (Dados de cadastro: nome/data nasc com
|
|
idade/genero/estado civil/CPF/RG/naturalidade) + (Contato: tel/tel-alt
|
|
com tel: links + e-mail principal/alt com mailto: + Origem: grupos/tags
|
|
chips/onde nos conheceu/encaminhado por). Observacoes full-width quando
|
|
preenchido.
|
|
- 2. Endereco: grid 2-col com 8 fields (CEP/pais/cidade/estado/endereco/
|
|
numero/bairro/complemento).
|
|
- 3. Dados Adicionais: grid 2-col com escolaridade/profissao/parente/grau/
|
|
tel parente.
|
|
- 4. Responsavel: 1-col com nome/CPF/tel + observacao block textual.
|
|
- 5. Anotacoes Internas: card com hint lock + textblock min-height.
|
|
- 6. Sessoes: lista compacta scrollable (max-height 360px) com titulo/
|
|
data/duracao/modalidade chips + tag status.
|
|
|
|
CSS: ~250L novos pros componentes (mpa-fields/field-row/field-grid-2/
|
|
field-block/sess/sess-list). Pattern visual Melissa: cards com label
|
|
uppercase, separadores horizontais sutis, links com cor primary, monospace
|
|
pra CPF/RG/CEP.
|
|
|
|
ESLint: 0 errors da minha mudanca.
|
|
|
|
## [2026-05-08 13:00] session | MelissaPaciente Fase 2 — Tab Visao Geral completa
|
|
Touched: none
|
|
Detalhes: Reescreveu a aba Visao Geral do MelissaPaciente substituindo o
|
|
placeholder por uma versao 1:1 do PatientProntuario.vue legado, mas com
|
|
estilo Melissa nativo.
|
|
|
|
NOVO: src/features/patients/utils/patientFormatters.js (~165L)
|
|
- Helpers compartilhaveis extraidos do PatientProntuario: parseDateLoose,
|
|
fmtDateBR, fmtDateTimeBR, fmtCurrency, fmtRelative, sessionDuration,
|
|
calcAge. STATUS_LABEL/SEVERITY pra sessoes. tagStyle com luminance auto
|
|
(texto preto/branco baseado em contraste WCAG-ish). Sera usado pelas
|
|
Fases 3-7 e finalmente pelo PatientProntuario tambem (Fase 8).
|
|
|
|
EXTENSAO de composables:
|
|
- usePatientSessions ganha computed `ultimasAtendidas` (top 6 sessoes
|
|
realizadas/faltadas/canceladas pra Timeline). Refinou totalRealizadas/
|
|
Faltas/Canceladas pra usar regex (cobre variantes pt-br).
|
|
- usePatientFinancial ganha computed `statusFinanceiro` ({ emDia, proxVenc,
|
|
totalPendente, totalPago, vencidos }) pra alimentar o KPI 02 com info
|
|
detalhada.
|
|
|
|
MELISSAPACIENTE.VUE — Visao Geral (Fase 2 done):
|
|
- 4 KPI cards ricos (era 4 simples na Fase 1):
|
|
- 01 Sessoes: realizadas + total + faltas + cancel.
|
|
- 02 Pagamento: emDia/atraso + proxVenc + pendente, com cor adaptativa
|
|
(vermelho quando atrasado, primary quando ok).
|
|
- 03 Proxima sessao: relative + datetime + modalidade.
|
|
- 04 Mensagens: ultimaMensagem relative + direction + count.
|
|
- Grid 2-col abaixo: Timeline (1.4fr) + coluna direita (1fr) com
|
|
Mensagens recentes + Notas/observacoes.
|
|
- Timeline com dot colorido por status (verde/vermelho/amarelo) +
|
|
STATUS_LABEL/SEVERITY do utils + chips modalidade/duracao + nota
|
|
observacoes inline.
|
|
- Mensagens recentes com border-left colorida (verde=in / azul=out) +
|
|
meta direction + relative + body 3-line clamp.
|
|
- Notas e observacoes com card papel + label uppercase + icone lock
|
|
pras internas.
|
|
- Removeu kpiEmAberto/Atrasado nao usados (statusFinanceiro encapsula).
|
|
|
|
ESLint: 0 errors. Working tree limpa antes do commit.
|
|
|
|
## [2026-05-08 11:30] session | MelissaPaciente Fase 1 (foundation: composables + skeleton + slug)
|
|
Touched: none (sem mudanca de wiki)
|
|
Detalhes: User escolheu "Full rewrite Melissa nativo" pra portar
|
|
PatientProntuario.vue (3593L Dialog) pro Melissa. Plano em 8 fases (2-8 sao
|
|
cada tab/wireup, sessao dedicada). Fase 1 entregue:
|
|
|
|
5 COMPOSABLES NOVOS em src/features/patients/composables/:
|
|
- usePatientDetail.js (108L) — patients + groups + tags via 4 queries
|
|
(getPatientById, getPatientRelations, getGroupsByIds, getTagsByIds).
|
|
Espelha 1:1 a logica de loadDetail() do PatientProntuario L893-953.
|
|
- usePatientSessions.js (83L) — agenda_eventos limit 100 ordenado desc +
|
|
computeds proximaSessao/ultimaSessao/totalSessoes/totalRealizadas/
|
|
totalFaltas/totalCanceladas.
|
|
- usePatientFinancial.js (82L) — financial_records (type=receita) limit 100
|
|
+ computeds totalRecebido/EmAberto/Atrasado/ultimoPago.
|
|
- usePatientMessages.js (64L) — conversation_messages limit 200 + computeds
|
|
recentes (top 4)/totalIn/totalOut/ultimaMensagem.
|
|
- usePatientDocuments.js (70L) — documents (deleted_at IS NULL) limit 200
|
|
+ computeds total/totalBytes/tiposCount/ultimo.
|
|
|
|
MELISSAPACIENTE.VUE NOVO (1190L) em src/layout/melissa/:
|
|
- Prefixo CSS .mpa-* (Melissa PAciente). Chrome glass + drawer mobile +
|
|
right: max(...) >=1024px (mesmo padrao MelissaAgendador/Negocio).
|
|
- Header: avatar + nome + ageLabel + pronomes + status/convenio Tag +
|
|
risco-elevado pill + actions (Conversar / Editar / Close).
|
|
- Subheader condicional: banner risco elevado.
|
|
- Body 2-col: sidebar 320px (esquerda, drawer no mobile) + main flex 1.
|
|
- Sidebar contém 4 cards: Acoes Rapidas (Conversar/Editar/Lancamento) +
|
|
Navegacao (7 tabs com icones coloridos) + Sub-nav Perfil (visivel so
|
|
quando aba Perfil ativa, 6 secoes) + Vinculos (chips de grupos+tags).
|
|
- Main: 7 tabs com placeholders ("Em desenvolvimento — Fase X"). Aba
|
|
Visao Geral ja mostra 4 KPIs reais via composables (sessoes totais,
|
|
em aberto, mensagens, documentos).
|
|
- Props :patient-id; emits close/edit/add-financial/open-whatsapp.
|
|
- Watch immediate em props.patientId, dispara loadAll() via Promise.all
|
|
dos 5 composables.
|
|
|
|
MELISSALAYOUT.VUE atualizado:
|
|
- Import MelissaPaciente.
|
|
- SECOES.paciente entry novo (label/icon/descricao).
|
|
- 'paciente' adicionado ao MELISSA_NON_CONFIG_SLUGS.
|
|
- Render condicional com :patient-id="String(route.query.id || '')" —
|
|
navegacao via /melissa/paciente?id=xxx.
|
|
|
|
NAO ALTERADO: PatientProntuario.vue continua intocado nos 4 callsites
|
|
(TherapistDashboard, MelissaAgenda, MelissaPacientes, PatientsListPage).
|
|
Migration acontece nas Fases 2-8. Fase 8 troca os callsites no Melissa.
|
|
|
|
ESLint: 0 errors da minha mudanca. 2 errors pre-existentes em MelissaLayout
|
|
(duplicate key 'financeiro' L242, empty block L1130) — nao toquei aquelas
|
|
linhas. PatientProntuario tem 2 outros pre-existentes. Working tree:
|
|
MelissaLayout.vue + 6 arquivos novos.
|
|
|
|
## [2026-05-08 09:30] session | Chrome+preview em 7 paginas Melissa (LinkExterno preview novo)
|
|
Touched: none (sem mudanca de wiki - aplicacao do pattern existente)
|
|
Detalhes: Aplicou o chrome `right: max(6px, min(50%, calc(100% - 1006px)))`
|
|
em 6 paginas tabulares (CadastrosRecebidos .mcr / Recorrencias .mr / Grupos
|
|
.mg / Tags .mt / Compromissos .mc / Medicos .mm) - so o tamanho de janela,
|
|
sem preview, conforme pedido pelo user. Adicionou novo @media (min-width:
|
|
1024px) ao final de cada arquivo (cada um nao tinha esse breakpoint ainda).
|
|
|
|
MelissaLinkExterno (.ml) ganhou tratamento completo: chrome + sidebar
|
|
restruturada (2-col com aside agora a ESQUERDA, antes era a direita) +
|
|
mobile drawer pattern (Teleport pro #ml-mobile-drawer-target, transitions,
|
|
backdrop, botao Menu mobile-only) + 3-way teleport do preview (mobile=topo
|
|
do main / mid-desktop=bottom da sidebar / wide-desktop>=1340=floating glass).
|
|
Sidebar agora com Como funciona + Boas praticas (movidos da .ml-side direita)
|
|
+ scroll proprio. Sem cfg toggle (nao havia necessidade conceitual).
|
|
|
|
Componente novo: src/components/cadastro/CadastroExternoPreview.vue (~350L).
|
|
Phone-frame 260px estilo AgendadorPreview replicando o CadastroPacienteExterno
|
|
publico: nav (logo Psi + chip verificado), hero (avatar 38px + nome split
|
|
firstName/lastName em accent + work_description label + clinic name), stepper
|
|
4 dots (1 active), card etapa 1 (numero decorativo + tag "Etapa 1 de 4" +
|
|
title "Sobre voce" + 3 input bars + CTA "Continuar"), powered by. Recebe
|
|
:token prop e busca info do convite via mesma edge function que o publico
|
|
(get-intake-invite-info), watch refetcha quando token rotaciona. Sem token
|
|
ou sem dados, fallbacks pra "Profissional" + iniciais.
|
|
|
|
ESLint: 0 errors da minha mudanca. 2 errors pre-existentes em
|
|
MelissaRecorrencias.vue (totalDone unused L235, v-for/v-bind:key L584) -
|
|
nao toquei aquelas linhas. Working tree: 9 arquivos modificados +
|
|
src/components/cadastro/ (untracked). Nao commitado, nao testado em browser.
|
|
|
|
## [2026-05-08 07:55] session | MelissaAgendador preview celular teleport 3-way
|
|
Touched: none (aplicacao do padrao MelissaNegocio - sem mudanca de wiki)
|
|
Detalhes: Replicou o padrao floating preview do MelissaNegocio em
|
|
MelissaAgendador.vue (+145L). Importou AgendadorPreview (phone-frame ja
|
|
existente do legacy ConfiguracoesAgendadorPage). Adicionou ref isWideDesktop
|
|
+ matchMedia('(min-width: 1340px)') + computed previewTarget com 3-way
|
|
branching: mobile -> #mag-main-preview-target (topo do main, acima de tudo,
|
|
DIFERENTE do MelissaNegocio que vai pro drawer); mid-desktop (1024-1339) ->
|
|
#mag-sidebar-preview-target (dentro da sidebar apos Status/Resumos);
|
|
wide-desktop (>=1340) -> #mag-floating-preview-target (painel flutuante glass
|
|
fora do fake dialog, 320px de largura, ancorado a +14px do right edge da
|
|
.mag-page). Adicionou regra `right: max(6px, min(50%, calc(100% - 1006px)))`
|
|
em .mag-page no @media >=1024px (necessario pra abrir espaco a direita pro
|
|
floating). CSS: .mag-floating-preview com glass igual ao fake dialog;
|
|
placeholders com display:contents; hide rules por breakpoint. Card de preview
|
|
usa mag-w--side e perde fundo/borda no floating (glass do painel ja faz papel).
|
|
ESLint 0 errors. Working tree: src/auto-imports.d.ts (auto-gerado) +
|
|
MelissaAgendador.vue. Nao commitado, nao testado em browser ainda.
|