--- # FRONTEND INVENTORY - Template SaaS # Version: 3.1.0 # Ultima actualizacion: 2026-01-24 # Nota: Sales module (SAAS-018) added metadata: proyecto: "template-saas" tipo: "FRONTEND" version: "3.1.0" updated: "2026-01-24" framework: "React 18.x + Vite" styling: "Tailwind CSS" state: "Zustand" forms: "React Hook Form + Zod" testing: "Vitest + React Testing Library" estado: "completado" 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: "completado" pages: - SalesDashboard (/sales) - LeadsList (/sales/leads) - LeadDetail (/sales/leads/:id) - OpportunitiesPipeline (/sales/opportunities) - OpportunityDetail (/sales/opportunities/:id) - ActivitiesList (/sales/activities) components: - SalesDashboard - ConversionFunnel - LeadsList - LeadForm - LeadCard - PipelineBoard - OpportunityCard - OpportunityForm - ActivityTimeline - ActivityForm nota: "SAAS-018 - Implementado 2026-01-24" shared: components: ui: - Button - Input - Select - Modal - Card - Table - Tabs - Badge - Avatar - Tooltip - Toast - Skeleton - Spinner - Alert - Dropdown forms: - FormField - FormError - FormLabel - FormSelect - FormTextarea - FormCheckbox layout: - PageHeader - PageContent - EmptyState - ErrorBoundary - LoadingState stores: - nombre: "authStore" estado: "completado" actions: - login - logout - refreshToken - updateProfile - nombre: "tenantStore" estado: "completado" actions: - fetchTenant - updateTenant - switchTenant - nombre: "subscriptionStore" estado: "completado" actions: - fetchSubscription - updatePlan - cancelSubscription - nombre: "notificationStore" estado: "completado" actions: - fetchNotifications - markAsRead - subscribe - nombre: "featureFlagStore" estado: "completado" actions: - 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" 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 forms: - useForm - useFormField ui: - useModal - useToast - useDebounce - useClickOutside - useMediaQuery resumen: total_pages: 22 total_components: 88 total_stores: 5 total_hooks: 96 total_api_services: 19 total_tests: 0 tests_pendientes: "Vitest setup pendiente" planificado: pages_actuales: 22 pages_objetivo: 22 components_actuales: 88 components_objetivo: 90 hooks_actuales: 96 hooks_objetivo: 96 nota: "Sales module (SAAS-018) added 2026-01-24" 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 (SAAS-018 Sales Foundation)"