@pure-ds/core 0.6.8 → 0.6.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- var qe=Object.defineProperty;var D=(a,t)=>()=>(a&&(t=a(a=0)),t);var U=(a,t)=>{for(var e in t)qe(a,e,{get:t[e],enumerable:!0})};var xe={};U(xe,{enums:()=>g});var g,G=D(()=>{g={FontWeights:{light:300,normal:400,medium:500,semibold:600,bold:700},LineHeights:{tight:1.25,normal:1.5,relaxed:1.75},BorderWidths:{hairline:.5,thin:1,medium:2,thick:3},RadiusSizes:{none:0,small:4,medium:8,large:16,xlarge:24,xxlarge:32},ShadowDepths:{none:"none",light:"0 1px 2px 0 rgba(0, 0, 0, 0.05)",medium:"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)",deep:"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)",extreme:"0 25px 50px -12px rgba(0, 0, 0, 0.25)"},TransitionSpeeds:{fast:150,normal:250,slow:350},AnimationEasings:{linear:"linear",ease:"ease","ease-in":"ease-in","ease-out":"ease-out","ease-in-out":"ease-in-out",bounce:"cubic-bezier(0.68, -0.55, 0.265, 1.55)"},TouchTargetSizes:{compact:36,standard:44,comfortable:48,spacious:56},LinkStyles:{inline:"inline",block:"block",button:"button"},FocusStyles:{ring:"ring",outline:"outline",border:"border",glow:"glow"},TabSizes:{compact:2,standard:4,wide:8},SelectIcons:{chevron:"chevron",arrow:"arrow",caret:"caret",none:"none"},IconSizes:{xs:16,sm:20,md:24,lg:32,xl:48,"2xl":64,"3xl":96}}});var $e={};U($e,{default:()=>Xe,findComponentForElement:()=>Je,getAllSelectors:()=>Qe,getAllTags:()=>Ke,getByCategory:()=>Ze,ontology:()=>M,searchOntology:()=>Ye});function j(a,t){if(!a||!t)return!1;try{return a.matches(t)}catch{return!1}}function Se(a,t){if(!a||!t||!a.closest)return null;try{return a.closest(t)}catch{return null}}function Je(a,{maxDepth:t=5}={}){if(!a||a.closest&&a.closest(".showcase-toc"))return null;let e=a,r=0;for(;e&&r<t;){if(r++,e.tagName==="DS-SHOWCASE")return null;if(e.classList&&e.classList.contains("showcase-section")){e=e.parentElement;continue}for(let n of PDS.ontology.enhancements){let i=n.selector||n;if(j(e,i))return{element:e,componentType:"enhanced-component",displayName:n.description||i,id:n.id}}if(e.tagName==="FIELDSET"){let n=e.getAttribute("role");if(n==="group"||n==="radiogroup")return{element:e,componentType:"form-group",displayName:n==="radiogroup"?"radio group":"form group"}}if(e.tagName==="LABEL"&&e.querySelector&&e.querySelector("input,select,textarea"))return{element:e,componentType:"form-control",displayName:"label with input"};let o=e.closest?e.closest("label"):null;if(o&&o.querySelector&&o.querySelector("input,select,textarea"))return{element:o,componentType:"form-control",displayName:"label with input"};for(let n of PDS.ontology.primitives){for(let i of n.selectors||[]){let s=String(i||"").trim();if(s.includes("*")){if(s.startsWith(".")){let u=s.slice(1).replace(/\*/g,"");if(e.classList&&Array.from(e.classList).some(p=>p.startsWith(u)))return{element:e,componentType:"pds-primitive",displayName:n.name||n.id,id:n.id,tags:n.tags};let d=e.parentElement,l=0;for(;d&&l<t;){if(d.classList&&Array.from(d.classList).some(p=>p.startsWith(u))&&d.tagName!=="DS-SHOWCASE")return{element:d,componentType:"pds-primitive",displayName:n.name||n.id,id:n.id,tags:n.tags};d=d.parentElement,l++}continue}continue}if(j(e,s))return{element:e,componentType:"pds-primitive",displayName:n.name||n.id,id:n.id,tags:n.tags};let c=Se(e,s);if(c&&c.tagName!=="DS-SHOWCASE")return{element:c,componentType:"pds-primitive",displayName:n.name||n.id,id:n.id,tags:n.tags}}if(e.classList){let i=Array.from(e.classList);for(let s of n.selectors||[])if(typeof s=="string"&&s.includes("*")&&s.startsWith(".")){let c=s.slice(1).replace(/\*/g,"");if(i.some(u=>u.startsWith(c)))return{element:e,componentType:"pds-primitive",displayName:n.name||n.id,id:n.id,tags:n.tags}}}}for(let n of PDS.ontology.layoutPatterns||[])for(let i of n.selectors||[]){let s=String(i||"").trim();if(s.includes("*")){if(s.startsWith(".")){let u=s.slice(1).replace(/\*/g,"");if(e.classList&&Array.from(e.classList).some(d=>d.startsWith(u)))return{element:e,componentType:"layout-pattern",displayName:n.name||n.id,id:n.id,tags:n.tags}}continue}if(j(e,s))return{element:e,componentType:"layout-pattern",displayName:n.name||n.id,id:n.id,tags:n.tags};let c=Se(e,s);if(c&&c.tagName!=="DS-SHOWCASE")return{element:c,componentType:"layout-pattern",displayName:n.name||n.id,id:n.id,tags:n.tags}}if(e.tagName&&e.tagName.includes("-")){let n=e.tagName.toLowerCase(),i=PDS.ontology.components.find(s=>s.selectors.includes(n));return{element:e,componentType:"web-component",displayName:i?.name||n,id:i?.id||n,tags:i?.tags}}if(e.tagName==="BUTTON"){let n=e.querySelector&&e.querySelector("pds-icon");return{element:e,componentType:"button",displayName:n?"button with icon":"button",id:"button"}}if(j(e,"pds-icon")||e.closest&&e.closest("pds-icon")){let n=j(e,"pds-icon")?e:e.closest("pds-icon");return{element:n,componentType:"icon",displayName:`pds-icon (${n.getAttribute&&n.getAttribute("icon")||"unknown"})`,id:"pds-icon"}}if(j(e,"nav[data-dropdown]")||e.closest&&e.closest("nav[data-dropdown]"))return{element:j(e,"nav[data-dropdown]")?e:e.closest("nav[data-dropdown]"),componentType:"navigation",displayName:"dropdown menu",id:"dropdown"};e=e.parentElement}return null}function Qe(){let a=[];for(let t of PDS.ontology.primitives)a.push(...t.selectors||[]);for(let t of PDS.ontology.components)a.push(...t.selectors||[]);for(let t of PDS.ontology.layoutPatterns||[])a.push(...t.selectors||[]);return Array.from(new Set(a))}function Ye(a,t={}){let e=a.toLowerCase(),r=[],o=(n,i)=>{for(let s of n)(s.id?.toLowerCase().includes(e)||s.name?.toLowerCase().includes(e)||s.description?.toLowerCase().includes(e)||s.tags?.some(u=>u.toLowerCase().includes(e))||s.category?.toLowerCase().includes(e)||s.selectors?.some(u=>u.toLowerCase().includes(e)))&&r.push({...s,type:i})};return(!t.type||t.type==="primitive")&&o(M.primitives,"primitive"),(!t.type||t.type==="component")&&o(M.components,"component"),(!t.type||t.type==="layout")&&o(M.layoutPatterns,"layout"),(!t.type||t.type==="enhancement")&&o(M.enhancements,"enhancement"),r}function Ze(a){let t=a.toLowerCase();return{primitives:M.primitives.filter(e=>e.category===t),components:M.components.filter(e=>e.category===t),layouts:M.layoutPatterns.filter(e=>e.category===t)}}function Ke(){let a=new Set;return M.primitives.forEach(t=>t.tags?.forEach(e=>a.add(e))),M.components.forEach(t=>t.tags?.forEach(e=>a.add(e))),M.layoutPatterns.forEach(t=>t.tags?.forEach(e=>a.add(e))),M.enhancements.forEach(t=>t.tags?.forEach(e=>a.add(e))),Array.from(a).sort()}var M,Xe,ae=D(()=>{M={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:"callout",name:"Callout",description:"Contextual information and notification messages",selectors:[".callout",".callout-info",".callout-success",".callout-warning",".callout-danger",".callout-error",".callout-dismissible"],tags:["feedback","message","notification","status","information"],category:"feedback"},{id:"empty-state",name:"Empty State",description:"Empty state layout for missing data or onboarding",selectors:[".empty-state"],tags:["empty","no-data","zero","placeholder","onboarding","state"],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-fab",name:"FAB",description:"Floating Action Button with expandable satellite actions",selectors:["pds-fab"],tags:["button","action","floating","interactive"],category:"action"},{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-live-edit",name:"Live Edit",description:"Contextual live editing for PDS design settings",selectors:["pds-live-edit"],tags:["editor","live","config","tooling"],category:"tooling"},{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:["callout","badge","empty-state"],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"]},action:{description:"Interactive actions and buttons",primitives:["button"],components:["pds-fab"]}},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"],empty:["empty-state","placeholder","zero","no-data","onboarding","callout","card","icon","button"],"empty state":["empty-state","empty","no-data","zero","onboarding"],"no data":["empty-state","empty","zero","placeholder"],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","pds-fab","floating"],btn:["button","interactive","action","pds-fab"],fab:["pds-fab","floating","button","action","menu"],floating:["fab","pds-fab","button","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"],callout:["notification","feedback","message","status","toast","information","alert","warning","error","info","success","danger"],alert:["callout","notification","feedback","message","status","toast","modal","dialog","pds-ask","confirm","warning","error","info","success","danger"],notification:["callout","toast","pds-toaster","feedback","message","popup","alert"],toast:["pds-toaster","notification","callout","feedback","popup","snackbar","alert"],feedback:["callout","notification","toast","status","badge","validation","error","success","alert"],message:["callout","notification","feedback","dialog","toast","alert"],status:["badge","callout","indicator","feedback","state","alert"],error:["callout","danger","validation","feedback","warning","alert"],success:["callout","feedback","badge","status","check","alert"],warning:["callout","caution","feedback","status","alert"],info:["callout","information","feedback","status","alert"],danger:["callout","error","feedback","destructive","delete","alert"],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"]}};Xe=M});var Re={};U(Re,{AutoDefiner:()=>ce});async function yt(...a){let t={};a.length&&typeof a[a.length-1]=="object"&&(t=a.pop()||{});let e=a,{baseURL:r,mapper:o=u=>`${u}.js`,onError:n=(u,d)=>console.error(`[defineWebComponents] ${u}:`,d)}=t,i=r?new URL(r,typeof location<"u"?location.href:import.meta.url):new URL("./",import.meta.url),s=u=>u.toLowerCase().replace(/(^|-)([a-z])/g,(d,l,p)=>p.toUpperCase()),c=async u=>{try{if(customElements.get(u))return{tag:u,status:"already-defined"};let d=o(u),p=await import(d instanceof URL?d.href:new URL(d,i).href),m=p?.default??p?.[s(u)];if(!m){if(customElements.get(u))return{tag:u,status:"self-defined"};throw new Error(`No export found for ${u}. Expected default export or named export "${s(u)}".`)}return customElements.get(u)?{tag:u,status:"race-already-defined"}:(customElements.define(u,m),{tag:u,status:"defined"})}catch(d){throw n(u,d),d}};return Promise.all(e.map(c))}var ce,We=D(()=>{ce=class{constructor(t={}){let{baseURL:e,mapper:r,onError:o,predicate:n=()=>!0,attributeModule:i="data-module",root:s=document,scanExisting:c=!0,debounceMs:u=16,observeShadows:d=!0,enhancers:l=[],patchAttachShadow:p=!0}=t,m=new Set,f=new Set,b=new Set,h=new Map,y=new WeakMap,S=new WeakMap,$=0,L=!1,R=null,F=v=>{if(!v||!l.length)return;let x=S.get(v);x||(x=new Set,S.set(v,x));for(let w of l)if(!(!w.selector||!w.run)&&!x.has(w.selector))try{v.matches&&v.matches(w.selector)&&(w.run(v),x.add(w.selector))}catch(C){console.warn(`[AutoDefiner] Error applying enhancer for selector "${w.selector}":`,C)}},A=(v,x)=>{if(!L&&!(!v||!v.includes("-"))&&!customElements.get(v)&&!f.has(v)&&!b.has(v)){if(x&&x.getAttribute){let w=x.getAttribute(i);w&&!h.has(v)&&h.set(v,w)}m.add(v),k()}},k=()=>{$||($=setTimeout(W,u))},z=v=>{if(v){if(v.nodeType===1){let x=v,w=x.tagName?.toLowerCase();w&&w.includes("-")&&!customElements.get(w)&&n(w,x)&&A(w,x),F(x),d&&x.shadowRoot&&E(x.shadowRoot)}v.querySelectorAll&&v.querySelectorAll("*").forEach(x=>{let w=x.tagName?.toLowerCase();w&&w.includes("-")&&!customElements.get(w)&&n(w,x)&&A(w,x),F(x),d&&x.shadowRoot&&E(x.shadowRoot)})}},E=v=>{if(!v||y.has(v))return;z(v);let x=new MutationObserver(w=>{for(let C of w)C.addedNodes?.forEach(N=>{z(N)}),C.type==="attributes"&&C.target&&z(C.target)});x.observe(v,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[i,...l.map(w=>w.selector).filter(w=>w.startsWith("data-"))]}),y.set(v,x)};async function W(){if(clearTimeout($),$=0,!m.size)return;let v=Array.from(m);m.clear(),v.forEach(x=>f.add(x));try{let x=w=>h.get(w)??(r?r(w):`${w}.js`);await yt(...v,{baseURL:e,mapper:x,onError:(w,C)=>{b.add(w),o?.(w,C)}})}catch{}finally{v.forEach(x=>f.delete(x))}}let K=s===document?document.documentElement:s,q=new MutationObserver(v=>{for(let x of v)x.addedNodes?.forEach(w=>{z(w)}),x.type==="attributes"&&x.target&&z(x.target)});if(q.observe(K,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[i,...l.map(v=>v.selector).filter(v=>v.startsWith("data-"))]}),d&&p&&Element.prototype.attachShadow){let v=Element.prototype.attachShadow;Element.prototype.attachShadow=function(w){let C=v.call(this,w);if(w&&w.mode==="open"){E(C);let N=this.tagName?.toLowerCase();N&&N.includes("-")&&!customElements.get(N)&&A(N,this)}return C},R=()=>Element.prototype.attachShadow=v}return c&&z(K),{stop(){L=!0,q.disconnect(),R&&R(),$&&(clearTimeout($),$=0),y.forEach(v=>v.disconnect())},flush:W}}static async define(...t){let e={};t.length&&typeof t[t.length-1]=="object"&&(e=t.pop()||{});let r=t,{baseURL:o,mapper:n=d=>`${d}.js`,onError:i=(d,l)=>console.error(`[defineWebComponents] ${d}:`,l)}=e,s=o?new URL(o,typeof location<"u"?location.href:import.meta.url):new URL("./",import.meta.url),c=d=>d.toLowerCase().replace(/(^|-)([a-z])/g,(l,p,m)=>m.toUpperCase()),u=async d=>{try{if(customElements.get(d))return{tag:d,status:"already-defined"};let l=n(d),m=await import(l instanceof URL?l.href:new URL(l,s).href),f=m?.default??m?.[c(d)];if(!f){if(customElements.get(d))return{tag:d,status:"self-defined"};throw new Error(`No export found for ${d}. Expected default export or named export "${c(d)}".`)}return customElements.get(d)?{tag:d,status:"race-already-defined"}:(customElements.define(d,f),{tag:d,status:"defined"})}catch(l){throw i(d,l),l}};return Promise.all(r.map(u))}}});var be={};U(be,{PDSQuery:()=>fe});var fe,ye=D(()=>{fe=class{constructor(t){this.pds=t,this.intents={color:["color","colours","shade","tint","hue","foreground","background","text","fill","bg","fg"],spacing:["spacing","space","gap","padding","margin","distance","rhythm"],typography:["font","text","type","typography","heading","body","size","weight","family"],border:["border","outline","stroke","edge","frame"],radius:["radius","rounded","corner","curve","round"],shadow:["shadow","elevation","depth","glow","drop-shadow"],component:["component","element","widget"],utility:["utility","class","helper","css"],layout:["layout","container","grid","flex","group","arrange","organize"],pattern:["pattern","example","template","structure"],interaction:["hover","focus","active","disabled","pressed","selected","checked"]},this.entities={button:["button","btn","cta"],input:["input","field","textbox","text-field","form-control"],card:["card","panel"],badge:["badge","pill","tag","chip"],surface:["surface","background","layer","container"],icon:["icon","svg","glyph","symbol"],link:["link","anchor","hyperlink"],nav:["nav","navigation","menu"],modal:["modal","dialog","popup","overlay"],drawer:["drawer","sidebar","panel"],tab:["tab","tabstrip"],toast:["toast","notification","callout","message","alert"]},this.questionWords=["what","which","how","where","when","show","find","get","give","tell"]}async search(t){if(!t||t.length<2)return[];let e=t.toLowerCase().trim(),r=this.tokenize(e),o=this.analyzeQuery(r,e),n=[];o.intents.has("color")&&n.push(...this.queryColors(o,e)),(o.intents.has("utility")||o.intents.has("border")||o.intents.has("layout")||e.includes("class"))&&n.push(...this.queryUtilities(o,e)),(o.intents.has("component")||o.entities.size>0)&&n.push(...this.queryComponents(o,e)),(o.intents.has("layout")||o.intents.has("pattern"))&&n.push(...this.queryPatterns(o,e)),o.intents.has("typography")&&n.push(...this.queryTypography(o,e)),o.intents.has("spacing")&&n.push(...this.querySpacing(o,e));let i=new Map;for(let s of n){let c=s.value;(!i.has(c)||i.get(c).score<s.score)&&i.set(c,s)}return Array.from(i.values()).sort((s,c)=>c.score-s.score).slice(0,10)}tokenize(t){return t.toLowerCase().replace(/[?!.]/g,"").split(/\s+/).filter(e=>e.length>0)}analyzeQuery(t,e){let r={intents:new Set,entities:new Set,modifiers:new Set,isQuestion:!1,tokens:t,fullText:e};r.isQuestion=this.questionWords.some(o=>t.includes(o));for(let[o,n]of Object.entries(this.intents))n.some(i=>t.includes(i)||e.includes(i))&&r.intents.add(o);for(let[o,n]of Object.entries(this.entities))n.some(i=>t.includes(i)||e.includes(i))&&r.entities.add(o);return(t.includes("hover")||e.includes("hover"))&&r.modifiers.add("hover"),(t.includes("focus")||e.includes("focus"))&&r.modifiers.add("focus"),(t.includes("active")||e.includes("active"))&&r.modifiers.add("active"),(t.includes("disabled")||e.includes("disabled"))&&r.modifiers.add("disabled"),r}queryColors(t,e){let r=[],o=this.pds.compiled;if(!o?.tokens?.colors)return r;let n=o.tokens.colors,i=Array.from(t.entities),s=Array.from(t.modifiers);if(s.includes("focus")&&t.intents.has("border")&&i.includes("input")&&r.push({text:"Focus border color: var(--color-primary-500)",value:"--color-primary-500",icon:"palette",category:"Color Token",score:100,cssVar:"var(--color-primary-500)",description:"Primary color used for focus states on form inputs"}),(e.includes("foreground")||e.includes("text"))&&(e.includes("surface")||t.entities.has("surface"))&&(r.push({text:"Text on surface: var(--surface-text)",value:"--surface-text",icon:"palette",category:"Surface Token",score:95,cssVar:"var(--surface-text)",description:"Default text color for current surface"}),r.push({text:"Secondary text: var(--surface-text-secondary)",value:"--surface-text-secondary",icon:"palette",category:"Surface Token",score:90,cssVar:"var(--surface-text-secondary)",description:"Secondary/muted text on surface"})),e.includes("primary")||e.includes("accent")||e.includes("secondary")){let c=e.includes("primary")?"primary":e.includes("accent")?"accent":"secondary";for(let u of[500,600,700]){let d=`--color-${c}-${u}`;r.push({text:`${c.charAt(0).toUpperCase()+c.slice(1)} ${u}: var(${d})`,value:d,icon:"palette",category:"Color Scale",score:80-(u-500)/100,cssVar:`var(${d})`,description:`${c} color scale shade ${u}`})}}if(i.includes("button")&&t.intents.has("color")){let c=s[0];c?r.push({text:`Button ${c} fill: var(--primary-fill-${c})`,value:`--primary-fill-${c}`,icon:"palette",category:"Interactive Token",score:92,description:`Button background color in ${c} state`}):r.push({text:"Button fill: var(--primary-fill)",value:"--primary-fill",icon:"palette",category:"Interactive Token",score:88,description:"Default button background color"})}return r}queryUtilities(t,e){let r=[],o=this.pds.ontology;if(!o?.utilities)return r;let n=o.utilities,i=[];for(let s of Object.values(n))if(typeof s=="object")for(let c of Object.values(s))Array.isArray(c)&&i.push(...c);return t.intents.has("border")&&i.filter(c=>c.includes("border")||c.includes("outline")).forEach(c=>{let u=80;e.includes("gradient")&&c.includes("gradient")&&(u=95),e.includes("glow")&&c.includes("glow")&&(u=95),r.push({text:`${c} - Border utility class`,value:c,icon:"code",category:"Utility Class",score:u,code:`<div class="${c}">...</div>`,description:this.describeUtility(c)})}),t.intents.has("layout")&&i.filter(c=>c.includes("flex")||c.includes("grid")||c.includes("items-")||c.includes("justify-")||c.includes("gap-")).forEach(c=>{r.push({text:`${c} - Layout utility`,value:c,icon:"layout",category:"Utility Class",score:85,code:`<div class="${c}">...</div>`,description:this.describeUtility(c)})}),e.includes("group")&&t.entities.has("button")&&r.push({text:".btn-group - Group buttons together",value:".btn-group",icon:"code",category:"Utility Class",score:90,code:`<div class="btn-group">
1
+ var Ge=Object.defineProperty;var D=(a,t)=>()=>(a&&(t=a(a=0)),t);var U=(a,t)=>{for(var e in t)Ge(a,e,{get:t[e],enumerable:!0})};var xe={};U(xe,{enums:()=>g});var g,G=D(()=>{g={FontWeights:{light:300,normal:400,medium:500,semibold:600,bold:700},LineHeights:{tight:1.25,normal:1.5,relaxed:1.75},BorderWidths:{hairline:.5,thin:1,medium:2,thick:3},RadiusSizes:{none:0,small:4,medium:8,large:16,xlarge:24,xxlarge:32},ShadowDepths:{none:"none",light:"0 1px 2px 0 rgba(0, 0, 0, 0.05)",medium:"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)",deep:"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)",extreme:"0 25px 50px -12px rgba(0, 0, 0, 0.25)"},TransitionSpeeds:{fast:150,normal:250,slow:350},AnimationEasings:{linear:"linear",ease:"ease","ease-in":"ease-in","ease-out":"ease-out","ease-in-out":"ease-in-out",bounce:"cubic-bezier(0.68, -0.55, 0.265, 1.55)"},TouchTargetSizes:{compact:36,standard:44,comfortable:48,spacious:56},LinkStyles:{inline:"inline",block:"block",button:"button"},FocusStyles:{ring:"ring",outline:"outline",border:"border",glow:"glow"},TabSizes:{compact:2,standard:4,wide:8},SelectIcons:{chevron:"chevron",arrow:"arrow",caret:"caret",none:"none"},IconSizes:{xs:16,sm:20,md:24,lg:32,xl:48,"2xl":64,"3xl":96}}});var $e={};U($e,{default:()=>et,findComponentForElement:()=>Qe,getAllSelectors:()=>Ye,getAllTags:()=>Xe,getByCategory:()=>Ke,ontology:()=>M,searchOntology:()=>Ze});function j(a,t){if(!a||!t)return!1;try{return a.matches(t)}catch{return!1}}function Se(a,t){if(!a||!t||!a.closest)return null;try{return a.closest(t)}catch{return null}}function Qe(a,{maxDepth:t=5}={}){if(!a||a.closest&&a.closest(".showcase-toc"))return null;let e=a,r=0;for(;e&&r<t;){if(r++,e.tagName==="DS-SHOWCASE")return null;if(e.classList&&e.classList.contains("showcase-section")){e=e.parentElement;continue}for(let n of PDS.ontology.enhancements){let i=n.selector||n;if(j(e,i))return{element:e,componentType:"enhanced-component",displayName:n.description||i,id:n.id}}if(e.tagName==="FIELDSET"){let n=e.getAttribute("role");if(n==="group"||n==="radiogroup")return{element:e,componentType:"form-group",displayName:n==="radiogroup"?"radio group":"form group"}}if(e.tagName==="LABEL"&&e.querySelector&&e.querySelector("input,select,textarea"))return{element:e,componentType:"form-control",displayName:"label with input"};let o=e.closest?e.closest("label"):null;if(o&&o.querySelector&&o.querySelector("input,select,textarea"))return{element:o,componentType:"form-control",displayName:"label with input"};for(let n of PDS.ontology.primitives){for(let i of n.selectors||[]){let s=String(i||"").trim();if(s.includes("*")){if(s.startsWith(".")){let u=s.slice(1).replace(/\*/g,"");if(e.classList&&Array.from(e.classList).some(p=>p.startsWith(u)))return{element:e,componentType:"pds-primitive",displayName:n.name||n.id,id:n.id,tags:n.tags};let d=e.parentElement,l=0;for(;d&&l<t;){if(d.classList&&Array.from(d.classList).some(p=>p.startsWith(u))&&d.tagName!=="DS-SHOWCASE")return{element:d,componentType:"pds-primitive",displayName:n.name||n.id,id:n.id,tags:n.tags};d=d.parentElement,l++}continue}continue}if(j(e,s))return{element:e,componentType:"pds-primitive",displayName:n.name||n.id,id:n.id,tags:n.tags};let c=Se(e,s);if(c&&c.tagName!=="DS-SHOWCASE")return{element:c,componentType:"pds-primitive",displayName:n.name||n.id,id:n.id,tags:n.tags}}if(e.classList){let i=Array.from(e.classList);for(let s of n.selectors||[])if(typeof s=="string"&&s.includes("*")&&s.startsWith(".")){let c=s.slice(1).replace(/\*/g,"");if(i.some(u=>u.startsWith(c)))return{element:e,componentType:"pds-primitive",displayName:n.name||n.id,id:n.id,tags:n.tags}}}}for(let n of PDS.ontology.layoutPatterns||[])for(let i of n.selectors||[]){let s=String(i||"").trim();if(s.includes("*")){if(s.startsWith(".")){let u=s.slice(1).replace(/\*/g,"");if(e.classList&&Array.from(e.classList).some(d=>d.startsWith(u)))return{element:e,componentType:"layout-pattern",displayName:n.name||n.id,id:n.id,tags:n.tags}}continue}if(j(e,s))return{element:e,componentType:"layout-pattern",displayName:n.name||n.id,id:n.id,tags:n.tags};let c=Se(e,s);if(c&&c.tagName!=="DS-SHOWCASE")return{element:c,componentType:"layout-pattern",displayName:n.name||n.id,id:n.id,tags:n.tags}}if(e.tagName&&e.tagName.includes("-")){let n=e.tagName.toLowerCase(),i=PDS.ontology.components.find(s=>s.selectors.includes(n));return{element:e,componentType:"web-component",displayName:i?.name||n,id:i?.id||n,tags:i?.tags}}if(e.tagName==="BUTTON"){let n=e.querySelector&&e.querySelector("pds-icon");return{element:e,componentType:"button",displayName:n?"button with icon":"button",id:"button"}}if(j(e,"pds-icon")||e.closest&&e.closest("pds-icon")){let n=j(e,"pds-icon")?e:e.closest("pds-icon");return{element:n,componentType:"icon",displayName:`pds-icon (${n.getAttribute&&n.getAttribute("icon")||"unknown"})`,id:"pds-icon"}}if(j(e,"nav[data-dropdown]")||e.closest&&e.closest("nav[data-dropdown]"))return{element:j(e,"nav[data-dropdown]")?e:e.closest("nav[data-dropdown]"),componentType:"navigation",displayName:"dropdown menu",id:"dropdown"};e=e.parentElement}return null}function Ye(){let a=[];for(let t of PDS.ontology.primitives)a.push(...t.selectors||[]);for(let t of PDS.ontology.components)a.push(...t.selectors||[]);for(let t of PDS.ontology.layoutPatterns||[])a.push(...t.selectors||[]);return Array.from(new Set(a))}function Ze(a,t={}){let e=a.toLowerCase(),r=[],o=(n,i)=>{for(let s of n)(s.id?.toLowerCase().includes(e)||s.name?.toLowerCase().includes(e)||s.description?.toLowerCase().includes(e)||s.tags?.some(u=>u.toLowerCase().includes(e))||s.category?.toLowerCase().includes(e)||s.selectors?.some(u=>u.toLowerCase().includes(e)))&&r.push({...s,type:i})};return(!t.type||t.type==="primitive")&&o(M.primitives,"primitive"),(!t.type||t.type==="component")&&o(M.components,"component"),(!t.type||t.type==="layout")&&o(M.layoutPatterns,"layout"),(!t.type||t.type==="enhancement")&&o(M.enhancements,"enhancement"),r}function Ke(a){let t=a.toLowerCase();return{primitives:M.primitives.filter(e=>e.category===t),components:M.components.filter(e=>e.category===t),layouts:M.layoutPatterns.filter(e=>e.category===t)}}function Xe(){let a=new Set;return M.primitives.forEach(t=>t.tags?.forEach(e=>a.add(e))),M.components.forEach(t=>t.tags?.forEach(e=>a.add(e))),M.layoutPatterns.forEach(t=>t.tags?.forEach(e=>a.add(e))),M.enhancements.forEach(t=>t.tags?.forEach(e=>a.add(e))),Array.from(a).sort()}var M,et,ae=D(()=>{M={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:"callout",name:"Callout",description:"Contextual information and notification messages",selectors:[".callout",".callout-info",".callout-success",".callout-warning",".callout-danger",".callout-error",".callout-dismissible"],tags:["feedback","message","notification","status","information"],category:"feedback"},{id:"empty-state",name:"Empty State",description:"Empty state layout for missing data or onboarding",selectors:[".empty-state"],tags:["empty","no-data","zero","placeholder","onboarding","state"],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-fab",name:"FAB",description:"Floating Action Button with expandable satellite actions",selectors:["pds-fab"],tags:["button","action","floating","interactive"],category:"action"},{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-live-edit",name:"Live Edit",description:"Contextual live editing for PDS design settings",selectors:["pds-live-edit"],tags:["editor","live","config","tooling"],category:"tooling"},{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:["callout","badge","empty-state"],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"]},action:{description:"Interactive actions and buttons",primitives:["button"],components:["pds-fab"]}},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"],empty:["empty-state","placeholder","zero","no-data","onboarding","callout","card","icon","button"],"empty state":["empty-state","empty","no-data","zero","onboarding"],"no data":["empty-state","empty","zero","placeholder"],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","pds-fab","floating"],btn:["button","interactive","action","pds-fab"],fab:["pds-fab","floating","button","action","menu"],floating:["fab","pds-fab","button","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"],callout:["notification","feedback","message","status","toast","information","alert","warning","error","info","success","danger"],alert:["callout","notification","feedback","message","status","toast","modal","dialog","pds-ask","confirm","warning","error","info","success","danger"],notification:["callout","toast","pds-toaster","feedback","message","popup","alert"],toast:["pds-toaster","notification","callout","feedback","popup","snackbar","alert"],feedback:["callout","notification","toast","status","badge","validation","error","success","alert"],message:["callout","notification","feedback","dialog","toast","alert"],status:["badge","callout","indicator","feedback","state","alert"],error:["callout","danger","validation","feedback","warning","alert"],success:["callout","feedback","badge","status","check","alert"],warning:["callout","caution","feedback","status","alert"],info:["callout","information","feedback","status","alert"],danger:["callout","error","feedback","destructive","delete","alert"],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"]}};et=M});var We={};U(We,{AutoDefiner:()=>ce});async function yt(...a){let t={};a.length&&typeof a[a.length-1]=="object"&&(t=a.pop()||{});let e=a,{baseURL:r,mapper:o=u=>`${u}.js`,onError:n=(u,d)=>console.error(`[defineWebComponents] ${u}:`,d)}=t,i=r?new URL(r,typeof location<"u"?location.href:import.meta.url):new URL("./",import.meta.url),s=u=>u.toLowerCase().replace(/(^|-)([a-z])/g,(d,l,p)=>p.toUpperCase()),c=async u=>{try{if(customElements.get(u))return{tag:u,status:"already-defined"};let d=o(u),p=await import(d instanceof URL?d.href:new URL(d,i).href),m=p?.default??p?.[s(u)];if(!m){if(customElements.get(u))return{tag:u,status:"self-defined"};throw new Error(`No export found for ${u}. Expected default export or named export "${s(u)}".`)}return customElements.get(u)?{tag:u,status:"race-already-defined"}:(customElements.define(u,m),{tag:u,status:"defined"})}catch(d){throw n(u,d),d}};return Promise.all(e.map(c))}var ce,je=D(()=>{ce=class{constructor(t={}){let{baseURL:e,mapper:r,onError:o,predicate:n=()=>!0,attributeModule:i="data-module",root:s=document,scanExisting:c=!0,debounceMs:u=16,observeShadows:d=!0,enhancers:l=[],patchAttachShadow:p=!0}=t,m=new Set,f=new Set,b=new Set,h=new Map,y=new WeakMap,S=new WeakMap,$=0,L=!1,R=null,F=v=>{if(!v||!l.length)return;let x=S.get(v);x||(x=new Set,S.set(v,x));for(let w of l)if(!(!w.selector||!w.run)&&!x.has(w.selector))try{v.matches&&v.matches(w.selector)&&(w.run(v),x.add(w.selector))}catch(C){console.warn(`[AutoDefiner] Error applying enhancer for selector "${w.selector}":`,C)}},A=(v,x)=>{if(!L&&!(!v||!v.includes("-"))&&!customElements.get(v)&&!f.has(v)&&!b.has(v)){if(x&&x.getAttribute){let w=x.getAttribute(i);w&&!h.has(v)&&h.set(v,w)}m.add(v),k()}},k=()=>{$||($=setTimeout(W,u))},z=v=>{if(v){if(v.nodeType===1){let x=v,w=x.tagName?.toLowerCase();w&&w.includes("-")&&!customElements.get(w)&&n(w,x)&&A(w,x),F(x),d&&x.shadowRoot&&E(x.shadowRoot)}v.querySelectorAll&&v.querySelectorAll("*").forEach(x=>{let w=x.tagName?.toLowerCase();w&&w.includes("-")&&!customElements.get(w)&&n(w,x)&&A(w,x),F(x),d&&x.shadowRoot&&E(x.shadowRoot)})}},E=v=>{if(!v||y.has(v))return;z(v);let x=new MutationObserver(w=>{for(let C of w)C.addedNodes?.forEach(N=>{z(N)}),C.type==="attributes"&&C.target&&z(C.target)});x.observe(v,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[i,...l.map(w=>w.selector).filter(w=>w.startsWith("data-"))]}),y.set(v,x)};async function W(){if(clearTimeout($),$=0,!m.size)return;let v=Array.from(m);m.clear(),v.forEach(x=>f.add(x));try{let x=w=>h.get(w)??(r?r(w):`${w}.js`);await yt(...v,{baseURL:e,mapper:x,onError:(w,C)=>{b.add(w),o?.(w,C)}})}catch{}finally{v.forEach(x=>f.delete(x))}}let K=s===document?document.documentElement:s,q=new MutationObserver(v=>{for(let x of v)x.addedNodes?.forEach(w=>{z(w)}),x.type==="attributes"&&x.target&&z(x.target)});if(q.observe(K,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[i,...l.map(v=>v.selector).filter(v=>v.startsWith("data-"))]}),d&&p&&Element.prototype.attachShadow){let v=Element.prototype.attachShadow;Element.prototype.attachShadow=function(w){let C=v.call(this,w);if(w&&w.mode==="open"){E(C);let N=this.tagName?.toLowerCase();N&&N.includes("-")&&!customElements.get(N)&&A(N,this)}return C},R=()=>Element.prototype.attachShadow=v}return c&&z(K),{stop(){L=!0,q.disconnect(),R&&R(),$&&(clearTimeout($),$=0),y.forEach(v=>v.disconnect())},flush:W}}static async define(...t){let e={};t.length&&typeof t[t.length-1]=="object"&&(e=t.pop()||{});let r=t,{baseURL:o,mapper:n=d=>`${d}.js`,onError:i=(d,l)=>console.error(`[defineWebComponents] ${d}:`,l)}=e,s=o?new URL(o,typeof location<"u"?location.href:import.meta.url):new URL("./",import.meta.url),c=d=>d.toLowerCase().replace(/(^|-)([a-z])/g,(l,p,m)=>m.toUpperCase()),u=async d=>{try{if(customElements.get(d))return{tag:d,status:"already-defined"};let l=n(d),m=await import(l instanceof URL?l.href:new URL(l,s).href),f=m?.default??m?.[c(d)];if(!f){if(customElements.get(d))return{tag:d,status:"self-defined"};throw new Error(`No export found for ${d}. Expected default export or named export "${c(d)}".`)}return customElements.get(d)?{tag:d,status:"race-already-defined"}:(customElements.define(d,f),{tag:d,status:"defined"})}catch(l){throw i(d,l),l}};return Promise.all(r.map(u))}}});var be={};U(be,{PDSQuery:()=>fe});var fe,ye=D(()=>{fe=class{constructor(t){this.pds=t,this.intents={color:["color","colours","shade","tint","hue","foreground","background","text","fill","bg","fg"],spacing:["spacing","space","gap","padding","margin","distance","rhythm"],typography:["font","text","type","typography","heading","body","size","weight","family"],border:["border","outline","stroke","edge","frame"],radius:["radius","rounded","corner","curve","round"],shadow:["shadow","elevation","depth","glow","drop-shadow"],component:["component","element","widget"],utility:["utility","class","helper","css"],layout:["layout","container","grid","flex","group","arrange","organize"],pattern:["pattern","example","template","structure"],interaction:["hover","focus","active","disabled","pressed","selected","checked"]},this.entities={button:["button","btn","cta"],input:["input","field","textbox","text-field","form-control"],card:["card","panel"],badge:["badge","pill","tag","chip"],surface:["surface","background","layer","container"],icon:["icon","svg","glyph","symbol"],link:["link","anchor","hyperlink"],nav:["nav","navigation","menu"],modal:["modal","dialog","popup","overlay"],drawer:["drawer","sidebar","panel"],tab:["tab","tabstrip"],toast:["toast","notification","callout","message","alert"]},this.questionWords=["what","which","how","where","when","show","find","get","give","tell"]}async search(t){if(!t||t.length<2)return[];let e=t.toLowerCase().trim(),r=this.tokenize(e),o=this.analyzeQuery(r,e),n=[];o.intents.has("color")&&n.push(...this.queryColors(o,e)),(o.intents.has("utility")||o.intents.has("border")||o.intents.has("layout")||e.includes("class"))&&n.push(...this.queryUtilities(o,e)),(o.intents.has("component")||o.entities.size>0)&&n.push(...this.queryComponents(o,e)),(o.intents.has("layout")||o.intents.has("pattern"))&&n.push(...this.queryPatterns(o,e)),o.intents.has("typography")&&n.push(...this.queryTypography(o,e)),o.intents.has("spacing")&&n.push(...this.querySpacing(o,e));let i=new Map;for(let s of n){let c=s.value;(!i.has(c)||i.get(c).score<s.score)&&i.set(c,s)}return Array.from(i.values()).sort((s,c)=>c.score-s.score).slice(0,10)}tokenize(t){return t.toLowerCase().replace(/[?!.]/g,"").split(/\s+/).filter(e=>e.length>0)}analyzeQuery(t,e){let r={intents:new Set,entities:new Set,modifiers:new Set,isQuestion:!1,tokens:t,fullText:e};r.isQuestion=this.questionWords.some(o=>t.includes(o));for(let[o,n]of Object.entries(this.intents))n.some(i=>t.includes(i)||e.includes(i))&&r.intents.add(o);for(let[o,n]of Object.entries(this.entities))n.some(i=>t.includes(i)||e.includes(i))&&r.entities.add(o);return(t.includes("hover")||e.includes("hover"))&&r.modifiers.add("hover"),(t.includes("focus")||e.includes("focus"))&&r.modifiers.add("focus"),(t.includes("active")||e.includes("active"))&&r.modifiers.add("active"),(t.includes("disabled")||e.includes("disabled"))&&r.modifiers.add("disabled"),r}queryColors(t,e){let r=[],o=this.pds.compiled;if(!o?.tokens?.colors)return r;let n=o.tokens.colors,i=Array.from(t.entities),s=Array.from(t.modifiers);if(s.includes("focus")&&t.intents.has("border")&&i.includes("input")&&r.push({text:"Focus border color: var(--color-primary-500)",value:"--color-primary-500",icon:"palette",category:"Color Token",score:100,cssVar:"var(--color-primary-500)",description:"Primary color used for focus states on form inputs"}),(e.includes("foreground")||e.includes("text"))&&(e.includes("surface")||t.entities.has("surface"))&&(r.push({text:"Text on surface: var(--surface-text)",value:"--surface-text",icon:"palette",category:"Surface Token",score:95,cssVar:"var(--surface-text)",description:"Default text color for current surface"}),r.push({text:"Secondary text: var(--surface-text-secondary)",value:"--surface-text-secondary",icon:"palette",category:"Surface Token",score:90,cssVar:"var(--surface-text-secondary)",description:"Secondary/muted text on surface"})),e.includes("primary")||e.includes("accent")||e.includes("secondary")){let c=e.includes("primary")?"primary":e.includes("accent")?"accent":"secondary";for(let u of[500,600,700]){let d=`--color-${c}-${u}`;r.push({text:`${c.charAt(0).toUpperCase()+c.slice(1)} ${u}: var(${d})`,value:d,icon:"palette",category:"Color Scale",score:80-(u-500)/100,cssVar:`var(${d})`,description:`${c} color scale shade ${u}`})}}if(i.includes("button")&&t.intents.has("color")){let c=s[0];c?r.push({text:`Button ${c} fill: var(--primary-fill-${c})`,value:`--primary-fill-${c}`,icon:"palette",category:"Interactive Token",score:92,description:`Button background color in ${c} state`}):r.push({text:"Button fill: var(--primary-fill)",value:"--primary-fill",icon:"palette",category:"Interactive Token",score:88,description:"Default button background color"})}return r}queryUtilities(t,e){let r=[],o=this.pds.ontology;if(!o?.utilities)return r;let n=o.utilities,i=[];for(let s of Object.values(n))if(typeof s=="object")for(let c of Object.values(s))Array.isArray(c)&&i.push(...c);return t.intents.has("border")&&i.filter(c=>c.includes("border")||c.includes("outline")).forEach(c=>{let u=80;e.includes("gradient")&&c.includes("gradient")&&(u=95),e.includes("glow")&&c.includes("glow")&&(u=95),r.push({text:`${c} - Border utility class`,value:c,icon:"code",category:"Utility Class",score:u,code:`<div class="${c}">...</div>`,description:this.describeUtility(c)})}),t.intents.has("layout")&&i.filter(c=>c.includes("flex")||c.includes("grid")||c.includes("items-")||c.includes("justify-")||c.includes("gap-")).forEach(c=>{r.push({text:`${c} - Layout utility`,value:c,icon:"layout",category:"Utility Class",score:85,code:`<div class="${c}">...</div>`,description:this.describeUtility(c)})}),e.includes("group")&&t.entities.has("button")&&r.push({text:".btn-group - Group buttons together",value:".btn-group",icon:"code",category:"Utility Class",score:90,code:`<div class="btn-group">
2
2
  <button class="btn-primary">One</button>
3
3
  <button class="btn-primary">Two</button>
4
4
  </div>`,description:"Container for grouped buttons with connected styling"}),r}queryComponents(t,e){let r=[],o=this.pds.ontology;return!o?.components&&!o?.primitives||(o.components&&o.components.forEach(n=>{let i=this.scoreMatch(e,n.name+" "+n.id);i>50&&r.push({text:`<${n.id}> - ${n.name}`,value:n.id,icon:"brackets-curly",category:"Web Component",score:i,code:`<${n.id}></${n.id}>`,description:n.description||`${n.name} web component`})}),o.primitives&&o.primitives.forEach(n=>{let i=this.scoreMatch(e,n.name+" "+n.id);if(i>50){let s=n.selectors?.[0]||n.id;r.push({text:`${s} - ${n.name}`,value:n.id,icon:"tag",category:"Primitive",score:i-5,code:this.generatePrimitiveExample(n),description:n.description||`${n.name} primitive element`})}}),e.includes("icon")&&(e.includes("only")||e.includes("button"))&&r.push({text:'Icon-only button: <button class="btn-icon">',value:"btn-icon",icon:"star",category:"Pattern",score:95,code:`<button class="btn-icon btn-primary">
@@ -16,7 +16,7 @@ var qe=Object.defineProperty;var D=(a,t)=>()=>(a&&(t=a(a=0)),t);var U=(a,t)=>{fo
16
16
  </section>`,description:"Semantic section element for content grouping"}))),r}queryTypography(t,e){let r=[],o=this.pds.compiled;if(!o?.tokens?.typography)return r;let n=o.tokens.typography;return(e.includes("heading")||e.includes("title"))&&r.push({text:"Heading font: var(--font-family-heading)",value:"--font-family-heading",icon:"text-aa",category:"Typography Token",score:85,cssVar:"var(--font-family-heading)",description:"Font family for headings"}),(e.includes("body")||e.includes("text"))&&r.push({text:"Body font: var(--font-family-body)",value:"--font-family-body",icon:"text-aa",category:"Typography Token",score:85,cssVar:"var(--font-family-body)",description:"Font family for body text"}),r}querySpacing(t,e){let r=[],o=this.pds.compiled;if(!o?.tokens?.spacing)return r;let n=o.tokens.spacing;for(let[i,s]of Object.entries(n))["2","4","6","8"].includes(i)&&r.push({text:`Spacing ${i}: var(--spacing-${i})`,value:`--spacing-${i}`,icon:"ruler",category:"Spacing Token",score:75,cssVar:`var(--spacing-${i})`,description:`Spacing value: ${s}`});return r}scoreMatch(t,e){let r=t.toLowerCase(),o=e.toLowerCase(),n=0;if(r===o)return 100;o.includes(r)&&(n+=80);let i=this.tokenize(r),s=this.tokenize(o),c=i.filter(u=>s.includes(u)).length;return n+=c/i.length*40,o.startsWith(r)&&(n+=20),Math.min(100,n)}generatePrimitiveExample(t){let e=t.selectors?.[0]||t.id;return e.includes("button")||t.id==="button"?'<button class="btn-primary">Click me</button>':e.includes("card")||t.id==="card"?`<article class="card">
17
17
  <h3>Title</h3>
18
18
  <p>Content</p>
19
- </article>`:e.includes("badge")||t.id==="badge"?'<span class="badge">New</span>':`<${e}>Content</${e}>`}describeUtility(t){return t.includes("border-gradient")?"Apply animated gradient border effect":t.includes("border-glow")?"Apply glowing border effect":t.includes("flex")?"Flexbox container utility":t.includes("grid")?"Grid container utility":t.includes("gap-")?"Set gap between flex/grid children":t.includes("items-")?"Align items in flex container":t.includes("justify-")?"Justify content in flex container":t===".btn-group"?"Group buttons with connected styling":"Utility class for styling"}}});var Ie={};U(Ie,{deepMerge:()=>Ue,fragmentFromTemplateLike:()=>wt,isObject:()=>Z,parseHTML:()=>kt});function Z(a){return a&&typeof a=="object"&&!Array.isArray(a)}function Ue(a,t){let e={...a};return Z(a)&&Z(t)&&Object.keys(t).forEach(r=>{Z(t[r])?r in a?e[r]=Ue(a[r],t[r]):Object.assign(e,{[r]:t[r]}):Object.assign(e,{[r]:t[r]})}),e}function wt(a){let t=Array.isArray(a?.strings)?a.strings:[],e=Array.isArray(a?.values)?a.values:[],r=new Set,o=[],n=/(\s)(\.[\w-]+)=\s*$/;for(let l=0;l<t.length;l+=1){let p=t[l]??"",m=p.match(n);if(m&&l<e.length){let b=m[2].slice(1),h=`pds-val-${l}`;p=p.replace(n,`$1data-pds-prop="${b}:${h}"`),r.add(l)}o.push(p),l<e.length&&!r.has(l)&&o.push(`<!--pds-val-${l}-->`)}let i=document.createElement("template");i.innerHTML=o.join("");let s=(l,p)=>{let m=l.parentNode;if(!m)return;if(p==null){m.removeChild(l);return}let f=b=>{if(b!=null){if(b instanceof Node){m.insertBefore(b,l);return}if(Array.isArray(b)){b.forEach(h=>f(h));return}m.insertBefore(document.createTextNode(String(b)),l)}};f(p),m.removeChild(l)},c=document.createTreeWalker(i.content,NodeFilter.SHOW_COMMENT),u=[];for(;c.nextNode();){let l=c.currentNode;l?.nodeValue?.startsWith("pds-val-")&&u.push(l)}return u.forEach(l=>{let p=Number(l.nodeValue.replace("pds-val-",""));s(l,e[p])}),i.content.querySelectorAll("*").forEach(l=>{let p=l.getAttribute("data-pds-prop");if(!p)return;let[m,f]=p.split(":"),b=Number(String(f).replace("pds-val-",""));m&&Number.isInteger(b)&&(l[m]=e[b]),l.removeAttribute("data-pds-prop")}),i.content}function kt(a){return new DOMParser().parseFromString(a,"text/html").body.childNodes}var He=D(()=>{});G();var P="any",te={type:"object",allowUnknown:!1,properties:{id:{type:"string"},name:{type:"string"},tags:{type:"array",items:{type:"string"}},description:{type:"string"},options:{type:"object",allowUnknown:!0},form:{type:"object",allowUnknown:!0},colors:{type:"object",allowUnknown:!1,properties:{primary:{type:"string",relations:{tokens:["--color-primary-*","--color-primary-fill","--color-primary-text","--background-mesh-*"]}},secondary:{type:"string",relations:{tokens:["--color-secondary-*","--color-gray-*","--background-mesh-*"]}},accent:{type:"string",relations:{tokens:["--color-accent-*","--background-mesh-*"]}},background:{type:"string",relations:{tokens:["--color-surface-*","--color-surface-translucent-*","--surface-*-bg","--surface-*-text","--surface-*-text-secondary","--surface-*-text-muted","--surface-*-icon","--surface-*-icon-subtle","--surface-*-shadow","--surface-*-border"]}},success:{type:["string","null"],relations:{tokens:["--color-success-*"]}},warning:{type:["string","null"],relations:{tokens:["--color-warning-*"]}},danger:{type:["string","null"],relations:{tokens:["--color-danger-*"]}},info:{type:["string","null"],relations:{tokens:["--color-info-*"]}},gradientStops:{type:"number"},elevationOpacity:{type:"number",relations:{tokens:["--surface-*-shadow"]}},darkMode:{type:"object",allowUnknown:!0,properties:{background:{type:"string",relations:{theme:"dark",tokens:["--color-surface-*","--color-surface-translucent-*","--surface-*-bg","--surface-*-text","--surface-*-text-secondary","--surface-*-text-muted","--surface-*-icon","--surface-*-icon-subtle","--surface-*-shadow","--surface-*-border"]}},primary:{type:"string",relations:{theme:"dark",tokens:["--color-primary-*","--color-primary-fill","--color-primary-text"]}},secondary:{type:"string",relations:{theme:"dark",tokens:["--color-secondary-*","--color-gray-*"]}},accent:{type:"string",relations:{theme:"dark",tokens:["--color-accent-*"]}}}}}},typography:{type:"object",allowUnknown:!1,properties:{fontFamilyHeadings:{type:"string",relations:{tokens:["--font-family-headings"]}},fontFamilyBody:{type:"string",relations:{tokens:["--font-family-body"]}},fontFamilyMono:{type:"string",relations:{tokens:["--font-family-mono"]}},baseFontSize:{type:"number",relations:{tokens:["--font-size-*"]}},fontScale:{type:"number",relations:{tokens:["--font-size-*"]}},fontWeightLight:{type:["string","number"],relations:{tokens:["--font-weight-light"]}},fontWeightNormal:{type:["string","number"],relations:{tokens:["--font-weight-normal"]}},fontWeightMedium:{type:["string","number"],relations:{tokens:["--font-weight-medium"]}},fontWeightSemibold:{type:["string","number"],relations:{tokens:["--font-weight-semibold"]}},fontWeightBold:{type:["string","number"],relations:{tokens:["--font-weight-bold"]}},lineHeightTight:{type:["string","number"],relations:{tokens:["--font-line-height-tight"]}},lineHeightNormal:{type:["string","number"],relations:{tokens:["--font-line-height-normal"]}},lineHeightRelaxed:{type:["string","number"],relations:{tokens:["--font-line-height-relaxed"]}},letterSpacingTight:{type:"number"},letterSpacingNormal:{type:"number"},letterSpacingWide:{type:"number"}}},spatialRhythm:{type:"object",allowUnknown:!1,properties:{baseUnit:{type:"number",relations:{tokens:["--spacing-*"]}},scaleRatio:{type:"number"},maxSpacingSteps:{type:"number",relations:{tokens:["--spacing-*"]}},containerMaxWidth:{type:["number","string"]},containerPadding:{type:"number"},inputPadding:{type:"number",relations:{rules:[{selectors:["input","textarea","select"],properties:["padding"]}]}},buttonPadding:{type:"number",relations:{rules:[{selectors:["button",".btn"],properties:["padding"]}]}},sectionSpacing:{type:"number",relations:{rules:[{selectors:["section"],properties:["margin","padding"]}]}}}},shape:{type:"object",allowUnknown:!1,properties:{radiusSize:{type:["string","number"],relations:{tokens:["--radius-*"]}},customRadius:{type:["string","number","null"]},borderWidth:{type:["string","number"],relations:{tokens:["--border-width-*"]}}}},behavior:{type:"object",allowUnknown:!1,properties:{transitionSpeed:{type:["string","number"],relations:{tokens:["--transition-*"]}},animationEasing:{type:"string"},customTransitionSpeed:{type:["number","null"]},customEasing:{type:["string","null"]},focusRingWidth:{type:"number",relations:{rules:[{selectors:[":focus-visible"],properties:["outline-width","box-shadow"]}]}},focusRingOpacity:{type:"number",relations:{rules:[{selectors:[":focus-visible"],properties:["box-shadow","outline-color"]}]}},hoverOpacity:{type:"number"}}},layout:{type:"object",allowUnknown:!1,properties:{maxWidth:{type:["number","string"],relations:{tokens:["--layout-max-width","--layout-max-width-*"]}},maxWidths:{type:"object",allowUnknown:!1,properties:{sm:{type:["number","string"],relations:{tokens:["--layout-max-width-sm"]}},md:{type:["number","string"],relations:{tokens:["--layout-max-width-md"]}},lg:{type:["number","string"],relations:{tokens:["--layout-max-width-lg"]}},xl:{type:["number","string"],relations:{tokens:["--layout-max-width-xl"]}}}},containerPadding:{type:["number","string"],relations:{tokens:["--layout-container-padding"]}},breakpoints:{type:"object",allowUnknown:!1,properties:{sm:{type:"number"},md:{type:"number"},lg:{type:"number"},xl:{type:"number"}}},gridColumns:{type:"number"},gridGutter:{type:"number"},densityCompact:{type:"number"},densityNormal:{type:"number"},densityComfortable:{type:"number"},buttonMinHeight:{type:"number"},inputMinHeight:{type:"number"},baseShadowOpacity:{type:"number",relations:{tokens:["--shadow-*"]}},darkMode:{type:"object",allowUnknown:!0,properties:{baseShadowOpacity:{type:"number",relations:{theme:"dark",tokens:["--shadow-*"]}}}},utilities:{type:"object",allowUnknown:!0},gridSystem:{type:"object",allowUnknown:!0},containerMaxWidth:{type:["number","string"]}}},layers:{type:"object",allowUnknown:!1,properties:{baseShadowOpacity:{type:"number",relations:{tokens:["--shadow-*"]}},shadowBlurMultiplier:{type:"number",relations:{tokens:["--shadow-*"]}},shadowOffsetMultiplier:{type:"number",relations:{tokens:["--shadow-*"]}},shadowDepth:{type:"string"},blurLight:{type:"number"},blurMedium:{type:"number"},blurHeavy:{type:"number"},baseZIndex:{type:"number",relations:{tokens:["--z-*"]}},zIndexStep:{type:"number",relations:{tokens:["--z-*"]}},zIndexBase:{type:"number"},zIndexDropdown:{type:"number"},zIndexSticky:{type:"number"},zIndexFixed:{type:"number"},zIndexModal:{type:"number"},zIndexPopover:{type:"number"},zIndexTooltip:{type:"number"},zIndexNotification:{type:"number"},darkMode:{type:"object",allowUnknown:!0,properties:{baseShadowOpacity:{type:"number",relations:{theme:"dark",tokens:["--shadow-*"]}}}}}},advanced:{type:"object",allowUnknown:!0},a11y:{type:"object",allowUnknown:!0},icons:{type:"object",allowUnknown:!1,properties:{set:{type:"string"},weight:{type:"string"},defaultSize:{type:"number",relations:{tokens:["--icon-size"]}},sizes:{type:"object",allowUnknown:!0},spritePath:{type:"string"},externalPath:{type:"string"},include:{type:"object",allowUnknown:!0}}},components:{type:"object",allowUnknown:!0},gap:{type:"number"},debug:{type:"boolean"}}},Ge={type:"object",allowUnknown:!0,properties:{mode:{type:"string"},preset:{type:"string"},design:te,enhancers:{type:["object","array"]},applyGlobalStyles:{type:"boolean"},manageTheme:{type:"boolean"},themeStorageKey:{type:"string"},preloadStyles:{type:"boolean"},criticalLayers:{type:"array",items:{type:"string"}},autoDefine:{type:"object",allowUnknown:!1,properties:{predefine:{type:"array",items:{type:"string"}},mapper:{type:P},enhancers:{type:["object","array"]},scanExisting:{type:"boolean"},observeShadows:{type:"boolean"},patchAttachShadow:{type:"boolean"},debounceMs:{type:"number"},onError:{type:P},baseURL:{type:"string"}}},managerURL:{type:"string"},manager:{type:P},liveEdit:{type:"boolean"},log:{type:P}}};function X(a){return a===null?"null":Array.isArray(a)?"array":typeof a}function Ve(a,t){if(t===P)return!0;let e=X(a);return Array.isArray(t)?t.includes(e):e===t}function V(a,t,e,r){if(!t)return;let o=t.type||P;if(!Ve(a,o)){r.push({path:e,expected:o,actual:X(a),message:`Expected ${o} but got ${X(a)}`});return}if(o==="array"&&t.items&&Array.isArray(a)&&a.forEach((n,i)=>{V(n,t.items,`${e}[${i}]`,r)}),o==="object"&&a&&typeof a=="object"){let n=t.properties||{};for(let[i,s]of Object.entries(a)){if(!Object.prototype.hasOwnProperty.call(n,i)){t.allowUnknown||r.push({path:`${e}.${i}`,expected:"known property",actual:"unknown",message:`Unknown property "${i}"`});continue}V(s,n[i],`${e}.${i}`,r)}}}function ee(a,t="",e={}){if(!a||typeof a!="object")return e;if(a.relations&&t&&(e[t]=a.relations),a.type==="object"&&a.properties&&Object.entries(a.properties).forEach(([r,o])=>{let n=t?`${t}.${r}`:r;ee(o,n,e)}),a.type==="array"&&a.items){let r=`${t}[]`;ee(a.items,r,e)}return e}var we=ee(te,"");function re(a,{log:t,context:e="PDS config"}={}){if(!a||typeof a!="object")return[];let r=[];return V(a,te,"design",r),r.length&&typeof t=="function"&&r.forEach(o=>{t("warn",`[${e}] ${o.message} at ${o.path}`)}),r}function ke(a,{log:t,context:e="PDS config"}={}){if(!a||typeof a!="object")return[];let r=[];return V(a,Ge,"config",r),r.length&&typeof t=="function"&&r.forEach(o=>{t("warn",`[${e}] ${o.message} at ${o.path}`)}),r}var O={"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:g.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:g.RadiusSizes.small,borderWidth:g.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:g.RadiusSizes.xlarge,borderWidth:g.BorderWidths.medium},behavior:{transitionSpeed:g.TransitionSpeeds.fast}},"paper-and-ink":{id:"paper-and-ink",name:"Paper & Ink",tags:["app","featured"],themes:["light"],description:"Ultra-minimal design with focus on typography and whitespace",colors:{primary:"#171717",secondary:"#737373",accent:"#525252",background:"#ffffff",darkMode:{background:"#0a0a0a",secondary:"#a3a3a3",primary:"#737373"}},typography:{baseFontSize:18,fontScale:1.333,fontFamilyHeadings:"'Helvetica Neue', 'Arial', sans-serif",fontFamilyBody:"'Georgia', 'Times New Roman', serif",fontWeightNormal:400,fontWeightBold:700},spatialRhythm:{baseUnit:4,scaleRatio:1.2},shape:{radiusSize:g.RadiusSizes.none,borderWidth:g.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:g.RadiusSizes.xxlarge,borderWidth:g.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:g.RadiusSizes.none,borderWidth:g.BorderWidths.thick},behavior:{transitionSpeed:g.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:g.RadiusSizes.medium,borderWidth:g.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:g.RadiusSizes.small,borderWidth:g.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:g.RadiusSizes.medium,borderWidth:g.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:g.RadiusSizes.small,borderWidth:g.BorderWidths.thick},behavior:{transitionSpeed:g.TransitionSpeeds.fast,focusRingWidth:4}},"pastel-play":{id:"pastel-play",name:"Pastel Play",themes:["light"],description:"Playful pastels with soft surfaces and friendly rounded shapes",colors:{primary:"#db2777",secondary:"#a78bfa",accent:"#34d399",background:"#fff7fa",darkMode:{background:"#1a1016",secondary:"#c4b5fd",primary:"#ec4899"}},typography:{baseFontSize:16,fontScale:1.333,fontFamilyHeadings:"'Nunito', system-ui, -apple-system, sans-serif",fontFamilyBody:"'Nunito', system-ui, -apple-system, sans-serif",lineHeightRelaxed:g.LineHeights.relaxed},spatialRhythm:{baseUnit:6,scaleRatio:1.4},shape:{radiusSize:g.RadiusSizes.xxlarge,borderWidth:g.BorderWidths.thin},behavior:{transitionSpeed:g.TransitionSpeeds.slow,animationEasing:g.AnimationEasings["ease-out"]}},"brutalist-tech":{id:"brutalist-tech",name:"Brutalist Tech",description:"Stark grayscale with engineered accents and unapologetically bold structure",colors:{primary:"#111111",secondary:"#4b5563",accent:"#06b6d4",background:"#f8fafc",darkMode:{background:"#0c0c0c",secondary:"#9ca3af",primary:"#06b6d4"}},typography:{baseFontSize:15,fontScale:1.25,fontFamilyHeadings:"'JetBrains Mono', ui-monospace, Menlo, Consolas, monospace",fontFamilyBody:"'Inter', system-ui, -apple-system, sans-serif",letterSpacingTight:-.02},spatialRhythm:{baseUnit:4,scaleRatio:1.25},shape:{radiusSize:g.RadiusSizes.none,borderWidth:g.BorderWidths.thick},behavior:{transitionSpeed:g.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:g.RadiusSizes.large,borderWidth:g.BorderWidths.medium},behavior:{transitionSpeed:g.TransitionSpeeds.normal,animationEasing:g.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:g.LineHeights.tight},spatialRhythm:{baseUnit:4,scaleRatio:1.25,containerPadding:1.25,sectionSpacing:2.5},shape:{radiusSize:g.RadiusSizes.large,borderWidth:g.BorderWidths.thin},layers:{shadowDepth:"medium",blurMedium:12},behavior:{transitionSpeed:g.TransitionSpeeds.fast,animationEasing:g.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:g.LineHeights.relaxed},spatialRhythm:{baseUnit:4,scaleRatio:1.25,containerMaxWidth:1440,containerPadding:1.5,sectionSpacing:3},shape:{radiusSize:g.RadiusSizes.medium,borderWidth:g.BorderWidths.thin},layers:{shadowDepth:"light",blurLight:8},behavior:{transitionSpeed:g.TransitionSpeeds.normal,animationEasing:g.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:g.RadiusSizes.small,borderWidth:g.BorderWidths.medium},behavior:{transitionSpeed:g.TransitionSpeeds.fast,animationEasing:g.AnimationEasings["ease-out"],focusRingWidth:3},a11y:{minTouchTarget:g.TouchTargetSizes.comfortable,focusStyle:g.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:g.RadiusSizes.medium,borderWidth:g.BorderWidths.thin},layers:{shadowDepth:"light",blurLight:6},behavior:{transitionSpeed:g.TransitionSpeeds.fast,animationEasing:g.AnimationEasings["ease-in-out"],focusRingWidth:3,focusRingOpacity:.4},a11y:{minTouchTarget:g.TouchTargetSizes.standard,focusStyle:g.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:g.LineHeights.relaxed},spatialRhythm:{baseUnit:4,scaleRatio:1.25,containerMaxWidth:680,sectionSpacing:1.5},shape:{radiusSize:g.RadiusSizes.medium,borderWidth:g.BorderWidths.thin},behavior:{transitionSpeed:g.TransitionSpeeds.fast,animationEasing:g.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:g.LineHeights.tight},spatialRhythm:{baseUnit:4,scaleRatio:1.2,containerMaxWidth:1600,containerPadding:1.5,sectionSpacing:2},shape:{radiusSize:g.RadiusSizes.small,borderWidth:g.BorderWidths.thin},layers:{shadowDepth:"light",blurLight:4},behavior:{transitionSpeed:g.TransitionSpeeds.fast,animationEasing:g.AnimationEasings["ease-in-out"],focusRingWidth:2},layout:{densityCompact:.85,gridColumns:12}}};O.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:g.FontWeights.light,fontWeightNormal:g.FontWeights.normal,fontWeightMedium:g.FontWeights.medium,fontWeightSemibold:g.FontWeights.semibold,fontWeightBold:g.FontWeights.bold,lineHeightTight:g.LineHeights.tight,lineHeightNormal:g.LineHeights.normal,lineHeightRelaxed:g.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:g.RadiusSizes.large,borderWidth:g.BorderWidths.medium,customRadius:null},behavior:{transitionSpeed:g.TransitionSpeeds.normal,animationEasing:g.AnimationEasings["ease-out"],customTransitionSpeed:null,customEasing:null,focusRingWidth:3,focusRingOpacity:.3,hoverOpacity:.8},layout:{gridColumns:12,gridGutter:1,baseShadowOpacity:.1,darkMode:{baseShadowOpacity:.25},breakpoints:{sm:640,md:768,lg:1024,xl:1280},densityCompact:.8,densityNormal:1,densityComfortable:1.2,buttonMinHeight:g.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:g.LinkStyles.inline,colorDerivation:"hsl"},a11y:{minTouchTarget:g.TouchTargetSizes.standard,prefersReducedMotion:!0,focusStyle:g.FocusStyles.ring},icons:{set:"phosphor",weight:"regular",defaultSize:24,externalPath:"/assets/img/icons/",sizes:g.IconSizes,include:{navigation:["arrow-left","arrow-right","arrow-up","arrow-down","arrow-counter-clockwise","caret-left","caret-right","caret-down","caret-up","x","list","list-dashes","dots-three-vertical","dots-three","house","gear","magnifying-glass","funnel","tabs","sidebar"],actions:["plus","minus","check","trash","pencil","floppy-disk","copy","download","upload","share","link","eye","eye-slash","heart","star","bookmark","note-pencil","cursor-click","clipboard","magic-wand","sparkle"],communication:["envelope","bell","bell-ringing","bell-simple","chat-circle","phone","paper-plane-tilt","user","users","user-gear","at"],content:["image","file","file-text","file-css","file-js","folder","folder-open","book-open","camera","video-camera","play","pause","microphone","brackets-curly","code","folder-simple","grid-four","briefcase","chart-line","chart-bar","database","map-pin"],status:["info","warning","check-circle","x-circle","question","shield","shield-check","shield-warning","lock","lock-open","fingerprint","circle-notch"],time:["calendar","clock","timer","hourglass"],commerce:["shopping-cart","credit-card","currency-dollar","tag","receipt","storefront"],formatting:["text-align-left","text-align-center","text-align-right","text-b","text-italic","text-underline","list-bullets","list-numbers","text-aa"],system:["cloud","cloud-arrow-up","cloud-arrow-down","desktop","device-mobile","globe","wifi-high","battery-charging","sun","moon","moon-stars","palette","rocket","feather","square","circle","squares-four","lightning","wrench"]},spritePath:"public/assets/pds/icons/pds-icons.svg"},gap:4,debug:!1};function oe(a="log",t,...e){if(this?.debug||this?.design?.debug||!1||a==="error"||a==="warn"){let o=console[a]||console.log;e.length>0?o(t,...e):o(t)}}G();ae();var T=class a{static#g;static get instance(){return this.#g}#e;#a;constructor(t={}){this.options={debug:!1,...t},this.options.design||(this.options.design={}),this.options.debug&&this.options.log?.("debug","Generator options:",this.options),a.#g=this,this.tokens=this.generateTokens(),this.options.debug&&this.options.log?.("debug","Generated tokens:",this.tokens),this.#ke(),typeof CSSStyleSheet<"u"?this.#Ee():this.options.debug&&this.options.log?.("debug","[Generator] Skipping browser features (CSSStyleSheet not available)")}generateTokens(){let t=this.options.design||{},e=this.#M(t),r=t.layers||{},o=this.#h(r,e.light),n=this.#$(o),i=e.dark!=null?this.#$(this.#h(r,e.dark)):null;return{colors:this.#E(t.colors||{},e),spacing:this.generateSpacingTokens(t.spatialRhythm||{}),radius:this.#P(t.shape||{}),borderWidths:this.#O(t.shape||{}),typography:this.generateTypographyTokens(t.typography||{}),shadows:n,darkShadows:i,layout:this.#D(t.layout||{}),transitions:this.#U(t.behavior||{}),zIndex:this.#I(t.layers||{}),icons:this.#H(t.icons||{})}}#M(t={}){let e=t.layout||{},r=t.layers||{};return{light:this.#m(e.baseShadowOpacity??r.baseShadowOpacity),dark:this.#m(e.darkMode?.baseShadowOpacity??r.darkMode?.baseShadowOpacity)}}#m(t){let e=Number(t);if(Number.isFinite(e))return Math.min(Math.max(e,0),1)}#h(t={},e){let r={...t};return e!=null&&(r.baseShadowOpacity=e),r}#E(t,e={}){let{primary:r="#3b82f6",secondary:o="#64748b",accent:n="#ec4899",background:i="#ffffff",success:s=null,warning:c="#FFBF00",danger:u=null,info:d=null,darkMode:l={}}=t,p={primary:this.#r(r),secondary:this.#r(o),accent:this.#r(n),success:this.#r(s||this.#F(r)),warning:this.#r(c||n),danger:this.#r(u||this.#C(r)),info:this.#r(d||r),gray:this.#f(o),surface:this.#b(i)};return p.surface.fieldset=this.#T(p.surface),p.surfaceSmart=this.#k(p.surface,e),p.dark=this.#A(p,i,l),p.dark&&p.dark.surface&&(p.dark.surfaceSmart=this.#k(p.dark.surface,e)),p.interactive={light:{fill:this.#w(p.primary,4.5),text:p.primary[600]},dark:{fill:this.#w(p.dark.primary,4.5),text:this.#B(p.dark.primary,p.dark.surface.base,4.5)}},p}#r(t){let e=this.#n(t);return{50:this.#t(e.h,Math.max(e.s-10,10),Math.min(e.l+45,95)),100:this.#t(e.h,Math.max(e.s-5,15),Math.min(e.l+35,90)),200:this.#t(e.h,e.s,Math.min(e.l+25,85)),300:this.#t(e.h,e.s,Math.min(e.l+15,75)),400:this.#t(e.h,e.s,Math.min(e.l+5,65)),500:t,600:this.#t(e.h,e.s,Math.max(e.l-10,25)),700:this.#t(e.h,e.s,Math.max(e.l-20,20)),800:this.#t(e.h,e.s,Math.max(e.l-30,15)),900:this.#t(e.h,e.s,Math.max(e.l-40,10))}}#F(t){let e=this.#n(t);return this.#t(120,Math.max(e.s,60),45)}#C(t){let e=this.#n(t);return this.#t(0,Math.max(e.s,70),50)}#f(t){let e=this.#n(t),r=e.h,o=Math.min(e.s,10);return{50:this.#t(r,o,98),100:this.#t(r,o,95),200:this.#t(r,o,88),300:this.#t(r,o,78),400:this.#t(r,o,60),500:t,600:this.#t(r,Math.min(o+5,15),45),700:this.#t(r,Math.min(o+8,18),35),800:this.#t(r,Math.min(o+10,20),20),900:this.#t(r,Math.min(o+12,22),10)}}#b(t){let e=this.#n(t);return{base:t,subtle:this.#t(e.h,Math.max(e.s,2),Math.max(e.l-2,2)),elevated:this.#t(e.h,Math.max(e.s,3),Math.max(e.l-4,5)),sunken:this.#t(e.h,Math.max(e.s,4),Math.max(e.l-6,8)),overlay:this.#t(e.h,Math.max(e.s,2),Math.min(e.l+2,98)),inverse:this.#y(t),hover:"color-mix(in oklab, var(--color-surface-base) 92%, var(--color-text-primary) 8%);"}}#T(t){return{base:t.subtle,subtle:t.elevated,elevated:t.sunken,sunken:this.#L(t.sunken,.05),overlay:t.elevated}}#L(t,e=.05){let r=this.#n(t),o=Math.max(r.l-r.l*e,5);return this.#t(r.h,r.s,o)}#y(t){let e=this.#n(t);if(e.l>50){let r=Math.min(e.s+5,25),o=Math.max(12-(e.l-50)*.1,8);return this.#t(e.h,r,o)}else{let r=Math.max(e.s-10,5),o=Math.min(85+(50-e.l)*.3,95);return this.#t(e.h,r,o)}}#A(t,e="#ffffff",r={}){let o=r.background?r.background:this.#y(e),n=this.#b(o),i=r.primary?this.#r(r.primary):this.#i(t.primary);return{surface:{...n,fieldset:this.#j(n)},primary:i,secondary:r.secondary?this.#r(r.secondary):this.#i(t.secondary),accent:r.accent?this.#r(r.accent):this.#i(t.accent),gray:r.secondary?this.#f(r.secondary):t.gray,success:this.#i(t.success),info:this.#i(t.info),warning:this.#i(t.warning),danger:this.#i(t.danger)}}#l(t){let e=String(t||"").replace("#",""),r=e.length===3?e.split("").map(n=>n+n).join(""):e,o=parseInt(r,16);return{r:o>>16&255,g:o>>8&255,b:o&255}}#p(t){let{r:e,g:r,b:o}=this.#l(t),n=[e/255,r/255,o/255].map(i=>i<=.03928?i/12.92:Math.pow((i+.055)/1.055,2.4));return .2126*n[0]+.7152*n[1]+.0722*n[2]}#d(t,e){let r=this.#p(t),o=this.#p(e),n=Math.max(r,o),i=Math.min(r,o);return(n+.05)/(i+.05)}#v(t,e=4.5){if(!t)return"#000000";let r="#ffffff",o="#000000",n=this.#d(t,r);if(n>=e)return r;let i=this.#d(t,o);return i>=e||i>n?o:r}#x(t,e=1){let{r,g:o,b:n}=this.#l(t);return`rgba(${r}, ${o}, ${n}, ${e})`}#R(t,e,r=.5){let o=this.#l(t),n=this.#l(e),i=Math.round(o.r+(n.r-o.r)*r),s=Math.round(o.g+(n.g-o.g)*r),c=Math.round(o.b+(n.b-o.b)*r);return this.#W(i,s,c)}#W(t,e,r){let o=n=>{let i=Math.max(0,Math.min(255,Math.round(n))).toString(16);return i.length===1?"0"+i:i};return`#${o(t)}${o(e)}${o(r)}`}#j(t){return{base:t.elevated,subtle:t.overlay,elevated:this.#S(t.elevated,.08),sunken:t.elevated,overlay:this.#S(t.overlay,.05)}}#B(t={},e="#000000",r=4.5){let o=["600","700","800","500","400","900","300","200"],n={shade:null,color:null,ratio:0};for(let i of o){let s=t?.[i];if(!s||typeof s!="string")continue;let c=this.#d(s,e);if(c>n.ratio&&(n={shade:i,color:s,ratio:c}),c>=r)return s}return n.color||t?.["600"]||t?.["500"]}#w(t={},e=4.5){let r=["600","700","800","500","400","900"],o={shade:null,color:null,ratio:0};for(let n of r){let i=t?.[n];if(!i||typeof i!="string")continue;let s=this.#d(i,"#ffffff");if(s>o.ratio&&(o={shade:n,color:i,ratio:s}),s>=e)return i}return o.color||t?.["600"]||t?.["500"]}#k(t,e={}){let r={},o=e.light??.1,n=e.dark??.25;return Object.entries(t).forEach(([i,s])=>{if(!s||typeof s!="string"||!s.startsWith("#"))return;let c=this.#p(s)<.5,u=this.#v(s,4.5),d=this.#v(s,3),l=this.#R(u,s,.4),p=u,m=l,f=c?"#ffffff":"#000000",b=c?n:o,h=this.#x(f,b),y=c?"#ffffff":"#000000",S=c?.15:.1,$=this.#x(y,S);r[i]={bg:s,text:u,textSecondary:d,textMuted:l,icon:p,iconSubtle:m,shadow:h,border:$,scheme:c?"dark":"light"}}),r}#S(t,e=.05){let r=this.#n(t),o=Math.min(r.l+(100-r.l)*e,95);return this.#t(r.h,r.s,o)}#i(t){let e={};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(([o,n])=>{let i=t[n.source];e[o]=this.#N(i,n.dimFactor)}),e}#N(t,e=.8){let r=this.#n(t),o=Math.max(r.s*e,5),n=Math.max(r.l*e,5);return this.#t(r.h,o,n)}generateSpacingTokens(t){let{baseUnit:e=4,scaleRatio:r=1.25,maxSpacingSteps:o=12}=t,n=Number.isFinite(Number(e))?Number(e):4,i=Math.min(Number.isFinite(Number(o))?Number(o):12,12),s={0:"0"};for(let c=1;c<=i;c++)s[c]=`${n*c}px`;return s}#P(t){let{radiusSize:e="medium",customRadius:r=null}=t,o;r!=null?o=r:typeof e=="number"?o=e:typeof e=="string"?o=g.RadiusSizes[e]??g.RadiusSizes.medium:o=g.RadiusSizes.medium;let n=Number.isFinite(Number(o))?Number(o):g.RadiusSizes.medium;return{none:"0",xs:`${Number.isFinite(n*.25)?Math.round(n*.25):0}px`,sm:`${Number.isFinite(n*.5)?Math.round(n*.5):0}px`,md:`${n}px`,lg:`${Number.isFinite(n*1.5)?Math.round(n*1.5):0}px`,xl:`${Number.isFinite(n*2)?Math.round(n*2):0}px`,full:"9999px"}}#O(t){let{borderWidth:e="medium"}=t,r;typeof e=="number"?r=e:typeof e=="string"?r=g.BorderWidths[e]??g.BorderWidths.medium:r=g.BorderWidths.medium;let o=Number.isFinite(Number(r))?Number(r):g.BorderWidths.medium,n=i=>`${Math.max(0,Math.round(i*100)/100)}px`;return{hairline:n(o*.25),thin:n(o*.5),medium:n(o),thick:n(o*1.5)}}generateTypographyTokens(t){let{fontFamilyHeadings:e="system-ui, -apple-system, sans-serif",fontFamilyBody:r="system-ui, -apple-system, sans-serif",fontFamilyMono:o='ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, monospace',baseFontSize:n=16,fontScale:i=1.25,fontWeightLight:s=g.FontWeights.light,fontWeightNormal:c=g.FontWeights.normal,fontWeightMedium:u=g.FontWeights.medium,fontWeightSemibold:d=g.FontWeights.semibold,fontWeightBold:l=g.FontWeights.bold,lineHeightTight:p=g.LineHeights.tight,lineHeightNormal:m=g.LineHeights.normal,lineHeightRelaxed:f=g.LineHeights.relaxed}=t,b=Number.isFinite(Number(n))?Number(n):16,h=Number.isFinite(Number(i))?Number(i):1.25;return{fontFamily:{headings:e,body:r,mono:o},fontSize:{xs:`${Math.round(b/Math.pow(h,2))}px`,sm:`${Math.round(b/h)}px`,base:`${b}px`,lg:`${Math.round(b*h)}px`,xl:`${Math.round(b*Math.pow(h,2))}px`,"2xl":`${Math.round(b*Math.pow(h,3))}px`,"3xl":`${Math.round(b*Math.pow(h,4))}px`,"4xl":`${Math.round(b*Math.pow(h,5))}px`},fontWeight:{light:s?.toString()||"300",normal:c?.toString()||"400",medium:u?.toString()||"500",semibold:d?.toString()||"600",bold:l?.toString()||"700"},lineHeight:{tight:p?.toString()||"1.25",normal:m?.toString()||"1.5",relaxed:f?.toString()||"1.75"}}}#$(t){let{baseShadowOpacity:e=.1,shadowBlurMultiplier:r=1,shadowOffsetMultiplier:o=1}=t,n=`rgba(0, 0, 0, ${e})`,i=`rgba(0, 0, 0, ${e*.5})`;return{sm:`0 ${1*o}px ${2*r}px 0 ${i}`,base:`0 ${1*o}px ${3*r}px 0 ${n}, 0 ${1*o}px ${2*r}px 0 ${i}`,md:`0 ${4*o}px ${6*r}px ${-1*o}px ${n}, 0 ${2*o}px ${4*r}px ${-1*o}px ${i}`,lg:`0 ${10*o}px ${15*r}px ${-3*o}px ${n}, 0 ${4*o}px ${6*r}px ${-2*o}px ${i}`,xl:`0 ${20*o}px ${25*r}px ${-5*o}px ${n}, 0 ${10*o}px ${10*r}px ${-5*o}px ${i}`,inner:`inset 0 ${2*o}px ${4*r}px 0 ${i}`}}#D(t){let{maxWidth:e=1200,containerPadding:r=16,breakpoints:o={sm:640,md:768,lg:1024,xl:1280}}=t,n=this.#z(t);return{maxWidth:this.#o(e,"1200px"),maxWidthSm:n.sm,maxWidthMd:n.md,maxWidthLg:n.lg,maxWidthXl:n.xl,minHeight:"100vh",containerPadding:this.#o(r,"16px"),breakpoints:{sm:this.#o(o.sm,"640px"),md:this.#o(o.md,"768px"),lg:this.#o(o.lg,"1024px"),xl:this.#o(o.xl,"1280px")},pageMargin:"120px",sectionGap:"160px",containerGap:"200px",heroSpacing:"240px",footerSpacing:"160px"}}#z(t={}){let e={sm:640,md:768,lg:1024,xl:1280},{maxWidths:r={},maxWidth:o=1200,containerPadding:n=16,breakpoints:i=e}=t||{},s=this.#s(n,16),c=this.#s(o,e.xl),u={sm:this.#s(i.sm,e.sm),md:this.#s(i.md,e.md),lg:this.#s(i.lg,e.lg),xl:this.#s(i.xl,e.xl)},d=p=>p?Math.max(320,p-s*2):c,l={sm:Math.min(c,d(u.sm)),md:Math.min(c,d(u.md)),lg:Math.min(c,d(u.lg)),xl:Math.max(320,c)};return{sm:this.#o(r.sm,`${l.sm}px`),md:this.#o(r.md,`${l.md}px`),lg:this.#o(r.lg,`${l.lg}px`),xl:this.#o(r.xl,`${l.xl}px`)}}#o(t,e){return typeof t=="number"&&Number.isFinite(t)?`${t}px`:typeof t=="string"&&t.trim().length>0?t:e}#s(t,e){if(typeof t=="number"&&Number.isFinite(t))return t;if(typeof t=="string"){let r=parseFloat(t);if(Number.isFinite(r))return r}return e}#U(t){let{transitionSpeed:e=g.TransitionSpeeds.normal,animationEasing:r=g.AnimationEasings["ease-out"]}=t,o;return typeof e=="number"?o=e:typeof e=="string"&&g.TransitionSpeeds[e]?o=g.TransitionSpeeds[e]:o=g.TransitionSpeeds.normal,{fast:`${Math.round(o*.6)}ms`,normal:`${o}ms`,slow:`${Math.round(o*1.4)}ms`}}#I(t){let{baseZIndex:e=1e3,zIndexStep:r=10}=t;return{dropdown:e.toString(),sticky:(e+r*2).toString(),fixed:(e+r*3).toString(),modal:(e+r*4).toString(),drawer:(e+r*5).toString(),popover:(e+r*6).toString(),tooltip:(e+r*7).toString(),notification:(e+r*8).toString()}}#H(t){let{set:e="phosphor",weight:r="regular",defaultSize:o=24,sizes:n={xs:16,sm:20,md:24,lg:32,xl:48,"2xl":64},spritePath:i="/assets/pds/icons/pds-icons.svg",externalPath:s="/assets/img/icons/"}=t;return{set:e,weight:r,defaultSize:`${o}px`,sizes:Object.fromEntries(Object.entries(n).map(([c,u])=>[c,`${u}px`])),spritePath:i,externalPath:s}}#_(t){let e=[];e.push(` /* Colors */
19
+ </article>`:e.includes("badge")||t.id==="badge"?'<span class="badge">New</span>':`<${e}>Content</${e}>`}describeUtility(t){return t.includes("border-gradient")?"Apply animated gradient border effect":t.includes("border-glow")?"Apply glowing border effect":t.includes("flex")?"Flexbox container utility":t.includes("grid")?"Grid container utility":t.includes("gap-")?"Set gap between flex/grid children":t.includes("items-")?"Align items in flex container":t.includes("justify-")?"Justify content in flex container":t===".btn-group"?"Group buttons with connected styling":"Utility class for styling"}}});var He={};U(He,{deepMerge:()=>Ie,fragmentFromTemplateLike:()=>wt,isObject:()=>Z,parseHTML:()=>kt});function Z(a){return a&&typeof a=="object"&&!Array.isArray(a)}function Ie(a,t){let e={...a};return Z(a)&&Z(t)&&Object.keys(t).forEach(r=>{Z(t[r])?r in a?e[r]=Ie(a[r],t[r]):Object.assign(e,{[r]:t[r]}):Object.assign(e,{[r]:t[r]})}),e}function wt(a){let t=Array.isArray(a?.strings)?a.strings:[],e=Array.isArray(a?.values)?a.values:[],r=new Set,o=[],n=/(\s)(\.[\w-]+)=\s*$/;for(let l=0;l<t.length;l+=1){let p=t[l]??"",m=p.match(n);if(m&&l<e.length){let b=m[2].slice(1),h=`pds-val-${l}`;p=p.replace(n,`$1data-pds-prop="${b}:${h}"`),r.add(l)}o.push(p),l<e.length&&!r.has(l)&&o.push(`<!--pds-val-${l}-->`)}let i=document.createElement("template");i.innerHTML=o.join("");let s=(l,p)=>{let m=l.parentNode;if(!m)return;if(p==null){m.removeChild(l);return}let f=b=>{if(b!=null){if(b instanceof Node){m.insertBefore(b,l);return}if(Array.isArray(b)){b.forEach(h=>f(h));return}m.insertBefore(document.createTextNode(String(b)),l)}};f(p),m.removeChild(l)},c=document.createTreeWalker(i.content,NodeFilter.SHOW_COMMENT),u=[];for(;c.nextNode();){let l=c.currentNode;l?.nodeValue?.startsWith("pds-val-")&&u.push(l)}return u.forEach(l=>{let p=Number(l.nodeValue.replace("pds-val-",""));s(l,e[p])}),i.content.querySelectorAll("*").forEach(l=>{let p=l.getAttribute("data-pds-prop");if(!p)return;let[m,f]=p.split(":"),b=Number(String(f).replace("pds-val-",""));m&&Number.isInteger(b)&&(l[m]=e[b]),l.removeAttribute("data-pds-prop")}),i.content}function kt(a){return new DOMParser().parseFromString(a,"text/html").body.childNodes}var _e=D(()=>{});G();var P="any",te={type:"object",allowUnknown:!1,properties:{id:{type:"string"},name:{type:"string"},tags:{type:"array",items:{type:"string"}},description:{type:"string"},options:{type:"object",allowUnknown:!0},form:{type:"object",allowUnknown:!0},colors:{type:"object",allowUnknown:!1,properties:{primary:{type:"string",relations:{tokens:["--color-primary-*","--color-primary-fill","--color-primary-text","--background-mesh-*"]}},secondary:{type:"string",relations:{tokens:["--color-secondary-*","--color-gray-*","--background-mesh-*"]}},accent:{type:"string",relations:{tokens:["--color-accent-*","--background-mesh-*"]}},background:{type:"string",relations:{tokens:["--color-surface-*","--color-surface-translucent-*","--surface-*-bg","--surface-*-text","--surface-*-text-secondary","--surface-*-text-muted","--surface-*-icon","--surface-*-icon-subtle","--surface-*-shadow","--surface-*-border"]}},success:{type:["string","null"],relations:{tokens:["--color-success-*"]}},warning:{type:["string","null"],relations:{tokens:["--color-warning-*"]}},danger:{type:["string","null"],relations:{tokens:["--color-danger-*"]}},info:{type:["string","null"],relations:{tokens:["--color-info-*"]}},gradientStops:{type:"number"},elevationOpacity:{type:"number",relations:{tokens:["--surface-*-shadow"]}},darkMode:{type:"object",allowUnknown:!0,properties:{background:{type:"string",relations:{theme:"dark",tokens:["--color-surface-*","--color-surface-translucent-*","--surface-*-bg","--surface-*-text","--surface-*-text-secondary","--surface-*-text-muted","--surface-*-icon","--surface-*-icon-subtle","--surface-*-shadow","--surface-*-border"]}},primary:{type:"string",relations:{theme:"dark",tokens:["--color-primary-*","--color-primary-fill","--color-primary-text"]}},secondary:{type:"string",relations:{theme:"dark",tokens:["--color-secondary-*","--color-gray-*"]}},accent:{type:"string",relations:{theme:"dark",tokens:["--color-accent-*"]}}}}}},typography:{type:"object",allowUnknown:!1,properties:{fontFamilyHeadings:{type:"string",relations:{tokens:["--font-family-headings"]}},fontFamilyBody:{type:"string",relations:{tokens:["--font-family-body"]}},fontFamilyMono:{type:"string",relations:{tokens:["--font-family-mono"]}},baseFontSize:{type:"number",relations:{tokens:["--font-size-*"]}},fontScale:{type:"number",relations:{tokens:["--font-size-*"]}},fontWeightLight:{type:["string","number"],relations:{tokens:["--font-weight-light"]}},fontWeightNormal:{type:["string","number"],relations:{tokens:["--font-weight-normal"]}},fontWeightMedium:{type:["string","number"],relations:{tokens:["--font-weight-medium"]}},fontWeightSemibold:{type:["string","number"],relations:{tokens:["--font-weight-semibold"]}},fontWeightBold:{type:["string","number"],relations:{tokens:["--font-weight-bold"]}},lineHeightTight:{type:["string","number"],relations:{tokens:["--font-line-height-tight"]}},lineHeightNormal:{type:["string","number"],relations:{tokens:["--font-line-height-normal"]}},lineHeightRelaxed:{type:["string","number"],relations:{tokens:["--font-line-height-relaxed"]}},letterSpacingTight:{type:"number"},letterSpacingNormal:{type:"number"},letterSpacingWide:{type:"number"}}},spatialRhythm:{type:"object",allowUnknown:!1,properties:{baseUnit:{type:"number",relations:{tokens:["--spacing-*"]}},scaleRatio:{type:"number"},maxSpacingSteps:{type:"number",relations:{tokens:["--spacing-*"]}},containerMaxWidth:{type:["number","string"]},containerPadding:{type:"number"},inputPadding:{type:"number",relations:{rules:[{selectors:["input","textarea","select"],properties:["padding"]}]}},buttonPadding:{type:"number",relations:{rules:[{selectors:["button",".btn"],properties:["padding"]}]}},sectionSpacing:{type:"number",relations:{rules:[{selectors:["section"],properties:["margin","padding"]}]}}}},shape:{type:"object",allowUnknown:!1,properties:{radiusSize:{type:["string","number"],relations:{tokens:["--radius-*"]}},customRadius:{type:["string","number","null"]},borderWidth:{type:["string","number"],relations:{tokens:["--border-width-*"]}}}},behavior:{type:"object",allowUnknown:!1,properties:{transitionSpeed:{type:["string","number"],relations:{tokens:["--transition-*"]}},animationEasing:{type:"string"},customTransitionSpeed:{type:["number","null"]},customEasing:{type:["string","null"]},focusRingWidth:{type:"number",relations:{rules:[{selectors:[":focus-visible"],properties:["outline-width","box-shadow"]}]}},focusRingOpacity:{type:"number",relations:{rules:[{selectors:[":focus-visible"],properties:["box-shadow","outline-color"]}]}},hoverOpacity:{type:"number"}}},layout:{type:"object",allowUnknown:!1,properties:{maxWidth:{type:["number","string"],relations:{tokens:["--layout-max-width","--layout-max-width-*"]}},maxWidths:{type:"object",allowUnknown:!1,properties:{sm:{type:["number","string"],relations:{tokens:["--layout-max-width-sm"]}},md:{type:["number","string"],relations:{tokens:["--layout-max-width-md"]}},lg:{type:["number","string"],relations:{tokens:["--layout-max-width-lg"]}},xl:{type:["number","string"],relations:{tokens:["--layout-max-width-xl"]}}}},containerPadding:{type:["number","string"],relations:{tokens:["--layout-container-padding"]}},breakpoints:{type:"object",allowUnknown:!1,properties:{sm:{type:"number"},md:{type:"number"},lg:{type:"number"},xl:{type:"number"}}},gridColumns:{type:"number"},gridGutter:{type:"number"},densityCompact:{type:"number"},densityNormal:{type:"number"},densityComfortable:{type:"number"},buttonMinHeight:{type:"number"},inputMinHeight:{type:"number"},baseShadowOpacity:{type:"number",relations:{tokens:["--shadow-*"]}},darkMode:{type:"object",allowUnknown:!0,properties:{baseShadowOpacity:{type:"number",relations:{theme:"dark",tokens:["--shadow-*"]}}}},utilities:{type:"object",allowUnknown:!0},gridSystem:{type:"object",allowUnknown:!0},containerMaxWidth:{type:["number","string"]}}},layers:{type:"object",allowUnknown:!1,properties:{baseShadowOpacity:{type:"number",relations:{tokens:["--shadow-*"]}},shadowBlurMultiplier:{type:"number",relations:{tokens:["--shadow-*"]}},shadowOffsetMultiplier:{type:"number",relations:{tokens:["--shadow-*"]}},shadowDepth:{type:"string"},blurLight:{type:"number"},blurMedium:{type:"number"},blurHeavy:{type:"number"},baseZIndex:{type:"number",relations:{tokens:["--z-*"]}},zIndexStep:{type:"number",relations:{tokens:["--z-*"]}},zIndexBase:{type:"number"},zIndexDropdown:{type:"number"},zIndexSticky:{type:"number"},zIndexFixed:{type:"number"},zIndexModal:{type:"number"},zIndexPopover:{type:"number"},zIndexTooltip:{type:"number"},zIndexNotification:{type:"number"},darkMode:{type:"object",allowUnknown:!0,properties:{baseShadowOpacity:{type:"number",relations:{theme:"dark",tokens:["--shadow-*"]}}}}}},advanced:{type:"object",allowUnknown:!0},a11y:{type:"object",allowUnknown:!0},icons:{type:"object",allowUnknown:!1,properties:{set:{type:"string"},weight:{type:"string"},defaultSize:{type:"number",relations:{tokens:["--icon-size"]}},sizes:{type:"object",allowUnknown:!0},spritePath:{type:"string"},externalPath:{type:"string"},include:{type:"object",allowUnknown:!0}}},components:{type:"object",allowUnknown:!0},gap:{type:"number"},debug:{type:"boolean"}}},Ve={type:"object",allowUnknown:!0,properties:{mode:{type:"string"},preset:{type:"string"},design:te,enhancers:{type:["object","array"]},applyGlobalStyles:{type:"boolean"},manageTheme:{type:"boolean"},themeStorageKey:{type:"string"},preloadStyles:{type:"boolean"},criticalLayers:{type:"array",items:{type:"string"}},autoDefine:{type:"object",allowUnknown:!1,properties:{predefine:{type:"array",items:{type:"string"}},mapper:{type:P},enhancers:{type:["object","array"]},scanExisting:{type:"boolean"},observeShadows:{type:"boolean"},patchAttachShadow:{type:"boolean"},debounceMs:{type:"number"},onError:{type:P},baseURL:{type:"string"}}},managerURL:{type:"string"},manager:{type:P},liveEdit:{type:"boolean"},log:{type:P}}};function X(a){return a===null?"null":Array.isArray(a)?"array":typeof a}function Je(a,t){if(t===P)return!0;let e=X(a);return Array.isArray(t)?t.includes(e):e===t}function V(a,t,e,r){if(!t)return;let o=t.type||P;if(!Je(a,o)){r.push({path:e,expected:o,actual:X(a),message:`Expected ${o} but got ${X(a)}`});return}if(o==="array"&&t.items&&Array.isArray(a)&&a.forEach((n,i)=>{V(n,t.items,`${e}[${i}]`,r)}),o==="object"&&a&&typeof a=="object"){let n=t.properties||{};for(let[i,s]of Object.entries(a)){if(!Object.prototype.hasOwnProperty.call(n,i)){t.allowUnknown||r.push({path:`${e}.${i}`,expected:"known property",actual:"unknown",message:`Unknown property "${i}"`});continue}V(s,n[i],`${e}.${i}`,r)}}}function ee(a,t="",e={}){if(!a||typeof a!="object")return e;if(a.relations&&t&&(e[t]=a.relations),a.type==="object"&&a.properties&&Object.entries(a.properties).forEach(([r,o])=>{let n=t?`${t}.${r}`:r;ee(o,n,e)}),a.type==="array"&&a.items){let r=`${t}[]`;ee(a.items,r,e)}return e}var we=ee(te,"");function re(a,{log:t,context:e="PDS config"}={}){if(!a||typeof a!="object")return[];let r=[];return V(a,te,"design",r),r.length&&typeof t=="function"&&r.forEach(o=>{t("warn",`[${e}] ${o.message} at ${o.path}`)}),r}function ke(a,{log:t,context:e="PDS config"}={}){if(!a||typeof a!="object")return[];let r=[];return V(a,Ve,"config",r),r.length&&typeof t=="function"&&r.forEach(o=>{t("warn",`[${e}] ${o.message} at ${o.path}`)}),r}var O={"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:g.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:g.RadiusSizes.small,borderWidth:g.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:g.RadiusSizes.xlarge,borderWidth:g.BorderWidths.medium},behavior:{transitionSpeed:g.TransitionSpeeds.fast}},"paper-and-ink":{id:"paper-and-ink",name:"Paper & Ink",tags:["app","featured"],themes:["light"],description:"Ultra-minimal design with focus on typography and whitespace",colors:{primary:"#171717",secondary:"#737373",accent:"#525252",background:"#ffffff",darkMode:{background:"#0a0a0a",secondary:"#a3a3a3",primary:"#737373"}},typography:{baseFontSize:18,fontScale:1.333,fontFamilyHeadings:"'Helvetica Neue', 'Arial', sans-serif",fontFamilyBody:"'Georgia', 'Times New Roman', serif",fontWeightNormal:400,fontWeightBold:700},spatialRhythm:{baseUnit:4,scaleRatio:1.2},shape:{radiusSize:g.RadiusSizes.none,borderWidth:g.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:g.RadiusSizes.xxlarge,borderWidth:g.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:g.RadiusSizes.none,borderWidth:g.BorderWidths.thick},behavior:{transitionSpeed:g.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:g.RadiusSizes.medium,borderWidth:g.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:g.RadiusSizes.small,borderWidth:g.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:g.RadiusSizes.medium,borderWidth:g.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:g.RadiusSizes.small,borderWidth:g.BorderWidths.thick},behavior:{transitionSpeed:g.TransitionSpeeds.fast,focusRingWidth:4}},"pastel-play":{id:"pastel-play",name:"Pastel Play",themes:["light"],description:"Playful pastels with soft surfaces and friendly rounded shapes",colors:{primary:"#db2777",secondary:"#a78bfa",accent:"#34d399",background:"#fff7fa",darkMode:{background:"#1a1016",secondary:"#c4b5fd",primary:"#ec4899"}},typography:{baseFontSize:16,fontScale:1.333,fontFamilyHeadings:"'Nunito', system-ui, -apple-system, sans-serif",fontFamilyBody:"'Nunito', system-ui, -apple-system, sans-serif",lineHeightRelaxed:g.LineHeights.relaxed},spatialRhythm:{baseUnit:6,scaleRatio:1.4},shape:{radiusSize:g.RadiusSizes.xxlarge,borderWidth:g.BorderWidths.thin},behavior:{transitionSpeed:g.TransitionSpeeds.slow,animationEasing:g.AnimationEasings["ease-out"]}},"brutalist-tech":{id:"brutalist-tech",name:"Brutalist Tech",description:"Stark grayscale with engineered accents and unapologetically bold structure",colors:{primary:"#111111",secondary:"#4b5563",accent:"#06b6d4",background:"#f8fafc",darkMode:{background:"#0c0c0c",secondary:"#9ca3af",primary:"#06b6d4"}},typography:{baseFontSize:15,fontScale:1.25,fontFamilyHeadings:"'JetBrains Mono', ui-monospace, Menlo, Consolas, monospace",fontFamilyBody:"'Inter', system-ui, -apple-system, sans-serif",letterSpacingTight:-.02},spatialRhythm:{baseUnit:4,scaleRatio:1.25},shape:{radiusSize:g.RadiusSizes.none,borderWidth:g.BorderWidths.thick},behavior:{transitionSpeed:g.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:g.RadiusSizes.large,borderWidth:g.BorderWidths.medium},behavior:{transitionSpeed:g.TransitionSpeeds.normal,animationEasing:g.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:g.LineHeights.tight},spatialRhythm:{baseUnit:4,scaleRatio:1.25,containerPadding:1.25,sectionSpacing:2.5},shape:{radiusSize:g.RadiusSizes.large,borderWidth:g.BorderWidths.thin},layers:{shadowDepth:"medium",blurMedium:12},behavior:{transitionSpeed:g.TransitionSpeeds.fast,animationEasing:g.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:g.LineHeights.relaxed},spatialRhythm:{baseUnit:4,scaleRatio:1.25,containerMaxWidth:1440,containerPadding:1.5,sectionSpacing:3},shape:{radiusSize:g.RadiusSizes.medium,borderWidth:g.BorderWidths.thin},layers:{shadowDepth:"light",blurLight:8},behavior:{transitionSpeed:g.TransitionSpeeds.normal,animationEasing:g.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:g.RadiusSizes.small,borderWidth:g.BorderWidths.medium},behavior:{transitionSpeed:g.TransitionSpeeds.fast,animationEasing:g.AnimationEasings["ease-out"],focusRingWidth:3},a11y:{minTouchTarget:g.TouchTargetSizes.comfortable,focusStyle:g.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:g.RadiusSizes.medium,borderWidth:g.BorderWidths.thin},layers:{shadowDepth:"light",blurLight:6},behavior:{transitionSpeed:g.TransitionSpeeds.fast,animationEasing:g.AnimationEasings["ease-in-out"],focusRingWidth:3,focusRingOpacity:.4},a11y:{minTouchTarget:g.TouchTargetSizes.standard,focusStyle:g.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:g.LineHeights.relaxed},spatialRhythm:{baseUnit:4,scaleRatio:1.25,containerMaxWidth:680,sectionSpacing:1.5},shape:{radiusSize:g.RadiusSizes.medium,borderWidth:g.BorderWidths.thin},behavior:{transitionSpeed:g.TransitionSpeeds.fast,animationEasing:g.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:g.LineHeights.tight},spatialRhythm:{baseUnit:4,scaleRatio:1.2,containerMaxWidth:1600,containerPadding:1.5,sectionSpacing:2},shape:{radiusSize:g.RadiusSizes.small,borderWidth:g.BorderWidths.thin},layers:{shadowDepth:"light",blurLight:4},behavior:{transitionSpeed:g.TransitionSpeeds.fast,animationEasing:g.AnimationEasings["ease-in-out"],focusRingWidth:2},layout:{densityCompact:.85,gridColumns:12}}};O.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:g.FontWeights.light,fontWeightNormal:g.FontWeights.normal,fontWeightMedium:g.FontWeights.medium,fontWeightSemibold:g.FontWeights.semibold,fontWeightBold:g.FontWeights.bold,lineHeightTight:g.LineHeights.tight,lineHeightNormal:g.LineHeights.normal,lineHeightRelaxed:g.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:g.RadiusSizes.large,borderWidth:g.BorderWidths.medium,customRadius:null},behavior:{transitionSpeed:g.TransitionSpeeds.normal,animationEasing:g.AnimationEasings["ease-out"],customTransitionSpeed:null,customEasing:null,focusRingWidth:3,focusRingOpacity:.3,hoverOpacity:.8},layout:{gridColumns:12,gridGutter:1,baseShadowOpacity:.1,darkMode:{baseShadowOpacity:.25},breakpoints:{sm:640,md:768,lg:1024,xl:1280},densityCompact:.8,densityNormal:1,densityComfortable:1.2,buttonMinHeight:g.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:g.LinkStyles.inline,colorDerivation:"hsl"},a11y:{minTouchTarget:g.TouchTargetSizes.standard,prefersReducedMotion:!0,focusStyle:g.FocusStyles.ring},icons:{set:"phosphor",weight:"regular",defaultSize:24,externalPath:"/assets/img/icons/",sizes:g.IconSizes,include:{navigation:["arrow-left","arrow-right","arrow-up","arrow-down","arrow-counter-clockwise","caret-left","caret-right","caret-down","caret-up","x","list","list-dashes","dots-three-vertical","dots-three","house","gear","magnifying-glass","funnel","tabs","sidebar"],actions:["plus","minus","check","trash","pencil","floppy-disk","copy","download","upload","share","link","eye","eye-slash","heart","star","bookmark","note-pencil","cursor-click","clipboard","magic-wand","sparkle"],communication:["envelope","bell","bell-ringing","bell-simple","chat-circle","phone","paper-plane-tilt","user","users","user-gear","at"],content:["image","file","file-text","file-css","file-js","folder","folder-open","book-open","camera","video-camera","play","pause","microphone","brackets-curly","code","folder-simple","grid-four","briefcase","chart-line","chart-bar","database","map-pin"],status:["info","warning","check-circle","x-circle","question","shield","shield-check","shield-warning","lock","lock-open","fingerprint","circle-notch"],time:["calendar","clock","timer","hourglass"],commerce:["shopping-cart","credit-card","currency-dollar","tag","receipt","storefront"],formatting:["text-align-left","text-align-center","text-align-right","text-b","text-italic","text-underline","list-bullets","list-numbers","text-aa"],system:["cloud","cloud-arrow-up","cloud-arrow-down","desktop","device-mobile","globe","wifi-high","battery-charging","sun","moon","moon-stars","palette","rocket","feather","square","circle","squares-four","lightning","wrench"]},spritePath:"public/assets/pds/icons/pds-icons.svg"},gap:4,debug:!1};function oe(a="log",t,...e){if(this?.debug||this?.design?.debug||!1||a==="error"||a==="warn"){let o=console[a]||console.log;e.length>0?o(t,...e):o(t)}}G();ae();var T=class a{static#g;static get instance(){return this.#g}#e;#a;constructor(t={}){this.options={debug:!1,...t},this.options.design||(this.options.design={}),this.options.debug&&this.options.log?.("debug","Generator options:",this.options),a.#g=this,this.tokens=this.generateTokens(),this.options.debug&&this.options.log?.("debug","Generated tokens:",this.tokens),this.#ke(),typeof CSSStyleSheet<"u"?this.#Ee():this.options.debug&&this.options.log?.("debug","[Generator] Skipping browser features (CSSStyleSheet not available)")}generateTokens(){let t=this.options.design||{},e=this.#M(t),r=t.layers||{},o=this.#h(r,e.light),n=this.#$(o),i=e.dark!=null?this.#$(this.#h(r,e.dark)):null;return{colors:this.#E(t.colors||{},e),spacing:this.generateSpacingTokens(t.spatialRhythm||{}),radius:this.#P(t.shape||{}),borderWidths:this.#O(t.shape||{}),typography:this.generateTypographyTokens(t.typography||{}),shadows:n,darkShadows:i,layout:this.#D(t.layout||{}),transitions:this.#U(t.behavior||{}),zIndex:this.#I(t.layers||{}),icons:this.#H(t.icons||{})}}#M(t={}){let e=t.layout||{},r=t.layers||{};return{light:this.#m(e.baseShadowOpacity??r.baseShadowOpacity),dark:this.#m(e.darkMode?.baseShadowOpacity??r.darkMode?.baseShadowOpacity)}}#m(t){let e=Number(t);if(Number.isFinite(e))return Math.min(Math.max(e,0),1)}#h(t={},e){let r={...t};return e!=null&&(r.baseShadowOpacity=e),r}#E(t,e={}){let{primary:r="#3b82f6",secondary:o="#64748b",accent:n="#ec4899",background:i="#ffffff",success:s=null,warning:c="#FFBF00",danger:u=null,info:d=null,darkMode:l={}}=t,p={primary:this.#r(r),secondary:this.#r(o),accent:this.#r(n),success:this.#r(s||this.#F(r)),warning:this.#r(c||n),danger:this.#r(u||this.#C(r)),info:this.#r(d||r),gray:this.#f(o),surface:this.#b(i)};return p.surface.fieldset=this.#T(p.surface),p.surfaceSmart=this.#k(p.surface,e),p.dark=this.#A(p,i,l),p.dark&&p.dark.surface&&(p.dark.surfaceSmart=this.#k(p.dark.surface,e)),p.interactive={light:{fill:this.#w(p.primary,4.5),text:p.primary[600]},dark:{fill:this.#w(p.dark.primary,4.5),text:this.#B(p.dark.primary,p.dark.surface.base,4.5)}},p}#r(t){let e=this.#n(t);return{50:this.#t(e.h,Math.max(e.s-10,10),Math.min(e.l+45,95)),100:this.#t(e.h,Math.max(e.s-5,15),Math.min(e.l+35,90)),200:this.#t(e.h,e.s,Math.min(e.l+25,85)),300:this.#t(e.h,e.s,Math.min(e.l+15,75)),400:this.#t(e.h,e.s,Math.min(e.l+5,65)),500:t,600:this.#t(e.h,e.s,Math.max(e.l-10,25)),700:this.#t(e.h,e.s,Math.max(e.l-20,20)),800:this.#t(e.h,e.s,Math.max(e.l-30,15)),900:this.#t(e.h,e.s,Math.max(e.l-40,10))}}#F(t){let e=this.#n(t);return this.#t(120,Math.max(e.s,60),45)}#C(t){let e=this.#n(t);return this.#t(0,Math.max(e.s,70),50)}#f(t){let e=this.#n(t),r=e.h,o=Math.min(e.s,10);return{50:this.#t(r,o,98),100:this.#t(r,o,95),200:this.#t(r,o,88),300:this.#t(r,o,78),400:this.#t(r,o,60),500:t,600:this.#t(r,Math.min(o+5,15),45),700:this.#t(r,Math.min(o+8,18),35),800:this.#t(r,Math.min(o+10,20),20),900:this.#t(r,Math.min(o+12,22),10)}}#b(t){let e=this.#n(t);return{base:t,subtle:this.#t(e.h,Math.max(e.s,2),Math.max(e.l-2,2)),elevated:this.#t(e.h,Math.max(e.s,3),Math.max(e.l-4,5)),sunken:this.#t(e.h,Math.max(e.s,4),Math.max(e.l-6,8)),overlay:this.#t(e.h,Math.max(e.s,2),Math.min(e.l+2,98)),inverse:this.#y(t),hover:"color-mix(in oklab, var(--color-surface-base) 92%, var(--color-text-primary) 8%);"}}#T(t){return{base:t.subtle,subtle:t.elevated,elevated:t.sunken,sunken:this.#L(t.sunken,.05),overlay:t.elevated}}#L(t,e=.05){let r=this.#n(t),o=Math.max(r.l-r.l*e,5);return this.#t(r.h,r.s,o)}#y(t){let e=this.#n(t);if(e.l>50){let r=Math.min(e.s+5,25),o=Math.max(12-(e.l-50)*.1,8);return this.#t(e.h,r,o)}else{let r=Math.max(e.s-10,5),o=Math.min(85+(50-e.l)*.3,95);return this.#t(e.h,r,o)}}#A(t,e="#ffffff",r={}){let o=r.background?r.background:this.#y(e),n=this.#b(o),i=r.primary?this.#r(r.primary):this.#i(t.primary);return{surface:{...n,fieldset:this.#j(n)},primary:i,secondary:r.secondary?this.#r(r.secondary):this.#i(t.secondary),accent:r.accent?this.#r(r.accent):this.#i(t.accent),gray:r.secondary?this.#f(r.secondary):t.gray,success:this.#i(t.success),info:this.#i(t.info),warning:this.#i(t.warning),danger:this.#i(t.danger)}}#l(t){let e=String(t||"").replace("#",""),r=e.length===3?e.split("").map(n=>n+n).join(""):e,o=parseInt(r,16);return{r:o>>16&255,g:o>>8&255,b:o&255}}#p(t){let{r:e,g:r,b:o}=this.#l(t),n=[e/255,r/255,o/255].map(i=>i<=.03928?i/12.92:Math.pow((i+.055)/1.055,2.4));return .2126*n[0]+.7152*n[1]+.0722*n[2]}#d(t,e){let r=this.#p(t),o=this.#p(e),n=Math.max(r,o),i=Math.min(r,o);return(n+.05)/(i+.05)}#v(t,e=4.5){if(!t)return"#000000";let r="#ffffff",o="#000000",n=this.#d(t,r);if(n>=e)return r;let i=this.#d(t,o);return i>=e||i>n?o:r}#x(t,e=1){let{r,g:o,b:n}=this.#l(t);return`rgba(${r}, ${o}, ${n}, ${e})`}#R(t,e,r=.5){let o=this.#l(t),n=this.#l(e),i=Math.round(o.r+(n.r-o.r)*r),s=Math.round(o.g+(n.g-o.g)*r),c=Math.round(o.b+(n.b-o.b)*r);return this.#W(i,s,c)}#W(t,e,r){let o=n=>{let i=Math.max(0,Math.min(255,Math.round(n))).toString(16);return i.length===1?"0"+i:i};return`#${o(t)}${o(e)}${o(r)}`}#j(t){return{base:t.elevated,subtle:t.overlay,elevated:this.#S(t.elevated,.08),sunken:t.elevated,overlay:this.#S(t.overlay,.05)}}#B(t={},e="#000000",r=4.5){let o=["600","700","800","500","400","900","300","200"],n={shade:null,color:null,ratio:0};for(let i of o){let s=t?.[i];if(!s||typeof s!="string")continue;let c=this.#d(s,e);if(c>n.ratio&&(n={shade:i,color:s,ratio:c}),c>=r)return s}return n.color||t?.["600"]||t?.["500"]}#w(t={},e=4.5){let r=["600","700","800","500","400","900"],o={shade:null,color:null,ratio:0};for(let n of r){let i=t?.[n];if(!i||typeof i!="string")continue;let s=this.#d(i,"#ffffff");if(s>o.ratio&&(o={shade:n,color:i,ratio:s}),s>=e)return i}return o.color||t?.["600"]||t?.["500"]}#k(t,e={}){let r={},o=e.light??.1,n=e.dark??.25;return Object.entries(t).forEach(([i,s])=>{if(!s||typeof s!="string"||!s.startsWith("#"))return;let c=this.#p(s)<.5,u=this.#v(s,4.5),d=this.#v(s,3),l=this.#R(u,s,.4),p=u,m=l,f=c?"#ffffff":"#000000",b=c?n:o,h=this.#x(f,b),y=c?"#ffffff":"#000000",S=c?.15:.1,$=this.#x(y,S);r[i]={bg:s,text:u,textSecondary:d,textMuted:l,icon:p,iconSubtle:m,shadow:h,border:$,scheme:c?"dark":"light"}}),r}#S(t,e=.05){let r=this.#n(t),o=Math.min(r.l+(100-r.l)*e,95);return this.#t(r.h,r.s,o)}#i(t){let e={};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(([o,n])=>{let i=t[n.source];e[o]=this.#N(i,n.dimFactor)}),e}#N(t,e=.8){let r=this.#n(t),o=Math.max(r.s*e,5),n=Math.max(r.l*e,5);return this.#t(r.h,o,n)}generateSpacingTokens(t){let{baseUnit:e=4,scaleRatio:r=1.25,maxSpacingSteps:o=12}=t,n=Number.isFinite(Number(e))?Number(e):4,i=Math.min(Number.isFinite(Number(o))?Number(o):12,12),s={0:"0"};for(let c=1;c<=i;c++)s[c]=`${n*c}px`;return s}#P(t){let{radiusSize:e="medium",customRadius:r=null}=t,o;r!=null?o=r:typeof e=="number"?o=e:typeof e=="string"?o=g.RadiusSizes[e]??g.RadiusSizes.medium:o=g.RadiusSizes.medium;let n=Number.isFinite(Number(o))?Number(o):g.RadiusSizes.medium;return{none:"0",xs:`${Number.isFinite(n*.25)?Math.round(n*.25):0}px`,sm:`${Number.isFinite(n*.5)?Math.round(n*.5):0}px`,md:`${n}px`,lg:`${Number.isFinite(n*1.5)?Math.round(n*1.5):0}px`,xl:`${Number.isFinite(n*2)?Math.round(n*2):0}px`,full:"9999px"}}#O(t){let{borderWidth:e="medium"}=t,r;typeof e=="number"?r=e:typeof e=="string"?r=g.BorderWidths[e]??g.BorderWidths.medium:r=g.BorderWidths.medium;let o=Number.isFinite(Number(r))?Number(r):g.BorderWidths.medium,n=i=>`${Math.max(0,Math.round(i*100)/100)}px`;return{hairline:n(o*.25),thin:n(o*.5),medium:n(o),thick:n(o*1.5)}}generateTypographyTokens(t){let{fontFamilyHeadings:e="system-ui, -apple-system, sans-serif",fontFamilyBody:r="system-ui, -apple-system, sans-serif",fontFamilyMono:o='ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, monospace',baseFontSize:n=16,fontScale:i=1.25,fontWeightLight:s=g.FontWeights.light,fontWeightNormal:c=g.FontWeights.normal,fontWeightMedium:u=g.FontWeights.medium,fontWeightSemibold:d=g.FontWeights.semibold,fontWeightBold:l=g.FontWeights.bold,lineHeightTight:p=g.LineHeights.tight,lineHeightNormal:m=g.LineHeights.normal,lineHeightRelaxed:f=g.LineHeights.relaxed}=t,b=Number.isFinite(Number(n))?Number(n):16,h=Number.isFinite(Number(i))?Number(i):1.25;return{fontFamily:{headings:e,body:r,mono:o},fontSize:{xs:`${Math.round(b/Math.pow(h,2))}px`,sm:`${Math.round(b/h)}px`,base:`${b}px`,lg:`${Math.round(b*h)}px`,xl:`${Math.round(b*Math.pow(h,2))}px`,"2xl":`${Math.round(b*Math.pow(h,3))}px`,"3xl":`${Math.round(b*Math.pow(h,4))}px`,"4xl":`${Math.round(b*Math.pow(h,5))}px`},fontWeight:{light:s?.toString()||"300",normal:c?.toString()||"400",medium:u?.toString()||"500",semibold:d?.toString()||"600",bold:l?.toString()||"700"},lineHeight:{tight:p?.toString()||"1.25",normal:m?.toString()||"1.5",relaxed:f?.toString()||"1.75"}}}#$(t){let{baseShadowOpacity:e=.1,shadowBlurMultiplier:r=1,shadowOffsetMultiplier:o=1}=t,n=`rgba(0, 0, 0, ${e})`,i=`rgba(0, 0, 0, ${e*.5})`;return{sm:`0 ${1*o}px ${2*r}px 0 ${i}`,base:`0 ${1*o}px ${3*r}px 0 ${n}, 0 ${1*o}px ${2*r}px 0 ${i}`,md:`0 ${4*o}px ${6*r}px ${-1*o}px ${n}, 0 ${2*o}px ${4*r}px ${-1*o}px ${i}`,lg:`0 ${10*o}px ${15*r}px ${-3*o}px ${n}, 0 ${4*o}px ${6*r}px ${-2*o}px ${i}`,xl:`0 ${20*o}px ${25*r}px ${-5*o}px ${n}, 0 ${10*o}px ${10*r}px ${-5*o}px ${i}`,inner:`inset 0 ${2*o}px ${4*r}px 0 ${i}`}}#D(t){let{maxWidth:e=1200,containerPadding:r=16,breakpoints:o={sm:640,md:768,lg:1024,xl:1280}}=t,n=this.#z(t);return{maxWidth:this.#o(e,"1200px"),maxWidthSm:n.sm,maxWidthMd:n.md,maxWidthLg:n.lg,maxWidthXl:n.xl,minHeight:"100vh",containerPadding:this.#o(r,"16px"),breakpoints:{sm:this.#o(o.sm,"640px"),md:this.#o(o.md,"768px"),lg:this.#o(o.lg,"1024px"),xl:this.#o(o.xl,"1280px")},pageMargin:"120px",sectionGap:"160px",containerGap:"200px",heroSpacing:"240px",footerSpacing:"160px"}}#z(t={}){let e={sm:640,md:768,lg:1024,xl:1280},{maxWidths:r={},maxWidth:o=1200,containerPadding:n=16,breakpoints:i=e}=t||{},s=this.#s(n,16),c=this.#s(o,e.xl),u={sm:this.#s(i.sm,e.sm),md:this.#s(i.md,e.md),lg:this.#s(i.lg,e.lg),xl:this.#s(i.xl,e.xl)},d=p=>p?Math.max(320,p-s*2):c,l={sm:Math.min(c,d(u.sm)),md:Math.min(c,d(u.md)),lg:Math.min(c,d(u.lg)),xl:Math.max(320,c)};return{sm:this.#o(r.sm,`${l.sm}px`),md:this.#o(r.md,`${l.md}px`),lg:this.#o(r.lg,`${l.lg}px`),xl:this.#o(r.xl,`${l.xl}px`)}}#o(t,e){return typeof t=="number"&&Number.isFinite(t)?`${t}px`:typeof t=="string"&&t.trim().length>0?t:e}#s(t,e){if(typeof t=="number"&&Number.isFinite(t))return t;if(typeof t=="string"){let r=parseFloat(t);if(Number.isFinite(r))return r}return e}#U(t){let{transitionSpeed:e=g.TransitionSpeeds.normal,animationEasing:r=g.AnimationEasings["ease-out"]}=t,o;return typeof e=="number"?o=e:typeof e=="string"&&g.TransitionSpeeds[e]?o=g.TransitionSpeeds[e]:o=g.TransitionSpeeds.normal,{fast:`${Math.round(o*.6)}ms`,normal:`${o}ms`,slow:`${Math.round(o*1.4)}ms`}}#I(t){let{baseZIndex:e=1e3,zIndexStep:r=10}=t;return{dropdown:e.toString(),sticky:(e+r*2).toString(),fixed:(e+r*3).toString(),modal:(e+r*4).toString(),drawer:(e+r*5).toString(),popover:(e+r*6).toString(),tooltip:(e+r*7).toString(),notification:(e+r*8).toString()}}#H(t){let{set:e="phosphor",weight:r="regular",defaultSize:o=24,sizes:n={xs:16,sm:20,md:24,lg:32,xl:48,"2xl":64},spritePath:i="/assets/pds/icons/pds-icons.svg",externalPath:s="/assets/img/icons/"}=t;return{set:e,weight:r,defaultSize:`${o}px`,sizes:Object.fromEntries(Object.entries(n).map(([c,u])=>[c,`${u}px`])),spritePath:i,externalPath:s}}#_(t){let e=[];e.push(` /* Colors */
20
20
  `);let r=(o,n="")=>{Object.entries(o).forEach(([i,s])=>{typeof s=="object"&&s!==null?r(s,`${n}${i}-`):typeof s=="string"&&e.push(` --color-${n}${i}: ${s};
21
21
  `)})};return Object.entries(t).forEach(([o,n])=>{o!=="dark"&&o!=="surfaceSmart"&&o!=="interactive"&&typeof n=="object"&&n!==null&&r(n,`${o}-`)}),t.surfaceSmart&&(e.push(` /* Smart Surface Tokens (context-aware) */
22
22
  `),Object.entries(t.surfaceSmart).forEach(([o,n])=>{e.push(` --surface-${o}-bg: ${n.bg};
@@ -3341,7 +3341,7 @@ export const ${t} = new CSSStyleSheet();
3341
3341
  ${t}.replaceSync(\`${r}\`);
3342
3342
 
3343
3343
  export const ${t}CSS = \`${r}\`;
3344
- `}};var ne=class{constructor(){this._mode="static",this._staticPaths={tokens:"/assets/pds/styles/pds-tokens.css.js",primitives:"/assets/pds/styles/pds-primitives.css.js",components:"/assets/pds/styles/pds-components.css.js",utilities:"/assets/pds/styles/pds-utilities.css.js",styles:"/assets/pds/styles/pds-styles.css.js"}}setLiveMode(){this._mode="live"}setStaticMode(t={}){this._mode="static",this._staticPaths={...this._staticPaths,...t}}async getStylesheet(t){if(this._mode==="live")return null;try{return(await import(this._staticPaths[t]))[t]}catch(e){console.error(`[PDS Registry] Failed to load static ${t}:`,e),console.error(`[PDS Registry] Looking for: ${this._staticPaths[t]}`),console.error("[PDS Registry] Make sure you've run 'npm run pds:build' and configured PDS.start() with the correct static.root path");let r=new CSSStyleSheet;return r.replaceSync("/* Failed to load "+t+" */"),r}}get mode(){return this._mode}get isLive(){return this._mode==="live"}},ie=new ne;function et(a){try{if(typeof document>"u")return;if(typeof CSSStyleSheet<"u"&&"adoptedStyleSheets"in Document.prototype){let r=new CSSStyleSheet;r.replaceSync(a),r._pds=!0;let o=(document.adoptedStyleSheets||[]).filter(n=>n._pds!==!0);document.adoptedStyleSheets=[...o,r];return}let t="pds-runtime-stylesheet",e=document.getElementById(t);if(!e){e=document.createElement("style"),e.id=t,e.type="text/css";let r=document.head||document.getElementsByTagName("head")[0];r?r.appendChild(e):document.documentElement.appendChild(e)}e.textContent=a}catch(t){console.warn("installRuntimeStyles failed:",t)}}function J(a){let t=a;if(!t||typeof t!="object"){console.error("[Runtime] applyStyles requires an explicit generator instance in live mode");return}let e=t.layeredCSS||t.css||"";if(!e){t.options?.log?.("warn","[Runtime] No CSS available on generator to apply");return}et(e)}async function ze(a,t=[],e=null){try{let r=e?.primitivesStylesheet?e.primitivesStylesheet:await ie.getStylesheet("primitives");a.adoptedStyleSheets=[r,...t]}catch(r){let o=a.host?.tagName?.toLowerCase()||"unknown";console.error(`[PDS Adopter] <${o}> failed to adopt primitives:`,r),a.adoptedStyleSheets=t}}async function Me(a,t=["primitives"],e=[],r=null){try{let n=(await Promise.all(t.map(async i=>{if(r)switch(i){case"tokens":return r.tokensStylesheet;case"primitives":return r.primitivesStylesheet;case"components":return r.componentsStylesheet;case"utilities":return r.utilitiesStylesheet;default:break}return ie.getStylesheet(i)}))).filter(i=>i!==null);a.adoptedStyleSheets=[...n,...e]}catch(o){let n=a.host?.tagName?.toLowerCase()||"unknown";console.error(`[PDS Adopter] <${n}> failed to adopt layers:`,o),a.adoptedStyleSheets=e}}var tt=[{selector:".accordion"},{selector:"nav[data-dropdown]"},{selector:"label[data-toggle]"},{selector:'input[type="range"]'},{selector:"form[data-required]"},{selector:"fieldset[role=group][data-open]"},{selector:"[data-clip]"},{selector:"button, a[class*='btn-']"}];function rt(a){a.dataset.enhancedAccordion||(a.dataset.enhancedAccordion="true",a.addEventListener("toggle",t=>{t.target.open&&t.target.parentElement===a&&a.querySelectorAll(":scope > details[open]").forEach(e=>{e!==t.target&&(e.open=!1)})},!0))}function ot(a){if(a.dataset.enhancedDropdown)return;a.dataset.enhancedDropdown="true";let t=a.lastElementChild;if(!t)return;let e=a.querySelector("[data-dropdown-toggle]")||a.querySelector("button");e&&!e.hasAttribute("type")&&e.setAttribute("type","button"),t.id||(t.id=`dropdown-${Math.random().toString(36).slice(2,9)}`),t.tagName?.toLowerCase()==="menu"&&!t.hasAttribute("role")&&t.setAttribute("role","menu"),t.hasAttribute("aria-hidden")||t.setAttribute("aria-hidden","true"),e&&(e.setAttribute("aria-haspopup","true"),e.setAttribute("aria-controls",t.id),e.setAttribute("aria-expanded","false"));let o=()=>{let l=t.getAttribute("style");t.style.visibility="hidden",t.style.display="inline-block",t.style.pointerEvents="none";let p=t.getBoundingClientRect(),m=Math.max(t.offsetWidth||0,t.scrollWidth||0,p.width||0,1),f=Math.max(t.offsetHeight||0,t.scrollHeight||0,p.height||0,1);return l===null?t.removeAttribute("style"):t.setAttribute("style",l),{width:m,height:f}},n=()=>{let l=(a.getAttribute("data-direction")||a.getAttribute("data-dropdown-direction")||a.getAttribute("data-mode")||"auto").toLowerCase();if(l==="up"||l==="down")return l;let p=(e||a).getBoundingClientRect(),{height:m}=o(),f=Math.max(0,window.innerHeight-p.bottom),b=Math.max(0,p.top),h=f>=m,y=b>=m;return h&&!y?"down":y&&!h?"up":h&&y?"down":b>f?"up":"down"},i=()=>{let l=(a.getAttribute("data-align")||a.getAttribute("data-dropdown-align")||"auto").toLowerCase();if(l==="left"||l==="right"||l==="start"||l==="end")return l==="start"?"left":l==="end"?"right":l;let p=(e||a).getBoundingClientRect(),{width:m}=o(),f=Math.max(0,window.innerWidth-p.left),b=Math.max(0,p.right),h=f>=m,y=b>=m;return h&&!y?"left":y&&!h?"right":h&&y?"left":b>f?"right":"left"},s=null,c=()=>{a.dataset.dropdownDirection=n(),a.dataset.dropdownAlign=i(),t.setAttribute("aria-hidden","false"),e?.setAttribute("aria-expanded","true"),s||(s=l=>{(l.composedPath?l.composedPath():[l.target]).some(f=>f===a)||u()},setTimeout(()=>{document.addEventListener("click",s)},0))},u=()=>{t.setAttribute("aria-hidden","true"),e?.setAttribute("aria-expanded","false"),s&&(document.removeEventListener("click",s),s=null)},d=()=>{t.getAttribute("aria-hidden")==="false"?u():c()};e?.addEventListener("click",l=>{l.preventDefault(),l.stopPropagation(),d()}),a.addEventListener("keydown",l=>{l.key==="Escape"&&(u(),e?.focus())}),a.addEventListener("focusout",l=>{l.relatedTarget&&((l.composedPath?l.composedPath():[l.relatedTarget]).some(f=>f===a)||u())})}function at(a){if(a.dataset.enhancedToggle)return;a.dataset.enhancedToggle="true";let t=a.querySelector('input[type="checkbox"]');if(!t)return;a.hasAttribute("tabindex")||a.setAttribute("tabindex","0"),a.setAttribute("role","switch"),a.setAttribute("aria-checked",t.checked?"true":"false");let e=document.createElement("span");e.className="toggle-switch",e.setAttribute("role","presentation"),e.setAttribute("aria-hidden","true");let r=document.createElement("span");r.className="toggle-knob",e.appendChild(r),a.insertBefore(e,t.nextSibling);let o=()=>{a.setAttribute("aria-checked",t.checked?"true":"false")},n=()=>{t.disabled||(t.checked=!t.checked,o(),t.dispatchEvent(new Event("change",{bubbles:!0})))};a.addEventListener("click",i=>{i.preventDefault(),n()}),a.addEventListener("keydown",i=>{(i.key===" "||i.key==="Enter")&&(i.preventDefault(),n())}),t.addEventListener("change",o)}function nt(a){if(a.dataset.enhancedRange)return;let t=a.closest("label"),e=t?.classList.contains("range-output"),r=a.id||`range-${Math.random().toString(36).substring(2,11)}`,o=`${r}-output`;if(a.id=r,e){let n=t.querySelector("span");if(n&&!n.classList.contains("range-output-wrapper")){let i=document.createElement("span");i.className="range-output-wrapper",i.style.display="flex",i.style.justifyContent="space-between",i.style.alignItems="center";let s=document.createElement("span");s.textContent=n.textContent,i.appendChild(s);let c=document.createElement("output");c.id=o,c.setAttribute("for",r),c.style.color="var(--surface-text-secondary, var(--color-text-secondary))",c.style.fontSize="0.875rem",c.textContent=a.value,i.appendChild(c),n.textContent="",n.appendChild(i);let u=()=>{c.textContent=a.value};a.addEventListener("input",u)}}else{let n=a.closest(".range-container");n||(n=document.createElement("div"),n.className="range-container",a.parentNode?.insertBefore(n,a),n.appendChild(a)),n.style.position="relative";let i=document.createElement("output");i.id=o,i.setAttribute("for",r),i.className="range-bubble",i.setAttribute("aria-live","polite"),n.appendChild(i);let s=()=>{let d=parseFloat(a.min)||0,l=parseFloat(a.max)||100,p=parseFloat(a.value),m=(p-d)/(l-d);i.style.left=`calc(${m*100}% )`,i.textContent=String(p)},c=()=>i.classList.add("visible"),u=()=>i.classList.remove("visible");a.addEventListener("input",s),a.addEventListener("pointerdown",c),a.addEventListener("pointerup",u),a.addEventListener("pointerleave",u),a.addEventListener("focus",c),a.addEventListener("blur",u),s()}a.dataset.enhancedRange="1"}function it(a){if(a.dataset.enhancedRequired)return;a.dataset.enhancedRequired="true";let t=e=>{let r;if(e.closest("[role$=group]")?r=e.closest("[role$=group]").querySelector("legend"):r=e.closest("label"),!r||r.querySelector(".required-asterisk"))return;let o=document.createElement("span");o.classList.add("required-asterisk"),o.textContent="*",o.style.marginLeft="4px";let n=r.querySelector("span, [data-label]");if(n)n.appendChild(o);else{let s=r.querySelector("input, select, textarea");s?r.insertBefore(o,s):r.appendChild(o)}let i=e.closest("form");if(i&&!i.querySelector(".required-legend")){let s=document.createElement("small");s.classList.add("required-legend"),s.textContent="* Required fields",i.insertBefore(s,i.querySelector(".form-actions")||i.lastElementChild)}};a.querySelectorAll("[required]").forEach(e=>{t(e)})}function st(a){if(a.dataset.enhancedOpenGroup)return;a.dataset.enhancedOpenGroup="true",a.classList.add("flex","flex-wrap","buttons");let t=document.createElement("input");t.type="text",t.placeholder="Add item...",t.classList.add("input-text","input-sm"),t.style.width="auto";let e=a.querySelector('input[type="radio"], input[type="checkbox"]');a.appendChild(t),t.addEventListener("keydown",r=>{if(r.key==="Enter"||r.key==="Tab"){let o=t.value.trim();if(o){r.preventDefault();let n=e.type==="radio"?"radio":"checkbox",i=`open-group-${Math.random().toString(36).substring(2,11)}`,s=document.createElement("label"),c=document.createElement("span");c.setAttribute("data-label",""),c.textContent=o;let u=document.createElement("input");u.type=n,u.name=e.name||a.getAttribute("data-name")||"open-group",u.value=o,u.id=i,s.appendChild(c),s.appendChild(u),a.insertBefore(s,t),t.value=""}}else if(r.key==="Backspace"&&t.value===""){r.preventDefault();let o=a.querySelectorAll("label");o.length>0&&o[o.length-1].remove()}})}function ct(a){if(a.dataset.enhancedClip)return;a.dataset.enhancedClip="true",a.hasAttribute("tabindex")||a.setAttribute("tabindex","0"),a.hasAttribute("role")||a.setAttribute("role","button");let t=()=>{let r=a.getAttribute("data-clip-open")==="true";a.setAttribute("aria-expanded",r?"true":"false")},e=()=>{let r=a.getAttribute("data-clip-open")==="true";a.setAttribute("data-clip-open",r?"false":"true"),t()};a.addEventListener("click",r=>{r.defaultPrevented||e()}),a.addEventListener("keydown",r=>{(r.key===" "||r.key==="Enter")&&(r.preventDefault(),e())}),t()}function lt(a){if(a.dataset.enhancedBtnWorking)return;a.dataset.enhancedBtnWorking="true";let t=null,e=!1;new MutationObserver(o=>{o.forEach(n=>{if(n.attributeName==="class"){let i=a.classList.contains("btn-working"),s=a.querySelector("pds-icon");if(i)if(s)t||(t=s.getAttribute("icon")),s.setAttribute("icon","circle-notch");else{let c=document.createElement("pds-icon");c.setAttribute("icon","circle-notch"),c.setAttribute("size","sm"),a.insertBefore(c,a.firstChild),e=!0}else n.oldValue?.includes("btn-working")&&s&&(e?(s.remove(),e=!1):t&&(s.setAttribute("icon",t),t=null))}})}).observe(a,{attributes:!0,attributeFilter:["class"],attributeOldValue:!0})}var dt=new Map([[".accordion",rt],["nav[data-dropdown]",ot],["label[data-toggle]",at],['input[type="range"]',nt],["form[data-required]",it],["fieldset[role=group][data-open]",st],["[data-clip]",ct],["button, a[class*='btn-']",lt]]),Ee=tt.map(a=>({...a,run:dt.get(a.selector)||(()=>{})}));var Fe=[{selector:".accordion",description:"Ensures only one <details> element can be open at a time within the accordion.",demoHtml:`
3344
+ `}};var ne=class{constructor(){this._mode="static",this._staticPaths={tokens:"/assets/pds/styles/pds-tokens.css.js",primitives:"/assets/pds/styles/pds-primitives.css.js",components:"/assets/pds/styles/pds-components.css.js",utilities:"/assets/pds/styles/pds-utilities.css.js",styles:"/assets/pds/styles/pds-styles.css.js"}}setLiveMode(){this._mode="live"}setStaticMode(t={}){this._mode="static",this._staticPaths={...this._staticPaths,...t}}async getStylesheet(t){if(this._mode==="live")return null;try{return(await import(this._staticPaths[t]))[t]}catch(e){console.error(`[PDS Registry] Failed to load static ${t}:`,e),console.error(`[PDS Registry] Looking for: ${this._staticPaths[t]}`),console.error("[PDS Registry] Make sure you've run 'npm run pds:build' and configured PDS.start() with the correct static.root path");let r=new CSSStyleSheet;return r.replaceSync("/* Failed to load "+t+" */"),r}}get mode(){return this._mode}get isLive(){return this._mode==="live"}},ie=new ne;function tt(a){try{if(typeof document>"u")return;if(typeof CSSStyleSheet<"u"&&"adoptedStyleSheets"in Document.prototype){let r=new CSSStyleSheet;r.replaceSync(a),r._pds=!0;let o=(document.adoptedStyleSheets||[]).filter(n=>n._pds!==!0);document.adoptedStyleSheets=[...o,r];return}let t="pds-runtime-stylesheet",e=document.getElementById(t);if(!e){e=document.createElement("style"),e.id=t,e.type="text/css";let r=document.head||document.getElementsByTagName("head")[0];r?r.appendChild(e):document.documentElement.appendChild(e)}e.textContent=a}catch(t){console.warn("installRuntimeStyles failed:",t)}}function J(a){let t=a;if(!t||typeof t!="object"){console.error("[Runtime] applyStyles requires an explicit generator instance in live mode");return}let e=t.layeredCSS||t.css||"";if(!e){t.options?.log?.("warn","[Runtime] No CSS available on generator to apply");return}tt(e)}async function ze(a,t=[],e=null){try{let r=e?.primitivesStylesheet?e.primitivesStylesheet:await ie.getStylesheet("primitives");a.adoptedStyleSheets=[r,...t]}catch(r){let o=a.host?.tagName?.toLowerCase()||"unknown";console.error(`[PDS Adopter] <${o}> failed to adopt primitives:`,r),a.adoptedStyleSheets=t}}async function Me(a,t=["primitives"],e=[],r=null){try{let n=(await Promise.all(t.map(async i=>{if(r)switch(i){case"tokens":return r.tokensStylesheet;case"primitives":return r.primitivesStylesheet;case"components":return r.componentsStylesheet;case"utilities":return r.utilitiesStylesheet;default:break}return ie.getStylesheet(i)}))).filter(i=>i!==null);a.adoptedStyleSheets=[...n,...e]}catch(o){let n=a.host?.tagName?.toLowerCase()||"unknown";console.error(`[PDS Adopter] <${n}> failed to adopt layers:`,o),a.adoptedStyleSheets=e}}var rt=[{selector:".accordion"},{selector:"nav[data-dropdown]"},{selector:"label[data-toggle]"},{selector:'input[type="range"]'},{selector:"form[data-required]"},{selector:"fieldset[role=group][data-open]"},{selector:"[data-clip]"},{selector:"button, a[class*='btn-']"}];function ot(a){a.dataset.enhancedAccordion||(a.dataset.enhancedAccordion="true",a.addEventListener("toggle",t=>{t.target.open&&t.target.parentElement===a&&a.querySelectorAll(":scope > details[open]").forEach(e=>{e!==t.target&&(e.open=!1)})},!0))}function at(a){if(a.dataset.enhancedDropdown)return;a.dataset.enhancedDropdown="true";let t=a.lastElementChild;if(!t)return;let e=a.querySelector("[data-dropdown-toggle]")||a.querySelector("button");e&&!e.hasAttribute("type")&&e.setAttribute("type","button"),t.id||(t.id=`dropdown-${Math.random().toString(36).slice(2,9)}`),t.tagName?.toLowerCase()==="menu"&&!t.hasAttribute("role")&&t.setAttribute("role","menu"),t.hasAttribute("aria-hidden")||t.setAttribute("aria-hidden","true"),e&&(e.setAttribute("aria-haspopup","true"),e.setAttribute("aria-controls",t.id),e.setAttribute("aria-expanded","false"));let o=()=>{let l=t.getAttribute("style");t.style.visibility="hidden",t.style.display="inline-block",t.style.pointerEvents="none";let p=t.getBoundingClientRect(),m=Math.max(t.offsetWidth||0,t.scrollWidth||0,p.width||0,1),f=Math.max(t.offsetHeight||0,t.scrollHeight||0,p.height||0,1);return l===null?t.removeAttribute("style"):t.setAttribute("style",l),{width:m,height:f}},n=()=>{let l=(a.getAttribute("data-direction")||a.getAttribute("data-dropdown-direction")||a.getAttribute("data-mode")||"auto").toLowerCase();if(l==="up"||l==="down")return l;let p=(e||a).getBoundingClientRect(),{height:m}=o(),f=Math.max(0,window.innerHeight-p.bottom),b=Math.max(0,p.top),h=f>=m,y=b>=m;return h&&!y?"down":y&&!h?"up":h&&y?"down":b>f?"up":"down"},i=()=>{let l=(a.getAttribute("data-align")||a.getAttribute("data-dropdown-align")||"auto").toLowerCase();if(l==="left"||l==="right"||l==="start"||l==="end")return l==="start"?"left":l==="end"?"right":l;let p=(e||a).getBoundingClientRect(),{width:m}=o(),f=Math.max(0,window.innerWidth-p.left),b=Math.max(0,p.right),h=f>=m,y=b>=m;return h&&!y?"left":y&&!h?"right":h&&y?"left":b>f?"right":"left"},s=null,c=()=>{a.dataset.dropdownDirection=n(),a.dataset.dropdownAlign=i(),t.setAttribute("aria-hidden","false"),e?.setAttribute("aria-expanded","true"),s||(s=l=>{(l.composedPath?l.composedPath():[l.target]).some(f=>f===a)||u()},setTimeout(()=>{document.addEventListener("click",s)},0))},u=()=>{t.setAttribute("aria-hidden","true"),e?.setAttribute("aria-expanded","false"),s&&(document.removeEventListener("click",s),s=null)},d=()=>{t.getAttribute("aria-hidden")==="false"?u():c()};e?.addEventListener("click",l=>{l.preventDefault(),l.stopPropagation(),d()}),a.addEventListener("keydown",l=>{l.key==="Escape"&&(u(),e?.focus())}),a.addEventListener("focusout",l=>{l.relatedTarget&&((l.composedPath?l.composedPath():[l.relatedTarget]).some(f=>f===a)||u())})}function nt(a){if(a.dataset.enhancedToggle)return;a.dataset.enhancedToggle="true";let t=a.querySelector('input[type="checkbox"]');if(!t)return;a.hasAttribute("tabindex")||a.setAttribute("tabindex","0"),a.setAttribute("role","switch"),a.setAttribute("aria-checked",t.checked?"true":"false");let e=document.createElement("span");e.className="toggle-switch",e.setAttribute("role","presentation"),e.setAttribute("aria-hidden","true");let r=document.createElement("span");r.className="toggle-knob",e.appendChild(r),a.insertBefore(e,t.nextSibling);let o=()=>{a.setAttribute("aria-checked",t.checked?"true":"false")},n=()=>{t.disabled||(t.checked=!t.checked,o(),t.dispatchEvent(new Event("change",{bubbles:!0})))};a.addEventListener("click",i=>{i.preventDefault(),n()}),a.addEventListener("keydown",i=>{(i.key===" "||i.key==="Enter")&&(i.preventDefault(),n())}),t.addEventListener("change",o)}function it(a){if(a.dataset.enhancedRange)return;let t=a.closest("label"),e=t?.classList.contains("range-output"),r=a.id||`range-${Math.random().toString(36).substring(2,11)}`,o=`${r}-output`;if(a.id=r,e){let n=t.querySelector("span");if(n&&!n.classList.contains("range-output-wrapper")){let i=document.createElement("span");i.className="range-output-wrapper",i.style.display="flex",i.style.justifyContent="space-between",i.style.alignItems="center";let s=document.createElement("span");s.textContent=n.textContent,i.appendChild(s);let c=document.createElement("output");c.id=o,c.setAttribute("for",r),c.style.color="var(--surface-text-secondary, var(--color-text-secondary))",c.style.fontSize="0.875rem",c.textContent=a.value,i.appendChild(c),n.textContent="",n.appendChild(i);let u=()=>{c.textContent=a.value};a.addEventListener("input",u)}}else{let n=a.closest(".range-container");n||(n=document.createElement("div"),n.className="range-container",a.parentNode?.insertBefore(n,a),n.appendChild(a)),n.style.position="relative";let i=document.createElement("output");i.id=o,i.setAttribute("for",r),i.className="range-bubble",i.setAttribute("aria-live","polite"),n.appendChild(i);let s=()=>{let d=parseFloat(a.min)||0,l=parseFloat(a.max)||100,p=parseFloat(a.value),m=(p-d)/(l-d);i.style.left=`calc(${m*100}% )`,i.textContent=String(p)},c=()=>i.classList.add("visible"),u=()=>i.classList.remove("visible");a.addEventListener("input",s),a.addEventListener("pointerdown",c),a.addEventListener("pointerup",u),a.addEventListener("pointerleave",u),a.addEventListener("focus",c),a.addEventListener("blur",u),s()}a.dataset.enhancedRange="1"}function st(a){if(a.dataset.enhancedRequired)return;a.dataset.enhancedRequired="true";let t=e=>{let r;if(e.closest("[role$=group]")?r=e.closest("[role$=group]").querySelector("legend"):r=e.closest("label"),!r||r.querySelector(".required-asterisk"))return;let o=document.createElement("span");o.classList.add("required-asterisk"),o.textContent="*",o.style.marginLeft="4px";let n=r.querySelector("span, [data-label]");if(n)n.appendChild(o);else{let s=r.querySelector("input, select, textarea");s?r.insertBefore(o,s):r.appendChild(o)}let i=e.closest("form");if(i&&!i.querySelector(".required-legend")){let s=document.createElement("small");s.classList.add("required-legend"),s.textContent="* Required fields",i.insertBefore(s,i.querySelector(".form-actions")||i.lastElementChild)}};a.querySelectorAll("[required]").forEach(e=>{t(e)})}function ct(a){if(a.dataset.enhancedOpenGroup)return;a.dataset.enhancedOpenGroup="true",a.classList.add("flex","flex-wrap","buttons");let t=document.createElement("input");t.type="text",t.placeholder="Add item...",t.classList.add("input-text","input-sm"),t.style.width="auto";let e=a.querySelector('input[type="radio"], input[type="checkbox"]');a.appendChild(t),t.addEventListener("keydown",r=>{if(r.key==="Enter"||r.key==="Tab"){let o=t.value.trim();if(o){r.preventDefault();let n=e.type==="radio"?"radio":"checkbox",i=`open-group-${Math.random().toString(36).substring(2,11)}`,s=document.createElement("label"),c=document.createElement("span");c.setAttribute("data-label",""),c.textContent=o;let u=document.createElement("input");u.type=n,u.name=e.name||a.getAttribute("data-name")||"open-group",u.value=o,u.id=i,s.appendChild(c),s.appendChild(u),a.insertBefore(s,t),t.value=""}}else if(r.key==="Backspace"&&t.value===""){r.preventDefault();let o=a.querySelectorAll("label");o.length>0&&o[o.length-1].remove()}})}function lt(a){if(a.dataset.enhancedClip)return;a.dataset.enhancedClip="true",a.hasAttribute("tabindex")||a.setAttribute("tabindex","0"),a.hasAttribute("role")||a.setAttribute("role","button");let t=()=>{let r=a.getAttribute("data-clip-open")==="true";a.setAttribute("aria-expanded",r?"true":"false")},e=()=>{let r=a.getAttribute("data-clip-open")==="true";a.setAttribute("data-clip-open",r?"false":"true"),t()};a.addEventListener("click",r=>{r.defaultPrevented||e()}),a.addEventListener("keydown",r=>{(r.key===" "||r.key==="Enter")&&(r.preventDefault(),e())}),t()}function dt(a){if(a.dataset.enhancedBtnWorking)return;a.dataset.enhancedBtnWorking="true";let t=null,e=!1;new MutationObserver(o=>{o.forEach(n=>{if(n.attributeName==="class"){let i=a.classList.contains("btn-working"),s=a.querySelector("pds-icon");if(i)if(s)t||(t=s.getAttribute("icon")),s.setAttribute("icon","circle-notch");else{let c=document.createElement("pds-icon");c.setAttribute("icon","circle-notch"),c.setAttribute("size","sm"),a.insertBefore(c,a.firstChild),e=!0}else n.oldValue?.includes("btn-working")&&s&&(e?(s.remove(),e=!1):t&&(s.setAttribute("icon",t),t=null))}})}).observe(a,{attributes:!0,attributeFilter:["class"],attributeOldValue:!0})}var pt=new Map([[".accordion",ot],["nav[data-dropdown]",at],["label[data-toggle]",nt],['input[type="range"]',it],["form[data-required]",st],["fieldset[role=group][data-open]",ct],["[data-clip]",lt],["button, a[class*='btn-']",dt]]),Ee=rt.map(a=>({...a,run:pt.get(a.selector)||(()=>{})}));var Fe=[{selector:".accordion",description:"Ensures only one <details> element can be open at a time within the accordion.",demoHtml:`
3345
3345
  <div class="accordion">
3346
3346
  <details>
3347
3347
  <summary>Section 1</summary>
@@ -3404,10 +3404,10 @@ export const ${t}CSS = \`${r}\`;
3404
3404
  <button class="btn-primary btn-working">
3405
3405
  <span>Saving</span>
3406
3406
  </button>
3407
- `.trim()}];var Te="pds",pt=/^([a-z][a-z0-9+\-.]*:)?\/\//i,Ce=/^[a-z]:/i;function I(a=""){return a.endsWith("/")?a:`${a}/`}function ut(a="",t=Te){let e=a.replace(/\/+$/,"");return new RegExp(`(?:^|/)${t}$`,"i").test(e)?e:`${e}/${t}`}function gt(a){return a.replace(/^\.\/+/,"")}function mt(a){return Ce.test(a)?a.replace(Ce,"").replace(/^\/+/,""):a}function ht(a){return a.startsWith("public/")?a.substring(7):a}function Le(a,t={}){let e=t.segment||Te,r=t.defaultRoot||`/assets/${e}/`,o=a?.public&&a.public?.root||a?.static&&a.static?.root||null;if(!o||typeof o!="string")return I(r);let n=o.trim();return n?(n=n.replace(/\\/g,"/"),n=ut(n,e),n=I(n),pt.test(n)?n:(n=gt(n),n=mt(n),n.startsWith("/")||(n=ht(n),n.startsWith("/")||(n=`/${n}`),n=n.replace(/\/+/g,(i,s)=>s===0?i:"/")),I(n))):I(r)}function Ae(a){let t=a.replace(/['"]/g,"").trim();if(["system-ui","-apple-system","sans-serif","serif","monospace","cursive","fantasy","ui-sans-serif","ui-serif","ui-monospace","ui-rounded"].includes(t.toLowerCase()))return!0;let o=document.createElement("canvas").getContext("2d");if(!o)return!1;let n="mmmmmmmmmmlli",i="72px",s="monospace";o.font=`${i} ${s}`;let c=o.measureText(n).width;o.font=`${i} "${t}", ${s}`;let u=o.measureText(n).width;return c!==u}function ft(a){return a?a.split(",").map(r=>r.trim())[0].replace(/['"]/g,"").trim():null}async function bt(a,t={}){if(!a)return Promise.resolve();let{weights:e=[400,500,600,700],italic:r=!1}=t,o=ft(a);if(!o||Ae(o))return Promise.resolve();let n=encodeURIComponent(o);return document.querySelector(`link[href*="fonts.googleapis.com"][href*="${n}"]`)?(console.log(`Font "${o}" is already loading or loaded`),Promise.resolve()):(console.log(`Loading font "${o}" from Google Fonts...`),new Promise((s,c)=>{let u=document.createElement("link");u.rel="stylesheet";let d=r?`ital,wght@0,${e.join(";0,")};1,${e.join(";1,")}`:`wght@${e.join(";")}`;u.href=`https://fonts.googleapis.com/css2?family=${n}:${d}&display=swap`,u.setAttribute("data-font-loader",o),u.onload=()=>{console.log(`Successfully loaded font "${o}"`),s()},u.onerror=()=>{console.warn(`Failed to load font "${o}" from Google Fonts`),c(new Error(`Failed to load font: ${o}`))},document.head.appendChild(u),setTimeout(()=>{Ae(o)||console.warn(`Font "${o}" did not load within timeout`),s()},5e3)}))}async function se(a){if(!a)return Promise.resolve();let t=new Set;a.fontFamilyHeadings&&t.add(a.fontFamilyHeadings),a.fontFamilyBody&&t.add(a.fontFamilyBody),a.fontFamilyMono&&t.add(a.fontFamilyMono);let e=Array.from(t).map(r=>bt(r).catch(o=>{console.warn(`Could not load font: ${r}`,o)}));await Promise.all(e)}var vt=/^[a-z][a-z0-9+\-.]*:\/\//i,H=(()=>{try{return import.meta.url}catch{return}})(),Q=a=>typeof a=="string"&&a.length&&!a.endsWith("/")?`${a}/`:a;function Y(a,t={}){if(!a||vt.test(a))return a;let{preferModule:e=!0}=t,r=()=>{if(!H)return null;try{return new URL(a,H).href}catch{return null}},o=()=>{if(typeof window>"u"||!window.location?.origin)return null;try{return new URL(a,window.location.origin).href}catch{return null}};return(e?r()||o():o()||r())||a}var je=(()=>{if(H)try{let a=new URL(H);if(/\/public\/assets\/js\//.test(a.pathname))return new URL("../pds/",H).href}catch{return}})(),Be=!1;function Ne(a){Be||typeof document>"u"||(Be=!0,a.addEventListener("pds:ready",t=>{let e=t.detail?.mode;e&&document.documentElement.classList.add(`pds-${e}`,"pds-ready")}))}function de(a={},t={}){if(!t||typeof t!="object")return a;let e=Array.isArray(a)?[...a]:{...a};for(let[r,o]of Object.entries(t))o&&typeof o=="object"&&!Array.isArray(o)?e[r]=de(e[r]&&typeof e[r]=="object"?e[r]:{},o):e[r]=o;return e}function le(a=""){return String(a).toLowerCase().replace(/&/g," and ").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}function B(a){if(a==null)return a;if(typeof a=="function")return;if(typeof a!="object")return a;if(Array.isArray(a))return a.map(e=>B(e)).filter(e=>e!==void 0);let t={};for(let e in a)if(a.hasOwnProperty(e)){let r=a[e];if(typeof r!="function"){let o=B(r);o!==void 0&&(t[e]=o)}}return t}function pe(a={},t={},{presets:e,defaultLog:r}){let o=a&&typeof a.log=="function"?a.log:r,n=typeof a=="object"&&("colors"in a||"typography"in a||"spatialRhythm"in a||"shape"in a||"behavior"in a||"layout"in a||"advanced"in a||"a11y"in a||"components"in a||"icons"in a),i=a&&a.enhancers;i&&!Array.isArray(i)&&(i=Object.values(i));let s=i??t.enhancers??[],c=a&&a.preset,u=a&&a.design,d=a&&a.icons&&typeof a.icons=="object"?a.icons:null,l="preset"in(a||{})||"design"in(a||{})||"enhancers"in(a||{});a&&typeof a=="object"&&ke(a,{log:o,context:"PDS.start"});let p,m=null;if(l){u&&typeof u=="object"&&re(u,{log:o,context:"PDS.start"});let f=String(c||"default").toLowerCase(),b=e?.[f]||Object.values(e||{}).find(x=>le(x.name)===f||String(x.name||"").toLowerCase()===f);if(!b)throw new Error(`PDS preset not found: "${c||"default"}"`);m={id:b.id||le(b.name),name:b.name||b.id||String(f)};let h=structuredClone(b);if(u&&typeof u=="object"||d){let x=u?B(u):{},w=d?B(d):null,C=w?de(x,{icons:w}):x;h=de(h,structuredClone(C))}let{mode:y,autoDefine:S,applyGlobalStyles:$,manageTheme:L,themeStorageKey:R,preloadStyles:F,criticalLayers:A,managerURL:k,manager:z,preset:E,design:W,enhancers:K,log:q,...v}=a;p={...v,design:h,preset:m.name,log:q||r}}else if(n){re(a,{log:o,context:"PDS.start"});let{log:f,...b}=a;p={design:structuredClone(b),log:f||r}}else{let f=e?.default||Object.values(e||{}).find(b=>le(b.name)==="default");if(!f)throw new Error("PDS default preset not available");m={id:f.id||"default",name:f.name||"Default"},p={design:structuredClone(f),preset:m.name,log:r}}return{generatorConfig:p,enhancers:s,presetInfo:m}}function Pe({manageTheme:a,themeStorageKey:t,applyResolvedTheme:e,setupSystemListenerIfNeeded:r}){let o="light",n=null;if(a&&typeof window<"u"){try{n=localStorage.getItem(t)||null}catch{n=null}try{e?.(n),r?.(n)}catch{}n?n==="system"?o=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":o=n:o=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}return{resolvedTheme:o,storedTheme:n}}function Oe(a,{resolvePublicAssetURL:t}){let e=!!(a?.public?.root||a?.static?.root),r=t(a);return!e&&je&&(r=je),Q(Y(r))}async function De(a,{baseEnhancers:t=[]}={}){let{autoDefineBaseURL:e="/auto-define/",autoDefinePreload:r=[],autoDefineMapper:o=null,enhancers:n=[],autoDefineOverrides:i=null,autoDefinePreferModule:s=!0}=a,c=(()=>{let d=new Map;return(t||[]).forEach(l=>d.set(l.selector,l)),(n||[]).forEach(l=>d.set(l.selector,l)),Array.from(d.values())})(),u=null;if(typeof window<"u"&&typeof document<"u"){let d=null;try{let h=await Promise.resolve().then(()=>(We(),Re));d=h?.AutoDefiner||h?.default?.AutoDefiner||h?.default||null}catch(h){console.warn("AutoDefiner not available:",h?.message||h)}let l=h=>{switch(h){case"pds-tabpanel":return"pds-tabstrip.js";default:return`${h}.js`}},{mapper:p,...m}=i&&typeof i=="object"?i:{},b={baseURL:e&&Q(Y(e,{preferModule:s})),predefine:r,scanExisting:!0,observeShadows:!0,patchAttachShadow:!0,debounceMs:16,enhancers:c,onError:(h,y)=>{if(typeof h=="string"&&h.startsWith("pds-")){let $=["pds-form","pds-drawer"].includes(h),L=y?.message?.includes("#pds/lit")||y?.message?.includes("Failed to resolve module specifier");$&&L?console.error(`\u274C PDS component <${h}> requires Lit but #pds/lit is not in import map.
3408
- See: https://github.com/Pure-Web-Foundation/pure-ds/blob/main/readme.md#lit-components-not-working`):console.warn(`\u26A0\uFE0F PDS component <${h}> not found. Assets may not be installed.`)}else console.error(`\u274C Auto-define error for <${h}>:`,y)},...m,mapper:h=>{if(customElements.get(h))return null;if(typeof o=="function")try{let y=o(h);return y===void 0?l(h):y}catch(y){return console.warn("Custom autoDefine.mapper error; falling back to default:",y?.message||y),l(h)}return l(h)}};d&&(u=new d(b),r.length>0&&typeof d.define=="function"&&await d.define(...r,{baseURL:e,mapper:b.mapper,onError:b.onError}))}return{autoDefiner:u,mergedEnhancers:c}}var ue=["light","dark"],ge=new Set(ue);function xt(a){let e=(Array.isArray(a?.themes)?a.themes.map(r=>String(r).toLowerCase()):ue).filter(r=>ge.has(r));return e.length?e:ue}function me(a,{preferDocument:t=!0}={}){let e=String(a||"").toLowerCase();if(ge.has(e))return e;if(t&&typeof document<"u"){let r=document.documentElement?.getAttribute("data-theme");if(ge.has(r))return r}return typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function he(a,t){let e=me(t);return xt(a).includes(e)}var _e=!1,_=null;function St(){if(typeof window>"u"||!window.localStorage)return null;try{let a=window.localStorage.getItem("pure-ds-config");if(!a)return null;let t=JSON.parse(a);if(t&&("preset"in t||"design"in t))return t}catch{return null}return null}function ve(a={},t={}){if(!t||typeof t!="object")return a;let e=Array.isArray(a)?[...a]:{...a};for(let[r,o]of Object.entries(t))o&&typeof o=="object"&&!Array.isArray(o)?e[r]=ve(e[r]&&typeof e[r]=="object"?e[r]:{},o):e[r]=o;return e}function $t(a){let t=St();if(!t||!a||typeof a!="object")return a;let e=t.preset,r=t.design&&typeof t.design=="object"?t.design:null;if(!e&&!r)return a;let o="preset"in a||"design"in a||"enhancers"in a,n={...a};if(e&&(n.preset=e),r)if(o){let i=a.design&&typeof a.design=="object"?a.design:{};n.design=ve(i,r)}else n=ve(a,r);return n}async function zt(a,{applyResolvedTheme:t,setupSystemListenerIfNeeded:e}){if(_e)return;let[r,o,n,i]=await Promise.all([Promise.resolve().then(()=>(ae(),$e)),Promise.resolve().then(()=>(G(),xe)),Promise.resolve().then(()=>(ye(),be)),Promise.resolve().then(()=>(He(),Ie))]),s=r?.default||r?.ontology,c=r?.findComponentForElement,u=o?.enums;_=n?.PDSQuery||n?.default||null,a.ontology=s,a.findComponentForElement=c,a.enums=u,a.common=i||{},a.presets=O,a.configRelations=we,a.enhancerMetadata=Fe,a.applyStyles=function(d){return J(d||T.instance)},a.adoptLayers=function(d,l,p){return Me(d,l,p,T.instance)},a.adoptPrimitives=function(d,l){return ze(d,l,T.instance)},a.getGenerator=async function(){return T},a.query=async function(d){if(!_){let p=await Promise.resolve().then(()=>(ye(),be));_=p?.PDSQuery||p?.default||null}return _?await new _(a).search(d):[]},a.applyLivePreset=async function(d,l={}){if(!d)return!1;if(!a.registry?.isLive)return console.warn("PDS.applyLivePreset is only available in live mode."),!1;let p=a.currentConfig||{},{design:m,preset:f,...b}=p,h={...structuredClone(B(b)),preset:d},y=pe(h,{},{presets:O,defaultLog:oe}),S=me(a.theme);if(!he(y.generatorConfig.design,S)){let F=y.presetInfo?.name||y.generatorConfig?.design?.name||d;console.warn(`PDS theme "${S}" not supported by preset "${F}".`)}p.theme&&!y.generatorConfig.theme&&(y.generatorConfig.theme=p.theme);let $=new T(y.generatorConfig);if(y.generatorConfig.design?.typography)try{await se(y.generatorConfig.design.typography)}catch(F){y.generatorConfig?.log?.("warn","Failed to load some fonts from Google Fonts:",F)}await J($);let L=y.presetInfo||{id:d,name:d};if(a.currentPreset=L,a.currentConfig=Object.freeze({...p,preset:y.generatorConfig.preset,design:structuredClone(y.generatorConfig.design),theme:y.generatorConfig.theme||p.theme}),l?.persist!==!1&&typeof window<"u"){let F="pure-ds-config";try{let A=localStorage.getItem(F),k=A?JSON.parse(A):null,z={...k&&typeof k=="object"?k:{},preset:L.id||d,design:structuredClone(y.generatorConfig.design||{})};localStorage.setItem(F,JSON.stringify(z))}catch(A){y.generatorConfig?.log?.("warn","Failed to store preset:",A)}}return!0},Object.getOwnPropertyDescriptor(a,"compiled")||Object.defineProperty(a,"compiled",{get(){return a.registry?.isLive&&T.instance?T.instance.compiled:null},enumerable:!0,configurable:!1}),a.preloadCritical=function(d,l={}){if(typeof window>"u"||!document.head||!d)return;let{theme:p,layers:m=["tokens"]}=l;try{let f=p||"light";(p==="system"||!p)&&(f=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),document.documentElement.setAttribute("data-theme",f);let b=d.design?{...d,theme:f}:{design:d,theme:f},h=new T(b),y=m.map(S=>{try{return h.css?.[S]||""}catch{return""}}).filter(S=>S.trim()).join(`
3409
- `);if(y){let S=document.head.querySelector("style[data-pds-preload]");S&&S.remove();let $=document.createElement("style");$.setAttribute("data-pds-preload",""),$.textContent=y,document.head.insertBefore($,document.head.firstChild)}}catch(f){console.warn("PDS preload failed:",f)}},_e=!0}async function Mt(a,t,{emitReady:e,applyResolvedTheme:r,setupSystemListenerIfNeeded:o}){if(!t||typeof t!="object")throw new Error("PDS.start({ mode: 'live', ... }) requires a valid configuration object");if(t=$t(t),await zt(a,{applyResolvedTheme:r,setupSystemListenerIfNeeded:o}),Ne(a),typeof document<"u"&&document.adoptedStyleSheets){let l=`
3407
+ `.trim()}];var Te="pds",ut=/^([a-z][a-z0-9+\-.]*:)?\/\//i,Ce=/^[a-z]:/i;function I(a=""){return a.endsWith("/")?a:`${a}/`}function gt(a="",t=Te){let e=a.replace(/\/+$/,"");return new RegExp(`(?:^|/)${t}$`,"i").test(e)?e:`${e}/${t}`}function mt(a){return a.replace(/^\.\/+/,"")}function ht(a){return Ce.test(a)?a.replace(Ce,"").replace(/^\/+/,""):a}function ft(a){return a.startsWith("public/")?a.substring(7):a}function Le(a,t={}){let e=t.segment||Te,r=t.defaultRoot||`/assets/${e}/`,o=a?.public&&a.public?.root||a?.static&&a.static?.root||null;if(!o||typeof o!="string")return I(r);let n=o.trim();return n?(n=n.replace(/\\/g,"/"),n=gt(n,e),n=I(n),ut.test(n)?n:(n=mt(n),n=ht(n),n.startsWith("/")||(n=ft(n),n.startsWith("/")||(n=`/${n}`),n=n.replace(/\/+/g,(i,s)=>s===0?i:"/")),I(n))):I(r)}function Ae(a){let t=a.replace(/['"]/g,"").trim();if(["system-ui","-apple-system","sans-serif","serif","monospace","cursive","fantasy","ui-sans-serif","ui-serif","ui-monospace","ui-rounded"].includes(t.toLowerCase()))return!0;let o=document.createElement("canvas").getContext("2d");if(!o)return!1;let n="mmmmmmmmmmlli",i="72px",s="monospace";o.font=`${i} ${s}`;let c=o.measureText(n).width;o.font=`${i} "${t}", ${s}`;let u=o.measureText(n).width;return c!==u}function bt(a){return a?a.split(",").map(r=>r.trim())[0].replace(/['"]/g,"").trim():null}async function Re(a,t={}){if(!a)return Promise.resolve();let{weights:e=[400,500,600,700],italic:r=!1}=t,o=bt(a);if(!o||Ae(o))return Promise.resolve();let n=encodeURIComponent(o);return document.querySelector(`link[href*="fonts.googleapis.com"][href*="${n}"]`)?(console.log(`Font "${o}" is already loading or loaded`),Promise.resolve()):(console.log(`Loading font "${o}" from Google Fonts...`),new Promise((s,c)=>{let u=document.createElement("link");u.rel="stylesheet";let d=r?`ital,wght@0,${e.join(";0,")};1,${e.join(";1,")}`:`wght@${e.join(";")}`;u.href=`https://fonts.googleapis.com/css2?family=${n}:${d}&display=swap`,u.setAttribute("data-font-loader",o),u.onload=()=>{console.log(`Successfully loaded font "${o}"`),s()},u.onerror=()=>{console.warn(`Failed to load font "${o}" from Google Fonts`),c(new Error(`Failed to load font: ${o}`))},document.head.appendChild(u),setTimeout(()=>{Ae(o)||console.warn(`Font "${o}" did not load within timeout`),s()},5e3)}))}async function se(a){if(!a)return Promise.resolve();let t=new Set;a.fontFamilyHeadings&&t.add(a.fontFamilyHeadings),a.fontFamilyBody&&t.add(a.fontFamilyBody),a.fontFamilyMono&&t.add(a.fontFamilyMono);let e=Array.from(t).map(r=>Re(r).catch(o=>{console.warn(`Could not load font: ${r}`,o)}));await Promise.all(e)}var vt=/^[a-z][a-z0-9+\-.]*:\/\//i,H=(()=>{try{return import.meta.url}catch{return}})(),Q=a=>typeof a=="string"&&a.length&&!a.endsWith("/")?`${a}/`:a;function Y(a,t={}){if(!a||vt.test(a))return a;let{preferModule:e=!0}=t,r=()=>{if(!H)return null;try{return new URL(a,H).href}catch{return null}},o=()=>{if(typeof window>"u"||!window.location?.origin)return null;try{return new URL(a,window.location.origin).href}catch{return null}};return(e?r()||o():o()||r())||a}var Be=(()=>{if(H)try{let a=new URL(H);if(/\/public\/assets\/js\//.test(a.pathname))return new URL("../pds/",H).href}catch{return}})(),Ne=!1;function Pe(a){Ne||typeof document>"u"||(Ne=!0,a.addEventListener("pds:ready",t=>{let e=t.detail?.mode;e&&document.documentElement.classList.add(`pds-${e}`,"pds-ready")}))}function de(a={},t={}){if(!t||typeof t!="object")return a;let e=Array.isArray(a)?[...a]:{...a};for(let[r,o]of Object.entries(t))o&&typeof o=="object"&&!Array.isArray(o)?e[r]=de(e[r]&&typeof e[r]=="object"?e[r]:{},o):e[r]=o;return e}function le(a=""){return String(a).toLowerCase().replace(/&/g," and ").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}function B(a){if(a==null)return a;if(typeof a=="function")return;if(typeof a!="object")return a;if(Array.isArray(a))return a.map(e=>B(e)).filter(e=>e!==void 0);let t={};for(let e in a)if(a.hasOwnProperty(e)){let r=a[e];if(typeof r!="function"){let o=B(r);o!==void 0&&(t[e]=o)}}return t}function pe(a={},t={},{presets:e,defaultLog:r}){let o=a&&typeof a.log=="function"?a.log:r,n=typeof a=="object"&&("colors"in a||"typography"in a||"spatialRhythm"in a||"shape"in a||"behavior"in a||"layout"in a||"advanced"in a||"a11y"in a||"components"in a||"icons"in a),i=a&&a.enhancers;i&&!Array.isArray(i)&&(i=Object.values(i));let s=i??t.enhancers??[],c=a&&a.preset,u=a&&a.design,d=a&&a.icons&&typeof a.icons=="object"?a.icons:null,l="preset"in(a||{})||"design"in(a||{})||"enhancers"in(a||{});a&&typeof a=="object"&&ke(a,{log:o,context:"PDS.start"});let p,m=null;if(l){u&&typeof u=="object"&&re(u,{log:o,context:"PDS.start"});let f=String(c||"default").toLowerCase(),b=e?.[f]||Object.values(e||{}).find(x=>le(x.name)===f||String(x.name||"").toLowerCase()===f);if(!b)throw new Error(`PDS preset not found: "${c||"default"}"`);m={id:b.id||le(b.name),name:b.name||b.id||String(f)};let h=structuredClone(b);if(u&&typeof u=="object"||d){let x=u?B(u):{},w=d?B(d):null,C=w?de(x,{icons:w}):x;h=de(h,structuredClone(C))}let{mode:y,autoDefine:S,applyGlobalStyles:$,manageTheme:L,themeStorageKey:R,preloadStyles:F,criticalLayers:A,managerURL:k,manager:z,preset:E,design:W,enhancers:K,log:q,...v}=a;p={...v,design:h,preset:m.name,log:q||r}}else if(n){re(a,{log:o,context:"PDS.start"});let{log:f,...b}=a;p={design:structuredClone(b),log:f||r}}else{let f=e?.default||Object.values(e||{}).find(b=>le(b.name)==="default");if(!f)throw new Error("PDS default preset not available");m={id:f.id||"default",name:f.name||"Default"},p={design:structuredClone(f),preset:m.name,log:r}}return{generatorConfig:p,enhancers:s,presetInfo:m}}function Oe({manageTheme:a,themeStorageKey:t,applyResolvedTheme:e,setupSystemListenerIfNeeded:r}){let o="light",n=null;if(a&&typeof window<"u"){try{n=localStorage.getItem(t)||null}catch{n=null}try{e?.(n),r?.(n)}catch{}n?n==="system"?o=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":o=n:o=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}return{resolvedTheme:o,storedTheme:n}}function De(a,{resolvePublicAssetURL:t}){let e=!!(a?.public?.root||a?.static?.root),r=t(a);return!e&&Be&&(r=Be),Q(Y(r))}async function Ue(a,{baseEnhancers:t=[]}={}){let{autoDefineBaseURL:e="/auto-define/",autoDefinePreload:r=[],autoDefineMapper:o=null,enhancers:n=[],autoDefineOverrides:i=null,autoDefinePreferModule:s=!0}=a,c=(()=>{let d=new Map;return(t||[]).forEach(l=>d.set(l.selector,l)),(n||[]).forEach(l=>d.set(l.selector,l)),Array.from(d.values())})(),u=null;if(typeof window<"u"&&typeof document<"u"){let d=null;try{let h=await Promise.resolve().then(()=>(je(),We));d=h?.AutoDefiner||h?.default?.AutoDefiner||h?.default||null}catch(h){console.warn("AutoDefiner not available:",h?.message||h)}let l=h=>{switch(h){case"pds-tabpanel":return"pds-tabstrip.js";default:return`${h}.js`}},{mapper:p,...m}=i&&typeof i=="object"?i:{},b={baseURL:e&&Q(Y(e,{preferModule:s})),predefine:r,scanExisting:!0,observeShadows:!0,patchAttachShadow:!0,debounceMs:16,enhancers:c,onError:(h,y)=>{if(typeof h=="string"&&h.startsWith("pds-")){let $=["pds-form","pds-drawer"].includes(h),L=y?.message?.includes("#pds/lit")||y?.message?.includes("Failed to resolve module specifier");$&&L?console.error(`\u274C PDS component <${h}> requires Lit but #pds/lit is not in import map.
3408
+ See: https://github.com/Pure-Web-Foundation/pure-ds/blob/main/readme.md#lit-components-not-working`):console.warn(`\u26A0\uFE0F PDS component <${h}> not found. Assets may not be installed.`)}else console.error(`\u274C Auto-define error for <${h}>:`,y)},...m,mapper:h=>{if(customElements.get(h))return null;if(typeof o=="function")try{let y=o(h);return y===void 0?l(h):y}catch(y){return console.warn("Custom autoDefine.mapper error; falling back to default:",y?.message||y),l(h)}return l(h)}};d&&(u=new d(b),r.length>0&&typeof d.define=="function"&&await d.define(...r,{baseURL:e,mapper:b.mapper,onError:b.onError}))}return{autoDefiner:u,mergedEnhancers:c}}var ue=["light","dark"],ge=new Set(ue);function xt(a){let e=(Array.isArray(a?.themes)?a.themes.map(r=>String(r).toLowerCase()):ue).filter(r=>ge.has(r));return e.length?e:ue}function me(a,{preferDocument:t=!0}={}){let e=String(a||"").toLowerCase();if(ge.has(e))return e;if(t&&typeof document<"u"){let r=document.documentElement?.getAttribute("data-theme");if(ge.has(r))return r}return typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function he(a,t){let e=me(t);return xt(a).includes(e)}var qe=!1,_=null;function St(){if(typeof window>"u"||!window.localStorage)return null;try{let a=window.localStorage.getItem("pure-ds-config");if(!a)return null;let t=JSON.parse(a);if(t&&("preset"in t||"design"in t))return t}catch{return null}return null}function ve(a={},t={}){if(!t||typeof t!="object")return a;let e=Array.isArray(a)?[...a]:{...a};for(let[r,o]of Object.entries(t))o&&typeof o=="object"&&!Array.isArray(o)?e[r]=ve(e[r]&&typeof e[r]=="object"?e[r]:{},o):e[r]=o;return e}function $t(a){let t=St();if(!t||!a||typeof a!="object")return a;let e=t.preset,r=t.design&&typeof t.design=="object"?t.design:null;if(!e&&!r)return a;let o="preset"in a||"design"in a||"enhancers"in a,n={...a};if(e&&(n.preset=e),r)if(o){let i=a.design&&typeof a.design=="object"?a.design:{};n.design=ve(i,r)}else n=ve(a,r);return n}async function zt(a,{applyResolvedTheme:t,setupSystemListenerIfNeeded:e}){if(qe)return;let[r,o,n,i]=await Promise.all([Promise.resolve().then(()=>(ae(),$e)),Promise.resolve().then(()=>(G(),xe)),Promise.resolve().then(()=>(ye(),be)),Promise.resolve().then(()=>(_e(),He))]),s=r?.default||r?.ontology,c=r?.findComponentForElement,u=o?.enums;_=n?.PDSQuery||n?.default||null,a.ontology=s,a.findComponentForElement=c,a.enums=u,a.common=i||{},a.presets=O,a.configRelations=we,a.enhancerMetadata=Fe,a.applyStyles=function(d){return J(d||T.instance)},a.adoptLayers=function(d,l,p){return Me(d,l,p,T.instance)},a.adoptPrimitives=function(d,l){return ze(d,l,T.instance)},a.getGenerator=async function(){return T},a.query=async function(d){if(!_){let p=await Promise.resolve().then(()=>(ye(),be));_=p?.PDSQuery||p?.default||null}return _?await new _(a).search(d):[]},a.applyLivePreset=async function(d,l={}){if(!d)return!1;if(!a.registry?.isLive)return console.warn("PDS.applyLivePreset is only available in live mode."),!1;let p=a.currentConfig||{},{design:m,preset:f,...b}=p,h={...structuredClone(B(b)),preset:d},y=pe(h,{},{presets:O,defaultLog:oe}),S=me(a.theme);if(!he(y.generatorConfig.design,S)){let F=y.presetInfo?.name||y.generatorConfig?.design?.name||d;console.warn(`PDS theme "${S}" not supported by preset "${F}".`)}p.theme&&!y.generatorConfig.theme&&(y.generatorConfig.theme=p.theme);let $=new T(y.generatorConfig);if(y.generatorConfig.design?.typography)try{await se(y.generatorConfig.design.typography)}catch(F){y.generatorConfig?.log?.("warn","Failed to load some fonts from Google Fonts:",F)}await J($);let L=y.presetInfo||{id:d,name:d};if(a.currentPreset=L,a.currentConfig=Object.freeze({...p,preset:y.generatorConfig.preset,design:structuredClone(y.generatorConfig.design),theme:y.generatorConfig.theme||p.theme}),l?.persist!==!1&&typeof window<"u"){let F="pure-ds-config";try{let A=localStorage.getItem(F),k=A?JSON.parse(A):null,z={...k&&typeof k=="object"?k:{},preset:L.id||d,design:structuredClone(y.generatorConfig.design||{})};localStorage.setItem(F,JSON.stringify(z))}catch(A){y.generatorConfig?.log?.("warn","Failed to store preset:",A)}}return!0},Object.getOwnPropertyDescriptor(a,"compiled")||Object.defineProperty(a,"compiled",{get(){return a.registry?.isLive&&T.instance?T.instance.compiled:null},enumerable:!0,configurable:!1}),a.preloadCritical=function(d,l={}){if(typeof window>"u"||!document.head||!d)return;let{theme:p,layers:m=["tokens"]}=l;try{let f=p||"light";(p==="system"||!p)&&(f=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),document.documentElement.setAttribute("data-theme",f);let b=d.design?{...d,theme:f}:{design:d,theme:f},h=new T(b),y=m.map(S=>{try{return h.css?.[S]||""}catch{return""}}).filter(S=>S.trim()).join(`
3409
+ `);if(y){let S=document.head.querySelector("style[data-pds-preload]");S&&S.remove();let $=document.createElement("style");$.setAttribute("data-pds-preload",""),$.textContent=y,document.head.insertBefore($,document.head.firstChild)}}catch(f){console.warn("PDS preload failed:",f)}},qe=!0}async function Mt(a,t,{emitReady:e,applyResolvedTheme:r,setupSystemListenerIfNeeded:o}){if(!t||typeof t!="object")throw new Error("PDS.start({ mode: 'live', ... }) requires a valid configuration object");if(t=$t(t),await zt(a,{applyResolvedTheme:r,setupSystemListenerIfNeeded:o}),Pe(a),typeof document<"u"&&document.adoptedStyleSheets){let l=`
3410
3410
  html { opacity: 0; }
3411
3411
  html.pds-ready { opacity: 1; transition: opacity 0.3s ease-in; }
3412
- `;try{if(!document.adoptedStyleSheets.some(m=>m._pdsFouc)){let m=new CSSStyleSheet;m.replaceSync(l),m._pdsFouc=!0,document.adoptedStyleSheets=[m,...document.adoptedStyleSheets]}}catch(p){if(console.warn("Constructable stylesheets not supported, using <style> tag fallback:",p),!document.head.querySelector("style[data-pds-fouc]")){let f=document.createElement("style");f.setAttribute("data-pds-fouc",""),f.textContent=l,document.head.insertBefore(f,document.head.firstChild)}}}let n=t.applyGlobalStyles??!0,i=t.manageTheme??!0,s=t.themeStorageKey??"pure-ds-theme",c=t.preloadStyles??!1,u=t.criticalLayers??["tokens","primitives"],d=t&&t.autoDefine||null;try{let{resolvedTheme:l}=Pe({manageTheme:i,themeStorageKey:s,applyResolvedTheme:r,setupSystemListenerIfNeeded:o}),p=pe(t,{},{presets:O,defaultLog:oe});if(i&&!he(p.generatorConfig.design,l)){let k=p.presetInfo?.name||p.generatorConfig?.design?.name||p.generatorConfig?.preset||"current preset";console.warn(`PDS theme "${l}" not supported by preset "${k}".`)}let m=p.enhancers,{log:f,...b}=p.generatorConfig,h=structuredClone(b);h.log=f,i&&(h.theme=l);let y=new T(h);if(h.design?.typography)try{await se(h.design.typography)}catch(k){h?.log?.("warn","Failed to load some fonts from Google Fonts:",k)}if(c&&typeof window<"u"&&document.head)try{let k=u.map(z=>{try{return y.css?.[z]||""}catch(E){return h?.log?.("warn",`Failed to generate critical CSS for layer "${z}":`,E),""}}).filter(z=>z.trim()).join(`
3413
- `);if(k){let z=document.head.querySelector("style[data-pds-critical]");z&&z.remove();let E=document.createElement("style");E.setAttribute("data-pds-critical",""),E.textContent=k;let W=document.head.querySelector('meta[charset], meta[name="viewport"]');W?W.parentNode.insertBefore(E,W.nextSibling):document.head.insertBefore(E,document.head.firstChild)}}catch(k){h?.log?.("warn","Failed to preload critical styles:",k)}a.registry.setLiveMode(),p.presetInfo?.name?h?.log?.("log",`PDS live with preset "${p.presetInfo.name}"`):h?.log?.("log","PDS live with custom config"),n&&(await J(T.instance),typeof window<"u"&&setTimeout(()=>{let k=document.head.querySelector("style[data-pds-critical]");k&&k.remove();let z=document.head.querySelector("style[data-pds-preload]");z&&z.remove();let E=document.getElementById("pds-runtime-stylesheet");E&&E.remove()},100));let S=Oe(t,{resolvePublicAssetURL:Le}),$;d&&d.baseURL?$=Q(Y(d.baseURL,{preferModule:!1})):$=`${S}components/`;let L=null,R=[];try{let k=await De({autoDefineBaseURL:$,autoDefinePreload:d&&Array.isArray(d.predefine)&&d.predefine||[],autoDefineMapper:d&&typeof d.mapper=="function"&&d.mapper||null,enhancers:m,autoDefineOverrides:d||null,autoDefinePreferModule:!(d&&d.baseURL)},{baseEnhancers:Ee});L=k.autoDefiner,R=k.mergedEnhancers||[]}catch(k){h?.log?.("error","\u274C Failed to initialize AutoDefiner/Enhancers:",k)}let F=y?.options||h,A=B(t);if(a.currentConfig=Object.freeze({mode:"live",...structuredClone(A),design:structuredClone(p.generatorConfig.design),preset:p.generatorConfig.preset,theme:l,enhancers:R}),t?.liveEdit&&typeof document<"u")try{document.querySelector("pds-live-edit")||setTimeout(()=>{let k=document.createElement("pds-live-edit");document.body.appendChild(k)},1e3)}catch(k){h?.log?.("warn","Live editor failed to start:",k)}return e({mode:"live",generator:y,config:F,theme:l,autoDefiner:L}),{generator:y,config:F,theme:l,autoDefiner:L}}catch(l){throw a.dispatchEvent(new CustomEvent("pds:error",{detail:{error:l}})),l}}export{Mt as startLive};
3412
+ `;try{if(!document.adoptedStyleSheets.some(m=>m._pdsFouc)){let m=new CSSStyleSheet;m.replaceSync(l),m._pdsFouc=!0,document.adoptedStyleSheets=[m,...document.adoptedStyleSheets]}}catch(p){if(console.warn("Constructable stylesheets not supported, using <style> tag fallback:",p),!document.head.querySelector("style[data-pds-fouc]")){let f=document.createElement("style");f.setAttribute("data-pds-fouc",""),f.textContent=l,document.head.insertBefore(f,document.head.firstChild)}}}let n=t.applyGlobalStyles??!0,i=t.manageTheme??!0,s=t.themeStorageKey??"pure-ds-theme",c=t.preloadStyles??!1,u=t.criticalLayers??["tokens","primitives"],d=t&&t.autoDefine||null;try{let{resolvedTheme:l}=Oe({manageTheme:i,themeStorageKey:s,applyResolvedTheme:r,setupSystemListenerIfNeeded:o}),p=pe(t,{},{presets:O,defaultLog:oe});if(i&&!he(p.generatorConfig.design,l)){let k=p.presetInfo?.name||p.generatorConfig?.design?.name||p.generatorConfig?.preset||"current preset";console.warn(`PDS theme "${l}" not supported by preset "${k}".`)}let m=p.enhancers,{log:f,...b}=p.generatorConfig,h=structuredClone(b);h.log=f,i&&(h.theme=l);let y=new T(h);if(h.design?.typography)try{await se(h.design.typography)}catch(k){h?.log?.("warn","Failed to load some fonts from Google Fonts:",k)}if(c&&typeof window<"u"&&document.head)try{let k=u.map(z=>{try{return y.css?.[z]||""}catch(E){return h?.log?.("warn",`Failed to generate critical CSS for layer "${z}":`,E),""}}).filter(z=>z.trim()).join(`
3413
+ `);if(k){let z=document.head.querySelector("style[data-pds-critical]");z&&z.remove();let E=document.createElement("style");E.setAttribute("data-pds-critical",""),E.textContent=k;let W=document.head.querySelector('meta[charset], meta[name="viewport"]');W?W.parentNode.insertBefore(E,W.nextSibling):document.head.insertBefore(E,document.head.firstChild)}}catch(k){h?.log?.("warn","Failed to preload critical styles:",k)}a.registry.setLiveMode(),p.presetInfo?.name?h?.log?.("log",`PDS live with preset "${p.presetInfo.name}"`):h?.log?.("log","PDS live with custom config"),n&&(await J(T.instance),typeof window<"u"&&setTimeout(()=>{let k=document.head.querySelector("style[data-pds-critical]");k&&k.remove();let z=document.head.querySelector("style[data-pds-preload]");z&&z.remove();let E=document.getElementById("pds-runtime-stylesheet");E&&E.remove()},100));let S=De(t,{resolvePublicAssetURL:Le}),$;d&&d.baseURL?$=Q(Y(d.baseURL,{preferModule:!1})):$=`${S}components/`;let L=null,R=[];try{let k=await Ue({autoDefineBaseURL:$,autoDefinePreload:d&&Array.isArray(d.predefine)&&d.predefine||[],autoDefineMapper:d&&typeof d.mapper=="function"&&d.mapper||null,enhancers:m,autoDefineOverrides:d||null,autoDefinePreferModule:!(d&&d.baseURL)},{baseEnhancers:Ee});L=k.autoDefiner,R=k.mergedEnhancers||[]}catch(k){h?.log?.("error","\u274C Failed to initialize AutoDefiner/Enhancers:",k)}let F=y?.options||h,A=B(t);if(a.currentConfig=Object.freeze({mode:"live",...structuredClone(A),design:structuredClone(p.generatorConfig.design),preset:p.generatorConfig.preset,theme:l,enhancers:R}),t?.liveEdit&&typeof document<"u")try{document.querySelector("pds-live-edit")||setTimeout(()=>{let k=document.createElement("pds-live-edit");document.body.appendChild(k)},1e3)}catch(k){h?.log?.("warn","Live editor failed to start:",k)}return e({mode:"live",generator:y,config:F,theme:l,autoDefiner:L}),{generator:y,config:F,theme:l,autoDefiner:L}}catch(l){throw a.dispatchEvent(new CustomEvent("pds:error",{detail:{error:l}})),l}}export{Re as loadGoogleFont,Mt as startLive};