UNPKG

@builder.io/mitosis

Version:

Write components once, run everywhere. Compiles to Vue, React, Solid, and Liquid. Import code from Figma and Builder.io

372 lines (371 loc) 7.99 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isHtmlAttribute = exports.htmlElementAttributes = void 0; exports.htmlElementAttributes = { '*': [ 'accesskey', 'autocapitalize', 'autofocus', 'class', 'contenteditable', 'dir', 'draggable', 'enterkeyhint', 'hidden', 'id', 'inputmode', 'is', 'itemid', 'itemprop', 'itemref', 'itemscope', 'itemtype', 'lang', 'nonce', 'slot', 'spellcheck', 'style', 'tabindex', 'title', 'translate', ], a: [ 'charset', 'coords', 'download', 'href', 'hreflang', 'name', 'ping', 'referrerpolicy', 'rel', 'rev', 'shape', 'target', 'type', ], applet: [ 'align', 'alt', 'archive', 'code', 'codebase', 'height', 'hspace', 'name', 'object', 'vspace', 'width', ], area: [ 'alt', 'coords', 'download', 'href', 'hreflang', 'nohref', 'ping', 'referrerpolicy', 'rel', 'shape', 'target', 'type', ], audio: ['autoplay', 'controls', 'crossorigin', 'loop', 'muted', 'preload', 'src'], base: ['href', 'target'], basefont: ['color', 'face', 'size'], blockquote: ['cite'], body: ['alink', 'background', 'bgcolor', 'link', 'text', 'vlink'], br: ['clear'], button: [ 'disabled', 'form', 'formaction', 'formenctype', 'formmethod', 'formnovalidate', 'formtarget', 'name', 'type', 'value', ], canvas: ['height', 'width'], caption: ['align'], col: ['align', 'char', 'charoff', 'span', 'valign', 'width'], colgroup: ['align', 'char', 'charoff', 'span', 'valign', 'width'], data: ['value'], del: ['cite', 'datetime'], details: ['open'], dialog: ['open'], dir: ['compact'], div: ['align'], dl: ['compact'], embed: ['height', 'src', 'type', 'width'], fieldset: ['disabled', 'form', 'name'], font: ['color', 'face', 'size'], form: [ 'accept', 'accept-charset', 'action', 'autocomplete', 'enctype', 'method', 'name', 'novalidate', 'target', ], frame: [ 'frameborder', 'longdesc', 'marginheight', 'marginwidth', 'name', 'noresize', 'scrolling', 'src', ], frameset: ['cols', 'rows'], h1: ['align'], h2: ['align'], h3: ['align'], h4: ['align'], h5: ['align'], h6: ['align'], head: ['profile'], hr: ['align', 'noshade', 'size', 'width'], html: ['manifest', 'version'], iframe: [ 'align', 'allow', 'allowfullscreen', 'allowpaymentrequest', 'allowusermedia', 'frameborder', 'height', 'loading', 'longdesc', 'marginheight', 'marginwidth', 'name', 'referrerpolicy', 'sandbox', 'scrolling', 'src', 'srcdoc', 'width', ], img: [ 'align', 'alt', 'border', 'crossorigin', 'decoding', 'height', 'hspace', 'ismap', 'loading', 'longdesc', 'name', 'referrerpolicy', 'sizes', 'src', 'srcset', 'usemap', 'vspace', 'width', ], input: [ 'accept', 'align', 'alt', 'autocomplete', 'checked', 'dirname', 'disabled', 'form', 'formaction', 'formenctype', 'formmethod', 'formnovalidate', 'formtarget', 'height', 'ismap', 'list', 'max', 'maxlength', 'min', 'minlength', 'multiple', 'name', 'pattern', 'placeholder', 'readonly', 'required', 'size', 'src', 'step', 'type', 'usemap', 'value', 'width', ], ins: ['cite', 'datetime'], isindex: ['prompt'], label: ['for', 'form'], legend: ['align'], li: ['type', 'value'], link: [ 'as', 'charset', 'color', 'crossorigin', 'disabled', 'href', 'hreflang', 'imagesizes', 'imagesrcset', 'integrity', 'media', 'referrerpolicy', 'rel', 'rev', 'sizes', 'target', 'type', ], map: ['name'], menu: ['compact'], meta: ['charset', 'content', 'http-equiv', 'media', 'name', 'scheme'], meter: ['high', 'low', 'max', 'min', 'optimum', 'value'], object: [ 'align', 'archive', 'border', 'classid', 'codebase', 'codetype', 'data', 'declare', 'form', 'height', 'hspace', 'name', 'standby', 'type', 'typemustmatch', 'usemap', 'vspace', 'width', ], ol: ['compact', 'reversed', 'start', 'type'], optgroup: ['disabled', 'label'], option: ['disabled', 'label', 'selected', 'value'], output: ['for', 'form', 'name'], p: ['align'], param: ['name', 'type', 'value', 'valuetype'], pre: ['width'], progress: ['max', 'value'], q: ['cite'], script: [ 'async', 'charset', 'crossorigin', 'defer', 'integrity', 'language', 'nomodule', 'referrerpolicy', 'src', 'type', ], select: ['autocomplete', 'disabled', 'form', 'multiple', 'name', 'required', 'size'], slot: ['name'], source: ['height', 'media', 'sizes', 'src', 'srcset', 'type', 'width'], style: ['media', 'type'], table: [ 'align', 'bgcolor', 'border', 'cellpadding', 'cellspacing', 'frame', 'rules', 'summary', 'width', ], tbody: ['align', 'char', 'charoff', 'valign'], td: [ 'abbr', 'align', 'axis', 'bgcolor', 'char', 'charoff', 'colspan', 'headers', 'height', 'nowrap', 'rowspan', 'scope', 'valign', 'width', ], textarea: [ 'autocomplete', 'cols', 'dirname', 'disabled', 'form', 'maxlength', 'minlength', 'name', 'placeholder', 'readonly', 'required', 'rows', 'wrap', ], tfoot: ['align', 'char', 'charoff', 'valign'], th: [ 'abbr', 'align', 'axis', 'bgcolor', 'char', 'charoff', 'colspan', 'headers', 'height', 'nowrap', 'rowspan', 'scope', 'valign', 'width', ], thead: ['align', 'char', 'charoff', 'valign'], time: ['datetime'], tr: ['align', 'bgcolor', 'char', 'charoff', 'valign'], track: ['default', 'kind', 'label', 'src', 'srclang'], ul: ['compact', 'type'], video: [ 'autoplay', 'controls', 'crossorigin', 'height', 'loop', 'muted', 'playsinline', 'poster', 'preload', 'src', 'width', ], }; const isHtmlAttribute = (attr, tagName) => { if (/role|aria-/.test(attr)) { return true; } const getAttr = [...exports.htmlElementAttributes['*'], ...(exports.htmlElementAttributes[tagName] || [])].find((attribute) => attr === attribute); return Boolean(getAttr); }; exports.isHtmlAttribute = isHtmlAttribute;