fase 1 productizacion: capa de configuracion (glosario multi-giro, sucursales y categorias configurables, ajustes de clinica por instancia, colores de marca, horarios, URLs de pago dinamicas) + script de provisioning de instancia nueva con datos demo + frontend consumiendo la config

This commit is contained in:
2026-10-11 05:50:18 +00:00
parent 28118ce732
commit f92018f88e
50 changed files with 4314 additions and 210 deletions

View File

@@ -148,7 +148,7 @@ const menuLeaves = menuTree.flatMap((e) =>
export const ClasicoLayout: FC<LayoutProps> = ({ children, title: _title, subtitle: _subtitle }) => {
const location = useLocation();
const navigate = useNavigate();
const { user, canSee, hasRole, logout } = useAuth();
const { user, canSee, hasRole, logout, brand } = useAuth();
const [sidebarOpen, setSidebarOpen] = useState(false);
const chatUnread = useChatUnread();
@@ -515,8 +515,8 @@ export const ClasicoLayout: FC<LayoutProps> = ({ children, title: _title, subtit
style={{ backgroundColor: 'var(--header-bg)' }}
>
<div className="hidden lg:flex w-[230px] shrink-0 items-center px-5">
<span className="text-[26px] font-bold tracking-tight" style={{ color: '#333333' }}>
SKEEN<sup className="text-xs font-semibold">®</sup>
<span className="text-[26px] font-bold tracking-tight truncate" style={{ color: '#333333' }}>
{brand.nombre}
</span>
</div>
<div className="flex-1 flex items-center justify-between px-3 sm:px-4 min-w-0">
@@ -530,7 +530,7 @@ export const ClasicoLayout: FC<LayoutProps> = ({ children, title: _title, subtit
>
<Menu size={20} />
</Button>
<span className="lg:hidden text-lg font-bold truncate" style={{ color: '#333333' }}>SKEEN<sup className="text-[10px]">®</sup></span>
<span className="lg:hidden text-lg font-bold truncate" style={{ color: '#333333' }}>{brand.nombre}</span>
</div>
<div className="flex items-center space-x-2 sm:space-x-3 shrink-0">