@elenajs/elements 0.0.7 → 0.0.9

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.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":return t&&JSON.parse(t);case"boolean":default:return t;case"number":return null!==t?+t: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,s=class extends Event{constructor(e,t){super(e,{bubbles:!0,composed:!0,...t})}};function l(e,t){"undefined"!=typeof window&&"customElements"in window&&(window.customElements.get(e)||window.customElements.define(e,t))}function r(e){const t={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};return String(e).replace(/[&<>"']/g,e=>t[e])}function i(e,...t){const n=e.reduce((e,n,s)=>e+n+r(String(t[s]??"")),"");return{__raw:!0,toString:()=>n}}function a(e,t,n){(function(e,t,n){if(e._tplStrings!==t||!e._tplParts)return!1;let s=!1;for(let t=0;t<n.length;t++){const l=n[t],i=l&&l.__raw,a=i?String(l):r(String(l??""));if(a!==e._tplValues[t])if(e._tplValues[t]=a,i)s=!0;else{const n=e._tplParts[t];n?n.textContent=String(l??""):s=!0}}return!s})(e,t,n)||function(e,t,n){const s=n.map(e=>e&&e.__raw?String(e):r(String(e??""))),l=t.reduce((e,t,n)=>e+t.replace(/\n\s*/g," ")+(s[n]??""),"").replace(/>\s+</g,"><").replace(/>\s+/g,">").replace(/\s+</g,"<").trim();o(e,l),e._tplStrings=t,e._tplValues=s,e._tplParts=function(e,t){const n=new Array(t.length),s=document.createTreeWalker(e,NodeFilter.SHOW_TEXT);let l,r=0;for(;(l=s.nextNode())&&r<t.length;)l.textContent===t[r]&&(n[r]=l,r++);return n}(e,s)}(e,t,n)}function o(e,t){e?e.replaceChildren((n??=document.createRange()).createContextualFragment(t)):console.warn("░█ [ELENA]: Cannot render to a null element.")}function u(n,l){const r=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 i extends n{element=null;attributeChangedCallback(t,n,s){(function(t,n,s,l){if(s!==l){const s=e(typeof t[n],l,"toProp");t[n]=s}})(this,t,n,s),this.element&&n!==s&&this.render()}static get observedAttributes(){return l&&l.props?l.props:[]}render(){}template(e,...t){a(this,e,t)}connectedCallback(){if(this.render(),this.element||(this.element=r(this),this.element||(console.warn("░█ [ELENA]: No element found, using firstElementChild as fallback."),this.element=this.firstElementChild)),this._props)for(const[n,s]of this._props){const l=e(typeof s,s,"toAttribute");t(this,n,l),t(this.element,n,l)}!this._events&&l&&l.events&&(this._events=!0,l.events?.forEach(e=>{this.element.addEventListener(e,this),this[e]=(...t)=>this.element[e](...t)})),this.updated()}updated(){this._hydrated||(this._hydrated=!0,this.classList.add("elena-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 s(e.type,{cancelable:!0})))}}return l&&l.props?.length&&function(n,s){for(const l of s)Object.defineProperty(n,l,{configurable:!0,enumerable:!0,get(){return this._props?this._props.get(l):void 0},set(n){if(this._props||(this._props=new Map),n===this._props.get(l))return;if(this._props.set(l,n),!this.isConnected)return;const s=e(typeof n,n,"toAttribute");t(this,l,s),this.element&&t(this.element,l,s)}})}(i.prototype,l.props),i}const c={props:["variant","size","disabled","name","value","type"],events:["click","focus","blur"],element:".elena-button"};class h extends(u(HTMLElement,c)){constructor(){super(),this.variant="default",this.size="md",this.disabled=!1,this.name="",this.value="",this.type="button"}render(){const e=this.textContent.trim();this.template`<button class="elena-button" type="${this.type||"button"}" ${this.name?`name="${this.name}"`:""} ${this.value?`value="${this.value}"`:""} ${this.disabled?"disabled":""}>${e}</button>`}}l("elena-button",h);const p={props:["size","disabled","name","value","type","label","error","placeholder"],events:["click","focus","blur"],element:".elena-input"};class d extends(u(HTMLElement,p)){constructor(){super(),this.size="md",this.disabled=!1,this.name="",this.label="",this.value="",this.placeholder="",this.type="text",this.error=""}render(){this.template`<label for="input">${this.label}</label><div class="elena-input-container"><span class="elena-input-start"></span> <input id="input" class="elena-input" type="${this.type}" value="${this.value}" placeholder="${this.placeholder}" ${this.name?`name="${this.name}"`:""} ${this.value?`value="${this.value}"`:""} ${this.disabled?"disabled":""}> <span class="elena-input-end"></span></div>${this.error?i`<div class="elena-error" role="alert">${this.error}</div>`:""}`}}l("elena-input",d);class m extends(u(HTMLElement)){constructor(){super()}}l("elena-stack",m);export{h as Button,d as Input,m 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":return t&&JSON.parse(t);case"boolean":default:return t;case"number":return null!==t?+t: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)=>e+n+s(String(t[r]??"")),"");return{__raw:!0,toString:()=>n}}function i(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],l=i&&i.__raw,a=l?String(i):s(String(i??""));if(a!==e._tplValues[t])if(e._tplValues[t]=a,l)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??""))),i=t.reduce((e,t,n)=>e+t.replace(/\n\s*/g," ")+(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,i),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 l=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 a extends s{element=null;attributeChangedCallback(t,n,s){(function(t,n,s,r){if(s!==r){const s=e(typeof t[n],r,"toProp");t[n]=s}})(this,t,n,s),this.element&&n!==s&&!this._isRendering&&(this._isRendering=!0,this.render(),this._isRendering=!1)}static get observedAttributes(){return r&&r.props?r.props:[]}render(){}template(e,...t){i(this,e,t)}connectedCallback(){if(this.render(),this.element||(this.element=l(this),this.element||(console.warn("░█ [ELENA]: No element found, using firstElementChild as fallback."),this.element=this.firstElementChild)),this._props)for(const[n,s]of this._props){const r=e(typeof s,s,"toAttribute");t(this,n,r),t(this.element,n,r)}!this._events&&r&&r.events&&(this._events=!0,r.events?.forEach(e=>{this.element.addEventListener(e,this),this[e]=(...t)=>this.element[e](...t)})),this.updated()}updated(){this._hydrated||(this._hydrated=!0,this.classList.add("elena-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})))}}return r&&r.props?.length&&function(n,s){for(const r of s)Object.defineProperty(n,r,{configurable:!0,enumerable:!0,get(){return this._props?this._props.get(r):void 0},set(n){if(this._props||(this._props=new Map),n===this._props.get(r))return;if(this._props.set(r,n),!this.isConnected)return;const s=e(typeof n,n,"toAttribute");t(this,r,s),this.element&&t(this.element,r,s)}})}(a.prototype,r.props),r&&r.tagName&&(a._tagName=r.tagName),a.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)},a}const a={tagName:"elena-button",props:["variant","size","disabled","name","value","type"],events:["click","focus","blur"],element:".elena-button"};class o extends(l(HTMLElement,a)){constructor(){super(),this.variant="default",this.size="md",this.disabled=!1,this.name="",this.value="",this.type="button"}render(){const e=this.textContent.trim();this.template`<button class="elena-button">${e}</button>`}}o.define();const c={tagName:"elena-input",props:["size","disabled","name","value","type","label","error","placeholder"],events:["click","focus","blur"],element:".elena-input"};class u extends(l(HTMLElement,c)){constructor(){super(),this.size="md",this.disabled=!1,this.name="",this.label="",this.value="",this.placeholder="",this.type="text",this.error=""}render(){this.template`<label for="input">${this.label}</label><div class="elena-input-container"><span class="elena-input-start"></span> <input id="input" class="elena-input"> <span class="elena-input-end"></span></div>${this.error?r`<div class="elena-error" role="alert">${this.error}</div>`:""}`}}u.define();const p={element:".elena-stack"};class h extends(l(HTMLElement,p)){constructor(){super()}}h.define();export{o as Button,u as Input,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/render.js","../../core/dist/utils.js","../../core/dist/elena.js","../src/button/button.js","../src/input/input.js","../src/stack/stack.js"],"sourcesContent":["function t(t,e,n){if(e=\"boolean\"===t&&\"boolean\"!=typeof e?null!==e:e,!n)return e;if(\"toAttribute\"===n)switch(t){case\"object\":case\"array\":return null===e?null:JSON.stringify(e);case\"boolean\":return e?\"\":null;case\"number\":return null===e?null:e;default:return\"\"===e?null:e}else switch(t){case\"object\":case\"array\":return e&&JSON.parse(e);case\"boolean\":default:return e;case\"number\":return null!==e?+e:e}}function e(t,e,n){t?null===n?t.removeAttribute(e):t.setAttribute(e,n):console.warn(\"░█ [ELENA]: Cannot sync attributes to a null element.\")}function n(n,r){for(const o of r)Object.defineProperty(n,o,{configurable:!0,enumerable:!0,get(){return this._props?this._props.get(o):void 0},set(n){if(this._props||(this._props=new Map),n===this._props.get(o))return;if(this._props.set(o,n),!this.isConnected)return;const r=t(typeof n,n,\"toAttribute\");e(this,o,r),this.element&&e(this.element,o,r)}})}function r(e,n,r,o){if(r!==o){const r=t(typeof e[n],o,\"toProp\");e[n]=r}}export{t as getPropValue,r as getProps,n as setProps,e 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","import{escapeHtml as t}from\"./utils.js\";function e(e,n,l){(function(e,n,r){if(e._tplStrings!==n||!e._tplParts)return!1;let l=!1;for(let n=0;n<r.length;n++){const a=r[n],o=a&&a.__raw,c=o?String(a):t(String(a??\"\"));if(c!==e._tplValues[n])if(e._tplValues[n]=c,o)l=!0;else{const t=e._tplParts[n];t?t.textContent=String(a??\"\"):l=!0}}return!l})(e,n,l)||function(e,n,l){const a=l.map(e=>e&&e.__raw?String(e):t(String(e??\"\"))),o=n.reduce((t,e,n)=>t+e.replace(/\\n\\s*/g,\" \")+(a[n]??\"\"),\"\").replace(/>\\s+</g,\"><\").replace(/>\\s+/g,\">\").replace(/\\s+</g,\"<\").trim();r(e,o),e._tplStrings=n,e._tplValues=a,e._tplParts=function(t,e){const n=new Array(e.length),r=document.createTreeWalker(t,NodeFilter.SHOW_TEXT);let l,a=0;for(;(l=r.nextNode())&&a<e.length;)l.textContent===e[a]&&(n[a]=l,a++);return n}(e,a)}(e,n,l)}let n;function r(t,e){t?t.replaceChildren((n??=document.createRange()).createContextualFragment(e)):console.warn(\"░█ [ELENA]: Cannot render to a null element.\")}export{r as renderHtml,e as renderTemplate};\n//# sourceMappingURL=render.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,i)=>n+o+t(String(e[i]??\"\")),\"\");return{__raw:!0,toString:()=>o}}export{n as defineElement,t as escapeHtml,e as html};\n//# sourceMappingURL=utils.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\";export{defineElement,html}from\"./utils.js\";import{renderTemplate as r}from\"./render.js\";function l(l,h){const o=h&&h.element?/^[a-z][a-z0-9-]*$/i.test(h.element)?e=>e.getElementsByClassName(h.element)[0]:e=>e.querySelector(h.element):e=>e.firstElementChild;class a extends l{element=null;attributeChangedCallback(e,s,n){t(this,e,s,n),this.element&&s!==n&&this.render()}static get observedAttributes(){return h&&h.props?h.props:[]}render(){}template(e,...t){r(this,e,t)}connectedCallback(){if(this.render(),this.element||(this.element=o(this),this.element||(console.warn(\"░█ [ELENA]: No element found, using firstElementChild as fallback.\"),this.element=this.firstElementChild)),this._props)for(const[e,t]of this._props){const i=s(typeof t,t,\"toAttribute\");n(this,e,i),n(this.element,e,i)}!this._events&&h&&h.events&&(this._events=!0,h.events?.forEach(e=>{this.element.addEventListener(e,this),this[e]=(...t)=>this.element[e](...t)})),this.updated()}updated(){this._hydrated||(this._hydrated=!0,this.classList.add(\"elena-hydrated\"))}disconnectedCallback(){this._events&&(this._events=!1,h.events?.forEach(e=>{this.element?.removeEventListener(e,this)}))}handleEvent(e){h.events?.includes(e.type)&&(e.stopPropagation(),this.dispatchEvent(new i(e.type,{cancelable:!0})))}}return h&&h.props?.length&&e(a.prototype,h.props),a}export{l as Elena};\n//# sourceMappingURL=elena.js.map\n","import { Elena, defineElement } from \"@elenajs/core\";\n\nconst options = {\n props: [\"variant\", \"size\", \"disabled\", \"name\", \"value\", \"type\"],\n events: [\"click\", \"focus\", \"blur\"],\n element: \".elena-button\",\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-color-text] - Controls the color of the text.\n * @cssprop [--elena-button-color-bg] - Controls the color of the background.\n * @cssprop [--elena-button-color-border] - Controls the color of the border.\n * @cssprop [--elena-button-radius] - Controls the radius of the component.\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 * The size of the button.\n *\n * @attribute\n * @type {\"sm\" | \"md\" | \"lg\"}\n */\n this.size = \"md\";\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 custom element template.\n *\n * @internal\n */\n render() {\n const slottedContent = this.textContent.trim();\n\n this.template`\n <button\n class=\"elena-button\"\n type=\"${this.type || \"button\"}\"\n ${this.name ? `name=\"${this.name}\"` : \"\"}\n ${this.value ? `value=\"${this.value}\"` : \"\"}\n ${this.disabled ? \"disabled\" : \"\"}>\n ${slottedContent}\n </button>\n `;\n }\n}\n\n/**\n * Register the custom element\n */\ndefineElement(\"elena-button\", Button);\n","import { Elena, defineElement, html } from \"@elenajs/core\";\n\nconst options = {\n props: [\"size\", \"disabled\", \"name\", \"value\", \"type\", \"label\", \"error\", \"placeholder\"],\n events: [\"click\", \"focus\", \"blur\"],\n element: \".elena-input\",\n};\n\n/**\n * The description of the component goes here.\n *\n * @displayName Input\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-input-color-text] - Controls the color of the text.\n * @cssprop [--elena-input-color-bg] - Controls the color of the background.\n * @cssprop [--elena-input-color-border] - Controls the color of the border.\n * @cssprop [--elena-input-radius] - Controls the radius of the component.\n */\nexport default class Input extends Elena(HTMLElement, options) {\n constructor() {\n super();\n\n /**\n * The size of the input.\n *\n * @attribute\n * @type {\"sm\" | \"md\" | \"lg\"}\n */\n this.size = \"md\";\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 input in forms.\n *\n * @attribute\n * @type {string}\n */\n this.name = \"\";\n\n /**\n * The label for the input\n *\n * @attribute\n * @type {string}\n */\n this.label = \"\";\n\n /**\n * The value used to identify the input in forms.\n *\n * @attribute\n * @type {string}\n */\n this.value = \"\";\n\n /**\n * The placeholder text for the input.\n *\n * @attribute\n * @type {string}\n */\n this.placeholder = \"\";\n\n /**\n * The type of the input\n *\n * @attribute\n * @type {\"text\" | \"email\" | \"password\" | \"tel\" | \"url\" | \"search\" | \"number\" | \"unit\" | \"button\"}\n */\n this.type = \"text\";\n\n /**\n * The error to display\n *\n * @attribute\n * @type {string}\n */\n this.error = \"\";\n }\n\n /**\n * Renders the custom element template.\n *\n * @internal\n */\n render() {\n this.template`\n <label for=\"input\">${this.label}</label>\n <div class=\"elena-input-container\">\n <span class=\"elena-input-start\"></span>\n <input\n id=\"input\"\n class=\"elena-input\"\n type=\"${this.type}\"\n value=\"${this.value}\"\n placeholder=\"${this.placeholder}\"\n ${this.name ? `name=\"${this.name}\"` : \"\"}\n ${this.value ? `value=\"${this.value}\"` : \"\"}\n ${this.disabled ? \"disabled\" : \"\"}\n />\n <span class=\"elena-input-end\"></span>\n </div>\n ${this.error ? html`<div class=\"elena-error\" role=\"alert\">${this.error}</div>` : \"\"}\n `;\n }\n}\n\n/**\n * Register the custom element\n */\ndefineElement(\"elena-input\", Input);\n","import { Elena, defineElement } from \"@elenajs/core\";\n\n/**\n * Stack component manages layout of immediate children\n * with optional spacing between each child.\n *\n * @displayName Stack\n * @status alpha\n */\nexport default class Stack extends Elena(HTMLElement) {\n constructor() {\n super();\n }\n}\n\n/**\n * Register the custom element\n */\ndefineElement(\"elena-stack\", Stack);\n"],"names":["t","e","n","JSON","stringify","parse","removeAttribute","setAttribute","console","warn","e$2","Event","constructor","s","super","bubbles","composed","window","customElements","get","define","String","replace","o","reduce","i","__raw","toString","l","r","_tplStrings","_tplParts","length","a","c","_tplValues","textContent","map","trim","Array","document","createTreeWalker","NodeFilter","SHOW_TEXT","nextNode","replaceChildren","createRange","createContextualFragment","h","element","test","getElementsByClassName","querySelector","firstElementChild","attributeChangedCallback","this","render","observedAttributes","props","template","connectedCallback","_props","_events","events","forEach","addEventListener","updated","_hydrated","classList","add","disconnectedCallback","removeEventListener","handleEvent","includes","type","stopPropagation","dispatchEvent","cancelable","Object","defineProperty","configurable","enumerable","set","Map","isConnected","prototype","options","Button","Elena","HTMLElement","variant","size","disabled","name","value","slottedContent","defineElement","Input","label","placeholder","error","html","Stack"],"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/input/input.js","../src/stack/stack.js"],"sourcesContent":["function t(t,e,n){if(e=\"boolean\"===t&&\"boolean\"!=typeof e?null!==e:e,!n)return e;if(\"toAttribute\"===n)switch(t){case\"object\":case\"array\":return null===e?null:JSON.stringify(e);case\"boolean\":return e?\"\":null;case\"number\":return null===e?null:e;default:return\"\"===e?null:e}else switch(t){case\"object\":case\"array\":return e&&JSON.parse(e);case\"boolean\":default:return e;case\"number\":return null!==e?+e:e}}function e(t,e,n){t?null===n?t.removeAttribute(e):t.setAttribute(e,n):console.warn(\"░█ [ELENA]: Cannot sync attributes to a null element.\")}function n(n,r){for(const o of r)Object.defineProperty(n,o,{configurable:!0,enumerable:!0,get(){return this._props?this._props.get(o):void 0},set(n){if(this._props||(this._props=new Map),n===this._props.get(o))return;if(this._props.set(o,n),!this.isConnected)return;const r=t(typeof n,n,\"toAttribute\");e(this,o,r),this.element&&e(this.element,o,r)}})}function r(e,n,r,o){if(r!==o){const r=t(typeof e[n],o,\"toProp\");e[n]=r}}export{t as getPropValue,r as getProps,n as setProps,e 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,i)=>n+o+t(String(e[i]??\"\")),\"\");return{__raw:!0,toString:()=>o}}export{n as defineElement,t as escapeHtml,e as html};\n//# sourceMappingURL=utils.js.map\n","import{escapeHtml as t}from\"./utils.js\";function e(e,r,l){(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})(e,r,l)||function(e,r,l){const o=l.map(e=>e&&e.__raw?String(e):t(String(e??\"\"))),a=r.reduce((t,e,n)=>t+e.replace(/\\n\\s*/g,\" \")+(o[n]??\"\"),\"\").replace(/>\\s+</g,\"><\").replace(/>\\s+/g,\">\").replace(/\\s+</g,\"<\").trim();n(e,a),e._tplStrings=r,e._tplValues=o,e._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}(e,o)}(e,r,l)}function n(t,e){t?t.replaceChildren(t.ownerDocument.createRange().createContextualFragment(e)):console.warn(\"░█ [ELENA]: Cannot render to a null element.\")}export{n as renderHtml,e 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}from\"./utils.js\";import{renderTemplate as h}from\"./render.js\";function l(l,a){const o=a&&a.element?/^[a-z][a-z0-9-]*$/i.test(a.element)?e=>e.getElementsByClassName(a.element)[0]:e=>e.querySelector(a.element):e=>e.firstElementChild;class m extends l{element=null;attributeChangedCallback(e,s,n){t(this,e,s,n),this.element&&s!==n&&!this._isRendering&&(this._isRendering=!0,this.render(),this._isRendering=!1)}static get observedAttributes(){return a&&a.props?a.props:[]}render(){}template(e,...t){h(this,e,t)}connectedCallback(){if(this.render(),this.element||(this.element=o(this),this.element||(console.warn(\"░█ [ELENA]: No element found, using firstElementChild as fallback.\"),this.element=this.firstElementChild)),this._props)for(const[e,t]of this._props){const i=s(typeof t,t,\"toAttribute\");n(this,e,i),n(this.element,e,i)}!this._events&&a&&a.events&&(this._events=!0,a.events?.forEach(e=>{this.element.addEventListener(e,this),this[e]=(...t)=>this.element[e](...t)})),this.updated()}updated(){this._hydrated||(this._hydrated=!0,this.classList.add(\"elena-hydrated\"))}disconnectedCallback(){this._events&&(this._events=!1,a.events?.forEach(e=>{this.element?.removeEventListener(e,this)}))}handleEvent(e){a.events?.includes(e.type)&&(e.stopPropagation(),this.dispatchEvent(new i(e.type,{cancelable:!0})))}}return a&&a.props?.length&&e(m.prototype,a.props),a&&a.tagName&&(m._tagName=a.tagName),m.define=function(){this._tagName&&r(this._tagName,this)},m}export{l as Elena};\n//# sourceMappingURL=elena.js.map\n","import { Elena } from \"@elenajs/core\";\n\nconst options = {\n tagName: \"elena-button\",\n props: [\"variant\", \"size\", \"disabled\", \"name\", \"value\", \"type\"],\n events: [\"click\", \"focus\", \"blur\"],\n element: \".elena-button\",\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-color-text] - Controls the color of the text.\n * @cssprop [--elena-button-color-bg] - Controls the color of the background.\n * @cssprop [--elena-button-color-border] - Controls the color of the border.\n * @cssprop [--elena-button-radius] - Controls the radius of the component.\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 * The size of the button.\n *\n * @attribute\n * @type {\"sm\" | \"md\" | \"lg\"}\n */\n this.size = \"md\";\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 const slottedContent = this.textContent.trim();\n\n this.template`\n <button class=\"elena-button\">\n ${slottedContent}\n </button>\n `;\n }\n}\n\n/**\n * Register the web component\n */\nButton.define();\n","import { Elena, html } from \"@elenajs/core\";\n\nconst options = {\n tagName: \"elena-input\",\n props: [\"size\", \"disabled\", \"name\", \"value\", \"type\", \"label\", \"error\", \"placeholder\"],\n events: [\"click\", \"focus\", \"blur\"],\n element: \".elena-input\",\n};\n\n/**\n * The description of the component goes here.\n *\n * @displayName Input\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-input-color-text] - Controls the color of the text.\n * @cssprop [--elena-input-color-bg] - Controls the color of the background.\n * @cssprop [--elena-input-color-border] - Controls the color of the border.\n * @cssprop [--elena-input-radius] - Controls the radius of the component.\n */\nexport default class Input extends Elena(HTMLElement, options) {\n constructor() {\n super();\n\n /**\n * The size of the input.\n *\n * @attribute\n * @type {\"sm\" | \"md\" | \"lg\"}\n */\n this.size = \"md\";\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 input in forms.\n *\n * @attribute\n * @type {string}\n */\n this.name = \"\";\n\n /**\n * The label for the input\n *\n * @attribute\n * @type {string}\n */\n this.label = \"\";\n\n /**\n * The value used to identify the input in forms.\n *\n * @attribute\n * @type {string}\n */\n this.value = \"\";\n\n /**\n * The placeholder text for the input.\n *\n * @attribute\n * @type {string}\n */\n this.placeholder = \"\";\n\n /**\n * The type of the input\n *\n * @attribute\n * @type {\"text\" | \"email\" | \"password\" | \"tel\" | \"url\" | \"search\" | \"number\" | \"unit\" | \"button\"}\n */\n this.type = \"text\";\n\n /**\n * The error to display\n *\n * @attribute\n * @type {string}\n */\n this.error = \"\";\n }\n\n /**\n * Renders the template.\n *\n * @internal\n */\n render() {\n this.template`\n <label for=\"input\">${this.label}</label>\n <div class=\"elena-input-container\">\n <span class=\"elena-input-start\"></span>\n <input\n id=\"input\"\n class=\"elena-input\"\n />\n <span class=\"elena-input-end\"></span>\n </div>\n ${this.error ? html`<div class=\"elena-error\" role=\"alert\">${this.error}</div>` : \"\"}\n `;\n }\n}\n\n/**\n * Register the web component\n */\nInput.define();\n","import { Elena } from \"@elenajs/core\";\n\nconst options = {\n element: \".elena-stack\",\n};\n\n/**\n * Stack component manages layout of immediate children\n * with optional spacing between each child.\n *\n * @displayName Stack\n * @status alpha\n */\nexport default class Stack extends Elena(HTMLElement, options) {\n constructor() {\n super();\n }\n}\n\n/**\n * Register the web component\n */\nStack.define();\n"],"names":["t","e","n","JSON","stringify","parse","removeAttribute","setAttribute","console","warn","e$2","Event","constructor","s","super","bubbles","composed","String","replace","o","reduce","i","__raw","toString","r","l","_tplStrings","_tplParts","length","a","c","_tplValues","textContent","map","trim","replaceChildren","ownerDocument","createRange","createContextualFragment","Array","document","createTreeWalker","NodeFilter","SHOW_TEXT","nextNode","element","test","getElementsByClassName","querySelector","firstElementChild","m","attributeChangedCallback","this","_isRendering","render","observedAttributes","props","template","h","connectedCallback","_props","_events","events","forEach","addEventListener","updated","_hydrated","classList","add","disconnectedCallback","removeEventListener","handleEvent","includes","type","stopPropagation","dispatchEvent","cancelable","Object","defineProperty","configurable","enumerable","get","set","Map","isConnected","prototype","tagName","_tagName","define","window","customElements","options","Button","Elena","HTMLElement","variant","size","disabled","name","value","slottedContent","Input","label","placeholder","error","html","Stack"],"mappings":"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"}
package/dist/button.js CHANGED
@@ -1,2 +1,2 @@
1
- import{l as t,n as e}from"./elena-CDjBzzhm.js";const s={props:["variant","size","disabled","name","value","type"],events:["click","focus","blur"],element:".elena-button"};class a extends(t(HTMLElement,s)){constructor(){super(),this.variant="default",this.size="md",this.disabled=!1,this.name="",this.value="",this.type="button"}render(){const t=this.textContent.trim();this.template`<button class="elena-button" type="${this.type||"button"}" ${this.name?`name="${this.name}"`:""} ${this.value?`value="${this.value}"`:""} ${this.disabled?"disabled":""}>${t}</button>`}}e("elena-button",a);export{a as default};
1
+ import{l as t}from"./elena-BHyrmnQE.js";const e={tagName:"elena-button",props:["variant","size","disabled","name","value","type"],events:["click","focus","blur"],element:".elena-button"};class s extends(t(HTMLElement,e)){constructor(){super(),this.variant="default",this.size="md",this.disabled=!1,this.name="",this.value="",this.type="button"}render(){const t=this.textContent.trim();this.template`<button class="elena-button">${t}</button>`}}s.define();export{s as default};
2
2
  //# sourceMappingURL=button.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"button.js","sources":["../src/button/button.js"],"sourcesContent":["import { Elena, defineElement } from \"@elenajs/core\";\n\nconst options = {\n props: [\"variant\", \"size\", \"disabled\", \"name\", \"value\", \"type\"],\n events: [\"click\", \"focus\", \"blur\"],\n element: \".elena-button\",\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-color-text] - Controls the color of the text.\n * @cssprop [--elena-button-color-bg] - Controls the color of the background.\n * @cssprop [--elena-button-color-border] - Controls the color of the border.\n * @cssprop [--elena-button-radius] - Controls the radius of the component.\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 * The size of the button.\n *\n * @attribute\n * @type {\"sm\" | \"md\" | \"lg\"}\n */\n this.size = \"md\";\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 custom element template.\n *\n * @internal\n */\n render() {\n const slottedContent = this.textContent.trim();\n\n this.template`\n <button\n class=\"elena-button\"\n type=\"${this.type || \"button\"}\"\n ${this.name ? `name=\"${this.name}\"` : \"\"}\n ${this.value ? `value=\"${this.value}\"` : \"\"}\n ${this.disabled ? \"disabled\" : \"\"}>\n ${slottedContent}\n </button>\n `;\n }\n}\n\n/**\n * Register the custom element\n */\ndefineElement(\"elena-button\", Button);\n"],"names":["options","props","events","element","Button","Elena","HTMLElement","constructor","super","this","variant","size","disabled","name","value","type","render","slottedContent","textContent","trim","template","defineElement"],"mappings":"+CAEA,MAAMA,EAAU,CACdC,MAAO,CAAC,UAAW,OAAQ,WAAY,OAAQ,QAAS,QACxDC,OAAQ,CAAC,QAAS,QAAS,QAC3BC,QAAS,iBAkBI,MAAMC,UAAeC,EAAMC,YAAaN,IACrD,WAAAO,GACEC,QAQAC,KAAKC,QAAU,UAQfD,KAAKE,KAAO,KAQZF,KAAKG,UAAW,EAQhBH,KAAKI,KAAO,GAQZJ,KAAKK,MAAQ,GAQbL,KAAKM,KAAO,QACd,CAOA,MAAAC,GACE,MAAMC,EAAiBR,KAAKS,YAAYC,OAExCV,KAAKW,QAAQ,sCAGDX,KAAKM,MAAQ,aACnBN,KAAKI,KAAO,SAASJ,KAAKI,QAAU,MACpCJ,KAAKK,MAAQ,UAAUL,KAAKK,SAAW,MACvCL,KAAKG,SAAW,WAAa,MAC3BK,YAGV,EAMFI,EAAc,eAAgBjB"}
