Skip to content

@alebat-education/ecom-components

Esta es la librería de componentes propia de Alebat Education. Proporciona todos los componentes visuales principales del proyecto — navbar, cards, sliders, modales, filtros, footer, video player, y más. Es un módulo de Nuxt 4 que se auto-registra.


Necesitas acceso al repositorio privado Alebat-Education/ecom-components en GitHub. Configura una SSH key vinculada a tu cuenta de GitHub con acceso a la organización, o un Personal Access Token (PAT) con permisos de lectura.

{
"dependencies": {
"@alebat-education/ecom-components": "github:Alebat-Education/ecom-components"
}
}

Se instala directamente desde GitHub (no está publicado en npm):

Terminal window
pnpm install

Si falla con “Permission denied” o “Repository not found”, tu SSH key o PAT no tiene acceso.

modules: [
['@alebat-education/ecom-components', { prefix: 'AE', includeTailwind: true }],
]

Integración con Tailwind (tailwind.config.ts)

Section titled “Integración con Tailwind (tailwind.config.ts)”

Debes incluir los archivos de la librería para que Tailwind detecte las clases usadas dentro de sus componentes:

content: [
'./node_modules/@alebat-education/ecom-components/app/**/*.{js,vue,ts}',
// ... otros paths del proyecto
]

Sin esto, los estilos internos de los componentes AE no se incluirán en el CSS final.


Terminal window
pnpm update @alebat-education/ecom-components --latest

Esto descarga el último commit del branch principal del repo GitHub. Después de actualizar:

  1. Verifica que la app compila (pnpm dev)
  2. Revisa visualmente las páginas principales (home, listados, detalle)
  3. Si hay breaking changes, el error aparecerá como props faltantes o componentes no encontrados

Al registrarse como módulo de Nuxt, la librería ejecuta automáticamente:

AcciónDetalle
Auto-registra componentesTodos los .vue del paquete se registran globalmente con prefijo AE
Inyecta CSSSi includeTailwind: true → inyecta tailwind.css (utilities) + variables.css (design tokens: 15 colores RGB, 9 variantes de fuente Neulis)
Auto-importa composablesuseCardBehavior, useCustomSwiper, usePdfEngine, useTimerCountdown
Registra directivasv-outside-click, v-shield (via plugin client-side)

No necesitas importar nada manualmente.


Simplemente escríbelo en el template con el prefijo AE:

<template>
<AEMainCard
:title="course.title"
:image="course.thumbnail"
:tag="course.category"
@click="navigateToCourse"
/>
</template>

No hay imports. Nuxt los resuelve automáticamente. Para conocer las props disponibles de cada componente, inspecciona el archivo fuente en node_modules/@alebat-education/ecom-components/app/components/.


OpciónDefaultDescripción
prefix'AE'Prefijo de los componentes en templates
includeTailwindtrueInyecta CSS del design system (colores, fuentes Neulis)

ComponenteDescripción
AENavbarBarra de navegación principal (desktop). Incluye logo, links, buscador, idioma, cuenta
AEMobileNavbarNavegación móvil con menú hamburguesa y drawer
AEFooterFooter global con links, logo, redes sociales
AESeparatorLínea divisoria visual entre secciones
AEScrollToTopArrowBotón flotante que aparece al hacer scroll para volver arriba
AEWhatsappButtonBotón flotante de contacto por WhatsApp
ComponenteDescripción
AEMainCardCard principal de producto/contenido — thumbnail, título, tag, CTA
AEMainCardMobileVariante compacta de card para móvil (horizontal)
AEMainCardGridGrid responsive que distribuye AEMainCard en columnas según breakpoint
AEMainCardSliderCarrusel horizontal de cards con navegación por flechas
AEViewCardCard de vista previa — más visual, menos texto, para destacados
AEChannelLogoCardCard con logo de canal/marca partner
ComponenteDescripción
AEHomeGradientSliderSlider hero de la home con fondo gradiente de marca
AEChannelsGradientSliderSlider de canales con gradiente personalizable
AEChannelLogosSliderSlider horizontal de logos de canales partner
AEBasicPagesSliderSlider genérico para secciones de contenido
AEProtagonistSliderSlider de tarjetas de expertos/instructores
ComponenteDescripción
AEActionAsidePanel lateral con botones de acción (comprar, suscribirse)
AEInformationAsidePanel lateral informativo (descripción, specs)
AEProductTabsTabs de información del producto (descripción, contenido, instructor)
AEProtagonistCardCard de perfil de instructor con foto, nombre, bio
AEProtagonistGridGrid de cards de expertos
ComponenteDescripción
AEContentFiltersBarra de filtros con categorías, especialidades, ordenamiento
AESearchBarInput de búsqueda con icono y debounce integrado
ComponenteDescripción
AEVimeoPlayerReproductor de video que soporta Vimeo embeds y HLS streaming
AEPdfReaderLector de PDF embebido con controles de página y zoom
ComponenteDescripción
AETheModalModal genérico — recibe contenido via slot, maneja overlay y cierre
AETheAlertToast de notificación — success/error, auto-cierre, posición fija
AESkeletonLoaderPlaceholder animado de carga (shimmer effect)
AECountdownLiveCuenta regresiva para eventos en vivo con formato dd:hh:mm:ss
AEFaqAcordeón de preguntas frecuentes con animación de apertura
ComponenteDescripción
AESubscriptionPopupContentPopup de upsell de suscripción (aparece tras login si aplica)
AEChoosePlanImagesSelector visual de planes de suscripción con imágenes
AEMainButtonBotón CTA principal con variantes (primary, secondary, outline)

Se auto-importan y puedes usarlos directamente:

ComposablePropósito
useCardBehavior()Maneja estados de interacción de cards (hover, pressed, focus)
useCustomSwiper()Retorna configuración pre-armada para sliders AE compatibles con Swiper
usePdfEngine()Inicializa y controla renderizado de PDFs con pdfjs-dist
useTimerCountdown()Cuenta regresiva reactiva con limpieza automática del interval

DirectivaUsoEjemplo
v-outside-clickEjecuta callback al hacer click fuera del elementoCerrar dropdown/popover
v-shieldProtege contenido (previene copiar, click derecho, inspeccionar)Contenido de suscripción

Puedes importar tipos de la librería para tipar datos:

import type { CarouselType } from '@alebat-education/ecom-components'

ProblemaSolución
”Component AEXxx not found”pnpm install, verifica que está en modules de nuxt.config
Estilos rotos / colores malVerifica includeTailwind: true y que el path está en tailwind.config.ts content
Error al instalarVerifica SSH key o PAT con acceso a la org Alebat-Education
Componente se ve pero sin estilosLas CSS variables de la vertical deben estar inyectadas (plugin initApp lo hace)

Componentes excluidos del auto-registro: PdfReader y PdfPageController no se auto-registran por su peso. Impórtalos explícitamente si los necesitas.