@pure-ds/core 0.5.61 → 0.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/types/packages/pds-configurator/src/pds-home-content.d.ts +375 -0
- package/dist/types/packages/pds-configurator/src/pds-home-content.d.ts.map +1 -0
- package/dist/types/packages/pds-configurator/src/pds-home.d.ts +2 -0
- package/dist/types/packages/pds-configurator/src/pds-home.d.ts.map +1 -0
- package/dist/types/pds.config.d.ts +2 -2
- package/dist/types/pds.config.d.ts.map +1 -1
- package/dist/types/pds.d.ts +3 -0
- package/dist/types/public/assets/js/pds-manager.d.ts +144 -429
- package/dist/types/public/assets/js/pds-manager.d.ts.map +1 -1
- package/dist/types/public/assets/js/pds.d.ts +3 -4
- package/dist/types/public/assets/js/pds.d.ts.map +1 -1
- package/dist/types/public/assets/pds/components/pds-live-edit.d.ts +150 -0
- package/dist/types/public/assets/pds/components/pds-live-edit.d.ts.map +1 -0
- package/dist/types/public/assets/pds/components/pds-omnibox.d.ts +2 -0
- package/dist/types/public/assets/pds/components/pds-omnibox.d.ts.map +1 -1
- package/dist/types/public/assets/pds/components/pds-richtext.d.ts.map +1 -1
- package/dist/types/public/assets/pds/components/pds-theme.d.ts +5 -10
- package/dist/types/public/assets/pds/components/pds-theme.d.ts.map +1 -1
- package/dist/types/src/js/pds-core/pds-config.d.ts +3 -0
- package/dist/types/src/js/pds-core/pds-config.d.ts.map +1 -1
- package/dist/types/src/js/pds-core/pds-enhancers.d.ts.map +1 -1
- package/dist/types/src/js/pds-core/pds-live.d.ts.map +1 -1
- package/dist/types/src/js/pds-core/pds-ontology.d.ts.map +1 -1
- package/dist/types/src/js/pds-core/pds-theme-utils.d.ts +6 -0
- package/dist/types/src/js/pds-core/pds-theme-utils.d.ts.map +1 -0
- package/dist/types/src/js/pds.d.ts.map +1 -1
- package/package.json +1 -4
- package/packages/pds-cli/bin/templates/bootstrap/pds.config.js +1 -1
- package/public/assets/js/app.js +106 -5636
- package/public/assets/js/pds-manager.js +137 -137
- package/public/assets/js/pds.js +7 -7
- package/public/assets/pds/components/pds-live-edit.js +1555 -0
- package/public/assets/pds/components/pds-omnibox.js +558 -369
- package/public/assets/pds/components/pds-richtext.js +57 -7
- package/public/assets/pds/components/pds-theme.js +59 -39
- package/readme.md +2 -2
- package/src/js/pds-core/pds-config.js +21 -3
- package/src/js/pds-core/pds-enhancers.js +61 -4
- package/src/js/pds-core/pds-live.js +180 -1
- package/src/js/pds-core/pds-ontology.js +8 -0
- package/src/js/pds-core/pds-theme-utils.js +33 -0
- package/src/js/pds.d.ts +3 -0
- package/src/js/pds.js +22 -0
package/public/assets/js/pds.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
var
|
|
2
|
-
`)!==-1||e.indexOf(" ")!==-1||e.startsWith("#/"))return!1;let t=new URL(e,window.location.origin);return t.protocol==="http:"||t.protocol==="https:"}catch{return!1}}function
|
|
1
|
+
var Ge=Object.defineProperty;var Ve=(e,t)=>()=>(e&&(t=e(e=0)),t);var xe=(e,t)=>{for(var n in t)Ge(e,n,{get:t[n],enumerable:!0})};var Ue={};xe(Ue,{AutoDefiner:()=>ue});async function ht(...e){let t={};e.length&&typeof e[e.length-1]=="object"&&(t=e.pop()||{});let n=e,{baseURL:r,mapper:o=a=>`${a}.js`,onError:s=(a,d)=>console.error(`[defineWebComponents] ${a}:`,d)}=t,i=r?new URL(r,typeof location<"u"?location.href:import.meta.url):new URL("./",import.meta.url),u=a=>a.toLowerCase().replace(/(^|-)([a-z])/g,(d,l,h)=>h.toUpperCase()),p=async a=>{try{if(customElements.get(a))return{tag:a,status:"already-defined"};let d=o(a),h=await import(d instanceof URL?d.href:new URL(d,i).href),m=h?.default??h?.[u(a)];if(!m){if(customElements.get(a))return{tag:a,status:"self-defined"};throw new Error(`No export found for ${a}. Expected default export or named export "${u(a)}".`)}return customElements.get(a)?{tag:a,status:"race-already-defined"}:(customElements.define(a,m),{tag:a,status:"defined"})}catch(d){throw s(a,d),d}};return Promise.all(n.map(p))}var ue,Pe=Ve(()=>{ue=class{constructor(t={}){let{baseURL:n,mapper:r,onError:o,predicate:s=()=>!0,attributeModule:i="data-module",root:u=document,scanExisting:p=!0,debounceMs:a=16,observeShadows:d=!0,enhancers:l=[],patchAttachShadow:h=!0}=t,m=new Set,S=new Set,x=new Set,b=new Map,k=new WeakMap,I=new WeakMap,E=0,C=!1,R=null,_=f=>{if(!f||!l.length)return;let y=I.get(f);y||(y=new Set,I.set(f,y));for(let g of l)if(!(!g.selector||!g.run)&&!y.has(g.selector))try{f.matches&&f.matches(g.selector)&&(g.run(f),y.add(g.selector))}catch(A){console.warn(`[AutoDefiner] Error applying enhancer for selector "${g.selector}":`,A)}},z=(f,y)=>{if(!C&&!(!f||!f.includes("-"))&&!customElements.get(f)&&!S.has(f)&&!x.has(f)){if(y&&y.getAttribute){let g=y.getAttribute(i);g&&!b.has(f)&&b.set(f,g)}m.add(f),O()}},O=()=>{E||(E=setTimeout(B,a))},L=f=>{if(f){if(f.nodeType===1){let y=f,g=y.tagName?.toLowerCase();g&&g.includes("-")&&!customElements.get(g)&&s(g,y)&&z(g,y),_(y),d&&y.shadowRoot&&T(y.shadowRoot)}f.querySelectorAll&&f.querySelectorAll("*").forEach(y=>{let g=y.tagName?.toLowerCase();g&&g.includes("-")&&!customElements.get(g)&&s(g,y)&&z(g,y),_(y),d&&y.shadowRoot&&T(y.shadowRoot)})}},T=f=>{if(!f||k.has(f))return;L(f);let y=new MutationObserver(g=>{for(let A of g)A.addedNodes?.forEach(P=>{L(P)}),A.type==="attributes"&&A.target&&L(A.target)});y.observe(f,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[i,...l.map(g=>g.selector).filter(g=>g.startsWith("data-"))]}),k.set(f,y)};async function B(){if(clearTimeout(E),E=0,!m.size)return;let f=Array.from(m);m.clear(),f.forEach(y=>S.add(y));try{let y=g=>b.get(g)??(r?r(g):`${g}.js`);await ht(...f,{baseURL:n,mapper:y,onError:(g,A)=>{x.add(g),o?.(g,A)}})}catch{}finally{f.forEach(y=>S.delete(y))}}let v=u===document?document.documentElement:u,U=new MutationObserver(f=>{for(let y of f)y.addedNodes?.forEach(g=>{L(g)}),y.type==="attributes"&&y.target&&L(y.target)});if(U.observe(v,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[i,...l.map(f=>f.selector).filter(f=>f.startsWith("data-"))]}),d&&h&&Element.prototype.attachShadow){let f=Element.prototype.attachShadow;Element.prototype.attachShadow=function(g){let A=f.call(this,g);if(g&&g.mode==="open"){T(A);let P=this.tagName?.toLowerCase();P&&P.includes("-")&&!customElements.get(P)&&z(P,this)}return A},R=()=>Element.prototype.attachShadow=f}return p&&L(v),{stop(){C=!0,U.disconnect(),R&&R(),E&&(clearTimeout(E),E=0),k.forEach(f=>f.disconnect())},flush:B}}static async define(...t){let n={};t.length&&typeof t[t.length-1]=="object"&&(n=t.pop()||{});let r=t,{baseURL:o,mapper:s=d=>`${d}.js`,onError:i=(d,l)=>console.error(`[defineWebComponents] ${d}:`,l)}=n,u=o?new URL(o,typeof location<"u"?location.href:import.meta.url):new URL("./",import.meta.url),p=d=>d.toLowerCase().replace(/(^|-)([a-z])/g,(l,h,m)=>m.toUpperCase()),a=async d=>{try{if(customElements.get(d))return{tag:d,status:"already-defined"};let l=s(d),m=await import(l instanceof URL?l.href:new URL(l,u).href),S=m?.default??m?.[p(d)];if(!S){if(customElements.get(d))return{tag:d,status:"self-defined"};throw new Error(`No export found for ${d}. Expected default export or named export "${p(d)}".`)}return customElements.get(d)?{tag:d,status:"race-already-defined"}:(customElements.define(d,S),{tag:d,status:"defined"})}catch(l){throw i(d,l),l}};return Promise.all(r.map(a))}}});function ke(e){return new DOMParser().parseFromString(e,"text/html").body.childNodes}function ve(e,t=100){let n;return function(...o){let s=()=>{clearTimeout(n),e(...o)};clearTimeout(n),n=setTimeout(s,t)}}function q(e){setTimeout(e,0)}function Ee(e){try{if(typeof e!="string"||e.indexOf(`
|
|
2
|
+
`)!==-1||e.indexOf(" ")!==-1||e.startsWith("#/"))return!1;let t=new URL(e,window.location.origin);return t.protocol==="http:"||t.protocol==="https:"}catch{return!1}}function Ae(e,t,n){let r=window.screen.width/2-t/2,o=window.screen.height/2-n/2;return window.open(e,"",`toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes, width=${t}, height=${n}, top=${o}, left=${r}`)}var X={result:"ac-suggestion",item:"ac-itm"},G=class e extends EventTarget{constructor(t,n,r){super(),this.settings={emptyResultsText:"",...r},this.container=t,this.input=n,this.input.setAttribute("autocomplete","off"),this.categories=r.categories||{},this.caches=new Map,q(this.attach.bind(this))}static connect(t,n){let r=t.target;if(!r._autoComplete){if(!n?.categories)throw Error("Missing autocomplete settings");r._autoComplete=new e(r.parentNode,r,n),t.type==="focus"&&setTimeout(()=>{r._autoComplete.focusHandler(t)},100)}return r._autoComplete}on(t,n){return this.input.addEventListener(t,n),this}attach(){this.resultsDiv=document.createElement("div"),this.resultsDiv.title="",this.resultsDiv.classList.add(X.result),this.container.offsetWidth>100&&(this.resultsDiv.style.width=this.container.offsetWidth),this.resultsDiv.addEventListener("mousedown",this.resultClick.bind(this)),this.container.classList.add("ac-container"),this.input.classList.add("ac-input");let t=getComputedStyle(this.input);this.container.style.setProperty("--ac-bg-default",t.backgroundColor),this.container.style.setProperty("--ac-color-default",t.color);let n=getComputedStyle(this.input).accentColor;n!=="auto"&&this.container.style.setProperty("--ac-accent-color",n),(this.container?.shadowRoot??this.container).appendChild(this.resultsDiv),this.controller().clear("attach"),this.on("input",ve(this.inputHandler.bind(this),this.settings.throttleInputMs??300)).on("focus",this.focusHandler.bind(this)).on("focusout",this.blurHandler.bind(this)).on("keyup",this.keyUpHandler.bind(this)).on("keydown",this.keyDownHandler.bind(this))}controller(){let t=this.internalController();return typeof this.settings.controller=="function"&&(t=this.settings.controller(this)??t),t}internalController(){return{show:this.show.bind(this),hide:this.hide.bind(this),clear:this.clear.bind(this),empty:()=>{}}}moveResult(t){this.controller().show();let n=this.acItems.length;this.rowIndex=this.rowIndex+t,this.rowIndex<=0?this.rowIndex=0:this.rowIndex>n-1&&(this.rowIndex=0);for(let o of this.acItems)o.classList.remove("selected");let r=this.getSelectedDiv();r?(r.classList.add("selected"),r.scrollIntoView({behavior:"smooth",block:"end",inline:"nearest"})):this.focusHandler({target:this.input})}getSelectedDiv(){return this.resultsDiv.querySelector(`div:nth-child(${this.rowIndex+1})`)}selectResult(t){if(t=t||this.getSelectedDiv(),t){let n=parseInt(t.getAttribute("data-index"));this.resultClicked=!0;let r=this.results[n],o=this.categories[r.category]??{};o.action=o.action??this.setText.bind(this),o.newTab&&(this.tabWindow=Ae("about:blank"));let s={...r,search:this.input.value};t.classList.add("ac-active"),setTimeout(()=>{this.controller().hide("result-selected"),s.action?s.action(s):(o.action(s),o.newTab&&(s.url?this.tabWindow.location.href=s.url:this.tabWindow.close()));var i=new Event("change",{bubbles:!0});this.input.dispatchEvent(i),this.controller().clear("result-selected");let u=new Event("result-selected");u.detail=s,this.input.dispatchEvent(u)},0)}}setText(t){this.container.autoCompleteInput||(this.container.value=t.text),this.controller().hide("settext")}resultClick(t){this.selectResult(t.target.closest(`.${X.item}`))}blurHandler(){setTimeout(()=>{this.resultClicked||this.controller().clear("blurred"),this.resultClicked=!1},100)}clear(){this.settings.debug||this.resultsDiv&&(this.resultsDiv.innerHTML="",this.controller().hide("clear"),this.cacheTmr&&clearTimeout(this.cacheTmr),this.cacheTmr=setTimeout(()=>{this.caches.clear()},60*1e3*5))}show(){if(!this.resultsDiv.classList.contains("ac-active")){let t=this.getViewBounds();this.resultsDiv.style.position="absolute",t.rect.width>100&&(this.resultsDiv.style.width=`${t.rect.width}px`),this.settings.direction=this.settings.direction??t.suggestedDirection,this.resultsDiv.setAttribute("data-direction",this.settings.direction),this.settings.direction==="up"?(this.resultsDiv.style.top="unset",this.resultsDiv.style.bottom=`${t.rect.height+20}px`,this.rowIndex=this.acItems.length):(this.resultsDiv.style.bottom="unset",this.resultsDiv.style.top=`${t.rect.height}px`,this.rowIndex=-1),this.resultsDiv.style.maxWidth="unset",this.resultsDiv.classList.toggle("ac-active",!0)}}getViewBounds(){let t=this.input.getBoundingClientRect();return{rect:t,suggestedDirection:t.top+t.height+500>window.innerHeight?"up":"down"}}hide(){this.resultsDiv.classList.toggle("ac-active",!1)}empty(){this.resultsDiv.innerHTML=`<div class="ac-empty">${this.settings.emptyResultsText}</div>`,this.controller().show()}inputHandler(t){this.cacheTmr&&clearTimeout(this.cacheTmr);let n={search:t.target.value,categories:this.categories};this.container.classList.add("search-running"),this.getItems(n,t).then(r=>{this.controller().clear("new-results"),this.resultsHandler(r,n),this.container.classList.remove("search-running")})}keyDownHandler(t){switch(t.key){case"Enter":t.stopPropagation(),t.preventDefault();break;case"ArrowDown":q(this.moveResult(1));break;case"ArrowUp":q(this.moveResult(-1));break}}keyUpHandler(t){switch(t.key){case"Escape":this.controller().hide("escape");break;case"Enter":this.getSelectedDiv()&&(this.container.preventEnter=!0,t.stopPropagation(),t.preventDefault(),this.selectResult(),setTimeout(()=>{this.container.preventEnter=!1},10));break;default:break}}focusHandler(t){this.controller().clear("focus");let n=t.target.value;this.suggest(n,t)}suggest(t,n){this.input.focus();let r={suggest:!0,search:t||"",categories:this.categories};this.getItems(r,n).then(o=>{this.input.dispatchEvent(new CustomEvent("show-results",{detail:{results:o}})),this.resultsHandler(o,r)})}sort(t,n){return t.sort((r,o)=>{let s=n.categories[r.category],i=n.categories[o.category],u=typeof s.sortIndex=="function"?s.sortIndex(n):s.sortIndex??0;return(typeof i.sortIndex=="function"?i.sortIndex(n):i.sortIndex??0)>u?1:-1})}resultsHandler(t,n){this.results=t,this.rowIndex=-1;let r=0,o=(s,i)=>`
|
|
3
3
|
<div title="${i.tooltip||""}" data-index="${r}" class="${`${X.item} cat-${i.category} ${i.class??""}`.trim()}">
|
|
4
4
|
${this.handleImageOrIcon(i)}
|
|
5
5
|
<span class="text">${this.formatResultItem(i,n,s)}</span>
|
|
6
6
|
${this.settings.hideCategory?"":`<span class="category">${i.category||""}</span>`}
|
|
7
|
-
</div>`;t.forEach(s=>{let i=n.categories[s.category]||{};s.element?this.resultsDiv.appendChild(s.element):(s=typeof s=="string"?{text:s}:s,this.resultsDiv.appendChild(
|
|
7
|
+
</div>`;t.forEach(s=>{let i=n.categories[s.category]||{};s.element?this.resultsDiv.appendChild(s.element):(s=typeof s=="string"?{text:s}:s,this.resultsDiv.appendChild(ke(o(i,s))[0])),r++}),t.length?(this.acItems=this.resultsDiv.querySelectorAll(".ac-itm"),this.controller().show()):n.search.length&&this.controller().empty()}handleImageOrIcon(t){return t.image?`<img src="${t.image}"/>`:typeof this.settings.iconHandler=="function"?this.settings.iconHandler(t):`<svg-icon icon="${t.icon}"></svg-icon>`}formatResultItem(t,n,r){let o=typeof t=="string"?{text:t}:t,s=o.text;return n.search&&(s=s.replace("%search%",n.search),o.description=o.description?.replace("%search%",n.search)),s=this.highlight(s,n.search),o.description&&(s=`<div>${s}</div><small>${o.description}</small>`),r.format&&(s=r.format({item:o,result:s,options:n})),s}highlight(t,n){var r=new RegExp("("+n+")","gi");return t.replace(r,'<span class="txt-hl">$1</span>')}async getItems(t,n){this.aborter&&this.aborter.abort();let r=this.caches.get(t.search);if(r)return r;let o=this.settings.map,s=p=>(typeof p=="string"&&(p={text:p}),p),i=p=>o?p.map(a=>({text:a[o]})):p.map(a=>s(a)),u=p=>(this.settings.max&&this.settings.max>0&&(p.length=this.settings.max),p);return this.aborter=new AbortController,this.aborterSignal=this.aborter.signal,new Promise(p=>{let a=d=>{d=this.sort(d,t),this.settings.cache!==!1&&this.caches.set(t.search,d),p(d)};if(Ee(this.items)){if(this.settings.minlength>0&&(!t.search||t.search.length<this.settings.minlength)){a([]);return}let d=this.formatSearch(this.items,t);fetch(d).then(l=>{if(l.status===200){l.json().then(h=>{h=i(h),a(u(h.filter(m=>this.isMatch(t,m))))});return}throw Error(`HTTP error ${l.status} - ${d}`)})}else if(Array.isArray(this.items)){let d=!0;this.items=this.items.map(l=>typeof l=="string"?{text:l}:(d=!1,l)),d&&this.container.classList.add("simple"),a(u(i(this.items)))}else if(typeof this.items=="function")t.control=this.container,Promise.resolve(this.items(t,n)).then(l=>{l=l.map(h=>s(h)),l=i(l),a(l)});else return a(Promise.resolve(this.items.apply(this,t)))})}async items(t){let n=[];t.results=[],t.signal=this.aborterSignal;for(var r in t.categories){let o=t.categories[r];if(o.trigger=o.trigger??(()=>!0),t.results=n,o.trigger(t)){let s=[];try{s=await o.getItems(t)}catch(i){console.warn(`Error loading items for omniBox category '${r}'.`,i)}n=n.concat(s.map(i=>(i.category=r,i)))}}return n}formatSearch(t,n){return t.indexOf("%search%")?t.replace("%search%",n.search||""):t+"?"+this.createQueryParam(n)}createQueryParam(t){let n=t.suggest?"&suggest=true":"";return`q=${t.text}${n}`}isMatch(t,n){return n.text?.indexOf("%search%")>=0?!0:t.search?n.text?.toLowerCase().indexOf(t.search.toLowerCase())>=0:t.suggest}static textFilter(t,n){return function(r){if(!t.search)return!0;if(r.hidden)return!1;let s=(n?r[n]:r).match(new RegExp(t.search,"gi"));if(s)return s;if(r.config?.tags)return r.config.tags.some(i=>i.match(new RegExp(t.search,"gi")))}}};var ee=class{constructor(){this._mode="static",this._staticPaths={tokens:"/assets/pds/styles/pds-tokens.css.js",primitives:"/assets/pds/styles/pds-primitives.css.js",components:"/assets/pds/styles/pds-components.css.js",utilities:"/assets/pds/styles/pds-utilities.css.js",styles:"/assets/pds/styles/pds-styles.css.js"}}setLiveMode(){this._mode="live"}setStaticMode(t={}){this._mode="static",this._staticPaths={...this._staticPaths,...t}}async getStylesheet(t){if(this._mode==="live")return null;try{return(await import(this._staticPaths[t]))[t]}catch(n){console.error(`[PDS Registry] Failed to load static ${t}:`,n),console.error(`[PDS Registry] Looking for: ${this._staticPaths[t]}`),console.error("[PDS Registry] Make sure you've run 'npm run pds:build' and configured PDS.start() with the correct static.root path");let r=new CSSStyleSheet;return r.replaceSync("/* Failed to load "+t+" */"),r}}get mode(){return this._mode}get isLive(){return this._mode==="live"}},F=new ee;async function Le(e,t=[],n=null){try{let r=n?.primitivesStylesheet?n.primitivesStylesheet:await F.getStylesheet("primitives");e.adoptedStyleSheets=[r,...t]}catch(r){let o=e.host?.tagName?.toLowerCase()||"unknown";console.error(`[PDS Adopter] <${o}> failed to adopt primitives:`,r),e.adoptedStyleSheets=t}}async function Re(e,t=["primitives"],n=[],r=null){try{let s=(await Promise.all(t.map(async i=>{if(r)switch(i){case"tokens":return r.tokensStylesheet;case"primitives":return r.primitivesStylesheet;case"components":return r.componentsStylesheet;case"utilities":return r.utilitiesStylesheet;default:break}return F.getStylesheet(i)}))).filter(i=>i!==null);e.adoptedStyleSheets=[...s,...n]}catch(o){let s=e.host?.tagName?.toLowerCase()||"unknown";console.error(`[PDS Adopter] <${s}> failed to adopt layers:`,o),e.adoptedStyleSheets=n}}function Me(e){let t=new CSSStyleSheet;return t.replaceSync(e),t}var c={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 Ce={mode:"live",preset:"default",autoDefine:{predefine:["pds-icon","pds-drawer","pds-toaster"]},log(e,t,...n){console[e](t,...n)}};var re={};xe(re,{deepMerge:()=>Te,fragmentFromTemplateLike:()=>te,isObject:()=>V,parseHTML:()=>ne});function V(e){return e&&typeof e=="object"&&!Array.isArray(e)}function Te(e,t){let n={...e};return V(e)&&V(t)&&Object.keys(t).forEach(r=>{V(t[r])?r in e?n[r]=Te(e[r],t[r]):Object.assign(n,{[r]:t[r]}):Object.assign(n,{[r]:t[r]})}),n}function te(e){let t=Array.isArray(e?.strings)?e.strings:[],n=Array.isArray(e?.values)?e.values:[],r=new Set,o=[],s=/(\s)(\.[\w-]+)=\s*$/;for(let l=0;l<t.length;l+=1){let h=t[l]??"",m=h.match(s);if(m&&l<n.length){let x=m[2].slice(1),b=`pds-val-${l}`;h=h.replace(s,`$1data-pds-prop="${x}:${b}"`),r.add(l)}o.push(h),l<n.length&&!r.has(l)&&o.push(`<!--pds-val-${l}-->`)}let i=document.createElement("template");i.innerHTML=o.join("");let u=(l,h)=>{let m=l.parentNode;if(!m)return;if(h==null){m.removeChild(l);return}let S=x=>{if(x!=null){if(x instanceof Node){m.insertBefore(x,l);return}if(Array.isArray(x)){x.forEach(b=>S(b));return}m.insertBefore(document.createTextNode(String(x)),l)}};S(h),m.removeChild(l)},p=document.createTreeWalker(i.content,NodeFilter.SHOW_COMMENT),a=[];for(;p.nextNode();){let l=p.currentNode;l?.nodeValue?.startsWith("pds-val-")&&a.push(l)}return a.forEach(l=>{let h=Number(l.nodeValue.replace("pds-val-",""));u(l,n[h])}),i.content.querySelectorAll("*").forEach(l=>{let h=l.getAttribute("data-pds-prop");if(!h)return;let[m,S]=h.split(":"),x=Number(String(S).replace("pds-val-",""));m&&Number.isInteger(x)&&(l[m]=n[x]),l.removeAttribute("data-pds-prop")}),i.content}function ne(e){return new DOMParser().parseFromString(e,"text/html").body.childNodes}function se(e,t){if(t==null)return;if(typeof t=="object"&&Array.isArray(t.strings)&&Array.isArray(t.values)){e.appendChild(te(t));return}if(t instanceof Node){e.appendChild(t);return}if(Array.isArray(t)){t.forEach(r=>se(e,r));return}let n=typeof t=="string"?t:String(t);e.appendChild(document.createTextNode(n))}async function De(e,t={}){return t={...{title:"Confirm",type:"confirm",buttons:{ok:{name:"OK",primary:!0},cancel:{name:"Cancel",cancel:!0}}},...t},new Promise(r=>{let o=document.createElement("dialog");Ce.options?.liquidGlassEffects&&o.classList.add("liquid-glass"),t.size&&o.classList.add(`dialog-${t.size}`),t.type&&o.classList.add(`dialog-${t.type}`),t.class&&(Array.isArray(t.class)?o.classList.add(...t.class):o.classList.add(t.class)),t.maxHeight&&o.style.setProperty("--dialog-max-height",t.maxHeight);let s=Object.entries(t.buttons).map(([u,p])=>{let a=p.primary?"btn-primary btn-sm":"btn-outline btn-sm";return`<button type="${p.cancel?"button":"submit"}" class="${a}" value="${u}">${p.name}</button>`});if(t.useForm){let u=document.createElement("div");se(u,e);let p=u.querySelector("form");if(p){o.innerHTML=`
|
|
8
8
|
<header>
|
|
9
9
|
<h2>${t.title}</h2>
|
|
10
10
|
</header>
|
|
11
|
-
`;let
|
|
11
|
+
`;let a=document.createElement("article");for(a.className="dialog-body";p.firstChild;)a.appendChild(p.firstChild);p.appendChild(a);let d=document.createElement("footer");d.innerHTML=s.join(""),p.appendChild(d),o.appendChild(p)}else o.innerHTML=`
|
|
12
12
|
<header>
|
|
13
13
|
<h2>${t.title}</h2>
|
|
14
14
|
</header>
|
|
@@ -16,7 +16,7 @@ var Ne=Object.defineProperty;var je=(e,t)=>()=>(e&&(t=e(e=0)),t);var ge=(e,t)=>{
|
|
|
16
16
|
<footer>
|
|
17
17
|
${s.join("")}
|
|
18
18
|
</footer>
|
|
19
|
-
`,o.querySelector("#msg-container").appendChild(
|
|
19
|
+
`,o.querySelector("#msg-container").appendChild(u)}else{o.innerHTML=`
|
|
20
20
|
<form method="dialog">
|
|
21
21
|
<header>
|
|
22
22
|
<h2>${t.title}</h2>
|
|
@@ -28,5 +28,5 @@ var Ne=Object.defineProperty;var je=(e,t)=>()=>(e&&(t=e(e=0)),t);var ge=(e,t)=>{
|
|
|
28
28
|
${s.join("")}
|
|
29
29
|
</footer>
|
|
30
30
|
</form>
|
|
31
|
-
`;let p=o.querySelector("#msg-container");se(p,e)}o.addEventListener("click",p=>{p.target.closest('button[value="cancel"]')&&(o.close(),r(!1))});let i=()=>{let p=o.querySelector("form");p?p.addEventListener("submit",l=>{l.preventDefault();let d;t.useForm&&l.submitter.value==="ok"?(console.log("Found form:",p),console.log("Form elements:",p?Array.from(p.elements):"no form"),d=new FormData(p),console.log("FormData entries:",Array.from(d.entries()))):d=l.submitter.value==="ok",o.close(),r(d)}):requestAnimationFrame(i)};i(),o.addEventListener("close",()=>{setTimeout(()=>o.remove(),200)}),document.body.appendChild(o),typeof t.rendered=="function"&&t.rendered(o),o.showModal()})}async function Oe(){let e=document.querySelector("pds-toaster");return e||(e=document.createElement("pds-toaster"),document.body.appendChild(e),await customElements.whenDefined("pds-toaster")),e}async function M(e,t={}){return(await Oe()).toast(e,t)}M.success=async function(e,t={}){return M(e,{...t,type:"success"})};M.error=async function(e,t={}){return M(e,{...t,type:"error"})};M.warning=async function(e,t={}){return M(e,{...t,type:"warning"})};M.info=async function(e,t={}){return M(e,{...t,type:"information"})};var qe=[{selector:".accordion"},{selector:"nav[data-dropdown]"},{selector:"label[data-toggle]"},{selector:'input[type="range"]'},{selector:"form[data-required]"},{selector:"fieldset[role=group][data-open]"},{selector:"[data-clip]"},{selector:"button, a[class*='btn-']"}];function Ge(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 Ve(e){if(e.dataset.enhancedDropdown)return;e.dataset.enhancedDropdown="true";let t=e.lastElementChild;if(!t)return;let n=e.querySelector("[data-dropdown-toggle]")||e.querySelector("button");n&&!n.hasAttribute("type")&&n.setAttribute("type","button"),t.id||(t.id=`dropdown-${Math.random().toString(36).slice(2,9)}`),t.tagName?.toLowerCase()==="menu"&&!t.hasAttribute("role")&&t.setAttribute("role","menu"),t.hasAttribute("aria-hidden")||t.setAttribute("aria-hidden","true"),n&&(n.setAttribute("aria-haspopup","true"),n.setAttribute("aria-controls",t.id),n.setAttribute("aria-expanded","false"));let o=()=>{let l=(e.getAttribute("data-mode")||"auto").toLowerCase();if(l==="up"||l==="down")return l;let d=e.getBoundingClientRect(),u=Math.max(0,window.innerHeight-d.bottom);return Math.max(0,d.top)>u?"up":"down"},s=()=>{e.dataset.dropdownDirection=o(),t.setAttribute("aria-hidden","false"),n?.setAttribute("aria-expanded","true")},i=()=>{t.setAttribute("aria-hidden","true"),n?.setAttribute("aria-expanded","false")},p=()=>{t.getAttribute("aria-hidden")==="false"?i():s()};n?.addEventListener("click",l=>{l.preventDefault(),l.stopPropagation(),p()}),document.addEventListener("click",l=>{e.contains(l.target)||i()}),e.addEventListener("keydown",l=>{l.key==="Escape"&&(i(),n?.focus())}),e.addEventListener("focusout",l=>{(!l.relatedTarget||!e.contains(l.relatedTarget))&&i()})}function Ke(e){if(e.dataset.enhancedToggle)return;e.dataset.enhancedToggle="true";let t=e.querySelector('input[type="checkbox"]');if(!t)return;e.hasAttribute("tabindex")||e.setAttribute("tabindex","0"),e.setAttribute("role","switch"),e.setAttribute("aria-checked",t.checked?"true":"false");let n=document.createElement("span");n.className="toggle-switch",n.setAttribute("role","presentation"),n.setAttribute("aria-hidden","true");let r=document.createElement("span");r.className="toggle-knob",n.appendChild(r),e.insertBefore(n,t.nextSibling);let o=()=>{e.setAttribute("aria-checked",t.checked?"true":"false")},s=()=>{t.disabled||(t.checked=!t.checked,o(),t.dispatchEvent(new Event("change",{bubbles:!0})))};e.addEventListener("click",i=>{i.preventDefault(),s()}),e.addEventListener("keydown",i=>{(i.key===" "||i.key==="Enter")&&(i.preventDefault(),s())}),t.addEventListener("change",o)}function Qe(e){if(e.dataset.enhancedRange)return;let t=e.closest("label"),n=t?.classList.contains("range-output"),r=e.id||`range-${Math.random().toString(36).substring(2,11)}`,o=`${r}-output`;if(e.id=r,n){let s=t.querySelector("span");if(s&&!s.classList.contains("range-output-wrapper")){let i=document.createElement("span");i.className="range-output-wrapper",i.style.display="flex",i.style.justifyContent="space-between",i.style.alignItems="center";let p=document.createElement("span");p.textContent=s.textContent,i.appendChild(p);let l=document.createElement("output");l.id=o,l.setAttribute("for",r),l.style.color="var(--surface-text-secondary, var(--color-text-secondary))",l.style.fontSize="0.875rem",l.textContent=e.value,i.appendChild(l),s.textContent="",s.appendChild(i);let d=()=>{l.textContent=e.value};e.addEventListener("input",d)}}else{let s=e.closest(".range-container");s||(s=document.createElement("div"),s.className="range-container",e.parentNode?.insertBefore(s,e),s.appendChild(e)),s.style.position="relative";let i=document.createElement("output");i.id=o,i.setAttribute("for",r),i.className="range-bubble",i.setAttribute("aria-live","polite"),s.appendChild(i);let p=()=>{let u=parseFloat(e.min)||0,c=parseFloat(e.max)||100,y=parseFloat(e.value),b=(y-u)/(c-u);i.style.left=`calc(${b*100}% )`,i.textContent=String(y)},l=()=>i.classList.add("visible"),d=()=>i.classList.remove("visible");e.addEventListener("input",p),e.addEventListener("pointerdown",l),e.addEventListener("pointerup",d),e.addEventListener("pointerleave",d),e.addEventListener("focus",l),e.addEventListener("blur",d),p()}e.dataset.enhancedRange="1"}function Ze(e){if(e.dataset.enhancedRequired)return;e.dataset.enhancedRequired="true";let t=n=>{let r=n.closest("label");if(!r||r.querySelector(".required-asterisk"))return;let o=document.createElement("span");o.classList.add("required-asterisk"),o.textContent="*",o.style.marginLeft="4px",r.querySelector("span").appendChild(o);let s=n.closest("form");if(s&&!s.querySelector(".required-legend")){let i=document.createElement("small");i.classList.add("required-legend"),i.textContent="* Required fields",s.insertBefore(i,s.querySelector(".form-actions")||s.lastElementChild)}};e.querySelectorAll("[required]").forEach(n=>{t(n)})}function Je(e){if(e.dataset.enhancedOpenGroup)return;e.dataset.enhancedOpenGroup="true",e.classList.add("flex","flex-wrap","buttons");let t=document.createElement("input");t.type="text",t.placeholder="Add item...",t.classList.add("input-text","input-sm"),t.style.width="auto";let n=e.querySelector('input[type="radio"], input[type="checkbox"]');e.appendChild(t),t.addEventListener("keydown",r=>{if(r.key==="Enter"||r.key==="Tab"){let o=t.value.trim();if(o){r.preventDefault();let s=n.type==="radio"?"radio":"checkbox",i=`open-group-${Math.random().toString(36).substring(2,11)}`,p=document.createElement("label"),l=document.createElement("span");l.setAttribute("data-label",""),l.textContent=o;let d=document.createElement("input");d.type=s,d.name=n.name||e.getAttribute("data-name")||"open-group",d.value=o,d.id=i,p.appendChild(l),p.appendChild(d),e.insertBefore(p,t),t.value=""}}else if(r.key==="Backspace"&&t.value===""){r.preventDefault();let o=e.querySelectorAll("label");o.length>0&&o[o.length-1].remove()}})}function Ye(e){if(e.dataset.enhancedClip)return;e.dataset.enhancedClip="true",e.hasAttribute("tabindex")||e.setAttribute("tabindex","0"),e.hasAttribute("role")||e.setAttribute("role","button");let t=()=>{let r=e.getAttribute("data-clip-open")==="true";e.setAttribute("aria-expanded",r?"true":"false")},n=()=>{let r=e.getAttribute("data-clip-open")==="true";e.setAttribute("data-clip-open",r?"false":"true"),t()};e.addEventListener("click",r=>{r.defaultPrevented||n()}),e.addEventListener("keydown",r=>{(r.key===" "||r.key==="Enter")&&(r.preventDefault(),n())}),t()}function Xe(e){if(e.dataset.enhancedBtnWorking)return;e.dataset.enhancedBtnWorking="true";let t=null,n=!1;new MutationObserver(o=>{o.forEach(s=>{if(s.attributeName==="class"){let i=e.classList.contains("btn-working"),p=e.querySelector("pds-icon");if(i)if(p)t||(t=p.getAttribute("icon")),p.setAttribute("icon","circle-notch");else{let l=document.createElement("pds-icon");l.setAttribute("icon","circle-notch"),l.setAttribute("size","sm"),e.insertBefore(l,e.firstChild),n=!0}else s.oldValue?.includes("btn-working")&&p&&(n?(p.remove(),n=!1):t&&(p.setAttribute("icon",t),t=null))}})}).observe(e,{attributes:!0,attributeFilter:["class"],attributeOldValue:!0})}var et=new Map([[".accordion",Ge],["nav[data-dropdown]",Ve],["label[data-toggle]",Ke],['input[type="range"]',Qe],["form[data-required]",Ze],["fieldset[role=group][data-open]",Je],["[data-clip]",Ye],["button, a[class*='btn-']",Xe]]),oe=qe.map(e=>({...e,run:et.get(e.selector)||(()=>{})}));var Ce="pds",tt=/^([a-z][a-z0-9+\-.]*:)?\/\//i,Me=/^[a-z]:/i;function B(e=""){return e.endsWith("/")?e:`${e}/`}function nt(e="",t=Ce){let n=e.replace(/\/+$/,"");return new RegExp(`(?:^|/)${t}$`,"i").test(n)?n:`${n}/${t}`}function rt(e){return e.replace(/^\.\/+/,"")}function st(e){return Me.test(e)?e.replace(Me,"").replace(/^\/+/,""):e}function ot(e){return e.startsWith("public/")?e.substring(7):e}function ie(e,t={}){let n=t.segment||Ce,r=t.defaultRoot||`/assets/${n}/`,o=e?.public&&e.public?.root||e?.static&&e.static?.root||null;if(!o||typeof o!="string")return B(r);let s=o.trim();return s?(s=s.replace(/\\/g,"/"),s=nt(s,n),s=B(s),tt.test(s)?s:(s=rt(s),s=st(s),s.startsWith("/")||(s=ot(s),s.startsWith("/")||(s=`/${s}`),s=s.replace(/\/+/g,(i,p)=>p===0?i:"/")),B(s))):B(r)}var V="any",Te={type:"object",allowUnknown:!1,properties:{id:{type:"string"},name:{type:"string"},tags:{type:"array",items:{type:"string"}},description:{type:"string"},options:{type:"object",allowUnknown:!0},form:{type:"object",allowUnknown:!0},colors:{type:"object",allowUnknown:!1,properties:{primary:{type:"string",relations:{tokens:["--color-primary-*","--color-primary-fill","--color-primary-text","--background-mesh-*"]}},secondary:{type:"string",relations:{tokens:["--color-secondary-*","--color-gray-*","--background-mesh-*"]}},accent:{type:"string",relations:{tokens:["--color-accent-*","--background-mesh-*"]}},background:{type:"string",relations:{tokens:["--color-surface-*","--color-surface-translucent-*","--surface-*-bg","--surface-*-text","--surface-*-text-secondary","--surface-*-text-muted","--surface-*-icon","--surface-*-icon-subtle","--surface-*-shadow","--surface-*-border"]}},success:{type:["string","null"],relations:{tokens:["--color-success-*"]}},warning:{type:["string","null"],relations:{tokens:["--color-warning-*"]}},danger:{type:["string","null"],relations:{tokens:["--color-danger-*"]}},info:{type:["string","null"],relations:{tokens:["--color-info-*"]}},gradientStops:{type:"number"},elevationOpacity:{type:"number",relations:{tokens:["--surface-*-shadow"]}},darkMode:{type:"object",allowUnknown:!0,properties:{background:{type:"string",relations:{theme:"dark",tokens:["--color-surface-*","--color-surface-translucent-*","--surface-*-bg","--surface-*-text","--surface-*-text-secondary","--surface-*-text-muted","--surface-*-icon","--surface-*-icon-subtle","--surface-*-shadow","--surface-*-border"]}},primary:{type:"string",relations:{theme:"dark",tokens:["--color-primary-*","--color-primary-fill","--color-primary-text"]}},secondary:{type:"string",relations:{theme:"dark",tokens:["--color-secondary-*","--color-gray-*"]}},accent:{type:"string",relations:{theme:"dark",tokens:["--color-accent-*"]}}}}}},typography:{type:"object",allowUnknown:!1,properties:{fontFamilyHeadings:{type:"string",relations:{tokens:["--font-family-headings"]}},fontFamilyBody:{type:"string",relations:{tokens:["--font-family-body"]}},fontFamilyMono:{type:"string",relations:{tokens:["--font-family-mono"]}},baseFontSize:{type:"number",relations:{tokens:["--font-size-*"]}},fontScale:{type:"number",relations:{tokens:["--font-size-*"]}},fontWeightLight:{type:["string","number"],relations:{tokens:["--font-weight-light"]}},fontWeightNormal:{type:["string","number"],relations:{tokens:["--font-weight-normal"]}},fontWeightMedium:{type:["string","number"],relations:{tokens:["--font-weight-medium"]}},fontWeightSemibold:{type:["string","number"],relations:{tokens:["--font-weight-semibold"]}},fontWeightBold:{type:["string","number"],relations:{tokens:["--font-weight-bold"]}},lineHeightTight:{type:["string","number"],relations:{tokens:["--font-line-height-tight"]}},lineHeightNormal:{type:["string","number"],relations:{tokens:["--font-line-height-normal"]}},lineHeightRelaxed:{type:["string","number"],relations:{tokens:["--font-line-height-relaxed"]}},letterSpacingTight:{type:"number"},letterSpacingNormal:{type:"number"},letterSpacingWide:{type:"number"}}},spatialRhythm:{type:"object",allowUnknown:!1,properties:{baseUnit:{type:"number",relations:{tokens:["--spacing-*"]}},scaleRatio:{type:"number"},maxSpacingSteps:{type:"number",relations:{tokens:["--spacing-*"]}},containerMaxWidth:{type:["number","string"]},containerPadding:{type:"number"},inputPadding:{type:"number",relations:{rules:[{selectors:["input","textarea","select"],properties:["padding"]}]}},buttonPadding:{type:"number",relations:{rules:[{selectors:["button",".btn"],properties:["padding"]}]}},sectionSpacing:{type:"number",relations:{rules:[{selectors:["section"],properties:["margin","padding"]}]}}}},shape:{type:"object",allowUnknown:!1,properties:{radiusSize:{type:["string","number"],relations:{tokens:["--radius-*"]}},customRadius:{type:["string","number","null"]},borderWidth:{type:["string","number"],relations:{tokens:["--border-width-*"]}}}},behavior:{type:"object",allowUnknown:!1,properties:{transitionSpeed:{type:["string","number"],relations:{tokens:["--transition-*"]}},animationEasing:{type:"string"},customTransitionSpeed:{type:["number","null"]},customEasing:{type:["string","null"]},focusRingWidth:{type:"number",relations:{rules:[{selectors:[":focus-visible"],properties:["outline-width","box-shadow"]}]}},focusRingOpacity:{type:"number",relations:{rules:[{selectors:[":focus-visible"],properties:["box-shadow","outline-color"]}]}},hoverOpacity:{type:"number"}}},layout:{type:"object",allowUnknown:!1,properties:{maxWidth:{type:["number","string"],relations:{tokens:["--layout-max-width","--layout-max-width-*"]}},maxWidths:{type:"object",allowUnknown:!1,properties:{sm:{type:["number","string"],relations:{tokens:["--layout-max-width-sm"]}},md:{type:["number","string"],relations:{tokens:["--layout-max-width-md"]}},lg:{type:["number","string"],relations:{tokens:["--layout-max-width-lg"]}},xl:{type:["number","string"],relations:{tokens:["--layout-max-width-xl"]}}}},containerPadding:{type:["number","string"],relations:{tokens:["--layout-container-padding"]}},breakpoints:{type:"object",allowUnknown:!1,properties:{sm:{type:"number"},md:{type:"number"},lg:{type:"number"},xl:{type:"number"}}},gridColumns:{type:"number"},gridGutter:{type:"number"},densityCompact:{type:"number"},densityNormal:{type:"number"},densityComfortable:{type:"number"},buttonMinHeight:{type:"number"},inputMinHeight:{type:"number"},baseShadowOpacity:{type:"number",relations:{tokens:["--shadow-*"]}},darkMode:{type:"object",allowUnknown:!0,properties:{baseShadowOpacity:{type:"number",relations:{theme:"dark",tokens:["--shadow-*"]}}}},utilities:{type:"object",allowUnknown:!0},gridSystem:{type:"object",allowUnknown:!0},containerMaxWidth:{type:["number","string"]}}},layers:{type:"object",allowUnknown:!1,properties:{baseShadowOpacity:{type:"number",relations:{tokens:["--shadow-*"]}},shadowBlurMultiplier:{type:"number",relations:{tokens:["--shadow-*"]}},shadowOffsetMultiplier:{type:"number",relations:{tokens:["--shadow-*"]}},shadowDepth:{type:"string"},blurLight:{type:"number"},blurMedium:{type:"number"},blurHeavy:{type:"number"},baseZIndex:{type:"number",relations:{tokens:["--z-*"]}},zIndexStep:{type:"number",relations:{tokens:["--z-*"]}},zIndexBase:{type:"number"},zIndexDropdown:{type:"number"},zIndexSticky:{type:"number"},zIndexFixed:{type:"number"},zIndexModal:{type:"number"},zIndexPopover:{type:"number"},zIndexTooltip:{type:"number"},zIndexNotification:{type:"number"},darkMode:{type:"object",allowUnknown:!0,properties:{baseShadowOpacity:{type:"number",relations:{theme:"dark",tokens:["--shadow-*"]}}}}}},advanced:{type:"object",allowUnknown:!0},a11y:{type:"object",allowUnknown:!0},icons:{type:"object",allowUnknown:!1,properties:{set:{type:"string"},weight:{type:"string"},defaultSize:{type:"number",relations:{tokens:["--icon-size"]}},sizes:{type:"object",allowUnknown:!0},spritePath:{type:"string"},externalPath:{type:"string"},include:{type:"object",allowUnknown:!0}}},components:{type:"object",allowUnknown:!0},gap:{type:"number"},debug:{type:"boolean"}}},it={type:"object",allowUnknown:!0,properties:{mode:{type:"string"},preset:{type:"string"},design:{type:"object"},enhancers:{type:["object","array"]},applyGlobalStyles:{type:"boolean"},manageTheme:{type:"boolean"},themeStorageKey:{type:"string"},preloadStyles:{type:"boolean"},criticalLayers:{type:"array",items:{type:"string"}},autoDefine:{type:"object"},managerURL:{type:"string"},manager:{type:V},log:{type:V}}};function ae(e){return e===null?"null":Array.isArray(e)?"array":typeof e}function at(e,t){if(t===V)return!0;let n=ae(e);return Array.isArray(t)?t.includes(n):n===t}function K(e,t,n,r){if(!t)return;let o=t.type||V;if(!at(e,o)){r.push({path:n,expected:o,actual:ae(e),message:`Expected ${o} but got ${ae(e)}`});return}if(o==="array"&&t.items&&Array.isArray(e)&&e.forEach((s,i)=>{K(s,t.items,`${n}[${i}]`,r)}),o==="object"&&e&&typeof e=="object"){let s=t.properties||{};for(let[i,p]of Object.entries(e)){if(!Object.prototype.hasOwnProperty.call(s,i)){t.allowUnknown||r.push({path:`${n}.${i}`,expected:"known property",actual:"unknown",message:`Unknown property "${i}"`});continue}K(p,s[i],`${n}.${i}`,r)}}}function ce(e,t="",n={}){if(!e||typeof e!="object")return n;if(e.relations&&t&&(n[t]=e.relations),e.type==="object"&&e.properties&&Object.entries(e.properties).forEach(([r,o])=>{let s=t?`${t}.${r}`:r;ce(o,s,n)}),e.type==="array"&&e.items){let r=`${t}[]`;ce(e.items,r,n)}return n}var Tt=ce(Te,"");function le(e,{log:t,context:n="PDS config"}={}){if(!e||typeof e!="object")return[];let r=[];return K(e,Te,"design",r),r.length&&typeof t=="function"&&r.forEach(o=>{t("warn",`[${n}] ${o.message} at ${o.path}`)}),r}function De(e,{log:t,context:n="PDS config"}={}){if(!e||typeof e!="object")return[];let r=[];return K(e,it,"config",r),r.length&&typeof t=="function"&&r.forEach(o=>{t("warn",`[${n}] ${o.message} at ${o.path}`)}),r}var ct={"ocean-breeze":{id:"ocean-breeze",name:"Ocean Breeze",tags:["playful"],description:"Fresh and calming ocean-inspired palette with professional undertones",options:{liquidGlassEffects:!0,backgroundMesh:3},colors:{primary:"#0891b2",secondary:"#64748b",accent:"#06b6d4",background:"#f0f9ff",darkMode:{background:"#0c1821",secondary:"#94a3b8",primary:"#0891b2"}},typography:{baseFontSize:17,fontScale:1.5,fontFamilyHeadings:'system-ui, -apple-system, "Segoe UI", Roboto, sans-serif',fontFamilyBody:'system-ui, -apple-system, "Segoe UI", Roboto, sans-serif'},spatialRhythm:{baseUnit:6,scaleRatio:1.2},shape:{radiusSize:a.RadiusSizes.xxlarge}},"midnight-steel":{id:"midnight-steel",name:"Midnight Steel",description:"Bold industrial aesthetic with sharp contrasts and urban edge",colors:{primary:"#3b82f6",secondary:"#52525b",accent:"#f59e0b",background:"#fafaf9",darkMode:{background:"#18181b",secondary:"#71717a",primary:"#3b82f6"}},typography:{baseFontSize:16,fontScale:1.333,fontFamilyHeadings:"'IBM Plex Sans', system-ui, -apple-system, sans-serif",fontFamilyBody:"'Inter', system-ui, -apple-system, sans-serif",fontWeightSemibold:600},spatialRhythm:{baseUnit:4,scaleRatio:1.25},shape:{radiusSize:a.RadiusSizes.small,borderWidth:a.BorderWidths.thin}},"neural-glow":{id:"neural-glow",name:"Neural Glow",description:"AI-inspired with vibrant purple-blue gradients and futuristic vibes",colors:{primary:"#8b5cf6",secondary:"#6366f1",accent:"#ec4899",background:"#faf5ff",darkMode:{background:"#0f0a1a",secondary:"#818cf8",primary:"#8b5cf6"}},typography:{baseFontSize:16,fontScale:1.618,fontFamilyHeadings:"'Space Grotesk', system-ui, sans-serif",fontFamilyBody:"'Space Grotesk', system-ui, sans-serif"},spatialRhythm:{baseUnit:4,scaleRatio:1.5},shape:{radiusSize:a.RadiusSizes.xlarge,borderWidth:a.BorderWidths.medium},behavior:{transitionSpeed:a.TransitionSpeeds.fast}},"paper-and-ink":{id:"paper-and-ink",name:"Paper & Ink",tags:["app","featured"],description:"Ultra-minimal design with focus on typography and whitespace",colors:{primary:"#171717",secondary:"#737373",accent:"#525252",background:"#ffffff",darkMode:{background:"#0a0a0a",secondary:"#a3a3a3",primary:"#737373"}},typography:{baseFontSize:18,fontScale:1.333,fontFamilyHeadings:"'Helvetica Neue', 'Arial', sans-serif",fontFamilyBody:"'Georgia', 'Times New Roman', serif",fontWeightNormal:400,fontWeightBold:700},spatialRhythm:{baseUnit:4,scaleRatio:1.2},shape:{radiusSize:a.RadiusSizes.none,borderWidth:a.BorderWidths.thin}},"sunset-paradise":{id:"sunset-paradise",name:"Sunset Paradise",description:"Warm tropical colors evoking golden hour by the beach",options:{liquidGlassEffects:!0,backgroundMesh:2},colors:{primary:"#ea580c",secondary:"#d4a373",accent:"#fb923c",background:"#fffbeb",darkMode:{background:"#1a0f0a",secondary:"#c9a482",primary:"#f97316"}},typography:{baseFontSize:16,fontScale:1.5,fontFamilyHeadings:"'Quicksand', 'Comfortaa', sans-serif",fontFamilyBody:"'Quicksand', 'Comfortaa', sans-serif"},spatialRhythm:{baseUnit:6,scaleRatio:1.5},shape:{radiusSize:a.RadiusSizes.xxlarge,borderWidth:a.BorderWidths.medium}},"retro-wave":{id:"retro-wave",name:"Retro Wave",description:"Nostalgic 80s-inspired palette with neon undertones",colors:{primary:"#c026d3",secondary:"#a78bfa",accent:"#22d3ee",background:"#fef3ff",darkMode:{background:"#1a0a1f",secondary:"#c4b5fd",primary:"#d946ef"}},typography:{baseFontSize:15,fontScale:1.5,fontFamilyHeadings:"'Orbitron', 'Impact', monospace",fontFamilyBody:"'Courier New', 'Courier', monospace",fontWeightBold:700},spatialRhythm:{baseUnit:4,scaleRatio:1.25},shape:{radiusSize:a.RadiusSizes.none,borderWidth:a.BorderWidths.thick},behavior:{transitionSpeed:a.TransitionSpeeds.instant}},"forest-canopy":{id:"forest-canopy",name:"Forest Canopy",description:"Natural earth tones with organic, calming green hues",colors:{primary:"#059669",secondary:"#78716c",accent:"#84cc16",background:"#f0fdf4",darkMode:{background:"#0a1410",secondary:"#a8a29e",primary:"#10b981"}},typography:{baseFontSize:16,fontScale:1.414,fontFamilyHeadings:"'Merriweather Sans', 'Arial', sans-serif",fontFamilyBody:"'Merriweather', 'Georgia', serif"},spatialRhythm:{baseUnit:6,scaleRatio:1.3},shape:{radiusSize:a.RadiusSizes.medium,borderWidth:a.BorderWidths.thin}},"ruby-elegance":{id:"ruby-elegance",name:"Ruby Elegance",description:"Sophisticated palette with rich ruby reds and warm accents",colors:{primary:"#dc2626",secondary:"#9ca3af",accent:"#be123c",background:"#fef2f2",darkMode:{background:"#1b0808",secondary:"#d1d5db",primary:"#ef4444"}},typography:{baseFontSize:17,fontScale:1.5,fontFamilyHeadings:"'Playfair Display', 'Georgia', serif",fontFamilyBody:"'Crimson Text', 'Garamond', serif",fontWeightNormal:400,fontWeightSemibold:600},spatialRhythm:{baseUnit:4,scaleRatio:1.333},shape:{radiusSize:a.RadiusSizes.small,borderWidth:a.BorderWidths.thin}},"desert-dawn":{id:"desert-dawn",name:"Desert Dawn",description:"Sun-baked neutrals with grounded terracotta and cool oasis accents",colors:{primary:"#b45309",secondary:"#a8a29e",accent:"#0ea5a8",background:"#fcf6ef",darkMode:{background:"#12100e",secondary:"#d1d5db",primary:"#f59e0b"}},typography:{baseFontSize:16,fontScale:1.414,fontFamilyHeadings:"'Source Sans Pro', system-ui, -apple-system, sans-serif",fontFamilyBody:"'Source Serif Pro', Georgia, serif"},spatialRhythm:{baseUnit:6,scaleRatio:1.3},shape:{radiusSize:a.RadiusSizes.medium,borderWidth:a.BorderWidths.medium}},"contrast-pro":{id:"contrast-pro",name:"Contrast Pro",description:"Accessibility-first, high-contrast UI with assertive clarity",colors:{primary:"#1f2937",secondary:"#111827",accent:"#eab308",background:"#ffffff",darkMode:{background:"#0b0f14",secondary:"#9ca3af",primary:"#9ca3af"}},typography:{baseFontSize:17,fontScale:1.2,fontFamilyHeadings:"system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif",fontFamilyBody:"system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif",fontWeightBold:700},spatialRhythm:{baseUnit:3,scaleRatio:1.2},shape:{radiusSize:a.RadiusSizes.small,borderWidth:a.BorderWidths.thick},behavior:{transitionSpeed:a.TransitionSpeeds.fast,focusRingWidth:4}},"pastel-play":{id:"pastel-play",name:"Pastel Play",description:"Playful pastels with soft surfaces and friendly rounded shapes",colors:{primary:"#db2777",secondary:"#a78bfa",accent:"#34d399",background:"#fff7fa",darkMode:{background:"#1a1016",secondary:"#c4b5fd",primary:"#ec4899"}},typography:{baseFontSize:16,fontScale:1.333,fontFamilyHeadings:"'Nunito', system-ui, -apple-system, sans-serif",fontFamilyBody:"'Nunito', system-ui, -apple-system, sans-serif",lineHeightRelaxed:a.LineHeights.relaxed},spatialRhythm:{baseUnit:6,scaleRatio:1.4},shape:{radiusSize:a.RadiusSizes.xxlarge,borderWidth:a.BorderWidths.thin},behavior:{transitionSpeed:a.TransitionSpeeds.slow,animationEasing:a.AnimationEasings["ease-out"]}},"brutalist-tech":{id:"brutalist-tech",name:"Brutalist Tech",description:"Stark grayscale with engineered accents and unapologetically bold structure",colors:{primary:"#111111",secondary:"#4b5563",accent:"#06b6d4",background:"#f8fafc",darkMode:{background:"#0b0b0b",secondary:"#9ca3af",primary:"#06b6d4"}},typography:{baseFontSize:15,fontScale:1.25,fontFamilyHeadings:"'JetBrains Mono', ui-monospace, Menlo, Consolas, monospace",fontFamilyBody:"'Inter', system-ui, -apple-system, sans-serif",letterSpacingTight:-.02},spatialRhythm:{baseUnit:4,scaleRatio:1.25},shape:{radiusSize:a.RadiusSizes.none,borderWidth:a.BorderWidths.thick},behavior:{transitionSpeed:a.TransitionSpeeds.instant}},"zen-garden":{id:"zen-garden",name:"Zen Garden",description:"Soft botanicals with contemplative spacing and balanced motion",colors:{primary:"#3f6212",secondary:"#6b7280",accent:"#7c3aed",background:"#f7fbef",darkMode:{background:"#0d130a",secondary:"#a3a3a3",primary:"#84cc16"}},typography:{baseFontSize:17,fontScale:1.414,fontFamilyHeadings:"'Merriweather', Georgia, serif",fontFamilyBody:"'Noto Sans', system-ui, -apple-system, sans-serif"},spatialRhythm:{baseUnit:6,scaleRatio:1.35},shape:{radiusSize:a.RadiusSizes.large,borderWidth:a.BorderWidths.medium},behavior:{transitionSpeed:a.TransitionSpeeds.normal,animationEasing:a.AnimationEasings.ease}},"fitness-pro":{id:"fitness-pro",name:"Fitness Pro",tags:["app","featured"],description:"Health and fitness tracking aesthetic with data-driven dark surfaces and vibrant accent rings",options:{liquidGlassEffects:!0,backgroundMesh:2},colors:{primary:"#e91e63",secondary:"#78909c",accent:"#ab47bc",background:"#fafafa",darkMode:{background:"#1a1d21",secondary:"#78909c",primary:"#0a4ca4"}},typography:{baseFontSize:15,fontScale:1.25,fontFamilyHeadings:"'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif",fontFamilyBody:"'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif",fontWeightNormal:400,fontWeightMedium:500,fontWeightSemibold:600,fontWeightBold:700,lineHeightNormal:a.LineHeights.tight},spatialRhythm:{baseUnit:4,scaleRatio:1.25,containerPadding:1.25,sectionSpacing:2.5},shape:{radiusSize:a.RadiusSizes.large,borderWidth:a.BorderWidths.thin},layers:{shadowDepth:"medium",blurMedium:12},behavior:{transitionSpeed:a.TransitionSpeeds.fast,animationEasing:a.AnimationEasings["ease-out"],focusRingWidth:2}},"travel-market":{id:"travel-market",name:"Travel Market",description:"Hospitality marketplace design with clean cards, subtle shadows, and trust-building neutrals",options:{liquidGlassEffects:!0,backgroundMesh:3},colors:{primary:"#d93251",secondary:"#717171",accent:"#144990",background:"#ffffff",darkMode:{background:"#222222",secondary:"#b0b0b0",primary:"#ff5a7a"}},typography:{baseFontSize:16,fontScale:1.2,fontFamilyHeadings:"'Circular', system-ui, -apple-system, 'Segoe UI', sans-serif",fontFamilyBody:"'Circular', system-ui, -apple-system, 'Segoe UI', sans-serif",fontWeightNormal:400,fontWeightMedium:500,fontWeightSemibold:600,fontWeightBold:700,lineHeightRelaxed:a.LineHeights.relaxed},spatialRhythm:{baseUnit:4,scaleRatio:1.25,containerMaxWidth:1440,containerPadding:1.5,sectionSpacing:3},shape:{radiusSize:a.RadiusSizes.medium,borderWidth:a.BorderWidths.thin},layers:{shadowDepth:"light",blurLight:8},behavior:{transitionSpeed:a.TransitionSpeeds.normal,animationEasing:a.AnimationEasings["ease-in-out"],hoverOpacity:.9}},"mobility-app":{id:"mobility-app",name:"Mobility App",tags:["app","featured"],description:"On-demand service platform with bold typography, map-ready colors, and action-driven UI",options:{liquidGlassEffects:!0,backgroundMesh:0},colors:{primary:"#000000",secondary:"#545454",accent:"#06c167",background:"#f6f6f6",darkMode:{background:"#0f0f0f",secondary:"#8a8a8a",primary:"#06c167"}},typography:{baseFontSize:16,fontScale:1.3,fontFamilyHeadings:"'UberMove', system-ui, -apple-system, 'Segoe UI', sans-serif",fontFamilyBody:"'UberMove', system-ui, -apple-system, 'Segoe UI', sans-serif",fontWeightNormal:400,fontWeightMedium:500,fontWeightSemibold:600,fontWeightBold:700},spatialRhythm:{baseUnit:4,scaleRatio:1.25,buttonPadding:1.25,inputPadding:1},shape:{radiusSize:a.RadiusSizes.small,borderWidth:a.BorderWidths.medium},behavior:{transitionSpeed:a.TransitionSpeeds.fast,animationEasing:a.AnimationEasings["ease-out"],focusRingWidth:3},a11y:{minTouchTarget:a.TouchTargetSizes.comfortable,focusStyle:a.FocusStyles.ring}},"fintech-secure":{id:"fintech-secure",name:"Fintech Secure",description:"Financial services app UI with trust-building blues, precise spacing, and security-first design",options:{liquidGlassEffects:!1,backgroundMesh:0},colors:{primary:"#0a2540",secondary:"#425466",accent:"#00d4ff",background:"#f7fafc",darkMode:{background:"#0a1929",secondary:"#8796a5",primary:"#00d4ff"}},typography:{baseFontSize:16,fontScale:1.25,fontFamilyHeadings:"'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif",fontFamilyBody:"'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif",fontFamilyMono:"'JetBrains Mono', ui-monospace, 'Cascadia Code', monospace",fontWeightNormal:400,fontWeightMedium:500,fontWeightSemibold:600,fontWeightBold:700},spatialRhythm:{baseUnit:4,scaleRatio:1.25,containerMaxWidth:1280,sectionSpacing:2.5},shape:{radiusSize:a.RadiusSizes.medium,borderWidth:a.BorderWidths.thin},layers:{shadowDepth:"light",blurLight:6},behavior:{transitionSpeed:a.TransitionSpeeds.fast,animationEasing:a.AnimationEasings["ease-in-out"],focusRingWidth:3,focusRingOpacity:.4},a11y:{minTouchTarget:a.TouchTargetSizes.standard,focusStyle:a.FocusStyles.ring}},"social-feed":{id:"social-feed",name:"Social Feed",tags:["app","featured"],description:"Content-first social platform with minimal chrome, bold actions, and vibrant media presentation",options:{liquidGlassEffects:!0,backgroundMesh:4},colors:{primary:"#1877f2",secondary:"#65676b",accent:"#fe2c55",background:"#ffffff",darkMode:{background:"#18191a",secondary:"#b0b3b8",primary:"#2d88ff"}},typography:{baseFontSize:15,fontScale:1.2,fontFamilyHeadings:"system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif",fontFamilyBody:"system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif",fontWeightNormal:400,fontWeightMedium:500,fontWeightSemibold:600,fontWeightBold:700,lineHeightNormal:a.LineHeights.relaxed},spatialRhythm:{baseUnit:4,scaleRatio:1.25,containerMaxWidth:680,sectionSpacing:1.5},shape:{radiusSize:a.RadiusSizes.medium,borderWidth:a.BorderWidths.thin},behavior:{transitionSpeed:a.TransitionSpeeds.fast,animationEasing:a.AnimationEasings["ease-out"],hoverOpacity:.85}},"enterprise-dash":{id:"enterprise-dash",tags:["app","featured"],name:"Enterprise Dashboard",description:"Data-dense business intelligence app interface with organized hierarchy and professional polish",options:{liquidGlassEffects:!1},colors:{primary:"#0066cc",secondary:"#5f6368",accent:"#1a73e8",background:"#ffffff",success:"#34a853",warning:"#fbbc04",danger:"#ea4335",darkMode:{background:"#202124",secondary:"#9aa0a6",primary:"#8ab4f8"}},typography:{baseFontSize:14,fontScale:1.2,fontFamilyHeadings:"'Roboto', system-ui, -apple-system, 'Segoe UI', sans-serif",fontFamilyBody:"'Roboto', system-ui, -apple-system, 'Segoe UI', sans-serif",fontFamilyMono:"'Roboto Mono', ui-monospace, Consolas, monospace",fontWeightNormal:400,fontWeightMedium:500,fontWeightSemibold:600,fontWeightBold:700,lineHeightNormal:a.LineHeights.tight},spatialRhythm:{baseUnit:4,scaleRatio:1.2,containerMaxWidth:1600,containerPadding:1.5,sectionSpacing:2},shape:{radiusSize:a.RadiusSizes.small,borderWidth:a.BorderWidths.thin},layers:{shadowDepth:"light",blurLight:4},behavior:{transitionSpeed:a.TransitionSpeeds.fast,animationEasing:a.AnimationEasings["ease-in-out"],focusRingWidth:2},layout:{densityCompact:.85,gridColumns:12}}};ct.default={id:"default",name:"Default",tags:["app","featured"],description:"Fresh and modern design system with balanced aesthetics and usability",options:{liquidGlassEffects:!0,backgroundMesh:4},form:{options:{widgets:{booleans:"toggle",numbers:"input",selects:"standard"},layouts:{fieldsets:"default",arrays:"default"},enhancements:{icons:!0,datalists:!0,rangeOutput:!0},validation:{showErrors:!0,validateOnChange:!1}}},colors:{primary:"#0e7490",secondary:"#a99b95",accent:"#e54271",background:"#e7e6de",darkMode:{background:"#16171a",secondary:"#8b9199",primary:"#06b6d4"},success:null,warning:"#B38600",danger:null,info:null,gradientStops:3,elevationOpacity:.05},typography:{baseFontSize:16,fontScale:1.2,fontFamilyHeadings:'system-ui, -apple-system, "Segoe UI", Roboto, sans-serif',fontFamilyBody:'system-ui, -apple-system, "Segoe UI", Roboto, sans-serif',fontFamilyMono:'ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, monospace',fontWeightLight:a.FontWeights.light,fontWeightNormal:a.FontWeights.normal,fontWeightMedium:a.FontWeights.medium,fontWeightSemibold:a.FontWeights.semibold,fontWeightBold:a.FontWeights.bold,lineHeightTight:a.LineHeights.tight,lineHeightNormal:a.LineHeights.normal,lineHeightRelaxed:a.LineHeights.relaxed,letterSpacingTight:-.025,letterSpacingNormal:0,letterSpacingWide:.025},spatialRhythm:{baseUnit:4,scaleRatio:1.25,maxSpacingSteps:32,containerMaxWidth:1200,containerPadding:1,inputPadding:.75,buttonPadding:1,sectionSpacing:2},layers:{shadowDepth:"medium",blurLight:4,blurMedium:8,blurHeavy:16,zIndexBase:0,zIndexDropdown:1e3,zIndexSticky:1020,zIndexFixed:1030,zIndexModal:1040,zIndexPopover:1050,zIndexTooltip:1060,zIndexNotification:1070},shape:{radiusSize:a.RadiusSizes.large,borderWidth:a.BorderWidths.medium,customRadius:null},behavior:{transitionSpeed:a.TransitionSpeeds.normal,animationEasing:a.AnimationEasings["ease-out"],customTransitionSpeed:null,customEasing:null,focusRingWidth:3,focusRingOpacity:.3,hoverOpacity:.8},layout:{gridColumns:12,gridGutter:1,baseShadowOpacity:.1,darkMode:{baseShadowOpacity:.25},breakpoints:{sm:640,md:768,lg:1024,xl:1280},densityCompact:.8,densityNormal:1,densityComfortable:1.2,buttonMinHeight:a.TouchTargetSizes.standard,inputMinHeight:40,utilities:{grid:!0,flex:!0,spacing:!0,container:!0},gridSystem:{columns:[1,2,3,4,6],autoFitBreakpoints:{sm:"150px",md:"250px",lg:"350px",xl:"450px"},enableGapUtilities:!0},containerMaxWidth:"1400px",containerPadding:"var(--spacing-6)"},advanced:{linkStyle:a.LinkStyles.inline,colorDerivation:"hsl"},a11y:{minTouchTarget:a.TouchTargetSizes.standard,prefersReducedMotion:!0,focusStyle:a.FocusStyles.ring},icons:{set:"phosphor",weight:"regular",defaultSize:24,externalPath:"/assets/img/icons/",sizes:a.IconSizes,include:{navigation:["arrow-left","arrow-right","arrow-up","arrow-down","arrow-counter-clockwise","caret-left","caret-right","caret-down","caret-up","x","list","list-dashes","dots-three-vertical","dots-three","house","gear","magnifying-glass","funnel","tabs","sidebar"],actions:["plus","minus","check","trash","pencil","floppy-disk","copy","download","upload","share","link","eye","eye-slash","heart","star","bookmark","note-pencil","cursor-click","clipboard","magic-wand","sparkle"],communication:["envelope","bell","bell-ringing","bell-simple","chat-circle","phone","paper-plane-tilt","user","users","user-gear","at"],content:["image","file","file-text","file-css","file-js","folder","folder-open","book-open","camera","video-camera","play","pause","microphone","brackets-curly","code","folder-simple","grid-four","briefcase","chart-line","chart-bar","database","map-pin"],status:["info","warning","check-circle","x-circle","question","shield","shield-check","shield-warning","lock","lock-open","fingerprint","circle-notch"],time:["calendar","clock","timer","hourglass"],commerce:["shopping-cart","credit-card","currency-dollar","tag","receipt","storefront"],formatting:["text-align-left","text-align-center","text-align-right","text-b","text-italic","text-underline","list-bullets","list-numbers","text-aa"],system:["cloud","cloud-arrow-up","cloud-arrow-down","desktop","device-mobile","globe","wifi-high","battery-charging","sun","moon","moon-stars","palette","rocket","feather","square","circle","squares-four","lightning","wrench"]},spritePath:"public/assets/pds/icons/pds-icons.svg"},gap:4,debug:!1};var dt=/^[a-z][a-z0-9+\-.]*:\/\//i,H=(()=>{try{return import.meta.url}catch{return}})(),Q=e=>typeof e=="string"&&e.length&&!e.endsWith("/")?`${e}/`:e;function Z(e,t={}){if(!e||dt.test(e))return e;let{preferModule:n=!0}=t,r=()=>{if(!H)return null;try{return new URL(e,H).href}catch{return null}},o=()=>{if(typeof window>"u"||!window.location?.origin)return null;try{return new URL(e,window.location.origin).href}catch{return null}};return(n?r()||o():o()||r())||e}var ze=(()=>{if(H)try{let e=new URL(H);if(/\/public\/assets\/js\//.test(e.pathname))return new URL("../pds/",H).href}catch{return}})(),Ue=!1;function Fe(e){Ue||typeof document>"u"||(Ue=!0,e.addEventListener("pds:ready",t=>{let n=t.detail?.mode;n&&document.documentElement.classList.add(`pds-${n}`,"pds-ready")}))}function pe(e={},t={}){if(!t||typeof t!="object")return e;let n=Array.isArray(e)?[...e]:{...e};for(let[r,o]of Object.entries(t))o&&typeof o=="object"&&!Array.isArray(o)?n[r]=pe(n[r]&&typeof n[r]=="object"?n[r]:{},o):n[r]=o;return n}function ue(e=""){return String(e).toLowerCase().replace(/&/g," and ").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}function D(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=>D(n)).filter(n=>n!==void 0);let t={};for(let n in e)if(e.hasOwnProperty(n)){let r=e[n];if(typeof r!="function"){let o=D(r);o!==void 0&&(t[n]=o)}}return t}function Pe(e={},t={},{presets:n,defaultLog:r}){let o=e&&typeof e.log=="function"?e.log:r,s=typeof e=="object"&&("colors"in e||"typography"in e||"spatialRhythm"in e||"shape"in e||"behavior"in e||"layout"in e||"advanced"in e||"a11y"in e||"components"in e||"icons"in e),i=e&&e.enhancers;i&&!Array.isArray(i)&&(i=Object.values(i));let p=i??t.enhancers??[],l=e&&e.preset,d=e&&e.design,u=e&&e.icons&&typeof e.icons=="object"?e.icons:null,c="preset"in(e||{})||"design"in(e||{})||"enhancers"in(e||{});e&&typeof e=="object"&&De(e,{log:o,context:"PDS.start"});let y,b=null;if(c){d&&typeof d=="object"&&le(d,{log:o,context:"PDS.start"});let x=String(l||"default").toLowerCase(),S=n?.[x]||Object.values(n||{}).find(f=>ue(f.name)===x||String(f.name||"").toLowerCase()===x);if(!S)throw new Error(`PDS preset not found: "${l||"default"}"`);b={id:S.id||ue(S.name),name:S.name||S.id||String(x)};let g=structuredClone(S);if(d&&typeof d=="object"||u){let f=d?D(d):{},m=u?D(u):null,A=m?pe(f,{icons:m}):f;g=pe(g,structuredClone(A))}let{mode:k,autoDefine:W,applyGlobalStyles:E,manageTheme:C,themeStorageKey:R,preloadStyles:$,criticalLayers:z,managerURL:j,manager:L,preset:T,design:_,enhancers:v,log:U,...h}=e;y={...h,design:g,preset:b.name,log:U||r}}else if(s){le(e,{log:o,context:"PDS.start"});let{log:x,...S}=e;y={design:structuredClone(S),log:x||r}}else{let x=n?.default||Object.values(n||{}).find(S=>ue(S.name)==="default");if(!x)throw new Error("PDS default preset not available");b={id:x.id||"default",name:x.name||"Default"},y={design:structuredClone(x),preset:b.name,log:r}}return{generatorConfig:y,enhancers:p,presetInfo:b}}function $e({manageTheme:e,themeStorageKey:t,applyResolvedTheme:n,setupSystemListenerIfNeeded:r}){let o="light",s=null;if(e&&typeof window<"u"){try{s=localStorage.getItem(t)||null}catch{s=null}try{n?.(s),r?.(s)}catch{}s?s==="system"?o=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":o=s:o=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}return{resolvedTheme:o,storedTheme:s}}function he(e,{resolvePublicAssetURL:t}){let n=!!(e?.public?.root||e?.static?.root),r=t(e);return!n&&ze&&(r=ze),Q(Z(r))}async function _e(e,{baseEnhancers:t=[]}={}){let{autoDefineBaseURL:n="/auto-define/",autoDefinePreload:r=[],autoDefineMapper:o=null,enhancers:s=[],autoDefineOverrides:i=null,autoDefinePreferModule:p=!0}=e,l=(()=>{let u=new Map;return(t||[]).forEach(c=>u.set(c.selector,c)),(s||[]).forEach(c=>u.set(c.selector,c)),Array.from(u.values())})(),d=null;if(typeof window<"u"&&typeof document<"u"){let u=null;try{let g=await Promise.resolve().then(()=>(We(),Ie));u=g?.AutoDefiner||g?.default?.AutoDefiner||g?.default||null}catch(g){console.warn("AutoDefiner not available:",g?.message||g)}let c=g=>{switch(g){case"pds-tabpanel":return"pds-tabstrip.js";default:return`${g}.js`}},{mapper:y,...b}=i&&typeof i=="object"?i:{},S={baseURL:n&&Q(Z(n,{preferModule:p})),predefine:r,scanExisting:!0,observeShadows:!0,patchAttachShadow:!0,debounceMs:16,enhancers:l,onError:(g,k)=>{if(typeof g=="string"&&g.startsWith("pds-")){let E=["pds-form","pds-drawer"].includes(g),C=k?.message?.includes("#pds/lit")||k?.message?.includes("Failed to resolve module specifier");E&&C?console.error(`\u274C PDS component <${g}> requires Lit but #pds/lit is not in import map.
|
|
32
|
-
See: https://github.com/Pure-Web-Foundation/pure-ds/blob/main/readme.md#lit-components-not-working`):console.warn(`\u26A0\uFE0F PDS component <${
|
|
31
|
+
`;let u=o.querySelector("#msg-container");se(u,e)}o.addEventListener("click",u=>{u.target.closest('button[value="cancel"]')&&(o.close(),r(!1))});let i=()=>{let u=o.querySelector("form");u?u.addEventListener("submit",p=>{p.preventDefault();let a;t.useForm&&p.submitter.value==="ok"?(console.log("Found form:",u),console.log("Form elements:",u?Array.from(u.elements):"no form"),a=new FormData(u),console.log("FormData entries:",Array.from(a.entries()))):a=p.submitter.value==="ok",o.close(),r(a)}):requestAnimationFrame(i)};i(),o.addEventListener("close",()=>{setTimeout(()=>o.remove(),200)}),document.body.appendChild(o),typeof t.rendered=="function"&&t.rendered(o),o.showModal()})}async function Ke(){let e=document.querySelector("pds-toaster");return e||(e=document.createElement("pds-toaster"),document.body.appendChild(e),await customElements.whenDefined("pds-toaster")),e}async function M(e,t={}){return(await Ke()).toast(e,t)}M.success=async function(e,t={}){return M(e,{...t,type:"success"})};M.error=async function(e,t={}){return M(e,{...t,type:"error"})};M.warning=async function(e,t={}){return M(e,{...t,type:"warning"})};M.info=async function(e,t={}){return M(e,{...t,type:"information"})};var Qe=[{selector:".accordion"},{selector:"nav[data-dropdown]"},{selector:"label[data-toggle]"},{selector:'input[type="range"]'},{selector:"form[data-required]"},{selector:"fieldset[role=group][data-open]"},{selector:"[data-clip]"},{selector:"button, a[class*='btn-']"}];function Ze(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 Je(e){if(e.dataset.enhancedDropdown)return;e.dataset.enhancedDropdown="true";let t=e.lastElementChild;if(!t)return;let n=e.querySelector("[data-dropdown-toggle]")||e.querySelector("button");n&&!n.hasAttribute("type")&&n.setAttribute("type","button"),t.id||(t.id=`dropdown-${Math.random().toString(36).slice(2,9)}`),t.tagName?.toLowerCase()==="menu"&&!t.hasAttribute("role")&&t.setAttribute("role","menu"),t.hasAttribute("aria-hidden")||t.setAttribute("aria-hidden","true"),n&&(n.setAttribute("aria-haspopup","true"),n.setAttribute("aria-controls",t.id),n.setAttribute("aria-expanded","false"));let o=()=>{let a=(e.getAttribute("data-direction")||e.getAttribute("data-dropdown-direction")||e.getAttribute("data-mode")||"auto").toLowerCase();if(a==="up"||a==="down")return a;let d=e.getBoundingClientRect(),l=t?.getBoundingClientRect?.()||{height:0},h=Math.max(t?.offsetHeight||0,t?.scrollHeight||0,l.height||0,200),m=Math.max(0,window.innerHeight-d.bottom),S=Math.max(0,d.top);return m>=h?"down":S>=h||S>m?"up":"down"},s=()=>{let a=(e.getAttribute("data-align")||e.getAttribute("data-dropdown-align")||"auto").toLowerCase();if(a==="left"||a==="right"||a==="start"||a==="end")return a==="start"?"left":a==="end"?"right":a;let d=e.getBoundingClientRect(),l=t?.getBoundingClientRect?.()||{width:0},h=Math.max(t?.offsetWidth||0,t?.scrollWidth||0,l.width||0,240),m=Math.max(0,window.innerWidth-d.left),S=Math.max(0,d.right);return m>=h?"left":S>=h||S>m?"right":"left"},i=()=>{e.dataset.dropdownDirection=o(),e.dataset.dropdownAlign=s(),t.setAttribute("aria-hidden","false"),n?.setAttribute("aria-expanded","true")},u=()=>{t.setAttribute("aria-hidden","true"),n?.setAttribute("aria-expanded","false")},p=()=>{t.getAttribute("aria-hidden")==="false"?u():i()};n?.addEventListener("click",a=>{a.preventDefault(),a.stopPropagation(),p()}),document.addEventListener("click",a=>{e.contains(a.target)||u()}),e.addEventListener("keydown",a=>{a.key==="Escape"&&(u(),n?.focus())}),e.addEventListener("focusout",a=>{(!a.relatedTarget||!e.contains(a.relatedTarget))&&u()})}function Ye(e){if(e.dataset.enhancedToggle)return;e.dataset.enhancedToggle="true";let t=e.querySelector('input[type="checkbox"]');if(!t)return;e.hasAttribute("tabindex")||e.setAttribute("tabindex","0"),e.setAttribute("role","switch"),e.setAttribute("aria-checked",t.checked?"true":"false");let n=document.createElement("span");n.className="toggle-switch",n.setAttribute("role","presentation"),n.setAttribute("aria-hidden","true");let r=document.createElement("span");r.className="toggle-knob",n.appendChild(r),e.insertBefore(n,t.nextSibling);let o=()=>{e.setAttribute("aria-checked",t.checked?"true":"false")},s=()=>{t.disabled||(t.checked=!t.checked,o(),t.dispatchEvent(new Event("change",{bubbles:!0})))};e.addEventListener("click",i=>{i.preventDefault(),s()}),e.addEventListener("keydown",i=>{(i.key===" "||i.key==="Enter")&&(i.preventDefault(),s())}),t.addEventListener("change",o)}function Xe(e){if(e.dataset.enhancedRange)return;let t=e.closest("label"),n=t?.classList.contains("range-output"),r=e.id||`range-${Math.random().toString(36).substring(2,11)}`,o=`${r}-output`;if(e.id=r,n){let s=t.querySelector("span");if(s&&!s.classList.contains("range-output-wrapper")){let i=document.createElement("span");i.className="range-output-wrapper",i.style.display="flex",i.style.justifyContent="space-between",i.style.alignItems="center";let u=document.createElement("span");u.textContent=s.textContent,i.appendChild(u);let p=document.createElement("output");p.id=o,p.setAttribute("for",r),p.style.color="var(--surface-text-secondary, var(--color-text-secondary))",p.style.fontSize="0.875rem",p.textContent=e.value,i.appendChild(p),s.textContent="",s.appendChild(i);let a=()=>{p.textContent=e.value};e.addEventListener("input",a)}}else{let s=e.closest(".range-container");s||(s=document.createElement("div"),s.className="range-container",e.parentNode?.insertBefore(s,e),s.appendChild(e)),s.style.position="relative";let i=document.createElement("output");i.id=o,i.setAttribute("for",r),i.className="range-bubble",i.setAttribute("aria-live","polite"),s.appendChild(i);let u=()=>{let d=parseFloat(e.min)||0,l=parseFloat(e.max)||100,h=parseFloat(e.value),m=(h-d)/(l-d);i.style.left=`calc(${m*100}% )`,i.textContent=String(h)},p=()=>i.classList.add("visible"),a=()=>i.classList.remove("visible");e.addEventListener("input",u),e.addEventListener("pointerdown",p),e.addEventListener("pointerup",a),e.addEventListener("pointerleave",a),e.addEventListener("focus",p),e.addEventListener("blur",a),u()}e.dataset.enhancedRange="1"}function et(e){if(e.dataset.enhancedRequired)return;e.dataset.enhancedRequired="true";let t=n=>{let r;if(n.closest("[role$=group]")?r=n.closest("[role$=group]").querySelector("legend"):r=n.closest("label"),!r||r.querySelector(".required-asterisk"))return;let o=document.createElement("span");o.classList.add("required-asterisk"),o.textContent="*",o.style.marginLeft="4px";let s=r.querySelector("span, [data-label]");if(s)s.appendChild(o);else{let u=r.querySelector("input, select, textarea");u?r.insertBefore(o,u):r.appendChild(o)}let i=n.closest("form");if(i&&!i.querySelector(".required-legend")){let u=document.createElement("small");u.classList.add("required-legend"),u.textContent="* Required fields",i.insertBefore(u,i.querySelector(".form-actions")||i.lastElementChild)}};e.querySelectorAll("[required]").forEach(n=>{t(n)})}function tt(e){if(e.dataset.enhancedOpenGroup)return;e.dataset.enhancedOpenGroup="true",e.classList.add("flex","flex-wrap","buttons");let t=document.createElement("input");t.type="text",t.placeholder="Add item...",t.classList.add("input-text","input-sm"),t.style.width="auto";let n=e.querySelector('input[type="radio"], input[type="checkbox"]');e.appendChild(t),t.addEventListener("keydown",r=>{if(r.key==="Enter"||r.key==="Tab"){let o=t.value.trim();if(o){r.preventDefault();let s=n.type==="radio"?"radio":"checkbox",i=`open-group-${Math.random().toString(36).substring(2,11)}`,u=document.createElement("label"),p=document.createElement("span");p.setAttribute("data-label",""),p.textContent=o;let a=document.createElement("input");a.type=s,a.name=n.name||e.getAttribute("data-name")||"open-group",a.value=o,a.id=i,u.appendChild(p),u.appendChild(a),e.insertBefore(u,t),t.value=""}}else if(r.key==="Backspace"&&t.value===""){r.preventDefault();let o=e.querySelectorAll("label");o.length>0&&o[o.length-1].remove()}})}function nt(e){if(e.dataset.enhancedClip)return;e.dataset.enhancedClip="true",e.hasAttribute("tabindex")||e.setAttribute("tabindex","0"),e.hasAttribute("role")||e.setAttribute("role","button");let t=()=>{let r=e.getAttribute("data-clip-open")==="true";e.setAttribute("aria-expanded",r?"true":"false")},n=()=>{let r=e.getAttribute("data-clip-open")==="true";e.setAttribute("data-clip-open",r?"false":"true"),t()};e.addEventListener("click",r=>{r.defaultPrevented||n()}),e.addEventListener("keydown",r=>{(r.key===" "||r.key==="Enter")&&(r.preventDefault(),n())}),t()}function rt(e){if(e.dataset.enhancedBtnWorking)return;e.dataset.enhancedBtnWorking="true";let t=null,n=!1;new MutationObserver(o=>{o.forEach(s=>{if(s.attributeName==="class"){let i=e.classList.contains("btn-working"),u=e.querySelector("pds-icon");if(i)if(u)t||(t=u.getAttribute("icon")),u.setAttribute("icon","circle-notch");else{let p=document.createElement("pds-icon");p.setAttribute("icon","circle-notch"),p.setAttribute("size","sm"),e.insertBefore(p,e.firstChild),n=!0}else s.oldValue?.includes("btn-working")&&u&&(n?(u.remove(),n=!1):t&&(u.setAttribute("icon",t),t=null))}})}).observe(e,{attributes:!0,attributeFilter:["class"],attributeOldValue:!0})}var st=new Map([[".accordion",Ze],["nav[data-dropdown]",Je],["label[data-toggle]",Ye],['input[type="range"]',Xe],["form[data-required]",et],["fieldset[role=group][data-open]",tt],["[data-clip]",nt],["button, a[class*='btn-']",rt]]),oe=Qe.map(e=>({...e,run:st.get(e.selector)||(()=>{})}));var Ie="pds",ot=/^([a-z][a-z0-9+\-.]*:)?\/\//i,We=/^[a-z]:/i;function H(e=""){return e.endsWith("/")?e:`${e}/`}function it(e="",t=Ie){let n=e.replace(/\/+$/,"");return new RegExp(`(?:^|/)${t}$`,"i").test(n)?n:`${n}/${t}`}function at(e){return e.replace(/^\.\/+/,"")}function ct(e){return We.test(e)?e.replace(We,"").replace(/^\/+/,""):e}function lt(e){return e.startsWith("public/")?e.substring(7):e}function ie(e,t={}){let n=t.segment||Ie,r=t.defaultRoot||`/assets/${n}/`,o=e?.public&&e.public?.root||e?.static&&e.static?.root||null;if(!o||typeof o!="string")return H(r);let s=o.trim();return s?(s=s.replace(/\\/g,"/"),s=it(s,n),s=H(s),ot.test(s)?s:(s=at(s),s=ct(s),s.startsWith("/")||(s=lt(s),s.startsWith("/")||(s=`/${s}`),s=s.replace(/\/+/g,(i,u)=>u===0?i:"/")),H(s))):H(r)}var $="any",le={type:"object",allowUnknown:!1,properties:{id:{type:"string"},name:{type:"string"},tags:{type:"array",items:{type:"string"}},description:{type:"string"},options:{type:"object",allowUnknown:!0},form:{type:"object",allowUnknown:!0},colors:{type:"object",allowUnknown:!1,properties:{primary:{type:"string",relations:{tokens:["--color-primary-*","--color-primary-fill","--color-primary-text","--background-mesh-*"]}},secondary:{type:"string",relations:{tokens:["--color-secondary-*","--color-gray-*","--background-mesh-*"]}},accent:{type:"string",relations:{tokens:["--color-accent-*","--background-mesh-*"]}},background:{type:"string",relations:{tokens:["--color-surface-*","--color-surface-translucent-*","--surface-*-bg","--surface-*-text","--surface-*-text-secondary","--surface-*-text-muted","--surface-*-icon","--surface-*-icon-subtle","--surface-*-shadow","--surface-*-border"]}},success:{type:["string","null"],relations:{tokens:["--color-success-*"]}},warning:{type:["string","null"],relations:{tokens:["--color-warning-*"]}},danger:{type:["string","null"],relations:{tokens:["--color-danger-*"]}},info:{type:["string","null"],relations:{tokens:["--color-info-*"]}},gradientStops:{type:"number"},elevationOpacity:{type:"number",relations:{tokens:["--surface-*-shadow"]}},darkMode:{type:"object",allowUnknown:!0,properties:{background:{type:"string",relations:{theme:"dark",tokens:["--color-surface-*","--color-surface-translucent-*","--surface-*-bg","--surface-*-text","--surface-*-text-secondary","--surface-*-text-muted","--surface-*-icon","--surface-*-icon-subtle","--surface-*-shadow","--surface-*-border"]}},primary:{type:"string",relations:{theme:"dark",tokens:["--color-primary-*","--color-primary-fill","--color-primary-text"]}},secondary:{type:"string",relations:{theme:"dark",tokens:["--color-secondary-*","--color-gray-*"]}},accent:{type:"string",relations:{theme:"dark",tokens:["--color-accent-*"]}}}}}},typography:{type:"object",allowUnknown:!1,properties:{fontFamilyHeadings:{type:"string",relations:{tokens:["--font-family-headings"]}},fontFamilyBody:{type:"string",relations:{tokens:["--font-family-body"]}},fontFamilyMono:{type:"string",relations:{tokens:["--font-family-mono"]}},baseFontSize:{type:"number",relations:{tokens:["--font-size-*"]}},fontScale:{type:"number",relations:{tokens:["--font-size-*"]}},fontWeightLight:{type:["string","number"],relations:{tokens:["--font-weight-light"]}},fontWeightNormal:{type:["string","number"],relations:{tokens:["--font-weight-normal"]}},fontWeightMedium:{type:["string","number"],relations:{tokens:["--font-weight-medium"]}},fontWeightSemibold:{type:["string","number"],relations:{tokens:["--font-weight-semibold"]}},fontWeightBold:{type:["string","number"],relations:{tokens:["--font-weight-bold"]}},lineHeightTight:{type:["string","number"],relations:{tokens:["--font-line-height-tight"]}},lineHeightNormal:{type:["string","number"],relations:{tokens:["--font-line-height-normal"]}},lineHeightRelaxed:{type:["string","number"],relations:{tokens:["--font-line-height-relaxed"]}},letterSpacingTight:{type:"number"},letterSpacingNormal:{type:"number"},letterSpacingWide:{type:"number"}}},spatialRhythm:{type:"object",allowUnknown:!1,properties:{baseUnit:{type:"number",relations:{tokens:["--spacing-*"]}},scaleRatio:{type:"number"},maxSpacingSteps:{type:"number",relations:{tokens:["--spacing-*"]}},containerMaxWidth:{type:["number","string"]},containerPadding:{type:"number"},inputPadding:{type:"number",relations:{rules:[{selectors:["input","textarea","select"],properties:["padding"]}]}},buttonPadding:{type:"number",relations:{rules:[{selectors:["button",".btn"],properties:["padding"]}]}},sectionSpacing:{type:"number",relations:{rules:[{selectors:["section"],properties:["margin","padding"]}]}}}},shape:{type:"object",allowUnknown:!1,properties:{radiusSize:{type:["string","number"],relations:{tokens:["--radius-*"]}},customRadius:{type:["string","number","null"]},borderWidth:{type:["string","number"],relations:{tokens:["--border-width-*"]}}}},behavior:{type:"object",allowUnknown:!1,properties:{transitionSpeed:{type:["string","number"],relations:{tokens:["--transition-*"]}},animationEasing:{type:"string"},customTransitionSpeed:{type:["number","null"]},customEasing:{type:["string","null"]},focusRingWidth:{type:"number",relations:{rules:[{selectors:[":focus-visible"],properties:["outline-width","box-shadow"]}]}},focusRingOpacity:{type:"number",relations:{rules:[{selectors:[":focus-visible"],properties:["box-shadow","outline-color"]}]}},hoverOpacity:{type:"number"}}},layout:{type:"object",allowUnknown:!1,properties:{maxWidth:{type:["number","string"],relations:{tokens:["--layout-max-width","--layout-max-width-*"]}},maxWidths:{type:"object",allowUnknown:!1,properties:{sm:{type:["number","string"],relations:{tokens:["--layout-max-width-sm"]}},md:{type:["number","string"],relations:{tokens:["--layout-max-width-md"]}},lg:{type:["number","string"],relations:{tokens:["--layout-max-width-lg"]}},xl:{type:["number","string"],relations:{tokens:["--layout-max-width-xl"]}}}},containerPadding:{type:["number","string"],relations:{tokens:["--layout-container-padding"]}},breakpoints:{type:"object",allowUnknown:!1,properties:{sm:{type:"number"},md:{type:"number"},lg:{type:"number"},xl:{type:"number"}}},gridColumns:{type:"number"},gridGutter:{type:"number"},densityCompact:{type:"number"},densityNormal:{type:"number"},densityComfortable:{type:"number"},buttonMinHeight:{type:"number"},inputMinHeight:{type:"number"},baseShadowOpacity:{type:"number",relations:{tokens:["--shadow-*"]}},darkMode:{type:"object",allowUnknown:!0,properties:{baseShadowOpacity:{type:"number",relations:{theme:"dark",tokens:["--shadow-*"]}}}},utilities:{type:"object",allowUnknown:!0},gridSystem:{type:"object",allowUnknown:!0},containerMaxWidth:{type:["number","string"]}}},layers:{type:"object",allowUnknown:!1,properties:{baseShadowOpacity:{type:"number",relations:{tokens:["--shadow-*"]}},shadowBlurMultiplier:{type:"number",relations:{tokens:["--shadow-*"]}},shadowOffsetMultiplier:{type:"number",relations:{tokens:["--shadow-*"]}},shadowDepth:{type:"string"},blurLight:{type:"number"},blurMedium:{type:"number"},blurHeavy:{type:"number"},baseZIndex:{type:"number",relations:{tokens:["--z-*"]}},zIndexStep:{type:"number",relations:{tokens:["--z-*"]}},zIndexBase:{type:"number"},zIndexDropdown:{type:"number"},zIndexSticky:{type:"number"},zIndexFixed:{type:"number"},zIndexModal:{type:"number"},zIndexPopover:{type:"number"},zIndexTooltip:{type:"number"},zIndexNotification:{type:"number"},darkMode:{type:"object",allowUnknown:!0,properties:{baseShadowOpacity:{type:"number",relations:{theme:"dark",tokens:["--shadow-*"]}}}}}},advanced:{type:"object",allowUnknown:!0},a11y:{type:"object",allowUnknown:!0},icons:{type:"object",allowUnknown:!1,properties:{set:{type:"string"},weight:{type:"string"},defaultSize:{type:"number",relations:{tokens:["--icon-size"]}},sizes:{type:"object",allowUnknown:!0},spritePath:{type:"string"},externalPath:{type:"string"},include:{type:"object",allowUnknown:!0}}},components:{type:"object",allowUnknown:!0},gap:{type:"number"},debug:{type:"boolean"}}},dt={type:"object",allowUnknown:!0,properties:{mode:{type:"string"},preset:{type:"string"},design:le,enhancers:{type:["object","array"]},applyGlobalStyles:{type:"boolean"},manageTheme:{type:"boolean"},themeStorageKey:{type:"string"},preloadStyles:{type:"boolean"},criticalLayers:{type:"array",items:{type:"string"}},autoDefine:{type:"object",allowUnknown:!1,properties:{predefine:{type:"array",items:{type:"string"}},mapper:{type:$},enhancers:{type:["object","array"]},scanExisting:{type:"boolean"},observeShadows:{type:"boolean"},patchAttachShadow:{type:"boolean"},debounceMs:{type:"number"},onError:{type:$},baseURL:{type:"string"}}},managerURL:{type:"string"},manager:{type:$},liveEdit:{type:"boolean"},log:{type:$}}};function ae(e){return e===null?"null":Array.isArray(e)?"array":typeof e}function ut(e,t){if(t===$)return!0;let n=ae(e);return Array.isArray(t)?t.includes(n):n===t}function K(e,t,n,r){if(!t)return;let o=t.type||$;if(!ut(e,o)){r.push({path:n,expected:o,actual:ae(e),message:`Expected ${o} but got ${ae(e)}`});return}if(o==="array"&&t.items&&Array.isArray(e)&&e.forEach((s,i)=>{K(s,t.items,`${n}[${i}]`,r)}),o==="object"&&e&&typeof e=="object"){let s=t.properties||{};for(let[i,u]of Object.entries(e)){if(!Object.prototype.hasOwnProperty.call(s,i)){t.allowUnknown||r.push({path:`${n}.${i}`,expected:"known property",actual:"unknown",message:`Unknown property "${i}"`});continue}K(u,s[i],`${n}.${i}`,r)}}}function ce(e,t="",n={}){if(!e||typeof e!="object")return n;if(e.relations&&t&&(n[t]=e.relations),e.type==="object"&&e.properties&&Object.entries(e.properties).forEach(([r,o])=>{let s=t?`${t}.${r}`:r;ce(o,s,n)}),e.type==="array"&&e.items){let r=`${t}[]`;ce(e.items,r,n)}return n}var Ut=ce(le,"");function de(e,{log:t,context:n="PDS config"}={}){if(!e||typeof e!="object")return[];let r=[];return K(e,le,"design",r),r.length&&typeof t=="function"&&r.forEach(o=>{t("warn",`[${n}] ${o.message} at ${o.path}`)}),r}function ze(e,{log:t,context:n="PDS config"}={}){if(!e||typeof e!="object")return[];let r=[];return K(e,dt,"config",r),r.length&&typeof t=="function"&&r.forEach(o=>{t("warn",`[${n}] ${o.message} at ${o.path}`)}),r}var pt={"ocean-breeze":{id:"ocean-breeze",name:"Ocean Breeze",tags:["playful"],description:"Fresh and calming ocean-inspired palette with professional undertones",options:{liquidGlassEffects:!0,backgroundMesh:3},colors:{primary:"#0891b2",secondary:"#64748b",accent:"#06b6d4",background:"#f0f9ff",darkMode:{background:"#0c1821",secondary:"#94a3b8",primary:"#0891b2"}},typography:{baseFontSize:17,fontScale:1.5,fontFamilyHeadings:'system-ui, -apple-system, "Segoe UI", Roboto, sans-serif',fontFamilyBody:'system-ui, -apple-system, "Segoe UI", Roboto, sans-serif'},spatialRhythm:{baseUnit:6,scaleRatio:1.2},shape:{radiusSize:c.RadiusSizes.xxlarge}},"midnight-steel":{id:"midnight-steel",name:"Midnight Steel",description:"Bold industrial aesthetic with sharp contrasts and urban edge",colors:{primary:"#3b82f6",secondary:"#52525b",accent:"#f59e0b",background:"#fafaf9",darkMode:{background:"#18181b",secondary:"#71717a",primary:"#3b82f6"}},typography:{baseFontSize:16,fontScale:1.333,fontFamilyHeadings:"'IBM Plex Sans', system-ui, -apple-system, sans-serif",fontFamilyBody:"'Inter', system-ui, -apple-system, sans-serif",fontWeightSemibold:600},spatialRhythm:{baseUnit:4,scaleRatio:1.25},shape:{radiusSize:c.RadiusSizes.small,borderWidth:c.BorderWidths.thin}},"neural-glow":{id:"neural-glow",name:"Neural Glow",description:"AI-inspired with vibrant purple-blue gradients and futuristic vibes",colors:{primary:"#8b5cf6",secondary:"#6366f1",accent:"#ec4899",background:"#faf5ff",darkMode:{background:"#0f0a1a",secondary:"#818cf8",primary:"#8b5cf6"}},typography:{baseFontSize:16,fontScale:1.618,fontFamilyHeadings:"'Space Grotesk', system-ui, sans-serif",fontFamilyBody:"'Space Grotesk', system-ui, sans-serif"},spatialRhythm:{baseUnit:4,scaleRatio:1.5},shape:{radiusSize:c.RadiusSizes.xlarge,borderWidth:c.BorderWidths.medium},behavior:{transitionSpeed:c.TransitionSpeeds.fast}},"paper-and-ink":{id:"paper-and-ink",name:"Paper & Ink",tags:["app","featured"],themes:["light"],description:"Ultra-minimal design with focus on typography and whitespace",colors:{primary:"#171717",secondary:"#737373",accent:"#525252",background:"#ffffff",darkMode:{background:"#0a0a0a",secondary:"#a3a3a3",primary:"#737373"}},typography:{baseFontSize:18,fontScale:1.333,fontFamilyHeadings:"'Helvetica Neue', 'Arial', sans-serif",fontFamilyBody:"'Georgia', 'Times New Roman', serif",fontWeightNormal:400,fontWeightBold:700},spatialRhythm:{baseUnit:4,scaleRatio:1.2},shape:{radiusSize:c.RadiusSizes.none,borderWidth:c.BorderWidths.thin}},"sunset-paradise":{id:"sunset-paradise",name:"Sunset Paradise",description:"Warm tropical colors evoking golden hour by the beach",options:{liquidGlassEffects:!0,backgroundMesh:2},colors:{primary:"#ea580c",secondary:"#d4a373",accent:"#fb923c",background:"#fffbeb",darkMode:{background:"#1a0f0a",secondary:"#c9a482",primary:"#f97316"}},typography:{baseFontSize:16,fontScale:1.5,fontFamilyHeadings:"'Quicksand', 'Comfortaa', sans-serif",fontFamilyBody:"'Quicksand', 'Comfortaa', sans-serif"},spatialRhythm:{baseUnit:6,scaleRatio:1.5},shape:{radiusSize:c.RadiusSizes.xxlarge,borderWidth:c.BorderWidths.medium}},"retro-wave":{id:"retro-wave",name:"Retro Wave",description:"Nostalgic 80s-inspired palette with neon undertones",colors:{primary:"#c026d3",secondary:"#a78bfa",accent:"#22d3ee",background:"#fef3ff",darkMode:{background:"#1a0a1f",secondary:"#c4b5fd",primary:"#d946ef"}},typography:{baseFontSize:15,fontScale:1.5,fontFamilyHeadings:"'Orbitron', 'Impact', monospace",fontFamilyBody:"'Courier New', 'Courier', monospace",fontWeightBold:700},spatialRhythm:{baseUnit:4,scaleRatio:1.25},shape:{radiusSize:c.RadiusSizes.none,borderWidth:c.BorderWidths.thick},behavior:{transitionSpeed:c.TransitionSpeeds.instant}},"forest-canopy":{id:"forest-canopy",name:"Forest Canopy",description:"Natural earth tones with organic, calming green hues",colors:{primary:"#059669",secondary:"#78716c",accent:"#84cc16",background:"#f0fdf4",darkMode:{background:"#0a1410",secondary:"#a8a29e",primary:"#10b981"}},typography:{baseFontSize:16,fontScale:1.414,fontFamilyHeadings:"'Merriweather Sans', 'Arial', sans-serif",fontFamilyBody:"'Merriweather', 'Georgia', serif"},spatialRhythm:{baseUnit:6,scaleRatio:1.3},shape:{radiusSize:c.RadiusSizes.medium,borderWidth:c.BorderWidths.thin}},"ruby-elegance":{id:"ruby-elegance",name:"Ruby Elegance",description:"Sophisticated palette with rich ruby reds and warm accents",colors:{primary:"#dc2626",secondary:"#9ca3af",accent:"#be123c",background:"#fef2f2",darkMode:{background:"#1b0808",secondary:"#d1d5db",primary:"#ef4444"}},typography:{baseFontSize:17,fontScale:1.5,fontFamilyHeadings:"'Playfair Display', 'Georgia', serif",fontFamilyBody:"'Crimson Text', 'Garamond', serif",fontWeightNormal:400,fontWeightSemibold:600},spatialRhythm:{baseUnit:4,scaleRatio:1.333},shape:{radiusSize:c.RadiusSizes.small,borderWidth:c.BorderWidths.thin}},"desert-dawn":{id:"desert-dawn",name:"Desert Dawn",description:"Sun-baked neutrals with grounded terracotta and cool oasis accents",colors:{primary:"#b45309",secondary:"#a8a29e",accent:"#0ea5a8",background:"#fcf6ef",darkMode:{background:"#12100e",secondary:"#d1d5db",primary:"#f59e0b"}},typography:{baseFontSize:16,fontScale:1.414,fontFamilyHeadings:"'Source Sans Pro', system-ui, -apple-system, sans-serif",fontFamilyBody:"'Source Serif Pro', Georgia, serif"},spatialRhythm:{baseUnit:6,scaleRatio:1.3},shape:{radiusSize:c.RadiusSizes.medium,borderWidth:c.BorderWidths.medium}},"contrast-pro":{id:"contrast-pro",name:"Contrast Pro",description:"Accessibility-first, high-contrast UI with assertive clarity",colors:{primary:"#1f2937",secondary:"#111827",accent:"#eab308",background:"#ffffff",darkMode:{background:"#0b0f14",secondary:"#9ca3af",primary:"#9ca3af"}},typography:{baseFontSize:17,fontScale:1.2,fontFamilyHeadings:"system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif",fontFamilyBody:"system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif",fontWeightBold:700},spatialRhythm:{baseUnit:3,scaleRatio:1.2},shape:{radiusSize:c.RadiusSizes.small,borderWidth:c.BorderWidths.thick},behavior:{transitionSpeed:c.TransitionSpeeds.fast,focusRingWidth:4}},"pastel-play":{id:"pastel-play",name:"Pastel Play",themes:["light"],description:"Playful pastels with soft surfaces and friendly rounded shapes",colors:{primary:"#db2777",secondary:"#a78bfa",accent:"#34d399",background:"#fff7fa",darkMode:{background:"#1a1016",secondary:"#c4b5fd",primary:"#ec4899"}},typography:{baseFontSize:16,fontScale:1.333,fontFamilyHeadings:"'Nunito', system-ui, -apple-system, sans-serif",fontFamilyBody:"'Nunito', system-ui, -apple-system, sans-serif",lineHeightRelaxed:c.LineHeights.relaxed},spatialRhythm:{baseUnit:6,scaleRatio:1.4},shape:{radiusSize:c.RadiusSizes.xxlarge,borderWidth:c.BorderWidths.thin},behavior:{transitionSpeed:c.TransitionSpeeds.slow,animationEasing:c.AnimationEasings["ease-out"]}},"brutalist-tech":{id:"brutalist-tech",name:"Brutalist Tech",description:"Stark grayscale with engineered accents and unapologetically bold structure",colors:{primary:"#111111",secondary:"#4b5563",accent:"#06b6d4",background:"#f8fafc",darkMode:{background:"#0c0c0c",secondary:"#9ca3af",primary:"#06b6d4"}},typography:{baseFontSize:15,fontScale:1.25,fontFamilyHeadings:"'JetBrains Mono', ui-monospace, Menlo, Consolas, monospace",fontFamilyBody:"'Inter', system-ui, -apple-system, sans-serif",letterSpacingTight:-.02},spatialRhythm:{baseUnit:4,scaleRatio:1.25},shape:{radiusSize:c.RadiusSizes.none,borderWidth:c.BorderWidths.thick},behavior:{transitionSpeed:c.TransitionSpeeds.instant}},"zen-garden":{id:"zen-garden",name:"Zen Garden",description:"Soft botanicals with contemplative spacing and balanced motion",colors:{primary:"#3f6212",secondary:"#6b7280",accent:"#7c3aed",background:"#f7fbef",darkMode:{background:"#0d130a",secondary:"#a3a3a3",primary:"#84cc16"}},typography:{baseFontSize:17,fontScale:1.414,fontFamilyHeadings:"'Merriweather', Georgia, serif",fontFamilyBody:"'Noto Sans', system-ui, -apple-system, sans-serif"},spatialRhythm:{baseUnit:6,scaleRatio:1.35},shape:{radiusSize:c.RadiusSizes.large,borderWidth:c.BorderWidths.medium},behavior:{transitionSpeed:c.TransitionSpeeds.normal,animationEasing:c.AnimationEasings.ease}},"fitness-pro":{id:"fitness-pro",name:"Fitness Pro",tags:["app","featured"],description:"Health and fitness tracking aesthetic with data-driven dark surfaces and vibrant accent rings",options:{liquidGlassEffects:!0,backgroundMesh:2},colors:{primary:"#e91e63",secondary:"#78909c",accent:"#ab47bc",background:"#fafafa",darkMode:{background:"#1a1d21",secondary:"#78909c",primary:"#0a4ca4"}},typography:{baseFontSize:15,fontScale:1.25,fontFamilyHeadings:"'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif",fontFamilyBody:"'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif",fontWeightNormal:400,fontWeightMedium:500,fontWeightSemibold:600,fontWeightBold:700,lineHeightNormal:c.LineHeights.tight},spatialRhythm:{baseUnit:4,scaleRatio:1.25,containerPadding:1.25,sectionSpacing:2.5},shape:{radiusSize:c.RadiusSizes.large,borderWidth:c.BorderWidths.thin},layers:{shadowDepth:"medium",blurMedium:12},behavior:{transitionSpeed:c.TransitionSpeeds.fast,animationEasing:c.AnimationEasings["ease-out"],focusRingWidth:2}},"travel-market":{id:"travel-market",name:"Travel Market",description:"Hospitality marketplace design with clean cards, subtle shadows, and trust-building neutrals",options:{liquidGlassEffects:!0,backgroundMesh:3},colors:{primary:"#d93251",secondary:"#717171",accent:"#144990",background:"#ffffff",darkMode:{background:"#222222",secondary:"#b0b0b0",primary:"#ff5a7a"}},typography:{baseFontSize:16,fontScale:1.2,fontFamilyHeadings:"'Circular', system-ui, -apple-system, 'Segoe UI', sans-serif",fontFamilyBody:"'Circular', system-ui, -apple-system, 'Segoe UI', sans-serif",fontWeightNormal:400,fontWeightMedium:500,fontWeightSemibold:600,fontWeightBold:700,lineHeightRelaxed:c.LineHeights.relaxed},spatialRhythm:{baseUnit:4,scaleRatio:1.25,containerMaxWidth:1440,containerPadding:1.5,sectionSpacing:3},shape:{radiusSize:c.RadiusSizes.medium,borderWidth:c.BorderWidths.thin},layers:{shadowDepth:"light",blurLight:8},behavior:{transitionSpeed:c.TransitionSpeeds.normal,animationEasing:c.AnimationEasings["ease-in-out"],hoverOpacity:.9}},"mobility-app":{id:"mobility-app",name:"Mobility App",tags:["app","featured"],description:"On-demand service platform with bold typography, map-ready colors, and action-driven UI",options:{liquidGlassEffects:!0,backgroundMesh:0},colors:{primary:"#000000",secondary:"#545454",accent:"#06c167",background:"#f6f6f6",darkMode:{background:"#0f0f0f",secondary:"#8a8a8a",primary:"#06c167"}},typography:{baseFontSize:16,fontScale:1.3,fontFamilyHeadings:"'UberMove', system-ui, -apple-system, 'Segoe UI', sans-serif",fontFamilyBody:"'UberMove', system-ui, -apple-system, 'Segoe UI', sans-serif",fontWeightNormal:400,fontWeightMedium:500,fontWeightSemibold:600,fontWeightBold:700},spatialRhythm:{baseUnit:4,scaleRatio:1.25,buttonPadding:1.25,inputPadding:1},shape:{radiusSize:c.RadiusSizes.small,borderWidth:c.BorderWidths.medium},behavior:{transitionSpeed:c.TransitionSpeeds.fast,animationEasing:c.AnimationEasings["ease-out"],focusRingWidth:3},a11y:{minTouchTarget:c.TouchTargetSizes.comfortable,focusStyle:c.FocusStyles.ring}},"fintech-secure":{id:"fintech-secure",name:"Fintech Secure",description:"Financial services app UI with trust-building blues, precise spacing, and security-first design",options:{liquidGlassEffects:!1,backgroundMesh:0},colors:{primary:"#0a2540",secondary:"#425466",accent:"#00d4ff",background:"#f7fafc",darkMode:{background:"#0a1929",secondary:"#8796a5",primary:"#00d4ff"}},typography:{baseFontSize:16,fontScale:1.25,fontFamilyHeadings:"'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif",fontFamilyBody:"'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif",fontFamilyMono:"'JetBrains Mono', ui-monospace, 'Cascadia Code', monospace",fontWeightNormal:400,fontWeightMedium:500,fontWeightSemibold:600,fontWeightBold:700},spatialRhythm:{baseUnit:4,scaleRatio:1.25,containerMaxWidth:1280,sectionSpacing:2.5},shape:{radiusSize:c.RadiusSizes.medium,borderWidth:c.BorderWidths.thin},layers:{shadowDepth:"light",blurLight:6},behavior:{transitionSpeed:c.TransitionSpeeds.fast,animationEasing:c.AnimationEasings["ease-in-out"],focusRingWidth:3,focusRingOpacity:.4},a11y:{minTouchTarget:c.TouchTargetSizes.standard,focusStyle:c.FocusStyles.ring}},"social-feed":{id:"social-feed",name:"Social Feed",tags:["app","featured"],description:"Content-first social platform with minimal chrome, bold actions, and vibrant media presentation",options:{liquidGlassEffects:!0,backgroundMesh:4},colors:{primary:"#1877f2",secondary:"#65676b",accent:"#fe2c55",background:"#ffffff",darkMode:{background:"#18191a",secondary:"#b0b3b8",primary:"#2d88ff"}},typography:{baseFontSize:15,fontScale:1.2,fontFamilyHeadings:"system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif",fontFamilyBody:"system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif",fontWeightNormal:400,fontWeightMedium:500,fontWeightSemibold:600,fontWeightBold:700,lineHeightNormal:c.LineHeights.relaxed},spatialRhythm:{baseUnit:4,scaleRatio:1.25,containerMaxWidth:680,sectionSpacing:1.5},shape:{radiusSize:c.RadiusSizes.medium,borderWidth:c.BorderWidths.thin},behavior:{transitionSpeed:c.TransitionSpeeds.fast,animationEasing:c.AnimationEasings["ease-out"],hoverOpacity:.85}},"enterprise-dash":{id:"enterprise-dash",tags:["app","featured"],name:"Enterprise Dashboard",description:"Data-dense business intelligence app interface with organized hierarchy and professional polish",options:{liquidGlassEffects:!1},colors:{primary:"#0066cc",secondary:"#5f6368",accent:"#1a73e8",background:"#ffffff",success:"#34a853",warning:"#fbbc04",danger:"#ea4335",darkMode:{background:"#202124",secondary:"#9aa0a6",primary:"#8ab4f8"}},typography:{baseFontSize:14,fontScale:1.2,fontFamilyHeadings:"'Roboto', system-ui, -apple-system, 'Segoe UI', sans-serif",fontFamilyBody:"'Roboto', system-ui, -apple-system, 'Segoe UI', sans-serif",fontFamilyMono:"'Roboto Mono', ui-monospace, Consolas, monospace",fontWeightNormal:400,fontWeightMedium:500,fontWeightSemibold:600,fontWeightBold:700,lineHeightNormal:c.LineHeights.tight},spatialRhythm:{baseUnit:4,scaleRatio:1.2,containerMaxWidth:1600,containerPadding:1.5,sectionSpacing:2},shape:{radiusSize:c.RadiusSizes.small,borderWidth:c.BorderWidths.thin},layers:{shadowDepth:"light",blurLight:4},behavior:{transitionSpeed:c.TransitionSpeeds.fast,animationEasing:c.AnimationEasings["ease-in-out"],focusRingWidth:2},layout:{densityCompact:.85,gridColumns:12}}};pt.default={id:"default",name:"Default",tags:["app","featured"],description:"Fresh and modern design system with balanced aesthetics and usability",options:{liquidGlassEffects:!0,backgroundMesh:4},form:{options:{widgets:{booleans:"toggle",numbers:"input",selects:"standard"},layouts:{fieldsets:"default",arrays:"default"},enhancements:{icons:!0,datalists:!0,rangeOutput:!0},validation:{showErrors:!0,validateOnChange:!1}}},colors:{primary:"#0e7490",secondary:"#a99b95",accent:"#e54271",background:"#e7e6de",darkMode:{background:"#16171a",secondary:"#8b9199",primary:"#06b6d4"},success:null,warning:"#B38600",danger:null,info:null,gradientStops:3,elevationOpacity:.05},typography:{baseFontSize:16,fontScale:1.2,fontFamilyHeadings:'system-ui, -apple-system, "Segoe UI", Roboto, sans-serif',fontFamilyBody:'system-ui, -apple-system, "Segoe UI", Roboto, sans-serif',fontFamilyMono:'ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, monospace',fontWeightLight:c.FontWeights.light,fontWeightNormal:c.FontWeights.normal,fontWeightMedium:c.FontWeights.medium,fontWeightSemibold:c.FontWeights.semibold,fontWeightBold:c.FontWeights.bold,lineHeightTight:c.LineHeights.tight,lineHeightNormal:c.LineHeights.normal,lineHeightRelaxed:c.LineHeights.relaxed,letterSpacingTight:-.025,letterSpacingNormal:0,letterSpacingWide:.025},spatialRhythm:{baseUnit:4,scaleRatio:1.25,maxSpacingSteps:32,containerMaxWidth:1200,containerPadding:1,inputPadding:.75,buttonPadding:1,sectionSpacing:2},layers:{shadowDepth:"medium",blurLight:4,blurMedium:8,blurHeavy:16,zIndexBase:0,zIndexDropdown:1e3,zIndexSticky:1020,zIndexFixed:1030,zIndexModal:1040,zIndexPopover:1050,zIndexTooltip:1060,zIndexNotification:1070},shape:{radiusSize:c.RadiusSizes.large,borderWidth:c.BorderWidths.medium,customRadius:null},behavior:{transitionSpeed:c.TransitionSpeeds.normal,animationEasing:c.AnimationEasings["ease-out"],customTransitionSpeed:null,customEasing:null,focusRingWidth:3,focusRingOpacity:.3,hoverOpacity:.8},layout:{gridColumns:12,gridGutter:1,baseShadowOpacity:.1,darkMode:{baseShadowOpacity:.25},breakpoints:{sm:640,md:768,lg:1024,xl:1280},densityCompact:.8,densityNormal:1,densityComfortable:1.2,buttonMinHeight:c.TouchTargetSizes.standard,inputMinHeight:40,utilities:{grid:!0,flex:!0,spacing:!0,container:!0},gridSystem:{columns:[1,2,3,4,6],autoFitBreakpoints:{sm:"150px",md:"250px",lg:"350px",xl:"450px"},enableGapUtilities:!0},containerMaxWidth:"1400px",containerPadding:"var(--spacing-6)"},advanced:{linkStyle:c.LinkStyles.inline,colorDerivation:"hsl"},a11y:{minTouchTarget:c.TouchTargetSizes.standard,prefersReducedMotion:!0,focusStyle:c.FocusStyles.ring},icons:{set:"phosphor",weight:"regular",defaultSize:24,externalPath:"/assets/img/icons/",sizes:c.IconSizes,include:{navigation:["arrow-left","arrow-right","arrow-up","arrow-down","arrow-counter-clockwise","caret-left","caret-right","caret-down","caret-up","x","list","list-dashes","dots-three-vertical","dots-three","house","gear","magnifying-glass","funnel","tabs","sidebar"],actions:["plus","minus","check","trash","pencil","floppy-disk","copy","download","upload","share","link","eye","eye-slash","heart","star","bookmark","note-pencil","cursor-click","clipboard","magic-wand","sparkle"],communication:["envelope","bell","bell-ringing","bell-simple","chat-circle","phone","paper-plane-tilt","user","users","user-gear","at"],content:["image","file","file-text","file-css","file-js","folder","folder-open","book-open","camera","video-camera","play","pause","microphone","brackets-curly","code","folder-simple","grid-four","briefcase","chart-line","chart-bar","database","map-pin"],status:["info","warning","check-circle","x-circle","question","shield","shield-check","shield-warning","lock","lock-open","fingerprint","circle-notch"],time:["calendar","clock","timer","hourglass"],commerce:["shopping-cart","credit-card","currency-dollar","tag","receipt","storefront"],formatting:["text-align-left","text-align-center","text-align-right","text-b","text-italic","text-underline","list-bullets","list-numbers","text-aa"],system:["cloud","cloud-arrow-up","cloud-arrow-down","desktop","device-mobile","globe","wifi-high","battery-charging","sun","moon","moon-stars","palette","rocket","feather","square","circle","squares-four","lightning","wrench"]},spritePath:"public/assets/pds/icons/pds-icons.svg"},gap:4,debug:!1};var ft=/^[a-z][a-z0-9+\-.]*:\/\//i,N=(()=>{try{return import.meta.url}catch{return}})(),Q=e=>typeof e=="string"&&e.length&&!e.endsWith("/")?`${e}/`:e;function Z(e,t={}){if(!e||ft.test(e))return e;let{preferModule:n=!0}=t,r=()=>{if(!N)return null;try{return new URL(e,N).href}catch{return null}},o=()=>{if(typeof window>"u"||!window.location?.origin)return null;try{return new URL(e,window.location.origin).href}catch{return null}};return(n?r()||o():o()||r())||e}var Fe=(()=>{if(N)try{let e=new URL(N);if(/\/public\/assets\/js\//.test(e.pathname))return new URL("../pds/",N).href}catch{return}})(),$e=!1;function _e(e){$e||typeof document>"u"||($e=!0,e.addEventListener("pds:ready",t=>{let n=t.detail?.mode;n&&document.documentElement.classList.add(`pds-${n}`,"pds-ready")}))}function he(e={},t={}){if(!t||typeof t!="object")return e;let n=Array.isArray(e)?[...e]:{...e};for(let[r,o]of Object.entries(t))o&&typeof o=="object"&&!Array.isArray(o)?n[r]=he(n[r]&&typeof n[r]=="object"?n[r]:{},o):n[r]=o;return n}function pe(e=""){return String(e).toLowerCase().replace(/&/g," and ").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}function D(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=>D(n)).filter(n=>n!==void 0);let t={};for(let n in e)if(e.hasOwnProperty(n)){let r=e[n];if(typeof r!="function"){let o=D(r);o!==void 0&&(t[n]=o)}}return t}function Be(e={},t={},{presets:n,defaultLog:r}){let o=e&&typeof e.log=="function"?e.log:r,s=typeof e=="object"&&("colors"in e||"typography"in e||"spatialRhythm"in e||"shape"in e||"behavior"in e||"layout"in e||"advanced"in e||"a11y"in e||"components"in e||"icons"in e),i=e&&e.enhancers;i&&!Array.isArray(i)&&(i=Object.values(i));let u=i??t.enhancers??[],p=e&&e.preset,a=e&&e.design,d=e&&e.icons&&typeof e.icons=="object"?e.icons:null,l="preset"in(e||{})||"design"in(e||{})||"enhancers"in(e||{});e&&typeof e=="object"&&ze(e,{log:o,context:"PDS.start"});let h,m=null;if(l){a&&typeof a=="object"&&de(a,{log:o,context:"PDS.start"});let S=String(p||"default").toLowerCase(),x=n?.[S]||Object.values(n||{}).find(y=>pe(y.name)===S||String(y.name||"").toLowerCase()===S);if(!x)throw new Error(`PDS preset not found: "${p||"default"}"`);m={id:x.id||pe(x.name),name:x.name||x.id||String(S)};let b=structuredClone(x);if(a&&typeof a=="object"||d){let y=a?D(a):{},g=d?D(d):null,A=g?he(y,{icons:g}):y;b=he(b,structuredClone(A))}let{mode:k,autoDefine:I,applyGlobalStyles:E,manageTheme:C,themeStorageKey:R,preloadStyles:_,criticalLayers:z,managerURL:O,manager:L,preset:T,design:B,enhancers:v,log:U,...f}=e;h={...f,design:b,preset:m.name,log:U||r}}else if(s){de(e,{log:o,context:"PDS.start"});let{log:S,...x}=e;h={design:structuredClone(x),log:S||r}}else{let S=n?.default||Object.values(n||{}).find(x=>pe(x.name)==="default");if(!S)throw new Error("PDS default preset not available");m={id:S.id||"default",name:S.name||"Default"},h={design:structuredClone(S),preset:m.name,log:r}}return{generatorConfig:h,enhancers:u,presetInfo:m}}function He({manageTheme:e,themeStorageKey:t,applyResolvedTheme:n,setupSystemListenerIfNeeded:r}){let o="light",s=null;if(e&&typeof window<"u"){try{s=localStorage.getItem(t)||null}catch{s=null}try{n?.(s),r?.(s)}catch{}s?s==="system"?o=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":o=s:o=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}return{resolvedTheme:o,storedTheme:s}}function fe(e,{resolvePublicAssetURL:t}){let n=!!(e?.public?.root||e?.static?.root),r=t(e);return!n&&Fe&&(r=Fe),Q(Z(r))}async function Ne(e,{baseEnhancers:t=[]}={}){let{autoDefineBaseURL:n="/auto-define/",autoDefinePreload:r=[],autoDefineMapper:o=null,enhancers:s=[],autoDefineOverrides:i=null,autoDefinePreferModule:u=!0}=e,p=(()=>{let d=new Map;return(t||[]).forEach(l=>d.set(l.selector,l)),(s||[]).forEach(l=>d.set(l.selector,l)),Array.from(d.values())})(),a=null;if(typeof window<"u"&&typeof document<"u"){let d=null;try{let b=await Promise.resolve().then(()=>(Pe(),Ue));d=b?.AutoDefiner||b?.default?.AutoDefiner||b?.default||null}catch(b){console.warn("AutoDefiner not available:",b?.message||b)}let l=b=>{switch(b){case"pds-tabpanel":return"pds-tabstrip.js";default:return`${b}.js`}},{mapper:h,...m}=i&&typeof i=="object"?i:{},x={baseURL:n&&Q(Z(n,{preferModule:u})),predefine:r,scanExisting:!0,observeShadows:!0,patchAttachShadow:!0,debounceMs:16,enhancers:p,onError:(b,k)=>{if(typeof b=="string"&&b.startsWith("pds-")){let E=["pds-form","pds-drawer"].includes(b),C=k?.message?.includes("#pds/lit")||k?.message?.includes("Failed to resolve module specifier");E&&C?console.error(`\u274C PDS component <${b}> requires Lit but #pds/lit is not in import map.
|
|
32
|
+
See: https://github.com/Pure-Web-Foundation/pure-ds/blob/main/readme.md#lit-components-not-working`):console.warn(`\u26A0\uFE0F PDS component <${b}> not found. Assets may not be installed.`)}else console.error(`\u274C Auto-define error for <${b}>:`,k)},...m,mapper:b=>{if(customElements.get(b))return null;if(typeof o=="function")try{let k=o(b);return k===void 0?l(b):k}catch(k){return console.warn("Custom autoDefine.mapper error; falling back to default:",k?.message||k),l(b)}return l(b)}};d&&(a=new d(x),r.length>0&&typeof d.define=="function"&&await d.define(...r,{baseURL:n,mapper:x.mapper,onError:x.onError}))}return{autoDefiner:a,mergedEnhancers:p}}var me=["light","dark"],ye=new Set(me);function mt(e){let n=(Array.isArray(e?.themes)?e.themes.map(r=>String(r).toLowerCase()):me).filter(r=>ye.has(r));return n.length?n:me}function ge(e,{preferDocument:t=!0}={}){let n=String(e||"").toLowerCase();if(ye.has(n))return n;if(t&&typeof document<"u"){let r=document.documentElement?.getAttribute("data-theme");if(ye.has(r))return r}return typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function je(e,t){let n=ge(t);return mt(e).includes(n)}var Se=class extends EventTarget{},w=new Se;w.initializing=!1;w.currentPreset=null;w.debug=!1;var Oe=(e="")=>String(e).toLowerCase().replace(/&/g," and ").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,""),be=function(e="log",t,...n){let r=!!(w.registry&&!w.registry.isLive),o=(this?.debug||this?.design?.debug||w.debug||!1)===!0;if(r){if(!w.debug)return}else if(!o&&e!=="error"&&e!=="warn")return;let s=console[e]||console.log;n.length>0?s(t,...n):s(t)};async function yt(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}}w.registry=F;w.enums=c;w.adoptLayers=Re;w.adoptPrimitives=Le;w.parse=ne;w.createStylesheet=Me;w.isLiveMode=()=>F.isLive;w.ask=De;w.toast=M;w.common=re;w.AutoComplete=G;function qe(e){let t=typeof CustomEvent=="function";try{let n=t?new CustomEvent("pds:ready",{detail:e}):new Event("pds:ready");w.dispatchEvent(n)}catch{}if(typeof document<"u")if(t){let n={detail:e,bubbles:!0,composed:!0};try{document.dispatchEvent(new CustomEvent("pds:ready",n))}catch{}try{document.dispatchEvent(new CustomEvent("pds-ready",n))}catch{}}else{try{document.dispatchEvent(new Event("pds:ready"))}catch{}try{document.dispatchEvent(new Event("pds-ready"))}catch{}}}typeof window<"u"&&(window.PDS=w);var we="pure-ds-theme",W=null,j=null;function J(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 Y(e){try{if(W&&j){try{typeof W.removeEventListener=="function"?W.removeEventListener("change",j):typeof W.removeListener=="function"&&W.removeListener(j)}catch{}W=null,j=null}if(e==="system"&&typeof window<"u"&&window.matchMedia){let t=window.matchMedia("(prefers-color-scheme: dark)"),n=r=>{let o=r?.matches===void 0?t.matches:r.matches;try{let s=o?"dark":"light";document.documentElement.setAttribute("data-theme",s),w.dispatchEvent(new CustomEvent("pds:theme:changed",{detail:{theme:s,source:"system"}}))}catch{}};W=t,j=n,typeof t.addEventListener=="function"?t.addEventListener("change",n):typeof t.addListener=="function"&&t.addListener(n)}}catch{}}Object.defineProperty(w,"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=w.currentConfig?.design||null,n=ge(e);if(t&&!je(t,n)){let r=t?.name||w.currentPreset?.name||w.currentConfig?.preset||"current preset";console.warn(`PDS theme "${n}" not supported by preset "${r}".`),w.dispatchEvent(new CustomEvent("pds:theme:blocked",{detail:{theme:e,resolvedTheme:n,preset:r}}));return}e==null?localStorage.removeItem(we):localStorage.setItem(we,e),J(e),Y(e),w.dispatchEvent(new CustomEvent("pds:theme:changed",{detail:{theme:e,source:"api"}}))}catch{}}});w.defaultEnhancers=oe;async function gt(e){let t=e&&e.mode||"live",{mode:n,...r}=e||{};if(t==="static")return bt(r);let o=fe(r,{resolvePublicAssetURL:ie}),s=r?.managerURL||r?.public?.managerURL||r?.manager?.url||new URL("core/pds-manager.js",o).href||new URL("./pds-manager.js",import.meta.url).href,{startLive:i}=await import(s);return i(w,r,{emitReady:qe,applyResolvedTheme:J,setupSystemListenerIfNeeded:Y})}w.start=gt;async function bt(e){if(!e||typeof e!="object")throw new Error("PDS.start({ mode: 'static', ... }) requires a valid configuration object");let t=e.applyGlobalStyles??!0,n=e.manageTheme??!0,r=e.themeStorageKey??"pure-ds-theme",o=e.staticPaths??{},s=fe(e,{resolvePublicAssetURL:ie}),i=e&&e.autoDefine||null,u;i&&i.baseURL?u=Q(Z(i.baseURL,{preferModule:!1})):u=`${s}components/`;let p=i&&Array.isArray(i.predefine)&&i.predefine||[],a=i&&typeof i.mapper=="function"&&i.mapper||null;try{_e(w);let{resolvedTheme:d}=He({manageTheme:n,themeStorageKey:r,applyResolvedTheme:J,setupSystemListenerIfNeeded:Y}),l=await yt(s,e),h=l?.config?.design||l?.design||null,m=l?.config?.preset||l?.preset||"default",S=l?.presetId||Oe(m)||"default",x=h?{[String(S).toLowerCase()]:h,...String(S).toLowerCase()!=="default"?{default:h}:{}}:null,b=e?.design&&typeof e.design=="object"?D(e.design):null,k=Oe(e?.preset||"default")||"default",I=b?{[String(k).toLowerCase()]:b,...String(k).toLowerCase()!=="default"?{default:b}:{}}:null,E=x||e?.presets||I||{};if(!Object.keys(E||{}).length)throw new Error("PDS static mode requires preset data. Run pds:build or provide config.presets/config.design.");let C=l?.config?{...l.config,...e,preset:e?.preset||S,design:b||h||l?.config?.design}:e,R=Be(C,{},{presets:E,defaultLog:be}),_=R.enhancers,z={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`},O=l?.paths||{};if(o={...z,...O,...o},w.registry.setStaticMode(o),t&&typeof document<"u")try{let v=await w.registry.getStylesheet("styles");if(v){v._pds=!0;let U=(document.adoptedStyleSheets||[]).filter(f=>f._pds!==!0);document.adoptedStyleSheets=[...U,v]}}catch(v){be.call(w,"warn","Failed to apply static styles:",v)}let L=null,T=[];try{let v=await Ne({autoDefineBaseURL:u,autoDefinePreload:p,autoDefineMapper:a,enhancers:_,autoDefineOverrides:i||null,autoDefinePreferModule:!(i&&i.baseURL)},{baseEnhancers:oe});L=v.autoDefiner,T=v.mergedEnhancers||[]}catch(v){be.call(w,"error","\u274C Failed to initialize AutoDefiner/Enhancers (static):",v)}let B=D(e);return w.currentConfig=Object.freeze({mode:"static",...structuredClone(B),design:structuredClone(R.generatorConfig.design),preset:R.generatorConfig.preset,theme:d,enhancers:T}),qe({mode:"static",config:R.generatorConfig,theme:d,autoDefiner:L}),{config:R.generatorConfig,theme:d,autoDefiner:L}}catch(d){throw w.dispatchEvent(new CustomEvent("pds:error",{detail:{error:d}})),d}}var Zt=J,Jt=Y;export{w as PDS,Zt as applyResolvedTheme,Jt as setupSystemListenerIfNeeded};
|