@limetech/lime-elements 38.30.1 → 38.31.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 (31) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/cjs/lime-elements.cjs.js +1 -1
  3. package/dist/cjs/limel-code-editor.cjs.entry.js +1673 -1
  4. package/dist/cjs/limel-code-editor.cjs.entry.js.map +1 -1
  5. package/dist/cjs/limel-collapsible-section.cjs.entry.js +1 -1
  6. package/dist/cjs/limel-collapsible-section.cjs.entry.js.map +1 -1
  7. package/dist/cjs/loader.cjs.js +1 -1
  8. package/dist/collection/components/code-editor/code-editor.js +30 -2
  9. package/dist/collection/components/code-editor/code-editor.js.map +1 -1
  10. package/dist/collection/components/code-editor/code-editor.types.js.map +1 -1
  11. package/dist/collection/components/collapsible-section/collapsible-section.css +14 -8
  12. package/dist/esm/lime-elements.js +1 -1
  13. package/dist/esm/limel-code-editor.entry.js +1673 -1
  14. package/dist/esm/limel-code-editor.entry.js.map +1 -1
  15. package/dist/esm/limel-collapsible-section.entry.js +1 -1
  16. package/dist/esm/limel-collapsible-section.entry.js.map +1 -1
  17. package/dist/esm/loader.js +1 -1
  18. package/dist/lime-elements/lime-elements.esm.js +1 -1
  19. package/dist/lime-elements/lime-elements.esm.js.map +1 -1
  20. package/dist/lime-elements/p-5a483374.entry.js +2 -0
  21. package/dist/lime-elements/p-5a483374.entry.js.map +1 -0
  22. package/dist/lime-elements/p-f507000e.entry.js +2 -0
  23. package/dist/lime-elements/p-f507000e.entry.js.map +1 -0
  24. package/dist/types/components/code-editor/code-editor.d.ts +9 -1
  25. package/dist/types/components/code-editor/code-editor.types.d.ts +1 -1
  26. package/dist/types/components.d.ts +12 -4
  27. package/package.json +1 -1
  28. package/dist/lime-elements/p-596af3ae.entry.js +0 -2
  29. package/dist/lime-elements/p-596af3ae.entry.js.map +0 -1
  30. package/dist/lime-elements/p-ed8aa16c.entry.js +0 -2
  31. package/dist/lime-elements/p-ed8aa16c.entry.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ import{r as e,c as o,h as t,g as i}from"./p-288f0842.js";import{d as s}from"./p-c70b1ea3.js";import{m as n,r}from"./p-e127eaaa.js";import{c as a}from"./p-ad52787a.js";import{g as l,a as c,b as d}from"./p-d251f404.js";import{t as p}from"./p-4c88e5d3.js";const h='@charset "UTF-8";:host(limel-collapsible-section){--border-radius-of-header:0.75rem;display:block}:host([hidden]){display:none}.open-close-toggle{all:unset;position:absolute;inset:0;width:100%;transition:background-color 0.4s ease, border-radius 0.1s ease;cursor:pointer;z-index:-1;background-color:var(--closed-header-background-color, rgb(var(--contrast-200)));border-radius:var(--border-radius-of-header)}.open-close-toggle:focus{outline:none}.open-close-toggle:focus-visible{outline:none;box-shadow:var(--shadow-depth-8-focused)}.open-close-toggle:hover,.open-close-toggle:focus-visible{background-color:var(--open-header-background-color, rgb(var(--contrast-300)))}section.open .open-close-toggle{background-color:var(--open-header-background-color, rgb(var(--contrast-100)));border-radius:var(--border-radius-of-header) var(--border-radius-of-header) var(--limel-cs-open-header-bottom-border-radius, 0) var(--limel-cs-open-header-bottom-border-radius, 0)}section.open .open-close-toggle:hover,section.open .open-close-toggle:focus-visible{background-color:var(--open-header-background-color, rgb(var(--contrast-300)))}.title,.divider-line,.expand-icon{pointer-events:none}section{transition:box-shadow 0.4s ease;border-radius:var(--border-radius-of-header)}section[aria-invalid]:not([aria-invalid=false]){--header-stroke-color:rgb(var(--color-red-default)) !important}section[aria-invalid]:not([aria-invalid=false]):not(.open){box-shadow:0 0 0 1px rgb(var(--color-red-default))}header{isolation:isolate;position:relative;align-items:center;display:flex;justify-content:space-between;gap:0.5rem;padding-left:0.5rem;height:2.5rem}limel-icon{width:1.5rem}.title{font-size:1rem;font-weight:300;color:var(--limel-theme-on-surface-color);justify-self:flex-start;user-select:none;height:auto;max-height:3rem;line-height:1.2rem;display:-webkit-box;overflow:hidden;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}.divider-line{transition:opacity 0.3s ease 0.3s;flex-grow:1;height:0.125rem;border-radius:1rem;background-color:var(--header-stroke-color, rgb(var(--contrast-900)));opacity:0;margin-right:0.5rem}section.open .divider-line{opacity:0.16}.actions{justify-self:flex-end;flex-shrink:0}::slotted([slot=header]){margin-right:0.5rem}.body{background-color:var(--body-background-color, var(--contrast-100));padding-left:var(--body-padding, 1.25rem);padding-right:var(--body-padding, 1.25rem);border-radius:0 0 var(--border-radius-of-header) var(--border-radius-of-header)}.body{transition:grid-template-rows var(--limel-cs-grid-template-rows-transition-speed) cubic-bezier(1, 0.09, 0, 0.89);display:grid;grid-template-rows:var(--limel-cs-grid-template-rows)}.body slot{transition:opacity var(--limel-cs-opacity-transition-speed) ease var(--limel-cs-opacity-transition-delay);display:block;overflow:hidden}:host(limel-collapsible-section:not([is-open])){--limel-cs-opacity-transition-speed:0.1s;--limel-cs-opacity-transition-delay:0s;--limel-cs-grid-template-rows-transition-speed:0.3s;--limel-cs-grid-template-rows:0fr}:host(limel-collapsible-section:not([is-open])) slot{opacity:0}:host(limel-collapsible-section[is-open]){--limel-cs-opacity-transition-speed:0.4s;--limel-cs-opacity-transition-delay:0.3s;--limel-cs-grid-template-rows-transition-speed:0.46s;--limel-cs-grid-template-rows:1fr}:host(limel-collapsible-section[is-open]) slot{opacity:1}header:hover+.body,header:has(.open-close-toggle:hover)+.body,header:has(.open-close-toggle:focus-visible)+.body{will-change:grid-template-rows}header:hover+.body slot,header:has(.open-close-toggle:hover)+.body slot,header:has(.open-close-toggle:focus-visible)+.body slot{will-change:opacity}.expand-icon{position:relative;display:flex;align-items:center;justify-content:center;height:1.875rem;margin:0 0 0 0.5rem;width:0.75rem;flex-shrink:0}.line{position:absolute;inset:auto;margin:auto;width:100%;border-radius:1rem;height:0.125rem}.line:first-of-type,.line:last-of-type{transition:opacity 0.2s ease 0.1s, transform 0.4s ease 0.3s;opacity:0;background-color:var(--header-stroke-color, rgb(var(--contrast-900)))}.line:nth-of-type(2){transform:translate3d(0, 0.25rem, 0) rotate(90deg)}.line:nth-of-type(3){transform:translate3d(0, -0.25rem, 0) rotate(-90deg)}.line:nth-of-type(2),.line:nth-of-type(3){transition:opacity 0.2s ease, transform 0.18s ease}.line:nth-of-type(2):before,.line:nth-of-type(2):after,.line:nth-of-type(3):before,.line:nth-of-type(3):after{content:"";position:absolute;inset:0;margin:auto;width:50%;height:100%;border-radius:inherit;background-color:var(--header-stroke-color, rgb(var(--contrast-900)))}.line:nth-of-type(2):before,.line:nth-of-type(3):before{transform:translate3d(0, -0.1rem, 0) rotate(45deg)}.line:nth-of-type(2):after,.line:nth-of-type(3):after{transform:translate3d(0, 0.1rem, 0) rotate(-45deg)}.open-close-toggle:hover+.expand-icon .line:first-of-type,.open-close-toggle:hover+.expand-icon .line:last-of-type,.open-close-toggle:focus-visible+.expand-icon .line:first-of-type,.open-close-toggle:focus-visible+.expand-icon .line:last-of-type{transition:opacity 0.8s ease 0.4s, transform 0.4s ease 0.3s;opacity:1}.open-close-toggle:hover+.expand-icon .line:first-of-type,.open-close-toggle:focus-visible+.expand-icon .line:first-of-type{transform:rotate3d(0, 0, 1, 0deg)}.open-close-toggle:hover+.expand-icon .line:last-of-type,.open-close-toggle:focus-visible+.expand-icon .line:last-of-type{transform:rotate3d(0, 0, 1, 0deg)}.open-close-toggle:hover+.expand-icon .line:nth-of-type(2),.open-close-toggle:hover+.expand-icon .line:nth-of-type(3),.open-close-toggle:focus-visible+.expand-icon .line:nth-of-type(2),.open-close-toggle:focus-visible+.expand-icon .line:nth-of-type(3){transition:opacity 0.5s ease 0.4s, transform 0.7s cubic-bezier(0.85, 0.11, 0.14, 1.35) 0.2s}.open-close-toggle:hover+.expand-icon .line:nth-of-type(2),.open-close-toggle:focus-visible+.expand-icon .line:nth-of-type(2){transform:translate3d(0, 0.5rem, 0) rotate(90deg);opacity:0.4}.open-close-toggle:hover+.expand-icon .line:nth-of-type(3),.open-close-toggle:focus-visible+.expand-icon .line:nth-of-type(3){transform:translate3d(0, -0.5rem, 0) rotate(-90deg);opacity:0.4}section.open .line:first-of-type,section.open .line:last-of-type{transition:opacity 0.2s ease 0.1s, transform 0.4s ease 0.3s;opacity:1}section.open .line:first-of-type{transform:rotate3d(0, 0, 1, 0deg)}section.open .line:last-of-type{transform:rotate3d(0, 0, 1, 0deg)}section.open .line:nth-of-type(2),section.open .line:nth-of-type(3){transition:opacity 1s ease, transform 0.4s ease}section.open .line:nth-of-type(2){transform:translate3d(0, 1rem, 0) rotate(90deg);opacity:0}section.open .line:nth-of-type(3){transform:translate3d(0, -1rem, 0) rotate(-90deg);opacity:0}section.open .open-close-toggle:hover+.expand-icon .line:first-of-type,section.open .open-close-toggle:hover+.expand-icon .line:last-of-type,section.open .open-close-toggle:focus-visible+.expand-icon .line:first-of-type,section.open .open-close-toggle:focus-visible+.expand-icon .line:last-of-type{transition:opacity 0.2s ease 0.4s, transform 0.4s cubic-bezier(0.85, 0.11, 0.14, 1.35) 0.2s}section.open .open-close-toggle:hover+.expand-icon .line:first-of-type,section.open .open-close-toggle:focus-visible+.expand-icon .line:first-of-type{transform:rotate3d(0, 0, 1, 45deg)}section.open .open-close-toggle:hover+.expand-icon .line:last-of-type,section.open .open-close-toggle:focus-visible+.expand-icon .line:last-of-type{transform:rotate3d(0, 0, 1, -45deg)}section.open .open-close-toggle:hover+.expand-icon .line:nth-of-type(2),section.open .open-close-toggle:focus-visible+.expand-icon .line:nth-of-type(2){transform:translate3d(0, 1rem, 0) rotate(90deg);opacity:0}section.open .open-close-toggle:hover+.expand-icon .line:nth-of-type(3),section.open .open-close-toggle:focus-visible+.expand-icon .line:nth-of-type(3){transform:translate3d(0, -1rem, 0) rotate(-90deg);opacity:0}';const g=class{constructor(i){e(this,i);this.open=o(this,"open",7);this.close=o(this,"close",7);this.action=o(this,"action",7);this.bodyId=a();this.headingId=a();this.onClick=()=>{this.handleInteraction()};this.handleInteraction=()=>{this.isOpen=!this.isOpen;if(this.isOpen){this.open.emit();const e=100;setTimeout(s,e)}else{this.close.emit()}};this.renderExpandCollapseSign=()=>t("div",{class:"expand-icon",role:"presentation","aria-hidden":"true"},t("div",{class:"line"}),t("div",{class:"line"}),t("div",{class:"line"}),t("div",{class:"line"}));this.renderIcon=()=>{if(!this.icon){return}const e=l(this.icon);const o=c(this.icon);const i=d(this.icon);return t("limel-icon",{name:e,"aria-label":i,"aria-hidden":i?null:"true",style:{color:`${o}`}})};this.renderHeading=()=>{if(!this.header){return}return t("h2",{class:"title mdc-typography mdc-typography--headline2",id:this.headingId},this.header)};this.renderActions=()=>{if(!this.actions){return}return t("div",{class:"actions"},this.actions.map(this.renderActionButton))};this.renderActionButton=e=>t("limel-icon-button",{icon:e.icon,label:e.label,disabled:e.disabled,onClick:this.handleActionClick(e)});this.handleActionClick=e=>o=>{o.stopPropagation();this.action.emit(e)};this.getCollapsibleSectionAriaLabel=()=>{const e=this.header?`"${this.header}"`:" ";if(!this.isOpen){return p.get("collapsible-section.open",this.language,{header:e})}return p.get("collapsible-section.close",this.language,{header:e})};this.isOpen=false;this.header=undefined;this.icon=undefined;this.invalid=false;this.actions=undefined;this.language="en"}componentDidRender(){const e=this.host.shadowRoot.querySelector(".open-close-toggle");n(e)}disconnectedCallback(){const e=this.host.shadowRoot.querySelector(".open-close-toggle");r(e)}render(){return t("section",{class:`${this.isOpen?"open":""}`,"aria-invalid":this.invalid,"aria-labelledby":this.header?this.headingId:null},t("header",null,t("button",{class:"open-close-toggle",onClick:this.onClick,"aria-controls":this.bodyId,"aria-expanded":this.isOpen?"true":"false","aria-label":this.getCollapsibleSectionAriaLabel(),type:"button"}),this.renderExpandCollapseSign(),this.renderIcon(),this.renderHeading(),t("div",{class:"divider-line",role:"presentation"}),this.renderHeaderSlot(),this.renderActions()),t("div",{class:"body","aria-hidden":String(!this.isOpen),id:this.bodyId,role:"region"},t("slot",null)))}renderHeaderSlot(){return t("slot",{name:"header"})}get host(){return i(this)}};g.style=h;export{g as limel_collapsible_section};
