From ccb6117618d363e48927206fca0c9b2c4a7e9d59 Mon Sep 17 00:00:00 2001 From: Bryce Kahle Date: Sat, 18 Jan 2014 17:08:45 -0500 Subject: [PATCH 1/3] Add elements to complete SVG 1.1 support Added missing elements from the list at http://www.w3.org/TR/SVG/eltindex.html --- docs/docs/ref-04-tags-and-attributes.md | 3 +- src/core/ReactDOM.js | 64 +++++++++++- src/vendor/core/getMarkupWrap.js | 128 +++++++++++++++++++++++- vendor/fbtransform/transforms/xjs.js | 63 ++++++++++++ 4 files changed, 253 insertions(+), 5 deletions(-) diff --git a/docs/docs/ref-04-tags-and-attributes.md b/docs/docs/ref-04-tags-and-attributes.md index a32b2bd200f..84895ddde7d 100644 --- a/docs/docs/ref-04-tags-and-attributes.md +++ b/docs/docs/ref-04-tags-and-attributes.md @@ -31,8 +31,7 @@ title tr track u ul var video wbr The following SVG elements are supported: ``` -circle defs g line linearGradient path polygon polyline radialGradient rect stop -svg text +altGlyph altGlyphDef altGlyphItem animate animateColor animateMotion animateTransform circle clipPath color-profile cursor defs desc feBlend feColorMatrix feComponentTransfer feComposite feConvolveMatrix feDiffuseLighting feDisplacementMap feDistantLight feFlood feFuncA feFuncB feFuncG feFuncR feGaussianBlur feImage feMerge feMergeNode feMorphology feOffset fePointLight feSpecularLighting feSpotLight feTile feTurbulence filter font font-face font-face-format font-face-name font-face-src font-face-uri foreignObject g glyph glyphRef hkern image line linearGradient marker mask metadata missing-glyph mpath path pattern polygon polyline radialGradient rect set stop switch symbol svg text textPath tref tspan use view vkern ``` diff --git a/src/core/ReactDOM.js b/src/core/ReactDOM.js index abe0630302a..053423ca49b 100644 --- a/src/core/ReactDOM.js +++ b/src/core/ReactDOM.js @@ -175,19 +175,81 @@ var ReactDOM = objMapKeyVal({ wbr: false, // SVG + altGlyph: false, + altGlyphDef: false, + altGlyphItem: false, + animate: false, + animateColor: false, + animateMotion: false, + animateTransform: false, circle: false, + clipPath: false, + 'color-profile': false, + cursor: false, defs: false, + desc: false, + feBlend: false, + feColorMatrix: false, + feComponentTransfer: false, + feComposite: false, + feConvolveMatrix: false, + feDiffuseLighting: false, + feDisplacementMap: false, + feDistantLight: false, + feFlood: false, + feFuncA: false, + feFuncB: false, + feFuncG: false, + feFuncR: false, + feGaussianBlur: false, + feImage: false, + feMerge: false, + feMergeNode: false, + feMorphology: false, + feOffset: false, + fePointLight: false, + feSpecularLighting: false, + feSpotLight: false, + feTile: false, + feTurbulence: false, + filter: false, + font: false, + 'font-face': false, + 'font-face-format': false, + 'font-face-name': false, + 'font-face-src': false, + 'font-face-uri': false, + foreignObject: false, g: false, + glyph: false, + glyphRef: false, + hkern: false, + image: false, line: false, linearGradient: false, + marker: false, + mask: false, + metadata: false, + 'missing-glyph': false, + mpath: false, path: false, + pattern: false, polygon: false, polyline: false, radialGradient: false, rect: false, + set: false, stop: false, + 'switch': false, svg: false, - text: false + symbol: false, + text: false, + textPath: false, + tref: false, + tspan: false, + use: false, + view: false, + vkern: false }, createDOMComponentClass); var injection = { diff --git a/src/vendor/core/getMarkupWrap.js b/src/vendor/core/getMarkupWrap.js index ece2b691df9..c26e3e2cf26 100644 --- a/src/vendor/core/getMarkupWrap.js +++ b/src/vendor/core/getMarkupWrap.js @@ -35,18 +35,80 @@ var dummyNode = var shouldWrap = { // Force wrapping for SVG elements because if they get created inside a
, // they will be initialized in the wrong namespace (and will not display). + 'altGlyph': true, + 'altGlyphDef': true, + 'altGlyphItem': true, + 'animate': true, + 'animateColor': true, + 'animateMotion': true, + 'animateTransform': true, 'circle': true, + 'clipPath': true, + 'color-profile': true, + 'cursor': true, 'defs': true, + 'desc': true, + 'feBlend': true, + 'feColorMatrix': true, + 'feComponentTransfer': true, + 'feComposite': true, + 'feConvolveMatrix': true, + 'feDiffuseLighting': true, + 'feDisplacementMap': true, + 'feDistantLight': true, + 'feFlood': true, + 'feFuncA': true, + 'feFuncB': true, + 'feFuncG': true, + 'feFuncR': true, + 'feGaussianBlur': true, + 'feImage': true, + 'feMerge': true, + 'feMergeNode': true, + 'feMorphology': true, + 'feOffset': true, + 'fePointLight': true, + 'feSpecularLighting': true, + 'feSpotLight': true, + 'feTile': true, + 'feTurbulence': true, + 'filter': true, + 'font': true, + 'font-face': true, + 'font-face-format': true, + 'font-face-name': true, + 'font-face-src': true, + 'font-face-uri': true, + 'foreignObject': true, 'g': true, + 'glyph': true, + 'glyphRef': true, + 'hkern': true, + 'image': true, 'line': true, 'linearGradient': true, + 'marker': true, + 'mask': true, + 'metadata': true, + 'missing-glyph': true, + 'mpath': true, 'path': true, + 'pattern': true, 'polygon': true, 'polyline': true, 'radialGradient': true, 'rect': true, + 'set': true, 'stop': true, - 'text': true + 'switch': true, + 'symbol': true, + 'text': true, + 'textPath': true, + 'tref': true, + 'tspan': true, + 'use': true, + 'view': true, + 'vkern': true }; var selectWrap = [1, '']; @@ -76,18 +138,80 @@ var markupWrap = { 'td': trWrap, 'th': trWrap, + 'altGlyph': svgWrap, + 'altGlyphDef': svgWrap, + 'altGlyphItem': svgWrap, + 'animate': svgWrap, + 'animateColor': svgWrap, + 'animateMotion': svgWrap, + 'animateTransform': svgWrap, 'circle': svgWrap, + 'clipPath': svgWrap, + 'color-profile': svgWrap, + 'cursor': svgWrap, 'defs': svgWrap, + 'desc': svgWrap, + 'feBlend': svgWrap, + 'feColorMatrix': svgWrap, + 'feComponentTransfer': svgWrap, + 'feComposite': svgWrap, + 'feConvolveMatrix': svgWrap, + 'feDiffuseLighting': svgWrap, + 'feDisplacementMap': svgWrap, + 'feDistantLight': svgWrap, + 'feFlood': svgWrap, + 'feFuncA': svgWrap, + 'feFuncB': svgWrap, + 'feFuncG': svgWrap, + 'feFuncR': svgWrap, + 'feGaussianBlur': svgWrap, + 'feImage': svgWrap, + 'feMerge': svgWrap, + 'feMergeNode': svgWrap, + 'feMorphology': svgWrap, + 'feOffset': svgWrap, + 'fePointLight': svgWrap, + 'feSpecularLighting': svgWrap, + 'feSpotLight': svgWrap, + 'feTile': svgWrap, + 'feTurbulence': svgWrap, + 'filter': svgWrap, + 'font': svgWrap, + 'font-face': svgWrap, + 'font-face-format': svgWrap, + 'font-face-name': svgWrap, + 'font-face-src': svgWrap, + 'font-face-uri': svgWrap, + 'foreignObject': svgWrap, 'g': svgWrap, + 'glyph': svgWrap, + 'glyphRef': svgWrap, + 'hkern': svgWrap, + 'image': svgWrap, 'line': svgWrap, 'linearGradient': svgWrap, + 'marker': svgWrap, + 'mask': svgWrap, + 'metadata': svgWrap, + 'missing-glyph': svgWrap, + 'mpath': svgWrap, 'path': svgWrap, + 'pattern': svgWrap, 'polygon': svgWrap, 'polyline': svgWrap, 'radialGradient': svgWrap, 'rect': svgWrap, + 'set': svgWrap, 'stop': svgWrap, - 'text': svgWrap + 'switch': svgWrap, + 'symbol': svgWrap, + 'text': svgWrap, + 'textPath': svgWrap, + 'tref': svgWrap, + 'tspan': svgWrap, + 'use': svgWrap, + 'view': svgWrap, + 'vkern': svgWrap }; /** diff --git a/vendor/fbtransform/transforms/xjs.js b/vendor/fbtransform/transforms/xjs.js index faa9fb40f33..2216eb3f18a 100644 --- a/vendor/fbtransform/transforms/xjs.js +++ b/vendor/fbtransform/transforms/xjs.js @@ -22,6 +22,13 @@ var knownTags = { a: true, abbr: true, address: true, + altGlyph: true, + altGlyphDef: true, + altGlyphItem: true, + animate: true, + animateColor: true, + animateMotion: true, + animateTransform: true, applet: true, area: true, article: true, @@ -40,15 +47,19 @@ var knownTags = { caption: true, circle: true, cite: true, + clipPath: true, code: true, col: true, colgroup: true, + 'color-profile': true, command: true, + cursor: true, data: true, datalist: true, dd: true, defs: true, del: true, + desc: true, details: true, dfn: true, dialog: true, @@ -58,12 +69,46 @@ var knownTags = { ellipse: true, em: true, embed: true, + feBlend: true, + feColorMatrix: true, + feComponentTransfer: true, + feComposite: true, + feConvolveMatrix: true, + feDiffuseLighting: true, + feDisplacementMap: true, + feDistantLight: true, + feFlood: true, + feFuncA: true, + feFuncB: true, + feFuncG: true, + feFuncR: true, + feGaussianBlur: true, + feImage: true, + feMerge: true, + feMergeNode: true, + feMorphology: true, + feOffset: true, + fePointLight: true, + feSpecularLighting: true, + feSpotLight: true, + feTile: true, + feTurbulence: true, fieldset: true, figcaption: true, figure: true, + filter: true, + font: true, + 'font-face': true, + 'font-face-format': true, + 'font-face-name': true, + 'font-face-src': true, + 'font-face-uri': true, footer: true, + foreignObject: true, form: true, g: true, + glyph: true, + glyphRef: true, h1: true, h2: true, h3: true, @@ -73,10 +118,12 @@ var knownTags = { head: true, header: true, hgroup: true, + hkern: true, hr: true, html: true, i: true, iframe: true, + image: true, img: true, input: true, ins: true, @@ -91,11 +138,16 @@ var knownTags = { main: true, map: true, mark: true, + marker: true, marquee: true, + mask: true, menu: true, menuitem: true, meta: true, + metadata: true, meter: true, + 'missing-glyph': true, + mpath: true, nav: true, noscript: true, object: true, @@ -106,6 +158,8 @@ var knownTags = { p: true, param: true, path: true, + pattern: true, + polygon: true, polyline: true, pre: true, progress: true, @@ -120,6 +174,7 @@ var knownTags = { script: true, section: true, select: true, + set: true, small: true, source: true, span: true, @@ -130,11 +185,14 @@ var knownTags = { summary: true, sup: true, svg: true, + 'switch': true, + symbol: true, table: true, tbody: true, td: true, text: true, textarea: true, + textPath: true, tfoot: true, th: true, thead: true, @@ -142,10 +200,15 @@ var knownTags = { title: true, tr: true, track: true, + tref: true, + tspan: true, u: true, ul: true, + use: true, 'var': true, video: true, + view: true, + vkern: true, wbr: true }; From 1103d6d848b6793a2a977d47fde0f7a4b66c654f Mon Sep 17 00:00:00 2001 From: Bryce Kahle Date: Sat, 18 Jan 2014 19:18:49 -0500 Subject: [PATCH 2/3] Add attributes to complete SVG 1.1 support All the attributes listed here except for the event related ones http://www.w3.org/TR/SVG/attindex.html --- docs/docs/ref-04-tags-and-attributes.md | 8 +- src/dom/DOMProperty.js | 24 ++ src/dom/DOMPropertyOperations.js | 3 + src/dom/DefaultDOMPropertyConfig.js | 370 +++++++++++++++++++++++- 4 files changed, 399 insertions(+), 6 deletions(-) diff --git a/docs/docs/ref-04-tags-and-attributes.md b/docs/docs/ref-04-tags-and-attributes.md index 84895ddde7d..a23a451b9dd 100644 --- a/docs/docs/ref-04-tags-and-attributes.md +++ b/docs/docs/ref-04-tags-and-attributes.md @@ -67,8 +67,10 @@ In addition, there is the React-specific attribute `dangerouslySetInnerHTML` ([m ### SVG Attributes +> Note: +> +> The `svgIn` attribute corresponds to the `in` attribute. + ``` -cx cy d fill fx fy gradientTransform gradientUnits offset points r rx ry -spreadMethod stopColor stopOpacity stroke strokeLinecap strokeWidth transform -version viewBox x1 x2 x y1 y2 y +accentHeight accumulate additive alignmentBaseline alphabetic amplitude arabicForm ascent attributeName attributeType azimuth baseFrequency baseProfile baselineShift bbox begin bias by calcMode capHeight clip clipPath clipPathUnits clipRule colorInterpolation colorInterpolationFilters colorProfile colorRendering contentScriptType contentStyleType cursor cx cy d descent diffuseConstant direction display divisor dominantBaseline dur dx dy edgeMode elevation enableBackground end exponent externalResourcesRequired fill fillOpacity fillRule filter filterRes filterUnits floodColor floodOpacity font fontFamily fontSize fontSizeAdjust fontStretch fontStyle fontVariant fontWeight format from fx fy g1 g2 glyphName glyphOrientationHorizontal glyphOrientationVertical glyphRef gradientTransform gradientUnits hanging horizAdvX horizOriginX horixOriginY ideographic imageRendering in2 intercept k k1 k2 k3 k4 kernelMatrix kernelUnitLength kerning keyPoints keySplines keyTimes lengthAdjust letterSpacing lightingColor limitingConeAngle local marker markerEnd markerHeight markerMid markerStart markerUnits markerWidth mask maskContentUnits maskUnits mathematical media mode numOctaves offset opacity operator order orient orientation origin overflow overlinePosition overlineThcikness panose1 path pathLength patternContentUnits patternTransform patternUnits pointerEvents points pointsAtX pointsAtY pointsAtZ preserveAlpha preserveAspectRatio primitiveUnits r radius refX refY renderingIntent repeatCount repeatDur repeatExtensions requiredExtensions requiredFeatures restart result rotate rx ry scale seed shapeRendering slope spacing specularConstant specularExponent spreadMethod startOffset stdDeviation stemh stemv stitchTiles stopColor stopOpacity strikethroughPosition strikethroughThickness string stroke strokeDasharray strokeDashoffset strokeLinecap strokeLinejoin strokeMiterlimit strokeOpacity strokeWidth surfaceScale svgIn systemLanguage tableValues targetX targetY textAnchor textDecoration textLength textRendering to transform u1 u2 underlinePosition underlineThickness unicode unicodeBidi unicodeRange unitsPerEm vAlphabetic vHanging vIdeographic vMathematical values version vertAdvY vertOriginX vertOriginY viewBox viewTarget visibility widths wordSpacing writingMode x1 x2 x xHeight xChannelSelector xlinkActuate xlinkArcrole xlinkHref xlinkShow xlinkTitle xlinkType xmlBase xmlLang xmlSpace y1 y2 y yChannelSelector z zoomAndPan ``` diff --git a/src/dom/DOMProperty.js b/src/dom/DOMProperty.js index 5f0ecf15964..e316187d365 100644 --- a/src/dom/DOMProperty.js +++ b/src/dom/DOMProperty.js @@ -33,6 +33,7 @@ var DOMPropertyInjection = { HAS_SIDE_EFFECTS: 0x4, HAS_BOOLEAN_VALUE: 0x8, HAS_POSITIVE_NUMERIC_VALUE: 0x10, + MUST_USE_NAMESPACED_ATTRIBUTE: 0x20, /** * Inject some specialized knowledge about the DOM. This takes a config object @@ -57,6 +58,9 @@ var DOMPropertyInjection = { * DOMMutationMethods: Properties that require special mutation methods. If * `value` is undefined, the mutation method should unset the property. * + * DOMAttributeNamespaces: attribute name to namespace mapping for attributes + * that require setAttributeNS() + * * @param {object} domPropertyConfig the config as described above. */ injectDOMPropertyConfig: function(domPropertyConfig) { @@ -64,6 +68,7 @@ var DOMPropertyInjection = { var DOMAttributeNames = domPropertyConfig.DOMAttributeNames || {}; var DOMPropertyNames = domPropertyConfig.DOMPropertyNames || {}; var DOMMutationMethods = domPropertyConfig.DOMMutationMethods || {}; + var DOMAttributeNamespaces = domPropertyConfig.DOMAttributeNamespaces || {}; if (domPropertyConfig.isCustomAttribute) { DOMProperty._isCustomAttributeFunctions.push( @@ -101,6 +106,11 @@ var DOMPropertyInjection = { DOMProperty.getMutationMethod[propName] = mutationMethod; } + var attributeNamespace = DOMAttributeNamespaces[propName]; + if (attributeNamespace) { + DOMProperty.getAttributeNamespace[propName] = attributeNamespace; + } + var propConfig = Properties[propName]; DOMProperty.mustUseAttribute[propName] = propConfig & DOMPropertyInjection.MUST_USE_ATTRIBUTE; @@ -112,6 +122,8 @@ var DOMPropertyInjection = { propConfig & DOMPropertyInjection.HAS_BOOLEAN_VALUE; DOMProperty.hasPositiveNumericValue[propName] = propConfig & DOMPropertyInjection.HAS_POSITIVE_NUMERIC_VALUE; + DOMProperty.mustUseNamespacedAttribute[propName] = + propConfig & DOMPropertyInjection.MUST_USE_NAMESPACED_ATTRIBUTE; invariant( !DOMProperty.mustUseAttribute[propName] || @@ -131,6 +143,18 @@ var DOMPropertyInjection = { 'DOMProperty: Cannot have both boolean and positive numeric value: %s', propName ); + invariant( + !DOMProperty.mustUseAttribute[propName] || + !DOMProperty.mustUseNamespacedAttribute[propName], + 'DOMProperty: Cannot use both attribute and namespaced attribute: %s', + propName + ); + invariant( + !DOMProperty.mustUseNamespacedAttribute[propName] || + !DOMProperty.mustUseProperty[propName], + 'DOMProperty: Cannot use both namespaced attribute and property: %s', + propName + ); } } }; diff --git a/src/dom/DOMPropertyOperations.js b/src/dom/DOMPropertyOperations.js index 595fe556d62..9ee1d4881ef 100644 --- a/src/dom/DOMPropertyOperations.js +++ b/src/dom/DOMPropertyOperations.js @@ -123,6 +123,9 @@ var DOMPropertyOperations = { mutationMethod(node, value); } else if (shouldIgnoreValue(name, value)) { this.deleteValueForProperty(node, name); + } else if (DOMProperty.mustUseNamespacedAttribute[name]) { + var ns = DOMProperty.getAttributeNamespace[name]; + node.setAttributeNS(ns, DOMProperty.getAttributeName[name], '' + value); } else if (DOMProperty.mustUseAttribute[name]) { node.setAttribute(DOMProperty.getAttributeName[name], '' + value); } else { diff --git a/src/dom/DefaultDOMPropertyConfig.js b/src/dom/DefaultDOMPropertyConfig.js index 1fae3153fdc..e1db168a1ac 100644 --- a/src/dom/DefaultDOMPropertyConfig.js +++ b/src/dom/DefaultDOMPropertyConfig.js @@ -28,6 +28,11 @@ var HAS_BOOLEAN_VALUE = DOMProperty.injection.HAS_BOOLEAN_VALUE; var HAS_SIDE_EFFECTS = DOMProperty.injection.HAS_SIDE_EFFECTS; var HAS_POSITIVE_NUMERIC_VALUE = DOMProperty.injection.HAS_POSITIVE_NUMERIC_VALUE; +var MUST_USE_NAMESPACED_ATTRIBUTE = + DOMProperty.injection.MUST_USE_NAMESPACED_ATTRIBUTE; + +var xmlNamespace = 'http://www.w3.org/XML/1998/namespace'; +var xlinkNamespace = 'http://www.w3.org/1999/xlink'; var DefaultDOMPropertyConfig = { isCustomAttribute: RegExp.prototype.test.bind( @@ -124,46 +129,393 @@ var DefaultDOMPropertyConfig = { /** * SVG Properties */ + accentHeight: MUST_USE_ATTRIBUTE, + accumulate: MUST_USE_ATTRIBUTE, + additive: MUST_USE_ATTRIBUTE, + alignmentBaseline: MUST_USE_ATTRIBUTE, + alphabetic: MUST_USE_ATTRIBUTE, + amplitude: MUST_USE_ATTRIBUTE, + arabicForm: MUST_USE_ATTRIBUTE, + ascent: MUST_USE_ATTRIBUTE, + attributeName: MUST_USE_ATTRIBUTE, + attributeType: MUST_USE_ATTRIBUTE, + azimuth: MUST_USE_ATTRIBUTE, + baseFrequency: MUST_USE_ATTRIBUTE, + baseProfile: MUST_USE_ATTRIBUTE, + baselineShift: MUST_USE_ATTRIBUTE, + bbox: MUST_USE_ATTRIBUTE, + begin: MUST_USE_ATTRIBUTE, + bias: MUST_USE_ATTRIBUTE, + by: MUST_USE_ATTRIBUTE, + calcMode: MUST_USE_ATTRIBUTE, + capHeight: MUST_USE_ATTRIBUTE, + clip: MUST_USE_ATTRIBUTE, + clipPath: MUST_USE_ATTRIBUTE, + clipPathUnits: MUST_USE_ATTRIBUTE, + clipRule: MUST_USE_ATTRIBUTE, + colorInterpolation: MUST_USE_ATTRIBUTE, + colorInterpolationFilters: MUST_USE_ATTRIBUTE, + colorProfile: MUST_USE_ATTRIBUTE, + colorRendering: MUST_USE_ATTRIBUTE, + contentScriptType: MUST_USE_ATTRIBUTE, + contentStyleType: MUST_USE_ATTRIBUTE, + cursor: MUST_USE_ATTRIBUTE, cx: MUST_USE_ATTRIBUTE, cy: MUST_USE_ATTRIBUTE, d: MUST_USE_ATTRIBUTE, + descent: MUST_USE_ATTRIBUTE, + diffuseConstant: MUST_USE_ATTRIBUTE, + direction: MUST_USE_ATTRIBUTE, + display: MUST_USE_ATTRIBUTE, + divisor: MUST_USE_ATTRIBUTE, + dominantBaseline: MUST_USE_ATTRIBUTE, + dur: MUST_USE_ATTRIBUTE, + dx: MUST_USE_ATTRIBUTE, + dy: MUST_USE_ATTRIBUTE, + edgeMode: MUST_USE_ATTRIBUTE, + elevation: MUST_USE_ATTRIBUTE, + enableBackground: MUST_USE_ATTRIBUTE, + end: MUST_USE_ATTRIBUTE, + exponent: MUST_USE_ATTRIBUTE, + externalResourcesRequired: MUST_USE_ATTRIBUTE, fill: MUST_USE_ATTRIBUTE, + fillOpacity: MUST_USE_ATTRIBUTE, + fillRule: MUST_USE_ATTRIBUTE, + filter: MUST_USE_ATTRIBUTE, + filterRes: MUST_USE_ATTRIBUTE, + filterUnits: MUST_USE_ATTRIBUTE, + floodColor: MUST_USE_ATTRIBUTE, + floodOpacity: MUST_USE_ATTRIBUTE, + font: MUST_USE_ATTRIBUTE, + fontFamily: MUST_USE_ATTRIBUTE, + fontSize: MUST_USE_ATTRIBUTE, + fontSizeAdjust: MUST_USE_ATTRIBUTE, + fontStretch: MUST_USE_ATTRIBUTE, + fontStyle: MUST_USE_ATTRIBUTE, + fontVariant: MUST_USE_ATTRIBUTE, + fontWeight: MUST_USE_ATTRIBUTE, + format: MUST_USE_ATTRIBUTE, + from: MUST_USE_ATTRIBUTE, fx: MUST_USE_ATTRIBUTE, fy: MUST_USE_ATTRIBUTE, + g1: MUST_USE_ATTRIBUTE, + g2: MUST_USE_ATTRIBUTE, + glyphName: MUST_USE_ATTRIBUTE, + glyphOrientationHorizontal: MUST_USE_ATTRIBUTE, + glyphOrientationVertical: MUST_USE_ATTRIBUTE, + glyphRef: MUST_USE_ATTRIBUTE, gradientTransform: MUST_USE_ATTRIBUTE, gradientUnits: MUST_USE_ATTRIBUTE, + hanging: MUST_USE_ATTRIBUTE, + horizAdvX: MUST_USE_ATTRIBUTE, + horizOriginX: MUST_USE_ATTRIBUTE, + horizOriginY: MUST_USE_ATTRIBUTE, + ideographic: MUST_USE_ATTRIBUTE, + imageRendering: MUST_USE_ATTRIBUTE, + svgIn: MUST_USE_ATTRIBUTE, + in2: MUST_USE_ATTRIBUTE, + intercept: MUST_USE_ATTRIBUTE, + k: MUST_USE_ATTRIBUTE, + k1: MUST_USE_ATTRIBUTE, + k2: MUST_USE_ATTRIBUTE, + k3: MUST_USE_ATTRIBUTE, + k4: MUST_USE_ATTRIBUTE, + kernelMatrix: MUST_USE_ATTRIBUTE, + kernelUnitLength: MUST_USE_ATTRIBUTE, + kerning: MUST_USE_ATTRIBUTE, + keyPoints: MUST_USE_ATTRIBUTE, + keySplines: MUST_USE_ATTRIBUTE, + keyTimes: MUST_USE_ATTRIBUTE, + lengthAdjust: MUST_USE_ATTRIBUTE, + letterSpacing: MUST_USE_ATTRIBUTE, + lightingColor: MUST_USE_ATTRIBUTE, + limitingConeAngle: MUST_USE_ATTRIBUTE, + local: MUST_USE_ATTRIBUTE, + marker: MUST_USE_ATTRIBUTE, + markerEnd: MUST_USE_ATTRIBUTE, + markerHeight: MUST_USE_ATTRIBUTE, + markerMid: MUST_USE_ATTRIBUTE, + markerStart: MUST_USE_ATTRIBUTE, + markerUnits: MUST_USE_ATTRIBUTE, + markerWidth: MUST_USE_ATTRIBUTE, + mask: MUST_USE_ATTRIBUTE, + maskContentUnits: MUST_USE_ATTRIBUTE, + maskUnits: MUST_USE_ATTRIBUTE, + mathematical: MUST_USE_ATTRIBUTE, + media: MUST_USE_ATTRIBUTE, + mode: MUST_USE_ATTRIBUTE, + numOctaves: MUST_USE_ATTRIBUTE, offset: MUST_USE_ATTRIBUTE, + opacity: MUST_USE_ATTRIBUTE, + operator: MUST_USE_ATTRIBUTE, + order: MUST_USE_ATTRIBUTE, + orient: MUST_USE_ATTRIBUTE, + orientation: MUST_USE_ATTRIBUTE, + origin: MUST_USE_ATTRIBUTE, + overflow: MUST_USE_ATTRIBUTE, + overlinePosition: MUST_USE_ATTRIBUTE, + overlineThickness: MUST_USE_ATTRIBUTE, + panose1: MUST_USE_ATTRIBUTE, + path: MUST_USE_ATTRIBUTE, + pathLength: MUST_USE_ATTRIBUTE, + patternContentUnits: MUST_USE_ATTRIBUTE, + patternTransform: MUST_USE_ATTRIBUTE, + patternUnits: MUST_USE_ATTRIBUTE, + pointerEvents: MUST_USE_ATTRIBUTE, points: MUST_USE_ATTRIBUTE, + pointsAtX: MUST_USE_ATTRIBUTE, + pointsAtY: MUST_USE_ATTRIBUTE, + pointsAtZ: MUST_USE_ATTRIBUTE, + preserveAlpha: MUST_USE_ATTRIBUTE, + preserveAspectRatio: MUST_USE_ATTRIBUTE, + primitiveUnits: MUST_USE_ATTRIBUTE, r: MUST_USE_ATTRIBUTE, + radius: MUST_USE_ATTRIBUTE, + refX: MUST_USE_ATTRIBUTE, + refY: MUST_USE_ATTRIBUTE, + renderingIntent: MUST_USE_ATTRIBUTE, + repeatCount: MUST_USE_ATTRIBUTE, + repeatDur: MUST_USE_ATTRIBUTE, + repeatExtensions: MUST_USE_ATTRIBUTE, + requiredExtensions: MUST_USE_ATTRIBUTE, + requiredFeatures: MUST_USE_ATTRIBUTE, + restart: MUST_USE_ATTRIBUTE, + result: MUST_USE_ATTRIBUTE, + rotate: MUST_USE_ATTRIBUTE, rx: MUST_USE_ATTRIBUTE, ry: MUST_USE_ATTRIBUTE, + scale: MUST_USE_ATTRIBUTE, + seed: MUST_USE_ATTRIBUTE, + shapeRendering: MUST_USE_ATTRIBUTE, + slope: MUST_USE_ATTRIBUTE, + spacing: MUST_USE_ATTRIBUTE, + specularConstant: MUST_USE_ATTRIBUTE, + specularExponent: MUST_USE_ATTRIBUTE, spreadMethod: MUST_USE_ATTRIBUTE, + startOffset: MUST_USE_ATTRIBUTE, + stdDeviation: MUST_USE_ATTRIBUTE, + stemh: MUST_USE_ATTRIBUTE, + stemv: MUST_USE_ATTRIBUTE, + stitchTiles: MUST_USE_ATTRIBUTE, stopColor: MUST_USE_ATTRIBUTE, stopOpacity: MUST_USE_ATTRIBUTE, + strikethroughPosition: MUST_USE_ATTRIBUTE, + strikethroughThickness: MUST_USE_ATTRIBUTE, + string: MUST_USE_ATTRIBUTE, stroke: MUST_USE_ATTRIBUTE, + strokeDasharray: MUST_USE_ATTRIBUTE, + strokeDashoffset: MUST_USE_ATTRIBUTE, strokeLinecap: MUST_USE_ATTRIBUTE, + strokeLinejoin: MUST_USE_ATTRIBUTE, + strokeMiterlimit: MUST_USE_ATTRIBUTE, + strokeOpacity: MUST_USE_ATTRIBUTE, strokeWidth: MUST_USE_ATTRIBUTE, + surfaceScale: MUST_USE_ATTRIBUTE, + systemLanguage: MUST_USE_ATTRIBUTE, + tableValues: MUST_USE_ATTRIBUTE, + targetX: MUST_USE_ATTRIBUTE, + targetY: MUST_USE_ATTRIBUTE, + textAnchor: MUST_USE_ATTRIBUTE, + textDecoration: MUST_USE_ATTRIBUTE, + textLength: MUST_USE_ATTRIBUTE, + textRendering: MUST_USE_ATTRIBUTE, + to: MUST_USE_ATTRIBUTE, transform: MUST_USE_ATTRIBUTE, + u1: MUST_USE_ATTRIBUTE, + u2: MUST_USE_ATTRIBUTE, + underlinePosition: MUST_USE_ATTRIBUTE, + underlineThickness: MUST_USE_ATTRIBUTE, + unicode: MUST_USE_ATTRIBUTE, + unicodeBidi: MUST_USE_ATTRIBUTE, + unicodeRange: MUST_USE_ATTRIBUTE, + unitsPerEm: MUST_USE_ATTRIBUTE, + vAlphabetic: MUST_USE_ATTRIBUTE, + vHanging: MUST_USE_ATTRIBUTE, + vIdeographic: MUST_USE_ATTRIBUTE, + vMathematical: MUST_USE_ATTRIBUTE, + values: MUST_USE_ATTRIBUTE, version: MUST_USE_ATTRIBUTE, + vertAdvY: MUST_USE_ATTRIBUTE, + vertOriginX: MUST_USE_ATTRIBUTE, + vertOriginY: MUST_USE_ATTRIBUTE, viewBox: MUST_USE_ATTRIBUTE, + viewTarget: MUST_USE_ATTRIBUTE, + visibility: MUST_USE_ATTRIBUTE, + widths: MUST_USE_ATTRIBUTE, + wordSpacing: MUST_USE_ATTRIBUTE, + writingMode: MUST_USE_ATTRIBUTE, x1: MUST_USE_ATTRIBUTE, x2: MUST_USE_ATTRIBUTE, x: MUST_USE_ATTRIBUTE, + xHeight: MUST_USE_ATTRIBUTE, + xChannelSelector: MUST_USE_ATTRIBUTE, + xlinkActuate: MUST_USE_NAMESPACED_ATTRIBUTE, + xlinkArcrole: MUST_USE_NAMESPACED_ATTRIBUTE, + xlinkHref: MUST_USE_NAMESPACED_ATTRIBUTE, + xlinkRole: MUST_USE_NAMESPACED_ATTRIBUTE, + xlinkShow: MUST_USE_NAMESPACED_ATTRIBUTE, + xlinkTitle: MUST_USE_NAMESPACED_ATTRIBUTE, + xlinkType: MUST_USE_NAMESPACED_ATTRIBUTE, + xmlBase: MUST_USE_NAMESPACED_ATTRIBUTE, + xmlLang: MUST_USE_NAMESPACED_ATTRIBUTE, + xmlSpace: MUST_USE_NAMESPACED_ATTRIBUTE, y1: MUST_USE_ATTRIBUTE, y2: MUST_USE_ATTRIBUTE, - y: MUST_USE_ATTRIBUTE + y: MUST_USE_ATTRIBUTE, + yChannelSelector: MUST_USE_ATTRIBUTE, + z: MUST_USE_ATTRIBUTE, + zoomAndPan: MUST_USE_ATTRIBUTE }, DOMAttributeNames: { className: 'class', + htmlFor: 'for', + + /** + * SVG + */ + accentHeight: 'accent-height', + alignmentBaseline: 'alignment-baseline', + arabicForm: 'arabic-form', + attributeName: 'attributeName', + attributeType: 'attributeType', + baseFrequency: 'baseFrequency', + baseProfile: 'baseProfile', + baselineShift: 'baseline-shift', + calcMode: 'calcMode', + capHeight: 'cap-height', + clipPath: 'clip-path', + clipPathUnits: 'clipPathUnits', + clipRule: 'clip-rule', + colorInterpolation: 'color-interpolation', + colorInterpolationFilters: 'color-interpolation-filters', + colorProfile: 'color-profile', + colorRendering: 'color-rendering', + contentScriptType: 'contentScriptType', + contentStyleType: 'contentStyleType', + diffuseConstant: 'diffuseConstant', + dominantBaseline: 'dominant-baseline', + edgeMode: 'edgeMode', + enableBackground: 'enable-background', + externalResourcesRequired: 'externalResourcesRequired', + fillOpacity: 'fill-opacity', + fillRule: 'fill-rule', + filterRes: 'filterRes', + filterUnits: 'filterUnits', + floodColor: 'flood-color', + floodOpacity: 'flood-opacity', + fontFamily: 'font-family', + fontSize: 'font-size', + fontSizeAdjust: 'font-size-adjust', + fontStretch: 'font-stretch', + fontStyle: 'font-style', + fontVariant: 'font-variant', + fontWeight: 'font-weight', + glyphName: 'glyph-name', + glyphOrientationHorizontal: 'glyph-orientation-horizontal', + glyphOrientationVertical: 'glyph-orientation-vertical', + glyphRef: 'glyphRef', gradientTransform: 'gradientTransform', gradientUnits: 'gradientUnits', - htmlFor: 'for', + horizAdvX: 'horiz-adv-x', + horizOriginX: 'horiz-origin-x', + horizOriginY: 'horiz-origin-y', + imageRendering: 'image-rendering', + svgIn: 'in', + kernelMatrix: 'kernelMatrix', + kernelUnitLength: 'kernelUnitLength', + keyPoints: 'keyPoints', + keySplines: 'keySplines', + keyTimes: 'keyTimes', + lengthAdjust: 'lengthAdjust', + letterSpacing: 'letterSpacing', + lightingColor: 'lighting-color', + limitingConeAngle: 'limitingConeAngle', + markerEnd: 'marker-end', + markerHeight: 'markerHeight', + markerMid: 'marker-mid', + markerStart: 'marker-start', + markerUnits: 'markerUnits', + markerWidth: 'markerWidth', + maskContentUnits: 'maskContentUnits', + maskUnits: 'maskUnits', + numOctaves: 'numOctaves', + overlinePosition: 'overline-position', + overlineThickness: 'overline-thickness', + panose1: 'panose-1', + pathLength: 'pathLength', + patternContentUnits: 'patternContentUnits', + patternTransform: 'patternTransform', + patternUnits: 'patternUnits', + pointerEvents: 'pointer-events', + pointsAtX: 'pointsAtX', + pointsAtY: 'pointsAtY', + pointsAtZ: 'pointsAtZ', + preserveAlpha: 'preserveAlpha', + preserveAspectRatio: 'preserveAspectRatio', + primitiveUnits: 'primitiveUnits', + refX: 'refX', + refY: 'refY', + renderingIntent: 'rendering-intent', + repeatCount: 'repeatCount', + repeatDur: 'repeatDur', + requiredExtensions: 'requiredExtensions', + requiredFeatures: 'requiredFeatures', + shapeRendering: 'shape-rendering', + specularConstant: 'specularConstant', + specularExponent: 'specularExponent', spreadMethod: 'spreadMethod', + startOffset: 'startOffset', + stdDeviation: 'stdDeviation', + stitchTiles: 'stitchTiles', stopColor: 'stop-color', stopOpacity: 'stop-opacity', + strikethroughPosition: 'strikethrough-position', + strikethroughThickness: 'strikethrough-thickness', + strokeDasharray: 'stroke-dasharray', + strokeDashoffset: 'stroke-dashoffset', strokeLinecap: 'stroke-linecap', + strokeLinejoin: 'stroke-linejoin', + strokeMiterlimit: 'stroke-miterlimit', strokeWidth: 'stroke-width', - viewBox: 'viewBox' + surfaceScale: 'surfaceScale', + systemLanguage: 'systemLanguage', + tableValues: 'tableValues', + targetX: 'targetX', + targetY: 'targetY', + textAnchor: 'text-anchor', + textDecoration: 'text-decoration', + textLength: 'textLength', + textRendering: 'text-rendering', + underlinePosition: 'underline-position', + underlineThickness: 'underline-thickness', + unicodeBidi: 'unicode-bidi', + unicodeRange: 'unicode-range', + unitsPerEm: 'units-per-em', + vAlphabetic: 'v-alphabetic', + vHanging: 'v-hanging', + vIdeographic: 'v-ideographic', + vMathematical: 'v-mathematical', + vertAdvY: 'vert-adv-y', + vertOriginX: 'vert-origin-x', + vertOriginY: 'vert-origin-y', + viewBox: 'viewBox', + viewTarget: 'viewTarget', + wordSpacing: 'word-spacing', + writingMode: 'writingMode', + xHeight: 'x-height', + xChannelSelector: 'xChannelSelector', + xlinkActuate: 'actuate', + xlinkArcrole: 'arcrole', + xlinkHref: 'href', + xlinkRole: 'role', + xlinkShow: 'show', + xlinkTitle: 'title', + xlinkType: 'type', + xmlBase: 'base', + xmlLang: 'lang', + xmlSpace: 'space', + yChannelSelector: 'yChannelSelector', + zoomAndPan: 'zoomAndPan' }, DOMPropertyNames: { autoCapitalize: 'autocapitalize', @@ -175,6 +527,18 @@ var DefaultDOMPropertyConfig = { radioGroup: 'radiogroup', spellCheck: 'spellcheck' }, + DOMAttributeNamespaces: { + xlinkActuate: xlinkNamespace, + xlinkArcrole: xlinkNamespace, + xlinkHref: xlinkNamespace, + xlinkRole: xlinkNamespace, + xlinkShow: xlinkNamespace, + xlinkTitle: xlinkNamespace, + xlinkType: xlinkNamespace, + xmlBase: xmlNamespace, + xmlLang: xmlNamespace, + xmlSpace: xmlNamespace + }, DOMMutationMethods: { /** * Setting `className` to null may cause it to be set to the string "null". From 4e4d60e6671aa766ee05131758c43693871b5db7 Mon Sep 17 00:00:00 2001 From: Bryce Kahle Date: Thu, 23 Jan 2014 12:11:42 -0500 Subject: [PATCH 3/3] Remove attributes that can be set via CSS Everything listed here http://www.w3.org/TR/SVG/propidx.html --- docs/docs/ref-04-tags-and-attributes.md | 2 +- src/dom/DefaultDOMPropertyConfig.js | 104 ------------------------ 2 files changed, 1 insertion(+), 105 deletions(-) diff --git a/docs/docs/ref-04-tags-and-attributes.md b/docs/docs/ref-04-tags-and-attributes.md index a23a451b9dd..cd2079699d9 100644 --- a/docs/docs/ref-04-tags-and-attributes.md +++ b/docs/docs/ref-04-tags-and-attributes.md @@ -72,5 +72,5 @@ In addition, there is the React-specific attribute `dangerouslySetInnerHTML` ([m > The `svgIn` attribute corresponds to the `in` attribute. ``` -accentHeight accumulate additive alignmentBaseline alphabetic amplitude arabicForm ascent attributeName attributeType azimuth baseFrequency baseProfile baselineShift bbox begin bias by calcMode capHeight clip clipPath clipPathUnits clipRule colorInterpolation colorInterpolationFilters colorProfile colorRendering contentScriptType contentStyleType cursor cx cy d descent diffuseConstant direction display divisor dominantBaseline dur dx dy edgeMode elevation enableBackground end exponent externalResourcesRequired fill fillOpacity fillRule filter filterRes filterUnits floodColor floodOpacity font fontFamily fontSize fontSizeAdjust fontStretch fontStyle fontVariant fontWeight format from fx fy g1 g2 glyphName glyphOrientationHorizontal glyphOrientationVertical glyphRef gradientTransform gradientUnits hanging horizAdvX horizOriginX horixOriginY ideographic imageRendering in2 intercept k k1 k2 k3 k4 kernelMatrix kernelUnitLength kerning keyPoints keySplines keyTimes lengthAdjust letterSpacing lightingColor limitingConeAngle local marker markerEnd markerHeight markerMid markerStart markerUnits markerWidth mask maskContentUnits maskUnits mathematical media mode numOctaves offset opacity operator order orient orientation origin overflow overlinePosition overlineThcikness panose1 path pathLength patternContentUnits patternTransform patternUnits pointerEvents points pointsAtX pointsAtY pointsAtZ preserveAlpha preserveAspectRatio primitiveUnits r radius refX refY renderingIntent repeatCount repeatDur repeatExtensions requiredExtensions requiredFeatures restart result rotate rx ry scale seed shapeRendering slope spacing specularConstant specularExponent spreadMethod startOffset stdDeviation stemh stemv stitchTiles stopColor stopOpacity strikethroughPosition strikethroughThickness string stroke strokeDasharray strokeDashoffset strokeLinecap strokeLinejoin strokeMiterlimit strokeOpacity strokeWidth surfaceScale svgIn systemLanguage tableValues targetX targetY textAnchor textDecoration textLength textRendering to transform u1 u2 underlinePosition underlineThickness unicode unicodeBidi unicodeRange unitsPerEm vAlphabetic vHanging vIdeographic vMathematical values version vertAdvY vertOriginX vertOriginY viewBox viewTarget visibility widths wordSpacing writingMode x1 x2 x xHeight xChannelSelector xlinkActuate xlinkArcrole xlinkHref xlinkShow xlinkTitle xlinkType xmlBase xmlLang xmlSpace y1 y2 y yChannelSelector z zoomAndPan +accentHeight accumulate additive alphabetic amplitude arabicForm ascent attributeName attributeType azimuth baseFrequency baseProfile bbox begin bias by calcMode capHeight clipPathUnits contentScriptType contentStyleType cursor cx cy d descent diffuseConstant divisor dur dx dy edgeMode elevation end exponent externalResourcesRequired filterRes filterUnits format from fx fy g1 g2 glyphName glyphRef gradientTransform gradientUnits hanging horizAdvX horizOriginX horixOriginY ideographic in2 intercept k k1 k2 k3 k4 kernelMatrix kernelUnitLength keyPoints keySplines keyTimes lengthAdjust limitingConeAngle local markerHeight markerUnits markerWidth maskContentUnits maskUnits mathematical media mode numOctaves offset operator order orient orientation origin overlinePosition overlineThcikness panose1 path pathLength patternContentUnits patternTransform patternUnits points pointsAtX pointsAtY pointsAtZ preserveAlpha preserveAspectRatio primitiveUnits r radius refX refY renderingIntent repeatCount repeatDur repeatExtensions requiredExtensions requiredFeatures restart result rotate rx ry scale seed slope spacing specularConstant specularExponent spreadMethod startOffset stdDeviation stemh stemv stitchTiles strikethroughPosition strikethroughThickness string surfaceScale svgIn systemLanguage tableValues targetX targetY textLength to transform u1 u2 underlinePosition underlineThickness unicode unicodeRange unitsPerEm vAlphabetic vHanging vIdeographic vMathematical values version vertAdvY vertOriginX vertOriginY viewBox viewTarget widths x1 x2 x xHeight xChannelSelector xlinkActuate xlinkArcrole xlinkHref xlinkShow xlinkTitle xlinkType xmlBase xmlLang xmlSpace y1 y2 y yChannelSelector z zoomAndPan ``` diff --git a/src/dom/DefaultDOMPropertyConfig.js b/src/dom/DefaultDOMPropertyConfig.js index e1db168a1ac..04dcfeca0b1 100644 --- a/src/dom/DefaultDOMPropertyConfig.js +++ b/src/dom/DefaultDOMPropertyConfig.js @@ -132,7 +132,6 @@ var DefaultDOMPropertyConfig = { accentHeight: MUST_USE_ATTRIBUTE, accumulate: MUST_USE_ATTRIBUTE, additive: MUST_USE_ATTRIBUTE, - alignmentBaseline: MUST_USE_ATTRIBUTE, alphabetic: MUST_USE_ATTRIBUTE, amplitude: MUST_USE_ATTRIBUTE, arabicForm: MUST_USE_ATTRIBUTE, @@ -142,21 +141,13 @@ var DefaultDOMPropertyConfig = { azimuth: MUST_USE_ATTRIBUTE, baseFrequency: MUST_USE_ATTRIBUTE, baseProfile: MUST_USE_ATTRIBUTE, - baselineShift: MUST_USE_ATTRIBUTE, bbox: MUST_USE_ATTRIBUTE, begin: MUST_USE_ATTRIBUTE, bias: MUST_USE_ATTRIBUTE, by: MUST_USE_ATTRIBUTE, calcMode: MUST_USE_ATTRIBUTE, capHeight: MUST_USE_ATTRIBUTE, - clip: MUST_USE_ATTRIBUTE, - clipPath: MUST_USE_ATTRIBUTE, clipPathUnits: MUST_USE_ATTRIBUTE, - clipRule: MUST_USE_ATTRIBUTE, - colorInterpolation: MUST_USE_ATTRIBUTE, - colorInterpolationFilters: MUST_USE_ATTRIBUTE, - colorProfile: MUST_USE_ATTRIBUTE, - colorRendering: MUST_USE_ATTRIBUTE, contentScriptType: MUST_USE_ATTRIBUTE, contentStyleType: MUST_USE_ATTRIBUTE, cursor: MUST_USE_ATTRIBUTE, @@ -165,35 +156,17 @@ var DefaultDOMPropertyConfig = { d: MUST_USE_ATTRIBUTE, descent: MUST_USE_ATTRIBUTE, diffuseConstant: MUST_USE_ATTRIBUTE, - direction: MUST_USE_ATTRIBUTE, - display: MUST_USE_ATTRIBUTE, divisor: MUST_USE_ATTRIBUTE, - dominantBaseline: MUST_USE_ATTRIBUTE, dur: MUST_USE_ATTRIBUTE, dx: MUST_USE_ATTRIBUTE, dy: MUST_USE_ATTRIBUTE, edgeMode: MUST_USE_ATTRIBUTE, elevation: MUST_USE_ATTRIBUTE, - enableBackground: MUST_USE_ATTRIBUTE, end: MUST_USE_ATTRIBUTE, exponent: MUST_USE_ATTRIBUTE, externalResourcesRequired: MUST_USE_ATTRIBUTE, - fill: MUST_USE_ATTRIBUTE, - fillOpacity: MUST_USE_ATTRIBUTE, - fillRule: MUST_USE_ATTRIBUTE, - filter: MUST_USE_ATTRIBUTE, filterRes: MUST_USE_ATTRIBUTE, filterUnits: MUST_USE_ATTRIBUTE, - floodColor: MUST_USE_ATTRIBUTE, - floodOpacity: MUST_USE_ATTRIBUTE, - font: MUST_USE_ATTRIBUTE, - fontFamily: MUST_USE_ATTRIBUTE, - fontSize: MUST_USE_ATTRIBUTE, - fontSizeAdjust: MUST_USE_ATTRIBUTE, - fontStretch: MUST_USE_ATTRIBUTE, - fontStyle: MUST_USE_ATTRIBUTE, - fontVariant: MUST_USE_ATTRIBUTE, - fontWeight: MUST_USE_ATTRIBUTE, format: MUST_USE_ATTRIBUTE, from: MUST_USE_ATTRIBUTE, fx: MUST_USE_ATTRIBUTE, @@ -201,8 +174,6 @@ var DefaultDOMPropertyConfig = { g1: MUST_USE_ATTRIBUTE, g2: MUST_USE_ATTRIBUTE, glyphName: MUST_USE_ATTRIBUTE, - glyphOrientationHorizontal: MUST_USE_ATTRIBUTE, - glyphOrientationVertical: MUST_USE_ATTRIBUTE, glyphRef: MUST_USE_ATTRIBUTE, gradientTransform: MUST_USE_ATTRIBUTE, gradientUnits: MUST_USE_ATTRIBUTE, @@ -211,7 +182,6 @@ var DefaultDOMPropertyConfig = { horizOriginX: MUST_USE_ATTRIBUTE, horizOriginY: MUST_USE_ATTRIBUTE, ideographic: MUST_USE_ATTRIBUTE, - imageRendering: MUST_USE_ATTRIBUTE, svgIn: MUST_USE_ATTRIBUTE, in2: MUST_USE_ATTRIBUTE, intercept: MUST_USE_ATTRIBUTE, @@ -222,23 +192,15 @@ var DefaultDOMPropertyConfig = { k4: MUST_USE_ATTRIBUTE, kernelMatrix: MUST_USE_ATTRIBUTE, kernelUnitLength: MUST_USE_ATTRIBUTE, - kerning: MUST_USE_ATTRIBUTE, keyPoints: MUST_USE_ATTRIBUTE, keySplines: MUST_USE_ATTRIBUTE, keyTimes: MUST_USE_ATTRIBUTE, lengthAdjust: MUST_USE_ATTRIBUTE, - letterSpacing: MUST_USE_ATTRIBUTE, - lightingColor: MUST_USE_ATTRIBUTE, limitingConeAngle: MUST_USE_ATTRIBUTE, local: MUST_USE_ATTRIBUTE, - marker: MUST_USE_ATTRIBUTE, - markerEnd: MUST_USE_ATTRIBUTE, markerHeight: MUST_USE_ATTRIBUTE, - markerMid: MUST_USE_ATTRIBUTE, - markerStart: MUST_USE_ATTRIBUTE, markerUnits: MUST_USE_ATTRIBUTE, markerWidth: MUST_USE_ATTRIBUTE, - mask: MUST_USE_ATTRIBUTE, maskContentUnits: MUST_USE_ATTRIBUTE, maskUnits: MUST_USE_ATTRIBUTE, mathematical: MUST_USE_ATTRIBUTE, @@ -246,13 +208,11 @@ var DefaultDOMPropertyConfig = { mode: MUST_USE_ATTRIBUTE, numOctaves: MUST_USE_ATTRIBUTE, offset: MUST_USE_ATTRIBUTE, - opacity: MUST_USE_ATTRIBUTE, operator: MUST_USE_ATTRIBUTE, order: MUST_USE_ATTRIBUTE, orient: MUST_USE_ATTRIBUTE, orientation: MUST_USE_ATTRIBUTE, origin: MUST_USE_ATTRIBUTE, - overflow: MUST_USE_ATTRIBUTE, overlinePosition: MUST_USE_ATTRIBUTE, overlineThickness: MUST_USE_ATTRIBUTE, panose1: MUST_USE_ATTRIBUTE, @@ -261,7 +221,6 @@ var DefaultDOMPropertyConfig = { patternContentUnits: MUST_USE_ATTRIBUTE, patternTransform: MUST_USE_ATTRIBUTE, patternUnits: MUST_USE_ATTRIBUTE, - pointerEvents: MUST_USE_ATTRIBUTE, points: MUST_USE_ATTRIBUTE, pointsAtX: MUST_USE_ATTRIBUTE, pointsAtY: MUST_USE_ATTRIBUTE, @@ -286,7 +245,6 @@ var DefaultDOMPropertyConfig = { ry: MUST_USE_ATTRIBUTE, scale: MUST_USE_ATTRIBUTE, seed: MUST_USE_ATTRIBUTE, - shapeRendering: MUST_USE_ATTRIBUTE, slope: MUST_USE_ATTRIBUTE, spacing: MUST_USE_ATTRIBUTE, specularConstant: MUST_USE_ATTRIBUTE, @@ -297,28 +255,15 @@ var DefaultDOMPropertyConfig = { stemh: MUST_USE_ATTRIBUTE, stemv: MUST_USE_ATTRIBUTE, stitchTiles: MUST_USE_ATTRIBUTE, - stopColor: MUST_USE_ATTRIBUTE, - stopOpacity: MUST_USE_ATTRIBUTE, strikethroughPosition: MUST_USE_ATTRIBUTE, strikethroughThickness: MUST_USE_ATTRIBUTE, string: MUST_USE_ATTRIBUTE, - stroke: MUST_USE_ATTRIBUTE, - strokeDasharray: MUST_USE_ATTRIBUTE, - strokeDashoffset: MUST_USE_ATTRIBUTE, - strokeLinecap: MUST_USE_ATTRIBUTE, - strokeLinejoin: MUST_USE_ATTRIBUTE, - strokeMiterlimit: MUST_USE_ATTRIBUTE, - strokeOpacity: MUST_USE_ATTRIBUTE, - strokeWidth: MUST_USE_ATTRIBUTE, surfaceScale: MUST_USE_ATTRIBUTE, systemLanguage: MUST_USE_ATTRIBUTE, tableValues: MUST_USE_ATTRIBUTE, targetX: MUST_USE_ATTRIBUTE, targetY: MUST_USE_ATTRIBUTE, - textAnchor: MUST_USE_ATTRIBUTE, - textDecoration: MUST_USE_ATTRIBUTE, textLength: MUST_USE_ATTRIBUTE, - textRendering: MUST_USE_ATTRIBUTE, to: MUST_USE_ATTRIBUTE, transform: MUST_USE_ATTRIBUTE, u1: MUST_USE_ATTRIBUTE, @@ -326,7 +271,6 @@ var DefaultDOMPropertyConfig = { underlinePosition: MUST_USE_ATTRIBUTE, underlineThickness: MUST_USE_ATTRIBUTE, unicode: MUST_USE_ATTRIBUTE, - unicodeBidi: MUST_USE_ATTRIBUTE, unicodeRange: MUST_USE_ATTRIBUTE, unitsPerEm: MUST_USE_ATTRIBUTE, vAlphabetic: MUST_USE_ATTRIBUTE, @@ -340,10 +284,7 @@ var DefaultDOMPropertyConfig = { vertOriginY: MUST_USE_ATTRIBUTE, viewBox: MUST_USE_ATTRIBUTE, viewTarget: MUST_USE_ATTRIBUTE, - visibility: MUST_USE_ATTRIBUTE, widths: MUST_USE_ATTRIBUTE, - wordSpacing: MUST_USE_ATTRIBUTE, - writingMode: MUST_USE_ATTRIBUTE, x1: MUST_USE_ATTRIBUTE, x2: MUST_USE_ATTRIBUTE, x: MUST_USE_ATTRIBUTE, @@ -374,52 +315,28 @@ var DefaultDOMPropertyConfig = { * SVG */ accentHeight: 'accent-height', - alignmentBaseline: 'alignment-baseline', arabicForm: 'arabic-form', attributeName: 'attributeName', attributeType: 'attributeType', baseFrequency: 'baseFrequency', baseProfile: 'baseProfile', - baselineShift: 'baseline-shift', calcMode: 'calcMode', capHeight: 'cap-height', - clipPath: 'clip-path', clipPathUnits: 'clipPathUnits', - clipRule: 'clip-rule', - colorInterpolation: 'color-interpolation', - colorInterpolationFilters: 'color-interpolation-filters', - colorProfile: 'color-profile', - colorRendering: 'color-rendering', contentScriptType: 'contentScriptType', contentStyleType: 'contentStyleType', diffuseConstant: 'diffuseConstant', - dominantBaseline: 'dominant-baseline', edgeMode: 'edgeMode', - enableBackground: 'enable-background', externalResourcesRequired: 'externalResourcesRequired', - fillOpacity: 'fill-opacity', - fillRule: 'fill-rule', filterRes: 'filterRes', filterUnits: 'filterUnits', - floodColor: 'flood-color', - floodOpacity: 'flood-opacity', - fontFamily: 'font-family', - fontSize: 'font-size', - fontSizeAdjust: 'font-size-adjust', - fontStretch: 'font-stretch', - fontStyle: 'font-style', - fontVariant: 'font-variant', - fontWeight: 'font-weight', glyphName: 'glyph-name', - glyphOrientationHorizontal: 'glyph-orientation-horizontal', - glyphOrientationVertical: 'glyph-orientation-vertical', glyphRef: 'glyphRef', gradientTransform: 'gradientTransform', gradientUnits: 'gradientUnits', horizAdvX: 'horiz-adv-x', horizOriginX: 'horiz-origin-x', horizOriginY: 'horiz-origin-y', - imageRendering: 'image-rendering', svgIn: 'in', kernelMatrix: 'kernelMatrix', kernelUnitLength: 'kernelUnitLength', @@ -427,13 +344,8 @@ var DefaultDOMPropertyConfig = { keySplines: 'keySplines', keyTimes: 'keyTimes', lengthAdjust: 'lengthAdjust', - letterSpacing: 'letterSpacing', - lightingColor: 'lighting-color', limitingConeAngle: 'limitingConeAngle', - markerEnd: 'marker-end', markerHeight: 'markerHeight', - markerMid: 'marker-mid', - markerStart: 'marker-start', markerUnits: 'markerUnits', markerWidth: 'markerWidth', maskContentUnits: 'maskContentUnits', @@ -446,7 +358,6 @@ var DefaultDOMPropertyConfig = { patternContentUnits: 'patternContentUnits', patternTransform: 'patternTransform', patternUnits: 'patternUnits', - pointerEvents: 'pointer-events', pointsAtX: 'pointsAtX', pointsAtY: 'pointsAtY', pointsAtZ: 'pointsAtZ', @@ -460,35 +371,22 @@ var DefaultDOMPropertyConfig = { repeatDur: 'repeatDur', requiredExtensions: 'requiredExtensions', requiredFeatures: 'requiredFeatures', - shapeRendering: 'shape-rendering', specularConstant: 'specularConstant', specularExponent: 'specularExponent', spreadMethod: 'spreadMethod', startOffset: 'startOffset', stdDeviation: 'stdDeviation', stitchTiles: 'stitchTiles', - stopColor: 'stop-color', - stopOpacity: 'stop-opacity', strikethroughPosition: 'strikethrough-position', strikethroughThickness: 'strikethrough-thickness', - strokeDasharray: 'stroke-dasharray', - strokeDashoffset: 'stroke-dashoffset', - strokeLinecap: 'stroke-linecap', - strokeLinejoin: 'stroke-linejoin', - strokeMiterlimit: 'stroke-miterlimit', - strokeWidth: 'stroke-width', surfaceScale: 'surfaceScale', systemLanguage: 'systemLanguage', tableValues: 'tableValues', targetX: 'targetX', targetY: 'targetY', - textAnchor: 'text-anchor', - textDecoration: 'text-decoration', textLength: 'textLength', - textRendering: 'text-rendering', underlinePosition: 'underline-position', underlineThickness: 'underline-thickness', - unicodeBidi: 'unicode-bidi', unicodeRange: 'unicode-range', unitsPerEm: 'units-per-em', vAlphabetic: 'v-alphabetic', @@ -500,8 +398,6 @@ var DefaultDOMPropertyConfig = { vertOriginY: 'vert-origin-y', viewBox: 'viewBox', viewTarget: 'viewTarget', - wordSpacing: 'word-spacing', - writingMode: 'writingMode', xHeight: 'x-height', xChannelSelector: 'xChannelSelector', xlinkActuate: 'actuate',