trading-platform-frontend-v2/docs/auditorias/AUDITORIA-MIGRACION-STC-THEME.md
rckrdmrd 737303d177 Migración desde trading-platform/apps/frontend - Estándar multi-repo v2
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 08:32:49 -06:00

7.5 KiB

Auditoria: Migracion STC Theme (Gold/Black)

Sistema: SIMCO v3.8+ | Ciclo CAPVED Proyecto: trading-platform-frontend Fecha: 2026-01-13 Estado: COMPLETADO


1. Contexto (C)

1.1 Objetivo

Migrar el frontend de trading-platform al tema STC (Gold/Black) utilizando componentes shadcn/ui y Radix primitives, importando estilos y temas desde stc-platform-web.

1.2 Requisitos Originales

  • Tonalidades doradas/azules (NO blanco/negro/gris como colores primarios)
  • Integraciones Supabase
  • Plataforma SaaS
  • Componentes reutilizables y consistentes

1.3 Fuente de Referencia

  • Proyecto origen: stc-platform-web
  • Componentes: shadcn/ui con personalizacion STC

2. Analisis (A)

2.1 Componentes UI Necesarios

Componente Estado Accion
button.tsx Existia Migrado
card.tsx Existia Migrado
input.tsx Existia Migrado
label.tsx Existia Migrado
badge.tsx Existia Migrado
dialog.tsx Existia Migrado
select.tsx No existia Creado
progress.tsx Existia Modificado
skeleton.tsx No existia Creado
sheet.tsx No existia Creado
tabs.tsx Existia Migrado
avatar.tsx Existia Migrado
dropdown-menu.tsx Existia Migrado
separator.tsx Existia Migrado
switch.tsx Existia Migrado
textarea.tsx Existia Migrado
tooltip.tsx Existia Migrado
alert.tsx Existia Migrado
form.tsx Existia Migrado
scroll-area.tsx Existia Migrado
table.tsx Existia Migrado

2.2 Paginas a Migrar

Modulo Pagina Estado
auth ForgotPasswordPage.tsx Migrado
auth ResetPasswordPage.tsx Migrado
wallet WalletPage.tsx Migrado
wallet WalletCard.tsx Migrado
wallet TransactionList.tsx Migrado
wallet DepositModal.tsx Migrado
wallet WithdrawModal.tsx Migrado
products ProductsPage.tsx Migrado
products ProductGrid.tsx Migrado
products ProductCard.tsx Migrado
products CartSidebar.tsx Migrado
vip VipPage.tsx Migrado
investment InvestmentPage.tsx Migrado
predictions PredictionsPage.tsx Migrado

3. Planeacion (P)

3.1 Fases de Ejecucion

Fase 1: Infraestructura Base

  • Configurar tailwind.config.js con paleta STC
  • Configurar index.css con variables CSS
  • Actualizar index.html con clase dark

Fase 2: Componentes UI

  • Migrar 21 componentes shadcn/ui
  • Crear skeleton.tsx
  • Crear sheet.tsx
  • Modificar progress.tsx (indicatorClassName)

Fase 3: Modulos de Aplicacion

  • Migrar modulo auth
  • Migrar modulo wallet
  • Migrar modulo products
  • Migrar modulo vip
  • Migrar modulo investment
  • Migrar modulo predictions

Fase 4: Validacion y Documentacion

  • Validar build
  • Crear documentacion SIMCO

4. Validacion (V)

4.1 Errores Corregidos

Error 1: TS6133 - Import no utilizado (DepositModal.tsx)

// ANTES (ERROR)
import { X, Loader2 } from 'lucide-react';

// DESPUES (CORREGIDO)
import { Loader2 } from 'lucide-react';

Error 2: TS2307 - Modulo no encontrado (skeleton)

// ERROR
Cannot find module '@/components/ui/skeleton'

// SOLUCION
Creado src/components/ui/skeleton.tsx

Error 3: TS2322 - Prop inexistente (progress)

// ERROR
Property 'indicatorClassName' does not exist on type 'ProgressProps'

// SOLUCION
Modificado progress.tsx agregando interface extendida:
interface ProgressProps extends React.ComponentPropsWithoutRef<typeof ProgressPrimitive.Root> {
  indicatorClassName?: string;
}

Error 4: TS6133 - Import no utilizado (CartSidebar.tsx)

// ANTES (ERROR)
import { X, Trash2, Plus, Minus, Loader2 } from 'lucide-react';

