@limetech/lime-elements 39.3.2 → 39.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/cjs/lime-elements.cjs.js +1 -1
  3. package/dist/cjs/limel-markdown.cjs.entry.js +206 -13
  4. package/dist/cjs/limel-prosemirror-adapter.cjs.entry.js +1 -1
  5. package/dist/cjs/loader.cjs.js +1 -1
  6. package/dist/cjs/{markdown-parser-B66l_Zvo.js → markdown-parser-VvYe9xWW.js} +18 -1
  7. package/dist/collection/components/markdown/default-whitelist.js +64 -0
  8. package/dist/collection/components/markdown/hydrate-custom-elements.js +50 -1
  9. package/dist/collection/components/markdown/markdown.js +76 -9
  10. package/dist/collection/components/markdown/remove-empty-paragraphs-plugin.js +18 -1
  11. package/dist/collection/components/markdown/safe-url-protocols.js +24 -0
  12. package/dist/esm/lime-elements.js +1 -1
  13. package/dist/esm/limel-markdown.entry.js +204 -11
  14. package/dist/esm/limel-prosemirror-adapter.entry.js +1 -1
  15. package/dist/esm/loader.js +1 -1
  16. package/dist/esm/{markdown-parser-DJi1w622.js → markdown-parser-CeVA0wsI.js} +18 -1
  17. package/dist/lime-elements/lime-elements.esm.js +1 -1
  18. package/dist/lime-elements/{p-1c6dd14c.entry.js → p-8e4ec999.entry.js} +1 -1
  19. package/dist/lime-elements/{p-BRCcjfVu.js → p-CfUOv15O.js} +1 -1
  20. package/dist/lime-elements/p-f4c9301d.entry.js +1 -0
  21. package/dist/types/components/markdown/default-whitelist.d.ts +16 -0
  22. package/dist/types/components/markdown/markdown.d.ts +29 -4
  23. package/dist/types/components/markdown/safe-url-protocols.d.ts +20 -0
  24. package/dist/types/components.d.ts +34 -2
  25. package/package.json +1 -1
  26. package/dist/lime-elements/p-49204db4.entry.js +0 -1
