Spaces:
Sleeping
Sleeping
| /** | |
| * This module needs to remain pure JavaScript for codegen to work on it | |
| */ | |
| const props = { | |
| // react props | |
| // https://github.com/facebook/react/blob/5495a7f24aef85ba6937truetrue1ce962673ca9f5fde6/src/renderers/dom/shared/hooks/ReactDOMUnknownPropertyHook.js | |
| children: true, | |
| dangerouslySetInnerHTML: true, | |
| key: true, | |
| ref: true, | |
| autoFocus: true, | |
| defaultValue: true, | |
| defaultChecked: true, | |
| innerHTML: true, | |
| suppressContentEditableWarning: true, | |
| suppressHydrationWarning: true, | |
| // deprecated react prop | |
| valueLink: true, | |
| // https://github.com/facebook/react/blob/d7157651f7b72d9888ctrue123e191f9b88cd8f41e9/src/renderers/dom/shared/HTMLDOMPropertyConfig.js | |
| /** | |
| * Standard Properties | |
| */ | |
| abbr: true, | |
| accept: true, | |
| acceptCharset: true, | |
| accessKey: true, | |
| action: true, | |
| allow: true, | |
| allowUserMedia: true, | |
| allowPaymentRequest: true, | |
| allowFullScreen: true, | |
| allowTransparency: true, | |
| alt: true, | |
| // specifies target context for links with `preload` type | |
| // as: true, | |
| async: true, | |
| autoComplete: true, | |
| // autoFocus is polyfilled/normalized by AutoFocusUtils | |
| // autoFocus: true, | |
| autoPlay: true, | |
| capture: true, | |
| cellPadding: true, | |
| cellSpacing: true, | |
| // keygen prop | |
| challenge: true, | |
| charSet: true, | |
| checked: true, | |
| cite: true, | |
| classID: true, | |
| className: true, | |
| cols: true, | |
| colSpan: true, | |
| content: true, | |
| contentEditable: true, | |
| contextMenu: true, | |
| controls: true, | |
| controlsList: true, | |
| coords: true, | |
| crossOrigin: true, | |
| data: true, // For `<object />` acts as `src`. | |
| dateTime: true, | |
| decoding: true, | |
| default: true, | |
| defer: true, | |
| dir: true, | |
| disabled: true, | |
| disablePictureInPicture: true, | |
| disableRemotePlayback: true, | |
| download: true, | |
| draggable: true, | |
| encType: true, | |
| enterKeyHint: true, | |
| fetchpriority: true, | |
| fetchPriority: true, | |
| form: true, | |
| formAction: true, | |
| formEncType: true, | |
| formMethod: true, | |
| formNoValidate: true, | |
| formTarget: true, | |
| frameBorder: true, | |
| headers: true, | |
| height: true, | |
| hidden: true, | |
| high: true, | |
| href: true, | |
| hrefLang: true, | |
| htmlFor: true, | |
| httpEquiv: true, | |
| id: true, | |
| inputMode: true, | |
| integrity: true, | |
| is: true, | |
| keyParams: true, | |
| keyType: true, | |
| kind: true, | |
| label: true, | |
| lang: true, | |
| list: true, | |
| loading: true, | |
| loop: true, | |
| low: true, | |
| // manifest: true, | |
| marginHeight: true, | |
| marginWidth: true, | |
| max: true, | |
| maxLength: true, | |
| media: true, | |
| mediaGroup: true, | |
| method: true, | |
| min: true, | |
| minLength: true, | |
| // Caution; `option.selected` is not updated if `select.multiple` is | |
| // disabled with `removeAttribute`. | |
| multiple: true, | |
| muted: true, | |
| name: true, | |
| nonce: true, | |
| noValidate: true, | |
| open: true, | |
| optimum: true, | |
| pattern: true, | |
| placeholder: true, | |
| playsInline: true, | |
| poster: true, | |
| preload: true, | |
| profile: true, | |
| radioGroup: true, | |
| readOnly: true, | |
| referrerPolicy: true, | |
| rel: true, | |
| required: true, | |
| reversed: true, | |
| role: true, | |
| rows: true, | |
| rowSpan: true, | |
| sandbox: true, | |
| scope: true, | |
| scoped: true, | |
| scrolling: true, | |
| seamless: true, | |
| selected: true, | |
| shape: true, | |
| size: true, | |
| sizes: true, | |
| // support for projecting regular DOM Elements via V1 named slots ( shadow dom ) | |
| slot: true, | |
| span: true, | |
| spellCheck: true, | |
| src: true, | |
| srcDoc: true, | |
| srcLang: true, | |
| srcSet: true, | |
| start: true, | |
| step: true, | |
| style: true, | |
| summary: true, | |
| tabIndex: true, | |
| target: true, | |
| title: true, | |
| translate: true, | |
| // Setting .type throws on non-<input> tags | |
| type: true, | |
| useMap: true, | |
| value: true, | |
| width: true, | |
| wmode: true, | |
| wrap: true, | |
| /** | |
| * RDFa Properties | |
| */ | |
| about: true, | |
| datatype: true, | |
| inlist: true, | |
| prefix: true, | |
| // property is also supported for OpenGraph in meta tags. | |
| property: true, | |
| resource: true, | |
| typeof: true, | |
| vocab: true, | |
| /** | |
| * Non-standard Properties | |
| */ | |
| // autoCapitalize and autoCorrect are supported in Mobile Safari for | |
| // keyboard hints. | |
| autoCapitalize: true, | |
| autoCorrect: true, | |
| // autoSave allows WebKit/Blink to persist values of input fields on page reloads | |
| autoSave: true, | |
| // color is for Safari mask-icon link | |
| color: true, | |
| // https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/search#incremental_This_API_has_not_been_standardized | |
| incremental: true, | |
| // used in amp html for indicating the fallback behavior | |
| // https://amp.dev/documentation/guides-and-tutorials/develop/style_and_layout/placeholders/ | |
| fallback: true, | |
| // https://html.spec.whatwg.org/multipage/interaction.html#inert | |
| inert: true, | |
| // itemProp, itemScope, itemType are for | |
| // Microdata support. See http://schema.org/docs/gs.html | |
| itemProp: true, | |
| itemScope: true, | |
| itemType: true, | |
| // itemID and itemRef are for Microdata support as well but | |
| // only specified in the WHATWG spec document. See | |
| // https://html.spec.whatwg.org/multipage/microdata.html#microdata-dom-api | |
| itemID: true, | |
| itemRef: true, | |
| // used in amp html for eventing purposes | |
| // https://amp.dev/documentation/guides-and-tutorials/learn/common_attributes/ | |
| on: true, | |
| // used in amp html for indicating that the option is selectable | |
| // https://amp.dev/documentation/components/amp-selector/ | |
| option: true, | |
| // results show looking glass icon and recent searches on input | |
| // search fields in WebKit/Blink | |
| results: true, | |
| // IE-only attribute that specifies security restrictions on an iframe | |
| // as an alternative to the sandbox attribute on IE<1true | |
| security: true, | |
| // IE-only attribute that controls focus behavior | |
| unselectable: true, | |
| // | |
| // SVG properties: https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute | |
| // The following "onX" events have been omitted: | |
| // | |
| // onabort | |
| // onactivate | |
| // onbegin | |
| // onclick | |
| // onend | |
| // onerror | |
| // onfocusin | |
| // onfocusout | |
| // onload | |
| // onmousedown | |
| // onmousemove | |
| // onmouseout | |
| // onmouseover | |
| // onmouseup | |
| // onrepeat | |
| // onresize | |
| // onscroll | |
| // onunload | |
| accentHeight: true, | |
| accumulate: true, | |
| additive: true, | |
| alignmentBaseline: true, | |
| allowReorder: true, | |
| alphabetic: true, | |
| amplitude: true, | |
| arabicForm: true, | |
| ascent: true, | |
| attributeName: true, | |
| attributeType: true, | |
| autoReverse: true, | |
| azimuth: true, | |
| baseFrequency: true, | |
| baselineShift: true, | |
| baseProfile: true, | |
| bbox: true, | |
| begin: true, | |
| bias: true, | |
| by: true, | |
| calcMode: true, | |
| capHeight: true, | |
| clip: true, | |
| clipPathUnits: true, | |
| clipPath: true, | |
| clipRule: true, | |
| colorInterpolation: true, | |
| colorInterpolationFilters: true, | |
| colorProfile: true, | |
| colorRendering: true, | |
| contentScriptType: true, | |
| contentStyleType: true, | |
| cursor: true, | |
| cx: true, | |
| cy: true, | |
| d: true, | |
| decelerate: true, | |
| descent: true, | |
| diffuseConstant: true, | |
| direction: true, | |
| display: true, | |
| divisor: true, | |
| dominantBaseline: true, | |
| dur: true, | |
| dx: true, | |
| dy: true, | |
| edgeMode: true, | |
| elevation: true, | |
| enableBackground: true, | |
| end: true, | |
| exponent: true, | |
| externalResourcesRequired: true, | |
| fill: true, | |
| fillOpacity: true, | |
| fillRule: true, | |
| filter: true, | |
| filterRes: true, | |
| filterUnits: true, | |
| floodColor: true, | |
| floodOpacity: true, | |
| focusable: true, | |
| fontFamily: true, | |
| fontSize: true, | |
| fontSizeAdjust: true, | |
| fontStretch: true, | |
| fontStyle: true, | |
| fontVariant: true, | |
| fontWeight: true, | |
| format: true, | |
| from: true, | |
| fr: true, // valid SVG element but React will ask for removal | |
| fx: true, | |
| fy: true, | |
| g1: true, | |
| g2: true, | |
| glyphName: true, | |
| glyphOrientationHorizontal: true, | |
| glyphOrientationVertical: true, | |
| glyphRef: true, | |
| gradientTransform: true, | |
| gradientUnits: true, | |
| hanging: true, | |
| horizAdvX: true, | |
| horizOriginX: true, | |
| ideographic: true, | |
| imageRendering: true, | |
| in: true, | |
| in2: true, | |
| intercept: true, | |
| k: true, | |
| k1: true, | |
| k2: true, | |
| k3: true, | |
| k4: true, | |
| kernelMatrix: true, | |
| kernelUnitLength: true, | |
| kerning: true, | |
| keyPoints: true, | |
| keySplines: true, | |
| keyTimes: true, | |
| lengthAdjust: true, | |
| letterSpacing: true, | |
| lightingColor: true, | |
| limitingConeAngle: true, | |
| local: true, | |
| markerEnd: true, | |
| markerMid: true, | |
| markerStart: true, | |
| markerHeight: true, | |
| markerUnits: true, | |
| markerWidth: true, | |
| mask: true, | |
| maskContentUnits: true, | |
| maskUnits: true, | |
| mathematical: true, | |
| mode: true, | |
| numOctaves: true, | |
| offset: true, | |
| opacity: true, | |
| operator: true, | |
| order: true, | |
| orient: true, | |
| orientation: true, | |
| origin: true, | |
| overflow: true, | |
| overlinePosition: true, | |
| overlineThickness: true, | |
| panose1: true, | |
| paintOrder: true, | |
| pathLength: true, | |
| patternContentUnits: true, | |
| patternTransform: true, | |
| patternUnits: true, | |
| pointerEvents: true, | |
| points: true, | |
| pointsAtX: true, | |
| pointsAtY: true, | |
| pointsAtZ: true, | |
| preserveAlpha: true, | |
| preserveAspectRatio: true, | |
| primitiveUnits: true, | |
| r: true, | |
| radius: true, | |
| refX: true, | |
| refY: true, | |
| renderingIntent: true, | |
| repeatCount: true, | |
| repeatDur: true, | |
| requiredExtensions: true, | |
| requiredFeatures: true, | |
| restart: true, | |
| result: true, | |
| rotate: true, | |
| rx: true, | |
| ry: true, | |
| scale: true, | |
| seed: true, | |
| shapeRendering: true, | |
| slope: true, | |
| spacing: true, | |
| specularConstant: true, | |
| specularExponent: true, | |
| speed: true, | |
| spreadMethod: true, | |
| startOffset: true, | |
| stdDeviation: true, | |
| stemh: true, | |
| stemv: true, | |
| stitchTiles: true, | |
| stopColor: true, | |
| stopOpacity: true, | |
| strikethroughPosition: true, | |
| strikethroughThickness: true, | |
| string: true, | |
| stroke: true, | |
| strokeDasharray: true, | |
| strokeDashoffset: true, | |
| strokeLinecap: true, | |
| strokeLinejoin: true, | |
| strokeMiterlimit: true, | |
| strokeOpacity: true, | |
| strokeWidth: true, | |
| surfaceScale: true, | |
| systemLanguage: true, | |
| tableValues: true, | |
| targetX: true, | |
| targetY: true, | |
| textAnchor: true, | |
| textDecoration: true, | |
| textRendering: true, | |
| textLength: true, | |
| to: true, | |
| transform: true, | |
| u1: true, | |
| u2: true, | |
| underlinePosition: true, | |
| underlineThickness: true, | |
| unicode: true, | |
| unicodeBidi: true, | |
| unicodeRange: true, | |
| unitsPerEm: true, | |
| vAlphabetic: true, | |
| vHanging: true, | |
| vIdeographic: true, | |
| vMathematical: true, | |
| values: true, | |
| vectorEffect: true, | |
| version: true, | |
| vertAdvY: true, | |
| vertOriginX: true, | |
| vertOriginY: true, | |
| viewBox: true, | |
| viewTarget: true, | |
| visibility: true, | |
| widths: true, | |
| wordSpacing: true, | |
| writingMode: true, | |
| x: true, | |
| xHeight: true, | |
| x1: true, | |
| x2: true, | |
| xChannelSelector: true, | |
| xlinkActuate: true, | |
| xlinkArcrole: true, | |
| xlinkHref: true, | |
| xlinkRole: true, | |
| xlinkShow: true, | |
| xlinkTitle: true, | |
| xlinkType: true, | |
| xmlBase: true, | |
| xmlns: true, | |
| xmlnsXlink: true, | |
| xmlLang: true, | |
| xmlSpace: true, | |
| y: true, | |
| y1: true, | |
| y2: true, | |
| yChannelSelector: true, | |
| z: true, | |
| zoomAndPan: true, | |
| // For preact. We have this code here even though Emotion doesn't support | |
| // Preact, since @emotion/is-prop-valid is used by some libraries outside of | |
| // the context of Emotion. | |
| for: true, | |
| class: true, | |
| autofocus: true | |
| } | |
| module.exports = `/^((${Object.keys(props).join( | |
| '|' | |
| )})|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/` | |