import { messages } from '../../../core/messages/index.js';
import { splitLines } from '../../../shared/helpers/index.js';
import { criarOcorrencia } from '../../../types/index.js';
export function detectarCorrecoesTailwind(src, _relPath) {
    const correcoes = [];
    const linhas = splitLines(src);
    linhas.forEach((linha, index) => {
        const numeroLinha = index + 1;
        const classMatch = linha.match(/\bclass(Name)?\s*=\s*["']([^"']*)["']/);
        if (classMatch) {
            const classes = classMatch[2].split(/\s+/).filter(Boolean);
            const unique = [...new Set(classes)];
            if (unique.length < classes.length) {
                correcoes.push({
                    tipo: 'tailwind-remove-duplicates',
                    original: `class="${classMatch[2]}"`,
                    sugerido: `class="${unique.join(' ')}"`,
                    linha: numeroLinha,
                    confianca: 95
                });
            }
        }
    });
    return correcoes;
}
export const correctionTailwind = {
    nome: 'correction-tailwind',
    categoria: 'estilo',
    descricao: 'Correções automáticas para problemas Tailwind',
    test: (relPath) => /\.(jsx|tsx|js|ts|html|astro)$/i.test(relPath),
    aplicar: (src, relPath) => {
        if (!src)
            return [];
        const correcoes = detectarCorrecoesTailwind(src, relPath);
        return correcoes.map(elem => criarOcorrencia({
            tipo: `correction-${elem.tipo}`,
            nivel: elem.confianca > 85 ? 'aviso' : 'info',
            mensagem: messages.SharedCommonMensagens.correcaoSugerida(elem.tipo),
            relPath,
            linha: elem.linha,
            sugestao: `[ERRO] ${elem.original}\n[OK] ${elem.sugerido}\nConfiança: ${elem.confianca}%`
        }));
    }
};
//# sourceMappingURL=correction-tailwind.js.map