@@ -114,11 +114,52 @@ export function HelpDialog({ open, onOpenChange }: HelpDialogProps) {
114114 </ div >
115115 </ div >
116116
117- { /* Rodapé: Sobre */ }
118- < div className = "mt-4 border-t border-border pt-3 " >
119- < p className = "text-xs text-muted-foreground text-center" >
117+ { /* Rodapé: Sobre + Desenvolvido por */ }
118+ < div className = "mt-4 border-t border-border pt-4 flex flex-col sm:flex-row items-center gap-4 " >
119+ < p className = "text-xs text-muted-foreground text-center sm:text-left flex-1 " >
120120 DAX Renderer converte fórmulas DAX em componentes HTML estilizados prontos para relatórios Power BI e dashboards analíticos.
121121 </ p >
122+
123+ { /* Card: Desenvolvido por */ }
124+ < a
125+ href = "https://www.linkedin.com/in/vilcimarpessoa/"
126+ target = "_blank"
127+ rel = "noopener noreferrer"
128+ className = "group relative flex items-center gap-3.5 rounded-2xl border border-border bg-surface px-4 py-3 shadow-[var(--shadow-card)] transition-all duration-300 hover:border-primary/40 hover:shadow-[var(--shadow-glow)] shrink-0 overflow-hidden"
129+ >
130+ { /* Brilho de fundo sutil no hover */ }
131+ < span className = "pointer-events-none absolute inset-0 rounded-2xl bg-gradient-to-br from-primary/5 to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-300" />
132+
133+ { /* Foto com anel gradiente azul premium */ }
134+ < div className = "relative shrink-0 z-10" >
135+ < div className = "rounded-full p-[1.5px] bg-gradient-to-r from-blue-400 via-primary to-blue-600 opacity-80" >
136+ < img
137+ src = "https://media.licdn.com/dms/image/v2/D4D03AQEAjBi8a2KfAg/profile-displayphoto-shrink_800_800/B4DZa0r8E7HEAc-/0/1746788140558?e=1781740800& v = beta & t = HgIlwY5a9JbPWNkGWyxzgK11WuJysCIWW9p631nyDdU "
138+ alt = "Vil Pessoa"
139+ className = "h-11 w-11 rounded-full object-cover block"
140+ />
141+ </ div >
142+ { /* Badge LinkedIn azul oficial */ }
143+ < span className = "absolute -bottom-1 -right-1 flex h-5 w-5 items-center justify-center rounded-md bg-[#0A66C2] shadow-sm" >
144+ < svg viewBox = "0 0 24 24" className = "h-3 w-3 fill-white" >
145+ < path d = "M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 0 1-2.063-2.065 2.064 2.064 0 1 1 2.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z" />
146+ </ svg >
147+ </ span >
148+ </ div >
149+
150+ { /* Texto */ }
151+ < div className = "min-w-0 z-10" >
152+ < p className = "text-[9px] font-semibold uppercase tracking-widest text-primary/70 leading-none mb-0.5" >
153+ Desenvolvido por
154+ </ p >
155+ < p className = "text-sm font-semibold text-foreground leading-tight group-hover:text-primary transition-colors duration-200" >
156+ Vil Pessoa
157+ </ p >
158+ < p className = "text-[10px] text-muted-foreground leading-tight mt-0.5" >
159+ Suporte · Dúvidas · Melhorias
160+ </ p >
161+ </ div >
162+ </ a >
122163 </ div >
123164 </ DialogContent >
124165 </ Dialog >
0 commit comments