1
+ {"version":3,"file":"button.js","sources":["../src/button/button.js"],"sourcesContent":["import { Elena } from \"@elenajs/core\";\n\nconst options = {\n tagName: \"elena-button\",\n props: [\"variant\", \"size\", \"disabled\", \"name\", \"value\", \"type\"],\n events: [\"click\", \"focus\", \"blur\"],\n element: \".elena-button\",\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-color-text] - Controls the color of the text.\n * @cssprop [--elena-button-color-bg] - Controls the color of the background.\n * @cssprop [--elena-button-color-border] - Controls the color of the border.\n * @cssprop [--elena-button-radius] - Controls the radius of the component.\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 * The size of the button.\n *\n * @attribute\n * @type {\"sm\" | \"md\" | \"lg\"}\n */\n this.size = \"md\";\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 const slottedContent = this.textContent.trim();\n\n this.template`\n <button class=\"elena-button\">\n ${slottedContent}\n </button>\n `;\n }\n}\n\n/**\n * Register the web component\n */\nButton.define();\n"],"names":["options","tagName","props","events","element","Button","Elena","HTMLElement","constructor","super","this","variant","size","disabled","name","value","type","render","slottedContent","textContent","trim","template","define"],"mappings":"wCAEA,MAAMA,EAAU,CACdC,QAAS,eACTC,MAAO,CAAC,UAAW,OAAQ,WAAY,OAAQ,QAAS,QACxDC,OAAQ,CAAC,QAAS,QAAS,QAC3BC,QAAS,iBAkBI,MAAMC,UAAeC,EAAMC,YAAaP,IACrD,WAAAQ,GACEC,QAQAC,KAAKC,QAAU,UAQfD,KAAKE,KAAO,KAQZF,KAAKG,UAAW,EAQhBH,KAAKI,KAAO,GAQZJ,KAAKK,MAAQ,GAQbL,KAAKM,KAAO,QACd,CAOA,MAAAC,GACE,MAAMC,EAAiBR,KAAKS,YAAYC,OAExCV,KAAKW,QAAQ,gCAEPH,YAGR,EAMFb,EAAOiB"}
@@ -153,5 +153,5 @@ export type CustomElements = {
153
153
  * ---
154
154
  *
155
155
  */
156
- "elena-stack": Partial<StackProps & BaseProps & BaseEvents>;
156
+ "elena-input": Partial<StackProps & BaseProps & BaseEvents>;
157
157
  };
