export interface WebElementGroup { readonly family: string; readonly elements: readonly string[]; } /** Standard, non-obsolete native element names accepted by Web JSX. */ export declare const WEB_NATIVE_ELEMENT_GROUPS: readonly WebElementGroup[]; export declare const WEB_NATIVE_ELEMENTS: Set; /** Native elements in the HTML namespace (excluding the SVG and MathML groups). */ export declare const WEB_HTML_ELEMENTS: Set; export declare const WEB_VOID_ELEMENTS: Set; /** * HTML attributes whose ordinary bool form is expressed by presence. This is * the standard Boolean roster plus `hidden`, whose common bool use has the same * shape. It is deliberately not a list of every attribute with a missing-value * default: text-valued attributes such as `download` still own their strings. */ export declare const WEB_BOOL_PRESENCE_HTML_ATTRIBUTES: ReadonlySet; /** HTML custom elements use a lowercase name containing at least one hyphen. */ export declare function isWebCustomElementName(name: string): boolean; export interface WebAttributeSpelling { /** The VelarScript spelling this name is written as. */ readonly write: string; /** * A clause appended after the named spelling when one rename is not the whole * answer. Its presence is also the signal that no mechanical fix is offered: * an entry without a note is a pure attribute-name rewrite that keeps the * value as written, so `velar fix` can apply it. */ readonly note?: string; } /** * React and JavaScript-property attribute spellings that are definitively wrong * on a native element, mapped to the VelarScript spelling that replaces them. * * The roster is closed and hand written on purpose. An attribute name that is * merely unrecognised — `foo="bar"`, a framework's own `hx-*`, a `data-*` — is * never diagnosed, because HTML lets a document carry attributes no roster can * enumerate and a false positive there would block a correct program. Only a * name whose successor is known appears here. * * The lookup is exact-case and must stay that way. Most entries lowercase onto * the very spelling they name — `tabIndex`/`tabindex`, `readOnly`/`readonly`, * `charSet`/`charset` — so reading the roster case-insensitively, the way an * HTML parser reads an attribute name, would reject the correct spelling. * * SVG's legitimately camelCase attributes must never be added: `viewBox`, * `preserveAspectRatio`, `gradientUnits`, `gradientTransform`, `patternUnits`, * `attributeName`, `stdDeviation`, `clipPathUnits` and the rest of that family * are correct as written, and their absence from this map is the only thing * keeping them legal. */ export declare const WEB_MISSPELLED_ATTRIBUTES: ReadonlyMap; /** * The WAI-ARIA attribute names. ARIA differs from HTML in the way that matters * here: its vocabulary is closed, so an `aria-`-prefixed name outside this * roster is wrong rather than unrecognised, and saying so costs no correct * program. */ export declare const WEB_ARIA_ATTRIBUTES: ReadonlySet; /** * The single-token ARIA vocabularies. `aria-relevant` and `aria-dropeffect` are * deliberately absent: they take a space-separated token list, and a roster * checked as one word would reject a correct value. */ export declare const WEB_ARIA_ENUMERATED_VALUES: ReadonlyMap>; /** The ARIA role names. `role` accepts a space-separated fallback list, so each token is read against this roster. */ export declare const WEB_ARIA_ROLES: ReadonlySet; /** * ARIA role names that a later specification publishes as a second spelling of * a role already in the roster. VelarScript names one of the pair so a program * has one spelling per idea, and the message says so — calling a standardized * name "unknown" would state a falsehood about a published role. */ export declare const WEB_ARIA_ROLE_SYNONYMS: ReadonlyMap; //# sourceMappingURL=elements.d.ts.map