{
  "examples": {
    "hero": {
      "badge": "Aprende con Ejemplos",
      "title": "Ejemplos",
      "subtitle": "Patrones del mundo real que realmente usarás en producción — en HTML puro."
    },
    "login": {
      "badge": "Intermedio",
      "title": "Login con JWT",
      "desc": "Un flujo de login completo: validación de formulario, POST al endpoint de autenticación, guardar el JWT en un store global, y adjuntar automáticamente el token a cada solicitud posterior mediante un interceptor de peticiones.",
      "signIn": "Iniciar sesión",
      "previewHint": "Completa ambos campos para probar la vista previa interactiva",
      "signedIn": "¡Sesión iniciada!",
      "signOut": "Cerrar sesión",
      "emailLabel": "Correo electrónico",
      "passwordLabel": "Contraseña"
    },
    "dashboard": {
      "badge": "Intermedio",
      "title": "Ruta Protegida y Validación de Token",
      "desc": "Una ruta protegida por el store de autenticación, combinada con un <strong>interceptor de respuesta</strong> que actúa como un script de control: en cada llamada a la API, si el servidor devuelve <code>401</code> o <code>403</code>, el token se invalida y el usuario es redirigido al login automáticamente — sin código adicional en la ruta misma.",
      "welcome": "Bienvenida de nuevo, Jane",
      "activeSession": "● Sesión activa",
      "requestsToday": "Solicitudes hoy",
      "errorRate": "Tasa de error",
      "uptime": "Tiempo activo",
      "activeUsers": "Usuarios activos",
      "interceptorNote": "Si alguna solicitud devuelve <code>401</code> o <code>403</code>, el interceptor limpia el token y redirige a <code>/login</code> automáticamente."
    },
    "search": {
      "badge": "Principiante",
      "title": "Búsqueda en Vivo",
      "desc": "Un campo de búsqueda instantánea que dispara una solicitud GET con debounce en cada pulsación de tecla, renderizando resultados reactivamente. Sin <code>addEventListener</code>, sin <code>setTimeout</code>, sin manipulación del DOM.",
      "noResults": "Sin resultados"
    },
    "cart": {
      "badge": "Intermedio",
      "title": "Carrito de Compras",
      "desc": "Un store global compartido entre una lista de productos y una insignia del carrito — en diferentes partes de la página. Cuando se agrega un producto, la insignia y el resumen del carrito se actualizan simultáneamente, sin necesidad de un event bus ni un componente compartido.",
      "products": "Productos",
      "cartLabel": "Carrito",
      "total": "Total",
      "addHint": "Agrega un producto para ver el carrito"
    },
    "polling": {
      "badge": "Principiante",
      "title": "Polling en Vivo",
      "desc": "Un panel de estado del servidor que se actualiza automáticamente cada 5 segundos usando el atributo <code>refresh</code>. Los estilos condicionales reaccionan instantáneamente al estado de salud actual — sin <code>setInterval</code>, sin bucle de <code>fetch</code>.",
      "serverStatus": "Estado del Servidor",
      "cpu": "CPU",
      "reqPerSec": "Sol/s",
      "errors": "Errores",
      "lastResponse": "Último tiempo de respuesta",
      "nextPoll": "Próximo refresh en",
      "refreshNote": "Se actualiza automáticamente vía <code>refresh=\"5000\"</code>",
      "onlineBadge": "En línea"
    },
    "cta": {
      "title": "¿Quieres Más Ejemplos?",
      "subtitle": "Consulta la documentación completa para patrones avanzados.",
      "viewDocs": "Ver Documentación",
      "github": "Repositorio en GitHub"
    }
  }
}
