@pure-ds/storybook 0.7.46 → 0.7.53

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 (45) hide show
  1. package/.storybook/preview.js +14 -14
  2. package/dist/pds-reference.json +271 -41
  3. package/package.json +2 -2
  4. package/public/assets/js/app.js +8 -6
  5. package/public/assets/js/pds-ask.js +6 -6
  6. package/public/assets/js/pds-enhancers.js +1 -1
  7. package/public/assets/js/pds-manager.js +511 -291
  8. package/public/assets/js/pds.js +2 -2
  9. package/public/assets/pds/components/pds-live-edit.js +1 -1
  10. package/public/assets/pds/components/pds-toaster.js +55 -11
  11. package/public/assets/pds/core/pds-ask.js +6 -6
  12. package/public/assets/pds/core/pds-enhancers.js +1 -1
  13. package/public/assets/pds/core/pds-manager.js +511 -291
  14. package/public/assets/pds/core.js +2 -2
  15. package/public/assets/pds/pds-css-complete.json +544 -55
  16. package/public/assets/pds/pds.css-data.json +154 -0
  17. package/public/assets/pds/styles/pds-components.css +12 -11
  18. package/public/assets/pds/styles/pds-components.css.js +24 -22
  19. package/public/assets/pds/styles/pds-styles.css +12 -11
  20. package/public/assets/pds/styles/pds-styles.css.js +24 -22
  21. package/public/assets/pds/vscode-custom-data.json +30 -0
  22. package/src/js/app.js +7 -4
  23. package/src/js/common/common.js +120 -23
  24. package/src/js/common/toast.js +8 -0
  25. package/src/js/pds-core/pds-config.js +63 -10
  26. package/src/js/pds-core/pds-enhancers.js +6 -1
  27. package/src/js/pds-core/pds-generator.js +823 -217
  28. package/src/js/pds-core/pds-live.js +3 -4
  29. package/src/js/pds.d.ts +19 -6
  30. package/src/js/pds.js +11 -6
  31. package/stories/components/PdsFab.stories.js +2 -2
  32. package/stories/components/PdsForm.stories.js +3 -3
  33. package/stories/components/PdsIcon.stories.js +2 -2
  34. package/stories/components/PdsRating.stories.js +1 -1
  35. package/stories/components/PdsScrollrow.stories.js +10 -10
  36. package/stories/components/PdsSplitpanel.stories.js +8 -8
  37. package/stories/foundations/Colors.stories.js +1289 -187
  38. package/stories/foundations/HTMLDefaults.stories.js +3 -3
  39. package/stories/foundations/Icons.stories.js +20 -20
  40. package/stories/foundations/SmartSurfaces.stories.js +11 -14
  41. package/stories/patterns/InteractiveStates.stories.js +5 -5
  42. package/stories/primitives/Badges.stories.js +1 -0
  43. package/stories/primitives/Cards.stories.js +3 -3
  44. package/stories/reference/pds-object-docs.js +7 -2
  45. package/stories/utils/PdsToast.stories.js +62 -1