@@ -200,9 +200,9 @@
200
200
  "superclass": {
201
201
  "name": "HTMLElement"
202
202
  },
203
+ "tagName": "elena-button",
203
204
  "status": "alpha",
204
205
  "displayName": "Button",
205
- "tagName": "elena-button",
206
206
  "customElement": true
207
207
  }
208
208
  ],
@@ -430,9 +430,9 @@
430
430
  "superclass": {
431
431
  "name": "HTMLElement"
432
432
  },
433
+ "tagName": "elena-input",
433
434
  "status": "alpha",
434
435
  "displayName": "Input",
435
- "tagName": "elena-input",
436
436
  "customElement": true
437
437
  }
438
438
  ],
@@ -472,9 +472,9 @@
472
472
  "superclass": {
473
473
  "name": "HTMLElement"
474
474
  },
475
+ "tagName": "elena-input",
475
476
  "status": "alpha",
476
477
  "displayName": "Stack",
477
- "tagName": "elena-stack",
478
478
  "customElement": true
479
479
  }
480
480
  ],
@@ -489,7 +489,7 @@
489
489
  },
490
490
  {
491
491
  "kind": "custom-element-definition",
492
- "name": "elena-stack",
492
+ "name": "elena-input",
493
493
  "declaration": {
494
494
  "name": "Stack",
495
495
  "module": "src/stack/stack.js"
@@ -0,0 +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":return t&&JSON.parse(t);case"boolean":default:return t;case"number":return null!==t?+t: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)=>e+n+s(String(t[r]??"")),"");return{__raw:!0,toString:()=>n}}function i(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],l=i&&i.__raw,o=l?String(i):s(String(i??""));if(o!==e._tplValues[t])if(e._tplValues[t]=o,l)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??""))),i=t.reduce((e,t,n)=>e+t.replace(/\n\s*/g," ")+(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,i),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 l=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 o extends s{element=null;attributeChangedCallback(t,n,s){(function(t,n,s,r){if(s!==r){const s=e(typeof t[n],r,"toProp");t[n]=s}})(this,t,n,s),this.element&&n!==s&&!this._isRendering&&(this._isRendering=!0,this.render(),this._isRendering=!1)}static get observedAttributes(){return r&&r.props?r.props:[]}render(){}template(e,...t){i(this,e,t)}connectedCallback(){if(this.render(),this.element||(this.element=l(this),this.element||(console.warn("░█ [ELENA]: No element found, using firstElementChild as fallback."),this.element=this.firstElementChild)),this._props)for(const[n,s]of this._props){const r=e(typeof s,s,"toAttribute");t(this,n,r),t(this.element,n,r)}!this._events&&r&&r.events&&(this._events=!0,r.events?.forEach(e=>{this.element.addEventListener(e,this),this[e]=(...t)=>this.element[e](...t)})),this.updated()}updated(){this._hydrated||(this._hydrated=!0,this.classList.add("elena-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})))}}return r&&r.props?.length&&function(n,s){for(const r of s)Object.defineProperty(n,r,{configurable:!0,enumerable:!0,get(){return this._props?this._props.get(r):void 0},set(n){if(this._props||(this._props=new Map),n===this._props.get(r))return;if(this._props.set(r,n),!this.isConnected)return;const s=e(typeof n,n,"toAttribute");t(this,r,s),this.element&&t(this.element,r,s)}})}(o.prototype,r.props),r&&r.tagName&&(o._tagName=r.tagName),o.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)},o}export{r as e,l};
2
+ //# sourceMappingURL=elena-BHyrmnQE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elena-BHyrmnQE.js","sources":["../../core/dist/props.js","../../core/dist/events.js","../../core/dist/utils.js","../../core/dist/render.js","../../core/dist/elena.js"],"sourcesContent":["function t(t,e,n){if(e=\"boolean\"===t&&\"boolean\"!=typeof e?null!==e:e,!n)return e;if(\"toAttribute\"===n)switch(t){case\"object\":case\"array\":return null===e?null:JSON.stringify(e);case\"boolean\":return e?\"\":null;case\"number\":return null===e?null:e;default:return\"\"===e?null:e}else switch(t){case\"object\":case\"array\":return e&&JSON.parse(e);case\"boolean\":default:return e;case\"number\":return null!==e?+e:e}}function e(t,e,n){t?null===n?t.removeAttribute(e):t.setAttribute(e,n):console.warn(\"░█ [ELENA]: Cannot sync attributes to a null element.\")}function n(n,r){for(const o of r)Object.defineProperty(n,o,{configurable:!0,enumerable:!0,get(){return this._props?this._props.get(o):void 0},set(n){if(this._props||(this._props=new Map),n===this._props.get(o))return;if(this._props.set(o,n),!this.isConnected)return;const r=t(typeof n,n,\"toAttribute\");e(this,o,r),this.element&&e(this.element,o,r)}})}function r(e,n,r,o){if(r!==o){const r=t(typeof e[n],o,\"toProp\");e[n]=r}}export{t as getPropValue,r as getProps,n as setProps,e 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,i)=>n+o+t(String(e[i]??\"\")),\"\");return{__raw:!0,toString:()=>o}}export{n as defineElement,t as escapeHtml,e as html};\n//# sourceMappingURL=utils.js.map\n","import{escapeHtml as t}from\"./utils.js\";function e(e,r,l){(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})(e,r,l)||function(e,r,l){const o=l.map(e=>e&&e.__raw?String(e):t(String(e??\"\"))),a=r.reduce((t,e,n)=>t+e.replace(/\\n\\s*/g,\" \")+(o[n]??\"\"),\"\").replace(/>\\s+</g,\"><\").replace(/>\\s+/g,\">\").replace(/\\s+</g,\"<\").trim();n(e,a),e._tplStrings=r,e._tplValues=o,e._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}(e,o)}(e,r,l)}function n(t,e){t?t.replaceChildren(t.ownerDocument.createRange().createContextualFragment(e)):console.warn(\"░█ [ELENA]: Cannot render to a null element.\")}export{n as renderHtml,e 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}from\"./utils.js\";import{renderTemplate as h}from\"./render.js\";function l(l,a){const o=a&&a.element?/^[a-z][a-z0-9-]*$/i.test(a.element)?e=>e.getElementsByClassName(a.element)[0]:e=>e.querySelector(a.element):e=>e.firstElementChild;class m extends l{element=null;attributeChangedCallback(e,s,n){t(this,e,s,n),this.element&&s!==n&&!this._isRendering&&(this._isRendering=!0,this.render(),this._isRendering=!1)}static get observedAttributes(){return a&&a.props?a.props:[]}render(){}template(e,...t){h(this,e,t)}connectedCallback(){if(this.render(),this.element||(this.element=o(this),this.element||(console.warn(\"░█ [ELENA]: No element found, using firstElementChild as fallback.\"),this.element=this.firstElementChild)),this._props)for(const[e,t]of this._props){const i=s(typeof t,t,\"toAttribute\");n(this,e,i),n(this.element,e,i)}!this._events&&a&&a.events&&(this._events=!0,a.events?.forEach(e=>{this.element.addEventListener(e,this),this[e]=(...t)=>this.element[e](...t)})),this.updated()}updated(){this._hydrated||(this._hydrated=!0,this.classList.add(\"elena-hydrated\"))}disconnectedCallback(){this._events&&(this._events=!1,a.events?.forEach(e=>{this.element?.removeEventListener(e,this)}))}handleEvent(e){a.events?.includes(e.type)&&(e.stopPropagation(),this.dispatchEvent(new i(e.type,{cancelable:!0})))}}return a&&a.props?.length&&e(m.prototype,a.props),a&&a.tagName&&(m._tagName=a.tagName),m.define=function(){this._tagName&&r(this._tagName,this)},m}export{l as Elena};\n//# sourceMappingURL=elena.js.map\n"],"names":["t","e","n","JSON","stringify","parse","removeAttribute","setAttribute","console","warn","e$2","Event","constructor","s","super","bubbles","composed","String","replace","o","reduce","i","__raw","toString","r","l","_tplStrings","_tplParts","length","a","c","_tplValues","textContent","map","trim","replaceChildren","ownerDocument","createRange","createContextualFragment","Array","document","createTreeWalker","NodeFilter","SHOW_TEXT","nextNode","element","test","getElementsByClassName","querySelector","firstElementChild","m","attributeChangedCallback","this","_isRendering","render","observedAttributes","props","template","h","connectedCallback","_props","_events","events","forEach","addEventListener","updated","_hydrated","classList","add","disconnectedCallback","removeEventListener","handleEvent","includes","type","stopPropagation","dispatchEvent","cancelable","Object","defineProperty","configurable","enumerable","get","set","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 Input}from"./input.js";export{default as Stack}from"./stack.js";import"./elena-CDjBzzhm.js";
1
+ export{default as Button}from"./button.js";export{default as Input}from"./input.js";export{default as Stack}from"./stack.js";import"./elena-BHyrmnQE.js";
2
2
  //# sourceMappingURL=index.js.map
