@3r1s_s/erisui 1.0.11 → 1.0.13
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/erisui.js +43 -27
- package/dist/erisui.mjs +228 -198
- package/package.json +1 -1
package/dist/erisui.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(function(h,g){typeof exports=="object"&&typeof module<"u"?g(exports):typeof define=="function"&&define.amd?define(["exports"],g):(h=typeof globalThis<"u"?globalThis:h||self,g(h.eui={}))})(this,(function(h){"use strict";var G=Object.defineProperty;var Q=(h,g,
|
|
1
|
+
(function(h,g){typeof exports=="object"&&typeof module<"u"?g(exports):typeof define=="function"&&define.amd?define(["exports"],g):(h=typeof globalThis<"u"?globalThis:h||self,g(h.eui={}))})(this,(function(h){"use strict";var G=Object.defineProperty;var Q=(h,g,p)=>g in h?G(h,g,{enumerable:!0,configurable:!0,writable:!0,value:p}):h[g]=p;var C=(h,g,p)=>Q(h,typeof g!="symbol"?g+"":g,p);class g extends HTMLElement{static get observedAttributes(){return["size","border-radius","name","color"]}constructor(){super(),this.attachShadow({mode:"open"}),this.shadowRoot.innerHTML=`
|
|
2
2
|
<style>
|
|
3
3
|
:host {
|
|
4
4
|
aspect-ratio: 1 / 1;
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
<slot></slot>
|
|
44
44
|
<span id="initials"></span>
|
|
45
45
|
</div>
|
|
46
|
-
`}connectedCallback(){this.avatar=this.shadowRoot.querySelector(".avatar"),this.initials=this.shadowRoot.querySelector("#initials");const t=this.shadowRoot.querySelector("slot"),
|
|
46
|
+
`}connectedCallback(){this.avatar=this.shadowRoot.querySelector(".avatar"),this.initials=this.shadowRoot.querySelector("#initials");const t=this.shadowRoot.querySelector("slot"),e=t&&t.assignedNodes().length>0;if(e){const i=t.assignedNodes()[0];i&&i.tagName==="IMG"&&(this.initials.style.display="none",this.avatar.style.backgroundColor="transparent")}else this.hasAttribute("color")&&(this.avatar.style.backgroundColor=this.getAttribute("color"));if(this.hasAttribute("color")&&(this.avatar.style.backgroundColor=this.getAttribute("color")),this.hasAttribute("size")){const i=this.getAttribute("size");this.avatar.style.width=i+"px",this.avatar.style.height=i+"px",this.initials.style.fontSize=i/2+"px"}if(this.hasAttribute("border-radius")&&(this.avatar.style.borderRadius=this.getAttribute("border-radius")+"px"),this.hasAttribute("name")&&(this.avatar.title=this.getAttribute("name")),!e&&this.hasAttribute("name")){const r=this.getAttribute("name").trim().split(/\s+/);let s="";r.length===1?s=r[0][0]||"":s=(r[0][0]||"")+(r[r.length-1][0]||""),this.initials.textContent=s.toUpperCase()}}}customElements.define("eui-avatar",g);const p=(()=>{let o={};return{register(t,e){o[t]=e},get(t){return o[t]||""}}})();p.register("menu",'<svg width="24" height="24" viewBox="0 0 24 24" focusable="false"><path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z" fill="currentColor"></path></svg>'),p.register("home",'<svg width="22" height="21" viewBox="0 0 22 21" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M11.5258 0.204649C11.2291 -0.0682165 10.7709 -0.0682161 10.4742 0.204649L0.249923 9.68588C-0.266994 10.1612 0.0714693 11.0197 0.775759 11.0197L3.48971 11.0197V18.6923C3.48971 19.542 4.18295 20.2308 5.03811 20.2308H16.9619C17.8171 20.2308 18.5103 19.542 18.5103 18.6923V11.0197L21.2242 11.0197C21.9285 11.0197 22.267 10.1612 21.7501 9.68588L11.5258 0.204649Z" fill="currentColor"/></svg>'),p.register("kit",'<svg width="26" height="28" viewBox="0 0 26 28" xmlns="http://www.w3.org/2000/svg"><path d="m13.118 14.831c0.433 0 1.257-0.024 1.795-0.344l9.151-4.057c0.869-0.59 1.051-1.255 1.067-1.773 0.02-0.662-0.313-1.634-1.181-2.15l-8.515-3.921c-0.537-0.309-2.096-0.552-2.529-0.552-0.444 0-1.958 0.42-2.496 0.73l-8.643 4.034c-0.85 0.602-1.022 1.284-0.951 1.942 0.098 0.887 0.206 0.857 0.889 1.503l9.577 4.212c0.537 0.32 1.391 0.376 1.836 0.376zm-0.12 5.467c0.403 0 1.443-0.068 1.928-0.345l8.858-3.991c0.497-0.3 1.448-1.117 1.382-1.952-0.091-1.138-0.598-1.7-0.948-1.906l-9.22 3.888c-0.454 0.261-1.417 0.478-1.916 0.478-0.542 0-1.539-0.228-1.766-0.362l-9.395-4.012c-0.462 0.022-1.174 0.911-1.201 1.642-0.03 0.761 0.7 1.62 1.135 1.839l9.408 4.384c0.485 0.278 1.322 0.337 1.735 0.337zm0.09 5.344c0.403 0 1.296-0.053 1.781-0.342l9.147-4.299c0.485-0.289 1.129-0.789 1.053-1.879-0.056-0.794-0.071-1.123-0.918-1.765l-9.203 4.113c-0.228 0.134-0.948 0.39-1.853 0.39-0.939 0-1.603-0.224-1.831-0.359l-9.451-4.017c-0.979 0.247-1.005 1.45-1.005 1.947 0 0.455 0.403 1.279 0.9 1.568l9.465 4.262c0.486 0.29 1.502 0.381 1.915 0.381z" fill="currentColor"></path></svg>'),p.register("settings",'<svg width="20" height="21" viewBox="0 0 20 21" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M0.644169 15.2044C0.751639 15.4175 0.866389 15.627 0.988219 15.8323C1.34503 16.445 1.76284 17.0223 2.23048 17.545C2.3967 17.7307 2.65856 17.7968 2.89375 17.7126L5.25826 16.8621C5.96645 16.608 6.74841 17.07 6.87902 17.8018L7.32018 20.2764C7.36418 20.5227 7.55119 20.7167 7.79454 20.7688C8.86201 20.9976 9.95753 21.057 11.0418 20.9452C11.427 20.9061 11.8095 20.8457 12.1863 20.7643C12.375 20.7232 12.5303 20.5969 12.6121 20.4275C12.6441 20.37 12.6671 20.3068 12.6794 20.2397L13.132 17.7739C13.1978 17.4162 13.4191 17.1252 13.7102 16.9498C13.7478 16.9275 13.7867 16.9072 13.8264 16.8889C14.1041 16.7654 14.426 16.7408 14.7301 16.8496L17.0889 17.6938C17.2068 17.7362 17.3318 17.7406 17.4482 17.7107C17.5805 17.6872 17.7044 17.6208 17.7983 17.5172C18.2857 16.9783 18.7189 16.3833 19.0875 15.7497C19.4503 15.1137 19.748 14.4403 19.9703 13.7471C20.0128 13.6142 20.0083 13.4742 19.9629 13.3481C19.9307 13.2315 19.8646 13.1245 19.7685 13.043L17.8596 11.4179C17.6114 11.2067 17.4714 10.912 17.4409 10.6065C17.4371 10.563 17.4355 10.5194 17.4361 10.4758C17.444 10.1379 17.5847 9.80337 17.8591 9.56905L19.7638 7.94348C19.8146 7.90007 19.857 7.84958 19.8904 7.7944C19.9978 7.63842 20.0299 7.43844 19.9706 7.25291C19.8534 6.88733 19.7151 6.52704 19.5572 6.17466C19.1114 5.17572 18.5115 4.2528 17.7787 3.43934C17.612 3.25429 17.3509 3.18886 17.1161 3.27382L14.7569 4.12827C14.0592 4.38082 13.2679 3.93321 13.1344 3.19155L12.6871 0.714256C12.6423 0.468053 12.4542 0.273849 12.2106 0.22246C11.5182 0.0764882 10.803 0.00250031 10.088 0.000608251C9.88769 -0.0015584 9.68739 0.002064 9.48735 0.0114648C8.92415 0.0369819 8.36389 0.107332 7.81778 0.222459C7.78135 0.230146 7.74615 0.241028 7.71249 0.2548C7.5098 0.328781 7.35888 0.505679 7.31996 0.723547L6.8788 3.19817C6.81394 3.56157 6.58834 3.85866 6.29097 4.03446C5.98991 4.2061 5.61923 4.25412 5.27153 4.12827L2.91237 3.27382C2.70694 3.1995 2.48138 3.24016 2.31657 3.37545C2.2857 3.39886 2.25676 3.42543 2.23026 3.45505C1.81793 3.91588 1.44433 4.4192 1.11714 4.95183C1.05788 5.04799 1.00019 5.14513 0.944072 5.24319C0.878302 5.35619 0.814661 5.4704 0.753186 5.58577C0.464267 6.12611 0.222113 6.69081 0.0338354 7.26739C0.0213426 7.30567 0.0127871 7.34455 0.00802709 7.38352C-0.0257478 7.59364 0.0518458 7.809 0.218337 7.94974L2.13633 9.56992C2.41146 9.80242 2.55518 10.1364 2.56469 10.4743C2.56917 10.8294 2.42529 11.1857 2.13611 11.4301L0.218115 13.0503C0.0484589 13.1937 -0.0289685 13.4145 0.00982709 13.6284C0.0147983 13.6634 0.0228404 13.6982 0.0340542 13.7326C0.198098 14.235 0.403035 14.7283 0.644169 15.2044ZM10 14.5C12.2091 14.5 14 12.7091 14 10.5C14 8.29086 12.2091 6.5 10 6.5C7.79086 6.5 6 8.29086 6 10.5C6 12.7091 7.79086 14.5 10 14.5Z" fill="currentColor"></path></svg>'),p.register("home",'<svg width="22" height="21" viewBox="0 0 22 21" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M11.5258 0.204649C11.2291 -0.0682165 10.7709 -0.0682161 10.4742 0.204649L0.249923 9.68588C-0.266994 10.1612 0.0714693 11.0197 0.775759 11.0197L3.48971 11.0197V18.6923C3.48971 19.542 4.18295 20.2308 5.03811 20.2308H16.9619C17.8171 20.2308 18.5103 19.542 18.5103 18.6923V11.0197L21.2242 11.0197C21.9285 11.0197 22.267 10.1612 21.7501 9.68588L11.5258 0.204649Z" fill="currentColor"/></svg>'),p.register("copy",'<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M2 11C2 11.7956 2.31607 12.5587 2.87868 13.1213C3.44129 13.6839 4.20435 14 5 14H11C11.7956 14 12.5587 13.6839 13.1213 13.1213C13.6839 12.5587 14 11.7956 14 11V8H11.75C10.7554 8 9.80161 7.60491 9.09835 6.90165C8.39509 6.19839 8 5.24456 8 4.25V2H5C4.20435 2 3.44129 2.31607 2.87868 2.87868C2.31607 3.44129 2 4.20435 2 5V11Z" fill="currentColor"/><path d="M13.7975 6.49965C13.6881 6.25457 13.5357 6.03105 13.3475 5.83965L10.16 2.65965C9.96921 2.4688 9.74565 2.31384 9.5 2.20215V4.24965C9.5 4.54512 9.5582 4.8377 9.67127 5.11069C9.78434 5.38367 9.95008 5.63171 10.159 5.84064C10.3679 6.04957 10.616 6.2153 10.889 6.32838C11.1619 6.44145 11.4545 6.49965 11.75 6.49965H13.7975Z" fill="currentColor"/></svg>'),p.register("arrow",'<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path d="M9.3 5.3a1 1 0 0 0 0 1.4l5.29 5.3-5.3 5.3a1 1 0 1 0 1.42 1.4l6-6a1 1 0 0 0 0-1.4l-6-6a1 1 0 0 0-1.42 0Z"></path></svg>'),p.register("back",'<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" style="transform: rotate(180deg)"><path d="M9.3 5.3a1 1 0 0 0 0 1.4l5.29 5.3-5.3 5.3a1 1 0 1 0 1.42 1.4l6-6a1 1 0 0 0 0-1.4l-6-6a1 1 0 0 0-1.42 0Z"></path></svg>'),p.register("check",'<svg width="12" height="10" viewBox="0 0 12 10" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M3.86368 9.12226C3.82463 9.16131 3.76131 9.16131 3.72226 9.12226L0.146522 5.54652C-0.0487403 5.35126 -0.0487401 5.03468 0.146522 4.83942L0.839416 4.14652C1.03468 3.95126 1.35126 3.95126 1.54652 4.14652L3.72226 6.32226C3.76131 6.36131 3.82463 6.36131 3.86368 6.32226L10.0394 0.146522C10.2347 -0.0487398 10.5513 -0.0487399 10.7465 0.146522L11.4394 0.839416C11.6347 1.03468 11.6347 1.35126 11.4394 1.54652L3.86368 9.12226Z" fill="currentColor"/></svg>');class M extends HTMLElement{static get observedAttributes(){return["name","width","height"]}constructor(){super(),this.attachShadow({mode:"open"})}connectedCallback(){this.render()}attributeChangedCallback(){this.render()}render(){const t=this.getAttribute("name"),e=p.get(t);if(!e){this.shadowRoot.innerHTML='<span style="color:red;">?</span>';return}const i=document.createElement("template");i.innerHTML=e.trim();const r=i.content.cloneNode(!0),s=r.firstElementChild;if(s&&s.style){const n=this.getAttribute("width"),c=this.getAttribute("height");n&&s.setAttribute("width",n),c&&s.setAttribute("height",c),s.style.display="block"}this.shadowRoot.innerHTML="",this.shadowRoot.appendChild(r)}}customElements.define("eui-icon",M);class z extends HTMLElement{static get observedAttributes(){return["label","value","id","type","filled"]}constructor(){super(),this.attachShadow({mode:"open"}),this.shadowRoot.innerHTML=`
|
|
47
47
|
<style>
|
|
48
48
|
.form {
|
|
49
49
|
display: flex;
|
|
@@ -143,7 +143,7 @@
|
|
|
143
143
|
<input class="form-input" placeholder=" ">
|
|
144
144
|
<label></label>
|
|
145
145
|
</div>
|
|
146
|
-
`}connectedCallback(){this.form=this.shadowRoot.querySelector(".form"),this.inputEl=this.shadowRoot.querySelector(".form-input"),this.labelEl=this.shadowRoot.querySelector("label"),this.hasAttribute("value")&&(this.inputEl.value=this.getAttribute("value")),this.hasAttribute("id")&&(this.inputEl.id=this.getAttribute("id")),this.hasAttribute("label")&&(this.labelEl.textContent=this.getAttribute("label")),this.hasAttribute("type")&&(this.inputEl.type=this.getAttribute("type")),this.hasAttribute("filled")&&this.form.classList.add("filled"),this.inputEl.addEventListener("input",()=>{this.setAttribute("value",this.inputEl.value)})}attributeChangedCallback(t,i
|
|
146
|
+
`}connectedCallback(){this.form=this.shadowRoot.querySelector(".form"),this.inputEl=this.shadowRoot.querySelector(".form-input"),this.labelEl=this.shadowRoot.querySelector("label"),this.hasAttribute("value")&&(this.inputEl.value=this.getAttribute("value")),this.hasAttribute("id")&&(this.inputEl.id=this.getAttribute("id")),this.hasAttribute("label")&&(this.labelEl.textContent=this.getAttribute("label")),this.hasAttribute("type")&&(this.inputEl.type=this.getAttribute("type")),this.hasAttribute("filled")&&this.form.classList.add("filled"),this.inputEl.addEventListener("input",()=>{this.setAttribute("value",this.inputEl.value)})}attributeChangedCallback(t,e,i){if(!(!this.inputEl||!this.labelEl))switch(t){case"value":this.inputEl.value!==i&&(this.inputEl.value=i);break;case"id":this.inputEl.id=i;break;case"label":this.labelEl.textContent=i;break}}get value(){return this.inputEl.value}set value(t){this.setAttribute("value",t)}}customElements.define("eui-input",z);class T extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),this.shadowRoot.innerHTML=`
|
|
147
147
|
<style>
|
|
148
148
|
.loader {
|
|
149
149
|
width: 24px;
|
|
@@ -232,7 +232,7 @@
|
|
|
232
232
|
<div class="progressbar">
|
|
233
233
|
<span class="progress"></span>
|
|
234
234
|
</div>
|
|
235
|
-
`}set value(t){this.setAttribute("value",t)}attributeChangedCallback(){this.connectedCallback()}connectedCallback(){const t=this.shadowRoot.querySelector(".progress");this.hasAttribute("id")&&(this.progress.id=this.getAttribute("id")),this.hasAttribute("intermediate")&&t.classList.add("intermediate"),this.hasAttribute("value")&&(t.style.width=this.getAttribute("value")+"%")}}customElements.define("eui-progressbar",$);const v={is:{iPhone:/iPhone/.test(navigator.userAgent),iPad:/iPad/.test(navigator.userAgent),iOS:/iPhone|iPad|iPod/.test(navigator.userAgent),android:/Android/.test(navigator.userAgent),mobile:/Mobi|Android/i.test(navigator.userAgent)},prefers:{language:navigator.language||navigator.userLanguage,reducedMotion:window.matchMedia("(prefers-reduced-motion: reduce)").matches,reducedTransparency:window.matchMedia("(prefers-reduced-transparency: reduce)").matches},supports:{share:typeof navigator.share=="function",directDownload:"download"in document.createElement("a"),haptics:"vibrate"in navigator||"Vibrate"in window||typeof window.navigator.vibrate=="function"},userAgent:navigator.userAgent},R=Object.freeze(Object.defineProperty({__proto__:null,device:v},Symbol.toStringTag,{value:"Module"}));function H(){try{const o=document.createElement("label");o.ariaHidden="true",o.style.display="none";const t=document.createElement("input");t.type="checkbox",t.setAttribute("switch",""),o.appendChild(t),document.head.appendChild(o),o.click(),document.head.removeChild(o)}catch{}}function x(o){v.supports.haptics?navigator.vibrate(o||50):v.is.iPhone&&H()}const _=Object.freeze(Object.defineProperty({__proto__:null,haptic:x},Symbol.toStringTag,{value:"Module"})),
|
|
235
|
+
`}set value(t){this.setAttribute("value",t)}attributeChangedCallback(){this.connectedCallback()}connectedCallback(){const t=this.shadowRoot.querySelector(".progress");this.hasAttribute("id")&&(this.progress.id=this.getAttribute("id")),this.hasAttribute("intermediate")&&t.classList.add("intermediate"),this.hasAttribute("value")&&(t.style.width=this.getAttribute("value")+"%")}}customElements.define("eui-progressbar",$);const v={is:{iPhone:/iPhone/.test(navigator.userAgent),iPad:/iPad/.test(navigator.userAgent),iOS:/iPhone|iPad|iPod/.test(navigator.userAgent),android:/Android/.test(navigator.userAgent),mobile:/Mobi|Android/i.test(navigator.userAgent)},prefers:{language:navigator.language||navigator.userLanguage,reducedMotion:window.matchMedia("(prefers-reduced-motion: reduce)").matches,reducedTransparency:window.matchMedia("(prefers-reduced-transparency: reduce)").matches},supports:{share:typeof navigator.share=="function",directDownload:"download"in document.createElement("a"),haptics:"vibrate"in navigator||"Vibrate"in window||typeof window.navigator.vibrate=="function"},userAgent:navigator.userAgent},R=Object.freeze(Object.defineProperty({__proto__:null,device:v},Symbol.toStringTag,{value:"Module"}));function H(){try{const o=document.createElement("label");o.ariaHidden="true",o.style.display="none";const t=document.createElement("input");t.type="checkbox",t.setAttribute("switch",""),o.appendChild(t),document.head.appendChild(o),o.click(),document.head.removeChild(o)}catch{}}function x(o){v.supports.haptics?navigator.vibrate(o||50):v.is.iPhone&&H()}const _=Object.freeze(Object.defineProperty({__proto__:null,haptic:x},Symbol.toStringTag,{value:"Module"})),E=(()=>{let o={},t;try{o=JSON.parse(localStorage.getItem(t)||"{}")}catch(e){console.error(e)}return{get(e){return o[e]},set(e,i){o[e]=i,localStorage.setItem(t,JSON.stringify(o))},delete(e){delete o[e],localStorage.setItem(t,JSON.stringify(o))},all(){return o},clear(){o={},localStorage.setItem(t,JSON.stringify(o))},name(e){t=e;try{o=JSON.parse(localStorage.getItem(t)||"{}")}catch(i){console.error(i)}},settings:{get(e){return o&&o.settings&&o.settings[e]},set(e,i){o.settings||(o.settings={}),o.settings[e]=i,localStorage.setItem(t,JSON.stringify(o))},delete(e){o.settings&&(delete o.settings[e],localStorage.setItem(t,JSON.stringify(o)))},all(){return o.settings||{}},clear(){o.settings&&(o.settings={},localStorage.setItem(t,JSON.stringify(o)))}}}})(),A=E.settings,F=Object.freeze(Object.defineProperty({__proto__:null,settings:A,storage:E},Symbol.toStringTag,{value:"Module"}));class I extends HTMLElement{static get observedAttributes(){return["selected"]}constructor(){super(),this.attachShadow({mode:"open"}),this.shadowRoot.innerHTML=`
|
|
236
236
|
<style>
|
|
237
237
|
.switch {
|
|
238
238
|
background-color: var(--app-200);
|
|
@@ -301,7 +301,7 @@
|
|
|
301
301
|
<input type="checkbox" role="switch">
|
|
302
302
|
<span class="handle"></span>
|
|
303
303
|
</div>
|
|
304
|
-
`}connectedCallback(){this.inputEl=this.shadowRoot.querySelector("input"),this.switchEl=this.shadowRoot.querySelector(".switch"),this.updateFromAttribute(),this.switchEl.addEventListener("click",()=>this.toggle())}toggle(){this.selected=!this.selected,x()}updateFromAttribute(){const t=this.hasAttribute("selected");this.inputEl.checked=t,this.switchEl.classList.toggle("selected",t)}attributeChangedCallback(t,i
|
|
304
|
+
`}connectedCallback(){this.inputEl=this.shadowRoot.querySelector("input"),this.switchEl=this.shadowRoot.querySelector(".switch"),this.updateFromAttribute(),this.switchEl.addEventListener("click",()=>this.toggle())}toggle(){this.selected=!this.selected,x()}updateFromAttribute(){const t=this.hasAttribute("selected");this.inputEl.checked=t,this.switchEl.classList.toggle("selected",t)}attributeChangedCallback(t,e,i){t==="selected"&&this.inputEl&&this.updateFromAttribute()}get selected(){return this.hasAttribute("selected")}set selected(t){t?this.setAttribute("selected",""):this.removeAttribute("selected")}}customElements.define("eui-switch",I);class j extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"})}connectedCallback(){this.shadowRoot.innerHTML=`
|
|
305
305
|
<style>
|
|
306
306
|
:host {
|
|
307
307
|
display: inline-flex;
|
|
@@ -346,7 +346,7 @@
|
|
|
346
346
|
}
|
|
347
347
|
</style>
|
|
348
348
|
<slot></slot>
|
|
349
|
-
`,this.addEventListener("pointerdown",t=>{const
|
|
349
|
+
`,this.addEventListener("pointerdown",t=>{const e=document.createElement("span"),i=t.currentTarget,r=Math.max(i.offsetWidth,i.offsetHeight);e.classList.add("ripple"),e.style.left=t.clientX-i.getBoundingClientRect().left-r/2+"px",e.style.top=t.clientY-i.getBoundingClientRect().top-r/2+"px",e.style.width=r+"px",e.style.height=r+"px",this.shadowRoot.appendChild(e),setTimeout(()=>{e.remove()},600)})}}customElements.define("eui-chip",j);const f="",w=(()=>{const o=[];function t(a,l){const u=[],b=a.replace(/:([^/]+)/g,(y,k)=>(u.push(k),"([^/]+)")).replace(/\//g,"\\/"),m=new RegExp(`^${f}${b}$`);o.push({regex:m,paramNames:u,renderFn:l})}function e(a){for(const{regex:l,paramNames:u,renderFn:b}of o){const m=a.match(l);if(m){const y={};return u.forEach((k,Y)=>{y[k]=decodeURIComponent(m[Y+1])}),{renderFn:b,params:y}}}return null}function i(a,l=!0){a.startsWith(f)||(a=f+(a.startsWith("/")?"":"/")+a);const u=a.split(/[?#]/)[0];if(u===window.location.pathname&&a.includes("#")){l&&history.pushState({},"",a);const m="#"+a.split("#")[1];r(m);return}const b=e(u);if(b)if(l&&history.pushState({},"",a),b.renderFn(b.params),window.dispatchEvent(new CustomEvent("route-changed",{detail:{path:a}})),a.includes("#")){const m="#"+a.split("#")[1];setTimeout(()=>r(m),100)}else{const m=document.getElementById("main");m&&m.scrollTo(0,0)}else s?(l&&history.pushState({},"",a),s()):console.warn(`No route found for ${u}`)}function r(a){if(a)try{const l=document.querySelector(a);l&&l.scrollIntoView({behavior:"smooth"})}catch{console.warn("Invalid hash:",a)}}let s=null;function n(a){s=a}function c(){history.back()}function d(){return window.location.pathname.replace(f,"")||"/"}return window.addEventListener("popstate",()=>{const a=window.location.pathname+window.location.search+window.location.hash;i(a,!1)}),window.addEventListener("click",a=>{if(a.button!==0||a.metaKey||a.altKey||a.ctrlKey||a.shiftKey)return;const l=a.target.closest("a");if(!l||l.hasAttribute("download")||l.getAttribute("target")==="_blank")return;const u=l.getAttribute("href");if(!(!u||u.startsWith("http")&&!u.startsWith(window.location.origin))){if(a.preventDefault(),u.startsWith("#")){history.pushState({},"",u),r(u);return}i(u)}}),{add:t,navigate:i,back:c,location:d,setNotFound:n}})();async function q(o){try{const t=document.getElementById("main");t.classList.add("fade-out"),await new Promise(i=>setTimeout(i,200));const e=await fetch(`/src/pages/${o}.html`).then(i=>i.text());t.innerHTML=e,t.classList.remove("fade-out"),t.classList.add("fade-in"),window.location.hash?setTimeout(()=>{try{const i=document.querySelector(window.location.hash);i&&i.scrollIntoView({behavior:"smooth"})}catch{}},100):t&&t.scrollTo(0,0),setTimeout(()=>{t.classList.remove("fade-in")},200)}catch(t){console.error("Page load failed:",t)}}class B extends HTMLElement{constructor(){super();C(this,"handleClick",()=>{const e=this.getAttribute("path");e&&w.navigate(e)});this.attachShadow({mode:"open"})}static get observedAttributes(){return["path","icon","label","badge","active","avatar-src","avatar-name"]}connectedCallback(){this.hasRendered||(this.render(),this.setupEventListeners(),this.hasRendered=!0),this.updateContent(),this.addEventListener("click",this.handleClick)}disconnectedCallback(){this.removeEventListener("click",this.handleClick)}attributeChangedCallback(e,i,r){if(i!==r&&this.hasRendered){if(e==="active")return;this.updateContent()}}setupEventListeners(){this.addEventListener("pointerdown",e=>{const i=document.createElement("span"),r=e.currentTarget,s=r.getBoundingClientRect(),n=Math.max(r.offsetWidth,r.offsetHeight),c=n/2;i.classList.add("ripple"),i.style.width=`${n}px`,i.style.height=`${n}px`,i.style.left=`${e.clientX-s.left-c}px`,i.style.top=`${e.clientY-s.top-c}px`,this.shadowRoot.appendChild(i),i.addEventListener("animationend",()=>{i.remove()})})}updateContent(){const e=this.getAttribute("icon"),i=this.getAttribute("avatar-src"),r=this.getAttribute("avatar-name"),s=this.getAttribute("label")||"",n=this.getAttribute("badge"),c=this.shadowRoot.querySelector(".badge");if(n)if(c)c.textContent=n;else{const l=document.createElement("span");l.className="badge",l.textContent=n,this.shadowRoot.appendChild(l)}else c&&c.remove();const d=this.shadowRoot.querySelector("slot[name='icon']");if(d)if(i||r){let l='<eui-avatar size="24"';r&&(l+=` name="${r}"`),l+=">",i&&(l+=`<img src="${i}" alt="${r||"Avatar"}" />`),l+="</eui-avatar>",d.innerHTML=l}else{const l=d.querySelector("eui-icon");e&&l?l.getAttribute("name")!==e&&l.setAttribute("name",e):e?d.innerHTML=`<eui-icon width="24" height="24" name="${e}"></eui-icon>`:d.innerHTML=""}const a=this.shadowRoot.querySelector(".label");a&&(a.textContent=s)}render(){this.shadowRoot.innerHTML=`
|
|
350
350
|
<style>
|
|
351
351
|
:host {
|
|
352
352
|
position: relative;
|
|
@@ -551,10 +551,10 @@
|
|
|
551
551
|
<div class="app-nav-container">
|
|
552
552
|
<a href="#content" id="skip_navigation_link">Skip To Content</a>
|
|
553
553
|
<div class="nav-items">
|
|
554
|
-
${this.navItems.map(t=>{var s
|
|
554
|
+
${this.navItems.map(t=>{var r,s;if(t.type==="divider")return'<div style="height: 1px; background: var(--app-300); margin: 0.5rem 0;"></div>';const e=((r=t.avatar)==null?void 0:r.src)||"",i=((s=t.avatar)==null?void 0:s.name)||"";return`<eui-nav-item path="${t.path}" icon="${t.icon}" avatar-src="${e}" avatar-name="${i}" label="${t.label}"></eui-nav-item>`}).join("")}
|
|
555
555
|
</div>
|
|
556
556
|
</div>
|
|
557
|
-
`}set navItems(t){this._navItems=t,this.render(),this.updateActiveState()}get navItems(){return this._navItems||[]}updateActiveState(t){t||(t=w.location()),t.startsWith("/")||(t="/"+t),this.shadowRoot.querySelectorAll("eui-nav-item").forEach(
|
|
557
|
+
`}set navItems(t){this._navItems=t,this.render(),this.updateActiveState()}get navItems(){return this._navItems||[]}updateActiveState(t){t||(t=w.location()),t.startsWith("/")||(t="/"+t),this.shadowRoot.querySelectorAll("eui-nav-item").forEach(i=>{i.getAttribute("path")===t?i.setAttribute("active",""):i.removeAttribute("active")})}}customElements.define("eui-app-nav",N);class O extends HTMLElement{static get observedAttributes(){return["type","title","subtitle","img"]}constructor(){super(),this.attachShadow({mode:"open"}),this.shadowRoot.innerHTML=`
|
|
558
558
|
<style>
|
|
559
559
|
:host {
|
|
560
560
|
border-radius: 24px;
|
|
@@ -614,6 +614,22 @@
|
|
|
614
614
|
.small p {
|
|
615
615
|
margin: 0;
|
|
616
616
|
}
|
|
617
|
+
|
|
618
|
+
@media (max-width: 768px) {
|
|
619
|
+
.header {
|
|
620
|
+
padding: 1rem;
|
|
621
|
+
}
|
|
622
|
+
|
|
623
|
+
.hero {
|
|
624
|
+
align-items: center;
|
|
625
|
+
justify-content: center;
|
|
626
|
+
text-align: center;
|
|
627
|
+
}
|
|
628
|
+
|
|
629
|
+
.large h1, .hero h1 {
|
|
630
|
+
font-size: 4rem;
|
|
631
|
+
}
|
|
632
|
+
}
|
|
617
633
|
</style>
|
|
618
634
|
|
|
619
635
|
<div class="header">
|
|
@@ -623,7 +639,7 @@
|
|
|
623
639
|
<p></p>
|
|
624
640
|
</div>
|
|
625
641
|
</div>
|
|
626
|
-
`}connectedCallback(){this.hd=this.shadowRoot.querySelector(".header"),this.hasAttribute("type")&&this.hd.classList.add(this.getAttribute("type"))}attributeChangedCallback(t,i
|
|
642
|
+
`}connectedCallback(){this.hd=this.shadowRoot.querySelector(".header"),this.hasAttribute("type")&&this.hd.classList.add(this.getAttribute("type"))}attributeChangedCallback(t,e,i){const r=this.shadowRoot.querySelector("h1"),s=this.shadowRoot.querySelector("p"),n=this.shadowRoot.querySelector(".img");t==="title"&&(r.textContent=i),t==="subtitle"&&(s.textContent=i),t==="img"&&(n.style.backgroundImage=i?`url(${i})`:"")}}customElements.define("eui-header",O);class P extends HTMLElement{static get observedAttributes(){return["selected"]}constructor(){super(),this.attachShadow({mode:"open"}),this.shadowRoot.innerHTML=`
|
|
627
643
|
<style>
|
|
628
644
|
:host {
|
|
629
645
|
display: block;
|
|
@@ -706,7 +722,7 @@
|
|
|
706
722
|
<rect class="mark long"></rect>
|
|
707
723
|
</svg>
|
|
708
724
|
</div>
|
|
709
|
-
`}connectedCallback(){this.inputEl=this.shadowRoot.querySelector("input"),this.checkEl=this.shadowRoot.querySelector(".checkbox"),this.updateFromAttribute(),this.checkEl.addEventListener("click",()=>this.toggle())}toggle(){this.selected=!this.selected,x();const t=this.selected,
|
|
725
|
+
`}connectedCallback(){this.inputEl=this.shadowRoot.querySelector("input"),this.checkEl=this.shadowRoot.querySelector(".checkbox"),this.updateFromAttribute(),this.checkEl.addEventListener("click",()=>this.toggle())}toggle(){this.selected=!this.selected,x();const t=this.selected,e=this.dataset.setting;e&&A.set(e,t)}updateFromAttribute(){const t=this.hasAttribute("selected");this.inputEl.checked=t,this.checkEl.classList.toggle("selected",t)}attributeChangedCallback(t,e,i){t==="selected"&&this.inputEl&&this.updateFromAttribute()}get selected(){return this.hasAttribute("selected")}set selected(t){t?this.setAttribute("selected",""):this.removeAttribute("selected")}}customElements.define("eui-checkbox",P);class L extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"})}connectedCallback(){this.render()}render(){const t=this.getAttribute("href"),e=t?"a":"button";this.shadowRoot.innerHTML=`
|
|
710
726
|
<style>
|
|
711
727
|
button, a {
|
|
712
728
|
display: flex;
|
|
@@ -809,10 +825,10 @@
|
|
|
809
825
|
}
|
|
810
826
|
|
|
811
827
|
</style>
|
|
812
|
-
<${
|
|
828
|
+
<${e}>
|
|
813
829
|
<slot></slot>
|
|
814
|
-
</${
|
|
815
|
-
`;const
|
|
830
|
+
</${e}>
|
|
831
|
+
`;const i=this.shadowRoot.querySelector(e);t&&i.setAttribute("href",t),this.hasAttribute("type")&&i.classList.add(this.getAttribute("type")),this.hasAttribute("icon")&&i.classList.add("icon"),this.hasAttribute("width")&&(i.style.width=this.getAttribute("width")+"px"),this.hasAttribute("height")&&(i.style.height=this.getAttribute("height")+"px"),this.hasAttribute("border-radius")&&(i.style.borderRadius=this.getAttribute("border-radius")+"px"),i.addEventListener("pointerdown",r=>{const s=document.createElement("span"),n=r.currentTarget,c=n.getBoundingClientRect(),d=Math.max(n.offsetWidth,n.offsetHeight),a=d/2;s.classList.add("ripple"),s.style.width=`${d}px`,s.style.height=`${d}px`,s.style.left=`${r.clientX-c.left-a}px`,s.style.top=`${r.clientY-c.top-a}px`,i.appendChild(s),s.addEventListener("animationend",()=>{s.remove()})})}}C(L,"observedAttributes",["type","width","height","border-radius","icon","link","href"]),customElements.define("eui-button",L);class V extends HTMLElement{static get observedAttributes(){return["type","anchor"]}constructor(){super(),this.attachShadow({mode:"open"})}connectedCallback(){this.render(),this.hd=this.shadowRoot.querySelector(".hd"),this.hasAttribute("type")&&this.hd.classList.add(this.getAttribute("type"))}render(){this.shadowRoot.innerHTML=`
|
|
816
832
|
<style>
|
|
817
833
|
:host {
|
|
818
834
|
display: block;
|
|
@@ -870,7 +886,7 @@
|
|
|
870
886
|
<span class="anchor-hash">#</span>
|
|
871
887
|
</a>
|
|
872
888
|
`:""}
|
|
873
|
-
`}}customElements.define("eui-heading",V);function
|
|
889
|
+
`}}customElements.define("eui-heading",V);function D(o){const i=Date.now()-o,r=Math.floor(i/1e3),s=Math.floor(r/60),n=Math.floor(s/60),c=Math.floor(n/24),d=Math.floor(c/30),a=Math.floor(d/12);return a>0?`${a}y`:d>0?`${d}mo`:c>0?`${c}d`:n>0?`${n}h`:s>0?`${s}m`:`${r}s`}function U(o){const i=Date.now()-o,r=Math.floor(i/1e3),s=Math.floor(r/60),n=Math.floor(s/60),c=Math.floor(n/24),d=Math.floor(c/30),a=Math.floor(d/12);return a>0?`${a} year${a>1?"s":""} ago`:d>0?`${d} month${d>1?"s":""} ago`:c>0?`${c} day${c>1?"s":""} ago`:n>0?`${n} hour${n>1?"s":""} ago`:s>0?`${s} minute${s>1?"s":""} ago`:`${r} second${r>1?"s":""} ago`}function Z(o){return o.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'").replace(/`/g,"`").replace(/'/g,"'")}function S(o){const t=document.createElement("input");t.value=o,document.body.appendChild(t),t.select(),document.execCommand("copy"),document.body.removeChild(t)}const X=Object.freeze(Object.defineProperty({__proto__:null,copystr:S,joinedAgo:U,sanitize:Z,timeAgo:D},Symbol.toStringTag,{value:"Module"}));class W extends HTMLElement{static get observedAttributes(){return["copy","id","type","language"]}constructor(){super(),this.attachShadow({mode:"open"}),this._boundCopy=this._onCopy.bind(this),this._isRendered=!1}connectedCallback(){this._isRendered||(this.render(),this._isRendered=!0)}attributeChangedCallback(t,e,i){this._isRendered&&e!==i&&this.render()}render(){const t=this.hasAttribute("copy"),e=this.getAttribute("language")||"text";this.shadowRoot.innerHTML=`
|
|
874
890
|
<style>
|
|
875
891
|
:host {
|
|
876
892
|
position: relative;
|
|
@@ -907,14 +923,14 @@
|
|
|
907
923
|
}
|
|
908
924
|
|
|
909
925
|
.token.comment { color: var(--app-700); font-style: italic; }
|
|
910
|
-
.token.string { color:
|
|
911
|
-
.token.number { color:
|
|
912
|
-
.token.keyword { color:
|
|
913
|
-
.token.function { color:
|
|
914
|
-
.token.tag { color:
|
|
915
|
-
.token.attr-name { color:
|
|
916
|
-
.token.attr-value { color:
|
|
917
|
-
.token.boolean { color:
|
|
926
|
+
.token.string { color: #9ECE6A; }
|
|
927
|
+
.token.number { color: #F97C5F; }
|
|
928
|
+
.token.keyword { color: #7DCFFF; }
|
|
929
|
+
.token.function { color: #7DCFFF; }
|
|
930
|
+
.token.tag { color: #DE5971; }
|
|
931
|
+
.token.attr-name { color: #BB9AF7; }
|
|
932
|
+
.token.attr-value { color: #9ECE6A; }
|
|
933
|
+
.token.boolean { color: #F97C5F; }
|
|
918
934
|
</style>
|
|
919
935
|
|
|
920
936
|
<eui-button class="copy" width="36" height="36" border-radius="100">
|
|
@@ -922,9 +938,9 @@
|
|
|
922
938
|
</eui-button>
|
|
923
939
|
|
|
924
940
|
<pre class="${t?"g":""}"><code></code></pre>
|
|
925
|
-
`,this.copyBtn=this.shadowRoot.querySelector(".copy"),this.codeEl=this.shadowRoot.querySelector("code");const
|
|
926
|
-
`),
|
|
927
|
-
`)}
|
|
941
|
+
`,this.copyBtn=this.shadowRoot.querySelector(".copy"),this.codeEl=this.shadowRoot.querySelector("code");const i=this._getFormattedText();this.codeEl.innerHTML=this._highlight(i,e),t?this.copyBtn.addEventListener("click",this._boundCopy):this.copyBtn.style.display="none"}_getFormattedText(){let e=(this.querySelector("code")||this).innerHTML||"";e=this._unescapeHtml(e),e=e.replace(/^\s*\n/,"").replace(/\n\s*$/,"");const i=e.split(`
|
|
942
|
+
`),r=i.filter(n=>n.trim()).map(n=>n.match(/^\s*/)[0].length),s=r.length?Math.min(...r):0;return i.map(n=>n.slice(s)).join(`
|
|
943
|
+
`)}_unescapeHtml(t){const e=document.createElement("textarea");return e.innerHTML=t,e.value}_highlight(t,e){t=t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");const i={};let r=0;function s(n,c){const d=`__TOKEN_${c}_${r++}__`;return i[d]=`<span class="token ${c}">${n}</span>`,d}return["javascript","js","json","bash","sh","css"].includes(e)?(t=t.replace(/("(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')/g,n=>s(n,"string")),e==="bash"||e==="sh"?t=t.replace(/(#.*$)/gm,n=>s(n,"comment")):e==="css"?t=t.replace(/(\/\*[\s\S]*?\*\/)/g,n=>s(n,"comment")):t=t.replace(/(\/\/.*$|\/\*[\s\S]*?\*\/)/gm,n=>s(n,"comment"))):["html","xml"].includes(e)&&(t=t.replace(/(<!--[\s\S]*?-->)/g,n=>s(n,"comment")),t=t.replace(/(<\/?[a-z0-9:-]+)/gi,n=>s(n,"tag"))),e==="javascript"||e==="js"||e==="json"?(t=t.replace(/\b(const|let|var|if|else|for|while|return|function|class|import|export|from|default|switch|case|break|continue|new|this|async|await)\b/g,'<span class="token keyword">$1</span>'),t=t.replace(/\b(true|false|null|undefined)\b/g,'<span class="token boolean">$1</span>'),t=t.replace(/\b([a-zA-Z0-9_]+)\s*(?=\()/g,'<span class="token function">$1</span>')):e==="bash"||e==="sh"?(t=t.replace(/\b(npm|npx|node|git|cd|ls|mkdir|rm|mv|cp|echo|cat|sudo|docker|brew|grep|curl|wget|chmod|chown|touch)\b/g,'<span class="token keyword">$1</span>'),t=t.replace(/\b(install|run|build|start|test|dev|init|clone|pull|push|commit|add|checkout|branch|merge)\b/g,'<span class="token function">$1</span>'),t=t.replace(/(\s-+[a-zA-Z0-9-]+)/g,'<span class="token attr-name">$1</span>'),t=t.replace(/(\$[A-Z0-9_]+)/g,'<span class="token number">$1</span>')):e==="html"||e==="xml"?(t=t.replace(/\s([a-z0-9:-]+)=/gi,(n,c)=>" "+s(c,"attr-name")+"="),t=t.replace(/(".*?")/g,n=>s(n,"attr-value")),t=t.replace(/>/g,'<span class="token tag">></span>')):e==="css"&&(t=t.replace(/([a-z-]+)(?=:)/g,'<span class="token keyword">$1</span>')),Object.keys(i).reverse().forEach(n=>{t=t.replace(n,i[n])}),t}_onCopy(){S(this._getFormattedText());const t=this.copyBtn.querySelector("eui-icon");if(t){const e=t.getAttribute("name");t.setAttribute("name","check"),setTimeout(()=>t.setAttribute("name",e),2e3)}}disconnectedCallback(){this.copyBtn&&this.copyBtn.removeEventListener("click",this._boundCopy)}}customElements.define("eui-code",W);class J extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"})}connectedCallback(){this.render(),this.setupEventListeners()}static get observedAttributes(){return["name"]}attributeChangedCallback(t,e,i){t==="name"&&(this.render(),this.setupEventListeners())}setupEventListeners(){const t=this.shadowRoot.querySelector("#nav-toggle");t&&t.addEventListener("click",()=>{window.dispatchEvent(new CustomEvent("toggle-nav"))})}render(){const t=this.getAttribute("name")||"Title";this.shadowRoot.innerHTML=`
|
|
928
944
|
<style>
|
|
929
945
|
:host {
|
|
930
946
|
display: block;
|
|
@@ -1016,7 +1032,7 @@
|
|
|
1016
1032
|
<slot></slot>
|
|
1017
1033
|
</div>
|
|
1018
1034
|
</div>
|
|
1019
|
-
`}}customElements.define("eui-app-titlebar",J);class
|
|
1035
|
+
`}}customElements.define("eui-app-titlebar",J);class K extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),this._handleMouseDown=this._addRipple.bind(this)}connectedCallback(){this.render(),this.setupEventListeners()}static get observedAttributes(){return["elevated","interactive","ripple"]}attributeChangedCallback(t,e,i){e!==i&&t==="ripple"&&this.setupEventListeners()}setupEventListeners(){this.removeEventListener("mousedown",this._handleMouseDown),this.hasAttribute("ripple")&&this.addEventListener("mousedown",this._handleMouseDown)}_addRipple(t){const e=this.getBoundingClientRect(),i=document.createElement("span"),r=Math.max(e.width,e.height),s=r/2;i.style.width=i.style.height=`${r}px`,i.style.left=`${t.clientX-e.left-s}px`,i.style.top=`${t.clientY-e.top-s}px`,i.classList.add("ripple"),this.shadowRoot.querySelector(".surface").appendChild(i),i.addEventListener("animationend",()=>{i.remove()})}render(){this.shadowRoot.innerHTML=`
|
|
1020
1036
|
<style>
|
|
1021
1037
|
:host {
|
|
1022
1038
|
display: block;
|
|
@@ -1077,4 +1093,4 @@
|
|
|
1077
1093
|
<div class="surface">
|
|
1078
1094
|
<slot></slot>
|
|
1079
1095
|
</div>
|
|
1080
|
-
`}}customElements.define("eui-surface",
|
|
1096
|
+
`}}customElements.define("eui-surface",K),typeof window<"u"&&console.log("ErisUI loaded successfully"),h.device=R,h.haptics=_,h.icons=p,h.loadPage=q,h.router=w,h.storage=F,h.utils=X,Object.defineProperty(h,Symbol.toStringTag,{value:"Module"})}));
|
package/dist/erisui.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var S = Object.defineProperty;
|
|
2
|
-
var
|
|
3
|
-
var v = (o, t,
|
|
4
|
-
class
|
|
2
|
+
var M = (o, t, e) => t in o ? S(o, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : o[t] = e;
|
|
3
|
+
var v = (o, t, e) => M(o, typeof t != "symbol" ? t + "" : t, e);
|
|
4
|
+
class z extends HTMLElement {
|
|
5
5
|
static get observedAttributes() {
|
|
6
6
|
return ["size", "border-radius", "name", "color"];
|
|
7
7
|
}
|
|
@@ -55,29 +55,29 @@ class M extends HTMLElement {
|
|
|
55
55
|
}
|
|
56
56
|
connectedCallback() {
|
|
57
57
|
this.avatar = this.shadowRoot.querySelector(".avatar"), this.initials = this.shadowRoot.querySelector("#initials");
|
|
58
|
-
const t = this.shadowRoot.querySelector("slot"),
|
|
59
|
-
if (
|
|
60
|
-
const
|
|
61
|
-
|
|
58
|
+
const t = this.shadowRoot.querySelector("slot"), e = t && t.assignedNodes().length > 0;
|
|
59
|
+
if (e) {
|
|
60
|
+
const i = t.assignedNodes()[0];
|
|
61
|
+
i && i.tagName === "IMG" && (this.initials.style.display = "none", this.avatar.style.backgroundColor = "transparent");
|
|
62
62
|
} else
|
|
63
63
|
this.hasAttribute("color") && (this.avatar.style.backgroundColor = this.getAttribute("color"));
|
|
64
64
|
if (this.hasAttribute("color") && (this.avatar.style.backgroundColor = this.getAttribute("color")), this.hasAttribute("size")) {
|
|
65
|
-
const
|
|
66
|
-
this.avatar.style.width =
|
|
65
|
+
const i = this.getAttribute("size");
|
|
66
|
+
this.avatar.style.width = i + "px", this.avatar.style.height = i + "px", this.initials.style.fontSize = i / 2 + "px";
|
|
67
67
|
}
|
|
68
|
-
if (this.hasAttribute("border-radius") && (this.avatar.style.borderRadius = this.getAttribute("border-radius") + "px"), this.hasAttribute("name") && (this.avatar.title = this.getAttribute("name")), !
|
|
69
|
-
const
|
|
70
|
-
let
|
|
71
|
-
|
|
68
|
+
if (this.hasAttribute("border-radius") && (this.avatar.style.borderRadius = this.getAttribute("border-radius") + "px"), this.hasAttribute("name") && (this.avatar.title = this.getAttribute("name")), !e && this.hasAttribute("name")) {
|
|
69
|
+
const n = this.getAttribute("name").trim().split(/\s+/);
|
|
70
|
+
let s = "";
|
|
71
|
+
n.length === 1 ? s = n[0][0] || "" : s = (n[0][0] || "") + (n[n.length - 1][0] || ""), this.initials.textContent = s.toUpperCase();
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
|
-
customElements.define("eui-avatar",
|
|
75
|
+
customElements.define("eui-avatar", z);
|
|
76
76
|
const u = /* @__PURE__ */ (() => {
|
|
77
77
|
let o = {};
|
|
78
78
|
return {
|
|
79
|
-
register(t,
|
|
80
|
-
o[t] =
|
|
79
|
+
register(t, e) {
|
|
80
|
+
o[t] = e;
|
|
81
81
|
},
|
|
82
82
|
get(t) {
|
|
83
83
|
return o[t] || "";
|
|
@@ -92,7 +92,8 @@ u.register("home", '<svg width="22" height="21" viewBox="0 0 22 21" fill="none"
|
|
|
92
92
|
u.register("copy", '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M2 11C2 11.7956 2.31607 12.5587 2.87868 13.1213C3.44129 13.6839 4.20435 14 5 14H11C11.7956 14 12.5587 13.6839 13.1213 13.1213C13.6839 12.5587 14 11.7956 14 11V8H11.75C10.7554 8 9.80161 7.60491 9.09835 6.90165C8.39509 6.19839 8 5.24456 8 4.25V2H5C4.20435 2 3.44129 2.31607 2.87868 2.87868C2.31607 3.44129 2 4.20435 2 5V11Z" fill="currentColor"/><path d="M13.7975 6.49965C13.6881 6.25457 13.5357 6.03105 13.3475 5.83965L10.16 2.65965C9.96921 2.4688 9.74565 2.31384 9.5 2.20215V4.24965C9.5 4.54512 9.5582 4.8377 9.67127 5.11069C9.78434 5.38367 9.95008 5.63171 10.159 5.84064C10.3679 6.04957 10.616 6.2153 10.889 6.32838C11.1619 6.44145 11.4545 6.49965 11.75 6.49965H13.7975Z" fill="currentColor"/></svg>');
|
|
93
93
|
u.register("arrow", '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path d="M9.3 5.3a1 1 0 0 0 0 1.4l5.29 5.3-5.3 5.3a1 1 0 1 0 1.42 1.4l6-6a1 1 0 0 0 0-1.4l-6-6a1 1 0 0 0-1.42 0Z"></path></svg>');
|
|
94
94
|
u.register("back", '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" style="transform: rotate(180deg)"><path d="M9.3 5.3a1 1 0 0 0 0 1.4l5.29 5.3-5.3 5.3a1 1 0 1 0 1.42 1.4l6-6a1 1 0 0 0 0-1.4l-6-6a1 1 0 0 0-1.42 0Z"></path></svg>');
|
|
95
|
-
|
|
95
|
+
u.register("check", '<svg width="12" height="10" viewBox="0 0 12 10" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M3.86368 9.12226C3.82463 9.16131 3.76131 9.16131 3.72226 9.12226L0.146522 5.54652C-0.0487403 5.35126 -0.0487401 5.03468 0.146522 4.83942L0.839416 4.14652C1.03468 3.95126 1.35126 3.95126 1.54652 4.14652L3.72226 6.32226C3.76131 6.36131 3.82463 6.36131 3.86368 6.32226L10.0394 0.146522C10.2347 -0.0487398 10.5513 -0.0487399 10.7465 0.146522L11.4394 0.839416C11.6347 1.03468 11.6347 1.35126 11.4394 1.54652L3.86368 9.12226Z" fill="currentColor"/></svg>');
|
|
96
|
+
class T extends HTMLElement {
|
|
96
97
|
static get observedAttributes() {
|
|
97
98
|
return ["name", "width", "height"];
|
|
98
99
|
}
|
|
@@ -106,23 +107,23 @@ class $ extends HTMLElement {
|
|
|
106
107
|
this.render();
|
|
107
108
|
}
|
|
108
109
|
render() {
|
|
109
|
-
const t = this.getAttribute("name"),
|
|
110
|
-
if (!
|
|
110
|
+
const t = this.getAttribute("name"), e = u.get(t);
|
|
111
|
+
if (!e) {
|
|
111
112
|
this.shadowRoot.innerHTML = '<span style="color:red;">?</span>';
|
|
112
113
|
return;
|
|
113
114
|
}
|
|
114
|
-
const
|
|
115
|
-
|
|
116
|
-
const
|
|
117
|
-
if (
|
|
118
|
-
const
|
|
119
|
-
|
|
115
|
+
const i = document.createElement("template");
|
|
116
|
+
i.innerHTML = e.trim();
|
|
117
|
+
const n = i.content.cloneNode(!0), s = n.firstElementChild;
|
|
118
|
+
if (s && s.style) {
|
|
119
|
+
const r = this.getAttribute("width"), c = this.getAttribute("height");
|
|
120
|
+
r && s.setAttribute("width", r), c && s.setAttribute("height", c), s.style.display = "block";
|
|
120
121
|
}
|
|
121
|
-
this.shadowRoot.innerHTML = "", this.shadowRoot.appendChild(
|
|
122
|
+
this.shadowRoot.innerHTML = "", this.shadowRoot.appendChild(n);
|
|
122
123
|
}
|
|
123
124
|
}
|
|
124
|
-
customElements.define("eui-icon",
|
|
125
|
-
class
|
|
125
|
+
customElements.define("eui-icon", T);
|
|
126
|
+
class $ extends HTMLElement {
|
|
126
127
|
static get observedAttributes() {
|
|
127
128
|
return ["label", "value", "id", "type", "filled"];
|
|
128
129
|
}
|
|
@@ -234,17 +235,17 @@ class T extends HTMLElement {
|
|
|
234
235
|
this.setAttribute("value", this.inputEl.value);
|
|
235
236
|
});
|
|
236
237
|
}
|
|
237
|
-
attributeChangedCallback(t,
|
|
238
|
+
attributeChangedCallback(t, e, i) {
|
|
238
239
|
if (!(!this.inputEl || !this.labelEl))
|
|
239
240
|
switch (t) {
|
|
240
241
|
case "value":
|
|
241
|
-
this.inputEl.value !==
|
|
242
|
+
this.inputEl.value !== i && (this.inputEl.value = i);
|
|
242
243
|
break;
|
|
243
244
|
case "id":
|
|
244
|
-
this.inputEl.id =
|
|
245
|
+
this.inputEl.id = i;
|
|
245
246
|
break;
|
|
246
247
|
case "label":
|
|
247
|
-
this.labelEl.textContent =
|
|
248
|
+
this.labelEl.textContent = i;
|
|
248
249
|
break;
|
|
249
250
|
}
|
|
250
251
|
}
|
|
@@ -255,7 +256,7 @@ class T extends HTMLElement {
|
|
|
255
256
|
this.setAttribute("value", t);
|
|
256
257
|
}
|
|
257
258
|
}
|
|
258
|
-
customElements.define("eui-input",
|
|
259
|
+
customElements.define("eui-input", $);
|
|
259
260
|
class R extends HTMLElement {
|
|
260
261
|
constructor() {
|
|
261
262
|
super(), this.attachShadow({ mode: "open" }), this.shadowRoot.innerHTML = `
|
|
@@ -406,25 +407,25 @@ function _() {
|
|
|
406
407
|
function w(o) {
|
|
407
408
|
x.supports.haptics ? navigator.vibrate(o || 50) : x.is.iPhone && _();
|
|
408
409
|
}
|
|
409
|
-
const
|
|
410
|
+
const K = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
410
411
|
__proto__: null,
|
|
411
412
|
haptic: w
|
|
412
413
|
}, Symbol.toStringTag, { value: "Module" })), y = (() => {
|
|
413
414
|
let o = {}, t;
|
|
414
415
|
try {
|
|
415
416
|
o = JSON.parse(localStorage.getItem(t) || "{}");
|
|
416
|
-
} catch (
|
|
417
|
-
console.error(
|
|
417
|
+
} catch (e) {
|
|
418
|
+
console.error(e);
|
|
418
419
|
}
|
|
419
420
|
return {
|
|
420
|
-
get(
|
|
421
|
-
return o[
|
|
421
|
+
get(e) {
|
|
422
|
+
return o[e];
|
|
422
423
|
},
|
|
423
|
-
set(
|
|
424
|
-
o[
|
|
424
|
+
set(e, i) {
|
|
425
|
+
o[e] = i, localStorage.setItem(t, JSON.stringify(o));
|
|
425
426
|
},
|
|
426
|
-
delete(
|
|
427
|
-
delete o[
|
|
427
|
+
delete(e) {
|
|
428
|
+
delete o[e], localStorage.setItem(t, JSON.stringify(o));
|
|
428
429
|
},
|
|
429
430
|
all() {
|
|
430
431
|
return o;
|
|
@@ -432,23 +433,23 @@ const Y = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
|
432
433
|
clear() {
|
|
433
434
|
o = {}, localStorage.setItem(t, JSON.stringify(o));
|
|
434
435
|
},
|
|
435
|
-
name(
|
|
436
|
-
t =
|
|
436
|
+
name(e) {
|
|
437
|
+
t = e;
|
|
437
438
|
try {
|
|
438
439
|
o = JSON.parse(localStorage.getItem(t) || "{}");
|
|
439
|
-
} catch (
|
|
440
|
-
console.error(
|
|
440
|
+
} catch (i) {
|
|
441
|
+
console.error(i);
|
|
441
442
|
}
|
|
442
443
|
},
|
|
443
444
|
settings: {
|
|
444
|
-
get(
|
|
445
|
-
return o && o.settings && o.settings[
|
|
445
|
+
get(e) {
|
|
446
|
+
return o && o.settings && o.settings[e];
|
|
446
447
|
},
|
|
447
|
-
set(
|
|
448
|
-
o.settings || (o.settings = {}), o.settings[
|
|
448
|
+
set(e, i) {
|
|
449
|
+
o.settings || (o.settings = {}), o.settings[e] = i, localStorage.setItem(t, JSON.stringify(o));
|
|
449
450
|
},
|
|
450
|
-
delete(
|
|
451
|
-
o.settings && (delete o.settings[
|
|
451
|
+
delete(e) {
|
|
452
|
+
o.settings && (delete o.settings[e], localStorage.setItem(t, JSON.stringify(o)));
|
|
452
453
|
},
|
|
453
454
|
all() {
|
|
454
455
|
return o.settings || {};
|
|
@@ -458,12 +459,12 @@ const Y = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
|
458
459
|
}
|
|
459
460
|
}
|
|
460
461
|
};
|
|
461
|
-
})(), k = y.settings,
|
|
462
|
+
})(), k = y.settings, Y = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
462
463
|
__proto__: null,
|
|
463
464
|
settings: k,
|
|
464
465
|
storage: y
|
|
465
466
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
466
|
-
class
|
|
467
|
+
class F extends HTMLElement {
|
|
467
468
|
static get observedAttributes() {
|
|
468
469
|
return ["selected"];
|
|
469
470
|
}
|
|
@@ -549,7 +550,7 @@ class I extends HTMLElement {
|
|
|
549
550
|
const t = this.hasAttribute("selected");
|
|
550
551
|
this.inputEl.checked = t, this.switchEl.classList.toggle("selected", t);
|
|
551
552
|
}
|
|
552
|
-
attributeChangedCallback(t,
|
|
553
|
+
attributeChangedCallback(t, e, i) {
|
|
553
554
|
t === "selected" && this.inputEl && this.updateFromAttribute();
|
|
554
555
|
}
|
|
555
556
|
get selected() {
|
|
@@ -559,8 +560,8 @@ class I extends HTMLElement {
|
|
|
559
560
|
t ? this.setAttribute("selected", "") : this.removeAttribute("selected");
|
|
560
561
|
}
|
|
561
562
|
}
|
|
562
|
-
customElements.define("eui-switch",
|
|
563
|
-
class
|
|
563
|
+
customElements.define("eui-switch", F);
|
|
564
|
+
class I extends HTMLElement {
|
|
564
565
|
constructor() {
|
|
565
566
|
super(), this.attachShadow({ mode: "open" });
|
|
566
567
|
}
|
|
@@ -611,97 +612,97 @@ class F extends HTMLElement {
|
|
|
611
612
|
</style>
|
|
612
613
|
<slot></slot>
|
|
613
614
|
`, this.addEventListener("pointerdown", (t) => {
|
|
614
|
-
const
|
|
615
|
-
|
|
616
|
-
|
|
615
|
+
const e = document.createElement("span"), i = t.currentTarget, n = Math.max(i.offsetWidth, i.offsetHeight);
|
|
616
|
+
e.classList.add("ripple"), e.style.left = t.clientX - i.getBoundingClientRect().left - n / 2 + "px", e.style.top = t.clientY - i.getBoundingClientRect().top - n / 2 + "px", e.style.width = n + "px", e.style.height = n + "px", this.shadowRoot.appendChild(e), setTimeout(() => {
|
|
617
|
+
e.remove();
|
|
617
618
|
}, 600);
|
|
618
619
|
});
|
|
619
620
|
}
|
|
620
621
|
}
|
|
621
|
-
customElements.define("eui-chip",
|
|
622
|
-
const
|
|
622
|
+
customElements.define("eui-chip", I);
|
|
623
|
+
const m = "", C = (() => {
|
|
623
624
|
const o = [];
|
|
624
|
-
function t(
|
|
625
|
-
const h = [], g =
|
|
626
|
-
o.push({ regex: p, paramNames: h, renderFn:
|
|
625
|
+
function t(a, l) {
|
|
626
|
+
const h = [], g = a.replace(/:([^/]+)/g, (b, f) => (h.push(f), "([^/]+)")).replace(/\//g, "\\/"), p = new RegExp(`^${m}${g}$`);
|
|
627
|
+
o.push({ regex: p, paramNames: h, renderFn: l });
|
|
627
628
|
}
|
|
628
|
-
function
|
|
629
|
-
for (const { regex:
|
|
630
|
-
const p =
|
|
629
|
+
function e(a) {
|
|
630
|
+
for (const { regex: l, paramNames: h, renderFn: g } of o) {
|
|
631
|
+
const p = a.match(l);
|
|
631
632
|
if (p) {
|
|
632
|
-
const
|
|
633
|
+
const b = {};
|
|
633
634
|
return h.forEach((f, L) => {
|
|
634
|
-
|
|
635
|
-
}), { renderFn: g, params:
|
|
635
|
+
b[f] = decodeURIComponent(p[L + 1]);
|
|
636
|
+
}), { renderFn: g, params: b };
|
|
636
637
|
}
|
|
637
638
|
}
|
|
638
639
|
return null;
|
|
639
640
|
}
|
|
640
|
-
function
|
|
641
|
-
|
|
642
|
-
const h =
|
|
643
|
-
if (h === window.location.pathname &&
|
|
644
|
-
|
|
645
|
-
const p = "#" +
|
|
646
|
-
|
|
641
|
+
function i(a, l = !0) {
|
|
642
|
+
a.startsWith(m) || (a = m + (a.startsWith("/") ? "" : "/") + a);
|
|
643
|
+
const h = a.split(/[?#]/)[0];
|
|
644
|
+
if (h === window.location.pathname && a.includes("#")) {
|
|
645
|
+
l && history.pushState({}, "", a);
|
|
646
|
+
const p = "#" + a.split("#")[1];
|
|
647
|
+
n(p);
|
|
647
648
|
return;
|
|
648
649
|
}
|
|
649
|
-
const g =
|
|
650
|
+
const g = e(h);
|
|
650
651
|
if (g)
|
|
651
|
-
if (
|
|
652
|
-
const p = "#" +
|
|
653
|
-
setTimeout(() =>
|
|
652
|
+
if (l && history.pushState({}, "", a), g.renderFn(g.params), window.dispatchEvent(new CustomEvent("route-changed", { detail: { path: a } })), a.includes("#")) {
|
|
653
|
+
const p = "#" + a.split("#")[1];
|
|
654
|
+
setTimeout(() => n(p), 100);
|
|
654
655
|
} else {
|
|
655
656
|
const p = document.getElementById("main");
|
|
656
657
|
p && p.scrollTo(0, 0);
|
|
657
658
|
}
|
|
658
|
-
else
|
|
659
|
+
else s ? (l && history.pushState({}, "", a), s()) : console.warn(`No route found for ${h}`);
|
|
659
660
|
}
|
|
660
|
-
function
|
|
661
|
-
if (
|
|
661
|
+
function n(a) {
|
|
662
|
+
if (a)
|
|
662
663
|
try {
|
|
663
|
-
const
|
|
664
|
-
|
|
664
|
+
const l = document.querySelector(a);
|
|
665
|
+
l && l.scrollIntoView({ behavior: "smooth" });
|
|
665
666
|
} catch {
|
|
666
|
-
console.warn("Invalid hash:",
|
|
667
|
+
console.warn("Invalid hash:", a);
|
|
667
668
|
}
|
|
668
669
|
}
|
|
669
|
-
let
|
|
670
|
-
function
|
|
671
|
-
|
|
670
|
+
let s = null;
|
|
671
|
+
function r(a) {
|
|
672
|
+
s = a;
|
|
672
673
|
}
|
|
673
674
|
function c() {
|
|
674
675
|
history.back();
|
|
675
676
|
}
|
|
676
677
|
function d() {
|
|
677
|
-
return window.location.pathname.replace(
|
|
678
|
+
return window.location.pathname.replace(m, "") || "/";
|
|
678
679
|
}
|
|
679
680
|
return window.addEventListener("popstate", () => {
|
|
680
|
-
const
|
|
681
|
-
|
|
682
|
-
}), window.addEventListener("click", (
|
|
683
|
-
if (
|
|
684
|
-
const
|
|
685
|
-
if (!
|
|
686
|
-
const h =
|
|
681
|
+
const a = window.location.pathname + window.location.search + window.location.hash;
|
|
682
|
+
i(a, !1);
|
|
683
|
+
}), window.addEventListener("click", (a) => {
|
|
684
|
+
if (a.button !== 0 || a.metaKey || a.altKey || a.ctrlKey || a.shiftKey) return;
|
|
685
|
+
const l = a.target.closest("a");
|
|
686
|
+
if (!l || l.hasAttribute("download") || l.getAttribute("target") === "_blank") return;
|
|
687
|
+
const h = l.getAttribute("href");
|
|
687
688
|
if (!(!h || h.startsWith("http") && !h.startsWith(window.location.origin))) {
|
|
688
|
-
if (
|
|
689
|
-
history.pushState({}, "", h),
|
|
689
|
+
if (a.preventDefault(), h.startsWith("#")) {
|
|
690
|
+
history.pushState({}, "", h), n(h);
|
|
690
691
|
return;
|
|
691
692
|
}
|
|
692
|
-
|
|
693
|
+
i(h);
|
|
693
694
|
}
|
|
694
|
-
}), { add: t, navigate:
|
|
695
|
+
}), { add: t, navigate: i, back: c, location: d, setNotFound: r };
|
|
695
696
|
})();
|
|
696
697
|
async function G(o) {
|
|
697
698
|
try {
|
|
698
699
|
const t = document.getElementById("main");
|
|
699
|
-
t.classList.add("fade-out"), await new Promise((
|
|
700
|
-
const
|
|
701
|
-
t.innerHTML =
|
|
700
|
+
t.classList.add("fade-out"), await new Promise((i) => setTimeout(i, 200));
|
|
701
|
+
const e = await fetch(`/src/pages/${o}.html`).then((i) => i.text());
|
|
702
|
+
t.innerHTML = e, t.classList.remove("fade-out"), t.classList.add("fade-in"), window.location.hash ? setTimeout(() => {
|
|
702
703
|
try {
|
|
703
|
-
const
|
|
704
|
-
|
|
704
|
+
const i = document.querySelector(window.location.hash);
|
|
705
|
+
i && i.scrollIntoView({ behavior: "smooth" });
|
|
705
706
|
} catch {
|
|
706
707
|
}
|
|
707
708
|
}, 100) : t && t.scrollTo(0, 0), setTimeout(() => {
|
|
@@ -711,12 +712,12 @@ async function G(o) {
|
|
|
711
712
|
console.error("Page load failed:", t);
|
|
712
713
|
}
|
|
713
714
|
}
|
|
714
|
-
class
|
|
715
|
+
class j extends HTMLElement {
|
|
715
716
|
constructor() {
|
|
716
717
|
super();
|
|
717
718
|
v(this, "handleClick", () => {
|
|
718
|
-
const
|
|
719
|
-
|
|
719
|
+
const e = this.getAttribute("path");
|
|
720
|
+
e && C.navigate(e);
|
|
720
721
|
});
|
|
721
722
|
this.attachShadow({ mode: "open" });
|
|
722
723
|
}
|
|
@@ -729,42 +730,42 @@ class q extends HTMLElement {
|
|
|
729
730
|
disconnectedCallback() {
|
|
730
731
|
this.removeEventListener("click", this.handleClick);
|
|
731
732
|
}
|
|
732
|
-
attributeChangedCallback(
|
|
733
|
-
if (
|
|
734
|
-
if (
|
|
733
|
+
attributeChangedCallback(e, i, n) {
|
|
734
|
+
if (i !== n && this.hasRendered) {
|
|
735
|
+
if (e === "active")
|
|
735
736
|
return;
|
|
736
737
|
this.updateContent();
|
|
737
738
|
}
|
|
738
739
|
}
|
|
739
740
|
setupEventListeners() {
|
|
740
|
-
this.addEventListener("pointerdown", (
|
|
741
|
-
const
|
|
742
|
-
|
|
743
|
-
|
|
741
|
+
this.addEventListener("pointerdown", (e) => {
|
|
742
|
+
const i = document.createElement("span"), n = e.currentTarget, s = n.getBoundingClientRect(), r = Math.max(n.offsetWidth, n.offsetHeight), c = r / 2;
|
|
743
|
+
i.classList.add("ripple"), i.style.width = `${r}px`, i.style.height = `${r}px`, i.style.left = `${e.clientX - s.left - c}px`, i.style.top = `${e.clientY - s.top - c}px`, this.shadowRoot.appendChild(i), i.addEventListener("animationend", () => {
|
|
744
|
+
i.remove();
|
|
744
745
|
});
|
|
745
746
|
});
|
|
746
747
|
}
|
|
747
748
|
updateContent() {
|
|
748
|
-
const
|
|
749
|
-
if (
|
|
749
|
+
const e = this.getAttribute("icon"), i = this.getAttribute("avatar-src"), n = this.getAttribute("avatar-name"), s = this.getAttribute("label") || "", r = this.getAttribute("badge"), c = this.shadowRoot.querySelector(".badge");
|
|
750
|
+
if (r)
|
|
750
751
|
if (c)
|
|
751
|
-
c.textContent =
|
|
752
|
+
c.textContent = r;
|
|
752
753
|
else {
|
|
753
|
-
const
|
|
754
|
-
|
|
754
|
+
const l = document.createElement("span");
|
|
755
|
+
l.className = "badge", l.textContent = r, this.shadowRoot.appendChild(l);
|
|
755
756
|
}
|
|
756
757
|
else c && c.remove();
|
|
757
758
|
const d = this.shadowRoot.querySelector("slot[name='icon']");
|
|
758
759
|
if (d)
|
|
759
|
-
if (
|
|
760
|
-
let
|
|
761
|
-
|
|
760
|
+
if (i || n) {
|
|
761
|
+
let l = '<eui-avatar size="24"';
|
|
762
|
+
n && (l += ` name="${n}"`), l += ">", i && (l += `<img src="${i}" alt="${n || "Avatar"}" />`), l += "</eui-avatar>", d.innerHTML = l;
|
|
762
763
|
} else {
|
|
763
|
-
const
|
|
764
|
-
|
|
764
|
+
const l = d.querySelector("eui-icon");
|
|
765
|
+
e && l ? l.getAttribute("name") !== e && l.setAttribute("name", e) : e ? d.innerHTML = `<eui-icon width="24" height="24" name="${e}"></eui-icon>` : d.innerHTML = "";
|
|
765
766
|
}
|
|
766
|
-
const
|
|
767
|
-
|
|
767
|
+
const a = this.shadowRoot.querySelector(".label");
|
|
768
|
+
a && (a.textContent = s);
|
|
768
769
|
}
|
|
769
770
|
render() {
|
|
770
771
|
this.shadowRoot.innerHTML = `
|
|
@@ -875,8 +876,8 @@ class q extends HTMLElement {
|
|
|
875
876
|
`;
|
|
876
877
|
}
|
|
877
878
|
}
|
|
878
|
-
customElements.define("eui-nav-item",
|
|
879
|
-
class
|
|
879
|
+
customElements.define("eui-nav-item", j);
|
|
880
|
+
class q extends HTMLElement {
|
|
880
881
|
constructor() {
|
|
881
882
|
super(), this.attachShadow({ mode: "open" });
|
|
882
883
|
}
|
|
@@ -985,11 +986,11 @@ class j extends HTMLElement {
|
|
|
985
986
|
<a href="#content" id="skip_navigation_link">Skip To Content</a>
|
|
986
987
|
<div class="nav-items">
|
|
987
988
|
${this.navItems.map((t) => {
|
|
988
|
-
var
|
|
989
|
+
var n, s;
|
|
989
990
|
if (t.type === "divider")
|
|
990
991
|
return '<div style="height: 1px; background: var(--app-300); margin: 0.5rem 0;"></div>';
|
|
991
|
-
const
|
|
992
|
-
return `<eui-nav-item path="${t.path}" icon="${t.icon}" avatar-src="${
|
|
992
|
+
const e = ((n = t.avatar) == null ? void 0 : n.src) || "", i = ((s = t.avatar) == null ? void 0 : s.name) || "";
|
|
993
|
+
return `<eui-nav-item path="${t.path}" icon="${t.icon}" avatar-src="${e}" avatar-name="${i}" label="${t.label}"></eui-nav-item>`;
|
|
993
994
|
}).join("")}
|
|
994
995
|
</div>
|
|
995
996
|
</div>
|
|
@@ -1002,12 +1003,12 @@ class j extends HTMLElement {
|
|
|
1002
1003
|
return this._navItems || [];
|
|
1003
1004
|
}
|
|
1004
1005
|
updateActiveState(t) {
|
|
1005
|
-
t || (t = C.location()), t.startsWith("/") || (t = "/" + t), this.shadowRoot.querySelectorAll("eui-nav-item").forEach((
|
|
1006
|
-
|
|
1006
|
+
t || (t = C.location()), t.startsWith("/") || (t = "/" + t), this.shadowRoot.querySelectorAll("eui-nav-item").forEach((i) => {
|
|
1007
|
+
i.getAttribute("path") === t ? i.setAttribute("active", "") : i.removeAttribute("active");
|
|
1007
1008
|
});
|
|
1008
1009
|
}
|
|
1009
1010
|
}
|
|
1010
|
-
customElements.define("eui-app-nav",
|
|
1011
|
+
customElements.define("eui-app-nav", q);
|
|
1011
1012
|
class B extends HTMLElement {
|
|
1012
1013
|
static get observedAttributes() {
|
|
1013
1014
|
return ["type", "title", "subtitle", "img"];
|
|
@@ -1073,6 +1074,22 @@ class B extends HTMLElement {
|
|
|
1073
1074
|
.small p {
|
|
1074
1075
|
margin: 0;
|
|
1075
1076
|
}
|
|
1077
|
+
|
|
1078
|
+
@media (max-width: 768px) {
|
|
1079
|
+
.header {
|
|
1080
|
+
padding: 1rem;
|
|
1081
|
+
}
|
|
1082
|
+
|
|
1083
|
+
.hero {
|
|
1084
|
+
align-items: center;
|
|
1085
|
+
justify-content: center;
|
|
1086
|
+
text-align: center;
|
|
1087
|
+
}
|
|
1088
|
+
|
|
1089
|
+
.large h1, .hero h1 {
|
|
1090
|
+
font-size: 4rem;
|
|
1091
|
+
}
|
|
1092
|
+
}
|
|
1076
1093
|
</style>
|
|
1077
1094
|
|
|
1078
1095
|
<div class="header">
|
|
@@ -1087,9 +1104,9 @@ class B extends HTMLElement {
|
|
|
1087
1104
|
connectedCallback() {
|
|
1088
1105
|
this.hd = this.shadowRoot.querySelector(".header"), this.hasAttribute("type") && this.hd.classList.add(this.getAttribute("type"));
|
|
1089
1106
|
}
|
|
1090
|
-
attributeChangedCallback(t,
|
|
1091
|
-
const
|
|
1092
|
-
t === "title" && (
|
|
1107
|
+
attributeChangedCallback(t, e, i) {
|
|
1108
|
+
const n = this.shadowRoot.querySelector("h1"), s = this.shadowRoot.querySelector("p"), r = this.shadowRoot.querySelector(".img");
|
|
1109
|
+
t === "title" && (n.textContent = i), t === "subtitle" && (s.textContent = i), t === "img" && (r.style.backgroundImage = i ? `url(${i})` : "");
|
|
1093
1110
|
}
|
|
1094
1111
|
}
|
|
1095
1112
|
customElements.define("eui-header", B);
|
|
@@ -1188,14 +1205,14 @@ class N extends HTMLElement {
|
|
|
1188
1205
|
}
|
|
1189
1206
|
toggle() {
|
|
1190
1207
|
this.selected = !this.selected, w();
|
|
1191
|
-
const t = this.selected,
|
|
1192
|
-
|
|
1208
|
+
const t = this.selected, e = this.dataset.setting;
|
|
1209
|
+
e && k.set(e, t);
|
|
1193
1210
|
}
|
|
1194
1211
|
updateFromAttribute() {
|
|
1195
1212
|
const t = this.hasAttribute("selected");
|
|
1196
1213
|
this.inputEl.checked = t, this.checkEl.classList.toggle("selected", t);
|
|
1197
1214
|
}
|
|
1198
|
-
attributeChangedCallback(t,
|
|
1215
|
+
attributeChangedCallback(t, e, i) {
|
|
1199
1216
|
t === "selected" && this.inputEl && this.updateFromAttribute();
|
|
1200
1217
|
}
|
|
1201
1218
|
get selected() {
|
|
@@ -1206,7 +1223,7 @@ class N extends HTMLElement {
|
|
|
1206
1223
|
}
|
|
1207
1224
|
}
|
|
1208
1225
|
customElements.define("eui-checkbox", N);
|
|
1209
|
-
class
|
|
1226
|
+
class E extends HTMLElement {
|
|
1210
1227
|
constructor() {
|
|
1211
1228
|
super(), this.attachShadow({ mode: "open" });
|
|
1212
1229
|
}
|
|
@@ -1214,7 +1231,7 @@ class A extends HTMLElement {
|
|
|
1214
1231
|
this.render();
|
|
1215
1232
|
}
|
|
1216
1233
|
render() {
|
|
1217
|
-
const t = this.getAttribute("href"),
|
|
1234
|
+
const t = this.getAttribute("href"), e = t ? "a" : "button";
|
|
1218
1235
|
this.shadowRoot.innerHTML = `
|
|
1219
1236
|
<style>
|
|
1220
1237
|
button, a {
|
|
@@ -1318,21 +1335,21 @@ class A extends HTMLElement {
|
|
|
1318
1335
|
}
|
|
1319
1336
|
|
|
1320
1337
|
</style>
|
|
1321
|
-
<${
|
|
1338
|
+
<${e}>
|
|
1322
1339
|
<slot></slot>
|
|
1323
|
-
</${
|
|
1340
|
+
</${e}>
|
|
1324
1341
|
`;
|
|
1325
|
-
const
|
|
1326
|
-
t &&
|
|
1327
|
-
const
|
|
1328
|
-
|
|
1329
|
-
|
|
1342
|
+
const i = this.shadowRoot.querySelector(e);
|
|
1343
|
+
t && i.setAttribute("href", t), this.hasAttribute("type") && i.classList.add(this.getAttribute("type")), this.hasAttribute("icon") && i.classList.add("icon"), this.hasAttribute("width") && (i.style.width = this.getAttribute("width") + "px"), this.hasAttribute("height") && (i.style.height = this.getAttribute("height") + "px"), this.hasAttribute("border-radius") && (i.style.borderRadius = this.getAttribute("border-radius") + "px"), i.addEventListener("pointerdown", (n) => {
|
|
1344
|
+
const s = document.createElement("span"), r = n.currentTarget, c = r.getBoundingClientRect(), d = Math.max(r.offsetWidth, r.offsetHeight), a = d / 2;
|
|
1345
|
+
s.classList.add("ripple"), s.style.width = `${d}px`, s.style.height = `${d}px`, s.style.left = `${n.clientX - c.left - a}px`, s.style.top = `${n.clientY - c.top - a}px`, i.appendChild(s), s.addEventListener("animationend", () => {
|
|
1346
|
+
s.remove();
|
|
1330
1347
|
});
|
|
1331
1348
|
});
|
|
1332
1349
|
}
|
|
1333
1350
|
}
|
|
1334
|
-
v(
|
|
1335
|
-
customElements.define("eui-button",
|
|
1351
|
+
v(E, "observedAttributes", ["type", "width", "height", "border-radius", "icon", "link", "href"]);
|
|
1352
|
+
customElements.define("eui-button", E);
|
|
1336
1353
|
class O extends HTMLElement {
|
|
1337
1354
|
static get observedAttributes() {
|
|
1338
1355
|
return ["type", "anchor"];
|
|
@@ -1407,28 +1424,28 @@ class O extends HTMLElement {
|
|
|
1407
1424
|
}
|
|
1408
1425
|
customElements.define("eui-heading", O);
|
|
1409
1426
|
function P(o) {
|
|
1410
|
-
const
|
|
1411
|
-
return
|
|
1427
|
+
const i = Date.now() - o, n = Math.floor(i / 1e3), s = Math.floor(n / 60), r = Math.floor(s / 60), c = Math.floor(r / 24), d = Math.floor(c / 30), a = Math.floor(d / 12);
|
|
1428
|
+
return a > 0 ? `${a}y` : d > 0 ? `${d}mo` : c > 0 ? `${c}d` : r > 0 ? `${r}h` : s > 0 ? `${s}m` : `${n}s`;
|
|
1412
1429
|
}
|
|
1413
1430
|
function V(o) {
|
|
1414
|
-
const
|
|
1415
|
-
return
|
|
1431
|
+
const i = Date.now() - o, n = Math.floor(i / 1e3), s = Math.floor(n / 60), r = Math.floor(s / 60), c = Math.floor(r / 24), d = Math.floor(c / 30), a = Math.floor(d / 12);
|
|
1432
|
+
return a > 0 ? `${a} year${a > 1 ? "s" : ""} ago` : d > 0 ? `${d} month${d > 1 ? "s" : ""} ago` : c > 0 ? `${c} day${c > 1 ? "s" : ""} ago` : r > 0 ? `${r} hour${r > 1 ? "s" : ""} ago` : s > 0 ? `${s} minute${s > 1 ? "s" : ""} ago` : `${n} second${n > 1 ? "s" : ""} ago`;
|
|
1416
1433
|
}
|
|
1417
|
-
function
|
|
1434
|
+
function D(o) {
|
|
1418
1435
|
return o.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'").replace(/`/g, "`").replace(/'/g, "'");
|
|
1419
1436
|
}
|
|
1420
|
-
function
|
|
1437
|
+
function A(o) {
|
|
1421
1438
|
const t = document.createElement("input");
|
|
1422
1439
|
t.value = o, document.body.appendChild(t), t.select(), document.execCommand("copy"), document.body.removeChild(t);
|
|
1423
1440
|
}
|
|
1424
1441
|
const Q = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
1425
1442
|
__proto__: null,
|
|
1426
|
-
copystr:
|
|
1443
|
+
copystr: A,
|
|
1427
1444
|
joinedAgo: V,
|
|
1428
|
-
sanitize:
|
|
1445
|
+
sanitize: D,
|
|
1429
1446
|
timeAgo: P
|
|
1430
1447
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
1431
|
-
class
|
|
1448
|
+
class U extends HTMLElement {
|
|
1432
1449
|
static get observedAttributes() {
|
|
1433
1450
|
return ["copy", "id", "type", "language"];
|
|
1434
1451
|
}
|
|
@@ -1438,11 +1455,11 @@ class Z extends HTMLElement {
|
|
|
1438
1455
|
connectedCallback() {
|
|
1439
1456
|
this._isRendered || (this.render(), this._isRendered = !0);
|
|
1440
1457
|
}
|
|
1441
|
-
attributeChangedCallback(t,
|
|
1442
|
-
this._isRendered &&
|
|
1458
|
+
attributeChangedCallback(t, e, i) {
|
|
1459
|
+
this._isRendered && e !== i && this.render();
|
|
1443
1460
|
}
|
|
1444
1461
|
render() {
|
|
1445
|
-
const t = this.hasAttribute("copy"),
|
|
1462
|
+
const t = this.hasAttribute("copy"), e = this.getAttribute("language") || "text";
|
|
1446
1463
|
this.shadowRoot.innerHTML = `
|
|
1447
1464
|
<style>
|
|
1448
1465
|
:host {
|
|
@@ -1480,14 +1497,14 @@ class Z extends HTMLElement {
|
|
|
1480
1497
|
}
|
|
1481
1498
|
|
|
1482
1499
|
.token.comment { color: var(--app-700); font-style: italic; }
|
|
1483
|
-
.token.string { color:
|
|
1484
|
-
.token.number { color:
|
|
1485
|
-
.token.keyword { color:
|
|
1486
|
-
.token.function { color:
|
|
1487
|
-
.token.tag { color:
|
|
1488
|
-
.token.attr-name { color:
|
|
1489
|
-
.token.attr-value { color:
|
|
1490
|
-
.token.boolean { color:
|
|
1500
|
+
.token.string { color: #9ECE6A; }
|
|
1501
|
+
.token.number { color: #F97C5F; }
|
|
1502
|
+
.token.keyword { color: #7DCFFF; }
|
|
1503
|
+
.token.function { color: #7DCFFF; }
|
|
1504
|
+
.token.tag { color: #DE5971; }
|
|
1505
|
+
.token.attr-name { color: #BB9AF7; }
|
|
1506
|
+
.token.attr-value { color: #9ECE6A; }
|
|
1507
|
+
.token.boolean { color: #F97C5F; }
|
|
1491
1508
|
</style>
|
|
1492
1509
|
|
|
1493
1510
|
<eui-button class="copy" width="36" height="36" border-radius="100">
|
|
@@ -1496,34 +1513,47 @@ class Z extends HTMLElement {
|
|
|
1496
1513
|
|
|
1497
1514
|
<pre class="${t ? "g" : ""}"><code></code></pre>
|
|
1498
1515
|
`, this.copyBtn = this.shadowRoot.querySelector(".copy"), this.codeEl = this.shadowRoot.querySelector("code");
|
|
1499
|
-
const
|
|
1500
|
-
this.codeEl.innerHTML = this._highlight(
|
|
1516
|
+
const i = this._getFormattedText();
|
|
1517
|
+
this.codeEl.innerHTML = this._highlight(i, e), t ? this.copyBtn.addEventListener("click", this._boundCopy) : this.copyBtn.style.display = "none";
|
|
1501
1518
|
}
|
|
1502
1519
|
_getFormattedText() {
|
|
1503
|
-
let
|
|
1504
|
-
|
|
1505
|
-
const i =
|
|
1506
|
-
`),
|
|
1507
|
-
return i.map((
|
|
1520
|
+
let e = (this.querySelector("code") || this).innerHTML || "";
|
|
1521
|
+
e = this._unescapeHtml(e), e = e.replace(/^\s*\n/, "").replace(/\n\s*$/, "");
|
|
1522
|
+
const i = e.split(`
|
|
1523
|
+
`), n = i.filter((r) => r.trim()).map((r) => r.match(/^\s*/)[0].length), s = n.length ? Math.min(...n) : 0;
|
|
1524
|
+
return i.map((r) => r.slice(s)).join(`
|
|
1508
1525
|
`);
|
|
1509
1526
|
}
|
|
1510
|
-
|
|
1511
|
-
|
|
1527
|
+
_unescapeHtml(t) {
|
|
1528
|
+
const e = document.createElement("textarea");
|
|
1529
|
+
return e.innerHTML = t, e.value;
|
|
1530
|
+
}
|
|
1531
|
+
_highlight(t, e) {
|
|
1532
|
+
t = t.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">");
|
|
1533
|
+
const i = {};
|
|
1534
|
+
let n = 0;
|
|
1535
|
+
function s(r, c) {
|
|
1536
|
+
const d = `__TOKEN_${c}_${n++}__`;
|
|
1537
|
+
return i[d] = `<span class="token ${c}">${r}</span>`, d;
|
|
1538
|
+
}
|
|
1539
|
+
return ["javascript", "js", "json", "bash", "sh", "css"].includes(e) ? (t = t.replace(/("(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')/g, (r) => s(r, "string")), e === "bash" || e === "sh" ? t = t.replace(/(#.*$)/gm, (r) => s(r, "comment")) : e === "css" ? t = t.replace(/(\/\*[\s\S]*?\*\/)/g, (r) => s(r, "comment")) : t = t.replace(/(\/\/.*$|\/\*[\s\S]*?\*\/)/gm, (r) => s(r, "comment"))) : ["html", "xml"].includes(e) && (t = t.replace(/(<!--[\s\S]*?-->)/g, (r) => s(r, "comment")), t = t.replace(/(<\/?[a-z0-9:-]+)/gi, (r) => s(r, "tag"))), e === "javascript" || e === "js" || e === "json" ? (t = t.replace(/\b(const|let|var|if|else|for|while|return|function|class|import|export|from|default|switch|case|break|continue|new|this|async|await)\b/g, '<span class="token keyword">$1</span>'), t = t.replace(/\b(true|false|null|undefined)\b/g, '<span class="token boolean">$1</span>'), t = t.replace(/\b([a-zA-Z0-9_]+)\s*(?=\()/g, '<span class="token function">$1</span>')) : e === "bash" || e === "sh" ? (t = t.replace(/\b(npm|npx|node|git|cd|ls|mkdir|rm|mv|cp|echo|cat|sudo|docker|brew|grep|curl|wget|chmod|chown|touch)\b/g, '<span class="token keyword">$1</span>'), t = t.replace(/\b(install|run|build|start|test|dev|init|clone|pull|push|commit|add|checkout|branch|merge)\b/g, '<span class="token function">$1</span>'), t = t.replace(/(\s-+[a-zA-Z0-9-]+)/g, '<span class="token attr-name">$1</span>'), t = t.replace(/(\$[A-Z0-9_]+)/g, '<span class="token number">$1</span>')) : e === "html" || e === "xml" ? (t = t.replace(/\s([a-z0-9:-]+)=/gi, (r, c) => " " + s(c, "attr-name") + "="), t = t.replace(/(".*?")/g, (r) => s(r, "attr-value")), t = t.replace(/>/g, '<span class="token tag">></span>')) : e === "css" && (t = t.replace(/([a-z-]+)(?=:)/g, '<span class="token keyword">$1</span>')), Object.keys(i).reverse().forEach((r) => {
|
|
1540
|
+
t = t.replace(r, i[r]);
|
|
1541
|
+
}), t;
|
|
1512
1542
|
}
|
|
1513
1543
|
_onCopy() {
|
|
1514
|
-
|
|
1544
|
+
A(this._getFormattedText());
|
|
1515
1545
|
const t = this.copyBtn.querySelector("eui-icon");
|
|
1516
1546
|
if (t) {
|
|
1517
|
-
const
|
|
1518
|
-
t.setAttribute("name", "check"), setTimeout(() => t.setAttribute("name",
|
|
1547
|
+
const e = t.getAttribute("name");
|
|
1548
|
+
t.setAttribute("name", "check"), setTimeout(() => t.setAttribute("name", e), 2e3);
|
|
1519
1549
|
}
|
|
1520
1550
|
}
|
|
1521
1551
|
disconnectedCallback() {
|
|
1522
1552
|
this.copyBtn && this.copyBtn.removeEventListener("click", this._boundCopy);
|
|
1523
1553
|
}
|
|
1524
1554
|
}
|
|
1525
|
-
customElements.define("eui-code",
|
|
1526
|
-
class
|
|
1555
|
+
customElements.define("eui-code", U);
|
|
1556
|
+
class Z extends HTMLElement {
|
|
1527
1557
|
constructor() {
|
|
1528
1558
|
super(), this.attachShadow({ mode: "open" });
|
|
1529
1559
|
}
|
|
@@ -1533,7 +1563,7 @@ class D extends HTMLElement {
|
|
|
1533
1563
|
static get observedAttributes() {
|
|
1534
1564
|
return ["name"];
|
|
1535
1565
|
}
|
|
1536
|
-
attributeChangedCallback(t,
|
|
1566
|
+
attributeChangedCallback(t, e, i) {
|
|
1537
1567
|
t === "name" && (this.render(), this.setupEventListeners());
|
|
1538
1568
|
}
|
|
1539
1569
|
setupEventListeners() {
|
|
@@ -1639,7 +1669,7 @@ class D extends HTMLElement {
|
|
|
1639
1669
|
`;
|
|
1640
1670
|
}
|
|
1641
1671
|
}
|
|
1642
|
-
customElements.define("eui-app-titlebar",
|
|
1672
|
+
customElements.define("eui-app-titlebar", Z);
|
|
1643
1673
|
class X extends HTMLElement {
|
|
1644
1674
|
constructor() {
|
|
1645
1675
|
super(), this.attachShadow({ mode: "open" }), this._handleMouseDown = this._addRipple.bind(this);
|
|
@@ -1650,16 +1680,16 @@ class X extends HTMLElement {
|
|
|
1650
1680
|
static get observedAttributes() {
|
|
1651
1681
|
return ["elevated", "interactive", "ripple"];
|
|
1652
1682
|
}
|
|
1653
|
-
attributeChangedCallback(t,
|
|
1654
|
-
|
|
1683
|
+
attributeChangedCallback(t, e, i) {
|
|
1684
|
+
e !== i && t === "ripple" && this.setupEventListeners();
|
|
1655
1685
|
}
|
|
1656
1686
|
setupEventListeners() {
|
|
1657
1687
|
this.removeEventListener("mousedown", this._handleMouseDown), this.hasAttribute("ripple") && this.addEventListener("mousedown", this._handleMouseDown);
|
|
1658
1688
|
}
|
|
1659
1689
|
_addRipple(t) {
|
|
1660
|
-
const
|
|
1661
|
-
|
|
1662
|
-
|
|
1690
|
+
const e = this.getBoundingClientRect(), i = document.createElement("span"), n = Math.max(e.width, e.height), s = n / 2;
|
|
1691
|
+
i.style.width = i.style.height = `${n}px`, i.style.left = `${t.clientX - e.left - s}px`, i.style.top = `${t.clientY - e.top - s}px`, i.classList.add("ripple"), this.shadowRoot.querySelector(".surface").appendChild(i), i.addEventListener("animationend", () => {
|
|
1692
|
+
i.remove();
|
|
1663
1693
|
});
|
|
1664
1694
|
}
|
|
1665
1695
|
render() {
|
|
@@ -1731,10 +1761,10 @@ customElements.define("eui-surface", X);
|
|
|
1731
1761
|
typeof window < "u" && console.log("ErisUI loaded successfully");
|
|
1732
1762
|
export {
|
|
1733
1763
|
J as device,
|
|
1734
|
-
|
|
1764
|
+
K as haptics,
|
|
1735
1765
|
u as icons,
|
|
1736
1766
|
G as loadPage,
|
|
1737
1767
|
C as router,
|
|
1738
|
-
|
|
1768
|
+
Y as storage,
|
|
1739
1769
|
Q as utils
|
|
1740
1770
|
};
|