@pure-ds/core 0.6.10 → 0.6.11

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.
Files changed (75) hide show
  1. package/custom-elements.json +803 -16
  2. package/dist/types/pds.d.ts +1 -0
  3. package/dist/types/public/assets/js/pds-manager.d.ts +98 -1
  4. package/dist/types/public/assets/js/pds-manager.d.ts.map +1 -1
  5. package/dist/types/public/assets/js/pds.d.ts.map +1 -1
  6. package/dist/types/public/assets/pds/components/pds-live-converter.d.ts +8 -0
  7. package/dist/types/public/assets/pds/components/pds-live-converter.d.ts.map +1 -0
  8. package/dist/types/public/assets/pds/components/pds-live-importer.d.ts +2 -0
  9. package/dist/types/public/assets/pds/components/pds-live-importer.d.ts.map +1 -0
  10. package/dist/types/public/assets/pds/components/pds-live-template-canvas.d.ts +2 -0
  11. package/dist/types/public/assets/pds/components/pds-live-template-canvas.d.ts.map +1 -0
  12. package/dist/types/public/assets/pds/components/pds-omnibox.d.ts.map +1 -1
  13. package/dist/types/public/assets/pds/components/pds-scrollrow.d.ts +20 -0
  14. package/dist/types/public/assets/pds/components/pds-scrollrow.d.ts.map +1 -1
  15. package/dist/types/public/assets/pds/components/pds-toaster.d.ts +1 -1
  16. package/dist/types/public/assets/pds/components/pds-toaster.d.ts.map +1 -1
  17. package/dist/types/public/assets/pds/components/pds-treeview.d.ts +37 -0
  18. package/dist/types/public/assets/pds/components/pds-treeview.d.ts.map +1 -0
  19. package/dist/types/src/js/common/toast.d.ts +8 -0
  20. package/dist/types/src/js/common/toast.d.ts.map +1 -1
  21. package/dist/types/src/js/pds-core/pds-enhancers.d.ts.map +1 -1
  22. package/dist/types/src/js/pds-core/pds-generator.d.ts.map +1 -1
  23. package/dist/types/src/js/pds-core/pds-live.d.ts +2 -1
  24. package/dist/types/src/js/pds-core/pds-live.d.ts.map +1 -1
  25. package/dist/types/src/js/pds-live-manager/conversion-service.d.ts +66 -0
  26. package/dist/types/src/js/pds-live-manager/conversion-service.d.ts.map +1 -0
  27. package/dist/types/src/js/pds-live-manager/import-contract.d.ts +15 -0
  28. package/dist/types/src/js/pds-live-manager/import-contract.d.ts.map +1 -0
  29. package/dist/types/src/js/pds-live-manager/import-history-service.d.ts +32 -0
  30. package/dist/types/src/js/pds-live-manager/import-history-service.d.ts.map +1 -0
  31. package/dist/types/src/js/pds-live-manager/import-service.d.ts +21 -0
  32. package/dist/types/src/js/pds-live-manager/import-service.d.ts.map +1 -0
  33. package/dist/types/src/js/pds-live-manager/template-service.d.ts +17 -0
  34. package/dist/types/src/js/pds-live-manager/template-service.d.ts.map +1 -0
  35. package/dist/types/src/js/pds-manager.d.ts +4 -0
  36. package/dist/types/src/js/pds.d.ts.map +1 -1
  37. package/package.json +6 -2
  38. package/packages/pds-cli/README.md +51 -0
  39. package/packages/pds-cli/bin/pds-import.js +176 -0
  40. package/packages/pds-cli/bin/pds-static.js +15 -0
  41. package/packages/pds-cli/bin/postinstall.mjs +17 -8
  42. package/public/assets/js/app.js +15 -139
  43. package/public/assets/js/pds-manager.js +358 -255
  44. package/public/assets/js/pds.js +7 -7
  45. package/public/assets/pds/components/pds-live-converter.js +47 -0
  46. package/public/assets/pds/components/pds-live-edit.js +760 -43
  47. package/public/assets/pds/components/pds-live-importer.js +772 -0
  48. package/public/assets/pds/components/pds-live-template-canvas.js +171 -0
  49. package/public/assets/pds/components/pds-omnibox.js +136 -2
  50. package/public/assets/pds/components/pds-scrollrow.js +56 -1
  51. package/public/assets/pds/components/pds-toaster.js +50 -5
  52. package/public/assets/pds/components/pds-treeview.js +972 -0
  53. package/public/assets/pds/custom-elements.json +803 -16
  54. package/public/assets/pds/pds-css-complete.json +7 -2
  55. package/public/assets/pds/templates/commerce-scroll-explorer.html +115 -0
  56. package/public/assets/pds/templates/content-brand-showcase.html +110 -0
  57. package/public/assets/pds/templates/feedback-ops-dashboard.html +91 -0
  58. package/public/assets/pds/templates/release-readiness-radar.html +69 -0
  59. package/public/assets/pds/templates/support-command-center.html +92 -0
  60. package/public/assets/pds/templates/templates.json +53 -0
  61. package/public/assets/pds/templates/workspace-settings-lab.html +131 -0
  62. package/public/assets/pds/vscode-custom-data.json +54 -4
  63. package/readme.md +34 -0
  64. package/src/js/pds-core/pds-config.js +9 -9
  65. package/src/js/pds-core/pds-enhancers.js +146 -0
  66. package/src/js/pds-core/pds-generator.js +170 -29
  67. package/src/js/pds-core/pds-live.js +453 -13
  68. package/src/js/pds-live-manager/conversion-service.js +3136 -0
  69. package/src/js/pds-live-manager/import-contract.js +57 -0
  70. package/src/js/pds-live-manager/import-history-service.js +145 -0
  71. package/src/js/pds-live-manager/import-service.js +255 -0
  72. package/src/js/pds-live-manager/tailwind-conversion-rules.json +383 -0
  73. package/src/js/pds-live-manager/template-service.js +170 -0
  74. package/src/js/pds.d.ts +1 -0
  75. package/src/js/pds.js +35 -0
