feat: ecosistema FRASA — apps Cotizador, Alta Clientes, Cobranza y Landing

- Cotizador (/quote): 4 propuestas con formulas validadas del Excel, comparador,
  combobox de unidades, vigencia, PDF ANEXO A
- Alta Clientes (/client): wizard 8 pasos, validacion CURP RENAPO, OCR de INE,
  checklist de expediente, firma digital, 5 PDFs legales
- Cobranza (/pay): planes de enganche, mora, vista cobranza del dia, recibos PDF,
  bitacora, dashboard con filtros
- Landing (/): entrada al ecosistema
- Design system StudioBlank (monocromo, acento #1B4332) en las 4 apps
- 123 tests vitest
This commit is contained in:
2026-08-21 22:27:36 +00:00
commit ecd4edac02
147 changed files with 27345 additions and 0 deletions

View File

@@ -0,0 +1,29 @@
import { StrictMode } from 'react'
import { createRoot } from 'react-dom/client'
import { BrowserRouter, Route, Routes } from 'react-router-dom'
import '@fontsource/inter/300.css'
import '@fontsource/inter/400.css'
import '@fontsource/inter/500.css'
import '@fontsource/inter/700.css'
import './index.css'
import Layout from './components/Layout'
import DashboardPage from './pages/DashboardPage'
import HoyPage from './pages/HoyPage'
import PlanDetallePage from './pages/PlanDetallePage'
import NuevoPlanPage from './pages/NuevoPlanPage'
createRoot(document.getElementById('root')!).render(
<StrictMode>
<BrowserRouter basename="/pay">
<Layout>
<Routes>
<Route path="/" element={<DashboardPage />} />
<Route path="/hoy" element={<HoyPage />} />
<Route path="/planes/:id" element={<PlanDetallePage />} />
<Route path="/nuevo" element={<NuevoPlanPage />} />
<Route path="*" element={<DashboardPage />} />
</Routes>
</Layout>
</BrowserRouter>
</StrictMode>,
)