// DESPUES (CORREGIDO)
import { Trash2, Plus, Minus, Loader2 } from 'lucide-react';

Error 5: TS2307 - Modulo no encontrado (sheet)

// ERROR
Cannot find module '@/components/ui/sheet'

// SOLUCION
Creado src/components/ui/sheet.tsx basado en Radix Dialog

Error 6: TS7006 - Tipo implicito any

// ANTES (ERROR)
onOpenChange={(open) => !open && onClose()}

// DESPUES (CORREGIDO)
onOpenChange={(open: boolean) => !open && onClose()}

4.2 Build Final

npm run build
✓ 1991 modules transformed.
dist/index.html                   0.62 kB │ gzip:   0.38 kB
dist/assets/index-CfdqD5v-.css   41.26 kB │ gzip:   8.09 kB
dist/assets/index-BFCqTQrb.js   502.71 kB │ gzip: 163.06 kB
✓ built in 2.85s

5. Ejecucion (E)

5.1 Componentes Creados

skeleton.tsx

import { cn } from "@/lib/utils"

function Skeleton({
  className,
  ...props
}: React.HTMLAttributes<HTMLDivElement>) {
  return (
    <div
      className={cn("animate-pulse rounded-md bg-primary/10", className)}
      {...props}
    />
  )
}

export { Skeleton }

sheet.tsx

  • Basado en @radix-ui/react-dialog
  • Variantes de posicion: top, bottom, left, right
  • Animaciones slide-in/slide-out
  • Overlay con blur

5.2 Componentes Modificados

progress.tsx

// Agregado interface extendida
interface ProgressProps extends React.ComponentPropsWithoutRef<typeof ProgressPrimitive.Root> {
  indicatorClassName?: string;
}

// Uso del prop en Indicator
<ProgressPrimitive.Indicator
  className={cn("h-full w-full flex-1 bg-primary transition-all", indicatorClassName)}
  style={{ transform: `translateX(-${100 - (value || 0)}%)` }}
/>

5.3 Patron de Tema Aplicado

Todas las paginas siguen el patron consistente:

// Contenedor principal
<div className="min-h-screen bg-background p-6">
  <div className="max-w-6xl mx-auto space-y-8">

    {/* Header con titulo gold */}
    <h1 className="text-3xl font-bold text-white">
      Titulo <span className="text-gold">Destacado</span>
    </h1>

    {/* Cards con tema dark */}
    <Card className="bg-primary-800 border-primary-700">
      <CardContent>
        <span className="text-gray-400">Label</span>
        <span className="text-white">Valor</span>
        <span className="text-gold">Destacado</span>
      </CardContent>
    </Card>

    {/* Gradientes gold para secciones destacadas */}
    <div className="bg-gradient-to-r from-gold/20 to-primary-700/50 rounded-xl border border-gold/30">
      ...
    </div>

  </div>
</div>

6. Documentacion (D)

6.1 Archivos Creados

  • docs/MASTER_INVENTORY.yml - Inventario completo de componentes
  • docs/auditorias/AUDITORIA-MIGRACION-STC-THEME.md - Este documento
  • docs/PROXIMA-ACCION.md - Siguientes pasos

6.2 Dependencias npm Agregadas

{
  "@radix-ui/react-dialog": "^1.1.14",
  "@radix-ui/react-dropdown-menu": "^2.1.15",
  "@radix-ui/react-label": "^2.1.7",
  "@radix-ui/react-progress": "^1.1.7",
  "@radix-ui/react-scroll-area": "^1.2.9",
  "@radix-ui/react-select": "^2.2.5",
  "@radix-ui/react-separator": "^1.1.7",
  "@radix-ui/react-slot": "^1.2.3",
  "@radix-ui/react-switch": "^1.2.5",
  "@radix-ui/react-tabs": "^1.1.12",
  "@radix-ui/react-tooltip": "^1.2.7",
  "class-variance-authority": "^0.7.1",
  "clsx": "^2.1.1",
  "lucide-react": "^0.511.0",
  "tailwind-merge": "^3.3.0"
}

7. Resumen Ejecutivo

Metrica Valor
Componentes UI migrados 21
Componentes UI creados 2 (skeleton, sheet)
Componentes UI modificados 1 (progress)
Paginas migradas 14
Errores TypeScript corregidos 6
Build final PASSED
Tiempo build 2.85s
Modulos transformados 1991

Estado Final: COMPLETADO Y VALIDADO