2
+ //# sourceMappingURL=p-f507000e.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["collapsibleSectionCss","CollapsibleSection","this","bodyId","createRandomString","headingId","onClick","handleInteraction","isOpen","open","emit","waitForUiToRender","setTimeout","dispatchResizeEvent","close","renderExpandCollapseSign","h","class","role","renderIcon","icon","name","getIconName","color","getIconColor","title","getIconTitle","style","renderHeading","header","id","renderActions","actions","map","renderActionButton","action","label","disabled","handleActionClick","event","stopPropagation","getCollapsibleSectionAriaLabel","heading","translate","get","language","componentDidRender","button","host","shadowRoot","querySelector","makeEnterClickable","disconnectedCallback","removeEnterClickable","render","invalid","type","renderHeaderSlot","String"],"sources":["./src/components/collapsible-section/collapsible-section.scss?tag=limel-collapsible-section&encapsulation=shadow","./src/components/collapsible-section/collapsible-section.tsx"],"sourcesContent":["@use '../../style/mixins';\n@use '../../style/internal/shared_input-select-picker';\n\n/**\n * @prop --closed-header-background-color: background color for header when closed\n * @prop --open-header-background-color: background color for header when open\n * @prop --header-stroke-color: color of the animated icons that visualize collapsed or normal states of the headers, as well as the divider line on headers\n * @prop --body-background-color: background color for body\n * @prop --body-padding: space around content of the body\n */\n\n:host(limel-collapsible-section) {\n --border-radius-of-header: 0.75rem;\n display: block;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.open-close-toggle {\n all: unset;\n position: absolute;\n inset: 0;\n width: 100%; // for Firefox\n @include mixins.visualize-keyboard-focus;\n transition:\n background-color 0.4s ease,\n border-radius 0.1s ease;\n cursor: pointer;\n z-index: -1;\n\n background-color: var(\n --closed-header-background-color,\n rgb(var(--contrast-200))\n );\n border-radius: var(--border-radius-of-header);\n\n &:hover,\n &:focus-visible {\n background-color: var(\n --open-header-background-color,\n rgb(var(--contrast-300))\n );\n }\n\n section.open & {\n background-color: var(\n --open-header-background-color,\n rgb(var(--contrast-100))\n );\n border-radius: var(--border-radius-of-header)\n var(--border-radius-of-header)\n var(--limel-cs-open-header-bottom-border-radius, 0)\n var(--limel-cs-open-header-bottom-border-radius, 0);\n &:hover,\n &:focus-visible {\n background-color: var(\n --open-header-background-color,\n rgb(var(--contrast-300))\n );\n }\n }\n}\n\n.title,\n.divider-line,\n.expand-icon {\n pointer-events: none;\n}\n\nsection {\n transition: box-shadow 0.4s ease;\n border-radius: var(--border-radius-of-header);\n\n &[aria-invalid]:not([aria-invalid='false']) {\n --header-stroke-color: rgb(var(--color-red-default)) !important;\n\n &:not(.open) {\n box-shadow: 0 0 0 1px rgb(var(--color-red-default));\n }\n }\n}\n\nheader {\n isolation: isolate;\n position: relative;\n\n align-items: center;\n display: flex;\n justify-content: space-between;\n gap: 0.5rem;\n\n padding-left: 0.5rem;\n height: shared_input-select-picker.$height-of-mdc-text-field;\n}\n\nlimel-icon {\n width: 1.5rem;\n}\n\n.title {\n font-size: 1rem;\n font-weight: 300;\n color: var(--limel-theme-on-surface-color);\n\n justify-self: flex-start;\n\n user-select: none; // mostly to improve experience on Android, where tapping on sections selects the text too\n\n // Below tries to render text in two lines,\n // and then truncate if there is no more space\n height: auto;\n max-height: 3rem;\n line-height: 1.2rem;\n @include mixins.truncate-text-on-line(2);\n}\n\n.divider-line {\n transition: opacity 0.3s ease 0.3s;\n flex-grow: 1;\n height: 0.125rem;\n border-radius: 1rem;\n background-color: var(--header-stroke-color, rgb(var(--contrast-900)));\n\n opacity: 0;\n margin-right: 0.5rem;\n\n section.open & {\n opacity: 0.16;\n }\n}\n\n.actions {\n justify-self: flex-end;\n flex-shrink: 0;\n}\n\n::slotted([slot='header']) {\n margin-right: 0.5rem;\n}\n\n.body {\n background-color: var(--body-background-color, var(--contrast-100));\n padding-left: var(--body-padding, 1.25rem);\n padding-right: var(--body-padding, 1.25rem);\n border-radius: 0 0 var(--border-radius-of-header)\n var(--border-radius-of-header);\n}\n\n// This animates height of the body,\n// from `0` to `auto`\n.body {\n transition: grid-template-rows\n var(--limel-cs-grid-template-rows-transition-speed)\n cubic-bezier(1, 0.09, 0, 0.89);\n display: grid;\n grid-template-rows: var(--limel-cs-grid-template-rows);\n\n slot {\n transition: opacity var(--limel-cs-opacity-transition-speed) ease\n var(--limel-cs-opacity-transition-delay);\n display: block;\n overflow: hidden;\n }\n}\n\n:host(limel-collapsible-section:not([is-open])) {\n --limel-cs-opacity-transition-speed: 0.1s;\n --limel-cs-opacity-transition-delay: 0s;\n --limel-cs-grid-template-rows-transition-speed: 0.3s;\n --limel-cs-grid-template-rows: 0fr;\n\n slot {\n opacity: 0;\n }\n}\n\n:host(limel-collapsible-section[is-open]) {\n --limel-cs-opacity-transition-speed: 0.4s;\n --limel-cs-opacity-transition-delay: 0.3s;\n --limel-cs-grid-template-rows-transition-speed: 0.46s;\n --limel-cs-grid-template-rows: 1fr;\n\n slot {\n opacity: 1;\n }\n}\n\nheader:hover,\nheader:has(.open-close-toggle:hover),\nheader:has(.open-close-toggle:focus-visible) {\n + .body {\n will-change: grid-template-rows;\n\n slot {\n will-change: opacity;\n }\n }\n}\n\n// End: animating height\n\n@import './partial-styles/expand-icon.scss';\n","import {\n Component,\n Event,\n Element,\n EventEmitter,\n h,\n Prop,\n} from '@stencil/core';\nimport { dispatchResizeEvent } from '../../util/dispatch-resize-event';\nimport { Action } from './action';\nimport {\n makeEnterClickable,\n removeEnterClickable,\n} from '../../util/make-enter-clickable';\nimport { createRandomString } from '../../util/random-string';\nimport { Icon } from '../../global/shared-types/icon.types';\nimport {\n getIconColor,\n getIconName,\n getIconTitle,\n} from '../icon/get-icon-props';\nimport translate from '../../global/translations';\nimport { Languages } from '../date-picker/date.types';\n\n/**\n * A collapsible section can be used to group related content together\n * and hide the group when not needed.\n * Using this component can help to:\n * - Save vertical space by hiding non-essential content\n * - Improve content organization and scannability of the user interface\n * - Reduce cognitive load by displaying only a set of relevant information at a time\n * - Or disclose complex information, progressively to the user\n *\n * @slot - Content to put inside the collapsible section\n * @slot header - Optional slot for custom header content\n *\n * @exampleComponent limel-example-collapsible-section-basic\n * @exampleComponent limel-example-collapsible-section-actions\n * @exampleComponent limel-example-collapsible-section-with-custom-header-component\n * @exampleComponent limel-example-collapsible-section-external-control\n * @exampleComponent limel-example-collapsible-section-with-slider\n * @exampleComponent limel-example-collapsible-section-invalid\n * @exampleComponent limel-example-collapsible-section-icon\n * @exampleComponent limel-example-collapsible-section-css-props\n */\n@Component({\n tag: 'limel-collapsible-section',\n shadow: true,\n styleUrl: 'collapsible-section.scss',\n})\nexport class CollapsibleSection {\n /**\n * `true` if the section is expanded, `false` if collapsed.\n */\n @Prop({ mutable: true, reflect: true })\n public isOpen: boolean = false;\n\n /**\n * Text to display in the header of the section\n */\n @Prop({ reflect: true })\n public header: string;\n\n /**\n * Icon to display in the header of the section\n */\n @Prop()\n public icon?: string | Icon;\n\n /**\n * `true` if the section is invalid, `false` if valid.\n * This can be used to indicate that the content inside the section is invalid.\n */\n @Prop({ reflect: true })\n public invalid = false;\n\n /**\n * Actions to place to the far right inside the header\n */\n @Prop()\n public actions: Action[];\n\n /**\n * Defines the language for translations.\n * Will translate the translatable strings on the components.\n */\n @Prop({ reflect: true })\n public language: Languages = 'en';\n\n /**\n * Emitted when the section is expanded\n */\n @Event()\n private open: EventEmitter<void>;\n\n /**\n * Emitted when the section is collapsed\n */\n @Event()\n private close: EventEmitter<void>;\n\n /**\n * Emitted when an action is clicked inside the header\n */\n @Event()\n private action: EventEmitter<Action>;\n\n @Element()\n private host: HTMLElement;\n\n private bodyId = createRandomString();\n private headingId = createRandomString();\n\n public componentDidRender() {\n const button = this.host.shadowRoot.querySelector(\n '.open-close-toggle'\n ) as HTMLElement;\n\n makeEnterClickable(button);\n }\n\n public disconnectedCallback() {\n const button = this.host.shadowRoot.querySelector(\n '.open-close-toggle'\n ) as HTMLElement;\n\n removeEnterClickable(button);\n }\n\n public render() {\n return (\n <section\n class={`${this.isOpen ? 'open' : ''}`}\n aria-invalid={this.invalid}\n aria-labelledby={this.header ? this.headingId : null}\n >\n <header>\n <button\n class=\"open-close-toggle\"\n onClick={this.onClick}\n aria-controls={this.bodyId}\n aria-expanded={this.isOpen ? 'true' : 'false'}\n aria-label={this.getCollapsibleSectionAriaLabel()}\n type=\"button\"\n />\n {this.renderExpandCollapseSign()}\n {this.renderIcon()}\n {this.renderHeading()}\n <div class=\"divider-line\" role=\"presentation\" />\n {this.renderHeaderSlot()}\n {this.renderActions()}\n </header>\n <div\n class=\"body\"\n aria-hidden={String(!this.isOpen)}\n id={this.bodyId}\n role=\"region\"\n >\n <slot />\n </div>\n </section>\n );\n }\n\n private onClick = () => {\n this.handleInteraction();\n };\n\n private handleInteraction = () => {\n this.isOpen = !this.isOpen;\n\n if (this.isOpen) {\n this.open.emit();\n const waitForUiToRender = 100;\n setTimeout(dispatchResizeEvent, waitForUiToRender);\n } else {\n this.close.emit();\n }\n };\n\n private renderExpandCollapseSign = () => {\n return (\n <div class=\"expand-icon\" role=\"presentation\" aria-hidden=\"true\">\n <div class=\"line\" />\n <div class=\"line\" />\n <div class=\"line\" />\n <div class=\"line\" />\n </div>\n );\n };\n\n private renderIcon = () => {\n if (!this.icon) {\n return;\n }\n\n const name = getIconName(this.icon);\n const color = getIconColor(this.icon);\n const title = getIconTitle(this.icon);\n\n return (\n <limel-icon\n name={name}\n aria-label={title}\n aria-hidden={title ? null : 'true'}\n style={{\n color: `${color}`,\n }}\n />\n );\n };\n\n private renderHeading = () => {\n if (!this.header) {\n return;\n }\n\n return (\n <h2\n class=\"title mdc-typography mdc-typography--headline2\"\n id={this.headingId}\n >\n {this.header}\n </h2>\n );\n };\n\n private renderActions = () => {\n if (!this.actions) {\n return;\n }\n\n return (\n <div class=\"actions\">\n {this.actions.map(this.renderActionButton)}\n </div>\n );\n };\n\n private renderHeaderSlot() {\n return <slot name=\"header\" />;\n }\n\n private renderActionButton = (action: Action) => {\n return (\n <limel-icon-button\n icon={action.icon}\n label={action.label}\n disabled={action.disabled}\n onClick={this.handleActionClick(action)}\n />\n );\n };\n\n private handleActionClick = (action: Action) => (event: MouseEvent) => {\n event.stopPropagation();\n this.action.emit(action);\n };\n\n private getCollapsibleSectionAriaLabel = (): string => {\n const heading = this.header ? `\"${this.header}\"` : ' ';\n\n if (!this.isOpen) {\n return translate.get('collapsible-section.open', this.language, {\n header: heading,\n });\n }\n\n return translate.get('collapsible-section.close', this.language, {\n header: heading,\n });\n };\n}\n"],"mappings":"6PAAA,MAAMA,EAAwB,2uP,MCkDjBC,EAAkB,M,gHA4DnBC,KAAAC,OAASC,IACTF,KAAAG,UAAYD,IAqDZF,KAAAI,QAAU,KACdJ,KAAKK,mBAAmB,EAGpBL,KAAAK,kBAAoB,KACxBL,KAAKM,QAAUN,KAAKM,OAEpB,GAAIN,KAAKM,OAAQ,CACbN,KAAKO,KAAKC,OACV,MAAMC,EAAoB,IAC1BC,WAAWC,EAAqBF,E,KAC7B,CACHT,KAAKY,MAAMJ,M,GAIXR,KAAAa,yBAA2B,IAE3BC,EAAA,OAAKC,MAAM,cAAcC,KAAK,eAAc,cAAa,QACrDF,EAAA,OAAKC,MAAM,SACXD,EAAA,OAAKC,MAAM,SACXD,EAAA,OAAKC,MAAM,SACXD,EAAA,OAAKC,MAAM,UAKff,KAAAiB,WAAa,KACjB,IAAKjB,KAAKkB,KAAM,CACZ,M,CAGJ,MAAMC,EAAOC,EAAYpB,KAAKkB,MAC9B,MAAMG,EAAQC,EAAatB,KAAKkB,MAChC,MAAMK,EAAQC,EAAaxB,KAAKkB,MAEhC,OACIJ,EAAA,cACIK,KAAMA,EAAI,aACEI,EAAK,cACJA,EAAQ,KAAO,OAC5BE,MAAO,CACHJ,MAAO,GAAGA,MAEhB,EAIFrB,KAAA0B,cAAgB,KACpB,IAAK1B,KAAK2B,OAAQ,CACd,M,CAGJ,OACIb,EAAA,MACIC,MAAM,iDACNa,GAAI5B,KAAKG,WAERH,KAAK2B,OACL,EAIL3B,KAAA6B,cAAgB,KACpB,IAAK7B,KAAK8B,QAAS,CACf,M,CAGJ,OACIhB,EAAA,OAAKC,MAAM,WACNf,KAAK8B,QAAQC,IAAI/B,KAAKgC,oBACrB,EAQNhC,KAAAgC,mBAAsBC,GAEtBnB,EAAA,qBACII,KAAMe,EAAOf,KACbgB,MAAOD,EAAOC,MACdC,SAAUF,EAAOE,SACjB/B,QAASJ,KAAKoC,kBAAkBH,KAKpCjC,KAAAoC,kBAAqBH,GAAoBI,IAC7CA,EAAMC,kBACNtC,KAAKiC,OAAOzB,KAAKyB,EAAO,EAGpBjC,KAAAuC,+BAAiC,KACrC,MAAMC,EAAUxC,KAAK2B,OAAS,IAAI3B,KAAK2B,UAAY,IAEnD,IAAK3B,KAAKM,OAAQ,CACd,OAAOmC,EAAUC,IAAI,2BAA4B1C,KAAK2C,SAAU,CAC5DhB,OAAQa,G,CAIhB,OAAOC,EAAUC,IAAI,4BAA6B1C,KAAK2C,SAAU,CAC7DhB,OAAQa,GACV,E,YAvNmB,M,uDAmBR,M,qCAaY,I,CA0BtBI,qBACH,MAAMC,EAAS7C,KAAK8C,KAAKC,WAAWC,cAChC,sBAGJC,EAAmBJ,E,CAGhBK,uBACH,MAAML,EAAS7C,KAAK8C,KAAKC,WAAWC,cAChC,sBAGJG,EAAqBN,E,CAGlBO,SACH,OACItC,EAAA,WACIC,MAAO,GAAGf,KAAKM,OAAS,OAAS,KAAI,eACvBN,KAAKqD,QAAO,kBACTrD,KAAK2B,OAAS3B,KAAKG,UAAY,MAEhDW,EAAA,cACIA,EAAA,UACIC,MAAM,oBACNX,QAASJ,KAAKI,QAAO,gBACNJ,KAAKC,OAAM,gBACXD,KAAKM,OAAS,OAAS,QAAO,aACjCN,KAAKuC,iCACjBe,KAAK,WAERtD,KAAKa,2BACLb,KAAKiB,aACLjB,KAAK0B,gBACNZ,EAAA,OAAKC,MAAM,eAAeC,KAAK,iBAC9BhB,KAAKuD,mBACLvD,KAAK6B,iBAEVf,EAAA,OACIC,MAAM,OAAM,cACCyC,QAAQxD,KAAKM,QAC1BsB,GAAI5B,KAAKC,OACTe,KAAK,UAELF,EAAA,c,CAiFRyC,mBACJ,OAAOzC,EAAA,QAAMK,KAAK,U"}
@@ -1,17 +1,21 @@
1
1
  import { EventEmitter } from '../../stencil-public-runtime';
