@pure-ds/core 0.5.28 → 0.5.30
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/public/assets/js/pds-manager.d.ts +186 -443
- 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/src/js/pds-core/pds-generator.d.ts +30 -18
- package/dist/types/src/js/pds-core/pds-generator.d.ts.map +1 -1
- package/package.json +1 -1
- package/public/assets/js/app.js +138 -143
- package/public/assets/js/pds-manager.js +153 -158
- package/public/assets/pds/pds-css-complete.json +28 -0
- package/public/assets/pds/pds.css-data.json +44 -0
- package/src/js/pds-core/pds-generator.js +146 -69
package/public/assets/js/app.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
var yr=Object.defineProperty;var vr=(r,e)=>()=>(r&&(e=r(r=0)),e);var wr=(r,e)=>{for(var t in e)yr(r,t,{get:e[t],enumerable:!0})};var Xt={};wr(Xt,{AutoDefiner:()=>ct});async function so(...r){let e={};r.length&&typeof r[r.length-1]=="object"&&(e=r.pop()||{});let t=r,{baseURL:o,mapper:a=p=>`${p}.js`,onError:i=(p,d)=>console.error(`[defineWebComponents] ${p}:`,d)}=e,s=o?new URL(o,typeof location<"u"?location.href:import.meta.url):new URL("./",import.meta.url),n=p=>p.toLowerCase().replace(/(^|-)([a-z])/g,(d,l,h)=>h.toUpperCase()),c=async p=>{try{if(customElements.get(p))return{tag:p,status:"already-defined"};let d=a(p),h=await import(d instanceof URL?d.href:new URL(d,s).href),g=h?.default??h?.[n(p)];if(!g){if(customElements.get(p))return{tag:p,status:"self-defined"};throw new Error(`No export found for ${p}. Expected default export or named export "${n(p)}".`)}return customElements.get(p)?{tag:p,status:"race-already-defined"}:(customElements.define(p,g),{tag:p,status:"defined"})}catch(d){throw i(p,d),d}};return Promise.all(t.map(c))}var ct,er=vr(()=>{ct=class{constructor(e={}){let{baseURL:t,mapper:o,onError:a,predicate:i=()=>!0,attributeModule:s="data-module",root:n=document,scanExisting:c=!0,debounceMs:p=16,observeShadows:d=!0,enhancers:l=[],patchAttachShadow:h=!0}=e,g=new Set,y=new Set,k=new Set,f=new Map,$=new WeakMap,Z=new WeakMap,T=0,H=!1,D=null,le=b=>{if(!b||!l.length)return;let w=Z.get(b);w||(w=new Set,Z.set(b,w));for(let v of l)if(!(!v.selector||!v.run)&&!w.has(v.selector))try{b.matches&&b.matches(v.selector)&&(v.run(b),w.add(v.selector))}catch(_){console.warn(`[AutoDefiner] Error applying enhancer for selector "${v.selector}":`,_)}},Q=(b,w)=>{if(!H&&!(!b||!b.includes("-"))&&!customElements.get(b)&&!y.has(b)&&!k.has(b)){if(w&&w.getAttribute){let v=w.getAttribute(s);v&&!f.has(b)&&f.set(b,v)}g.add(b),we()}},we=()=>{T||(T=setTimeout(X,p))},L=b=>{if(b){if(b.nodeType===1){let w=b,v=w.tagName?.toLowerCase();v&&v.includes("-")&&!customElements.get(v)&&i(v,w)&&Q(v,w),le(w),d&&w.shadowRoot&&W(w.shadowRoot)}b.querySelectorAll&&b.querySelectorAll("*").forEach(w=>{let v=w.tagName?.toLowerCase();v&&v.includes("-")&&!customElements.get(v)&&i(v,w)&&Q(v,w),le(w),d&&w.shadowRoot&&W(w.shadowRoot)})}},W=b=>{if(!b||$.has(b))return;L(b);let w=new MutationObserver(v=>{for(let _ of v)_.addedNodes?.forEach(ee=>{L(ee)}),_.type==="attributes"&&_.target&&L(_.target)});w.observe(b,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[s,...l.map(v=>v.selector).filter(v=>v.startsWith("data-"))]}),$.set(b,w)};async function X(){if(clearTimeout(T),T=0,!g.size)return;let b=Array.from(g);g.clear(),b.forEach(w=>y.add(w));try{let w=v=>f.get(v)??(o?o(v):`${v}.js`);await so(...b,{baseURL:t,mapper:w,onError:(v,_)=>{k.add(v),a?.(v,_)}})}catch{}finally{b.forEach(w=>y.delete(w))}}let E=n===document?document.documentElement:n,R=new MutationObserver(b=>{for(let w of b)w.addedNodes?.forEach(v=>{L(v)}),w.type==="attributes"&&w.target&&L(w.target)});if(R.observe(E,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[s,...l.map(b=>b.selector).filter(b=>b.startsWith("data-"))]}),d&&h&&Element.prototype.attachShadow){let b=Element.prototype.attachShadow;Element.prototype.attachShadow=function(v){let _=b.call(this,v);if(v&&v.mode==="open"){W(_);let ee=this.tagName?.toLowerCase();ee&&ee.includes("-")&&!customElements.get(ee)&&Q(ee,this)}return _},D=()=>Element.prototype.attachShadow=b}return c&&L(E),{stop(){H=!0,R.disconnect(),D&&D(),T&&(clearTimeout(T),T=0),$.forEach(b=>b.disconnect())},flush:X}}static async define(...e){let t={};e.length&&typeof e[e.length-1]=="object"&&(t=e.pop()||{});let o=e,{baseURL:a,mapper:i=d=>`${d}.js`,onError:s=(d,l)=>console.error(`[defineWebComponents] ${d}:`,l)}=t,n=a?new URL(a,typeof location<"u"?location.href:import.meta.url):new URL("./",import.meta.url),c=d=>d.toLowerCase().replace(/(^|-)([a-z])/g,(l,h,g)=>g.toUpperCase()),p=async d=>{try{if(customElements.get(d))return{tag:d,status:"already-defined"};let l=i(d),g=await import(l instanceof URL?l.href:new URL(l,n).href),y=g?.default??g?.[c(d)];if(!y){if(customElements.get(d))return{tag:d,status:"self-defined"};throw new Error(`No export found for ${d}. Expected default export or named export "${c(d)}".`)}return customElements.get(d)?{tag:d,status:"race-already-defined"}:(customElements.define(d,y),{tag:d,status:"defined"})}catch(l){throw s(d,l),l}};return Promise.all(o.map(p))}}});var xe=globalThis,Se=xe.ShadowRoot&&(xe.ShadyCSS===void 0||xe.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,vt=Symbol(),yt=new WeakMap,ke=class{constructor(e,t,o){if(this._$cssResult$=!0,o!==vt)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=t}get styleSheet(){let e=this.o,t=this.t;if(Se&&e===void 0){let o=t!==void 0&&t.length===1;o&&(e=yt.get(t)),e===void 0&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),o&&yt.set(t,e))}return e}toString(){return this.cssText}},wt=r=>new ke(typeof r=="string"?r:r+"",void 0,vt);var xt=(r,e)=>{if(Se)r.adoptedStyleSheets=e.map(t=>t instanceof CSSStyleSheet?t:t.styleSheet);else for(let t of e){let o=document.createElement("style"),a=xe.litNonce;a!==void 0&&o.setAttribute("nonce",a),o.textContent=t.cssText,r.appendChild(o)}},qe=Se?r=>r:r=>r instanceof CSSStyleSheet?(e=>{let t="";for(let o of e.cssRules)t+=o.cssText;return wt(t)})(r):r;var{is:kr,defineProperty:Sr,getOwnPropertyDescriptor:$r,getOwnPropertyNames:Cr,getOwnPropertySymbols:Er,getPrototypeOf:Ar}=Object,$e=globalThis,kt=$e.trustedTypes,Tr=kt?kt.emptyScript:"",zr=$e.reactiveElementPolyfillSupport,de=(r,e)=>r,Ge={toAttribute(r,e){switch(e){case Boolean:r=r?Tr:null;break;case Object:case Array:r=r==null?r:JSON.stringify(r)}return r},fromAttribute(r,e){let t=r;switch(e){case Boolean:t=r!==null;break;case Number:t=r===null?null:Number(r);break;case Object:case Array:try{t=JSON.parse(r)}catch{t=null}}return t}},$t=(r,e)=>!kr(r,e),St={attribute:!0,type:String,converter:Ge,reflect:!1,useDefault:!1,hasChanged:$t};Symbol.metadata??=Symbol("metadata"),$e.litPropertyMetadata??=new WeakMap;var F=class extends HTMLElement{static addInitializer(e){this._$Ei(),(this.l??=[]).push(e)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(e,t=St){if(t.state&&(t.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(e)&&((t=Object.create(t)).wrapped=!0),this.elementProperties.set(e,t),!t.noAccessor){let o=Symbol(),a=this.getPropertyDescriptor(e,o,t);a!==void 0&&Sr(this.prototype,e,a)}}static getPropertyDescriptor(e,t,o){let{get:a,set:i}=$r(this.prototype,e)??{get(){return this[t]},set(s){this[t]=s}};return{get:a,set(s){let n=a?.call(this);i?.call(this,s),this.requestUpdate(e,n,o)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)??St}static _$Ei(){if(this.hasOwnProperty(de("elementProperties")))return;let e=Ar(this);e.finalize(),e.l!==void 0&&(this.l=[...e.l]),this.elementProperties=new Map(e.elementProperties)}static finalize(){if(this.hasOwnProperty(de("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(de("properties"))){let t=this.properties,o=[...Cr(t),...Er(t)];for(let a of o)this.createProperty(a,t[a])}let e=this[Symbol.metadata];if(e!==null){let t=litPropertyMetadata.get(e);if(t!==void 0)for(let[o,a]of t)this.elementProperties.set(o,a)}this._$Eh=new Map;for(let[t,o]of this.elementProperties){let a=this._$Eu(t,o);a!==void 0&&this._$Eh.set(a,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(e){let t=[];if(Array.isArray(e)){let o=new Set(e.flat(1/0).reverse());for(let a of o)t.unshift(qe(a))}else e!==void 0&&t.push(qe(e));return t}static _$Eu(e,t){let o=t.attribute;return o===!1?void 0:typeof o=="string"?o:typeof e=="string"?e.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise(e=>this.enableUpdating=e),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach(e=>e(this))}addController(e){(this._$EO??=new Set).add(e),this.renderRoot!==void 0&&this.isConnected&&e.hostConnected?.()}removeController(e){this._$EO?.delete(e)}_$E_(){let e=new Map,t=this.constructor.elementProperties;for(let o of t.keys())this.hasOwnProperty(o)&&(e.set(o,this[o]),delete this[o]);e.size>0&&(this._$Ep=e)}createRenderRoot(){let e=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return xt(e,this.constructor.elementStyles),e}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach(e=>e.hostConnected?.())}enableUpdating(e){}disconnectedCallback(){this._$EO?.forEach(e=>e.hostDisconnected?.())}attributeChangedCallback(e,t,o){this._$AK(e,o)}_$ET(e,t){let o=this.constructor.elementProperties.get(e),a=this.constructor._$Eu(e,o);if(a!==void 0&&o.reflect===!0){let i=(o.converter?.toAttribute!==void 0?o.converter:Ge).toAttribute(t,o.type);this._$Em=e,i==null?this.removeAttribute(a):this.setAttribute(a,i),this._$Em=null}}_$AK(e,t){let o=this.constructor,a=o._$Eh.get(e);if(a!==void 0&&this._$Em!==a){let i=o.getPropertyOptions(a),s=typeof i.converter=="function"?{fromAttribute:i.converter}:i.converter?.fromAttribute!==void 0?i.converter:Ge;this._$Em=a;let n=s.fromAttribute(t,i.type);this[a]=n??this._$Ej?.get(a)??n,this._$Em=null}}requestUpdate(e,t,o){if(e!==void 0){let a=this.constructor,i=this[e];if(o??=a.getPropertyOptions(e),!((o.hasChanged??$t)(i,t)||o.useDefault&&o.reflect&&i===this._$Ej?.get(e)&&!this.hasAttribute(a._$Eu(e,o))))return;this.C(e,t,o)}this.isUpdatePending===!1&&(this._$ES=this._$EP())}C(e,t,{useDefault:o,reflect:a,wrapped:i},s){o&&!(this._$Ej??=new Map).has(e)&&(this._$Ej.set(e,s??t??this[e]),i!==!0||s!==void 0)||(this._$AL.has(e)||(this.hasUpdated||o||(t=void 0),this._$AL.set(e,t)),a===!0&&this._$Em!==e&&(this._$Eq??=new Set).add(e))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}let e=this.scheduleUpdate();return e!=null&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(let[a,i]of this._$Ep)this[a]=i;this._$Ep=void 0}let o=this.constructor.elementProperties;if(o.size>0)for(let[a,i]of o){let{wrapped:s}=i,n=this[a];s!==!0||this._$AL.has(a)||n===void 0||this.C(a,void 0,i,n)}}let e=!1,t=this._$AL;try{e=this.shouldUpdate(t),e?(this.willUpdate(t),this._$EO?.forEach(o=>o.hostUpdate?.()),this.update(t)):this._$EM()}catch(o){throw e=!1,this._$EM(),o}e&&this._$AE(t)}willUpdate(e){}_$AE(e){this._$EO?.forEach(t=>t.hostUpdated?.()),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(e){return!0}update(e){this._$Eq&&=this._$Eq.forEach(t=>this._$ET(t,this[t])),this._$EM()}updated(e){}firstUpdated(e){}};F.elementStyles=[],F.shadowRootOptions={mode:"open"},F[de("elementProperties")]=new Map,F[de("finalized")]=new Map,zr?.({ReactiveElement:F}),($e.reactiveElementVersions??=[]).push("2.1.1");var Je=globalThis,Ce=Je.trustedTypes,Ct=Ce?Ce.createPolicy("lit-html",{createHTML:r=>r}):void 0,Ke="$lit$",I=`lit$${Math.random().toFixed(9).slice(2)}$`,Ye="?"+I,Lr=`<${Ye}>`,G=document,ue=()=>G.createComment(""),he=r=>r===null||typeof r!="object"&&typeof r!="function",Ze=Array.isArray,_t=r=>Ze(r)||typeof r?.[Symbol.iterator]=="function",Ve=`[
|
|
1
|
+
var yr=Object.defineProperty;var vr=(r,e)=>()=>(r&&(e=r(r=0)),e);var wr=(r,e)=>{for(var t in e)yr(r,t,{get:e[t],enumerable:!0})};var Xt={};wr(Xt,{AutoDefiner:()=>ct});async function so(...r){let e={};r.length&&typeof r[r.length-1]=="object"&&(e=r.pop()||{});let t=r,{baseURL:o,mapper:a=p=>`${p}.js`,onError:i=(p,d)=>console.error(`[defineWebComponents] ${p}:`,d)}=e,s=o?new URL(o,typeof location<"u"?location.href:import.meta.url):new URL("./",import.meta.url),n=p=>p.toLowerCase().replace(/(^|-)([a-z])/g,(d,l,h)=>h.toUpperCase()),c=async p=>{try{if(customElements.get(p))return{tag:p,status:"already-defined"};let d=a(p),h=await import(d instanceof URL?d.href:new URL(d,s).href),g=h?.default??h?.[n(p)];if(!g){if(customElements.get(p))return{tag:p,status:"self-defined"};throw new Error(`No export found for ${p}. Expected default export or named export "${n(p)}".`)}return customElements.get(p)?{tag:p,status:"race-already-defined"}:(customElements.define(p,g),{tag:p,status:"defined"})}catch(d){throw i(p,d),d}};return Promise.all(t.map(c))}var ct,er=vr(()=>{ct=class{constructor(e={}){let{baseURL:t,mapper:o,onError:a,predicate:i=()=>!0,attributeModule:s="data-module",root:n=document,scanExisting:c=!0,debounceMs:p=16,observeShadows:d=!0,enhancers:l=[],patchAttachShadow:h=!0}=e,g=new Set,y=new Set,k=new Set,f=new Map,$=new WeakMap,Z=new WeakMap,T=0,H=!1,D=null,le=b=>{if(!b||!l.length)return;let w=Z.get(b);w||(w=new Set,Z.set(b,w));for(let v of l)if(!(!v.selector||!v.run)&&!w.has(v.selector))try{b.matches&&b.matches(v.selector)&&(v.run(b),w.add(v.selector))}catch(M){console.warn(`[AutoDefiner] Error applying enhancer for selector "${v.selector}":`,M)}},Q=(b,w)=>{if(!H&&!(!b||!b.includes("-"))&&!customElements.get(b)&&!y.has(b)&&!k.has(b)){if(w&&w.getAttribute){let v=w.getAttribute(s);v&&!f.has(b)&&f.set(b,v)}g.add(b),we()}},we=()=>{T||(T=setTimeout(X,p))},L=b=>{if(b){if(b.nodeType===1){let w=b,v=w.tagName?.toLowerCase();v&&v.includes("-")&&!customElements.get(v)&&i(v,w)&&Q(v,w),le(w),d&&w.shadowRoot&&W(w.shadowRoot)}b.querySelectorAll&&b.querySelectorAll("*").forEach(w=>{let v=w.tagName?.toLowerCase();v&&v.includes("-")&&!customElements.get(v)&&i(v,w)&&Q(v,w),le(w),d&&w.shadowRoot&&W(w.shadowRoot)})}},W=b=>{if(!b||$.has(b))return;L(b);let w=new MutationObserver(v=>{for(let M of v)M.addedNodes?.forEach(ee=>{L(ee)}),M.type==="attributes"&&M.target&&L(M.target)});w.observe(b,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[s,...l.map(v=>v.selector).filter(v=>v.startsWith("data-"))]}),$.set(b,w)};async function X(){if(clearTimeout(T),T=0,!g.size)return;let b=Array.from(g);g.clear(),b.forEach(w=>y.add(w));try{let w=v=>f.get(v)??(o?o(v):`${v}.js`);await so(...b,{baseURL:t,mapper:w,onError:(v,M)=>{k.add(v),a?.(v,M)}})}catch{}finally{b.forEach(w=>y.delete(w))}}let E=n===document?document.documentElement:n,R=new MutationObserver(b=>{for(let w of b)w.addedNodes?.forEach(v=>{L(v)}),w.type==="attributes"&&w.target&&L(w.target)});if(R.observe(E,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[s,...l.map(b=>b.selector).filter(b=>b.startsWith("data-"))]}),d&&h&&Element.prototype.attachShadow){let b=Element.prototype.attachShadow;Element.prototype.attachShadow=function(v){let M=b.call(this,v);if(v&&v.mode==="open"){W(M);let ee=this.tagName?.toLowerCase();ee&&ee.includes("-")&&!customElements.get(ee)&&Q(ee,this)}return M},D=()=>Element.prototype.attachShadow=b}return c&&L(E),{stop(){H=!0,R.disconnect(),D&&D(),T&&(clearTimeout(T),T=0),$.forEach(b=>b.disconnect())},flush:X}}static async define(...e){let t={};e.length&&typeof e[e.length-1]=="object"&&(t=e.pop()||{});let o=e,{baseURL:a,mapper:i=d=>`${d}.js`,onError:s=(d,l)=>console.error(`[defineWebComponents] ${d}:`,l)}=t,n=a?new URL(a,typeof location<"u"?location.href:import.meta.url):new URL("./",import.meta.url),c=d=>d.toLowerCase().replace(/(^|-)([a-z])/g,(l,h,g)=>g.toUpperCase()),p=async d=>{try{if(customElements.get(d))return{tag:d,status:"already-defined"};let l=i(d),g=await import(l instanceof URL?l.href:new URL(l,n).href),y=g?.default??g?.[c(d)];if(!y){if(customElements.get(d))return{tag:d,status:"self-defined"};throw new Error(`No export found for ${d}. Expected default export or named export "${c(d)}".`)}return customElements.get(d)?{tag:d,status:"race-already-defined"}:(customElements.define(d,y),{tag:d,status:"defined"})}catch(l){throw s(d,l),l}};return Promise.all(o.map(p))}}});var xe=globalThis,Se=xe.ShadowRoot&&(xe.ShadyCSS===void 0||xe.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,vt=Symbol(),yt=new WeakMap,ke=class{constructor(e,t,o){if(this._$cssResult$=!0,o!==vt)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=t}get styleSheet(){let e=this.o,t=this.t;if(Se&&e===void 0){let o=t!==void 0&&t.length===1;o&&(e=yt.get(t)),e===void 0&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),o&&yt.set(t,e))}return e}toString(){return this.cssText}},wt=r=>new ke(typeof r=="string"?r:r+"",void 0,vt);var xt=(r,e)=>{if(Se)r.adoptedStyleSheets=e.map(t=>t instanceof CSSStyleSheet?t:t.styleSheet);else for(let t of e){let o=document.createElement("style"),a=xe.litNonce;a!==void 0&&o.setAttribute("nonce",a),o.textContent=t.cssText,r.appendChild(o)}},qe=Se?r=>r:r=>r instanceof CSSStyleSheet?(e=>{let t="";for(let o of e.cssRules)t+=o.cssText;return wt(t)})(r):r;var{is:kr,defineProperty:Sr,getOwnPropertyDescriptor:$r,getOwnPropertyNames:Cr,getOwnPropertySymbols:Er,getPrototypeOf:Ar}=Object,$e=globalThis,kt=$e.trustedTypes,Tr=kt?kt.emptyScript:"",zr=$e.reactiveElementPolyfillSupport,de=(r,e)=>r,Ge={toAttribute(r,e){switch(e){case Boolean:r=r?Tr:null;break;case Object:case Array:r=r==null?r:JSON.stringify(r)}return r},fromAttribute(r,e){let t=r;switch(e){case Boolean:t=r!==null;break;case Number:t=r===null?null:Number(r);break;case Object:case Array:try{t=JSON.parse(r)}catch{t=null}}return t}},$t=(r,e)=>!kr(r,e),St={attribute:!0,type:String,converter:Ge,reflect:!1,useDefault:!1,hasChanged:$t};Symbol.metadata??=Symbol("metadata"),$e.litPropertyMetadata??=new WeakMap;var F=class extends HTMLElement{static addInitializer(e){this._$Ei(),(this.l??=[]).push(e)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(e,t=St){if(t.state&&(t.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(e)&&((t=Object.create(t)).wrapped=!0),this.elementProperties.set(e,t),!t.noAccessor){let o=Symbol(),a=this.getPropertyDescriptor(e,o,t);a!==void 0&&Sr(this.prototype,e,a)}}static getPropertyDescriptor(e,t,o){let{get:a,set:i}=$r(this.prototype,e)??{get(){return this[t]},set(s){this[t]=s}};return{get:a,set(s){let n=a?.call(this);i?.call(this,s),this.requestUpdate(e,n,o)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)??St}static _$Ei(){if(this.hasOwnProperty(de("elementProperties")))return;let e=Ar(this);e.finalize(),e.l!==void 0&&(this.l=[...e.l]),this.elementProperties=new Map(e.elementProperties)}static finalize(){if(this.hasOwnProperty(de("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(de("properties"))){let t=this.properties,o=[...Cr(t),...Er(t)];for(let a of o)this.createProperty(a,t[a])}let e=this[Symbol.metadata];if(e!==null){let t=litPropertyMetadata.get(e);if(t!==void 0)for(let[o,a]of t)this.elementProperties.set(o,a)}this._$Eh=new Map;for(let[t,o]of this.elementProperties){let a=this._$Eu(t,o);a!==void 0&&this._$Eh.set(a,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(e){let t=[];if(Array.isArray(e)){let o=new Set(e.flat(1/0).reverse());for(let a of o)t.unshift(qe(a))}else e!==void 0&&t.push(qe(e));return t}static _$Eu(e,t){let o=t.attribute;return o===!1?void 0:typeof o=="string"?o:typeof e=="string"?e.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise(e=>this.enableUpdating=e),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach(e=>e(this))}addController(e){(this._$EO??=new Set).add(e),this.renderRoot!==void 0&&this.isConnected&&e.hostConnected?.()}removeController(e){this._$EO?.delete(e)}_$E_(){let e=new Map,t=this.constructor.elementProperties;for(let o of t.keys())this.hasOwnProperty(o)&&(e.set(o,this[o]),delete this[o]);e.size>0&&(this._$Ep=e)}createRenderRoot(){let e=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return xt(e,this.constructor.elementStyles),e}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach(e=>e.hostConnected?.())}enableUpdating(e){}disconnectedCallback(){this._$EO?.forEach(e=>e.hostDisconnected?.())}attributeChangedCallback(e,t,o){this._$AK(e,o)}_$ET(e,t){let o=this.constructor.elementProperties.get(e),a=this.constructor._$Eu(e,o);if(a!==void 0&&o.reflect===!0){let i=(o.converter?.toAttribute!==void 0?o.converter:Ge).toAttribute(t,o.type);this._$Em=e,i==null?this.removeAttribute(a):this.setAttribute(a,i),this._$Em=null}}_$AK(e,t){let o=this.constructor,a=o._$Eh.get(e);if(a!==void 0&&this._$Em!==a){let i=o.getPropertyOptions(a),s=typeof i.converter=="function"?{fromAttribute:i.converter}:i.converter?.fromAttribute!==void 0?i.converter:Ge;this._$Em=a;let n=s.fromAttribute(t,i.type);this[a]=n??this._$Ej?.get(a)??n,this._$Em=null}}requestUpdate(e,t,o){if(e!==void 0){let a=this.constructor,i=this[e];if(o??=a.getPropertyOptions(e),!((o.hasChanged??$t)(i,t)||o.useDefault&&o.reflect&&i===this._$Ej?.get(e)&&!this.hasAttribute(a._$Eu(e,o))))return;this.C(e,t,o)}this.isUpdatePending===!1&&(this._$ES=this._$EP())}C(e,t,{useDefault:o,reflect:a,wrapped:i},s){o&&!(this._$Ej??=new Map).has(e)&&(this._$Ej.set(e,s??t??this[e]),i!==!0||s!==void 0)||(this._$AL.has(e)||(this.hasUpdated||o||(t=void 0),this._$AL.set(e,t)),a===!0&&this._$Em!==e&&(this._$Eq??=new Set).add(e))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}let e=this.scheduleUpdate();return e!=null&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(let[a,i]of this._$Ep)this[a]=i;this._$Ep=void 0}let o=this.constructor.elementProperties;if(o.size>0)for(let[a,i]of o){let{wrapped:s}=i,n=this[a];s!==!0||this._$AL.has(a)||n===void 0||this.C(a,void 0,i,n)}}let e=!1,t=this._$AL;try{e=this.shouldUpdate(t),e?(this.willUpdate(t),this._$EO?.forEach(o=>o.hostUpdate?.()),this.update(t)):this._$EM()}catch(o){throw e=!1,this._$EM(),o}e&&this._$AE(t)}willUpdate(e){}_$AE(e){this._$EO?.forEach(t=>t.hostUpdated?.()),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(e){return!0}update(e){this._$Eq&&=this._$Eq.forEach(t=>this._$ET(t,this[t])),this._$EM()}updated(e){}firstUpdated(e){}};F.elementStyles=[],F.shadowRootOptions={mode:"open"},F[de("elementProperties")]=new Map,F[de("finalized")]=new Map,zr?.({ReactiveElement:F}),($e.reactiveElementVersions??=[]).push("2.1.1");var Je=globalThis,Ce=Je.trustedTypes,Ct=Ce?Ce.createPolicy("lit-html",{createHTML:r=>r}):void 0,Ke="$lit$",I=`lit$${Math.random().toFixed(9).slice(2)}$`,Ye="?"+I,Lr=`<${Ye}>`,G=document,ue=()=>G.createComment(""),he=r=>r===null||typeof r!="object"&&typeof r!="function",Ze=Array.isArray,Mt=r=>Ze(r)||typeof r?.[Symbol.iterator]=="function",Ve=`[
|
|
2
2
|
\f\r]`,pe=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,Et=/-->/g,At=/>/g,U=RegExp(`>|${Ve}(?:([^\\s"'>=/]+)(${Ve}*=${Ve}*(?:[^
|
|
3
|
-
\f\r"'\`<>=]|("|')|))|$)`,"g"),Tt=/'/g,zt=/"/g,Mt=/^(?:script|style|textarea|title)$/i,Qe=r=>(e,...t)=>({_$litType$:r,strings:e,values:t}),_e=Qe(1),Xe=Qe(2),Dt=Qe(3),C=Symbol.for("lit-noChange"),x=Symbol.for("lit-nothing"),Lt=new WeakMap,q=G.createTreeWalker(G,129);function Pt(r,e){if(!Ze(r)||!r.hasOwnProperty("raw"))throw Error("invalid template strings array");return Ct!==void 0?Ct.createHTML(e):e}var Rt=(r,e)=>{let t=r.length-1,o=[],a,i=e===2?"<svg>":e===3?"<math>":"",s=pe;for(let n=0;n<t;n++){let c=r[n],p,d,l=-1,h=0;for(;h<c.length&&(s.lastIndex=h,d=s.exec(c),d!==null);)h=s.lastIndex,s===pe?d[1]==="!--"?s=Et:d[1]!==void 0?s=At:d[2]!==void 0?(Mt.test(d[2])&&(a=RegExp("</"+d[2],"g")),s=U):d[3]!==void 0&&(s=U):s===U?d[0]===">"?(s=a??pe,l=-1):d[1]===void 0?l=-2:(l=s.lastIndex-d[2].length,p=d[1],s=d[3]===void 0?U:d[3]==='"'?zt:Tt):s===zt||s===Tt?s=U:s===Et||s===At?s=pe:(s=U,a=void 0);let g=s===U&&r[n+1].startsWith("/>")?" ":"";i+=s===pe?c+Lr:l>=0?(o.push(p),c.slice(0,l)+Ke+c.slice(l)+I+g):c+I+(l===-2?n:g)}return[Pt(r,i+(r[t]||"<?>")+(e===2?"</svg>":e===3?"</math>":"")),o]},ge=class r{constructor({strings:e,_$litType$:t},o){let a;this.parts=[];let i=0,s=0,n=e.length-1,c=this.parts,[p,d]=Rt(e,t);if(this.el=r.createElement(p,o),q.currentNode=this.el.content,t===2||t===3){let l=this.el.content.firstChild;l.replaceWith(...l.childNodes)}for(;(a=q.nextNode())!==null&&c.length<n;){if(a.nodeType===1){if(a.hasAttributes())for(let l of a.getAttributeNames())if(l.endsWith(Ke)){let h=d[s++],g=a.getAttribute(l).split(I),y=/([.?@])?(.*)/.exec(h);c.push({type:1,index:i,name:y[2],strings:g,ctor:y[1]==="."?Ae:y[1]==="?"?Te:y[1]==="@"?ze:J}),a.removeAttribute(l)}else l.startsWith(I)&&(c.push({type:6,index:i}),a.removeAttribute(l));if(Mt.test(a.tagName)){let l=a.textContent.split(I),h=l.length-1;if(h>0){a.textContent=Ce?Ce.emptyScript:"";for(let g=0;g<h;g++)a.append(l[g],ue()),q.nextNode(),c.push({type:2,index:++i});a.append(l[h],ue())}}}else if(a.nodeType===8)if(a.data===Ye)c.push({type:2,index:i});else{let l=-1;for(;(l=a.data.indexOf(I,l+1))!==-1;)c.push({type:7,index:i}),l+=I.length-1}i++}}static createElement(e,t){let o=G.createElement("template");return o.innerHTML=e,o}};function V(r,e,t=r,o){if(e===C)return e;let a=o!==void 0?t._$Co?.[o]:t._$Cl,i=he(e)?void 0:e._$litDirective$;return a?.constructor!==i&&(a?._$AO?.(!1),i===void 0?a=void 0:(a=new i(r),a._$AT(r,t,o)),o!==void 0?(t._$Co??=[])[o]=a:t._$Cl=a),a!==void 0&&(e=V(r,a._$AS(r,e.values),a,o)),e}var Ee=class{constructor(e,t){this._$AV=[],this._$AN=void 0,this._$AD=e,this._$AM=t}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(e){let{el:{content:t},parts:o}=this._$AD,a=(e?.creationScope??G).importNode(t,!0);q.currentNode=a;let i=q.nextNode(),s=0,n=0,c=o[0];for(;c!==void 0;){if(s===c.index){let p;c.type===2?p=new te(i,i.nextSibling,this,e):c.type===1?p=new c.ctor(i,c.name,c.strings,this,e):c.type===6&&(p=new Le(i,this,e)),this._$AV.push(p),c=o[++n]}s!==c?.index&&(i=q.nextNode(),s++)}return q.currentNode=G,a}p(e){let t=0;for(let o of this._$AV)o!==void 0&&(o.strings!==void 0?(o._$AI(e,o,t),t+=o.strings.length-2):o._$AI(e[t])),t++}},te=class r{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(e,t,o,a){this.type=2,this._$AH=x,this._$AN=void 0,this._$AA=e,this._$AB=t,this._$AM=o,this.options=a,this._$Cv=a?.isConnected??!0}get parentNode(){let e=this._$AA.parentNode,t=this._$AM;return t!==void 0&&e?.nodeType===11&&(e=t.parentNode),e}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(e,t=this){e=V(this,e,t),he(e)?e===x||e==null||e===""?(this._$AH!==x&&this._$AR(),this._$AH=x):e!==this._$AH&&e!==C&&this._(e):e._$litType$!==void 0?this.$(e):e.nodeType!==void 0?this.T(e):_t(e)?this.k(e):this._(e)}O(e){return this._$AA.parentNode.insertBefore(e,this._$AB)}T(e){this._$AH!==e&&(this._$AR(),this._$AH=this.O(e))}_(e){this._$AH!==x&&he(this._$AH)?this._$AA.nextSibling.data=e:this.T(G.createTextNode(e)),this._$AH=e}$(e){let{values:t,_$litType$:o}=e,a=typeof o=="number"?this._$AC(e):(o.el===void 0&&(o.el=ge.createElement(Pt(o.h,o.h[0]),this.options)),o);if(this._$AH?._$AD===a)this._$AH.p(t);else{let i=new Ee(a,this),s=i.u(this.options);i.p(t),this.T(s),this._$AH=i}}_$AC(e){let t=Lt.get(e.strings);return t===void 0&&Lt.set(e.strings,t=new ge(e)),t}k(e){Ze(this._$AH)||(this._$AH=[],this._$AR());let t=this._$AH,o,a=0;for(let i of e)a===t.length?t.push(o=new r(this.O(ue()),this.O(ue()),this,this.options)):o=t[a],o._$AI(i),a++;a<t.length&&(this._$AR(o&&o._$AB.nextSibling,a),t.length=a)}_$AR(e=this._$AA.nextSibling,t){for(this._$AP?.(!1,!0,t);e!==this._$AB;){let o=e.nextSibling;e.remove(),e=o}}setConnected(e){this._$AM===void 0&&(this._$Cv=e,this._$AP?.(e))}},J=class{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(e,t,o,a,i){this.type=1,this._$AH=x,this._$AN=void 0,this.element=e,this.name=t,this._$AM=a,this.options=i,o.length>2||o[0]!==""||o[1]!==""?(this._$AH=Array(o.length-1).fill(new String),this.strings=o):this._$AH=x}_$AI(e,t=this,o,a){let i=this.strings,s=!1;if(i===void 0)e=V(this,e,t,0),s=!he(e)||e!==this._$AH&&e!==C,s&&(this._$AH=e);else{let n=e,c,p;for(e=i[0],c=0;c<i.length-1;c++)p=V(this,n[o+c],t,c),p===C&&(p=this._$AH[c]),s||=!he(p)||p!==this._$AH[c],p===x?e=x:e!==x&&(e+=(p??"")+i[c+1]),this._$AH[c]=p}s&&!a&&this.j(e)}j(e){e===x?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,e??"")}},Ae=class extends J{constructor(){super(...arguments),this.type=3}j(e){this.element[this.name]=e===x?void 0:e}},Te=class extends J{constructor(){super(...arguments),this.type=4}j(e){this.element.toggleAttribute(this.name,!!e&&e!==x)}},ze=class extends J{constructor(e,t,o,a,i){super(e,t,o,a,i),this.type=5}_$AI(e,t=this){if((e=V(this,e,t,0)??x)===C)return;let o=this._$AH,a=e===x&&o!==x||e.capture!==o.capture||e.once!==o.once||e.passive!==o.passive,i=e!==x&&(o===x||a);a&&this.element.removeEventListener(this.name,this,o),i&&this.element.addEventListener(this.name,this,e),this._$AH=e}handleEvent(e){typeof this._$AH=="function"?this._$AH.call(this.options?.host??this.element,e):this._$AH.handleEvent(e)}},Le=class{constructor(e,t,o){this.element=e,this.type=6,this._$AN=void 0,this._$AM=t,this.options=o}get _$AU(){return this._$AM._$AU}_$AI(e){V(this,e)}},Ft={M:Ke,P:I,A:Ye,C:1,L:Rt,R:Ee,D:_t,V,I:te,H:J,N:Te,U:ze,B:Ae,F:Le},_r=Je.litHtmlPolyfillSupport;_r?.(ge,te),(Je.litHtmlVersions??=[]).push("3.3.1");var N=(r,e,t)=>{let o=t?.renderBefore??e,a=o._$litPart$;if(a===void 0){let i=t?.renderBefore??null;o._$litPart$=a=new te(e.insertBefore(ue(),i),i,void 0,t??{})}return a._$AI(r),a};var et=globalThis,M=class extends F{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){let e=super.createRenderRoot();return this.renderOptions.renderBefore??=e.firstChild,e}update(e){let t=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(e),this._$Do=N(t,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return C}};M._$litElement$=!0,M.finalized=!0,et.litElementHydrateSupport?.({LitElement:M});var Mr=et.litElementPolyfillSupport;Mr?.({LitElement:M});(et.litElementVersions??=[]).push("4.2.1");var B={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},A=r=>(...e)=>({_$litDirective$:r,values:e}),z=class{constructor(e){}get _$AU(){return this._$AM._$AU}_$AT(e,t,o){this._$Ct=e,this._$AM=t,this._$Ci=o}_$AS(e,t){return this.update(e,t)}update(e,t){return this.render(...t)}};var{I:Dr}=Ft,Nt=r=>r===null||typeof r!="object"&&typeof r!="function";var Bt=r=>r.strings===void 0,It=()=>document.createComment(""),re=(r,e,t)=>{let o=r._$AA.parentNode,a=e===void 0?r._$AB:e._$AA;if(t===void 0){let i=o.insertBefore(It(),a),s=o.insertBefore(It(),a);t=new Dr(i,s,r,r.options)}else{let i=t._$AB.nextSibling,s=t._$AM,n=s!==r;if(n){let c;t._$AQ?.(r),t._$AM=r,t._$AP!==void 0&&(c=r._$AU)!==s._$AU&&t._$AP(c)}if(i!==a||n){let c=t._$AA;for(;c!==i;){let p=c.nextSibling;o.insertBefore(c,a),c=p}}}return t},O=(r,e,t=r)=>(r._$AI(e,t),r),Pr={},Me=(r,e=Pr)=>r._$AH=e,Ot=r=>r._$AH,De=r=>{r._$AR(),r._$AA.remove()};var jt=(r,e,t)=>{let o=new Map;for(let a=e;a<=t;a++)o.set(r[a],a);return o},Io=A(class extends z{constructor(r){if(super(r),r.type!==B.CHILD)throw Error("repeat() can only be used in text expressions")}dt(r,e,t){let o;t===void 0?t=e:e!==void 0&&(o=e);let a=[],i=[],s=0;for(let n of r)a[s]=o?o(n,s):s,i[s]=t(n,s),s++;return{values:i,keys:a}}render(r,e,t){return this.dt(r,e,t).values}update(r,[e,t,o]){let a=Ot(r),{values:i,keys:s}=this.dt(e,t,o);if(!Array.isArray(a))return this.ut=s,i;let n=this.ut??=[],c=[],p,d,l=0,h=a.length-1,g=0,y=i.length-1;for(;l<=h&&g<=y;)if(a[l]===null)l++;else if(a[h]===null)h--;else if(n[l]===s[g])c[g]=O(a[l],i[g]),l++,g++;else if(n[h]===s[y])c[y]=O(a[h],i[y]),h--,y--;else if(n[l]===s[y])c[y]=O(a[l],i[y]),re(r,c[y+1],a[l]),l++,y--;else if(n[h]===s[g])c[g]=O(a[h],i[g]),re(r,a[l],a[h]),h--,g++;else if(p===void 0&&(p=jt(s,g,y),d=jt(n,l,h)),p.has(n[l]))if(p.has(n[h])){let k=d.get(s[g]),f=k!==void 0?a[k]:null;if(f===null){let $=re(r,a[l]);O($,i[g]),c[g]=$}else c[g]=O(f,i[g]),re(r,a[l],f),a[k]=null;g++}else De(a[h]),h--;else De(a[l]),l++;for(;g<=y;){let k=re(r,c[y+1]);O(k,i[g]),c[g++]=k}for(;l<=h;){let k=a[l++];k!==null&&De(k)}return this.ut=s,Me(r,c),C}});var qo=A(class extends z{constructor(){super(...arguments),this.key=x}render(r,e){return this.key=r,e}update(r,[e,t]){return e!==this.key&&(Me(r),this.key=e),t}});var Qo=A(class extends z{constructor(r){if(super(r),r.type!==B.ATTRIBUTE||r.name!=="class"||r.strings?.length>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(r){return" "+Object.keys(r).filter(e=>r[e]).join(" ")+" "}update(r,[e]){if(this.st===void 0){this.st=new Set,r.strings!==void 0&&(this.nt=new Set(r.strings.join(" ").split(/\s/).filter(o=>o!=="")));for(let o in e)e[o]&&!this.nt?.has(o)&&this.st.add(o);return this.render(e)}let t=r.element.classList;for(let o of this.st)o in e||(t.remove(o),this.st.delete(o));for(let o in e){let a=!!e[o];a===this.st.has(o)||this.nt?.has(o)||(a?(t.add(o),this.st.add(o)):(t.remove(o),this.st.delete(o)))}return C}});var me=(r,e)=>{let t=r._$AN;if(t===void 0)return!1;for(let o of t)o._$AO?.(e,!1),me(o,e);return!0},Pe=r=>{let e,t;do{if((e=r._$AM)===void 0)break;t=e._$AN,t.delete(r),r=e}while(t?.size===0)},Ht=r=>{for(let e;e=r._$AM;r=e){let t=e._$AN;if(t===void 0)e._$AN=t=new Set;else if(t.has(r))break;t.add(r),Ir(e)}};function Rr(r){this._$AN!==void 0?(Pe(this),this._$AM=r,Ht(this)):this._$AM=r}function Fr(r,e=!1,t=0){let o=this._$AH,a=this._$AN;if(a!==void 0&&a.size!==0)if(e)if(Array.isArray(o))for(let i=t;i<o.length;i++)me(o[i],!1),Pe(o[i]);else o!=null&&(me(o,!1),Pe(o));else me(this,r)}var Ir=r=>{r.type==B.CHILD&&(r._$AP??=Fr,r._$AQ??=Rr)},oe=class extends z{constructor(){super(...arguments),this._$AN=void 0}_$AT(e,t,o){super._$AT(e,t,o),Ht(this),this.isConnected=e._$AU}_$AO(e,t=!0){e!==this.isConnected&&(this.isConnected=e,e?this.reconnected?.():this.disconnected?.()),t&&(me(this,e),Pe(this))}setValue(e){if(Bt(this._$Ct))this._$Ct._$AI(e,this);else{let t=[...this._$Ct._$AH];t[this._$Ci]=e,this._$Ct._$AI(t,this,0)}}disconnected(){}reconnected(){}};var tt=new WeakMap,Nr=A(class extends oe{render(r){return x}update(r,[e]){let t=e!==this.G;return t&&this.G!==void 0&&this.rt(void 0),(t||this.lt!==this.ct)&&(this.G=e,this.ht=r.options?.host,this.rt(this.ct=r.element)),x}rt(r){if(this.isConnected||(r=void 0),typeof this.G=="function"){let e=this.ht??globalThis,t=tt.get(e);t===void 0&&(t=new WeakMap,tt.set(e,t)),t.get(this.G)!==void 0&&this.G.call(this.ht,void 0),t.set(this.G,r),r!==void 0&&this.G.call(this.ht,r)}else this.G.value=r}get lt(){return typeof this.G=="function"?tt.get(this.ht??globalThis)?.get(this.G):this.G?.value}disconnected(){this.lt===this.ct&&this.rt(void 0)}reconnected(){this.rt(this.ct)}});var Re=class{constructor(e){this.G=e}disconnect(){this.G=void 0}reconnect(e){this.G=e}deref(){return this.G}},Fe=class{constructor(){this.Y=void 0,this.Z=void 0}get(){return this.Y}pause(){this.Y??=new Promise(e=>this.Z=e)}resume(){this.Z?.(),this.Y=this.Z=void 0}};var Wt=r=>!Nt(r)&&typeof r.then=="function",Ut=1073741823,rt=class extends oe{constructor(){super(...arguments),this._$Cwt=Ut,this._$Cbt=[],this._$CK=new Re(this),this._$CX=new Fe}render(...e){return e.find(t=>!Wt(t))??C}update(e,t){let o=this._$Cbt,a=o.length;this._$Cbt=t;let i=this._$CK,s=this._$CX;this.isConnected||this.disconnected();for(let n=0;n<t.length&&!(n>this._$Cwt);n++){let c=t[n];if(!Wt(c))return this._$Cwt=n,c;n<a&&c===o[n]||(this._$Cwt=Ut,a=0,Promise.resolve(c).then(async p=>{for(;s.get();)await s.get();let d=i.deref();if(d!==void 0){let l=d._$Cbt.indexOf(c);l>-1&&l<d._$Cwt&&(d._$Cwt=l,d.setValue(p))}}))}return C}disconnected(){this._$CK.disconnect(),this._$CX.pause()}reconnected(){this._$CK.reconnect(this),this._$CX.resume()}},Br=A(rt);var K=class extends z{constructor(e){if(super(e),this.it=x,e.type!==B.CHILD)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(e){if(e===x||e==null)return this._t=void 0,this.it=e;if(e===C)return e;if(typeof e!="string")throw Error(this.constructor.directiveName+"() called with a non-string value");if(e===this.it)return this._t;this.it=e;let t=[e];return t.raw=t,this._t={_$litType$:this.constructor.resultType,strings:t,values:[]}}};K.directiveName="unsafeHTML",K.resultType=1;var Ie=A(K);var fe=class extends K{};fe.directiveName="unsafeSVG",fe.resultType=2;var Or=A(fe);var Ia=["127.0.0.1","localhost"].includes(window.location.hostname);var jr=Symbol.for(""),Hr=r=>{if(r?.r===jr)return r?._$litStatic$};var qt=new Map,ot=r=>(e,...t)=>{let o=t.length,a,i,s=[],n=[],c,p=0,d=!1;for(;p<o;){for(c=e[p];p<o&&(i=t[p],(a=Hr(i))!==void 0);)c+=a+e[++p],d=!0;p!==o&&n.push(i),s.push(c),p++}if(p===o&&s.push(e[o]),d){let l=s.join("$$lit$$");(e=qt.get(l))===void 0&&(s.raw=s,qt.set(l,e=s)),t=n}return r(e,...t)},Wr=ot(_e),Oa=ot(Xe),ja=ot(Dt);var S=_e;var u={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"}};var j={"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:u.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:u.RadiusSizes.small,borderWidth:u.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:u.RadiusSizes.xlarge,borderWidth:u.BorderWidths.medium},behavior:{transitionSpeed:u.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:u.RadiusSizes.none,borderWidth:u.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:u.RadiusSizes.xxlarge,borderWidth:u.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:u.RadiusSizes.none,borderWidth:u.BorderWidths.thick},behavior:{transitionSpeed:u.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:u.RadiusSizes.medium,borderWidth:u.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:u.RadiusSizes.small,borderWidth:u.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:u.RadiusSizes.medium,borderWidth:u.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:u.RadiusSizes.small,borderWidth:u.BorderWidths.thick},behavior:{transitionSpeed:u.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:u.LineHeights.relaxed},spatialRhythm:{baseUnit:6,scaleRatio:1.4},shape:{radiusSize:u.RadiusSizes.xxlarge,borderWidth:u.BorderWidths.thin},behavior:{transitionSpeed:u.TransitionSpeeds.slow,animationEasing:u.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:u.RadiusSizes.none,borderWidth:u.BorderWidths.thick},behavior:{transitionSpeed:u.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:u.RadiusSizes.large,borderWidth:u.BorderWidths.medium},behavior:{transitionSpeed:u.TransitionSpeeds.normal,animationEasing:u.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:u.LineHeights.tight},spatialRhythm:{baseUnit:4,scaleRatio:1.25,containerPadding:1.25,sectionSpacing:2.5},shape:{radiusSize:u.RadiusSizes.large,borderWidth:u.BorderWidths.thin},layers:{shadowDepth:"medium",blurMedium:12},behavior:{transitionSpeed:u.TransitionSpeeds.fast,animationEasing:u.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:u.LineHeights.relaxed},spatialRhythm:{baseUnit:4,scaleRatio:1.25,containerMaxWidth:1440,containerPadding:1.5,sectionSpacing:3},shape:{radiusSize:u.RadiusSizes.medium,borderWidth:u.BorderWidths.thin},layers:{shadowDepth:"light",blurLight:8},behavior:{transitionSpeed:u.TransitionSpeeds.normal,animationEasing:u.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:u.RadiusSizes.small,borderWidth:u.BorderWidths.medium},behavior:{transitionSpeed:u.TransitionSpeeds.fast,animationEasing:u.AnimationEasings["ease-out"],focusRingWidth:3},a11y:{minTouchTarget:u.TouchTargetSizes.comfortable,focusStyle:u.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:u.RadiusSizes.medium,borderWidth:u.BorderWidths.thin},layers:{shadowDepth:"light",blurLight:6},behavior:{transitionSpeed:u.TransitionSpeeds.fast,animationEasing:u.AnimationEasings["ease-in-out"],focusRingWidth:3,focusRingOpacity:.4},a11y:{minTouchTarget:u.TouchTargetSizes.standard,focusStyle:u.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:u.LineHeights.relaxed},spatialRhythm:{baseUnit:4,scaleRatio:1.25,containerMaxWidth:680,sectionSpacing:1.5},shape:{radiusSize:u.RadiusSizes.medium,borderWidth:u.BorderWidths.thin},behavior:{transitionSpeed:u.TransitionSpeeds.fast,animationEasing:u.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:u.LineHeights.tight},spatialRhythm:{baseUnit:4,scaleRatio:1.2,containerMaxWidth:1600,containerPadding:1.5,sectionSpacing:2},shape:{radiusSize:u.RadiusSizes.small,borderWidth:u.BorderWidths.thin},layers:{shadowDepth:"light",blurLight:4},behavior:{transitionSpeed:u.TransitionSpeeds.fast,animationEasing:u.AnimationEasings["ease-in-out"],focusRingWidth:2},layout:{densityCompact:.85,gridColumns:12}}};j.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:u.FontWeights.light,fontWeightNormal:u.FontWeights.normal,fontWeightMedium:u.FontWeights.medium,fontWeightSemibold:u.FontWeights.semibold,fontWeightBold:u.FontWeights.bold,lineHeightTight:u.LineHeights.tight,lineHeightNormal:u.LineHeights.normal,lineHeightRelaxed:u.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:u.RadiusSizes.large,borderWidth:u.BorderWidths.medium,customRadius:null},behavior:{transitionSpeed:u.TransitionSpeeds.normal,animationEasing:u.AnimationEasings["ease-out"],customTransitionSpeed:null,customEasing:null,focusRingWidth:3,focusRingOpacity:.3,hoverOpacity:.8},layout:{gridColumns:12,gridGutter:1,breakpoints:{sm:640,md:768,lg:1024,xl:1280},densityCompact:.8,densityNormal:1,densityComfortable:1.2,buttonMinHeight:u.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:u.LinkStyles.inline,colorDerivation:"hsl"},a11y:{minTouchTarget:u.TouchTargetSizes.standard,prefersReducedMotion:!0,focusStyle:u.FocusStyles.ring},icons:{set:"phosphor",weight:"regular",defaultSize:24,externalPath:"/assets/img/icons/",sizes:{xs:16,sm:20,md:24,lg:32,xl:48,"2xl":64},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 at={meta:{name:"Pure Design System Ontology",version:"1.0.0",description:"Complete metadata registry for PDS primitives, components, utilities, and tokens"},tokens:{colors:{semantic:["primary","secondary","accent","success","warning","danger","info"],neutral:["gray"],shades:[50,100,200,300,400,500,600,700,800,900,950],surface:["base","subtle","elevated","sunken","overlay","inverse","translucent"],text:["default","muted","subtle","inverse","primary","success","warning","danger","info"]},spacing:{scale:["1","2","3","4","5","6","8","10","12","16","20","24"],semantic:["xs","sm","md","lg","xl"]},typography:{families:["heading","body","mono"],sizes:["xs","sm","base","lg","xl","2xl","3xl","4xl","5xl"],weights:["light","normal","medium","semibold","bold"]},radius:{scale:["none","sm","base","md","lg","xl","2xl","full"]},shadows:{scale:["none","sm","base","md","lg","xl","inner"]},themes:["light","dark"],breakpoints:{sm:640,md:768,lg:1024,xl:1280}},primitives:[{id:"badge",name:"Badge / Pill",description:"Inline status indicators and labels",selectors:[".badge",".badge-primary",".badge-secondary",".badge-success",".badge-info",".badge-warning",".badge-danger",".badge-outline",".badge-sm",".badge-lg",".pill",".tag",".chip"],tags:["status","label","indicator","inline"],category:"feedback"},{id:"card",name:"Card",description:"Content container with padding, border-radius, and optional shadow",selectors:[".card",".card-basic",".card-elevated",".card-outlined",".card-interactive"],tags:["container","content","grouping"],category:"container"},{id:"surface",name:"Surface",description:"Smart surface classes with automatic text/background color handling",selectors:[".surface-base",".surface-subtle",".surface-elevated",".surface-sunken",".surface-overlay",".surface-inverse",".surface-translucent",".surface-translucent-25",".surface-translucent-50",".surface-translucent-75",".surface-primary",".surface-secondary",".surface-success",".surface-warning",".surface-danger",".surface-info"],tags:["background","theming","color","container"],category:"theming"},{id:"alert",name:"Alert",description:"Contextual feedback messages",selectors:[".alert",".alert-info",".alert-success",".alert-warning",".alert-danger",".alert-error",".alert-dismissible",".semantic-message"],tags:["feedback","message","notification","status"],category:"feedback"},{id:"dialog",name:"Dialog",description:"Modal dialog element",selectors:["dialog",".dialog"],tags:["modal","overlay","popup","modal"],category:"overlay"},{id:"divider",name:"Divider",description:"Horizontal rule with optional label",selectors:["hr","hr[data-content]"],tags:["separator","line","content-divider"],category:"layout"},{id:"table",name:"Table",description:"Data tables with responsive and styling variants",selectors:["table",".table-responsive",".table-striped",".table-bordered",".table-compact",".data-table"],tags:["data","grid","tabular","responsive"],category:"data"},{id:"button",name:"Button",description:"Interactive button element with variants",selectors:["button",".btn-primary",".btn-secondary",".btn-outline",".btn-sm",".btn-xs",".btn-lg",".btn-working",".icon-only"],tags:["interactive","action","cta","form"],category:"action"},{id:"fieldset",name:"Fieldset Group",description:"Form field grouping for radio/checkbox groups",selectors:["fieldset[role='group']","fieldset[role='radiogroup']","fieldset.buttons"],tags:["form","grouping","radio","checkbox"],category:"form"},{id:"label-field",name:"Label+Input",description:"Semantic label wrapping form input",selectors:["label","label:has(input)","label:has(select)","label:has(textarea)"],tags:["form","input","accessibility"],category:"form"},{id:"accordion",name:"Accordion",description:"Collapsible content sections",selectors:[".accordion",".accordion-item","details","details > summary"],tags:["expandable","collapsible","disclosure"],category:"disclosure"},{id:"icon",name:"Icon",description:"SVG icon element with size and color variants",selectors:["pds-icon",".icon-xs",".icon-sm",".icon-md",".icon-lg",".icon-xl",".icon-primary",".icon-secondary",".icon-accent",".icon-success",".icon-warning",".icon-danger",".icon-info",".icon-muted",".icon-subtle",".icon-text",".icon-text-start",".icon-text-end"],tags:["graphic","symbol","visual"],category:"media"},{id:"figure",name:"Figure/Media",description:"Figure element for images with captions",selectors:["figure","figure.media","figcaption"],tags:["image","media","caption"],category:"media"},{id:"gallery",name:"Gallery",description:"Image gallery grid",selectors:[".gallery",".gallery-grid",".img-gallery"],tags:["images","grid","collection"],category:"media"},{id:"form",name:"Form Container",description:"Form styling and layout",selectors:["form",".form-container",".form-actions",".field-description"],tags:["form","input","submission"],category:"form"},{id:"navigation",name:"Navigation",description:"Navigation elements and menus",selectors:["nav","nav[data-dropdown]","menu","nav menu li"],tags:["menu","links","routing"],category:"navigation"}],components:[{id:"pds-tabstrip",name:"Tab Strip",description:"Tabbed interface component",selectors:["pds-tabstrip"],tags:["tabs","navigation","panels"],category:"navigation"},{id:"pds-drawer",name:"Drawer",description:"Slide-out panel overlay",selectors:["pds-drawer"],tags:["panel","overlay","sidebar"],category:"overlay"},{id:"pds-upload",name:"Upload",description:"File upload component with drag-and-drop",selectors:["pds-upload"],tags:["file","upload","drag-drop","form"],category:"form"},{id:"pds-icon",name:"Icon",description:"SVG icon web component",selectors:["pds-icon"],tags:["icon","graphic","svg"],category:"media"},{id:"pds-toaster",name:"Toaster",description:"Toast notification container",selectors:["pds-toaster"],tags:["notification","toast","feedback"],category:"feedback"},{id:"pds-form",name:"JSON Form",description:"Auto-generated form from JSON Schema",selectors:["pds-form"],tags:["form","schema","auto-generate"],category:"form"},{id:"pds-splitpanel",name:"Split Panel",description:"Resizable split pane layout",selectors:["pds-splitpanel"],tags:["layout","resize","panels"],category:"layout"},{id:"pds-scrollrow",name:"Scroll Row",description:"Horizontal scrolling row with snap points",selectors:["pds-scrollrow"],tags:["scroll","horizontal","carousel"],category:"layout"},{id:"pds-richtext",name:"Rich Text",description:"Rich text editor component",selectors:["pds-richtext"],tags:["editor","wysiwyg","text"],category:"form"},{id:"pds-calendar",name:"Calendar",description:"Date picker calendar component",selectors:["pds-calendar"],tags:["date","picker","calendar"],category:"form"}],layoutPatterns:[{id:"container",name:"Container",description:"Centered max-width wrapper with padding",selectors:[".container"],tags:["wrapper","centered","max-width","page"],category:"structure"},{id:"grid",name:"Grid",description:"CSS Grid layout container",selectors:[".grid"],tags:["layout","columns","css-grid"],category:"layout"},{id:"grid-cols",name:"Grid Columns",description:"Fixed column count grids",selectors:[".grid-cols-1",".grid-cols-2",".grid-cols-3",".grid-cols-4",".grid-cols-6"],tags:["columns","fixed","grid"],category:"layout"},{id:"grid-auto",name:"Auto-fit Grid",description:"Responsive auto-fit grid with minimum widths",selectors:[".grid-auto-sm",".grid-auto-md",".grid-auto-lg",".grid-auto-xl"],tags:["responsive","auto-fit","fluid"],category:"layout"},{id:"flex",name:"Flex Container",description:"Flexbox layout with direction and wrap modifiers",selectors:[".flex",".flex-wrap",".flex-col",".flex-row"],tags:["flexbox","layout","alignment"],category:"layout"},{id:"grow",name:"Flex Grow",description:"Fill remaining flex space",selectors:[".grow"],tags:["flex","expand","fill"],category:"layout"},{id:"stack",name:"Stack",description:"Vertical flex layout with predefined gaps",selectors:[".stack-sm",".stack-md",".stack-lg",".stack-xl"],tags:["vertical","spacing","column"],category:"layout"},{id:"gap",name:"Gap",description:"Spacing between flex/grid children",selectors:[".gap-0",".gap-xs",".gap-sm",".gap-md",".gap-lg",".gap-xl"],tags:["spacing","margin","gutters"],category:"spacing"},{id:"items",name:"Items Alignment",description:"Cross-axis alignment for flex/grid",selectors:[".items-start",".items-center",".items-end",".items-stretch",".items-baseline"],tags:["alignment","vertical","cross-axis"],category:"alignment"},{id:"justify",name:"Justify Content",description:"Main-axis alignment for flex/grid",selectors:[".justify-start",".justify-center",".justify-end",".justify-between",".justify-around",".justify-evenly"],tags:["alignment","horizontal","main-axis"],category:"alignment"},{id:"max-width",name:"Max-Width",description:"Content width constraints",selectors:[".max-w-sm",".max-w-md",".max-w-lg",".max-w-xl"],tags:["width","constraint","readable"],category:"sizing"},{id:"section",name:"Section Spacing",description:"Vertical padding for content sections",selectors:[".section",".section-lg"],tags:["spacing","vertical","padding"],category:"spacing"},{id:"mobile-stack",name:"Mobile Stack",description:"Stack on mobile, row on desktop",selectors:[".mobile-stack"],tags:["responsive","mobile","breakpoint"],category:"responsive"}],utilities:{text:{alignment:[".text-left",".text-center",".text-right"],color:[".text-muted"],overflow:[".truncate"]},backdrop:{base:[".backdrop"],variants:[".backdrop-light",".backdrop-dark"],blur:[".backdrop-blur-sm",".backdrop-blur-md",".backdrop-blur-lg"]},shadow:{scale:[".shadow-sm",".shadow-base",".shadow-md",".shadow-lg",".shadow-xl",".shadow-inner",".shadow-none"]},border:{gradient:[".border-gradient",".border-gradient-primary",".border-gradient-accent",".border-gradient-secondary",".border-gradient-soft",".border-gradient-medium",".border-gradient-strong"],glow:[".border-glow",".border-glow-sm",".border-glow-lg",".border-glow-primary",".border-glow-accent",".border-glow-success",".border-glow-warning",".border-glow-danger"],combined:[".border-gradient-glow"]},media:{image:[".img-gallery",".img-rounded-sm",".img-rounded-md",".img-rounded-lg",".img-rounded-xl",".img-rounded-full",".img-inline"],video:[".video-responsive"],figure:[".figure-responsive"]},effects:{glass:[".liquid-glass"]}},responsive:{prefixes:["sm","md","lg"],utilities:{grid:[":grid-cols-2",":grid-cols-3",":grid-cols-4"],flex:[":flex-row"],text:[":text-sm",":text-lg",":text-xl"],spacing:[":p-6",":p-8",":p-12",":gap-6",":gap-8",":gap-12"],width:[":w-1/2",":w-1/3",":w-1/4"],display:[":hidden",":block"]}},enhancements:[{id:"dropdown",selector:"nav[data-dropdown]",description:"Dropdown menu from nav element",tags:["menu","interactive","navigation"]},{id:"toggle",selector:"label[data-toggle]",description:"Toggle switch from checkbox",tags:["switch","boolean","form"]},{id:"range",selector:'input[type="range"]',description:"Enhanced range slider with output",tags:["slider","input","form"]},{id:"required",selector:"form [required]",description:"Required field asterisk indicator",tags:["validation","form","accessibility"]},{id:"open-group",selector:"fieldset[role=group][data-open]",description:"Editable checkbox/radio group",tags:["form","dynamic","editable"]},{id:"working-button",selector:"button.btn-working, a.btn-working",description:"Button with loading spinner",tags:["loading","async","feedback"]},{id:"labeled-divider",selector:"hr[data-content]",description:"Horizontal rule with centered label",tags:["divider","separator","text"]}],categories:{feedback:{description:"User feedback and status indicators",primitives:["alert","badge"],components:["pds-toaster"]},form:{description:"Form inputs and controls",primitives:["button","fieldset","label-field","form"],components:["pds-upload","pds-form","pds-richtext","pds-calendar"]},layout:{description:"Page structure and content arrangement",patterns:["container","grid","flex","stack","section"],components:["pds-splitpanel","pds-scrollrow"]},navigation:{description:"Navigation and routing",primitives:["navigation"],components:["pds-tabstrip","pds-drawer"]},media:{description:"Images, icons, and visual content",primitives:["icon","figure","gallery"],components:["pds-icon"]},overlay:{description:"Modal and overlay content",primitives:["dialog"],components:["pds-drawer"]},data:{description:"Data display and tables",primitives:["table"]},theming:{description:"Colors, surfaces, and visual theming",primitives:["surface"]}},styles:{typography:["headings","body","code","links"],icons:{source:"svg",sets:["core","brand"]},interactive:["focus","hover","active","disabled"],states:["success","warning","danger","info","muted"]},searchRelations:{text:["typography","truncate","text-muted","text-primary","text-left","text-center","text-right","pds-richtext","heading","font","label","paragraph","content","ellipsis","overflow","input"],font:["typography","text","heading","font-size","font-weight","font-family"],type:["typography","text","font"],typography:["text","font","heading","truncate","text-muted"],heading:["typography","text","font-size","h1","h2","h3"],truncate:["text","overflow","ellipsis","clamp","nowrap","typography"],ellipsis:["truncate","text","overflow","clamp"],overflow:["truncate","scroll","hidden","text"],paragraph:["text","typography","content","body"],content:["text","typography","body","article"],form:["input","field","label","button","fieldset","pds-form","pds-upload","pds-richtext","pds-calendar","required","validation","submit"],input:["form","field","text","label","required","validation"],field:["form","input","label","required"],button:["btn","interactive","action","submit","form","btn-primary","btn-secondary","btn-working"],btn:["button","interactive","action"],toggle:["switch","checkbox","boolean","form","interactive"],switch:["toggle","checkbox","boolean"],slider:["range","input","form"],range:["slider","input","form"],checkbox:["toggle","form","fieldset","boolean"],radio:["fieldset","form","group"],select:["dropdown","form","input","menu"],upload:["file","pds-upload","form","drag-drop"],file:["upload","pds-upload","form"],modal:["dialog","pds-ask","overlay","popup","backdrop","pds-drawer","alert","confirm","prompt","lightbox"],dialog:["modal","pds-ask","overlay","popup","backdrop","alert","confirm","prompt"],popup:["modal","dialog","dropdown","popover","overlay","tooltip"],popover:["popup","tooltip","overlay"],overlay:["modal","dialog","backdrop","drawer","popup"],drawer:["pds-drawer","sidebar","panel","overlay","modal"],backdrop:["overlay","modal","dialog","blur"],confirm:["pds-ask","dialog","modal"],prompt:["pds-ask","dialog","modal","input"],ask:["pds-ask","dialog","confirm","prompt","modal"],dropdown:["menu","nav-dropdown","select","popover"],menu:["dropdown","navigation","nav","list"],nav:["navigation","menu","dropdown","tabs","links"],navigation:["nav","menu","tabs","pds-tabstrip","links","routing"],tabs:["pds-tabstrip","navigation","panels"],tab:["tabs","pds-tabstrip","panel"],link:["navigation","anchor","href","routing"],alert:["notification","feedback","message","status","toast","modal","dialog","pds-ask","confirm","warning","error","info","success","danger"],notification:["alert","toast","pds-toaster","feedback","message","popup"],toast:["pds-toaster","notification","alert","feedback","popup","snackbar"],feedback:["alert","notification","toast","status","badge","validation","error","success"],message:["alert","notification","feedback","dialog","toast"],status:["badge","alert","indicator","feedback","state"],error:["alert","danger","validation","feedback","warning"],success:["alert","feedback","badge","status","check"],warning:["alert","caution","feedback","status"],info:["alert","information","feedback","status"],danger:["alert","error","feedback","destructive","delete"],badge:["status","pill","tag","chip","indicator","label"],pill:["badge","tag","chip"],tag:["badge","pill","chip","label"],chip:["badge","pill","tag"],layout:["grid","flex","stack","container","gap","spacing","pds-splitpanel","section"],grid:["layout","columns","css-grid","table","gallery"],flex:["layout","flexbox","alignment","row","column"],stack:["layout","vertical","spacing","column","gap"],container:["wrapper","layout","max-width","centered"],gap:["spacing","margin","padding","layout"],spacing:["gap","margin","padding","section"],section:["spacing","layout","container","page"],split:["pds-splitpanel","resizable","panels","layout"],panel:["pds-splitpanel","drawer","sidebar","section"],card:["surface","container","elevated","content"],surface:["card","background","elevated","theming","color"],box:["card","container","surface"],elevated:["surface","shadow","card"],color:["palette","theme","surface","primary","secondary","accent"],colours:["color","palette","theme"],palette:["color","theme","tokens"],theme:["color","palette","dark","light","surface"],primary:["color","button","badge","surface"],secondary:["color","button","badge","surface"],accent:["color","highlight","surface"],border:["border-gradient","border-glow","outline","radius"],effect:["border-gradient","border-glow","shadow","glass","animation"],gradient:["border-gradient","color","background"],glow:["border-glow","effect","shadow"],shadow:["elevated","effect","depth","card"],radius:["rounded","border","corner"],rounded:["radius","border","corner"],glass:["liquid-glass","backdrop","blur","effect"],icon:["pds-icon","graphic","symbol","svg","phosphor"],image:["img","figure","gallery","media","picture"],img:["image","figure","gallery","media"],figure:["image","media","caption"],gallery:["images","grid","collection","media"],media:["image","icon","figure","gallery","video"],table:["data","grid","tabular","rows","columns"],data:["table","json","form","display"],editor:["pds-richtext","wysiwyg","text","content"],wysiwyg:["editor","pds-richtext","richtext"],richtext:["pds-richtext","editor","wysiwyg","text"],calendar:["pds-calendar","date","picker","datepicker"],date:["calendar","pds-calendar","picker","input"],datepicker:["calendar","date","pds-calendar"],scroll:["pds-scrollrow","carousel","horizontal","overflow"],carousel:["scroll","pds-scrollrow","slider","gallery"],accordion:["details","collapsible","expandable","disclosure"],collapsible:["accordion","details","expandable"],expandable:["accordion","collapsible","disclosure"],details:["accordion","summary","disclosure"],divider:["hr","separator","line","rule"],separator:["divider","hr","line"],hr:["divider","separator","horizontal-rule"],interactive:["hover","focus","active","disabled","button","link"],hover:["interactive","effect","state"],focus:["interactive","accessibility","state","outline"],disabled:["interactive","state","muted"],loading:["btn-working","spinner","async","progress"],spinner:["loading","btn-working","progress"],accessibility:["a11y","aria","focus","label","required"],a11y:["accessibility","aria","semantic"],aria:["accessibility","a11y","role"],required:["form","validation","asterisk","input"],validation:["form","required","error","feedback"],start:["getting-started","intro","overview","whatispds"],intro:["getting-started","overview","start","docs"],getting:["getting-started","start","intro"],overview:["intro","start","summary","layout-overview"],docs:["documentation","reference","guide"],primitive:["primitives"],component:["components"],enhancement:["enhancements"],foundation:["foundations","color","icon","typography","spacing","tokens"],utility:["utilities","text","backdrop","shadow","border","helper"],pattern:["patterns","layout","responsive","mobile-stack"]}};var ae=class r{static#a;static get instance(){return this.#a}#e;#r;constructor(e={}){this.options={debug:!1,...e},this.options.design||(this.options.design={}),this.options.debug&&this.options.log?.("debug","Generator options:",this.options),r.#a=this,this.tokens=this.generateTokens(),this.options.debug&&this.options.log?.("debug","Generated tokens:",this.tokens),this.#fe(),typeof CSSStyleSheet<"u"?this.#xe():this.options.debug&&this.options.log?.("debug","[Generator] Skipping browser features (CSSStyleSheet not available)")}generateTokens(){let e=this.options.design||{};return{colors:this.#s(e.colors||{}),spacing:this.generateSpacingTokens(e.spatialRhythm||{}),radius:this.#L(e.shape||{}),borderWidths:this.#_(e.shape||{}),typography:this.generateTypographyTokens(e.typography||{}),shadows:this.#M(e.layers||{}),layout:this.#D(e.layout||{}),transitions:this.#P(e.behavior||{}),zIndex:this.#R(e.layers||{}),icons:this.#F(e.icons||{})}}#s(e){let{primary:t="#3b82f6",secondary:o="#64748b",accent:a="#ec4899",background:i="#ffffff",success:s=null,warning:n="#FFBF00",danger:c=null,info:p=null,darkMode:d={}}=e,l={primary:this.#o(t),secondary:this.#o(o),accent:this.#o(a),success:this.#o(s||this.#w(t)),warning:this.#o(n||a),danger:this.#o(c||this.#x(t)),info:this.#o(p||t),gray:this.#u(o),surface:this.#h(i)};return l.surface.fieldset=this.#k(l.surface),l.surfaceSmart=this.#y(l.surface),l.dark=this.#$(l,i,d),l.dark&&l.dark.surface&&(l.dark.surfaceSmart=this.#y(l.dark.surface)),l.interactive={light:{fill:this.#b(l.primary,4.5),text:l.primary[600]},dark:{fill:this.#b(l.dark.primary,4.5),text:this.#T(l.dark.primary,l.dark.surface.base,4.5)}},l}#o(e){let t=this.#i(e);return{50:this.#t(t.h,Math.max(t.s-10,10),Math.min(t.l+45,95)),100:this.#t(t.h,Math.max(t.s-5,15),Math.min(t.l+35,90)),200:this.#t(t.h,t.s,Math.min(t.l+25,85)),300:this.#t(t.h,t.s,Math.min(t.l+15,75)),400:this.#t(t.h,t.s,Math.min(t.l+5,65)),500:e,600:this.#t(t.h,t.s,Math.max(t.l-10,25)),700:this.#t(t.h,t.s,Math.max(t.l-20,20)),800:this.#t(t.h,t.s,Math.max(t.l-30,15)),900:this.#t(t.h,t.s,Math.max(t.l-40,10))}}#w(e){let t=this.#i(e);return this.#t(120,Math.max(t.s,60),45)}#x(e){let t=this.#i(e);return this.#t(0,Math.max(t.s,70),50)}#u(e){let t=this.#i(e),o=t.h,a=Math.min(t.s,10);return{50:this.#t(o,a,98),100:this.#t(o,a,95),200:this.#t(o,a,88),300:this.#t(o,a,78),400:this.#t(o,a,60),500:e,600:this.#t(o,Math.min(a+5,15),45),700:this.#t(o,Math.min(a+8,18),35),800:this.#t(o,Math.min(a+10,20),20),900:this.#t(o,Math.min(a+12,22),10)}}#h(e){let t=this.#i(e);return{base:e,subtle:this.#t(t.h,Math.max(t.s,2),Math.max(t.l-2,2)),elevated:this.#t(t.h,Math.max(t.s,3),Math.max(t.l-4,5)),sunken:this.#t(t.h,Math.max(t.s,4),Math.max(t.l-6,8)),overlay:this.#t(t.h,Math.max(t.s,2),Math.min(t.l+2,98)),inverse:this.#g(e),hover:"color-mix(in oklab, var(--color-surface-base) 92%, var(--color-text-primary) 8%);"}}#k(e){return{base:e.subtle,subtle:e.elevated,elevated:e.sunken,sunken:this.#S(e.sunken,.05),overlay:e.elevated}}#S(e,t=.05){let o=this.#i(e),a=Math.max(o.l-o.l*t,5);return this.#t(o.h,o.s,a)}#g(e){let t=this.#i(e);if(t.l>50){let o=Math.min(t.s+5,25),a=Math.max(12-(t.l-50)*.1,8);return this.#t(t.h,o,a)}else{let o=Math.max(t.s-10,5),a=Math.min(85+(50-t.l)*.3,95);return this.#t(t.h,o,a)}}#$(e,t="#ffffff",o={}){let a=o.background?o.background:this.#g(t),i=this.#h(a),s=o.primary?this.#o(o.primary):this.#n(e.primary);return{surface:{...i,fieldset:this.#A(i)},primary:s,secondary:o.secondary?this.#o(o.secondary):this.#n(e.secondary),accent:o.accent?this.#o(o.accent):this.#n(e.accent),gray:o.secondary?this.#u(o.secondary):e.gray,success:this.#n(e.success),info:this.#n(e.info),warning:this.#n(e.warning),danger:this.#n(e.danger)}}#l(e){let t=String(e||"").replace("#",""),o=t.length===3?t.split("").map(i=>i+i).join(""):t,a=parseInt(o,16);return{r:a>>16&255,g:a>>8&255,b:a&255}}#p(e){let{r:t,g:o,b:a}=this.#l(e),i=[t/255,o/255,a/255].map(s=>s<=.03928?s/12.92:Math.pow((s+.055)/1.055,2.4));return .2126*i[0]+.7152*i[1]+.0722*i[2]}#d(e,t){let o=this.#p(e),a=this.#p(t),i=Math.max(o,a),s=Math.min(o,a);return(i+.05)/(s+.05)}#m(e,t=4.5){if(!e)return"#000000";let o="#ffffff",a="#000000",i=this.#d(e,o);if(i>=t)return o;let s=this.#d(e,a);return s>=t||s>i?a:o}#f(e,t=1){let{r:o,g:a,b:i}=this.#l(e);return`rgba(${o}, ${a}, ${i}, ${t})`}#C(e,t,o=.5){let a=this.#l(e),i=this.#l(t),s=Math.round(a.r+(i.r-a.r)*o),n=Math.round(a.g+(i.g-a.g)*o),c=Math.round(a.b+(i.b-a.b)*o);return this.#E(s,n,c)}#E(e,t,o){let a=i=>{let s=Math.max(0,Math.min(255,Math.round(i))).toString(16);return s.length===1?"0"+s:s};return`#${a(e)}${a(t)}${a(o)}`}#A(e){return{base:e.elevated,subtle:e.overlay,elevated:this.#v(e.elevated,.08),sunken:e.elevated,overlay:this.#v(e.overlay,.05)}}#T(e={},t="#000000",o=4.5){let a=["600","700","800","500","400","900","300","200"],i={shade:null,color:null,ratio:0};for(let s of a){let n=e?.[s];if(!n||typeof n!="string")continue;let c=this.#d(n,t);if(c>i.ratio&&(i={shade:s,color:n,ratio:c}),c>=o)return n}return i.color||e?.["600"]||e?.["500"]}#b(e={},t=4.5){let o=["600","700","800","500","400","900"],a={shade:null,color:null,ratio:0};for(let i of o){let s=e?.[i];if(!s||typeof s!="string")continue;let n=this.#d(s,"#ffffff");if(n>a.ratio&&(a={shade:i,color:s,ratio:n}),n>=t)return s}return a.color||e?.["600"]||e?.["500"]}#y(e){let t={};return Object.entries(e).forEach(([o,a])=>{if(!a||typeof a!="string"||!a.startsWith("#"))return;let i=this.#p(a)<.5,s=this.#m(a,4.5),n=this.#m(a,3),c=this.#C(s,a,.4),p=s,d=c,l=i?"#ffffff":"#000000",h=i?.25:.1,g=this.#f(l,h),y=i?"#ffffff":"#000000",k=i?.15:.1,f=this.#f(y,k);t[o]={bg:a,text:s,textSecondary:n,textMuted:c,icon:p,iconSubtle:d,shadow:g,border:f,scheme:i?"dark":"light"}}),t}#v(e,t=.05){let o=this.#i(e),a=Math.min(o.l+(100-o.l)*t,95);return this.#t(o.h,o.s,a)}#n(e){let t={};return Object.entries({50:{source:"900",dimFactor:.8},100:{source:"800",dimFactor:.8},200:{source:"700",dimFactor:.8},300:{source:"600",dimFactor:.8},400:{source:"500",dimFactor:.85},500:{source:"400",dimFactor:.85},600:{source:"300",dimFactor:.85},700:{source:"200",dimFactor:.85},800:{source:"100",dimFactor:.95},900:{source:"50",dimFactor:.95}}).forEach(([a,i])=>{let s=e[i.source];t[a]=this.#z(s,i.dimFactor)}),t}#z(e,t=.8){let o=this.#i(e),a=Math.max(o.s*t,5),i=Math.max(o.l*t,5);return this.#t(o.h,a,i)}generateSpacingTokens(e){let{baseUnit:t=4,scaleRatio:o=1.25,maxSpacingSteps:a=12}=e,i=Number.isFinite(Number(t))?Number(t):4,s=Math.min(Number.isFinite(Number(a))?Number(a):12,12),n={0:"0"};for(let c=1;c<=s;c++)n[c]=`${i*c}px`;return n}#L(e){let{radiusSize:t="medium",customRadius:o=null}=e,a;o!=null?a=o:typeof t=="number"?a=t:typeof t=="string"?a=u.RadiusSizes[t]??u.RadiusSizes.medium:a=u.RadiusSizes.medium;let i=Number.isFinite(Number(a))?Number(a):u.RadiusSizes.medium;return{none:"0",xs:`${Number.isFinite(i*.25)?Math.round(i*.25):0}px`,sm:`${Number.isFinite(i*.5)?Math.round(i*.5):0}px`,md:`${i}px`,lg:`${Number.isFinite(i*1.5)?Math.round(i*1.5):0}px`,xl:`${Number.isFinite(i*2)?Math.round(i*2):0}px`,full:"9999px"}}#_(e){let{borderWidth:t="medium"}=e,o;return typeof t=="number"?o=t:typeof t=="string"?o=u.BorderWidths[t]??u.BorderWidths.medium:o=u.BorderWidths.medium,{hairline:`${u.BorderWidths.hairline}px`,thin:`${u.BorderWidths.thin}px`,medium:`${u.BorderWidths.medium}px`,thick:`${u.BorderWidths.thick}px`}}generateTypographyTokens(e){let{fontFamilyHeadings:t="system-ui, -apple-system, sans-serif",fontFamilyBody:o="system-ui, -apple-system, sans-serif",fontFamilyMono:a='ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, monospace',baseFontSize:i=16,fontScale:s=1.25,fontWeightLight:n=u.FontWeights.light,fontWeightNormal:c=u.FontWeights.normal,fontWeightMedium:p=u.FontWeights.medium,fontWeightSemibold:d=u.FontWeights.semibold,fontWeightBold:l=u.FontWeights.bold,lineHeightTight:h=u.LineHeights.tight,lineHeightNormal:g=u.LineHeights.normal,lineHeightRelaxed:y=u.LineHeights.relaxed}=e,k=Number.isFinite(Number(i))?Number(i):16,f=Number.isFinite(Number(s))?Number(s):1.25;return{fontFamily:{headings:t,body:o,mono:a},fontSize:{xs:`${Math.round(k/Math.pow(f,2))}px`,sm:`${Math.round(k/f)}px`,base:`${k}px`,lg:`${Math.round(k*f)}px`,xl:`${Math.round(k*Math.pow(f,2))}px`,"2xl":`${Math.round(k*Math.pow(f,3))}px`,"3xl":`${Math.round(k*Math.pow(f,4))}px`,"4xl":`${Math.round(k*Math.pow(f,5))}px`},fontWeight:{light:n?.toString()||"300",normal:c?.toString()||"400",medium:p?.toString()||"500",semibold:d?.toString()||"600",bold:l?.toString()||"700"},lineHeight:{tight:h?.toString()||"1.25",normal:g?.toString()||"1.5",relaxed:y?.toString()||"1.75"}}}#M(e){let{baseShadowOpacity:t=.1,shadowBlurMultiplier:o=1,shadowOffsetMultiplier:a=1}=e,i=`rgba(0, 0, 0, ${t})`,s=`rgba(0, 0, 0, ${t*.5})`;return{sm:`0 ${1*a}px ${2*o}px 0 ${s}`,base:`0 ${1*a}px ${3*o}px 0 ${i}, 0 ${1*a}px ${2*o}px 0 ${s}`,md:`0 ${4*a}px ${6*o}px ${-1*a}px ${i}, 0 ${2*a}px ${4*o}px ${-1*a}px ${s}`,lg:`0 ${10*a}px ${15*o}px ${-3*a}px ${i}, 0 ${4*a}px ${6*o}px ${-2*a}px ${s}`,xl:`0 ${20*a}px ${25*o}px ${-5*a}px ${i}, 0 ${10*a}px ${10*o}px ${-5*a}px ${s}`,inner:`inset 0 ${2*a}px ${4*o}px 0 ${s}`}}#D(e){let{maxWidth:t=1200,containerPadding:o=16,breakpoints:a={sm:640,md:768,lg:1024,xl:1280}}=e;return{maxWidth:`${t}px`,minHeight:"100vh",containerPadding:`${o}px`,breakpoints:{sm:`${a.sm}px`,md:`${a.md}px`,lg:`${a.lg}px`,xl:`${a.xl}px`},pageMargin:"120px",sectionGap:"160px",containerGap:"200px",heroSpacing:"240px",footerSpacing:"160px"}}#P(e){let{transitionSpeed:t=u.TransitionSpeeds.normal,animationEasing:o=u.AnimationEasings["ease-out"]}=e,a;return typeof t=="number"?a=t:typeof t=="string"&&u.TransitionSpeeds[t]?a=u.TransitionSpeeds[t]:a=u.TransitionSpeeds.normal,{fast:`${Math.round(a*.6)}ms`,normal:`${a}ms`,slow:`${Math.round(a*1.4)}ms`}}#R(e){let{baseZIndex:t=1e3,zIndexStep:o=10}=e;return{dropdown:t.toString(),sticky:(t+o*2).toString(),fixed:(t+o*3).toString(),modal:(t+o*4).toString(),drawer:(t+o*5).toString(),popover:(t+o*6).toString(),tooltip:(t+o*7).toString(),notification:(t+o*8).toString()}}#F(e){let{set:t="phosphor",weight:o="regular",defaultSize:a=24,sizes:i={xs:16,sm:20,md:24,lg:32,xl:48,"2xl":64},spritePath:s="/assets/pds/icons/pds-icons.svg",externalPath:n="/assets/img/icons/"}=e;return{set:t,weight:o,defaultSize:`${a}px`,sizes:Object.fromEntries(Object.entries(i).map(([c,p])=>[c,`${p}px`])),spritePath:s,externalPath:n}}#I(e){let t=[];t.push(` /* Colors */
|
|
3
|
+
\f\r"'\`<>=]|("|')|))|$)`,"g"),Tt=/'/g,zt=/"/g,_t=/^(?:script|style|textarea|title)$/i,Qe=r=>(e,...t)=>({_$litType$:r,strings:e,values:t}),Me=Qe(1),Xe=Qe(2),Dt=Qe(3),C=Symbol.for("lit-noChange"),x=Symbol.for("lit-nothing"),Lt=new WeakMap,q=G.createTreeWalker(G,129);function Pt(r,e){if(!Ze(r)||!r.hasOwnProperty("raw"))throw Error("invalid template strings array");return Ct!==void 0?Ct.createHTML(e):e}var Rt=(r,e)=>{let t=r.length-1,o=[],a,i=e===2?"<svg>":e===3?"<math>":"",s=pe;for(let n=0;n<t;n++){let c=r[n],p,d,l=-1,h=0;for(;h<c.length&&(s.lastIndex=h,d=s.exec(c),d!==null);)h=s.lastIndex,s===pe?d[1]==="!--"?s=Et:d[1]!==void 0?s=At:d[2]!==void 0?(_t.test(d[2])&&(a=RegExp("</"+d[2],"g")),s=U):d[3]!==void 0&&(s=U):s===U?d[0]===">"?(s=a??pe,l=-1):d[1]===void 0?l=-2:(l=s.lastIndex-d[2].length,p=d[1],s=d[3]===void 0?U:d[3]==='"'?zt:Tt):s===zt||s===Tt?s=U:s===Et||s===At?s=pe:(s=U,a=void 0);let g=s===U&&r[n+1].startsWith("/>")?" ":"";i+=s===pe?c+Lr:l>=0?(o.push(p),c.slice(0,l)+Ke+c.slice(l)+I+g):c+I+(l===-2?n:g)}return[Pt(r,i+(r[t]||"<?>")+(e===2?"</svg>":e===3?"</math>":"")),o]},ge=class r{constructor({strings:e,_$litType$:t},o){let a;this.parts=[];let i=0,s=0,n=e.length-1,c=this.parts,[p,d]=Rt(e,t);if(this.el=r.createElement(p,o),q.currentNode=this.el.content,t===2||t===3){let l=this.el.content.firstChild;l.replaceWith(...l.childNodes)}for(;(a=q.nextNode())!==null&&c.length<n;){if(a.nodeType===1){if(a.hasAttributes())for(let l of a.getAttributeNames())if(l.endsWith(Ke)){let h=d[s++],g=a.getAttribute(l).split(I),y=/([.?@])?(.*)/.exec(h);c.push({type:1,index:i,name:y[2],strings:g,ctor:y[1]==="."?Ae:y[1]==="?"?Te:y[1]==="@"?ze:J}),a.removeAttribute(l)}else l.startsWith(I)&&(c.push({type:6,index:i}),a.removeAttribute(l));if(_t.test(a.tagName)){let l=a.textContent.split(I),h=l.length-1;if(h>0){a.textContent=Ce?Ce.emptyScript:"";for(let g=0;g<h;g++)a.append(l[g],ue()),q.nextNode(),c.push({type:2,index:++i});a.append(l[h],ue())}}}else if(a.nodeType===8)if(a.data===Ye)c.push({type:2,index:i});else{let l=-1;for(;(l=a.data.indexOf(I,l+1))!==-1;)c.push({type:7,index:i}),l+=I.length-1}i++}}static createElement(e,t){let o=G.createElement("template");return o.innerHTML=e,o}};function V(r,e,t=r,o){if(e===C)return e;let a=o!==void 0?t._$Co?.[o]:t._$Cl,i=he(e)?void 0:e._$litDirective$;return a?.constructor!==i&&(a?._$AO?.(!1),i===void 0?a=void 0:(a=new i(r),a._$AT(r,t,o)),o!==void 0?(t._$Co??=[])[o]=a:t._$Cl=a),a!==void 0&&(e=V(r,a._$AS(r,e.values),a,o)),e}var Ee=class{constructor(e,t){this._$AV=[],this._$AN=void 0,this._$AD=e,this._$AM=t}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(e){let{el:{content:t},parts:o}=this._$AD,a=(e?.creationScope??G).importNode(t,!0);q.currentNode=a;let i=q.nextNode(),s=0,n=0,c=o[0];for(;c!==void 0;){if(s===c.index){let p;c.type===2?p=new te(i,i.nextSibling,this,e):c.type===1?p=new c.ctor(i,c.name,c.strings,this,e):c.type===6&&(p=new Le(i,this,e)),this._$AV.push(p),c=o[++n]}s!==c?.index&&(i=q.nextNode(),s++)}return q.currentNode=G,a}p(e){let t=0;for(let o of this._$AV)o!==void 0&&(o.strings!==void 0?(o._$AI(e,o,t),t+=o.strings.length-2):o._$AI(e[t])),t++}},te=class r{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(e,t,o,a){this.type=2,this._$AH=x,this._$AN=void 0,this._$AA=e,this._$AB=t,this._$AM=o,this.options=a,this._$Cv=a?.isConnected??!0}get parentNode(){let e=this._$AA.parentNode,t=this._$AM;return t!==void 0&&e?.nodeType===11&&(e=t.parentNode),e}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(e,t=this){e=V(this,e,t),he(e)?e===x||e==null||e===""?(this._$AH!==x&&this._$AR(),this._$AH=x):e!==this._$AH&&e!==C&&this._(e):e._$litType$!==void 0?this.$(e):e.nodeType!==void 0?this.T(e):Mt(e)?this.k(e):this._(e)}O(e){return this._$AA.parentNode.insertBefore(e,this._$AB)}T(e){this._$AH!==e&&(this._$AR(),this._$AH=this.O(e))}_(e){this._$AH!==x&&he(this._$AH)?this._$AA.nextSibling.data=e:this.T(G.createTextNode(e)),this._$AH=e}$(e){let{values:t,_$litType$:o}=e,a=typeof o=="number"?this._$AC(e):(o.el===void 0&&(o.el=ge.createElement(Pt(o.h,o.h[0]),this.options)),o);if(this._$AH?._$AD===a)this._$AH.p(t);else{let i=new Ee(a,this),s=i.u(this.options);i.p(t),this.T(s),this._$AH=i}}_$AC(e){let t=Lt.get(e.strings);return t===void 0&&Lt.set(e.strings,t=new ge(e)),t}k(e){Ze(this._$AH)||(this._$AH=[],this._$AR());let t=this._$AH,o,a=0;for(let i of e)a===t.length?t.push(o=new r(this.O(ue()),this.O(ue()),this,this.options)):o=t[a],o._$AI(i),a++;a<t.length&&(this._$AR(o&&o._$AB.nextSibling,a),t.length=a)}_$AR(e=this._$AA.nextSibling,t){for(this._$AP?.(!1,!0,t);e!==this._$AB;){let o=e.nextSibling;e.remove(),e=o}}setConnected(e){this._$AM===void 0&&(this._$Cv=e,this._$AP?.(e))}},J=class{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(e,t,o,a,i){this.type=1,this._$AH=x,this._$AN=void 0,this.element=e,this.name=t,this._$AM=a,this.options=i,o.length>2||o[0]!==""||o[1]!==""?(this._$AH=Array(o.length-1).fill(new String),this.strings=o):this._$AH=x}_$AI(e,t=this,o,a){let i=this.strings,s=!1;if(i===void 0)e=V(this,e,t,0),s=!he(e)||e!==this._$AH&&e!==C,s&&(this._$AH=e);else{let n=e,c,p;for(e=i[0],c=0;c<i.length-1;c++)p=V(this,n[o+c],t,c),p===C&&(p=this._$AH[c]),s||=!he(p)||p!==this._$AH[c],p===x?e=x:e!==x&&(e+=(p??"")+i[c+1]),this._$AH[c]=p}s&&!a&&this.j(e)}j(e){e===x?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,e??"")}},Ae=class extends J{constructor(){super(...arguments),this.type=3}j(e){this.element[this.name]=e===x?void 0:e}},Te=class extends J{constructor(){super(...arguments),this.type=4}j(e){this.element.toggleAttribute(this.name,!!e&&e!==x)}},ze=class extends J{constructor(e,t,o,a,i){super(e,t,o,a,i),this.type=5}_$AI(e,t=this){if((e=V(this,e,t,0)??x)===C)return;let o=this._$AH,a=e===x&&o!==x||e.capture!==o.capture||e.once!==o.once||e.passive!==o.passive,i=e!==x&&(o===x||a);a&&this.element.removeEventListener(this.name,this,o),i&&this.element.addEventListener(this.name,this,e),this._$AH=e}handleEvent(e){typeof this._$AH=="function"?this._$AH.call(this.options?.host??this.element,e):this._$AH.handleEvent(e)}},Le=class{constructor(e,t,o){this.element=e,this.type=6,this._$AN=void 0,this._$AM=t,this.options=o}get _$AU(){return this._$AM._$AU}_$AI(e){V(this,e)}},Ft={M:Ke,P:I,A:Ye,C:1,L:Rt,R:Ee,D:Mt,V,I:te,H:J,N:Te,U:ze,B:Ae,F:Le},Mr=Je.litHtmlPolyfillSupport;Mr?.(ge,te),(Je.litHtmlVersions??=[]).push("3.3.1");var N=(r,e,t)=>{let o=t?.renderBefore??e,a=o._$litPart$;if(a===void 0){let i=t?.renderBefore??null;o._$litPart$=a=new te(e.insertBefore(ue(),i),i,void 0,t??{})}return a._$AI(r),a};var et=globalThis,_=class extends F{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){let e=super.createRenderRoot();return this.renderOptions.renderBefore??=e.firstChild,e}update(e){let t=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(e),this._$Do=N(t,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return C}};_._$litElement$=!0,_.finalized=!0,et.litElementHydrateSupport?.({LitElement:_});var _r=et.litElementPolyfillSupport;_r?.({LitElement:_});(et.litElementVersions??=[]).push("4.2.1");var B={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},A=r=>(...e)=>({_$litDirective$:r,values:e}),z=class{constructor(e){}get _$AU(){return this._$AM._$AU}_$AT(e,t,o){this._$Ct=e,this._$AM=t,this._$Ci=o}_$AS(e,t){return this.update(e,t)}update(e,t){return this.render(...t)}};var{I:Dr}=Ft,Nt=r=>r===null||typeof r!="object"&&typeof r!="function";var Bt=r=>r.strings===void 0,It=()=>document.createComment(""),re=(r,e,t)=>{let o=r._$AA.parentNode,a=e===void 0?r._$AB:e._$AA;if(t===void 0){let i=o.insertBefore(It(),a),s=o.insertBefore(It(),a);t=new Dr(i,s,r,r.options)}else{let i=t._$AB.nextSibling,s=t._$AM,n=s!==r;if(n){let c;t._$AQ?.(r),t._$AM=r,t._$AP!==void 0&&(c=r._$AU)!==s._$AU&&t._$AP(c)}if(i!==a||n){let c=t._$AA;for(;c!==i;){let p=c.nextSibling;o.insertBefore(c,a),c=p}}}return t},O=(r,e,t=r)=>(r._$AI(e,t),r),Pr={},_e=(r,e=Pr)=>r._$AH=e,Ot=r=>r._$AH,De=r=>{r._$AR(),r._$AA.remove()};var jt=(r,e,t)=>{let o=new Map;for(let a=e;a<=t;a++)o.set(r[a],a);return o},Io=A(class extends z{constructor(r){if(super(r),r.type!==B.CHILD)throw Error("repeat() can only be used in text expressions")}dt(r,e,t){let o;t===void 0?t=e:e!==void 0&&(o=e);let a=[],i=[],s=0;for(let n of r)a[s]=o?o(n,s):s,i[s]=t(n,s),s++;return{values:i,keys:a}}render(r,e,t){return this.dt(r,e,t).values}update(r,[e,t,o]){let a=Ot(r),{values:i,keys:s}=this.dt(e,t,o);if(!Array.isArray(a))return this.ut=s,i;let n=this.ut??=[],c=[],p,d,l=0,h=a.length-1,g=0,y=i.length-1;for(;l<=h&&g<=y;)if(a[l]===null)l++;else if(a[h]===null)h--;else if(n[l]===s[g])c[g]=O(a[l],i[g]),l++,g++;else if(n[h]===s[y])c[y]=O(a[h],i[y]),h--,y--;else if(n[l]===s[y])c[y]=O(a[l],i[y]),re(r,c[y+1],a[l]),l++,y--;else if(n[h]===s[g])c[g]=O(a[h],i[g]),re(r,a[l],a[h]),h--,g++;else if(p===void 0&&(p=jt(s,g,y),d=jt(n,l,h)),p.has(n[l]))if(p.has(n[h])){let k=d.get(s[g]),f=k!==void 0?a[k]:null;if(f===null){let $=re(r,a[l]);O($,i[g]),c[g]=$}else c[g]=O(f,i[g]),re(r,a[l],f),a[k]=null;g++}else De(a[h]),h--;else De(a[l]),l++;for(;g<=y;){let k=re(r,c[y+1]);O(k,i[g]),c[g++]=k}for(;l<=h;){let k=a[l++];k!==null&&De(k)}return this.ut=s,_e(r,c),C}});var qo=A(class extends z{constructor(){super(...arguments),this.key=x}render(r,e){return this.key=r,e}update(r,[e,t]){return e!==this.key&&(_e(r),this.key=e),t}});var Qo=A(class extends z{constructor(r){if(super(r),r.type!==B.ATTRIBUTE||r.name!=="class"||r.strings?.length>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(r){return" "+Object.keys(r).filter(e=>r[e]).join(" ")+" "}update(r,[e]){if(this.st===void 0){this.st=new Set,r.strings!==void 0&&(this.nt=new Set(r.strings.join(" ").split(/\s/).filter(o=>o!=="")));for(let o in e)e[o]&&!this.nt?.has(o)&&this.st.add(o);return this.render(e)}let t=r.element.classList;for(let o of this.st)o in e||(t.remove(o),this.st.delete(o));for(let o in e){let a=!!e[o];a===this.st.has(o)||this.nt?.has(o)||(a?(t.add(o),this.st.add(o)):(t.remove(o),this.st.delete(o)))}return C}});var me=(r,e)=>{let t=r._$AN;if(t===void 0)return!1;for(let o of t)o._$AO?.(e,!1),me(o,e);return!0},Pe=r=>{let e,t;do{if((e=r._$AM)===void 0)break;t=e._$AN,t.delete(r),r=e}while(t?.size===0)},Ht=r=>{for(let e;e=r._$AM;r=e){let t=e._$AN;if(t===void 0)e._$AN=t=new Set;else if(t.has(r))break;t.add(r),Ir(e)}};function Rr(r){this._$AN!==void 0?(Pe(this),this._$AM=r,Ht(this)):this._$AM=r}function Fr(r,e=!1,t=0){let o=this._$AH,a=this._$AN;if(a!==void 0&&a.size!==0)if(e)if(Array.isArray(o))for(let i=t;i<o.length;i++)me(o[i],!1),Pe(o[i]);else o!=null&&(me(o,!1),Pe(o));else me(this,r)}var Ir=r=>{r.type==B.CHILD&&(r._$AP??=Fr,r._$AQ??=Rr)},oe=class extends z{constructor(){super(...arguments),this._$AN=void 0}_$AT(e,t,o){super._$AT(e,t,o),Ht(this),this.isConnected=e._$AU}_$AO(e,t=!0){e!==this.isConnected&&(this.isConnected=e,e?this.reconnected?.():this.disconnected?.()),t&&(me(this,e),Pe(this))}setValue(e){if(Bt(this._$Ct))this._$Ct._$AI(e,this);else{let t=[...this._$Ct._$AH];t[this._$Ci]=e,this._$Ct._$AI(t,this,0)}}disconnected(){}reconnected(){}};var tt=new WeakMap,Nr=A(class extends oe{render(r){return x}update(r,[e]){let t=e!==this.G;return t&&this.G!==void 0&&this.rt(void 0),(t||this.lt!==this.ct)&&(this.G=e,this.ht=r.options?.host,this.rt(this.ct=r.element)),x}rt(r){if(this.isConnected||(r=void 0),typeof this.G=="function"){let e=this.ht??globalThis,t=tt.get(e);t===void 0&&(t=new WeakMap,tt.set(e,t)),t.get(this.G)!==void 0&&this.G.call(this.ht,void 0),t.set(this.G,r),r!==void 0&&this.G.call(this.ht,r)}else this.G.value=r}get lt(){return typeof this.G=="function"?tt.get(this.ht??globalThis)?.get(this.G):this.G?.value}disconnected(){this.lt===this.ct&&this.rt(void 0)}reconnected(){this.rt(this.ct)}});var Re=class{constructor(e){this.G=e}disconnect(){this.G=void 0}reconnect(e){this.G=e}deref(){return this.G}},Fe=class{constructor(){this.Y=void 0,this.Z=void 0}get(){return this.Y}pause(){this.Y??=new Promise(e=>this.Z=e)}resume(){this.Z?.(),this.Y=this.Z=void 0}};var Wt=r=>!Nt(r)&&typeof r.then=="function",Ut=1073741823,rt=class extends oe{constructor(){super(...arguments),this._$Cwt=Ut,this._$Cbt=[],this._$CK=new Re(this),this._$CX=new Fe}render(...e){return e.find(t=>!Wt(t))??C}update(e,t){let o=this._$Cbt,a=o.length;this._$Cbt=t;let i=this._$CK,s=this._$CX;this.isConnected||this.disconnected();for(let n=0;n<t.length&&!(n>this._$Cwt);n++){let c=t[n];if(!Wt(c))return this._$Cwt=n,c;n<a&&c===o[n]||(this._$Cwt=Ut,a=0,Promise.resolve(c).then(async p=>{for(;s.get();)await s.get();let d=i.deref();if(d!==void 0){let l=d._$Cbt.indexOf(c);l>-1&&l<d._$Cwt&&(d._$Cwt=l,d.setValue(p))}}))}return C}disconnected(){this._$CK.disconnect(),this._$CX.pause()}reconnected(){this._$CK.reconnect(this),this._$CX.resume()}},Br=A(rt);var K=class extends z{constructor(e){if(super(e),this.it=x,e.type!==B.CHILD)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(e){if(e===x||e==null)return this._t=void 0,this.it=e;if(e===C)return e;if(typeof e!="string")throw Error(this.constructor.directiveName+"() called with a non-string value");if(e===this.it)return this._t;this.it=e;let t=[e];return t.raw=t,this._t={_$litType$:this.constructor.resultType,strings:t,values:[]}}};K.directiveName="unsafeHTML",K.resultType=1;var Ie=A(K);var fe=class extends K{};fe.directiveName="unsafeSVG",fe.resultType=2;var Or=A(fe);var Ia=["127.0.0.1","localhost"].includes(window.location.hostname);var jr=Symbol.for(""),Hr=r=>{if(r?.r===jr)return r?._$litStatic$};var qt=new Map,ot=r=>(e,...t)=>{let o=t.length,a,i,s=[],n=[],c,p=0,d=!1;for(;p<o;){for(c=e[p];p<o&&(i=t[p],(a=Hr(i))!==void 0);)c+=a+e[++p],d=!0;p!==o&&n.push(i),s.push(c),p++}if(p===o&&s.push(e[o]),d){let l=s.join("$$lit$$");(e=qt.get(l))===void 0&&(s.raw=s,qt.set(l,e=s)),t=n}return r(e,...t)},Wr=ot(Me),Oa=ot(Xe),ja=ot(Dt);var S=Me;var u={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"}};var j={"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:u.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:u.RadiusSizes.small,borderWidth:u.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:u.RadiusSizes.xlarge,borderWidth:u.BorderWidths.medium},behavior:{transitionSpeed:u.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:u.RadiusSizes.none,borderWidth:u.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:u.RadiusSizes.xxlarge,borderWidth:u.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:u.RadiusSizes.none,borderWidth:u.BorderWidths.thick},behavior:{transitionSpeed:u.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:u.RadiusSizes.medium,borderWidth:u.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:u.RadiusSizes.small,borderWidth:u.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:u.RadiusSizes.medium,borderWidth:u.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:u.RadiusSizes.small,borderWidth:u.BorderWidths.thick},behavior:{transitionSpeed:u.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:u.LineHeights.relaxed},spatialRhythm:{baseUnit:6,scaleRatio:1.4},shape:{radiusSize:u.RadiusSizes.xxlarge,borderWidth:u.BorderWidths.thin},behavior:{transitionSpeed:u.TransitionSpeeds.slow,animationEasing:u.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:u.RadiusSizes.none,borderWidth:u.BorderWidths.thick},behavior:{transitionSpeed:u.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:u.RadiusSizes.large,borderWidth:u.BorderWidths.medium},behavior:{transitionSpeed:u.TransitionSpeeds.normal,animationEasing:u.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:u.LineHeights.tight},spatialRhythm:{baseUnit:4,scaleRatio:1.25,containerPadding:1.25,sectionSpacing:2.5},shape:{radiusSize:u.RadiusSizes.large,borderWidth:u.BorderWidths.thin},layers:{shadowDepth:"medium",blurMedium:12},behavior:{transitionSpeed:u.TransitionSpeeds.fast,animationEasing:u.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:u.LineHeights.relaxed},spatialRhythm:{baseUnit:4,scaleRatio:1.25,containerMaxWidth:1440,containerPadding:1.5,sectionSpacing:3},shape:{radiusSize:u.RadiusSizes.medium,borderWidth:u.BorderWidths.thin},layers:{shadowDepth:"light",blurLight:8},behavior:{transitionSpeed:u.TransitionSpeeds.normal,animationEasing:u.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:u.RadiusSizes.small,borderWidth:u.BorderWidths.medium},behavior:{transitionSpeed:u.TransitionSpeeds.fast,animationEasing:u.AnimationEasings["ease-out"],focusRingWidth:3},a11y:{minTouchTarget:u.TouchTargetSizes.comfortable,focusStyle:u.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:u.RadiusSizes.medium,borderWidth:u.BorderWidths.thin},layers:{shadowDepth:"light",blurLight:6},behavior:{transitionSpeed:u.TransitionSpeeds.fast,animationEasing:u.AnimationEasings["ease-in-out"],focusRingWidth:3,focusRingOpacity:.4},a11y:{minTouchTarget:u.TouchTargetSizes.standard,focusStyle:u.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:u.LineHeights.relaxed},spatialRhythm:{baseUnit:4,scaleRatio:1.25,containerMaxWidth:680,sectionSpacing:1.5},shape:{radiusSize:u.RadiusSizes.medium,borderWidth:u.BorderWidths.thin},behavior:{transitionSpeed:u.TransitionSpeeds.fast,animationEasing:u.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:u.LineHeights.tight},spatialRhythm:{baseUnit:4,scaleRatio:1.2,containerMaxWidth:1600,containerPadding:1.5,sectionSpacing:2},shape:{radiusSize:u.RadiusSizes.small,borderWidth:u.BorderWidths.thin},layers:{shadowDepth:"light",blurLight:4},behavior:{transitionSpeed:u.TransitionSpeeds.fast,animationEasing:u.AnimationEasings["ease-in-out"],focusRingWidth:2},layout:{densityCompact:.85,gridColumns:12}}};j.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:u.FontWeights.light,fontWeightNormal:u.FontWeights.normal,fontWeightMedium:u.FontWeights.medium,fontWeightSemibold:u.FontWeights.semibold,fontWeightBold:u.FontWeights.bold,lineHeightTight:u.LineHeights.tight,lineHeightNormal:u.LineHeights.normal,lineHeightRelaxed:u.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:u.RadiusSizes.large,borderWidth:u.BorderWidths.medium,customRadius:null},behavior:{transitionSpeed:u.TransitionSpeeds.normal,animationEasing:u.AnimationEasings["ease-out"],customTransitionSpeed:null,customEasing:null,focusRingWidth:3,focusRingOpacity:.3,hoverOpacity:.8},layout:{gridColumns:12,gridGutter:1,breakpoints:{sm:640,md:768,lg:1024,xl:1280},densityCompact:.8,densityNormal:1,densityComfortable:1.2,buttonMinHeight:u.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:u.LinkStyles.inline,colorDerivation:"hsl"},a11y:{minTouchTarget:u.TouchTargetSizes.standard,prefersReducedMotion:!0,focusStyle:u.FocusStyles.ring},icons:{set:"phosphor",weight:"regular",defaultSize:24,externalPath:"/assets/img/icons/",sizes:{xs:16,sm:20,md:24,lg:32,xl:48,"2xl":64},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 at={meta:{name:"Pure Design System Ontology",version:"1.0.0",description:"Complete metadata registry for PDS primitives, components, utilities, and tokens"},tokens:{colors:{semantic:["primary","secondary","accent","success","warning","danger","info"],neutral:["gray"],shades:[50,100,200,300,400,500,600,700,800,900,950],surface:["base","subtle","elevated","sunken","overlay","inverse","translucent"],text:["default","muted","subtle","inverse","primary","success","warning","danger","info"]},spacing:{scale:["1","2","3","4","5","6","8","10","12","16","20","24"],semantic:["xs","sm","md","lg","xl"]},typography:{families:["heading","body","mono"],sizes:["xs","sm","base","lg","xl","2xl","3xl","4xl","5xl"],weights:["light","normal","medium","semibold","bold"]},radius:{scale:["none","sm","base","md","lg","xl","2xl","full"]},shadows:{scale:["none","sm","base","md","lg","xl","inner"]},themes:["light","dark"],breakpoints:{sm:640,md:768,lg:1024,xl:1280}},primitives:[{id:"badge",name:"Badge / Pill",description:"Inline status indicators and labels",selectors:[".badge",".badge-primary",".badge-secondary",".badge-success",".badge-info",".badge-warning",".badge-danger",".badge-outline",".badge-sm",".badge-lg",".pill",".tag",".chip"],tags:["status","label","indicator","inline"],category:"feedback"},{id:"card",name:"Card",description:"Content container with padding, border-radius, and optional shadow",selectors:[".card",".card-basic",".card-elevated",".card-outlined",".card-interactive"],tags:["container","content","grouping"],category:"container"},{id:"surface",name:"Surface",description:"Smart surface classes with automatic text/background color handling",selectors:[".surface-base",".surface-subtle",".surface-elevated",".surface-sunken",".surface-overlay",".surface-inverse",".surface-translucent",".surface-translucent-25",".surface-translucent-50",".surface-translucent-75",".surface-primary",".surface-secondary",".surface-success",".surface-warning",".surface-danger",".surface-info"],tags:["background","theming","color","container"],category:"theming"},{id:"alert",name:"Alert",description:"Contextual feedback messages",selectors:[".alert",".alert-info",".alert-success",".alert-warning",".alert-danger",".alert-error",".alert-dismissible",".semantic-message"],tags:["feedback","message","notification","status"],category:"feedback"},{id:"dialog",name:"Dialog",description:"Modal dialog element",selectors:["dialog",".dialog"],tags:["modal","overlay","popup","modal"],category:"overlay"},{id:"divider",name:"Divider",description:"Horizontal rule with optional label",selectors:["hr","hr[data-content]"],tags:["separator","line","content-divider"],category:"layout"},{id:"table",name:"Table",description:"Data tables with responsive and styling variants",selectors:["table",".table-responsive",".table-striped",".table-bordered",".table-compact",".data-table"],tags:["data","grid","tabular","responsive"],category:"data"},{id:"button",name:"Button",description:"Interactive button element with variants",selectors:["button",".btn-primary",".btn-secondary",".btn-outline",".btn-sm",".btn-xs",".btn-lg",".btn-working",".icon-only"],tags:["interactive","action","cta","form"],category:"action"},{id:"fieldset",name:"Fieldset Group",description:"Form field grouping for radio/checkbox groups",selectors:["fieldset[role='group']","fieldset[role='radiogroup']","fieldset.buttons"],tags:["form","grouping","radio","checkbox"],category:"form"},{id:"label-field",name:"Label+Input",description:"Semantic label wrapping form input",selectors:["label","label:has(input)","label:has(select)","label:has(textarea)"],tags:["form","input","accessibility"],category:"form"},{id:"accordion",name:"Accordion",description:"Collapsible content sections",selectors:[".accordion",".accordion-item","details","details > summary"],tags:["expandable","collapsible","disclosure"],category:"disclosure"},{id:"icon",name:"Icon",description:"SVG icon element with size and color variants",selectors:["pds-icon",".icon-xs",".icon-sm",".icon-md",".icon-lg",".icon-xl",".icon-primary",".icon-secondary",".icon-accent",".icon-success",".icon-warning",".icon-danger",".icon-info",".icon-muted",".icon-subtle",".icon-text",".icon-text-start",".icon-text-end"],tags:["graphic","symbol","visual"],category:"media"},{id:"figure",name:"Figure/Media",description:"Figure element for images with captions",selectors:["figure","figure.media","figcaption"],tags:["image","media","caption"],category:"media"},{id:"gallery",name:"Gallery",description:"Image gallery grid",selectors:[".gallery",".gallery-grid",".img-gallery"],tags:["images","grid","collection"],category:"media"},{id:"form",name:"Form Container",description:"Form styling and layout",selectors:["form",".form-container",".form-actions",".field-description"],tags:["form","input","submission"],category:"form"},{id:"navigation",name:"Navigation",description:"Navigation elements and menus",selectors:["nav","nav[data-dropdown]","menu","nav menu li"],tags:["menu","links","routing"],category:"navigation"}],components:[{id:"pds-tabstrip",name:"Tab Strip",description:"Tabbed interface component",selectors:["pds-tabstrip"],tags:["tabs","navigation","panels"],category:"navigation"},{id:"pds-drawer",name:"Drawer",description:"Slide-out panel overlay",selectors:["pds-drawer"],tags:["panel","overlay","sidebar"],category:"overlay"},{id:"pds-upload",name:"Upload",description:"File upload component with drag-and-drop",selectors:["pds-upload"],tags:["file","upload","drag-drop","form"],category:"form"},{id:"pds-icon",name:"Icon",description:"SVG icon web component",selectors:["pds-icon"],tags:["icon","graphic","svg"],category:"media"},{id:"pds-toaster",name:"Toaster",description:"Toast notification container",selectors:["pds-toaster"],tags:["notification","toast","feedback"],category:"feedback"},{id:"pds-form",name:"JSON Form",description:"Auto-generated form from JSON Schema",selectors:["pds-form"],tags:["form","schema","auto-generate"],category:"form"},{id:"pds-splitpanel",name:"Split Panel",description:"Resizable split pane layout",selectors:["pds-splitpanel"],tags:["layout","resize","panels"],category:"layout"},{id:"pds-scrollrow",name:"Scroll Row",description:"Horizontal scrolling row with snap points",selectors:["pds-scrollrow"],tags:["scroll","horizontal","carousel"],category:"layout"},{id:"pds-richtext",name:"Rich Text",description:"Rich text editor component",selectors:["pds-richtext"],tags:["editor","wysiwyg","text"],category:"form"},{id:"pds-calendar",name:"Calendar",description:"Date picker calendar component",selectors:["pds-calendar"],tags:["date","picker","calendar"],category:"form"}],layoutPatterns:[{id:"container",name:"Container",description:"Centered max-width wrapper with padding",selectors:[".container"],tags:["wrapper","centered","max-width","page"],category:"structure"},{id:"grid",name:"Grid",description:"CSS Grid layout container",selectors:[".grid"],tags:["layout","columns","css-grid"],category:"layout"},{id:"grid-cols",name:"Grid Columns",description:"Fixed column count grids",selectors:[".grid-cols-1",".grid-cols-2",".grid-cols-3",".grid-cols-4",".grid-cols-6"],tags:["columns","fixed","grid"],category:"layout"},{id:"grid-auto",name:"Auto-fit Grid",description:"Responsive auto-fit grid with minimum widths",selectors:[".grid-auto-sm",".grid-auto-md",".grid-auto-lg",".grid-auto-xl"],tags:["responsive","auto-fit","fluid"],category:"layout"},{id:"flex",name:"Flex Container",description:"Flexbox layout with direction and wrap modifiers",selectors:[".flex",".flex-wrap",".flex-col",".flex-row"],tags:["flexbox","layout","alignment"],category:"layout"},{id:"grow",name:"Flex Grow",description:"Fill remaining flex space",selectors:[".grow"],tags:["flex","expand","fill"],category:"layout"},{id:"stack",name:"Stack",description:"Vertical flex layout with predefined gaps",selectors:[".stack-sm",".stack-md",".stack-lg",".stack-xl"],tags:["vertical","spacing","column"],category:"layout"},{id:"gap",name:"Gap",description:"Spacing between flex/grid children",selectors:[".gap-0",".gap-xs",".gap-sm",".gap-md",".gap-lg",".gap-xl"],tags:["spacing","margin","gutters"],category:"spacing"},{id:"items",name:"Items Alignment",description:"Cross-axis alignment for flex/grid",selectors:[".items-start",".items-center",".items-end",".items-stretch",".items-baseline"],tags:["alignment","vertical","cross-axis"],category:"alignment"},{id:"justify",name:"Justify Content",description:"Main-axis alignment for flex/grid",selectors:[".justify-start",".justify-center",".justify-end",".justify-between",".justify-around",".justify-evenly"],tags:["alignment","horizontal","main-axis"],category:"alignment"},{id:"max-width",name:"Max-Width",description:"Content width constraints",selectors:[".max-w-sm",".max-w-md",".max-w-lg",".max-w-xl"],tags:["width","constraint","readable"],category:"sizing"},{id:"section",name:"Section Spacing",description:"Vertical padding for content sections",selectors:[".section",".section-lg"],tags:["spacing","vertical","padding"],category:"spacing"},{id:"mobile-stack",name:"Mobile Stack",description:"Stack on mobile, row on desktop",selectors:[".mobile-stack"],tags:["responsive","mobile","breakpoint"],category:"responsive"}],utilities:{text:{alignment:[".text-left",".text-center",".text-right"],color:[".text-muted"],overflow:[".truncate"]},backdrop:{base:[".backdrop"],variants:[".backdrop-light",".backdrop-dark"],blur:[".backdrop-blur-sm",".backdrop-blur-md",".backdrop-blur-lg"]},shadow:{scale:[".shadow-sm",".shadow-base",".shadow-md",".shadow-lg",".shadow-xl",".shadow-inner",".shadow-none"]},border:{gradient:[".border-gradient",".border-gradient-primary",".border-gradient-accent",".border-gradient-secondary",".border-gradient-soft",".border-gradient-medium",".border-gradient-strong"],glow:[".border-glow",".border-glow-sm",".border-glow-lg",".border-glow-primary",".border-glow-accent",".border-glow-success",".border-glow-warning",".border-glow-danger"],combined:[".border-gradient-glow"]},media:{image:[".img-gallery",".img-rounded-sm",".img-rounded-md",".img-rounded-lg",".img-rounded-xl",".img-rounded-full",".img-inline"],video:[".video-responsive"],figure:[".figure-responsive"]},effects:{glass:[".liquid-glass"]}},responsive:{prefixes:["sm","md","lg"],utilities:{grid:[":grid-cols-2",":grid-cols-3",":grid-cols-4"],flex:[":flex-row"],text:[":text-sm",":text-lg",":text-xl"],spacing:[":p-6",":p-8",":p-12",":gap-6",":gap-8",":gap-12"],width:[":w-1/2",":w-1/3",":w-1/4"],display:[":hidden",":block"]}},enhancements:[{id:"dropdown",selector:"nav[data-dropdown]",description:"Dropdown menu from nav element",tags:["menu","interactive","navigation"]},{id:"toggle",selector:"label[data-toggle]",description:"Toggle switch from checkbox",tags:["switch","boolean","form"]},{id:"range",selector:'input[type="range"]',description:"Enhanced range slider with output",tags:["slider","input","form"]},{id:"required",selector:"form [required]",description:"Required field asterisk indicator",tags:["validation","form","accessibility"]},{id:"open-group",selector:"fieldset[role=group][data-open]",description:"Editable checkbox/radio group",tags:["form","dynamic","editable"]},{id:"working-button",selector:"button.btn-working, a.btn-working",description:"Button with loading spinner",tags:["loading","async","feedback"]},{id:"labeled-divider",selector:"hr[data-content]",description:"Horizontal rule with centered label",tags:["divider","separator","text"]}],categories:{feedback:{description:"User feedback and status indicators",primitives:["alert","badge"],components:["pds-toaster"]},form:{description:"Form inputs and controls",primitives:["button","fieldset","label-field","form"],components:["pds-upload","pds-form","pds-richtext","pds-calendar"]},layout:{description:"Page structure and content arrangement",patterns:["container","grid","flex","stack","section"],components:["pds-splitpanel","pds-scrollrow"]},navigation:{description:"Navigation and routing",primitives:["navigation"],components:["pds-tabstrip","pds-drawer"]},media:{description:"Images, icons, and visual content",primitives:["icon","figure","gallery"],components:["pds-icon"]},overlay:{description:"Modal and overlay content",primitives:["dialog"],components:["pds-drawer"]},data:{description:"Data display and tables",primitives:["table"]},theming:{description:"Colors, surfaces, and visual theming",primitives:["surface"]}},styles:{typography:["headings","body","code","links"],icons:{source:"svg",sets:["core","brand"]},interactive:["focus","hover","active","disabled"],states:["success","warning","danger","info","muted"]},searchRelations:{text:["typography","truncate","text-muted","text-primary","text-left","text-center","text-right","pds-richtext","heading","font","label","paragraph","content","ellipsis","overflow","input"],font:["typography","text","heading","font-size","font-weight","font-family"],type:["typography","text","font"],typography:["text","font","heading","truncate","text-muted"],heading:["typography","text","font-size","h1","h2","h3"],truncate:["text","overflow","ellipsis","clamp","nowrap","typography"],ellipsis:["truncate","text","overflow","clamp"],overflow:["truncate","scroll","hidden","text"],paragraph:["text","typography","content","body"],content:["text","typography","body","article"],form:["input","field","label","button","fieldset","pds-form","pds-upload","pds-richtext","pds-calendar","required","validation","submit"],input:["form","field","text","label","required","validation"],field:["form","input","label","required"],button:["btn","interactive","action","submit","form","btn-primary","btn-secondary","btn-working"],btn:["button","interactive","action"],toggle:["switch","checkbox","boolean","form","interactive"],switch:["toggle","checkbox","boolean"],slider:["range","input","form"],range:["slider","input","form"],checkbox:["toggle","form","fieldset","boolean"],radio:["fieldset","form","group"],select:["dropdown","form","input","menu"],upload:["file","pds-upload","form","drag-drop"],file:["upload","pds-upload","form"],modal:["dialog","pds-ask","overlay","popup","backdrop","pds-drawer","alert","confirm","prompt","lightbox"],dialog:["modal","pds-ask","overlay","popup","backdrop","alert","confirm","prompt"],popup:["modal","dialog","dropdown","popover","overlay","tooltip"],popover:["popup","tooltip","overlay"],overlay:["modal","dialog","backdrop","drawer","popup"],drawer:["pds-drawer","sidebar","panel","overlay","modal"],backdrop:["overlay","modal","dialog","blur"],confirm:["pds-ask","dialog","modal"],prompt:["pds-ask","dialog","modal","input"],ask:["pds-ask","dialog","confirm","prompt","modal"],dropdown:["menu","nav-dropdown","select","popover"],menu:["dropdown","navigation","nav","list"],nav:["navigation","menu","dropdown","tabs","links"],navigation:["nav","menu","tabs","pds-tabstrip","links","routing"],tabs:["pds-tabstrip","navigation","panels"],tab:["tabs","pds-tabstrip","panel"],link:["navigation","anchor","href","routing"],alert:["notification","feedback","message","status","toast","modal","dialog","pds-ask","confirm","warning","error","info","success","danger"],notification:["alert","toast","pds-toaster","feedback","message","popup"],toast:["pds-toaster","notification","alert","feedback","popup","snackbar"],feedback:["alert","notification","toast","status","badge","validation","error","success"],message:["alert","notification","feedback","dialog","toast"],status:["badge","alert","indicator","feedback","state"],error:["alert","danger","validation","feedback","warning"],success:["alert","feedback","badge","status","check"],warning:["alert","caution","feedback","status"],info:["alert","information","feedback","status"],danger:["alert","error","feedback","destructive","delete"],badge:["status","pill","tag","chip","indicator","label"],pill:["badge","tag","chip"],tag:["badge","pill","chip","label"],chip:["badge","pill","tag"],layout:["grid","flex","stack","container","gap","spacing","pds-splitpanel","section"],grid:["layout","columns","css-grid","table","gallery"],flex:["layout","flexbox","alignment","row","column"],stack:["layout","vertical","spacing","column","gap"],container:["wrapper","layout","max-width","centered"],gap:["spacing","margin","padding","layout"],spacing:["gap","margin","padding","section"],section:["spacing","layout","container","page"],split:["pds-splitpanel","resizable","panels","layout"],panel:["pds-splitpanel","drawer","sidebar","section"],card:["surface","container","elevated","content"],surface:["card","background","elevated","theming","color"],box:["card","container","surface"],elevated:["surface","shadow","card"],color:["palette","theme","surface","primary","secondary","accent"],colours:["color","palette","theme"],palette:["color","theme","tokens"],theme:["color","palette","dark","light","surface"],primary:["color","button","badge","surface"],secondary:["color","button","badge","surface"],accent:["color","highlight","surface"],border:["border-gradient","border-glow","outline","radius"],effect:["border-gradient","border-glow","shadow","glass","animation"],gradient:["border-gradient","color","background"],glow:["border-glow","effect","shadow"],shadow:["elevated","effect","depth","card"],radius:["rounded","border","corner"],rounded:["radius","border","corner"],glass:["liquid-glass","backdrop","blur","effect"],icon:["pds-icon","graphic","symbol","svg","phosphor"],image:["img","figure","gallery","media","picture"],img:["image","figure","gallery","media"],figure:["image","media","caption"],gallery:["images","grid","collection","media"],media:["image","icon","figure","gallery","video"],table:["data","grid","tabular","rows","columns"],data:["table","json","form","display"],editor:["pds-richtext","wysiwyg","text","content"],wysiwyg:["editor","pds-richtext","richtext"],richtext:["pds-richtext","editor","wysiwyg","text"],calendar:["pds-calendar","date","picker","datepicker"],date:["calendar","pds-calendar","picker","input"],datepicker:["calendar","date","pds-calendar"],scroll:["pds-scrollrow","carousel","horizontal","overflow"],carousel:["scroll","pds-scrollrow","slider","gallery"],accordion:["details","collapsible","expandable","disclosure"],collapsible:["accordion","details","expandable"],expandable:["accordion","collapsible","disclosure"],details:["accordion","summary","disclosure"],divider:["hr","separator","line","rule"],separator:["divider","hr","line"],hr:["divider","separator","horizontal-rule"],interactive:["hover","focus","active","disabled","button","link"],hover:["interactive","effect","state"],focus:["interactive","accessibility","state","outline"],disabled:["interactive","state","muted"],loading:["btn-working","spinner","async","progress"],spinner:["loading","btn-working","progress"],accessibility:["a11y","aria","focus","label","required"],a11y:["accessibility","aria","semantic"],aria:["accessibility","a11y","role"],required:["form","validation","asterisk","input"],validation:["form","required","error","feedback"],start:["getting-started","intro","overview","whatispds"],intro:["getting-started","overview","start","docs"],getting:["getting-started","start","intro"],overview:["intro","start","summary","layout-overview"],docs:["documentation","reference","guide"],primitive:["primitives"],component:["components"],enhancement:["enhancements"],foundation:["foundations","color","icon","typography","spacing","tokens"],utility:["utilities","text","backdrop","shadow","border","helper"],pattern:["patterns","layout","responsive","mobile-stack"]}};var ae=class r{static#i;static get instance(){return this.#i}#e;#r;constructor(e={}){this.options={debug:!1,...e},this.options.design||(this.options.design={}),this.options.debug&&this.options.log?.("debug","Generator options:",this.options),r.#i=this,this.tokens=this.generateTokens(),this.options.debug&&this.options.log?.("debug","Generated tokens:",this.tokens),this.#ve(),typeof CSSStyleSheet<"u"?this.#$e():this.options.debug&&this.options.log?.("debug","[Generator] Skipping browser features (CSSStyleSheet not available)")}generateTokens(){let e=this.options.design||{};return{colors:this.#n(e.colors||{}),spacing:this.generateSpacingTokens(e.spatialRhythm||{}),radius:this.#D(e.shape||{}),borderWidths:this.#P(e.shape||{}),typography:this.generateTypographyTokens(e.typography||{}),shadows:this.#R(e.layers||{}),layout:this.#F(e.layout||{}),transitions:this.#I(e.behavior||{}),zIndex:this.#N(e.layers||{}),icons:this.#B(e.icons||{})}}#n(e){let{primary:t="#3b82f6",secondary:o="#64748b",accent:a="#ec4899",background:i="#ffffff",success:s=null,warning:n="#FFBF00",danger:c=null,info:p=null,darkMode:d={}}=e,l={primary:this.#o(t),secondary:this.#o(o),accent:this.#o(a),success:this.#o(s||this.#S(t)),warning:this.#o(n||a),danger:this.#o(c||this.#$(t)),info:this.#o(p||t),gray:this.#g(o),surface:this.#m(i)};return l.surface.fieldset=this.#C(l.surface),l.surfaceSmart=this.#w(l.surface),l.dark=this.#A(l,i,d),l.dark&&l.dark.surface&&(l.dark.surfaceSmart=this.#w(l.dark.surface)),l.interactive={light:{fill:this.#v(l.primary,4.5),text:l.primary[600]},dark:{fill:this.#v(l.dark.primary,4.5),text:this.#M(l.dark.primary,l.dark.surface.base,4.5)}},l}#o(e){let t=this.#s(e);return{50:this.#t(t.h,Math.max(t.s-10,10),Math.min(t.l+45,95)),100:this.#t(t.h,Math.max(t.s-5,15),Math.min(t.l+35,90)),200:this.#t(t.h,t.s,Math.min(t.l+25,85)),300:this.#t(t.h,t.s,Math.min(t.l+15,75)),400:this.#t(t.h,t.s,Math.min(t.l+5,65)),500:e,600:this.#t(t.h,t.s,Math.max(t.l-10,25)),700:this.#t(t.h,t.s,Math.max(t.l-20,20)),800:this.#t(t.h,t.s,Math.max(t.l-30,15)),900:this.#t(t.h,t.s,Math.max(t.l-40,10))}}#S(e){let t=this.#s(e);return this.#t(120,Math.max(t.s,60),45)}#$(e){let t=this.#s(e);return this.#t(0,Math.max(t.s,70),50)}#g(e){let t=this.#s(e),o=t.h,a=Math.min(t.s,10);return{50:this.#t(o,a,98),100:this.#t(o,a,95),200:this.#t(o,a,88),300:this.#t(o,a,78),400:this.#t(o,a,60),500:e,600:this.#t(o,Math.min(a+5,15),45),700:this.#t(o,Math.min(a+8,18),35),800:this.#t(o,Math.min(a+10,20),20),900:this.#t(o,Math.min(a+12,22),10)}}#m(e){let t=this.#s(e);return{base:e,subtle:this.#t(t.h,Math.max(t.s,2),Math.max(t.l-2,2)),elevated:this.#t(t.h,Math.max(t.s,3),Math.max(t.l-4,5)),sunken:this.#t(t.h,Math.max(t.s,4),Math.max(t.l-6,8)),overlay:this.#t(t.h,Math.max(t.s,2),Math.min(t.l+2,98)),inverse:this.#f(e),hover:"color-mix(in oklab, var(--color-surface-base) 92%, var(--color-text-primary) 8%);"}}#C(e){return{base:e.subtle,subtle:e.elevated,elevated:e.sunken,sunken:this.#E(e.sunken,.05),overlay:e.elevated}}#E(e,t=.05){let o=this.#s(e),a=Math.max(o.l-o.l*t,5);return this.#t(o.h,o.s,a)}#f(e){let t=this.#s(e);if(t.l>50){let o=Math.min(t.s+5,25),a=Math.max(12-(t.l-50)*.1,8);return this.#t(t.h,o,a)}else{let o=Math.max(t.s-10,5),a=Math.min(85+(50-t.l)*.3,95);return this.#t(t.h,o,a)}}#A(e,t="#ffffff",o={}){let a=o.background?o.background:this.#f(t),i=this.#m(a),s=o.primary?this.#o(o.primary):this.#c(e.primary);return{surface:{...i,fieldset:this.#L(i)},primary:s,secondary:o.secondary?this.#o(o.secondary):this.#c(e.secondary),accent:o.accent?this.#o(o.accent):this.#c(e.accent),gray:o.secondary?this.#g(o.secondary):e.gray,success:this.#c(e.success),info:this.#c(e.info),warning:this.#c(e.warning),danger:this.#c(e.danger)}}#p(e){let t=String(e||"").replace("#",""),o=t.length===3?t.split("").map(i=>i+i).join(""):t,a=parseInt(o,16);return{r:a>>16&255,g:a>>8&255,b:a&255}}#h(e){let{r:t,g:o,b:a}=this.#p(e),i=[t/255,o/255,a/255].map(s=>s<=.03928?s/12.92:Math.pow((s+.055)/1.055,2.4));return .2126*i[0]+.7152*i[1]+.0722*i[2]}#u(e,t){let o=this.#h(e),a=this.#h(t),i=Math.max(o,a),s=Math.min(o,a);return(i+.05)/(s+.05)}#b(e,t=4.5){if(!e)return"#000000";let o="#ffffff",a="#000000",i=this.#u(e,o);if(i>=t)return o;let s=this.#u(e,a);return s>=t||s>i?a:o}#y(e,t=1){let{r:o,g:a,b:i}=this.#p(e);return`rgba(${o}, ${a}, ${i}, ${t})`}#T(e,t,o=.5){let a=this.#p(e),i=this.#p(t),s=Math.round(a.r+(i.r-a.r)*o),n=Math.round(a.g+(i.g-a.g)*o),c=Math.round(a.b+(i.b-a.b)*o);return this.#z(s,n,c)}#z(e,t,o){let a=i=>{let s=Math.max(0,Math.min(255,Math.round(i))).toString(16);return s.length===1?"0"+s:s};return`#${a(e)}${a(t)}${a(o)}`}#L(e){return{base:e.elevated,subtle:e.overlay,elevated:this.#x(e.elevated,.08),sunken:e.elevated,overlay:this.#x(e.overlay,.05)}}#M(e={},t="#000000",o=4.5){let a=["600","700","800","500","400","900","300","200"],i={shade:null,color:null,ratio:0};for(let s of a){let n=e?.[s];if(!n||typeof n!="string")continue;let c=this.#u(n,t);if(c>i.ratio&&(i={shade:s,color:n,ratio:c}),c>=o)return n}return i.color||e?.["600"]||e?.["500"]}#v(e={},t=4.5){let o=["600","700","800","500","400","900"],a={shade:null,color:null,ratio:0};for(let i of o){let s=e?.[i];if(!s||typeof s!="string")continue;let n=this.#u(s,"#ffffff");if(n>a.ratio&&(a={shade:i,color:s,ratio:n}),n>=t)return s}return a.color||e?.["600"]||e?.["500"]}#w(e){let t={};return Object.entries(e).forEach(([o,a])=>{if(!a||typeof a!="string"||!a.startsWith("#"))return;let i=this.#h(a)<.5,s=this.#b(a,4.5),n=this.#b(a,3),c=this.#T(s,a,.4),p=s,d=c,l=i?"#ffffff":"#000000",h=i?.25:.1,g=this.#y(l,h),y=i?"#ffffff":"#000000",k=i?.15:.1,f=this.#y(y,k);t[o]={bg:a,text:s,textSecondary:n,textMuted:c,icon:p,iconSubtle:d,shadow:g,border:f,scheme:i?"dark":"light"}}),t}#x(e,t=.05){let o=this.#s(e),a=Math.min(o.l+(100-o.l)*t,95);return this.#t(o.h,o.s,a)}#c(e){let t={};return Object.entries({50:{source:"900",dimFactor:.8},100:{source:"800",dimFactor:.8},200:{source:"700",dimFactor:.8},300:{source:"600",dimFactor:.8},400:{source:"500",dimFactor:.85},500:{source:"400",dimFactor:.85},600:{source:"300",dimFactor:.85},700:{source:"200",dimFactor:.85},800:{source:"100",dimFactor:.95},900:{source:"50",dimFactor:.95}}).forEach(([a,i])=>{let s=e[i.source];t[a]=this.#_(s,i.dimFactor)}),t}#_(e,t=.8){let o=this.#s(e),a=Math.max(o.s*t,5),i=Math.max(o.l*t,5);return this.#t(o.h,a,i)}generateSpacingTokens(e){let{baseUnit:t=4,scaleRatio:o=1.25,maxSpacingSteps:a=12}=e,i=Number.isFinite(Number(t))?Number(t):4,s=Math.min(Number.isFinite(Number(a))?Number(a):12,12),n={0:"0"};for(let c=1;c<=s;c++)n[c]=`${i*c}px`;return n}#D(e){let{radiusSize:t="medium",customRadius:o=null}=e,a;o!=null?a=o:typeof t=="number"?a=t:typeof t=="string"?a=u.RadiusSizes[t]??u.RadiusSizes.medium:a=u.RadiusSizes.medium;let i=Number.isFinite(Number(a))?Number(a):u.RadiusSizes.medium;return{none:"0",xs:`${Number.isFinite(i*.25)?Math.round(i*.25):0}px`,sm:`${Number.isFinite(i*.5)?Math.round(i*.5):0}px`,md:`${i}px`,lg:`${Number.isFinite(i*1.5)?Math.round(i*1.5):0}px`,xl:`${Number.isFinite(i*2)?Math.round(i*2):0}px`,full:"9999px"}}#P(e){let{borderWidth:t="medium"}=e,o;return typeof t=="number"?o=t:typeof t=="string"?o=u.BorderWidths[t]??u.BorderWidths.medium:o=u.BorderWidths.medium,{hairline:`${u.BorderWidths.hairline}px`,thin:`${u.BorderWidths.thin}px`,medium:`${u.BorderWidths.medium}px`,thick:`${u.BorderWidths.thick}px`}}generateTypographyTokens(e){let{fontFamilyHeadings:t="system-ui, -apple-system, sans-serif",fontFamilyBody:o="system-ui, -apple-system, sans-serif",fontFamilyMono:a='ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, monospace',baseFontSize:i=16,fontScale:s=1.25,fontWeightLight:n=u.FontWeights.light,fontWeightNormal:c=u.FontWeights.normal,fontWeightMedium:p=u.FontWeights.medium,fontWeightSemibold:d=u.FontWeights.semibold,fontWeightBold:l=u.FontWeights.bold,lineHeightTight:h=u.LineHeights.tight,lineHeightNormal:g=u.LineHeights.normal,lineHeightRelaxed:y=u.LineHeights.relaxed}=e,k=Number.isFinite(Number(i))?Number(i):16,f=Number.isFinite(Number(s))?Number(s):1.25;return{fontFamily:{headings:t,body:o,mono:a},fontSize:{xs:`${Math.round(k/Math.pow(f,2))}px`,sm:`${Math.round(k/f)}px`,base:`${k}px`,lg:`${Math.round(k*f)}px`,xl:`${Math.round(k*Math.pow(f,2))}px`,"2xl":`${Math.round(k*Math.pow(f,3))}px`,"3xl":`${Math.round(k*Math.pow(f,4))}px`,"4xl":`${Math.round(k*Math.pow(f,5))}px`},fontWeight:{light:n?.toString()||"300",normal:c?.toString()||"400",medium:p?.toString()||"500",semibold:d?.toString()||"600",bold:l?.toString()||"700"},lineHeight:{tight:h?.toString()||"1.25",normal:g?.toString()||"1.5",relaxed:y?.toString()||"1.75"}}}#R(e){let{baseShadowOpacity:t=.1,shadowBlurMultiplier:o=1,shadowOffsetMultiplier:a=1}=e,i=`rgba(0, 0, 0, ${t})`,s=`rgba(0, 0, 0, ${t*.5})`;return{sm:`0 ${1*a}px ${2*o}px 0 ${s}`,base:`0 ${1*a}px ${3*o}px 0 ${i}, 0 ${1*a}px ${2*o}px 0 ${s}`,md:`0 ${4*a}px ${6*o}px ${-1*a}px ${i}, 0 ${2*a}px ${4*o}px ${-1*a}px ${s}`,lg:`0 ${10*a}px ${15*o}px ${-3*a}px ${i}, 0 ${4*a}px ${6*o}px ${-2*a}px ${s}`,xl:`0 ${20*a}px ${25*o}px ${-5*a}px ${i}, 0 ${10*a}px ${10*o}px ${-5*a}px ${s}`,inner:`inset 0 ${2*a}px ${4*o}px 0 ${s}`}}#F(e){let{maxWidth:t=1200,containerPadding:o=16,breakpoints:a={sm:640,md:768,lg:1024,xl:1280}}=e,i=this.#k(e);return{maxWidth:this.#a(t,"1200px"),maxWidthSm:i.sm,maxWidthMd:i.md,maxWidthLg:i.lg,maxWidthXl:i.xl,minHeight:"100vh",containerPadding:this.#a(o,"16px"),breakpoints:{sm:this.#a(a.sm,"640px"),md:this.#a(a.md,"768px"),lg:this.#a(a.lg,"1024px"),xl:this.#a(a.xl,"1280px")},pageMargin:"120px",sectionGap:"160px",containerGap:"200px",heroSpacing:"240px",footerSpacing:"160px"}}#k(e={}){let t={sm:640,md:768,lg:1024,xl:1280},{maxWidths:o={},maxWidth:a=1200,containerPadding:i=16,breakpoints:s=t}=e||{},n=this.#l(i,16),c=this.#l(a,t.xl),p={sm:this.#l(s.sm,t.sm),md:this.#l(s.md,t.md),lg:this.#l(s.lg,t.lg),xl:this.#l(s.xl,t.xl)},d=h=>h?Math.max(320,h-n*2):c,l={sm:Math.min(c,d(p.sm)),md:Math.min(c,d(p.md)),lg:Math.min(c,d(p.lg)),xl:Math.max(320,c)};return{sm:this.#a(o.sm,`${l.sm}px`),md:this.#a(o.md,`${l.md}px`),lg:this.#a(o.lg,`${l.lg}px`),xl:this.#a(o.xl,`${l.xl}px`)}}#a(e,t){return typeof e=="number"&&Number.isFinite(e)?`${e}px`:typeof e=="string"&&e.trim().length>0?e:t}#l(e,t){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"){let o=parseFloat(e);if(Number.isFinite(o))return o}return t}#I(e){let{transitionSpeed:t=u.TransitionSpeeds.normal,animationEasing:o=u.AnimationEasings["ease-out"]}=e,a;return typeof t=="number"?a=t:typeof t=="string"&&u.TransitionSpeeds[t]?a=u.TransitionSpeeds[t]:a=u.TransitionSpeeds.normal,{fast:`${Math.round(a*.6)}ms`,normal:`${a}ms`,slow:`${Math.round(a*1.4)}ms`}}#N(e){let{baseZIndex:t=1e3,zIndexStep:o=10}=e;return{dropdown:t.toString(),sticky:(t+o*2).toString(),fixed:(t+o*3).toString(),modal:(t+o*4).toString(),drawer:(t+o*5).toString(),popover:(t+o*6).toString(),tooltip:(t+o*7).toString(),notification:(t+o*8).toString()}}#B(e){let{set:t="phosphor",weight:o="regular",defaultSize:a=24,sizes:i={xs:16,sm:20,md:24,lg:32,xl:48,"2xl":64},spritePath:s="/assets/pds/icons/pds-icons.svg",externalPath:n="/assets/img/icons/"}=e;return{set:t,weight:o,defaultSize:`${a}px`,sizes:Object.fromEntries(Object.entries(i).map(([c,p])=>[c,`${p}px`])),spritePath:s,externalPath:n}}#O(e){let t=[];t.push(` /* Colors */
|
|
4
4
|
`);let o=(a,i="")=>{Object.entries(a).forEach(([s,n])=>{typeof n=="object"&&n!==null?o(n,`${i}${s}-`):typeof n=="string"&&t.push(` --color-${i}${s}: ${n};
|
|
5
5
|
`)})};return Object.entries(e).forEach(([a,i])=>{a!=="dark"&&a!=="surfaceSmart"&&a!=="interactive"&&typeof i=="object"&&i!==null&&o(i,`${a}-`)}),e.surfaceSmart&&(t.push(` /* Smart Surface Tokens (context-aware) */
|
|
6
6
|
`),Object.entries(e.surfaceSmart).forEach(([a,i])=>{t.push(` --surface-${a}-bg: ${i.bg};
|
|
@@ -43,8 +43,8 @@ var yr=Object.defineProperty;var vr=(r,e)=>()=>(r&&(e=r(r=0)),e);var wr=(r,e)=>{
|
|
|
43
43
|
|
|
44
44
|
/* Legacy alias for backwards compatibility */
|
|
45
45
|
--backdrop-background: var(--backdrop-bg);
|
|
46
|
-
`),t.push(this.#
|
|
47
|
-
`}#
|
|
46
|
+
`),t.push(this.#j(e)),`${t.join("")}
|
|
47
|
+
`}#j(e){let t=e.primary?.[500]||"#3b82f6",o=e.secondary?.[500]||"#8b5cf6",a=e.accent?.[500]||"#f59e0b";return`
|
|
48
48
|
/* Mesh Gradient Backgrounds */
|
|
49
49
|
--background-mesh-01: radial-gradient(at 27% 37%, color-mix(in oklab, ${t} 25%, transparent) 0px, transparent 50%),
|
|
50
50
|
radial-gradient(at 97% 21%, color-mix(in oklab, ${o} 22%, transparent) 0px, transparent 50%),
|
|
@@ -70,37 +70,37 @@ var yr=Object.defineProperty;var vr=(r,e)=>()=>(r&&(e=r(r=0)),e);var wr=(r,e)=>{
|
|
|
70
70
|
radial-gradient(at 10% 10%, color-mix(in oklab, ${a} 20%, transparent) 0px, transparent 50%),
|
|
71
71
|
radial-gradient(at 90% 10%, color-mix(in oklab, ${o} 18%, transparent) 0px, transparent 50%),
|
|
72
72
|
radial-gradient(at 50% 90%, color-mix(in oklab, ${a} 15%, transparent) 0px, transparent 50%);
|
|
73
|
-
`}#
|
|
73
|
+
`}#H(e){let t=[` /* Spacing */
|
|
74
74
|
`];return Object.entries(e).forEach(([o,a])=>{o!=null&&o!=="NaN"&&a!==void 0&&!a.includes("NaN")&&t.push(` --spacing-${o}: ${a};
|
|
75
75
|
`)}),`${t.join("")}
|
|
76
|
-
`}#
|
|
76
|
+
`}#W(e){let t=[` /* Border Radius */
|
|
77
77
|
`];return Object.entries(e).forEach(([o,a])=>{t.push(` --radius-${o}: ${a};
|
|
78
78
|
`)}),`${t.join("")}
|
|
79
|
-
`}#
|
|
79
|
+
`}#U(e){let t=[` /* Border Widths */
|
|
80
80
|
`];return Object.entries(e).forEach(([o,a])=>{t.push(` --border-width-${o}: ${a};
|
|
81
81
|
`)}),`${t.join("")}
|
|
82
|
-
`}#
|
|
82
|
+
`}#q(e){let t=[` /* Typography */
|
|
83
83
|
`];return Object.entries(e).forEach(([o,a])=>{let i=o.replace(/^font/,"").replace(/^(.)/,s=>s.toLowerCase()).replace(/([A-Z])/g,"-$1").toLowerCase();Object.entries(a).forEach(([s,n])=>{let c=s.replace(/([A-Z])/g,"-$1").toLowerCase();t.push(` --font-${i}-${c}: ${n};
|
|
84
84
|
`)})}),`${t.join("")}
|
|
85
|
-
`}#
|
|
85
|
+
`}#G(e){let t=[` /* Shadows */
|
|
86
86
|
`];return Object.entries(e).forEach(([o,a])=>{t.push(` --shadow-${o}: ${a};
|
|
87
87
|
`)}),`${t.join("")}
|
|
88
|
-
`}#
|
|
88
|
+
`}#V(e){let t=[` /* Layout */
|
|
89
89
|
`];return Object.entries(e).forEach(([o,a])=>{let i=o.replace(/([A-Z])/g,"-$1").toLowerCase();o!=="breakpoints"&&t.push(` --layout-${i}: ${a};
|
|
90
90
|
`)}),`${t.join("")}
|
|
91
|
-
`}#
|
|
91
|
+
`}#J(e){let t=[` /* Transitions */
|
|
92
92
|
`];return Object.entries(e).forEach(([o,a])=>{t.push(` --transition-${o}: ${a};
|
|
93
93
|
`)}),`${t.join("")}
|
|
94
|
-
`}#
|
|
94
|
+
`}#K(e){let t=[` /* Z-Index */
|
|
95
95
|
`];return Object.entries(e).forEach(([o,a])=>{t.push(` --z-${o}: ${a};
|
|
96
96
|
`)}),`${t.join("")}
|
|
97
|
-
`}#
|
|
97
|
+
`}#Y(e){let t=[` /* Icon System */
|
|
98
98
|
`];return t.push(` --icon-set: ${e.set};
|
|
99
99
|
`),t.push(` --icon-weight: ${e.weight};
|
|
100
100
|
`),t.push(` --icon-size: ${e.defaultSize};
|
|
101
101
|
`),Object.entries(e.sizes).forEach(([o,a])=>{t.push(` --icon-size-${o}: ${a};
|
|
102
102
|
`)}),`${t.join("")}
|
|
103
|
-
`}#
|
|
103
|
+
`}#Z(e){if(!e?.dark)return"";let t=[],o=(p,d="")=>{Object.entries(p).forEach(([l,h])=>{typeof h=="object"&&h!==null?o(h,`${d}${l}-`):typeof h=="string"&&t.push(` --color-${d}${l}: ${h};
|
|
104
104
|
`)})};Object.entries(e.dark).forEach(([p,d])=>{p!=="surfaceSmart"&&typeof d=="object"&&d!==null&&o(d,`${p}-`)});let a=[];e.dark.surfaceSmart&&(a.push(` /* Smart Surface Tokens (dark mode, context-aware) */
|
|
105
105
|
`),Object.entries(e.dark.surfaceSmart).forEach(([p,d])=>{a.push(` --surface-${p}-bg: ${d.bg};
|
|
106
106
|
`),a.push(` --surface-${p}-text: ${d.text};
|
|
@@ -133,9 +133,9 @@ var yr=Object.defineProperty;var vr=(r,e)=>()=>(r&&(e=r(r=0)),e);var wr=(r,e)=>{
|
|
|
133
133
|
|
|
134
134
|
/* Legacy alias for backwards compatibility */
|
|
135
135
|
--backdrop-background: var(--backdrop-bg);
|
|
136
|
-
`,n=this.#
|
|
136
|
+
`,n=this.#ee(e);return`html[data-theme="dark"] {
|
|
137
137
|
${[...t,...a,i,s,n].join("")}}
|
|
138
|
-
`}#
|
|
138
|
+
`}#Q(e){if(!e?.dark)return"";let t=[],o=(d,l="")=>{Object.entries(d).forEach(([h,g])=>{typeof g=="object"&&g!==null?o(g,`${l}${h}-`):typeof g=="string"&&t.push(` --color-${l}${h}: ${g};
|
|
139
139
|
`)})};Object.entries(e.dark).forEach(([d,l])=>{d!=="surfaceSmart"&&typeof l=="object"&&l!==null&&o(l,`${d}-`)});let a=[];e.dark.surfaceSmart&&(a.push(` /* Smart Surface Tokens (dark mode, context-aware) */
|
|
140
140
|
`),Object.entries(e.dark.surfaceSmart).forEach(([d,l])=>{a.push(` --surface-${d}-bg: ${l.bg};
|
|
141
141
|
`),a.push(` --surface-${d}-text: ${l.text};
|
|
@@ -171,10 +171,10 @@ ${[...t,...a,i,s,n].join("")}}
|
|
|
171
171
|
|
|
172
172
|
/* Legacy alias for backwards compatibility */
|
|
173
173
|
--backdrop-background: var(--backdrop-bg);
|
|
174
|
-
`,c=this.#
|
|
174
|
+
`,c=this.#X(e);return`
|
|
175
175
|
html[data-theme="dark"] {
|
|
176
176
|
${[...t,...a,s,n,c].join("")} }
|
|
177
|
-
`}#
|
|
177
|
+
`}#X(e){let t=e.dark||e,o=t.primary?.[400]||"#60a5fa",a=t.secondary?.[400]||"#a78bfa",i=t.accent?.[400]||"#fbbf24";return` /* Mesh Gradient Variables (Dark Mode) */
|
|
178
178
|
--background-mesh-01: radial-gradient(at 27% 37%, color-mix(in oklab, ${o} 20%, transparent) 0px, transparent 50%),
|
|
179
179
|
radial-gradient(at 97% 21%, color-mix(in oklab, ${a} 16%, transparent) 0px, transparent 50%),
|
|
180
180
|
radial-gradient(at 52% 99%, color-mix(in oklab, ${i} 13%, transparent) 0px, transparent 50%),
|
|
@@ -199,7 +199,7 @@ ${[...t,...a,s,n,c].join("")} }
|
|
|
199
199
|
radial-gradient(at 10% 10%, color-mix(in oklab, ${i} 14%, transparent) 0px, transparent 50%),
|
|
200
200
|
radial-gradient(at 90% 10%, color-mix(in oklab, ${a} 13%, transparent) 0px, transparent 50%),
|
|
201
201
|
radial-gradient(at 50% 90%, color-mix(in oklab, ${i} 10%, transparent) 0px, transparent 50%);
|
|
202
|
-
`}#
|
|
202
|
+
`}#ee(e){let t=e.dark||e,o=t.primary?.[400]||"#60a5fa",a=t.secondary?.[400]||"#a78bfa",i=t.accent?.[400]||"#fbbf24";return`
|
|
203
203
|
/* Mesh Gradient Backgrounds (Dark Mode) */
|
|
204
204
|
--background-mesh-01: radial-gradient(at 27% 37%, color-mix(in oklab, ${o} 20%, transparent) 0px, transparent 50%),
|
|
205
205
|
radial-gradient(at 97% 21%, color-mix(in oklab, ${a} 16%, transparent) 0px, transparent 50%),
|
|
@@ -225,7 +225,7 @@ ${[...t,...a,s,n,c].join("")} }
|
|
|
225
225
|
radial-gradient(at 10% 10%, color-mix(in oklab, ${i} 14%, transparent) 0px, transparent 50%),
|
|
226
226
|
radial-gradient(at 90% 10%, color-mix(in oklab, ${a} 13%, transparent) 0px, transparent 50%),
|
|
227
227
|
radial-gradient(at 50% 90%, color-mix(in oklab, ${i} 10%, transparent) 0px, transparent 50%);
|
|
228
|
-
`}#
|
|
228
|
+
`}#te(){return`/* Alert dark mode adjustments */
|
|
229
229
|
html[data-theme="dark"] {
|
|
230
230
|
.alert-success { background-color: var(--color-success-50); border-color: var(--color-success-500); color: var(--color-success-900); }
|
|
231
231
|
.alert-info { background-color: var(--color-info-50); border-color: var(--color-info-500); color: var(--color-info-900); }
|
|
@@ -233,11 +233,11 @@ html[data-theme="dark"] {
|
|
|
233
233
|
.alert-danger, .alert-error { background-color: var(--color-danger-50); border-color: var(--color-danger-500); color: var(--color-danger-900); }
|
|
234
234
|
img, video { opacity: 0.8; transition: opacity var(--transition-normal); }
|
|
235
235
|
img:hover, video:hover { opacity: 1; }
|
|
236
|
-
}`}#
|
|
236
|
+
}`}#re(){try{let e=this.options?.design?.options?.backgroundMesh;this.options.debug&&this.options.log?.("debug","backgroundMesh check:",e);let t=Number(e);return!Number.isFinite(t)||t===0?"":`/* Optional background mesh applied from config */
|
|
237
237
|
body {
|
|
238
238
|
background: var(--background-mesh-0${Math.max(1,Math.min(5,Math.floor(t)))});
|
|
239
239
|
background-attachment: fixed;
|
|
240
|
-
}`}catch(e){return this.options.debug&&this.options.log?.("error","Error in generateBodyBackgroundMeshRule:",e),""}}#
|
|
240
|
+
}`}catch(e){return this.options.debug&&this.options.log?.("error","Error in generateBodyBackgroundMeshRule:",e),""}}#oe(){try{return this.options?.design?.options?.liquidGlassEffects?`/* Liquid glass utility (opt-in via options.liquidGlassEffects) */
|
|
241
241
|
.liquid-glass {
|
|
242
242
|
border-radius: var(--radius-lg);
|
|
243
243
|
/* Subtle translucent fill blended with surface */
|
|
@@ -294,7 +294,7 @@ html[data-theme="dark"] .liquid-glass {
|
|
|
294
294
|
0 18px 32px rgba(0,0,0,0.58);
|
|
295
295
|
}
|
|
296
296
|
}
|
|
297
|
-
`:""}catch{return""}}#
|
|
297
|
+
`:""}catch{return""}}#ae(){return`/* ============================================================================
|
|
298
298
|
Border Gradient Utilities
|
|
299
299
|
Card outlines with gradient borders and glow effects
|
|
300
300
|
============================================================================ */
|
|
@@ -419,7 +419,7 @@ html[data-theme="dark"] .liquid-glass {
|
|
|
419
419
|
box-shadow: 0 0 12px var(--color-danger-500);
|
|
420
420
|
}
|
|
421
421
|
|
|
422
|
-
`}#
|
|
422
|
+
`}#ie(){let{layout:e={}}=this.options.design,t=e.breakpoints||{sm:640,md:768,lg:1024,xl:1280};return`/* Semantic HTML Elements (low-specificity via :where()) */
|
|
423
423
|
|
|
424
424
|
:where(blockquote) {
|
|
425
425
|
margin: 0 0 var(--spacing-4) 0;
|
|
@@ -610,7 +610,7 @@ html[data-theme="dark"] .liquid-glass {
|
|
|
610
610
|
|
|
611
611
|
/* Dialog styles moved to #generateDialogStyles() */
|
|
612
612
|
|
|
613
|
-
`}#
|
|
613
|
+
`}#se(){let{gap:e,inputPadding:t,buttonPadding:o,focusRingWidth:a,focusRingOpacity:i,borderWidthThin:s,sectionSpacing:n,buttonMinHeight:c,inputMinHeight:p}=this.options.design,d=t||.75,l=o||1,h=a||3,g=s||1,y=e||1,k=n||2,f=c||44;return`/* Mobile-First Form Styles - Generated from Design Config */
|
|
614
614
|
form {
|
|
615
615
|
margin: 0;
|
|
616
616
|
width: 100%;
|
|
@@ -1472,7 +1472,7 @@ a.btn-working {
|
|
|
1472
1472
|
}
|
|
1473
1473
|
}
|
|
1474
1474
|
|
|
1475
|
-
`}#
|
|
1475
|
+
`}#ne(){let{layout:e={}}=this.options.design,t=e.breakpoints||{sm:640,md:768,lg:1024,xl:1280};return`/* Table Styles - Mobile First */
|
|
1476
1476
|
|
|
1477
1477
|
table {
|
|
1478
1478
|
width: 100%;
|
|
@@ -1553,7 +1553,7 @@ tbody {
|
|
|
1553
1553
|
}
|
|
1554
1554
|
}
|
|
1555
1555
|
|
|
1556
|
-
`}#
|
|
1556
|
+
`}#ce(){return`/* Alert/Notification Styles */
|
|
1557
1557
|
|
|
1558
1558
|
/* Alias: .semantic-message shares alert base styles */
|
|
1559
1559
|
.alert, .semantic-message {
|
|
@@ -1639,87 +1639,82 @@ tbody {
|
|
|
1639
1639
|
}
|
|
1640
1640
|
}
|
|
1641
1641
|
|
|
1642
|
-
`}#
|
|
1642
|
+
`}#le(){return`/* Accordion (details/summary) */
|
|
1643
1643
|
|
|
1644
|
-
.accordion {
|
|
1645
|
-
|
|
1646
|
-
|
|
1647
|
-
|
|
1648
|
-
|
|
1649
|
-
|
|
1650
|
-
border: var(--_acc-border);
|
|
1651
|
-
border-radius: var(--_acc-radius);
|
|
1652
|
-
background: var(--_acc-bg);
|
|
1653
|
-
margin: 0 0 var(--spacing-3) 0;
|
|
1654
|
-
|
|
1655
|
-
&[open] {
|
|
1656
|
-
& > summary::after {
|
|
1657
|
-
transform: rotate(45deg);
|
|
1658
|
-
}
|
|
1644
|
+
:where(.accordion details) {
|
|
1645
|
+
border: 1px solid var(--color-border);
|
|
1646
|
+
border-radius: var(--radius-md);
|
|
1647
|
+
background: var(--color-surface-base);
|
|
1648
|
+
margin: 0 0 var(--spacing-3) 0;
|
|
1649
|
+
overflow: hidden;
|
|
1659
1650
|
|
|
1660
|
-
|
|
1661
|
-
|
|
1662
|
-
|
|
1651
|
+
&[open] {
|
|
1652
|
+
& > summary::after {
|
|
1653
|
+
transform: rotate(45deg);
|
|
1663
1654
|
}
|
|
1664
1655
|
|
|
1665
|
-
/* Modern approach: animate block-size with ::details-content */
|
|
1666
1656
|
&::details-content {
|
|
1667
|
-
block-size:
|
|
1668
|
-
overflow: hidden;
|
|
1669
|
-
transition: block-size var(--transition-normal) ease, content-visibility var(--transition-normal);
|
|
1670
|
-
transition-behavior: allow-discrete;
|
|
1657
|
+
block-size: auto;
|
|
1671
1658
|
}
|
|
1659
|
+
}
|
|
1672
1660
|
|
|
1673
|
-
|
|
1674
|
-
|
|
1675
|
-
|
|
1676
|
-
|
|
1677
|
-
|
|
1661
|
+
/* Modern approach: animate block-size with ::details-content */
|
|
1662
|
+
&::details-content {
|
|
1663
|
+
block-size: 0;
|
|
1664
|
+
overflow: hidden;
|
|
1665
|
+
transition: block-size var(--transition-normal) ease, content-visibility var(--transition-normal);
|
|
1666
|
+
transition-behavior: allow-discrete;
|
|
1678
1667
|
}
|
|
1679
1668
|
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
padding: var(--spacing-
|
|
1683
|
-
|
|
1684
|
-
|
|
1685
|
-
|
|
1686
|
-
gap: var(--spacing-2);
|
|
1687
|
-
border-radius: var(--radius-sm);
|
|
1688
|
-
transition: background-color var(--transition-fast), box-shadow var(--transition-fast);
|
|
1669
|
+
/* Content padding (works for both approaches) */
|
|
1670
|
+
& > :not(summary) > * {
|
|
1671
|
+
padding-inline: var(--spacing-4);
|
|
1672
|
+
padding-block: var(--spacing-3);
|
|
1673
|
+
}
|
|
1674
|
+
}
|
|
1689
1675
|
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
|
|
1676
|
+
:where(.accordion summary) {
|
|
1677
|
+
cursor: pointer;
|
|
1678
|
+
padding: var(--spacing-3) var(--spacing-4);
|
|
1679
|
+
list-style: none;
|
|
1680
|
+
display: flex;
|
|
1681
|
+
align-items: center;
|
|
1682
|
+
gap: var(--spacing-2);
|
|
1683
|
+
border-radius: inherit;
|
|
1684
|
+
transition: background-color var(--transition-fast), box-shadow var(--transition-fast);
|
|
1693
1685
|
|
|
1694
|
-
|
|
1695
|
-
|
|
1696
|
-
|
|
1686
|
+
&::-webkit-details-marker {
|
|
1687
|
+
display: none;
|
|
1688
|
+
}
|
|
1697
1689
|
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
|
|
1690
|
+
&:hover {
|
|
1691
|
+
background-color: var(--color-surface-subtle);
|
|
1692
|
+
}
|
|
1701
1693
|
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
|
|
1694
|
+
&:focus {
|
|
1695
|
+
outline: none;
|
|
1696
|
+
}
|
|
1705
1697
|
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
|
|
1715
|
-
|
|
1716
|
-
|
|
1698
|
+
&:focus-visible {
|
|
1699
|
+
box-shadow: 0 0 0 3px color-mix(in oklab, var(--color-primary-500) 30%, transparent);
|
|
1700
|
+
}
|
|
1701
|
+
|
|
1702
|
+
/* Chevron indicator */
|
|
1703
|
+
&::after {
|
|
1704
|
+
content: "";
|
|
1705
|
+
margin-inline-start: auto;
|
|
1706
|
+
inline-size: 0.7em;
|
|
1707
|
+
block-size: 0.7em;
|
|
1708
|
+
border-inline-end: 2px solid currentColor;
|
|
1709
|
+
border-block-end: 2px solid currentColor;
|
|
1710
|
+
transform: rotate(-45deg);
|
|
1711
|
+
transition: transform var(--transition-normal);
|
|
1717
1712
|
}
|
|
1718
1713
|
}
|
|
1719
1714
|
|
|
1720
1715
|
/* Fallback: grid trick for browsers without ::details-content support */
|
|
1721
1716
|
@supports not selector(::details-content) {
|
|
1722
|
-
.accordion details {
|
|
1717
|
+
:where(.accordion details) {
|
|
1723
1718
|
& > :not(summary) {
|
|
1724
1719
|
display: grid;
|
|
1725
1720
|
grid-template-rows: 0fr;
|
|
@@ -1736,7 +1731,7 @@ tbody {
|
|
|
1736
1731
|
}
|
|
1737
1732
|
}
|
|
1738
1733
|
}
|
|
1739
|
-
`}#
|
|
1734
|
+
`}#de(){return`/* Badge/Pill Styles */
|
|
1740
1735
|
|
|
1741
1736
|
.badge {
|
|
1742
1737
|
display: inline-flex;
|
|
@@ -1776,7 +1771,7 @@ tbody {
|
|
|
1776
1771
|
.badge-lg { padding: var(--spacing-2) var(--spacing-3); font-size: var(--font-size-sm); }
|
|
1777
1772
|
.pill { padding: var(--spacing-1) var(--spacing-3); border-radius: var(--radius-full); }
|
|
1778
1773
|
|
|
1779
|
-
`}#
|
|
1774
|
+
`}#pe(){let{layout:e={},behavior:t={}}=this.options.design;return`/* ============================================================================
|
|
1780
1775
|
Dialog Primitive
|
|
1781
1776
|
Native <dialog> element with PDS integration
|
|
1782
1777
|
============================================================================ */
|
|
@@ -1962,7 +1957,7 @@ dialog.dialog-full { max-width: calc(100vw - var(--spacing-8)); max-height: calc
|
|
|
1962
1957
|
dialog, dialog::backdrop { transition-duration: 0.01s !important; }
|
|
1963
1958
|
}
|
|
1964
1959
|
|
|
1965
|
-
`}#
|
|
1960
|
+
`}#ue(){let{layout:e={}}=this.options.design;return`/* Tab Strip Component */
|
|
1966
1961
|
|
|
1967
1962
|
/* Tab navigation */
|
|
1968
1963
|
|
|
@@ -2059,7 +2054,7 @@ pds-tabstrip {
|
|
|
2059
2054
|
pds-tabstrip > pds-tabpanel[data-tabpanel] { padding: var(--spacing-3) 0; }
|
|
2060
2055
|
}
|
|
2061
2056
|
|
|
2062
|
-
`}#
|
|
2057
|
+
`}#he(){return`/* Custom Scrollbars */
|
|
2063
2058
|
::-webkit-scrollbar { width: 12px; height: 12px; }
|
|
2064
2059
|
::-webkit-scrollbar-track { background: transparent; }
|
|
2065
2060
|
::-webkit-scrollbar-thumb {
|
|
@@ -2085,7 +2080,7 @@ pds-tabstrip {
|
|
|
2085
2080
|
*:hover { scrollbar-color: var(--color-secondary-400) transparent; }
|
|
2086
2081
|
@media (prefers-color-scheme: dark) { *:hover { scrollbar-color: var(--color-secondary-500) transparent; } }
|
|
2087
2082
|
|
|
2088
|
-
`}#
|
|
2083
|
+
`}#ge(){let{a11y:e={}}=this.options.design,t=e.minTouchTarget||u.TouchTargetSizes.standard;return`/* Icon System */
|
|
2089
2084
|
|
|
2090
2085
|
pds-icon {
|
|
2091
2086
|
display: inline-flex;
|
|
@@ -2153,7 +2148,7 @@ button, a {
|
|
|
2153
2148
|
input { padding-left: var(--spacing-4); padding-right: calc(var(--icon-size-md) + var(--spacing-6)); width: 100%; }
|
|
2154
2149
|
}
|
|
2155
2150
|
|
|
2156
|
-
`}#
|
|
2151
|
+
`}#me(){return`/* Dropdown Component */
|
|
2157
2152
|
|
|
2158
2153
|
/* Basic dropdown host */
|
|
2159
2154
|
nav[data-dropdown] {
|
|
@@ -2297,7 +2292,7 @@ nav[data-dropdown] {
|
|
|
2297
2292
|
scale: 0.95;
|
|
2298
2293
|
}
|
|
2299
2294
|
}
|
|
2300
|
-
`}#
|
|
2295
|
+
`}#fe(){let{layout:e={}}=this.options.design,t=e.breakpoints||{sm:640,md:768,lg:1024,xl:1280},o=e.gridSystem||{},a=o.columns||[1,2,3,4,6],i=o.autoFitBreakpoints||{sm:"150px",md:"250px",lg:"350px",xl:"450px"},s=this.#k(e),n=[`
|
|
2301
2296
|
/* ============================================================================
|
|
2302
2297
|
Layout Utilities
|
|
2303
2298
|
Modern grid and flex system for building responsive layouts
|
|
@@ -2318,15 +2313,15 @@ nav[data-dropdown] {
|
|
|
2318
2313
|
gap: var(--spacing-4);
|
|
2319
2314
|
}
|
|
2320
2315
|
|
|
2321
|
-
`];for(let
|
|
2322
|
-
`);
|
|
2316
|
+
`];for(let c of a)n.push(`.grid-cols-${c} { grid-template-columns: repeat(${c}, 1fr); }
|
|
2317
|
+
`);n.push(`
|
|
2323
2318
|
/* Auto-fit grids (responsive) */
|
|
2324
|
-
`);for(let[
|
|
2325
|
-
`);return
|
|
2319
|
+
`);for(let[c,p]of Object.entries(i))n.push(`.grid-auto-${c} { grid-template-columns: repeat(auto-fit, minmax(${p}, 1fr)); }
|
|
2320
|
+
`);return n.push(`
|
|
2326
2321
|
/* Gap utilities */
|
|
2327
2322
|
.gap-0 { gap: 0; } .gap-xs { gap: var(--spacing-1); } .gap-sm { gap: var(--spacing-2); } .gap-md { gap: var(--spacing-4); } .gap-lg { gap: var(--spacing-6); } .gap-xl { gap: var(--spacing-8); }
|
|
2328
2323
|
|
|
2329
|
-
`),
|
|
2324
|
+
`),n.push(`
|
|
2330
2325
|
/* Flexbox System */
|
|
2331
2326
|
.flex { display: flex; }
|
|
2332
2327
|
.flex-wrap { flex-wrap: wrap; }
|
|
@@ -2354,7 +2349,7 @@ nav[data-dropdown] {
|
|
|
2354
2349
|
}
|
|
2355
2350
|
|
|
2356
2351
|
/* Max-width utilities */
|
|
2357
|
-
.max-w-sm { max-width:
|
|
2352
|
+
.max-w-sm { max-width: var(--layout-max-width-sm, ${s.sm}); } .max-w-md { max-width: var(--layout-max-width-md, ${s.md}); } .max-w-lg { max-width: var(--layout-max-width-lg, ${s.lg}); } .max-w-xl { max-width: var(--layout-max-width-xl, ${s.xl}); }
|
|
2358
2353
|
|
|
2359
2354
|
/* Stack utilities - vertical rhythm for stacked elements */
|
|
2360
2355
|
[class^="stack-"], [class*=" stack-"] {
|
|
@@ -2403,7 +2398,7 @@ nav[data-dropdown] {
|
|
|
2403
2398
|
.backdrop-light { --backdrop-bg: linear-gradient(135deg, rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0.2)); --backdrop-brightness: 1.1; }
|
|
2404
2399
|
.backdrop-dark { --backdrop-bg: linear-gradient(135deg, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.5)); --backdrop-brightness: 0.6; }
|
|
2405
2400
|
.backdrop-blur-sm { --backdrop-blur: 5px; } .backdrop-blur-md { --backdrop-blur: 10px; } .backdrop-blur-lg { --backdrop-blur: 20px; }
|
|
2406
|
-
`),
|
|
2401
|
+
`),n.join("")}#be(){return`/* Media Element Utilities */
|
|
2407
2402
|
|
|
2408
2403
|
/* Gallery images */
|
|
2409
2404
|
.img-gallery {
|
|
@@ -2441,7 +2436,7 @@ nav[data-dropdown] {
|
|
|
2441
2436
|
height: auto;
|
|
2442
2437
|
}
|
|
2443
2438
|
|
|
2444
|
-
`}#
|
|
2439
|
+
`}#ye(){let{layout:e={},a11y:t={}}=this.options.design,o=e.breakpoints||{sm:640,md:768,lg:1024,xl:1280},a=t.minTouchTarget||u.TouchTargetSizes.standard;return`/* Mobile-First Responsive Design */
|
|
2445
2440
|
|
|
2446
2441
|
/* Small devices (${o.sm}px and up) */
|
|
2447
2442
|
@media (min-width: ${o.sm}px) {
|
|
@@ -2545,23 +2540,23 @@ nav[data-dropdown] {
|
|
|
2545
2540
|
}
|
|
2546
2541
|
}
|
|
2547
2542
|
|
|
2548
|
-
`}#
|
|
2543
|
+
`}#s(e){let t=parseInt(e.slice(1,3),16)/255,o=parseInt(e.slice(3,5),16)/255,a=parseInt(e.slice(5,7),16)/255,i=Math.max(t,o,a),s=Math.min(t,o,a),n,c,p=(i+s)/2;if(i===s)n=c=0;else{let d=i-s;switch(c=p>.5?d/(2-i-s):d/(i+s),i){case t:n=(o-a)/d+(o<a?6:0);break;case o:n=(a-t)/d+2;break;case a:n=(t-o)/d+4;break}n/=6}return{h:n*360,s:c*100,l:p*100}}#t(e,t,o){e=e/360,t=t/100,o=o/100;let a=(p,d,l)=>(l<0&&(l+=1),l>1&&(l-=1),l<1/6?p+(d-p)*6*l:l<1/2?d:l<2/3?p+(d-p)*(2/3-l)*6:p),i,s,n;if(t===0)i=s=n=o;else{let p=o<.5?o*(1+t):o+t-o*t,d=2*o-p;i=a(d,p,e+1/3),s=a(d,p,e),n=a(d,p,e-1/3)}let c=p=>{let d=Math.round(p*255).toString(16);return d.length===1?"0"+d:d};return`#${c(i)}${c(s)}${c(n)}`}getTokens(){return this.tokens}exportCSS(){return this.layeredCSS}#ve(){this.#e={tokens:this.#we(),primitives:this.#xe(),components:this.#ke(),utilities:this.#Se()},this.options.debug&&this.options.log?.("debug","[Generator] Layer sizes:",{tokens:`${(this.#e.tokens.length/1024).toFixed(2)} KB`,primitives:`${(this.#e.primitives.length/1024).toFixed(2)} KB`,components:`${(this.#e.components.length/1024).toFixed(2)} KB`,utilities:`${(this.#e.utilities.length/1024).toFixed(2)} KB`})}#we(){let{colors:e,spacing:t,radius:o,borderWidths:a,typography:i,shadows:s,layout:n,transitions:c,zIndex:p,icons:d}=this.tokens,l=[`@layer tokens {
|
|
2549
2544
|
:root {
|
|
2550
|
-
${this.#
|
|
2551
|
-
${this.#
|
|
2552
|
-
${this.#
|
|
2553
|
-
${this.#
|
|
2554
|
-
${this.#
|
|
2555
|
-
${this.#
|
|
2556
|
-
${this.#
|
|
2557
|
-
${this.#
|
|
2558
|
-
${this.#
|
|
2559
|
-
${this.#
|
|
2545
|
+
${this.#O(e)}
|
|
2546
|
+
${this.#H(t)}
|
|
2547
|
+
${this.#W(o)}
|
|
2548
|
+
${this.#U(a)}
|
|
2549
|
+
${this.#q(i)}
|
|
2550
|
+
${this.#G(s)}
|
|
2551
|
+
${this.#V(n)}
|
|
2552
|
+
${this.#J(c)}
|
|
2553
|
+
${this.#K(p)}
|
|
2554
|
+
${this.#Y(d)}
|
|
2560
2555
|
}
|
|
2561
|
-
${this.#
|
|
2556
|
+
${this.#Q(e)}
|
|
2562
2557
|
}`];return l.push(`
|
|
2563
2558
|
/* Non-layered dark variables fallback (ensures attribute wins) */
|
|
2564
|
-
`),l.push(this.#
|
|
2559
|
+
`),l.push(this.#Z(e)),l.join("")}#xe(){let{advanced:e={},a11y:t={},layout:o={}}=this.options.design,a=e.tabSize||u.TabSizes.standard,i=t.minTouchTarget||u.TouchTargetSizes.standard,s=o.breakpoints||{sm:640,md:768,lg:1024,xl:1280};return`@layer primitives {
|
|
2565
2560
|
/* Base HTML reset */
|
|
2566
2561
|
*, *::before, *::after {
|
|
2567
2562
|
box-sizing: border-box;
|
|
@@ -2692,7 +2687,7 @@ nav[data-dropdown] {
|
|
|
2692
2687
|
|
|
2693
2688
|
/* Link primitives */
|
|
2694
2689
|
:where(a) {
|
|
2695
|
-
color: var(--color-primary-600);
|
|
2690
|
+
color: var(--color-primary-text, var(--color-primary-600));
|
|
2696
2691
|
text-decoration: underline;
|
|
2697
2692
|
text-underline-offset: 0.2em;
|
|
2698
2693
|
transition: opacity var(--transition-fast);
|
|
@@ -2910,25 +2905,25 @@ nav[data-dropdown] {
|
|
|
2910
2905
|
}
|
|
2911
2906
|
}
|
|
2912
2907
|
|
|
2913
|
-
`}#
|
|
2914
|
-
|
|
2915
|
-
${this.#re()}
|
|
2916
|
-
|
|
2917
|
-
${this.#oe()}
|
|
2908
|
+
`}#ke(){return`@layer components {
|
|
2918
2909
|
|
|
2919
2910
|
${this.#ie()}
|
|
2920
2911
|
|
|
2921
|
-
${this.#
|
|
2912
|
+
${this.#se()}
|
|
2922
2913
|
|
|
2923
2914
|
${this.#ce()}
|
|
2924
2915
|
|
|
2925
|
-
${this.#
|
|
2916
|
+
${this.#de()}
|
|
2926
2917
|
|
|
2927
|
-
${this.#
|
|
2918
|
+
${this.#pe()}
|
|
2928
2919
|
|
|
2929
2920
|
${this.#le()}
|
|
2930
2921
|
|
|
2931
|
-
${this.#
|
|
2922
|
+
${this.#me()}
|
|
2923
|
+
|
|
2924
|
+
${this.#ue()}
|
|
2925
|
+
|
|
2926
|
+
${this.#ne()}
|
|
2932
2927
|
|
|
2933
2928
|
/* Card component */
|
|
2934
2929
|
|
|
@@ -2955,24 +2950,24 @@ ${this.#ae()}
|
|
|
2955
2950
|
transition: transform var(--transition-fast), box-shadow var(--transition-fast);
|
|
2956
2951
|
}
|
|
2957
2952
|
|
|
2958
|
-
${this.#
|
|
2953
|
+
${this.#he()}
|
|
2959
2954
|
|
|
2960
|
-
${this.#
|
|
2955
|
+
${this.#te()}
|
|
2961
2956
|
|
|
2962
2957
|
}
|
|
2963
|
-
`}#
|
|
2958
|
+
`}#Se(){return`@layer utilities {
|
|
2964
2959
|
|
|
2965
|
-
${this.#
|
|
2960
|
+
${this.#ge()}
|
|
2966
2961
|
|
|
2967
|
-
${this.#
|
|
2962
|
+
${this.#fe()}
|
|
2968
2963
|
|
|
2969
2964
|
/* Optional utilities/features controlled by config options */
|
|
2970
2965
|
/* - Body background mesh rule (applies one of the generated mesh vars) */
|
|
2971
2966
|
/* - Liquid glass utility class */
|
|
2972
|
-
${this.#
|
|
2973
|
-
${this.#
|
|
2967
|
+
${this.#re()}
|
|
2968
|
+
${this.#oe()}
|
|
2974
2969
|
|
|
2975
|
-
${this.#
|
|
2970
|
+
${this.#ae()}
|
|
2976
2971
|
|
|
2977
2972
|
/* Surface utilities */
|
|
2978
2973
|
|
|
@@ -3153,15 +3148,15 @@ html[data-theme="dark"] .surface-inverse {
|
|
|
3153
3148
|
}
|
|
3154
3149
|
|
|
3155
3150
|
|
|
3156
|
-
${this.#
|
|
3151
|
+
${this.#be()}
|
|
3157
3152
|
|
|
3158
|
-
${this.#
|
|
3153
|
+
${this.#ye()}
|
|
3159
3154
|
|
|
3160
3155
|
}
|
|
3161
|
-
`}
|
|
3156
|
+
`}#$e(){this.#r={tokens:new CSSStyleSheet,primitives:new CSSStyleSheet,components:new CSSStyleSheet,utilities:new CSSStyleSheet},this.#Ce()}#Ce(){this.#r.tokens.replaceSync(this.#e.tokens),this.#r.primitives.replaceSync(this.#e.primitives),this.#r.components.replaceSync(this.#e.components),this.#r.utilities.replaceSync(this.#e.utilities)}get tokensCSS(){return this.#e?.tokens||""}get primitivesCSS(){return this.#e?.primitives||""}get componentsCSS(){return this.#e?.components||""}get utilitiesCSS(){return this.#e?.utilities||""}get layeredCSS(){return this.#e?`${this.#e.tokens}
|
|
3162
3157
|
${this.#e.primitives}
|
|
3163
3158
|
${this.#e.components}
|
|
3164
|
-
${this.#e.utilities}`:""}get compiled(){return{tokens:{colors:this.tokens.colors,spacing:this.tokens.spacing,radius:this.tokens.radius,borderWidths:this.tokens.borderWidths,typography:this.tokens.typography,shadows:this.tokens.shadows,layout:this.tokens.layout,transitions:this.tokens.transitions,zIndex:this.tokens.zIndex,icons:this.tokens.icons},layers:{tokens:{css:this.#e?.tokens||"",size:this.#e?.tokens?.length||0,sizeKB:((this.#e?.tokens?.length||0)/1024).toFixed(2)},primitives:{css:this.#e?.primitives||"",size:this.#e?.primitives?.length||0,sizeKB:((this.#e?.primitives?.length||0)/1024).toFixed(2)},components:{css:this.#e?.components||"",size:this.#e?.components?.length||0,sizeKB:((this.#e?.components?.length||0)/1024).toFixed(2)},utilities:{css:this.#e?.utilities||"",size:this.#e?.utilities?.length||0,sizeKB:((this.#e?.utilities?.length||0)/1024).toFixed(2)},combined:{css:this.layeredCSS,size:this.layeredCSS?.length||0,sizeKB:((this.layeredCSS?.length||0)/1024).toFixed(2)}},config:{design:this.options.design||{},preset:this.options.preset||null,debug:this.options.debug||!1},capabilities:{constructableStylesheets:typeof CSSStyleSheet<"u",blobURLs:typeof Blob<"u"&&typeof URL<"u",shadowDOM:typeof ShadowRoot<"u"},references:{ontology:typeof at<"u"?at:null,enums:typeof u<"u"?u:null},meta:{generatedAt:new Date().toISOString(),totalSize:(this.#e?.tokens?.length||0)+(this.#e?.primitives?.length||0)+(this.#e?.components?.length||0)+(this.#e?.utilities?.length||0),totalSizeKB:(((this.#e?.tokens?.length||0)+(this.#e?.primitives?.length||0)+(this.#e?.components?.length||0)+(this.#e?.utilities?.length||0))/1024).toFixed(2),layerCount:4,tokenGroups:Object.keys(this.tokens).length},helpers:{getColorScales:()=>{let e=[],t=this.tokens.colors;for(let[o,a]of Object.entries(t))typeof a=="object"&&a!==null&&e.push({name:o,scale:a});return e},getColorScale:e=>this.tokens.colors[e]||null,getSpacingValues:()=>Object.entries(this.tokens.spacing).map(([e,t])=>({key:e,value:t})),getTypography:()=>this.tokens.typography,getLayerCSS:e=>{let t=["tokens","primitives","components","utilities"];if(!t.includes(e))throw new Error(`Invalid layer: ${e}. Must be one of ${t.join(", ")}`);return this.#e?.[e]||""},usesEnumValue:(e,t)=>{let o=this.options.design||{};return JSON.stringify(o).includes(t)}}}}get tokensStylesheet(){return this.#r?.tokens}get primitivesStylesheet(){return this.#r?.primitives}get componentsStylesheet(){return this.#r?.components}get utilitiesStylesheet(){return this.#r?.utilities}getCSSModules(){return{"pds-tokens.css.js":this.#
|
|
3159
|
+
${this.#e.utilities}`:""}get compiled(){return{tokens:{colors:this.tokens.colors,spacing:this.tokens.spacing,radius:this.tokens.radius,borderWidths:this.tokens.borderWidths,typography:this.tokens.typography,shadows:this.tokens.shadows,layout:this.tokens.layout,transitions:this.tokens.transitions,zIndex:this.tokens.zIndex,icons:this.tokens.icons},layers:{tokens:{css:this.#e?.tokens||"",size:this.#e?.tokens?.length||0,sizeKB:((this.#e?.tokens?.length||0)/1024).toFixed(2)},primitives:{css:this.#e?.primitives||"",size:this.#e?.primitives?.length||0,sizeKB:((this.#e?.primitives?.length||0)/1024).toFixed(2)},components:{css:this.#e?.components||"",size:this.#e?.components?.length||0,sizeKB:((this.#e?.components?.length||0)/1024).toFixed(2)},utilities:{css:this.#e?.utilities||"",size:this.#e?.utilities?.length||0,sizeKB:((this.#e?.utilities?.length||0)/1024).toFixed(2)},combined:{css:this.layeredCSS,size:this.layeredCSS?.length||0,sizeKB:((this.layeredCSS?.length||0)/1024).toFixed(2)}},config:{design:this.options.design||{},preset:this.options.preset||null,debug:this.options.debug||!1},capabilities:{constructableStylesheets:typeof CSSStyleSheet<"u",blobURLs:typeof Blob<"u"&&typeof URL<"u",shadowDOM:typeof ShadowRoot<"u"},references:{ontology:typeof at<"u"?at:null,enums:typeof u<"u"?u:null},meta:{generatedAt:new Date().toISOString(),totalSize:(this.#e?.tokens?.length||0)+(this.#e?.primitives?.length||0)+(this.#e?.components?.length||0)+(this.#e?.utilities?.length||0),totalSizeKB:(((this.#e?.tokens?.length||0)+(this.#e?.primitives?.length||0)+(this.#e?.components?.length||0)+(this.#e?.utilities?.length||0))/1024).toFixed(2),layerCount:4,tokenGroups:Object.keys(this.tokens).length},helpers:{getColorScales:()=>{let e=[],t=this.tokens.colors;for(let[o,a]of Object.entries(t))typeof a=="object"&&a!==null&&e.push({name:o,scale:a});return e},getColorScale:e=>this.tokens.colors[e]||null,getSpacingValues:()=>Object.entries(this.tokens.spacing).map(([e,t])=>({key:e,value:t})),getTypography:()=>this.tokens.typography,getLayerCSS:e=>{let t=["tokens","primitives","components","utilities"];if(!t.includes(e))throw new Error(`Invalid layer: ${e}. Must be one of ${t.join(", ")}`);return this.#e?.[e]||""},usesEnumValue:(e,t)=>{let o=this.options.design||{};return JSON.stringify(o).includes(t)}}}}get tokensStylesheet(){return this.#r?.tokens}get primitivesStylesheet(){return this.#r?.primitives}get componentsStylesheet(){return this.#r?.components}get utilitiesStylesheet(){return this.#r?.utilities}getCSSModules(){return{"pds-tokens.css.js":this.#d("tokens",this.#e.tokens),"pds-primitives.css.js":this.#d("primitives",this.#e.primitives),"pds-components.css.js":this.#d("components",this.#e.components),"pds-utilities.css.js":this.#d("utilities",this.#e.utilities),"pds-styles.css.js":this.#d("styles",this.layeredCSS)}}#d(e,t){let o=t.replace(/\\/g,"\\\\").replace(/`/g,"\\`").replace(/\$/g,"\\$");return`// Pure Design System - ${e}
|
|
3165
3160
|
// Auto-generated - do not edit directly
|
|
3166
3161
|
|
|
3167
3162
|
export const ${e} = new CSSStyleSheet();
|
|
@@ -3203,11 +3198,11 @@ See: https://github.com/pure-ds/core#lit-components`):console.warn(`\u26A0\uFE0F
|
|
|
3203
3198
|
${this.handleImageOrIcon(s)}
|
|
3204
3199
|
<span class="text">${this.formatResultItem(s,t,i)}</span>
|
|
3205
3200
|
${this.settings.hideCategory?"":`<span class="category">${s.category||""}</span>`}
|
|
3206
|
-
</div>`;e.forEach(i=>{let s=t.categories[i.category]||{};i.element?this.resultsDiv.appendChild(i.element):(i=typeof i=="string"?{text:i}:i,this.resultsDiv.appendChild(ur(a(s,i))[0])),o++}),e.length?(this.acItems=this.resultsDiv.querySelectorAll(".ac-itm"),this.controller().show()):t.search.length&&this.controller().empty()}handleImageOrIcon(e){return e.image?`<img src="${e.image}"/>`:typeof this.settings.iconHandler=="function"?this.settings.iconHandler(e):`<svg-icon icon="${e.icon}"></svg-icon>`}formatResultItem(e,t,o){let a=typeof e=="string"?{text:e}:e,i=a.text;return t.search&&(i=i.replace("%search%",t.search),a.description=a.description?.replace("%search%",t.search)),i=this.highlight(i,t.search),a.description&&(i=`<div>${i}</div><small>${a.description}</small>`),o.format&&(i=o.format({item:a,result:i,options:t})),i}highlight(e,t){var o=new RegExp("("+t+")","gi");return e.replace(o,'<span class="txt-hl">$1</span>')}async getItems(e,t){this.aborter&&this.aborter.abort();let o=this.caches.get(e.search);if(o)return o;let a=this.settings.map,i=c=>(typeof c=="string"&&(c={text:c}),c),s=c=>a?c.map(p=>({text:p[a]})):c.map(p=>i(p)),n=c=>(this.settings.max&&this.settings.max>0&&(c.length=this.settings.max),c);return this.aborter=new AbortController,this.aborterSignal=this.aborter.signal,new Promise(c=>{let p=d=>{d=this.sort(d,e),this.settings.cache!==!1&&this.caches.set(e.search,d),c(d)};if(gr(this.items)){if(this.settings.minlength>0&&(!e.search||e.search.length<this.settings.minlength)){p([]);return}let d=this.formatSearch(this.items,e);fetch(d).then(l=>{if(l.status===200){l.json().then(h=>{h=s(h),p(n(h.filter(g=>this.isMatch(e,g))))});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"),p(n(s(this.items)))}else if(typeof this.items=="function")e.control=this.container,Promise.resolve(this.items(e,t)).then(l=>{l=l.map(h=>i(h)),l=s(l),p(l)});else return p(Promise.resolve(this.items.apply(this,e)))})}async items(e){let t=[];e.results=[],e.signal=this.aborterSignal;for(var o in e.categories){let a=e.categories[o];if(a.trigger=a.trigger??(()=>!0),e.results=t,a.trigger(e)){let i=[];try{i=await a.getItems(e)}catch(s){console.warn(`Error loading items for omniBox category '${o}'.`,s)}t=t.concat(i.map(s=>(s.category=o,s)))}}return t}formatSearch(e,t){return e.indexOf("%search%")?e.replace("%search%",t.search||""):e+"?"+this.createQueryParam(t)}createQueryParam(e){let t=e.suggest?"&suggest=true":"";return`q=${e.text}${t}`}isMatch(e,t){return t.text?.indexOf("%search%")>=0?!0:e.search?t.text?.toLowerCase().indexOf(e.search.toLowerCase())>=0:e.suggest}static textFilter(e,t){return function(o){if(!e.search)return!0;if(o.hidden)return!1;let i=(t?o[t]:o).match(new RegExp(e.search,"gi"));if(i)return i;if(o.config?.tags)return o.config.tags.some(s=>s.match(new RegExp(e.search,"gi")))}}};function fr(r){function e(a,i,s){let n=a[0];if(n==="colors")return i==="scheme"?"string":"color";if(n==="spacing"||n==="radius"||n==="borderWidths")return"dimension";if(n==="typography"){let c=a[1];return c==="fontFamily"?"fontFamily":c==="fontSize"?"fontSize":c==="fontWeight"?"fontWeight":c==="lineHeight"?"lineHeight":"string"}if(n==="shadows")return"shadow";if(n==="layout")return"dimension";if(n==="transitions")return"duration";if(n==="zIndex")return"number";if(n==="icons")return i==="defaultSize"||a.includes("sizes")?"dimension":"string";if(typeof s=="number")return"number";if(typeof s=="string"){if(/^\d+(\.\d+)?ms$/.test(s))return"duration";if(/^\d+(\.\d+)?(px|rem|em|vh|vw|%)$/.test(s))return"dimension";if(/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(s)||/^(rgb|rgba|hsl|hsla|oklab|lab)\(/.test(s))return"color"}}function t(a){return a!==null&&typeof a=="object"&&!Array.isArray(a)}function o(a,i=[]){if(a==null)return a;if(Array.isArray(a))return a.map((p,d)=>o(p,i.concat(String(d))));if(t(a)){if(Object.prototype.hasOwnProperty.call(a,"value")&&(Object.prototype.hasOwnProperty.call(a,"type")||Object.keys(a).length===1))return a;let p={};for(let[d,l]of Object.entries(a))p[d]=o(l,i.concat(d));return p}let s=i[i.length-1]??"",n=e(i,s,a),c=a;if(n==="number"&&typeof c=="string"){let p=Number(c);Number.isNaN(p)||(c=p)}return n?{value:c,type:n}:{value:c}}return o(r,[])}var br="pure-ds-config";customElements.define("pds-config-form",class extends
|
|
3201
|
+
</div>`;e.forEach(i=>{let s=t.categories[i.category]||{};i.element?this.resultsDiv.appendChild(i.element):(i=typeof i=="string"?{text:i}:i,this.resultsDiv.appendChild(ur(a(s,i))[0])),o++}),e.length?(this.acItems=this.resultsDiv.querySelectorAll(".ac-itm"),this.controller().show()):t.search.length&&this.controller().empty()}handleImageOrIcon(e){return e.image?`<img src="${e.image}"/>`:typeof this.settings.iconHandler=="function"?this.settings.iconHandler(e):`<svg-icon icon="${e.icon}"></svg-icon>`}formatResultItem(e,t,o){let a=typeof e=="string"?{text:e}:e,i=a.text;return t.search&&(i=i.replace("%search%",t.search),a.description=a.description?.replace("%search%",t.search)),i=this.highlight(i,t.search),a.description&&(i=`<div>${i}</div><small>${a.description}</small>`),o.format&&(i=o.format({item:a,result:i,options:t})),i}highlight(e,t){var o=new RegExp("("+t+")","gi");return e.replace(o,'<span class="txt-hl">$1</span>')}async getItems(e,t){this.aborter&&this.aborter.abort();let o=this.caches.get(e.search);if(o)return o;let a=this.settings.map,i=c=>(typeof c=="string"&&(c={text:c}),c),s=c=>a?c.map(p=>({text:p[a]})):c.map(p=>i(p)),n=c=>(this.settings.max&&this.settings.max>0&&(c.length=this.settings.max),c);return this.aborter=new AbortController,this.aborterSignal=this.aborter.signal,new Promise(c=>{let p=d=>{d=this.sort(d,e),this.settings.cache!==!1&&this.caches.set(e.search,d),c(d)};if(gr(this.items)){if(this.settings.minlength>0&&(!e.search||e.search.length<this.settings.minlength)){p([]);return}let d=this.formatSearch(this.items,e);fetch(d).then(l=>{if(l.status===200){l.json().then(h=>{h=s(h),p(n(h.filter(g=>this.isMatch(e,g))))});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"),p(n(s(this.items)))}else if(typeof this.items=="function")e.control=this.container,Promise.resolve(this.items(e,t)).then(l=>{l=l.map(h=>i(h)),l=s(l),p(l)});else return p(Promise.resolve(this.items.apply(this,e)))})}async items(e){let t=[];e.results=[],e.signal=this.aborterSignal;for(var o in e.categories){let a=e.categories[o];if(a.trigger=a.trigger??(()=>!0),e.results=t,a.trigger(e)){let i=[];try{i=await a.getItems(e)}catch(s){console.warn(`Error loading items for omniBox category '${o}'.`,s)}t=t.concat(i.map(s=>(s.category=o,s)))}}return t}formatSearch(e,t){return e.indexOf("%search%")?e.replace("%search%",t.search||""):e+"?"+this.createQueryParam(t)}createQueryParam(e){let t=e.suggest?"&suggest=true":"";return`q=${e.text}${t}`}isMatch(e,t){return t.text?.indexOf("%search%")>=0?!0:e.search?t.text?.toLowerCase().indexOf(e.search.toLowerCase())>=0:e.suggest}static textFilter(e,t){return function(o){if(!e.search)return!0;if(o.hidden)return!1;let i=(t?o[t]:o).match(new RegExp(e.search,"gi"));if(i)return i;if(o.config?.tags)return o.config.tags.some(s=>s.match(new RegExp(e.search,"gi")))}}};function fr(r){function e(a,i,s){let n=a[0];if(n==="colors")return i==="scheme"?"string":"color";if(n==="spacing"||n==="radius"||n==="borderWidths")return"dimension";if(n==="typography"){let c=a[1];return c==="fontFamily"?"fontFamily":c==="fontSize"?"fontSize":c==="fontWeight"?"fontWeight":c==="lineHeight"?"lineHeight":"string"}if(n==="shadows")return"shadow";if(n==="layout")return"dimension";if(n==="transitions")return"duration";if(n==="zIndex")return"number";if(n==="icons")return i==="defaultSize"||a.includes("sizes")?"dimension":"string";if(typeof s=="number")return"number";if(typeof s=="string"){if(/^\d+(\.\d+)?ms$/.test(s))return"duration";if(/^\d+(\.\d+)?(px|rem|em|vh|vw|%)$/.test(s))return"dimension";if(/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(s)||/^(rgb|rgba|hsl|hsla|oklab|lab)\(/.test(s))return"color"}}function t(a){return a!==null&&typeof a=="object"&&!Array.isArray(a)}function o(a,i=[]){if(a==null)return a;if(Array.isArray(a))return a.map((p,d)=>o(p,i.concat(String(d))));if(t(a)){if(Object.prototype.hasOwnProperty.call(a,"value")&&(Object.prototype.hasOwnProperty.call(a,"type")||Object.keys(a).length===1))return a;let p={};for(let[d,l]of Object.entries(a))p[d]=o(l,i.concat(d));return p}let s=i[i.length-1]??"",n=e(i,s,a),c=a;if(n==="number"&&typeof c=="string"){let p=Number(c);Number.isNaN(p)||(c=p)}return n?{value:c,type:n}:{value:c}}return o(r,[])}var br="pure-ds-config";customElements.define("pds-config-form",class extends _{#i;#e=0;#r=null;#n=null;#o=500;static properties={config:{type:Object,state:!0},schema:{type:Object,state:!0},mode:{type:String},inspectorMode:{type:Boolean,state:!0},formValues:{type:Object,state:!0},validationIssues:{type:Array,state:!0},formKey:{type:Number,state:!0},showInspector:{type:Boolean,attribute:"show-inspector"},showPresetSelector:{type:Boolean,attribute:"show-preset-selector"},showThemeSelector:{type:Boolean,attribute:"show-theme-selector"}};createRenderRoot(){return this}connectedCallback(){super.connectedCallback(),this.formKey=0,this._validationToastId=null,this.mode="simple",this.inspectorMode=!1,this.config=this.loadConfig(),this._inspectorDeactivateHandler=()=>{this.inspectorMode&&(this.inspectorMode=!1,this.dispatchInspectorModeChange())},m.addEventListener("pds:inspector:deactivate",this._inspectorDeactivateHandler);try{gt(m.theme),mt(m.theme)}catch{}this.updateForm(),this.applyDefaultHostVariables(),this._initialValidationScheduled=!1,this._loadingToastShown=!1}disconnectedCallback(){super.disconnectedCallback(),this._inspectorDeactivateHandler&&(m.removeEventListener("pds:inspector:deactivate",this._inspectorDeactivateHandler),this._inspectorDeactivateHandler=null)}applyDefaultHostVariables(){try{let r=structuredClone(j.default),e=new ae({design:r}),t=e.generateSpacingTokens(r.spatialRhythm||{});Object.entries(t).forEach(([s,n])=>{try{this.style.setProperty(`--spacing-${s}`,n)}catch{}});let o=r.spatialRhythm&&r.spatialRhythm.baseUnit||16;this.style.setProperty("--base-unit",`${o}px`);let a=e.generateTypographyTokens(r.typography||{});a.fontSize&&Object.entries(a.fontSize).forEach(([s,n])=>{this.style.setProperty(`--font-size-${s}`,n)});let i=r.typography&&r.typography.baseFontSize||16;this.style.setProperty("--base-font-size",`${i}px`),a.fontFamily&&Object.entries(a.fontFamily).forEach(([s,n])=>{this.style.setProperty(`--font-family-${s}`,n)}),a.lineHeight&&Object.entries(a.lineHeight).forEach(([s,n])=>{this.style.setProperty(`--font-lineHeight-${s}`,n)}),console.debug("pds-config-form: applied default host CSS variables")}catch(r){console.warn("pds-config-form: failed to apply default host variables",r)}}updateForm(){this.schema=null,fetch(`/assets/data/auto-design-${this.mode}.json`).then(r=>r.json()).then(r=>{this.schema=r,this.formValues=this.filterConfigForSchema(this.config),this.formKey=(this.formKey||0)+1}).catch(r=>{console.warn("Failed to load schema:",r)})}_isEqual(r,e){if(r===e)return!0;if(typeof r!=typeof e)return!1;if(r&&e&&typeof r=="object"){if(Array.isArray(r)){if(!Array.isArray(e)||r.length!==e.length)return!1;for(let a=0;a<r.length;a++)if(!this._isEqual(r[a],e[a]))return!1;return!0}let t=Object.keys(r),o=Object.keys(e);t.length,o.length;for(let a of new Set([...t,...o]))if(!this._isEqual(r[a],e[a]))return!1;return!0}return!1}_deepDiff(r,e){if(!this._isEqual(r,e)){if(r&&e&&typeof r=="object"&&typeof e=="object"&&!Array.isArray(r)&&!Array.isArray(e)){let t={},o=new Set([...Object.keys(e)]);for(let a of o){let i=this._deepDiff(r[a],e[a]);i!==void 0&&(t[a]=i)}return Object.keys(t).length?t:void 0}return this._isEqual(r,e)?void 0:e}}_resolvePresetBase(r){let e=String(r||"default").toLowerCase(),t=j?.[e]||j?.default;return JSON.parse(JSON.stringify(t||j.default))}loadConfig(){let r=localStorage.getItem(br);if(r)try{let e=JSON.parse(r);if(e&&("preset"in e||"design"in e)){let o=e.preset||"default",a=this._resolvePresetBase(o),i=ne(a,e.design||{});return this._stored={preset:o,design:e.design||{}},this._legacy=!1,i}let t=ne(config.design,e);return this._stored=null,this._legacy=!0,t}catch(e){console.warn("Failed to parse stored config, using defaults",e)}return this._stored={preset:"default",design:{}},this._legacy=!1,JSON.parse(JSON.stringify(this._resolvePresetBase("default")))}saveConfig(){try{let r=this._stored&&this._stored.preset||"default",e=this._resolvePresetBase(r),t=this._deepDiff(e,this.config)||{},o={preset:r,design:t};localStorage.setItem(br,JSON.stringify(o)),this._stored=o,this._legacy=!1}catch(r){console.warn("Failed to save config: ",r)}}updated(r){if(r.has("schema")){this.formValues=this.filterConfigForSchema(this.config);let e=this._initialValidationScheduled?50:150;this._initialValidationScheduled=!0,setTimeout(()=>{try{this.applyStyles(!0)}catch(t){console.warn("Delayed applyStyles failed:",t)}},e)}}async applyStyles(r=!1){let e=structuredClone(j.default);if(r&&this.config){let a=this._stored&&this._stored.preset||"default",i=this._resolvePresetBase(a);e=ne(i,this.config)}if(e.typography)try{await pr(e.typography)}catch(a){console.warn("Failed to load some fonts from Google Fonts:",a)}try{let a=Ne(e);if(!a.ok){if(this.validationIssues=a.issues,!this._validationToastId){let i=a.issues.slice(0,3).map(s=>`\u2022 ${s.message}`).join(`
|
|
3207
3202
|
`);this._validationToastId=await m.toast(`Design has accessibility issues. Fix before applying.
|
|
3208
3203
|
${i}`,{type:"error",persistent:!0})}return}this.validationIssues=[],this._validationToastId&&(document.querySelector("#global-toaster")?.dismissToast(this._validationToastId),this._validationToastId=null)}catch(a){console.warn("Validation failed unexpectedly:",a)}let t=m.theme||null,o={design:structuredClone(e)};t&&(o.theme=t),this.generator=new ae(o),Gt(this.generator);try{gt(m.theme),mt(m.theme)}catch{}this.scheduleDesignUpdatedEmit({config:e,designer:this.generator})}scheduleDesignUpdatedEmit(r){let e=Date.now(),t=()=>{this.#e=Date.now(),this.#r&&(clearTimeout(this.#r),this.#r=null),m.dispatchEvent(new CustomEvent("pds:design:updated",{detail:r}))};if(e-this.#e>=this.#o){t();return}if(!this.#r){let o=this.#o-(e-this.#e);this.#r=setTimeout(()=>{this.#r=null,t()},o)}}async toggleInspectorMode(){this.inspectorMode=!this.inspectorMode,this.dispatchInspectorModeChange(),await m.toast(this.inspectorMode?"Code Inspector active - click any element in the showcase to view its code":"Code Inspector deactivated",{type:"info",duration:3e3})}dispatchInspectorModeChange(){m.dispatchEvent(new CustomEvent("pds:inspector:mode:changed",{detail:{active:this.inspectorMode}}))}flattenConfig(r,e=""){let t={};for(let[o,a]of Object.entries(r)){let i=e?`${e}/${o}`:`/${o}`;a&&typeof a=="object"&&!Array.isArray(a)?Object.assign(t,this.flattenConfig(a,i)):t[i]=a}return t}getSchemaProperties(r,e=""){let t=new Set;if(!r||!r.properties)return t;for(let[o,a]of Object.entries(r.properties)){let i=e?`${e}/${o}`:`/${o}`;t.add(i),a.type==="object"&&a.properties&&this.getSchemaProperties(a,i).forEach(n=>t.add(n))}return t}filterConfigForSchema(r){if(!r)return{};if(!this.schema)return this.flattenConfig(r);let e=this.getSchemaProperties(this.schema),t=this.flattenConfig(r),o={};for(let[a,i]of Object.entries(t))e.has(a)&&i!==null&&i!==void 0&&(o[a]=i);return o}handleFormChange=async r=>{let e,t=null;if(r.type==="pw:value-change"&&r.detail&&(t=r.detail.name),r.detail&&r.detail.json)e=r.detail.json;else{let n=r.currentTarget?.tagName?.toUpperCase()==="pds-form"?r.currentTarget:this.querySelector("pds-form");if(n)e=n.getValuesFlat?.()||n.values||{};else{console.warn("No form element found in form change event",r);return}}console.log("Form values received:",e);let o={},a=n=>n.replace(/~1/g,"/").replace(/~0/g,"~");for(let[n,c]of Object.entries(e))if(n)if(n.startsWith("/")){let d=n.replace(/^\//,"").split("/").map(a),l=o;for(let h=0;h<d.length-1;h++){let g=d[h];(!l[g]||typeof l[g]!="object")&&(l[g]={}),l=l[g]}l[d[d.length-1]]=c}else if(n.includes(".")){let p=n.split("."),d=o;for(let l=0;l<p.length-1;l++)(!d[p[l]]||typeof d[p[l]]!="object")&&(d[p[l]]={}),d=d[p[l]];d[p[p.length-1]]=c}else o[n]=c;console.log("Nested values:",o);let i=ne(structuredClone(this.config),o),s=Ne(i);if(!s.ok){if(this.validationIssues=s.issues,!this._validationToastId){let n=s.issues.slice(0,3).map(c=>`\u2022 ${c.message}`).join(`
|
|
3209
3204
|
`);this._validationToastId=await m.toast(`Design has accessibility issues. Fix before saving.
|
|
3210
|
-
${n}`,{type:"error"})}return}this.validationIssues=[];try{this._validationToastId&&(document.querySelector("#global-toaster")?.dismissToast(this._validationToastId),this._validationToastId=null)}catch{}this.config=i,console.log("Updated (persisted) config (not applied):",this.config),this.saveConfig(),t&&(console.log("\u{1F514} Emitting design-field-changed event for field:",t),m.dispatchEvent(new CustomEvent("pds:design:field:changed",{detail:{field:t,config:this.config}})));try{this.#
|
|
3205
|
+
${n}`,{type:"error"})}return}this.validationIssues=[];try{this._validationToastId&&(document.querySelector("#global-toaster")?.dismissToast(this._validationToastId),this._validationToastId=null)}catch{}this.config=i,console.log("Updated (persisted) config (not applied):",this.config),this.saveConfig(),t&&(console.log("\u{1F514} Emitting design-field-changed event for field:",t),m.dispatchEvent(new CustomEvent("pds:design:field:changed",{detail:{field:t,config:this.config}})));try{this.#n&&(clearTimeout(this.#n),this.#n=null),this.#n=setTimeout(()=>{this.#n=null,this.applyStyles(!0)},this.#o)}catch(n){console.warn("Failed to schedule applyStyles with user config:",n)}};handleReset=async()=>{if(await m.ask("Reset to default configuration? This will clear your saved settings.")){this._stored={preset:"default",design:{}};let e=this._resolvePresetBase("default");this.config=JSON.parse(JSON.stringify(e)),this.formValues=this.filterConfigForSchema(this.config),this.formKey=(this.formKey||0)+1,this.saveConfig(),this.applyStyles(!0),await m.toast("Configuration reset to defaults",{type:"info",duration:2e3})}};applyPreset=async r=>{if(await m.ask(`Load "${r.name}" preset? This will replace your current settings.`)){let t=JSON.parse(JSON.stringify(r)),o=Ne(t);if(!o.ok){if(this.validationIssues=o.issues,!this._validationToastId){let a=o.issues.slice(0,3).map(i=>`\u2022 ${i.message}`).join(`
|
|
3211
3206
|
`);this._validationToastId=await m.toast(`Preset "${r.name}" has accessibility issues \u2014 not applied.
|
|
3212
3207
|
${a}`,{type:"error",persistent:!0})}return}this.validationIssues=[];try{this._validationToastId&&(document.querySelector("#global-toaster")?.dismissToast(this._validationToastId),this._validationToastId=null)}catch{}this.config=t,this._stored={preset:(r.id||r.name||"").toLowerCase(),design:{}},this.formValues=this.filterConfigForSchema(this.config),this.saveConfig(),this.applyStyles(!0),await m.toast(`"${r.name}" preset loaded successfully!`,{type:"success",duration:3e3})}};async handleThemeChange(r){try{let e=r.target.value;m.theme=e,this.applyStyles(!0),await m.toast(`Theme set to ${e}`,{type:"info",duration:1200})}catch(e){console.warn("Failed to change theme:",e)}}handleDownload=r=>{let e,t,o;switch(r){case"css":e=this.generator.layeredCSS,t="pure-ds.css",o="text/css";break;case"config":e=`// Pure Design System Configuration
|
|
3213
3208
|
// Generated: ${new Date().toISOString()}
|
|
@@ -3363,7 +3358,7 @@ export const pdsConfig = ${JSON.stringify(this.config,null,2)};
|
|
|
3363
3358
|
<span style="background-color: ${e.colors.primary}"></span>
|
|
3364
3359
|
<span style="background-color: ${e.colors.secondary}"></span>
|
|
3365
3360
|
<span style="background-color: ${e.colors.accent}"></span>
|
|
3366
|
-
</span>`},categories:{Presets:{action:r=>{let e=m.presets[r.id];this.applyPreset(e)},getItems:r=>{let t=Object.values(m.presets),o=[];if(r.search.length>0){let a=0;o=t.filter(i=>(a++,a<=10&&i.name.toLowerCase().includes(r.search.toLowerCase())||i.description&&i.description.toLowerCase().includes(r.search.toLowerCase())))}else o=t.filter(a=>a.tags?.includes("featured")).slice(0,10);return o.map(a=>({id:a.id,text:a.name,description:a.description,icon:"palette"}))}}}}}_designerUiSchema(){let r=["system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif","-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial","'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif","Roboto, 'Helvetica Neue', Arial, sans-serif","Inter, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif","ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif"],e={};return e["/typography/fontFamilyHeadings"]={"ui:datalist":r},e["/typography/fontFamilyBody"]={"ui:datalist":r},e["/typography/fontFamilyMono"]={"ui:datalist":["ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Consolas, monospace","Consolas, 'Liberation Mono', Menlo, monospace","'Fira Code', 'Cascadia Code', 'Source Code Pro', monospace"]},e["/typography/baseFontSize"]={"ui:widget":"input-range","ui:min":12,"ui:max":24},e["/typography/fontScale"]={"ui:widget":"input-range","ui:min":1.1,"ui:max":1.618,"ui:step":.01},e["/spatialRhythm/baseUnit"]={"ui:widget":"input-range","ui:min":4,"ui:max":32},e["/colors/darkMode/background"]={"ui:widget":"input-color"},e["/colors/darkMode/secondary"]={"ui:widget":"input-color"},e["/spatialRhythm/containerPadding"]={"ui:widget":"input-range","ui:min":0,"ui:max":4},e}});customElements.define("pds-demo",class extends
|
|
3361
|
+
</span>`},categories:{Presets:{action:r=>{let e=m.presets[r.id];this.applyPreset(e)},getItems:r=>{let t=Object.values(m.presets),o=[];if(r.search.length>0){let a=0;o=t.filter(i=>(a++,a<=10&&i.name.toLowerCase().includes(r.search.toLowerCase())||i.description&&i.description.toLowerCase().includes(r.search.toLowerCase())))}else o=t.filter(a=>a.tags?.includes("featured")).slice(0,10);return o.map(a=>({id:a.id,text:a.name,description:a.description,icon:"palette"}))}}}}}_designerUiSchema(){let r=["system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif","-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial","'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif","Roboto, 'Helvetica Neue', Arial, sans-serif","Inter, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif","ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif"],e={};return e["/typography/fontFamilyHeadings"]={"ui:datalist":r},e["/typography/fontFamilyBody"]={"ui:datalist":r},e["/typography/fontFamilyMono"]={"ui:datalist":["ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Consolas, monospace","Consolas, 'Liberation Mono', Menlo, monospace","'Fira Code', 'Cascadia Code', 'Source Code Pro', monospace"]},e["/typography/baseFontSize"]={"ui:widget":"input-range","ui:min":12,"ui:max":24},e["/typography/fontScale"]={"ui:widget":"input-range","ui:min":1.1,"ui:max":1.618,"ui:step":.01},e["/spatialRhythm/baseUnit"]={"ui:widget":"input-range","ui:min":4,"ui:max":32},e["/colors/darkMode/background"]={"ui:widget":"input-color"},e["/colors/darkMode/secondary"]={"ui:widget":"input-color"},e["/spatialRhythm/containerPadding"]={"ui:widget":"input-range","ui:min":0,"ui:max":4},e}});customElements.define("pds-demo",class extends _{#i=null;#e=!1;static properties={config:{type:Object},designer:{type:Object},sections:{type:Array,state:!0},inspectorActive:{type:Boolean,state:!0}};constructor(){super(),this.config=null,this.designer=null,this.sections=[],this.inspectorActive=!1,this._docsBase="/pds",this._showdown=null,this._showdownLoading=!1}createRenderRoot(){return this}connectedCallback(){super.connectedCallback(),m.addEventListener("pds:design:updated",r=>{this.config=r.detail.config,this.designer=r.detail.designer,this.config&&this.config.staticBase&&(this._docsBase="/"+String(this.config.staticBase).replace(/^\/+|\/+$/g,""))}),m.addEventListener("pds:design:field:changed",r=>{setTimeout(()=>{this.scrollToRelevantSection(r.detail.field)},1e3)}),m.addEventListener("pds:inspector:mode:changed",r=>{this.inspectorActive=r.detail.active}),setTimeout(()=>{this.extractSections(),this.handleInitialHash()},100),this._inspectorCaptureHandler=r=>{if(!this.inspectorActive)return;let e=r.target;if(e.closest&&e.closest("a[href]")){r.preventDefault();return}if(e.closest&&e.closest("button")){r.preventDefault();return}},this.addEventListener("click",this._inspectorCaptureHandler,!0);try{let r=window.PDS_DOCS_BASE;typeof r=="string"&&r.trim()&&(this._docsBase=r.replace(/\/+$/,""))}catch{}this.config&&this.config.staticBase&&(this._docsBase="/"+String(this.config.staticBase).replace(/^\/+|\/+$/g,"")),m.addEventListener("pds:docs:view",async r=>{let e=r.detail&&r.detail.file||"README.md";await this._renderDocToDialog(e)})}disconnectedCallback(){super.disconnectedCallback(),this._inspectorCaptureHandler&&(this.removeEventListener("click",this._inspectorCaptureHandler,!0),this._inspectorCaptureHandler=null)}async fetchDocHTML(r="README.md"){let e=this._docsBase||"/pds",t=`${e.replace(/\/+$/,"")}/${r}`;try{let o=await fetch(t,{cache:"no-cache"});if(!o.ok)throw new Error(`${o.status} ${o.statusText}`);let a=await o.text(),i=await this.getShowdownConverter();return i?i.makeHtml(a):`<pre>${this.escapeHTML(a)}</pre>`}catch(o){return`<p>Failed to load ${r} from ${e}: ${String(o.message||o)}</p>`}}async _renderDocToDialog(r){let e=await this.fetchDocHTML(r),t=document.getElementById("pds-docs-dialog");t||(t=document.createElement("dialog"),t.id="pds-docs-dialog",t.style.width="min(900px, 90vw)",t.style.maxHeight="85vh",t.style.padding="0",t.innerHTML=`<div style="padding:16px 20px; overflow:auto; max-height:85vh">
|
|
3367
3362
|
<div class="markdown-body"></div>
|
|
3368
3363
|
</div>`,document.body.appendChild(t));let o=t.querySelector(".markdown-body");o&&(o.innerHTML=e),t.open||t.showModal()}deactivateInspector(){m.dispatchEvent(new CustomEvent("pds:inspector:deactivate",{detail:{}}))}extractSections(){let r=this.querySelectorAll("[data-section]");this.sections=Array.from(r).map(e=>{let t=e.getAttribute("data-section"),a=e.querySelector("h2")?.textContent?.trim()||t;return{id:t,title:a}})}handleInitialHash(){let r=window.location.hash.slice(1);if(r){let e=this.querySelector(`[data-section="${r}"]`);e&&setTimeout(()=>{e.scrollIntoView({behavior:"smooth",block:"start"})},300)}}detectComponentElement(r){let e=r,t="element",o=e.tagName.toLowerCase();if(e.closest(".showcase-toc")||e.tagName==="DS-SHOWCASE"||e.classList.contains("showcase-section")||e.closest(".showcase-section")===e)return null;let a=this.findEnhancedElement(e);if(a)return{element:a,componentType:"enhanced-component",displayName:this.getEnhancedElementName(a)};let i=["FIGURE","TABLE","DETAILS","VIDEO","AUDIO","PICTURE","BLOCKQUOTE","PRE","CODE"];if(i.includes(e.tagName))return{element:e,componentType:"html-primitive",displayName:e.tagName.toLowerCase()};for(let l of i){let h=e.closest(l.toLowerCase());if(h)return{element:h,componentType:"html-primitive",displayName:l.toLowerCase()}}let s=this.findPDSStyledElement(e);if(s)return s;if(e.tagName==="FIELDSET"){let l=e.getAttribute("role");if(l==="group"||l==="radiogroup")return t="form-group",o=l==="radiogroup"?"radio group":"form group",{element:e,componentType:t,displayName:o}}let n=e.closest('fieldset[role="group"], fieldset[role="radiogroup"]');if(n){let l=n.getAttribute("role");return{element:n,componentType:"form-group",displayName:l==="radiogroup"?"radio group":"form group"}}if(e.tagName==="LABEL"||e.closest("label")){let l=e.tagName==="LABEL"?e:e.closest("label"),h=l.querySelector("input, select, textarea");if(h)return t="form-control",o=`${h.tagName.toLowerCase()} field`,{element:l,componentType:t,displayName:o}}if(["INPUT","SELECT","TEXTAREA"].includes(e.tagName)){let l=e.closest("label");return l?(e=l,t="form-control",o=`${r.tagName.toLowerCase()} field`,{element:e,componentType:t,displayName:o}):(t="form-control",o=`${e.tagName.toLowerCase()}`,{element:e,componentType:t,displayName:o})}if(e.tagName.includes("-"))return t="web-component",o=e.tagName.toLowerCase(),{element:e,componentType:t,displayName:o};let c=e.closest("[tagName*='-']");if(c&&c.tagName.includes("-"))return{element:c,componentType:"web-component",displayName:c.tagName.toLowerCase()};if(e.tagName==="BUTTON"||e.closest("button"))return e=e.tagName==="BUTTON"?e:e.closest("button"),t="button",o=e.querySelector("pds-icon")?"button with icon":"button",{element:e,componentType:t,displayName:o};if(e.tagName==="pds-icon"||e.closest("pds-icon"))return e=e.tagName==="pds-icon"?e:e.closest("pds-icon"),t="icon",o=`pds-icon (${e.getAttribute("icon")||"unknown"})`,{element:e,componentType:t,displayName:o};if(e.tagName==="NAV"||e.closest("nav[data-dropdown]"))return e=e.closest("nav[data-dropdown]")||e,t="navigation",o="dropdown menu",{element:e,componentType:t,displayName:o};let p=["color-card","color-scale","grid","flex-wrap","btn-group"];for(let l of p){if(e.classList.contains(l))return t="container",o=l.replace(/-/g," "),{element:e,componentType:t,displayName:o};let h=e.closest(`.${l}`);if(h)return e=h,t="container",o=l.replace(/-/g," "),{element:e,componentType:t,displayName:o}}let d=this.findNearestComponent(e);return d&&d!==e?this.detectComponentElement(d):{element:e,componentType:t,displayName:o}}findPDSStyledElement(r){let e=m.findComponentForElement(r,{maxDepth:5});return!e||e.element&&e.element.tagName==="DS-SHOWCASE"?null:{element:e.element,componentType:e.componentType||"pds-primitive",displayName:e.displayName||(e.element?.tagName||"element").toLowerCase()}}findEnhancedElement(r){let e=["nav[data-dropdown]","label[data-toggle]","[data-tabs]","[data-modal]","[data-tooltip]"];for(let t of e){if(r.matches&&r.matches(t))return r;let o=r.closest(t);if(o)return o}return null}getEnhancedElementName(r){if(r.matches("nav[data-dropdown]"))return"dropdown menu";if(r.matches("label[data-toggle]"))return"toggle switch";if(r.matches("[data-tabs]"))return"tab component";if(r.matches("[data-modal]"))return"modal dialog";if(r.matches("[data-tooltip]"))return"tooltip";let e=Array.from(r.attributes).filter(t=>t.name.startsWith("data-")).map(t=>t.name.replace("data-",""));return e[0]?`${e[0]} component`:r.tagName.toLowerCase()}findNearestComponent(r){let e=r.parentElement,t=0,o=5;for(;e&&t<o;){if(t++,e.tagName==="DS-SHOWCASE")return null;if(e.classList.contains("showcase-section")){e=e.parentElement;continue}if(e.tagName.includes("-")||e.tagName==="BUTTON"||e.tagName==="NAV"||e.tagName==="FIELDSET"||e.tagName==="LABEL"||e.tagName==="TABLE"||e.tagName==="FIGURE"||e.tagName==="BLOCKQUOTE"||e.tagName==="ARTICLE"||e.hasAttribute("role")||e.hasAttribute("data-dropdown")||e.hasAttribute("data-toggle")||this.hasPDSClass(e))return e;e=e.parentElement}return null}hasPDSClass(r){let e=["card","surface","tag","badge","pill","chip","alert","toast","notification","message","accordion","collapse","expandable","list-group","menu-list","nav-list","breadcrumb","pagination","tabs","tab","progress","spinner","loader","skeleton","divider","separator","avatar","thumbnail","form-group","input-group","checkbox-group","radio-group","btn-","icon-only","dropdown","popover","tooltip","modal","dialog","table-responsive","data-table","card-grid","media-object","status","indicator","dot-indicator","pulse"];return Array.from(r.classList).some(t=>e.some(o=>t.startsWith(o)))}extractHTML(r){let e=r.cloneNode(!0);[e,...e.querySelectorAll("*")].forEach(i=>{i.removeAttribute&&(i.removeAttribute("_$litPart$"),i.removeAttribute("_$litElement$"))});let o=this.formatHTMLElement(e),a=this.extractLitProperties(r);return{html:o,litProps:a}}extractLitProperties(r){let e=[];if(r.checked!==void 0&&r.type==="checkbox"&&e.push({name:".checked",value:r.checked}),r.value!==void 0&&["INPUT","SELECT","TEXTAREA"].includes(r.tagName)&&e.push({name:".value",value:r.value}),r.tagName.includes("-")){let t=customElements.get(r.tagName.toLowerCase());t&&t.properties&&Object.keys(t.properties).forEach(o=>{r[o]!==void 0&&typeof r[o]!="function"&&e.push({name:`.${o}`,value:r[o]})})}return e}formatHTMLElement(r,e=0){let t=s=>" ".repeat(s),o="",a=s=>s.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),i=s=>["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"].includes(s);if(r.nodeType===Node.TEXT_NODE){let s=r.textContent.replace(/\s+/g," ").trim();return s.length===0?"":t(e)+a(s)+`
|
|
3369
3364
|
`}if(r.nodeType===Node.COMMENT_NODE){let s=r.textContent||"";return s===""||s.startsWith("?lit$")||s.startsWith("lit-part")||s==="/lit-part"?"":t(e)+`<!-- ${a(s)} -->
|
|
@@ -3418,7 +3413,7 @@ export const pdsConfig = ${JSON.stringify(this.config,null,2)};
|
|
|
3418
3413
|
`,setTimeout(()=>{l.innerHTML=`
|
|
3419
3414
|
<pds-icon icon="clipboard" size="sm"></pds-icon>
|
|
3420
3415
|
Copy HTML
|
|
3421
|
-
`},2e3)})})},100)}async loadShiki(){if(this.#
|
|
3416
|
+
`},2e3)})})},100)}async loadShiki(){if(this.#i)return this.#i;if(this.#e){for(;this.#e;)await new Promise(r=>setTimeout(r,50));return this.#i}this.#e=!0;try{let r=await import("https://esm.sh/shiki@1.0.0");return this.#i=await r.getHighlighter({themes:["github-dark","github-light"],langs:["html","css","javascript","json"]}),this.#i}catch(r){return console.error("Failed to load Shiki:",r),null}finally{this.#e=!1}}async highlightWithShiki(r,e="html"){let t=await this.loadShiki();if(!t)return this.escapeHTML(r);try{let a=document.documentElement.getAttribute("data-theme")==="dark"?"github-dark":"github-light",s=t.codeToHtml(r,{lang:e,theme:a}).match(/<code[^>]*>([\s\S]*)<\/code>/);return s?s[1]:this.escapeHTML(r)}catch(o){return console.error("Shiki highlighting failed:",o),this.escapeHTML(r)}}escapeHTML(r){return r.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}async getShowdownConverter(){if(this._showdown)return this._showdown;let r=await this.loadShowdownFromCDN();return!r||!r.Converter?null:(this._showdown=new r.Converter({ghCompatibleHeaderId:!0,tables:!0,strikethrough:!0,tasklists:!0}),this._showdown)}async loadShowdownFromCDN(){if(typeof window<"u"&&window.showdown)return window.showdown;if(this._showdownLoading){for(;this._showdownLoading;)await new Promise(e=>setTimeout(e,50));return window.showdown||null}this._showdownLoading=!0;let r=["https://cdn.jsdelivr.net/npm/showdown@2.1.0/dist/showdown.min.js","https://unpkg.com/showdown@2.1.0/dist/showdown.min.js"];for(let e of r)try{if(await this._injectScript(e,"showdown"),window.showdown)return this._showdownLoading=!1,window.showdown}catch{}return this._showdownLoading=!1,null}_injectScript(r,e){return new Promise((t,o)=>{if(document.querySelector(`script[data-lib="${e}"][src="${r}"]`)){setTimeout(t,0);return}let a=document.createElement("script");a.src=r,a.async=!0,a.defer=!0,a.dataset.lib=e||"lib",a.onload=()=>t(),a.onerror=()=>{a.remove(),o(new Error(`Failed to load script: ${r}`))},document.head.appendChild(a)})}scrollToRelevantSection(r){console.log("\u{1F3AF} Scrolling to section for field:",r);let e=r.startsWith("/")?r.slice(1):r;console.log(" Normalized path:",e);let t={"colors/primary":"color-system","colors/secondary":"color-system","colors/accent":"color-system","colors/background":"color-system","colors/success":"color-system","colors/warning":"color-system","colors/danger":"color-system","colors/info":"color-system","typography/":"typography","spatialRhythm/":"spacing","layers/":"surfaces-shadows","shape/":"buttons","behavior/transitionSpeed":"interactive-states","behavior/":"interactive-states","components/forms":"forms","components/alerts":"alerts","components/badges":"badges","components/tables":"tables","components/toasts":"toasts","components/modals":"modals","components/tabStrip":"tabs","icons/":"icons"},o=null;for(let[a,i]of Object.entries(t))if(e.startsWith(a)){o=i,console.log(` \u2713 Matched pattern "${a}" \u2192 section "${i}"`);break}if(o){let a=this.querySelector(`[data-section="${o}"]`);console.log(` Searching for section: [data-section="${o}"]`,a?"\u2713 Found":"\u2717 Not found"),a?(a.scrollIntoView({behavior:"smooth",block:"start"}),a.style.transition="background-color 0.3s ease",a.style.backgroundColor="var(--color-primary-50)",setTimeout(()=>{a.style.backgroundColor=""},1500),console.log(" \u2713 Scrolled and highlighted section")):console.warn(` \u2717 Section [data-section="${o}"] not found in DOM`)}else console.warn(` \u2717 No section mapping found for field: ${r}`)}renderDisabledSection(r,e){return S`
|
|
3422
3417
|
<section class="showcase-section disabled">
|
|
3423
3418
|
<h2>${r}</h2>
|
|
3424
3419
|
<p class="disabled-message">${e}</p>
|