pub const SVG_CAMEL_ATTRS: &[(&str, &str)] = &[
("attributename", "attributeName"),
("attributetype", "attributeType"),
("basefrequency", "baseFrequency"),
("calcmode", "calcMode"),
("clippath", "clipPath"),
("clippathunits", "clipPathUnits"),
("diffuseconstant", "diffuseConstant"),
("edgemode", "edgeMode"),
("filterunits", "filterUnits"),
("gradienttransform", "gradientTransform"),
("gradientunits", "gradientUnits"),
("kernelmatrix", "kernelMatrix"),
("kernelunitlength", "kernelUnitLength"),
("keypoints", "keyPoints"),
("keysplines", "keySplines"),
("keytimes", "keyTimes"),
("lengthadjust", "lengthAdjust"),
("limitingconeangle", "limitingConeAngle"),
("markerheight", "markerHeight"),
("markerunits", "markerUnits"),
("markerwidth", "markerWidth"),
("maskunits", "maskUnits"),
("maskcontentunits", "maskContentUnits"),
("numoctaves", "numOctaves"),
("pathlength", "pathLength"),
("patterncontentunits", "patternContentUnits"),
("patterntransform", "patternTransform"),
("patternunits", "patternUnits"),
("pointsatx", "pointsAtX"),
("pointsaty", "pointsAtY"),
("pointsatz", "pointsAtZ"),
("preserveaspectratio", "preserveAspectRatio"),
("primitiveunits", "primitiveUnits"),
("refx", "refX"),
("refy", "refY"),
("repeatcount", "repeatCount"),
("repeatdur", "repeatDur"),
("specularconstant", "specularConstant"),
("specularexponent", "specularExponent"),
("spreadmethod", "spreadMethod"),
("startoffset", "startOffset"),
("stddeviation", "stdDeviation"),
("stitchtiles", "stitchTiles"),
("surfacescale", "surfaceScale"),
("systemlanguage", "systemLanguage"),
("tablevalues", "tableValues"),
("targetx", "targetX"),
("targety", "targetY"),
("textlength", "textLength"),
("viewbox", "viewBox"),
("xchannelselector", "xChannelSelector"),
("ychannelselector", "yChannelSelector"),
("zoomandpan", "zoomAndPan"),
];
#[inline]
pub fn canonical_svg_attr(lowercase_key: &str) -> Option<&'static str> {
SVG_CAMEL_ATTRS
.iter()
.find(|(lc, _)| *lc == lowercase_key)
.map(|(_, canonical)| *canonical)
}