2
2
  import { ColorScheme, Language } from './code-editor.types';
3
+ import 'codemirror/mode/css/css';
4
+ import 'codemirror/mode/htmlmixed/htmlmixed';
3
5
  import 'codemirror/mode/javascript/javascript';
4
6
  import 'codemirror/mode/jinja2/jinja2';
5
7
  import 'codemirror/addon/selection/active-line';
6
8
  import 'codemirror/addon/edit/matchbrackets';
9
+ import 'codemirror/addon/edit/matchtags';
7
10
  import 'codemirror/addon/lint/lint';
8
11
  import 'codemirror/addon/lint/json-lint';
9
12
  import 'codemirror/addon/fold/foldgutter';
10
13
  import 'codemirror/addon/fold/brace-fold';
14
+ import 'codemirror/addon/fold/xml-fold';
11
15
  /**
12
16
  * @exampleComponent limel-example-code-editor
13
17
  * @exampleComponent limel-example-code-editor-readonly-with-line-numbers
14
- * @exampleComponent limel-example-code-editor-fold-lint
18
+ * @exampleComponent limel-example-code-editor-fold-lint-wrap
15
19
  */
16
20
  export declare class CodeEditor {
17
21
  /**
@@ -30,6 +34,10 @@ export declare class CodeEditor {
30
34
  * Displays line numbers in the editor
31
35
  */
32
36
  lineNumbers: boolean;
37
+ /**
38
+ * Wraps long lines instead of showing horizontal scrollbar
39
+ */
40
+ lineWrapping: boolean;
33
41
  /**
34
42
  * Allows the user to fold code
35
43
  */
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @public
3
3
  */
4
- export type Language = 'javascript' | 'jinja2' | 'json' | 'typescript';
4
+ export type Language = 'css' | 'html' | 'javascript' | 'jinja2' | 'json' | 'typescript';
5
5
  /**
6
6
  * @public
7
7
  */
@@ -864,7 +864,7 @@ export namespace Components {
864
864
  /**
865
865
  * @exampleComponent limel-example-code-editor
866
866
  * @exampleComponent limel-example-code-editor-readonly-with-line-numbers
867
- * @exampleComponent limel-example-code-editor-fold-lint
867
+ * @exampleComponent limel-example-code-editor-fold-lint-wrap
868
868
  */
869
869
  interface LimelCodeEditor {
870
870
  /**
@@ -883,6 +883,10 @@ export namespace Components {
883
883
  * Displays line numbers in the editor
884
884
  */
885
885
  "lineNumbers": boolean;
886
+ /**
887
+ * Wraps long lines instead of showing horizontal scrollbar
888
+ */
889
+ "lineWrapping": boolean;
886
890
  /**
887
891
  * Enables linting of JSON content
888
892
  */
@@ -3917,7 +3921,7 @@ declare global {
3917
3921
  /**
3918
3922
  * @exampleComponent limel-example-code-editor
3919
3923
  * @exampleComponent limel-example-code-editor-readonly-with-line-numbers
3920
- * @exampleComponent limel-example-code-editor-fold-lint
3924
+ * @exampleComponent limel-example-code-editor-fold-lint-wrap
3921
3925
  */
3922
3926
  interface HTMLLimelCodeEditorElement extends Components.LimelCodeEditor, HTMLStencilElement {
3923
3927
  }
@@ -5999,7 +6003,7 @@ declare namespace LocalJSX {
5999
6003
  /**
6000
6004
  * @exampleComponent limel-example-code-editor
6001
6005
  * @exampleComponent limel-example-code-editor-readonly-with-line-numbers
6002
- * @exampleComponent limel-example-code-editor-fold-lint
6006
+ * @exampleComponent limel-example-code-editor-fold-lint-wrap
6003
6007
  */
6004
6008
  interface LimelCodeEditor {
6005
6009
  /**
@@ -6018,6 +6022,10 @@ declare namespace LocalJSX {
6018
6022
  * Displays line numbers in the editor
6019
6023
  */
6020
6024
  "lineNumbers"?: boolean;
6025
+ /**
6026
+ * Wraps long lines instead of showing horizontal scrollbar
6027
+ */
6028
+ "lineWrapping"?: boolean;
6021
6029
  /**
6022
6030
  * Enables linting of JSON content
6023
6031
  */
@@ -9167,7 +9175,7 @@ declare module "@stencil/core" {
9167
9175
  /**
9168
9176
  * @exampleComponent limel-example-code-editor
9169
9177
  * @exampleComponent limel-example-code-editor-readonly-with-line-numbers
9170
- * @exampleComponent limel-example-code-editor-fold-lint
9178
+ * @exampleComponent limel-example-code-editor-fold-lint-wrap
9171
9179
  */
9172
9180
  "limel-code-editor": LocalJSX.LimelCodeEditor & JSXBase.HTMLAttributes<HTMLLimelCodeEditorElement>;
9173
9181
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@limetech/lime-elements",
3
- "version": "38.30.1",
3
+ "version": "38.31.1",
4
4
  "description": "Lime Elements",
5
5
  "author": "Lime Technologies",
6
6
  "license": "Apache-2.0",