Correcao Sidebar Classico e Rail, Correcao Layout, Ajuste de Breakpoint para Tailwind, Ajuste AppTopbar, Ajuste Menu PopOver, Recriado Paleta de Cores, Inserido algumas animações leves, Reajuste Cor items NOVOS da tabela, Drawer Ajuda Corrigido no Logout, Whatsapp, sms, email, recursos extras

This commit is contained in:
Leonardo
2026-03-24 21:26:58 -03:00
parent a89d1f5560
commit 53a4980396
453 changed files with 121427 additions and 174407 deletions
+43 -50
View File
@@ -18,67 +18,60 @@
// Menus com `to` em string são extraídos automaticamente.
// O menu da Clínica usa route names, então suas páginas são listadas manualmente.
import therapistMenuRaw from '@/navigation/menus/therapist.menu.js'
import saasMenuFn from '@/navigation/menus/saas.menu.js'
import therapistMenuRaw from '@/navigation/menus/therapist.menu.js';
import saasMenuFn from '@/navigation/menus/saas.menu.js';
function flattenItems (items = [], groupLabel = '') {
const result = []
for (const item of items) {
const to = item.to
if (to && typeof to === 'string' && item.label) {
const prefix = groupLabel ? `${groupLabel} · ` : ''
result.push({ label: `${prefix}${item.label}`, path: to })
function flattenItems(items = [], groupLabel = '') {
const result = [];
for (const item of items) {
const to = item.to;
if (to && typeof to === 'string' && item.label) {
const prefix = groupLabel ? `${groupLabel} · ` : '';
result.push({ label: `${prefix}${item.label}`, path: to });
}
if (item.items?.length) {
result.push(...flattenItems(item.items, item.label || groupLabel));
}
}
if (item.items?.length) {
result.push(...flattenItems(item.items, item.label || groupLabel))
}
}
return result
return result;
}
function flattenMenu (menu = []) {
const result = []
for (const group of menu) {
if (group.items?.length) {
result.push(...flattenItems(group.items, group.label))
} else if (group.to && typeof group.to === 'string' && group.label) {
result.push({ label: group.label, path: group.to })
function flattenMenu(menu = []) {
const result = [];
for (const group of menu) {
if (group.items?.length) {
result.push(...flattenItems(group.items, group.label));
} else if (group.to && typeof group.to === 'string' && group.label) {
result.push({ label: group.label, path: group.to });
}
}
}
return result
return result;
}
const therapistPages = flattenMenu(therapistMenuRaw)
.map(p => ({ ...p, label: `Terapeuta · ${p.label}` }))
const therapistPages = flattenMenu(therapistMenuRaw).map((p) => ({ ...p, label: `Terapeuta · ${p.label}` }));
const saasPages = flattenMenu(saasMenuFn({ isSaasAdmin: true }))
.map(p => ({ ...p, label: `SaaS · ${p.label}` }))
const saasPages = flattenMenu(saasMenuFn({ isSaasAdmin: true })).map((p) => ({ ...p, label: `SaaS · ${p.label}` }));
// Clínica usa route names → listagem manual com os paths reais das rotas
const clinicPages = [
{ label: 'Clínica · Dashboard', path: '/admin' },
{ label: 'Clínica · Agenda da Clínica', path: '/admin/agenda/clinica' },
{ label: 'Clínica · Compromissos', path: '/admin/agenda/compromissos' },
{ label: 'Clínica · Lista de Pacientes', path: '/admin/pacientes' },
{ label: 'Clínica · Grupos de Pacientes', path: '/admin/pacientes/grupos' },
{ label: 'Clínica · Tags de Pacientes', path: '/admin/pacientes/tags' },
{ label: 'Clínica · Link Externo', path: '/admin/pacientes/link-externo' },
{ label: 'Clínica · Cadastros Recebidos', path: '/admin/pacientes/cadastro/recebidos' },
{ label: 'Clínica · Profissionais', path: '/admin/clinic/professionals' },
{ label: 'Clínica · Tipos de Clínica', path: '/admin/clinic/features' },
{ label: 'Clínica · Meu Plano', path: '/admin/meu-plano' },
{ label: 'Clínica · Segurança', path: '/admin/settings/security' },
{ label: 'Clínica · Agendamento Online', path: '/admin/online-scheduling' },
]
{ label: 'Clínica · Dashboard', path: '/admin' },
{ label: 'Clínica · Agenda da Clínica', path: '/admin/agenda/clinica' },
{ label: 'Clínica · Compromissos', path: '/admin/agenda/compromissos' },
{ label: 'Clínica · Lista de Pacientes', path: '/admin/pacientes' },
{ label: 'Clínica · Grupos de Pacientes', path: '/admin/pacientes/grupos' },
{ label: 'Clínica · Tags de Pacientes', path: '/admin/pacientes/tags' },
{ label: 'Clínica · Link Externo', path: '/admin/pacientes/link-externo' },
{ label: 'Clínica · Cadastros Recebidos', path: '/admin/pacientes/cadastro/recebidos' },
{ label: 'Clínica · Profissionais', path: '/admin/clinic/professionals' },
{ label: 'Clínica · Tipos de Clínica', path: '/admin/clinic/features' },
{ label: 'Clínica · Meu Plano', path: '/admin/meu-plano' },
{ label: 'Clínica · Segurança', path: '/admin/settings/security' },
{ label: 'Clínica · Agendamento Online', path: '/admin/online-scheduling' }
];
const portalPages = [
{ label: 'Portal · Dashboard', path: '/portal' },
{ label: 'Portal · Minhas Sessões', path: '/portal/sessoes' },
]
{ label: 'Portal · Dashboard', path: '/portal' },
{ label: 'Portal · Minhas Sessões', path: '/portal/sessoes' }
];
export const PAGE_OPTIONS = [
...therapistPages,
...clinicPages,
...saasPages,
...portalPages,
]
export const PAGE_OPTIONS = [...therapistPages, ...clinicPages, ...saasPages, ...portalPages];