package/dist/input.js CHANGED
@@ -1,2 +1,2 @@
1
- import{l as e,e as s,n as l}from"./elena-CDjBzzhm.js";const t={props:["size","disabled","name","value","type","label","error","placeholder"],events:["click","focus","blur"],element:".elena-input"};class a extends(e(HTMLElement,t)){constructor(){super(),this.size="md",this.disabled=!1,this.name="",this.label="",this.value="",this.placeholder="",this.type="text",this.error=""}render(){this.template`<label for="input">${this.label}</label><div class="elena-input-container"><span class="elena-input-start"></span> <input id="input" class="elena-input" type="${this.type}" value="${this.value}" placeholder="${this.placeholder}" ${this.name?`name="${this.name}"`:""} ${this.value?`value="${this.value}"`:""} ${this.disabled?"disabled":""}> <span class="elena-input-end"></span></div>${this.error?s`<div class="elena-error" role="alert">${this.error}</div>`:""}`}}l("elena-input",a);export{a as default};
1
+ import{l as e,e as s}from"./elena-BHyrmnQE.js";const t={tagName:"elena-input",props:["size","disabled","name","value","type","label","error","placeholder"],events:["click","focus","blur"],element:".elena-input"};class l extends(e(HTMLElement,t)){constructor(){super(),this.size="md",this.disabled=!1,this.name="",this.label="",this.value="",this.placeholder="",this.type="text",this.error=""}render(){this.template`<label for="input">${this.label}</label><div class="elena-input-container"><span class="elena-input-start"></span> <input id="input" class="elena-input"> <span class="elena-input-end"></span></div>${this.error?s`<div class="elena-error" role="alert">${this.error}</div>`:""}`}}l.define();export{l as default};
2
2
  //# sourceMappingURL=input.js.map
