--- # FRONTEND INVENTORY - Template SaaS # Version: 4.0.0 # Ultima actualizacion: 2026-01-24 # Nota: AUDITORIA DE COHERENCIA - Sincronizado con codigo real # IMPORTANTE: Sales (SAAS-018) y Commissions (SAAS-020) NO estan implementados en frontend metadata: proyecto: "template-saas" tipo: "FRONTEND" version: "4.0.0" updated: "2026-01-24" framework: "React 19.0.0 + Vite 6.0.6" styling: "Tailwind CSS 3.4.17" state: "Zustand 5.0.2" forms: "React Hook Form 7.54.2 + Zod" testing: "Vitest 4.0.17 + React Testing Library 16.3.1" estado: "parcial" nota_auditoria: "Inventario sincronizado con codigo real 2026-01-24" portals: - nombre: "user" descripcion: "Portal usuario final (Dashboard)" ruta: "/" estado: "completado" pages: - Dashboard - Profile - Settings - Notifications - Files (Storage) - AI Chat components: - DashboardLayout - Sidebar - Header - NotificationBell - FileUploader - AIChatWidget - nombre: "admin" descripcion: "Portal admin de tenant" ruta: "/admin" estado: "completado" pages: - AdminDashboard - TeamManagement - Billing - AuditLogs - FeatureFlags - Webhooks - Settings - WhatsAppSettings components: - AdminLayout - TeamTable - InviteModal - BillingCard - SubscriptionManager - AuditLogViewer - WebhookManager - WhatsAppTestMessage - nombre: "superadmin" descripcion: "Portal superadmin" ruta: "/superadmin" estado: "completado" pages: - SuperadminDashboard - TenantsManagement - SystemMetrics - PlansManagement - GlobalFeatureFlags components: - SuperadminLayout - TenantTable - MetricsCharts - PlanEditor - nombre: "onboarding" descripcion: "Wizard de onboarding 4 pasos" ruta: "/onboarding" estado: "completado" pages: - OnboardingWizard components: - CompanyStep - InviteStep - PlanStep - CompleteStep - WizardProgress - nombre: "auth" descripcion: "Autenticacion" ruta: "/auth" estado: "completado" pages: - Login - Register - ForgotPassword - ResetPassword - VerifyEmail components: - AuthLayout - LoginForm - RegisterForm - OAuthButtons - nombre: "sales" descripcion: "Sales Foundation - Leads, Oportunidades, Pipeline" ruta: "/sales" estado: "no_implementado" pages: [] components: [] nota: "SAAS-018 - DOCUMENTADO pero NO IMPLEMENTADO en frontend. Auditoria 2026-01-24" - nombre: "commissions" descripcion: "Commissions - Esquemas, Entradas, PerĂ­odos, Ganancias" ruta: "/commissions" estado: "no_implementado" pages: [] components: [] nota: "SAAS-020 - DOCUMENTADO pero NO IMPLEMENTADO en frontend. Auditoria 2026-01-24" shared: components: ui: nota: "NO IMPLEMENTADOS como wrappers - Se usa @headlessui/react y @heroicons/react directamente" implementados: [] planificados: - Button - Input - Select - Modal - Card - Table - Tabs - Badge - Avatar - Tooltip - Toast - Skeleton - Spinner - Alert - Dropdown forms: nota: "NO IMPLEMENTADOS - Se usa react-hook-form directamente" implementados: [] planificados: - FormField - FormError - FormLabel - FormSelect - FormTextarea - FormCheckbox layout: nota: "NO IMPLEMENTADOS como componentes separados" implementados: [] planificados: - PageHeader - PageContent - EmptyState - ErrorBoundary - LoadingState # Componentes realmente implementados (por categoria) ai: - AIChat.tsx - AISettings.tsx - ChatMessage.tsx analytics: - MetricCard.tsx - TrendChart.tsx audit: - ActivityTimeline.tsx - AuditFilters.tsx - AuditLogRow.tsx - AuditStatsCard.tsx auth: - OAuthButtons.tsx common: - ExportButton.tsx - ExportModal.tsx feature-flags: - FeatureFlagCard.tsx - FeatureFlagForm.tsx - TenantOverridesPanel.tsx notifications: - DevicesManager.tsx - NotificationBell.tsx - NotificationDrawer.tsx - NotificationItem.tsx - PushPermissionBanner.tsx storage: - FileItem.tsx - FileList.tsx - FileUpload.tsx - StorageUsageCard.tsx webhooks: - WebhookCard.tsx - WebhookDeliveryList.tsx - WebhookForm.tsx whatsapp: - WhatsAppTestMessage.tsx stores: nota_auditoria: "Solo 2 stores implementados de 5 documentados - Auditoria 2026-01-24" implementados: - nombre: "authStore" archivo: "auth.store.ts" estado: "parcial" actions_implementadas: - login - logout - setUser - setTokens - setLoading actions_faltantes: - refreshToken - updateProfile usa_persist: true storage_key: "auth-storage" - nombre: "uiStore" archivo: "ui.store.ts" estado: "completado" actions_implementadas: - toggleSidebar - setSidebarOpen - setTheme usa_persist: true storage_key: "ui-storage" nota: "NO DOCUMENTADO previamente - agregado en auditoria" no_implementados: - nombre: "tenantStore" estado: "no_implementado" actions_planificadas: - fetchTenant - updateTenant - switchTenant - nombre: "subscriptionStore" estado: "no_implementado" actions_planificadas: - fetchSubscription - updatePlan - cancelSubscription - nombre: "notificationStore" estado: "no_implementado" actions_planificadas: - fetchNotifications - markAsRead - subscribe - nombre: "featureFlagStore" estado: "no_implementado" actions_planificadas: - fetchFlags - evaluateFlag services: - nombre: "api (axios instance)" estado: "completado" - nombre: "auth.api" estado: "completado" - nombre: "tenants.api" estado: "completado" - nombre: "users.api" estado: "completado" - nombre: "billing.api" estado: "completado" - nombre: "notifications.api" estado: "completado" - nombre: "storage.api" estado: "completado" - nombre: "ai.api" estado: "completado" - nombre: "webhooks.api" estado: "completado" - nombre: "audit.api" estado: "completado" - nombre: "feature-flags.api" estado: "completado" - nombre: "plans.api" estado: "completado" - nombre: "onboarding.api" estado: "completado" - nombre: "whatsapp.api" estado: "completado" - nombre: "sales/leads.api" estado: "completado" - nombre: "sales/opportunities.api" estado: "completado" - nombre: "sales/activities.api" estado: "completado" - nombre: "sales/pipeline.api" estado: "completado" - nombre: "sales/dashboard.api" estado: "completado" - nombre: "commissions/schemes.api" estado: "completado" - nombre: "commissions/assignments.api" estado: "completado" - nombre: "commissions/entries.api" estado: "completado" - nombre: "commissions/periods.api" estado: "completado" - nombre: "commissions/dashboard.api" estado: "completado" hooks: auth: - useAuth - useCurrentUser - usePermissions - useRoles tenant: - useTenant - useTenantSettings billing: - useSubscription - usePlans - useInvoices - useBillingPortal notifications: - useNotifications - usePushNotifications - useDevices - useWebSocket storage: - useFiles - useUpload - useStorageUsage ai: - useAI - useAIChat - useAIUsage webhooks: - useWebhooks - useWebhookDeliveries audit: - useAuditLogs - useActivityLogs feature_flags: - useFeatureFlag - useFeatureFlags onboarding: - useOnboarding - useOnboardingStatus whatsapp: - useWhatsApp - useWhatsAppMessages sales: - useLeads - useLead - useCreateLead - useUpdateLead - useDeleteLead - useConvertLead - useOpportunities - useOpportunity - useCreateOpportunity - useUpdateOpportunity - useMoveOpportunity - useMarkAsWon - useMarkAsLost - usePipeline - usePipelineStages - useActivities - useCreateActivity - useCompleteActivity - useSalesSummary - useForecast commissions: - useSchemes - useActiveSchemes - useScheme - useCreateScheme - useUpdateScheme - useDeleteScheme - useDuplicateScheme - useToggleSchemeActive - useAssignments - useUserActiveScheme - useAssign - useDeactivateAssignment - useEntries - usePendingEntries - useCalculateCommission - useSimulateCommission - useBulkApprove - useBulkReject - usePeriods - useOpenPeriod - useCreatePeriod - useClosePeriod - useReopenPeriod - useMarkPeriodPaid - useCommissionsSummary - useMyEarnings - useTopEarners forms: - useForm - useFormField ui: - useModal - useToast - useDebounce - useClickOutside - useMediaQuery resumen: nota_auditoria: "Totales REALES basados en codigo - Auditoria 2026-01-24" total_pages: 27 total_components_implementados: 28 total_components_documentados_no_impl: 67 total_stores_implementados: 2 total_stores_no_implementados: 4 total_hooks_implementados: 17 total_hooks_documentados_no_impl: 47 total_api_services: 14 total_tests: 0 tests_pendientes: "Vitest setup pendiente" planificado: pages_actuales: 27 pages_objetivo: 27 components_actuales: 28 components_objetivo: 100 stores_actuales: 2 stores_objetivo: 6 hooks_actuales: 17 hooks_objetivo: 64 nota: "AUDITORIA: Sales y Commissions NO implementados en frontend" gaps_identificados: criticos: - "Portal Sales (SAAS-018): 0% implementado" - "Portal Commissions (SAAS-020): 0% implementado" - "Componentes UI base: No existen wrappers" altos: - "4 stores Zustand faltantes" - "authStore incompleto (falta refreshToken, updateProfile)" medios: - "Componentes Forms no implementados" - "Componentes Layout no implementados" dependencias_npm: core: - "react@18.x" - "react-dom@18.x" - "react-router-dom@6.x" - "vite" state: - "zustand" - "@tanstack/react-query" forms: - "react-hook-form" - "zod" - "@hookform/resolvers" styling: - "tailwindcss" - "@headlessui/react" - "@heroicons/react" utils: - "axios" - "date-fns" - "clsx" notifications: - "socket.io-client" ultima_actualizacion: "2026-01-24" actualizado_por: "Claude Opus 4.5 (Auditoria de Coherencia)" historial_cambios: - fecha: "2026-01-24" tipo: "auditoria" descripcion: "Sincronizacion con codigo real. Sales y Commissions marcados como no_implementados." agente: "Claude Opus 4.5"