domma-js 0.7.8-alpha → 0.9.3-alpha
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/package.json +1 -1
- package/public/dist/bundles/domma-complete.css +911 -188
- package/public/dist/bundles/domma-data-focused.css +911 -188
- package/public/dist/bundles/domma-essentials.css +911 -188
- package/public/dist/bundles/domma-full.css +911 -188
- package/public/dist/bundles/domma-grayve.css +911 -188
- package/public/dist/bundles/domma-minimal.css +8 -8
- package/public/dist/domma-syntax.min.js +3 -3
- package/public/dist/domma.css +3 -3
- package/public/dist/domma.esm.js +4 -4
- package/public/dist/domma.min.js +4 -4
- package/public/dist/elements.css +889 -177
- package/public/dist/grid.css +3 -3
- package/public/dist/syntax.css +3 -3
- package/public/dist/themes/domma-themes.css +3 -3
package/public/dist/domma.esm.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Domma v0.
|
|
2
|
+
* Domma v0.9.2-alpha
|
|
3
3
|
* Dynamic Object Manipulation & Modeling API
|
|
4
4
|
* (c) 2026 Darryl Waterhouse & DCBW-IT
|
|
5
|
-
* Built: 2026-01-
|
|
6
|
-
* Commit:
|
|
5
|
+
* Built: 2026-01-11T18:01:21.564Z
|
|
6
|
+
* Commit: 136342c
|
|
7
7
|
*/
|
|
8
|
-
class e{constructor(t,o){if("string"==typeof t)if(t.trim().startsWith("<")){const e=document.createElement("div");e.innerHTML=t.trim(),this.elements=Array.from(e.children)}else{const e=o||document;this.elements=Array.from(e.querySelectorAll(t))}else t instanceof Node?this.elements=[t]:t instanceof NodeList||t instanceof HTMLCollection?this.elements=Array.from(t):Array.isArray(t)?this.elements=t.filter(e=>e instanceof HTMLElement):this.elements=t instanceof e?[...t.elements]:[];this.length=this.elements.length}find(t){const o=[];return this.elements.forEach(e=>{o.push(...e.querySelectorAll(t))}),new e(o)}children(t){const o=[];return this.elements.forEach(e=>{o.push(...e.children)}),new e(t?o.filter(e=>e.matches(t)):o)}parent(t){const o=[];return this.elements.forEach(e=>{e.parentElement&&(t&&!e.parentElement.matches(t)||o.includes(e.parentElement)||o.push(e.parentElement))}),new e(o)}parents(t){const o=[];return this.elements.forEach(e=>{let n=e.parentElement;for(;n;)t&&!n.matches(t)||o.includes(n)||o.push(n),n=n.parentElement}),new e(o)}closest(t){const o=[];return this.elements.forEach(e=>{const n=e.closest(t);n&&!o.includes(n)&&o.push(n)}),new e(o)}siblings(t){const o=[];return this.elements.forEach(e=>{e.parentElement&&Array.from(e.parentElement.children).forEach(n=>{n===e||o.includes(n)||t&&!n.matches(t)||o.push(n)})}),new e(o)}next(t){const o=[];return this.elements.forEach(e=>{let n=e.nextElementSibling;n&&(t&&!n.matches(t)||o.push(n))}),new e(o)}nextAll(t){const o=[];return this.elements.forEach(e=>{let n=e.nextElementSibling;for(;n;)t&&!n.matches(t)||o.includes(n)||o.push(n),n=n.nextElementSibling}),new e(o)}prev(t){const o=[];return this.elements.forEach(e=>{let n=e.previousElementSibling;n&&(t&&!n.matches(t)||o.push(n))}),new e(o)}prevAll(t){const o=[];return this.elements.forEach(e=>{let n=e.previousElementSibling;for(;n;)t&&!n.matches(t)||o.includes(n)||o.unshift(n),n=n.previousElementSibling}),new e(o)}first(){return new e(this.elements[0]?[this.elements[0]]:[])}last(){return new e(this.elements.length?[this.elements[this.elements.length-1]]:[])}eq(t){const o=t<0?this.elements.length+t:t;return new e(this.elements[o]?[this.elements[o]]:[])}get(e){if(void 0===e)return this.elements;const t=e<0?this.elements.length+e:e;return this.elements[t]}filter(t){return new e("function"==typeof t?this.elements.filter((e,o)=>t.call(e,o,e)):this.elements.filter(e=>e.matches(t)))}not(t){return new e("function"==typeof t?this.elements.filter((e,o)=>!t.call(e,o,e)):this.elements.filter(e=>!e.matches(t)))}is(e){return this.elements.some(t=>t.matches(e))}has(t){return new e(this.elements.filter(e=>e.querySelector(t)))}add(t){const o=new e(t),n=[...this.elements];return o.elements.forEach(e=>{n.includes(e)||n.push(e)}),new e(n)}contents(){const t=[];return this.elements.forEach(e=>{t.push(...e.childNodes)}),new e(t)}toArray(){return[...this.elements]}index(t){if(void 0===t){const e=this.elements[0];return e&&e.parentElement?Array.from(e.parentElement.children).indexOf(e):-1}return"string"==typeof t?new e(t).elements.indexOf(this.elements[0]):this.elements.indexOf(t)}each(e){return this.elements.forEach((t,o)=>e.call(t,o,t)),this}html(e){return void 0===e?this.elements[0]?this.elements[0].innerHTML:"":this.each((t,o)=>{o.innerHTML=e})}text(e){return void 0===e?this.elements.map(e=>e.textContent).join(""):this.each((t,o)=>{o.textContent=e})}val(e){if(void 0===e){const e=this.elements[0];if(!e)return;return"checkbox"===e.type||"radio"===e.type?e.checked?e.value:void 0:"SELECT"===e.tagName&&e.multiple?Array.from(e.selectedOptions).map(e=>e.value):e.value}return this.each((t,o)=>{"checkbox"===o.type||"radio"===o.type?o.checked=Array.isArray(e)?e.includes(o.value):o.value===e:"SELECT"===o.tagName&&o.multiple&&Array.isArray(e)?Array.from(o.options).forEach(t=>{t.selected=e.includes(t.value)}):o.value=e})}attr(e,t){return"object"==typeof e?this.each((t,o)=>{Object.entries(e).forEach(([e,t])=>{o.setAttribute(e,t)})}):void 0===t?this.elements[0]?this.elements[0].getAttribute(e):void 0:this.each((o,n)=>{n.setAttribute(e,t)})}removeAttr(e){const t=e.split(/\s+/);return this.each((e,o)=>{t.forEach(e=>o.removeAttribute(e))})}prop(e,t){return"object"==typeof e?this.each((t,o)=>{Object.entries(e).forEach(([e,t])=>{o[e]=t})}):void 0===t?this.elements[0]?this.elements[0][e]:void 0:this.each((o,n)=>{n[e]=t})}removeProp(e){return this.each((t,o)=>{delete o[e]})}data(e,t){if(void 0===e){const e=this.elements[0];if(!e)return;const t={};return Object.keys(e.dataset).forEach(o=>{t[o]=e.dataset[o]}),t}return"object"==typeof e?this.each((t,o)=>{Object.entries(e).forEach(([e,t])=>{o.dataset[e]=t})}):void 0===t?this.elements[0]?this.elements[0].dataset[e]:void 0:this.each((o,n)=>{n.dataset[e]=t})}removeData(e){return this.each((t,o)=>{delete o.dataset[e]})}css(e,t){return"object"==typeof e?this.each((t,o)=>{Object.entries(e).forEach(([e,t])=>{o.style[e]=t})}):void 0===t?this.elements[0]?getComputedStyle(this.elements[0])[e]:"":this.each((o,n)=>{n.style[e]=t})}addClass(e){if("function"==typeof e)return this.each((t,o)=>{const n=e.call(o,t,o.className);n&&o.classList.add(...n.split(/\s+/).filter(Boolean))});const t=e.split(/\s+/).filter(Boolean);return this.each((e,o)=>{o.classList.add(...t)})}removeClass(e){if(void 0===e)return this.each((e,t)=>{t.className=""});if("function"==typeof e)return this.each((t,o)=>{const n=e.call(o,t,o.className);n&&o.classList.remove(...n.split(/\s+/).filter(Boolean))});const t=e.split(/\s+/).filter(Boolean);return this.each((e,o)=>{o.classList.remove(...t)})}toggleClass(e,t){if("function"==typeof e)return this.each((o,n)=>{const s=e.call(n,o,n.className,t);s&&s.split(/\s+/).filter(Boolean).forEach(e=>{n.classList.toggle(e,t)})});const o=e.split(/\s+/).filter(Boolean);return this.each((e,n)=>{o.forEach(e=>{n.classList.toggle(e,t)})})}hasClass(e){return this.elements.some(t=>t.classList.contains(e))}append(e){return this.each((t,o)=>{this._getNodes(e,t,o).forEach(e=>o.appendChild(e))})}prepend(e){return this.each((t,o)=>{const n=this._getNodes(e,t,o),s=o.firstChild;n.forEach(e=>o.insertBefore(e,s))})}after(e){return this.each((t,o)=>{const n=this._getNodes(e,t,o),s=o.parentNode,i=o.nextSibling;n.forEach(e=>s.insertBefore(e,i))})}before(e){return this.each((t,o)=>{const n=this._getNodes(e,t,o),s=o.parentNode;n.forEach(e=>s.insertBefore(e,o))})}appendTo(t){return new e(t).append(this),this}prependTo(t){return new e(t).prepend(this),this}insertAfter(t){return new e(t).after(this),this}insertBefore(t){return new e(t).before(this),this}wrap(e){return this.each((t,o)=>{const n=this._getWrapper(e,t,o);o.parentNode&&(o.parentNode.insertBefore(n,o),n.appendChild(o))})}wrapAll(e){if(0===this.elements.length)return this;const t=this._getWrapper(e,0,this.elements[0]);return this.elements[0].parentNode.insertBefore(t,this.elements[0]),this.elements.forEach(e=>t.appendChild(e)),this}wrapInner(e){return this.each((t,o)=>{const n=this._getWrapper(e,t,o);for(;o.firstChild;)n.appendChild(o.firstChild);o.appendChild(n)})}unwrap(e){return this.parent(e).each((e,t)=>{const o=t.parentNode;for(;t.firstChild;)o.insertBefore(t.firstChild,t);o.removeChild(t)}),this}remove(e){return(e?this.filter(e):this).each((e,t)=>{t.parentNode&&t.parentNode.removeChild(t)}),this}detach(){return this.remove()}empty(){return this.each((e,t)=>{t.innerHTML=""})}clone(t=!0){return new e(this.elements.map(e=>e.cloneNode(t)))}replaceWith(e){return this.each((t,o)=>{const n=this._getNodes(e,t,o),s=o.parentNode;n.forEach((e,t)=>{0===t?s.replaceChild(e,o):s.insertBefore(e,n[t-1].nextSibling)})})}replaceAll(t){return new e(t).replaceWith(this),this}_getNodes(t,o,n){if("function"==typeof t&&(t=t.call(n,o,n.innerHTML)),"string"==typeof t){if(t.trim().startsWith("<")){const e=document.createElement("div");return e.innerHTML=t,Array.from(e.childNodes)}return[document.createTextNode(t)]}return t instanceof HTMLElement?[t.cloneNode(!0)]:t instanceof e?t.elements.map(e=>e.cloneNode(!0)):[]}_getWrapper(t,o,n){let s;if("function"==typeof t&&(t=t.call(n,o)),"string"==typeof t){const e=document.createElement("div");e.innerHTML=t.trim(),s=e.firstElementChild}else s=t instanceof HTMLElement?t.cloneNode(!0):t instanceof e?t.elements[0].cloneNode(!0):document.createElement("div");return s}on(e,t,o){"function"==typeof t&&(o=t,t=null);const n=e.split(/\s+/);return this.each((e,s)=>{n.forEach(e=>{if(t){const n=e=>{const n=e.target.closest(t);n&&s.contains(n)&&o.call(n,e)};s.addEventListener(e,n),s._dommaHandlers=s._dommaHandlers||[],s._dommaHandlers.push({event:e,selector:t,handler:o,delegated:n})}else s.addEventListener(e,o)})})}off(e,t,o){return"function"==typeof t&&(o=t,t=null),this.each((n,s)=>{if(e){e.split(/\s+/).forEach(e=>{t&&s._dommaHandlers?s._dommaHandlers=s._dommaHandlers.filter(n=>!!(n.event!==e||n.selector!==t||o&&n.handler!==o)||(s.removeEventListener(e,n.delegated),!1)):o&&s.removeEventListener(e,o)})}})}one(e,t,o){"function"==typeof t&&(o=t,t=null);const n=this,s=function(i){o.call(this,i),n.off(e,t,s)};return this.on(e,t,s)}trigger(e,t){const o=new CustomEvent(e,{detail:t,bubbles:!0,cancelable:!0});return this.each((e,t)=>{t.dispatchEvent(o)})}triggerNative(e){return this.each((t,o)=>{const n=new Event(e,{bubbles:!0,cancelable:!0});o.dispatchEvent(n)})}click(e){return e?this.on("click",e):this.triggerNative("click")}dblclick(e){return e?this.on("dblclick",e):this.trigger("dblclick")}mousedown(e){return e?this.on("mousedown",e):this.trigger("mousedown")}mouseup(e){return e?this.on("mouseup",e):this.trigger("mouseup")}mousemove(e){return e?this.on("mousemove",e):this.trigger("mousemove")}mouseover(e){return e?this.on("mouseover",e):this.trigger("mouseover")}mouseout(e){return e?this.on("mouseout",e):this.trigger("mouseout")}mouseenter(e){return e?this.on("mouseenter",e):this.trigger("mouseenter")}mouseleave(e){return e?this.on("mouseleave",e):this.trigger("mouseleave")}keydown(e){return e?this.on("keydown",e):this.trigger("keydown")}keyup(e){return e?this.on("keyup",e):this.trigger("keyup")}keypress(e){return e?this.on("keypress",e):this.trigger("keypress")}focus(e){return e?this.on("focus",e):this.each((e,t)=>t.focus())}blur(e){return e?this.on("blur",e):this.each((e,t)=>t.blur())}change(e){return e?this.on("change",e):this.trigger("change")}select(e){return e?this.on("select",e):this.trigger("select")}submit(e){return e?this.on("submit",e):this.each((e,t)=>{t.submit&&t.submit()})}scroll(e){return e?this.on("scroll",e):this.trigger("scroll")}resize(e){return e?this.on("resize",e):this.trigger("resize")}hover(e,t){return this.on("mouseenter",e),t?this.on("mouseleave",t):this.on("mouseleave",e),this}show(e,t){return this.each((o,n)=>{e?(n.style.display="",n.style.opacity="0",n.style.transition=`opacity ${this._getDuration(e)}ms`,requestAnimationFrame(()=>{n.style.opacity="1",t&&setTimeout(()=>t.call(n),this._getDuration(e))})):(n.style.display="",t&&t.call(n))})}hide(e,t){return this.each((o,n)=>{e?(n.style.transition=`opacity ${this._getDuration(e)}ms`,n.style.opacity="0",setTimeout(()=>{n.style.display="none",n.style.opacity="",n.style.transition="",t&&t.call(n)},this._getDuration(e))):(n.style.display="none",t&&t.call(n))})}toggle(t,o){return this.each((n,s)=>{"none"===getComputedStyle(s).display?new e(s).show(t,o):new e(s).hide(t,o)})}fadeIn(e=400,t){return this.each((o,n)=>{n.style.display="",n.style.opacity="0",n.style.transition=`opacity ${this._getDuration(e)}ms`,requestAnimationFrame(()=>{n.style.opacity="1",setTimeout(()=>{n.style.transition="",t&&t.call(n)},this._getDuration(e))})})}fadeOut(e=400,t){return this.each((o,n)=>{n.style.transition=`opacity ${this._getDuration(e)}ms`,n.style.opacity="0",setTimeout(()=>{n.style.display="none",n.style.opacity="",n.style.transition="",t&&t.call(n)},this._getDuration(e))})}fadeToggle(t=400,o){return this.each((n,s)=>{"none"===getComputedStyle(s).display||"0"===getComputedStyle(s).opacity?new e(s).fadeIn(t,o):new e(s).fadeOut(t,o)})}fadeTo(e,t,o){return this.each((n,s)=>{s.style.display="",s.style.transition=`opacity ${this._getDuration(e)}ms`,requestAnimationFrame(()=>{s.style.opacity=String(t),setTimeout(()=>{s.style.transition="",o&&o.call(s)},this._getDuration(e))})})}slideUp(e=400,t){return this.each((o,n)=>{const s=n.offsetHeight;n.style.overflow="hidden",n.style.height=s+"px",n.style.transition=`height ${this._getDuration(e)}ms`,requestAnimationFrame(()=>{n.style.height="0",setTimeout(()=>{n.style.display="none",n.style.height="",n.style.overflow="",n.style.transition="",t&&t.call(n)},this._getDuration(e))})})}slideDown(e=400,t){return this.each((o,n)=>{n.style.display="";const s=n.scrollHeight;n.style.overflow="hidden",n.style.height="0",n.style.transition=`height ${this._getDuration(e)}ms`,requestAnimationFrame(()=>{n.style.height=s+"px",setTimeout(()=>{n.style.height="",n.style.overflow="",n.style.transition="",t&&t.call(n)},this._getDuration(e))})})}slideToggle(t=400,o){return this.each((n,s)=>{"none"===getComputedStyle(s).display?new e(s).slideDown(t,o):new e(s).slideUp(t,o)})}animate(e,t=400,o="ease",n){"function"==typeof t?(n=t,t=400,o="ease"):"function"==typeof o&&(n=o,o="ease");const s=Object.keys(e).join(", "),i=this._getDuration(t);return this.each((t,r)=>{r.style.transition=`${s} ${i}ms ${o}`,requestAnimationFrame(()=>{Object.entries(e).forEach(([e,t])=>{r.style[e]="number"==typeof t?t+"px":t}),setTimeout(()=>{r.style.transition="",n&&n.call(r)},i)})})}stop(){return this.each((e,t)=>{const o=getComputedStyle(t);t.style.transition="none",["opacity","height","width"].forEach(e=>{t.style[e]&&(t.style[e]=o[e])})})}delay(e){return new Promise(t=>{setTimeout(()=>t(this),e)})}_getDuration(e){return"number"==typeof e?e:"fast"===e?200:"slow"===e?600:400}width(t){if(void 0===t){const e=this.elements[0];if(!e)return;return e.getBoundingClientRect().width}return this.each((o,n)=>{const s="function"==typeof t?t.call(n,o,new e(n).width()):t;n.style.width="number"==typeof s?s+"px":s})}height(t){if(void 0===t){const e=this.elements[0];if(!e)return;return e.getBoundingClientRect().height}return this.each((o,n)=>{const s="function"==typeof t?t.call(n,o,new e(n).height()):t;n.style.height="number"==typeof s?s+"px":s})}innerWidth(){const e=this.elements[0];return e?e.clientWidth:void 0}innerHeight(){const e=this.elements[0];return e?e.clientHeight:void 0}outerWidth(e=!1){const t=this.elements[0];if(!t)return;let o=t.offsetWidth;if(e){const e=getComputedStyle(t);o+=parseFloat(e.marginLeft)+parseFloat(e.marginRight)}return o}outerHeight(e=!1){const t=this.elements[0];if(!t)return;let o=t.offsetHeight;if(e){const e=getComputedStyle(t);o+=parseFloat(e.marginTop)+parseFloat(e.marginBottom)}return o}offset(t){if(void 0===t){const e=this.elements[0];if(!e)return;const t=e.getBoundingClientRect();return{top:t.top+window.pageYOffset,left:t.left+window.pageXOffset}}return this.each((o,n)=>{"static"===getComputedStyle(n).position&&(n.style.position="relative");const s=new e(n).offset(),i=parseFloat(getComputedStyle(n).left)||0,r=parseFloat(getComputedStyle(n).top)||0;void 0!==t.left&&(n.style.left=i+t.left-s.left+"px"),void 0!==t.top&&(n.style.top=r+t.top-s.top+"px")})}position(){const e=this.elements[0];if(e)return{top:e.offsetTop,left:e.offsetLeft}}scrollTop(e){if(void 0===e){const e=this.elements[0];if(!e)return;return e===window?window.pageYOffset:e.scrollTop}return this.each((t,o)=>{o===window?window.scrollTo(window.pageXOffset,e):o.scrollTop=e})}scrollLeft(e){if(void 0===e){const e=this.elements[0];if(!e)return;return e===window?window.pageXOffset:e.scrollLeft}return this.each((t,o)=>{o===window?window.scrollTo(e,window.pageYOffset):o.scrollLeft=e})}offsetParent(){return new e(this.elements.map(e=>e.offsetParent||document.body))}}const t=(t,o)=>"function"==typeof t?("loading"===document.readyState?document.addEventListener("DOMContentLoaded",t):t(),new e([])):new e(t,o),o={async request(e,t,o=null,n={}){const s={method:e,headers:{...n.headers},...n};o&&"GET"!==e&&"HEAD"!==e&&(s.headers["Content-Type"]="application/json",s.body=JSON.stringify(o));try{const e=await fetch(t,s);if(!e.ok)throw new Error(`HTTP Error: ${e.status}`);return await e.json()}catch(e){throw console.error("Domma HTTP Error:",e),e}},get(e,t){return this.request("GET",e,null,t)},post(e,t,o){return this.request("POST",e,t,o)},put(e,t,o){return this.request("PUT",e,t,o)},patch(e,t,o){return this.request("PATCH",e,t,o)},delete(e,t){return this.request("DELETE",e,{delete:!0},t)},head(e,t){return this.request("HEAD",e,null,t)},options(e,t){return this.request("OPTIONS",e,null,t)}},n={chunk(e,t=1){if(!e||t<1)return[];const o=[];for(let n=0;n<e.length;n+=t)o.push(e.slice(n,n+t));return o},compact:e=>e?e.filter(Boolean):[],concat:(e,...t)=>e?e.concat(...t):[],difference(e,...t){if(!e)return[];const o=new Set(t.flat());return e.filter(e=>!o.has(e))},differenceBy(e,t,o){if(!e)return[];const n=new Set(t.map(o));return e.filter(e=>!n.has(o(e)))},differenceWith:(e,t,o)=>e?e.filter(e=>!t.some(t=>o(e,t))):[],drop:(e,t=1)=>e?e.slice(t):[],dropRight(e,t=1){if(!e)return[];const o=e.length-t;return o>0?e.slice(0,o):[]},dropRightWhile(e,t){if(!e)return[];let o=e.length;for(;o--&&t(e[o],o,e););return e.slice(0,o+1)},dropWhile(e,t){if(!e)return[];let o=0;for(;o<e.length&&t(e[o],o,e);)o++;return e.slice(o)},eq:(e,t)=>e===t||e!=e&&t!=t,fill:(e,t,o=0,n)=>e?e.fill(t,o,n):[],findIndex(e,t,o=0){if(!e)return-1;for(let n=o;n<e.length;n++)if(t(e[n],n,e))return n;return-1},findLastIndex(e,t,o){if(!e)return-1;for(let n=void 0!==o?o:e.length-1;n>=0;n--)if(t(e[n],n,e))return n;return-1},first:e=>e?e[0]:void 0,head(e){return this.first(e)},flatten:e=>e?e.flat(1):[],flattenDeep:e=>e?e.flat(1/0):[],flattenDepth:(e,t=1)=>e?e.flat(t):[],fromPairs:e=>e?Object.fromEntries(e):{},indexOf:(e,t,o=0)=>e?e.indexOf(t,o):-1,initial:e=>e?e.slice(0,-1):[],intersection(...e){if(!e.length)return[];return e[0].filter(t=>e.every(e=>e.includes(t)))},join:(e,t=",")=>e?e.join(t):"",last:e=>e?e[e.length-1]:void 0,lastIndexOf:(e,t,o)=>e?void 0!==o?e.lastIndexOf(t,o):e.lastIndexOf(t):-1,nth(e,t=0){if(e)return t<0?e[e.length+t]:e[t]},pull(e,...t){if(!e)return[];const o=new Set(t);for(let t=e.length-1;t>=0;t--)o.has(e[t])&&e.splice(t,1);return e},pullAt(e,...t){if(!e)return[];const o=t.flat().sort((e,t)=>t-e),n=[];return o.forEach(t=>{t>=0&&t<e.length&&n.unshift(e.splice(t,1)[0])}),n},reverse:e=>e?e.reverse():[],slice:(e,t=0,o)=>e?void 0!==o?e.slice(t,o):e.slice(t):[],tail:e=>e?e.slice(1):[],take:(e,t=1)=>e?e.slice(0,t):[],takeRight(e,t=1){if(!e)return[];const o=Math.max(0,e.length-t);return e.slice(o)},union:(...e)=>[...new Set(e.flat())],uniq:e=>e?[...new Set(e)]:[],uniqBy(e,t){if(!e)return[];const o=new Set;return e.filter(e=>{const n=t(e);return!o.has(n)&&(o.add(n),!0)})},without(e,...t){if(!e)return[];const o=new Set(t);return e.filter(e=>!o.has(e))},xor(...e){if(!e.length)return[];const t=new Map;return e.flat().forEach(e=>{t.set(e,(t.get(e)||0)+1)}),[...t.entries()].filter(([,e])=>1===e).map(([e])=>e)},zip(...e){if(!e.length)return[];const t=Math.max(...e.map(e=>e.length)),o=[];for(let n=0;n<t;n++)o.push(e.map(e=>e[n]));return o},zipObject(e,t){if(!e)return{};const o={};return e.forEach((e,n)=>{o[e]=t?t[n]:void 0}),o},times(e,t){if((e=Math.floor(e))<1)return[];const o=new Array(e);for(let n=0;n<e;n++)o[n]=t?t(n):n;return o},range(e,t,o){if(void 0===t&&(t=e,e=0),0===(o=void 0===o?e<t?1:-1:o))return[];const n=Math.max(Math.ceil((t-e)/(o||1)),0),s=new Array(n);for(let t=0;t<n;t++)s[t]=e+t*o;return s},uniqueId:(()=>{let e=0;return function(t=""){const o=++e;return t?`${t}${o}`:String(o)}})(),countBy(e,t){const o={};return this.each(e,e=>{const n=t(e);o[n]=(o[n]||0)+1}),o},each:(e,t)=>(Array.isArray(e)?e.forEach((o,n)=>t(o,n,e)):e&&"object"==typeof e&&Object.keys(e).forEach(o=>t(e[o],o,e)),e),forEach(e,t){return this.each(e,t)},eachRight(e,t){if(Array.isArray(e))for(let o=e.length-1;o>=0;o--)t(e[o],o,e);else if(e&&"object"==typeof e){Object.keys(e).reverse().forEach(o=>t(e[o],o,e))}return e},forEachRight(e,t){return this.eachRight(e,t)},every:(e,t)=>Array.isArray(e)?e.every(t):!e||"object"!=typeof e||Object.values(e).every(t),filter:(e,t)=>Array.isArray(e)?e.filter(t):e&&"object"==typeof e?Object.values(e).filter(t):[],find:(e,t)=>Array.isArray(e)?e.find(t):e&&"object"==typeof e?Object.values(e).find(t):void 0,findLast(e,t){if(Array.isArray(e)){for(let o=e.length-1;o>=0;o--)if(t(e[o],o,e))return e[o]}else if(e&&"object"==typeof e){return Object.values(e).reverse().find(t)}},flatMap(e,t){return this.map(e,t).flat(1)},flatMapDeep(e,t){return this.map(e,t).flat(1/0)},groupBy(e,t){const o={};return this.each(e,e=>{const n="function"==typeof t?t(e):e[t];o[n]||(o[n]=[]),o[n].push(e)}),o},includes:(e,t,o=0)=>"string"==typeof e||Array.isArray(e)?e.includes(t,o):!(!e||"object"!=typeof e)&&Object.values(e).includes(t),keyBy(e,t){const o={};return this.each(e,e=>{const n="function"==typeof t?t(e):e[t];o[n]=e}),o},map:(e,t)=>Array.isArray(e)?e.map(t):e&&"object"==typeof e?Object.entries(e).map(([o,n])=>t(n,o,e)):[],orderBy(e,t,o){const n=Array.isArray(e)?[...e]:Object.values(e),s=Array.isArray(t)?t:[t],i=Array.isArray(o)?o:[o||"asc"];return n.sort((e,t)=>{for(let o=0;o<s.length;o++){const n=s[o],r=i[o]||"asc",a="function"==typeof n?n(e):e[n],l="function"==typeof n?n(t):t[n];if(a<l)return"asc"===r?-1:1;if(a>l)return"asc"===r?1:-1}return 0})},partition(e,t){const o=[],n=[];return this.each(e,(s,i)=>{t(s,i,e)?o.push(s):n.push(s)}),[o,n]},reduce(e,t,o){if(Array.isArray(e))return void 0!==o?e.reduce(t,o):e.reduce(t);if(e&&"object"==typeof e){const n=Object.entries(e);let s=o,i=0;void 0===s&&n.length>0&&(s=n[0][1],i=1);for(let o=i;o<n.length;o++){const[i,r]=n[o];s=t(s,r,i,e)}return s}return o},reduceRight(e,t,o){if(Array.isArray(e))return void 0!==o?e.reduceRight(t,o):e.reduceRight(t);if(e&&"object"==typeof e){const n=Object.entries(e).reverse();let s=o,i=0;void 0===s&&n.length>0&&(s=n[0][1],i=1);for(let o=i;o<n.length;o++){const[i,r]=n[o];s=t(s,r,i,e)}return s}return o},reject(e,t){return this.filter(e,(e,o,n)=>!t(e,o,n))},sample(e){const t=Array.isArray(e)?e:Object.values(e||{});return t[Math.floor(Math.random()*t.length)]},sampleSize(e,t=1){return this.shuffle(Array.isArray(e)?[...e]:Object.values(e||{})).slice(0,t)},shuffle(e){const t=Array.isArray(e)?[...e]:Object.values(e||{});for(let e=t.length-1;e>0;e--){const o=Math.floor(Math.random()*(e+1));[t[e],t[o]]=[t[o],t[e]]}return t},size:e=>null==e?0:"string"==typeof e||Array.isArray(e)?e.length:"object"==typeof e?Object.keys(e).length:0,some:(e,t)=>Array.isArray(e)?e.some(t):!(!e||"object"!=typeof e)&&Object.values(e).some(t),sortBy:(e,t)=>(Array.isArray(e)?[...e]:Object.values(e)).sort((e,o)=>{const n="function"==typeof t?t(e):e[t],s="function"==typeof t?t(o):o[t];return n<s?-1:n>s?1:0}),after(e,t){let o=0;return function(...n){if(++o>=e)return t.apply(this,n)}},ary:(e,t=e.length)=>function(...o){return e.apply(this,o.slice(0,t))},before(e,t){let o,n=0;return function(...s){return++n<e&&(o=t.apply(this,s)),o}},bind:(e,t,...o)=>function(...n){return e.apply(t,[...o,...n])},curry:(e,t=e.length)=>function o(...n){return n.length>=t?e.apply(this,n):function(...e){return o.apply(this,[...n,...e])}},curryRight:(e,t=e.length)=>function o(...n){return n.length>=t?e.apply(this,n):function(...e){return o.apply(this,[...e,...n])}},debounce(e,t=0,o={}){let n,s,i,r,a,l=0;const h=o.leading||!1,c=!1!==o.trailing,d=o.maxWait;function u(t){const o=s,n=i;return s=i=void 0,l=t,r=e.apply(n,o),r}function p(e){const o=e-a;return void 0===a||o>=t||o<0||void 0!==d&&e-l>=d}function m(){const e=Date.now();if(p(e))return f(e);n=setTimeout(m,function(e){const o=e-a,n=e-l,s=t-o;return void 0!==d?Math.min(s,d-n):s}(e))}function f(e){return n=void 0,c&&s?u(e):(s=i=void 0,r)}function v(...e){const o=Date.now(),c=p(o);if(s=e,i=this,a=o,c){if(void 0===n)return function(e){return l=e,n=setTimeout(m,t),h?u(e):r}(a);if(void 0!==d)return n=setTimeout(m,t),u(a)}return void 0===n&&(n=setTimeout(m,t)),r}return v.cancel=function(){void 0!==n&&clearTimeout(n),l=0,s=a=i=n=void 0},v.flush=function(){return void 0===n?r:f(Date.now())},v},defer(e,...t){return setTimeout(()=>e.apply(this,t),1)},delay(e,t,...o){return setTimeout(()=>e.apply(this,o),t)},flip:e=>function(...t){return e.apply(this,t.reverse())},flow(...e){const t=e.length;return 0===t?function(e){return e}:1===t?e[0]:function(...o){let n=e[0].apply(this,o);for(let o=1;o<t;o++)n=e[o].call(this,n);return n}},compose(...e){return this.flow(...e.reverse())},memoize(e,t){const o=new Map,n=function(...n){const s=t?t.apply(this,n):n[0];if(o.has(s))return o.get(s);const i=e.apply(this,n);return o.set(s,i),i};return n.cache=o,n},negate:e=>function(...t){return!e.apply(this,t)},once(e){return this.before(2,e)},partial:(e,...t)=>function(...o){return e.apply(this,[...t,...o])},partialRight:(e,...t)=>function(...o){return e.apply(this,[...o,...t])},throttle(e,t=0,o={}){const n=!1!==o.leading,s=!1!==o.trailing;return this.debounce(e,t,{leading:n,trailing:s,maxWait:t})},unary(e){return this.ary(e,1)},wrap:(e,t)=>function(...o){return t.apply(this,[e,...o])},assign:(e,...t)=>Object.assign(e||{},...t),assignIn(e,...t){const o=e||{};return t.forEach(e=>{if(e)for(const t in e)o[t]=e[t]}),o},extend(e,...t){return this.assignIn(e,...t)},at(e,...t){return t.flat().map(t=>this.get(e,t))},clone:e=>null===e||"object"!=typeof e?e:Array.isArray(e)?[...e]:{...e},cloneDeep(e){if(null===e||"object"!=typeof e)return e;if(Array.isArray(e))return e.map(e=>this.cloneDeep(e));if(e instanceof Date)return new Date(e);if(e instanceof RegExp)return new RegExp(e);const t={};for(const o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=this.cloneDeep(e[o]));return t},defaults(e,...t){const o=e||{};return t.forEach(e=>{e&&Object.keys(e).forEach(t=>{void 0===o[t]&&(o[t]=e[t])})}),o},defaultsDeep(e,...t){const o=e||{};return t.forEach(e=>{e&&"object"==typeof e&&Object.keys(e).forEach(t=>{const n=o[t],s=e[t];void 0===n?o[t]=this.cloneDeep(s):n&&"object"==typeof n&&s&&"object"==typeof s&&!Array.isArray(n)&&!Array.isArray(s)&&this.defaultsDeep(n,s)})}),o},entries:e=>e?Object.entries(e):[],toPairs(e){return this.entries(e)},findKey(e,t){if(e)for(const o of Object.keys(e))if(t(e[o],o,e))return o},findLastKey(e,t){if(!e)return;const o=Object.keys(e).reverse();for(const n of o)if(t(e[n],n,e))return n},forIn(e,t){if(e)for(const o in e)if(!1===t(e[o],o,e))break;return e},forOwn(e,t){if(e)for(const o of Object.keys(e))if(!1===t(e[o],o,e))break;return e},get(e,t,o){if(!e)return o;const n=Array.isArray(t)?t:t.replace(/\[(\d+)]/g,".$1").split(".");let s=e;for(const e of n){if(null==s)return o;s=s[e]}return void 0===s?o:s},has(e,t){if(!e)return!1;const o=Array.isArray(t)?t:t.replace(/\[(\d+)]/g,".$1").split(".");let n=e;for(const e of o){if(!Object.prototype.hasOwnProperty.call(n,e))return!1;n=n[e]}return!0},invert(e){const t={};return e&&Object.entries(e).forEach(([e,o])=>{t[o]=e}),t},invertBy(e,t=e=>e){const o={};return e&&Object.entries(e).forEach(([e,n])=>{const s=t(n);o[s]||(o[s]=[]),o[s].push(e)}),o},keys:e=>e?Object.keys(e):[],keysIn(e){const t=[];for(const o in e)t.push(o);return t},mapKeys(e,t){const o={};return e&&Object.entries(e).forEach(([n,s])=>{o[t(s,n,e)]=s}),o},mapValues(e,t){const o={};return e&&Object.entries(e).forEach(([n,s])=>{o[n]=t(s,n,e)}),o},merge(e,...t){const o=e||{};return t.forEach(e=>{e&&"object"==typeof e&&Object.keys(e).forEach(t=>{const n=o[t],s=e[t];n&&"object"==typeof n&&s&&"object"==typeof s&&!Array.isArray(n)&&!Array.isArray(s)?this.merge(n,s):o[t]=s})}),o},omit(e,...t){if(!e)return{};const o=new Set(t.flat()),n={};return Object.keys(e).forEach(t=>{o.has(t)||(n[t]=e[t])}),n},omitBy(e,t){if(!e)return{};const o={};return Object.entries(e).forEach(([e,n])=>{t(n,e)||(o[e]=n)}),o},pick(e,...t){if(!e)return{};const o=new Set(t.flat()),n={};return o.forEach(t=>{t in e&&(n[t]=e[t])}),n},pickBy(e,t){if(!e)return{};const o={};return Object.entries(e).forEach(([e,n])=>{t(n,e)&&(o[e]=n)}),o},set(e,t,o){if(!e)return e;const n=Array.isArray(t)?t:t.replace(/\[(\d+)]/g,".$1").split(".");let s=e;for(let e=0;e<n.length-1;e++){const t=n[e],o=n[e+1];t in s&&null!==s[t]&&"object"==typeof s[t]||(s[t]=/^\d+$/.test(o)?[]:{}),s=s[t]}return s[n[n.length-1]]=o,e},unset(e,t){if(!e)return!0;const o=Array.isArray(t)?t:t.replace(/\[(\d+)]/g,".$1").split(".");let n=e;for(let e=0;e<o.length-1;e++){const t=o[e];if(!(t in n))return!0;n=n[t]}return delete n[o[o.length-1]]},setIfUndefined(e,t,o){return void 0===this.get(e,t)&&this.set(e,t,o),e},values:e=>e?Object.values(e):[],valuesIn(e){const t=[];for(const o in e)t.push(e[o]);return t},isArray:e=>Array.isArray(e),isBoolean:e=>"boolean"==typeof e||e instanceof Boolean,isDate:e=>e instanceof Date,isEmpty:e=>null==e||(Array.isArray(e)||"string"==typeof e?0===e.length:e instanceof Map||e instanceof Set?0===e.size:"object"!=typeof e||0===Object.keys(e).length),isEqual(e,t){if(e===t)return!0;if(null===e||null===t)return e===t;if(typeof e!=typeof t)return!1;if("object"!=typeof e)return!1;if(Array.isArray(e)&&Array.isArray(t))return e.length===t.length&&e.every((e,o)=>this.isEqual(e,t[o]));if(Array.isArray(e)||Array.isArray(t))return!1;const o=Object.keys(e),n=Object.keys(t);return o.length===n.length&&o.every(o=>this.isEqual(e[o],t[o]))},isMatch(e,t){if(e===t)return!0;if(null==e||null==t)return!1;if("object"!=typeof e||"object"!=typeof t)return!1;const o=Object.keys(t);for(const n of o){const o=e[n],s=t[n];if("object"==typeof s&&null!==s){if(!this.isMatch(o,s))return!1}else if(o!==s)return!1}return!0},isFinite:e=>Number.isFinite(e),isFunction:e=>"function"==typeof e,isInteger:e=>Number.isInteger(e),isNaN:e=>Number.isNaN(e),isNil:e=>null==e,isNull:e=>null===e,isNumber:e=>"number"==typeof e||e instanceof Number,isObject:e=>null!==e&&"object"==typeof e,isPlainObject(e){if(null===e||"object"!=typeof e)return!1;const t=Object.getPrototypeOf(e);return null===t||t===Object.prototype},isRegExp:e=>e instanceof RegExp,isString:e=>"string"==typeof e||e instanceof String,isSymbol:e=>"symbol"==typeof e,isUndefined:e=>void 0===e,parseInt:(e,t)=>(void 0===t&&(t=/^0x/i.test(e)?16:10),null==e?NaN:"number"==typeof e?Math.trunc(e):(e=String(e).trim(),parseInt(e,t))),toNumber(e){if("number"==typeof e)return e;if("symbol"==typeof e)return NaN;if(this.isObject(e)){const t="function"==typeof e.valueOf?e.valueOf():e;e=this.isObject(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.trim();const t=/^0b[01]+$/i.test(e),o=/^0o[0-7]+$/i.test(e),n=/^[-+]0x[0-9a-f]+$/i.test(e);return t||o?parseInt(e.slice(2),t?2:8):n?NaN:+e},toInteger(e){const t=this.toNumber(e);return Number.isNaN(t)?0:0!==t&&Number.isFinite(t)?Math.trunc(t):t},toFinite(e){const t=17976931348623157e292;if(!e)return 0===e?e:0;const o=this.toNumber(e);return o===1/0?t:o===-1/0?-t:o==o?o:0},toSafeInteger(e){const t=9007199254740991,o=this.toInteger(e);return o<-9007199254740991?-9007199254740991:o>t?t:o},toString(e){if(null==e)return"";if("string"==typeof e)return e;if(Array.isArray(e))return e.map(e=>null==e?"":this.toString(e)).join(",");if("symbol"==typeof e)return e.toString();const t=String(e);return"0"===t&&1/e==-1/0?"-0":t},toArray(e){return e?this.isArray(e)?[...e]:"string"==typeof e?e.split(""):this.isObject(e)?"function"==typeof e[Symbol.iterator]?[...e]:Object.values(e):[]:[]},castArray(...e){if(!e.length)return[];const t=e[0];return this.isArray(t)?t:[t]},toLength(e){const t=4294967295,o=this.toInteger(e);return o<0?0:o>t?t:o},toPlainObject(e){const t={};for(const o in e)t[o]=e[o];return t},add:(e,t)=>e+t,ceil(e,t=0){const o=Math.pow(10,t);return Math.ceil(e*o)/o},divide:(e,t)=>e/t,floor(e,t=0){const o=Math.pow(10,t);return Math.floor(e*o)/o},max:e=>e&&e.length?Math.max(...e):void 0,maxBy(e,t){if(e&&e.length)return e.reduce((e,o)=>("function"==typeof t?t(o):o[t])>("function"==typeof t?t(e):e[t])?o:e)},mean(e){return e&&e.length?this.sum(e)/e.length:NaN},meanBy(e,t){return e&&e.length?this.sumBy(e,t)/e.length:NaN},min:e=>e&&e.length?Math.min(...e):void 0,minBy(e,t){if(e&&e.length)return e.reduce((e,o)=>("function"==typeof t?t(o):o[t])<("function"==typeof t?t(e):e[t])?o:e)},multiply:(e,t)=>e*t,round(e,t=0){const o=Math.pow(10,t);return Math.round(e*o)/o},subtract:(e,t)=>e-t,sum:e=>e?e.reduce((e,t)=>e+t,0):0,sumBy:(e,t)=>e?e.reduce((e,o)=>e+("function"==typeof t?t(o):o[t]),0):0,clamp:(e,t,o)=>(void 0===o&&(o=t,t=void 0),void 0!==t&&e<t?t:void 0!==o&&e>o?o:e),inRange:(e,t,o)=>(void 0===o&&(o=t,t=0),t>o&&([t,o]=[o,t]),e>=t&&e<o),random:(e=0,t=1,o)=>("boolean"==typeof e?(o=e,e=0,t=1):"boolean"==typeof t&&(o=t,t=e,e=0),e>t&&([e,t]=[t,e]),o||e%1!=0||t%1!=0?e+Math.random()*(t-e):e+Math.floor(Math.random()*(t-e+1))),camelCase:e=>e?e.replace(/[^a-zA-Z0-9]+(.)/g,(e,t)=>t.toUpperCase()).replace(/^[A-Z]/,e=>e.toLowerCase()):"",capitalize:e=>e?e.charAt(0).toUpperCase()+e.slice(1).toLowerCase():"",endsWith:(e,t,o)=>!!e&&(void 0!==o?e.slice(0,o).endsWith(t):e.endsWith(t)),escape(e){if(!e)return"";const t={"&":"&","<":"<",">":">",'"':""","'":"'"};return e.replace(/[&<>"']/g,e=>t[e])},kebabCase:e=>e?e.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/[\s_]+/g,"-").toLowerCase():"",lowerCase(e){return e?this.words(e).join(" ").toLowerCase():""},lowerFirst:e=>e?e.charAt(0).toLowerCase()+e.slice(1):"",pad(e="",t=0,o=" "){const n=e.length;if(n>=t)return e;const s=t-n,i=Math.floor(s/2),r=s-i;return o.repeat(Math.ceil(i/o.length)).slice(0,i)+e+o.repeat(Math.ceil(r/o.length)).slice(0,r)},padEnd(e="",t=0,o=" "){const n=e.length;if(n>=t)return e;const s=t-n;return e+o.repeat(Math.ceil(s/o.length)).slice(0,s)},padStart(e="",t=0,o=" "){const n=e.length;if(n>=t)return e;const s=t-n;return o.repeat(Math.ceil(s/o.length)).slice(0,s)+e},repeat:(e="",t=1)=>e.repeat(Math.max(0,Math.floor(t))),replace:(e="",t,o)=>e.replace(t,o),snakeCase(e){return e?this.words(e).join("_").toLowerCase():""},split:(e="",t,o)=>e.split(t,o),startCase(e){return e?this.words(e).map(e=>this.capitalize(e)).join(" "):""},startsWith:(e,t,o=0)=>!!e&&e.startsWith(t,o),toLower:e=>e?e.toLowerCase():"",toUpper:e=>e?e.toUpperCase():"",trim(e="",t){if(!t)return e.trim();const o=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return e.replace(new RegExp(`^[${o}]+|[${o}]+$`,"g"),"")},trimEnd(e="",t){if(!t)return e.trimEnd();const o=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return e.replace(new RegExp(`[${o}]+$`,"g"),"")},trimStart(e="",t){if(!t)return e.trimStart();const o=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return e.replace(new RegExp(`^[${o}]+`,"g"),"")},truncate(e="",t={}){const o=t.length||30,n=t.omission||"...",s=t.separator;if(e.length<=o)return e;let i=o-n.length;if(i<1)return n;let r=e.slice(0,i);if(s){const e="string"==typeof s?r.lastIndexOf(s):r.search(new RegExp(s.source+"(?!.*"+s.source+")"));e>-1&&(r=r.slice(0,e))}return r+n},unescape(e){if(!e)return"";const t={"&":"&","<":"<",">":">",""":'"',"'":"'"};return e.replace(/&(?:amp|lt|gt|quot|#39);/g,e=>t[e])},upperCase(e){return e?this.words(e).join(" ").toUpperCase():""},upperFirst:e=>e?e.charAt(0).toUpperCase()+e.slice(1):"",words:(e="",t)=>t?e.match(t)||[]:(e=e.replace(/([a-z])([A-Z])/g,"$1 $2")).match(/[a-zA-Z0-9]+/g)||[],sprintf(e,...t){if(!e)return"";let o=0;return e.replace(/%(?:(\d+)\$)?([+-])?(\d+)?(?:\.(\d+))?([sdifojx%])/g,(e,n,s,i,r,a)=>{if("%"===a)return"%";const l=n?parseInt(n,10)-1:o++,h=t[l];if(void 0===h)return e;if(null===h)return"null";let c;switch(a){case"s":default:c=String(h);break;case"d":case"i":c=String(parseInt(h,10));break;case"f":const e=parseFloat(h);c=void 0!==r?e.toFixed(parseInt(r,10)):String(e);break;case"o":c=Object.prototype.toString.call(h);break;case"j":try{c=JSON.stringify(h)}catch(e){c="[Circular]"}break;case"x":c=parseInt(h,10).toString(16)}if(i){const e=parseInt(i,10),t="0"===s?"0":" ";c="-"===s?c.padEnd(e," "):c.padStart(e,t)}if("+"===s&&("d"===a||"i"===a||"f"===a)){parseFloat(c)>=0&&!c.startsWith("+")&&(c="+"+c)}return c})},format(e,...t){return this.sprintf(e,...t)},template(e,t={}){const{partials:o={},helpers:n={}}=t,s=e=>null==e?"":String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),i=(e,t)=>"."===t?e:t.startsWith("@")?e[t]:t.split(".").reduce((e,t)=>e&&void 0!==e[t]?e[t]:"",e),r=(e,t,a=null)=>{let l=e;return l=l.replace(/\{\{#with\s+([^}]+)\}\}([\s\S]*?)\{\{\/with\}\}/g,(e,o,n)=>{const s=i(t,o.trim());return s&&"object"==typeof s?r(n,s,t):""}),l=l.replace(/\{\{#each\s+([^}]+)\}\}([\s\S]*?)\{\{\/each\}\}/g,(e,o,n)=>{const s=i(t,o.trim());return Array.isArray(s)?s.map((e,o)=>{const i="object"==typeof e?{...e,"@index":o,"@first":0===o,"@last":o===s.length-1}:{".":e,"@index":o,"@first":0===o,"@last":o===s.length-1};return r(n,i,t)}).join(""):""}),l=l.replace(/\{\{#if\s+([^}]+)\}\}([\s\S]*?)(?:\{\{else\}\}([\s\S]*?))?\{\{\/if\}\}/g,(e,o,n,s="")=>{const l=i(t,o.trim()),h=Array.isArray(l)?l.length>0:Boolean(l);return r(h?n:s,t,a)}),l=l.replace(/\{\{#unless\s+([^}]+)\}\}([\s\S]*?)\{\{\/unless\}\}/g,(e,o,n)=>{const s=i(t,o.trim());return(Array.isArray(s)?0===s.length:!s)?r(n,t,a):""}),l=l.replace(/\{\{>\s*([^}]+)\}\}/g,(e,n)=>{const s=o[n.trim()];return s?r(s,t,a):""}),l=l.replace(/\{\{\{([^}]+)\}\}\}/g,(e,o)=>{const n=i(t,o.trim());return null!=n?String(n):""}),l=l.replace(/\{\{([^#/>][^}]*)\}\}/g,(e,o)=>{const r=o.trim(),a=r.match(/^(\w+)\s+(.+)$/);if(a&&n[a[1]]){const e=a[2].split(/\s+/).map(e=>/^["'].*["']$/.test(e)?e.slice(1,-1):i(t,e));return s(n[a[1]](...e))}const l=i(t,r);return s(l)}),l};return(t={})=>r(e,t)},render(e,t,o={}){return this.template(e,o)(t)},async copyToClipboard(e){if(navigator.clipboard?.writeText)try{return await navigator.clipboard.writeText(e),!0}catch(e){}const t=document.createElement("textarea");t.value=e,t.style.cssText="position:fixed;opacity:0;pointer-events:none",document.body.appendChild(t),t.select();try{return document.execCommand("copy")}catch(e){return!1}finally{document.body.removeChild(t)}},escapeHtml:e=>null==e?"":String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),chain(e){const t={_value:e,value(){return this._value}};["chunk","compact","concat","difference","drop","dropRight","fill","findIndex","findLastIndex","flatten","flattenDeep","flattenDepth","fromPairs","head","indexOf","initial","intersection","join","last","lastIndexOf","nth","pull","pullAll","pullAt","remove","reverse","slice","sortedIndex","sortedUniq","tail","take","takeRight","union","uniq","uniqBy","unzip","without","xor","zip","countBy","each","every","filter","find","findLast","flatMap","groupBy","includes","invokeMap","keyBy","map","orderBy","partition","reduce","reduceRight","reject","sample","sampleSize","shuffle","size","some","sortBy","assign","assignIn","at","defaults","entries","extend","findKey","findLastKey","forIn","forOwn","functions","get","has","invert","invertBy","invoke","keys","mapKeys","mapValues","merge","omit","omitBy","pick","pickBy","result","set","toPairs","transform","unset","update","values","camelCase","capitalize","deburr","endsWith","escape","escapeRegExp","kebabCase","lowerCase","lowerFirst","pad","padEnd","padStart","parseInt","repeat","replace","snakeCase","split","startCase","startsWith","toLower","toUpper","trim","trimEnd","trimStart","truncate","unescape","upperCase","upperFirst","words"].forEach(e=>{"function"==typeof this[e]&&(t[e]=function(...t){return this._value=n[e](this._value,...t),this})});return["sum","mean","min","max","toArray","toJSON","toString"].forEach(e=>{"function"==typeof this[e]&&(t[e]=function(...t){return n[e](this._value,...t)})}),t}};class s{constructor(e,t={}){this.element="string"==typeof e?document.querySelector(e):e,this.options={...this.constructor.defaults,...t},this._eventHandlers=[],this.element&&(this.element._dommaComponent=this)}on(e,t){this.options[e]&&"function"==typeof this.options[e]&&this.options[e](t)}setOptions(e){return this.options={...this.options,...e},"function"==typeof this._applyOptions&&this._applyOptions(),this}_addEventListener(e,t,o){e.addEventListener(t,o),this._eventHandlers.push({element:e,event:t,handler:o})}destroy(){for(const{element:e,event:t,handler:o}of this._eventHandlers)e.removeEventListener(t,o);this._eventHandlers=[],this.element&&delete this.element._dommaComponent}}class i extends s{static defaults={data:[],idKey:"id",parentKey:"parent_id",childrenKey:"children",labelKey:"name",iconKey:"icon",colorKey:"color",expandedByDefault:!0,expandedNodes:[],selectable:!0,multiSelect:!1,selectedNodes:[],renderNode:null,getBadge:null,getNodeIcon:null,getNodeClass:null,actions:[],indentSize:1.5,showIcons:!0,showToggleButtons:!0,toggleIcon:"chevron-down",onSelect:null,onDeselect:null,onExpand:null,onCollapse:null,onAction:null,onClick:null};constructor(e,t={}){super(e,t),this.element?(this._tree=[],this._flatMap={},this._expandedNodes=new Set,this._selectedNodes=new Set,this._init()):console.error("TreeView: Element not found",e)}_init(){this.element.classList.contains("dm-treeview")||this.element.classList.add("dm-treeview"),this.options.expandedNodes.length>0&&this.options.expandedNodes.forEach(e=>this._expandedNodes.add(e)),this.options.selectedNodes.length>0&&this.options.selectedNodes.forEach(e=>this._selectedNodes.add(e)),this.options.data&&this.options.data.length>0&&this.setData(this.options.data),this._setupEventListeners()}_setupEventListeners(){this._addEventListener(this.element,"click",e=>{const t=e.target.closest(".dm-treeview-node");if(!t||e.target.closest(".dm-treeview-toggle")||e.target.closest(".dm-treeview-action"))return;const o=this._parseNodeId(t.dataset.nodeId);this._handleSelect(o,e)}),this._addEventListener(this.element,"click",e=>{const t=e.target.closest(".dm-treeview-toggle");if(t){e.stopPropagation();const o=this._parseNodeId(t.dataset.nodeId);this.toggle(o)}}),this._addEventListener(this.element,"click",e=>{const t=e.target.closest(".dm-treeview-action");if(t){e.stopPropagation();const o=this._parseNodeId(t.dataset.nodeId),n=t.dataset.action;this._handleAction(n,o,e)}})}_buildTree(e){const t={},o=[],n=this.options.idKey,s=this.options.parentKey,i=this.options.childrenKey;return e.forEach(e=>{t[e[n]]={...e,[i]:[]}}),e.forEach(e=>{const r=t[e[n]],a=e[s];null==a?o.push(r):t[a]?t[a][i].push(r):o.push(r)}),this._sortTree(o),{tree:o,nodeMap:t}}_sortTree(e){const t=this.options.childrenKey,o=this.options.labelKey;e.sort((e,t)=>{const n=(e[o]||"").toLowerCase(),s=(t[o]||"").toLowerCase();return n.localeCompare(s)}),e.forEach(e=>{e[t]&&e[t].length>0&&this._sortTree(e[t])})}_render(){const e=this._tree.map(e=>this._renderNode(e,0)).join("");this.element.innerHTML=e}_renderNode(e,t){const o=this.options.idKey,n=this.options.childrenKey,s=e[o],i=e[n]&&e[n].length>0,r=this._expandedNodes.has(s),a=this._selectedNodes.has(s),l={isExpanded:r,isSelected:a,hasChildren:i},h=this.options.renderNode?this.options.renderNode(e,t,l):this._defaultRenderNode(e,t,l),c=this.options.getBadge?this.options.getBadge(e):null;let d=`\n <div class="dm-treeview-node ${a?"dm-treeview-node-selected":""} ${this.options.getNodeClass?this.options.getNodeClass(e):""}"\n data-node-id="${s}"\n data-depth="${t}"\n style="padding-left: ${t*this.options.indentSize}rem;">\n <div class="dm-treeview-node-content">\n ${i&&this.options.showToggleButtons?this._renderToggle(s,r):'<span class="dm-treeview-spacer"></span>'}\n ${h}\n ${null!=c?`<span class="dm-treeview-badge">${c}</span>`:""}\n </div>\n ${this.options.actions.length>0?this._renderActions(e):""}\n </div>\n `;return i&&r&&(d+=`<div class="dm-treeview-children" data-parent-id="${s}">`,e[n].forEach(e=>{d+=this._renderNode(e,t+1)}),d+="</div>"),d}_defaultRenderNode(e,t,o){const n=this.options.labelKey,s=this.options.iconKey,i=this.options.colorKey,r=e[n]||"",a=this.options.getNodeIcon?this.options.getNodeIcon(e):e[s],l=e[i];let h="";return this.options.showIcons&&a&&(h+=`<span class="dm-treeview-icon" data-icon="${a}" ${l?`style="color: ${l};"`:""}></span>`),h+=`<span class="dm-treeview-label">${this._escapeHtml(r)}</span>`,h}_renderToggle(e,t){return`\n <button type="button"\n class="dm-treeview-toggle ${t?"dm-treeview-expanded":"dm-treeview-collapsed"}"\n data-node-id="${e}"\n aria-label="${t?"Collapse":"Expand"}">\n <span data-icon="${this.options.toggleIcon}"></span>\n </button>\n `}_renderActions(e){const t=e[this.options.idKey],o=this.options.actions.filter(t=>"function"!=typeof t.visible||t.visible(e));if(0===o.length)return"";let n='<div class="dm-treeview-actions">';return o.forEach(e=>{n+=`\n <button type="button"\n class="dm-treeview-action"\n data-node-id="${t}"\n data-action="${e.name}"\n title="${e.tooltip||e.name}"\n aria-label="${e.tooltip||e.name}">\n ${e.icon?`<span data-icon="${e.icon}"></span>`:e.name}\n </button>\n `}),n+="</div>",n}_handleSelect(e,t){if(!this.options.selectable)return;const o=this._flatMap[e];if(!o)return;"function"==typeof this.options.onClick&&this.options.onClick(e,o,t);const n=this._selectedNodes.has(e);this.options.multiSelect?n?this.deselect(e):this.select(e):n?this.deselect(e):(this.deselectAll(!0),this.select(e))}_handleAction(e,t,o){const n=this._flatMap[t];n&&"function"==typeof this.options.onAction&&this.options.onAction(e,t,n,o)}_parseNodeId(e){const t=Number(e);return isNaN(t)||e!==t.toString()?e:t}_escapeHtml(e){const t=document.createElement("div");return t.textContent=e,t.innerHTML}setData(e){const{tree:t,nodeMap:o}=this._buildTree(e);return this._tree=t,this._flatMap=o,this.options.expandedByDefault&&Object.keys(o).forEach(e=>{const t=o[e],n=this.options.childrenKey;t[n]&&t[n].length>0&&this._expandedNodes.add(this._parseNodeId(e))}),this._render(),this}getData(){return this._tree}getFlatData(){return Object.values(this._flatMap)}refresh(){return this._render(),"undefined"!=typeof window&&window.Domma&&window.Domma.icons&&window.Domma.icons.scan(this.element),this}getNode(e){return this._flatMap[e]||null}updateNode(e,t){const o=this._flatMap[e];return o&&(Object.assign(o,t),this.refresh()),this}select(e,t=!1){if(!this.options.selectable)return this;const o=this._flatMap[e];return o?(this._selectedNodes.add(e),this.refresh(),t||"function"!=typeof this.options.onSelect||this.options.onSelect(e,o,null),this):this}deselect(e,t=!1){const o=this._flatMap[e];return o?(this._selectedNodes.delete(e),this.refresh(),t||"function"!=typeof this.options.onDeselect||this.options.onDeselect(e,o,null),this):this}toggleSelect(e){return this._selectedNodes.has(e)?this.deselect(e):this.select(e),this}selectAll(){return this.options.multiSelect?(Object.keys(this._flatMap).forEach(e=>{this._selectedNodes.add(this._parseNodeId(e))}),this.refresh(),this):this}deselectAll(e=!1){const t=Array.from(this._selectedNodes);return this._selectedNodes.clear(),this.refresh(),e||"function"!=typeof this.options.onDeselect||t.forEach(e=>{const t=this._flatMap[e];t&&this.options.onDeselect(e,t,null)}),this}getSelected(){return Array.from(this._selectedNodes)}getSelectedNodes(){return this.getSelected().map(e=>this._flatMap[e]).filter(Boolean)}isSelected(e){return this._selectedNodes.has(e)}expand(e,t=!1){const o=this._flatMap[e];return o?(this._expandedNodes.add(e),this.refresh(),t||"function"!=typeof this.options.onExpand||this.options.onExpand(e,o,null),this):this}collapse(e,t=!1){const o=this._flatMap[e];return o?(this._expandedNodes.delete(e),this.refresh(),t||"function"!=typeof this.options.onCollapse||this.options.onCollapse(e,o,null),this):this}toggle(e){return this._expandedNodes.has(e)?this.collapse(e):this.expand(e),this}expandAll(){return Object.keys(this._flatMap).forEach(e=>{const t=this._flatMap[e],o=this.options.childrenKey;t[o]&&t[o].length>0&&this._expandedNodes.add(this._parseNodeId(e))}),this.refresh(),this}collapseAll(){return this._expandedNodes.clear(),this.refresh(),this}isExpanded(e){return this._expandedNodes.has(e)}getExpanded(){return Array.from(this._expandedNodes)}getParent(e){const t=this._flatMap[e];if(!t)return null;const o=t[this.options.parentKey];return null!=o&&this._flatMap[o]||null}getChildren(e){const t=this._flatMap[e];if(!t)return[];return t[this.options.childrenKey]||[]}getAncestors(e){const t=[];let o=this.getParent(e);for(;o;)t.unshift(o),o=this.getParent(o[this.options.idKey]);return t}getDescendants(e){const t=[];return this.getChildren(e).forEach(e=>{t.push(e);const o=e[this.options.idKey];t.push(...this.getDescendants(o))}),t}getSiblings(e){if(!this._flatMap[e])return[];const t=this.getParent(e);return t?this.getChildren(t[this.options.idKey]).filter(t=>t[this.options.idKey]!==e):this._tree.filter(t=>t[this.options.idKey]!==e)}getLevel(e){return this.getAncestors(e).length}find(e){for(const t in this._flatMap){const o=this._flatMap[t];if(e(o))return o}return null}filter(e){const t=[];for(const o in this._flatMap){const n=this._flatMap[o];e(n)&&t.push(n)}return t}forEach(e){for(const t in this._flatMap)e(this._flatMap[t],t);return this}scrollToNode(e,t={}){const o=this.element.querySelector(`[data-node-id="${e}"]`);return o&&o.scrollIntoView({behavior:t.behavior||"smooth",block:t.block||"center",inline:t.inline||"nearest"}),this}destroy(){this._tree=[],this._flatMap={},this._expandedNodes.clear(),this._selectedNodes.clear(),this.element.innerHTML="",super.destroy()}}class r extends s{static defaults={hoverable:!0,shadow:"medium",rounded:!0,animation:!0,animationDuration:200,onHover:null,onLeave:null,onClick:null,collapsible:!1,collapsed:!1,persistKey:null,collapseIcon:"chevron-down",onCollapse:null,onExpand:null};constructor(e,t={}){super(e,t),this._init(),this._initCollapsible()}_init(){if(!this.element)return;const e=this.element,t=this.options;e.style.transition=t.animation?`transform ${t.animationDuration}ms ease, box-shadow ${t.animationDuration}ms ease`:"none",t.rounded&&(e.style.borderRadius="8px"),this._applyShadow(t.shadow),t.hoverable&&(this._addEventListener(e,"mouseenter",o=>{e.style.transform="scale(1.02)",this._applyShadow("large"),t.onHover&&t.onHover(o,this)}),this._addEventListener(e,"mouseleave",o=>{e.style.transform="scale(1)",this._applyShadow(t.shadow),t.onLeave&&t.onLeave(o,this)})),t.onClick&&(e.style.cursor="pointer",this._addEventListener(e,"click",e=>{t.onClick(e,this)}))}_applyShadow(e){const t={none:"none",small:"0 1px 3px rgba(0,0,0,0.12)",medium:"0 2px 8px rgba(0,0,0,0.15)",large:"0 8px 20px rgba(0,0,0,0.2)"};this.element.style.boxShadow=t[e]||t.medium}setShadow(e){return this.options.shadow=e,this._applyShadow(e),this}_initCollapsible(){this.options.collapsible&&(this.element.classList.add("card-collapsible"),this._addCollapseIcon(),this._bindHeaderClick(),this._restoreState())}_addCollapseIcon(){const e=this.element.querySelector(".card-header");if(!e)return;const t=document.createElement("span");for(t.className="card-header-content";e.firstChild;)t.appendChild(e.firstChild);e.appendChild(t);const o=document.createElement("span");o.className="card-collapse-icon";const n=Domma.icons.render(this.options.collapseIcon,{size:16});o.appendChild(n),e.appendChild(o)}_bindHeaderClick(){const e=this.element.querySelector(".card-header");e&&this._addEventListener(e,"click",()=>this.toggle())}_getStorageKey(){return this.options.persistKey||(this.element.id?`domma-card-${this.element.id}`:null)}_restoreState(){const e=this._getStorageKey();if(e){const t=Domma.storage.get(e);if(t?.collapsed)return void this._setCollapsed(!0,!1)}this.options.collapsed&&this._setCollapsed(!0,!1)}_saveState(){const e=this._getStorageKey();e&&Domma.storage.set(e,{collapsed:this.isCollapsed()})}_setCollapsed(e,t=!0){const o=this.element.querySelector(".card-body");o&&(e?(o.style.height=o.scrollHeight+"px",o.offsetHeight,o.style.height="0",this.element.classList.add("card-collapsed"),this.options.onCollapse&&this.options.onCollapse(this)):(this.element.classList.remove("card-collapsed"),o.style.height=o.scrollHeight+"px",setTimeout(()=>{o.style.height="auto"},200),this.options.onExpand&&this.options.onExpand(this)),t&&this._saveState())}collapse(){return this._setCollapsed(!0),this}expand(){return this._setCollapsed(!1),this}toggle(){return this._setCollapsed(!this.isCollapsed()),this}isCollapsed(){return this.element.classList.contains("card-collapsed")}}class a extends s{static defaults={backdrop:!0,backdropClose:!0,keyboard:!0,animation:"fade",animationDuration:300,closeButton:!0,onOpen:null,onOpened:null,onClose:null,onClosed:null,size:"medium",centered:!0,scrollable:!1,title:"",content:"",footer:"",buttons:[],className:"",headerClass:"",bodyClass:"",footerClass:"",onButtonClick:null};constructor(e,t={}){super(e,t),this._backdrop=null,this._isOpen=!1,this._init()}_init(){if(!this.element)return;const e=this.element,t=this.options;if(t._factoryCreated?(e.style.opacity="0",e.style.transition=`opacity ${t.animationDuration}ms ease, transform ${t.animationDuration}ms ease`):(e.style.display="none",e.style.position="fixed",e.style.top="50%",e.style.left="50%",e.style.transform="translate(-50%, -50%)",e.style.zIndex="1001",e.style.opacity="0",e.style.transition=`opacity ${t.animationDuration}ms ease, transform ${t.animationDuration}ms ease`),t.keyboard&&(this._keyHandler=e=>{"Escape"===e.key&&this._isOpen&&this.close()},document.addEventListener("keydown",this._keyHandler)),t.closeButton){const t=e.querySelector("[data-close], .modal-close, .close");t&&this._addEventListener(t,"click",()=>this.close())}e.querySelectorAll(".modal-close-btn").forEach(e=>{this._addEventListener(e,"click",()=>this.close())})}open(){if(this._isOpen)return this;const e=this.options,t=this.element;return e.onOpen&&e.onOpen(this),e.backdrop&&(this._backdrop=document.createElement("div"),this._backdrop.style.cssText=`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.5);\n z-index: 1000;\n opacity: 0;\n transition: opacity ${e.animationDuration}ms ease;\n `,document.body.appendChild(this._backdrop),e.backdropClose&&this._addEventListener(this._backdrop,"click",()=>this.close()),this._backdrop.offsetHeight,this._backdrop.style.opacity="1"),t.style.display="block",t.offsetHeight,"fade"===e.animation?t.style.opacity="1":"slide"===e.animation?(t.style.transform="translate(-50%, -50%)",t.style.opacity="1"):"zoom"===e.animation?(t.style.transform="translate(-50%, -50%) scale(1)",t.style.opacity="1"):t.style.opacity="1",this._isOpen=!0,setTimeout(()=>{e.onOpened&&e.onOpened(this)},e.animationDuration),this}close(){if(!this._isOpen)return this;const e=this.options,t=this.element;return e.onClose&&e.onClose(this),t.style.opacity="0",this._backdrop&&(this._backdrop.style.opacity="0"),setTimeout(()=>{t.style.display="none",this._backdrop&&(this._backdrop.remove(),this._backdrop=null),this._isOpen=!1,e.onClosed&&e.onClosed(this)},e.animationDuration),this}toggle(){return this._isOpen?this.close():this.open()}isOpen(){return this._isOpen}destroy(){super.destroy(),this._keyHandler&&document.removeEventListener("keydown",this._keyHandler),this._backdrop&&this._backdrop.remove()}remove(){return this._isOpen&&this.close(),setTimeout(()=>{this.destroy(),this.element&&this.element.parentNode&&this.element.remove(),this._backdrop&&(this._backdrop.remove(),this._backdrop=null);const e=void 0!==W?W:"undefined"!=typeof window&&window.Domma&&window.Domma.elements||null;e&&e._instances&&e._instances.has(this.element)&&e._instances.delete(this.element),this._overlay&&this._overlay.parentNode&&this._overlay.remove()},this.options.animationDuration),this}}const l={_container:null,_zIndexBase:1050,_activeModals:[],_defaults:{size:"large",title:"",content:"",buttons:[{id:"close",text:"Close",variant:"secondary"}],backdrop:!0,backdropClose:!0,keyboard:!0,animation:!0,animationDuration:300,className:"",headerClass:"",bodyClass:"",footerClass:"",scrollable:!1,onButtonClick:null,onOpen:null,onClose:null},_ensureContainer(){return this._container||(this._container=document.createElement("div"),this._container.className="dm-dialog-container",this._container.style.cssText="position: fixed; top: 0; left: 0; right: 0; bottom: 0; pointer-events: none; z-index: 1040;",document.body.appendChild(this._container)),this._container},_createElements(e){const t={...this._defaults,...e};this._ensureContainer();const o=document.createElement("div");o.className="dm-dialog-overlay",o.style.cssText=`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.5);\n display: none;\n align-items: center;\n justify-content: center;\n z-index: ${this._getNextZIndex()};\n pointer-events: auto;\n opacity: 0;\n transition: opacity ${t.animationDuration}ms ease;\n `;const n=document.createElement("div");n.className=`dm-dialog dm-dialog-${t.size}${t.className?" "+t.className:""}`,n.setAttribute("role","dialog"),n.setAttribute("aria-modal","true"),n.style.cssText=`\n background: white;\n border-radius: 8px;\n box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);\n max-width: 90%;\n max-height: 90vh;\n overflow: hidden;\n transform: scale(0.95) translateY(-10px);\n transition: transform ${t.animationDuration}ms ease, opacity ${t.animationDuration}ms ease;\n opacity: 0;\n `;let s='<div class="dm-dialog-content">';return t.title&&(s+=`<div class="dm-dialog-header${t.headerClass?" "+t.headerClass:""}" style="position: relative; padding: 1.5rem 1.5rem 1rem; border-bottom: 1px solid #e5e7eb;">`,s+=`<h3 class="dm-dialog-title" style="margin: 0; font-size: 1.25rem; font-weight: 600;">${t.title}</h3>`,t.backdrop&&t.backdropClose&&(s+='<button type="button" class="dm-dialog-close" aria-label="Close" style="position: absolute; right: 1rem; top: 1rem; background: none; border: none; font-size: 1.5rem; cursor: pointer; color: #6b7280; line-height: 1; padding: 0; width: 2rem; height: 2rem;">×</button>'),s+="</div>"),s+=`<div class="dm-dialog-body${t.bodyClass?" "+t.bodyClass:""}${t.scrollable?" dm-dialog-body-scrollable":""}" style="padding: 1.5rem;">`,s+=t.content,s+="</div>",t.buttons&&t.buttons.length>0&&(s+=`<div class="dm-dialog-footer${t.footerClass?" "+t.footerClass:""}" style="display: flex; justify-content: flex-end; gap: 0.5rem; padding: 1rem 1.5rem; border-top: 1px solid #e5e7eb; background: #f9fafb;">`,t.buttons.forEach(e=>{const t=e.variant||"secondary";s+=`<button type="button" class="btn btn-${t}" data-button-id="${e.id}">${e.text}</button>`}),s+="</div>"),s+="</div>",n.innerHTML=s,o.appendChild(n),{overlay:o,dialog:n,opts:t}},_getNextZIndex(){return this._zIndexBase+10*this._activeModals.length},createModal(e){const{overlay:t,dialog:o,opts:n}=this._createElements(e);n._factoryCreated=!0;const s=new a(o,n);s._overlay=t,s._factoryCreated=!0,this._ensureContainer().appendChild(t);const i=o.querySelector(".dm-dialog-close");return i&&i.addEventListener("click",()=>{s.close(),s._factoryCreated&&setTimeout(()=>s.remove(),n.animationDuration)}),o.querySelectorAll("[data-button-id]").forEach(e=>{e.addEventListener("click",()=>{const t=e.getAttribute("data-button-id");n.onButtonClick&&n.onButtonClick(t,s);const o=n.buttons.find(e=>e.id===t);o&&!1===o.close||(s.close(),s._factoryCreated&&setTimeout(()=>s.remove(),n.animationDuration))})}),n.backdropClose&&t.addEventListener("click",e=>{e.target===t&&(s.close(),s._factoryCreated&&setTimeout(()=>s.remove(),n.animationDuration))}),s.open.bind(s),s.open=function(){return t.style.display="flex",o.style.display="block",this._activeModals.push(s),setTimeout(()=>{t.style.opacity="1",o.style.transform="scale(1) translateY(0)",o.style.opacity="1"},10),n.onOpen&&n.onOpen(s),n.onOpened&&setTimeout(()=>n.onOpened(s),n.animationDuration),s._isOpen=!0,s}.bind(this),s.close.bind(s),s.close=function(){return s._isOpen?(n.onClose&&n.onClose(s),t.style.opacity="0",o.style.transform="scale(0.95) translateY(-10px)",o.style.opacity="0",setTimeout(()=>{t.style.display="none",o.style.display="none";const e=this._activeModals.indexOf(s);e>-1&&this._activeModals.splice(e,1),s._isOpen=!1,n.onClosed&&n.onClosed(s)},n.animationDuration),s):s}.bind(this),s},showModal(e){return new Promise(t=>{this.createModal({...e,onButtonClick:(o,n)=>{e.onButtonClick&&e.onButtonClick(o,n),t(o)}}).open()})}};class h extends s{static defaults={active:0,animation:"fade",animationDuration:200,tabSelector:".tab-item, [data-tab]",panelSelector:".tab-panel, [data-panel]",activeClass:"active",onChange:null};constructor(e,t={}){super(e,t),this._activeIndex=this.options.active,this._init()}_init(){if(!this.element)return;const e=this.options;this._tabs=this.element.querySelectorAll(e.tabSelector),this._panels=this.element.querySelectorAll(e.panelSelector),this._tabs.forEach((e,t)=>{this._addEventListener(e,"click",e=>{e.preventDefault(),this.activate(t)})}),this._updateState()}activate(e){if(e===this._activeIndex)return this;if(e<0||e>=this._tabs.length)return this;const t=this.options,o=this._activeIndex;return this._activeIndex=e,this._updateState(),t.onChange&&t.onChange({index:e,oldIndex:o,tab:this._tabs[e],panel:this._panels[e]}),this}_updateState(){const e=this.options;this._tabs.forEach((t,o)=>{o===this._activeIndex?t.classList.add(e.activeClass):t.classList.remove(e.activeClass)}),this._panels.forEach((t,o)=>{o===this._activeIndex?(t.style.display="block","fade"===e.animation&&(t.style.opacity="0",t.style.transition=`opacity ${e.animationDuration}ms ease`,t.offsetHeight,t.style.opacity="1")):t.style.display="none"})}getActive(){return this._activeIndex}show(e){return this.activate(e)}next(){const e=(this._activeIndex+1)%this._tabs.length;return this.activate(e)}prev(){const e=(this._activeIndex-1+this._tabs.length)%this._tabs.length;return this.activate(e)}}class c extends s{static defaults={allowMultiple:!1,multiExpand:null,activeIndex:null,animation:!0,animationDuration:300,headerSelector:".accordion-header, [data-accordion-header]",contentSelector:".accordion-body, [data-accordion-content]",activeClass:"active",onChange:null};constructor(e,t={}){super(e,t),null!==this.options.multiExpand&&(this.options.allowMultiple=this.options.multiExpand),this._init()}_init(){if(!this.element)return;const e=this.options;this._headers=this.element.querySelectorAll(e.headerSelector),this._contents=this.element.querySelectorAll(e.contentSelector),this._contents.forEach((t,o)=>{t.style.overflow="hidden",t.style.transition=e.animation?`height ${e.animationDuration}ms ease`:"none";const n=this._headers[o]?.parentElement;let s=n?.classList.contains(e.activeClass);null!==e.activeIndex&&(s=Array.isArray(e.activeIndex)?e.activeIndex.includes(o):e.activeIndex===o,s?n?.classList.add(e.activeClass):n?.classList.remove(e.activeClass)),t.style.height=s?"auto":"0"}),this._headers.forEach((e,t)=>{this._addEventListener(e,"click",()=>{this.toggle(t)})})}toggle(e){const t=this.options,o=this._headers[e],n=this._contents[e],s=o.parentElement.classList.contains(t.activeClass);return t.allowMultiple||this._headers.forEach((t,o)=>{o!==e&&this._close(o)}),s?this._close(e):this._open(e),t.onChange&&t.onChange({index:e,isOpen:!s,header:o,content:n}),this}_open(e){const t=this.options,o=this._headers[e],n=this._contents[e];o.parentElement.classList.add(t.activeClass),n.style.height=n.scrollHeight+"px",setTimeout(()=>{n.style.height="auto"},t.animationDuration)}_close(e){const t=this.options,o=this._headers[e],n=this._contents[e];o.parentElement.classList.remove(t.activeClass),n.style.height=n.scrollHeight+"px",n.offsetHeight,n.style.height="0"}open(e){return e>=0&&e<this._headers.length&&this._open(e),this}close(e){return e>=0&&e<this._headers.length&&this._close(e),this}openAll(){return this._headers.forEach((e,t)=>this._open(t)),this}closeAll(){return this._headers.forEach((e,t)=>this._close(t)),this}}class d extends s{static defaults={content:"",position:"top",trigger:"hover",delay:{show:0,hide:0},animation:!0,animationDuration:150,html:!1,offset:[0,8],container:null,onShow:null,onHide:null};constructor(e,t={}){super(e,t),this._tooltip=null,this._isVisible=!1,this._showTimeout=null,this._hideTimeout=null,this._init()}_init(){if(!this.element)return;const e=this.options,t=this.element;!e.content&&t.dataset.tooltip&&(e.content=t.dataset.tooltip),"hover"===e.trigger?(this._addEventListener(t,"mouseenter",()=>this.show()),this._addEventListener(t,"mouseleave",()=>this.hide())):"click"===e.trigger?this._addEventListener(t,"click",()=>this.toggle()):"focus"===e.trigger&&(this._addEventListener(t,"focus",()=>this.show()),this._addEventListener(t,"blur",()=>this.hide()))}show(){if(clearTimeout(this._hideTimeout),this._isVisible)return this;const e=this.options;return this._showTimeout=setTimeout(()=>{this._createTooltip(),this._positionTooltip(),e.onShow&&e.onShow(this)},e.delay.show),this}hide(){if(clearTimeout(this._showTimeout),!this._isVisible)return this;const e=this.options;return this._hideTimeout=setTimeout(()=>{this._tooltip&&(this._tooltip.classList.remove("show"),setTimeout(()=>{this._tooltip&&(this._tooltip.remove(),this._tooltip=null),this._isVisible=!1,e.onHide&&e.onHide(this)},e.animationDuration))},e.delay.hide),this}toggle(){return this._isVisible?this.hide():this.show()}_createTooltip(){const e=this.options;this._tooltip=document.createElement("div"),this._tooltip.className="domma-tooltip",e.html?this._tooltip.innerHTML=e.content:this._tooltip.textContent=e.content;(e.container||document.body).appendChild(this._tooltip),this._tooltip.offsetHeight,this._tooltip.classList.add("show"),this._isVisible=!0}_positionTooltip(){if(!this._tooltip||!this.element)return;const e=this.options,t=this.element.getBoundingClientRect(),o=this._tooltip.getBoundingClientRect(),[n,s]=e.offset;let i,r;switch(e.position){case"top":default:i=t.top-o.height-s,r=t.left+(t.width-o.width)/2+n;break;case"bottom":i=t.bottom+s,r=t.left+(t.width-o.width)/2+n;break;case"left":i=t.top+(t.height-o.height)/2+n,r=t.left-o.width-s;break;case"right":i=t.top+(t.height-o.height)/2+n,r=t.right+s}i+=window.scrollY,r+=window.scrollX,this._tooltip.style.top=i+"px",this._tooltip.style.left=r+"px"}setContent(e){return this.options.content=e,this._tooltip&&(this.options.html?this._tooltip.innerHTML=e:this._tooltip.textContent=e,this._positionTooltip()),this}destroy(){super.destroy(),clearTimeout(this._showTimeout),clearTimeout(this._hideTimeout),this._tooltip&&this._tooltip.remove()}}class u extends s{static defaults={variant:"primary",size:"medium",pill:!1,outline:!1,removable:!1,onClick:null,onRemove:null};static variants={primary:{bg:"#4f46e5",color:"#fff"},secondary:{bg:"#6b7280",color:"#fff"},success:{bg:"#10b981",color:"#fff"},danger:{bg:"#ef4444",color:"#fff"},warning:{bg:"#f59e0b",color:"#000"},info:{bg:"#3b82f6",color:"#fff"},light:{bg:"#f3f4f6",color:"#111"},dark:{bg:"#1f2937",color:"#fff"}};static sizes={small:{padding:"2px 6px",fontSize:"10px"},medium:{padding:"4px 10px",fontSize:"12px"},large:{padding:"6px 14px",fontSize:"14px"}};constructor(e,t={}){super(e,t),this._init()}_init(){this.element&&(this._applyStyles(),this.options.onClick&&(this.element.style.cursor="pointer",this._addEventListener(this.element,"click",e=>{e.target.classList.contains("domma-badge-remove")||this.options.onClick(e,this)})),this.options.removable&&this._addRemoveButton())}_applyStyles(){const e=this.options,t=u.variants[e.variant]||u.variants.primary,o=u.sizes[e.size]||u.sizes.medium;let n={display:"inline-flex",alignItems:"center",gap:"4px",fontWeight:"500",lineHeight:"1",borderRadius:e.pill?"9999px":"4px",transition:"all 150ms ease",...o};e.outline?(n.background="transparent",n.color=t.bg,n.border=`1px solid ${t.bg}`):(n.background=t.bg,n.color=t.color,n.border="none"),Object.assign(this.element.style,n)}_addRemoveButton(){const e=document.createElement("span");e.className="domma-badge-remove",e.innerHTML="×",this._addEventListener(e,"click",e=>{e.stopPropagation(),this.options.onRemove&&this.options.onRemove(e,this),this.remove()}),this.element.appendChild(e)}setVariant(e){return this.options.variant=e,this._applyStyles(),this}setText(e){const t=this.element.querySelector(".domma-badge-remove");return this.element.textContent=e,t&&this.element.appendChild(t),this}remove(){this.element&&this.element.remove(),this.destroy()}}class p extends s{static defaults={trigger:"click",position:"bottom-start",offset:[0,4],animation:!0,animationDuration:150,closeOnSelect:!0,closeOnClickOutside:!0,items:[],model:null,modelKey:null,itemTemplate:null,onOpen:null,onClose:null,onSelect:null};constructor(e,t={}){super(e,t),this._menu=null,this._isOpen=!1,this._items=[...this.options.items],this._selectedValue=null,this._modelUnsubscribe=null,this._init()}_init(){if(!this.element)return;const e=this.options;"click"===e.trigger?this._addEventListener(this.element,"click",e=>{e.stopPropagation(),this.toggle()}):"hover"===e.trigger&&(this._addEventListener(this.element,"mouseenter",()=>this.open()),this._addEventListener(this.element,"mouseleave",()=>this.close())),e.closeOnClickOutside&&(this._outsideClickHandler=e=>{!this._isOpen||this.element.contains(e.target)||this._menu&&this._menu.contains(e.target)||this.close()},document.addEventListener("click",this._outsideClickHandler)),e.model&&e.modelKey&&this._bindToModel(e.model,e.modelKey)}_bindToModel(e,t){if(e&&"function"==typeof e.get){const o=e.get(t);Array.isArray(o)&&(this._items=[...o]),"function"==typeof e.onChange&&(this._modelUnsubscribe=e.onChange((e,o)=>{e===t&&Array.isArray(o)&&(this._items=[...o],this._isOpen&&this._renderMenu())}))}}open(){if(this._isOpen)return this;const e=this.options;return e.onOpen&&e.onOpen(this),this._createMenu(),this._positionMenu(),this._isOpen=!0,this}close(){if(!this._isOpen)return this;const e=this.options;return this._menu&&(this._menu.classList.remove("show"),setTimeout(()=>{this._menu&&(this._menu.remove(),this._menu=null)},e.animationDuration)),this._isOpen=!1,e.onClose&&e.onClose(this),this}toggle(){return this._isOpen?this.close():this.open()}_createMenu(){this.options,this._menu=document.createElement("div"),this._menu.className="domma-dropdown-menu",this._renderMenu(),document.body.appendChild(this._menu),this._menu.offsetHeight,this._menu.classList.add("show")}_renderMenu(){if(!this._menu)return;const e=this.options;this._menu.innerHTML="",this._items.forEach((t,o)=>{const n=document.createElement("div");if(n.className="domma-dropdown-item","string"==typeof t)n.textContent=t,n.dataset.value=t;else{if(t.divider)return n.className="domma-dropdown-divider",void this._menu.appendChild(n);if(t.header)return n.className="domma-dropdown-header",n.textContent=t.header,void this._menu.appendChild(n);if(e.itemTemplate?n.innerHTML=e.itemTemplate(t,o):n.textContent=t.label||t.text||t.name||"",n.dataset.value=void 0!==t.value?t.value:o,t.disabled&&n.classList.add("disabled"),t.icon){const e=document.createElement("span");e.className="domma-dropdown-icon",e.innerHTML=t.icon,n.insertBefore(e,n.firstChild)}}this._addEventListener(n,"click",e=>{e.stopPropagation(),this._selectItem(t,o,n.dataset.value)}),this._menu.appendChild(n)})}_selectItem(e,t,o){const n=this.options;if(this._selectedValue=o,n.onSelect&&n.onSelect({item:e,index:t,value:o},this),n.model&&n.modelKey&&"function"==typeof n.model.set){const e=n.selectedKey||n.modelKey+"_selected";n.model.set(e,o)}n.closeOnSelect&&this.close()}_positionMenu(){if(!this._menu||!this.element)return;const e=this.options,t=this.element.getBoundingClientRect(),[o,n]=e.offset;let s,i;switch(e.position){case"bottom-start":default:s=t.bottom+n,i=t.left+o;break;case"bottom-end":s=t.bottom+n,i=t.right-this._menu.offsetWidth+o;break;case"top-start":s=t.top-this._menu.offsetHeight-n,i=t.left+o;break;case"top-end":s=t.top-this._menu.offsetHeight-n,i=t.right-this._menu.offsetWidth+o}s+=window.scrollY,i+=window.scrollX,this._menu.style.top=s+"px",this._menu.style.left=i+"px"}setItems(e){return this._items=[...e],this._isOpen&&this._renderMenu(),this}addItem(e){return this._items.push(e),this._isOpen&&this._renderMenu(),this}removeItem(e){return this._items.splice(e,1),this._isOpen&&this._renderMenu(),this}getSelected(){return this._selectedValue}isOpen(){return this._isOpen}destroy(){super.destroy(),this._outsideClickHandler&&document.removeEventListener("click",this._outsideClickHandler),this._modelUnsubscribe&&"function"==typeof this._modelUnsubscribe&&this._modelUnsubscribe(),this._menu&&this._menu.remove()}}class m{static defaults={position:"top-right",duration:3e3,pauseOnHover:!0,showProgress:!0,animation:"slide",animationDuration:300,closable:!0,maxToasts:5};static _containers={};static _toasts=[];static _getContainer(e){if(!m._containers[e]){const t=document.createElement("div");t.className=`domma-toast-container domma-toast-${e}`,document.body.appendChild(t),m._containers[e]=t}return m._containers[e]}static show(e,t={}){const o={...m.defaults,...t},n=m._getContainer(o.position);for(;m._toasts.length>=o.maxToasts;){const e=m._toasts.shift();e&&e.close()}const s=new f(e,o,n);return m._toasts.push(s),s}static success(e,t={}){return m.show(e,{...t,type:"success",icon:'<svg width="20" height="20" viewBox="0 0 20 20" fill="currentColor"><path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clip-rule="evenodd"/></svg>'})}static error(e,t={}){return m.show(e,{...t,type:"error",icon:'<svg width="20" height="20" viewBox="0 0 20 20" fill="currentColor"><path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z" clip-rule="evenodd"/></svg>'})}static warning(e,t={}){return m.show(e,{...t,type:"warning",icon:'<svg width="20" height="20" viewBox="0 0 20 20" fill="currentColor"><path fill-rule="evenodd" d="M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z" clip-rule="evenodd"/></svg>'})}static info(e,t={}){return m.show(e,{...t,type:"info",icon:'<svg width="20" height="20" viewBox="0 0 20 20" fill="currentColor"><path fill-rule="evenodd" d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z" clip-rule="evenodd"/></svg>'})}static closeAll(){m._toasts.forEach(e=>e.close()),m._toasts=[]}}class f{static typeStyles={default:{bg:"#1f2937",color:"#fff",accent:"#6b7280"},success:{bg:"#065f46",color:"#fff",accent:"#10b981"},error:{bg:"#991b1b",color:"#fff",accent:"#ef4444"},warning:{bg:"#92400e",color:"#fff",accent:"#f59e0b"},info:{bg:"#1e40af",color:"#fff",accent:"#3b82f6"}};constructor(e,t,o){this.options=t,this.container=o,this._element=null,this._progressBar=null,this._timeout=null,this._isPaused=!1,this._remainingTime=t.duration,this._startTime=null,this._create(e),this._show(),t.duration>0&&this._startTimer()}_create(e){const t=this.options,o=f.typeStyles[t.type||"default"];if(this._element=document.createElement("div"),this._element.className=`domma-toast domma-toast-${t.type||"default"}`,t.icon){const e=document.createElement("div");e.className="domma-toast-icon",e.innerHTML=t.icon,this._element.appendChild(e)}const n=document.createElement("div");if(n.className="domma-toast-content",t.title){const e=document.createElement("div");e.className="domma-toast-title",e.textContent=t.title,n.appendChild(e)}const s=document.createElement("div");if(s.className="domma-toast-message",t.html?s.innerHTML=e:s.textContent=e,n.appendChild(s),t.actions&&t.actions.length){const e=document.createElement("div");e.className="domma-toast-actions",t.actions.forEach(t=>{const n=document.createElement("button");n.textContent=t.label,n.style.cssText=`\n padding: 6px 12px;\n border: none;\n border-radius: 4px;\n font-size: 12px;\n font-weight: 500;\n cursor: pointer;\n background: ${t.primary?o.accent:"rgba(255,255,255,0.2)"};\n color: #fff;\n transition: opacity 150ms;\n `,n.addEventListener("mouseenter",()=>n.style.opacity="0.8"),n.addEventListener("mouseleave",()=>n.style.opacity="1"),n.addEventListener("click",()=>{t.onClick&&t.onClick(this),!1!==t.closeOnClick&&this.close()}),e.appendChild(n)}),n.appendChild(e)}if(this._element.appendChild(n),t.closable){const e=document.createElement("button");e.innerHTML="×",e.style.cssText="\n background: none;\n border: none;\n color: inherit;\n font-size: 20px;\n cursor: pointer;\n opacity: 0.7;\n padding: 0;\n line-height: 1;\n flex-shrink: 0;\n transition: opacity 150ms;\n ",e.addEventListener("mouseenter",()=>e.style.opacity="1"),e.addEventListener("mouseleave",()=>e.style.opacity="0.7"),e.addEventListener("click",()=>this.close()),this._element.appendChild(e)}t.showProgress&&t.duration>0&&(this._progressBar=document.createElement("div"),this._progressBar.style.cssText=`\n position: absolute;\n bottom: 0;\n left: 0;\n height: 3px;\n background: ${o.accent};\n width: 100%;\n transform-origin: left;\n transition: transform linear;\n `,this._element.appendChild(this._progressBar)),t.pauseOnHover&&(this._element.addEventListener("mouseenter",()=>this._pause()),this._element.addEventListener("mouseleave",()=>this._resume())),this.container.appendChild(this._element)}_show(){this._element.offsetHeight,this._element.classList.add("show")}_startTimer(){this._startTime=Date.now(),this._progressBar&&(this._progressBar.style.transitionDuration=this._remainingTime+"ms",this._progressBar.offsetHeight,this._progressBar.style.transform="scaleX(0)"),this._timeout=setTimeout(()=>this.close(),this._remainingTime)}_pause(){if(!this._isPaused&&this._timeout&&(this._isPaused=!0,clearTimeout(this._timeout),this._remainingTime-=Date.now()-this._startTime,this._progressBar)){const e=getComputedStyle(this._progressBar);this._progressBar.style.transitionDuration="0ms",this._progressBar.style.transform=e.transform}}_resume(){this._isPaused&&(this._isPaused=!1,this._startTimer())}close(){if(!this._element)return;const e=this.options;clearTimeout(this._timeout),this._element.classList.add("hiding"),this._element.classList.remove("show"),setTimeout(()=>{if(this._element){this._element.remove(),this._element=null;const t=m._toasts.indexOf(this);t>-1&&m._toasts.splice(t,1),e.onClose&&e.onClose(this)}},e.animationDuration)}update(e,t={}){if(!this._element)return;const o=this._element.querySelector(".domma-toast > div:nth-child(2) > div:last-of-type");return o&&(t.html?o.innerHTML=e:o.textContent=e),this}}class v{static permission="undefined"!=typeof Notification?Notification.permission:"denied";static isSupported="undefined"!=typeof Notification;static _instances=[];static defaults={title:"Notification",body:"",icon:null,badge:null,tag:null,requireInteraction:!1,silent:!1,data:null,onClick:null,onClose:null,onError:null,onShow:null};static async requestPermission(){if(!v.isSupported)return console.warn("Notifications are not supported in this browser"),"denied";try{const e=await Notification.requestPermission();return v.permission=e,e}catch(e){return console.error("Error requesting notification permission:",e),"denied"}}static notify(e,t={}){const o=new v({title:e,...t});return o.show(),o}static closeAll(){v._instances.forEach(e=>{e.isShown()&&e.close()}),v._instances=[]}constructor(e={}){this.options={...v.defaults,...e},this.notification=null,this._shown=!1}async show(){if(!v.isSupported)return console.warn("Notifications are not supported in this browser"),this.options.onError&&this.options.onError(new Error("Notifications not supported")),this;if("granted"!==v.permission){if("default"!==v.permission)return console.warn("Notification permission denied"),this.options.onError&&this.options.onError(new Error("Permission denied")),this;if("granted"!==await v.requestPermission())return console.warn("Notification permission denied"),this.options.onError&&this.options.onError(new Error("Permission denied")),this}try{const e={};this.options.body&&(e.body=this.options.body),this.options.icon&&(e.icon=this.options.icon),this.options.badge&&(e.badge=this.options.badge),this.options.tag&&(e.tag=this.options.tag),void 0!==this.options.requireInteraction&&(e.requireInteraction=this.options.requireInteraction),void 0!==this.options.silent&&(e.silent=this.options.silent),this.options.data&&(e.data=this.options.data),this.notification=new Notification(this.options.title,e),this._shown=!0,v._instances.push(this),this.options.onClick&&(this.notification.onclick=e=>{this.options.onClick(e,this)}),this.options.onClose?this.notification.onclose=e=>{this._shown=!1;const t=v._instances.indexOf(this);t>-1&&v._instances.splice(t,1),this.options.onClose(e,this)}:this.notification.onclose=()=>{this._shown=!1;const e=v._instances.indexOf(this);e>-1&&v._instances.splice(e,1)},this.options.onError&&(this.notification.onerror=e=>{this._shown=!1,this.options.onError(e,this)}),this.options.onShow&&(this.notification.onshow=e=>{this.options.onShow(e,this)})}catch(e){console.error("Error showing notification:",e),this.options.onError&&this.options.onError(e)}return this}close(){return this.notification&&this._shown&&(this.notification.close(),this._shown=!1),this}isShown(){return this._shown}}class k extends s{static defaults={duration:6e4,autoStart:!1,format:"mm:ss",showControls:!1,updateInterval:100,notification:!1,notificationOptions:{},sound:!1,soundUrl:null,onTick:null,onComplete:null,onStart:null,onPause:null,onReset:null};constructor(e,t={}){super(e,t),e||(this.element=null,this.options={...k.defaults,...t}),this._running=!1,this._remaining=this.options.duration,this._intervalId=null,this._startTime=null,this._pausedTime=null,this._display=null,this._controls=null,this._audio=null,this._init()}_init(){this.element&&(this._createDisplay(),this.options.showControls&&this._createControls()),this.options.sound&&this.options.soundUrl&&(this._audio=new Audio(this.options.soundUrl)),this.options.autoStart&&this.start()}_createDisplay(){if(!this.element)return;const e=document.createElement("div");e.className="dm-timer",this._display=document.createElement("div"),this._display.className="dm-timer-display";const t=document.createElement("span");t.className="dm-timer-time",t.textContent=this._formatTime(this._remaining),this._display.appendChild(t),e.appendChild(this._display),this.element.innerHTML="",this.element.appendChild(e),this._container=e}_createControls(){if(!this.element||!this._container)return;const e=document.createElement("div");e.className="dm-timer-controls",this._startBtn=document.createElement("button"),this._startBtn.className="dm-timer-button dm-timer-start",this._startBtn.textContent="Start",this._startBtn.addEventListener("click",()=>this.start()),this._pauseBtn=document.createElement("button"),this._pauseBtn.className="dm-timer-button dm-timer-pause",this._pauseBtn.textContent="Pause",this._pauseBtn.style.display="none",this._pauseBtn.addEventListener("click",()=>this.pause()),this._resetBtn=document.createElement("button"),this._resetBtn.className="dm-timer-button dm-timer-reset",this._resetBtn.textContent="Reset",this._resetBtn.addEventListener("click",()=>this.reset()),e.appendChild(this._startBtn),e.appendChild(this._pauseBtn),e.appendChild(this._resetBtn),this._container.appendChild(e),this._controls=e}_updateDisplay(){if(!this._display)return;const e=this._display.querySelector(".dm-timer-time");e&&(e.textContent=this._formatTime(this._remaining))}_formatTime(e){const t=Math.max(0,Math.floor(e/1e3)),o=Math.floor(t/3600),n=Math.floor(t%3600/60),s=t%60,i=this.options.format.toLowerCase();if("hh:mm:ss"===i)return`${String(o).padStart(2,"0")}:${String(n).padStart(2,"0")}:${String(s).padStart(2,"0")}`;if("mm:ss"===i){const e=Math.floor(t/60);return`${String(e).padStart(2,"0")}:${String(s).padStart(2,"0")}`}return"ss"===i?String(t).padStart(2,"0"):`${String(n).padStart(2,"0")}:${String(s).padStart(2,"0")}`}_tick(){if(!this._running)return;const e=Date.now()-this._startTime;this._remaining=Math.max(0,this.options.duration-e),this._updateDisplay(),this.options.onTick&&this.options.onTick(this._remaining),0===this._remaining&&this._complete()}_complete(){if(this.stop(),this.options.sound&&this._audio&&this._audio.play().catch(e=>{console.warn("Failed to play timer sound:",e)}),this.options.notification&&v.isSupported){const e={title:"Timer Complete",body:"Your countdown has finished",...this.options.notificationOptions};v.notify(e.title,e)}this.options.onComplete&&this.options.onComplete()}start(){return this._running||(this._running=!0,this._startTime=Date.now()-(this.options.duration-this._remaining),this._intervalId=setInterval(()=>this._tick(),this.options.updateInterval),this._startBtn&&(this._startBtn.style.display="none"),this._pauseBtn&&(this._pauseBtn.style.display="inline-block"),this.options.onStart&&this.options.onStart()),this}pause(){return this._running?(this._running=!1,this._pausedTime=Date.now(),this._intervalId&&(clearInterval(this._intervalId),this._intervalId=null),this._startBtn&&(this._startBtn.style.display="inline-block"),this._pauseBtn&&(this._pauseBtn.style.display="none"),this.options.onPause&&this.options.onPause(),this):this}reset(){return this.stop(),this._remaining=this.options.duration,this._updateDisplay(),this._startBtn&&(this._startBtn.style.display="inline-block"),this._pauseBtn&&(this._pauseBtn.style.display="none"),this.options.onReset&&this.options.onReset(),this}stop(){return this._running=!1,this._intervalId&&(clearInterval(this._intervalId),this._intervalId=null),this}add(e){return this._remaining=Math.min(this._remaining+e,864e5),this._updateDisplay(),this}subtract(e){return this._remaining=Math.max(0,this._remaining-e),this._updateDisplay(),0===this._remaining&&this._running&&this._complete(),this}setDuration(e){return this.options.duration=e,this._running||(this._remaining=e,this._updateDisplay()),this}isRunning(){return this._running}getRemaining(){return this._remaining}getElapsed(){return this.options.duration-this._remaining}destroy(){this.stop(),this._startBtn&&this._startBtn.removeEventListener("click",this.start),this._pauseBtn&&this._pauseBtn.removeEventListener("click",this.pause),this._resetBtn&&this._resetBtn.removeEventListener("click",this.reset),this.element&&this._container&&this.element.removeChild(this._container),this._display=null,this._controls=null,this._audio=null,this._container=null,super.destroy&&super.destroy()}}class g{static defaults={alarms:[],timezone:"local",checkInterval:3e4,storageKey:"domma-alarms",onTrigger:null,onSnooze:null,onDismiss:null,onAlarmAdd:null,onAlarmRemove:null};static _instance=null;static _checkInterval=null;static _nextAlarmId=1;constructor(e={}){if(g._instance)return g._instance;this.options={...g.defaults,...e},this._alarms=[],this._init(),g._instance=this}_init(){this._loadAlarms(),this._startChecking()}_loadAlarms(){try{const e=localStorage.getItem(this.options.storageKey);if(e){const t=JSON.parse(e);if(this._alarms=Array.isArray(t)?t:[],this._alarms.length>0){const e=Math.max(...this._alarms.map(e=>{const t=String(e.id).match(/\d+$/);return t?parseInt(t[0]):0}));g._nextAlarmId=e+1}}else this.options.alarms&&this.options.alarms.length>0&&(this._alarms=this.options.alarms.map(e=>({id:"alarm-"+g._nextAlarmId++,enabled:!0,notification:!0,notificationOptions:{},sound:!1,soundUrl:null,repeat:null,lastTriggered:null,snoozedUntil:null,...e})),this._saveAlarms())}catch(e){console.error("Failed to load alarms from localStorage:",e),this._alarms=[]}}_saveAlarms(){try{localStorage.setItem(this.options.storageKey,JSON.stringify(this._alarms))}catch(e){console.error("Failed to save alarms to localStorage:",e)}}_startChecking(){g._checkInterval||(g._checkInterval=setInterval(()=>{this._checkAlarms()},this.options.checkInterval),this._checkAlarms())}_stopChecking(){g._checkInterval&&(clearInterval(g._checkInterval),g._checkInterval=null)}_checkAlarms(){const e=new Date;this._alarms.forEach(t=>{t.enabled&&(t.snoozedUntil&&e<new Date(t.snoozedUntil)||(t.snoozedUntil&&e>=new Date(t.snoozedUntil)&&(t.snoozedUntil=null,this._saveAlarms()),this._shouldTrigger(t,e)&&this._triggerAlarm(t)))})}_shouldTrigger(e,t){const{hours:o,minutes:n}=this._parseTime(e.time),s=t.getHours(),i=t.getMinutes();if(s!==o||i!==n)return!1;if(e.lastTriggered){if(t-new Date(e.lastTriggered)<5e4)return!1}return!!this._matchesRepeatPattern(e,t)}_parseTime(e){const[t,o]=e.split(":").map(e=>parseInt(e,10));return{hours:t,minutes:o}}_matchesRepeatPattern(e,t){if(!e.repeat)return!0;const o=t.getDay();if("daily"===e.repeat)return!0;if("weekdays"===e.repeat)return o>=1&&o<=5;if("weekends"===e.repeat)return 0===o||6===o;if(Array.isArray(e.repeat)){const t=["sun","mon","tue","wed","thu","fri","sat"][o];return e.repeat.includes(t)}return!1}_triggerAlarm(e){if(e.lastTriggered=Date.now(),this._saveAlarms(),e.sound&&e.soundUrl){new Audio(e.soundUrl).play().catch(e=>{console.warn("Failed to play alarm sound:",e)})}if(e.notification&&v.isSupported){const t={title:"Alarm",body:e.label||`Alarm at ${e.time}`,requireInteraction:!0,...e.notificationOptions};v.notify(t.title,t)}this.options.onTrigger&&this.options.onTrigger(e),e.repeat||(e.enabled=!1,this._saveAlarms())}add(e){const t={id:"alarm-"+g._nextAlarmId++,enabled:!0,notification:!0,notificationOptions:{},sound:!1,soundUrl:null,repeat:null,lastTriggered:null,snoozedUntil:null,...e};return this._alarms.push(t),this._saveAlarms(),this.options.onAlarmAdd&&this.options.onAlarmAdd(t),t}remove(e){const t=this._alarms.findIndex(t=>t.id===e);if(-1===t)return!1;const o=this._alarms.splice(t,1)[0];return this._saveAlarms(),this.options.onAlarmRemove&&this.options.onAlarmRemove(o),!0}update(e,t){const o=this._alarms.find(t=>t.id===e);return o?(Object.assign(o,t),this._saveAlarms(),o):null}enable(e){return null!==this.update(e,{enabled:!0})}disable(e){return null!==this.update(e,{enabled:!1})}toggle(e){const t=this._alarms.find(t=>t.id===e);return t?(t.enabled=!t.enabled,this._saveAlarms(),t.enabled):null}snooze(e,t=3e5){const o=this._alarms.find(t=>t.id===e);return!!o&&(o.snoozedUntil=Date.now()+t,this._saveAlarms(),this.options.onSnooze&&this.options.onSnooze(o,t),!0)}getAlarms(){return[...this._alarms]}getAlarm(e){return this._alarms.find(t=>t.id===e)||null}getNextAlarm(){const e=new Date;let t=null,o=null;return this._alarms.forEach(n=>{if(!n.enabled)return;const s=this._getNextOccurrence(n,e);s&&(!o||s<o)&&(o=s,t={...n,nextTrigger:s})}),t}_getNextOccurrence(e,t){const{hours:o,minutes:n}=this._parseTime(e.time),s=new Date(t),i=new Date(s);i.setHours(o,n,0,0),i<=s&&i.setDate(i.getDate()+1);for(let t=0;t<7;t++){if(this._matchesRepeatPattern(e,i))return i;i.setDate(i.getDate()+1)}return null}clearAll(){return this._alarms=[],this._saveAlarms(),this}destroy(){this._stopChecking(),this._alarms=[],g._instance=null}}class _ extends s{static defaults={autoplay:!1,interval:5e3,pauseOnHover:!0,loop:!0,animation:"slide",animationDuration:500,showArrows:!0,showIndicators:!0,slideSelector:".carousel-slide, [data-slide]",activeClass:"active",onChange:null};constructor(e,t={}){super(e,t),this._currentIndex=0,this._autoplayTimer=null,this._isAnimating=!1,this._init()}_init(){if(!this.element)return;const e=this.options;this._slides=this.element.querySelectorAll(e.slideSelector),this._track=this.element.querySelector(".carousel-track"),0!==this._slides.length&&(this.element.style.position="relative",this.element.style.overflow="hidden",this._slides.forEach((t,o)=>{"fade"===e.animation?(t.style.position=0===o?"relative":"absolute",t.style.top="0",t.style.left="0",t.style.width="100%",t.style.opacity=0===o?"1":"0",t.style.zIndex=0===o?"1":"0",t.style.transition=`opacity ${e.animationDuration}ms ease`):(t.style.position="relative",t.style.width="100%",t.style.flexShrink="0")}),"slide"===e.animation&&this._track&&(this._track.style.display="flex",this._track.style.transition=`transform ${e.animationDuration}ms ease`),e.showArrows&&this._createArrows(),e.showIndicators&&this._createIndicators(),e.autoplay&&(this._startAutoplay(),e.pauseOnHover&&(this._addEventListener(this.element,"mouseenter",()=>this._stopAutoplay()),this._addEventListener(this.element,"mouseleave",()=>this._startAutoplay()))),this._addEventListener(this.element,"keydown",e=>{"ArrowLeft"===e.key&&this.prev(),"ArrowRight"===e.key&&this.next()}),this.element.tabIndex=0,this._updateState())}_createArrows(){const e=document.createElement("button");e.className="carousel-arrow carousel-prev",e.innerHTML='<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M15 18l-6-6 6-6"/></svg>',e.style.cssText="\n position: absolute;\n top: 50%;\n left: 1rem;\n transform: translateY(-50%);\n z-index: 10;\n background: rgba(255,255,255,0.9);\n border: none;\n border-radius: 50%;\n width: 40px;\n height: 40px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n box-shadow: 0 2px 8px rgba(0,0,0,0.15);\n ",this._addEventListener(e,"click",()=>this.prev()),this._addEventListener(e,"mouseenter",()=>e.style.background="#fff"),this._addEventListener(e,"mouseleave",()=>e.style.background="rgba(255,255,255,0.9)");const t=document.createElement("button");t.className="carousel-arrow carousel-next",t.innerHTML='<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 18l6-6-6-6"/></svg>',t.style.cssText=e.style.cssText.replace("left: 1rem","right: 1rem"),this._addEventListener(t,"click",()=>this.next()),this._addEventListener(t,"mouseenter",()=>t.style.background="#fff"),this._addEventListener(t,"mouseleave",()=>t.style.background="rgba(255,255,255,0.9)"),this.element.appendChild(e),this.element.appendChild(t),this._prevBtn=e,this._nextBtn=t}_createIndicators(){const e=document.createElement("div");e.className="carousel-indicators",e.style.cssText="\n position: absolute;\n bottom: 1rem;\n left: 50%;\n transform: translateX(-50%);\n display: flex;\n gap: 0.5rem;\n z-index: 10;\n ",this._slides.forEach((t,o)=>{const n=document.createElement("button");n.className="carousel-indicator",n.style.cssText="\n width: 10px;\n height: 10px;\n border-radius: 50%;\n border: none;\n background: rgba(255,255,255,0.5);\n cursor: pointer;\n padding: 0;\n transition: all 0.2s ease;\n ",this._addEventListener(n,"click",()=>this.goTo(o)),e.appendChild(n)}),this.element.appendChild(e),this._indicators=e}_updateState(){const e=this.options;if("fade"===e.animation?this._slides.forEach((e,t)=>{const o=t===this._currentIndex;e.style.position=o?"relative":"absolute",e.style.opacity=o?"1":"0",e.style.zIndex=o?"1":"0"}):this._track&&(this._track.style.transform=`translateX(-${100*this._currentIndex}%)`),this._indicators){this._indicators.querySelectorAll(".carousel-indicator").forEach((e,t)=>{e.style.background=t===this._currentIndex?"rgba(255,255,255,1)":"rgba(255,255,255,0.5)",e.style.transform=t===this._currentIndex?"scale(1.2)":"scale(1)"})}!e.loop&&this._prevBtn&&this._nextBtn&&(this._prevBtn.style.opacity=0===this._currentIndex?"0.3":"1",this._prevBtn.style.pointerEvents=0===this._currentIndex?"none":"auto",this._nextBtn.style.opacity=this._currentIndex===this._slides.length-1?"0.3":"1",this._nextBtn.style.pointerEvents=this._currentIndex===this._slides.length-1?"none":"auto")}_startAutoplay(){this._autoplayTimer||(this._autoplayTimer=setInterval(()=>{this.next()},this.options.interval))}_stopAutoplay(){this._autoplayTimer&&(clearInterval(this._autoplayTimer),this._autoplayTimer=null)}goTo(e){if(this._isAnimating)return this;const t=this.options,o=this._currentIndex,n=this._slides.length-1;if(t.loop)e<0&&(e=n),e>n&&(e=0);else if(e<0||e>n)return this;return e===this._currentIndex||(this._isAnimating=!0,this._currentIndex=e,this._updateState(),setTimeout(()=>{this._isAnimating=!1},t.animationDuration),t.onChange&&t.onChange({index:e,oldIndex:o,slide:this._slides[e]})),this}next(){return this.goTo(this._currentIndex+1)}prev(){return this.goTo(this._currentIndex-1)}play(){return this._startAutoplay(),this}pause(){return this._stopAutoplay(),this}getIndex(){return this._currentIndex}getSlide(e=this._currentIndex){return this._slides[e]}destroy(){super.destroy(),this._stopAutoplay()}}class y extends s{static defaults={message:'We use cookies to enhance your browsing experience, serve personalized content, and analyze our traffic. By clicking "Accept All", you consent to our use of cookies.',acceptAllText:"Accept All",rejectAllText:"Reject All",customizeText:"Customize",savePreferencesText:"Save Preferences",privacyPolicyText:"Privacy Policy",privacyPolicyUrl:"/privacy-policy",cookiePolicyText:"Cookie Policy",cookiePolicyUrl:null,categories:{necessary:{label:"Necessary Cookies",description:"These cookies are essential for the website to function properly.",required:!0},functional:{label:"Functional Cookies",description:"These cookies enable personalized features and functionality.",required:!1},analytics:{label:"Analytics Cookies",description:"These cookies help us understand how visitors interact with our website.",required:!1},marketing:{label:"Marketing Cookies",description:"These cookies are used to deliver relevant ads and marketing campaigns.",required:!1}},position:"bottom",theme:"light",layout:"bar",animation:!0,backdrop:!1,autoShow:!0,hideAfterAction:!0,reopenSelector:"[data-cookie-consent-open]",storageKey:"domma-cookie-consent",storageDuration:365,defaultState:"undecided",requireExplicitConsent:!0,onAccept:null,onReject:null,onCustomize:null,onChange:null,onShow:null,onHide:null};constructor(e={}){super(null,e),this._state=null,this._preferences={},this._customizeModal=null,this._isVisible=!1,this._init()}_init(){this._loadPreferences(),this._createUI(),this._setupEventHandlers(),this.options.autoShow&&!this._hasConsented()&&this.show(),this._setupReopenTriggers()}_loadPreferences(){const e=Domma.storage.get(this.options.storageKey);if(e&&e.timestamp){if((Date.now()-e.timestamp)/864e5<=this.options.storageDuration)return this._state=e.state,void(this._preferences=e.preferences||{})}this._state=this.options.defaultState,this._preferences={},Object.keys(this.options.categories).forEach(e=>{const t=this.options.categories[e];this._preferences[e]=t.required||!this.options.requireExplicitConsent})}_savePreferences(){Domma.storage.set(this.options.storageKey,{state:this._state,preferences:this._preferences,timestamp:Date.now()})}_hasConsented(){return"accepted"===this._state||"rejected"===this._state||"customized"===this._state}_createUI(){this.element=document.createElement("div"),this.element.className=`dm-cookie-consent dm-cookie-consent-${this.options.position} dm-cookie-consent-${this.options.layout} dm-cookie-consent-${this.options.theme}`,this.element.setAttribute("role","dialog"),this.element.setAttribute("aria-label","Cookie consent"),this.element.style.display="none",this.options.animation&&this.element.classList.add("dm-cookie-consent-animated");let e='<div class="dm-cookie-consent-content">';e+=`<div class="dm-cookie-consent-message">${this.options.message}`;const t=[];this.options.privacyPolicyUrl&&t.push(`<a href="${this.options.privacyPolicyUrl}" target="_blank" rel="noopener">${this.options.privacyPolicyText}</a>`),this.options.cookiePolicyUrl&&t.push(`<a href="${this.options.cookiePolicyUrl}" target="_blank" rel="noopener">${this.options.cookiePolicyText}</a>`),t.length>0&&(e+=` ${t.join(" | ")}`),e+="</div>",e+='<div class="dm-cookie-consent-buttons">',Object.keys(this.options.categories).length>1&&(e+=`<button type="button" class="btn btn-outline dm-cookie-consent-customize">${this.options.customizeText}</button>`),e+=`<button type="button" class="btn btn-outline dm-cookie-consent-reject">${this.options.rejectAllText}</button>`,e+=`<button type="button" class="btn btn-primary dm-cookie-consent-accept">${this.options.acceptAllText}</button>`,e+="</div></div>",this.options.backdrop&&"modal"===this.options.layout&&(e=`<div class="dm-cookie-consent-backdrop"></div>${e}`),this.element.innerHTML=e,document.body.appendChild(this.element)}_createCustomizeModal(){if(this._customizeModal)return;this._customizeModal=document.createElement("div"),this._customizeModal.className="dm-cookie-consent-modal",this._customizeModal.setAttribute("role","dialog"),this._customizeModal.setAttribute("aria-label","Customize cookie preferences");let e='<div class="dm-cookie-consent-modal-content">';e+='<div class="dm-cookie-consent-modal-header">',e+="<h3>Cookie Preferences</h3>",e+='<button type="button" class="dm-cookie-consent-modal-close" aria-label="Close">×</button>',e+="</div>",e+='<div class="dm-cookie-consent-modal-body">',Object.entries(this.options.categories).forEach(([t,o])=>{const n=this._preferences[t]?"checked":"",s=o.required?"disabled":"";e+='<div class="dm-cookie-consent-category">',e+='<label class="dm-cookie-consent-category-label">',e+=`<input type="checkbox" class="dm-cookie-consent-category-toggle" data-category="${t}" ${n} ${s}>`,e+='<div class="dm-cookie-consent-category-info">',e+=`<div class="dm-cookie-consent-category-name">${o.label}`,o.required&&(e+=' <span class="dm-cookie-consent-required">(Required)</span>'),e+="</div>",e+=`<div class="dm-cookie-consent-category-description">${o.description}</div>`,e+="</div></label></div>"}),e+="</div>",e+='<div class="dm-cookie-consent-modal-footer">',e+='<button type="button" class="btn btn-outline dm-cookie-consent-modal-cancel">Cancel</button>',e+=`<button type="button" class="btn btn-primary dm-cookie-consent-modal-save">${this.options.savePreferencesText}</button>`,e+="</div></div>",e=`<div class="dm-cookie-consent-modal-backdrop"></div>${e}`,this._customizeModal.innerHTML=e,document.body.appendChild(this._customizeModal),this._setupModalHandlers()}_setupEventHandlers(){const e=this.element.querySelector(".dm-cookie-consent-accept");e&&e.addEventListener("click",()=>this.accept());const t=this.element.querySelector(".dm-cookie-consent-reject");t&&t.addEventListener("click",()=>this.reject());const o=this.element.querySelector(".dm-cookie-consent-customize");if(o&&o.addEventListener("click",()=>this.showCustomize()),this.options.backdrop&&"modal"===this.options.layout){const e=this.element.querySelector(".dm-cookie-consent-backdrop");e&&e.addEventListener("click",()=>{this.options.requireExplicitConsent||this.hide()})}}_setupModalHandlers(){if(!this._customizeModal)return;const e=this._customizeModal.querySelector(".dm-cookie-consent-modal-close");e&&e.addEventListener("click",()=>this.hideCustomize());const t=this._customizeModal.querySelector(".dm-cookie-consent-modal-cancel");t&&t.addEventListener("click",()=>this.hideCustomize());const o=this._customizeModal.querySelector(".dm-cookie-consent-modal-save");o&&o.addEventListener("click",()=>this.saveCustomPreferences());const n=this._customizeModal.querySelector(".dm-cookie-consent-modal-backdrop");n&&n.addEventListener("click",()=>this.hideCustomize())}_setupReopenTriggers(){this.options.reopenSelector&&document.addEventListener("click",e=>{e.target.closest(this.options.reopenSelector)&&(e.preventDefault(),this.show())})}show(){this._isVisible||(this.element.style.display="",this.options.animation?requestAnimationFrame(()=>{this.element.classList.add("dm-cookie-consent-visible")}):this.element.classList.add("dm-cookie-consent-visible"),this._isVisible=!0,this.options.onShow&&this.options.onShow.call(this))}hide(){if(!this._isVisible)return;const e=()=>{this.element.style.display="none",this._isVisible=!1,this.options.onHide&&this.options.onHide.call(this)};this.options.animation?(this.element.classList.remove("dm-cookie-consent-visible"),setTimeout(e,300)):(this.element.classList.remove("dm-cookie-consent-visible"),e())}accept(){Object.keys(this.options.categories).forEach(e=>{this._preferences[e]=!0}),this._state="accepted",this._savePreferences(),this.options.onAccept&&this.options.onAccept.call(this,this._preferences),this.options.onChange&&this.options.onChange.call(this,this._state,this._preferences),this.options.hideAfterAction&&this.hide()}reject(){Object.entries(this.options.categories).forEach(([e,t])=>{this._preferences[e]=t.required}),this._state="rejected",this._savePreferences(),this.options.onReject&&this.options.onReject.call(this),this.options.onChange&&this.options.onChange.call(this,this._state,this._preferences),this.options.hideAfterAction&&this.hide()}showCustomize(){this._createCustomizeModal(),this._customizeModal.querySelectorAll(".dm-cookie-consent-category-toggle").forEach(e=>{const t=e.dataset.category;e.checked=this._preferences[t]||!1}),this._customizeModal.style.display="flex",this.options.animation?requestAnimationFrame(()=>{this._customizeModal.classList.add("dm-cookie-consent-modal-visible")}):this._customizeModal.classList.add("dm-cookie-consent-modal-visible"),this.options.onCustomize&&this.options.onCustomize.call(this,this._preferences)}hideCustomize(){if(!this._customizeModal)return;const e=()=>{this._customizeModal.style.display="none"};this.options.animation?(this._customizeModal.classList.remove("dm-cookie-consent-modal-visible"),setTimeout(e,300)):(this._customizeModal.classList.remove("dm-cookie-consent-modal-visible"),e())}saveCustomPreferences(){this._customizeModal.querySelectorAll(".dm-cookie-consent-category-toggle").forEach(e=>{const t=e.dataset.category;this._preferences[t]=e.checked}),this._state="customized",this._savePreferences(),this.hideCustomize(),this.options.onAccept&&this.options.onAccept.call(this,this._preferences),this.options.onChange&&this.options.onChange.call(this,this._state,this._preferences),this.options.hideAfterAction&&this.hide()}getState(){return this._state}getPreferences(){return{...this._preferences}}isAccepted(e=null){return e?!0===this._preferences[e]:"accepted"===this._state||"customized"===this._state}reset(){this._state=this.options.defaultState,this._preferences={},Object.keys(this.options.categories).forEach(e=>{const t=this.options.categories[e];this._preferences[e]=t.required||!this.options.requireExplicitConsent}),Domma.storage.remove(this.options.storageKey),this.options.onChange&&this.options.onChange.call(this,this._state,this._preferences)}destroy(){this.hide(),this.hideCustomize(),this.element&&(this.element.remove(),this.element=null),this._customizeModal&&(this._customizeModal.remove(),this._customizeModal=null)}}class M extends s{static defaults={showAfter:null,duration:300,position:"bottom-right",offset:16,target:null,zIndex:1e3,onShow:null,onHide:null,onScroll:null};constructor(e,t={}){super(e,t),this._isVisible=!1,this._isScrolling=!1,this._init()}_init(){this._setupButton(),this._bindEvents(),this._checkVisibility()}_setupButton(){this.options.target?(this._button="string"==typeof this.options.target?document.querySelector(this.options.target):this.options.target,this._created=!1):(this._button=this._createButton(),this._created=!0,document.body.appendChild(this._button)),this._button&&this._applyStyles()}_createButton(){const e=document.createElement("button");return e.className="dm-back-to-top",e.setAttribute("title","Back to top"),e.setAttribute("aria-label","Scroll back to top"),e.innerHTML='<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 15l-6-6-6 6"/></svg>',e}_applyStyles(){const{position:e,offset:t,zIndex:o}=this.options,n="bottom-left"===e,s={position:"fixed",bottom:`${t}px`,[n?"left":"right"]:`${t}px`,padding:"0.5rem",background:"var(--dm-surface, #fff)",border:"1px solid var(--dm-border, #dee2e6)",borderRadius:"9999px",cursor:"pointer",zIndex:o,width:"40px",height:"40px",display:"flex",alignItems:"center",justifyContent:"center",opacity:"0",visibility:"hidden",transform:"translateY(10px)",transition:"opacity 0.2s ease, transform 0.15s ease, visibility 0.2s, background 0.2s ease, box-shadow 0.15s ease"};Object.assign(this._button.style,s),this._addEventListener(this._button,"mouseenter",()=>{this._isVisible&&(this._button.style.background="var(--dm-hover-bg, rgba(0,0,0,0.04))",this._button.style.transform="translateY(0) scale(1.1)",this._button.style.boxShadow="0 2px 8px rgba(0,0,0,0.15)")}),this._addEventListener(this._button,"mouseleave",()=>{this._isVisible&&(this._button.style.background="var(--dm-surface, #fff)",this._button.style.transform="translateY(0)",this._button.style.boxShadow="none")});const i=this._button.querySelector("svg");i&&(i.style.color="var(--dm-text, #212529)")}_bindEvents(){this._scrollHandler=()=>this._checkVisibility(),window.addEventListener("scroll",this._scrollHandler,{passive:!0}),this._addEventListener(this._button,"click",e=>{e.preventDefault(),this.scroll()})}_checkVisibility(){const e=this.options.showAfter??window.innerHeight,t=window.scrollY>e;t&&!this._isVisible?this.show():!t&&this._isVisible&&this.hide(),this.options.onScroll&&this.options.onScroll({scrollY:window.scrollY,isVisible:this._isVisible})}scroll(){if(this._isScrolling)return this;this._isScrolling=!0;const e=window.scrollY,t=performance.now(),o=this.options.duration,n=s=>{const i=s-t,r=Math.min(i/o,1),a=(l=r)*(2-l);var l;window.scrollTo(0,e*(1-a)),r<1?requestAnimationFrame(n):this._isScrolling=!1};return requestAnimationFrame(n),this}show(){return this._isVisible||(this._isVisible=!0,this._button.style.opacity="1",this._button.style.visibility="visible",this._button.style.transform="translateY(0)",this.options.onShow&&this.options.onShow({button:this._button})),this}hide(){return this._isVisible?(this._isVisible=!1,this._button.style.opacity="0",this._button.style.visibility="hidden",this._button.style.transform="translateY(10px)",this.options.onHide&&this.options.onHide({button:this._button}),this):this}toggle(){return this._isVisible?this.hide():this.show()}isVisible(){return this._isVisible}getButton(){return this._button}destroy(){window.removeEventListener("scroll",this._scrollHandler),super.destroy(),this._created&&this._button&&this._button.parentNode&&this._button.parentNode.removeChild(this._button)}}const b={_container:null,_defaults:{title:"",message:"",confirmText:"OK",cancelText:"Cancel",inputPlaceholder:"",inputValue:"",inputType:"text",animation:!0,backdrop:!0,backdropClose:!1,keyboard:!0,className:""},_ensureContainer(){return this._container||(this._container=document.createElement("div"),this._container.className="dm-dialog-container",document.body.appendChild(this._container)),this._container},_createDialog(e,t){const o={...this._defaults,...t},n=this._ensureContainer();return new Promise(t=>{const s=document.createElement("div");s.className="dm-dialog-overlay"+(o.animation?" dm-dialog-animate":"");const i=document.createElement("div");i.className=`dm-dialog dm-dialog-${e}${o.className?" "+o.className:""}`,i.setAttribute("role","dialog"),i.setAttribute("aria-modal","true");let r='<div class="dm-dialog-content">';o.title&&(r+=`<div class="dm-dialog-header"><h3 class="dm-dialog-title">${o.title}</h3></div>`),r+='<div class="dm-dialog-body">',o.message&&(r+=`<p class="dm-dialog-message">${o.message}</p>`),"prompt"===e&&(r+=`<input type="${o.inputType}" class="dm-dialog-input form-input" placeholder="${o.inputPlaceholder}" value="${o.inputValue}">`),r+="</div>",r+='<div class="dm-dialog-footer">',"confirm"!==e&&"prompt"!==e||(r+=`<button type="button" class="btn btn-outline dm-dialog-cancel">${o.cancelText}</button>`),r+=`<button type="button" class="btn btn-primary dm-dialog-confirm">${o.confirmText}</button>`,r+="</div></div>",i.innerHTML=r,s.appendChild(i),n.appendChild(s);const a=i.querySelector(".dm-dialog-confirm"),l=i.querySelector(".dm-dialog-cancel"),h=i.querySelector(".dm-dialog-input"),c=h||a;setTimeout(()=>c?.focus(),50),h&&h.select();const d=e=>{o.animation?(s.classList.add("dm-dialog-closing"),setTimeout(()=>{s.remove(),t(e)},200)):(s.remove(),t(e))},u=()=>{d("prompt"===e?h.value:"confirm"===e||void 0)},p=()=>{d("prompt"===e&&null)};if(a.addEventListener("click",u),l?.addEventListener("click",p),o.backdropClose&&s.addEventListener("click",e=>{e.target===s&&p()}),o.keyboard){const t=o=>{"Escape"===o.key?(p(),document.removeEventListener("keydown",t)):("Enter"===o.key&&"prompt"!==e||"Enter"===o.key&&"prompt"===e&&o.target===h)&&(u(),document.removeEventListener("keydown",t))};document.addEventListener("keydown",t)}})},alert(e,t={}){return"object"==typeof e&&(e=(t=e).message||""),this._createDialog("alert",{...t,message:e})},confirm(e,t={}){return"object"==typeof e&&(e=(t=e).message||""),this._createDialog("confirm",{...t,message:e})},prompt(e,t={}){return"object"==typeof e&&(e=(t=e).message||""),this._createDialog("prompt",{...t,message:e})}};class w extends s{static defaults={mode:"single",activeClass:"active",allowEmpty:!1,onChange:null};constructor(e,t={}){super(e,t),this._init()}_init(){this.element&&(this.buttons=Array.from(this.element.querySelectorAll(".btn")),this.buttons.forEach((e,t)=>{e.dataset.index=t,this._addEventListener(e,"click",o=>{o.preventDefault(),this._handleClick(e,t)})}))}_handleClick(e,t){const o=e.classList.contains(this.options.activeClass);"single"===this.options.mode?o&&this.options.allowEmpty?this.options.allowEmpty&&e.classList.remove(this.options.activeClass):(this.buttons.forEach(e=>e.classList.remove(this.options.activeClass)),e.classList.add(this.options.activeClass)):e.classList.toggle(this.options.activeClass),this.options.onChange&&this.options.onChange(this.getValue(),t,e)}getValue(){const e=this.buttons.map((e,t)=>e.classList.contains(this.options.activeClass)?t:-1).filter(e=>-1!==e);return"single"===this.options.mode?e.length>0?e[0]:null:e}getActive(){const e=this.buttons.filter(e=>e.classList.contains(this.options.activeClass));return"single"===this.options.mode?e.length>0?e[0]:null:e}setValue(e){const t=Array.isArray(e)?e:[e];return this.buttons.forEach((e,o)=>{t.includes(o)?e.classList.add(this.options.activeClass):e.classList.remove(this.options.activeClass)}),this}toggle(e){return e>=0&&e<this.buttons.length&&this._handleClick(this.buttons[e],e),this}selectAll(){return"multiple"===this.options.mode&&(this.buttons.forEach(e=>e.classList.add(this.options.activeClass)),this.options.onChange&&this.options.onChange(this.getValue(),-1,null)),this}deselectAll(){return this.buttons.forEach(e=>e.classList.remove(this.options.activeClass)),this.options.onChange&&this.options.onChange(this.getValue(),-1,null),this}}class L extends s{static defaults={type:"spinner",size:"medium",color:"primary",overlay:!1,text:"",centered:!0};static sizes={small:24,medium:40,large:64};static _overlayInstances=new Map;constructor(e,t={}){super(e,t),this._visible=!1,this._init()}_init(){this.element&&this._render()}_getSize(){const{size:e}=this.options;return"number"==typeof e?e:L.sizes[e]||L.sizes.medium}_getColor(){const{color:e}=this.options;return{primary:"var(--dm-primary, #6495ED)",secondary:"var(--dm-secondary, #6c757d)",success:"var(--dm-success, #28a745)",danger:"var(--dm-danger, #dc3545)",warning:"var(--dm-warning, #ffc107)",info:"var(--dm-info, #17a2b8)",white:"#ffffff",dark:"var(--dm-gray-800, #343a40)"}[e]||e}_render(){const e=this._getSize(),t=this._getColor(),{type:o,overlay:n,text:s,centered:i}=this.options;this._wrapper=document.createElement("div"),this._wrapper.className="dm-loader",this._wrapper.setAttribute("role","status"),this._wrapper.setAttribute("aria-live","polite");const r={display:"inline-flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:"0.75rem"};switch(n?(Object.assign(r,{position:"absolute",inset:"0",background:"rgba(0, 0, 0, 0.5)",zIndex:"1000"}),this.element.style.position="relative"):i&&(Object.assign(r,{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)"}),"static"===getComputedStyle(this.element).position&&(this.element.style.position="relative")),Object.assign(this._wrapper.style,r),this._spinner=document.createElement("div"),this._spinner.className=`dm-loader-${o}`,o){case"dots":this._renderDots(e,t);break;case"pulse":this._renderPulse(e,t);break;case"bars":this._renderBars(e,t);break;default:this._renderSpinner(e,t)}this._wrapper.appendChild(this._spinner),s&&(this._textEl=document.createElement("span"),this._textEl.className="dm-loader-text",this._textEl.textContent=s,this._textEl.style.cssText=`\n color: ${n?"#fff":"var(--dm-text, #212529)"};\n font-size: var(--dm-text-sm, 0.875rem);\n `,this._wrapper.appendChild(this._textEl)),this._wrapper.style.display="none",this.element.appendChild(this._wrapper)}_renderSpinner(e,t){this._spinner.style.cssText=`\n width: ${e}px;\n height: ${e}px;\n border: ${Math.max(2,e/10)}px solid ${t};\n border-top-color: transparent;\n border-radius: 50%;\n animation: dm-loader-spin 0.8s linear infinite;\n `,this._injectKeyframes("dm-loader-spin","\n @keyframes dm-loader-spin {\n to { transform: rotate(360deg); }\n }\n ")}_renderDots(e,t){const o=e/4;this._spinner.style.cssText=`\n display: flex;\n gap: ${o/2}px;\n `;for(let e=0;e<3;e++){const n=document.createElement("span");n.style.cssText=`\n width: ${o}px;\n height: ${o}px;\n background: ${t};\n border-radius: 50%;\n animation: dm-loader-bounce 1.4s ease-in-out ${.16*e}s infinite both;\n `,this._spinner.appendChild(n)}this._injectKeyframes("dm-loader-bounce","\n @keyframes dm-loader-bounce {\n 0%, 80%, 100% { transform: scale(0); }\n 40% { transform: scale(1); }\n }\n ")}_renderPulse(e,t){this._spinner.style.cssText=`\n width: ${e}px;\n height: ${e}px;\n background: ${t};\n border-radius: 50%;\n animation: dm-loader-pulse 1.2s ease-in-out infinite;\n `,this._injectKeyframes("dm-loader-pulse","\n @keyframes dm-loader-pulse {\n 0% { transform: scale(0); opacity: 1; }\n 100% { transform: scale(1); opacity: 0; }\n }\n ")}_renderBars(e,t){const o=e/6,n=e;this._spinner.style.cssText=`\n display: flex;\n align-items: center;\n gap: ${o/2}px;\n height: ${n}px;\n `;for(let e=0;e<4;e++){const n=document.createElement("span");n.style.cssText=`\n width: ${o}px;\n height: 100%;\n background: ${t};\n border-radius: 2px;\n animation: dm-loader-bars 1s ease-in-out ${.1*e}s infinite;\n `,this._spinner.appendChild(n)}this._injectKeyframes("dm-loader-bars","\n @keyframes dm-loader-bars {\n 0%, 40%, 100% { transform: scaleY(0.4); }\n 20% { transform: scaleY(1); }\n }\n ")}_injectKeyframes(e,t){if(document.getElementById(`dm-loader-${e}`))return;const o=document.createElement("style");o.id=`dm-loader-${e}`,o.textContent=t,document.head.appendChild(o)}show(){return this._wrapper&&(this._wrapper.style.display="inline-flex",this._visible=!0),this}hide(){return this._wrapper&&(this._wrapper.style.display="none",this._visible=!1),this}toggle(){return this._visible?this.hide():this.show()}isVisible(){return this._visible}setText(e){return this._textEl?this._textEl.textContent=e:e&&this._wrapper&&(this._textEl=document.createElement("span"),this._textEl.className="dm-loader-text",this._textEl.textContent=e,this._textEl.style.cssText=`\n color: ${this.options.overlay?"#fff":"var(--dm-text, #212529)"};\n font-size: var(--dm-text-sm, 0.875rem);\n `,this._wrapper.appendChild(this._textEl)),this}destroy(){this._wrapper&&this._wrapper.remove(),super.destroy()}static show(e,t={}){const o="string"==typeof e?document.querySelector(e):e;if(!o)return null;let n=L._overlayInstances.get(o);return n||(n=new L(o,t),L._overlayInstances.set(o,n)),n.show(),n}static hide(e){const t="string"==typeof e?document.querySelector(e):e,o=L._overlayInstances.get(t);o&&o.hide()}static fullscreen(e="Loading...",t={}){let o=document.getElementById("dm-loader-fullscreen");o||(o=document.createElement("div"),o.id="dm-loader-fullscreen",o.style.cssText="\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.7);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 9999;\n ",document.body.appendChild(o));const n=new L(o,{type:t.type||"spinner",size:t.size||"large",color:t.color||"white",text:e,overlay:!1,centered:!1});n.show(),n._fullscreenContainer=o;const s=n.destroy.bind(n);return n.destroy=()=>{s(),o.parentNode&&o.remove()},n}}class x extends s{static defaults={items:[],separator:"/",homeIcon:!1,responsive:!0,onChange:null};static separators={"/":"/",">":"›","→":"→",chevron:'<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 18l6-6-6-6"/></svg>'};constructor(e,t={}){super(e,t),this._init()}_init(){this.element&&(this._render(),this._bindEvents())}_getSeparatorHTML(){const{separator:e}=this.options;return x.separators[e]||e}_render(){const{items:e,homeIcon:t,responsive:o}=this.options,n=this._getSeparatorHTML();this.element.className="dm-breadcrumbs",o&&this.element.classList.add("dm-breadcrumbs-responsive"),this.element.setAttribute("aria-label","Breadcrumb"),this.element.style.cssText="\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: 0.5rem;\n font-size: var(--dm-text-sm, 0.875rem);\n color: var(--dm-text-muted, #6c757d);\n ";let s="";e.forEach((o,i)=>{const r=i===e.length-1,a=0===i;i>0&&(s+=`<span class="dm-breadcrumb-separator" aria-hidden="true" style="\n display: inline-flex;\n align-items: center;\n opacity: 0.5;\n ">${n}</span>`);let l=o.text||o;a&&t&&(l=`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="vertical-align: middle; margin-right: 4px;"><path d="M3 9l9-7 9 7v11a2 2 0 01-2 2H5a2 2 0 01-2-2z"/><polyline points="9 22 9 12 15 12 15 22"/></svg>${l}`),r||o.active?s+=`<span class="dm-breadcrumb-item active" aria-current="page" style="\n color: var(--dm-text, #212529);\n font-weight: 500;\n ">${l}</span>`:s+=`<a href="${o.url||"#"}" class="dm-breadcrumb-item dm-breadcrumb-link" data-index="${i}" style="\n color: inherit;\n text-decoration: none;\n transition: color 0.15s ease;\n ">${l}</a>`}),this.element.innerHTML=s,this._injectStyles()}_injectStyles(){if(document.getElementById("dm-breadcrumbs-styles"))return;const e=document.createElement("style");e.id="dm-breadcrumbs-styles",e.textContent="\n .dm-breadcrumb-link:hover {\n color: var(--dm-primary, #6495ED) !important;\n }\n @media (max-width: 576px) {\n .dm-breadcrumbs-responsive .dm-breadcrumb-item:not(:last-child):not(:first-child) {\n display: none;\n }\n .dm-breadcrumbs-responsive .dm-breadcrumb-separator:not(:first-of-type):not(:last-of-type) {\n display: none;\n }\n }\n ",document.head.appendChild(e)}_bindEvents(){this._addEventListener(this.element,"click",e=>{const t=e.target.closest(".dm-breadcrumb-link");if(t){const o=parseInt(t.dataset.index,10);this.options.onChange&&(e.preventDefault(),this.options.onChange(this.options.items[o],o,e))}})}setItems(e){return this.options.items=e,this._render(),this}addItem(e){if(this.options.items.length>0){const e=this.options.items[this.options.items.length-1];"object"==typeof e&&(e.active=!1)}return this.options.items.push(e),this._render(),this}removeItem(e){return e>=0&&e<this.options.items.length&&(this.options.items.splice(e,1),this._render()),this}getItems(){return[...this.options.items]}}class C extends s{static defaults={brand:null,items:[],position:"static",variant:"light",collapsible:!0,collapseAt:768,actions:[],onItemClick:null};constructor(e,t={}){super(e,t),this._isCollapsed=!0,this._init()}_init(){this.element&&(this._render(),this._bindEvents())}_render(){const{brand:e,items:t,position:o,variant:n,collapsible:s,actions:i}=this.options;this.element.className="navbar",this.element.classList.add(`navbar-${n}`),"static"!==o&&this.element.classList.add(`navbar-${o}`),this.element.setAttribute("role","navigation");let r='<div class="navbar-container">';e&&(r+='<div class="navbar-brand">',e.url&&(r+=`<a href="${e.url}" class="navbar-brand-link">`),e.html?r+=e.html:(e.logo&&(r+=`<img src="${e.logo}" alt="${e.text||""}" class="navbar-logo">`),e.text&&(r+=`<span class="navbar-brand-text">${e.text}</span>`)),e.url&&(r+="</a>"),r+="</div>"),s&&(r+='\n <button class="navbar-toggle" aria-label="Toggle navigation" aria-expanded="false">\n <span class="navbar-toggle-icon"></span>\n </button>\n '),r+='<div class="navbar-collapse">',r+='<ul class="navbar-nav">',t.forEach((e,t)=>{e.items&&e.items.length>0?(r+='<li class="navbar-item navbar-dropdown">',r+=`<button class="navbar-link navbar-dropdown-toggle" data-index="${t}">\n ${e.text}\n <svg class="navbar-caret" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">\n <path d="M6 9l6 6 6-6"/>\n </svg>\n </button>`,r+='<ul class="navbar-dropdown-menu">',e.items.forEach((e,o)=>{e.divider?r+='<li class="navbar-dropdown-divider"></li>':r+=`<li><a href="${e.url||"#"}" class="navbar-dropdown-item" data-index="${t}" data-subindex="${o}">${e.text}</a></li>`}),r+="</ul>",r+="</li>"):(r+='<li class="navbar-item">',r+=`<a href="${e.url||"#"}" class="navbar-link${e.active?" active":""}" data-index="${t}">${e.text}</a>`,r+="</li>")}),r+="</ul>",i&&i.length>0&&(r+='<div class="navbar-actions">',i.forEach((e,t)=>{const o=e.variant||"primary";r+=`<a href="${e.url||"#"}" class="navbar-action dm-btn dm-btn-${o}" data-action="${t}">${e.text}</a>`}),r+="</div>"),r+="</div>",r+="</div>",this.element.innerHTML=r,this._toggle=this.element.querySelector(".navbar-toggle"),this._collapse=this.element.querySelector(".navbar-collapse")}_bindEvents(){this._toggle&&this._addEventListener(this._toggle,"click",()=>{this.toggle()}),this._addEventListener(this.element,"click",e=>{const t=e.target.closest(".navbar-link:not(.navbar-dropdown-toggle)");if(t){const o=parseInt(t.dataset.index,10);this.options.onItemClick&&(e.preventDefault(),this.options.onItemClick(this.options.items[o],o,e)),window.innerWidth<this.options.collapseAt&&this.collapse()}const o=e.target.closest(".navbar-dropdown-item");if(o){const t=parseInt(o.dataset.index,10),n=parseInt(o.dataset.subindex,10);if(this.options.onItemClick){e.preventDefault();const o=this.options.items[t];this.options.onItemClick(o.items[n],n,e,o)}}}),this._addEventListener(this.element,"click",e=>{const t=e.target.closest(".navbar-dropdown-toggle");if(t){t.closest(".navbar-dropdown").classList.toggle("open")}}),this._addEventListener(document,"click",e=>{e.target.closest(".navbar-dropdown")||this.element.querySelectorAll(".navbar-dropdown.open").forEach(e=>{e.classList.remove("open")})}),this._addEventListener(window,"resize",()=>{window.innerWidth>=this.options.collapseAt&&(this._collapse?.classList.remove("show"),this._isCollapsed=!0,this._toggle&&this._toggle.setAttribute("aria-expanded","false"))})}setActive(e){return this.options.items.forEach((t,o)=>{t.active=o===e}),this._render(),this}setItems(e){return this.options.items=e,this._render(),this}expand(){return this._collapse&&(this._collapse.classList.add("show"),this._isCollapsed=!1,this._toggle&&this._toggle.setAttribute("aria-expanded","true")),this}collapse(){return this._collapse&&(this._collapse.classList.remove("show"),this._isCollapsed=!0,this._toggle&&this._toggle.setAttribute("aria-expanded","false")),this}toggle(){return this._isCollapsed?this.expand():this.collapse()}isCollapsed(){return this._isCollapsed}}class E extends s{static defaults={position:"left",fixed:!0,width:"250px",top:"0",header:null,items:[],footer:null,variant:"dark",collapsible:!0,collapseAt:768,activeSection:null,expandedSections:[],persistExpanded:!1,persistKey:null,animationDuration:200,onItemClick:null,onToggle:null,onExpand:null,onCollapse:null};constructor(e,t={}){super(e,t),this._isOpen=!1,this._expandedItems=new Set(this.options.expandedSections||[]),this._init()}_init(){this.element&&(this._loadExpandedState(),this._render(),this._bindEvents(),this._scanIcons())}_render(){const{position:e,fixed:t,width:o,top:n,header:s,items:i,footer:r,variant:a,collapsible:l}=this.options;this.element.className="sidebar",this.element.classList.add(`sidebar-${a}`),this.element.classList.add(`sidebar-${e}`),t&&this.element.classList.add("sidebar-fixed"),o&&(this.element.style.width=o),n&&t&&(this.element.style.top=n,this.element.style.height=`calc(100vh - ${n})`),this.element.setAttribute("role","navigation"),this.element.setAttribute("aria-label","Sidebar navigation");let h="";s&&(h+='<div class="sidebar-header">',s.icon&&(h+=`<span class="sidebar-header-icon" data-icon="${s.icon}" data-size="24"></span>`),s.title&&(h+=`<h3 class="sidebar-header-title">${s.title}</h3>`),l&&!1!==s.toggle&&(h+=`\n <button class="sidebar-toggle-btn" aria-label="Toggle sidebar" aria-expanded="${this._isOpen}">\n <span data-icon="menu" data-size="20"></span>\n </button>\n `),h+="</div>"),h+='<nav class="sidebar-nav">',h+=this._renderItems(i),h+="</nav>",r&&(h+='<div class="sidebar-footer">',r.html?h+=r.html:r.text&&(h+=`<p class="sidebar-footer-text">${r.text}</p>`),h+="</div>"),this.element.innerHTML=h,this._toggle=this.element.querySelector(".sidebar-toggle-btn"),this._nav=this.element.querySelector(".sidebar-nav"),this._overlay=null}_renderItems(e,t=0,o=""){if(!e||0===e.length)return"";let n=`<ul class="sidebar-menu" data-depth="${t}">`;return e.forEach((e,s)=>{const i=o?`${o}.${s}`:`${s}`;if(e.divider)return void(n+='<li class="sidebar-divider"></li>');if(e.heading)return void(n+=`<li class="sidebar-heading">${e.heading}</li>`);const r=e.items&&e.items.length>0,a=this._expandedItems.has(i),l=e.section===this.options.activeSection;n+=`<li class="sidebar-item ${r?"has-children":""} ${a?"open":""}" data-path="${i}" data-depth="${t}">`,n+=r?`\n <button class="sidebar-link sidebar-link-toggle ${l?"active":""}" data-path="${i}">\n ${e.icon?`<span class="sidebar-icon" data-icon="${e.icon}" data-size="18"></span>`:""}\n <span class="sidebar-text">${e.text}</span>\n ${e.badge?`<span class="sidebar-badge">${e.badge}</span>`:""}\n <svg class="sidebar-chevron" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">\n <path d="M9 18l6-6-6-6"/>\n </svg>\n </button>\n `:`\n <a href="${e.url||"#"}" class="sidebar-link ${l?"active":""}" data-path="${i}" ${e.section?`data-section="${e.section}"`:""}>\n ${e.icon?`<span class="sidebar-icon" data-icon="${e.icon}" data-size="18"></span>`:""}\n <span class="sidebar-text">${e.text}</span>\n ${e.badge?`<span class="sidebar-badge">${e.badge}</span>`:""}\n </a>\n `,r&&(n+=`<div class="sidebar-submenu" ${a?'style="display: block;"':""}>`,n+=this._renderItems(e.items,t+1,i),n+="</div>"),n+="</li>"}),n+="</ul>",n}_bindEvents(){this._toggle&&this._addEventListener(this._toggle,"click",e=>{e.stopPropagation(),this.toggle()}),this._addEventListener(this.element,"click",e=>{const t=e.target.closest(".sidebar-link:not(.sidebar-link-toggle)");if(t){const o=t.dataset.path,n=this._getItemByPath(o);n&&n.section&&this.setActive(n.section),this.options.onItemClick&&this.options.onItemClick(n,o,e),window.innerWidth<this.options.collapseAt&&this.close()}}),this._addEventListener(this.element,"click",e=>{const t=e.target.closest(".sidebar-link-toggle");if(t){e.preventDefault();const o=t.dataset.path,n=t.closest(".sidebar-item");this._toggleSubmenu(n,o)}}),this._addEventListener(window,"resize",()=>{window.innerWidth>=this.options.collapseAt&&this.close()}),this._addEventListener(document,"click",e=>{this._isOpen&&!this.element.contains(e.target)&&window.innerWidth<this.options.collapseAt&&this.close()})}_toggleSubmenu(e,t){const o=e.querySelector(":scope > .sidebar-submenu");if(!o)return;const n=e.classList.contains("open"),s=this._getItemByPath(t),i=parseInt(e.dataset.depth,10);n?(this._collapseSubmenu(e,o),this._expandedItems.delete(t),this.options.onCollapse&&this.options.onCollapse(s,i)):(this._expandSubmenu(e,o),this._expandedItems.add(t),this.options.onExpand&&this.options.onExpand(s,i)),this._saveExpandedState()}_expandSubmenu(e,t){e.classList.add("open"),t.style.display="block";const o=t.scrollHeight;t.style.height="0",t.style.overflow="hidden",requestAnimationFrame(()=>{t.style.transition=`height ${this.options.animationDuration}ms ease`,t.style.height=`${o}px`,setTimeout(()=>{t.style.height="",t.style.overflow="",t.style.transition=""},this.options.animationDuration)})}_collapseSubmenu(e,t){const o=t.scrollHeight;t.style.height=`${o}px`,t.style.overflow="hidden",requestAnimationFrame(()=>{t.style.transition=`height ${this.options.animationDuration}ms ease`,t.style.height="0",setTimeout(()=>{e.classList.remove("open"),t.style.display="",t.style.height="",t.style.overflow="",t.style.transition=""},this.options.animationDuration)})}_getItemByPath(e){if(!e)return null;const t=e.split(".").map(e=>parseInt(e,10));let o=this.options.items;for(const e of t){if(!o||!o[e])return null;o=o[e],o.items&&t.indexOf(e)<t.length-1&&(o=o.items)}return o}_scanIcons(){void 0!==window.Domma&&window.Domma.icons&&window.Domma.icons.scan&&window.Domma.icons.scan(this.element)}_loadExpandedState(){if(this.options.persistExpanded&&this.options.persistKey)try{const e=`domma:sidebar:expanded:${this.options.persistKey}`,t=localStorage.getItem(e);if(t){const e=JSON.parse(t);this._expandedItems=new Set(e)}}catch(e){console.warn("Failed to load sidebar expanded state:",e)}}_saveExpandedState(){if(this.options.persistExpanded&&this.options.persistKey)try{const e=`domma:sidebar:expanded:${this.options.persistKey}`,t=Array.from(this._expandedItems);localStorage.setItem(e,JSON.stringify(t))}catch(e){console.warn("Failed to save sidebar expanded state:",e)}}_createOverlay(){this._overlay||(this._overlay=document.createElement("div"),this._overlay.className="sidebar-overlay",document.body.appendChild(this._overlay),this._addEventListener(this._overlay,"click",()=>{this.close()}))}_removeOverlay(){this._overlay&&(this._overlay.remove(),this._overlay=null)}open(){return this._isOpen||(this._isOpen=!0,this.element.classList.add("open"),this._toggle&&this._toggle.setAttribute("aria-expanded","true"),window.innerWidth<this.options.collapseAt&&this._createOverlay(),this.options.onToggle&&this.options.onToggle(!0)),this}close(){return this._isOpen?(this._isOpen=!1,this.element.classList.remove("open"),this._toggle&&this._toggle.setAttribute("aria-expanded","false"),this._removeOverlay(),this.options.onToggle&&this.options.onToggle(!1),this):this}toggle(){return this._isOpen?this.close():this.open()}isOpen(){return this._isOpen}setActive(e){return this.options.activeSection=e,this.element.querySelectorAll(".sidebar-link").forEach(t=>{t.dataset.section===e?t.classList.add("active"):t.classList.remove("active")}),this}setItems(e){return this.options.items=e,this._expandedItems.clear(),this._render(),this._bindEvents(),this._scanIcons(),this}addItem(e,t=null){return null===t||t>=this.options.items.length?this.options.items.push(e):this.options.items.splice(t,0,e),this._render(),this._bindEvents(),this._scanIcons(),this}removeItem(e){return e>=0&&e<this.options.items.length&&(this.options.items.splice(e,1),this._render(),this._bindEvents(),this._scanIcons()),this}expandAll(){return this.element.querySelectorAll(".sidebar-item.has-children").forEach(e=>{const t=e.dataset.path,o=e.querySelector(":scope > .sidebar-submenu");o&&!e.classList.contains("open")&&(this._expandSubmenu(e,o),this._expandedItems.add(t))}),this._saveExpandedState(),this}collapseAll(){return this.element.querySelectorAll(".sidebar-item.has-children.open").forEach(e=>{const t=e.dataset.path,o=e.querySelector(":scope > .sidebar-submenu");o&&(this._collapseSubmenu(e,o),this._expandedItems.delete(t))}),this._saveExpandedState(),this}destroy(){this._removeOverlay(),super.destroy()}}class S extends s{static defaults={variant:"light",layout:"simple",brand:null,columns:[],links:[],social:[],copyright:null,className:"",position:"static"};constructor(e,t={}){super(e,t),this._init()}_init(){this.element&&(this._render(),this._scanIcons())}_render(){const{variant:e,layout:t,brand:o,columns:n,links:s,social:i,copyright:r,className:a,position:l}=this.options;this.element.className="footer",this.element.classList.add(`footer-${e}`),this.element.classList.add(`footer-${t}`),"static"!==l&&this.element.classList.add(`footer-${l}`),a&&this.element.classList.add(a),this.element.setAttribute("role","contentinfo");let h='<div class="footer-container">';"columns"===t&&n&&n.length>0?h+=this._renderColumnsLayout(o,n,i,r):h+="minimal"===t?this._renderMinimalLayout(r,i):this._renderSimpleLayout(o,s,i,r),h+="</div>",this.element.innerHTML=h}_renderSimpleLayout(e,t,o,n){let s='<div class="footer-simple-content">';return e&&(s+='<div class="footer-brand">',e.url&&(s+=`<a href="${e.url}" class="footer-brand-link">`),e.logo&&(s+=`<img src="${e.logo}" alt="${e.text||""}" class="footer-logo">`),e.text&&(s+=`<span class="footer-brand-text">${e.text}</span>`),e.url&&(s+="</a>"),s+="</div>"),t&&t.length>0&&(s+='<nav class="footer-nav">',t.forEach(e=>{s+=`<a href="${e.url||"#"}" class="footer-link">${e.text}</a>`}),s+="</nav>"),o&&o.length>0&&(s+=this._renderSocial(o)),s+="</div>",n&&(s+=this._renderCopyright(n)),s}_renderColumnsLayout(e,t,o,n){let s="";return s+='<div class="footer-columns-content">',e&&(s+='<div class="footer-column footer-column-brand">',e.logo&&(s+=`<img src="${e.logo}" alt="${e.text||""}" class="footer-logo">`),e.text&&(s+=`<p class="footer-brand-text">${e.text}</p>`),s+="</div>"),t.forEach(e=>{s+='<div class="footer-column">',e.title&&(s+=`<h4 class="footer-column-title">${e.title}</h4>`),e.links&&e.links.length>0&&(s+='<ul class="footer-column-links">',e.links.forEach(e=>{s+=`<li><a href="${e.url||"#"}" class="footer-column-link">${e.text}</a></li>`}),s+="</ul>"),s+="</div>"}),s+="</div>",s+='<div class="footer-bottom">',o&&o.length>0&&(s+=this._renderSocial(o)),n&&(s+=this._renderCopyright(n)),s+="</div>",s}_renderMinimalLayout(e,t){let o='<div class="footer-minimal-content">';return e&&(o+=this._renderCopyright(e)),t&&t.length>0&&(o+=this._renderSocial(t)),o+="</div>",o}_renderSocial(e){let t='<div class="footer-social">';return e.forEach(e=>{t+=`\n <a href="${e.url||"#"}" class="footer-social-link" aria-label="${e.label||e.icon}" target="_blank" rel="noopener noreferrer">\n <span data-icon="${e.icon}" data-size="20"></span>\n </a>\n `}),t+="</div>",t}_renderCopyright(e){return`<div class="footer-copyright">${"string"==typeof e?e:e.text||`© ${e.year||(new Date).getFullYear()} All rights reserved`}</div>`}_scanIcons(){void 0!==window.Domma&&window.Domma.icons&&window.Domma.icons.scan&&window.Domma.icons.scan(this.element)}setBrand(e){return this.options.brand=e,this._render(),this._scanIcons(),this}setLinks(e){return this.options.links=e,this._render(),this._scanIcons(),this}setColumns(e){return this.options.columns=e,this._render(),this._scanIcons(),this}setSocial(e){return this.options.social=e,this._render(),this._scanIcons(),this}setCopyright(e){return this.options.copyright=e,this._render(),this}}class B extends s{static defaults={data:[],dataSource:null,minChars:1,maxResults:10,debounce:300,filterFn:null,renderItem:null,highlightMatches:!0,position:"auto",placeholder:"",emptyMessage:"No results found",loadingMessage:"Loading...",caseSensitive:!1,selectOnEnter:!0,clearOnSelect:!1,onSelect:null,onChange:null,onOpen:null,onClose:null,onFilter:null};constructor(e,t={}){super(e,t),this.model=t.model||null,this.modelKey=t.modelKey||null,this._isOpen=!1,this._activeIndex=-1,this._filteredData=[],this._loading=!1,this._debounceTimer=null,this._dropdown=null,this._list=null,this._loadingEl=null,this._emptyEl=null,this._init(),this.model&&"function"==typeof this.model.onChange&&(this._modelUnsubscribe=this.model.onChange((e,t)=>{e===this.modelKey&&t!==this.getValue()&&this.setValue(t)}))}_init(){this.element&&("INPUT"===this.element.tagName?(this.options.placeholder&&this.element.setAttribute("placeholder",this.options.placeholder),this._createDropdown(),this._bindEvents(),this.element.setAttribute("role","combobox"),this.element.setAttribute("aria-autocomplete","list"),this.element.setAttribute("aria-expanded","false"),this.element.setAttribute("aria-controls",this._dropdown.id)):console.error("Autocomplete requires an input element"))}_createDropdown(){let e=this.element.parentElement;e&&e.classList.contains("dm-autocomplete")||(e=document.createElement("div"),e.className="dm-autocomplete",this.element.parentNode.insertBefore(e,this.element),e.appendChild(this.element)),this._dropdown=document.createElement("div"),this._dropdown.className="dm-autocomplete-dropdown",this._dropdown.id=`autocomplete-${Math.random().toString(36).substr(2,9)}`,this._dropdown.setAttribute("role","listbox"),this._dropdown.style.display="none",this._loadingEl=document.createElement("div"),this._loadingEl.className="dm-autocomplete-loading",this._loadingEl.textContent=this.options.loadingMessage,this._loadingEl.style.display="none",this._dropdown.appendChild(this._loadingEl),this._emptyEl=document.createElement("div"),this._emptyEl.className="dm-autocomplete-empty",this._emptyEl.textContent=this.options.emptyMessage,this._emptyEl.style.display="none",this._dropdown.appendChild(this._emptyEl),this._list=document.createElement("ul"),this._list.className="dm-autocomplete-list",this._dropdown.appendChild(this._list),e.appendChild(this._dropdown)}_bindEvents(){const e=this._handleInput.bind(this),t=this._handleKeydown.bind(this);this._addEventListener(this.element,"input",e),this._addEventListener(this.element,"keydown",t),this._addEventListener(this.element,"focus",()=>{this.element.value.length>=this.options.minChars&&this._filterData(this.element.value)}),this._addEventListener(this.element,"blur",e=>{setTimeout(()=>{this._dropdown.contains(document.activeElement)||this.close()},200)})}_handleInput(e){const t=e.target.value;this._debounceTimer&&clearTimeout(this._debounceTimer),this.model&&this.modelKey&&this.model.set(this.modelKey,t),this.options.onChange&&this.options.onChange(t,e),t.length<this.options.minChars?this.close():this._debounceTimer=setTimeout(()=>{this._filterData(t)},this.options.debounce)}_handleKeydown(e){if(!this._isOpen)return void("ArrowDown"===e.key&&this.element.value.length>=this.options.minChars&&(e.preventDefault(),this._filterData(this.element.value)));const t=this._list.querySelectorAll(".dm-autocomplete-item");switch(e.key){case"ArrowDown":e.preventDefault(),this._activeIndex=Math.min(this._activeIndex+1,t.length-1),this._updateActive();break;case"ArrowUp":e.preventDefault(),this._activeIndex=Math.max(this._activeIndex-1,-1),this._updateActive();break;case"Enter":e.preventDefault(),this._activeIndex>=0&&this.options.selectOnEnter&&this._selectItem(this._activeIndex);break;case"Escape":e.preventDefault(),this.close();break;case"Tab":this._activeIndex>=0&&(e.preventDefault(),this._selectItem(this._activeIndex)),this.close()}}async _filterData(e){let t=[];if(this.options.dataSource){this._setLoading(!0);try{t=await this.options.dataSource(e)}catch(e){console.error("Autocomplete dataSource error:",e),t=[]}this._setLoading(!1)}else{const o=this.options.filterFn||this._defaultFilter.bind(this);t=this.options.data.filter(t=>o(t,e))}this.options.maxResults&&(t=t.slice(0,this.options.maxResults)),this.options.onFilter&&(t=this.options.onFilter(t,e)||t),this._filteredData=t,this._renderResults(e)}_defaultFilter(e,t){const o="string"==typeof e?e:e.label||e.value||String(e),n=this.options.caseSensitive?t:t.toLowerCase();return(this.options.caseSensitive?o:o.toLowerCase()).includes(n)}_renderResults(e){if(this._list.innerHTML="",this._activeIndex=-1,0===this._filteredData.length)return this._emptyEl.style.display="block",this._list.style.display="none",void this.open();this._emptyEl.style.display="none",this._list.style.display="block",this._filteredData.forEach((t,o)=>{const n=document.createElement("li");if(n.className="dm-autocomplete-item",n.setAttribute("role","option"),n.setAttribute("data-index",o),this.options.renderItem){const o=this.options.renderItem(t,e);n.innerHTML="string"==typeof o?o:"","string"!=typeof o&&n.appendChild(o)}else{const o="string"==typeof t?t:t.label||t.value||String(t);this.options.highlightMatches?n.innerHTML=this._highlightMatch(o,e):n.textContent=o}n.addEventListener("click",()=>{this._selectItem(o)}),n.addEventListener("mouseenter",()=>{this._activeIndex=o,this._updateActive()}),this._list.appendChild(n)}),this.open()}_highlightMatch(e,t){if(!t)return e;const o=new RegExp(`(${this._escapeRegex(t)})`,this.options.caseSensitive?"g":"gi");return e.replace(o,'<span class="dm-autocomplete-match">$1</span>')}_escapeRegex(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}_updateActive(){const e=this._list.querySelectorAll(".dm-autocomplete-item");if(e.forEach((e,t)=>{t===this._activeIndex?(e.classList.add("active"),e.setAttribute("aria-selected","true"),e.scrollIntoView({block:"nearest"})):(e.classList.remove("active"),e.setAttribute("aria-selected","false"))}),this._activeIndex>=0){const t=e[this._activeIndex];if(t){const e=t.id||`autocomplete-item-${this._activeIndex}`;t.id=e,this.element.setAttribute("aria-activedescendant",e)}}else this.element.removeAttribute("aria-activedescendant")}_selectItem(e){const t=this._filteredData[e];if(!t)return;const o="string"==typeof t?t:t.value||t.label||String(t);this.element.value=o,this.options.onSelect&&this.options.onSelect(t,{target:this.element}),this.options.clearOnSelect&&setTimeout(()=>{this.element.value=""},100),this.close(),this.element.focus()}_setLoading(e){this._loading=e,e?(this._loadingEl.style.display="block",this._list.style.display="none",this._emptyEl.style.display="none",this.open()):this._loadingEl.style.display="none"}_updatePosition(){if(!this._isOpen||!this._dropdown)return;const e=this.element.getBoundingClientRect(),t=this._dropdown.offsetHeight,o=window.innerHeight;let n=this.options.position;if("auto"===n){const s=o-e.bottom,i=e.top;n=s>=t||s>=i?"below":"above"}"above"===n?(this._dropdown.style.top="auto",this._dropdown.style.bottom="100%",this._dropdown.style.marginBottom="4px",this._dropdown.style.marginTop="0"):(this._dropdown.style.top="100%",this._dropdown.style.bottom="auto",this._dropdown.style.marginTop="4px",this._dropdown.style.marginBottom="0")}open(){return this._isOpen||(this._isOpen=!0,this._dropdown.style.display="block",this.element.setAttribute("aria-expanded","true"),this._updatePosition(),this.options.onOpen&&this.options.onOpen()),this}close(){return this._isOpen?(this._isOpen=!1,this._dropdown.style.display="none",this.element.setAttribute("aria-expanded","false"),this._activeIndex=-1,this.options.onClose&&this.options.onClose(),this):this}toggle(){return this._isOpen?this.close():this.open()}isOpen(){return this._isOpen}setValue(e){return this.element.value=e,this}getValue(){return this.element.value}setData(e){return this.options.data=e,this}refresh(){const e=this.element.value;return e.length>=this.options.minChars&&this._filterData(e),this}focus(){return this.element.focus(),this}clearValue(){return this.element.value="",this.close(),this}destroy(){this.close(),this._dropdown&&this._dropdown.parentNode&&this._dropdown.parentNode.removeChild(this._dropdown),this._debounceTimer&&clearTimeout(this._debounceTimer),this._modelUnsubscribe&&this._modelUnsubscribe(),super.destroy()}}class j extends s{static defaults={data:[],value:[],placeholder:"Add items...",searchable:!0,creatable:!1,maxItems:null,duplicates:!1,clearable:!0,size:"medium",renderPill:null,renderOption:null,pillTemplate:"<span>{label}</span>",validatePill:null,maxItemsMessage:"Maximum {max} items allowed",duplicateMessage:"Item already exists",noResultsMessage:"No results found",onAdd:null,onRemove:null,onChange:null,onCreate:null,onMaxReached:null,onValidationError:null};constructor(e,t={}){super(e,t),this.model=t.model||null,this.modelKey=t.modelKey||null,this._pills=[],this._isOpen=!1,this._activeIndex=-1,this._container=null,this._input=null,this._clearBtn=null,this._dropdown=null,this._optionsList=null,this._filteredData=[],this._init(),this.model&&"function"==typeof this.model.onChange&&(this._modelUnsubscribe=this.model.onChange((e,t)=>{if(e===this.modelKey&&Array.isArray(t)){const e=this.getValue();JSON.stringify(e)!==JSON.stringify(t)&&this.setValue(t)}}))}_init(){this.element&&("INPUT"===this.element.tagName?(this.element.style.display="none",this._createStructure(),this.options.value&&this.options.value.length>0&&this.options.value.forEach(e=>{const t=this._findItemByValue(e);t?this._addPill(t.value,t.label):"string"==typeof e&&this._addPill(e,e)}),this._bindEvents(),this._input.setAttribute("role","combobox"),this._input.setAttribute("aria-autocomplete","list"),this._input.setAttribute("aria-expanded","false")):console.error("Pillbox requires an input element"))}_createStructure(){const e=document.createElement("div");if(e.className=`dm-pillbox dm-pillbox-${this.options.size}`,this._container=document.createElement("div"),this._container.className="dm-pillbox-container",this._input=document.createElement("input"),this._input.type="text",this._input.className="dm-pillbox-input",this._input.placeholder=this.options.placeholder,this._container.appendChild(this._input),e.appendChild(this._container),this.options.clearable&&(this._clearBtn=document.createElement("button"),this._clearBtn.type="button",this._clearBtn.className="dm-pillbox-clear",this._clearBtn.innerHTML="×",this._clearBtn.title="Clear all",this._clearBtn.style.display="none",e.appendChild(this._clearBtn)),this.options.searchable){this._dropdown=document.createElement("div"),this._dropdown.className="dm-pillbox-dropdown",this._dropdown.style.display="none",this._optionsList=document.createElement("ul"),this._optionsList.className="dm-pillbox-options",this._dropdown.appendChild(this._optionsList);const t=document.createElement("div");t.className="dm-pillbox-empty",t.textContent=this.options.noResultsMessage,t.style.display="none",this._dropdown.appendChild(t),e.appendChild(this._dropdown)}this.element.parentNode.insertBefore(e,this.element.nextSibling),this._wrapper=e}_bindEvents(){const e=this._handleInput.bind(this),t=this._handleKeydown.bind(this);this._addEventListener(this._input,"input",e),this._addEventListener(this._input,"keydown",t),this._addEventListener(this._input,"focus",()=>{this.options.searchable&&this._input.value&&this._filterOptions(this._input.value)}),this._addEventListener(this._input,"blur",()=>{setTimeout(()=>{this._dropdown?.contains(document.activeElement)||this.close()},200)}),this._clearBtn&&this._addEventListener(this._clearBtn,"click",()=>{this.clear(),this._input.focus()}),this._addEventListener(this._container,"click",e=>{e.target===this._container&&this._input.focus()})}_handleInput(e){const t=e.target.value;this.options.searchable&&t?this._filterOptions(t):this.close()}_handleKeydown(e){const t=this._input.value;if("Backspace"===e.key&&!t&&this._pills.length>0){e.preventDefault();const t=this._container.querySelectorAll(".dm-pill")[this._pills.length-1];return void this._removePill(t)}if("Enter"===e.key&&t)return e.preventDefault(),void(this._isOpen&&this._activeIndex>=0?this._selectOption(this._activeIndex):this.options.creatable&&this._createPill(t));if(this._isOpen){const t=this._optionsList.querySelectorAll(".dm-pillbox-option");switch(e.key){case"ArrowDown":e.preventDefault(),this._activeIndex=Math.min(this._activeIndex+1,t.length-1),this._updateActive();break;case"ArrowUp":e.preventDefault(),this._activeIndex=Math.max(this._activeIndex-1,-1),this._updateActive();break;case"Escape":e.preventDefault(),this.close();break;case"Tab":this.close()}}}_filterOptions(e){const t=e.toLowerCase(),o=this._pills.map(e=>e.value);this._filteredData=this.options.data.filter(e=>{const n="string"==typeof e?e:e.value,s="string"==typeof e?e:e.label||e.value;return!o.includes(n)&&(!e.disabled&&s.toLowerCase().includes(t))}),this._renderOptions()}_renderOptions(){this._optionsList.innerHTML="",this._activeIndex=-1;const e=this._dropdown.querySelector(".dm-pillbox-empty");if(0===this._filteredData.length)return e.style.display="block",this._optionsList.style.display="none",void this.open();e.style.display="none",this._optionsList.style.display="block",this._filteredData.forEach((e,t)=>{const o=document.createElement("li");if(o.className="dm-pillbox-option",o.setAttribute("data-index",t),this.options.renderOption){const t=this.options.renderOption(e);o.innerHTML="string"==typeof t?t:"","string"!=typeof t&&o.appendChild(t)}else{const t="string"==typeof e?e:e.label||e.value;o.textContent=t}o.addEventListener("click",()=>{this._selectOption(t)}),o.addEventListener("mouseenter",()=>{this._activeIndex=t,this._updateActive()}),this._optionsList.appendChild(o)}),this.open()}_updateActive(){this._optionsList.querySelectorAll(".dm-pillbox-option").forEach((e,t)=>{t===this._activeIndex?(e.classList.add("active"),e.scrollIntoView({block:"nearest"})):e.classList.remove("active")})}_selectOption(e){const t=this._filteredData[e];if(!t)return;const o="string"==typeof t?t:t.value,n="string"==typeof t?t:t.label||t.value;this._addPill(o,n),this._input.value="",this.close(),this._input.focus()}_createPill(e){if(!e.trim())return;const t=this._validate(e);t?this.options.onValidationError&&this.options.onValidationError(t,e):(this._addPill(e,e),this._input.value="",this.options.onCreate&&this.options.onCreate(e))}_addPill(e,t){const o=this._validate(e);if(o)return void(this.options.onValidationError&&this.options.onValidationError(o,e));const n=document.createElement("div");if(n.className="dm-pill",n.setAttribute("data-value",e),this.options.renderPill){const o=this.options.renderPill({value:e,label:t});n.innerHTML="string"==typeof o?o:"","string"!=typeof o&&n.appendChild(o)}else{const e=this.options.pillTemplate.replace("{label}",t);n.innerHTML=e}const s=document.createElement("button");s.type="button",s.className="dm-pill-remove",s.innerHTML="×",s.title=`Remove ${t}`,s.addEventListener("click",e=>{e.stopPropagation(),this._removePill(n)}),n.appendChild(s),this._container.insertBefore(n,this._input),this._pills.push({value:e,label:t,element:n}),this._updateHiddenInput(),this._clearBtn&&(this._clearBtn.style.display="block"),this.options.onAdd&&this.options.onAdd(e,n),this._triggerChange()}_removePill(e){const t=e.getAttribute("data-value"),o=this._pills.findIndex(e=>e.value===t);-1!==o&&(this._pills[o],e.remove(),this._pills.splice(o,1),this._updateHiddenInput(),0===this._pills.length&&this._clearBtn&&(this._clearBtn.style.display="none"),this.options.onRemove&&this.options.onRemove(t,e),this._triggerChange())}_validate(e){if(this.options.maxItems&&this._pills.length>=this.options.maxItems)return this.options.onMaxReached&&this.options.onMaxReached(),this.options.maxItemsMessage.replace("{max}",this.options.maxItems);if(!this.options.duplicates&&this._pills.some(t=>t.value===e))return this.options.duplicateMessage;if(this.options.validatePill){const t=this.options.validatePill(e);if(!0!==t&&void 0!==t)return"string"==typeof t?t:"Invalid value"}return null}_findItemByValue(e){return this.options.data.find(t=>("string"==typeof t?t:t.value)===e)}_updateHiddenInput(){const e=this._pills.map(e=>e.value);this.element.value=JSON.stringify(e)}_triggerChange(){const e=this.getValue();this.model&&this.modelKey&&this.model.set(this.modelKey,e),this.options.onChange&&this.options.onChange(e)}open(){return!this._dropdown||this._isOpen||(this._isOpen=!0,this._dropdown.style.display="block",this._input.setAttribute("aria-expanded","true")),this}close(){return this._dropdown&&this._isOpen?(this._isOpen=!1,this._dropdown.style.display="none",this._input.setAttribute("aria-expanded","false"),this._activeIndex=-1,this):this}isOpen(){return this._isOpen}getValue(){return this._pills.map(e=>e.value)}setValue(e){return this.clear(),Array.isArray(e)&&e.forEach(e=>{const t=this._findItemByValue(e);if(t){const o="string"==typeof t?t:t.label||t.value;this._addPill(e,o)}else"string"==typeof e&&this._addPill(e,e)}),this}addPill(e,t){return t=t||e,this._addPill(e,t),this}removePill(e){const t=this._container.querySelector(`.dm-pill[data-value="${e}"]`);return t&&this._removePill(t),this}removePillAt(e){return e>=0&&e<this._pills.length&&this._removePill(this._pills[e].element),this}clear(){return[...this._pills].forEach(e=>{this._removePill(e.element)}),this}getCount(){return this._pills.length}setData(e){return this.options.data=e,this}focus(){return this._input.focus(),this}enable(){return this._input.disabled=!1,this._wrapper.classList.remove("disabled"),this}disable(){return this._input.disabled=!0,this._wrapper.classList.add("disabled"),this.close(),this}destroy(){this.close(),this._wrapper&&this._wrapper.parentNode&&this._wrapper.parentNode.removeChild(this._wrapper),this.element.style.display="",this._modelUnsubscribe&&this._modelUnsubscribe(),super.destroy()}}class z extends s{static defaults={position:"right",size:"lg",backdrop:!0,backdropClose:!0,keyboard:!0,animation:!0,animationDuration:300,closeOnEscape:!0,title:"",content:"",closable:!0,closeIcon:"x",headerClass:"",bodyClass:"",footerClass:"",customSizes:{},onOpen:null,onClose:null,onClosed:null};constructor(e,t={}){super(e,t),this._isOpen=!1,this._backdrop=null,this._originalBodyOverflow=null,this._keydownHandler=null,this._init()}_init(){this.element&&(this._setupElement(),this._bindEvents())}_setupElement(){const e=this.element;this.options,e.classList.add("dm-slideover"),e.style.position="fixed",e.style.top="0",e.style.height="100vh",e.style.backgroundColor="white",e.style.boxShadow=this._getBoxShadow(),e.style.zIndex="9999",e.style.display="none",e.style.flexDirection="column",e.style.overflow="hidden",this._applyPosition(),this._applySize(),this._applyAnimation()}_applyPosition(){const e=this.element,t=this.options.position;switch(e.classList.remove("dm-slideover-left","dm-slideover-right","dm-slideover-top","dm-slideover-bottom"),e.classList.add(`dm-slideover-${t}`),t){case"left":e.style.left="-100%",e.style.right="auto",e.style.top="0",e.style.bottom="0",e.style.width=this._getSizeValue(),e.style.height="100vh";break;case"right":e.style.right="-100%",e.style.left="auto",e.style.top="0",e.style.bottom="0",e.style.width=this._getSizeValue(),e.style.height="100vh";break;case"top":e.style.top="-100%",e.style.bottom="auto",e.style.left="0",e.style.right="0",e.style.width="100vw",e.style.height=this._getSizeValue();break;case"bottom":e.style.bottom="-100%",e.style.top="auto",e.style.left="0",e.style.right="0",e.style.width="100vw",e.style.height=this._getSizeValue()}}_applySize(){const e=this._getSizeValue(),t=this.options.position;["left","right"].includes(t)?this.element.style.width=e:this.element.style.height=e}_getSizeValue(){const{size:e,customSizes:t}=this.options;if(t&&t[e])return t[e];const o={sm:"25%",md:"50%",lg:"75%",xl:"90%",full:"100%"};return"string"==typeof e&&(e.includes("px")||e.includes("%")||e.includes("rem")||e.includes("em"))?e:o[e]||o.lg}_applyAnimation(){this.options.animation?this.element.style.transition=`all ${this.options.animationDuration}ms ease`:this.element.style.transition="none"}_getBoxShadow(){switch(this.options.position){case"left":return"2px 0 8px rgba(0,0,0,0.15)";case"right":default:return"-2px 0 8px rgba(0,0,0,0.15)";case"top":return"0 2px 8px rgba(0,0,0,0.15)";case"bottom":return"0 -2px 8px rgba(0,0,0,0.15)"}}_bindEvents(){if(this.options.closable){const e=this.element.querySelector('[data-dismiss="slideover"], .dm-slideover-close');e&&this._addEventListener(e,"click",()=>this.close())}this._keydownHandler=e=>{this._isOpen&&this.options.keyboard&&"Escape"===e.key&&this.options.closeOnEscape&&this.close()}}_createBackdrop(){this.options.backdrop&&(this._backdrop=document.createElement("div"),this._backdrop.className="dm-slideover-backdrop",this._backdrop.style.cssText=`\n position: fixed;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n background-color: rgba(0, 0, 0, 0.5);\n z-index: 9998;\n display: none;\n transition: opacity ${this.options.animationDuration}ms ease;\n opacity: 0;\n `,this.options.backdropClose&&this._backdrop.addEventListener("click",()=>this.close()),document.body.appendChild(this._backdrop))}_showBackdrop(){this._backdrop&&(this._backdrop.style.display="block",requestAnimationFrame(()=>{this._backdrop.style.opacity="1"}))}_hideBackdrop(){this._backdrop&&(this._backdrop.style.opacity="0",setTimeout(()=>{this._backdrop&&(this._backdrop.style.display="none")},this.options.animationDuration))}_getOpenPosition(){switch(this.options.position){case"left":return{left:"0",right:"auto"};case"right":return{right:"0",left:"auto"};case"top":return{top:"0",bottom:"auto"};case"bottom":return{bottom:"0",top:"auto"}}}open(){if(this._isOpen)return this;const e=this.element;if(!e)return this;this.options.backdrop&&!this._backdrop&&this._createBackdrop(),this._originalBodyOverflow=document.body.style.overflow,document.body.style.overflow="hidden",this._showBackdrop(),e.style.display="flex";const t=this._getOpenPosition();return requestAnimationFrame(()=>{Object.assign(e.style,t)}),this.options.keyboard&&document.addEventListener("keydown",this._keydownHandler),this._isOpen=!0,setTimeout(()=>{this.options.onOpen&&this.options.onOpen(this),this._createForm()},this.options.animationDuration),this}_createForm(){if(this._schema&&!this._formaForm&&window.Domma&&window.Domma.forms&&window.Domma.forms.create)try{console.log("📝 Creating Forma form with schema:",this._schema);let e=this._schema;if(this._schema.fields&&Array.isArray(this._schema.fields)){e={};for(const t of this._schema.fields)t.name&&(e[t.name]={type:t.type||"string",label:t.label,required:t.required||!1,default:t.defaultValue,min:t.validation?.minLength,max:t.validation?.maxLength,pattern:t.validation?.pattern?new RegExp(t.validation.pattern):void 0,options:t.options,formConfig:{placeholder:t.placeholder,hint:t.help,rows:t.rows,accept:t.accept,multiple:t.multiple}});console.log("📝 Converted schema:",e)}const t={onSubmit:(e,t)=>(console.log("📝 Schema form submitted:",e),this._onSave&&this._onSave(e,t,this),!1),onCancel:()=>{console.log("📝 Schema form cancelled"),this.close()},layout:"stacked",showLabels:!0,showHelperText:!0,showHints:!0,cssFramework:"domma",className:"domma-form",fieldClassName:"col-6 mb-3",labelClassName:"form-label",inputClassName:"form-input",errorClassName:"form-error",helperClassName:"form-helper-text",hintClassName:"form-hint"};this._formaForm=window.Domma.forms.create(e,this._data||{},t),this._formaForm.renderTo("#schema-form-container"),console.log("📝 Forma form created and rendered successfully")}catch(e){console.error("📝 Failed to create Forma form:",e);const t=this.element.querySelector(".dm-slideover-body");t&&(t.innerHTML="<p>Form creation failed. Please try again.</p>")}}close(){if(!this._isOpen)return this;const e=this.element;if(!e)return this;if(this.options.onClose&&this.options.onClose(this),this._applyPosition(),this._hideBackdrop(),null!==this._originalBodyOverflow&&(document.body.style.overflow=this._originalBodyOverflow),this._keydownHandler&&document.removeEventListener("keydown",this._keydownHandler),this._formaForm)try{this._formaForm.destroy&&this._formaForm.destroy(),this._formaForm=null;const t=e.querySelector("#schema-form-container");t&&(t.innerHTML="")}catch(e){console.warn("Error cleaning up form:",e)}return setTimeout(()=>{e.style.display="none",this._isOpen=!1,this.options.onClosed&&this.options.onClosed(this)},this.options.animationDuration),this}toggle(){return this._isOpen?this.close():this.open()}isOpen(){return this._isOpen}setTitle(e){const t=this.element.querySelector(".dm-slideover-header .dm-slideover-title");return t&&(t.textContent=e),this}setContent(e){const t=this.element.querySelector(".dm-slideover-body");return t&&("string"==typeof e?t.innerHTML=e:e instanceof Element&&(t.innerHTML="",t.appendChild(e))),this}setSize(e){return this.options.size=e,this._applySize(),this}setPosition(e){return this.options.position=e,this.element.style.boxShadow=this._getBoxShadow(),this._applyPosition(),this}destroy(){this.close(),this._backdrop&&(this._backdrop.remove(),this._backdrop=null),this._keydownHandler&&document.removeEventListener("keydown",this._keydownHandler),super.destroy()}static create(e={}){const t=document.createElement("div");t.className="dm-slideover";const{title:o,content:n,schema:s,data:i={},closable:r=!0,closeIcon:a="x",onSave:l}=e;let h="";if((o||r)&&(h+='<div class="dm-slideover-header">',o&&(h+=`<h5 class="dm-slideover-title">${o}</h5>`),r&&(h+='<button type="button" class="btn btn-ghost-secondary dm-slideover-close" data-dismiss="slideover" aria-label="Close">',window.Domma&&window.Domma.icons?h+=Domma.icons.render(a,{size:20}).outerHTML:h+="×",h+="</button>"),h+="</div>"),h+='<div class="dm-slideover-body">',s?(h+='<div class="container-fluid p-4">',h+='<div class="card">',h+='<div class="card-body p-4">',h+='<div class="row g-3" id="schema-form-container"></div>',h+="</div>",h+="</div>",h+="</div>"):n&&(h+="string"==typeof n?n:""),h+="</div>",t.innerHTML=h,document.body.appendChild(t),n instanceof Element&&!s){const e=t.querySelector(".dm-slideover-body");e.innerHTML="",e.appendChild(n)}const c=new z(t,e);return c._schema=s,c._data=i,c._onSave=l,c}}class A extends s{static defaults={items:[],layout:"vertical",animation:!0,animationDelay:100,responsive:!0,clickable:!1,theme:"default",onItemClick:null,yearWidth:"80px",contentMaxWidth:"600px"};constructor(e,t={}){super(e,t),this._init()}_init(){this.element&&(this.element.classList.add("dm-timeline",`dm-timeline-${this.options.layout}`),"default"!==this.options.theme&&this.element.classList.add(`dm-timeline-${this.options.theme}`),this._renderItems(),this._attachEvents(),this.options.animation&&this._animateItems())}_renderItems(){const e=this.options.items;Array.isArray(e)&&0!==e.length&&(this.element.innerHTML="",e.forEach((e,t)=>{const o=document.createElement("div");o.className="dm-timeline-item",o.setAttribute("data-index",t),this.options.animation&&(o.style.opacity="0",o.style.transform="translateY(20px)",o.style.transition="opacity 0.6s ease, transform 0.6s ease"),o.innerHTML=`\n <div class="dm-timeline-year">${this._escapeHtml(e.year||"")}</div>\n <div class="dm-timeline-content">\n <h4 class="dm-timeline-title">${this._escapeHtml(e.title||"")}</h4>\n <p class="dm-timeline-description">${this._escapeHtml(e.description||"")}</p>\n </div>\n `,this.element.appendChild(o)}))}_attachEvents(){this.options.clickable&&this._addEventListener(this.element,"click",e=>{const t=e.target.closest(".dm-timeline-item");if(t){const e=parseInt(t.getAttribute("data-index"),10),o=this.options.items[e];o&&this.options.onItemClick&&this.options.onItemClick(o,e,t)}})}_animateItems(){this.element.querySelectorAll(".dm-timeline-item").forEach((e,t)=>{setTimeout(()=>{e.style.opacity="1",e.style.transform="translateY(0)"},t*this.options.animationDelay)})}_escapeHtml(e){const t=document.createElement("div");return t.textContent=e,t.innerHTML}setItems(e){return this.options.items=e,this._renderItems(),this.options.animation&&this._animateItems(),this}addItem(e){return this.options.items.push(e),this._renderItems(),this.options.animation&&this._animateItems(),this}getItems(){return[...this.options.items]}setLayout(e){return this.element.classList.remove(`dm-timeline-${this.options.layout}`),this.options.layout=e,this.element.classList.add(`dm-timeline-${e}`),this}refresh(){return this._renderItems(),this.options.animation&&this._animateItems(),this}}const W={_instances:new Map,card(e,t={}){const o=new r(e,t);return o.element&&this._instances.set(o.element,o),o},modal(e,t={}){if("object"==typeof e&&!e.nodeType&&"string"!=typeof e)return l.createModal(e);const o=new a(e,t);return o.element&&this._instances.set(o.element,o),o},tabs(e,t={}){const o=new h(e,t);return o.element&&this._instances.set(o.element,o),o},accordion(e,t={}){const o=new c(e,t);return o.element&&this._instances.set(o.element,o),o},tooltip(e,t={}){const o="string"==typeof e?document.querySelectorAll(e):[e],n=[];for(const e of o){const o=new d(e,t);this._instances.set(e,o),n.push(o)}return 1===n.length?n[0]:n},badge(e,t={}){const o="string"==typeof e?document.querySelectorAll(e):[e],n=[];for(const e of o){const o=new u(e,t);this._instances.set(e,o),n.push(o)}return 1===n.length?n[0]:n},dropdown(e,t={}){const o=new p(e,t);return o.element&&this._instances.set(o.element,o),o},carousel(e,t={}){const o=new _(e,t);return o.element&&this._instances.set(o.element,o),o},cookieConsent(e={}){if(this._instances.has("cookieConsent"))return this._instances.get("cookieConsent");const t=new y(e);return this._instances.set("cookieConsent",t),t},backToTop(e,t={}){const o=new M(e,t);return this._instances.set("backToTop",o),o},buttonGroup(e,t={}){const o="string"==typeof e?document.querySelectorAll(e):[e],n=[];for(const e of o){const o=new w(e,t);this._instances.set(e,o),n.push(o)}return 1===n.length?n[0]:n},loader(e,t={}){const o=new L(e,t);return o.element&&this._instances.set(o.element,o),o},showLoader:L.show.bind(L),hideLoader:L.hide.bind(L),fullscreenLoader:L.fullscreen.bind(L),breadcrumbs(e,t={}){const o=new x(e,t);return o.element&&this._instances.set(o.element,o),o},navbar(e,t={}){const o=new C(e,t);return o.element&&this._instances.set(o.element,o),o},sidebar(e,t={}){const o=new E(e,t);return o.element&&this._instances.set(o.element,o),o},footer(e,t={}){const o=new S(e,t);return o.element&&this._instances.set(o.element,o),o},notification:(e={})=>new v(e),notify:(e,t={})=>v.notify(e,t),timer(e,t={}){const o=new k(e,t);return o.element&&this._instances.set(o.element,o),o},alarm:(e={})=>new g(e),autocomplete(e,t={}){const o=new B(e,t);return o.element&&this._instances.set(o.element,o),o},pillbox(e,t={}){const o=new j(e,t);return o.element&&this._instances.set(o.element,o),o},treeView(e,t={}){const o=new i(e,t);return o.element&&this._instances.set(o.element,o),o},slideover(e,t={}){if("object"==typeof e&&!e.nodeType&&"string"!=typeof e)return e.schema,z.create(e);const o=new z(e,t);return o.element&&this._instances.set(o.element,o),o},timeline(e,t={}){const o=new A(e,t);return o.element&&this._instances.set(o.element,o),o},toast:Object.assign((e,t={})=>m.show(e,t),{show:m.show.bind(m),success:m.success.bind(m),error:m.error.bind(m),warning:m.warning.bind(m),info:m.info.bind(m),closeAll:m.closeAll.bind(m)}),dialog:b,alert:b.alert.bind(b),confirm:b.confirm.bind(b),prompt:b.prompt.bind(b),createModal:l.createModal.bind(l),showModal:l.showModal.bind(l),get(e){const t="string"==typeof e?document.querySelector(e):e;return this._instances.get(t)},destroy(e){const t="string"==typeof e?document.querySelector(e):e,o=this._instances.get(t);o&&(o.destroy(),this._instances.delete(t))},destroyAll(){for(const e of this._instances.values())e.destroy();this._instances.clear()},_registry:new Map,register(e,t){this._registry.set(e,t)},create(e,t,o={}){const n=this._registry.get(e);if(n)return new n(t,o);throw new Error(`Unknown component: ${e}`)}},H={_prefix:"domma:",_available:null,isAvailable(){if(null!==this._available)return this._available;try{const e=`${this._prefix}__test__`;localStorage.setItem(e,"test"),localStorage.removeItem(e),this._available=!0}catch(e){this._available=!1}return this._available},_prefixKey(e){return`${this._prefix}${e}`},_unprefixKey(e){return e.slice(this._prefix.length)},get(e,t=null){if(!this.isAvailable())return t;try{const o=this._prefixKey(e),n=localStorage.getItem(o);return null===n?t:JSON.parse(n)}catch(o){return console.warn(`Domma storage: Failed to parse key "${e}"`,o),t}},set(e,t){if(!this.isAvailable())return!1;try{const o=this._prefixKey(e),n=JSON.stringify(t);return localStorage.setItem(o,n),!0}catch(t){return console.warn(`Domma storage: Failed to set key "${e}"`,t),!1}},remove(e){if(!this.isAvailable())return!1;try{const t=this._prefixKey(e);return localStorage.removeItem(t),!0}catch(t){return console.warn(`Domma storage: Failed to remove key "${e}"`,t),!1}},has(e){if(!this.isAvailable())return!1;try{const t=this._prefixKey(e);return null!==localStorage.getItem(t)}catch(e){return!1}},clear(){if(!this.isAvailable())return 0;try{const e=this.keys();return e.forEach(e=>this.remove(e)),e.length}catch(e){return console.warn("Domma storage: Failed to clear storage",e),0}},keys(){if(!this.isAvailable())return[];try{const e=[];for(let t=0;t<localStorage.length;t++){const o=localStorage.key(t);o&&o.startsWith(this._prefix)&&e.push(this._unprefixKey(o))}return e}catch(e){return[]}},size(e){if(!this.isAvailable())return 0;try{const t=this._prefixKey(e),o=localStorage.getItem(t);return o?new Blob([o]).size:0}catch(e){return 0}},totalSize(){if(!this.isAvailable())return 0;try{let e=0;return this.keys().forEach(t=>{e+=this.size(t)}),e}catch(e){return 0}},getAll(){if(!this.isAvailable())return{};const e={};return this.keys().forEach(t=>{e[t]=this.get(t)}),e},setAll(e){if(!this.isAvailable()||!e)return!1;let t=!0;return Object.keys(e).forEach(o=>{this.set(o,e[o])||(t=!1)}),t}};class T{constructor(e,t={},o={}){this._schema=e,this._data={},this._initialData={},this._bindings=new Map,this._changeCallbacks=new Set,this._fieldCallbacks=new Map,this._persistKey=o.persist||null,this._autoSave=!1!==o.autoSave;for(const o in e){const n=e[o],s=void 0!==n.default?n.default:null;this._data[o]=void 0!==t[o]?t[o]:s,this._initialData[o]=this._data[o]}this._persistKey&&this._loadFromStorage()}get(e){return e?this._data[e]:{...this._data}}set(e,t){if("object"==typeof e)for(const t in e)this._setField(t,e[t]);else this._setField(e,t);return this}_setField(e,t){const o=this._data[e];if(this._schema[e]){const o=this._validateField(e,t);if(!o.valid)throw new Error(`Validation failed for ${e}: ${o.error}`)}this._data[e]=t,n.isEqual(o,t)||(this._notifyChange(e,t,o),this._updateBindings(e,t),this._persistKey&&this._autoSave&&this._saveToStorage())}_validateField(e,t){const o=this._schema[e];if(o.required&&(null==t||""===t))return{valid:!1,error:"Required field is empty"};if(null!=t&&o.type){const e=D.types[o.type];if(e&&!e(t))return{valid:!1,error:`Expected type ${o.type}`}}if(void 0!==o.min&&"number"==typeof t&&t<o.min)return{valid:!1,error:`Value must be at least ${o.min}`};if(void 0!==o.max&&"number"==typeof t&&t>o.max)return{valid:!1,error:`Value must be at most ${o.max}`};if(void 0!==o.minLength&&"string"==typeof t&&t.length<o.minLength)return{valid:!1,error:`Length must be at least ${o.minLength}`};if(void 0!==o.maxLength&&"string"==typeof t&&t.length>o.maxLength)return{valid:!1,error:`Length must be at most ${o.maxLength}`};if(o.pattern&&"string"==typeof t&&!o.pattern.test(t))return{valid:!1,error:"Value does not match pattern"};if(o.validate&&"function"==typeof o.validate){const e=o.validate(t);if(!1===e)return{valid:!1,error:"Custom validation failed"};if("string"==typeof e)return{valid:!1,error:e}}return{valid:!0}}validate(){const e=[];for(const t in this._schema){const o=this._validateField(t,this._data[t]);o.valid||e.push({field:t,error:o.error})}return{valid:0===e.length,errors:e}}toJSON(){return{...this._data}}onChange(e){return this._changeCallbacks.add(e),()=>this._changeCallbacks.delete(e)}onFieldChange(e,t){return this._fieldCallbacks.has(e)||this._fieldCallbacks.set(e,new Set),this._fieldCallbacks.get(e).add(t),()=>this._fieldCallbacks.get(e).delete(t)}_notifyChange(e,t,o){for(const n of this._changeCallbacks)n({field:e,newValue:t,oldValue:o,model:this});if(this._fieldCallbacks.has(e))for(const n of this._fieldCallbacks.get(e))n(t,o,this)}_updateBindings(e,t){if(this._bindings.has(e))for(const o of this._bindings.get(e))o.update(t)}_addBinding(e,t){this._bindings.has(e)||this._bindings.set(e,new Set),this._bindings.get(e).add(t)}_removeBinding(e,t){this._bindings.has(e)&&this._bindings.get(e).delete(t)}reset(e=!1){for(const e in this._initialData)this.set(e,n.cloneDeep(this._initialData[e]));return e&&this._persistKey&&this.clearStorage(),this}destroy(e=!1){e&&this._persistKey&&this.clearStorage(),this._changeCallbacks.clear(),this._fieldCallbacks.clear(),this._bindings.clear()}save(){return this._saveToStorage()}load(){return this._loadFromStorage()}clearStorage(){return!!this._persistKey&&H.remove(`model:${this._persistKey}`)}getPersistKey(){return this._persistKey}isPersisted(){return null!==this._persistKey}_saveToStorage(){if(!this._persistKey)return!1;try{return H.set(`model:${this._persistKey}`,this._data)}catch(e){return console.warn("Domma Model: Failed to save to storage",e),!1}}_loadFromStorage(){if(!this._persistKey)return!1;try{const e=H.get(`model:${this._persistKey}`);if(e&&"object"==typeof e){for(const t in e)void 0!==this._schema[t]&&(this._data[t]=e[t]);return!0}return!1}catch(e){return console.warn("Domma Model: Failed to load from storage",e),!1}}}class ${constructor(e,t,o,n={}){this.model=e,this.field=t,this.element=o,this.options=n,this.format=n.format||(e=>e),this.parse=n.parse||(e=>e),this.twoWay=n.twoWay||!1,this._eventHandler=null,this.update(e.get(t)),this.twoWay&&this._setupTwoWay()}update(e){const t=this.format(e),o=this.element;"INPUT"===o.tagName||"TEXTAREA"===o.tagName?"checkbox"===o.type?o.checked=Boolean(t):"radio"===o.type?o.checked=o.value===String(t):o.value=null!=t?t:"":"SELECT"===o.tagName?o.value=t:o.textContent=null!=t?t:""}_setupTwoWay(){const e=this.element,t=this._getEventType();this._eventHandler=t=>{let o;o="checkbox"===e.type?e.checked:"number"===e.type||"range"===e.type?""===e.value?null:Number(e.value):e.value;try{this.model.set(this.field,this.parse(o))}catch(e){console.warn("Binding validation error:",e.message)}},e.addEventListener(t,this._eventHandler)}_getEventType(){const e=this.element;return"SELECT"===e.tagName||"checkbox"===e.type||"radio"===e.type?"change":"input"}destroy(){if(this._eventHandler){const e=this._getEventType();this.element.removeEventListener(e,this._eventHandler)}this.model._removeBinding(this.field,this)}}const D={_events:new Map,subscribe(e,t){return this._events.has(e)||this._events.set(e,new Set),this._events.get(e).add(t),()=>this.unsubscribe(e,t)},on(e,t){return this.subscribe(e,t)},unsubscribe(e,t){this._events.has(e)&&this._events.get(e).delete(t)},off(e,t){this.unsubscribe(e,t)},publish(e,t){if(this._events.has(e))for(const o of this._events.get(e))o(t)},emit(e,t){this.publish(e,t)},once(e,t){const o=n=>{this.unsubscribe(e,o),t(n)};return this.subscribe(e,o)},clear(e){e?this._events.delete(e):this._events.clear()},create:(e,t={},o={})=>new T(e,t,o),types:{string:e=>"string"==typeof e,number:e=>"number"==typeof e&&!Number.isNaN(e),boolean:e=>"boolean"==typeof e,array:e=>Array.isArray(e),object:e=>null!==e&&"object"==typeof e&&!Array.isArray(e),date:e=>e instanceof Date&&!isNaN(e.getTime()),any:()=>!0},bind(e,t,o,n={}){const s="string"==typeof o?document.querySelectorAll(o):[o],i=[];for(const o of s){const s=new $(e,t,o,n);e._addBinding(t,s),i.push(s)}return()=>{for(const e of i)e.destroy()}},_stores:new Map,store(e,t={}){if(!this._stores.has(e)){const o={state:{...t},listeners:new Set,getState(){return{...this.state}},setState(e){const t={...this.state};this.state={...this.state,...e};for(const e of this.listeners)e(this.state,t)},subscribe(e){return this.listeners.add(e),()=>this.listeners.delete(e)},reset(e){this.state=e?{...e}:{...t};for(const e of this.listeners)e(this.state,{})}};this._stores.set(e,o)}return this._stores.get(e)},getStore(e){return this._stores.get(e)},removeStore(e){this._stores.delete(e)}};class V{static defaults={layout:"stacked",columns:2,labelPosition:"top",showLabels:!0,showHelperText:!0,showHints:!0,validationMode:"blur",cssFramework:"domma",className:"domma-form",fieldClassName:"domma-form-field",labelClassName:"form-label",inputClassName:"form-input",errorClassName:"form-error",helperClassName:"form-helper-text",hintClassName:"form-hint",cardWrapper:!1};static inputTypes={string:"text",email:"email",password:"password",number:"number",integer:"number",float:"number",boolean:"checkbox",date:"date",datetime:"datetime-local",time:"time",url:"url",tel:"tel",color:"color",range:"range",file:"file",hidden:"hidden"};constructor(e,t={},o={}){this.schema=e,this.data={...t},this.options={...V.defaults,...o},this.model=null,this.errors={},this.touched=new Set,this.utils=window.Domma?.utils||n,this.models=window.Domma?.models||D,e&&"object"==typeof e&&(this.model=this.models.create(e,t,{persist:o.persist,autoSave:o.autoSave}))}render(){if(!this.schema)throw new Error("Schema is required to render form");return this._buildForm()}renderTo(e){const t="string"==typeof e?document.querySelector(e):e;if(!t)throw new Error(`Form container not found: ${e}`);return t.innerHTML=this.render(),this.formElement=t.querySelector("form"),this._bindEvents(t),t}_buildForm(){const{className:e,layout:t,columns:o,cardWrapper:n}=this.options;let s=e;if("grid"===t){s+=` grid ${3===o?"grid-cols-3":"grid-cols-2"} gap-4`}else"inline"===t&&(s+=" domma-form-inline");let i="";if(n&&(i+='<div class="card"><div class="card-body">'),i+=`<form class="${s}" novalidate>`,this.options.sections&&Array.isArray(this.options.sections))for(const e of this.options.sections)i+=this._buildSection(e);else for(const e in this.schema)i+=this._buildField(e,this.schema[e]);if(!1!==this.options.showSubmitButton){const e=this.options.submitText||"Submit",t=this.options.resetText,o=this.options.buttonAlignment||"right";i+=`<div class="form-group form-buttons mt-4 ${"left"===o?"text-left":"center"===o?"text-center":"text-right"}">`,t&&(i+=`<button type="button" class="btn btn-secondary mr-2" data-action="reset">${t}</button>`),i+=`<button type="submit" class="btn btn-primary">${e}</button>`,i+="</div>"}return i+="</form>",n&&(i+="</div></div>"),i}_buildSection(e){let t="";e.title&&(t+='<fieldset class="domma-form-section">',t+=`<legend class="domma-form-section-title">${e.title}</legend>`);t+=`<div class="${"grid"===e.layout?`grid grid-cols-${e.columns||2}`:"domma-form-section-content"}">`;for(const o of e.fields||[])this.schema[o]&&(t+=this._buildField(o,this.schema[o]));return t+="</div>",e.title&&(t+="</fieldset>"),t}_buildField(e,t){const{fieldClassName:o,showLabels:n,showHelperText:s,showHints:i,labelPosition:r}=this.options,a=t.formConfig||{},l=t.type||"string",h=t.label||this.utils.capitalize(e),c=this.data[e]||t.default||"",d=t.required||!1,u=a.disabled||t.readonly||!1,p=a.placeholder||"",m=a.hint||"",f=a.helperText||"",v=a.span||1;let k="";if("grid"===this.options.layout&&v>1){const e=this.options.columns||2;2===v?k=" col-span-2":3===v&&3===e?k=" col-span-3":v>=e&&(k=3===e?" col-span-3":" col-span-2")}let g=`<div class="${o}${k}" data-field="${e}">`;if(n&&h&&"hidden"!==l&&"boolean"!==l){g+=`<label for="field-${e}" class="${this.options.labelClassName}">${h}${d?' <span class="text-danger">*</span>':""}`,i&&m&&(g+=` <small class="${this.options.hintClassName}">${m}</small>`),g+="</label>"}return g+=this._buildInput(e,t,{type:l,value:c,required:d,disabled:u,placeholder:p}),s&&f&&(g+=`<small class="${this.options.helperClassName}">${f}</small>`),g+=`<div class="${this.options.errorClassName}" data-error-for="${e}" style="display: none;"></div>`,g+="</div>",g}_buildInput(e,t,o){const{type:n,value:s,required:i,disabled:r,placeholder:a}=o,l=t.formConfig||{},h={id:`field-${e}`,name:e,class:this.options.inputClassName,...i&&{required:!0},...r&&{disabled:!0},...a&&{placeholder:a},...void 0!==t.min&&{min:t.min},...void 0!==t.max&&{max:t.max},...t.pattern&&{pattern:t.pattern},...l.autocomplete&&{autocomplete:l.autocomplete}},c=Object.entries(h).map(([e,t])=>!0===t?e:`${e}="${t}"`).join(" ");switch(n){case"select":return this._buildSelect(e,t,h,s);case"multiselect":return h.multiple=!0,this._buildSelect(e,t,h,s);case"textarea":return`<textarea ${c} rows="${l.rows||3}">${this.utils.escapeHtml(s)}</textarea>`;case"radio":return this._buildRadioGroup(e,t,h,s);case"checkbox-group":return this._buildCheckboxGroup(e,t,h,s);case"boolean":const o=s?"checked":"",i=t.label||this.utils.capitalize(e),r=t.required?' <span class="text-danger">*</span>':"",a=l.hint?` <small class="form-text text-muted">${l.hint}</small>`:"";return`<div class="form-check">\n <input type="checkbox" class="form-check-input" ${c} ${o}>\n <label class="form-check-label" for="${h.id}">${i}${r}</label>\n ${a}\n </div>`;case"file":return`<input type="file" ${c} accept="${l.accept||""}" ${l.multiple?"multiple":""}>`;default:return`<input type="${V.inputTypes[n]||"text"}" ${c} value="${this.utils.escapeHtml(s)}">`}}_buildSelect(e,t,o,n){let s=`<select ${Object.entries(o).map(([e,t])=>!0===t?e:`${e}="${t}"`).join(" ")}>`;t.required||(s+='<option value="">-- Select --</option>');const i=t.options||[],r=Array.isArray(n)?n:[n];for(const e of i)if("string"==typeof e){s+=`<option value="${e}" ${r.includes(e)?"selected":""}>${this.utils.capitalize(e)}</option>`}else if("object"==typeof e){const t=r.includes(e.value)?"selected":"";s+=`<option value="${e.value}" ${t}>${e.label}</option>`}return s+="</select>",s}_buildRadioGroup(e,t,o,n){const s=t.options||[];let i='<div class="domma-radio-group">';for(const t of s){const s="string"==typeof t?t:t.value,r="string"==typeof t?this.utils.capitalize(t):t.label,a=`${o.id}-${s}`;i+=`\n <div class="domma-radio-option">\n <input type="radio" id="${a}" name="${e}" value="${s}" ${s===n?"checked":""} ${o.disabled?"disabled":""}>\n <label for="${a}">${r}</label>\n </div>\n `}return i+="</div>",i}_buildCheckboxGroup(e,t,o,n){const s=t.options||[],i=Array.isArray(n)?n:[];let r='<div class="domma-checkbox-group">';for(const t of s){const n="string"==typeof t?t:t.value,s="string"==typeof t?this.utils.capitalize(t):t.label,a=`${o.id}-${n}`;r+=`\n <div class="domma-checkbox-option">\n <input type="checkbox" id="${a}" name="${e}[]" value="${n}" ${i.includes(n)?"checked":""} ${o.disabled?"disabled":""}>\n <label for="${a}">${s}</label>\n </div>\n `}return r+="</div>",r}_bindEvents(e){e.addEventListener("submit",e=>{e.preventDefault(),this.handleSubmit()}),e.addEventListener("blur",e=>{e.target.matches("input, select, textarea")&&(this.validateField(e.target.name),this.touched.add(e.target.name))},!0),e.addEventListener("change",e=>{if(e.target.matches("input, select, textarea")&&this.model){const t=this._getFieldValue(e.target);try{this.model.set(e.target.name,t)}catch(t){this.setFieldError(e.target.name,t.message)}}}),e.addEventListener("click",e=>{e.target.matches('[data-action="reset"]')&&(e.preventDefault(),this.reset())})}getData(){return this.model?this.model.get():this.data}setData(e){this.data={...this.data,...e},this.model&&this.model.set(e)}validate(){this.errors={};let e=!0;for(const t in this.schema){this.validateField(t)||(e=!1)}return e}validateField(e){const t=this.schema[e];if(!t)return!0;const o=this._getFieldValueByName(e);try{const n=this._validateFieldValue(e,o,t);if(!n.valid)return this.setFieldError(e,n.error),!1;if(this.model&&this.model._validateField){const t=this.model._validateField(e,o);if(!t.valid)return this.setFieldError(e,t.error),!1}return this.clearFieldError(e),!0}catch(t){return this.setFieldError(e,t.message),!1}}setFieldError(e,t){this.errors[e]=t;const o=document.querySelector(`[data-error-for="${e}"]`);o&&(o.textContent=t,o.style.display="block",o.parentElement.classList.add("has-error"))}clearFieldError(e){delete this.errors[e];const t=document.querySelector(`[data-error-for="${e}"]`);t&&(t.textContent="",t.style.display="none",t.parentElement.classList.remove("has-error"))}handleSubmit(){const e=this.validate(),t=this.getData();return e&&this.options.onSubmit?this.options.onSubmit(t,this):!e&&this.options.onValidationError&&this.options.onValidationError(this.errors,this),{isValid:e,data:t,errors:this.errors}}_getFieldValue(e){const{type:t,name:o}=e;if("checkbox"===t){if(o.endsWith("[]")){const e=document.querySelectorAll(`input[name="${o}"]:checked`);return Array.from(e).map(e=>e.value)}return e.checked}if("radio"===t){const e=document.querySelector(`input[name="${o}"]:checked`);return e?e.value:null}return"number"===t||"range"===t?""===e.value?null:Number(e.value):e.value}_getFieldValueByName(e){if(this.formElement){const t=this.formElement.querySelector(`[name="${e}"]`);if(t)return this._getFieldValue(t)}return this.model?this.model.get(e):this.data[e]}_validateFieldValue(e,t,o){if(o.required&&(null==t||""===t))return{valid:!1,error:`${o.label||e} is required`};if(null==t||""===t)return{valid:!0};if("email"===o.type&&t){if(!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t))return{valid:!1,error:"Please enter a valid email address"}}if("number"===o.type&&null!==t){const e=Number(t);if(isNaN(e))return{valid:!1,error:"Please enter a valid number"};if(void 0!==o.min&&e<o.min)return{valid:!1,error:`Value must be at least ${o.min}`};if(void 0!==o.max&&e>o.max)return{valid:!1,error:`Value must be no more than ${o.max}`}}if("string"==typeof t){if(o.minLength&&t.length<o.minLength)return{valid:!1,error:`Must be at least ${o.minLength} characters`};if(o.maxLength&&t.length>o.maxLength)return{valid:!1,error:`Must be no more than ${o.maxLength} characters`}}if(o.pattern&&"string"==typeof t&&!o.pattern.test(t))return{valid:!1,error:o.formConfig?.hint||"Invalid format"};if(o.validate&&"function"==typeof o.validate)try{const e=this.formElement?function(e){const t=new FormData(e),o={};for(const[e,n]of t.entries())o[e]?Array.isArray(o[e])?o[e].push(n):o[e]=[o[e],n]:o[e]=n;return e.querySelectorAll("input").forEach(e=>{"checkbox"!==e.type||e.checked?"checkbox"===e.type&&e.checked&&(o[e.name]="on"===e.value||e.value):o.hasOwnProperty(e.name)||(o[e.name]=!1)}),o}(this.formElement):this.data,n=o.validate(t,e);if(!0!==n)return{valid:!1,error:n||"Validation failed"}}catch(e){return{valid:!1,error:e.message||"Validation error"}}return{valid:!0}}}const I={create:(e,t={},o={})=>new V(e,t,o),render:(e,t,o={},n={})=>new V(t,o,n).renderTo(e),wizard(e,t={}){if(!t.schema)throw new Error("Wizard options must include a schema with steps array");const{schema:{steps:o=[]},data:n={},...s}=t,i=`wizard-${Date.now()}`;let r=0,a={...n},l=null;const h="string"==typeof e?document.querySelector(e):e;if(!h)throw new Error(`Wizard target element not found: ${e}`);if(!Array.isArray(o)||0===o.length)throw new Error("Wizard schema must contain a non-empty steps array");function c(e){const t={};return e.querySelectorAll("input, select, textarea").forEach(e=>{const{name:o,type:n,value:s,checked:i}=e;if(o)if("checkbox"===n)if(o.endsWith("[]")){const e=o.slice(0,-2);t[e]||(t[e]=[]),i&&t[e].push(s)}else t[o]=i;else"radio"===n?i&&(t[o]=s):"number"===n||"range"===n?t[o]=""===s?null:Number(s):"SELECT"===e.tagName&&e.hasAttribute("multiple")?t[o]=Array.from(e.selectedOptions).map(e=>e.value).filter(e=>e):t[o]=s}),t}function d(){if(h.innerHTML=function(e){const t=o[e],n=new V(t.fields,a,{...s,layout:t.layout||s.layout||"stacked",showSubmitButton:!1}),r=0===e,l=e===o.length-1;return`\n <div id="${i}" class="wizard">\n <div class="wizard-step active card" data-step="${e}">\n <div class="card-header wizard-header">\n <div class="wizard-progress mb-3">\n <div class="wizard-progress-bar" style="width: ${(e+1)/o.length*100}%"></div>\n </div>\n <div class="wizard-step-info">\n <h5 class="wizard-step-title card-title mb-2">${t.title}</h5>\n ${t.description?`<p class="wizard-step-description card-subtitle text-muted mb-2">${t.description}</p>`:""}\n <small class="text-muted">Step ${e+1} of ${o.length}</small>\n </div>\n </div>\n <div class="card-body wizard-content">\n ${n.render()}\n </div>\n <div class="card-footer wizard-nav d-flex justify-content-between">\n <button type="button" class="btn btn-secondary wizard-prev" ${r?'style="visibility: hidden;"':""}>\n ${s.prevText||"Previous"}\n </button>\n <button type="button" class="btn btn-primary wizard-${l?"submit":"next"}">\n ${l?s.finishText||"Finish":s.nextText||"Next"}\n </button>\n </div>\n </div>\n </div>\n `}(r),l=h.querySelector(`#${i}`),!l)return;const e=l.querySelector("form");if(e){new V(o[r].fields,a,{...s,showSubmitButton:!1})._bindEvents(e)}const t=l.querySelector(".wizard-prev"),n=l.querySelector(".wizard-next"),u=l.querySelector(".wizard-submit");t&&t.addEventListener("click",e=>{e.preventDefault(),r>0&&(s.onStepChange&&s.onStepChange(r-1,a),r--,d())}),n&&n.addEventListener("click",t=>{t.preventDefault();const n=c(e);Object.assign(a,n);const i=new V(o[r].fields,a,{...s,showSubmitButton:!1});i.formElement=e,i.setData(a);const l=i.validate();s.onValidation&&s.onValidation(l,i.errors||[],r),l&&r<o.length-1&&(s.onStepChange&&s.onStepChange(r+1,a),r++,d())}),u&&u.addEventListener("click",async t=>{t.preventDefault();const n=c(e);Object.assign(a,n);const i=new V(o[r].fields,a,{...s,showSubmitButton:!1});i.formElement=e,i.setData(a);const l=i.validate();if(s.onValidation&&s.onValidation(l,i.errors||[],r),l&&s.onSubmit)try{await s.onSubmit(a,i)}catch(e){s.onError&&s.onError(e,a,i)}})}return o.forEach((e,t)=>{if(e.title||(e.title=`Step ${t+1}`),!e.fields)throw new Error(`Step ${t} is missing fields array`)}),d(),{nextStep:()=>{r<o.length-1&&(s.onStepChange&&s.onStepChange(r+1,a),r++,d())},prevStep:()=>{r>0&&(s.onStepChange&&s.onStepChange(r-1,a),r--,d())},goToStep:e=>{e>=0&&e<o.length&&(s.onStepChange&&s.onStepChange(e,a),r=e,d())},getCurrentStep:()=>r,getStepData:()=>({...a}),setStepData:e=>{Object.assign(a,e),d()},validate:()=>{const e=l?.querySelector("form");if(e){const t=new V(o[r].fields,a,{...s,showSubmitButton:!1});return t.formElement=e,t.setData(a),t.validate()}return!0},getElement:()=>l}},modal(e,t={},o={}){const n=`form-${Date.now()}`;let s=null;const i=new V(e,t,{...o,showSubmitButton:!1,onSubmit:async(e,t)=>{if(o.onSave)try{await o.onSave(e,t),!1!==o.closeOnSave&&s&&s.close()}catch(n){o.onError&&o.onError(n,e,t)}}}),r=`\n <div class="modal" id="modal-${n}" style="display: none;">\n <div class="modal-header">\n <h3 class="modal-title">${o.title||"Form"}</h3>\n <button type="button" class="modal-close" data-action="close">×</button>\n </div>\n <div class="modal-body">\n ${i.render()}\n </div>\n <div class="modal-footer">\n <button type="button" class="btn btn-secondary" data-action="close">Cancel</button>\n <button type="button" class="btn btn-primary" data-action="save">${o.saveText||"Save"}</button>\n </div>\n </div>\n `,a=document.createElement("div");a.className="modal-backdrop",a.style.display="none";const l=document.createElement("div");l.innerHTML=r;const h=l.firstElementChild;return document.body.appendChild(a),document.body.appendChild(h),s={open(){a.style.display="block",h.style.display="block",setTimeout(()=>{a.classList.add("active"),h.classList.add("active")},10);const e=h.querySelector("form");e&&i._bindEvents(e),h.querySelectorAll('[data-action="close"]').forEach(e=>{e.addEventListener("click",()=>this.close())}),h.querySelector('[data-action="save"]').addEventListener("click",()=>{const e=h.querySelector("form");if(e){const t=new Event("submit",{cancelable:!0});e.dispatchEvent(t)}}),a.addEventListener("click",e=>{e.target===a&&this.close()})},close(){a.classList.remove("active"),h.classList.remove("active"),setTimeout(()=>{a.style.display="none",h.style.display="none",document.body.removeChild(a),document.body.removeChild(h)},300)},isOpen:()=>"none"!==h.style.display},s},crud(e){if(!e.schema)throw new Error("CRUD config must include a schema");if(!e.endpoint)throw new Error("CRUD config must include an API endpoint");const{schema:t,endpoint:o,tableSelector:s,title:i="Manage Items",primaryKey:r="id",displayField:a="name",headers:l={},onError:h=e=>console.error("CRUD Error:",e),onSuccess:c=e=>console.log("CRUD Success:",e)}=e;let d=null,u=[];return{async init(){await this.loadData(),this.createTable(),this.bindEvents()},async loadData(){try{window.Domma?.auth?.getApiUrl?.();const e=window.Domma?.auth?.token,t=e?{Authorization:`Bearer ${e}`}:{},n=await window.Domma.http.get(o,{headers:{...l,...t}});if(!n.success)throw new Error(n.message||"Failed to load data");u=n.data||[]}catch(e){throw h(e),e}},createTable(){if(!s)return;const e=Object.entries(t).map(([e,t])=>({key:e,title:t.label||(window.Domma?.utils||n).capitalize(e),sortable:!0,render:t.tableRender}));e.push({key:"actions",title:"Actions",sortable:!1,render:(e,t)=>{const o=window.Domma.icons.html("edit",{size:16,class:"inline-icon",colour:"#a5d8ff",attrs:{style:"margin-right: 4px;"}}),n=window.Domma.icons.html("trash",{size:16,class:"inline-icon",colour:"#ffacac",attrs:{style:"margin-right: 4px;"}});return`\n <div class="btn-group btn-group-sm">\n <button class="btn btn-primary crud-edit-btn" data-id="${t[r]}">\n ${o}\n Edit\n </button>\n <button class="btn btn-danger crud-delete-btn" data-id="${t[r]}">\n ${n}\n Delete\n </button>\n </div>\n `}}),d=window.Domma.tables.create(s,{data:u,columns:e,pagination:!0,pageSize:25,striped:!0,selectable:!0,selectionMode:"multiple",exportPanel:!0,exportOptions:["text","csv","excel","json"],columnToggle:!0,regexSearch:!0,persistSettings:!0,storageKey:`domma-crud-${i.toLowerCase().replace(/\s+/g,"-")}`}),this.initializeTableIcons()},initializeTableIcons(){setTimeout(()=>{document.querySelectorAll("[data-icon]").forEach(e=>{const t=e.getAttribute("data-icon");if(window.Domma&&window.Domma.icons&&window.Domma.icons.render){const o=window.Domma.icons.render(t,{size:16,class:"inline-icon"});o&&(e.innerHTML="",e.appendChild(o))}})},100)},bindEvents(){const e=document.querySelector(".crud-add-btn");e&&e.addEventListener("click",()=>this.create()),document.addEventListener("click",e=>{if(e.target.matches(".crud-edit-btn")){const t=e.target.getAttribute("data-id");this.edit(t)}}),document.addEventListener("click",e=>{if(e.target.matches(".crud-delete-btn")){const t=e.target.getAttribute("data-id");this.delete(t)}});const t=document.querySelector(".crud-refresh-btn");t&&t.addEventListener("click",()=>this.refresh())},async create(){I.modal(t,{},{title:`Create New ${i.slice(7)}`,size:"xl",saveText:"Create",showSubmitButton:!1,onSave:async e=>{try{window.Domma?.auth?.getApiUrl?.();const t=window.Domma?.auth?.token,n=t?{Authorization:`Bearer ${t}`}:{},s=await window.Domma.http.post(o,e,{headers:{...l,...n}});if(!s.success)throw new Error(s.message||"Failed to create item");c("Item created successfully"),await this.refresh()}catch(e){throw h(e),e}}}).open()},async edit(e){const n=u.find(t=>t[r]==e);if(!n)return void h(new Error("Item not found"));I.modal(t,n,{title:`Edit ${n[a]||"Item"}`,size:"xl",saveText:"Update",showSubmitButton:!1,onSave:async t=>{try{window.Domma?.auth?.getApiUrl?.();const n=window.Domma?.auth?.token,s=n?{Authorization:`Bearer ${n}`}:{},i=await window.Domma.http.put(`${o}/${e}`,t,{headers:{...l,...s}});if(!i.success)throw new Error(i.message||"Failed to update item");c("Item updated successfully"),await this.refresh()}catch(e){throw h(e),e}}}).open()},async delete(e){const t=u.find(t=>t[r]==e);if(!t)return void h(new Error("Item not found"));if(await window.Domma.elements.confirm(`Are you sure you want to delete "${t[a]||"this item"}"?\n\nThis action cannot be undone.`,{title:"Confirm Delete",confirmText:"Delete",cancelText:"Cancel",type:"warning"}))try{window.Domma?.auth?.getApiUrl?.();const t=window.Domma?.auth?.token,n=t?{Authorization:`Bearer ${t}`}:{},s=await window.Domma.http.delete(`${o}/${e}`,{headers:{...l,...n}});if(!s.success)throw new Error(s.message||"Failed to delete item");c("Item deleted successfully"),await this.refresh()}catch(e){h(e)}},async refresh(){try{await this.loadData(),d&&(d.setData(u),this.initializeTableIcons())}catch(e){}},getData:()=>[...u],getTable:()=>d,addItem:e=>{u.push(e),d&&d.setData(u)},updateItem:(e,t)=>{const o=u.findIndex(t=>t[r]==e);-1!==o&&(u[o]={...u[o],...t},d&&d.setData(u))},removeItem:e=>{const t=u.findIndex(t=>t[r]==e);-1!==t&&(u.splice(t,1),d&&d.setData(u))}}}},O={_configs:new Map,_components:new Map,_eventHandlers:new Map,process(e){e&&"object"==typeof e&&Object.keys(e).forEach(o=>{const s=e[o];this._configs.set(o,n.cloneDeep(s));const i=t(o);if(s.component){const e=this.initComponent(o,s.component,s.options||{});e&&this._components.set(o,e)}s.initial&&this.applyProperties(i,s.initial),s.events&&this.bindEvents(o,s.events,!0)})},update(e,o){const s=this._configs.get(e);if(!s)return this.process({[e]:o}),this._configs.get(e);const i=n.merge({},s,o);this._configs.set(e,i);const r=t(e);if(o.options&&this._components.has(e)){const t=this._components.get(e);t&&"function"==typeof t.setOptions&&t.setOptions(o.options)}return o.initial&&this.applyProperties(r,o.initial),o.events&&this.updateEvents(e,o.events),i},config(e){if(!e){const e={};return this._configs.forEach((t,o)=>{e[o]=t}),e}return this._configs.get(e)||null},reset(e){if(!e){return void Array.from(this._configs.keys()).forEach(e=>this.reset(e))}const t=this._components.get(e);t&&"function"==typeof t.destroy&&t.destroy(),this._components.delete(e),this.unbindEvents(e),this._configs.delete(e)},initComponent(e,t,o){const n={card:W.card,modal:W.modal,tabs:W.tabs,accordion:W.accordion,tooltip:W.tooltip,carousel:W.carousel,dropdown:W.dropdown,badge:W.badge,cookieConsent:W.cookieConsent,backToTop:W.backToTop,buttonGroup:W.buttonGroup,loader:W.loader,breadcrumbs:W.breadcrumbs,navbar:W.navbar,sidebar:W.sidebar,footer:W.footer,notification:W.notification,timer:W.timer,alarm:W.alarm,autocomplete:W.autocomplete,pillbox:W.pillbox,form:I.create}[t];if(n){if("form"===t){if(!o.schema)return console.error("Forms component requires a schema option"),null;const t=n(o.schema,o.data||{},o);return t.renderTo(e),t}return n.call(W,e,o)}console.warn(`Unknown component type: ${t}`)},applyProperties(e,t){Object.keys(t).forEach(o=>{"css"===o?e.css(t[o]):"text"===o?e.text(t[o]):"html"===o?e.html(t[o]):"addClass"===o?e.addClass(t[o]):"removeClass"===o?e.removeClass(t[o]):"toggleClass"===o?e.toggleClass(t[o]):"attr"===o&&Object.keys(t[o]).forEach(n=>{e.attr(n,t[o][n])})})},bindEvents(e,o,n=!1){const s=t(e);n&&!this._eventHandlers.has(e)&&this._eventHandlers.set(e,new Map),Object.keys(o).forEach(t=>{const i=o[t],r=e=>this.executeActions(e,i);s.on(t,r),n&&this._eventHandlers.get(e).set(t,r)})},unbindEvents(e){const o=this._eventHandlers.get(e);if(!o)return;const n=t(e);o.forEach((e,t)=>{n.off(t,e)}),this._eventHandlers.delete(e)},updateEvents(e,o){const n=this._eventHandlers.get(e),s=t(e);n&&Object.keys(o).forEach(e=>{n.has(e)&&(s.off(e,n.get(e)),n.delete(e))}),this.bindEvents(e,o,!0)},executeActions(e,o){if("function"==typeof o)return void o.call(e.target,e,t(e.target));const n=Array.isArray(o)?o:[o],s=t(e.target);n.forEach(o=>{if("function"==typeof o)return void o.call(e.target,e,s);const n=o.target?t(o.target):s;o.css&&n.css(o.css),o.text&&n.text(o.text),o.html&&n.html(o.html),o.addClass&&n.addClass(o.addClass),o.removeClass&&n.removeClass(o.removeClass),o.toggleClass&&n.toggleClass(o.toggleClass),o.log&&console.log(o.log)})}},N=1e3,q=6e4,P=36e5,F=864e5,R=6048e5,K=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],U=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],Y=["January","February","March","April","May","June","July","August","September","October","November","December"],J=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];class Q{constructor(e){e instanceof Q?this._date=new Date(e._date):e instanceof Date?this._date=new Date(e):this._date="string"==typeof e||"number"==typeof e?new Date(e):null==e?new Date:new Date(e)}add(e,t){const o=this._normalizeUnit(t),n=this._date;return"years"===o?n.setFullYear(n.getFullYear()+e):"months"===o?n.setMonth(n.getMonth()+e):"weeks"===o?n.setDate(n.getDate()+7*e):"days"===o?n.setDate(n.getDate()+e):"hours"===o?n.setHours(n.getHours()+e):"minutes"===o?n.setMinutes(n.getMinutes()+e):"seconds"===o?n.setSeconds(n.getSeconds()+e):"milliseconds"===o&&n.setMilliseconds(n.getMilliseconds()+e),this}subtract(e,t){return this.add(-e,t)}startOf(e){const t=this._normalizeUnit(e),o=this._date;return"years"===t||"year"===t?(o.setMonth(0,1),o.setHours(0,0,0,0)):"months"===t||"month"===t?(o.setDate(1),o.setHours(0,0,0,0)):"weeks"===t||"week"===t?(o.setDate(o.getDate()-o.getDay()),o.setHours(0,0,0,0)):"days"===t||"day"===t?o.setHours(0,0,0,0):"hours"===t||"hour"===t?o.setMinutes(0,0,0):"minutes"===t||"minute"===t?o.setSeconds(0,0):"seconds"!==t&&"second"!==t||o.setMilliseconds(0),this}endOf(e){const t=this._normalizeUnit(e),o=this._date;return"years"===t||"year"===t?(o.setMonth(11,31),o.setHours(23,59,59,999)):"months"===t||"month"===t?(o.setMonth(o.getMonth()+1,0),o.setHours(23,59,59,999)):"weeks"===t||"week"===t?(o.setDate(o.getDate()+(6-o.getDay())),o.setHours(23,59,59,999)):"days"===t||"day"===t?o.setHours(23,59,59,999):"hours"===t||"hour"===t?o.setMinutes(59,59,999):"minutes"===t||"minute"===t?o.setSeconds(59,999):"seconds"!==t&&"second"!==t||o.setMilliseconds(999),this}set(e,t){const o=this._normalizeUnit(e),n=this._date;return"years"===o||"year"===o?n.setFullYear(t):"months"===o||"month"===o?n.setMonth(t):"days"===o||"day"===o||"date"===o?n.setDate(t):"hours"===o||"hour"===o?n.setHours(t):"minutes"===o||"minute"===o?n.setMinutes(t):"seconds"===o||"second"===o?n.setSeconds(t):"milliseconds"!==o&&"millisecond"!==o||n.setMilliseconds(t),this}get(e){if(!e)return this._date;const t=this._normalizeUnit(e),o=this._date;return"years"===t||"year"===t?o.getFullYear():"months"===t||"month"===t?o.getMonth():"days"===t||"day"===t?o.getDay():"date"===t?o.getDate():"hours"===t||"hour"===t?o.getHours():"minutes"===t||"minute"===t?o.getMinutes():"seconds"===t||"second"===t?o.getSeconds():"milliseconds"===t||"millisecond"===t?o.getMilliseconds():this._date}year(){return this._date.getFullYear()}month(){return this._date.getMonth()}date(){return this._date.getDate()}day(){return this._date.getDay()}hour(){return this._date.getHours()}minute(){return this._date.getMinutes()}second(){return this._date.getSeconds()}millisecond(){return this._date.getMilliseconds()}dayOfYear(){const e=new Date(this._date.getFullYear(),0,0),t=this._date-e;return Math.floor(t/864e5)}week(){const e=new Date(this._date.getFullYear(),0,1),t=this._date-e;return Math.ceil(t/6048e5+e.getDay()/7)}quarter(){return Math.floor(this._date.getMonth()/3)+1}unix(){return Math.floor(this._date.getTime()/1e3)}valueOf(){return this._date.getTime()}format(e="YYYY-MM-DD HH:mm:ss"){const t=this._date,o=t.getFullYear(),n=t.getMonth(),s=t.getDate(),i=t.getDay(),r=t.getHours(),a=t.getMinutes(),l=t.getSeconds(),h=t.getMilliseconds(),c=r%12||12,d=(e,t=2)=>String(e).padStart(t,"0"),u={YYYY:o,YY:String(o).slice(-2),MMMM:Y[n],MMM:J[n],MM:d(n+1),M:n+1,dddd:K[i],ddd:U[i],DD:d(s),D:s,HH:d(r),H:r,hh:d(c),h:c,mm:d(a),m:a,ss:d(l),s:l,SSS:d(h,3),A:r<12?"AM":"PM",a:r<12?"am":"pm"},p=Object.keys(u).sort((e,t)=>t.length-e.length),m=new RegExp(p.join("|"),"g");return e.replace(m,e=>u[e])}toISOString(){return this._date.toISOString()}toDate(){return new Date(this._date)}toString(){return this._date.toString()}fromNow(e){const t=e?new Q(e)._date:new Date,o=this._date.getTime()-t.getTime(),n=Math.abs(o),s=o<0;let i,r;return n<q?"just now":(n<P?(i=Math.floor(n/q),r=1===i?"minute":"minutes"):n<F?(i=Math.floor(n/P),r=1===i?"hour":"hours"):n<R?(i=Math.floor(n/F),r=1===i?"day":"days"):n<30*F?(i=Math.floor(n/R),r=1===i?"week":"weeks"):n<365*F?(i=Math.floor(n/(30*F)),r=1===i?"month":"months"):(i=Math.floor(n/(365*F)),r=1===i?"year":"years"),s?`${i} ${r} ago`:`in ${i} ${r}`)}to(e){const t=new Q(e)._date.getTime()-this._date.getTime(),o=Math.abs(t),n=t>0;let s,i;return o<q?"just now":(o<P?(s=Math.floor(o/q),i=1===s?"minute":"minutes"):o<F?(s=Math.floor(o/P),i=1===s?"hour":"hours"):o<R?(s=Math.floor(o/F),i=1===s?"day":"days"):o<30*F?(s=Math.floor(o/R),i=1===s?"week":"weeks"):o<365*F?(s=Math.floor(o/(30*F)),i=1===s?"month":"months"):(s=Math.floor(o/(365*F)),i=1===s?"year":"years"),n?`in ${s} ${i}`:`${s} ${i} ago`)}isBefore(e,t){const o=new Q(e);return t?this.clone().endOf(t).valueOf()<o.clone().startOf(t).valueOf():this._date.getTime()<o._date.getTime()}isAfter(e,t){const o=new Q(e);return t?this.clone().startOf(t).valueOf()>o.clone().endOf(t).valueOf():this._date.getTime()>o._date.getTime()}isSame(e,t){const o=new Q(e);if(!t)return this._date.getTime()===o._date.getTime();const n=this.clone().startOf(t).valueOf(),s=this.clone().endOf(t).valueOf(),i=o.valueOf();return i>=n&&i<=s}isBetween(e,t,o,n="()"){const s=new Q(e),i=new Q(t);let r,a,l;o?(r=s.clone().startOf(o).valueOf(),a=i.clone().endOf(o).valueOf(),l=this.clone().startOf(o).valueOf()):(r=s.valueOf(),a=i.valueOf(),l=this.valueOf());const h="["===n[0],c="]"===n[1];return(h?l>=r:l>r)&&(c?l<=a:l<a)}diff(e,t="milliseconds",o=!1){const n=new Q(e),s=this._date.getTime()-n._date.getTime(),i=this._normalizeUnit(t);let r;return r="milliseconds"===i?s:"seconds"===i?s/N:"minutes"===i?s/q:"hours"===i?s/P:"days"===i?s/F:"weeks"===i?s/R:"months"===i?this._monthDiff(n):"years"===i?this._monthDiff(n)/12:s,o?r:Math.floor(r)}_monthDiff(e){const t=this._date,o=e._date;return 12*(t.getFullYear()-o.getFullYear())+(t.getMonth()-o.getMonth())}isValid(){return!isNaN(this._date.getTime())}isLeapYear(){const e=this._date.getFullYear();return e%4==0&&e%100!=0||e%400==0}daysInMonth(){return new Date(this._date.getFullYear(),this._date.getMonth()+1,0).getDate()}clone(){return new Q(this._date)}_normalizeUnit(e){if(!e)return e;const t=String(e).toLowerCase().trim();return"year"===t?"years":"month"===t?"months":"week"===t?"weeks":"day"===t?"days":"hour"===t?"hours":"minute"===t?"minutes":"second"===t?"seconds":"millisecond"===t?"milliseconds":t}}const Z=function(e){return new Q(e)};Object.assign(Z,{now:()=>Date.now(),parse(e,t){if(!t)return new Q(e);const o={YYYY:{regex:"(\\d{4})",setter:"year"},YY:{regex:"(\\d{2})",setter:"year",transform:e=>2e3+parseInt(e)},MM:{regex:"(\\d{2})",setter:"month",transform:e=>parseInt(e)-1},M:{regex:"(\\d{1,2})",setter:"month",transform:e=>parseInt(e)-1},DD:{regex:"(\\d{2})",setter:"date"},D:{regex:"(\\d{1,2})",setter:"date"},HH:{regex:"(\\d{2})",setter:"hour"},H:{regex:"(\\d{1,2})",setter:"hour"},mm:{regex:"(\\d{2})",setter:"minute"},m:{regex:"(\\d{1,2})",setter:"minute"},ss:{regex:"(\\d{2})",setter:"second"},s:{regex:"(\\d{1,2})",setter:"second"}};let n=t;const s=[],i=Object.keys(o).sort((e,t)=>t.length-e.length);for(const e of i)if(t.includes(e)){-1!==n.indexOf(e)&&(n=n.replace(e,o[e].regex),s.push({token:e,...o[e]}))}n=n.replace(/[-\/\\^$*+?.()|[\]{}]/g,e=>"("===e||")"===e?e:"\\"+e);try{const t=new RegExp("^"+n+"$"),o=e.match(t);if(!o)return new Q(NaN);const i=new Q;i.set("hour",0).set("minute",0).set("second",0).set("millisecond",0);for(let e=0;e<s.length;e++){let t=parseInt(o[e+1]);s[e].transform&&(t=s[e].transform(o[e+1])),i.set(s[e].setter,t)}return i}catch(e){return new Q(NaN)}},isValid:e=>new Q(e).isValid(),min(...e){const t=e.flat().map(e=>new Q(e));let o=t[0];for(let e=1;e<t.length;e++)t[e].valueOf()<o.valueOf()&&(o=t[e]);return o},max(...e){const t=e.flat().map(e=>new Q(e));let o=t[0];for(let e=1;e<t.length;e++)t[e].valueOf()>o.valueOf()&&(o=t[e]);return o},tokens:{YYYY:"Full year (2025)",YY:"Short year (25)",MM:"Month 01-12",M:"Month 1-12",DD:"Day 01-31",D:"Day 1-31",HH:"Hour 00-23",H:"Hour 0-23",hh:"Hour 01-12",h:"Hour 1-12",mm:"Minute 00-59",m:"Minute 0-59",ss:"Second 00-59",s:"Second 0-59",SSS:"Milliseconds",A:"AM/PM",a:"am/pm",ddd:"Day name short (Mon)",dddd:"Day name full (Monday)",MMM:"Month name short (Jan)",MMMM:"Month name full (January)"}});const G={"arrow-up":{viewBox:"0 0 24 24",path:"M12 19V5M5 12l7-7 7 7",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"arrow-down":{viewBox:"0 0 24 24",path:"M12 5v14M19 12l-7 7-7-7",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"arrow-left":{viewBox:"0 0 24 24",path:"M19 12H5M12 19l-7-7 7-7",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"arrow-right":{viewBox:"0 0 24 24",path:"M5 12h14M12 5l7 7-7 7",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"arrow-up-left":{viewBox:"0 0 24 24",path:"M17 17L7 7M7 17V7h10",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"arrow-up-right":{viewBox:"0 0 24 24",path:"M7 17L17 7M7 7h10v10",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"arrow-down-left":{viewBox:"0 0 24 24",path:"M17 7L7 17M17 17H7V7",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"arrow-down-right":{viewBox:"0 0 24 24",path:"M7 7l10 10M17 7v10H7",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},menu:{viewBox:"0 0 24 24",paths:["M3 6h18","M3 12h18","M3 18h18"],stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round"},"menu-alt":{viewBox:"0 0 24 24",paths:["M3 6h18","M3 12h12","M3 18h18"],stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round"},"dots-horizontal":{viewBox:"0 0 24 24",paths:["M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0","M19 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0","M5 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"],fill:"currentColor"},"dots-vertical":{viewBox:"0 0 24 24",paths:["M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0","M12 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0","M12 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"],fill:"currentColor"},grid:{viewBox:"0 0 24 24",path:"M3 3h7v7H3zM14 3h7v7h-7zM14 14h7v7h-7zM3 14h7v7H3z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},list:{viewBox:"0 0 24 24",paths:["M8 6h13","M8 12h13","M8 18h13","M3 6h.01","M3 12h.01","M3 18h.01"],stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},columns:{viewBox:"0 0 24 24",path:"M12 3v18M3 3h18v18H3V3z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},layout:{viewBox:"0 0 24 24",path:"M4 3h16a1 1 0 011 1v16a1 1 0 01-1 1H4a1 1 0 01-1-1V4a1 1 0 011-1zM9 21V9m12-6H3",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},close:{viewBox:"0 0 24 24",path:"M18 6L6 18M6 6l12 12",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},plus:{viewBox:"0 0 24 24",path:"M12 5v14M5 12h14",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},minus:{viewBox:"0 0 24 24",path:"M5 12h14",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},search:{viewBox:"0 0 24 24",path:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},refresh:{viewBox:"0 0 24 24",path:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},edit:{viewBox:"0 0 24 24",path:"M11 4H4a2 2 0 00-2 2v14a2 2 0 002 2h14a2 2 0 002-2v-7M18.5 2.5a2.121 2.121 0 013 3L12 15l-4 1 1-4 9.5-9.5z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},trash:{viewBox:"0 0 24 24",path:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},filter:{viewBox:"0 0 24 24",path:"M3 4a1 1 0 011-1h16a1 1 0 011 1v2.586a1 1 0 01-.293.707l-6.414 6.414a1 1 0 00-.293.707V17l-4 4v-6.586a1 1 0 00-.293-.707L3.293 7.293A1 1 0 013 6.586V4z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},sort:{viewBox:"0 0 24 24",paths:["M3 6h7","M3 12h5","M3 18h3","M16 6l4 4-4 4","M20 10H10"],stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},home:{viewBox:"0 0 24 24",path:"M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},user:{viewBox:"0 0 24 24",path:"M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},users:{viewBox:"0 0 24 24",path:"M17 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2M9 11a4 4 0 100-8 4 4 0 000 8zM23 21v-2a4 4 0 00-3-3.87M16 3.13a4 4 0 010 7.75",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},settings:{viewBox:"0 0 24 24",path:"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065zM15 12a3 3 0 11-6 0 3 3 0 016 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},cog:{viewBox:"0 0 24 24",path:"M12 6V4m0 2a2 2 0 100 4m0-4a2 2 0 110 4m-6 8a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4m6 6v10m6-2a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},tool:{viewBox:"0 0 24 24",path:"M14.7 6.3a1 1 0 000 1.4l1.6 1.6a1 1 0 001.4 0l3.77-3.77a6 6 0 01-7.94 7.94l-6.91 6.91a2.12 2.12 0 01-3-3l6.91-6.91a6 6 0 017.94-7.94l-3.76 3.76z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},eye:{viewBox:"0 0 24 24",path:"M15 12a3 3 0 11-6 0 3 3 0 016 0z M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"eye-off":{viewBox:"0 0 24 24",path:"M13.875 18.825A10.05 10.05 0 0112 19c-4.478 0-8.268-2.943-9.543-7a9.97 9.97 0 011.563-3.029m5.858.908a3 3 0 114.243 4.243M9.878 9.878l4.242 4.242M9.88 9.88l-3.29-3.29m7.532 7.532l3.29 3.29M3 3l3.59 3.59m0 0A9.953 9.953 0 0112 5c4.478 0 8.268 2.943 9.543 7a10.025 10.025 0 01-4.132 5.411m0 0L21 21",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},lock:{viewBox:"0 0 24 24",path:"M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},unlock:{viewBox:"0 0 24 24",path:"M8 11V7a4 4 0 118 0m-4 8v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},clock:{viewBox:"0 0 24 24",path:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},calendar:{viewBox:"0 0 24 24",path:"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},star:{viewBox:"0 0 24 24",path:"M11.049 2.927c.3-.921 1.603-.921 1.902 0l1.519 4.674a1 1 0 00.95.69h4.915c.969 0 1.371 1.24.588 1.81l-3.976 2.888a1 1 0 00-.363 1.118l1.518 4.674c.3.922-.755 1.688-1.538 1.118l-3.976-2.888a1 1 0 00-1.176 0l-3.976 2.888c-.783.57-1.838-.197-1.538-1.118l1.518-4.674a1 1 0 00-.363-1.118l-3.976-2.888c-.784-.57-.38-1.81.588-1.81h4.914a1 1 0 00.951-.69l1.519-4.674z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"star-filled":{viewBox:"0 0 24 24",path:"M11.049 2.927c.3-.921 1.603-.921 1.902 0l1.519 4.674a1 1 0 00.95.69h4.915c.969 0 1.371 1.24.588 1.81l-3.976 2.888a1 1 0 00-.363 1.118l1.518 4.674c.3.922-.755 1.688-1.538 1.118l-3.976-2.888a1 1 0 00-1.176 0l-3.976 2.888c-.783.57-1.838-.197-1.538-1.118l1.518-4.674a1 1 0 00-.363-1.118l-3.976-2.888c-.784-.57-.38-1.81.588-1.81h4.914a1 1 0 00.951-.69l1.519-4.674z",fill:"currentColor"},sun:{viewBox:"0 0 24 24",path:"M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},moon:{viewBox:"0 0 24 24",path:"M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},globe:{viewBox:"0 0 24 24",path:"M21 12a9 9 0 01-9 9m9-9a9 9 0 00-9-9m9 9H3m9 9a9 9 0 01-9-9m9 9c1.657 0 3-4.03 3-9s-1.343-9-3-9m0 18c-1.657 0-3-4.03-3-9s1.343-9 3-9m-9 9a9 9 0 019-9",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},map:{viewBox:"0 0 24 24",path:"M9 20l-5.447-2.724A1 1 0 013 16.382V5.618a1 1 0 011.447-.894L9 7m0 13l6-3m-6 3V7m6 10l4.553 2.276A1 1 0 0021 18.382V7.618a1 1 0 00-.553-.894L15 4m0 13V4m0 0L9 7",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},pin:{viewBox:"0 0 24 24",path:"M17.657 16.657L13.414 20.9a1.998 1.998 0 01-2.827 0l-4.244-4.243a8 8 0 1111.314 0z M15 11a3 3 0 11-6 0 3 3 0 016 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},feather:{viewBox:"0 0 24 24",path:"M20.24 12.24a6 6 0 00-8.49-8.49L5 10.5V19h8.5zM16 8L2 22M17.5 15H9",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},palette:{viewBox:"0 0 24 24",path:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10c.93 0 1.68-.75 1.68-1.68 0-.43-.16-.84-.44-1.13-.27-.29-.43-.7-.43-1.13 0-.93.76-1.69 1.69-1.69h1.98c3.03 0 5.52-2.49 5.52-5.52C22 6.48 17.52 2 12 2zm-5.5 9c-.83 0-1.5-.67-1.5-1.5S5.67 8 6.5 8 8 8.67 8 9.5 7.33 11 6.5 11zm3-4C8.67 7 8 6.33 8 5.5S8.67 4 9.5 4s1.5.67 1.5 1.5S10.33 7 9.5 7zm5 0c-.83 0-1.5-.67-1.5-1.5S13.67 4 14.5 4s1.5.67 1.5 1.5S15.33 7 14.5 7zm3 4c-.83 0-1.5-.67-1.5-1.5S16.67 8 17.5 8s1.5.67 1.5 1.5-.67 1.5-1.5 1.5z",fill:"currentColor"},type:{viewBox:"0 0 24 24",path:"M4 7V4h16v3M9 20h6M12 4v16",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},square:{viewBox:"0 0 24 24",path:"M5 3h14a2 2 0 012 2v14a2 2 0 01-2 2H5a2 2 0 01-2-2V5a2 2 0 012-2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"mouse-pointer":{viewBox:"0 0 24 24",path:"M3 3l7.07 16.97 2.51-7.39 7.39-2.51L3 3z M13 13l6 6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"refresh-cw":{viewBox:"0 0 24 24",path:"M23 4v6h-6M1 20v-6h6M3.51 9a9 9 0 0114.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0020.49 15",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},sync:{viewBox:"0 0 24 24",path:"M1 4v6h6m16 10v-6h-6M2 20l6-6M22 4l-6 6M9 12l2 2 4-4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},gauge:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 0110 10c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2z M8 12l4 4 4-4M12 16V8",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"map-pin":{viewBox:"0 0 24 24",path:"M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0118 0z M12 13a3 3 0 100-6 3 3 0 000 6z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"help-circle":{viewBox:"0 0 24 24",path:"M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10z M9.09 9a3 3 0 015.83 1c0 2-3 3-3 3 M12 17h.01",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}},X={mail:{viewBox:"0 0 24 24",path:"M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"mail-open":{viewBox:"0 0 24 24",path:"M3 19V9a2 2 0 012-2h.93a2 2 0 001.664-.89l.812-1.22A2 2 0 0110.07 4h3.86a2 2 0 011.664.89l.812 1.22A2 2 0 0018.07 7H19a2 2 0 012 2v10a2 2 0 01-2 2H5a2 2 0 01-2-2z M3 9l9 6 9-6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},inbox:{viewBox:"0 0 24 24",path:"M20 13V6a2 2 0 00-2-2H6a2 2 0 00-2 2v7m16 0v5a2 2 0 01-2 2H6a2 2 0 01-2-2v-5m16 0h-2.586a1 1 0 00-.707.293l-2.414 2.414a1 1 0 01-.707.293h-3.172a1 1 0 01-.707-.293l-2.414-2.414A1 1 0 006.586 13H4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},send:{viewBox:"0 0 24 24",path:"M22 2L11 13M22 2l-7 20-4-9-9-4 20-7z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},phone:{viewBox:"0 0 24 24",path:"M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21l-2.257 1.13a11.042 11.042 0 005.516 5.516l1.13-2.257a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"phone-incoming":{viewBox:"0 0 24 24",path:"M14.5 2v6m0 0h6m-6 0l7-7M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21l-2.257 1.13a11.042 11.042 0 005.516 5.516l1.13-2.257a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"phone-outgoing":{viewBox:"0 0 24 24",path:"M21.5 2h-6m6 0v6m0-6l-7 7M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21l-2.257 1.13a11.042 11.042 0 005.516 5.516l1.13-2.257a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"phone-off":{viewBox:"0 0 24 24",path:"M16.5 10.5l5.5-5.5M22 5l-5.5 5.5M10.68 13.31a16 16 0 003.41 2.6l1.27-1.27a2 2 0 012.11-.45 12.84 12.84 0 002.81.7 2 2 0 011.72 2v3a2 2 0 01-2.18 2 19.79 19.79 0 01-8.63-3.07 19.42 19.42 0 01-6-6 19.79 19.79 0 01-3.07-8.67A2 2 0 014.11 2h3a2 2 0 012 1.72 12.84 12.84 0 00.7 2.81 2 2 0 01-.45 2.11L8.09 9.91",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},chat:{viewBox:"0 0 24 24",path:"M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"chat-alt":{viewBox:"0 0 24 24",path:"M17 8h2a2 2 0 012 2v6a2 2 0 01-2 2h-2v4l-4-4H9a1.994 1.994 0 01-1.414-.586m0 0L11 14h4a2 2 0 002-2V6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2v4l.586-.586z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"message-circle":{viewBox:"0 0 24 24",path:"M21 11.5a8.38 8.38 0 01-.9 3.8 8.5 8.5 0 01-7.6 4.7 8.38 8.38 0 01-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 01-.9-3.8 8.5 8.5 0 014.7-7.6 8.38 8.38 0 013.8-.9h.5a8.48 8.48 0 018 8v.5z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"message-square":{viewBox:"0 0 24 24",path:"M21 15a2 2 0 01-2 2H7l-4 4V5a2 2 0 012-2h14a2 2 0 012 2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},bell:{viewBox:"0 0 24 24",path:"M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"bell-off":{viewBox:"0 0 24 24",path:"M13.73 21a2 2 0 01-3.46 0M18.63 13A17.89 17.89 0 0118 8M6.26 6.26A5.86 5.86 0 006 8c0 7-3 9-3 9h14M18 8a6 6 0 00-9.33-5M1 1l22 22",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},notification:{viewBox:"0 0 24 24",path:"M12 22c1.1 0 2-.9 2-2h-4c0 1.1.9 2 2 2zm6-6v-5c0-3.07-1.63-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.64 5.36 6 7.92 6 11v5l-2 2v1h16v-1l-2-2zm-2 1H8v-6c0-2.48 1.51-4.5 4-4.5s4 2.02 4 4.5v6z",fill:"currentColor"},"at-sign":{viewBox:"0 0 24 24",path:"M16 12a4 4 0 10-8 0 4 4 0 008 0zm0 0v1.5a2.5 2.5 0 005 0V12a9 9 0 10-9 9",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},paperclip:{viewBox:"0 0 24 24",path:"M21.44 11.05l-9.19 9.19a6 6 0 01-8.49-8.49l9.19-9.19a4 4 0 015.66 5.66l-9.2 9.19a2 2 0 01-2.83-2.83l8.49-8.48",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},rss:{viewBox:"0 0 24 24",path:"M4 11a9 9 0 919 9M4 4a16 16 0 0116 16M5 20a1 1 0 100-2 1 1 0 000 2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},wifi:{viewBox:"0 0 24 24",path:"M12 20h.01M2 8.82a15 15 0 0120 0M5 12.859a10 10 0 0114 0M8.5 16.429a5 5 0 017 0",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"wifi-off":{viewBox:"0 0 24 24",path:"M1 1l22 22M16.72 11.06A10.94 10.94 0 0119 12.55M5 12.55a10.94 10.94 0 015.17-2.39m3.64.46a10.88 10.88 0 012.69 1.92M8.5 16.429a5 5 0 013.5-1.43M12 20h.01",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}},ee={play:{viewBox:"0 0 24 24",path:"M14.752 11.168l-3.197-2.132A1 1 0 0010 9.87v4.263a1 1 0 001.555.832l3.197-2.132a1 1 0 000-1.664z M21 12a9 9 0 11-18 0 9 9 0 0118 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"play-filled":{viewBox:"0 0 24 24",path:"M5 3l14 9-14 9V3z",fill:"currentColor"},pause:{viewBox:"0 0 24 24",path:"M10 9v6m4-6v6m7-3a9 9 0 11-18 0 9 9 0 0118 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"pause-filled":{viewBox:"0 0 24 24",paths:["M6 4h4v16H6z","M14 4h4v16h-4z"],fill:"currentColor"},stop:{viewBox:"0 0 24 24",path:"M21 12a9 9 0 11-18 0 9 9 0 0118 0z M9 10a1 1 0 011-1h4a1 1 0 011 1v4a1 1 0 01-1 1h-4a1 1 0 01-1-1v-4z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"stop-filled":{viewBox:"0 0 24 24",path:"M6 6h12v12H6z",fill:"currentColor"},"skip-back":{viewBox:"0 0 24 24",path:"M19 20L9 12l10-8v16zM5 19V5",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"skip-forward":{viewBox:"0 0 24 24",path:"M5 4l10 8-10 8V4zM19 5v14",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},rewind:{viewBox:"0 0 24 24",path:"M11 19l-7-7 7-7m8 14l-7-7 7-7",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"fast-forward":{viewBox:"0 0 24 24",path:"M13 5l7 7-7 7M5 5l7 7-7 7",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},volume:{viewBox:"0 0 24 24",path:"M15.536 8.464a5 5 0 010 7.072M12 6l-4 4H4v4h4l4 4V6z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"volume-up":{viewBox:"0 0 24 24",path:"M15.536 8.464a5 5 0 010 7.072m2.828-9.9a9 9 0 010 12.728M12 6l-4 4H4v4h4l4 4V6z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"volume-down":{viewBox:"0 0 24 24",path:"M15.536 8.464a5 5 0 010 7.072M12 6l-4 4H4v4h4l4 4V6z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"volume-mute":{viewBox:"0 0 24 24",path:"M5.586 15H4a1 1 0 01-1-1v-4a1 1 0 011-1h1.586l4.707-4.707C10.923 3.663 12 4.109 12 5v14c0 .891-1.077 1.337-1.707.707L5.586 15z M17 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"volume-off":{viewBox:"0 0 24 24",path:"M12 6l-4 4H4v4h4l4 4V6z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},camera:{viewBox:"0 0 24 24",path:"M3 9a2 2 0 012-2h.93a2 2 0 001.664-.89l.812-1.22A2 2 0 0110.07 4h3.86a2 2 0 011.664.89l.812 1.22A2 2 0 0018.07 7H19a2 2 0 012 2v9a2 2 0 01-2 2H5a2 2 0 01-2-2V9z M15 13a3 3 0 11-6 0 3 3 0 016 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"camera-off":{viewBox:"0 0 24 24",path:"M1 1l22 22M21 21H3a2 2 0 01-2-2V8a2 2 0 012-2h3m3-3h6l2 3h4a2 2 0 012 2v9.34m-7.72-2.06a4 4 0 11-5.56-5.56",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},video:{viewBox:"0 0 24 24",path:"M15 10l4.553-2.276A1 1 0 0121 8.618v6.764a1 1 0 01-1.447.894L15 14M5 18h8a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v8a2 2 0 002 2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"video-off":{viewBox:"0 0 24 24",path:"M16 16v1a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h2m5.66 0H14a2 2 0 012 2v3.34l1 1L23 7v10M1 1l22 22",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},image:{viewBox:"0 0 24 24",path:"M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},images:{viewBox:"0 0 24 24",path:"M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z M9 3h12a2 2 0 012 2v12",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},music:{viewBox:"0 0 24 24",path:"M9 19V6l12-3v13M9 19c0 1.105-1.343 2-3 2s-3-.895-3-2 1.343-2 3-2 3 .895 3 2zm12-3c0 1.105-1.343 2-3 2s-3-.895-3-2 1.343-2 3-2 3 .895 3 2zM9 10l12-3",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},mic:{viewBox:"0 0 24 24",path:"M19 10v2a7 7 0 01-14 0v-2m7 9v4m-4 0h8m-4-13a3 3 0 00-3 3v4a3 3 0 006 0v-4a3 3 0 00-3-3z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"mic-off":{viewBox:"0 0 24 24",path:"M1 1l22 22m-2-2a10 10 0 01-11 2.955M12 19v4m-4 0h8M9 9v3a3 3 0 005.12 2.12M15 9.34V4a3 3 0 00-5.94-.6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},headphones:{viewBox:"0 0 24 24",path:"M3 18v-6a9 9 0 0118 0v6M21 19a2 2 0 01-2 2h-1a2 2 0 01-2-2v-3a2 2 0 012-2h3zM3 19a2 2 0 002 2h1a2 2 0 002-2v-3a2 2 0 00-2-2H3z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},radio:{viewBox:"0 0 24 24",path:"M12 14m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0 M16.24 7.76a6 6 0 010 8.49m-8.48-.01a6 6 0 010-8.49m11.31-2.82a10 10 0 010 14.14m-14.14 0a10 10 0 010-14.14",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},film:{viewBox:"0 0 24 24",path:"M7 4v16M17 4v16M3 8h4m10 0h4M3 12h18M3 16h4m10 0h4M4 20h16a1 1 0 001-1V5a1 1 0 00-1-1H4a1 1 0 00-1 1v14a1 1 0 001 1z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},tv:{viewBox:"0 0 24 24",path:"M20 7H4a2 2 0 00-2 2v10a2 2 0 002 2h16a2 2 0 002-2V9a2 2 0 00-2-2zM17 3l-5 4-5-4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},cast:{viewBox:"0 0 24 24",path:"M2 16.1A5 5 0 015.9 20M2 12.05A9 9 0 019.95 20M2 8V6a2 2 0 012-2h16a2 2 0 012 2v12a2 2 0 01-2 2h-6M2 20h.01",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},maximize:{viewBox:"0 0 24 24",path:"M8 3H5a2 2 0 00-2 2v3m18 0V5a2 2 0 00-2-2h-3m0 18h3a2 2 0 002-2v-3M3 16v3a2 2 0 002 2h3",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},minimize:{viewBox:"0 0 24 24",path:"M8 3v3a2 2 0 01-2 2H3m18 0h-3a2 2 0 01-2-2V3m0 18v-3a2 2 0 012-2h3M3 16h3a2 2 0 012 2v3",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}},te={document:{viewBox:"0 0 24 24",path:"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"document-text":{viewBox:"0 0 24 24",path:"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z M14 2v6h6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"document-add":{viewBox:"0 0 24 24",path:"M9 13h6m-3-3v6m5 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"document-remove":{viewBox:"0 0 24 24",path:"M9 13h6m2 8H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"document-check":{viewBox:"0 0 24 24",path:"M9 12l2 2 4-4m2 11H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},folder:{viewBox:"0 0 24 24",path:"M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"folder-open":{viewBox:"0 0 24 24",path:"M5 19a2 2 0 01-2-2V7a2 2 0 012-2h4l2 2h6a2 2 0 012 2v1M5 19h14a2 2 0 002-2v-5a2 2 0 00-2-2H9a2 2 0 00-2 2v5a2 2 0 01-2 2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"folder-add":{viewBox:"0 0 24 24",path:"M9 13h6m-3-3v6M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"folder-remove":{viewBox:"0 0 24 24",path:"M9 13h6M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},download:{viewBox:"0 0 24 24",path:"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},upload:{viewBox:"0 0 24 24",path:"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-8l-4-4m0 0L8 8m4-4v12",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"cloud-download":{viewBox:"0 0 24 24",path:"M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M9 19l3 3m0 0l3-3m-3 3V10",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"cloud-upload":{viewBox:"0 0 24 24",path:"M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M15 13l-3-3m0 0l-3 3m3-3v12",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},cloud:{viewBox:"0 0 24 24",path:"M8 19c-3.314 0-6-2.462-6-5.5S4.686 8 8 8c.642-2.87 3.251-5 6.375-5C18.086 3 21 5.91 21 9.5a6.458 6.458 0 01-.705 2.945A4.5 4.5 0 0119 21H8z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},attachment:{viewBox:"0 0 24 24",path:"M15.172 7l-6.586 6.586a2 2 0 102.828 2.828l6.414-6.586a4 4 0 00-5.656-5.656l-6.415 6.585a6 6 0 108.486 8.486L20.5 13",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},copy:{viewBox:"0 0 24 24",path:"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},clipboard:{viewBox:"0 0 24 24",path:"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"clipboard-check":{viewBox:"0 0 24 24",path:"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"clipboard-list":{viewBox:"0 0 24 24",path:"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},save:{viewBox:"0 0 24 24",path:"M8 7H5a2 2 0 00-2 2v9a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-3m-1 4l-3 3m0 0l-3-3m3 3V4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},archive:{viewBox:"0 0 24 24",path:"M5 8h14M5 8a2 2 0 110-4h14a2 2 0 110 4M5 8v10a2 2 0 002 2h10a2 2 0 002-2V8m-9 4h4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"file-code":{viewBox:"0 0 24 24",path:"M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"file-zip":{viewBox:"0 0 24 24",path:"M17 21H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2zM10 3v4h1V3h-1zm1 4h-1v2h1V7zm-1 2v2h1V9h-1zm1 2h-1v2h1v-2zm-1 2v2h1v-2h-1z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},database:{viewBox:"0 0 24 24",path:"M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4m0 5c0 2.21-3.582 4-8 4s-8-1.79-8-4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},server:{viewBox:"0 0 24 24",path:"M5 12h14M5 12a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v4a2 2 0 01-2 2M5 12a2 2 0 00-2 2v4a2 2 0 002 2h14a2 2 0 002-2v-4a2 2 0 00-2-2m-2-4h.01M17 16h.01",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"hard-drive":{viewBox:"0 0 24 24",path:"M22 12H2M5.45 5.11L2 12v6a2 2 0 002 2h16a2 2 0 002-2v-6l-3.45-6.89A2 2 0 0016.76 4H7.24a2 2 0 00-1.79 1.11zM6 16h.01M10 16h.01",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"file-text":{viewBox:"0 0 24 24",path:"M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8l-6-6zM14 2v6h6M16 13H8M16 17H8M10 9H8",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},book:{viewBox:"0 0 24 24",path:"M4 19.5A2.5 2.5 0 016.5 17H20M4 19.5A2.5 2.5 0 006.5 22H20v-5M6 3h14v16H6a2 2 0 01-2-2V5a2 2 0 012-2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"book-open":{viewBox:"0 0 24 24",path:"M2 3h6a4 4 0 014 4v14a3 3 0 00-3-3H2V3zM22 3h-6a4 4 0 00-4 4v14a3 3 0 013-3h7V3z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"book-closed":{viewBox:"0 0 24 24",path:"M4 19.5A2.5 2.5 0 016.5 17H20M4 19.5A2.5 2.5 0 006.5 22H20v-5M6 3h14v16H6a2 2 0 01-2-2V5a2 2 0 012-2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"folder-plus":{viewBox:"0 0 24 24",path:"M9 13h6m-3-3v6M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"folder-minus":{viewBox:"0 0 24 24",path:"M9 13h6M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}},oe={share:{viewBox:"0 0 24 24",path:"M8.684 13.342C8.886 12.938 9 12.482 9 12c0-.482-.114-.938-.316-1.342m0 2.684a3 3 0 110-2.684m0 2.684l6.632 3.316m-6.632-6l6.632-3.316m0 0a3 3 0 105.367-2.684 3 3 0 00-5.367 2.684zm0 9.316a3 3 0 105.368 2.684 3 3 0 00-5.368-2.684z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"share-alt":{viewBox:"0 0 24 24",path:"M4 12v8a2 2 0 002 2h12a2 2 0 002-2v-8M16 6l-4-4-4 4M12 2v13",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},heart:{viewBox:"0 0 24 24",path:"M4.318 6.318a4.5 4.5 0 000 6.364L12 20.364l7.682-7.682a4.5 4.5 0 00-6.364-6.364L12 7.636l-1.318-1.318a4.5 4.5 0 00-6.364 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"heart-filled":{viewBox:"0 0 24 24",path:"M4.318 6.318a4.5 4.5 0 000 6.364L12 20.364l7.682-7.682a4.5 4.5 0 00-6.364-6.364L12 7.636l-1.318-1.318a4.5 4.5 0 00-6.364 0z",fill:"currentColor"},bookmark:{viewBox:"0 0 24 24",path:"M5 5a2 2 0 012-2h10a2 2 0 012 2v16l-7-3.5L5 21V5z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"bookmark-filled":{viewBox:"0 0 24 24",path:"M5 5a2 2 0 012-2h10a2 2 0 012 2v16l-7-3.5L5 21V5z",fill:"currentColor"},"thumb-up":{viewBox:"0 0 24 24",path:"M14 10h4.764a2 2 0 011.789 2.894l-3.5 7A2 2 0 0115.263 21h-4.017c-.163 0-.326-.02-.485-.06L7 20m7-10V5a2 2 0 00-2-2h-.095c-.5 0-.905.405-.905.905 0 .714-.211 1.412-.608 2.006L7 11v9m7-10h-2M7 20H5a2 2 0 01-2-2v-6a2 2 0 012-2h2.5",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"thumb-down":{viewBox:"0 0 24 24",path:"M10 14H5.236a2 2 0 01-1.789-2.894l3.5-7A2 2 0 018.736 3h4.018a2 2 0 01.485.06l3.76.94m-7 10v5a2 2 0 002 2h.096c.5 0 .905-.405.905-.904 0-.715.211-1.413.608-2.008L17 13V4m-7 10h2m5-10h2a2 2 0 012 2v6a2 2 0 01-2 2h-2.5",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},comment:{viewBox:"0 0 24 24",path:"M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"user-add":{viewBox:"0 0 24 24",path:"M18 9v3m0 0v3m0-3h3m-3 0h-3m-2-5a4 4 0 11-8 0 4 4 0 018 0zM3 20a6 6 0 0112 0v1H3v-1z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"user-plus":{viewBox:"0 0 24 24",path:"M18 9v3m0 0v3m0-3h3m-3 0h-3m-2-5a4 4 0 11-8 0 4 4 0 018 0zM3 20a6 6 0 0112 0v1H3v-1z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"user-remove":{viewBox:"0 0 24 24",path:"M13 7a4 4 0 11-8 0 4 4 0 018 0zM9 14a6 6 0 00-6 6v1h12v-1a6 6 0 00-6-6zM21 12h-6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"user-group":{viewBox:"0 0 24 24",path:"M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0zm6 3a2 2 0 11-4 0 2 2 0 014 0zM7 10a2 2 0 11-4 0 2 2 0 014 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"emoji-happy":{viewBox:"0 0 24 24",path:"M14.828 14.828a4 4 0 01-5.656 0M9 10h.01M15 10h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"emoji-sad":{viewBox:"0 0 24 24",path:"M9.172 16.172a4 4 0 015.656 0M9 10h.01M15 10h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},flag:{viewBox:"0 0 24 24",path:"M3 21v-4m0 0V5a2 2 0 012-2h6.5l1 1H21l-3 6 3 6h-8.5l-1-1H5a2 2 0 00-2 2zm9-13.5V9",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},award:{viewBox:"0 0 24 24",path:"M9 12l2 2 4-4M7.835 4.697a3.42 3.42 0 001.946-.806 3.42 3.42 0 014.438 0 3.42 3.42 0 001.946.806 3.42 3.42 0 013.138 3.138 3.42 3.42 0 00.806 1.946 3.42 3.42 0 010 4.438 3.42 3.42 0 00-.806 1.946 3.42 3.42 0 01-3.138 3.138 3.42 3.42 0 00-1.946.806 3.42 3.42 0 01-4.438 0 3.42 3.42 0 00-1.946-.806 3.42 3.42 0 01-3.138-3.138 3.42 3.42 0 00-.806-1.946 3.42 3.42 0 010-4.438 3.42 3.42 0 00.806-1.946 3.42 3.42 0 013.138-3.138z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},trophy:{viewBox:"0 0 24 24",path:"M12 15V17M8 21H16M8 3H16V9C16 11.2091 14.2091 13 12 13C9.79086 13 8 11.2091 8 9V3ZM16 5H18C19.1046 5 20 5.89543 20 7V8C20 9.10457 19.1046 10 18 10H16M8 5H6C4.89543 5 4 5.89543 4 7V8C4 9.10457 4.89543 10 6 10H8M12 17V21",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},gift:{viewBox:"0 0 24 24",path:"M12 8V21M12 8H8.464C7.103 8 6 6.897 6 5.536C6 4.175 7.103 3 8.464 3C10.059 3 11.162 4.162 12 5.536M12 8H15.536C16.897 8 18 6.897 18 5.536C18 4.175 16.897 3 15.536 3C13.941 3 12.838 4.162 12 5.536M20 12V21H4V12M3 8H21V12H3V8Z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},sparkles:{viewBox:"0 0 24 24",path:"M5 3v4M3 5h4M6 17v4m-2-2h4m5-16l2.286 6.857L21 12l-5.714 2.143L13 21l-2.286-6.857L5 12l5.714-2.143L13 3z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},fire:{viewBox:"0 0 24 24",path:"M17.657 18.657A8 8 0 016.343 7.343S7 9 9 10c0-2 .5-5 2.986-7C14 5 16.09 5.777 17.656 7.343A7.975 7.975 0 0120 13a7.975 7.975 0 01-2.343 5.657z M9.879 16.121A3 3 0 1012.015 11L11 14H9c0 .768.293 1.536.879 2.121z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},github:{viewBox:"0 0 24 24",path:"M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z",fill:"currentColor"},twitter:{viewBox:"0 0 24 24",path:"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z",fill:"currentColor"},linkedin:{viewBox:"0 0 24 24",path:"M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 01-2.063-2.065 2.064 2.064 0 112.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z",fill:"currentColor"},youtube:{viewBox:"0 0 24 24",path:"M23.498 6.186a3.016 3.016 0 00-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 00.502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 002.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 002.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z",fill:"currentColor"},"share-2":{viewBox:"0 0 24 24",path:"M18 8a3 3 0 100-6 3 3 0 000 6zM6 15a3 3 0 100-6 3 3 0 000 6zM18 22a3 3 0 100-6 3 3 0 000 6zM8.59 13.51l6.83 3.98M15.41 6.51l-6.82 3.98",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}},ne={cart:{viewBox:"0 0 24 24",path:"M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"cart-add":{viewBox:"0 0 24 24",path:"M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0zm6-8v-2m0 0V7m0 2h2m-2 0H11",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"shopping-bag":{viewBox:"0 0 24 24",path:"M16 11V7a4 4 0 00-8 0v4M5 9h14l1 12H4L5 9z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},store:{viewBox:"0 0 24 24",path:"M3 3h18v4H3V3zM3 7v12a2 2 0 002 2h14a2 2 0 002-2V7M3 11h18M12 7v14M8 11v10M16 11v10",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"credit-card":{viewBox:"0 0 24 24",path:"M3 10h18M7 15h1m4 0h1m-7 4h12a3 3 0 003-3V8a3 3 0 00-3-3H6a3 3 0 00-3 3v8a3 3 0 003 3z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},wallet:{viewBox:"0 0 24 24",path:"M17 9V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-2m-5-3h9m0 0l-3-3m3 3l-3 3",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},cash:{viewBox:"0 0 24 24",path:"M17 9V7a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2m2 4h10a2 2 0 002-2v-6a2 2 0 00-2-2H9a2 2 0 00-2 2v6a2 2 0 002 2zm7-5a2 2 0 11-4 0 2 2 0 014 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"currency-dollar":{viewBox:"0 0 24 24",path:"M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1M21 12a9 9 0 11-18 0 9 9 0 0118 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"currency-pound":{viewBox:"0 0 24 24",path:"M15 9a3 3 0 00-3-3H9a3 3 0 00-3 3v6a3 3 0 003 3h6a3 3 0 003-3M9 12h6M21 12a9 9 0 11-18 0 9 9 0 0118 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"currency-euro":{viewBox:"0 0 24 24",path:"M15 9a3 3 0 00-3-3H9a3 3 0 00-3 3v6a3 3 0 003 3h3a3 3 0 003-3M7 10h5m-5 4h5M21 12a9 9 0 11-18 0 9 9 0 0118 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},tag:{viewBox:"0 0 24 24",path:"M7 7h.01M7 3h5c.512 0 1.024.195 1.414.586l7 7a2 2 0 010 2.828l-7 7a2 2 0 01-2.828 0l-7-7A1.994 1.994 0 013 12V7a4 4 0 014-4z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},tags:{viewBox:"0 0 24 24",path:"M7 7h.01M7 3h5c.512 0 1.024.195 1.414.586l7 7a2 2 0 010 2.828l-7 7a2 2 0 01-2.828 0l-7-7A1.994 1.994 0 013 12V7a4 4 0 014-4z M17 17l4.414-4.414a2 2 0 000-2.828L14 3",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},receipt:{viewBox:"0 0 24 24",path:"M9 14l6 0M9 10l6 0M9 18l3 0M5 21l1-2 1 2 1-2 1 2 1-2 1 2 1-2 1 2 1-2 1 2 1-2 1 2V3l-1 2-1-2-1 2-1-2-1 2-1-2-1 2-1-2-1 2-1-2-1 2-1-2v18z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},barcode:{viewBox:"0 0 24 24",path:"M5 7v10M8 7v10M11 7v10M14 7v10M19 7v10M17 7v10",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round"},qrcode:{viewBox:"0 0 24 24",path:"M3 3h6v6H3V3zM15 3h6v6h-6V3zM3 15h6v6H3v-6zM15 15h2v2h-2v-2zM19 15h2v2h-2v-2zM15 19h2v2h-2v-2zM19 19h2v2h-2v-2zM5 5h2v2H5V5zM17 5h2v2h-2V5zM5 17h2v2H5v-2zM12 3h1v4h-1V3zM12 9h1v3h-1V9zM3 12h4v1H3v-1zM9 12h3v1H9v-1zM12 14h1v3h-1v-3zM12 19h1v2h-1v-2z",fill:"currentColor"},percent:{viewBox:"0 0 24 24",path:"M9 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zM15 18a1.5 1.5 0 100-3 1.5 1.5 0 000 3zM19 5L5 19",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},package:{viewBox:"0 0 24 24",path:"M20 7l-8-4-8 4m16 0l-8 4m8-4v10l-8 4m0-10L4 7m8 4v10M4 7v10l8 4M9 4l3 1.5L15 4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},truck:{viewBox:"0 0 24 24",path:"M13 16V6a1 1 0 00-1-1H4a1 1 0 00-1 1v10a1 1 0 001 1h1m8-1a1 1 0 01-1 1H9m4-1V8a1 1 0 011-1h2.586a1 1 0 01.707.293l3.414 3.414a1 1 0 01.293.707V16a1 1 0 01-1 1h-1m-6-1a1 1 0 001 1h1M5 17a2 2 0 104 0m-4 0a2 2 0 114 0m6 0a2 2 0 104 0m-4 0a2 2 0 114 0",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},box:{viewBox:"0 0 24 24",path:"M12 3L2 8.5V15.5L12 21L22 15.5V8.5L12 3ZM12 12V21M12 12L2 7M12 12L22 7",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},shipping:{viewBox:"0 0 24 24",path:"M20 21v-2a4 4 0 00-4-4H8a4 4 0 00-4 4v2M4 7V4h16v3M4 7h16M8 4v3M16 4v3M12 11v4m-2-2h4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},calculator:{viewBox:"0 0 24 24",path:"M4 4a2 2 0 012-2h12a2 2 0 012 2v16a2 2 0 01-2 2H6a2 2 0 01-2-2V4zM8 6h8v4H8V6zM8 14h.01M12 14h.01M16 14h.01M8 18h.01M12 18h.01M16 18h.01",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},briefcase:{viewBox:"0 0 24 24",path:"M20 7H4a2 2 0 00-2 2v10a2 2 0 002 2h16a2 2 0 002-2V9a2 2 0 00-2-2zM16 21V5a2 2 0 00-2-2h-4a2 2 0 00-2 2v16",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}},se={check:{viewBox:"0 0 24 24",path:"M5 13l4 4L19 7",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"check-circle":{viewBox:"0 0 24 24",path:"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"check-circle-filled":{viewBox:"0 0 24 24",path:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z",fill:"currentColor"},"check-square":{viewBox:"0 0 24 24",path:"M9 11l3 3L22 4M21 12v7a2 2 0 01-2 2H5a2 2 0 01-2-2V5a2 2 0 012-2h11",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},x:{viewBox:"0 0 24 24",path:"M6 18L18 6M6 6l12 12",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"x-circle":{viewBox:"0 0 24 24",path:"M10 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2m7-2a9 9 0 11-18 0 9 9 0 0118 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"x-circle-filled":{viewBox:"0 0 24 24",path:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z",fill:"currentColor"},warning:{viewBox:"0 0 24 24",path:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"warning-filled":{viewBox:"0 0 24 24",path:"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z",fill:"currentColor"},"alert-warning":{viewBox:"0 0 24 24",path:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},info:{viewBox:"0 0 24 24",path:"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"info-filled":{viewBox:"0 0 24 24",path:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z",fill:"currentColor"},question:{viewBox:"0 0 24 24",path:"M8.228 9c.549-1.165 2.03-2 3.772-2 2.21 0 4 1.343 4 3 0 1.4-1.278 2.575-3.006 2.907-.542.104-.994.54-.994 1.093m0 3h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},exclamation:{viewBox:"0 0 24 24",path:"M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"alert-circle":{viewBox:"0 0 24 24",path:"M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},ban:{viewBox:"0 0 24 24",path:"M18.364 18.364A9 9 0 005.636 5.636m12.728 12.728A9 9 0 015.636 5.636m12.728 12.728L5.636 5.636",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},shield:{viewBox:"0 0 24 24",path:"M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"shield-check":{viewBox:"0 0 24 24",path:"M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"shield-x":{viewBox:"0 0 24 24",path:"M10 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2m5.618-6.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},spinner:{viewBox:"0 0 24 24",path:"M12 2v4m0 12v4m10-10h-4M6 12H2m15.364-5.364l-2.828 2.828M9.464 14.536l-2.828 2.828m11.728 0l-2.828-2.828M9.464 9.464L6.636 6.636",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},loading:{viewBox:"0 0 24 24",path:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z",fill:"currentColor"},loader:{viewBox:"0 0 24 24",path:"M12 2v4M12 18v4M4.93 4.93l2.83 2.83M16.24 16.24l2.83 2.83M2 12h4M18 12h4M4.93 19.07l2.83-2.83M16.24 7.76l2.83-2.83",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},circle:{viewBox:"0 0 24 24",path:"M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"circle-filled":{viewBox:"0 0 24 24",path:"M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10z",fill:"currentColor"},dot:{viewBox:"0 0 24 24",path:"M12 12m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0",fill:"currentColor"},badge:{viewBox:"0 0 24 24",path:"M9 12l2 2 4-4M7.835 4.697a3.42 3.42 0 001.946-.806 3.42 3.42 0 014.438 0 3.42 3.42 0 001.946.806 3.42 3.42 0 013.138 3.138 3.42 3.42 0 00.806 1.946 3.42 3.42 0 010 4.438 3.42 3.42 0 00-.806 1.946 3.42 3.42 0 01-3.138 3.138 3.42 3.42 0 00-1.946.806 3.42 3.42 0 01-4.438 0 3.42 3.42 0 00-1.946-.806 3.42 3.42 0 01-3.138-3.138 3.42 3.42 0 00-.806-1.946 3.42 3.42 0 010-4.438 3.42 3.42 0 00.806-1.946 3.42 3.42 0 013.138-3.138z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},zap:{viewBox:"0 0 24 24",path:"M13 10V3L4 14h7v7l9-11h-7z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},activity:{viewBox:"0 0 24 24",path:"M22 12h-4l-3 9L9 3l-3 9H2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},pulse:{viewBox:"0 0 24 24",path:"M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"trending-up":{viewBox:"0 0 24 24",path:"M23 6l-9.5 9.5-5-5L1 18M17 6h6v6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"trending-down":{viewBox:"0 0 24 24",path:"M23 18l-9.5-9.5-5 5L1 6M17 18h6v-6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}},ie={"chevron-up":{viewBox:"0 0 24 24",path:"M5 15l7-7 7 7",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"chevron-down":{viewBox:"0 0 24 24",path:"M19 9l-7 7-7-7",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"chevron-left":{viewBox:"0 0 24 24",path:"M15 19l-7-7 7-7",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"chevron-right":{viewBox:"0 0 24 24",path:"M9 5l7 7-7 7",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"chevrons-up":{viewBox:"0 0 24 24",path:"M17 11l-5-5-5 5M17 18l-5-5-5 5",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"chevrons-down":{viewBox:"0 0 24 24",path:"M7 13l5 5 5-5M7 6l5 5 5-5",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"chevrons-left":{viewBox:"0 0 24 24",path:"M11 17l-5-5 5-5M18 17l-5-5 5-5",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"chevrons-right":{viewBox:"0 0 24 24",path:"M13 7l5 5-5 5M6 7l5 5-5 5",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"external-link":{viewBox:"0 0 24 24",path:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},link:{viewBox:"0 0 24 24",path:"M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},unlink:{viewBox:"0 0 24 24",path:"M18.84 12.25l1.72-1.71h-.02a5.004 5.004 0 00-.12-7.07 5.006 5.006 0 00-6.95 0l-1.72 1.71M5.17 11.75l-1.71 1.71a5.004 5.004 0 00.12 7.07 5.006 5.006 0 006.95 0l1.71-1.71M8 2v3M2 8h3M16 22v-3M22 16h-3",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"corner-up-left":{viewBox:"0 0 24 24",path:"M9 14L4 9l5-5M20 20v-7a4 4 0 00-4-4H4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"corner-up-right":{viewBox:"0 0 24 24",path:"M15 14l5-5-5-5M4 20v-7a4 4 0 014-4h12",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"corner-down-left":{viewBox:"0 0 24 24",path:"M9 10L4 15l5 5M20 4v7a4 4 0 01-4 4H4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"corner-down-right":{viewBox:"0 0 24 24",path:"M15 10l5 5-5 5M4 4v7a4 4 0 004 4h12",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"rotate-cw":{viewBox:"0 0 24 24",path:"M23 4v6h-6M1 20v-6h6M3.51 9a9 9 0 0114.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0020.49 15",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"rotate-ccw":{viewBox:"0 0 24 24",path:"M1 4v6h6M23 20v-6h-6M20.49 9A9 9 0 005.64 5.64L1 10m22 4l-4.64 4.36A9 9 0 013.51 15",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},undo:{viewBox:"0 0 24 24",path:"M3 7v6h6M3 13l4.64-4.36A9 9 0 0121 12",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},redo:{viewBox:"0 0 24 24",path:"M21 7v6h-6M21 13l-4.64-4.36A9 9 0 003 12",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},move:{viewBox:"0 0 24 24",path:"M5 9l-3 3 3 3M9 5l3-3 3 3M15 19l-3 3-3-3M19 9l3 3-3 3M2 12h20M12 2v20",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},expand:{viewBox:"0 0 24 24",path:"M15 3h6v6M9 21H3v-6M21 3l-7 7M3 21l7-7",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},shrink:{viewBox:"0 0 24 24",path:"M4 14h6v6M20 10h-6V4M14 10l7-7M3 21l7-7",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"log-in":{viewBox:"0 0 24 24",path:"M15 3h4a2 2 0 012 2v14a2 2 0 01-2 2h-4M10 17l5-5-5-5M15 12H3",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"log-out":{viewBox:"0 0 24 24",path:"M9 21H5a2 2 0 01-2-2V5a2 2 0 012-2h4M16 17l5-5-5-5M21 12H9",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"sidebar-left":{viewBox:"0 0 24 24",path:"M4 4h16a2 2 0 012 2v12a2 2 0 01-2 2H4a2 2 0 01-2-2V6a2 2 0 012-2zM9 4v16",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"sidebar-right":{viewBox:"0 0 24 24",path:"M4 4h16a2 2 0 012 2v12a2 2 0 01-2 2H4a2 2 0 01-2-2V6a2 2 0 012-2zM15 4v16",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"panel-left":{viewBox:"0 0 24 24",path:"M3 3h18v18H3V3zM9 3v18",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"panel-right":{viewBox:"0 0 24 24",path:"M3 3h18v18H3V3zM15 3v18",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"panel-top":{viewBox:"0 0 24 24",path:"M3 3h18v18H3V3zM3 9h18",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"panel-bottom":{viewBox:"0 0 24 24",path:"M3 3h18v18H3V3zM3 15h18",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},layers:{viewBox:"0 0 24 24",path:"M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},layout:{viewBox:"0 0 24 24",path:"M4 4h16a2 2 0 012 2v12a2 2 0 01-2 2H4a2 2 0 01-2-2V6a2 2 0 012-2zM2 9h20M9 20V9",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},hash:{viewBox:"0 0 24 24",path:"M4 9h16M4 15h16M10 3L8 21M16 3l-2 18",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"more-horizontal":{viewBox:"0 0 24 24",path:"M12 12h.01M8 12h.01M16 12h.01",stroke:"currentColor",fill:"none",strokeWidth:3,strokeLinecap:"round",strokeLinejoin:"round"},"more-vertical":{viewBox:"0 0 24 24",path:"M12 12h.01M12 8h.01M12 16h.01",stroke:"currentColor",fill:"none",strokeWidth:3,strokeLinecap:"round",strokeLinejoin:"round"}},re={tree:{viewBox:"0 0 24 24",path:"M12 2l2 4h-1l2 4h-1.5l2.5 5h-2l3 6H7l3-6H8l2.5-5H9l2-4h-1l2-4zm-1 19h2v3h-2v-3z",stroke:"currentColor",fill:"none",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round"},"star-decoration":{viewBox:"0 0 24 24",path:"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z",stroke:"currentColor",fill:"none",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round"},snowflake:{viewBox:"0 0 24 24",paths:["M12 2v20M2 12h20","M4.93 4.93l14.14 14.14M19.07 4.93L4.93 19.07","M12 6l-2 2 2 2 2-2-2-2zM12 14l-2 2 2 2 2-2-2-2z","M6 12l2-2-2-2-2 2 2 2zM14 12l2 2 2-2-2-2-2 2z"],stroke:"currentColor",fill:"none",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round"},gift:{viewBox:"0 0 24 24",paths:["M20 12v10H4V12","M22 7H2v5h20V7z","M12 22V7","M12 7H7.5a2.5 2.5 0 0 1 0-5C11 2 12 7 12 7z","M12 7h4.5a2.5 2.5 0 0 0 0-5C13 2 12 7 12 7z"],stroke:"currentColor",fill:"none",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round"},"candy-cane":{viewBox:"0 0 24 24",path:"M14.5 3a4.5 4.5 0 0 0-4.5 4.5v13a.5.5 0 0 0 1 0V7.5a3.5 3.5 0 1 1 7 0v1a2.5 2.5 0 0 1-5 0v-.5",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},bauble:{viewBox:"0 0 24 24",paths:["M12 22a8 8 0 1 0 0-16 8 8 0 0 0 0 16z","M12 6V3","M9 3h6","M12 6a1 1 0 0 0 1-1V4a1 1 0 0 0-2 0v1a1 1 0 0 0 1 1z"],stroke:"currentColor",fill:"none",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round"},bells:{viewBox:"0 0 24 24",paths:["M9 18a5 5 0 0 1-5-5c0-2.76 2.24-5 5-5s5 2.24 5 5a5 5 0 0 1-5 5z","M15 18a5 5 0 0 1-5-5c0-2.76 2.24-5 5-5s5 2.24 5 5a5 5 0 0 1-5 5z","M7 8L5 4M17 8l2-4M9 8V5M15 8V5","M11 5h2"],stroke:"currentColor",fill:"none",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round"},holly:{viewBox:"0 0 24 24",paths:["M8 4c-2 2-3 5-1 8 1 2 3 3 5 3s4-1 5-3c2-3 1-6-1-8","M16 4c2 2 3 5 1 8-1 2-3 3-5 3s-4-1-5-3c-2-3-1-6 1-8","M10 17a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3z","M14 17a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3z","M12 19a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3z"],stroke:"currentColor",fill:"none",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round"},snowman:{viewBox:"0 0 24 24",paths:["M12 22a5 5 0 1 0 0-10 5 5 0 0 0 0 10z","M12 12a3 3 0 1 0 0-6 3 3 0 0 0 0 6z","M9 9h.01M15 9h.01","M10 10.5s.5 1 2 1 2-1 2-1","M7 2l3 3M17 2l-3 3M12 2v3","M5 15h2M17 15h2"],stroke:"currentColor",fill:"none",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round"},reindeer:{viewBox:"0 0 24 24",paths:["M12 22c-3 0-5-2-5-5 0-2 1-4 3-5l2-1 2 1c2 1 3 3 3 5 0 3-2 5-5 5z","M7 12c-2-1-3-3-3-5 0-1 .5-2 1-2s1 .5 1.5 1c.5.5 1 1.5 1.5 2","M17 12c2-1 3-3 3-5 0-1-.5-2-1-2s-1 .5-1.5 1c-.5.5-1 1.5-1.5 2","M4 5l1 2M3 7l2 1M20 5l-1 2M21 7l-2 1","M10 17h.01M14 17h.01","M12 19a1 1 0 1 0 0 2 1 1 0 0 0 0-2z"],stroke:"currentColor",fill:"none",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round"},sleigh:{viewBox:"0 0 24 24",paths:["M4 15h14c1 0 2 1 2 2v1H4v-3z","M6 15V8c0-1 1-2 2-2h8c1 0 2 1 2 2v7","M2 20c0-1 2-2 4-2h12c2 0 4 1 4 2","M3 18h1M20 18h1"],stroke:"currentColor",fill:"none",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round"},wreath:{viewBox:"0 0 24 24",paths:["M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10z","M12 18a6 6 0 1 0 0-12 6 6 0 0 0 0 12z","M12 2v2M12 20v2M2 12h2M20 12h2","M10 3l1 2M13 3l-1 2","M10 3h4"],stroke:"currentColor",fill:"none",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round"}},ae={sun:{viewBox:"0 0 24 24",path:"M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41M12 6a6 6 0 1 0 0 12 6 6 0 0 0 0-12z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},sunrise:{viewBox:"0 0 24 24",path:"M17 18a5 5 0 1 0-10 0M12 2v7M4.22 10.22l1.42 1.42M1 18h2M21 18h2M18.36 11.64l1.42-1.42M23 22H1M8 6l4-4 4 4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},sunset:{viewBox:"0 0 24 24",path:"M17 18a5 5 0 1 0-10 0M12 9v7M4.22 10.22l1.42 1.42M1 18h2M21 18h2M18.36 11.64l1.42-1.42M23 22H1M16 5l-4 4-4-4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},cloud:{viewBox:"0 0 24 24",path:"M18 10h-1.26A8 8 0 1 0 9 20h9a5 5 0 0 0 0-10z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"cloud-sun":{viewBox:"0 0 24 24",path:"M12 2v2M4.93 4.93l1.41 1.41M2 12h2M19 12a4 4 0 0 0-4-4h-.35A5.5 5.5 0 0 0 4 11a5 5 0 0 0 0 10h11a4 4 0 0 0 4-5v-4z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"cloud-off":{viewBox:"0 0 24 24",path:"M22.61 16.95A5 5 0 0 0 18 10h-1.26a8 8 0 0 0-7.05-6M5 5a8 8 0 0 0 4 15h9a5 5 0 0 0 1.7-.3M1 1l22 22",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},rain:{viewBox:"0 0 24 24",path:"M16 13v8M8 13v8M12 15v8M20 16.58A5 5 0 0 0 18 7h-1.26A8 8 0 1 0 4 15.25",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"cloud-rain":{viewBox:"0 0 24 24",path:"M16 13v8M8 13v8M12 15v8M20 16.58A5 5 0 0 0 18 7h-1.26A8 8 0 1 0 4 15.25",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"cloud-drizzle":{viewBox:"0 0 24 24",path:"M8 19v2M8 13v2M16 19v2M16 13v2M12 21v2M12 15v2M20 16.58A5 5 0 0 0 18 7h-1.26A8 8 0 1 0 4 15.25",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},snow:{viewBox:"0 0 24 24",path:"M20 17.58A5 5 0 0 0 18 8h-1.26A8 8 0 1 0 4 16.25M8 16h.01M8 20h.01M12 18h.01M12 22h.01M16 16h.01M16 20h.01",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},snowflake:{viewBox:"0 0 24 24",path:"M12 2v20M17.66 7l-11.32 10M20.54 12H3.46M17.66 17L6.34 7M12 2l3 3M12 2l-3 3M12 22l3-3M12 22l-3-3M2 12l3 3M2 12l3-3M22 12l-3 3M22 12l-3-3",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},wind:{viewBox:"0 0 24 24",path:"M9.59 4.59A2 2 0 1 1 11 8H2m10.59 11.41A2 2 0 1 0 14 16H2m15.73-8.27A2.5 2.5 0 1 1 19.5 12H2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"cloud-lightning":{viewBox:"0 0 24 24",path:"M19 16.9A5 5 0 0 0 18 7h-1.26a8 8 0 1 0-11.62 9M13 11l-4 6h6l-4 6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},lightning:{viewBox:"0 0 24 24",path:"M13 2L3 14h9l-1 8 10-12h-9l1-8z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},fog:{viewBox:"0 0 24 24",path:"M20 15h2M2 15h8M6 19h14M4 11h16M8 7h12",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},haze:{viewBox:"0 0 24 24",path:"M12 3v1M12 20v1M3 12h1M20 12h1M5.6 5.6l.7.7M17.7 17.7l.7.7M5.6 18.4l.7-.7M17.7 6.3l.7-.7M8 12a4 4 0 1 0 8 0 4 4 0 0 0-8 0",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},thermometer:{viewBox:"0 0 24 24",path:"M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"thermometer-sun":{viewBox:"0 0 24 24",path:"M12 9a4 4 0 0 0-2 7.5M12 3v2M5.6 5.6l1.4 1.4M3 12h2M5.6 18.4l1.4-1.4M12 14a2 2 0 1 0 0 4 2 2 0 0 0 0-4zM12 10V3M16 14.76V8a2 2 0 0 0-4 0v6.76",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},moon:{viewBox:"0 0 24 24",path:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"moon-star":{viewBox:"0 0 24 24",path:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9zM19 3v4M17 5h4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},umbrella:{viewBox:"0 0 24 24",path:"M23 12a11.05 11.05 0 0 0-22 0zm-5 7a3 3 0 0 1-6 0v-7",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},droplet:{viewBox:"0 0 24 24",path:"M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},droplets:{viewBox:"0 0 24 24",path:"M7 16.3c2.2 0 4-1.83 4-4.05 0-1.16-.57-2.26-1.71-3.19S7.29 6.75 7 5.3c-.29 1.45-1.14 2.84-2.29 3.76S3 11.1 3 12.25c0 2.22 1.8 4.05 4 4.05zM12.56 14.94c1.47 0 2.67-1.25 2.67-2.77 0-.8-.38-1.55-1.14-2.18-.76-.64-1.17-1.32-1.38-2.29-.21.97-.62 1.65-1.38 2.29-.76.63-1.14 1.38-1.14 2.18 0 1.52 1.19 2.77 2.67 2.77zM19.5 17.35c1.1 0 2-.93 2-2.08 0-.6-.29-1.17-.86-1.64-.57-.48-.88-1-.57-1.73-.31.73-.62 1.25-1.19 1.73-.57.47-.86 1.04-.86 1.64 0 1.15.9 2.08 2 2.08z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},rainbow:{viewBox:"0 0 24 24",path:"M22 17a10 10 0 0 0-20 0M18 17a6 6 0 0 0-12 0M14 17a2 2 0 0 0-4 0",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}},le={smartphone:{viewBox:"0 0 24 24",path:"M17 2H7a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2zM12 18h.01",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"phone-call":{viewBox:"0 0 24 24",path:"M15.05 5A5 5 0 0 1 19 8.95M15.05 1A9 9 0 0 1 23 8.94m-1 7.98v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"phone-off":{viewBox:"0 0 24 24",path:"M10.68 13.31a16 16 0 0 0 3.41 2.6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7 2 2 0 0 1 1.72 2v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.42 19.42 0 0 1-3.33-2.67m-2.67-3.34a19.79 19.79 0 0 1-3.07-8.63A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91M23 1L1 23",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},tablet:{viewBox:"0 0 24 24",path:"M18 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2zM12 18h.01",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"tablet-smartphone":{viewBox:"0 0 24 24",path:"M18 2H10a2 2 0 0 0-2 2v4M14 22h4a2 2 0 0 0 2-2V8M8 14H6a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2zM7 18h.01",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},laptop:{viewBox:"0 0 24 24",path:"M20 16V7a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v9m16 0H4m16 0l1.28 2.55a1 1 0 0 1-.9 1.45H3.62a1 1 0 0 1-.9-1.45L4 16",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},monitor:{viewBox:"0 0 24 24",path:"M20 3H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2zM8 21h8M12 17v4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},desktop:{viewBox:"0 0 24 24",path:"M20 3H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2zM8 21h8M12 17v4M2 12h20",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},tv:{viewBox:"0 0 24 24",path:"M20 7H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2zM17 2l-5 5-5-5",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"tv-minimal":{viewBox:"0 0 24 24",path:"M20 4H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},watch:{viewBox:"0 0 24 24",path:"M12 19a7 7 0 1 0 0-14 7 7 0 0 0 0 14zM12 9v3l1.5 1.5M16.51 17.35l-.35 3.83a2 2 0 0 1-2 1.82H9.83a2 2 0 0 1-2-1.82l-.35-3.83m.01-10.7l.35-3.83A2 2 0 0 1 9.83 1h4.35a2 2 0 0 1 2 1.82l.35 3.83",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},smartwatch:{viewBox:"0 0 24 24",path:"M18 8a6 6 0 0 0-12 0v8a6 6 0 0 0 12 0V8zM12 11v3M18 6l1-3H5l1 3M18 18l1 3H5l1-3",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},speaker:{viewBox:"0 0 24 24",path:"M18 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2zM12 14a2 2 0 1 0 0-4 2 2 0 0 0 0 4zM12 6h.01",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},headphones:{viewBox:"0 0 24 24",path:"M3 18v-6a9 9 0 0 1 18 0v6M21 19a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3zM3 19a2 2 0 0 0 2 2h1a2 2 0 0 0 2-2v-3a2 2 0 0 0-2-2H3z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},airpods:{viewBox:"0 0 24 24",path:"M5.5 4a2.5 2.5 0 0 0-2.5 2.5v5a2.5 2.5 0 0 0 5 0v-5A2.5 2.5 0 0 0 5.5 4zM18.5 4a2.5 2.5 0 0 0-2.5 2.5v5a2.5 2.5 0 0 0 5 0v-5A2.5 2.5 0 0 0 18.5 4zM5.5 14v6M18.5 14v6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},camera:{viewBox:"0 0 24 24",path:"M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2zM12 17a4 4 0 1 0 0-8 4 4 0 0 0 0 8z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},webcam:{viewBox:"0 0 24 24",path:"M12 14a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM12 14v8M8 22h8",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},keyboard:{viewBox:"0 0 24 24",path:"M20 5H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2zM6 9h.01M10 9h.01M14 9h.01M18 9h.01M6 13h.01M18 13h.01M8 17h8",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},mouse:{viewBox:"0 0 24 24",path:"M6 3h12a3 3 0 0 1 3 3v12a3 3 0 0 1-3 3H6a3 3 0 0 1-3-3V6a3 3 0 0 1 3-3zM12 3v6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},gamepad:{viewBox:"0 0 24 24",path:"M6 12h4M8 10v4M15 13h.01M18 11h.01M17.32 5H6.68a4 4 0 0 0-3.978 3.59l-.891 9a4 4 0 0 0 6.9 3.31l1.29-1.29 1.29 1.29a4 4 0 0 0 6.9-3.31l-.891-9A4 4 0 0 0 17.32 5z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},joystick:{viewBox:"0 0 24 24",path:"M21 17a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-2zM6 15v-2M12 15V5m0 0l4 4m-4-4L8 9",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"hard-drive":{viewBox:"0 0 24 24",path:"M22 12H2M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11zM6 16h.01M10 16h.01",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},usb:{viewBox:"0 0 24 24",path:"M16 4h2a2 2 0 0 1 2 2v1M6 4h2a2 2 0 0 1 2 2v1M10 16v-5a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2zM20 16v-5a2 2 0 0 0-2-2h-2a2 2 0 0 0-2 2v5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2zM12 12v8",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},router:{viewBox:"0 0 24 24",path:"M20 14H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2zM6 18h.01M12 7a5 5 0 0 0-5 5M19 7a5 5 0 0 0-5-5M12 7V2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},printer:{viewBox:"0 0 24 24",path:"M6 9V2h12v7M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2M6 14h12v8H6z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},cpu:{viewBox:"0 0 24 24",path:"M18 4H6a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2zM9 9h6v6H9zM9 1v3M15 1v3M9 20v3M15 20v3M20 9h3M20 14h3M1 9h3M1 14h3",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},battery:{viewBox:"0 0 24 24",path:"M17 6H5a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2zM23 13v-2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"battery-charging":{viewBox:"0 0 24 24",path:"M5 18H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3.19M15 6h2a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-3.19M23 13v-2M11 6l-4 6h6l-4 6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},plug:{viewBox:"0 0 24 24",path:"M12 22v-5M9 8V2M15 8V2M18 8H6a2 2 0 0 0-2 2v1a8 8 0 0 0 16 0v-1a2 2 0 0 0-2-2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}},he={"chart-line":{viewBox:"0 0 24 24",path:"M3 3v18h18M18 9l-5 5-4-4-3 3",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"chart-bar":{viewBox:"0 0 24 24",path:"M12 20V10M6 20v-4M18 20V4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"chart-bar-horizontal":{viewBox:"0 0 24 24",path:"M4 12h10M4 6h4M4 18h14",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"chart-pie":{viewBox:"0 0 24 24",path:"M21.21 15.89A10 10 0 1 1 8 2.83M22 12A10 10 0 0 0 12 2v10z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"chart-area":{viewBox:"0 0 24 24",path:"M3 3v18h18M7 12l5-5 4 4 5-5v12H7z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"chart-candlestick":{viewBox:"0 0 24 24",path:"M9 5v4M9 11v8M15 5v8M15 17v2M7 9h4v2H7zM13 13h4v4h-4z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"trending-up":{viewBox:"0 0 24 24",path:"M23 6l-9.5 9.5-5-5L1 18",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"trending-down":{viewBox:"0 0 24 24",path:"M23 18l-9.5-9.5-5 5L1 6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"trending-neutral":{viewBox:"0 0 24 24",path:"M22 12H2M18 8l4 4-4 4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},wallet:{viewBox:"0 0 24 24",path:"M21 12V7a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-1M21 12H17a2 2 0 0 1 0-4h4M17 12h.01",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"credit-card":{viewBox:"0 0 24 24",path:"M21 4H3a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h18a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2zM1 10h22",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},banknote:{viewBox:"0 0 24 24",path:"M2 8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8zM12 14a2 2 0 1 0 0-4 2 2 0 0 0 0 4zM6 10h.01M18 14h.01",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},coins:{viewBox:"0 0 24 24",path:"M8 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM8 12c2.2 0 4 1.8 4 4s-1.8 4-4 4-4-1.8-4-4 1.8-4 4-4zM16 8a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM16 8c2.2 0 4 1.8 4 4s-1.8 4-4 4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"dollar-sign":{viewBox:"0 0 24 24",path:"M12 1v22M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"pound-sign":{viewBox:"0 0 24 24",path:"M18 5H9a4 4 0 0 0-4 4v3a4 4 0 0 0 4 4h3M5 12h10M18 19H7",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"euro-sign":{viewBox:"0 0 24 24",path:"M4 10h12M4 14h12M17 5a8 8 0 0 0-14 5.5 8 8 0 0 0 14 5.5",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},bitcoin:{viewBox:"0 0 24 24",path:"M11.767 19.089c4.924.868 6.14-6.025 1.216-6.894m-1.216 6.894L5.86 18.047m5.908 1.042-.347 1.97m1.563-8.864c4.924.869 6.14-6.025 1.215-6.893m-1.215 6.893-3.94-.694m5.155-6.2L8.29 4.26m5.908 1.042.348-1.97M7.48 20.364l3.126-17.727",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},bank:{viewBox:"0 0 24 24",path:"M3 21h18M4 21V10M8 21V10M12 21V10M16 21V10M20 21V10M12 3L2 8h20z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},vault:{viewBox:"0 0 24 24",path:"M3 5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5zM12 12m-3 0a3 3 0 1 0 6 0 3 3 0 1 0-6 0M7 12h2M15 12h2M12 9V7M12 17v-2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"piggy-bank":{viewBox:"0 0 24 24",path:"M19 5c-1.5 0-2.8 1.4-3 2-3.5-1.5-11-.3-11 5 0 1.8 0 3 2 4.5V20h4v-2h3v2h4v-4c1-.5 1.7-1 2-2h2v-4h-2c0-1-.5-1.5-1-2zM2 9v1c0 1.1.9 2 2 2h1",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},safe:{viewBox:"0 0 24 24",path:"M4 4h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2zM12 12m-2 0a2 2 0 1 0 4 0 2 2 0 1 0-4 0M16 8h.01M16 16h.01",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},receipt:{viewBox:"0 0 24 24",path:"M4 2v20l3-2 3 2 3-2 3 2 3-2 3 2V2l-3 2-3-2-3 2-3-2-3 2-3-2zM8 10h8M8 14h4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},invoice:{viewBox:"0 0 24 24",path:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8zM14 2v6h6M8 13h8M8 17h8M8 9h2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},briefcase:{viewBox:"0 0 24 24",path:"M20 7H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2zM16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},percent:{viewBox:"0 0 24 24",path:"M19 5L5 19M6.5 9a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5zM17.5 20a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},calculator:{viewBox:"0 0 24 24",path:"M18 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2zM8 6h8M8 10h.01M12 10h.01M16 10h.01M8 14h.01M12 14h.01M16 14h.01M8 18h.01M12 18h.01M16 18h.01",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},growth:{viewBox:"0 0 24 24",path:"M12 20V12M12 12l-4 4M12 12l4 4M8 20h8M3 8l4-4 4 4 5-5 5 5",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},investment:{viewBox:"0 0 24 24",path:"M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6M2 12h4M18 12h4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},scale:{viewBox:"0 0 24 24",path:"M12 3v18M3 6l3 10a6 6 0 0 0 6 0L15 6M9 6l6 0M21 6l-3 10a6 6 0 0 1-6 0",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}},ce={"heart-pulse":{viewBox:"0 0 24 24",path:"M19.5 12.572l-7.5 7.428-7.5-7.428A5 5 0 1 1 12 5.006a5 5 0 1 1 7.5 7.566zM3 12h4l2-4 4 8 2-4h6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},activity:{viewBox:"0 0 24 24",path:"M22 12h-4l-3 9L9 3l-3 9H2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},pulse:{viewBox:"0 0 24 24",path:"M3 12h4l2-7 4 14 2-7h6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},pill:{viewBox:"0 0 24 24",path:"M10.5 20.5l9-9a4.95 4.95 0 0 0-7-7l-9 9a4.95 4.95 0 0 0 7 7zM8.5 8.5l7 7",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"pill-bottle":{viewBox:"0 0 24 24",path:"M6 3h12v5H6zM5 8h14a1 1 0 0 1 1 1v11a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V9a1 1 0 0 1 1-1zM10 14h4M12 12v4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},capsule:{viewBox:"0 0 24 24",path:"M8 8a4 4 0 0 1 8 0v8a4 4 0 0 1-8 0V8zM8 12h8",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},syringe:{viewBox:"0 0 24 24",path:"M18 2l4 4M15 5l6 6M8 6l10 10-4 4L4 10zM2 22l6-6M7 11l2 2M11 7l2 2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},vaccine:{viewBox:"0 0 24 24",path:"M14 2l4 4M8 8l8 8M3 17l4 4M6.5 6.5L20 20M12 12l2.5-2.5",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},stethoscope:{viewBox:"0 0 24 24",path:"M4.8 2.3A.3.3 0 1 0 5 2H4a2 2 0 0 0-2 2v5a6 6 0 0 0 6 6v0a6 6 0 0 0 6-6V4a2 2 0 0 0-2-2h-1a.2.2 0 1 0 .3.3M8 15v1a6 6 0 0 0 6 6v0a6 6 0 0 0 6-6v-4M22 10a2 2 0 1 0-4 0 2 2 0 0 0 4 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"thermometer-medical":{viewBox:"0 0 24 24",path:"M14 4v10.54a4 4 0 1 1-4 0V4a2 2 0 0 1 4 0zM12 14v2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},bandage:{viewBox:"0 0 24 24",path:"M18 2l4 4-14 14-4-4zM10.5 7.5l6 6M8.5 9.5l1 1M14.5 15.5l1 1M12.5 11.5l1 1",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},hospital:{viewBox:"0 0 24 24",path:"M3 21h18M5 21V7l7-4 7 4v14M9 21v-6h6v6M10 9h4M12 7v4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},ambulance:{viewBox:"0 0 24 24",path:"M10 10H6M8 8v4M15 21a2 2 0 1 0 0-4 2 2 0 0 0 0 4zM7 21a2 2 0 1 0 0-4 2 2 0 0 0 0 4zM21 15V8a2 2 0 0 0-2-2h-3l-2-3H6a2 2 0 0 0-2 2v10M21 9h-4a2 2 0 0 0-2 2v4h6z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"first-aid":{viewBox:"0 0 24 24",path:"M20 6H4a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2zM9 12h6M12 9v6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"medical-cross":{viewBox:"0 0 24 24",path:"M8 3h8v6h5v6h-5v6H8v-6H3V9h5z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},dna:{viewBox:"0 0 24 24",path:"M2 15c6.667-6 13.333 0 20-6M9 22c1.798-1.998 2.518-3.995 2.807-5.993M15 2c-1.798 1.998-2.518 3.995-2.807 5.993M2 9c6.667 6 13.333 0 20 6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},microscope:{viewBox:"0 0 24 24",path:"M6 18h8M3 22h18M14 22a7 7 0 1 0 0-14M9 14h.01M9 6v8M6 6h6l-3-4z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"test-tube":{viewBox:"0 0 24 24",path:"M14.5 2v17.5c0 1.4-1.1 2.5-2.5 2.5s-2.5-1.1-2.5-2.5V2M7 2h10M8.5 14h7",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},brain:{viewBox:"0 0 24 24",path:"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18ZM12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18ZM12 5v13",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},lungs:{viewBox:"0 0 24 24",path:"M6.081 20C2.477 20 2 15.5 2 12.5S4 6 4 6s2-1 2-3M17.92 20c3.603 0 4.08-4.5 4.08-7.5S20 6 20 6s-2-1-2-3M12 3v17M12 12c-4 0-7-2-7-2M12 12c4 0 7-2 7-2M12 16c-4 0-7-2-7-2M12 16c4 0 7-2 7-2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},bone:{viewBox:"0 0 24 24",path:"M17 10c.7-.7 1.69 0 2.5 0a2.5 2.5 0 1 0 0-5 .5.5 0 0 1-.5-.5 2.5 2.5 0 1 0-5 0c0 .81.7 1.8 0 2.5l-7 7c-.7.7-1.69 0-2.5 0a2.5 2.5 0 0 0 0 5c.28 0 .5.22.5.5a2.5 2.5 0 1 0 5 0c0-.81-.7-1.8 0-2.5Z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},tooth:{viewBox:"0 0 24 24",path:"M12 2C7 2 4 5 4 8c0 5 1 8 2 10 .5 1 1 4 2.5 4s1.5-2 3.5-2 2 2 3.5 2 2-3 2.5-4c1-2 2-5 2-10 0-3-3-6-8-6z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"eye-medical":{viewBox:"0 0 24 24",path:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8zM12 9v6M9 12h6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},wheelchair:{viewBox:"0 0 24 24",path:"M12 10a2 2 0 1 0 0-4 2 2 0 0 0 0 4zM15 21a4 4 0 1 0-5-6M12 10v4h4l2 5",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},crutch:{viewBox:"0 0 24 24",path:"M5 5l7 7M7 3l7 7M19 19l-7-7M21 17l-7-7M11 11l-6 6M13 13l-6 6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"scale-weight":{viewBox:"0 0 24 24",path:"M12 3a9 9 0 0 0-9 9 9 9 0 0 0 9 9 9 9 0 0 0 9-9 9 9 0 0 0-9-9zM12 7v5l3 3",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"blood-drop":{viewBox:"0 0 24 24",path:"M12 2c-4 4-7 7-7 11a7 7 0 0 0 14 0c0-4-3-7-7-11z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},heartbeat:{viewBox:"0 0 24 24",path:"M3 12h4l3-9 4 18 3-9h4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}},de={football:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM12 6l4 4-4 4-4-4zM6 12l4-4v8zM18 12l-4 4V8z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},soccer:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM12 8l2.5 2-1 3h-3l-1-3zM12 2v3M22 12h-3M12 22v-3M2 12h3M4.93 4.93l2.12 2.12M19.07 4.93l-2.12 2.12M4.93 19.07l2.12-2.12M19.07 19.07l-2.12-2.12",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},basketball:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM2.05 11h19.9M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},tennis:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM3.5 8.5c4-1 8 0 12 4M3.5 15.5c4 1 8 0 12-4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},baseball:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM5 5c1.5 2 2.5 4 2.5 7s-1 5-2.5 7M19 5c-1.5 2-2.5 4-2.5 7s1 5 2.5 7",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},volleyball:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM12 2v10M12 12l8.66 5M12 12l-8.66 5",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},golf:{viewBox:"0 0 24 24",path:"M12 18v4M8 22h8M12 2v16M12 6l6-2-6 8",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},bowling:{viewBox:"0 0 24 24",path:"M12 22a8 8 0 1 0 0-16 8 8 0 0 0 0 16zM12 6V2M10 9h.01M14 9h.01M12 12h.01",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},dumbbell:{viewBox:"0 0 24 24",path:"M6.5 6.5h11M17.5 4v5M6.5 4v5M17.5 15v5M6.5 15v5M4 6v3a1 1 0 0 0 1 1h1.5M4 18v-3a1 1 0 0 1 1-1h1.5M20 6v3a1 1 0 0 1-1 1h-1.5M20 18v-3a1 1 0 0 0-1-1h-1.5M6.5 17.5h11",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},barbell:{viewBox:"0 0 24 24",path:"M4 12h16M6 8v8M10 6v12M14 6v12M18 8v8",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},kettlebell:{viewBox:"0 0 24 24",path:"M12 6a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM17 22H7a5 5 0 0 1-1-9.9V10a6 6 0 0 1 12 0v2.1a5 5 0 0 1-1 9.9z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},running:{viewBox:"0 0 24 24",path:"M13 4a2 2 0 1 0 0-4 2 2 0 0 0 0 4zM5 22l3-9 3 3v6M10 6l5 3 4-1M4 13l5 3",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},swimming:{viewBox:"0 0 24 24",path:"M2 20c.9 0 1.6-.4 2.2-.9.8-.7 1.9-.7 2.7 0 1.1 1 2.8 1 3.9 0 .8-.7 1.9-.7 2.7 0 1.1 1 2.8 1 3.9 0 .8-.7 1.9-.7 2.7 0 .6.5 1.3.9 2.2.9M8 16l-2-4 4-2 6 4 4-3M15 4a2 2 0 1 0 0-4 2 2 0 0 0 0 4z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},cycling:{viewBox:"0 0 24 24",path:"M5 18a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM19 18a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM5 14l4-4 3 3 4-4M12 6a2 2 0 1 0 0-4 2 2 0 0 0 0 4z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},yoga:{viewBox:"0 0 24 24",path:"M12 4a2 2 0 1 0 0-4 2 2 0 0 0 0 4zM4 17l4-4-2-4 6-3 6 3-2 4 4 4M8 22l4-5 4 5",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},trophy:{viewBox:"0 0 24 24",path:"M6 9H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h2M18 9h2a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2h-2M6 3v6a6 6 0 0 0 12 0V3M12 15v4M8 22h8M8 19h8",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},medal:{viewBox:"0 0 24 24",path:"M12 15a6 6 0 1 0 0 12 6 6 0 0 0 0-12zM8 3l4 6 4-6M8 3h8M12 9v6M9 19.5l3 1.5 3-1.5",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},award:{viewBox:"0 0 24 24",path:"M12 15a7 7 0 1 0 0-14 7 7 0 0 0 0 14zM8.21 13.89L7 23l5-3 5 3-1.21-9.12",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},crown:{viewBox:"0 0 24 24",path:"M2 17l3-10 5 6 2-8 2 8 5-6 3 10H2zM4 21h16",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},podium:{viewBox:"0 0 24 24",path:"M5 10h4v12H5zM10 6h4v16h-4zM15 14h4v8h-4zM12 2v4M10 4h4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},stopwatch:{viewBox:"0 0 24 24",path:"M12 5a9 9 0 1 0 0 18 9 9 0 0 0 0-18zM12 9v5l3 3M10 2h4M21 6l-2-2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},whistle:{viewBox:"0 0 24 24",path:"M5 16a4 4 0 1 0 8 0 4 4 0 0 0-8 0zM2 12l7-4h8l3 4-3 4M18 8l4-4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},target:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM12 6a6 6 0 1 0 0 12 6 6 0 0 0 0-12zM12 10a2 2 0 1 0 0 4 2 2 0 0 0 0-4z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"boxing-glove":{viewBox:"0 0 24 24",path:"M5 8c0-3 2-5 5-5h4c3 0 5 2 5 5v5c0 4-3 7-7 7s-7-3-7-7V8zM9 5v4M12 20v2M9 12h6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},racket:{viewBox:"0 0 24 24",path:"M12 2a6 6 0 0 0-6 6v4a6 6 0 0 0 12 0V8a6 6 0 0 0-6-6zM12 18v4M8 8h8M8 12h8",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},skate:{viewBox:"0 0 24 24",path:"M4 16V6a2 2 0 0 1 2-2h8l4 4v8M2 16h18v2a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-2zM6 20v2M16 20v2M10 10h4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},ski:{viewBox:"0 0 24 24",path:"M5 16l14-6M3 21l18-8M12 2a2 2 0 1 0 0 4 2 2 0 0 0 0-4zM12 8l-4 8M14 10l2 4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},surfboard:{viewBox:"0 0 24 24",path:"M21 3L3 21M17 3c3 3 4 8 1 15L3 21c7-3 12-2 15 1M12 12l-4 4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},mountain:{viewBox:"0 0 24 24",path:"M8 21l4-10 3 6 2-4 4 8H3l5-10 4 10z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},tent:{viewBox:"0 0 24 24",path:"M12 2L2 20h20L12 2zM12 2v18M7 14l5-6 5 6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},compass:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM16.24 7.76l-2.12 6.36-6.36 2.12 2.12-6.36z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},fishing:{viewBox:"0 0 24 24",path:"M18 2l-3 3v3l-4 4-5-2-4 4v5h5l4-4-2-5 4-4h3l3-3M12 22c-2 0-3-1-3-3M9 19c-2 0-3-1-3-3",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}},ue={house:{viewBox:"0 0 24 24",path:"M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V9zM9 22V12h6v10",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},home:{viewBox:"0 0 24 24",path:"M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V9z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},cabin:{viewBox:"0 0 24 24",path:"M2 20h20M4 20V10l8-8 8 8v10M10 20v-6h4v6M12 2v2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},apartment:{viewBox:"0 0 24 24",path:"M4 21V4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v17M8 6h2M14 6h2M8 10h2M14 10h2M8 14h2M14 14h2M10 21v-4h4v4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},office:{viewBox:"0 0 24 24",path:"M3 21h18M5 21V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16M9 21v-4h6v4M9 7h.01M15 7h.01M9 11h.01M15 11h.01M9 15h.01M15 15h.01",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},store:{viewBox:"0 0 24 24",path:"M4 3h16l1 6H3l1-6zM3 9v10a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V9M10 21v-6h4v6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},warehouse:{viewBox:"0 0 24 24",path:"M3 21h18M4 21V8l8-5 8 5v13M9 17h6v4H9zM9 12h6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},factory:{viewBox:"0 0 24 24",path:"M2 21h20M5 21V11l6 4V9l6 4V5a2 2 0 0 1 2-2h0a2 2 0 0 1 2 2v16M8 21v-3M12 21v-3M16 21v-3",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},hotel:{viewBox:"0 0 24 24",path:"M4 21V3a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v18M8 5h2M14 5h2M8 9h2M14 9h2M8 13h2M14 13h2M10 21v-4h4v4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},school:{viewBox:"0 0 24 24",path:"M2 22h20M12 2l10 6v14M2 8l10-6M12 8v14M4 10v12M20 10v12M8 14h.01M16 14h.01M10 22v-4h4v4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},university:{viewBox:"0 0 24 24",path:"M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},library:{viewBox:"0 0 24 24",path:"M4 21h16M5 21V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16M9 7h6M9 11h6M9 15h4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},museum:{viewBox:"0 0 24 24",path:"M2 20h20M4 20V10M20 20V10M12 2L2 8h20L12 2zM8 20v-6h3v6M13 20v-6h3v6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},court:{viewBox:"0 0 24 24",path:"M2 20h20M4 20V8l8-6 8 6v12M10 20v-6h4v6M6 10h12M12 4v6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},church:{viewBox:"0 0 24 24",path:"M18 22H6a2 2 0 0 1-2-2V9l8-7 8 7v11a2 2 0 0 1-2 2zM12 2v4M10 4h4M10 22v-5a2 2 0 0 1 4 0v5",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},mosque:{viewBox:"0 0 24 24",path:"M3 21h18M5 21v-8c0-2 .5-4 2-6 1.5 2 2 4 2 6v8M15 21v-8c0-2 .5-4 2-6 1.5 2 2 4 2 6v8M12 3a4 4 0 0 1 4 4v14M12 3a4 4 0 0 0-4 4v14M12 1v2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},temple:{viewBox:"0 0 24 24",path:"M2 22h20M4 22V12h4v10M16 22V12h4v10M8 22V8h8v14M12 2l6 6H6l6-6M10 14h4M10 18h4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},castle:{viewBox:"0 0 24 24",path:"M2 22h20M4 22V10h4V6H6V2h3v2h2V2h2v2h2V2h3v4h-2v4h4v12M10 22v-5h4v5M4 6h4M16 6h4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},fortress:{viewBox:"0 0 24 24",path:"M2 20h20M4 20V8h16v12M8 8V4h2v4M14 8V4h2v4M4 4h4M16 4h4M8 20v-4h3v4M13 20v-4h3v4M7 12h2M15 12h2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},tower:{viewBox:"0 0 24 24",path:"M8 22V4a4 4 0 0 1 8 0v18M8 8h8M8 14h8M10 22v-4h4v4M12 1v1",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},lighthouse:{viewBox:"0 0 24 24",path:"M7 22l2-16h6l2 16M9 6V3a3 3 0 0 1 6 0v3M2 11h5M17 11h5M9 12h6M10 18h4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},bridge:{viewBox:"0 0 24 24",path:"M2 18h20M4 14c0-2 2-4 4-4s4 2 4 4c0-2 2-4 4-4s4 2 4 4M4 18v-4M20 18v-4M12 18v-4M8 10V6M16 10V6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},stadium:{viewBox:"0 0 24 24",path:"M2 16c0-3 4.5-5 10-5s10 2 10 5v2c0 3-4.5 5-10 5s-10-2-10-5v-2zM2 12c0-3 4.5-5 10-5s10 2 10 5M12 3v4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},airport:{viewBox:"0 0 24 24",path:"M21 16v-2l-8-5V3.5a1.5 1.5 0 0 0-3 0V9l-8 5v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L13 19v-5.5z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"train-station":{viewBox:"0 0 24 24",path:"M4 21h16M6 17V7a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v10M8 21v-4h3v4M13 21v-4h3v4M12 2v3M9 9h6M9 13h6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},monument:{viewBox:"0 0 24 24",path:"M8 22h8M10 22V10L12 2l2 8v12M6 18h12M8 14h8",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},obelisk:{viewBox:"0 0 24 24",path:"M7 22l2-18h6l2 18M12 2l-1 2h2l-1-2M9 8h6M9 14h6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},arch:{viewBox:"0 0 24 24",path:"M4 22V10a8 8 0 0 1 16 0v12M4 8h16M4 14h16M8 22v-8M16 22v-8",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},windmill:{viewBox:"0 0 24 24",path:"M7 22l3-10h4l3 10M12 12V3M12 6l6-3M12 6L6 3M12 6l6 3M12 6L6 9M10 16h4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},skyscraper:{viewBox:"0 0 24 24",path:"M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18M2 22h20M10 6h4M10 10h4M10 14h4M10 18h4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},pyramid:{viewBox:"0 0 24 24",path:"M12 2L2 22h20L12 2zM12 2v20M7 12h10",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},dome:{viewBox:"0 0 24 24",path:"M2 22h20M4 22v-6a8 8 0 0 1 16 0v6M12 2v6M12 2a3 3 0 0 1 0 6M10 14h4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},barn:{viewBox:"0 0 24 24",path:"M3 21h18M5 21V11l7-8 7 8v10M10 21v-5h4v5M9 11h6M12 3v2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}},pe={smile:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM8 9h.01M16 9h.01M8 14s1.5 2 4 2 4-2 4-2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},grin:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM8 9h.01M16 9h.01M6 13a6 6 0 0 0 12 0H6z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},laugh:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM7 9c0-.6.4-1 1-1s1 .4 1 1M15 9c0-.6.4-1 1-1s1 .4 1 1M7 13h10a5 5 0 0 1-10 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},joy:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM7 9l2 1M15 9l2 1M6 13h12a6 6 0 0 1-12 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},wink:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM8 9h.01M14 9h4M8 14s1.5 2 4 2 4-2 4-2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},blush:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM8 9h.01M16 9h.01M8 14s1.5 2 4 2 4-2 4-2M5 13h2M17 13h2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"heart-eyes":{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM8 14s1.5 2 4 2 4-2 4-2M6.5 10c.5-1 1.5-2 2.5-1s-1 2.5-2.5 1zM15 10c.5-1 1.5-2 2.5-1s-1 2.5-2.5 1z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"star-eyes":{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM8 14s1.5 2 4 2 4-2 4-2M8 9l.5-1 .5 1 1-.5-.5 1 .5 1-1-.5-.5 1-.5-1-1 .5.5-1-.5-1zM16 9l.5-1 .5 1 1-.5-.5 1 .5 1-1-.5-.5 1-.5-1-1 .5.5-1-.5-1z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},sad:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM8 9h.01M16 9h.01M16 16s-1.5-2-4-2-4 2-4 2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},cry:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM8 9h.01M16 9h.01M16 16s-1.5-2-4-2-4 2-4 2M8 11v2M16 11v2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},sob:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM6 9l3 1M18 9l-3 1M16 17s-1.5-2-4-2-4 2-4 2M7 12l1 6M17 12l-1 6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},disappointed:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM6 8l4 2M18 8l-4 2M16 16s-1.5-2-4-2-4 2-4 2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},angry:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM6 8l4 2M18 8l-4 2M9 15h6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},rage:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM5 7l5 3M19 7l-5 3M9 16h6M9 16l1-2M15 16l-1-2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},annoyed:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM6 8l4 1M18 8l-4 1M8 9h.01M16 9h.01M9 15h6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},surprised:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM8 8v1M16 8v1M12 13a2 2 0 1 0 0 4 2 2 0 0 0 0-4z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},shocked:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM7 8l2 1M17 8l-2 1M12 13v5",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},astonished:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM6 8l4 1M18 8l-4 1M12 12a3 3 0 1 0 0 6 3 3 0 0 0 0-6z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},thinking:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM8 9h.01M16 9h.01M10 15h4c0 1-1 2-2 2s-2-1-2-2zM19 9c1 0 2-1 2-2s-1-2-2-2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},confused:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM8 9h.01M16 9h.01M9 15c2-2 4 0 6-2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},neutral:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM8 9h.01M16 9h.01M8 15h8",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},expressionless:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM7 9h3M14 9h3M8 15h8",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},cool:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM5 10h5l1-2h2l1 2h5M5 10c0 1 1 2 2.5 2s2.5-1 2.5-2M14 10c0 1 1 2 2.5 2s2.5-1 2.5-2M8 16s1.5 2 4 2 4-2 4-2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},nerd:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM6 9a2 2 0 1 0 4 0 2 2 0 0 0-4 0zM14 9a2 2 0 1 0 4 0 2 2 0 0 0-4 0zM10 9h4M8 15s1.5 1 4 1 4-1 4-1",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},tongue:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM8 9h.01M16 9h.01M8 13h8M10 13v3c0 1 1 2 2 2s2-1 2-2v-3",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},silly:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM7 9h2M17 9l-2-1M7 13c2 0 3 3 5 3s3-3 5-3",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},zany:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM8 8v2M15 8l2 2M8 14h8c0 2-2 4-4 4s-4-2-4-4z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},sick:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM8 9h.01M16 9h.01M8 15c2 1 6-1 8 0M18 5c1.5 1.5 1.5 3.5 0 5",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},sleepy:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM7 10c.5-.5 1.5-.5 2 0M15 10c.5-.5 1.5-.5 2 0M12 14a2 2 0 1 0 0 4 2 2 0 0 0 0-4zM18 4l2 2M20 4h-2v2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},dead:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM6 8l4 4M10 8l-4 4M14 8l4 4M18 8l-4 4M8 16h8",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},mask:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM8 9h.01M16 9h.01M4 13h16M5 14c1 2 3 4 7 4s6-2 7-4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}},me={car:{viewBox:"0 0 24 24",path:"M5 11l1.5-4.5h11L19 11M5 17h1m13 0h1M6 13v4m12-4v4M5 17h14a1 1 0 001-1v-5H4v5a1 1 0 001 1z M7.5 6.5l.5 1h8l.5-1a1 1 0 00-1-1H8.5a1 1 0 00-1 1z M7 16a1 1 0 100-2 1 1 0 000 2z M17 16a1 1 0 100-2 1 1 0 000 2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},truck:{viewBox:"0 0 24 24",path:"M1 3h15v13H1zM16 8h4l3 3v5h-7V8z M5.5 21a2.5 2.5 0 100-5 2.5 2.5 0 000 5z M18.5 21a2.5 2.5 0 100-5 2.5 2.5 0 000 5z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},van:{viewBox:"0 0 24 24",path:"M3 6h13v11H3z M16 6h2l3 4v7h-5V6z M7 20.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z M17 20.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z M3 10h13",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},motorcycle:{viewBox:"0 0 24 24",path:"M5 19a3 3 0 100-6 3 3 0 000 6z M19 19a3 3 0 100-6 3 3 0 000 6z M12 4l-3 7h5.5L18 8m-4 3l3 8",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},bicycle:{viewBox:"0 0 24 24",path:"M5 19a3 3 0 100-6 3 3 0 000 6z M19 19a3 3 0 100-6 3 3 0 000 6z M12 11l2-5h3M12 19v-8m0 0L9 8M12 11l3-3",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},bus:{viewBox:"0 0 24 24",path:"M4 6a2 2 0 012-2h12a2 2 0 012 2v11a3 3 0 01-3 3H7a3 3 0 01-3-3V6z M4 10h16M8 20v-2M16 20v-2M8 14h.01M16 14h.01M4 6h16",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},taxi:{viewBox:"0 0 24 24",path:"M5 11l1.5-4.5h11L19 11M5 17h1m13 0h1M6 13v4m12-4v4M5 17h14a1 1 0 001-1v-5H4v5a1 1 0 001 1z M9 4h6v2H9V4z M7 16a1 1 0 100-2 1 1 0 000 2z M17 16a1 1 0 100-2 1 1 0 000 2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},parking:{viewBox:"0 0 24 24",path:"M4 4h16a2 2 0 012 2v12a2 2 0 01-2 2H4a2 2 0 01-2-2V6a2 2 0 012-2z M9 8v8M9 8h3.5a2.5 2.5 0 010 5H9",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},fuel:{viewBox:"0 0 24 24",path:"M3 4h10v12H3z M13 7h2a2 2 0 012 2v7a2 2 0 002 2M14 7V4M3 10h10M5 20v-4M11 20v-4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},garage:{viewBox:"0 0 24 24",path:"M2 9l10-7 10 7v11a2 2 0 01-2 2H4a2 2 0 01-2-2V9z M7 21V13h10v8M2 9h20",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},road:{viewBox:"0 0 24 24",path:"M6 4h2v16H6zM16 4h2v16h-2zM12 4v4M12 12v4M12 20v1",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}};var fe={code:{viewBox:"0 0 24 24",path:"M16 18l6-6-6-6M8 6l-6 6 6 6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},bold:{viewBox:"0 0 24 24",path:"M6 4h8a4 4 0 0 1 4 4 4 4 0 0 1-4 4H6V4zm0 8h9a4 4 0 0 1 4 4 4 4 0 0 1-4 4H6v-8z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},italic:{viewBox:"0 0 24 24",path:"M19 4h-9M14 20H5M15 4L9 20",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},underline:{viewBox:"0 0 24 24",path:"M6 3v7a6 6 0 0 0 6 6 6 6 0 0 0 6-6V3M4 21h16",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},strikethrough:{viewBox:"0 0 24 24",path:"M17.3 4.9c-2.3-.6-4.4-1-6.2-.9-2.7.1-5.3 1.1-6.6 3.1-.5.8-.7 1.7-.7 2.6 0 1.7.8 3.1 2 4M3 12h18M13 20c2 0 3.5-.5 4.5-1.5 1-.9 1.5-2.2 1.5-3.5 0-1.3-.5-2.5-1.4-3.4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"heading-1":{viewBox:"0 0 24 24",path:"M4 12h8m-8 6V6m8 12V6m5 6h3m0 0V6m0 6v6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"heading-2":{viewBox:"0 0 24 24",path:"M4 12h8m-8 6V6m8 12V6m5 10.5c0-2.5 4-2.5 4 0s-4 2.5-4 5m4 0h-4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"heading-3":{viewBox:"0 0 24 24",path:"M4 12h8m-8 6V6m8 12V6m5 4.5h3a1.5 1.5 0 0 1 0 3 1.5 1.5 0 0 1 0 3h-3",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"list-bullet":{viewBox:"0 0 24 24",path:"M8 6h13M8 12h13M8 18h13M3 6h.01M3 12h.01M3 18h.01",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"list-numbered":{viewBox:"0 0 24 24",path:"M10 6h11M10 12h11M10 18h11M4 6h1v4M4 10h2M6 18H4c0-1 2-2 2-3s-1-1.5-2-1",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},quote:{viewBox:"0 0 24 24",path:"M3 21c3 0 7-1 7-8V5c0-1.25-.756-2.017-2-2H4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2 1 0 1 0 1 1v1c0 1-1 2-2 2s-1 .008-1 1.031V20c0 1 0 1 1 1zM15 21c3 0 7-1 7-8V5c0-1.25-.757-2.017-2-2h-4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2h.75c0 2.25.25 4-2.75 4v3c0 1 0 1 1 1z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"code-inline":{viewBox:"0 0 24 24",path:"M16 18l6-6-6-6M8 6l-6 6 6 6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"code-block":{viewBox:"0 0 24 24",path:"M16 18l6-6-6-6M8 6l-6 6 6 6M14 4l-4 16",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"link-add":{viewBox:"0 0 24 24",path:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"image-add":{viewBox:"0 0 24 24",path:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4M17 8l-5-5-5 5M12 3v12",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},undo:{viewBox:"0 0 24 24",path:"M3 7v6h6M21 17a9 9 0 0 0-9-9 9 9 0 0 0-9 9",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},redo:{viewBox:"0 0 24 24",path:"M21 7v6h-6M3 17a9 9 0 0 1 9-9 9 9 0 0 1 9 9",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"text-left":{viewBox:"0 0 24 24",path:"M3 6h18M3 12h12M3 18h18",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"text-center":{viewBox:"0 0 24 24",path:"M3 6h18M6 12h12M3 18h18",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"text-right":{viewBox:"0 0 24 24",path:"M3 6h18M9 12h12M3 18h18",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},indent:{viewBox:"0 0 24 24",path:"M3 6h18M3 12h18M3 18h18M3 9l4 3-4 3",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},outdent:{viewBox:"0 0 24 24",path:"M3 6h18M3 12h18M3 18h18M7 9l-4 3 4 3",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},embed:{viewBox:"0 0 24 24",path:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10zM8 10h8M8 14h4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"clear-format":{viewBox:"0 0 24 24",path:"M4 7V4h16v3M9 20h6M12 4v16",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}};const ve={...G,...X,...ee,...te,...oe,...ne,...se,...ie,...re,...ae,...le,...he,...ce,...de,...ue,...pe,...me,...fe},ke={ui:{name:"UI",description:"Core user interface icons",icons:Object.keys(G)},communication:{name:"Communication",description:"Messaging and notifications",icons:Object.keys(X)},media:{name:"Media",description:"Audio, video, and images",icons:Object.keys(ee)},files:{name:"Files",description:"Documents and file operations",icons:Object.keys(te)},social:{name:"Social",description:"Social interactions and sharing",icons:Object.keys(oe)},commerce:{name:"Commerce",description:"Shopping and payments",icons:Object.keys(ne)},status:{name:"Status",description:"Indicators and alerts",icons:Object.keys(se)},navigation:{name:"Navigation",description:"Directional and navigation",icons:Object.keys(ie)},seasonal:{name:"Seasonal",description:"Festive and holiday icons",icons:Object.keys(re)},weather:{name:"Weather",description:"Weather conditions and meteorology",icons:Object.keys(ae)},devices:{name:"Devices",description:"Electronic devices and hardware",icons:Object.keys(le)},finance:{name:"Finance",description:"Financial and charts",icons:Object.keys(he)},health:{name:"Health",description:"Medical and wellness",icons:Object.keys(ce)},sport:{name:"Sport",description:"Sports and fitness",icons:Object.keys(de)},buildings:{name:"Buildings",description:"Architecture and structures",icons:Object.keys(ue)},emojis:{name:"Emojis",description:"Emoji expressions and faces",icons:Object.keys(pe)},transport:{name:"Transport",description:"Vehicles and transportation",icons:Object.keys(me)},code:{name:"Code & Editor",description:"Text editing, formatting, and code icons",icons:Object.keys(fe)}},ge="http://www.w3.org/2000/svg";const _e=new class{constructor(){this._icons={...ve},this._categories={...ke}}render(e,t={}){const o=this._icons[e];if(!o)return console.warn(`Icon "${e}" not found`),null;const{size:n=24,class:s="",colour:i=null,color:r=null,attrs:a={}}=t,l=document.createElementNS(ge,"svg");l.setAttribute("viewBox",o.viewBox||"0 0 24 24"),l.setAttribute("width",n),l.setAttribute("height",n),l.setAttribute("fill",o.fill||"none"),l.setAttribute("aria-hidden","true");const h=["dm-icon"];if(s&&h.push(s),l.setAttribute("class",h.join(" ")),o.stroke&&l.setAttribute("stroke",i||r||o.stroke),o.strokeWidth&&l.setAttribute("stroke-width",o.strokeWidth),o.strokeLinecap&&l.setAttribute("stroke-linecap",o.strokeLinecap),o.strokeLinejoin&&l.setAttribute("stroke-linejoin",o.strokeLinejoin),(i||r)&&"currentColor"===o.fill&&l.setAttribute("fill",i||r),Object.entries(a).forEach(([e,t])=>{l.setAttribute(e,t)}),o.path){const e=document.createElementNS(ge,"path");e.setAttribute("d",o.path),"currentColor"===o.fill&&e.setAttribute("fill",i||r||"currentColor"),l.appendChild(e)}return o.paths&&o.paths.forEach(e=>{const t=document.createElementNS(ge,"path");t.setAttribute("d",e),"currentColor"===o.fill&&t.setAttribute("fill",i||r||"currentColor"),l.appendChild(t)}),l}html(e,t={}){const o=this.render(e,t);if(!o)return"";const n=document.createElement("div");return n.appendChild(o),n.innerHTML}inject(e,t,o={}){const{position:n="prepend",...s}=o,i="string"==typeof e?document.querySelector(e):e;if(!i)return console.warn(`Target element not found: ${e}`),null;const r=this.render(t,s);if(!r)return null;switch(n){case"append":i.appendChild(r);break;case"replace":i.innerHTML="",i.appendChild(r);break;default:i.insertBefore(r,i.firstChild)}return r}scan(e=document){const t="string"==typeof e?document.querySelector(e):e;if(!t)return 0;const o=t.querySelectorAll("[data-icon]:not([data-icon-processed]):not([data-icon-processing])");let n=0;return o.forEach(e=>{if("svg"===e.tagName.toLowerCase()||e.hasAttribute("data-icon-processed")||e.querySelector("svg"))return;const t=e.dataset.icon,o=parseInt(e.dataset.iconSize,10)||24,s=e.dataset.iconColour||e.dataset.iconColor||null,i=e.dataset.iconClass||"",r=this.render(t,{size:o,colour:s,class:i});if(r){const o=e.className;o&&r.classList.add(...o.split(" ").filter(e=>e)),r.setAttribute("data-icon",t),r.setAttribute("data-icon-processed","true"),r.setAttribute("data-original-icon",t),r.setAttribute("data-icon-converted",Date.now().toString()),e.replaceWith(r),n++}else e.setAttribute("data-icon-processed","true")}),n}register(e,t){return e&&t?(t.viewBox||(t.viewBox="0 0 24 24"),t.path||t.paths?(this._icons[e]=t,this._categories.custom||(this._categories.custom={name:"Custom",description:"Custom registered icons",icons:[]}),this._categories.custom.icons.push(e),this):(console.warn(`Icon "${e}" must have a path or paths property`),this)):(console.warn("Invalid icon registration: name and definition required"),this)}unregister(e){if(this._icons[e]){if(delete this._icons[e],this._categories.custom){const t=this._categories.custom.icons.indexOf(e);t>-1&&this._categories.custom.icons.splice(t,1)}return!0}return!1}has(e){return!!this._icons[e]}get(e){return this._icons[e]||null}list(e=null){return e&&this._categories[e]?[...this._categories[e].icons]:Object.keys(this._icons)}listCategories(){return{...this._categories}}count(){return Object.keys(this._icons).length}search(e){const t=e.toLowerCase();return Object.keys(this._icons).filter(e=>e.toLowerCase().includes(t))}createSprite(){const e=document.createElementNS(ge,"svg");return e.setAttribute("xmlns",ge),e.style.display="none",Object.entries(this._icons).forEach(([t,o])=>{const n=document.createElementNS(ge,"symbol");if(n.setAttribute("id",`dm-icon-${t}`),n.setAttribute("viewBox",o.viewBox||"0 0 24 24"),o.path){const e=document.createElementNS(ge,"path");e.setAttribute("d",o.path),o.fill&&e.setAttribute("fill",o.fill),o.stroke&&(e.setAttribute("stroke",o.stroke),o.strokeWidth&&e.setAttribute("stroke-width",o.strokeWidth),o.strokeLinecap&&e.setAttribute("stroke-linecap",o.strokeLinecap),o.strokeLinejoin&&e.setAttribute("stroke-linejoin",o.strokeLinejoin)),n.appendChild(e)}o.paths&&o.paths.forEach(e=>{const t=document.createElementNS(ge,"path");t.setAttribute("d",e),o.fill&&t.setAttribute("fill",o.fill),o.stroke&&t.setAttribute("stroke",o.stroke),n.appendChild(t)}),e.appendChild(n)}),e}use(e,t={}){if(!this._icons[e])return console.warn(`Icon "${e}" not found`),null;const{size:o=24,class:n=""}=t,s=document.createElementNS(ge,"svg");s.setAttribute("width",o),s.setAttribute("height",o),s.setAttribute("aria-hidden","true");const i=["dm-icon"];n&&i.push(n),s.setAttribute("class",i.join(" "));const r=document.createElementNS(ge,"use");return r.setAttributeNS("http://www.w3.org/1999/xlink","href",`#dm-icon-${e}`),s.appendChild(r),s}};class ye{static stripeColors={none:"transparent",lighter:"var(--dm-gray-100, #f8f9fa)",light:"var(--dm-gray-200, #e9ecef)",medium:"var(--dm-gray-300, #dee2e6)",dark:"var(--dm-gray-400, #ced4da)","primary-tint":"rgba(100, 149, 237, 0.05)","success-tint":"rgba(40, 167, 69, 0.05)","warning-tint":"rgba(255, 193, 7, 0.05)","danger-tint":"rgba(220, 53, 69, 0.05)","info-tint":"rgba(23, 162, 184, 0.05)",default:"#f9f9f9"};static hoverColors={none:"transparent",lighter:"var(--dm-gray-200, #e9ecef)",light:"var(--dm-gray-300, #dee2e6)",medium:"var(--dm-gray-400, #ced4da)",dark:"var(--dm-gray-500, #adb5bd)",default:"#f0f0f0"};constructor(e,t={}){this.element="string"==typeof e?document.querySelector(e):e,this.options={data:[],columns:[],rowKey:"id",sortable:!0,multiSort:!1,defaultSort:null,filterable:!0,searchable:!0,searchPlaceholder:"Search...",pagination:!0,pageSize:10,pageSizeOptions:[10,25,50,100],selectable:!1,selectionMode:"single",editable:!1,editMode:"cell",resizable:!0,striped:!0,hover:!0,bordered:!0,responsive:!0,evenRowColor:null,oddRowColor:null,hoverColor:null,classes:{wrapper:"domma-table-wrapper",table:"domma-table",header:"domma-table-header",body:"domma-table-body",row:"domma-table-row",cell:"domma-table-cell",selected:"domma-table-selected",sorted:"domma-table-sorted",sortAsc:"domma-table-sort-asc",sortDesc:"domma-table-sort-desc",pagination:"domma-table-pagination",search:"domma-table-search"},exportPanel:!1,exportOptions:["copy","csv","excel","json"],columnToggle:!1,regexSearch:!1,persistSettings:!1,storageKey:null,onSort:null,onFilter:null,onPageChange:null,onSelect:null,onEdit:null,onRender:null,onExport:null,...t},this._originalData=[...this.options.data],this._data=[...this.options.data],this._filteredData=[...this._data],this._currentPage=1,this._pageSize=this.options.pageSize,this._sorts=[],this._filters=[],this._searchQuery="",this._selected=new Set,this._editingCell=null,this._eventListeners=new Map,this._columnDropdownOpen=!1,this._searchIsRegex=!1,this._columns=this.options.columns.map(e=>({key:e.key||e,title:e.title||e.key||e,sortable:!1!==e.sortable&&this.options.sortable,filterable:!1!==e.filterable,editable:e.editable||!1,width:e.width||null,render:e.render||null,filterOptions:e.filterOptions||null,visible:!1!==e.visible})),this.options.persistSettings&&this._loadSettings(),this._init()}_init(){this.element&&(this.options.defaultSort&&(this._sorts=[this.options.defaultSort]),this.render())}_resolveColor(e,t,o){return e?t[e]?t[e]:e.startsWith("#")||e.startsWith("rgb")||e.startsWith("hsl")||e.startsWith("var(")?e:o:o}_getRowColors(e){const t=this.options;if(!t.striped)return{background:"transparent",hover:t.hover?this._resolveColor(t.hoverColor,ye.hoverColors,ye.hoverColors.default):"transparent"};const o=e%2==1,n=this._resolveColor(t.evenRowColor,ye.stripeColors,"transparent"),s=this._resolveColor(t.oddRowColor,ye.stripeColors,ye.stripeColors.default);return{background:o?s:n,hover:t.hover?this._resolveColor(t.hoverColor,ye.hoverColors,ye.hoverColors.default):null}}setData(e){return this._originalData=[...e],this._data=[...e],this._applyFiltersAndSort(),this._currentPage=1,this.render(),this}getData(){return[...this._getPageData()]}getFilteredData(){return[...this._filteredData]}getOriginalData(){return[...this._originalData]}addRow(e){return this._originalData.push(e),this._data.push(e),this._applyFiltersAndSort(),this.render(),this}updateRow(e,t){const o=this._findRowIndex(e);return-1!==o&&(this._originalData[o]={...this._originalData[o],...t},this._data[o]={...this._data[o],...t},this._applyFiltersAndSort(),this.render()),this}removeRow(e){const t=this._findRowIndex(e);return-1!==t&&(this._originalData.splice(t,1),this._data.splice(t,1),this._applyFiltersAndSort(),this.render()),this}_findRowIndex(e){const t=this.options.rowKey;return"number"==typeof e?e:this._originalData.findIndex(o=>o[t]===e)}sort(e,t="asc"){return this._sorts=[{column:e,direction:t}],this._applyFiltersAndSort(),this.render(),this._saveSettings(),this.options.onSort&&this.options.onSort({column:e,direction:t,sorts:this._sorts}),this}sortMultiple(e){return this._sorts=e,this._applyFiltersAndSort(),this.render(),this._saveSettings(),this.options.onSort&&this.options.onSort({sorts:this._sorts}),this}clearSort(){return this._sorts=[],this._applyFiltersAndSort(),this.render(),this._saveSettings(),this}_applySort(e){return 0===this._sorts.length?e:[...e].sort((e,t)=>{for(const o of this._sorts){const{column:n,direction:s}=o,i=e[n],r=t[n];let a=0;if(null==i?a=1:null==r||i<r?a=-1:i>r&&(a=1),0!==a)return"desc"===s?-a:a}return 0})}search(e){return this._searchQuery=this._searchIsRegex?e.trim():e.toLowerCase().trim(),this._applyFiltersAndSort(),this._currentPage=1,this.render(),this.options.onFilter&&this.options.onFilter({query:e,type:"search",isRegex:this._searchIsRegex}),this}setSearchMode(e){return this._searchIsRegex=e,this._searchQuery&&(this._applyFiltersAndSort(),this.render()),this}toggleSearchMode(){return this.setSearchMode(!this._searchIsRegex)}filter(e,t,o="equals"){return this._filters=this._filters.filter(t=>t.column!==e),null!=t&&""!==t&&this._filters.push({column:e,value:t,operator:o}),this._applyFiltersAndSort(),this._currentPage=1,this.render(),this.options.onFilter&&this.options.onFilter({column:e,value:t,operator:o,type:"column"}),this}filterBy(e){return this._customFilter=e,this._applyFiltersAndSort(),this._currentPage=1,this.render(),this}clearFilters(){return this._filters=[],this._searchQuery="",this._customFilter=null,this._applyFiltersAndSort(),this._currentPage=1,this.render(),this}_applyFilters(e){let t=e;if(this._searchQuery)if(this._searchIsRegex)try{const e=new RegExp(this._searchQuery,"i");t=t.filter(t=>this._columns.some(o=>{const n=t[o.key];return null!=n&&e.test(String(n))}))}catch(e){t=[]}else t=t.filter(e=>this._columns.some(t=>{const o=e[t.key];return null!=o&&String(o).toLowerCase().includes(this._searchQuery)}));for(const e of this._filters)t=t.filter(t=>{const o=t[e.column];return this._matchFilter(o,e.value,e.operator)});return this._customFilter&&(t=t.filter(this._customFilter)),t}_matchFilter(e,t,o){if(null==e)return!1;const n=String(e).toLowerCase(),s=String(t).toLowerCase();switch(o){case"equals":default:return n===s;case"contains":return n.includes(s);case"startsWith":return n.startsWith(s);case"endsWith":return n.endsWith(s);case"gt":return Number(e)>Number(t);case"lt":return Number(e)<Number(t);case"gte":return Number(e)>=Number(t);case"lte":return Number(e)<=Number(t);case"between":const[o,i]=t,r=Number(e);return r>=o&&r<=i;case"in":return t.includes(e)}}_applyFiltersAndSort(){this._filteredData=this._applyFilters(this._data),this._filteredData=this._applySort(this._filteredData)}page(e){const t=this._getTotalPages();return this._currentPage=Math.max(1,Math.min(e,t)),this.render(),this.options.onPageChange&&this.options.onPageChange(this.pageInfo()),this}pageSize(e){return this._pageSize=e,this._currentPage=1,this.render(),this._saveSettings(),this}nextPage(){return this.page(this._currentPage+1)}prevPage(){return this.page(this._currentPage-1)}firstPage(){return this.page(1)}lastPage(){return this.page(this._getTotalPages())}pageInfo(){const e=this._getTotalPages();return{page:this._currentPage,pageSize:this._pageSize,totalPages:e,totalRows:this._filteredData.length,startRow:(this._currentPage-1)*this._pageSize+1,endRow:Math.min(this._currentPage*this._pageSize,this._filteredData.length)}}_getTotalPages(){return this.options.pagination&&Math.ceil(this._filteredData.length/this._pageSize)||1}_getPageData(){if(!this.options.pagination)return this._filteredData;const e=(this._currentPage-1)*this._pageSize,t=e+this._pageSize;return this._filteredData.slice(e,t)}select(e){if(!this.options.selectable)return this;const t=this.options.rowKey,o="object"==typeof e?e[t]:e;return"single"===this.options.selectionMode&&this._selected.clear(),this._selected.add(o),this.render(),this.options.onSelect&&this.options.onSelect(this.getSelected()),this}deselect(e){const t=this.options.rowKey,o="object"==typeof e?e[t]:e;return this._selected.delete(o),this.render(),this.options.onSelect&&this.options.onSelect(this.getSelected()),this}toggleSelect(e){const t=this.options.rowKey,o="object"==typeof e?e[t]:e;return this._selected.has(o)?this.deselect(e):this.select(e),this}selectAll(){if(!this.options.selectable||"single"===this.options.selectionMode)return this;const e=this.options.rowKey;for(const t of this._filteredData)this._selected.add(t[e]);return this.render(),this.options.onSelect&&this.options.onSelect(this.getSelected()),this}deselectAll(){return this._selected.clear(),this.render(),this.options.onSelect&&this.options.onSelect([]),this}getSelected(){const e=this.options.rowKey;return this._filteredData.filter(t=>this._selected.has(t[e]))}isSelected(e){const t=this.options.rowKey,o="object"==typeof e?e[t]:e;return this._selected.has(o)}_getStorageKey(){return this.options.storageKey||(this.element.id?`domma-table-${this.element.id}`:"domma-table-default")}_loadSettings(){try{const e=this._getStorageKey(),t=H.get(e);t&&t.columns&&t.columns.forEach(e=>{const t=this._columns.find(t=>t.key===e.key);t&&(t.visible=e.visible,e.width&&(t.width=e.width))}),t&&t.pageSize&&this.options.pagination&&(this._pageSize=t.pageSize,this.options.pageSize=t.pageSize),t&&t.sorts&&this.options.sortable&&(this._sorts=t.sorts)}catch(e){console.warn("Failed to load table settings:",e)}}_saveSettings(){if(this.options.persistSettings)try{const e=this._getStorageKey(),t={columns:this._columns.map(e=>({key:e.key,visible:e.visible,width:e.width})),pageSize:this._pageSize,sorts:this._sorts,timestamp:Date.now()};H.set(e,t)}catch(e){console.warn("Failed to save table settings:",e)}}clearSettings(){if(this.options.persistSettings){const e=this._getStorageKey();H.remove(e)}}showColumn(e){const t=this._columns.find(t=>t.key===e);return t&&(t.visible=!0,this.render(),this._saveSettings()),this}hideColumn(e){const t=this._columns.find(t=>t.key===e);return t&&(t.visible=!1,this.render(),this._saveSettings()),this}toggleColumn(e){const t=this._columns.find(t=>t.key===e);return t&&(t.visible=!t.visible,this.render(),this._saveSettings()),this}getVisibleColumns(){return this._columns.filter(e=>e.visible)}getHiddenColumns(){return this._columns.filter(e=>!e.visible)}resizeColumn(e,t){const o=this._columns.find(t=>t.key===e);return o&&(o.width=t,this.render()),this}getColumns(){return[...this._columns]}editCell(e,t){return this.options.editable?(this._editingCell={rowIndex:e,column:t},this.render(),this):this}saveEdits(){return this._editingCell=null,this.render(),this}cancelEdits(){return this._editingCell=null,this.render(),this}toCSV(e={}){const{columns:t=this._columns.filter(e=>e.visible),includeHeaders:o=!0}=e,n=[],s=this._getExportData();o&&n.push(t.map(e=>`"${e.title}"`).join(","));for(const e of s){const o=t.map(t=>{const o=e[t.key];return null==o?'""':`"${String(o).replace(/"/g,'""')}"`});n.push(o.join(","))}return n.join("\n")}_getExportData(){const e=this.getSelected();return e.length>0?e:this._filteredData}toJSON(e={}){const{columns:t=this._columns.filter(e=>e.visible),pretty:o=!1}=e,n=t.map(e=>e.key),s=this._getExportData().map(e=>{const t={};for(const o of n)t[o]=e[o];return t});return o?JSON.stringify(s,null,2):JSON.stringify(s)}download(e,t){let o,n;switch(e){case"csv":o=this.toCSV(),n="text/csv",t=t||"data.csv";break;case"excel":o=this.toExcel(),n="application/vnd.ms-excel",t=t||"data.xls";break;default:o=this.toJSON({pretty:!0}),n="application/json",t=t||"data.json"}const s=new Blob([o],{type:n}),i=URL.createObjectURL(s),r=document.createElement("a");if(r.href=i,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(i),this.options.onExport){const o=this._getExportData(),n=this.getSelected();this.options.onExport({format:e,filename:t,rowCount:o.length,selectedOnly:n.length>0})}}toExcel(e={}){const{columns:t=this._columns.filter(e=>e.visible)}=e,o=this._getExportData();let n='\n <html xmlns:o="urn:schemas-microsoft-com:office:office"\n xmlns:x="urn:schemas-microsoft-com:office:excel">\n <head>\n <meta charset="UTF-8">\n \x3c!--[if gte mso 9]>\n <xml>\n <x:ExcelWorkbook>\n <x:ExcelWorksheets>\n <x:ExcelWorksheet>\n <x:Name>Data</x:Name>\n <x:WorksheetOptions>\n <x:DisplayGridlines/>\n </x:WorksheetOptions>\n </x:ExcelWorksheet>\n </x:ExcelWorksheets>\n </x:ExcelWorkbook>\n </xml>\n <![endif]--\x3e\n <style>\n table { border-collapse: collapse; }\n th, td { border: 1px solid #000; padding: 8px; }\n th { background: #f0f0f0; font-weight: bold; }\n </style>\n </head>\n <body>\n <table>\n <thead>\n <tr>';for(const e of t)n+=`<th>${this._escapeHtml(e.title)}</th>`;n+="</tr></thead><tbody>";for(const e of o){n+="<tr>";for(const o of t){const t=e[o.key];n+=`<td>${null!=t?this._escapeHtml(String(t)):""}</td>`}n+="</tr>"}return n+="</tbody></table></body></html>",n}async copyToClipboard(e="text"){let t;const o=this._getExportData();if("json"===e)t=this.toJSON({pretty:!0});else if("csv"===e)t=this.toCSV();else{const e=this._columns.filter(e=>e.visible),n=[];n.push(e.map(e=>e.title).join("\t"));for(const t of o)n.push(e.map(e=>t[e.key]??"").join("\t"));t=n.join("\n")}return await n.copyToClipboard(t),this.options.onExport&&this.options.onExport({format:"clipboard",rowCount:this._filteredData.length}),this}_escapeHtml(e){const t=document.createElement("div");return t.textContent=e,t.innerHTML}render(){if(!this.element)return this;const e=this.options,t=e.classes,o=this._columns.filter(e=>e.visible),s=this._getPageData();this._restoreIconsBeforeRebuild(),this.element.innerHTML="",this._clearEventListeners();const i=document.createElement("div");i.className=t.wrapper;const r=document.createElement("div");if(r.className="domma-table-toolbar",e.searchable){const t=document.createElement("div");t.className="domma-table-search-wrapper";const o=document.createElement("input");if(o.type="text",o.className="domma-table-search-input"+(this._searchIsRegex?" regex-mode":""),o.placeholder=this._searchIsRegex?"Regex pattern...":e.searchPlaceholder,o.value=this._searchQuery,this._addEventHandler(o,"input",n.debounce(e=>{this.search(e.target.value)},300)),t.appendChild(o),e.regexSearch){const e=document.createElement("button");e.type="button",e.className="domma-table-regex-button"+(this._searchIsRegex?" active":""),e.title=this._searchIsRegex?"Regex mode (click for text)":"Text mode (click for regex)",e.innerHTML=".*",this._addEventHandler(e,"click",()=>{this._searchIsRegex=!this._searchIsRegex,this._searchQuery&&(this._searchQuery=this._searchIsRegex?o.value.trim():o.value.toLowerCase().trim(),this._applyFiltersAndSort()),this.render()}),t.appendChild(e)}r.appendChild(t)}if(e.columnToggle){const e=document.createElement("div");e.className="domma-table-column-toggle";const t=document.createElement("button");t.type="button",t.className="domma-table-column-button",t.innerHTML=`${_e.html("columns",{size:16})} Columns`;const o=document.createElement("div");o.className="domma-column-dropdown"+(this._columnDropdownOpen?" show":"");for(const e of this._columns){const t=document.createElement("label");t.className="domma-column-toggle-item";const n=document.createElement("span");n.className="domma-column-toggle-label",n.textContent=e.title;const s=document.createElement("div");s.className="domma-toggle-switch";const i=document.createElement("input");i.type="checkbox",i.checked=e.visible,i.style.cssText="opacity: 0; width: 0; height: 0; position: absolute;";const r=document.createElement("span");r.className="domma-toggle-track"+(e.visible?" active":"");const a=document.createElement("span");a.className="domma-toggle-knob"+(e.visible?" active":""),r.appendChild(a),s.appendChild(i),s.appendChild(r),this._addEventHandler(t,"click",t=>{t.preventDefault(),t.stopPropagation(),e.visible=!e.visible,e.visible?(r.classList.add("active"),a.classList.add("active")):(r.classList.remove("active"),a.classList.remove("active")),i.checked=e.visible,this._columnDropdownOpen=!0,this.render(),this._saveSettings()}),t.appendChild(n),t.appendChild(s),o.appendChild(t)}this._addEventHandler(t,"click",e=>{e.stopPropagation(),this._columnDropdownOpen=!this._columnDropdownOpen,this._columnDropdownOpen?o.classList.add("show"):o.classList.remove("show")}),this._addEventHandler(document,"click",()=>{this._columnDropdownOpen&&(this._columnDropdownOpen=!1,o.classList.remove("show"))}),this._addEventHandler(o,"click",e=>{e.stopPropagation()}),e.appendChild(t),e.appendChild(o),r.appendChild(e)}if(e.exportPanel){const t=document.createElement("div");t.className="domma-table-export-wrapper";let o=!1;const n=document.createElement("div");n.className="domma-export-mode-toggle";const s=document.createElement("span");s.className="domma-export-mode-label active",s.textContent="Copy";const i=document.createElement("label");i.className="domma-export-toggle-switch";const a=document.createElement("input");a.type="checkbox",a.className="domma-export-toggle-input";const l=document.createElement("span");l.className="domma-export-toggle-slider";const h=document.createElement("span");h.className="domma-export-toggle-knob",l.appendChild(h),i.appendChild(a),i.appendChild(l);const c=document.createElement("span");c.className="domma-export-mode-label",c.textContent="Download";const d=()=>{o?(l.classList.add("active"),h.classList.add("active"),s.classList.remove("active"),c.classList.add("active")):(l.classList.remove("active"),h.classList.remove("active"),s.classList.add("active"),c.classList.remove("active"))};this._addEventHandler(a,"change",()=>{o=a.checked,d()}),d(),n.appendChild(s),n.appendChild(i),n.appendChild(c),t.appendChild(n);const u=document.createElement("span");u.className="domma-export-separator",t.appendChild(u);const p={text:{label:"Text",icon:_e.html("clipboard",{size:16}),format:"text"},csv:{label:"CSV",icon:_e.html("document",{size:16}),format:"csv"},excel:{label:"Excel",icon:_e.html("grid",{size:16}),format:"excel"},json:{label:"JSON",icon:_e.html("file-code",{size:16}),format:"json"}},m=e.exportOptions.map(e=>"copy"===e?"text":e);for(const e of m){const n=p[e];if(!n)continue;const s=document.createElement("button");s.type="button",s.className="domma-export-button",s.setAttribute("data-export",e),s.innerHTML=`${n.icon} ${n.label}`;const i=(e,t=!0)=>{const o=s.innerHTML;s.innerHTML=e,s.classList.add(t?"success":"error"),setTimeout(()=>{s.innerHTML=o,s.classList.remove("success","error")},1500)};this._addEventHandler(s,"click",()=>{const e=this.getSelected(),t=e.length>0?e.length:this._filteredData.length,s=e.length>0?` (${t} selected)`:` (${t} rows)`;if(o){const e="text"===n.format?"csv":n.format;this.download(e),i("✓ Downloaded!"+s)}else{const e="excel"===n.format?"text":n.format;this.copyToClipboard(e),i("✓ Copied!"+s)}}),t.appendChild(s)}r.appendChild(t)}(e.searchable||e.columnToggle||e.exportPanel)&&i.appendChild(r);const a=document.createElement("table");a.className=t.table,a.style.cssText="width: 100%; border-collapse: collapse;";const l=document.createElement("thead");l.className=t.header;const h=document.createElement("tr");if(e.selectable&&"multiple"===e.selectionMode){const e=document.createElement("th");e.style.cssText="padding: 12px; border: 1px solid #ddd; background: #f8f9fa; width: 40px;";const t=document.createElement("input");t.type="checkbox",t.checked=this._selected.size>0&&this._selected.size===s.length,this._addEventHandler(t,"change",()=>{t.checked?this.selectAll():this.deselectAll()}),e.appendChild(t),h.appendChild(e)}for(const e of o){const o=document.createElement("th");o.style.cssText="padding: 12px; border: 1px solid #ddd; background: #f8f9fa; text-align: left;",e.width&&(o.style.width="number"==typeof e.width?e.width+"px":e.width);const n=this._sorts.find(t=>t.column===e.key);n&&(o.classList.add(t.sorted),o.classList.add("asc"===n.direction?t.sortAsc:t.sortDesc)),e.sortable?(o.style.cursor="pointer",o.innerHTML=`${e.title} <span style="opacity: 0.5">${n?"asc"===n.direction?"▲":"▼":"⇅"}</span>`,this._addEventHandler(o,"click",()=>{const t=this._sorts.find(t=>t.column===e.key),o="asc"===t?.direction?"desc":"asc";this.sort(e.key,o)})):o.textContent=e.title,h.appendChild(o)}l.appendChild(h),a.appendChild(l);const c=document.createElement("tbody");c.className=t.body;const d=e.rowKey;if(s.forEach((n,s)=>{const i=document.createElement("tr");i.className=t.row;const r=this._getRowColors(s);if(i.style.background=r.background,e.hover&&r.hover){i.style.transition="background 0.2s";const e=r.background;this._addEventHandler(i,"mouseenter",()=>i.style.background=r.hover),this._addEventHandler(i,"mouseleave",()=>i.style.background=e)}if(this._selected.has(n[d])&&(i.classList.add(t.selected),i.style.background="#e3f2fd"),e.selectable&&"multiple"===e.selectionMode){const e=document.createElement("td");e.style.cssText="padding: 12px; border: 1px solid #ddd;";const t=document.createElement("input");t.type="checkbox",t.checked=this._selected.has(n[d]),this._addEventHandler(t,"change",()=>{this.toggleSelect(n[d])}),e.appendChild(t),i.appendChild(e)}e.selectable&&"single"===e.selectionMode&&(i.style.cursor="pointer",this._addEventHandler(i,"click",()=>{this.toggleSelect(n[d])}));for(const r of o){const o=document.createElement("td");o.className=t.cell,o.style.cssText="padding: 12px; border: 1px solid #ddd;";if(this._editingCell&&this._editingCell.rowIndex===s&&this._editingCell.column===r.key&&r.editable){const t=document.createElement("input");t.type="text",t.value=n[r.key]||"",t.style.cssText="width: 100%; padding: 4px; border: 1px solid #007bff;",this._addEventHandler(t,"blur",()=>{this.updateRow(n[d],{[r.key]:t.value}),this.saveEdits(),e.onEdit&&e.onEdit({row:n,column:r.key,oldValue:n[r.key],newValue:t.value})}),this._addEventHandler(t,"keydown",e=>{"Enter"===e.key?t.blur():"Escape"===e.key&&this.cancelEdits()}),o.appendChild(t),setTimeout(()=>t.focus(),0)}else r.render?o.innerHTML=r.render(n[r.key],n,s):o.textContent=n[r.key]??"",r.editable&&e.editable&&(o.style.cursor="pointer",this._addEventHandler(o,"dblclick",()=>{this.editCell(s,r.key)}));i.appendChild(o)}c.appendChild(i)}),a.appendChild(c),i.appendChild(a),e.pagination){const o=document.createElement("div");o.className=t.pagination,o.style.cssText="display: flex; justify-content: space-between; align-items: center; margin-top: 15px; padding: 10px 0;";const n=this.pageInfo(),s=document.createElement("span");s.textContent=`Showing ${n.startRow}-${n.endRow} of ${n.totalRows}`;const r=document.createElement("span");r.innerHTML="Show ";const a=document.createElement("select");a.className="form-select",a.style.cssText="width: auto; display: inline-block; margin: 0 5px;";for(const t of e.pageSizeOptions){const e=document.createElement("option");e.value=t,e.textContent=t,t===this._pageSize&&(e.selected=!0),a.appendChild(e)}this._addEventHandler(a,"change",()=>{this.pageSize(Number(a.value))}),r.appendChild(a),r.appendChild(document.createTextNode(" entries"));const l=document.createElement("span"),h=(e,t,o=!1,n=!1)=>{const s=document.createElement("button");return n?s.innerHTML=e:s.textContent=e,s.disabled=o,s.style.cssText="padding: 6px 12px; margin: 0 2px; border: 1px solid #ddd; background: #fff; cursor: pointer; border-radius: 4px; display: inline-flex; align-items: center; justify-content: center;",o&&(s.style.opacity="0.5"),this._addEventHandler(s,"click",t),s};l.appendChild(h(_e.html("chevrons-left",{size:14}),()=>this.firstPage(),1===this._currentPage,!0)),l.appendChild(h(_e.html("chevron-left",{size:14}),()=>this.prevPage(),1===this._currentPage,!0));const c=5;let d=Math.max(1,this._currentPage-Math.floor(c/2)),u=Math.min(n.totalPages,d+c-1);d=Math.max(1,u-c+1);for(let e=d;e<=u;e++){const t=h(e,()=>this.page(e),!1);e===this._currentPage&&(t.style.background="#007bff",t.style.color="#fff",t.style.borderColor="#007bff"),l.appendChild(t)}l.appendChild(h(_e.html("chevron-right",{size:14}),()=>this.nextPage(),this._currentPage===n.totalPages,!0)),l.appendChild(h(_e.html("chevrons-right",{size:14}),()=>this.lastPage(),this._currentPage===n.totalPages,!0)),o.appendChild(r),o.appendChild(s),o.appendChild(l),i.appendChild(o)}return this.element.appendChild(i),e.onRender&&e.onRender(this),this}_addEventHandler(e,t,o){e.addEventListener(t,o),this._eventListeners.has(e)||this._eventListeners.set(e,[]),this._eventListeners.get(e).push({event:t,handler:o})}_clearEventListeners(){for(const[e,t]of this._eventListeners)for(const{event:o,handler:n}of t)e.removeEventListener(o,n);this._eventListeners.clear()}_restoreIconsBeforeRebuild(){this.element.querySelectorAll('svg[data-icon-processed="true"][data-original-icon]').forEach(e=>{const t=e.getAttribute("data-original-icon");if(t){const o=document.createElement("span");o.setAttribute("data-icon",t);const n=e.getAttribute("data-icon-size"),s=e.getAttribute("data-icon-color")||e.getAttribute("data-icon-colour"),i=e.getAttribute("data-icon-class");n&&o.setAttribute("data-icon-size",n),s&&o.setAttribute("data-icon-colour",s),i&&o.setAttribute("data-icon-class",i),e.replaceWith(o)}})}on(e,t){if(["sort","filter","page","select","edit","render"].includes(e)){const o="on"+e.charAt(0).toUpperCase()+e.slice(1);this.options[o]=t}return this}off(e){const t="on"+e.charAt(0).toUpperCase()+e.slice(1);return this.options[t]=null,this}refresh(){return this._applyFiltersAndSort(),this.render(),this}destroy(){this._clearEventListeners(),this.element&&(this.element.innerHTML="")}}const Me={_instances:new Map,create(e,t={}){const o="string"==typeof e?document.querySelector(e):e,n=new ye(o,t);return o&&this._instances.set(o,n),n},get(e){const t="string"==typeof e?document.querySelector(e):e;return this._instances.get(t)},destroy(e){const t="string"==typeof e?document.querySelector(e):e,o=this._instances.get(t);o&&(o.destroy(),this._instances.delete(t))},destroyAll(){for(const e of this._instances.values())e.destroy();this._instances.clear()}},be="domma-theme",we="domma-theme-variant",Le="dm-theme-",xe=["ocean-light","ocean-dark","forest-light","forest-dark","sunset-light","sunset-dark","royal-light","royal-dark","lemon-light","lemon-dark","silver-light","silver-dark","charcoal-light","charcoal-dark","christmas-light","christmas-dark","grayve","core-light"],Ce="charcoal-dark";const Ee=new class{constructor(){this._theme=Ce,this._listeners=[],this._target=null,this._initialised=!1,this._systemMediaQuery=null,this._autoDetect=!1,this._disabled=!1}init(e={}){const{theme:t=null,autoDetect:o=!1,persist:n=!0,disabled:s=!1,target:i=document.body}=e;if(s)return this._disabled=!0,this._initialised=!0,this;this._target="string"==typeof i?document.querySelector(i):i,this._target||(this._target=document.body),this._persist=n,this._autoDetect=o;let r=t;if(n){const e=this._loadFromStorage();e&&!t&&(r=e)}if(o&&!r){r="dark"===this._getSystemPreference()?"charcoal-dark":"charcoal-light",this._setupSystemListener()}return r=r||Ce,xe.includes(r)||(console.warn(`Invalid theme: ${r}. Using default: ${Ce}`),r=Ce),this._theme=r,this._applyTheme(),this._initialised=!0,this}get(){return this._theme}getBase(){return this._theme.split("-").slice(0,-1).join("-")}getMode(){return this._theme.split("-").pop()}isDark(){return"dark"===this.getMode()}isLight(){return"light"===this.getMode()}set(e){if(!xe.includes(e))return console.warn(`Invalid theme: ${e}. Available themes: ${xe.join(", ")}`),this;const t=this._theme;return t===e||(this._theme=e,this._applyTheme(),this._saveToStorage(),this._notifyListeners(t,e)),this}setVariant(){return console.warn('[ThemeEngine] setVariant() is deprecated. Use set() with full theme name (e.g., set("ocean-dark"))'),this}toggle(){return console.warn("[ThemeEngine] toggle() is deprecated. Use variant selector UI or set() method."),this}onChange(e){return"function"!=typeof e?(console.warn("onChange requires a function callback"),()=>{}):(this._listeners.push(e),()=>{const t=this._listeners.indexOf(e);t>-1&&this._listeners.splice(t,1)})}preview(e){if(!xe.includes(e))return console.warn(`Invalid theme for preview: ${e}`),()=>{};const t=this._theme;return this._theme=e,this._applyTheme(!1),()=>{this._theme=t,this._applyTheme(!1)}}listThemes(){return[...xe]}listBases(){return["ocean","forest","sunset","royal","lemon","silver","charcoal","christmas"]}listVariants(){return console.warn("[ThemeEngine] listVariants() is deprecated. Use listThemes() instead."),this.listBases()}getConfig(){return{theme:this._theme,base:this.getBase(),mode:this.getMode(),autoDetect:this._autoDetect,persist:this._persist,disabled:this._disabled}}_updateMetaThemeColor(){const e={light:"#ffffff",dark:"#121212"};let t=document.querySelector('meta[name="theme-color"]');t||(t=document.createElement("meta"),t.name="theme-color",document.head.appendChild(t)),t.content=e[this.getMode()]||e.dark}isDisabled(){return this._disabled}enable(){return this._disabled=!1,this._target||(this._target=document.body),this._applyTheme(),this}disable(){if(this._disabled=!0,this._target){const e=this._target.className.split(" ").filter(e=>!e.startsWith(Le));this._target.className=e.join(" ").trim()}return this}_applyTheme(e=!0){if(this._disabled)return;const t=this._target||document.body;if(!t)return void console.error("[ThemeEngine] No target element available for theme application");const o=t.className.split(" ").filter(e=>!e.startsWith(Le));o.push(`${Le}${this._theme}`),t.className=o.join(" ").trim(),e&&this._updateMetaThemeColor()}_saveToStorage(){if(this._persist&&"undefined"!=typeof localStorage)try{localStorage.setItem(be,this._theme),localStorage.removeItem(we)}catch(e){}}_loadFromStorage(){if("undefined"==typeof localStorage)return null;try{const e=localStorage.getItem(be);if(e&&xe.includes(e))return e;const t=e,o=localStorage.getItem(we);if(t&&["light","dark"].includes(t)){const e=`${o||"charcoal"}-${t}`;if(console.log(`[ThemeEngine] Migrating theme: ${t} + ${o} → ${e}`),xe.includes(e))return localStorage.setItem(be,e),localStorage.removeItem(we),e}return null}catch(e){return null}}_getSystemPreference(){return"undefined"!=typeof window&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}_setupSystemListener(){if("undefined"==typeof window||!window.matchMedia)return;this._systemMediaQuery=window.matchMedia("(prefers-color-scheme: dark)");const e=e=>{if(!this._autoDetect)return;const t=e.matches?"dark":"light",o=`${this.getBase()}-${t}`;xe.includes(o)&&this.set(o)};this._systemMediaQuery.addEventListener?this._systemMediaQuery.addEventListener("change",e):this._systemMediaQuery.addListener(e)}_notifyListeners(e,t){this._listeners.forEach(o=>{try{o(e,t)}catch(e){console.error("[ThemeEngine] Error in change listener:",e)}})}destroy(){this._systemMediaQuery&&this._systemMediaQuery.removeEventListener,this._listeners=[],this._target=null,this._initialised=!1}};"undefined"!=typeof document&&("loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{Ee._initialised||Ee.init({persist:!0,autoDetect:!1})}):Ee._initialised||Ee.init({persist:!0,autoDetect:!1}));const Se={apiUrl:null,token:null,user:null,config:{},eventHandlers:{},initialized:!1,init(e={}){this.config={apiUrl:e.apiUrl||"http://localhost:3001/api",storageKey:e.storageKey||"auth_token",userStorageKey:e.userStorageKey||"auth_user",autoCheck:!1!==e.autoCheck},this.apiUrl=this.config.apiUrl,this.token=H.get(this.config.storageKey),this.user=H.get(this.config.userStorageKey),this.config.autoCheck&&this.token&&this._verifyToken().catch(()=>{this._clearToken(),this.emit("tokenExpired",null)}),this.initialized=!0},async login(e,t){if(!this.initialized)throw new Error("Auth module not initialized. Call auth.init() first.");try{const n=await o.post(`${this.apiUrl}/auth/login`,{email:e,password:t});if(!n.success||!n.token)throw new Error(n.message||"Login failed");return this.token=n.token,this.user=n.user,this._storeToken(this.token),this._storeUser(this.user),this.emit("login",this.user),this.user}catch(e){throw this.emit("error",e.message||"Login failed"),e}},async register(e,t,n){if(!this.initialized)throw new Error("Auth module not initialized. Call auth.init() first.");try{const s=await o.post(`${this.apiUrl}/auth/register`,{email:e,password:t,name:n});if(!s.success||!s.token)throw new Error(s.message||"Registration failed");return this.token=s.token,this.user=s.user,this._storeToken(this.token),this._storeUser(this.user),this.emit("register",this.user),this.user}catch(e){throw this.emit("error",e.message||"Registration failed"),e}},logout(){this.token=null,this.user=null,this._clearToken(),this._clearUser(),this.emit("logout",null)},getUser(){return this.user},isAuthenticated(){return!!this.token&&!!this.user},getHeaders(){return this.token?{Authorization:`Bearer ${this.token}`}:{}},getApiUrl(){return this.apiUrl},getRole(){return this.user?.role||null},hasRole(e){return this.user?.role===e},hasAnyRole(e){return e.includes(this.user?.role)},isAdmin(){return"admin"===this.user?.role},isSubscriber(){return"subscriber"===this.user?.role},isGuest(){return"guest"===this.user?.role},async _verifyToken(){if(!this.token)throw new Error("No token to verify");try{const e=await o.get(`${this.apiUrl}/auth/me`,{headers:this.getHeaders()});if(!e.success||!e.user)throw new Error("Token verification failed");return this.user=e.user,this._storeUser(this.user),this.user}catch(e){throw this._clearToken(),this._clearUser(),e}},_storeToken(e){H.set(this.config.storageKey,e)},_storeUser(e){H.set(this.config.userStorageKey,e)},_clearToken(){H.remove(this.config.storageKey),this.token=null},_clearUser(){H.remove(this.config.userStorageKey),this.user=null},on(e,t){this.eventHandlers[e]||(this.eventHandlers[e]=[]),this.eventHandlers[e].push(t)},off(e,t){this.eventHandlers[e]&&(this.eventHandlers[e]=t?this.eventHandlers[e].filter(e=>e!==t):[])},emit(e,t){this.eventHandlers[e]&&this.eventHandlers[e].forEach(o=>{try{o(t)}catch(t){console.error(`Error in auth event handler for '${e}':`,t)}})}};class Be extends s{static defaults={emailPlaceholder:"your@email.com",passwordPlaceholder:"Enter your password",buttonText:"Login",showLabels:!0,onSubmit:null,onSuccess:null,onError:null};constructor(e,t={}){super(e,t),this._init()}_init(){if(!this.element)return;this.render();const e=this.element.querySelector("form");e&&this._addEventListener(e,"submit",async e=>{e.preventDefault(),await this.handleSubmit()})}render(){const e=this.options,t=`\n <form class="auth-login-form">\n <div class="form-group">\n ${e.showLabels?'<label class="form-label">Email</label>':""}\n <input\n type="email"\n class="form-input"\n name="email"\n placeholder="${e.emailPlaceholder}"\n required>\n </div>\n <div class="form-group">\n ${e.showLabels?'<label class="form-label">Password</label>':""}\n <input\n type="password"\n class="form-input"\n name="password"\n placeholder="${e.passwordPlaceholder}"\n required>\n </div>\n <button type="submit" class="btn btn-primary btn-block" style="margin-top: 1rem;">${e.buttonText}</button>\n </form>\n `;this.element.innerHTML=t}async handleSubmit(){const e=this.element.querySelector("form"),t=e.querySelector('[name="email"]').value,o=e.querySelector('[name="password"]').value;this.options.onSubmit&&this.options.onSubmit(t,o);try{await Se.login(t,o),this.options.onSuccess&&this.options.onSuccess(Se.getUser())}catch(e){this.options.onError&&this.options.onError(e)}}}class je extends s{static defaults={namePlaceholder:"Your name",emailPlaceholder:"your@email.com",passwordPlaceholder:"Create a password",buttonText:"Register",minPasswordLength:6,showLabels:!0,onSubmit:null,onSuccess:null,onError:null};constructor(e,t={}){super(e,t),this._init()}_init(){if(!this.element)return;this.render();const e=this.element.querySelector("form");e&&this._addEventListener(e,"submit",async e=>{e.preventDefault(),await this.handleSubmit()})}render(){const e=this.options,t=`\n <form class="auth-register-form">\n <div class="form-group">\n ${e.showLabels?'<label class="form-label">Name</label>':""}\n <input\n type="text"\n class="form-input"\n name="name"\n placeholder="${e.namePlaceholder}"\n required>\n </div>\n <div class="form-group">\n ${e.showLabels?'<label class="form-label">Email</label>':""}\n <input\n type="email"\n class="form-input"\n name="email"\n placeholder="${e.emailPlaceholder}"\n required>\n </div>\n <div class="form-group">\n ${e.showLabels?'<label class="form-label">Password</label>':""}\n <input\n type="password"\n class="form-input"\n name="password"\n placeholder="${e.passwordPlaceholder}"\n minlength="${e.minPasswordLength}"\n required>\n </div>\n <button type="submit" class="btn btn-primary btn-block" style="margin-top: 1rem;">${e.buttonText}</button>\n </form>\n `;this.element.innerHTML=t}async handleSubmit(){const e=this.element.querySelector("form"),t=e.querySelector('[name="name"]').value,o=e.querySelector('[name="email"]').value,n=e.querySelector('[name="password"]').value;this.options.onSubmit&&this.options.onSubmit(o,n,t);try{await Se.register(o,n,t),this.options.onSuccess&&this.options.onSuccess(Se.getUser())}catch(e){this.options.onError&&this.options.onError(e)}}}class ze extends s{static defaults={activeTab:"login",loginText:"Login",registerText:"Register",onChange:null};constructor(e,t={}){super(e,t),this._init()}_init(){if(!this.element)return;this.render();this.element.querySelectorAll("[data-tab]").forEach(e=>{this._addEventListener(e,"click",()=>{this.switchTab(e.getAttribute("data-tab"))})})}render(){const e=this.options,t=`\n <div class="btn-group btn-group-block" style="margin-bottom: 1.5rem;">\n <button class="btn ${"login"===e.activeTab?"active":""}" data-tab="login">\n ${e.loginText}\n </button>\n <button class="btn ${"register"===e.activeTab?"active":""}" data-tab="register">\n ${e.registerText}\n </button>\n </div>\n `;this.element.innerHTML=t}switchTab(e){this.options.activeTab=e;this.element.querySelectorAll("[data-tab]").forEach(t=>{t.getAttribute("data-tab")===e?t.classList.add("active"):t.classList.remove("active")}),this.options.onChange&&this.options.onChange(e)}}class Ae extends s{static defaults={showIcon:!0,showRole:!0,logoutText:"Logout",onLogout:null};_init(){if(!this.element)return;this.render();const e=this.element.querySelector(".auth-logout-btn");e&&this._addEventListener(e,"click",()=>{this.handleLogout()}),Se.on("login",()=>this.render()),Se.on("logout",()=>this.render())}render(){const e=this.options,t=Se.getUser();if(!t)return void(this.element.innerHTML="");this.element.innerHTML="";const o=document.createElement("div");o.className="auth-user-info";const n=document.createElement("span");if(n.className="auth-user-email",e.showIcon){const e=document.createElement("span");e.setAttribute("data-icon","user"),e.setAttribute("data-icon-size","18"),n.appendChild(e)}const s=document.createTextNode(t.email);if(n.appendChild(s),!1!==e.showRole&&t.role){const e={admin:"badge-danger",subscriber:"badge-primary",guest:"badge-secondary"}[t.role]||"badge-secondary",o=document.createElement("span");o.className=`badge ${e}`,o.textContent=t.role.charAt(0).toUpperCase()+t.role.slice(1),n.appendChild(o)}const i=document.createElement("button");i.className="auth-logout-btn",i.textContent=e.logoutText,o.appendChild(n),o.appendChild(i),this.element.appendChild(o)}handleLogout(){Se.logout(),this.options.onLogout&&this.options.onLogout()}}Se.LoginForm=Be,Se.RegisterForm=je,Se.AuthTabs=ze,Se.UserInfo=Ae,Se.createLoginForm=(e,t)=>new Be(e,t),Se.createRegisterForm=(e,t)=>new je(e,t),Se.createAuthTabs=(e,t)=>new ze(e,t),Se.createUserInfo=(e,t)=>new Ae(e,t);let We=!0;"undefined"!=typeof document&&document.body?document.body.classList.add("dm-cloaked"):"undefined"!=typeof document&&document.addEventListener("DOMContentLoaded",()=>{We&&document.body.classList.add("dm-cloaked")});const He=(e,o)=>t(e,o);He.version="0.7.6-alpha",He.buildInfo={version:"0.7.6-alpha",built:"09/01/2026 13:59",commit:"5527c59"},He.http=o,He.utils=n,He.setup=e=>(!1===e.cloak&&(We=!1,"undefined"!=typeof document&&document.body&&(document.body.classList.remove("dm-cloaked"),document.body.classList.add("dm-ready"))),e.noStyles?Ee.init({disabled:!0}):(e.theme||e.autoDetectTheme)&&Ee.init({theme:e.theme,autoDetect:e.autoDetectTheme,persist:!1!==e.persistTheme}),e.scanIcons&&_e.scan(),O.process(e)),He.update=(e,t)=>O.update(e,t),He.config=e=>O.config(e),He.reset=e=>O.reset(e),He.models=D,He.elements=W,He.dates=Z,He.tables=Me,He.forms=I,He.theme=Ee,He.icons=_e,He.storage=H,He.auth=Se,He.DesktopNotification=v;const Te=He,$e=n,De=D,Ve=Z,Ie=H,Oe=Se,Ne=I,qe=o;if(He.M=De,He.D=Ve,He.S=Ie,He.A=Oe,He.H=qe,"undefined"!=typeof window&&(window.Domma=He,window.$=Te,window._=$e,window.M=De,window.D=Ve,window.S=Ie,window.A=Oe,window.F=Ne,window.H=qe),"undefined"!=typeof document){const e=()=>{We&&document.body.classList.contains("dm-cloaked")&&document.body.classList.add("dm-ready")};"complete"===document.readyState?setTimeout(e,0):window.addEventListener("load",e)}export{Te as $,Oe as A,Ve as D,He as Domma,Ne as F,qe as H,De as M,Ie as S,$e as _,He as default};
|
|
8
|
+
class e{constructor(t,o){if("string"==typeof t)if(t.trim().startsWith("<")){const e=document.createElement("div");e.innerHTML=t.trim(),this.elements=Array.from(e.children)}else{const e=o||document;this.elements=Array.from(e.querySelectorAll(t))}else t instanceof Node?this.elements=[t]:t instanceof NodeList||t instanceof HTMLCollection?this.elements=Array.from(t):Array.isArray(t)?this.elements=t.filter(e=>e instanceof HTMLElement):this.elements=t instanceof e?[...t.elements]:[];this.length=this.elements.length}find(t){const o=[];return this.elements.forEach(e=>{o.push(...e.querySelectorAll(t))}),new e(o)}children(t){const o=[];return this.elements.forEach(e=>{o.push(...e.children)}),new e(t?o.filter(e=>e.matches(t)):o)}parent(t){const o=[];return this.elements.forEach(e=>{e.parentElement&&(t&&!e.parentElement.matches(t)||o.includes(e.parentElement)||o.push(e.parentElement))}),new e(o)}parents(t){const o=[];return this.elements.forEach(e=>{let s=e.parentElement;for(;s;)t&&!s.matches(t)||o.includes(s)||o.push(s),s=s.parentElement}),new e(o)}closest(t){const o=[];return this.elements.forEach(e=>{const s=e.closest(t);s&&!o.includes(s)&&o.push(s)}),new e(o)}siblings(t){const o=[];return this.elements.forEach(e=>{e.parentElement&&Array.from(e.parentElement.children).forEach(s=>{s===e||o.includes(s)||t&&!s.matches(t)||o.push(s)})}),new e(o)}next(t){const o=[];return this.elements.forEach(e=>{let s=e.nextElementSibling;s&&(t&&!s.matches(t)||o.push(s))}),new e(o)}nextAll(t){const o=[];return this.elements.forEach(e=>{let s=e.nextElementSibling;for(;s;)t&&!s.matches(t)||o.includes(s)||o.push(s),s=s.nextElementSibling}),new e(o)}prev(t){const o=[];return this.elements.forEach(e=>{let s=e.previousElementSibling;s&&(t&&!s.matches(t)||o.push(s))}),new e(o)}prevAll(t){const o=[];return this.elements.forEach(e=>{let s=e.previousElementSibling;for(;s;)t&&!s.matches(t)||o.includes(s)||o.unshift(s),s=s.previousElementSibling}),new e(o)}first(){return new e(this.elements[0]?[this.elements[0]]:[])}last(){return new e(this.elements.length?[this.elements[this.elements.length-1]]:[])}eq(t){const o=t<0?this.elements.length+t:t;return new e(this.elements[o]?[this.elements[o]]:[])}get(e){if(void 0===e)return this.elements;const t=e<0?this.elements.length+e:e;return this.elements[t]}filter(t){return new e("function"==typeof t?this.elements.filter((e,o)=>t.call(e,o,e)):this.elements.filter(e=>e.matches(t)))}not(t){return new e("function"==typeof t?this.elements.filter((e,o)=>!t.call(e,o,e)):this.elements.filter(e=>!e.matches(t)))}is(e){return this.elements.some(t=>t.matches(e))}has(t){return new e(this.elements.filter(e=>e.querySelector(t)))}add(t){const o=new e(t),s=[...this.elements];return o.elements.forEach(e=>{s.includes(e)||s.push(e)}),new e(s)}contents(){const t=[];return this.elements.forEach(e=>{t.push(...e.childNodes)}),new e(t)}toArray(){return[...this.elements]}index(t){if(void 0===t){const e=this.elements[0];return e&&e.parentElement?Array.from(e.parentElement.children).indexOf(e):-1}return"string"==typeof t?new e(t).elements.indexOf(this.elements[0]):this.elements.indexOf(t)}each(e){return this.elements.forEach((t,o)=>e.call(t,o,t)),this}html(e){return void 0===e?this.elements[0]?this.elements[0].innerHTML:"":this.each((t,o)=>{o.innerHTML=e})}text(e){return void 0===e?this.elements.map(e=>e.textContent).join(""):this.each((t,o)=>{o.textContent=e})}val(e){if(void 0===e){const e=this.elements[0];if(!e)return;return"checkbox"===e.type||"radio"===e.type?e.checked?e.value:void 0:"SELECT"===e.tagName&&e.multiple?Array.from(e.selectedOptions).map(e=>e.value):e.value}return this.each((t,o)=>{"checkbox"===o.type||"radio"===o.type?o.checked=Array.isArray(e)?e.includes(o.value):o.value===e:"SELECT"===o.tagName&&o.multiple&&Array.isArray(e)?Array.from(o.options).forEach(t=>{t.selected=e.includes(t.value)}):o.value=e})}attr(e,t){return"object"==typeof e?this.each((t,o)=>{Object.entries(e).forEach(([e,t])=>{o.setAttribute(e,t)})}):void 0===t?this.elements[0]?this.elements[0].getAttribute(e):void 0:this.each((o,s)=>{s.setAttribute(e,t)})}removeAttr(e){const t=e.split(/\s+/);return this.each((e,o)=>{t.forEach(e=>o.removeAttribute(e))})}prop(e,t){return"object"==typeof e?this.each((t,o)=>{Object.entries(e).forEach(([e,t])=>{o[e]=t})}):void 0===t?this.elements[0]?this.elements[0][e]:void 0:this.each((o,s)=>{s[e]=t})}removeProp(e){return this.each((t,o)=>{delete o[e]})}data(e,t){if(void 0===e){const e=this.elements[0];if(!e)return;const t={};return Object.keys(e.dataset).forEach(o=>{t[o]=e.dataset[o]}),t}return"object"==typeof e?this.each((t,o)=>{Object.entries(e).forEach(([e,t])=>{o.dataset[e]=t})}):void 0===t?this.elements[0]?this.elements[0].dataset[e]:void 0:this.each((o,s)=>{s.dataset[e]=t})}removeData(e){return this.each((t,o)=>{delete o.dataset[e]})}css(e,t){return"object"==typeof e?this.each((t,o)=>{Object.entries(e).forEach(([e,t])=>{o.style[e]=t})}):void 0===t?this.elements[0]?getComputedStyle(this.elements[0])[e]:"":this.each((o,s)=>{s.style[e]=t})}addClass(e){if("function"==typeof e)return this.each((t,o)=>{const s=e.call(o,t,o.className);s&&o.classList.add(...s.split(/\s+/).filter(Boolean))});const t=e.split(/\s+/).filter(Boolean);return this.each((e,o)=>{o.classList.add(...t)})}removeClass(e){if(void 0===e)return this.each((e,t)=>{t.className=""});if("function"==typeof e)return this.each((t,o)=>{const s=e.call(o,t,o.className);s&&o.classList.remove(...s.split(/\s+/).filter(Boolean))});const t=e.split(/\s+/).filter(Boolean);return this.each((e,o)=>{o.classList.remove(...t)})}toggleClass(e,t){if("function"==typeof e)return this.each((o,s)=>{const n=e.call(s,o,s.className,t);n&&n.split(/\s+/).filter(Boolean).forEach(e=>{s.classList.toggle(e,t)})});const o=e.split(/\s+/).filter(Boolean);return this.each((e,s)=>{o.forEach(e=>{s.classList.toggle(e,t)})})}hasClass(e){return this.elements.some(t=>t.classList.contains(e))}append(e){return this.each((t,o)=>{this._getNodes(e,t,o).forEach(e=>o.appendChild(e))})}prepend(e){return this.each((t,o)=>{const s=this._getNodes(e,t,o),n=o.firstChild;s.forEach(e=>o.insertBefore(e,n))})}after(e){return this.each((t,o)=>{const s=this._getNodes(e,t,o),n=o.parentNode,i=o.nextSibling;s.forEach(e=>n.insertBefore(e,i))})}before(e){return this.each((t,o)=>{const s=this._getNodes(e,t,o),n=o.parentNode;s.forEach(e=>n.insertBefore(e,o))})}appendTo(t){return new e(t).append(this),this}prependTo(t){return new e(t).prepend(this),this}insertAfter(t){return new e(t).after(this),this}insertBefore(t){return new e(t).before(this),this}wrap(e){return this.each((t,o)=>{const s=this._getWrapper(e,t,o);o.parentNode&&(o.parentNode.insertBefore(s,o),s.appendChild(o))})}wrapAll(e){if(0===this.elements.length)return this;const t=this._getWrapper(e,0,this.elements[0]);return this.elements[0].parentNode.insertBefore(t,this.elements[0]),this.elements.forEach(e=>t.appendChild(e)),this}wrapInner(e){return this.each((t,o)=>{const s=this._getWrapper(e,t,o);for(;o.firstChild;)s.appendChild(o.firstChild);o.appendChild(s)})}unwrap(e){return this.parent(e).each((e,t)=>{const o=t.parentNode;for(;t.firstChild;)o.insertBefore(t.firstChild,t);o.removeChild(t)}),this}remove(e){return(e?this.filter(e):this).each((e,t)=>{t.parentNode&&t.parentNode.removeChild(t)}),this}detach(){return this.remove()}empty(){return this.each((e,t)=>{t.innerHTML=""})}clone(t=!0){return new e(this.elements.map(e=>e.cloneNode(t)))}replaceWith(e){return this.each((t,o)=>{const s=this._getNodes(e,t,o),n=o.parentNode;s.forEach((e,t)=>{0===t?n.replaceChild(e,o):n.insertBefore(e,s[t-1].nextSibling)})})}replaceAll(t){return new e(t).replaceWith(this),this}_getNodes(t,o,s){if("function"==typeof t&&(t=t.call(s,o,s.innerHTML)),"string"==typeof t){if(t.trim().startsWith("<")){const e=document.createElement("div");return e.innerHTML=t,Array.from(e.childNodes)}return[document.createTextNode(t)]}return t instanceof HTMLElement?[t.cloneNode(!0)]:t instanceof e?t.elements.map(e=>e.cloneNode(!0)):[]}_getWrapper(t,o,s){let n;if("function"==typeof t&&(t=t.call(s,o)),"string"==typeof t){const e=document.createElement("div");e.innerHTML=t.trim(),n=e.firstElementChild}else n=t instanceof HTMLElement?t.cloneNode(!0):t instanceof e?t.elements[0].cloneNode(!0):document.createElement("div");return n}on(e,t,o){"function"==typeof t&&(o=t,t=null);const s=e.split(/\s+/);return this.each((e,n)=>{s.forEach(e=>{if(t){const s=e=>{const s=e.target.closest(t);s&&n.contains(s)&&o.call(s,e)};n.addEventListener(e,s),n._dommaHandlers=n._dommaHandlers||[],n._dommaHandlers.push({event:e,selector:t,handler:o,delegated:s})}else n.addEventListener(e,o)})})}off(e,t,o){return"function"==typeof t&&(o=t,t=null),this.each((s,n)=>{if(e){e.split(/\s+/).forEach(e=>{t&&n._dommaHandlers?n._dommaHandlers=n._dommaHandlers.filter(s=>!!(s.event!==e||s.selector!==t||o&&s.handler!==o)||(n.removeEventListener(e,s.delegated),!1)):o&&n.removeEventListener(e,o)})}})}one(e,t,o){"function"==typeof t&&(o=t,t=null);const s=this,n=function(i){o.call(this,i),s.off(e,t,n)};return this.on(e,t,n)}trigger(e,t){const o=new CustomEvent(e,{detail:t,bubbles:!0,cancelable:!0});return this.each((e,t)=>{t.dispatchEvent(o)})}triggerNative(e){return this.each((t,o)=>{const s=new Event(e,{bubbles:!0,cancelable:!0});o.dispatchEvent(s)})}click(e){return e?this.on("click",e):this.triggerNative("click")}dblclick(e){return e?this.on("dblclick",e):this.trigger("dblclick")}mousedown(e){return e?this.on("mousedown",e):this.trigger("mousedown")}mouseup(e){return e?this.on("mouseup",e):this.trigger("mouseup")}mousemove(e){return e?this.on("mousemove",e):this.trigger("mousemove")}mouseover(e){return e?this.on("mouseover",e):this.trigger("mouseover")}mouseout(e){return e?this.on("mouseout",e):this.trigger("mouseout")}mouseenter(e){return e?this.on("mouseenter",e):this.trigger("mouseenter")}mouseleave(e){return e?this.on("mouseleave",e):this.trigger("mouseleave")}keydown(e){return e?this.on("keydown",e):this.trigger("keydown")}keyup(e){return e?this.on("keyup",e):this.trigger("keyup")}keypress(e){return e?this.on("keypress",e):this.trigger("keypress")}focus(e){return e?this.on("focus",e):this.each((e,t)=>t.focus())}blur(e){return e?this.on("blur",e):this.each((e,t)=>t.blur())}change(e){return e?this.on("change",e):this.trigger("change")}select(e){return e?this.on("select",e):this.trigger("select")}submit(e){return e?this.on("submit",e):this.each((e,t)=>{t.submit&&t.submit()})}scroll(e){return e?this.on("scroll",e):this.trigger("scroll")}resize(e){return e?this.on("resize",e):this.trigger("resize")}hover(e,t){return this.on("mouseenter",e),t?this.on("mouseleave",t):this.on("mouseleave",e),this}show(e,t){return this.each((o,s)=>{e?(s.style.display="",s.style.opacity="0",s.style.transition=`opacity ${this._getDuration(e)}ms`,requestAnimationFrame(()=>{s.style.opacity="1",t&&setTimeout(()=>t.call(s),this._getDuration(e))})):(s.style.display="",t&&t.call(s))})}hide(e,t){return this.each((o,s)=>{e?(s.style.transition=`opacity ${this._getDuration(e)}ms`,s.style.opacity="0",setTimeout(()=>{s.style.display="none",s.style.opacity="",s.style.transition="",t&&t.call(s)},this._getDuration(e))):(s.style.display="none",t&&t.call(s))})}toggle(t,o){return this.each((s,n)=>{"none"===getComputedStyle(n).display?new e(n).show(t,o):new e(n).hide(t,o)})}fadeIn(e=400,t){return this.each((o,s)=>{s.style.display="",s.style.opacity="0",s.style.transition=`opacity ${this._getDuration(e)}ms`,requestAnimationFrame(()=>{s.style.opacity="1",setTimeout(()=>{s.style.transition="",t&&t.call(s)},this._getDuration(e))})})}fadeOut(e=400,t){return this.each((o,s)=>{s.style.transition=`opacity ${this._getDuration(e)}ms`,s.style.opacity="0",setTimeout(()=>{s.style.display="none",s.style.opacity="",s.style.transition="",t&&t.call(s)},this._getDuration(e))})}fadeToggle(t=400,o){return this.each((s,n)=>{"none"===getComputedStyle(n).display||"0"===getComputedStyle(n).opacity?new e(n).fadeIn(t,o):new e(n).fadeOut(t,o)})}fadeTo(e,t,o){return this.each((s,n)=>{n.style.display="",n.style.transition=`opacity ${this._getDuration(e)}ms`,requestAnimationFrame(()=>{n.style.opacity=String(t),setTimeout(()=>{n.style.transition="",o&&o.call(n)},this._getDuration(e))})})}slideUp(e=400,t){return this.each((o,s)=>{const n=s.offsetHeight;s.style.overflow="hidden",s.style.height=n+"px",s.style.transition=`height ${this._getDuration(e)}ms`,requestAnimationFrame(()=>{s.style.height="0",setTimeout(()=>{s.style.display="none",s.style.height="",s.style.overflow="",s.style.transition="",t&&t.call(s)},this._getDuration(e))})})}slideDown(e=400,t){return this.each((o,s)=>{s.style.display="";const n=s.scrollHeight;s.style.overflow="hidden",s.style.height="0",s.style.transition=`height ${this._getDuration(e)}ms`,requestAnimationFrame(()=>{s.style.height=n+"px",setTimeout(()=>{s.style.height="",s.style.overflow="",s.style.transition="",t&&t.call(s)},this._getDuration(e))})})}slideToggle(t=400,o){return this.each((s,n)=>{"none"===getComputedStyle(n).display?new e(n).slideDown(t,o):new e(n).slideUp(t,o)})}animate(e,t=400,o="ease",s){"function"==typeof t?(s=t,t=400,o="ease"):"function"==typeof o&&(s=o,o="ease");const n=Object.keys(e).join(", "),i=this._getDuration(t);return this.each((t,r)=>{r.style.transition=`${n} ${i}ms ${o}`,requestAnimationFrame(()=>{Object.entries(e).forEach(([e,t])=>{r.style[e]="number"==typeof t?t+"px":t}),setTimeout(()=>{r.style.transition="",s&&s.call(r)},i)})})}stop(){return this.each((e,t)=>{const o=getComputedStyle(t);t.style.transition="none",["opacity","height","width"].forEach(e=>{t.style[e]&&(t.style[e]=o[e])})})}delay(e){return new Promise(t=>{setTimeout(()=>t(this),e)})}_getDuration(e){return"number"==typeof e?e:"fast"===e?200:"slow"===e?600:400}width(t){if(void 0===t){const e=this.elements[0];if(!e)return;return e.getBoundingClientRect().width}return this.each((o,s)=>{const n="function"==typeof t?t.call(s,o,new e(s).width()):t;s.style.width="number"==typeof n?n+"px":n})}height(t){if(void 0===t){const e=this.elements[0];if(!e)return;return e.getBoundingClientRect().height}return this.each((o,s)=>{const n="function"==typeof t?t.call(s,o,new e(s).height()):t;s.style.height="number"==typeof n?n+"px":n})}innerWidth(){const e=this.elements[0];return e?e.clientWidth:void 0}innerHeight(){const e=this.elements[0];return e?e.clientHeight:void 0}outerWidth(e=!1){const t=this.elements[0];if(!t)return;let o=t.offsetWidth;if(e){const e=getComputedStyle(t);o+=parseFloat(e.marginLeft)+parseFloat(e.marginRight)}return o}outerHeight(e=!1){const t=this.elements[0];if(!t)return;let o=t.offsetHeight;if(e){const e=getComputedStyle(t);o+=parseFloat(e.marginTop)+parseFloat(e.marginBottom)}return o}offset(t){if(void 0===t){const e=this.elements[0];if(!e)return;const t=e.getBoundingClientRect();return{top:t.top+window.pageYOffset,left:t.left+window.pageXOffset}}return this.each((o,s)=>{"static"===getComputedStyle(s).position&&(s.style.position="relative");const n=new e(s).offset(),i=parseFloat(getComputedStyle(s).left)||0,r=parseFloat(getComputedStyle(s).top)||0;void 0!==t.left&&(s.style.left=i+t.left-n.left+"px"),void 0!==t.top&&(s.style.top=r+t.top-n.top+"px")})}position(){const e=this.elements[0];if(e)return{top:e.offsetTop,left:e.offsetLeft}}scrollTop(e){if(void 0===e){const e=this.elements[0];if(!e)return;return e===window?window.pageYOffset:e.scrollTop}return this.each((t,o)=>{o===window?window.scrollTo(window.pageXOffset,e):o.scrollTop=e})}scrollLeft(e){if(void 0===e){const e=this.elements[0];if(!e)return;return e===window?window.pageXOffset:e.scrollLeft}return this.each((t,o)=>{o===window?window.scrollTo(e,window.pageYOffset):o.scrollLeft=e})}offsetParent(){return new e(this.elements.map(e=>e.offsetParent||document.body))}}const t=(t,o)=>"function"==typeof t?("loading"===document.readyState?document.addEventListener("DOMContentLoaded",t):t(),new e([])):new e(t,o),o={async request(e,t,o=null,s={}){const n={method:e,headers:{...s.headers},...s};o&&"GET"!==e&&"HEAD"!==e&&(n.headers["Content-Type"]="application/json",n.body=JSON.stringify(o));try{const e=await fetch(t,n);if(!e.ok)throw new Error(`HTTP Error: ${e.status}`);return await e.json()}catch(e){throw console.error("Domma HTTP Error:",e),e}},get(e,t){return this.request("GET",e,null,t)},post(e,t,o){return this.request("POST",e,t,o)},put(e,t,o){return this.request("PUT",e,t,o)},patch(e,t,o){return this.request("PATCH",e,t,o)},delete(e,t){return this.request("DELETE",e,{delete:!0},t)},head(e,t){return this.request("HEAD",e,null,t)},options(e,t){return this.request("OPTIONS",e,null,t)}},s={chunk(e,t=1){if(!e||t<1)return[];const o=[];for(let s=0;s<e.length;s+=t)o.push(e.slice(s,s+t));return o},compact:e=>e?e.filter(Boolean):[],concat:(e,...t)=>e?e.concat(...t):[],difference(e,...t){if(!e)return[];const o=new Set(t.flat());return e.filter(e=>!o.has(e))},differenceBy(e,t,o){if(!e)return[];const s=new Set(t.map(o));return e.filter(e=>!s.has(o(e)))},differenceWith:(e,t,o)=>e?e.filter(e=>!t.some(t=>o(e,t))):[],drop:(e,t=1)=>e?e.slice(t):[],dropRight(e,t=1){if(!e)return[];const o=e.length-t;return o>0?e.slice(0,o):[]},dropRightWhile(e,t){if(!e)return[];let o=e.length;for(;o--&&t(e[o],o,e););return e.slice(0,o+1)},dropWhile(e,t){if(!e)return[];let o=0;for(;o<e.length&&t(e[o],o,e);)o++;return e.slice(o)},eq:(e,t)=>e===t||e!=e&&t!=t,fill:(e,t,o=0,s)=>e?e.fill(t,o,s):[],findIndex(e,t,o=0){if(!e)return-1;for(let s=o;s<e.length;s++)if(t(e[s],s,e))return s;return-1},findLastIndex(e,t,o){if(!e)return-1;for(let s=void 0!==o?o:e.length-1;s>=0;s--)if(t(e[s],s,e))return s;return-1},first:e=>e?e[0]:void 0,head(e){return this.first(e)},flatten:e=>e?e.flat(1):[],flattenDeep:e=>e?e.flat(1/0):[],flattenDepth:(e,t=1)=>e?e.flat(t):[],fromPairs:e=>e?Object.fromEntries(e):{},indexOf:(e,t,o=0)=>e?e.indexOf(t,o):-1,initial:e=>e?e.slice(0,-1):[],intersection(...e){if(!e.length)return[];return e[0].filter(t=>e.every(e=>e.includes(t)))},join:(e,t=",")=>e?e.join(t):"",last:e=>e?e[e.length-1]:void 0,lastIndexOf:(e,t,o)=>e?void 0!==o?e.lastIndexOf(t,o):e.lastIndexOf(t):-1,nth(e,t=0){if(e)return t<0?e[e.length+t]:e[t]},pull(e,...t){if(!e)return[];const o=new Set(t);for(let t=e.length-1;t>=0;t--)o.has(e[t])&&e.splice(t,1);return e},pullAt(e,...t){if(!e)return[];const o=t.flat().sort((e,t)=>t-e),s=[];return o.forEach(t=>{t>=0&&t<e.length&&s.unshift(e.splice(t,1)[0])}),s},reverse:e=>e?e.reverse():[],slice:(e,t=0,o)=>e?void 0!==o?e.slice(t,o):e.slice(t):[],tail:e=>e?e.slice(1):[],take:(e,t=1)=>e?e.slice(0,t):[],takeRight(e,t=1){if(!e)return[];const o=Math.max(0,e.length-t);return e.slice(o)},union:(...e)=>[...new Set(e.flat())],uniq:e=>e?[...new Set(e)]:[],uniqBy(e,t){if(!e)return[];const o=new Set;return e.filter(e=>{const s=t(e);return!o.has(s)&&(o.add(s),!0)})},without(e,...t){if(!e)return[];const o=new Set(t);return e.filter(e=>!o.has(e))},xor(...e){if(!e.length)return[];const t=new Map;return e.flat().forEach(e=>{t.set(e,(t.get(e)||0)+1)}),[...t.entries()].filter(([,e])=>1===e).map(([e])=>e)},zip(...e){if(!e.length)return[];const t=Math.max(...e.map(e=>e.length)),o=[];for(let s=0;s<t;s++)o.push(e.map(e=>e[s]));return o},zipObject(e,t){if(!e)return{};const o={};return e.forEach((e,s)=>{o[e]=t?t[s]:void 0}),o},times(e,t){if((e=Math.floor(e))<1)return[];const o=new Array(e);for(let s=0;s<e;s++)o[s]=t?t(s):s;return o},range(e,t,o){if(void 0===t&&(t=e,e=0),0===(o=void 0===o?e<t?1:-1:o))return[];const s=Math.max(Math.ceil((t-e)/(o||1)),0),n=new Array(s);for(let t=0;t<s;t++)n[t]=e+t*o;return n},uniqueId:(()=>{let e=0;return function(t=""){const o=++e;return t?`${t}${o}`:String(o)}})(),countBy(e,t){const o={};return this.each(e,e=>{const s=t(e);o[s]=(o[s]||0)+1}),o},each:(e,t)=>(Array.isArray(e)?e.forEach((o,s)=>t(o,s,e)):e&&"object"==typeof e&&Object.keys(e).forEach(o=>t(e[o],o,e)),e),forEach(e,t){return this.each(e,t)},eachRight(e,t){if(Array.isArray(e))for(let o=e.length-1;o>=0;o--)t(e[o],o,e);else if(e&&"object"==typeof e){Object.keys(e).reverse().forEach(o=>t(e[o],o,e))}return e},forEachRight(e,t){return this.eachRight(e,t)},every:(e,t)=>Array.isArray(e)?e.every(t):!e||"object"!=typeof e||Object.values(e).every(t),filter:(e,t)=>Array.isArray(e)?e.filter(t):e&&"object"==typeof e?Object.values(e).filter(t):[],find:(e,t)=>Array.isArray(e)?e.find(t):e&&"object"==typeof e?Object.values(e).find(t):void 0,findLast(e,t){if(Array.isArray(e)){for(let o=e.length-1;o>=0;o--)if(t(e[o],o,e))return e[o]}else if(e&&"object"==typeof e){return Object.values(e).reverse().find(t)}},flatMap(e,t){return this.map(e,t).flat(1)},flatMapDeep(e,t){return this.map(e,t).flat(1/0)},groupBy(e,t){const o={};return this.each(e,e=>{const s="function"==typeof t?t(e):e[t];o[s]||(o[s]=[]),o[s].push(e)}),o},includes:(e,t,o=0)=>"string"==typeof e||Array.isArray(e)?e.includes(t,o):!(!e||"object"!=typeof e)&&Object.values(e).includes(t),keyBy(e,t){const o={};return this.each(e,e=>{const s="function"==typeof t?t(e):e[t];o[s]=e}),o},map:(e,t)=>Array.isArray(e)?e.map(t):e&&"object"==typeof e?Object.entries(e).map(([o,s])=>t(s,o,e)):[],orderBy(e,t,o){const s=Array.isArray(e)?[...e]:Object.values(e),n=Array.isArray(t)?t:[t],i=Array.isArray(o)?o:[o||"asc"];return s.sort((e,t)=>{for(let o=0;o<n.length;o++){const s=n[o],r=i[o]||"asc",a="function"==typeof s?s(e):e[s],l="function"==typeof s?s(t):t[s];if(a<l)return"asc"===r?-1:1;if(a>l)return"asc"===r?1:-1}return 0})},partition(e,t){const o=[],s=[];return this.each(e,(n,i)=>{t(n,i,e)?o.push(n):s.push(n)}),[o,s]},reduce(e,t,o){if(Array.isArray(e))return void 0!==o?e.reduce(t,o):e.reduce(t);if(e&&"object"==typeof e){const s=Object.entries(e);let n=o,i=0;void 0===n&&s.length>0&&(n=s[0][1],i=1);for(let o=i;o<s.length;o++){const[i,r]=s[o];n=t(n,r,i,e)}return n}return o},reduceRight(e,t,o){if(Array.isArray(e))return void 0!==o?e.reduceRight(t,o):e.reduceRight(t);if(e&&"object"==typeof e){const s=Object.entries(e).reverse();let n=o,i=0;void 0===n&&s.length>0&&(n=s[0][1],i=1);for(let o=i;o<s.length;o++){const[i,r]=s[o];n=t(n,r,i,e)}return n}return o},reject(e,t){return this.filter(e,(e,o,s)=>!t(e,o,s))},sample(e){const t=Array.isArray(e)?e:Object.values(e||{});return t[Math.floor(Math.random()*t.length)]},sampleSize(e,t=1){return this.shuffle(Array.isArray(e)?[...e]:Object.values(e||{})).slice(0,t)},shuffle(e){const t=Array.isArray(e)?[...e]:Object.values(e||{});for(let e=t.length-1;e>0;e--){const o=Math.floor(Math.random()*(e+1));[t[e],t[o]]=[t[o],t[e]]}return t},size:e=>null==e?0:"string"==typeof e||Array.isArray(e)?e.length:"object"==typeof e?Object.keys(e).length:0,some:(e,t)=>Array.isArray(e)?e.some(t):!(!e||"object"!=typeof e)&&Object.values(e).some(t),sortBy:(e,t)=>(Array.isArray(e)?[...e]:Object.values(e)).sort((e,o)=>{const s="function"==typeof t?t(e):e[t],n="function"==typeof t?t(o):o[t];return s<n?-1:s>n?1:0}),after(e,t){let o=0;return function(...s){if(++o>=e)return t.apply(this,s)}},ary:(e,t=e.length)=>function(...o){return e.apply(this,o.slice(0,t))},before(e,t){let o,s=0;return function(...n){return++s<e&&(o=t.apply(this,n)),o}},bind:(e,t,...o)=>function(...s){return e.apply(t,[...o,...s])},curry:(e,t=e.length)=>function o(...s){return s.length>=t?e.apply(this,s):function(...e){return o.apply(this,[...s,...e])}},curryRight:(e,t=e.length)=>function o(...s){return s.length>=t?e.apply(this,s):function(...e){return o.apply(this,[...e,...s])}},debounce(e,t=0,o={}){let s,n,i,r,a,l=0;const h=o.leading||!1,c=!1!==o.trailing,d=o.maxWait;function u(t){const o=n,s=i;return n=i=void 0,l=t,r=e.apply(s,o),r}function p(e){const o=e-a;return void 0===a||o>=t||o<0||void 0!==d&&e-l>=d}function m(){const e=Date.now();if(p(e))return f(e);s=setTimeout(m,function(e){const o=e-a,s=e-l,n=t-o;return void 0!==d?Math.min(n,d-s):n}(e))}function f(e){return s=void 0,c&&n?u(e):(n=i=void 0,r)}function v(...e){const o=Date.now(),c=p(o);if(n=e,i=this,a=o,c){if(void 0===s)return function(e){return l=e,s=setTimeout(m,t),h?u(e):r}(a);if(void 0!==d)return s=setTimeout(m,t),u(a)}return void 0===s&&(s=setTimeout(m,t)),r}return v.cancel=function(){void 0!==s&&clearTimeout(s),l=0,n=a=i=s=void 0},v.flush=function(){return void 0===s?r:f(Date.now())},v},defer(e,...t){return setTimeout(()=>e.apply(this,t),1)},delay(e,t,...o){return setTimeout(()=>e.apply(this,o),t)},flip:e=>function(...t){return e.apply(this,t.reverse())},flow(...e){const t=e.length;return 0===t?function(e){return e}:1===t?e[0]:function(...o){let s=e[0].apply(this,o);for(let o=1;o<t;o++)s=e[o].call(this,s);return s}},compose(...e){return this.flow(...e.reverse())},memoize(e,t){const o=new Map,s=function(...s){const n=t?t.apply(this,s):s[0];if(o.has(n))return o.get(n);const i=e.apply(this,s);return o.set(n,i),i};return s.cache=o,s},negate:e=>function(...t){return!e.apply(this,t)},once(e){return this.before(2,e)},partial:(e,...t)=>function(...o){return e.apply(this,[...t,...o])},partialRight:(e,...t)=>function(...o){return e.apply(this,[...o,...t])},throttle(e,t=0,o={}){const s=!1!==o.leading,n=!1!==o.trailing;return this.debounce(e,t,{leading:s,trailing:n,maxWait:t})},unary(e){return this.ary(e,1)},wrap:(e,t)=>function(...o){return t.apply(this,[e,...o])},assign:(e,...t)=>Object.assign(e||{},...t),assignIn(e,...t){const o=e||{};return t.forEach(e=>{if(e)for(const t in e)o[t]=e[t]}),o},extend(e,...t){return this.assignIn(e,...t)},at(e,...t){return t.flat().map(t=>this.get(e,t))},clone:e=>null===e||"object"!=typeof e?e:Array.isArray(e)?[...e]:{...e},cloneDeep(e){if(null===e||"object"!=typeof e)return e;if(Array.isArray(e))return e.map(e=>this.cloneDeep(e));if(e instanceof Date)return new Date(e);if(e instanceof RegExp)return new RegExp(e);const t={};for(const o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=this.cloneDeep(e[o]));return t},defaults(e,...t){const o=e||{};return t.forEach(e=>{e&&Object.keys(e).forEach(t=>{void 0===o[t]&&(o[t]=e[t])})}),o},defaultsDeep(e,...t){const o=e||{};return t.forEach(e=>{e&&"object"==typeof e&&Object.keys(e).forEach(t=>{const s=o[t],n=e[t];void 0===s?o[t]=this.cloneDeep(n):s&&"object"==typeof s&&n&&"object"==typeof n&&!Array.isArray(s)&&!Array.isArray(n)&&this.defaultsDeep(s,n)})}),o},entries:e=>e?Object.entries(e):[],toPairs(e){return this.entries(e)},findKey(e,t){if(e)for(const o of Object.keys(e))if(t(e[o],o,e))return o},findLastKey(e,t){if(!e)return;const o=Object.keys(e).reverse();for(const s of o)if(t(e[s],s,e))return s},forIn(e,t){if(e)for(const o in e)if(!1===t(e[o],o,e))break;return e},forOwn(e,t){if(e)for(const o of Object.keys(e))if(!1===t(e[o],o,e))break;return e},get(e,t,o){if(!e)return o;const s=Array.isArray(t)?t:t.replace(/\[(\d+)]/g,".$1").split(".");let n=e;for(const e of s){if(null==n)return o;n=n[e]}return void 0===n?o:n},has(e,t){if(!e)return!1;const o=Array.isArray(t)?t:t.replace(/\[(\d+)]/g,".$1").split(".");let s=e;for(const e of o){if(!Object.prototype.hasOwnProperty.call(s,e))return!1;s=s[e]}return!0},invert(e){const t={};return e&&Object.entries(e).forEach(([e,o])=>{t[o]=e}),t},invertBy(e,t=e=>e){const o={};return e&&Object.entries(e).forEach(([e,s])=>{const n=t(s);o[n]||(o[n]=[]),o[n].push(e)}),o},keys:e=>e?Object.keys(e):[],keysIn(e){const t=[];for(const o in e)t.push(o);return t},mapKeys(e,t){const o={};return e&&Object.entries(e).forEach(([s,n])=>{o[t(n,s,e)]=n}),o},mapValues(e,t){const o={};return e&&Object.entries(e).forEach(([s,n])=>{o[s]=t(n,s,e)}),o},merge(e,...t){const o=e||{};return t.forEach(e=>{e&&"object"==typeof e&&Object.keys(e).forEach(t=>{const s=o[t],n=e[t];s&&"object"==typeof s&&n&&"object"==typeof n&&!Array.isArray(s)&&!Array.isArray(n)?this.merge(s,n):o[t]=n})}),o},omit(e,...t){if(!e)return{};const o=new Set(t.flat()),s={};return Object.keys(e).forEach(t=>{o.has(t)||(s[t]=e[t])}),s},omitBy(e,t){if(!e)return{};const o={};return Object.entries(e).forEach(([e,s])=>{t(s,e)||(o[e]=s)}),o},pick(e,...t){if(!e)return{};const o=new Set(t.flat()),s={};return o.forEach(t=>{t in e&&(s[t]=e[t])}),s},pickBy(e,t){if(!e)return{};const o={};return Object.entries(e).forEach(([e,s])=>{t(s,e)&&(o[e]=s)}),o},set(e,t,o){if(!e)return e;const s=Array.isArray(t)?t:t.replace(/\[(\d+)]/g,".$1").split(".");let n=e;for(let e=0;e<s.length-1;e++){const t=s[e],o=s[e+1];t in n&&null!==n[t]&&"object"==typeof n[t]||(n[t]=/^\d+$/.test(o)?[]:{}),n=n[t]}return n[s[s.length-1]]=o,e},unset(e,t){if(!e)return!0;const o=Array.isArray(t)?t:t.replace(/\[(\d+)]/g,".$1").split(".");let s=e;for(let e=0;e<o.length-1;e++){const t=o[e];if(!(t in s))return!0;s=s[t]}return delete s[o[o.length-1]]},setIfUndefined(e,t,o){return void 0===this.get(e,t)&&this.set(e,t,o),e},values:e=>e?Object.values(e):[],valuesIn(e){const t=[];for(const o in e)t.push(e[o]);return t},isArray:e=>Array.isArray(e),isBoolean:e=>"boolean"==typeof e||e instanceof Boolean,isDate:e=>e instanceof Date,isEmpty:e=>null==e||(Array.isArray(e)||"string"==typeof e?0===e.length:e instanceof Map||e instanceof Set?0===e.size:"object"!=typeof e||0===Object.keys(e).length),isEqual(e,t){if(e===t)return!0;if(null===e||null===t)return e===t;if(typeof e!=typeof t)return!1;if("object"!=typeof e)return!1;if(Array.isArray(e)&&Array.isArray(t))return e.length===t.length&&e.every((e,o)=>this.isEqual(e,t[o]));if(Array.isArray(e)||Array.isArray(t))return!1;const o=Object.keys(e),s=Object.keys(t);return o.length===s.length&&o.every(o=>this.isEqual(e[o],t[o]))},isMatch(e,t){if(e===t)return!0;if(null==e||null==t)return!1;if("object"!=typeof e||"object"!=typeof t)return!1;const o=Object.keys(t);for(const s of o){const o=e[s],n=t[s];if("object"==typeof n&&null!==n){if(!this.isMatch(o,n))return!1}else if(o!==n)return!1}return!0},isFinite:e=>Number.isFinite(e),isFunction:e=>"function"==typeof e,isInteger:e=>Number.isInteger(e),isNaN:e=>Number.isNaN(e),isNil:e=>null==e,isNull:e=>null===e,isNumber:e=>"number"==typeof e||e instanceof Number,isObject:e=>null!==e&&"object"==typeof e,isPlainObject(e){if(null===e||"object"!=typeof e)return!1;const t=Object.getPrototypeOf(e);return null===t||t===Object.prototype},isRegExp:e=>e instanceof RegExp,isString:e=>"string"==typeof e||e instanceof String,isSymbol:e=>"symbol"==typeof e,isUndefined:e=>void 0===e,parseInt:(e,t)=>(void 0===t&&(t=/^0x/i.test(e)?16:10),null==e?NaN:"number"==typeof e?Math.trunc(e):(e=String(e).trim(),parseInt(e,t))),toNumber(e){if("number"==typeof e)return e;if("symbol"==typeof e)return NaN;if(this.isObject(e)){const t="function"==typeof e.valueOf?e.valueOf():e;e=this.isObject(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.trim();const t=/^0b[01]+$/i.test(e),o=/^0o[0-7]+$/i.test(e),s=/^[-+]0x[0-9a-f]+$/i.test(e);return t||o?parseInt(e.slice(2),t?2:8):s?NaN:+e},toInteger(e){const t=this.toNumber(e);return Number.isNaN(t)?0:0!==t&&Number.isFinite(t)?Math.trunc(t):t},toFinite(e){const t=17976931348623157e292;if(!e)return 0===e?e:0;const o=this.toNumber(e);return o===1/0?t:o===-1/0?-t:o==o?o:0},toSafeInteger(e){const t=9007199254740991,o=this.toInteger(e);return o<-9007199254740991?-9007199254740991:o>t?t:o},toString(e){if(null==e)return"";if("string"==typeof e)return e;if(Array.isArray(e))return e.map(e=>null==e?"":this.toString(e)).join(",");if("symbol"==typeof e)return e.toString();const t=String(e);return"0"===t&&1/e==-1/0?"-0":t},toArray(e){return e?this.isArray(e)?[...e]:"string"==typeof e?e.split(""):this.isObject(e)?"function"==typeof e[Symbol.iterator]?[...e]:Object.values(e):[]:[]},castArray(...e){if(!e.length)return[];const t=e[0];return this.isArray(t)?t:[t]},toLength(e){const t=4294967295,o=this.toInteger(e);return o<0?0:o>t?t:o},toPlainObject(e){const t={};for(const o in e)t[o]=e[o];return t},add:(e,t)=>e+t,ceil(e,t=0){const o=Math.pow(10,t);return Math.ceil(e*o)/o},divide:(e,t)=>e/t,floor(e,t=0){const o=Math.pow(10,t);return Math.floor(e*o)/o},max:e=>e&&e.length?Math.max(...e):void 0,maxBy(e,t){if(e&&e.length)return e.reduce((e,o)=>("function"==typeof t?t(o):o[t])>("function"==typeof t?t(e):e[t])?o:e)},mean(e){return e&&e.length?this.sum(e)/e.length:NaN},meanBy(e,t){return e&&e.length?this.sumBy(e,t)/e.length:NaN},min:e=>e&&e.length?Math.min(...e):void 0,minBy(e,t){if(e&&e.length)return e.reduce((e,o)=>("function"==typeof t?t(o):o[t])<("function"==typeof t?t(e):e[t])?o:e)},multiply:(e,t)=>e*t,round(e,t=0){const o=Math.pow(10,t);return Math.round(e*o)/o},subtract:(e,t)=>e-t,sum:e=>e?e.reduce((e,t)=>e+t,0):0,sumBy:(e,t)=>e?e.reduce((e,o)=>e+("function"==typeof t?t(o):o[t]),0):0,clamp:(e,t,o)=>(void 0===o&&(o=t,t=void 0),void 0!==t&&e<t?t:void 0!==o&&e>o?o:e),inRange:(e,t,o)=>(void 0===o&&(o=t,t=0),t>o&&([t,o]=[o,t]),e>=t&&e<o),random:(e=0,t=1,o)=>("boolean"==typeof e?(o=e,e=0,t=1):"boolean"==typeof t&&(o=t,t=e,e=0),e>t&&([e,t]=[t,e]),o||e%1!=0||t%1!=0?e+Math.random()*(t-e):e+Math.floor(Math.random()*(t-e+1))),camelCase:e=>e?e.replace(/[^a-zA-Z0-9]+(.)/g,(e,t)=>t.toUpperCase()).replace(/^[A-Z]/,e=>e.toLowerCase()):"",capitalize:e=>e?e.charAt(0).toUpperCase()+e.slice(1).toLowerCase():"",endsWith:(e,t,o)=>!!e&&(void 0!==o?e.slice(0,o).endsWith(t):e.endsWith(t)),escape(e){if(!e)return"";const t={"&":"&","<":"<",">":">",'"':""","'":"'"};return e.replace(/[&<>"']/g,e=>t[e])},kebabCase:e=>e?e.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/[\s_]+/g,"-").toLowerCase():"",lowerCase(e){return e?this.words(e).join(" ").toLowerCase():""},lowerFirst:e=>e?e.charAt(0).toLowerCase()+e.slice(1):"",pad(e="",t=0,o=" "){const s=e.length;if(s>=t)return e;const n=t-s,i=Math.floor(n/2),r=n-i;return o.repeat(Math.ceil(i/o.length)).slice(0,i)+e+o.repeat(Math.ceil(r/o.length)).slice(0,r)},padEnd(e="",t=0,o=" "){const s=e.length;if(s>=t)return e;const n=t-s;return e+o.repeat(Math.ceil(n/o.length)).slice(0,n)},padStart(e="",t=0,o=" "){const s=e.length;if(s>=t)return e;const n=t-s;return o.repeat(Math.ceil(n/o.length)).slice(0,n)+e},repeat:(e="",t=1)=>e.repeat(Math.max(0,Math.floor(t))),replace:(e="",t,o)=>e.replace(t,o),snakeCase(e){return e?this.words(e).join("_").toLowerCase():""},split:(e="",t,o)=>e.split(t,o),startCase(e){return e?this.words(e).map(e=>this.capitalize(e)).join(" "):""},startsWith:(e,t,o=0)=>!!e&&e.startsWith(t,o),toLower:e=>e?e.toLowerCase():"",toUpper:e=>e?e.toUpperCase():"",trim(e="",t){if(!t)return e.trim();const o=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return e.replace(new RegExp(`^[${o}]+|[${o}]+$`,"g"),"")},trimEnd(e="",t){if(!t)return e.trimEnd();const o=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return e.replace(new RegExp(`[${o}]+$`,"g"),"")},trimStart(e="",t){if(!t)return e.trimStart();const o=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return e.replace(new RegExp(`^[${o}]+`,"g"),"")},truncate(e="",t={}){const o=t.length||30,s=t.omission||"...",n=t.separator;if(e.length<=o)return e;let i=o-s.length;if(i<1)return s;let r=e.slice(0,i);if(n){const e="string"==typeof n?r.lastIndexOf(n):r.search(new RegExp(n.source+"(?!.*"+n.source+")"));e>-1&&(r=r.slice(0,e))}return r+s},unescape(e){if(!e)return"";const t={"&":"&","<":"<",">":">",""":'"',"'":"'"};return e.replace(/&(?:amp|lt|gt|quot|#39);/g,e=>t[e])},upperCase(e){return e?this.words(e).join(" ").toUpperCase():""},upperFirst:e=>e?e.charAt(0).toUpperCase()+e.slice(1):"",words:(e="",t)=>t?e.match(t)||[]:(e=e.replace(/([a-z])([A-Z])/g,"$1 $2")).match(/[a-zA-Z0-9]+/g)||[],sprintf(e,...t){if(!e)return"";let o=0;return e.replace(/%(?:(\d+)\$)?([+-])?(\d+)?(?:\.(\d+))?([sdifojx%])/g,(e,s,n,i,r,a)=>{if("%"===a)return"%";const l=s?parseInt(s,10)-1:o++,h=t[l];if(void 0===h)return e;if(null===h)return"null";let c;switch(a){case"s":default:c=String(h);break;case"d":case"i":c=String(parseInt(h,10));break;case"f":const e=parseFloat(h);c=void 0!==r?e.toFixed(parseInt(r,10)):String(e);break;case"o":c=Object.prototype.toString.call(h);break;case"j":try{c=JSON.stringify(h)}catch(e){c="[Circular]"}break;case"x":c=parseInt(h,10).toString(16)}if(i){const e=parseInt(i,10),t="0"===n?"0":" ";c="-"===n?c.padEnd(e," "):c.padStart(e,t)}if("+"===n&&("d"===a||"i"===a||"f"===a)){parseFloat(c)>=0&&!c.startsWith("+")&&(c="+"+c)}return c})},format(e,...t){return this.sprintf(e,...t)},template(e,t={}){const{partials:o={},helpers:s={}}=t,n=e=>null==e?"":String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),i=(e,t)=>"."===t?e:t.startsWith("@")?e[t]:t.split(".").reduce((e,t)=>e&&void 0!==e[t]?e[t]:"",e),r=(e,t,a=null)=>{let l=e;return l=l.replace(/\{\{#with\s+([^}]+)\}\}([\s\S]*?)\{\{\/with\}\}/g,(e,o,s)=>{const n=i(t,o.trim());return n&&"object"==typeof n?r(s,n,t):""}),l=l.replace(/\{\{#each\s+([^}]+)\}\}([\s\S]*?)\{\{\/each\}\}/g,(e,o,s)=>{const n=i(t,o.trim());return Array.isArray(n)?n.map((e,o)=>{const i="object"==typeof e?{...e,"@index":o,"@first":0===o,"@last":o===n.length-1}:{".":e,"@index":o,"@first":0===o,"@last":o===n.length-1};return r(s,i,t)}).join(""):""}),l=l.replace(/\{\{#if\s+([^}]+)\}\}([\s\S]*?)(?:\{\{else\}\}([\s\S]*?))?\{\{\/if\}\}/g,(e,o,s,n="")=>{const l=i(t,o.trim()),h=Array.isArray(l)?l.length>0:Boolean(l);return r(h?s:n,t,a)}),l=l.replace(/\{\{#unless\s+([^}]+)\}\}([\s\S]*?)\{\{\/unless\}\}/g,(e,o,s)=>{const n=i(t,o.trim());return(Array.isArray(n)?0===n.length:!n)?r(s,t,a):""}),l=l.replace(/\{\{>\s*([^}]+)\}\}/g,(e,s)=>{const n=o[s.trim()];return n?r(n,t,a):""}),l=l.replace(/\{\{\{([^}]+)\}\}\}/g,(e,o)=>{const s=i(t,o.trim());return null!=s?String(s):""}),l=l.replace(/\{\{([^#/>][^}]*)\}\}/g,(e,o)=>{const r=o.trim(),a=r.match(/^(\w+)\s+(.+)$/);if(a&&s[a[1]]){const e=a[2].split(/\s+/).map(e=>/^["'].*["']$/.test(e)?e.slice(1,-1):i(t,e));return n(s[a[1]](...e))}const l=i(t,r);return n(l)}),l};return(t={})=>r(e,t)},render(e,t,o={}){return this.template(e,o)(t)},async copyToClipboard(e){if(navigator.clipboard?.writeText)try{return await navigator.clipboard.writeText(e),!0}catch(e){}const t=document.createElement("textarea");t.value=e,t.style.cssText="position:fixed;opacity:0;pointer-events:none",document.body.appendChild(t),t.select();try{return document.execCommand("copy")}catch(e){return!1}finally{document.body.removeChild(t)}},escapeHtml:e=>null==e?"":String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),chain(e){const t={_value:e,value(){return this._value}};["chunk","compact","concat","difference","drop","dropRight","fill","findIndex","findLastIndex","flatten","flattenDeep","flattenDepth","fromPairs","head","indexOf","initial","intersection","join","last","lastIndexOf","nth","pull","pullAll","pullAt","remove","reverse","slice","sortedIndex","sortedUniq","tail","take","takeRight","union","uniq","uniqBy","unzip","without","xor","zip","countBy","each","every","filter","find","findLast","flatMap","groupBy","includes","invokeMap","keyBy","map","orderBy","partition","reduce","reduceRight","reject","sample","sampleSize","shuffle","size","some","sortBy","assign","assignIn","at","defaults","entries","extend","findKey","findLastKey","forIn","forOwn","functions","get","has","invert","invertBy","invoke","keys","mapKeys","mapValues","merge","omit","omitBy","pick","pickBy","result","set","toPairs","transform","unset","update","values","camelCase","capitalize","deburr","endsWith","escape","escapeRegExp","kebabCase","lowerCase","lowerFirst","pad","padEnd","padStart","parseInt","repeat","replace","snakeCase","split","startCase","startsWith","toLower","toUpper","trim","trimEnd","trimStart","truncate","unescape","upperCase","upperFirst","words"].forEach(e=>{"function"==typeof this[e]&&(t[e]=function(...t){return this._value=s[e](this._value,...t),this})});return["sum","mean","min","max","toArray","toJSON","toString"].forEach(e=>{"function"==typeof this[e]&&(t[e]=function(...t){return s[e](this._value,...t)})}),t}};class n{constructor(e,t={}){this.element="string"==typeof e?document.querySelector(e):e,this.options={...this.constructor.defaults,...t},this._eventHandlers=[],this.element&&(this.element._dommaComponent=this)}on(e,t){this.options[e]&&"function"==typeof this.options[e]&&this.options[e](t)}setOptions(e){return this.options={...this.options,...e},"function"==typeof this._applyOptions&&this._applyOptions(),this}_addEventListener(e,t,o){e.addEventListener(t,o),this._eventHandlers.push({element:e,event:t,handler:o})}destroy(){for(const{element:e,event:t,handler:o}of this._eventHandlers)e.removeEventListener(t,o);this._eventHandlers=[],this.element&&delete this.element._dommaComponent}}class i extends n{static defaults={data:[],idKey:"id",parentKey:"parent_id",childrenKey:"children",labelKey:"name",iconKey:"icon",colorKey:"color",expandedByDefault:!0,expandedNodes:[],selectable:!0,multiSelect:!1,selectedNodes:[],renderNode:null,getBadge:null,getNodeIcon:null,getNodeClass:null,actions:[],indentSize:1.5,showIcons:!0,showToggleButtons:!0,toggleIcon:"chevron-down",onSelect:null,onDeselect:null,onExpand:null,onCollapse:null,onAction:null,onClick:null};constructor(e,t={}){super(e,t),this.element?(this._tree=[],this._flatMap={},this._expandedNodes=new Set,this._selectedNodes=new Set,this._init()):console.error("TreeView: Element not found",e)}_init(){this.element.classList.contains("dm-treeview")||this.element.classList.add("dm-treeview"),this.options.expandedNodes.length>0&&this.options.expandedNodes.forEach(e=>this._expandedNodes.add(e)),this.options.selectedNodes.length>0&&this.options.selectedNodes.forEach(e=>this._selectedNodes.add(e)),this.options.data&&this.options.data.length>0&&this.setData(this.options.data),this._setupEventListeners()}_setupEventListeners(){this._addEventListener(this.element,"click",e=>{const t=e.target.closest(".dm-treeview-node");if(!t||e.target.closest(".dm-treeview-toggle")||e.target.closest(".dm-treeview-action"))return;const o=this._parseNodeId(t.dataset.nodeId);this._handleSelect(o,e)}),this._addEventListener(this.element,"click",e=>{const t=e.target.closest(".dm-treeview-toggle");if(t){e.stopPropagation();const o=this._parseNodeId(t.dataset.nodeId);this.toggle(o)}}),this._addEventListener(this.element,"click",e=>{const t=e.target.closest(".dm-treeview-action");if(t){e.stopPropagation();const o=this._parseNodeId(t.dataset.nodeId),s=t.dataset.action;this._handleAction(s,o,e)}})}_buildTree(e){const t={},o=[],s=this.options.idKey,n=this.options.parentKey,i=this.options.childrenKey;return e.forEach(e=>{t[e[s]]={...e,[i]:[]}}),e.forEach(e=>{const r=t[e[s]],a=e[n];null==a?o.push(r):t[a]?t[a][i].push(r):o.push(r)}),this._sortTree(o),{tree:o,nodeMap:t}}_sortTree(e){const t=this.options.childrenKey,o=this.options.labelKey;e.sort((e,t)=>{const s=(e[o]||"").toLowerCase(),n=(t[o]||"").toLowerCase();return s.localeCompare(n)}),e.forEach(e=>{e[t]&&e[t].length>0&&this._sortTree(e[t])})}_render(){const e=this._tree.map(e=>this._renderNode(e,0)).join("");this.element.innerHTML=e}_renderNode(e,t){const o=this.options.idKey,s=this.options.childrenKey,n=e[o],i=e[s]&&e[s].length>0,r=this._expandedNodes.has(n),a=this._selectedNodes.has(n),l={isExpanded:r,isSelected:a,hasChildren:i},h=this.options.renderNode?this.options.renderNode(e,t,l):this._defaultRenderNode(e,t,l),c=this.options.getBadge?this.options.getBadge(e):null;let d=`\n <div class="dm-treeview-node ${a?"dm-treeview-node-selected":""} ${this.options.getNodeClass?this.options.getNodeClass(e):""}"\n data-node-id="${n}"\n data-depth="${t}"\n style="padding-left: ${t*this.options.indentSize}rem;">\n <div class="dm-treeview-node-content">\n ${i&&this.options.showToggleButtons?this._renderToggle(n,r):'<span class="dm-treeview-spacer"></span>'}\n ${h}\n ${null!=c?`<span class="dm-treeview-badge">${c}</span>`:""}\n </div>\n ${this.options.actions.length>0?this._renderActions(e):""}\n </div>\n `;return i&&r&&(d+=`<div class="dm-treeview-children" data-parent-id="${n}">`,e[s].forEach(e=>{d+=this._renderNode(e,t+1)}),d+="</div>"),d}_defaultRenderNode(e,t,o){const s=this.options.labelKey,n=this.options.iconKey,i=this.options.colorKey,r=e[s]||"",a=this.options.getNodeIcon?this.options.getNodeIcon(e):e[n],l=e[i];let h="";return this.options.showIcons&&a&&(h+=`<span class="dm-treeview-icon" data-icon="${a}" ${l?`style="color: ${l};"`:""}></span>`),h+=`<span class="dm-treeview-label">${this._escapeHtml(r)}</span>`,h}_renderToggle(e,t){return`\n <button type="button"\n class="dm-treeview-toggle ${t?"dm-treeview-expanded":"dm-treeview-collapsed"}"\n data-node-id="${e}"\n aria-label="${t?"Collapse":"Expand"}">\n <span data-icon="${this.options.toggleIcon}"></span>\n </button>\n `}_renderActions(e){const t=e[this.options.idKey],o=this.options.actions.filter(t=>"function"!=typeof t.visible||t.visible(e));if(0===o.length)return"";let s='<div class="dm-treeview-actions">';return o.forEach(e=>{s+=`\n <button type="button"\n class="dm-treeview-action"\n data-node-id="${t}"\n data-action="${e.name}"\n title="${e.tooltip||e.name}"\n aria-label="${e.tooltip||e.name}">\n ${e.icon?`<span data-icon="${e.icon}"></span>`:e.name}\n </button>\n `}),s+="</div>",s}_handleSelect(e,t){if(!this.options.selectable)return;const o=this._flatMap[e];if(!o)return;"function"==typeof this.options.onClick&&this.options.onClick(e,o,t);const s=this._selectedNodes.has(e);this.options.multiSelect?s?this.deselect(e):this.select(e):s?this.deselect(e):(this.deselectAll(!0),this.select(e))}_handleAction(e,t,o){const s=this._flatMap[t];s&&"function"==typeof this.options.onAction&&this.options.onAction(e,t,s,o)}_parseNodeId(e){const t=Number(e);return isNaN(t)||e!==t.toString()?e:t}_escapeHtml(e){const t=document.createElement("div");return t.textContent=e,t.innerHTML}setData(e){const{tree:t,nodeMap:o}=this._buildTree(e);return this._tree=t,this._flatMap=o,this.options.expandedByDefault&&Object.keys(o).forEach(e=>{const t=o[e],s=this.options.childrenKey;t[s]&&t[s].length>0&&this._expandedNodes.add(this._parseNodeId(e))}),this._render(),this}getData(){return this._tree}getFlatData(){return Object.values(this._flatMap)}refresh(){return this._render(),"undefined"!=typeof window&&window.Domma&&window.Domma.icons&&window.Domma.icons.scan(this.element),this}getNode(e){return this._flatMap[e]||null}updateNode(e,t){const o=this._flatMap[e];return o&&(Object.assign(o,t),this.refresh()),this}select(e,t=!1){if(!this.options.selectable)return this;const o=this._flatMap[e];return o?(this._selectedNodes.add(e),this.refresh(),t||"function"!=typeof this.options.onSelect||this.options.onSelect(e,o,null),this):this}deselect(e,t=!1){const o=this._flatMap[e];return o?(this._selectedNodes.delete(e),this.refresh(),t||"function"!=typeof this.options.onDeselect||this.options.onDeselect(e,o,null),this):this}toggleSelect(e){return this._selectedNodes.has(e)?this.deselect(e):this.select(e),this}selectAll(){return this.options.multiSelect?(Object.keys(this._flatMap).forEach(e=>{this._selectedNodes.add(this._parseNodeId(e))}),this.refresh(),this):this}deselectAll(e=!1){const t=Array.from(this._selectedNodes);return this._selectedNodes.clear(),this.refresh(),e||"function"!=typeof this.options.onDeselect||t.forEach(e=>{const t=this._flatMap[e];t&&this.options.onDeselect(e,t,null)}),this}getSelected(){return Array.from(this._selectedNodes)}getSelectedNodes(){return this.getSelected().map(e=>this._flatMap[e]).filter(Boolean)}isSelected(e){return this._selectedNodes.has(e)}expand(e,t=!1){const o=this._flatMap[e];return o?(this._expandedNodes.add(e),this.refresh(),t||"function"!=typeof this.options.onExpand||this.options.onExpand(e,o,null),this):this}collapse(e,t=!1){const o=this._flatMap[e];return o?(this._expandedNodes.delete(e),this.refresh(),t||"function"!=typeof this.options.onCollapse||this.options.onCollapse(e,o,null),this):this}toggle(e){return this._expandedNodes.has(e)?this.collapse(e):this.expand(e),this}expandAll(){return Object.keys(this._flatMap).forEach(e=>{const t=this._flatMap[e],o=this.options.childrenKey;t[o]&&t[o].length>0&&this._expandedNodes.add(this._parseNodeId(e))}),this.refresh(),this}collapseAll(){return this._expandedNodes.clear(),this.refresh(),this}isExpanded(e){return this._expandedNodes.has(e)}getExpanded(){return Array.from(this._expandedNodes)}getParent(e){const t=this._flatMap[e];if(!t)return null;const o=t[this.options.parentKey];return null!=o&&this._flatMap[o]||null}getChildren(e){const t=this._flatMap[e];if(!t)return[];return t[this.options.childrenKey]||[]}getAncestors(e){const t=[];let o=this.getParent(e);for(;o;)t.unshift(o),o=this.getParent(o[this.options.idKey]);return t}getDescendants(e){const t=[];return this.getChildren(e).forEach(e=>{t.push(e);const o=e[this.options.idKey];t.push(...this.getDescendants(o))}),t}getSiblings(e){if(!this._flatMap[e])return[];const t=this.getParent(e);return t?this.getChildren(t[this.options.idKey]).filter(t=>t[this.options.idKey]!==e):this._tree.filter(t=>t[this.options.idKey]!==e)}getLevel(e){return this.getAncestors(e).length}find(e){for(const t in this._flatMap){const o=this._flatMap[t];if(e(o))return o}return null}filter(e){const t=[];for(const o in this._flatMap){const s=this._flatMap[o];e(s)&&t.push(s)}return t}forEach(e){for(const t in this._flatMap)e(this._flatMap[t],t);return this}scrollToNode(e,t={}){const o=this.element.querySelector(`[data-node-id="${e}"]`);return o&&o.scrollIntoView({behavior:t.behavior||"smooth",block:t.block||"center",inline:t.inline||"nearest"}),this}destroy(){this._tree=[],this._flatMap={},this._expandedNodes.clear(),this._selectedNodes.clear(),this.element.innerHTML="",super.destroy()}}class r extends n{static defaults={hoverable:!0,shadow:"medium",rounded:!0,animation:!0,animationDuration:200,onHover:null,onLeave:null,onClick:null,collapsible:!1,collapsed:!1,persistKey:null,collapseIcon:"chevron-down",onCollapse:null,onExpand:null};constructor(e,t={}){super(e,t),this._init(),this._initCollapsible()}_init(){if(!this.element)return;const e=this.element,t=this.options;e.style.transition=t.animation?`transform ${t.animationDuration}ms ease, box-shadow ${t.animationDuration}ms ease`:"none",t.rounded&&(e.style.borderRadius="8px"),this._applyShadow(t.shadow),t.hoverable&&(this._addEventListener(e,"mouseenter",o=>{e.style.transform="scale(1.02)",this._applyShadow("large"),t.onHover&&t.onHover(o,this)}),this._addEventListener(e,"mouseleave",o=>{e.style.transform="scale(1)",this._applyShadow(t.shadow),t.onLeave&&t.onLeave(o,this)})),t.onClick&&(e.style.cursor="pointer",this._addEventListener(e,"click",e=>{t.onClick(e,this)}))}_applyShadow(e){const t={none:"none",small:"0 1px 3px rgba(0,0,0,0.12)",medium:"0 2px 8px rgba(0,0,0,0.15)",large:"0 8px 20px rgba(0,0,0,0.2)"};this.element.style.boxShadow=t[e]||t.medium}setShadow(e){return this.options.shadow=e,this._applyShadow(e),this}_initCollapsible(){this.options.collapsible&&(this.element.classList.add("card-collapsible"),this._addCollapseIcon(),this._bindHeaderClick(),this._restoreState())}_addCollapseIcon(){const e=this.element.querySelector(".card-header");if(!e)return;const t=document.createElement("span");for(t.className="card-header-content";e.firstChild;)t.appendChild(e.firstChild);e.appendChild(t);const o=document.createElement("span");o.className="card-collapse-icon";const s=Domma.icons.render(this.options.collapseIcon,{size:16});o.appendChild(s),e.appendChild(o)}_bindHeaderClick(){const e=this.element.querySelector(".card-header");e&&this._addEventListener(e,"click",()=>this.toggle())}_getStorageKey(){return this.options.persistKey||(this.element.id?`domma-card-${this.element.id}`:null)}_restoreState(){const e=this._getStorageKey();if(e){const t=Domma.storage.get(e);if(t?.collapsed)return void this._setCollapsed(!0,!1)}this.options.collapsed&&this._setCollapsed(!0,!1)}_saveState(){const e=this._getStorageKey();e&&Domma.storage.set(e,{collapsed:this.isCollapsed()})}_setCollapsed(e,t=!0){const o=this.element.querySelector(".card-body");o&&(e?(o.style.height=o.scrollHeight+"px",o.offsetHeight,o.style.height="0",this.element.classList.add("card-collapsed"),this.options.onCollapse&&this.options.onCollapse(this)):(this.element.classList.remove("card-collapsed"),o.style.height=o.scrollHeight+"px",setTimeout(()=>{o.style.height="auto"},200),this.options.onExpand&&this.options.onExpand(this)),t&&this._saveState())}collapse(){return this._setCollapsed(!0),this}expand(){return this._setCollapsed(!1),this}toggle(){return this._setCollapsed(!this.isCollapsed()),this}isCollapsed(){return this.element.classList.contains("card-collapsed")}}class a extends n{static defaults={backdrop:!0,backdropClose:!0,keyboard:!0,animation:"fade",animationDuration:300,closeButton:!0,onOpen:null,onOpened:null,onClose:null,onClosed:null,size:"medium",centered:!0,scrollable:!1,title:"",content:"",footer:"",buttons:[],className:"",headerClass:"",bodyClass:"",footerClass:"",onButtonClick:null};constructor(e,t={}){super(e,t),this._backdrop=null,this._isOpen=!1,this._init()}_init(){if(!this.element)return;const e=this.element,t=this.options;if(t._factoryCreated?(e.style.opacity="0",e.style.transition=`opacity ${t.animationDuration}ms ease, transform ${t.animationDuration}ms ease`):(e.style.display="none",e.style.position="fixed",e.style.top="50%",e.style.left="50%",e.style.transform="translate(-50%, -50%)",e.style.zIndex="1001",e.style.opacity="0",e.style.transition=`opacity ${t.animationDuration}ms ease, transform ${t.animationDuration}ms ease`),t.keyboard&&(this._keyHandler=e=>{"Escape"===e.key&&this._isOpen&&this.close()},document.addEventListener("keydown",this._keyHandler)),t.closeButton){const t=e.querySelector("[data-close], .modal-close, .close");t&&this._addEventListener(t,"click",()=>this.close())}e.querySelectorAll(".modal-close-btn").forEach(e=>{this._addEventListener(e,"click",()=>this.close())})}open(){if(this._isOpen)return this;const e=this.options,t=this.element;return e.onOpen&&e.onOpen(this),e.backdrop&&(this._backdrop=document.createElement("div"),this._backdrop.style.cssText=`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.5);\n z-index: 1000;\n opacity: 0;\n transition: opacity ${e.animationDuration}ms ease;\n `,document.body.appendChild(this._backdrop),e.backdropClose&&this._addEventListener(this._backdrop,"click",()=>this.close()),this._backdrop.offsetHeight,this._backdrop.style.opacity="1"),t.style.display="block",t.offsetHeight,"fade"===e.animation?t.style.opacity="1":"slide"===e.animation?(t.style.transform="translate(-50%, -50%)",t.style.opacity="1"):"zoom"===e.animation?(t.style.transform="translate(-50%, -50%) scale(1)",t.style.opacity="1"):t.style.opacity="1",this._isOpen=!0,setTimeout(()=>{e.onOpened&&e.onOpened(this)},e.animationDuration),this}close(){if(!this._isOpen)return this;const e=this.options,t=this.element;return e.onClose&&e.onClose(this),t.style.opacity="0",this._backdrop&&(this._backdrop.style.opacity="0"),setTimeout(()=>{t.style.display="none",this._backdrop&&(this._backdrop.remove(),this._backdrop=null),this._isOpen=!1,e.onClosed&&e.onClosed(this)},e.animationDuration),this}toggle(){return this._isOpen?this.close():this.open()}isOpen(){return this._isOpen}destroy(){super.destroy(),this._keyHandler&&document.removeEventListener("keydown",this._keyHandler),this._backdrop&&this._backdrop.remove()}remove(){return this._isOpen&&this.close(),setTimeout(()=>{this.destroy(),this.element&&this.element.parentNode&&this.element.remove(),this._backdrop&&(this._backdrop.remove(),this._backdrop=null);const e=void 0!==W?W:"undefined"!=typeof window&&window.Domma&&window.Domma.elements||null;e&&e._instances&&e._instances.has(this.element)&&e._instances.delete(this.element),this._overlay&&this._overlay.parentNode&&this._overlay.remove()},this.options.animationDuration),this}}const l={_container:null,_zIndexBase:1050,_activeModals:[],_defaults:{size:"large",title:"",content:"",buttons:[{id:"close",text:"Close",variant:"secondary"}],backdrop:!0,backdropClose:!0,keyboard:!0,animation:!0,animationDuration:300,className:"",headerClass:"",bodyClass:"",footerClass:"",scrollable:!1,onButtonClick:null,onOpen:null,onClose:null},_ensureContainer(){return this._container||(this._container=document.createElement("div"),this._container.className="dm-dialog-container",this._container.style.cssText="position: fixed; top: 0; left: 0; right: 0; bottom: 0; pointer-events: none; z-index: 1040;",document.body.appendChild(this._container)),this._container},_createElements(e){const t={...this._defaults,...e};this._ensureContainer();const o=document.createElement("div");o.className="dm-dialog-overlay",o.style.cssText=`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.5);\n display: none;\n align-items: center;\n justify-content: center;\n z-index: ${this._getNextZIndex()};\n pointer-events: auto;\n opacity: 0;\n transition: opacity ${t.animationDuration}ms ease;\n `;const s=document.createElement("div");s.className=`dm-dialog dm-dialog-${t.size}${t.className?" "+t.className:""}`,s.setAttribute("role","dialog"),s.setAttribute("aria-modal","true"),s.style.cssText=`\n background: white;\n border-radius: 8px;\n box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);\n max-width: 90%;\n max-height: 90vh;\n overflow: hidden;\n transform: scale(0.95) translateY(-10px);\n transition: transform ${t.animationDuration}ms ease, opacity ${t.animationDuration}ms ease;\n opacity: 0;\n `;let n='<div class="dm-dialog-content">';return t.title&&(n+=`<div class="dm-dialog-header${t.headerClass?" "+t.headerClass:""}" style="position: relative; padding: 1.5rem 1.5rem 1rem; border-bottom: 1px solid #e5e7eb;">`,n+=`<h3 class="dm-dialog-title" style="margin: 0; font-size: 1.25rem; font-weight: 600;">${t.title}</h3>`,t.backdrop&&t.backdropClose&&(n+='<button type="button" class="dm-dialog-close" aria-label="Close" style="position: absolute; right: 1rem; top: 1rem; background: none; border: none; font-size: 1.5rem; cursor: pointer; color: #6b7280; line-height: 1; padding: 0; width: 2rem; height: 2rem;">×</button>'),n+="</div>"),n+=`<div class="dm-dialog-body${t.bodyClass?" "+t.bodyClass:""}${t.scrollable?" dm-dialog-body-scrollable":""}" style="padding: 1.5rem;">`,n+=t.content,n+="</div>",t.buttons&&t.buttons.length>0&&(n+=`<div class="dm-dialog-footer${t.footerClass?" "+t.footerClass:""}" style="display: flex; justify-content: flex-end; gap: 0.5rem; padding: 1rem 1.5rem; border-top: 1px solid #e5e7eb; background: #f9fafb;">`,t.buttons.forEach(e=>{const t=e.variant||"secondary";n+=`<button type="button" class="btn btn-${t}" data-button-id="${e.id}">${e.text}</button>`}),n+="</div>"),n+="</div>",s.innerHTML=n,o.appendChild(s),{overlay:o,dialog:s,opts:t}},_getNextZIndex(){return this._zIndexBase+10*this._activeModals.length},createModal(e){const{overlay:t,dialog:o,opts:s}=this._createElements(e);s._factoryCreated=!0;const n=new a(o,s);n._overlay=t,n._factoryCreated=!0,this._ensureContainer().appendChild(t);const i=o.querySelector(".dm-dialog-close");return i&&i.addEventListener("click",()=>{n.close(),n._factoryCreated&&setTimeout(()=>n.remove(),s.animationDuration)}),o.querySelectorAll("[data-button-id]").forEach(e=>{e.addEventListener("click",()=>{const t=e.getAttribute("data-button-id");s.onButtonClick&&s.onButtonClick(t,n);const o=s.buttons.find(e=>e.id===t);o&&!1===o.close||(n.close(),n._factoryCreated&&setTimeout(()=>n.remove(),s.animationDuration))})}),s.backdropClose&&t.addEventListener("click",e=>{e.target===t&&(n.close(),n._factoryCreated&&setTimeout(()=>n.remove(),s.animationDuration))}),n.open.bind(n),n.open=function(){return t.style.display="flex",o.style.display="block",this._activeModals.push(n),setTimeout(()=>{t.style.opacity="1",o.style.transform="scale(1) translateY(0)",o.style.opacity="1"},10),s.onOpen&&s.onOpen(n),s.onOpened&&setTimeout(()=>s.onOpened(n),s.animationDuration),n._isOpen=!0,n}.bind(this),n.close.bind(n),n.close=function(){return n._isOpen?(s.onClose&&s.onClose(n),t.style.opacity="0",o.style.transform="scale(0.95) translateY(-10px)",o.style.opacity="0",setTimeout(()=>{t.style.display="none",o.style.display="none";const e=this._activeModals.indexOf(n);e>-1&&this._activeModals.splice(e,1),n._isOpen=!1,s.onClosed&&s.onClosed(n)},s.animationDuration),n):n}.bind(this),n},showModal(e){return new Promise(t=>{this.createModal({...e,onButtonClick:(o,s)=>{e.onButtonClick&&e.onButtonClick(o,s),t(o)}}).open()})}};class h extends n{static defaults={active:0,animation:"fade",animationDuration:200,tabSelector:".tab-item, [data-tab]",panelSelector:".tab-panel, [data-panel]",activeClass:"active",onChange:null};constructor(e,t={}){super(e,t),this._activeIndex=this.options.active,this._init()}_init(){if(!this.element)return;const e=this.options;this._tabs=this.element.querySelectorAll(e.tabSelector),this._panels=this.element.querySelectorAll(e.panelSelector),this._tabs.forEach((e,t)=>{this._addEventListener(e,"click",e=>{e.preventDefault(),this.activate(t)})}),this._updateState()}activate(e){if(e===this._activeIndex)return this;if(e<0||e>=this._tabs.length)return this;const t=this.options,o=this._activeIndex;return this._activeIndex=e,this._updateState(),t.onChange&&t.onChange({index:e,oldIndex:o,tab:this._tabs[e],panel:this._panels[e]}),this}_updateState(){const e=this.options;this._tabs.forEach((t,o)=>{o===this._activeIndex?t.classList.add(e.activeClass):t.classList.remove(e.activeClass)}),this._panels.forEach((t,o)=>{o===this._activeIndex?(t.style.display="block","fade"===e.animation&&(t.style.opacity="0",t.style.transition=`opacity ${e.animationDuration}ms ease`,t.offsetHeight,t.style.opacity="1")):t.style.display="none"})}getActive(){return this._activeIndex}show(e){return this.activate(e)}next(){const e=(this._activeIndex+1)%this._tabs.length;return this.activate(e)}prev(){const e=(this._activeIndex-1+this._tabs.length)%this._tabs.length;return this.activate(e)}}class c extends n{static defaults={allowMultiple:!1,multiExpand:null,activeIndex:null,animation:!0,animationDuration:300,headerSelector:".accordion-header, [data-accordion-header]",contentSelector:".accordion-body, [data-accordion-content]",activeClass:"active",onChange:null};constructor(e,t={}){super(e,t),null!==this.options.multiExpand&&(this.options.allowMultiple=this.options.multiExpand),this._init()}_init(){if(!this.element)return;const e=this.options;this._headers=this.element.querySelectorAll(e.headerSelector),this._contents=this.element.querySelectorAll(e.contentSelector),this._contents.forEach((t,o)=>{t.style.overflow="hidden",t.style.transition=e.animation?`height ${e.animationDuration}ms ease`:"none";const s=this._headers[o]?.parentElement;let n=s?.classList.contains(e.activeClass);null!==e.activeIndex&&(n=Array.isArray(e.activeIndex)?e.activeIndex.includes(o):e.activeIndex===o,n?s?.classList.add(e.activeClass):s?.classList.remove(e.activeClass)),t.style.height=n?"auto":"0"}),this._headers.forEach((e,t)=>{this._addEventListener(e,"click",()=>{this.toggle(t)})})}toggle(e){const t=this.options,o=this._headers[e],s=this._contents[e],n=o.parentElement.classList.contains(t.activeClass);return t.allowMultiple||this._headers.forEach((t,o)=>{o!==e&&this._close(o)}),n?this._close(e):this._open(e),t.onChange&&t.onChange({index:e,isOpen:!n,header:o,content:s}),this}_open(e){const t=this.options,o=this._headers[e],s=this._contents[e];o.parentElement.classList.add(t.activeClass),s.style.height=s.scrollHeight+"px",setTimeout(()=>{s.style.height="auto"},t.animationDuration)}_close(e){const t=this.options,o=this._headers[e],s=this._contents[e];o.parentElement.classList.remove(t.activeClass),s.style.height=s.scrollHeight+"px",s.offsetHeight,s.style.height="0"}open(e){return e>=0&&e<this._headers.length&&this._open(e),this}close(e){return e>=0&&e<this._headers.length&&this._close(e),this}openAll(){return this._headers.forEach((e,t)=>this._open(t)),this}closeAll(){return this._headers.forEach((e,t)=>this._close(t)),this}}class d extends n{static defaults={content:"",position:"top",trigger:"hover",delay:{show:0,hide:0},animation:!0,animationDuration:150,html:!1,offset:[0,8],container:null,onShow:null,onHide:null};constructor(e,t={}){super(e,t),this._tooltip=null,this._isVisible=!1,this._showTimeout=null,this._hideTimeout=null,this._init()}_init(){if(!this.element)return;const e=this.options,t=this.element;!e.content&&t.dataset.tooltip&&(e.content=t.dataset.tooltip),"hover"===e.trigger?(this._addEventListener(t,"mouseenter",()=>this.show()),this._addEventListener(t,"mouseleave",()=>this.hide())):"click"===e.trigger?this._addEventListener(t,"click",()=>this.toggle()):"focus"===e.trigger&&(this._addEventListener(t,"focus",()=>this.show()),this._addEventListener(t,"blur",()=>this.hide()))}show(){if(clearTimeout(this._hideTimeout),this._isVisible)return this;const e=this.options;return this._showTimeout=setTimeout(()=>{this._createTooltip(),this._positionTooltip(),e.onShow&&e.onShow(this)},e.delay.show),this}hide(){if(clearTimeout(this._showTimeout),!this._isVisible)return this;const e=this.options;return this._hideTimeout=setTimeout(()=>{this._tooltip&&(this._tooltip.classList.remove("show"),setTimeout(()=>{this._tooltip&&(this._tooltip.remove(),this._tooltip=null),this._isVisible=!1,e.onHide&&e.onHide(this)},e.animationDuration))},e.delay.hide),this}toggle(){return this._isVisible?this.hide():this.show()}_createTooltip(){const e=this.options;this._tooltip=document.createElement("div"),this._tooltip.className="domma-tooltip",e.html?this._tooltip.innerHTML=e.content:this._tooltip.textContent=e.content;(e.container||document.body).appendChild(this._tooltip),this._tooltip.offsetHeight,this._tooltip.classList.add("show"),this._isVisible=!0}_positionTooltip(){if(!this._tooltip||!this.element)return;const e=this.options,t=this.element.getBoundingClientRect(),o=this._tooltip.getBoundingClientRect(),[s,n]=e.offset;let i,r;switch(e.position){case"top":default:i=t.top-o.height-n,r=t.left+(t.width-o.width)/2+s;break;case"bottom":i=t.bottom+n,r=t.left+(t.width-o.width)/2+s;break;case"left":i=t.top+(t.height-o.height)/2+s,r=t.left-o.width-n;break;case"right":i=t.top+(t.height-o.height)/2+s,r=t.right+n}i+=window.scrollY,r+=window.scrollX,this._tooltip.style.top=i+"px",this._tooltip.style.left=r+"px"}setContent(e){return this.options.content=e,this._tooltip&&(this.options.html?this._tooltip.innerHTML=e:this._tooltip.textContent=e,this._positionTooltip()),this}destroy(){super.destroy(),clearTimeout(this._showTimeout),clearTimeout(this._hideTimeout),this._tooltip&&this._tooltip.remove()}}class u extends n{static defaults={variant:"primary",size:"medium",pill:!1,outline:!1,removable:!1,onClick:null,onRemove:null};static variants={primary:{bg:"#4f46e5",color:"#fff"},secondary:{bg:"#6b7280",color:"#fff"},success:{bg:"#10b981",color:"#fff"},danger:{bg:"#ef4444",color:"#fff"},warning:{bg:"#f59e0b",color:"#000"},info:{bg:"#3b82f6",color:"#fff"},light:{bg:"#f3f4f6",color:"#111"},dark:{bg:"#1f2937",color:"#fff"}};static sizes={small:{padding:"2px 6px",fontSize:"10px"},medium:{padding:"4px 10px",fontSize:"12px"},large:{padding:"6px 14px",fontSize:"14px"}};constructor(e,t={}){super(e,t),this._init()}_init(){this.element&&(this._applyStyles(),this.options.onClick&&(this.element.style.cursor="pointer",this._addEventListener(this.element,"click",e=>{e.target.classList.contains("domma-badge-remove")||this.options.onClick(e,this)})),this.options.removable&&this._addRemoveButton())}_applyStyles(){const e=this.options,t=u.variants[e.variant]||u.variants.primary,o=u.sizes[e.size]||u.sizes.medium;let s={display:"inline-flex",alignItems:"center",gap:"4px",fontWeight:"500",lineHeight:"1",borderRadius:e.pill?"9999px":"4px",transition:"all 150ms ease",...o};e.outline?(s.background="transparent",s.color=t.bg,s.border=`1px solid ${t.bg}`):(s.background=t.bg,s.color=t.color,s.border="none"),Object.assign(this.element.style,s)}_addRemoveButton(){const e=document.createElement("span");e.className="domma-badge-remove",e.innerHTML="×",this._addEventListener(e,"click",e=>{e.stopPropagation(),this.options.onRemove&&this.options.onRemove(e,this),this.remove()}),this.element.appendChild(e)}setVariant(e){return this.options.variant=e,this._applyStyles(),this}setText(e){const t=this.element.querySelector(".domma-badge-remove");return this.element.textContent=e,t&&this.element.appendChild(t),this}remove(){this.element&&this.element.remove(),this.destroy()}}class p extends n{static defaults={trigger:"click",position:"bottom-start",offset:[0,4],animation:!0,animationDuration:150,closeOnSelect:!0,closeOnClickOutside:!0,items:[],model:null,modelKey:null,itemTemplate:null,onOpen:null,onClose:null,onSelect:null};constructor(e,t={}){super(e,t),this._menu=null,this._isOpen=!1,this._items=[...this.options.items],this._selectedValue=null,this._modelUnsubscribe=null,this._init()}_init(){if(!this.element)return;const e=this.options;"click"===e.trigger?this._addEventListener(this.element,"click",e=>{e.stopPropagation(),this.toggle()}):"hover"===e.trigger&&(this._addEventListener(this.element,"mouseenter",()=>this.open()),this._addEventListener(this.element,"mouseleave",()=>this.close())),e.closeOnClickOutside&&(this._outsideClickHandler=e=>{!this._isOpen||this.element.contains(e.target)||this._menu&&this._menu.contains(e.target)||this.close()},document.addEventListener("click",this._outsideClickHandler)),e.model&&e.modelKey&&this._bindToModel(e.model,e.modelKey)}_bindToModel(e,t){if(e&&"function"==typeof e.get){const o=e.get(t);Array.isArray(o)&&(this._items=[...o]),"function"==typeof e.onChange&&(this._modelUnsubscribe=e.onChange((e,o)=>{e===t&&Array.isArray(o)&&(this._items=[...o],this._isOpen&&this._renderMenu())}))}}open(){if(this._isOpen)return this;const e=this.options;return e.onOpen&&e.onOpen(this),this._createMenu(),this._positionMenu(),this._isOpen=!0,this}close(){if(!this._isOpen)return this;const e=this.options;return this._menu&&(this._menu.classList.remove("show"),setTimeout(()=>{this._menu&&(this._menu.remove(),this._menu=null)},e.animationDuration)),this._isOpen=!1,e.onClose&&e.onClose(this),this}toggle(){return this._isOpen?this.close():this.open()}_createMenu(){this.options,this._menu=document.createElement("div"),this._menu.className="domma-dropdown-menu",this._renderMenu(),document.body.appendChild(this._menu),this._menu.offsetHeight,this._menu.classList.add("show")}_renderMenu(){if(!this._menu)return;const e=this.options;this._menu.innerHTML="",this._items.forEach((t,o)=>{const s=document.createElement("div");if(s.className="domma-dropdown-item","string"==typeof t)s.textContent=t,s.dataset.value=t;else{if(t.divider)return s.className="domma-dropdown-divider",void this._menu.appendChild(s);if(t.header)return s.className="domma-dropdown-header",s.textContent=t.header,void this._menu.appendChild(s);if(e.itemTemplate?s.innerHTML=e.itemTemplate(t,o):s.textContent=t.label||t.text||t.name||"",s.dataset.value=void 0!==t.value?t.value:o,t.disabled&&s.classList.add("disabled"),t.icon){const e=document.createElement("span");e.className="domma-dropdown-icon",e.innerHTML=t.icon,s.insertBefore(e,s.firstChild)}}this._addEventListener(s,"click",e=>{e.stopPropagation(),this._selectItem(t,o,s.dataset.value)}),this._menu.appendChild(s)})}_selectItem(e,t,o){const s=this.options;if(this._selectedValue=o,s.onSelect&&s.onSelect({item:e,index:t,value:o},this),s.model&&s.modelKey&&"function"==typeof s.model.set){const e=s.selectedKey||s.modelKey+"_selected";s.model.set(e,o)}s.closeOnSelect&&this.close()}_positionMenu(){if(!this._menu||!this.element)return;const e=this.options,t=this.element.getBoundingClientRect(),[o,s]=e.offset;let n,i;switch(e.position){case"bottom-start":default:n=t.bottom+s,i=t.left+o;break;case"bottom-end":n=t.bottom+s,i=t.right-this._menu.offsetWidth+o;break;case"top-start":n=t.top-this._menu.offsetHeight-s,i=t.left+o;break;case"top-end":n=t.top-this._menu.offsetHeight-s,i=t.right-this._menu.offsetWidth+o}n+=window.scrollY,i+=window.scrollX,this._menu.style.top=n+"px",this._menu.style.left=i+"px"}setItems(e){return this._items=[...e],this._isOpen&&this._renderMenu(),this}addItem(e){return this._items.push(e),this._isOpen&&this._renderMenu(),this}removeItem(e){return this._items.splice(e,1),this._isOpen&&this._renderMenu(),this}getSelected(){return this._selectedValue}isOpen(){return this._isOpen}destroy(){super.destroy(),this._outsideClickHandler&&document.removeEventListener("click",this._outsideClickHandler),this._modelUnsubscribe&&"function"==typeof this._modelUnsubscribe&&this._modelUnsubscribe(),this._menu&&this._menu.remove()}}class m{static defaults={position:"top-right",duration:3e3,pauseOnHover:!0,showProgress:!0,animation:"slide",animationDuration:300,closable:!0,maxToasts:5};static _containers={};static _toasts=[];static _getContainer(e){if(!m._containers[e]){const t=document.createElement("div");t.className=`domma-toast-container domma-toast-${e}`,document.body.appendChild(t),m._containers[e]=t}return m._containers[e]}static show(e,t={}){const o={...m.defaults,...t},s=m._getContainer(o.position);for(;m._toasts.length>=o.maxToasts;){const e=m._toasts.shift();e&&e.close()}const n=new f(e,o,s);return m._toasts.push(n),n}static success(e,t={}){return m.show(e,{...t,type:"success",icon:'<svg width="20" height="20" viewBox="0 0 20 20" fill="currentColor"><path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clip-rule="evenodd"/></svg>'})}static error(e,t={}){return m.show(e,{...t,type:"error",icon:'<svg width="20" height="20" viewBox="0 0 20 20" fill="currentColor"><path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z" clip-rule="evenodd"/></svg>'})}static warning(e,t={}){return m.show(e,{...t,type:"warning",icon:'<svg width="20" height="20" viewBox="0 0 20 20" fill="currentColor"><path fill-rule="evenodd" d="M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z" clip-rule="evenodd"/></svg>'})}static info(e,t={}){return m.show(e,{...t,type:"info",icon:'<svg width="20" height="20" viewBox="0 0 20 20" fill="currentColor"><path fill-rule="evenodd" d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z" clip-rule="evenodd"/></svg>'})}static closeAll(){m._toasts.forEach(e=>e.close()),m._toasts=[]}}class f{static typeStyles={default:{bg:"#1f2937",color:"#fff",accent:"#6b7280"},success:{bg:"#065f46",color:"#fff",accent:"#10b981"},error:{bg:"#991b1b",color:"#fff",accent:"#ef4444"},warning:{bg:"#92400e",color:"#fff",accent:"#f59e0b"},info:{bg:"#1e40af",color:"#fff",accent:"#3b82f6"}};constructor(e,t,o){this.options=t,this.container=o,this._element=null,this._progressBar=null,this._timeout=null,this._isPaused=!1,this._remainingTime=t.duration,this._startTime=null,this._create(e),this._show(),t.duration>0&&this._startTimer()}_create(e){const t=this.options,o=f.typeStyles[t.type||"default"];if(this._element=document.createElement("div"),this._element.className=`domma-toast domma-toast-${t.type||"default"}`,t.icon){const e=document.createElement("div");e.className="domma-toast-icon",e.innerHTML=t.icon,this._element.appendChild(e)}const s=document.createElement("div");if(s.className="domma-toast-content",t.title){const e=document.createElement("div");e.className="domma-toast-title",e.textContent=t.title,s.appendChild(e)}const n=document.createElement("div");if(n.className="domma-toast-message",t.html?n.innerHTML=e:n.textContent=e,s.appendChild(n),t.actions&&t.actions.length){const e=document.createElement("div");e.className="domma-toast-actions",t.actions.forEach(t=>{const s=document.createElement("button");s.textContent=t.label,s.style.cssText=`\n padding: 6px 12px;\n border: none;\n border-radius: 4px;\n font-size: 12px;\n font-weight: 500;\n cursor: pointer;\n background: ${t.primary?o.accent:"rgba(255,255,255,0.2)"};\n color: #fff;\n transition: opacity 150ms;\n `,s.addEventListener("mouseenter",()=>s.style.opacity="0.8"),s.addEventListener("mouseleave",()=>s.style.opacity="1"),s.addEventListener("click",()=>{t.onClick&&t.onClick(this),!1!==t.closeOnClick&&this.close()}),e.appendChild(s)}),s.appendChild(e)}if(this._element.appendChild(s),t.closable){const e=document.createElement("button");e.innerHTML="×",e.style.cssText="\n background: none;\n border: none;\n color: inherit;\n font-size: 20px;\n cursor: pointer;\n opacity: 0.7;\n padding: 0;\n line-height: 1;\n flex-shrink: 0;\n transition: opacity 150ms;\n ",e.addEventListener("mouseenter",()=>e.style.opacity="1"),e.addEventListener("mouseleave",()=>e.style.opacity="0.7"),e.addEventListener("click",()=>this.close()),this._element.appendChild(e)}t.showProgress&&t.duration>0&&(this._progressBar=document.createElement("div"),this._progressBar.style.cssText=`\n position: absolute;\n bottom: 0;\n left: 0;\n height: 3px;\n background: ${o.accent};\n width: 100%;\n transform-origin: left;\n transition: transform linear;\n `,this._element.appendChild(this._progressBar)),t.pauseOnHover&&(this._element.addEventListener("mouseenter",()=>this._pause()),this._element.addEventListener("mouseleave",()=>this._resume())),this.container.appendChild(this._element)}_show(){this._element.offsetHeight,this._element.classList.add("show")}_startTimer(){this._startTime=Date.now(),this._progressBar&&(this._progressBar.style.transitionDuration=this._remainingTime+"ms",this._progressBar.offsetHeight,this._progressBar.style.transform="scaleX(0)"),this._timeout=setTimeout(()=>this.close(),this._remainingTime)}_pause(){if(!this._isPaused&&this._timeout&&(this._isPaused=!0,clearTimeout(this._timeout),this._remainingTime-=Date.now()-this._startTime,this._progressBar)){const e=getComputedStyle(this._progressBar);this._progressBar.style.transitionDuration="0ms",this._progressBar.style.transform=e.transform}}_resume(){this._isPaused&&(this._isPaused=!1,this._startTimer())}close(){if(!this._element)return;const e=this.options;clearTimeout(this._timeout),this._element.classList.add("hiding"),this._element.classList.remove("show"),setTimeout(()=>{if(this._element){this._element.remove(),this._element=null;const t=m._toasts.indexOf(this);t>-1&&m._toasts.splice(t,1),e.onClose&&e.onClose(this)}},e.animationDuration)}update(e,t={}){if(!this._element)return;const o=this._element.querySelector(".domma-toast > div:nth-child(2) > div:last-of-type");return o&&(t.html?o.innerHTML=e:o.textContent=e),this}}class v{static permission="undefined"!=typeof Notification?Notification.permission:"denied";static isSupported="undefined"!=typeof Notification;static _instances=[];static defaults={title:"Notification",body:"",icon:null,badge:null,tag:null,requireInteraction:!1,silent:!1,data:null,onClick:null,onClose:null,onError:null,onShow:null};static async requestPermission(){if(!v.isSupported)return console.warn("Notifications are not supported in this browser"),"denied";try{const e=await Notification.requestPermission();return v.permission=e,e}catch(e){return console.error("Error requesting notification permission:",e),"denied"}}static notify(e,t={}){const o=new v({title:e,...t});return o.show(),o}static closeAll(){v._instances.forEach(e=>{e.isShown()&&e.close()}),v._instances=[]}constructor(e={}){this.options={...v.defaults,...e},this.notification=null,this._shown=!1}async show(){if(!v.isSupported)return console.warn("Notifications are not supported in this browser"),this.options.onError&&this.options.onError(new Error("Notifications not supported")),this;if("granted"!==v.permission){if("default"!==v.permission)return console.warn("Notification permission denied"),this.options.onError&&this.options.onError(new Error("Permission denied")),this;if("granted"!==await v.requestPermission())return console.warn("Notification permission denied"),this.options.onError&&this.options.onError(new Error("Permission denied")),this}try{const e={};this.options.body&&(e.body=this.options.body),this.options.icon&&(e.icon=this.options.icon),this.options.badge&&(e.badge=this.options.badge),this.options.tag&&(e.tag=this.options.tag),void 0!==this.options.requireInteraction&&(e.requireInteraction=this.options.requireInteraction),void 0!==this.options.silent&&(e.silent=this.options.silent),this.options.data&&(e.data=this.options.data),this.notification=new Notification(this.options.title,e),this._shown=!0,v._instances.push(this),this.options.onClick&&(this.notification.onclick=e=>{this.options.onClick(e,this)}),this.options.onClose?this.notification.onclose=e=>{this._shown=!1;const t=v._instances.indexOf(this);t>-1&&v._instances.splice(t,1),this.options.onClose(e,this)}:this.notification.onclose=()=>{this._shown=!1;const e=v._instances.indexOf(this);e>-1&&v._instances.splice(e,1)},this.options.onError&&(this.notification.onerror=e=>{this._shown=!1,this.options.onError(e,this)}),this.options.onShow&&(this.notification.onshow=e=>{this.options.onShow(e,this)})}catch(e){console.error("Error showing notification:",e),this.options.onError&&this.options.onError(e)}return this}close(){return this.notification&&this._shown&&(this.notification.close(),this._shown=!1),this}isShown(){return this._shown}}class k extends n{static defaults={duration:6e4,autoStart:!1,format:"mm:ss",showControls:!1,updateInterval:100,notification:!1,notificationOptions:{},sound:!1,soundUrl:null,onTick:null,onComplete:null,onStart:null,onPause:null,onReset:null};constructor(e,t={}){super(e,t),e||(this.element=null,this.options={...k.defaults,...t}),this._running=!1,this._remaining=this.options.duration,this._intervalId=null,this._startTime=null,this._pausedTime=null,this._display=null,this._controls=null,this._audio=null,this._init()}_init(){this.element&&(this._createDisplay(),this.options.showControls&&this._createControls()),this.options.sound&&this.options.soundUrl&&(this._audio=new Audio(this.options.soundUrl)),this.options.autoStart&&this.start()}_createDisplay(){if(!this.element)return;const e=document.createElement("div");e.className="dm-timer",this._display=document.createElement("div"),this._display.className="dm-timer-display";const t=document.createElement("span");t.className="dm-timer-time",t.textContent=this._formatTime(this._remaining),this._display.appendChild(t),e.appendChild(this._display),this.element.innerHTML="",this.element.appendChild(e),this._container=e}_createControls(){if(!this.element||!this._container)return;const e=document.createElement("div");e.className="dm-timer-controls",this._startBtn=document.createElement("button"),this._startBtn.className="dm-timer-button dm-timer-start",this._startBtn.textContent="Start",this._startBtn.addEventListener("click",()=>this.start()),this._pauseBtn=document.createElement("button"),this._pauseBtn.className="dm-timer-button dm-timer-pause",this._pauseBtn.textContent="Pause",this._pauseBtn.style.display="none",this._pauseBtn.addEventListener("click",()=>this.pause()),this._resetBtn=document.createElement("button"),this._resetBtn.className="dm-timer-button dm-timer-reset",this._resetBtn.textContent="Reset",this._resetBtn.addEventListener("click",()=>this.reset()),e.appendChild(this._startBtn),e.appendChild(this._pauseBtn),e.appendChild(this._resetBtn),this._container.appendChild(e),this._controls=e}_updateDisplay(){if(!this._display)return;const e=this._display.querySelector(".dm-timer-time");e&&(e.textContent=this._formatTime(this._remaining))}_formatTime(e){const t=Math.max(0,Math.floor(e/1e3)),o=Math.floor(t/3600),s=Math.floor(t%3600/60),n=t%60,i=this.options.format.toLowerCase();if("hh:mm:ss"===i)return`${String(o).padStart(2,"0")}:${String(s).padStart(2,"0")}:${String(n).padStart(2,"0")}`;if("mm:ss"===i){const e=Math.floor(t/60);return`${String(e).padStart(2,"0")}:${String(n).padStart(2,"0")}`}return"ss"===i?String(t).padStart(2,"0"):`${String(s).padStart(2,"0")}:${String(n).padStart(2,"0")}`}_tick(){if(!this._running)return;const e=Date.now()-this._startTime;this._remaining=Math.max(0,this.options.duration-e),this._updateDisplay(),this.options.onTick&&this.options.onTick(this._remaining),0===this._remaining&&this._complete()}_complete(){if(this.stop(),this.options.sound&&this._audio&&this._audio.play().catch(e=>{console.warn("Failed to play timer sound:",e)}),this.options.notification&&v.isSupported){const e={title:"Timer Complete",body:"Your countdown has finished",...this.options.notificationOptions};v.notify(e.title,e)}this.options.onComplete&&this.options.onComplete()}start(){return this._running||(this._running=!0,this._startTime=Date.now()-(this.options.duration-this._remaining),this._intervalId=setInterval(()=>this._tick(),this.options.updateInterval),this._startBtn&&(this._startBtn.style.display="none"),this._pauseBtn&&(this._pauseBtn.style.display="inline-block"),this.options.onStart&&this.options.onStart()),this}pause(){return this._running?(this._running=!1,this._pausedTime=Date.now(),this._intervalId&&(clearInterval(this._intervalId),this._intervalId=null),this._startBtn&&(this._startBtn.style.display="inline-block"),this._pauseBtn&&(this._pauseBtn.style.display="none"),this.options.onPause&&this.options.onPause(),this):this}reset(){return this.stop(),this._remaining=this.options.duration,this._updateDisplay(),this._startBtn&&(this._startBtn.style.display="inline-block"),this._pauseBtn&&(this._pauseBtn.style.display="none"),this.options.onReset&&this.options.onReset(),this}stop(){return this._running=!1,this._intervalId&&(clearInterval(this._intervalId),this._intervalId=null),this}add(e){return this._remaining=Math.min(this._remaining+e,864e5),this._updateDisplay(),this}subtract(e){return this._remaining=Math.max(0,this._remaining-e),this._updateDisplay(),0===this._remaining&&this._running&&this._complete(),this}setDuration(e){return this.options.duration=e,this._running||(this._remaining=e,this._updateDisplay()),this}isRunning(){return this._running}getRemaining(){return this._remaining}getElapsed(){return this.options.duration-this._remaining}destroy(){this.stop(),this._startBtn&&this._startBtn.removeEventListener("click",this.start),this._pauseBtn&&this._pauseBtn.removeEventListener("click",this.pause),this._resetBtn&&this._resetBtn.removeEventListener("click",this.reset),this.element&&this._container&&this.element.removeChild(this._container),this._display=null,this._controls=null,this._audio=null,this._container=null,super.destroy&&super.destroy()}}class g{static defaults={alarms:[],timezone:"local",checkInterval:3e4,storageKey:"domma-alarms",onTrigger:null,onSnooze:null,onDismiss:null,onAlarmAdd:null,onAlarmRemove:null};static _instance=null;static _checkInterval=null;static _nextAlarmId=1;constructor(e={}){if(g._instance)return g._instance;this.options={...g.defaults,...e},this._alarms=[],this._init(),g._instance=this}_init(){this._loadAlarms(),this._startChecking()}_loadAlarms(){try{const e=localStorage.getItem(this.options.storageKey);if(e){const t=JSON.parse(e);if(this._alarms=Array.isArray(t)?t:[],this._alarms.length>0){const e=Math.max(...this._alarms.map(e=>{const t=String(e.id).match(/\d+$/);return t?parseInt(t[0]):0}));g._nextAlarmId=e+1}}else this.options.alarms&&this.options.alarms.length>0&&(this._alarms=this.options.alarms.map(e=>({id:"alarm-"+g._nextAlarmId++,enabled:!0,notification:!0,notificationOptions:{},sound:!1,soundUrl:null,repeat:null,lastTriggered:null,snoozedUntil:null,...e})),this._saveAlarms())}catch(e){console.error("Failed to load alarms from localStorage:",e),this._alarms=[]}}_saveAlarms(){try{localStorage.setItem(this.options.storageKey,JSON.stringify(this._alarms))}catch(e){console.error("Failed to save alarms to localStorage:",e)}}_startChecking(){g._checkInterval||(g._checkInterval=setInterval(()=>{this._checkAlarms()},this.options.checkInterval),this._checkAlarms())}_stopChecking(){g._checkInterval&&(clearInterval(g._checkInterval),g._checkInterval=null)}_checkAlarms(){const e=new Date;this._alarms.forEach(t=>{t.enabled&&(t.snoozedUntil&&e<new Date(t.snoozedUntil)||(t.snoozedUntil&&e>=new Date(t.snoozedUntil)&&(t.snoozedUntil=null,this._saveAlarms()),this._shouldTrigger(t,e)&&this._triggerAlarm(t)))})}_shouldTrigger(e,t){const{hours:o,minutes:s}=this._parseTime(e.time),n=t.getHours(),i=t.getMinutes();if(n!==o||i!==s)return!1;if(e.lastTriggered){if(t-new Date(e.lastTriggered)<5e4)return!1}return!!this._matchesRepeatPattern(e,t)}_parseTime(e){const[t,o]=e.split(":").map(e=>parseInt(e,10));return{hours:t,minutes:o}}_matchesRepeatPattern(e,t){if(!e.repeat)return!0;const o=t.getDay();if("daily"===e.repeat)return!0;if("weekdays"===e.repeat)return o>=1&&o<=5;if("weekends"===e.repeat)return 0===o||6===o;if(Array.isArray(e.repeat)){const t=["sun","mon","tue","wed","thu","fri","sat"][o];return e.repeat.includes(t)}return!1}_triggerAlarm(e){if(e.lastTriggered=Date.now(),this._saveAlarms(),e.sound&&e.soundUrl){new Audio(e.soundUrl).play().catch(e=>{console.warn("Failed to play alarm sound:",e)})}if(e.notification&&v.isSupported){const t={title:"Alarm",body:e.label||`Alarm at ${e.time}`,requireInteraction:!0,...e.notificationOptions};v.notify(t.title,t)}this.options.onTrigger&&this.options.onTrigger(e),e.repeat||(e.enabled=!1,this._saveAlarms())}add(e){const t={id:"alarm-"+g._nextAlarmId++,enabled:!0,notification:!0,notificationOptions:{},sound:!1,soundUrl:null,repeat:null,lastTriggered:null,snoozedUntil:null,...e};return this._alarms.push(t),this._saveAlarms(),this.options.onAlarmAdd&&this.options.onAlarmAdd(t),t}remove(e){const t=this._alarms.findIndex(t=>t.id===e);if(-1===t)return!1;const o=this._alarms.splice(t,1)[0];return this._saveAlarms(),this.options.onAlarmRemove&&this.options.onAlarmRemove(o),!0}update(e,t){const o=this._alarms.find(t=>t.id===e);return o?(Object.assign(o,t),this._saveAlarms(),o):null}enable(e){return null!==this.update(e,{enabled:!0})}disable(e){return null!==this.update(e,{enabled:!1})}toggle(e){const t=this._alarms.find(t=>t.id===e);return t?(t.enabled=!t.enabled,this._saveAlarms(),t.enabled):null}snooze(e,t=3e5){const o=this._alarms.find(t=>t.id===e);return!!o&&(o.snoozedUntil=Date.now()+t,this._saveAlarms(),this.options.onSnooze&&this.options.onSnooze(o,t),!0)}getAlarms(){return[...this._alarms]}getAlarm(e){return this._alarms.find(t=>t.id===e)||null}getNextAlarm(){const e=new Date;let t=null,o=null;return this._alarms.forEach(s=>{if(!s.enabled)return;const n=this._getNextOccurrence(s,e);n&&(!o||n<o)&&(o=n,t={...s,nextTrigger:n})}),t}_getNextOccurrence(e,t){const{hours:o,minutes:s}=this._parseTime(e.time),n=new Date(t),i=new Date(n);i.setHours(o,s,0,0),i<=n&&i.setDate(i.getDate()+1);for(let t=0;t<7;t++){if(this._matchesRepeatPattern(e,i))return i;i.setDate(i.getDate()+1)}return null}clearAll(){return this._alarms=[],this._saveAlarms(),this}destroy(){this._stopChecking(),this._alarms=[],g._instance=null}}class _ extends n{static defaults={autoplay:!1,interval:5e3,pauseOnHover:!0,loop:!0,animation:"slide",animationDuration:500,showArrows:!0,showIndicators:!0,slideSelector:".carousel-slide, [data-slide]",activeClass:"active",onChange:null};constructor(e,t={}){super(e,t),this._currentIndex=0,this._autoplayTimer=null,this._isAnimating=!1,this._init()}_init(){if(!this.element)return;const e=this.options;this._slides=this.element.querySelectorAll(e.slideSelector),this._track=this.element.querySelector(".carousel-track"),0!==this._slides.length&&(this.element.style.position="relative",this.element.style.overflow="hidden",this._slides.forEach((t,o)=>{"fade"===e.animation?(t.style.position=0===o?"relative":"absolute",t.style.top="0",t.style.left="0",t.style.width="100%",t.style.opacity=0===o?"1":"0",t.style.zIndex=0===o?"1":"0",t.style.transition=`opacity ${e.animationDuration}ms ease`):(t.style.position="relative",t.style.width="100%",t.style.flexShrink="0")}),"slide"===e.animation&&this._track&&(this._track.style.display="flex",this._track.style.transition=`transform ${e.animationDuration}ms ease`),e.showArrows&&this._createArrows(),e.showIndicators&&this._createIndicators(),e.autoplay&&(this._startAutoplay(),e.pauseOnHover&&(this._addEventListener(this.element,"mouseenter",()=>this._stopAutoplay()),this._addEventListener(this.element,"mouseleave",()=>this._startAutoplay()))),this._addEventListener(this.element,"keydown",e=>{"ArrowLeft"===e.key&&this.prev(),"ArrowRight"===e.key&&this.next()}),this.element.tabIndex=0,this._updateState())}_createArrows(){const e=document.createElement("button");e.className="carousel-arrow carousel-prev",e.innerHTML='<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M15 18l-6-6 6-6"/></svg>',e.style.cssText="\n position: absolute;\n top: 50%;\n left: 1rem;\n transform: translateY(-50%);\n z-index: 10;\n background: rgba(255,255,255,0.9);\n border: none;\n border-radius: 50%;\n width: 40px;\n height: 40px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n box-shadow: 0 2px 8px rgba(0,0,0,0.15);\n ",this._addEventListener(e,"click",()=>this.prev()),this._addEventListener(e,"mouseenter",()=>e.style.background="#fff"),this._addEventListener(e,"mouseleave",()=>e.style.background="rgba(255,255,255,0.9)");const t=document.createElement("button");t.className="carousel-arrow carousel-next",t.innerHTML='<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 18l6-6-6-6"/></svg>',t.style.cssText=e.style.cssText.replace("left: 1rem","right: 1rem"),this._addEventListener(t,"click",()=>this.next()),this._addEventListener(t,"mouseenter",()=>t.style.background="#fff"),this._addEventListener(t,"mouseleave",()=>t.style.background="rgba(255,255,255,0.9)"),this.element.appendChild(e),this.element.appendChild(t),this._prevBtn=e,this._nextBtn=t}_createIndicators(){const e=document.createElement("div");e.className="carousel-indicators",e.style.cssText="\n position: absolute;\n bottom: 1rem;\n left: 50%;\n transform: translateX(-50%);\n display: flex;\n gap: 0.5rem;\n z-index: 10;\n ",this._slides.forEach((t,o)=>{const s=document.createElement("button");s.className="carousel-indicator",s.style.cssText="\n width: 10px;\n height: 10px;\n border-radius: 50%;\n border: none;\n background: rgba(255,255,255,0.5);\n cursor: pointer;\n padding: 0;\n transition: all 0.2s ease;\n ",this._addEventListener(s,"click",()=>this.goTo(o)),e.appendChild(s)}),this.element.appendChild(e),this._indicators=e}_updateState(){const e=this.options;if("fade"===e.animation?this._slides.forEach((e,t)=>{const o=t===this._currentIndex;e.style.position=o?"relative":"absolute",e.style.opacity=o?"1":"0",e.style.zIndex=o?"1":"0"}):this._track&&(this._track.style.transform=`translateX(-${100*this._currentIndex}%)`),this._indicators){this._indicators.querySelectorAll(".carousel-indicator").forEach((e,t)=>{e.style.background=t===this._currentIndex?"rgba(255,255,255,1)":"rgba(255,255,255,0.5)",e.style.transform=t===this._currentIndex?"scale(1.2)":"scale(1)"})}!e.loop&&this._prevBtn&&this._nextBtn&&(this._prevBtn.style.opacity=0===this._currentIndex?"0.3":"1",this._prevBtn.style.pointerEvents=0===this._currentIndex?"none":"auto",this._nextBtn.style.opacity=this._currentIndex===this._slides.length-1?"0.3":"1",this._nextBtn.style.pointerEvents=this._currentIndex===this._slides.length-1?"none":"auto")}_startAutoplay(){this._autoplayTimer||(this._autoplayTimer=setInterval(()=>{this.next()},this.options.interval))}_stopAutoplay(){this._autoplayTimer&&(clearInterval(this._autoplayTimer),this._autoplayTimer=null)}goTo(e){if(this._isAnimating)return this;const t=this.options,o=this._currentIndex,s=this._slides.length-1;if(t.loop)e<0&&(e=s),e>s&&(e=0);else if(e<0||e>s)return this;return e===this._currentIndex||(this._isAnimating=!0,this._currentIndex=e,this._updateState(),setTimeout(()=>{this._isAnimating=!1},t.animationDuration),t.onChange&&t.onChange({index:e,oldIndex:o,slide:this._slides[e]})),this}next(){return this.goTo(this._currentIndex+1)}prev(){return this.goTo(this._currentIndex-1)}play(){return this._startAutoplay(),this}pause(){return this._stopAutoplay(),this}getIndex(){return this._currentIndex}getSlide(e=this._currentIndex){return this._slides[e]}destroy(){super.destroy(),this._stopAutoplay()}}class y extends n{static defaults={message:'We use cookies to enhance your browsing experience, serve personalized content, and analyze our traffic. By clicking "Accept All", you consent to our use of cookies.',acceptAllText:"Accept All",rejectAllText:"Reject All",customizeText:"Customize",savePreferencesText:"Save Preferences",privacyPolicyText:"Privacy Policy",privacyPolicyUrl:"/privacy-policy",cookiePolicyText:"Cookie Policy",cookiePolicyUrl:null,categories:{necessary:{label:"Necessary Cookies",description:"These cookies are essential for the website to function properly.",required:!0},functional:{label:"Functional Cookies",description:"These cookies enable personalized features and functionality.",required:!1},analytics:{label:"Analytics Cookies",description:"These cookies help us understand how visitors interact with our website.",required:!1},marketing:{label:"Marketing Cookies",description:"These cookies are used to deliver relevant ads and marketing campaigns.",required:!1}},position:"bottom",theme:"light",layout:"bar",animation:!0,backdrop:!1,autoShow:!0,hideAfterAction:!0,reopenSelector:"[data-cookie-consent-open]",storageKey:"domma-cookie-consent",storageDuration:365,defaultState:"undecided",requireExplicitConsent:!0,onAccept:null,onReject:null,onCustomize:null,onChange:null,onShow:null,onHide:null};constructor(e={}){super(null,e),this._state=null,this._preferences={},this._customizeModal=null,this._isVisible=!1,this._init()}_init(){this._loadPreferences(),this._createUI(),this._setupEventHandlers(),this.options.autoShow&&!this._hasConsented()&&this.show(),this._setupReopenTriggers()}_loadPreferences(){const e=Domma.storage.get(this.options.storageKey);if(e&&e.timestamp){if((Date.now()-e.timestamp)/864e5<=this.options.storageDuration)return this._state=e.state,void(this._preferences=e.preferences||{})}this._state=this.options.defaultState,this._preferences={},Object.keys(this.options.categories).forEach(e=>{const t=this.options.categories[e];this._preferences[e]=t.required||!this.options.requireExplicitConsent})}_savePreferences(){Domma.storage.set(this.options.storageKey,{state:this._state,preferences:this._preferences,timestamp:Date.now()})}_hasConsented(){return"accepted"===this._state||"rejected"===this._state||"customized"===this._state}_createUI(){this.element=document.createElement("div"),this.element.className=`dm-cookie-consent dm-cookie-consent-${this.options.position} dm-cookie-consent-${this.options.layout} dm-cookie-consent-${this.options.theme}`,this.element.setAttribute("role","dialog"),this.element.setAttribute("aria-label","Cookie consent"),this.element.style.display="none",this.options.animation&&this.element.classList.add("dm-cookie-consent-animated");let e='<div class="dm-cookie-consent-content">';e+=`<div class="dm-cookie-consent-message">${this.options.message}`;const t=[];this.options.privacyPolicyUrl&&t.push(`<a href="${this.options.privacyPolicyUrl}" target="_blank" rel="noopener">${this.options.privacyPolicyText}</a>`),this.options.cookiePolicyUrl&&t.push(`<a href="${this.options.cookiePolicyUrl}" target="_blank" rel="noopener">${this.options.cookiePolicyText}</a>`),t.length>0&&(e+=` ${t.join(" | ")}`),e+="</div>",e+='<div class="dm-cookie-consent-buttons">',Object.keys(this.options.categories).length>1&&(e+=`<button type="button" class="btn btn-outline dm-cookie-consent-customize">${this.options.customizeText}</button>`),e+=`<button type="button" class="btn btn-outline dm-cookie-consent-reject">${this.options.rejectAllText}</button>`,e+=`<button type="button" class="btn btn-primary dm-cookie-consent-accept">${this.options.acceptAllText}</button>`,e+="</div></div>",this.options.backdrop&&"modal"===this.options.layout&&(e=`<div class="dm-cookie-consent-backdrop"></div>${e}`),this.element.innerHTML=e,document.body.appendChild(this.element)}_createCustomizeModal(){if(this._customizeModal)return;this._customizeModal=document.createElement("div"),this._customizeModal.className="dm-cookie-consent-modal",this._customizeModal.setAttribute("role","dialog"),this._customizeModal.setAttribute("aria-label","Customize cookie preferences");let e='<div class="dm-cookie-consent-modal-content">';e+='<div class="dm-cookie-consent-modal-header">',e+="<h3>Cookie Preferences</h3>",e+='<button type="button" class="dm-cookie-consent-modal-close" aria-label="Close">×</button>',e+="</div>",e+='<div class="dm-cookie-consent-modal-body">',Object.entries(this.options.categories).forEach(([t,o])=>{const s=this._preferences[t]?"checked":"",n=o.required?"disabled":"";e+='<div class="dm-cookie-consent-category">',e+='<label class="dm-cookie-consent-category-label">',e+=`<input type="checkbox" class="dm-cookie-consent-category-toggle" data-category="${t}" ${s} ${n}>`,e+='<div class="dm-cookie-consent-category-info">',e+=`<div class="dm-cookie-consent-category-name">${o.label}`,o.required&&(e+=' <span class="dm-cookie-consent-required">(Required)</span>'),e+="</div>",e+=`<div class="dm-cookie-consent-category-description">${o.description}</div>`,e+="</div></label></div>"}),e+="</div>",e+='<div class="dm-cookie-consent-modal-footer">',e+='<button type="button" class="btn btn-outline dm-cookie-consent-modal-cancel">Cancel</button>',e+=`<button type="button" class="btn btn-primary dm-cookie-consent-modal-save">${this.options.savePreferencesText}</button>`,e+="</div></div>",e=`<div class="dm-cookie-consent-modal-backdrop"></div>${e}`,this._customizeModal.innerHTML=e,document.body.appendChild(this._customizeModal),this._setupModalHandlers()}_setupEventHandlers(){const e=this.element.querySelector(".dm-cookie-consent-accept");e&&e.addEventListener("click",()=>this.accept());const t=this.element.querySelector(".dm-cookie-consent-reject");t&&t.addEventListener("click",()=>this.reject());const o=this.element.querySelector(".dm-cookie-consent-customize");if(o&&o.addEventListener("click",()=>this.showCustomize()),this.options.backdrop&&"modal"===this.options.layout){const e=this.element.querySelector(".dm-cookie-consent-backdrop");e&&e.addEventListener("click",()=>{this.options.requireExplicitConsent||this.hide()})}}_setupModalHandlers(){if(!this._customizeModal)return;const e=this._customizeModal.querySelector(".dm-cookie-consent-modal-close");e&&e.addEventListener("click",()=>this.hideCustomize());const t=this._customizeModal.querySelector(".dm-cookie-consent-modal-cancel");t&&t.addEventListener("click",()=>this.hideCustomize());const o=this._customizeModal.querySelector(".dm-cookie-consent-modal-save");o&&o.addEventListener("click",()=>this.saveCustomPreferences());const s=this._customizeModal.querySelector(".dm-cookie-consent-modal-backdrop");s&&s.addEventListener("click",()=>this.hideCustomize())}_setupReopenTriggers(){this.options.reopenSelector&&document.addEventListener("click",e=>{e.target.closest(this.options.reopenSelector)&&(e.preventDefault(),this.show())})}show(){this._isVisible||(this.element.style.display="",this.options.animation?requestAnimationFrame(()=>{this.element.classList.add("dm-cookie-consent-visible")}):this.element.classList.add("dm-cookie-consent-visible"),this._isVisible=!0,this.options.onShow&&this.options.onShow.call(this))}hide(){if(!this._isVisible)return;const e=()=>{this.element.style.display="none",this._isVisible=!1,this.options.onHide&&this.options.onHide.call(this)};this.options.animation?(this.element.classList.remove("dm-cookie-consent-visible"),setTimeout(e,300)):(this.element.classList.remove("dm-cookie-consent-visible"),e())}accept(){Object.keys(this.options.categories).forEach(e=>{this._preferences[e]=!0}),this._state="accepted",this._savePreferences(),this.options.onAccept&&this.options.onAccept.call(this,this._preferences),this.options.onChange&&this.options.onChange.call(this,this._state,this._preferences),this.options.hideAfterAction&&this.hide()}reject(){Object.entries(this.options.categories).forEach(([e,t])=>{this._preferences[e]=t.required}),this._state="rejected",this._savePreferences(),this.options.onReject&&this.options.onReject.call(this),this.options.onChange&&this.options.onChange.call(this,this._state,this._preferences),this.options.hideAfterAction&&this.hide()}showCustomize(){this._createCustomizeModal(),this._customizeModal.querySelectorAll(".dm-cookie-consent-category-toggle").forEach(e=>{const t=e.dataset.category;e.checked=this._preferences[t]||!1}),this._customizeModal.style.display="flex",this.options.animation?requestAnimationFrame(()=>{this._customizeModal.classList.add("dm-cookie-consent-modal-visible")}):this._customizeModal.classList.add("dm-cookie-consent-modal-visible"),this.options.onCustomize&&this.options.onCustomize.call(this,this._preferences)}hideCustomize(){if(!this._customizeModal)return;const e=()=>{this._customizeModal.style.display="none"};this.options.animation?(this._customizeModal.classList.remove("dm-cookie-consent-modal-visible"),setTimeout(e,300)):(this._customizeModal.classList.remove("dm-cookie-consent-modal-visible"),e())}saveCustomPreferences(){this._customizeModal.querySelectorAll(".dm-cookie-consent-category-toggle").forEach(e=>{const t=e.dataset.category;this._preferences[t]=e.checked}),this._state="customized",this._savePreferences(),this.hideCustomize(),this.options.onAccept&&this.options.onAccept.call(this,this._preferences),this.options.onChange&&this.options.onChange.call(this,this._state,this._preferences),this.options.hideAfterAction&&this.hide()}getState(){return this._state}getPreferences(){return{...this._preferences}}isAccepted(e=null){return e?!0===this._preferences[e]:"accepted"===this._state||"customized"===this._state}reset(){this._state=this.options.defaultState,this._preferences={},Object.keys(this.options.categories).forEach(e=>{const t=this.options.categories[e];this._preferences[e]=t.required||!this.options.requireExplicitConsent}),Domma.storage.remove(this.options.storageKey),this.options.onChange&&this.options.onChange.call(this,this._state,this._preferences)}destroy(){this.hide(),this.hideCustomize(),this.element&&(this.element.remove(),this.element=null),this._customizeModal&&(this._customizeModal.remove(),this._customizeModal=null)}}class M extends n{static defaults={showAfter:null,duration:300,position:"bottom-right",offset:16,target:null,zIndex:1e3,onShow:null,onHide:null,onScroll:null};constructor(e,t={}){super(e,t),this._isVisible=!1,this._isScrolling=!1,this._scrollContainer=null,this._init()}_init(){this._setupScrollContainer(),this._setupButton(),this._bindEvents(),this._checkVisibility()}_setupScrollContainer(){this.options.target&&(this._scrollContainer="string"==typeof this.options.target?document.querySelector(this.options.target):this.options.target)}_setupButton(){this.element?(this._button=this.element,this._created=!1):(this._button=this._createButton(),this._created=!0,document.body.appendChild(this._button)),this._button&&this._applyStyles()}_createButton(){const e=document.createElement("button");return e.className="dm-back-to-top",e.setAttribute("title","Back to top"),e.setAttribute("aria-label","Scroll back to top"),e.innerHTML='<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 15l-6-6-6 6"/></svg>',e}_applyStyles(){const{position:e,offset:t,zIndex:o}=this.options,s="bottom-left"===e,n={position:this._scrollContainer?"absolute":"fixed",bottom:`${t}px`,[s?"left":"right"]:`${t}px`,padding:"0.5rem",background:"var(--dm-surface, #fff)",border:"1px solid var(--dm-border, #dee2e6)",borderRadius:"9999px",cursor:"pointer",zIndex:o,width:"40px",height:"40px",display:"flex",alignItems:"center",justifyContent:"center",opacity:"0",visibility:"hidden",transform:"translateY(10px)",transition:"opacity 0.2s ease, transform 0.15s ease, visibility 0.2s, background 0.2s ease, box-shadow 0.15s ease"};Object.assign(this._button.style,n),this._addEventListener(this._button,"mouseenter",()=>{this._isVisible&&(this._button.style.background="var(--dm-hover-bg, rgba(0,0,0,0.04))",this._button.style.transform="translateY(0) scale(1.1)",this._button.style.boxShadow="0 2px 8px rgba(0,0,0,0.15)")}),this._addEventListener(this._button,"mouseleave",()=>{this._isVisible&&(this._button.style.background="var(--dm-surface, #fff)",this._button.style.transform="translateY(0)",this._button.style.boxShadow="none")});const i=this._button.querySelector("svg");i&&(i.style.color="var(--dm-text, #212529)")}_bindEvents(){const e=this._scrollContainer||window;this._scrollHandler=()=>this._checkVisibility(),e.addEventListener("scroll",this._scrollHandler,{passive:!0}),this._addEventListener(this._button,"click",e=>{e.preventDefault(),this.scroll()})}_checkVisibility(){const e=this.options.showAfter??(this._scrollContainer?this._scrollContainer.clientHeight:window.innerHeight),t=this._scrollContainer?this._scrollContainer.scrollTop:window.scrollY,o=t>e;o&&!this._isVisible?this.show():!o&&this._isVisible&&this.hide(),this.options.onScroll&&this.options.onScroll({scrollY:t,isVisible:this._isVisible})}scroll(){if(this._isScrolling)return this;this._isScrolling=!0;const e=this._scrollContainer?this._scrollContainer.scrollTop:window.scrollY,t=performance.now(),o=this.options.duration,s=n=>{const i=n-t,r=Math.min(i/o,1),a=(l=r)*(2-l);var l;this._scrollContainer?this._scrollContainer.scrollTop=e*(1-a):window.scrollTo(0,e*(1-a)),r<1?requestAnimationFrame(s):this._isScrolling=!1};return requestAnimationFrame(s),this}show(){return this._isVisible||(this._isVisible=!0,this._button.style.opacity="1",this._button.style.visibility="visible",this._button.style.transform="translateY(0)",this.options.onShow&&this.options.onShow({button:this._button})),this}hide(){return this._isVisible?(this._isVisible=!1,this._button.style.opacity="0",this._button.style.visibility="hidden",this._button.style.transform="translateY(10px)",this.options.onHide&&this.options.onHide({button:this._button}),this):this}toggle(){return this._isVisible?this.hide():this.show()}isVisible(){return this._isVisible}getButton(){return this._button}destroy(){window.removeEventListener("scroll",this._scrollHandler),super.destroy(),this._created&&this._button&&this._button.parentNode&&this._button.parentNode.removeChild(this._button)}}const b={_container:null,_defaults:{title:"",message:"",confirmText:"OK",cancelText:"Cancel",inputPlaceholder:"",inputValue:"",inputType:"text",animation:!0,backdrop:!0,backdropClose:!1,keyboard:!0,className:""},_ensureContainer(){return this._container||(this._container=document.createElement("div"),this._container.className="dm-dialog-container",document.body.appendChild(this._container)),this._container},_createDialog(e,t){const o={...this._defaults,...t},s=this._ensureContainer();return new Promise(t=>{const n=document.createElement("div");n.className="dm-dialog-overlay"+(o.animation?" dm-dialog-animate":"");const i=document.createElement("div");i.className=`dm-dialog dm-dialog-${e}${o.className?" "+o.className:""}`,i.setAttribute("role","dialog"),i.setAttribute("aria-modal","true");let r='<div class="dm-dialog-content">';o.title&&(r+=`<div class="dm-dialog-header"><h3 class="dm-dialog-title">${o.title}</h3></div>`),r+='<div class="dm-dialog-body">',o.message&&(r+=`<p class="dm-dialog-message">${o.message}</p>`),"prompt"===e&&(r+=`<input type="${o.inputType}" class="dm-dialog-input form-input" placeholder="${o.inputPlaceholder}" value="${o.inputValue}">`),r+="</div>",r+='<div class="dm-dialog-footer">',"confirm"!==e&&"prompt"!==e||(r+=`<button type="button" class="btn btn-outline dm-dialog-cancel">${o.cancelText}</button>`),r+=`<button type="button" class="btn btn-primary dm-dialog-confirm">${o.confirmText}</button>`,r+="</div></div>",i.innerHTML=r,n.appendChild(i),s.appendChild(n);const a=i.querySelector(".dm-dialog-confirm"),l=i.querySelector(".dm-dialog-cancel"),h=i.querySelector(".dm-dialog-input"),c=h||a;setTimeout(()=>c?.focus(),50),h&&h.select();const d=e=>{o.animation?(n.classList.add("dm-dialog-closing"),setTimeout(()=>{n.remove(),t(e)},200)):(n.remove(),t(e))},u=()=>{d("prompt"===e?h.value:"confirm"===e||void 0)},p=()=>{d("prompt"===e&&null)};if(a.addEventListener("click",u),l?.addEventListener("click",p),o.backdropClose&&n.addEventListener("click",e=>{e.target===n&&p()}),o.keyboard){const t=o=>{"Escape"===o.key?(p(),document.removeEventListener("keydown",t)):("Enter"===o.key&&"prompt"!==e||"Enter"===o.key&&"prompt"===e&&o.target===h)&&(u(),document.removeEventListener("keydown",t))};document.addEventListener("keydown",t)}})},alert(e,t={}){return"object"==typeof e&&(e=(t=e).message||""),this._createDialog("alert",{...t,message:e})},confirm(e,t={}){return"object"==typeof e&&(e=(t=e).message||""),this._createDialog("confirm",{...t,message:e})},prompt(e,t={}){return"object"==typeof e&&(e=(t=e).message||""),this._createDialog("prompt",{...t,message:e})}};class w extends n{static defaults={mode:"single",activeClass:"active",allowEmpty:!1,onChange:null};constructor(e,t={}){super(e,t),this._init()}_init(){this.element&&(this.buttons=Array.from(this.element.querySelectorAll(".btn")),this.buttons.forEach((e,t)=>{e.dataset.index=t,this._addEventListener(e,"click",o=>{o.preventDefault(),this._handleClick(e,t)})}))}_handleClick(e,t){const o=e.classList.contains(this.options.activeClass);"single"===this.options.mode?o&&this.options.allowEmpty?this.options.allowEmpty&&e.classList.remove(this.options.activeClass):(this.buttons.forEach(e=>e.classList.remove(this.options.activeClass)),e.classList.add(this.options.activeClass)):e.classList.toggle(this.options.activeClass),this.options.onChange&&this.options.onChange(this.getValue(),t,e)}getValue(){const e=this.buttons.map((e,t)=>e.classList.contains(this.options.activeClass)?t:-1).filter(e=>-1!==e);return"single"===this.options.mode?e.length>0?e[0]:null:e}getActive(){const e=this.buttons.filter(e=>e.classList.contains(this.options.activeClass));return"single"===this.options.mode?e.length>0?e[0]:null:e}setValue(e){const t=Array.isArray(e)?e:[e];return this.buttons.forEach((e,o)=>{t.includes(o)?e.classList.add(this.options.activeClass):e.classList.remove(this.options.activeClass)}),this}toggle(e){return e>=0&&e<this.buttons.length&&this._handleClick(this.buttons[e],e),this}selectAll(){return"multiple"===this.options.mode&&(this.buttons.forEach(e=>e.classList.add(this.options.activeClass)),this.options.onChange&&this.options.onChange(this.getValue(),-1,null)),this}deselectAll(){return this.buttons.forEach(e=>e.classList.remove(this.options.activeClass)),this.options.onChange&&this.options.onChange(this.getValue(),-1,null),this}}class L extends n{static defaults={type:"spinner",size:"medium",color:"primary",overlay:!1,text:"",centered:!0};static sizes={small:24,medium:40,large:64};static _overlayInstances=new Map;constructor(e,t={}){super(e,t),this._visible=!1,this._init()}_init(){this.element&&this._render()}_getSize(){const{size:e}=this.options;return"number"==typeof e?e:L.sizes[e]||L.sizes.medium}_getColor(){const{color:e}=this.options;return{primary:"var(--dm-primary, #6495ED)",secondary:"var(--dm-secondary, #6c757d)",success:"var(--dm-success, #28a745)",danger:"var(--dm-danger, #dc3545)",warning:"var(--dm-warning, #ffc107)",info:"var(--dm-info, #17a2b8)",white:"#ffffff",dark:"var(--dm-gray-800, #343a40)"}[e]||e}_render(){const e=this._getSize(),t=this._getColor(),{type:o,overlay:s,text:n,centered:i}=this.options;this._wrapper=document.createElement("div"),this._wrapper.className="dm-loader",this._wrapper.setAttribute("role","status"),this._wrapper.setAttribute("aria-live","polite");const r={display:"inline-flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:"0.75rem"};switch(s?(Object.assign(r,{position:"absolute",inset:"0",background:"rgba(0, 0, 0, 0.5)",zIndex:"1000"}),this.element.style.position="relative"):i&&(Object.assign(r,{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)"}),"static"===getComputedStyle(this.element).position&&(this.element.style.position="relative")),Object.assign(this._wrapper.style,r),this._spinner=document.createElement("div"),this._spinner.className=`dm-loader-${o}`,o){case"dots":this._renderDots(e,t);break;case"pulse":this._renderPulse(e,t);break;case"bars":this._renderBars(e,t);break;default:this._renderSpinner(e,t)}this._wrapper.appendChild(this._spinner),n&&(this._textEl=document.createElement("span"),this._textEl.className="dm-loader-text",this._textEl.textContent=n,this._textEl.style.cssText=`\n color: ${s?"#fff":"var(--dm-text, #212529)"};\n font-size: var(--dm-text-sm, 0.875rem);\n `,this._wrapper.appendChild(this._textEl)),this._wrapper.style.display="none",this.element.appendChild(this._wrapper)}_renderSpinner(e,t){this._spinner.style.cssText=`\n width: ${e}px;\n height: ${e}px;\n border: ${Math.max(2,e/10)}px solid ${t};\n border-top-color: transparent;\n border-radius: 50%;\n animation: dm-loader-spin 0.8s linear infinite;\n `,this._injectKeyframes("dm-loader-spin","\n @keyframes dm-loader-spin {\n to { transform: rotate(360deg); }\n }\n ")}_renderDots(e,t){const o=e/4;this._spinner.style.cssText=`\n display: flex;\n gap: ${o/2}px;\n `;for(let e=0;e<3;e++){const s=document.createElement("span");s.style.cssText=`\n width: ${o}px;\n height: ${o}px;\n background: ${t};\n border-radius: 50%;\n animation: dm-loader-bounce 1.4s ease-in-out ${.16*e}s infinite both;\n `,this._spinner.appendChild(s)}this._injectKeyframes("dm-loader-bounce","\n @keyframes dm-loader-bounce {\n 0%, 80%, 100% { transform: scale(0); }\n 40% { transform: scale(1); }\n }\n ")}_renderPulse(e,t){this._spinner.style.cssText=`\n width: ${e}px;\n height: ${e}px;\n background: ${t};\n border-radius: 50%;\n animation: dm-loader-pulse 1.2s ease-in-out infinite;\n `,this._injectKeyframes("dm-loader-pulse","\n @keyframes dm-loader-pulse {\n 0% { transform: scale(0); opacity: 1; }\n 100% { transform: scale(1); opacity: 0; }\n }\n ")}_renderBars(e,t){const o=e/6,s=e;this._spinner.style.cssText=`\n display: flex;\n align-items: center;\n gap: ${o/2}px;\n height: ${s}px;\n `;for(let e=0;e<4;e++){const s=document.createElement("span");s.style.cssText=`\n width: ${o}px;\n height: 100%;\n background: ${t};\n border-radius: 2px;\n animation: dm-loader-bars 1s ease-in-out ${.1*e}s infinite;\n `,this._spinner.appendChild(s)}this._injectKeyframes("dm-loader-bars","\n @keyframes dm-loader-bars {\n 0%, 40%, 100% { transform: scaleY(0.4); }\n 20% { transform: scaleY(1); }\n }\n ")}_injectKeyframes(e,t){if(document.getElementById(`dm-loader-${e}`))return;const o=document.createElement("style");o.id=`dm-loader-${e}`,o.textContent=t,document.head.appendChild(o)}show(){return this._wrapper&&(this._wrapper.style.display="inline-flex",this._visible=!0),this}hide(){return this._wrapper&&(this._wrapper.style.display="none",this._visible=!1),this}toggle(){return this._visible?this.hide():this.show()}isVisible(){return this._visible}setText(e){return this._textEl?this._textEl.textContent=e:e&&this._wrapper&&(this._textEl=document.createElement("span"),this._textEl.className="dm-loader-text",this._textEl.textContent=e,this._textEl.style.cssText=`\n color: ${this.options.overlay?"#fff":"var(--dm-text, #212529)"};\n font-size: var(--dm-text-sm, 0.875rem);\n `,this._wrapper.appendChild(this._textEl)),this}destroy(){this._wrapper&&this._wrapper.remove(),super.destroy()}static show(e,t={}){const o="string"==typeof e?document.querySelector(e):e;if(!o)return null;let s=L._overlayInstances.get(o);return s||(s=new L(o,t),L._overlayInstances.set(o,s)),s.show(),s}static hide(e){const t="string"==typeof e?document.querySelector(e):e,o=L._overlayInstances.get(t);o&&o.hide()}static fullscreen(e="Loading...",t={}){let o=document.getElementById("dm-loader-fullscreen");o||(o=document.createElement("div"),o.id="dm-loader-fullscreen",o.style.cssText="\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.7);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 9999;\n ",document.body.appendChild(o));const s=new L(o,{type:t.type||"spinner",size:t.size||"large",color:t.color||"white",text:e,overlay:!1,centered:!1});s.show(),s._fullscreenContainer=o;const n=s.destroy.bind(s);return s.destroy=()=>{n(),o.parentNode&&o.remove()},s}}class x extends n{static defaults={items:[],separator:"/",homeIcon:!1,responsive:!0,onChange:null};static separators={"/":"/",">":"›","→":"→",chevron:'<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 18l6-6-6-6"/></svg>'};constructor(e,t={}){super(e,t),this._init()}_init(){this.element&&(this._render(),this._bindEvents())}_getSeparatorHTML(){const{separator:e}=this.options;return x.separators[e]||e}_render(){const{items:e,homeIcon:t,responsive:o}=this.options,s=this._getSeparatorHTML();this.element.className="dm-breadcrumbs",o&&this.element.classList.add("dm-breadcrumbs-responsive"),this.element.setAttribute("aria-label","Breadcrumb"),this.element.style.cssText="\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: 0.5rem;\n font-size: var(--dm-text-sm, 0.875rem);\n color: var(--dm-text-muted, #6c757d);\n ";let n="";e.forEach((o,i)=>{const r=i===e.length-1,a=0===i;i>0&&(n+=`<span class="dm-breadcrumb-separator" aria-hidden="true" style="\n display: inline-flex;\n align-items: center;\n opacity: 0.5;\n ">${s}</span>`);let l=o.text||o;a&&t&&(l=`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="vertical-align: middle; margin-right: 4px;"><path d="M3 9l9-7 9 7v11a2 2 0 01-2 2H5a2 2 0 01-2-2z"/><polyline points="9 22 9 12 15 12 15 22"/></svg>${l}`),r||o.active?n+=`<span class="dm-breadcrumb-item active" aria-current="page" style="\n color: var(--dm-text, #212529);\n font-weight: 500;\n ">${l}</span>`:n+=`<a href="${o.url||"#"}" class="dm-breadcrumb-item dm-breadcrumb-link" data-index="${i}" style="\n color: inherit;\n text-decoration: none;\n transition: color 0.15s ease;\n ">${l}</a>`}),this.element.innerHTML=n,this._injectStyles()}_injectStyles(){if(document.getElementById("dm-breadcrumbs-styles"))return;const e=document.createElement("style");e.id="dm-breadcrumbs-styles",e.textContent="\n .dm-breadcrumb-link:hover {\n color: var(--dm-primary, #6495ED) !important;\n }\n @media (max-width: 576px) {\n .dm-breadcrumbs-responsive .dm-breadcrumb-item:not(:last-child):not(:first-child) {\n display: none;\n }\n .dm-breadcrumbs-responsive .dm-breadcrumb-separator:not(:first-of-type):not(:last-of-type) {\n display: none;\n }\n }\n ",document.head.appendChild(e)}_bindEvents(){this._addEventListener(this.element,"click",e=>{const t=e.target.closest(".dm-breadcrumb-link");if(t){const o=parseInt(t.dataset.index,10);this.options.onChange&&(e.preventDefault(),this.options.onChange(this.options.items[o],o,e))}})}setItems(e){return this.options.items=e,this._render(),this}addItem(e){if(this.options.items.length>0){const e=this.options.items[this.options.items.length-1];"object"==typeof e&&(e.active=!1)}return this.options.items.push(e),this._render(),this}removeItem(e){return e>=0&&e<this.options.items.length&&(this.options.items.splice(e,1),this._render()),this}getItems(){return[...this.options.items]}}class C extends n{static defaults={brand:null,items:[],position:"static",variant:"light",collapsible:!0,collapseAt:768,actions:[],onItemClick:null};constructor(e,t={}){super(e,t),this._isCollapsed=!0,this._init()}_init(){this.element&&(this._render(),this._bindEvents())}_render(){const{brand:e,items:t,position:o,variant:s,collapsible:n,actions:i}=this.options;this.element.className="navbar",this.element.classList.add(`navbar-${s}`),"static"!==o&&this.element.classList.add(`navbar-${o}`),this.element.setAttribute("role","navigation");let r='<div class="navbar-container">';e&&(r+='<div class="navbar-brand">',e.url&&(r+=`<a href="${e.url}" class="navbar-brand-link">`),e.html?r+=e.html:(e.logo&&(r+=`<img src="${e.logo}" alt="${e.text||""}" class="navbar-logo">`),e.text&&(r+=`<span class="navbar-brand-text">${e.text}</span>`)),e.url&&(r+="</a>"),r+="</div>"),n&&(r+='\n <button class="navbar-toggle" aria-label="Toggle navigation" aria-expanded="false">\n <span class="navbar-toggle-icon"></span>\n </button>\n '),r+='<div class="navbar-collapse">',r+='<ul class="navbar-nav">',t.forEach((e,t)=>{e.items&&e.items.length>0?(r+='<li class="navbar-item navbar-dropdown">',r+=`<button class="navbar-link navbar-dropdown-toggle" data-index="${t}">\n ${e.text}\n <svg class="navbar-caret" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">\n <path d="M6 9l6 6 6-6"/>\n </svg>\n </button>`,r+='<ul class="navbar-dropdown-menu">',e.items.forEach((e,o)=>{e.divider?r+='<li class="navbar-dropdown-divider"></li>':r+=`<li><a href="${e.url||"#"}" class="navbar-dropdown-item" data-index="${t}" data-subindex="${o}">${e.text}</a></li>`}),r+="</ul>",r+="</li>"):(r+='<li class="navbar-item">',r+=`<a href="${e.url||"#"}" class="navbar-link${e.active?" active":""}" data-index="${t}">${e.text}</a>`,r+="</li>")}),r+="</ul>",i&&i.length>0&&(r+='<div class="navbar-actions">',i.forEach((e,t)=>{const o=e.variant||"primary";r+=`<a href="${e.url||"#"}" class="navbar-action dm-btn dm-btn-${o}" data-action="${t}">${e.text}</a>`}),r+="</div>"),r+="</div>",r+="</div>",this.element.innerHTML=r,this._toggle=this.element.querySelector(".navbar-toggle"),this._collapse=this.element.querySelector(".navbar-collapse")}_bindEvents(){this._toggle&&this._addEventListener(this._toggle,"click",()=>{this.toggle()}),this._addEventListener(this.element,"click",e=>{const t=e.target.closest(".navbar-link:not(.navbar-dropdown-toggle)");if(t){const o=parseInt(t.dataset.index,10);this.options.onItemClick&&(e.preventDefault(),this.options.onItemClick(this.options.items[o],o,e)),window.innerWidth<this.options.collapseAt&&this.collapse()}const o=e.target.closest(".navbar-dropdown-item");if(o){const t=parseInt(o.dataset.index,10),s=parseInt(o.dataset.subindex,10);if(this.options.onItemClick){e.preventDefault();const o=this.options.items[t];this.options.onItemClick(o.items[s],s,e,o)}}}),this._addEventListener(this.element,"click",e=>{const t=e.target.closest(".navbar-dropdown-toggle");if(t){t.closest(".navbar-dropdown").classList.toggle("open")}}),this._addEventListener(document,"click",e=>{e.target.closest(".navbar-dropdown")||this.element.querySelectorAll(".navbar-dropdown.open").forEach(e=>{e.classList.remove("open")})}),this._addEventListener(window,"resize",()=>{window.innerWidth>=this.options.collapseAt&&(this._collapse?.classList.remove("show"),this._isCollapsed=!0,this._toggle&&this._toggle.setAttribute("aria-expanded","false"))})}setActive(e){return this.options.items.forEach((t,o)=>{t.active=o===e}),this._render(),this}setItems(e){return this.options.items=e,this._render(),this}expand(){return this._collapse&&(this._collapse.classList.add("show"),this._isCollapsed=!1,this._toggle&&this._toggle.setAttribute("aria-expanded","true")),this}collapse(){return this._collapse&&(this._collapse.classList.remove("show"),this._isCollapsed=!0,this._toggle&&this._toggle.setAttribute("aria-expanded","false")),this}toggle(){return this._isCollapsed?this.expand():this.collapse()}isCollapsed(){return this._isCollapsed}}class E extends n{static defaults={position:"left",fixed:!0,width:"250px",top:"0",header:null,items:[],footer:null,variant:"dark",collapsible:!0,collapseAt:768,activeSection:null,expandedSections:[],persistExpanded:!1,persistKey:null,animationDuration:200,push:!0,contentSelector:".main-content",scrollSpy:!1,scrollSpyOffset:"-100px 0px -50% 0px",scrollSpyThreshold:.5,floating:!1,customContent:null,collapsibleDesktop:!1,collapsedWidth:"60px",persistCollapsed:!1,persistCollapseKey:null,onItemClick:null,onToggle:null,onExpand:null,onCollapse:null};constructor(e,t={}){super(e,t),this._isOpen=!1,this._isCollapsed=!1,this._expandedItems=new Set(this.options.expandedSections||[]),this._init()}_init(){this.element&&(this._loadExpandedState(),this._loadCollapsedState(),this._findContentElement(),this._render(),this._bindEvents(),this._scanIcons(),this._handleInitialPushState(),this.options.scrollSpy&&this._initScrollSpy(),this._isCollapsed&&this.options.collapsibleDesktop&&setTimeout(()=>{this._createFloatingToggle()},0))}_findContentElement(){this.options.push&&this.options.contentSelector&&(this._contentElement=document.querySelector(this.options.contentSelector),this._contentElement||console.warn(`[Sidebar] Push mode enabled but content element "${this.options.contentSelector}" not found`))}_handleInitialPushState(){if(this.options.push&&this._contentElement){const e=window.innerWidth>=this.options.collapseAt;(!this.options.collapsible||e)&&this._applyPush()}}_render(){const{position:e,fixed:t,width:o,top:s,header:n,items:i,footer:r,variant:a,collapsible:l,collapsibleDesktop:h,collapsedWidth:c}=this.options;this.element.className="sidebar",this.element.classList.add(`sidebar-${a}`),this.element.classList.add(`sidebar-${e}`),t&&this.element.classList.add("sidebar-fixed"),h&&this.element.classList.add("sidebar-desktop-collapsible"),this._isCollapsed&&h&&this.element.classList.add("sidebar-collapsed"),o&&(this.element.style.setProperty("--sidebar-width",o),this.element.style.width=o),c&&this.element.style.setProperty("--sidebar-collapsed-width",c),s&&t&&(this.element.style.top=s,this.element.style.height=`calc(100vh - ${s})`),this.element.setAttribute("role","navigation"),this.element.setAttribute("aria-label","Sidebar navigation");let d="";if(n){if(d+='<div class="sidebar-header">',n.icon&&(d+=`<span class="sidebar-header-icon" data-icon="${n.icon}" data-size="24"></span>`),n.title&&(d+=`<h3 class="sidebar-header-title">${n.title}</h3>`),l&&!1!==n.toggle){const e="right"===this.options.position?"chevron-right":"chevron-left",t=this._isCollapsed&&h?"chevron-right":e;d+=`\n <button class="sidebar-toggle-btn" aria-label="Toggle sidebar" aria-expanded="${this._isOpen}">\n <span class="sidebar-toggle-icon" data-icon="${t}" data-size="20"></span>\n </button>\n `}d+="</div>"}d+='<nav class="sidebar-nav">',d+=this._renderItems(i),d+="</nav>",r&&(d+='<div class="sidebar-footer">',r.html?d+=r.html:r.text&&(d+=`<p class="sidebar-footer-text">${r.text}</p>`),d+="</div>"),this.element.innerHTML=d,this._toggle=this.element.querySelector(".sidebar-toggle-btn"),this._nav=this.element.querySelector(".sidebar-nav"),this._overlay=null,this._floatingToggle=null}_renderItems(e,t=0,o=""){if(!e||0===e.length)return"";let s=`<ul class="sidebar-menu" data-depth="${t}">`;return e.forEach((e,n)=>{const i=o?`${o}.${n}`:`${n}`;if(e.divider)return void(s+='<li class="sidebar-divider"></li>');if(e.heading)return void(s+=`<li class="sidebar-heading">${e.heading}</li>`);const r=e.items&&e.items.length>0,a=this._expandedItems.has(i),l=e.section===this.options.activeSection;s+=`<li class="sidebar-item ${r?"has-children":""} ${a?"open":""}" data-path="${i}" data-depth="${t}">`,s+=r?`\n <button class="sidebar-link sidebar-link-toggle ${l?"active":""}" data-path="${i}">\n ${e.icon?`<span class="sidebar-icon" data-icon="${e.icon}" data-size="18"></span>`:""}\n <span class="sidebar-text">${e.text}</span>\n ${e.badge?`<span class="sidebar-badge">${e.badge}</span>`:""}\n <svg class="sidebar-chevron" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">\n <path d="M9 18l6-6-6-6"/>\n </svg>\n </button>\n `:`\n <a href="${e.url||"#"}" class="sidebar-link ${l?"active":""}" data-path="${i}" ${e.section?`data-section="${e.section}"`:""}>\n ${e.icon?`<span class="sidebar-icon" data-icon="${e.icon}" data-size="18"></span>`:""}\n <span class="sidebar-text">${e.text}</span>\n ${e.badge?`<span class="sidebar-badge">${e.badge}</span>`:""}\n </a>\n `,r&&(s+=`<div class="sidebar-submenu" ${a?'style="display: block;"':""}>`,s+=this._renderItems(e.items,t+1,i),s+="</div>"),s+="</li>"}),s+="</ul>",s}_bindEvents(){this._toggle&&this._addEventListener(this._toggle,"click",e=>{e.stopPropagation();window.innerWidth>=this.options.collapseAt&&this.options.collapsibleDesktop?this.toggleCollapse():this.toggle()}),this._addEventListener(this.element,"click",e=>{const t=e.target.closest(".sidebar-link:not(.sidebar-link-toggle)");if(t){const o=t.dataset.path,s=this._getItemByPath(o);s&&s.section&&this.setActive(s.section),this.options.onItemClick&&this.options.onItemClick(s,o,e),window.innerWidth<this.options.collapseAt&&this.close()}}),this._addEventListener(this.element,"click",e=>{const t=e.target.closest(".sidebar-link-toggle");if(t){e.preventDefault();const o=t.dataset.path,s=t.closest(".sidebar-item");this._toggleSubmenu(s,o)}}),this._addEventListener(window,"resize",()=>{window.innerWidth>=this.options.collapseAt&&this.close()}),this._addEventListener(document,"click",e=>{this._isOpen&&!this.element.contains(e.target)&&window.innerWidth<this.options.collapseAt&&this.close()})}_toggleSubmenu(e,t){const o=e.querySelector(":scope > .sidebar-submenu");if(!o)return;const s=e.classList.contains("open"),n=this._getItemByPath(t),i=parseInt(e.dataset.depth,10);s?(this._collapseSubmenu(e,o),this._expandedItems.delete(t),this.options.onCollapse&&this.options.onCollapse(n,i)):(this._expandSubmenu(e,o),this._expandedItems.add(t),this.options.onExpand&&this.options.onExpand(n,i)),this._saveExpandedState()}_expandSubmenu(e,t){e.classList.add("open"),t.style.display="block";const o=t.scrollHeight;t.style.height="0",t.style.overflow="hidden",requestAnimationFrame(()=>{t.style.transition=`height ${this.options.animationDuration}ms ease`,t.style.height=`${o}px`,setTimeout(()=>{t.style.height="",t.style.overflow="",t.style.transition=""},this.options.animationDuration)})}_collapseSubmenu(e,t){const o=t.scrollHeight;t.style.height=`${o}px`,t.style.overflow="hidden",requestAnimationFrame(()=>{t.style.transition=`height ${this.options.animationDuration}ms ease`,t.style.height="0",setTimeout(()=>{e.classList.remove("open"),t.style.display="",t.style.height="",t.style.overflow="",t.style.transition=""},this.options.animationDuration)})}_getItemByPath(e){if(!e)return null;const t=e.split(".").map(e=>parseInt(e,10));let o=this.options.items;for(const e of t){if(!o||!o[e])return null;o=o[e],o.items&&t.indexOf(e)<t.length-1&&(o=o.items)}return o}_scanIcons(){void 0!==window.Domma&&window.Domma.icons&&window.Domma.icons.scan&&window.Domma.icons.scan(this.element)}_loadExpandedState(){if(this.options.persistExpanded&&this.options.persistKey)try{const e=`domma:sidebar:expanded:${this.options.persistKey}`,t=localStorage.getItem(e);if(t){const e=JSON.parse(t);this._expandedItems=new Set(e)}}catch(e){console.warn("Failed to load sidebar expanded state:",e)}}_saveExpandedState(){if(this.options.persistExpanded&&this.options.persistKey)try{const e=`domma:sidebar:expanded:${this.options.persistKey}`,t=Array.from(this._expandedItems);localStorage.setItem(e,JSON.stringify(t))}catch(e){console.warn("Failed to save sidebar expanded state:",e)}}_loadCollapsedState(){if(this.options.persistCollapsed&&this.options.persistCollapseKey)try{const e=`domma:sidebar:collapsed:${this.options.persistCollapseKey}`,t=localStorage.getItem(e);null!==t&&(this._isCollapsed="true"===t)}catch(e){console.warn("Failed to load sidebar collapsed state:",e)}}_saveCollapsedState(){if(this.options.persistCollapsed&&this.options.persistCollapseKey)try{const e=`domma:sidebar:collapsed:${this.options.persistCollapseKey}`;localStorage.setItem(e,this._isCollapsed.toString())}catch(e){console.warn("Failed to save sidebar collapsed state:",e)}}_initScrollSpy(){const e=[];this.element.querySelectorAll(".sidebar-link[data-section]").forEach(t=>{const o=t.dataset.section,s=document.getElementById(o);s&&e.push({element:s,id:o,link:t})}),0!==e.length&&(this._scrollSpyObserver=new IntersectionObserver(t=>{t.forEach(t=>{if(t.isIntersecting){const o=e.find(e=>e.element===t.target);o&&this.setActive(o.id)}})},{threshold:this.options.scrollSpyThreshold,rootMargin:this.options.scrollSpyOffset}),e.forEach(({element:e})=>{this._scrollSpyObserver.observe(e)}))}_createOverlay(){this._overlay||(this._overlay=document.createElement("div"),this._overlay.className="sidebar-overlay",document.body.appendChild(this._overlay),this._addEventListener(this._overlay,"click",()=>{this.close()}))}_removeOverlay(){this._overlay&&(this._overlay.remove(),this._overlay=null)}_applyPush(){if(!this.options.push||!this._contentElement)return;const e="right"===this.options.position?"sidebar-push-active-right":"sidebar-push-active";this._contentElement.classList.add(e),this._contentElement.style.setProperty("--sidebar-push-width",this.options.width)}_removePush(){this.options.push&&this._contentElement&&this._contentElement.classList.remove("sidebar-push-active","sidebar-push-active-right")}open(){return this._isOpen||(this._isOpen=!0,this.element.classList.add("open"),this._toggle&&this._toggle.setAttribute("aria-expanded","true"),window.innerWidth<this.options.collapseAt&&this._createOverlay(),this._applyPush(),this.options.onToggle&&this.options.onToggle(!0)),this}close(){return this._isOpen?(this._isOpen=!1,this.element.classList.remove("open"),this._toggle&&this._toggle.setAttribute("aria-expanded","false"),this._removeOverlay(),this._removePush(),this.options.onToggle&&this.options.onToggle(!1),this):this}toggle(){return this._isOpen?this.close():this.open()}isOpen(){return this._isOpen}collapse(){return!this.options.collapsibleDesktop||this._isCollapsed||(this._isCollapsed=!0,this.element.classList.add("sidebar-collapsed"),this._saveCollapsedState(),this._createFloatingToggle(),this._removePush(),this.options.onCollapse&&this.options.onCollapse()),this}expand(){if(!this.options.collapsibleDesktop||!this._isCollapsed)return this;this._isCollapsed=!1,this.element.classList.remove("sidebar-collapsed"),this._saveCollapsedState(),this._removeFloatingToggle(),this._applyPush();const e="right"===this.options.position?"chevron-right":"chevron-left";return this._updateToggleIcon(e),this.options.onExpand&&this.options.onExpand(),this}_createFloatingToggle(){if(this._floatingToggle)return;this._floatingToggle=document.createElement("button"),this._floatingToggle.className="sidebar-floating-toggle show","right"===this.options.position&&this._floatingToggle.classList.add("right");const e="right"===this.options.position?"chevron-left":"chevron-right";this._floatingToggle.innerHTML=`<span data-icon="${e}" data-size="20"></span>`,this._floatingToggle.addEventListener("click",()=>{this.expand()}),document.body.appendChild(this._floatingToggle),void 0!==window.Domma&&window.Domma.icons&&window.Domma.icons.scan&&window.Domma.icons.scan(this._floatingToggle)}_removeFloatingToggle(){this._floatingToggle&&(this._floatingToggle.remove(),this._floatingToggle=null)}_updateToggleIcon(e){if(!this._toggle)return;const t=this._toggle.querySelector(".sidebar-toggle-icon");t&&(t.setAttribute("data-icon",e),void 0!==window.Domma&&window.Domma.icons&&window.Domma.icons.scan&&window.Domma.icons.scan(this._toggle))}destroy(){this._removeFloatingToggle(),super.destroy()}toggleCollapse(){return this._isCollapsed?this.expand():this.collapse()}isCollapsed(){return this._isCollapsed}setActive(e){return this.options.activeSection=e,this.element.querySelectorAll(".sidebar-link").forEach(t=>{t.dataset.section===e?t.classList.add("active"):t.classList.remove("active")}),this}setItems(e){return this.options.items=e,this._expandedItems.clear(),this._render(),this._bindEvents(),this._scanIcons(),this}addItem(e,t=null){return null===t||t>=this.options.items.length?this.options.items.push(e):this.options.items.splice(t,0,e),this._render(),this._bindEvents(),this._scanIcons(),this}removeItem(e){return e>=0&&e<this.options.items.length&&(this.options.items.splice(e,1),this._render(),this._bindEvents(),this._scanIcons()),this}expandAll(){return this.element.querySelectorAll(".sidebar-item.has-children").forEach(e=>{const t=e.dataset.path,o=e.querySelector(":scope > .sidebar-submenu");o&&!e.classList.contains("open")&&(this._expandSubmenu(e,o),this._expandedItems.add(t))}),this._saveExpandedState(),this}collapseAll(){return this.element.querySelectorAll(".sidebar-item.has-children.open").forEach(e=>{const t=e.dataset.path,o=e.querySelector(":scope > .sidebar-submenu");o&&(this._collapseSubmenu(e,o),this._expandedItems.delete(t))}),this._saveExpandedState(),this}destroy(){this._scrollSpyObserver&&(this._scrollSpyObserver.disconnect(),this._scrollSpyObserver=null),this._removeOverlay(),super.destroy()}}class S extends n{static defaults={variant:"light",layout:"simple",brand:null,columns:[],links:[],social:[],copyright:null,className:"",position:"static"};constructor(e,t={}){super(e,t),this._init()}_init(){this.element&&(this._render(),this._scanIcons())}_render(){const{variant:e,layout:t,brand:o,columns:s,links:n,social:i,copyright:r,className:a,position:l}=this.options;this.element.className="footer",this.element.classList.add(`footer-${e}`),this.element.classList.add(`footer-${t}`),"static"!==l&&this.element.classList.add(`footer-${l}`),a&&this.element.classList.add(a),this.element.setAttribute("role","contentinfo");let h='<div class="footer-container">';"columns"===t&&s&&s.length>0?h+=this._renderColumnsLayout(o,s,i,r):h+="minimal"===t?this._renderMinimalLayout(r,i):this._renderSimpleLayout(o,n,i,r),h+="</div>",this.element.innerHTML=h}_renderSimpleLayout(e,t,o,s){let n='<div class="footer-simple-content">';return e&&(n+='<div class="footer-brand">',e.url&&(n+=`<a href="${e.url}" class="footer-brand-link">`),e.logo&&(n+=`<img src="${e.logo}" alt="${e.text||""}" class="footer-logo">`),e.text&&(n+=`<span class="footer-brand-text">${e.text}</span>`),e.url&&(n+="</a>"),n+="</div>"),t&&t.length>0&&(n+='<nav class="footer-nav">',t.forEach(e=>{n+=`<a href="${e.url||"#"}" class="footer-link">${e.text}</a>`}),n+="</nav>"),o&&o.length>0&&(n+=this._renderSocial(o)),n+="</div>",s&&(n+=this._renderCopyright(s)),n}_renderColumnsLayout(e,t,o,s){let n="";return n+='<div class="footer-columns-content">',e&&(n+='<div class="footer-column footer-column-brand">',e.logo&&(n+=`<img src="${e.logo}" alt="${e.text||""}" class="footer-logo">`),e.text&&(n+=`<p class="footer-brand-text">${e.text}</p>`),e.description&&(n+=`<p class="footer-brand-description">${e.description}</p>`),n+="</div>"),t.forEach(e=>{n+='<div class="footer-column">',e.title&&(n+=`<h4 class="footer-column-title">${e.title}</h4>`),e.links&&e.links.length>0&&(n+='<ul class="footer-column-links">',e.links.forEach(e=>{n+=`<li><a href="${e.url||"#"}" class="footer-column-link">${e.text}</a></li>`}),n+="</ul>"),n+="</div>"}),n+="</div>",n+='<div class="footer-bottom">',o&&o.length>0&&(n+=this._renderSocial(o)),s&&(n+=this._renderCopyright(s)),n+="</div>",n}_renderMinimalLayout(e,t){let o='<div class="footer-minimal-content">';return e&&(o+=this._renderCopyright(e)),t&&t.length>0&&(o+=this._renderSocial(t)),o+="</div>",o}_renderSocial(e){let t='<div class="footer-social">';return e.forEach(e=>{t+=`\n <a href="${e.url||"#"}" class="footer-social-link" aria-label="${e.label||e.icon}" target="_blank" rel="noopener noreferrer">\n <span data-icon="${e.icon}" data-size="20"></span>\n </a>\n `}),t+="</div>",t}_renderCopyright(e){return`<div class="footer-copyright">${"string"==typeof e?e:e.text||`© ${e.year||(new Date).getFullYear()} All rights reserved`}</div>`}_scanIcons(){void 0!==window.Domma&&window.Domma.icons&&window.Domma.icons.scan&&window.Domma.icons.scan(this.element)}setBrand(e){return this.options.brand=e,this._render(),this._scanIcons(),this}setLinks(e){return this.options.links=e,this._render(),this._scanIcons(),this}setColumns(e){return this.options.columns=e,this._render(),this._scanIcons(),this}setSocial(e){return this.options.social=e,this._render(),this._scanIcons(),this}setCopyright(e){return this.options.copyright=e,this._render(),this}}class B extends n{static defaults={data:[],dataSource:null,minChars:1,maxResults:10,debounce:300,filterFn:null,renderItem:null,highlightMatches:!0,position:"auto",placeholder:"",emptyMessage:"No results found",loadingMessage:"Loading...",caseSensitive:!1,selectOnEnter:!0,clearOnSelect:!1,onSelect:null,onChange:null,onOpen:null,onClose:null,onFilter:null};constructor(e,t={}){super(e,t),this.model=t.model||null,this.modelKey=t.modelKey||null,this._isOpen=!1,this._activeIndex=-1,this._filteredData=[],this._loading=!1,this._debounceTimer=null,this._dropdown=null,this._list=null,this._loadingEl=null,this._emptyEl=null,this._init(),this.model&&"function"==typeof this.model.onChange&&(this._modelUnsubscribe=this.model.onChange((e,t)=>{e===this.modelKey&&t!==this.getValue()&&this.setValue(t)}))}_init(){this.element&&("INPUT"===this.element.tagName?(this.options.placeholder&&this.element.setAttribute("placeholder",this.options.placeholder),this._createDropdown(),this._bindEvents(),this.element.setAttribute("role","combobox"),this.element.setAttribute("aria-autocomplete","list"),this.element.setAttribute("aria-expanded","false"),this.element.setAttribute("aria-controls",this._dropdown.id)):console.error("Autocomplete requires an input element"))}_createDropdown(){let e=this.element.parentElement;e&&e.classList.contains("dm-autocomplete")||(e=document.createElement("div"),e.className="dm-autocomplete",this.element.parentNode.insertBefore(e,this.element),e.appendChild(this.element)),this._dropdown=document.createElement("div"),this._dropdown.className="dm-autocomplete-dropdown",this._dropdown.id=`autocomplete-${Math.random().toString(36).substr(2,9)}`,this._dropdown.setAttribute("role","listbox"),this._dropdown.style.display="none",this._loadingEl=document.createElement("div"),this._loadingEl.className="dm-autocomplete-loading",this._loadingEl.textContent=this.options.loadingMessage,this._loadingEl.style.display="none",this._dropdown.appendChild(this._loadingEl),this._emptyEl=document.createElement("div"),this._emptyEl.className="dm-autocomplete-empty",this._emptyEl.textContent=this.options.emptyMessage,this._emptyEl.style.display="none",this._dropdown.appendChild(this._emptyEl),this._list=document.createElement("ul"),this._list.className="dm-autocomplete-list",this._dropdown.appendChild(this._list),e.appendChild(this._dropdown)}_bindEvents(){const e=this._handleInput.bind(this),t=this._handleKeydown.bind(this);this._addEventListener(this.element,"input",e),this._addEventListener(this.element,"keydown",t),this._addEventListener(this.element,"focus",()=>{this.element.value.length>=this.options.minChars&&this._filterData(this.element.value)}),this._addEventListener(this.element,"blur",e=>{setTimeout(()=>{this._dropdown.contains(document.activeElement)||this.close()},200)})}_handleInput(e){const t=e.target.value;this._debounceTimer&&clearTimeout(this._debounceTimer),this.model&&this.modelKey&&this.model.set(this.modelKey,t),this.options.onChange&&this.options.onChange(t,e),t.length<this.options.minChars?this.close():this._debounceTimer=setTimeout(()=>{this._filterData(t)},this.options.debounce)}_handleKeydown(e){if(!this._isOpen)return void("ArrowDown"===e.key&&this.element.value.length>=this.options.minChars&&(e.preventDefault(),this._filterData(this.element.value)));const t=this._list.querySelectorAll(".dm-autocomplete-item");switch(e.key){case"ArrowDown":e.preventDefault(),this._activeIndex=Math.min(this._activeIndex+1,t.length-1),this._updateActive();break;case"ArrowUp":e.preventDefault(),this._activeIndex=Math.max(this._activeIndex-1,-1),this._updateActive();break;case"Enter":e.preventDefault(),this._activeIndex>=0&&this.options.selectOnEnter&&this._selectItem(this._activeIndex);break;case"Escape":e.preventDefault(),this.close();break;case"Tab":this._activeIndex>=0&&(e.preventDefault(),this._selectItem(this._activeIndex)),this.close()}}async _filterData(e){let t=[];if(this.options.dataSource){this._setLoading(!0);try{t=await this.options.dataSource(e)}catch(e){console.error("Autocomplete dataSource error:",e),t=[]}this._setLoading(!1)}else{const o=this.options.filterFn||this._defaultFilter.bind(this);t=this.options.data.filter(t=>o(t,e))}this.options.maxResults&&(t=t.slice(0,this.options.maxResults)),this.options.onFilter&&(t=this.options.onFilter(t,e)||t),this._filteredData=t,this._renderResults(e)}_defaultFilter(e,t){const o="string"==typeof e?e:e.label||e.value||String(e),s=this.options.caseSensitive?t:t.toLowerCase();return(this.options.caseSensitive?o:o.toLowerCase()).includes(s)}_renderResults(e){if(this._list.innerHTML="",this._activeIndex=-1,0===this._filteredData.length)return this._emptyEl.style.display="block",this._list.style.display="none",void this.open();this._emptyEl.style.display="none",this._list.style.display="block",this._filteredData.forEach((t,o)=>{const s=document.createElement("li");if(s.className="dm-autocomplete-item",s.setAttribute("role","option"),s.setAttribute("data-index",o),this.options.renderItem){const o=this.options.renderItem(t,e);s.innerHTML="string"==typeof o?o:"","string"!=typeof o&&s.appendChild(o)}else{const o="string"==typeof t?t:t.label||t.value||String(t);this.options.highlightMatches?s.innerHTML=this._highlightMatch(o,e):s.textContent=o}s.addEventListener("click",()=>{this._selectItem(o)}),s.addEventListener("mouseenter",()=>{this._activeIndex=o,this._updateActive()}),this._list.appendChild(s)}),this.open()}_highlightMatch(e,t){if(!t)return e;const o=new RegExp(`(${this._escapeRegex(t)})`,this.options.caseSensitive?"g":"gi");return e.replace(o,'<span class="dm-autocomplete-match">$1</span>')}_escapeRegex(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}_updateActive(){const e=this._list.querySelectorAll(".dm-autocomplete-item");if(e.forEach((e,t)=>{t===this._activeIndex?(e.classList.add("active"),e.setAttribute("aria-selected","true"),e.scrollIntoView({block:"nearest"})):(e.classList.remove("active"),e.setAttribute("aria-selected","false"))}),this._activeIndex>=0){const t=e[this._activeIndex];if(t){const e=t.id||`autocomplete-item-${this._activeIndex}`;t.id=e,this.element.setAttribute("aria-activedescendant",e)}}else this.element.removeAttribute("aria-activedescendant")}_selectItem(e){const t=this._filteredData[e];if(!t)return;const o="string"==typeof t?t:t.value||t.label||String(t);this.element.value=o,this.options.onSelect&&this.options.onSelect(t,{target:this.element}),this.options.clearOnSelect&&setTimeout(()=>{this.element.value=""},100),this.close(),this.element.focus()}_setLoading(e){this._loading=e,e?(this._loadingEl.style.display="block",this._list.style.display="none",this._emptyEl.style.display="none",this.open()):this._loadingEl.style.display="none"}_updatePosition(){if(!this._isOpen||!this._dropdown)return;const e=this.element.getBoundingClientRect(),t=this._dropdown.offsetHeight,o=window.innerHeight;let s=this.options.position;if("auto"===s){const n=o-e.bottom,i=e.top;s=n>=t||n>=i?"below":"above"}"above"===s?(this._dropdown.style.top="auto",this._dropdown.style.bottom="100%",this._dropdown.style.marginBottom="4px",this._dropdown.style.marginTop="0"):(this._dropdown.style.top="100%",this._dropdown.style.bottom="auto",this._dropdown.style.marginTop="4px",this._dropdown.style.marginBottom="0")}open(){return this._isOpen||(this._isOpen=!0,this._dropdown.style.display="block",this.element.setAttribute("aria-expanded","true"),this._updatePosition(),this.options.onOpen&&this.options.onOpen()),this}close(){return this._isOpen?(this._isOpen=!1,this._dropdown.style.display="none",this.element.setAttribute("aria-expanded","false"),this._activeIndex=-1,this.options.onClose&&this.options.onClose(),this):this}toggle(){return this._isOpen?this.close():this.open()}isOpen(){return this._isOpen}setValue(e){return this.element.value=e,this}getValue(){return this.element.value}setData(e){return this.options.data=e,this}refresh(){const e=this.element.value;return e.length>=this.options.minChars&&this._filterData(e),this}focus(){return this.element.focus(),this}clearValue(){return this.element.value="",this.close(),this}destroy(){this.close(),this._dropdown&&this._dropdown.parentNode&&this._dropdown.parentNode.removeChild(this._dropdown),this._debounceTimer&&clearTimeout(this._debounceTimer),this._modelUnsubscribe&&this._modelUnsubscribe(),super.destroy()}}class j extends n{static defaults={data:[],value:[],placeholder:"Add items...",searchable:!0,creatable:!1,maxItems:null,duplicates:!1,clearable:!0,size:"medium",renderPill:null,renderOption:null,pillTemplate:"<span>{label}</span>",validatePill:null,maxItemsMessage:"Maximum {max} items allowed",duplicateMessage:"Item already exists",noResultsMessage:"No results found",onAdd:null,onRemove:null,onChange:null,onCreate:null,onMaxReached:null,onValidationError:null};constructor(e,t={}){super(e,t),this.model=t.model||null,this.modelKey=t.modelKey||null,this._pills=[],this._isOpen=!1,this._activeIndex=-1,this._container=null,this._input=null,this._clearBtn=null,this._dropdown=null,this._optionsList=null,this._filteredData=[],this._init(),this.model&&"function"==typeof this.model.onChange&&(this._modelUnsubscribe=this.model.onChange((e,t)=>{if(e===this.modelKey&&Array.isArray(t)){const e=this.getValue();JSON.stringify(e)!==JSON.stringify(t)&&this.setValue(t)}}))}_init(){this.element&&("INPUT"===this.element.tagName?(this.element.style.display="none",this._createStructure(),this.options.value&&this.options.value.length>0&&this.options.value.forEach(e=>{const t=this._findItemByValue(e);t?this._addPill(t.value,t.label):"string"==typeof e&&this._addPill(e,e)}),this._bindEvents(),this._input.setAttribute("role","combobox"),this._input.setAttribute("aria-autocomplete","list"),this._input.setAttribute("aria-expanded","false")):console.error("Pillbox requires an input element"))}_createStructure(){const e=document.createElement("div");if(e.className=`dm-pillbox dm-pillbox-${this.options.size}`,this._container=document.createElement("div"),this._container.className="dm-pillbox-container",this._input=document.createElement("input"),this._input.type="text",this._input.className="dm-pillbox-input",this._input.placeholder=this.options.placeholder,this._container.appendChild(this._input),e.appendChild(this._container),this.options.clearable&&(this._clearBtn=document.createElement("button"),this._clearBtn.type="button",this._clearBtn.className="dm-pillbox-clear",this._clearBtn.innerHTML="×",this._clearBtn.title="Clear all",this._clearBtn.style.display="none",e.appendChild(this._clearBtn)),this.options.searchable){this._dropdown=document.createElement("div"),this._dropdown.className="dm-pillbox-dropdown",this._dropdown.style.display="none",this._optionsList=document.createElement("ul"),this._optionsList.className="dm-pillbox-options",this._dropdown.appendChild(this._optionsList);const t=document.createElement("div");t.className="dm-pillbox-empty",t.textContent=this.options.noResultsMessage,t.style.display="none",this._dropdown.appendChild(t),e.appendChild(this._dropdown)}this.element.parentNode.insertBefore(e,this.element.nextSibling),this._wrapper=e}_bindEvents(){const e=this._handleInput.bind(this),t=this._handleKeydown.bind(this);this._addEventListener(this._input,"input",e),this._addEventListener(this._input,"keydown",t),this._addEventListener(this._input,"focus",()=>{this.options.searchable&&this._input.value&&this._filterOptions(this._input.value)}),this._addEventListener(this._input,"blur",()=>{setTimeout(()=>{this._dropdown?.contains(document.activeElement)||this.close()},200)}),this._clearBtn&&this._addEventListener(this._clearBtn,"click",()=>{this.clear(),this._input.focus()}),this._addEventListener(this._container,"click",e=>{e.target===this._container&&this._input.focus()})}_handleInput(e){const t=e.target.value;this.options.searchable&&t?this._filterOptions(t):this.close()}_handleKeydown(e){const t=this._input.value;if("Backspace"===e.key&&!t&&this._pills.length>0){e.preventDefault();const t=this._container.querySelectorAll(".dm-pill")[this._pills.length-1];return void this._removePill(t)}if("Enter"===e.key&&t)return e.preventDefault(),void(this._isOpen&&this._activeIndex>=0?this._selectOption(this._activeIndex):this.options.creatable&&this._createPill(t));if(this._isOpen){const t=this._optionsList.querySelectorAll(".dm-pillbox-option");switch(e.key){case"ArrowDown":e.preventDefault(),this._activeIndex=Math.min(this._activeIndex+1,t.length-1),this._updateActive();break;case"ArrowUp":e.preventDefault(),this._activeIndex=Math.max(this._activeIndex-1,-1),this._updateActive();break;case"Escape":e.preventDefault(),this.close();break;case"Tab":this.close()}}}_filterOptions(e){const t=e.toLowerCase(),o=this._pills.map(e=>e.value);this._filteredData=this.options.data.filter(e=>{const s="string"==typeof e?e:e.value,n="string"==typeof e?e:e.label||e.value;return!o.includes(s)&&(!e.disabled&&n.toLowerCase().includes(t))}),this._renderOptions()}_renderOptions(){this._optionsList.innerHTML="",this._activeIndex=-1;const e=this._dropdown.querySelector(".dm-pillbox-empty");if(0===this._filteredData.length)return e.style.display="block",this._optionsList.style.display="none",void this.open();e.style.display="none",this._optionsList.style.display="block",this._filteredData.forEach((e,t)=>{const o=document.createElement("li");if(o.className="dm-pillbox-option",o.setAttribute("data-index",t),this.options.renderOption){const t=this.options.renderOption(e);o.innerHTML="string"==typeof t?t:"","string"!=typeof t&&o.appendChild(t)}else{const t="string"==typeof e?e:e.label||e.value;o.textContent=t}o.addEventListener("click",()=>{this._selectOption(t)}),o.addEventListener("mouseenter",()=>{this._activeIndex=t,this._updateActive()}),this._optionsList.appendChild(o)}),this.open()}_updateActive(){this._optionsList.querySelectorAll(".dm-pillbox-option").forEach((e,t)=>{t===this._activeIndex?(e.classList.add("active"),e.scrollIntoView({block:"nearest"})):e.classList.remove("active")})}_selectOption(e){const t=this._filteredData[e];if(!t)return;const o="string"==typeof t?t:t.value,s="string"==typeof t?t:t.label||t.value;this._addPill(o,s),this._input.value="",this.close(),this._input.focus()}_createPill(e){if(!e.trim())return;const t=this._validate(e);t?this.options.onValidationError&&this.options.onValidationError(t,e):(this._addPill(e,e),this._input.value="",this.options.onCreate&&this.options.onCreate(e))}_addPill(e,t){const o=this._validate(e);if(o)return void(this.options.onValidationError&&this.options.onValidationError(o,e));const s=document.createElement("div");if(s.className="dm-pill",s.setAttribute("data-value",e),this.options.renderPill){const o=this.options.renderPill({value:e,label:t});s.innerHTML="string"==typeof o?o:"","string"!=typeof o&&s.appendChild(o)}else{const e=this.options.pillTemplate.replace("{label}",t);s.innerHTML=e}const n=document.createElement("button");n.type="button",n.className="dm-pill-remove",n.innerHTML="×",n.title=`Remove ${t}`,n.addEventListener("click",e=>{e.stopPropagation(),this._removePill(s)}),s.appendChild(n),this._container.insertBefore(s,this._input),this._pills.push({value:e,label:t,element:s}),this._updateHiddenInput(),this._clearBtn&&(this._clearBtn.style.display="block"),this.options.onAdd&&this.options.onAdd(e,s),this._triggerChange()}_removePill(e){const t=e.getAttribute("data-value"),o=this._pills.findIndex(e=>e.value===t);-1!==o&&(this._pills[o],e.remove(),this._pills.splice(o,1),this._updateHiddenInput(),0===this._pills.length&&this._clearBtn&&(this._clearBtn.style.display="none"),this.options.onRemove&&this.options.onRemove(t,e),this._triggerChange())}_validate(e){if(this.options.maxItems&&this._pills.length>=this.options.maxItems)return this.options.onMaxReached&&this.options.onMaxReached(),this.options.maxItemsMessage.replace("{max}",this.options.maxItems);if(!this.options.duplicates&&this._pills.some(t=>t.value===e))return this.options.duplicateMessage;if(this.options.validatePill){const t=this.options.validatePill(e);if(!0!==t&&void 0!==t)return"string"==typeof t?t:"Invalid value"}return null}_findItemByValue(e){return this.options.data.find(t=>("string"==typeof t?t:t.value)===e)}_updateHiddenInput(){const e=this._pills.map(e=>e.value);this.element.value=JSON.stringify(e)}_triggerChange(){const e=this.getValue();this.model&&this.modelKey&&this.model.set(this.modelKey,e),this.options.onChange&&this.options.onChange(e)}open(){return!this._dropdown||this._isOpen||(this._isOpen=!0,this._dropdown.style.display="block",this._input.setAttribute("aria-expanded","true")),this}close(){return this._dropdown&&this._isOpen?(this._isOpen=!1,this._dropdown.style.display="none",this._input.setAttribute("aria-expanded","false"),this._activeIndex=-1,this):this}isOpen(){return this._isOpen}getValue(){return this._pills.map(e=>e.value)}setValue(e){return this.clear(),Array.isArray(e)&&e.forEach(e=>{const t=this._findItemByValue(e);if(t){const o="string"==typeof t?t:t.label||t.value;this._addPill(e,o)}else"string"==typeof e&&this._addPill(e,e)}),this}addPill(e,t){return t=t||e,this._addPill(e,t),this}removePill(e){const t=this._container.querySelector(`.dm-pill[data-value="${e}"]`);return t&&this._removePill(t),this}removePillAt(e){return e>=0&&e<this._pills.length&&this._removePill(this._pills[e].element),this}clear(){return[...this._pills].forEach(e=>{this._removePill(e.element)}),this}getCount(){return this._pills.length}setData(e){return this.options.data=e,this}focus(){return this._input.focus(),this}enable(){return this._input.disabled=!1,this._wrapper.classList.remove("disabled"),this}disable(){return this._input.disabled=!0,this._wrapper.classList.add("disabled"),this.close(),this}destroy(){this.close(),this._wrapper&&this._wrapper.parentNode&&this._wrapper.parentNode.removeChild(this._wrapper),this.element.style.display="",this._modelUnsubscribe&&this._modelUnsubscribe(),super.destroy()}}class z extends n{static defaults={position:"right",size:"lg",backdrop:!0,backdropClose:!0,keyboard:!0,animation:!0,animationDuration:300,closeOnEscape:!0,title:"",content:"",closable:!0,closeIcon:"x",headerClass:"",bodyClass:"",footerClass:"",customSizes:{},onOpen:null,onClose:null,onClosed:null};constructor(e,t={}){super(e,t),this._isOpen=!1,this._backdrop=null,this._originalBodyOverflow=null,this._keydownHandler=null,this._init()}_init(){this.element&&(this._setupElement(),this._bindEvents())}_setupElement(){const e=this.element;this.options,e.classList.add("dm-slideover"),e.style.position="fixed",e.style.top="0",e.style.height="100vh",e.style.backgroundColor="white",e.style.boxShadow=this._getBoxShadow(),e.style.zIndex="9999",e.style.display="none",e.style.flexDirection="column",e.style.overflow="hidden",this._applyPosition(),this._applySize(),this._applyAnimation()}_applyPosition(){const e=this.element,t=this.options.position;switch(e.classList.remove("dm-slideover-left","dm-slideover-right","dm-slideover-top","dm-slideover-bottom"),e.classList.add(`dm-slideover-${t}`),t){case"left":e.style.left="-100%",e.style.right="auto",e.style.top="0",e.style.bottom="0",e.style.width=this._getSizeValue(),e.style.height="100vh";break;case"right":e.style.right="-100%",e.style.left="auto",e.style.top="0",e.style.bottom="0",e.style.width=this._getSizeValue(),e.style.height="100vh";break;case"top":e.style.top="-100%",e.style.bottom="auto",e.style.left="0",e.style.right="0",e.style.width="100vw",e.style.height=this._getSizeValue();break;case"bottom":e.style.bottom="-100%",e.style.top="auto",e.style.left="0",e.style.right="0",e.style.width="100vw",e.style.height=this._getSizeValue()}}_applySize(){const e=this._getSizeValue(),t=this.options.position;["left","right"].includes(t)?this.element.style.width=e:this.element.style.height=e}_getSizeValue(){const{size:e,customSizes:t}=this.options;if(t&&t[e])return t[e];const o={sm:"25%",md:"50%",lg:"75%",xl:"90%",full:"100%"};return"string"==typeof e&&(e.includes("px")||e.includes("%")||e.includes("rem")||e.includes("em"))?e:o[e]||o.lg}_applyAnimation(){this.options.animation?this.element.style.transition=`all ${this.options.animationDuration}ms ease`:this.element.style.transition="none"}_getBoxShadow(){switch(this.options.position){case"left":return"2px 0 8px rgba(0,0,0,0.15)";case"right":default:return"-2px 0 8px rgba(0,0,0,0.15)";case"top":return"0 2px 8px rgba(0,0,0,0.15)";case"bottom":return"0 -2px 8px rgba(0,0,0,0.15)"}}_bindEvents(){if(this.options.closable){const e=this.element.querySelector('[data-dismiss="slideover"], .dm-slideover-close');e&&this._addEventListener(e,"click",()=>this.close())}this._keydownHandler=e=>{this._isOpen&&this.options.keyboard&&"Escape"===e.key&&this.options.closeOnEscape&&this.close()}}_createBackdrop(){this.options.backdrop&&(this._backdrop=document.createElement("div"),this._backdrop.className="dm-slideover-backdrop",this._backdrop.style.cssText=`\n position: fixed;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n background-color: rgba(0, 0, 0, 0.5);\n z-index: 9998;\n display: none;\n transition: opacity ${this.options.animationDuration}ms ease;\n opacity: 0;\n `,this.options.backdropClose&&this._backdrop.addEventListener("click",()=>this.close()),document.body.appendChild(this._backdrop))}_showBackdrop(){this._backdrop&&(this._backdrop.style.display="block",requestAnimationFrame(()=>{this._backdrop.style.opacity="1"}))}_hideBackdrop(){this._backdrop&&(this._backdrop.style.opacity="0",setTimeout(()=>{this._backdrop&&(this._backdrop.style.display="none")},this.options.animationDuration))}_getOpenPosition(){switch(this.options.position){case"left":return{left:"0",right:"auto"};case"right":return{right:"0",left:"auto"};case"top":return{top:"0",bottom:"auto"};case"bottom":return{bottom:"0",top:"auto"}}}open(){if(this._isOpen)return this;const e=this.element;if(!e)return this;this.options.backdrop&&!this._backdrop&&this._createBackdrop(),this._originalBodyOverflow=document.body.style.overflow,document.body.style.overflow="hidden",this._showBackdrop(),e.style.display="flex";const t=this._getOpenPosition();return requestAnimationFrame(()=>{Object.assign(e.style,t)}),this.options.keyboard&&document.addEventListener("keydown",this._keydownHandler),this._isOpen=!0,setTimeout(()=>{this.options.onOpen&&this.options.onOpen(this),this._createForm()},this.options.animationDuration),this}_createForm(){if(this._schema&&!this._formaForm&&window.Domma&&window.Domma.forms&&window.Domma.forms.create)try{console.log("📝 Creating Forma form with schema:",this._schema);let e=this._schema;if(this._schema.fields&&Array.isArray(this._schema.fields)){e={};for(const t of this._schema.fields)t.name&&(e[t.name]={type:t.type||"string",label:t.label,required:t.required||!1,default:t.defaultValue,min:t.validation?.minLength,max:t.validation?.maxLength,pattern:t.validation?.pattern?new RegExp(t.validation.pattern):void 0,options:t.options,formConfig:{placeholder:t.placeholder,hint:t.help,rows:t.rows,accept:t.accept,multiple:t.multiple}});console.log("📝 Converted schema:",e)}const t={onSubmit:(e,t)=>(console.log("📝 Schema form submitted:",e),this._onSave&&this._onSave(e,t,this),!1),onCancel:()=>{console.log("📝 Schema form cancelled"),this.close()},layout:"stacked",showLabels:!0,showHelperText:!0,showHints:!0,cssFramework:"domma",className:"domma-form",fieldClassName:"col-6 mb-3",labelClassName:"form-label",inputClassName:"form-input",errorClassName:"form-error",helperClassName:"form-helper-text",hintClassName:"form-hint"};this._formaForm=window.Domma.forms.create(e,this._data||{},t),this._formaForm.renderTo("#schema-form-container"),console.log("📝 Forma form created and rendered successfully")}catch(e){console.error("📝 Failed to create Forma form:",e);const t=this.element.querySelector(".dm-slideover-body");t&&(t.innerHTML="<p>Form creation failed. Please try again.</p>")}}close(){if(!this._isOpen)return this;const e=this.element;if(!e)return this;if(this.options.onClose&&this.options.onClose(this),this._applyPosition(),this._hideBackdrop(),null!==this._originalBodyOverflow&&(document.body.style.overflow=this._originalBodyOverflow),this._keydownHandler&&document.removeEventListener("keydown",this._keydownHandler),this._formaForm)try{this._formaForm.destroy&&this._formaForm.destroy(),this._formaForm=null;const t=e.querySelector("#schema-form-container");t&&(t.innerHTML="")}catch(e){console.warn("Error cleaning up form:",e)}return setTimeout(()=>{e.style.display="none",this._isOpen=!1,this.options.onClosed&&this.options.onClosed(this)},this.options.animationDuration),this}toggle(){return this._isOpen?this.close():this.open()}isOpen(){return this._isOpen}setTitle(e){const t=this.element.querySelector(".dm-slideover-header .dm-slideover-title");return t&&(t.textContent=e),this}setContent(e){const t=this.element.querySelector(".dm-slideover-body");return t&&("string"==typeof e?t.innerHTML=e:e instanceof Element&&(t.innerHTML="",t.appendChild(e))),this}setSize(e){return this.options.size=e,this._applySize(),this}setPosition(e){return this.options.position=e,this.element.style.boxShadow=this._getBoxShadow(),this._applyPosition(),this}destroy(){this.close(),this._backdrop&&(this._backdrop.remove(),this._backdrop=null),this._keydownHandler&&document.removeEventListener("keydown",this._keydownHandler),super.destroy()}static create(e={}){const t=document.createElement("div");t.className="dm-slideover";const{title:o,content:s,schema:n,data:i={},closable:r=!0,closeIcon:a="x",onSave:l}=e;let h="";if((o||r)&&(h+='<div class="dm-slideover-header">',o&&(h+=`<h5 class="dm-slideover-title">${o}</h5>`),r&&(h+='<button type="button" class="btn btn-ghost-secondary dm-slideover-close" data-dismiss="slideover" aria-label="Close">',window.Domma&&window.Domma.icons?h+=Domma.icons.render(a,{size:20}).outerHTML:h+="×",h+="</button>"),h+="</div>"),h+='<div class="dm-slideover-body">',n?(h+='<div class="container-fluid p-4">',h+='<div class="card">',h+='<div class="card-body p-4">',h+='<div class="row g-3" id="schema-form-container"></div>',h+="</div>",h+="</div>",h+="</div>"):s&&(h+="string"==typeof s?s:""),h+="</div>",t.innerHTML=h,document.body.appendChild(t),s instanceof Element&&!n){const e=t.querySelector(".dm-slideover-body");e.innerHTML="",e.appendChild(s)}const c=new z(t,e);return c._schema=n,c._data=i,c._onSave=l,c}}class A extends n{static defaults={mode:"timeline",items:[],layout:"vertical",animation:!0,animationDelay:100,responsive:!0,theme:"default",clickable:!1,onItemClick:null,yearWidth:"80px",contentMaxWidth:"600px",dateFormat:"YYYY",showConnector:!0,showProgress:!0,progressPosition:"top",statusIcons:!0,allowStatusChange:!1,onStatusChange:null,currentItem:null,completedAnimation:!0,icons:{planned:"circle","in-progress":"clock",completed:"check-circle",blocked:"alert-circle",cancelled:"x-circle"},colors:{planned:"var(--dm-gray-400)","in-progress":"var(--dm-primary)",completed:"var(--dm-success)",blocked:"var(--dm-danger)",cancelled:"var(--dm-gray-500)"}};constructor(e,t={}){super(e,t),this._init()}_init(){this.element&&(this.element.classList.add("dm-progression",`dm-progression-${this.options.mode}`,`dm-progression-${this.options.layout}`),"default"!==this.options.theme&&this.element.classList.add(`dm-progression-${this.options.theme}`),"timeline"===this.options.mode&&(this.element.classList.add("dm-timeline",`dm-timeline-${this.options.layout}`),"default"!==this.options.theme&&this.element.classList.add(`dm-timeline-${this.options.theme}`)),this._renderItems(),this._attachEvents(),this.options.animation&&this._animateItems())}_renderItems(){const e=this.options.items;Array.isArray(e)&&0!==e.length&&(this.element.innerHTML="","roadmap"===this.options.mode&&this.options.showProgress&&"top"===this.options.progressPosition&&this._renderProgressBar(),e.forEach((e,t)=>{const o="roadmap"===this.options.mode?this._renderRoadmapItem(e,t):this._renderTimelineItem(e,t);this.element.appendChild(o)}),"roadmap"===this.options.mode&&this.options.showProgress&&"bottom"===this.options.progressPosition&&this._renderProgressBar())}_renderTimelineItem(e,t){const o=document.createElement("div");return o.className="dm-progression-item dm-timeline-item",o.setAttribute("data-index",t),this.options.animation&&(o.style.opacity="0",o.style.transform="translateY(20px)",o.style.transition="opacity 0.6s ease, transform 0.6s ease"),o.innerHTML=`\n <div class="dm-progression-marker dm-timeline-year">${this._escapeHtml(e.year||e.date||"")}</div>\n <div class="dm-progression-content dm-timeline-content">\n <h4 class="dm-progression-title dm-timeline-title">${this._escapeHtml(e.title||"")}</h4>\n <p class="dm-progression-description dm-timeline-description">${this._escapeHtml(e.description||"")}</p>\n </div>\n `,o}_renderRoadmapItem(e,t){const o=document.createElement("div"),s=e.status||"planned",n=this.options.currentItem===e.id||this.options.currentItem===t;o.className=`dm-progression-item dm-progression-status-${s}${n?" dm-progression-current":""}`,o.setAttribute("data-index",t),o.setAttribute("data-id",e.id||t),o.setAttribute("data-status",s),this.options.animation&&(o.style.opacity="0",o.style.transform="translateY(20px)",o.style.transition="opacity 0.6s ease, transform 0.6s ease");let i='<div class="dm-progression-marker dm-progression-status-marker">';this.options.statusIcons&&this.options.icons[s]?i+=`<span class="dm-progression-status-icon" data-icon="${this.options.icons[s]}"></span>`:i+='<span class="dm-progression-status-dot"></span>',i+="</div>";let r='<div class="dm-progression-content">';return e.date&&(r+=`<div class="dm-progression-date">${this._escapeHtml(e.date)}</div>`),r+=`<h4 class="dm-progression-title">${this._escapeHtml(e.title||"")}</h4>`,e.description&&(r+=`<p class="dm-progression-description">${this._escapeHtml(e.description)}</p>`),"in-progress"===s&&"number"==typeof e.progress&&(r+=`\n <div class="dm-progression-item-progress">\n <div class="dm-progression-item-progress-bar" style="width: ${Math.min(100,Math.max(0,e.progress))}%"></div>\n </div>\n <div class="dm-progression-item-progress-text">${e.progress}%</div>\n `),e.priority&&(r+=`<span class="dm-progression-priority dm-progression-priority-${e.priority}">${this._escapeHtml(e.priority)}</span>`),e.tags&&Array.isArray(e.tags)&&e.tags.length>0&&(r+='<div class="dm-progression-tags">',e.tags.forEach(e=>{r+=`<span class="dm-progression-tag">${this._escapeHtml(e)}</span>`}),r+="</div>"),e.assignee&&(r+=`<div class="dm-progression-assignee">${this._escapeHtml(e.assignee)}</div>`),r+="</div>",o.innerHTML=i+r,o}_renderProgressBar(){const e=this.getProgress(),t=document.createElement("div");t.className="dm-progression-progress",t.innerHTML=`\n <div class="dm-progression-progress-bar" style="width: ${e}%"></div>\n <div class="dm-progression-progress-text">${Math.round(e)}% Complete</div>\n `,this.element.appendChild(t)}_attachEvents(){this.options.clickable&&(this._addEventListener(this.element,"click",e=>{const t=e.target.closest(".dm-progression-item");if(t){const e=parseInt(t.getAttribute("data-index"),10),o=this.options.items[e];o&&this.options.onItemClick&&this.options.onItemClick(o,e,t)}}),"roadmap"===this.options.mode&&this.options.allowStatusChange&&this._addEventListener(this.element,"click",e=>{const t=e.target.closest(".dm-progression-marker");if(t){const e=t.closest(".dm-progression-item"),o=parseInt(e.getAttribute("data-index"),10),s=this.options.items[o];s&&"completed"!==s.status&&this._cycleStatus(s,o)}}))}_cycleStatus(e,t){const o=["planned","in-progress","completed"],s=o.indexOf(e.status||"planned"),n=o[(s+1)%o.length];this.setStatus(t,n)}_animateItems(){this.element.querySelectorAll(".dm-progression-item").forEach((e,t)=>{setTimeout(()=>{e.style.opacity="1",e.style.transform="translateY(0)"},t*this.options.animationDelay)})}_escapeHtml(e){const t=document.createElement("div");return t.textContent=e,t.innerHTML}_findItemIndex(e){return"number"==typeof e?e:this.options.items.findIndex(t=>t.id===e)}setItems(e){return this.options.items=e,this._renderItems(),this.options.animation&&this._animateItems(),this}addItem(e){return this.options.items.push(e),this._renderItems(),this.options.animation&&this._animateItems(),this}getItems(){return[...this.options.items]}getItem(e){const t=this._findItemIndex(e);return t>=0?{...this.options.items[t]}:null}updateItem(e,t){const o=this._findItemIndex(e);return o>=0&&(this.options.items[o]={...this.options.items[o],...t},this._renderItems(),this.options.animation&&this._animateItems()),this}removeItem(e){const t=this._findItemIndex(e);return t>=0&&(this.options.items.splice(t,1),this._renderItems(),this.options.animation&&this._animateItems()),this}setLayout(e){return this.element.classList.remove(`dm-progression-${this.options.layout}`),"timeline"===this.options.mode&&this.element.classList.remove(`dm-timeline-${this.options.layout}`),this.options.layout=e,this.element.classList.add(`dm-progression-${e}`),"timeline"===this.options.mode&&this.element.classList.add(`dm-timeline-${e}`),this}setTheme(e){return"default"!==this.options.theme&&(this.element.classList.remove(`dm-progression-${this.options.theme}`),"timeline"===this.options.mode&&this.element.classList.remove(`dm-timeline-${this.options.theme}`)),this.options.theme=e,"default"!==e&&(this.element.classList.add(`dm-progression-${e}`),"timeline"===this.options.mode&&this.element.classList.add(`dm-timeline-${e}`)),this}setMode(e){return this.element.classList.remove(`dm-progression-${this.options.mode}`),"timeline"===this.options.mode&&(this.element.classList.remove("dm-timeline",`dm-timeline-${this.options.layout}`),"default"!==this.options.theme&&this.element.classList.remove(`dm-timeline-${this.options.theme}`)),this.options.mode=e,this.element.classList.add(`dm-progression-${e}`),"timeline"===e&&(this.element.classList.add("dm-timeline",`dm-timeline-${this.options.layout}`),"default"!==this.options.theme&&this.element.classList.add(`dm-timeline-${this.options.theme}`)),this._renderItems(),this.options.animation&&this._animateItems(),this}getMode(){return this.options.mode}refresh(){return this._renderItems(),this.options.animation&&this._animateItems(),this}setStatus(e,t){const o=this._findItemIndex(e);if(o>=0){const e=this.options.items[o].status;this.options.items[o].status=t,this.options.onStatusChange&&this.options.onStatusChange(this.options.items[o],e,t),this._renderItems(),this.options.animation&&this._animateItems()}return this}getStatus(e){const t=this.getItem(e);return t?t.status:null}getItemsByStatus(e){return this.options.items.filter(t=>t.status===e)}setCurrent(e){const t=this._findItemIndex(e);return t>=0&&(this.options.currentItem=this.options.items[t].id||t,this._renderItems(),this.options.animation&&this._animateItems()),this}getCurrent(){return null===this.options.currentItem?null:this.getItem(this.options.currentItem)}getProgress(){if("roadmap"!==this.options.mode||0===this.options.items.length)return 0;const e=this.options.items.filter(e=>"completed"===e.status).length;return Math.round(e/this.options.items.length*100)}markComplete(e){return this.setStatus(e,"completed")}markInProgress(e){return this.setStatus(e,"in-progress")}markBlocked(e){return this.setStatus(e,"blocked")}}const W={_instances:new Map,card(e,t={}){const o=new r(e,t);return o.element&&this._instances.set(o.element,o),o},modal(e,t={}){if("object"==typeof e&&!e.nodeType&&"string"!=typeof e)return l.createModal(e);const o=new a(e,t);return o.element&&this._instances.set(o.element,o),o},tabs(e,t={}){const o=new h(e,t);return o.element&&this._instances.set(o.element,o),o},accordion(e,t={}){const o=new c(e,t);return o.element&&this._instances.set(o.element,o),o},tooltip(e,t={}){const o="string"==typeof e?document.querySelectorAll(e):[e],s=[];for(const e of o){const o=new d(e,t);this._instances.set(e,o),s.push(o)}return 1===s.length?s[0]:s},badge(e,t={}){const o="string"==typeof e?document.querySelectorAll(e):[e],s=[];for(const e of o){const o=new u(e,t);this._instances.set(e,o),s.push(o)}return 1===s.length?s[0]:s},dropdown(e,t={}){const o=new p(e,t);return o.element&&this._instances.set(o.element,o),o},carousel(e,t={}){const o=new _(e,t);return o.element&&this._instances.set(o.element,o),o},cookieConsent(e={}){if(this._instances.has("cookieConsent"))return this._instances.get("cookieConsent");const t=new y(e);return this._instances.set("cookieConsent",t),t},backToTop(e,t={}){const o=new M(e,t);return this._instances.set("backToTop",o),o},buttonGroup(e,t={}){const o="string"==typeof e?document.querySelectorAll(e):[e],s=[];for(const e of o){const o=new w(e,t);this._instances.set(e,o),s.push(o)}return 1===s.length?s[0]:s},loader(e,t={}){const o=new L(e,t);return o.element&&this._instances.set(o.element,o),o},showLoader:L.show.bind(L),hideLoader:L.hide.bind(L),fullscreenLoader:L.fullscreen.bind(L),breadcrumbs(e,t={}){const o=new x(e,t);return o.element&&this._instances.set(o.element,o),o},navbar(e,t={}){const o=new C(e,t);return o.element&&this._instances.set(o.element,o),o},sidebar(e,t={}){const o=new E(e,t);return o.element&&this._instances.set(o.element,o),o},footer(e,t={}){const o=new S(e,t);return o.element&&this._instances.set(o.element,o),o},notification:(e={})=>new v(e),notify:(e,t={})=>v.notify(e,t),timer(e,t={}){const o=new k(e,t);return o.element&&this._instances.set(o.element,o),o},alarm:(e={})=>new g(e),autocomplete(e,t={}){const o=new B(e,t);return o.element&&this._instances.set(o.element,o),o},pillbox(e,t={}){const o=new j(e,t);return o.element&&this._instances.set(o.element,o),o},treeView(e,t={}){const o=new i(e,t);return o.element&&this._instances.set(o.element,o),o},slideover(e,t={}){if("object"==typeof e&&!e.nodeType&&"string"!=typeof e)return e.schema,z.create(e);const o=new z(e,t);return o.element&&this._instances.set(o.element,o),o},progression(e,t={}){const o=new A(e,t);return o.element&&this._instances.set(o.element,o),o},timeline(e,t={}){return"undefined"!=typeof Domma&&!1!==Domma.config?.deprecationWarnings&&"undefined"!=typeof console&&console.warn('Domma: timeline() is deprecated. Use progression({ mode: "timeline" }) instead.'),this.progression(e,{mode:"timeline",...t})},toast:Object.assign((e,t={})=>m.show(e,t),{show:m.show.bind(m),success:m.success.bind(m),error:m.error.bind(m),warning:m.warning.bind(m),info:m.info.bind(m),closeAll:m.closeAll.bind(m)}),dialog:b,alert:b.alert.bind(b),confirm:b.confirm.bind(b),prompt:b.prompt.bind(b),createModal:l.createModal.bind(l),showModal:l.showModal.bind(l),get(e){const t="string"==typeof e?document.querySelector(e):e;return this._instances.get(t)},destroy(e){const t="string"==typeof e?document.querySelector(e):e,o=this._instances.get(t);o&&(o.destroy(),this._instances.delete(t))},destroyAll(){for(const e of this._instances.values())e.destroy();this._instances.clear()},_registry:new Map,register(e,t){this._registry.set(e,t)},create(e,t,o={}){const s=this._registry.get(e);if(s)return new s(t,o);throw new Error(`Unknown component: ${e}`)}},H={_prefix:"domma:",_available:null,isAvailable(){if(null!==this._available)return this._available;try{const e=`${this._prefix}__test__`;localStorage.setItem(e,"test"),localStorage.removeItem(e),this._available=!0}catch(e){this._available=!1}return this._available},_prefixKey(e){return`${this._prefix}${e}`},_unprefixKey(e){return e.slice(this._prefix.length)},get(e,t=null){if(!this.isAvailable())return t;try{const o=this._prefixKey(e),s=localStorage.getItem(o);return null===s?t:JSON.parse(s)}catch(o){return console.warn(`Domma storage: Failed to parse key "${e}"`,o),t}},set(e,t){if(!this.isAvailable())return!1;try{const o=this._prefixKey(e),s=JSON.stringify(t);return localStorage.setItem(o,s),!0}catch(t){return console.warn(`Domma storage: Failed to set key "${e}"`,t),!1}},remove(e){if(!this.isAvailable())return!1;try{const t=this._prefixKey(e);return localStorage.removeItem(t),!0}catch(t){return console.warn(`Domma storage: Failed to remove key "${e}"`,t),!1}},has(e){if(!this.isAvailable())return!1;try{const t=this._prefixKey(e);return null!==localStorage.getItem(t)}catch(e){return!1}},clear(){if(!this.isAvailable())return 0;try{const e=this.keys();return e.forEach(e=>this.remove(e)),e.length}catch(e){return console.warn("Domma storage: Failed to clear storage",e),0}},keys(){if(!this.isAvailable())return[];try{const e=[];for(let t=0;t<localStorage.length;t++){const o=localStorage.key(t);o&&o.startsWith(this._prefix)&&e.push(this._unprefixKey(o))}return e}catch(e){return[]}},size(e){if(!this.isAvailable())return 0;try{const t=this._prefixKey(e),o=localStorage.getItem(t);return o?new Blob([o]).size:0}catch(e){return 0}},totalSize(){if(!this.isAvailable())return 0;try{let e=0;return this.keys().forEach(t=>{e+=this.size(t)}),e}catch(e){return 0}},getAll(){if(!this.isAvailable())return{};const e={};return this.keys().forEach(t=>{e[t]=this.get(t)}),e},setAll(e){if(!this.isAvailable()||!e)return!1;let t=!0;return Object.keys(e).forEach(o=>{this.set(o,e[o])||(t=!1)}),t}};class ${constructor(e,t={},o={}){this._schema=e,this._data={},this._initialData={},this._bindings=new Map,this._changeCallbacks=new Set,this._fieldCallbacks=new Map,this._persistKey=o.persist||null,this._autoSave=!1!==o.autoSave;for(const o in e){const s=e[o],n=void 0!==s.default?s.default:null;this._data[o]=void 0!==t[o]?t[o]:n,this._initialData[o]=this._data[o]}this._persistKey&&this._loadFromStorage()}get(e){return e?this._data[e]:{...this._data}}set(e,t){if("object"==typeof e)for(const t in e)this._setField(t,e[t]);else this._setField(e,t);return this}_setField(e,t){const o=this._data[e];if(this._schema[e]){const o=this._validateField(e,t);if(!o.valid)throw new Error(`Validation failed for ${e}: ${o.error}`)}this._data[e]=t,s.isEqual(o,t)||(this._notifyChange(e,t,o),this._updateBindings(e,t),this._persistKey&&this._autoSave&&this._saveToStorage())}_validateField(e,t){const o=this._schema[e];if(o.required&&(null==t||""===t))return{valid:!1,error:"Required field is empty"};if(null!=t&&o.type){const e=D.types[o.type];if(e&&!e(t))return{valid:!1,error:`Expected type ${o.type}`}}if(void 0!==o.min&&"number"==typeof t&&t<o.min)return{valid:!1,error:`Value must be at least ${o.min}`};if(void 0!==o.max&&"number"==typeof t&&t>o.max)return{valid:!1,error:`Value must be at most ${o.max}`};if(void 0!==o.minLength&&"string"==typeof t&&t.length<o.minLength)return{valid:!1,error:`Length must be at least ${o.minLength}`};if(void 0!==o.maxLength&&"string"==typeof t&&t.length>o.maxLength)return{valid:!1,error:`Length must be at most ${o.maxLength}`};if(o.pattern&&"string"==typeof t&&!o.pattern.test(t))return{valid:!1,error:"Value does not match pattern"};if(o.validate&&"function"==typeof o.validate){const e=o.validate(t);if(!1===e)return{valid:!1,error:"Custom validation failed"};if("string"==typeof e)return{valid:!1,error:e}}return{valid:!0}}validate(){const e=[];for(const t in this._schema){const o=this._validateField(t,this._data[t]);o.valid||e.push({field:t,error:o.error})}return{valid:0===e.length,errors:e}}toJSON(){return{...this._data}}onChange(e){return this._changeCallbacks.add(e),()=>this._changeCallbacks.delete(e)}onFieldChange(e,t){return this._fieldCallbacks.has(e)||this._fieldCallbacks.set(e,new Set),this._fieldCallbacks.get(e).add(t),()=>this._fieldCallbacks.get(e).delete(t)}_notifyChange(e,t,o){for(const s of this._changeCallbacks)s({field:e,newValue:t,oldValue:o,model:this});if(this._fieldCallbacks.has(e))for(const s of this._fieldCallbacks.get(e))s(t,o,this)}_updateBindings(e,t){if(this._bindings.has(e))for(const o of this._bindings.get(e))o.update(t)}_addBinding(e,t){this._bindings.has(e)||this._bindings.set(e,new Set),this._bindings.get(e).add(t)}_removeBinding(e,t){this._bindings.has(e)&&this._bindings.get(e).delete(t)}reset(e=!1){for(const e in this._initialData)this.set(e,s.cloneDeep(this._initialData[e]));return e&&this._persistKey&&this.clearStorage(),this}destroy(e=!1){e&&this._persistKey&&this.clearStorage(),this._changeCallbacks.clear(),this._fieldCallbacks.clear(),this._bindings.clear()}save(){return this._saveToStorage()}load(){return this._loadFromStorage()}clearStorage(){return!!this._persistKey&&H.remove(`model:${this._persistKey}`)}getPersistKey(){return this._persistKey}isPersisted(){return null!==this._persistKey}_saveToStorage(){if(!this._persistKey)return!1;try{return H.set(`model:${this._persistKey}`,this._data)}catch(e){return console.warn("Domma Model: Failed to save to storage",e),!1}}_loadFromStorage(){if(!this._persistKey)return!1;try{const e=H.get(`model:${this._persistKey}`);if(e&&"object"==typeof e){for(const t in e)void 0!==this._schema[t]&&(this._data[t]=e[t]);return!0}return!1}catch(e){return console.warn("Domma Model: Failed to load from storage",e),!1}}}class T{constructor(e,t,o,s={}){this.model=e,this.field=t,this.element=o,this.options=s,this.format=s.format||(e=>e),this.parse=s.parse||(e=>e),this.twoWay=s.twoWay||!1,this._eventHandler=null,this.update(e.get(t)),this.twoWay&&this._setupTwoWay()}update(e){const t=this.format(e),o=this.element;"INPUT"===o.tagName||"TEXTAREA"===o.tagName?"checkbox"===o.type?o.checked=Boolean(t):"radio"===o.type?o.checked=o.value===String(t):o.value=null!=t?t:"":"SELECT"===o.tagName?o.value=t:o.textContent=null!=t?t:""}_setupTwoWay(){const e=this.element,t=this._getEventType();this._eventHandler=t=>{let o;o="checkbox"===e.type?e.checked:"number"===e.type||"range"===e.type?""===e.value?null:Number(e.value):e.value;try{this.model.set(this.field,this.parse(o))}catch(e){console.warn("Binding validation error:",e.message)}},e.addEventListener(t,this._eventHandler)}_getEventType(){const e=this.element;return"SELECT"===e.tagName||"checkbox"===e.type||"radio"===e.type?"change":"input"}destroy(){if(this._eventHandler){const e=this._getEventType();this.element.removeEventListener(e,this._eventHandler)}this.model._removeBinding(this.field,this)}}const D={_events:new Map,subscribe(e,t){return this._events.has(e)||this._events.set(e,new Set),this._events.get(e).add(t),()=>this.unsubscribe(e,t)},on(e,t){return this.subscribe(e,t)},unsubscribe(e,t){this._events.has(e)&&this._events.get(e).delete(t)},off(e,t){this.unsubscribe(e,t)},publish(e,t){if(this._events.has(e))for(const o of this._events.get(e))o(t)},emit(e,t){this.publish(e,t)},once(e,t){const o=s=>{this.unsubscribe(e,o),t(s)};return this.subscribe(e,o)},clear(e){e?this._events.delete(e):this._events.clear()},create:(e,t={},o={})=>new $(e,t,o),types:{string:e=>"string"==typeof e,number:e=>"number"==typeof e&&!Number.isNaN(e),boolean:e=>"boolean"==typeof e,array:e=>Array.isArray(e),object:e=>null!==e&&"object"==typeof e&&!Array.isArray(e),date:e=>e instanceof Date&&!isNaN(e.getTime()),any:()=>!0},bind(e,t,o,s={}){const n="string"==typeof o?document.querySelectorAll(o):[o],i=[];for(const o of n){const n=new T(e,t,o,s);e._addBinding(t,n),i.push(n)}return()=>{for(const e of i)e.destroy()}},_stores:new Map,store(e,t={}){if(!this._stores.has(e)){const o={state:{...t},listeners:new Set,getState(){return{...this.state}},setState(e){const t={...this.state};this.state={...this.state,...e};for(const e of this.listeners)e(this.state,t)},subscribe(e){return this.listeners.add(e),()=>this.listeners.delete(e)},reset(e){this.state=e?{...e}:{...t};for(const e of this.listeners)e(this.state,{})}};this._stores.set(e,o)}return this._stores.get(e)},getStore(e){return this._stores.get(e)},removeStore(e){this._stores.delete(e)}};class I{static defaults={layout:"stacked",columns:2,labelPosition:"top",showLabels:!0,showHelperText:!0,showHints:!0,validationMode:"blur",cssFramework:"domma",className:"domma-form",fieldClassName:"domma-form-field",labelClassName:"form-label",inputClassName:"form-input",errorClassName:"form-error",helperClassName:"form-helper-text",hintClassName:"form-hint",cardWrapper:!1};static inputTypes={string:"text",email:"email",password:"password",number:"number",integer:"number",float:"number",boolean:"checkbox",date:"date",datetime:"datetime-local",time:"time",url:"url",tel:"tel",color:"color",range:"range",file:"file",hidden:"hidden"};constructor(e,t={},o={}){this.schema=e,this.data={...t},this.options={...I.defaults,...o},this.model=null,this.errors={},this.touched=new Set,this.utils=window.Domma?.utils||s,this.models=window.Domma?.models||D,e&&"object"==typeof e&&(this.model=this.models.create(e,t,{persist:o.persist,autoSave:o.autoSave}))}render(){if(!this.schema)throw new Error("Schema is required to render form");return this._buildForm()}renderTo(e){const t="string"==typeof e?document.querySelector(e):e;if(!t)throw new Error(`Form container not found: ${e}`);return t.innerHTML=this.render(),this.formElement=t.querySelector("form"),this._bindEvents(t),t}_buildForm(){const{className:e,layout:t,columns:o,cardWrapper:s}=this.options;let n=e;if("grid"===t){n+=` grid ${3===o?"grid-cols-3":"grid-cols-2"} gap-4`}else"inline"===t&&(n+=" domma-form-inline");let i="";if(s&&(i+='<div class="card"><div class="card-body">'),i+=`<form class="${n}" novalidate>`,this.options.sections&&Array.isArray(this.options.sections))for(const e of this.options.sections)i+=this._buildSection(e);else for(const e in this.schema)i+=this._buildField(e,this.schema[e]);if(!1!==this.options.showSubmitButton){const e=this.options.submitText||"Submit",t=this.options.resetText,o=this.options.buttonAlignment||"right";i+=`<div class="form-group form-buttons mt-4 ${"left"===o?"text-left":"center"===o?"text-center":"text-right"}">`,t&&(i+=`<button type="button" class="btn btn-secondary mr-2" data-action="reset">${t}</button>`),i+=`<button type="submit" class="btn btn-primary">${e}</button>`,i+="</div>"}return i+="</form>",s&&(i+="</div></div>"),i}_buildSection(e){let t="";e.title&&(t+='<fieldset class="domma-form-section">',t+=`<legend class="domma-form-section-title">${e.title}</legend>`);t+=`<div class="${"grid"===e.layout?`grid grid-cols-${e.columns||2}`:"domma-form-section-content"}">`;for(const o of e.fields||[])this.schema[o]&&(t+=this._buildField(o,this.schema[o]));return t+="</div>",e.title&&(t+="</fieldset>"),t}_buildField(e,t){const{fieldClassName:o,showLabels:s,showHelperText:n,showHints:i,labelPosition:r}=this.options,a=t.formConfig||{},l=t.type||"string",h=t.label||this.utils.capitalize(e),c=this.data[e]||t.default||"",d=t.required||!1,u=a.disabled||t.readonly||!1,p=a.placeholder||"",m=a.hint||"",f=a.helperText||"",v=a.span||1;let k="";if("grid"===this.options.layout&&v>1){const e=this.options.columns||2;2===v?k=" col-span-2":3===v&&3===e?k=" col-span-3":v>=e&&(k=3===e?" col-span-3":" col-span-2")}let g=`<div class="${o}${k}" data-field="${e}">`;if(s&&h&&"hidden"!==l&&"boolean"!==l){g+=`<label for="field-${e}" class="${this.options.labelClassName}">${h}${d?' <span class="text-danger">*</span>':""}`,i&&m&&(g+=` <small class="${this.options.hintClassName}">${m}</small>`),g+="</label>"}return g+=this._buildInput(e,t,{type:l,value:c,required:d,disabled:u,placeholder:p}),n&&f&&(g+=`<small class="${this.options.helperClassName}">${f}</small>`),g+=`<div class="${this.options.errorClassName}" data-error-for="${e}" style="display: none;"></div>`,g+="</div>",g}_buildInput(e,t,o){const{type:s,value:n,required:i,disabled:r,placeholder:a}=o,l=t.formConfig||{},h={id:`field-${e}`,name:e,class:this.options.inputClassName,...i&&{required:!0},...r&&{disabled:!0},...a&&{placeholder:a},...void 0!==t.min&&{min:t.min},...void 0!==t.max&&{max:t.max},...t.pattern&&{pattern:t.pattern},...l.autocomplete&&{autocomplete:l.autocomplete}},c=Object.entries(h).map(([e,t])=>!0===t?e:`${e}="${t}"`).join(" ");switch(s){case"select":return this._buildSelect(e,t,h,n);case"multiselect":return h.multiple=!0,this._buildSelect(e,t,h,n);case"textarea":return`<textarea ${c} rows="${l.rows||3}">${this.utils.escapeHtml(n)}</textarea>`;case"radio":return this._buildRadioGroup(e,t,h,n);case"checkbox-group":return this._buildCheckboxGroup(e,t,h,n);case"boolean":const o=n?"checked":"",i=t.label||this.utils.capitalize(e),r=t.required?' <span class="text-danger">*</span>':"",a=l.hint?` <small class="form-text text-muted">${l.hint}</small>`:"";return`<div class="form-check">\n <input type="checkbox" class="form-check-input" ${c} ${o}>\n <label class="form-check-label" for="${h.id}">${i}${r}</label>\n ${a}\n </div>`;case"file":return`<input type="file" ${c} accept="${l.accept||""}" ${l.multiple?"multiple":""}>`;default:return`<input type="${I.inputTypes[s]||"text"}" ${c} value="${this.utils.escapeHtml(n)}">`}}_buildSelect(e,t,o,s){let n=`<select ${Object.entries(o).map(([e,t])=>!0===t?e:`${e}="${t}"`).join(" ")}>`;t.required||(n+='<option value="">-- Select --</option>');const i=t.options||[],r=Array.isArray(s)?s:[s];for(const e of i)if("string"==typeof e){n+=`<option value="${e}" ${r.includes(e)?"selected":""}>${this.utils.capitalize(e)}</option>`}else if("object"==typeof e){const t=r.includes(e.value)?"selected":"";n+=`<option value="${e.value}" ${t}>${e.label}</option>`}return n+="</select>",n}_buildRadioGroup(e,t,o,s){const n=t.options||[];let i='<div class="domma-radio-group">';for(const t of n){const n="string"==typeof t?t:t.value,r="string"==typeof t?this.utils.capitalize(t):t.label,a=`${o.id}-${n}`;i+=`\n <div class="domma-radio-option">\n <input type="radio" id="${a}" name="${e}" value="${n}" ${n===s?"checked":""} ${o.disabled?"disabled":""}>\n <label for="${a}">${r}</label>\n </div>\n `}return i+="</div>",i}_buildCheckboxGroup(e,t,o,s){const n=t.options||[],i=Array.isArray(s)?s:[];let r='<div class="domma-checkbox-group">';for(const t of n){const s="string"==typeof t?t:t.value,n="string"==typeof t?this.utils.capitalize(t):t.label,a=`${o.id}-${s}`;r+=`\n <div class="domma-checkbox-option">\n <input type="checkbox" id="${a}" name="${e}[]" value="${s}" ${i.includes(s)?"checked":""} ${o.disabled?"disabled":""}>\n <label for="${a}">${n}</label>\n </div>\n `}return r+="</div>",r}_bindEvents(e){e.addEventListener("submit",e=>{e.preventDefault(),this.handleSubmit()}),e.addEventListener("blur",e=>{e.target.matches("input, select, textarea")&&(this.validateField(e.target.name),this.touched.add(e.target.name))},!0),e.addEventListener("change",e=>{if(e.target.matches("input, select, textarea")&&this.model){const t=this._getFieldValue(e.target);try{this.model.set(e.target.name,t)}catch(t){this.setFieldError(e.target.name,t.message)}}}),e.addEventListener("click",e=>{e.target.matches('[data-action="reset"]')&&(e.preventDefault(),this.reset())})}getData(){return this.model?this.model.get():this.data}setData(e){this.data={...this.data,...e},this.model&&this.model.set(e)}validate(){this.errors={};let e=!0;for(const t in this.schema){this.validateField(t)||(e=!1)}return e}validateField(e){const t=this.schema[e];if(!t)return!0;const o=this._getFieldValueByName(e);try{const s=this._validateFieldValue(e,o,t);if(!s.valid)return this.setFieldError(e,s.error),!1;if(this.model&&this.model._validateField){const t=this.model._validateField(e,o);if(!t.valid)return this.setFieldError(e,t.error),!1}return this.clearFieldError(e),!0}catch(t){return this.setFieldError(e,t.message),!1}}setFieldError(e,t){this.errors[e]=t;const o=document.querySelector(`[data-error-for="${e}"]`);o&&(o.textContent=t,o.style.display="block",o.parentElement.classList.add("has-error"))}clearFieldError(e){delete this.errors[e];const t=document.querySelector(`[data-error-for="${e}"]`);t&&(t.textContent="",t.style.display="none",t.parentElement.classList.remove("has-error"))}handleSubmit(){const e=this.validate(),t=this.getData();return e&&this.options.onSubmit?this.options.onSubmit(t,this):!e&&this.options.onValidationError&&this.options.onValidationError(this.errors,this),{isValid:e,data:t,errors:this.errors}}_getFieldValue(e){const{type:t,name:o}=e;if("checkbox"===t){if(o.endsWith("[]")){const e=document.querySelectorAll(`input[name="${o}"]:checked`);return Array.from(e).map(e=>e.value)}return e.checked}if("radio"===t){const e=document.querySelector(`input[name="${o}"]:checked`);return e?e.value:null}return"number"===t||"range"===t?""===e.value?null:Number(e.value):e.value}_getFieldValueByName(e){if(this.formElement){const t=this.formElement.querySelector(`[name="${e}"]`);if(t)return this._getFieldValue(t)}return this.model?this.model.get(e):this.data[e]}_validateFieldValue(e,t,o){if(o.required&&(null==t||""===t))return{valid:!1,error:`${o.label||e} is required`};if(null==t||""===t)return{valid:!0};if("email"===o.type&&t){if(!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t))return{valid:!1,error:"Please enter a valid email address"}}if("number"===o.type&&null!==t){const e=Number(t);if(isNaN(e))return{valid:!1,error:"Please enter a valid number"};if(void 0!==o.min&&e<o.min)return{valid:!1,error:`Value must be at least ${o.min}`};if(void 0!==o.max&&e>o.max)return{valid:!1,error:`Value must be no more than ${o.max}`}}if("string"==typeof t){if(o.minLength&&t.length<o.minLength)return{valid:!1,error:`Must be at least ${o.minLength} characters`};if(o.maxLength&&t.length>o.maxLength)return{valid:!1,error:`Must be no more than ${o.maxLength} characters`}}if(o.pattern&&"string"==typeof t&&!o.pattern.test(t))return{valid:!1,error:o.formConfig?.hint||"Invalid format"};if(o.validate&&"function"==typeof o.validate)try{const e=this.formElement?function(e){const t=new FormData(e),o={};for(const[e,s]of t.entries())o[e]?Array.isArray(o[e])?o[e].push(s):o[e]=[o[e],s]:o[e]=s;return e.querySelectorAll("input").forEach(e=>{"checkbox"!==e.type||e.checked?"checkbox"===e.type&&e.checked&&(o[e.name]="on"===e.value||e.value):o.hasOwnProperty(e.name)||(o[e.name]=!1)}),o}(this.formElement):this.data,s=o.validate(t,e);if(!0!==s)return{valid:!1,error:s||"Validation failed"}}catch(e){return{valid:!1,error:e.message||"Validation error"}}return{valid:!0}}}const V={create:(e,t={},o={})=>new I(e,t,o),render:(e,t,o={},s={})=>new I(t,o,s).renderTo(e),wizard(e,t={}){if(!t.schema)throw new Error("Wizard options must include a schema with steps array");const{schema:{steps:o=[]},data:s={},...n}=t,i=`wizard-${Date.now()}`;let r=0,a={...s},l=null;const h="string"==typeof e?document.querySelector(e):e;if(!h)throw new Error(`Wizard target element not found: ${e}`);if(!Array.isArray(o)||0===o.length)throw new Error("Wizard schema must contain a non-empty steps array");function c(e){const t={};return e.querySelectorAll("input, select, textarea").forEach(e=>{const{name:o,type:s,value:n,checked:i}=e;if(o)if("checkbox"===s)if(o.endsWith("[]")){const e=o.slice(0,-2);t[e]||(t[e]=[]),i&&t[e].push(n)}else t[o]=i;else"radio"===s?i&&(t[o]=n):"number"===s||"range"===s?t[o]=""===n?null:Number(n):"SELECT"===e.tagName&&e.hasAttribute("multiple")?t[o]=Array.from(e.selectedOptions).map(e=>e.value).filter(e=>e):t[o]=n}),t}function d(){if(h.innerHTML=function(e){const t=o[e],s=new I(t.fields,a,{...n,layout:t.layout||n.layout||"stacked",showSubmitButton:!1}),r=0===e,l=e===o.length-1;return`\n <div id="${i}" class="wizard">\n <div class="wizard-step active card" data-step="${e}">\n <div class="card-header wizard-header">\n <div class="wizard-progress mb-3">\n <div class="wizard-progress-bar" style="width: ${(e+1)/o.length*100}%"></div>\n </div>\n <div class="wizard-step-info">\n <h5 class="wizard-step-title card-title mb-2">${t.title}</h5>\n ${t.description?`<p class="wizard-step-description card-subtitle text-muted mb-2">${t.description}</p>`:""}\n <small class="text-muted">Step ${e+1} of ${o.length}</small>\n </div>\n </div>\n <div class="card-body wizard-content">\n ${s.render()}\n </div>\n <div class="card-footer wizard-nav d-flex justify-content-between">\n <button type="button" class="btn btn-secondary wizard-prev" ${r?'style="visibility: hidden;"':""}>\n ${n.prevText||"Previous"}\n </button>\n <button type="button" class="btn btn-primary wizard-${l?"submit":"next"}">\n ${l?n.finishText||"Finish":n.nextText||"Next"}\n </button>\n </div>\n </div>\n </div>\n `}(r),l=h.querySelector(`#${i}`),!l)return;const e=l.querySelector("form");if(e){new I(o[r].fields,a,{...n,showSubmitButton:!1})._bindEvents(e)}const t=l.querySelector(".wizard-prev"),s=l.querySelector(".wizard-next"),u=l.querySelector(".wizard-submit");t&&t.addEventListener("click",e=>{e.preventDefault(),r>0&&(n.onStepChange&&n.onStepChange(r-1,a),r--,d())}),s&&s.addEventListener("click",t=>{t.preventDefault();const s=c(e);Object.assign(a,s);const i=new I(o[r].fields,a,{...n,showSubmitButton:!1});i.formElement=e,i.setData(a);const l=i.validate();n.onValidation&&n.onValidation(l,i.errors||[],r),l&&r<o.length-1&&(n.onStepChange&&n.onStepChange(r+1,a),r++,d())}),u&&u.addEventListener("click",async t=>{t.preventDefault();const s=c(e);Object.assign(a,s);const i=new I(o[r].fields,a,{...n,showSubmitButton:!1});i.formElement=e,i.setData(a);const l=i.validate();if(n.onValidation&&n.onValidation(l,i.errors||[],r),l&&n.onSubmit)try{await n.onSubmit(a,i)}catch(e){n.onError&&n.onError(e,a,i)}})}return o.forEach((e,t)=>{if(e.title||(e.title=`Step ${t+1}`),!e.fields)throw new Error(`Step ${t} is missing fields array`)}),d(),{nextStep:()=>{r<o.length-1&&(n.onStepChange&&n.onStepChange(r+1,a),r++,d())},prevStep:()=>{r>0&&(n.onStepChange&&n.onStepChange(r-1,a),r--,d())},goToStep:e=>{e>=0&&e<o.length&&(n.onStepChange&&n.onStepChange(e,a),r=e,d())},getCurrentStep:()=>r,getStepData:()=>({...a}),setStepData:e=>{Object.assign(a,e),d()},validate:()=>{const e=l?.querySelector("form");if(e){const t=new I(o[r].fields,a,{...n,showSubmitButton:!1});return t.formElement=e,t.setData(a),t.validate()}return!0},getElement:()=>l}},modal(e,t={},o={}){const s=`form-${Date.now()}`;let n=null;const i=new I(e,t,{...o,showSubmitButton:!1,onSubmit:async(e,t)=>{if(o.onSave)try{await o.onSave(e,t),!1!==o.closeOnSave&&n&&n.close()}catch(s){o.onError&&o.onError(s,e,t)}}}),r=`\n <div class="modal" id="modal-${s}" style="display: none;">\n <div class="modal-header">\n <h3 class="modal-title">${o.title||"Form"}</h3>\n <button type="button" class="modal-close" data-action="close">×</button>\n </div>\n <div class="modal-body">\n ${i.render()}\n </div>\n <div class="modal-footer">\n <button type="button" class="btn btn-secondary" data-action="close">Cancel</button>\n <button type="button" class="btn btn-primary" data-action="save">${o.saveText||"Save"}</button>\n </div>\n </div>\n `,a=document.createElement("div");a.className="modal-backdrop",a.style.display="none";const l=document.createElement("div");l.innerHTML=r;const h=l.firstElementChild;return document.body.appendChild(a),document.body.appendChild(h),n={open(){a.style.display="block",h.style.display="block",setTimeout(()=>{a.classList.add("active"),h.classList.add("active")},10);const e=h.querySelector("form");e&&i._bindEvents(e),h.querySelectorAll('[data-action="close"]').forEach(e=>{e.addEventListener("click",()=>this.close())}),h.querySelector('[data-action="save"]').addEventListener("click",()=>{const e=h.querySelector("form");if(e){const t=new Event("submit",{cancelable:!0});e.dispatchEvent(t)}}),a.addEventListener("click",e=>{e.target===a&&this.close()})},close(){a.classList.remove("active"),h.classList.remove("active"),setTimeout(()=>{a.style.display="none",h.style.display="none",document.body.removeChild(a),document.body.removeChild(h)},300)},isOpen:()=>"none"!==h.style.display},n},crud(e){if(!e.schema)throw new Error("CRUD config must include a schema");if(!e.endpoint)throw new Error("CRUD config must include an API endpoint");const{schema:t,endpoint:o,tableSelector:n,title:i="Manage Items",primaryKey:r="id",displayField:a="name",headers:l={},onError:h=e=>console.error("CRUD Error:",e),onSuccess:c=e=>console.log("CRUD Success:",e)}=e;let d=null,u=[];return{async init(){await this.loadData(),this.createTable(),this.bindEvents()},async loadData(){try{window.Domma?.auth?.getApiUrl?.();const e=window.Domma?.auth?.token,t=e?{Authorization:`Bearer ${e}`}:{},s=await window.Domma.http.get(o,{headers:{...l,...t}});if(!s.success)throw new Error(s.message||"Failed to load data");u=s.data||[]}catch(e){throw h(e),e}},createTable(){if(!n)return;const e=Object.entries(t).map(([e,t])=>({key:e,title:t.label||(window.Domma?.utils||s).capitalize(e),sortable:!0,render:t.tableRender}));e.push({key:"actions",title:"Actions",sortable:!1,render:(e,t)=>{const o=window.Domma.icons.html("edit",{size:16,class:"inline-icon",colour:"#a5d8ff",attrs:{style:"margin-right: 4px;"}}),s=window.Domma.icons.html("trash",{size:16,class:"inline-icon",colour:"#ffacac",attrs:{style:"margin-right: 4px;"}});return`\n <div class="btn-group btn-group-sm">\n <button class="btn btn-primary crud-edit-btn" data-id="${t[r]}">\n ${o}\n Edit\n </button>\n <button class="btn btn-danger crud-delete-btn" data-id="${t[r]}">\n ${s}\n Delete\n </button>\n </div>\n `}}),d=window.Domma.tables.create(n,{data:u,columns:e,pagination:!0,pageSize:25,striped:!0,selectable:!0,selectionMode:"multiple",exportPanel:!0,exportOptions:["text","csv","excel","json"],columnToggle:!0,regexSearch:!0,persistSettings:!0,storageKey:`domma-crud-${i.toLowerCase().replace(/\s+/g,"-")}`}),this.initializeTableIcons()},initializeTableIcons(){setTimeout(()=>{document.querySelectorAll("[data-icon]").forEach(e=>{const t=e.getAttribute("data-icon");if(window.Domma&&window.Domma.icons&&window.Domma.icons.render){const o=window.Domma.icons.render(t,{size:16,class:"inline-icon"});o&&(e.innerHTML="",e.appendChild(o))}})},100)},bindEvents(){const e=document.querySelector(".crud-add-btn");e&&e.addEventListener("click",()=>this.create()),document.addEventListener("click",e=>{if(e.target.matches(".crud-edit-btn")){const t=e.target.getAttribute("data-id");this.edit(t)}}),document.addEventListener("click",e=>{if(e.target.matches(".crud-delete-btn")){const t=e.target.getAttribute("data-id");this.delete(t)}});const t=document.querySelector(".crud-refresh-btn");t&&t.addEventListener("click",()=>this.refresh())},async create(){V.modal(t,{},{title:`Create New ${i.slice(7)}`,size:"xl",saveText:"Create",showSubmitButton:!1,onSave:async e=>{try{window.Domma?.auth?.getApiUrl?.();const t=window.Domma?.auth?.token,s=t?{Authorization:`Bearer ${t}`}:{},n=await window.Domma.http.post(o,e,{headers:{...l,...s}});if(!n.success)throw new Error(n.message||"Failed to create item");c("Item created successfully"),await this.refresh()}catch(e){throw h(e),e}}}).open()},async edit(e){const s=u.find(t=>t[r]==e);if(!s)return void h(new Error("Item not found"));V.modal(t,s,{title:`Edit ${s[a]||"Item"}`,size:"xl",saveText:"Update",showSubmitButton:!1,onSave:async t=>{try{window.Domma?.auth?.getApiUrl?.();const s=window.Domma?.auth?.token,n=s?{Authorization:`Bearer ${s}`}:{},i=await window.Domma.http.put(`${o}/${e}`,t,{headers:{...l,...n}});if(!i.success)throw new Error(i.message||"Failed to update item");c("Item updated successfully"),await this.refresh()}catch(e){throw h(e),e}}}).open()},async delete(e){const t=u.find(t=>t[r]==e);if(!t)return void h(new Error("Item not found"));if(await window.Domma.elements.confirm(`Are you sure you want to delete "${t[a]||"this item"}"?\n\nThis action cannot be undone.`,{title:"Confirm Delete",confirmText:"Delete",cancelText:"Cancel",type:"warning"}))try{window.Domma?.auth?.getApiUrl?.();const t=window.Domma?.auth?.token,s=t?{Authorization:`Bearer ${t}`}:{},n=await window.Domma.http.delete(`${o}/${e}`,{headers:{...l,...s}});if(!n.success)throw new Error(n.message||"Failed to delete item");c("Item deleted successfully"),await this.refresh()}catch(e){h(e)}},async refresh(){try{await this.loadData(),d&&(d.setData(u),this.initializeTableIcons())}catch(e){}},getData:()=>[...u],getTable:()=>d,addItem:e=>{u.push(e),d&&d.setData(u)},updateItem:(e,t)=>{const o=u.findIndex(t=>t[r]==e);-1!==o&&(u[o]={...u[o],...t},d&&d.setData(u))},removeItem:e=>{const t=u.findIndex(t=>t[r]==e);-1!==t&&(u.splice(t,1),d&&d.setData(u))}}}},O={_configs:new Map,_components:new Map,_eventHandlers:new Map,process(e){e&&"object"==typeof e&&Object.keys(e).forEach(o=>{const n=e[o];this._configs.set(o,s.cloneDeep(n));const i=t(o);if(n.component){const e=this.initComponent(o,n.component,n.options||{});e&&this._components.set(o,e)}n.initial&&this.applyProperties(i,n.initial),n.events&&this.bindEvents(o,n.events,!0)})},update(e,o){const n=this._configs.get(e);if(!n)return this.process({[e]:o}),this._configs.get(e);const i=s.merge({},n,o);this._configs.set(e,i);const r=t(e);if(o.options&&this._components.has(e)){const t=this._components.get(e);t&&"function"==typeof t.setOptions&&t.setOptions(o.options)}return o.initial&&this.applyProperties(r,o.initial),o.events&&this.updateEvents(e,o.events),i},config(e){if(!e){const e={};return this._configs.forEach((t,o)=>{e[o]=t}),e}return this._configs.get(e)||null},reset(e){if(!e){return void Array.from(this._configs.keys()).forEach(e=>this.reset(e))}const t=this._components.get(e);t&&"function"==typeof t.destroy&&t.destroy(),this._components.delete(e),this.unbindEvents(e),this._configs.delete(e)},initComponent(e,t,o){const s={card:W.card,modal:W.modal,tabs:W.tabs,accordion:W.accordion,tooltip:W.tooltip,carousel:W.carousel,dropdown:W.dropdown,badge:W.badge,cookieConsent:W.cookieConsent,backToTop:W.backToTop,buttonGroup:W.buttonGroup,loader:W.loader,breadcrumbs:W.breadcrumbs,navbar:W.navbar,sidebar:W.sidebar,footer:W.footer,notification:W.notification,timer:W.timer,alarm:W.alarm,autocomplete:W.autocomplete,pillbox:W.pillbox,form:V.create}[t];if(s){if("form"===t){if(!o.schema)return console.error("Forms component requires a schema option"),null;const t=s(o.schema,o.data||{},o);return t.renderTo(e),t}return s.call(W,e,o)}console.warn(`Unknown component type: ${t}`)},applyProperties(e,t){Object.keys(t).forEach(o=>{"css"===o?e.css(t[o]):"text"===o?e.text(t[o]):"html"===o?e.html(t[o]):"addClass"===o?e.addClass(t[o]):"removeClass"===o?e.removeClass(t[o]):"toggleClass"===o?e.toggleClass(t[o]):"attr"===o&&Object.keys(t[o]).forEach(s=>{e.attr(s,t[o][s])})})},bindEvents(e,o,s=!1){const n=t(e);s&&!this._eventHandlers.has(e)&&this._eventHandlers.set(e,new Map),Object.keys(o).forEach(t=>{const i=o[t],r=e=>this.executeActions(e,i);n.on(t,r),s&&this._eventHandlers.get(e).set(t,r)})},unbindEvents(e){const o=this._eventHandlers.get(e);if(!o)return;const s=t(e);o.forEach((e,t)=>{s.off(t,e)}),this._eventHandlers.delete(e)},updateEvents(e,o){const s=this._eventHandlers.get(e),n=t(e);s&&Object.keys(o).forEach(e=>{s.has(e)&&(n.off(e,s.get(e)),s.delete(e))}),this.bindEvents(e,o,!0)},executeActions(e,o){if("function"==typeof o)return void o.call(e.target,e,t(e.target));const s=Array.isArray(o)?o:[o],n=t(e.target);s.forEach(o=>{if("function"==typeof o)return void o.call(e.target,e,n);const s=o.target?t(o.target):n;o.css&&s.css(o.css),o.text&&s.text(o.text),o.html&&s.html(o.html),o.addClass&&s.addClass(o.addClass),o.removeClass&&s.removeClass(o.removeClass),o.toggleClass&&s.toggleClass(o.toggleClass),o.log&&console.log(o.log)})}},N=1e3,P=6e4,q=36e5,F=864e5,R=6048e5,K=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],U=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],Y=["January","February","March","April","May","June","July","August","September","October","November","December"],J=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];class Q{constructor(e){e instanceof Q?this._date=new Date(e._date):e instanceof Date?this._date=new Date(e):this._date="string"==typeof e||"number"==typeof e?new Date(e):null==e?new Date:new Date(e)}add(e,t){const o=this._normalizeUnit(t),s=this._date;return"years"===o?s.setFullYear(s.getFullYear()+e):"months"===o?s.setMonth(s.getMonth()+e):"weeks"===o?s.setDate(s.getDate()+7*e):"days"===o?s.setDate(s.getDate()+e):"hours"===o?s.setHours(s.getHours()+e):"minutes"===o?s.setMinutes(s.getMinutes()+e):"seconds"===o?s.setSeconds(s.getSeconds()+e):"milliseconds"===o&&s.setMilliseconds(s.getMilliseconds()+e),this}subtract(e,t){return this.add(-e,t)}startOf(e){const t=this._normalizeUnit(e),o=this._date;return"years"===t||"year"===t?(o.setMonth(0,1),o.setHours(0,0,0,0)):"months"===t||"month"===t?(o.setDate(1),o.setHours(0,0,0,0)):"weeks"===t||"week"===t?(o.setDate(o.getDate()-o.getDay()),o.setHours(0,0,0,0)):"days"===t||"day"===t?o.setHours(0,0,0,0):"hours"===t||"hour"===t?o.setMinutes(0,0,0):"minutes"===t||"minute"===t?o.setSeconds(0,0):"seconds"!==t&&"second"!==t||o.setMilliseconds(0),this}endOf(e){const t=this._normalizeUnit(e),o=this._date;return"years"===t||"year"===t?(o.setMonth(11,31),o.setHours(23,59,59,999)):"months"===t||"month"===t?(o.setMonth(o.getMonth()+1,0),o.setHours(23,59,59,999)):"weeks"===t||"week"===t?(o.setDate(o.getDate()+(6-o.getDay())),o.setHours(23,59,59,999)):"days"===t||"day"===t?o.setHours(23,59,59,999):"hours"===t||"hour"===t?o.setMinutes(59,59,999):"minutes"===t||"minute"===t?o.setSeconds(59,999):"seconds"!==t&&"second"!==t||o.setMilliseconds(999),this}set(e,t){const o=this._normalizeUnit(e),s=this._date;return"years"===o||"year"===o?s.setFullYear(t):"months"===o||"month"===o?s.setMonth(t):"days"===o||"day"===o||"date"===o?s.setDate(t):"hours"===o||"hour"===o?s.setHours(t):"minutes"===o||"minute"===o?s.setMinutes(t):"seconds"===o||"second"===o?s.setSeconds(t):"milliseconds"!==o&&"millisecond"!==o||s.setMilliseconds(t),this}get(e){if(!e)return this._date;const t=this._normalizeUnit(e),o=this._date;return"years"===t||"year"===t?o.getFullYear():"months"===t||"month"===t?o.getMonth():"days"===t||"day"===t?o.getDay():"date"===t?o.getDate():"hours"===t||"hour"===t?o.getHours():"minutes"===t||"minute"===t?o.getMinutes():"seconds"===t||"second"===t?o.getSeconds():"milliseconds"===t||"millisecond"===t?o.getMilliseconds():this._date}year(){return this._date.getFullYear()}month(){return this._date.getMonth()}date(){return this._date.getDate()}day(){return this._date.getDay()}hour(){return this._date.getHours()}minute(){return this._date.getMinutes()}second(){return this._date.getSeconds()}millisecond(){return this._date.getMilliseconds()}dayOfYear(){const e=new Date(this._date.getFullYear(),0,0),t=this._date-e;return Math.floor(t/864e5)}week(){const e=new Date(this._date.getFullYear(),0,1),t=this._date-e;return Math.ceil(t/6048e5+e.getDay()/7)}quarter(){return Math.floor(this._date.getMonth()/3)+1}unix(){return Math.floor(this._date.getTime()/1e3)}valueOf(){return this._date.getTime()}format(e="YYYY-MM-DD HH:mm:ss"){const t=this._date,o=t.getFullYear(),s=t.getMonth(),n=t.getDate(),i=t.getDay(),r=t.getHours(),a=t.getMinutes(),l=t.getSeconds(),h=t.getMilliseconds(),c=r%12||12,d=(e,t=2)=>String(e).padStart(t,"0"),u={YYYY:o,YY:String(o).slice(-2),MMMM:Y[s],MMM:J[s],MM:d(s+1),M:s+1,dddd:K[i],ddd:U[i],DD:d(n),D:n,HH:d(r),H:r,hh:d(c),h:c,mm:d(a),m:a,ss:d(l),s:l,SSS:d(h,3),A:r<12?"AM":"PM",a:r<12?"am":"pm"},p=Object.keys(u).sort((e,t)=>t.length-e.length),m=new RegExp(p.join("|"),"g");return e.replace(m,e=>u[e])}toISOString(){return this._date.toISOString()}toDate(){return new Date(this._date)}toString(){return this._date.toString()}fromNow(e){const t=e?new Q(e)._date:new Date,o=this._date.getTime()-t.getTime(),s=Math.abs(o),n=o<0;let i,r;return s<P?"just now":(s<q?(i=Math.floor(s/P),r=1===i?"minute":"minutes"):s<F?(i=Math.floor(s/q),r=1===i?"hour":"hours"):s<R?(i=Math.floor(s/F),r=1===i?"day":"days"):s<30*F?(i=Math.floor(s/R),r=1===i?"week":"weeks"):s<365*F?(i=Math.floor(s/(30*F)),r=1===i?"month":"months"):(i=Math.floor(s/(365*F)),r=1===i?"year":"years"),n?`${i} ${r} ago`:`in ${i} ${r}`)}to(e){const t=new Q(e)._date.getTime()-this._date.getTime(),o=Math.abs(t),s=t>0;let n,i;return o<P?"just now":(o<q?(n=Math.floor(o/P),i=1===n?"minute":"minutes"):o<F?(n=Math.floor(o/q),i=1===n?"hour":"hours"):o<R?(n=Math.floor(o/F),i=1===n?"day":"days"):o<30*F?(n=Math.floor(o/R),i=1===n?"week":"weeks"):o<365*F?(n=Math.floor(o/(30*F)),i=1===n?"month":"months"):(n=Math.floor(o/(365*F)),i=1===n?"year":"years"),s?`in ${n} ${i}`:`${n} ${i} ago`)}isBefore(e,t){const o=new Q(e);return t?this.clone().endOf(t).valueOf()<o.clone().startOf(t).valueOf():this._date.getTime()<o._date.getTime()}isAfter(e,t){const o=new Q(e);return t?this.clone().startOf(t).valueOf()>o.clone().endOf(t).valueOf():this._date.getTime()>o._date.getTime()}isSame(e,t){const o=new Q(e);if(!t)return this._date.getTime()===o._date.getTime();const s=this.clone().startOf(t).valueOf(),n=this.clone().endOf(t).valueOf(),i=o.valueOf();return i>=s&&i<=n}isBetween(e,t,o,s="()"){const n=new Q(e),i=new Q(t);let r,a,l;o?(r=n.clone().startOf(o).valueOf(),a=i.clone().endOf(o).valueOf(),l=this.clone().startOf(o).valueOf()):(r=n.valueOf(),a=i.valueOf(),l=this.valueOf());const h="["===s[0],c="]"===s[1];return(h?l>=r:l>r)&&(c?l<=a:l<a)}diff(e,t="milliseconds",o=!1){const s=new Q(e),n=this._date.getTime()-s._date.getTime(),i=this._normalizeUnit(t);let r;return r="milliseconds"===i?n:"seconds"===i?n/N:"minutes"===i?n/P:"hours"===i?n/q:"days"===i?n/F:"weeks"===i?n/R:"months"===i?this._monthDiff(s):"years"===i?this._monthDiff(s)/12:n,o?r:Math.floor(r)}_monthDiff(e){const t=this._date,o=e._date;return 12*(t.getFullYear()-o.getFullYear())+(t.getMonth()-o.getMonth())}isValid(){return!isNaN(this._date.getTime())}isLeapYear(){const e=this._date.getFullYear();return e%4==0&&e%100!=0||e%400==0}daysInMonth(){return new Date(this._date.getFullYear(),this._date.getMonth()+1,0).getDate()}clone(){return new Q(this._date)}_normalizeUnit(e){if(!e)return e;const t=String(e).toLowerCase().trim();return"year"===t?"years":"month"===t?"months":"week"===t?"weeks":"day"===t?"days":"hour"===t?"hours":"minute"===t?"minutes":"second"===t?"seconds":"millisecond"===t?"milliseconds":t}}const Z=function(e){return new Q(e)};Object.assign(Z,{now:()=>Date.now(),parse(e,t){if(!t)return new Q(e);const o={YYYY:{regex:"(\\d{4})",setter:"year"},YY:{regex:"(\\d{2})",setter:"year",transform:e=>2e3+parseInt(e)},MM:{regex:"(\\d{2})",setter:"month",transform:e=>parseInt(e)-1},M:{regex:"(\\d{1,2})",setter:"month",transform:e=>parseInt(e)-1},DD:{regex:"(\\d{2})",setter:"date"},D:{regex:"(\\d{1,2})",setter:"date"},HH:{regex:"(\\d{2})",setter:"hour"},H:{regex:"(\\d{1,2})",setter:"hour"},mm:{regex:"(\\d{2})",setter:"minute"},m:{regex:"(\\d{1,2})",setter:"minute"},ss:{regex:"(\\d{2})",setter:"second"},s:{regex:"(\\d{1,2})",setter:"second"}};let s=t;const n=[],i=Object.keys(o).sort((e,t)=>t.length-e.length);for(const e of i)if(t.includes(e)){-1!==s.indexOf(e)&&(s=s.replace(e,o[e].regex),n.push({token:e,...o[e]}))}s=s.replace(/[-\/\\^$*+?.()|[\]{}]/g,e=>"("===e||")"===e?e:"\\"+e);try{const t=new RegExp("^"+s+"$"),o=e.match(t);if(!o)return new Q(NaN);const i=new Q;i.set("hour",0).set("minute",0).set("second",0).set("millisecond",0);for(let e=0;e<n.length;e++){let t=parseInt(o[e+1]);n[e].transform&&(t=n[e].transform(o[e+1])),i.set(n[e].setter,t)}return i}catch(e){return new Q(NaN)}},isValid:e=>new Q(e).isValid(),min(...e){const t=e.flat().map(e=>new Q(e));let o=t[0];for(let e=1;e<t.length;e++)t[e].valueOf()<o.valueOf()&&(o=t[e]);return o},max(...e){const t=e.flat().map(e=>new Q(e));let o=t[0];for(let e=1;e<t.length;e++)t[e].valueOf()>o.valueOf()&&(o=t[e]);return o},tokens:{YYYY:"Full year (2025)",YY:"Short year (25)",MM:"Month 01-12",M:"Month 1-12",DD:"Day 01-31",D:"Day 1-31",HH:"Hour 00-23",H:"Hour 0-23",hh:"Hour 01-12",h:"Hour 1-12",mm:"Minute 00-59",m:"Minute 0-59",ss:"Second 00-59",s:"Second 0-59",SSS:"Milliseconds",A:"AM/PM",a:"am/pm",ddd:"Day name short (Mon)",dddd:"Day name full (Monday)",MMM:"Month name short (Jan)",MMMM:"Month name full (January)"}});const G={"arrow-up":{viewBox:"0 0 24 24",path:"M12 19V5M5 12l7-7 7 7",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"arrow-down":{viewBox:"0 0 24 24",path:"M12 5v14M19 12l-7 7-7-7",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"arrow-left":{viewBox:"0 0 24 24",path:"M19 12H5M12 19l-7-7 7-7",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"arrow-right":{viewBox:"0 0 24 24",path:"M5 12h14M12 5l7 7-7 7",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"arrow-up-left":{viewBox:"0 0 24 24",path:"M17 17L7 7M7 17V7h10",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"arrow-up-right":{viewBox:"0 0 24 24",path:"M7 17L17 7M7 7h10v10",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"arrow-down-left":{viewBox:"0 0 24 24",path:"M17 7L7 17M17 17H7V7",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"arrow-down-right":{viewBox:"0 0 24 24",path:"M7 7l10 10M17 7v10H7",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},menu:{viewBox:"0 0 24 24",paths:["M3 6h18","M3 12h18","M3 18h18"],stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round"},"menu-alt":{viewBox:"0 0 24 24",paths:["M3 6h18","M3 12h12","M3 18h18"],stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round"},"dots-horizontal":{viewBox:"0 0 24 24",paths:["M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0","M19 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0","M5 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"],fill:"currentColor"},"dots-vertical":{viewBox:"0 0 24 24",paths:["M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0","M12 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0","M12 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"],fill:"currentColor"},grid:{viewBox:"0 0 24 24",path:"M3 3h7v7H3zM14 3h7v7h-7zM14 14h7v7h-7zM3 14h7v7H3z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},list:{viewBox:"0 0 24 24",paths:["M8 6h13","M8 12h13","M8 18h13","M3 6h.01","M3 12h.01","M3 18h.01"],stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},columns:{viewBox:"0 0 24 24",path:"M12 3v18M3 3h18v18H3V3z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},layout:{viewBox:"0 0 24 24",path:"M4 3h16a1 1 0 011 1v16a1 1 0 01-1 1H4a1 1 0 01-1-1V4a1 1 0 011-1zM9 21V9m12-6H3",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},close:{viewBox:"0 0 24 24",path:"M18 6L6 18M6 6l12 12",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},plus:{viewBox:"0 0 24 24",path:"M12 5v14M5 12h14",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},minus:{viewBox:"0 0 24 24",path:"M5 12h14",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},search:{viewBox:"0 0 24 24",path:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},refresh:{viewBox:"0 0 24 24",path:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},edit:{viewBox:"0 0 24 24",path:"M11 4H4a2 2 0 00-2 2v14a2 2 0 002 2h14a2 2 0 002-2v-7M18.5 2.5a2.121 2.121 0 013 3L12 15l-4 1 1-4 9.5-9.5z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},trash:{viewBox:"0 0 24 24",path:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},filter:{viewBox:"0 0 24 24",path:"M3 4a1 1 0 011-1h16a1 1 0 011 1v2.586a1 1 0 01-.293.707l-6.414 6.414a1 1 0 00-.293.707V17l-4 4v-6.586a1 1 0 00-.293-.707L3.293 7.293A1 1 0 013 6.586V4z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},sort:{viewBox:"0 0 24 24",paths:["M3 6h7","M3 12h5","M3 18h3","M16 6l4 4-4 4","M20 10H10"],stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},home:{viewBox:"0 0 24 24",path:"M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},user:{viewBox:"0 0 24 24",path:"M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},users:{viewBox:"0 0 24 24",path:"M17 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2M9 11a4 4 0 100-8 4 4 0 000 8zM23 21v-2a4 4 0 00-3-3.87M16 3.13a4 4 0 010 7.75",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},settings:{viewBox:"0 0 24 24",path:"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065zM15 12a3 3 0 11-6 0 3 3 0 016 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},cog:{viewBox:"0 0 24 24",path:"M12 6V4m0 2a2 2 0 100 4m0-4a2 2 0 110 4m-6 8a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4m6 6v10m6-2a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},tool:{viewBox:"0 0 24 24",path:"M14.7 6.3a1 1 0 000 1.4l1.6 1.6a1 1 0 001.4 0l3.77-3.77a6 6 0 01-7.94 7.94l-6.91 6.91a2.12 2.12 0 01-3-3l6.91-6.91a6 6 0 017.94-7.94l-3.76 3.76z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},eye:{viewBox:"0 0 24 24",path:"M15 12a3 3 0 11-6 0 3 3 0 016 0z M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"eye-off":{viewBox:"0 0 24 24",path:"M13.875 18.825A10.05 10.05 0 0112 19c-4.478 0-8.268-2.943-9.543-7a9.97 9.97 0 011.563-3.029m5.858.908a3 3 0 114.243 4.243M9.878 9.878l4.242 4.242M9.88 9.88l-3.29-3.29m7.532 7.532l3.29 3.29M3 3l3.59 3.59m0 0A9.953 9.953 0 0112 5c4.478 0 8.268 2.943 9.543 7a10.025 10.025 0 01-4.132 5.411m0 0L21 21",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},lock:{viewBox:"0 0 24 24",path:"M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},unlock:{viewBox:"0 0 24 24",path:"M8 11V7a4 4 0 118 0m-4 8v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},clock:{viewBox:"0 0 24 24",path:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},calendar:{viewBox:"0 0 24 24",path:"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},star:{viewBox:"0 0 24 24",path:"M11.049 2.927c.3-.921 1.603-.921 1.902 0l1.519 4.674a1 1 0 00.95.69h4.915c.969 0 1.371 1.24.588 1.81l-3.976 2.888a1 1 0 00-.363 1.118l1.518 4.674c.3.922-.755 1.688-1.538 1.118l-3.976-2.888a1 1 0 00-1.176 0l-3.976 2.888c-.783.57-1.838-.197-1.538-1.118l1.518-4.674a1 1 0 00-.363-1.118l-3.976-2.888c-.784-.57-.38-1.81.588-1.81h4.914a1 1 0 00.951-.69l1.519-4.674z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"star-filled":{viewBox:"0 0 24 24",path:"M11.049 2.927c.3-.921 1.603-.921 1.902 0l1.519 4.674a1 1 0 00.95.69h4.915c.969 0 1.371 1.24.588 1.81l-3.976 2.888a1 1 0 00-.363 1.118l1.518 4.674c.3.922-.755 1.688-1.538 1.118l-3.976-2.888a1 1 0 00-1.176 0l-3.976 2.888c-.783.57-1.838-.197-1.538-1.118l1.518-4.674a1 1 0 00-.363-1.118l-3.976-2.888c-.784-.57-.38-1.81.588-1.81h4.914a1 1 0 00.951-.69l1.519-4.674z",fill:"currentColor"},sun:{viewBox:"0 0 24 24",path:"M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},moon:{viewBox:"0 0 24 24",path:"M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},globe:{viewBox:"0 0 24 24",path:"M21 12a9 9 0 01-9 9m9-9a9 9 0 00-9-9m9 9H3m9 9a9 9 0 01-9-9m9 9c1.657 0 3-4.03 3-9s-1.343-9-3-9m0 18c-1.657 0-3-4.03-3-9s1.343-9 3-9m-9 9a9 9 0 019-9",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},map:{viewBox:"0 0 24 24",path:"M9 20l-5.447-2.724A1 1 0 013 16.382V5.618a1 1 0 011.447-.894L9 7m0 13l6-3m-6 3V7m6 10l4.553 2.276A1 1 0 0021 18.382V7.618a1 1 0 00-.553-.894L15 4m0 13V4m0 0L9 7",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},pin:{viewBox:"0 0 24 24",path:"M17.657 16.657L13.414 20.9a1.998 1.998 0 01-2.827 0l-4.244-4.243a8 8 0 1111.314 0z M15 11a3 3 0 11-6 0 3 3 0 016 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},feather:{viewBox:"0 0 24 24",path:"M20.24 12.24a6 6 0 00-8.49-8.49L5 10.5V19h8.5zM16 8L2 22M17.5 15H9",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},palette:{viewBox:"0 0 24 24",path:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10c.93 0 1.68-.75 1.68-1.68 0-.43-.16-.84-.44-1.13-.27-.29-.43-.7-.43-1.13 0-.93.76-1.69 1.69-1.69h1.98c3.03 0 5.52-2.49 5.52-5.52C22 6.48 17.52 2 12 2zm-5.5 9c-.83 0-1.5-.67-1.5-1.5S5.67 8 6.5 8 8 8.67 8 9.5 7.33 11 6.5 11zm3-4C8.67 7 8 6.33 8 5.5S8.67 4 9.5 4s1.5.67 1.5 1.5S10.33 7 9.5 7zm5 0c-.83 0-1.5-.67-1.5-1.5S13.67 4 14.5 4s1.5.67 1.5 1.5S15.33 7 14.5 7zm3 4c-.83 0-1.5-.67-1.5-1.5S16.67 8 17.5 8s1.5.67 1.5 1.5-.67 1.5-1.5 1.5z",fill:"currentColor"},type:{viewBox:"0 0 24 24",path:"M4 7V4h16v3M9 20h6M12 4v16",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},square:{viewBox:"0 0 24 24",path:"M5 3h14a2 2 0 012 2v14a2 2 0 01-2 2H5a2 2 0 01-2-2V5a2 2 0 012-2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"mouse-pointer":{viewBox:"0 0 24 24",path:"M3 3l7.07 16.97 2.51-7.39 7.39-2.51L3 3z M13 13l6 6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"refresh-cw":{viewBox:"0 0 24 24",path:"M23 4v6h-6M1 20v-6h6M3.51 9a9 9 0 0114.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0020.49 15",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},sync:{viewBox:"0 0 24 24",path:"M1 4v6h6m16 10v-6h-6M2 20l6-6M22 4l-6 6M9 12l2 2 4-4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},gauge:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 0110 10c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2z M8 12l4 4 4-4M12 16V8",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"map-pin":{viewBox:"0 0 24 24",path:"M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0118 0z M12 13a3 3 0 100-6 3 3 0 000 6z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"help-circle":{viewBox:"0 0 24 24",path:"M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10z M9.09 9a3 3 0 015.83 1c0 2-3 3-3 3 M12 17h.01",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}},X={mail:{viewBox:"0 0 24 24",path:"M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"mail-open":{viewBox:"0 0 24 24",path:"M3 19V9a2 2 0 012-2h.93a2 2 0 001.664-.89l.812-1.22A2 2 0 0110.07 4h3.86a2 2 0 011.664.89l.812 1.22A2 2 0 0018.07 7H19a2 2 0 012 2v10a2 2 0 01-2 2H5a2 2 0 01-2-2z M3 9l9 6 9-6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},inbox:{viewBox:"0 0 24 24",path:"M20 13V6a2 2 0 00-2-2H6a2 2 0 00-2 2v7m16 0v5a2 2 0 01-2 2H6a2 2 0 01-2-2v-5m16 0h-2.586a1 1 0 00-.707.293l-2.414 2.414a1 1 0 01-.707.293h-3.172a1 1 0 01-.707-.293l-2.414-2.414A1 1 0 006.586 13H4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},send:{viewBox:"0 0 24 24",path:"M22 2L11 13M22 2l-7 20-4-9-9-4 20-7z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},phone:{viewBox:"0 0 24 24",path:"M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21l-2.257 1.13a11.042 11.042 0 005.516 5.516l1.13-2.257a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"phone-incoming":{viewBox:"0 0 24 24",path:"M14.5 2v6m0 0h6m-6 0l7-7M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21l-2.257 1.13a11.042 11.042 0 005.516 5.516l1.13-2.257a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"phone-outgoing":{viewBox:"0 0 24 24",path:"M21.5 2h-6m6 0v6m0-6l-7 7M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21l-2.257 1.13a11.042 11.042 0 005.516 5.516l1.13-2.257a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"phone-off":{viewBox:"0 0 24 24",path:"M16.5 10.5l5.5-5.5M22 5l-5.5 5.5M10.68 13.31a16 16 0 003.41 2.6l1.27-1.27a2 2 0 012.11-.45 12.84 12.84 0 002.81.7 2 2 0 011.72 2v3a2 2 0 01-2.18 2 19.79 19.79 0 01-8.63-3.07 19.42 19.42 0 01-6-6 19.79 19.79 0 01-3.07-8.67A2 2 0 014.11 2h3a2 2 0 012 1.72 12.84 12.84 0 00.7 2.81 2 2 0 01-.45 2.11L8.09 9.91",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},chat:{viewBox:"0 0 24 24",path:"M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"chat-alt":{viewBox:"0 0 24 24",path:"M17 8h2a2 2 0 012 2v6a2 2 0 01-2 2h-2v4l-4-4H9a1.994 1.994 0 01-1.414-.586m0 0L11 14h4a2 2 0 002-2V6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2v4l.586-.586z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"message-circle":{viewBox:"0 0 24 24",path:"M21 11.5a8.38 8.38 0 01-.9 3.8 8.5 8.5 0 01-7.6 4.7 8.38 8.38 0 01-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 01-.9-3.8 8.5 8.5 0 014.7-7.6 8.38 8.38 0 013.8-.9h.5a8.48 8.48 0 018 8v.5z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"message-square":{viewBox:"0 0 24 24",path:"M21 15a2 2 0 01-2 2H7l-4 4V5a2 2 0 012-2h14a2 2 0 012 2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},bell:{viewBox:"0 0 24 24",path:"M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"bell-off":{viewBox:"0 0 24 24",path:"M13.73 21a2 2 0 01-3.46 0M18.63 13A17.89 17.89 0 0118 8M6.26 6.26A5.86 5.86 0 006 8c0 7-3 9-3 9h14M18 8a6 6 0 00-9.33-5M1 1l22 22",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},notification:{viewBox:"0 0 24 24",path:"M12 22c1.1 0 2-.9 2-2h-4c0 1.1.9 2 2 2zm6-6v-5c0-3.07-1.63-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.64 5.36 6 7.92 6 11v5l-2 2v1h16v-1l-2-2zm-2 1H8v-6c0-2.48 1.51-4.5 4-4.5s4 2.02 4 4.5v6z",fill:"currentColor"},"at-sign":{viewBox:"0 0 24 24",path:"M16 12a4 4 0 10-8 0 4 4 0 008 0zm0 0v1.5a2.5 2.5 0 005 0V12a9 9 0 10-9 9",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},paperclip:{viewBox:"0 0 24 24",path:"M21.44 11.05l-9.19 9.19a6 6 0 01-8.49-8.49l9.19-9.19a4 4 0 015.66 5.66l-9.2 9.19a2 2 0 01-2.83-2.83l8.49-8.48",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},rss:{viewBox:"0 0 24 24",path:"M4 11a9 9 0 919 9M4 4a16 16 0 0116 16M5 20a1 1 0 100-2 1 1 0 000 2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},wifi:{viewBox:"0 0 24 24",path:"M12 20h.01M2 8.82a15 15 0 0120 0M5 12.859a10 10 0 0114 0M8.5 16.429a5 5 0 017 0",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"wifi-off":{viewBox:"0 0 24 24",path:"M1 1l22 22M16.72 11.06A10.94 10.94 0 0119 12.55M5 12.55a10.94 10.94 0 015.17-2.39m3.64.46a10.88 10.88 0 012.69 1.92M8.5 16.429a5 5 0 013.5-1.43M12 20h.01",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}},ee={play:{viewBox:"0 0 24 24",path:"M14.752 11.168l-3.197-2.132A1 1 0 0010 9.87v4.263a1 1 0 001.555.832l3.197-2.132a1 1 0 000-1.664z M21 12a9 9 0 11-18 0 9 9 0 0118 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"play-filled":{viewBox:"0 0 24 24",path:"M5 3l14 9-14 9V3z",fill:"currentColor"},pause:{viewBox:"0 0 24 24",path:"M10 9v6m4-6v6m7-3a9 9 0 11-18 0 9 9 0 0118 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"pause-filled":{viewBox:"0 0 24 24",paths:["M6 4h4v16H6z","M14 4h4v16h-4z"],fill:"currentColor"},stop:{viewBox:"0 0 24 24",path:"M21 12a9 9 0 11-18 0 9 9 0 0118 0z M9 10a1 1 0 011-1h4a1 1 0 011 1v4a1 1 0 01-1 1h-4a1 1 0 01-1-1v-4z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"stop-filled":{viewBox:"0 0 24 24",path:"M6 6h12v12H6z",fill:"currentColor"},"skip-back":{viewBox:"0 0 24 24",path:"M19 20L9 12l10-8v16zM5 19V5",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"skip-forward":{viewBox:"0 0 24 24",path:"M5 4l10 8-10 8V4zM19 5v14",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},rewind:{viewBox:"0 0 24 24",path:"M11 19l-7-7 7-7m8 14l-7-7 7-7",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"fast-forward":{viewBox:"0 0 24 24",path:"M13 5l7 7-7 7M5 5l7 7-7 7",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},volume:{viewBox:"0 0 24 24",path:"M15.536 8.464a5 5 0 010 7.072M12 6l-4 4H4v4h4l4 4V6z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"volume-up":{viewBox:"0 0 24 24",path:"M15.536 8.464a5 5 0 010 7.072m2.828-9.9a9 9 0 010 12.728M12 6l-4 4H4v4h4l4 4V6z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"volume-down":{viewBox:"0 0 24 24",path:"M15.536 8.464a5 5 0 010 7.072M12 6l-4 4H4v4h4l4 4V6z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"volume-mute":{viewBox:"0 0 24 24",path:"M5.586 15H4a1 1 0 01-1-1v-4a1 1 0 011-1h1.586l4.707-4.707C10.923 3.663 12 4.109 12 5v14c0 .891-1.077 1.337-1.707.707L5.586 15z M17 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"volume-off":{viewBox:"0 0 24 24",path:"M12 6l-4 4H4v4h4l4 4V6z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},camera:{viewBox:"0 0 24 24",path:"M3 9a2 2 0 012-2h.93a2 2 0 001.664-.89l.812-1.22A2 2 0 0110.07 4h3.86a2 2 0 011.664.89l.812 1.22A2 2 0 0018.07 7H19a2 2 0 012 2v9a2 2 0 01-2 2H5a2 2 0 01-2-2V9z M15 13a3 3 0 11-6 0 3 3 0 016 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"camera-off":{viewBox:"0 0 24 24",path:"M1 1l22 22M21 21H3a2 2 0 01-2-2V8a2 2 0 012-2h3m3-3h6l2 3h4a2 2 0 012 2v9.34m-7.72-2.06a4 4 0 11-5.56-5.56",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},video:{viewBox:"0 0 24 24",path:"M15 10l4.553-2.276A1 1 0 0121 8.618v6.764a1 1 0 01-1.447.894L15 14M5 18h8a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v8a2 2 0 002 2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"video-off":{viewBox:"0 0 24 24",path:"M16 16v1a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h2m5.66 0H14a2 2 0 012 2v3.34l1 1L23 7v10M1 1l22 22",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},image:{viewBox:"0 0 24 24",path:"M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},images:{viewBox:"0 0 24 24",path:"M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z M9 3h12a2 2 0 012 2v12",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},music:{viewBox:"0 0 24 24",path:"M9 19V6l12-3v13M9 19c0 1.105-1.343 2-3 2s-3-.895-3-2 1.343-2 3-2 3 .895 3 2zm12-3c0 1.105-1.343 2-3 2s-3-.895-3-2 1.343-2 3-2 3 .895 3 2zM9 10l12-3",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},mic:{viewBox:"0 0 24 24",path:"M19 10v2a7 7 0 01-14 0v-2m7 9v4m-4 0h8m-4-13a3 3 0 00-3 3v4a3 3 0 006 0v-4a3 3 0 00-3-3z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"mic-off":{viewBox:"0 0 24 24",path:"M1 1l22 22m-2-2a10 10 0 01-11 2.955M12 19v4m-4 0h8M9 9v3a3 3 0 005.12 2.12M15 9.34V4a3 3 0 00-5.94-.6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},headphones:{viewBox:"0 0 24 24",path:"M3 18v-6a9 9 0 0118 0v6M21 19a2 2 0 01-2 2h-1a2 2 0 01-2-2v-3a2 2 0 012-2h3zM3 19a2 2 0 002 2h1a2 2 0 002-2v-3a2 2 0 00-2-2H3z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},radio:{viewBox:"0 0 24 24",path:"M12 14m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0 M16.24 7.76a6 6 0 010 8.49m-8.48-.01a6 6 0 010-8.49m11.31-2.82a10 10 0 010 14.14m-14.14 0a10 10 0 010-14.14",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},film:{viewBox:"0 0 24 24",path:"M7 4v16M17 4v16M3 8h4m10 0h4M3 12h18M3 16h4m10 0h4M4 20h16a1 1 0 001-1V5a1 1 0 00-1-1H4a1 1 0 00-1 1v14a1 1 0 001 1z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},tv:{viewBox:"0 0 24 24",path:"M20 7H4a2 2 0 00-2 2v10a2 2 0 002 2h16a2 2 0 002-2V9a2 2 0 00-2-2zM17 3l-5 4-5-4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},cast:{viewBox:"0 0 24 24",path:"M2 16.1A5 5 0 015.9 20M2 12.05A9 9 0 019.95 20M2 8V6a2 2 0 012-2h16a2 2 0 012 2v12a2 2 0 01-2 2h-6M2 20h.01",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},maximize:{viewBox:"0 0 24 24",path:"M8 3H5a2 2 0 00-2 2v3m18 0V5a2 2 0 00-2-2h-3m0 18h3a2 2 0 002-2v-3M3 16v3a2 2 0 002 2h3",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},minimize:{viewBox:"0 0 24 24",path:"M8 3v3a2 2 0 01-2 2H3m18 0h-3a2 2 0 01-2-2V3m0 18v-3a2 2 0 012-2h3M3 16h3a2 2 0 012 2v3",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}},te={document:{viewBox:"0 0 24 24",path:"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"document-text":{viewBox:"0 0 24 24",path:"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z M14 2v6h6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"document-add":{viewBox:"0 0 24 24",path:"M9 13h6m-3-3v6m5 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"document-remove":{viewBox:"0 0 24 24",path:"M9 13h6m2 8H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"document-check":{viewBox:"0 0 24 24",path:"M9 12l2 2 4-4m2 11H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},folder:{viewBox:"0 0 24 24",path:"M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"folder-open":{viewBox:"0 0 24 24",path:"M5 19a2 2 0 01-2-2V7a2 2 0 012-2h4l2 2h6a2 2 0 012 2v1M5 19h14a2 2 0 002-2v-5a2 2 0 00-2-2H9a2 2 0 00-2 2v5a2 2 0 01-2 2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"folder-add":{viewBox:"0 0 24 24",path:"M9 13h6m-3-3v6M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"folder-remove":{viewBox:"0 0 24 24",path:"M9 13h6M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},download:{viewBox:"0 0 24 24",path:"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},upload:{viewBox:"0 0 24 24",path:"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-8l-4-4m0 0L8 8m4-4v12",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"cloud-download":{viewBox:"0 0 24 24",path:"M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M9 19l3 3m0 0l3-3m-3 3V10",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"cloud-upload":{viewBox:"0 0 24 24",path:"M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M15 13l-3-3m0 0l-3 3m3-3v12",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},cloud:{viewBox:"0 0 24 24",path:"M8 19c-3.314 0-6-2.462-6-5.5S4.686 8 8 8c.642-2.87 3.251-5 6.375-5C18.086 3 21 5.91 21 9.5a6.458 6.458 0 01-.705 2.945A4.5 4.5 0 0119 21H8z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},attachment:{viewBox:"0 0 24 24",path:"M15.172 7l-6.586 6.586a2 2 0 102.828 2.828l6.414-6.586a4 4 0 00-5.656-5.656l-6.415 6.585a6 6 0 108.486 8.486L20.5 13",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},copy:{viewBox:"0 0 24 24",path:"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},clipboard:{viewBox:"0 0 24 24",path:"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"clipboard-check":{viewBox:"0 0 24 24",path:"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"clipboard-list":{viewBox:"0 0 24 24",path:"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},save:{viewBox:"0 0 24 24",path:"M8 7H5a2 2 0 00-2 2v9a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-3m-1 4l-3 3m0 0l-3-3m3 3V4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},archive:{viewBox:"0 0 24 24",path:"M5 8h14M5 8a2 2 0 110-4h14a2 2 0 110 4M5 8v10a2 2 0 002 2h10a2 2 0 002-2V8m-9 4h4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"file-code":{viewBox:"0 0 24 24",path:"M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"file-zip":{viewBox:"0 0 24 24",path:"M17 21H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2zM10 3v4h1V3h-1zm1 4h-1v2h1V7zm-1 2v2h1V9h-1zm1 2h-1v2h1v-2zm-1 2v2h1v-2h-1z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},database:{viewBox:"0 0 24 24",path:"M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4m0 5c0 2.21-3.582 4-8 4s-8-1.79-8-4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},server:{viewBox:"0 0 24 24",path:"M5 12h14M5 12a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v4a2 2 0 01-2 2M5 12a2 2 0 00-2 2v4a2 2 0 002 2h14a2 2 0 002-2v-4a2 2 0 00-2-2m-2-4h.01M17 16h.01",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"hard-drive":{viewBox:"0 0 24 24",path:"M22 12H2M5.45 5.11L2 12v6a2 2 0 002 2h16a2 2 0 002-2v-6l-3.45-6.89A2 2 0 0016.76 4H7.24a2 2 0 00-1.79 1.11zM6 16h.01M10 16h.01",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"file-text":{viewBox:"0 0 24 24",path:"M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8l-6-6zM14 2v6h6M16 13H8M16 17H8M10 9H8",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},book:{viewBox:"0 0 24 24",path:"M4 19.5A2.5 2.5 0 016.5 17H20M4 19.5A2.5 2.5 0 006.5 22H20v-5M6 3h14v16H6a2 2 0 01-2-2V5a2 2 0 012-2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"book-open":{viewBox:"0 0 24 24",path:"M2 3h6a4 4 0 014 4v14a3 3 0 00-3-3H2V3zM22 3h-6a4 4 0 00-4 4v14a3 3 0 013-3h7V3z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"book-closed":{viewBox:"0 0 24 24",path:"M4 19.5A2.5 2.5 0 016.5 17H20M4 19.5A2.5 2.5 0 006.5 22H20v-5M6 3h14v16H6a2 2 0 01-2-2V5a2 2 0 012-2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"folder-plus":{viewBox:"0 0 24 24",path:"M9 13h6m-3-3v6M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"folder-minus":{viewBox:"0 0 24 24",path:"M9 13h6M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}},oe={share:{viewBox:"0 0 24 24",path:"M8.684 13.342C8.886 12.938 9 12.482 9 12c0-.482-.114-.938-.316-1.342m0 2.684a3 3 0 110-2.684m0 2.684l6.632 3.316m-6.632-6l6.632-3.316m0 0a3 3 0 105.367-2.684 3 3 0 00-5.367 2.684zm0 9.316a3 3 0 105.368 2.684 3 3 0 00-5.368-2.684z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"share-alt":{viewBox:"0 0 24 24",path:"M4 12v8a2 2 0 002 2h12a2 2 0 002-2v-8M16 6l-4-4-4 4M12 2v13",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},heart:{viewBox:"0 0 24 24",path:"M4.318 6.318a4.5 4.5 0 000 6.364L12 20.364l7.682-7.682a4.5 4.5 0 00-6.364-6.364L12 7.636l-1.318-1.318a4.5 4.5 0 00-6.364 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"heart-filled":{viewBox:"0 0 24 24",path:"M4.318 6.318a4.5 4.5 0 000 6.364L12 20.364l7.682-7.682a4.5 4.5 0 00-6.364-6.364L12 7.636l-1.318-1.318a4.5 4.5 0 00-6.364 0z",fill:"currentColor"},bookmark:{viewBox:"0 0 24 24",path:"M5 5a2 2 0 012-2h10a2 2 0 012 2v16l-7-3.5L5 21V5z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"bookmark-filled":{viewBox:"0 0 24 24",path:"M5 5a2 2 0 012-2h10a2 2 0 012 2v16l-7-3.5L5 21V5z",fill:"currentColor"},"thumb-up":{viewBox:"0 0 24 24",path:"M14 10h4.764a2 2 0 011.789 2.894l-3.5 7A2 2 0 0115.263 21h-4.017c-.163 0-.326-.02-.485-.06L7 20m7-10V5a2 2 0 00-2-2h-.095c-.5 0-.905.405-.905.905 0 .714-.211 1.412-.608 2.006L7 11v9m7-10h-2M7 20H5a2 2 0 01-2-2v-6a2 2 0 012-2h2.5",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"thumb-down":{viewBox:"0 0 24 24",path:"M10 14H5.236a2 2 0 01-1.789-2.894l3.5-7A2 2 0 018.736 3h4.018a2 2 0 01.485.06l3.76.94m-7 10v5a2 2 0 002 2h.096c.5 0 .905-.405.905-.904 0-.715.211-1.413.608-2.008L17 13V4m-7 10h2m5-10h2a2 2 0 012 2v6a2 2 0 01-2 2h-2.5",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},comment:{viewBox:"0 0 24 24",path:"M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"user-add":{viewBox:"0 0 24 24",path:"M18 9v3m0 0v3m0-3h3m-3 0h-3m-2-5a4 4 0 11-8 0 4 4 0 018 0zM3 20a6 6 0 0112 0v1H3v-1z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"user-plus":{viewBox:"0 0 24 24",path:"M18 9v3m0 0v3m0-3h3m-3 0h-3m-2-5a4 4 0 11-8 0 4 4 0 018 0zM3 20a6 6 0 0112 0v1H3v-1z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"user-remove":{viewBox:"0 0 24 24",path:"M13 7a4 4 0 11-8 0 4 4 0 018 0zM9 14a6 6 0 00-6 6v1h12v-1a6 6 0 00-6-6zM21 12h-6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"user-group":{viewBox:"0 0 24 24",path:"M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0zm6 3a2 2 0 11-4 0 2 2 0 014 0zM7 10a2 2 0 11-4 0 2 2 0 014 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"emoji-happy":{viewBox:"0 0 24 24",path:"M14.828 14.828a4 4 0 01-5.656 0M9 10h.01M15 10h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"emoji-sad":{viewBox:"0 0 24 24",path:"M9.172 16.172a4 4 0 015.656 0M9 10h.01M15 10h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},flag:{viewBox:"0 0 24 24",path:"M3 21v-4m0 0V5a2 2 0 012-2h6.5l1 1H21l-3 6 3 6h-8.5l-1-1H5a2 2 0 00-2 2zm9-13.5V9",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},award:{viewBox:"0 0 24 24",path:"M9 12l2 2 4-4M7.835 4.697a3.42 3.42 0 001.946-.806 3.42 3.42 0 014.438 0 3.42 3.42 0 001.946.806 3.42 3.42 0 013.138 3.138 3.42 3.42 0 00.806 1.946 3.42 3.42 0 010 4.438 3.42 3.42 0 00-.806 1.946 3.42 3.42 0 01-3.138 3.138 3.42 3.42 0 00-1.946.806 3.42 3.42 0 01-4.438 0 3.42 3.42 0 00-1.946-.806 3.42 3.42 0 01-3.138-3.138 3.42 3.42 0 00-.806-1.946 3.42 3.42 0 010-4.438 3.42 3.42 0 00.806-1.946 3.42 3.42 0 013.138-3.138z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},trophy:{viewBox:"0 0 24 24",path:"M12 15V17M8 21H16M8 3H16V9C16 11.2091 14.2091 13 12 13C9.79086 13 8 11.2091 8 9V3ZM16 5H18C19.1046 5 20 5.89543 20 7V8C20 9.10457 19.1046 10 18 10H16M8 5H6C4.89543 5 4 5.89543 4 7V8C4 9.10457 4.89543 10 6 10H8M12 17V21",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},gift:{viewBox:"0 0 24 24",path:"M12 8V21M12 8H8.464C7.103 8 6 6.897 6 5.536C6 4.175 7.103 3 8.464 3C10.059 3 11.162 4.162 12 5.536M12 8H15.536C16.897 8 18 6.897 18 5.536C18 4.175 16.897 3 15.536 3C13.941 3 12.838 4.162 12 5.536M20 12V21H4V12M3 8H21V12H3V8Z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},sparkles:{viewBox:"0 0 24 24",path:"M5 3v4M3 5h4M6 17v4m-2-2h4m5-16l2.286 6.857L21 12l-5.714 2.143L13 21l-2.286-6.857L5 12l5.714-2.143L13 3z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},fire:{viewBox:"0 0 24 24",path:"M17.657 18.657A8 8 0 016.343 7.343S7 9 9 10c0-2 .5-5 2.986-7C14 5 16.09 5.777 17.656 7.343A7.975 7.975 0 0120 13a7.975 7.975 0 01-2.343 5.657z M9.879 16.121A3 3 0 1012.015 11L11 14H9c0 .768.293 1.536.879 2.121z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},github:{viewBox:"0 0 24 24",path:"M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z",fill:"currentColor"},twitter:{viewBox:"0 0 24 24",path:"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z",fill:"currentColor"},linkedin:{viewBox:"0 0 24 24",path:"M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 01-2.063-2.065 2.064 2.064 0 112.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z",fill:"currentColor"},youtube:{viewBox:"0 0 24 24",path:"M23.498 6.186a3.016 3.016 0 00-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 00.502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 002.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 002.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z",fill:"currentColor"},"share-2":{viewBox:"0 0 24 24",path:"M18 8a3 3 0 100-6 3 3 0 000 6zM6 15a3 3 0 100-6 3 3 0 000 6zM18 22a3 3 0 100-6 3 3 0 000 6zM8.59 13.51l6.83 3.98M15.41 6.51l-6.82 3.98",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}},se={cart:{viewBox:"0 0 24 24",path:"M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"cart-add":{viewBox:"0 0 24 24",path:"M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0zm6-8v-2m0 0V7m0 2h2m-2 0H11",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"shopping-bag":{viewBox:"0 0 24 24",path:"M16 11V7a4 4 0 00-8 0v4M5 9h14l1 12H4L5 9z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},store:{viewBox:"0 0 24 24",path:"M3 3h18v4H3V3zM3 7v12a2 2 0 002 2h14a2 2 0 002-2V7M3 11h18M12 7v14M8 11v10M16 11v10",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"credit-card":{viewBox:"0 0 24 24",path:"M3 10h18M7 15h1m4 0h1m-7 4h12a3 3 0 003-3V8a3 3 0 00-3-3H6a3 3 0 00-3 3v8a3 3 0 003 3z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},wallet:{viewBox:"0 0 24 24",path:"M17 9V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-2m-5-3h9m0 0l-3-3m3 3l-3 3",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},cash:{viewBox:"0 0 24 24",path:"M17 9V7a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2m2 4h10a2 2 0 002-2v-6a2 2 0 00-2-2H9a2 2 0 00-2 2v6a2 2 0 002 2zm7-5a2 2 0 11-4 0 2 2 0 014 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"currency-dollar":{viewBox:"0 0 24 24",path:"M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1M21 12a9 9 0 11-18 0 9 9 0 0118 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"currency-pound":{viewBox:"0 0 24 24",path:"M15 9a3 3 0 00-3-3H9a3 3 0 00-3 3v6a3 3 0 003 3h6a3 3 0 003-3M9 12h6M21 12a9 9 0 11-18 0 9 9 0 0118 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"currency-euro":{viewBox:"0 0 24 24",path:"M15 9a3 3 0 00-3-3H9a3 3 0 00-3 3v6a3 3 0 003 3h3a3 3 0 003-3M7 10h5m-5 4h5M21 12a9 9 0 11-18 0 9 9 0 0118 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},tag:{viewBox:"0 0 24 24",path:"M7 7h.01M7 3h5c.512 0 1.024.195 1.414.586l7 7a2 2 0 010 2.828l-7 7a2 2 0 01-2.828 0l-7-7A1.994 1.994 0 013 12V7a4 4 0 014-4z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},tags:{viewBox:"0 0 24 24",path:"M7 7h.01M7 3h5c.512 0 1.024.195 1.414.586l7 7a2 2 0 010 2.828l-7 7a2 2 0 01-2.828 0l-7-7A1.994 1.994 0 013 12V7a4 4 0 014-4z M17 17l4.414-4.414a2 2 0 000-2.828L14 3",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},receipt:{viewBox:"0 0 24 24",path:"M9 14l6 0M9 10l6 0M9 18l3 0M5 21l1-2 1 2 1-2 1 2 1-2 1 2 1-2 1 2 1-2 1 2 1-2 1 2V3l-1 2-1-2-1 2-1-2-1 2-1-2-1 2-1-2-1 2-1-2-1 2-1-2v18z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},barcode:{viewBox:"0 0 24 24",path:"M5 7v10M8 7v10M11 7v10M14 7v10M19 7v10M17 7v10",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round"},qrcode:{viewBox:"0 0 24 24",path:"M3 3h6v6H3V3zM15 3h6v6h-6V3zM3 15h6v6H3v-6zM15 15h2v2h-2v-2zM19 15h2v2h-2v-2zM15 19h2v2h-2v-2zM19 19h2v2h-2v-2zM5 5h2v2H5V5zM17 5h2v2h-2V5zM5 17h2v2H5v-2zM12 3h1v4h-1V3zM12 9h1v3h-1V9zM3 12h4v1H3v-1zM9 12h3v1H9v-1zM12 14h1v3h-1v-3zM12 19h1v2h-1v-2z",fill:"currentColor"},percent:{viewBox:"0 0 24 24",path:"M9 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zM15 18a1.5 1.5 0 100-3 1.5 1.5 0 000 3zM19 5L5 19",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},package:{viewBox:"0 0 24 24",path:"M20 7l-8-4-8 4m16 0l-8 4m8-4v10l-8 4m0-10L4 7m8 4v10M4 7v10l8 4M9 4l3 1.5L15 4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},truck:{viewBox:"0 0 24 24",path:"M13 16V6a1 1 0 00-1-1H4a1 1 0 00-1 1v10a1 1 0 001 1h1m8-1a1 1 0 01-1 1H9m4-1V8a1 1 0 011-1h2.586a1 1 0 01.707.293l3.414 3.414a1 1 0 01.293.707V16a1 1 0 01-1 1h-1m-6-1a1 1 0 001 1h1M5 17a2 2 0 104 0m-4 0a2 2 0 114 0m6 0a2 2 0 104 0m-4 0a2 2 0 114 0",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},box:{viewBox:"0 0 24 24",path:"M12 3L2 8.5V15.5L12 21L22 15.5V8.5L12 3ZM12 12V21M12 12L2 7M12 12L22 7",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},shipping:{viewBox:"0 0 24 24",path:"M20 21v-2a4 4 0 00-4-4H8a4 4 0 00-4 4v2M4 7V4h16v3M4 7h16M8 4v3M16 4v3M12 11v4m-2-2h4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},calculator:{viewBox:"0 0 24 24",path:"M4 4a2 2 0 012-2h12a2 2 0 012 2v16a2 2 0 01-2 2H6a2 2 0 01-2-2V4zM8 6h8v4H8V6zM8 14h.01M12 14h.01M16 14h.01M8 18h.01M12 18h.01M16 18h.01",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},briefcase:{viewBox:"0 0 24 24",path:"M20 7H4a2 2 0 00-2 2v10a2 2 0 002 2h16a2 2 0 002-2V9a2 2 0 00-2-2zM16 21V5a2 2 0 00-2-2h-4a2 2 0 00-2 2v16",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}},ne={check:{viewBox:"0 0 24 24",path:"M5 13l4 4L19 7",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"check-circle":{viewBox:"0 0 24 24",path:"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"check-circle-filled":{viewBox:"0 0 24 24",path:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z",fill:"currentColor"},"check-square":{viewBox:"0 0 24 24",path:"M9 11l3 3L22 4M21 12v7a2 2 0 01-2 2H5a2 2 0 01-2-2V5a2 2 0 012-2h11",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},x:{viewBox:"0 0 24 24",path:"M6 18L18 6M6 6l12 12",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"x-circle":{viewBox:"0 0 24 24",path:"M10 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2m7-2a9 9 0 11-18 0 9 9 0 0118 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"x-circle-filled":{viewBox:"0 0 24 24",path:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z",fill:"currentColor"},warning:{viewBox:"0 0 24 24",path:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"warning-filled":{viewBox:"0 0 24 24",path:"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z",fill:"currentColor"},"alert-warning":{viewBox:"0 0 24 24",path:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},info:{viewBox:"0 0 24 24",path:"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"info-filled":{viewBox:"0 0 24 24",path:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z",fill:"currentColor"},question:{viewBox:"0 0 24 24",path:"M8.228 9c.549-1.165 2.03-2 3.772-2 2.21 0 4 1.343 4 3 0 1.4-1.278 2.575-3.006 2.907-.542.104-.994.54-.994 1.093m0 3h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},exclamation:{viewBox:"0 0 24 24",path:"M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"alert-circle":{viewBox:"0 0 24 24",path:"M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},ban:{viewBox:"0 0 24 24",path:"M18.364 18.364A9 9 0 005.636 5.636m12.728 12.728A9 9 0 015.636 5.636m12.728 12.728L5.636 5.636",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},shield:{viewBox:"0 0 24 24",path:"M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"shield-check":{viewBox:"0 0 24 24",path:"M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"shield-x":{viewBox:"0 0 24 24",path:"M10 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2m5.618-6.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},spinner:{viewBox:"0 0 24 24",path:"M12 2v4m0 12v4m10-10h-4M6 12H2m15.364-5.364l-2.828 2.828M9.464 14.536l-2.828 2.828m11.728 0l-2.828-2.828M9.464 9.464L6.636 6.636",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},loading:{viewBox:"0 0 24 24",path:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z",fill:"currentColor"},loader:{viewBox:"0 0 24 24",path:"M12 2v4M12 18v4M4.93 4.93l2.83 2.83M16.24 16.24l2.83 2.83M2 12h4M18 12h4M4.93 19.07l2.83-2.83M16.24 7.76l2.83-2.83",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},circle:{viewBox:"0 0 24 24",path:"M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"circle-filled":{viewBox:"0 0 24 24",path:"M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10z",fill:"currentColor"},dot:{viewBox:"0 0 24 24",path:"M12 12m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0",fill:"currentColor"},badge:{viewBox:"0 0 24 24",path:"M9 12l2 2 4-4M7.835 4.697a3.42 3.42 0 001.946-.806 3.42 3.42 0 014.438 0 3.42 3.42 0 001.946.806 3.42 3.42 0 013.138 3.138 3.42 3.42 0 00.806 1.946 3.42 3.42 0 010 4.438 3.42 3.42 0 00-.806 1.946 3.42 3.42 0 01-3.138 3.138 3.42 3.42 0 00-1.946.806 3.42 3.42 0 01-4.438 0 3.42 3.42 0 00-1.946-.806 3.42 3.42 0 01-3.138-3.138 3.42 3.42 0 00-.806-1.946 3.42 3.42 0 010-4.438 3.42 3.42 0 00.806-1.946 3.42 3.42 0 013.138-3.138z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},zap:{viewBox:"0 0 24 24",path:"M13 10V3L4 14h7v7l9-11h-7z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},activity:{viewBox:"0 0 24 24",path:"M22 12h-4l-3 9L9 3l-3 9H2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},pulse:{viewBox:"0 0 24 24",path:"M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"trending-up":{viewBox:"0 0 24 24",path:"M23 6l-9.5 9.5-5-5L1 18M17 6h6v6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"trending-down":{viewBox:"0 0 24 24",path:"M23 18l-9.5-9.5-5 5L1 6M17 18h6v-6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}},ie={"chevron-up":{viewBox:"0 0 24 24",path:"M5 15l7-7 7 7",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"chevron-down":{viewBox:"0 0 24 24",path:"M19 9l-7 7-7-7",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"chevron-left":{viewBox:"0 0 24 24",path:"M15 19l-7-7 7-7",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"chevron-right":{viewBox:"0 0 24 24",path:"M9 5l7 7-7 7",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"chevrons-up":{viewBox:"0 0 24 24",path:"M17 11l-5-5-5 5M17 18l-5-5-5 5",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"chevrons-down":{viewBox:"0 0 24 24",path:"M7 13l5 5 5-5M7 6l5 5 5-5",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"chevrons-left":{viewBox:"0 0 24 24",path:"M11 17l-5-5 5-5M18 17l-5-5 5-5",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"chevrons-right":{viewBox:"0 0 24 24",path:"M13 7l5 5-5 5M6 7l5 5-5 5",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"external-link":{viewBox:"0 0 24 24",path:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},link:{viewBox:"0 0 24 24",path:"M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},unlink:{viewBox:"0 0 24 24",path:"M18.84 12.25l1.72-1.71h-.02a5.004 5.004 0 00-.12-7.07 5.006 5.006 0 00-6.95 0l-1.72 1.71M5.17 11.75l-1.71 1.71a5.004 5.004 0 00.12 7.07 5.006 5.006 0 006.95 0l1.71-1.71M8 2v3M2 8h3M16 22v-3M22 16h-3",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"corner-up-left":{viewBox:"0 0 24 24",path:"M9 14L4 9l5-5M20 20v-7a4 4 0 00-4-4H4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"corner-up-right":{viewBox:"0 0 24 24",path:"M15 14l5-5-5-5M4 20v-7a4 4 0 014-4h12",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"corner-down-left":{viewBox:"0 0 24 24",path:"M9 10L4 15l5 5M20 4v7a4 4 0 01-4 4H4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"corner-down-right":{viewBox:"0 0 24 24",path:"M15 10l5 5-5 5M4 4v7a4 4 0 004 4h12",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"rotate-cw":{viewBox:"0 0 24 24",path:"M23 4v6h-6M1 20v-6h6M3.51 9a9 9 0 0114.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0020.49 15",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"rotate-ccw":{viewBox:"0 0 24 24",path:"M1 4v6h6M23 20v-6h-6M20.49 9A9 9 0 005.64 5.64L1 10m22 4l-4.64 4.36A9 9 0 013.51 15",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},undo:{viewBox:"0 0 24 24",path:"M3 7v6h6M3 13l4.64-4.36A9 9 0 0121 12",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},redo:{viewBox:"0 0 24 24",path:"M21 7v6h-6M21 13l-4.64-4.36A9 9 0 003 12",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},move:{viewBox:"0 0 24 24",path:"M5 9l-3 3 3 3M9 5l3-3 3 3M15 19l-3 3-3-3M19 9l3 3-3 3M2 12h20M12 2v20",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},expand:{viewBox:"0 0 24 24",path:"M15 3h6v6M9 21H3v-6M21 3l-7 7M3 21l7-7",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},shrink:{viewBox:"0 0 24 24",path:"M4 14h6v6M20 10h-6V4M14 10l7-7M3 21l7-7",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"log-in":{viewBox:"0 0 24 24",path:"M15 3h4a2 2 0 012 2v14a2 2 0 01-2 2h-4M10 17l5-5-5-5M15 12H3",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"log-out":{viewBox:"0 0 24 24",path:"M9 21H5a2 2 0 01-2-2V5a2 2 0 012-2h4M16 17l5-5-5-5M21 12H9",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"sidebar-left":{viewBox:"0 0 24 24",path:"M4 4h16a2 2 0 012 2v12a2 2 0 01-2 2H4a2 2 0 01-2-2V6a2 2 0 012-2zM9 4v16",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"sidebar-right":{viewBox:"0 0 24 24",path:"M4 4h16a2 2 0 012 2v12a2 2 0 01-2 2H4a2 2 0 01-2-2V6a2 2 0 012-2zM15 4v16",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"panel-left":{viewBox:"0 0 24 24",path:"M3 3h18v18H3V3zM9 3v18",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"panel-right":{viewBox:"0 0 24 24",path:"M3 3h18v18H3V3zM15 3v18",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"panel-top":{viewBox:"0 0 24 24",path:"M3 3h18v18H3V3zM3 9h18",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"panel-bottom":{viewBox:"0 0 24 24",path:"M3 3h18v18H3V3zM3 15h18",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},layers:{viewBox:"0 0 24 24",path:"M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},layout:{viewBox:"0 0 24 24",path:"M4 4h16a2 2 0 012 2v12a2 2 0 01-2 2H4a2 2 0 01-2-2V6a2 2 0 012-2zM2 9h20M9 20V9",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},hash:{viewBox:"0 0 24 24",path:"M4 9h16M4 15h16M10 3L8 21M16 3l-2 18",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"more-horizontal":{viewBox:"0 0 24 24",path:"M12 12h.01M8 12h.01M16 12h.01",stroke:"currentColor",fill:"none",strokeWidth:3,strokeLinecap:"round",strokeLinejoin:"round"},"more-vertical":{viewBox:"0 0 24 24",path:"M12 12h.01M12 8h.01M12 16h.01",stroke:"currentColor",fill:"none",strokeWidth:3,strokeLinecap:"round",strokeLinejoin:"round"}},re={tree:{viewBox:"0 0 24 24",path:"M12 2l2 4h-1l2 4h-1.5l2.5 5h-2l3 6H7l3-6H8l2.5-5H9l2-4h-1l2-4zm-1 19h2v3h-2v-3z",stroke:"currentColor",fill:"none",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round"},"star-decoration":{viewBox:"0 0 24 24",path:"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z",stroke:"currentColor",fill:"none",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round"},snowflake:{viewBox:"0 0 24 24",paths:["M12 2v20M2 12h20","M4.93 4.93l14.14 14.14M19.07 4.93L4.93 19.07","M12 6l-2 2 2 2 2-2-2-2zM12 14l-2 2 2 2 2-2-2-2z","M6 12l2-2-2-2-2 2 2 2zM14 12l2 2 2-2-2-2-2 2z"],stroke:"currentColor",fill:"none",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round"},gift:{viewBox:"0 0 24 24",paths:["M20 12v10H4V12","M22 7H2v5h20V7z","M12 22V7","M12 7H7.5a2.5 2.5 0 0 1 0-5C11 2 12 7 12 7z","M12 7h4.5a2.5 2.5 0 0 0 0-5C13 2 12 7 12 7z"],stroke:"currentColor",fill:"none",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round"},"candy-cane":{viewBox:"0 0 24 24",path:"M14.5 3a4.5 4.5 0 0 0-4.5 4.5v13a.5.5 0 0 0 1 0V7.5a3.5 3.5 0 1 1 7 0v1a2.5 2.5 0 0 1-5 0v-.5",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},bauble:{viewBox:"0 0 24 24",paths:["M12 22a8 8 0 1 0 0-16 8 8 0 0 0 0 16z","M12 6V3","M9 3h6","M12 6a1 1 0 0 0 1-1V4a1 1 0 0 0-2 0v1a1 1 0 0 0 1 1z"],stroke:"currentColor",fill:"none",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round"},bells:{viewBox:"0 0 24 24",paths:["M9 18a5 5 0 0 1-5-5c0-2.76 2.24-5 5-5s5 2.24 5 5a5 5 0 0 1-5 5z","M15 18a5 5 0 0 1-5-5c0-2.76 2.24-5 5-5s5 2.24 5 5a5 5 0 0 1-5 5z","M7 8L5 4M17 8l2-4M9 8V5M15 8V5","M11 5h2"],stroke:"currentColor",fill:"none",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round"},holly:{viewBox:"0 0 24 24",paths:["M8 4c-2 2-3 5-1 8 1 2 3 3 5 3s4-1 5-3c2-3 1-6-1-8","M16 4c2 2 3 5 1 8-1 2-3 3-5 3s-4-1-5-3c-2-3-1-6 1-8","M10 17a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3z","M14 17a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3z","M12 19a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3z"],stroke:"currentColor",fill:"none",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round"},snowman:{viewBox:"0 0 24 24",paths:["M12 22a5 5 0 1 0 0-10 5 5 0 0 0 0 10z","M12 12a3 3 0 1 0 0-6 3 3 0 0 0 0 6z","M9 9h.01M15 9h.01","M10 10.5s.5 1 2 1 2-1 2-1","M7 2l3 3M17 2l-3 3M12 2v3","M5 15h2M17 15h2"],stroke:"currentColor",fill:"none",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round"},reindeer:{viewBox:"0 0 24 24",paths:["M12 22c-3 0-5-2-5-5 0-2 1-4 3-5l2-1 2 1c2 1 3 3 3 5 0 3-2 5-5 5z","M7 12c-2-1-3-3-3-5 0-1 .5-2 1-2s1 .5 1.5 1c.5.5 1 1.5 1.5 2","M17 12c2-1 3-3 3-5 0-1-.5-2-1-2s-1 .5-1.5 1c-.5.5-1 1.5-1.5 2","M4 5l1 2M3 7l2 1M20 5l-1 2M21 7l-2 1","M10 17h.01M14 17h.01","M12 19a1 1 0 1 0 0 2 1 1 0 0 0 0-2z"],stroke:"currentColor",fill:"none",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round"},sleigh:{viewBox:"0 0 24 24",paths:["M4 15h14c1 0 2 1 2 2v1H4v-3z","M6 15V8c0-1 1-2 2-2h8c1 0 2 1 2 2v7","M2 20c0-1 2-2 4-2h12c2 0 4 1 4 2","M3 18h1M20 18h1"],stroke:"currentColor",fill:"none",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round"},wreath:{viewBox:"0 0 24 24",paths:["M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10z","M12 18a6 6 0 1 0 0-12 6 6 0 0 0 0 12z","M12 2v2M12 20v2M2 12h2M20 12h2","M10 3l1 2M13 3l-1 2","M10 3h4"],stroke:"currentColor",fill:"none",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round"}},ae={sun:{viewBox:"0 0 24 24",path:"M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41M12 6a6 6 0 1 0 0 12 6 6 0 0 0 0-12z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},sunrise:{viewBox:"0 0 24 24",path:"M17 18a5 5 0 1 0-10 0M12 2v7M4.22 10.22l1.42 1.42M1 18h2M21 18h2M18.36 11.64l1.42-1.42M23 22H1M8 6l4-4 4 4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},sunset:{viewBox:"0 0 24 24",path:"M17 18a5 5 0 1 0-10 0M12 9v7M4.22 10.22l1.42 1.42M1 18h2M21 18h2M18.36 11.64l1.42-1.42M23 22H1M16 5l-4 4-4-4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},cloud:{viewBox:"0 0 24 24",path:"M18 10h-1.26A8 8 0 1 0 9 20h9a5 5 0 0 0 0-10z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"cloud-sun":{viewBox:"0 0 24 24",path:"M12 2v2M4.93 4.93l1.41 1.41M2 12h2M19 12a4 4 0 0 0-4-4h-.35A5.5 5.5 0 0 0 4 11a5 5 0 0 0 0 10h11a4 4 0 0 0 4-5v-4z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"cloud-off":{viewBox:"0 0 24 24",path:"M22.61 16.95A5 5 0 0 0 18 10h-1.26a8 8 0 0 0-7.05-6M5 5a8 8 0 0 0 4 15h9a5 5 0 0 0 1.7-.3M1 1l22 22",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},rain:{viewBox:"0 0 24 24",path:"M16 13v8M8 13v8M12 15v8M20 16.58A5 5 0 0 0 18 7h-1.26A8 8 0 1 0 4 15.25",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"cloud-rain":{viewBox:"0 0 24 24",path:"M16 13v8M8 13v8M12 15v8M20 16.58A5 5 0 0 0 18 7h-1.26A8 8 0 1 0 4 15.25",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"cloud-drizzle":{viewBox:"0 0 24 24",path:"M8 19v2M8 13v2M16 19v2M16 13v2M12 21v2M12 15v2M20 16.58A5 5 0 0 0 18 7h-1.26A8 8 0 1 0 4 15.25",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},snow:{viewBox:"0 0 24 24",path:"M20 17.58A5 5 0 0 0 18 8h-1.26A8 8 0 1 0 4 16.25M8 16h.01M8 20h.01M12 18h.01M12 22h.01M16 16h.01M16 20h.01",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},snowflake:{viewBox:"0 0 24 24",path:"M12 2v20M17.66 7l-11.32 10M20.54 12H3.46M17.66 17L6.34 7M12 2l3 3M12 2l-3 3M12 22l3-3M12 22l-3-3M2 12l3 3M2 12l3-3M22 12l-3 3M22 12l-3-3",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},wind:{viewBox:"0 0 24 24",path:"M9.59 4.59A2 2 0 1 1 11 8H2m10.59 11.41A2 2 0 1 0 14 16H2m15.73-8.27A2.5 2.5 0 1 1 19.5 12H2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"cloud-lightning":{viewBox:"0 0 24 24",path:"M19 16.9A5 5 0 0 0 18 7h-1.26a8 8 0 1 0-11.62 9M13 11l-4 6h6l-4 6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},lightning:{viewBox:"0 0 24 24",path:"M13 2L3 14h9l-1 8 10-12h-9l1-8z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},fog:{viewBox:"0 0 24 24",path:"M20 15h2M2 15h8M6 19h14M4 11h16M8 7h12",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},haze:{viewBox:"0 0 24 24",path:"M12 3v1M12 20v1M3 12h1M20 12h1M5.6 5.6l.7.7M17.7 17.7l.7.7M5.6 18.4l.7-.7M17.7 6.3l.7-.7M8 12a4 4 0 1 0 8 0 4 4 0 0 0-8 0",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},thermometer:{viewBox:"0 0 24 24",path:"M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"thermometer-sun":{viewBox:"0 0 24 24",path:"M12 9a4 4 0 0 0-2 7.5M12 3v2M5.6 5.6l1.4 1.4M3 12h2M5.6 18.4l1.4-1.4M12 14a2 2 0 1 0 0 4 2 2 0 0 0 0-4zM12 10V3M16 14.76V8a2 2 0 0 0-4 0v6.76",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},moon:{viewBox:"0 0 24 24",path:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"moon-star":{viewBox:"0 0 24 24",path:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9zM19 3v4M17 5h4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},umbrella:{viewBox:"0 0 24 24",path:"M23 12a11.05 11.05 0 0 0-22 0zm-5 7a3 3 0 0 1-6 0v-7",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},droplet:{viewBox:"0 0 24 24",path:"M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},droplets:{viewBox:"0 0 24 24",path:"M7 16.3c2.2 0 4-1.83 4-4.05 0-1.16-.57-2.26-1.71-3.19S7.29 6.75 7 5.3c-.29 1.45-1.14 2.84-2.29 3.76S3 11.1 3 12.25c0 2.22 1.8 4.05 4 4.05zM12.56 14.94c1.47 0 2.67-1.25 2.67-2.77 0-.8-.38-1.55-1.14-2.18-.76-.64-1.17-1.32-1.38-2.29-.21.97-.62 1.65-1.38 2.29-.76.63-1.14 1.38-1.14 2.18 0 1.52 1.19 2.77 2.67 2.77zM19.5 17.35c1.1 0 2-.93 2-2.08 0-.6-.29-1.17-.86-1.64-.57-.48-.88-1-.57-1.73-.31.73-.62 1.25-1.19 1.73-.57.47-.86 1.04-.86 1.64 0 1.15.9 2.08 2 2.08z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},rainbow:{viewBox:"0 0 24 24",path:"M22 17a10 10 0 0 0-20 0M18 17a6 6 0 0 0-12 0M14 17a2 2 0 0 0-4 0",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}},le={smartphone:{viewBox:"0 0 24 24",path:"M17 2H7a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2zM12 18h.01",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"phone-call":{viewBox:"0 0 24 24",path:"M15.05 5A5 5 0 0 1 19 8.95M15.05 1A9 9 0 0 1 23 8.94m-1 7.98v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"phone-off":{viewBox:"0 0 24 24",path:"M10.68 13.31a16 16 0 0 0 3.41 2.6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7 2 2 0 0 1 1.72 2v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.42 19.42 0 0 1-3.33-2.67m-2.67-3.34a19.79 19.79 0 0 1-3.07-8.63A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91M23 1L1 23",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},tablet:{viewBox:"0 0 24 24",path:"M18 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2zM12 18h.01",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"tablet-smartphone":{viewBox:"0 0 24 24",path:"M18 2H10a2 2 0 0 0-2 2v4M14 22h4a2 2 0 0 0 2-2V8M8 14H6a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2zM7 18h.01",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},laptop:{viewBox:"0 0 24 24",path:"M20 16V7a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v9m16 0H4m16 0l1.28 2.55a1 1 0 0 1-.9 1.45H3.62a1 1 0 0 1-.9-1.45L4 16",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},monitor:{viewBox:"0 0 24 24",path:"M20 3H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2zM8 21h8M12 17v4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},desktop:{viewBox:"0 0 24 24",path:"M20 3H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2zM8 21h8M12 17v4M2 12h20",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},tv:{viewBox:"0 0 24 24",path:"M20 7H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2zM17 2l-5 5-5-5",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"tv-minimal":{viewBox:"0 0 24 24",path:"M20 4H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},watch:{viewBox:"0 0 24 24",path:"M12 19a7 7 0 1 0 0-14 7 7 0 0 0 0 14zM12 9v3l1.5 1.5M16.51 17.35l-.35 3.83a2 2 0 0 1-2 1.82H9.83a2 2 0 0 1-2-1.82l-.35-3.83m.01-10.7l.35-3.83A2 2 0 0 1 9.83 1h4.35a2 2 0 0 1 2 1.82l.35 3.83",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},smartwatch:{viewBox:"0 0 24 24",path:"M18 8a6 6 0 0 0-12 0v8a6 6 0 0 0 12 0V8zM12 11v3M18 6l1-3H5l1 3M18 18l1 3H5l1-3",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},speaker:{viewBox:"0 0 24 24",path:"M18 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2zM12 14a2 2 0 1 0 0-4 2 2 0 0 0 0 4zM12 6h.01",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},headphones:{viewBox:"0 0 24 24",path:"M3 18v-6a9 9 0 0 1 18 0v6M21 19a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3zM3 19a2 2 0 0 0 2 2h1a2 2 0 0 0 2-2v-3a2 2 0 0 0-2-2H3z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},airpods:{viewBox:"0 0 24 24",path:"M5.5 4a2.5 2.5 0 0 0-2.5 2.5v5a2.5 2.5 0 0 0 5 0v-5A2.5 2.5 0 0 0 5.5 4zM18.5 4a2.5 2.5 0 0 0-2.5 2.5v5a2.5 2.5 0 0 0 5 0v-5A2.5 2.5 0 0 0 18.5 4zM5.5 14v6M18.5 14v6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},camera:{viewBox:"0 0 24 24",path:"M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2zM12 17a4 4 0 1 0 0-8 4 4 0 0 0 0 8z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},webcam:{viewBox:"0 0 24 24",path:"M12 14a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM12 14v8M8 22h8",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},keyboard:{viewBox:"0 0 24 24",path:"M20 5H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2zM6 9h.01M10 9h.01M14 9h.01M18 9h.01M6 13h.01M18 13h.01M8 17h8",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},mouse:{viewBox:"0 0 24 24",path:"M6 3h12a3 3 0 0 1 3 3v12a3 3 0 0 1-3 3H6a3 3 0 0 1-3-3V6a3 3 0 0 1 3-3zM12 3v6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},gamepad:{viewBox:"0 0 24 24",path:"M6 12h4M8 10v4M15 13h.01M18 11h.01M17.32 5H6.68a4 4 0 0 0-3.978 3.59l-.891 9a4 4 0 0 0 6.9 3.31l1.29-1.29 1.29 1.29a4 4 0 0 0 6.9-3.31l-.891-9A4 4 0 0 0 17.32 5z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},joystick:{viewBox:"0 0 24 24",path:"M21 17a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-2zM6 15v-2M12 15V5m0 0l4 4m-4-4L8 9",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"hard-drive":{viewBox:"0 0 24 24",path:"M22 12H2M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11zM6 16h.01M10 16h.01",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},usb:{viewBox:"0 0 24 24",path:"M16 4h2a2 2 0 0 1 2 2v1M6 4h2a2 2 0 0 1 2 2v1M10 16v-5a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2zM20 16v-5a2 2 0 0 0-2-2h-2a2 2 0 0 0-2 2v5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2zM12 12v8",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},router:{viewBox:"0 0 24 24",path:"M20 14H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2zM6 18h.01M12 7a5 5 0 0 0-5 5M19 7a5 5 0 0 0-5-5M12 7V2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},printer:{viewBox:"0 0 24 24",path:"M6 9V2h12v7M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2M6 14h12v8H6z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},cpu:{viewBox:"0 0 24 24",path:"M18 4H6a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2zM9 9h6v6H9zM9 1v3M15 1v3M9 20v3M15 20v3M20 9h3M20 14h3M1 9h3M1 14h3",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},battery:{viewBox:"0 0 24 24",path:"M17 6H5a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2zM23 13v-2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"battery-charging":{viewBox:"0 0 24 24",path:"M5 18H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3.19M15 6h2a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-3.19M23 13v-2M11 6l-4 6h6l-4 6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},plug:{viewBox:"0 0 24 24",path:"M12 22v-5M9 8V2M15 8V2M18 8H6a2 2 0 0 0-2 2v1a8 8 0 0 0 16 0v-1a2 2 0 0 0-2-2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}},he={"chart-line":{viewBox:"0 0 24 24",path:"M3 3v18h18M18 9l-5 5-4-4-3 3",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"chart-bar":{viewBox:"0 0 24 24",path:"M12 20V10M6 20v-4M18 20V4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"chart-bar-horizontal":{viewBox:"0 0 24 24",path:"M4 12h10M4 6h4M4 18h14",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"chart-pie":{viewBox:"0 0 24 24",path:"M21.21 15.89A10 10 0 1 1 8 2.83M22 12A10 10 0 0 0 12 2v10z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"chart-area":{viewBox:"0 0 24 24",path:"M3 3v18h18M7 12l5-5 4 4 5-5v12H7z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"chart-candlestick":{viewBox:"0 0 24 24",path:"M9 5v4M9 11v8M15 5v8M15 17v2M7 9h4v2H7zM13 13h4v4h-4z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"trending-up":{viewBox:"0 0 24 24",path:"M23 6l-9.5 9.5-5-5L1 18",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"trending-down":{viewBox:"0 0 24 24",path:"M23 18l-9.5-9.5-5 5L1 6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"trending-neutral":{viewBox:"0 0 24 24",path:"M22 12H2M18 8l4 4-4 4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},wallet:{viewBox:"0 0 24 24",path:"M21 12V7a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-1M21 12H17a2 2 0 0 1 0-4h4M17 12h.01",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"credit-card":{viewBox:"0 0 24 24",path:"M21 4H3a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h18a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2zM1 10h22",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},banknote:{viewBox:"0 0 24 24",path:"M2 8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8zM12 14a2 2 0 1 0 0-4 2 2 0 0 0 0 4zM6 10h.01M18 14h.01",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},coins:{viewBox:"0 0 24 24",path:"M8 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM8 12c2.2 0 4 1.8 4 4s-1.8 4-4 4-4-1.8-4-4 1.8-4 4-4zM16 8a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM16 8c2.2 0 4 1.8 4 4s-1.8 4-4 4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"dollar-sign":{viewBox:"0 0 24 24",path:"M12 1v22M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"pound-sign":{viewBox:"0 0 24 24",path:"M18 5H9a4 4 0 0 0-4 4v3a4 4 0 0 0 4 4h3M5 12h10M18 19H7",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"euro-sign":{viewBox:"0 0 24 24",path:"M4 10h12M4 14h12M17 5a8 8 0 0 0-14 5.5 8 8 0 0 0 14 5.5",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},bitcoin:{viewBox:"0 0 24 24",path:"M11.767 19.089c4.924.868 6.14-6.025 1.216-6.894m-1.216 6.894L5.86 18.047m5.908 1.042-.347 1.97m1.563-8.864c4.924.869 6.14-6.025 1.215-6.893m-1.215 6.893-3.94-.694m5.155-6.2L8.29 4.26m5.908 1.042.348-1.97M7.48 20.364l3.126-17.727",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},bank:{viewBox:"0 0 24 24",path:"M3 21h18M4 21V10M8 21V10M12 21V10M16 21V10M20 21V10M12 3L2 8h20z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},vault:{viewBox:"0 0 24 24",path:"M3 5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5zM12 12m-3 0a3 3 0 1 0 6 0 3 3 0 1 0-6 0M7 12h2M15 12h2M12 9V7M12 17v-2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"piggy-bank":{viewBox:"0 0 24 24",path:"M19 5c-1.5 0-2.8 1.4-3 2-3.5-1.5-11-.3-11 5 0 1.8 0 3 2 4.5V20h4v-2h3v2h4v-4c1-.5 1.7-1 2-2h2v-4h-2c0-1-.5-1.5-1-2zM2 9v1c0 1.1.9 2 2 2h1",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},safe:{viewBox:"0 0 24 24",path:"M4 4h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2zM12 12m-2 0a2 2 0 1 0 4 0 2 2 0 1 0-4 0M16 8h.01M16 16h.01",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},receipt:{viewBox:"0 0 24 24",path:"M4 2v20l3-2 3 2 3-2 3 2 3-2 3 2V2l-3 2-3-2-3 2-3-2-3 2-3-2zM8 10h8M8 14h4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},invoice:{viewBox:"0 0 24 24",path:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8zM14 2v6h6M8 13h8M8 17h8M8 9h2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},briefcase:{viewBox:"0 0 24 24",path:"M20 7H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2zM16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},percent:{viewBox:"0 0 24 24",path:"M19 5L5 19M6.5 9a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5zM17.5 20a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},calculator:{viewBox:"0 0 24 24",path:"M18 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2zM8 6h8M8 10h.01M12 10h.01M16 10h.01M8 14h.01M12 14h.01M16 14h.01M8 18h.01M12 18h.01M16 18h.01",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},growth:{viewBox:"0 0 24 24",path:"M12 20V12M12 12l-4 4M12 12l4 4M8 20h8M3 8l4-4 4 4 5-5 5 5",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},investment:{viewBox:"0 0 24 24",path:"M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6M2 12h4M18 12h4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},scale:{viewBox:"0 0 24 24",path:"M12 3v18M3 6l3 10a6 6 0 0 0 6 0L15 6M9 6l6 0M21 6l-3 10a6 6 0 0 1-6 0",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}},ce={"heart-pulse":{viewBox:"0 0 24 24",path:"M19.5 12.572l-7.5 7.428-7.5-7.428A5 5 0 1 1 12 5.006a5 5 0 1 1 7.5 7.566zM3 12h4l2-4 4 8 2-4h6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},activity:{viewBox:"0 0 24 24",path:"M22 12h-4l-3 9L9 3l-3 9H2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},pulse:{viewBox:"0 0 24 24",path:"M3 12h4l2-7 4 14 2-7h6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},pill:{viewBox:"0 0 24 24",path:"M10.5 20.5l9-9a4.95 4.95 0 0 0-7-7l-9 9a4.95 4.95 0 0 0 7 7zM8.5 8.5l7 7",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"pill-bottle":{viewBox:"0 0 24 24",path:"M6 3h12v5H6zM5 8h14a1 1 0 0 1 1 1v11a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V9a1 1 0 0 1 1-1zM10 14h4M12 12v4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},capsule:{viewBox:"0 0 24 24",path:"M8 8a4 4 0 0 1 8 0v8a4 4 0 0 1-8 0V8zM8 12h8",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},syringe:{viewBox:"0 0 24 24",path:"M18 2l4 4M15 5l6 6M8 6l10 10-4 4L4 10zM2 22l6-6M7 11l2 2M11 7l2 2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},vaccine:{viewBox:"0 0 24 24",path:"M14 2l4 4M8 8l8 8M3 17l4 4M6.5 6.5L20 20M12 12l2.5-2.5",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},stethoscope:{viewBox:"0 0 24 24",path:"M4.8 2.3A.3.3 0 1 0 5 2H4a2 2 0 0 0-2 2v5a6 6 0 0 0 6 6v0a6 6 0 0 0 6-6V4a2 2 0 0 0-2-2h-1a.2.2 0 1 0 .3.3M8 15v1a6 6 0 0 0 6 6v0a6 6 0 0 0 6-6v-4M22 10a2 2 0 1 0-4 0 2 2 0 0 0 4 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"thermometer-medical":{viewBox:"0 0 24 24",path:"M14 4v10.54a4 4 0 1 1-4 0V4a2 2 0 0 1 4 0zM12 14v2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},bandage:{viewBox:"0 0 24 24",path:"M18 2l4 4-14 14-4-4zM10.5 7.5l6 6M8.5 9.5l1 1M14.5 15.5l1 1M12.5 11.5l1 1",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},hospital:{viewBox:"0 0 24 24",path:"M3 21h18M5 21V7l7-4 7 4v14M9 21v-6h6v6M10 9h4M12 7v4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},ambulance:{viewBox:"0 0 24 24",path:"M10 10H6M8 8v4M15 21a2 2 0 1 0 0-4 2 2 0 0 0 0 4zM7 21a2 2 0 1 0 0-4 2 2 0 0 0 0 4zM21 15V8a2 2 0 0 0-2-2h-3l-2-3H6a2 2 0 0 0-2 2v10M21 9h-4a2 2 0 0 0-2 2v4h6z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"first-aid":{viewBox:"0 0 24 24",path:"M20 6H4a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2zM9 12h6M12 9v6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"medical-cross":{viewBox:"0 0 24 24",path:"M8 3h8v6h5v6h-5v6H8v-6H3V9h5z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},dna:{viewBox:"0 0 24 24",path:"M2 15c6.667-6 13.333 0 20-6M9 22c1.798-1.998 2.518-3.995 2.807-5.993M15 2c-1.798 1.998-2.518 3.995-2.807 5.993M2 9c6.667 6 13.333 0 20 6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},microscope:{viewBox:"0 0 24 24",path:"M6 18h8M3 22h18M14 22a7 7 0 1 0 0-14M9 14h.01M9 6v8M6 6h6l-3-4z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"test-tube":{viewBox:"0 0 24 24",path:"M14.5 2v17.5c0 1.4-1.1 2.5-2.5 2.5s-2.5-1.1-2.5-2.5V2M7 2h10M8.5 14h7",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},brain:{viewBox:"0 0 24 24",path:"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18ZM12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18ZM12 5v13",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},lungs:{viewBox:"0 0 24 24",path:"M6.081 20C2.477 20 2 15.5 2 12.5S4 6 4 6s2-1 2-3M17.92 20c3.603 0 4.08-4.5 4.08-7.5S20 6 20 6s-2-1-2-3M12 3v17M12 12c-4 0-7-2-7-2M12 12c4 0 7-2 7-2M12 16c-4 0-7-2-7-2M12 16c4 0 7-2 7-2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},bone:{viewBox:"0 0 24 24",path:"M17 10c.7-.7 1.69 0 2.5 0a2.5 2.5 0 1 0 0-5 .5.5 0 0 1-.5-.5 2.5 2.5 0 1 0-5 0c0 .81.7 1.8 0 2.5l-7 7c-.7.7-1.69 0-2.5 0a2.5 2.5 0 0 0 0 5c.28 0 .5.22.5.5a2.5 2.5 0 1 0 5 0c0-.81-.7-1.8 0-2.5Z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},tooth:{viewBox:"0 0 24 24",path:"M12 2C7 2 4 5 4 8c0 5 1 8 2 10 .5 1 1 4 2.5 4s1.5-2 3.5-2 2 2 3.5 2 2-3 2.5-4c1-2 2-5 2-10 0-3-3-6-8-6z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"eye-medical":{viewBox:"0 0 24 24",path:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8zM12 9v6M9 12h6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},wheelchair:{viewBox:"0 0 24 24",path:"M12 10a2 2 0 1 0 0-4 2 2 0 0 0 0 4zM15 21a4 4 0 1 0-5-6M12 10v4h4l2 5",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},crutch:{viewBox:"0 0 24 24",path:"M5 5l7 7M7 3l7 7M19 19l-7-7M21 17l-7-7M11 11l-6 6M13 13l-6 6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"scale-weight":{viewBox:"0 0 24 24",path:"M12 3a9 9 0 0 0-9 9 9 9 0 0 0 9 9 9 9 0 0 0 9-9 9 9 0 0 0-9-9zM12 7v5l3 3",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"blood-drop":{viewBox:"0 0 24 24",path:"M12 2c-4 4-7 7-7 11a7 7 0 0 0 14 0c0-4-3-7-7-11z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},heartbeat:{viewBox:"0 0 24 24",path:"M3 12h4l3-9 4 18 3-9h4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}},de={football:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM12 6l4 4-4 4-4-4zM6 12l4-4v8zM18 12l-4 4V8z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},soccer:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM12 8l2.5 2-1 3h-3l-1-3zM12 2v3M22 12h-3M12 22v-3M2 12h3M4.93 4.93l2.12 2.12M19.07 4.93l-2.12 2.12M4.93 19.07l2.12-2.12M19.07 19.07l-2.12-2.12",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},basketball:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM2.05 11h19.9M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},tennis:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM3.5 8.5c4-1 8 0 12 4M3.5 15.5c4 1 8 0 12-4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},baseball:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM5 5c1.5 2 2.5 4 2.5 7s-1 5-2.5 7M19 5c-1.5 2-2.5 4-2.5 7s1 5 2.5 7",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},volleyball:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM12 2v10M12 12l8.66 5M12 12l-8.66 5",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},golf:{viewBox:"0 0 24 24",path:"M12 18v4M8 22h8M12 2v16M12 6l6-2-6 8",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},bowling:{viewBox:"0 0 24 24",path:"M12 22a8 8 0 1 0 0-16 8 8 0 0 0 0 16zM12 6V2M10 9h.01M14 9h.01M12 12h.01",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},dumbbell:{viewBox:"0 0 24 24",path:"M6.5 6.5h11M17.5 4v5M6.5 4v5M17.5 15v5M6.5 15v5M4 6v3a1 1 0 0 0 1 1h1.5M4 18v-3a1 1 0 0 1 1-1h1.5M20 6v3a1 1 0 0 1-1 1h-1.5M20 18v-3a1 1 0 0 0-1-1h-1.5M6.5 17.5h11",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},barbell:{viewBox:"0 0 24 24",path:"M4 12h16M6 8v8M10 6v12M14 6v12M18 8v8",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},kettlebell:{viewBox:"0 0 24 24",path:"M12 6a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM17 22H7a5 5 0 0 1-1-9.9V10a6 6 0 0 1 12 0v2.1a5 5 0 0 1-1 9.9z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},running:{viewBox:"0 0 24 24",path:"M13 4a2 2 0 1 0 0-4 2 2 0 0 0 0 4zM5 22l3-9 3 3v6M10 6l5 3 4-1M4 13l5 3",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},swimming:{viewBox:"0 0 24 24",path:"M2 20c.9 0 1.6-.4 2.2-.9.8-.7 1.9-.7 2.7 0 1.1 1 2.8 1 3.9 0 .8-.7 1.9-.7 2.7 0 1.1 1 2.8 1 3.9 0 .8-.7 1.9-.7 2.7 0 .6.5 1.3.9 2.2.9M8 16l-2-4 4-2 6 4 4-3M15 4a2 2 0 1 0 0-4 2 2 0 0 0 0 4z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},cycling:{viewBox:"0 0 24 24",path:"M5 18a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM19 18a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM5 14l4-4 3 3 4-4M12 6a2 2 0 1 0 0-4 2 2 0 0 0 0 4z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},yoga:{viewBox:"0 0 24 24",path:"M12 4a2 2 0 1 0 0-4 2 2 0 0 0 0 4zM4 17l4-4-2-4 6-3 6 3-2 4 4 4M8 22l4-5 4 5",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},trophy:{viewBox:"0 0 24 24",path:"M6 9H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h2M18 9h2a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2h-2M6 3v6a6 6 0 0 0 12 0V3M12 15v4M8 22h8M8 19h8",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},medal:{viewBox:"0 0 24 24",path:"M12 15a6 6 0 1 0 0 12 6 6 0 0 0 0-12zM8 3l4 6 4-6M8 3h8M12 9v6M9 19.5l3 1.5 3-1.5",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},award:{viewBox:"0 0 24 24",path:"M12 15a7 7 0 1 0 0-14 7 7 0 0 0 0 14zM8.21 13.89L7 23l5-3 5 3-1.21-9.12",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},crown:{viewBox:"0 0 24 24",path:"M2 17l3-10 5 6 2-8 2 8 5-6 3 10H2zM4 21h16",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},podium:{viewBox:"0 0 24 24",path:"M5 10h4v12H5zM10 6h4v16h-4zM15 14h4v8h-4zM12 2v4M10 4h4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},stopwatch:{viewBox:"0 0 24 24",path:"M12 5a9 9 0 1 0 0 18 9 9 0 0 0 0-18zM12 9v5l3 3M10 2h4M21 6l-2-2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},whistle:{viewBox:"0 0 24 24",path:"M5 16a4 4 0 1 0 8 0 4 4 0 0 0-8 0zM2 12l7-4h8l3 4-3 4M18 8l4-4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},target:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM12 6a6 6 0 1 0 0 12 6 6 0 0 0 0-12zM12 10a2 2 0 1 0 0 4 2 2 0 0 0 0-4z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"boxing-glove":{viewBox:"0 0 24 24",path:"M5 8c0-3 2-5 5-5h4c3 0 5 2 5 5v5c0 4-3 7-7 7s-7-3-7-7V8zM9 5v4M12 20v2M9 12h6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},racket:{viewBox:"0 0 24 24",path:"M12 2a6 6 0 0 0-6 6v4a6 6 0 0 0 12 0V8a6 6 0 0 0-6-6zM12 18v4M8 8h8M8 12h8",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},skate:{viewBox:"0 0 24 24",path:"M4 16V6a2 2 0 0 1 2-2h8l4 4v8M2 16h18v2a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-2zM6 20v2M16 20v2M10 10h4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},ski:{viewBox:"0 0 24 24",path:"M5 16l14-6M3 21l18-8M12 2a2 2 0 1 0 0 4 2 2 0 0 0 0-4zM12 8l-4 8M14 10l2 4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},surfboard:{viewBox:"0 0 24 24",path:"M21 3L3 21M17 3c3 3 4 8 1 15L3 21c7-3 12-2 15 1M12 12l-4 4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},mountain:{viewBox:"0 0 24 24",path:"M8 21l4-10 3 6 2-4 4 8H3l5-10 4 10z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},tent:{viewBox:"0 0 24 24",path:"M12 2L2 20h20L12 2zM12 2v18M7 14l5-6 5 6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},compass:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM16.24 7.76l-2.12 6.36-6.36 2.12 2.12-6.36z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},fishing:{viewBox:"0 0 24 24",path:"M18 2l-3 3v3l-4 4-5-2-4 4v5h5l4-4-2-5 4-4h3l3-3M12 22c-2 0-3-1-3-3M9 19c-2 0-3-1-3-3",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}},ue={house:{viewBox:"0 0 24 24",path:"M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V9zM9 22V12h6v10",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},home:{viewBox:"0 0 24 24",path:"M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V9z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},cabin:{viewBox:"0 0 24 24",path:"M2 20h20M4 20V10l8-8 8 8v10M10 20v-6h4v6M12 2v2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},apartment:{viewBox:"0 0 24 24",path:"M4 21V4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v17M8 6h2M14 6h2M8 10h2M14 10h2M8 14h2M14 14h2M10 21v-4h4v4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},office:{viewBox:"0 0 24 24",path:"M3 21h18M5 21V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16M9 21v-4h6v4M9 7h.01M15 7h.01M9 11h.01M15 11h.01M9 15h.01M15 15h.01",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},store:{viewBox:"0 0 24 24",path:"M4 3h16l1 6H3l1-6zM3 9v10a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V9M10 21v-6h4v6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},warehouse:{viewBox:"0 0 24 24",path:"M3 21h18M4 21V8l8-5 8 5v13M9 17h6v4H9zM9 12h6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},factory:{viewBox:"0 0 24 24",path:"M2 21h20M5 21V11l6 4V9l6 4V5a2 2 0 0 1 2-2h0a2 2 0 0 1 2 2v16M8 21v-3M12 21v-3M16 21v-3",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},hotel:{viewBox:"0 0 24 24",path:"M4 21V3a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v18M8 5h2M14 5h2M8 9h2M14 9h2M8 13h2M14 13h2M10 21v-4h4v4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},school:{viewBox:"0 0 24 24",path:"M2 22h20M12 2l10 6v14M2 8l10-6M12 8v14M4 10v12M20 10v12M8 14h.01M16 14h.01M10 22v-4h4v4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},university:{viewBox:"0 0 24 24",path:"M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},library:{viewBox:"0 0 24 24",path:"M4 21h16M5 21V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16M9 7h6M9 11h6M9 15h4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},museum:{viewBox:"0 0 24 24",path:"M2 20h20M4 20V10M20 20V10M12 2L2 8h20L12 2zM8 20v-6h3v6M13 20v-6h3v6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},court:{viewBox:"0 0 24 24",path:"M2 20h20M4 20V8l8-6 8 6v12M10 20v-6h4v6M6 10h12M12 4v6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},church:{viewBox:"0 0 24 24",path:"M18 22H6a2 2 0 0 1-2-2V9l8-7 8 7v11a2 2 0 0 1-2 2zM12 2v4M10 4h4M10 22v-5a2 2 0 0 1 4 0v5",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},mosque:{viewBox:"0 0 24 24",path:"M3 21h18M5 21v-8c0-2 .5-4 2-6 1.5 2 2 4 2 6v8M15 21v-8c0-2 .5-4 2-6 1.5 2 2 4 2 6v8M12 3a4 4 0 0 1 4 4v14M12 3a4 4 0 0 0-4 4v14M12 1v2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},temple:{viewBox:"0 0 24 24",path:"M2 22h20M4 22V12h4v10M16 22V12h4v10M8 22V8h8v14M12 2l6 6H6l6-6M10 14h4M10 18h4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},castle:{viewBox:"0 0 24 24",path:"M2 22h20M4 22V10h4V6H6V2h3v2h2V2h2v2h2V2h3v4h-2v4h4v12M10 22v-5h4v5M4 6h4M16 6h4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},fortress:{viewBox:"0 0 24 24",path:"M2 20h20M4 20V8h16v12M8 8V4h2v4M14 8V4h2v4M4 4h4M16 4h4M8 20v-4h3v4M13 20v-4h3v4M7 12h2M15 12h2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},tower:{viewBox:"0 0 24 24",path:"M8 22V4a4 4 0 0 1 8 0v18M8 8h8M8 14h8M10 22v-4h4v4M12 1v1",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},lighthouse:{viewBox:"0 0 24 24",path:"M7 22l2-16h6l2 16M9 6V3a3 3 0 0 1 6 0v3M2 11h5M17 11h5M9 12h6M10 18h4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},bridge:{viewBox:"0 0 24 24",path:"M2 18h20M4 14c0-2 2-4 4-4s4 2 4 4c0-2 2-4 4-4s4 2 4 4M4 18v-4M20 18v-4M12 18v-4M8 10V6M16 10V6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},stadium:{viewBox:"0 0 24 24",path:"M2 16c0-3 4.5-5 10-5s10 2 10 5v2c0 3-4.5 5-10 5s-10-2-10-5v-2zM2 12c0-3 4.5-5 10-5s10 2 10 5M12 3v4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},airport:{viewBox:"0 0 24 24",path:"M21 16v-2l-8-5V3.5a1.5 1.5 0 0 0-3 0V9l-8 5v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L13 19v-5.5z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"train-station":{viewBox:"0 0 24 24",path:"M4 21h16M6 17V7a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v10M8 21v-4h3v4M13 21v-4h3v4M12 2v3M9 9h6M9 13h6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},monument:{viewBox:"0 0 24 24",path:"M8 22h8M10 22V10L12 2l2 8v12M6 18h12M8 14h8",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},obelisk:{viewBox:"0 0 24 24",path:"M7 22l2-18h6l2 18M12 2l-1 2h2l-1-2M9 8h6M9 14h6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},arch:{viewBox:"0 0 24 24",path:"M4 22V10a8 8 0 0 1 16 0v12M4 8h16M4 14h16M8 22v-8M16 22v-8",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},windmill:{viewBox:"0 0 24 24",path:"M7 22l3-10h4l3 10M12 12V3M12 6l6-3M12 6L6 3M12 6l6 3M12 6L6 9M10 16h4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},skyscraper:{viewBox:"0 0 24 24",path:"M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18M2 22h20M10 6h4M10 10h4M10 14h4M10 18h4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},pyramid:{viewBox:"0 0 24 24",path:"M12 2L2 22h20L12 2zM12 2v20M7 12h10",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},dome:{viewBox:"0 0 24 24",path:"M2 22h20M4 22v-6a8 8 0 0 1 16 0v6M12 2v6M12 2a3 3 0 0 1 0 6M10 14h4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},barn:{viewBox:"0 0 24 24",path:"M3 21h18M5 21V11l7-8 7 8v10M10 21v-5h4v5M9 11h6M12 3v2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}},pe={smile:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM8 9h.01M16 9h.01M8 14s1.5 2 4 2 4-2 4-2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},grin:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM8 9h.01M16 9h.01M6 13a6 6 0 0 0 12 0H6z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},laugh:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM7 9c0-.6.4-1 1-1s1 .4 1 1M15 9c0-.6.4-1 1-1s1 .4 1 1M7 13h10a5 5 0 0 1-10 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},joy:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM7 9l2 1M15 9l2 1M6 13h12a6 6 0 0 1-12 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},wink:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM8 9h.01M14 9h4M8 14s1.5 2 4 2 4-2 4-2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},blush:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM8 9h.01M16 9h.01M8 14s1.5 2 4 2 4-2 4-2M5 13h2M17 13h2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"heart-eyes":{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM8 14s1.5 2 4 2 4-2 4-2M6.5 10c.5-1 1.5-2 2.5-1s-1 2.5-2.5 1zM15 10c.5-1 1.5-2 2.5-1s-1 2.5-2.5 1z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"star-eyes":{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM8 14s1.5 2 4 2 4-2 4-2M8 9l.5-1 .5 1 1-.5-.5 1 .5 1-1-.5-.5 1-.5-1-1 .5.5-1-.5-1zM16 9l.5-1 .5 1 1-.5-.5 1 .5 1-1-.5-.5 1-.5-1-1 .5.5-1-.5-1z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},sad:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM8 9h.01M16 9h.01M16 16s-1.5-2-4-2-4 2-4 2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},cry:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM8 9h.01M16 9h.01M16 16s-1.5-2-4-2-4 2-4 2M8 11v2M16 11v2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},sob:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM6 9l3 1M18 9l-3 1M16 17s-1.5-2-4-2-4 2-4 2M7 12l1 6M17 12l-1 6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},disappointed:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM6 8l4 2M18 8l-4 2M16 16s-1.5-2-4-2-4 2-4 2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},angry:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM6 8l4 2M18 8l-4 2M9 15h6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},rage:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM5 7l5 3M19 7l-5 3M9 16h6M9 16l1-2M15 16l-1-2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},annoyed:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM6 8l4 1M18 8l-4 1M8 9h.01M16 9h.01M9 15h6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},surprised:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM8 8v1M16 8v1M12 13a2 2 0 1 0 0 4 2 2 0 0 0 0-4z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},shocked:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM7 8l2 1M17 8l-2 1M12 13v5",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},astonished:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM6 8l4 1M18 8l-4 1M12 12a3 3 0 1 0 0 6 3 3 0 0 0 0-6z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},thinking:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM8 9h.01M16 9h.01M10 15h4c0 1-1 2-2 2s-2-1-2-2zM19 9c1 0 2-1 2-2s-1-2-2-2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},confused:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM8 9h.01M16 9h.01M9 15c2-2 4 0 6-2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},neutral:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM8 9h.01M16 9h.01M8 15h8",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},expressionless:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM7 9h3M14 9h3M8 15h8",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},cool:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM5 10h5l1-2h2l1 2h5M5 10c0 1 1 2 2.5 2s2.5-1 2.5-2M14 10c0 1 1 2 2.5 2s2.5-1 2.5-2M8 16s1.5 2 4 2 4-2 4-2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},nerd:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM6 9a2 2 0 1 0 4 0 2 2 0 0 0-4 0zM14 9a2 2 0 1 0 4 0 2 2 0 0 0-4 0zM10 9h4M8 15s1.5 1 4 1 4-1 4-1",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},tongue:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM8 9h.01M16 9h.01M8 13h8M10 13v3c0 1 1 2 2 2s2-1 2-2v-3",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},silly:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM7 9h2M17 9l-2-1M7 13c2 0 3 3 5 3s3-3 5-3",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},zany:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM8 8v2M15 8l2 2M8 14h8c0 2-2 4-4 4s-4-2-4-4z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},sick:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM8 9h.01M16 9h.01M8 15c2 1 6-1 8 0M18 5c1.5 1.5 1.5 3.5 0 5",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},sleepy:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM7 10c.5-.5 1.5-.5 2 0M15 10c.5-.5 1.5-.5 2 0M12 14a2 2 0 1 0 0 4 2 2 0 0 0 0-4zM18 4l2 2M20 4h-2v2",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},dead:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM6 8l4 4M10 8l-4 4M14 8l4 4M18 8l-4 4M8 16h8",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},mask:{viewBox:"0 0 24 24",path:"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM8 9h.01M16 9h.01M4 13h16M5 14c1 2 3 4 7 4s6-2 7-4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}},me={car:{viewBox:"0 0 24 24",path:"M5 11l1.5-4.5h11L19 11M5 17h1m13 0h1M6 13v4m12-4v4M5 17h14a1 1 0 001-1v-5H4v5a1 1 0 001 1z M7.5 6.5l.5 1h8l.5-1a1 1 0 00-1-1H8.5a1 1 0 00-1 1z M7 16a1 1 0 100-2 1 1 0 000 2z M17 16a1 1 0 100-2 1 1 0 000 2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},truck:{viewBox:"0 0 24 24",path:"M1 3h15v13H1zM16 8h4l3 3v5h-7V8z M5.5 21a2.5 2.5 0 100-5 2.5 2.5 0 000 5z M18.5 21a2.5 2.5 0 100-5 2.5 2.5 0 000 5z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},van:{viewBox:"0 0 24 24",path:"M3 6h13v11H3z M16 6h2l3 4v7h-5V6z M7 20.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z M17 20.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z M3 10h13",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},motorcycle:{viewBox:"0 0 24 24",path:"M5 19a3 3 0 100-6 3 3 0 000 6z M19 19a3 3 0 100-6 3 3 0 000 6z M12 4l-3 7h5.5L18 8m-4 3l3 8",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},bicycle:{viewBox:"0 0 24 24",path:"M5 19a3 3 0 100-6 3 3 0 000 6z M19 19a3 3 0 100-6 3 3 0 000 6z M12 11l2-5h3M12 19v-8m0 0L9 8M12 11l3-3",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},bus:{viewBox:"0 0 24 24",path:"M4 6a2 2 0 012-2h12a2 2 0 012 2v11a3 3 0 01-3 3H7a3 3 0 01-3-3V6z M4 10h16M8 20v-2M16 20v-2M8 14h.01M16 14h.01M4 6h16",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},taxi:{viewBox:"0 0 24 24",path:"M5 11l1.5-4.5h11L19 11M5 17h1m13 0h1M6 13v4m12-4v4M5 17h14a1 1 0 001-1v-5H4v5a1 1 0 001 1z M9 4h6v2H9V4z M7 16a1 1 0 100-2 1 1 0 000 2z M17 16a1 1 0 100-2 1 1 0 000 2z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},parking:{viewBox:"0 0 24 24",path:"M4 4h16a2 2 0 012 2v12a2 2 0 01-2 2H4a2 2 0 01-2-2V6a2 2 0 012-2z M9 8v8M9 8h3.5a2.5 2.5 0 010 5H9",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},fuel:{viewBox:"0 0 24 24",path:"M3 4h10v12H3z M13 7h2a2 2 0 012 2v7a2 2 0 002 2M14 7V4M3 10h10M5 20v-4M11 20v-4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},garage:{viewBox:"0 0 24 24",path:"M2 9l10-7 10 7v11a2 2 0 01-2 2H4a2 2 0 01-2-2V9z M7 21V13h10v8M2 9h20",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},road:{viewBox:"0 0 24 24",path:"M6 4h2v16H6zM16 4h2v16h-2zM12 4v4M12 12v4M12 20v1",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}};var fe={code:{viewBox:"0 0 24 24",path:"M16 18l6-6-6-6M8 6l-6 6 6 6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},bold:{viewBox:"0 0 24 24",path:"M6 4h8a4 4 0 0 1 4 4 4 4 0 0 1-4 4H6V4zm0 8h9a4 4 0 0 1 4 4 4 4 0 0 1-4 4H6v-8z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},italic:{viewBox:"0 0 24 24",path:"M19 4h-9M14 20H5M15 4L9 20",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},underline:{viewBox:"0 0 24 24",path:"M6 3v7a6 6 0 0 0 6 6 6 6 0 0 0 6-6V3M4 21h16",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},strikethrough:{viewBox:"0 0 24 24",path:"M17.3 4.9c-2.3-.6-4.4-1-6.2-.9-2.7.1-5.3 1.1-6.6 3.1-.5.8-.7 1.7-.7 2.6 0 1.7.8 3.1 2 4M3 12h18M13 20c2 0 3.5-.5 4.5-1.5 1-.9 1.5-2.2 1.5-3.5 0-1.3-.5-2.5-1.4-3.4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"heading-1":{viewBox:"0 0 24 24",path:"M4 12h8m-8 6V6m8 12V6m5 6h3m0 0V6m0 6v6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"heading-2":{viewBox:"0 0 24 24",path:"M4 12h8m-8 6V6m8 12V6m5 10.5c0-2.5 4-2.5 4 0s-4 2.5-4 5m4 0h-4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"heading-3":{viewBox:"0 0 24 24",path:"M4 12h8m-8 6V6m8 12V6m5 4.5h3a1.5 1.5 0 0 1 0 3 1.5 1.5 0 0 1 0 3h-3",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"list-bullet":{viewBox:"0 0 24 24",path:"M8 6h13M8 12h13M8 18h13M3 6h.01M3 12h.01M3 18h.01",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"list-numbered":{viewBox:"0 0 24 24",path:"M10 6h11M10 12h11M10 18h11M4 6h1v4M4 10h2M6 18H4c0-1 2-2 2-3s-1-1.5-2-1",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},quote:{viewBox:"0 0 24 24",path:"M3 21c3 0 7-1 7-8V5c0-1.25-.756-2.017-2-2H4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2 1 0 1 0 1 1v1c0 1-1 2-2 2s-1 .008-1 1.031V20c0 1 0 1 1 1zM15 21c3 0 7-1 7-8V5c0-1.25-.757-2.017-2-2h-4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2h.75c0 2.25.25 4-2.75 4v3c0 1 0 1 1 1z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"code-inline":{viewBox:"0 0 24 24",path:"M16 18l6-6-6-6M8 6l-6 6 6 6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"code-block":{viewBox:"0 0 24 24",path:"M16 18l6-6-6-6M8 6l-6 6 6 6M14 4l-4 16",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"link-add":{viewBox:"0 0 24 24",path:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"image-add":{viewBox:"0 0 24 24",path:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4M17 8l-5-5-5 5M12 3v12",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},undo:{viewBox:"0 0 24 24",path:"M3 7v6h6M21 17a9 9 0 0 0-9-9 9 9 0 0 0-9 9",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},redo:{viewBox:"0 0 24 24",path:"M21 7v6h-6M3 17a9 9 0 0 1 9-9 9 9 0 0 1 9 9",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"text-left":{viewBox:"0 0 24 24",path:"M3 6h18M3 12h12M3 18h18",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"text-center":{viewBox:"0 0 24 24",path:"M3 6h18M6 12h12M3 18h18",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"text-right":{viewBox:"0 0 24 24",path:"M3 6h18M9 12h12M3 18h18",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},indent:{viewBox:"0 0 24 24",path:"M3 6h18M3 12h18M3 18h18M3 9l4 3-4 3",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},outdent:{viewBox:"0 0 24 24",path:"M3 6h18M3 12h18M3 18h18M7 9l-4 3 4 3",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},embed:{viewBox:"0 0 24 24",path:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10zM8 10h8M8 14h4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"clear-format":{viewBox:"0 0 24 24",path:"M4 7V4h16v3M9 20h6M12 4v16",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}};const ve={...G,...X,...ee,...te,...oe,...se,...ne,...ie,...re,...ae,...le,...he,...ce,...de,...ue,...pe,...me,...fe},ke={ui:{name:"UI",description:"Core user interface icons",icons:Object.keys(G)},communication:{name:"Communication",description:"Messaging and notifications",icons:Object.keys(X)},media:{name:"Media",description:"Audio, video, and images",icons:Object.keys(ee)},files:{name:"Files",description:"Documents and file operations",icons:Object.keys(te)},social:{name:"Social",description:"Social interactions and sharing",icons:Object.keys(oe)},commerce:{name:"Commerce",description:"Shopping and payments",icons:Object.keys(se)},status:{name:"Status",description:"Indicators and alerts",icons:Object.keys(ne)},navigation:{name:"Navigation",description:"Directional and navigation",icons:Object.keys(ie)},seasonal:{name:"Seasonal",description:"Festive and holiday icons",icons:Object.keys(re)},weather:{name:"Weather",description:"Weather conditions and meteorology",icons:Object.keys(ae)},devices:{name:"Devices",description:"Electronic devices and hardware",icons:Object.keys(le)},finance:{name:"Finance",description:"Financial and charts",icons:Object.keys(he)},health:{name:"Health",description:"Medical and wellness",icons:Object.keys(ce)},sport:{name:"Sport",description:"Sports and fitness",icons:Object.keys(de)},buildings:{name:"Buildings",description:"Architecture and structures",icons:Object.keys(ue)},emojis:{name:"Emojis",description:"Emoji expressions and faces",icons:Object.keys(pe)},transport:{name:"Transport",description:"Vehicles and transportation",icons:Object.keys(me)},code:{name:"Code & Editor",description:"Text editing, formatting, and code icons",icons:Object.keys(fe)}},ge="http://www.w3.org/2000/svg";const _e=new class{constructor(){this._icons={...ve},this._categories={...ke}}render(e,t={}){const o=this._icons[e];if(!o)return console.warn(`Icon "${e}" not found`),null;const{size:s=24,class:n="",colour:i=null,color:r=null,attrs:a={}}=t,l=document.createElementNS(ge,"svg");l.setAttribute("viewBox",o.viewBox||"0 0 24 24"),l.setAttribute("width",s),l.setAttribute("height",s),l.setAttribute("fill",o.fill||"none"),l.setAttribute("aria-hidden","true");const h=["dm-icon"];if(n&&h.push(n),l.setAttribute("class",h.join(" ")),o.stroke&&l.setAttribute("stroke",i||r||o.stroke),o.strokeWidth&&l.setAttribute("stroke-width",o.strokeWidth),o.strokeLinecap&&l.setAttribute("stroke-linecap",o.strokeLinecap),o.strokeLinejoin&&l.setAttribute("stroke-linejoin",o.strokeLinejoin),(i||r)&&"currentColor"===o.fill&&l.setAttribute("fill",i||r),Object.entries(a).forEach(([e,t])=>{l.setAttribute(e,t)}),o.path){const e=document.createElementNS(ge,"path");e.setAttribute("d",o.path),"currentColor"===o.fill&&e.setAttribute("fill",i||r||"currentColor"),l.appendChild(e)}return o.paths&&o.paths.forEach(e=>{const t=document.createElementNS(ge,"path");t.setAttribute("d",e),"currentColor"===o.fill&&t.setAttribute("fill",i||r||"currentColor"),l.appendChild(t)}),l}html(e,t={}){const o=this.render(e,t);if(!o)return"";const s=document.createElement("div");return s.appendChild(o),s.innerHTML}inject(e,t,o={}){const{position:s="prepend",...n}=o,i="string"==typeof e?document.querySelector(e):e;if(!i)return console.warn(`Target element not found: ${e}`),null;const r=this.render(t,n);if(!r)return null;switch(s){case"append":i.appendChild(r);break;case"replace":i.innerHTML="",i.appendChild(r);break;default:i.insertBefore(r,i.firstChild)}return r}scan(e=document){const t="string"==typeof e?document.querySelector(e):e;if(!t)return 0;const o=t.querySelectorAll("[data-icon]:not([data-icon-processed]):not([data-icon-processing])");let s=0;return o.forEach(e=>{if("svg"===e.tagName.toLowerCase()||e.hasAttribute("data-icon-processed")||e.querySelector("svg"))return;const t=e.dataset.icon,o=parseInt(e.dataset.iconSize,10)||24,n=e.dataset.iconColour||e.dataset.iconColor||null,i=e.dataset.iconClass||"",r=this.render(t,{size:o,colour:n,class:i});if(r){const o=e.className;o&&r.classList.add(...o.split(" ").filter(e=>e)),r.setAttribute("data-icon",t),r.setAttribute("data-icon-processed","true"),r.setAttribute("data-original-icon",t),r.setAttribute("data-icon-converted",Date.now().toString()),e.replaceWith(r),s++}else e.setAttribute("data-icon-processed","true")}),s}register(e,t){return e&&t?(t.viewBox||(t.viewBox="0 0 24 24"),t.path||t.paths?(this._icons[e]=t,this._categories.custom||(this._categories.custom={name:"Custom",description:"Custom registered icons",icons:[]}),this._categories.custom.icons.push(e),this):(console.warn(`Icon "${e}" must have a path or paths property`),this)):(console.warn("Invalid icon registration: name and definition required"),this)}unregister(e){if(this._icons[e]){if(delete this._icons[e],this._categories.custom){const t=this._categories.custom.icons.indexOf(e);t>-1&&this._categories.custom.icons.splice(t,1)}return!0}return!1}has(e){return!!this._icons[e]}get(e){return this._icons[e]||null}list(e=null){return e&&this._categories[e]?[...this._categories[e].icons]:Object.keys(this._icons)}listCategories(){return{...this._categories}}count(){return Object.keys(this._icons).length}search(e){const t=e.toLowerCase();return Object.keys(this._icons).filter(e=>e.toLowerCase().includes(t))}createSprite(){const e=document.createElementNS(ge,"svg");return e.setAttribute("xmlns",ge),e.style.display="none",Object.entries(this._icons).forEach(([t,o])=>{const s=document.createElementNS(ge,"symbol");if(s.setAttribute("id",`dm-icon-${t}`),s.setAttribute("viewBox",o.viewBox||"0 0 24 24"),o.path){const e=document.createElementNS(ge,"path");e.setAttribute("d",o.path),o.fill&&e.setAttribute("fill",o.fill),o.stroke&&(e.setAttribute("stroke",o.stroke),o.strokeWidth&&e.setAttribute("stroke-width",o.strokeWidth),o.strokeLinecap&&e.setAttribute("stroke-linecap",o.strokeLinecap),o.strokeLinejoin&&e.setAttribute("stroke-linejoin",o.strokeLinejoin)),s.appendChild(e)}o.paths&&o.paths.forEach(e=>{const t=document.createElementNS(ge,"path");t.setAttribute("d",e),o.fill&&t.setAttribute("fill",o.fill),o.stroke&&t.setAttribute("stroke",o.stroke),s.appendChild(t)}),e.appendChild(s)}),e}use(e,t={}){if(!this._icons[e])return console.warn(`Icon "${e}" not found`),null;const{size:o=24,class:s=""}=t,n=document.createElementNS(ge,"svg");n.setAttribute("width",o),n.setAttribute("height",o),n.setAttribute("aria-hidden","true");const i=["dm-icon"];s&&i.push(s),n.setAttribute("class",i.join(" "));const r=document.createElementNS(ge,"use");return r.setAttributeNS("http://www.w3.org/1999/xlink","href",`#dm-icon-${e}`),n.appendChild(r),n}};class ye{static stripeColors={none:"transparent",lighter:"var(--dm-gray-100, #f8f9fa)",light:"var(--dm-gray-200, #e9ecef)",medium:"var(--dm-gray-300, #dee2e6)",dark:"var(--dm-gray-400, #ced4da)","primary-tint":"rgba(100, 149, 237, 0.05)","success-tint":"rgba(40, 167, 69, 0.05)","warning-tint":"rgba(255, 193, 7, 0.05)","danger-tint":"rgba(220, 53, 69, 0.05)","info-tint":"rgba(23, 162, 184, 0.05)",default:"#f9f9f9"};static hoverColors={none:"transparent",lighter:"var(--dm-gray-200, #e9ecef)",light:"var(--dm-gray-300, #dee2e6)",medium:"var(--dm-gray-400, #ced4da)",dark:"var(--dm-gray-500, #adb5bd)",default:"#f0f0f0"};constructor(e,t={}){this.element="string"==typeof e?document.querySelector(e):e,this.options={data:[],columns:[],rowKey:"id",sortable:!0,multiSort:!1,defaultSort:null,filterable:!0,searchable:!0,searchPlaceholder:"Search...",pagination:!0,pageSize:10,pageSizeOptions:[10,25,50,100],selectable:!1,selectionMode:"single",editable:!1,editMode:"cell",resizable:!0,striped:!0,hover:!0,bordered:!0,responsive:!0,evenRowColor:null,oddRowColor:null,hoverColor:null,classes:{wrapper:"domma-table-wrapper",table:"domma-table",header:"domma-table-header",body:"domma-table-body",row:"domma-table-row",cell:"domma-table-cell",selected:"domma-table-selected",sorted:"domma-table-sorted",sortAsc:"domma-table-sort-asc",sortDesc:"domma-table-sort-desc",pagination:"domma-table-pagination",search:"domma-table-search"},exportPanel:!1,exportOptions:["copy","csv","excel","json"],columnToggle:!1,regexSearch:!1,persistSettings:!1,storageKey:null,onSort:null,onFilter:null,onPageChange:null,onSelect:null,onEdit:null,onRender:null,onExport:null,...t},this._originalData=[...this.options.data],this._data=[...this.options.data],this._filteredData=[...this._data],this._currentPage=1,this._pageSize=this.options.pageSize,this._sorts=[],this._filters=[],this._searchQuery="",this._selected=new Set,this._editingCell=null,this._eventListeners=new Map,this._columnDropdownOpen=!1,this._searchIsRegex=!1,this._columns=this.options.columns.map(e=>({key:e.key||e,title:e.title||e.key||e,sortable:!1!==e.sortable&&this.options.sortable,filterable:!1!==e.filterable,editable:e.editable||!1,width:e.width||null,render:e.render||null,filterOptions:e.filterOptions||null,visible:!1!==e.visible})),this.options.persistSettings&&this._loadSettings(),this._init()}_init(){this.element&&(this.options.defaultSort&&(this._sorts=[this.options.defaultSort]),this.render())}_resolveColor(e,t,o){return e?t[e]?t[e]:e.startsWith("#")||e.startsWith("rgb")||e.startsWith("hsl")||e.startsWith("var(")?e:o:o}_getRowColors(e){const t=this.options;if(!t.striped)return{background:"transparent",hover:t.hover?this._resolveColor(t.hoverColor,ye.hoverColors,ye.hoverColors.default):"transparent"};const o=e%2==1,s=this._resolveColor(t.evenRowColor,ye.stripeColors,"transparent"),n=this._resolveColor(t.oddRowColor,ye.stripeColors,ye.stripeColors.default);return{background:o?n:s,hover:t.hover?this._resolveColor(t.hoverColor,ye.hoverColors,ye.hoverColors.default):null}}setData(e){return this._originalData=[...e],this._data=[...e],this._applyFiltersAndSort(),this._currentPage=1,this.render(),this}getData(){return[...this._getPageData()]}getFilteredData(){return[...this._filteredData]}getOriginalData(){return[...this._originalData]}addRow(e){return this._originalData.push(e),this._data.push(e),this._applyFiltersAndSort(),this.render(),this}updateRow(e,t){const o=this._findRowIndex(e);return-1!==o&&(this._originalData[o]={...this._originalData[o],...t},this._data[o]={...this._data[o],...t},this._applyFiltersAndSort(),this.render()),this}removeRow(e){const t=this._findRowIndex(e);return-1!==t&&(this._originalData.splice(t,1),this._data.splice(t,1),this._applyFiltersAndSort(),this.render()),this}_findRowIndex(e){const t=this.options.rowKey;return"number"==typeof e?e:this._originalData.findIndex(o=>o[t]===e)}sort(e,t="asc"){return this._sorts=[{column:e,direction:t}],this._applyFiltersAndSort(),this.render(),this._saveSettings(),this.options.onSort&&this.options.onSort({column:e,direction:t,sorts:this._sorts}),this}sortMultiple(e){return this._sorts=e,this._applyFiltersAndSort(),this.render(),this._saveSettings(),this.options.onSort&&this.options.onSort({sorts:this._sorts}),this}clearSort(){return this._sorts=[],this._applyFiltersAndSort(),this.render(),this._saveSettings(),this}_applySort(e){return 0===this._sorts.length?e:[...e].sort((e,t)=>{for(const o of this._sorts){const{column:s,direction:n}=o,i=e[s],r=t[s];let a=0;if(null==i?a=1:null==r||i<r?a=-1:i>r&&(a=1),0!==a)return"desc"===n?-a:a}return 0})}search(e){return this._searchQuery=this._searchIsRegex?e.trim():e.toLowerCase().trim(),this._applyFiltersAndSort(),this._currentPage=1,this.render(),this.options.onFilter&&this.options.onFilter({query:e,type:"search",isRegex:this._searchIsRegex}),this}setSearchMode(e){return this._searchIsRegex=e,this._searchQuery&&(this._applyFiltersAndSort(),this.render()),this}toggleSearchMode(){return this.setSearchMode(!this._searchIsRegex)}filter(e,t,o="equals"){return this._filters=this._filters.filter(t=>t.column!==e),null!=t&&""!==t&&this._filters.push({column:e,value:t,operator:o}),this._applyFiltersAndSort(),this._currentPage=1,this.render(),this.options.onFilter&&this.options.onFilter({column:e,value:t,operator:o,type:"column"}),this}filterBy(e){return this._customFilter=e,this._applyFiltersAndSort(),this._currentPage=1,this.render(),this}clearFilters(){return this._filters=[],this._searchQuery="",this._customFilter=null,this._applyFiltersAndSort(),this._currentPage=1,this.render(),this}_applyFilters(e){let t=e;if(this._searchQuery)if(this._searchIsRegex)try{const e=new RegExp(this._searchQuery,"i");t=t.filter(t=>this._columns.some(o=>{const s=t[o.key];return null!=s&&e.test(String(s))}))}catch(e){t=[]}else t=t.filter(e=>this._columns.some(t=>{const o=e[t.key];return null!=o&&String(o).toLowerCase().includes(this._searchQuery)}));for(const e of this._filters)t=t.filter(t=>{const o=t[e.column];return this._matchFilter(o,e.value,e.operator)});return this._customFilter&&(t=t.filter(this._customFilter)),t}_matchFilter(e,t,o){if(null==e)return!1;const s=String(e).toLowerCase(),n=String(t).toLowerCase();switch(o){case"equals":default:return s===n;case"contains":return s.includes(n);case"startsWith":return s.startsWith(n);case"endsWith":return s.endsWith(n);case"gt":return Number(e)>Number(t);case"lt":return Number(e)<Number(t);case"gte":return Number(e)>=Number(t);case"lte":return Number(e)<=Number(t);case"between":const[o,i]=t,r=Number(e);return r>=o&&r<=i;case"in":return t.includes(e)}}_applyFiltersAndSort(){this._filteredData=this._applyFilters(this._data),this._filteredData=this._applySort(this._filteredData)}page(e){const t=this._getTotalPages();return this._currentPage=Math.max(1,Math.min(e,t)),this.render(),this.options.onPageChange&&this.options.onPageChange(this.pageInfo()),this}pageSize(e){return this._pageSize=e,this._currentPage=1,this.render(),this._saveSettings(),this}nextPage(){return this.page(this._currentPage+1)}prevPage(){return this.page(this._currentPage-1)}firstPage(){return this.page(1)}lastPage(){return this.page(this._getTotalPages())}pageInfo(){const e=this._getTotalPages();return{page:this._currentPage,pageSize:this._pageSize,totalPages:e,totalRows:this._filteredData.length,startRow:(this._currentPage-1)*this._pageSize+1,endRow:Math.min(this._currentPage*this._pageSize,this._filteredData.length)}}_getTotalPages(){return this.options.pagination&&Math.ceil(this._filteredData.length/this._pageSize)||1}_getPageData(){if(!this.options.pagination)return this._filteredData;const e=(this._currentPage-1)*this._pageSize,t=e+this._pageSize;return this._filteredData.slice(e,t)}select(e){if(!this.options.selectable)return this;const t=this.options.rowKey,o="object"==typeof e?e[t]:e;return"single"===this.options.selectionMode&&this._selected.clear(),this._selected.add(o),this.render(),this.options.onSelect&&this.options.onSelect(this.getSelected()),this}deselect(e){const t=this.options.rowKey,o="object"==typeof e?e[t]:e;return this._selected.delete(o),this.render(),this.options.onSelect&&this.options.onSelect(this.getSelected()),this}toggleSelect(e){const t=this.options.rowKey,o="object"==typeof e?e[t]:e;return this._selected.has(o)?this.deselect(e):this.select(e),this}selectAll(){if(!this.options.selectable||"single"===this.options.selectionMode)return this;const e=this.options.rowKey;for(const t of this._filteredData)this._selected.add(t[e]);return this.render(),this.options.onSelect&&this.options.onSelect(this.getSelected()),this}deselectAll(){return this._selected.clear(),this.render(),this.options.onSelect&&this.options.onSelect([]),this}getSelected(){const e=this.options.rowKey;return this._filteredData.filter(t=>this._selected.has(t[e]))}isSelected(e){const t=this.options.rowKey,o="object"==typeof e?e[t]:e;return this._selected.has(o)}_getStorageKey(){return this.options.storageKey||(this.element.id?`domma-table-${this.element.id}`:"domma-table-default")}_loadSettings(){try{const e=this._getStorageKey(),t=H.get(e);t&&t.columns&&t.columns.forEach(e=>{const t=this._columns.find(t=>t.key===e.key);t&&(t.visible=e.visible,e.width&&(t.width=e.width))}),t&&t.pageSize&&this.options.pagination&&(this._pageSize=t.pageSize,this.options.pageSize=t.pageSize),t&&t.sorts&&this.options.sortable&&(this._sorts=t.sorts)}catch(e){console.warn("Failed to load table settings:",e)}}_saveSettings(){if(this.options.persistSettings)try{const e=this._getStorageKey(),t={columns:this._columns.map(e=>({key:e.key,visible:e.visible,width:e.width})),pageSize:this._pageSize,sorts:this._sorts,timestamp:Date.now()};H.set(e,t)}catch(e){console.warn("Failed to save table settings:",e)}}clearSettings(){if(this.options.persistSettings){const e=this._getStorageKey();H.remove(e)}}showColumn(e){const t=this._columns.find(t=>t.key===e);return t&&(t.visible=!0,this.render(),this._saveSettings()),this}hideColumn(e){const t=this._columns.find(t=>t.key===e);return t&&(t.visible=!1,this.render(),this._saveSettings()),this}toggleColumn(e){const t=this._columns.find(t=>t.key===e);return t&&(t.visible=!t.visible,this.render(),this._saveSettings()),this}getVisibleColumns(){return this._columns.filter(e=>e.visible)}getHiddenColumns(){return this._columns.filter(e=>!e.visible)}resizeColumn(e,t){const o=this._columns.find(t=>t.key===e);return o&&(o.width=t,this.render()),this}getColumns(){return[...this._columns]}editCell(e,t){return this.options.editable?(this._editingCell={rowIndex:e,column:t},this.render(),this):this}saveEdits(){return this._editingCell=null,this.render(),this}cancelEdits(){return this._editingCell=null,this.render(),this}toCSV(e={}){const{columns:t=this._columns.filter(e=>e.visible),includeHeaders:o=!0}=e,s=[],n=this._getExportData();o&&s.push(t.map(e=>`"${e.title}"`).join(","));for(const e of n){const o=t.map(t=>{const o=e[t.key];return null==o?'""':`"${String(o).replace(/"/g,'""')}"`});s.push(o.join(","))}return s.join("\n")}_getExportData(){const e=this.getSelected();return e.length>0?e:this._filteredData}toJSON(e={}){const{columns:t=this._columns.filter(e=>e.visible),pretty:o=!1}=e,s=t.map(e=>e.key),n=this._getExportData().map(e=>{const t={};for(const o of s)t[o]=e[o];return t});return o?JSON.stringify(n,null,2):JSON.stringify(n)}download(e,t){let o,s;switch(e){case"csv":o=this.toCSV(),s="text/csv",t=t||"data.csv";break;case"excel":o=this.toExcel(),s="application/vnd.ms-excel",t=t||"data.xls";break;default:o=this.toJSON({pretty:!0}),s="application/json",t=t||"data.json"}const n=new Blob([o],{type:s}),i=URL.createObjectURL(n),r=document.createElement("a");if(r.href=i,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(i),this.options.onExport){const o=this._getExportData(),s=this.getSelected();this.options.onExport({format:e,filename:t,rowCount:o.length,selectedOnly:s.length>0})}}toExcel(e={}){const{columns:t=this._columns.filter(e=>e.visible)}=e,o=this._getExportData();let s='\n <html xmlns:o="urn:schemas-microsoft-com:office:office"\n xmlns:x="urn:schemas-microsoft-com:office:excel">\n <head>\n <meta charset="UTF-8">\n \x3c!--[if gte mso 9]>\n <xml>\n <x:ExcelWorkbook>\n <x:ExcelWorksheets>\n <x:ExcelWorksheet>\n <x:Name>Data</x:Name>\n <x:WorksheetOptions>\n <x:DisplayGridlines/>\n </x:WorksheetOptions>\n </x:ExcelWorksheet>\n </x:ExcelWorksheets>\n </x:ExcelWorkbook>\n </xml>\n <![endif]--\x3e\n <style>\n table { border-collapse: collapse; }\n th, td { border: 1px solid #000; padding: 8px; }\n th { background: #f0f0f0; font-weight: bold; }\n </style>\n </head>\n <body>\n <table>\n <thead>\n <tr>';for(const e of t)s+=`<th>${this._escapeHtml(e.title)}</th>`;s+="</tr></thead><tbody>";for(const e of o){s+="<tr>";for(const o of t){const t=e[o.key];s+=`<td>${null!=t?this._escapeHtml(String(t)):""}</td>`}s+="</tr>"}return s+="</tbody></table></body></html>",s}async copyToClipboard(e="text"){let t;const o=this._getExportData();if("json"===e)t=this.toJSON({pretty:!0});else if("csv"===e)t=this.toCSV();else{const e=this._columns.filter(e=>e.visible),s=[];s.push(e.map(e=>e.title).join("\t"));for(const t of o)s.push(e.map(e=>t[e.key]??"").join("\t"));t=s.join("\n")}return await s.copyToClipboard(t),this.options.onExport&&this.options.onExport({format:"clipboard",rowCount:this._filteredData.length}),this}_escapeHtml(e){const t=document.createElement("div");return t.textContent=e,t.innerHTML}render(){if(!this.element)return this;const e=this.options,t=e.classes,o=this._columns.filter(e=>e.visible),n=this._getPageData();this._restoreIconsBeforeRebuild(),this.element.innerHTML="",this._clearEventListeners();const i=document.createElement("div");i.className=t.wrapper;const r=document.createElement("div");if(r.className="domma-table-toolbar",e.searchable){const t=document.createElement("div");t.className="domma-table-search-wrapper";const o=document.createElement("input");if(o.type="text",o.className="domma-table-search-input"+(this._searchIsRegex?" regex-mode":""),o.placeholder=this._searchIsRegex?"Regex pattern...":e.searchPlaceholder,o.value=this._searchQuery,this._addEventHandler(o,"input",s.debounce(e=>{this.search(e.target.value)},300)),t.appendChild(o),e.regexSearch){const e=document.createElement("button");e.type="button",e.className="domma-table-regex-button"+(this._searchIsRegex?" active":""),e.title=this._searchIsRegex?"Regex mode (click for text)":"Text mode (click for regex)",e.innerHTML=".*",this._addEventHandler(e,"click",()=>{this._searchIsRegex=!this._searchIsRegex,this._searchQuery&&(this._searchQuery=this._searchIsRegex?o.value.trim():o.value.toLowerCase().trim(),this._applyFiltersAndSort()),this.render()}),t.appendChild(e)}r.appendChild(t)}if(e.columnToggle){const e=document.createElement("div");e.className="domma-table-column-toggle";const t=document.createElement("button");t.type="button",t.className="domma-table-column-button",t.innerHTML=`${_e.html("columns",{size:16})} Columns`;const o=document.createElement("div");o.className="domma-column-dropdown"+(this._columnDropdownOpen?" show":"");for(const e of this._columns){const t=document.createElement("label");t.className="domma-column-toggle-item";const s=document.createElement("span");s.className="domma-column-toggle-label",s.textContent=e.title;const n=document.createElement("div");n.className="domma-toggle-switch";const i=document.createElement("input");i.type="checkbox",i.checked=e.visible,i.style.cssText="opacity: 0; width: 0; height: 0; position: absolute;";const r=document.createElement("span");r.className="domma-toggle-track"+(e.visible?" active":"");const a=document.createElement("span");a.className="domma-toggle-knob"+(e.visible?" active":""),r.appendChild(a),n.appendChild(i),n.appendChild(r),this._addEventHandler(t,"click",t=>{t.preventDefault(),t.stopPropagation(),e.visible=!e.visible,e.visible?(r.classList.add("active"),a.classList.add("active")):(r.classList.remove("active"),a.classList.remove("active")),i.checked=e.visible,this._columnDropdownOpen=!0,this.render(),this._saveSettings()}),t.appendChild(s),t.appendChild(n),o.appendChild(t)}this._addEventHandler(t,"click",e=>{e.stopPropagation(),this._columnDropdownOpen=!this._columnDropdownOpen,this._columnDropdownOpen?o.classList.add("show"):o.classList.remove("show")}),this._addEventHandler(document,"click",()=>{this._columnDropdownOpen&&(this._columnDropdownOpen=!1,o.classList.remove("show"))}),this._addEventHandler(o,"click",e=>{e.stopPropagation()}),e.appendChild(t),e.appendChild(o),r.appendChild(e)}if(e.exportPanel){const t=document.createElement("div");t.className="domma-table-export-wrapper";let o=!1;const s=document.createElement("div");s.className="domma-export-mode-toggle";const n=document.createElement("span");n.className="domma-export-mode-label active",n.textContent="Copy";const i=document.createElement("label");i.className="domma-export-toggle-switch";const a=document.createElement("input");a.type="checkbox",a.className="domma-export-toggle-input";const l=document.createElement("span");l.className="domma-export-toggle-slider";const h=document.createElement("span");h.className="domma-export-toggle-knob",l.appendChild(h),i.appendChild(a),i.appendChild(l);const c=document.createElement("span");c.className="domma-export-mode-label",c.textContent="Download";const d=()=>{o?(l.classList.add("active"),h.classList.add("active"),n.classList.remove("active"),c.classList.add("active")):(l.classList.remove("active"),h.classList.remove("active"),n.classList.add("active"),c.classList.remove("active"))};this._addEventHandler(a,"change",()=>{o=a.checked,d()}),d(),s.appendChild(n),s.appendChild(i),s.appendChild(c),t.appendChild(s);const u=document.createElement("span");u.className="domma-export-separator",t.appendChild(u);const p={text:{label:"Text",icon:_e.html("clipboard",{size:16}),format:"text"},csv:{label:"CSV",icon:_e.html("document",{size:16}),format:"csv"},excel:{label:"Excel",icon:_e.html("grid",{size:16}),format:"excel"},json:{label:"JSON",icon:_e.html("file-code",{size:16}),format:"json"}},m=e.exportOptions.map(e=>"copy"===e?"text":e);for(const e of m){const s=p[e];if(!s)continue;const n=document.createElement("button");n.type="button",n.className="domma-export-button",n.setAttribute("data-export",e),n.innerHTML=`${s.icon} ${s.label}`;const i=(e,t=!0)=>{const o=n.innerHTML;n.innerHTML=e,n.classList.add(t?"success":"error"),setTimeout(()=>{n.innerHTML=o,n.classList.remove("success","error")},1500)};this._addEventHandler(n,"click",()=>{const e=this.getSelected(),t=e.length>0?e.length:this._filteredData.length,n=e.length>0?` (${t} selected)`:` (${t} rows)`;if(o){const e="text"===s.format?"csv":s.format;this.download(e),i("✓ Downloaded!"+n)}else{const e="excel"===s.format?"text":s.format;this.copyToClipboard(e),i("✓ Copied!"+n)}}),t.appendChild(n)}r.appendChild(t)}(e.searchable||e.columnToggle||e.exportPanel)&&i.appendChild(r);const a=document.createElement("table");a.className=t.table,a.style.cssText="width: 100%; border-collapse: collapse;";const l=document.createElement("thead");l.className=t.header;const h=document.createElement("tr");if(e.selectable&&"multiple"===e.selectionMode){const e=document.createElement("th");e.style.cssText="padding: 12px; border: 1px solid #ddd; background: #f8f9fa; width: 40px;";const t=document.createElement("input");t.type="checkbox",t.checked=this._selected.size>0&&this._selected.size===n.length,this._addEventHandler(t,"change",()=>{t.checked?this.selectAll():this.deselectAll()}),e.appendChild(t),h.appendChild(e)}for(const e of o){const o=document.createElement("th");o.style.cssText="padding: 12px; border: 1px solid #ddd; background: #f8f9fa; text-align: left;",e.width&&(o.style.width="number"==typeof e.width?e.width+"px":e.width);const s=this._sorts.find(t=>t.column===e.key);s&&(o.classList.add(t.sorted),o.classList.add("asc"===s.direction?t.sortAsc:t.sortDesc)),e.sortable?(o.style.cursor="pointer",o.innerHTML=`${e.title} <span style="opacity: 0.5">${s?"asc"===s.direction?"▲":"▼":"⇅"}</span>`,this._addEventHandler(o,"click",()=>{const t=this._sorts.find(t=>t.column===e.key),o="asc"===t?.direction?"desc":"asc";this.sort(e.key,o)})):o.textContent=e.title,h.appendChild(o)}l.appendChild(h),a.appendChild(l);const c=document.createElement("tbody");c.className=t.body;const d=e.rowKey;if(n.forEach((s,n)=>{const i=document.createElement("tr");i.className=t.row;const r=this._getRowColors(n);if(i.style.background=r.background,e.hover&&r.hover){i.style.transition="background 0.2s";const e=r.background;this._addEventHandler(i,"mouseenter",()=>i.style.background=r.hover),this._addEventHandler(i,"mouseleave",()=>i.style.background=e)}if(this._selected.has(s[d])&&(i.classList.add(t.selected),i.style.background="#e3f2fd"),e.selectable&&"multiple"===e.selectionMode){const e=document.createElement("td");e.style.cssText="padding: 12px; border: 1px solid #ddd;";const t=document.createElement("input");t.type="checkbox",t.checked=this._selected.has(s[d]),this._addEventHandler(t,"change",()=>{this.toggleSelect(s[d])}),e.appendChild(t),i.appendChild(e)}e.selectable&&"single"===e.selectionMode&&(i.style.cursor="pointer",this._addEventHandler(i,"click",()=>{this.toggleSelect(s[d])}));for(const r of o){const o=document.createElement("td");o.className=t.cell,o.style.cssText="padding: 12px; border: 1px solid #ddd;";if(this._editingCell&&this._editingCell.rowIndex===n&&this._editingCell.column===r.key&&r.editable){const t=document.createElement("input");t.type="text",t.value=s[r.key]||"",t.style.cssText="width: 100%; padding: 4px; border: 1px solid #007bff;",this._addEventHandler(t,"blur",()=>{this.updateRow(s[d],{[r.key]:t.value}),this.saveEdits(),e.onEdit&&e.onEdit({row:s,column:r.key,oldValue:s[r.key],newValue:t.value})}),this._addEventHandler(t,"keydown",e=>{"Enter"===e.key?t.blur():"Escape"===e.key&&this.cancelEdits()}),o.appendChild(t),setTimeout(()=>t.focus(),0)}else r.render?o.innerHTML=r.render(s[r.key],s,n):o.textContent=s[r.key]??"",r.editable&&e.editable&&(o.style.cursor="pointer",this._addEventHandler(o,"dblclick",()=>{this.editCell(n,r.key)}));i.appendChild(o)}c.appendChild(i)}),a.appendChild(c),i.appendChild(a),e.pagination){const o=document.createElement("div");o.className=t.pagination,o.style.cssText="display: flex; justify-content: space-between; align-items: center; margin-top: 15px; padding: 10px 0;";const s=this.pageInfo(),n=document.createElement("span");n.textContent=`Showing ${s.startRow}-${s.endRow} of ${s.totalRows}`;const r=document.createElement("span");r.innerHTML="Show ";const a=document.createElement("select");a.className="form-select",a.style.cssText="width: auto; display: inline-block; margin: 0 5px;";for(const t of e.pageSizeOptions){const e=document.createElement("option");e.value=t,e.textContent=t,t===this._pageSize&&(e.selected=!0),a.appendChild(e)}this._addEventHandler(a,"change",()=>{this.pageSize(Number(a.value))}),r.appendChild(a),r.appendChild(document.createTextNode(" entries"));const l=document.createElement("span"),h=(e,t,o=!1,s=!1)=>{const n=document.createElement("button");return s?n.innerHTML=e:n.textContent=e,n.disabled=o,n.style.cssText="padding: 6px 12px; margin: 0 2px; border: 1px solid #ddd; background: #fff; cursor: pointer; border-radius: 4px; display: inline-flex; align-items: center; justify-content: center;",o&&(n.style.opacity="0.5"),this._addEventHandler(n,"click",t),n};l.appendChild(h(_e.html("chevrons-left",{size:14}),()=>this.firstPage(),1===this._currentPage,!0)),l.appendChild(h(_e.html("chevron-left",{size:14}),()=>this.prevPage(),1===this._currentPage,!0));const c=5;let d=Math.max(1,this._currentPage-Math.floor(c/2)),u=Math.min(s.totalPages,d+c-1);d=Math.max(1,u-c+1);for(let e=d;e<=u;e++){const t=h(e,()=>this.page(e),!1);e===this._currentPage&&(t.style.background="#007bff",t.style.color="#fff",t.style.borderColor="#007bff"),l.appendChild(t)}l.appendChild(h(_e.html("chevron-right",{size:14}),()=>this.nextPage(),this._currentPage===s.totalPages,!0)),l.appendChild(h(_e.html("chevrons-right",{size:14}),()=>this.lastPage(),this._currentPage===s.totalPages,!0)),o.appendChild(r),o.appendChild(n),o.appendChild(l),i.appendChild(o)}return this.element.appendChild(i),e.onRender&&e.onRender(this),this}_addEventHandler(e,t,o){e.addEventListener(t,o),this._eventListeners.has(e)||this._eventListeners.set(e,[]),this._eventListeners.get(e).push({event:t,handler:o})}_clearEventListeners(){for(const[e,t]of this._eventListeners)for(const{event:o,handler:s}of t)e.removeEventListener(o,s);this._eventListeners.clear()}_restoreIconsBeforeRebuild(){this.element.querySelectorAll('svg[data-icon-processed="true"][data-original-icon]').forEach(e=>{const t=e.getAttribute("data-original-icon");if(t){const o=document.createElement("span");o.setAttribute("data-icon",t);const s=e.getAttribute("data-icon-size"),n=e.getAttribute("data-icon-color")||e.getAttribute("data-icon-colour"),i=e.getAttribute("data-icon-class");s&&o.setAttribute("data-icon-size",s),n&&o.setAttribute("data-icon-colour",n),i&&o.setAttribute("data-icon-class",i),e.replaceWith(o)}})}on(e,t){if(["sort","filter","page","select","edit","render"].includes(e)){const o="on"+e.charAt(0).toUpperCase()+e.slice(1);this.options[o]=t}return this}off(e){const t="on"+e.charAt(0).toUpperCase()+e.slice(1);return this.options[t]=null,this}refresh(){return this._applyFiltersAndSort(),this.render(),this}destroy(){this._clearEventListeners(),this.element&&(this.element.innerHTML="")}}const Me={_instances:new Map,create(e,t={}){const o="string"==typeof e?document.querySelector(e):e,s=new ye(o,t);return o&&this._instances.set(o,s),s},get(e){const t="string"==typeof e?document.querySelector(e):e;return this._instances.get(t)},destroy(e){const t="string"==typeof e?document.querySelector(e):e,o=this._instances.get(t);o&&(o.destroy(),this._instances.delete(t))},destroyAll(){for(const e of this._instances.values())e.destroy();this._instances.clear()}},be="domma-theme",we="domma-theme-variant",Le="dm-theme-",xe=["ocean-light","ocean-dark","forest-light","forest-dark","sunset-light","sunset-dark","royal-light","royal-dark","lemon-light","lemon-dark","silver-light","silver-dark","charcoal-light","charcoal-dark","christmas-light","christmas-dark","grayve","core-light"],Ce="charcoal-dark";const Ee=new class{constructor(){this._theme=Ce,this._listeners=[],this._target=null,this._initialised=!1,this._systemMediaQuery=null,this._autoDetect=!1,this._disabled=!1}init(e={}){const{theme:t=null,autoDetect:o=!1,persist:s=!0,disabled:n=!1,target:i=document.body}=e;if(n)return this._disabled=!0,this._initialised=!0,this;this._target="string"==typeof i?document.querySelector(i):i,this._target||(this._target=document.body),this._persist=s,this._autoDetect=o;let r=t;if(s){const e=this._loadFromStorage();e&&!t&&(r=e)}if(o&&!r){r="dark"===this._getSystemPreference()?"charcoal-dark":"charcoal-light",this._setupSystemListener()}return r=r||Ce,xe.includes(r)||(console.warn(`Invalid theme: ${r}. Using default: ${Ce}`),r=Ce),this._theme=r,this._applyTheme(),this._initialised=!0,this}get(){return this._theme}getBase(){return this._theme.split("-").slice(0,-1).join("-")}getMode(){return this._theme.split("-").pop()}isDark(){return"dark"===this.getMode()}isLight(){return"light"===this.getMode()}set(e){if(!xe.includes(e))return console.warn(`Invalid theme: ${e}. Available themes: ${xe.join(", ")}`),this;const t=this._theme;return t===e||(this._theme=e,this._applyTheme(),this._saveToStorage(),this._notifyListeners(t,e)),this}setVariant(){return console.warn('[ThemeEngine] setVariant() is deprecated. Use set() with full theme name (e.g., set("ocean-dark"))'),this}toggle(){return console.warn("[ThemeEngine] toggle() is deprecated. Use variant selector UI or set() method."),this}onChange(e){return"function"!=typeof e?(console.warn("onChange requires a function callback"),()=>{}):(this._listeners.push(e),()=>{const t=this._listeners.indexOf(e);t>-1&&this._listeners.splice(t,1)})}preview(e){if(!xe.includes(e))return console.warn(`Invalid theme for preview: ${e}`),()=>{};const t=this._theme;return this._theme=e,this._applyTheme(!1),()=>{this._theme=t,this._applyTheme(!1)}}listThemes(){return[...xe]}listBases(){return["ocean","forest","sunset","royal","lemon","silver","charcoal","christmas"]}listVariants(){return console.warn("[ThemeEngine] listVariants() is deprecated. Use listThemes() instead."),this.listBases()}getConfig(){return{theme:this._theme,base:this.getBase(),mode:this.getMode(),autoDetect:this._autoDetect,persist:this._persist,disabled:this._disabled}}_updateMetaThemeColor(){const e={light:"#ffffff",dark:"#121212"};let t=document.querySelector('meta[name="theme-color"]');t||(t=document.createElement("meta"),t.name="theme-color",document.head.appendChild(t)),t.content=e[this.getMode()]||e.dark}isDisabled(){return this._disabled}enable(){return this._disabled=!1,this._target||(this._target=document.body),this._applyTheme(),this}disable(){if(this._disabled=!0,this._target){const e=this._target.className.split(" ").filter(e=>!e.startsWith(Le));this._target.className=e.join(" ").trim()}return this}_applyTheme(e=!0){if(this._disabled)return;const t=this._target||document.body;if(!t)return void console.error("[ThemeEngine] No target element available for theme application");const o=t.className.split(" ").filter(e=>!e.startsWith(Le));o.push(`${Le}${this._theme}`),t.className=o.join(" ").trim(),e&&this._updateMetaThemeColor()}_saveToStorage(){if(this._persist&&"undefined"!=typeof localStorage)try{localStorage.setItem(be,this._theme),localStorage.removeItem(we)}catch(e){}}_loadFromStorage(){if("undefined"==typeof localStorage)return null;try{const e=localStorage.getItem(be);if(e&&xe.includes(e))return e;const t=e,o=localStorage.getItem(we);if(t&&["light","dark"].includes(t)){const e=`${o||"charcoal"}-${t}`;if(console.log(`[ThemeEngine] Migrating theme: ${t} + ${o} → ${e}`),xe.includes(e))return localStorage.setItem(be,e),localStorage.removeItem(we),e}return null}catch(e){return null}}_getSystemPreference(){return"undefined"!=typeof window&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}_setupSystemListener(){if("undefined"==typeof window||!window.matchMedia)return;this._systemMediaQuery=window.matchMedia("(prefers-color-scheme: dark)");const e=e=>{if(!this._autoDetect)return;const t=e.matches?"dark":"light",o=`${this.getBase()}-${t}`;xe.includes(o)&&this.set(o)};this._systemMediaQuery.addEventListener?this._systemMediaQuery.addEventListener("change",e):this._systemMediaQuery.addListener(e)}_notifyListeners(e,t){this._listeners.forEach(o=>{try{o(e,t)}catch(e){console.error("[ThemeEngine] Error in change listener:",e)}})}destroy(){this._systemMediaQuery&&this._systemMediaQuery.removeEventListener,this._listeners=[],this._target=null,this._initialised=!1}};"undefined"!=typeof document&&("loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{Ee._initialised||Ee.init({persist:!0,autoDetect:!1})}):Ee._initialised||Ee.init({persist:!0,autoDetect:!1}));const Se={apiUrl:null,token:null,user:null,config:{},eventHandlers:{},initialized:!1,init(e={}){this.config={apiUrl:e.apiUrl||"http://localhost:3001/api",storageKey:e.storageKey||"auth_token",userStorageKey:e.userStorageKey||"auth_user",autoCheck:!1!==e.autoCheck},this.apiUrl=this.config.apiUrl,this.token=H.get(this.config.storageKey),this.user=H.get(this.config.userStorageKey),this.config.autoCheck&&this.token&&this._verifyToken().catch(()=>{this._clearToken(),this.emit("tokenExpired",null)}),this.initialized=!0},async login(e,t){if(!this.initialized)throw new Error("Auth module not initialized. Call auth.init() first.");try{const s=await o.post(`${this.apiUrl}/auth/login`,{email:e,password:t});if(!s.success||!s.token)throw new Error(s.message||"Login failed");return this.token=s.token,this.user=s.user,this._storeToken(this.token),this._storeUser(this.user),this.emit("login",this.user),this.user}catch(e){throw this.emit("error",e.message||"Login failed"),e}},async register(e,t,s){if(!this.initialized)throw new Error("Auth module not initialized. Call auth.init() first.");try{const n=await o.post(`${this.apiUrl}/auth/register`,{email:e,password:t,name:s});if(!n.success||!n.token)throw new Error(n.message||"Registration failed");return this.token=n.token,this.user=n.user,this._storeToken(this.token),this._storeUser(this.user),this.emit("register",this.user),this.user}catch(e){throw this.emit("error",e.message||"Registration failed"),e}},logout(){this.token=null,this.user=null,this._clearToken(),this._clearUser(),this.emit("logout",null)},getUser(){return this.user},isAuthenticated(){return!!this.token&&!!this.user},getHeaders(){return this.token?{Authorization:`Bearer ${this.token}`}:{}},getApiUrl(){return this.apiUrl},getRole(){return this.user?.role||null},hasRole(e){return this.user?.role===e},hasAnyRole(e){return e.includes(this.user?.role)},isAdmin(){return"admin"===this.user?.role},isSubscriber(){return"subscriber"===this.user?.role},isGuest(){return"guest"===this.user?.role},async _verifyToken(){if(!this.token)throw new Error("No token to verify");try{const e=await o.get(`${this.apiUrl}/auth/me`,{headers:this.getHeaders()});if(!e.success||!e.user)throw new Error("Token verification failed");return this.user=e.user,this._storeUser(this.user),this.user}catch(e){throw this._clearToken(),this._clearUser(),e}},_storeToken(e){H.set(this.config.storageKey,e)},_storeUser(e){H.set(this.config.userStorageKey,e)},_clearToken(){H.remove(this.config.storageKey),this.token=null},_clearUser(){H.remove(this.config.userStorageKey),this.user=null},on(e,t){this.eventHandlers[e]||(this.eventHandlers[e]=[]),this.eventHandlers[e].push(t)},off(e,t){this.eventHandlers[e]&&(this.eventHandlers[e]=t?this.eventHandlers[e].filter(e=>e!==t):[])},emit(e,t){this.eventHandlers[e]&&this.eventHandlers[e].forEach(o=>{try{o(t)}catch(t){console.error(`Error in auth event handler for '${e}':`,t)}})}};class Be extends n{static defaults={emailPlaceholder:"your@email.com",passwordPlaceholder:"Enter your password",buttonText:"Login",showLabels:!0,onSubmit:null,onSuccess:null,onError:null};constructor(e,t={}){super(e,t),this._init()}_init(){if(!this.element)return;this.render();const e=this.element.querySelector("form");e&&this._addEventListener(e,"submit",async e=>{e.preventDefault(),await this.handleSubmit()})}render(){const e=this.options,t=`\n <form class="auth-login-form">\n <div class="form-group">\n ${e.showLabels?'<label class="form-label">Email</label>':""}\n <input\n type="email"\n class="form-input"\n name="email"\n placeholder="${e.emailPlaceholder}"\n required>\n </div>\n <div class="form-group">\n ${e.showLabels?'<label class="form-label">Password</label>':""}\n <input\n type="password"\n class="form-input"\n name="password"\n placeholder="${e.passwordPlaceholder}"\n required>\n </div>\n <button type="submit" class="btn btn-primary btn-block" style="margin-top: 1rem;">${e.buttonText}</button>\n </form>\n `;this.element.innerHTML=t}async handleSubmit(){const e=this.element.querySelector("form"),t=e.querySelector('[name="email"]').value,o=e.querySelector('[name="password"]').value;this.options.onSubmit&&this.options.onSubmit(t,o);try{await Se.login(t,o),this.options.onSuccess&&this.options.onSuccess(Se.getUser())}catch(e){this.options.onError&&this.options.onError(e)}}}class je extends n{static defaults={namePlaceholder:"Your name",emailPlaceholder:"your@email.com",passwordPlaceholder:"Create a password",buttonText:"Register",minPasswordLength:6,showLabels:!0,onSubmit:null,onSuccess:null,onError:null};constructor(e,t={}){super(e,t),this._init()}_init(){if(!this.element)return;this.render();const e=this.element.querySelector("form");e&&this._addEventListener(e,"submit",async e=>{e.preventDefault(),await this.handleSubmit()})}render(){const e=this.options,t=`\n <form class="auth-register-form">\n <div class="form-group">\n ${e.showLabels?'<label class="form-label">Name</label>':""}\n <input\n type="text"\n class="form-input"\n name="name"\n placeholder="${e.namePlaceholder}"\n required>\n </div>\n <div class="form-group">\n ${e.showLabels?'<label class="form-label">Email</label>':""}\n <input\n type="email"\n class="form-input"\n name="email"\n placeholder="${e.emailPlaceholder}"\n required>\n </div>\n <div class="form-group">\n ${e.showLabels?'<label class="form-label">Password</label>':""}\n <input\n type="password"\n class="form-input"\n name="password"\n placeholder="${e.passwordPlaceholder}"\n minlength="${e.minPasswordLength}"\n required>\n </div>\n <button type="submit" class="btn btn-primary btn-block" style="margin-top: 1rem;">${e.buttonText}</button>\n </form>\n `;this.element.innerHTML=t}async handleSubmit(){const e=this.element.querySelector("form"),t=e.querySelector('[name="name"]').value,o=e.querySelector('[name="email"]').value,s=e.querySelector('[name="password"]').value;this.options.onSubmit&&this.options.onSubmit(o,s,t);try{await Se.register(o,s,t),this.options.onSuccess&&this.options.onSuccess(Se.getUser())}catch(e){this.options.onError&&this.options.onError(e)}}}class ze extends n{static defaults={activeTab:"login",loginText:"Login",registerText:"Register",onChange:null};constructor(e,t={}){super(e,t),this._init()}_init(){if(!this.element)return;this.render();this.element.querySelectorAll("[data-tab]").forEach(e=>{this._addEventListener(e,"click",()=>{this.switchTab(e.getAttribute("data-tab"))})})}render(){const e=this.options,t=`\n <div class="btn-group btn-group-block" style="margin-bottom: 1.5rem;">\n <button class="btn ${"login"===e.activeTab?"active":""}" data-tab="login">\n ${e.loginText}\n </button>\n <button class="btn ${"register"===e.activeTab?"active":""}" data-tab="register">\n ${e.registerText}\n </button>\n </div>\n `;this.element.innerHTML=t}switchTab(e){this.options.activeTab=e;this.element.querySelectorAll("[data-tab]").forEach(t=>{t.getAttribute("data-tab")===e?t.classList.add("active"):t.classList.remove("active")}),this.options.onChange&&this.options.onChange(e)}}class Ae extends n{static defaults={showIcon:!0,showRole:!0,logoutText:"Logout",onLogout:null};_init(){if(!this.element)return;this.render();const e=this.element.querySelector(".auth-logout-btn");e&&this._addEventListener(e,"click",()=>{this.handleLogout()}),Se.on("login",()=>this.render()),Se.on("logout",()=>this.render())}render(){const e=this.options,t=Se.getUser();if(!t)return void(this.element.innerHTML="");this.element.innerHTML="";const o=document.createElement("div");o.className="auth-user-info";const s=document.createElement("span");if(s.className="auth-user-email",e.showIcon){const e=document.createElement("span");e.setAttribute("data-icon","user"),e.setAttribute("data-icon-size","18"),s.appendChild(e)}const n=document.createTextNode(t.email);if(s.appendChild(n),!1!==e.showRole&&t.role){const e={admin:"badge-danger",subscriber:"badge-primary",guest:"badge-secondary"}[t.role]||"badge-secondary",o=document.createElement("span");o.className=`badge ${e}`,o.textContent=t.role.charAt(0).toUpperCase()+t.role.slice(1),s.appendChild(o)}const i=document.createElement("button");i.className="auth-logout-btn",i.textContent=e.logoutText,o.appendChild(s),o.appendChild(i),this.element.appendChild(o)}handleLogout(){Se.logout(),this.options.onLogout&&this.options.onLogout()}}Se.LoginForm=Be,Se.RegisterForm=je,Se.AuthTabs=ze,Se.UserInfo=Ae,Se.createLoginForm=(e,t)=>new Be(e,t),Se.createRegisterForm=(e,t)=>new je(e,t),Se.createAuthTabs=(e,t)=>new ze(e,t),Se.createUserInfo=(e,t)=>new Ae(e,t);let We=!0;"undefined"!=typeof document&&document.body?document.body.classList.add("dm-cloaked"):"undefined"!=typeof document&&document.addEventListener("DOMContentLoaded",()=>{We&&document.body.classList.add("dm-cloaked")});const He=(e,o)=>t(e,o);He.version="0.9.2-alpha",He.buildInfo={version:"0.9.2-alpha",built:"11/01/2026 18:01",commit:"136342c"},He.http=o,He.utils=s,He.setup=e=>(!1===e.cloak&&(We=!1,"undefined"!=typeof document&&document.body&&(document.body.classList.remove("dm-cloaked"),document.body.classList.add("dm-ready"))),e.noStyles?Ee.init({disabled:!0}):(e.theme||e.autoDetectTheme)&&Ee.init({theme:e.theme,autoDetect:e.autoDetectTheme,persist:!1!==e.persistTheme}),e.scanIcons&&_e.scan(),O.process(e)),He.update=(e,t)=>O.update(e,t),He.config=e=>O.config(e),He.reset=e=>O.reset(e),He.models=D,He.elements=W,He.dates=Z,He.tables=Me,He.forms=V,He.theme=Ee,He.icons=_e,He.storage=H,He.auth=Se,He.DesktopNotification=v;const $e=He,Te=s,De=D,Ie=Z,Ve=H,Oe=Se,Ne=V,Pe=o;if(He.M=De,He.D=Ie,He.S=Ve,He.A=Oe,He.H=Pe,"undefined"!=typeof window&&(window.Domma=He,window.$=$e,window._=Te,window.M=De,window.D=Ie,window.S=Ve,window.A=Oe,window.F=Ne,window.H=Pe),"undefined"!=typeof document){const e=()=>{We&&document.body.classList.contains("dm-cloaked")&&document.body.classList.add("dm-ready")};"complete"===document.readyState?setTimeout(e,0):window.addEventListener("load",e)}export{$e as $,Oe as A,Ie as D,He as Domma,Ne as F,Pe as H,De as M,Ve as S,Te as _,He as default};
|