From 8c1e754ab3e458601ff920209fdf0a81b5e765f8 Mon Sep 17 00:00:00 2001 From: Lizandro Guarnizo <77708265+lizandrogd@users.noreply.github.com> Date: Wed, 12 Aug 2026 20:03:51 -0500 Subject: [PATCH] =?UTF-8?q?feat:=20redise=C3=B1a=20el=20widget=20embebible?= =?UTF-8?q?=20(=C3=ADcono=20AI,=20color=20configurable,=20animaciones)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit El bubble era un emoji 💬 sobre un color fijo hardcodeado en el JS. Ahora: - Ícono nuevo (spark/sparkle, el motivo visual estándar de "asistente IA" hoy) en vez del emoji, con anillo de pulso al cargar para llamar la atención sin ser invasivo. - Color configurable por tenant (UmindTenant.Color, validado como hex en el server) — se aplica en tiempo real vía /widget/:site_key/init, así que cambiarlo desde el panel no requiere recopiar el - + +
diff --git a/rest/controllers/api/umind_widget_controller.go b/rest/controllers/api/umind_widget_controller.go index 55ec14b..37606cb 100644 --- a/rest/controllers/api/umind_widget_controller.go +++ b/rest/controllers/api/umind_widget_controller.go @@ -36,10 +36,15 @@ func UmindWidgetInit(c *fiber.Ctx) error { if bienvenida == "" { bienvenida = "¡Hola! ¿En qué puedo ayudarte?" } + color := strings.TrimSpace(tenant.Color) + if color == "" { + color = "#8eb02f" + } return c.JSON(fiber.Map{ "session_id": nuevaSessionID(), "nombre": tenant.Nombre, "mensaje_bienvenida": bienvenida, + "color": color, }) } @@ -96,55 +101,104 @@ const umindWidgetJS = `(function () { if (!siteKey) { console.error('[uMind] falta data-site en el