export { type AttrMap, type AttrValue, resolveAttrValue, } from "./resolveAttrValue"; import type { AttrMap } from "./resolveAttrValue"; /** * A plain attribute value — a string, number, or boolean. * - `true` → sets the attribute with an empty string value (boolean attribute) * - `false` → removes the attribute * - string/number → sets the attribute to that value */ type PlainValue = string | number | boolean; /** * Conditional attribute value (2-element tuple): * [condition, value] * The attribute is only applied when `condition` is truthy. * When falsy, the attribute is removed from the element. */ type ConditionalValue = [condition: unknown, value: PlainValue]; /** * Ternary attribute value (3-element tuple): * [condition, trueValue, falseValue] * Sets the attribute to `trueValue` when condition is truthy, * `falseValue` otherwise. */ type TernaryValue = [ condition: unknown, trueValue: PlainValue, falseValue: PlainValue ]; export type { PlainValue, ConditionalValue, TernaryValue }; /** * Declarative, conditional attribute directive for lit-html templates. * * Accepts a map of attribute names to values. Values can be: * - **plain**: always applied (`"aria-label": "Close"`) * - **boolean**: `true` sets the attribute (empty value), `false` removes it * (`disabled: isDisabled`) * - **conditional** (2-element array): applied only when condition is truthy * (`"aria-expanded": [isOpen, "true"]`) * - **ternary** (3-element array): picks between two values * (`"aria-pressed": [isActive, "true", "false"]`) * * Attributes whose conditions are falsy (or whose keys are removed between * renders) are automatically removed from the element. * * @example * ```ts * import { html } from "mates"; * import { attr } from "mates"; * * const isDisabled = false; * const isOpen = true; * * html` * * `; * ``` */ export declare function attr(attrs: AttrMap): import("lit-html/directive").DirectiveResult; /** No-op — kept for backwards compatibility. */ export declare function removeAttr(_el: Element): void; //# sourceMappingURL=attrDirective.d.ts.map