@@ -1,14 +1,14 @@
1
- var _e=Object.defineProperty;var Oe=(t,e)=>()=>(t&&(e=t(t=0)),e);var de=(t,e)=>{for(var n in e)_e(t,n,{get:e[n],enumerable:!0})};var Ae={};de(Ae,{AutoDefiner:()=>X});async function nt(...t){let e={};t.length&&typeof t[t.length-1]=="object"&&(e=t.pop()||{});let n=t,{baseURL:r,mapper:s=d=>`${d}.js`,onError:o=(d,l)=>console.error(`[defineWebComponents] ${d}:`,l)}=e,i=r?new URL(r,typeof location<"u"?location.href:import.meta.url):new URL("./",import.meta.url),c=d=>d.toLowerCase().replace(/(^|-)([a-z])/g,(l,a,p)=>p.toUpperCase()),u=async d=>{try{if(customElements.get(d))return{tag:d,status:"already-defined"};let l=s(d),p=await import(l instanceof URL?l.href:new URL(l,i).href),h=p?.default??p?.[c(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 "${c(d)}".`)}return customElements.get(d)?{tag:d,status:"race-already-defined"}:(customElements.define(d,h),{tag:d,status:"defined"})}catch(l){throw o(d,l),l}};return Promise.all(n.map(u))}var X,Le=Oe(()=>{X=class{constructor(e={}){let{baseURL:n,mapper:r,onError:s,predicate:o=()=>!0,attributeModule:i="data-module",root:c=document,scanExisting:u=!0,debounceMs:d=16,observeShadows:l=!0,enhancers:a=[],patchAttachShadow:p=!0}=e,h=new Set,w=new Set,v=new Set,f=new Map,x=new WeakMap,R=new WeakMap,E=0,C=!1,$=null,ie=m=>{if(!m||!a.length)return;let g=R.get(m);g||(g=new Set,R.set(m,g));for(let y of a)if(!(!y.selector||!y.run)&&!g.has(y.selector))try{m.matches&&m.matches(y.selector)&&(y.run(m),g.add(y.selector))}catch(S){console.warn(`[AutoDefiner] Error applying enhancer for selector "${y.selector}":`,S)}},H=(m,g)=>{if(!C&&!(!m||!m.includes("-"))&&!customElements.get(m)&&!w.has(m)&&!v.has(m)){if(g&&g.getAttribute){let y=g.getAttribute(i);y&&!f.has(m)&&f.set(m,y)}h.add(m),Ie()}},Ie=()=>{E||(E=setTimeout(ae,d))},D=m=>{if(m){if(m.nodeType===1){let g=m,y=g.tagName?.toLowerCase();y&&y.includes("-")&&!customElements.get(y)&&o(y,g)&&H(y,g),ie(g),l&&g.shadowRoot&&W(g.shadowRoot)}m.querySelectorAll&&m.querySelectorAll("*").forEach(g=>{let y=g.tagName?.toLowerCase();y&&y.includes("-")&&!customElements.get(y)&&o(y,g)&&H(y,g),ie(g),l&&g.shadowRoot&&W(g.shadowRoot)})}},W=m=>{if(!m||x.has(m))return;D(m);let g=new MutationObserver(y=>{for(let S of y)S.addedNodes?.forEach(k=>{D(k)}),S.type==="attributes"&&S.target&&D(S.target)});g.observe(m,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[i,...a.map(y=>y.selector).filter(y=>y.startsWith("data-"))]}),x.set(m,g)};async function ae(){if(clearTimeout(E),E=0,!h.size)return;let m=Array.from(h);h.clear(),m.forEach(g=>w.add(g));try{let g=y=>f.get(y)??(r?r(y):`${y}.js`);await nt(...m,{baseURL:n,mapper:g,onError:(y,S)=>{v.add(y),s?.(y,S)}})}catch{}finally{m.forEach(g=>w.delete(g))}}let ce=c===document?document.documentElement:c,le=new MutationObserver(m=>{for(let g of m)g.addedNodes?.forEach(y=>{D(y)}),g.type==="attributes"&&g.target&&D(g.target)});if(le.observe(ce,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[i,...a.map(m=>m.selector).filter(m=>m.startsWith("data-"))]}),l&&p&&Element.prototype.attachShadow){let m=Element.prototype.attachShadow;Element.prototype.attachShadow=function(y){let S=m.call(this,y);if(y&&y.mode==="open"){W(S);let k=this.tagName?.toLowerCase();k&&k.includes("-")&&!customElements.get(k)&&H(k,this)}return S},$=()=>Element.prototype.attachShadow=m}return u&&D(ce),{stop(){C=!0,le.disconnect(),$&&$(),E&&(clearTimeout(E),E=0),x.forEach(m=>m.disconnect())},flush:ae}}static async define(...e){let n={};e.length&&typeof e[e.length-1]=="object"&&(n=e.pop()||{});let r=e,{baseURL:s,mapper:o=l=>`${l}.js`,onError:i=(l,a)=>console.error(`[defineWebComponents] ${l}:`,a)}=n,c=s?new URL(s,typeof location<"u"?location.href:import.meta.url):new URL("./",import.meta.url),u=l=>l.toLowerCase().replace(/(^|-)([a-z])/g,(a,p,h)=>h.toUpperCase()),d=async l=>{try{if(customElements.get(l))return{tag:l,status:"already-defined"};let a=o(l),h=await import(a instanceof URL?a.href:new URL(a,c).href),w=h?.default??h?.[u(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 "${u(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 ue(t){return new DOMParser().parseFromString(t,"text/html").body.childNodes}function pe(t,e=100){let n;return function(...s){let o=()=>{clearTimeout(n),t(...s)};clearTimeout(n),n=setTimeout(o,e)}}function _(t){setTimeout(t,0)}function he(t){try{if(typeof t!="string"||t.indexOf(`
2
- `)!==-1||t.indexOf(" ")!==-1||t.startsWith("#/"))return!1;let e=new URL(t,window.location.origin);return e.protocol==="http:"||e.protocol==="https:"}catch{return!1}}function fe(t,e,n){let r=window.screen.width/2-e/2,s=window.screen.height/2-n/2;return window.open(t,"",`toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes, width=${e}, height=${n}, top=${s}, left=${r}`)}var B={result:"ac-suggestion",item:"ac-itm"},O=class t extends EventTarget{constructor(e,n,r){super(),this.settings={emptyResultsText:"",...r},this.container=e,this.input=n,this.input.setAttribute("autocomplete","off"),this.categories=r.categories||{},this.caches=new Map,_(this.attach.bind(this))}static connect(e,n){let r=e.target;if(!r._autoComplete){if(!n?.categories)throw Error("Missing autocomplete settings");r._autoComplete=new t(r.parentNode,r,n),e.type==="focus"&&setTimeout(()=>{r._autoComplete.focusHandler(e)},100)}return r._autoComplete}on(e,n){return this.input.addEventListener(e,n),this}attach(){this.resultsDiv=document.createElement("div"),this.resultsDiv.title="",this.resultsDiv.classList.add(B.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 e=getComputedStyle(this.input);this.container.style.setProperty("--ac-bg-default",e.backgroundColor),this.container.style.setProperty("--ac-color-default",e.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",pe(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 e=this.internalController();return typeof this.settings.controller=="function"&&(e=this.settings.controller(this)??e),e}internalController(){return{show:this.show.bind(this),hide:this.hide.bind(this),clear:this.clear.bind(this),empty:()=>{}}}moveResult(e){this.controller().show();let n=this.acItems.length;this.rowIndex=this.rowIndex+e,this.rowIndex<=0?this.rowIndex=0:this.rowIndex>n-1&&(this.rowIndex=0);for(let s of this.acItems)s.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(e){if(e=e||this.getSelectedDiv(),e){let n=parseInt(e.getAttribute("data-index"));this.resultClicked=!0;let r=this.results[n],s=this.categories[r.category]??{};s.action=s.action??this.setText.bind(this),s.newTab&&(this.tabWindow=fe("about:blank"));let o={...r,search:this.input.value};e.classList.add("ac-active"),setTimeout(()=>{this.controller().hide("result-selected"),o.action?o.action(o):(s.action(o),s.newTab&&(o.url?this.tabWindow.location.href=o.url:this.tabWindow.close()));var i=new Event("change",{bubbles:!0});this.input.dispatchEvent(i),this.controller().clear("result-selected");let c=new Event("result-selected");c.detail=o,this.input.dispatchEvent(c)},0)}}setText(e){let n=!1;this.input?(this.input.value=e.text,n=!0):this.container?.autoCompleteInput?(this.container.autoCompleteInput.value=e.text,n=!0):"value"in this.container&&(this.container.value=e.text,n=!0),n&&this.input&&this.input.dispatchEvent(new Event("input",{bubbles:!0})),this.controller().hide("settext")}resultClick(e){this.selectResult(e.target.closest(`.${B.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 e=this.getViewBounds();this.resultsDiv.style.position="absolute",e.rect.width>100&&(this.resultsDiv.style.width=`${e.rect.width}px`),this.settings.direction=this.settings.direction??e.suggestedDirection,this.resultsDiv.setAttribute("data-direction",this.settings.direction),this.settings.direction==="up"?(this.resultsDiv.style.top="unset",this.resultsDiv.style.bottom=`${e.rect.height+20}px`,this.rowIndex=this.acItems.length):(this.resultsDiv.style.bottom="unset",this.resultsDiv.style.top=`${e.rect.height}px`,this.rowIndex=-1),this.resultsDiv.style.maxWidth="unset",this.resultsDiv.classList.toggle("ac-active",!0)}}getViewBounds(){let e=this.input.getBoundingClientRect();return{rect:e,suggestedDirection:e.top+e.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(e){this.cacheTmr&&clearTimeout(this.cacheTmr);let n={search:e.target.value,categories:this.categories};this.container.classList.add("search-running"),this.getItems(n,e).then(r=>{this.controller().clear("new-results"),this.resultsHandler(r,n),this.container.classList.remove("search-running")})}keyDownHandler(e){switch(e.key){case"Enter":e.stopPropagation(),e.preventDefault();break;case"ArrowDown":_(this.moveResult(1));break;case"ArrowUp":_(this.moveResult(-1));break}}keyUpHandler(e){switch(e.key){case"Escape":this.controller().hide("escape");break;case"Enter":this.getSelectedDiv()&&(this.container.preventEnter=!0,e.stopPropagation(),e.preventDefault(),this.selectResult(),setTimeout(()=>{this.container.preventEnter=!1},10));break;default:break}}focusHandler(e){this.controller().clear("focus");let n=e.target.value;this.suggest(n,e)}suggest(e,n){this.input.focus();let r={suggest:!0,search:e||"",categories:this.categories};this.getItems(r,n).then(s=>{this.input.dispatchEvent(new CustomEvent("show-results",{detail:{results:s}})),this.resultsHandler(s,r)})}sort(e,n){return e.sort((r,s)=>{let o=n.categories[r.category],i=n.categories[s.category],c=typeof o.sortIndex=="function"?o.sortIndex(n):o.sortIndex??0;return(typeof i.sortIndex=="function"?i.sortIndex(n):i.sortIndex??0)>c?1:-1})}resultsHandler(e,n){this.results=e,this.rowIndex=-1;let r=0,s=(o,i)=>`
3
- <div title="${i.tooltip||""}" data-index="${r}" class="${`${B.item} cat-${i.category} ${i.class??""}`.trim()}"${i.style?` style="${i.style}"`:""}>
1
+ var qe=Object.defineProperty;var Ne=(t,e)=>()=>(t&&(e=t(t=0)),e);var he=(t,e)=>{for(var n in e)qe(t,n,{get:e[n],enumerable:!0})};var De={};he(De,{AutoDefiner:()=>oe});async function ot(...t){let e={};t.length&&typeof t[t.length-1]=="object"&&(e=t.pop()||{});let n=t,{baseURL:r,mapper:s=d=>`${d}.js`,onError:o=(d,a)=>console.error(`[defineWebComponents] ${d}:`,a)}=e,i=r?new URL(r,typeof location<"u"?location.href:import.meta.url):new URL("./",import.meta.url),c=d=>d.toLowerCase().replace(/(^|-)([a-z])/g,(a,l,h)=>h.toUpperCase()),u=async d=>{try{if(customElements.get(d))return{tag:d,status:"already-defined"};let a=s(d),h=await import(a instanceof URL?a.href:new URL(a,i).href),y=h?.default??h?.[c(d)];if(!y){if(customElements.get(d))return{tag:d,status:"self-defined"};throw new Error(`No export found for ${d}. Expected default export or named export "${c(d)}".`)}return customElements.get(d)?{tag:d,status:"race-already-defined"}:(customElements.define(d,y),{tag:d,status:"defined"})}catch(a){throw o(d,a),a}};return Promise.all(n.map(u))}var oe,ke=Ne(()=>{oe=class{constructor(e={}){let{baseURL:n,mapper:r,onError:s,predicate:o=()=>!0,attributeModule:i="data-module",root:c=document,scanExisting:u=!0,debounceMs:d=16,observeShadows:a=!0,enhancers:l=[],patchAttachShadow:h=!0}=e,y=new Set,A=new Set,x=new Set,w=new Map,L=new WeakMap,R=new WeakMap,E=0,P=!1,_=null,g=p=>{if(!p||!l.length)return;let m=R.get(p);m||(m=new Set,R.set(p,m));for(let f of l)if(!(!f.selector||!f.run)&&!m.has(f.selector))try{p.matches&&p.matches(f.selector)&&(f.run(p),m.add(f.selector))}catch(T){console.warn(`[AutoDefiner] Error applying enhancer for selector "${f.selector}":`,T)}},S=(p,m)=>{if(!P&&!(!p||!p.includes("-"))&&!customElements.get(p)&&!A.has(p)&&!x.has(p)){if(m&&m.getAttribute){let f=m.getAttribute(i);f&&!w.has(p)&&w.set(p,f)}y.add(p),C()}},C=()=>{E||(E=setTimeout(M,d))},v=p=>{if(p){if(p.nodeType===1){let m=p,f=m.tagName?.toLowerCase();f&&f.includes("-")&&!customElements.get(f)&&o(f,m)&&S(f,m),g(m),a&&m.shadowRoot&&D(m.shadowRoot)}p.querySelectorAll&&p.querySelectorAll("*").forEach(m=>{let f=m.tagName?.toLowerCase();f&&f.includes("-")&&!customElements.get(f)&&o(f,m)&&S(f,m),g(m),a&&m.shadowRoot&&D(m.shadowRoot)})}},D=p=>{if(!p||L.has(p))return;v(p);let m=new MutationObserver(f=>{for(let T of f)T.addedNodes?.forEach(I=>{v(I)}),T.type==="attributes"&&T.target&&v(T.target)});m.observe(p,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[i,...l.map(f=>f.selector).filter(f=>f.startsWith("data-"))]}),L.set(p,m)};async function M(){if(clearTimeout(E),E=0,!y.size)return;let p=Array.from(y);y.clear(),p.forEach(m=>A.add(m));try{let m=f=>w.get(f)??(r?r(f):`${f}.js`);await ot(...p,{baseURL:n,mapper:m,onError:(f,T)=>{x.add(f),s?.(f,T)}})}catch{}finally{p.forEach(m=>A.delete(m))}}let k=c===document?document.documentElement:c,j=new MutationObserver(p=>{for(let m of p)m.addedNodes?.forEach(f=>{v(f)}),m.type==="attributes"&&m.target&&v(m.target)});if(j.observe(k,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[i,...l.map(p=>p.selector).filter(p=>p.startsWith("data-"))]}),a&&h&&Element.prototype.attachShadow){let p=Element.prototype.attachShadow;Element.prototype.attachShadow=function(f){let T=p.call(this,f);if(f&&f.mode==="open"){D(T);let I=this.tagName?.toLowerCase();I&&I.includes("-")&&!customElements.get(I)&&S(I,this)}return T},_=()=>Element.prototype.attachShadow=p}return u&&v(k),{stop(){P=!0,j.disconnect(),_&&_(),E&&(clearTimeout(E),E=0),L.forEach(p=>p.disconnect())},flush:M}}static async define(...e){let n={};e.length&&typeof e[e.length-1]=="object"&&(n=e.pop()||{});let r=e,{baseURL:s,mapper:o=a=>`${a}.js`,onError:i=(a,l)=>console.error(`[defineWebComponents] ${a}:`,l)}=n,c=s?new URL(s,typeof location<"u"?location.href:import.meta.url):new URL("./",import.meta.url),u=a=>a.toLowerCase().replace(/(^|-)([a-z])/g,(l,h,y)=>y.toUpperCase()),d=async a=>{try{if(customElements.get(a))return{tag:a,status:"already-defined"};let l=o(a),y=await import(l instanceof URL?l.href:new URL(l,c).href),A=y?.default??y?.[u(a)];if(!A){if(customElements.get(a))return{tag:a,status:"self-defined"};throw new Error(`No export found for ${a}. Expected default export or named export "${u(a)}".`)}return customElements.get(a)?{tag:a,status:"race-already-defined"}:(customElements.define(a,A),{tag:a,status:"defined"})}catch(l){throw i(a,l),l}};return Promise.all(r.map(d))}}});function fe(t){return new DOMParser().parseFromString(t,"text/html").body.childNodes}function me(t,e=100){let n;return function(...s){let o=()=>{clearTimeout(n),t(...s)};clearTimeout(n),n=setTimeout(o,e)}}function W(t){setTimeout(t,0)}function ye(t){try{if(typeof t!="string"||t.indexOf(`
2
+ `)!==-1||t.indexOf(" ")!==-1||t.startsWith("#/"))return!1;let e=new URL(t,window.location.origin);return e.protocol==="http:"||e.protocol==="https:"}catch{return!1}}function ge(t,e,n){let r=window.screen.width/2-e/2,s=window.screen.height/2-n/2;return window.open(t,"",`toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes, width=${e}, height=${n}, top=${s}, left=${r}`)}var J={result:"ac-suggestion",item:"ac-itm"},B=class t extends EventTarget{constructor(e,n,r){super(),this.settings={emptyResultsText:"",...r},this.container=e,this.input=n,this.input.setAttribute("autocomplete","off"),this.categories=r.categories||{},this.caches=new Map,W(this.attach.bind(this))}static connect(e,n){let r=e.target;if(!r._autoComplete){if(!n?.categories)throw Error("Missing autocomplete settings");r._autoComplete=new t(r.parentNode,r,n),e.type==="focus"&&setTimeout(()=>{r._autoComplete.focusHandler(e)},100)}return r._autoComplete}on(e,n){return this.input.addEventListener(e,n),this}attach(){this.resultsDiv=document.createElement("div"),this.resultsDiv.title="",this.resultsDiv.classList.add(J.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 e=getComputedStyle(this.input);this.container.style.setProperty("--ac-bg-default",e.backgroundColor),this.container.style.setProperty("--ac-color-default",e.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",me(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 e=this.internalController();return typeof this.settings.controller=="function"&&(e=this.settings.controller(this)??e),e}internalController(){return{show:this.show.bind(this),hide:this.hide.bind(this),clear:this.clear.bind(this),empty:()=>{}}}moveResult(e){this.controller().show();let n=this.acItems.length;this.rowIndex=this.rowIndex+e,this.rowIndex<=0?this.rowIndex=0:this.rowIndex>n-1&&(this.rowIndex=0);for(let s of this.acItems)s.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(e){if(e=e||this.getSelectedDiv(),e){let n=parseInt(e.getAttribute("data-index"));this.resultClicked=!0;let r=this.results[n],s=this.categories[r.category]??{};s.action=s.action??this.setText.bind(this),s.newTab&&(this.tabWindow=ge("about:blank"));let o={...r,search:this.input.value};e.classList.add("ac-active"),setTimeout(()=>{this.controller().hide("result-selected"),o.action?o.action(o):(s.action(o),s.newTab&&(o.url?this.tabWindow.location.href=o.url:this.tabWindow.close()));var i=new Event("change",{bubbles:!0});this.input.dispatchEvent(i),this.controller().clear("result-selected");let c=new Event("result-selected");c.detail=o,this.input.dispatchEvent(c)},0)}}setText(e){let n=!1;this.input?(this.input.value=e.text,n=!0):this.container?.autoCompleteInput?(this.container.autoCompleteInput.value=e.text,n=!0):"value"in this.container&&(this.container.value=e.text,n=!0),n&&this.input&&this.input.dispatchEvent(new Event("input",{bubbles:!0})),this.controller().hide("settext")}resultClick(e){this.selectResult(e.target.closest(`.${J.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 e=this.getViewBounds();this.resultsDiv.style.position="absolute",e.rect.width>100&&(this.resultsDiv.style.width=`${e.rect.width}px`),this.settings.direction=this.settings.direction??e.suggestedDirection,this.resultsDiv.setAttribute("data-direction",this.settings.direction),this.settings.direction==="up"?(this.resultsDiv.style.top="unset",this.resultsDiv.style.bottom=`${e.rect.height+20}px`,this.rowIndex=this.acItems.length):(this.resultsDiv.style.bottom="unset",this.resultsDiv.style.top=`${e.rect.height}px`,this.rowIndex=-1),this.resultsDiv.style.maxWidth="unset",this.resultsDiv.classList.toggle("ac-active",!0)}}getViewBounds(){let e=this.input.getBoundingClientRect();return{rect:e,suggestedDirection:e.top+e.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(e){this.cacheTmr&&clearTimeout(this.cacheTmr);let n={search:e.target.value,categories:this.categories};this.container.classList.add("search-running"),this.getItems(n,e).then(r=>{this.controller().clear("new-results"),this.resultsHandler(r,n),this.container.classList.remove("search-running")})}keyDownHandler(e){switch(e.key){case"Enter":e.stopPropagation(),e.preventDefault();break;case"ArrowDown":W(this.moveResult(1));break;case"ArrowUp":W(this.moveResult(-1));break}}keyUpHandler(e){switch(e.key){case"Escape":this.controller().hide("escape");break;case"Enter":this.getSelectedDiv()&&(this.container.preventEnter=!0,e.stopPropagation(),e.preventDefault(),this.selectResult(),setTimeout(()=>{this.container.preventEnter=!1},10));break;default:break}}focusHandler(e){this.controller().clear("focus");let n=e.target.value;this.suggest(n,e)}suggest(e,n){this.input.focus();let r={suggest:!0,search:e||"",categories:this.categories};this.getItems(r,n).then(s=>{this.input.dispatchEvent(new CustomEvent("show-results",{detail:{results:s}})),this.resultsHandler(s,r)})}sort(e,n){return e.sort((r,s)=>{let o=n.categories[r.category],i=n.categories[s.category],c=typeof o.sortIndex=="function"?o.sortIndex(n):o.sortIndex??0;return(typeof i.sortIndex=="function"?i.sortIndex(n):i.sortIndex??0)>c?1:-1})}resultsHandler(e,n){this.results=e,this.rowIndex=-1;let r=0,s=(o,i)=>`
3
+ <div title="${i.tooltip||""}" data-index="${r}" class="${`${J.item} cat-${i.category} ${i.class??""}`.trim()}"${i.style?` style="${i.style}"`:""}>
4
4
  ${this.handleImageOrIcon(i)}
5
5
  <span class="text">${this.formatResultItem(i,n,o)}</span>
6
6
  ${this.settings.hideCategory?"":`<span class="category">${i.category||""}</span>`}
7
- </div>`;e.forEach(o=>{let i=n.categories[o.category]||{};o.element?this.resultsDiv.appendChild(o.element):(o=typeof o=="string"?{text:o}:o,this.resultsDiv.appendChild(ue(s(i,o))[0])),r++}),e.length?(this.acItems=this.resultsDiv.querySelectorAll(".ac-itm"),this.controller().show()):n.search.length&&this.controller().empty()}handleImageOrIcon(e){return e.image?`<img src="${e.image}"/>`:typeof this.settings.iconHandler=="function"?this.settings.iconHandler(e):`<svg-icon icon="${e.icon}"></svg-icon>`}formatResultItem(e,n,r){let s=typeof e=="string"?{text:e}:e,o=s.text;return n.search&&(o=o.replace("%search%",n.search),s.description=s.description?.replace("%search%",n.search)),o=this.highlight(o,n.search),s.description&&(o=`<div>${o}</div><small>${s.description}</small>`),r.format&&(o=r.format({item:s,result:o,options:n})),o}highlight(e,n){var r=new RegExp("("+n+")","gi");return e.replace(r,'<span class="txt-hl">$1</span>')}async getItems(e,n){this.aborter&&this.aborter.abort();let r=this.caches.get(e.search);if(r)return r;let s=this.settings.map,o=u=>(typeof u=="string"&&(u={text:u}),u),i=u=>s?u.map(d=>({text:d[s]})):u.map(d=>o(d)),c=u=>(this.settings.max&&this.settings.max>0&&(u.length=this.settings.max),u);return this.aborter=new AbortController,this.aborterSignal=this.aborter.signal,new Promise(u=>{let d=l=>{l=this.sort(l,e),this.settings.cache!==!1&&this.caches.set(e.search,l),u(l)};if(he(this.items)){if(this.settings.minlength>0&&(!e.search||e.search.length<this.settings.minlength)){d([]);return}let l=this.formatSearch(this.items,e);fetch(l).then(a=>{if(a.status===200){a.json().then(p=>{p=i(p),d(c(p.filter(h=>this.isMatch(e,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(c(i(this.items)))}else if(typeof this.items=="function")e.control=this.container,Promise.resolve(this.items(e,n)).then(a=>{a=a.map(p=>o(p)),a=i(a),d(a)});else return d(Promise.resolve(this.items.apply(this,e)))})}async items(e){let n=[];e.results=[],e.signal=this.aborterSignal;for(var r in e.categories){let s=e.categories[r];if(s.trigger=s.trigger??(()=>!0),e.results=n,s.trigger(e)){let o=[];try{o=await s.getItems(e)}catch(i){console.warn(`Error loading items for omniBox category '${r}'.`,i)}n=n.concat(o.map(i=>(i.category=r,i)))}}return n}formatSearch(e,n){return e.indexOf("%search%")?e.replace("%search%",n.search||""):e+"?"+this.createQueryParam(n)}createQueryParam(e){let n=e.suggest?"&suggest=true":"";return`q=${e.text}${n}`}isMatch(e,n){return n.text?.indexOf("%search%")>=0?!0:e.search?n.text?.toLowerCase().indexOf(e.search.toLowerCase())>=0:e.suggest}static textFilter(e,n){return function(r){if(!e.search)return!0;if(r.hidden)return!1;let o=(n?r[n]:r).match(new RegExp(e.search,"gi"));if(o)return o;if(r.config?.tags)return r.config.tags.some(i=>i.match(new RegExp(e.search,"gi")))}}};var z=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(e={}){this._mode="static",this._staticPaths={...this._staticPaths,...e}}async getStylesheet(e){if(this._mode==="live")return null;try{return(await import(this._staticPaths[e]))[e]}catch(n){console.error(`[PDS Registry] Failed to load static ${e}:`,n),console.error(`[PDS Registry] Looking for: ${this._staticPaths[e]}`),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 "+e+" */"),r}}get mode(){return this._mode}get isLive(){return this._mode==="live"}},T=new z;async function me(t,e=[],n=null){try{let r=n?.primitivesStylesheet?n.primitivesStylesheet:await T.getStylesheet("primitives");t.adoptedStyleSheets=[r,...e]}catch(r){let s=t.host?.tagName?.toLowerCase()||"unknown";console.error(`[PDS Adopter] <${s}> failed to adopt primitives:`,r),t.adoptedStyleSheets=e}}async function ye(t,e=["primitives"],n=[],r=null){try{let o=(await Promise.all(e.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 T.getStylesheet(i)}))).filter(i=>i!==null);t.adoptedStyleSheets=[...o,...n]}catch(s){let o=t.host?.tagName?.toLowerCase()||"unknown";console.error(`[PDS Adopter] <${o}> failed to adopt layers:`,s),t.adoptedStyleSheets=n}}function ge(t){let e=new CSSStyleSheet;return e.replaceSync(t),e}var be={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 we={mode:"live",liveEdit:!0,preset:"default",autoDefine:{predefine:["pds-icon","pds-drawer","pds-toaster","pds-form"]},log(t,e,...n){console[t](e,...n)}};var K={};de(K,{deepMerge:()=>ve,fragmentFromTemplateLike:()=>V,isObject:()=>U,parseHTML:()=>G});function U(t){return t&&typeof t=="object"&&!Array.isArray(t)}function ve(t,e){let n={...t};return U(t)&&U(e)&&Object.keys(e).forEach(r=>{U(e[r])?r in t?n[r]=ve(t[r],e[r]):Object.assign(n,{[r]:e[r]}):Object.assign(n,{[r]:e[r]})}),n}function V(t){let e=Array.isArray(t?.strings)?t.strings:[],n=Array.isArray(t?.values)?t.values:[],r=new Set,s=[],o=/(\s)(\.[\w-]+)=\s*$/;for(let a=0;a<e.length;a+=1){let p=e[a]??"",h=p.match(o);if(h&&a<n.length){let v=h[2].slice(1),f=`pds-val-${a}`;p=p.replace(o,`$1data-pds-prop="${v}:${f}"`),r.add(a)}s.push(p),a<n.length&&!r.has(a)&&s.push(`<!--pds-val-${a}-->`)}let i=document.createElement("template");i.innerHTML=s.join("");let c=(a,p)=>{let h=a.parentNode;if(!h)return;if(p==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(f=>w(f));return}h.insertBefore(document.createTextNode(String(v)),a)}};w(p),h.removeChild(a)},u=document.createTreeWalker(i.content,NodeFilter.SHOW_COMMENT),d=[];for(;u.nextNode();){let a=u.currentNode;a?.nodeValue?.startsWith("pds-val-")&&d.push(a)}return d.forEach(a=>{let p=Number(a.nodeValue.replace("pds-val-",""));c(a,n[p])}),i.content.querySelectorAll("*").forEach(a=>{let p=a.getAttribute("data-pds-prop");if(!p)return;let[h,w]=p.split(":"),v=Number(String(w).replace("pds-val-",""));h&&Number.isInteger(v)&&(a[h]=n[v]),a.removeAttribute("data-pds-prop")}),i.content}function G(t){return new DOMParser().parseFromString(t,"text/html").body.childNodes}function Q(t,e){if(e==null)return;if(typeof e=="object"&&Array.isArray(e.strings)&&Array.isArray(e.values)){t.appendChild(V(e));return}if(e instanceof Node){t.appendChild(e);return}if(Array.isArray(e)){e.forEach(r=>Q(t,r));return}let n=typeof e=="string"?e:String(e);t.appendChild(document.createTextNode(n))}function Ue(){let t=navigator.userAgent,e=/Safari/i.test(t),n=/(Chrome|Chromium|CriOS|FxiOS|EdgiOS|OPiOS|Opera)/i.test(t);return e&&!n}function qe(t){if(window.matchMedia?.("(prefers-reduced-motion: reduce)").matches)return;let e=window.matchMedia?.("(max-width: 639px)").matches,n=t.classList.contains("dialog-no-scale-animation")?"pds-dialog-fade-enter":e?"pds-dialog-enter-mobile":"pds-dialog-enter";t.style.animation="none",t.offsetWidth,t.style.animation=`${n} var(--transition-normal) ease`,t.addEventListener("animationend",()=>{t.style.animation=""},{once:!0})}async function xe(t,e={}){return e={...{title:"Confirm",type:"confirm",buttons:{ok:{name:"OK",primary:!0},cancel:{name:"Cancel",cancel:!0}}},...e},new Promise(r=>{let s=document.createElement("dialog");Ue()&&s.classList.add("dialog-no-scale-animation"),we.options?.liquidGlassEffects&&s.classList.add("liquid-glass"),e.size&&s.classList.add(`dialog-${e.size}`),e.type&&s.classList.add(`dialog-${e.type}`),e.class&&(Array.isArray(e.class)?s.classList.add(...e.class):s.classList.add(e.class)),e.maxHeight&&s.style.setProperty("--dialog-max-height",e.maxHeight);let o=Object.entries(e.buttons).map(([c,u])=>{let d=u.primary?"btn-primary btn-sm":"btn-outline btn-sm";return`<button type="${u.cancel?"button":"submit"}" class="${d}" value="${c}">${u.name}</button>`});if(e.useForm){let c=document.createElement("div");Q(c,t);let u=c.querySelector("form");if(u){s.innerHTML=`
7
+ </div>`;e.forEach(o=>{let i=n.categories[o.category]||{};o.element?this.resultsDiv.appendChild(o.element):(o=typeof o=="string"?{text:o}:o,this.resultsDiv.appendChild(fe(s(i,o))[0])),r++}),e.length?(this.acItems=this.resultsDiv.querySelectorAll(".ac-itm"),this.controller().show()):n.search.length&&this.controller().empty()}handleImageOrIcon(e){return e.image?`<img src="${e.image}"/>`:typeof this.settings.iconHandler=="function"?this.settings.iconHandler(e):`<svg-icon icon="${e.icon}"></svg-icon>`}formatResultItem(e,n,r){let s=typeof e=="string"?{text:e}:e,o=s.text;return n.search&&(o=o.replace("%search%",n.search),s.description=s.description?.replace("%search%",n.search)),o=this.highlight(o,n.search),s.description&&(o=`<div>${o}</div><small>${s.description}</small>`),r.format&&(o=r.format({item:s,result:o,options:n})),o}highlight(e,n){var r=new RegExp("("+n+")","gi");return e.replace(r,'<span class="txt-hl">$1</span>')}async getItems(e,n){this.aborter&&this.aborter.abort();let r=this.caches.get(e.search);if(r)return r;let s=this.settings.map,o=u=>(typeof u=="string"&&(u={text:u}),u),i=u=>s?u.map(d=>({text:d[s]})):u.map(d=>o(d)),c=u=>(this.settings.max&&this.settings.max>0&&(u.length=this.settings.max),u);return this.aborter=new AbortController,this.aborterSignal=this.aborter.signal,new Promise(u=>{let d=a=>{a=this.sort(a,e),this.settings.cache!==!1&&this.caches.set(e.search,a),u(a)};if(ye(this.items)){if(this.settings.minlength>0&&(!e.search||e.search.length<this.settings.minlength)){d([]);return}let a=this.formatSearch(this.items,e);fetch(a).then(l=>{if(l.status===200){l.json().then(h=>{h=i(h),d(c(h.filter(y=>this.isMatch(e,y))))});return}throw Error(`HTTP error ${l.status} - ${a}`)})}else if(Array.isArray(this.items)){let a=!0;this.items=this.items.map(l=>typeof l=="string"?{text:l}:(a=!1,l)),a&&this.container.classList.add("simple"),d(c(i(this.items)))}else if(typeof this.items=="function")e.control=this.container,Promise.resolve(this.items(e,n)).then(l=>{l=l.map(h=>o(h)),l=i(l),d(l)});else return d(Promise.resolve(this.items.apply(this,e)))})}async items(e){let n=[];e.results=[],e.signal=this.aborterSignal;for(var r in e.categories){let s=e.categories[r];if(s.trigger=s.trigger??(()=>!0),e.results=n,s.trigger(e)){let o=[];try{o=await s.getItems(e)}catch(i){console.warn(`Error loading items for omniBox category '${r}'.`,i)}n=n.concat(o.map(i=>(i.category=r,i)))}}return n}formatSearch(e,n){return e.indexOf("%search%")?e.replace("%search%",n.search||""):e+"?"+this.createQueryParam(n)}createQueryParam(e){let n=e.suggest?"&suggest=true":"";return`q=${e.text}${n}`}isMatch(e,n){return n.text?.indexOf("%search%")>=0?!0:e.search?n.text?.toLowerCase().indexOf(e.search.toLowerCase())>=0:e.suggest}static textFilter(e,n){return function(r){if(!e.search)return!0;if(r.hidden)return!1;let o=(n?r[n]:r).match(new RegExp(e.search,"gi"));if(o)return o;if(r.config?.tags)return r.config.tags.some(i=>i.match(new RegExp(e.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(e={}){this._mode="static",this._staticPaths={...this._staticPaths,...e}}async getStylesheet(e){if(this._mode==="live")return null;try{return(await import(this._staticPaths[e]))[e]}catch(n){console.error(`[PDS Registry] Failed to load static ${e}:`,n),console.error(`[PDS Registry] Looking for: ${this._staticPaths[e]}`),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 "+e+" */"),r}}get mode(){return this._mode}get isLive(){return this._mode==="live"}},U=new X;async function be(t,e=[],n=null){try{let r=n?.primitivesStylesheet?n.primitivesStylesheet:await U.getStylesheet("primitives");t.adoptedStyleSheets=[r,...e]}catch(r){let s=t.host?.tagName?.toLowerCase()||"unknown";console.error(`[PDS Adopter] <${s}> failed to adopt primitives:`,r),t.adoptedStyleSheets=e}}async function we(t,e=["primitives"],n=[],r=null){try{let o=(await Promise.all(e.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);t.adoptedStyleSheets=[...o,...n]}catch(s){let o=t.host?.tagName?.toLowerCase()||"unknown";console.error(`[PDS Adopter] <${o}> failed to adopt layers:`,s),t.adoptedStyleSheets=n}}function ve(t){let e=new CSSStyleSheet;return e.replaceSync(t),e}var xe={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 Ee={mode:"live",liveEdit:!0,preset:"default",autoDefine:{predefine:["pds-icon","pds-drawer","pds-toaster","pds-form"]},log(t,e,...n){console[t](e,...n)}};var te={};he(te,{deepMerge:()=>Se,fragmentFromTemplateLike:()=>Y,isObject:()=>z,parseHTML:()=>ee});function z(t){return t&&typeof t=="object"&&!Array.isArray(t)}function Se(t,e){let n={...t};return z(t)&&z(e)&&Object.keys(e).forEach(r=>{z(e[r])?r in t?n[r]=Se(t[r],e[r]):Object.assign(n,{[r]:e[r]}):Object.assign(n,{[r]:e[r]})}),n}function Y(t){let e=Array.isArray(t?.strings)?t.strings:[],n=Array.isArray(t?.values)?t.values:[],r=new Set,s=[],o=/(\s)(\.[\w-]+)=\s*$/;for(let l=0;l<e.length;l+=1){let h=e[l]??"",y=h.match(o);if(y&&l<n.length){let x=y[2].slice(1),w=`pds-val-${l}`;h=h.replace(o,`$1data-pds-prop="${x}:${w}"`),r.add(l)}s.push(h),l<n.length&&!r.has(l)&&s.push(`<!--pds-val-${l}-->`)}let i=document.createElement("template");i.innerHTML=s.join("");let c=(l,h)=>{let y=l.parentNode;if(!y)return;if(h==null){y.removeChild(l);return}let A=x=>{if(x!=null){if(x instanceof Node){y.insertBefore(x,l);return}if(Array.isArray(x)){x.forEach(w=>A(w));return}y.insertBefore(document.createTextNode(String(x)),l)}};A(h),y.removeChild(l)},u=document.createTreeWalker(i.content,NodeFilter.SHOW_COMMENT),d=[];for(;u.nextNode();){let l=u.currentNode;l?.nodeValue?.startsWith("pds-val-")&&d.push(l)}return d.forEach(l=>{let h=Number(l.nodeValue.replace("pds-val-",""));c(l,n[h])}),i.content.querySelectorAll("*").forEach(l=>{let h=l.getAttribute("data-pds-prop");if(!h)return;let[y,A]=h.split(":"),x=Number(String(A).replace("pds-val-",""));y&&Number.isInteger(x)&&(l[y]=n[x]),l.removeAttribute("data-pds-prop")}),i.content}function ee(t){return new DOMParser().parseFromString(t,"text/html").body.childNodes}function ne(t,e){if(e==null)return;if(typeof e=="object"&&Array.isArray(e.strings)&&Array.isArray(e.values)){t.appendChild(Y(e));return}if(e instanceof Node){t.appendChild(e);return}if(Array.isArray(e)){e.forEach(r=>ne(t,r));return}let n=typeof e=="string"?e:String(e);t.appendChild(document.createTextNode(n))}function He(){let t=navigator.userAgent,e=/Safari/i.test(t),n=/(Chrome|Chromium|CriOS|FxiOS|EdgiOS|OPiOS|Opera)/i.test(t);return e&&!n}function je(t){if(window.matchMedia?.("(prefers-reduced-motion: reduce)").matches)return;let e=window.matchMedia?.("(max-width: 639px)").matches,n=t.classList.contains("dialog-no-scale-animation")?"pds-dialog-fade-enter":e?"pds-dialog-enter-mobile":"pds-dialog-enter";t.style.animation="none",t.offsetWidth,t.style.animation=`${n} var(--transition-normal) ease`,t.addEventListener("animationend",()=>{t.style.animation=""},{once:!0})}async function Ae(t,e={}){return e={...{title:"Confirm",type:"confirm",buttons:{ok:{name:"OK",primary:!0},cancel:{name:"Cancel",cancel:!0}}},...e},new Promise(r=>{let s=document.createElement("dialog");He()&&s.classList.add("dialog-no-scale-animation"),Ee.options?.liquidGlassEffects&&s.classList.add("liquid-glass"),e.size&&s.classList.add(`dialog-${e.size}`),e.type&&s.classList.add(`dialog-${e.type}`),e.class&&(Array.isArray(e.class)?s.classList.add(...e.class):s.classList.add(e.class)),e.maxHeight&&s.style.setProperty("--dialog-max-height",e.maxHeight);let o=Object.entries(e.buttons).map(([c,u])=>{let d=u.primary?"btn-primary btn-sm":"btn-outline btn-sm";return`<button type="${u.cancel?"button":"submit"}" class="${d}" value="${c}">${u.name}</button>`});if(e.useForm){let c=document.createElement("div");ne(c,t);let u=c.querySelector("form");if(u){s.innerHTML=`
8
8
  <header>
9
9
  <h2>${e.title}</h2>
10
10
  </header>
11
- `;let d=document.createElement("article");for(d.className="dialog-body";u.firstChild;)d.appendChild(u.firstChild);u.appendChild(d);let l=document.createElement("footer");l.innerHTML=o.join(""),u.appendChild(l),s.appendChild(u)}else s.innerHTML=`
11
+ `;let d=document.createElement("article");for(d.className="dialog-body";u.firstChild;)d.appendChild(u.firstChild);u.appendChild(d);let a=document.createElement("footer");a.innerHTML=o.join(""),u.appendChild(a),s.appendChild(u)}else s.innerHTML=`
12
12
  <header>
13
13
  <h2>${e.title}</h2>
14
14
  </header>
@@ -28,5 +28,5 @@ var _e=Object.defineProperty;var Oe=(t,e)=>()=>(t&&(e=t(t=0)),e);var de=(t,e)=>{
28
28
  ${o.join("")}
29
29
  </footer>
30
30
  </form>
31
- `;let c=s.querySelector("#msg-container");Q(c,t)}s.addEventListener("click",c=>{c.target.closest('button[value="cancel"]')&&(s.close(),r(!1))});let i=()=>{let c=s.querySelector("form");c?c.addEventListener("submit",u=>{u.preventDefault();let d;e.useForm&&u.submitter.value==="ok"?(console.log("Found form:",c),console.log("Form elements:",c?Array.from(c.elements):"no form"),d=new FormData(c),console.log("FormData entries:",Array.from(d.entries()))):d=u.submitter.value==="ok",s.close(),r(d)}):requestAnimationFrame(i)};i(),s.addEventListener("close",()=>{setTimeout(()=>s.remove(),200)}),document.body.appendChild(s),typeof e.rendered=="function"&&e.rendered(s),s.showModal(),requestAnimationFrame(()=>qe(s))})}async function Ne(){let t=document.querySelector("pds-toaster");return t||(t=document.createElement("pds-toaster"),document.body.appendChild(t),await customElements.whenDefined("pds-toaster")),t}async function A(t,e={}){return(await Ne()).toast(t,e)}A.success=async function(t,e={}){return A(t,{...e,type:"success"})};A.error=async function(t,e={}){return A(t,{...e,type:"error"})};A.warning=async function(t,e={}){return A(t,{...e,type:"warning"})};A.info=async function(t,e={}){return A(t,{...e,type:"information"})};var je=[{selector:".accordion"},{selector:"nav[data-dropdown]"},{selector:"label[data-toggle]"},{selector:"label[data-color]"},{selector:'input[type="range"]'},{selector:"form[data-required]"},{selector:"fieldset[role=group][data-open]"},{selector:"[data-clip]"},{selector:"button, a[class*='btn-']"}];function Fe(t){t.dataset.enhancedAccordion||(t.dataset.enhancedAccordion="true",t.addEventListener("toggle",e=>{e.target.open&&e.target.parentElement===t&&t.querySelectorAll(":scope > details[open]").forEach(n=>{n!==e.target&&(n.open=!1)})},!0))}function He(t){if(t.dataset.enhancedDropdown)return;t.dataset.enhancedDropdown="true";let e=t.lastElementChild;if(!e)return;let n=t.querySelector("[data-dropdown-toggle]")||t.querySelector("button");n&&!n.hasAttribute("type")&&n.setAttribute("type","button"),e.id||(e.id=`dropdown-${Math.random().toString(36).slice(2,9)}`),e.tagName?.toLowerCase()==="menu"&&!e.hasAttribute("role")&&e.setAttribute("role","menu"),e.hasAttribute("aria-hidden")||e.setAttribute("aria-hidden","true"),n&&(n.setAttribute("aria-haspopup","true"),n.setAttribute("aria-controls",e.id),n.setAttribute("aria-expanded","false"));let s=()=>{let a=e.getAttribute("style");e.style.visibility="hidden",e.style.display="inline-block",e.style.pointerEvents="none";let p=e.getBoundingClientRect(),h=Math.max(e.offsetWidth||0,e.scrollWidth||0,p.width||0,1),w=Math.max(e.offsetHeight||0,e.scrollHeight||0,p.height||0,1);return a===null?e.removeAttribute("style"):e.setAttribute("style",a),{width:h,height:w}},o=()=>{let a=(t.getAttribute("data-direction")||t.getAttribute("data-dropdown-direction")||t.getAttribute("data-mode")||"auto").toLowerCase();if(a==="up"||a==="down")return a;let p=(n||t).getBoundingClientRect(),{height:h}=s(),w=Math.max(0,window.innerHeight-p.bottom),v=Math.max(0,p.top),f=w>=h,x=v>=h;return f&&!x?"down":x&&!f?"up":f&&x?"down":v>w?"up":"down"},i=()=>{let a=(t.getAttribute("data-align")||t.getAttribute("data-dropdown-align")||"auto").toLowerCase();if(a==="left"||a==="right"||a==="start"||a==="end")return a==="start"?"left":a==="end"?"right":a;let p=(n||t).getBoundingClientRect(),{width:h}=s(),w=Math.max(0,window.innerWidth-p.left),v=Math.max(0,p.right),f=w>=h,x=v>=h;return f&&!x?"left":x&&!f?"right":f&&x?"left":v>w?"right":"left"},c=null,u=()=>{t.dataset.dropdownDirection=o(),t.dataset.dropdownAlign=i(),e.setAttribute("aria-hidden","false"),n?.setAttribute("aria-expanded","true"),c||(c=a=>{(a.composedPath?a.composedPath():[a.target]).some(w=>w===t)||d()},setTimeout(()=>{document.addEventListener("click",c)},0))},d=()=>{e.setAttribute("aria-hidden","true"),n?.setAttribute("aria-expanded","false"),c&&(document.removeEventListener("click",c),c=null)},l=()=>{e.getAttribute("aria-hidden")==="false"?d():u()};n?.addEventListener("click",a=>{a.preventDefault(),a.stopPropagation(),l()}),t.addEventListener("keydown",a=>{a.key==="Escape"&&(d(),n?.focus())}),t.addEventListener("focusout",a=>{a.relatedTarget&&((a.composedPath?a.composedPath():[a.relatedTarget]).some(w=>w===t)||d())})}function We(t){if(t.dataset.enhancedToggle)return;t.dataset.enhancedToggle="true";let e=t.querySelector('input[type="checkbox"]');if(!e)return;t.hasAttribute("tabindex")||t.setAttribute("tabindex","0"),t.setAttribute("role","switch"),t.setAttribute("aria-checked",e.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),t.insertBefore(n,e.nextSibling);let s=()=>{t.setAttribute("aria-checked",e.checked?"true":"false")},o=()=>{e.disabled||(e.checked=!e.checked,s(),e.dispatchEvent(new Event("change",{bubbles:!0})))};t.addEventListener("click",i=>{i.preventDefault(),o()}),t.addEventListener("keydown",i=>{(i.key===" "||i.key==="Enter")&&(i.preventDefault(),o())}),e.addEventListener("change",s)}function Be(t){if(t.dataset.enhancedColorInput)return;let e=t.querySelector('input[type="color"]');if(!e)return;t.dataset.enhancedColorInput="true";let n=t.querySelector(":scope > .color-control"),r=t.querySelector(":scope > .color-control > .color-swatch"),s=t.querySelector(":scope > .color-control > output");n||(n=document.createElement("span"),n.className="color-control",e.before(n)),r||(r=document.createElement("span"),r.className="color-swatch",n.appendChild(r)),e.parentElement!==r&&r.appendChild(e),s||(s=document.createElement("output"),n.appendChild(s));let o=()=>{if(e.dataset.colorUnset==="1"){s.value="",s.textContent="not set",n.dataset.value="",n.dataset.unset="1",r.dataset.unset="1";return}s.value=e.value,s.textContent=e.value,n.dataset.value=e.value,delete n.dataset.unset,delete r.dataset.unset};o();let i=()=>{e.dataset.colorUnset==="1"&&(e.dataset.colorUnset="0"),o()};e.addEventListener("input",i,{passive:!0}),e.addEventListener("change",i,{passive:!0})}function ze(t){if(t.dataset.enhancedRange)return;let e=i=>{if(t.dataset.enhancedRangeProgrammatic)return;t.dataset.enhancedRangeProgrammatic="1";let c=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(t),"value")||Object.getOwnPropertyDescriptor(HTMLInputElement.prototype,"value");c?.get&&c?.set&&Object.defineProperty(t,"value",{configurable:!0,enumerable:c.enumerable,get(){return c.get.call(this)},set(d){c.set.call(this,d),i()}}),new MutationObserver(d=>{d.some(a=>{let p=a.attributeName;return p==="value"||p==="min"||p==="max"})&&i()}).observe(t,{attributes:!0,attributeFilter:["value","min","max"]})},n=t.closest("label"),r=n?.classList.contains("range-output"),s=t.id||`range-${Math.random().toString(36).substring(2,11)}`,o=`${s}-output`;if(t.id=s,r){let i=n.querySelector("span");if(i&&!i.classList.contains("range-output-wrapper")){let c=document.createElement("span");c.className="range-output-wrapper",c.style.display="flex",c.style.justifyContent="space-between",c.style.alignItems="center";let u=document.createElement("span");u.textContent=i.textContent,c.appendChild(u);let d=document.createElement("output");d.id=o,d.setAttribute("for",s),d.style.color="var(--surface-text-secondary, var(--color-text-secondary))",d.style.fontSize="0.875rem",d.textContent=t.value,c.appendChild(d),i.textContent="",i.appendChild(c);let l=()=>{d.textContent=t.value};t.addEventListener("input",l),t.addEventListener("change",l),e(l),l()}}else{let i=t.closest(".range-container");i||(i=document.createElement("div"),i.className="range-container",t.parentNode?.insertBefore(i,t),i.appendChild(t)),i.style.position="relative";let c=document.createElement("output");c.id=o,c.setAttribute("for",s),c.className="range-bubble",c.setAttribute("aria-live","polite"),i.appendChild(c);let u=()=>{let a=parseFloat(t.min)||0,p=parseFloat(t.max)||100,h=parseFloat(t.value),w=(h-a)/(p-a);c.style.left=`calc(${w*100}% )`,c.textContent=String(h)},d=()=>c.classList.add("visible"),l=()=>c.classList.remove("visible");t.addEventListener("input",u),t.addEventListener("pointerdown",d),t.addEventListener("pointerup",l),t.addEventListener("pointerleave",l),t.addEventListener("focus",d),t.addEventListener("blur",l),t.addEventListener("change",u),e(u),u()}t.dataset.enhancedRange="1"}function Ve(t){if(t.dataset.enhancedRequired)return;t.dataset.enhancedRequired="true";let e=n=>{let r;if(n.closest("[role$=group]")?r=n.closest("[role$=group]").querySelector("legend"):r=n.closest("label"),!r||r.querySelector(".required-asterisk"))return;let s=document.createElement("span");s.classList.add("required-asterisk"),s.textContent="*",s.style.marginLeft="4px";let o=r.querySelector("span, [data-label]");if(o)o.appendChild(s);else{let c=r.querySelector("input, select, textarea");c?r.insertBefore(s,c):r.appendChild(s)}let i=n.closest("form");if(i&&!i.querySelector(".required-legend")){let c=document.createElement("small");c.classList.add("required-legend"),c.textContent="* Required fields",i.insertBefore(c,i.querySelector(".form-actions")||i.lastElementChild)}};t.querySelectorAll("[required]").forEach(n=>{e(n)})}function Ge(t){if(t.dataset.enhancedOpenGroup)return;t.dataset.enhancedOpenGroup="true",t.classList.add("flex","flex-wrap","buttons");let e=document.createElement("input");e.type="text",e.placeholder="Add item...",e.classList.add("input-text","input-sm"),e.style.width="auto";let n=()=>t.querySelector('input[type="radio"], input[type="checkbox"]');t.appendChild(e),e.addEventListener("keydown",r=>{if(r.key==="Enter"||r.key==="Tab"){let s=e.value.trim();if(s){r.preventDefault();let o=n(),i=o?.type==="radio"?"radio":"checkbox",c=`open-group-${Math.random().toString(36).substring(2,11)}`,u=document.createElement("label"),d=document.createElement("span");d.setAttribute("data-label",""),d.textContent=s;let l=document.createElement("input");l.type=i,l.name=o?.name||t.getAttribute("data-name")||"open-group",l.value=s,l.id=c,u.appendChild(d),u.appendChild(l),t.insertBefore(u,e),e.value=""}}else if(r.key==="Backspace"&&e.value===""){r.preventDefault();let s=t.querySelectorAll("label");s.length>0&&s[s.length-1].remove()}})}function Ke(t){if(t.dataset.enhancedClip)return;t.dataset.enhancedClip="true",t.hasAttribute("tabindex")||t.setAttribute("tabindex","0"),t.hasAttribute("role")||t.setAttribute("role","button");let e=()=>{let r=t.getAttribute("data-clip-open")==="true";t.setAttribute("aria-expanded",r?"true":"false")},n=()=>{let r=t.getAttribute("data-clip-open")==="true";t.setAttribute("data-clip-open",r?"false":"true"),e()};t.addEventListener("click",r=>{r.defaultPrevented||n()}),t.addEventListener("keydown",r=>{(r.key===" "||r.key==="Enter")&&(r.preventDefault(),n())}),e()}function Qe(t){if(t.dataset.enhancedBtnWorking)return;t.dataset.enhancedBtnWorking="true";let e=null,n=!1;new MutationObserver(s=>{s.forEach(o=>{if(o.attributeName==="class"){let i=t.classList.contains("btn-working"),c=t.querySelector("pds-icon");if(i)if(c)e||(e=c.getAttribute("icon")),c.setAttribute("icon","circle-notch");else{let u=document.createElement("pds-icon");u.setAttribute("icon","circle-notch"),u.setAttribute("size","sm"),t.insertBefore(u,t.firstChild),n=!0}else o.oldValue?.includes("btn-working")&&c&&(n?(c.remove(),n=!1):e&&(c.setAttribute("icon",e),e=null))}})}).observe(t,{attributes:!0,attributeFilter:["class"],attributeOldValue:!0})}var Ze=new Map([[".accordion",Fe],["nav[data-dropdown]",He],["label[data-toggle]",We],["label[data-color]",Be],['input[type="range"]',ze],["form[data-required]",Ve],["fieldset[role=group][data-open]",Ge],["[data-clip]",Ke],["button, a[class*='btn-']",Qe]]),Z=je.map(t=>({...t,run:Ze.get(t.selector)||(()=>{})}));var Se="pds",Je=/^([a-z][a-z0-9+\-.]*:)?\/\//i,Ee=/^[a-z]:/i;function M(t=""){return t.endsWith("/")?t:`${t}/`}function Xe(t="",e=Se){let n=t.replace(/\/+$/,"");return new RegExp(`(?:^|/)${e}$`,"i").test(n)?n:`${n}/${e}`}function Ye(t){return t.replace(/^\.\/+/,"")}function et(t){return Ee.test(t)?t.replace(Ee,"").replace(/^\/+/,""):t}function tt(t){return t.startsWith("public/")?t.substring(7):t}function J(t,e={}){let n=e.segment||Se,r=e.defaultRoot||`/assets/${n}/`,s=t?.public&&t.public?.root||t?.static&&t.static?.root||null;if(!s||typeof s!="string")return M(r);let o=s.trim();return o?(o=o.replace(/\\/g,"/"),o=Xe(o,n),o=M(o),Je.test(o)?o:(o=Ye(o),o=et(o),o.startsWith("/")||(o=tt(o),o.startsWith("/")||(o=`/${o}`),o=o.replace(/\/+/g,(i,c)=>c===0?i:"/")),M(o))):M(r)}var rt=/^[a-z][a-z0-9+\-.]*:\/\//i,P=(()=>{try{return import.meta.url}catch{return}})(),q=t=>typeof t=="string"&&t.length&&!t.endsWith("/")?`${t}/`:t;function N(t,e={}){if(!t||rt.test(t))return t;let{preferModule:n=!0}=e,r=()=>{if(!P)return null;try{return new URL(t,P).href}catch{return null}},s=()=>{if(typeof window>"u"||!window.location?.origin)return null;try{return new URL(t,window.location.origin).href}catch{return null}};return(n?r()||s():s()||r())||t}var Ce=(()=>{if(P)try{let t=new URL(P);if(/\/public\/assets\/js\//.test(t.pathname))return new URL("../pds/",P).href}catch{return}})(),De=!1;function ke(t){De||typeof document>"u"||(De=!0,t.addEventListener("pds:ready",e=>{let n=e.detail?.mode;n&&document.documentElement.classList.add(`pds-${n}`,"pds-ready")}))}function Te({manageTheme:t,themeStorageKey:e,applyResolvedTheme:n,setupSystemListenerIfNeeded:r}){let s="light",o=null;if(t&&typeof window<"u"){try{o=localStorage.getItem(e)||null}catch{o=null}try{n?.(o),r?.(o)}catch{}o?o==="system"?s=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":s=o:s=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}return{resolvedTheme:s,storedTheme:o}}function Y(t,{resolvePublicAssetURL:e}){let n=!!(t?.public?.root||t?.static?.root),r=e(t);return!n&&Ce&&(r=Ce),q(N(r))}async function Re(t,{baseEnhancers:e=[]}={}){let{autoDefineBaseURL:n="/auto-define/",autoDefinePreload:r=[],autoDefineMapper:s=null,enhancers:o=[],autoDefineOverrides:i=null,autoDefinePreferModule:c=!0}=t,u=(()=>{let l=new Map;return(e||[]).forEach(a=>l.set(a.selector,a)),(o||[]).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 f=await Promise.resolve().then(()=>(Le(),Ae));l=f?.AutoDefiner||f?.default?.AutoDefiner||f?.default||null}catch(f){console.warn("AutoDefiner not available:",f?.message||f)}let a=f=>{switch(f){case"pds-tabpanel":return"pds-tabstrip.js";default:return`${f}.js`}},{mapper:p,...h}=i&&typeof i=="object"?i:{},v={baseURL:n&&q(N(n,{preferModule:c})),predefine:r,scanExisting:!0,observeShadows:!0,patchAttachShadow:!0,debounceMs:16,enhancers:u,onError:(f,x)=>{if(typeof f=="string"&&f.startsWith("pds-")){let E=["pds-form","pds-drawer"].includes(f),C=x?.message?.includes("#pds/lit")||x?.message?.includes("Failed to resolve module specifier");E&&C?console.error(`\u274C PDS component <${f}> 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 <${f}> not found. Assets may not be installed.`)}else console.error(`\u274C Auto-define error for <${f}>:`,x)},...h,mapper:f=>{if(customElements.get(f))return null;if(typeof s=="function")try{let x=s(f);return x===void 0?a(f):x}catch(x){return console.warn("Custom autoDefine.mapper error; falling back to default:",x?.message||x),a(f)}return a(f)}};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:u}}var ee=["light","dark"],te=new Set(ee);function st(t){let n=(Array.isArray(t?.themes)?t.themes.map(r=>String(r).toLowerCase()):ee).filter(r=>te.has(r));return n.length?n:ee}function ne(t,{preferDocument:e=!0}={}){let n=String(t||"").toLowerCase();if(te.has(n))return n;if(e&&typeof document<"u"){let r=document.documentElement?.getAttribute("data-theme");if(te.has(r))return r}return typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function $e(t,e){let n=ne(e);return st(t).includes(n)}var se=class extends EventTarget{},b=new se;b.initializing=!1;b.currentPreset=null;b.debug=!1;var Me=function(t="log",e,...n){let r=!!(b.registry&&!b.registry.isLive),s=(this?.debug||this?.design?.debug||b.debug||!1)===!0;if(r){if(!b.debug)return}else if(!s&&t!=="error"&&t!=="warn")return;let o=console[t]||console.log;n.length>0?o(e,...n):o(e)};function oe(t){if(t==null)return t;if(typeof t=="function")return;if(typeof t!="object")return t;if(Array.isArray(t))return t.map(n=>oe(n)).filter(n=>n!==void 0);let e={};for(let[n,r]of Object.entries(t)){let s=oe(r);s!==void 0&&(e[n]=s)}return e}async function ot(t,e={}){if(e?.runtimeConfig===!1||typeof fetch!="function")return null;let n=e?.runtimeConfigURL||`${t}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=T;b.enums=be;b.adoptLayers=ye;b.adoptPrimitives=me;b.parse=G;b.createStylesheet=ge;b.isLiveMode=()=>T.isLive;b.ask=xe;b.toast=A;b.common=K;b.AutoComplete=O;function Pe(t){let e=typeof CustomEvent=="function";try{let n=e?new CustomEvent("pds:ready",{detail:t}):new Event("pds:ready");b.dispatchEvent(n)}catch{}if(typeof document<"u")if(e){let n={detail:t,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 re="pure-ds-theme",L=null,I=null;function j(t){try{if(typeof document>"u")return;let e="light";t?t==="system"?e=typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":e=t:e=typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",document.documentElement.setAttribute("data-theme",e)}catch{}}function F(t){try{if(L&&I){try{typeof L.removeEventListener=="function"?L.removeEventListener("change",I):typeof L.removeListener=="function"&&L.removeListener(I)}catch{}L=null,I=null}if(t==="system"&&typeof window<"u"&&window.matchMedia){let e=window.matchMedia("(prefers-color-scheme: dark)"),n=r=>{let s=r?.matches===void 0?e.matches:r.matches;try{let o=s?"dark":"light";document.documentElement.setAttribute("data-theme",o),b.dispatchEvent(new CustomEvent("pds:theme:changed",{detail:{theme:o,source:"system"}}))}catch{}};L=e,I=n,typeof e.addEventListener=="function"?e.addEventListener("change",n):typeof e.addListener=="function"&&e.addListener(n)}}catch{}}Object.defineProperty(b,"theme",{get(){try{return typeof window>"u"?null:localStorage.getItem(re)||null}catch{return null}},set(t){try{if(typeof window>"u")return;let e=b.currentConfig?.design||null,n=ne(t);if(e&&!$e(e,n)){let r=e?.name||b.currentPreset?.name||b.currentConfig?.preset||"current preset";console.warn(`PDS theme "${n}" not supported by preset "${r}".`),b.dispatchEvent(new CustomEvent("pds:theme:blocked",{detail:{theme:t,resolvedTheme:n,preset:r}}));return}t==null?localStorage.removeItem(re):localStorage.setItem(re,t),j(t),F(t),b.dispatchEvent(new CustomEvent("pds:theme:changed",{detail:{theme:t,source:"api"}}))}catch{}}});b.defaultEnhancers=Z;async function it(t){let e=t&&t.mode||"live",{mode:n,...r}=t||{};if(e==="static")return at(r);let s=Y(r,{resolvePublicAssetURL:J}),o=r?.managerURL||r?.public?.managerURL||r?.manager?.url||new URL("core/pds-manager.js",s).href||new URL("./pds-manager.js",import.meta.url).href,{startLive:i}=await import(o);return i(b,r,{emitReady:Pe,applyResolvedTheme:j,setupSystemListenerIfNeeded:F})}b.start=it;async function at(t){if(!t||typeof t!="object")throw new Error("PDS.start({ mode: 'static', ... }) requires a valid configuration object");let e=t.applyGlobalStyles??!0,n=t.manageTheme??!0,r=t.themeStorageKey??"pure-ds-theme",s=t.staticPaths??{},o=Y(t,{resolvePublicAssetURL:J}),i=t&&t.autoDefine||null,c;i&&i.baseURL?c=q(N(i.baseURL,{preferModule:!1})):c=`${o}components/`;let u=i&&Array.isArray(i.predefine)&&i.predefine||[],d=i&&typeof i.mapper=="function"&&i.mapper||null;try{ke(b);let{resolvedTheme:l}=Te({manageTheme:n,themeStorageKey:r,applyResolvedTheme:j,setupSystemListenerIfNeeded:F}),a=await ot(o,t),p=Array.isArray(t?.enhancers)?t.enhancers:t?.enhancers&&typeof t.enhancers=="object"?Object.values(t.enhancers):[],h=a?.config?{...a.config,...t,design:t?.design||a.config.design,preset:t?.preset||a.config.preset}:{...t},w={tokens:`${o}styles/pds-tokens.css.js`,primitives:`${o}styles/pds-primitives.css.js`,components:`${o}styles/pds-components.css.js`,utilities:`${o}styles/pds-utilities.css.js`,styles:`${o}styles/pds-styles.css.js`},v=a?.paths||{};if(s={...w,...v,...s},b.registry.setStaticMode(s),e&&typeof document<"u")try{let E=await b.registry.getStylesheet("styles");if(E){E._pds=!0;let C=(document.adoptedStyleSheets||[]).filter($=>$._pds!==!0);document.adoptedStyleSheets=[...C,E]}}catch(E){Me.call(b,"warn","Failed to apply static styles:",E)}let f=null,x=[];try{let E=await Re({autoDefineBaseURL:c,autoDefinePreload:u,autoDefineMapper:d,enhancers:p,autoDefineOverrides:i||null,autoDefinePreferModule:!(i&&i.baseURL)},{baseEnhancers:Z});f=E.autoDefiner,x=E.mergedEnhancers||[]}catch(E){Me.call(b,"error","\u274C Failed to initialize AutoDefiner/Enhancers (static):",E)}let R=oe(t);return b.currentConfig=Object.freeze({mode:"static",...structuredClone(R),design:structuredClone(h.design||{}),preset:h.preset,theme:l,enhancers:x}),Pe({mode:"static",config:h,theme:l,autoDefiner:f}),{config:h,theme:l,autoDefiner:f}}catch(l){throw b.dispatchEvent(new CustomEvent("pds:error",{detail:{error:l}})),l}}var _t=j,Ot=F;export{b as PDS,_t as applyResolvedTheme,Ot as setupSystemListenerIfNeeded};
31
+ `;let c=s.querySelector("#msg-container");ne(c,t)}s.addEventListener("click",c=>{c.target.closest('button[value="cancel"]')&&(s.close(),r(!1))});let i=()=>{let c=s.querySelector("form");c?c.addEventListener("submit",u=>{u.preventDefault();let d;e.useForm&&u.submitter.value==="ok"?(console.log("Found form:",c),console.log("Form elements:",c?Array.from(c.elements):"no form"),d=new FormData(c),console.log("FormData entries:",Array.from(d.entries()))):d=u.submitter.value==="ok",s.close(),r(d)}):requestAnimationFrame(i)};i(),s.addEventListener("close",()=>{setTimeout(()=>s.remove(),200)}),document.body.appendChild(s),typeof e.rendered=="function"&&e.rendered(s),s.showModal(),requestAnimationFrame(()=>je(s))})}async function Fe(){let t=document.querySelector("pds-toaster");return t||(t=document.createElement("pds-toaster"),document.body.appendChild(t),await customElements.whenDefined("pds-toaster")),t}async function $(t,e={}){return(await Fe()).toast(t,e)}$.success=async function(t,e={}){return $(t,{...e,type:"success"})};$.error=async function(t,e={}){return $(t,{...e,type:"error"})};$.warning=async function(t,e={}){return $(t,{...e,type:"warning"})};$.info=async function(t,e={}){return $(t,{...e,type:"information"})};var We=[{selector:".accordion"},{selector:"nav[data-dropdown]"},{selector:"label[data-toggle]"},{selector:"label[data-color]"},{selector:'input[type="range"]'},{selector:"form[data-required]"},{selector:"fieldset[role=group][data-open]"},{selector:"[data-clip]"},{selector:"button, a[class*='btn-']"}];function Be(t){t.dataset.enhancedAccordion||(t.dataset.enhancedAccordion="true",t.addEventListener("toggle",e=>{e.target.open&&e.target.parentElement===t&&t.querySelectorAll(":scope > details[open]").forEach(n=>{n!==e.target&&(n.open=!1)})},!0))}function ze(t){if(t.dataset.enhancedDropdown)return;t.dataset.enhancedDropdown="true";let e=t.lastElementChild;if(!e)return;let n=t.querySelector("[data-dropdown-toggle]")||t.querySelector("button");n&&!n.hasAttribute("type")&&n.setAttribute("type","button"),e.id||(e.id=`dropdown-${Math.random().toString(36).slice(2,9)}`);let r=e.tagName?.toLowerCase()==="menu",s=8;r&&!e.hasAttribute("role")&&e.setAttribute("role","menu"),e.hasAttribute("aria-hidden")||e.setAttribute("aria-hidden","true"),n&&(n.setAttribute("aria-haspopup","true"),n.setAttribute("aria-controls",e.id),n.setAttribute("aria-expanded","false"));let o=()=>{let g=e.getAttribute("style");e.style.visibility="hidden",e.style.display="inline-block",e.style.pointerEvents="none";let S=e.getBoundingClientRect(),C=Math.max(e.offsetWidth||0,e.scrollWidth||0,S.width||0,1),v=Math.max(e.offsetHeight||0,e.scrollHeight||0,S.height||0,1);return g===null?e.removeAttribute("style"):e.setAttribute("style",g),{width:C,height:v}},i=()=>{let g=(t.getAttribute("data-direction")||t.getAttribute("data-dropdown-direction")||t.getAttribute("data-mode")||"auto").toLowerCase();if(g==="up"||g==="down")return g;let S=(n||t).getBoundingClientRect(),{height:C}=o(),v=Math.max(0,window.innerHeight-S.bottom),D=Math.max(0,S.top),M=v>=C,k=D>=C;return M&&!k?"down":k&&!M?"up":M&&k?"down":D>v?"up":"down"},c=()=>{let g=(t.getAttribute("data-align")||t.getAttribute("data-dropdown-align")||"auto").toLowerCase();if(g==="left"||g==="right"||g==="start"||g==="end")return g==="start"?"left":g==="end"?"right":g;let S=(n||t).getBoundingClientRect(),{width:C}=o(),v=Math.max(0,window.innerWidth-S.left),D=Math.max(0,S.right),M=v>=C,k=D>=C;return M&&!k?"left":k&&!M?"right":M&&k?"left":D>v?"right":"left"},u=(g,S=8)=>{let C=getComputedStyle(t).getPropertyValue(g).trim();if(!C)return S;let v=document.createElement("span");v.style.position="fixed",v.style.visibility="hidden",v.style.pointerEvents="none",v.style.height=C,document.body.appendChild(v);let D=Number.parseFloat(getComputedStyle(v).height);return v.remove(),Number.isFinite(D)?D:S},d=()=>{e.style.removeProperty("position"),e.style.removeProperty("left"),e.style.removeProperty("top"),e.style.removeProperty("right"),e.style.removeProperty("bottom"),e.style.removeProperty("margin-top"),e.style.removeProperty("margin-bottom"),e.style.removeProperty("max-width"),e.style.removeProperty("max-inline-size"),e.style.removeProperty("max-height"),e.style.removeProperty("overflow")},a=()=>{e.getAttribute("aria-hidden")==="false"&&(d(),requestAnimationFrame(()=>{requestAnimationFrame(()=>{l()})}))},l=()=>{if(e.getAttribute("aria-hidden")!=="false")return;let g=(n||t).getBoundingClientRect(),S=window.visualViewport,C=S?.width||document.documentElement?.clientWidth||window.innerWidth,v=S?.height||document.documentElement?.clientHeight||window.innerHeight,D=S?.offsetLeft||0,M=S?.offsetTop||0,k=Math.max(1,C-s*2),j=Math.max(1,v-s*2);e.style.maxWidth=`${Math.round(k)}px`,e.style.maxInlineSize=`${Math.round(k)}px`,e.style.maxHeight=`${Math.round(j)}px`,e.style.overflow="auto";let{width:p,height:m}=o(),f=u("--spacing-2",8),T=i(),I=c();t.dataset.dropdownDirection=T,t.dataset.dropdownAlign=I;let F=I==="right"?g.right-p:g.left;p>=k-1?F=D+s:F=Math.max(D+s,Math.min(F,D+C-p-s));let Z=T==="up"?g.top-f-m:g.bottom+f;Z=Math.max(M+s,Math.min(Z,M+v-m-s)),e.style.position="fixed",e.style.left=`${Math.round(F)}px`,e.style.top=`${Math.round(Z)}px`,e.style.right="auto",e.style.bottom="auto",e.style.marginTop="0",e.style.marginBottom="0"},h=null,y=()=>{h||(h=()=>l(),window.addEventListener("resize",h),window.addEventListener("scroll",h,!0))},A=()=>{h&&(window.removeEventListener("resize",h),window.removeEventListener("scroll",h,!0),h=null)},x=null,w=()=>{x||typeof document>"u"||(x=()=>{e.getAttribute("aria-hidden")==="false"&&(t.dataset.dropdownDirection=i(),t.dataset.dropdownAlign=c(),a(),setTimeout(()=>{e.getAttribute("aria-hidden")==="false"&&a()},50),setTimeout(()=>{e.getAttribute("aria-hidden")==="false"&&a()},150))},document.addEventListener("pds:config-changed",x))},L=()=>{!x||typeof document>"u"||(document.removeEventListener("pds:config-changed",x),x=null)},R=null,E=()=>{t.dataset.dropdownDirection=i(),t.dataset.dropdownAlign=c(),e.setAttribute("aria-hidden","false"),n?.setAttribute("aria-expanded","true"),y(),w(),a(),R||(R=g=>{(g.composedPath?g.composedPath():[g.target]).some(v=>v===t)||P()},setTimeout(()=>{document.addEventListener("click",R)},0))},P=()=>{e.setAttribute("aria-hidden","true"),n?.setAttribute("aria-expanded","false"),A(),L(),d(),R&&(document.removeEventListener("click",R),R=null)},_=()=>{e.getAttribute("aria-hidden")==="false"?P():E()};n?.addEventListener("click",g=>{g.preventDefault(),g.stopPropagation(),_()}),t.addEventListener("keydown",g=>{g.key==="Escape"&&(P(),n?.focus())}),t.addEventListener("focusout",g=>{g.relatedTarget&&((g.composedPath?g.composedPath():[g.relatedTarget]).some(v=>v===t)||P())})}function Ve(t){if(t.dataset.enhancedToggle)return;t.dataset.enhancedToggle="true";let e=t.querySelector('input[type="checkbox"]');if(!e)return;t.hasAttribute("tabindex")||t.setAttribute("tabindex","0"),t.setAttribute("role","switch"),t.setAttribute("aria-checked",e.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),t.insertBefore(n,e.nextSibling);let s=()=>{t.setAttribute("aria-checked",e.checked?"true":"false")},o=()=>{e.disabled||(e.checked=!e.checked,s(),e.dispatchEvent(new Event("change",{bubbles:!0})))};t.addEventListener("click",i=>{i.preventDefault(),o()}),t.addEventListener("keydown",i=>{(i.key===" "||i.key==="Enter")&&(i.preventDefault(),o())}),e.addEventListener("change",s)}function Ge(t){if(t.dataset.enhancedColorInput)return;let e=t.querySelector('input[type="color"]');if(!e)return;t.dataset.enhancedColorInput="true";let n=t.querySelector(":scope > .color-control"),r=t.querySelector(":scope > .color-control > .color-swatch"),s=t.querySelector(":scope > .color-control > output");n||(n=document.createElement("span"),n.className="color-control",e.before(n)),r||(r=document.createElement("span"),r.className="color-swatch",n.appendChild(r)),e.parentElement!==r&&r.appendChild(e),s||(s=document.createElement("output"),n.appendChild(s));let o=()=>{if(e.dataset.colorUnset==="1"){s.value="",s.textContent="not set",n.dataset.value="",n.dataset.unset="1",r.dataset.unset="1";return}s.value=e.value,s.textContent=e.value,n.dataset.value=e.value,delete n.dataset.unset,delete r.dataset.unset};o();let i=()=>{e.dataset.colorUnset==="1"&&(e.dataset.colorUnset="0"),o()};e.addEventListener("input",i,{passive:!0}),e.addEventListener("change",i,{passive:!0})}function Ke(t){if(t.dataset.enhancedRange)return;let e=i=>{if(t.dataset.enhancedRangeProgrammatic)return;t.dataset.enhancedRangeProgrammatic="1";let c=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(t),"value")||Object.getOwnPropertyDescriptor(HTMLInputElement.prototype,"value");c?.get&&c?.set&&Object.defineProperty(t,"value",{configurable:!0,enumerable:c.enumerable,get(){return c.get.call(this)},set(d){c.set.call(this,d),i()}}),new MutationObserver(d=>{d.some(l=>{let h=l.attributeName;return h==="value"||h==="min"||h==="max"})&&i()}).observe(t,{attributes:!0,attributeFilter:["value","min","max"]})},n=t.closest("label"),r=n?.classList.contains("range-output"),s=t.id||`range-${Math.random().toString(36).substring(2,11)}`,o=`${s}-output`;if(t.id=s,r){let i=n.querySelector("span");if(i&&!i.classList.contains("range-output-wrapper")){let c=document.createElement("span");c.className="range-output-wrapper",c.style.display="flex",c.style.justifyContent="space-between",c.style.alignItems="center";let u=document.createElement("span");u.textContent=i.textContent,c.appendChild(u);let d=document.createElement("output");d.id=o,d.setAttribute("for",s),d.style.color="var(--surface-text-secondary, var(--color-text-secondary))",d.style.fontSize="0.875rem",d.textContent=t.value,c.appendChild(d),i.textContent="",i.appendChild(c);let a=()=>{d.textContent=t.value};t.addEventListener("input",a),t.addEventListener("change",a),e(a),a()}}else{let i=t.closest(".range-container");i||(i=document.createElement("div"),i.className="range-container",t.parentNode?.insertBefore(i,t),i.appendChild(t)),i.style.position="relative";let c=document.createElement("output");c.id=o,c.setAttribute("for",s),c.className="range-bubble",c.setAttribute("aria-live","polite"),i.appendChild(c);let u=()=>{let l=parseFloat(t.min)||0,h=parseFloat(t.max)||100,y=parseFloat(t.value),A=(y-l)/(h-l);c.style.left=`calc(${A*100}% )`,c.textContent=String(y)},d=()=>c.classList.add("visible"),a=()=>c.classList.remove("visible");t.addEventListener("input",u),t.addEventListener("pointerdown",d),t.addEventListener("pointerup",a),t.addEventListener("pointerleave",a),t.addEventListener("focus",d),t.addEventListener("blur",a),t.addEventListener("change",u),e(u),u()}t.dataset.enhancedRange="1"}function Qe(t){if(t.dataset.enhancedRequired)return;t.dataset.enhancedRequired="true";let e=n=>{let r;if(n.closest("[role$=group]")?r=n.closest("[role$=group]").querySelector("legend"):r=n.closest("label"),!r||r.querySelector(".required-asterisk"))return;let s=document.createElement("span");s.classList.add("required-asterisk"),s.textContent="*",s.style.marginLeft="4px";let o=r.querySelector("span, [data-label]");if(o)o.appendChild(s);else{let c=r.querySelector("input, select, textarea");c?r.insertBefore(s,c):r.appendChild(s)}let i=n.closest("form");if(i&&!i.querySelector(".required-legend")){let c=document.createElement("small");c.classList.add("required-legend"),c.textContent="* Required fields",i.insertBefore(c,i.querySelector(".form-actions")||i.lastElementChild)}};t.querySelectorAll("[required]").forEach(n=>{e(n)})}function Ze(t){if(t.dataset.enhancedOpenGroup)return;t.dataset.enhancedOpenGroup="true",t.classList.add("flex","flex-wrap","buttons");let e=document.createElement("input");e.type="text",e.placeholder="Add item...",e.classList.add("input-text","input-sm"),e.style.width="auto";let n=()=>t.querySelector('input[type="radio"], input[type="checkbox"]');t.appendChild(e),e.addEventListener("keydown",r=>{if(r.key==="Enter"||r.key==="Tab"){let s=e.value.trim();if(s){r.preventDefault();let o=n(),i=o?.type==="radio"?"radio":"checkbox",c=`open-group-${Math.random().toString(36).substring(2,11)}`,u=document.createElement("label"),d=document.createElement("span");d.setAttribute("data-label",""),d.textContent=s;let a=document.createElement("input");a.type=i,a.name=o?.name||t.getAttribute("data-name")||"open-group",a.value=s,a.id=c,u.appendChild(d),u.appendChild(a),t.insertBefore(u,e),e.value=""}}else if(r.key==="Backspace"&&e.value===""){r.preventDefault();let s=t.querySelectorAll("label");s.length>0&&s[s.length-1].remove()}})}function Je(t){if(t.dataset.enhancedClip)return;t.dataset.enhancedClip="true",t.hasAttribute("tabindex")||t.setAttribute("tabindex","0"),t.hasAttribute("role")||t.setAttribute("role","button");let e=()=>{let r=t.getAttribute("data-clip-open")==="true";t.setAttribute("aria-expanded",r?"true":"false")},n=()=>{let r=t.getAttribute("data-clip-open")==="true";t.setAttribute("data-clip-open",r?"false":"true"),e()};t.addEventListener("click",r=>{r.defaultPrevented||n()}),t.addEventListener("keydown",r=>{(r.key===" "||r.key==="Enter")&&(r.preventDefault(),n())}),e()}function Xe(t){if(t.dataset.enhancedBtnWorking)return;t.dataset.enhancedBtnWorking="true";let e=null,n=!1;new MutationObserver(s=>{s.forEach(o=>{if(o.attributeName==="class"){let i=t.classList.contains("btn-working"),c=t.querySelector("pds-icon");if(i)if(c)e||(e=c.getAttribute("icon")),c.setAttribute("icon","circle-notch");else{let u=document.createElement("pds-icon");u.setAttribute("icon","circle-notch"),u.setAttribute("size","sm"),t.insertBefore(u,t.firstChild),n=!0}else o.oldValue?.includes("btn-working")&&c&&(n?(c.remove(),n=!1):e&&(c.setAttribute("icon",e),e=null))}})}).observe(t,{attributes:!0,attributeFilter:["class"],attributeOldValue:!0})}var Ye=new Map([[".accordion",Be],["nav[data-dropdown]",ze],["label[data-toggle]",Ve],["label[data-color]",Ge],['input[type="range"]',Ke],["form[data-required]",Qe],["fieldset[role=group][data-open]",Ze],["[data-clip]",Je],["button, a[class*='btn-']",Xe]]),re=We.map(t=>({...t,run:Ye.get(t.selector)||(()=>{})}));var Ce="pds",et=/^([a-z][a-z0-9+\-.]*:)?\/\//i,Le=/^[a-z]:/i;function q(t=""){return t.endsWith("/")?t:`${t}/`}function tt(t="",e=Ce){let n=t.replace(/\/+$/,"");return new RegExp(`(?:^|/)${e}$`,"i").test(n)?n:`${n}/${e}`}function nt(t){return t.replace(/^\.\/+/,"")}function rt(t){return Le.test(t)?t.replace(Le,"").replace(/^\/+/,""):t}function st(t){return t.startsWith("public/")?t.substring(7):t}function se(t,e={}){let n=e.segment||Ce,r=e.defaultRoot||`/assets/${n}/`,s=t?.public&&t.public?.root||t?.static&&t.static?.root||null;if(!s||typeof s!="string")return q(r);let o=s.trim();return o?(o=o.replace(/\\/g,"/"),o=tt(o,n),o=q(o),et.test(o)?o:(o=nt(o),o=rt(o),o.startsWith("/")||(o=st(o),o.startsWith("/")||(o=`/${o}`),o=o.replace(/\/+/g,(i,c)=>c===0?i:"/")),q(o))):q(r)}var it=/^[a-z][a-z0-9+\-.]*:\/\//i,N=(()=>{try{return import.meta.url}catch{return}})(),V=t=>typeof t=="string"&&t.length&&!t.endsWith("/")?`${t}/`:t;function G(t,e={}){if(!t||it.test(t))return t;let{preferModule:n=!0}=e,r=()=>{if(!N)return null;try{return new URL(t,N).href}catch{return null}},s=()=>{if(typeof window>"u"||!window.location?.origin)return null;try{return new URL(t,window.location.origin).href}catch{return null}};return(n?r()||s():s()||r())||t}var Te=(()=>{if(N)try{let t=new URL(N);if(/\/public\/assets\/js\//.test(t.pathname))return new URL("../pds/",N).href}catch{return}})(),Me=!1;function Re(t){Me||typeof document>"u"||(Me=!0,t.addEventListener("pds:ready",e=>{let n=e.detail?.mode;n&&document.documentElement.classList.add(`pds-${n}`,"pds-ready")}))}function Pe({manageTheme:t,themeStorageKey:e,applyResolvedTheme:n,setupSystemListenerIfNeeded:r}){let s="light",o=null;if(t&&typeof window<"u"){try{o=localStorage.getItem(e)||null}catch{o=null}try{n?.(o),r?.(o)}catch{}o?o==="system"?s=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":s=o:s=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}return{resolvedTheme:s,storedTheme:o}}function ie(t,{resolvePublicAssetURL:e}){let n=!!(t?.public?.root||t?.static?.root),r=e(t);return!n&&Te&&(r=Te),V(G(r))}async function $e(t,{baseEnhancers:e=[]}={}){let{autoDefineBaseURL:n="/auto-define/",autoDefinePreload:r=[],autoDefineMapper:s=null,enhancers:o=[],autoDefineOverrides:i=null,autoDefinePreferModule:c=!0}=t,u=(()=>{let a=new Map;return(e||[]).forEach(l=>a.set(l.selector,l)),(o||[]).forEach(l=>a.set(l.selector,l)),Array.from(a.values())})(),d=null;if(typeof window<"u"&&typeof document<"u"){let a=null;try{let w=await Promise.resolve().then(()=>(ke(),De));a=w?.AutoDefiner||w?.default?.AutoDefiner||w?.default||null}catch(w){console.warn("AutoDefiner not available:",w?.message||w)}let l=w=>{switch(w){case"pds-tabpanel":return"pds-tabstrip.js";default:return`${w}.js`}},{mapper:h,...y}=i&&typeof i=="object"?i:{},x={baseURL:n&&V(G(n,{preferModule:c})),predefine:r,scanExisting:!0,observeShadows:!0,patchAttachShadow:!0,debounceMs:16,enhancers:u,onError:(w,L)=>{if(typeof w=="string"&&w.startsWith("pds-")){let E=["pds-form","pds-drawer"].includes(w),P=L?.message?.includes("#pds/lit")||L?.message?.includes("Failed to resolve module specifier");E&&P?console.error(`\u274C PDS component <${w}> 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 <${w}> not found. Assets may not be installed.`)}else console.error(`\u274C Auto-define error for <${w}>:`,L)},...y,mapper:w=>{if(customElements.get(w))return null;if(typeof s=="function")try{let L=s(w);return L===void 0?l(w):L}catch(L){return console.warn("Custom autoDefine.mapper error; falling back to default:",L?.message||L),l(w)}return l(w)}};a&&(d=new a(x),r.length>0&&typeof a.define=="function"&&await a.define(...r,{baseURL:n,mapper:x.mapper,onError:x.onError}))}return{autoDefiner:d,mergedEnhancers:u}}var ae=["light","dark"],ce=new Set(ae);function at(t){let n=(Array.isArray(t?.themes)?t.themes.map(r=>String(r).toLowerCase()):ae).filter(r=>ce.has(r));return n.length?n:ae}function le(t,{preferDocument:e=!0}={}){let n=String(t||"").toLowerCase();if(ce.has(n))return n;if(e&&typeof document<"u"){let r=document.documentElement?.getAttribute("data-theme");if(ce.has(r))return r}return typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function Ie(t,e){let n=le(e);return at(t).includes(n)}var ue=class extends EventTarget{},b=new ue;b.initializing=!1;b.currentPreset=null;b.debug=!1;var _e=function(t="log",e,...n){let r=!!(b.registry&&!b.registry.isLive),s=(this?.debug||this?.design?.debug||b.debug||!1)===!0;if(r){if(!b.debug)return}else if(!s&&t!=="error"&&t!=="warn")return;let o=console[t]||console.log;n.length>0?o(e,...n):o(e)};function pe(t){if(t==null)return t;if(typeof t=="function")return;if(typeof t!="object")return t;if(Array.isArray(t))return t.map(n=>pe(n)).filter(n=>n!==void 0);let e={};for(let[n,r]of Object.entries(t)){let s=pe(r);s!==void 0&&(e[n]=s)}return e}async function ct(t,e={}){if(e?.runtimeConfig===!1||typeof fetch!="function")return null;let n=e?.runtimeConfigURL||`${t}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=xe;b.adoptLayers=we;b.adoptPrimitives=be;b.parse=ee;b.createStylesheet=ve;b.isLiveMode=()=>U.isLive;b.ask=Ae;b.toast=$;b.common=te;b.AutoComplete=B;function Oe(t){let e=typeof CustomEvent=="function";try{let n=e?new CustomEvent("pds:ready",{detail:t}):new Event("pds:ready");b.dispatchEvent(n)}catch{}if(typeof document<"u")if(e){let n={detail:t,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{}}}function Ue(t={}){let e=typeof CustomEvent=="function",n={at:Date.now(),...t};try{let r=e?new CustomEvent("pds:config-changed",{detail:n}):new Event("pds:config-changed");b.dispatchEvent(r)}catch{}if(typeof document<"u")if(e){let r={detail:n,bubbles:!0,composed:!0};try{document.dispatchEvent(new CustomEvent("pds:config-changed",r))}catch{}}else try{document.dispatchEvent(new Event("pds:config-changed"))}catch{}}typeof window<"u"&&(window.PDS=b);var de="pure-ds-theme",O=null,H=null;function K(t){try{if(typeof document>"u")return;let e="light";t?t==="system"?e=typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":e=t:e=typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",document.documentElement.setAttribute("data-theme",e)}catch{}}function Q(t){try{if(O&&H){try{typeof O.removeEventListener=="function"?O.removeEventListener("change",H):typeof O.removeListener=="function"&&O.removeListener(H)}catch{}O=null,H=null}if(t==="system"&&typeof window<"u"&&window.matchMedia){let e=window.matchMedia("(prefers-color-scheme: dark)"),n=r=>{let s=r?.matches===void 0?e.matches:r.matches;try{let o=s?"dark":"light";document.documentElement.setAttribute("data-theme",o),b.dispatchEvent(new CustomEvent("pds:theme:changed",{detail:{theme:o,source:"system"}}))}catch{}};O=e,H=n,typeof e.addEventListener=="function"?e.addEventListener("change",n):typeof e.addListener=="function"&&e.addListener(n)}}catch{}}Object.defineProperty(b,"theme",{get(){try{return typeof window>"u"?null:localStorage.getItem(de)||null}catch{return null}},set(t){try{if(typeof window>"u")return;let e=b.currentConfig?.design||null,n=le(t);if(e&&!Ie(e,n)){let r=e?.name||b.currentPreset?.name||b.currentConfig?.preset||"current preset";console.warn(`PDS theme "${n}" not supported by preset "${r}".`),b.dispatchEvent(new CustomEvent("pds:theme:blocked",{detail:{theme:t,resolvedTheme:n,preset:r}}));return}t==null?localStorage.removeItem(de):localStorage.setItem(de,t),K(t),Q(t),b.dispatchEvent(new CustomEvent("pds:theme:changed",{detail:{theme:t,source:"api"}}))}catch{}}});b.defaultEnhancers=re;async function lt(t){let e=t&&t.mode||"live",{mode:n,...r}=t||{};if(e==="static")return dt(r);let s=ie(r,{resolvePublicAssetURL:se}),o=r?.managerURL||r?.public?.managerURL||r?.manager?.url||new URL("core/pds-manager.js",s).href||new URL("./pds-manager.js",import.meta.url).href,{startLive:i}=await import(o);return i(b,r,{emitReady:Oe,emitConfigChanged:Ue,applyResolvedTheme:K,setupSystemListenerIfNeeded:Q})}b.start=lt;async function dt(t){if(!t||typeof t!="object")throw new Error("PDS.start({ mode: 'static', ... }) requires a valid configuration object");let e=t.applyGlobalStyles??!0,n=t.manageTheme??!0,r=t.themeStorageKey??"pure-ds-theme",s=t.staticPaths??{},o=ie(t,{resolvePublicAssetURL:se}),i=t&&t.autoDefine||null,c;i&&i.baseURL?c=V(G(i.baseURL,{preferModule:!1})):c=`${o}components/`;let u=i&&Array.isArray(i.predefine)&&i.predefine||[],d=i&&typeof i.mapper=="function"&&i.mapper||null;try{Re(b);let{resolvedTheme:a}=Pe({manageTheme:n,themeStorageKey:r,applyResolvedTheme:K,setupSystemListenerIfNeeded:Q}),l=await ct(o,t),h=Array.isArray(t?.enhancers)?t.enhancers:t?.enhancers&&typeof t.enhancers=="object"?Object.values(t.enhancers):[],y=l?.config?{...l.config,...t,design:t?.design||l.config.design,preset:t?.preset||l.config.preset}:{...t},A={tokens:`${o}styles/pds-tokens.css.js`,primitives:`${o}styles/pds-primitives.css.js`,components:`${o}styles/pds-components.css.js`,utilities:`${o}styles/pds-utilities.css.js`,styles:`${o}styles/pds-styles.css.js`},x=l?.paths||{};if(s={...A,...x,...s},b.registry.setStaticMode(s),e&&typeof document<"u")try{let E=await b.registry.getStylesheet("styles");if(E){E._pds=!0;let P=(document.adoptedStyleSheets||[]).filter(_=>_._pds!==!0);document.adoptedStyleSheets=[...P,E],Ue({mode:"static",source:"static:styles-applied"})}}catch(E){_e.call(b,"warn","Failed to apply static styles:",E)}let w=null,L=[];try{let E=await $e({autoDefineBaseURL:c,autoDefinePreload:u,autoDefineMapper:d,enhancers:h,autoDefineOverrides:i||null,autoDefinePreferModule:!(i&&i.baseURL)},{baseEnhancers:re});w=E.autoDefiner,L=E.mergedEnhancers||[]}catch(E){_e.call(b,"error","\u274C Failed to initialize AutoDefiner/Enhancers (static):",E)}let R=pe(t);return b.currentConfig=Object.freeze({mode:"static",...structuredClone(R),design:structuredClone(y.design||{}),preset:y.preset,theme:a,enhancers:L}),Oe({mode:"static",config:y,theme:a,autoDefiner:w}),{config:y,theme:a,autoDefiner:w}}catch(a){throw b.dispatchEvent(new CustomEvent("pds:error",{detail:{error:a}})),a}}var qt=K,Nt=Q;export{b as PDS,qt as applyResolvedTheme,Nt as setupSystemListenerIfNeeded};
@@ -0,0 +1,47 @@
1
+ const COMPONENT_TAG = "pds-live-converter";
2
+
3
+ class PdsLiveConverter extends HTMLElement {
4
+ constructor() {
5
+ super();
6
+ this.result = null;
7
+ }
8
+
9
+ connectedCallback() {
10
+ this._render();
11
+ }
12
+
13
+ setResult(result) {
14
+ this.result = result || null;
15
+ this._render();
16
+ }
17
+
18
+ _render() {
19
+ const confidence = this.result?.confidence;
20
+ const issues = Array.isArray(this.result?.issues) ? this.result.issues : [];
21
+ const confidenceLabel = typeof confidence === "number" ? `${Math.round(confidence * 100)}%` : "-";
22
+ const issueLabel = issues.length ? `${issues.length}` : "0";
23
+
24
+ this.className = "card surface-base stack-sm";
25
+ this.innerHTML = `
26
+ <div class="flex items-center justify-between">
27
+ <strong>Conversion Report</strong>
28
+ <span class="badge ${issues.length ? "badge-warning" : "badge-success"}">${issues.length ? "Needs review" : "Ready"}</span>
29
+ </div>
30
+ <div class="grid grid-cols-2 gap-sm">
31
+ <div class="card surface-subtle stack-xs">
32
+ <small class="text-muted">Confidence</small>
33
+ <strong>${confidenceLabel}</strong>
34
+ </div>
35
+ <div class="card surface-subtle stack-xs">
36
+ <small class="text-muted">Issues</small>
37
+ <strong>${issueLabel}</strong>
38
+ </div>
39
+ </div>
40
+ <div class="stack-xs">
41
+ ${issues.length ? `<p class="text-muted">${issues[0]?.message || ""}</p>` : "<p class=\"text-muted\">No issues reported.</p>"}
42
+ </div>
43
+ `;
44
+ }
45
+ }
46
+
47
+ customElements.define(COMPONENT_TAG, PdsLiveConverter);