@limetech/lime-elements 39.2.1 → 39.3.0
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.
- package/CHANGELOG.md +14 -0
- package/dist/cjs/limel-file-viewer.cjs.entry.js +56 -58
- package/dist/cjs/limel-markdown.cjs.entry.js +79 -2
- package/dist/collection/components/email-viewer/sanitize-email-html.js +56 -58
- package/dist/collection/components/markdown/hydrate-custom-elements.js +75 -0
- package/dist/collection/components/markdown/markdown.js +5 -2
- package/dist/esm/limel-file-viewer.entry.js +57 -59
- package/dist/esm/limel-markdown.entry.js +79 -2
- package/dist/lime-elements/lime-elements.esm.js +1 -1
- package/dist/lime-elements/p-49204db4.entry.js +1 -0
- package/dist/lime-elements/{p-c509ec9a.entry.js → p-656b8f6e.entry.js} +1 -1
- package/dist/types/components/markdown/hydrate-custom-elements.d.ts +18 -0
- package/dist/types/components/markdown/markdown.d.ts +1 -0
- package/dist/types/components.d.ts +4 -0
- package/package.json +1 -1
- package/dist/lime-elements/p-d9a7a188.entry.js +0 -1
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { CustomElementDefinition } from '../../global/shared-types/custom-element.types';
|
|
2
|
+
/**
|
|
3
|
+
* After innerHTML is set on a container, custom elements receive all
|
|
4
|
+
* attribute values as strings. This function walks whitelisted custom
|
|
5
|
+
* elements and parses any attribute values that look like JSON objects
|
|
6
|
+
* or arrays, setting them as JS properties instead.
|
|
7
|
+
*
|
|
8
|
+
* This enables markdown content to include custom elements with complex
|
|
9
|
+
* props, e.g.:
|
|
10
|
+
* ```html
|
|
11
|
+
* <limel-chip text="GitHub" link='{"href":"https://github.com","target":"_blank"}'></limel-chip>
|
|
12
|
+
* ```
|
|
13
|
+
*
|
|
14
|
+
* @param container - The root element to search within.
|
|
15
|
+
* @param whitelist - The list of whitelisted custom element definitions.
|
|
16
|
+
*/
|
|
17
|
+
export declare function hydrateCustomElements(container: HTMLElement | null | undefined, whitelist: CustomElementDefinition[] | null | undefined): void;
|
|
18
|
+
//# sourceMappingURL=hydrate-custom-elements.d.ts.map
|
|
@@ -16,6 +16,7 @@ import { CustomElementDefinition } from '../../global/shared-types/custom-elemen
|
|
|
16
16
|
* @exampleComponent limel-example-markdown-blockquotes
|
|
17
17
|
* @exampleComponent limel-example-markdown-horizontal-rule
|
|
18
18
|
* @exampleComponent limel-example-markdown-custom-component
|
|
19
|
+
* @exampleComponent limel-example-markdown-custom-component-with-json-props
|
|
19
20
|
* @exampleComponent limel-example-markdown-remove-empty-paragraphs
|
|
20
21
|
* @exampleComponent limel-example-markdown-composite
|
|
21
22
|
*/
|
|
@@ -2361,6 +2361,7 @@ export namespace Components {
|
|
|
2361
2361
|
* @exampleComponent limel-example-markdown-blockquotes
|
|
2362
2362
|
* @exampleComponent limel-example-markdown-horizontal-rule
|
|
2363
2363
|
* @exampleComponent limel-example-markdown-custom-component
|
|
2364
|
+
* @exampleComponent limel-example-markdown-custom-component-with-json-props
|
|
2364
2365
|
* @exampleComponent limel-example-markdown-remove-empty-paragraphs
|
|
2365
2366
|
* @exampleComponent limel-example-markdown-composite
|
|
2366
2367
|
*/
|
|
@@ -5321,6 +5322,7 @@ declare global {
|
|
|
5321
5322
|
* @exampleComponent limel-example-markdown-blockquotes
|
|
5322
5323
|
* @exampleComponent limel-example-markdown-horizontal-rule
|
|
5323
5324
|
* @exampleComponent limel-example-markdown-custom-component
|
|
5325
|
+
* @exampleComponent limel-example-markdown-custom-component-with-json-props
|
|
5324
5326
|
* @exampleComponent limel-example-markdown-remove-empty-paragraphs
|
|
5325
5327
|
* @exampleComponent limel-example-markdown-composite
|
|
5326
5328
|
*/
|
|
@@ -8661,6 +8663,7 @@ declare namespace LocalJSX {
|
|
|
8661
8663
|
* @exampleComponent limel-example-markdown-blockquotes
|
|
8662
8664
|
* @exampleComponent limel-example-markdown-horizontal-rule
|
|
8663
8665
|
* @exampleComponent limel-example-markdown-custom-component
|
|
8666
|
+
* @exampleComponent limel-example-markdown-custom-component-with-json-props
|
|
8664
8667
|
* @exampleComponent limel-example-markdown-remove-empty-paragraphs
|
|
8665
8668
|
* @exampleComponent limel-example-markdown-composite
|
|
8666
8669
|
*/
|
|
@@ -11703,6 +11706,7 @@ declare module "@stencil/core" {
|
|
|
11703
11706
|
* @exampleComponent limel-example-markdown-blockquotes
|
|
11704
11707
|
* @exampleComponent limel-example-markdown-horizontal-rule
|
|
11705
11708
|
* @exampleComponent limel-example-markdown-custom-component
|
|
11709
|
+
* @exampleComponent limel-example-markdown-custom-component-with-json-props
|
|
11706
11710
|
* @exampleComponent limel-example-markdown-remove-empty-paragraphs
|
|
11707
11711
|
* @exampleComponent limel-example-markdown-composite
|
|
11708
11712
|
*/
|
package/package.json
CHANGED
|
@@ -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()}}const n=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;try{this.cleanupImageIntersectionObserver();const t=await r(this.value,{forceHardLineBreaks:!0,whitelist:null!==(e=this.whitelist)&&void 0!==e?e:[],lazyLoadImages:this.lazyLoadImages,removeEmptyParagraphs:this.removeEmptyParagraphs});this.rootElement.innerHTML=t,this.setupImageIntersectionObserver()}catch(e){console.error(e)}}handleRemoveEmptyParagraphsChange(){return this.textChanged()}async componentDidLoad(){this.textChanged()}disconnectedCallback(){this.cleanupImageIntersectionObserver()}render(){return t(o,{key:"b1939b572c0a9ac59178497f56ebc469bc707d98"},t("div",{key:"f9dd27e5263281fad9e6d1da9d25d3ccd3a9990e",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}]}}};n.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{n as limel_markdown}
|