@3r1s_s/erisui 1.0.27 → 1.0.29
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 +11 -12
- package/dist/erisui.mjs +75 -70
- package/package.json +1 -1
package/dist/erisui.js
CHANGED
|
@@ -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"),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 a=this.getAttribute("name").trim().split(/\s+/);let
|
|
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 a=this.getAttribute("name").trim().split(/\s+/);let n="";a.length===1?n=a[0][0]||"":n=(a[0][0]||"")+(a[a.length-1][0]||""),this.initials.textContent=n.toUpperCase()}}}customElements.define("eui-avatar",m);const u=(()=>{let s={};return{register(t,e){s[t]=e},get(t){return s[t]||""}}})();u.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>'),u.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>'),u.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>'),u.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>'),u.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>'),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>'),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>'),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>'),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>');class A 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=u.get(t);if(!e){this.shadowRoot.innerHTML='<span style="color:red;">?</span>';return}const i=document.createElement("template");i.innerHTML=e.trim();const a=i.content.cloneNode(!0),n=a.firstElementChild;if(n&&n.style){const r=this.getAttribute("width"),l=this.getAttribute("height");r&&n.setAttribute("width",r),l&&n.setAttribute("height",l),n.style.display="block"}this.shadowRoot.innerHTML="",this.shadowRoot.appendChild(a)}}customElements.define("eui-icon",A);class L 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;
|
|
@@ -346,7 +346,7 @@
|
|
|
346
346
|
}
|
|
347
347
|
</style>
|
|
348
348
|
<slot></slot>
|
|
349
|
-
`,this.addEventListener("pointerdown",t=>{const e=document.createElement("span"),i=t.currentTarget,a=Math.max(i.offsetWidth,i.offsetHeight);e.classList.add("ripple"),e.style.left=t.clientX-i.getBoundingClientRect().left-a/2+"px",e.style.top=t.clientY-i.getBoundingClientRect().top-a/2+"px",e.style.width=a+"px",e.style.height=a+"px",this.shadowRoot.appendChild(e),setTimeout(()=>{e.remove()},600)})}}customElements.define("eui-chip",I);const v="",f=(()=>{const s=[];function t(
|
|
349
|
+
`,this.addEventListener("pointerdown",t=>{const e=document.createElement("span"),i=t.currentTarget,a=Math.max(i.offsetWidth,i.offsetHeight);e.classList.add("ripple"),e.style.left=t.clientX-i.getBoundingClientRect().left-a/2+"px",e.style.top=t.clientY-i.getBoundingClientRect().top-a/2+"px",e.style.width=a+"px",e.style.height=a+"px",this.shadowRoot.appendChild(e),setTimeout(()=>{e.remove()},600)})}}customElements.define("eui-chip",I);const v="",f=(()=>{const s=[];function t(o,d){const h=[],g=o.replace(/:([^/]+)/g,(y,k)=>(h.push(k),"([^/]+)")).replace(/\//g,"\\/"),b=new RegExp(`^${v}${g}$`);s.push({regex:b,paramNames:h,renderFn:d})}function e(o){for(const{regex:d,paramNames:h,renderFn:g}of s){const b=o.match(d);if(b){const y={};return h.forEach((k,Q)=>{y[k]=decodeURIComponent(b[Q+1])}),{renderFn:g,params:y}}}return null}function i(o,d=!0){o.startsWith(v)||(o=v+(o.startsWith("/")?"":"/")+o);const h=o.split(/[?#]/)[0];if(h===window.location.pathname&&o.includes("#")){d&&history.pushState({},"",o);const b="#"+o.split("#")[1];a(b);return}const g=e(h);if(g)if(d&&history.pushState({},"",o),g.renderFn(g.params),window.dispatchEvent(new CustomEvent("route-changed",{detail:{path:o}})),o.includes("#")){const b="#"+o.split("#")[1];setTimeout(()=>a(b),100)}else{const b=document.getElementById("main");b&&b.scrollTo(0,0)}else n?(d&&history.pushState({},"",o),n()):console.warn(`No route found for ${h}`)}function a(o){if(o)try{const d=document.querySelector(o);d&&d.scrollIntoView({behavior:"smooth"})}catch{console.warn("Invalid hash:",o)}}let n=null;function r(o){n=o}function l(){history.back()}function c(){return window.location.pathname.replace(v,"")||"/"}return window.addEventListener("popstate",()=>{const o=window.location.pathname+window.location.search+window.location.hash;i(o,!1)}),window.addEventListener("click",o=>{if(o.button!==0||o.metaKey||o.altKey||o.ctrlKey||o.shiftKey)return;const d=o.target.closest("a");if(!d||d.hasAttribute("download")||d.getAttribute("target")==="_blank")return;const h=d.getAttribute("href");if(!(!h||h.startsWith("http")&&!h.startsWith(window.location.origin))){if(o.preventDefault(),h.startsWith("#")){history.pushState({},"",h),a(h);return}i(h)}}),{add:t,navigate:i,back:l,location:c,setNotFound:r}})();async function F(s){try{const t=document.getElementById("main");t.classList.add("fade-out"),await new Promise(i=>setTimeout(i,200));const e=await fetch(`/src/pages/${s}.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 j extends HTMLElement{static get observedAttributes(){return["path","icon","label","badge","active","avatar-src","avatar-name"]}constructor(){super(),this.attachShadow({mode:"open"})}connectedCallback(){this.hasRendered||(this.render(),this.setupEventListeners(),this.hasRendered=!0),this.updateContent(),this.addEventListener("click",this.handleClick)}disconnectedCallback(){this.removeEventListener("click",this.handleClick)}attributeChangedCallback(t,e,i){if(e!==i&&this.hasRendered){if(t==="active")return;this.updateContent()}}handleClick=()=>{const t=this.getAttribute("path");t&&f.navigate(t)};setupEventListeners(){this.addEventListener("pointerdown",t=>{const e=document.createElement("span"),i=t.currentTarget,a=i.getBoundingClientRect(),n=Math.max(i.offsetWidth,i.offsetHeight),r=n/2;e.classList.add("ripple"),e.style.width=`${n}px`,e.style.height=`${n}px`,e.style.left=`${t.clientX-a.left-r}px`,e.style.top=`${t.clientY-a.top-r}px`,this.shadowRoot.appendChild(e),e.addEventListener("animationend",()=>{e.remove()})})}updateContent(){const t=this.getAttribute("icon"),e=this.getAttribute("avatar-src"),i=this.getAttribute("avatar-name"),a=this.getAttribute("label")||"",n=this.getAttribute("badge"),r=this.shadowRoot.querySelector(".badge");if(n)if(r)r.textContent=n;else{const o=document.createElement("span");o.className="badge",o.textContent=n,this.shadowRoot.appendChild(o)}else r&&r.remove();const l=this.shadowRoot.querySelector("slot[name='icon']");if(l)if(e||i){let o='<eui-avatar size="24"';i&&(o+=` name="${i}"`),o+=">",e&&(o+=`<img src="${e}" alt="${i||"Avatar"}" />`),o+="</eui-avatar>",l.innerHTML=o}else{const o=l.querySelector("eui-icon");t&&o?o.getAttribute("name")!==t&&o.setAttribute("name",t):t?l.innerHTML=`<eui-icon width="24" height="24" name="${t}"></eui-icon>`:l.innerHTML=""}const c=this.shadowRoot.querySelector(".label");c&&(c.textContent=a)}render(){this.shadowRoot.innerHTML=`
|
|
350
350
|
<style>
|
|
351
351
|
:host {
|
|
352
352
|
position: relative;
|
|
@@ -640,7 +640,7 @@
|
|
|
640
640
|
<p></p>
|
|
641
641
|
</div>
|
|
642
642
|
</div>
|
|
643
|
-
`}connectedCallback(){this.hd=this.shadowRoot.querySelector(".header"),this.hasAttribute("type")&&this.hd.classList.add(this.getAttribute("type"))}attributeChangedCallback(t,e,i){const a=this.shadowRoot.querySelector("h1"),
|
|
643
|
+
`}connectedCallback(){this.hd=this.shadowRoot.querySelector(".header"),this.hasAttribute("type")&&this.hd.classList.add(this.getAttribute("type"))}attributeChangedCallback(t,e,i){const a=this.shadowRoot.querySelector("h1"),n=this.shadowRoot.querySelector("p"),r=this.shadowRoot.querySelector(".img");t==="title"&&(a.textContent=i),t==="subtitle"&&(n.textContent=i),t==="img"&&(r.style.backgroundImage=i?`url(${i})`:"")}}customElements.define("eui-header",B);class N extends HTMLElement{static get observedAttributes(){return["selected"]}constructor(){super(),this.attachShadow({mode:"open"}),this.shadowRoot.innerHTML=`
|
|
644
644
|
<style>
|
|
645
645
|
:host {
|
|
646
646
|
display: inline-block;
|
|
@@ -830,7 +830,7 @@
|
|
|
830
830
|
<${e}>
|
|
831
831
|
<slot></slot>
|
|
832
832
|
</${e}>
|
|
833
|
-
`;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",a=>{const
|
|
833
|
+
`;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",a=>{const n=document.createElement("span"),r=a.currentTarget,l=r.getBoundingClientRect(),c=Math.max(r.offsetWidth,r.offsetHeight),o=c/2;n.classList.add("ripple"),n.style.width=`${c}px`,n.style.height=`${c}px`,n.style.left=`${a.clientX-l.left-o}px`,n.style.top=`${a.clientY-l.top-o}px`,i.appendChild(n),n.addEventListener("animationend",()=>{n.remove()})})}}customElements.define("eui-button",O);class U 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=`
|
|
834
834
|
<style>
|
|
835
835
|
:host {
|
|
836
836
|
display: block;
|
|
@@ -888,7 +888,7 @@
|
|
|
888
888
|
<span class="anchor-hash">#</span>
|
|
889
889
|
</a>
|
|
890
890
|
`:""}
|
|
891
|
-
`}}customElements.define("eui-heading",U);function P(s){const i=Date.now()-s,a=Math.floor(i/1e3),
|
|
891
|
+
`}}customElements.define("eui-heading",U);function P(s){const i=Date.now()-s,a=Math.floor(i/1e3),n=Math.floor(a/60),r=Math.floor(n/60),l=Math.floor(r/24),c=Math.floor(l/30),o=Math.floor(c/12);return o>0?`${o}y`:c>0?`${c}mo`:l>0?`${l}d`:r>0?`${r}h`:n>0?`${n}m`:`${a}s`}function D(s){const i=Date.now()-s,a=Math.floor(i/1e3),n=Math.floor(a/60),r=Math.floor(n/60),l=Math.floor(r/24),c=Math.floor(l/30),o=Math.floor(c/12);return o>0?`${o} year${o>1?"s":""} ago`:c>0?`${c} month${c>1?"s":""} ago`:l>0?`${l} day${l>1?"s":""} ago`:r>0?`${r} hour${r>1?"s":""} ago`:n>0?`${n} minute${n>1?"s":""} ago`:`${a} second${a>1?"s":""} ago`}function X(s){return s.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'").replace(/`/g,"`").replace(/'/g,"'")}function C(s){const t=document.createElement("input");t.value=s,document.body.appendChild(t),t.select(),document.execCommand("copy"),document.body.removeChild(t)}const W=Object.freeze(Object.defineProperty({__proto__:null,copystr:C,joinedAgo:D,sanitize:X,timeAgo:P},Symbol.toStringTag,{value:"Module"}));class Z 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=`
|
|
892
892
|
<style>
|
|
893
893
|
:host {
|
|
894
894
|
position: relative;
|
|
@@ -941,8 +941,8 @@
|
|
|
941
941
|
|
|
942
942
|
<pre class="${t?"g":""}"><code></code></pre>
|
|
943
943
|
`,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(`
|
|
944
|
-
`),a=i.filter(r=>r.trim()).map(r=>r.match(/^\s*/)[0].length),
|
|
945
|
-
`)}_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 a=0;function
|
|
944
|
+
`),a=i.filter(r=>r.trim()).map(r=>r.match(/^\s*/)[0].length),n=a.length?Math.min(...a):0;return i.map(r=>r.slice(n)).join(`
|
|
945
|
+
`)}_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 a=0;function n(r,l){const c=`__TOKEN_${l}_${a++}__`;return i[c]=`<span class="token ${l}">${r}</span>`,c}return["javascript","js","json","bash","sh","css"].includes(e)?(t=t.replace(/("(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')/g,r=>n(r,"string")),e==="bash"||e==="sh"?t=t.replace(/(#.*$)/gm,r=>n(r,"comment")):e==="css"?t=t.replace(/(\/\*[\s\S]*?\*\/)/g,r=>n(r,"comment")):t=t.replace(/(\/\/.*$|\/\*[\s\S]*?\*\/)/gm,r=>n(r,"comment"))):["html","xml"].includes(e)&&(t=t.replace(/(<!--[\s\S]*?-->)/g,r=>n(r,"comment")),t=t.replace(/(<\/?[a-z0-9:-]+)/gi,r=>n(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,l)=>" "+n(l,"attr-name")+"="),t=t.replace(/(".*?")/g,r=>n(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=>{t=t.replace(r,i[r])}),t}_onCopy(){C(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",Z);class V 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=`
|
|
946
946
|
<style>
|
|
947
947
|
:host {
|
|
948
948
|
display: block;
|
|
@@ -1034,7 +1034,7 @@
|
|
|
1034
1034
|
<slot></slot>
|
|
1035
1035
|
</div>
|
|
1036
1036
|
</div>
|
|
1037
|
-
`}}customElements.define("eui-app-titlebar",V);class J 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"),a=Math.max(e.width,e.height),
|
|
1037
|
+
`}}customElements.define("eui-app-titlebar",V);class J 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"),a=Math.max(e.width,e.height),n=a/2;i.style.width=i.style.height=`${a}px`,i.style.left=`${t.clientX-e.left-n}px`,i.style.top=`${t.clientY-e.top-n}px`,i.classList.add("ripple"),this.shadowRoot.querySelector(".surface").appendChild(i),i.addEventListener("animationend",()=>{i.remove()})}render(){this.shadowRoot.innerHTML=`
|
|
1038
1038
|
<style>
|
|
1039
1039
|
:host {
|
|
1040
1040
|
display: block;
|
|
@@ -1281,7 +1281,7 @@
|
|
|
1281
1281
|
<div class="slider-thumb"></div>
|
|
1282
1282
|
<input type="range">
|
|
1283
1283
|
</div>
|
|
1284
|
-
`}connectedCallback(){this.inputEl=this.shadowRoot.querySelector("input"),this.labelEl=this.shadowRoot.querySelector(".label"),this.valueEl=this.shadowRoot.querySelector(".value-badge"),this.trackFillEl=this.shadowRoot.querySelector(".track-fill"),this.sliderThumbEl=this.shadowRoot.querySelector(".slider-thumb"),this.containerEl=this.shadowRoot.querySelector(".slider-container"),this.inputEl.min=this.getAttribute("min")||0,this.inputEl.max=this.getAttribute("max")||100,this.inputEl.step=this.getAttribute("step")||1,this.inputEl.value=this.getAttribute("value")||50,this.hasAttribute("label")&&(this.labelEl.textContent=this.getAttribute("label")),this.hasAttribute("disabled")&&(this.inputEl.disabled=!0),this.hasAttribute("thickness")&&this.style.setProperty("--track-thickness",this.getAttribute("thickness")),this.updateUI(),this.inputEl.addEventListener("input",()=>{this.updateValue(this.inputEl.value),this.dispatchEvent(new Event("input",{bubbles:!0,composed:!0}))}),this.inputEl.addEventListener("change",()=>{this.dispatchEvent(new Event("change",{bubbles:!0,composed:!0}))}),this.inputEl.addEventListener("mousedown",()=>this.sliderThumbEl.classList.add("active")),this.inputEl.addEventListener("touchstart",()=>this.sliderThumbEl.classList.add("active"),{passive:!0}),this.onUp=()=>this.sliderThumbEl.classList.remove("active"),window.addEventListener("mouseup",this.onUp),window.addEventListener("touchend",this.onUp),this.resizeObserver=new ResizeObserver(()=>this.updateDimensions()),this.resizeObserver.observe(this.containerEl),this.updateDimensions()}disconnectedCallback(){this.resizeObserver&&this.resizeObserver.disconnect(),window.removeEventListener("mouseup",this.onUp),window.removeEventListener("touchend",this.onUp)}updateDimensions(){!this.inputEl||!this.containerEl||(this.hasAttribute("vertical")?this.inputEl.style.width=`${this.containerEl.offsetHeight}px`:this.inputEl.style.width="")}updateValue(t){this.setAttribute("value",t),this.updateUI()}updateUI(){if(!this.inputEl)return;const t=parseFloat(this.inputEl.min),e=parseFloat(this.inputEl.max),i=parseFloat(this.inputEl.value),a=(i-t)/(e-t)*100;this.containerEl.style.setProperty("--progress",`${a}%`);const
|
|
1284
|
+
`}connectedCallback(){this.inputEl=this.shadowRoot.querySelector("input"),this.labelEl=this.shadowRoot.querySelector(".label"),this.valueEl=this.shadowRoot.querySelector(".value-badge"),this.trackFillEl=this.shadowRoot.querySelector(".track-fill"),this.sliderThumbEl=this.shadowRoot.querySelector(".slider-thumb"),this.containerEl=this.shadowRoot.querySelector(".slider-container"),this.inputEl.min=this.getAttribute("min")||0,this.inputEl.max=this.getAttribute("max")||100,this.inputEl.step=this.getAttribute("step")||1,this.inputEl.value=this.getAttribute("value")||50,this.hasAttribute("label")&&(this.labelEl.textContent=this.getAttribute("label")),this.hasAttribute("disabled")&&(this.inputEl.disabled=!0),this.hasAttribute("thickness")&&this.style.setProperty("--track-thickness",this.getAttribute("thickness")),this.updateUI(),this.inputEl.addEventListener("input",()=>{this.updateValue(this.inputEl.value),this.dispatchEvent(new Event("input",{bubbles:!0,composed:!0}))}),this.inputEl.addEventListener("change",()=>{this.dispatchEvent(new Event("change",{bubbles:!0,composed:!0}))}),this.inputEl.addEventListener("mousedown",()=>this.sliderThumbEl.classList.add("active")),this.inputEl.addEventListener("touchstart",()=>this.sliderThumbEl.classList.add("active"),{passive:!0}),this.onUp=()=>this.sliderThumbEl.classList.remove("active"),window.addEventListener("mouseup",this.onUp),window.addEventListener("touchend",this.onUp),this.resizeObserver=new ResizeObserver(()=>this.updateDimensions()),this.resizeObserver.observe(this.containerEl),this.updateDimensions()}disconnectedCallback(){this.resizeObserver&&this.resizeObserver.disconnect(),window.removeEventListener("mouseup",this.onUp),window.removeEventListener("touchend",this.onUp)}updateDimensions(){!this.inputEl||!this.containerEl||(this.hasAttribute("vertical")?this.inputEl.style.width=`${this.containerEl.offsetHeight}px`:this.inputEl.style.width="")}updateValue(t){this.setAttribute("value",t),this.updateUI()}updateUI(){if(!this.inputEl)return;const t=parseFloat(this.inputEl.min),e=parseFloat(this.inputEl.max),i=parseFloat(this.inputEl.value),a=(i-t)/(e-t)*100;this.containerEl.style.setProperty("--progress",`${a}%`);const n=a/100*20;this.containerEl.style.setProperty("--thumb-offset",`${n}px`),this.valueEl.textContent=i}attributeChangedCallback(t,e,i){this.inputEl&&(t==="value"&&i!==this.inputEl.value?(this.inputEl.value=i,this.updateUI()):["min","max","step"].includes(t)?(this.inputEl[t]=i,this.updateUI()):t==="label"?this.labelEl.textContent=i:t==="vertical"?this.updateDimensions():t==="disabled"?this.inputEl.disabled=i!==null:t==="thickness"&&(i?this.style.setProperty("--track-thickness",i):this.style.removeProperty("--track-thickness")))}get value(){return parseFloat(this.inputEl.value)}set value(t){this.setAttribute("value",t)}}customElements.define("eui-slider",Y);class K extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"})}connectedCallback(){this.render()}set tabItems(t){this._tabItems=t,this.render()}get tabItems(){return this._tabItems||[]}badge(t,e){const i=this.tabItems.findIndex(n=>n.path===t);i>-1&&(this.tabItems[i].badge=e);const a=this.shadowRoot.querySelector(`eui-tab-item[path="${t}"]`);a&&(e?a.setAttribute("badge",e):a.removeAttribute("badge"))}render(){this.shadowRoot.innerHTML=`
|
|
1285
1285
|
<style>
|
|
1286
1286
|
:host {
|
|
1287
1287
|
position: fixed;
|
|
@@ -1311,7 +1311,7 @@
|
|
|
1311
1311
|
${this.tabItems.map(t=>{const e=t.avatar?.src||"",i=t.avatar?.name||"";return`<eui-tab-item path="${t.path}" icon="${t.icon}" avatar-src="${e}" avatar-name="${i}" label="${t.label}" badge="${t.badge||""}"></eui-tab-item>`}).join("")}
|
|
1312
1312
|
</slot>
|
|
1313
1313
|
</div>
|
|
1314
|
-
`}}customElements.define("eui-tab-bar",K);class G extends HTMLElement{static get observedAttributes(){return["path","icon","label","badge","active","avatar-src","avatar-name"]}constructor(){super(),this.attachShadow({mode:"open"})}connectedCallback(){this.hasRendered||(this.render(),this.setupEventListeners(),this.hasRendered=!0),this.updateContent(),this.updateActiveState(),this.addEventListener("click",this.handleClick),this._onRouteSubstitute=()=>this.updateActiveState(),window.addEventListener("popstate",this._onRouteSubstitute),window.addEventListener("route-changed",this._onRouteSubstitute)}disconnectedCallback(){this.removeEventListener("click",this.handleClick),window.removeEventListener("popstate",this._onRouteSubstitute),window.removeEventListener("route-changed",this._onRouteSubstitute)}attributeChangedCallback(t,e,i){if(e!==i&&this.hasRendered){if(t==="active")return;this.updateContent(),t==="path"&&this.updateActiveState()}}handleClick=()=>{const t=this.getAttribute("path");t&&f.navigate(t)};updateActiveState(){let t=f.location(),e=this.getAttribute("path");t.startsWith("/")||(t="/"+t),e&&!e.startsWith("/")&&(e="/"+e),e&&t===e?this.setAttribute("active",""):this.removeAttribute("active")}setupEventListeners(){this.addEventListener("pointerdown",t=>{const e=document.createElement("span"),i=t.currentTarget,a=i.getBoundingClientRect(),
|
|
1314
|
+
`}}customElements.define("eui-tab-bar",K);class G extends HTMLElement{static get observedAttributes(){return["path","icon","label","badge","active","avatar-src","avatar-name"]}constructor(){super(),this.attachShadow({mode:"open"})}connectedCallback(){this.hasRendered||(this.render(),this.setupEventListeners(),this.hasRendered=!0),this.updateContent(),this.updateActiveState(),this.addEventListener("click",this.handleClick),this._onRouteSubstitute=()=>this.updateActiveState(),window.addEventListener("popstate",this._onRouteSubstitute),window.addEventListener("route-changed",this._onRouteSubstitute)}disconnectedCallback(){this.removeEventListener("click",this.handleClick),window.removeEventListener("popstate",this._onRouteSubstitute),window.removeEventListener("route-changed",this._onRouteSubstitute)}attributeChangedCallback(t,e,i){if(e!==i&&this.hasRendered){if(t==="active")return;this.updateContent(),t==="path"&&this.updateActiveState()}}handleClick=()=>{const t=this.getAttribute("path");t&&f.navigate(t)};updateActiveState(){let t=f.location(),e=this.getAttribute("path");t.startsWith("/")||(t="/"+t),e&&!e.startsWith("/")&&(e="/"+e),e&&t===e?this.setAttribute("active",""):this.removeAttribute("active")}setupEventListeners(){this.addEventListener("pointerdown",t=>{const e=document.createElement("span"),i=t.currentTarget,a=i.getBoundingClientRect(),n=Math.max(i.offsetWidth,i.offsetHeight),r=n/2;e.classList.add("ripple"),e.style.width=`${n}px`,e.style.height=`${n}px`,e.style.left=`${t.clientX-a.left-r}px`,e.style.top=`${t.clientY-a.top-r}px`,this.shadowRoot.appendChild(e),e.addEventListener("animationend",()=>{e.remove()})})}updateContent(){const t=this.getAttribute("icon"),e=this.getAttribute("avatar-src"),i=this.getAttribute("avatar-name"),a=this.getAttribute("label")||"",n=this.getAttribute("badge"),r=this.shadowRoot.querySelector(".badge");if(n)if(r)r.textContent=n;else{const o=document.createElement("span");o.className="badge",o.textContent=n,this.shadowRoot.appendChild(o)}else r&&r.remove();const l=this.shadowRoot.querySelector("slot[name='icon']");if(l)if(e||i){let o='<eui-avatar size="24"';i&&(o+=` name="${i}"`),o+=">",e&&(o+=`<img src="${e}" alt="${i||"Avatar"}" />`),o+="</eui-avatar>",l.innerHTML=o}else t?l.innerHTML=`<eui-icon width="20" height="20" name="${t}"></eui-icon>`:l.innerHTML="";const c=this.shadowRoot.querySelector(".label");c&&(c.textContent=a)}render(){this.shadowRoot.innerHTML=`
|
|
1315
1315
|
<style>
|
|
1316
1316
|
:host {
|
|
1317
1317
|
position: relative;
|
|
@@ -1372,9 +1372,8 @@
|
|
|
1372
1372
|
display: flex;
|
|
1373
1373
|
align-items: center;
|
|
1374
1374
|
justify-content: center;
|
|
1375
|
-
font-size:
|
|
1375
|
+
font-size: 12px;
|
|
1376
1376
|
font-weight: 700;
|
|
1377
|
-
box-shadow: 0 2px 4px rgba(0,0,0,0.2);
|
|
1378
1377
|
pointer-events: none;
|
|
1379
1378
|
z-index: 2;
|
|
1380
1379
|
}
|
package/dist/erisui.mjs
CHANGED
|
@@ -64,8 +64,8 @@ class C extends HTMLElement {
|
|
|
64
64
|
}
|
|
65
65
|
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")) {
|
|
66
66
|
const a = this.getAttribute("name").trim().split(/\s+/);
|
|
67
|
-
let
|
|
68
|
-
a.length === 1 ?
|
|
67
|
+
let n = "";
|
|
68
|
+
a.length === 1 ? n = a[0][0] || "" : n = (a[0][0] || "") + (a[a.length - 1][0] || ""), this.initials.textContent = n.toUpperCase();
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
71
|
}
|
|
@@ -111,10 +111,10 @@ class A extends HTMLElement {
|
|
|
111
111
|
}
|
|
112
112
|
const i = document.createElement("template");
|
|
113
113
|
i.innerHTML = e.trim();
|
|
114
|
-
const a = i.content.cloneNode(!0),
|
|
115
|
-
if (
|
|
114
|
+
const a = i.content.cloneNode(!0), n = a.firstElementChild;
|
|
115
|
+
if (n && n.style) {
|
|
116
116
|
const r = this.getAttribute("width"), l = this.getAttribute("height");
|
|
117
|
-
r &&
|
|
117
|
+
r && n.setAttribute("width", r), l && n.setAttribute("height", l), n.style.display = "block";
|
|
118
118
|
}
|
|
119
119
|
this.shadowRoot.innerHTML = "", this.shadowRoot.appendChild(a);
|
|
120
120
|
}
|
|
@@ -633,13 +633,13 @@ class $ extends HTMLElement {
|
|
|
633
633
|
customElements.define("eui-chip", $);
|
|
634
634
|
const g = "", m = (() => {
|
|
635
635
|
const s = [];
|
|
636
|
-
function t(
|
|
637
|
-
const h = [], b =
|
|
636
|
+
function t(o, d) {
|
|
637
|
+
const h = [], b = o.replace(/:([^/]+)/g, (f, v) => (h.push(v), "([^/]+)")).replace(/\//g, "\\/"), p = new RegExp(`^${g}${b}$`);
|
|
638
638
|
s.push({ regex: p, paramNames: h, renderFn: d });
|
|
639
639
|
}
|
|
640
|
-
function e(
|
|
640
|
+
function e(o) {
|
|
641
641
|
for (const { regex: d, paramNames: h, renderFn: b } of s) {
|
|
642
|
-
const p =
|
|
642
|
+
const p = o.match(d);
|
|
643
643
|
if (p) {
|
|
644
644
|
const f = {};
|
|
645
645
|
return h.forEach((v, E) => {
|
|
@@ -649,38 +649,38 @@ const g = "", m = (() => {
|
|
|
649
649
|
}
|
|
650
650
|
return null;
|
|
651
651
|
}
|
|
652
|
-
function i(
|
|
653
|
-
|
|
654
|
-
const h =
|
|
655
|
-
if (h === window.location.pathname &&
|
|
656
|
-
d && history.pushState({}, "",
|
|
657
|
-
const p = "#" +
|
|
652
|
+
function i(o, d = !0) {
|
|
653
|
+
o.startsWith(g) || (o = g + (o.startsWith("/") ? "" : "/") + o);
|
|
654
|
+
const h = o.split(/[?#]/)[0];
|
|
655
|
+
if (h === window.location.pathname && o.includes("#")) {
|
|
656
|
+
d && history.pushState({}, "", o);
|
|
657
|
+
const p = "#" + o.split("#")[1];
|
|
658
658
|
a(p);
|
|
659
659
|
return;
|
|
660
660
|
}
|
|
661
661
|
const b = e(h);
|
|
662
662
|
if (b)
|
|
663
|
-
if (d && history.pushState({}, "",
|
|
664
|
-
const p = "#" +
|
|
663
|
+
if (d && history.pushState({}, "", o), b.renderFn(b.params), window.dispatchEvent(new CustomEvent("route-changed", { detail: { path: o } })), o.includes("#")) {
|
|
664
|
+
const p = "#" + o.split("#")[1];
|
|
665
665
|
setTimeout(() => a(p), 100);
|
|
666
666
|
} else {
|
|
667
667
|
const p = document.getElementById("main");
|
|
668
668
|
p && p.scrollTo(0, 0);
|
|
669
669
|
}
|
|
670
|
-
else
|
|
670
|
+
else n ? (d && history.pushState({}, "", o), n()) : console.warn(`No route found for ${h}`);
|
|
671
671
|
}
|
|
672
|
-
function a(
|
|
673
|
-
if (
|
|
672
|
+
function a(o) {
|
|
673
|
+
if (o)
|
|
674
674
|
try {
|
|
675
|
-
const d = document.querySelector(
|
|
675
|
+
const d = document.querySelector(o);
|
|
676
676
|
d && d.scrollIntoView({ behavior: "smooth" });
|
|
677
677
|
} catch {
|
|
678
|
-
console.warn("Invalid hash:",
|
|
678
|
+
console.warn("Invalid hash:", o);
|
|
679
679
|
}
|
|
680
680
|
}
|
|
681
|
-
let
|
|
682
|
-
function r(
|
|
683
|
-
|
|
681
|
+
let n = null;
|
|
682
|
+
function r(o) {
|
|
683
|
+
n = o;
|
|
684
684
|
}
|
|
685
685
|
function l() {
|
|
686
686
|
history.back();
|
|
@@ -689,15 +689,15 @@ const g = "", m = (() => {
|
|
|
689
689
|
return window.location.pathname.replace(g, "") || "/";
|
|
690
690
|
}
|
|
691
691
|
return window.addEventListener("popstate", () => {
|
|
692
|
-
const
|
|
693
|
-
i(
|
|
694
|
-
}), window.addEventListener("click", (
|
|
695
|
-
if (
|
|
696
|
-
const d =
|
|
692
|
+
const o = window.location.pathname + window.location.search + window.location.hash;
|
|
693
|
+
i(o, !1);
|
|
694
|
+
}), window.addEventListener("click", (o) => {
|
|
695
|
+
if (o.button !== 0 || o.metaKey || o.altKey || o.ctrlKey || o.shiftKey) return;
|
|
696
|
+
const d = o.target.closest("a");
|
|
697
697
|
if (!d || d.hasAttribute("download") || d.getAttribute("target") === "_blank") return;
|
|
698
698
|
const h = d.getAttribute("href");
|
|
699
699
|
if (!(!h || h.startsWith("http") && !h.startsWith(window.location.origin))) {
|
|
700
|
-
if (
|
|
700
|
+
if (o.preventDefault(), h.startsWith("#")) {
|
|
701
701
|
history.pushState({}, "", h), a(h);
|
|
702
702
|
return;
|
|
703
703
|
}
|
|
@@ -749,30 +749,30 @@ class H extends HTMLElement {
|
|
|
749
749
|
};
|
|
750
750
|
setupEventListeners() {
|
|
751
751
|
this.addEventListener("pointerdown", (t) => {
|
|
752
|
-
const e = document.createElement("span"), i = t.currentTarget, a = i.getBoundingClientRect(),
|
|
753
|
-
e.classList.add("ripple"), e.style.width = `${
|
|
752
|
+
const e = document.createElement("span"), i = t.currentTarget, a = i.getBoundingClientRect(), n = Math.max(i.offsetWidth, i.offsetHeight), r = n / 2;
|
|
753
|
+
e.classList.add("ripple"), e.style.width = `${n}px`, e.style.height = `${n}px`, e.style.left = `${t.clientX - a.left - r}px`, e.style.top = `${t.clientY - a.top - r}px`, this.shadowRoot.appendChild(e), e.addEventListener("animationend", () => {
|
|
754
754
|
e.remove();
|
|
755
755
|
});
|
|
756
756
|
});
|
|
757
757
|
}
|
|
758
758
|
updateContent() {
|
|
759
|
-
const t = this.getAttribute("icon"), e = this.getAttribute("avatar-src"), i = this.getAttribute("avatar-name"), a = this.getAttribute("label") || "",
|
|
760
|
-
if (
|
|
759
|
+
const t = this.getAttribute("icon"), e = this.getAttribute("avatar-src"), i = this.getAttribute("avatar-name"), a = this.getAttribute("label") || "", n = this.getAttribute("badge"), r = this.shadowRoot.querySelector(".badge");
|
|
760
|
+
if (n)
|
|
761
761
|
if (r)
|
|
762
|
-
r.textContent =
|
|
762
|
+
r.textContent = n;
|
|
763
763
|
else {
|
|
764
|
-
const
|
|
765
|
-
|
|
764
|
+
const o = document.createElement("span");
|
|
765
|
+
o.className = "badge", o.textContent = n, this.shadowRoot.appendChild(o);
|
|
766
766
|
}
|
|
767
767
|
else r && r.remove();
|
|
768
768
|
const l = this.shadowRoot.querySelector("slot[name='icon']");
|
|
769
769
|
if (l)
|
|
770
770
|
if (e || i) {
|
|
771
|
-
let
|
|
772
|
-
i && (
|
|
771
|
+
let o = '<eui-avatar size="24"';
|
|
772
|
+
i && (o += ` name="${i}"`), o += ">", e && (o += `<img src="${e}" alt="${i || "Avatar"}" />`), o += "</eui-avatar>", l.innerHTML = o;
|
|
773
773
|
} else {
|
|
774
|
-
const
|
|
775
|
-
t &&
|
|
774
|
+
const o = l.querySelector("eui-icon");
|
|
775
|
+
t && o ? o.getAttribute("name") !== t && o.setAttribute("name", t) : t ? l.innerHTML = `<eui-icon width="24" height="24" name="${t}"></eui-icon>` : l.innerHTML = "";
|
|
776
776
|
}
|
|
777
777
|
const c = this.shadowRoot.querySelector(".label");
|
|
778
778
|
c && (c.textContent = a);
|
|
@@ -1115,8 +1115,8 @@ class I extends HTMLElement {
|
|
|
1115
1115
|
this.hd = this.shadowRoot.querySelector(".header"), this.hasAttribute("type") && this.hd.classList.add(this.getAttribute("type"));
|
|
1116
1116
|
}
|
|
1117
1117
|
attributeChangedCallback(t, e, i) {
|
|
1118
|
-
const a = this.shadowRoot.querySelector("h1"),
|
|
1119
|
-
t === "title" && (a.textContent = i), t === "subtitle" && (
|
|
1118
|
+
const a = this.shadowRoot.querySelector("h1"), n = this.shadowRoot.querySelector("p"), r = this.shadowRoot.querySelector(".img");
|
|
1119
|
+
t === "title" && (a.textContent = i), t === "subtitle" && (n.textContent = i), t === "img" && (r.style.backgroundImage = i ? `url(${i})` : "");
|
|
1120
1120
|
}
|
|
1121
1121
|
}
|
|
1122
1122
|
customElements.define("eui-header", I);
|
|
@@ -1351,9 +1351,9 @@ class j extends HTMLElement {
|
|
|
1351
1351
|
`;
|
|
1352
1352
|
const i = this.shadowRoot.querySelector(e);
|
|
1353
1353
|
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", (a) => {
|
|
1354
|
-
const
|
|
1355
|
-
|
|
1356
|
-
|
|
1354
|
+
const n = document.createElement("span"), r = a.currentTarget, l = r.getBoundingClientRect(), c = Math.max(r.offsetWidth, r.offsetHeight), o = c / 2;
|
|
1355
|
+
n.classList.add("ripple"), n.style.width = `${c}px`, n.style.height = `${c}px`, n.style.left = `${a.clientX - l.left - o}px`, n.style.top = `${a.clientY - l.top - o}px`, i.appendChild(n), n.addEventListener("animationend", () => {
|
|
1356
|
+
n.remove();
|
|
1357
1357
|
});
|
|
1358
1358
|
});
|
|
1359
1359
|
}
|
|
@@ -1433,12 +1433,12 @@ class q extends HTMLElement {
|
|
|
1433
1433
|
}
|
|
1434
1434
|
customElements.define("eui-heading", q);
|
|
1435
1435
|
function B(s) {
|
|
1436
|
-
const i = Date.now() - s, a = Math.floor(i / 1e3),
|
|
1437
|
-
return
|
|
1436
|
+
const i = Date.now() - s, a = Math.floor(i / 1e3), n = Math.floor(a / 60), r = Math.floor(n / 60), l = Math.floor(r / 24), c = Math.floor(l / 30), o = Math.floor(c / 12);
|
|
1437
|
+
return o > 0 ? `${o}y` : c > 0 ? `${c}mo` : l > 0 ? `${l}d` : r > 0 ? `${r}h` : n > 0 ? `${n}m` : `${a}s`;
|
|
1438
1438
|
}
|
|
1439
1439
|
function N(s) {
|
|
1440
|
-
const i = Date.now() - s, a = Math.floor(i / 1e3),
|
|
1441
|
-
return
|
|
1440
|
+
const i = Date.now() - s, a = Math.floor(i / 1e3), n = Math.floor(a / 60), r = Math.floor(n / 60), l = Math.floor(r / 24), c = Math.floor(l / 30), o = Math.floor(c / 12);
|
|
1441
|
+
return o > 0 ? `${o} year${o > 1 ? "s" : ""} ago` : c > 0 ? `${c} month${c > 1 ? "s" : ""} ago` : l > 0 ? `${l} day${l > 1 ? "s" : ""} ago` : r > 0 ? `${r} hour${r > 1 ? "s" : ""} ago` : n > 0 ? `${n} minute${n > 1 ? "s" : ""} ago` : `${a} second${a > 1 ? "s" : ""} ago`;
|
|
1442
1442
|
}
|
|
1443
1443
|
function O(s) {
|
|
1444
1444
|
return s.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'").replace(/`/g, "`").replace(/'/g, "'");
|
|
@@ -1529,8 +1529,8 @@ class U extends HTMLElement {
|
|
|
1529
1529
|
let e = (this.querySelector("code") || this).innerHTML || "";
|
|
1530
1530
|
e = this._unescapeHtml(e), e = e.replace(/^\s*\n/, "").replace(/\n\s*$/, "");
|
|
1531
1531
|
const i = e.split(`
|
|
1532
|
-
`), a = i.filter((r) => r.trim()).map((r) => r.match(/^\s*/)[0].length),
|
|
1533
|
-
return i.map((r) => r.slice(
|
|
1532
|
+
`), a = i.filter((r) => r.trim()).map((r) => r.match(/^\s*/)[0].length), n = a.length ? Math.min(...a) : 0;
|
|
1533
|
+
return i.map((r) => r.slice(n)).join(`
|
|
1534
1534
|
`);
|
|
1535
1535
|
}
|
|
1536
1536
|
_unescapeHtml(t) {
|
|
@@ -1541,11 +1541,11 @@ class U extends HTMLElement {
|
|
|
1541
1541
|
t = t.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">");
|
|
1542
1542
|
const i = {};
|
|
1543
1543
|
let a = 0;
|
|
1544
|
-
function
|
|
1544
|
+
function n(r, l) {
|
|
1545
1545
|
const c = `__TOKEN_${l}_${a++}__`;
|
|
1546
1546
|
return i[c] = `<span class="token ${l}">${r}</span>`, c;
|
|
1547
1547
|
}
|
|
1548
|
-
return ["javascript", "js", "json", "bash", "sh", "css"].includes(e) ? (t = t.replace(/("(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')/g, (r) =>
|
|
1548
|
+
return ["javascript", "js", "json", "bash", "sh", "css"].includes(e) ? (t = t.replace(/("(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')/g, (r) => n(r, "string")), e === "bash" || e === "sh" ? t = t.replace(/(#.*$)/gm, (r) => n(r, "comment")) : e === "css" ? t = t.replace(/(\/\*[\s\S]*?\*\/)/g, (r) => n(r, "comment")) : t = t.replace(/(\/\/.*$|\/\*[\s\S]*?\*\/)/gm, (r) => n(r, "comment"))) : ["html", "xml"].includes(e) && (t = t.replace(/(<!--[\s\S]*?-->)/g, (r) => n(r, "comment")), t = t.replace(/(<\/?[a-z0-9:-]+)/gi, (r) => n(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, l) => " " + n(l, "attr-name") + "="), t = t.replace(/(".*?")/g, (r) => n(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) => {
|
|
1549
1549
|
t = t.replace(r, i[r]);
|
|
1550
1550
|
}), t;
|
|
1551
1551
|
}
|
|
@@ -1696,8 +1696,8 @@ class D extends HTMLElement {
|
|
|
1696
1696
|
this.removeEventListener("mousedown", this._handleMouseDown), this.hasAttribute("ripple") && this.addEventListener("mousedown", this._handleMouseDown);
|
|
1697
1697
|
}
|
|
1698
1698
|
_addRipple(t) {
|
|
1699
|
-
const e = this.getBoundingClientRect(), i = document.createElement("span"), a = Math.max(e.width, e.height),
|
|
1700
|
-
i.style.width = i.style.height = `${a}px`, i.style.left = `${t.clientX - e.left -
|
|
1699
|
+
const e = this.getBoundingClientRect(), i = document.createElement("span"), a = Math.max(e.width, e.height), n = a / 2;
|
|
1700
|
+
i.style.width = i.style.height = `${a}px`, i.style.left = `${t.clientX - e.left - n}px`, i.style.top = `${t.clientY - e.top - n}px`, i.classList.add("ripple"), this.shadowRoot.querySelector(".surface").appendChild(i), i.addEventListener("animationend", () => {
|
|
1701
1701
|
i.remove();
|
|
1702
1702
|
});
|
|
1703
1703
|
}
|
|
@@ -1980,8 +1980,8 @@ class X extends HTMLElement {
|
|
|
1980
1980
|
if (!this.inputEl) return;
|
|
1981
1981
|
const t = parseFloat(this.inputEl.min), e = parseFloat(this.inputEl.max), i = parseFloat(this.inputEl.value), a = (i - t) / (e - t) * 100;
|
|
1982
1982
|
this.containerEl.style.setProperty("--progress", `${a}%`);
|
|
1983
|
-
const
|
|
1984
|
-
this.containerEl.style.setProperty("--thumb-offset", `${
|
|
1983
|
+
const n = a / 100 * 20;
|
|
1984
|
+
this.containerEl.style.setProperty("--thumb-offset", `${n}px`), this.valueEl.textContent = i;
|
|
1985
1985
|
}
|
|
1986
1986
|
attributeChangedCallback(t, e, i) {
|
|
1987
1987
|
this.inputEl && (t === "value" && i !== this.inputEl.value ? (this.inputEl.value = i, this.updateUI()) : ["min", "max", "step"].includes(t) ? (this.inputEl[t] = i, this.updateUI()) : t === "label" ? this.labelEl.textContent = i : t === "vertical" ? this.updateDimensions() : t === "disabled" ? this.inputEl.disabled = i !== null : t === "thickness" && (i ? this.style.setProperty("--track-thickness", i) : this.style.removeProperty("--track-thickness")));
|
|
@@ -2007,6 +2007,12 @@ class W extends HTMLElement {
|
|
|
2007
2007
|
get tabItems() {
|
|
2008
2008
|
return this._tabItems || [];
|
|
2009
2009
|
}
|
|
2010
|
+
badge(t, e) {
|
|
2011
|
+
const i = this.tabItems.findIndex((n) => n.path === t);
|
|
2012
|
+
i > -1 && (this.tabItems[i].badge = e);
|
|
2013
|
+
const a = this.shadowRoot.querySelector(`eui-tab-item[path="${t}"]`);
|
|
2014
|
+
a && (e ? a.setAttribute("badge", e) : a.removeAttribute("badge"));
|
|
2015
|
+
}
|
|
2010
2016
|
render() {
|
|
2011
2017
|
this.shadowRoot.innerHTML = `
|
|
2012
2018
|
<style>
|
|
@@ -2074,27 +2080,27 @@ class Z extends HTMLElement {
|
|
|
2074
2080
|
}
|
|
2075
2081
|
setupEventListeners() {
|
|
2076
2082
|
this.addEventListener("pointerdown", (t) => {
|
|
2077
|
-
const e = document.createElement("span"), i = t.currentTarget, a = i.getBoundingClientRect(),
|
|
2078
|
-
e.classList.add("ripple"), e.style.width = `${
|
|
2083
|
+
const e = document.createElement("span"), i = t.currentTarget, a = i.getBoundingClientRect(), n = Math.max(i.offsetWidth, i.offsetHeight), r = n / 2;
|
|
2084
|
+
e.classList.add("ripple"), e.style.width = `${n}px`, e.style.height = `${n}px`, e.style.left = `${t.clientX - a.left - r}px`, e.style.top = `${t.clientY - a.top - r}px`, this.shadowRoot.appendChild(e), e.addEventListener("animationend", () => {
|
|
2079
2085
|
e.remove();
|
|
2080
2086
|
});
|
|
2081
2087
|
});
|
|
2082
2088
|
}
|
|
2083
2089
|
updateContent() {
|
|
2084
|
-
const t = this.getAttribute("icon"), e = this.getAttribute("avatar-src"), i = this.getAttribute("avatar-name"), a = this.getAttribute("label") || "",
|
|
2085
|
-
if (
|
|
2090
|
+
const t = this.getAttribute("icon"), e = this.getAttribute("avatar-src"), i = this.getAttribute("avatar-name"), a = this.getAttribute("label") || "", n = this.getAttribute("badge"), r = this.shadowRoot.querySelector(".badge");
|
|
2091
|
+
if (n)
|
|
2086
2092
|
if (r)
|
|
2087
|
-
r.textContent =
|
|
2093
|
+
r.textContent = n;
|
|
2088
2094
|
else {
|
|
2089
|
-
const
|
|
2090
|
-
|
|
2095
|
+
const o = document.createElement("span");
|
|
2096
|
+
o.className = "badge", o.textContent = n, this.shadowRoot.appendChild(o);
|
|
2091
2097
|
}
|
|
2092
2098
|
else r && r.remove();
|
|
2093
2099
|
const l = this.shadowRoot.querySelector("slot[name='icon']");
|
|
2094
2100
|
if (l)
|
|
2095
2101
|
if (e || i) {
|
|
2096
|
-
let
|
|
2097
|
-
i && (
|
|
2102
|
+
let o = '<eui-avatar size="24"';
|
|
2103
|
+
i && (o += ` name="${i}"`), o += ">", e && (o += `<img src="${e}" alt="${i || "Avatar"}" />`), o += "</eui-avatar>", l.innerHTML = o;
|
|
2098
2104
|
} else t ? l.innerHTML = `<eui-icon width="20" height="20" name="${t}"></eui-icon>` : l.innerHTML = "";
|
|
2099
2105
|
const c = this.shadowRoot.querySelector(".label");
|
|
2100
2106
|
c && (c.textContent = a);
|
|
@@ -2161,9 +2167,8 @@ class Z extends HTMLElement {
|
|
|
2161
2167
|
display: flex;
|
|
2162
2168
|
align-items: center;
|
|
2163
2169
|
justify-content: center;
|
|
2164
|
-
font-size:
|
|
2170
|
+
font-size: 12px;
|
|
2165
2171
|
font-weight: 700;
|
|
2166
|
-
box-shadow: 0 2px 4px rgba(0,0,0,0.2);
|
|
2167
2172
|
pointer-events: none;
|
|
2168
2173
|
z-index: 2;
|
|
2169
2174
|
}
|