package/dist/input.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"input.js","sources":["../src/input/input.js"],"sourcesContent":["import { Elena, defineElement, html } from \"@elenajs/core\";\n\nconst options = {\n props: [\"size\", \"disabled\", \"name\", \"value\", \"type\", \"label\", \"error\", \"placeholder\"],\n events: [\"click\", \"focus\", \"blur\"],\n element: \".elena-input\",\n};\n\n/**\n * The description of the component goes here.\n *\n * @displayName Input\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-input-color-text] - Controls the color of the text.\n * @cssprop [--elena-input-color-bg] - Controls the color of the background.\n * @cssprop [--elena-input-color-border] - Controls the color of the border.\n * @cssprop [--elena-input-radius] - Controls the radius of the component.\n */\nexport default class Input extends Elena(HTMLElement, options) {\n constructor() {\n super();\n\n /**\n * The size of the input.\n *\n * @attribute\n * @type {\"sm\" | \"md\" | \"lg\"}\n */\n this.size = \"md\";\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 input in forms.\n *\n * @attribute\n * @type {string}\n */\n this.name = \"\";\n\n /**\n * The label for the input\n *\n * @attribute\n * @type {string}\n */\n this.label = \"\";\n\n /**\n * The value used to identify the input in forms.\n *\n * @attribute\n * @type {string}\n */\n this.value = \"\";\n\n /**\n * The placeholder text for the input.\n *\n * @attribute\n * @type {string}\n */\n this.placeholder = \"\";\n\n /**\n * The type of the input\n *\n * @attribute\n * @type {\"text\" | \"email\" | \"password\" | \"tel\" | \"url\" | \"search\" | \"number\" | \"unit\" | \"button\"}\n */\n this.type = \"text\";\n\n /**\n * The error to display\n *\n * @attribute\n * @type {string}\n */\n this.error = \"\";\n }\n\n /**\n * Renders the custom element template.\n *\n * @internal\n */\n render() {\n this.template`\n <label for=\"input\">${this.label}</label>\n <div class=\"elena-input-container\">\n <span class=\"elena-input-start\"></span>\n <input\n id=\"input\"\n class=\"elena-input\"\n type=\"${this.type}\"\n value=\"${this.value}\"\n placeholder=\"${this.placeholder}\"\n ${this.name ? `name=\"${this.name}\"` : \"\"}\n ${this.value ? `value=\"${this.value}\"` : \"\"}\n ${this.disabled ? \"disabled\" : \"\"}\n />\n <span class=\"elena-input-end\"></span>\n </div>\n ${this.error ? html`<div class=\"elena-error\" role=\"alert\">${this.error}</div>` : \"\"}\n `;\n }\n}\n\n/**\n * Register the custom element\n */\ndefineElement(\"elena-input\", Input);\n"],"names":["options","props","events","element","Input","Elena","HTMLElement","constructor","super","this","size","disabled","name","label","value","placeholder","type","error","render","template","html","defineElement"],"mappings":"sDAEA,MAAMA,EAAU,CACdC,MAAO,CAAC,OAAQ,WAAY,OAAQ,QAAS,OAAQ,QAAS,QAAS,eACvEC,OAAQ,CAAC,QAAS,QAAS,QAC3BC,QAAS,gBAkBI,MAAMC,UAAcC,EAAMC,YAAaN,IACpD,WAAAO,GACEC,QAQAC,KAAKC,KAAO,KAQZD,KAAKE,UAAW,EAQhBF,KAAKG,KAAO,GAQZH,KAAKI,MAAQ,GAQbJ,KAAKK,MAAQ,GAQbL,KAAKM,YAAc,GAQnBN,KAAKO,KAAO,OAQZP,KAAKQ,MAAQ,EACf,CAOA,MAAAC,GACET,KAAKU,QAAQ,sBACYV,KAAKI,uIAMVJ,KAAKO,gBACJP,KAAKK,uBACCL,KAAKM,gBAClBN,KAAKG,KAAO,SAASH,KAAKG,QAAU,MACpCH,KAAKK,MAAQ,UAAUL,KAAKK,SAAW,MACvCL,KAAKE,SAAW,WAAa,kDAIrCF,KAAKQ,MAAQG,CAAI,yCAAyCX,KAAKQ,cAAgB,IAEvF,EAMFI,EAAc,cAAejB"}
1
+ {"version":3,"file":"input.js","sources":["../src/input/input.js"],"sourcesContent":["import { Elena, html } from \"@elenajs/core\";\n\nconst options = {\n tagName: \"elena-input\",\n props: [\"size\", \"disabled\", \"name\", \"value\", \"type\", \"label\", \"error\", \"placeholder\"],\n events: [\"click\", \"focus\", \"blur\"],\n element: \".elena-input\",\n};\n\n/**\n * The description of the component goes here.\n *\n * @displayName Input\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-input-color-text] - Controls the color of the text.\n * @cssprop [--elena-input-color-bg] - Controls the color of the background.\n * @cssprop [--elena-input-color-border] - Controls the color of the border.\n * @cssprop [--elena-input-radius] - Controls the radius of the component.\n */\nexport default class Input extends Elena(HTMLElement, options) {\n constructor() {\n super();\n\n /**\n * The size of the input.\n *\n * @attribute\n * @type {\"sm\" | \"md\" | \"lg\"}\n */\n this.size = \"md\";\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 input in forms.\n *\n * @attribute\n * @type {string}\n */\n this.name = \"\";\n\n /**\n * The label for the input\n *\n * @attribute\n * @type {string}\n */\n this.label = \"\";\n\n /**\n * The value used to identify the input in forms.\n *\n * @attribute\n * @type {string}\n */\n this.value = \"\";\n\n /**\n * The placeholder text for the input.\n *\n * @attribute\n * @type {string}\n */\n this.placeholder = \"\";\n\n /**\n * The type of the input\n *\n * @attribute\n * @type {\"text\" | \"email\" | \"password\" | \"tel\" | \"url\" | \"search\" | \"number\" | \"unit\" | \"button\"}\n */\n this.type = \"text\";\n\n /**\n * The error to display\n *\n * @attribute\n * @type {string}\n */\n this.error = \"\";\n }\n\n /**\n * Renders the template.\n *\n * @internal\n */\n render() {\n this.template`\n <label for=\"input\">${this.label}</label>\n <div class=\"elena-input-container\">\n <span class=\"elena-input-start\"></span>\n <input\n id=\"input\"\n class=\"elena-input\"\n />\n <span class=\"elena-input-end\"></span>\n </div>\n ${this.error ? html`<div class=\"elena-error\" role=\"alert\">${this.error}</div>` : \"\"}\n `;\n }\n}\n\n/**\n * Register the web component\n */\nInput.define();\n"],"names":["options","tagName","props","events","element","Input","Elena","HTMLElement","constructor","super","this","size","disabled","name","label","value","placeholder","type","error","render","template","html","define"],"mappings":"+CAEA,MAAMA,EAAU,CACdC,QAAS,cACTC,MAAO,CAAC,OAAQ,WAAY,OAAQ,QAAS,OAAQ,QAAS,QAAS,eACvEC,OAAQ,CAAC,QAAS,QAAS,QAC3BC,QAAS,gBAkBI,MAAMC,UAAcC,EAAMC,YAAaP,IACpD,WAAAQ,GACEC,QAQAC,KAAKC,KAAO,KAQZD,KAAKE,UAAW,EAQhBF,KAAKG,KAAO,GAQZH,KAAKI,MAAQ,GAQbJ,KAAKK,MAAQ,GAQbL,KAAKM,YAAc,GAQnBN,KAAKO,KAAO,OAQZP,KAAKQ,MAAQ,EACf,CAOA,MAAAC,GACET,KAAKU,QAAQ,sBACUV,KAAKI,6KASxBJ,KAAKQ,MAAQG,CAAI,yCAAyCX,KAAKQ,cAAgB,IAErF,EAMFb,EAAMiB"}
package/dist/stack.js CHANGED
@@ -1,2 +1,2 @@
1
- import{l as e,n as s}from"./elena-CDjBzzhm.js";class t extends(e(HTMLElement)){constructor(){super()}}s("elena-stack",t);export{t as default};
1
+ import{l as e}from"./elena-BHyrmnQE.js";const t={element:".elena-stack"};class s extends(e(HTMLElement,t)){constructor(){super()}}s.define();export{s as default};
2
2
  //# sourceMappingURL=stack.js.map