@@ -1,2 +1,2 @@
1
- var nt=Object.defineProperty;var ot=(e,t)=>{for(var n in t)nt(e,n,{get:t[n],enumerable:!0})};var ie=class extends EventTarget{constructor(){super(),this.mode=null,this.compiled=null,this.log=()=>{},this.logHandler=null}},Le="__PURE_DS_PDS_SINGLETON__",ae=typeof globalThis<"u"?globalThis:window,se=ae?.[Le],r=se&&typeof se.addEventListener=="function"?se:new ie;ae&&(ae[Le]=r);typeof r.log!="function"&&(r.log=(e="log",t,...n)=>{if(typeof console>"u")return;let o=typeof console[e]=="function"?console[e].bind(console):typeof console.log=="function"?console.log.bind(console):null;o&&(n.length>0?o(t,...n):o(t))});typeof r.logHandler!="function"&&(r.logHandler=null);var ce=class{constructor(){this._mode="static",this._staticPaths={tokens:"/assets/pds/styles/pds-tokens.css.js",primitives:"/assets/pds/styles/pds-primitives.css.js",components:"/assets/pds/styles/pds-components.css.js",utilities:"/assets/pds/styles/pds-utilities.css.js",styles:"/assets/pds/styles/pds-styles.css.js"}}setLiveMode(){this._mode="live"}setStaticMode(t={}){this._mode="static",this._staticPaths={...this._staticPaths,...t}}async getStylesheet(t){if(this._mode==="live")return null;try{return(await import(this._staticPaths[t]))[t]}catch(n){r.log("error",`Registry: failed to load static ${t}:`,n),r.log("error",`Registry: looking for ${this._staticPaths[t]}`),r.log("error","Registry: make sure you've run 'npm run pds:build' and configured PDS.start() with the correct static.root path");let o=new CSSStyleSheet;return o.replaceSync("/* Failed to load "+t+" */"),o}}get mode(){return this._mode}get isLive(){return this._mode==="live"}},C=new ce;async function Ee(e,t=[],n=null){try{let o=n?.primitivesStylesheet?n.primitivesStylesheet:await C.getStylesheet("primitives");e.adoptedStyleSheets=[o,...t]}catch(o){let c=e.host?.tagName?.toLowerCase()||"unknown";r.log("error",`Adopter: <${c}> failed to adopt primitives:`,o),e.adoptedStyleSheets=t}}async function Ae(e,t=["primitives"],n=[],o=null){let c=Array.isArray(n)?n.filter(Boolean):[];if(c.length){let l=(Array.isArray(e.adoptedStyleSheets)?e.adoptedStyleSheets:[]).filter(g=>!c.includes(g));e.adoptedStyleSheets=[...l,...c]}try{let l=(await Promise.all(t.map(async g=>{if(o)switch(g){case"tokens":return o.tokensStylesheet;case"primitives":return o.primitivesStylesheet;case"components":return o.componentsStylesheet;case"utilities":return o.utilitiesStylesheet;default:break}return C.getStylesheet(g)}))).filter(g=>g!==null);e.adoptedStyleSheets=[...l,...c]}catch(s){let l=e.host?.tagName?.toLowerCase()||"unknown";r.log("error",`Adopter: <${l}> failed to adopt layers:`,s),e.adoptedStyleSheets=c}}function ve(e){let t=new CSSStyleSheet;return t.replaceSync(e),t}var Pe={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 ue={};ot(ue,{deepMerge:()=>Re,fragmentFromTemplateLike:()=>rt,isObject:()=>W,parseHTML:()=>le});function W(e){return e&&typeof e=="object"&&!Array.isArray(e)}function Re(e,t){let n={...e};return W(e)&&W(t)&&Object.keys(t).forEach(o=>{W(t[o])?o in e?n[o]=Re(e[o],t[o]):Object.assign(n,{[o]:t[o]}):Object.assign(n,{[o]:t[o]})}),n}function rt(e){let t=Array.isArray(e?.strings)?e.strings:[],n=Array.isArray(e?.values)?e.values:[],o=new Set,c=[],s=/(\s)(\.[\w-]+)=\s*$/;for(let i=0;i<t.length;i+=1){let S=t[i]??"",m=S.match(s);if(m&&i<n.length){let _=m[2].slice(1),A=`pds-val-${i}`;S=S.replace(s,`$1data-pds-prop="${_}:${A}"`),o.add(i)}c.push(S),i<n.length&&!o.has(i)&&c.push(`<!--pds-val-${i}-->`)}let l=document.createElement("template");l.innerHTML=c.join("");let g=(i,S)=>{let m=i.parentNode;if(!m)return;if(S==null){m.removeChild(i);return}let L=_=>{if(_!=null){if(_ instanceof Node){m.insertBefore(_,i);return}if(Array.isArray(_)){_.forEach(A=>L(A));return}m.insertBefore(document.createTextNode(String(_)),i)}};L(S),m.removeChild(i)},y=document.createTreeWalker(l.content,NodeFilter.SHOW_COMMENT),u=[];for(;y.nextNode();){let i=y.currentNode;i?.nodeValue?.startsWith("pds-val-")&&u.push(i)}return u.forEach(i=>{let S=Number(i.nodeValue.replace("pds-val-",""));g(i,n[S])}),l.content.querySelectorAll("*").forEach(i=>{let S=i.getAttribute("data-pds-prop");if(!S)return;let[m,L]=S.split(":"),_=Number(String(L).replace("pds-val-",""));m&&Number.isInteger(_)&&(i[m]=n[_]),i.removeAttribute("data-pds-prop")}),l.content}function le(e){return new DOMParser().parseFromString(e,"text/html").body.childNodes}var De="pds",st=/^([a-z][a-z0-9+\-.]*:)?\/\//i,xe=/^[a-z]:/i;function U(e=""){return e.endsWith("/")?e:`${e}/`}function it(e="",t=De){let n=e.replace(/\/+$/,"");return new RegExp(`(?:^|/)${t}$`,"i").test(n)?n:`${n}/${t}`}function at(e){return e.replace(/^\.\/+/,"")}function ct(e){return xe.test(e)?e.replace(xe,"").replace(/^\/+/,""):e}function lt(e){return e.startsWith("public/")?e.substring(7):e}function H(e,t={}){let n=t.segment||De,o=t.defaultRoot||`/assets/${n}/`,c=e?.public&&e.public?.root||e?.static&&e.static?.root||null;if(!c||typeof c!="string")return U(o);let s=c.trim();return s?(s=s.replace(/\\/g,"/"),s=it(s,n),s=U(s),st.test(s)?s:(s=at(s),s=ct(s),s.startsWith("/")||(s=lt(s),s.startsWith("/")||(s=`/${s}`),s=s.replace(/\/+/g,(l,g)=>g===0?l:"/")),U(s))):U(o)}async function ut(...e){let t={};e.length&&typeof e[e.length-1]=="object"&&(t=e.pop()||{});let n=e,{baseURL:o,mapper:c=u=>`${u}.js`,onError:s=(u,a)=>console.error(`[defineWebComponents] ${u}:`,a)}=t,l=o?new URL(o,typeof location<"u"?location.href:import.meta.url):new URL("./",import.meta.url),g=u=>u.toLowerCase().replace(/(^|-)([a-z])/g,(a,i,S)=>S.toUpperCase()),y=async u=>{try{if(customElements.get(u))return{tag:u,status:"already-defined"};let a=c(u),S=await import(a instanceof URL?a.href:new URL(a,l).href),m=S?.default??S?.[g(u)];if(!m){if(customElements.get(u))return{tag:u,status:"self-defined"};throw new Error(`No export found for ${u}. Expected default export or named export "${g(u)}".`)}return customElements.get(u)?{tag:u,status:"race-already-defined"}:(customElements.define(u,m),{tag:u,status:"defined"})}catch(a){throw s(u,a),a}};return Promise.all(n.map(y))}var B=class{constructor(t={}){let{baseURL:n,mapper:o,onError:c,predicate:s=()=>!0,attributeModule:l="data-module",root:g=document,scanExisting:y=!0,debounceMs:u=16,observeShadows:a=!0,enhancers:i=[],patchAttachShadow:S=!0}=t,m=new Set,L=new Set,_=new Set,A=new Map,P=new WeakMap,E=new WeakMap,h=0,w=!1,R=null,F=d=>{if(!d||!i.length)return;let p=E.get(d);p||(p=new Set,E.set(d,p));for(let f of i)if(!(!f.selector||!f.run)&&!p.has(f.selector))try{d.matches&&d.matches(f.selector)&&(f.run(d),p.add(f.selector))}catch(v){console.warn(`[AutoDefiner] Error applying enhancer for selector "${f.selector}":`,v)}},M=(d,p)=>{if(!w&&!(!d||!d.includes("-"))&&!customElements.get(d)&&!L.has(d)&&!_.has(d)){if(p&&p.getAttribute){let f=p.getAttribute(l);f&&!A.has(d)&&A.set(d,f)}m.add(d),tt()}},tt=()=>{h||(h=setTimeout(Se,u))},D=d=>{if(d){if(d.nodeType===1){let p=d,f=p.tagName?.toLowerCase();f&&f.includes("-")&&!customElements.get(f)&&s(f,p)&&M(f,p),F(p),a&&p.shadowRoot&&re(p.shadowRoot)}d.querySelectorAll&&d.querySelectorAll("*").forEach(p=>{let f=p.tagName?.toLowerCase();f&&f.includes("-")&&!customElements.get(f)&&s(f,p)&&M(f,p),F(p),a&&p.shadowRoot&&re(p.shadowRoot)})}},re=d=>{if(!d||P.has(d))return;D(d);let p=new MutationObserver(f=>{for(let v of f)v.addedNodes?.forEach(z=>{D(z)}),v.type==="attributes"&&v.target&&D(v.target)});p.observe(d,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[l,...i.map(f=>f.selector).filter(f=>f.startsWith("data-"))]}),P.set(d,p)};async function Se(){if(clearTimeout(h),h=0,!m.size)return;let d=Array.from(m);m.clear(),d.forEach(p=>L.add(p));try{let p=f=>A.get(f)??(o?o(f):`${f}.js`);await ut(...d,{baseURL:n,mapper:p,onError:(f,v)=>{_.add(f),c?.(f,v)}})}catch{}finally{d.forEach(p=>L.delete(p))}}let _e=g===document?document.documentElement:g,be=new MutationObserver(d=>{for(let p of d)p.addedNodes?.forEach(f=>{D(f)}),p.type==="attributes"&&p.target&&D(p.target)});if(be.observe(_e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[l,...i.map(d=>d.selector).filter(d=>d.startsWith("data-"))]}),a&&S&&Element.prototype.attachShadow){let d=Element.prototype.attachShadow;Element.prototype.attachShadow=function(f){let v=d.call(this,f);if(f&&f.mode==="open"){re(v);let z=this.tagName?.toLowerCase();z&&z.includes("-")&&!customElements.get(z)&&M(z,this)}return v},R=()=>Element.prototype.attachShadow=d}return y&&D(_e),{stop(){w=!0,be.disconnect(),R&&R(),h&&(clearTimeout(h),h=0),P.forEach(d=>d.disconnect())},flush:Se}}static async define(...t){let n={};t.length&&typeof t[t.length-1]=="object"&&(n=t.pop()||{});let o=t,{baseURL:c,mapper:s=a=>`${a}.js`,onError:l=(a,i)=>console.error(`[defineWebComponents] ${a}:`,i)}=n,g=c?new URL(c,typeof location<"u"?location.href:import.meta.url):new URL("./",import.meta.url),y=a=>a.toLowerCase().replace(/(^|-)([a-z])/g,(i,S,m)=>m.toUpperCase()),u=async a=>{try{if(customElements.get(a))return{tag:a,status:"already-defined"};let i=s(a),m=await import(i instanceof URL?i.href:new URL(i,g).href),L=m?.default??m?.[y(a)];if(!L){if(customElements.get(a))return{tag:a,status:"self-defined"};throw new Error(`No export found for ${a}. Expected default export or named export "${y(a)}".`)}return customElements.get(a)?{tag:a,status:"race-already-defined"}:(customElements.define(a,L),{tag:a,status:"defined"})}catch(i){throw l(a,i),i}};return Promise.all(o.map(u))}};var dt=/^[a-z][a-z0-9+\-.]*:\/\//i,j=(()=>{try{return import.meta.url}catch{return}})(),K=e=>typeof e=="string"&&e.length&&!e.endsWith("/")?`${e}/`:e;function G(e,t={}){if(!e||dt.test(e))return e;let{preferModule:n=!0}=t,o=()=>{if(!j)return null;try{return new URL(e,j).href}catch{return null}},c=()=>{if(typeof window>"u"||!window.location?.origin)return null;try{return new URL(e,window.location.origin).href}catch{return null}};return(n?o()||c():c()||o())||e}var ze=(()=>{if(j)try{let e=new URL(j);if(/\/public\/assets\/js\//.test(e.pathname))return new URL("../pds/",j).href}catch{return}})(),Ce=!1;function Te(e){Ce||typeof document>"u"||(Ce=!0,e.addEventListener("pds:ready",t=>{let n=t.detail?.mode;n&&document.documentElement.classList.add(`pds-${n}`,"pds-ready")}))}function ke({manageTheme:e,themeStorageKey:t,applyResolvedTheme:n,setupSystemListenerIfNeeded:o}){let c="light",s=null;if(e&&typeof window<"u"){try{s=localStorage.getItem(t)||null}catch{s=null}try{n?.(s),o?.(s)}catch{}s?s==="system"?c=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":c=s:c=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}return{resolvedTheme:c,storedTheme:s}}function q(e,{resolvePublicAssetURL:t}){let n=!!(e?.public?.root||e?.static?.root),o=t(e);return!n&&ze&&(o=ze),K(G(o))}async function Me(e,{baseEnhancers:t=[]}={}){let{autoDefineBaseURL:n="/auto-define/",autoDefinePreload:o=[],autoDefineMapper:c=null,enhancers:s=[],autoDefineOverrides:l=null,autoDefinePreferModule:g=!0}=e,y=(()=>{let a=new Map;return(t||[]).forEach(i=>a.set(i.selector,i)),(s||[]).forEach(i=>a.set(i.selector,i)),Array.from(a.values())})(),u=null;if(typeof window<"u"&&typeof document<"u"){let a=B,i=h=>{switch(h){case"pds-tabpanel":return"pds-tabstrip.js";default:return`${h}.js`}},{mapper:S,enhancers:m,...L}=l&&typeof l=="object"?l:{},_=m?Array.isArray(m)?m:typeof m=="object"?Object.values(m):[]:[],A=(()=>{let h=new Map;return(y||[]).forEach(w=>{w?.selector&&h.set(w.selector,w)}),(_||[]).forEach(w=>{if(!w?.selector)return;let R=h.get(w.selector)||null;h.set(w.selector,{...R||{},...w,run:typeof w?.run=="function"?w.run:R?.run})}),Array.from(h.values())})(),E={baseURL:n&&K(G(n,{preferModule:g})),predefine:o,scanExisting:!0,observeShadows:!0,patchAttachShadow:!0,debounceMs:16,enhancers:A,onError:(h,w)=>{if(typeof h=="string"&&h.startsWith("pds-")){let F=["pds-form","pds-drawer"].includes(h),M=w?.message?.includes("#pds/lit")||w?.message?.includes("Failed to resolve module specifier");F&&M?r.log("error",`\u274C PDS component <${h}> requires Lit but #pds/lit is not in import map.
2
- See: https://github.com/Pure-Web-Foundation/pure-ds/blob/main/readme.md#lit-components-not-working`):r.log("warn",`\u26A0\uFE0F PDS component <${h}> not found. Assets may not be installed.`)}else r.log("error",`\u274C Auto-define error for <${h}>:`,w)},...L,mapper:h=>{if(customElements.get(h))return null;if(typeof c=="function")try{let w=c(h);return w===void 0?i(h):w}catch(w){return r.log("warn","Custom autoDefine.mapper error; falling back to default:",w?.message||w),i(h)}return i(h)}};u=new a(E),o.length>0&&typeof a.define=="function"&&await a.define(...o,{baseURL:n,mapper:E.mapper,onError:E.onError})}return{autoDefiner:u,mergedEnhancers:y}}var de=["light","dark"],fe=new Set(de);function ft(e){let n=(Array.isArray(e?.themes)?e.themes.map(o=>String(o).toLowerCase()):de).filter(o=>fe.has(o));return n.length?n:de}function pe(e,{preferDocument:t=!0}={}){let n=String(e||"").toLowerCase();if(fe.has(n))return n;if(t&&typeof document<"u"){let o=document.documentElement?.getAttribute("data-theme");if(fe.has(o))return o}return typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function Ue(e,t){let n=pe(t);return ft(e).includes(n)}var pt=new Set(["log","warn","error","debug","info"]),mt="__PURE_DS_PDS_SINGLETON__",me=null,he=null;function Oe(){try{let t=(typeof globalThis<"u"?globalThis:window)?.[mt];if(t&&typeof t=="object")return t}catch{return null}return null}function ht(e){return!e||typeof e!="object"?null:{mode:e.mode==="live"||e.mode==="static"?e.mode:null,debug:e.debug===!0,thisArg:e.thisArg}}function yt(e){if(typeof e!="string")return"log";let t=e.toLowerCase();return pt.has(t)?t:"log"}function gt(){if(typeof he=="function")try{let t=ht(he());if(t)return t}catch{}let e=Oe();if(e){let t=e?.mode||e?.compiled?.mode||(e?.registry?.isLive?"live":"static"),n=(e?.debug||e?.currentConfig?.debug||e?.currentConfig?.design?.debug||e?.compiled?.debug||e?.compiled?.design?.debug||!1)===!0;return{mode:t,debug:n,thisArg:e}}return{mode:null,debug:!1}}function wt(){if(typeof me=="function")try{let t=me();if(typeof t=="function")return t}catch{}let e=Oe();return typeof e?.logHandler=="function"?e.logHandler:null}function je(e,t,...n){if(typeof console>"u")return;let o=typeof console[e]=="function"?console[e].bind(console):typeof console.log=="function"?console.log.bind(console):null;o&&(n.length>0?o(t,...n):o(t))}function St(e,t){let n=t?.debug===!0;return!(t?.mode==="static"&&!n||!n&&e!=="error"&&e!=="warn")}function Ne({getLogger:e,getContext:t}={}){me=typeof e=="function"?e:null,he=typeof t=="function"?t:null}function $e(e="log",t,...n){let o=yt(e),c=gt(),s=wt();if(s)try{s.call(c?.thisArg,o,t,...n);return}catch(l){je("error","Custom log handler failed:",l)}St(o,c)&&je(o,t,...n)}typeof r.initializing!="boolean"&&(r.initializing=!1);"currentPreset"in r||(r.currentPreset=null);typeof r.debug!="boolean"&&(r.debug=!1);"currentConfig"in r||(r.currentConfig=null);"compiled"in r||(r.compiled=null);typeof r.logHandler!="function"&&(r.logHandler=null);"mode"in r||(r.mode=null);var J=null,V=null,Y=null,Q=null,Z=null,X=null,Fe="__pdsLocalizationRuntime";function T(){if(X)return X;let e=r?.[Fe];return e&&typeof e=="object"?(X=e,e):null}function _t(e){let t=e&&typeof e=="object"?e:null;X=t,r[Fe]=t}Ne({getLogger:()=>typeof r.logHandler=="function"?r.logHandler:null,getContext:()=>{let e=r?.mode||r?.compiled?.mode||(r?.registry?.isLive?"live":"static"),t=(r?.debug||r?.currentConfig?.debug||r?.currentConfig?.design?.debug||r?.compiled?.debug||r?.compiled?.design?.debug||!1)===!0;return{mode:e,debug:t,thisArg:r}}});r.log=(e="log",t,...n)=>{$e(e,t,...n)};var b={locale:"en",messages:{},hasProvider:!1},ee=new Set;function We(e){return!!e&&typeof e!="string"&&typeof e=="object"&&"strTag"in e}function He(e=[]){let t="";for(let n=0;n<=e.length-1;n+=1)t+=e[n],n<e.length-1&&(t+=`{${n}}`);return t}function bt(e,t){return String(e).replace(/\{(\d+)\}/g,(n,o)=>t(Number(o)))}function Lt(e){if(!e||typeof e!="object")return{};let t={};for(let[n,o]of Object.entries(e)){if(typeof o=="string"){t[n]=o;continue}o&&typeof o=="object"&&typeof o.content=="string"&&(t[n]=o.content)}return t}function Et(e,...t){return{strTag:!0,strings:Array.from(e||[]),values:t,raw:Array.from(e?.raw||[])}}function At(e){if(!e)return"";if(We(e)){let n=He(e.strings||[]),o=b.messages[n]||n;return bt(o,c=>e.values?.[c])}let t=String(e);return b.messages[t]||t}function vt(e){if(!e)return;let t=We(e)?He(e.strings||[]):String(e);typeof t=="string"&&t.length>0&&ee.add(t)}function Be(e){if(!e||typeof e.msg!="function"||ee.size===0)return;let t=Array.from(ee);ee.clear();for(let n of t)try{e.msg(n)}catch{}}async function N(){let e=T();return e||(Z||(Z=import($("pds-localization.js")).then(n=>{if(typeof n?.msg!="function"||typeof n?.str!="function"||typeof n?.configureLocalization!="function"||typeof n?.loadLocale!="function"||typeof n?.setLocale!="function"||typeof n?.getLocalizationState!="function")throw new Error("Failed to load localization runtime exports");return _t(n),Be(n),n}).catch(n=>{throw Z=null,n})),Z)}var Ke=(e,t={})=>{let n=T();return typeof n?.msg=="function"?n.msg(e,t):(vt(e),At(e,t))},Ge=(e,...t)=>{let n=T();return typeof n?.str=="function"?n.str(e,...t):Et(e,...t)},te=(e=null)=>{let t=T();if(typeof t?.configureLocalization=="function")return t.configureLocalization(e);if(!e||typeof e!="object")return b.locale="en",b.messages={},b.hasProvider=!1,{locale:b.locale,messages:{...b.messages},hasProvider:b.hasProvider};typeof e.locale=="string"&&e.locale.trim()&&(b.locale=e.locale.trim()),Object.prototype.hasOwnProperty.call(e,"messages")&&(b.messages=Lt(e.messages));let n=!!(e.provider||e.translate||e.loadLocale||e.setLocale);return b.hasProvider=n,n&&N().then(o=>{o.configureLocalization(e),Be(o)}).catch(()=>{}),{locale:b.locale,messages:{...b.messages},hasProvider:b.hasProvider}},qe=async e=>(await N()).loadLocale(e),Je=async(e,t={})=>(await N()).setLocale(e,t),Ve=()=>{let e=T();return typeof e?.getLocalizationState=="function"?e.getLocalizationState():{locale:b.locale,messages:{...b.messages},hasProvider:b.hasProvider}},Ye=(e={})=>{let t=T();if(typeof t?.createJSONLocalization=="function")return t.createJSONLocalization(e);let n=typeof e?.locale=="string"&&e.locale.trim()?e.locale.trim().toLowerCase():"en",o=Array.isArray(e?.locales)?e.locales.map(y=>String(y||"").trim().toLowerCase()).filter(Boolean):[],c=Array.from(new Set([n,...o])),s=null,l=async()=>(s||(s=N().then(y=>typeof y?.createJSONLocalization=="function"?y.createJSONLocalization(e):null).catch(()=>null)),s),g=async(y="loadLocale")=>{let u=await l();if(!u||typeof u!="object")return null;let a=u.provider;if(!a||typeof a!="object")return null;let i=a[y];return typeof i=="function"?i:y==="setLocale"&&typeof a.loadLocale=="function"?a.loadLocale:null};return{locale:n,locales:[...c],provider:{locales:[...c],async loadLocale(y={}){let u=await g("loadLocale");return typeof u!="function"?{}:u(y)},async setLocale(y={}){let u=await g("setLocale");return typeof u!="function"?{}:u(y)}}}};function $(e,t){return t&&typeof t=="string"?t:`${q(r.currentConfig||{},{resolvePublicAssetURL:H})}core/${e}`}async function Pt(){return Array.isArray(r.defaultEnhancers)&&r.defaultEnhancers.length>0?r.defaultEnhancers:(Q||(Q=import($("pds-enhancers.js",r.currentConfig?.enhancersURL)).then(t=>{let n=Array.isArray(t?.defaultPDSEnhancers)?t.defaultPDSEnhancers:[];return r.defaultEnhancers=n,n}).catch(t=>{throw Q=null,t})),Q)}async function Rt(){return typeof r.ask=="function"&&r.ask!==Qe?r.ask:(V||(V=import($("pds-ask.js",r.currentConfig?.askURL)).then(t=>{let n=t?.ask;if(typeof n!="function")throw new Error("Failed to load ask helper");return r.ask=n,n}).catch(t=>{throw V=null,t})),V)}async function I(){return typeof r.toast=="function"&&r.toast!==k?r.toast:(Y||(Y=import($("pds-toast.js",r.currentConfig?.toastURL)).then(t=>{let n=t?.toast;if(typeof n!="function")throw new Error("Failed to load toast helper");return r.toast=n,n}).catch(t=>{throw Y=null,t})),Y)}async function Qe(...e){return(await Rt())(...e)}async function k(...e){return(await I())(...e)}k.success=async(...e)=>(await I()).success(...e);k.error=async(...e)=>(await I()).error(...e);k.warning=async(...e)=>(await I()).warning(...e);k.info=async(...e)=>(await I()).info(...e);var Ie=function(e="log",t,...n){r.log(e,t,...n)};function ge(e){if(e==null)return e;if(typeof e=="function")return;if(typeof e!="object")return e;if(Array.isArray(e))return e.map(n=>ge(n)).filter(n=>n!==void 0);let t={};for(let[n,o]of Object.entries(e)){let c=ge(o);c!==void 0&&(t[n]=c)}return t}function Ze(e,t=new WeakSet){if(!e||typeof e!="object"||t.has(e))return e;t.add(e),Object.freeze(e);for(let n of Object.keys(e))Ze(e[n],t);return e}function we(e){return e==null||typeof e!="object"?e:Ze(structuredClone(ge(e)))}async function xt(e,t={}){if(t?.runtimeConfig===!1||typeof fetch!="function")return null;let n=t?.runtimeConfigURL||`${e}pds-runtime-config.json`;try{let o=await fetch(n,{cache:"no-store"});return o.ok?await o.json():null}catch{return null}}r.registry=C;r.enums=Pe;r.adoptLayers=Ae;r.adoptPrimitives=Ee;r.parse=le;r.createStylesheet=ve;r.isLiveMode=()=>C.isLive;r.ask=Qe;r.toast=k;r.common=ue;r.msg=Ke;r.str=Ge;r.configureLocalization=te;r.loadLocale=qe;r.setLocale=Je;r.getLocalizationState=Ve;r.createJSONLocalization=Ye;r.i18n={msg:Ke,str:Ge,configure:te,loadLocale:qe,setLocale:Je,getState:Ve,createJSONLocalization:Ye};r.AutoComplete=null;r.loadAutoComplete=async()=>{if(r.AutoComplete&&typeof r.AutoComplete.connect=="function")return r.AutoComplete;let e=$("pds-autocomplete.js",r.currentConfig?.autoCompleteURL);return J||(J=import(e).then(t=>{let n=t?.AutoComplete||t?.default?.AutoComplete||t?.default||null;if(!n)throw new Error("AutoComplete export not found in module");return r.AutoComplete=n,n}).catch(t=>{throw J=null,t})),J};function Xe(e){let t=typeof CustomEvent=="function";try{let n=t?new CustomEvent("pds:ready",{detail:e}):new Event("pds:ready");r.dispatchEvent(n)}catch{}if(typeof document<"u")if(t){let n={detail:e,bubbles:!0,composed:!0};try{document.dispatchEvent(new CustomEvent("pds:ready",n))}catch{}try{document.dispatchEvent(new CustomEvent("pds-ready",n))}catch{}}else{try{document.dispatchEvent(new Event("pds:ready"))}catch{}try{document.dispatchEvent(new Event("pds-ready"))}catch{}}}function et(e={}){let t=typeof CustomEvent=="function",n={at:Date.now(),...e};try{let o=t?new CustomEvent("pds:config-changed",{detail:n}):new Event("pds:config-changed");r.dispatchEvent(o)}catch{}if(typeof document<"u")if(t){let o={detail:n,bubbles:!0,composed:!0};try{document.dispatchEvent(new CustomEvent("pds:config-changed",o))}catch{}}else try{document.dispatchEvent(new Event("pds:config-changed"))}catch{}}var ye="pure-ds-theme",x=null,O=null;function ne(e){try{if(typeof document>"u")return;let t="light";e?e==="system"?t=typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":t=e:t=typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",document.documentElement.setAttribute("data-theme",t)}catch{}}function oe(e){try{if(x&&O){try{typeof x.removeEventListener=="function"?x.removeEventListener("change",O):typeof x.removeListener=="function"&&x.removeListener(O)}catch{}x=null,O=null}if(e==="system"&&typeof window<"u"&&window.matchMedia){let t=window.matchMedia("(prefers-color-scheme: dark)"),n=o=>{let c=o?.matches===void 0?t.matches:o.matches;try{let s=c?"dark":"light";document.documentElement.setAttribute("data-theme",s),r.dispatchEvent(new CustomEvent("pds:theme:changed",{detail:{theme:s,source:"system"}}))}catch{}};x=t,O=n,typeof t.addEventListener=="function"?t.addEventListener("change",n):typeof t.addListener=="function"&&t.addListener(n)}}catch{}}var Dt=Object.getOwnPropertyDescriptor(r,"theme");Dt||Object.defineProperty(r,"theme",{get(){try{return typeof window>"u"?null:localStorage.getItem(ye)||null}catch{return null}},set(e){try{if(typeof window>"u")return;let t=r.currentConfig?.design||null,n=pe(e);if(t&&!Ue(t,n)){let o=t?.name||r.currentPreset?.name||r.currentConfig?.preset||"current preset";r.log("warn",`PDS theme "${n}" not supported by preset "${o}".`),r.dispatchEvent(new CustomEvent("pds:theme:blocked",{detail:{theme:e,resolvedTheme:n,preset:o}}));return}e==null?localStorage.removeItem(ye):localStorage.setItem(ye,e),ne(e),oe(e),r.dispatchEvent(new CustomEvent("pds:theme:changed",{detail:{theme:e,source:"api"}}))}catch{}}});r.defaultEnhancers=[];async function zt(e){r.initializing=!0;try{let t=e&&e.mode||"live",{mode:n,...o}=e||{};r.mode=t,r.logHandler=typeof o?.log=="function"?o.log:null,r.currentConfig=we(o);let c=o&&typeof o.localization=="object"&&o.localization?o.localization:null;c?(await N(),te(c)):te(null);let s;if(t==="static")s=await Ct(o);else{let{localization:g,...y}=o||{},u=q(y,{resolvePublicAssetURL:H}),a=y?.managerURL||y?.public?.managerURL||y?.manager?.url||new URL("core/pds-manager.js",u).href||new URL("./pds-manager.js",import.meta.url).href,{startLive:i}=await import(a);s=await i(r,y,{emitReady:Xe,emitConfigChanged:et,applyResolvedTheme:ne,setupSystemListenerIfNeeded:oe})}r.compiled=we(s?.config||null);let l=r?.compiled?.design?.icons?.externalPath||"/assets/img/icons/";return r.log("info",`startup ready; external icon path: ${l}`),s}finally{r.initializing=!1}}r.start=zt;async function Ct(e){if(!e||typeof e!="object")throw new Error("PDS.start({ mode: 'static', ... }) requires a valid configuration object");let t=e.applyGlobalStyles??!0,n=e.manageTheme??!0,o=e.themeStorageKey??"pure-ds-theme",c=e.staticPaths??{},s=q(e,{resolvePublicAssetURL:H}),l=e&&e.autoDefine||null,g;l&&l.baseURL?g=K(G(l.baseURL,{preferModule:!1})):g=`${s}components/`;let y=l&&Array.isArray(l.predefine)&&l.predefine||[],u=l&&typeof l.mapper=="function"&&l.mapper||null;try{Te(r);let{resolvedTheme:a}=ke({manageTheme:n,themeStorageKey:o,applyResolvedTheme:ne,setupSystemListenerIfNeeded:oe}),i=await xt(s,e),S=Array.isArray(e?.enhancers)?e.enhancers:e?.enhancers&&typeof e.enhancers=="object"?Object.values(e.enhancers):[],m=i?.config?{...i.config,...e,design:e?.design||i.config.design,preset:e?.preset||i.config.preset}:{...e},L={tokens:`${s}styles/pds-tokens.css.js`,primitives:`${s}styles/pds-primitives.css.js`,components:`${s}styles/pds-components.css.js`,utilities:`${s}styles/pds-utilities.css.js`,styles:`${s}styles/pds-styles.css.js`},_=i?.paths||{};if(c={...L,..._,...c},r.registry.setStaticMode(c),t&&typeof document<"u")try{let E=await r.registry.getStylesheet("styles");if(E){E._pds=!0;let h=(document.adoptedStyleSheets||[]).filter(w=>w._pds!==!0);document.adoptedStyleSheets=[...h,E],et({mode:"static",source:"static:styles-applied"})}}catch(E){Ie.call(r,"warn","Failed to apply static styles:",E)}let A=null,P=[];try{let E=await Pt(),h=await Me({autoDefineBaseURL:g,autoDefinePreload:y,autoDefineMapper:u,enhancers:S,autoDefineOverrides:l||null,autoDefinePreferModule:!(l&&l.baseURL)},{baseEnhancers:E});A=h.autoDefiner,P=h.mergedEnhancers||[]}catch(E){Ie.call(r,"error","\u274C Failed to initialize AutoDefiner/Enhancers (static):",E)}return r.compiled=we({mode:"static",...m,theme:a,enhancers:P}),Xe({mode:"static",config:m,theme:a,autoDefiner:A}),{config:m,theme:a,autoDefiner:A}}catch(a){throw r.dispatchEvent(new CustomEvent("pds:error",{detail:{error:a}})),a}}var tn=ne,nn=oe;export{r as PDS,tn as applyResolvedTheme,te as configureLocalization,Ye as createJSONLocalization,Ve as getLocalizationState,qe as loadLocale,Ke as msg,Je as setLocale,nn as setupSystemListenerIfNeeded,Ge as str};
1
+ var ot=Object.defineProperty;var st=(e,t)=>{for(var n in t)ot(e,n,{get:t[n],enumerable:!0})};var ae=class extends EventTarget{constructor(){super(),this.mode=null,this.compiled=null,this.log=()=>{},this.logHandler=null}},ve="__PURE_DS_PDS_SINGLETON__",ce=typeof globalThis<"u"?globalThis:window,ie=ce?.[ve],o=ie&&typeof ie.addEventListener=="function"?ie:new ae;ce&&(ce[ve]=o);typeof o.log!="function"&&(o.log=(e="log",t,...n)=>{if(typeof console>"u")return;let r=typeof console[e]=="function"?console[e].bind(console):typeof console.log=="function"?console.log.bind(console):null;r&&(n.length>0?r(t,...n):r(t))});typeof o.logHandler!="function"&&(o.logHandler=null);var le=class{constructor(){this._mode="static",this._staticPaths={tokens:"/assets/pds/styles/pds-tokens.css.js",primitives:"/assets/pds/styles/pds-primitives.css.js",components:"/assets/pds/styles/pds-components.css.js",utilities:"/assets/pds/styles/pds-utilities.css.js",styles:"/assets/pds/styles/pds-styles.css.js"}}setLiveMode(){this._mode="live"}setStaticMode(t={}){this._mode="static",this._staticPaths={...this._staticPaths,...t}}async getStylesheet(t){if(this._mode==="live")return null;try{return(await import(this._staticPaths[t]))[t]}catch(n){o.log("error",`Registry: failed to load static ${t}:`,n),o.log("error",`Registry: looking for ${this._staticPaths[t]}`),o.log("error","Registry: make sure you've run 'npm run pds:build' and configured PDS.start() with the correct static.root path");let r=new CSSStyleSheet;return r.replaceSync("/* Failed to load "+t+" */"),r}}get mode(){return this._mode}get isLive(){return this._mode==="live"}},C=new le;async function Ae(e,t=[],n=null){try{let r=n?.primitivesStylesheet?n.primitivesStylesheet:await C.getStylesheet("primitives");e.adoptedStyleSheets=[r,...t]}catch(r){let a=e.host?.tagName?.toLowerCase()||"unknown";o.log("error",`Adopter: <${a}> failed to adopt primitives:`,r),e.adoptedStyleSheets=t}}async function Pe(e,t=["primitives"],n=[],r=null){let a=Array.isArray(n)?n.filter(Boolean):[];if(a.length){let l=(Array.isArray(e.adoptedStyleSheets)?e.adoptedStyleSheets:[]).filter(S=>!a.includes(S));e.adoptedStyleSheets=[...l,...a]}try{let l=(await Promise.all(t.map(async S=>{if(r)switch(S){case"tokens":return r.tokensStylesheet;case"primitives":return r.primitivesStylesheet;case"components":return r.componentsStylesheet;case"utilities":return r.utilitiesStylesheet;default:break}return C.getStylesheet(S)}))).filter(S=>S!==null);e.adoptedStyleSheets=[...l,...a]}catch(s){let l=e.host?.tagName?.toLowerCase()||"unknown";o.log("error",`Adopter: <${l}> failed to adopt layers:`,s),e.adoptedStyleSheets=a}}function xe(e){let t=new CSSStyleSheet;return t.replaceSync(e),t}var Re={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 fe={};st(fe,{deepMerge:()=>De,fragmentFromTemplateLike:()=>ue,isObject:()=>W,parseFragment:()=>B,parseHTML:()=>de});function W(e){return e&&typeof e=="object"&&!Array.isArray(e)}function De(e,t){let n={...e};return W(e)&&W(t)&&Object.keys(t).forEach(r=>{W(t[r])?r in e?n[r]=De(e[r],t[r]):Object.assign(n,{[r]:t[r]}):Object.assign(n,{[r]:t[r]})}),n}function ue(e){let t=Array.isArray(e?.strings)?e.strings:[],n=Array.isArray(e?.values)?e.values:[],r=new Set,a=[],s=/(\s)(\.[\w-]+)=\s*$/,l=/(\s)(@[\w-]+)=\s*$/,S=/(\s)(\?[\w-]+)=\s*$/,g=/(\s)([\w:-]+)=\s*$/;for(let c=0;c<t.length;c+=1){let y=t[c]??"";if(c<n.length){let _=`pds-val-${c}`,v=y.match(s),w=y.match(l),u=y.match(S),b=y.match(g);if(v){let E=v[2].slice(1);y=y.replace(s,`$1data-pds-bind-${c}="prop:${E}:${_}"`),r.add(c)}else if(w){let E=w[2].slice(1);y=y.replace(l,`$1data-pds-bind-${c}="event:${E}:${_}"`),r.add(c)}else if(u){let E=u[2].slice(1);y=y.replace(S,`$1data-pds-bind-${c}="boolean:${E}:${_}"`),r.add(c)}else if(b){let E=b[2];y=y.replace(g,`$1data-pds-bind-${c}="attr:${E}:${_}"`),r.add(c)}}a.push(y),c<n.length&&!r.has(c)&&a.push(`<!--pds-val-${c}-->`)}let d=document.createElement("template");d.innerHTML=a.join("");let i=(c,y)=>{let _=c.parentNode;if(!_)return;if(y==null){_.removeChild(c);return}let v=w=>{if(w!=null){if(w instanceof Node){_.insertBefore(w,c);return}if(Array.isArray(w)){w.forEach(u=>v(u));return}_.insertBefore(document.createTextNode(String(w)),c)}};v(y),_.removeChild(c)},m=document.createTreeWalker(d.content,NodeFilter.SHOW_COMMENT),P=[];for(;m.nextNode();){let c=m.currentNode;c?.nodeValue?.startsWith("pds-val-")&&P.push(c)}return P.forEach(c=>{let y=Number(c.nodeValue.replace("pds-val-",""));i(c,n[y])}),d.content.querySelectorAll("*").forEach(c=>{[...c.attributes].forEach(y=>{if(!y.name.startsWith("data-pds-bind-"))return;let _=y.value.indexOf(":"),v=y.value.lastIndexOf(":");if(_<=0||v<=_){c.removeAttribute(y.name);return}let w=y.value.slice(0,_),u=y.value.slice(_+1,v),b=y.value.slice(v+1),E=Number(String(b).replace("pds-val-","")),x=n[E];if(!u||!Number.isInteger(E)){c.removeAttribute(y.name);return}w==="prop"?c[u]=x:w==="event"?(typeof x=="function"||x&&typeof x.handleEvent=="function")&&c.addEventListener(u,x):w==="boolean"?x?c.setAttribute(u,""):c.removeAttribute(u):w==="attr"&&(x==null||x===!1?c.removeAttribute(u):c.setAttribute(u,String(x))),c.removeAttribute(y.name)})}),d.content}function B(e,...t){if(Array.isArray(e)&&Object.prototype.hasOwnProperty.call(e,"raw"))return ue({strings:Array.from(e),values:t});if(Array.isArray(e?.strings)&&Array.isArray(e?.values))return ue({strings:e.strings,values:e.values});let r=document.createElement("template");return r.innerHTML=String(e??""),r.content}function de(e,...t){return B(e,...t).childNodes}var ze="pds",it=/^([a-z][a-z0-9+\-.]*:)?\/\//i,Te=/^[a-z]:/i;function j(e=""){return e.endsWith("/")?e:`${e}/`}function at(e="",t=ze){let n=e.replace(/\/+$/,"");return new RegExp(`(?:^|/)${t}$`,"i").test(n)?n:`${n}/${t}`}function ct(e){return e.replace(/^\.\/+/,"")}function lt(e){return Te.test(e)?e.replace(Te,"").replace(/^\/+/,""):e}function ut(e){return e.startsWith("public/")?e.substring(7):e}function H(e,t={}){let n=t.segment||ze,r=t.defaultRoot||`/assets/${n}/`,a=e?.public&&e.public?.root||e?.static&&e.static?.root||null;if(!a||typeof a!="string")return j(r);let s=a.trim();return s?(s=s.replace(/\\/g,"/"),s=at(s,n),s=j(s),it.test(s)?s:(s=ct(s),s=lt(s),s.startsWith("/")||(s=ut(s),s.startsWith("/")||(s=`/${s}`),s=s.replace(/\/+/g,(l,S)=>S===0?l:"/")),j(s))):j(r)}async function dt(...e){let t={};e.length&&typeof e[e.length-1]=="object"&&(t=e.pop()||{});let n=e,{baseURL:r,mapper:a=d=>`${d}.js`,onError:s=(d,i)=>console.error(`[defineWebComponents] ${d}:`,i)}=t,l=r?new URL(r,typeof location<"u"?location.href:import.meta.url):new URL("./",import.meta.url),S=d=>d.toLowerCase().replace(/(^|-)([a-z])/g,(i,m,P)=>P.toUpperCase()),g=async d=>{try{if(customElements.get(d))return{tag:d,status:"already-defined"};let i=a(d),P=await import(i instanceof URL?i.href:new URL(i,l).href),L=P?.default??P?.[S(d)];if(!L){if(customElements.get(d))return{tag:d,status:"self-defined"};throw new Error(`No export found for ${d}. Expected default export or named export "${S(d)}".`)}return customElements.get(d)?{tag:d,status:"race-already-defined"}:(customElements.define(d,L),{tag:d,status:"defined"})}catch(i){throw s(d,i),i}};return Promise.all(n.map(g))}var K=class{constructor(t={}){let{baseURL:n,mapper:r,onError:a,predicate:s=()=>!0,attributeModule:l="data-module",root:S=document,scanExisting:g=!0,debounceMs:d=16,observeShadows:i=!0,enhancers:m=[],patchAttachShadow:P=!0}=t,L=new Set,c=new Set,y=new Set,_=new Map,v=new WeakMap,w=new WeakMap,u=0,b=!1,E=null,x=f=>{if(!f||!m.length)return;let h=w.get(f);h||(h=new Set,w.set(f,h));for(let p of m)if(!(!p.selector||!p.run)&&!h.has(p.selector))try{f.matches&&f.matches(p.selector)&&(p.run(f),h.add(p.selector))}catch(R){console.warn(`[AutoDefiner] Error applying enhancer for selector "${p.selector}":`,R)}},U=(f,h)=>{if(!b&&!(!f||!f.includes("-"))&&!customElements.get(f)&&!c.has(f)&&!y.has(f)){if(h&&h.getAttribute){let p=h.getAttribute(l);p&&!_.has(f)&&_.set(f,p)}L.add(f),rt()}},rt=()=>{u||(u=setTimeout(_e,d))},T=f=>{if(f){if(f.nodeType===1){let h=f,p=h.tagName?.toLowerCase();p&&p.includes("-")&&!customElements.get(p)&&s(p,h)&&U(p,h),x(h),i&&h.shadowRoot&&se(h.shadowRoot)}f.querySelectorAll&&f.querySelectorAll("*").forEach(h=>{let p=h.tagName?.toLowerCase();p&&p.includes("-")&&!customElements.get(p)&&s(p,h)&&U(p,h),x(h),i&&h.shadowRoot&&se(h.shadowRoot)})}},se=f=>{if(!f||v.has(f))return;T(f);let h=new MutationObserver(p=>{for(let R of p)R.addedNodes?.forEach(z=>{T(z)}),R.type==="attributes"&&R.target&&T(R.target)});h.observe(f,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[l,...m.map(p=>p.selector).filter(p=>p.startsWith("data-"))]}),v.set(f,h)};async function _e(){if(clearTimeout(u),u=0,!L.size)return;let f=Array.from(L);L.clear(),f.forEach(h=>c.add(h));try{let h=p=>_.get(p)??(r?r(p):`${p}.js`);await dt(...f,{baseURL:n,mapper:h,onError:(p,R)=>{y.add(p),a?.(p,R)}})}catch{}finally{f.forEach(h=>c.delete(h))}}let Le=S===document?document.documentElement:S,Ee=new MutationObserver(f=>{for(let h of f)h.addedNodes?.forEach(p=>{T(p)}),h.type==="attributes"&&h.target&&T(h.target)});if(Ee.observe(Le,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[l,...m.map(f=>f.selector).filter(f=>f.startsWith("data-"))]}),i&&P&&Element.prototype.attachShadow){let f=Element.prototype.attachShadow;Element.prototype.attachShadow=function(p){let R=f.call(this,p);if(p&&p.mode==="open"){se(R);let z=this.tagName?.toLowerCase();z&&z.includes("-")&&!customElements.get(z)&&U(z,this)}return R},E=()=>Element.prototype.attachShadow=f}return g&&T(Le),{stop(){b=!0,Ee.disconnect(),E&&E(),u&&(clearTimeout(u),u=0),v.forEach(f=>f.disconnect())},flush:_e}}static async define(...t){let n={};t.length&&typeof t[t.length-1]=="object"&&(n=t.pop()||{});let r=t,{baseURL:a,mapper:s=i=>`${i}.js`,onError:l=(i,m)=>console.error(`[defineWebComponents] ${i}:`,m)}=n,S=a?new URL(a,typeof location<"u"?location.href:import.meta.url):new URL("./",import.meta.url),g=i=>i.toLowerCase().replace(/(^|-)([a-z])/g,(m,P,L)=>L.toUpperCase()),d=async i=>{try{if(customElements.get(i))return{tag:i,status:"already-defined"};let m=s(i),L=await import(m instanceof URL?m.href:new URL(m,S).href),c=L?.default??L?.[g(i)];if(!c){if(customElements.get(i))return{tag:i,status:"self-defined"};throw new Error(`No export found for ${i}. Expected default export or named export "${g(i)}".`)}return customElements.get(i)?{tag:i,status:"race-already-defined"}:(customElements.define(i,c),{tag:i,status:"defined"})}catch(m){throw l(i,m),m}};return Promise.all(r.map(d))}};var ft=/^[a-z][a-z0-9+\-.]*:\/\//i,$=(()=>{try{return import.meta.url}catch{return}})(),G=e=>typeof e=="string"&&e.length&&!e.endsWith("/")?`${e}/`:e;function q(e,t={}){if(!e||ft.test(e))return e;let{preferModule:n=!0}=t,r=()=>{if(!$)return null;try{return new URL(e,$).href}catch{return null}},a=()=>{if(typeof window>"u"||!window.location?.origin)return null;try{return new URL(e,window.location.origin).href}catch{return null}};return(n?r()||a():a()||r())||e}var Ce=(()=>{if($)try{let e=new URL($);if(/\/public\/assets\/js\//.test(e.pathname))return new URL("../pds/",$).href}catch{return}})(),Me=!1;function ke(e){Me||typeof document>"u"||(Me=!0,e.addEventListener("pds:ready",t=>{let n=t.detail?.mode;n&&document.documentElement.classList.add(`pds-${n}`,"pds-ready")}))}function Ue({manageTheme:e,themeStorageKey:t,applyResolvedTheme:n,setupSystemListenerIfNeeded:r}){let a="light",s=null;if(e&&typeof window<"u"){try{s=localStorage.getItem(t)||null}catch{s=null}try{n?.(s),r?.(s)}catch{}s?s==="system"?a=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a=s:a=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}return{resolvedTheme:a,storedTheme:s}}function J(e,{resolvePublicAssetURL:t}){let n=!!(e?.public?.root||e?.static?.root),r=t(e);return!n&&Ce&&(r=Ce),G(q(r))}async function je(e,{baseEnhancers:t=[]}={}){let{autoDefineBaseURL:n="/auto-define/",autoDefinePreload:r=[],autoDefineMapper:a=null,enhancers:s=[],autoDefineOverrides:l=null,autoDefinePreferModule:S=!0}=e,g=(()=>{let i=new Map;return(t||[]).forEach(m=>i.set(m.selector,m)),(s||[]).forEach(m=>i.set(m.selector,m)),Array.from(i.values())})(),d=null;if(typeof window<"u"&&typeof document<"u"){let i=K,m=u=>{switch(u){case"pds-tabpanel":return"pds-tabstrip.js";default:return`${u}.js`}},{mapper:P,enhancers:L,...c}=l&&typeof l=="object"?l:{},y=L?Array.isArray(L)?L:typeof L=="object"?Object.values(L):[]:[],_=(()=>{let u=new Map;return(g||[]).forEach(b=>{b?.selector&&u.set(b.selector,b)}),(y||[]).forEach(b=>{if(!b?.selector)return;let E=u.get(b.selector)||null;u.set(b.selector,{...E||{},...b,run:typeof b?.run=="function"?b.run:E?.run})}),Array.from(u.values())})(),w={baseURL:n&&G(q(n,{preferModule:S})),predefine:r,scanExisting:!0,observeShadows:!0,patchAttachShadow:!0,debounceMs:16,enhancers:_,onError:(u,b)=>{if(typeof u=="string"&&u.startsWith("pds-")){let x=["pds-form","pds-drawer"].includes(u),U=b?.message?.includes("#pds/lit")||b?.message?.includes("Failed to resolve module specifier");x&&U?o.log("error",`\u274C PDS component <${u}> requires Lit but #pds/lit is not in import map.
2
+ See: https://github.com/Pure-Web-Foundation/pure-ds/blob/main/readme.md#lit-components-not-working`):o.log("warn",`\u26A0\uFE0F PDS component <${u}> not found. Assets may not be installed.`)}else o.log("error",`\u274C Auto-define error for <${u}>:`,b)},...c,mapper:u=>{if(customElements.get(u))return null;if(typeof a=="function")try{let b=a(u);return b===void 0?m(u):b}catch(b){return o.log("warn","Custom autoDefine.mapper error; falling back to default:",b?.message||b),m(u)}return m(u)}};d=new i(w),r.length>0&&typeof i.define=="function"&&await i.define(...r,{baseURL:n,mapper:w.mapper,onError:w.onError})}return{autoDefiner:d,mergedEnhancers:g}}var pe=["light","dark"],me=new Set(pe);function pt(e){let n=(Array.isArray(e?.themes)?e.themes.map(r=>String(r).toLowerCase()):pe).filter(r=>me.has(r));return n.length?n:pe}function he(e,{preferDocument:t=!0}={}){let n=String(e||"").toLowerCase();if(me.has(n))return n;if(t&&typeof document<"u"){let r=document.documentElement?.getAttribute("data-theme");if(me.has(r))return r}return typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function $e(e,t){let n=he(t);return pt(e).includes(n)}var mt=new Set(["log","warn","error","debug","info"]),ht="__PURE_DS_PDS_SINGLETON__",ye=null,ge=null;function Ne(){try{let t=(typeof globalThis<"u"?globalThis:window)?.[ht];if(t&&typeof t=="object")return t}catch{return null}return null}function yt(e){return!e||typeof e!="object"?null:{mode:e.mode==="live"||e.mode==="static"?e.mode:null,debug:e.debug===!0,thisArg:e.thisArg}}function gt(e){if(typeof e!="string")return"log";let t=e.toLowerCase();return mt.has(t)?t:"log"}function wt(){if(typeof ge=="function")try{let t=yt(ge());if(t)return t}catch{}let e=Ne();if(e){let t=e?.mode||e?.compiled?.mode||(e?.registry?.isLive?"live":"static"),n=(e?.debug||e?.currentConfig?.debug||e?.currentConfig?.design?.debug||e?.compiled?.debug||e?.compiled?.design?.debug||!1)===!0;return{mode:t,debug:n,thisArg:e}}return{mode:null,debug:!1}}function bt(){if(typeof ye=="function")try{let t=ye();if(typeof t=="function")return t}catch{}let e=Ne();return typeof e?.logHandler=="function"?e.logHandler:null}function Oe(e,t,...n){if(typeof console>"u")return;let r=typeof console[e]=="function"?console[e].bind(console):typeof console.log=="function"?console.log.bind(console):null;r&&(n.length>0?r(t,...n):r(t))}function St(e,t){let n=t?.debug===!0;return!(t?.mode==="static"&&!n||!n&&e!=="error"&&e!=="warn")}function Ie({getLogger:e,getContext:t}={}){ye=typeof e=="function"?e:null,ge=typeof t=="function"?t:null}function Fe(e="log",t,...n){let r=gt(e),a=wt(),s=bt();if(s)try{s.call(a?.thisArg,r,t,...n);return}catch(l){Oe("error","Custom log handler failed:",l)}St(r,a)&&Oe(r,t,...n)}typeof o.initializing!="boolean"&&(o.initializing=!1);"currentPreset"in o||(o.currentPreset=null);typeof o.debug!="boolean"&&(o.debug=!1);"currentConfig"in o||(o.currentConfig=null);"compiled"in o||(o.compiled=null);typeof o.logHandler!="function"&&(o.logHandler=null);"mode"in o||(o.mode=null);var V=null,Y=null,Q=null,Z=null,X=null,ee=null,Be="__pdsLocalizationRuntime";function M(){if(ee)return ee;let e=o?.[Be];return e&&typeof e=="object"?(ee=e,e):null}function _t(e){let t=e&&typeof e=="object"?e:null;ee=t,o[Be]=t}Ie({getLogger:()=>typeof o.logHandler=="function"?o.logHandler:null,getContext:()=>{let e=o?.mode||o?.compiled?.mode||(o?.registry?.isLive?"live":"static"),t=(o?.debug||o?.currentConfig?.debug||o?.currentConfig?.design?.debug||o?.compiled?.debug||o?.compiled?.design?.debug||!1)===!0;return{mode:e,debug:t,thisArg:o}}});o.log=(e="log",t,...n)=>{Fe(e,t,...n)};var A={locale:"en",messages:{},hasProvider:!1},te=new Set;function He(e){return!!e&&typeof e!="string"&&typeof e=="object"&&"strTag"in e}function Ke(e=[]){let t="";for(let n=0;n<=e.length-1;n+=1)t+=e[n],n<e.length-1&&(t+=`{${n}}`);return t}function Lt(e,t){return String(e).replace(/\{(\d+)\}/g,(n,r)=>t(Number(r)))}function Et(e){if(!e||typeof e!="object")return{};let t={};for(let[n,r]of Object.entries(e)){if(typeof r=="string"){t[n]=r;continue}r&&typeof r=="object"&&typeof r.content=="string"&&(t[n]=r.content)}return t}function vt(e,...t){return{strTag:!0,strings:Array.from(e||[]),values:t,raw:Array.from(e?.raw||[])}}function At(e){if(!e)return"";if(He(e)){let n=Ke(e.strings||[]),r=A.messages[n]||n;return Lt(r,a=>e.values?.[a])}let t=String(e);return A.messages[t]||t}function Pt(e){if(!e)return;let t=He(e)?Ke(e.strings||[]):String(e);typeof t=="string"&&t.length>0&&te.add(t)}function Ge(e){if(!e||typeof e.msg!="function"||te.size===0)return;let t=Array.from(te);te.clear();for(let n of t)try{e.msg(n)}catch{}}async function N(){let e=M();return e||(X||(X=import(I("pds-localization.js")).then(n=>{if(typeof n?.msg!="function"||typeof n?.str!="function"||typeof n?.configureLocalization!="function"||typeof n?.loadLocale!="function"||typeof n?.setLocale!="function"||typeof n?.getLocalizationState!="function")throw new Error("Failed to load localization runtime exports");return _t(n),Ge(n),n}).catch(n=>{throw X=null,n})),X)}var qe=(e,t={})=>{let n=M();return typeof n?.msg=="function"?n.msg(e,t):(Pt(e),At(e,t))},Je=(e,...t)=>{let n=M();return typeof n?.str=="function"?n.str(e,...t):vt(e,...t)},ne=(e=null)=>{let t=M();if(typeof t?.configureLocalization=="function")return t.configureLocalization(e);if(!e||typeof e!="object")return A.locale="en",A.messages={},A.hasProvider=!1,{locale:A.locale,messages:{...A.messages},hasProvider:A.hasProvider};typeof e.locale=="string"&&e.locale.trim()&&(A.locale=e.locale.trim()),Object.prototype.hasOwnProperty.call(e,"messages")&&(A.messages=Et(e.messages));let n=!!(e.provider||e.translate||e.loadLocale||e.setLocale);return A.hasProvider=n,n&&N().then(r=>{r.configureLocalization(e),Ge(r)}).catch(()=>{}),{locale:A.locale,messages:{...A.messages},hasProvider:A.hasProvider}},Ve=async e=>(await N()).loadLocale(e),Ye=async(e,t={})=>(await N()).setLocale(e,t),Qe=()=>{let e=M();return typeof e?.getLocalizationState=="function"?e.getLocalizationState():{locale:A.locale,messages:{...A.messages},hasProvider:A.hasProvider}},Ze=(e={})=>{let t=M();if(typeof t?.createJSONLocalization=="function")return t.createJSONLocalization(e);let n=typeof e?.locale=="string"&&e.locale.trim()?e.locale.trim().toLowerCase():"en",r=Array.isArray(e?.locales)?e.locales.map(g=>String(g||"").trim().toLowerCase()).filter(Boolean):[],a=Array.from(new Set([n,...r])),s=null,l=async()=>(s||(s=N().then(g=>typeof g?.createJSONLocalization=="function"?g.createJSONLocalization(e):null).catch(()=>null)),s),S=async(g="loadLocale")=>{let d=await l();if(!d||typeof d!="object")return null;let i=d.provider;if(!i||typeof i!="object")return null;let m=i[g];return typeof m=="function"?m:g==="setLocale"&&typeof i.loadLocale=="function"?i.loadLocale:null};return{locale:n,locales:[...a],provider:{locales:[...a],async loadLocale(g={}){let d=await S("loadLocale");return typeof d!="function"?{}:d(g)},async setLocale(g={}){let d=await S("setLocale");return typeof d!="function"?{}:d(g)}}}};function I(e,t){return t&&typeof t=="string"?t:`${J(o.currentConfig||{},{resolvePublicAssetURL:H})}core/${e}`}async function xt(){return Array.isArray(o.defaultEnhancers)&&o.defaultEnhancers.length>0?o.defaultEnhancers:(Z||(Z=import(I("pds-enhancers.js",o.currentConfig?.enhancersURL)).then(t=>{let n=Array.isArray(t?.defaultPDSEnhancers)?t.defaultPDSEnhancers:[];return o.defaultEnhancers=n,n}).catch(t=>{throw Z=null,t})),Z)}async function Rt(){return typeof o.ask=="function"&&o.ask!==Xe?o.ask:(Y||(Y=import(I("pds-ask.js",o.currentConfig?.askURL)).then(t=>{let n=t?.ask;if(typeof n!="function")throw new Error("Failed to load ask helper");return o.ask=n,n}).catch(t=>{throw Y=null,t})),Y)}async function F(){return typeof o.toast=="function"&&o.toast!==k?o.toast:(Q||(Q=import(I("pds-toast.js",o.currentConfig?.toastURL)).then(t=>{let n=t?.toast;if(typeof n!="function")throw new Error("Failed to load toast helper");return o.toast=n,n}).catch(t=>{throw Q=null,t})),Q)}async function Xe(...e){return(await Rt())(...e)}async function k(...e){return(await F())(...e)}k.success=async(...e)=>(await F()).success(...e);k.error=async(...e)=>(await F()).error(...e);k.warning=async(...e)=>(await F()).warning(...e);k.info=async(...e)=>(await F()).info(...e);var We=function(e="log",t,...n){o.log(e,t,...n)};function be(e){if(e==null)return e;if(typeof e=="function")return;if(typeof e!="object")return e;if(Array.isArray(e))return e.map(n=>be(n)).filter(n=>n!==void 0);let t={};for(let[n,r]of Object.entries(e)){let a=be(r);a!==void 0&&(t[n]=a)}return t}function et(e,t=new WeakSet){if(!e||typeof e!="object"||t.has(e))return e;t.add(e),Object.freeze(e);for(let n of Object.keys(e))et(e[n],t);return e}function Se(e){return e==null||typeof e!="object"?e:et(structuredClone(be(e)))}async function Dt(e,t={}){if(t?.runtimeConfig===!1||typeof fetch!="function")return null;let n=t?.runtimeConfigURL||`${e}pds-runtime-config.json`;try{let r=await fetch(n,{cache:"no-store"});return r.ok?await r.json():null}catch{return null}}o.registry=C;o.enums=Re;o.adoptLayers=Pe;o.adoptPrimitives=Ae;var Tt=de;o.parse=Tt;var zt=B;o.html=zt;o.createStylesheet=xe;o.isLiveMode=()=>C.isLive;o.ask=Xe;o.toast=k;o.common=fe;o.msg=qe;o.str=Je;o.configureLocalization=ne;o.loadLocale=Ve;o.setLocale=Ye;o.getLocalizationState=Qe;o.createJSONLocalization=Ze;o.i18n={msg:qe,str:Je,configure:ne,loadLocale:Ve,setLocale:Ye,getState:Qe,createJSONLocalization:Ze};o.AutoComplete=null;o.loadAutoComplete=async()=>{if(o.AutoComplete&&typeof o.AutoComplete.connect=="function")return o.AutoComplete;let e=I("pds-autocomplete.js",o.currentConfig?.autoCompleteURL);return V||(V=import(e).then(t=>{let n=t?.AutoComplete||t?.default?.AutoComplete||t?.default||null;if(!n)throw new Error("AutoComplete export not found in module");return o.AutoComplete=n,n}).catch(t=>{throw V=null,t})),V};function tt(e){let t=typeof CustomEvent=="function";try{let n=t?new CustomEvent("pds:ready",{detail:e}):new Event("pds:ready");o.dispatchEvent(n)}catch{}if(typeof document<"u")if(t){let n={detail:e,bubbles:!0,composed:!0};try{document.dispatchEvent(new CustomEvent("pds:ready",n))}catch{}try{document.dispatchEvent(new CustomEvent("pds-ready",n))}catch{}}else{try{document.dispatchEvent(new Event("pds:ready"))}catch{}try{document.dispatchEvent(new Event("pds-ready"))}catch{}}}function nt(e={}){let t=typeof CustomEvent=="function",n={at:Date.now(),...e};try{let r=t?new CustomEvent("pds:config-changed",{detail:n}):new Event("pds:config-changed");o.dispatchEvent(r)}catch{}if(typeof document<"u")if(t){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{}}var we="pure-ds-theme",D=null,O=null;function re(e){try{if(typeof document>"u")return;let t="light";e?e==="system"?t=typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":t=e:t=typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",document.documentElement.setAttribute("data-theme",t)}catch{}}function oe(e){try{if(D&&O){try{typeof D.removeEventListener=="function"?D.removeEventListener("change",O):typeof D.removeListener=="function"&&D.removeListener(O)}catch{}D=null,O=null}if(e==="system"&&typeof window<"u"&&window.matchMedia){let t=window.matchMedia("(prefers-color-scheme: dark)"),n=r=>{let a=r?.matches===void 0?t.matches:r.matches;try{let s=a?"dark":"light";document.documentElement.setAttribute("data-theme",s),o.dispatchEvent(new CustomEvent("pds:theme:changed",{detail:{theme:s,source:"system"}}))}catch{}};D=t,O=n,typeof t.addEventListener=="function"?t.addEventListener("change",n):typeof t.addListener=="function"&&t.addListener(n)}}catch{}}var Ct=Object.getOwnPropertyDescriptor(o,"theme");Ct||Object.defineProperty(o,"theme",{get(){try{return typeof window>"u"?null:localStorage.getItem(we)||null}catch{return null}},set(e){try{if(typeof window>"u")return;let t=o.currentConfig?.design||null,n=he(e);if(t&&!$e(t,n)){let r=t?.name||o.currentPreset?.name||o.currentConfig?.preset||"current preset";o.log("warn",`PDS theme "${n}" not supported by preset "${r}".`),o.dispatchEvent(new CustomEvent("pds:theme:blocked",{detail:{theme:e,resolvedTheme:n,preset:r}}));return}e==null?localStorage.removeItem(we):localStorage.setItem(we,e),re(e),oe(e),o.dispatchEvent(new CustomEvent("pds:theme:changed",{detail:{theme:e,source:"api"}}))}catch{}}});o.defaultEnhancers=[];async function Mt(e){o.initializing=!0;try{let t=e&&e.mode||"live",{mode:n,...r}=e||{};o.mode=t,o.logHandler=typeof r?.log=="function"?r.log:null,o.currentConfig=Se(r);let a=r&&typeof r.localization=="object"&&r.localization?r.localization:null;a?(await N(),ne(a)):ne(null);let s;if(t==="static")s=await kt(r);else{let{localization:S,...g}=r||{},d=J(g,{resolvePublicAssetURL:H}),i=g?.managerURL||g?.public?.managerURL||g?.manager?.url||new URL("core/pds-manager.js",d).href||new URL("./pds-manager.js",import.meta.url).href,{startLive:m}=await import(i);s=await m(o,g,{emitReady:tt,emitConfigChanged:nt,applyResolvedTheme:re,setupSystemListenerIfNeeded:oe})}o.compiled=Se(s?.config||null);let l=o?.compiled?.design?.icons?.externalPath||"/assets/img/icons/";return o.log("info",`startup ready; external icon path: ${l}`),s}finally{o.initializing=!1}}o.start=Mt;async function kt(e){if(!e||typeof e!="object")throw new Error("PDS.start({ mode: 'static', ... }) requires a valid configuration object");let t=e.applyGlobalStyles??!0,n=e.manageTheme??!0,r=e.themeStorageKey??"pure-ds-theme",a=e.staticPaths??{},s=J(e,{resolvePublicAssetURL:H}),l=e&&e.autoDefine||null,S;l&&l.baseURL?S=G(q(l.baseURL,{preferModule:!1})):S=`${s}components/`;let g=l&&Array.isArray(l.predefine)&&l.predefine||[],d=l&&typeof l.mapper=="function"&&l.mapper||null;try{ke(o);let{resolvedTheme:i}=Ue({manageTheme:n,themeStorageKey:r,applyResolvedTheme:re,setupSystemListenerIfNeeded:oe}),m=await Dt(s,e),P=Array.isArray(e?.enhancers)?e.enhancers:e?.enhancers&&typeof e.enhancers=="object"?Object.values(e.enhancers):[],L=m?.config?{...m.config,...e,design:e?.design||m.config.design,preset:e?.preset||m.config.preset}:{...e},c={tokens:`${s}styles/pds-tokens.css.js`,primitives:`${s}styles/pds-primitives.css.js`,components:`${s}styles/pds-components.css.js`,utilities:`${s}styles/pds-utilities.css.js`,styles:`${s}styles/pds-styles.css.js`},y=m?.paths||{};if(a={...c,...y,...a},o.registry.setStaticMode(a),t&&typeof document<"u")try{let w=await o.registry.getStylesheet("styles");if(w){w._pds=!0;let u=(document.adoptedStyleSheets||[]).filter(b=>b._pds!==!0);document.adoptedStyleSheets=[...u,w],nt({mode:"static",source:"static:styles-applied"})}}catch(w){We.call(o,"warn","Failed to apply static styles:",w)}let _=null,v=[];try{let w=await xt(),u=await je({autoDefineBaseURL:S,autoDefinePreload:g,autoDefineMapper:d,enhancers:P,autoDefineOverrides:l||null,autoDefinePreferModule:!(l&&l.baseURL)},{baseEnhancers:w});_=u.autoDefiner,v=u.mergedEnhancers||[]}catch(w){We.call(o,"error","\u274C Failed to initialize AutoDefiner/Enhancers (static):",w)}return o.compiled=Se({mode:"static",...L,theme:i,enhancers:v}),tt({mode:"static",config:L,theme:i,autoDefiner:_}),{config:L,theme:i,autoDefiner:_}}catch(i){throw o.dispatchEvent(new CustomEvent("pds:error",{detail:{error:i}})),i}}var on=re,sn=oe;export{o as PDS,on as applyResolvedTheme,ne as configureLocalization,Ze as createJSONLocalization,Qe as getLocalizationState,zt as html,Ve as loadLocale,qe as msg,Tt as parse,Ye as setLocale,sn as setupSystemListenerIfNeeded,Je as str};
@@ -3616,7 +3616,7 @@ class PdsLiveEdit extends HTMLElement {
3616
3616
  title: msg("Reset Config?"),
3617
3617
  type: "confirm",
3618
3618
  buttons: {
3619
- ok: { name: msg("Reset"), variant: "danger" },
3619
+ ok: { name: msg("Reset"), variant: "danger", primary: true },
3620
3620
  cancel: { name: msg("Cancel"), cancel: true },
3621
3621
  },
3622
3622
  }
@@ -39,8 +39,8 @@ export class AppToaster extends HTMLElement {
39
39
 
40
40
  // Listen for global toast events
41
41
  this._handleToastEvent = (e) => {
42
- const { message, type, duration, closable, persistent } = e.detail;
43
- this.toast(message, { type, duration, closable, persistent });
42
+ const { message, type, title, duration, closable, persistent, html, action } = e.detail;
43
+ this.toast(message, { type, title, duration, closable, persistent, html, action });
44
44
  };
45
45
  PDS.addEventListener('pds:toast', this._handleToastEvent);
46
46
 
@@ -80,6 +80,32 @@ export class AppToaster extends HTMLElement {
80
80
  opacity: 1;
81
81
  }
82
82
 
83
+ /* Toast variants: mirror callout semantic token mapping exactly */
84
+ aside.toast.callout-success {
85
+ background-color: var(--color-success-display-bg);
86
+ border-color: var(--color-success-display-border);
87
+ color: var(--color-success-display-text);
88
+ }
89
+
90
+ aside.toast.callout-info {
91
+ background-color: var(--color-info-display-bg);
92
+ border-color: var(--color-info-display-border);
93
+ color: var(--color-info-display-text);
94
+ }
95
+
96
+ aside.toast.callout-warning {
97
+ background-color: var(--color-warning-display-bg);
98
+ border-color: var(--color-warning-display-border);
99
+ color: var(--color-warning-display-text);
100
+ }
101
+
102
+ aside.toast.callout-danger,
103
+ aside.toast.callout-error {
104
+ background-color: var(--color-danger-display-bg);
105
+ border-color: var(--color-danger-display-border);
106
+ color: var(--color-danger-display-text);
107
+ }
108
+
83
109
  /* Toast dismiss animation */
84
110
  aside.toast.dismissing {
85
111
  margin-bottom: 0;
@@ -103,20 +129,20 @@ export class AppToaster extends HTMLElement {
103
129
  }
104
130
 
105
131
  aside.toast.callout-info .toast-progress {
106
- background: var(--color-info-600);
132
+ background: var(--color-info-display-border);
107
133
  }
108
134
 
109
135
  aside.toast.callout-success .toast-progress {
110
- background: var(--color-success-600);
136
+ background: var(--color-success-display-border);
111
137
  }
112
138
 
113
139
  aside.toast.callout-warning .toast-progress {
114
- background: var(--color-warning-600);
140
+ background: var(--color-warning-display-border);
115
141
  }
116
142
 
117
143
  aside.toast.callout-danger .toast-progress,
118
144
  aside.toast.callout-error .toast-progress {
119
- background: var(--color-danger-600);
145
+ background: var(--color-danger-display-border);
120
146
  }
121
147
 
122
148
  /* Toast shrink animation */
@@ -184,6 +210,7 @@ export class AppToaster extends HTMLElement {
184
210
  * @param {string} message - The message to display
185
211
  * @param {Object} [options] - Toast configuration
186
212
  * @param {"information"|"success"|"warning"|"error"} [options.type="information"] - Toast type
213
+ * @param {string} [options.title] - Optional heading text (falls back to type-based title when empty)
187
214
  * @param {number} [options.duration] - Duration in ms (auto-calculated if not provided)
188
215
  * @param {boolean} [options.closable=true] - Whether toast can be closed manually
189
216
  * @param {boolean} [options.persistent=false] - If true, toast doesn't auto-dismiss
@@ -192,6 +219,7 @@ export class AppToaster extends HTMLElement {
192
219
  toast(message, options = {}) {
193
220
  const defaults = {
194
221
  type: "information", // information, success, warning, error
222
+ title: null,
195
223
  duration: null, // auto-calculated based on reading time
196
224
  closable: true,
197
225
  persistent: false, // if true, doesn't auto-dismiss
@@ -239,6 +267,7 @@ export class AppToaster extends HTMLElement {
239
267
  toastId,
240
268
  message,
241
269
  config.type,
270
+ config.title,
242
271
  config.closable,
243
272
  duration,
244
273
  config.persistent,
@@ -272,12 +301,13 @@ export class AppToaster extends HTMLElement {
272
301
  * @param {string} id
273
302
  * @param {string} message
274
303
  * @param {"information"|"success"|"warning"|"error"} type
304
+ * @param {string|null|undefined} title
275
305
  * @param {boolean} closable
276
306
  * @param {number} duration
277
307
  * @param {boolean} persistent
278
308
  * @returns {HTMLElement}
279
309
  */
280
- createToastElement(id, message, type, closable, duration, persistent, html = false, action = null) {
310
+ createToastElement(id, message, type, title, closable, duration, persistent, html = false, action = null) {
281
311
  const toast = document.createElement("aside");
282
312
  toast.className = `toast callout ${this.#getAlertClass(type)}`;
283
313
  toast.setAttribute("data-toast-id", id);
@@ -292,9 +322,9 @@ export class AppToaster extends HTMLElement {
292
322
  const content = document.createElement("div");
293
323
  content.className = "toast-content";
294
324
 
295
- const title = document.createElement("div");
296
- title.className = "callout-title";
297
- title.textContent = this.#getToastTitle(type);
325
+ const titleElement = document.createElement("div");
326
+ titleElement.className = "callout-title";
327
+ titleElement.textContent = this.#resolveToastTitle(type, title);
298
328
 
299
329
  const text = document.createElement("p");
300
330
  text.style.margin = "0";
@@ -304,7 +334,7 @@ export class AppToaster extends HTMLElement {
304
334
  text.textContent = String(message || "");
305
335
  }
306
336
 
307
- content.appendChild(title);
337
+ content.appendChild(titleElement);
308
338
  content.appendChild(text);
309
339
 
310
340
  if (action && typeof action === "object" && action.label) {
@@ -460,6 +490,20 @@ export class AppToaster extends HTMLElement {
460
490
  return titles[type] || titles.information;
461
491
  }
462
492
 
493
+ /**
494
+ * Resolve toast heading: custom title first, then localized type-based fallback.
495
+ * @param {"information"|"success"|"warning"|"error"} type
496
+ * @param {string|null|undefined} title
497
+ * @returns {string}
498
+ */
499
+ #resolveToastTitle(type, title) {
500
+ const normalizedCustomTitle = typeof title === "string" ? title.trim() : "";
501
+ if (normalizedCustomTitle) {
502
+ return normalizedCustomTitle;
503
+ }
504
+ return this.#getToastTitle(type);
505
+ }
506
+
463
507
  /**
464
508
  * Resolve toast type to an alert utility class name.
465
509
  * @param {"information"|"success"|"warning"|"error"} type
@@ -1,16 +1,16 @@
1
- function F(a){let e=Array.isArray(a?.strings)?a.strings:[],l=Array.isArray(a?.values)?a.values:[],f=new Set,y=[],v=/(\s)(\.[\w-]+)=\s*$/;for(let o=0;o<e.length;o+=1){let t=e[o]??"",d=t.match(v);if(d&&o<l.length){let n=d[2].slice(1),i=`pds-val-${o}`;t=t.replace(v,`$1data-pds-prop="${n}:${i}"`),f.add(o)}y.push(t),o<l.length&&!f.has(o)&&y.push(`<!--pds-val-${o}-->`)}let s=document.createElement("template");s.innerHTML=y.join("");let r=(o,t)=>{let d=o.parentNode;if(!d)return;if(t==null){d.removeChild(o);return}let b=n=>{if(n!=null){if(n instanceof Node){d.insertBefore(n,o);return}if(Array.isArray(n)){n.forEach(i=>b(i));return}d.insertBefore(document.createTextNode(String(n)),o)}};b(t),d.removeChild(o)},c=document.createTreeWalker(s.content,NodeFilter.SHOW_COMMENT),u=[];for(;c.nextNode();){let o=c.currentNode;o?.nodeValue?.startsWith("pds-val-")&&u.push(o)}return u.forEach(o=>{let t=Number(o.nodeValue.replace("pds-val-",""));r(o,l[t])}),s.content.querySelectorAll("*").forEach(o=>{let t=o.getAttribute("data-pds-prop");if(!t)return;let[d,b]=t.split(":"),n=Number(String(b).replace("pds-val-",""));d&&Number.isInteger(n)&&(o[d]=l[n]),o.removeAttribute("data-pds-prop")}),s.content}var x=class extends EventTarget{constructor(){super(),this.mode=null,this.compiled=null,this.log=()=>{},this.logHandler=null}},L="__PURE_DS_PDS_SINGLETON__",O=typeof globalThis<"u"?globalThis:window,E=O?.[L],h=E&&typeof E.addEventListener=="function"?E:new x;O&&(O[L]=h);typeof h.log!="function"&&(h.log=(a="log",e,...l)=>{if(typeof console>"u")return;let f=typeof console[a]=="function"?console[a].bind(console):typeof console.log=="function"?console.log.bind(console):null;f&&(l.length>0?f(e,...l):f(e))});typeof h.logHandler!="function"&&(h.logHandler=null);function T(a,e){if(e==null)return;if(typeof e=="object"&&Array.isArray(e.strings)&&Array.isArray(e.values)){a.appendChild(F(e));return}if(e instanceof Node){a.appendChild(e);return}if(Array.isArray(e)){e.forEach(f=>T(a,f));return}let l=typeof e=="string"?e:String(e);a.appendChild(document.createTextNode(l))}function V(a){if(!a)return!0;let e=!0,l=r=>{if(!r||typeof r!="object")return"<unknown>";let c=r.tagName?String(r.tagName).toLowerCase():"node",u=r.id?`#${r.id}`:"",g=typeof r.getAttribute=="function"?r.getAttribute("name"):null,o=g?`[name="${g}"]`:"";return`${c}${u}${o}`},f=(r,c)=>{if(!r||typeof r.querySelectorAll!="function")return;let u=Array.from(r.querySelectorAll(":invalid"));if(!u.length)return;let g=u.map(o=>{let t=typeof o.validationMessage=="string"?o.validationMessage:"";return`${l(o)}${t?` \u2014 ${t}`:""}`});h.log("warn",`ask.validateDialogFormTree: invalid controls in ${c}:`,g)},y=(r,c)=>{try{let u=typeof r.reportValidity=="function"?r.reportValidity():r.checkValidity?.()??!0;return u||f(r,c),u}catch(u){return h.log("error",`ask.validateDialogFormTree: validation threw in ${c}`,u),!1}};e=y(a,"host dialog form")&&e;let v=Array.from(a.querySelectorAll("form"));for(let r of v){if(r===a)continue;e=y(r,`nested light DOM form ${l(r)}`)&&e}let s=Array.from(a.querySelectorAll("*"));for(let r of s){let c=r?.shadowRoot;if(!c)continue;let u=Array.from(c.querySelectorAll("form"));for(let g of u)e=y(g,`shadow form under ${l(r)}`)&&e}return e}function k(){let a=navigator.userAgent,e=/Safari/i.test(a),l=/(Chrome|Chromium|CriOS|FxiOS|EdgiOS|OPiOS|Opera)/i.test(a);return e&&!l}function D(a){if(window.matchMedia?.("(prefers-reduced-motion: reduce)").matches)return;let e=window.matchMedia?.("(max-width: 639px)").matches,l=a.classList.contains("dialog-no-scale-animation")?"pds-dialog-fade-enter":e?"pds-dialog-enter-mobile":"pds-dialog-enter";a.style.animation="none",a.offsetWidth,a.style.animation=`${l} var(--transition-normal) ease`,a.addEventListener("animationend",()=>{a.style.animation=""},{once:!0})}function P(a={}){return a?.liquidGlassEffects===!0}async function j(a,e={}){let l={title:"Confirm",type:"confirm",buttons:{ok:{name:"OK",primary:!0},cancel:{name:"Cancel",cancel:!0}}};e={...l,...e};let f=e.buttons&&typeof e.buttons=="object"?e.buttons:l.buttons,y=s=>{if(s==null)return{actionCode:"dismiss",actionKind:"dismiss",button:null};let r=f?.[s]??null,c=s==="ok"?"ok":s==="dismiss"?"dismiss":r?.cancel||s==="cancel"?"cancel":"custom";return{actionCode:s,actionKind:c,button:r}},v=s=>{if(typeof s>"u"||s===null||s===!0)return{allow:!0};if(s===!1)return{allow:!1};if(typeof s=="object"){let r=Object.prototype.hasOwnProperty.call(s,"result")||Object.prototype.hasOwnProperty.call(s,"value");return{allow:s.allow!==!1,hasResult:r,result:Object.prototype.hasOwnProperty.call(s,"result")?s.result:s.value}}return{allow:!!s}};return new Promise(s=>{let r=!1,c=(n,i,{shouldClose:m=!0}={})=>{if(!r&&(r=!0,s(n),!(!m||!i?.open)))try{i.close()}catch(p){h.log("warn","ask: dialog.close() failed",p)}},u=async n=>{if(n.actionKind!=="ok"||typeof e.beforeClose!="function")return{allow:!0};try{let i=await e.beforeClose(n);return v(i)}catch(i){return h.log("error","ask.beforeClose: validation failed",i),{allow:!1}}},g=({actionKind:n,form:i})=>n==="ok"?e.useForm&&i?new FormData(i):!0:!1,o=async({actionCode:n,form:i,submitter:m,originalEvent:p,bypassValidation:S=!1,shouldClose:N=!0})=>{if(r)return;let{actionKind:w,button:q}=y(n),A=i||t.querySelector("form")||null;if(e.useForm&&w==="ok"&&A&&!S&&!V(A))return;let C=g({actionKind:w,form:A}),$=await u({actionCode:n,actionKind:w,dialog:t,form:A,formData:e.useForm&&w==="ok"&&A?C:null,submitter:m,originalEvent:p,options:e,button:q,defaultResult:C});if(!$.allow)return;let M=$.hasResult?$.result:C;c(M,t,{shouldClose:N})},t=document.createElement("dialog");k()&&t.classList.add("dialog-no-scale-animation"),P(e)&&t.classList.add("liquid-glass"),e.size&&t.classList.add(`dialog-${e.size}`),e.type&&t.classList.add(`dialog-${e.type}`),e.class&&(Array.isArray(e.class)?t.classList.add(...e.class):t.classList.add(e.class)),e.maxHeight&&t.style.setProperty("--dialog-max-height",e.maxHeight);let d=Object.entries(f).map(([n,i])=>{let m=i.primary?"btn-primary btn-sm":"btn-outline btn-sm",p=i.cancel?"button":"submit",S=i.formNoValidate?" formnovalidate":"";return`<button type="${p}" class="${m}" value="${n}"${S}>${i.name}</button>`});if(e.useForm){let n=document.createElement("div");T(n,a);let i=n.querySelector("form");if(i){t.innerHTML=`
1
+ function N(a){let e=Array.isArray(a?.strings)?a.strings:[],u=Array.isArray(a?.values)?a.values:[],m=new Set,A=[],$=/(\s)(\.[\w-]+)=\s*$/,s=/(\s)(@[\w-]+)=\s*$/,o=/(\s)(\?[\w-]+)=\s*$/,d=/(\s)([\w:-]+)=\s*$/;for(let r=0;r<e.length;r+=1){let t=e[r]??"";if(r<u.length){let n=`pds-val-${r}`,c=t.match($),l=t.match(s),p=t.match(o),w=t.match(d);if(c){let y=c[2].slice(1);t=t.replace($,`$1data-pds-bind-${r}="prop:${y}:${n}"`),m.add(r)}else if(l){let y=l[2].slice(1);t=t.replace(s,`$1data-pds-bind-${r}="event:${y}:${n}"`),m.add(r)}else if(p){let y=p[2].slice(1);t=t.replace(o,`$1data-pds-bind-${r}="boolean:${y}:${n}"`),m.add(r)}else if(w){let y=w[2];t=t.replace(d,`$1data-pds-bind-${r}="attr:${y}:${n}"`),m.add(r)}}A.push(t),r<u.length&&!m.has(r)&&A.push(`<!--pds-val-${r}-->`)}let f=document.createElement("template");f.innerHTML=A.join("");let g=(r,t)=>{let n=r.parentNode;if(!n)return;if(t==null){n.removeChild(r);return}let c=l=>{if(l!=null){if(l instanceof Node){n.insertBefore(l,r);return}if(Array.isArray(l)){l.forEach(p=>c(p));return}n.insertBefore(document.createTextNode(String(l)),r)}};c(t),n.removeChild(r)},h=document.createTreeWalker(f.content,NodeFilter.SHOW_COMMENT),i=[];for(;h.nextNode();){let r=h.currentNode;r?.nodeValue?.startsWith("pds-val-")&&i.push(r)}return i.forEach(r=>{let t=Number(r.nodeValue.replace("pds-val-",""));g(r,u[t])}),f.content.querySelectorAll("*").forEach(r=>{[...r.attributes].forEach(t=>{if(!t.name.startsWith("data-pds-bind-"))return;let n=t.value.indexOf(":"),c=t.value.lastIndexOf(":");if(n<=0||c<=n){r.removeAttribute(t.name);return}let l=t.value.slice(0,n),p=t.value.slice(n+1,c),w=t.value.slice(c+1),y=Number(String(w).replace("pds-val-","")),b=u[y];if(!p||!Number.isInteger(y)){r.removeAttribute(t.name);return}l==="prop"?r[p]=b:l==="event"?(typeof b=="function"||b&&typeof b.handleEvent=="function")&&r.addEventListener(p,b):l==="boolean"?b?r.setAttribute(p,""):r.removeAttribute(p):l==="attr"&&(b==null||b===!1?r.removeAttribute(p):r.setAttribute(p,String(b))),r.removeAttribute(t.name)})}),f.content}var T=class extends EventTarget{constructor(){super(),this.mode=null,this.compiled=null,this.log=()=>{},this.logHandler=null}},F="__PURE_DS_PDS_SINGLETON__",L=typeof globalThis<"u"?globalThis:window,x=L?.[F],v=x&&typeof x.addEventListener=="function"?x:new T;L&&(L[F]=v);typeof v.log!="function"&&(v.log=(a="log",e,...u)=>{if(typeof console>"u")return;let m=typeof console[a]=="function"?console[a].bind(console):typeof console.log=="function"?console.log.bind(console):null;m&&(u.length>0?m(e,...u):m(e))});typeof v.logHandler!="function"&&(v.logHandler=null);function M(a,e){if(e==null)return;if(typeof e=="object"&&Array.isArray(e.strings)&&Array.isArray(e.values)){a.appendChild(N(e));return}if(e instanceof Node){a.appendChild(e);return}if(Array.isArray(e)){e.forEach(m=>M(a,m));return}let u=typeof e=="string"?e:String(e);a.appendChild(document.createTextNode(u))}function P(a){if(!a)return!0;let e=!0,u=o=>{if(!o||typeof o!="object")return"<unknown>";let d=o.tagName?String(o.tagName).toLowerCase():"node",f=o.id?`#${o.id}`:"",g=typeof o.getAttribute=="function"?o.getAttribute("name"):null,h=g?`[name="${g}"]`:"";return`${d}${f}${h}`},m=(o,d)=>{if(!o||typeof o.querySelectorAll!="function")return;let f=Array.from(o.querySelectorAll(":invalid"));if(!f.length)return;let g=f.map(h=>{let i=typeof h.validationMessage=="string"?h.validationMessage:"";return`${u(h)}${i?` \u2014 ${i}`:""}`});v.log("warn",`ask.validateDialogFormTree: invalid controls in ${d}:`,g)},A=(o,d)=>{try{let f=typeof o.reportValidity=="function"?o.reportValidity():o.checkValidity?.()??!0;return f||m(o,d),f}catch(f){return v.log("error",`ask.validateDialogFormTree: validation threw in ${d}`,f),!1}};e=A(a,"host dialog form")&&e;let $=Array.from(a.querySelectorAll("form"));for(let o of $){if(o===a)continue;e=A(o,`nested light DOM form ${u(o)}`)&&e}let s=Array.from(a.querySelectorAll("*"));for(let o of s){let d=o?.shadowRoot;if(!d)continue;let f=Array.from(d.querySelectorAll("form"));for(let g of f)e=A(g,`shadow form under ${u(o)}`)&&e}return e}function V(){let a=navigator.userAgent,e=/Safari/i.test(a),u=/(Chrome|Chromium|CriOS|FxiOS|EdgiOS|OPiOS|Opera)/i.test(a);return e&&!u}function k(a){if(window.matchMedia?.("(prefers-reduced-motion: reduce)").matches)return;let e=window.matchMedia?.("(max-width: 639px)").matches,u=a.classList.contains("dialog-no-scale-animation")?"pds-dialog-fade-enter":e?"pds-dialog-enter-mobile":"pds-dialog-enter";a.style.animation="none",a.offsetWidth,a.style.animation=`${u} var(--transition-normal) ease`,a.addEventListener("animationend",()=>{a.style.animation=""},{once:!0})}function D(a={}){return a?.liquidGlassEffects===!0}async function j(a,e={}){let u={title:"Confirm",type:"confirm",buttons:{ok:{name:"OK",primary:!0},cancel:{name:"Cancel",cancel:!0}}};e={...u,...e};let m=e.buttons&&typeof e.buttons=="object"?e.buttons:u.buttons,A=s=>{if(s==null)return{actionCode:"dismiss",actionKind:"dismiss",button:null};let o=m?.[s]??null,d=s==="ok"?"ok":s==="dismiss"?"dismiss":o?.cancel||s==="cancel"?"cancel":"custom";return{actionCode:s,actionKind:d,button:o}},$=s=>{if(typeof s>"u"||s===null||s===!0)return{allow:!0};if(s===!1)return{allow:!1};if(typeof s=="object"){let o=Object.prototype.hasOwnProperty.call(s,"result")||Object.prototype.hasOwnProperty.call(s,"value");return{allow:s.allow!==!1,hasResult:o,result:Object.prototype.hasOwnProperty.call(s,"result")?s.result:s.value}}return{allow:!!s}};return new Promise(s=>{let o=!1,d=(t,n,{shouldClose:c=!0}={})=>{if(!o&&(o=!0,s(t),!(!c||!n?.open)))try{n.close()}catch(l){v.log("warn","ask: dialog.close() failed",l)}},f=async t=>{if(t.actionKind!=="ok"||typeof e.beforeClose!="function")return{allow:!0};try{let n=await e.beforeClose(t);return $(n)}catch(n){return v.log("error","ask.beforeClose: validation failed",n),{allow:!1}}},g=({actionKind:t,form:n})=>t==="ok"?e.useForm&&n?new FormData(n):!0:!1,h=async({actionCode:t,form:n,submitter:c,originalEvent:l,bypassValidation:p=!1,shouldClose:w=!0})=>{if(o)return;let{actionKind:y,button:b}=A(t),S=n||i.querySelector("form")||null;if(e.useForm&&y==="ok"&&S&&!p&&!P(S))return;let E=g({actionKind:y,form:S}),O=await f({actionCode:t,actionKind:y,dialog:i,form:S,formData:e.useForm&&y==="ok"&&S?E:null,submitter:c,originalEvent:l,options:e,button:b,defaultResult:E});if(!O.allow)return;let q=O.hasResult?O.result:E;d(q,i,{shouldClose:w})},i=document.createElement("dialog");V()&&i.classList.add("dialog-no-scale-animation"),D(e)&&i.classList.add("liquid-glass"),e.size&&i.classList.add(`dialog-${e.size}`),e.type&&i.classList.add(`dialog-${e.type}`),e.class&&(Array.isArray(e.class)?i.classList.add(...e.class):i.classList.add(e.class)),e.maxHeight&&i.style.setProperty("--dialog-max-height",e.maxHeight);let C=Object.entries(m).map(([t,n])=>{let c=n.primary?"btn-primary btn-sm":"btn-outline btn-sm",l=n.cancel?"button":"submit",p=n.formNoValidate?" formnovalidate":"";return`<button type="${l}" class="${c}" value="${t}"${p}>${n.name}</button>`});if(e.useForm){let t=document.createElement("div");M(t,a);let n=t.querySelector("form");if(n){i.innerHTML=`
2
2
  <header>
3
3
  <h2>${e.title}</h2>
4
4
  </header>
5
- `;let m=document.createElement("article");for(m.className="dialog-body";i.firstChild;)m.appendChild(i.firstChild);i.appendChild(m);let p=document.createElement("footer");p.innerHTML=d.join(""),i.appendChild(p),t.appendChild(i)}else t.innerHTML=`
5
+ `;let c=document.createElement("article");for(c.className="dialog-body";n.firstChild;)c.appendChild(n.firstChild);n.appendChild(c);let l=document.createElement("footer");l.innerHTML=C.join(""),n.appendChild(l),i.appendChild(n)}else i.innerHTML=`
6
6
  <header>
7
7
  <h2>${e.title}</h2>
8
8
  </header>
9
9
  <article id="msg-container"></article>
10
10
  <footer>
11
- ${d.join("")}
11
+ ${C.join("")}
12
12
  </footer>
13
- `,t.querySelector("#msg-container").appendChild(n)}else{t.innerHTML=`
13
+ `,i.querySelector("#msg-container").appendChild(t)}else{i.innerHTML=`
14
14
  <form method="dialog">
15
15
  <header>
16
16
  <h2>${e.title}</h2>
@@ -19,7 +19,7 @@ function F(a){let e=Array.isArray(a?.strings)?a.strings:[],l=Array.isArray(a?.va
19
19
  <article id="msg-container"></article>
20
20
 
21
21
  <footer>
22
- ${d.join("")}
22
+ ${C.join("")}
23
23
  </footer>
24
24
  </form>
25
- `;let n=t.querySelector("#msg-container");T(n,a)}t.addEventListener("click",n=>{let i=n.target.closest('button[value="cancel"]');i&&o({actionCode:"cancel",form:t.querySelector("form"),submitter:i,originalEvent:n})});let b=()=>{let n=t.querySelector("form");if(n){if(n.dataset.askSubmitBound==="true")return;n.dataset.askSubmitBound="true",n.addEventListener("submit",i=>{i.preventDefault();let m=i.submitter?.value??(e.useForm?"ok":void 0),p=!!i.submitter?.hasAttribute("formnovalidate");o({actionCode:m,form:n,submitter:i.submitter,originalEvent:i,bypassValidation:p})})}else requestAnimationFrame(b)};t.addEventListener("cancel",n=>{n.preventDefault(),o({actionCode:"dismiss",form:t.querySelector("form"),originalEvent:n})}),t.addEventListener("close",()=>{r||c(!1,t,{shouldClose:!1}),setTimeout(()=>t.remove(),200)}),document.body.appendChild(t),requestAnimationFrame(b),typeof e.rendered=="function"&&e.rendered(t),t.showModal(),requestAnimationFrame(()=>D(t))})}export{j as ask};
25
+ `;let t=i.querySelector("#msg-container");M(t,a)}i.addEventListener("click",t=>{let n=t.target.closest('button[value="cancel"]');n&&h({actionCode:"cancel",form:i.querySelector("form"),submitter:n,originalEvent:t})});let r=()=>{let t=i.querySelector("form");if(t){if(t.dataset.askSubmitBound==="true")return;t.dataset.askSubmitBound="true",t.addEventListener("submit",n=>{n.preventDefault();let c=n.submitter?.value??(e.useForm?"ok":void 0),l=!!n.submitter?.hasAttribute("formnovalidate");h({actionCode:c,form:t,submitter:n.submitter,originalEvent:n,bypassValidation:l})})}else requestAnimationFrame(r)};i.addEventListener("cancel",t=>{t.preventDefault(),h({actionCode:"dismiss",form:i.querySelector("form"),originalEvent:t})}),i.addEventListener("close",()=>{o||d(!1,i,{shouldClose:!1}),setTimeout(()=>i.remove(),200)}),document.body.appendChild(i),requestAnimationFrame(r),typeof e.rendered=="function"&&e.rendered(i),i.showModal(),requestAnimationFrame(()=>k(i))})}export{j as ask};
@@ -1 +1 @@
1
- var ce=new Set(["log","warn","error","debug","info"]),le="__PURE_DS_PDS_SINGLETON__",N=null,U=null;function X(){try{let t=(typeof globalThis<"u"?globalThis:window)?.[le];if(t&&typeof t=="object")return t}catch{return null}return null}function ue(e){return!e||typeof e!="object"?null:{mode:e.mode==="live"||e.mode==="static"?e.mode:null,debug:e.debug===!0,thisArg:e.thisArg}}function de(e){if(typeof e!="string")return"log";let t=e.toLowerCase();return ce.has(t)?t:"log"}function fe(){if(typeof U=="function")try{let t=ue(U());if(t)return t}catch{}let e=X();if(e){let t=e?.mode||e?.compiled?.mode||(e?.registry?.isLive?"live":"static"),n=(e?.debug||e?.currentConfig?.debug||e?.currentConfig?.design?.debug||e?.compiled?.debug||e?.compiled?.design?.debug||!1)===!0;return{mode:t,debug:n,thisArg:e}}return{mode:null,debug:!1}}function pe(){if(typeof N=="function")try{let t=N();if(typeof t=="function")return t}catch{}let e=X();return typeof e?.logHandler=="function"?e.logHandler:null}function G(e,t,...n){if(typeof console>"u")return;let o=typeof console[e]=="function"?console[e].bind(console):typeof console.log=="function"?console.log.bind(console):null;o&&(n.length>0?o(t,...n):o(t))}function ge(e,t){let n=t?.debug===!0;return!(t?.mode==="static"&&!n||!n&&e!=="error"&&e!=="warn")}function Y(e="log",t,...n){let o=de(e),r=fe(),s=pe();if(s)try{s.call(r?.thisArg,o,t,...n);return}catch(i){G("error","Custom log handler failed:",i)}ge(o,r)&&G(o,t,...n)}var he="en",l={defaultLocale:he,provider:null,messagesByLocale:new Map,loadingByLocale:new Map,observer:null,reconcileTimer:null,requestedKeys:new Set,textNodeKeyMap:new WeakMap,attributeKeyMap:new WeakMap,valueToKeys:new Map,missingWarnings:new Set},ye=["title","placeholder","aria-label","aria-description","aria-placeholder","aria-roledescription","alt","label"],be=e=>!!e&&typeof e!="string"&&typeof e=="object"&&"strTag"in e;function E(e){return String(e||"").trim().toLowerCase()}function me(e){let t=E(e);return t?t.split("-")[0]||t:""}function S(e){let t=E(e);if(!t)return l.defaultLocale;let n=l.provider?.resolveLocale;if(typeof n=="function"){let o=E(n(e));if(o)return o}return t}function ve(e){let t="";for(let n=0;n<=e.length-1;n+=1)t+=e[n],n<e.length-1&&(t+=`{${n}}`);return t}function C(e,t){return String(e).replace(/\{(\d+)\}/g,(n,o)=>t(Number(o)))}function $(e){if(!e||typeof e!="object")return{};let t={};for(let[n,o]of Object.entries(e)){if(typeof o=="string"){t[n]=o;continue}o&&typeof o=="object"&&typeof o.content=="string"&&(t[n]=o.content)}return t}function Le(e){let t=E(e);if(!t)return[l.defaultLocale];let n=me(t);return!n||n===t?[t]:[t,n]}function Z(e,t){let n=S(e);l.messagesByLocale.set(n,$(t))}function ee(e){typeof e=="string"&&e.length>0&&l.requestedKeys.add(e)}function J(e,t){if(typeof e!="string"||!e.length)return;let n=typeof t=="string"?t:String(t||"");n.length&&(l.valueToKeys.has(n)||l.valueToKeys.set(n,new Set),l.valueToKeys.get(n).add(e))}function q(e){let t=Le(e);for(let n of t)if(l.messagesByLocale.has(n))return{locale:n,messages:l.messagesByLocale.get(n)};return null}async function T(e,t="explicit"){let n=S(e),o=q(n);if(o)return o.messages;let r=n;if(l.loadingByLocale.has(r))return l.loadingByLocale.get(r);if(!l.provider)return{};let s=l.provider.loadLocale||l.provider.setLocale||null;if(typeof s!="function")return{};let i={locale:n,defaultLocale:l.defaultLocale,reason:t,loadedLocales:Array.from(l.messagesByLocale.keys()),messages:{...q(n)?.messages||{}},load:t==="set-default"||t==="explicit-load"},a;try{a=s(i)}catch{return{}}if(a&&typeof a.then=="function"){let c=a.then(p=>{let f=$(p);return Z(n,f),f}).catch(()=>({})).finally(()=>{l.loadingByLocale.delete(r)});return l.loadingByLocale.set(r,c),c}let u=$(a);return Z(n,u),u}function we(e){if(!e||typeof e!="object")return"";let n=typeof Element<"u"&&e instanceof Element||e?.nodeType===1?e:null;if(!n)return"";if(n.hasAttribute?.("lang"))return E(n.getAttribute("lang"));let o=n.closest?.("[lang]");return o&&o.getAttribute?E(o.getAttribute("lang")):""}function k(e={}){if(typeof e?.lang=="string"&&e.lang.trim())return S(e.lang);let t=e?.element||e?.scope||e?.host||e?.contextElement||null,n=we(t);if(n)return S(n);if(typeof document<"u"&&document.documentElement){let o=E(document.documentElement.getAttribute("lang"));if(o)return S(o)}return l.defaultLocale}function _e(){let e=new Set([l.defaultLocale]);if(typeof document>"u")return e;let t=E(document.documentElement?.getAttribute?.("lang"));t&&e.add(S(t));let n=document.querySelectorAll?.("[lang]")||[];for(let o of n){let r=E(o.getAttribute("lang"));r&&e.add(S(r))}return e}async function Ae(e){for(let t of e)await T(t,"lang-detected")}function Ee(e){for(let t of Array.from(l.messagesByLocale.keys()))e.has(t)||l.messagesByLocale.delete(t)}function xe(e){let t=String(e||""),n=(t.match(/^\s*/)||[""])[0],o=(t.match(/\s*$/)||[""])[0],r=n.length,s=t.length-o.length,i=s>=r?t.slice(r,s):"";return{leading:n,core:i,trailing:o}}function Q(e){return String(e||"").replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Se(e,t){let n=typeof e=="string"?e:String(e||""),o=typeof t=="string"?t:String(t||""),r=/\{(\d+)\}/g,s=Array.from(n.matchAll(r));if(!s.length)return n===o?[]:null;let i=[],a="^",u=0;for(let f of s){let g=f.index??0;a+=Q(n.slice(u,g)),a+="([\\s\\S]*?)",i.push(Number(f[1])),u=g+f[0].length}a+=Q(n.slice(u)),a+="$";let c=new RegExp(a).exec(o);if(!c)return null;let p=[];for(let f=1;f<c.length;f+=1){let g=i[f-1],y=c[f];if(Object.prototype.hasOwnProperty.call(p,g)&&p[g]!==y)return null;p[g]=y}return p}function I(e,t){if(typeof e!="string"||!e.length)return[];let n=[e];for(let[,o]of l.messagesByLocale.entries()){let r=o?.[e];typeof r=="string"&&r.length&&n.push(r)}for(let o of n){let r=Se(o,t);if(r)return r}return[]}function te(e){if(!e)return null;let t=l.valueToKeys.get(e);if(t&&t.size>0){for(let o of t)if(l.requestedKeys.has(o))return o}if(l.requestedKeys.has(e))return e;let n=Array.from(l.messagesByLocale.entries());for(let o of l.requestedKeys)for(let[,r]of n)if(r&&r[o]===e)return o;return null}function ne(e){if(!e)return null;let t=null;for(let[n,o]of l.valueToKeys.entries()){if(typeof n!="string"||!n.length||n===e)continue;let r=e.indexOf(n);if(r!==-1)for(let s of o){if(!l.requestedKeys.has(s))continue;let i=I(s,n),a={key:s,matchedText:n,start:r,end:r+n.length,values:i};(!t||a.matchedText.length>t.matchedText.length)&&(t=a);break}}return t}async function Me(e){if(!e||e.nodeType!==3)return;let t=e.parentElement||null;if(!t)return;let{leading:n,core:o,trailing:r}=xe(e.nodeValue);if(!o)return;let s=l.textNodeKeyMap.get(e)||null;if((!s||!l.requestedKeys.has(s))&&(s=te(o)),!s){let f=ne(o);if(!f)return;let g=k({element:t});await T(g,"text-node");let y=O(f.key,f.values,{element:t},null),m=f.values.length?C(y,D=>f.values[D]):y,L=o.slice(0,f.start)+m+o.slice(f.end),P=`${n}${L}${r}`;P!==e.nodeValue&&(e.nodeValue=P);return}l.textNodeKeyMap.set(e,s);let i=k({element:t});await T(i,"text-node");let a=I(s,o),u=O(s,a,{element:t},null),c=a.length?C(u,f=>a[f]):u,p=`${n}${c}${r}`;p!==e.nodeValue&&(e.nodeValue=p)}async function Ce(){if(typeof document>"u"||l.requestedKeys.size===0)return;let e=document.body||document.documentElement;if(!e||typeof document.createTreeWalker!="function")return;let t=[],n=new Set,o=s=>{!s||n.has(s)||(n.add(s),t.push(s))};o(e);for(let s=0;s<t.length;s+=1){let i=t[s];if(!i||typeof i.querySelectorAll!="function")continue;let a=i.querySelectorAll("*");for(let u of a){let c=u?.shadowRoot;c&&o(c)}}let r=[];for(let s of t){let i=document.createTreeWalker(s,NodeFilter.SHOW_TEXT);for(;i.nextNode();)r.push(i.currentNode)}for(let s of r)await Me(s)}function Te(e){let t=l.attributeKeyMap.get(e);return t||(t=new Map,l.attributeKeyMap.set(e,t)),t}async function Oe(e,t){if(!e||typeof e.getAttribute!="function")return;let n=e.getAttribute(t);if(typeof n!="string"||!n.length)return;let o=Te(e),r=o.get(t)||null;if((!r||!l.requestedKeys.has(r))&&(r=te(n)),!r){let c=ne(n);if(!c)return;let p=k({element:e});await T(p,"attribute");let f=O(c.key,c.values,{element:e},null),g=c.values.length?C(f,m=>c.values[m]):f,y=n.slice(0,c.start)+g+n.slice(c.end);y!==n&&e.setAttribute(t,y),o.set(t,c.key);return}o.set(t,r);let s=k({element:e});await T(s,"attribute");let i=I(r,n),a=O(r,i,{element:e},null),u=i.length?C(a,c=>i[c]):a;u!==n&&e.setAttribute(t,u)}async function qe(){if(typeof document>"u"||l.requestedKeys.size===0)return;let e=document.body||document.documentElement;if(!e)return;let t=[],n=new Set,o=r=>{!r||n.has(r)||(n.add(r),t.push(r))};o(e);for(let r=0;r<t.length;r+=1){let s=t[r];if(!s||typeof s.querySelectorAll!="function")continue;let i=s.querySelectorAll("*");for(let a of i){let u=a?.shadowRoot;u&&o(u)}}for(let r of t){if(!r||typeof r.querySelectorAll!="function")continue;let s=r.querySelectorAll("*");for(let i of s)for(let a of ye)i.hasAttribute(a)&&await Oe(i,a)}}async function ke(){let e=_e();await Ae(e),await Ce(),await qe(),Ee(e)}function Pe(){typeof window>"u"||(l.reconcileTimer&&clearTimeout(l.reconcileTimer),l.reconcileTimer=setTimeout(()=>{l.reconcileTimer=null,ke()},16))}function O(e,t=[],n={},o=null){let r=k(n),s=q(r);s||T(r,"msg");let i=q(r)?.messages||{},a=q(l.defaultLocale)?.messages||{},u={key:e,values:t,options:n,locale:r,defaultLocale:l.defaultLocale,messages:i,messagesByLocale:Object.fromEntries(Array.from(l.messagesByLocale.entries())),template:o},c,p=!!s,f=r===l.defaultLocale;typeof l.provider?.translate=="function"&&(c=l.provider.translate(u));let g=null;if(c==null&&(c=i[e]),c==null&&(c=a[e],g=c==null?null:"default"),c==null&&(c=e,g="key"),p&&!f&&g){let m=`${r}::${e}`;l.missingWarnings.has(m)||(l.missingWarnings.add(m),Y("warn",`[i18n] Missing translation for locale "${r}" and key "${e}"; using ${g} fallback.`))}let y=typeof c=="string"?c:String(c);if(J(e,y),Array.isArray(t)&&t.length>0){let m=C(y,L=>t[L]);m!==y&&J(e,m)}return y}var Re=(e,t,n={})=>{let o=ve(e);ee(o);let r=O(o,t,n,{strings:e,values:t});return C(r,s=>t[s])};var B=(e,t={})=>{if(!e)return"";if(be(e))return Re(e.strings,e.values,t);let n=String(e);ee(n);let o=O(n,[],t,null);return!t?.element&&!t?.scope&&!t?.host&&!t?.contextElement&&!t?.lang&&Pe(),o};var Be=[{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 De(e){e.dataset.enhancedAccordion||(e.dataset.enhancedAccordion="true",e.addEventListener("toggle",t=>{t.target.open&&t.target.parentElement===e&&e.querySelectorAll(":scope > details[open]").forEach(n=>{n!==t.target&&(n.open=!1)})},!0))}function Ke(e){if(e.dataset.enhancedDropdown)return;e.dataset.enhancedDropdown="true";let t=e.lastElementChild;if(!t)return;let n=e.querySelector("[data-dropdown-toggle]")||e.querySelector("button"),o=typeof HTMLElement<"u"&&"showPopover"in HTMLElement.prototype&&"hidePopover"in HTMLElement.prototype;n&&!n.hasAttribute("type")&&n.setAttribute("type","button"),t.id||(t.id=`dropdown-${Math.random().toString(36).slice(2,9)}`);let r=t.tagName?.toLowerCase()==="menu",s=8;if(r&&!t.hasAttribute("role")&&t.setAttribute("role","menu"),t.hasAttribute("aria-hidden")||t.setAttribute("aria-hidden","true"),n&&(n.setAttribute("aria-haspopup","true"),n.setAttribute("aria-controls",t.id),n.setAttribute("aria-expanded","false")),!o){let d="__PDS_DROPDOWN_POPOVER_WARNED__";globalThis[d]||(globalThis[d]=!0,console.warn("[PDS] nav[data-dropdown] requires the Popover API. Add a popover polyfill (recommended: @oddbird/popover-polyfill) for browsers without support."));return}t.setAttribute("popover","auto");let i=()=>{let d=t.getAttribute("style");t.style.visibility="hidden",t.style.display="inline-block",t.style.pointerEvents="none";let h=t.getBoundingClientRect(),v=Math.max(t.offsetWidth||0,t.scrollWidth||0,h.width||0,1),b=Math.max(t.offsetHeight||0,t.scrollHeight||0,h.height||0,1);return d===null?t.removeAttribute("style"):t.setAttribute("style",d),{width:v,height:b}},a=()=>{try{return t.matches(":popover-open")}catch{return!1}},u=()=>{t.setAttribute("aria-hidden","true"),n?.setAttribute("aria-expanded","false")},c=()=>{t.setAttribute("aria-hidden","false"),n?.setAttribute("aria-expanded","true")},p=()=>{let d=(e.getAttribute("data-direction")||e.getAttribute("data-dropdown-direction")||e.getAttribute("data-mode")||"auto").toLowerCase();if(d==="up"||d==="down")return d;let h=(n||e).getBoundingClientRect(),{height:v}=i(),b=Math.max(0,window.innerHeight-h.bottom),w=Math.max(0,h.top),A=b>=v,_=w>=v;return A&&!_?"down":_&&!A?"up":A&&_?"down":w>b?"up":"down"},f=()=>{let d=(e.getAttribute("data-align")||e.getAttribute("data-dropdown-align")||"auto").toLowerCase();if(d==="left"||d==="right"||d==="start"||d==="end")return d==="start"?"left":d==="end"?"right":d;let h=(n||e).getBoundingClientRect(),{width:v}=i(),b=Math.max(0,window.innerWidth-h.left),w=Math.max(0,h.right),A=b>=v,_=w>=v;return A&&!_?"left":_&&!A?"right":A&&_?"left":w>b?"right":"left"},g=(d,h=8)=>{let v=getComputedStyle(e).getPropertyValue(d).trim();if(!v)return h;let b=document.createElement("span");b.style.position="fixed",b.style.visibility="hidden",b.style.pointerEvents="none",b.style.height=v,document.body.appendChild(b);let w=Number.parseFloat(getComputedStyle(b).height);return b.remove(),Number.isFinite(w)?w:h},y=()=>{["position","left","top","right","bottom","margin-top","margin-bottom","max-width","max-inline-size","max-height","overflow"].forEach(d=>t.style.removeProperty(d))},m=()=>{if(!a())return;let d=(n||e).getBoundingClientRect(),h=window.visualViewport,v=h?.width||document.documentElement?.clientWidth||window.innerWidth,b=h?.height||document.documentElement?.clientHeight||window.innerHeight,w=h?.offsetLeft||0,A=h?.offsetTop||0,_=Math.max(1,v-s*2),ie=Math.max(1,b-s*2);t.style.maxWidth=`${Math.round(_)}px`,t.style.maxInlineSize=`${Math.round(_)}px`,t.style.maxHeight=`${Math.round(ie)}px`,t.style.overflow="auto";let{width:z,height:F}=i(),j=g("--spacing-2",8),V=p(),H=f();e.dataset.dropdownDirection=V,e.dataset.dropdownAlign=H;let R=H==="right"?d.right-z:d.left;z>=_-1?R=w+s:R=Math.max(w+s,Math.min(R,w+v-z-s));let W=V==="up"?d.top-j-F:d.bottom+j;W=Math.max(A+s,Math.min(W,A+b-F-s)),Object.assign(t.style,{position:"fixed",left:`${Math.round(R)}px`,top:`${Math.round(W)}px`,right:"auto",bottom:"auto",marginTop:"0",marginBottom:"0"})},L=null,P=()=>{L||(L=()=>m(),window.addEventListener("resize",L),window.addEventListener("scroll",L,!0))},D=()=>{L&&(window.removeEventListener("resize",L),window.removeEventListener("scroll",L,!0),L=null)},M=null,x=null,oe=()=>{M||typeof document>"u"||(M=()=>{a()&&(e.dataset.dropdownDirection=p(),e.dataset.dropdownAlign=f(),x!==null&&cancelAnimationFrame(x),x=requestAnimationFrame(()=>{x=null,a()&&m()}))},document.addEventListener("pds:config-changed",M))},re=()=>{!M||typeof document>"u"||(document.removeEventListener("pds:config-changed",M),M=null,x!==null&&(cancelAnimationFrame(x),x=null))};t.addEventListener("toggle",d=>{if(d.newState==="open"){c(),m(),P(),oe();return}u(),D(),re(),y()});let ae=()=>{a()||(e.dataset.dropdownDirection=p(),e.dataset.dropdownAlign=f(),t.showPopover(),requestAnimationFrame(()=>m()))},K=()=>{a()&&t.hidePopover()},se=()=>{a()?K():ae()};u(),t.addEventListener("click",d=>{let h=d.target instanceof Element?d.target:d.target?.parentElement;h&&h.closest("[data-dropdown-close]")&&K()}),n?.addEventListener("click",d=>{d.preventDefault(),d.stopPropagation(),se()}),e.addEventListener("keydown",d=>{d.key==="Escape"&&(K(),n?.focus())})}function ze(e){if(e.dataset.enhancedToggle)return;e.dataset.enhancedToggle="true";let t=e.querySelector('input[type="checkbox"]');if(!t)return;e.hasAttribute("tabindex")||e.setAttribute("tabindex","0"),e.setAttribute("role","switch"),e.setAttribute("aria-checked",t.checked?"true":"false");let n=document.createElement("span");n.className="toggle-switch",n.setAttribute("role","presentation"),n.setAttribute("aria-hidden","true");let o=document.createElement("span");o.className="toggle-knob",n.appendChild(o),e.insertBefore(n,t.nextSibling);let r=()=>{e.setAttribute("aria-checked",t.checked?"true":"false")},s=()=>{t.disabled||(t.checked=!t.checked,r(),t.dispatchEvent(new Event("input",{bubbles:!0})),t.dispatchEvent(new Event("change",{bubbles:!0})))};e.addEventListener("click",i=>{i.preventDefault(),s()}),e.addEventListener("keydown",i=>{(i.key===" "||i.key==="Enter")&&(i.preventDefault(),s())}),t.addEventListener("change",r)}function We(e){if(e.dataset.enhancedColorInput)return;let t=e.querySelector('input[type="color"]');if(!t)return;e.dataset.enhancedColorInput="true";let n=e.querySelector(":scope > .color-control"),o=e.querySelector(":scope > .color-control > .color-swatch"),r=e.querySelector(":scope > .color-control > output");n||(n=document.createElement("span"),n.className="color-control",t.before(n)),o||(o=document.createElement("span"),o.className="color-swatch",n.appendChild(o)),t.parentElement!==o&&o.appendChild(t),r||(r=document.createElement("output"),n.appendChild(r));let s=()=>{if(t.dataset.colorUnset==="1"){r.value="",r.textContent=B("not set"),n.dataset.value="",n.dataset.unset="1",o.dataset.unset="1";return}r.value=t.value,r.textContent=t.value,n.dataset.value=t.value,delete n.dataset.unset,delete o.dataset.unset};s();let i=()=>{t.dataset.colorUnset==="1"&&(t.dataset.colorUnset="0"),s()};t.addEventListener("input",i,{passive:!0}),t.addEventListener("change",i,{passive:!0})}function $e(e){if(e.dataset.enhancedRange)return;let t=i=>{if(e.dataset.enhancedRangeProgrammatic)return;e.dataset.enhancedRangeProgrammatic="1";let a=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(e),"value")||Object.getOwnPropertyDescriptor(HTMLInputElement.prototype,"value");a?.get&&a?.set&&Object.defineProperty(e,"value",{configurable:!0,enumerable:a.enumerable,get(){return a.get.call(this)},set(c){a.set.call(this,c),i()}}),new MutationObserver(c=>{c.some(f=>{let g=f.attributeName;return g==="value"||g==="min"||g==="max"})&&i()}).observe(e,{attributes:!0,attributeFilter:["value","min","max"]})},n=e.closest("label"),o=n?.classList.contains("range-output"),r=e.id||`range-${Math.random().toString(36).substring(2,11)}`,s=`${r}-output`;if(e.id=r,o){let i=n.querySelector("span");if(i&&!i.classList.contains("range-output-wrapper")){let a=document.createElement("span");a.className="range-output-wrapper",a.style.display="flex",a.style.justifyContent="space-between",a.style.alignItems="center";let u=document.createElement("span");u.textContent=i.textContent,a.appendChild(u);let c=document.createElement("output");c.id=s,c.setAttribute("for",r),c.style.color="var(--surface-text-secondary, var(--color-text-secondary))",c.style.fontSize="0.875rem",c.textContent=e.value,a.appendChild(c),i.textContent="",i.appendChild(a);let p=()=>{c.textContent=e.value};e.addEventListener("input",p),e.addEventListener("change",p),t(p),p()}}else{let i=e.closest(".range-container");i||(i=document.createElement("div"),i.className="range-container",e.parentNode?.insertBefore(i,e),i.appendChild(e)),i.style.position="relative";let a=document.createElement("output");a.id=s,a.setAttribute("for",r),a.className="range-bubble",a.setAttribute("aria-live","polite"),i.appendChild(a);let u=()=>{let f=parseFloat(e.min)||0,g=parseFloat(e.max)||100,y=parseFloat(e.value),m=(y-f)/(g-f);a.style.left=`calc(${m*100}% )`,a.textContent=String(y)},c=()=>a.classList.add("visible"),p=()=>a.classList.remove("visible");e.addEventListener("input",u),e.addEventListener("pointerdown",c),e.addEventListener("pointerup",p),e.addEventListener("pointerleave",p),e.addEventListener("focus",c),e.addEventListener("blur",p),e.addEventListener("change",u),t(u),u()}e.dataset.enhancedRange="1"}function Ie(e){if(e.dataset.enhancedRequired)return;e.dataset.enhancedRequired="true";let t=n=>{let o;if(n.closest("[role$=group]")?o=n.closest("[role$=group]").querySelector("legend"):o=n.closest("label"),!o||o.querySelector(".required-asterisk"))return;let r=document.createElement("span");r.classList.add("required-asterisk"),r.textContent="*",r.style.marginLeft="4px";let s=o.querySelector("span, [data-label]");if(s)s.appendChild(r);else{let a=o.querySelector("input, select, textarea");a?o.insertBefore(r,a):o.appendChild(r)}let i=n.closest("form");if(i&&!i.querySelector(".required-legend")){let a=document.createElement("small");a.classList.add("required-legend"),a.textContent=B("* Required fields"),i.insertBefore(a,i.querySelector(".form-actions")||i.lastElementChild)}};e.querySelectorAll("[required]").forEach(n=>{t(n)})}function Fe(e){if(e.dataset.enhancedOpenGroup)return;e.dataset.enhancedOpenGroup="true",e.classList.add("flex","flex-wrap","buttons");let t=document.createElement("input");t.type="text",t.placeholder=B("Add item..."),t.classList.add("input-text","input-sm"),t.style.width="auto";let n=()=>e.querySelector('input[type="radio"], input[type="checkbox"]');e.appendChild(t),t.addEventListener("keydown",o=>{if(o.key==="Enter"||o.key==="Tab"){let r=t.value.trim();if(r){o.preventDefault();let s=n(),i=s?.type==="radio"?"radio":"checkbox",a=`open-group-${Math.random().toString(36).substring(2,11)}`,u=document.createElement("label"),c=document.createElement("span");c.setAttribute("data-label",""),c.textContent=r;let p=document.createElement("input");p.type=i,p.name=s?.name||e.getAttribute("data-name")||"open-group",p.value=r,p.id=a,u.appendChild(c),u.appendChild(p),e.insertBefore(u,t),t.value=""}}else if(o.key==="Backspace"&&t.value===""){o.preventDefault();let r=e.querySelectorAll("label");r.length>0&&r[r.length-1].remove()}})}function je(e){if(e.dataset.enhancedClip)return;e.dataset.enhancedClip="true",e.hasAttribute("tabindex")||e.setAttribute("tabindex","0"),e.hasAttribute("role")||e.setAttribute("role","button");let t=()=>{let o=e.getAttribute("data-clip-open")==="true";e.setAttribute("aria-expanded",o?"true":"false")},n=()=>{let o=e.getAttribute("data-clip-open")==="true";e.setAttribute("data-clip-open",o?"false":"true"),t()};e.addEventListener("click",o=>{o.defaultPrevented||n()}),e.addEventListener("keydown",o=>{(o.key===" "||o.key==="Enter")&&(o.preventDefault(),n())}),t()}function Ve(e){if(e.dataset.enhancedBtnWorking)return;e.dataset.enhancedBtnWorking="true";let t=null,n=!1;new MutationObserver(r=>{r.forEach(s=>{if(s.attributeName==="class"){let i=e.classList.contains("btn-working"),a=e.querySelector("pds-icon");if(i)if(a)t||(t=a.getAttribute("icon")),a.setAttribute("icon","circle-notch");else{let u=document.createElement("pds-icon");u.setAttribute("icon","circle-notch"),u.setAttribute("size","sm"),e.insertBefore(u,e.firstChild),n=!0}else s.oldValue?.includes("btn-working")&&a&&(n?(a.remove(),n=!1):t&&(a.setAttribute("icon",t),t=null))}})}).observe(e,{attributes:!0,attributeFilter:["class"],attributeOldValue:!0})}var He=new Map([[".accordion",De],["nav[data-dropdown]",Ke],["label[data-toggle]",ze],["label[data-color]",We],['input[type="range"]',$e],["form[data-required]",Ie],["fieldset[role=group][data-open]",Fe],["[data-clip]",je],["button, a[class*='btn-']",Ve]]),Ne=Be.map(e=>({...e,run:He.get(e.selector)||(()=>{})}));export{Ne as defaultPDSEnhancers};
1
+ var ce=new Set(["log","warn","error","debug","info"]),le="__PURE_DS_PDS_SINGLETON__",N=null,U=null;function X(){try{let t=(typeof globalThis<"u"?globalThis:window)?.[le];if(t&&typeof t=="object")return t}catch{return null}return null}function ue(e){return!e||typeof e!="object"?null:{mode:e.mode==="live"||e.mode==="static"?e.mode:null,debug:e.debug===!0,thisArg:e.thisArg}}function de(e){if(typeof e!="string")return"log";let t=e.toLowerCase();return ce.has(t)?t:"log"}function fe(){if(typeof U=="function")try{let t=ue(U());if(t)return t}catch{}let e=X();if(e){let t=e?.mode||e?.compiled?.mode||(e?.registry?.isLive?"live":"static"),n=(e?.debug||e?.currentConfig?.debug||e?.currentConfig?.design?.debug||e?.compiled?.debug||e?.compiled?.design?.debug||!1)===!0;return{mode:t,debug:n,thisArg:e}}return{mode:null,debug:!1}}function pe(){if(typeof N=="function")try{let t=N();if(typeof t=="function")return t}catch{}let e=X();return typeof e?.logHandler=="function"?e.logHandler:null}function G(e,t,...n){if(typeof console>"u")return;let o=typeof console[e]=="function"?console[e].bind(console):typeof console.log=="function"?console.log.bind(console):null;o&&(n.length>0?o(t,...n):o(t))}function ge(e,t){let n=t?.debug===!0;return!(t?.mode==="static"&&!n||!n&&e!=="error"&&e!=="warn")}function Y(e="log",t,...n){let o=de(e),r=fe(),a=pe();if(a)try{a.call(r?.thisArg,o,t,...n);return}catch(s){G("error","Custom log handler failed:",s)}ge(o,r)&&G(o,t,...n)}var he="en",l={defaultLocale:he,provider:null,messagesByLocale:new Map,loadingByLocale:new Map,observer:null,reconcileTimer:null,requestedKeys:new Set,textNodeKeyMap:new WeakMap,attributeKeyMap:new WeakMap,valueToKeys:new Map,missingWarnings:new Set},ye=["title","placeholder","aria-label","aria-description","aria-placeholder","aria-roledescription","alt","label"],be=e=>!!e&&typeof e!="string"&&typeof e=="object"&&"strTag"in e;function E(e){return String(e||"").trim().toLowerCase()}function me(e){let t=E(e);return t?t.split("-")[0]||t:""}function S(e){let t=E(e);if(!t)return l.defaultLocale;let n=l.provider?.resolveLocale;if(typeof n=="function"){let o=E(n(e));if(o)return o}return t}function Le(e){let t="";for(let n=0;n<=e.length-1;n+=1)t+=e[n],n<e.length-1&&(t+=`{${n}}`);return t}function C(e,t){return String(e).replace(/\{(\d+)\}/g,(n,o)=>t(Number(o)))}function $(e){if(!e||typeof e!="object")return{};let t={};for(let[n,o]of Object.entries(e)){if(typeof o=="string"){t[n]=o;continue}o&&typeof o=="object"&&typeof o.content=="string"&&(t[n]=o.content)}return t}function ve(e){let t=E(e);if(!t)return[l.defaultLocale];let n=me(t);return!n||n===t?[t]:[t,n]}function Z(e,t){let n=S(e);l.messagesByLocale.set(n,$(t))}function ee(e){typeof e=="string"&&e.length>0&&l.requestedKeys.add(e)}function J(e,t){if(typeof e!="string"||!e.length)return;let n=typeof t=="string"?t:String(t||"");n.length&&(l.valueToKeys.has(n)||l.valueToKeys.set(n,new Set),l.valueToKeys.get(n).add(e))}function q(e){let t=ve(e);for(let n of t)if(l.messagesByLocale.has(n))return{locale:n,messages:l.messagesByLocale.get(n)};return null}async function T(e,t="explicit"){let n=S(e),o=q(n);if(o)return o.messages;let r=n;if(l.loadingByLocale.has(r))return l.loadingByLocale.get(r);if(!l.provider)return{};let a=l.provider.loadLocale||l.provider.setLocale||null;if(typeof a!="function")return{};let s={locale:n,defaultLocale:l.defaultLocale,reason:t,loadedLocales:Array.from(l.messagesByLocale.keys()),messages:{...q(n)?.messages||{}},load:t==="set-default"||t==="explicit-load"},i;try{i=a(s)}catch{return{}}if(i&&typeof i.then=="function"){let c=i.then(p=>{let d=$(p);return Z(n,d),d}).catch(()=>({})).finally(()=>{l.loadingByLocale.delete(r)});return l.loadingByLocale.set(r,c),c}let u=$(i);return Z(n,u),u}function we(e){if(!e||typeof e!="object")return"";let n=typeof Element<"u"&&e instanceof Element||e?.nodeType===1?e:null;if(!n)return"";if(n.hasAttribute?.("lang"))return E(n.getAttribute("lang"));let o=n.closest?.("[lang]");return o&&o.getAttribute?E(o.getAttribute("lang")):""}function k(e={}){if(typeof e?.lang=="string"&&e.lang.trim())return S(e.lang);let t=e?.element||e?.scope||e?.host||e?.contextElement||null,n=we(t);if(n)return S(n);if(typeof document<"u"&&document.documentElement){let o=E(document.documentElement.getAttribute("lang"));if(o)return S(o)}return l.defaultLocale}function _e(){let e=new Set([l.defaultLocale]);if(typeof document>"u")return e;let t=E(document.documentElement?.getAttribute?.("lang"));t&&e.add(S(t));let n=document.querySelectorAll?.("[lang]")||[];for(let o of n){let r=E(o.getAttribute("lang"));r&&e.add(S(r))}return e}async function Ae(e){for(let t of e)await T(t,"lang-detected")}function Ee(e){for(let t of Array.from(l.messagesByLocale.keys()))e.has(t)||l.messagesByLocale.delete(t)}function xe(e){let t=String(e||""),n=(t.match(/^\s*/)||[""])[0],o=(t.match(/\s*$/)||[""])[0],r=n.length,a=t.length-o.length,s=a>=r?t.slice(r,a):"";return{leading:n,core:s,trailing:o}}function Q(e){return String(e||"").replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Se(e,t){let n=typeof e=="string"?e:String(e||""),o=typeof t=="string"?t:String(t||""),r=/\{(\d+)\}/g,a=Array.from(n.matchAll(r));if(!a.length)return n===o?[]:null;let s=[],i="^",u=0;for(let d of a){let g=d.index??0;i+=Q(n.slice(u,g)),i+="([\\s\\S]*?)",s.push(Number(d[1])),u=g+d[0].length}i+=Q(n.slice(u)),i+="$";let c=new RegExp(i).exec(o);if(!c)return null;let p=[];for(let d=1;d<c.length;d+=1){let g=s[d-1],y=c[d];if(Object.prototype.hasOwnProperty.call(p,g)&&p[g]!==y)return null;p[g]=y}return p}function I(e,t){if(typeof e!="string"||!e.length)return[];let n=[e];for(let[,o]of l.messagesByLocale.entries()){let r=o?.[e];typeof r=="string"&&r.length&&n.push(r)}for(let o of n){let r=Se(o,t);if(r)return r}return[]}function te(e){if(!e)return null;let t=l.valueToKeys.get(e);if(t&&t.size>0){for(let o of t)if(l.requestedKeys.has(o))return o}if(l.requestedKeys.has(e))return e;let n=Array.from(l.messagesByLocale.entries());for(let o of l.requestedKeys)for(let[,r]of n)if(r&&r[o]===e)return o;return null}function ne(e){if(!e)return null;let t=null;for(let[n,o]of l.valueToKeys.entries()){if(typeof n!="string"||!n.length||n===e)continue;let r=e.indexOf(n);if(r!==-1)for(let a of o){if(!l.requestedKeys.has(a))continue;let s=I(a,n),i={key:a,matchedText:n,start:r,end:r+n.length,values:s};(!t||i.matchedText.length>t.matchedText.length)&&(t=i);break}}return t}async function Me(e){if(!e||e.nodeType!==3)return;let t=e.parentElement||null;if(!t)return;let{leading:n,core:o,trailing:r}=xe(e.nodeValue);if(!o)return;let a=l.textNodeKeyMap.get(e)||null;if((!a||!l.requestedKeys.has(a))&&(a=te(o)),!a){let d=ne(o);if(!d)return;let g=k({element:t});await T(g,"text-node");let y=O(d.key,d.values,{element:t},null),m=d.values.length?C(y,D=>d.values[D]):y,v=o.slice(0,d.start)+m+o.slice(d.end),P=`${n}${v}${r}`;P!==e.nodeValue&&(e.nodeValue=P);return}l.textNodeKeyMap.set(e,a);let s=k({element:t});await T(s,"text-node");let i=I(a,o),u=O(a,i,{element:t},null),c=i.length?C(u,d=>i[d]):u,p=`${n}${c}${r}`;p!==e.nodeValue&&(e.nodeValue=p)}async function Ce(){if(typeof document>"u"||l.requestedKeys.size===0)return;let e=document.body||document.documentElement;if(!e||typeof document.createTreeWalker!="function")return;let t=[],n=new Set,o=a=>{!a||n.has(a)||(n.add(a),t.push(a))};o(e);for(let a=0;a<t.length;a+=1){let s=t[a];if(!s||typeof s.querySelectorAll!="function")continue;let i=s.querySelectorAll("*");for(let u of i){let c=u?.shadowRoot;c&&o(c)}}let r=[];for(let a of t){let s=document.createTreeWalker(a,NodeFilter.SHOW_TEXT);for(;s.nextNode();)r.push(s.currentNode)}for(let a of r)await Me(a)}function Te(e){let t=l.attributeKeyMap.get(e);return t||(t=new Map,l.attributeKeyMap.set(e,t)),t}async function Oe(e,t){if(!e||typeof e.getAttribute!="function")return;let n=e.getAttribute(t);if(typeof n!="string"||!n.length)return;let o=Te(e),r=o.get(t)||null;if((!r||!l.requestedKeys.has(r))&&(r=te(n)),!r){let c=ne(n);if(!c)return;let p=k({element:e});await T(p,"attribute");let d=O(c.key,c.values,{element:e},null),g=c.values.length?C(d,m=>c.values[m]):d,y=n.slice(0,c.start)+g+n.slice(c.end);y!==n&&e.setAttribute(t,y),o.set(t,c.key);return}o.set(t,r);let a=k({element:e});await T(a,"attribute");let s=I(r,n),i=O(r,s,{element:e},null),u=s.length?C(i,c=>s[c]):i;u!==n&&e.setAttribute(t,u)}async function qe(){if(typeof document>"u"||l.requestedKeys.size===0)return;let e=document.body||document.documentElement;if(!e)return;let t=[],n=new Set,o=r=>{!r||n.has(r)||(n.add(r),t.push(r))};o(e);for(let r=0;r<t.length;r+=1){let a=t[r];if(!a||typeof a.querySelectorAll!="function")continue;let s=a.querySelectorAll("*");for(let i of s){let u=i?.shadowRoot;u&&o(u)}}for(let r of t){if(!r||typeof r.querySelectorAll!="function")continue;let a=r.querySelectorAll("*");for(let s of a)for(let i of ye)s.hasAttribute(i)&&await Oe(s,i)}}async function ke(){let e=_e();await Ae(e),await Ce(),await qe(),Ee(e)}function Pe(){typeof window>"u"||(l.reconcileTimer&&clearTimeout(l.reconcileTimer),l.reconcileTimer=setTimeout(()=>{l.reconcileTimer=null,ke()},16))}function O(e,t=[],n={},o=null){let r=k(n),a=q(r);a||T(r,"msg");let s=q(r)?.messages||{},i=q(l.defaultLocale)?.messages||{},u={key:e,values:t,options:n,locale:r,defaultLocale:l.defaultLocale,messages:s,messagesByLocale:Object.fromEntries(Array.from(l.messagesByLocale.entries())),template:o},c,p=!!a,d=r===l.defaultLocale;typeof l.provider?.translate=="function"&&(c=l.provider.translate(u));let g=null;if(c==null&&(c=s[e]),c==null&&(c=i[e],g=c==null?null:"default"),c==null&&(c=e,g="key"),p&&!d&&g){let m=`${r}::${e}`;l.missingWarnings.has(m)||(l.missingWarnings.add(m),Y("warn",`[i18n] Missing translation for locale "${r}" and key "${e}"; using ${g} fallback.`))}let y=typeof c=="string"?c:String(c);if(J(e,y),Array.isArray(t)&&t.length>0){let m=C(y,v=>t[v]);m!==y&&J(e,m)}return y}var Re=(e,t,n={})=>{let o=Le(e);ee(o);let r=O(o,t,n,{strings:e,values:t});return C(r,a=>t[a])};var B=(e,t={})=>{if(!e)return"";if(be(e))return Re(e.strings,e.values,t);let n=String(e);ee(n);let o=O(n,[],t,null);return!t?.element&&!t?.scope&&!t?.host&&!t?.contextElement&&!t?.lang&&Pe(),o};var Be=[{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 De(e){e.dataset.enhancedAccordion||(e.dataset.enhancedAccordion="true",e.addEventListener("toggle",t=>{t.target.open&&t.target.parentElement===e&&e.querySelectorAll(":scope > details[open]").forEach(n=>{n!==t.target&&(n.open=!1)})},!0))}function Ke(e){if(e.dataset.enhancedDropdown)return;e.dataset.enhancedDropdown="true";let t=e.lastElementChild;if(!t)return;let n=e.querySelector("[data-dropdown-toggle]")||e.querySelector("button"),o=typeof HTMLElement<"u"&&"showPopover"in HTMLElement.prototype&&"hidePopover"in HTMLElement.prototype;n&&!n.hasAttribute("type")&&n.setAttribute("type","button"),t.id||(t.id=`dropdown-${Math.random().toString(36).slice(2,9)}`);let r=t.tagName?.toLowerCase()==="menu",a=8;if(r&&!t.hasAttribute("role")&&t.setAttribute("role","menu"),t.hasAttribute("aria-hidden")||t.setAttribute("aria-hidden","true"),n&&(n.setAttribute("aria-haspopup","true"),n.setAttribute("aria-controls",t.id),n.setAttribute("aria-expanded","false")),!o){let f="__PDS_DROPDOWN_POPOVER_WARNED__";globalThis[f]||(globalThis[f]=!0,console.warn("[PDS] nav[data-dropdown] requires the Popover API. Add a popover polyfill (recommended: @oddbird/popover-polyfill) for browsers without support."));return}t.setAttribute("popover","auto");let s=()=>{let f=t.getAttribute("style");t.style.visibility="hidden",t.style.display="inline-block",t.style.pointerEvents="none";let h=t.getBoundingClientRect(),L=Math.max(t.offsetWidth||0,t.scrollWidth||0,h.width||0,1),b=Math.max(t.offsetHeight||0,t.scrollHeight||0,h.height||0,1);return f===null?t.removeAttribute("style"):t.setAttribute("style",f),{width:L,height:b}},i=()=>{try{return t.matches(":popover-open")}catch{return!1}},u=()=>{t.setAttribute("aria-hidden","true"),n?.setAttribute("aria-expanded","false")},c=()=>{t.setAttribute("aria-hidden","false"),n?.setAttribute("aria-expanded","true")},p=()=>{let f=(e.getAttribute("data-direction")||e.getAttribute("data-dropdown-direction")||e.getAttribute("data-mode")||"auto").toLowerCase();if(f==="up"||f==="down")return f;let h=(n||e).getBoundingClientRect(),{height:L}=s(),b=Math.max(0,window.innerHeight-h.bottom),w=Math.max(0,h.top),A=b>=L,_=w>=L;return A&&!_?"down":_&&!A?"up":A&&_?"down":w>b?"up":"down"},d=()=>{let f=(e.getAttribute("data-align")||e.getAttribute("data-dropdown-align")||"auto").toLowerCase();if(f==="left"||f==="right"||f==="start"||f==="end")return f==="start"?"left":f==="end"?"right":f;let h=(n||e).getBoundingClientRect(),{width:L}=s(),b=Math.max(0,window.innerWidth-h.left),w=Math.max(0,h.right),A=b>=L,_=w>=L;return A&&!_?"left":_&&!A?"right":A&&_?"left":w>b?"right":"left"},g=(f,h=8)=>{let L=getComputedStyle(e).getPropertyValue(f).trim();if(!L)return h;let b=document.createElement("span");b.style.position="fixed",b.style.visibility="hidden",b.style.pointerEvents="none",b.style.height=L,document.body.appendChild(b);let w=Number.parseFloat(getComputedStyle(b).height);return b.remove(),Number.isFinite(w)?w:h},y=()=>{["position","left","top","right","bottom","margin-top","margin-bottom","max-width","max-inline-size","max-height","overflow"].forEach(f=>t.style.removeProperty(f))},m=()=>{if(!i())return;let f=(n||e).getBoundingClientRect(),h=window.visualViewport,L=h?.width||document.documentElement?.clientWidth||window.innerWidth,b=h?.height||document.documentElement?.clientHeight||window.innerHeight,w=h?.offsetLeft||0,A=h?.offsetTop||0,_=Math.max(1,L-a*2),ie=Math.max(1,b-a*2);t.style.maxWidth=`${Math.round(_)}px`,t.style.maxInlineSize=`${Math.round(_)}px`,t.style.maxHeight=`${Math.round(ie)}px`,t.style.overflow="auto";let{width:z,height:F}=s(),j=g("--spacing-2",8),V=p(),H=d();e.dataset.dropdownDirection=V,e.dataset.dropdownAlign=H;let R=H==="right"?f.right-z:f.left;z>=_-1?R=w+a:R=Math.max(w+a,Math.min(R,w+L-z-a));let W=V==="up"?f.top-j-F:f.bottom+j;W=Math.max(A+a,Math.min(W,A+b-F-a)),Object.assign(t.style,{position:"fixed",left:`${Math.round(R)}px`,top:`${Math.round(W)}px`,right:"auto",bottom:"auto",marginTop:"0",marginBottom:"0"})},v=null,P=()=>{v||(v=()=>m(),window.addEventListener("resize",v),window.addEventListener("scroll",v,!0))},D=()=>{v&&(window.removeEventListener("resize",v),window.removeEventListener("scroll",v,!0),v=null)},M=null,x=null,oe=()=>{M||typeof document>"u"||(M=()=>{i()&&(e.dataset.dropdownDirection=p(),e.dataset.dropdownAlign=d(),x!==null&&cancelAnimationFrame(x),x=requestAnimationFrame(()=>{x=null,i()&&m()}))},document.addEventListener("pds:config-changed",M))},re=()=>{!M||typeof document>"u"||(document.removeEventListener("pds:config-changed",M),M=null,x!==null&&(cancelAnimationFrame(x),x=null))};t.addEventListener("toggle",f=>{if(f.newState==="open"){c(),m(),P(),oe();return}u(),D(),re(),y()});let ae=()=>{i()||(e.dataset.dropdownDirection=p(),e.dataset.dropdownAlign=d(),t.showPopover(),requestAnimationFrame(()=>m()))},K=()=>{i()&&t.hidePopover()},se=()=>{i()?K():ae()};u(),t.addEventListener("click",f=>{let h=f.target instanceof Element?f.target:f.target?.parentElement;h&&h.closest("[data-dropdown-close]")&&K()}),n?.addEventListener("click",f=>{f.preventDefault(),f.stopPropagation(),se()}),e.addEventListener("keydown",f=>{f.key==="Escape"&&(K(),n?.focus())})}function ze(e){if(e.dataset.enhancedToggle)return;e.dataset.enhancedToggle="true";let t=e.querySelector('input[type="checkbox"]');if(!t)return;e.hasAttribute("tabindex")||e.setAttribute("tabindex","0"),e.setAttribute("role","switch"),e.setAttribute("aria-checked",t.checked?"true":"false");let n=document.createElement("span");n.className="toggle-switch",n.setAttribute("role","presentation"),n.setAttribute("aria-hidden","true");let o=document.createElement("span");o.className="toggle-knob",n.appendChild(o),e.insertBefore(n,t.nextSibling);let r=()=>{e.setAttribute("aria-checked",t.checked?"true":"false")},a=()=>{t.disabled||(t.checked=!t.checked,r(),t.dispatchEvent(new Event("input",{bubbles:!0})),t.dispatchEvent(new Event("change",{bubbles:!0})))};e.addEventListener("click",s=>{s.preventDefault(),a()}),e.addEventListener("keydown",s=>{(s.key===" "||s.key==="Enter")&&(s.preventDefault(),a())}),t.addEventListener("change",r)}function We(e){if(e.dataset.enhancedColorInput)return;let t=e.querySelector('input[type="color"]');if(!t)return;e.dataset.enhancedColorInput="true";let n=e.querySelector(":scope > .color-control"),o=e.querySelector(":scope > .color-control > .color-swatch"),r=e.querySelector(":scope > .color-control > output");n||(n=document.createElement("span"),n.className="color-control",t.before(n)),o||(o=document.createElement("span"),o.className="color-swatch",n.appendChild(o)),t.parentElement!==o&&o.appendChild(t),r||(r=document.createElement("output"),n.appendChild(r));let a=()=>{if(t.dataset.colorUnset==="1"){r.value="",r.textContent=B("not set"),n.dataset.value="",n.dataset.unset="1",o.dataset.unset="1";return}r.value=t.value,r.textContent=t.value,n.dataset.value=t.value,delete n.dataset.unset,delete o.dataset.unset};a();let s=()=>{t.dataset.colorUnset==="1"&&(t.dataset.colorUnset="0"),a()};t.addEventListener("input",s,{passive:!0}),t.addEventListener("change",s,{passive:!0})}function $e(e){if(e.dataset.enhancedRange)return;let t=s=>{if(e.dataset.enhancedRangeProgrammatic)return;e.dataset.enhancedRangeProgrammatic="1";let i=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(e),"value")||Object.getOwnPropertyDescriptor(HTMLInputElement.prototype,"value");i?.get&&i?.set&&Object.defineProperty(e,"value",{configurable:!0,enumerable:i.enumerable,get(){return i.get.call(this)},set(c){i.set.call(this,c),s()}}),new MutationObserver(c=>{c.some(d=>{let g=d.attributeName;return g==="value"||g==="min"||g==="max"})&&s()}).observe(e,{attributes:!0,attributeFilter:["value","min","max"]})},n=e.closest("label"),o=n?.classList.contains("range-output"),r=e.id||`range-${Math.random().toString(36).substring(2,11)}`,a=`${r}-output`;if(e.id=r,o){let s=n.querySelector("span");if(s&&!s.classList.contains("range-output-wrapper")){let i=s.getAttribute("data-range-label")||n.getAttribute("data-range-label")||"",u=document.createElement("span");u.className="range-output-wrapper",u.style.display="flex",u.style.justifyContent="space-between",u.style.alignItems="center";let c=document.createElement("span");c.textContent=i||s.textContent,u.appendChild(c);let p=document.createElement("output");p.id=a,p.setAttribute("for",r),p.style.color="var(--surface-text-secondary, var(--color-text-secondary))",p.style.fontSize="0.875rem",p.textContent=e.value,u.appendChild(p),s.textContent="",s.appendChild(u);let d=()=>{p.textContent=e.value};e.addEventListener("input",d),e.addEventListener("change",d),t(d),d()}}else{let s=e.closest(".range-container");s||(s=document.createElement("div"),s.className="range-container",e.parentNode?.insertBefore(s,e),s.appendChild(e)),s.style.position="relative";let i=document.createElement("output");i.id=a,i.setAttribute("for",r),i.className="range-bubble",i.setAttribute("aria-live","polite"),s.appendChild(i);let u=()=>{let d=parseFloat(e.min)||0,g=parseFloat(e.max)||100,y=parseFloat(e.value),m=(y-d)/(g-d);i.style.left=`calc(${m*100}% )`,i.textContent=String(y)},c=()=>i.classList.add("visible"),p=()=>i.classList.remove("visible");e.addEventListener("input",u),e.addEventListener("pointerdown",c),e.addEventListener("pointerup",p),e.addEventListener("pointerleave",p),e.addEventListener("focus",c),e.addEventListener("blur",p),e.addEventListener("change",u),t(u),u()}e.dataset.enhancedRange="1"}function Ie(e){if(e.dataset.enhancedRequired)return;e.dataset.enhancedRequired="true";let t=n=>{let o;if(n.closest("[role$=group]")?o=n.closest("[role$=group]").querySelector("legend"):o=n.closest("label"),!o||o.querySelector(".required-asterisk"))return;let r=document.createElement("span");r.classList.add("required-asterisk"),r.textContent="*",r.style.marginLeft="4px";let a=o.querySelector("span, [data-label]");if(a)a.appendChild(r);else{let i=o.querySelector("input, select, textarea");i?o.insertBefore(r,i):o.appendChild(r)}let s=n.closest("form");if(s&&!s.querySelector(".required-legend")){let i=document.createElement("small");i.classList.add("required-legend"),i.textContent=B("* Required fields"),s.insertBefore(i,s.querySelector(".form-actions")||s.lastElementChild)}};e.querySelectorAll("[required]").forEach(n=>{t(n)})}function Fe(e){if(e.dataset.enhancedOpenGroup)return;e.dataset.enhancedOpenGroup="true",e.classList.add("flex","flex-wrap","buttons");let t=document.createElement("input");t.type="text",t.placeholder=B("Add item..."),t.classList.add("input-text","input-sm"),t.style.width="auto";let n=()=>e.querySelector('input[type="radio"], input[type="checkbox"]');e.appendChild(t),t.addEventListener("keydown",o=>{if(o.key==="Enter"||o.key==="Tab"){let r=t.value.trim();if(r){o.preventDefault();let a=n(),s=a?.type==="radio"?"radio":"checkbox",i=`open-group-${Math.random().toString(36).substring(2,11)}`,u=document.createElement("label"),c=document.createElement("span");c.setAttribute("data-label",""),c.textContent=r;let p=document.createElement("input");p.type=s,p.name=a?.name||e.getAttribute("data-name")||"open-group",p.value=r,p.id=i,u.appendChild(c),u.appendChild(p),e.insertBefore(u,t),t.value=""}}else if(o.key==="Backspace"&&t.value===""){o.preventDefault();let r=e.querySelectorAll("label");r.length>0&&r[r.length-1].remove()}})}function je(e){if(e.dataset.enhancedClip)return;e.dataset.enhancedClip="true",e.hasAttribute("tabindex")||e.setAttribute("tabindex","0"),e.hasAttribute("role")||e.setAttribute("role","button");let t=()=>{let o=e.getAttribute("data-clip-open")==="true";e.setAttribute("aria-expanded",o?"true":"false")},n=()=>{let o=e.getAttribute("data-clip-open")==="true";e.setAttribute("data-clip-open",o?"false":"true"),t()};e.addEventListener("click",o=>{o.defaultPrevented||n()}),e.addEventListener("keydown",o=>{(o.key===" "||o.key==="Enter")&&(o.preventDefault(),n())}),t()}function Ve(e){if(e.dataset.enhancedBtnWorking)return;e.dataset.enhancedBtnWorking="true";let t=null,n=!1;new MutationObserver(r=>{r.forEach(a=>{if(a.attributeName==="class"){let s=e.classList.contains("btn-working"),i=e.querySelector("pds-icon");if(s)if(i)t||(t=i.getAttribute("icon")),i.setAttribute("icon","circle-notch");else{let u=document.createElement("pds-icon");u.setAttribute("icon","circle-notch"),u.setAttribute("size","sm"),e.insertBefore(u,e.firstChild),n=!0}else a.oldValue?.includes("btn-working")&&i&&(n?(i.remove(),n=!1):t&&(i.setAttribute("icon",t),t=null))}})}).observe(e,{attributes:!0,attributeFilter:["class"],attributeOldValue:!0})}var He=new Map([[".accordion",De],["nav[data-dropdown]",Ke],["label[data-toggle]",ze],["label[data-color]",We],['input[type="range"]',$e],["form[data-required]",Ie],["fieldset[role=group][data-open]",Fe],["[data-clip]",je],["button, a[class*='btn-']",Ve]]),Ne=Be.map(e=>({...e,run:He.get(e.selector)||(()=>{})}));export{Ne as defaultPDSEnhancers};