domma-js 0.9.8-alpha → 0.9.13-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/bin/domma-cli.js +88 -45
- package/package.json +1 -1
- package/public/dist/bundles/domma-complete.css +16 -16
- package/public/dist/bundles/domma-data-focused.css +16 -16
- package/public/dist/bundles/domma-essentials.css +16 -16
- package/public/dist/bundles/domma-full.css +16 -16
- package/public/dist/bundles/domma-grayve.css +16 -16
- 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 +3 -3
- 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.9.
|
|
2
|
+
* Domma v0.9.11-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-19T14:42:15.644Z
|
|
6
|
+
* Commit: 1ba6a6a
|
|
7
7
|
*/
|
|
8
|
-
function e(e){if(null==e)return"";const t=document.createElement("div");return t.textContent=String(e),t.innerHTML}function t(){return"undefined"!=typeof window&&void 0!==window.DOMPurify}const o={ALLOWED_TAGS:["b","i","em","strong","u","s","mark","small","del","ins","sub","sup","p","br","hr","div","span","blockquote","pre","code","ul","ol","li","dl","dt","dd","h1","h2","h3","h4","h5","h6","a","table","thead","tbody","tfoot","tr","th","td","caption","col","colgroup","img","figure","figcaption","article","section","nav","aside","header","footer","main","time","address"],ALLOWED_ATTR:["href","title","target","rel","class","id","alt","src","width","height","colspan","rowspan","aria-label","aria-describedby","aria-hidden","role"],ALLOWED_URI_REGEXP:/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,ALLOW_DATA_ATTR:!1,ALLOW_UNKNOWN_PROTOCOLS:!1,SAFE_FOR_TEMPLATES:!0,RETURN_DOM:!1,RETURN_DOM_FRAGMENT:!1,FORCE_BODY:!0},n={default:o,strict:{ALLOWED_TAGS:["b","i","em","strong","p","br","a","ul","ol","li"],ALLOWED_ATTR:["href","title","target"],ALLOW_DATA_ATTR:!1},basic:{ALLOWED_TAGS:["b","i","em","strong","br"],ALLOWED_ATTR:[],ALLOW_DATA_ATTR:!1}};function s(s,i={}){if(null==s||""===s)return"";if(s=String(s),t()){const t=i.preset||"default",r={...n[t]||o,...i.allowedTags&&{ALLOWED_TAGS:i.allowedTags},...i.allowedAttrs&&{ALLOWED_ATTR:i.allowedAttrs},...void 0!==i.allowDataAttrs&&{ALLOW_DATA_ATTR:i.allowDataAttrs}};try{return window.DOMPurify.sanitize(s,r)}catch(t){return console.error("DOMPurify sanitization failed:",t),e(s)}}return console.warn("DOMPurify not available. Using HTML escape fallback. For better XSS protection, include DOMPurify."),e(s)}"undefined"==typeof window||t()||console.warn("%c⚠️ Security Warning: DOMPurify not loaded","color: orange; font-weight: bold; font-size: 14px;","\nFor robust XSS protection, include DOMPurify before Domma:",'\n<script src="https://cdn.jsdelivr.net/npm/dompurify@3/dist/purify.min.js"><\/script>',"\nCurrently using HTML escape fallback.");var i={sanitize:s,sanitizeBasic:function(e){return s(e,{preset:"basic"})},sanitizeUserContent:function(e){return s(e,{preset:"strict"})},escape:function(t){return e(t)},hasDOMPurify:function(){return t()}};class r{constructor(e,t){if("string"==typeof e)if(e.trim().startsWith("<")){const t=document.createElement("div");t.innerHTML=e.trim(),this.elements=Array.from(t.children)}else{const o=t||document;this.elements=Array.from(o.querySelectorAll(e))}else e instanceof Node?this.elements=[e]:e instanceof NodeList||e instanceof HTMLCollection?this.elements=Array.from(e):Array.isArray(e)?this.elements=e.filter(e=>e instanceof HTMLElement):this.elements=e instanceof r?[...e.elements]:[];this.length=this.elements.length}find(e){const t=[];return this.elements.forEach(o=>{t.push(...o.querySelectorAll(e))}),new r(t)}children(e){const t=[];return this.elements.forEach(e=>{t.push(...e.children)}),new r(e?t.filter(t=>t.matches(e)):t)}parent(e){const t=[];return this.elements.forEach(o=>{o.parentElement&&(e&&!o.parentElement.matches(e)||t.includes(o.parentElement)||t.push(o.parentElement))}),new r(t)}parents(e){const t=[];return this.elements.forEach(o=>{let n=o.parentElement;for(;n;)e&&!n.matches(e)||t.includes(n)||t.push(n),n=n.parentElement}),new r(t)}closest(e){const t=[];return this.elements.forEach(o=>{const n=o.closest(e);n&&!t.includes(n)&&t.push(n)}),new r(t)}siblings(e){const t=[];return this.elements.forEach(o=>{o.parentElement&&Array.from(o.parentElement.children).forEach(n=>{n===o||t.includes(n)||e&&!n.matches(e)||t.push(n)})}),new r(t)}next(e){const t=[];return this.elements.forEach(o=>{let n=o.nextElementSibling;n&&(e&&!n.matches(e)||t.push(n))}),new r(t)}nextAll(e){const t=[];return this.elements.forEach(o=>{let n=o.nextElementSibling;for(;n;)e&&!n.matches(e)||t.includes(n)||t.push(n),n=n.nextElementSibling}),new r(t)}prev(e){const t=[];return this.elements.forEach(o=>{let n=o.previousElementSibling;n&&(e&&!n.matches(e)||t.push(n))}),new r(t)}prevAll(e){const t=[];return this.elements.forEach(o=>{let n=o.previousElementSibling;for(;n;)e&&!n.matches(e)||t.includes(n)||t.unshift(n),n=n.previousElementSibling}),new r(t)}first(){return new r(this.elements[0]?[this.elements[0]]:[])}last(){return new r(this.elements.length?[this.elements[this.elements.length-1]]:[])}eq(e){const t=e<0?this.elements.length+e:e;return new r(this.elements[t]?[this.elements[t]]:[])}get(e){if(void 0===e)return this.elements;const t=e<0?this.elements.length+e:e;return this.elements[t]}filter(e){return new r("function"==typeof e?this.elements.filter((t,o)=>e.call(t,o,t)):this.elements.filter(t=>t.matches(e)))}not(e){return new r("function"==typeof e?this.elements.filter((t,o)=>!e.call(t,o,t)):this.elements.filter(t=>!t.matches(e)))}is(e){return this.elements.some(t=>t.matches(e))}has(e){return new r(this.elements.filter(t=>t.querySelector(e)))}add(e){const t=new r(e),o=[...this.elements];return t.elements.forEach(e=>{o.includes(e)||o.push(e)}),new r(o)}contents(){const e=[];return this.elements.forEach(t=>{e.push(...t.childNodes)}),new r(e)}toArray(){return[...this.elements]}index(e){if(void 0===e){const e=this.elements[0];return e&&e.parentElement?Array.from(e.parentElement.children).indexOf(e):-1}return"string"==typeof e?new r(e).elements.indexOf(this.elements[0]):this.elements.indexOf(e)}each(e){return this.elements.forEach((t,o)=>e.call(t,o,t)),this}html(e,t={}){if(void 0===e){const e=this.elements[0];return e?e.innerHTML:""}return!1!==t.safe&&(e=i.sanitize(e,t)),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(e){return new r(e).append(this),this}prependTo(e){return new r(e).prepend(this),this}insertAfter(e){return new r(e).after(this),this}insertBefore(e){return new r(e).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(e=!0){return new r(this.elements.map(t=>t.cloneNode(e)))}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(e){return new r(e).replaceWith(this),this}_getNodes(e,t,o){if("function"==typeof e&&(e=e.call(o,t,o.innerHTML)),"string"==typeof e){if(e.trim().startsWith("<")){const t=document.createElement("div");return t.innerHTML=e,Array.from(t.childNodes)}return[document.createTextNode(e)]}return e instanceof HTMLElement?[e.cloneNode(!0)]:e instanceof r?e.elements.map(e=>e.cloneNode(!0)):[]}_getWrapper(e,t,o){let n;if("function"==typeof e&&(e=e.call(o,t)),"string"==typeof e){const t=document.createElement("div");t.innerHTML=e.trim(),n=t.firstElementChild}else n=e instanceof HTMLElement?e.cloneNode(!0):e instanceof r?e.elements[0].cloneNode(!0):document.createElement("div");return n}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(e,t){return this.each((o,n)=>{"none"===getComputedStyle(n).display?new r(n).show(e,t):new r(n).hide(e,t)})}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(e=400,t){return this.each((o,n)=>{"none"===getComputedStyle(n).display||"0"===getComputedStyle(n).opacity?new r(n).fadeIn(e,t):new r(n).fadeOut(e,t)})}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(e=400,t){return this.each((o,n)=>{"none"===getComputedStyle(n).display?new r(n).slideDown(e,t):new r(n).slideUp(e,t)})}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(e){if(void 0===e){const e=this.elements[0];if(!e)return;return e.getBoundingClientRect().width}return this.each((t,o)=>{const n="function"==typeof e?e.call(o,t,new r(o).width()):e;o.style.width="number"==typeof n?n+"px":n})}height(e){if(void 0===e){const e=this.elements[0];if(!e)return;return e.getBoundingClientRect().height}return this.each((t,o)=>{const n="function"==typeof e?e.call(o,t,new r(o).height()):e;o.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(e){if(void 0===e){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((t,o)=>{"static"===getComputedStyle(o).position&&(o.style.position="relative");const n=new r(o).offset(),s=parseFloat(getComputedStyle(o).left)||0,i=parseFloat(getComputedStyle(o).top)||0;void 0!==e.left&&(o.style.left=s+e.left-n.left+"px"),void 0!==e.top&&(o.style.top=i+e.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 r(this.elements.map(e=>e.offsetParent||document.body))}}const a=(e,t)=>"function"==typeof e?("loading"===document.readyState?document.addEventListener("DOMContentLoaded",e):e(),new r([])):new r(e,t),l={async request(e,t,o=null,n={}){const s={method:e,headers:{...n.headers},credentials:n.credentials||"include",...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){let t=`HTTP Error: ${e.status}`;try{const o=await e.json();o.message?t=o.message:o.error&&(t=o.error)}catch(o){t=`HTTP Error: ${e.status} ${e.statusText}`}throw new Error(t)}return await e.json()}catch(e){throw n.silent||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)}},h={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=h[e](this._value,...t),this})});return["sum","mean","min","max","toArray","toJSON","toString"].forEach(e=>{"function"==typeof this[e]&&(t[e]=function(...t){return h[e](this._value,...t)})}),t}};class c{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 d extends c{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 u extends c{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 p extends c{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!==V?V:"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 m={_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">';if(t.title){const e=i.sanitize(String(t.title),{preset:"basic"});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;">${e}</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;">`;const r=t.unsafe?String(t.content):i.sanitize(String(t.content));return s+=r,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",o=i.sanitize(String(e.id),{preset:"basic"}),n=i.sanitize(String(e.text),{preset:"basic"});s+=`<button type="button" class="btn btn-${t}" data-button-id="${o}">${n}</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 p(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 f extends c{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 v extends c{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 k extends c{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=i.sanitize(String(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 g extends c{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=g.variants[e.variant]||g.variants.primary,o=g.sizes[e.size]||g.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 _ extends c{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 y{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(!y._containers[e]){const t=document.createElement("div");t.className=`domma-toast-container domma-toast-${e}`,document.body.appendChild(t),y._containers[e]=t}return y._containers[e]}static show(e,t={}){const o={...y.defaults,...t},n=y._getContainer(o.position);for(;y._toasts.length>=o.maxToasts;){const e=y._toasts.shift();e&&e.close()}const s=new M(e,o,n);return y._toasts.push(s),s}static success(e,t={}){return y.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 y.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 y.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 y.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(){y._toasts.forEach(e=>e.close()),y._toasts=[]}}class M{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=M.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=i.sanitize(String(t.icon),{preset:"basic"}),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=i.sanitize(String(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");if(e.className="domma-toast-close",e.setAttribute("aria-label","Close"),"undefined"!=typeof window&&window.Domma&&window.Domma.icons){const t=window.Domma.icons.render("close",{size:16});t?e.appendChild(t):e.textContent="×"}else e.textContent="×";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=y._toasts.indexOf(this);t>-1&&y._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 b{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(!b.isSupported)return console.warn("Notifications are not supported in this browser"),"denied";try{const e=await Notification.requestPermission();return b.permission=e,e}catch(e){return console.error("Error requesting notification permission:",e),"denied"}}static notify(e,t={}){const o=new b({title:e,...t});return o.show(),o}static closeAll(){b._instances.forEach(e=>{e.isShown()&&e.close()}),b._instances=[]}constructor(e={}){this.options={...b.defaults,...e},this.notification=null,this._shown=!1}async show(){if(!b.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"!==b.permission){if("default"!==b.permission)return console.warn("Notification permission denied"),this.options.onError&&this.options.onError(new Error("Permission denied")),this;if("granted"!==await b.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,b._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=b._instances.indexOf(this);t>-1&&b._instances.splice(t,1),this.options.onClose(e,this)}:this.notification.onclose=()=>{this._shown=!1;const e=b._instances.indexOf(this);e>-1&&b._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 w extends c{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={...w.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&&b.isSupported){const e={title:"Timer Complete",body:"Your countdown has finished",...this.options.notificationOptions};b.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 L{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(L._instance)return L._instance;this.options={...L.defaults,...e},this._alarms=[],this._init(),L._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}));L._nextAlarmId=e+1}}else this.options.alarms&&this.options.alarms.length>0&&(this._alarms=this.options.alarms.map(e=>({id:"alarm-"+L._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(){L._checkInterval||(L._checkInterval=setInterval(()=>{this._checkAlarms()},this.options.checkInterval),this._checkAlarms())}_stopChecking(){L._checkInterval&&(clearInterval(L._checkInterval),L._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&&b.isSupported){const t={title:"Alarm",body:e.label||`Alarm at ${e.time}`,requireInteraction:!0,...e.notificationOptions};b.notify(t.title,t)}this.options.onTrigger&&this.options.onTrigger(e),e.repeat||(e.enabled=!1,this._saveAlarms())}add(e){const t={id:"alarm-"+L._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=[],L._instance=null}}class x extends c{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 C extends c{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,consentVersion:"1.0",onVersionMismatch:null,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 e.version&&e.version!==this.options.consentVersion?(this._state="undecided",this._preferences={},Object.keys(this.options.categories).forEach(e=>{const t=this.options.categories[e];this._preferences[e]=t.required||!this.options.requireExplicitConsent}),void(this.options.onVersionMismatch&&this.options.onVersionMismatch(e.version,this.options.consentVersion))):(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(),version:this.options.consentVersion})}_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 E extends c{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,n="bottom-left"===e,s={position:this._scrollContainer?"absolute":"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(){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,n=s=>{const i=s-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(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 S={_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 r=document.createElement("div");r.className=`dm-dialog dm-dialog-${e}${o.className?" "+o.className:""}`,r.setAttribute("role","dialog"),r.setAttribute("aria-modal","true");let a='<div class="dm-dialog-content">';if(o.title){a+=`<div class="dm-dialog-header"><h3 class="dm-dialog-title">${i.sanitize(String(o.title),{preset:"basic"})}</h3></div>`}if(a+='<div class="dm-dialog-body">',o.message){a+=`<p class="dm-dialog-message">${i.sanitize(String(o.message),{preset:"basic"})}</p>`}if("prompt"===e){const e=i.sanitize(String(o.inputPlaceholder||""),{preset:"basic"}),t=i.sanitize(String(o.inputValue||""),{preset:"basic"});a+=`<input type="${o.inputType}" class="dm-dialog-input form-input" placeholder="${e}" value="${t}">`}a+="</div>",a+='<div class="dm-dialog-footer">',"confirm"!==e&&"prompt"!==e||(a+=`<button type="button" class="btn btn-outline dm-dialog-cancel">${o.cancelText}</button>`),a+=`<button type="button" class="btn btn-primary dm-dialog-confirm">${o.confirmText}</button>`,a+="</div></div>",r.innerHTML=a,s.appendChild(r),n.appendChild(s);const l=r.querySelector(".dm-dialog-confirm"),h=r.querySelector(".dm-dialog-cancel"),c=r.querySelector(".dm-dialog-input"),d=c||l;setTimeout(()=>d?.focus(),50),c&&c.select();const u=e=>{o.animation?(s.classList.add("dm-dialog-closing"),setTimeout(()=>{s.remove(),t(e)},200)):(s.remove(),t(e))},p=()=>{u("prompt"===e?c.value:"confirm"===e||void 0)},m=()=>{u("prompt"===e&&null)};if(l.addEventListener("click",p),h?.addEventListener("click",m),o.backdropClose&&s.addEventListener("click",e=>{e.target===s&&m()}),o.keyboard){const t=o=>{"Escape"===o.key?(m(),document.removeEventListener("keydown",t)):("Enter"===o.key&&"prompt"!==e||"Enter"===o.key&&"prompt"===e&&o.target===c)&&(p(),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 z extends c{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 B extends c{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:B.sizes[e]||B.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=B._overlayInstances.get(o);return n||(n=new B(o,t),B._overlayInstances.set(o,n)),n.show(),n}static hide(e){const t="string"==typeof e?document.querySelector(e):e,o=B._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 B(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 j extends c{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 j.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 A extends c{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)=>{if(e.divider)r+='<li class="navbar-dropdown-divider"></li>';else{const n=e.url||"#",s=e.external||n.startsWith("http://")||n.startsWith("https://");r+=`<li><a href="${n}" class="navbar-dropdown-item" data-index="${t}" data-subindex="${o}"${s?' target="_blank" rel="noopener noreferrer"':""}>${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 W extends c{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:n,header:s,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),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 d="";if(s){if(d+='<div class="sidebar-header">',s.icon&&(d+=`<span class="sidebar-header-icon" data-icon="${s.icon}" data-size="24"></span>`),s.title&&(d+=`<h3 class="sidebar-header-title">${s.title}</h3>`),l&&!1!==s.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 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();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,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)}}_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,n=document.getElementById(o);n&&e.push({element:n,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 T extends c{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>`),e.description&&(s+=`<p class="footer-brand-description">${e.description}</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 H extends c{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 $ extends c{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 D extends c{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=i.sanitize(String(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 D(t,e);return c._schema=s,c._data=i,c._onSave=l,c}}class I extends c{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"),n=e.status||"planned",s=this.options.currentItem===e.id||this.options.currentItem===t;o.className=`dm-progression-item dm-progression-status-${n}${s?" dm-progression-current":""}`,o.setAttribute("data-index",t),o.setAttribute("data-id",e.id||t),o.setAttribute("data-status",n),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[n]?i+=`<span class="dm-progression-status-icon" data-icon="${this.options.icons[n]}"></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"===n&&"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),n=this.options.items[o];n&&"completed"!==n.status&&this._cycleStatus(n,o)}}))}_cycleStatus(e,t){const o=["planned","in-progress","completed"],n=o.indexOf(e.status||"planned"),s=o[(n+1)%o.length];this.setStatus(t,s)}_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 V={_instances:new Map,card(e,t={}){const o=new u(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 m.createModal(e);const o=new p(e,t);return o.element&&this._instances.set(o.element,o),o},tabs(e,t={}){const o=new f(e,t);return o.element&&this._instances.set(o.element,o),o},accordion(e,t={}){const o=new v(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 k(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 g(e,t);this._instances.set(e,o),n.push(o)}return 1===n.length?n[0]:n},dropdown(e,t={}){const o=new _(e,t);return o.element&&this._instances.set(o.element,o),o},carousel(e,t={}){const o=new x(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 C(e);return this._instances.set("cookieConsent",t),t},backToTop(e,t={}){const o=new E(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 z(e,t);this._instances.set(e,o),n.push(o)}return 1===n.length?n[0]:n},loader(e,t={}){const o=new B(e,t);return o.element&&this._instances.set(o.element,o),o},showLoader:B.show.bind(B),hideLoader:B.hide.bind(B),fullscreenLoader:B.fullscreen.bind(B),breadcrumbs(e,t={}){const o=new j(e,t);return o.element&&this._instances.set(o.element,o),o},navbar(e,t={}){const o=new A(e,t);return o.element&&this._instances.set(o.element,o),o},sidebar(e,t={}){const o=new W(e,t);return o.element&&this._instances.set(o.element,o),o},footer(e,t={}){const o=new T(e,t);return o.element&&this._instances.set(o.element,o),o},notification:(e={})=>new b(e),notify:(e,t={})=>b.notify(e,t),timer(e,t={}){const o=new w(e,t);return o.element&&this._instances.set(o.element,o),o},alarm:(e={})=>new L(e),autocomplete(e,t={}){const o=new H(e,t);return o.element&&this._instances.set(o.element,o),o},pillbox(e,t={}){const o=new $(e,t);return o.element&&this._instances.set(o.element,o),o},treeView(e,t={}){const o=new d(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,D.create(e);const o=new D(e,t);return o.element&&this._instances.set(o.element,o),o},progression(e,t={}){const o=new I(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={})=>y.show(e,t),{show:y.show.bind(y),success:y.success.bind(y),error:y.error.bind(y),warning:y.warning.bind(y),info:y.info.bind(y),closeAll:y.closeAll.bind(y)}),dialog:S,alert:S.alert.bind(S),confirm:S.confirm.bind(S),prompt:S.prompt.bind(S),createModal:m.createModal.bind(m),showModal:m.showModal.bind(m),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}`)}},O={_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 N{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,h.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=q.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,h.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&&O.remove(`model:${this._persistKey}`)}getPersistKey(){return this._persistKey}isPersisted(){return null!==this._persistKey}_saveToStorage(){if(!this._persistKey)return!1;try{return O.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=O.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 P{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 q={_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 N(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 P(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 F{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={...F.defaults,...o},this.model=null,this.errors={},this.touched=new Set,this.utils=window.Domma?.utils||h,this.models=window.Domma?.models||q,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="${F.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 R={create:(e,t={},o={})=>new F(e,t,o),render:(e,t,o={},n={})=>new F(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 F(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 F(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 F(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 F(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 F(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 F(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:n,title:s="Manage Items",primaryKey:i="id",displayField:r="name",headers:a={},onError:l=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:{...a,...t}});if(!n.success)throw new Error(n.message||"Failed to load data");u=n.data||[]}catch(e){throw l(e),e}},createTable(){if(!n)return;const e=Object.entries(t).map(([e,t])=>({key:e,title:t.label||(window.Domma?.utils||h).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[i]}">\n ${o}\n Edit\n </button>\n <button class="btn btn-danger crud-delete-btn" data-id="${t[i]}">\n ${n}\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-${s.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(){R.modal(t,{},{title:`Create New ${s.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:{...a,...n}});if(!s.success)throw new Error(s.message||"Failed to create item");c("Item created successfully"),await this.refresh()}catch(e){throw l(e),e}}}).open()},async edit(e){const n=u.find(t=>t[i]==e);if(!n)return void l(new Error("Item not found"));R.modal(t,n,{title:`Edit ${n[r]||"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:{...a,...s}});if(!i.success)throw new Error(i.message||"Failed to update item");c("Item updated successfully"),await this.refresh()}catch(e){throw l(e),e}}}).open()},async delete(e){const t=u.find(t=>t[i]==e);if(!t)return void l(new Error("Item not found"));if(await window.Domma.elements.confirm(`Are you sure you want to delete "${t[r]||"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:{...a,...n}});if(!s.success)throw new Error(s.message||"Failed to delete item");c("Item deleted successfully"),await this.refresh()}catch(e){l(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[i]==e);-1!==o&&(u[o]={...u[o],...t},d&&d.setData(u))},removeItem:e=>{const t=u.findIndex(t=>t[i]==e);-1!==t&&(u.splice(t,1),d&&d.setData(u))}}}},K={_configs:new Map,_components:new Map,_eventHandlers:new Map,process(e){e&&"object"==typeof e&&Object.keys(e).forEach(t=>{const o=e[t];this._configs.set(t,h.cloneDeep(o));const n=a(t);if(o.component){const e=this.initComponent(t,o.component,o.options||{});e&&this._components.set(t,e)}o.initial&&this.applyProperties(n,o.initial),o.events&&this.bindEvents(t,o.events,!0)})},update(e,t){const o=this._configs.get(e);if(!o)return this.process({[e]:t}),this._configs.get(e);const n=h.merge({},o,t);this._configs.set(e,n);const s=a(e);if(t.options&&this._components.has(e)){const o=this._components.get(e);o&&"function"==typeof o.setOptions&&o.setOptions(t.options)}return t.initial&&this.applyProperties(s,t.initial),t.events&&this.updateEvents(e,t.events),n},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:V.card,modal:V.modal,tabs:V.tabs,accordion:V.accordion,tooltip:V.tooltip,carousel:V.carousel,dropdown:V.dropdown,badge:V.badge,cookieConsent:V.cookieConsent,backToTop:V.backToTop,buttonGroup:V.buttonGroup,loader:V.loader,breadcrumbs:V.breadcrumbs,navbar:V.navbar,sidebar:V.sidebar,footer:V.footer,notification:V.notification,timer:V.timer,alarm:V.alarm,autocomplete:V.autocomplete,pillbox:V.pillbox,form:R.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(V,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,t,o=!1){const n=a(e);o&&!this._eventHandlers.has(e)&&this._eventHandlers.set(e,new Map),Object.keys(t).forEach(s=>{const i=t[s],r=e=>this.executeActions(e,i);n.on(s,r),o&&this._eventHandlers.get(e).set(s,r)})},unbindEvents(e){const t=this._eventHandlers.get(e);if(!t)return;const o=a(e);t.forEach((e,t)=>{o.off(t,e)}),this._eventHandlers.delete(e)},updateEvents(e,t){const o=this._eventHandlers.get(e),n=a(e);o&&Object.keys(t).forEach(e=>{o.has(e)&&(n.off(e,o.get(e)),o.delete(e))}),this.bindEvents(e,t,!0)},executeActions(e,t){if("function"==typeof t)return void t.call(e.target,e,a(e.target));const o=Array.isArray(t)?t:[t],n=a(e.target);o.forEach(t=>{if("function"==typeof t)return void t.call(e.target,e,n);const o=t.target?a(t.target):n;t.css&&o.css(t.css),t.text&&o.text(t.text),t.html&&o.html(t.html),t.addClass&&o.addClass(t.addClass),t.removeClass&&o.removeClass(t.removeClass),t.toggleClass&&o.toggleClass(t.toggleClass),t.log&&console.log(t.log)})}},U=1e3,Y=6e4,J=36e5,G=864e5,Q=6048e5,Z=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],X=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],ee=["January","February","March","April","May","June","July","August","September","October","November","December"],te=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];class oe{constructor(e){e instanceof oe?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:ee[n],MMM:te[n],MM:d(n+1),M:n+1,dddd:Z[i],ddd:X[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 oe(e)._date:new Date,o=this._date.getTime()-t.getTime(),n=Math.abs(o),s=o<0;let i,r;return n<Y?"just now":(n<J?(i=Math.floor(n/Y),r=1===i?"minute":"minutes"):n<G?(i=Math.floor(n/J),r=1===i?"hour":"hours"):n<Q?(i=Math.floor(n/G),r=1===i?"day":"days"):n<30*G?(i=Math.floor(n/Q),r=1===i?"week":"weeks"):n<365*G?(i=Math.floor(n/(30*G)),r=1===i?"month":"months"):(i=Math.floor(n/(365*G)),r=1===i?"year":"years"),s?`${i} ${r} ago`:`in ${i} ${r}`)}to(e){const t=new oe(e)._date.getTime()-this._date.getTime(),o=Math.abs(t),n=t>0;let s,i;return o<Y?"just now":(o<J?(s=Math.floor(o/Y),i=1===s?"minute":"minutes"):o<G?(s=Math.floor(o/J),i=1===s?"hour":"hours"):o<Q?(s=Math.floor(o/G),i=1===s?"day":"days"):o<30*G?(s=Math.floor(o/Q),i=1===s?"week":"weeks"):o<365*G?(s=Math.floor(o/(30*G)),i=1===s?"month":"months"):(s=Math.floor(o/(365*G)),i=1===s?"year":"years"),n?`in ${s} ${i}`:`${s} ${i} ago`)}isBefore(e,t){const o=new oe(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 oe(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 oe(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 oe(e),i=new oe(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 oe(e),s=this._date.getTime()-n._date.getTime(),i=this._normalizeUnit(t);let r;return r="milliseconds"===i?s:"seconds"===i?s/U:"minutes"===i?s/Y:"hours"===i?s/J:"days"===i?s/G:"weeks"===i?s/Q:"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 oe(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 ne=function(e){return new oe(e)};Object.assign(ne,{now:()=>Date.now(),parse(e,t){if(!t)return new oe(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 oe(NaN);const i=new oe;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 oe(NaN)}},isValid:e=>new oe(e).isValid(),min(...e){const t=e.flat().map(e=>new oe(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 oe(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 se={"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"},sliders:{viewBox:"0 0 24 24",path:"M4 21v-7m0-4V3m8 18v-9m0-4V3m8 18v-5m0-4V3M1 14h6m2-6h6m2 8h6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"user-check":{viewBox:"0 0 24 24",path:"M16 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2m16-13l2 2 4-4M13 7a4 4 0 11-8 0 4 4 0 018 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}},ie={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 0 1 9 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"}},re={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"},"play-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 M10 8l6 4-6 4V8z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}},ae={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"}},le={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"}},he={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"}},ce={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"},key:{viewBox:"0 0 24 24",path:"M21 2l-2 2m-7.61 7.61a5.5 5.5 0 11-7.778 7.778 5.5 5.5 0 017.777-7.777zm0 0L15.5 7.5m0 0l3 3L22 7l-3-3m-3.5 3.5L19 4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"shield-alert":{viewBox:"0 0 24 24",path:"M12 9v2m0 4h.01M20.618 5.984A11.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"}},de={"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"}},ue={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"}},pe={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"}},me={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"}},fe={"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"}},ve={"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"}},ke={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"}},ge={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"}},_e={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"}},ye={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 Me={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 be={...se,...ie,...re,...ae,...le,...he,...ce,...de,...ue,...pe,...me,...fe,...ve,...ke,...ge,..._e,...ye,...Me},we={ui:{name:"UI",description:"Core user interface icons",icons:Object.keys(se)},communication:{name:"Communication",description:"Messaging and notifications",icons:Object.keys(ie)},media:{name:"Media",description:"Audio, video, and images",icons:Object.keys(re)},files:{name:"Files",description:"Documents and file operations",icons:Object.keys(ae)},social:{name:"Social",description:"Social interactions and sharing",icons:Object.keys(le)},commerce:{name:"Commerce",description:"Shopping and payments",icons:Object.keys(he)},status:{name:"Status",description:"Indicators and alerts",icons:Object.keys(ce)},navigation:{name:"Navigation",description:"Directional and navigation",icons:Object.keys(de)},seasonal:{name:"Seasonal",description:"Festive and holiday icons",icons:Object.keys(ue)},weather:{name:"Weather",description:"Weather conditions and meteorology",icons:Object.keys(pe)},devices:{name:"Devices",description:"Electronic devices and hardware",icons:Object.keys(me)},finance:{name:"Finance",description:"Financial and charts",icons:Object.keys(fe)},health:{name:"Health",description:"Medical and wellness",icons:Object.keys(ve)},sport:{name:"Sport",description:"Sports and fitness",icons:Object.keys(ke)},buildings:{name:"Buildings",description:"Architecture and structures",icons:Object.keys(ge)},emojis:{name:"Emojis",description:"Emoji expressions and faces",icons:Object.keys(_e)},transport:{name:"Transport",description:"Vehicles and transportation",icons:Object.keys(ye)},code:{name:"Code & Editor",description:"Text editing, formatting, and code icons",icons:Object.keys(Me)}},Le="http://www.w3.org/2000/svg";const xe=new class{constructor(){this._icons={...be},this._categories={...we}}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(Le,"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(Le,"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(Le,"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(Le,"svg");return e.setAttribute("xmlns",Le),e.style.display="none",Object.entries(this._icons).forEach(([t,o])=>{const n=document.createElementNS(Le,"symbol");if(n.setAttribute("id",`dm-icon-${t}`),n.setAttribute("viewBox",o.viewBox||"0 0 24 24"),o.path){const e=document.createElementNS(Le,"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(Le,"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(Le,"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(Le,"use");return r.setAttributeNS("http://www.w3.org/1999/xlink","href",`#dm-icon-${e}`),s.appendChild(r),s}};class Ce{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,Ce.hoverColors,Ce.hoverColors.default):"transparent"};const o=e%2==1,n=this._resolveColor(t.evenRowColor,Ce.stripeColors,"transparent"),s=this._resolveColor(t.oddRowColor,Ce.stripeColors,Ce.stripeColors.default);return{background:o?s:n,hover:t.hover?this._resolveColor(t.hoverColor,Ce.hoverColors,Ce.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=O.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()};O.set(e,t)}catch(e){console.warn("Failed to save table settings:",e)}}clearSettings(){if(this.options.persistSettings){const e=this._getStorageKey();O.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 h.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 s=document.createElement("div");s.className=t.wrapper;const i=document.createElement("div");if(i.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",h.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)}i.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=`${xe.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),i.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 r=document.createElement("label");r.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),r.appendChild(a),r.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(r),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:xe.html("clipboard",{size:16}),format:"text"},csv:{label:"CSV",icon:xe.html("document",{size:16}),format:"csv"},excel:{label:"Excel",icon:xe.html("grid",{size:16}),format:"excel"},json:{label:"JSON",icon:xe.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)}i.appendChild(t)}(e.searchable||e.columnToggle||e.exportPanel)&&s.appendChild(i);const r=document.createElement("table");r.className=t.table,r.style.cssText="width: 100%; border-collapse: collapse;";const a=document.createElement("thead");a.className=t.header;const l=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),l.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,l.appendChild(o)}a.appendChild(l),r.appendChild(a);const c=document.createElement("tbody");c.className=t.body;const d=e.rowKey;if(n.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)}),r.appendChild(c),s.appendChild(r),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(),i=document.createElement("span");i.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(xe.html("chevrons-left",{size:14}),()=>this.firstPage(),1===this._currentPage,!0)),l.appendChild(h(xe.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(xe.html("chevron-right",{size:14}),()=>this.nextPage(),this._currentPage===n.totalPages,!0)),l.appendChild(h(xe.html("chevrons-right",{size:14}),()=>this.lastPage(),this._currentPage===n.totalPages,!0)),o.appendChild(r),o.appendChild(i),o.appendChild(l),s.appendChild(o)}return this.element.appendChild(s),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 Ee={_instances:new Map,create(e,t={}){const o="string"==typeof e?document.querySelector(e):e,n=new Ce(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()}},Se="domma-theme",ze="domma-theme-variant",Be="dm-theme-",je=["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"],Ae="charcoal-dark";const We=new class{constructor(){this._theme=Ae,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||Ae,je.includes(r)||(console.warn(`Invalid theme: ${r}. Using default: ${Ae}`),r=Ae),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(!je.includes(e))return console.warn(`Invalid theme: ${e}. Available themes: ${je.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(!je.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[...je]}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(Be));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(Be));o.push(`${Be}${this._theme}`),t.className=o.join(" ").trim(),e&&this._updateMetaThemeColor()}_saveToStorage(){if(this._persist&&"undefined"!=typeof localStorage)try{localStorage.setItem(Se,this._theme),localStorage.removeItem(ze)}catch(e){}}_loadFromStorage(){if("undefined"==typeof localStorage)return null;try{const e=localStorage.getItem(Se);if(e&&je.includes(e))return e;const t=e,o=localStorage.getItem(ze);if(t&&["light","dark"].includes(t)){const e=`${o||"charcoal"}-${t}`;if(console.log(`[ThemeEngine] Migrating theme: ${t} + ${o} → ${e}`),je.includes(e))return localStorage.setItem(Se,e),localStorage.removeItem(ze),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}`;je.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",()=>{We._initialised||We.init({persist:!0,autoDetect:!1})}):We._initialised||We.init({persist:!0,autoDetect:!1}));const Te={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=O.get(this.config.storageKey),this.user=O.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 o=await l.post(`${this.apiUrl}/auth/login`,{email:e,password:t});if(!o.success||!o.token)throw new Error(o.message||"Login failed");return this.token=o.token,this.user=o.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,o){if(!this.initialized)throw new Error("Auth module not initialized. Call auth.init() first.");try{const n=await l.post(`${this.apiUrl}/auth/register`,{email:e,password:t,name:o});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 l.get(`${this.apiUrl}/auth/me`,{headers:this.getHeaders(),silent:!0});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){O.set(this.config.storageKey,e)},_storeUser(e){O.set(this.config.userStorageKey,e)},_clearToken(){O.remove(this.config.storageKey),this.token=null},_clearUser(){O.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 He extends c{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 Te.login(t,o),this.options.onSuccess&&this.options.onSuccess(Te.getUser())}catch(e){this.options.onError&&this.options.onError(e)}}}class $e extends c{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 <div class="form-group">\n ${e.showLabels?'<label class="form-label">Confirm Password</label>':""}\n <input\n type="password"\n class="form-input"\n name="confirmPassword"\n placeholder="Re-enter your password"\n minlength="${e.minPasswordLength}"\n required>\n </div>\n \x3c!-- Honeypot field - hidden from users, bots will fill it --\x3e\n <div class="form-group" style="position: absolute; left: -9999px; opacity: 0; pointer-events: none;" aria-hidden="true">\n <label for="website">Website</label>\n <input\n type="text"\n class="form-input"\n name="website"\n id="website"\n tabindex="-1"\n autocomplete="off">\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,s=e.querySelector('[name="confirmPassword"]').value;if(e.querySelector('[name="website"]').value)return console.warn("[Auth] Honeypot triggered - possible bot detected"),void(this.options.onError&&this.options.onError(new Error("Registration failed. Please try again.")));if(n===s){this.options.onSubmit&&this.options.onSubmit(o,n,t);try{await Te.register(o,n,t),this.options.onSuccess&&this.options.onSuccess(Te.getUser())}catch(e){this.options.onError&&this.options.onError(e)}}else this.options.onError&&this.options.onError(new Error("Passwords do not match. Please try again."))}}class De extends c{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 Ie extends c{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()}),Te.on("login",()=>this.render()),Te.on("logout",()=>this.render())}render(){const e=this.options,t=Te.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(){Te.logout(),this.options.onLogout&&this.options.onLogout()}}Te.LoginForm=He,Te.RegisterForm=$e,Te.AuthTabs=De,Te.UserInfo=Ie,Te.createLoginForm=(e,t)=>new He(e,t),Te.createRegisterForm=(e,t)=>new $e(e,t),Te.createAuthTabs=(e,t)=>new De(e,t),Te.createUserInfo=(e,t)=>new Ie(e,t);let Ve=!0;"undefined"!=typeof document&&document.body?document.body.classList.add("dm-cloaked"):"undefined"!=typeof document&&document.addEventListener("DOMContentLoaded",()=>{Ve&&document.body.classList.add("dm-cloaked")});const Oe=(e,t)=>a(e,t);Oe.version="0.9.6-alpha",Oe.buildInfo={version:"0.9.6-alpha",built:"16/01/2026 11:22",commit:"90ec825"},Oe.http=l,Oe.utils=h,Oe.setup=e=>(!1===e.cloak&&(Ve=!1,"undefined"!=typeof document&&document.body&&(document.body.classList.remove("dm-cloaked"),document.body.classList.add("dm-ready"))),e.noStyles?We.init({disabled:!0}):(e.theme||e.autoDetectTheme)&&We.init({theme:e.theme,autoDetect:e.autoDetectTheme,persist:!1!==e.persistTheme}),e.scanIcons&&xe.scan(),K.process(e)),Oe.update=(e,t)=>K.update(e,t),Oe.config=e=>K.config(e),Oe.reset=e=>K.reset(e),Oe.models=q,Oe.elements=V,Oe.dates=ne,Oe.tables=Ee,Oe.forms=R,Oe.theme=We,Oe.icons=xe,Oe.storage=O,Oe.auth=Te,Oe.sanitize=i,Oe.DesktopNotification=b;const Ne=Oe,Pe=h,qe=q,Fe=ne,Re=O,Ke=Te,Ue=R,Ye=l,Je=V,Ge=xe,Qe=Ee;if(Oe.M=qe,Oe.D=Fe,Oe.S=Re,Oe.A=Ke,Oe.F=Ue,Oe.H=Ye,Oe.E=Je,Oe.I=Ge,Oe.T=Qe,"undefined"!=typeof window&&(window.Domma=Oe,window.$=Ne,window._=Pe,window.M=qe,window.D=Fe,window.S=Re,window.A=Ke,window.F=Ue,window.H=Ye,window.E=Je,window.I=Ge,window.T=Qe),"undefined"!=typeof document){const e=()=>{Ve&&document.body.classList.contains("dm-cloaked")&&document.body.classList.add("dm-ready")};"complete"===document.readyState?setTimeout(e,0):window.addEventListener("load",e)}export{Ne as $,Ke as A,Fe as D,Oe as Domma,Je as E,Ue as F,Ye as H,Ge as I,qe as M,Re as S,Qe as T,Pe as _,Oe as default};
|
|
8
|
+
function e(e){if(null==e)return"";const t=document.createElement("div");return t.textContent=String(e),t.innerHTML}function t(){return"undefined"!=typeof window&&void 0!==window.DOMPurify}const o={ALLOWED_TAGS:["b","i","em","strong","u","s","mark","small","del","ins","sub","sup","p","br","hr","div","span","blockquote","pre","code","ul","ol","li","dl","dt","dd","h1","h2","h3","h4","h5","h6","a","table","thead","tbody","tfoot","tr","th","td","caption","col","colgroup","img","figure","figcaption","article","section","nav","aside","header","footer","main","time","address"],ALLOWED_ATTR:["href","title","target","rel","class","id","alt","src","width","height","colspan","rowspan","aria-label","aria-describedby","aria-hidden","role"],ALLOWED_URI_REGEXP:/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,ALLOW_DATA_ATTR:!1,ALLOW_UNKNOWN_PROTOCOLS:!1,SAFE_FOR_TEMPLATES:!0,RETURN_DOM:!1,RETURN_DOM_FRAGMENT:!1,FORCE_BODY:!0},n={default:o,strict:{ALLOWED_TAGS:["b","i","em","strong","p","br","a","ul","ol","li"],ALLOWED_ATTR:["href","title","target"],ALLOW_DATA_ATTR:!1},basic:{ALLOWED_TAGS:["b","i","em","strong","br"],ALLOWED_ATTR:[],ALLOW_DATA_ATTR:!1}};function s(s,i={}){if(null==s||""===s)return"";if(s=String(s),t()){const t=i.preset||"default",r={...n[t]||o,...i.allowedTags&&{ALLOWED_TAGS:i.allowedTags},...i.allowedAttrs&&{ALLOWED_ATTR:i.allowedAttrs},...void 0!==i.allowDataAttrs&&{ALLOW_DATA_ATTR:i.allowDataAttrs}};try{return window.DOMPurify.sanitize(s,r)}catch(t){return console.error("DOMPurify sanitization failed:",t),e(s)}}return console.warn("DOMPurify not available. Using HTML escape fallback. For better XSS protection, include DOMPurify."),e(s)}"undefined"==typeof window||t()||console.warn("%c⚠️ Security Warning: DOMPurify not loaded","color: orange; font-weight: bold; font-size: 14px;","\nFor robust XSS protection, include DOMPurify before Domma:",'\n<script src="https://cdn.jsdelivr.net/npm/dompurify@3/dist/purify.min.js"><\/script>',"\nCurrently using HTML escape fallback.");var i={sanitize:s,sanitizeBasic:function(e){return s(e,{preset:"basic"})},sanitizeUserContent:function(e){return s(e,{preset:"strict"})},escape:function(t){return e(t)},hasDOMPurify:function(){return t()}};class r{constructor(e,t){if("string"==typeof e)if(e.trim().startsWith("<")){const t=document.createElement("div");t.innerHTML=e.trim(),this.elements=Array.from(t.children)}else{const o=t||document;this.elements=Array.from(o.querySelectorAll(e))}else e instanceof Node?this.elements=[e]:e instanceof NodeList||e instanceof HTMLCollection?this.elements=Array.from(e):Array.isArray(e)?this.elements=e.filter(e=>e instanceof HTMLElement):this.elements=e instanceof r?[...e.elements]:[];this.length=this.elements.length}find(e){const t=[];return this.elements.forEach(o=>{t.push(...o.querySelectorAll(e))}),new r(t)}children(e){const t=[];return this.elements.forEach(e=>{t.push(...e.children)}),new r(e?t.filter(t=>t.matches(e)):t)}parent(e){const t=[];return this.elements.forEach(o=>{o.parentElement&&(e&&!o.parentElement.matches(e)||t.includes(o.parentElement)||t.push(o.parentElement))}),new r(t)}parents(e){const t=[];return this.elements.forEach(o=>{let n=o.parentElement;for(;n;)e&&!n.matches(e)||t.includes(n)||t.push(n),n=n.parentElement}),new r(t)}closest(e){const t=[];return this.elements.forEach(o=>{const n=o.closest(e);n&&!t.includes(n)&&t.push(n)}),new r(t)}siblings(e){const t=[];return this.elements.forEach(o=>{o.parentElement&&Array.from(o.parentElement.children).forEach(n=>{n===o||t.includes(n)||e&&!n.matches(e)||t.push(n)})}),new r(t)}next(e){const t=[];return this.elements.forEach(o=>{let n=o.nextElementSibling;n&&(e&&!n.matches(e)||t.push(n))}),new r(t)}nextAll(e){const t=[];return this.elements.forEach(o=>{let n=o.nextElementSibling;for(;n;)e&&!n.matches(e)||t.includes(n)||t.push(n),n=n.nextElementSibling}),new r(t)}prev(e){const t=[];return this.elements.forEach(o=>{let n=o.previousElementSibling;n&&(e&&!n.matches(e)||t.push(n))}),new r(t)}prevAll(e){const t=[];return this.elements.forEach(o=>{let n=o.previousElementSibling;for(;n;)e&&!n.matches(e)||t.includes(n)||t.unshift(n),n=n.previousElementSibling}),new r(t)}first(){return new r(this.elements[0]?[this.elements[0]]:[])}last(){return new r(this.elements.length?[this.elements[this.elements.length-1]]:[])}eq(e){const t=e<0?this.elements.length+e:e;return new r(this.elements[t]?[this.elements[t]]:[])}get(e){if(void 0===e)return this.elements;const t=e<0?this.elements.length+e:e;return this.elements[t]}filter(e){return new r("function"==typeof e?this.elements.filter((t,o)=>e.call(t,o,t)):this.elements.filter(t=>t.matches(e)))}not(e){return new r("function"==typeof e?this.elements.filter((t,o)=>!e.call(t,o,t)):this.elements.filter(t=>!t.matches(e)))}is(e){return this.elements.some(t=>t.matches(e))}has(e){return new r(this.elements.filter(t=>t.querySelector(e)))}add(e){const t=new r(e),o=[...this.elements];return t.elements.forEach(e=>{o.includes(e)||o.push(e)}),new r(o)}contents(){const e=[];return this.elements.forEach(t=>{e.push(...t.childNodes)}),new r(e)}toArray(){return[...this.elements]}index(e){if(void 0===e){const e=this.elements[0];return e&&e.parentElement?Array.from(e.parentElement.children).indexOf(e):-1}return"string"==typeof e?new r(e).elements.indexOf(this.elements[0]):this.elements.indexOf(e)}each(e){return this.elements.forEach((t,o)=>e.call(t,o,t)),this}html(e,t={}){if(void 0===e){const e=this.elements[0];return e?e.innerHTML:""}return!1!==t.safe&&(e=i.sanitize(e,t)),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(e){return new r(e).append(this),this}prependTo(e){return new r(e).prepend(this),this}insertAfter(e){return new r(e).after(this),this}insertBefore(e){return new r(e).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(e=!0){return new r(this.elements.map(t=>t.cloneNode(e)))}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(e){return new r(e).replaceWith(this),this}_getNodes(e,t,o){if("function"==typeof e&&(e=e.call(o,t,o.innerHTML)),"string"==typeof e){if(e.trim().startsWith("<")){const t=document.createElement("div");return t.innerHTML=e,Array.from(t.childNodes)}return[document.createTextNode(e)]}return e instanceof HTMLElement?[e.cloneNode(!0)]:e instanceof r?e.elements.map(e=>e.cloneNode(!0)):[]}_getWrapper(e,t,o){let n;if("function"==typeof e&&(e=e.call(o,t)),"string"==typeof e){const t=document.createElement("div");t.innerHTML=e.trim(),n=t.firstElementChild}else n=e instanceof HTMLElement?e.cloneNode(!0):e instanceof r?e.elements[0].cloneNode(!0):document.createElement("div");return n}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(e,t){return this.each((o,n)=>{"none"===getComputedStyle(n).display?new r(n).show(e,t):new r(n).hide(e,t)})}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(e=400,t){return this.each((o,n)=>{"none"===getComputedStyle(n).display||"0"===getComputedStyle(n).opacity?new r(n).fadeIn(e,t):new r(n).fadeOut(e,t)})}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(e=400,t){return this.each((o,n)=>{"none"===getComputedStyle(n).display?new r(n).slideDown(e,t):new r(n).slideUp(e,t)})}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(e){if(void 0===e){const e=this.elements[0];if(!e)return;return e.getBoundingClientRect().width}return this.each((t,o)=>{const n="function"==typeof e?e.call(o,t,new r(o).width()):e;o.style.width="number"==typeof n?n+"px":n})}height(e){if(void 0===e){const e=this.elements[0];if(!e)return;return e.getBoundingClientRect().height}return this.each((t,o)=>{const n="function"==typeof e?e.call(o,t,new r(o).height()):e;o.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(e){if(void 0===e){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((t,o)=>{"static"===getComputedStyle(o).position&&(o.style.position="relative");const n=new r(o).offset(),s=parseFloat(getComputedStyle(o).left)||0,i=parseFloat(getComputedStyle(o).top)||0;void 0!==e.left&&(o.style.left=s+e.left-n.left+"px"),void 0!==e.top&&(o.style.top=i+e.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 r(this.elements.map(e=>e.offsetParent||document.body))}}const a=(e,t)=>"function"==typeof e?("loading"===document.readyState?document.addEventListener("DOMContentLoaded",e):e(),new r([])):new r(e,t),l={async request(e,t,o=null,n={}){const s={method:e,headers:{...n.headers},credentials:n.credentials||"include",...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){let t=`HTTP Error: ${e.status}`;try{const o=await e.json();o.message?t=o.message:o.error&&(t=o.error)}catch(o){t=`HTTP Error: ${e.status} ${e.statusText}`}throw new Error(t)}return await e.json()}catch(e){throw n.silent||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)}},d={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 d=o.leading||!1,h=!1!==o.trailing,c=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!==c&&e-l>=c}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!==c?Math.min(s,c-n):s}(e))}function f(e){return n=void 0,h&&s?u(e):(s=i=void 0,r)}function v(...e){const o=Date.now(),h=p(o);if(s=e,i=this,a=o,h){if(void 0===n)return function(e){return l=e,n=setTimeout(m,t),d?u(e):r}(a);if(void 0!==c)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++,d=t[l];if(void 0===d)return e;if(null===d)return"null";let h;switch(a){case"s":default:h=String(d);break;case"d":case"i":h=String(parseInt(d,10));break;case"f":const e=parseFloat(d);h=void 0!==r?e.toFixed(parseInt(r,10)):String(e);break;case"o":h=Object.prototype.toString.call(d);break;case"j":try{h=JSON.stringify(d)}catch(e){h="[Circular]"}break;case"x":h=parseInt(d,10).toString(16)}if(i){const e=parseInt(i,10),t="0"===s?"0":" ";h="-"===s?h.padEnd(e," "):h.padStart(e,t)}if("+"===s&&("d"===a||"i"===a||"f"===a)){parseFloat(h)>=0&&!h.startsWith("+")&&(h="+"+h)}return h})},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()),d=Array.isArray(l)?l.length>0:Boolean(l);return r(d?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=d[e](this._value,...t),this})});return["sum","mean","min","max","toArray","toJSON","toString"].forEach(e=>{"function"==typeof this[e]&&(t[e]=function(...t){return d[e](this._value,...t)})}),t}};class h{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 c extends h{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},d=this.options.renderNode?this.options.renderNode(e,t,l):this._defaultRenderNode(e,t,l),h=this.options.getBadge?this.options.getBadge(e):null;let c=`\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 ${d}\n ${null!=h?`<span class="dm-treeview-badge">${h}</span>`:""}\n </div>\n ${this.options.actions.length>0?this._renderActions(e):""}\n </div>\n `;return i&&r&&(c+=`<div class="dm-treeview-children" data-parent-id="${s}">`,e[n].forEach(e=>{c+=this._renderNode(e,t+1)}),c+="</div>"),c}_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 d="";return this.options.showIcons&&a&&(d+=`<span class="dm-treeview-icon" data-icon="${a}" ${l?`style="color: ${l};"`:""}></span>`),d+=`<span class="dm-treeview-label">${this._escapeHtml(r)}</span>`,d}_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 u extends HTMLElement{static defaults={};static get observedAttributes(){return[]}constructor(){super(),this._eventHandlers=[],this._options={},this._initialised=!1,this.attachShadow({mode:"open"})}connectedCallback(){this._initialised||(this._options=this._mergeOptions(),this._injectStyles(),this._render(),this._bindEvents(),this._initialised=!0),this._onConnect?.()}disconnectedCallback(){this._cleanup(),this._onDisconnect?.()}attributeChangedCallback(e,t,o){t!==o&&this._initialised&&(this._options[this._attrToOption(e)]=this._parseAttrValue(o),this._onAttributeChange?.(e,t,o))}_mergeOptions(){const e={...this.constructor.defaults};for(const t of this.attributes){e[this._attrToOption(t.name)]=this._parseAttrValue(t.value)}return e}_attrToOption(e){return e.replace(/-([a-z])/g,(e,t)=>t.toUpperCase())}_parseAttrValue(e){if(""===e||"true"===e)return!0;if("false"===e)return!1;if(!isNaN(e)&&""!==e)return Number(e);try{return JSON.parse(e)}catch{return e}}_injectStyles(){const e=document.createElement("style");e.textContent=this._getStyles(),this.shadowRoot.appendChild(e)}_getStyles(){return this.constructor.styles||""}_render(){}_bindEvents(){}_addEventListener(e,t,o,n){e.addEventListener(t,o,n),this._eventHandlers.push({element:e,event:t,handler:o,options:n})}_cleanup(){for(const{element:e,event:t,handler:o,options:n}of this._eventHandlers)e.removeEventListener(t,o,n);this._eventHandlers=[]}_emit(e,t={}){this.dispatchEvent(new CustomEvent(e,{bubbles:!0,composed:!0,detail:t}))}setOptions(e){return this._options={...this._options,...e},"function"==typeof this._applyOptions&&this._applyOptions(),this}destroy(){this._cleanup(),this.remove()}}class p extends u{static defaults={variant:"primary",size:"medium",pill:!1,outline:!1,removable:!1};static get observedAttributes(){return["variant","size","pill","outline","removable"]}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"}};_getStyles(){return"\n \n :host {\n --dm-primary: var(--dm-primary, #6495ED);\n --dm-secondary: var(--dm-secondary, #6c757d);\n --dm-success: var(--dm-success, #28a745);\n --dm-danger: var(--dm-danger, #dc3545);\n --dm-warning: var(--dm-warning, #ffc107);\n --dm-info: var(--dm-info, #17a2b8);\n --dm-white: var(--dm-white, #ffffff);\n --dm-gray-100: var(--dm-gray-100, #f8f9fa);\n --dm-gray-200: var(--dm-gray-200, #e9ecef);\n --dm-gray-300: var(--dm-gray-300, #dee2e6);\n --dm-gray-400: var(--dm-gray-400, #ced4da);\n --dm-gray-500: var(--dm-gray-500, #adb5bd);\n --dm-gray-600: var(--dm-gray-600, #6c757d);\n --dm-gray-700: var(--dm-gray-700, #495057);\n --dm-gray-800: var(--dm-gray-800, #343a40);\n --dm-gray-900: var(--dm-gray-900, #212529);\n --dm-radius-sm: var(--dm-radius-sm, 0.25rem);\n --dm-radius-md: var(--dm-radius-md, 0.375rem);\n --dm-radius-lg: var(--dm-radius-lg, 0.5rem);\n --dm-radius-full: var(--dm-radius-full, 9999px);\n --dm-transition-fast: var(--dm-transition-fast, 150ms);\n --dm-transition-normal: var(--dm-transition-normal, 300ms);\n --dm-transition-slow: var(--dm-transition-slow, 500ms);\n --dm-shadow-sm: var(--dm-shadow-sm, 0 1px 2px 0 rgba(0, 0, 0, 0.05));\n --dm-shadow-md: var(--dm-shadow-md, 0 4px 6px -1px rgba(0, 0, 0, 0.1));\n --dm-shadow-lg: var(--dm-shadow-lg, 0 10px 15px -3px rgba(0, 0, 0, 0.1));\n --dm-shadow-xl: var(--dm-shadow-xl, 0 20px 25px -5px rgba(0, 0, 0, 0.1));\n }\n \n \n * {\n box-sizing: border-box;\n }\n\n :host([hidden]) {\n display: none !important;\n }\n\n \n button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n margin: 0;\n border: none;\n background: transparent;\n color: inherit;\n font: inherit;\n cursor: pointer;\n transition: opacity var(--dm-transition-fast);\n }\n\n button:hover {\n opacity: 0.8;\n }\n\n button:focus {\n outline: 2px solid var(--dm-primary);\n outline-offset: 2px;\n }\n\n button:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n\n :host {\n display: inline-flex;\n }\n\n .badge {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n font-weight: 500;\n line-height: 1;\n transition: all 150ms ease;\n }\n\n .badge-clickable {\n cursor: pointer;\n }\n\n .remove-btn {\n margin-left: 2px;\n width: 14px;\n height: 14px;\n font-size: 16px;\n line-height: 1;\n opacity: 0.7;\n }\n\n .remove-btn:hover {\n opacity: 1;\n }\n "}_render(){const{variant:e,size:t,pill:o,outline:n,removable:s}=this._options,i=p.variants[e]||p.variants.primary,r=p.sizes[t]||p.sizes.medium,a=document.createElement("span");a.className="badge",a.setAttribute("part","badge");const l=o?"9999px":"4px",d=n?"transparent":i.bg,h=n?i.bg:i.color,c=n?`1px solid ${i.bg}`:"none";a.style.cssText=`\n background: ${d};\n color: ${h};\n border: ${c};\n border-radius: ${l};\n padding: ${r.padding};\n font-size: ${r.fontSize};\n `;const u=document.createElement("slot");if(a.appendChild(u),s){const e=document.createElement("button");e.className="remove-btn",e.setAttribute("part","remove-btn"),e.setAttribute("aria-label","Remove"),e.textContent="×",this._addEventListener(e,"click",e=>{e.stopPropagation(),this._emit("remove",{badge:this}),this.remove()}),a.appendChild(e)}this._badge=a,this.shadowRoot.appendChild(a)}_bindEvents(){this._addEventListener(this._badge,"click",e=>{e.target.classList.contains("remove-btn")||this._emit("click",{badge:this,event:e})})}_onAttributeChange(e,t,o){this.shadowRoot.textContent="",this._injectStyles(),this._render(),this._bindEvents()}_applyOptions(){this.shadowRoot.textContent="",this._injectStyles(),this._render(),this._bindEvents()}setVariant(e){return this.setAttribute("variant",e),this}setSize(e){return this.setAttribute("size",e),this}setText(e){return this.textContent=e,this}}customElements.get("domma-badge")||customElements.define("domma-badge",p);class m extends u{static defaults={content:"",position:"top",trigger:"hover",delay:0,hideDelay:0,animation:!0,offset:8,html:!1,visible:!1};static get observedAttributes(){return["content","position","trigger","delay","hide-delay","animation","offset","html","visible"]}constructor(){super(),this._tooltip=null,this._isVisible=!1,this._showTimeout=null,this._hideTimeout=null}_injectStyles(){const e=document.createElement("style");e.textContent='\n \n :host {\n --dm-primary: var(--dm-primary, #6495ED);\n --dm-secondary: var(--dm-secondary, #6c757d);\n --dm-success: var(--dm-success, #28a745);\n --dm-danger: var(--dm-danger, #dc3545);\n --dm-warning: var(--dm-warning, #ffc107);\n --dm-info: var(--dm-info, #17a2b8);\n --dm-white: var(--dm-white, #ffffff);\n --dm-gray-100: var(--dm-gray-100, #f8f9fa);\n --dm-gray-200: var(--dm-gray-200, #e9ecef);\n --dm-gray-300: var(--dm-gray-300, #dee2e6);\n --dm-gray-400: var(--dm-gray-400, #ced4da);\n --dm-gray-500: var(--dm-gray-500, #adb5bd);\n --dm-gray-600: var(--dm-gray-600, #6c757d);\n --dm-gray-700: var(--dm-gray-700, #495057);\n --dm-gray-800: var(--dm-gray-800, #343a40);\n --dm-gray-900: var(--dm-gray-900, #212529);\n --dm-radius-sm: var(--dm-radius-sm, 0.25rem);\n --dm-radius-md: var(--dm-radius-md, 0.375rem);\n --dm-radius-lg: var(--dm-radius-lg, 0.5rem);\n --dm-radius-full: var(--dm-radius-full, 9999px);\n --dm-transition-fast: var(--dm-transition-fast, 150ms);\n --dm-transition-normal: var(--dm-transition-normal, 300ms);\n --dm-transition-slow: var(--dm-transition-slow, 500ms);\n --dm-shadow-sm: var(--dm-shadow-sm, 0 1px 2px 0 rgba(0, 0, 0, 0.05));\n --dm-shadow-md: var(--dm-shadow-md, 0 4px 6px -1px rgba(0, 0, 0, 0.1));\n --dm-shadow-lg: var(--dm-shadow-lg, 0 10px 15px -3px rgba(0, 0, 0, 0.1));\n --dm-shadow-xl: var(--dm-shadow-xl, 0 20px 25px -5px rgba(0, 0, 0, 0.1));\n }\n \n\n :host {\n display: contents;\n }\n\n .tooltip-wrapper {\n position: relative;\n display: inline-block;\n }\n\n .tooltip {\n position: fixed;\n z-index: 1000;\n padding: 0.5rem 0.75rem;\n background: var(--dm-text, #212529);\n color: var(--dm-surface, #fff);\n border-radius: 4px;\n font-size: 0.875rem;\n line-height: 1.4;\n max-width: 250px;\n pointer-events: none;\n opacity: 0;\n transition: opacity 0.15s ease;\n box-shadow: 0 2px 8px rgba(0,0,0,0.15);\n }\n\n .tooltip.show {\n opacity: 1;\n }\n\n /* Arrow */\n .tooltip::before {\n content: \'\';\n position: absolute;\n width: 0;\n height: 0;\n border: 5px solid transparent;\n }\n\n .tooltip[data-position="top"]::before {\n bottom: -10px;\n left: 50%;\n transform: translateX(-50%);\n border-top-color: var(--dm-text, #212529);\n }\n\n .tooltip[data-position="bottom"]::before {\n top: -10px;\n left: 50%;\n transform: translateX(-50%);\n border-bottom-color: var(--dm-text, #212529);\n }\n\n .tooltip[data-position="left"]::before {\n right: -10px;\n top: 50%;\n transform: translateY(-50%);\n border-left-color: var(--dm-text, #212529);\n }\n\n .tooltip[data-position="right"]::before {\n left: -10px;\n top: 50%;\n transform: translateY(-50%);\n border-right-color: var(--dm-text, #212529);\n }\n ',this.shadowRoot.appendChild(e)}_render(){const e=document.createElement("div");e.className="tooltip-wrapper",e.setAttribute("part","wrapper");const t=document.createElement("slot");e.appendChild(t),this.shadowRoot.appendChild(e),this._wrapper=e}_bindEvents(){const{trigger:e}=this._options;"hover"===e?(this._addEventListener(this._wrapper,"mouseenter",()=>this.show()),this._addEventListener(this._wrapper,"mouseleave",()=>this.hide())):"click"===e?this._addEventListener(this._wrapper,"click",()=>this.toggle()):"focus"===e&&(this._addEventListener(this._wrapper,"focusin",()=>this.show()),this._addEventListener(this._wrapper,"focusout",()=>this.hide()))}_onAttributeChange(e,t,o){switch(e){case"content":this._tooltip&&this._isVisible&&this._updateTooltipContent();break;case"position":this._tooltip&&this._isVisible&&this._positionTooltip();break;case"trigger":this._cleanup(),this._bindEvents();break;case"visible":""===o||"true"===o?this.show():this.hide()}}_onConnect(){this._options.visible&&this.show()}_onDisconnect(){clearTimeout(this._showTimeout),clearTimeout(this._hideTimeout),this._tooltip&&(this._tooltip.remove(),this._tooltip=null)}show(){if(clearTimeout(this._hideTimeout),this._isVisible)return this;const{delay:e}=this._options;return this._showTimeout=setTimeout(()=>{this._createTooltip(),this._positionTooltip(),this._emit("show")},e),this}hide(){if(clearTimeout(this._showTimeout),!this._isVisible)return this;const{hideDelay: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,this._emit("hide")},150))},e),this}toggle(){return this._isVisible?this.hide():this.show()}isVisible(){return this._isVisible}setContent(e){return this.setAttribute("content",e),this}setPosition(e){return this.setAttribute("position",e),this}_createTooltip(){const{content:e,position:t,html:o}=this._options;this._tooltip=document.createElement("div"),this._tooltip.className="tooltip",this._tooltip.setAttribute("data-position",t),o?this._tooltip.innerHTML=e:this._tooltip.textContent=e,document.body.appendChild(this._tooltip),this._tooltip.offsetHeight,this._tooltip.classList.add("show"),this._isVisible=!0}_updateTooltipContent(){const{content:e,html:t}=this._options;t?this._tooltip.innerHTML=e:this._tooltip.textContent=e,this._positionTooltip()}_positionTooltip(){if(!this._tooltip||!this._wrapper)return;const{position:e,offset:t}=this._options,o=this._wrapper.getBoundingClientRect(),n=this._tooltip.getBoundingClientRect();let s,i;switch(e){case"top":default:s=o.top-n.height-t,i=o.left+(o.width-n.width)/2;break;case"bottom":s=o.bottom+t,i=o.left+(o.width-n.width)/2;break;case"left":s=o.top+(o.height-n.height)/2,i=o.left-n.width-t;break;case"right":s=o.top+(o.height-n.height)/2,i=o.right+t}s+=window.scrollY,i+=window.scrollX;const r=window.innerWidth,a=window.innerHeight;i<0&&(i=8),i+n.width>r&&(i=r-n.width-8),s<0&&(s=8),s+n.height>a+window.scrollY&&(s=a+window.scrollY-n.height-8),this._tooltip.style.top=s+"px",this._tooltip.style.left=i+"px"}}customElements.get("domma-tooltip")||customElements.define("domma-tooltip",m);class f extends u{static defaults={type:"spinner",size:"medium",color:"primary",overlay:!1,text:"",centered:!0,visible:!0};static sizes={small:24,medium:40,large:64};static colors={primary:"#6495ED",secondary:"#6c757d",success:"#28a745",danger:"#dc3545",warning:"#ffc107",info:"#17a2b8",white:"#ffffff",dark:"#343a40"};static get observedAttributes(){return["type","size","color","overlay","text","centered","visible"]}constructor(){super(),this._visible=!1}_getSize(){const{size:e}=this._options;return"number"==typeof e?e:isNaN(e)?f.sizes[e]||f.sizes.medium:parseInt(e,10)}_getColor(){const{color:e}=this._options;return f.colors[e]||e}_injectStyles(){const e=document.createElement("style");e.textContent="\n \n :host {\n --dm-primary: var(--dm-primary, #6495ED);\n --dm-secondary: var(--dm-secondary, #6c757d);\n --dm-success: var(--dm-success, #28a745);\n --dm-danger: var(--dm-danger, #dc3545);\n --dm-warning: var(--dm-warning, #ffc107);\n --dm-info: var(--dm-info, #17a2b8);\n --dm-white: var(--dm-white, #ffffff);\n --dm-gray-100: var(--dm-gray-100, #f8f9fa);\n --dm-gray-200: var(--dm-gray-200, #e9ecef);\n --dm-gray-300: var(--dm-gray-300, #dee2e6);\n --dm-gray-400: var(--dm-gray-400, #ced4da);\n --dm-gray-500: var(--dm-gray-500, #adb5bd);\n --dm-gray-600: var(--dm-gray-600, #6c757d);\n --dm-gray-700: var(--dm-gray-700, #495057);\n --dm-gray-800: var(--dm-gray-800, #343a40);\n --dm-gray-900: var(--dm-gray-900, #212529);\n --dm-radius-sm: var(--dm-radius-sm, 0.25rem);\n --dm-radius-md: var(--dm-radius-md, 0.375rem);\n --dm-radius-lg: var(--dm-radius-lg, 0.5rem);\n --dm-radius-full: var(--dm-radius-full, 9999px);\n --dm-transition-fast: var(--dm-transition-fast, 150ms);\n --dm-transition-normal: var(--dm-transition-normal, 300ms);\n --dm-transition-slow: var(--dm-transition-slow, 500ms);\n --dm-shadow-sm: var(--dm-shadow-sm, 0 1px 2px 0 rgba(0, 0, 0, 0.05));\n --dm-shadow-md: var(--dm-shadow-md, 0 4px 6px -1px rgba(0, 0, 0, 0.1));\n --dm-shadow-lg: var(--dm-shadow-lg, 0 10px 15px -3px rgba(0, 0, 0, 0.1));\n --dm-shadow-xl: var(--dm-shadow-xl, 0 20px 25px -5px rgba(0, 0, 0, 0.1));\n }\n \n\n :host {\n display: block;\n position: relative;\n }\n\n :host([hidden]) {\n display: none;\n }\n\n .loader-wrapper {\n display: inline-flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 0.75rem;\n }\n\n .loader-wrapper.hidden {\n display: none !important;\n }\n\n .loader-wrapper.overlay {\n position: absolute;\n inset: 0;\n background: rgba(0, 0, 0, 0.5);\n z-index: 1000;\n }\n\n .loader-wrapper.centered {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n\n .loader-text {\n color: var(--loader-text-color, var(--dm-text, #212529));\n font-size: var(--dm-text-sm, 0.875rem);\n }\n\n .loader-wrapper.overlay .loader-text {\n color: #ffffff;\n }\n\n /* Spinner */\n .loader-spinner {\n border-radius: 50%;\n animation: spin 0.8s linear infinite;\n }\n\n @keyframes spin {\n to { transform: rotate(360deg); }\n }\n\n /* Dots */\n .loader-dots {\n display: flex;\n gap: var(--dot-gap);\n }\n\n .loader-dots span {\n border-radius: 50%;\n animation: bounce 1.4s ease-in-out infinite both;\n }\n\n .loader-dots span:nth-child(1) { animation-delay: 0s; }\n .loader-dots span:nth-child(2) { animation-delay: 0.16s; }\n .loader-dots span:nth-child(3) { animation-delay: 0.32s; }\n\n @keyframes bounce {\n 0%, 80%, 100% { transform: scale(0); }\n 40% { transform: scale(1); }\n }\n\n /* Pulse */\n .loader-pulse {\n border-radius: 50%;\n animation: pulse 1.2s ease-in-out infinite;\n }\n\n @keyframes pulse {\n 0% { transform: scale(0); opacity: 1; }\n 100% { transform: scale(1); opacity: 0; }\n }\n\n /* Bars */\n .loader-bars {\n display: flex;\n align-items: center;\n gap: var(--bar-gap);\n }\n\n .loader-bars span {\n border-radius: 2px;\n animation: bars 1s ease-in-out infinite;\n }\n\n .loader-bars span:nth-child(1) { animation-delay: 0s; }\n .loader-bars span:nth-child(2) { animation-delay: 0.1s; }\n .loader-bars span:nth-child(3) { animation-delay: 0.2s; }\n .loader-bars span:nth-child(4) { animation-delay: 0.3s; }\n\n @keyframes bars {\n 0%, 40%, 100% { transform: scaleY(0.4); }\n 20% { transform: scaleY(1); }\n }\n ",this.shadowRoot.appendChild(e)}_render(){const e=this._getSize(),t=this._getColor(),{type:o,overlay:n,text:s,centered:i,visible:r}=this._options;switch(this._wrapper=document.createElement("div"),this._wrapper.className="loader-wrapper",this._wrapper.setAttribute("part","wrapper"),this._wrapper.setAttribute("role","status"),this._wrapper.setAttribute("aria-live","polite"),n&&this._wrapper.classList.add("overlay"),i&&!n&&this._wrapper.classList.add("centered"),r||this._wrapper.classList.add("hidden"),this._loaderEl=document.createElement("div"),this._loaderEl.className=`loader-${o}`,this._loaderEl.setAttribute("part","loader"),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._loaderEl),s&&(this._textEl=document.createElement("span"),this._textEl.className="loader-text",this._textEl.setAttribute("part","text"),this._textEl.textContent=s,this._wrapper.appendChild(this._textEl)),this.shadowRoot.appendChild(this._wrapper),this._visible=r}_renderSpinner(e,t){const o=Math.max(2,e/10);this._loaderEl.style.cssText=`\n width: ${e}px;\n height: ${e}px;\n border: ${o}px solid ${t};\n border-top-color: transparent;\n `}_renderDots(e,t){const o=e/4,n=o/2;this._loaderEl.style.setProperty("--dot-gap",`${n}px`);for(let e=0;e<3;e++){const e=document.createElement("span");e.style.cssText=`\n width: ${o}px;\n height: ${o}px;\n background: ${t};\n `,this._loaderEl.appendChild(e)}}_renderPulse(e,t){this._loaderEl.style.cssText=`\n width: ${e}px;\n height: ${e}px;\n background: ${t};\n `}_renderBars(e,t){const o=e/6,n=e,s=o/2;this._loaderEl.style.cssText=`\n height: ${n}px;\n `,this._loaderEl.style.setProperty("--bar-gap",`${s}px`);for(let e=0;e<4;e++){const e=document.createElement("span");e.style.cssText=`\n width: ${o}px;\n height: 100%;\n background: ${t};\n `,this._loaderEl.appendChild(e)}}_onAttributeChange(e,t,o){if(this._wrapper)switch(e){case"type":case"size":case"color":this._loaderEl.remove(),this._textEl&&this._textEl.remove(),this._loaderEl=document.createElement("div"),this._loaderEl.className=`loader-${this._options.type}`,this._loaderEl.setAttribute("part","loader");const e=this._getSize(),t=this._getColor();switch(this._options.type){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.insertBefore(this._loaderEl,this._wrapper.firstChild);break;case"text":o?(this._textEl||(this._textEl=document.createElement("span"),this._textEl.className="loader-text",this._textEl.setAttribute("part","text"),this._wrapper.appendChild(this._textEl)),this._textEl.textContent=o):this._textEl&&(this._textEl.remove(),this._textEl=null);break;case"overlay":this._wrapper.classList.toggle("overlay",""===o||"true"===o);break;case"centered":this._wrapper.classList.toggle("centered",""===o||"true"===o);break;case"visible":const n=""===o||"true"===o;this._visible=n,this._wrapper.classList.toggle("hidden",!n)}}show(){return this._visible=!0,this._wrapper.classList.remove("hidden"),this.setAttribute("visible",""),this._emit("show"),this}hide(){return this._visible=!1,this._wrapper.classList.add("hidden"),this.removeAttribute("visible"),this._emit("hide"),this}toggle(){return this._visible?this.hide():this.show()}isVisible(){return this._visible}setText(e){return this.setAttribute("text",e),this}setType(e){return this.setAttribute("type",e),this}setSize(e){return this.setAttribute("size",String(e)),this}setColor(e){return this.setAttribute("color",e),this}}customElements.get("domma-loader")||customElements.define("domma-loader",f);class v extends u{static defaults={showAfter:null,duration:300,position:"bottom-right",offset:16,target:null,zIndex:1e3,visible:!1};static get observedAttributes(){return["show-after","duration","position","offset","target","z-index","visible"]}constructor(){super(),this._isVisible=!1,this._isScrolling=!1,this._scrollContainer=null,this._scrollHandler=null}_injectStyles(){const e=document.createElement("style");e.textContent="\n \n :host {\n --dm-primary: var(--dm-primary, #6495ED);\n --dm-secondary: var(--dm-secondary, #6c757d);\n --dm-success: var(--dm-success, #28a745);\n --dm-danger: var(--dm-danger, #dc3545);\n --dm-warning: var(--dm-warning, #ffc107);\n --dm-info: var(--dm-info, #17a2b8);\n --dm-white: var(--dm-white, #ffffff);\n --dm-gray-100: var(--dm-gray-100, #f8f9fa);\n --dm-gray-200: var(--dm-gray-200, #e9ecef);\n --dm-gray-300: var(--dm-gray-300, #dee2e6);\n --dm-gray-400: var(--dm-gray-400, #ced4da);\n --dm-gray-500: var(--dm-gray-500, #adb5bd);\n --dm-gray-600: var(--dm-gray-600, #6c757d);\n --dm-gray-700: var(--dm-gray-700, #495057);\n --dm-gray-800: var(--dm-gray-800, #343a40);\n --dm-gray-900: var(--dm-gray-900, #212529);\n --dm-radius-sm: var(--dm-radius-sm, 0.25rem);\n --dm-radius-md: var(--dm-radius-md, 0.375rem);\n --dm-radius-lg: var(--dm-radius-lg, 0.5rem);\n --dm-radius-full: var(--dm-radius-full, 9999px);\n --dm-transition-fast: var(--dm-transition-fast, 150ms);\n --dm-transition-normal: var(--dm-transition-normal, 300ms);\n --dm-transition-slow: var(--dm-transition-slow, 500ms);\n --dm-shadow-sm: var(--dm-shadow-sm, 0 1px 2px 0 rgba(0, 0, 0, 0.05));\n --dm-shadow-md: var(--dm-shadow-md, 0 4px 6px -1px rgba(0, 0, 0, 0.1));\n --dm-shadow-lg: var(--dm-shadow-lg, 0 10px 15px -3px rgba(0, 0, 0, 0.1));\n --dm-shadow-xl: var(--dm-shadow-xl, 0 20px 25px -5px rgba(0, 0, 0, 0.1));\n }\n \n\n :host {\n display: block;\n position: fixed;\n z-index: var(--z-index, 1000);\n }\n\n :host([hidden]) {\n display: none;\n }\n\n .back-to-top-button {\n padding: 0.5rem;\n background: var(--dm-surface, #fff);\n border: 1px solid var(--dm-border, #dee2e6);\n border-radius: 9999px;\n cursor: pointer;\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0;\n visibility: hidden;\n transform: translateY(10px);\n transition: opacity 0.2s ease, transform 0.15s ease, visibility 0.2s, background 0.2s ease, box-shadow 0.15s ease;\n }\n\n .back-to-top-button.visible {\n opacity: 1;\n visibility: visible;\n transform: translateY(0);\n }\n\n .back-to-top-button:hover {\n background: var(--dm-hover-bg, rgba(0,0,0,0.04));\n transform: translateY(0) scale(1.1);\n box-shadow: 0 2px 8px rgba(0,0,0,0.15);\n }\n\n svg {\n color: var(--dm-text, #212529);\n }\n ",this.shadowRoot.appendChild(e)}_render(){const{position:e,offset:t,zIndex:o}=this._options,n="bottom-left"===e;this.style.position="fixed",this.style.bottom=`${t}px`,this.style[n?"left":"right"]=`${t}px`,this.style.zIndex=o,this._button=document.createElement("button"),this._button.className="back-to-top-button",this._button.setAttribute("part","button"),this._button.setAttribute("title","Back to top"),this._button.setAttribute("aria-label","Scroll back to top");const s=document.createElementNS("http://www.w3.org/2000/svg","svg");s.setAttribute("width","20"),s.setAttribute("height","20"),s.setAttribute("viewBox","0 0 24 24"),s.setAttribute("fill","none"),s.setAttribute("stroke","currentColor"),s.setAttribute("stroke-width","2"),s.setAttribute("stroke-linecap","round"),s.setAttribute("stroke-linejoin","round");const i=document.createElementNS("http://www.w3.org/2000/svg","path");i.setAttribute("d","M18 15l-6-6-6 6"),s.appendChild(i),this._button.appendChild(s),this.shadowRoot.appendChild(this._button)}_bindEvents(){this._addEventListener(this._button,"click",e=>{e.preventDefault(),this.scroll()}),this._setupScrollMonitoring()}_setupScrollMonitoring(){if(this._scrollHandler){(this._scrollContainer||window).removeEventListener("scroll",this._scrollHandler)}this._options.target?this._scrollContainer="string"==typeof this._options.target?document.querySelector(this._options.target):this._options.target:this._scrollContainer=null;const e=this._scrollContainer||window;this._scrollHandler=()=>this._checkVisibility(),e.addEventListener("scroll",this._scrollHandler,{passive:!0}),this._checkVisibility()}_checkVisibility(){const e=this._options.showAfter??(this._scrollContainer?this._scrollContainer.clientHeight:window.innerHeight),t=(this._scrollContainer?this._scrollContainer.scrollTop:window.scrollY)>e;t&&!this._isVisible?this.show():!t&&this._isVisible&&this.hide()}_onAttributeChange(e,t,o){switch(e){case"position":case"offset":case"z-index":const{position:e,offset:t,zIndex:n}=this._options,s="bottom-left"===e;this.style.bottom=`${t}px`,this.style.left=s?`${t}px`:"",this.style.right=s?"":`${t}px`,this.style.zIndex=n;break;case"target":case"show-after":this._setupScrollMonitoring();break;case"visible":""===o||"true"===o?this.show():this.hide()}}_onConnect(){this._setupScrollMonitoring()}_onDisconnect(){if(this._scrollHandler){(this._scrollContainer||window).removeEventListener("scroll",this._scrollHandler)}}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,n=s=>{const i=s-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(n):this._isScrolling=!1};return requestAnimationFrame(n),this}show(){return this._isVisible||(this._isVisible=!0,this._button.classList.add("visible"),this._emit("show")),this}hide(){return this._isVisible?(this._isVisible=!1,this._button.classList.remove("visible"),this._emit("hide"),this):this}toggle(){return this._isVisible?this.hide():this.show()}isVisible(){return this._isVisible}getButton(){return this._button}setShowAfter(e){return this.setAttribute("show-after",String(e)),this}setPosition(e){return this.setAttribute("position",e),this}setOffset(e){return this.setAttribute("offset",String(e)),this}}customElements.get("domma-back-to-top")||customElements.define("domma-back-to-top",v);class g extends u{static defaults={message:"",title:"",type:"default",position:"top-right",duration:3e3,pauseOnHover:!0,showProgress:!0,animation:"slide",animationDuration:300,closable:!0,html:!1,icon:"",actions:[],visible:!1};static get observedAttributes(){return["message","title","type","position","duration","pause-on-hover","show-progress","animation","animation-duration","closable","html","icon","visible"]}constructor(){super(),this._progressBar=null,this._timeout=null,this._isPaused=!1,this._remainingTime=0,this._startTime=null,this._isVisible=!1}_injectStyles(){const e=document.createElement("style");e.textContent=`\n \n :host {\n --dm-primary: var(--dm-primary, #6495ED);\n --dm-secondary: var(--dm-secondary, #6c757d);\n --dm-success: var(--dm-success, #28a745);\n --dm-danger: var(--dm-danger, #dc3545);\n --dm-warning: var(--dm-warning, #ffc107);\n --dm-info: var(--dm-info, #17a2b8);\n --dm-white: var(--dm-white, #ffffff);\n --dm-gray-100: var(--dm-gray-100, #f8f9fa);\n --dm-gray-200: var(--dm-gray-200, #e9ecef);\n --dm-gray-300: var(--dm-gray-300, #dee2e6);\n --dm-gray-400: var(--dm-gray-400, #ced4da);\n --dm-gray-500: var(--dm-gray-500, #adb5bd);\n --dm-gray-600: var(--dm-gray-600, #6c757d);\n --dm-gray-700: var(--dm-gray-700, #495057);\n --dm-gray-800: var(--dm-gray-800, #343a40);\n --dm-gray-900: var(--dm-gray-900, #212529);\n --dm-radius-sm: var(--dm-radius-sm, 0.25rem);\n --dm-radius-md: var(--dm-radius-md, 0.375rem);\n --dm-radius-lg: var(--dm-radius-lg, 0.5rem);\n --dm-radius-full: var(--dm-radius-full, 9999px);\n --dm-transition-fast: var(--dm-transition-fast, 150ms);\n --dm-transition-normal: var(--dm-transition-normal, 300ms);\n --dm-transition-slow: var(--dm-transition-slow, 500ms);\n --dm-shadow-sm: var(--dm-shadow-sm, 0 1px 2px 0 rgba(0, 0, 0, 0.05));\n --dm-shadow-md: var(--dm-shadow-md, 0 4px 6px -1px rgba(0, 0, 0, 0.1));\n --dm-shadow-lg: var(--dm-shadow-lg, 0 10px 15px -3px rgba(0, 0, 0, 0.1));\n --dm-shadow-xl: var(--dm-shadow-xl, 0 20px 25px -5px rgba(0, 0, 0, 0.1));\n }\n \n\n :host {\n display: block;\n min-width: 300px;\n max-width: 500px;\n margin-bottom: 12px;\n opacity: 0;\n transform: translateX(100%);\n transition: opacity ${this._options.animationDuration}ms ease,\n transform ${this._options.animationDuration}ms ease;\n }\n\n :host([hidden]) { display: none; }\n :host(.show) { opacity: 1; transform: translateX(0); }\n :host(.hiding) { opacity: 0; transform: translateX(100%); }\n\n .toast {\n position: relative;\n display: flex;\n align-items: flex-start;\n padding: 16px;\n background: var(--toast-bg);\n color: var(--toast-color);\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n overflow: hidden;\n }\n\n :host([type="default"]) { --toast-bg: #1f2937; --toast-color: #fff; --toast-accent: #6b7280; }\n :host([type="success"]) { --toast-bg: #065f46; --toast-color: #fff; --toast-accent: #10b981; }\n :host([type="error"]) { --toast-bg: #991b1b; --toast-color: #fff; --toast-accent: #ef4444; }\n :host([type="warning"]) { --toast-bg: #92400e; --toast-color: #fff; --toast-accent: #f59e0b; }\n :host([type="info"]) { --toast-bg: #1e40af; --toast-color: #fff; --toast-accent: #3b82f6; }\n\n .toast-icon { flex-shrink: 0; margin-right: 12px; width: 20px; height: 20px; display: flex; align-items: center; justify-content: center; }\n .toast-icon svg { width: 20px; height: 20px; }\n .toast-content { flex: 1; min-width: 0; }\n .toast-title { font-weight: 600; font-size: 14px; margin-bottom: 4px; }\n .toast-message { font-size: 14px; line-height: 1.4; }\n .toast-actions { display: flex; gap: 8px; margin-top: 8px; }\n .toast-close { flex-shrink: 0; margin-left: 12px; padding: 0; background: none; border: none; color: currentColor; cursor: pointer; opacity: 0.7; transition: opacity 0.15s ease; width: 20px; height: 20px; display: flex; align-items: center; justify-content: center; }\n .toast-close:hover { opacity: 1; }\n .toast-progress { position: absolute; bottom: 0; left: 0; right: 0; height: 3px; background: rgba(255, 255, 255, 0.2); overflow: hidden; }\n .toast-progress-bar { height: 100%; background: var(--toast-accent); transition: width linear; }\n `,this.shadowRoot.appendChild(e)}_render(){const{message:e,title:t,closable:o,icon:n,showProgress:s}=this._options,i=document.createElement("div");if(i.className="toast",i.setAttribute("part","toast"),i.setAttribute("role","alert"),n){const e=document.createElement("div");e.className="toast-icon",e.innerHTML=n,i.appendChild(e)}const r=document.createElement("div");if(r.className="toast-content",t){const e=document.createElement("div");e.className="toast-title",e.textContent=t,r.appendChild(e)}const a=document.createElement("div");if(a.className="toast-message",this._options.html?a.innerHTML=e:a.textContent=e,r.appendChild(a),this._options.actions&&this._options.actions.length&&this._renderActions(r),i.appendChild(r),o){const e=document.createElement("button");e.className="toast-close",e.innerHTML="×",this._addEventListener(e,"click",()=>this.close()),i.appendChild(e)}if(s&&this._options.duration>0){const e=document.createElement("div");e.className="toast-progress",this._progressBar=document.createElement("div"),this._progressBar.className="toast-progress-bar",this._progressBar.style.width="100%",e.appendChild(this._progressBar),i.appendChild(e)}this.shadowRoot.appendChild(i),this._toast=i}_renderActions(e){const t=document.createElement("div");t.className="toast-actions",this._options.actions.forEach((e,o)=>{const n=document.createElement("button");n.textContent=e.label,n.style.cssText=`padding: 6px 12px; border: none; border-radius: 4px; font-size: 12px; font-weight: 500; cursor: pointer; background: ${e.primary?"var(--toast-accent)":"rgba(255,255,255,0.2)"}; color: #fff;`,this._addEventListener(n,"click",()=>{this._emit("action",{action:e,index:o}),!1!==e.closeOnClick&&this.close()}),t.appendChild(n)}),e.appendChild(t)}_bindEvents(){this._options.pauseOnHover&&(this._addEventListener(this._toast,"mouseenter",()=>this._pause()),this._addEventListener(this._toast,"mouseleave",()=>this._resume()))}_onAttributeChange(e,t,o){if(this._toast)switch(e){case"message":case"title":case"icon":this.shadowRoot.innerHTML="",this._injectStyles(),this._render(),this._bindEvents();break;case"visible":""===o||"true"===o?this.show():this.close();break;case"duration":this._options.duration=parseInt(o,10),this._isVisible&&this._options.duration>0&&this._startTimer()}}_onConnect(){this._options.visible&&this.show()}_onDisconnect(){this._clearTimer()}show(){return this._isVisible||(this._isVisible=!0,this._remainingTime=this._options.duration,requestAnimationFrame(()=>{this.classList.add("show"),this.classList.remove("hiding")}),this._options.duration>0&&this._startTimer(),this._emit("show")),this}close(){return this._isVisible?(this._clearTimer(),this._isVisible=!1,this.classList.add("hiding"),this.classList.remove("show"),setTimeout(()=>{this._emit("close"),this.remove()},this._options.animationDuration),this):this}_startTimer(){this._clearTimer(),this._options.duration<=0||(this._startTime=Date.now(),this._timeout=setTimeout(()=>this.close(),this._remainingTime),this._progressBar&&(this._progressBar.style.transition=`width ${this._remainingTime}ms linear`,requestAnimationFrame(()=>this._progressBar.style.width="0%")))}_clearTimer(){this._timeout&&(clearTimeout(this._timeout),this._timeout=null)}_pause(){if(this._isPaused||!this._timeout)return;this._isPaused=!0,this._clearTimer();const e=Date.now()-this._startTime;if(this._remainingTime=Math.max(0,this._remainingTime-e),this._progressBar){this._progressBar.style.transition="none";const e=parseFloat(getComputedStyle(this._progressBar).width);this._progressBar.style.width=e+"px"}this._emit("pause")}_resume(){this._isPaused&&(this._isPaused=!1,this._startTimer(),this._emit("resume"))}setMessage(e){return this.setAttribute("message",e),this}setTitle(e){return this.setAttribute("title",e),this}setType(e){return this.setAttribute("type",e),this}setActions(e){this._options.actions=e;const t=this._toast.querySelector(".toast-content"),o=t.querySelector(".toast-actions");return o&&o.remove(),e&&e.length&&this._renderActions(t),this}isVisible(){return this._isVisible}}customElements.get("domma-toast")||customElements.define("domma-toast",g);class k extends u{static defaults={backdrop:!0,backdropClose:!0,keyboard:!0,animation:"fade",animationDuration:300,closeButton:!0,size:"medium",centered:!0,scrollable:!1,title:"",content:"",footer:"",buttons:[],className:"",headerClass:"",bodyClass:"",footerClass:"",visible:!1};static get observedAttributes(){return["visible","backdrop","backdrop-close","keyboard","animation","animation-duration","close-button","size","centered","scrollable","title","content","footer","class-name"]}constructor(){super(),this._backdrop=null,this._isOpen=!1,this._keyHandler=null,this._dialog=null}_injectStyles(){const e=document.createElement("style");e.textContent='\n \n :host {\n --dm-primary: var(--dm-primary, #6495ED);\n --dm-secondary: var(--dm-secondary, #6c757d);\n --dm-success: var(--dm-success, #28a745);\n --dm-danger: var(--dm-danger, #dc3545);\n --dm-warning: var(--dm-warning, #ffc107);\n --dm-info: var(--dm-info, #17a2b8);\n --dm-white: var(--dm-white, #ffffff);\n --dm-gray-100: var(--dm-gray-100, #f8f9fa);\n --dm-gray-200: var(--dm-gray-200, #e9ecef);\n --dm-gray-300: var(--dm-gray-300, #dee2e6);\n --dm-gray-400: var(--dm-gray-400, #ced4da);\n --dm-gray-500: var(--dm-gray-500, #adb5bd);\n --dm-gray-600: var(--dm-gray-600, #6c757d);\n --dm-gray-700: var(--dm-gray-700, #495057);\n --dm-gray-800: var(--dm-gray-800, #343a40);\n --dm-gray-900: var(--dm-gray-900, #212529);\n --dm-radius-sm: var(--dm-radius-sm, 0.25rem);\n --dm-radius-md: var(--dm-radius-md, 0.375rem);\n --dm-radius-lg: var(--dm-radius-lg, 0.5rem);\n --dm-radius-full: var(--dm-radius-full, 9999px);\n --dm-transition-fast: var(--dm-transition-fast, 150ms);\n --dm-transition-normal: var(--dm-transition-normal, 300ms);\n --dm-transition-slow: var(--dm-transition-slow, 500ms);\n --dm-shadow-sm: var(--dm-shadow-sm, 0 1px 2px 0 rgba(0, 0, 0, 0.05));\n --dm-shadow-md: var(--dm-shadow-md, 0 4px 6px -1px rgba(0, 0, 0, 0.1));\n --dm-shadow-lg: var(--dm-shadow-lg, 0 10px 15px -3px rgba(0, 0, 0, 0.1));\n --dm-shadow-xl: var(--dm-shadow-xl, 0 20px 25px -5px rgba(0, 0, 0, 0.1));\n }\n \n\n :host {\n display: none;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 1050;\n align-items: center;\n justify-content: center;\n }\n\n :host([visible]) {\n display: flex;\n }\n\n .modal-dialog {\n background: var(--dm-surface, #fff);\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 position: relative;\n opacity: 0;\n transform: scale(0.95) translateY(-10px);\n transition: opacity var(--animation-duration, 300ms) ease,\n transform var(--animation-duration, 300ms) ease;\n }\n\n :host(.show) .modal-dialog {\n opacity: 1;\n transform: scale(1) translateY(0);\n }\n\n :host([size="small"]) .modal-dialog { max-width: 400px; }\n :host([size="medium"]) .modal-dialog { max-width: 600px; }\n :host([size="large"]) .modal-dialog { max-width: 800px; }\n :host([size="xl"]) .modal-dialog { max-width: 1000px; }\n\n :host([animation="zoom"]) .modal-dialog {\n transform: scale(0.7);\n }\n\n :host([animation="zoom"].show) .modal-dialog {\n transform: scale(1);\n }\n\n :host([animation="slide"]) .modal-dialog {\n transform: translateY(-50px);\n }\n\n :host([animation="slide"].show) .modal-dialog {\n transform: translateY(0);\n }\n\n .modal-content {\n display: flex;\n flex-direction: column;\n }\n\n .modal-header {\n position: relative;\n padding: 1.5rem 1.5rem 1rem;\n border-bottom: 1px solid var(--dm-border, #e5e7eb);\n }\n\n .modal-title {\n margin: 0;\n font-size: 1.25rem;\n font-weight: 600;\n color: var(--dm-text, #212529);\n }\n\n .modal-close {\n position: absolute;\n right: 1rem;\n top: 1rem;\n background: none;\n border: none;\n font-size: 1.5rem;\n cursor: pointer;\n color: var(--dm-text-muted, #6b7280);\n line-height: 1;\n padding: 0;\n width: 2rem;\n height: 2rem;\n transition: color 0.15s ease;\n }\n\n .modal-close:hover {\n color: var(--dm-text, #212529);\n }\n\n .modal-body {\n padding: 1.5rem;\n color: var(--dm-text, #212529);\n }\n\n .modal-body-scrollable {\n max-height: 60vh;\n overflow-y: auto;\n }\n\n .modal-footer {\n display: flex;\n justify-content: flex-end;\n gap: 0.5rem;\n padding: 1rem 1.5rem;\n border-top: 1px solid var(--dm-border, #e5e7eb);\n background: var(--dm-surface-subtle, #f9fafb);\n }\n\n .modal-backdrop {\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: -1;\n opacity: 0;\n transition: opacity var(--animation-duration, 300ms) ease;\n }\n\n :host(.show) .modal-backdrop {\n opacity: 1;\n }\n\n /* Button styles */\n button:not(.modal-close) {\n padding: 0.5rem 1rem;\n border: none;\n border-radius: 4px;\n font-size: 0.875rem;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.15s ease;\n }\n\n .btn-primary {\n background: var(--dm-primary, #6495ED);\n color: white;\n }\n\n .btn-primary:hover {\n background: var(--dm-primary-dark, #4169E1);\n }\n\n .btn-secondary {\n background: var(--dm-secondary, #6c757d);\n color: white;\n }\n\n .btn-secondary:hover {\n background: var(--dm-secondary-dark, #5a6268);\n }\n\n .btn-success {\n background: var(--dm-success, #28a745);\n color: white;\n }\n\n .btn-success:hover {\n background: var(--dm-success-dark, #218838);\n }\n\n .btn-danger {\n background: var(--dm-danger, #dc3545);\n color: white;\n }\n\n .btn-danger:hover {\n background: var(--dm-danger-dark, #c82333);\n }\n ',this.shadowRoot.appendChild(e)}_render(){const{title:e,content:t,footer:o,closeButton:n,buttons:s,headerClass:i,bodyClass:r,footerClass:a,scrollable:l,backdrop:d}=this._options;d&&(this._backdrop=document.createElement("div"),this._backdrop.className="modal-backdrop",this.shadowRoot.appendChild(this._backdrop)),this._dialog=document.createElement("div"),this._dialog.className="modal-dialog",this._dialog.setAttribute("part","dialog"),this._dialog.setAttribute("role","dialog"),this._dialog.setAttribute("aria-modal","true");const h=document.createElement("div");if(h.className="modal-content",e||n){const t=document.createElement("div");if(t.className="modal-header"+(i?" "+i:""),t.setAttribute("part","header"),e){const o=document.createElement("h3");o.className="modal-title",o.textContent=e,t.appendChild(o)}if(n){const e=document.createElement("button");e.className="modal-close",e.setAttribute("part","close"),e.setAttribute("aria-label","Close"),e.innerHTML="×",this._addEventListener(e,"click",()=>this.close()),t.appendChild(e)}h.appendChild(t)}const c=document.createElement("div");c.className=`modal-body${r?" "+r:""}${l?" modal-body-scrollable":""}`,c.setAttribute("part","body");const u=document.createElement("slot");if(t?c.textContent=t:c.appendChild(u),h.appendChild(c),s&&s.length>0)this._renderFooter(h,s,a);else if(o){const e=document.createElement("div");e.className="modal-footer"+(a?" "+a:""),e.setAttribute("part","footer"),e.textContent=o,h.appendChild(e)}this._dialog.appendChild(h),this.shadowRoot.appendChild(this._dialog)}_renderFooter(e,t,o){const n=document.createElement("div");n.className="modal-footer"+(o?" "+o:""),n.setAttribute("part","footer"),t.forEach((e,t)=>{const o=document.createElement("button");o.className=`btn btn-${e.variant||"secondary"}`,o.textContent=e.text||"Button",o.setAttribute("data-button-id",e.id||`btn-${t}`),this._addEventListener(o,"click",()=>{this._emit("buttonclick",{buttonId:e.id||`btn-${t}`,button:e}),!1!==e.close&&this.close()}),n.appendChild(o)}),e.appendChild(n)}_bindEvents(){this._options.keyboard&&(this._keyHandler=e=>{"Escape"===e.key&&this._isOpen&&this.close()},document.addEventListener("keydown",this._keyHandler)),this._backdrop&&this._options.backdropClose&&this._addEventListener(this,"click",e=>{e.target===this&&this.close()})}_onAttributeChange(e,t,o){if(this._dialog)switch(e){case"visible":""===o||"true"===o?this.open():this.close();break;case"title":case"content":case"footer":case"close-button":this.shadowRoot.innerHTML="",this._injectStyles(),this._render(),this._bindEvents()}}_onConnect(){this._options.visible&&this.open()}_onDisconnect(){this._keyHandler&&document.removeEventListener("keydown",this._keyHandler)}open(){return this._isOpen||(this._isOpen=!0,this.setAttribute("visible",""),this._emit("open"),requestAnimationFrame(()=>{this.classList.add("show")}),setTimeout(()=>{this._emit("opened")},this._options.animationDuration)),this}close(){return this._isOpen?(this._emit("close"),this.classList.remove("show"),setTimeout(()=>{this._isOpen=!1,this.removeAttribute("visible"),this._emit("closed")},this._options.animationDuration),this):this}toggle(){return this._isOpen?this.close():this.open()}isOpen(){return this._isOpen}setTitle(e){return this.setAttribute("title",e),this}setContent(e){const t=this._dialog.querySelector(".modal-body");return t&&(t.textContent=e),this}setButtons(e){this._options.buttons=e;const t=this._dialog.querySelector(".modal-content"),o=t.querySelector(".modal-footer");return o&&o.remove(),e&&e.length>0&&this._renderFooter(t,e,this._options.footerClass),this}}customElements.get("domma-modal")||customElements.define("domma-modal",k);class _ extends u{static defaults={hoverable:!0,shadow:"medium",rounded:!0,animation:!0,animationDuration:200,collapsible:!1,collapsed:!1,persistKey:null,collapseIcon:"chevron-down",visible:!0};static get observedAttributes(){return["hoverable","shadow","rounded","animation","animation-duration","collapsible","collapsed","persist-key","collapse-icon","visible"]}constructor(){super(),this._header=null,this._body=null,this._collapseIcon=null}_injectStyles(){const e=document.createElement("style");e.textContent='\n \n :host {\n --dm-primary: var(--dm-primary, #6495ED);\n --dm-secondary: var(--dm-secondary, #6c757d);\n --dm-success: var(--dm-success, #28a745);\n --dm-danger: var(--dm-danger, #dc3545);\n --dm-warning: var(--dm-warning, #ffc107);\n --dm-info: var(--dm-info, #17a2b8);\n --dm-white: var(--dm-white, #ffffff);\n --dm-gray-100: var(--dm-gray-100, #f8f9fa);\n --dm-gray-200: var(--dm-gray-200, #e9ecef);\n --dm-gray-300: var(--dm-gray-300, #dee2e6);\n --dm-gray-400: var(--dm-gray-400, #ced4da);\n --dm-gray-500: var(--dm-gray-500, #adb5bd);\n --dm-gray-600: var(--dm-gray-600, #6c757d);\n --dm-gray-700: var(--dm-gray-700, #495057);\n --dm-gray-800: var(--dm-gray-800, #343a40);\n --dm-gray-900: var(--dm-gray-900, #212529);\n --dm-radius-sm: var(--dm-radius-sm, 0.25rem);\n --dm-radius-md: var(--dm-radius-md, 0.375rem);\n --dm-radius-lg: var(--dm-radius-lg, 0.5rem);\n --dm-radius-full: var(--dm-radius-full, 9999px);\n --dm-transition-fast: var(--dm-transition-fast, 150ms);\n --dm-transition-normal: var(--dm-transition-normal, 300ms);\n --dm-transition-slow: var(--dm-transition-slow, 500ms);\n --dm-shadow-sm: var(--dm-shadow-sm, 0 1px 2px 0 rgba(0, 0, 0, 0.05));\n --dm-shadow-md: var(--dm-shadow-md, 0 4px 6px -1px rgba(0, 0, 0, 0.1));\n --dm-shadow-lg: var(--dm-shadow-lg, 0 10px 15px -3px rgba(0, 0, 0, 0.1));\n --dm-shadow-xl: var(--dm-shadow-xl, 0 20px 25px -5px rgba(0, 0, 0, 0.1));\n }\n \n\n :host {\n display: block;\n background: var(--dm-surface, #fff);\n border: 1px solid var(--dm-border, #e5e7eb);\n border-radius: 8px;\n overflow: hidden;\n transition: transform var(--animation-duration, 200ms) ease,\n box-shadow var(--animation-duration, 200ms) ease;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n }\n\n :host([hidden]) {\n display: none;\n }\n\n :host([shadow="none"]) {\n box-shadow: none;\n }\n\n :host([shadow="small"]) {\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);\n }\n\n :host([shadow="medium"]) {\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n }\n\n :host([shadow="large"]) {\n box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);\n }\n\n :host([rounded="false"]) {\n border-radius: 0;\n }\n\n :host([hoverable]:hover) {\n transform: scale(1.02);\n box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);\n }\n\n :host([animation="false"]) {\n transition: none;\n }\n\n /* Collapsible styles */\n :host([collapsible]) ::slotted(.card-header),\n .card-header-wrapper[data-collapsible="true"] {\n cursor: pointer;\n user-select: none;\n }\n\n .card-header-wrapper {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 1rem 1.5rem;\n border-bottom: 1px solid var(--dm-border, #e5e7eb);\n }\n\n .card-header-content {\n flex: 1;\n }\n\n .card-collapse-icon {\n margin-left: 1rem;\n display: flex;\n align-items: center;\n transition: transform 200ms ease;\n color: var(--dm-text-muted, #6b7280);\n }\n\n :host([collapsed]) .card-collapse-icon {\n transform: rotate(-90deg);\n }\n\n .card-body-wrapper {\n overflow: hidden;\n transition: height 200ms ease;\n }\n\n :host([collapsed]) .card-body-wrapper {\n height: 0 !important;\n }\n\n ::slotted(.card-header) {\n margin: 0;\n padding: 1rem 1.5rem;\n border-bottom: 1px solid var(--dm-border, #e5e7eb);\n background: var(--dm-surface-subtle, #f9fafb);\n }\n\n ::slotted(.card-body) {\n padding: 1.5rem;\n }\n\n ::slotted(.card-footer) {\n padding: 1rem 1.5rem;\n border-top: 1px solid var(--dm-border, #e5e7eb);\n background: var(--dm-surface-subtle, #f9fafb);\n }\n ',this.shadowRoot.appendChild(e)}_render(){const{collapsible:e,collapsed:t}=this._options,o=document.createElement("slot");o.name="header";const n=document.createElement("slot");n.name="body";const s=document.createElement("slot");s.name="footer";const i=document.createElement("slot");this._bodyWrapper=document.createElement("div"),this._bodyWrapper.className="card-body-wrapper";const r=this.querySelector('[slot="header"]');if(e&&r){this._headerWrapper=document.createElement("div"),this._headerWrapper.className="card-header-wrapper",this._headerWrapper.setAttribute("data-collapsible","true");const e=document.createElement("div");e.className="card-header-content",e.appendChild(o),this._collapseIcon=document.createElement("span"),this._collapseIcon.className="card-collapse-icon",this._collapseIcon.innerHTML=this._getCollapseIconSVG(),this._headerWrapper.appendChild(e),this._headerWrapper.appendChild(this._collapseIcon),this.shadowRoot.appendChild(this._headerWrapper)}else this.shadowRoot.appendChild(o);this._bodyWrapper.appendChild(n),this._bodyWrapper.appendChild(i),this.shadowRoot.appendChild(this._bodyWrapper),this.shadowRoot.appendChild(s)}_getCollapseIconSVG(){return'<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">\n <polyline points="6 9 12 15 18 9"></polyline>\n </svg>'}_bindEvents(){this._options.collapsible&&this._headerWrapper&&this._addEventListener(this._headerWrapper,"click",()=>this.toggle()),this._restoreState()}_onAttributeChange(e,t,o){switch(e){case"collapsed":const e=""===o||"true"===o;this._setCollapsed(e,!1);break;case"collapsible":(this._headerWrapper||this._collapseIcon)&&(this.shadowRoot.innerHTML="",this._injectStyles(),this._render(),this._bindEvents())}}_onConnect(){this._options.collapsible&&this._restoreState()}_onDisconnect(){this._options.collapsible&&this.isCollapsed()&&this._saveState()}_getStorageKey(){return this._options.persistKey||(this.id?`domma-card-${this.id}`:null)}_restoreState(){if(!this._options.collapsible)return;const e=this._getStorageKey();if(e&&"undefined"!=typeof Domma&&Domma.storage){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&&"undefined"!=typeof Domma&&Domma.storage&&Domma.storage.set(e,{collapsed:this.isCollapsed()})}_setCollapsed(e,t=!0){if(this._bodyWrapper){if(e){const e=this._bodyWrapper.scrollHeight;this._bodyWrapper.style.height=e+"px",this._bodyWrapper.offsetHeight,this._bodyWrapper.style.height="0px",this.setAttribute("collapsed",""),this._emit("collapse")}else{this.removeAttribute("collapsed");const e=this._bodyWrapper.scrollHeight;this._bodyWrapper.style.height=e+"px",setTimeout(()=>{this._bodyWrapper&&!this.hasAttribute("collapsed")&&(this._bodyWrapper.style.height="auto")},this._options.animationDuration),this._emit("expand")}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.hasAttribute("collapsed")}setShadow(e){return this.setAttribute("shadow",e),this}setHoverable(e){return e?this.setAttribute("hoverable",""):this.removeAttribute("hoverable"),this}}function y(e){return e.replace(/([A-Z])/g,"-$1").toLowerCase()}function b(e,t={}){const o="string"==typeof e?document.querySelector(e):e;if(!o)return null;const n=document.createElement("domma-loader");for(const[e,o]of Object.entries(t))if("function"==typeof o){const t=e.replace(/^on/,"").toLowerCase();n.addEventListener(t,e=>{o(n)})}else"boolean"==typeof o?o&&n.setAttribute(y(e),""):null!=o&&n.setAttribute(y(e),String(o));return o.appendChild(n),n._dommaComponent=n,{element:n,options:n._options,show(){return n.show(),this},hide(){return n.hide(),this},toggle(){return n.toggle(),this},isVisible:()=>n.isVisible(),setText(e){return n.setText(e),this},setType(e){return n.setType(e),this},setSize(e){return n.setSize(e),this},setColor(e){return n.setColor(e),this},destroy(){n.destroy()}}}customElements.get("domma-card")||customElements.define("domma-card",_);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}`,t.style.cssText=`\n position: fixed;\n z-index: 9999;\n pointer-events: none;\n ${e.includes("top")?"top: 16px;":"bottom: 16px;"}\n ${e.includes("right")?"right: 16px;":"left: 16px;"}\n display: flex;\n flex-direction: column;\n gap: 12px;\n `,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=document.createElement("domma-toast");s.style.pointerEvents="auto",s.setAttribute("message",e),o.title&&s.setAttribute("title",o.title),o.type&&s.setAttribute("type",o.type),o.position&&s.setAttribute("position",o.position),void 0!==o.duration&&s.setAttribute("duration",String(o.duration)),void 0!==o.pauseOnHover&&s.setAttribute("pause-on-hover",String(o.pauseOnHover)),void 0!==o.showProgress&&s.setAttribute("show-progress",String(o.showProgress)),o.animation&&s.setAttribute("animation",o.animation),void 0!==o.animationDuration&&s.setAttribute("animation-duration",String(o.animationDuration)),void 0!==o.closable&&s.setAttribute("closable",String(o.closable)),void 0!==o.html&&s.setAttribute("html",String(o.html)),o.icon&&s.setAttribute("icon",o.icon),o.actions&&o.actions.length>0&&(s._options=s._options||{},s._options.actions=o.actions);for(const[e,t]of Object.entries(o))if("function"==typeof t){const o=e.replace(/^on/,"").toLowerCase(),n=e=>t(e.detail||s);s.addEventListener(o,n)}n.appendChild(s),s.show();const i={element:s,close(){s.close();const e=M._toasts.indexOf(i);return e>-1&&M._toasts.splice(e,1),this},setMessage(e){return s.setMessage(e),this},setTitle(e){return s.setTitle(e),this},setType(e){return s.setType(e),this},setActions(e){return s.setActions(e),this},isVisible:()=>s.isVisible()};return M._toasts.push(i),i}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 w{static _container=null;static _zIndexBase=1050;static _activeModals=[];static _defaults={size:"large",title:"",content:"",buttons:[{id:"close",text:"Close",variant:"secondary"}],backdrop:!0,backdropClose:!0,keyboard:!0,animation:"fade",animationDuration:300,className:"",headerClass:"",bodyClass:"",footerClass:"",scrollable:!1,onButtonClick:null,onOpen:null,onClose:null};static _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}static _getNextZIndex(){return this._zIndexBase+10*this._activeModals.length}static createModal(e={}){const t={...this._defaults,...e},o=this._ensureContainer(),n=document.createElement("domma-modal");n.style.zIndex=this._getNextZIndex(),n.style.pointerEvents="auto",t.size&&n.setAttribute("size",t.size),t.title&&n.setAttribute("title",t.title),t.content&&n.setAttribute("content",t.content),void 0!==t.backdrop&&n.setAttribute("backdrop",String(t.backdrop)),void 0!==t.backdropClose&&n.setAttribute("backdrop-close",String(t.backdropClose)),void 0!==t.keyboard&&n.setAttribute("keyboard",String(t.keyboard)),t.animation&&n.setAttribute("animation",t.animation),void 0!==t.animationDuration&&n.setAttribute("animation-duration",String(t.animationDuration)),void 0!==t.scrollable&&n.setAttribute("scrollable",String(t.scrollable)),t.className&&n.setAttribute("class-name",t.className),void 0!==t.closeButton&&n.setAttribute("close-button",String(t.closeButton)),t.buttons&&t.buttons.length>0&&(n._options=n._options||{},n._options.buttons=t.buttons,n._options.footerClass=t.footerClass),t.onOpen&&n.addEventListener("open",()=>t.onOpen(s)),t.onClose&&n.addEventListener("close",()=>t.onClose(s)),t.onButtonClick&&n.addEventListener("buttonclick",e=>{t.onButtonClick(e.detail.buttonId,s)}),o.appendChild(n);const s={element:n,_factoryCreated:!0,open(){return n.open(),w._activeModals.push(this),this},close(){n.close();const e=w._activeModals.indexOf(this);return e>-1&&w._activeModals.splice(e,1),this},toggle(){return n.toggle(),this},isOpen:()=>n.isOpen(),setTitle(e){return n.setTitle(e),this},setContent(e){return n.setContent(e),this},setButtons(e){return n.setButtons(e),this},remove(){return this.close(),setTimeout(()=>{n.remove();const e=w._activeModals.indexOf(this);e>-1&&w._activeModals.splice(e,1)},t.animationDuration),this},destroy(){this.remove()}};return s}static showModal(e={}){return new Promise(t=>{this.createModal({...e,onButtonClick:(o,n)=>{e.onButtonClick&&e.onButtonClick(o,n),t(o)}}).open()})}}class x extends h{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 L extends h{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 C extends h{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 E{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(!E.isSupported)return console.warn("Notifications are not supported in this browser"),"denied";try{const e=await Notification.requestPermission();return E.permission=e,e}catch(e){return console.error("Error requesting notification permission:",e),"denied"}}static notify(e,t={}){const o=new E({title:e,...t});return o.show(),o}static closeAll(){E._instances.forEach(e=>{e.isShown()&&e.close()}),E._instances=[]}constructor(e={}){this.options={...E.defaults,...e},this.notification=null,this._shown=!1}async show(){if(!E.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"!==E.permission){if("default"!==E.permission)return console.warn("Notification permission denied"),this.options.onError&&this.options.onError(new Error("Permission denied")),this;if("granted"!==await E.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,E._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=E._instances.indexOf(this);t>-1&&E._instances.splice(t,1),this.options.onClose(e,this)}:this.notification.onclose=()=>{this._shown=!1;const e=E._instances.indexOf(this);e>-1&&E._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 S extends h{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={...S.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&&E.isSupported){const e={title:"Timer Complete",body:"Your countdown has finished",...this.options.notificationOptions};E.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 A{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(A._instance)return A._instance;this.options={...A.defaults,...e},this._alarms=[],this._init(),A._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}));A._nextAlarmId=e+1}}else this.options.alarms&&this.options.alarms.length>0&&(this._alarms=this.options.alarms.map(e=>({id:"alarm-"+A._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(){A._checkInterval||(A._checkInterval=setInterval(()=>{this._checkAlarms()},this.options.checkInterval),this._checkAlarms())}_stopChecking(){A._checkInterval&&(clearInterval(A._checkInterval),A._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&&E.isSupported){const t={title:"Alarm",body:e.label||`Alarm at ${e.time}`,requireInteraction:!0,...e.notificationOptions};E.notify(t.title,t)}this.options.onTrigger&&this.options.onTrigger(e),e.repeat||(e.enabled=!1,this._saveAlarms())}add(e){const t={id:"alarm-"+A._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=[],A._instance=null}}class z extends h{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 j extends h{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,consentVersion:"1.0",onVersionMismatch:null,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 e.version&&e.version!==this.options.consentVersion?(this._state="undecided",this._preferences={},Object.keys(this.options.categories).forEach(e=>{const t=this.options.categories[e];this._preferences[e]=t.required||!this.options.requireExplicitConsent}),void(this.options.onVersionMismatch&&this.options.onVersionMismatch(e.version,this.options.consentVersion))):(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(),version:this.options.consentVersion})}_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)}}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 r=document.createElement("div");r.className=`dm-dialog dm-dialog-${e}${o.className?" "+o.className:""}`,r.setAttribute("role","dialog"),r.setAttribute("aria-modal","true");let a='<div class="dm-dialog-content">';if(o.title){a+=`<div class="dm-dialog-header"><h3 class="dm-dialog-title">${i.sanitize(String(o.title),{preset:"basic"})}</h3></div>`}if(a+='<div class="dm-dialog-body">',o.message){a+=`<p class="dm-dialog-message">${i.sanitize(String(o.message),{preset:"basic"})}</p>`}if("prompt"===e){const e=i.sanitize(String(o.inputPlaceholder||""),{preset:"basic"}),t=i.sanitize(String(o.inputValue||""),{preset:"basic"});a+=`<input type="${o.inputType}" class="dm-dialog-input form-input" placeholder="${e}" value="${t}">`}a+="</div>",a+='<div class="dm-dialog-footer">',"confirm"!==e&&"prompt"!==e||(a+=`<button type="button" class="btn btn-outline dm-dialog-cancel">${o.cancelText}</button>`),a+=`<button type="button" class="btn btn-primary dm-dialog-confirm">${o.confirmText}</button>`,a+="</div></div>",r.innerHTML=a,s.appendChild(r),n.appendChild(s);const l=r.querySelector(".dm-dialog-confirm"),d=r.querySelector(".dm-dialog-cancel"),h=r.querySelector(".dm-dialog-input"),c=h||l;setTimeout(()=>c?.focus(),50),h&&h.select();const u=e=>{o.animation?(s.classList.add("dm-dialog-closing"),setTimeout(()=>{s.remove(),t(e)},200)):(s.remove(),t(e))},p=()=>{u("prompt"===e?h.value:"confirm"===e||void 0)},m=()=>{u("prompt"===e&&null)};if(l.addEventListener("click",p),d?.addEventListener("click",m),o.backdropClose&&s.addEventListener("click",e=>{e.target===s&&m()}),o.keyboard){const t=o=>{"Escape"===o.key?(m(),document.removeEventListener("keydown",t)):("Enter"===o.key&&"prompt"!==e||"Enter"===o.key&&"prompt"===e&&o.target===h)&&(p(),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 h{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 T extends h{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 T.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 H extends h{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)=>{if(e.items&&e.items.length>0){r+='<li class="navbar-item navbar-dropdown">';const o=e.icon?`<span data-icon="${e.icon}" data-size="18" style="margin-right: 6px; vertical-align: middle;"></span>`:"";r+=`<button class="navbar-link navbar-dropdown-toggle" data-index="${t}">\n ${o}${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)=>{if(e.divider)r+='<li class="navbar-dropdown-divider"></li>';else{const n=e.url||"#",s=e.external||n.startsWith("http://")||n.startsWith("https://")?' target="_blank" rel="noopener noreferrer"':"",i=e.icon?`<span data-icon="${e.icon}" data-size="16" style="margin-right: 6px; vertical-align: middle;"></span>`:"";r+=`<li><a href="${n}" class="navbar-dropdown-item" data-index="${t}" data-subindex="${o}"${s}>${i}${e.text}</a></li>`}}),r+="</ul>",r+="</li>"}else{r+='<li class="navbar-item">';const o=e.icon?`<span data-icon="${e.icon}" data-size="18" style="margin-right: 6px; vertical-align: middle;"></span>`:"";r+=`<a href="${e.url||"#"}" class="navbar-link${e.active?" active":""}" data-index="${t}">${o}${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",n=e.icon?`<span data-icon="${e.icon}" data-size="16" style="margin-right: 6px; vertical-align: middle;"></span>`:"";r+=`<a href="${e.url||"#"}" class="navbar-action dm-btn dm-btn-${o}" data-action="${t}">${n}${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"),this._scanIcons()}_scanIcons(){void 0!==window.Domma&&window.Domma.icons&&window.Domma.icons.scan&&window.Domma.icons.scan(this.element)}_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 $ extends h{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:n,header:s,items:i,footer:r,variant:a,collapsible:l,collapsibleDesktop:d,collapsedWidth:h}=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"),d&&this.element.classList.add("sidebar-desktop-collapsible"),this._isCollapsed&&d&&this.element.classList.add("sidebar-collapsed"),o&&(this.element.style.setProperty("--sidebar-width",o),this.element.style.width=o),h&&this.element.style.setProperty("--sidebar-collapsed-width",h),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 c="";if(s){if(c+='<div class="sidebar-header">',s.icon&&(c+=`<span class="sidebar-header-icon" data-icon="${s.icon}" data-size="24"></span>`),s.title&&(c+=`<h3 class="sidebar-header-title">${s.title}</h3>`),l&&!1!==s.toggle){const e="right"===this.options.position?"chevron-right":"chevron-left",t=this._isCollapsed&&d?"chevron-right":e;c+=`\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 `}c+="</div>"}c+='<nav class="sidebar-nav">',c+=this._renderItems(i),c+="</nav>",r&&(c+='<div class="sidebar-footer">',r.html?c+=r.html:r.text&&(c+=`<p class="sidebar-footer-text">${r.text}</p>`),c+="</div>"),this.element.innerHTML=c,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 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();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,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)}}_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,n=document.getElementById(o);n&&e.push({element:n,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 D extends h{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 d='<div class="footer-container">';"columns"===t&&n&&n.length>0?d+=this._renderColumnsLayout(o,n,i,r):d+="minimal"===t?this._renderMinimalLayout(r,i):this._renderSimpleLayout(o,s,i,r),d+="</div>",this.element.innerHTML=d}_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=>{const t=e.icon?`<span data-icon="${e.icon}" data-size="16" style="margin-right: 6px; vertical-align: middle;"></span>`:"";s+=`<a href="${e.url||"#"}" class="footer-link">${t}${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>`),e.description&&(s+=`<p class="footer-brand-description">${e.description}</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=>{const t=e.icon?`<span data-icon="${e.icon}" data-size="16" style="margin-right: 6px; vertical-align: middle;"></span>`:"";s+=`<li><a href="${e.url||"#"}" class="footer-column-link">${t}${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 V extends h{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 I extends h{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 O extends h{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=i.sanitize(String(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 d="";if((o||r)&&(d+='<div class="dm-slideover-header">',o&&(d+=`<h5 class="dm-slideover-title">${o}</h5>`),r&&(d+='<button type="button" class="btn btn-ghost-secondary dm-slideover-close" data-dismiss="slideover" aria-label="Close">',window.Domma&&window.Domma.icons?d+=Domma.icons.render(a,{size:20}).outerHTML:d+="×",d+="</button>"),d+="</div>"),d+='<div class="dm-slideover-body">',s?(d+='<div class="container-fluid p-4">',d+='<div class="card">',d+='<div class="card-body p-4">',d+='<div class="row g-3" id="schema-form-container"></div>',d+="</div>",d+="</div>",d+="</div>"):n&&(d+="string"==typeof n?n:""),d+="</div>",t.innerHTML=d,document.body.appendChild(t),n instanceof Element&&!s){const e=t.querySelector(".dm-slideover-body");e.innerHTML="",e.appendChild(n)}const h=new O(t,e);return h._schema=s,h._data=i,h._onSave=l,h}}class N extends h{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"),n=e.status||"planned",s=this.options.currentItem===e.id||this.options.currentItem===t;o.className=`dm-progression-item dm-progression-status-${n}${s?" dm-progression-current":""}`,o.setAttribute("data-index",t),o.setAttribute("data-id",e.id||t),o.setAttribute("data-status",n),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[n]?i+=`<span class="dm-progression-status-icon" data-icon="${this.options.icons[n]}"></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"===n&&"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),n=this.options.items[o];n&&"completed"!==n.status&&this._cycleStatus(n,o)}}))}_cycleStatus(e,t){const o=["planned","in-progress","completed"],n=o.indexOf(e.status||"planned"),s=o[(n+1)%o.length];this.setStatus(t,s)}_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 P={_instances:new Map,card(e,t={}){const o=function(e,t={}){const o="string"==typeof e?document.querySelector(e):e;if(!o)return null;const n=document.createElement("domma-card");for(const[e,o]of Object.entries(t))if("function"==typeof o){const t=e.replace(/^on/,"").toLowerCase();n.addEventListener(t,e=>{o(e.detail||n)})}else"boolean"==typeof o?o&&n.setAttribute(y(e),""):null!=o&&n.setAttribute(y(e),String(o));return Array.from(o.children).forEach(e=>{e.classList.contains("card-header")?e.setAttribute("slot","header"):e.classList.contains("card-body")?e.setAttribute("slot","body"):e.classList.contains("card-footer")&&e.setAttribute("slot","footer"),n.appendChild(e)}),o.replaceWith(n),{element:n,options:n._options,collapse(){return n.collapse(),this},expand(){return n.expand(),this},toggle(){return n.toggle(),this},isCollapsed:()=>n.isCollapsed(),setShadow(e){return n.setShadow(e),this},setHoverable(e){return n.setHoverable(e),this},destroy(){n.destroy()}}}(e,t);return o&&o.element&&this._instances.set(o.element,o),o},modal(e,t={}){if("object"==typeof e&&!e.nodeType&&"string"!=typeof e)return w.createModal(e);const o=function(e,t={}){const o="string"==typeof e?document.querySelector(e):e;if(!o)return null;const n=document.createElement("domma-modal");for(const[e,o]of Object.entries(t))if("function"==typeof o){const t=e.replace(/^on/,"").toLowerCase();n.addEventListener(t,e=>{o(e.detail||n)})}else"boolean"==typeof o?o&&n.setAttribute(y(e),""):"buttons"===e&&Array.isArray(o)?(n._options=n._options||{},n._options.buttons=o):null!=o&&n.setAttribute(y(e),String(o));for(;o.firstChild;)n.appendChild(o.firstChild);return o.replaceWith(n),{element:n,options:n._options,open(){return n.open(),this},close(){return n.close(),this},toggle(){return n.toggle(),this},isOpen:()=>n.isOpen(),setTitle(e){return n.setTitle(e),this},setContent(e){return n.setContent(e),this},setButtons(e){return n.setButtons(e),this},destroy(){n.destroy()},remove(){n.remove()}}}(e,t);return o&&o.element&&this._instances.set(o.element,o),o},tabs(e,t={}){const o=new x(e,t);return o.element&&this._instances.set(o.element,o),o},accordion(e,t={}){const o=new L(e,t);return o.element&&this._instances.set(o.element,o),o},tooltip(e,t={}){const o=function(e,t={}){const o="string"==typeof e?document.querySelectorAll(e):[e];if(0===o.length)return null;const n=[];return o.forEach(e=>{if(!e)return;const o=document.createElement("domma-tooltip");for(const[e,n]of Object.entries(t))if("function"==typeof n){const t=e.replace(/^on/,"").toLowerCase();o.addEventListener(t,e=>{n(o)})}else"delay"===e&&"object"==typeof n?(void 0!==n.show&&o.setAttribute("delay",String(n.show)),void 0!==n.hide&&o.setAttribute("hide-delay",String(n.hide))):"boolean"==typeof n?n&&o.setAttribute(y(e),""):null!=n&&o.setAttribute(y(e),String(n));e.parentNode.insertBefore(o,e),o.appendChild(e),o._dommaComponent=o,n.push({element:o,options:o._options,show(){return o.show(),this},hide(){return o.hide(),this},toggle(){return o.toggle(),this},setContent(e){return o.setContent(e),this},setPosition(e){return o.setPosition(e),this},isVisible:()=>o.isVisible(),destroy(){const e=o.querySelector("*");e&&o.parentNode&&o.parentNode.insertBefore(e,o),o.remove()}})}),1===n.length?n[0]:n}(e,t);return Array.isArray(o)?o.forEach(e=>{e.element&&this._instances.set(e.element,e)}):o&&o.element&&this._instances.set(o.element,o),o},badge(e,t={}){const o=function(e,t={}){const o="string"==typeof e?document.querySelector(e):e;if(!o)return null;const n=o.textContent,s=document.createElement("domma-badge");s.textContent=n;for(const[e,o]of Object.entries(t))if("function"==typeof o){const t=e.replace(/^on/,"").toLowerCase();s.addEventListener(t,e=>{o(e.detail.event||e,s)})}else"boolean"==typeof o?o&&s.setAttribute(y(e),""):null!=o&&s.setAttribute(y(e),String(o));return o.replaceWith(s),s._dommaComponent=s,{element:s,options:s._options,setOptions(e){return s.setOptions(e),this},setVariant(e){return s.setVariant(e),this},setSize(e){return s.setSize(e),this},setText(e){return s.setText(e),this},remove(){s.remove()},destroy(){s.destroy()}}}(e,t);return o&&o.element&&this._instances.set(o.element,o),o},dropdown(e,t={}){const o=new C(e,t);return o.element&&this._instances.set(o.element,o),o},carousel(e,t={}){const o=new z(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 j(e);return this._instances.set("cookieConsent",t),t},backToTop(e,t={}){const o=function(e,t={}){let o=null;e&&(o="string"==typeof e?document.querySelector(e):e);const n=document.createElement("domma-back-to-top");for(const[e,o]of Object.entries(t))if("function"==typeof o){const t=e.replace(/^on/,"").toLowerCase();n.addEventListener(t,e=>{o(e.detail||n)})}else"boolean"==typeof o?o&&n.setAttribute(y(e),""):null!=o&&n.setAttribute(y(e),String(o));return o?o.replaceWith(n):document.body.appendChild(n),n._dommaComponent=n,{element:n,options:n._options,scroll(){return n.scroll(),this},show(){return n.show(),this},hide(){return n.hide(),this},toggle(){return n.toggle(),this},isVisible:()=>n.isVisible(),getButton:()=>n.getButton(),setShowAfter(e){return n.setShowAfter(e),this},setPosition(e){return n.setPosition(e),this},setOffset(e){return n.setOffset(e),this},destroy(){n.destroy()}}}(e,t);return o&&o.element&&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=b(e,t);return o&&o.element&&this._instances.set(o.element,o),o},showLoader(e,t={}){const o="string"==typeof e?document.querySelector(e):e;if(!o)return null;let n=this._instances.get(o);return n?n.show():(n=b(o,{...t,visible:!0}),this._instances.set(o,n)),n},hideLoader(e){const t="string"==typeof e?document.querySelector(e):e,o=this._instances.get(t);o&&o.hide&&o.hide()},fullscreenLoader(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=b(o,{type:t.type||"spinner",size:t.size||"large",color:t.color||"white",text:e,overlay:!1,centered:!1,visible:!0});return o.style.display="flex",this._instances.set(o,n),n},breadcrumbs(e,t={}){const o=new T(e,t);return o.element&&this._instances.set(o.element,o),o},navbar(e,t={}){const o=new H(e,t);return o.element&&this._instances.set(o.element,o),o},sidebar(e,t={}){const o=new $(e,t);return o.element&&this._instances.set(o.element,o),o},footer(e,t={}){const o=new D(e,t);return o.element&&this._instances.set(o.element,o),o},notification:(e={})=>new E(e),notify:(e,t={})=>E.notify(e,t),timer(e,t={}){const o=new S(e,t);return o.element&&this._instances.set(o.element,o),o},alarm:(e={})=>new A(e),autocomplete(e,t={}){const o=new V(e,t);return o.element&&this._instances.set(o.element,o),o},pillbox(e,t={}){const o=new I(e,t);return o.element&&this._instances.set(o.element,o),o},treeView(e,t={}){const o=new c(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,O.create(e);const o=new O(e,t);return o.element&&this._instances.set(o.element,o),o},progression(e,t={}){const o=new N(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:w.createModal.bind(w),showModal:w.showModal.bind(w),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}`)}},q={_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 F{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,d.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=K.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,d.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&&q.remove(`model:${this._persistKey}`)}getPersistKey(){return this._persistKey}isPersisted(){return null!==this._persistKey}_saveToStorage(){if(!this._persistKey)return!1;try{return q.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=q.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 R{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 K={_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 F(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 R(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 U{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={...U.defaults,...o},this.model=null,this.errors={},this.touched=new Set,this.utils=window.Domma?.utils||d,this.models=window.Domma?.models||K,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",d=t.label||this.utils.capitalize(e),h=this.data[e]||t.default||"",c=t.required||!1,u=a.disabled||t.readonly||!1,p=a.placeholder||"",m=a.hint||"",f=a.helperText||"",v=a.span||1;let g="";if("grid"===this.options.layout&&v>1){const e=this.options.columns||2;2===v?g=" col-span-2":3===v&&3===e?g=" col-span-3":v>=e&&(g=3===e?" col-span-3":" col-span-2")}let k=`<div class="${o}${g}" data-field="${e}">`;if(n&&d&&"hidden"!==l&&"boolean"!==l){k+=`<label for="field-${e}" class="${this.options.labelClassName}">${d}${c?' <span class="text-danger">*</span>':""}`,i&&m&&(k+=` <small class="${this.options.hintClassName}">${m}</small>`),k+="</label>"}return k+=this._buildInput(e,t,{type:l,value:h,required:c,disabled:u,placeholder:p}),s&&f&&(k+=`<small class="${this.options.helperClassName}">${f}</small>`),k+=`<div class="${this.options.errorClassName}" data-error-for="${e}" style="display: none;"></div>`,k+="</div>",k}_buildInput(e,t,o){const{type:n,value:s,required:i,disabled:r,placeholder:a}=o,l=t.formConfig||{},d={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}},h=Object.entries(d).map(([e,t])=>!0===t?e:`${e}="${t}"`).join(" ");switch(n){case"select":return this._buildSelect(e,t,d,s);case"multiselect":return d.multiple=!0,this._buildSelect(e,t,d,s);case"textarea":return`<textarea ${h} rows="${l.rows||3}">${this.utils.escapeHtml(s)}</textarea>`;case"radio":return this._buildRadioGroup(e,t,d,s);case"checkbox-group":return this._buildCheckboxGroup(e,t,d,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" ${h} ${o}>\n <label class="form-check-label" for="${d.id}">${i}${r}</label>\n ${a}\n </div>`;case"file":return`<input type="file" ${h} accept="${l.accept||""}" ${l.multiple?"multiple":""}>`;default:return`<input type="${U.inputTypes[n]||"text"}" ${h} 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 Y={create:(e,t={},o={})=>new U(e,t,o),render:(e,t,o={},n={})=>new U(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 d="string"==typeof e?document.querySelector(e):e;if(!d)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 h(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 c(){if(d.innerHTML=function(e){const t=o[e],n=new U(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=d.querySelector(`#${i}`),!l)return;const e=l.querySelector("form");if(e){new U(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--,c())}),n&&n.addEventListener("click",t=>{t.preventDefault();const n=h(e);Object.assign(a,n);const i=new U(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++,c())}),u&&u.addEventListener("click",async t=>{t.preventDefault();const n=h(e);Object.assign(a,n);const i=new U(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`)}),c(),{nextStep:()=>{r<o.length-1&&(s.onStepChange&&s.onStepChange(r+1,a),r++,c())},prevStep:()=>{r>0&&(s.onStepChange&&s.onStepChange(r-1,a),r--,c())},goToStep:e=>{e>=0&&e<o.length&&(s.onStepChange&&s.onStepChange(e,a),r=e,c())},getCurrentStep:()=>r,getStepData:()=>({...a}),setStepData:e=>{Object.assign(a,e),c()},validate:()=>{const e=l?.querySelector("form");if(e){const t=new U(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 U(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 d=l.firstElementChild;return document.body.appendChild(a),document.body.appendChild(d),s={open(){a.style.display="block",d.style.display="block",setTimeout(()=>{a.classList.add("active"),d.classList.add("active")},10);const e=d.querySelector("form");e&&i._bindEvents(e),d.querySelectorAll('[data-action="close"]').forEach(e=>{e.addEventListener("click",()=>this.close())}),d.querySelector('[data-action="save"]').addEventListener("click",()=>{const e=d.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"),d.classList.remove("active"),setTimeout(()=>{a.style.display="none",d.style.display="none",document.body.removeChild(a),document.body.removeChild(d)},300)},isOpen:()=>"none"!==d.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:n,title:s="Manage Items",primaryKey:i="id",displayField:r="name",headers:a={},onError:l=e=>console.error("CRUD Error:",e),onSuccess:h=e=>console.log("CRUD Success:",e)}=e;let c=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:{...a,...t}});if(!n.success)throw new Error(n.message||"Failed to load data");u=n.data||[]}catch(e){throw l(e),e}},createTable(){if(!n)return;const e=Object.entries(t).map(([e,t])=>({key:e,title:t.label||(window.Domma?.utils||d).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[i]}">\n ${o}\n Edit\n </button>\n <button class="btn btn-danger crud-delete-btn" data-id="${t[i]}">\n ${n}\n Delete\n </button>\n </div>\n `}}),c=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-${s.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(){Y.modal(t,{},{title:`Create New ${s.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:{...a,...n}});if(!s.success)throw new Error(s.message||"Failed to create item");h("Item created successfully"),await this.refresh()}catch(e){throw l(e),e}}}).open()},async edit(e){const n=u.find(t=>t[i]==e);if(!n)return void l(new Error("Item not found"));Y.modal(t,n,{title:`Edit ${n[r]||"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:{...a,...s}});if(!i.success)throw new Error(i.message||"Failed to update item");h("Item updated successfully"),await this.refresh()}catch(e){throw l(e),e}}}).open()},async delete(e){const t=u.find(t=>t[i]==e);if(!t)return void l(new Error("Item not found"));if(await window.Domma.elements.confirm(`Are you sure you want to delete "${t[r]||"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:{...a,...n}});if(!s.success)throw new Error(s.message||"Failed to delete item");h("Item deleted successfully"),await this.refresh()}catch(e){l(e)}},async refresh(){try{await this.loadData(),c&&(c.setData(u),this.initializeTableIcons())}catch(e){}},getData:()=>[...u],getTable:()=>c,addItem:e=>{u.push(e),c&&c.setData(u)},updateItem:(e,t)=>{const o=u.findIndex(t=>t[i]==e);-1!==o&&(u[o]={...u[o],...t},c&&c.setData(u))},removeItem:e=>{const t=u.findIndex(t=>t[i]==e);-1!==t&&(u.splice(t,1),c&&c.setData(u))}}}},J={_configs:new Map,_components:new Map,_eventHandlers:new Map,process(e){e&&"object"==typeof e&&Object.keys(e).forEach(t=>{const o=e[t];this._configs.set(t,d.cloneDeep(o));const n=a(t);if(o.component){const e=this.initComponent(t,o.component,o.options||{});e&&this._components.set(t,e)}o.initial&&this.applyProperties(n,o.initial),o.events&&this.bindEvents(t,o.events,!0)})},update(e,t){const o=this._configs.get(e);if(!o)return this.process({[e]:t}),this._configs.get(e);const n=d.merge({},o,t);this._configs.set(e,n);const s=a(e);if(t.options&&this._components.has(e)){const o=this._components.get(e);o&&"function"==typeof o.setOptions&&o.setOptions(t.options)}return t.initial&&this.applyProperties(s,t.initial),t.events&&this.updateEvents(e,t.events),n},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:P.card,modal:P.modal,tabs:P.tabs,accordion:P.accordion,tooltip:P.tooltip,carousel:P.carousel,dropdown:P.dropdown,badge:P.badge,cookieConsent:P.cookieConsent,backToTop:P.backToTop,buttonGroup:P.buttonGroup,loader:P.loader,breadcrumbs:P.breadcrumbs,navbar:P.navbar,sidebar:P.sidebar,footer:P.footer,notification:P.notification,timer:P.timer,alarm:P.alarm,autocomplete:P.autocomplete,pillbox:P.pillbox,form:Y.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(P,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,t,o=!1){const n=a(e);o&&!this._eventHandlers.has(e)&&this._eventHandlers.set(e,new Map),Object.keys(t).forEach(s=>{const i=t[s],r=e=>this.executeActions(e,i);n.on(s,r),o&&this._eventHandlers.get(e).set(s,r)})},unbindEvents(e){const t=this._eventHandlers.get(e);if(!t)return;const o=a(e);t.forEach((e,t)=>{o.off(t,e)}),this._eventHandlers.delete(e)},updateEvents(e,t){const o=this._eventHandlers.get(e),n=a(e);o&&Object.keys(t).forEach(e=>{o.has(e)&&(n.off(e,o.get(e)),o.delete(e))}),this.bindEvents(e,t,!0)},executeActions(e,t){if("function"==typeof t)return void t.call(e.target,e,a(e.target));const o=Array.isArray(t)?t:[t],n=a(e.target);o.forEach(t=>{if("function"==typeof t)return void t.call(e.target,e,n);const o=t.target?a(t.target):n;t.css&&o.css(t.css),t.text&&o.text(t.text),t.html&&o.html(t.html),t.addClass&&o.addClass(t.addClass),t.removeClass&&o.removeClass(t.removeClass),t.toggleClass&&o.toggleClass(t.toggleClass),t.log&&console.log(t.log)})}},G=1e3,Q=6e4,X=36e5,Z=864e5,ee=6048e5,te=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],oe=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],ne=["January","February","March","April","May","June","July","August","September","October","November","December"],se=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];class ie{constructor(e){e instanceof ie?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(),d=t.getMilliseconds(),h=r%12||12,c=(e,t=2)=>String(e).padStart(t,"0"),u={YYYY:o,YY:String(o).slice(-2),MMMM:ne[n],MMM:se[n],MM:c(n+1),M:n+1,dddd:te[i],ddd:oe[i],DD:c(s),D:s,HH:c(r),H:r,hh:c(h),h:h,mm:c(a),m:a,ss:c(l),s:l,SSS:c(d,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 ie(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<X?(i=Math.floor(n/Q),r=1===i?"minute":"minutes"):n<Z?(i=Math.floor(n/X),r=1===i?"hour":"hours"):n<ee?(i=Math.floor(n/Z),r=1===i?"day":"days"):n<30*Z?(i=Math.floor(n/ee),r=1===i?"week":"weeks"):n<365*Z?(i=Math.floor(n/(30*Z)),r=1===i?"month":"months"):(i=Math.floor(n/(365*Z)),r=1===i?"year":"years"),s?`${i} ${r} ago`:`in ${i} ${r}`)}to(e){const t=new ie(e)._date.getTime()-this._date.getTime(),o=Math.abs(t),n=t>0;let s,i;return o<Q?"just now":(o<X?(s=Math.floor(o/Q),i=1===s?"minute":"minutes"):o<Z?(s=Math.floor(o/X),i=1===s?"hour":"hours"):o<ee?(s=Math.floor(o/Z),i=1===s?"day":"days"):o<30*Z?(s=Math.floor(o/ee),i=1===s?"week":"weeks"):o<365*Z?(s=Math.floor(o/(30*Z)),i=1===s?"month":"months"):(s=Math.floor(o/(365*Z)),i=1===s?"year":"years"),n?`in ${s} ${i}`:`${s} ${i} ago`)}isBefore(e,t){const o=new ie(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 ie(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 ie(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 ie(e),i=new ie(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 d="["===n[0],h="]"===n[1];return(d?l>=r:l>r)&&(h?l<=a:l<a)}diff(e,t="milliseconds",o=!1){const n=new ie(e),s=this._date.getTime()-n._date.getTime(),i=this._normalizeUnit(t);let r;return r="milliseconds"===i?s:"seconds"===i?s/G:"minutes"===i?s/Q:"hours"===i?s/X:"days"===i?s/Z:"weeks"===i?s/ee:"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 ie(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 re=function(e){return new ie(e)};Object.assign(re,{now:()=>Date.now(),parse(e,t){if(!t)return new ie(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 ie(NaN);const i=new ie;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 ie(NaN)}},isValid:e=>new ie(e).isValid(),min(...e){const t=e.flat().map(e=>new ie(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 ie(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 ae={"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"},sliders:{viewBox:"0 0 24 24",path:"M4 21v-7m0-4V3m8 18v-9m0-4V3m8 18v-5m0-4V3M1 14h6m2-6h6m2 8h6",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"user-check":{viewBox:"0 0 24 24",path:"M16 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2m16-13l2 2 4-4M13 7a4 4 0 11-8 0 4 4 0 018 0z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}},le={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 0 1 9 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"}},de={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"},"play-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 M10 8l6 4-6 4V8z",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"}},he={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"}},ce={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"}},ue={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"}},pe={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"},key:{viewBox:"0 0 24 24",path:"M21 2l-2 2m-7.61 7.61a5.5 5.5 0 11-7.778 7.778 5.5 5.5 0 017.777-7.777zm0 0L15.5 7.5m0 0l3 3L22 7l-3-3m-3.5 3.5L19 4",stroke:"currentColor",fill:"none",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},"shield-alert":{viewBox:"0 0 24 24",path:"M12 9v2m0 4h.01M20.618 5.984A11.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"}},me={"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"}},fe={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"}},ve={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"}},ge={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"}},ke={"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"}},_e={"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"}},ye={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"}},be={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"}},Me={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"}},we={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 xe={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 Le={...ae,...le,...de,...he,...ce,...ue,...pe,...me,...fe,...ve,...ge,...ke,..._e,...ye,...be,...Me,...we,...xe},Ce={ui:{name:"UI",description:"Core user interface icons",icons:Object.keys(ae)},communication:{name:"Communication",description:"Messaging and notifications",icons:Object.keys(le)},media:{name:"Media",description:"Audio, video, and images",icons:Object.keys(de)},files:{name:"Files",description:"Documents and file operations",icons:Object.keys(he)},social:{name:"Social",description:"Social interactions and sharing",icons:Object.keys(ce)},commerce:{name:"Commerce",description:"Shopping and payments",icons:Object.keys(ue)},status:{name:"Status",description:"Indicators and alerts",icons:Object.keys(pe)},navigation:{name:"Navigation",description:"Directional and navigation",icons:Object.keys(me)},seasonal:{name:"Seasonal",description:"Festive and holiday icons",icons:Object.keys(fe)},weather:{name:"Weather",description:"Weather conditions and meteorology",icons:Object.keys(ve)},devices:{name:"Devices",description:"Electronic devices and hardware",icons:Object.keys(ge)},finance:{name:"Finance",description:"Financial and charts",icons:Object.keys(ke)},health:{name:"Health",description:"Medical and wellness",icons:Object.keys(_e)},sport:{name:"Sport",description:"Sports and fitness",icons:Object.keys(ye)},buildings:{name:"Buildings",description:"Architecture and structures",icons:Object.keys(be)},emojis:{name:"Emojis",description:"Emoji expressions and faces",icons:Object.keys(Me)},transport:{name:"Transport",description:"Vehicles and transportation",icons:Object.keys(we)},code:{name:"Code & Editor",description:"Text editing, formatting, and code icons",icons:Object.keys(xe)}},Ee="http://www.w3.org/2000/svg";const Se=new class{constructor(){this._icons={...Le},this._categories={...Ce}}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(Ee,"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 d=["dm-icon"];if(s&&d.push(s),l.setAttribute("class",d.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(Ee,"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(Ee,"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(Ee,"svg");return e.setAttribute("xmlns",Ee),e.style.display="none",Object.entries(this._icons).forEach(([t,o])=>{const n=document.createElementNS(Ee,"symbol");if(n.setAttribute("id",`dm-icon-${t}`),n.setAttribute("viewBox",o.viewBox||"0 0 24 24"),o.path){const e=document.createElementNS(Ee,"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(Ee,"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(Ee,"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(Ee,"use");return r.setAttributeNS("http://www.w3.org/1999/xlink","href",`#dm-icon-${e}`),s.appendChild(r),s}};class Ae{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,Ae.hoverColors,Ae.hoverColors.default):"transparent"};const o=e%2==1,n=this._resolveColor(t.evenRowColor,Ae.stripeColors,"transparent"),s=this._resolveColor(t.oddRowColor,Ae.stripeColors,Ae.stripeColors.default);return{background:o?s:n,hover:t.hover?this._resolveColor(t.hoverColor,Ae.hoverColors,Ae.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=q.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()};q.set(e,t)}catch(e){console.warn("Failed to save table settings:",e)}}clearSettings(){if(this.options.persistSettings){const e=this._getStorageKey();q.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 d.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 s=document.createElement("div");s.className=t.wrapper;const i=document.createElement("div");if(i.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",d.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)}i.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=`${Se.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),i.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 r=document.createElement("label");r.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 d=document.createElement("span");d.className="domma-export-toggle-knob",l.appendChild(d),r.appendChild(a),r.appendChild(l);const h=document.createElement("span");h.className="domma-export-mode-label",h.textContent="Download";const c=()=>{o?(l.classList.add("active"),d.classList.add("active"),s.classList.remove("active"),h.classList.add("active")):(l.classList.remove("active"),d.classList.remove("active"),s.classList.add("active"),h.classList.remove("active"))};this._addEventHandler(a,"change",()=>{o=a.checked,c()}),c(),n.appendChild(s),n.appendChild(r),n.appendChild(h),t.appendChild(n);const u=document.createElement("span");u.className="domma-export-separator",t.appendChild(u);const p={text:{label:"Text",icon:Se.html("clipboard",{size:16}),format:"text"},csv:{label:"CSV",icon:Se.html("document",{size:16}),format:"csv"},excel:{label:"Excel",icon:Se.html("grid",{size:16}),format:"excel"},json:{label:"JSON",icon:Se.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)}i.appendChild(t)}(e.searchable||e.columnToggle||e.exportPanel)&&s.appendChild(i);const r=document.createElement("table");r.className=t.table,r.style.cssText="width: 100%; border-collapse: collapse;";const a=document.createElement("thead");a.className=t.header;const l=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),l.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,l.appendChild(o)}a.appendChild(l),r.appendChild(a);const h=document.createElement("tbody");h.className=t.body;const c=e.rowKey;if(n.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[c])&&(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[c]),this._addEventHandler(t,"change",()=>{this.toggleSelect(n[c])}),e.appendChild(t),i.appendChild(e)}e.selectable&&"single"===e.selectionMode&&(i.style.cursor="pointer",this._addEventHandler(i,"click",()=>{this.toggleSelect(n[c])}));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[c],{[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)}h.appendChild(i)}),r.appendChild(h),s.appendChild(r),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(),i=document.createElement("span");i.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"),d=(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(d(Se.html("chevrons-left",{size:14}),()=>this.firstPage(),1===this._currentPage,!0)),l.appendChild(d(Se.html("chevron-left",{size:14}),()=>this.prevPage(),1===this._currentPage,!0));const h=5;let c=Math.max(1,this._currentPage-Math.floor(h/2)),u=Math.min(n.totalPages,c+h-1);c=Math.max(1,u-h+1);for(let e=c;e<=u;e++){const t=d(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(d(Se.html("chevron-right",{size:14}),()=>this.nextPage(),this._currentPage===n.totalPages,!0)),l.appendChild(d(Se.html("chevrons-right",{size:14}),()=>this.lastPage(),this._currentPage===n.totalPages,!0)),o.appendChild(r),o.appendChild(i),o.appendChild(l),s.appendChild(o)}return this.element.appendChild(s),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 ze={_instances:new Map,create(e,t={}){const o="string"==typeof e?document.querySelector(e):e,n=new Ae(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()}},je="domma-theme",Be="domma-theme-variant",We="dm-theme-",Te=["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"],He="charcoal-dark";const $e=new class{constructor(){this._theme=He,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||He,Te.includes(r)||(console.warn(`Invalid theme: ${r}. Using default: ${He}`),r=He),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(!Te.includes(e))return console.warn(`Invalid theme: ${e}. Available themes: ${Te.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(!Te.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[...Te]}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(We));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(We));o.push(`${We}${this._theme}`),t.className=o.join(" ").trim(),e&&this._updateMetaThemeColor()}_saveToStorage(){if(this._persist&&"undefined"!=typeof localStorage)try{localStorage.setItem(je,this._theme),localStorage.removeItem(Be)}catch(e){}}_loadFromStorage(){if("undefined"==typeof localStorage)return null;try{const e=localStorage.getItem(je);if(e&&Te.includes(e))return e;const t=e,o=localStorage.getItem(Be);if(t&&["light","dark"].includes(t)){const e=`${o||"charcoal"}-${t}`;if(console.log(`[ThemeEngine] Migrating theme: ${t} + ${o} → ${e}`),Te.includes(e))return localStorage.setItem(je,e),localStorage.removeItem(Be),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}`;Te.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",()=>{$e._initialised||$e.init({persist:!0,autoDetect:!1})}):$e._initialised||$e.init({persist:!0,autoDetect:!1}));const De={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=q.get(this.config.storageKey),this.user=q.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 o=await l.post(`${this.apiUrl}/auth/login`,{email:e,password:t});if(!o.success||!o.token)throw new Error(o.message||"Login failed");return this.token=o.token,this.user=o.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,o){if(!this.initialized)throw new Error("Auth module not initialized. Call auth.init() first.");try{const n=await l.post(`${this.apiUrl}/auth/register`,{email:e,password:t,name:o});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 l.get(`${this.apiUrl}/auth/me`,{headers:this.getHeaders(),silent:!0});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){q.set(this.config.storageKey,e)},_storeUser(e){q.set(this.config.userStorageKey,e)},_clearToken(){q.remove(this.config.storageKey),this.token=null},_clearUser(){q.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 Ve extends h{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 De.login(t,o),this.options.onSuccess&&this.options.onSuccess(De.getUser())}catch(e){this.options.onError&&this.options.onError(e)}}}class Ie extends h{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 <div class="form-group">\n ${e.showLabels?'<label class="form-label">Confirm Password</label>':""}\n <input\n type="password"\n class="form-input"\n name="confirmPassword"\n placeholder="Re-enter your password"\n minlength="${e.minPasswordLength}"\n required>\n </div>\n \x3c!-- Honeypot field - hidden from users, bots will fill it --\x3e\n <div class="form-group" style="position: absolute; left: -9999px; opacity: 0; pointer-events: none;" aria-hidden="true">\n <label for="website">Website</label>\n <input\n type="text"\n class="form-input"\n name="website"\n id="website"\n tabindex="-1"\n autocomplete="off">\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,s=e.querySelector('[name="confirmPassword"]').value;if(e.querySelector('[name="website"]').value)return console.warn("[Auth] Honeypot triggered - possible bot detected"),void(this.options.onError&&this.options.onError(new Error("Registration failed. Please try again.")));if(n===s){this.options.onSubmit&&this.options.onSubmit(o,n,t);try{await De.register(o,n,t),this.options.onSuccess&&this.options.onSuccess(De.getUser())}catch(e){this.options.onError&&this.options.onError(e)}}else this.options.onError&&this.options.onError(new Error("Passwords do not match. Please try again."))}}class Oe extends h{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 Ne extends h{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()}),De.on("login",()=>this.render()),De.on("logout",()=>this.render())}render(){const e=this.options,t=De.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(){De.logout(),this.options.onLogout&&this.options.onLogout()}}De.LoginForm=Ve,De.RegisterForm=Ie,De.AuthTabs=Oe,De.UserInfo=Ne,De.createLoginForm=(e,t)=>new Ve(e,t),De.createRegisterForm=(e,t)=>new Ie(e,t),De.createAuthTabs=(e,t)=>new Oe(e,t),De.createUserInfo=(e,t)=>new Ne(e,t);const Pe={"domma-badge":p,"domma-tooltip":m,"domma-loader":f,"domma-back-to-top":v,"domma-toast":g,"domma-modal":k,"domma-card":_};function qe(){for(const[e,t]of Object.entries(Pe))customElements.get(e)||customElements.define(e,t)}qe(),qe();let Fe=!0;"undefined"!=typeof document&&document.body?document.body.classList.add("dm-cloaked"):"undefined"!=typeof document&&document.addEventListener("DOMContentLoaded",()=>{Fe&&document.body.classList.add("dm-cloaked")});const Re=(e,t)=>a(e,t);Re.version="0.9.11-alpha",Re.buildInfo={version:"0.9.11-alpha",built:"19/01/2026 14:42",commit:"1ba6a6a"},Re.http=l,Re.utils=d,Re.setup=e=>(!1===e.cloak&&(Fe=!1,"undefined"!=typeof document&&document.body&&(document.body.classList.remove("dm-cloaked"),document.body.classList.add("dm-ready"))),e.noStyles?$e.init({disabled:!0}):(e.theme||e.autoDetectTheme)&&$e.init({theme:e.theme,autoDetect:e.autoDetectTheme,persist:!1!==e.persistTheme}),e.scanIcons&&Se.scan(),J.process(e)),Re.update=(e,t)=>J.update(e,t),Re.config=e=>J.config(e),Re.reset=e=>J.reset(e),Re.models=K,Re.elements=P,Re.dates=re,Re.tables=ze,Re.forms=Y,Re.theme=$e,Re.icons=Se,Re.storage=q,Re.auth=De,Re.sanitize=i,Re.DesktopNotification=E;const Ke=Re,Ue=d,Ye=K,Je=re,Ge=q,Qe=De,Xe=Y,Ze=l,et=P,tt=Se,ot=ze;if(Re.M=Ye,Re.D=Je,Re.S=Ge,Re.A=Qe,Re.F=Xe,Re.H=Ze,Re.E=et,Re.I=tt,Re.T=ot,"undefined"!=typeof window&&(window.Domma=Re,window.$=Ke,window._=Ue,window.M=Ye,window.D=Je,window.S=Ge,window.A=Qe,window.F=Xe,window.H=Ze,window.E=et,window.I=tt,window.T=ot),"undefined"!=typeof document){const e=()=>{Fe&&document.body.classList.contains("dm-cloaked")&&document.body.classList.add("dm-ready")};"complete"===document.readyState?setTimeout(e,0):window.addEventListener("load",e)}export{Ke as $,Qe as A,Je as D,Re as Domma,et as E,Xe as F,Ze as H,tt as I,Ye as M,Ge as S,ot as T,Ue as _,Re as default};
|