@elenajs/components 0.10.1 → 0.11.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.
package/dist/bundle.css CHANGED
@@ -1 +1 @@
1
- @scope (elena-button){:scope{--elena-button-bg:#463630;--elena-button-text:#fff;--elena-button-font:sans-serif;--elena-button-radius:10rem;all:unset;display:inline-block;border-radius:var(--elena-button-radius)}button{all:unset;display:inline-flex}:scope:not([hydrated]),button{background:var(--elena-button-bg);color:var(--elena-button-text);font-family:var(--elena-button-font);border-radius:var(--elena-button-radius);appearance:none;user-select:none;font-size:1rem;font-weight:700;padding:0.75rem 1.25rem;cursor:pointer}:scope:hover{opacity:0.8}:scope:active{opacity:0.6}:scope:focus-within{outline:2px solid #f95b1f;outline-offset:2px}:scope[disabled]{--elena-button-bg:#2b1c15;--elena-button-text:#fff;--elena-button-border:#2b1c15;opacity:0.3;pointer-events:none}:scope[variant="primary"]{--elena-button-bg:#f95b1f}:scope[variant="danger"]{--elena-button-bg:#f91f1f}}@scope (elena-stack){:scope{all:unset;display:flex;justify-content:flex-start;align-items:flex-start;flex-flow:column wrap;flex-direction:column;gap:0.5rem}:scope[direction="row"]{flex-direction:row}}
1
+ @scope(elena-button){:scope{--elena-button-bg:#463630;--elena-button-text:#fff;--elena-button-font:sans-serif;--elena-button-radius:10rem;all:unset;border-radius:var(--elena-button-radius);display:inline-block}button{all:unset;display:inline-flex}:scope:not([hydrated]),button{background:var(--elena-button-bg);color:var(--elena-button-text);font-family:var(--elena-button-font);border-radius:var(--elena-button-radius);appearance:none;user-select:none;cursor:pointer;padding:.75rem 1.25rem;font-size:1rem;font-weight:700}:scope:hover{opacity:.8}:scope:active{opacity:.6}:scope:focus-within{outline-offset:2px;outline:2px solid #f95b1f}:scope[disabled]{--elena-button-bg:#2b1c15;--elena-button-text:#fff;--elena-button-border:#2b1c15;opacity:.3;pointer-events:none}:scope[variant=primary]{--elena-button-bg:#f95b1f}:scope[variant=danger]{--elena-button-bg:#f91f1f}}@scope(elena-stack){:scope{all:unset;flex-flow:column wrap;justify-content:flex-start;align-items:flex-start;gap:.5rem;display:flex}:scope[direction=row]{flex-direction:row}}
package/dist/bundle.js CHANGED
@@ -1,2 +1,2 @@
1
- function e(e,t,n){if(t="boolean"===e&&"boolean"!=typeof t?null!==t:t,!n)return t;if("toAttribute"===n)switch(e){case"object":case"array":return null===t?null:JSON.stringify(t);case"boolean":return t?"":null;case"number":return null===t?null:t;default:return""===t?null:t}else switch(e){case"object":case"array":if(!t)return t;try{return JSON.parse(t)}catch{return console.warn("░█ [ELENA]: Invalid JSON for prop, received: "+t),null}case"boolean":return t;case"number":return null!==t?+t:t;default:return t}}function t(e,t,n){e?null===n?e.removeAttribute(t):e.setAttribute(t,n):console.warn("░█ [ELENA]: Cannot sync attributes to a null element.")}let n=class extends Event{constructor(e,t){super(e,{bubbles:!0,composed:!0,...t})}};function s(e){const t={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};return String(e).replace(/[&<>"']/g,e=>t[e])}function r(e,...t){const n=e.reduce((e,n,r)=>{const i=t[r];return e+n+(i&&i.__raw?String(i):s(String(i??"")))},"");return{__raw:!0,strings:e,values:t,toString:()=>n}}const i=new WeakMap;function o(e,t,n){(function(e,t,n){if(e._tplStrings!==t||!e._tplParts)return!1;let r=!1;for(let t=0;t<n.length;t++){const i=n[t],o=i&&i.__raw,l=o?String(i):s(String(i??""));if(l!==e._tplValues[t])if(e._tplValues[t]=l,o)r=!0;else{const n=e._tplParts[t];n?n.textContent=String(i??""):r=!0}}return!r})(e,t,n)||function(e,t,n){const r=n.map(e=>e&&e.__raw?String(e):s(String(e??"")));let o=i.get(t);o||(o=Array.from(t,e=>e.replace(/\n\s*/g," ")),i.set(t,o));const l=o.reduce((e,t,n)=>e+t+(r[n]??""),"").replace(/>\s+</g,"><").replace(/>\s+/g,">").replace(/\s+</g,"<").trim();(function(e,t){e?e.replaceChildren(e.ownerDocument.createRange().createContextualFragment(t)):console.warn("░█ [ELENA]: Cannot render to a null element.")})(e,l),e._tplStrings=t,e._tplValues=r,e._tplParts=function(e,t){const n=new Array(t.length),s=document.createTreeWalker(e,NodeFilter.SHOW_TEXT);let r,i=0;for(;(r=s.nextNode())&&i<t.length;)r.textContent===t[i]&&(n[i]=r,i++);return n}(e,r)}(e,t,n)}function l(s,r){const i=r&&r.element?/^[a-z][a-z0-9-]*$/i.test(r.element)?e=>e.getElementsByClassName(r.element)[0]:e=>e.querySelector(r.element):e=>e.firstElementChild;class l extends s{element=null;attributeChangedCallback(t,n,s){"text"!==t?(function(t,n,s,r){if(s!==r){const s=typeof t[n];"undefined"===s&&console.warn(`░█ [ELENA]: Prop "${n}" has no default value. Set a default in the constructor so Elena can infer the correct type.`);const i=e(s,r,"toProp");t[n]=i}}(this,t,n,s),this._hydrated&&n!==s&&!this._isRendering&&(this._isRendering=!0,this._applyRender(),this._isRendering=!1)):this.text=s??""}static get observedAttributes(){return[...r&&r.props?r.props:[],"text"]}render(){}_applyRender(){const e=this.render();e&&e.strings&&o(this,e.strings,e.values)}connectedCallback(){this._captureText(),this._applyRender(),this._resolveInnerElement(),this._flushProps(),this._delegateEvents(),this.updated()}_captureText(){if(!this._hydrated&&!this._text){const e=this.textContent.trim();e?this.text=e:queueMicrotask(()=>{this._text||(this.text=this.textContent.trim())})}}_resolveInnerElement(){this.element||(this.element=i(this),this.element||(r&&r.element&&console.warn("░█ [ELENA]: No element found, using firstElementChild as fallback."),this.element=this.firstElementChild))}_flushProps(){if(this._props){const n=!(!r||!r.element);for(const[s,r]of this._props){const i=e(typeof r,r,"toAttribute");t(this,s,i),n&&t(this.element,s,i)}}}_delegateEvents(){!this._events&&r&&r.events&&(this.element?(this._events=!0,r.events?.forEach(e=>{this.element.addEventListener(e,this),this[e]=(...t)=>this.element[e](...t)})):console.warn("░█ [ELENA]: Cannot delegate events, no inner element found. Ensure the component renders an element or check your element selector."))}updated(){this._hydrated||(this._hydrated=!0,this.setAttribute("hydrated",""))}disconnectedCallback(){this._events&&(this._events=!1,r.events?.forEach(e=>{this.element?.removeEventListener(e,this)}))}handleEvent(e){r.events?.includes(e.type)&&(e.stopPropagation(),this.dispatchEvent(new n(e.type,{cancelable:!0})))}get text(){return this._text??""}set text(e){const t=this._text;this._text=e,this._hydrated&&t!==e&&!this._isRendering&&(this._isRendering=!0,this._applyRender(),this._isRendering=!1)}}return r&&r.props?.length&&(r.props.includes("text")&&console.warn('░█ [ELENA]: "text" is a reserved property. Rename your prop to avoid overriding the built-in text content feature.'),function(n,s,r=!0){for(const i of s)Object.defineProperty(n,i,{configurable:!0,enumerable:!0,get(){return this._props?this._props.get(i):void 0},set(n){if(this._props||(this._props=new Map),n===this._props.get(i))return;if(this._props.set(i,n),!this.isConnected)return;const s=e(typeof n,n,"toAttribute");t(this,i,s),r&&this.element&&t(this.element,i,s)}})}(l.prototype,r.props,!(!r||!r.element))),r&&r.tagName&&(l._tagName=r.tagName),l.define=function(){this._tagName?function(e,t){"undefined"!=typeof window&&"customElements"in window&&(window.customElements.get(e)||window.customElements.define(e,t))}(this._tagName,this):console.warn("░█ [ELENA]: define() called without a tagName. Set tagName in your Elena options to register the element.")},l}const a={tagName:"elena-button",props:["label","variant","disabled","name","value","type"],events:["click","focus","blur"]};class c extends(l(HTMLElement,a)){constructor(){super(),this.variant="default",this.disabled=!1,this.name="",this.value="",this.type="button"}render(){return r`<button>${this.text}</button>`}}c.define();const u={tagName:"elena-stack",props:["direction"]};class h extends(l(HTMLElement,u)){constructor(){super(),this.direction="column"}}h.define();export{c as Button,h as Stack};
1
+ function e(e,t,n){if(t="boolean"===e&&"boolean"!=typeof t?null!==t:t,!n)return t;if("toAttribute"===n)switch(e){case"object":case"array":return null===t?null:JSON.stringify(t);case"boolean":return t?"":null;case"number":return null===t?null:t;default:return""===t?null:t}else switch(e){case"object":case"array":if(!t)return t;try{return JSON.parse(t)}catch{return console.warn("░█ [ELENA]: Invalid JSON for prop, received: "+t),null}case"boolean":return t;case"number":return null!==t?+t:t;default:return t}}function t(e,t,n){e?null===n?e.removeAttribute(t):e.setAttribute(t,n):console.warn("░█ [ELENA]: Cannot sync attributes to a null element.")}let n=class extends Event{constructor(e,t){super(e,{bubbles:!0,composed:!0,...t})}};function s(e){const t={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};return String(e).replace(/[&<>"']/g,e=>t[e])}function r(e,...t){const n=e.reduce((e,n,r)=>{const i=t[r];return e+n+(i&&i.__raw?String(i):s(String(i??"")))},"");return{__raw:!0,strings:e,values:t,toString:()=>n}}const i=new WeakMap;function o(e,t,n){(function(e,t,n){if(e._tplStrings!==t||!e._tplParts)return!1;let r=!1;for(let t=0;t<n.length;t++){const i=n[t],o=i&&i.__raw,l=o?String(i):s(String(i??""));if(l!==e._tplValues[t])if(e._tplValues[t]=l,o)r=!0;else{const n=e._tplParts[t];n?n.textContent=String(i??""):r=!0}}return!r})(e,t,n)||function(e,t,n){const r=n.map(e=>e&&e.__raw?String(e):s(String(e??"")));let o=i.get(t);o||(o=Array.from(t,e=>e.replace(/\n\s*/g," ")),i.set(t,o));const l=o.reduce((e,t,n)=>e+t+(r[n]??""),"").replace(/>\s+</g,"><").replace(/>\s+/g,">").replace(/\s+</g,"<").trim();(function(e,t){e?e.replaceChildren(e.ownerDocument.createRange().createContextualFragment(t)):console.warn("░█ [ELENA]: Cannot render to a null element.")})(e,l),e._tplStrings=t,e._tplValues=r,e._tplParts=function(e,t){const n=new Array(t.length),s=document.createTreeWalker(e,NodeFilter.SHOW_TEXT);let r,i=0;for(;(r=s.nextNode())&&i<t.length;)r.textContent===t[i]&&(n[i]=r,i++);return n}(e,r)}(e,t,n)}function l(s,r){const i=r&&r.element?/^[a-z][a-z0-9-]*$/i.test(r.element)?e=>e.getElementsByClassName(r.element)[0]:e=>e.querySelector(r.element):e=>e.firstElementChild;class l extends s{element=null;attributeChangedCallback(t,n,s){"text"!==t?(function(t,n,s,r){if(s!==r){const s=typeof t[n];"undefined"===s&&console.warn(`░█ [ELENA]: Prop "${n}" has no default value. Set a default in the constructor so Elena can infer the correct type.`);const i=e(s,r,"toProp");t[n]=i}}(this,t,n,s),this._hydrated&&n!==s&&!this._isRendering&&(this._isRendering=!0,this._applyRender(),this._isRendering=!1)):this.text=s??""}static get observedAttributes(){return[...r&&r.props?r.props:[],"text"]}render(){}_applyRender(){const e=this.render();e&&e.strings&&o(this,e.strings,e.values)}connectedCallback(){this._captureText(),this._applyRender(),this._resolveInnerElement(),this._flushProps(),this._delegateEvents(),this.updated()}_captureText(){if(!this._hydrated&&!this._text){const e=this.textContent.trim();e?this.text=e:queueMicrotask(()=>{this._text||(this.text=this.textContent.trim())})}}_resolveInnerElement(){this.element||(this.element=i(this),this.element||(r&&r.element&&console.warn("░█ [ELENA]: No element found, using firstElementChild as fallback."),this.element=this.firstElementChild))}_flushProps(){if(this._props){const n=!(!r||!r.element);for(const[s,r]of this._props){const i=e(typeof r,r,"toAttribute");t(this,s,i),n&&this.element&&t(this.element,s,i)}}}_delegateEvents(){!this._events&&r&&r.events&&(this.element?(this._events=!0,r.events?.forEach(e=>{this.element.addEventListener(e,this),this[e]=(...t)=>this.element[e](...t)})):console.warn("░█ [ELENA]: Cannot delegate events, no inner element found. Ensure the component renders an element or check your element selector."))}updated(){this._hydrated||(this._hydrated=!0,this.setAttribute("hydrated",""))}disconnectedCallback(){this._events&&(this._events=!1,r.events?.forEach(e=>{this.element?.removeEventListener(e,this)}))}handleEvent(e){r.events?.includes(e.type)&&(e.stopPropagation(),this.dispatchEvent(new n(e.type,{cancelable:!0})))}get text(){return this._text??""}set text(e){const t=this._text;this._text=e,this._hydrated&&t!==e&&!this._isRendering&&(this._isRendering=!0,this._applyRender(),this._isRendering=!1)}}return r&&r.props?.length&&(r.props.includes("text")&&console.warn('░█ [ELENA]: "text" is a reserved property. Rename your prop to avoid overriding the built-in text content feature.'),function(n,s,r=!0){for(const i of s)Object.defineProperty(n,i,{configurable:!0,enumerable:!0,get(){return this._props?this._props.get(i):void 0},set(n){if(this._props||(this._props=new Map),n===this._props.get(i))return;if(this._props.set(i,n),!this.isConnected)return;const s=e(typeof n,n,"toAttribute");t(this,i,s),r&&this.element&&t(this.element,i,s)}})}(l.prototype,r.props,!(!r||!r.element))),r&&r.tagName&&(l._tagName=r.tagName),l.define=function(){this._tagName?function(e,t){"undefined"!=typeof window&&"customElements"in window&&(window.customElements.get(e)||window.customElements.define(e,t))}(this._tagName,this):console.warn("░█ [ELENA]: define() called without a tagName. Set tagName in your Elena options to register the element.")},l}const a={tagName:"elena-button",props:["variant","disabled","name","value","type"],events:["click","focus","blur"]};class c extends(l(HTMLElement,a)){constructor(){super(),this.variant="default",this.disabled=!1,this.name="",this.value="",this.type="button"}render(){return r`<button>${this.text}</button>`}}c.define();const u={tagName:"elena-stack",props:["direction"]};class h extends(l(HTMLElement,u)){constructor(){super(),this.direction="column"}}h.define();export{c as Button,h as Stack};
2
2
  //# sourceMappingURL=bundle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bundle.js","sources":["../../core/dist/props.js","../../core/dist/events.js","../../core/dist/utils.js","../../core/dist/render.js","../../core/dist/elena.js","../src/button/button.js","../src/stack/stack.js"],"sourcesContent":["function e(e,t,n){if(t=\"boolean\"===e&&\"boolean\"!=typeof t?null!==t:t,!n)return t;if(\"toAttribute\"===n)switch(e){case\"object\":case\"array\":return null===t?null:JSON.stringify(t);case\"boolean\":return t?\"\":null;case\"number\":return null===t?null:t;default:return\"\"===t?null:t}else switch(e){case\"object\":case\"array\":if(!t)return t;try{return JSON.parse(t)}catch{return console.warn(\"░█ [ELENA]: Invalid JSON for prop, received: \"+t),null}case\"boolean\":return t;case\"number\":return null!==t?+t:t;default:return t}}function t(e,t,n){e?null===n?e.removeAttribute(t):e.setAttribute(t,n):console.warn(\"░█ [ELENA]: Cannot sync attributes to a null element.\")}function n(n,r,o=!0){for(const s of r)Object.defineProperty(n,s,{configurable:!0,enumerable:!0,get(){return this._props?this._props.get(s):void 0},set(n){if(this._props||(this._props=new Map),n===this._props.get(s))return;if(this._props.set(s,n),!this.isConnected)return;const r=e(typeof n,n,\"toAttribute\");t(this,s,r),o&&this.element&&t(this.element,s,r)}})}function r(t,n,r,o){if(r!==o){const r=typeof t[n];\"undefined\"===r&&console.warn(`░█ [ELENA]: Prop \"${n}\" has no default value. Set a default in the constructor so Elena can infer the correct type.`);const s=e(r,o,\"toProp\");t[n]=s}}export{e as getPropValue,r as getProps,n as setProps,t as syncAttribute};\n//# sourceMappingURL=props.js.map\n","class e extends Event{constructor(e,s){super(e,{bubbles:!0,composed:!0,...s})}}export{e as ElenaEvent};\n//# sourceMappingURL=events.js.map\n","function n(n,t){\"undefined\"!=typeof window&&\"customElements\"in window&&(window.customElements.get(n)||window.customElements.define(n,t))}function t(n){const t={\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#39;\"};return String(n).replace(/[&<>\"']/g,n=>t[n])}function e(n,...e){const o=n.reduce((n,o,r)=>{const i=e[r];return n+o+(i&&i.__raw?String(i):t(String(i??\"\")))},\"\");return{__raw:!0,strings:n,values:e,toString:()=>o}}const o={__raw:!0,toString:()=>\"\"};export{n as defineElement,t as escapeHtml,e as html,o as nothing};\n//# sourceMappingURL=utils.js.map\n","import{escapeHtml as t}from\"./utils.js\";const e=new WeakMap;function n(n,l,o){(function(e,n,r){if(e._tplStrings!==n||!e._tplParts)return!1;let l=!1;for(let n=0;n<r.length;n++){const o=r[n],a=o&&o.__raw,c=a?String(o):t(String(o??\"\"));if(c!==e._tplValues[n])if(e._tplValues[n]=c,a)l=!0;else{const t=e._tplParts[n];t?t.textContent=String(o??\"\"):l=!0}}return!l})(n,l,o)||function(n,l,o){const a=o.map(e=>e&&e.__raw?String(e):t(String(e??\"\")));let c=e.get(l);c||(c=Array.from(l,t=>t.replace(/\\n\\s*/g,\" \")),e.set(l,c));const s=c.reduce((t,e,n)=>t+e+(a[n]??\"\"),\"\").replace(/>\\s+</g,\"><\").replace(/>\\s+/g,\">\").replace(/\\s+</g,\"<\").trim();r(n,s),n._tplStrings=l,n._tplValues=a,n._tplParts=function(t,e){const n=new Array(e.length),r=document.createTreeWalker(t,NodeFilter.SHOW_TEXT);let l,o=0;for(;(l=r.nextNode())&&o<e.length;)l.textContent===e[o]&&(n[o]=l,o++);return n}(n,a)}(n,l,o)}function r(t,e){t?t.replaceChildren(t.ownerDocument.createRange().createContextualFragment(e)):console.warn(\"░█ [ELENA]: Cannot render to a null element.\")}export{r as renderHtml,n as renderTemplate};\n//# sourceMappingURL=render.js.map\n","import{setProps as e,getProps as t,getPropValue as s,syncAttribute as n}from\"./props.js\";import{ElenaEvent as i}from\"./events.js\";import{defineElement as r}from\"./utils.js\";export{html,nothing}from\"./utils.js\";import{renderTemplate as h}from\"./render.js\";function o(o,l){const a=l&&l.element?/^[a-z][a-z0-9-]*$/i.test(l.element)?e=>e.getElementsByClassName(l.element)[0]:e=>e.querySelector(l.element):e=>e.firstElementChild;class d extends o{element=null;attributeChangedCallback(e,s,n){\"text\"!==e?(t(this,e,s,n),this._hydrated&&s!==n&&!this._isRendering&&(this._isRendering=!0,this._applyRender(),this._isRendering=!1)):this.text=n??\"\"}static get observedAttributes(){return[...l&&l.props?l.props:[],\"text\"]}render(){}_applyRender(){const e=this.render();e&&e.strings&&h(this,e.strings,e.values)}connectedCallback(){this._captureText(),this._applyRender(),this._resolveInnerElement(),this._flushProps(),this._delegateEvents(),this.updated()}_captureText(){if(!this._hydrated&&!this._text){const e=this.textContent.trim();e?this.text=e:queueMicrotask(()=>{this._text||(this.text=this.textContent.trim())})}}_resolveInnerElement(){this.element||(this.element=a(this),this.element||(l&&l.element&&console.warn(\"░█ [ELENA]: No element found, using firstElementChild as fallback.\"),this.element=this.firstElementChild))}_flushProps(){if(this._props){const e=!(!l||!l.element);for(const[t,i]of this._props){const r=s(typeof i,i,\"toAttribute\");n(this,t,r),e&&n(this.element,t,r)}}}_delegateEvents(){!this._events&&l&&l.events&&(this.element?(this._events=!0,l.events?.forEach(e=>{this.element.addEventListener(e,this),this[e]=(...t)=>this.element[e](...t)})):console.warn(\"░█ [ELENA]: Cannot delegate events, no inner element found. Ensure the component renders an element or check your element selector.\"))}updated(){this._hydrated||(this._hydrated=!0,this.setAttribute(\"hydrated\",\"\"))}disconnectedCallback(){this._events&&(this._events=!1,l.events?.forEach(e=>{this.element?.removeEventListener(e,this)}))}handleEvent(e){l.events?.includes(e.type)&&(e.stopPropagation(),this.dispatchEvent(new i(e.type,{cancelable:!0})))}get text(){return this._text??\"\"}set text(e){const t=this._text;this._text=e,this._hydrated&&t!==e&&!this._isRendering&&(this._isRendering=!0,this._applyRender(),this._isRendering=!1)}}return l&&l.props?.length&&(l.props.includes(\"text\")&&console.warn('░█ [ELENA]: \"text\" is a reserved property. Rename your prop to avoid overriding the built-in text content feature.'),e(d.prototype,l.props,!(!l||!l.element))),l&&l.tagName&&(d._tagName=l.tagName),d.define=function(){this._tagName?r(this._tagName,this):console.warn(\"░█ [ELENA]: define() called without a tagName. Set tagName in your Elena options to register the element.\")},d}export{o as Elena};\n//# sourceMappingURL=elena.js.map\n","import { Elena, html } from \"@elenajs/core\";\n\nconst options = {\n tagName: \"elena-button\",\n props: [\"label\", \"variant\", \"disabled\", \"name\", \"value\", \"type\"],\n events: [\"click\", \"focus\", \"blur\"],\n};\n\n/**\n * Button component is used for interface actions.\n *\n * @displayName Button\n * @status alpha\n *\n * @event click - Programmatically fire click on the component.\n * @event focus - Programmatically move focus to the component.\n * @event blur - Programmatically remove focus from the component.\n *\n * @cssprop [--elena-button-text] - Overrides the default text color.\n * @cssprop [--elena-button-bg] - Overrides the default background color.\n * @cssprop [--elena-button-font] - Overrides the default font family.\n * @cssprop [--elena-button-radius] - Overrides the default border radius.\n */\nexport default class Button extends Elena(HTMLElement, options) {\n constructor() {\n super();\n\n /**\n * The style variant of the button.\n *\n * @attribute\n * @type {\"default\" | \"primary\" | \"danger\"}\n */\n this.variant = \"default\";\n\n /**\n * Makes the component disabled.\n *\n * @attribute\n * @type {Boolean}\n */\n this.disabled = false;\n\n /**\n * The name used to identify the button in forms.\n *\n * @attribute\n * @type {string}\n */\n this.name = \"\";\n\n /**\n * The value used to identify the button in forms.\n *\n * @attribute\n * @type {string}\n */\n this.value = \"\";\n\n /**\n * The type of the button.\n *\n * @attribute\n * @type {\"submit\" | \"reset\" | \"button\"}\n */\n this.type = \"button\";\n }\n\n /**\n * Renders the template.\n *\n * @internal\n */\n render() {\n return html`<button>${this.text}</button>`;\n }\n}\n\n/**\n * Register the web component\n */\nButton.define();\n","import { Elena } from \"@elenajs/core\";\n\nconst options = {\n tagName: \"elena-stack\",\n props: [\"direction\"],\n};\n\n/**\n * Stack component manages layout of immediate children\n * with optional spacing between each child.\n *\n * @displayName Stack\n * @slot - The stacked content\n * @status alpha\n */\nexport default class Stack extends Elena(HTMLElement, options) {\n constructor() {\n super();\n\n /**\n * The direction of the stack.\n *\n * @attribute\n * @type {\"column\" | \"row\"}\n */\n this.direction = \"column\";\n }\n}\n\n/**\n * Register the web component\n */\nStack.define();\n"],"names":["e","t","n","JSON","stringify","parse","console","warn","removeAttribute","setAttribute","e$2","Event","constructor","s","super","bubbles","composed","String","replace","o","reduce","r","i","__raw","strings","values","toString","WeakMap","l","_tplStrings","_tplParts","length","a","c","_tplValues","textContent","map","get","Array","from","set","trim","replaceChildren","ownerDocument","createRange","createContextualFragment","document","createTreeWalker","NodeFilter","SHOW_TEXT","nextNode","element","test","getElementsByClassName","querySelector","firstElementChild","d","attributeChangedCallback","this","_hydrated","_isRendering","_applyRender","text","observedAttributes","props","render","h","connectedCallback","_captureText","_resolveInnerElement","_flushProps","_delegateEvents","updated","_text","queueMicrotask","_props","_events","events","forEach","addEventListener","disconnectedCallback","removeEventListener","handleEvent","includes","type","stopPropagation","dispatchEvent","cancelable","Object","defineProperty","configurable","enumerable","Map","isConnected","prototype","tagName","_tagName","define","window","customElements","options","Button","Elena","HTMLElement","variant","disabled","name","value","html","Stack","direction"],"mappings":"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"}
1
+ {"version":3,"file":"bundle.js","sources":["../../core/dist/props.js","../../core/dist/events.js","../../core/dist/utils.js","../../core/dist/render.js","../../core/dist/elena.js","../src/button/button.js","../src/stack/stack.js"],"sourcesContent":["function e(e,t,n){if(t=\"boolean\"===e&&\"boolean\"!=typeof t?null!==t:t,!n)return t;if(\"toAttribute\"===n)switch(e){case\"object\":case\"array\":return null===t?null:JSON.stringify(t);case\"boolean\":return t?\"\":null;case\"number\":return null===t?null:t;default:return\"\"===t?null:t}else switch(e){case\"object\":case\"array\":if(!t)return t;try{return JSON.parse(t)}catch{return console.warn(\"░█ [ELENA]: Invalid JSON for prop, received: \"+t),null}case\"boolean\":return t;case\"number\":return null!==t?+t:t;default:return t}}function t(e,t,n){e?null===n?e.removeAttribute(t):e.setAttribute(t,n):console.warn(\"░█ [ELENA]: Cannot sync attributes to a null element.\")}function n(n,r,o=!0){for(const s of r)Object.defineProperty(n,s,{configurable:!0,enumerable:!0,get(){return this._props?this._props.get(s):void 0},set(n){if(this._props||(this._props=new Map),n===this._props.get(s))return;if(this._props.set(s,n),!this.isConnected)return;const r=e(typeof n,n,\"toAttribute\");t(this,s,r),o&&this.element&&t(this.element,s,r)}})}function r(t,n,r,o){if(r!==o){const r=typeof t[n];\"undefined\"===r&&console.warn(`░█ [ELENA]: Prop \"${n}\" has no default value. Set a default in the constructor so Elena can infer the correct type.`);const s=e(r,o,\"toProp\");t[n]=s}}export{e as getPropValue,r as getProps,n as setProps,t as syncAttribute};\n//# sourceMappingURL=props.js.map\n","class e extends Event{constructor(e,s){super(e,{bubbles:!0,composed:!0,...s})}}export{e as ElenaEvent};\n//# sourceMappingURL=events.js.map\n","function n(n,t){\"undefined\"!=typeof window&&\"customElements\"in window&&(window.customElements.get(n)||window.customElements.define(n,t))}function t(n){const t={\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#39;\"};return String(n).replace(/[&<>\"']/g,n=>t[n])}function e(n,...e){const o=n.reduce((n,o,r)=>{const i=e[r];return n+o+(i&&i.__raw?String(i):t(String(i??\"\")))},\"\");return{__raw:!0,strings:n,values:e,toString:()=>o}}const o={__raw:!0,toString:()=>\"\"};export{n as defineElement,t as escapeHtml,e as html,o as nothing};\n//# sourceMappingURL=utils.js.map\n","import{escapeHtml as t}from\"./utils.js\";const e=new WeakMap;function n(n,l,o){(function(e,n,r){if(e._tplStrings!==n||!e._tplParts)return!1;let l=!1;for(let n=0;n<r.length;n++){const o=r[n],a=o&&o.__raw,c=a?String(o):t(String(o??\"\"));if(c!==e._tplValues[n])if(e._tplValues[n]=c,a)l=!0;else{const t=e._tplParts[n];t?t.textContent=String(o??\"\"):l=!0}}return!l})(n,l,o)||function(n,l,o){const a=o.map(e=>e&&e.__raw?String(e):t(String(e??\"\")));let c=e.get(l);c||(c=Array.from(l,t=>t.replace(/\\n\\s*/g,\" \")),e.set(l,c));const s=c.reduce((t,e,n)=>t+e+(a[n]??\"\"),\"\").replace(/>\\s+</g,\"><\").replace(/>\\s+/g,\">\").replace(/\\s+</g,\"<\").trim();r(n,s),n._tplStrings=l,n._tplValues=a,n._tplParts=function(t,e){const n=new Array(e.length),r=document.createTreeWalker(t,NodeFilter.SHOW_TEXT);let l,o=0;for(;(l=r.nextNode())&&o<e.length;)l.textContent===e[o]&&(n[o]=l,o++);return n}(n,a)}(n,l,o)}function r(t,e){t?t.replaceChildren(t.ownerDocument.createRange().createContextualFragment(e)):console.warn(\"░█ [ELENA]: Cannot render to a null element.\")}export{r as renderHtml,n as renderTemplate};\n//# sourceMappingURL=render.js.map\n","import{setProps as e,getProps as t,getPropValue as s,syncAttribute as n}from\"./props.js\";import{ElenaEvent as i}from\"./events.js\";import{defineElement as r}from\"./utils.js\";export{html,nothing}from\"./utils.js\";import{renderTemplate as h}from\"./render.js\";function o(o,l){const a=l&&l.element?/^[a-z][a-z0-9-]*$/i.test(l.element)?e=>e.getElementsByClassName(l.element)[0]:e=>e.querySelector(l.element):e=>e.firstElementChild;class d extends o{element=null;attributeChangedCallback(e,s,n){\"text\"!==e?(t(this,e,s,n),this._hydrated&&s!==n&&!this._isRendering&&(this._isRendering=!0,this._applyRender(),this._isRendering=!1)):this.text=n??\"\"}static get observedAttributes(){return[...l&&l.props?l.props:[],\"text\"]}render(){}_applyRender(){const e=this.render();e&&e.strings&&h(this,e.strings,e.values)}connectedCallback(){this._captureText(),this._applyRender(),this._resolveInnerElement(),this._flushProps(),this._delegateEvents(),this.updated()}_captureText(){if(!this._hydrated&&!this._text){const e=this.textContent.trim();e?this.text=e:queueMicrotask(()=>{this._text||(this.text=this.textContent.trim())})}}_resolveInnerElement(){this.element||(this.element=a(this),this.element||(l&&l.element&&console.warn(\"░█ [ELENA]: No element found, using firstElementChild as fallback.\"),this.element=this.firstElementChild))}_flushProps(){if(this._props){const e=!(!l||!l.element);for(const[t,i]of this._props){const r=s(typeof i,i,\"toAttribute\");n(this,t,r),e&&this.element&&n(this.element,t,r)}}}_delegateEvents(){!this._events&&l&&l.events&&(this.element?(this._events=!0,l.events?.forEach(e=>{this.element.addEventListener(e,this),this[e]=(...t)=>this.element[e](...t)})):console.warn(\"░█ [ELENA]: Cannot delegate events, no inner element found. Ensure the component renders an element or check your element selector.\"))}updated(){this._hydrated||(this._hydrated=!0,this.setAttribute(\"hydrated\",\"\"))}disconnectedCallback(){this._events&&(this._events=!1,l.events?.forEach(e=>{this.element?.removeEventListener(e,this)}))}handleEvent(e){l.events?.includes(e.type)&&(e.stopPropagation(),this.dispatchEvent(new i(e.type,{cancelable:!0})))}get text(){return this._text??\"\"}set text(e){const t=this._text;this._text=e,this._hydrated&&t!==e&&!this._isRendering&&(this._isRendering=!0,this._applyRender(),this._isRendering=!1)}}return l&&l.props?.length&&(l.props.includes(\"text\")&&console.warn('░█ [ELENA]: \"text\" is a reserved property. Rename your prop to avoid overriding the built-in text content feature.'),e(d.prototype,l.props,!(!l||!l.element))),l&&l.tagName&&(d._tagName=l.tagName),d.define=function(){this._tagName?r(this._tagName,this):console.warn(\"░█ [ELENA]: define() called without a tagName. Set tagName in your Elena options to register the element.\")},d}export{o as Elena};\n//# sourceMappingURL=elena.js.map\n","import { Elena, html } from \"@elenajs/core\";\n\nconst options = {\n tagName: \"elena-button\",\n props: [\"variant\", \"disabled\", \"name\", \"value\", \"type\"],\n events: [\"click\", \"focus\", \"blur\"],\n};\n\n/**\n * Button component is used for interface actions.\n *\n * @displayName Button\n * @status alpha\n *\n * @event click - Programmatically fire click on the component.\n * @event focus - Programmatically move focus to the component.\n * @event blur - Programmatically remove focus from the component.\n *\n * @cssprop [--elena-button-text] - Overrides the default text color.\n * @cssprop [--elena-button-bg] - Overrides the default background color.\n * @cssprop [--elena-button-font] - Overrides the default font family.\n * @cssprop [--elena-button-radius] - Overrides the default border radius.\n */\nexport default class Button extends Elena(HTMLElement, options) {\n constructor() {\n super();\n\n /**\n * The style variant of the button.\n *\n * @attribute\n * @type {\"default\" | \"primary\" | \"danger\"}\n */\n this.variant = \"default\";\n\n /**\n * Makes the component disabled.\n *\n * @attribute\n * @type {boolean}\n */\n this.disabled = false;\n\n /**\n * The name used to identify the button in forms.\n *\n * @attribute\n * @type {string}\n */\n this.name = \"\";\n\n /**\n * The value used to identify the button in forms.\n *\n * @attribute\n * @type {string}\n */\n this.value = \"\";\n\n /**\n * The type of the button.\n *\n * @attribute\n * @type {\"submit\" | \"reset\" | \"button\"}\n */\n this.type = \"button\";\n }\n\n /**\n * Renders the template.\n *\n * @internal\n */\n render() {\n return html`<button>${this.text}</button>`;\n }\n}\n\n/**\n * Register the web component\n */\nButton.define();\n","import { Elena } from \"@elenajs/core\";\n\nconst options = {\n tagName: \"elena-stack\",\n props: [\"direction\"],\n};\n\n/**\n * Stack component manages layout of immediate children\n * with optional spacing between each child.\n *\n * @displayName Stack\n * @slot - The stacked content\n * @status alpha\n */\nexport default class Stack extends Elena(HTMLElement, options) {\n constructor() {\n super();\n\n /**\n * The direction of the stack.\n *\n * @attribute\n * @type {\"column\" | \"row\"}\n */\n this.direction = \"column\";\n }\n}\n\n/**\n * Register the web component\n */\nStack.define();\n"],"names":["e","t","n","JSON","stringify","parse","console","warn","removeAttribute","setAttribute","e$2","Event","constructor","s","super","bubbles","composed","String","replace","o","reduce","r","i","__raw","strings","values","toString","WeakMap","l","_tplStrings","_tplParts","length","a","c","_tplValues","textContent","map","get","Array","from","set","trim","replaceChildren","ownerDocument","createRange","createContextualFragment","document","createTreeWalker","NodeFilter","SHOW_TEXT","nextNode","element","test","getElementsByClassName","querySelector","firstElementChild","d","attributeChangedCallback","this","_hydrated","_isRendering","_applyRender","text","observedAttributes","props","render","h","connectedCallback","_captureText","_resolveInnerElement","_flushProps","_delegateEvents","updated","_text","queueMicrotask","_props","_events","events","forEach","addEventListener","disconnectedCallback","removeEventListener","handleEvent","includes","type","stopPropagation","dispatchEvent","cancelable","Object","defineProperty","configurable","enumerable","Map","isConnected","prototype","tagName","_tagName","define","window","customElements","options","Button","Elena","HTMLElement","variant","disabled","name","value","html","Stack","direction"],"mappings":"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"}
package/dist/button.css CHANGED
@@ -1 +1 @@
1
- @scope (elena-button){:scope{--elena-button-bg:#463630;--elena-button-text:#fff;--elena-button-font:sans-serif;--elena-button-radius:10rem;all:unset;display:inline-block;border-radius:var(--elena-button-radius)}button{all:unset;display:inline-flex}:scope:not([hydrated]),button{background:var(--elena-button-bg);color:var(--elena-button-text);font-family:var(--elena-button-font);border-radius:var(--elena-button-radius);appearance:none;user-select:none;font-size:1rem;font-weight:700;padding:0.75rem 1.25rem;cursor:pointer}:scope:hover{opacity:0.8}:scope:active{opacity:0.6}:scope:focus-within{outline:2px solid #f95b1f;outline-offset:2px}:scope[disabled]{--elena-button-bg:#2b1c15;--elena-button-text:#fff;--elena-button-border:#2b1c15;opacity:0.3;pointer-events:none}:scope[variant="primary"]{--elena-button-bg:#f95b1f}:scope[variant="danger"]{--elena-button-bg:#f91f1f}}
1
+ @scope(elena-button){:scope{--elena-button-bg:#463630;--elena-button-text:#fff;--elena-button-font:sans-serif;--elena-button-radius:10rem;all:unset;border-radius:var(--elena-button-radius);display:inline-block}button{all:unset;display:inline-flex}:scope:not([hydrated]),button{background:var(--elena-button-bg);color:var(--elena-button-text);font-family:var(--elena-button-font);border-radius:var(--elena-button-radius);appearance:none;user-select:none;cursor:pointer;padding:.75rem 1.25rem;font-size:1rem;font-weight:700}:scope:hover{opacity:.8}:scope:active{opacity:.6}:scope:focus-within{outline-offset:2px;outline:2px solid #f95b1f}:scope[disabled]{--elena-button-bg:#2b1c15;--elena-button-text:#fff;--elena-button-border:#2b1c15;opacity:.3;pointer-events:none}:scope[variant=primary]{--elena-button-bg:#f95b1f}:scope[variant=danger]{--elena-button-bg:#f91f1f}}
package/dist/button.d.ts CHANGED
@@ -4,7 +4,7 @@ declare class Button extends HTMLElement {
4
4
  /** The style variant of the button. */
5
5
  variant?: "default" | "primary" | "danger";
6
6
  /** Makes the component disabled. */
7
- disabled?: Boolean;
7
+ disabled?: boolean;
8
8
  /** The name used to identify the button in forms. */
9
9
  name?: string;
10
10
  /** The value used to identify the button in forms. */
package/dist/button.js CHANGED
@@ -1,2 +1,2 @@
1
- import{o as t,e}from"./elena-6kltq0mt.js";const a={tagName:"elena-button",props:["label","variant","disabled","name","value","type"],events:["click","focus","blur"]};class s extends(t(HTMLElement,a)){constructor(){super(),this.variant="default",this.disabled=!1,this.name="",this.value="",this.type="button"}render(){return e`<button>${this.text}</button>`}}s.define();export{s as default};
1
+ import{o as t,e}from"./elena-A7IX5lSC.js";const s={tagName:"elena-button",props:["variant","disabled","name","value","type"],events:["click","focus","blur"]};class a extends(t(HTMLElement,s)){constructor(){super(),this.variant="default",this.disabled=!1,this.name="",this.value="",this.type="button"}render(){return e`<button>${this.text}</button>`}}a.define();export{a as default};
2
2
  //# sourceMappingURL=button.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"button.js","sources":["../src/button/button.js"],"sourcesContent":["import { Elena, html } from \"@elenajs/core\";\n\nconst options = {\n tagName: \"elena-button\",\n props: [\"label\", \"variant\", \"disabled\", \"name\", \"value\", \"type\"],\n events: [\"click\", \"focus\", \"blur\"],\n};\n\n/**\n * Button component is used for interface actions.\n *\n * @displayName Button\n * @status alpha\n *\n * @event click - Programmatically fire click on the component.\n * @event focus - Programmatically move focus to the component.\n * @event blur - Programmatically remove focus from the component.\n *\n * @cssprop [--elena-button-text] - Overrides the default text color.\n * @cssprop [--elena-button-bg] - Overrides the default background color.\n * @cssprop [--elena-button-font] - Overrides the default font family.\n * @cssprop [--elena-button-radius] - Overrides the default border radius.\n */\nexport default class Button extends Elena(HTMLElement, options) {\n constructor() {\n super();\n\n /**\n * The style variant of the button.\n *\n * @attribute\n * @type {\"default\" | \"primary\" | \"danger\"}\n */\n this.variant = \"default\";\n\n /**\n * Makes the component disabled.\n *\n * @attribute\n * @type {Boolean}\n */\n this.disabled = false;\n\n /**\n * The name used to identify the button in forms.\n *\n * @attribute\n * @type {string}\n */\n this.name = \"\";\n\n /**\n * The value used to identify the button in forms.\n *\n * @attribute\n * @type {string}\n */\n this.value = \"\";\n\n /**\n * The type of the button.\n *\n * @attribute\n * @type {\"submit\" | \"reset\" | \"button\"}\n */\n this.type = \"button\";\n }\n\n /**\n * Renders the template.\n *\n * @internal\n */\n render() {\n return html`<button>${this.text}</button>`;\n }\n}\n\n/**\n * Register the web component\n */\nButton.define();\n"],"names":["options","tagName","props","events","Button","Elena","HTMLElement","constructor","super","this","variant","disabled","name","value","type","render","html","text","define"],"mappings":"0CAEA,MAAMA,EAAU,CACdC,QAAS,eACTC,MAAO,CAAC,QAAS,UAAW,WAAY,OAAQ,QAAS,QACzDC,OAAQ,CAAC,QAAS,QAAS,SAkBd,MAAMC,UAAeC,EAAMC,YAAaN,IACrD,WAAAO,GACEC,QAQAC,KAAKC,QAAU,UAQfD,KAAKE,UAAW,EAQhBF,KAAKG,KAAO,GAQZH,KAAKI,MAAQ,GAQbJ,KAAKK,KAAO,QACd,CAOA,MAAAC,GACE,OAAOC,CAAI,WAAWP,KAAKQ,eAC7B,EAMFb,EAAOc"}
1
+ {"version":3,"file":"button.js","sources":["../src/button/button.js"],"sourcesContent":["import { Elena, html } from \"@elenajs/core\";\n\nconst options = {\n tagName: \"elena-button\",\n props: [\"variant\", \"disabled\", \"name\", \"value\", \"type\"],\n events: [\"click\", \"focus\", \"blur\"],\n};\n\n/**\n * Button component is used for interface actions.\n *\n * @displayName Button\n * @status alpha\n *\n * @event click - Programmatically fire click on the component.\n * @event focus - Programmatically move focus to the component.\n * @event blur - Programmatically remove focus from the component.\n *\n * @cssprop [--elena-button-text] - Overrides the default text color.\n * @cssprop [--elena-button-bg] - Overrides the default background color.\n * @cssprop [--elena-button-font] - Overrides the default font family.\n * @cssprop [--elena-button-radius] - Overrides the default border radius.\n */\nexport default class Button extends Elena(HTMLElement, options) {\n constructor() {\n super();\n\n /**\n * The style variant of the button.\n *\n * @attribute\n * @type {\"default\" | \"primary\" | \"danger\"}\n */\n this.variant = \"default\";\n\n /**\n * Makes the component disabled.\n *\n * @attribute\n * @type {boolean}\n */\n this.disabled = false;\n\n /**\n * The name used to identify the button in forms.\n *\n * @attribute\n * @type {string}\n */\n this.name = \"\";\n\n /**\n * The value used to identify the button in forms.\n *\n * @attribute\n * @type {string}\n */\n this.value = \"\";\n\n /**\n * The type of the button.\n *\n * @attribute\n * @type {\"submit\" | \"reset\" | \"button\"}\n */\n this.type = \"button\";\n }\n\n /**\n * Renders the template.\n *\n * @internal\n */\n render() {\n return html`<button>${this.text}</button>`;\n }\n}\n\n/**\n * Register the web component\n */\nButton.define();\n"],"names":["options","tagName","props","events","Button","Elena","HTMLElement","constructor","super","this","variant","disabled","name","value","type","render","html","text","define"],"mappings":"0CAEA,MAAMA,EAAU,CACdC,QAAS,eACTC,MAAO,CAAC,UAAW,WAAY,OAAQ,QAAS,QAChDC,OAAQ,CAAC,QAAS,QAAS,SAkBd,MAAMC,UAAeC,EAAMC,YAAaN,IACrD,WAAAO,GACEC,QAQAC,KAAKC,QAAU,UAQfD,KAAKE,UAAW,EAQhBF,KAAKG,KAAO,GAQZH,KAAKI,MAAQ,GAQbJ,KAAKK,KAAO,QACd,CAOA,MAAAC,GACE,OAAOC,CAAI,WAAWP,KAAKQ,eAC7B,EAMFb,EAAOc"}
@@ -64,7 +64,7 @@ export type ButtonProps = {
64
64
  /** The style variant of the button. */
65
65
  variant?: "default" | "primary" | "danger";
66
66
  /** Makes the component disabled. */
67
- disabled?: Boolean;
67
+ disabled?: boolean;
68
68
  /** The name used to identify the button in forms. */
69
69
  name?: string;
70
70
  /** The value used to identify the button in forms. */
@@ -66,7 +66,7 @@
66
66
  "kind": "field",
67
67
  "name": "disabled",
68
68
  "type": {
69
- "text": "Boolean"
69
+ "text": "boolean"
70
70
  },
71
71
  "description": "Makes the component disabled.",
72
72
  "default": "false",
@@ -139,7 +139,7 @@
139
139
  {
140
140
  "name": "disabled",
141
141
  "type": {
142
- "text": "Boolean"
142
+ "text": "boolean"
143
143
  },
144
144
  "description": "Makes the component disabled.",
145
145
  "default": "false",
@@ -1,2 +1,2 @@
1
- function e(e,t,n){if(t="boolean"===e&&"boolean"!=typeof t?null!==t:t,!n)return t;if("toAttribute"===n)switch(e){case"object":case"array":return null===t?null:JSON.stringify(t);case"boolean":return t?"":null;case"number":return null===t?null:t;default:return""===t?null:t}else switch(e){case"object":case"array":if(!t)return t;try{return JSON.parse(t)}catch{return console.warn("░█ [ELENA]: Invalid JSON for prop, received: "+t),null}case"boolean":return t;case"number":return null!==t?+t:t;default:return t}}function t(e,t,n){e?null===n?e.removeAttribute(t):e.setAttribute(t,n):console.warn("░█ [ELENA]: Cannot sync attributes to a null element.")}let n=class extends Event{constructor(e,t){super(e,{bubbles:!0,composed:!0,...t})}};function s(e){const t={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};return String(e).replace(/[&<>"']/g,e=>t[e])}function r(e,...t){const n=e.reduce((e,n,r)=>{const i=t[r];return e+n+(i&&i.__raw?String(i):s(String(i??"")))},"");return{__raw:!0,strings:e,values:t,toString:()=>n}}const i=new WeakMap;function o(e,t,n){(function(e,t,n){if(e._tplStrings!==t||!e._tplParts)return!1;let r=!1;for(let t=0;t<n.length;t++){const i=n[t],o=i&&i.__raw,l=o?String(i):s(String(i??""));if(l!==e._tplValues[t])if(e._tplValues[t]=l,o)r=!0;else{const n=e._tplParts[t];n?n.textContent=String(i??""):r=!0}}return!r})(e,t,n)||function(e,t,n){const r=n.map(e=>e&&e.__raw?String(e):s(String(e??"")));let o=i.get(t);o||(o=Array.from(t,e=>e.replace(/\n\s*/g," ")),i.set(t,o));const l=o.reduce((e,t,n)=>e+t+(r[n]??""),"").replace(/>\s+</g,"><").replace(/>\s+/g,">").replace(/\s+</g,"<").trim();(function(e,t){e?e.replaceChildren(e.ownerDocument.createRange().createContextualFragment(t)):console.warn("░█ [ELENA]: Cannot render to a null element.")})(e,l),e._tplStrings=t,e._tplValues=r,e._tplParts=function(e,t){const n=new Array(t.length),s=document.createTreeWalker(e,NodeFilter.SHOW_TEXT);let r,i=0;for(;(r=s.nextNode())&&i<t.length;)r.textContent===t[i]&&(n[i]=r,i++);return n}(e,r)}(e,t,n)}function l(s,r){const i=r&&r.element?/^[a-z][a-z0-9-]*$/i.test(r.element)?e=>e.getElementsByClassName(r.element)[0]:e=>e.querySelector(r.element):e=>e.firstElementChild;class l extends s{element=null;attributeChangedCallback(t,n,s){"text"!==t?(function(t,n,s,r){if(s!==r){const s=typeof t[n];"undefined"===s&&console.warn(`░█ [ELENA]: Prop "${n}" has no default value. Set a default in the constructor so Elena can infer the correct type.`);const i=e(s,r,"toProp");t[n]=i}}(this,t,n,s),this._hydrated&&n!==s&&!this._isRendering&&(this._isRendering=!0,this._applyRender(),this._isRendering=!1)):this.text=s??""}static get observedAttributes(){return[...r&&r.props?r.props:[],"text"]}render(){}_applyRender(){const e=this.render();e&&e.strings&&o(this,e.strings,e.values)}connectedCallback(){this._captureText(),this._applyRender(),this._resolveInnerElement(),this._flushProps(),this._delegateEvents(),this.updated()}_captureText(){if(!this._hydrated&&!this._text){const e=this.textContent.trim();e?this.text=e:queueMicrotask(()=>{this._text||(this.text=this.textContent.trim())})}}_resolveInnerElement(){this.element||(this.element=i(this),this.element||(r&&r.element&&console.warn("░█ [ELENA]: No element found, using firstElementChild as fallback."),this.element=this.firstElementChild))}_flushProps(){if(this._props){const n=!(!r||!r.element);for(const[s,r]of this._props){const i=e(typeof r,r,"toAttribute");t(this,s,i),n&&t(this.element,s,i)}}}_delegateEvents(){!this._events&&r&&r.events&&(this.element?(this._events=!0,r.events?.forEach(e=>{this.element.addEventListener(e,this),this[e]=(...t)=>this.element[e](...t)})):console.warn("░█ [ELENA]: Cannot delegate events, no inner element found. Ensure the component renders an element or check your element selector."))}updated(){this._hydrated||(this._hydrated=!0,this.setAttribute("hydrated",""))}disconnectedCallback(){this._events&&(this._events=!1,r.events?.forEach(e=>{this.element?.removeEventListener(e,this)}))}handleEvent(e){r.events?.includes(e.type)&&(e.stopPropagation(),this.dispatchEvent(new n(e.type,{cancelable:!0})))}get text(){return this._text??""}set text(e){const t=this._text;this._text=e,this._hydrated&&t!==e&&!this._isRendering&&(this._isRendering=!0,this._applyRender(),this._isRendering=!1)}}return r&&r.props?.length&&(r.props.includes("text")&&console.warn('░█ [ELENA]: "text" is a reserved property. Rename your prop to avoid overriding the built-in text content feature.'),function(n,s,r=!0){for(const i of s)Object.defineProperty(n,i,{configurable:!0,enumerable:!0,get(){return this._props?this._props.get(i):void 0},set(n){if(this._props||(this._props=new Map),n===this._props.get(i))return;if(this._props.set(i,n),!this.isConnected)return;const s=e(typeof n,n,"toAttribute");t(this,i,s),r&&this.element&&t(this.element,i,s)}})}(l.prototype,r.props,!(!r||!r.element))),r&&r.tagName&&(l._tagName=r.tagName),l.define=function(){this._tagName?function(e,t){"undefined"!=typeof window&&"customElements"in window&&(window.customElements.get(e)||window.customElements.define(e,t))}(this._tagName,this):console.warn("░█ [ELENA]: define() called without a tagName. Set tagName in your Elena options to register the element.")},l}export{r as e,l as o};
2
- //# sourceMappingURL=elena-6kltq0mt.js.map
1
+ function e(e,t,n){if(t="boolean"===e&&"boolean"!=typeof t?null!==t:t,!n)return t;if("toAttribute"===n)switch(e){case"object":case"array":return null===t?null:JSON.stringify(t);case"boolean":return t?"":null;case"number":return null===t?null:t;default:return""===t?null:t}else switch(e){case"object":case"array":if(!t)return t;try{return JSON.parse(t)}catch{return console.warn("░█ [ELENA]: Invalid JSON for prop, received: "+t),null}case"boolean":return t;case"number":return null!==t?+t:t;default:return t}}function t(e,t,n){e?null===n?e.removeAttribute(t):e.setAttribute(t,n):console.warn("░█ [ELENA]: Cannot sync attributes to a null element.")}let n=class extends Event{constructor(e,t){super(e,{bubbles:!0,composed:!0,...t})}};function s(e){const t={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};return String(e).replace(/[&<>"']/g,e=>t[e])}function r(e,...t){const n=e.reduce((e,n,r)=>{const i=t[r];return e+n+(i&&i.__raw?String(i):s(String(i??"")))},"");return{__raw:!0,strings:e,values:t,toString:()=>n}}const i=new WeakMap;function o(e,t,n){(function(e,t,n){if(e._tplStrings!==t||!e._tplParts)return!1;let r=!1;for(let t=0;t<n.length;t++){const i=n[t],o=i&&i.__raw,l=o?String(i):s(String(i??""));if(l!==e._tplValues[t])if(e._tplValues[t]=l,o)r=!0;else{const n=e._tplParts[t];n?n.textContent=String(i??""):r=!0}}return!r})(e,t,n)||function(e,t,n){const r=n.map(e=>e&&e.__raw?String(e):s(String(e??"")));let o=i.get(t);o||(o=Array.from(t,e=>e.replace(/\n\s*/g," ")),i.set(t,o));const l=o.reduce((e,t,n)=>e+t+(r[n]??""),"").replace(/>\s+</g,"><").replace(/>\s+/g,">").replace(/\s+</g,"<").trim();(function(e,t){e?e.replaceChildren(e.ownerDocument.createRange().createContextualFragment(t)):console.warn("░█ [ELENA]: Cannot render to a null element.")})(e,l),e._tplStrings=t,e._tplValues=r,e._tplParts=function(e,t){const n=new Array(t.length),s=document.createTreeWalker(e,NodeFilter.SHOW_TEXT);let r,i=0;for(;(r=s.nextNode())&&i<t.length;)r.textContent===t[i]&&(n[i]=r,i++);return n}(e,r)}(e,t,n)}function l(s,r){const i=r&&r.element?/^[a-z][a-z0-9-]*$/i.test(r.element)?e=>e.getElementsByClassName(r.element)[0]:e=>e.querySelector(r.element):e=>e.firstElementChild;class l extends s{element=null;attributeChangedCallback(t,n,s){"text"!==t?(function(t,n,s,r){if(s!==r){const s=typeof t[n];"undefined"===s&&console.warn(`░█ [ELENA]: Prop "${n}" has no default value. Set a default in the constructor so Elena can infer the correct type.`);const i=e(s,r,"toProp");t[n]=i}}(this,t,n,s),this._hydrated&&n!==s&&!this._isRendering&&(this._isRendering=!0,this._applyRender(),this._isRendering=!1)):this.text=s??""}static get observedAttributes(){return[...r&&r.props?r.props:[],"text"]}render(){}_applyRender(){const e=this.render();e&&e.strings&&o(this,e.strings,e.values)}connectedCallback(){this._captureText(),this._applyRender(),this._resolveInnerElement(),this._flushProps(),this._delegateEvents(),this.updated()}_captureText(){if(!this._hydrated&&!this._text){const e=this.textContent.trim();e?this.text=e:queueMicrotask(()=>{this._text||(this.text=this.textContent.trim())})}}_resolveInnerElement(){this.element||(this.element=i(this),this.element||(r&&r.element&&console.warn("░█ [ELENA]: No element found, using firstElementChild as fallback."),this.element=this.firstElementChild))}_flushProps(){if(this._props){const n=!(!r||!r.element);for(const[s,r]of this._props){const i=e(typeof r,r,"toAttribute");t(this,s,i),n&&this.element&&t(this.element,s,i)}}}_delegateEvents(){!this._events&&r&&r.events&&(this.element?(this._events=!0,r.events?.forEach(e=>{this.element.addEventListener(e,this),this[e]=(...t)=>this.element[e](...t)})):console.warn("░█ [ELENA]: Cannot delegate events, no inner element found. Ensure the component renders an element or check your element selector."))}updated(){this._hydrated||(this._hydrated=!0,this.setAttribute("hydrated",""))}disconnectedCallback(){this._events&&(this._events=!1,r.events?.forEach(e=>{this.element?.removeEventListener(e,this)}))}handleEvent(e){r.events?.includes(e.type)&&(e.stopPropagation(),this.dispatchEvent(new n(e.type,{cancelable:!0})))}get text(){return this._text??""}set text(e){const t=this._text;this._text=e,this._hydrated&&t!==e&&!this._isRendering&&(this._isRendering=!0,this._applyRender(),this._isRendering=!1)}}return r&&r.props?.length&&(r.props.includes("text")&&console.warn('░█ [ELENA]: "text" is a reserved property. Rename your prop to avoid overriding the built-in text content feature.'),function(n,s,r=!0){for(const i of s)Object.defineProperty(n,i,{configurable:!0,enumerable:!0,get(){return this._props?this._props.get(i):void 0},set(n){if(this._props||(this._props=new Map),n===this._props.get(i))return;if(this._props.set(i,n),!this.isConnected)return;const s=e(typeof n,n,"toAttribute");t(this,i,s),r&&this.element&&t(this.element,i,s)}})}(l.prototype,r.props,!(!r||!r.element))),r&&r.tagName&&(l._tagName=r.tagName),l.define=function(){this._tagName?function(e,t){"undefined"!=typeof window&&"customElements"in window&&(window.customElements.get(e)||window.customElements.define(e,t))}(this._tagName,this):console.warn("░█ [ELENA]: define() called without a tagName. Set tagName in your Elena options to register the element.")},l}export{r as e,l as o};
2
+ //# sourceMappingURL=elena-A7IX5lSC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elena-A7IX5lSC.js","sources":["../../core/dist/props.js","../../core/dist/events.js","../../core/dist/utils.js","../../core/dist/render.js","../../core/dist/elena.js"],"sourcesContent":["function e(e,t,n){if(t=\"boolean\"===e&&\"boolean\"!=typeof t?null!==t:t,!n)return t;if(\"toAttribute\"===n)switch(e){case\"object\":case\"array\":return null===t?null:JSON.stringify(t);case\"boolean\":return t?\"\":null;case\"number\":return null===t?null:t;default:return\"\"===t?null:t}else switch(e){case\"object\":case\"array\":if(!t)return t;try{return JSON.parse(t)}catch{return console.warn(\"░█ [ELENA]: Invalid JSON for prop, received: \"+t),null}case\"boolean\":return t;case\"number\":return null!==t?+t:t;default:return t}}function t(e,t,n){e?null===n?e.removeAttribute(t):e.setAttribute(t,n):console.warn(\"░█ [ELENA]: Cannot sync attributes to a null element.\")}function n(n,r,o=!0){for(const s of r)Object.defineProperty(n,s,{configurable:!0,enumerable:!0,get(){return this._props?this._props.get(s):void 0},set(n){if(this._props||(this._props=new Map),n===this._props.get(s))return;if(this._props.set(s,n),!this.isConnected)return;const r=e(typeof n,n,\"toAttribute\");t(this,s,r),o&&this.element&&t(this.element,s,r)}})}function r(t,n,r,o){if(r!==o){const r=typeof t[n];\"undefined\"===r&&console.warn(`░█ [ELENA]: Prop \"${n}\" has no default value. Set a default in the constructor so Elena can infer the correct type.`);const s=e(r,o,\"toProp\");t[n]=s}}export{e as getPropValue,r as getProps,n as setProps,t as syncAttribute};\n//# sourceMappingURL=props.js.map\n","class e extends Event{constructor(e,s){super(e,{bubbles:!0,composed:!0,...s})}}export{e as ElenaEvent};\n//# sourceMappingURL=events.js.map\n","function n(n,t){\"undefined\"!=typeof window&&\"customElements\"in window&&(window.customElements.get(n)||window.customElements.define(n,t))}function t(n){const t={\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#39;\"};return String(n).replace(/[&<>\"']/g,n=>t[n])}function e(n,...e){const o=n.reduce((n,o,r)=>{const i=e[r];return n+o+(i&&i.__raw?String(i):t(String(i??\"\")))},\"\");return{__raw:!0,strings:n,values:e,toString:()=>o}}const o={__raw:!0,toString:()=>\"\"};export{n as defineElement,t as escapeHtml,e as html,o as nothing};\n//# sourceMappingURL=utils.js.map\n","import{escapeHtml as t}from\"./utils.js\";const e=new WeakMap;function n(n,l,o){(function(e,n,r){if(e._tplStrings!==n||!e._tplParts)return!1;let l=!1;for(let n=0;n<r.length;n++){const o=r[n],a=o&&o.__raw,c=a?String(o):t(String(o??\"\"));if(c!==e._tplValues[n])if(e._tplValues[n]=c,a)l=!0;else{const t=e._tplParts[n];t?t.textContent=String(o??\"\"):l=!0}}return!l})(n,l,o)||function(n,l,o){const a=o.map(e=>e&&e.__raw?String(e):t(String(e??\"\")));let c=e.get(l);c||(c=Array.from(l,t=>t.replace(/\\n\\s*/g,\" \")),e.set(l,c));const s=c.reduce((t,e,n)=>t+e+(a[n]??\"\"),\"\").replace(/>\\s+</g,\"><\").replace(/>\\s+/g,\">\").replace(/\\s+</g,\"<\").trim();r(n,s),n._tplStrings=l,n._tplValues=a,n._tplParts=function(t,e){const n=new Array(e.length),r=document.createTreeWalker(t,NodeFilter.SHOW_TEXT);let l,o=0;for(;(l=r.nextNode())&&o<e.length;)l.textContent===e[o]&&(n[o]=l,o++);return n}(n,a)}(n,l,o)}function r(t,e){t?t.replaceChildren(t.ownerDocument.createRange().createContextualFragment(e)):console.warn(\"░█ [ELENA]: Cannot render to a null element.\")}export{r as renderHtml,n as renderTemplate};\n//# sourceMappingURL=render.js.map\n","import{setProps as e,getProps as t,getPropValue as s,syncAttribute as n}from\"./props.js\";import{ElenaEvent as i}from\"./events.js\";import{defineElement as r}from\"./utils.js\";export{html,nothing}from\"./utils.js\";import{renderTemplate as h}from\"./render.js\";function o(o,l){const a=l&&l.element?/^[a-z][a-z0-9-]*$/i.test(l.element)?e=>e.getElementsByClassName(l.element)[0]:e=>e.querySelector(l.element):e=>e.firstElementChild;class d extends o{element=null;attributeChangedCallback(e,s,n){\"text\"!==e?(t(this,e,s,n),this._hydrated&&s!==n&&!this._isRendering&&(this._isRendering=!0,this._applyRender(),this._isRendering=!1)):this.text=n??\"\"}static get observedAttributes(){return[...l&&l.props?l.props:[],\"text\"]}render(){}_applyRender(){const e=this.render();e&&e.strings&&h(this,e.strings,e.values)}connectedCallback(){this._captureText(),this._applyRender(),this._resolveInnerElement(),this._flushProps(),this._delegateEvents(),this.updated()}_captureText(){if(!this._hydrated&&!this._text){const e=this.textContent.trim();e?this.text=e:queueMicrotask(()=>{this._text||(this.text=this.textContent.trim())})}}_resolveInnerElement(){this.element||(this.element=a(this),this.element||(l&&l.element&&console.warn(\"░█ [ELENA]: No element found, using firstElementChild as fallback.\"),this.element=this.firstElementChild))}_flushProps(){if(this._props){const e=!(!l||!l.element);for(const[t,i]of this._props){const r=s(typeof i,i,\"toAttribute\");n(this,t,r),e&&this.element&&n(this.element,t,r)}}}_delegateEvents(){!this._events&&l&&l.events&&(this.element?(this._events=!0,l.events?.forEach(e=>{this.element.addEventListener(e,this),this[e]=(...t)=>this.element[e](...t)})):console.warn(\"░█ [ELENA]: Cannot delegate events, no inner element found. Ensure the component renders an element or check your element selector.\"))}updated(){this._hydrated||(this._hydrated=!0,this.setAttribute(\"hydrated\",\"\"))}disconnectedCallback(){this._events&&(this._events=!1,l.events?.forEach(e=>{this.element?.removeEventListener(e,this)}))}handleEvent(e){l.events?.includes(e.type)&&(e.stopPropagation(),this.dispatchEvent(new i(e.type,{cancelable:!0})))}get text(){return this._text??\"\"}set text(e){const t=this._text;this._text=e,this._hydrated&&t!==e&&!this._isRendering&&(this._isRendering=!0,this._applyRender(),this._isRendering=!1)}}return l&&l.props?.length&&(l.props.includes(\"text\")&&console.warn('░█ [ELENA]: \"text\" is a reserved property. Rename your prop to avoid overriding the built-in text content feature.'),e(d.prototype,l.props,!(!l||!l.element))),l&&l.tagName&&(d._tagName=l.tagName),d.define=function(){this._tagName?r(this._tagName,this):console.warn(\"░█ [ELENA]: define() called without a tagName. Set tagName in your Elena options to register the element.\")},d}export{o as Elena};\n//# sourceMappingURL=elena.js.map\n"],"names":["e","t","n","JSON","stringify","parse","console","warn","removeAttribute","setAttribute","e$2","Event","constructor","s","super","bubbles","composed","String","replace","o","reduce","r","i","__raw","strings","values","toString","WeakMap","l","_tplStrings","_tplParts","length","a","c","_tplValues","textContent","map","get","Array","from","set","trim","replaceChildren","ownerDocument","createRange","createContextualFragment","document","createTreeWalker","NodeFilter","SHOW_TEXT","nextNode","element","test","getElementsByClassName","querySelector","firstElementChild","d","attributeChangedCallback","this","_hydrated","_isRendering","_applyRender","text","observedAttributes","props","render","h","connectedCallback","_captureText","_resolveInnerElement","_flushProps","_delegateEvents","updated","_text","queueMicrotask","_props","_events","events","forEach","addEventListener","disconnectedCallback","removeEventListener","handleEvent","includes","type","stopPropagation","dispatchEvent","cancelable","Object","defineProperty","configurable","enumerable","Map","isConnected","prototype","tagName","_tagName","define","window","customElements"],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export{default as Button}from"./button.js";export{default as Stack}from"./stack.js";import"./elena-6kltq0mt.js";
1
+ export{default as Button}from"./button.js";export{default as Stack}from"./stack.js";import"./elena-A7IX5lSC.js";
2
2
  //# sourceMappingURL=index.js.map
package/dist/stack.css CHANGED
@@ -1 +1 @@
1
- @scope (elena-stack){:scope{all:unset;display:flex;justify-content:flex-start;align-items:flex-start;flex-flow:column wrap;flex-direction:column;gap:0.5rem}:scope[direction="row"]{flex-direction:row}}
1
+ @scope(elena-stack){:scope{all:unset;flex-flow:column wrap;justify-content:flex-start;align-items:flex-start;gap:.5rem;display:flex}:scope[direction=row]{flex-direction:row}}
package/dist/stack.js CHANGED
@@ -1,2 +1,2 @@
1
- import{o as e}from"./elena-6kltq0mt.js";const t={tagName:"elena-stack",props:["direction"]};class s extends(e(HTMLElement,t)){constructor(){super(),this.direction="column"}}s.define();export{s as default};
1
+ import{o as e}from"./elena-A7IX5lSC.js";const t={tagName:"elena-stack",props:["direction"]};class s extends(e(HTMLElement,t)){constructor(){super(),this.direction="column"}}s.define();export{s as default};
2
2
  //# sourceMappingURL=stack.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elenajs/components",
3
- "version": "0.10.1",
3
+ "version": "0.11.1",
4
4
  "description": "Elena component library demonstrating how to build progressive web components.",
5
5
  "author": "Elena <hi@elenajs.com>",
6
6
  "homepage": "https://elenajs.com/",
@@ -33,11 +33,11 @@
33
33
  "clean": "rm -rf dist/"
34
34
  },
35
35
  "dependencies": {
36
- "@elenajs/core": "^0.9.0"
36
+ "@elenajs/core": "^0.10.1"
37
37
  },
38
38
  "devDependencies": {
39
- "@elenajs/bundler": "^0.3.0",
39
+ "@elenajs/bundler": "^0.4.0",
40
40
  "@web/dev-server": "0.4.6"
41
41
  },
42
- "gitHead": "b4f4000940df809f0ab4d1f3f76b693cc253d879"
42
+ "gitHead": "1b8a65e11b3776bf5ddc21bbe4e6bf281b19470e"
43
43
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"elena-6kltq0mt.js","sources":["../../core/dist/props.js","../../core/dist/events.js","../../core/dist/utils.js","../../core/dist/render.js","../../core/dist/elena.js"],"sourcesContent":["function e(e,t,n){if(t=\"boolean\"===e&&\"boolean\"!=typeof t?null!==t:t,!n)return t;if(\"toAttribute\"===n)switch(e){case\"object\":case\"array\":return null===t?null:JSON.stringify(t);case\"boolean\":return t?\"\":null;case\"number\":return null===t?null:t;default:return\"\"===t?null:t}else switch(e){case\"object\":case\"array\":if(!t)return t;try{return JSON.parse(t)}catch{return console.warn(\"░█ [ELENA]: Invalid JSON for prop, received: \"+t),null}case\"boolean\":return t;case\"number\":return null!==t?+t:t;default:return t}}function t(e,t,n){e?null===n?e.removeAttribute(t):e.setAttribute(t,n):console.warn(\"░█ [ELENA]: Cannot sync attributes to a null element.\")}function n(n,r,o=!0){for(const s of r)Object.defineProperty(n,s,{configurable:!0,enumerable:!0,get(){return this._props?this._props.get(s):void 0},set(n){if(this._props||(this._props=new Map),n===this._props.get(s))return;if(this._props.set(s,n),!this.isConnected)return;const r=e(typeof n,n,\"toAttribute\");t(this,s,r),o&&this.element&&t(this.element,s,r)}})}function r(t,n,r,o){if(r!==o){const r=typeof t[n];\"undefined\"===r&&console.warn(`░█ [ELENA]: Prop \"${n}\" has no default value. Set a default in the constructor so Elena can infer the correct type.`);const s=e(r,o,\"toProp\");t[n]=s}}export{e as getPropValue,r as getProps,n as setProps,t as syncAttribute};\n//# sourceMappingURL=props.js.map\n","class e extends Event{constructor(e,s){super(e,{bubbles:!0,composed:!0,...s})}}export{e as ElenaEvent};\n//# sourceMappingURL=events.js.map\n","function n(n,t){\"undefined\"!=typeof window&&\"customElements\"in window&&(window.customElements.get(n)||window.customElements.define(n,t))}function t(n){const t={\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#39;\"};return String(n).replace(/[&<>\"']/g,n=>t[n])}function e(n,...e){const o=n.reduce((n,o,r)=>{const i=e[r];return n+o+(i&&i.__raw?String(i):t(String(i??\"\")))},\"\");return{__raw:!0,strings:n,values:e,toString:()=>o}}const o={__raw:!0,toString:()=>\"\"};export{n as defineElement,t as escapeHtml,e as html,o as nothing};\n//# sourceMappingURL=utils.js.map\n","import{escapeHtml as t}from\"./utils.js\";const e=new WeakMap;function n(n,l,o){(function(e,n,r){if(e._tplStrings!==n||!e._tplParts)return!1;let l=!1;for(let n=0;n<r.length;n++){const o=r[n],a=o&&o.__raw,c=a?String(o):t(String(o??\"\"));if(c!==e._tplValues[n])if(e._tplValues[n]=c,a)l=!0;else{const t=e._tplParts[n];t?t.textContent=String(o??\"\"):l=!0}}return!l})(n,l,o)||function(n,l,o){const a=o.map(e=>e&&e.__raw?String(e):t(String(e??\"\")));let c=e.get(l);c||(c=Array.from(l,t=>t.replace(/\\n\\s*/g,\" \")),e.set(l,c));const s=c.reduce((t,e,n)=>t+e+(a[n]??\"\"),\"\").replace(/>\\s+</g,\"><\").replace(/>\\s+/g,\">\").replace(/\\s+</g,\"<\").trim();r(n,s),n._tplStrings=l,n._tplValues=a,n._tplParts=function(t,e){const n=new Array(e.length),r=document.createTreeWalker(t,NodeFilter.SHOW_TEXT);let l,o=0;for(;(l=r.nextNode())&&o<e.length;)l.textContent===e[o]&&(n[o]=l,o++);return n}(n,a)}(n,l,o)}function r(t,e){t?t.replaceChildren(t.ownerDocument.createRange().createContextualFragment(e)):console.warn(\"░█ [ELENA]: Cannot render to a null element.\")}export{r as renderHtml,n as renderTemplate};\n//# sourceMappingURL=render.js.map\n","import{setProps as e,getProps as t,getPropValue as s,syncAttribute as n}from\"./props.js\";import{ElenaEvent as i}from\"./events.js\";import{defineElement as r}from\"./utils.js\";export{html,nothing}from\"./utils.js\";import{renderTemplate as h}from\"./render.js\";function o(o,l){const a=l&&l.element?/^[a-z][a-z0-9-]*$/i.test(l.element)?e=>e.getElementsByClassName(l.element)[0]:e=>e.querySelector(l.element):e=>e.firstElementChild;class d extends o{element=null;attributeChangedCallback(e,s,n){\"text\"!==e?(t(this,e,s,n),this._hydrated&&s!==n&&!this._isRendering&&(this._isRendering=!0,this._applyRender(),this._isRendering=!1)):this.text=n??\"\"}static get observedAttributes(){return[...l&&l.props?l.props:[],\"text\"]}render(){}_applyRender(){const e=this.render();e&&e.strings&&h(this,e.strings,e.values)}connectedCallback(){this._captureText(),this._applyRender(),this._resolveInnerElement(),this._flushProps(),this._delegateEvents(),this.updated()}_captureText(){if(!this._hydrated&&!this._text){const e=this.textContent.trim();e?this.text=e:queueMicrotask(()=>{this._text||(this.text=this.textContent.trim())})}}_resolveInnerElement(){this.element||(this.element=a(this),this.element||(l&&l.element&&console.warn(\"░█ [ELENA]: No element found, using firstElementChild as fallback.\"),this.element=this.firstElementChild))}_flushProps(){if(this._props){const e=!(!l||!l.element);for(const[t,i]of this._props){const r=s(typeof i,i,\"toAttribute\");n(this,t,r),e&&n(this.element,t,r)}}}_delegateEvents(){!this._events&&l&&l.events&&(this.element?(this._events=!0,l.events?.forEach(e=>{this.element.addEventListener(e,this),this[e]=(...t)=>this.element[e](...t)})):console.warn(\"░█ [ELENA]: Cannot delegate events, no inner element found. Ensure the component renders an element or check your element selector.\"))}updated(){this._hydrated||(this._hydrated=!0,this.setAttribute(\"hydrated\",\"\"))}disconnectedCallback(){this._events&&(this._events=!1,l.events?.forEach(e=>{this.element?.removeEventListener(e,this)}))}handleEvent(e){l.events?.includes(e.type)&&(e.stopPropagation(),this.dispatchEvent(new i(e.type,{cancelable:!0})))}get text(){return this._text??\"\"}set text(e){const t=this._text;this._text=e,this._hydrated&&t!==e&&!this._isRendering&&(this._isRendering=!0,this._applyRender(),this._isRendering=!1)}}return l&&l.props?.length&&(l.props.includes(\"text\")&&console.warn('░█ [ELENA]: \"text\" is a reserved property. Rename your prop to avoid overriding the built-in text content feature.'),e(d.prototype,l.props,!(!l||!l.element))),l&&l.tagName&&(d._tagName=l.tagName),d.define=function(){this._tagName?r(this._tagName,this):console.warn(\"░█ [ELENA]: define() called without a tagName. Set tagName in your Elena options to register the element.\")},d}export{o as Elena};\n//# sourceMappingURL=elena.js.map\n"],"names":["e","t","n","JSON","stringify","parse","console","warn","removeAttribute","setAttribute","e$2","Event","constructor","s","super","bubbles","composed","String","replace","o","reduce","r","i","__raw","strings","values","toString","WeakMap","l","_tplStrings","_tplParts","length","a","c","_tplValues","textContent","map","get","Array","from","set","trim","replaceChildren","ownerDocument","createRange","createContextualFragment","document","createTreeWalker","NodeFilter","SHOW_TEXT","nextNode","element","test","getElementsByClassName","querySelector","firstElementChild","d","attributeChangedCallback","this","_hydrated","_isRendering","_applyRender","text","observedAttributes","props","render","h","connectedCallback","_captureText","_resolveInnerElement","_flushProps","_delegateEvents","updated","_text","queueMicrotask","_props","_events","events","forEach","addEventListener","disconnectedCallback","removeEventListener","handleEvent","includes","type","stopPropagation","dispatchEvent","cancelable","Object","defineProperty","configurable","enumerable","Map","isConnected","prototype","tagName","_tagName","define","window","customElements"],"mappings":"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"}