import { AttributeVisitorMixin, isBooleanAttribute, hasAttributeValue } from "./rule-utils.js";
class BooleanAttributesNoValueVisitor extends AttributeVisitorMixin {
    checkAttribute(attributeName, _attributeValue, attributeNode) {
        if (!isBooleanAttribute(attributeName))
            return;
        if (!hasAttributeValue(attributeNode))
            return;
        this.addOffense(`Boolean attribute \`${attributeName}\` should not have a value. Use \`${attributeName}\` instead of \`${attributeName}="${attributeName}"\`.`, attributeNode.value.location, "error");
    }
}
export class HTMLBooleanAttributesNoValueRule {
    name = "html-boolean-attributes-no-value";
    check(node) {
        const visitor = new BooleanAttributesNoValueVisitor(this.name);
        visitor.visit(node);
        return visitor.offenses;
    }
}
//# sourceMappingURL=html-boolean-attributes-no-value.js.map