package/dist/stack.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"stack.js","sources":["../src/stack/stack.js"],"sourcesContent":["import { Elena, defineElement } from \"@elenajs/core\";\n\n/**\n * Stack component manages layout of immediate children\n * with optional spacing between each child.\n *\n * @displayName Stack\n * @status alpha\n */\nexport default class Stack extends Elena(HTMLElement) {\n constructor() {\n super();\n }\n}\n\n/**\n * Register the custom element\n */\ndefineElement(\"elena-stack\", Stack);\n"],"names":["Stack","Elena","HTMLElement","constructor","super","defineElement"],"mappings":"+CASe,MAAMA,UAAcC,EAAMC,cACvC,WAAAC,GACEC,OACF,EAMFC,EAAc,cAAeL"}
1
+ {"version":3,"file":"stack.js","sources":["../src/stack/stack.js"],"sourcesContent":["import { Elena } from \"@elenajs/core\";\n\nconst options = {\n element: \".elena-stack\",\n};\n\n/**\n * Stack component manages layout of immediate children\n * with optional spacing between each child.\n *\n * @displayName Stack\n * @status alpha\n */\nexport default class Stack extends Elena(HTMLElement, options) {\n constructor() {\n super();\n }\n}\n\n/**\n * Register the web component\n */\nStack.define();\n"],"names":["options","element","Stack","Elena","HTMLElement","constructor","super","define"],"mappings":"wCAEA,MAAMA,EAAU,CACdC,QAAS,gBAUI,MAAMC,UAAcC,EAAMC,YAAaJ,IACpD,WAAAK,GACEC,OACF,EAMFJ,EAAMK"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@elenajs/elements",
3
- "version": "0.0.7",
4
- "description": "An example Elena custom element library",
3
+ "version": "0.0.9",
4
+ "description": "An example Elena web component library",
5
5
  "author": "Ariel Salminen <info@arielsalminen.com>",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/custom-elements.d.ts",
@@ -33,7 +33,7 @@
33
33
  "analyze": "custom-elements-manifest analyze --config './elena.config.js'"
34
34
  },
