Migración v1 → v2

FerNotify v2.0.0 elimina todas las dependencias externas. La API pública no cambia, pero hay que actualizar la instalación.

Cambios principales

v1.x v2.0.0
anime.js Requerido (CDN) ❌ No necesario
Boxicons Requerido (CDN) ❌ No necesario
Iconos <i class="bx bx-..."> SVG inline
Animaciones anime.js CSS transitions nativas
API pública Sin cambios breaking

Pasos de migración

1. Eliminar dependencias externas del HTML

Antes (v1.x):

<head>
  <!-- Eliminar estas líneas: -->
  <link href="https://unpkg.com/boxicons@2.1.4/css/boxicons.min.css" rel="stylesheet">
</head>
<body>
  ...
  <!-- Eliminar esta línea: -->
  <script src="https://cdnjs.cloudflare.com/ajax/libs/animejs/3.2.1/anime.min.js"></script>
  <script src="https://cdn.jsdelivr.net/gh/Fernandocabal/fernotify@1.2.12/dist/notification-system.js"></script>
</body>

Después (v2.0.0):

<body>
  ...
  <!-- Solo este script, sin dependencias: -->
  <script src="https://cdn.jsdelivr.net/gh/Fernandocabal/fernotify@2.0.0/dist/notification-system.js"></script>
</body>

2. Actualizar npm (si usas npm)

npm install fernotify@latest

3. Actualizar la URL en imports ESM

// Antes:
import NotificationSystem from 'https://cdn.jsdelivr.net/gh/Fernandocabal/fernotify@1.2.12/dist/notification-system.esm.js';

// Después:
import NotificationSystem from 'https://cdn.jsdelivr.net/gh/Fernandocabal/fernotify@2.0.0/dist/notification-system.esm.js';

Cambios en easings

Los nombres de easing de anime.js siguen siendo válidos en v2 via un mapa interno. Sin embargo, algunos easings específicos de anime.js sin equivalente CSS son ignorados silenciosamente:

Easing v1 v2
easeOutQuad, easeInBack, etc. ✅ (anime.js) ✅ (cubic-bezier CSS)
easeInElastic, spring(...) ✅ (anime.js) ⚠️ Ignorado (fallback a ease)
cubic-bezier(...) ✅ (passthrough)
ease, ease-in, ease-out

Si usabas easings elásticos o de resorte, cámbialos por un cubic-bezier equivalente.


No hay cambios en la API

El código de tu aplicación no necesita cambios. Todos los métodos, opciones y callbacks son compatibles:

// Esto funciona igual en v1 y v2:
notify.success('¡Guardado!', 'Éxito');
notify.toastLoading('Cargando...');
await notify.closeToastLoading();
notify.show({ type: 'question', buttons: [...] });
¿Algo no funciona?

Si encuentras una regresión al migrar, abre un issue en GitHub.