{"version":3,"file":"react-render-markup.cjs","sources":["../src/constants/nodeTypes.js","../src/constants/standardProps.js","../src/constants/reactProps.js","../src/attrsToProps.js","../src/getDisplayName.js","../src/nodeNameToType.js","../src/nodesToElements.js","../src/Markup.js","../src/renderMarkup.js"],"sourcesContent":["// See https://dom.spec.whatwg.org/#dom-node-nodetype\nexport const ELEMENT_NODE = 1;\nexport const TEXT_NODE = 3;\n","// Mapping of standard attribute names to prop names.\n// Based off https://github.com/facebook/react/blob/feb134c30d20ef332771d71d8d1cb66d34311637/packages/react-dom/src/shared/possibleStandardNames.js\nexport default new Map([\n  // HTML\n  ['accept-charset', 'acceptCharset'],\n  ['accesskey', 'accessKey'],\n  ['allowfullscreen', 'allowFullScreen'],\n  ['autocapitalize', 'autoCapitalize'],\n  ['autocomplete', 'autoComplete'],\n  ['autocorrect', 'autoCorrect'],\n  ['autofocus', 'autoFocus'],\n  ['autoplay', 'autoPlay'],\n  ['autosave', 'autoSave'],\n  ['cellpadding', 'cellPadding'],\n  ['cellspacing', 'cellSpacing'],\n  ['charset', 'charSet'],\n  ['class', 'className'],\n  ['classid', 'classID'],\n  ['classname', 'className'],\n  ['colspan', 'colSpan'],\n  ['contenteditable', 'contentEditable'],\n  ['contextmenu', 'contextMenu'],\n  ['controlslist', 'controlsList'],\n  ['crossorigin', 'crossOrigin'],\n  ['datetime', 'dateTime'],\n  ['disablepictureinpicture', 'disablePictureInPicture'],\n  ['disableremoteplayback', 'disableRemotePlayback'],\n  ['enctype', 'encType'],\n  ['enterkeyhint', 'enterKeyHint'],\n  ['for', 'htmlFor'],\n  ['formmethod', 'formMethod'],\n  ['formaction', 'formAction'],\n  ['formenctype', 'formEncType'],\n  ['formnovalidate', 'formNoValidate'],\n  ['formtarget', 'formTarget'],\n  ['frameborder', 'frameBorder'],\n  ['hreflang', 'hrefLang'],\n  ['htmlfor', 'htmlFor'],\n  ['http-equiv', 'httpEquiv'],\n  ['inputmode', 'inputMode'],\n  ['itemid', 'itemID'],\n  ['itemprop', 'itemProp'],\n  ['itemref', 'itemRef'],\n  ['itemscope', 'itemScope'],\n  ['itemtype', 'itemType'],\n  ['keyparams', 'keyParams'],\n  ['keytype', 'keyType'],\n  ['marginwidth', 'marginWidth'],\n  ['marginheight', 'marginHeight'],\n  ['maxlength', 'maxLength'],\n  ['mediagroup', 'mediaGroup'],\n  ['minlength', 'minLength'],\n  ['nomodule', 'noModule'],\n  ['novalidate', 'noValidate'],\n  ['playsinline', 'playsInline'],\n  ['radiogroup', 'radioGroup'],\n  ['readonly', 'readOnly'],\n  ['referrerpolicy', 'referrerPolicy'],\n  ['rowspan', 'rowSpan'],\n  ['spellcheck', 'spellCheck'],\n  ['srcdoc', 'srcDoc'],\n  ['srclang', 'srcLang'],\n  ['srcset', 'srcSet'],\n  ['tabindex', 'tabIndex'],\n  ['usemap', 'useMap'],\n\n  // SVG\n  ['accent-height', 'accentHeight'],\n  ['alignment-baseline', 'alignmentBaseline'],\n  ['allowreorder', 'allowReorder'],\n  ['arabic-form', 'arabicForm'],\n  ['attributename', 'attributeName'],\n  ['attributetype', 'attributeType'],\n  ['autoreverse', 'autoReverse'],\n  ['basefrequency', 'baseFrequency'],\n  ['baseline-shift', 'baselineShift'],\n  ['baseprofile', 'baseProfile'],\n  ['calcmode', 'calcMode'],\n  ['cap-height', 'capHeight'],\n  ['clip-path', 'clipPath'],\n  ['clippathunits', 'clipPathUnits'],\n  ['clip-rule', 'clipRule'],\n  ['color-interpolation', 'colorInterpolation'],\n  ['color-interpolation-filters', 'colorInterpolationFilters'],\n  ['color-profile', 'colorProfile'],\n  ['color-rendering', 'colorRendering'],\n  ['contentscripttype', 'contentScriptType'],\n  ['contentstyletype', 'contentStyleType'],\n  ['diffuseconstant', 'diffuseConstant'],\n  ['dominantbaseline', 'dominantBaseline'],\n  ['dominant-baseline', 'dominantBaseline'],\n  ['edgemode', 'edgeMode'],\n  ['enable-background', 'enableBackground'],\n  ['externalresourcesrequired', 'externalResourcesRequired'],\n  ['fill-opacity', 'fillOpacity'],\n  ['fill-rule', 'fillRule'],\n  ['filterres', 'filterRes'],\n  ['filterunits', 'filterUnits'],\n  ['flood-opacity', 'floodOpacity'],\n  ['flood-color', 'floodColor'],\n  ['fontfamily', 'fontFamily'],\n  ['font-family', 'fontFamily'],\n  ['font-size', 'fontSize'],\n  ['font-size-adjust', 'fontSizeAdjust'],\n  ['font-stretch', 'fontStretch'],\n  ['font-style', 'fontStyle'],\n  ['font-variant', 'fontVariant'],\n  ['font-weight', 'fontWeight'],\n  ['glyph-name', 'glyphName'],\n  ['glyph-orientation-horizontal', 'glyphOrientationHorizontal'],\n  ['glyph-orientation-vertical', 'glyphOrientationVertical'],\n  ['glyphref', 'glyphRef'],\n  ['gradienttransform', 'gradientTransform'],\n  ['gradientunits', 'gradientUnits'],\n  ['horiz-adv-x', 'horizAdvX'],\n  ['horiz-origin-x', 'horizOriginX'],\n  ['image-rendering', 'imageRendering'],\n  ['kernelmatrix', 'kernelMatrix'],\n  ['kernelunitlength', 'kernelUnitLength'],\n  ['keypoints', 'keyPoints'],\n  ['keysplines', 'keySplines'],\n  ['keytimes', 'keyTimes'],\n  ['lengthadjust', 'lengthAdjust'],\n  ['letter-spacing', 'letterSpacing'],\n  ['lighting-color', 'lightingColor'],\n  ['limitingconeangle', 'limitingConeAngle'],\n  ['marker-end', 'markerEnd'],\n  ['markerheight', 'markerHeight'],\n  ['marker-mid', 'markerMid'],\n  ['marker-start', 'markerStart'],\n  ['markerunits', 'markerUnits'],\n  ['markerwidth', 'markerWidth'],\n  ['maskcontentunits', 'maskContentUnits'],\n  ['maskunits', 'maskUnits'],\n  ['numoctaves', 'numOctaves'],\n  ['overline-position', 'overlinePosition'],\n  ['overline-thickness', 'overlineThickness'],\n  ['paintorder', 'paintOrder'],\n  ['paint-order', 'paintOrder'],\n  ['panose-1', 'panose1'],\n  ['pathlength', 'pathLength'],\n  ['patterncontentunits', 'patternContentUnits'],\n  ['patterntransform', 'patternTransform'],\n  ['patternunits', 'patternUnits'],\n  ['pointerevents', 'pointerEvents'],\n  ['pointer-events', 'pointerEvents'],\n  ['pointsatx', 'pointsAtX'],\n  ['pointsaty', 'pointsAtY'],\n  ['pointsatz', 'pointsAtZ'],\n  ['preservealpha', 'preserveAlpha'],\n  ['preserveaspectratio', 'preserveAspectRatio'],\n  ['primitiveunits', 'primitiveUnits'],\n  ['refx', 'refX'],\n  ['refy', 'refY'],\n  ['rendering-intent', 'renderingIntent'],\n  ['repeatcount', 'repeatCount'],\n  ['repeatdur', 'repeatDur'],\n  ['requiredextensions', 'requiredExtensions'],\n  ['requiredfeatures', 'requiredFeatures'],\n  ['shape-rendering', 'shapeRendering'],\n  ['specularconstant', 'specularConstant'],\n  ['specularexponent', 'specularExponent'],\n  ['spreadmethod', 'spreadMethod'],\n  ['startoffset', 'startOffset'],\n  ['stddeviation', 'stdDeviation'],\n  ['stitchtiles', 'stitchTiles'],\n  ['stop-color', 'stopColor'],\n  ['stop-opacity', 'stopOpacity'],\n  ['strikethrough-position', 'strikethroughPosition'],\n  ['strikethrough-thickness', 'strikethroughThickness'],\n  ['stroke-dasharray', 'strokeDasharray'],\n  ['stroke-dashoffset', 'strokeDashoffset'],\n  ['stroke-linecap', 'strokeLinecap'],\n  ['stroke-linejoin', 'strokeLinejoin'],\n  ['stroke-miterlimit', 'strokeMiterlimit'],\n  ['stroke-width', 'strokeWidth'],\n  ['stroke-opacity', 'strokeOpacity'],\n  ['surfacescale', 'surfaceScale'],\n  ['systemlanguage', 'systemLanguage'],\n  ['tablevalues', 'tableValues'],\n  ['targetx', 'targetX'],\n  ['targety', 'targetY'],\n  ['text-anchor', 'textAnchor'],\n  ['text-decoration', 'textDecoration'],\n  ['textlength', 'textLength'],\n  ['text-rendering', 'textRendering'],\n  ['underline-position', 'underlinePosition'],\n  ['underline-thickness', 'underlineThickness'],\n  ['unicode-bidi', 'unicodeBidi'],\n  ['unicode-range', 'unicodeRange'],\n  ['units-per-em', 'unitsPerEm'],\n  ['v-alphabetic', 'vAlphabetic'],\n  ['vector-effect', 'vectorEffect'],\n  ['vert-adv-y', 'vertAdvY'],\n  ['vert-origin-x', 'vertOriginX'],\n  ['vert-origin-y', 'vertOriginY'],\n  ['v-hanging', 'vHanging'],\n  ['v-ideographic', 'vIdeographic'],\n  ['viewbox', 'viewBox'],\n  ['viewtarget', 'viewTarget'],\n  ['v-mathematical', 'vMathematical'],\n  ['word-spacing', 'wordSpacing'],\n  ['writing-mode', 'writingMode'],\n  ['xchannelselector', 'xChannelSelector'],\n  ['x-height', 'xHeight'],\n  ['xlink:actuate', 'xlinkActuate'],\n  ['xlink:arcrole', 'xlinkArcrole'],\n  ['xlink:href', 'xlinkHref'],\n  ['xlink:role', 'xlinkRole'],\n  ['xlink:show', 'xlinkShow'],\n  ['xlink:title', 'xlinkTitle'],\n  ['xlink:type', 'xlinkType'],\n  ['xml:base', 'xmlBase'],\n  ['xml:lang', 'xmlLang'],\n  ['xml:space', 'xmlSpace'],\n  ['xmlns:xlink', 'xmlnsXlink'],\n  ['ychannelselector', 'yChannelSelector'],\n  ['zoomandpan', 'zoomAndPan'],\n]);\n","export default new Set([\n  'children',\n  'dangerouslySetInnerHTML',\n  'key',\n  'ref',\n  'defaultValue',\n  'defaultChecked',\n  'innerHTML',\n  'suppressContentEditableWarning',\n  'suppressHydrationWarning',\n  // deprecated\n  'valueLink',\n]);\n","import cssToStyle from 'css-to-style';\nimport standardProps from './constants/standardProps';\nimport reactProps from './constants/reactProps';\n\nconst attrsToProps = (attrs) => {\n  const props = {};\n  for (let i = 0; i < attrs.length; i++) {\n    const { name, value } = attrs[i];\n    // Disallow event attributes and react props.\n    if (name.startsWith('on') || reactProps.has(name)) {\n      continue;\n    }\n    // Don't modify aria-* or data-* attributes.\n    if (name.startsWith('aria-') || name.startsWith('data-')) {\n      props[name] = value;\n      continue;\n    }\n    // Handle style attribute.\n    if (name === 'style') {\n      props[name] = cssToStyle(value);\n      continue;\n    }\n    props[standardProps.get(name) ?? name] = value === '' ? true : value;\n  }\n  return props;\n};\n\nexport default attrsToProps;\n","const getDisplayName = (component) =>\n  typeof component === 'string'\n    ? component\n    : component.displayName || component.name || 'Unknown';\n\nexport default getDisplayName;\n","// HTML elements are always in the canonical upper-case form,\n// i.e. <h1> will have a tagName of \"H1\"\nconst isHTMLTagName = /^[A-Z]/;\nconst nodeNameToType = (nodeName) =>\n  isHTMLTagName.test(nodeName) ? nodeName.toLowerCase() : nodeName;\n\nexport default nodeNameToType;\n","import * as React from 'react';\nimport { ELEMENT_NODE, TEXT_NODE } from './constants/nodeTypes';\nimport attrsToProps from './attrsToProps';\nimport getDisplayName from './getDisplayName';\nimport nodeNameToType from './nodeNameToType';\n\nconst nodesToElements = (nodeList, options) => {\n  const tree = [];\n  for (let i = 0; i < nodeList.length; i++) {\n    const node = nodeList[i];\n    // Only render element nodes and text nodes.\n    if (node.nodeType === ELEMENT_NODE) {\n      let type = nodeNameToType(node.nodeName);\n      if (\n        // Never render <script> elements.\n        type === 'script' ||\n        // Handle allowed option to only render elements that are allowed.\n        (options.allowed &&\n          (typeof options.allowed === 'function'\n            ? !options.allowed(node)\n            : !options.allowed.includes(type)))\n      ) {\n        continue;\n      }\n      // Handle replace option.\n      if (options.replace) {\n        const replacement =\n          typeof options.replace === 'function'\n            ? options.replace(node)\n            : Object.hasOwn(options.replace, type)\n              ? options.replace[type]\n              : undefined;\n        // Don't render element if replacement is false or null.\n        if (replacement === false || replacement === null) {\n          continue;\n        }\n        // Replace element replacement—if not undefined.\n        if (replacement !== undefined) {\n          type = replacement;\n        }\n      }\n      const props = attrsToProps(node.attributes);\n      props.key = `${getDisplayName(type)}-${i}`;\n      const children = nodesToElements(node.childNodes, options);\n      tree.push(\n        React.isValidElement(type)\n          ? React.cloneElement(type, props, children)\n          : React.createElement(type, props, children),\n      );\n    } else if (node.nodeType === TEXT_NODE) {\n      // Handle trim option to remove whitespace text nodes.\n      if (!options.trim || node.textContent.trim() !== '') {\n        tree.push(node.textContent);\n      }\n    }\n  }\n  return tree.length > 0 ? tree : null;\n};\n\nexport default nodesToElements;\n","import { parse } from 'dom-parse';\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport nodesToElements from './nodesToElements';\n\nconst Markup = React.memo(({ allowed, markup, replace, trim }) =>\n  markup\n    ? nodesToElements(parse(markup).childNodes, { allowed, replace, trim })\n    : null,\n);\n\nMarkup.propTypes = {\n  allowed: PropTypes.oneOfType([\n    PropTypes.arrayOf(PropTypes.string),\n    PropTypes.func,\n  ]),\n  markup: PropTypes.string,\n  replace: PropTypes.oneOfType([\n    PropTypes.func,\n    PropTypes.objectOf(PropTypes.elementType),\n  ]),\n  trim: PropTypes.bool,\n};\n\nexport default Markup;\n","import { parse } from 'dom-parse';\nimport invariant from 'tiny-invariant';\nimport nodesToElements from './nodesToElements';\n\nconst renderMarkup = (markup, { allowed, replace, trim } = {}) => {\n  invariant(\n    markup == null || typeof markup === 'string',\n    'Expected `markup` to be a string',\n  );\n  invariant(\n    allowed == null || Array.isArray(allowed) || typeof allowed === 'function',\n    'Expected `options.allowed` to be an array or function',\n  );\n  invariant(\n    replace == null ||\n      typeof replace === 'function' ||\n      typeof replace === 'object',\n    'Expected `options.replace` to be a function or object',\n  );\n  invariant(\n    trim == null || typeof trim === 'boolean',\n    'Expected `options.trim` to be a boolean',\n  );\n  return markup\n    ? nodesToElements(parse(markup).childNodes, { allowed, replace, trim })\n    : null;\n};\n\nexport default renderMarkup;\n"],"names":["ELEMENT_NODE","TEXT_NODE","standardProps","reactProps","attrsToProps","attrs","props","i","name","value","cssToStyle","attrsToProps$1","getDisplayName","component","isHTMLTagName","nodeNameToType","nodeName","nodeNameToType$1","nodesToElements","nodeList","options","tree","node","type","replacement","children","React","Markup","allowed","markup","replace","trim","parse","PropTypes","Markup$1","renderMarkup","invariant","renderMarkup$1"],"mappings":"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"}