35
35
  "dependencies": {
36
- "@elenajs/core": "^0.0.4"
36
+ "@elenajs/core": "^0.0.6"
37
37
  },
38
38
  "devDependencies": {
39
39
  "@custom-elements-manifest/analyzer": "0.11.0",
@@ -46,5 +46,5 @@
46
46
  "rollup-plugin-minify-html-literals-v3": "^1.3.4",
47
47
  "rollup-plugin-summary": "3.0.1"
48
48
  },
49
- "gitHead": "1128441ee6620bec259f704ef351e64c1344d514"
49
+ "gitHead": "47146e9cea855590955e782d0acf56abf05bb474"
50
50
  }
@@ -1,2 +0,0 @@
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":return t&&JSON.parse(t);case"boolean":default:return t;case"number":return null!==t?+t: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,s=class extends Event{constructor(e,t){super(e,{bubbles:!0,composed:!0,...t})}};function r(e,t){"undefined"!=typeof window&&"customElements"in window&&(window.customElements.get(e)||window.customElements.define(e,t))}function l(e){const t={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};return String(e).replace(/[&<>"']/g,e=>t[e])}function i(e,...t){const n=e.reduce((e,n,s)=>e+n+l(String(t[s]??"")),"");return{__raw:!0,toString:()=>n}}function o(e,t,n){(function(e,t,n){if(e._tplStrings!==t||!e._tplParts)return!1;let s=!1;for(let t=0;t<n.length;t++){const r=n[t],i=r&&r.__raw,o=i?String(r):l(String(r??""));if(o!==e._tplValues[t])if(e._tplValues[t]=o,i)s=!0;else{const n=e._tplParts[t];n?n.textContent=String(r??""):s=!0}}return!s})(e,t,n)||function(e,t,n){const s=n.map(e=>e&&e.__raw?String(e):l(String(e??""))),r=t.reduce((e,t,n)=>e+t.replace(/\n\s*/g," ")+(s[n]??""),"").replace(/>\s+</g,"><").replace(/>\s+/g,">").replace(/\s+</g,"<").trim();a(e,r),e._tplStrings=t,e._tplValues=s,e._tplParts=function(e,t){const n=new Array(t.length),s=document.createTreeWalker(e,NodeFilter.SHOW_TEXT);let r,l=0;for(;(r=s.nextNode())&&l<t.length;)r.textContent===t[l]&&(n[l]=r,l++);return n}(e,s)}(e,t,n)}function a(e,t){e?e.replaceChildren((n??=document.createRange()).createContextualFragment(t)):console.warn("░█ [ELENA]: Cannot render to a null element.")}function c(n,r){const l=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 i extends n{element=null;attributeChangedCallback(t,n,s){(function(t,n,s,r){if(s!==r){const s=e(typeof t[n],r,"toProp");t[n]=s}})(this,t,n,s),this.element&&n!==s&&this.render()}static get observedAttributes(){return r&&r.props?r.props:[]}render(){}template(e,...t){o(this,e,t)}connectedCallback(){if(this.render(),this.element||(this.element=l(this),this.element||(console.warn("░█ [ELENA]: No element found, using firstElementChild as fallback."),this.element=this.firstElementChild)),this._props)for(const[n,s]of this._props){const r=e(typeof s,s,"toAttribute");t(this,n,r),t(this.element,n,r)}!this._events&&r&&r.events&&(this._events=!0,r.events?.forEach(e=>{this.element.addEventListener(e,this),this[e]=(...t)=>this.element[e](...t)})),this.updated()}updated(){this._hydrated||(this._hydrated=!0,this.classList.add("elena-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 s(e.type,{cancelable:!0})))}}return r&&r.props?.length&&function(n,s){for(const r of s)Object.defineProperty(n,r,{configurable:!0,enumerable:!0,get(){return this._props?this._props.get(r):void 0},set(n){if(this._props||(this._props=new Map),n===this._props.get(r))return;if(this._props.set(r,n),!this.isConnected)return;const s=e(typeof n,n,"toAttribute");t(this,r,s),this.element&&t(this.element,r,s)}})}(i.prototype,r.props),i}export{i as e,c as l,r as n};
2
- //# sourceMappingURL=elena-CDjBzzhm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"elena-CDjBzzhm.js","sources":["../../core/dist/props.js","../../core/dist/events.js","../../core/dist/render.js","../../core/dist/utils.js","../../core/dist/elena.js"],"sourcesContent":["function t(t,e,n){if(e=\"boolean\"===t&&\"boolean\"!=typeof e?null!==e:e,!n)return e;if(\"toAttribute\"===n)switch(t){case\"object\":case\"array\":return null===e?null:JSON.stringify(e);case\"boolean\":return e?\"\":null;case\"number\":return null===e?null:e;default:return\"\"===e?null:e}else switch(t){case\"object\":case\"array\":return e&&JSON.parse(e);case\"boolean\":default:return e;case\"number\":return null!==e?+e:e}}function e(t,e,n){t?null===n?t.removeAttribute(e):t.setAttribute(e,n):console.warn(\"░█ [ELENA]: Cannot sync attributes to a null element.\")}function n(n,r){for(const o of r)Object.defineProperty(n,o,{configurable:!0,enumerable:!0,get(){return this._props?this._props.get(o):void 0},set(n){if(this._props||(this._props=new Map),n===this._props.get(o))return;if(this._props.set(o,n),!this.isConnected)return;const r=t(typeof n,n,\"toAttribute\");e(this,o,r),this.element&&e(this.element,o,r)}})}function r(e,n,r,o){if(r!==o){const r=t(typeof e[n],o,\"toProp\");e[n]=r}}export{t as getPropValue,r as getProps,n as setProps,e 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","import{escapeHtml as t}from\"./utils.js\";function e(e,n,l){(function(e,n,r){if(e._tplStrings!==n||!e._tplParts)return!1;let l=!1;for(let n=0;n<r.length;n++){const a=r[n],o=a&&a.__raw,c=o?String(a):t(String(a??\"\"));if(c!==e._tplValues[n])if(e._tplValues[n]=c,o)l=!0;else{const t=e._tplParts[n];t?t.textContent=String(a??\"\"):l=!0}}return!l})(e,n,l)||function(e,n,l){const a=l.map(e=>e&&e.__raw?String(e):t(String(e??\"\"))),o=n.reduce((t,e,n)=>t+e.replace(/\\n\\s*/g,\" \")+(a[n]??\"\"),\"\").replace(/>\\s+</g,\"><\").replace(/>\\s+/g,\">\").replace(/\\s+</g,\"<\").trim();r(e,o),e._tplStrings=n,e._tplValues=a,e._tplParts=function(t,e){const n=new Array(e.length),r=document.createTreeWalker(t,NodeFilter.SHOW_TEXT);let l,a=0;for(;(l=r.nextNode())&&a<e.length;)l.textContent===e[a]&&(n[a]=l,a++);return n}(e,a)}(e,n,l)}let n;function r(t,e){t?t.replaceChildren((n??=document.createRange()).createContextualFragment(e)):console.warn(\"░█ [ELENA]: Cannot render to a null element.\")}export{r as renderHtml,e as renderTemplate};\n//# sourceMappingURL=render.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,i)=>n+o+t(String(e[i]??\"\")),\"\");return{__raw:!0,toString:()=>o}}export{n as defineElement,t as escapeHtml,e as html};\n//# sourceMappingURL=utils.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\";export{defineElement,html}from\"./utils.js\";import{renderTemplate as r}from\"./render.js\";function l(l,h){const o=h&&h.element?/^[a-z][a-z0-9-]*$/i.test(h.element)?e=>e.getElementsByClassName(h.element)[0]:e=>e.querySelector(h.element):e=>e.firstElementChild;class a extends l{element=null;attributeChangedCallback(e,s,n){t(this,e,s,n),this.element&&s!==n&&this.render()}static get observedAttributes(){return h&&h.props?h.props:[]}render(){}template(e,...t){r(this,e,t)}connectedCallback(){if(this.render(),this.element||(this.element=o(this),this.element||(console.warn(\"░█ [ELENA]: No element found, using firstElementChild as fallback.\"),this.element=this.firstElementChild)),this._props)for(const[e,t]of this._props){const i=s(typeof t,t,\"toAttribute\");n(this,e,i),n(this.element,e,i)}!this._events&&h&&h.events&&(this._events=!0,h.events?.forEach(e=>{this.element.addEventListener(e,this),this[e]=(...t)=>this.element[e](...t)})),this.updated()}updated(){this._hydrated||(this._hydrated=!0,this.classList.add(\"elena-hydrated\"))}disconnectedCallback(){this._events&&(this._events=!1,h.events?.forEach(e=>{this.element?.removeEventListener(e,this)}))}handleEvent(e){h.events?.includes(e.type)&&(e.stopPropagation(),this.dispatchEvent(new i(e.type,{cancelable:!0})))}}return h&&h.props?.length&&e(a.prototype,h.props),a}export{l as Elena};\n//# sourceMappingURL=elena.js.map\n"],"names":["t","e","n","JSON","stringify","parse","removeAttribute","setAttribute","console","warn","e$2","Event","constructor","s","super","bubbles","composed","window","customElements","get","define","String","replace","o","reduce","i","__raw","toString","l","r","_tplStrings","_tplParts","length","a","c","_tplValues","textContent","map","trim","Array","document","createTreeWalker","NodeFilter","SHOW_TEXT","nextNode","replaceChildren","createRange","createContextualFragment","h","element","test","getElementsByClassName","querySelector","firstElementChild","attributeChangedCallback","this","render","observedAttributes","props","template","connectedCallback","_props","_events","events","forEach","addEventListener","updated","_hydrated","classList","add","disconnectedCallback","removeEventListener","handleEvent","includes","type","stopPropagation","dispatchEvent","cancelable","Object","defineProperty","configurable","enumerable","set","Map","isConnected","prototype"],"mappings":"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"}