@@ -4,4 +4,4 @@ import{g as e}from"./p-BFTU3MAI.js";import{s as t,v as n,e as r,f as i,E as o,g
4
4
  * @version v0.2.1
5
5
  * @link http://github.com/noeldelgado/parse-css-color/
6
6
  * @license MIT
7
- */const Ul=["background-color","color","font-style","font-weight","text-decoration-color","text-decoration-line","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-decoration","width","height","min-width","min-height"];function Hl(e){var t;e.tagName&&(null===(t=e.properties)||void 0===t?void 0:t.style)&&(e.properties.style=function(e){try{const t=function(e){const t=Object.assign({},e);return delete t.background,"background"in e&&null!==(e=>{if("string"!=typeof e)return null;const t=bl.exec(e);if(t)return function(e){const[t,n,r,i]=ml(e,{format:"array"});return Bl([null,t,n,r,i])}(t[0]);const n=Tl.exec(e)||xl.exec(e);if(n)return function([,e,t,n,r=1]){let i=e;return i=i.endsWith("turn")?360*parseFloat(i)/1:i.endsWith("rad")?Math.round(180*parseFloat(i)/Math.PI):parseFloat(i),{type:"hsl",values:[i,ql(t),ql(n)],alpha:Fl(null===r?1:r)}}(n);const r=Ll.exec(e)||Il.exec(e)||Al.exec(e)||Rl.exec(e);if(r)return Bl(r);if(Ol.exec(e))return Bl([null,0,0,0,0]);const i=pl[e.toLowerCase()];return i?Bl([null,i[0],i[1],i[2],1]):null})(e.background)&&(t["background-color"]=e.background),t}(dl(e));return Object.entries(t).filter((([e])=>Ul.includes(e))).map((([e,t])=>`${e}: ${t}`)).join("; ")}catch(t){return console.error("Failed to parse style value",e,t),""}}(e.properties.style))}const zl=/\u00A0/g,jl=["200B","200C","200D","FEFF"],Vl=new Set(["audio","canvas","embed","iframe","img","input","object","svg","video"]),Gl=new Set(["br"]),$l=(e,t)=>{if(e&&"object"==typeof e){if("element"===e.type&&"p"===e.tagName&&t&&Yl(e)&&Array.isArray(t.children)){const n=t.children.indexOf(e);if(-1!==n)return void t.children.splice(n,1)}if(Array.isArray(e.children)&&0!==e.children.length)for(let t=e.children.length-1;t>=0;t--)$l(e.children[t],e)}},Yl=e=>!Array.isArray(e.children)||0===e.children.length||e.children.every((e=>Wl(e))),Wl=e=>{if(!e)return!0;if("text"===e.type)return Ql("string"==typeof e.value?e.value:"");if("comment"===e.type)return!0;if("element"===e.type){const t=e,n=t.tagName;return"string"!=typeof n||!Vl.has(n)&&(!!Gl.has(n)||!Array.isArray(t.children)||0===t.children.length||t.children.every((e=>Wl(e))))}return!0},Ql=e=>{if(!e)return!0;const t=(e=>{let t=e;for(const e of jl){const n=String.fromCodePoint(Number.parseInt(e,16));t=t.split(n).join("")}return t})(e.replaceAll(zl," "));return""===t.trim()};async function Xl(e,t){var r;(null==t?void 0:t.forceHardLineBreaks)&&(e=e.replaceAll(/(?<!\\)([\n\r])/g," $1"));return(await c().use(at).use(Or).use(Ct,{allowDangerousHtml:!0}).use(nl).use((()=>e=>(n(e,"element",(e=>{var t,n;if("a"===e.tagName){const r=null===(t=e.properties)||void 0===t?void 0:t.href,i=null===(n=e.properties)||void 0===n?void 0:n.title;if(!r)return;const o=p(r,i);e.properties.target=o.target,e.properties.rel=o.rel,e.properties.referrerpolicy=o.referrerpolicy}})),e))).use(u,Object.assign({},Zl(null!==(r=null==t?void 0:t.whitelist)&&void 0!==r?r:[]))).use((()=>e=>{n(e,"element",Hl)})).use(((e=!1)=>()=>e?e=>($l(e,null),e):e=>e)(null==t?void 0:t.removeEmptyParagraphs)).use(function(e=!1){return()=>e?e=>(n(e,"element",(e=>{"img"===e.tagName&&(e.properties=e.properties||{},e.properties.loading="lazy",e.properties.src&&(e.properties["data-src"]=e.properties.src,e.properties.src=void 0))})),e):e=>e}(null==t?void 0:t.lazyLoadImages)).use(h).process(e)).toString()}async function Kl(e,t){return(await c().use(f).use(u,Object.assign({},Zl(null!=t?t:[]))).use((()=>e=>{n(e,"element",Hl)})).use(h).process(e)).toString()}function Zl(e){var t,n,r,i;const o=[...null!==(t=d.attributes["*"])&&void 0!==t?t:[]].filter((e=>"height"!==e));o.push("style");const a=Object.assign(Object.assign({},d),{strip:[...null!==(n=d.strip)&&void 0!==n?n:[],"style"],tagNames:[...d.tagNames||[],...e.map((e=>e.tagName))],attributes:Object.assign(Object.assign({},d.attributes),{p:[...null!==(r=d.attributes.p)&&void 0!==r?r:[],["className","MsoNormal"]],a:[...null!==(i=d.attributes.a)&&void 0!==i?i:[],"referrerpolicy"],"*":o})});for(const t of e)a.attributes[t.tagName]=t.attributes;return a}export{p as g,Xl as m,Kl as s}
7
+ */const Ul=["background-color","color","font-style","font-weight","text-decoration-color","text-decoration-line","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-decoration","width","height","min-width","min-height"];function Hl(e){var t;e.tagName&&(null===(t=e.properties)||void 0===t?void 0:t.style)&&(e.properties.style=function(e){try{const t=function(e){const t=Object.assign({},e);return delete t.background,"background"in e&&null!==(e=>{if("string"!=typeof e)return null;const t=bl.exec(e);if(t)return function(e){const[t,n,r,i]=ml(e,{format:"array"});return Bl([null,t,n,r,i])}(t[0]);const n=Tl.exec(e)||xl.exec(e);if(n)return function([,e,t,n,r=1]){let i=e;return i=i.endsWith("turn")?360*parseFloat(i)/1:i.endsWith("rad")?Math.round(180*parseFloat(i)/Math.PI):parseFloat(i),{type:"hsl",values:[i,ql(t),ql(n)],alpha:Fl(null===r?1:r)}}(n);const r=Ll.exec(e)||Il.exec(e)||Al.exec(e)||Rl.exec(e);if(r)return Bl(r);if(Ol.exec(e))return Bl([null,0,0,0,0]);const i=pl[e.toLowerCase()];return i?Bl([null,i[0],i[1],i[2],1]):null})(e.background)&&(t["background-color"]=e.background),t}(dl(e));return Object.entries(t).filter((([e])=>Ul.includes(e))).map((([e,t])=>`${e}: ${t}`)).join("; ")}catch(t){return console.error("Failed to parse style value",e,t),""}}(e.properties.style))}const zl=/\u00A0/g,jl=["200B","200C","200D","FEFF"],Vl=new Set(["audio","canvas","embed","iframe","img","input","object","svg","video"]),Gl=new Set(["br"]),$l=(e,t)=>{if(e&&"object"==typeof e){if("element"===e.type&&"p"===e.tagName&&t&&Yl(e)&&Array.isArray(t.children)){const n=t.children.indexOf(e);if(-1!==n)return void t.children.splice(n,1)}if(Array.isArray(e.children)&&0!==e.children.length)for(let t=e.children.length-1;t>=0;t--)$l(e.children[t],e)}},Yl=e=>!Array.isArray(e.children)||0===e.children.length||e.children.every((e=>Wl(e))),Wl=e=>{if(!e)return!0;if("text"===e.type)return Xl("string"==typeof e.value?e.value:"");if("comment"===e.type)return!0;if("element"===e.type){const t=e,n=t.tagName;return"string"!=typeof n||!Ql(n)&&(!!Gl.has(n)||!Array.isArray(t.children)||0===t.children.length||t.children.every((e=>Wl(e))))}return!0},Ql=e=>Vl.has(e)||(e=>e.includes("-"))(e),Xl=e=>{if(!e)return!0;const t=(e=>{let t=e;for(const e of jl){const n=String.fromCodePoint(Number.parseInt(e,16));t=t.split(n).join("")}return t})(e.replaceAll(zl," "));return""===t.trim()};async function Kl(e,t){var r;(null==t?void 0:t.forceHardLineBreaks)&&(e=e.replaceAll(/(?<!\\)([\n\r])/g," $1"));return(await c().use(at).use(Or).use(Ct,{allowDangerousHtml:!0}).use(nl).use((()=>e=>(n(e,"element",(e=>{var t,n;if("a"===e.tagName){const r=null===(t=e.properties)||void 0===t?void 0:t.href,i=null===(n=e.properties)||void 0===n?void 0:n.title;if(!r)return;const o=p(r,i);e.properties.target=o.target,e.properties.rel=o.rel,e.properties.referrerpolicy=o.referrerpolicy}})),e))).use(u,Object.assign({},Jl(null!==(r=null==t?void 0:t.whitelist)&&void 0!==r?r:[]))).use((()=>e=>{n(e,"element",Hl)})).use(((e=!1)=>()=>e?e=>($l(e,null),e):e=>e)(null==t?void 0:t.removeEmptyParagraphs)).use(function(e=!1){return()=>e?e=>(n(e,"element",(e=>{"img"===e.tagName&&(e.properties=e.properties||{},e.properties.loading="lazy",e.properties.src&&(e.properties["data-src"]=e.properties.src,e.properties.src=void 0))})),e):e=>e}(null==t?void 0:t.lazyLoadImages)).use(h).process(e)).toString()}async function Zl(e,t){return(await c().use(f).use(u,Object.assign({},Jl(null!=t?t:[]))).use((()=>e=>{n(e,"element",Hl)})).use(h).process(e)).toString()}function Jl(e){var t,n,r,i;const o=[...null!==(t=d.attributes["*"])&&void 0!==t?t:[]].filter((e=>"height"!==e));o.push("style");const a=Object.assign(Object.assign({},d),{strip:[...null!==(n=d.strip)&&void 0!==n?n:[],"style"],tagNames:[...d.tagNames||[],...e.map((e=>e.tagName))],attributes:Object.assign(Object.assign({},d.attributes),{p:[...null!==(r=d.attributes.p)&&void 0!==r?r:[],["className","MsoNormal"]],a:[...null!==(i=d.attributes.a)&&void 0!==i?i:[],"referrerpolicy"],"*":o})});for(const t of e)a.attributes[t.tagName]=t.attributes;return a}export{p as g,Kl as m,Zl as s}
@@ -0,0 +1 @@
1
+ import{r as e,h as t,H as o}from"./p-DBTJNfo7.js";import{m as r}from"./p-CfUOv15O.js";import{g as a}from"./p-Dnt5w_Bp.js";import{d as l}from"./p-2kcqdtMr.js";import"./p-BFTU3MAI.js";class n{constructor(e){this.handleIntersection=e=>{for(const t of e)if(t.isIntersecting){const e=t.target,o=e.dataset.src;o&&(e.setAttribute("src",o),delete e.dataset.src),this.observer.unobserve(e)}},this.observer=new IntersectionObserver(this.handleIntersection);const t=e.querySelectorAll("img");for(const e of t)this.observer.observe(e)}disconnect(){this.observer.disconnect()}}var i;const s=new Map(Object.entries(null!==(i=l.protocols)&&void 0!==i?i:{}).map((([e,t])=>[e,new Set(t)])));function d(e,t){for(const o of t){const t=e.getAttribute(o);if(!t)continue;const r=m(t);if(void 0!==r){const t=h(r);e[b(o)]=t}}}function m(e){const t=e.trim();if(t.startsWith("{")&&t.endsWith("}")||t.startsWith("[")&&t.endsWith("]"))try{return JSON.parse(t)}catch(e){try{const e=t.replaceAll("&#x22;",'"').replaceAll("&#34;",'"').replaceAll("&quot;",'"').replaceAll("&#x27;","'").replaceAll("&#39;","'").replaceAll("&apos;","'").replaceAll("&amp;","&");return JSON.parse(e)}catch(e){return}}}function c(e,t){const o=e.trim(),r=o.indexOf(":");if(-1===r||/[?#/]/.test(o.slice(0,r)))return!0;const a=o.slice(0,r).toLowerCase();return t.has(a)}function h(e){if(null===e||"object"!=typeof e)return e;if(Array.isArray(e))return e.map(h);const t=Object.assign({},e);for(const e of Object.keys(t)){const o=s.get(e);o&&"string"==typeof t[e]&&!c(t[e],o)?(console.warn(`limel-markdown: Removed unsafe URL from "${e}" during sanitization.`),delete t[e]):"object"==typeof t[e]&&null!==t[e]&&(t[e]=h(t[e]))}return t}function b(e){return e.replaceAll(/-([a-z])/g,((e,t)=>t.toUpperCase()))}const f=[{tagName:"limel-chip",attributes:["text","icon","link","badge","disabled","readonly","selected","type","size"]},{tagName:"limel-icon",attributes:["name","size","badge"]},{tagName:"limel-badge",attributes:["label"]},{tagName:"limel-callout",attributes:["heading","icon","type"]},{tagName:"limel-linear-progress",attributes:["value","indeterminate"]},{tagName:"limel-circular-progress",attributes:["value","max-value","prefix","suffix","size","display-percentage-colors"]},{tagName:"limel-spinner",attributes:["size"]},{tagName:"limel-info-tile",attributes:["value","icon","label","prefix","suffix","badge"]}],g=class{constructor(t){e(this,t),this.value="",this.whitelist=a.markdownWhitelist,this.lazyLoadImages=!1,this.removeEmptyParagraphs=!0,this.imageIntersectionObserver=null}async textChanged(){try{this.cleanupImageIntersectionObserver(),this.cachedCombinedWhitelist&&this.whitelist===this.cachedConsumerWhitelist||(this.cachedConsumerWhitelist=this.whitelist,this.cachedCombinedWhitelist=function(e,t){if(!(null==t?void 0:t.length))return e.map((e=>Object.assign(Object.assign({},e),{attributes:[...e.attributes]})));const o=new Map;for(const r of[...e,...t]){const e=o.get(r.tagName);if(e)for(const t of r.attributes)e.add(t);else o.set(r.tagName,new Set(r.attributes))}return[...o.entries()].map((([e,t])=>({tagName:e,attributes:[...t]})))}(f,this.whitelist));const e=this.cachedCombinedWhitelist,t=await r(this.value,{forceHardLineBreaks:!0,whitelist:e,lazyLoadImages:this.lazyLoadImages,removeEmptyParagraphs:this.removeEmptyParagraphs});this.rootElement.innerHTML=t,function(e,t){if(e&&(null==t?void 0:t.length))for(const o of t){const t=e.querySelectorAll(o.tagName);for(const e of t)d(e,o.attributes)}}(this.rootElement,e),this.setupImageIntersectionObserver()}catch(e){console.error(e)}}handleWhitelistChange(){return this.textChanged()}handleRemoveEmptyParagraphsChange(){return this.textChanged()}async componentDidLoad(){this.textChanged()}disconnectedCallback(){this.cleanupImageIntersectionObserver()}render(){return t(o,{key:"61ca61192c4d1141494ced2b431770cccb623581"},t("div",{key:"b0ebadbc5b2ee426df9f1a0c77d88cf162a43bcc",id:"markdown",ref:e=>this.rootElement=e}))}setupImageIntersectionObserver(){this.lazyLoadImages&&(this.imageIntersectionObserver=new n(this.rootElement))}cleanupImageIntersectionObserver(){this.imageIntersectionObserver&&(this.imageIntersectionObserver.disconnect(),this.imageIntersectionObserver=null)}static get watchers(){return{value:[{textChanged:0}],whitelist:[{handleWhitelistChange:0}],removeEmptyParagraphs:[{handleRemoveEmptyParagraphsChange:0}]}}};g.style='@charset "UTF-8";code{font-family:ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, "DejaVu Sans Mono", monospace;font-size:var(--limel-theme-default-small-font-size);letter-spacing:-0.0125rem;color:rgb(var(--contrast-1300));-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;display:inline-block;border-radius:0.25rem;padding:0.03125rem 0.25rem;background-color:rgb(var(--contrast-600))}pre>code{display:block;margin:0.5rem 0;padding:0.5rem 0.75rem;overflow:auto;white-space:pre-wrap}h1{font-size:1.5rem}h2{font-size:1.25rem}h3{font-size:1.125rem}h4{font-size:1rem}h5{font-size:var(--limel-theme-default-font-size)}h6{font-size:0.75rem}h1,h2{margin-top:0.5rem;margin-bottom:0.5rem;letter-spacing:-0.03125rem;font-weight:500}h3,h4{margin-top:0.75rem;margin-bottom:0.25rem;font-weight:600}h5,h6{margin-top:0.5rem;margin-bottom:0.125rem;font-weight:600}h1,h2,h3,h4,h5,h6{word-break:break-word;hyphens:auto;-webkit-hyphens:auto}:not([contenteditable=true]) h1,:not([contenteditable=true]) h2,:not([contenteditable=true]) h3,:not([contenteditable=true]) h4,:not([contenteditable=true]) h5,:not([contenteditable=true]) h6{text-wrap:balance}[contenteditable=true] h1,[contenteditable=true] h2,[contenteditable=true] h3,[contenteditable=true] h4,[contenteditable=true] h5,[contenteditable=true] h6{text-wrap:initial}:host(limel-markdown.truncate-paragraphs) p{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}p,li{font-size:var(--limel-theme-default-font-size);word-break:break-word}a{word-break:break-all}p{margin-top:0;margin-bottom:0.5rem}p:only-child{margin-bottom:0}a{transition:color 0.2s ease;color:var(--markdown-hyperlink-color, rgb(var(--color-blue-dark)));text-decoration:none}a:hover{color:var(--markdown-hyperlink-color--hovered, rgb(var(--color-blue-default)))}hr{margin:1.75rem 0 2rem 0;border-width:0;border-top:1px solid rgb(var(--contrast-500))}ul{list-style:none}ul li{position:relative;margin-left:0.75rem}ul li:before{content:"";position:absolute;left:-0.5rem;top:0.5rem;width:0.25rem;height:0.25rem;border-radius:50%;background-color:rgb(var(--contrast-700));display:block}ol{margin-top:0.25rem;padding-left:1rem}ul{margin-top:0.25rem;padding-left:0}ul ul,ul ol,ol ol,ol ul{margin-left:0}li{margin-bottom:0.25rem}:host(limel-markdown:not(.no-table-styles)) table{table-layout:auto;min-width:100%;border-collapse:collapse;border-spacing:0;background:transparent;margin:0.75rem 0}:host(limel-markdown:not(.no-table-styles)) tbody{border:1px solid rgb(var(--contrast-400));border-radius:0.25rem}:host(limel-markdown:not(.no-table-styles)) th,:host(limel-markdown:not(.no-table-styles)) td{text-align:left;vertical-align:top;transition:background-color 0.2s ease;font-size:var(--limel-theme-default-font-size)}:host(limel-markdown:not(.no-table-styles)) td{padding:0.5rem 0.375rem 0.75rem 0.375rem}:host(limel-markdown:not(.no-table-styles)) tr th{background-color:rgb(var(--contrast-400));padding:0.25rem 0.375rem;font-weight:normal}:host(limel-markdown:not(.no-table-styles)) tr th:only-child{text-align:center}:host(limel-markdown:not(.no-table-styles)) tbody tr:nth-child(odd) td{background-color:rgb(var(--contrast-200))}:host(limel-markdown:not(.no-table-styles)) tbody tr:hover td{background-color:rgb(var(--contrast-300))}table{display:block;box-sizing:border-box;overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}blockquote{position:relative;max-width:100%;margin:0.75rem 0;padding:0.5rem;border-left:0.25rem solid rgb(var(--contrast-500));background-color:rgb(var(--contrast-200))}blockquote:before,blockquote:after{position:absolute;line-height:0;font-size:2rem;opacity:0.4}blockquote:before{content:"“";left:-0.5rem;top:0.5rem}blockquote:after{content:"”";right:-0.25rem;bottom:-0.25rem}blockquote blockquote{padding-top:0;padding-right:0;padding-bottom:0;padding-left:0.25rem;border-color:rgb(var(--contrast-700));border-left-width:1px}blockquote blockquote:before,blockquote blockquote:after{display:none}blockquote:has(>blockquote){padding-left:0.25rem;padding-bottom:0}dl{display:grid;grid-template-columns:1fr 2fr;grid-template-rows:1fr;margin-bottom:2rem;border:1px solid rgb(var(--contrast-400));border-radius:0.375rem;background-color:rgb(var(--contrast-200))}dl dt,dl dd{padding:0.375rem 0.5rem;font-size:var(--limel-theme-default-font-size);margin:0}dl dt:nth-of-type(even),dl dd:nth-of-type(even){background-color:rgb(var(--contrast-300))}dl dt:first-child{border-top-left-radius:0.375rem}dl dt:last-child{border-bottom-left-radius:0.375rem}dl dd:first-child{border-top-right-radius:0.375rem}dl dd:last-child{border-bottom-right-radius:0.375rem}img{max-width:100%;border-radius:0.25rem}kbd{font-family:ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, "DejaVu Sans Mono", monospace;font-weight:600;color:rgb(var(--contrast-1100));background-color:rgb(var(--contrast-200));white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:normal;padding:0.125rem 0.5rem;margin:0 0.25rem;box-shadow:var(--button-shadow-normal), 0 0.03125rem 0.21875rem 0 rgba(var(--contrast-100), 0.5) inset;border-radius:0.125rem;border-style:solid;border-color:rgba(var(--contrast-600), 0.8);border-width:0 1px 0.125rem 1px}:host(limel-markdown.adjust-for-table-cell) img{max-height:1.25rem;vertical-align:middle}:host(limel-markdown.adjust-for-table-cell) p{display:inline}:host(limel-markdown.adjust-for-table-cell) h1,:host(limel-markdown.adjust-for-table-cell) h2,:host(limel-markdown.adjust-for-table-cell) h3,:host(limel-markdown.adjust-for-table-cell) h4,:host(limel-markdown.adjust-for-table-cell) h5,:host(limel-markdown.adjust-for-table-cell) h6{display:inline-block;vertical-align:bottom;font-size:var(--limel-theme-default-font-size);margin:0 0.25rem 0 0;letter-spacing:normal;font-weight:500}:host(limel-markdown.adjust-for-table-cell) h1:before,:host(limel-markdown.adjust-for-table-cell) h2:before,:host(limel-markdown.adjust-for-table-cell) h3:before,:host(limel-markdown.adjust-for-table-cell) h4:before,:host(limel-markdown.adjust-for-table-cell) h5:before,:host(limel-markdown.adjust-for-table-cell) h6:before{opacity:0.6;vertical-align:middle;font-size:0.5rem;border-radius:0.25rem 0 0 0.25rem;padding:0.25rem;padding-right:2rem;margin-right:-1.75rem;background:linear-gradient(to right, rgb(var(--contrast-800), 0.6), rgb(var(--contrast-800), 0))}:host(limel-markdown.adjust-for-table-cell) h1:before{content:"H1"}:host(limel-markdown.adjust-for-table-cell) h2:before{content:"H2"}:host(limel-markdown.adjust-for-table-cell) h3:before{content:"H3"}:host(limel-markdown.adjust-for-table-cell) h4:before{content:"H4"}:host(limel-markdown.adjust-for-table-cell) h5:before{content:"H5"}:host(limel-markdown.adjust-for-table-cell) h6:before{content:"H6"}:host(limel-markdown.adjust-for-table-cell) pre{margin:0}:host(limel-markdown.adjust-for-table-cell) pre>code{padding:0.125rem;margin:0}:host(limel-markdown.adjust-for-table-cell) dl{margin:0}:host(limel-markdown.adjust-for-table-cell) dl dt,:host(limel-markdown.adjust-for-table-cell) dl dd{padding:0.00625rem 0.125rem}*,*::before,*::after{box-sizing:border-box}* :where(:not(img,video,svg,canvas,iframe)),*::before :where(:not(img,video,svg,canvas,iframe)),*::after :where(:not(img,video,svg,canvas,iframe)){min-width:0;min-height:0}hr{border-top:1px solid rgb(var(--contrast-700))}.MsoNormal{margin:0}:host(limel-markdown.reset-img-height) #markdown img{height:auto}';export{g as limel_markdown}
@@ -0,0 +1,16 @@
1
+ import { CustomElementDefinition } from '../../global/shared-types/custom-element.types';
2
+ /**
3
+ * Default whitelist of lime-elements components that are safe to render
4
+ * inside `limel-markdown`.
5
+ *
6
+ * These components are self-contained and require no complex setup.
7
+ * URL-bearing properties (e.g. `link.href` on `limel-chip`) are
8
+ * automatically sanitized during hydration to prevent injection attacks.
9
+ *
10
+ * Consumers can extend this list via the `whitelist` prop or
11
+ * `limel-config` global config.
12
+ *
13
+ * @internal
14
+ */
15
+ export declare const DEFAULT_MARKDOWN_WHITELIST: CustomElementDefinition[];
16
+ //# sourceMappingURL=default-whitelist.d.ts.map
@@ -3,6 +3,16 @@ import { CustomElementDefinition } from '../../global/shared-types/custom-elemen
3
3
  * The Markdown component receives markdown syntax
4
4
  * and renders it as HTML.
5
5
  *
6
+ * A built-in set of lime-elements components is whitelisted by default
7
+ * and can be used directly in markdown content without any configuration.
8
+ * Consumers can extend this list via the `whitelist` prop or `limel-config`.
9
+ *
10
+ * When custom elements use JSON attribute values, any URL-bearing
11
+ * properties (`href`, `src`, `cite`, `longDesc`) are automatically
12
+ * sanitized using the same protocol allowlists as rehype-sanitize.
13
+ * URLs with dangerous schemes (e.g. `javascript:`, `data:`) are
14
+ * removed (with a console warning) to prevent script injection.
15
+ *
6
16
  * @exampleComponent limel-example-markdown-headings
7
17
  * @exampleComponent limel-example-markdown-emphasis
8
18
  * @exampleComponent limel-example-markdown-lists
@@ -28,11 +38,23 @@ export declare class Markdown {
28
38
  */
29
39
  value: string;
30
40
  /**
31
- * Whitelisted html elements.
41
+ * Additional whitelisted custom elements to render inside markdown.
42
+ *
43
+ * A built-in set of lime-elements components (such as `limel-chip`,
44
+ * `limel-icon`, `limel-badge`, `limel-callout`, etc.) is always
45
+ * allowed by default. Any entries provided here are **merged** with
46
+ * those defaults — if both define the same `tagName`, their
47
+ * attributes are combined.
48
+ *
49
+ * Can also be set via `limel-config`. Setting this property will
50
+ * override the global config.
51
+ *
52
+ * JSON attribute values that contain URL-bearing properties
53
+ * (`href`, `src`, `cite`, `longDesc`) are automatically sanitized
54
+ * using the same protocol allowlists as rehype-sanitize. URLs with
55
+ * dangerous schemes (e.g. `javascript:`, `data:`) are removed
56
+ * (with a console warning).
32
57
  *
33
- * Any custom element added here will not be sanitized and thus rendered.
34
- * Can also be set via `limel-config`. Setting this property will override
35
- * the global config.
36
58
  * @alpha
37
59
  */
38
60
  whitelist?: CustomElementDefinition[];
@@ -48,9 +70,12 @@ export declare class Markdown {
48
70
  */
49
71
  removeEmptyParagraphs: boolean;
50
72
  textChanged(): Promise<void>;
73
+ handleWhitelistChange(): Promise<void>;
51
74
  handleRemoveEmptyParagraphsChange(): Promise<void>;
52
75
  private rootElement;
53
76
  private imageIntersectionObserver;
77
+ private cachedConsumerWhitelist?;
78
+ private cachedCombinedWhitelist?;
54
79
  componentDidLoad(): Promise<void>;
55
80
  disconnectedCallback(): void;
56
81
  render(): any;
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Map of URL-bearing property names to their allowed protocols, sourced
3
+ * from rehype-sanitize's defaultSchema. This means protocol updates from
4
+ * Dependabot bumps to rehype-sanitize automatically apply here too —
5
+ * no custom blocklist to maintain.
6
+ *
7
+ * We can't use rehype-sanitize directly for URL sanitization because it
8
+ * operates on HTML attributes, not on values inside JSON strings. By the
9
+ * time rehype-sanitize runs, `link` is just a raw JSON string attribute —
10
+ * the `href` only becomes visible after JSON parsing in hydration.
11
+ * So we replicate rehype-sanitize's protocol validation logic here,
12
+ * using its own protocol list as the source of truth.
13
+ *
14
+ * The map covers all URL-bearing property names that rehype-sanitize
15
+ * defines protocols for: `href`, `src`, `cite`, and `longDesc`.
16
+ *
17
+ * @internal
18
+ */
19
+ export declare const SAFE_PROTOCOLS_BY_PROPERTY: Map<string, Set<string>>;
20
+ //# sourceMappingURL=safe-url-protocols.d.ts.map
@@ -2348,6 +2348,14 @@ export namespace Components {
2348
2348
  /**
2349
2349
  * The Markdown component receives markdown syntax
2350
2350
  * and renders it as HTML.
2351
+ * A built-in set of lime-elements components is whitelisted by default
2352
+ * and can be used directly in markdown content without any configuration.
2353
+ * Consumers can extend this list via the `whitelist` prop or `limel-config`.
2354
+ * When custom elements use JSON attribute values, any URL-bearing
2355
+ * properties (`href`, `src`, `cite`, `longDesc`) are automatically
2356
+ * sanitized using the same protocol allowlists as rehype-sanitize.
2357
+ * URLs with dangerous schemes (e.g. `javascript:`, `data:`) are
2358
+ * removed (with a console warning) to prevent script injection.
2351
2359
  * @exampleComponent limel-example-markdown-headings
2352
2360
  * @exampleComponent limel-example-markdown-emphasis
2353
2361
  * @exampleComponent limel-example-markdown-lists
@@ -2382,7 +2390,7 @@ export namespace Components {
2382
2390
  */
2383
2391
  "value": string;
2384
2392
  /**
2385
- * Whitelisted html elements. Any custom element added here will not be sanitized and thus rendered. Can also be set via `limel-config`. Setting this property will override the global config.
2393
+ * Additional whitelisted custom elements to render inside markdown. A built-in set of lime-elements components (such as `limel-chip`, `limel-icon`, `limel-badge`, `limel-callout`, etc.) is always allowed by default. Any entries provided here are **merged** with those defaults if both define the same `tagName`, their attributes are combined. Can also be set via `limel-config`. Setting this property will override the global config. JSON attribute values that contain URL-bearing properties (`href`, `src`, `cite`, `longDesc`) are automatically sanitized using the same protocol allowlists as rehype-sanitize. URLs with dangerous schemes (e.g. `javascript:`, `data:`) are removed (with a console warning).
2386
2394
  * @alpha
2387
2395
  * @default globalConfig.markdownWhitelist
2388
2396
  */
@@ -5309,6 +5317,14 @@ declare global {
5309
5317
  /**
5310
5318
  * The Markdown component receives markdown syntax
5311
5319
  * and renders it as HTML.
5320
+ * A built-in set of lime-elements components is whitelisted by default
5321
+ * and can be used directly in markdown content without any configuration.
5322
+ * Consumers can extend this list via the `whitelist` prop or `limel-config`.
5323
+ * When custom elements use JSON attribute values, any URL-bearing
5324
+ * properties (`href`, `src`, `cite`, `longDesc`) are automatically
5325
+ * sanitized using the same protocol allowlists as rehype-sanitize.
5326
+ * URLs with dangerous schemes (e.g. `javascript:`, `data:`) are
5327
+ * removed (with a console warning) to prevent script injection.
5312
5328
  * @exampleComponent limel-example-markdown-headings
5313
5329
  * @exampleComponent limel-example-markdown-emphasis
5314
5330
  * @exampleComponent limel-example-markdown-lists
@@ -8650,6 +8666,14 @@ declare namespace LocalJSX {
8650
8666
  /**
8651
8667
  * The Markdown component receives markdown syntax
8652
8668
  * and renders it as HTML.
8669
+ * A built-in set of lime-elements components is whitelisted by default
8670
+ * and can be used directly in markdown content without any configuration.
8671
+ * Consumers can extend this list via the `whitelist` prop or `limel-config`.
8672
+ * When custom elements use JSON attribute values, any URL-bearing
8673
+ * properties (`href`, `src`, `cite`, `longDesc`) are automatically
8674
+ * sanitized using the same protocol allowlists as rehype-sanitize.
8675
+ * URLs with dangerous schemes (e.g. `javascript:`, `data:`) are
8676
+ * removed (with a console warning) to prevent script injection.
8653
8677
  * @exampleComponent limel-example-markdown-headings
8654
8678
  * @exampleComponent limel-example-markdown-emphasis
8655
8679
  * @exampleComponent limel-example-markdown-lists
@@ -8684,7 +8708,7 @@ declare namespace LocalJSX {
8684
8708
  */
8685
8709
  "value"?: string;
8686
8710
  /**
8687
- * Whitelisted html elements. Any custom element added here will not be sanitized and thus rendered. Can also be set via `limel-config`. Setting this property will override the global config.
8711
+ * Additional whitelisted custom elements to render inside markdown. A built-in set of lime-elements components (such as `limel-chip`, `limel-icon`, `limel-badge`, `limel-callout`, etc.) is always allowed by default. Any entries provided here are **merged** with those defaults if both define the same `tagName`, their attributes are combined. Can also be set via `limel-config`. Setting this property will override the global config. JSON attribute values that contain URL-bearing properties (`href`, `src`, `cite`, `longDesc`) are automatically sanitized using the same protocol allowlists as rehype-sanitize. URLs with dangerous schemes (e.g. `javascript:`, `data:`) are removed (with a console warning).
8688
8712
  * @alpha
8689
8713
  * @default globalConfig.markdownWhitelist
8690
8714
  */
@@ -11693,6 +11717,14 @@ declare module "@stencil/core" {
11693
11717
  /**
11694
11718
  * The Markdown component receives markdown syntax
11695
11719
  * and renders it as HTML.
11720
+ * A built-in set of lime-elements components is whitelisted by default
11721
+ * and can be used directly in markdown content without any configuration.
11722
+ * Consumers can extend this list via the `whitelist` prop or `limel-config`.
11723
+ * When custom elements use JSON attribute values, any URL-bearing
11724
+ * properties (`href`, `src`, `cite`, `longDesc`) are automatically
11725
+ * sanitized using the same protocol allowlists as rehype-sanitize.
11726
+ * URLs with dangerous schemes (e.g. `javascript:`, `data:`) are
11727
+ * removed (with a console warning) to prevent script injection.
11696
11728
  * @exampleComponent limel-example-markdown-headings
11697
11729
  * @exampleComponent limel-example-markdown-emphasis
11698
11730
  * @exampleComponent limel-example-markdown-lists
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@limetech/lime-elements",
3
- "version": "39.3.2",
3
+ "version": "39.4.1",
4
4
  "description": "Lime Elements",
5
5
  "author": "Lime Technologies",
6
6
  "license": "Apache-2.0",
@@ -1 +0,0 @@
1
- import{r as e,h as t,H as o}from"./p-DBTJNfo7.js";import{m as r}from"./p-BRCcjfVu.js";import{g as a}from"./p-Dnt5w_Bp.js";import"./p-BFTU3MAI.js";import"./p-2kcqdtMr.js";class l{constructor(e){this.handleIntersection=e=>{for(const t of e)if(t.isIntersecting){const e=t.target,o=e.dataset.src;o&&(e.setAttribute("src",o),delete e.dataset.src),this.observer.unobserve(e)}},this.observer=new IntersectionObserver(this.handleIntersection);const t=e.querySelectorAll("img");for(const e of t)this.observer.observe(e)}disconnect(){this.observer.disconnect()}}function n(e,t){for(const o of t){const t=e.getAttribute(o);if(!t)continue;const r=i(t);void 0!==r&&(e[s(o)]=r)}}function i(e){const t=e.trim();if(t.startsWith("{")&&t.endsWith("}")||t.startsWith("[")&&t.endsWith("]"))try{return JSON.parse(t)}catch(e){try{const e=t.replaceAll("&#x22;",'"').replaceAll("&#34;",'"').replaceAll("&quot;",'"').replaceAll("&#x27;","'").replaceAll("&#39;","'").replaceAll("&apos;","'").replaceAll("&amp;","&");return JSON.parse(e)}catch(e){return}}}function s(e){return e.replaceAll(/-([a-z])/g,((e,t)=>t.toUpperCase()))}const d=class{constructor(t){e(this,t),this.value="",this.whitelist=a.markdownWhitelist,this.lazyLoadImages=!1,this.removeEmptyParagraphs=!0,this.imageIntersectionObserver=null}async textChanged(){var e,t;try{this.cleanupImageIntersectionObserver();const o=await r(this.value,{forceHardLineBreaks:!0,whitelist:null!==(e=this.whitelist)&&void 0!==e?e:[],lazyLoadImages:this.lazyLoadImages,removeEmptyParagraphs:this.removeEmptyParagraphs});this.rootElement.innerHTML=o,function(e,t){if(e&&(null==t?void 0:t.length))for(const o of t){const t=e.querySelectorAll(o.tagName);for(const e of t)n(e,o.attributes)}}(this.rootElement,null!==(t=this.whitelist)&&void 0!==t?t:[]),this.setupImageIntersectionObserver()}catch(e){console.error(e)}}handleRemoveEmptyParagraphsChange(){return this.textChanged()}async componentDidLoad(){this.textChanged()}disconnectedCallback(){this.cleanupImageIntersectionObserver()}render(){return t(o,{key:"d7e3122596fa19c63e05d69855fbc693cb8c4fe7"},t("div",{key:"9a65798b0888a3d2d7a35c0d320408faa3d937b6",id:"markdown",ref:e=>this.rootElement=e}))}setupImageIntersectionObserver(){this.lazyLoadImages&&(this.imageIntersectionObserver=new l(this.rootElement))}cleanupImageIntersectionObserver(){this.imageIntersectionObserver&&(this.imageIntersectionObserver.disconnect(),this.imageIntersectionObserver=null)}static get watchers(){return{value:[{textChanged:0}],removeEmptyParagraphs:[{handleRemoveEmptyParagraphsChange:0}]}}};d.style='@charset "UTF-8";code{font-family:ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, "DejaVu Sans Mono", monospace;font-size:var(--limel-theme-default-small-font-size);letter-spacing:-0.0125rem;color:rgb(var(--contrast-1300));-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;display:inline-block;border-radius:0.25rem;padding:0.03125rem 0.25rem;background-color:rgb(var(--contrast-600))}pre>code{display:block;margin:0.5rem 0;padding:0.5rem 0.75rem;overflow:auto;white-space:pre-wrap}h1{font-size:1.5rem}h2{font-size:1.25rem}h3{font-size:1.125rem}h4{font-size:1rem}h5{font-size:var(--limel-theme-default-font-size)}h6{font-size:0.75rem}h1,h2{margin-top:0.5rem;margin-bottom:0.5rem;letter-spacing:-0.03125rem;font-weight:500}h3,h4{margin-top:0.75rem;margin-bottom:0.25rem;font-weight:600}h5,h6{margin-top:0.5rem;margin-bottom:0.125rem;font-weight:600}h1,h2,h3,h4,h5,h6{word-break:break-word;hyphens:auto;-webkit-hyphens:auto}:not([contenteditable=true]) h1,:not([contenteditable=true]) h2,:not([contenteditable=true]) h3,:not([contenteditable=true]) h4,:not([contenteditable=true]) h5,:not([contenteditable=true]) h6{text-wrap:balance}[contenteditable=true] h1,[contenteditable=true] h2,[contenteditable=true] h3,[contenteditable=true] h4,[contenteditable=true] h5,[contenteditable=true] h6{text-wrap:initial}:host(limel-markdown.truncate-paragraphs) p{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}p,li{font-size:var(--limel-theme-default-font-size);word-break:break-word}a{word-break:break-all}p{margin-top:0;margin-bottom:0.5rem}p:only-child{margin-bottom:0}a{transition:color 0.2s ease;color:var(--markdown-hyperlink-color, rgb(var(--color-blue-dark)));text-decoration:none}a:hover{color:var(--markdown-hyperlink-color--hovered, rgb(var(--color-blue-default)))}hr{margin:1.75rem 0 2rem 0;border-width:0;border-top:1px solid rgb(var(--contrast-500))}ul{list-style:none}ul li{position:relative;margin-left:0.75rem}ul li:before{content:"";position:absolute;left:-0.5rem;top:0.5rem;width:0.25rem;height:0.25rem;border-radius:50%;background-color:rgb(var(--contrast-700));display:block}ol{margin-top:0.25rem;padding-left:1rem}ul{margin-top:0.25rem;padding-left:0}ul ul,ul ol,ol ol,ol ul{margin-left:0}li{margin-bottom:0.25rem}:host(limel-markdown:not(.no-table-styles)) table{table-layout:auto;min-width:100%;border-collapse:collapse;border-spacing:0;background:transparent;margin:0.75rem 0}:host(limel-markdown:not(.no-table-styles)) tbody{border:1px solid rgb(var(--contrast-400));border-radius:0.25rem}:host(limel-markdown:not(.no-table-styles)) th,:host(limel-markdown:not(.no-table-styles)) td{text-align:left;vertical-align:top;transition:background-color 0.2s ease;font-size:var(--limel-theme-default-font-size)}:host(limel-markdown:not(.no-table-styles)) td{padding:0.5rem 0.375rem 0.75rem 0.375rem}:host(limel-markdown:not(.no-table-styles)) tr th{background-color:rgb(var(--contrast-400));padding:0.25rem 0.375rem;font-weight:normal}:host(limel-markdown:not(.no-table-styles)) tr th:only-child{text-align:center}:host(limel-markdown:not(.no-table-styles)) tbody tr:nth-child(odd) td{background-color:rgb(var(--contrast-200))}:host(limel-markdown:not(.no-table-styles)) tbody tr:hover td{background-color:rgb(var(--contrast-300))}table{display:block;box-sizing:border-box;overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}blockquote{position:relative;max-width:100%;margin:0.75rem 0;padding:0.5rem;border-left:0.25rem solid rgb(var(--contrast-500));background-color:rgb(var(--contrast-200))}blockquote:before,blockquote:after{position:absolute;line-height:0;font-size:2rem;opacity:0.4}blockquote:before{content:"“";left:-0.5rem;top:0.5rem}blockquote:after{content:"”";right:-0.25rem;bottom:-0.25rem}blockquote blockquote{padding-top:0;padding-right:0;padding-bottom:0;padding-left:0.25rem;border-color:rgb(var(--contrast-700));border-left-width:1px}blockquote blockquote:before,blockquote blockquote:after{display:none}blockquote:has(>blockquote){padding-left:0.25rem;padding-bottom:0}dl{display:grid;grid-template-columns:1fr 2fr;grid-template-rows:1fr;margin-bottom:2rem;border:1px solid rgb(var(--contrast-400));border-radius:0.375rem;background-color:rgb(var(--contrast-200))}dl dt,dl dd{padding:0.375rem 0.5rem;font-size:var(--limel-theme-default-font-size);margin:0}dl dt:nth-of-type(even),dl dd:nth-of-type(even){background-color:rgb(var(--contrast-300))}dl dt:first-child{border-top-left-radius:0.375rem}dl dt:last-child{border-bottom-left-radius:0.375rem}dl dd:first-child{border-top-right-radius:0.375rem}dl dd:last-child{border-bottom-right-radius:0.375rem}img{max-width:100%;border-radius:0.25rem}kbd{font-family:ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, "DejaVu Sans Mono", monospace;font-weight:600;color:rgb(var(--contrast-1100));background-color:rgb(var(--contrast-200));white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:normal;padding:0.125rem 0.5rem;margin:0 0.25rem;box-shadow:var(--button-shadow-normal), 0 0.03125rem 0.21875rem 0 rgba(var(--contrast-100), 0.5) inset;border-radius:0.125rem;border-style:solid;border-color:rgba(var(--contrast-600), 0.8);border-width:0 1px 0.125rem 1px}:host(limel-markdown.adjust-for-table-cell) img{max-height:1.25rem;vertical-align:middle}:host(limel-markdown.adjust-for-table-cell) p{display:inline}:host(limel-markdown.adjust-for-table-cell) h1,:host(limel-markdown.adjust-for-table-cell) h2,:host(limel-markdown.adjust-for-table-cell) h3,:host(limel-markdown.adjust-for-table-cell) h4,:host(limel-markdown.adjust-for-table-cell) h5,:host(limel-markdown.adjust-for-table-cell) h6{display:inline-block;vertical-align:bottom;font-size:var(--limel-theme-default-font-size);margin:0 0.25rem 0 0;letter-spacing:normal;font-weight:500}:host(limel-markdown.adjust-for-table-cell) h1:before,:host(limel-markdown.adjust-for-table-cell) h2:before,:host(limel-markdown.adjust-for-table-cell) h3:before,:host(limel-markdown.adjust-for-table-cell) h4:before,:host(limel-markdown.adjust-for-table-cell) h5:before,:host(limel-markdown.adjust-for-table-cell) h6:before{opacity:0.6;vertical-align:middle;font-size:0.5rem;border-radius:0.25rem 0 0 0.25rem;padding:0.25rem;padding-right:2rem;margin-right:-1.75rem;background:linear-gradient(to right, rgb(var(--contrast-800), 0.6), rgb(var(--contrast-800), 0))}:host(limel-markdown.adjust-for-table-cell) h1:before{content:"H1"}:host(limel-markdown.adjust-for-table-cell) h2:before{content:"H2"}:host(limel-markdown.adjust-for-table-cell) h3:before{content:"H3"}:host(limel-markdown.adjust-for-table-cell) h4:before{content:"H4"}:host(limel-markdown.adjust-for-table-cell) h5:before{content:"H5"}:host(limel-markdown.adjust-for-table-cell) h6:before{content:"H6"}:host(limel-markdown.adjust-for-table-cell) pre{margin:0}:host(limel-markdown.adjust-for-table-cell) pre>code{padding:0.125rem;margin:0}:host(limel-markdown.adjust-for-table-cell) dl{margin:0}:host(limel-markdown.adjust-for-table-cell) dl dt,:host(limel-markdown.adjust-for-table-cell) dl dd{padding:0.00625rem 0.125rem}*,*::before,*::after{box-sizing:border-box}* :where(:not(img,video,svg,canvas,iframe)),*::before :where(:not(img,video,svg,canvas,iframe)),*::after :where(:not(img,video,svg,canvas,iframe)){min-width:0;min-height:0}hr{border-top:1px solid rgb(var(--contrast-700))}.MsoNormal{margin:0}:host(limel-markdown.reset-img-height) #markdown img{height:auto}';export{d as limel_markdown}