diff options
Diffstat (limited to 'node_modules/svgo/plugins/_collections.js')
| -rw-r--r-- | node_modules/svgo/plugins/_collections.js | 2339 |
1 files changed, 0 insertions, 2339 deletions
diff --git a/node_modules/svgo/plugins/_collections.js b/node_modules/svgo/plugins/_collections.js deleted file mode 100644 index 6f11b136..00000000 --- a/node_modules/svgo/plugins/_collections.js +++ /dev/null @@ -1,2339 +0,0 @@ -'use strict'; - -// https://www.w3.org/TR/SVG11/intro.html#Definitions - -/** - * @type {Record<string, Set<string>>} - */ -exports.elemsGroups = { - animation: new Set([ - 'animate', - 'animateColor', - 'animateMotion', - 'animateTransform', - 'set', - ]), - descriptive: new Set(['desc', 'metadata', 'title']), - shape: new Set([ - 'circle', - 'ellipse', - 'line', - 'path', - 'polygon', - 'polyline', - 'rect', - ]), - structural: new Set(['defs', 'g', 'svg', 'symbol', 'use']), - paintServer: new Set([ - 'hatch', - 'linearGradient', - 'meshGradient', - 'pattern', - 'radialGradient', - 'solidColor', - ]), - nonRendering: new Set([ - 'clipPath', - 'filter', - 'linearGradient', - 'marker', - 'mask', - 'pattern', - 'radialGradient', - 'solidColor', - 'symbol', - ]), - container: new Set([ - 'a', - 'defs', - 'foreignObject', - 'g', - 'marker', - 'mask', - 'missing-glyph', - 'pattern', - 'svg', - 'switch', - 'symbol', - ]), - textContent: new Set([ - 'altGlyph', - 'altGlyphDef', - 'altGlyphItem', - 'glyph', - 'glyphRef', - 'text', - 'textPath', - 'tref', - 'tspan', - ]), - textContentChild: new Set(['altGlyph', 'textPath', 'tref', 'tspan']), - lightSource: new Set([ - 'feDiffuseLighting', - 'feDistantLight', - 'fePointLight', - 'feSpecularLighting', - 'feSpotLight', - ]), - filterPrimitive: new Set([ - 'feBlend', - 'feColorMatrix', - 'feComponentTransfer', - 'feComposite', - 'feConvolveMatrix', - 'feDiffuseLighting', - 'feDisplacementMap', - 'feDropShadow', - 'feFlood', - 'feFuncA', - 'feFuncB', - 'feFuncG', - 'feFuncR', - 'feGaussianBlur', - 'feImage', - 'feMerge', - 'feMergeNode', - 'feMorphology', - 'feOffset', - 'feSpecularLighting', - 'feTile', - 'feTurbulence', - ]), -}; - -/** - * Elements where adding or removing whitespace may effect rendering, metadata, - * or semantic meaning. - * - * @see https://developer.mozilla.org/docs/Web/HTML/Element/pre - */ -exports.textElems = new Set([ - ...exports.elemsGroups.textContent, - 'pre', - 'title', -]); - -exports.pathElems = new Set(['glyph', 'missing-glyph', 'path']); - -/** - * @type {Record<string, Set<string>>} - * @see https://www.w3.org/TR/SVG11/intro.html#Definitions - */ -exports.attrsGroups = { - animationAddition: new Set(['additive', 'accumulate']), - animationAttributeTarget: new Set(['attributeType', 'attributeName']), - animationEvent: new Set(['onbegin', 'onend', 'onrepeat', 'onload']), - animationTiming: new Set([ - 'begin', - 'dur', - 'end', - 'fill', - 'max', - 'min', - 'repeatCount', - 'repeatDur', - 'restart', - ]), - animationValue: new Set([ - 'by', - 'calcMode', - 'from', - 'keySplines', - 'keyTimes', - 'to', - 'values', - ]), - conditionalProcessing: new Set([ - 'requiredExtensions', - 'requiredFeatures', - 'systemLanguage', - ]), - core: new Set(['id', 'tabindex', 'xml:base', 'xml:lang', 'xml:space']), - graphicalEvent: new Set([ - 'onactivate', - 'onclick', - 'onfocusin', - 'onfocusout', - 'onload', - 'onmousedown', - 'onmousemove', - 'onmouseout', - 'onmouseover', - 'onmouseup', - ]), - presentation: new Set([ - 'alignment-baseline', - 'baseline-shift', - 'clip-path', - 'clip-rule', - 'clip', - 'color-interpolation-filters', - 'color-interpolation', - 'color-profile', - 'color-rendering', - 'color', - 'cursor', - 'direction', - 'display', - 'dominant-baseline', - 'enable-background', - 'fill-opacity', - 'fill-rule', - 'fill', - 'filter', - 'flood-color', - 'flood-opacity', - 'font-family', - 'font-size-adjust', - 'font-size', - 'font-stretch', - 'font-style', - 'font-variant', - 'font-weight', - 'glyph-orientation-horizontal', - 'glyph-orientation-vertical', - 'image-rendering', - 'letter-spacing', - 'lighting-color', - 'marker-end', - 'marker-mid', - 'marker-start', - 'mask', - 'opacity', - 'overflow', - 'paint-order', - 'pointer-events', - 'shape-rendering', - 'stop-color', - 'stop-opacity', - 'stroke-dasharray', - 'stroke-dashoffset', - 'stroke-linecap', - 'stroke-linejoin', - 'stroke-miterlimit', - 'stroke-opacity', - 'stroke-width', - 'stroke', - 'text-anchor', - 'text-decoration', - 'text-overflow', - 'text-rendering', - 'transform-origin', - 'transform', - 'unicode-bidi', - 'vector-effect', - 'visibility', - 'word-spacing', - 'writing-mode', - ]), - xlink: new Set([ - 'xlink:actuate', - 'xlink:arcrole', - 'xlink:href', - 'xlink:role', - 'xlink:show', - 'xlink:title', - 'xlink:type', - ]), - documentEvent: new Set([ - 'onabort', - 'onerror', - 'onresize', - 'onscroll', - 'onunload', - 'onzoom', - ]), - documentElementEvent: new Set(['oncopy', 'oncut', 'onpaste']), - globalEvent: new Set([ - 'oncancel', - 'oncanplay', - 'oncanplaythrough', - 'onchange', - 'onclick', - 'onclose', - 'oncuechange', - 'ondblclick', - 'ondrag', - 'ondragend', - 'ondragenter', - 'ondragleave', - 'ondragover', - 'ondragstart', - 'ondrop', - 'ondurationchange', - 'onemptied', - 'onended', - 'onerror', - 'onfocus', - 'oninput', - 'oninvalid', - 'onkeydown', - 'onkeypress', - 'onkeyup', - 'onload', - 'onloadeddata', - 'onloadedmetadata', - 'onloadstart', - 'onmousedown', - 'onmouseenter', - 'onmouseleave', - 'onmousemove', - 'onmouseout', - 'onmouseover', - 'onmouseup', - 'onmousewheel', - 'onpause', - 'onplay', - 'onplaying', - 'onprogress', - 'onratechange', - 'onreset', - 'onresize', - 'onscroll', - 'onseeked', - 'onseeking', - 'onselect', - 'onshow', - 'onstalled', - 'onsubmit', - 'onsuspend', - 'ontimeupdate', - 'ontoggle', - 'onvolumechange', - 'onwaiting', - ]), - filterPrimitive: new Set(['x', 'y', 'width', 'height', 'result']), - transferFunction: new Set([ - 'amplitude', - 'exponent', - 'intercept', - 'offset', - 'slope', - 'tableValues', - 'type', - ]), -}; - -/** - * @type {Record<string, Record<string, string>>} - */ -exports.attrsGroupsDefaults = { - core: { 'xml:space': 'default' }, - presentation: { - clip: 'auto', - 'clip-path': 'none', - 'clip-rule': 'nonzero', - mask: 'none', - opacity: '1', - 'stop-color': '#000', - 'stop-opacity': '1', - 'fill-opacity': '1', - 'fill-rule': 'nonzero', - fill: '#000', - stroke: 'none', - 'stroke-width': '1', - 'stroke-linecap': 'butt', - 'stroke-linejoin': 'miter', - 'stroke-miterlimit': '4', - 'stroke-dasharray': 'none', - 'stroke-dashoffset': '0', - 'stroke-opacity': '1', - 'paint-order': 'normal', - 'vector-effect': 'none', - display: 'inline', - visibility: 'visible', - 'marker-start': 'none', - 'marker-mid': 'none', - 'marker-end': 'none', - 'color-interpolation': 'sRGB', - 'color-interpolation-filters': 'linearRGB', - 'color-rendering': 'auto', - 'shape-rendering': 'auto', - 'text-rendering': 'auto', - 'image-rendering': 'auto', - 'font-style': 'normal', - 'font-variant': 'normal', - 'font-weight': 'normal', - 'font-stretch': 'normal', - 'font-size': 'medium', - 'font-size-adjust': 'none', - kerning: 'auto', - 'letter-spacing': 'normal', - 'word-spacing': 'normal', - 'text-decoration': 'none', - 'text-anchor': 'start', - 'text-overflow': 'clip', - 'writing-mode': 'lr-tb', - 'glyph-orientation-vertical': 'auto', - 'glyph-orientation-horizontal': '0deg', - direction: 'ltr', - 'unicode-bidi': 'normal', - 'dominant-baseline': 'auto', - 'alignment-baseline': 'baseline', - 'baseline-shift': 'baseline', - }, - transferFunction: { - slope: '1', - intercept: '0', - amplitude: '1', - exponent: '1', - offset: '0', - }, -}; - -/** - * @type {Record<string, { - * attrsGroups: Set<string>, - * attrs?: Set<string>, - * defaults?: Record<string, string>, - * contentGroups?: Set<string>, - * content?: Set<string>, - * }>} - * @see https://www.w3.org/TR/SVG11/eltindex.html - */ -exports.elems = { - a: { - attrsGroups: new Set([ - 'conditionalProcessing', - 'core', - 'graphicalEvent', - 'presentation', - 'xlink', - ]), - attrs: new Set([ - 'class', - 'externalResourcesRequired', - 'style', - 'target', - 'transform', - ]), - defaults: { - target: '_self', - }, - contentGroups: new Set([ - 'animation', - 'descriptive', - 'paintServer', - 'shape', - 'structural', - ]), - content: new Set([ - 'a', - 'altGlyphDef', - 'clipPath', - 'color-profile', - 'cursor', - 'filter', - 'font-face', - 'font', - 'foreignObject', - 'image', - 'marker', - 'mask', - 'pattern', - 'script', - 'style', - 'switch', - 'text', - 'view', - // not spec compliant - 'tspan', - ]), - }, - altGlyph: { - attrsGroups: new Set([ - 'conditionalProcessing', - 'core', - 'graphicalEvent', - 'presentation', - 'xlink', - ]), - attrs: new Set([ - 'class', - 'dx', - 'dy', - 'externalResourcesRequired', - 'format', - 'glyphRef', - 'rotate', - 'style', - 'x', - 'y', - ]), - }, - altGlyphDef: { - attrsGroups: new Set(['core']), - content: new Set(['glyphRef']), - }, - altGlyphItem: { - attrsGroups: new Set(['core']), - content: new Set(['glyphRef', 'altGlyphItem']), - }, - animate: { - attrsGroups: new Set([ - 'animationAddition', - 'animationAttributeTarget', - 'animationEvent', - 'animationTiming', - 'animationValue', - 'conditionalProcessing', - 'core', - 'presentation', - 'xlink', - ]), - attrs: new Set(['externalResourcesRequired']), - contentGroups: new Set(['descriptive']), - }, - animateColor: { - attrsGroups: new Set([ - 'animationAddition', - 'animationAttributeTarget', - 'animationEvent', - 'animationTiming', - 'animationValue', - 'conditionalProcessing', - 'core', - 'presentation', - 'xlink', - ]), - attrs: new Set(['externalResourcesRequired']), - contentGroups: new Set(['descriptive']), - }, - animateMotion: { - attrsGroups: new Set([ - 'animationAddition', - 'animationEvent', - 'animationTiming', - 'animationValue', - 'conditionalProcessing', - 'core', - 'xlink', - ]), - attrs: new Set([ - 'externalResourcesRequired', - 'keyPoints', - 'origin', - 'path', - 'rotate', - ]), - defaults: { - rotate: '0', - }, - contentGroups: new Set(['descriptive']), - content: new Set(['mpath']), - }, - animateTransform: { - attrsGroups: new Set([ - 'animationAddition', - 'animationAttributeTarget', - 'animationEvent', - 'animationTiming', - 'animationValue', - 'conditionalProcessing', - 'core', - 'xlink', - ]), - attrs: new Set(['externalResourcesRequired', 'type']), - contentGroups: new Set(['descriptive']), - }, - circle: { - attrsGroups: new Set([ - 'conditionalProcessing', - 'core', - 'graphicalEvent', - 'presentation', - ]), - attrs: new Set([ - 'class', - 'cx', - 'cy', - 'externalResourcesRequired', - 'r', - 'style', - 'transform', - ]), - defaults: { - cx: '0', - cy: '0', - }, - contentGroups: new Set(['animation', 'descriptive']), - }, - clipPath: { - attrsGroups: new Set(['conditionalProcessing', 'core', 'presentation']), - attrs: new Set([ - 'class', - 'clipPathUnits', - 'externalResourcesRequired', - 'style', - 'transform', - ]), - defaults: { - clipPathUnits: 'userSpaceOnUse', - }, - contentGroups: new Set(['animation', 'descriptive', 'shape']), - content: new Set(['text', 'use']), - }, - 'color-profile': { - attrsGroups: new Set(['core', 'xlink']), - attrs: new Set(['local', 'name', 'rendering-intent']), - defaults: { - name: 'sRGB', - 'rendering-intent': 'auto', - }, - contentGroups: new Set(['descriptive']), - }, - cursor: { - attrsGroups: new Set(['core', 'conditionalProcessing', 'xlink']), - attrs: new Set(['externalResourcesRequired', 'x', 'y']), - defaults: { - x: '0', - y: '0', - }, - contentGroups: new Set(['descriptive']), - }, - defs: { - attrsGroups: new Set([ - 'conditionalProcessing', - 'core', - 'graphicalEvent', - 'presentation', - ]), - attrs: new Set([ - 'class', - 'externalResourcesRequired', - 'style', - 'transform', - ]), - contentGroups: new Set([ - 'animation', - 'descriptive', - 'paintServer', - 'shape', - 'structural', - ]), - content: new Set([ - 'a', - 'altGlyphDef', - 'clipPath', - 'color-profile', - 'cursor', - 'filter', - 'font-face', - 'font', - 'foreignObject', - 'image', - 'marker', - 'mask', - 'pattern', - 'script', - 'style', - 'switch', - 'text', - 'view', - ]), - }, - desc: { - attrsGroups: new Set(['core']), - attrs: new Set(['class', 'style']), - }, - ellipse: { - attrsGroups: new Set([ - 'conditionalProcessing', - 'core', - 'graphicalEvent', - 'presentation', - ]), - attrs: new Set([ - 'class', - 'cx', - 'cy', - 'externalResourcesRequired', - 'rx', - 'ry', - 'style', - 'transform', - ]), - defaults: { - cx: '0', - cy: '0', - }, - contentGroups: new Set(['animation', 'descriptive']), - }, - feBlend: { - attrsGroups: new Set(['core', 'presentation', 'filterPrimitive']), - attrs: new Set([ - 'class', - 'style', - // TODO: in - 'If no value is provided and this is the first filter primitive, - // then this filter primitive will use SourceGraphic as its input' - 'in', - 'in2', - 'mode', - ]), - defaults: { - mode: 'normal', - }, - content: new Set(['animate', 'set']), - }, - feColorMatrix: { - attrsGroups: new Set(['core', 'presentation', 'filterPrimitive']), - attrs: new Set(['class', 'style', 'in', 'type', 'values']), - defaults: { - type: 'matrix', - }, - content: new Set(['animate', 'set']), - }, - feComponentTransfer: { - attrsGroups: new Set(['core', 'presentation', 'filterPrimitive']), - attrs: new Set(['class', 'style', 'in']), - content: new Set(['feFuncA', 'feFuncB', 'feFuncG', 'feFuncR']), - }, - feComposite: { - attrsGroups: new Set(['core', 'presentation', 'filterPrimitive']), - attrs: new Set([ - 'class', - 'in', - 'in2', - 'k1', - 'k2', - 'k3', - 'k4', - 'operator', - 'style', - ]), - defaults: { - operator: 'over', - k1: '0', - k2: '0', - k3: '0', - k4: '0', - }, - content: new Set(['animate', 'set']), - }, - feConvolveMatrix: { - attrsGroups: new Set(['core', 'presentation', 'filterPrimitive']), - attrs: new Set([ - 'class', - 'in', - 'kernelMatrix', - 'order', - 'style', - // TODO: divisor - 'The default value is the sum of all values in kernelMatrix, - // with the exception that if the sum is zero, then the divisor is set to 1' - 'bias', - 'divisor', - // TODO: targetX - 'By default, the convolution matrix is centered in X over each - // pixel of the input image (i.e., targetX = floor ( orderX / 2 ))' - 'edgeMode', - 'targetX', - 'targetY', - // TODO: kernelUnitLength - 'The first number is the <dx> value. The second number - // is the <dy> value. If the <dy> value is not specified, it defaults to the same value as <dx>' - 'kernelUnitLength', - 'preserveAlpha', - ]), - defaults: { - order: '3', - bias: '0', - edgeMode: 'duplicate', - preserveAlpha: 'false', - }, - content: new Set(['animate', 'set']), - }, - feDiffuseLighting: { - attrsGroups: new Set(['core', 'presentation', 'filterPrimitive']), - attrs: new Set([ - 'class', - 'diffuseConstant', - 'in', - 'kernelUnitLength', - 'style', - 'surfaceScale', - ]), - defaults: { - surfaceScale: '1', - diffuseConstant: '1', - }, - contentGroups: new Set(['descriptive']), - content: new Set([ - // TODO: 'exactly one light source element, in any order' - 'feDistantLight', - 'fePointLight', - 'feSpotLight', - ]), - }, - feDisplacementMap: { - attrsGroups: new Set(['core', 'presentation', 'filterPrimitive']), - attrs: new Set([ - 'class', - 'in', - 'in2', - 'scale', - 'style', - 'xChannelSelector', - 'yChannelSelector', - ]), - defaults: { - scale: '0', - xChannelSelector: 'A', - yChannelSelector: 'A', - }, - content: new Set(['animate', 'set']), - }, - feDistantLight: { - attrsGroups: new Set(['core']), - attrs: new Set(['azimuth', 'elevation']), - defaults: { - azimuth: '0', - elevation: '0', - }, - content: new Set(['animate', 'set']), - }, - feFlood: { - attrsGroups: new Set(['core', 'presentation', 'filterPrimitive']), - attrs: new Set(['class', 'style']), - content: new Set(['animate', 'animateColor', 'set']), - }, - feFuncA: { - attrsGroups: new Set(['core', 'transferFunction']), - content: new Set(['set', 'animate']), - }, - feFuncB: { - attrsGroups: new Set(['core', 'transferFunction']), - content: new Set(['set', 'animate']), - }, - feFuncG: { - attrsGroups: new Set(['core', 'transferFunction']), - content: new Set(['set', 'animate']), - }, - feFuncR: { - attrsGroups: new Set(['core', 'transferFunction']), - content: new Set(['set', 'animate']), - }, - feGaussianBlur: { - attrsGroups: new Set(['core', 'presentation', 'filterPrimitive']), - attrs: new Set(['class', 'style', 'in', 'stdDeviation']), - defaults: { - stdDeviation: '0', - }, - content: new Set(['set', 'animate']), - }, - feImage: { - attrsGroups: new Set(['core', 'presentation', 'filterPrimitive', 'xlink']), - attrs: new Set([ - 'class', - 'externalResourcesRequired', - 'href', - 'preserveAspectRatio', - 'style', - 'xlink:href', - ]), - defaults: { - preserveAspectRatio: 'xMidYMid meet', - }, - content: new Set(['animate', 'animateTransform', 'set']), - }, - feMerge: { - attrsGroups: new Set(['core', 'presentation', 'filterPrimitive']), - attrs: new Set(['class', 'style']), - content: new Set(['feMergeNode']), - }, - feMergeNode: { - attrsGroups: new Set(['core']), - attrs: new Set(['in']), - content: new Set(['animate', 'set']), - }, - feMorphology: { - attrsGroups: new Set(['core', 'presentation', 'filterPrimitive']), - attrs: new Set(['class', 'style', 'in', 'operator', 'radius']), - defaults: { - operator: 'erode', - radius: '0', - }, - content: new Set(['animate', 'set']), - }, - feOffset: { - attrsGroups: new Set(['core', 'presentation', 'filterPrimitive']), - attrs: new Set(['class', 'style', 'in', 'dx', 'dy']), - defaults: { - dx: '0', - dy: '0', - }, - content: new Set(['animate', 'set']), - }, - fePointLight: { - attrsGroups: new Set(['core']), - attrs: new Set(['x', 'y', 'z']), - defaults: { - x: '0', - y: '0', - z: '0', - }, - content: new Set(['animate', 'set']), - }, - feSpecularLighting: { - attrsGroups: new Set(['core', 'presentation', 'filterPrimitive']), - attrs: new Set([ - 'class', - 'in', - 'kernelUnitLength', - 'specularConstant', - 'specularExponent', - 'style', - 'surfaceScale', - ]), - defaults: { - surfaceScale: '1', - specularConstant: '1', - specularExponent: '1', - }, - contentGroups: new Set([ - 'descriptive', - // TODO: exactly one 'light source element' - 'lightSource', - ]), - }, - feSpotLight: { - attrsGroups: new Set(['core']), - attrs: new Set([ - 'limitingConeAngle', - 'pointsAtX', - 'pointsAtY', - 'pointsAtZ', - 'specularExponent', - 'x', - 'y', - 'z', - ]), - defaults: { - x: '0', - y: '0', - z: '0', - pointsAtX: '0', - pointsAtY: '0', - pointsAtZ: '0', - specularExponent: '1', - }, - content: new Set(['animate', 'set']), - }, - feTile: { - attrsGroups: new Set(['core', 'presentation', 'filterPrimitive']), - attrs: new Set(['class', 'style', 'in']), - content: new Set(['animate', 'set']), - }, - feTurbulence: { - attrsGroups: new Set(['core', 'presentation', 'filterPrimitive']), - attrs: new Set([ - 'baseFrequency', - 'class', - 'numOctaves', - 'seed', - 'stitchTiles', - 'style', - 'type', - ]), - defaults: { - baseFrequency: '0', - numOctaves: '1', - seed: '0', - stitchTiles: 'noStitch', - type: 'turbulence', - }, - content: new Set(['animate', 'set']), - }, - filter: { - attrsGroups: new Set(['core', 'presentation', 'xlink']), - attrs: new Set([ - 'class', - 'externalResourcesRequired', - 'filterRes', - 'filterUnits', - 'height', - 'href', - 'primitiveUnits', - 'style', - 'width', - 'x', - 'xlink:href', - 'y', - ]), - defaults: { - primitiveUnits: 'userSpaceOnUse', - x: '-10%', - y: '-10%', - width: '120%', - height: '120%', - }, - contentGroups: new Set(['descriptive', 'filterPrimitive']), - content: new Set(['animate', 'set']), - }, - font: { - attrsGroups: new Set(['core', 'presentation']), - attrs: new Set([ - 'class', - 'externalResourcesRequired', - 'horiz-adv-x', - 'horiz-origin-x', - 'horiz-origin-y', - 'style', - 'vert-adv-y', - 'vert-origin-x', - 'vert-origin-y', - ]), - defaults: { - 'horiz-origin-x': '0', - 'horiz-origin-y': '0', - }, - contentGroups: new Set(['descriptive']), - content: new Set(['font-face', 'glyph', 'hkern', 'missing-glyph', 'vkern']), - }, - 'font-face': { - attrsGroups: new Set(['core']), - attrs: new Set([ - 'font-family', - 'font-style', - 'font-variant', - 'font-weight', - 'font-stretch', - 'font-size', - 'unicode-range', - 'units-per-em', - 'panose-1', - 'stemv', - 'stemh', - 'slope', - 'cap-height', - 'x-height', - 'accent-height', - 'ascent', - 'descent', - 'widths', - 'bbox', - 'ideographic', - 'alphabetic', - 'mathematical', - 'hanging', - 'v-ideographic', - 'v-alphabetic', - 'v-mathematical', - 'v-hanging', - 'underline-position', - 'underline-thickness', - 'strikethrough-position', - 'strikethrough-thickness', - 'overline-position', - 'overline-thickness', - ]), - defaults: { - 'font-style': 'all', - 'font-variant': 'normal', - 'font-weight': 'all', - 'font-stretch': 'normal', - 'unicode-range': 'U+0-10FFFF', - 'units-per-em': '1000', - 'panose-1': '0 0 0 0 0 0 0 0 0 0', - slope: '0', - }, - contentGroups: new Set(['descriptive']), - content: new Set([ - // TODO: "at most one 'font-face-src' element" - 'font-face-src', - ]), - }, - // TODO: empty content - 'font-face-format': { - attrsGroups: new Set(['core']), - attrs: new Set(['string']), - }, - 'font-face-name': { - attrsGroups: new Set(['core']), - attrs: new Set(['name']), - }, - 'font-face-src': { - attrsGroups: new Set(['core']), - content: new Set(['font-face-name', 'font-face-uri']), - }, - 'font-face-uri': { - attrsGroups: new Set(['core', 'xlink']), - attrs: new Set(['href', 'xlink:href']), - content: new Set(['font-face-format']), - }, - foreignObject: { - attrsGroups: new Set([ - 'conditionalProcessing', - 'core', - 'graphicalEvent', - 'presentation', - ]), - attrs: new Set([ - 'class', - 'externalResourcesRequired', - 'height', - 'style', - 'transform', - 'width', - 'x', - 'y', - ]), - defaults: { - x: '0', - y: '0', - }, - }, - g: { - attrsGroups: new Set([ - 'conditionalProcessing', - 'core', - 'graphicalEvent', - 'presentation', - ]), - attrs: new Set([ - 'class', - 'externalResourcesRequired', - 'style', - 'transform', - ]), - contentGroups: new Set([ - 'animation', - 'descriptive', - 'paintServer', - 'shape', - 'structural', - ]), - content: new Set([ - 'a', - 'altGlyphDef', - 'clipPath', - 'color-profile', - 'cursor', - 'filter', - 'font-face', - 'font', - 'foreignObject', - 'image', - 'marker', - 'mask', - 'pattern', - 'script', - 'style', - 'switch', - 'text', - 'view', - ]), - }, - glyph: { - attrsGroups: new Set(['core', 'presentation']), - attrs: new Set([ - 'arabic-form', - 'class', - 'd', - 'glyph-name', - 'horiz-adv-x', - 'lang', - 'orientation', - 'style', - 'unicode', - 'vert-adv-y', - 'vert-origin-x', - 'vert-origin-y', - ]), - defaults: { - 'arabic-form': 'initial', - }, - contentGroups: new Set([ - 'animation', - 'descriptive', - 'paintServer', - 'shape', - 'structural', - ]), - content: new Set([ - 'a', - 'altGlyphDef', - 'clipPath', - 'color-profile', - 'cursor', - 'filter', - 'font-face', - 'font', - 'foreignObject', - 'image', - 'marker', - 'mask', - 'pattern', - 'script', - 'style', - 'switch', - 'text', - 'view', - ]), - }, - glyphRef: { - attrsGroups: new Set(['core', 'presentation']), - attrs: new Set([ - 'class', - 'd', - 'horiz-adv-x', - 'style', - 'vert-adv-y', - 'vert-origin-x', - 'vert-origin-y', - ]), - contentGroups: new Set([ - 'animation', - 'descriptive', - 'paintServer', - 'shape', - 'structural', - ]), - content: new Set([ - 'a', - 'altGlyphDef', - 'clipPath', - 'color-profile', - 'cursor', - 'filter', - 'font-face', - 'font', - 'foreignObject', - 'image', - 'marker', - 'mask', - 'pattern', - 'script', - 'style', - 'switch', - 'text', - 'view', - ]), - }, - hatch: { - attrsGroups: new Set(['core', 'presentation', 'xlink']), - attrs: new Set([ - 'class', - 'hatchContentUnits', - 'hatchUnits', - 'pitch', - 'rotate', - 'style', - 'transform', - 'x', - 'y', - ]), - defaults: { - hatchUnits: 'objectBoundingBox', - hatchContentUnits: 'userSpaceOnUse', - x: '0', - y: '0', - pitch: '0', - rotate: '0', - }, - contentGroups: new Set(['animation', 'descriptive']), - content: new Set(['hatchPath']), - }, - hatchPath: { - attrsGroups: new Set(['core', 'presentation', 'xlink']), - attrs: new Set(['class', 'style', 'd', 'offset']), - defaults: { - offset: '0', - }, - contentGroups: new Set(['animation', 'descriptive']), - }, - hkern: { - attrsGroups: new Set(['core']), - attrs: new Set(['u1', 'g1', 'u2', 'g2', 'k']), - }, - image: { - attrsGroups: new Set([ - 'conditionalProcessing', - 'core', - 'graphicalEvent', - 'presentation', - 'xlink', - ]), - attrs: new Set([ - 'class', - 'externalResourcesRequired', - 'height', - 'href', - 'preserveAspectRatio', - 'style', - 'transform', - 'width', - 'x', - 'xlink:href', - 'y', - ]), - defaults: { - x: '0', - y: '0', - preserveAspectRatio: 'xMidYMid meet', - }, - contentGroups: new Set(['animation', 'descriptive']), - }, - line: { - attrsGroups: new Set([ - 'conditionalProcessing', - 'core', - 'graphicalEvent', - 'presentation', - ]), - attrs: new Set([ - 'class', - 'externalResourcesRequired', - 'style', - 'transform', - 'x1', - 'x2', - 'y1', - 'y2', - ]), - defaults: { - x1: '0', - y1: '0', - x2: '0', - y2: '0', - }, - contentGroups: new Set(['animation', 'descriptive']), - }, - linearGradient: { - attrsGroups: new Set(['core', 'presentation', 'xlink']), - attrs: new Set([ - 'class', - 'externalResourcesRequired', - 'gradientTransform', - 'gradientUnits', - 'href', - 'spreadMethod', - 'style', - 'x1', - 'x2', - 'xlink:href', - 'y1', - 'y2', - ]), - defaults: { - x1: '0', - y1: '0', - x2: '100%', - y2: '0', - spreadMethod: 'pad', - }, - contentGroups: new Set(['descriptive']), - content: new Set(['animate', 'animateTransform', 'set', 'stop']), - }, - marker: { - attrsGroups: new Set(['core', 'presentation']), - attrs: new Set([ - 'class', - 'externalResourcesRequired', - 'markerHeight', - 'markerUnits', - 'markerWidth', - 'orient', - 'preserveAspectRatio', - 'refX', - 'refY', - 'style', - 'viewBox', - ]), - defaults: { - markerUnits: 'strokeWidth', - refX: '0', - refY: '0', - markerWidth: '3', - markerHeight: '3', - }, - contentGroups: new Set([ - 'animation', - 'descriptive', - 'paintServer', - 'shape', - 'structural', - ]), - content: new Set([ - 'a', - 'altGlyphDef', - 'clipPath', - 'color-profile', - 'cursor', - 'filter', - 'font-face', - 'font', - 'foreignObject', - 'image', - 'marker', - 'mask', - 'pattern', - 'script', - 'style', - 'switch', - 'text', - 'view', - ]), - }, - mask: { - attrsGroups: new Set(['conditionalProcessing', 'core', 'presentation']), - attrs: new Set([ - 'class', - 'externalResourcesRequired', - 'height', - 'mask-type', - 'maskContentUnits', - 'maskUnits', - 'style', - 'width', - 'x', - 'y', - ]), - defaults: { - maskUnits: 'objectBoundingBox', - maskContentUnits: 'userSpaceOnUse', - x: '-10%', - y: '-10%', - width: '120%', - height: '120%', - }, - contentGroups: new Set([ - 'animation', - 'descriptive', - 'paintServer', - 'shape', - 'structural', - ]), - content: new Set([ - 'a', - 'altGlyphDef', - 'clipPath', - 'color-profile', - 'cursor', - 'filter', - 'font-face', - 'font', - 'foreignObject', - 'image', - 'marker', - 'mask', - 'pattern', - 'script', - 'style', - 'switch', - 'text', - 'view', - ]), - }, - metadata: { - attrsGroups: new Set(['core']), - }, - 'missing-glyph': { - attrsGroups: new Set(['core', 'presentation']), - attrs: new Set([ - 'class', - 'd', - 'horiz-adv-x', - 'style', - 'vert-adv-y', - 'vert-origin-x', - 'vert-origin-y', - ]), - contentGroups: new Set([ - 'animation', - 'descriptive', - 'paintServer', - 'shape', - 'structural', - ]), - content: new Set([ - 'a', - 'altGlyphDef', - 'clipPath', - 'color-profile', - 'cursor', - 'filter', - 'font-face', - 'font', - 'foreignObject', - 'image', - 'marker', - 'mask', - 'pattern', - 'script', - 'style', - 'switch', - 'text', - 'view', - ]), - }, - mpath: { - attrsGroups: new Set(['core', 'xlink']), - attrs: new Set(['externalResourcesRequired', 'href', 'xlink:href']), - contentGroups: new Set(['descriptive']), - }, - path: { - attrsGroups: new Set([ - 'conditionalProcessing', - 'core', - 'graphicalEvent', - 'presentation', - ]), - attrs: new Set([ - 'class', - 'd', - 'externalResourcesRequired', - 'pathLength', - 'style', - 'transform', - ]), - contentGroups: new Set(['animation', 'descriptive']), - }, - pattern: { - attrsGroups: new Set([ - 'conditionalProcessing', - 'core', - 'presentation', - 'xlink', - ]), - attrs: new Set([ - 'class', - 'externalResourcesRequired', - 'height', - 'href', - 'patternContentUnits', - 'patternTransform', - 'patternUnits', - 'preserveAspectRatio', - 'style', - 'viewBox', - 'width', - 'x', - 'xlink:href', - 'y', - ]), - defaults: { - patternUnits: 'objectBoundingBox', - patternContentUnits: 'userSpaceOnUse', - x: '0', - y: '0', - width: '0', - height: '0', - preserveAspectRatio: 'xMidYMid meet', - }, - contentGroups: new Set([ - 'animation', - 'descriptive', - 'paintServer', - 'shape', - 'structural', - ]), - content: new Set([ - 'a', - 'altGlyphDef', - 'clipPath', - 'color-profile', - 'cursor', - 'filter', - 'font-face', - 'font', - 'foreignObject', - 'image', - 'marker', - 'mask', - 'pattern', - 'script', - 'style', - 'switch', - 'text', - 'view', - ]), - }, - polygon: { - attrsGroups: new Set([ - 'conditionalProcessing', - 'core', - 'graphicalEvent', - 'presentation', - ]), - attrs: new Set([ - 'class', - 'externalResourcesRequired', - 'points', - 'style', - 'transform', - ]), - contentGroups: new Set(['animation', 'descriptive']), - }, - polyline: { - attrsGroups: new Set([ - 'conditionalProcessing', - 'core', - 'graphicalEvent', - 'presentation', - ]), - attrs: new Set([ - 'class', - 'externalResourcesRequired', - 'points', - 'style', - 'transform', - ]), - contentGroups: new Set(['animation', 'descriptive']), - }, - radialGradient: { - attrsGroups: new Set(['core', 'presentation', 'xlink']), - attrs: new Set([ - 'class', - 'cx', - 'cy', - 'externalResourcesRequired', - 'fr', - 'fx', - 'fy', - 'gradientTransform', - 'gradientUnits', - 'href', - 'r', - 'spreadMethod', - 'style', - 'xlink:href', - ]), - defaults: { - gradientUnits: 'objectBoundingBox', - cx: '50%', - cy: '50%', - r: '50%', - }, - contentGroups: new Set(['descriptive']), - content: new Set(['animate', 'animateTransform', 'set', 'stop']), - }, - meshGradient: { - attrsGroups: new Set(['core', 'presentation', 'xlink']), - attrs: new Set(['class', 'style', 'x', 'y', 'gradientUnits', 'transform']), - contentGroups: new Set(['descriptive', 'paintServer', 'animation']), - content: new Set(['meshRow']), - }, - meshRow: { - attrsGroups: new Set(['core', 'presentation']), - attrs: new Set(['class', 'style']), - contentGroups: new Set(['descriptive']), - content: new Set(['meshPatch']), - }, - meshPatch: { - attrsGroups: new Set(['core', 'presentation']), - attrs: new Set(['class', 'style']), - contentGroups: new Set(['descriptive']), - content: new Set(['stop']), - }, - rect: { - attrsGroups: new Set([ - 'conditionalProcessing', - 'core', - 'graphicalEvent', - 'presentation', - ]), - attrs: new Set([ - 'class', - 'externalResourcesRequired', - 'height', - 'rx', - 'ry', - 'style', - 'transform', - 'width', - 'x', - 'y', - ]), - defaults: { - x: '0', - y: '0', - }, - contentGroups: new Set(['animation', 'descriptive']), - }, - script: { - attrsGroups: new Set(['core', 'xlink']), - attrs: new Set(['externalResourcesRequired', 'type', 'href', 'xlink:href']), - }, - set: { - attrsGroups: new Set([ - 'animation', - 'animationAttributeTarget', - 'animationTiming', - 'conditionalProcessing', - 'core', - 'xlink', - ]), - attrs: new Set(['externalResourcesRequired', 'to']), - contentGroups: new Set(['descriptive']), - }, - solidColor: { - attrsGroups: new Set(['core', 'presentation']), - attrs: new Set(['class', 'style']), - contentGroups: new Set(['paintServer']), - }, - stop: { - attrsGroups: new Set(['core', 'presentation']), - attrs: new Set(['class', 'style', 'offset', 'path']), - content: new Set(['animate', 'animateColor', 'set']), - }, - style: { - attrsGroups: new Set(['core']), - attrs: new Set(['type', 'media', 'title']), - defaults: { - type: 'text/css', - }, - }, - svg: { - attrsGroups: new Set([ - 'conditionalProcessing', - 'core', - 'documentEvent', - 'graphicalEvent', - 'presentation', - ]), - attrs: new Set([ - 'baseProfile', - 'class', - 'contentScriptType', - 'contentStyleType', - 'height', - 'preserveAspectRatio', - 'style', - 'version', - 'viewBox', - 'width', - 'x', - 'y', - 'zoomAndPan', - ]), - defaults: { - x: '0', - y: '0', - width: '100%', - height: '100%', - preserveAspectRatio: 'xMidYMid meet', - zoomAndPan: 'magnify', - version: '1.1', - baseProfile: 'none', - contentScriptType: 'application/ecmascript', - contentStyleType: 'text/css', - }, - contentGroups: new Set([ - 'animation', - 'descriptive', - 'paintServer', - 'shape', - 'structural', - ]), - content: new Set([ - 'a', - 'altGlyphDef', - 'clipPath', - 'color-profile', - 'cursor', - 'filter', - 'font-face', - 'font', - 'foreignObject', - 'image', - 'marker', - 'mask', - 'pattern', - 'script', - 'style', - 'switch', - 'text', - 'view', - ]), - }, - switch: { - attrsGroups: new Set([ - 'conditionalProcessing', - 'core', - 'graphicalEvent', - 'presentation', - ]), - attrs: new Set([ - 'class', - 'externalResourcesRequired', - 'style', - 'transform', - ]), - contentGroups: new Set(['animation', 'descriptive', 'shape']), - content: new Set([ - 'a', - 'foreignObject', - 'g', - 'image', - 'svg', - 'switch', - 'text', - 'use', - ]), - }, - symbol: { - attrsGroups: new Set(['core', 'graphicalEvent', 'presentation']), - attrs: new Set([ - 'class', - 'externalResourcesRequired', - 'preserveAspectRatio', - 'refX', - 'refY', - 'style', - 'viewBox', - ]), - defaults: { - refX: '0', - refY: '0', - }, - contentGroups: new Set([ - 'animation', - 'descriptive', - 'paintServer', - 'shape', - 'structural', - ]), - content: new Set([ - 'a', - 'altGlyphDef', - 'clipPath', - 'color-profile', - 'cursor', - 'filter', - 'font-face', - 'font', - 'foreignObject', - 'image', - 'marker', - 'mask', - 'pattern', - 'script', - 'style', - 'switch', - 'text', - 'view', - ]), - }, - text: { - attrsGroups: new Set([ - 'conditionalProcessing', - 'core', - 'graphicalEvent', - 'presentation', - ]), - attrs: new Set([ - 'class', - 'dx', - 'dy', - 'externalResourcesRequired', - 'lengthAdjust', - 'rotate', - 'style', - 'textLength', - 'transform', - 'x', - 'y', - ]), - defaults: { - x: '0', - y: '0', - lengthAdjust: 'spacing', - }, - contentGroups: new Set(['animation', 'descriptive', 'textContentChild']), - content: new Set(['a']), - }, - textPath: { - attrsGroups: new Set([ - 'conditionalProcessing', - 'core', - 'graphicalEvent', - 'presentation', - 'xlink', - ]), - attrs: new Set([ - 'class', - 'd', - 'externalResourcesRequired', - 'href', - 'method', - 'spacing', - 'startOffset', - 'style', - 'xlink:href', - ]), - defaults: { - startOffset: '0', - method: 'align', - spacing: 'exact', - }, - contentGroups: new Set(['descriptive']), - content: new Set([ - 'a', - 'altGlyph', - 'animate', - 'animateColor', - 'set', - 'tref', - 'tspan', - ]), - }, - title: { - attrsGroups: new Set(['core']), - attrs: new Set(['class', 'style']), - }, - tref: { - attrsGroups: new Set([ - 'conditionalProcessing', - 'core', - 'graphicalEvent', - 'presentation', - 'xlink', - ]), - attrs: new Set([ - 'class', - 'externalResourcesRequired', - 'href', - 'style', - 'xlink:href', - ]), - contentGroups: new Set(['descriptive']), - content: new Set(['animate', 'animateColor', 'set']), - }, - tspan: { - attrsGroups: new Set([ - 'conditionalProcessing', - 'core', - 'graphicalEvent', - 'presentation', - ]), - attrs: new Set([ - 'class', - 'dx', - 'dy', - 'externalResourcesRequired', - 'lengthAdjust', - 'rotate', - 'style', - 'textLength', - 'x', - 'y', - ]), - contentGroups: new Set(['descriptive']), - content: new Set([ - 'a', - 'altGlyph', - 'animate', - 'animateColor', - 'set', - 'tref', - 'tspan', - ]), - }, - use: { - attrsGroups: new Set([ - 'conditionalProcessing', - 'core', - 'graphicalEvent', - 'presentation', - 'xlink', - ]), - attrs: new Set([ - 'class', - 'externalResourcesRequired', - 'height', - 'href', - 'style', - 'transform', - 'width', - 'x', - 'xlink:href', - 'y', - ]), - defaults: { - x: '0', - y: '0', - }, - contentGroups: new Set(['animation', 'descriptive']), - }, - view: { - attrsGroups: new Set(['core']), - attrs: new Set([ - 'externalResourcesRequired', - 'preserveAspectRatio', - 'viewBox', - 'viewTarget', - 'zoomAndPan', - ]), - contentGroups: new Set(['descriptive']), - }, - vkern: { - attrsGroups: new Set(['core']), - attrs: new Set(['u1', 'g1', 'u2', 'g2', 'k']), - }, -}; - -// https://wiki.inkscape.org/wiki/index.php/Inkscape-specific_XML_attributes -exports.editorNamespaces = new Set([ - 'http://creativecommons.org/ns#', - 'http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd', - 'http://ns.adobe.com/AdobeIllustrator/10.0/', - 'http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/', - 'http://ns.adobe.com/Extensibility/1.0/', - 'http://ns.adobe.com/Flows/1.0/', - 'http://ns.adobe.com/GenericCustomNamespace/1.0/', - 'http://ns.adobe.com/Graphs/1.0/', - 'http://ns.adobe.com/ImageReplacement/1.0/', - 'http://ns.adobe.com/SaveForWeb/1.0/', - 'http://ns.adobe.com/Variables/1.0/', - 'http://ns.adobe.com/XPath/1.0/', - 'http://purl.org/dc/elements/1.1/', - 'http://schemas.microsoft.com/visio/2003/SVGExtensions/', - 'http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd', - 'http://taptrix.com/vectorillustrator/svg_extensions', - 'http://www.bohemiancoding.com/sketch/ns', - 'http://www.figma.com/figma/ns', - 'http://www.inkscape.org/namespaces/inkscape', - 'http://www.serif.com/', - 'http://www.vector.evaxdesign.sk', - 'http://www.w3.org/1999/02/22-rdf-syntax-ns#', -]); - -/** - * @see https://www.w3.org/TR/SVG11/linking.html#processingIRI - */ -exports.referencesProps = new Set([ - 'clip-path', - 'color-profile', - 'fill', - 'filter', - 'marker-end', - 'marker-mid', - 'marker-start', - 'mask', - 'stroke', - 'style', -]); - -/** - * @see https://www.w3.org/TR/SVG11/propidx.html - */ -exports.inheritableAttrs = new Set([ - 'clip-rule', - 'color-interpolation-filters', - 'color-interpolation', - 'color-profile', - 'color-rendering', - 'color', - 'cursor', - 'direction', - 'dominant-baseline', - 'fill-opacity', - 'fill-rule', - 'fill', - 'font-family', - 'font-size-adjust', - 'font-size', - 'font-stretch', - 'font-style', - 'font-variant', - 'font-weight', - 'font', - 'glyph-orientation-horizontal', - 'glyph-orientation-vertical', - 'image-rendering', - 'letter-spacing', - 'marker-end', - 'marker-mid', - 'marker-start', - 'marker', - 'paint-order', - 'pointer-events', - 'shape-rendering', - 'stroke-dasharray', - 'stroke-dashoffset', - 'stroke-linecap', - 'stroke-linejoin', - 'stroke-miterlimit', - 'stroke-opacity', - 'stroke-width', - 'stroke', - 'text-anchor', - 'text-rendering', - 'transform', - 'visibility', - 'word-spacing', - 'writing-mode', -]); - -exports.presentationNonInheritableGroupAttrs = new Set([ - 'clip-path', - 'display', - 'filter', - 'mask', - 'opacity', - 'text-decoration', - 'transform', - 'unicode-bidi', -]); - -/** - * https://www.w3.org/TR/SVG11/single-page.html#types-ColorKeywords - * - * @type {Record<string, string>} - */ -exports.colorsNames = { - aliceblue: '#f0f8ff', - antiquewhite: '#faebd7', - aqua: '#0ff', - aquamarine: '#7fffd4', - azure: '#f0ffff', - beige: '#f5f5dc', - bisque: '#ffe4c4', - black: '#000', - blanchedalmond: '#ffebcd', - blue: '#00f', - blueviolet: '#8a2be2', - brown: '#a52a2a', - burlywood: '#deb887', - cadetblue: '#5f9ea0', - chartreuse: '#7fff00', - chocolate: '#d2691e', - coral: '#ff7f50', - cornflowerblue: '#6495ed', - cornsilk: '#fff8dc', - crimson: '#dc143c', - cyan: '#0ff', - darkblue: '#00008b', - darkcyan: '#008b8b', - darkgoldenrod: '#b8860b', - darkgray: '#a9a9a9', - darkgreen: '#006400', - darkgrey: '#a9a9a9', - darkkhaki: '#bdb76b', - darkmagenta: '#8b008b', - darkolivegreen: '#556b2f', - darkorange: '#ff8c00', - darkorchid: '#9932cc', - darkred: '#8b0000', - darksalmon: '#e9967a', - darkseagreen: '#8fbc8f', - darkslateblue: '#483d8b', - darkslategray: '#2f4f4f', - darkslategrey: '#2f4f4f', - darkturquoise: '#00ced1', - darkviolet: '#9400d3', - deeppink: '#ff1493', - deepskyblue: '#00bfff', - dimgray: '#696969', - dimgrey: '#696969', - dodgerblue: '#1e90ff', - firebrick: '#b22222', - floralwhite: '#fffaf0', - forestgreen: '#228b22', - fuchsia: '#f0f', - gainsboro: '#dcdcdc', - ghostwhite: '#f8f8ff', - gold: '#ffd700', - goldenrod: '#daa520', - gray: '#808080', - green: '#008000', - greenyellow: '#adff2f', - grey: '#808080', - honeydew: '#f0fff0', - hotpink: '#ff69b4', - indianred: '#cd5c5c', - indigo: '#4b0082', - ivory: '#fffff0', - khaki: '#f0e68c', - lavender: '#e6e6fa', - lavenderblush: '#fff0f5', - lawngreen: '#7cfc00', - lemonchiffon: '#fffacd', - lightblue: '#add8e6', - lightcoral: '#f08080', - lightcyan: '#e0ffff', - lightgoldenrodyellow: '#fafad2', - lightgray: '#d3d3d3', - lightgreen: '#90ee90', - lightgrey: '#d3d3d3', - lightpink: '#ffb6c1', - lightsalmon: '#ffa07a', - lightseagreen: '#20b2aa', - lightskyblue: '#87cefa', - lightslategray: '#789', - lightslategrey: '#789', - lightsteelblue: '#b0c4de', - lightyellow: '#ffffe0', - lime: '#0f0', - limegreen: '#32cd32', - linen: '#faf0e6', - magenta: '#f0f', - maroon: '#800000', - mediumaquamarine: '#66cdaa', - mediumblue: '#0000cd', - mediumorchid: '#ba55d3', - mediumpurple: '#9370db', - mediumseagreen: '#3cb371', - mediumslateblue: '#7b68ee', - mediumspringgreen: '#00fa9a', - mediumturquoise: '#48d1cc', - mediumvioletred: '#c71585', - midnightblue: '#191970', - mintcream: '#f5fffa', - mistyrose: '#ffe4e1', - moccasin: '#ffe4b5', - navajowhite: '#ffdead', - navy: '#000080', - oldlace: '#fdf5e6', - olive: '#808000', - olivedrab: '#6b8e23', - orange: '#ffa500', - orangered: '#ff4500', - orchid: '#da70d6', - palegoldenrod: '#eee8aa', - palegreen: '#98fb98', - paleturquoise: '#afeeee', - palevioletred: '#db7093', - papayawhip: '#ffefd5', - peachpuff: '#ffdab9', - peru: '#cd853f', - pink: '#ffc0cb', - plum: '#dda0dd', - powderblue: '#b0e0e6', - purple: '#800080', - rebeccapurple: '#639', - red: '#f00', - rosybrown: '#bc8f8f', - royalblue: '#4169e1', - saddlebrown: '#8b4513', - salmon: '#fa8072', - sandybrown: '#f4a460', - seagreen: '#2e8b57', - seashell: '#fff5ee', - sienna: '#a0522d', - silver: '#c0c0c0', - skyblue: '#87ceeb', - slateblue: '#6a5acd', - slategray: '#708090', - slategrey: '#708090', - snow: '#fffafa', - springgreen: '#00ff7f', - steelblue: '#4682b4', - tan: '#d2b48c', - teal: '#008080', - thistle: '#d8bfd8', - tomato: '#ff6347', - turquoise: '#40e0d0', - violet: '#ee82ee', - wheat: '#f5deb3', - white: '#fff', - whitesmoke: '#f5f5f5', - yellow: '#ff0', - yellowgreen: '#9acd32', -}; - -/** - * @type {Record<string, string>} - */ -exports.colorsShortNames = { - '#f0ffff': 'azure', - '#f5f5dc': 'beige', - '#ffe4c4': 'bisque', - '#a52a2a': 'brown', - '#ff7f50': 'coral', - '#ffd700': 'gold', - '#808080': 'gray', - '#008000': 'green', - '#4b0082': 'indigo', - '#fffff0': 'ivory', - '#f0e68c': 'khaki', - '#faf0e6': 'linen', - '#800000': 'maroon', - '#000080': 'navy', - '#808000': 'olive', - '#ffa500': 'orange', - '#da70d6': 'orchid', - '#cd853f': 'peru', - '#ffc0cb': 'pink', - '#dda0dd': 'plum', - '#800080': 'purple', - '#f00': 'red', - '#ff0000': 'red', - '#fa8072': 'salmon', - '#a0522d': 'sienna', - '#c0c0c0': 'silver', - '#fffafa': 'snow', - '#d2b48c': 'tan', - '#008080': 'teal', - '#ff6347': 'tomato', - '#ee82ee': 'violet', - '#f5deb3': 'wheat', -}; - -/** - * @see https://www.w3.org/TR/SVG11/single-page.html#types-DataTypeColor - */ -exports.colorsProps = new Set([ - 'color', - 'fill', - 'flood-color', - 'lighting-color', - 'stop-color', - 'stroke', -]); - -/** @see https://developer.mozilla.org/docs/Web/CSS/Pseudo-classes */ -exports.pseudoClasses = { - displayState: new Set(['fullscreen', 'modal', 'picture-in-picture']), - input: new Set([ - 'autofill', - 'blank', - 'checked', - 'default', - 'disabled', - 'enabled', - 'in-range', - 'indetermined', - 'invalid', - 'optional', - 'out-of-range', - 'placeholder-shown', - 'read-only', - 'read-write', - 'required', - 'user-invalid', - 'valid', - ]), - linguistic: new Set(['dir', 'lang']), - location: new Set([ - 'any-link', - 'link', - 'local-link', - 'scope', - 'target-within', - 'target', - 'visited', - ]), - resourceState: new Set(['playing', 'paused']), - timeDimensional: new Set(['current', 'past', 'future']), - treeStructural: new Set([ - 'empty', - 'first-child', - 'first-of-type', - 'last-child', - 'last-of-type', - 'nth-child', - 'nth-last-child', - 'nth-last-of-type', - 'nth-of-type', - 'only-child', - 'only-of-type', - 'root', - ]), - userAction: new Set([ - 'active', - 'focus-visible', - 'focus-within', - 'focus', - 'hover', - ]), - functional: new Set(['is', 'not', 'where', 'has']), -}; |
