@pure-ds/core 0.5.38 → 0.5.39

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.
@@ -1,10 +1,10 @@
1
- var Ne=Object.defineProperty;var Z=(e,t)=>()=>(e&&(t=e(e=0)),t);var J=(e,t)=>{for(var n in t)Ne(e,n,{get:t[n],enumerable:!0})};var ve={};J(ve,{AutoDefiner:()=>se});async function tt(...e){let t={};e.length&&typeof e[e.length-1]=="object"&&(t=e.pop()||{});let n=e,{baseURL:r,mapper:o=d=>`${d}.js`,onError:s=(d,l)=>console.error(`[defineWebComponents] ${d}:`,l)}=t,i=r?new URL(r,typeof location<"u"?location.href:import.meta.url):new URL("./",import.meta.url),u=d=>d.toLowerCase().replace(/(^|-)([a-z])/g,(l,a,p)=>p.toUpperCase()),c=async d=>{try{if(customElements.get(d))return{tag:d,status:"already-defined"};let l=o(d),p=await import(l instanceof URL?l.href:new URL(l,i).href),f=p?.default??p?.[u(d)];if(!f){if(customElements.get(d))return{tag:d,status:"self-defined"};throw new Error(`No export found for ${d}. Expected default export or named export "${u(d)}".`)}return customElements.get(d)?{tag:d,status:"race-already-defined"}:(customElements.define(d,f),{tag:d,status:"defined"})}catch(l){throw s(d,l),l}};return Promise.all(n.map(c))}var se,xe=Z(()=>{se=class{constructor(t={}){let{baseURL:n,mapper:r,onError:o,predicate:s=()=>!0,attributeModule:i="data-module",root:u=document,scanExisting:c=!0,debounceMs:d=16,observeShadows:l=!0,enhancers:a=[],patchAttachShadow:p=!0}=t,f=new Set,w=new Set,v=new Set,g=new Map,x=new WeakMap,M=new WeakMap,E=0,R=!1,C=null,N=h=>{if(!h||!a.length)return;let y=M.get(h);y||(y=new Set,M.set(h,y));for(let m of a)if(!(!m.selector||!m.run)&&!y.has(m.selector))try{h.matches&&h.matches(m.selector)&&(m.run(h),y.add(m.selector))}catch(L){console.warn(`[AutoDefiner] Error applying enhancer for selector "${m.selector}":`,L)}},I=(h,y)=>{if(!R&&!(!h||!h.includes("-"))&&!customElements.get(h)&&!w.has(h)&&!v.has(h)){if(y&&y.getAttribute){let m=y.getAttribute(i);m&&!g.has(h)&&g.set(h,m)}f.add(h),H()}},H=()=>{E||(E=setTimeout(P,d))},A=h=>{if(h){if(h.nodeType===1){let y=h,m=y.tagName?.toLowerCase();m&&m.includes("-")&&!customElements.get(m)&&s(m,y)&&I(m,y),N(y),l&&y.shadowRoot&&$(y.shadowRoot)}h.querySelectorAll&&h.querySelectorAll("*").forEach(y=>{let m=y.tagName?.toLowerCase();m&&m.includes("-")&&!customElements.get(m)&&s(m,y)&&I(m,y),N(y),l&&y.shadowRoot&&$(y.shadowRoot)})}},$=h=>{if(!h||x.has(h))return;A(h);let y=new MutationObserver(m=>{for(let L of m)L.addedNodes?.forEach(_=>{A(_)}),L.type==="attributes"&&L.target&&A(L.target)});y.observe(h,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[i,...a.map(m=>m.selector).filter(m=>m.startsWith("data-"))]}),x.set(h,y)};async function P(){if(clearTimeout(E),E=0,!f.size)return;let h=Array.from(f);f.clear(),h.forEach(y=>w.add(y));try{let y=m=>g.get(m)??(r?r(m):`${m}.js`);await tt(...h,{baseURL:n,mapper:y,onError:(m,L)=>{v.add(m),o?.(m,L)}})}catch{}finally{h.forEach(y=>w.delete(y))}}let S=u===document?document.documentElement:u,k=new MutationObserver(h=>{for(let y of h)y.addedNodes?.forEach(m=>{A(m)}),y.type==="attributes"&&y.target&&A(y.target)});if(k.observe(S,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[i,...a.map(h=>h.selector).filter(h=>h.startsWith("data-"))]}),l&&p&&Element.prototype.attachShadow){let h=Element.prototype.attachShadow;Element.prototype.attachShadow=function(m){let L=h.call(this,m);if(m&&m.mode==="open"){$(L);let _=this.tagName?.toLowerCase();_&&_.includes("-")&&!customElements.get(_)&&I(_,this)}return L},C=()=>Element.prototype.attachShadow=h}return c&&A(S),{stop(){R=!0,k.disconnect(),C&&C(),E&&(clearTimeout(E),E=0),x.forEach(h=>h.disconnect())},flush:P}}static async define(...t){let n={};t.length&&typeof t[t.length-1]=="object"&&(n=t.pop()||{});let r=t,{baseURL:o,mapper:s=l=>`${l}.js`,onError:i=(l,a)=>console.error(`[defineWebComponents] ${l}:`,a)}=n,u=o?new URL(o,typeof location<"u"?location.href:import.meta.url):new URL("./",import.meta.url),c=l=>l.toLowerCase().replace(/(^|-)([a-z])/g,(a,p,f)=>f.toUpperCase()),d=async l=>{try{if(customElements.get(l))return{tag:l,status:"already-defined"};let a=s(l),f=await import(a instanceof URL?a.href:new URL(a,u).href),w=f?.default??f?.[c(l)];if(!w){if(customElements.get(l))return{tag:l,status:"self-defined"};throw new Error(`No export found for ${l}. Expected default export or named export "${c(l)}".`)}return customElements.get(l)?{tag:l,status:"race-already-defined"}:(customElements.define(l,w),{tag:l,status:"defined"})}catch(a){throw i(l,a),a}};return Promise.all(r.map(d))}}});function Re(e){return new DOMParser().parseFromString(e,"text/html").body.childNodes}function $e(e,t=100){let n;return function(...o){let s=()=>{clearTimeout(n),e(...o)};clearTimeout(n),n=setTimeout(s,t)}}function V(e){setTimeout(e,0)}function Te(e){try{if(typeof e!="string"||e.indexOf(`
2
- `)!==-1||e.indexOf(" ")!==-1||e.startsWith("#/"))return!1;let t=new URL(e,window.location.origin);return t.protocol==="http:"||t.protocol==="https:"}catch{return!1}}function Me(e,t,n){let r=window.screen.width/2-t/2,o=window.screen.height/2-n/2;return window.open(e,"",`toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes, width=${t}, height=${n}, top=${o}, left=${r}`)}var Ie=Z(()=>{});var Pe={};J(Pe,{AutoComplete:()=>ce});var ae,ce,_e=Z(()=>{Ie();ae={result:"ac-suggestion",item:"ac-itm"},ce=class e extends EventTarget{constructor(t,n,r){super(),this.settings={emptyResultsText:"",...r},this.container=t,this.input=n,this.input.setAttribute("autocomplete","off"),this.categories=r.categories||{},this.caches=new Map,V(this.attach.bind(this))}static connect(t,n){let r=t.target;if(!r._autoComplete){if(!n?.categories)throw Error("Missing autocomplete settings");r._autoComplete=new e(r.parentNode,r,n),t.type==="focus"&&setTimeout(()=>{r._autoComplete.focusHandler(t)},100)}return r._autoComplete}on(t,n){return this.input.addEventListener(t,n),this}attach(){this.resultsDiv=document.createElement("div"),this.resultsDiv.title="",this.resultsDiv.classList.add(ae.result),this.container.offsetWidth>100&&(this.resultsDiv.style.width=this.container.offsetWidth),this.resultsDiv.addEventListener("mousedown",this.resultClick.bind(this)),this.container.classList.add("ac-container"),this.input.classList.add("ac-input");let t=getComputedStyle(this.input);this.container.style.setProperty("--ac-bg-default",t.backgroundColor),this.container.style.setProperty("--ac-color-default",t.color);let n=getComputedStyle(this.input).accentColor;n!=="auto"&&this.container.style.setProperty("--ac-accent-color",n),(this.container?.shadowRoot??this.container).appendChild(this.resultsDiv),this.controller().clear("attach"),this.on("input",$e(this.inputHandler.bind(this),this.settings.throttleInputMs??300)).on("focus",this.focusHandler.bind(this)).on("focusout",this.blurHandler.bind(this)).on("keyup",this.keyUpHandler.bind(this)).on("keydown",this.keyDownHandler.bind(this))}controller(){let t=this.internalController();return typeof this.settings.controller=="function"&&(t=this.settings.controller(this)??t),t}internalController(){return{show:this.show.bind(this),hide:this.hide.bind(this),clear:this.clear.bind(this),empty:()=>{}}}moveResult(t){this.controller().show();let n=this.acItems.length;this.rowIndex=this.rowIndex+t,this.rowIndex<=0?this.rowIndex=0:this.rowIndex>n-1&&(this.rowIndex=0);for(let o of this.acItems)o.classList.remove("selected");let r=this.getSelectedDiv();r?(r.classList.add("selected"),r.scrollIntoView({behavior:"smooth",block:"end",inline:"nearest"})):this.focusHandler({target:this.input})}getSelectedDiv(){return this.resultsDiv.querySelector(`div:nth-child(${this.rowIndex+1})`)}selectResult(t){if(t=t||this.getSelectedDiv(),t){let n=parseInt(t.getAttribute("data-index"));this.resultClicked=!0;let r=this.results[n],o=this.categories[r.category]??{};o.action=o.action??this.setText.bind(this),o.newTab&&(this.tabWindow=Me("about:blank"));let s={...r,search:this.input.value};t.classList.add("ac-active"),setTimeout(()=>{this.controller().hide("result-selected"),s.action?s.action(s):(o.action(s),o.newTab&&(s.url?this.tabWindow.location.href=s.url:this.tabWindow.close()));var i=new Event("change",{bubbles:!0});this.input.dispatchEvent(i),this.controller().clear("result-selected");let u=new Event("result-selected");u.detail=s,this.input.dispatchEvent(u)},0)}}setText(t){this.container.autoCompleteInput||(this.container.value=t.text),this.controller().hide("settext")}resultClick(t){this.selectResult(t.target.closest(`.${ae.item}`))}blurHandler(){setTimeout(()=>{this.resultClicked||this.controller().clear("blurred"),this.resultClicked=!1},100)}clear(){this.settings.debug||this.resultsDiv&&(this.resultsDiv.innerHTML="",this.controller().hide("clear"),this.cacheTmr&&clearTimeout(this.cacheTmr),this.cacheTmr=setTimeout(()=>{this.caches.clear()},60*1e3*5))}show(){if(!this.resultsDiv.classList.contains("ac-active")){let t=this.getViewBounds();this.resultsDiv.style.position="absolute",t.rect.width>100&&(this.resultsDiv.style.width=`${t.rect.width}px`),this.settings.direction=this.settings.direction??t.suggestedDirection,this.resultsDiv.setAttribute("data-direction",this.settings.direction),this.settings.direction==="up"?(this.resultsDiv.style.top="unset",this.resultsDiv.style.bottom=`${t.rect.height+20}px`,this.rowIndex=this.acItems.length):(this.resultsDiv.style.bottom="unset",this.resultsDiv.style.top=`${t.rect.height}px`,this.rowIndex=-1),this.resultsDiv.style.maxWidth="unset",this.resultsDiv.classList.toggle("ac-active",!0)}}getViewBounds(){let t=this.input.getBoundingClientRect();return{rect:t,suggestedDirection:t.top+t.height+500>window.innerHeight?"up":"down"}}hide(){this.resultsDiv.classList.toggle("ac-active",!1)}empty(){this.resultsDiv.innerHTML=`<div class="ac-empty">${this.settings.emptyResultsText}</div>`,this.controller().show()}inputHandler(t){this.cacheTmr&&clearTimeout(this.cacheTmr);let n={search:t.target.value,categories:this.categories};this.container.classList.add("search-running"),this.getItems(n,t).then(r=>{this.controller().clear("new-results"),this.resultsHandler(r,n),this.container.classList.remove("search-running")})}keyDownHandler(t){switch(t.key){case"Enter":t.stopPropagation(),t.preventDefault();break;case"ArrowDown":V(this.moveResult(1));break;case"ArrowUp":V(this.moveResult(-1));break}}keyUpHandler(t){switch(t.key){case"Escape":this.controller().hide("escape");break;case"Enter":this.getSelectedDiv()&&(this.container.preventEnter=!0,t.stopPropagation(),t.preventDefault(),this.selectResult(),setTimeout(()=>{this.container.preventEnter=!1},10));break;default:break}}focusHandler(t){this.controller().clear("focus");let n=t.target.value;this.suggest(n,t)}suggest(t,n){this.input.focus();let r={suggest:!0,search:t||"",categories:this.categories};this.getItems(r,n).then(o=>{this.input.dispatchEvent(new CustomEvent("show-results",{detail:{results:o}})),this.resultsHandler(o,r)})}sort(t,n){return t.sort((r,o)=>{let s=n.categories[r.category],i=n.categories[o.category],u=typeof s.sortIndex=="function"?s.sortIndex(n):s.sortIndex??0;return(typeof i.sortIndex=="function"?i.sortIndex(n):i.sortIndex??0)>u?1:-1})}resultsHandler(t,n){this.results=t,this.rowIndex=-1;let r=0,o=(s,i)=>`
3
- <div title="${i.tooltip||""}" data-index="${r}" class="${`${ae.item} cat-${i.category} ${i.class??""}`.trim()}">
1
+ var Oe=Object.defineProperty;var Z=(e,t)=>()=>(e&&(t=e(e=0)),t);var J=(e,t)=>{for(var n in t)Oe(e,n,{get:t[n],enumerable:!0})};var xe={};J(xe,{AutoDefiner:()=>se});async function tt(...e){let t={};e.length&&typeof e[e.length-1]=="object"&&(t=e.pop()||{});let n=e,{baseURL:r,mapper:o=d=>`${d}.js`,onError:s=(d,l)=>console.error(`[defineWebComponents] ${d}:`,l)}=t,i=r?new URL(r,typeof location<"u"?location.href:import.meta.url):new URL("./",import.meta.url),u=d=>d.toLowerCase().replace(/(^|-)([a-z])/g,(l,a,m)=>m.toUpperCase()),c=async d=>{try{if(customElements.get(d))return{tag:d,status:"already-defined"};let l=o(d),m=await import(l instanceof URL?l.href:new URL(l,i).href),h=m?.default??m?.[u(d)];if(!h){if(customElements.get(d))return{tag:d,status:"self-defined"};throw new Error(`No export found for ${d}. Expected default export or named export "${u(d)}".`)}return customElements.get(d)?{tag:d,status:"race-already-defined"}:(customElements.define(d,h),{tag:d,status:"defined"})}catch(l){throw s(d,l),l}};return Promise.all(n.map(c))}var se,Se=Z(()=>{se=class{constructor(t={}){let{baseURL:n,mapper:r,onError:o,predicate:s=()=>!0,attributeModule:i="data-module",root:u=document,scanExisting:c=!0,debounceMs:d=16,observeShadows:l=!0,enhancers:a=[],patchAttachShadow:m=!0}=t,h=new Set,w=new Set,v=new Set,g=new Map,x=new WeakMap,M=new WeakMap,E=0,k=!1,C=null,q=p=>{if(!p||!a.length)return;let y=M.get(p);y||(y=new Set,M.set(p,y));for(let f of a)if(!(!f.selector||!f.run)&&!y.has(f.selector))try{p.matches&&p.matches(f.selector)&&(f.run(p),y.add(f.selector))}catch(L){console.warn(`[AutoDefiner] Error applying enhancer for selector "${f.selector}":`,L)}},I=(p,y)=>{if(!k&&!(!p||!p.includes("-"))&&!customElements.get(p)&&!w.has(p)&&!v.has(p)){if(y&&y.getAttribute){let f=y.getAttribute(i);f&&!g.has(p)&&g.set(p,f)}h.add(p),H()}},H=()=>{E||(E=setTimeout(O,d))},A=p=>{if(p){if(p.nodeType===1){let y=p,f=y.tagName?.toLowerCase();f&&f.includes("-")&&!customElements.get(f)&&s(f,y)&&I(f,y),q(y),l&&y.shadowRoot&&R(y.shadowRoot)}p.querySelectorAll&&p.querySelectorAll("*").forEach(y=>{let f=y.tagName?.toLowerCase();f&&f.includes("-")&&!customElements.get(f)&&s(f,y)&&I(f,y),q(y),l&&y.shadowRoot&&R(y.shadowRoot)})}},R=p=>{if(!p||x.has(p))return;A(p);let y=new MutationObserver(f=>{for(let L of f)L.addedNodes?.forEach(_=>{A(_)}),L.type==="attributes"&&L.target&&A(L.target)});y.observe(p,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[i,...a.map(f=>f.selector).filter(f=>f.startsWith("data-"))]}),x.set(p,y)};async function O(){if(clearTimeout(E),E=0,!h.size)return;let p=Array.from(h);h.clear(),p.forEach(y=>w.add(y));try{let y=f=>g.get(f)??(r?r(f):`${f}.js`);await tt(...p,{baseURL:n,mapper:y,onError:(f,L)=>{v.add(f),o?.(f,L)}})}catch{}finally{p.forEach(y=>w.delete(y))}}let S=u===document?document.documentElement:u,P=new MutationObserver(p=>{for(let y of p)y.addedNodes?.forEach(f=>{A(f)}),y.type==="attributes"&&y.target&&A(y.target)});if(P.observe(S,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[i,...a.map(p=>p.selector).filter(p=>p.startsWith("data-"))]}),l&&m&&Element.prototype.attachShadow){let p=Element.prototype.attachShadow;Element.prototype.attachShadow=function(f){let L=p.call(this,f);if(f&&f.mode==="open"){R(L);let _=this.tagName?.toLowerCase();_&&_.includes("-")&&!customElements.get(_)&&I(_,this)}return L},C=()=>Element.prototype.attachShadow=p}return c&&A(S),{stop(){k=!0,P.disconnect(),C&&C(),E&&(clearTimeout(E),E=0),x.forEach(p=>p.disconnect())},flush:O}}static async define(...t){let n={};t.length&&typeof t[t.length-1]=="object"&&(n=t.pop()||{});let r=t,{baseURL:o,mapper:s=l=>`${l}.js`,onError:i=(l,a)=>console.error(`[defineWebComponents] ${l}:`,a)}=n,u=o?new URL(o,typeof location<"u"?location.href:import.meta.url):new URL("./",import.meta.url),c=l=>l.toLowerCase().replace(/(^|-)([a-z])/g,(a,m,h)=>h.toUpperCase()),d=async l=>{try{if(customElements.get(l))return{tag:l,status:"already-defined"};let a=s(l),h=await import(a instanceof URL?a.href:new URL(a,u).href),w=h?.default??h?.[c(l)];if(!w){if(customElements.get(l))return{tag:l,status:"self-defined"};throw new Error(`No export found for ${l}. Expected default export or named export "${c(l)}".`)}return customElements.get(l)?{tag:l,status:"race-already-defined"}:(customElements.define(l,w),{tag:l,status:"defined"})}catch(a){throw i(l,a),a}};return Promise.all(r.map(d))}}});function Re(e){return new DOMParser().parseFromString(e,"text/html").body.childNodes}function $e(e,t=100){let n;return function(...o){let s=()=>{clearTimeout(n),e(...o)};clearTimeout(n),n=setTimeout(s,t)}}function V(e){setTimeout(e,0)}function Te(e){try{if(typeof e!="string"||e.indexOf(`
2
+ `)!==-1||e.indexOf(" ")!==-1||e.startsWith("#/"))return!1;let t=new URL(e,window.location.origin);return t.protocol==="http:"||t.protocol==="https:"}catch{return!1}}function Me(e,t,n){let r=window.screen.width/2-t/2,o=window.screen.height/2-n/2;return window.open(e,"",`toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes, width=${t}, height=${n}, top=${o}, left=${r}`)}var Ie=Z(()=>{});var Pe={};J(Pe,{AutoComplete:()=>le});var ce,le,_e=Z(()=>{Ie();ce={result:"ac-suggestion",item:"ac-itm"},le=class e extends EventTarget{constructor(t,n,r){super(),this.settings={emptyResultsText:"",...r},this.container=t,this.input=n,this.input.setAttribute("autocomplete","off"),this.categories=r.categories||{},this.caches=new Map,V(this.attach.bind(this))}static connect(t,n){let r=t.target;if(!r._autoComplete){if(!n?.categories)throw Error("Missing autocomplete settings");r._autoComplete=new e(r.parentNode,r,n),t.type==="focus"&&setTimeout(()=>{r._autoComplete.focusHandler(t)},100)}return r._autoComplete}on(t,n){return this.input.addEventListener(t,n),this}attach(){this.resultsDiv=document.createElement("div"),this.resultsDiv.title="",this.resultsDiv.classList.add(ce.result),this.container.offsetWidth>100&&(this.resultsDiv.style.width=this.container.offsetWidth),this.resultsDiv.addEventListener("mousedown",this.resultClick.bind(this)),this.container.classList.add("ac-container"),this.input.classList.add("ac-input");let t=getComputedStyle(this.input);this.container.style.setProperty("--ac-bg-default",t.backgroundColor),this.container.style.setProperty("--ac-color-default",t.color);let n=getComputedStyle(this.input).accentColor;n!=="auto"&&this.container.style.setProperty("--ac-accent-color",n),(this.container?.shadowRoot??this.container).appendChild(this.resultsDiv),this.controller().clear("attach"),this.on("input",$e(this.inputHandler.bind(this),this.settings.throttleInputMs??300)).on("focus",this.focusHandler.bind(this)).on("focusout",this.blurHandler.bind(this)).on("keyup",this.keyUpHandler.bind(this)).on("keydown",this.keyDownHandler.bind(this))}controller(){let t=this.internalController();return typeof this.settings.controller=="function"&&(t=this.settings.controller(this)??t),t}internalController(){return{show:this.show.bind(this),hide:this.hide.bind(this),clear:this.clear.bind(this),empty:()=>{}}}moveResult(t){this.controller().show();let n=this.acItems.length;this.rowIndex=this.rowIndex+t,this.rowIndex<=0?this.rowIndex=0:this.rowIndex>n-1&&(this.rowIndex=0);for(let o of this.acItems)o.classList.remove("selected");let r=this.getSelectedDiv();r?(r.classList.add("selected"),r.scrollIntoView({behavior:"smooth",block:"end",inline:"nearest"})):this.focusHandler({target:this.input})}getSelectedDiv(){return this.resultsDiv.querySelector(`div:nth-child(${this.rowIndex+1})`)}selectResult(t){if(t=t||this.getSelectedDiv(),t){let n=parseInt(t.getAttribute("data-index"));this.resultClicked=!0;let r=this.results[n],o=this.categories[r.category]??{};o.action=o.action??this.setText.bind(this),o.newTab&&(this.tabWindow=Me("about:blank"));let s={...r,search:this.input.value};t.classList.add("ac-active"),setTimeout(()=>{this.controller().hide("result-selected"),s.action?s.action(s):(o.action(s),o.newTab&&(s.url?this.tabWindow.location.href=s.url:this.tabWindow.close()));var i=new Event("change",{bubbles:!0});this.input.dispatchEvent(i),this.controller().clear("result-selected");let u=new Event("result-selected");u.detail=s,this.input.dispatchEvent(u)},0)}}setText(t){this.container.autoCompleteInput||(this.container.value=t.text),this.controller().hide("settext")}resultClick(t){this.selectResult(t.target.closest(`.${ce.item}`))}blurHandler(){setTimeout(()=>{this.resultClicked||this.controller().clear("blurred"),this.resultClicked=!1},100)}clear(){this.settings.debug||this.resultsDiv&&(this.resultsDiv.innerHTML="",this.controller().hide("clear"),this.cacheTmr&&clearTimeout(this.cacheTmr),this.cacheTmr=setTimeout(()=>{this.caches.clear()},60*1e3*5))}show(){if(!this.resultsDiv.classList.contains("ac-active")){let t=this.getViewBounds();this.resultsDiv.style.position="absolute",t.rect.width>100&&(this.resultsDiv.style.width=`${t.rect.width}px`),this.settings.direction=this.settings.direction??t.suggestedDirection,this.resultsDiv.setAttribute("data-direction",this.settings.direction),this.settings.direction==="up"?(this.resultsDiv.style.top="unset",this.resultsDiv.style.bottom=`${t.rect.height+20}px`,this.rowIndex=this.acItems.length):(this.resultsDiv.style.bottom="unset",this.resultsDiv.style.top=`${t.rect.height}px`,this.rowIndex=-1),this.resultsDiv.style.maxWidth="unset",this.resultsDiv.classList.toggle("ac-active",!0)}}getViewBounds(){let t=this.input.getBoundingClientRect();return{rect:t,suggestedDirection:t.top+t.height+500>window.innerHeight?"up":"down"}}hide(){this.resultsDiv.classList.toggle("ac-active",!1)}empty(){this.resultsDiv.innerHTML=`<div class="ac-empty">${this.settings.emptyResultsText}</div>`,this.controller().show()}inputHandler(t){this.cacheTmr&&clearTimeout(this.cacheTmr);let n={search:t.target.value,categories:this.categories};this.container.classList.add("search-running"),this.getItems(n,t).then(r=>{this.controller().clear("new-results"),this.resultsHandler(r,n),this.container.classList.remove("search-running")})}keyDownHandler(t){switch(t.key){case"Enter":t.stopPropagation(),t.preventDefault();break;case"ArrowDown":V(this.moveResult(1));break;case"ArrowUp":V(this.moveResult(-1));break}}keyUpHandler(t){switch(t.key){case"Escape":this.controller().hide("escape");break;case"Enter":this.getSelectedDiv()&&(this.container.preventEnter=!0,t.stopPropagation(),t.preventDefault(),this.selectResult(),setTimeout(()=>{this.container.preventEnter=!1},10));break;default:break}}focusHandler(t){this.controller().clear("focus");let n=t.target.value;this.suggest(n,t)}suggest(t,n){this.input.focus();let r={suggest:!0,search:t||"",categories:this.categories};this.getItems(r,n).then(o=>{this.input.dispatchEvent(new CustomEvent("show-results",{detail:{results:o}})),this.resultsHandler(o,r)})}sort(t,n){return t.sort((r,o)=>{let s=n.categories[r.category],i=n.categories[o.category],u=typeof s.sortIndex=="function"?s.sortIndex(n):s.sortIndex??0;return(typeof i.sortIndex=="function"?i.sortIndex(n):i.sortIndex??0)>u?1:-1})}resultsHandler(t,n){this.results=t,this.rowIndex=-1;let r=0,o=(s,i)=>`
3
+ <div title="${i.tooltip||""}" data-index="${r}" class="${`${ce.item} cat-${i.category} ${i.class??""}`.trim()}">
4
4
  ${this.handleImageOrIcon(i)}
5
5
  <span class="text">${this.formatResultItem(i,n,s)}</span>
6
6
  ${this.settings.hideCategory?"":`<span class="category">${i.category||""}</span>`}
7
- </div>`;t.forEach(s=>{let i=n.categories[s.category]||{};s.element?this.resultsDiv.appendChild(s.element):(s=typeof s=="string"?{text:s}:s,this.resultsDiv.appendChild(Re(o(i,s))[0])),r++}),t.length?(this.acItems=this.resultsDiv.querySelectorAll(".ac-itm"),this.controller().show()):n.search.length&&this.controller().empty()}handleImageOrIcon(t){return t.image?`<img src="${t.image}"/>`:typeof this.settings.iconHandler=="function"?this.settings.iconHandler(t):`<svg-icon icon="${t.icon}"></svg-icon>`}formatResultItem(t,n,r){let o=typeof t=="string"?{text:t}:t,s=o.text;return n.search&&(s=s.replace("%search%",n.search),o.description=o.description?.replace("%search%",n.search)),s=this.highlight(s,n.search),o.description&&(s=`<div>${s}</div><small>${o.description}</small>`),r.format&&(s=r.format({item:o,result:s,options:n})),s}highlight(t,n){var r=new RegExp("("+n+")","gi");return t.replace(r,'<span class="txt-hl">$1</span>')}async getItems(t,n){this.aborter&&this.aborter.abort();let r=this.caches.get(t.search);if(r)return r;let o=this.settings.map,s=c=>(typeof c=="string"&&(c={text:c}),c),i=c=>o?c.map(d=>({text:d[o]})):c.map(d=>s(d)),u=c=>(this.settings.max&&this.settings.max>0&&(c.length=this.settings.max),c);return this.aborter=new AbortController,this.aborterSignal=this.aborter.signal,new Promise(c=>{let d=l=>{l=this.sort(l,t),this.settings.cache!==!1&&this.caches.set(t.search,l),c(l)};if(Te(this.items)){if(this.settings.minlength>0&&(!t.search||t.search.length<this.settings.minlength)){d([]);return}let l=this.formatSearch(this.items,t);fetch(l).then(a=>{if(a.status===200){a.json().then(p=>{p=i(p),d(u(p.filter(f=>this.isMatch(t,f))))});return}throw Error(`HTTP error ${a.status} - ${l}`)})}else if(Array.isArray(this.items)){let l=!0;this.items=this.items.map(a=>typeof a=="string"?{text:a}:(l=!1,a)),l&&this.container.classList.add("simple"),d(u(i(this.items)))}else if(typeof this.items=="function")t.control=this.container,Promise.resolve(this.items(t,n)).then(a=>{a=a.map(p=>s(p)),a=i(a),d(a)});else return d(Promise.resolve(this.items.apply(this,t)))})}async items(t){let n=[];t.results=[],t.signal=this.aborterSignal;for(var r in t.categories){let o=t.categories[r];if(o.trigger=o.trigger??(()=>!0),t.results=n,o.trigger(t)){let s=[];try{s=await o.getItems(t)}catch(i){console.warn(`Error loading items for omniBox category '${r}'.`,i)}n=n.concat(s.map(i=>(i.category=r,i)))}}return n}formatSearch(t,n){return t.indexOf("%search%")?t.replace("%search%",n.search||""):t+"?"+this.createQueryParam(n)}createQueryParam(t){let n=t.suggest?"&suggest=true":"";return`q=${t.text}${n}`}isMatch(t,n){return n.text?.indexOf("%search%")>=0?!0:t.search?n.text?.toLowerCase().indexOf(t.search.toLowerCase())>=0:t.suggest}static textFilter(t,n){return function(r){if(!t.search)return!0;if(r.hidden)return!1;let s=(n?r[n]:r).match(new RegExp(t.search,"gi"));if(s)return s;if(r.config?.tags)return r.config.tags.some(i=>i.match(new RegExp(t.search,"gi")))}}}});var X=class{constructor(){this._mode="static",this._staticPaths={tokens:"/assets/pds/styles/pds-tokens.css.js",primitives:"/assets/pds/styles/pds-primitives.css.js",components:"/assets/pds/styles/pds-components.css.js",utilities:"/assets/pds/styles/pds-utilities.css.js",styles:"/assets/pds/styles/pds-styles.css.js"}}setLiveMode(){this._mode="live"}setStaticMode(t={}){this._mode="static",this._staticPaths={...this._staticPaths,...t}}async getStylesheet(t){if(this._mode==="live")return null;try{return(await import(this._staticPaths[t]))[t]}catch(n){console.error(`[PDS Registry] Failed to load static ${t}:`,n),console.error(`[PDS Registry] Looking for: ${this._staticPaths[t]}`),console.error("[PDS Registry] Make sure you've run 'npm run pds:build' and configured PDS.start() with the correct static.root path");let r=new CSSStyleSheet;return r.replaceSync("/* Failed to load "+t+" */"),r}}get mode(){return this._mode}get isLive(){return this._mode==="live"}},U=new X;async function ue(e,t=[],n=null){try{let r=n?.primitivesStylesheet?n.primitivesStylesheet:await U.getStylesheet("primitives");e.adoptedStyleSheets=[r,...t]}catch(r){let o=e.host?.tagName?.toLowerCase()||"unknown";console.error(`[PDS Adopter] <${o}> failed to adopt primitives:`,r),e.adoptedStyleSheets=t}}async function pe(e,t=["primitives"],n=[],r=null){try{let s=(await Promise.all(t.map(async i=>{if(r)switch(i){case"tokens":return r.tokensStylesheet;case"primitives":return r.primitivesStylesheet;case"components":return r.componentsStylesheet;case"utilities":return r.utilitiesStylesheet;default:break}return U.getStylesheet(i)}))).filter(i=>i!==null);e.adoptedStyleSheets=[...s,...n]}catch(o){let s=e.host?.tagName?.toLowerCase()||"unknown";console.error(`[PDS Adopter] <${s}> failed to adopt layers:`,o),e.adoptedStyleSheets=n}}function he(e){let t=new CSSStyleSheet;return t.replaceSync(e),t}var fe={FontWeights:{light:300,normal:400,medium:500,semibold:600,bold:700},LineHeights:{tight:1.25,normal:1.5,relaxed:1.75},BorderWidths:{hairline:.5,thin:1,medium:2,thick:3},RadiusSizes:{none:0,small:4,medium:8,large:16,xlarge:24,xxlarge:32},ShadowDepths:{none:"none",light:"0 1px 2px 0 rgba(0, 0, 0, 0.05)",medium:"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)",deep:"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)",extreme:"0 25px 50px -12px rgba(0, 0, 0, 0.25)"},TransitionSpeeds:{fast:150,normal:250,slow:350},AnimationEasings:{linear:"linear",ease:"ease","ease-in":"ease-in","ease-out":"ease-out","ease-in-out":"ease-in-out",bounce:"cubic-bezier(0.68, -0.55, 0.265, 1.55)"},TouchTargetSizes:{compact:36,standard:44,comfortable:48,spacious:56},LinkStyles:{inline:"inline",block:"block",button:"button"},FocusStyles:{ring:"ring",outline:"outline",border:"border",glow:"glow"},TabSizes:{compact:2,standard:4,wide:8},SelectIcons:{chevron:"chevron",arrow:"arrow",caret:"caret",none:"none"},IconSizes:{xs:16,sm:20,md:24,lg:32,xl:48,"2xl":64,"3xl":96}};var me={mode:"live",preset:"default",autoDefine:{predefine:["pds-icon","pds-drawer","pds-toaster"]},log(e,t,...n){console[e](t,...n)}};var ee={};J(ee,{deepMerge:()=>ye,fragmentFromTemplateLike:()=>Y,isObject:()=>W});function W(e){return e&&typeof e=="object"&&!Array.isArray(e)}function ye(e,t){let n={...e};return W(e)&&W(t)&&Object.keys(t).forEach(r=>{W(t[r])?r in e?n[r]=ye(e[r],t[r]):Object.assign(n,{[r]:t[r]}):Object.assign(n,{[r]:t[r]})}),n}function Y(e){let t=Array.isArray(e?.strings)?e.strings:[],n=Array.isArray(e?.values)?e.values:[],r=new Set,o=[],s=/(\s)(\.[\w-]+)=\s*$/;for(let a=0;a<t.length;a+=1){let p=t[a]??"",f=p.match(s);if(f&&a<n.length){let v=f[2].slice(1),g=`pds-val-${a}`;p=p.replace(s,`$1data-pds-prop="${v}:${g}"`),r.add(a)}o.push(p),a<n.length&&!r.has(a)&&o.push(`<!--pds-val-${a}-->`)}let i=document.createElement("template");i.innerHTML=o.join("");let u=(a,p)=>{let f=a.parentNode;if(!f)return;if(p==null){f.removeChild(a);return}let w=v=>{if(v!=null){if(v instanceof Node){f.insertBefore(v,a);return}if(Array.isArray(v)){v.forEach(g=>w(g));return}f.insertBefore(document.createTextNode(String(v)),a)}};w(p),f.removeChild(a)},c=document.createTreeWalker(i.content,NodeFilter.SHOW_COMMENT),d=[];for(;c.nextNode();){let a=c.currentNode;a?.nodeValue?.startsWith("pds-val-")&&d.push(a)}return d.forEach(a=>{let p=Number(a.nodeValue.replace("pds-val-",""));u(a,n[p])}),i.content.querySelectorAll("*").forEach(a=>{let p=a.getAttribute("data-pds-prop");if(!p)return;let[f,w]=p.split(":"),v=Number(String(w).replace("pds-val-",""));f&&Number.isInteger(v)&&(a[f]=n[v]),a.removeAttribute("data-pds-prop")}),i.content}function te(e,t){if(t==null)return;if(typeof t=="object"&&Array.isArray(t.strings)&&Array.isArray(t.values)){e.appendChild(Y(t));return}if(t instanceof Node){e.appendChild(t);return}if(Array.isArray(t)){t.forEach(r=>te(e,r));return}let n=typeof t=="string"?t:String(t);e.appendChild(document.createTextNode(n))}async function ge(e,t={}){return t={...{title:"Confirm",type:"confirm",buttons:{ok:{name:"OK",primary:!0},cancel:{name:"Cancel",cancel:!0}}},...t},new Promise(r=>{let o=document.createElement("dialog");me.options?.liquidGlassEffects&&o.classList.add("liquid-glass"),t.size&&o.classList.add(`dialog-${t.size}`),t.type&&o.classList.add(`dialog-${t.type}`),t.class&&(Array.isArray(t.class)?o.classList.add(...t.class):o.classList.add(t.class)),t.maxHeight&&o.style.setProperty("--dialog-max-height",t.maxHeight);let s=Object.entries(t.buttons).map(([u,c])=>{let d=c.primary?"btn-primary btn-sm":"btn-outline btn-sm";return`<button type="${c.cancel?"button":"submit"}" class="${d}" value="${u}">${c.name}</button>`});if(t.useForm){let u=document.createElement("div");te(u,e);let c=u.querySelector("form");if(c){o.innerHTML=`
7
+ </div>`;t.forEach(s=>{let i=n.categories[s.category]||{};s.element?this.resultsDiv.appendChild(s.element):(s=typeof s=="string"?{text:s}:s,this.resultsDiv.appendChild(Re(o(i,s))[0])),r++}),t.length?(this.acItems=this.resultsDiv.querySelectorAll(".ac-itm"),this.controller().show()):n.search.length&&this.controller().empty()}handleImageOrIcon(t){return t.image?`<img src="${t.image}"/>`:typeof this.settings.iconHandler=="function"?this.settings.iconHandler(t):`<svg-icon icon="${t.icon}"></svg-icon>`}formatResultItem(t,n,r){let o=typeof t=="string"?{text:t}:t,s=o.text;return n.search&&(s=s.replace("%search%",n.search),o.description=o.description?.replace("%search%",n.search)),s=this.highlight(s,n.search),o.description&&(s=`<div>${s}</div><small>${o.description}</small>`),r.format&&(s=r.format({item:o,result:s,options:n})),s}highlight(t,n){var r=new RegExp("("+n+")","gi");return t.replace(r,'<span class="txt-hl">$1</span>')}async getItems(t,n){this.aborter&&this.aborter.abort();let r=this.caches.get(t.search);if(r)return r;let o=this.settings.map,s=c=>(typeof c=="string"&&(c={text:c}),c),i=c=>o?c.map(d=>({text:d[o]})):c.map(d=>s(d)),u=c=>(this.settings.max&&this.settings.max>0&&(c.length=this.settings.max),c);return this.aborter=new AbortController,this.aborterSignal=this.aborter.signal,new Promise(c=>{let d=l=>{l=this.sort(l,t),this.settings.cache!==!1&&this.caches.set(t.search,l),c(l)};if(Te(this.items)){if(this.settings.minlength>0&&(!t.search||t.search.length<this.settings.minlength)){d([]);return}let l=this.formatSearch(this.items,t);fetch(l).then(a=>{if(a.status===200){a.json().then(m=>{m=i(m),d(u(m.filter(h=>this.isMatch(t,h))))});return}throw Error(`HTTP error ${a.status} - ${l}`)})}else if(Array.isArray(this.items)){let l=!0;this.items=this.items.map(a=>typeof a=="string"?{text:a}:(l=!1,a)),l&&this.container.classList.add("simple"),d(u(i(this.items)))}else if(typeof this.items=="function")t.control=this.container,Promise.resolve(this.items(t,n)).then(a=>{a=a.map(m=>s(m)),a=i(a),d(a)});else return d(Promise.resolve(this.items.apply(this,t)))})}async items(t){let n=[];t.results=[],t.signal=this.aborterSignal;for(var r in t.categories){let o=t.categories[r];if(o.trigger=o.trigger??(()=>!0),t.results=n,o.trigger(t)){let s=[];try{s=await o.getItems(t)}catch(i){console.warn(`Error loading items for omniBox category '${r}'.`,i)}n=n.concat(s.map(i=>(i.category=r,i)))}}return n}formatSearch(t,n){return t.indexOf("%search%")?t.replace("%search%",n.search||""):t+"?"+this.createQueryParam(n)}createQueryParam(t){let n=t.suggest?"&suggest=true":"";return`q=${t.text}${n}`}isMatch(t,n){return n.text?.indexOf("%search%")>=0?!0:t.search?n.text?.toLowerCase().indexOf(t.search.toLowerCase())>=0:t.suggest}static textFilter(t,n){return function(r){if(!t.search)return!0;if(r.hidden)return!1;let s=(n?r[n]:r).match(new RegExp(t.search,"gi"));if(s)return s;if(r.config?.tags)return r.config.tags.some(i=>i.match(new RegExp(t.search,"gi")))}}}});var X=class{constructor(){this._mode="static",this._staticPaths={tokens:"/assets/pds/styles/pds-tokens.css.js",primitives:"/assets/pds/styles/pds-primitives.css.js",components:"/assets/pds/styles/pds-components.css.js",utilities:"/assets/pds/styles/pds-utilities.css.js",styles:"/assets/pds/styles/pds-styles.css.js"}}setLiveMode(){this._mode="live"}setStaticMode(t={}){this._mode="static",this._staticPaths={...this._staticPaths,...t}}async getStylesheet(t){if(this._mode==="live")return null;try{return(await import(this._staticPaths[t]))[t]}catch(n){console.error(`[PDS Registry] Failed to load static ${t}:`,n),console.error(`[PDS Registry] Looking for: ${this._staticPaths[t]}`),console.error("[PDS Registry] Make sure you've run 'npm run pds:build' and configured PDS.start() with the correct static.root path");let r=new CSSStyleSheet;return r.replaceSync("/* Failed to load "+t+" */"),r}}get mode(){return this._mode}get isLive(){return this._mode==="live"}},U=new X;async function pe(e,t=[],n=null){try{let r=n?.primitivesStylesheet?n.primitivesStylesheet:await U.getStylesheet("primitives");e.adoptedStyleSheets=[r,...t]}catch(r){let o=e.host?.tagName?.toLowerCase()||"unknown";console.error(`[PDS Adopter] <${o}> failed to adopt primitives:`,r),e.adoptedStyleSheets=t}}async function he(e,t=["primitives"],n=[],r=null){try{let s=(await Promise.all(t.map(async i=>{if(r)switch(i){case"tokens":return r.tokensStylesheet;case"primitives":return r.primitivesStylesheet;case"components":return r.componentsStylesheet;case"utilities":return r.utilitiesStylesheet;default:break}return U.getStylesheet(i)}))).filter(i=>i!==null);e.adoptedStyleSheets=[...s,...n]}catch(o){let s=e.host?.tagName?.toLowerCase()||"unknown";console.error(`[PDS Adopter] <${s}> failed to adopt layers:`,o),e.adoptedStyleSheets=n}}function fe(e){let t=new CSSStyleSheet;return t.replaceSync(e),t}var me={FontWeights:{light:300,normal:400,medium:500,semibold:600,bold:700},LineHeights:{tight:1.25,normal:1.5,relaxed:1.75},BorderWidths:{hairline:.5,thin:1,medium:2,thick:3},RadiusSizes:{none:0,small:4,medium:8,large:16,xlarge:24,xxlarge:32},ShadowDepths:{none:"none",light:"0 1px 2px 0 rgba(0, 0, 0, 0.05)",medium:"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)",deep:"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)",extreme:"0 25px 50px -12px rgba(0, 0, 0, 0.25)"},TransitionSpeeds:{fast:150,normal:250,slow:350},AnimationEasings:{linear:"linear",ease:"ease","ease-in":"ease-in","ease-out":"ease-out","ease-in-out":"ease-in-out",bounce:"cubic-bezier(0.68, -0.55, 0.265, 1.55)"},TouchTargetSizes:{compact:36,standard:44,comfortable:48,spacious:56},LinkStyles:{inline:"inline",block:"block",button:"button"},FocusStyles:{ring:"ring",outline:"outline",border:"border",glow:"glow"},TabSizes:{compact:2,standard:4,wide:8},SelectIcons:{chevron:"chevron",arrow:"arrow",caret:"caret",none:"none"},IconSizes:{xs:16,sm:20,md:24,lg:32,xl:48,"2xl":64,"3xl":96}};var ye={mode:"live",preset:"default",autoDefine:{predefine:["pds-icon","pds-drawer","pds-toaster"]},log(e,t,...n){console[e](t,...n)}};var ee={};J(ee,{deepMerge:()=>ge,fragmentFromTemplateLike:()=>Y,isObject:()=>W});function W(e){return e&&typeof e=="object"&&!Array.isArray(e)}function ge(e,t){let n={...e};return W(e)&&W(t)&&Object.keys(t).forEach(r=>{W(t[r])?r in e?n[r]=ge(e[r],t[r]):Object.assign(n,{[r]:t[r]}):Object.assign(n,{[r]:t[r]})}),n}function Y(e){let t=Array.isArray(e?.strings)?e.strings:[],n=Array.isArray(e?.values)?e.values:[],r=new Set,o=[],s=/(\s)(\.[\w-]+)=\s*$/;for(let a=0;a<t.length;a+=1){let m=t[a]??"",h=m.match(s);if(h&&a<n.length){let v=h[2].slice(1),g=`pds-val-${a}`;m=m.replace(s,`$1data-pds-prop="${v}:${g}"`),r.add(a)}o.push(m),a<n.length&&!r.has(a)&&o.push(`<!--pds-val-${a}-->`)}let i=document.createElement("template");i.innerHTML=o.join("");let u=(a,m)=>{let h=a.parentNode;if(!h)return;if(m==null){h.removeChild(a);return}let w=v=>{if(v!=null){if(v instanceof Node){h.insertBefore(v,a);return}if(Array.isArray(v)){v.forEach(g=>w(g));return}h.insertBefore(document.createTextNode(String(v)),a)}};w(m),h.removeChild(a)},c=document.createTreeWalker(i.content,NodeFilter.SHOW_COMMENT),d=[];for(;c.nextNode();){let a=c.currentNode;a?.nodeValue?.startsWith("pds-val-")&&d.push(a)}return d.forEach(a=>{let m=Number(a.nodeValue.replace("pds-val-",""));u(a,n[m])}),i.content.querySelectorAll("*").forEach(a=>{let m=a.getAttribute("data-pds-prop");if(!m)return;let[h,w]=m.split(":"),v=Number(String(w).replace("pds-val-",""));h&&Number.isInteger(v)&&(a[h]=n[v]),a.removeAttribute("data-pds-prop")}),i.content}function te(e,t){if(t==null)return;if(typeof t=="object"&&Array.isArray(t.strings)&&Array.isArray(t.values)){e.appendChild(Y(t));return}if(t instanceof Node){e.appendChild(t);return}if(Array.isArray(t)){t.forEach(r=>te(e,r));return}let n=typeof t=="string"?t:String(t);e.appendChild(document.createTextNode(n))}async function be(e,t={}){return t={...{title:"Confirm",type:"confirm",buttons:{ok:{name:"OK",primary:!0},cancel:{name:"Cancel",cancel:!0}}},...t},new Promise(r=>{let o=document.createElement("dialog");ye.options?.liquidGlassEffects&&o.classList.add("liquid-glass"),t.size&&o.classList.add(`dialog-${t.size}`),t.type&&o.classList.add(`dialog-${t.type}`),t.class&&(Array.isArray(t.class)?o.classList.add(...t.class):o.classList.add(t.class)),t.maxHeight&&o.style.setProperty("--dialog-max-height",t.maxHeight);let s=Object.entries(t.buttons).map(([u,c])=>{let d=c.primary?"btn-primary btn-sm":"btn-outline btn-sm";return`<button type="${c.cancel?"button":"submit"}" class="${d}" value="${u}">${c.name}</button>`});if(t.useForm){let u=document.createElement("div");te(u,e);let c=u.querySelector("form");if(c){o.innerHTML=`
8
8
  <header>
9
9
  <h2>${t.title}</h2>
10
10
  </header>
@@ -28,5 +28,5 @@ var Ne=Object.defineProperty;var Z=(e,t)=>()=>(e&&(t=e(e=0)),t);var J=(e,t)=>{fo
28
28
  ${s.join("")}
29
29
  </footer>
30
30
  </form>
31
- `;let u=o.querySelector("#msg-container");te(u,e)}o.addEventListener("click",u=>{u.target.closest('button[value="cancel"]')&&(o.close(),r(!1))});let i=()=>{let u=o.querySelector("form");u?u.addEventListener("submit",c=>{c.preventDefault();let d;t.useForm&&c.submitter.value==="ok"?(console.log("Found form:",u),console.log("Form elements:",u?Array.from(u.elements):"no form"),d=new FormData(u),console.log("FormData entries:",Array.from(d.entries()))):d=c.submitter.value==="ok",o.close(),r(d)}):requestAnimationFrame(i)};i(),o.addEventListener("close",()=>{setTimeout(()=>o.remove(),200)}),document.body.appendChild(o),typeof t.rendered=="function"&&t.rendered(o),o.showModal()})}async function Oe(){let e=document.querySelector("pds-toaster");return e||(e=document.createElement("pds-toaster"),document.body.appendChild(e),await customElements.whenDefined("pds-toaster")),e}async function D(e,t={}){return(await Oe()).toast(e,t)}D.success=async function(e,t={}){return D(e,{...t,type:"success"})};D.error=async function(e,t={}){return D(e,{...t,type:"error"})};D.warning=async function(e,t={}){return D(e,{...t,type:"warning"})};D.info=async function(e,t={}){return D(e,{...t,type:"information"})};var je=[{selector:".accordion"},{selector:"nav[data-dropdown]"},{selector:"label[data-toggle]"},{selector:'input[type="range"]'},{selector:"form[data-required]"},{selector:"fieldset[role=group][data-open]"},{selector:"[data-clip]"},{selector:"button, a[class*='btn-']"}];function Fe(e){e.dataset.enhancedAccordion||(e.dataset.enhancedAccordion="true",e.addEventListener("toggle",t=>{t.target.open&&t.target.parentElement===e&&e.querySelectorAll(":scope > details[open]").forEach(n=>{n!==t.target&&(n.open=!1)})},!0))}function He(e){if(e.dataset.enhancedDropdown)return;e.dataset.enhancedDropdown="true";let t=e.lastElementChild;if(!t)return;let n=e.querySelector("[data-dropdown-toggle]")||e.querySelector("button");n&&!n.hasAttribute("type")&&n.setAttribute("type","button"),t.id||(t.id=`dropdown-${Math.random().toString(36).slice(2,9)}`),t.tagName?.toLowerCase()==="menu"&&!t.hasAttribute("role")&&t.setAttribute("role","menu"),t.hasAttribute("aria-hidden")||t.setAttribute("aria-hidden","true"),n&&(n.setAttribute("aria-haspopup","true"),n.setAttribute("aria-controls",t.id),n.setAttribute("aria-expanded","false"));let o=()=>{let c=(e.getAttribute("data-mode")||"auto").toLowerCase();if(c==="up"||c==="down")return c;let d=e.getBoundingClientRect(),l=Math.max(0,window.innerHeight-d.bottom);return Math.max(0,d.top)>l?"up":"down"},s=()=>{e.dataset.dropdownDirection=o(),t.setAttribute("aria-hidden","false"),n?.setAttribute("aria-expanded","true")},i=()=>{t.setAttribute("aria-hidden","true"),n?.setAttribute("aria-expanded","false")},u=()=>{t.getAttribute("aria-hidden")==="false"?i():s()};n?.addEventListener("click",c=>{c.preventDefault(),c.stopPropagation(),u()}),document.addEventListener("click",c=>{e.contains(c.target)||i()}),e.addEventListener("keydown",c=>{c.key==="Escape"&&(i(),n?.focus())}),e.addEventListener("focusout",c=>{(!c.relatedTarget||!e.contains(c.relatedTarget))&&i()})}function We(e){if(e.dataset.enhancedToggle)return;e.dataset.enhancedToggle="true";let t=e.querySelector('input[type="checkbox"]');if(!t)return;e.hasAttribute("tabindex")||e.setAttribute("tabindex","0"),e.setAttribute("role","switch"),e.setAttribute("aria-checked",t.checked?"true":"false");let n=document.createElement("span");n.className="toggle-switch",n.setAttribute("role","presentation"),n.setAttribute("aria-hidden","true");let r=document.createElement("span");r.className="toggle-knob",n.appendChild(r),e.insertBefore(n,t.nextSibling);let o=()=>{e.setAttribute("aria-checked",t.checked?"true":"false")},s=()=>{t.disabled||(t.checked=!t.checked,o(),t.dispatchEvent(new Event("change",{bubbles:!0})))};e.addEventListener("click",i=>{i.preventDefault(),s()}),e.addEventListener("keydown",i=>{(i.key===" "||i.key==="Enter")&&(i.preventDefault(),s())}),t.addEventListener("change",o)}function ze(e){if(e.dataset.enhancedRange)return;let t=e.closest("label"),n=t?.classList.contains("range-output"),r=e.id||`range-${Math.random().toString(36).substring(2,11)}`,o=`${r}-output`;if(e.id=r,n){let s=t.querySelector("span");if(s&&!s.classList.contains("range-output-wrapper")){let i=document.createElement("span");i.className="range-output-wrapper",i.style.display="flex",i.style.justifyContent="space-between",i.style.alignItems="center";let u=document.createElement("span");u.textContent=s.textContent,i.appendChild(u);let c=document.createElement("output");c.id=o,c.setAttribute("for",r),c.style.color="var(--surface-text-secondary, var(--color-text-secondary))",c.style.fontSize="0.875rem",c.textContent=e.value,i.appendChild(c),s.textContent="",s.appendChild(i);let d=()=>{c.textContent=e.value};e.addEventListener("input",d)}}else{let s=e.closest(".range-container");s||(s=document.createElement("div"),s.className="range-container",e.parentNode?.insertBefore(s,e),s.appendChild(e)),s.style.position="relative";let i=document.createElement("output");i.id=o,i.setAttribute("for",r),i.className="range-bubble",i.setAttribute("aria-live","polite"),s.appendChild(i);let u=()=>{let l=parseFloat(e.min)||0,a=parseFloat(e.max)||100,p=parseFloat(e.value),f=(p-l)/(a-l);i.style.left=`calc(${f*100}% )`,i.textContent=String(p)},c=()=>i.classList.add("visible"),d=()=>i.classList.remove("visible");e.addEventListener("input",u),e.addEventListener("pointerdown",c),e.addEventListener("pointerup",d),e.addEventListener("pointerleave",d),e.addEventListener("focus",c),e.addEventListener("blur",d),u()}e.dataset.enhancedRange="1"}function Be(e){if(e.dataset.enhancedRequired)return;e.dataset.enhancedRequired="true";let t=n=>{let r=n.closest("label");if(!r||r.querySelector(".required-asterisk"))return;let o=document.createElement("span");o.classList.add("required-asterisk"),o.textContent="*",o.style.marginLeft="4px",r.querySelector("span").appendChild(o);let s=n.closest("form");if(s&&!s.querySelector(".required-legend")){let i=document.createElement("small");i.classList.add("required-legend"),i.textContent="* Required fields",s.insertBefore(i,s.querySelector(".form-actions")||s.lastElementChild)}};e.querySelectorAll("[required]").forEach(n=>{t(n)})}function Ve(e){if(e.dataset.enhancedOpenGroup)return;e.dataset.enhancedOpenGroup="true",e.classList.add("flex","flex-wrap","buttons");let t=document.createElement("input");t.type="text",t.placeholder="Add item...",t.classList.add("input-text","input-sm"),t.style.width="auto";let n=e.querySelector('input[type="radio"], input[type="checkbox"]');e.appendChild(t),t.addEventListener("keydown",r=>{if(r.key==="Enter"||r.key==="Tab"){let o=t.value.trim();if(o){r.preventDefault();let s=n.type==="radio"?"radio":"checkbox",i=`open-group-${Math.random().toString(36).substring(2,11)}`,u=document.createElement("label"),c=document.createElement("span");c.setAttribute("data-label",""),c.textContent=o;let d=document.createElement("input");d.type=s,d.name=n.name||e.getAttribute("data-name")||"open-group",d.value=o,d.id=i,u.appendChild(c),u.appendChild(d),e.insertBefore(u,t),t.value=""}}else if(r.key==="Backspace"&&t.value===""){r.preventDefault();let o=e.querySelectorAll("label");o.length>0&&o[o.length-1].remove()}})}function Ge(e){if(e.dataset.enhancedClip)return;e.dataset.enhancedClip="true",e.hasAttribute("tabindex")||e.setAttribute("tabindex","0"),e.hasAttribute("role")||e.setAttribute("role","button");let t=()=>{let r=e.getAttribute("data-clip-open")==="true";e.setAttribute("aria-expanded",r?"true":"false")},n=()=>{let r=e.getAttribute("data-clip-open")==="true";e.setAttribute("data-clip-open",r?"false":"true"),t()};e.addEventListener("click",r=>{r.defaultPrevented||n()}),e.addEventListener("keydown",r=>{(r.key===" "||r.key==="Enter")&&(r.preventDefault(),n())}),t()}function Ke(e){if(e.dataset.enhancedBtnWorking)return;e.dataset.enhancedBtnWorking="true";let t=null,n=!1;new MutationObserver(o=>{o.forEach(s=>{if(s.attributeName==="class"){let i=e.classList.contains("btn-working"),u=e.querySelector("pds-icon");if(i)if(u)t||(t=u.getAttribute("icon")),u.setAttribute("icon","circle-notch");else{let c=document.createElement("pds-icon");c.setAttribute("icon","circle-notch"),c.setAttribute("size","sm"),e.insertBefore(c,e.firstChild),n=!0}else s.oldValue?.includes("btn-working")&&u&&(n?(u.remove(),n=!1):t&&(u.setAttribute("icon",t),t=null))}})}).observe(e,{attributes:!0,attributeFilter:["class"],attributeOldValue:!0})}var Qe=new Map([[".accordion",Fe],["nav[data-dropdown]",He],["label[data-toggle]",We],['input[type="range"]',ze],["form[data-required]",Be],["fieldset[role=group][data-open]",Ve],["[data-clip]",Ge],["button, a[class*='btn-']",Ke]]),ne=je.map(e=>({...e,run:Qe.get(e.selector)||(()=>{})}));var we="pds",Ze=/^([a-z][a-z0-9+\-.]*:)?\/\//i,be=/^[a-z]:/i;function O(e=""){return e.endsWith("/")?e:`${e}/`}function Je(e="",t=we){let n=e.replace(/\/+$/,"");return new RegExp(`(?:^|/)${t}$`,"i").test(n)?n:`${n}/${t}`}function Xe(e){return e.replace(/^\.\/+/,"")}function Ye(e){return be.test(e)?e.replace(be,"").replace(/^\/+/,""):e}function et(e){return e.startsWith("public/")?e.substring(7):e}function re(e,t={}){let n=t.segment||we,r=t.defaultRoot||`/assets/${n}/`,o=e?.public&&e.public?.root||e?.static&&e.static?.root||null;if(!o||typeof o!="string")return O(r);let s=o.trim();return s?(s=s.replace(/\\/g,"/"),s=Je(s,n),s=O(s),Ze.test(s)?s:(s=Xe(s),s=Ye(s),s.startsWith("/")||(s=et(s),s.startsWith("/")||(s=`/${s}`),s=s.replace(/\/+/g,(i,u)=>u===0?i:"/")),O(s))):O(r)}var nt=/^[a-z][a-z0-9+\-.]*:\/\//i,j=(()=>{try{return import.meta.url}catch{return}})(),z=e=>typeof e=="string"&&e.length&&!e.endsWith("/")?`${e}/`:e;function B(e,t={}){if(!e||nt.test(e))return e;let{preferModule:n=!0}=t,r=()=>{if(!j)return null;try{return new URL(e,j).href}catch{return null}},o=()=>{if(typeof window>"u"||!window.location?.origin)return null;try{return new URL(e,window.location.origin).href}catch{return null}};return(n?r()||o():o()||r())||e}var Se=(()=>{if(j)try{let e=new URL(j);if(/\/public\/assets\/js\//.test(e.pathname))return new URL("../pds/",j).href}catch{return}})(),Ee=!1;function Ae(e){Ee||typeof document>"u"||(Ee=!0,e.addEventListener("pds:ready",t=>{let n=t.detail?.mode;n&&document.documentElement.classList.add(`pds-${n}`,"pds-ready")}))}function Le(e={},t={}){if(!t||typeof t!="object")return e;let n=Array.isArray(e)?[...e]:{...e};for(let[r,o]of Object.entries(t))o&&typeof o=="object"&&!Array.isArray(o)?n[r]=Le(n[r]&&typeof n[r]=="object"?n[r]:{},o):n[r]=o;return n}function oe(e=""){return String(e).toLowerCase().replace(/&/g," and ").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}function q(e){if(e==null)return e;if(typeof e=="function")return;if(typeof e!="object")return e;if(Array.isArray(e))return e.map(n=>q(n)).filter(n=>n!==void 0);let t={};for(let n in e)if(e.hasOwnProperty(n)){let r=e[n];if(typeof r!="function"){let o=q(r);o!==void 0&&(t[n]=o)}}return t}function Ce(e={},t={},{presets:n,defaultLog:r}){let o=typeof e=="object"&&("colors"in e||"typography"in e||"spatialRhythm"in e||"shape"in e||"behavior"in e||"layout"in e||"advanced"in e||"a11y"in e||"components"in e||"icons"in e),s=e&&e.enhancers;s&&!Array.isArray(s)&&(s=Object.values(s));let i=s??t.enhancers??[],u=e&&e.preset,c=e&&e.design,d="preset"in(e||{})||"design"in(e||{})||"enhancers"in(e||{}),l,a=null;if(d){let p=String(u||"default").toLowerCase(),f=n?.[p]||Object.values(n||{}).find(k=>oe(k.name)===p||String(k.name||"").toLowerCase()===p);if(!f)throw new Error(`PDS preset not found: "${u||"default"}"`);a={id:f.id||oe(f.name),name:f.name||f.id||String(p)};let w=structuredClone(f);if(c&&typeof c=="object"){let k=q(c);w=Le(w,structuredClone(k))}let{mode:v,autoDefine:g,applyGlobalStyles:x,manageTheme:M,themeStorageKey:E,preloadStyles:R,criticalLayers:C,managerURL:N,manager:I,preset:H,design:A,enhancers:$,log:P,...S}=e;l={...S,design:w,preset:a.name,log:P||r}}else if(o){let{log:p,...f}=e;l={design:structuredClone(f),log:p||r}}else{let p=n?.default||Object.values(n||{}).find(f=>oe(f.name)==="default");if(!p)throw new Error("PDS default preset not available");a={id:p.id||"default",name:p.name||"Default"},l={design:structuredClone(p),preset:a.name,log:r}}return{generatorConfig:l,enhancers:i,presetInfo:a}}function De({manageTheme:e,themeStorageKey:t,applyResolvedTheme:n,setupSystemListenerIfNeeded:r}){let o="light",s=null;if(e&&typeof window<"u"){try{s=localStorage.getItem(t)||null}catch{s=null}try{n?.(s),r?.(s)}catch{}s?s==="system"?o=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":o=s:o=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}return{resolvedTheme:o,storedTheme:s}}function ie(e,{resolvePublicAssetURL:t}){let n=!!(e?.public?.root||e?.static?.root),r=t(e);return!n&&Se&&(r=Se),z(B(r))}async function ke(e,{baseEnhancers:t=[]}={}){let{autoDefineBaseURL:n="/auto-define/",autoDefinePreload:r=[],autoDefineMapper:o=null,enhancers:s=[],autoDefineOverrides:i=null,autoDefinePreferModule:u=!0}=e,c=(()=>{let l=new Map;return(t||[]).forEach(a=>l.set(a.selector,a)),(s||[]).forEach(a=>l.set(a.selector,a)),Array.from(l.values())})(),d=null;if(typeof window<"u"&&typeof document<"u"){let l=null;try{let g=await Promise.resolve().then(()=>(xe(),ve));l=g?.AutoDefiner||g?.default?.AutoDefiner||g?.default||null}catch(g){console.warn("AutoDefiner not available:",g?.message||g)}let a=g=>{switch(g){case"pds-tabpanel":return"pds-tabstrip.js";default:return`${g}.js`}},{mapper:p,...f}=i&&typeof i=="object"?i:{},v={baseURL:n&&z(B(n,{preferModule:u})),predefine:r,scanExisting:!0,observeShadows:!0,patchAttachShadow:!0,debounceMs:16,enhancers:c,onError:(g,x)=>{if(typeof g=="string"&&g.startsWith("pds-")){let E=["pds-form","pds-drawer"].includes(g),R=x?.message?.includes("#pds/lit")||x?.message?.includes("Failed to resolve module specifier");E&&R?console.error(`\u274C PDS component <${g}> requires Lit but #pds/lit is not in import map.
32
- See: https://github.com/Pure-Web-Foundation/pure-ds/blob/main/readme.md#lit-components-not-working`):console.warn(`\u26A0\uFE0F PDS component <${g}> not found. Assets may not be installed.`)}else console.error(`\u274C Auto-define error for <${g}>:`,x)},...f,mapper:g=>{if(customElements.get(g))return null;if(typeof o=="function")try{let x=o(g);return x===void 0?a(g):x}catch(x){return console.warn("Custom autoDefine.mapper error; falling back to default:",x?.message||x),a(g)}return a(g)}};l&&(d=new l(v),r.length>0&&typeof l.define=="function"&&await l.define(...r,{baseURL:n,mapper:v.mapper,onError:v.onError}))}return{autoDefiner:d,mergedEnhancers:c}}var de=class extends EventTarget{},b=new de;b.initializing=!1;b.currentPreset=null;b.debug=!1;var Ue=(e="")=>String(e).toLowerCase().replace(/&/g," and ").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,""),G=function(e="log",t,...n){let r=!!(b.registry&&!b.registry.isLive),o=(this?.debug||this?.design?.debug||b.debug||!1)===!0;if(r){if(!b.debug)return}else if(!o&&e!=="error"&&e!=="warn")return;let s=console[e]||console.log;n.length>0?s(t,...n):s(t)};async function rt(e,t={}){if(t?.runtimeConfig===!1||typeof fetch!="function")return null;let n=t?.runtimeConfigURL||`${e}pds-runtime-config.json`;try{let r=await fetch(n,{cache:"no-store"});return r.ok?await r.json():null}catch{return null}}b.registry=U;b.enums=fe;b.adoptLayers=pe;b.adoptPrimitives=ue;b.createStylesheet=he;b.isLiveMode=()=>U.isLive;b.ask=ge;b.toast=D;b.common=ee;b.AutoComplete=null;b.loadAutoComplete=async()=>{if(b.AutoComplete)return b.AutoComplete;try{let e=await Promise.resolve().then(()=>(_e(),Pe)),t=e?.AutoComplete||e?.default||e;if(t)return b.AutoComplete=t,t}catch(e){G("warn","PDS.loadAutoComplete failed",e)}return null};function qe(e){let t=typeof CustomEvent=="function";try{let n=t?new CustomEvent("pds:ready",{detail:e}):new Event("pds:ready");b.dispatchEvent(n)}catch{}if(typeof document<"u")if(t){let n={detail:e,bubbles:!0,composed:!0};try{document.dispatchEvent(new CustomEvent("pds:ready",n))}catch{}try{document.dispatchEvent(new CustomEvent("pds-ready",n))}catch{}}else{try{document.dispatchEvent(new Event("pds:ready"))}catch{}try{document.dispatchEvent(new Event("pds-ready"))}catch{}}}typeof window<"u"&&(window.PDS=b);var le="pure-ds-theme",T=null,F=null;function K(e){try{if(typeof document>"u")return;let t="light";e?e==="system"?t=typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":t=e:t=typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",document.documentElement.setAttribute("data-theme",t)}catch{}}function Q(e){try{if(T&&F){try{typeof T.removeEventListener=="function"?T.removeEventListener("change",F):typeof T.removeListener=="function"&&T.removeListener(F)}catch{}T=null,F=null}if(e==="system"&&typeof window<"u"&&window.matchMedia){let t=window.matchMedia("(prefers-color-scheme: dark)"),n=r=>{let o=r?.matches===void 0?t.matches:r.matches;try{let s=o?"dark":"light";document.documentElement.setAttribute("data-theme",s),b.dispatchEvent(new CustomEvent("pds:theme:changed",{detail:{theme:s,source:"system"}}))}catch{}};T=t,F=n,typeof t.addEventListener=="function"?t.addEventListener("change",n):typeof t.addListener=="function"&&t.addListener(n)}}catch{}}Object.defineProperty(b,"theme",{get(){try{return typeof window>"u"?null:localStorage.getItem(le)||null}catch{return null}},set(e){try{if(typeof window>"u")return;e==null?localStorage.removeItem(le):localStorage.setItem(le,e),K(e),Q(e),b.dispatchEvent(new CustomEvent("pds:theme:changed",{detail:{theme:e,source:"api"}}))}catch{}}});b.defaultEnhancers=ne;async function st(e){let t=e&&e.mode||"live",{mode:n,...r}=e||{};if(t==="static")return ot(r);let o=ie(r,{resolvePublicAssetURL:re}),s=r?.managerURL||r?.public?.managerURL||r?.manager?.url||new URL("core/pds-manager.js",o).href||new URL("./pds-manager.js",import.meta.url).href,{startLive:i}=await import(s);return i(b,r,{emitReady:qe,applyResolvedTheme:K,setupSystemListenerIfNeeded:Q})}b.start=st;async function ot(e){if(!e||typeof e!="object")throw new Error("PDS.start({ mode: 'static', ... }) requires a valid configuration object");let t=e.applyGlobalStyles??!0,n=e.manageTheme??!0,r=e.themeStorageKey??"pure-ds-theme",o=e.staticPaths??{},s=ie(e,{resolvePublicAssetURL:re}),i=e&&e.autoDefine||null,u;i&&i.baseURL?u=z(B(i.baseURL,{preferModule:!1})):u=`${s}components/`;let c=i&&Array.isArray(i.predefine)&&i.predefine||[],d=i&&typeof i.mapper=="function"&&i.mapper||null;try{Ae(b);let{resolvedTheme:l}=De({manageTheme:n,themeStorageKey:r,applyResolvedTheme:K,setupSystemListenerIfNeeded:Q}),a=await rt(s,e),p=a?.config?.design||a?.design||null,f=a?.config?.preset||a?.preset||"default",w=a?.presetId||Ue(f)||"default",v=p?{[String(w).toLowerCase()]:p,...String(w).toLowerCase()!=="default"?{default:p}:{}}:null,g=e?.design&&typeof e.design=="object"?q(e.design):null,x=Ue(e?.preset||"default")||"default",M=g?{[String(x).toLowerCase()]:g,...String(x).toLowerCase()!=="default"?{default:g}:{}}:null,E=v||e?.presets||M||{};if(!Object.keys(E||{}).length)throw new Error("PDS static mode requires preset data. Run pds:build or provide config.presets/config.design.");let R=a?.config?{...a.config,...e,preset:e?.preset||w,design:g||p||a?.config?.design}:e,C=Ce(R,{},{presets:E,defaultLog:G}),N=C.enhancers,I={tokens:`${s}styles/pds-tokens.css.js`,primitives:`${s}styles/pds-primitives.css.js`,components:`${s}styles/pds-components.css.js`,utilities:`${s}styles/pds-utilities.css.js`,styles:`${s}styles/pds-styles.css.js`},H=a?.paths||{};if(o={...I,...H,...o},b.registry.setStaticMode(o),t&&typeof document<"u")try{let S=await b.registry.getStylesheet("styles");if(S){S._pds=!0;let k=(document.adoptedStyleSheets||[]).filter(h=>h._pds!==!0);document.adoptedStyleSheets=[...k,S]}}catch(S){G.call(b,"warn","Failed to apply static styles:",S)}let A=null,$=[];try{let S=await ke({autoDefineBaseURL:u,autoDefinePreload:c,autoDefineMapper:d,enhancers:N,autoDefineOverrides:i||null,autoDefinePreferModule:!(i&&i.baseURL)},{baseEnhancers:ne});A=S.autoDefiner,$=S.mergedEnhancers||[]}catch(S){G.call(b,"error","\u274C Failed to initialize AutoDefiner/Enhancers (static):",S)}let P=q(e);return b.currentConfig=Object.freeze({mode:"static",...structuredClone(P),design:structuredClone(C.generatorConfig.design),preset:C.generatorConfig.preset,theme:l,enhancers:$}),qe({mode:"static",config:C.generatorConfig,theme:l,autoDefiner:A}),{config:C.generatorConfig,theme:l,autoDefiner:A}}catch(l){throw b.dispatchEvent(new CustomEvent("pds:error",{detail:{error:l}})),l}}var Rt=K,$t=Q;export{b as PDS,Rt as applyResolvedTheme,$t as setupSystemListenerIfNeeded};
31
+ `;let u=o.querySelector("#msg-container");te(u,e)}o.addEventListener("click",u=>{u.target.closest('button[value="cancel"]')&&(o.close(),r(!1))});let i=()=>{let u=o.querySelector("form");u?u.addEventListener("submit",c=>{c.preventDefault();let d;t.useForm&&c.submitter.value==="ok"?(console.log("Found form:",u),console.log("Form elements:",u?Array.from(u.elements):"no form"),d=new FormData(u),console.log("FormData entries:",Array.from(d.entries()))):d=c.submitter.value==="ok",o.close(),r(d)}):requestAnimationFrame(i)};i(),o.addEventListener("close",()=>{setTimeout(()=>o.remove(),200)}),document.body.appendChild(o),typeof t.rendered=="function"&&t.rendered(o),o.showModal()})}async function Ne(){let e=document.querySelector("pds-toaster");return e||(e=document.createElement("pds-toaster"),document.body.appendChild(e),await customElements.whenDefined("pds-toaster")),e}async function D(e,t={}){return(await Ne()).toast(e,t)}D.success=async function(e,t={}){return D(e,{...t,type:"success"})};D.error=async function(e,t={}){return D(e,{...t,type:"error"})};D.warning=async function(e,t={}){return D(e,{...t,type:"warning"})};D.info=async function(e,t={}){return D(e,{...t,type:"information"})};var je=[{selector:".accordion"},{selector:"nav[data-dropdown]"},{selector:"label[data-toggle]"},{selector:'input[type="range"]'},{selector:"form[data-required]"},{selector:"fieldset[role=group][data-open]"},{selector:"[data-clip]"},{selector:"button, a[class*='btn-']"}];function Fe(e){e.dataset.enhancedAccordion||(e.dataset.enhancedAccordion="true",e.addEventListener("toggle",t=>{t.target.open&&t.target.parentElement===e&&e.querySelectorAll(":scope > details[open]").forEach(n=>{n!==t.target&&(n.open=!1)})},!0))}function He(e){if(e.dataset.enhancedDropdown)return;e.dataset.enhancedDropdown="true";let t=e.lastElementChild;if(!t)return;let n=e.querySelector("[data-dropdown-toggle]")||e.querySelector("button");n&&!n.hasAttribute("type")&&n.setAttribute("type","button"),t.id||(t.id=`dropdown-${Math.random().toString(36).slice(2,9)}`),t.tagName?.toLowerCase()==="menu"&&!t.hasAttribute("role")&&t.setAttribute("role","menu"),t.hasAttribute("aria-hidden")||t.setAttribute("aria-hidden","true"),n&&(n.setAttribute("aria-haspopup","true"),n.setAttribute("aria-controls",t.id),n.setAttribute("aria-expanded","false"));let o=()=>{let c=(e.getAttribute("data-mode")||"auto").toLowerCase();if(c==="up"||c==="down")return c;let d=e.getBoundingClientRect(),l=Math.max(0,window.innerHeight-d.bottom);return Math.max(0,d.top)>l?"up":"down"},s=()=>{e.dataset.dropdownDirection=o(),t.setAttribute("aria-hidden","false"),n?.setAttribute("aria-expanded","true")},i=()=>{t.setAttribute("aria-hidden","true"),n?.setAttribute("aria-expanded","false")},u=()=>{t.getAttribute("aria-hidden")==="false"?i():s()};n?.addEventListener("click",c=>{c.preventDefault(),c.stopPropagation(),u()}),document.addEventListener("click",c=>{e.contains(c.target)||i()}),e.addEventListener("keydown",c=>{c.key==="Escape"&&(i(),n?.focus())}),e.addEventListener("focusout",c=>{(!c.relatedTarget||!e.contains(c.relatedTarget))&&i()})}function We(e){if(e.dataset.enhancedToggle)return;e.dataset.enhancedToggle="true";let t=e.querySelector('input[type="checkbox"]');if(!t)return;e.hasAttribute("tabindex")||e.setAttribute("tabindex","0"),e.setAttribute("role","switch"),e.setAttribute("aria-checked",t.checked?"true":"false");let n=document.createElement("span");n.className="toggle-switch",n.setAttribute("role","presentation"),n.setAttribute("aria-hidden","true");let r=document.createElement("span");r.className="toggle-knob",n.appendChild(r),e.insertBefore(n,t.nextSibling);let o=()=>{e.setAttribute("aria-checked",t.checked?"true":"false")},s=()=>{t.disabled||(t.checked=!t.checked,o(),t.dispatchEvent(new Event("change",{bubbles:!0})))};e.addEventListener("click",i=>{i.preventDefault(),s()}),e.addEventListener("keydown",i=>{(i.key===" "||i.key==="Enter")&&(i.preventDefault(),s())}),t.addEventListener("change",o)}function ze(e){if(e.dataset.enhancedRange)return;let t=e.closest("label"),n=t?.classList.contains("range-output"),r=e.id||`range-${Math.random().toString(36).substring(2,11)}`,o=`${r}-output`;if(e.id=r,n){let s=t.querySelector("span");if(s&&!s.classList.contains("range-output-wrapper")){let i=document.createElement("span");i.className="range-output-wrapper",i.style.display="flex",i.style.justifyContent="space-between",i.style.alignItems="center";let u=document.createElement("span");u.textContent=s.textContent,i.appendChild(u);let c=document.createElement("output");c.id=o,c.setAttribute("for",r),c.style.color="var(--surface-text-secondary, var(--color-text-secondary))",c.style.fontSize="0.875rem",c.textContent=e.value,i.appendChild(c),s.textContent="",s.appendChild(i);let d=()=>{c.textContent=e.value};e.addEventListener("input",d)}}else{let s=e.closest(".range-container");s||(s=document.createElement("div"),s.className="range-container",e.parentNode?.insertBefore(s,e),s.appendChild(e)),s.style.position="relative";let i=document.createElement("output");i.id=o,i.setAttribute("for",r),i.className="range-bubble",i.setAttribute("aria-live","polite"),s.appendChild(i);let u=()=>{let l=parseFloat(e.min)||0,a=parseFloat(e.max)||100,m=parseFloat(e.value),h=(m-l)/(a-l);i.style.left=`calc(${h*100}% )`,i.textContent=String(m)},c=()=>i.classList.add("visible"),d=()=>i.classList.remove("visible");e.addEventListener("input",u),e.addEventListener("pointerdown",c),e.addEventListener("pointerup",d),e.addEventListener("pointerleave",d),e.addEventListener("focus",c),e.addEventListener("blur",d),u()}e.dataset.enhancedRange="1"}function Be(e){if(e.dataset.enhancedRequired)return;e.dataset.enhancedRequired="true";let t=n=>{let r=n.closest("label");if(!r||r.querySelector(".required-asterisk"))return;let o=document.createElement("span");o.classList.add("required-asterisk"),o.textContent="*",o.style.marginLeft="4px",r.querySelector("span").appendChild(o);let s=n.closest("form");if(s&&!s.querySelector(".required-legend")){let i=document.createElement("small");i.classList.add("required-legend"),i.textContent="* Required fields",s.insertBefore(i,s.querySelector(".form-actions")||s.lastElementChild)}};e.querySelectorAll("[required]").forEach(n=>{t(n)})}function Ve(e){if(e.dataset.enhancedOpenGroup)return;e.dataset.enhancedOpenGroup="true",e.classList.add("flex","flex-wrap","buttons");let t=document.createElement("input");t.type="text",t.placeholder="Add item...",t.classList.add("input-text","input-sm"),t.style.width="auto";let n=e.querySelector('input[type="radio"], input[type="checkbox"]');e.appendChild(t),t.addEventListener("keydown",r=>{if(r.key==="Enter"||r.key==="Tab"){let o=t.value.trim();if(o){r.preventDefault();let s=n.type==="radio"?"radio":"checkbox",i=`open-group-${Math.random().toString(36).substring(2,11)}`,u=document.createElement("label"),c=document.createElement("span");c.setAttribute("data-label",""),c.textContent=o;let d=document.createElement("input");d.type=s,d.name=n.name||e.getAttribute("data-name")||"open-group",d.value=o,d.id=i,u.appendChild(c),u.appendChild(d),e.insertBefore(u,t),t.value=""}}else if(r.key==="Backspace"&&t.value===""){r.preventDefault();let o=e.querySelectorAll("label");o.length>0&&o[o.length-1].remove()}})}function Ge(e){if(e.dataset.enhancedClip)return;e.dataset.enhancedClip="true",e.hasAttribute("tabindex")||e.setAttribute("tabindex","0"),e.hasAttribute("role")||e.setAttribute("role","button");let t=()=>{let r=e.getAttribute("data-clip-open")==="true";e.setAttribute("aria-expanded",r?"true":"false")},n=()=>{let r=e.getAttribute("data-clip-open")==="true";e.setAttribute("data-clip-open",r?"false":"true"),t()};e.addEventListener("click",r=>{r.defaultPrevented||n()}),e.addEventListener("keydown",r=>{(r.key===" "||r.key==="Enter")&&(r.preventDefault(),n())}),t()}function Ke(e){if(e.dataset.enhancedBtnWorking)return;e.dataset.enhancedBtnWorking="true";let t=null,n=!1;new MutationObserver(o=>{o.forEach(s=>{if(s.attributeName==="class"){let i=e.classList.contains("btn-working"),u=e.querySelector("pds-icon");if(i)if(u)t||(t=u.getAttribute("icon")),u.setAttribute("icon","circle-notch");else{let c=document.createElement("pds-icon");c.setAttribute("icon","circle-notch"),c.setAttribute("size","sm"),e.insertBefore(c,e.firstChild),n=!0}else s.oldValue?.includes("btn-working")&&u&&(n?(u.remove(),n=!1):t&&(u.setAttribute("icon",t),t=null))}})}).observe(e,{attributes:!0,attributeFilter:["class"],attributeOldValue:!0})}var Qe=new Map([[".accordion",Fe],["nav[data-dropdown]",He],["label[data-toggle]",We],['input[type="range"]',ze],["form[data-required]",Be],["fieldset[role=group][data-open]",Ve],["[data-clip]",Ge],["button, a[class*='btn-']",Ke]]),ne=je.map(e=>({...e,run:Qe.get(e.selector)||(()=>{})}));var ve="pds",Ze=/^([a-z][a-z0-9+\-.]*:)?\/\//i,we=/^[a-z]:/i;function N(e=""){return e.endsWith("/")?e:`${e}/`}function Je(e="",t=ve){let n=e.replace(/\/+$/,"");return new RegExp(`(?:^|/)${t}$`,"i").test(n)?n:`${n}/${t}`}function Xe(e){return e.replace(/^\.\/+/,"")}function Ye(e){return we.test(e)?e.replace(we,"").replace(/^\/+/,""):e}function et(e){return e.startsWith("public/")?e.substring(7):e}function re(e,t={}){let n=t.segment||ve,r=t.defaultRoot||`/assets/${n}/`,o=e?.public&&e.public?.root||e?.static&&e.static?.root||null;if(!o||typeof o!="string")return N(r);let s=o.trim();return s?(s=s.replace(/\\/g,"/"),s=Je(s,n),s=N(s),Ze.test(s)?s:(s=Xe(s),s=Ye(s),s.startsWith("/")||(s=et(s),s.startsWith("/")||(s=`/${s}`),s=s.replace(/\/+/g,(i,u)=>u===0?i:"/")),N(s))):N(r)}var nt=/^[a-z][a-z0-9+\-.]*:\/\//i,j=(()=>{try{return import.meta.url}catch{return}})(),z=e=>typeof e=="string"&&e.length&&!e.endsWith("/")?`${e}/`:e;function B(e,t={}){if(!e||nt.test(e))return e;let{preferModule:n=!0}=t,r=()=>{if(!j)return null;try{return new URL(e,j).href}catch{return null}},o=()=>{if(typeof window>"u"||!window.location?.origin)return null;try{return new URL(e,window.location.origin).href}catch{return null}};return(n?r()||o():o()||r())||e}var Ee=(()=>{if(j)try{let e=new URL(j);if(/\/public\/assets\/js\//.test(e.pathname))return new URL("../pds/",j).href}catch{return}})(),Ae=!1;function Le(e){Ae||typeof document>"u"||(Ae=!0,e.addEventListener("pds:ready",t=>{let n=t.detail?.mode;n&&document.documentElement.classList.add(`pds-${n}`,"pds-ready")}))}function ie(e={},t={}){if(!t||typeof t!="object")return e;let n=Array.isArray(e)?[...e]:{...e};for(let[r,o]of Object.entries(t))o&&typeof o=="object"&&!Array.isArray(o)?n[r]=ie(n[r]&&typeof n[r]=="object"?n[r]:{},o):n[r]=o;return n}function oe(e=""){return String(e).toLowerCase().replace(/&/g," and ").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}function $(e){if(e==null)return e;if(typeof e=="function")return;if(typeof e!="object")return e;if(Array.isArray(e))return e.map(n=>$(n)).filter(n=>n!==void 0);let t={};for(let n in e)if(e.hasOwnProperty(n)){let r=e[n];if(typeof r!="function"){let o=$(r);o!==void 0&&(t[n]=o)}}return t}function Ce(e={},t={},{presets:n,defaultLog:r}){let o=typeof e=="object"&&("colors"in e||"typography"in e||"spatialRhythm"in e||"shape"in e||"behavior"in e||"layout"in e||"advanced"in e||"a11y"in e||"components"in e||"icons"in e),s=e&&e.enhancers;s&&!Array.isArray(s)&&(s=Object.values(s));let i=s??t.enhancers??[],u=e&&e.preset,c=e&&e.design,d=e&&e.icons&&typeof e.icons=="object"?e.icons:null,l="preset"in(e||{})||"design"in(e||{})||"enhancers"in(e||{}),a,m=null;if(l){let h=String(u||"default").toLowerCase(),w=n?.[h]||Object.values(n||{}).find(p=>oe(p.name)===h||String(p.name||"").toLowerCase()===h);if(!w)throw new Error(`PDS preset not found: "${u||"default"}"`);m={id:w.id||oe(w.name),name:w.name||w.id||String(h)};let v=structuredClone(w);if(c&&typeof c=="object"||d){let p=c?$(c):{},y=d?$(d):null,f=y?ie(p,{icons:y}):p;v=ie(v,structuredClone(f))}let{mode:g,autoDefine:x,applyGlobalStyles:M,manageTheme:E,themeStorageKey:k,preloadStyles:C,criticalLayers:q,managerURL:I,manager:H,preset:A,design:R,enhancers:O,log:S,...P}=e;a={...P,design:v,preset:m.name,log:S||r}}else if(o){let{log:h,...w}=e;a={design:structuredClone(w),log:h||r}}else{let h=n?.default||Object.values(n||{}).find(w=>oe(w.name)==="default");if(!h)throw new Error("PDS default preset not available");m={id:h.id||"default",name:h.name||"Default"},a={design:structuredClone(h),preset:m.name,log:r}}return{generatorConfig:a,enhancers:i,presetInfo:m}}function De({manageTheme:e,themeStorageKey:t,applyResolvedTheme:n,setupSystemListenerIfNeeded:r}){let o="light",s=null;if(e&&typeof window<"u"){try{s=localStorage.getItem(t)||null}catch{s=null}try{n?.(s),r?.(s)}catch{}s?s==="system"?o=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":o=s:o=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}return{resolvedTheme:o,storedTheme:s}}function ae(e,{resolvePublicAssetURL:t}){let n=!!(e?.public?.root||e?.static?.root),r=t(e);return!n&&Ee&&(r=Ee),z(B(r))}async function ke(e,{baseEnhancers:t=[]}={}){let{autoDefineBaseURL:n="/auto-define/",autoDefinePreload:r=[],autoDefineMapper:o=null,enhancers:s=[],autoDefineOverrides:i=null,autoDefinePreferModule:u=!0}=e,c=(()=>{let l=new Map;return(t||[]).forEach(a=>l.set(a.selector,a)),(s||[]).forEach(a=>l.set(a.selector,a)),Array.from(l.values())})(),d=null;if(typeof window<"u"&&typeof document<"u"){let l=null;try{let g=await Promise.resolve().then(()=>(Se(),xe));l=g?.AutoDefiner||g?.default?.AutoDefiner||g?.default||null}catch(g){console.warn("AutoDefiner not available:",g?.message||g)}let a=g=>{switch(g){case"pds-tabpanel":return"pds-tabstrip.js";default:return`${g}.js`}},{mapper:m,...h}=i&&typeof i=="object"?i:{},v={baseURL:n&&z(B(n,{preferModule:u})),predefine:r,scanExisting:!0,observeShadows:!0,patchAttachShadow:!0,debounceMs:16,enhancers:c,onError:(g,x)=>{if(typeof g=="string"&&g.startsWith("pds-")){let E=["pds-form","pds-drawer"].includes(g),k=x?.message?.includes("#pds/lit")||x?.message?.includes("Failed to resolve module specifier");E&&k?console.error(`\u274C PDS component <${g}> requires Lit but #pds/lit is not in import map.
32
+ See: https://github.com/Pure-Web-Foundation/pure-ds/blob/main/readme.md#lit-components-not-working`):console.warn(`\u26A0\uFE0F PDS component <${g}> not found. Assets may not be installed.`)}else console.error(`\u274C Auto-define error for <${g}>:`,x)},...h,mapper:g=>{if(customElements.get(g))return null;if(typeof o=="function")try{let x=o(g);return x===void 0?a(g):x}catch(x){return console.warn("Custom autoDefine.mapper error; falling back to default:",x?.message||x),a(g)}return a(g)}};l&&(d=new l(v),r.length>0&&typeof l.define=="function"&&await l.define(...r,{baseURL:n,mapper:v.mapper,onError:v.onError}))}return{autoDefiner:d,mergedEnhancers:c}}var ue=class extends EventTarget{},b=new ue;b.initializing=!1;b.currentPreset=null;b.debug=!1;var Ue=(e="")=>String(e).toLowerCase().replace(/&/g," and ").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,""),G=function(e="log",t,...n){let r=!!(b.registry&&!b.registry.isLive),o=(this?.debug||this?.design?.debug||b.debug||!1)===!0;if(r){if(!b.debug)return}else if(!o&&e!=="error"&&e!=="warn")return;let s=console[e]||console.log;n.length>0?s(t,...n):s(t)};async function rt(e,t={}){if(t?.runtimeConfig===!1||typeof fetch!="function")return null;let n=t?.runtimeConfigURL||`${e}pds-runtime-config.json`;try{let r=await fetch(n,{cache:"no-store"});return r.ok?await r.json():null}catch{return null}}b.registry=U;b.enums=me;b.adoptLayers=he;b.adoptPrimitives=pe;b.createStylesheet=fe;b.isLiveMode=()=>U.isLive;b.ask=be;b.toast=D;b.common=ee;b.AutoComplete=null;b.loadAutoComplete=async()=>{if(b.AutoComplete)return b.AutoComplete;try{let e=await Promise.resolve().then(()=>(_e(),Pe)),t=e?.AutoComplete||e?.default||e;if(t)return b.AutoComplete=t,t}catch(e){G("warn","PDS.loadAutoComplete failed",e)}return null};function qe(e){let t=typeof CustomEvent=="function";try{let n=t?new CustomEvent("pds:ready",{detail:e}):new Event("pds:ready");b.dispatchEvent(n)}catch{}if(typeof document<"u")if(t){let n={detail:e,bubbles:!0,composed:!0};try{document.dispatchEvent(new CustomEvent("pds:ready",n))}catch{}try{document.dispatchEvent(new CustomEvent("pds-ready",n))}catch{}}else{try{document.dispatchEvent(new Event("pds:ready"))}catch{}try{document.dispatchEvent(new Event("pds-ready"))}catch{}}}typeof window<"u"&&(window.PDS=b);var de="pure-ds-theme",T=null,F=null;function K(e){try{if(typeof document>"u")return;let t="light";e?e==="system"?t=typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":t=e:t=typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",document.documentElement.setAttribute("data-theme",t)}catch{}}function Q(e){try{if(T&&F){try{typeof T.removeEventListener=="function"?T.removeEventListener("change",F):typeof T.removeListener=="function"&&T.removeListener(F)}catch{}T=null,F=null}if(e==="system"&&typeof window<"u"&&window.matchMedia){let t=window.matchMedia("(prefers-color-scheme: dark)"),n=r=>{let o=r?.matches===void 0?t.matches:r.matches;try{let s=o?"dark":"light";document.documentElement.setAttribute("data-theme",s),b.dispatchEvent(new CustomEvent("pds:theme:changed",{detail:{theme:s,source:"system"}}))}catch{}};T=t,F=n,typeof t.addEventListener=="function"?t.addEventListener("change",n):typeof t.addListener=="function"&&t.addListener(n)}}catch{}}Object.defineProperty(b,"theme",{get(){try{return typeof window>"u"?null:localStorage.getItem(de)||null}catch{return null}},set(e){try{if(typeof window>"u")return;e==null?localStorage.removeItem(de):localStorage.setItem(de,e),K(e),Q(e),b.dispatchEvent(new CustomEvent("pds:theme:changed",{detail:{theme:e,source:"api"}}))}catch{}}});b.defaultEnhancers=ne;async function st(e){let t=e&&e.mode||"live",{mode:n,...r}=e||{};if(t==="static")return ot(r);let o=ae(r,{resolvePublicAssetURL:re}),s=r?.managerURL||r?.public?.managerURL||r?.manager?.url||new URL("core/pds-manager.js",o).href||new URL("./pds-manager.js",import.meta.url).href,{startLive:i}=await import(s);return i(b,r,{emitReady:qe,applyResolvedTheme:K,setupSystemListenerIfNeeded:Q})}b.start=st;async function ot(e){if(!e||typeof e!="object")throw new Error("PDS.start({ mode: 'static', ... }) requires a valid configuration object");let t=e.applyGlobalStyles??!0,n=e.manageTheme??!0,r=e.themeStorageKey??"pure-ds-theme",o=e.staticPaths??{},s=ae(e,{resolvePublicAssetURL:re}),i=e&&e.autoDefine||null,u;i&&i.baseURL?u=z(B(i.baseURL,{preferModule:!1})):u=`${s}components/`;let c=i&&Array.isArray(i.predefine)&&i.predefine||[],d=i&&typeof i.mapper=="function"&&i.mapper||null;try{Le(b);let{resolvedTheme:l}=De({manageTheme:n,themeStorageKey:r,applyResolvedTheme:K,setupSystemListenerIfNeeded:Q}),a=await rt(s,e),m=a?.config?.design||a?.design||null,h=a?.config?.preset||a?.preset||"default",w=a?.presetId||Ue(h)||"default",v=m?{[String(w).toLowerCase()]:m,...String(w).toLowerCase()!=="default"?{default:m}:{}}:null,g=e?.design&&typeof e.design=="object"?$(e.design):null,x=Ue(e?.preset||"default")||"default",M=g?{[String(x).toLowerCase()]:g,...String(x).toLowerCase()!=="default"?{default:g}:{}}:null,E=v||e?.presets||M||{};if(!Object.keys(E||{}).length)throw new Error("PDS static mode requires preset data. Run pds:build or provide config.presets/config.design.");let k=a?.config?{...a.config,...e,preset:e?.preset||w,design:g||m||a?.config?.design}:e,C=Ce(k,{},{presets:E,defaultLog:G}),q=C.enhancers,I={tokens:`${s}styles/pds-tokens.css.js`,primitives:`${s}styles/pds-primitives.css.js`,components:`${s}styles/pds-components.css.js`,utilities:`${s}styles/pds-utilities.css.js`,styles:`${s}styles/pds-styles.css.js`},H=a?.paths||{};if(o={...I,...H,...o},b.registry.setStaticMode(o),t&&typeof document<"u")try{let S=await b.registry.getStylesheet("styles");if(S){S._pds=!0;let P=(document.adoptedStyleSheets||[]).filter(p=>p._pds!==!0);document.adoptedStyleSheets=[...P,S]}}catch(S){G.call(b,"warn","Failed to apply static styles:",S)}let A=null,R=[];try{let S=await ke({autoDefineBaseURL:u,autoDefinePreload:c,autoDefineMapper:d,enhancers:q,autoDefineOverrides:i||null,autoDefinePreferModule:!(i&&i.baseURL)},{baseEnhancers:ne});A=S.autoDefiner,R=S.mergedEnhancers||[]}catch(S){G.call(b,"error","\u274C Failed to initialize AutoDefiner/Enhancers (static):",S)}let O=$(e);return b.currentConfig=Object.freeze({mode:"static",...structuredClone(O),design:structuredClone(C.generatorConfig.design),preset:C.generatorConfig.preset,theme:l,enhancers:R}),qe({mode:"static",config:C.generatorConfig,theme:l,autoDefiner:A}),{config:C.generatorConfig,theme:l,autoDefiner:A}}catch(l){throw b.dispatchEvent(new CustomEvent("pds:error",{detail:{error:l}})),l}}var Rt=K,$t=Q;export{b as PDS,Rt as applyResolvedTheme,$t as setupSystemListenerIfNeeded};
@@ -155,6 +155,12 @@ export function normalizeInitConfig(inputConfig = {}, options = {}, { presets, d
155
155
  // New API: { preset?: string, design?: object }
156
156
  const presetId = inputConfig && inputConfig.preset;
157
157
  const designOverrides = inputConfig && inputConfig.design;
158
+ const iconOverrides =
159
+ inputConfig &&
160
+ inputConfig.icons &&
161
+ typeof inputConfig.icons === "object"
162
+ ? inputConfig.icons
163
+ : null;
158
164
 
159
165
  const hasNewShape =
160
166
  "preset" in (inputConfig || {}) ||
@@ -184,10 +190,24 @@ export function normalizeInitConfig(inputConfig = {}, options = {}, { presets, d
184
190
 
185
191
  // Merge preset with design overrides
186
192
  let mergedDesign = structuredClone(found);
187
- if (designOverrides && typeof designOverrides === "object") {
193
+ if (
194
+ (designOverrides && typeof designOverrides === "object") ||
195
+ iconOverrides
196
+ ) {
188
197
  // Strip functions before cloning to avoid DataCloneError
189
- const cloneableDesign = stripFunctions(designOverrides);
190
- mergedDesign = __deepMerge(mergedDesign, structuredClone(cloneableDesign));
198
+ const cloneableDesign = designOverrides
199
+ ? stripFunctions(designOverrides)
200
+ : {};
201
+ const cloneableIcons = iconOverrides
202
+ ? stripFunctions(iconOverrides)
203
+ : null;
204
+ const mergedOverrides = cloneableIcons
205
+ ? __deepMerge(cloneableDesign, { icons: cloneableIcons })
206
+ : cloneableDesign;
207
+ mergedDesign = __deepMerge(
208
+ mergedDesign,
209
+ structuredClone(mergedOverrides)
210
+ );
191
211
  }
192
212
 
193
213
  // Build structured config with design nested