carousel, agenda arquivados, agenda cor, agenda arquivados, grupos pacientes, pacientes arquivados - desativados, sessoes verificadas, ajuste notificações, Prontuario, Agenda Animation, Menu Profile, bagdes Profile, Offline

This commit is contained in:
Leonardo
2026-03-18 09:26:09 -03:00
parent 66f67cd40f
commit d6d2fe29d1
55 changed files with 3655 additions and 1512 deletions
+2 -2
View File
@@ -183,7 +183,7 @@ function friendlyError (err) {
function safeRpcError (rpcError) {
const raw = (rpcError?.message || '').toString().trim()
// Por padrão: mensagem amigável. Se quiser ver a real, coloque em debugDetails.
// Por padrão: mensagem amigável. Se quiser ver a "real", coloque em debugDetails.
const friendly = friendlyError(rpcError)
return { friendly, raw }
}
@@ -241,7 +241,7 @@ async function acceptInvite (token) {
const { friendly, raw } = safeRpcError(error)
state.error = friendly
// Se você quiser ver a mensagem crua para debug, descomente a linha abaixo:
// Se você quiser ver a mensagem "crua" para debug, descomente a linha abaixo:
// state.debugDetails = raw
// Opcional: toast discreto
@@ -2,7 +2,7 @@
<div class="min-h-screen bg-gradient-to-b from-slate-950 via-slate-900 to-slate-950 text-slate-100">
<Toast />
<!-- Backdrop conceitual -->
<!-- "Backdrop" conceitual -->
<div class="pointer-events-none fixed inset-0 opacity-30">
<div class="absolute -top-24 left-1/2 h-72 w-72 -translate-x-1/2 rounded-full bg-emerald-400 blur-3xl" />
<div class="absolute top-40 left-16 h-56 w-56 rounded-full bg-indigo-400 blur-3xl" />
@@ -1233,7 +1233,7 @@ function validate () {
// Progress (conceitual e útil)
// ------------------------------------------------------
const progressPct = computed(() => {
// contagem simples e honesta: dá sensação de avanço sem gamificar demais
// contagem simples e honesta: dá sensação de avanço sem "gamificar demais"
const checks = [
!!cleanStr(form.nome_completo),
!!digitsOnly(form.telefone),
+3 -3
View File
@@ -64,7 +64,7 @@
<p class="mt-4 text-base md:text-lg text-[var(--text-color-secondary)] max-w-2xl leading-relaxed">
Centralize a rotina clínica em um lugar : pacientes, sessões, lembretes e indicadores.
O objetivo não é burocratizar: é deixar o consultório respirável.
O objetivo não é "burocratizar": é deixar o consultório respirável.
</p>
<div class="mt-6 flex flex-col sm:flex-row gap-2">
@@ -101,7 +101,7 @@
</div>
<div class="mt-6 text-xs text-[var(--text-color-secondary)]">
A diferença entre ter uma agenda e ter um sistema mora nos detalhes.
"A diferença entre ter uma agenda e ter um sistema mora nos detalhes."
</div>
</div>
@@ -322,7 +322,7 @@
<div>
<div class="font-semibold">3) Acompanhar</div>
<div class="text-sm text-[var(--text-color-secondary)] mt-1 leading-relaxed">
Financeiro e indicadores acompanham o movimento. Menos cadê?, mais previsibilidade.
Financeiro e indicadores acompanham o movimento. Menos "cadê?", mais previsibilidade.
</div>
<div class="mt-2">
<Tag severity="secondary" value="Recebimentos" />
+1 -1
View File
@@ -21,7 +21,7 @@ const email = ref('')
const password = ref('')
const loading = ref(false)
// validação simples (sem viajar)
// validação simples (sem "viajar")
const emailOk = computed(() => /\S+@\S+\.\S+/.test(String(email.value || '').trim()))
const passwordOk = computed(() => String(password.value || '').length >= 6)
const canSubmit = computed(() => !loading.value && emailOk.value && passwordOk.value)