@pure-ds/core 0.7.46 → 0.7.48

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/custom-elements.json +193 -2
  2. package/dist/types/public/assets/pds/components/pds-toaster.d.ts.map +1 -1
  3. package/dist/types/src/js/pds-core/pds-config.d.ts +4 -5
  4. package/dist/types/src/js/pds-core/pds-config.d.ts.map +1 -1
  5. package/dist/types/src/js/pds-core/pds-enhancers.d.ts.map +1 -1
  6. package/dist/types/src/js/pds-core/pds-generator.d.ts +16 -2
  7. package/dist/types/src/js/pds-core/pds-generator.d.ts.map +1 -1
  8. package/dist/types/src/js/pds-core/pds-live.d.ts.map +1 -1
  9. package/package.json +1 -1
  10. package/packages/pds-cli/bin/pds-mcp-health.js +1 -1
  11. package/packages/pds-cli/bin/pds-mcp-server.js +1 -1
  12. package/packages/pds-cli/bin/pds-setup-mcp.js +1 -1
  13. package/packages/pds-cli/bin/templates/bootstrap/esbuild-dev.cjs +65 -6
  14. package/packages/pds-cli/bin/templates/bootstrap/esbuild-dev.mjs +65 -6
  15. package/packages/pds-cli/bin/templates/bootstrap/public/assets/js/dev-reload.js +68 -9
  16. package/public/assets/js/app.js +1 -1
  17. package/public/assets/js/pds-enhancers.js +1 -1
  18. package/public/assets/js/pds-manager.js +450 -275
  19. package/public/assets/pds/components/pds-live-edit.js +1 -1
  20. package/public/assets/pds/components/pds-toaster.js +30 -4
  21. package/public/assets/pds/core/pds-enhancers.js +1 -1
  22. package/public/assets/pds/core/pds-manager.js +450 -275
  23. package/public/assets/pds/pds-css-complete.json +544 -55
  24. package/public/assets/pds/pds.css-data.json +154 -0
  25. package/public/assets/pds/vscode-custom-data.json +30 -0
  26. package/readme.md +15 -1
  27. package/src/js/pds-core/pds-config.js +63 -10
  28. package/src/js/pds-core/pds-enhancers.js +6 -1
  29. package/src/js/pds-core/pds-generator.js +773 -212
  30. package/src/js/pds-core/pds-live.js +3 -4
  31. package/src/js/pds.js +4 -4
@@ -1,7 +1,7 @@
1
- var qn=Object.defineProperty;var _t=(e,t)=>()=>(e&&(t=e(e=0)),t);var Ft=(e,t)=>{for(var r in t)qn(e,r,{get:t[r],enumerable:!0})};var br={};Ft(br,{enums:()=>w});var w,Fe=_t(()=>{w={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 Tr={};Ft(Tr,{default:()=>no,findComponentForElement:()=>Xn,getAllSelectors:()=>Qn,getAllTags:()=>ro,getByCategory:()=>to,ontology:()=>q,searchOntology:()=>eo});function de(e,t){if(!e||!t)return!1;try{return e.matches(t)}catch{return!1}}function Er(e,t){if(!e||!t||!e.closest)return null;try{return e.closest(t)}catch{return null}}function Xn(e,{maxDepth:t=5}={}){if(!e||e.closest&&e.closest(".showcase-toc"))return null;let r=e,n=0;for(;r&&n<t;){if(n++,r.tagName==="DS-SHOWCASE")return null;if(r.classList&&r.classList.contains("showcase-section")){r=r.parentElement;continue}for(let a of PDS.ontology.enhancements){let i=a.selector||a;if(de(r,i))return{element:r,componentType:"enhanced-component",displayName:a.description||i,id:a.id}}if(r.tagName==="FIELDSET"){let a=r.getAttribute("role");if(a==="group"||a==="radiogroup")return{element:r,componentType:"form-group",displayName:a==="radiogroup"?"radio group":"form group"}}if(r.tagName==="LABEL"&&r.querySelector&&r.querySelector("input,select,textarea"))return{element:r,componentType:"form-control",displayName:"label with input"};let o=r.closest?r.closest("label"):null;if(o&&o.querySelector&&o.querySelector("input,select,textarea"))return{element:o,componentType:"form-control",displayName:"label with input"};for(let a of PDS.ontology.primitives){for(let i of a.selectors||[]){let s=String(i||"").trim();if(s.includes("*")){if(s.startsWith(".")){let c=s.slice(1).replace(/\*/g,"");if(r.classList&&Array.from(r.classList).some(u=>u.startsWith(c)))return{element:r,componentType:"pds-primitive",displayName:a.name||a.id,id:a.id,tags:a.tags};let d=r.parentElement,l=0;for(;d&&l<t;){if(d.classList&&Array.from(d.classList).some(u=>u.startsWith(c))&&d.tagName!=="DS-SHOWCASE")return{element:d,componentType:"pds-primitive",displayName:a.name||a.id,id:a.id,tags:a.tags};d=d.parentElement,l++}continue}continue}if(de(r,s))return{element:r,componentType:"pds-primitive",displayName:a.name||a.id,id:a.id,tags:a.tags};let p=Er(r,s);if(p&&p.tagName!=="DS-SHOWCASE")return{element:p,componentType:"pds-primitive",displayName:a.name||a.id,id:a.id,tags:a.tags}}if(r.classList){let i=Array.from(r.classList);for(let s of a.selectors||[])if(typeof s=="string"&&s.includes("*")&&s.startsWith(".")){let p=s.slice(1).replace(/\*/g,"");if(i.some(c=>c.startsWith(p)))return{element:r,componentType:"pds-primitive",displayName:a.name||a.id,id:a.id,tags:a.tags}}}}for(let a of PDS.ontology.layoutPatterns||[])for(let i of a.selectors||[]){let s=String(i||"").trim();if(s.includes("*")){if(s.startsWith(".")){let c=s.slice(1).replace(/\*/g,"");if(r.classList&&Array.from(r.classList).some(d=>d.startsWith(c)))return{element:r,componentType:"layout-pattern",displayName:a.name||a.id,id:a.id,tags:a.tags}}continue}if(de(r,s))return{element:r,componentType:"layout-pattern",displayName:a.name||a.id,id:a.id,tags:a.tags};let p=Er(r,s);if(p&&p.tagName!=="DS-SHOWCASE")return{element:p,componentType:"layout-pattern",displayName:a.name||a.id,id:a.id,tags:a.tags}}if(r.tagName&&r.tagName.includes("-")){let a=r.tagName.toLowerCase(),i=PDS.ontology.components.find(s=>s.selectors.includes(a));return{element:r,componentType:"web-component",displayName:i?.name||a,id:i?.id||a,tags:i?.tags}}if(r.tagName==="BUTTON"){let a=r.querySelector&&r.querySelector("pds-icon");return{element:r,componentType:"button",displayName:a?"button with icon":"button",id:"button"}}if(de(r,"pds-icon")||r.closest&&r.closest("pds-icon")){let a=de(r,"pds-icon")?r:r.closest("pds-icon");return{element:a,componentType:"icon",displayName:`pds-icon (${a.getAttribute&&a.getAttribute("icon")||"unknown"})`,id:"pds-icon"}}if(de(r,"nav[data-dropdown]")||r.closest&&r.closest("nav[data-dropdown]"))return{element:de(r,"nav[data-dropdown]")?r:r.closest("nav[data-dropdown]"),componentType:"navigation",displayName:"dropdown menu",id:"dropdown"};r=r.parentElement}return null}function Qn(){let e=[];for(let t of PDS.ontology.primitives)e.push(...t.selectors||[]);for(let t of PDS.ontology.components)e.push(...t.selectors||[]);for(let t of PDS.ontology.layoutPatterns||[])e.push(...t.selectors||[]);return Array.from(new Set(e))}function eo(e,t={}){let r=e.toLowerCase(),n=[],o=(a,i)=>{for(let s of a)(s.id?.toLowerCase().includes(r)||s.name?.toLowerCase().includes(r)||s.description?.toLowerCase().includes(r)||s.tags?.some(c=>c.toLowerCase().includes(r))||s.category?.toLowerCase().includes(r)||s.selectors?.some(c=>c.toLowerCase().includes(r)))&&n.push({...s,type:i})};return(!t.type||t.type==="primitive")&&o(q.primitives,"primitive"),(!t.type||t.type==="component")&&o(q.components,"component"),(!t.type||t.type==="layout")&&o(q.layoutPatterns,"layout"),(!t.type||t.type==="enhancement")&&o(q.enhancements,"enhancement"),n}function to(e){let t=e.toLowerCase();return{primitives:q.primitives.filter(r=>r.category===t),components:q.components.filter(r=>r.category===t),layouts:q.layoutPatterns.filter(r=>r.category===t)}}function ro(){let e=new Set;return q.primitives.forEach(t=>t.tags?.forEach(r=>e.add(r))),q.components.forEach(t=>t.tags?.forEach(r=>e.add(r))),q.layoutPatterns.forEach(t=>t.tags?.forEach(r=>e.add(r))),q.enhancements.forEach(t=>t.tags?.forEach(r=>e.add(r))),Array.from(e).sort()}var q,no,Bt=_t(()=>{q={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-danger",".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. Use data-dropdown-close on clickable descendants to dismiss on selection.",tags:["menu","interactive","navigation","dismiss","close"]},{id:"dropdown-close",selector:"[data-dropdown-close]",description:"Declarative close marker for nav[data-dropdown] panels; clicking marked targets closes the open dropdown.",tags:["dropdown","menu","dismiss","close","attribute"]},{id:"toggle",selector:"label[data-toggle]",description:"Toggle switch from checkbox",tags:["switch","boolean","form"]},{id:"color-input",selector:"label[data-color]",description:"Enhanced color input with swatch shell and hex output",tags:["color","input","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-danger","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"]}};no=q});var ct={};Ft(ct,{deepMerge:()=>Zr,fragmentFromTemplateLike:()=>Xo,isObject:()=>lt,parseHTML:()=>rr});function lt(e){return e&&typeof e=="object"&&!Array.isArray(e)}function Zr(e,t){let r={...e};return lt(e)&&lt(t)&&Object.keys(t).forEach(n=>{lt(t[n])?n in e?r[n]=Zr(e[n],t[n]):Object.assign(r,{[n]:t[n]}):Object.assign(r,{[n]:t[n]})}),r}function Xo(e){let t=Array.isArray(e?.strings)?e.strings:[],r=Array.isArray(e?.values)?e.values:[],n=new Set,o=[],a=/(\s)(\.[\w-]+)=\s*$/;for(let l=0;l<t.length;l+=1){let u=t[l]??"",g=u.match(a);if(g&&l<r.length){let b=g[2].slice(1),f=`pds-val-${l}`;u=u.replace(a,`$1data-pds-prop="${b}:${f}"`),n.add(l)}o.push(u),l<r.length&&!n.has(l)&&o.push(`<!--pds-val-${l}-->`)}let i=document.createElement("template");i.innerHTML=o.join("");let s=(l,u)=>{let g=l.parentNode;if(!g)return;if(u==null){g.removeChild(l);return}let m=b=>{if(b!=null){if(b instanceof Node){g.insertBefore(b,l);return}if(Array.isArray(b)){b.forEach(f=>m(f));return}g.insertBefore(document.createTextNode(String(b)),l)}};m(u),g.removeChild(l)},p=document.createTreeWalker(i.content,NodeFilter.SHOW_COMMENT),c=[];for(;p.nextNode();){let l=p.currentNode;l?.nodeValue?.startsWith("pds-val-")&&c.push(l)}return c.forEach(l=>{let u=Number(l.nodeValue.replace("pds-val-",""));s(l,r[u])}),i.content.querySelectorAll("*").forEach(l=>{let u=l.getAttribute("data-pds-prop");if(!u)return;let[g,m]=u.split(":"),b=Number(String(m).replace("pds-val-",""));g&&Number.isInteger(b)&&(l[g]=r[b]),l.removeAttribute("data-pds-prop")}),i.content}function rr(e){return new DOMParser().parseFromString(e,"text/html").body.childNodes}var nr=_t(()=>{});Fe();var re="any",Ie={type:"object",allowUnknown:!1,properties:{id:{type:"string",minLength:1,maxLength:64},name:{type:"string",minLength:1,maxLength:80},tags:{type:"array",uniqueItems:!0,items:{type:"string"}},themes:{type:"array",uniqueItems:!0,items:{type:"string",oneOf:[{const:"light",title:"Light"},{const:"dark",title:"Dark"},{const:"system",title:"System"}]}},description:{type:"string",maxLength:500},options:{type:"object",allowUnknown:!0,properties:{liquidGlassEffects:{type:"boolean"},backgroundMesh:{type:"number"}}},form:{type:"object",allowUnknown:!0,properties:{options:{type:"object",allowUnknown:!0,properties:{widgets:{type:"object",allowUnknown:!1,properties:{booleans:{type:"string"},numbers:{type:"string"},selects:{type:"string"}}},layouts:{type:"object",allowUnknown:!1,properties:{fieldsets:{type:"string"},arrays:{type:"string"}}},enhancements:{type:"object",allowUnknown:!1,properties:{icons:{type:"boolean"},datalists:{type:"boolean"},rangeOutput:{type:"boolean"},colorInput:{type:"boolean"}}},validation:{type:"object",allowUnknown:!1,properties:{showErrors:{type:"boolean"},validateOnChange:{type:"boolean"}}}}}}},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:!1,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-*"]}},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:!1,properties:{baseShadowOpacity:{type:"number",relations:{theme:"dark",tokens:["--shadow-*"]}}}},utilities:{type:"object",allowUnknown:!0,properties:{grid:{type:"boolean"},flex:{type:"boolean"},spacing:{type:"boolean"},container:{type:"boolean"}}},gridSystem:{type:"object",allowUnknown:!0,properties:{columns:{type:"array",items:{type:"number"}},autoFitBreakpoints:{type:"object",allowUnknown:!1,properties:{sm:{type:"string"},md:{type:"string"},lg:{type:"string"},xl:{type:"string"}}},enableGapUtilities:{type:"boolean"}}},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:!1,properties:{baseShadowOpacity:{type:"number",relations:{theme:"dark",tokens:["--shadow-*"]}}}}}},advanced:{type:"object",allowUnknown:!0,properties:{linkStyle:{type:"string"},colorDerivation:{type:"string"}}},a11y:{type:"object",allowUnknown:!0,properties:{minTouchTarget:{type:["string","number"]},prefersReducedMotion:{type:"boolean"},focusStyle:{type:"string"}}},icons:{type:"object",allowUnknown:!1,properties:{set:{type:"string"},weight:{type:"string"},defaultSize:{type:"number",relations:{tokens:["--icon-size"]}},sizes:{type:"object",allowUnknown:!0,properties:{xs:{type:["number","string"]},sm:{type:["number","string"]},md:{type:["number","string"]},lg:{type:["number","string"]},xl:{type:["number","string"]},"2xl":{type:["number","string"]}}},spritePath:{type:"string"},externalPath:{type:"string"},include:{type:"object",allowUnknown:!0,properties:{navigation:{type:"array",items:{type:"string"}},actions:{type:"array",items:{type:"string"}},communication:{type:"array",items:{type:"string"}},content:{type:"array",items:{type:"string"}},status:{type:"array",items:{type:"string"}},time:{type:"array",items:{type:"string"}},commerce:{type:"array",items:{type:"string"}},formatting:{type:"array",items:{type:"string"}},system:{type:"array",items:{type:"string"}}}}}},components:{type:"object",allowUnknown:!0},debug:{type:"boolean"}}},Gn={type:"object",allowUnknown:!0,properties:{mode:{type:"string"},preset:{type:"string"},design:Ie,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:re},enhancers:{type:["object","array"]},scanExisting:{type:"boolean"},observeShadows:{type:"boolean"},patchAttachShadow:{type:"boolean"},debounceMs:{type:"number"},onError:{type:re},baseURL:{type:"string"}}},managerURL:{type:"string"},manager:{type:re},liveEdit:{type:"boolean"},localization:{type:"object",allowUnknown:!1,properties:{locale:{type:"string"},locales:{type:"array",items:{type:"string"}},messages:{type:"object",allowUnknown:!0},provider:{type:re},translate:{type:re},loadLocale:{type:re},setLocale:{type:re}}},log:{type:re}}};function Pe(e){return e===null?"null":Array.isArray(e)?"array":typeof e}function Vn(e,t){if(t===re)return!0;let r=Pe(e);return Array.isArray(t)?t.includes(r):r===t}function Xe(e,t,r,n){if(!t)return;let o=t.type||re;if(!Vn(e,o)){n.push({path:r,expected:o,actual:Pe(e),message:`Expected ${o} but got ${Pe(e)}`});return}if(o==="array"&&t.items&&Array.isArray(e)&&e.forEach((a,i)=>{Xe(a,t.items,`${r}[${i}]`,n)}),o==="object"&&e&&typeof e=="object"){let a=t.properties||{};for(let[i,s]of Object.entries(e)){if(!Object.prototype.hasOwnProperty.call(a,i)){t.allowUnknown||n.push({path:`${r}.${i}`,expected:"known property",actual:"unknown",message:`Unknown property "${i}"`});continue}Xe(s,a[i],`${r}.${i}`,n)}}}function Nt(e,t="",r={}){if(!e||typeof e!="object")return r;if(e.relations&&t&&(r[t]=e.relations),e.type==="object"&&e.properties&&Object.entries(e.properties).forEach(([n,o])=>{let a=t?`${t}.${n}`:n;Nt(o,a,r)}),e.type==="array"&&e.items){let n=`${t}[]`;Nt(e.items,n,r)}return r}var Sr=Nt(Ie,""),$r=Ie,Kn={"colors.primary":{widget:"input-color"},"colors.secondary":{widget:"input-color"},"colors.accent":{widget:"input-color"},"colors.background":{widget:"input-color"},"colors.success":{widget:"input-color"},"colors.warning":{widget:"input-color"},"colors.danger":{widget:"input-color"},"colors.info":{widget:"input-color"},"colors.gradientStops":{min:2,max:8,step:1,widget:"range"},"colors.elevationOpacity":{min:0,max:1,step:.01,widget:"range"},"colors.darkMode.background":{widget:"input-color"},"colors.darkMode.primary":{widget:"input-color"},"colors.darkMode.secondary":{widget:"input-color"},"colors.darkMode.accent":{widget:"input-color"},description:{widget:"textarea",maxLength:500,rows:4,placeholder:"Summarize the visual and interaction intent"},"typography.fontFamilyHeadings":{widget:"font-family-omnibox",icon:"text-aa",placeholder:"Heading font stack"},"typography.fontFamilyBody":{widget:"font-family-omnibox",icon:"text-aa",placeholder:"Body font stack"},"typography.fontFamilyMono":{widget:"font-family-omnibox",icon:"text-aa",placeholder:"Monospace font stack"},"typography.baseFontSize":{min:8,max:32,step:1,widget:"input-range"},"typography.fontScale":{min:1,max:2,step:.01,widget:"range"},"typography.fontWeightLight":{min:100,max:800,step:100,widget:"input-range"},"typography.fontWeightNormal":{min:100,max:800,step:100,widget:"input-range"},"typography.fontWeightMedium":{min:100,max:800,step:100,widget:"input-range"},"typography.fontWeightSemibold":{min:100,max:800,step:100,widget:"input-range"},"typography.fontWeightBold":{min:100,max:800,step:100,widget:"input-range"},"typography.lineHeightTight":{min:.75,max:3,step:.001,widget:"input-range"},"typography.lineHeightNormal":{min:.75,max:3,step:.001,widget:"input-range"},"typography.lineHeightRelaxed":{min:.75,max:3,step:.001,widget:"input-range"},"typography.letterSpacingTight":{min:-.1,max:.1,step:.001,widget:"range"},"typography.letterSpacingNormal":{min:-.1,max:.1,step:.001,widget:"range"},"typography.letterSpacingWide":{min:-.1,max:.1,step:.001,widget:"range"},"spatialRhythm.baseUnit":{min:1,max:16,step:1,widget:"range"},"spatialRhythm.scaleRatio":{min:1,max:2,step:.01,widget:"range"},"spatialRhythm.maxSpacingSteps":{min:4,max:64,step:1,widget:"range"},"spatialRhythm.containerPadding":{min:0,max:8,step:.05,widget:"range"},"spatialRhythm.inputPadding":{min:0,max:4,step:.05,widget:"range"},"spatialRhythm.buttonPadding":{min:0,max:4,step:.05,widget:"range"},"spatialRhythm.sectionSpacing":{min:0,max:8,step:.05,widget:"range"},"shape.radiusSize":{oneOf:Object.entries(w.RadiusSizes).map(([e,t])=>({const:t,title:e}))},"shape.borderWidth":{widget:"select",oneOf:Object.entries(w.BorderWidths).map(([e,t])=>({const:t,title:e}))},"shape.customRadius":{min:0,max:64,step:1,widget:"range"},"behavior.transitionSpeed":{oneOf:Object.entries(w.TransitionSpeeds).map(([e,t])=>({const:t,title:e}))},"behavior.animationEasing":{enum:Object.values(w.AnimationEasings)},"behavior.customTransitionSpeed":{min:0,max:1e3,step:10,widget:"range"},"behavior.focusRingWidth":{min:0,max:8,step:1,widget:"range"},"behavior.focusRingOpacity":{min:0,max:1,step:.01,widget:"range"},"behavior.hoverOpacity":{min:0,max:1,step:.01,widget:"range"},"layout.gridColumns":{min:1,max:24,step:1,widget:"range"},"layout.gridGutter":{min:0,max:8,step:.05,widget:"range"},"layout.maxWidth":{widget:"input-text",placeholder:"e.g. 1200 or 1200px"},"layout.maxWidths.sm":{widget:"input-text",placeholder:"e.g. 640 or 640px"},"layout.maxWidths.md":{widget:"input-text",placeholder:"e.g. 768 or 768px"},"layout.maxWidths.lg":{widget:"input-text",placeholder:"e.g. 1024 or 1024px"},"layout.maxWidths.xl":{widget:"input-text",placeholder:"e.g. 1280 or 1280px"},"layout.containerMaxWidth":{widget:"input-text",placeholder:"e.g. 1400px"},"layout.containerPadding":{widget:"input-text",placeholder:"e.g. var(--spacing-6)"},"layout.breakpoints.sm":{min:320,max:2560,step:1,widget:"input-number"},"layout.breakpoints.md":{min:480,max:3200,step:1,widget:"input-number"},"layout.breakpoints.lg":{min:640,max:3840,step:1,widget:"input-number"},"layout.breakpoints.xl":{min:768,max:5120,step:1,widget:"input-number"},"layout.baseShadowOpacity":{min:0,max:1,step:.01,widget:"range"},"layout.darkMode.baseShadowOpacity":{min:0,max:1,step:.01,widget:"range"},"layout.densityCompact":{min:.5,max:2,step:.05,widget:"range"},"layout.densityNormal":{min:.5,max:2,step:.05,widget:"range"},"layout.densityComfortable":{min:.5,max:2,step:.05,widget:"range"},"layout.buttonMinHeight":{min:24,max:96,step:1,widget:"range"},"layout.inputMinHeight":{min:24,max:96,step:1,widget:"range"},"layers.baseShadowOpacity":{min:0,max:1,step:.01,widget:"range"},"layers.shadowBlurMultiplier":{min:0,max:8,step:.1,widget:"range"},"layers.shadowOffsetMultiplier":{min:0,max:8,step:.1,widget:"range"},"layers.blurLight":{min:0,max:48,step:1,widget:"range"},"layers.blurMedium":{min:0,max:64,step:1,widget:"range"},"layers.blurHeavy":{min:0,max:96,step:1,widget:"range"},"layers.baseZIndex":{min:0,max:1e4,step:10,widget:"range"},"layers.zIndexStep":{min:1,max:100,step:1,widget:"range"},"layers.darkMode.baseShadowOpacity":{min:0,max:1,step:.01,widget:"range"},"advanced.linkStyle":{enum:Object.values(w.LinkStyles)},"a11y.minTouchTarget":{oneOf:Object.entries(w.TouchTargetSizes).map(([e,t])=>({const:t,title:e}))},"a11y.focusStyle":{enum:Object.values(w.FocusStyles)},"icons.defaultSize":{min:8,max:128,step:1,widget:"range",icon:"sparkle"}};function yr(e=[]){return e.join(".")}function vr(e=[]){return`/${e.join("/")}`}function Jn(e,t=[]){if(!(!e||typeof e!="object"))return t.reduce((r,n)=>{if(r!=null&&typeof r=="object")return r[n]},e)}function xr(e,t,r=[]){if(e!=null)return e;let n=Jn(t,r);return n??void 0}function Ne(e=""){return String(e).replace(/([a-z])([A-Z])/g,"$1 $2").replace(/[_-]+/g," ").replace(/\s+/g," ").trim().replace(/^./,t=>t.toUpperCase())}function zr(e,t){if(!e)return"string";let r=e.type||"string";if(Array.isArray(r)){let n=Pe(t);return n!=="undefined"&&r.includes(n)?n:r.includes("string")?"string":r.find(o=>o!=="null")||r[0]||"string"}return r}function Pt(e,t,r=[]){return!e||!t||!Array.isArray(r)||r.forEach(n=>{t[n]!==void 0&&(e[n]=t[n])}),e}function wr(e,t){return Array.isArray(t?.oneOf)&&t.oneOf.length?t.oneOf:Array.isArray(t?.enum)&&t.enum.length?t.enum.map(r=>({const:r,title:Ne(r)})):Array.isArray(e?.oneOf)&&e.oneOf.length?e.oneOf:Array.isArray(e?.enum)&&e.enum.length?e.enum.map(r=>({const:r,title:Ne(r)})):null}function Yn(e){return e&&(e==="range"?"input-range":e)}function Zn(e,t){if(!Array.isArray(t)||!t.length)return e;let r=new Set;for(let n of t)!n||n.const===void 0||r.add(Pe(n.const));if(!r.size)return e;if(r.size===1){let n=Array.from(r)[0];if(n==="number")return"number";if(n==="string")return"string";if(n==="boolean")return"boolean"}return e}function kr(e,t,r){let n=zr(t,r),o=e.toLowerCase(),a={label:Ne(e.split(".").slice(-1)[0]||e)};n==="boolean"&&(a.widget="toggle"),n==="number"&&(a.widget="range",o.includes("opacity")?(a.min=0,a.max=1,a.step=.01):o.includes("lineheight")?(a.min=.75,a.max=3,a.step=.001,a.widget="input-range"):o.includes("fontweight")?(a.min=100,a.max=800,a.step=100,a.widget="input-range"):o.endsWith("basefontsize")?(a.min=8,a.max=32,a.step=1,a.widget="input-range"):o.includes("scale")||o.includes("ratio")?(a.min=1,a.max=2,a.step=.01):(a.min=0,a.max=Math.max(10,Number.isFinite(Number(r))?Number(r)*4:100),a.step=1)),n==="string"&&e.startsWith("colors.")&&(a.widget="input-color"),n==="string"&&o==="description"&&(a.widget="textarea",a.maxLength=500,a.rows=4);let i=Kn[e]||{},s={...a,...i};return s.widget&&(s.widget=Yn(s.widget)),s}function Lr(e,t,r,n,o,a){if(!e||typeof e!="object")return null;let i=xr(t,a,r),s=zr(e,i);if(s==="object"&&e.properties){let y={type:"object",properties:{}};r.length>0&&(y.title=Ne(r[r.length-1]));let k={};for(let[v,$]of Object.entries(e.properties)){let A=t&&typeof t=="object"&&!Array.isArray(t)?t[v]:void 0,T=Lr($,A,[...r,v],n,o,a);T&&(y.properties[v]=T.schema,T.hasValue&&(k[v]=T.value))}return Object.keys(y.properties).length?{schema:y,value:k,hasValue:Object.keys(k).length>0}:null}if(s==="array"){let y=yr(r),k=kr(y,e,t);o[y]=k;let v=xr(t,a,r),$=e.items?.type||"string",A=Array.isArray($)?$[0]:$,T={type:A},F=wr(e?.items,null);if(F&&(T.oneOf=F),A==="string"&&Array.isArray(v)&&v.length>0){let z=v.find(x=>typeof x=="string"&&x.trim().length>0);z&&(T.examples=[z])}Pt(T,e?.items,["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","minLength","maxLength","pattern","format","minItems","maxItems","uniqueItems","description","default"]);let I={type:"array",items:T};Pt(I,e,["minItems","maxItems","uniqueItems","description","default"]);let L=vr(r),M={},N=Array.isArray(T.oneOf)&&T.oneOf.length>0;if(A==="string"&&N&&(M["ui:widget"]=I.maxItems===1?"radio":"checkbox-group"),A==="string"&&Array.isArray(v)&&v.length>0){let z=v.filter(x=>typeof x=="string"&&x.trim().length>0).slice(0,5).join(", ");z&&(M["ui:placeholder"]=z)}return Object.keys(M).length&&(n[L]={...n[L]||{},...M}),{schema:I,value:Array.isArray(t)?t:[],hasValue:Array.isArray(t)}}let p=yr(r),c=kr(p,e,i);o[p]=c;let d=wr(e,c),g={type:Zn(s==="null"?"string":s,d),title:c.label||Ne(r[r.length-1]||p)};d&&(g.oneOf=d),Pt(g,e,["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","minLength","maxLength","pattern","format","description","default"]),typeof c.maxLength=="number"&&g.maxLength===void 0&&(g.maxLength=c.maxLength),(g.type==="number"||g.type==="integer")&&typeof c.min=="number"&&g.minimum===void 0&&(g.minimum=c.min),(g.type==="number"||g.type==="integer")&&typeof c.max=="number"&&g.maximum===void 0&&(g.maximum=c.max),(g.type==="number"||g.type==="integer")&&typeof c.step=="number"&&g.multipleOf===void 0&&(g.multipleOf=c.step);let m=i;m!==void 0&&(g.examples=[m]);let b=vr(r),f={};return c.widget&&(f["ui:widget"]=c.widget),c.icon&&(f["ui:icon"]=c.icon),typeof c.min=="number"&&(f["ui:min"]=c.min),typeof c.max=="number"&&(f["ui:max"]=c.max),typeof c.step=="number"&&(f["ui:step"]=c.step),c.placeholder&&(f["ui:placeholder"]=c.placeholder),typeof c.rows=="number"&&(f["ui:options"]={...f["ui:options"]||{},rows:c.rows}),c.widget==="input-range"&&m!==void 0&&(f["ui:allowUnset"]=!0),(typeof c.min=="number"||typeof c.max=="number"||typeof c.step=="number")&&(f["ui:options"]={...f["ui:options"]||{},...typeof c.min=="number"?{min:c.min}:{},...typeof c.max=="number"?{max:c.max}:{},...typeof c.step=="number"?{step:c.step}:{}}),Object.keys(f).length&&(n[b]=f),{schema:g,value:t,hasValue:t!==void 0}}function be(e={}){let t={},r={"/colors":{"ui:layout":"flex","ui:layoutOptions":{wrap:!0,gap:"sm"}},"/colors/darkMode":{"ui:layout":"flex","ui:layoutOptions":{wrap:!0,gap:"sm"}}},n=Q?.default&&typeof Q.default=="object"?Q.default:null,o=Lr(Ie,e,[],r,t,n);return{schema:o?.schema||{type:"object",properties:{}},uiSchema:r,values:o?.value||{},metadata:t}}function je(e={}){return be(e).metadata}function It(e,{log:t,context:r="PDS config"}={}){if(!e||typeof e!="object")return[];let n=[];return Xe(e,Ie,"design",n),n.length&&typeof t=="function"&&n.forEach(o=>{t("warn",`[${r}] ${o.message} at ${o.path}`)}),n}function jt(e,{log:t,context:r="PDS config"}={}){if(!e||typeof e!="object")return[];let n=[];return Xe(e,Gn,"config",n),n.length&&typeof t=="function"&&n.forEach(o=>{t("warn",`[${r}] ${o.message} at ${o.path}`)}),n}var Q={"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.35,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:w.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:w.RadiusSizes.small,borderWidth:w.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.318,fontFamilyHeadings:"'Space Grotesk', system-ui, sans-serif",fontFamilyBody:"'Space Grotesk', system-ui, sans-serif"},spatialRhythm:{baseUnit:4,scaleRatio:1.5},shape:{radiusSize:w.RadiusSizes.xlarge,borderWidth:w.BorderWidths.medium},behavior:{transitionSpeed:w.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:w.RadiusSizes.none,borderWidth:w.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.3,fontFamilyHeadings:"'Quicksand', 'Comfortaa', sans-serif",fontFamilyBody:"'Quicksand', 'Comfortaa', sans-serif"},spatialRhythm:{baseUnit:6,scaleRatio:1.5},shape:{radiusSize:w.RadiusSizes.xxlarge,borderWidth:w.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:w.RadiusSizes.none,borderWidth:w.BorderWidths.thick},behavior:{transitionSpeed:w.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:w.RadiusSizes.medium,borderWidth:w.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.3,fontFamilyHeadings:"'Playfair Display', 'Georgia', serif",fontFamilyBody:"'Crimson Text', 'Garamond', serif",fontWeightNormal:400,fontWeightSemibold:600},spatialRhythm:{baseUnit:4,scaleRatio:1.3},shape:{radiusSize:w.RadiusSizes.small,borderWidth:w.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:w.RadiusSizes.medium,borderWidth:w.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:w.RadiusSizes.small,borderWidth:w.BorderWidths.thick},behavior:{transitionSpeed:w.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:w.LineHeights.relaxed},spatialRhythm:{baseUnit:6,scaleRatio:1.4},shape:{radiusSize:w.RadiusSizes.xxlarge,borderWidth:w.BorderWidths.thin},behavior:{transitionSpeed:w.TransitionSpeeds.slow,animationEasing:w.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:w.RadiusSizes.none,borderWidth:w.BorderWidths.thick},behavior:{transitionSpeed:w.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.35,fontFamilyHeadings:"'Merriweather', Georgia, serif",fontFamilyBody:"'Noto Sans', system-ui, -apple-system, sans-serif"},spatialRhythm:{baseUnit:6,scaleRatio:1.35},shape:{radiusSize:w.RadiusSizes.large,borderWidth:w.BorderWidths.medium},behavior:{transitionSpeed:w.TransitionSpeeds.normal,animationEasing:w.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:w.LineHeights.tight},spatialRhythm:{baseUnit:4,scaleRatio:1.25,containerPadding:1.25,sectionSpacing:2.5},shape:{radiusSize:w.RadiusSizes.large,borderWidth:w.BorderWidths.thin},layers:{shadowDepth:"medium",blurMedium:12},behavior:{transitionSpeed:w.TransitionSpeeds.fast,animationEasing:w.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:w.LineHeights.relaxed},spatialRhythm:{baseUnit:4,scaleRatio:1.25,containerPadding:1.5,sectionSpacing:3},shape:{radiusSize:w.RadiusSizes.medium,borderWidth:w.BorderWidths.thin},layers:{shadowDepth:"light",blurLight:8},behavior:{transitionSpeed:w.TransitionSpeeds.normal,animationEasing:w.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",info:"#0e7490",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:w.RadiusSizes.small,borderWidth:w.BorderWidths.medium},behavior:{transitionSpeed:w.TransitionSpeeds.fast,animationEasing:w.AnimationEasings["ease-out"],focusRingWidth:3},a11y:{minTouchTarget:w.TouchTargetSizes.comfortable,focusStyle:w.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,sectionSpacing:2.5},shape:{radiusSize:w.RadiusSizes.medium,borderWidth:w.BorderWidths.thin},layers:{shadowDepth:"light",blurLight:6},behavior:{transitionSpeed:w.TransitionSpeeds.fast,animationEasing:w.AnimationEasings["ease-in-out"],focusRingWidth:3,focusRingOpacity:.4},a11y:{minTouchTarget:w.TouchTargetSizes.standard,focusStyle:w.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:w.LineHeights.relaxed},spatialRhythm:{baseUnit:4,scaleRatio:1.25,sectionSpacing:1.5},shape:{radiusSize:w.RadiusSizes.medium,borderWidth:w.BorderWidths.thin},behavior:{transitionSpeed:w.TransitionSpeeds.fast,animationEasing:w.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:w.LineHeights.tight},spatialRhythm:{baseUnit:4,scaleRatio:1.2,containerPadding:1.5,sectionSpacing:2},shape:{radiusSize:w.RadiusSizes.small,borderWidth:w.BorderWidths.thin},layers:{shadowDepth:"light",blurLight:4},behavior:{transitionSpeed:w.TransitionSpeeds.fast,animationEasing:w.AnimationEasings["ease-in-out"],focusRingWidth:2},layout:{densityCompact:.85,gridColumns:12}}};Q.default={id:"default",name:"Default",tags:["app","featured"],description:"Fresh and modern design system with balanced aesthetics and usability",options:{liquidGlassEffects:!1,backgroundMesh:0},form:{options:{widgets:{booleans:"toggle",numbers:"input",selects:"standard"},layouts:{fieldsets:"default",arrays:"default"},enhancements:{icons:!0,datalists:!0,rangeOutput:!0,colorInput:!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:w.FontWeights.light,fontWeightNormal:w.FontWeights.normal,fontWeightMedium:w.FontWeights.medium,fontWeightSemibold:w.FontWeights.semibold,fontWeightBold:w.FontWeights.bold,lineHeightTight:w.LineHeights.tight,lineHeightNormal:w.LineHeights.normal,lineHeightRelaxed:w.LineHeights.relaxed,letterSpacingTight:-.025,letterSpacingNormal:0,letterSpacingWide:.025},spatialRhythm:{baseUnit:4,scaleRatio:1.25,maxSpacingSteps:32,containerPadding:1,inputPadding:.75,buttonPadding:1,sectionSpacing:2},layers:{baseShadowOpacity:.1,darkMode:{baseShadowOpacity:.25},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:w.RadiusSizes.large,borderWidth:w.BorderWidths.medium,customRadius:null},behavior:{transitionSpeed:w.TransitionSpeeds.normal,animationEasing:w.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:30,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:w.LinkStyles.inline,colorDerivation:"hsl"},a11y:{minTouchTarget:w.TouchTargetSizes.standard,prefersReducedMotion:!0,focusStyle:w.FocusStyles.ring},icons:{set:"phosphor",weight:"regular",defaultSize:24,externalPath:"/assets/img/icons/",sizes:w.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:"/assets/pds/icons/pds-icons.svg"},debug:!1};var Cr=je(Q.default),Mr=be(Q.default);function Ot(e="log",t,...r){let n=globalThis?.PDS?.log;if(typeof n=="function"){n(e,t,...r);return}if(typeof console>"u")return;let o=typeof console[e]=="function"?console[e].bind(console):typeof console.log=="function"?console.log.bind(console):null;o&&(r.length>0?o(t,...r):o(t))}Fe();Bt();var X=class e{static#m;static get instance(){return this.#m}#e;#o;constructor(t={}){this.options={debug:!1,...t},this.options.design||(this.options.design={}),this.options.debug&&this.options.log?.("debug","Generator options:",this.options),e.#m=this,this.tokens=this.generateTokens(),this.options.debug&&this.options.log?.("debug","Generated tokens:",this.tokens),this.#Se(),typeof CSSStyleSheet<"u"?this.#Me():this.options.debug&&this.options.log?.("debug","[Generator] Skipping browser features (CSSStyleSheet not available)")}generateTokens(){let t=this.options.design||{},r=this.#C(t),n=t.layers||{},o=this.#h(n,r.light),a=this.#z(o),i=r.dark!=null?this.#z(this.#h(n,r.dark)):null;return{colors:this.#M(t.colors||{},r),spacing:this.generateSpacingTokens(t.spatialRhythm||{}),radius:this.#O(t.shape||{}),borderWidths:this.#B(t.shape||{}),typography:this.generateTypographyTokens(t.typography||{}),shadows:a,darkShadows:i,layout:this.#D(t.layout||{}),transitions:this.#W(t.behavior||{}),zIndex:this.#H(t.layers||{}),icons:this.#U(t.icons||{})}}#C(t={}){let r=t.layout||{},n=t.layers||{};return{light:this.#f(r.baseShadowOpacity??n.baseShadowOpacity),dark:this.#f(r.darkMode?.baseShadowOpacity??n.darkMode?.baseShadowOpacity)}}#f(t){let r=Number(t);if(Number.isFinite(r))return Math.min(Math.max(r,0),1)}#h(t={},r){let n={...t};return r!=null&&(n.baseShadowOpacity=r),n}#M(t,r={}){let{primary:n="#3b82f6",secondary:o="#64748b",accent:a="#ec4899",background:i="#ffffff",success:s=null,warning:p="#FFBF00",danger:c=null,info:d=null,darkMode:l={}}=t,u={primary:this.#r(n),secondary:this.#r(o),accent:this.#r(a),success:this.#r(s||this.#E(n)),warning:this.#r(p||a),danger:this.#r(c||this.#T(n)),info:this.#r(d||n),gray:this.#b(o),surface:this.#y(i)};return u.surface.fieldset=this.#A(u.surface),u.surfaceSmart=this.#S(u.surface,r),u.dark=this.#_(u,i,l),u.dark&&u.dark.surface&&(u.dark.surfaceSmart=this.#S(u.dark.surface,r)),u.interactive={light:{fill:this.#k(u.primary,4.5),text:u.primary[600]},dark:{fill:this.#k(u.dark.primary,4.5),text:this.#I(u.dark.primary,u.dark.surface.base,4.5)}},u}#r(t){let r=this.#a(t);return{50:this.#t(r.h,Math.max(r.s-10,10),Math.min(r.l+45,95)),100:this.#t(r.h,Math.max(r.s-5,15),Math.min(r.l+35,90)),200:this.#t(r.h,r.s,Math.min(r.l+25,85)),300:this.#t(r.h,r.s,Math.min(r.l+15,75)),400:this.#t(r.h,r.s,Math.min(r.l+5,65)),500:t,600:this.#t(r.h,r.s,Math.max(r.l-10,25)),700:this.#t(r.h,r.s,Math.max(r.l-20,20)),800:this.#t(r.h,r.s,Math.max(r.l-30,15)),900:this.#t(r.h,r.s,Math.max(r.l-40,10))}}#E(t){let r=this.#a(t);return this.#t(120,Math.max(r.s,60),45)}#T(t){let r=this.#a(t);return this.#t(0,Math.max(r.s,70),50)}#b(t){let r=this.#a(t),n=r.h,o=Math.min(r.s,10);return{50:this.#t(n,o,98),100:this.#t(n,o,95),200:this.#t(n,o,88),300:this.#t(n,o,78),400:this.#t(n,o,60),500:t,600:this.#t(n,Math.min(o+5,15),45),700:this.#t(n,Math.min(o+8,18),35),800:this.#t(n,Math.min(o+10,20),20),900:this.#t(n,Math.min(o+12,22),10)}}#y(t){let r=this.#a(t);return{base:t,subtle:this.#t(r.h,Math.max(r.s,2),Math.max(r.l-2,2)),elevated:this.#t(r.h,Math.max(r.s,3),Math.max(r.l-4,5)),sunken:this.#t(r.h,Math.max(r.s,4),Math.max(r.l-6,8)),overlay:this.#t(r.h,Math.max(r.s,2),Math.min(r.l+2,98)),inverse:this.#v(t),hover:"color-mix(in oklab, var(--color-surface-base) 92%, var(--color-text-primary) 8%);"}}#A(t){return{base:t.subtle,subtle:t.elevated,elevated:t.sunken,sunken:this.#R(t.sunken,.05),overlay:t.elevated}}#R(t,r=.05){let n=this.#a(t),o=Math.max(n.l-n.l*r,5);return this.#t(n.h,n.s,o)}#v(t){let r=this.#a(t);if(r.l>50){let n=Math.min(r.s+5,25),o=Math.max(12-(r.l-50)*.1,8);return this.#t(r.h,n,o)}else{let n=Math.max(r.s-10,5),o=Math.min(85+(50-r.l)*.3,95);return this.#t(r.h,n,o)}}#_(t,r="#ffffff",n={}){let o=n.background?n.background:this.#v(r),a=this.#y(o),i=n.primary?this.#r(n.primary):this.#i(t.primary);return{surface:{...a,fieldset:this.#N(a)},primary:i,secondary:n.secondary?this.#r(n.secondary):this.#i(t.secondary),accent:n.accent?this.#r(n.accent):this.#i(t.accent),gray:n.secondary?this.#b(n.secondary):t.gray,success:this.#i(t.success),info:this.#i(t.info),warning:this.#i(t.warning),danger:this.#i(t.danger)}}#c(t){let r=String(t||"").replace("#",""),n=r.length===3?r.split("").map(a=>a+a).join(""):r,o=parseInt(n,16);return{r:o>>16&255,g:o>>8&255,b:o&255}}#p(t){let{r,g:n,b:o}=this.#c(t),a=[r/255,n/255,o/255].map(i=>i<=.03928?i/12.92:Math.pow((i+.055)/1.055,2.4));return .2126*a[0]+.7152*a[1]+.0722*a[2]}#d(t,r){let n=this.#p(t),o=this.#p(r),a=Math.max(n,o),i=Math.min(n,o);return(a+.05)/(i+.05)}#x(t,r=4.5){if(!t)return"#000000";let n="#ffffff",o="#000000",a=this.#d(t,n);if(a>=r)return n;let i=this.#d(t,o);return i>=r||i>a?o:n}#w(t,r=1){let{r:n,g:o,b:a}=this.#c(t);return`rgba(${n}, ${o}, ${a}, ${r})`}#F(t,r,n=.5){let o=this.#c(t),a=this.#c(r),i=Math.round(o.r+(a.r-o.r)*n),s=Math.round(o.g+(a.g-o.g)*n),p=Math.round(o.b+(a.b-o.b)*n);return this.#P(i,s,p)}#P(t,r,n){let o=a=>{let i=Math.max(0,Math.min(255,Math.round(a))).toString(16);return i.length===1?"0"+i:i};return`#${o(t)}${o(r)}${o(n)}`}#N(t){return{base:t.elevated,subtle:t.overlay,elevated:this.#$(t.elevated,.08),sunken:t.elevated,overlay:this.#$(t.overlay,.05)}}#I(t={},r="#000000",n=4.5){let o=["600","700","800","500","400","900","300","200"],a={shade:null,color:null,ratio:0};for(let i of o){let s=t?.[i];if(!s||typeof s!="string")continue;let p=this.#d(s,r);if(p>a.ratio&&(a={shade:i,color:s,ratio:p}),p>=n)return s}return a.color||t?.["600"]||t?.["500"]}#k(t={},r=4.5){let n=["600","700","800","500","400","900"],o={shade:null,color:null,ratio:0};for(let a of n){let i=t?.[a];if(!i||typeof i!="string")continue;let s=this.#d(i,"#ffffff");if(s>o.ratio&&(o={shade:a,color:i,ratio:s}),s>=r)return i}return o.color||t?.["600"]||t?.["500"]}#S(t,r={}){let n={},o=r.light??.1,a=r.dark??.25;return Object.entries(t).forEach(([i,s])=>{if(!s||typeof s!="string"||!s.startsWith("#"))return;let p=this.#p(s)<.5,c=this.#x(s,4.5),d=this.#x(s,3),l=this.#F(c,s,.4),u=c,g=l,m=p?"#ffffff":"#000000",b=p?a:o,f=this.#w(m,b),y=p?"#ffffff":"#000000",k=p?.15:.1,v=this.#w(y,k);n[i]={bg:s,text:c,textSecondary:d,textMuted:l,icon:u,iconSubtle:g,shadow:f,border:v,scheme:p?"dark":"light"}}),n}#$(t,r=.05){let n=this.#a(t),o=Math.min(n.l+(100-n.l)*r,95);return this.#t(n.h,n.s,o)}#i(t){let r={};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,a])=>{let i=t[a.source];r[o]=this.#j(i,a.dimFactor)}),r}#j(t,r=.8){let n=this.#a(t),o=Math.max(n.s*r,5),a=Math.max(n.l*r,5);return this.#t(n.h,o,a)}generateSpacingTokens(t){let{baseUnit:r=4,scaleRatio:n=1.25,maxSpacingSteps:o=12}=t,a=Number.isFinite(Number(r))?Number(r):4,i=Math.min(Number.isFinite(Number(o))?Number(o):12,12),s={0:"0"};for(let p=1;p<=i;p++)s[p]=`${a*p}px`;return s}#O(t){let{radiusSize:r="medium",customRadius:n=null}=t,o;n!=null?o=n:typeof r=="number"?o=r:typeof r=="string"?o=w.RadiusSizes[r]??w.RadiusSizes.medium:o=w.RadiusSizes.medium;let a=Number.isFinite(Number(o))?Number(o):w.RadiusSizes.medium;return{none:"0",xs:`${Number.isFinite(a*.25)?Math.round(a*.25):0}px`,sm:`${Number.isFinite(a*.5)?Math.round(a*.5):0}px`,md:`${a}px`,lg:`${Number.isFinite(a*1.5)?Math.round(a*1.5):0}px`,xl:`${Number.isFinite(a*2)?Math.round(a*2):0}px`,full:"9999px"}}#B(t){let{borderWidth:r="medium"}=t,n;typeof r=="number"?n=r:typeof r=="string"?n=w.BorderWidths[r]??w.BorderWidths.medium:n=w.BorderWidths.medium;let o=Number.isFinite(Number(n))?Number(n):w.BorderWidths.medium,a=i=>`${Math.max(1,Math.ceil(i))}px`;return{hairline:a(o*.25),thin:a(o*.5),medium:a(o),thick:a(o*1.5)}}generateTypographyTokens(t){let{fontFamilyHeadings:r="system-ui, -apple-system, sans-serif",fontFamilyBody:n="system-ui, -apple-system, sans-serif",fontFamilyMono:o='ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, monospace',baseFontSize:a=16,fontScale:i=1.25,fontWeightLight:s=w.FontWeights.light,fontWeightNormal:p=w.FontWeights.normal,fontWeightMedium:c=w.FontWeights.medium,fontWeightSemibold:d=w.FontWeights.semibold,fontWeightBold:l=w.FontWeights.bold,lineHeightTight:u=w.LineHeights.tight,lineHeightNormal:g=w.LineHeights.normal,lineHeightRelaxed:m=w.LineHeights.relaxed}=t,b=Number.isFinite(Number(a))?Number(a):16,f=Number.isFinite(Number(i))?Number(i):1.25;return{fontFamily:{headings:r,body:n,mono:o},fontSize:{xs:`${Math.round(b/Math.pow(f,2))}px`,sm:`${Math.round(b/f)}px`,base:`${b}px`,lg:`${Math.round(b*f)}px`,xl:`${Math.round(b*Math.pow(f,2))}px`,"2xl":`${Math.round(b*Math.pow(f,3))}px`,"3xl":`${Math.round(b*Math.pow(f,4))}px`,"4xl":`${Math.round(b*Math.pow(f,5))}px`},fontWeight:{light:s?.toString()||"300",normal:p?.toString()||"400",medium:c?.toString()||"500",semibold:d?.toString()||"600",bold:l?.toString()||"700"},lineHeight:{tight:u?.toString()||"1.25",normal:g?.toString()||"1.5",relaxed:m?.toString()||"1.75"}}}#z(t){let{baseShadowOpacity:r=.1,shadowBlurMultiplier:n=1,shadowOffsetMultiplier:o=1}=t,a=`rgba(0, 0, 0, ${r})`,i=`rgba(0, 0, 0, ${r*.5})`;return{sm:`0 ${1*o}px ${2*n}px 0 ${i}`,base:`0 ${1*o}px ${3*n}px 0 ${a}, 0 ${1*o}px ${2*n}px 0 ${i}`,md:`0 ${4*o}px ${6*n}px ${-1*o}px ${a}, 0 ${2*o}px ${4*n}px ${-1*o}px ${i}`,lg:`0 ${10*o}px ${15*n}px ${-3*o}px ${a}, 0 ${4*o}px ${6*n}px ${-2*o}px ${i}`,xl:`0 ${20*o}px ${25*n}px ${-5*o}px ${a}, 0 ${10*o}px ${10*n}px ${-5*o}px ${i}`,inner:`inset 0 ${2*o}px ${4*n}px 0 ${i}`}}#D(t){let{containerPadding:r=16,breakpoints:n={sm:640,md:768,lg:1024,xl:1280}}=t,o=this.#u(t,"maxWidth"),a=t.maxWidth,i=this.#L(t,{emitFallbacks:!1});return{maxWidth:o?this.#n(a,"1200px"):void 0,maxWidthSm:i.sm,maxWidthMd:i.md,maxWidthLg:i.lg,maxWidthXl:i.xl,minHeight:"100vh",containerPadding:this.#n(r,"16px"),breakpoints:{sm:this.#n(n.sm,"640px"),md:this.#n(n.md,"768px"),lg:this.#n(n.lg,"1024px"),xl:this.#n(n.xl,"1280px")},pageMargin:"120px",sectionGap:"160px",containerGap:"200px",heroSpacing:"240px",footerSpacing:"160px"}}#L(t={},r={}){let{emitFallbacks:n=!0}=r,o={sm:640,md:768,lg:1024,xl:1280},{maxWidths:a={},containerPadding:i=16,breakpoints:s=o}=t||{},p=this.#u(t,"maxWidth"),c=["sm","md","lg","xl"].some(f=>this.#u(a,f));if(!n&&!p&&!c)return{sm:void 0,md:void 0,lg:void 0,xl:void 0};let d=t?.maxWidth,l=this.#s(i,16),u=this.#s(d,o.xl),g={sm:this.#s(s.sm,o.sm),md:this.#s(s.md,o.md),lg:this.#s(s.lg,o.lg),xl:this.#s(s.xl,o.xl)},m=f=>f?Math.max(320,f-l*2):u,b={sm:Math.min(u,m(g.sm)),md:Math.min(u,m(g.md)),lg:Math.min(u,m(g.lg)),xl:Math.max(320,u)};return{sm:this.#n(a.sm,`${b.sm}px`),md:this.#n(a.md,`${b.md}px`),lg:this.#n(a.lg,`${b.lg}px`),xl:this.#n(a.xl,`${b.xl}px`)}}#u(t,r){if(!t||typeof t!="object"||!Object.prototype.hasOwnProperty.call(t,r))return!1;let n=t[r];return!(n==null||typeof n=="string"&&n.trim().length===0)}#n(t,r){return typeof t=="number"&&Number.isFinite(t)?`${t}px`:typeof t=="string"&&t.trim().length>0?t:r}#s(t,r){if(typeof t=="number"&&Number.isFinite(t))return t;if(typeof t=="string"){let n=parseFloat(t);if(Number.isFinite(n))return n}return r}#W(t){let{transitionSpeed:r=w.TransitionSpeeds.normal,animationEasing:n=w.AnimationEasings["ease-out"]}=t,o;return typeof r=="number"?o=r:typeof r=="string"&&w.TransitionSpeeds[r]?o=w.TransitionSpeeds[r]:o=w.TransitionSpeeds.normal,{fast:`${Math.round(o*.6)}ms`,normal:`${o}ms`,slow:`${Math.round(o*1.4)}ms`}}#H(t){let{baseZIndex:r=1e3,zIndexStep:n=10}=t;return{dropdown:r.toString(),sticky:(r+n*2).toString(),fixed:(r+n*3).toString(),modal:(r+n*4).toString(),drawer:(r+n*5).toString(),popover:(r+n*6).toString(),tooltip:(r+n*7).toString(),notification:(r+n*8).toString()}}#U(t){let{set:r="phosphor",weight:n="regular",defaultSize:o=24,sizes:a={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:r,weight:n,defaultSize:`${o}px`,sizes:Object.fromEntries(Object.entries(a).map(([p,c])=>[p,`${c}px`])),spritePath:i,externalPath:s}}#q(t){let r=[];r.push(` /* Colors */
1
+ var qn=Object.defineProperty;var It=(t,e)=>()=>(t&&(e=t(t=0)),e);var _t=(t,e)=>{for(var r in e)qn(t,r,{get:e[r],enumerable:!0})};var br={};_t(br,{enums:()=>S});var S,_e=It(()=>{S={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 Ar={};_t(Ar,{default:()=>no,findComponentForElement:()=>Zn,getAllSelectors:()=>Qn,getAllTags:()=>ro,getByCategory:()=>to,ontology:()=>q,searchOntology:()=>eo});function de(t,e){if(!t||!e)return!1;try{return t.matches(e)}catch{return!1}}function Er(t,e){if(!t||!e||!t.closest)return null;try{return t.closest(e)}catch{return null}}function Zn(t,{maxDepth:e=5}={}){if(!t||t.closest&&t.closest(".showcase-toc"))return null;let r=t,n=0;for(;r&&n<e;){if(n++,r.tagName==="DS-SHOWCASE")return null;if(r.classList&&r.classList.contains("showcase-section")){r=r.parentElement;continue}for(let a of PDS.ontology.enhancements){let i=a.selector||a;if(de(r,i))return{element:r,componentType:"enhanced-component",displayName:a.description||i,id:a.id}}if(r.tagName==="FIELDSET"){let a=r.getAttribute("role");if(a==="group"||a==="radiogroup")return{element:r,componentType:"form-group",displayName:a==="radiogroup"?"radio group":"form group"}}if(r.tagName==="LABEL"&&r.querySelector&&r.querySelector("input,select,textarea"))return{element:r,componentType:"form-control",displayName:"label with input"};let o=r.closest?r.closest("label"):null;if(o&&o.querySelector&&o.querySelector("input,select,textarea"))return{element:o,componentType:"form-control",displayName:"label with input"};for(let a of PDS.ontology.primitives){for(let i of a.selectors||[]){let s=String(i||"").trim();if(s.includes("*")){if(s.startsWith(".")){let c=s.slice(1).replace(/\*/g,"");if(r.classList&&Array.from(r.classList).some(u=>u.startsWith(c)))return{element:r,componentType:"pds-primitive",displayName:a.name||a.id,id:a.id,tags:a.tags};let p=r.parentElement,l=0;for(;p&&l<e;){if(p.classList&&Array.from(p.classList).some(u=>u.startsWith(c))&&p.tagName!=="DS-SHOWCASE")return{element:p,componentType:"pds-primitive",displayName:a.name||a.id,id:a.id,tags:a.tags};p=p.parentElement,l++}continue}continue}if(de(r,s))return{element:r,componentType:"pds-primitive",displayName:a.name||a.id,id:a.id,tags:a.tags};let d=Er(r,s);if(d&&d.tagName!=="DS-SHOWCASE")return{element:d,componentType:"pds-primitive",displayName:a.name||a.id,id:a.id,tags:a.tags}}if(r.classList){let i=Array.from(r.classList);for(let s of a.selectors||[])if(typeof s=="string"&&s.includes("*")&&s.startsWith(".")){let d=s.slice(1).replace(/\*/g,"");if(i.some(c=>c.startsWith(d)))return{element:r,componentType:"pds-primitive",displayName:a.name||a.id,id:a.id,tags:a.tags}}}}for(let a of PDS.ontology.layoutPatterns||[])for(let i of a.selectors||[]){let s=String(i||"").trim();if(s.includes("*")){if(s.startsWith(".")){let c=s.slice(1).replace(/\*/g,"");if(r.classList&&Array.from(r.classList).some(p=>p.startsWith(c)))return{element:r,componentType:"layout-pattern",displayName:a.name||a.id,id:a.id,tags:a.tags}}continue}if(de(r,s))return{element:r,componentType:"layout-pattern",displayName:a.name||a.id,id:a.id,tags:a.tags};let d=Er(r,s);if(d&&d.tagName!=="DS-SHOWCASE")return{element:d,componentType:"layout-pattern",displayName:a.name||a.id,id:a.id,tags:a.tags}}if(r.tagName&&r.tagName.includes("-")){let a=r.tagName.toLowerCase(),i=PDS.ontology.components.find(s=>s.selectors.includes(a));return{element:r,componentType:"web-component",displayName:i?.name||a,id:i?.id||a,tags:i?.tags}}if(r.tagName==="BUTTON"){let a=r.querySelector&&r.querySelector("pds-icon");return{element:r,componentType:"button",displayName:a?"button with icon":"button",id:"button"}}if(de(r,"pds-icon")||r.closest&&r.closest("pds-icon")){let a=de(r,"pds-icon")?r:r.closest("pds-icon");return{element:a,componentType:"icon",displayName:`pds-icon (${a.getAttribute&&a.getAttribute("icon")||"unknown"})`,id:"pds-icon"}}if(de(r,"nav[data-dropdown]")||r.closest&&r.closest("nav[data-dropdown]"))return{element:de(r,"nav[data-dropdown]")?r:r.closest("nav[data-dropdown]"),componentType:"navigation",displayName:"dropdown menu",id:"dropdown"};r=r.parentElement}return null}function Qn(){let t=[];for(let e of PDS.ontology.primitives)t.push(...e.selectors||[]);for(let e of PDS.ontology.components)t.push(...e.selectors||[]);for(let e of PDS.ontology.layoutPatterns||[])t.push(...e.selectors||[]);return Array.from(new Set(t))}function eo(t,e={}){let r=t.toLowerCase(),n=[],o=(a,i)=>{for(let s of a)(s.id?.toLowerCase().includes(r)||s.name?.toLowerCase().includes(r)||s.description?.toLowerCase().includes(r)||s.tags?.some(c=>c.toLowerCase().includes(r))||s.category?.toLowerCase().includes(r)||s.selectors?.some(c=>c.toLowerCase().includes(r)))&&n.push({...s,type:i})};return(!e.type||e.type==="primitive")&&o(q.primitives,"primitive"),(!e.type||e.type==="component")&&o(q.components,"component"),(!e.type||e.type==="layout")&&o(q.layoutPatterns,"layout"),(!e.type||e.type==="enhancement")&&o(q.enhancements,"enhancement"),n}function to(t){let e=t.toLowerCase();return{primitives:q.primitives.filter(r=>r.category===e),components:q.components.filter(r=>r.category===e),layouts:q.layoutPatterns.filter(r=>r.category===e)}}function ro(){let t=new Set;return q.primitives.forEach(e=>e.tags?.forEach(r=>t.add(r))),q.components.forEach(e=>e.tags?.forEach(r=>t.add(r))),q.layoutPatterns.forEach(e=>e.tags?.forEach(r=>t.add(r))),q.enhancements.forEach(e=>e.tags?.forEach(r=>t.add(r))),Array.from(t).sort()}var q,no,Bt=It(()=>{q={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-danger",".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. Use data-dropdown-close on clickable descendants to dismiss on selection.",tags:["menu","interactive","navigation","dismiss","close"]},{id:"dropdown-close",selector:"[data-dropdown-close]",description:"Declarative close marker for nav[data-dropdown] panels; clicking marked targets closes the open dropdown.",tags:["dropdown","menu","dismiss","close","attribute"]},{id:"toggle",selector:"label[data-toggle]",description:"Toggle switch from checkbox",tags:["switch","boolean","form"]},{id:"color-input",selector:"label[data-color]",description:"Enhanced color input with swatch shell and hex output",tags:["color","input","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-danger","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"]}};no=q});var ct={};_t(ct,{deepMerge:()=>Xr,fragmentFromTemplateLike:()=>Zo,isObject:()=>lt,parseHTML:()=>rr});function lt(t){return t&&typeof t=="object"&&!Array.isArray(t)}function Xr(t,e){let r={...t};return lt(t)&&lt(e)&&Object.keys(e).forEach(n=>{lt(e[n])?n in t?r[n]=Xr(t[n],e[n]):Object.assign(r,{[n]:e[n]}):Object.assign(r,{[n]:e[n]})}),r}function Zo(t){let e=Array.isArray(t?.strings)?t.strings:[],r=Array.isArray(t?.values)?t.values:[],n=new Set,o=[],a=/(\s)(\.[\w-]+)=\s*$/;for(let l=0;l<e.length;l+=1){let u=e[l]??"",g=u.match(a);if(g&&l<r.length){let w=g[2].slice(1),b=`pds-val-${l}`;u=u.replace(a,`$1data-pds-prop="${w}:${b}"`),n.add(l)}o.push(u),l<r.length&&!n.has(l)&&o.push(`<!--pds-val-${l}-->`)}let i=document.createElement("template");i.innerHTML=o.join("");let s=(l,u)=>{let g=l.parentNode;if(!g)return;if(u==null){g.removeChild(l);return}let f=w=>{if(w!=null){if(w instanceof Node){g.insertBefore(w,l);return}if(Array.isArray(w)){w.forEach(b=>f(b));return}g.insertBefore(document.createTextNode(String(w)),l)}};f(u),g.removeChild(l)},d=document.createTreeWalker(i.content,NodeFilter.SHOW_COMMENT),c=[];for(;d.nextNode();){let l=d.currentNode;l?.nodeValue?.startsWith("pds-val-")&&c.push(l)}return c.forEach(l=>{let u=Number(l.nodeValue.replace("pds-val-",""));s(l,r[u])}),i.content.querySelectorAll("*").forEach(l=>{let u=l.getAttribute("data-pds-prop");if(!u)return;let[g,f]=u.split(":"),w=Number(String(f).replace("pds-val-",""));g&&Number.isInteger(w)&&(l[g]=r[w]),l.removeAttribute("data-pds-prop")}),i.content}function rr(t){return new DOMParser().parseFromString(t,"text/html").body.childNodes}var nr=It(()=>{});_e();var re="any",Ne={type:"object",allowUnknown:!1,properties:{id:{type:"string",minLength:1,maxLength:64},name:{type:"string",minLength:1,maxLength:80},tags:{type:"array",uniqueItems:!0,items:{type:"string"}},themes:{type:"array",uniqueItems:!0,items:{type:"string",oneOf:[{const:"light",title:"Light"},{const:"dark",title:"Dark"},{const:"system",title:"System"}]}},description:{type:"string",maxLength:500},options:{type:"object",allowUnknown:!0,properties:{liquidGlassEffects:{type:"boolean"},backgroundMesh:{type:"number"}}},form:{type:"object",allowUnknown:!0,properties:{options:{type:"object",allowUnknown:!0,properties:{widgets:{type:"object",allowUnknown:!1,properties:{booleans:{type:"string"},numbers:{type:"string"},selects:{type:"string"}}},layouts:{type:"object",allowUnknown:!1,properties:{fieldsets:{type:"string"},arrays:{type:"string"}}},enhancements:{type:"object",allowUnknown:!1,properties:{icons:{type:"boolean"},datalists:{type:"boolean"},rangeOutput:{type:"boolean"},colorInput:{type:"boolean"}}},validation:{type:"object",allowUnknown:!1,properties:{showErrors:{type:"boolean"},validateOnChange:{type:"boolean"}}}}}}},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-*","--color-success-fill","--color-success-fill-hover","--color-success-fill-active","--color-success-text","--color-success-text-hover","--color-success-contrast","--color-success-display-*","--surface-*-success-text","--surface-*-success-text-hover"]}},warning:{type:["string","null"],relations:{tokens:["--color-warning-*","--color-warning-fill","--color-warning-fill-hover","--color-warning-fill-active","--color-warning-text","--color-warning-text-hover","--color-warning-contrast","--color-warning-display-*","--surface-*-warning-text","--surface-*-warning-text-hover"]}},danger:{type:["string","null"],relations:{tokens:["--color-danger-*","--color-danger-fill","--color-danger-fill-hover","--color-danger-fill-active","--color-danger-text","--color-danger-text-hover","--color-danger-contrast","--color-danger-display-*","--surface-*-danger-text","--surface-*-danger-text-hover"]}},info:{type:["string","null"],relations:{tokens:["--color-info-*","--color-info-fill","--color-info-fill-hover","--color-info-fill-active","--color-info-text","--color-info-text-hover","--color-info-contrast","--color-info-display-*","--surface-*-info-text","--surface-*-info-text-hover"]}},gradientStops:{type:"number"},elevationOpacity:{type:"number",relations:{tokens:["--surface-*-shadow"]}},darkMode:{type:"object",allowUnknown:!1,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-*"]}},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:!1,properties:{baseShadowOpacity:{type:"number",relations:{theme:"dark",tokens:["--shadow-*"]}}}},utilities:{type:"object",allowUnknown:!0,properties:{grid:{type:"boolean"},flex:{type:"boolean"},spacing:{type:"boolean"},container:{type:"boolean"}}},gridSystem:{type:"object",allowUnknown:!0,properties:{columns:{type:"array",items:{type:"number"}},autoFitBreakpoints:{type:"object",allowUnknown:!1,properties:{sm:{type:"string"},md:{type:"string"},lg:{type:"string"},xl:{type:"string"}}},enableGapUtilities:{type:"boolean"}}},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:!1,properties:{baseShadowOpacity:{type:"number",relations:{theme:"dark",tokens:["--shadow-*"]}}}}}},advanced:{type:"object",allowUnknown:!0,properties:{linkStyle:{type:"string"},colorDerivation:{type:"string"}}},a11y:{type:"object",allowUnknown:!0,properties:{minTouchTarget:{type:["string","number"]},prefersReducedMotion:{type:"boolean"},focusStyle:{type:"string"}}},icons:{type:"object",allowUnknown:!1,properties:{set:{type:"string"},weight:{type:"string"},defaultSize:{type:"number",relations:{tokens:["--icon-size"]}},sizes:{type:"object",allowUnknown:!0,properties:{xs:{type:["number","string"]},sm:{type:["number","string"]},md:{type:["number","string"]},lg:{type:["number","string"]},xl:{type:["number","string"]},"2xl":{type:["number","string"]}}},spritePath:{type:"string"},externalPath:{type:"string"},include:{type:"object",allowUnknown:!0,properties:{navigation:{type:"array",items:{type:"string"}},actions:{type:"array",items:{type:"string"}},communication:{type:"array",items:{type:"string"}},content:{type:"array",items:{type:"string"}},status:{type:"array",items:{type:"string"}},time:{type:"array",items:{type:"string"}},commerce:{type:"array",items:{type:"string"}},formatting:{type:"array",items:{type:"string"}},system:{type:"array",items:{type:"string"}}}}}},components:{type:"object",allowUnknown:!0},debug:{type:"boolean"}}},Vn={type:"object",allowUnknown:!0,properties:{mode:{type:"string"},preset:{type:"string"},design:Ne,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:re},enhancers:{type:["object","array"]},scanExisting:{type:"boolean"},observeShadows:{type:"boolean"},patchAttachShadow:{type:"boolean"},debounceMs:{type:"number"},onError:{type:re},baseURL:{type:"string"}}},managerURL:{type:"string"},manager:{type:re},liveEdit:{type:"boolean"},localization:{type:"object",allowUnknown:!1,properties:{locale:{type:"string"},locales:{type:"array",items:{type:"string"}},messages:{type:"object",allowUnknown:!0},provider:{type:re},translate:{type:re},loadLocale:{type:re},setLocale:{type:re}}},log:{type:re}}};function Fe(t){return t===null?"null":Array.isArray(t)?"array":typeof t}function Gn(t,e){if(e===re)return!0;let r=Fe(t);return Array.isArray(e)?e.includes(r):r===e}function Ze(t,e,r,n){if(!e)return;let o=e.type||re;if(!Gn(t,o)){n.push({path:r,expected:o,actual:Fe(t),message:`Expected ${o} but got ${Fe(t)}`});return}if(o==="array"&&e.items&&Array.isArray(t)&&t.forEach((a,i)=>{Ze(a,e.items,`${r}[${i}]`,n)}),o==="object"&&t&&typeof t=="object"){let a=e.properties||{};for(let[i,s]of Object.entries(t)){if(!Object.prototype.hasOwnProperty.call(a,i)){e.allowUnknown||n.push({path:`${r}.${i}`,expected:"known property",actual:"unknown",message:`Unknown property "${i}"`});continue}Ze(s,a[i],`${r}.${i}`,n)}}}function Pt(t,e="",r={}){if(!t||typeof t!="object")return r;if(t.relations&&e&&(r[e]=t.relations),t.type==="object"&&t.properties&&Object.entries(t.properties).forEach(([n,o])=>{let a=e?`${e}.${n}`:n;Pt(o,a,r)}),t.type==="array"&&t.items){let n=`${e}[]`;Pt(t.items,n,r)}return r}var Sr=Pt(Ne,""),$r=Ne,Kn={"colors.primary":{widget:"input-color"},"colors.secondary":{widget:"input-color"},"colors.accent":{widget:"input-color"},"colors.background":{widget:"input-color"},"colors.success":{widget:"input-color"},"colors.warning":{widget:"input-color"},"colors.danger":{widget:"input-color"},"colors.info":{widget:"input-color"},"colors.gradientStops":{min:2,max:8,step:1,widget:"range"},"colors.elevationOpacity":{min:0,max:1,step:.01,widget:"range"},"colors.darkMode.background":{widget:"input-color"},"colors.darkMode.primary":{widget:"input-color"},"colors.darkMode.secondary":{widget:"input-color"},"colors.darkMode.accent":{widget:"input-color"},description:{widget:"textarea",maxLength:500,rows:4,placeholder:"Summarize the visual and interaction intent"},"typography.fontFamilyHeadings":{widget:"font-family-omnibox",icon:"text-aa",placeholder:"Heading font stack"},"typography.fontFamilyBody":{widget:"font-family-omnibox",icon:"text-aa",placeholder:"Body font stack"},"typography.fontFamilyMono":{widget:"font-family-omnibox",icon:"text-aa",placeholder:"Monospace font stack"},"typography.baseFontSize":{min:8,max:32,step:1,widget:"input-range"},"typography.fontScale":{min:1,max:2,step:.01,widget:"range"},"typography.fontWeightLight":{min:100,max:800,step:100,widget:"input-range"},"typography.fontWeightNormal":{min:100,max:800,step:100,widget:"input-range"},"typography.fontWeightMedium":{min:100,max:800,step:100,widget:"input-range"},"typography.fontWeightSemibold":{min:100,max:800,step:100,widget:"input-range"},"typography.fontWeightBold":{min:100,max:800,step:100,widget:"input-range"},"typography.lineHeightTight":{min:.75,max:3,step:.001,widget:"input-range"},"typography.lineHeightNormal":{min:.75,max:3,step:.001,widget:"input-range"},"typography.lineHeightRelaxed":{min:.75,max:3,step:.001,widget:"input-range"},"typography.letterSpacingTight":{min:-.1,max:.1,step:.001,widget:"range"},"typography.letterSpacingNormal":{min:-.1,max:.1,step:.001,widget:"range"},"typography.letterSpacingWide":{min:-.1,max:.1,step:.001,widget:"range"},"spatialRhythm.baseUnit":{min:1,max:16,step:1,widget:"range"},"spatialRhythm.scaleRatio":{min:1,max:2,step:.01,widget:"range"},"spatialRhythm.maxSpacingSteps":{min:4,max:64,step:1,widget:"range"},"spatialRhythm.containerPadding":{min:0,max:8,step:.05,widget:"range"},"spatialRhythm.inputPadding":{min:0,max:4,step:.05,widget:"range"},"spatialRhythm.buttonPadding":{min:0,max:4,step:.05,widget:"range"},"spatialRhythm.sectionSpacing":{min:0,max:8,step:.05,widget:"range"},"shape.radiusSize":{oneOf:Object.entries(S.RadiusSizes).map(([t,e])=>({const:e,title:t}))},"shape.borderWidth":{widget:"select",oneOf:Object.entries(S.BorderWidths).map(([t,e])=>({const:e,title:t}))},"shape.customRadius":{min:0,max:64,step:1,widget:"range"},"behavior.transitionSpeed":{oneOf:Object.entries(S.TransitionSpeeds).map(([t,e])=>({const:e,title:t}))},"behavior.animationEasing":{enum:Object.values(S.AnimationEasings)},"behavior.customTransitionSpeed":{min:0,max:1e3,step:10,widget:"range"},"behavior.focusRingWidth":{min:0,max:8,step:1,widget:"range"},"behavior.focusRingOpacity":{min:0,max:1,step:.01,widget:"range"},"behavior.hoverOpacity":{min:0,max:1,step:.01,widget:"range"},"layout.gridColumns":{min:1,max:24,step:1,widget:"range"},"layout.gridGutter":{min:0,max:8,step:.05,widget:"range"},"layout.maxWidth":{widget:"input-text",placeholder:"e.g. 1200 or 1200px"},"layout.maxWidths.sm":{widget:"input-text",placeholder:"e.g. 640 or 640px"},"layout.maxWidths.md":{widget:"input-text",placeholder:"e.g. 768 or 768px"},"layout.maxWidths.lg":{widget:"input-text",placeholder:"e.g. 1024 or 1024px"},"layout.maxWidths.xl":{widget:"input-text",placeholder:"e.g. 1280 or 1280px"},"layout.containerMaxWidth":{widget:"input-text",placeholder:"e.g. 1400px"},"layout.containerPadding":{widget:"input-text",placeholder:"e.g. var(--spacing-6)"},"layout.breakpoints.sm":{min:320,max:2560,step:1,widget:"input-number"},"layout.breakpoints.md":{min:480,max:3200,step:1,widget:"input-number"},"layout.breakpoints.lg":{min:640,max:3840,step:1,widget:"input-number"},"layout.breakpoints.xl":{min:768,max:5120,step:1,widget:"input-number"},"layout.baseShadowOpacity":{min:0,max:1,step:.01,widget:"range"},"layout.darkMode.baseShadowOpacity":{min:0,max:1,step:.01,widget:"range"},"layout.densityCompact":{min:.5,max:2,step:.05,widget:"range"},"layout.densityNormal":{min:.5,max:2,step:.05,widget:"range"},"layout.densityComfortable":{min:.5,max:2,step:.05,widget:"range"},"layout.buttonMinHeight":{min:24,max:96,step:1,widget:"range"},"layout.inputMinHeight":{min:24,max:96,step:1,widget:"range"},"layers.baseShadowOpacity":{min:0,max:1,step:.01,widget:"range"},"layers.shadowBlurMultiplier":{min:0,max:8,step:.1,widget:"range"},"layers.shadowOffsetMultiplier":{min:0,max:8,step:.1,widget:"range"},"layers.blurLight":{min:0,max:48,step:1,widget:"range"},"layers.blurMedium":{min:0,max:64,step:1,widget:"range"},"layers.blurHeavy":{min:0,max:96,step:1,widget:"range"},"layers.baseZIndex":{min:0,max:1e4,step:10,widget:"range"},"layers.zIndexStep":{min:1,max:100,step:1,widget:"range"},"layers.darkMode.baseShadowOpacity":{min:0,max:1,step:.01,widget:"range"},"advanced.linkStyle":{enum:Object.values(S.LinkStyles)},"a11y.minTouchTarget":{oneOf:Object.entries(S.TouchTargetSizes).map(([t,e])=>({const:e,title:t}))},"a11y.focusStyle":{enum:Object.values(S.FocusStyles)},"icons.defaultSize":{min:8,max:128,step:1,widget:"range",icon:"sparkle"}};function yr(t=[]){return t.join(".")}function vr(t=[]){return`/${t.join("/")}`}function Jn(t,e=[]){if(!(!t||typeof t!="object"))return e.reduce((r,n)=>{if(r!=null&&typeof r=="object")return r[n]},t)}function xr(t,e,r=[]){if(t!=null)return t;let n=Jn(e,r);return n??void 0}function Pe(t=""){return String(t).replace(/([a-z])([A-Z])/g,"$1 $2").replace(/[_-]+/g," ").replace(/\s+/g," ").trim().replace(/^./,e=>e.toUpperCase())}function Lr(t,e){if(!t)return"string";let r=t.type||"string";if(Array.isArray(r)){let n=Fe(e);return n!=="undefined"&&r.includes(n)?n:r.includes("string")?"string":r.find(o=>o!=="null")||r[0]||"string"}return r}function Ft(t,e,r=[]){return!t||!e||!Array.isArray(r)||r.forEach(n=>{e[n]!==void 0&&(t[n]=e[n])}),t}function wr(t,e){return Array.isArray(e?.oneOf)&&e.oneOf.length?e.oneOf:Array.isArray(e?.enum)&&e.enum.length?e.enum.map(r=>({const:r,title:Pe(r)})):Array.isArray(t?.oneOf)&&t.oneOf.length?t.oneOf:Array.isArray(t?.enum)&&t.enum.length?t.enum.map(r=>({const:r,title:Pe(r)})):null}function Yn(t){return t&&(t==="range"?"input-range":t)}function Xn(t,e){if(!Array.isArray(e)||!e.length)return t;let r=new Set;for(let n of e)!n||n.const===void 0||r.add(Fe(n.const));if(!r.size)return t;if(r.size===1){let n=Array.from(r)[0];if(n==="number")return"number";if(n==="string")return"string";if(n==="boolean")return"boolean"}return t}function kr(t,e,r){let n=Lr(e,r),o=t.toLowerCase(),a={label:Pe(t.split(".").slice(-1)[0]||t)};n==="boolean"&&(a.widget="toggle"),n==="number"&&(a.widget="range",o.includes("opacity")?(a.min=0,a.max=1,a.step=.01):o.includes("lineheight")?(a.min=.75,a.max=3,a.step=.001,a.widget="input-range"):o.includes("fontweight")?(a.min=100,a.max=800,a.step=100,a.widget="input-range"):o.endsWith("basefontsize")?(a.min=8,a.max=32,a.step=1,a.widget="input-range"):o.includes("scale")||o.includes("ratio")?(a.min=1,a.max=2,a.step=.01):(a.min=0,a.max=Math.max(10,Number.isFinite(Number(r))?Number(r)*4:100),a.step=1)),n==="string"&&t.startsWith("colors.")&&(a.widget="input-color"),n==="string"&&o==="description"&&(a.widget="textarea",a.maxLength=500,a.rows=4);let i=Kn[t]||{},s={...a,...i};return s.widget&&(s.widget=Yn(s.widget)),s}function zr(t,e,r,n,o,a){if(!t||typeof t!="object")return null;let i=xr(e,a,r),s=Lr(t,i);if(s==="object"&&t.properties){let m={type:"object",properties:{}};r.length>0&&(m.title=Pe(r[r.length-1]));let y={};for(let[v,h]of Object.entries(t.properties)){let $=e&&typeof e=="object"&&!Array.isArray(e)?e[v]:void 0,A=zr(h,$,[...r,v],n,o,a);A&&(m.properties[v]=A.schema,A.hasValue&&(y[v]=A.value))}return Object.keys(m.properties).length?{schema:m,value:y,hasValue:Object.keys(y).length>0}:null}if(s==="array"){let m=yr(r),y=kr(m,t,e);o[m]=y;let v=xr(e,a,r),h=t.items?.type||"string",$=Array.isArray(h)?h[0]:h,A={type:$},T=wr(t?.items,null);if(T&&(A.oneOf=T),$==="string"&&Array.isArray(v)&&v.length>0){let C=v.find(k=>typeof k=="string"&&k.trim().length>0);C&&(A.examples=[C])}Ft(A,t?.items,["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","minLength","maxLength","pattern","format","minItems","maxItems","uniqueItems","description","default"]);let I={type:"array",items:A};Ft(I,t,["minItems","maxItems","uniqueItems","description","default"]);let z=vr(r),M={},P=Array.isArray(A.oneOf)&&A.oneOf.length>0;if($==="string"&&P&&(M["ui:widget"]=I.maxItems===1?"radio":"checkbox-group"),$==="string"&&Array.isArray(v)&&v.length>0){let C=v.filter(k=>typeof k=="string"&&k.trim().length>0).slice(0,5).join(", ");C&&(M["ui:placeholder"]=C)}return Object.keys(M).length&&(n[z]={...n[z]||{},...M}),{schema:I,value:Array.isArray(e)?e:[],hasValue:Array.isArray(e)}}let d=yr(r),c=kr(d,t,i);o[d]=c;let p=wr(t,c),g={type:Xn(s==="null"?"string":s,p),title:c.label||Pe(r[r.length-1]||d)};p&&(g.oneOf=p),Ft(g,t,["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","minLength","maxLength","pattern","format","description","default"]),typeof c.maxLength=="number"&&g.maxLength===void 0&&(g.maxLength=c.maxLength),(g.type==="number"||g.type==="integer")&&typeof c.min=="number"&&g.minimum===void 0&&(g.minimum=c.min),(g.type==="number"||g.type==="integer")&&typeof c.max=="number"&&g.maximum===void 0&&(g.maximum=c.max),(g.type==="number"||g.type==="integer")&&typeof c.step=="number"&&g.multipleOf===void 0&&(g.multipleOf=c.step);let f=i;f!==void 0&&(g.examples=[f]);let w=vr(r),b={};return c.widget&&(b["ui:widget"]=c.widget),c.icon&&(b["ui:icon"]=c.icon),typeof c.min=="number"&&(b["ui:min"]=c.min),typeof c.max=="number"&&(b["ui:max"]=c.max),typeof c.step=="number"&&(b["ui:step"]=c.step),c.placeholder&&(b["ui:placeholder"]=c.placeholder),typeof c.rows=="number"&&(b["ui:options"]={...b["ui:options"]||{},rows:c.rows}),c.widget==="input-range"&&f!==void 0&&(b["ui:allowUnset"]=!0),(typeof c.min=="number"||typeof c.max=="number"||typeof c.step=="number")&&(b["ui:options"]={...b["ui:options"]||{},...typeof c.min=="number"?{min:c.min}:{},...typeof c.max=="number"?{max:c.max}:{},...typeof c.step=="number"?{step:c.step}:{}}),Object.keys(b).length&&(n[w]=b),{schema:g,value:e,hasValue:e!==void 0}}function be(t={}){let e={},r={"/colors":{"ui:layout":"flex","ui:layoutOptions":{wrap:!0,gap:"sm"}},"/colors/darkMode":{"ui:layout":"flex","ui:layoutOptions":{wrap:!0,gap:"sm"}}},n=Q?.default&&typeof Q.default=="object"?Q.default:null,o=zr(Ne,t,[],r,e,n);return{schema:o?.schema||{type:"object",properties:{}},uiSchema:r,values:o?.value||{},metadata:e}}function je(t={}){return be(t).metadata}function Nt(t,{log:e,context:r="PDS config"}={}){if(!t||typeof t!="object")return[];let n=[];return Ze(t,Ne,"design",n),n.length&&typeof e=="function"&&n.forEach(o=>{e("warn",`[${r}] ${o.message} at ${o.path}`)}),n}function jt(t,{log:e,context:r="PDS config"}={}){if(!t||typeof t!="object")return[];let n=[];return Ze(t,Vn,"config",n),n.length&&typeof e=="function"&&n.forEach(o=>{e("warn",`[${r}] ${o.message} at ${o.path}`)}),n}var Q={"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.35,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:S.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:S.RadiusSizes.small,borderWidth:S.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.318,fontFamilyHeadings:"'Space Grotesk', system-ui, sans-serif",fontFamilyBody:"'Space Grotesk', system-ui, sans-serif"},spatialRhythm:{baseUnit:4,scaleRatio:1.5},shape:{radiusSize:S.RadiusSizes.xlarge,borderWidth:S.BorderWidths.medium},behavior:{transitionSpeed:S.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:S.RadiusSizes.none,borderWidth:S.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.3,fontFamilyHeadings:"'Quicksand', 'Comfortaa', sans-serif",fontFamilyBody:"'Quicksand', 'Comfortaa', sans-serif"},spatialRhythm:{baseUnit:6,scaleRatio:1.5},shape:{radiusSize:S.RadiusSizes.xxlarge,borderWidth:S.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:S.RadiusSizes.none,borderWidth:S.BorderWidths.thick},behavior:{transitionSpeed:S.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:S.RadiusSizes.medium,borderWidth:S.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.3,fontFamilyHeadings:"'Playfair Display', 'Georgia', serif",fontFamilyBody:"'Crimson Text', 'Garamond', serif",fontWeightNormal:400,fontWeightSemibold:600},spatialRhythm:{baseUnit:4,scaleRatio:1.3},shape:{radiusSize:S.RadiusSizes.small,borderWidth:S.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:S.RadiusSizes.medium,borderWidth:S.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:S.RadiusSizes.small,borderWidth:S.BorderWidths.thick},behavior:{transitionSpeed:S.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:S.LineHeights.relaxed},spatialRhythm:{baseUnit:6,scaleRatio:1.4},shape:{radiusSize:S.RadiusSizes.xxlarge,borderWidth:S.BorderWidths.thin},behavior:{transitionSpeed:S.TransitionSpeeds.slow,animationEasing:S.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:S.RadiusSizes.none,borderWidth:S.BorderWidths.thick},behavior:{transitionSpeed:S.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.35,fontFamilyHeadings:"'Merriweather', Georgia, serif",fontFamilyBody:"'Noto Sans', system-ui, -apple-system, sans-serif"},spatialRhythm:{baseUnit:6,scaleRatio:1.35},shape:{radiusSize:S.RadiusSizes.large,borderWidth:S.BorderWidths.medium},behavior:{transitionSpeed:S.TransitionSpeeds.normal,animationEasing:S.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"}},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:S.LineHeights.tight},spatialRhythm:{baseUnit:4,scaleRatio:1.25,containerPadding:1.25,sectionSpacing:2.5},shape:{radiusSize:S.RadiusSizes.large,borderWidth:S.BorderWidths.thin},layers:{shadowDepth:"medium",blurMedium:12},behavior:{transitionSpeed:S.TransitionSpeeds.fast,animationEasing:S.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:S.LineHeights.relaxed},spatialRhythm:{baseUnit:4,scaleRatio:1.25,containerPadding:1.5,sectionSpacing:3},shape:{radiusSize:S.RadiusSizes.medium,borderWidth:S.BorderWidths.thin},layers:{shadowDepth:"light",blurLight:8},behavior:{transitionSpeed:S.TransitionSpeeds.normal,animationEasing:S.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",info:"#0e7490",background:"#f6f6f6",darkMode:{background:"#0f0f0f",secondary:"#8a8a8a",primary:"#b1b1b1"}},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:S.RadiusSizes.small,borderWidth:S.BorderWidths.medium},behavior:{transitionSpeed:S.TransitionSpeeds.fast,animationEasing:S.AnimationEasings["ease-out"],focusRingWidth:3},a11y:{minTouchTarget:S.TouchTargetSizes.comfortable,focusStyle:S.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,sectionSpacing:2.5},shape:{radiusSize:S.RadiusSizes.medium,borderWidth:S.BorderWidths.thin},layers:{shadowDepth:"light",blurLight:6},behavior:{transitionSpeed:S.TransitionSpeeds.fast,animationEasing:S.AnimationEasings["ease-in-out"],focusRingWidth:3,focusRingOpacity:.4},a11y:{minTouchTarget:S.TouchTargetSizes.standard,focusStyle:S.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:S.LineHeights.relaxed},spatialRhythm:{baseUnit:4,scaleRatio:1.25,sectionSpacing:1.5},shape:{radiusSize:S.RadiusSizes.medium,borderWidth:S.BorderWidths.thin},behavior:{transitionSpeed:S.TransitionSpeeds.fast,animationEasing:S.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:S.LineHeights.tight},spatialRhythm:{baseUnit:4,scaleRatio:1.2,containerPadding:1.5,sectionSpacing:2},shape:{radiusSize:S.RadiusSizes.small,borderWidth:S.BorderWidths.thin},layers:{shadowDepth:"light",blurLight:4},behavior:{transitionSpeed:S.TransitionSpeeds.fast,animationEasing:S.AnimationEasings["ease-in-out"],focusRingWidth:2},layout:{densityCompact:.85,gridColumns:12}}};Q.default={id:"default",name:"Default",tags:["app","featured"],description:"Fresh and modern design system with balanced aesthetics and usability",options:{liquidGlassEffects:!1,backgroundMesh:0},form:{options:{widgets:{booleans:"toggle",numbers:"input",selects:"standard"},layouts:{fieldsets:"default",arrays:"default"},enhancements:{icons:!0,datalists:!0,rangeOutput:!0,colorInput:!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:S.FontWeights.light,fontWeightNormal:S.FontWeights.normal,fontWeightMedium:S.FontWeights.medium,fontWeightSemibold:S.FontWeights.semibold,fontWeightBold:S.FontWeights.bold,lineHeightTight:S.LineHeights.tight,lineHeightNormal:S.LineHeights.normal,lineHeightRelaxed:S.LineHeights.relaxed,letterSpacingTight:-.025,letterSpacingNormal:0,letterSpacingWide:.025},spatialRhythm:{baseUnit:4,scaleRatio:1.25,maxSpacingSteps:32,containerPadding:1,inputPadding:.75,buttonPadding:1,sectionSpacing:2},layers:{baseShadowOpacity:.1,darkMode:{baseShadowOpacity:.25},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:S.RadiusSizes.large,borderWidth:S.BorderWidths.medium,customRadius:null},behavior:{transitionSpeed:S.TransitionSpeeds.normal,animationEasing:S.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:30,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:S.LinkStyles.inline,colorDerivation:"hsl"},a11y:{minTouchTarget:S.TouchTargetSizes.standard,prefersReducedMotion:!0,focusStyle:S.FocusStyles.ring},icons:{set:"phosphor",weight:"regular",defaultSize:24,externalPath:"/assets/img/icons/",sizes:S.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:"/assets/pds/icons/pds-icons.svg"},debug:!1};var Cr=je(Q.default),Mr=be(Q.default);function Ot(t="log",e,...r){let n=globalThis?.PDS?.log;if(typeof n=="function"){n(t,e,...r);return}if(typeof console>"u")return;let o=typeof console[t]=="function"?console[t].bind(console):typeof console.log=="function"?console.log.bind(console):null;o&&(r.length>0?o(e,...r):o(e))}_e();Bt();var Z=class t{static#v;static get instance(){return this.#v}#e;#a;constructor(e={}){this.options={debug:!1,...e},this.options.design||(this.options.design={}),this.options.debug&&this.options.log?.("debug","Generator options:",this.options),t.#v=this,this.tokens=this.generateTokens(),this.options.debug&&this.options.log?.("debug","Generated tokens:",this.tokens),this.#Se(),typeof CSSStyleSheet<"u"?this.#Me():this.options.debug&&this.options.log?.("debug","[Generator] Skipping browser features (CSSStyleSheet not available)")}generateTokens(){let e=this.options.design||{},r=this.#A(e),n=e.layers||{},o=this.#w(n,r.light),a=this.#M(o),i=r.dark!=null?this.#M(this.#w(n,r.dark)):null;return{colors:this.#T(e.colors||{},r),spacing:this.generateSpacingTokens(e.spatialRhythm||{}),radius:this.#O(e.shape||{}),borderWidths:this.#B(e.shape||{}),typography:this.generateTypographyTokens(e.typography||{}),shadows:a,darkShadows:i,layout:this.#D(e.layout||{}),transitions:this.#H(e.behavior||{}),zIndex:this.#W(e.layers||{}),icons:this.#U(e.icons||{})}}#A(e={}){let r=e.layout||{},n=e.layers||{};return{light:this.#x(r.baseShadowOpacity??n.baseShadowOpacity),dark:this.#x(r.darkMode?.baseShadowOpacity??n.darkMode?.baseShadowOpacity)}}#x(e){let r=Number(e);if(Number.isFinite(r))return Math.min(Math.max(r,0),1)}#w(e={},r){let n={...e};return r!=null&&(n.baseShadowOpacity=r),n}#T(e,r={}){let{primary:n="#3b82f6",secondary:o="#64748b",accent:a="#ec4899",background:i="#ffffff",success:s=null,warning:d="#FFBF00",danger:c=null,info:p=null,darkMode:l={}}=e,u={primary:this.#i(n),secondary:this.#i(o),accent:this.#i(a),success:this.#i(s||this.#R(n)),warning:this.#i(d||a),danger:this.#i(c||this.#I(n)),info:this.#i(p||n),gray:this.#k(o),surface:this.#S(i)};return u.surface.fieldset=this.#_(u.surface),u.surfaceSmart=this.#C(u.surface,r),u.dark=this.#F(u,i,l),u.dark&&u.dark.surface&&(u.dark.surfaceSmart=this.#C(u.dark.surface,r)),u.interactive={light:this.#r(u.primary,u.surface.base),dark:this.#r(u.dark.primary,u.dark.surface.base)},u.accentInteractive={light:this.#r(u.accent,u.surface.base),dark:this.#r(u.dark.accent,u.dark.surface.base)},u.surfaceAccent={light:this.#n(u.accent,u.surface),dark:this.#n(u.dark.accent,u.dark.surface)},u.dangerInteractive={light:this.#r(u.danger,u.surface.base),dark:this.#r(u.dark.danger,u.dark.surface.base)},u.successInteractive={light:this.#r(u.success,u.surface.base),dark:this.#r(u.dark.success,u.dark.surface.base)},u.warningInteractive={light:this.#r(u.warning,u.surface.base),dark:this.#r(u.dark.warning,u.dark.surface.base)},u.infoInteractive={light:this.#r(u.info,u.surface.base),dark:this.#r(u.dark.info,u.dark.surface.base)},u.surfaceStatus={light:{success:this.#n(u.success,u.surface),warning:this.#n(u.warning,u.surface),info:this.#n(u.info,u.surface),danger:this.#n(u.danger,u.surface)},dark:{success:this.#n(u.dark.success,u.dark.surface),warning:this.#n(u.dark.warning,u.dark.surface),info:this.#n(u.dark.info,u.dark.surface),danger:this.#n(u.dark.danger,u.dark.surface)}},u}#i(e){let r=this.#s(e);return{50:this.#t(r.h,Math.max(r.s-10,10),Math.min(r.l+45,95)),100:this.#t(r.h,Math.max(r.s-5,15),Math.min(r.l+35,90)),200:this.#t(r.h,r.s,Math.min(r.l+25,85)),300:this.#t(r.h,r.s,Math.min(r.l+15,75)),400:this.#t(r.h,r.s,Math.min(r.l+5,65)),500:e,600:this.#t(r.h,r.s,Math.max(r.l-10,25)),700:this.#t(r.h,r.s,Math.max(r.l-20,20)),800:this.#t(r.h,r.s,Math.max(r.l-30,15)),900:this.#t(r.h,r.s,Math.max(r.l-40,10))}}#R(e){let r=this.#s(e);return this.#t(120,Math.max(r.s,60),45)}#I(e){let r=this.#s(e);return this.#t(0,Math.max(r.s,70),50)}#k(e){let r=this.#s(e),n=r.h,o=Math.min(r.s,10);return{50:this.#t(n,o,98),100:this.#t(n,o,95),200:this.#t(n,o,88),300:this.#t(n,o,78),400:this.#t(n,o,60),500:e,600:this.#t(n,Math.min(o+5,15),45),700:this.#t(n,Math.min(o+8,18),35),800:this.#t(n,Math.min(o+10,20),20),900:this.#t(n,Math.min(o+12,22),10)}}#S(e){let r=this.#s(e);return{base:e,subtle:this.#t(r.h,Math.max(r.s,2),Math.max(r.l-2,2)),elevated:this.#t(r.h,Math.max(r.s,3),Math.max(r.l-4,5)),sunken:this.#t(r.h,Math.max(r.s,4),Math.max(r.l-6,8)),overlay:this.#t(r.h,Math.max(r.s,2),Math.min(r.l+2,98)),inverse:this.#$(e),hover:"color-mix(in oklab, var(--color-surface-base) 92%, var(--color-text-primary) 8%);"}}#_(e){return{base:e.subtle,subtle:e.elevated,elevated:e.sunken,sunken:this.#h(e.sunken,.05),overlay:e.elevated}}#h(e,r=.05){let n=this.#s(e),o=Math.max(n.l-n.l*r,5);return this.#t(n.h,n.s,o)}#$(e){let r=this.#s(e);if(r.l>50){let n=Math.min(r.s+5,25),o=Math.max(12-(r.l-50)*.1,8);return this.#t(r.h,n,o)}else{let n=Math.max(r.s-10,5),o=Math.min(85+(50-r.l)*.3,95);return this.#t(r.h,n,o)}}#F(e,r="#ffffff",n={}){let o=n.background?n.background:this.#$(r),a=this.#S(o),i=(s,d)=>s?this.#i(s):d;return{surface:{...a,fieldset:this.#N(a)},primary:i(n.primary,e.primary),secondary:i(n.secondary,e.secondary),accent:i(n.accent,e.accent),gray:n.secondary?this.#k(n.secondary):e.gray,success:i(n.success,e.success),info:i(n.info,e.info),warning:i(n.warning,e.warning),danger:i(n.danger,e.danger)}}#p(e){let r=String(e||"").replace("#",""),n=r.length===3?r.split("").map(a=>a+a).join(""):r,o=parseInt(n,16);return{r:o>>16&255,g:o>>8&255,b:o&255}}#u(e){let{r,g:n,b:o}=this.#p(e),a=[r/255,n/255,o/255].map(i=>i<=.03928?i/12.92:Math.pow((i+.055)/1.055,2.4));return .2126*a[0]+.7152*a[1]+.0722*a[2]}#g(e,r){let n=this.#u(e),o=this.#u(r),a=Math.max(n,o),i=Math.min(n,o);return(a+.05)/(i+.05)}#f(e,r=4.5){if(!e)return"#000000";let n="#ffffff",o="#000000",a=this.#g(e,n);if(a>=r)return n;let i=this.#g(e,o);return i>=r||i>a?o:n}#L(e,r=1){let{r:n,g:o,b:a}=this.#p(e);return`rgba(${n}, ${o}, ${a}, ${r})`}#z(e,r,n=.5){let o=this.#p(e),a=this.#p(r),i=Math.round(o.r+(a.r-o.r)*n),s=Math.round(o.g+(a.g-o.g)*n),d=Math.round(o.b+(a.b-o.b)*n);return this.#P(i,s,d)}#P(e,r,n){let o=a=>{let i=Math.max(0,Math.min(255,Math.round(a))).toString(16);return i.length===1?"0"+i:i};return`#${o(e)}${o(r)}${o(n)}`}#N(e){return{base:e.elevated,subtle:e.overlay,elevated:this.#m(e.elevated,.08),sunken:e.elevated,overlay:this.#m(e.overlay,.05)}}#c(e={},r="#000000",n=4.5){let o=["600","700","800","500","400","900","300","200"],a={shade:null,color:null,ratio:0};for(let i of o){let s=e?.[i];if(!s||typeof s!="string")continue;let d=this.#g(s,r);if(d>a.ratio&&(a={shade:i,color:s,ratio:d}),d>=n)return s}return a.color||e?.["600"]||e?.["500"]}#r(e={},r="#ffffff"){let n=this.#u(r)<.18,o=this.#j(e,4.5),a=n?this.#m(o,.15):this.#h(o,.1),i=n?this.#m(o,.07):this.#h(o,.2),s=this.#c(e,r,4.5),d=this.#c(e,r,5.5),c=this.#c(e,r,3);return{fill:o,fillHover:a,fillActive:i,text:s,textHover:d||s,textVisited:this.#z(s||o,r,.2),focusRing:c||s||o,selectionBg:s||o,selectionText:this.#f(s||o,4.5),contrast:this.#f(o,4.5)}}#n(e={},r={}){let n={};return Object.entries(r).forEach(([o,a])=>{if(!a||typeof a!="string"||!a.startsWith("#"))return;let i=this.#c(e,a,4.5),s=this.#c(e,a,5);n[o]={text:i,textHover:s||i}}),n}#j(e={},r=4.5){let n=["600","700","800","500","400","900"],o={shade:null,color:null,ratio:0};for(let a of n){let i=e?.[a];if(!i||typeof i!="string")continue;let s=this.#g(i,"#ffffff");if(s>o.ratio&&(o={shade:a,color:i,ratio:s}),s>=r)return i}return o.color||e?.["600"]||e?.["500"]}#C(e,r={}){let n={},o=r.light??.1,a=r.dark??.25;return Object.entries(e).forEach(([i,s])=>{if(!s||typeof s!="string"||!s.startsWith("#"))return;let d=this.#u(s)<.5,c=this.#f(s,4.5),p=this.#f(s,3),l=this.#z(c,s,.4),u=c,g=l,f=d?"#ffffff":"#000000",w=d?a:o,b=this.#L(f,w),m=d?"#ffffff":"#000000",y=d?.15:.1,v=this.#L(m,y);n[i]={bg:s,text:c,textSecondary:p,textMuted:l,icon:u,iconSubtle:g,shadow:b,border:v,scheme:d?"dark":"light"}}),n}#m(e,r=.05){let n=this.#s(e),o=Math.min(n.l+(100-n.l)*r,95);return this.#t(n.h,n.s,o)}generateSpacingTokens(e){let{baseUnit:r=4,scaleRatio:n=1.25,maxSpacingSteps:o=12}=e,a=Number.isFinite(Number(r))?Number(r):4,i=Math.min(Number.isFinite(Number(o))?Number(o):12,12),s={0:"0"};for(let d=1;d<=i;d++)s[d]=`${a*d}px`;return s}#O(e){let{radiusSize:r="medium",customRadius:n=null}=e,o;n!=null?o=n:typeof r=="number"?o=r:typeof r=="string"?o=S.RadiusSizes[r]??S.RadiusSizes.medium:o=S.RadiusSizes.medium;let a=Number.isFinite(Number(o))?Number(o):S.RadiusSizes.medium;return{none:"0",xs:`${Number.isFinite(a*.25)?Math.round(a*.25):0}px`,sm:`${Number.isFinite(a*.5)?Math.round(a*.5):0}px`,md:`${a}px`,lg:`${Number.isFinite(a*1.5)?Math.round(a*1.5):0}px`,xl:`${Number.isFinite(a*2)?Math.round(a*2):0}px`,full:"9999px"}}#B(e){let{borderWidth:r="medium"}=e,n;typeof r=="number"?n=r:typeof r=="string"?n=S.BorderWidths[r]??S.BorderWidths.medium:n=S.BorderWidths.medium;let o=Number.isFinite(Number(n))?Number(n):S.BorderWidths.medium,a=i=>`${Math.max(1,Math.ceil(i))}px`;return{hairline:a(o*.25),thin:a(o*.5),medium:a(o),thick:a(o*1.5)}}generateTypographyTokens(e){let{fontFamilyHeadings:r="system-ui, -apple-system, sans-serif",fontFamilyBody:n="system-ui, -apple-system, sans-serif",fontFamilyMono:o='ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, monospace',baseFontSize:a=16,fontScale:i=1.25,fontWeightLight:s=S.FontWeights.light,fontWeightNormal:d=S.FontWeights.normal,fontWeightMedium:c=S.FontWeights.medium,fontWeightSemibold:p=S.FontWeights.semibold,fontWeightBold:l=S.FontWeights.bold,lineHeightTight:u=S.LineHeights.tight,lineHeightNormal:g=S.LineHeights.normal,lineHeightRelaxed:f=S.LineHeights.relaxed}=e,w=Number.isFinite(Number(a))?Number(a):16,b=Number.isFinite(Number(i))?Number(i):1.25;return{fontFamily:{headings:r,body:n,mono:o},fontSize:{xs:`${Math.round(w/Math.pow(b,2))}px`,sm:`${Math.round(w/b)}px`,base:`${w}px`,lg:`${Math.round(w*b)}px`,xl:`${Math.round(w*Math.pow(b,2))}px`,"2xl":`${Math.round(w*Math.pow(b,3))}px`,"3xl":`${Math.round(w*Math.pow(b,4))}px`,"4xl":`${Math.round(w*Math.pow(b,5))}px`},fontWeight:{light:s?.toString()||"300",normal:d?.toString()||"400",medium:c?.toString()||"500",semibold:p?.toString()||"600",bold:l?.toString()||"700"},lineHeight:{tight:u?.toString()||"1.25",normal:g?.toString()||"1.5",relaxed:f?.toString()||"1.75"}}}#M(e){let{baseShadowOpacity:r=.1,shadowBlurMultiplier:n=1,shadowOffsetMultiplier:o=1}=e,a=`rgba(0, 0, 0, ${r})`,i=`rgba(0, 0, 0, ${r*.5})`;return{sm:`0 ${1*o}px ${2*n}px 0 ${i}`,base:`0 ${1*o}px ${3*n}px 0 ${a}, 0 ${1*o}px ${2*n}px 0 ${i}`,md:`0 ${4*o}px ${6*n}px ${-1*o}px ${a}, 0 ${2*o}px ${4*n}px ${-1*o}px ${i}`,lg:`0 ${10*o}px ${15*n}px ${-3*o}px ${a}, 0 ${4*o}px ${6*n}px ${-2*o}px ${i}`,xl:`0 ${20*o}px ${25*n}px ${-5*o}px ${a}, 0 ${10*o}px ${10*n}px ${-5*o}px ${i}`,inner:`inset 0 ${2*o}px ${4*n}px 0 ${i}`}}#D(e){let{containerPadding:r=16,breakpoints:n={sm:640,md:768,lg:1024,xl:1280}}=e,o=this.#b(e,"maxWidth"),a=e.maxWidth,i=this.#E(e,{emitFallbacks:!1});return{maxWidth:o?this.#o(a,"1200px"):void 0,maxWidthSm:i.sm,maxWidthMd:i.md,maxWidthLg:i.lg,maxWidthXl:i.xl,minHeight:"100vh",containerPadding:this.#o(r,"16px"),breakpoints:{sm:this.#o(n.sm,"640px"),md:this.#o(n.md,"768px"),lg:this.#o(n.lg,"1024px"),xl:this.#o(n.xl,"1280px")},pageMargin:"120px",sectionGap:"160px",containerGap:"200px",heroSpacing:"240px",footerSpacing:"160px"}}#E(e={},r={}){let{emitFallbacks:n=!0}=r,o={sm:640,md:768,lg:1024,xl:1280},{maxWidths:a={},containerPadding:i=16,breakpoints:s=o}=e||{},d=this.#b(e,"maxWidth"),c=["sm","md","lg","xl"].some(b=>this.#b(a,b));if(!n&&!d&&!c)return{sm:void 0,md:void 0,lg:void 0,xl:void 0};let p=e?.maxWidth,l=this.#l(i,16),u=this.#l(p,o.xl),g={sm:this.#l(s.sm,o.sm),md:this.#l(s.md,o.md),lg:this.#l(s.lg,o.lg),xl:this.#l(s.xl,o.xl)},f=b=>b?Math.max(320,b-l*2):u,w={sm:Math.min(u,f(g.sm)),md:Math.min(u,f(g.md)),lg:Math.min(u,f(g.lg)),xl:Math.max(320,u)};return{sm:this.#o(a.sm,`${w.sm}px`),md:this.#o(a.md,`${w.md}px`),lg:this.#o(a.lg,`${w.lg}px`),xl:this.#o(a.xl,`${w.xl}px`)}}#b(e,r){if(!e||typeof e!="object"||!Object.prototype.hasOwnProperty.call(e,r))return!1;let n=e[r];return!(n==null||typeof n=="string"&&n.trim().length===0)}#o(e,r){return typeof e=="number"&&Number.isFinite(e)?`${e}px`:typeof e=="string"&&e.trim().length>0?e:r}#l(e,r){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"){let n=parseFloat(e);if(Number.isFinite(n))return n}return r}#H(e){let{transitionSpeed:r=S.TransitionSpeeds.normal,animationEasing:n=S.AnimationEasings["ease-out"]}=e,o;return typeof r=="number"?o=r:typeof r=="string"&&S.TransitionSpeeds[r]?o=S.TransitionSpeeds[r]:o=S.TransitionSpeeds.normal,{fast:`${Math.round(o*.6)}ms`,normal:`${o}ms`,slow:`${Math.round(o*1.4)}ms`}}#W(e){let{baseZIndex:r=1e3,zIndexStep:n=10}=e;return{dropdown:r.toString(),sticky:(r+n*2).toString(),fixed:(r+n*3).toString(),modal:(r+n*4).toString(),drawer:(r+n*5).toString(),popover:(r+n*6).toString(),tooltip:(r+n*7).toString(),notification:(r+n*8).toString()}}#U(e){let{set:r="phosphor",weight:n="regular",defaultSize:o=24,sizes:a={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/"}=e;return{set:r,weight:n,defaultSize:`${o}px`,sizes:Object.fromEntries(Object.entries(a).map(([d,c])=>[d,`${c}px`])),spritePath:i,externalPath:s}}#q(e){let r=[];r.push(` /* Colors */
2
2
  `);let n=(o,a="")=>{Object.entries(o).forEach(([i,s])=>{typeof s=="object"&&s!==null?n(s,`${a}${i}-`):typeof s=="string"&&r.push(` --color-${a}${i}: ${s};
3
- `)})};return Object.entries(t).forEach(([o,a])=>{o!=="dark"&&o!=="surfaceSmart"&&o!=="interactive"&&typeof a=="object"&&a!==null&&n(a,`${o}-`)}),t.surfaceSmart&&(r.push(` /* Smart Surface Tokens (context-aware) */
4
- `),Object.entries(t.surfaceSmart).forEach(([o,a])=>{r.push(` --surface-${o}-bg: ${a.bg};
3
+ `)})};Object.entries(e).forEach(([o,a])=>{o!=="dark"&&o!=="surfaceSmart"&&o!=="interactive"&&o!=="accentInteractive"&&o!=="dangerInteractive"&&o!=="successInteractive"&&o!=="warningInteractive"&&o!=="infoInteractive"&&o!=="surfaceAccent"&&o!=="surfaceStatus"&&typeof a=="object"&&a!==null&&n(a,`${o}-`)}),e.surfaceSmart&&(r.push(` /* Smart Surface Tokens (context-aware) */
4
+ `),Object.entries(e.surfaceSmart).forEach(([o,a])=>{r.push(` --surface-${o}-bg: ${a.bg};
5
5
  `),r.push(` --surface-${o}-text: ${a.text};
6
6
  `),r.push(` --surface-${o}-text-secondary: ${a.textSecondary};
7
7
  `),r.push(` --surface-${o}-text-muted: ${a.textMuted};
@@ -13,16 +13,71 @@ var qn=Object.defineProperty;var _t=(e,t)=>()=>(e&&(t=e(e=0)),t);var Ft=(e,t)=>{
13
13
  `)),r.push(` /* Semantic Text Colors */
14
14
  `),r.push(` --color-text-primary: var(--color-gray-900);
15
15
  `),r.push(` --color-text-secondary: var(--color-gray-600);
16
- `),r.push(` --color-text-muted: var(--color-gray-600);
16
+ `),r.push(` --color-text-muted: var(--color-gray-500);
17
17
  `),r.push(` --color-border: var(--color-gray-300);
18
18
  `),r.push(` --color-input-bg: var(--color-surface-base);
19
19
  `),r.push(` --color-input-disabled-bg: var(--color-gray-50);
20
20
  `),r.push(` --color-input-disabled-text: var(--color-gray-500);
21
21
  `),r.push(` --color-code-bg: var(--color-gray-100);
22
- `),t.interactive&&t.interactive.light&&(r.push(` /* Interactive Colors - optimized for specific use cases */
23
- `),r.push(` --color-primary-fill: ${t.interactive.light.fill}; /* For button backgrounds with white text */
24
- `),r.push(` --color-primary-text: ${t.interactive.light.text}; /* For links and outline buttons on light surfaces */
25
- `)),r.push(` /* Translucent Surface Tokens */
22
+ `),e.interactive&&e.interactive.light&&(r.push(` /* Interactive Colors - optimized for specific use cases */
23
+ `),r.push(` --color-primary-fill: ${e.interactive.light.fill}; /* For button backgrounds with white text */
24
+ `),r.push(` --color-primary-fill-hover: ${e.interactive.light.fillHover};
25
+ `),r.push(` --color-primary-fill-active: ${e.interactive.light.fillActive};
26
+ `),r.push(` --color-primary-text: ${e.interactive.light.text}; /* For links and outline buttons on light surfaces */
27
+ `),r.push(` --color-primary-text-hover: ${e.interactive.light.textHover};
28
+ `),r.push(` --color-primary-text-visited: ${e.interactive.light.textVisited};
29
+ `),r.push(` --color-primary-contrast: ${e.interactive.light.contrast};
30
+ `),r.push(` --color-focus-ring: ${e.interactive.light.focusRing};
31
+ `),r.push(` --color-selection-bg: ${e.interactive.light.selectionBg};
32
+ `),r.push(` --color-selection-text: ${e.interactive.light.selectionText};
33
+ `),r.push(` --color-link: var(--color-primary-text);
34
+ `),r.push(` --color-link-hover: var(--color-primary-text-hover);
35
+ `),r.push(` --color-link-visited: var(--color-primary-text-visited);
36
+ `)),e.accentInteractive?.light&&(r.push(` /* Accent Role Colors */
37
+ `),r.push(` --color-accent-fill: ${e.accentInteractive.light.fill};
38
+ `),r.push(` --color-accent-fill-hover: ${e.accentInteractive.light.fillHover};
39
+ `),r.push(` --color-accent-fill-active: ${e.accentInteractive.light.fillActive};
40
+ `),r.push(` --color-accent-text: ${e.accentInteractive.light.text};
41
+ `),r.push(` --color-accent-text-hover: ${e.accentInteractive.light.textHover};
42
+ `)),e.surfaceAccent?.light&&(r.push(` /* Surface-Aware Accent Text Tokens */
43
+ `),Object.entries(e.surfaceAccent.light).forEach(([o,a])=>{r.push(` --surface-${o}-accent-text: ${a.text};
44
+ `),r.push(` --surface-${o}-accent-text-hover: ${a.textHover};
45
+ `)})),e.dangerInteractive?.light&&(r.push(` /* Danger Role Colors */
46
+ `),r.push(` --color-danger-fill: ${e.dangerInteractive.light.fill};
47
+ `),r.push(` --color-danger-fill-hover: ${e.dangerInteractive.light.fillHover};
48
+ `),r.push(` --color-danger-fill-active: ${e.dangerInteractive.light.fillActive};
49
+ `),r.push(` --color-danger-text: ${e.dangerInteractive.light.text};
50
+ `),r.push(` --color-danger-text-hover: ${e.dangerInteractive.light.textHover};
51
+ `),r.push(` --color-danger-contrast: ${e.dangerInteractive.light.contrast};
52
+ `)),e.successInteractive?.light&&(r.push(` /* Success Role Colors */
53
+ `),r.push(` --color-success-fill: ${e.successInteractive.light.fill};
54
+ `),r.push(` --color-success-fill-hover: ${e.successInteractive.light.fillHover};
55
+ `),r.push(` --color-success-fill-active: ${e.successInteractive.light.fillActive};
56
+ `),r.push(` --color-success-text: ${e.successInteractive.light.text};
57
+ `),r.push(` --color-success-text-hover: ${e.successInteractive.light.textHover};
58
+ `),r.push(` --color-success-contrast: ${e.successInteractive.light.contrast};
59
+ `)),e.warningInteractive?.light&&(r.push(` /* Warning Role Colors */
60
+ `),r.push(` --color-warning-fill: ${e.warningInteractive.light.fill};
61
+ `),r.push(` --color-warning-fill-hover: ${e.warningInteractive.light.fillHover};
62
+ `),r.push(` --color-warning-fill-active: ${e.warningInteractive.light.fillActive};
63
+ `),r.push(` --color-warning-text: ${e.warningInteractive.light.text};
64
+ `),r.push(` --color-warning-text-hover: ${e.warningInteractive.light.textHover};
65
+ `),r.push(` --color-warning-contrast: ${e.warningInteractive.light.contrast};
66
+ `)),e.infoInteractive?.light&&(r.push(` /* Info Role Colors */
67
+ `),r.push(` --color-info-fill: ${e.infoInteractive.light.fill};
68
+ `),r.push(` --color-info-fill-hover: ${e.infoInteractive.light.fillHover};
69
+ `),r.push(` --color-info-fill-active: ${e.infoInteractive.light.fillActive};
70
+ `),r.push(` --color-info-text: ${e.infoInteractive.light.text};
71
+ `),r.push(` --color-info-text-hover: ${e.infoInteractive.light.textHover};
72
+ `),r.push(` --color-info-contrast: ${e.infoInteractive.light.contrast};
73
+ `)),e.surfaceStatus?.light&&(r.push(` /* Surface-Aware Status Text Tokens */
74
+ `),Object.entries(e.surfaceStatus.light).forEach(([o,a])=>{Object.entries(a).forEach(([i,s])=>{r.push(` --surface-${i}-${o}-text: ${s.text};
75
+ `),r.push(` --surface-${i}-${o}-text-hover: ${s.textHover};
76
+ `)})})),r.push(` /* Semantic Callout Display Tokens */
77
+ `);for(let o of["success","info","warning","danger"])r.push(` --color-${o}-display-bg: var(--color-${o}-50);
78
+ `),r.push(` --color-${o}-display-border: var(--color-${o}-600);
79
+ `),r.push(` --color-${o}-display-text: var(--color-${o}-900);
80
+ `);return r.push(` /* Translucent Surface Tokens */
26
81
  `),r.push(` --color-surface-translucent-25: color-mix(in oklab, var(--color-surface-subtle) 25%, transparent 75%);
27
82
  `),r.push(` --color-surface-translucent-50: color-mix(in oklab, var(--color-surface-subtle) 50%, transparent 50%);
28
83
  `),r.push(` --color-surface-translucent-75: color-mix(in oklab, var(--color-surface-subtle) 75%, transparent 25%);
@@ -41,8 +96,8 @@ var qn=Object.defineProperty;var _t=(e,t)=>()=>(e&&(t=e(e=0)),t);var Ft=(e,t)=>{
41
96
 
42
97
  /* Legacy alias for backwards compatibility */
43
98
  --backdrop-background: var(--backdrop-bg);
44
- `),r.push(this.#G(t)),`${r.join("")}
45
- `}#G(t){let r=t.primary?.[500]||"#3b82f6",n=t.secondary?.[500]||"#8b5cf6",o=t.accent?.[500]||"#f59e0b";return`
99
+ `),r.push(this.#V(e)),`${r.join("")}
100
+ `}#V(e){let r=e.primary?.[500]||"#3b82f6",n=e.secondary?.[500]||"#8b5cf6",o=e.accent?.[500]||"#f59e0b";return`
46
101
  /* Mesh Gradient Backgrounds */
47
102
  --background-mesh-01: radial-gradient(at 27% 37%, color-mix(in oklab, ${r} 25%, transparent) 0px, transparent 50%),
48
103
  radial-gradient(at 97% 21%, color-mix(in oklab, ${n} 22%, transparent) 0px, transparent 50%),
@@ -68,56 +123,114 @@ var qn=Object.defineProperty;var _t=(e,t)=>()=>(e&&(t=e(e=0)),t);var Ft=(e,t)=>{
68
123
  radial-gradient(at 10% 10%, color-mix(in oklab, ${o} 20%, transparent) 0px, transparent 50%),
69
124
  radial-gradient(at 90% 10%, color-mix(in oklab, ${n} 18%, transparent) 0px, transparent 50%),
70
125
  radial-gradient(at 50% 90%, color-mix(in oklab, ${o} 15%, transparent) 0px, transparent 50%);
71
- `}#V(t){let r=[` /* Spacing */
72
- `];return Object.entries(t).forEach(([n,o])=>{n!=null&&n!=="NaN"&&o!==void 0&&!o.includes("NaN")&&r.push(` --spacing-${n}: ${o};
126
+ `}#G(e){let r=[` /* Spacing */
127
+ `];return Object.entries(e).forEach(([n,o])=>{n!=null&&n!=="NaN"&&o!==void 0&&!o.includes("NaN")&&r.push(` --spacing-${n}: ${o};
73
128
  `)}),`${r.join("")}
74
- `}#K(t){let r=[` /* Border Radius */
75
- `];return Object.entries(t).forEach(([n,o])=>{r.push(` --radius-${n}: ${o};
129
+ `}#K(e){let r=[` /* Border Radius */
130
+ `];return Object.entries(e).forEach(([n,o])=>{r.push(` --radius-${n}: ${o};
76
131
  `)}),`${r.join("")}
77
- `}#J(t){let r=[` /* Border Widths */
78
- `];return Object.entries(t).forEach(([n,o])=>{r.push(` --border-width-${n}: ${o};
132
+ `}#J(e){let r=[` /* Border Widths */
133
+ `];return Object.entries(e).forEach(([n,o])=>{r.push(` --border-width-${n}: ${o};
79
134
  `)}),`${r.join("")}
80
- `}#Y(t){let r=[` /* Typography */
81
- `];return Object.entries(t).forEach(([n,o])=>{let a=n.replace(/^font/,"").replace(/^(.)/,i=>i.toLowerCase()).replace(/([A-Z])/g,"-$1").toLowerCase();Object.entries(o).forEach(([i,s])=>{let p=i.replace(/([A-Z])/g,"-$1").toLowerCase();r.push(` --font-${a}-${p}: ${s};
135
+ `}#Y(e){let r=[` /* Typography */
136
+ `];return Object.entries(e).forEach(([n,o])=>{let a=n.replace(/^font/,"").replace(/^(.)/,i=>i.toLowerCase()).replace(/([A-Z])/g,"-$1").toLowerCase();Object.entries(o).forEach(([i,s])=>{let d=i.replace(/([A-Z])/g,"-$1").toLowerCase();r.push(` --font-${a}-${d}: ${s};
82
137
  `)})}),`${r.join("")}
83
- `}#g(t){let r=[` /* Shadows */
84
- `];return Object.entries(t).forEach(([n,o])=>{r.push(` --shadow-${n}: ${o};
138
+ `}#y(e){let r=[` /* Shadows */
139
+ `];return Object.entries(e).forEach(([n,o])=>{r.push(` --shadow-${n}: ${o};
85
140
  `)}),`${r.join("")}
86
- `}#Z(t){let r=[` /* Layout */
87
- `];return Object.entries(t).forEach(([n,o])=>{let a=n.replace(/([A-Z])/g,"-$1").toLowerCase();o!=null&&n!=="breakpoints"&&r.push(` --layout-${a}: ${o};
141
+ `}#X(e){let r=[` /* Layout */
142
+ `];return Object.entries(e).forEach(([n,o])=>{let a=n.replace(/([A-Z])/g,"-$1").toLowerCase();o!=null&&n!=="breakpoints"&&r.push(` --layout-${a}: ${o};
88
143
  `)}),`${r.join("")}
89
- `}#X(t){let r=[` /* Transitions */
90
- `];return Object.entries(t).forEach(([n,o])=>{r.push(` --transition-${n}: ${o};
144
+ `}#Z(e){let r=[` /* Transitions */
145
+ `];return Object.entries(e).forEach(([n,o])=>{r.push(` --transition-${n}: ${o};
91
146
  `)}),`${r.join("")}
92
- `}#Q(t){let r=[` /* Z-Index */
93
- `];return Object.entries(t).forEach(([n,o])=>{r.push(` --z-${n}: ${o};
147
+ `}#Q(e){let r=[` /* Z-Index */
148
+ `];return Object.entries(e).forEach(([n,o])=>{r.push(` --z-${n}: ${o};
94
149
  `)}),`${r.join("")}
95
- `}#ee(t){let r=[` /* Icon System */
96
- `];return r.push(` --icon-set: ${t.set};
97
- `),r.push(` --icon-weight: ${t.weight};
98
- `),r.push(` --icon-size: ${t.defaultSize};
99
- `),Object.entries(t.sizes).forEach(([n,o])=>{r.push(` --icon-size-${n}: ${o};
150
+ `}#ee(e){let r=[` /* Icon System */
151
+ `];return r.push(` --icon-set: ${e.set};
152
+ `),r.push(` --icon-weight: ${e.weight};
153
+ `),r.push(` --icon-size: ${e.defaultSize};
154
+ `),Object.entries(e.sizes).forEach(([n,o])=>{r.push(` --icon-size-${n}: ${o};
100
155
  `)}),`${r.join("")}
101
- `}#te(t,r){if(!t?.dark)return"";let n=[],o=(l,u="")=>{Object.entries(l).forEach(([g,m])=>{typeof m=="object"&&m!==null?o(m,`${u}${g}-`):typeof m=="string"&&n.push(` --color-${u}${g}: ${m};
102
- `)})};Object.entries(t.dark).forEach(([l,u])=>{l!=="surfaceSmart"&&typeof u=="object"&&u!==null&&o(u,`${l}-`)});let a=[];t.dark.surfaceSmart&&(a.push(` /* Smart Surface Tokens (dark mode, context-aware) */
103
- `),Object.entries(t.dark.surfaceSmart).forEach(([l,u])=>{a.push(` --surface-${l}-bg: ${u.bg};
104
- `),a.push(` --surface-${l}-text: ${u.text};
105
- `),a.push(` --surface-${l}-text-secondary: ${u.textSecondary};
106
- `),a.push(` --surface-${l}-text-muted: ${u.textMuted};
107
- `),a.push(` --surface-${l}-icon: ${u.icon};
108
- `),a.push(` --surface-${l}-icon-subtle: ${u.iconSubtle};
109
- `),a.push(` --surface-${l}-shadow: ${u.shadow};
110
- `),a.push(` --surface-${l}-border: ${u.border};
156
+ `}#te(e,r){if(!e?.dark)return"";let n=[],o=(h,$="")=>{Object.entries(h).forEach(([A,T])=>{typeof T=="object"&&T!==null?o(T,`${$}${A}-`):typeof T=="string"&&n.push(` --color-${$}${A}: ${T};
157
+ `)})};Object.entries(e.dark).forEach(([h,$])=>{h!=="surfaceSmart"&&typeof $=="object"&&$!==null&&o($,`${h}-`)});let a=[];e.dark.surfaceSmart&&(a.push(` /* Smart Surface Tokens (dark mode, context-aware) */
158
+ `),Object.entries(e.dark.surfaceSmart).forEach(([h,$])=>{a.push(` --surface-${h}-bg: ${$.bg};
159
+ `),a.push(` --surface-${h}-text: ${$.text};
160
+ `),a.push(` --surface-${h}-text-secondary: ${$.textSecondary};
161
+ `),a.push(` --surface-${h}-text-muted: ${$.textMuted};
162
+ `),a.push(` --surface-${h}-icon: ${$.icon};
163
+ `),a.push(` --surface-${h}-icon-subtle: ${$.iconSubtle};
164
+ `),a.push(` --surface-${h}-shadow: ${$.shadow};
165
+ `),a.push(` --surface-${h}-border: ${$.border};
111
166
  `)}),a.push(`
112
- `));let i=` --color-text-primary: var(--color-gray-100);
167
+ `));let i=[];e.interactive?.dark&&(i.push(` /* Interactive Colors - optimized for specific use cases (dark mode) */
168
+ `),i.push(` --color-primary-fill: ${e.interactive.dark.fill};
169
+ `),i.push(` --color-primary-fill-hover: ${e.interactive.dark.fillHover};
170
+ `),i.push(` --color-primary-fill-active: ${e.interactive.dark.fillActive};
171
+ `),i.push(` --color-primary-text: ${e.interactive.dark.text};
172
+ `),i.push(` --color-primary-text-hover: ${e.interactive.dark.textHover};
173
+ `),i.push(` --color-primary-text-visited: ${e.interactive.dark.textVisited};
174
+ `),i.push(` --color-primary-contrast: ${e.interactive.dark.contrast};
175
+ `),i.push(` --color-focus-ring: ${e.interactive.dark.focusRing};
176
+ `),i.push(` --color-selection-bg: ${e.interactive.dark.selectionBg};
177
+ `),i.push(` --color-selection-text: ${e.interactive.dark.selectionText};
178
+ `),i.push(` --color-link: var(--color-primary-text);
179
+ `),i.push(` --color-link-hover: var(--color-primary-text-hover);
180
+ `),i.push(` --color-link-visited: var(--color-primary-text-visited);
181
+ `));let s=[];e.accentInteractive?.dark&&(s.push(` /* Accent Role Colors (dark mode) */
182
+ `),s.push(` --color-accent-fill: ${e.accentInteractive.dark.fill};
183
+ `),s.push(` --color-accent-fill-hover: ${e.accentInteractive.dark.fillHover};
184
+ `),s.push(` --color-accent-fill-active: ${e.accentInteractive.dark.fillActive};
185
+ `),s.push(` --color-accent-text: ${e.accentInteractive.dark.text};
186
+ `),s.push(` --color-accent-text-hover: ${e.accentInteractive.dark.textHover};
187
+ `));let d=[];e.surfaceAccent?.dark&&(d.push(` /* Surface-Aware Accent Text Tokens (dark mode) */
188
+ `),Object.entries(e.surfaceAccent.dark).forEach(([h,$])=>{d.push(` --surface-${h}-accent-text: ${$.text};
189
+ `),d.push(` --surface-${h}-accent-text-hover: ${$.textHover};
190
+ `)}));let c=[];e.dangerInteractive?.dark&&(c.push(` /* Danger Role Colors (dark mode) */
191
+ `),c.push(` --color-danger-fill: ${e.dangerInteractive.dark.fill};
192
+ `),c.push(` --color-danger-fill-hover: ${e.dangerInteractive.dark.fillHover};
193
+ `),c.push(` --color-danger-fill-active: ${e.dangerInteractive.dark.fillActive};
194
+ `),c.push(` --color-danger-text: ${e.dangerInteractive.dark.text};
195
+ `),c.push(` --color-danger-text-hover: ${e.dangerInteractive.dark.textHover};
196
+ `),c.push(` --color-danger-contrast: ${e.dangerInteractive.dark.contrast};
197
+ `));let p=[];e.successInteractive?.dark&&(p.push(` /* Success Role Colors (dark mode) */
198
+ `),p.push(` --color-success-fill: ${e.successInteractive.dark.fill};
199
+ `),p.push(` --color-success-fill-hover: ${e.successInteractive.dark.fillHover};
200
+ `),p.push(` --color-success-fill-active: ${e.successInteractive.dark.fillActive};
201
+ `),p.push(` --color-success-text: ${e.successInteractive.dark.text};
202
+ `),p.push(` --color-success-text-hover: ${e.successInteractive.dark.textHover};
203
+ `),p.push(` --color-success-contrast: ${e.successInteractive.dark.contrast};
204
+ `));let l=[];e.warningInteractive?.dark&&(l.push(` /* Warning Role Colors (dark mode) */
205
+ `),l.push(` --color-warning-fill: ${e.warningInteractive.dark.fill};
206
+ `),l.push(` --color-warning-fill-hover: ${e.warningInteractive.dark.fillHover};
207
+ `),l.push(` --color-warning-fill-active: ${e.warningInteractive.dark.fillActive};
208
+ `),l.push(` --color-warning-text: ${e.warningInteractive.dark.text};
209
+ `),l.push(` --color-warning-text-hover: ${e.warningInteractive.dark.textHover};
210
+ `),l.push(` --color-warning-contrast: ${e.warningInteractive.dark.contrast};
211
+ `));let u=[];e.infoInteractive?.dark&&(u.push(` /* Info Role Colors (dark mode) */
212
+ `),u.push(` --color-info-fill: ${e.infoInteractive.dark.fill};
213
+ `),u.push(` --color-info-fill-hover: ${e.infoInteractive.dark.fillHover};
214
+ `),u.push(` --color-info-fill-active: ${e.infoInteractive.dark.fillActive};
215
+ `),u.push(` --color-info-text: ${e.infoInteractive.dark.text};
216
+ `),u.push(` --color-info-text-hover: ${e.infoInteractive.dark.textHover};
217
+ `),u.push(` --color-info-contrast: ${e.infoInteractive.dark.contrast};
218
+ `));let g=[];e.surfaceStatus?.dark&&(g.push(` /* Surface-Aware Status Text Tokens (dark mode) */
219
+ `),Object.entries(e.surfaceStatus.dark).forEach(([h,$])=>{Object.entries($).forEach(([A,T])=>{g.push(` --surface-${A}-${h}-text: ${T.text};
220
+ `),g.push(` --surface-${A}-${h}-text-hover: ${T.textHover};
221
+ `)})}));let f=[` /* Semantic Callout Display Tokens (dark mode) */
222
+ `];for(let h of["success","info","warning","danger"])f.push(` --color-${h}-display-bg: color-mix(in oklab, var(--color-${h}-400) 12%, var(--color-surface-base));
223
+ `),f.push(` --color-${h}-display-border: var(--color-${h}-400);
224
+ `),f.push(` --color-${h}-display-text: var(--color-${h}-100);
225
+ `);let w=` --color-text-primary: var(--color-gray-100);
113
226
  --color-text-secondary: var(--color-gray-300);
114
- --color-text-muted: var(--color-gray-600);
227
+ --color-text-muted: var(--color-gray-500);
115
228
  --color-border: var(--color-gray-700);
116
229
  --color-input-bg: var(--color-gray-800);
117
230
  --color-input-disabled-bg: var(--color-gray-900);
118
231
  --color-input-disabled-text: var(--color-gray-600);
119
232
  --color-code-bg: var(--color-gray-800);
120
- `,s=` /* Backdrop tokens - dark mode */
233
+ `,b=` /* Backdrop tokens - dark mode */
121
234
  --backdrop-bg: linear-gradient(
122
235
  135deg,
123
236
  rgba(0, 0, 0, 0.6),
@@ -131,31 +244,86 @@ var qn=Object.defineProperty;var _t=(e,t)=>()=>(e&&(t=e(e=0)),t);var Ft=(e,t)=>{
131
244
 
132
245
  /* Legacy alias for backwards compatibility */
133
246
  --backdrop-background: var(--backdrop-bg);
134
- `,p=this.#oe(t),c=r?[this.#g(r)]:[];return`html[data-theme="dark"] {
135
- ${[...n,...a,...c,i,s,p].join("")}}
136
- `}#re(t,r){if(!t?.dark)return"";let n=[],o=(u,g="")=>{Object.entries(u).forEach(([m,b])=>{typeof b=="object"&&b!==null?o(b,`${g}${m}-`):typeof b=="string"&&n.push(` --color-${g}${m}: ${b};
137
- `)})};Object.entries(t.dark).forEach(([u,g])=>{u!=="surfaceSmart"&&typeof g=="object"&&g!==null&&o(g,`${u}-`)});let a=[];t.dark.surfaceSmart&&(a.push(` /* Smart Surface Tokens (dark mode, context-aware) */
138
- `),Object.entries(t.dark.surfaceSmart).forEach(([u,g])=>{a.push(` --surface-${u}-bg: ${g.bg};
139
- `),a.push(` --surface-${u}-text: ${g.text};
140
- `),a.push(` --surface-${u}-text-secondary: ${g.textSecondary};
141
- `),a.push(` --surface-${u}-text-muted: ${g.textMuted};
142
- `),a.push(` --surface-${u}-icon: ${g.icon};
143
- `),a.push(` --surface-${u}-icon-subtle: ${g.iconSubtle};
144
- `),a.push(` --surface-${u}-shadow: ${g.shadow};
145
- `),a.push(` --surface-${u}-border: ${g.border};
247
+ `,m=this.#oe(e),y=r?[this.#y(r)]:[];return`html[data-theme="dark"] {
248
+ ${[...n,...a,...y,w,...i,...s,...d,...c,...p,...l,...u,...g,...f,b,m].join("")}}
249
+ `}#re(e,r){if(!e?.dark)return"";let n=[],o=(h,$="")=>{Object.entries(h).forEach(([A,T])=>{typeof T=="object"&&T!==null?o(T,`${$}${A}-`):typeof T=="string"&&n.push(` --color-${$}${A}: ${T};
250
+ `)})};Object.entries(e.dark).forEach(([h,$])=>{h!=="surfaceSmart"&&typeof $=="object"&&$!==null&&o($,`${h}-`)});let a=[];e.dark.surfaceSmart&&(a.push(` /* Smart Surface Tokens (dark mode, context-aware) */
251
+ `),Object.entries(e.dark.surfaceSmart).forEach(([h,$])=>{a.push(` --surface-${h}-bg: ${$.bg};
252
+ `),a.push(` --surface-${h}-text: ${$.text};
253
+ `),a.push(` --surface-${h}-text-secondary: ${$.textSecondary};
254
+ `),a.push(` --surface-${h}-text-muted: ${$.textMuted};
255
+ `),a.push(` --surface-${h}-icon: ${$.icon};
256
+ `),a.push(` --surface-${h}-icon-subtle: ${$.iconSubtle};
257
+ `),a.push(` --surface-${h}-shadow: ${$.shadow};
258
+ `),a.push(` --surface-${h}-border: ${$.border};
146
259
  `)}),a.push(`
147
- `));let i=[];t.interactive&&t.interactive.dark&&(i.push(` /* Interactive Colors - optimized for specific use cases (dark mode) */
148
- `),i.push(` --color-primary-fill: ${t.interactive.dark.fill}; /* For button backgrounds with white text */
149
- `),i.push(` --color-primary-text: ${t.interactive.dark.text}; /* For links and outline buttons on dark surfaces */
150
- `));let s=[` --color-text-primary: var(--color-gray-100);
260
+ `));let i=[];e.interactive&&e.interactive.dark&&(i.push(` /* Interactive Colors - optimized for specific use cases (dark mode) */
261
+ `),i.push(` --color-primary-fill: ${e.interactive.dark.fill};
262
+ `),i.push(` --color-primary-fill-hover: ${e.interactive.dark.fillHover};
263
+ `),i.push(` --color-primary-fill-active: ${e.interactive.dark.fillActive};
264
+ `),i.push(` --color-primary-text: ${e.interactive.dark.text};
265
+ `),i.push(` --color-primary-text-hover: ${e.interactive.dark.textHover};
266
+ `),i.push(` --color-primary-text-visited: ${e.interactive.dark.textVisited};
267
+ `),i.push(` --color-primary-contrast: ${e.interactive.dark.contrast};
268
+ `),i.push(` --color-focus-ring: ${e.interactive.dark.focusRing};
269
+ `),i.push(` --color-selection-bg: ${e.interactive.dark.selectionBg};
270
+ `),i.push(` --color-selection-text: ${e.interactive.dark.selectionText};
271
+ `),i.push(` --color-link: var(--color-primary-text);
272
+ `),i.push(` --color-link-hover: var(--color-primary-text-hover);
273
+ `),i.push(` --color-link-visited: var(--color-primary-text-visited);
274
+ `));let s=[];e.accentInteractive?.dark&&(s.push(` /* Accent Role Colors (dark mode) */
275
+ `),s.push(` --color-accent-fill: ${e.accentInteractive.dark.fill};
276
+ `),s.push(` --color-accent-fill-hover: ${e.accentInteractive.dark.fillHover};
277
+ `),s.push(` --color-accent-fill-active: ${e.accentInteractive.dark.fillActive};
278
+ `),s.push(` --color-accent-text: ${e.accentInteractive.dark.text};
279
+ `),s.push(` --color-accent-text-hover: ${e.accentInteractive.dark.textHover};
280
+ `));let d=[];e.surfaceAccent?.dark&&(d.push(` /* Surface-Aware Accent Text Tokens (dark mode) */
281
+ `),Object.entries(e.surfaceAccent.dark).forEach(([h,$])=>{d.push(` --surface-${h}-accent-text: ${$.text};
282
+ `),d.push(` --surface-${h}-accent-text-hover: ${$.textHover};
283
+ `)}));let c=[];e.dangerInteractive?.dark&&(c.push(` /* Danger Role Colors (dark mode) */
284
+ `),c.push(` --color-danger-fill: ${e.dangerInteractive.dark.fill};
285
+ `),c.push(` --color-danger-fill-hover: ${e.dangerInteractive.dark.fillHover};
286
+ `),c.push(` --color-danger-fill-active: ${e.dangerInteractive.dark.fillActive};
287
+ `),c.push(` --color-danger-text: ${e.dangerInteractive.dark.text};
288
+ `),c.push(` --color-danger-text-hover: ${e.dangerInteractive.dark.textHover};
289
+ `),c.push(` --color-danger-contrast: ${e.dangerInteractive.dark.contrast};
290
+ `));let p=[];e.successInteractive?.dark&&(p.push(` /* Success Role Colors (dark mode) */
291
+ `),p.push(` --color-success-fill: ${e.successInteractive.dark.fill};
292
+ `),p.push(` --color-success-fill-hover: ${e.successInteractive.dark.fillHover};
293
+ `),p.push(` --color-success-fill-active: ${e.successInteractive.dark.fillActive};
294
+ `),p.push(` --color-success-text: ${e.successInteractive.dark.text};
295
+ `),p.push(` --color-success-text-hover: ${e.successInteractive.dark.textHover};
296
+ `),p.push(` --color-success-contrast: ${e.successInteractive.dark.contrast};
297
+ `));let l=[];e.warningInteractive?.dark&&(l.push(` /* Warning Role Colors (dark mode) */
298
+ `),l.push(` --color-warning-fill: ${e.warningInteractive.dark.fill};
299
+ `),l.push(` --color-warning-fill-hover: ${e.warningInteractive.dark.fillHover};
300
+ `),l.push(` --color-warning-fill-active: ${e.warningInteractive.dark.fillActive};
301
+ `),l.push(` --color-warning-text: ${e.warningInteractive.dark.text};
302
+ `),l.push(` --color-warning-text-hover: ${e.warningInteractive.dark.textHover};
303
+ `),l.push(` --color-warning-contrast: ${e.warningInteractive.dark.contrast};
304
+ `));let u=[];e.infoInteractive?.dark&&(u.push(` /* Info Role Colors (dark mode) */
305
+ `),u.push(` --color-info-fill: ${e.infoInteractive.dark.fill};
306
+ `),u.push(` --color-info-fill-hover: ${e.infoInteractive.dark.fillHover};
307
+ `),u.push(` --color-info-fill-active: ${e.infoInteractive.dark.fillActive};
308
+ `),u.push(` --color-info-text: ${e.infoInteractive.dark.text};
309
+ `),u.push(` --color-info-text-hover: ${e.infoInteractive.dark.textHover};
310
+ `),u.push(` --color-info-contrast: ${e.infoInteractive.dark.contrast};
311
+ `));let g=[];e.surfaceStatus?.dark&&(g.push(` /* Surface-Aware Status Text Tokens (dark mode) */
312
+ `),Object.entries(e.surfaceStatus.dark).forEach(([h,$])=>{Object.entries($).forEach(([A,T])=>{g.push(` --surface-${A}-${h}-text: ${T.text};
313
+ `),g.push(` --surface-${A}-${h}-text-hover: ${T.textHover};
314
+ `)})}));let f=[` /* Semantic Callout Display Tokens (dark mode) */
315
+ `];for(let h of["success","info","warning","danger"])f.push(` --color-${h}-display-bg: color-mix(in oklab, var(--color-${h}-400) 12%, var(--color-surface-base));
316
+ `),f.push(` --color-${h}-display-border: var(--color-${h}-400);
317
+ `),f.push(` --color-${h}-display-text: var(--color-${h}-100);
318
+ `);let w=[` --color-text-primary: var(--color-gray-100);
151
319
  `,` --color-text-secondary: var(--color-gray-300);
152
- `,` --color-text-muted: var(--color-gray-600);
320
+ `,` --color-text-muted: var(--color-gray-500);
153
321
  `,` --color-border: var(--color-gray-700);
154
322
  `,` --color-input-bg: var(--color-gray-800);
155
323
  `,` --color-input-disabled-bg: var(--color-gray-900);
156
324
  `,` --color-input-disabled-text: var(--color-gray-600);
157
325
  `,` --color-code-bg: var(--color-gray-800);
158
- `,...i].join(""),p=` /* Backdrop tokens - dark mode */
326
+ `,...i].join(""),b=` /* Backdrop tokens - dark mode */
159
327
  --backdrop-bg: linear-gradient(
160
328
  135deg,
161
329
  rgba(0, 0, 0, 0.6),
@@ -169,10 +337,10 @@ ${[...n,...a,...c,i,s,p].join("")}}
169
337
 
170
338
  /* Legacy alias for backwards compatibility */
171
339
  --backdrop-background: var(--backdrop-bg);
172
- `,c=this.#ne(t),d=r?[this.#g(r)]:[];return`
340
+ `,m=this.#ne(e),y=r?[this.#y(r)]:[];return`
173
341
  html[data-theme="dark"] {
174
- ${[...n,...a,...d,s,p,c].join("")} }
175
- `}#ne(t){let r=t.dark||t,n=r.primary?.[400]||"#60a5fa",o=r.secondary?.[400]||"#a78bfa",a=r.accent?.[400]||"#fbbf24";return` /* Mesh Gradient Variables (Dark Mode) */
342
+ ${[...n,...a,...y,w,...s,...d,...c,...p,...l,...u,...g,...f,b,m].join("")} }
343
+ `}#ne(e){let r=e.dark||e,n=r.primary?.[400]||"#60a5fa",o=r.secondary?.[400]||"#a78bfa",a=r.accent?.[400]||"#fbbf24";return` /* Mesh Gradient Variables (Dark Mode) */
176
344
  --background-mesh-01: radial-gradient(at 27% 37%, color-mix(in oklab, ${n} 20%, transparent) 0px, transparent 50%),
177
345
  radial-gradient(at 97% 21%, color-mix(in oklab, ${o} 16%, transparent) 0px, transparent 50%),
178
346
  radial-gradient(at 52% 99%, color-mix(in oklab, ${a} 13%, transparent) 0px, transparent 50%),
@@ -197,7 +365,7 @@ ${[...n,...a,...d,s,p,c].join("")} }
197
365
  radial-gradient(at 10% 10%, color-mix(in oklab, ${a} 14%, transparent) 0px, transparent 50%),
198
366
  radial-gradient(at 90% 10%, color-mix(in oklab, ${o} 13%, transparent) 0px, transparent 50%),
199
367
  radial-gradient(at 50% 90%, color-mix(in oklab, ${a} 10%, transparent) 0px, transparent 50%);
200
- `}#oe(t){let r=t.dark||t,n=r.primary?.[400]||"#60a5fa",o=r.secondary?.[400]||"#a78bfa",a=r.accent?.[400]||"#fbbf24";return`
368
+ `}#oe(e){let r=e.dark||e,n=r.primary?.[400]||"#60a5fa",o=r.secondary?.[400]||"#a78bfa",a=r.accent?.[400]||"#fbbf24";return`
201
369
  /* Mesh Gradient Backgrounds (Dark Mode) */
202
370
  --background-mesh-01: radial-gradient(at 27% 37%, color-mix(in oklab, ${n} 20%, transparent) 0px, transparent 50%),
203
371
  radial-gradient(at 97% 21%, color-mix(in oklab, ${o} 16%, transparent) 0px, transparent 50%),
@@ -223,19 +391,15 @@ ${[...n,...a,...d,s,p,c].join("")} }
223
391
  radial-gradient(at 10% 10%, color-mix(in oklab, ${a} 14%, transparent) 0px, transparent 50%),
224
392
  radial-gradient(at 90% 10%, color-mix(in oklab, ${o} 13%, transparent) 0px, transparent 50%),
225
393
  radial-gradient(at 50% 90%, color-mix(in oklab, ${a} 10%, transparent) 0px, transparent 50%);
226
- `}#ae(){return`/* Callout dark mode adjustments */
394
+ `}#ae(){return`/* Dark mode component adjustments */
227
395
  html[data-theme="dark"] {
228
- .callout-success { background-color: var(--color-success-50); border-color: var(--color-success-500); color: var(--color-success-900); }
229
- .callout-info { background-color: var(--color-info-50); border-color: var(--color-info-500); color: var(--color-info-900); }
230
- .callout-warning { background-color: var(--color-warning-50); border-color: var(--color-warning-500); color: var(--color-warning-900); }
231
- .callout-danger, .callout-error { background-color: var(--color-danger-50); border-color: var(--color-danger-500); color: var(--color-danger-900); }
232
396
  img, video { opacity: 0.8; transition: opacity var(--transition-normal); }
233
397
  img:hover, video:hover { opacity: 1; }
234
- }`}#ie(){try{let t=this.options?.design?.options?.backgroundMesh;this.options.debug&&this.options.log?.("debug","backgroundMesh check:",t);let r=Number(t);return!Number.isFinite(r)||r===0?"":`/* Optional background mesh applied from config */
398
+ }`}#ie(){try{let e=this.options?.design?.options?.backgroundMesh;this.options.debug&&this.options.log?.("debug","backgroundMesh check:",e);let r=Number(e);return!Number.isFinite(r)||r===0?"":`/* Optional background mesh applied from config */
235
399
  body {
236
400
  background: var(--background-mesh-0${Math.max(1,Math.min(5,Math.floor(r)))});
237
401
  background-attachment: fixed;
238
- }`}catch(t){return this.options.debug&&this.options.log?.("error","Error in generateBodyBackgroundMeshRule:",t),""}}#se(){try{return this.options?.design?.options?.liquidGlassEffects?`/* Liquid glass utility (opt-in via options.liquidGlassEffects) */
402
+ }`}catch(e){return this.options.debug&&this.options.log?.("error","Error in generateBodyBackgroundMeshRule:",e),""}}#se(){try{return this.options?.design?.options?.liquidGlassEffects?`/* Liquid glass utility (opt-in via options.liquidGlassEffects) */
239
403
  .liquid-glass {
240
404
  border-radius: var(--radius-lg);
241
405
  /* Subtle translucent fill blended with surface */
@@ -417,12 +581,12 @@ html[data-theme="dark"] .liquid-glass {
417
581
  box-shadow: 0 0 12px var(--color-danger-500);
418
582
  }
419
583
 
420
- `}#ce(){let{layout:t={}}=this.options.design,r=t.breakpoints||{sm:640,md:768,lg:1024,xl:1280};return`/* Semantic HTML Elements (low-specificity via :where()) */
584
+ `}#ce(){let{layout:e={}}=this.options.design,r=e.breakpoints||{sm:640,md:768,lg:1024,xl:1280};return`/* Semantic HTML Elements (low-specificity via :where()) */
421
585
 
422
586
  :where(blockquote) {
423
587
  margin: 0 0 var(--spacing-4) 0;
424
588
  padding: var(--spacing-6) var(--spacing-8);
425
- border-left: calc(var(--border-width-thick) + var(--border-width-thin)) solid var(--color-primary-500);
589
+ border-left: calc(var(--border-width-thick) + var(--border-width-thin)) solid var(--color-link);
426
590
  background-color: var(--color-surface-elevated);
427
591
  border-radius: var(--radius-none);
428
592
  font-size: var(--font-size-lg);
@@ -438,7 +602,7 @@ html[data-theme="dark"] .liquid-glass {
438
602
  margin-top: var(--spacing-4);
439
603
  font-size: var(--font-size-base);
440
604
  font-style: normal;
441
- color: var(--color-primary-500);
605
+ color: var(--color-link);
442
606
  }
443
607
  }
444
608
 
@@ -521,8 +685,8 @@ html[data-theme="dark"] .liquid-glass {
521
685
  }
522
686
 
523
687
  :where(mark) {
524
- background-color: var(--color-warning-200);
525
- color: var(--color-warning-900);
688
+ background-color: var(--color-warning-display-bg);
689
+ color: var(--color-warning-display-text);
526
690
  padding: 0 var(--spacing-1);
527
691
  border-radius: var(--radius-sm);
528
692
  }
@@ -608,7 +772,7 @@ html[data-theme="dark"] .liquid-glass {
608
772
 
609
773
  /* Dialog styles moved to #generateDialogStyles() */
610
774
 
611
- `}#de(){let{shape:t={},spatialRhythm:r={},inputPadding:n,buttonPadding:o,focusRingWidth:a,focusRingOpacity:i,borderWidthThin:s,sectionSpacing:p,buttonMinHeight:c,inputMinHeight:d}=this.options.design,l=typeof t.borderWidth=="number"?t.borderWidth:typeof t.borderWidth=="string"?w.BorderWidths[t.borderWidth]??null:null,u=r.inputPadding??n??.75,g=r.buttonPadding??o??1,m=a||3,b=s||l||w.BorderWidths.thin,f=r.sectionSpacing??p??2,y=c||30;return`/* Mobile-First Form Styles - Generated from Design Config */
775
+ `}#de(){let{shape:e={},spatialRhythm:r={},inputPadding:n,buttonPadding:o,focusRingWidth:a,focusRingOpacity:i,borderWidthThin:s,sectionSpacing:d,buttonMinHeight:c,inputMinHeight:p}=this.options.design,l=typeof e.borderWidth=="number"?e.borderWidth:typeof e.borderWidth=="string"?S.BorderWidths[e.borderWidth]??null:null,u=r.inputPadding??n??.75,g=r.buttonPadding??o??1,f=a||3,w=s||l||S.BorderWidths.thin,b=r.sectionSpacing??d??2,m=c||30;return`/* Mobile-First Form Styles - Generated from Design Config */
612
776
  form {
613
777
  margin: 0;
614
778
  width: 100%;
@@ -640,7 +804,7 @@ fieldset {
640
804
  margin-bottom: 0;
641
805
 
642
806
  &:hover {
643
- color: var(--color-primary-700);
807
+ color: var(--color-link-hover, var(--color-primary-text-hover));
644
808
  }
645
809
  }
646
810
 
@@ -659,21 +823,21 @@ fieldset {
659
823
  margin: 0;
660
824
  cursor: pointer;
661
825
  flex-shrink: 0;
662
- accent-color: var(--color-primary-600);
826
+ accent-color: var(--color-primary-fill);
663
827
 
664
828
  &:focus-visible {
665
829
  outline: none;
666
830
 
667
831
  box-shadow:
668
- 0 0 0 2px var(--color-primary-500),
832
+ 0 0 0 2px var(--color-focus-ring, var(--color-primary-500)),
669
833
  0 0 0 4px color-mix(in srgb,
670
- var(--color-primary-500) 40%,
834
+ var(--color-focus-ring, var(--color-primary-500)) 40%,
671
835
  transparent
672
836
  );
673
837
  }
674
838
 
675
839
  &:checked {
676
- background-color: var(--color-primary-600);
840
+ background-color: var(--color-primary-fill);
677
841
  }
678
842
 
679
843
  }
@@ -736,7 +900,7 @@ input, textarea, select {
736
900
 
737
901
  input, textarea, select {
738
902
  width: 100%;
739
- min-height: ${d||40}px;
903
+ min-height: ${p||40}px;
740
904
  padding: calc(var(--spacing-1) * ${u}) var(--spacing-4);
741
905
  border: var(--border-width-medium) solid var(--color-border);
742
906
  border-radius: var(--radius-md);
@@ -751,7 +915,7 @@ input, textarea, select {
751
915
  -webkit-appearance: none;
752
916
 
753
917
  &:focus {
754
- border-color: var(--color-primary-500);
918
+ border-color: var(--color-focus-ring, var(--color-primary-500));
755
919
  background-color: var(--color-surface-base);
756
920
  }
757
921
 
@@ -764,10 +928,10 @@ input, textarea, select {
764
928
  }
765
929
 
766
930
  &:invalid {
767
- border-color: var(--color-danger-500);
931
+ border-color: var(--color-danger-fill);
768
932
 
769
933
  &:focus {
770
- box-shadow: 0 0 0 ${m}px color-mix(in oklab, var(--color-danger-500) ${Math.round((i||.3)*100)}%, transparent);
934
+ box-shadow: 0 0 0 ${f}px color-mix(in oklab, var(--color-danger-fill) ${Math.round((i||.3)*100)}%, transparent);
771
935
  }
772
936
  }
773
937
  }
@@ -802,11 +966,11 @@ input[type="range"] {
802
966
  width: var(--range-thumb-size, 28px);
803
967
  height: var(--range-thumb-size, 28px);
804
968
  margin-top: calc((var(--range-track-height, 8px) - var(--range-thumb-size, 28px)) / 2);
805
- background: color-mix(in srgb, var(--color-primary-500) 15%, var(--color-surface-base));
969
+ background: color-mix(in srgb, var(--color-primary-fill) 15%, var(--color-surface-base));
806
970
  border-radius: 50%;
807
971
  box-shadow: var(--shadow-sm);
808
972
  cursor: grab;
809
- border: var(--border-width-thin) solid color-mix(in srgb, var(--color-primary-500) 30%, var(--color-border));
973
+ border: var(--border-width-thin) solid color-mix(in srgb, var(--color-primary-fill) 30%, var(--color-border));
810
974
  }
811
975
 
812
976
  /* Mozilla track */
@@ -820,10 +984,10 @@ input[type="range"] {
820
984
  &::-moz-range-thumb {
821
985
  width: var(--range-thumb-size, 28px);
822
986
  height: var(--range-thumb-size, 28px);
823
- background: color-mix(in srgb, var(--color-primary-500) 15%, var(--color-surface-base));
987
+ background: color-mix(in srgb, var(--color-primary-fill) 15%, var(--color-surface-base));
824
988
  border-radius: 50%;
825
989
  box-shadow: var(--shadow-sm);
826
- border: var(--border-width-thin) solid color-mix(in srgb, var(--color-primary-500) 30%, var(--color-border));
990
+ border: var(--border-width-thin) solid color-mix(in srgb, var(--color-primary-fill) 30%, var(--color-border));
827
991
  transform: translateY(calc((var(--range-track-height, 8px) - var(--range-thumb-size, 28px)) / 2));
828
992
  }
829
993
 
@@ -831,39 +995,39 @@ input[type="range"] {
831
995
  &:hover::-webkit-slider-thumb,
832
996
  &:focus-visible::-webkit-slider-thumb {
833
997
  cursor: grabbing;
834
- background: var(--color-primary-500);
998
+ background: var(--color-primary-fill);
835
999
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
836
- border-color: var(--color-primary-600);
1000
+ border-color: var(--color-primary-fill-hover);
837
1001
  }
838
1002
 
839
1003
  /* Active state for WebKit */
840
1004
  &:active::-webkit-slider-thumb {
841
- background: var(--color-primary-600);
1005
+ background: var(--color-primary-fill-active);
842
1006
  }
843
1007
 
844
1008
  /* Hover and focus states for Mozilla */
845
1009
  &:hover::-moz-range-thumb,
846
1010
  &:focus-visible::-moz-range-thumb {
847
- background: var(--color-primary-500);
1011
+ background: var(--color-primary-fill);
848
1012
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
849
- border-color: var(--color-primary-600);
1013
+ border-color: var(--color-primary-fill-hover);
850
1014
  cursor: grabbing;
851
1015
  }
852
1016
 
853
1017
  /* Active state for Mozilla */
854
1018
  &:active::-moz-range-thumb {
855
- background: var(--color-primary-600);
1019
+ background: var(--color-primary-fill-active);
856
1020
  }
857
1021
  }
858
1022
 
859
1023
  /* Focus style for container to match input focus */
860
1024
  .range-container:focus-within {
861
- border-color: var(--color-primary-500);
862
- box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary-500) 30%, transparent);
1025
+ border-color: var(--color-focus-ring, var(--color-primary-500));
1026
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-focus-ring, var(--color-primary-500)) 30%, transparent);
863
1027
  }
864
1028
 
865
1029
  input[type="range"]:active::-moz-range-thumb {
866
- background: var(--color-primary-600);
1030
+ background: var(--color-primary-fill-active);
867
1031
  }
868
1032
 
869
1033
  input[type="color"] {
@@ -916,7 +1080,7 @@ input[type="color"] {
916
1080
  display: inline-flex;
917
1081
  align-items: center;
918
1082
  justify-content: center;
919
- min-height: calc(${y}px * 0.75);
1083
+ min-height: calc(${m}px * 0.75);
920
1084
  padding: calc(var(--spacing-1) * ${g*.6}) calc(var(--spacing-4) * 0.85);
921
1085
  border: var(--border-width-medium) solid var(--color-border);
922
1086
  border-radius: var(--radius-md);
@@ -937,27 +1101,27 @@ input[type="color"] {
937
1101
 
938
1102
  &:hover {
939
1103
  background-color: var(--color-surface-subtle);
940
- border-color: var(--color-primary-500);
1104
+ border-color: var(--color-primary-fill);
941
1105
  }
942
1106
 
943
1107
  &:has(input[type="checkbox"]:checked),
944
1108
  input[type="checkbox"]:checked + label:not(fieldset label):not(label[data-toggle]) {
945
- background-color: color-mix(in oklab, var(--color-primary-500) 8%, transparent);
946
- color: var(--color-primary-700);
947
- border-color: var(--color-primary-500);
1109
+ background-color: color-mix(in oklab, var(--color-primary-fill) 8%, transparent);
1110
+ color: var(--color-primary-text);
1111
+ border-color: var(--color-primary-fill);
948
1112
  border-width: var(--border-width-medium);
949
1113
  font-weight: var(--font-weight-semibold);
950
1114
 
951
1115
  &:hover {
952
- background-color: color-mix(in oklab, var(--color-primary-500) 15%, transparent);
953
- border-color: var(--color-primary-600);
1116
+ background-color: color-mix(in oklab, var(--color-primary-fill) 15%, transparent);
1117
+ border-color: var(--color-primary-fill);
954
1118
  }
955
1119
  }
956
1120
 
957
1121
  &:has(input[type="checkbox"]:focus),
958
1122
  input[type="checkbox"]:focus + label:not(fieldset label):not(label[data-toggle]) {
959
1123
  outline: none;
960
- box-shadow: 0 0 0 ${m}px color-mix(in oklab, var(--color-primary-500) ${Math.round((i||.3)*100)}%, transparent);
1124
+ box-shadow: 0 0 0 ${f}px color-mix(in oklab, var(--color-focus-ring, var(--color-primary-500)) ${Math.round((i||.3)*100)}%, transparent);
961
1125
  }
962
1126
 
963
1127
  &:has(input[type="checkbox"]:disabled),
@@ -989,6 +1153,7 @@ input[type="radio"]:not(fieldset input[type="radio"]) {
989
1153
  opacity: 1;
990
1154
  appearance: auto;
991
1155
  -webkit-appearance: auto;
1156
+ accent-color: var(--color-primary-fill);
992
1157
 
993
1158
  &:disabled {
994
1159
  cursor: not-allowed;
@@ -1020,7 +1185,7 @@ fieldset[role="group"].buttons {
1020
1185
  display: inline-flex;
1021
1186
  align-items: center;
1022
1187
  justify-content: center;
1023
- min-height: calc(${y}px * 0.75);
1188
+ min-height: calc(${m}px * 0.75);
1024
1189
  padding: calc(var(--spacing-1) * ${g*.6}) calc(var(--spacing-4) * 0.85);
1025
1190
  border: var(--border-width-medium) solid var(--color-border);
1026
1191
  border-radius: var(--radius-md);
@@ -1041,7 +1206,7 @@ fieldset[role="group"].buttons {
1041
1206
 
1042
1207
  &:hover {
1043
1208
  background-color: var(--color-surface-subtle);
1044
- border-color: var(--color-primary-500);
1209
+ border-color: var(--color-primary-fill);
1045
1210
  color: var(--color-text-primary);
1046
1211
  }
1047
1212
 
@@ -1050,20 +1215,20 @@ fieldset[role="group"].buttons {
1050
1215
  }
1051
1216
 
1052
1217
  &:has(input:is([type="radio"], [type="checkbox"]):checked) {
1053
- background-color: color-mix(in oklab, var(--color-primary-500) 8%, transparent);
1054
- border-color: var(--color-primary-500);
1218
+ background-color: color-mix(in oklab, var(--color-primary-fill) 8%, transparent);
1219
+ border-color: var(--color-primary-fill);
1055
1220
  border-width: var(--border-width-medium);
1056
1221
  font-weight: var(--font-weight-semibold);
1057
1222
 
1058
1223
  &:hover {
1059
- background-color: color-mix(in oklab, var(--color-primary-500) 15%, transparent);
1060
- border-color: var(--color-primary-600);
1224
+ background-color: color-mix(in oklab, var(--color-primary-fill) 15%, transparent);
1225
+ border-color: var(--color-primary-fill-hover);
1061
1226
  }
1062
1227
  }
1063
1228
 
1064
1229
  &:has(input:is([type="radio"], [type="checkbox"]):focus) {
1065
1230
  outline: none;
1066
- box-shadow: 0 0 0 ${m}px color-mix(in oklab, var(--color-primary-500) ${Math.round((i||.3)*100)}%, transparent);
1231
+ box-shadow: 0 0 0 ${f}px color-mix(in oklab, var(--color-focus-ring, var(--color-primary-500)) ${Math.round((i||.3)*100)}%, transparent);
1067
1232
  }
1068
1233
 
1069
1234
  &:has(input:is([type="radio"], [type="checkbox"]):disabled) {
@@ -1147,7 +1312,7 @@ label[data-toggle] {
1147
1312
  &:has(input[type="checkbox"]:checked) {
1148
1313
  &.with-icons .toggle-knob::before {
1149
1314
  content: "\u2713";
1150
- color: var(--color-primary-600);
1315
+ color: var(--color-primary-contrast, white);
1151
1316
  }
1152
1317
 
1153
1318
  .toggle-switch {
@@ -1161,7 +1326,7 @@ label[data-toggle] {
1161
1326
 
1162
1327
  &:has(input[type="checkbox"]:focus) .toggle-switch,
1163
1328
  &:focus-visible .toggle-switch {
1164
- outline: 2px solid var(--color-primary-500);
1329
+ outline: 2px solid var(--color-focus-ring, var(--color-primary-500));
1165
1330
  outline-offset: 2px;
1166
1331
  }
1167
1332
 
@@ -1279,8 +1444,8 @@ label[data-color] {
1279
1444
  }
1280
1445
 
1281
1446
  &:focus-within .color-control {
1282
- border-color: var(--color-primary-500);
1283
- box-shadow: 0 0 0 ${m}px color-mix(in oklab, var(--color-primary-500) ${Math.round((i||.3)*100)}%, transparent);
1447
+ border-color: var(--color-focus-ring, var(--color-primary-500));
1448
+ box-shadow: 0 0 0 ${f}px color-mix(in oklab, var(--color-focus-ring, var(--color-primary-500)) ${Math.round((i||.3)*100)}%, transparent);
1284
1449
  }
1285
1450
 
1286
1451
  &:has(input[type="color"]:disabled) .color-control {
@@ -1316,7 +1481,7 @@ select {
1316
1481
  /* Button styling */
1317
1482
  button, .btn, input[type="submit"], input[type="button"], input[type="reset"] {
1318
1483
  --btn-pad-y: max(calc(var(--spacing-1) * ${g}), var(--spacing-2));
1319
- --btn-target-h: max(${y}px, calc(var(--font-size-base) + (var(--btn-pad-y) * 2) + (var(--border-width-medium) * 2)));
1484
+ --btn-target-h: max(${m}px, calc(var(--font-size-base) + (var(--btn-pad-y) * 2) + (var(--border-width-medium) * 2)));
1320
1485
  display: inline-flex;
1321
1486
  gap: var(--spacing-1);
1322
1487
  align-items: center;
@@ -1348,7 +1513,7 @@ button, .btn, input[type="submit"], input[type="button"], input[type="reset"] {
1348
1513
 
1349
1514
  &:focus {
1350
1515
  outline: none;
1351
- box-shadow: 0 0 0 ${m}px color-mix(in oklab, var(--color-primary-500) ${Math.round((i||.3)*100)}%, transparent);
1516
+ box-shadow: 0 0 0 ${f}px color-mix(in oklab, var(--color-focus-ring, var(--color-primary-500)) ${Math.round((i||.3)*100)}%, transparent);
1352
1517
  }
1353
1518
 
1354
1519
  &:disabled {
@@ -1366,19 +1531,19 @@ button, .btn, input[type="submit"], input[type="button"], input[type="reset"] {
1366
1531
  border-color: var(--color-primary-fill);
1367
1532
 
1368
1533
  &:hover {
1369
- background-color: color-mix(in oklab, var(--color-primary-fill) 90%, black 10%);
1370
- border-color: color-mix(in oklab, var(--color-primary-fill) 90%, black 10%);
1534
+ background-color: var(--color-primary-fill-hover);
1535
+ border-color: var(--color-primary-fill-hover);
1371
1536
  color: white;
1372
1537
  }
1373
1538
 
1374
1539
  &:active {
1375
- background-color: color-mix(in oklab, var(--color-primary-fill) 80%, black 20%);
1376
- border-color: color-mix(in oklab, var(--color-primary-fill) 80%, black 20%);
1540
+ background-color: var(--color-primary-fill-active);
1541
+ border-color: var(--color-primary-fill-active);
1377
1542
  color: white;
1378
1543
  }
1379
1544
 
1380
1545
  &:focus {
1381
- box-shadow: 0 0 0 ${m}px color-mix(in oklab, var(--color-primary-500) ${Math.round((i||.3)*100)}%, transparent);
1546
+ box-shadow: 0 0 0 ${f}px color-mix(in oklab, var(--color-focus-ring, var(--color-primary-500)) ${Math.round((i||.3)*100)}%, transparent);
1382
1547
  }
1383
1548
 
1384
1549
  &:disabled {
@@ -1400,13 +1565,13 @@ button, .btn, input[type="submit"], input[type="button"], input[type="reset"] {
1400
1565
 
1401
1566
  .btn-outline {
1402
1567
  background-color: transparent;
1403
- color: var(--color-primary-500);
1404
- border-color: var(--color-primary-500);
1568
+ color: var(--color-link);
1569
+ border-color: var(--color-link);
1405
1570
 
1406
1571
  &:hover {
1407
- background-color: var(--color-primary-500);
1572
+ background-color: var(--color-primary-fill);
1408
1573
  color: var(--color-primary-contrast, #ffffff);
1409
- border-color: var(--color-primary-500);
1574
+ border-color: var(--color-primary-fill);
1410
1575
 
1411
1576
  pds-icon {
1412
1577
  color: var(--color-primary-contrast, #ffffff);
@@ -1414,8 +1579,8 @@ button, .btn, input[type="submit"], input[type="button"], input[type="reset"] {
1414
1579
  }
1415
1580
 
1416
1581
  &:active {
1417
- background-color: color-mix(in oklab, var(--color-primary-500) 80%, black 20%);
1418
- border-color: color-mix(in oklab, var(--color-primary-500) 80%, black 20%);
1582
+ background-color: var(--color-primary-fill-active);
1583
+ border-color: var(--color-primary-fill-active);
1419
1584
  color: var(--color-primary-contrast, #ffffff);
1420
1585
 
1421
1586
  pds-icon {
@@ -1431,31 +1596,31 @@ button, .btn, input[type="submit"], input[type="button"], input[type="reset"] {
1431
1596
  }
1432
1597
 
1433
1598
  .btn-danger {
1434
- background-color: var(--color-danger-600);
1599
+ background-color: var(--color-danger-fill);
1435
1600
  color: white;
1436
- border-color: var(--color-danger-600);
1601
+ border-color: var(--color-danger-fill);
1437
1602
 
1438
1603
  &:hover {
1439
- background-color: color-mix(in oklab, var(--color-danger-600) 90%, black 10%);
1440
- border-color: color-mix(in oklab, var(--color-danger-600) 90%, black 10%);
1604
+ background-color: var(--color-danger-fill-hover);
1605
+ border-color: var(--color-danger-fill-hover);
1441
1606
  color: white;
1442
1607
  }
1443
1608
 
1444
1609
  &:active {
1445
- background-color: color-mix(in oklab, var(--color-danger-600) 80%, black 20%);
1446
- border-color: color-mix(in oklab, var(--color-danger-600) 80%, black 20%);
1610
+ background-color: var(--color-danger-fill-active);
1611
+ border-color: var(--color-danger-fill-active);
1447
1612
  color: white;
1448
1613
  }
1449
1614
  }
1450
1615
 
1451
1616
  .btn-danger.btn-outline {
1452
1617
  background-color: transparent;
1453
- color: var(--color-danger-600);
1454
- border-color: var(--color-danger-600);
1618
+ color: var(--color-danger-fill);
1619
+ border-color: var(--color-danger-fill);
1455
1620
 
1456
1621
  &:hover {
1457
- background-color: var(--color-danger-600);
1458
- border-color: var(--color-danger-600);
1622
+ background-color: var(--color-danger-fill);
1623
+ border-color: var(--color-danger-fill);
1459
1624
  color: white;
1460
1625
 
1461
1626
  pds-icon {
@@ -1464,8 +1629,8 @@ button, .btn, input[type="submit"], input[type="button"], input[type="reset"] {
1464
1629
  }
1465
1630
 
1466
1631
  &:active {
1467
- background-color: color-mix(in oklab, var(--color-danger-600) 80%, black 20%);
1468
- border-color: color-mix(in oklab, var(--color-danger-600) 80%, black 20%);
1632
+ background-color: var(--color-danger-fill-active);
1633
+ border-color: var(--color-danger-fill-active);
1469
1634
  color: white;
1470
1635
 
1471
1636
  pds-icon {
@@ -1482,7 +1647,7 @@ button, .btn, input[type="submit"], input[type="button"], input[type="reset"] {
1482
1647
 
1483
1648
  .btn-sm {
1484
1649
  --btn-pad-y: calc(max(calc(var(--spacing-1) * ${g}), var(--spacing-2)) * 0.85);
1485
- --btn-target-h: max(calc(${y}px * 0.85), calc(var(--font-size-sm) + (var(--btn-pad-y) * 2) + (var(--border-width-medium) * 2)));
1650
+ --btn-target-h: max(calc(${m}px * 0.85), calc(var(--font-size-sm) + (var(--btn-pad-y) * 2) + (var(--border-width-medium) * 2)));
1486
1651
  padding: var(--btn-pad-y) calc(var(--spacing-6) * 0.8);
1487
1652
  font-size: var(--font-size-sm);
1488
1653
  min-height: var(--btn-target-h);
@@ -1491,7 +1656,7 @@ button, .btn, input[type="submit"], input[type="button"], input[type="reset"] {
1491
1656
 
1492
1657
  .btn-xs {
1493
1658
  --btn-pad-y: calc(max(calc(var(--spacing-1) * ${g}), var(--spacing-2)) * 0.7);
1494
- --btn-target-h: max(calc(${y}px * 0.7), calc(var(--font-size-xs) + (var(--btn-pad-y) * 2) + (var(--border-width-medium) * 2)));
1659
+ --btn-target-h: max(calc(${m}px * 0.7), calc(var(--font-size-xs) + (var(--btn-pad-y) * 2) + (var(--border-width-medium) * 2)));
1495
1660
  padding: var(--btn-pad-y) calc(var(--spacing-6) * 0.65);
1496
1661
  font-size: var(--font-size-xs);
1497
1662
  min-height: var(--btn-target-h);
@@ -1501,7 +1666,7 @@ button, .btn, input[type="submit"], input[type="button"], input[type="reset"] {
1501
1666
 
1502
1667
  .btn-lg {
1503
1668
  --btn-pad-y: calc(max(calc(var(--spacing-1) * ${g}), var(--spacing-2)) * 1.15);
1504
- --btn-target-h: max(calc(${y}px * 1.15), calc(var(--font-size-lg) + (var(--btn-pad-y) * 2) + (var(--border-width-medium) * 2)));
1669
+ --btn-target-h: max(calc(${m}px * 1.15), calc(var(--font-size-lg) + (var(--btn-pad-y) * 2) + (var(--border-width-medium) * 2)));
1505
1670
  padding: var(--btn-pad-y) calc(var(--spacing-6) * 1.35);
1506
1671
  font-size: var(--font-size-lg);
1507
1672
  min-height: var(--btn-target-h);
@@ -1729,7 +1894,7 @@ a.btn-working {
1729
1894
  }
1730
1895
  }
1731
1896
 
1732
- `}#pe(){let{layout:t={}}=this.options.design,r=t.breakpoints||{sm:640,md:768,lg:1024,xl:1280};return`/* Table Styles - Mobile First */
1897
+ `}#pe(){let{layout:e={}}=this.options.design,r=e.breakpoints||{sm:640,md:768,lg:1024,xl:1280};return`/* Table Styles - Mobile First */
1733
1898
 
1734
1899
  table {
1735
1900
  width: 100%;
@@ -1832,25 +1997,25 @@ tbody {
1832
1997
  }
1833
1998
  /* Variants: success/info/warning/danger mapped to tokens */
1834
1999
  .callout-success {
1835
- background-color: var(--color-success-50);
1836
- border-color: var(--color-success-600);
1837
- color: var(--color-success-900);
2000
+ background-color: var(--color-success-display-bg);
2001
+ border-color: var(--color-success-display-border);
2002
+ color: var(--color-success-display-text);
1838
2003
  }
1839
2004
  .callout-info {
1840
- background-color: var(--color-info-50);
1841
- border-color: var(--color-info-600);
1842
- color: var(--color-info-900);
2005
+ background-color: var(--color-info-display-bg);
2006
+ border-color: var(--color-info-display-border);
2007
+ color: var(--color-info-display-text);
1843
2008
  }
1844
2009
  .callout-warning {
1845
- background-color: var(--color-warning-50);
1846
- border-color: var(--color-warning-600);
1847
- color: var(--color-warning-900);
2010
+ background-color: var(--color-warning-display-bg);
2011
+ border-color: var(--color-warning-display-border);
2012
+ color: var(--color-warning-display-text);
1848
2013
  }
1849
2014
  .callout-danger,
1850
2015
  .callout-error {
1851
- background-color: var(--color-danger-50);
1852
- border-color: var(--color-danger-600);
1853
- color: var(--color-danger-900);
2016
+ background-color: var(--color-danger-display-bg);
2017
+ border-color: var(--color-danger-display-border);
2018
+ color: var(--color-danger-display-text);
1854
2019
  }
1855
2020
 
1856
2021
  .callout-title {
@@ -1953,7 +2118,7 @@ tbody {
1953
2118
  }
1954
2119
 
1955
2120
  &:focus-visible {
1956
- box-shadow: 0 0 0 3px color-mix(in oklab, var(--color-primary-500) 30%, transparent);
2121
+ box-shadow: 0 0 0 3px color-mix(in oklab, var(--color-focus-ring, var(--color-primary-500)) 30%, transparent);
1957
2122
  }
1958
2123
 
1959
2124
  /* Chevron indicator */
@@ -1989,7 +2154,7 @@ tbody {
1989
2154
  }
1990
2155
  }
1991
2156
  }
1992
- `}#me(){return`/* Badge/Pill Styles */
2157
+ `}#fe(){return`/* Badge/Pill Styles */
1993
2158
 
1994
2159
  .badge {
1995
2160
  display: inline-flex;
@@ -2007,29 +2172,30 @@ tbody {
2007
2172
  }
2008
2173
 
2009
2174
  .badge-primary, .badge-secondary, .badge-success, .badge-info, .badge-warning, .badge-danger { color: white; }
2010
- .badge-primary { background-color: var(--color-primary-600); }
2175
+ .badge-primary { background-color: var(--color-primary-fill); }
2011
2176
  .badge-secondary { background-color: var(--color-secondary-600); }
2012
- .badge-success { background-color: var(--color-success-600); }
2013
- .badge-info { background-color: var(--color-info-600); }
2014
- .badge-warning { background-color: var(--color-warning-600); }
2015
- .badge-danger { background-color: var(--color-danger-600); }
2177
+ .badge-success { background-color: var(--color-success-fill); }
2178
+ .badge-info { background-color: var(--color-info-fill); }
2179
+ .badge-warning { background-color: var(--color-warning-fill); }
2180
+ .badge-danger { background-color: var(--color-danger-fill); }
2016
2181
 
2017
2182
  .badge-outline {
2018
2183
  background-color: transparent;
2184
+ color: var(--color-text-secondary);
2019
2185
  border: var(--border-width-thin) solid currentColor;
2020
- &.badge-primary { color: var(--color-text-primary); }
2021
- &.badge-secondary { color: var(--color-secondary-600); }
2022
- &.badge-success { color: var(--color-success-600); }
2023
- &.badge-info { color: var(--color-info-600); }
2024
- &.badge-warning { color: var(--color-warning-600); }
2025
- &.badge-danger { color: var(--color-danger-600); }
2186
+ &.badge-primary { color: var(--color-primary-text); }
2187
+ &.badge-secondary { color: var(--color-text-secondary); }
2188
+ &.badge-success { color: var(--color-success-text); }
2189
+ &.badge-info { color: var(--color-info-text); }
2190
+ &.badge-warning { color: var(--color-warning-text); }
2191
+ &.badge-danger { color: var(--color-danger-text); }
2026
2192
  }
2027
2193
 
2028
2194
  .badge-sm { padding: 2px var(--spacing-1); font-size: 10px; }
2029
2195
  .badge-lg { padding: var(--spacing-2) var(--spacing-3); font-size: var(--font-size-sm); }
2030
2196
  .pill { padding: var(--spacing-1) var(--spacing-3); border-radius: var(--radius-full); }
2031
2197
 
2032
- `}#fe(){let{layout:t={},behavior:r={}}=this.options.design;return`/* ============================================================================
2198
+ `}#me(){let{layout:e={},behavior:r={}}=this.options.design;return`/* ============================================================================
2033
2199
  Dialog Primitive
2034
2200
  Native <dialog> element with PDS integration
2035
2201
  ============================================================================ */
@@ -2225,7 +2391,7 @@ dialog.dialog-xl { width: min(1200px, calc(100vw - var(--spacing-8))); max-width
2225
2391
  dialog.dialog-full { width: calc(100vw - var(--spacing-8)); max-width: calc(100vw - var(--spacing-8)); max-height: calc(100dvh - var(--spacing-8)); }
2226
2392
 
2227
2393
  /* Mobile responsiveness - maximize on mobile */
2228
- @media (max-width: ${(t.breakpoints||{sm:640,md:768,lg:1024,xl:1280}).sm-1}px) {
2394
+ @media (max-width: ${(e.breakpoints||{sm:640,md:768,lg:1024,xl:1280}).sm-1}px) {
2229
2395
  dialog,
2230
2396
  dialog.dialog-sm,
2231
2397
  dialog.dialog-lg,
@@ -2292,7 +2458,7 @@ html:has(pds-drawer[open]) {
2292
2458
  }
2293
2459
 
2294
2460
 
2295
- `}#he(){let{layout:t={}}=this.options.design;return`/* Tab Strip Component */
2461
+ `}#he(){let{layout:e={}}=this.options.design;return`/* Tab Strip Component */
2296
2462
 
2297
2463
  /* Tab navigation */
2298
2464
 
@@ -2340,7 +2506,7 @@ pds-tabstrip {
2340
2506
  }
2341
2507
 
2342
2508
  &:focus-visible {
2343
- outline: var(--focus-ring-width, 2px) solid var(--color-primary-500);
2509
+ outline: var(--focus-ring-width, 2px) solid var(--color-focus-ring, var(--color-primary-500));
2344
2510
  outline-offset: -2px;
2345
2511
  border-radius: var(--radius-sm);
2346
2512
  z-index: 1;
@@ -2348,14 +2514,14 @@ pds-tabstrip {
2348
2514
 
2349
2515
  /* Active tab */
2350
2516
  &[aria-current="page"] {
2351
- color: var(--color-primary-600);
2517
+ color: var(--color-link);
2352
2518
  font-weight: var(--font-weight-semibold);
2353
- border-bottom-color: var(--color-primary-600);
2519
+ border-bottom-color: var(--color-link);
2354
2520
 
2355
2521
  &:hover {
2356
- color: var(--color-primary-700);
2357
- border-bottom-color: var(--color-primary-700);
2358
- background-color: var(--color-primary-50);
2522
+ color: var(--color-link-hover);
2523
+ border-bottom-color: var(--color-link-hover);
2524
+ background-color: color-mix(in oklab, var(--color-link) 10%, transparent);
2359
2525
  }
2360
2526
  }
2361
2527
  }
@@ -2383,7 +2549,7 @@ pds-tabstrip {
2383
2549
  }
2384
2550
 
2385
2551
  /* Mobile responsive */
2386
- @media (max-width: ${(t.breakpoints||{sm:640,md:768,lg:1024,xl:1280}).sm-1}px) {
2552
+ @media (max-width: ${(e.breakpoints||{sm:640,md:768,lg:1024,xl:1280}).sm-1}px) {
2387
2553
  pds-tabstrip > nav { gap: var(--spacing-1); }
2388
2554
  pds-tabstrip > nav > a { padding: var(--spacing-2) var(--spacing-3); font-size: var(--font-size-sm); }
2389
2555
  pds-tabstrip > pds-tabpanel[data-tabpanel] { padding: var(--spacing-3) 0; }
@@ -2415,7 +2581,7 @@ pds-tabstrip {
2415
2581
  *:hover { scrollbar-color: var(--color-secondary-400) transparent; }
2416
2582
  @media (prefers-color-scheme: dark) { *:hover { scrollbar-color: var(--color-secondary-500) transparent; } }
2417
2583
 
2418
- `}#ye(){let{layout:t={}}=this.options.design,r=t.buttonMinHeight||30,n=t.buttonPadding||1,o=`max(calc(var(--spacing-1) * ${n}), var(--spacing-2))`,a=`calc(max(calc(var(--spacing-1) * ${n}), var(--spacing-2)) * 0.85)`,i=`calc(max(calc(var(--spacing-1) * ${n}), var(--spacing-2)) * 0.7)`,s=`calc(max(calc(var(--spacing-1) * ${n}), var(--spacing-2)) * 1.15)`,p=.72,c=`calc(${o} * ${p})`,d=`calc(${a} * ${p})`,l=`calc(${i} * ${p})`,u=`calc(${s} * ${p})`,g=`${r}px`,m=`calc(${r}px * 0.85)`,b=`calc(${r}px * 0.7)`,f=`calc(${r}px * 1.15)`,y=`max(${g}, calc(var(--font-size-base) + (${o} * 2) + (var(--border-width-medium) * 2)))`,k=`max(${m}, calc(var(--font-size-sm) + (${a} * 2) + (var(--border-width-medium) * 2)))`,v=`max(${b}, calc(var(--font-size-xs) + (${i} * 2) + (var(--border-width-medium) * 2)))`,$=`max(${f}, calc(var(--font-size-lg) + (${s} * 2) + (var(--border-width-medium) * 2)))`;return`/* Icon System */
2584
+ `}#ye(){let{layout:e={}}=this.options.design,r=e.buttonMinHeight||30,n=e.buttonPadding||1,o=`max(calc(var(--spacing-1) * ${n}), var(--spacing-2))`,a=`calc(max(calc(var(--spacing-1) * ${n}), var(--spacing-2)) * 0.85)`,i=`calc(max(calc(var(--spacing-1) * ${n}), var(--spacing-2)) * 0.7)`,s=`calc(max(calc(var(--spacing-1) * ${n}), var(--spacing-2)) * 1.15)`,d=.72,c=`calc(${o} * ${d})`,p=`calc(${a} * ${d})`,l=`calc(${i} * ${d})`,u=`calc(${s} * ${d})`,g=`${r}px`,f=`calc(${r}px * 0.85)`,w=`calc(${r}px * 0.7)`,b=`calc(${r}px * 1.15)`,m=`max(${g}, calc(var(--font-size-base) + (${o} * 2) + (var(--border-width-medium) * 2)))`,y=`max(${f}, calc(var(--font-size-sm) + (${a} * 2) + (var(--border-width-medium) * 2)))`,v=`max(${w}, calc(var(--font-size-xs) + (${i} * 2) + (var(--border-width-medium) * 2)))`,h=`max(${b}, calc(var(--font-size-lg) + (${s} * 2) + (var(--border-width-medium) * 2)))`;return`/* Icon System */
2419
2585
 
2420
2586
  pds-icon {
2421
2587
  display: inline-flex;
@@ -2437,13 +2603,13 @@ pds-icon {
2437
2603
 
2438
2604
 
2439
2605
  /* Icon color utilities */
2440
- .icon-primary, pds-icon.primary { color: var(--color-primary-600); }
2441
- .icon-secondary, pds-icon.secondary { color: var(--color-secondary-600); }
2442
- .icon-accent, pds-icon.accent { color: var(--color-accent-600); }
2443
- .icon-success, pds-icon.success { color: var(--color-success-600); }
2444
- .icon-warning, pds-icon.warning { color: var(--color-warning-600); }
2445
- .icon-danger, pds-icon.danger { color: var(--color-danger-600); }
2446
- .icon-info, pds-icon.info { color: var(--color-info-600); }
2606
+ .icon-primary, pds-icon.primary { color: var(--color-primary-text); }
2607
+ .icon-secondary, pds-icon.secondary { color: var(--color-text-secondary); }
2608
+ .icon-accent, pds-icon.accent { color: var(--color-accent-text); }
2609
+ .icon-success, pds-icon.success { color: var(--color-success-text); }
2610
+ .icon-warning, pds-icon.warning { color: var(--color-warning-text); }
2611
+ .icon-danger, pds-icon.danger { color: var(--color-danger-text); }
2612
+ .icon-info, pds-icon.info { color: var(--color-info-text); }
2447
2613
  .icon-muted, pds-icon.muted { color: var(--color-text-muted); }
2448
2614
  .icon-subtle, pds-icon.subtle { color: var(--color-text-subtle); }
2449
2615
 
@@ -2469,10 +2635,10 @@ a.icon-only {
2469
2635
 
2470
2636
  &.icon-only {
2471
2637
  padding: ${c};
2472
- min-width: ${y};
2473
- min-height: ${y};
2474
- width: ${y};
2475
- height: ${y};
2638
+ min-width: ${m};
2639
+ min-height: ${m};
2640
+ width: ${m};
2641
+ height: ${m};
2476
2642
  display: inline-flex;
2477
2643
  align-items: center;
2478
2644
  justify-content: center;
@@ -2485,11 +2651,11 @@ a.icon-only {
2485
2651
  }
2486
2652
 
2487
2653
  &.btn-sm.icon-only {
2488
- padding: ${d};
2489
- min-width: ${k};
2490
- min-height: ${k};
2491
- width: ${k};
2492
- height: ${k};
2654
+ padding: ${p};
2655
+ min-width: ${y};
2656
+ min-height: ${y};
2657
+ width: ${y};
2658
+ height: ${y};
2493
2659
 
2494
2660
  pds-icon,
2495
2661
  pds-icon[size] {
@@ -2514,10 +2680,10 @@ a.icon-only {
2514
2680
 
2515
2681
  &.btn-lg.icon-only {
2516
2682
  padding: ${u};
2517
- min-width: ${$};
2518
- min-height: ${$};
2519
- width: ${$};
2520
- height: ${$};
2683
+ min-width: ${h};
2684
+ min-height: ${h};
2685
+ width: ${h};
2686
+ height: ${h};
2521
2687
 
2522
2688
  pds-icon,
2523
2689
  pds-icon[size] {
@@ -2553,7 +2719,7 @@ nav[data-dropdown] {
2553
2719
 
2554
2720
  & > :last-child {
2555
2721
  position: absolute;
2556
- padding: var(--spacing-2);
2722
+ padding: 0 var(--spacing-2);
2557
2723
  margin: 0;
2558
2724
  background: var(--color-surface-overlay);
2559
2725
  border: var(--border-width-thin) solid var(--color-border);
@@ -2608,7 +2774,7 @@ nav[data-dropdown] {
2608
2774
  }
2609
2775
 
2610
2776
  menu li {
2611
- padding: var(--spacing-1) 0;
2777
+ padding: var(--spacing-2) 0;
2612
2778
 
2613
2779
  & + li {
2614
2780
  border-top: var(--border-width-thin) solid var(--color-border);
@@ -2641,7 +2807,7 @@ nav[data-dropdown] {
2641
2807
  gap: var(--spacing-2);
2642
2808
 
2643
2809
  &.danger {
2644
- color: var(--color-danger-600);
2810
+ color: var(--color-danger-text);
2645
2811
  }
2646
2812
  }
2647
2813
 
@@ -2699,7 +2865,7 @@ nav[data-dropdown] {
2699
2865
  opacity: 0;
2700
2866
  }
2701
2867
  }
2702
- `}#xe(){let{layout:t={}}=this.options.design,r=t.breakpoints||{sm:640,md:768,lg:1024,xl:1280},n=t.gridSystem||{},o=n.columns||[1,2,3,4,6],a=n.autoFitBreakpoints||{sm:"150px",md:"250px",lg:"350px",xl:"450px"},i=this.#L(t),s=[`
2868
+ `}#xe(){let{layout:e={}}=this.options.design,r=e.breakpoints||{sm:640,md:768,lg:1024,xl:1280},n=e.gridSystem||{},o=n.columns||[1,2,3,4,6],a=n.autoFitBreakpoints||{sm:"150px",md:"250px",lg:"350px",xl:"450px"},i=this.#E(e),s=[`
2703
2869
  /* ============================================================================
2704
2870
  Layout Utilities
2705
2871
  Modern grid and flex system for building responsive layouts
@@ -2709,9 +2875,9 @@ nav[data-dropdown] {
2709
2875
  .container {
2710
2876
  display: block;
2711
2877
  width: 100%;
2712
- max-width: ${t.containerMaxWidth||"1400px"};
2878
+ max-width: ${e.containerMaxWidth||"1400px"};
2713
2879
  margin: 0 auto;
2714
- padding: ${t.containerPadding||"var(--spacing-6)"};
2880
+ padding: ${e.containerPadding||"var(--spacing-6)"};
2715
2881
  }
2716
2882
 
2717
2883
  /* Grid System */
@@ -2720,10 +2886,10 @@ nav[data-dropdown] {
2720
2886
  gap: var(--spacing-4);
2721
2887
  }
2722
2888
 
2723
- `];for(let p of o)s.push(`.grid-cols-${p} { grid-template-columns: repeat(${p}, 1fr); }
2889
+ `];for(let d of o)s.push(`.grid-cols-${d} { grid-template-columns: repeat(${d}, 1fr); }
2724
2890
  `);s.push(`
2725
2891
  /* Auto-fit grids (responsive) */
2726
- `);for(let[p,c]of Object.entries(a))s.push(`.grid-auto-${p} { grid-template-columns: repeat(auto-fit, minmax(${c}, 1fr)); }
2892
+ `);for(let[d,c]of Object.entries(a))s.push(`.grid-auto-${d} { grid-template-columns: repeat(auto-fit, minmax(${c}, 1fr)); }
2727
2893
  `);return s.push(`
2728
2894
  /* Gap utilities */
2729
2895
  .gap-0 { gap: 0; } .gap-xs { gap: var(--spacing-1); } .gap-sm { gap: var(--spacing-2); } .gap-md { gap: var(--spacing-4); } .gap-lg { gap: var(--spacing-6); } .gap-xl { gap: var(--spacing-8); }
@@ -2843,7 +3009,7 @@ nav[data-dropdown] {
2843
3009
  height: auto;
2844
3010
  }
2845
3011
 
2846
- `}#ke(){let{layout:t={},a11y:r={}}=this.options.design,n=t.breakpoints||{sm:640,md:768,lg:1024,xl:1280},o=r.minTouchTarget||w.TouchTargetSizes.standard;return`/* Mobile-First Responsive Design */
3012
+ `}#ke(){let{layout:e={},a11y:r={}}=this.options.design,n=e.breakpoints||{sm:640,md:768,lg:1024,xl:1280},o=r.minTouchTarget||S.TouchTargetSizes.standard;return`/* Mobile-First Responsive Design */
2847
3013
 
2848
3014
  /* Small devices (${n.sm}px and up) */
2849
3015
  @media (min-width: ${n.sm}px) {
@@ -2899,7 +3065,7 @@ nav[data-dropdown] {
2899
3065
 
2900
3066
  a {
2901
3067
  &:hover {
2902
- color: var(--color-primary-600);
3068
+ color: var(--color-link-hover);
2903
3069
  }
2904
3070
  }
2905
3071
  }
@@ -2947,23 +3113,23 @@ nav[data-dropdown] {
2947
3113
  }
2948
3114
  }
2949
3115
 
2950
- `}#a(t){let r=parseInt(t.slice(1,3),16)/255,n=parseInt(t.slice(3,5),16)/255,o=parseInt(t.slice(5,7),16)/255,a=Math.max(r,n,o),i=Math.min(r,n,o),s,p,c=(a+i)/2;if(a===i)s=p=0;else{let d=a-i;switch(p=c>.5?d/(2-a-i):d/(a+i),a){case r:s=(n-o)/d+(n<o?6:0);break;case n:s=(o-r)/d+2;break;case o:s=(r-n)/d+4;break}s/=6}return{h:s*360,s:p*100,l:c*100}}#t(t,r,n){t=t/360,r=r/100,n=n/100;let o=(c,d,l)=>(l<0&&(l+=1),l>1&&(l-=1),l<1/6?c+(d-c)*6*l:l<1/2?d:l<2/3?c+(d-c)*(2/3-l)*6:c),a,i,s;if(r===0)a=i=s=n;else{let c=n<.5?n*(1+r):n+r-n*r,d=2*n-c;a=o(d,c,t+1/3),i=o(d,c,t),s=o(d,c,t-1/3)}let p=c=>{let d=Math.round(c*255).toString(16);return d.length===1?"0"+d:d};return`#${p(a)}${p(i)}${p(s)}`}getTokens(){return this.tokens}exportCSS(){return this.layeredCSS}#Se(){this.#e={tokens:this.#$e(),primitives:this.#ze(),components:this.#Le(),utilities:this.#Ce()},this.options.debug&&this.options.log?.("debug","[Generator] Layer sizes:",{tokens:`${(this.#e.tokens.length/1024).toFixed(2)} KB`,primitives:`${(this.#e.primitives.length/1024).toFixed(2)} KB`,components:`${(this.#e.components.length/1024).toFixed(2)} KB`,utilities:`${(this.#e.utilities.length/1024).toFixed(2)} KB`})}#$e(){let{colors:t,spacing:r,radius:n,borderWidths:o,typography:a,shadows:i,darkShadows:s,layout:p,transitions:c,zIndex:d,icons:l}=this.tokens,u=[`@layer tokens {
3116
+ `}#s(e){let r=parseInt(e.slice(1,3),16)/255,n=parseInt(e.slice(3,5),16)/255,o=parseInt(e.slice(5,7),16)/255,a=Math.max(r,n,o),i=Math.min(r,n,o),s,d,c=(a+i)/2;if(a===i)s=d=0;else{let p=a-i;switch(d=c>.5?p/(2-a-i):p/(a+i),a){case r:s=(n-o)/p+(n<o?6:0);break;case n:s=(o-r)/p+2;break;case o:s=(r-n)/p+4;break}s/=6}return{h:s*360,s:d*100,l:c*100}}#t(e,r,n){e=e/360,r=r/100,n=n/100;let o=(c,p,l)=>(l<0&&(l+=1),l>1&&(l-=1),l<1/6?c+(p-c)*6*l:l<1/2?p:l<2/3?c+(p-c)*(2/3-l)*6:c),a,i,s;if(r===0)a=i=s=n;else{let c=n<.5?n*(1+r):n+r-n*r,p=2*n-c;a=o(p,c,e+1/3),i=o(p,c,e),s=o(p,c,e-1/3)}let d=c=>{let p=Math.round(c*255).toString(16);return p.length===1?"0"+p:p};return`#${d(a)}${d(i)}${d(s)}`}getTokens(){return this.tokens}exportCSS(){return this.layeredCSS}#Se(){this.#e={tokens:this.#$e(),primitives:this.#Le(),components:this.#ze(),utilities:this.#Ce()},this.options.debug&&this.options.log?.("debug","[Generator] Layer sizes:",{tokens:`${(this.#e.tokens.length/1024).toFixed(2)} KB`,primitives:`${(this.#e.primitives.length/1024).toFixed(2)} KB`,components:`${(this.#e.components.length/1024).toFixed(2)} KB`,utilities:`${(this.#e.utilities.length/1024).toFixed(2)} KB`})}#$e(){let{colors:e,spacing:r,radius:n,borderWidths:o,typography:a,shadows:i,darkShadows:s,layout:d,transitions:c,zIndex:p,icons:l}=this.tokens,u=[`@layer tokens {
2951
3117
  :root {
2952
- ${this.#q(t)}
2953
- ${this.#V(r)}
3118
+ ${this.#q(e)}
3119
+ ${this.#G(r)}
2954
3120
  ${this.#K(n)}
2955
3121
  ${this.#J(o)}
2956
3122
  ${this.#Y(a)}
2957
- ${this.#g(i)}
2958
- ${this.#Z(p)}
2959
- ${this.#X(c)}
2960
- ${this.#Q(d)}
3123
+ ${this.#y(i)}
3124
+ ${this.#X(d)}
3125
+ ${this.#Z(c)}
3126
+ ${this.#Q(p)}
2961
3127
  ${this.#ee(l)}
2962
3128
  }
2963
- ${this.#re(t,s)}
3129
+ ${this.#re(e,s)}
2964
3130
  }`];return u.push(`
2965
3131
  /* Non-layered dark variables fallback (ensures attribute wins) */
2966
- `),u.push(this.#te(t,s)),u.join("")}#ze(){let{advanced:t={},a11y:r={},layout:n={}}=this.options.design,o=t.tabSize||w.TabSizes.standard,a=r.minTouchTarget||w.TouchTargetSizes.standard,i=n.breakpoints||{sm:640,md:768,lg:1024,xl:1280};return`@layer primitives {
3132
+ `),u.push(this.#te(e,s)),u.join("")}#Le(){let{advanced:e={},a11y:r={},layout:n={}}=this.options.design,o=e.tabSize||S.TabSizes.standard,a=r.minTouchTarget||S.TouchTargetSizes.standard,i=n.breakpoints||{sm:640,md:768,lg:1024,xl:1280};return`@layer primitives {
2967
3133
  /* Base HTML reset */
2968
3134
  *, *::before, *::after {
2969
3135
  box-sizing: border-box;
@@ -3010,7 +3176,7 @@ nav[data-dropdown] {
3010
3176
  box-sizing: border-box;
3011
3177
  font: inherit;
3012
3178
  color: var(--color-primary-contrast, white);
3013
- background: var(--color-primary-600);
3179
+ background: var(--color-primary-fill);
3014
3180
  padding: var(--spacing-2) var(--spacing-4);
3015
3181
  border: 0;
3016
3182
  border-radius: var(--radius-md);
@@ -3029,11 +3195,11 @@ nav[data-dropdown] {
3029
3195
 
3030
3196
  :where(button):hover:not(:disabled) {
3031
3197
  opacity: 0.9;
3032
- background-color: var(--color-primary-700);
3198
+ background-color: var(--color-primary-fill-hover);
3033
3199
  }
3034
3200
 
3035
3201
  :where(button):focus-visible {
3036
- outline: 2px solid var(--color-primary-500);
3202
+ outline: 2px solid var(--color-focus-ring, var(--color-primary-500));
3037
3203
  outline-offset: 2px;
3038
3204
  }
3039
3205
 
@@ -3066,8 +3232,8 @@ nav[data-dropdown] {
3066
3232
  :where(select):focus-visible,
3067
3233
  :where(textarea):focus-visible {
3068
3234
  outline: none;
3069
- border-color: var(--color-primary-500);
3070
- box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary-500) 30%, transparent);
3235
+ border-color: var(--color-focus-ring, var(--color-primary-500));
3236
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-focus-ring, var(--color-primary-500)) 30%, transparent);
3071
3237
  }
3072
3238
 
3073
3239
  :where(input):disabled,
@@ -3094,22 +3260,32 @@ nav[data-dropdown] {
3094
3260
 
3095
3261
  /* Link primitives */
3096
3262
  :where(a) {
3097
- color: var(--color-primary-text, var(--color-primary-600));
3263
+ color: var(--color-link, var(--color-primary-text, var(--color-primary-600)));
3098
3264
  text-decoration: underline;
3099
3265
  text-underline-offset: 0.2em;
3100
- transition: opacity var(--transition-fast);
3266
+ transition: color var(--transition-fast), opacity var(--transition-fast);
3101
3267
  }
3102
3268
 
3103
3269
  :where(a):hover {
3104
- opacity: 0.8;
3270
+ color: var(--color-link-hover, var(--color-link, var(--color-primary-text, var(--color-primary-600))));
3271
+ opacity: 0.9;
3272
+ }
3273
+
3274
+ :where(a):visited {
3275
+ color: var(--color-link-visited, var(--color-link, var(--color-primary-text, var(--color-primary-600))));
3105
3276
  }
3106
3277
 
3107
3278
  :where(a):focus-visible {
3108
- outline: 2px solid var(--color-primary-500);
3279
+ outline: 2px solid var(--color-focus-ring, var(--color-primary-500));
3109
3280
  outline-offset: 2px;
3110
3281
  border-radius: var(--radius-sm);
3111
3282
  }
3112
3283
 
3284
+ ::selection {
3285
+ background: var(--color-selection-bg, var(--color-primary-text, var(--color-primary-600)));
3286
+ color: var(--color-selection-text, var(--color-primary-contrast, #ffffff));
3287
+ }
3288
+
3113
3289
  /* Form primitives */
3114
3290
  :where(label) {
3115
3291
  display: block;
@@ -3167,23 +3343,23 @@ nav[data-dropdown] {
3167
3343
  }
3168
3344
 
3169
3345
  &:has(input[type="checkbox"]:checked)::before {
3170
- background: var(--color-primary-600);
3171
- border-color: var(--color-primary-600);
3346
+ background: var(--color-primary-fill);
3347
+ border-color: var(--color-primary-fill);
3172
3348
  }
3173
3349
 
3174
3350
  &:has(input[type="checkbox"]:focus)::before {
3175
- outline: 2px solid var(--color-primary-500);
3351
+ outline: 2px solid var(--color-focus-ring, var(--color-primary-500));
3176
3352
  outline-offset: 2px;
3177
3353
  }
3178
3354
 
3179
3355
  &:has(input[type="checkbox"]:not(:disabled)):hover::before {
3180
- border-color: var(--color-primary-600);
3356
+ border-color: var(--color-primary-fill);
3181
3357
  background: var(--color-surface-subtle);
3182
3358
  }
3183
3359
 
3184
3360
  &:has(input[type="checkbox"]:checked:not(:disabled)):hover::before {
3185
- background: var(--color-primary-700);
3186
- border-color: var(--color-primary-700);
3361
+ background: var(--color-primary-fill-hover);
3362
+ border-color: var(--color-primary-fill-hover);
3187
3363
  }
3188
3364
 
3189
3365
  &:has(input[type="checkbox"]:disabled) {
@@ -3310,7 +3486,7 @@ nav[data-dropdown] {
3310
3486
  }
3311
3487
  }
3312
3488
 
3313
- `}#Le(){return`@layer components {
3489
+ `}#ze(){return`@layer components {
3314
3490
 
3315
3491
  ${this.#ce()}
3316
3492
 
@@ -3318,10 +3494,10 @@ ${this.#de()}
3318
3494
 
3319
3495
  ${this.#ue()}
3320
3496
 
3321
- ${this.#me()}
3322
-
3323
3497
  ${this.#fe()}
3324
3498
 
3499
+ ${this.#me()}
3500
+
3325
3501
  ${this.#ge()}
3326
3502
 
3327
3503
  ${this.#ve()}
@@ -3469,13 +3645,13 @@ ${this.#le()}
3469
3645
 
3470
3646
  /* btn-primary stays vibrant in any context */
3471
3647
  & .btn-primary {
3472
- background-color: var(--color-primary-500);
3473
- border-color: var(--color-primary-500);
3648
+ background-color: var(--color-primary-fill);
3649
+ border-color: var(--color-primary-fill);
3474
3650
  color: var(--color-primary-contrast, #ffffff);
3475
3651
 
3476
3652
  &:hover {
3477
- background-color: var(--color-primary-400);
3478
- border-color: var(--color-primary-400);
3653
+ background-color: var(--color-primary-fill-hover);
3654
+ border-color: var(--color-primary-fill-hover);
3479
3655
  }
3480
3656
  }
3481
3657
  }
@@ -3508,7 +3684,7 @@ html:not([data-theme="dark"]) .surface-inverse {
3508
3684
  }
3509
3685
 
3510
3686
  & a:not([class*="btn"]) {
3511
- color: var(--color-primary-300, #7dd3fc);
3687
+ color: var(--color-link);
3512
3688
  }
3513
3689
  }
3514
3690
 
@@ -3540,7 +3716,7 @@ html[data-theme="dark"] .surface-inverse {
3540
3716
  }
3541
3717
 
3542
3718
  & a:not([class*="btn"]) {
3543
- color: var(--color-primary-600, #0284c7);
3719
+ color: var(--color-link);
3544
3720
  }
3545
3721
  }
3546
3722
 
@@ -3583,17 +3759,17 @@ ${this.#we()}
3583
3759
  ${this.#ke()}
3584
3760
 
3585
3761
  }
3586
- `}#Me(){this.#o={tokens:new CSSStyleSheet,primitives:new CSSStyleSheet,components:new CSSStyleSheet,utilities:new CSSStyleSheet},this.#Ee()}#Ee(){this.#o.tokens.replaceSync(this.#e.tokens),this.#o.primitives.replaceSync(this.#e.primitives),this.#o.components.replaceSync(this.#e.components),this.#o.utilities.replaceSync(this.#e.utilities)}get tokensCSS(){return this.#e?.tokens||""}get primitivesCSS(){return this.#e?.primitives||""}get componentsCSS(){return this.#e?.components||""}get utilitiesCSS(){return this.#e?.utilities||""}get layeredCSS(){return this.#e?`${this.#e.tokens}
3762
+ `}#Me(){this.#a={tokens:new CSSStyleSheet,primitives:new CSSStyleSheet,components:new CSSStyleSheet,utilities:new CSSStyleSheet},this.#Ee()}#Ee(){this.#a.tokens.replaceSync(this.#e.tokens),this.#a.primitives.replaceSync(this.#e.primitives),this.#a.components.replaceSync(this.#e.components),this.#a.utilities.replaceSync(this.#e.utilities)}get tokensCSS(){return this.#e?.tokens||""}get primitivesCSS(){return this.#e?.primitives||""}get componentsCSS(){return this.#e?.components||""}get utilitiesCSS(){return this.#e?.utilities||""}get layeredCSS(){return this.#e?`${this.#e.tokens}
3587
3763
  ${this.#e.primitives}
3588
3764
  ${this.#e.components}
3589
- ${this.#e.utilities}`:""}get compiled(){return{tokens:{colors:this.tokens.colors,spacing:this.tokens.spacing,radius:this.tokens.radius,borderWidths:this.tokens.borderWidths,typography:this.tokens.typography,shadows:this.tokens.shadows,layout:this.tokens.layout,transitions:this.tokens.transitions,zIndex:this.tokens.zIndex,icons:this.tokens.icons},layers:{tokens:{css:this.#e?.tokens||"",size:this.#e?.tokens?.length||0,sizeKB:((this.#e?.tokens?.length||0)/1024).toFixed(2)},primitives:{css:this.#e?.primitives||"",size:this.#e?.primitives?.length||0,sizeKB:((this.#e?.primitives?.length||0)/1024).toFixed(2)},components:{css:this.#e?.components||"",size:this.#e?.components?.length||0,sizeKB:((this.#e?.components?.length||0)/1024).toFixed(2)},utilities:{css:this.#e?.utilities||"",size:this.#e?.utilities?.length||0,sizeKB:((this.#e?.utilities?.length||0)/1024).toFixed(2)},combined:{css:this.layeredCSS,size:this.layeredCSS?.length||0,sizeKB:((this.layeredCSS?.length||0)/1024).toFixed(2)}},config:{design:this.options.design||{},preset:this.options.preset||null,debug:this.options.debug||!1},capabilities:{constructableStylesheets:typeof CSSStyleSheet<"u",blobURLs:typeof Blob<"u"&&typeof URL<"u",shadowDOM:typeof ShadowRoot<"u"},references:{ontology:typeof q<"u"?q:null,enums:typeof w<"u"?w:null},meta:{generatedAt:new Date().toISOString(),totalSize:(this.#e?.tokens?.length||0)+(this.#e?.primitives?.length||0)+(this.#e?.components?.length||0)+(this.#e?.utilities?.length||0),totalSizeKB:(((this.#e?.tokens?.length||0)+(this.#e?.primitives?.length||0)+(this.#e?.components?.length||0)+(this.#e?.utilities?.length||0))/1024).toFixed(2),layerCount:4,tokenGroups:Object.keys(this.tokens).length},helpers:{getColorScales:()=>{let t=[],r=this.tokens.colors;for(let[n,o]of Object.entries(r))typeof o=="object"&&o!==null&&t.push({name:n,scale:o});return t},getColorScale:t=>this.tokens.colors[t]||null,getSpacingValues:()=>Object.entries(this.tokens.spacing).map(([t,r])=>({key:t,value:r})),getTypography:()=>this.tokens.typography,getLayerCSS:t=>{let r=["tokens","primitives","components","utilities"];if(!r.includes(t))throw new Error(`Invalid layer: ${t}. Must be one of ${r.join(", ")}`);return this.#e?.[t]||""},usesEnumValue:(t,r)=>{let n=this.options.design||{};return JSON.stringify(n).includes(r)}}}}get tokensStylesheet(){return this.#o?.tokens}get primitivesStylesheet(){return this.#o?.primitives}get componentsStylesheet(){return this.#o?.components}get utilitiesStylesheet(){return this.#o?.utilities}getCSSModules(){return{"pds-tokens.css.js":this.#l("tokens",this.#e.tokens),"pds-primitives.css.js":this.#l("primitives",this.#e.primitives),"pds-components.css.js":this.#l("components",this.#e.components),"pds-utilities.css.js":this.#l("utilities",this.#e.utilities),"pds-styles.css.js":this.#l("styles",this.layeredCSS)}}#l(t,r){let n=r.replace(/\\/g,"\\\\").replace(/`/g,"\\`").replace(/\$/g,"\\$");return`// Pure Design System - ${t}
3765
+ ${this.#e.utilities}`:""}get compiled(){return{tokens:{colors:this.tokens.colors,spacing:this.tokens.spacing,radius:this.tokens.radius,borderWidths:this.tokens.borderWidths,typography:this.tokens.typography,shadows:this.tokens.shadows,layout:this.tokens.layout,transitions:this.tokens.transitions,zIndex:this.tokens.zIndex,icons:this.tokens.icons},layers:{tokens:{css:this.#e?.tokens||"",size:this.#e?.tokens?.length||0,sizeKB:((this.#e?.tokens?.length||0)/1024).toFixed(2)},primitives:{css:this.#e?.primitives||"",size:this.#e?.primitives?.length||0,sizeKB:((this.#e?.primitives?.length||0)/1024).toFixed(2)},components:{css:this.#e?.components||"",size:this.#e?.components?.length||0,sizeKB:((this.#e?.components?.length||0)/1024).toFixed(2)},utilities:{css:this.#e?.utilities||"",size:this.#e?.utilities?.length||0,sizeKB:((this.#e?.utilities?.length||0)/1024).toFixed(2)},combined:{css:this.layeredCSS,size:this.layeredCSS?.length||0,sizeKB:((this.layeredCSS?.length||0)/1024).toFixed(2)}},config:{design:this.options.design||{},preset:this.options.preset||null,debug:this.options.debug||!1},capabilities:{constructableStylesheets:typeof CSSStyleSheet<"u",blobURLs:typeof Blob<"u"&&typeof URL<"u",shadowDOM:typeof ShadowRoot<"u"},references:{ontology:typeof q<"u"?q:null,enums:typeof S<"u"?S:null},meta:{generatedAt:new Date().toISOString(),totalSize:(this.#e?.tokens?.length||0)+(this.#e?.primitives?.length||0)+(this.#e?.components?.length||0)+(this.#e?.utilities?.length||0),totalSizeKB:(((this.#e?.tokens?.length||0)+(this.#e?.primitives?.length||0)+(this.#e?.components?.length||0)+(this.#e?.utilities?.length||0))/1024).toFixed(2),layerCount:4,tokenGroups:Object.keys(this.tokens).length},helpers:{getColorScales:()=>{let e=[],r=this.tokens.colors;for(let[n,o]of Object.entries(r))typeof o=="object"&&o!==null&&e.push({name:n,scale:o});return e},getColorScale:e=>this.tokens.colors[e]||null,getSpacingValues:()=>Object.entries(this.tokens.spacing).map(([e,r])=>({key:e,value:r})),getTypography:()=>this.tokens.typography,getLayerCSS:e=>{let r=["tokens","primitives","components","utilities"];if(!r.includes(e))throw new Error(`Invalid layer: ${e}. Must be one of ${r.join(", ")}`);return this.#e?.[e]||""},usesEnumValue:(e,r)=>{let n=this.options.design||{};return JSON.stringify(n).includes(r)}}}}get tokensStylesheet(){return this.#a?.tokens}get primitivesStylesheet(){return this.#a?.primitives}get componentsStylesheet(){return this.#a?.components}get utilitiesStylesheet(){return this.#a?.utilities}getCSSModules(){return{"pds-tokens.css.js":this.#d("tokens",this.#e.tokens),"pds-primitives.css.js":this.#d("primitives",this.#e.primitives),"pds-components.css.js":this.#d("components",this.#e.components),"pds-utilities.css.js":this.#d("utilities",this.#e.utilities),"pds-styles.css.js":this.#d("styles",this.layeredCSS)}}#d(e,r){let n=r.replace(/\\/g,"\\\\").replace(/`/g,"\\`").replace(/\$/g,"\\$");return`// Pure Design System - ${e}
3590
3766
  // Auto-generated - do not edit directly
3591
3767
 
3592
- export const ${t} = new CSSStyleSheet();
3593
- ${t}.replaceSync(\`${n}\`);
3768
+ export const ${e} = new CSSStyleSheet();
3769
+ ${e}.replaceSync(\`${n}\`);
3594
3770
 
3595
- export const ${t}CSS = \`${n}\`;
3596
- `}};function Ar(e={},t={}){let r=Number(t.minContrast||4.5),n=Number(t.minMutedContrast||3),o=!!t.extendedChecks,a=c=>{let d=String(c||"").replace("#",""),l=d.length===3?d.split("").map(g=>g+g).join(""):d,u=parseInt(l||"0",16);return{r:u>>16&255,g:u>>8&255,b:u&255}},i=c=>{let{r:d,g:l,b:u}=a(c),g=[d/255,l/255,u/255].map(m=>m<=.03928?m/12.92:Math.pow((m+.055)/1.055,2.4));return .2126*g[0]+.7152*g[1]+.0722*g[2]},s=(c,d)=>{if(!c||!d)return 0;let l=i(c),u=i(d),g=Math.max(l,u),m=Math.min(l,u);return(g+.05)/(m+.05)},p=[];try{let d=new X({design:structuredClone(e)}).tokens.colors,l={surfaceBg:d.surface?.base,surfaceText:d.gray?.[900]||"#000000",surfaceTextSecondary:d.gray?.[700]||d.gray?.[800]||d.gray?.[900],surfaceTextMuted:d.gray?.[500]||d.gray?.[600]||d.gray?.[700],surfaceElevated:d.surface?.elevated||d.surface?.base,primaryFill:d.interactive?.light?.fill||d.primary?.[600],primaryText:d.interactive?.light?.text||d.primary?.[600],accentFill:d.accent?.[600]||d.accent?.[500],successFill:d.success?.[600]||d.success?.[500],warningFill:d.warning?.[600]||d.warning?.[500],dangerFill:d.danger?.[600]||d.danger?.[500],infoFill:d.info?.[600]||d.info?.[500]},u=y=>Math.max(s(y,"#ffffff"),s(y,"#000000")),g=s(l.primaryFill,"#ffffff");g<r&&p.push({path:"/colors/primary",message:`Primary button contrast too low in light theme (${g.toFixed(2)} < ${r}). Choose a darker primary.`,ratio:g,min:r,context:"light/btn-primary"});let m=s(l.surfaceBg,l.surfaceText);if(m<r&&p.push({path:"/colors/background",message:`Base text contrast on surface (light) is too low (${m.toFixed(2)} < ${r}). Adjust background or secondary (gray).`,ratio:m,min:r,context:"light/surface-text"}),o){let y=s(l.surfaceBg,l.surfaceTextSecondary);y<r&&p.push({path:"/colors/secondary",message:`Secondary text contrast on base surface (light) is too low (${y.toFixed(2)} < ${r}).`,ratio:y,min:r,context:"light/surface-text-secondary"});let k=s(l.surfaceBg,l.surfaceTextMuted);k<n&&p.push({path:"/colors/secondary",message:`Muted text contrast on base surface (light) is too low (${k.toFixed(2)} < ${n}).`,ratio:k,min:n,context:"light/surface-text-muted"});let v=s(l.surfaceElevated,l.surfaceText);v<r&&p.push({path:"/colors/background",message:`Elevated surface text contrast (light) is too low (${v.toFixed(2)} < ${r}).`,ratio:v,min:r,context:"light/surface-elevated-text"})}let b=s(l.primaryText,l.surfaceBg);b<r&&p.push({path:"/colors/primary",message:`Primary text on surface is too low for outline/link styles (light) (${b.toFixed(2)} < ${r}). Choose a darker primary or lighter surface.`,ratio:b,min:r,context:"light/outline"}),o&&[{path:"/colors/accent",key:"accent",value:l.accentFill},{path:"/colors/success",key:"success",value:l.successFill},{path:"/colors/warning",key:"warning",value:l.warningFill},{path:"/colors/danger",key:"danger",value:l.dangerFill},{path:"/colors/info",key:"info",value:l.infoFill}].forEach(k=>{if(!k?.value)return;let v=u(k.value);v<r&&p.push({path:k.path,message:`${k.key} fill color cannot achieve accessible text contrast (${v.toFixed(2)} < ${r}) with either white or black text.`,ratio:v,min:r,context:`light/${k.key}-fill`})});let f=d.dark;if(f){let y={surfaceBg:f.surface?.base||d.surface?.inverse,surfaceText:f.gray?.[50]||f.gray?.[100]||"#ffffff",surfaceTextMuted:f.gray?.[300]||f.gray?.[400]||f.gray?.[500],primaryFill:d.interactive?.dark?.fill||f.primary?.[600],primaryText:d.interactive?.dark?.text||f.primary?.[600]},k=s(y.primaryFill,"#ffffff");k<r&&p.push({path:"/colors/darkMode/primary",message:`Primary button contrast too low in dark theme (${k.toFixed(2)} < ${r}). Override darkMode.primary or pick a brighter hue.`,ratio:k,min:r,context:"dark/btn-primary"});let v=s(y.primaryText,y.surfaceBg);if(v<r&&p.push({path:"/colors/darkMode/primary",message:`Primary text on surface is too low for outline/link styles (dark) (${v.toFixed(2)} < ${r}). Override darkMode.primary/background.`,ratio:v,min:r,context:"dark/outline"}),o){let $=s(y.surfaceBg,y.surfaceText);$<r&&p.push({path:"/colors/darkMode/background",message:`Base text contrast on surface (dark) is too low (${$.toFixed(2)} < ${r}).`,ratio:$,min:r,context:"dark/surface-text"});let A=s(y.surfaceBg,y.surfaceTextMuted);A<n&&p.push({path:"/colors/darkMode/secondary",message:`Muted text contrast on surface (dark) is too low (${A.toFixed(2)} < ${n}).`,ratio:A,min:n,context:"dark/surface-text-muted"})}}}catch(c){p.push({path:"/",message:`Validation failed: ${String(c?.message||c)}`,ratio:0,min:0})}return{ok:p.length===0,issues:p}}var oo=new Set(["log","warn","error","debug","info"]),ao="__PURE_DS_PDS_SINGLETON__",Dt=null,Wt=null;function _r(){try{let t=(typeof globalThis<"u"?globalThis:window)?.[ao];if(t&&typeof t=="object")return t}catch{return null}return null}function io(e){return!e||typeof e!="object"?null:{mode:e.mode==="live"||e.mode==="static"?e.mode:null,debug:e.debug===!0,thisArg:e.thisArg}}function so(e){if(typeof e!="string")return"log";let t=e.toLowerCase();return oo.has(t)?t:"log"}function lo(){if(typeof Wt=="function")try{let t=io(Wt());if(t)return t}catch{}let e=_r();if(e){let t=e?.mode||e?.compiled?.mode||(e?.registry?.isLive?"live":"static"),r=(e?.debug||e?.currentConfig?.debug||e?.currentConfig?.design?.debug||e?.compiled?.debug||e?.compiled?.design?.debug||!1)===!0;return{mode:t,debug:r,thisArg:e}}return{mode:null,debug:!1}}function co(){if(typeof Dt=="function")try{let t=Dt();if(typeof t=="function")return t}catch{}let e=_r();return typeof e?.logHandler=="function"?e.logHandler:null}function Rr(e,t,...r){if(typeof console>"u")return;let n=typeof console[e]=="function"?console[e].bind(console):typeof console.log=="function"?console.log.bind(console):null;n&&(r.length>0?n(t,...r):n(t))}function po(e,t){let r=t?.debug===!0;return!(t?.mode==="static"&&!r||!r&&e!=="error"&&e!=="warn")}function Fr({getLogger:e,getContext:t}={}){Dt=typeof e=="function"?e:null,Wt=typeof t=="function"?t:null}function Qe(e="log",t,...r){let n=so(e),o=lo(),a=co();if(a)try{a.call(o?.thisArg,n,t,...r);return}catch(i){Rr("error","Custom log handler failed:",i)}po(n,o)&&Rr(n,t,...r)}var uo="en",_={defaultLocale:uo,provider:null,messagesByLocale:new Map,loadingByLocale:new Map,observer:null,reconcileTimer:null,requestedKeys:new Set,textNodeKeyMap:new WeakMap,attributeKeyMap:new WeakMap,valueToKeys:new Map,missingWarnings:new Set},go=["title","placeholder","aria-label","aria-description","aria-placeholder","aria-roledescription","alt","label"],mo=e=>!!e&&typeof e!="string"&&typeof e=="object"&&"strTag"in e;function oe(e){return String(e||"").trim().toLowerCase()}function fo(e){let t=oe(e);return t?t.split("-")[0]||t:""}function pe(e){let t=oe(e);if(!t)return _.defaultLocale;let r=_.provider?.resolveLocale;if(typeof r=="function"){let n=oe(r(e));if(n)return n}return t}function ho(e){let t="";for(let r=0;r<=e.length-1;r+=1)t+=e[r],r<e.length-1&&(t+=`{${r}}`);return t}function ye(e,t){return String(e).replace(/\{(\d+)\}/g,(r,n)=>t(Number(n)))}function Ht(e){if(!e||typeof e!="object")return{};let t={};for(let[r,n]of Object.entries(e)){if(typeof n=="string"){t[r]=n;continue}n&&typeof n=="object"&&typeof n.content=="string"&&(t[r]=n.content)}return t}function bo(e){let t=oe(e);if(!t)return[_.defaultLocale];let r=fo(t);return!r||r===t?[t]:[t,r]}function Pr(e,t){let r=pe(e);_.messagesByLocale.set(r,Ht(t))}function jr(e){typeof e=="string"&&e.length>0&&_.requestedKeys.add(e)}function Nr(e,t){if(typeof e!="string"||!e.length)return;let r=typeof t=="string"?t:String(t||"");r.length&&(_.valueToKeys.has(r)||_.valueToKeys.set(r,new Set),_.valueToKeys.get(r).add(e))}function Oe(e){let t=bo(e);for(let r of t)if(_.messagesByLocale.has(r))return{locale:r,messages:_.messagesByLocale.get(r)};return null}async function ve(e,t="explicit"){let r=pe(e),n=Oe(r);if(n)return n.messages;let o=r;if(_.loadingByLocale.has(o))return _.loadingByLocale.get(o);if(!_.provider)return{};let a=_.provider.loadLocale||_.provider.setLocale||null;if(typeof a!="function")return{};let i={locale:r,defaultLocale:_.defaultLocale,reason:t,loadedLocales:Array.from(_.messagesByLocale.keys()),messages:{...Oe(r)?.messages||{}},load:t==="set-default"||t==="explicit-load"},s;try{s=a(i)}catch{return{}}if(s&&typeof s.then=="function"){let c=s.then(d=>{let l=Ht(d);return Pr(r,l),l}).catch(()=>({})).finally(()=>{_.loadingByLocale.delete(o)});return _.loadingByLocale.set(o,c),c}let p=Ht(s);return Pr(r,p),p}function yo(e){if(!e||typeof e!="object")return"";let r=typeof Element<"u"&&e instanceof Element||e?.nodeType===1?e:null;if(!r)return"";if(r.hasAttribute?.("lang"))return oe(r.getAttribute("lang"));let n=r.closest?.("[lang]");return n&&n.getAttribute?oe(n.getAttribute("lang")):""}function Be(e={}){if(typeof e?.lang=="string"&&e.lang.trim())return pe(e.lang);let t=e?.element||e?.scope||e?.host||e?.contextElement||null,r=yo(t);if(r)return pe(r);if(typeof document<"u"&&document.documentElement){let n=oe(document.documentElement.getAttribute("lang"));if(n)return pe(n)}return _.defaultLocale}function vo(){let e=new Set([_.defaultLocale]);if(typeof document>"u")return e;let t=oe(document.documentElement?.getAttribute?.("lang"));t&&e.add(pe(t));let r=document.querySelectorAll?.("[lang]")||[];for(let n of r){let o=oe(n.getAttribute("lang"));o&&e.add(pe(o))}return e}async function xo(e){for(let t of e)await ve(t,"lang-detected")}function wo(e){for(let t of Array.from(_.messagesByLocale.keys()))e.has(t)||_.messagesByLocale.delete(t)}function ko(e){let t=String(e||""),r=(t.match(/^\s*/)||[""])[0],n=(t.match(/\s*$/)||[""])[0],o=r.length,a=t.length-n.length,i=a>=o?t.slice(o,a):"";return{leading:r,core:i,trailing:n}}function Ir(e){return String(e||"").replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function So(e,t){let r=typeof e=="string"?e:String(e||""),n=typeof t=="string"?t:String(t||""),o=/\{(\d+)\}/g,a=Array.from(r.matchAll(o));if(!a.length)return r===n?[]:null;let i=[],s="^",p=0;for(let l of a){let u=l.index??0;s+=Ir(r.slice(p,u)),s+="([\\s\\S]*?)",i.push(Number(l[1])),p=u+l[0].length}s+=Ir(r.slice(p)),s+="$";let c=new RegExp(s).exec(n);if(!c)return null;let d=[];for(let l=1;l<c.length;l+=1){let u=i[l-1],g=c[l];if(Object.prototype.hasOwnProperty.call(d,u)&&d[u]!==g)return null;d[u]=g}return d}function Ut(e,t){if(typeof e!="string"||!e.length)return[];let r=[e];for(let[,n]of _.messagesByLocale.entries()){let o=n?.[e];typeof o=="string"&&o.length&&r.push(o)}for(let n of r){let o=So(n,t);if(o)return o}return[]}function Or(e){if(!e)return null;let t=_.valueToKeys.get(e);if(t&&t.size>0){for(let n of t)if(_.requestedKeys.has(n))return n}if(_.requestedKeys.has(e))return e;let r=Array.from(_.messagesByLocale.entries());for(let n of _.requestedKeys)for(let[,o]of r)if(o&&o[n]===e)return n;return null}function Br(e){if(!e)return null;let t=null;for(let[r,n]of _.valueToKeys.entries()){if(typeof r!="string"||!r.length||r===e)continue;let o=e.indexOf(r);if(o!==-1)for(let a of n){if(!_.requestedKeys.has(a))continue;let i=Ut(a,r),s={key:a,matchedText:r,start:o,end:o+r.length,values:i};(!t||s.matchedText.length>t.matchedText.length)&&(t=s);break}}return t}async function $o(e){if(!e||e.nodeType!==3)return;let t=e.parentElement||null;if(!t)return;let{leading:r,core:n,trailing:o}=ko(e.nodeValue);if(!n)return;let a=_.textNodeKeyMap.get(e)||null;if((!a||!_.requestedKeys.has(a))&&(a=Or(n)),!a){let l=Br(n);if(!l)return;let u=Be({element:t});await ve(u,"text-node");let g=xe(l.key,l.values,{element:t},null),m=l.values.length?ye(g,y=>l.values[y]):g,b=n.slice(0,l.start)+m+n.slice(l.end),f=`${r}${b}${o}`;f!==e.nodeValue&&(e.nodeValue=f);return}_.textNodeKeyMap.set(e,a);let i=Be({element:t});await ve(i,"text-node");let s=Ut(a,n),p=xe(a,s,{element:t},null),c=s.length?ye(p,l=>s[l]):p,d=`${r}${c}${o}`;d!==e.nodeValue&&(e.nodeValue=d)}async function zo(){if(typeof document>"u"||_.requestedKeys.size===0)return;let e=document.body||document.documentElement;if(!e||typeof document.createTreeWalker!="function")return;let t=[],r=new Set,n=a=>{!a||r.has(a)||(r.add(a),t.push(a))};n(e);for(let a=0;a<t.length;a+=1){let i=t[a];if(!i||typeof i.querySelectorAll!="function")continue;let s=i.querySelectorAll("*");for(let p of s){let c=p?.shadowRoot;c&&n(c)}}let o=[];for(let a of t){let i=document.createTreeWalker(a,NodeFilter.SHOW_TEXT);for(;i.nextNode();)o.push(i.currentNode)}for(let a of o)await $o(a)}function Lo(e){let t=_.attributeKeyMap.get(e);return t||(t=new Map,_.attributeKeyMap.set(e,t)),t}async function Co(e,t){if(!e||typeof e.getAttribute!="function")return;let r=e.getAttribute(t);if(typeof r!="string"||!r.length)return;let n=Lo(e),o=n.get(t)||null;if((!o||!_.requestedKeys.has(o))&&(o=Or(r)),!o){let c=Br(r);if(!c)return;let d=Be({element:e});await ve(d,"attribute");let l=xe(c.key,c.values,{element:e},null),u=c.values.length?ye(l,m=>c.values[m]):l,g=r.slice(0,c.start)+u+r.slice(c.end);g!==r&&e.setAttribute(t,g),n.set(t,c.key);return}n.set(t,o);let a=Be({element:e});await ve(a,"attribute");let i=Ut(o,r),s=xe(o,i,{element:e},null),p=i.length?ye(s,c=>i[c]):s;p!==r&&e.setAttribute(t,p)}async function Mo(){if(typeof document>"u"||_.requestedKeys.size===0)return;let e=document.body||document.documentElement;if(!e)return;let t=[],r=new Set,n=o=>{!o||r.has(o)||(r.add(o),t.push(o))};n(e);for(let o=0;o<t.length;o+=1){let a=t[o];if(!a||typeof a.querySelectorAll!="function")continue;let i=a.querySelectorAll("*");for(let s of i){let p=s?.shadowRoot;p&&n(p)}}for(let o of t){if(!o||typeof o.querySelectorAll!="function")continue;let a=o.querySelectorAll("*");for(let i of a)for(let s of go)i.hasAttribute(s)&&await Co(i,s)}}async function Eo(){let e=vo();await xo(e),await zo(),await Mo(),wo(e)}function To(){typeof window>"u"||(_.reconcileTimer&&clearTimeout(_.reconcileTimer),_.reconcileTimer=setTimeout(()=>{_.reconcileTimer=null,Eo()},16))}function xe(e,t=[],r={},n=null){let o=Be(r),a=Oe(o);a||ve(o,"msg");let i=Oe(o)?.messages||{},s=Oe(_.defaultLocale)?.messages||{},p={key:e,values:t,options:r,locale:o,defaultLocale:_.defaultLocale,messages:i,messagesByLocale:Object.fromEntries(Array.from(_.messagesByLocale.entries())),template:n},c,d=!!a,l=o===_.defaultLocale;typeof _.provider?.translate=="function"&&(c=_.provider.translate(p));let u=null;if(c==null&&(c=i[e]),c==null&&(c=s[e],u=c==null?null:"default"),c==null&&(c=e,u="key"),d&&!l&&u){let m=`${o}::${e}`;_.missingWarnings.has(m)||(_.missingWarnings.add(m),Qe("warn",`[i18n] Missing translation for locale "${o}" and key "${e}"; using ${u} fallback.`))}let g=typeof c=="string"?c:String(c);if(Nr(e,g),Array.isArray(t)&&t.length>0){let m=ye(g,b=>t[b]);m!==g&&Nr(e,m)}return g}var Ao=(e,t,r={})=>{let n=ho(e);jr(n);let o=xe(n,t,r,{strings:e,values:t});return ye(o,a=>t[a])};var se=(e,t={})=>{if(!e)return"";if(mo(e))return Ao(e.strings,e.values,t);let r=String(e);jr(r);let n=xe(r,[],t,null);return!t?.element&&!t?.scope&&!t?.host&&!t?.contextElement&&!t?.lang&&To(),n};var Gt=class extends EventTarget{constructor(){super(),this.mode=null,this.compiled=null,this.log=()=>{},this.logHandler=null}},Dr="__PURE_DS_PDS_SINGLETON__",Vt=typeof globalThis<"u"?globalThis:window,qt=Vt?.[Dr],h=qt&&typeof qt.addEventListener=="function"?qt:new Gt;Vt&&(Vt[Dr]=h);typeof h.log!="function"&&(h.log=(e="log",t,...r)=>{if(typeof console>"u")return;let n=typeof console[e]=="function"?console[e].bind(console):typeof console.log=="function"?console.log.bind(console):null;n&&(r.length>0?n(t,...r):n(t))});typeof h.logHandler!="function"&&(h.logHandler=null);var Kt=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(r){h.log("error",`Registry: failed to load static ${t}:`,r),h.log("error",`Registry: looking for ${this._staticPaths[t]}`),h.log("error","Registry: make sure you've run 'npm run pds:build' and configured PDS.start() with the correct static.root path");let n=new CSSStyleSheet;return n.replaceSync("/* Failed to load "+t+" */"),n}}get mode(){return this._mode}get isLive(){return this._mode==="live"}},we=new Kt;function Ro(e){try{if(typeof document>"u")return;if(typeof CSSStyleSheet<"u"&&"adoptedStyleSheets"in Document.prototype){let n=new CSSStyleSheet;n.replaceSync(e),n._pds=!0;let o=(document.adoptedStyleSheets||[]).filter(a=>a._pds!==!0);document.adoptedStyleSheets=[...o,n];return}let t="pds-runtime-stylesheet",r=document.getElementById(t);if(!r){r=document.createElement("style"),r.id=t,r.type="text/css";let n=document.head||document.getElementsByTagName("head")[0];n?n.appendChild(r):document.documentElement.appendChild(r)}r.textContent=e}catch(t){h.log("warn","installRuntimeStyles failed:",t)}}function Wr(e){let t=e;if(!t||typeof t!="object"){h.log("error","Runtime applyStyles requires an explicit generator instance in live mode");return}let r=t.layeredCSS||t.css||"";if(!r){t.options?.log?.("warn","Runtime: no CSS available on generator to apply");return}Ro(r)}async function et(e,t=[],r=null){try{let n=r?.primitivesStylesheet?r.primitivesStylesheet:await we.getStylesheet("primitives");e.adoptedStyleSheets=[n,...t]}catch(n){let o=e.host?.tagName?.toLowerCase()||"unknown";h.log("error",`Adopter: <${o}> failed to adopt primitives:`,n),e.adoptedStyleSheets=t}}async function tt(e,t=["primitives"],r=[],n=null){let o=Array.isArray(r)?r.filter(Boolean):[];if(o.length){let i=(Array.isArray(e.adoptedStyleSheets)?e.adoptedStyleSheets:[]).filter(s=>!o.includes(s));e.adoptedStyleSheets=[...i,...o]}try{let i=(await Promise.all(t.map(async s=>{if(n)switch(s){case"tokens":return n.tokensStylesheet;case"primitives":return n.primitivesStylesheet;case"components":return n.componentsStylesheet;case"utilities":return n.utilitiesStylesheet;default:break}return we.getStylesheet(s)}))).filter(s=>s!==null);e.adoptedStyleSheets=[...i,...o]}catch(a){let i=e.host?.tagName?.toLowerCase()||"unknown";h.log("error",`Adopter: <${i}> failed to adopt layers:`,a),e.adoptedStyleSheets=o}}function Hr(e){let t=new CSSStyleSheet;return t.replaceSync(e),t}var _o=[{selector:".accordion"},{selector:"nav[data-dropdown]"},{selector:"label[data-toggle]"},{selector:"label[data-color]"},{selector:'input[type="range"]'},{selector:"form[data-required]"},{selector:"fieldset[role=group][data-open]"},{selector:"[data-clip]"},{selector:"button, a[class*='btn-']"}];function Fo(e){e.dataset.enhancedAccordion||(e.dataset.enhancedAccordion="true",e.addEventListener("toggle",t=>{t.target.open&&t.target.parentElement===e&&e.querySelectorAll(":scope > details[open]").forEach(r=>{r!==t.target&&(r.open=!1)})},!0))}function Po(e){if(e.dataset.enhancedDropdown)return;e.dataset.enhancedDropdown="true";let t=e.lastElementChild;if(!t)return;let r=e.querySelector("[data-dropdown-toggle]")||e.querySelector("button"),n=typeof HTMLElement<"u"&&"showPopover"in HTMLElement.prototype&&"hidePopover"in HTMLElement.prototype;r&&!r.hasAttribute("type")&&r.setAttribute("type","button"),t.id||(t.id=`dropdown-${Math.random().toString(36).slice(2,9)}`);let o=t.tagName?.toLowerCase()==="menu",a=8;if(o&&!t.hasAttribute("role")&&t.setAttribute("role","menu"),t.hasAttribute("aria-hidden")||t.setAttribute("aria-hidden","true"),r&&(r.setAttribute("aria-haspopup","true"),r.setAttribute("aria-controls",t.id),r.setAttribute("aria-expanded","false")),!n){let L="__PDS_DROPDOWN_POPOVER_WARNED__";globalThis[L]||(globalThis[L]=!0,console.warn("[PDS] nav[data-dropdown] requires the Popover API. Add a popover polyfill (recommended: @oddbird/popover-polyfill) for browsers without support."));return}t.setAttribute("popover","auto");let i=()=>{let L=t.getAttribute("style");t.style.visibility="hidden",t.style.display="inline-block",t.style.pointerEvents="none";let M=t.getBoundingClientRect(),N=Math.max(t.offsetWidth||0,t.scrollWidth||0,M.width||0,1),z=Math.max(t.offsetHeight||0,t.scrollHeight||0,M.height||0,1);return L===null?t.removeAttribute("style"):t.setAttribute("style",L),{width:N,height:z}},s=()=>{try{return t.matches(":popover-open")}catch{return!1}},p=()=>{t.setAttribute("aria-hidden","true"),r?.setAttribute("aria-expanded","false")},c=()=>{t.setAttribute("aria-hidden","false"),r?.setAttribute("aria-expanded","true")},d=()=>{let L=(e.getAttribute("data-direction")||e.getAttribute("data-dropdown-direction")||e.getAttribute("data-mode")||"auto").toLowerCase();if(L==="up"||L==="down")return L;let M=(r||e).getBoundingClientRect(),{height:N}=i(),z=Math.max(0,window.innerHeight-M.bottom),x=Math.max(0,M.top),S=z>=N,C=x>=N;return S&&!C?"down":C&&!S?"up":S&&C?"down":x>z?"up":"down"},l=()=>{let L=(e.getAttribute("data-align")||e.getAttribute("data-dropdown-align")||"auto").toLowerCase();if(L==="left"||L==="right"||L==="start"||L==="end")return L==="start"?"left":L==="end"?"right":L;let M=(r||e).getBoundingClientRect(),{width:N}=i(),z=Math.max(0,window.innerWidth-M.left),x=Math.max(0,M.right),S=z>=N,C=x>=N;return S&&!C?"left":C&&!S?"right":S&&C?"left":x>z?"right":"left"},u=(L,M=8)=>{let N=getComputedStyle(e).getPropertyValue(L).trim();if(!N)return M;let z=document.createElement("span");z.style.position="fixed",z.style.visibility="hidden",z.style.pointerEvents="none",z.style.height=N,document.body.appendChild(z);let x=Number.parseFloat(getComputedStyle(z).height);return z.remove(),Number.isFinite(x)?x:M},g=()=>{["position","left","top","right","bottom","margin-top","margin-bottom","max-width","max-inline-size","max-height","overflow"].forEach(L=>t.style.removeProperty(L))},m=()=>{if(!s())return;let L=(r||e).getBoundingClientRect(),M=window.visualViewport,N=M?.width||document.documentElement?.clientWidth||window.innerWidth,z=M?.height||document.documentElement?.clientHeight||window.innerHeight,x=M?.offsetLeft||0,S=M?.offsetTop||0,C=Math.max(1,N-a*2),E=Math.max(1,z-a*2);t.style.maxWidth=`${Math.round(C)}px`,t.style.maxInlineSize=`${Math.round(C)}px`,t.style.maxHeight=`${Math.round(E)}px`,t.style.overflow="auto";let{width:O,height:B}=i(),K=u("--spacing-2",8),P=d(),D=l();e.dataset.dropdownDirection=P,e.dataset.dropdownAlign=D;let Y=D==="right"?L.right-O:L.left;O>=C-1?Y=x+a:Y=Math.max(x+a,Math.min(Y,x+N-O-a));let Re=P==="up"?L.top-K-B:L.bottom+K;Re=Math.max(S+a,Math.min(Re,S+z-B-a)),Object.assign(t.style,{position:"fixed",left:`${Math.round(Y)}px`,top:`${Math.round(Re)}px`,right:"auto",bottom:"auto",marginTop:"0",marginBottom:"0"})},b=null,f=()=>{b||(b=()=>m(),window.addEventListener("resize",b),window.addEventListener("scroll",b,!0))},y=()=>{b&&(window.removeEventListener("resize",b),window.removeEventListener("scroll",b,!0),b=null)},k=null,v=null,$=()=>{k||typeof document>"u"||(k=()=>{s()&&(e.dataset.dropdownDirection=d(),e.dataset.dropdownAlign=l(),v!==null&&cancelAnimationFrame(v),v=requestAnimationFrame(()=>{v=null,s()&&m()}))},document.addEventListener("pds:config-changed",k))},A=()=>{!k||typeof document>"u"||(document.removeEventListener("pds:config-changed",k),k=null,v!==null&&(cancelAnimationFrame(v),v=null))};t.addEventListener("toggle",L=>{if(L.newState==="open"){c(),m(),f(),$();return}p(),y(),A(),g()});let T=()=>{s()||(e.dataset.dropdownDirection=d(),e.dataset.dropdownAlign=l(),t.showPopover(),requestAnimationFrame(()=>m()))},F=()=>{s()&&t.hidePopover()},I=()=>{s()?F():T()};p(),t.addEventListener("click",L=>{let M=L.target instanceof Element?L.target:L.target?.parentElement;M&&M.closest("[data-dropdown-close]")&&F()}),r?.addEventListener("click",L=>{L.preventDefault(),L.stopPropagation(),I()}),e.addEventListener("keydown",L=>{L.key==="Escape"&&(F(),r?.focus())})}function No(e){if(e.dataset.enhancedToggle)return;e.dataset.enhancedToggle="true";let t=e.querySelector('input[type="checkbox"]');if(!t)return;e.hasAttribute("tabindex")||e.setAttribute("tabindex","0"),e.setAttribute("role","switch"),e.setAttribute("aria-checked",t.checked?"true":"false");let r=document.createElement("span");r.className="toggle-switch",r.setAttribute("role","presentation"),r.setAttribute("aria-hidden","true");let n=document.createElement("span");n.className="toggle-knob",r.appendChild(n),e.insertBefore(r,t.nextSibling);let o=()=>{e.setAttribute("aria-checked",t.checked?"true":"false")},a=()=>{t.disabled||(t.checked=!t.checked,o(),t.dispatchEvent(new Event("input",{bubbles:!0})),t.dispatchEvent(new Event("change",{bubbles:!0})))};e.addEventListener("click",i=>{i.preventDefault(),a()}),e.addEventListener("keydown",i=>{(i.key===" "||i.key==="Enter")&&(i.preventDefault(),a())}),t.addEventListener("change",o)}function Io(e){if(e.dataset.enhancedColorInput)return;let t=e.querySelector('input[type="color"]');if(!t)return;e.dataset.enhancedColorInput="true";let r=e.querySelector(":scope > .color-control"),n=e.querySelector(":scope > .color-control > .color-swatch"),o=e.querySelector(":scope > .color-control > output");r||(r=document.createElement("span"),r.className="color-control",t.before(r)),n||(n=document.createElement("span"),n.className="color-swatch",r.appendChild(n)),t.parentElement!==n&&n.appendChild(t),o||(o=document.createElement("output"),r.appendChild(o));let a=()=>{if(t.dataset.colorUnset==="1"){o.value="",o.textContent=se("not set"),r.dataset.value="",r.dataset.unset="1",n.dataset.unset="1";return}o.value=t.value,o.textContent=t.value,r.dataset.value=t.value,delete r.dataset.unset,delete n.dataset.unset};a();let i=()=>{t.dataset.colorUnset==="1"&&(t.dataset.colorUnset="0"),a()};t.addEventListener("input",i,{passive:!0}),t.addEventListener("change",i,{passive:!0})}function jo(e){if(e.dataset.enhancedRange)return;let t=i=>{if(e.dataset.enhancedRangeProgrammatic)return;e.dataset.enhancedRangeProgrammatic="1";let s=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(e),"value")||Object.getOwnPropertyDescriptor(HTMLInputElement.prototype,"value");s?.get&&s?.set&&Object.defineProperty(e,"value",{configurable:!0,enumerable:s.enumerable,get(){return s.get.call(this)},set(c){s.set.call(this,c),i()}}),new MutationObserver(c=>{c.some(l=>{let u=l.attributeName;return u==="value"||u==="min"||u==="max"})&&i()}).observe(e,{attributes:!0,attributeFilter:["value","min","max"]})},r=e.closest("label"),n=r?.classList.contains("range-output"),o=e.id||`range-${Math.random().toString(36).substring(2,11)}`,a=`${o}-output`;if(e.id=o,n){let i=r.querySelector("span");if(i&&!i.classList.contains("range-output-wrapper")){let s=document.createElement("span");s.className="range-output-wrapper",s.style.display="flex",s.style.justifyContent="space-between",s.style.alignItems="center";let p=document.createElement("span");p.textContent=i.textContent,s.appendChild(p);let c=document.createElement("output");c.id=a,c.setAttribute("for",o),c.style.color="var(--surface-text-secondary, var(--color-text-secondary))",c.style.fontSize="0.875rem",c.textContent=e.value,s.appendChild(c),i.textContent="",i.appendChild(s);let d=()=>{c.textContent=e.value};e.addEventListener("input",d),e.addEventListener("change",d),t(d),d()}}else{let i=e.closest(".range-container");i||(i=document.createElement("div"),i.className="range-container",e.parentNode?.insertBefore(i,e),i.appendChild(e)),i.style.position="relative";let s=document.createElement("output");s.id=a,s.setAttribute("for",o),s.className="range-bubble",s.setAttribute("aria-live","polite"),i.appendChild(s);let p=()=>{let l=parseFloat(e.min)||0,u=parseFloat(e.max)||100,g=parseFloat(e.value),m=(g-l)/(u-l);s.style.left=`calc(${m*100}% )`,s.textContent=String(g)},c=()=>s.classList.add("visible"),d=()=>s.classList.remove("visible");e.addEventListener("input",p),e.addEventListener("pointerdown",c),e.addEventListener("pointerup",d),e.addEventListener("pointerleave",d),e.addEventListener("focus",c),e.addEventListener("blur",d),e.addEventListener("change",p),t(p),p()}e.dataset.enhancedRange="1"}function Oo(e){if(e.dataset.enhancedRequired)return;e.dataset.enhancedRequired="true";let t=r=>{let n;if(r.closest("[role$=group]")?n=r.closest("[role$=group]").querySelector("legend"):n=r.closest("label"),!n||n.querySelector(".required-asterisk"))return;let o=document.createElement("span");o.classList.add("required-asterisk"),o.textContent="*",o.style.marginLeft="4px";let a=n.querySelector("span, [data-label]");if(a)a.appendChild(o);else{let s=n.querySelector("input, select, textarea");s?n.insertBefore(o,s):n.appendChild(o)}let i=r.closest("form");if(i&&!i.querySelector(".required-legend")){let s=document.createElement("small");s.classList.add("required-legend"),s.textContent=se("* Required fields"),i.insertBefore(s,i.querySelector(".form-actions")||i.lastElementChild)}};e.querySelectorAll("[required]").forEach(r=>{t(r)})}function Bo(e){if(e.dataset.enhancedOpenGroup)return;e.dataset.enhancedOpenGroup="true",e.classList.add("flex","flex-wrap","buttons");let t=document.createElement("input");t.type="text",t.placeholder=se("Add item..."),t.classList.add("input-text","input-sm"),t.style.width="auto";let r=()=>e.querySelector('input[type="radio"], input[type="checkbox"]');e.appendChild(t),t.addEventListener("keydown",n=>{if(n.key==="Enter"||n.key==="Tab"){let o=t.value.trim();if(o){n.preventDefault();let a=r(),i=a?.type==="radio"?"radio":"checkbox",s=`open-group-${Math.random().toString(36).substring(2,11)}`,p=document.createElement("label"),c=document.createElement("span");c.setAttribute("data-label",""),c.textContent=o;let d=document.createElement("input");d.type=i,d.name=a?.name||e.getAttribute("data-name")||"open-group",d.value=o,d.id=s,p.appendChild(c),p.appendChild(d),e.insertBefore(p,t),t.value=""}}else if(n.key==="Backspace"&&t.value===""){n.preventDefault();let o=e.querySelectorAll("label");o.length>0&&o[o.length-1].remove()}})}function Do(e){if(e.dataset.enhancedClip)return;e.dataset.enhancedClip="true",e.hasAttribute("tabindex")||e.setAttribute("tabindex","0"),e.hasAttribute("role")||e.setAttribute("role","button");let t=()=>{let n=e.getAttribute("data-clip-open")==="true";e.setAttribute("aria-expanded",n?"true":"false")},r=()=>{let n=e.getAttribute("data-clip-open")==="true";e.setAttribute("data-clip-open",n?"false":"true"),t()};e.addEventListener("click",n=>{n.defaultPrevented||r()}),e.addEventListener("keydown",n=>{(n.key===" "||n.key==="Enter")&&(n.preventDefault(),r())}),t()}function Wo(e){if(e.dataset.enhancedBtnWorking)return;e.dataset.enhancedBtnWorking="true";let t=null,r=!1;new MutationObserver(o=>{o.forEach(a=>{if(a.attributeName==="class"){let i=e.classList.contains("btn-working"),s=e.querySelector("pds-icon");if(i)if(s)t||(t=s.getAttribute("icon")),s.setAttribute("icon","circle-notch");else{let p=document.createElement("pds-icon");p.setAttribute("icon","circle-notch"),p.setAttribute("size","sm"),e.insertBefore(p,e.firstChild),r=!0}else a.oldValue?.includes("btn-working")&&s&&(r?(s.remove(),r=!1):t&&(s.setAttribute("icon",t),t=null))}})}).observe(e,{attributes:!0,attributeFilter:["class"],attributeOldValue:!0})}var Ho=new Map([[".accordion",Fo],["nav[data-dropdown]",Po],["label[data-toggle]",No],["label[data-color]",Io],['input[type="range"]',jo],["form[data-required]",Oo],["fieldset[role=group][data-open]",Bo],["[data-clip]",Do],["button, a[class*='btn-']",Wo]]),rt=_o.map(e=>({...e,run:Ho.get(e.selector)||(()=>{})}));var Ur=[{selector:".accordion",description:"Ensures only one <details> element can be open at a time within the accordion.",demoHtml:`
3771
+ export const ${e}CSS = \`${n}\`;
3772
+ `}};function Tr(t={},e={}){let r=Number(e.minContrast||4.5),n=Number(e.minMutedContrast||3),o=!!e.extendedChecks,a=e.warnOnHueDrift!==!1,i=Number.isFinite(Number(e.maxHueDrift))?Number(e.maxHueDrift):35,s=Number.isFinite(Number(e.minSaturationForHueWarning))?Number(e.minSaturationForHueWarning):18,d=b=>{let y=String(b||"").trim().match(/^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/);if(!y)return null;let v=y[1];return`#${(v.length===3?v.split("").map($=>$+$).join(""):v).toLowerCase()}`},c=b=>{let m=d(b);if(!m)return null;let y=m.replace("#",""),v=y.length===3?y.split("").map($=>$+$).join(""):y,h=parseInt(v||"0",16);return{r:h>>16&255,g:h>>8&255,b:h&255}},p=b=>{let m=c(b);if(!m)return 0;let{r:y,g:v,b:h}=m,$=[y/255,v/255,h/255].map(A=>A<=.03928?A/12.92:Math.pow((A+.055)/1.055,2.4));return .2126*$[0]+.7152*$[1]+.0722*$[2]},l=(b,m)=>{if(!b||!m)return 0;let y=p(b),v=p(m),h=Math.max(y,v),$=Math.min(y,v);return(h+.05)/($+.05)},u=b=>{let m=c(b);if(!m)return null;let y=m.r/255,v=m.g/255,h=m.b/255,$=Math.max(y,v,h),A=Math.min(y,v,h),T=$-A,I=0;T!==0&&($===y?I=(v-h)/T%6:$===v?I=(h-y)/T+2:I=(y-v)/T+4,I*=60,I<0&&(I+=360));let z=($+A)/2,M=T===0?0:T/(1-Math.abs(2*z-1));return{h:I,s:M*100,l:z*100}},g=(b,m)=>{if(!Number.isFinite(b)||!Number.isFinite(m))return null;let y=Math.abs(b-m);return Math.min(y,360-y)},f=[],w=[];try{let m=new Z({design:structuredClone(t)}).tokens.colors,y={surfaceBg:m.surface?.base,surfaceText:m.gray?.[900]||"#000000",surfaceTextSecondary:m.gray?.[700]||m.gray?.[800]||m.gray?.[900],surfaceTextMuted:m.gray?.[500]||m.gray?.[600]||m.gray?.[700],surfaceElevated:m.surface?.elevated||m.surface?.base,primaryFill:m.interactive?.light?.fill||m.primary?.[600],primaryText:m.interactive?.light?.text||m.primary?.[600],accentFill:m.accent?.[600]||m.accent?.[500],successFill:m.success?.[600]||m.success?.[500],warningFill:m.warning?.[600]||m.warning?.[500],dangerFill:m.danger?.[600]||m.danger?.[500],infoFill:m.info?.[600]||m.info?.[500]},v=I=>Math.max(l(I,"#ffffff"),l(I,"#000000")),h=l(y.primaryFill,"#ffffff");h<r&&f.push({path:"/colors/primary",message:`Primary button contrast too low in light theme (${h.toFixed(2)} < ${r}). Choose a darker primary.`,ratio:h,min:r,context:"light/btn-primary"});let $=l(y.surfaceBg,y.surfaceText);if($<r&&f.push({path:"/colors/background",message:`Base text contrast on surface (light) is too low (${$.toFixed(2)} < ${r}). Adjust background or secondary (gray).`,ratio:$,min:r,context:"light/surface-text"}),o){let I=l(y.surfaceBg,y.surfaceTextSecondary);I<r&&f.push({path:"/colors/secondary",message:`Secondary text contrast on base surface (light) is too low (${I.toFixed(2)} < ${r}).`,ratio:I,min:r,context:"light/surface-text-secondary"});let z=l(y.surfaceBg,y.surfaceTextMuted);z<n&&f.push({path:"/colors/secondary",message:`Muted text contrast on base surface (light) is too low (${z.toFixed(2)} < ${n}).`,ratio:z,min:n,context:"light/surface-text-muted"});let M=l(y.surfaceElevated,y.surfaceText);M<r&&f.push({path:"/colors/background",message:`Elevated surface text contrast (light) is too low (${M.toFixed(2)} < ${r}).`,ratio:M,min:r,context:"light/surface-elevated-text"})}let A=l(y.primaryText,y.surfaceBg);A<r&&f.push({path:"/colors/primary",message:`Primary text on surface is too low for outline/link styles (light) (${A.toFixed(2)} < ${r}). Choose a darker primary or lighter surface.`,ratio:A,min:r,context:"light/outline"}),o&&[{path:"/colors/accent",key:"accent",value:y.accentFill},{path:"/colors/success",key:"success",value:y.successFill},{path:"/colors/warning",key:"warning",value:y.warningFill},{path:"/colors/danger",key:"danger",value:y.dangerFill},{path:"/colors/info",key:"info",value:y.infoFill}].forEach(z=>{if(!z?.value)return;let M=v(z.value);M<r&&f.push({path:z.path,message:`${z.key} fill color cannot achieve accessible text contrast (${M.toFixed(2)} < ${r}) with either white or black text.`,ratio:M,min:r,context:`light/${z.key}-fill`})});let T=m.dark;if(T){let I={surfaceBg:T.surface?.base||m.surface?.inverse,surfaceText:T.gray?.[50]||T.gray?.[100]||"#ffffff",surfaceTextMuted:T.gray?.[300]||T.gray?.[400]||T.gray?.[500],primaryFill:m.interactive?.dark?.fill||T.primary?.[600],primaryText:m.interactive?.dark?.text||T.primary?.[600]},z=l(I.primaryFill,"#ffffff");z<r&&f.push({path:"/colors/darkMode/primary",message:`Primary button contrast too low in dark theme (${z.toFixed(2)} < ${r}). Override darkMode.primary or pick a brighter hue.`,ratio:z,min:r,context:"dark/btn-primary"});let M=l(I.primaryText,I.surfaceBg);if(M<r&&f.push({path:"/colors/darkMode/primary",message:`Primary text on surface is too low for outline/link styles (dark) (${M.toFixed(2)} < ${r}). Override darkMode.primary/background.`,ratio:M,min:r,context:"dark/outline"}),o){let P=l(I.surfaceBg,I.surfaceText);P<r&&f.push({path:"/colors/darkMode/background",message:`Base text contrast on surface (dark) is too low (${P.toFixed(2)} < ${r}).`,ratio:P,min:r,context:"dark/surface-text"});let C=l(I.surfaceBg,I.surfaceTextMuted);C<n&&f.push({path:"/colors/darkMode/secondary",message:`Muted text contrast on surface (dark) is too low (${C.toFixed(2)} < ${n}).`,ratio:C,min:n,context:"dark/surface-text-muted"})}}if(a){let I=t?.colors||{},z=I?.darkMode||{};["primary","secondary","accent"].forEach(P=>{let C=I?.[P],k=z?.[P];if(!C||!k)return;let L=u(C),E=u(k);if(!L||!E||L.s<s&&E.s<s)return;let R=g(L.h,E.h);R==null||R<=i||w.push({path:`/colors/darkMode/${P}`,message:`Dark mode ${P} hue drifts ${R.toFixed(1)}deg from light ${P} (${L.h.toFixed(1)}deg -> ${E.h.toFixed(1)}deg). This may reduce cross-theme brand identity consistency.`,context:`dark/identity-hue-${P}`})})}}catch(b){f.push({path:"/",message:`Validation failed: ${String(b?.message||b)}`,ratio:0,min:0})}return{ok:f.length===0,issues:f,warnings:w}}var oo=new Set(["log","warn","error","debug","info"]),ao="__PURE_DS_PDS_SINGLETON__",Dt=null,Ht=null;function Ir(){try{let e=(typeof globalThis<"u"?globalThis:window)?.[ao];if(e&&typeof e=="object")return e}catch{return null}return null}function io(t){return!t||typeof t!="object"?null:{mode:t.mode==="live"||t.mode==="static"?t.mode:null,debug:t.debug===!0,thisArg:t.thisArg}}function so(t){if(typeof t!="string")return"log";let e=t.toLowerCase();return oo.has(e)?e:"log"}function lo(){if(typeof Ht=="function")try{let e=io(Ht());if(e)return e}catch{}let t=Ir();if(t){let e=t?.mode||t?.compiled?.mode||(t?.registry?.isLive?"live":"static"),r=(t?.debug||t?.currentConfig?.debug||t?.currentConfig?.design?.debug||t?.compiled?.debug||t?.compiled?.design?.debug||!1)===!0;return{mode:e,debug:r,thisArg:t}}return{mode:null,debug:!1}}function co(){if(typeof Dt=="function")try{let e=Dt();if(typeof e=="function")return e}catch{}let t=Ir();return typeof t?.logHandler=="function"?t.logHandler:null}function Rr(t,e,...r){if(typeof console>"u")return;let n=typeof console[t]=="function"?console[t].bind(console):typeof console.log=="function"?console.log.bind(console):null;n&&(r.length>0?n(e,...r):n(e))}function po(t,e){let r=e?.debug===!0;return!(e?.mode==="static"&&!r||!r&&t!=="error"&&t!=="warn")}function _r({getLogger:t,getContext:e}={}){Dt=typeof t=="function"?t:null,Ht=typeof e=="function"?e:null}function Qe(t="log",e,...r){let n=so(t),o=lo(),a=co();if(a)try{a.call(o?.thisArg,n,e,...r);return}catch(i){Rr("error","Custom log handler failed:",i)}po(n,o)&&Rr(n,e,...r)}var uo="en",F={defaultLocale:uo,provider:null,messagesByLocale:new Map,loadingByLocale:new Map,observer:null,reconcileTimer:null,requestedKeys:new Set,textNodeKeyMap:new WeakMap,attributeKeyMap:new WeakMap,valueToKeys:new Map,missingWarnings:new Set},go=["title","placeholder","aria-label","aria-description","aria-placeholder","aria-roledescription","alt","label"],fo=t=>!!t&&typeof t!="string"&&typeof t=="object"&&"strTag"in t;function oe(t){return String(t||"").trim().toLowerCase()}function mo(t){let e=oe(t);return e?e.split("-")[0]||e:""}function pe(t){let e=oe(t);if(!e)return F.defaultLocale;let r=F.provider?.resolveLocale;if(typeof r=="function"){let n=oe(r(t));if(n)return n}return e}function ho(t){let e="";for(let r=0;r<=t.length-1;r+=1)e+=t[r],r<t.length-1&&(e+=`{${r}}`);return e}function ye(t,e){return String(t).replace(/\{(\d+)\}/g,(r,n)=>e(Number(n)))}function Wt(t){if(!t||typeof t!="object")return{};let e={};for(let[r,n]of Object.entries(t)){if(typeof n=="string"){e[r]=n;continue}n&&typeof n=="object"&&typeof n.content=="string"&&(e[r]=n.content)}return e}function bo(t){let e=oe(t);if(!e)return[F.defaultLocale];let r=mo(e);return!r||r===e?[e]:[e,r]}function Fr(t,e){let r=pe(t);F.messagesByLocale.set(r,Wt(e))}function jr(t){typeof t=="string"&&t.length>0&&F.requestedKeys.add(t)}function Pr(t,e){if(typeof t!="string"||!t.length)return;let r=typeof e=="string"?e:String(e||"");r.length&&(F.valueToKeys.has(r)||F.valueToKeys.set(r,new Set),F.valueToKeys.get(r).add(t))}function Oe(t){let e=bo(t);for(let r of e)if(F.messagesByLocale.has(r))return{locale:r,messages:F.messagesByLocale.get(r)};return null}async function ve(t,e="explicit"){let r=pe(t),n=Oe(r);if(n)return n.messages;let o=r;if(F.loadingByLocale.has(o))return F.loadingByLocale.get(o);if(!F.provider)return{};let a=F.provider.loadLocale||F.provider.setLocale||null;if(typeof a!="function")return{};let i={locale:r,defaultLocale:F.defaultLocale,reason:e,loadedLocales:Array.from(F.messagesByLocale.keys()),messages:{...Oe(r)?.messages||{}},load:e==="set-default"||e==="explicit-load"},s;try{s=a(i)}catch{return{}}if(s&&typeof s.then=="function"){let c=s.then(p=>{let l=Wt(p);return Fr(r,l),l}).catch(()=>({})).finally(()=>{F.loadingByLocale.delete(o)});return F.loadingByLocale.set(o,c),c}let d=Wt(s);return Fr(r,d),d}function yo(t){if(!t||typeof t!="object")return"";let r=typeof Element<"u"&&t instanceof Element||t?.nodeType===1?t:null;if(!r)return"";if(r.hasAttribute?.("lang"))return oe(r.getAttribute("lang"));let n=r.closest?.("[lang]");return n&&n.getAttribute?oe(n.getAttribute("lang")):""}function Be(t={}){if(typeof t?.lang=="string"&&t.lang.trim())return pe(t.lang);let e=t?.element||t?.scope||t?.host||t?.contextElement||null,r=yo(e);if(r)return pe(r);if(typeof document<"u"&&document.documentElement){let n=oe(document.documentElement.getAttribute("lang"));if(n)return pe(n)}return F.defaultLocale}function vo(){let t=new Set([F.defaultLocale]);if(typeof document>"u")return t;let e=oe(document.documentElement?.getAttribute?.("lang"));e&&t.add(pe(e));let r=document.querySelectorAll?.("[lang]")||[];for(let n of r){let o=oe(n.getAttribute("lang"));o&&t.add(pe(o))}return t}async function xo(t){for(let e of t)await ve(e,"lang-detected")}function wo(t){for(let e of Array.from(F.messagesByLocale.keys()))t.has(e)||F.messagesByLocale.delete(e)}function ko(t){let e=String(t||""),r=(e.match(/^\s*/)||[""])[0],n=(e.match(/\s*$/)||[""])[0],o=r.length,a=e.length-n.length,i=a>=o?e.slice(o,a):"";return{leading:r,core:i,trailing:n}}function Nr(t){return String(t||"").replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function So(t,e){let r=typeof t=="string"?t:String(t||""),n=typeof e=="string"?e:String(e||""),o=/\{(\d+)\}/g,a=Array.from(r.matchAll(o));if(!a.length)return r===n?[]:null;let i=[],s="^",d=0;for(let l of a){let u=l.index??0;s+=Nr(r.slice(d,u)),s+="([\\s\\S]*?)",i.push(Number(l[1])),d=u+l[0].length}s+=Nr(r.slice(d)),s+="$";let c=new RegExp(s).exec(n);if(!c)return null;let p=[];for(let l=1;l<c.length;l+=1){let u=i[l-1],g=c[l];if(Object.prototype.hasOwnProperty.call(p,u)&&p[u]!==g)return null;p[u]=g}return p}function Ut(t,e){if(typeof t!="string"||!t.length)return[];let r=[t];for(let[,n]of F.messagesByLocale.entries()){let o=n?.[t];typeof o=="string"&&o.length&&r.push(o)}for(let n of r){let o=So(n,e);if(o)return o}return[]}function Or(t){if(!t)return null;let e=F.valueToKeys.get(t);if(e&&e.size>0){for(let n of e)if(F.requestedKeys.has(n))return n}if(F.requestedKeys.has(t))return t;let r=Array.from(F.messagesByLocale.entries());for(let n of F.requestedKeys)for(let[,o]of r)if(o&&o[n]===t)return n;return null}function Br(t){if(!t)return null;let e=null;for(let[r,n]of F.valueToKeys.entries()){if(typeof r!="string"||!r.length||r===t)continue;let o=t.indexOf(r);if(o!==-1)for(let a of n){if(!F.requestedKeys.has(a))continue;let i=Ut(a,r),s={key:a,matchedText:r,start:o,end:o+r.length,values:i};(!e||s.matchedText.length>e.matchedText.length)&&(e=s);break}}return e}async function $o(t){if(!t||t.nodeType!==3)return;let e=t.parentElement||null;if(!e)return;let{leading:r,core:n,trailing:o}=ko(t.nodeValue);if(!n)return;let a=F.textNodeKeyMap.get(t)||null;if((!a||!F.requestedKeys.has(a))&&(a=Or(n)),!a){let l=Br(n);if(!l)return;let u=Be({element:e});await ve(u,"text-node");let g=xe(l.key,l.values,{element:e},null),f=l.values.length?ye(g,m=>l.values[m]):g,w=n.slice(0,l.start)+f+n.slice(l.end),b=`${r}${w}${o}`;b!==t.nodeValue&&(t.nodeValue=b);return}F.textNodeKeyMap.set(t,a);let i=Be({element:e});await ve(i,"text-node");let s=Ut(a,n),d=xe(a,s,{element:e},null),c=s.length?ye(d,l=>s[l]):d,p=`${r}${c}${o}`;p!==t.nodeValue&&(t.nodeValue=p)}async function Lo(){if(typeof document>"u"||F.requestedKeys.size===0)return;let t=document.body||document.documentElement;if(!t||typeof document.createTreeWalker!="function")return;let e=[],r=new Set,n=a=>{!a||r.has(a)||(r.add(a),e.push(a))};n(t);for(let a=0;a<e.length;a+=1){let i=e[a];if(!i||typeof i.querySelectorAll!="function")continue;let s=i.querySelectorAll("*");for(let d of s){let c=d?.shadowRoot;c&&n(c)}}let o=[];for(let a of e){let i=document.createTreeWalker(a,NodeFilter.SHOW_TEXT);for(;i.nextNode();)o.push(i.currentNode)}for(let a of o)await $o(a)}function zo(t){let e=F.attributeKeyMap.get(t);return e||(e=new Map,F.attributeKeyMap.set(t,e)),e}async function Co(t,e){if(!t||typeof t.getAttribute!="function")return;let r=t.getAttribute(e);if(typeof r!="string"||!r.length)return;let n=zo(t),o=n.get(e)||null;if((!o||!F.requestedKeys.has(o))&&(o=Or(r)),!o){let c=Br(r);if(!c)return;let p=Be({element:t});await ve(p,"attribute");let l=xe(c.key,c.values,{element:t},null),u=c.values.length?ye(l,f=>c.values[f]):l,g=r.slice(0,c.start)+u+r.slice(c.end);g!==r&&t.setAttribute(e,g),n.set(e,c.key);return}n.set(e,o);let a=Be({element:t});await ve(a,"attribute");let i=Ut(o,r),s=xe(o,i,{element:t},null),d=i.length?ye(s,c=>i[c]):s;d!==r&&t.setAttribute(e,d)}async function Mo(){if(typeof document>"u"||F.requestedKeys.size===0)return;let t=document.body||document.documentElement;if(!t)return;let e=[],r=new Set,n=o=>{!o||r.has(o)||(r.add(o),e.push(o))};n(t);for(let o=0;o<e.length;o+=1){let a=e[o];if(!a||typeof a.querySelectorAll!="function")continue;let i=a.querySelectorAll("*");for(let s of i){let d=s?.shadowRoot;d&&n(d)}}for(let o of e){if(!o||typeof o.querySelectorAll!="function")continue;let a=o.querySelectorAll("*");for(let i of a)for(let s of go)i.hasAttribute(s)&&await Co(i,s)}}async function Eo(){let t=vo();await xo(t),await Lo(),await Mo(),wo(t)}function Ao(){typeof window>"u"||(F.reconcileTimer&&clearTimeout(F.reconcileTimer),F.reconcileTimer=setTimeout(()=>{F.reconcileTimer=null,Eo()},16))}function xe(t,e=[],r={},n=null){let o=Be(r),a=Oe(o);a||ve(o,"msg");let i=Oe(o)?.messages||{},s=Oe(F.defaultLocale)?.messages||{},d={key:t,values:e,options:r,locale:o,defaultLocale:F.defaultLocale,messages:i,messagesByLocale:Object.fromEntries(Array.from(F.messagesByLocale.entries())),template:n},c,p=!!a,l=o===F.defaultLocale;typeof F.provider?.translate=="function"&&(c=F.provider.translate(d));let u=null;if(c==null&&(c=i[t]),c==null&&(c=s[t],u=c==null?null:"default"),c==null&&(c=t,u="key"),p&&!l&&u){let f=`${o}::${t}`;F.missingWarnings.has(f)||(F.missingWarnings.add(f),Qe("warn",`[i18n] Missing translation for locale "${o}" and key "${t}"; using ${u} fallback.`))}let g=typeof c=="string"?c:String(c);if(Pr(t,g),Array.isArray(e)&&e.length>0){let f=ye(g,w=>e[w]);f!==g&&Pr(t,f)}return g}var To=(t,e,r={})=>{let n=ho(t);jr(n);let o=xe(n,e,r,{strings:t,values:e});return ye(o,a=>e[a])};var se=(t,e={})=>{if(!t)return"";if(fo(t))return To(t.strings,t.values,e);let r=String(t);jr(r);let n=xe(r,[],e,null);return!e?.element&&!e?.scope&&!e?.host&&!e?.contextElement&&!e?.lang&&Ao(),n};var Vt=class extends EventTarget{constructor(){super(),this.mode=null,this.compiled=null,this.log=()=>{},this.logHandler=null}},Dr="__PURE_DS_PDS_SINGLETON__",Gt=typeof globalThis<"u"?globalThis:window,qt=Gt?.[Dr],x=qt&&typeof qt.addEventListener=="function"?qt:new Vt;Gt&&(Gt[Dr]=x);typeof x.log!="function"&&(x.log=(t="log",e,...r)=>{if(typeof console>"u")return;let n=typeof console[t]=="function"?console[t].bind(console):typeof console.log=="function"?console.log.bind(console):null;n&&(r.length>0?n(e,...r):n(e))});typeof x.logHandler!="function"&&(x.logHandler=null);var Kt=class{constructor(){this._mode="static",this._staticPaths={tokens:"/assets/pds/styles/pds-tokens.css.js",primitives:"/assets/pds/styles/pds-primitives.css.js",components:"/assets/pds/styles/pds-components.css.js",utilities:"/assets/pds/styles/pds-utilities.css.js",styles:"/assets/pds/styles/pds-styles.css.js"}}setLiveMode(){this._mode="live"}setStaticMode(e={}){this._mode="static",this._staticPaths={...this._staticPaths,...e}}async getStylesheet(e){if(this._mode==="live")return null;try{return(await import(this._staticPaths[e]))[e]}catch(r){x.log("error",`Registry: failed to load static ${e}:`,r),x.log("error",`Registry: looking for ${this._staticPaths[e]}`),x.log("error","Registry: make sure you've run 'npm run pds:build' and configured PDS.start() with the correct static.root path");let n=new CSSStyleSheet;return n.replaceSync("/* Failed to load "+e+" */"),n}}get mode(){return this._mode}get isLive(){return this._mode==="live"}},we=new Kt;function Ro(t){try{if(typeof document>"u")return;if(typeof CSSStyleSheet<"u"&&"adoptedStyleSheets"in Document.prototype){let n=new CSSStyleSheet;n.replaceSync(t),n._pds=!0;let o=(document.adoptedStyleSheets||[]).filter(a=>a._pds!==!0);document.adoptedStyleSheets=[...o,n];return}let e="pds-runtime-stylesheet",r=document.getElementById(e);if(!r){r=document.createElement("style"),r.id=e,r.type="text/css";let n=document.head||document.getElementsByTagName("head")[0];n?n.appendChild(r):document.documentElement.appendChild(r)}r.textContent=t}catch(e){x.log("warn","installRuntimeStyles failed:",e)}}function Hr(t){let e=t;if(!e||typeof e!="object"){x.log("error","Runtime applyStyles requires an explicit generator instance in live mode");return}let r=e.layeredCSS||e.css||"";if(!r){e.options?.log?.("warn","Runtime: no CSS available on generator to apply");return}Ro(r)}async function et(t,e=[],r=null){try{let n=r?.primitivesStylesheet?r.primitivesStylesheet:await we.getStylesheet("primitives");t.adoptedStyleSheets=[n,...e]}catch(n){let o=t.host?.tagName?.toLowerCase()||"unknown";x.log("error",`Adopter: <${o}> failed to adopt primitives:`,n),t.adoptedStyleSheets=e}}async function tt(t,e=["primitives"],r=[],n=null){let o=Array.isArray(r)?r.filter(Boolean):[];if(o.length){let i=(Array.isArray(t.adoptedStyleSheets)?t.adoptedStyleSheets:[]).filter(s=>!o.includes(s));t.adoptedStyleSheets=[...i,...o]}try{let i=(await Promise.all(e.map(async s=>{if(n)switch(s){case"tokens":return n.tokensStylesheet;case"primitives":return n.primitivesStylesheet;case"components":return n.componentsStylesheet;case"utilities":return n.utilitiesStylesheet;default:break}return we.getStylesheet(s)}))).filter(s=>s!==null);t.adoptedStyleSheets=[...i,...o]}catch(a){let i=t.host?.tagName?.toLowerCase()||"unknown";x.log("error",`Adopter: <${i}> failed to adopt layers:`,a),t.adoptedStyleSheets=o}}function Wr(t){let e=new CSSStyleSheet;return e.replaceSync(t),e}var Io=[{selector:".accordion"},{selector:"nav[data-dropdown]"},{selector:"label[data-toggle]"},{selector:"label[data-color]"},{selector:'input[type="range"]'},{selector:"form[data-required]"},{selector:"fieldset[role=group][data-open]"},{selector:"[data-clip]"},{selector:"button, a[class*='btn-']"}];function _o(t){t.dataset.enhancedAccordion||(t.dataset.enhancedAccordion="true",t.addEventListener("toggle",e=>{e.target.open&&e.target.parentElement===t&&t.querySelectorAll(":scope > details[open]").forEach(r=>{r!==e.target&&(r.open=!1)})},!0))}function Fo(t){if(t.dataset.enhancedDropdown)return;t.dataset.enhancedDropdown="true";let e=t.lastElementChild;if(!e)return;let r=t.querySelector("[data-dropdown-toggle]")||t.querySelector("button"),n=typeof HTMLElement<"u"&&"showPopover"in HTMLElement.prototype&&"hidePopover"in HTMLElement.prototype;r&&!r.hasAttribute("type")&&r.setAttribute("type","button"),e.id||(e.id=`dropdown-${Math.random().toString(36).slice(2,9)}`);let o=e.tagName?.toLowerCase()==="menu",a=8;if(o&&!e.hasAttribute("role")&&e.setAttribute("role","menu"),e.hasAttribute("aria-hidden")||e.setAttribute("aria-hidden","true"),r&&(r.setAttribute("aria-haspopup","true"),r.setAttribute("aria-controls",e.id),r.setAttribute("aria-expanded","false")),!n){let z="__PDS_DROPDOWN_POPOVER_WARNED__";globalThis[z]||(globalThis[z]=!0,console.warn("[PDS] nav[data-dropdown] requires the Popover API. Add a popover polyfill (recommended: @oddbird/popover-polyfill) for browsers without support."));return}e.setAttribute("popover","auto");let i=()=>{let z=e.getAttribute("style");e.style.visibility="hidden",e.style.display="inline-block",e.style.pointerEvents="none";let M=e.getBoundingClientRect(),P=Math.max(e.offsetWidth||0,e.scrollWidth||0,M.width||0,1),C=Math.max(e.offsetHeight||0,e.scrollHeight||0,M.height||0,1);return z===null?e.removeAttribute("style"):e.setAttribute("style",z),{width:P,height:C}},s=()=>{try{return e.matches(":popover-open")}catch{return!1}},d=()=>{e.setAttribute("aria-hidden","true"),r?.setAttribute("aria-expanded","false")},c=()=>{e.setAttribute("aria-hidden","false"),r?.setAttribute("aria-expanded","true")},p=()=>{let z=(t.getAttribute("data-direction")||t.getAttribute("data-dropdown-direction")||t.getAttribute("data-mode")||"auto").toLowerCase();if(z==="up"||z==="down")return z;let M=(r||t).getBoundingClientRect(),{height:P}=i(),C=Math.max(0,window.innerHeight-M.bottom),k=Math.max(0,M.top),L=C>=P,E=k>=P;return L&&!E?"down":E&&!L?"up":L&&E?"down":k>C?"up":"down"},l=()=>{let z=(t.getAttribute("data-align")||t.getAttribute("data-dropdown-align")||"auto").toLowerCase();if(z==="left"||z==="right"||z==="start"||z==="end")return z==="start"?"left":z==="end"?"right":z;let M=(r||t).getBoundingClientRect(),{width:P}=i(),C=Math.max(0,window.innerWidth-M.left),k=Math.max(0,M.right),L=C>=P,E=k>=P;return L&&!E?"left":E&&!L?"right":L&&E?"left":k>C?"right":"left"},u=(z,M=8)=>{let P=getComputedStyle(t).getPropertyValue(z).trim();if(!P)return M;let C=document.createElement("span");C.style.position="fixed",C.style.visibility="hidden",C.style.pointerEvents="none",C.style.height=P,document.body.appendChild(C);let k=Number.parseFloat(getComputedStyle(C).height);return C.remove(),Number.isFinite(k)?k:M},g=()=>{["position","left","top","right","bottom","margin-top","margin-bottom","max-width","max-inline-size","max-height","overflow"].forEach(z=>e.style.removeProperty(z))},f=()=>{if(!s())return;let z=(r||t).getBoundingClientRect(),M=window.visualViewport,P=M?.width||document.documentElement?.clientWidth||window.innerWidth,C=M?.height||document.documentElement?.clientHeight||window.innerHeight,k=M?.offsetLeft||0,L=M?.offsetTop||0,E=Math.max(1,P-a*2),R=Math.max(1,C-a*2);e.style.maxWidth=`${Math.round(E)}px`,e.style.maxInlineSize=`${Math.round(E)}px`,e.style.maxHeight=`${Math.round(R)}px`,e.style.overflow="auto";let{width:O,height:B}=i(),K=u("--spacing-2",8),N=p(),D=l();t.dataset.dropdownDirection=N,t.dataset.dropdownAlign=D;let Y=D==="right"?z.right-O:z.left;O>=E-1?Y=k+a:Y=Math.max(k+a,Math.min(Y,k+P-O-a));let Re=N==="up"?z.top-K-B:z.bottom+K;Re=Math.max(L+a,Math.min(Re,L+C-B-a)),Object.assign(e.style,{position:"fixed",left:`${Math.round(Y)}px`,top:`${Math.round(Re)}px`,right:"auto",bottom:"auto",marginTop:"0",marginBottom:"0"})},w=null,b=()=>{w||(w=()=>f(),window.addEventListener("resize",w),window.addEventListener("scroll",w,!0))},m=()=>{w&&(window.removeEventListener("resize",w),window.removeEventListener("scroll",w,!0),w=null)},y=null,v=null,h=()=>{y||typeof document>"u"||(y=()=>{s()&&(t.dataset.dropdownDirection=p(),t.dataset.dropdownAlign=l(),v!==null&&cancelAnimationFrame(v),v=requestAnimationFrame(()=>{v=null,s()&&f()}))},document.addEventListener("pds:config-changed",y))},$=()=>{!y||typeof document>"u"||(document.removeEventListener("pds:config-changed",y),y=null,v!==null&&(cancelAnimationFrame(v),v=null))};e.addEventListener("toggle",z=>{if(z.newState==="open"){c(),f(),b(),h();return}d(),m(),$(),g()});let A=()=>{s()||(t.dataset.dropdownDirection=p(),t.dataset.dropdownAlign=l(),e.showPopover(),requestAnimationFrame(()=>f()))},T=()=>{s()&&e.hidePopover()},I=()=>{s()?T():A()};d(),e.addEventListener("click",z=>{let M=z.target instanceof Element?z.target:z.target?.parentElement;M&&M.closest("[data-dropdown-close]")&&T()}),r?.addEventListener("click",z=>{z.preventDefault(),z.stopPropagation(),I()}),t.addEventListener("keydown",z=>{z.key==="Escape"&&(T(),r?.focus())})}function Po(t){if(t.dataset.enhancedToggle)return;t.dataset.enhancedToggle="true";let e=t.querySelector('input[type="checkbox"]');if(!e)return;t.hasAttribute("tabindex")||t.setAttribute("tabindex","0"),t.setAttribute("role","switch"),t.setAttribute("aria-checked",e.checked?"true":"false");let r=document.createElement("span");r.className="toggle-switch",r.setAttribute("role","presentation"),r.setAttribute("aria-hidden","true");let n=document.createElement("span");n.className="toggle-knob",r.appendChild(n),t.insertBefore(r,e.nextSibling);let o=()=>{t.setAttribute("aria-checked",e.checked?"true":"false")},a=()=>{e.disabled||(e.checked=!e.checked,o(),e.dispatchEvent(new Event("input",{bubbles:!0})),e.dispatchEvent(new Event("change",{bubbles:!0})))};t.addEventListener("click",i=>{i.preventDefault(),a()}),t.addEventListener("keydown",i=>{(i.key===" "||i.key==="Enter")&&(i.preventDefault(),a())}),e.addEventListener("change",o)}function No(t){if(t.dataset.enhancedColorInput)return;let e=t.querySelector('input[type="color"]');if(!e)return;t.dataset.enhancedColorInput="true";let r=t.querySelector(":scope > .color-control"),n=t.querySelector(":scope > .color-control > .color-swatch"),o=t.querySelector(":scope > .color-control > output");r||(r=document.createElement("span"),r.className="color-control",e.before(r)),n||(n=document.createElement("span"),n.className="color-swatch",r.appendChild(n)),e.parentElement!==n&&n.appendChild(e),o||(o=document.createElement("output"),r.appendChild(o));let a=()=>{if(e.dataset.colorUnset==="1"){o.value="",o.textContent=se("not set"),r.dataset.value="",r.dataset.unset="1",n.dataset.unset="1";return}o.value=e.value,o.textContent=e.value,r.dataset.value=e.value,delete r.dataset.unset,delete n.dataset.unset};a();let i=()=>{e.dataset.colorUnset==="1"&&(e.dataset.colorUnset="0"),a()};e.addEventListener("input",i,{passive:!0}),e.addEventListener("change",i,{passive:!0})}function jo(t){if(t.dataset.enhancedRange)return;let e=i=>{if(t.dataset.enhancedRangeProgrammatic)return;t.dataset.enhancedRangeProgrammatic="1";let s=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(t),"value")||Object.getOwnPropertyDescriptor(HTMLInputElement.prototype,"value");s?.get&&s?.set&&Object.defineProperty(t,"value",{configurable:!0,enumerable:s.enumerable,get(){return s.get.call(this)},set(c){s.set.call(this,c),i()}}),new MutationObserver(c=>{c.some(l=>{let u=l.attributeName;return u==="value"||u==="min"||u==="max"})&&i()}).observe(t,{attributes:!0,attributeFilter:["value","min","max"]})},r=t.closest("label"),n=r?.classList.contains("range-output"),o=t.id||`range-${Math.random().toString(36).substring(2,11)}`,a=`${o}-output`;if(t.id=o,n){let i=r.querySelector("span");if(i&&!i.classList.contains("range-output-wrapper")){let s=i.getAttribute("data-range-label")||r.getAttribute("data-range-label")||"",d=document.createElement("span");d.className="range-output-wrapper",d.style.display="flex",d.style.justifyContent="space-between",d.style.alignItems="center";let c=document.createElement("span");c.textContent=s||i.textContent,d.appendChild(c);let p=document.createElement("output");p.id=a,p.setAttribute("for",o),p.style.color="var(--surface-text-secondary, var(--color-text-secondary))",p.style.fontSize="0.875rem",p.textContent=t.value,d.appendChild(p),i.textContent="",i.appendChild(d);let l=()=>{p.textContent=t.value};t.addEventListener("input",l),t.addEventListener("change",l),e(l),l()}}else{let i=t.closest(".range-container");i||(i=document.createElement("div"),i.className="range-container",t.parentNode?.insertBefore(i,t),i.appendChild(t)),i.style.position="relative";let s=document.createElement("output");s.id=a,s.setAttribute("for",o),s.className="range-bubble",s.setAttribute("aria-live","polite"),i.appendChild(s);let d=()=>{let l=parseFloat(t.min)||0,u=parseFloat(t.max)||100,g=parseFloat(t.value),f=(g-l)/(u-l);s.style.left=`calc(${f*100}% )`,s.textContent=String(g)},c=()=>s.classList.add("visible"),p=()=>s.classList.remove("visible");t.addEventListener("input",d),t.addEventListener("pointerdown",c),t.addEventListener("pointerup",p),t.addEventListener("pointerleave",p),t.addEventListener("focus",c),t.addEventListener("blur",p),t.addEventListener("change",d),e(d),d()}t.dataset.enhancedRange="1"}function Oo(t){if(t.dataset.enhancedRequired)return;t.dataset.enhancedRequired="true";let e=r=>{let n;if(r.closest("[role$=group]")?n=r.closest("[role$=group]").querySelector("legend"):n=r.closest("label"),!n||n.querySelector(".required-asterisk"))return;let o=document.createElement("span");o.classList.add("required-asterisk"),o.textContent="*",o.style.marginLeft="4px";let a=n.querySelector("span, [data-label]");if(a)a.appendChild(o);else{let s=n.querySelector("input, select, textarea");s?n.insertBefore(o,s):n.appendChild(o)}let i=r.closest("form");if(i&&!i.querySelector(".required-legend")){let s=document.createElement("small");s.classList.add("required-legend"),s.textContent=se("* Required fields"),i.insertBefore(s,i.querySelector(".form-actions")||i.lastElementChild)}};t.querySelectorAll("[required]").forEach(r=>{e(r)})}function Bo(t){if(t.dataset.enhancedOpenGroup)return;t.dataset.enhancedOpenGroup="true",t.classList.add("flex","flex-wrap","buttons");let e=document.createElement("input");e.type="text",e.placeholder=se("Add item..."),e.classList.add("input-text","input-sm"),e.style.width="auto";let r=()=>t.querySelector('input[type="radio"], input[type="checkbox"]');t.appendChild(e),e.addEventListener("keydown",n=>{if(n.key==="Enter"||n.key==="Tab"){let o=e.value.trim();if(o){n.preventDefault();let a=r(),i=a?.type==="radio"?"radio":"checkbox",s=`open-group-${Math.random().toString(36).substring(2,11)}`,d=document.createElement("label"),c=document.createElement("span");c.setAttribute("data-label",""),c.textContent=o;let p=document.createElement("input");p.type=i,p.name=a?.name||t.getAttribute("data-name")||"open-group",p.value=o,p.id=s,d.appendChild(c),d.appendChild(p),t.insertBefore(d,e),e.value=""}}else if(n.key==="Backspace"&&e.value===""){n.preventDefault();let o=t.querySelectorAll("label");o.length>0&&o[o.length-1].remove()}})}function Do(t){if(t.dataset.enhancedClip)return;t.dataset.enhancedClip="true",t.hasAttribute("tabindex")||t.setAttribute("tabindex","0"),t.hasAttribute("role")||t.setAttribute("role","button");let e=()=>{let n=t.getAttribute("data-clip-open")==="true";t.setAttribute("aria-expanded",n?"true":"false")},r=()=>{let n=t.getAttribute("data-clip-open")==="true";t.setAttribute("data-clip-open",n?"false":"true"),e()};t.addEventListener("click",n=>{n.defaultPrevented||r()}),t.addEventListener("keydown",n=>{(n.key===" "||n.key==="Enter")&&(n.preventDefault(),r())}),e()}function Ho(t){if(t.dataset.enhancedBtnWorking)return;t.dataset.enhancedBtnWorking="true";let e=null,r=!1;new MutationObserver(o=>{o.forEach(a=>{if(a.attributeName==="class"){let i=t.classList.contains("btn-working"),s=t.querySelector("pds-icon");if(i)if(s)e||(e=s.getAttribute("icon")),s.setAttribute("icon","circle-notch");else{let d=document.createElement("pds-icon");d.setAttribute("icon","circle-notch"),d.setAttribute("size","sm"),t.insertBefore(d,t.firstChild),r=!0}else a.oldValue?.includes("btn-working")&&s&&(r?(s.remove(),r=!1):e&&(s.setAttribute("icon",e),e=null))}})}).observe(t,{attributes:!0,attributeFilter:["class"],attributeOldValue:!0})}var Wo=new Map([[".accordion",_o],["nav[data-dropdown]",Fo],["label[data-toggle]",Po],["label[data-color]",No],['input[type="range"]',jo],["form[data-required]",Oo],["fieldset[role=group][data-open]",Bo],["[data-clip]",Do],["button, a[class*='btn-']",Ho]]),rt=Io.map(t=>({...t,run:Wo.get(t.selector)||(()=>{})}));var Ur=[{selector:".accordion",description:"Ensures only one <details> element can be open at a time within the accordion.",demoHtml:`
3597
3773
  <div class="accordion">
3598
3774
  <details>
3599
3775
  <summary>Section 1</summary>
@@ -3658,8 +3834,8 @@ export const ${t}CSS = \`${n}\`;
3658
3834
  <button class="btn-primary btn-working">
3659
3835
  <span>Saving</span>
3660
3836
  </button>
3661
- `.trim()}];var Gr="pds",Uo=/^([a-z][a-z0-9+\-.]*:)?\/\//i,qr=/^[a-z]:/i;function De(e=""){return e.endsWith("/")?e:`${e}/`}function qo(e="",t=Gr){let r=e.replace(/\/+$/,"");return new RegExp(`(?:^|/)${t}$`,"i").test(r)?r:`${r}/${t}`}function Go(e){return e.replace(/^\.\/+/,"")}function Vo(e){return qr.test(e)?e.replace(qr,"").replace(/^\/+/,""):e}function Ko(e){return e.startsWith("public/")?e.substring(7):e}function ke(e,t={}){let r=t.segment||Gr,n=t.defaultRoot||`/assets/${r}/`,o=e?.public&&e.public?.root||e?.static&&e.static?.root||null;if(!o||typeof o!="string")return De(n);let a=o.trim();return a?(a=a.replace(/\\/g,"/"),a=qo(a,r),a=De(a),Uo.test(a)?a:(a=Go(a),a=Vo(a),a.startsWith("/")||(a=Ko(a),a.startsWith("/")||(a=`/${a}`),a=a.replace(/\/+/g,(i,s)=>s===0?i:"/")),De(a))):De(n)}function Vr(e){let t=e.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 a="mmmmmmmmmmlli",i="72px",s="monospace";o.font=`${i} ${s}`;let p=o.measureText(a).width;o.font=`${i} "${t}", ${s}`;let c=o.measureText(a).width;return p!==c}function Jo(e){return e?e.split(",").map(n=>n.trim())[0].replace(/['"]/g,"").trim():null}async function Kr(e,t={}){if(!e)return Promise.resolve();let{weights:r=[400,500,600,700],italic:n=!1}=t,o=Jo(e);if(!o||Vr(o))return Promise.resolve();let a=encodeURIComponent(o);return document.querySelector(`link[href*="fonts.googleapis.com"][href*="${a}"]`)?(h.log("log",`Font "${o}" is already loading or loaded`),Promise.resolve()):(h.log("log",`Loading font "${o}" from Google Fonts...`),new Promise((s,p)=>{let c=document.createElement("link");c.rel="stylesheet";let d=n?`ital,wght@0,${r.join(";0,")};1,${r.join(";1,")}`:`wght@${r.join(";")}`;c.href=`https://fonts.googleapis.com/css2?family=${a}:${d}&display=swap`,c.setAttribute("data-font-loader",o),c.onload=()=>{h.log("log",`Successfully loaded font "${o}"`),s()},c.onerror=()=>{h.log("warn",`Failed to load font "${o}" from Google Fonts`),p(new Error(`Failed to load font: ${o}`))},document.head.appendChild(c),setTimeout(()=>{Vr(o)||h.log("warn",`Font "${o}" did not load within timeout`),s()},5e3)}))}async function Jt(e){if(!e)return Promise.resolve();let t=new Set;e.fontFamilyHeadings&&t.add(e.fontFamilyHeadings),e.fontFamilyBody&&t.add(e.fontFamilyBody),e.fontFamilyMono&&t.add(e.fontFamilyMono);let r=Array.from(t).map(n=>Kr(n).catch(o=>{h.log("warn",`Could not load font: ${n}`,o)}));await Promise.all(r)}async function Yo(...e){let t={};e.length&&typeof e[e.length-1]=="object"&&(t=e.pop()||{});let r=e,{baseURL:n,mapper:o=c=>`${c}.js`,onError:a=(c,d)=>console.error(`[defineWebComponents] ${c}:`,d)}=t,i=n?new URL(n,typeof location<"u"?location.href:import.meta.url):new URL("./",import.meta.url),s=c=>c.toLowerCase().replace(/(^|-)([a-z])/g,(d,l,u)=>u.toUpperCase()),p=async c=>{try{if(customElements.get(c))return{tag:c,status:"already-defined"};let d=o(c),u=await import(d instanceof URL?d.href:new URL(d,i).href),g=u?.default??u?.[s(c)];if(!g){if(customElements.get(c))return{tag:c,status:"self-defined"};throw new Error(`No export found for ${c}. Expected default export or named export "${s(c)}".`)}return customElements.get(c)?{tag:c,status:"race-already-defined"}:(customElements.define(c,g),{tag:c,status:"defined"})}catch(d){throw a(c,d),d}};return Promise.all(r.map(p))}var nt=class{constructor(t={}){let{baseURL:r,mapper:n,onError:o,predicate:a=()=>!0,attributeModule:i="data-module",root:s=document,scanExisting:p=!0,debounceMs:c=16,observeShadows:d=!0,enhancers:l=[],patchAttachShadow:u=!0}=t,g=new Set,m=new Set,b=new Set,f=new Map,y=new WeakMap,k=new WeakMap,v=0,$=!1,A=null,T=S=>{if(!S||!l.length)return;let C=k.get(S);C||(C=new Set,k.set(S,C));for(let E of l)if(!(!E.selector||!E.run)&&!C.has(E.selector))try{S.matches&&S.matches(E.selector)&&(E.run(S),C.add(E.selector))}catch(O){console.warn(`[AutoDefiner] Error applying enhancer for selector "${E.selector}":`,O)}},F=(S,C)=>{if(!$&&!(!S||!S.includes("-"))&&!customElements.get(S)&&!m.has(S)&&!b.has(S)){if(C&&C.getAttribute){let E=C.getAttribute(i);E&&!f.has(S)&&f.set(S,E)}g.add(S),I()}},I=()=>{v||(v=setTimeout(N,c))},L=S=>{if(S){if(S.nodeType===1){let C=S,E=C.tagName?.toLowerCase();E&&E.includes("-")&&!customElements.get(E)&&a(E,C)&&F(E,C),T(C),d&&C.shadowRoot&&M(C.shadowRoot)}S.querySelectorAll&&S.querySelectorAll("*").forEach(C=>{let E=C.tagName?.toLowerCase();E&&E.includes("-")&&!customElements.get(E)&&a(E,C)&&F(E,C),T(C),d&&C.shadowRoot&&M(C.shadowRoot)})}},M=S=>{if(!S||y.has(S))return;L(S);let C=new MutationObserver(E=>{for(let O of E)O.addedNodes?.forEach(B=>{L(B)}),O.type==="attributes"&&O.target&&L(O.target)});C.observe(S,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[i,...l.map(E=>E.selector).filter(E=>E.startsWith("data-"))]}),y.set(S,C)};async function N(){if(clearTimeout(v),v=0,!g.size)return;let S=Array.from(g);g.clear(),S.forEach(C=>m.add(C));try{let C=E=>f.get(E)??(n?n(E):`${E}.js`);await Yo(...S,{baseURL:r,mapper:C,onError:(E,O)=>{b.add(E),o?.(E,O)}})}catch{}finally{S.forEach(C=>m.delete(C))}}let z=s===document?document.documentElement:s,x=new MutationObserver(S=>{for(let C of S)C.addedNodes?.forEach(E=>{L(E)}),C.type==="attributes"&&C.target&&L(C.target)});if(x.observe(z,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[i,...l.map(S=>S.selector).filter(S=>S.startsWith("data-"))]}),d&&u&&Element.prototype.attachShadow){let S=Element.prototype.attachShadow;Element.prototype.attachShadow=function(E){let O=S.call(this,E);if(E&&E.mode==="open"){M(O);let B=this.tagName?.toLowerCase();B&&B.includes("-")&&!customElements.get(B)&&F(B,this)}return O},A=()=>Element.prototype.attachShadow=S}return p&&L(z),{stop(){$=!0,x.disconnect(),A&&A(),v&&(clearTimeout(v),v=0),y.forEach(S=>S.disconnect())},flush:N}}static async define(...t){let r={};t.length&&typeof t[t.length-1]=="object"&&(r=t.pop()||{});let n=t,{baseURL:o,mapper:a=d=>`${d}.js`,onError:i=(d,l)=>console.error(`[defineWebComponents] ${d}:`,l)}=r,s=o?new URL(o,typeof location<"u"?location.href:import.meta.url):new URL("./",import.meta.url),p=d=>d.toLowerCase().replace(/(^|-)([a-z])/g,(l,u,g)=>g.toUpperCase()),c=async d=>{try{if(customElements.get(d))return{tag:d,status:"already-defined"};let l=a(d),g=await import(l instanceof URL?l.href:new URL(l,s).href),m=g?.default??g?.[p(d)];if(!m){if(customElements.get(d))return{tag:d,status:"self-defined"};throw new Error(`No export found for ${d}. Expected default export or named export "${p(d)}".`)}return customElements.get(d)?{tag:d,status:"race-already-defined"}:(customElements.define(d,m),{tag:d,status:"defined"})}catch(l){throw i(d,l),l}};return Promise.all(n.map(c))}};var Zo=/^[a-z][a-z0-9+\-.]*:\/\//i,We=(()=>{try{return import.meta.url}catch{return}})(),Se=e=>typeof e=="string"&&e.length&&!e.endsWith("/")?`${e}/`:e;function $e(e,t={}){if(!e||Zo.test(e))return e;let{preferModule:r=!0}=t,n=()=>{if(!We)return null;try{return new URL(e,We).href}catch{return null}},o=()=>{if(typeof window>"u"||!window.location?.origin)return null;try{return new URL(e,window.location.origin).href}catch{return null}};return(r?n()||o():o()||n())||e}var Jr=(()=>{if(We)try{let e=new URL(We);if(/\/public\/assets\/js\//.test(e.pathname))return new URL("../pds/",We).href}catch{return}})(),Yr=!1;function at(e){Yr||typeof document>"u"||(Yr=!0,e.addEventListener("pds:ready",t=>{let r=t.detail?.mode;r&&document.documentElement.classList.add(`pds-${r}`,"pds-ready")}))}function Zt(e={},t={}){if(!t||typeof t!="object")return e;let r=Array.isArray(e)?[...e]:{...e};for(let[n,o]of Object.entries(t))o&&typeof o=="object"&&!Array.isArray(o)?r[n]=Zt(r[n]&&typeof r[n]=="object"?r[n]:{},o):r[n]=o;return r}function Yt(e=""){return String(e).toLowerCase().replace(/&/g," and ").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}function ue(e){if(e==null)return e;if(typeof e=="function")return;if(typeof e!="object")return e;if(Array.isArray(e))return e.map(r=>ue(r)).filter(r=>r!==void 0);let t={};for(let r in e)if(e.hasOwnProperty(r)){let n=e[r];if(typeof n!="function"){let o=ue(n);o!==void 0&&(t[r]=o)}}return t}function ot(e){let t=ue(e);return typeof structuredClone=="function"?structuredClone(t):JSON.parse(JSON.stringify(t))}function Xt(e={},t={},{presets:r,defaultLog:n,validateDesignConfig:o,validateInitConfig:a}={}){let i=e&&typeof e.log=="function"?e.log:n,s=typeof e=="object"&&("colors"in e||"typography"in e||"spatialRhythm"in e||"shape"in e||"behavior"in e||"layout"in e||"advanced"in e||"a11y"in e||"components"in e||"icons"in e),p=e&&e.enhancers;p&&!Array.isArray(p)&&(p=Object.values(p));let c=p??t.enhancers??[],d=e&&e.preset,l=e&&e.design,u=e&&e.icons&&typeof e.icons=="object"?e.icons:null,g="preset"in(e||{})||"design"in(e||{})||"enhancers"in(e||{});e&&typeof e=="object"&&typeof a=="function"&&a(e,{log:i,context:"PDS.start"});let m,b=null;if(g){l&&typeof l=="object"&&typeof o=="function"&&o(l,{log:i,context:"PDS.start"});let f=String(d||"default").toLowerCase(),y=r?.[f]||Object.values(r||{}).find(B=>Yt(B.name)===f||String(B.name||"").toLowerCase()===f);if(!y)throw new Error(`PDS preset not found: "${d||"default"}"`);b={id:y.id||Yt(y.name),name:y.name||y.id||String(f)};let k=ot(y);if(l&&typeof l=="object"||u){let B=l?ue(l):{},K=u?ue(u):null,P=K?Zt(B,{icons:K}):B;k=Zt(k,ot(P))}let{mode:v,autoDefine:$,applyGlobalStyles:A,manageTheme:T,themeStorageKey:F,preloadStyles:I,criticalLayers:L,managerURL:M,manager:N,localization:z,preset:x,design:S,enhancers:C,log:E,...O}=e;m={...O,design:k,preset:b.name,log:E||n}}else if(s){typeof o=="function"&&o(e,{log:i,context:"PDS.start"});let{log:f,...y}=e;m={design:ot(y),log:f||n}}else{let f=r?.default||Object.values(r||{}).find(y=>Yt(y.name)==="default");if(!f)throw new Error("PDS default preset not available");b={id:f.id||"default",name:f.name||"Default"},m={design:ot(f),preset:b.name,log:n}}return{generatorConfig:m,enhancers:c,presetInfo:b}}function it({manageTheme:e,themeStorageKey:t,applyResolvedTheme:r,setupSystemListenerIfNeeded:n}){let o="light",a=null;if(e&&typeof window<"u"){try{a=localStorage.getItem(t)||null}catch{a=null}try{r?.(a),n?.(a)}catch{}a?a==="system"?o=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":o=a:o=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}return{resolvedTheme:o,storedTheme:a}}function ze(e,{resolvePublicAssetURL:t}){let r=!!(e?.public?.root||e?.static?.root),n=t(e);return!r&&Jr&&(n=Jr),Se($e(n))}async function st(e,{baseEnhancers:t=[]}={}){let{autoDefineBaseURL:r="/auto-define/",autoDefinePreload:n=[],autoDefineMapper:o=null,enhancers:a=[],autoDefineOverrides:i=null,autoDefinePreferModule:s=!0}=e,p=(()=>{let d=new Map;return(t||[]).forEach(l=>d.set(l.selector,l)),(a||[]).forEach(l=>d.set(l.selector,l)),Array.from(d.values())})(),c=null;if(typeof window<"u"&&typeof document<"u"){let d=nt,l=v=>{switch(v){case"pds-tabpanel":return"pds-tabstrip.js";default:return`${v}.js`}},{mapper:u,enhancers:g,...m}=i&&typeof i=="object"?i:{},b=g?Array.isArray(g)?g:typeof g=="object"?Object.values(g):[]:[],f=(()=>{let v=new Map;return(p||[]).forEach($=>{$?.selector&&v.set($.selector,$)}),(b||[]).forEach($=>{if(!$?.selector)return;let A=v.get($.selector)||null;v.set($.selector,{...A||{},...$,run:typeof $?.run=="function"?$.run:A?.run})}),Array.from(v.values())})(),k={baseURL:r&&Se($e(r,{preferModule:s})),predefine:n,scanExisting:!0,observeShadows:!0,patchAttachShadow:!0,debounceMs:16,enhancers:f,onError:(v,$)=>{if(typeof v=="string"&&v.startsWith("pds-")){let T=["pds-form","pds-drawer"].includes(v),F=$?.message?.includes("#pds/lit")||$?.message?.includes("Failed to resolve module specifier");T&&F?h.log("error",`\u274C PDS component <${v}> requires Lit but #pds/lit is not in import map.
3662
- See: https://github.com/Pure-Web-Foundation/pure-ds/blob/main/readme.md#lit-components-not-working`):h.log("warn",`\u26A0\uFE0F PDS component <${v}> not found. Assets may not be installed.`)}else h.log("error",`\u274C Auto-define error for <${v}>:`,$)},...m,mapper:v=>{if(customElements.get(v))return null;if(typeof o=="function")try{let $=o(v);return $===void 0?l(v):$}catch($){return h.log("warn","Custom autoDefine.mapper error; falling back to default:",$?.message||$),l(v)}return l(v)}};c=new d(k),n.length>0&&typeof d.define=="function"&&await d.define(...n,{baseURL:r,mapper:k.mapper,onError:k.onError})}return{autoDefiner:c,mergedEnhancers:p}}var Qt=["light","dark"],er=new Set(Qt);function tr(e){let r=(Array.isArray(e?.themes)?e.themes.map(n=>String(n).toLowerCase()):Qt).filter(n=>er.has(n));return r.length?r:Qt}function Le(e,{preferDocument:t=!0}={}){let r=String(e||"").toLowerCase();if(er.has(r))return r;if(t&&typeof document<"u"){let n=document.documentElement?.getAttribute("data-theme");if(er.has(n))return n}return typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function ge(e,t){let r=Le(t);return tr(e).includes(r)}var Xr=!1,pt="pds-live-edit-toggle",ar="pds-live-edit-toggle-style";function Qr(e,t=new WeakSet){if(!e||typeof e!="object"||t.has(e))return e;t.add(e),Object.freeze(e);for(let r of Object.keys(e))Qr(e[r],t);return e}function ut(e){let t=ue(e);return typeof structuredClone=="function"?structuredClone(t):JSON.parse(JSON.stringify(t))}function en(e){return e==null||typeof e!="object"?e:Qr(ut(e))}function tn(e){if(typeof document>"u"||typeof e!="function")return;if(document.body){e();return}let t=()=>{document.body&&(document.removeEventListener("DOMContentLoaded",t),e())};document.addEventListener("DOMContentLoaded",t,{once:!0})}function Qo(e={}){let t=e?.interactive!==!1;typeof document>"u"||tn(()=>{if(document.querySelector("pds-live-edit")){if(!t){let r=document.querySelector("pds-live-edit");r&&r.setAttribute("data-pds-live-settings-only","true")}}else{let r=document.createElement("pds-live-edit");t||r.setAttribute("data-pds-live-settings-only","true"),document.body.appendChild(r)}})}function dt(e=0){return new Promise(t=>{setTimeout(t,Math.max(0,Number(e)||0))})}async function He(e={}){let t=e?.mountIfMissing!==!1,r=e?.interactive!==!1,n=typeof e?.requiredMethod=="string"&&e.requiredMethod.trim()?e.requiredMethod.trim():"openDesignSettings",o=Number.isFinite(Number(e?.timeoutMs))?Number(e.timeoutMs):2400;if(typeof document>"u"||!t&&!document.querySelector("pds-live-edit"))return null;t&&Qo({interactive:r});let a=Date.now();for(;Date.now()-a<o;){let s=document.querySelector("pds-live-edit");if(!s){await dt(40);continue}if(typeof s?.[n]=="function")return s;if(typeof customElements<"u"&&typeof customElements.whenDefined=="function"){try{await Promise.race([customElements.whenDefined("pds-live-edit"),dt(80)])}catch{await dt(40)}continue}await dt(40)}let i=document.querySelector("pds-live-edit");return i&&typeof i?.[n]=="function"?i:null}function rn(){if(typeof document>"u")return;document.querySelectorAll("pds-live-edit").forEach(t=>{typeof t?.setInteractiveEditingEnabled=="function"&&t.setInteractiveEditingEnabled(!1),t.remove()})}function ea(e){return e?typeof e.isInteractiveEditingEnabled=="function"?!!e.isInteractiveEditingEnabled():!0:!1}function ta(){if(typeof document>"u"||document.getElementById(ar))return;let e=document.createElement("style");e.id=ar,e.textContent=`
3837
+ `.trim()}];var Vr="pds",Uo=/^([a-z][a-z0-9+\-.]*:)?\/\//i,qr=/^[a-z]:/i;function De(t=""){return t.endsWith("/")?t:`${t}/`}function qo(t="",e=Vr){let r=t.replace(/\/+$/,"");return new RegExp(`(?:^|/)${e}$`,"i").test(r)?r:`${r}/${e}`}function Vo(t){return t.replace(/^\.\/+/,"")}function Go(t){return qr.test(t)?t.replace(qr,"").replace(/^\/+/,""):t}function Ko(t){return t.startsWith("public/")?t.substring(7):t}function ke(t,e={}){let r=e.segment||Vr,n=e.defaultRoot||`/assets/${r}/`,o=t?.public&&t.public?.root||t?.static&&t.static?.root||null;if(!o||typeof o!="string")return De(n);let a=o.trim();return a?(a=a.replace(/\\/g,"/"),a=qo(a,r),a=De(a),Uo.test(a)?a:(a=Vo(a),a=Go(a),a.startsWith("/")||(a=Ko(a),a.startsWith("/")||(a=`/${a}`),a=a.replace(/\/+/g,(i,s)=>s===0?i:"/")),De(a))):De(n)}function Gr(t){let e=t.replace(/['"]/g,"").trim();if(["system-ui","-apple-system","sans-serif","serif","monospace","cursive","fantasy","ui-sans-serif","ui-serif","ui-monospace","ui-rounded"].includes(e.toLowerCase()))return!0;let o=document.createElement("canvas").getContext("2d");if(!o)return!1;let a="mmmmmmmmmmlli",i="72px",s="monospace";o.font=`${i} ${s}`;let d=o.measureText(a).width;o.font=`${i} "${e}", ${s}`;let c=o.measureText(a).width;return d!==c}function Jo(t){return t?t.split(",").map(n=>n.trim())[0].replace(/['"]/g,"").trim():null}async function Kr(t,e={}){if(!t)return Promise.resolve();let{weights:r=[400,500,600,700],italic:n=!1}=e,o=Jo(t);if(!o||Gr(o))return Promise.resolve();let a=encodeURIComponent(o);return document.querySelector(`link[href*="fonts.googleapis.com"][href*="${a}"]`)?(x.log("log",`Font "${o}" is already loading or loaded`),Promise.resolve()):(x.log("log",`Loading font "${o}" from Google Fonts...`),new Promise((s,d)=>{let c=document.createElement("link");c.rel="stylesheet";let p=n?`ital,wght@0,${r.join(";0,")};1,${r.join(";1,")}`:`wght@${r.join(";")}`;c.href=`https://fonts.googleapis.com/css2?family=${a}:${p}&display=swap`,c.setAttribute("data-font-loader",o),c.onload=()=>{x.log("log",`Successfully loaded font "${o}"`),s()},c.onerror=()=>{x.log("warn",`Failed to load font "${o}" from Google Fonts`),d(new Error(`Failed to load font: ${o}`))},document.head.appendChild(c),setTimeout(()=>{Gr(o)||x.log("warn",`Font "${o}" did not load within timeout`),s()},5e3)}))}async function Jt(t){if(!t)return Promise.resolve();let e=new Set;t.fontFamilyHeadings&&e.add(t.fontFamilyHeadings),t.fontFamilyBody&&e.add(t.fontFamilyBody),t.fontFamilyMono&&e.add(t.fontFamilyMono);let r=Array.from(e).map(n=>Kr(n).catch(o=>{x.log("warn",`Could not load font: ${n}`,o)}));await Promise.all(r)}async function Yo(...t){let e={};t.length&&typeof t[t.length-1]=="object"&&(e=t.pop()||{});let r=t,{baseURL:n,mapper:o=c=>`${c}.js`,onError:a=(c,p)=>console.error(`[defineWebComponents] ${c}:`,p)}=e,i=n?new URL(n,typeof location<"u"?location.href:import.meta.url):new URL("./",import.meta.url),s=c=>c.toLowerCase().replace(/(^|-)([a-z])/g,(p,l,u)=>u.toUpperCase()),d=async c=>{try{if(customElements.get(c))return{tag:c,status:"already-defined"};let p=o(c),u=await import(p instanceof URL?p.href:new URL(p,i).href),g=u?.default??u?.[s(c)];if(!g){if(customElements.get(c))return{tag:c,status:"self-defined"};throw new Error(`No export found for ${c}. Expected default export or named export "${s(c)}".`)}return customElements.get(c)?{tag:c,status:"race-already-defined"}:(customElements.define(c,g),{tag:c,status:"defined"})}catch(p){throw a(c,p),p}};return Promise.all(r.map(d))}var nt=class{constructor(e={}){let{baseURL:r,mapper:n,onError:o,predicate:a=()=>!0,attributeModule:i="data-module",root:s=document,scanExisting:d=!0,debounceMs:c=16,observeShadows:p=!0,enhancers:l=[],patchAttachShadow:u=!0}=e,g=new Set,f=new Set,w=new Set,b=new Map,m=new WeakMap,y=new WeakMap,v=0,h=!1,$=null,A=L=>{if(!L||!l.length)return;let E=y.get(L);E||(E=new Set,y.set(L,E));for(let R of l)if(!(!R.selector||!R.run)&&!E.has(R.selector))try{L.matches&&L.matches(R.selector)&&(R.run(L),E.add(R.selector))}catch(O){console.warn(`[AutoDefiner] Error applying enhancer for selector "${R.selector}":`,O)}},T=(L,E)=>{if(!h&&!(!L||!L.includes("-"))&&!customElements.get(L)&&!f.has(L)&&!w.has(L)){if(E&&E.getAttribute){let R=E.getAttribute(i);R&&!b.has(L)&&b.set(L,R)}g.add(L),I()}},I=()=>{v||(v=setTimeout(P,c))},z=L=>{if(L){if(L.nodeType===1){let E=L,R=E.tagName?.toLowerCase();R&&R.includes("-")&&!customElements.get(R)&&a(R,E)&&T(R,E),A(E),p&&E.shadowRoot&&M(E.shadowRoot)}L.querySelectorAll&&L.querySelectorAll("*").forEach(E=>{let R=E.tagName?.toLowerCase();R&&R.includes("-")&&!customElements.get(R)&&a(R,E)&&T(R,E),A(E),p&&E.shadowRoot&&M(E.shadowRoot)})}},M=L=>{if(!L||m.has(L))return;z(L);let E=new MutationObserver(R=>{for(let O of R)O.addedNodes?.forEach(B=>{z(B)}),O.type==="attributes"&&O.target&&z(O.target)});E.observe(L,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[i,...l.map(R=>R.selector).filter(R=>R.startsWith("data-"))]}),m.set(L,E)};async function P(){if(clearTimeout(v),v=0,!g.size)return;let L=Array.from(g);g.clear(),L.forEach(E=>f.add(E));try{let E=R=>b.get(R)??(n?n(R):`${R}.js`);await Yo(...L,{baseURL:r,mapper:E,onError:(R,O)=>{w.add(R),o?.(R,O)}})}catch{}finally{L.forEach(E=>f.delete(E))}}let C=s===document?document.documentElement:s,k=new MutationObserver(L=>{for(let E of L)E.addedNodes?.forEach(R=>{z(R)}),E.type==="attributes"&&E.target&&z(E.target)});if(k.observe(C,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[i,...l.map(L=>L.selector).filter(L=>L.startsWith("data-"))]}),p&&u&&Element.prototype.attachShadow){let L=Element.prototype.attachShadow;Element.prototype.attachShadow=function(R){let O=L.call(this,R);if(R&&R.mode==="open"){M(O);let B=this.tagName?.toLowerCase();B&&B.includes("-")&&!customElements.get(B)&&T(B,this)}return O},$=()=>Element.prototype.attachShadow=L}return d&&z(C),{stop(){h=!0,k.disconnect(),$&&$(),v&&(clearTimeout(v),v=0),m.forEach(L=>L.disconnect())},flush:P}}static async define(...e){let r={};e.length&&typeof e[e.length-1]=="object"&&(r=e.pop()||{});let n=e,{baseURL:o,mapper:a=p=>`${p}.js`,onError:i=(p,l)=>console.error(`[defineWebComponents] ${p}:`,l)}=r,s=o?new URL(o,typeof location<"u"?location.href:import.meta.url):new URL("./",import.meta.url),d=p=>p.toLowerCase().replace(/(^|-)([a-z])/g,(l,u,g)=>g.toUpperCase()),c=async p=>{try{if(customElements.get(p))return{tag:p,status:"already-defined"};let l=a(p),g=await import(l instanceof URL?l.href:new URL(l,s).href),f=g?.default??g?.[d(p)];if(!f){if(customElements.get(p))return{tag:p,status:"self-defined"};throw new Error(`No export found for ${p}. Expected default export or named export "${d(p)}".`)}return customElements.get(p)?{tag:p,status:"race-already-defined"}:(customElements.define(p,f),{tag:p,status:"defined"})}catch(l){throw i(p,l),l}};return Promise.all(n.map(c))}};var Xo=/^[a-z][a-z0-9+\-.]*:\/\//i,He=(()=>{try{return import.meta.url}catch{return}})(),Se=t=>typeof t=="string"&&t.length&&!t.endsWith("/")?`${t}/`:t;function $e(t,e={}){if(!t||Xo.test(t))return t;let{preferModule:r=!0}=e,n=()=>{if(!He)return null;try{return new URL(t,He).href}catch{return null}},o=()=>{if(typeof window>"u"||!window.location?.origin)return null;try{return new URL(t,window.location.origin).href}catch{return null}};return(r?n()||o():o()||n())||t}var Jr=(()=>{if(He)try{let t=new URL(He);if(/\/public\/assets\/js\//.test(t.pathname))return new URL("../pds/",He).href}catch{return}})(),Yr=!1;function at(t){Yr||typeof document>"u"||(Yr=!0,t.addEventListener("pds:ready",e=>{let r=e.detail?.mode;r&&document.documentElement.classList.add(`pds-${r}`,"pds-ready")}))}function Xt(t={},e={}){if(!e||typeof e!="object")return t;let r=Array.isArray(t)?[...t]:{...t};for(let[n,o]of Object.entries(e))o&&typeof o=="object"&&!Array.isArray(o)?r[n]=Xt(r[n]&&typeof r[n]=="object"?r[n]:{},o):r[n]=o;return r}function Yt(t=""){return String(t).toLowerCase().replace(/&/g," and ").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}function ue(t){if(t==null)return t;if(typeof t=="function")return;if(typeof t!="object")return t;if(Array.isArray(t))return t.map(r=>ue(r)).filter(r=>r!==void 0);let e={};for(let r in t)if(t.hasOwnProperty(r)){let n=t[r];if(typeof n!="function"){let o=ue(n);o!==void 0&&(e[r]=o)}}return e}function ot(t){let e=ue(t);return typeof structuredClone=="function"?structuredClone(e):JSON.parse(JSON.stringify(e))}function Zt(t={},e={},{presets:r,defaultLog:n,validateDesignConfig:o,validateInitConfig:a}={}){let i=t&&typeof t.log=="function"?t.log:n,s=typeof t=="object"&&("colors"in t||"typography"in t||"spatialRhythm"in t||"shape"in t||"behavior"in t||"layout"in t||"advanced"in t||"a11y"in t||"components"in t||"icons"in t),d=t&&t.enhancers;d&&!Array.isArray(d)&&(d=Object.values(d));let c=d??e.enhancers??[],p=t&&t.preset,l=t&&t.design,u=t&&t.icons&&typeof t.icons=="object"?t.icons:null,g="preset"in(t||{})||"design"in(t||{})||"enhancers"in(t||{});t&&typeof t=="object"&&typeof a=="function"&&a(t,{log:i,context:"PDS.start"});let f,w=null;if(g){l&&typeof l=="object"&&typeof o=="function"&&o(l,{log:i,context:"PDS.start"});let b=String(p||"default").toLowerCase(),m=r?.[b]||Object.values(r||{}).find(B=>Yt(B.name)===b||String(B.name||"").toLowerCase()===b);if(!m)throw new Error(`PDS preset not found: "${p||"default"}"`);w={id:m.id||Yt(m.name),name:m.name||m.id||String(b)};let y=ot(m);if(l&&typeof l=="object"||u){let B=l?ue(l):{},K=u?ue(u):null,N=K?Xt(B,{icons:K}):B;y=Xt(y,ot(N))}let{mode:v,autoDefine:h,applyGlobalStyles:$,manageTheme:A,themeStorageKey:T,preloadStyles:I,criticalLayers:z,managerURL:M,manager:P,localization:C,preset:k,design:L,enhancers:E,log:R,...O}=t;f={...O,design:y,preset:w.name,log:R||n}}else if(s){typeof o=="function"&&o(t,{log:i,context:"PDS.start"});let{log:b,...m}=t;f={design:ot(m),log:b||n}}else{let b=r?.default||Object.values(r||{}).find(m=>Yt(m.name)==="default");if(!b)throw new Error("PDS default preset not available");w={id:b.id||"default",name:b.name||"Default"},f={design:ot(b),preset:w.name,log:n}}return{generatorConfig:f,enhancers:c,presetInfo:w}}function it({manageTheme:t,themeStorageKey:e,applyResolvedTheme:r,setupSystemListenerIfNeeded:n}){let o="light",a=null;if(t&&typeof window<"u"){try{a=localStorage.getItem(e)||null}catch{a=null}try{r?.(a),n?.(a)}catch{}a?a==="system"?o=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":o=a:o=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}return{resolvedTheme:o,storedTheme:a}}function Le(t,{resolvePublicAssetURL:e}){let r=!!(t?.public?.root||t?.static?.root),n=e(t);return!r&&Jr&&(n=Jr),Se($e(n))}async function st(t,{baseEnhancers:e=[]}={}){let{autoDefineBaseURL:r="/auto-define/",autoDefinePreload:n=[],autoDefineMapper:o=null,enhancers:a=[],autoDefineOverrides:i=null,autoDefinePreferModule:s=!0}=t,d=(()=>{let p=new Map;return(e||[]).forEach(l=>p.set(l.selector,l)),(a||[]).forEach(l=>p.set(l.selector,l)),Array.from(p.values())})(),c=null;if(typeof window<"u"&&typeof document<"u"){let p=nt,l=v=>{switch(v){case"pds-tabpanel":return"pds-tabstrip.js";default:return`${v}.js`}},{mapper:u,enhancers:g,...f}=i&&typeof i=="object"?i:{},w=g?Array.isArray(g)?g:typeof g=="object"?Object.values(g):[]:[],b=(()=>{let v=new Map;return(d||[]).forEach(h=>{h?.selector&&v.set(h.selector,h)}),(w||[]).forEach(h=>{if(!h?.selector)return;let $=v.get(h.selector)||null;v.set(h.selector,{...$||{},...h,run:typeof h?.run=="function"?h.run:$?.run})}),Array.from(v.values())})(),y={baseURL:r&&Se($e(r,{preferModule:s})),predefine:n,scanExisting:!0,observeShadows:!0,patchAttachShadow:!0,debounceMs:16,enhancers:b,onError:(v,h)=>{if(typeof v=="string"&&v.startsWith("pds-")){let A=["pds-form","pds-drawer"].includes(v),T=h?.message?.includes("#pds/lit")||h?.message?.includes("Failed to resolve module specifier");A&&T?x.log("error",`\u274C PDS component <${v}> requires Lit but #pds/lit is not in import map.
3838
+ See: https://github.com/Pure-Web-Foundation/pure-ds/blob/main/readme.md#lit-components-not-working`):x.log("warn",`\u26A0\uFE0F PDS component <${v}> not found. Assets may not be installed.`)}else x.log("error",`\u274C Auto-define error for <${v}>:`,h)},...f,mapper:v=>{if(customElements.get(v))return null;if(typeof o=="function")try{let h=o(v);return h===void 0?l(v):h}catch(h){return x.log("warn","Custom autoDefine.mapper error; falling back to default:",h?.message||h),l(v)}return l(v)}};c=new p(y),n.length>0&&typeof p.define=="function"&&await p.define(...n,{baseURL:r,mapper:y.mapper,onError:y.onError})}return{autoDefiner:c,mergedEnhancers:d}}var Qt=["light","dark"],er=new Set(Qt);function tr(t){let r=(Array.isArray(t?.themes)?t.themes.map(n=>String(n).toLowerCase()):Qt).filter(n=>er.has(n));return r.length?r:Qt}function ze(t,{preferDocument:e=!0}={}){let r=String(t||"").toLowerCase();if(er.has(r))return r;if(e&&typeof document<"u"){let n=document.documentElement?.getAttribute("data-theme");if(er.has(n))return n}return typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function ge(t,e){let r=ze(e);return tr(t).includes(r)}var Zr=!1,pt="pds-live-edit-toggle",ar="pds-live-edit-toggle-style";function Qr(t,e=new WeakSet){if(!t||typeof t!="object"||e.has(t))return t;e.add(t),Object.freeze(t);for(let r of Object.keys(t))Qr(t[r],e);return t}function ut(t){let e=ue(t);return typeof structuredClone=="function"?structuredClone(e):JSON.parse(JSON.stringify(e))}function en(t){return t==null||typeof t!="object"?t:Qr(ut(t))}function tn(t){if(typeof document>"u"||typeof t!="function")return;if(document.body){t();return}let e=()=>{document.body&&(document.removeEventListener("DOMContentLoaded",e),t())};document.addEventListener("DOMContentLoaded",e,{once:!0})}function Qo(t={}){let e=t?.interactive!==!1;typeof document>"u"||tn(()=>{if(document.querySelector("pds-live-edit")){if(!e){let r=document.querySelector("pds-live-edit");r&&r.setAttribute("data-pds-live-settings-only","true")}}else{let r=document.createElement("pds-live-edit");e||r.setAttribute("data-pds-live-settings-only","true"),document.body.appendChild(r)}})}function dt(t=0){return new Promise(e=>{setTimeout(e,Math.max(0,Number(t)||0))})}async function We(t={}){let e=t?.mountIfMissing!==!1,r=t?.interactive!==!1,n=typeof t?.requiredMethod=="string"&&t.requiredMethod.trim()?t.requiredMethod.trim():"openDesignSettings",o=Number.isFinite(Number(t?.timeoutMs))?Number(t.timeoutMs):2400;if(typeof document>"u"||!e&&!document.querySelector("pds-live-edit"))return null;e&&Qo({interactive:r});let a=Date.now();for(;Date.now()-a<o;){let s=document.querySelector("pds-live-edit");if(!s){await dt(40);continue}if(typeof s?.[n]=="function")return s;if(typeof customElements<"u"&&typeof customElements.whenDefined=="function"){try{await Promise.race([customElements.whenDefined("pds-live-edit"),dt(80)])}catch{await dt(40)}continue}await dt(40)}let i=document.querySelector("pds-live-edit");return i&&typeof i?.[n]=="function"?i:null}function rn(){if(typeof document>"u")return;document.querySelectorAll("pds-live-edit").forEach(e=>{typeof e?.setInteractiveEditingEnabled=="function"&&e.setInteractiveEditingEnabled(!1),e.remove()})}function ea(t){return t?typeof t.isInteractiveEditingEnabled=="function"?!!t.isInteractiveEditingEnabled():!0:!1}function ta(){if(typeof document>"u"||document.getElementById(ar))return;let t=document.createElement("style");t.id=ar,t.textContent=`
3663
3839
  :where(.pds-live-edit-toggle-nav) {
3664
3840
  position: fixed;
3665
3841
  top: var(--spacing-3);
@@ -3684,8 +3860,7 @@ export const ${t}CSS = \`${n}\`;
3684
3860
  :where(.pds-live-edit-toggle-nav menu li.pds-live-shared-quick-mode-item .pds-live-editor-menu) {
3685
3861
  display: grid;
3686
3862
  gap: var(--spacing-2);
3687
- padding: var(--spacing-2);
3688
- border-bottom: var(--border-width-thin) solid var(--color-border);
3863
+ padding: var(--spacing-2);
3689
3864
  }
3690
3865
 
3691
3866
  :where(.pds-live-edit-toggle-nav menu li.pds-live-shared-quick-mode-item label) {
@@ -3713,34 +3888,34 @@ export const ${t}CSS = \`${n}\`;
3713
3888
  }
3714
3889
 
3715
3890
  :where(.pds-live-edit-toggle-nav menu a[data-pds-live-action="reset-config"]) {
3716
- color: var(--color-danger-700);
3891
+ color: var(--color-danger-text);
3717
3892
  }
3718
3893
 
3719
3894
  :where(.pds-live-edit-toggle-nav menu a[data-pds-live-action="reset-config"] pds-icon) {
3720
- color: var(--color-danger-700);
3895
+ color: var(--color-danger-text);
3721
3896
  }
3722
- `,document.head.appendChild(e)}function or(e,t){if(!e)return;e.classList.toggle("btn-primary",t),e.classList.toggle("btn-secondary",!t),e.setAttribute("aria-pressed",t?"true":"false");let r="PDS Manager";e.setAttribute("aria-label",r),e.setAttribute("title",r)}async function ra(){if(typeof document>"u")return null;ta();let e=document.getElementById(pt);if(!e){let t=document.createElement("nav");t.className="pds-live-edit-toggle-nav",t.setAttribute("data-dropdown",""),t.setAttribute("data-mode","auto"),t.setAttribute("data-pds-live-edit-ignore","true"),e=document.createElement("button"),e.id=pt,e.type="button",e.className="icon-only btn-secondary",e.setAttribute("data-pds-live-edit-ignore","true"),e.innerHTML='<pds-icon icon="cursor-click" size="sm"></pds-icon>';let r=document.createElement("menu");r.setAttribute("data-pds-live-edit-ignore","true");let n=(i,s,p)=>{let c=document.createElement("li"),d=document.createElement("a");d.href="#",d.dataset.pdsLiveAction=i,d.setAttribute("data-pds-live-edit-ignore","true");let l=document.createElement("pds-icon");return l.setAttribute("icon",p),l.setAttribute("size","sm"),d.append(l,document.createTextNode(` ${s}`)),c.appendChild(d),c},o=()=>{let i=document.createElement("li");i.setAttribute("data-pds-live-edit-ignore","true");let s=document.createElement("hr");return s.setAttribute("aria-hidden","true"),i.appendChild(s),i};r.appendChild(n("toggle",se("Toggle live editing"),"pencil"));let a=n("open-settings",se("Open Settings"),"gear");a.setAttribute("data-dropdown-close",""),r.appendChild(a),r.appendChild(n("reset-config",se("Reset Config"),"arrow-counter-clockwise")),await na(r),t.append(e,r),tn(()=>{document.getElementById(pt)||document.body.appendChild(t)})}return e}async function na(e){if(e instanceof Element){if(e.__pdsLiveSharedMenuItemInFlight)return e.__pdsLiveSharedMenuItemInFlight;e.__pdsLiveSharedMenuItemInFlight=(async()=>{e.querySelectorAll("li.pds-live-shared-quick-mode-item").forEach(s=>s.remove());let t=await He({mountIfMissing:!0,interactive:!1,requiredMethod:"createSharedQuickModeMenuItem",timeoutMs:7e3});if(!t||typeof t.createSharedQuickModeMenuItem!="function")return;let r=await t.createSharedQuickModeMenuItem();if(!(r instanceof Element))return;r.classList.add("pds-live-shared-quick-mode-item");let o=e.querySelector('a[data-pds-live-action="reset-config"]')?.closest("li")||null,a=o?.previousElementSibling||null,i=a&&a.querySelector?.(":scope > hr")?a:null;if(i){e.insertBefore(r,i);return}if(o){e.insertBefore(r,o);return}e.appendChild(r)})();try{await e.__pdsLiveSharedMenuItemInFlight}finally{e.__pdsLiveSharedMenuItemInFlight=null}}}function oa(){if(typeof document>"u")return;let e=document.getElementById(pt);if(e){let r=e.closest(".pds-live-edit-toggle-nav");r?r.remove():e.remove()}let t=document.getElementById(ar);t&&t.remove(),rn()}async function aa(){if(typeof document>"u")return;let e=await ra();if(!e)return;let t=async i=>{if(i){let s=await He({mountIfMissing:!0});s&&typeof s.setInteractiveEditingEnabled=="function"&&s.setInteractiveEditingEnabled(!0)}else rn();or(e,i)};t(!1);let r=e.closest(".pds-live-edit-toggle-nav")||e;e.__pdsLiveEditActionHandler&&r.removeEventListener("click",e.__pdsLiveEditActionHandler);let n=async i=>{let s=i.target?.closest?.("[data-pds-live-action]");if(!s)return;i.preventDefault();let p=String(s.dataset.pdsLiveAction||"");if(p==="toggle"){let c=await He({mountIfMissing:!1}),d=ea(c);await t(!d);return}if(p==="open-settings"){let c=await He({mountIfMissing:!0,requiredMethod:"openDesignSettings",interactive:!1});c&&typeof c.setInteractiveEditingEnabled=="function"&&c.setInteractiveEditingEnabled(!1),c&&typeof c.openDesignSettings=="function"&&(or(e,!1),await c.openDesignSettings());return}if(p==="reset-config"){let c=await He({mountIfMissing:!0,requiredMethod:"resetConfig",interactive:!1});or(e,!1),c&&typeof c.resetConfig=="function"&&await c.resetConfig();return}};e.__pdsLiveEditActionHandler=n,r.addEventListener("click",n),e.__pdsLiveEditDisableHandler&&document.removeEventListener("pds:live-edit:disable",e.__pdsLiveEditDisableHandler),e.__pdsLiveEditEnableHandler&&document.removeEventListener("pds:live-edit:enable",e.__pdsLiveEditEnableHandler);let o=()=>{t(!1)},a=()=>{t(!0)};e.__pdsLiveEditDisableHandler=o,document.addEventListener("pds:live-edit:disable",o),e.__pdsLiveEditEnableHandler=a,document.addEventListener("pds:live-edit:enable",a)}function ia(){if(typeof window>"u"||!window.localStorage)return null;try{let e=window.localStorage.getItem("pure-ds-config");if(!e)return null;let t=JSON.parse(e);if(t&&("preset"in t||"design"in t))return t}catch{return null}return null}function ir(e={},t={}){if(!t||typeof t!="object")return e;let r=Array.isArray(e)?[...e]:{...e};for(let[n,o]of Object.entries(t))o&&typeof o=="object"&&!Array.isArray(o)?r[n]=ir(r[n]&&typeof r[n]=="object"?r[n]:{},o):r[n]=o;return r}function sa(e){let t=ia();if(!t||!e||typeof e!="object")return e;let r=t.preset,n=t.design&&typeof t.design=="object"?t.design:null;if(!r&&!n)return e;let o="preset"in e||"design"in e||"enhancers"in e,a={...e};if(r&&(a.preset=r),n)if(o){let i=e.design&&typeof e.design=="object"?e.design:{};a.design=ir(i,n)}else a=ir(e,n);return a}function la(e,t={}){let{hideCategory:r=!0,itemGrid:n="45px 1fr",includeIncompatible:o=!0,disableIncompatible:a=!0,categoryName:i="Presets",theme:s,onSelect:p,iconHandler:c}=t||{},d=Le(s??e?.theme),l=m=>{let f=g(m?.id)?.colors||{},y=f?.primary,k=f?.secondary,v=f?.accent;return y&&k&&v?`<span style="display:flex;gap:1px;flex-shrink:0;" aria-hidden="true">
3897
+ `,document.head.appendChild(t)}function or(t,e){if(!t)return;t.classList.toggle("btn-primary",e),t.classList.toggle("btn-secondary",!e),t.setAttribute("aria-pressed",e?"true":"false");let r="PDS Manager";t.setAttribute("aria-label",r),t.setAttribute("title",r)}async function ra(){if(typeof document>"u")return null;ta();let t=document.getElementById(pt);if(!t){let e=document.createElement("nav");e.className="pds-live-edit-toggle-nav",e.setAttribute("data-dropdown",""),e.setAttribute("data-mode","auto"),e.setAttribute("data-pds-live-edit-ignore","true"),t=document.createElement("button"),t.id=pt,t.type="button",t.className="icon-only btn-secondary",t.setAttribute("data-pds-live-edit-ignore","true"),t.innerHTML='<pds-icon icon="cursor-click" size="sm"></pds-icon>';let r=document.createElement("menu");r.setAttribute("data-pds-live-edit-ignore","true");let n=(i,s,d)=>{let c=document.createElement("li"),p=document.createElement("a");p.href="#",p.dataset.pdsLiveAction=i,p.setAttribute("data-pds-live-edit-ignore","true");let l=document.createElement("pds-icon");return l.setAttribute("icon",d),l.setAttribute("size","sm"),p.append(l,document.createTextNode(` ${s}`)),c.appendChild(p),c},o=()=>{let i=document.createElement("li");i.setAttribute("data-pds-live-edit-ignore","true");let s=document.createElement("hr");return s.setAttribute("aria-hidden","true"),i.appendChild(s),i};r.appendChild(n("toggle",se("Toggle live editing"),"pencil"));let a=n("open-settings",se("Open Settings"),"gear");a.setAttribute("data-dropdown-close",""),r.appendChild(a),r.appendChild(n("reset-config",se("Reset Config"),"arrow-counter-clockwise")),await na(r),e.append(t,r),tn(()=>{document.getElementById(pt)||document.body.appendChild(e)})}return t}async function na(t){if(t instanceof Element){if(t.__pdsLiveSharedMenuItemInFlight)return t.__pdsLiveSharedMenuItemInFlight;t.__pdsLiveSharedMenuItemInFlight=(async()=>{t.querySelectorAll("li.pds-live-shared-quick-mode-item").forEach(s=>s.remove());let e=await We({mountIfMissing:!0,interactive:!1,requiredMethod:"createSharedQuickModeMenuItem",timeoutMs:7e3});if(!e||typeof e.createSharedQuickModeMenuItem!="function")return;let r=await e.createSharedQuickModeMenuItem();if(!(r instanceof Element))return;r.classList.add("pds-live-shared-quick-mode-item");let o=t.querySelector('a[data-pds-live-action="reset-config"]')?.closest("li")||null,a=o?.previousElementSibling||null,i=a&&a.querySelector?.(":scope > hr")?a:null;if(i){t.insertBefore(r,i);return}if(o){t.insertBefore(r,o);return}t.appendChild(r)})();try{await t.__pdsLiveSharedMenuItemInFlight}finally{t.__pdsLiveSharedMenuItemInFlight=null}}}function oa(){if(typeof document>"u")return;let t=document.getElementById(pt);if(t){let r=t.closest(".pds-live-edit-toggle-nav");r?r.remove():t.remove()}let e=document.getElementById(ar);e&&e.remove(),rn()}async function aa(){if(typeof document>"u")return;let t=await ra();if(!t)return;let e=async i=>{if(i){let s=await We({mountIfMissing:!0});s&&typeof s.setInteractiveEditingEnabled=="function"&&s.setInteractiveEditingEnabled(!0)}else rn();or(t,i)};e(!1);let r=t.closest(".pds-live-edit-toggle-nav")||t;t.__pdsLiveEditActionHandler&&r.removeEventListener("click",t.__pdsLiveEditActionHandler);let n=async i=>{let s=i.target?.closest?.("[data-pds-live-action]");if(!s)return;i.preventDefault();let d=String(s.dataset.pdsLiveAction||"");if(d==="toggle"){let c=await We({mountIfMissing:!1}),p=ea(c);await e(!p);return}if(d==="open-settings"){let c=await We({mountIfMissing:!0,requiredMethod:"openDesignSettings",interactive:!1});c&&typeof c.setInteractiveEditingEnabled=="function"&&c.setInteractiveEditingEnabled(!1),c&&typeof c.openDesignSettings=="function"&&(or(t,!1),await c.openDesignSettings());return}if(d==="reset-config"){let c=await We({mountIfMissing:!0,requiredMethod:"resetConfig",interactive:!1});or(t,!1),c&&typeof c.resetConfig=="function"&&await c.resetConfig();return}};t.__pdsLiveEditActionHandler=n,r.addEventListener("click",n),t.__pdsLiveEditDisableHandler&&document.removeEventListener("pds:live-edit:disable",t.__pdsLiveEditDisableHandler),t.__pdsLiveEditEnableHandler&&document.removeEventListener("pds:live-edit:enable",t.__pdsLiveEditEnableHandler);let o=()=>{e(!1)},a=()=>{e(!0)};t.__pdsLiveEditDisableHandler=o,document.addEventListener("pds:live-edit:disable",o),t.__pdsLiveEditEnableHandler=a,document.addEventListener("pds:live-edit:enable",a)}function ia(){if(typeof window>"u"||!window.localStorage)return null;try{let t=window.localStorage.getItem("pure-ds-config");if(!t)return null;let e=JSON.parse(t);if(e&&("preset"in e||"design"in e))return e}catch{return null}return null}function ir(t={},e={}){if(!e||typeof e!="object")return t;let r=Array.isArray(t)?[...t]:{...t};for(let[n,o]of Object.entries(e))o&&typeof o=="object"&&!Array.isArray(o)?r[n]=ir(r[n]&&typeof r[n]=="object"?r[n]:{},o):r[n]=o;return r}function sa(t){let e=ia();if(!e||!t||typeof t!="object")return t;let r=e.preset,n=e.design&&typeof e.design=="object"?e.design:null;if(!r&&!n)return t;let o="preset"in t||"design"in t||"enhancers"in t,a={...t};if(r&&(a.preset=r),n)if(o){let i=t.design&&typeof t.design=="object"?t.design:{};a.design=ir(i,n)}else a=ir(t,n);return a}function la(t,e={}){let{hideCategory:r=!0,itemGrid:n="45px 1fr",includeIncompatible:o=!0,disableIncompatible:a=!0,categoryName:i="Presets",theme:s,onSelect:d,iconHandler:c}=e||{},p=ze(s??t?.theme),l=f=>{let b=g(f?.id)?.colors||{},m=b?.primary,y=b?.secondary,v=b?.accent;return m&&y&&v?`<span style="display:flex;gap:1px;flex-shrink:0;" aria-hidden="true">
3898
+ <span style="display:inline-block;width:10px;height:20px;background-color:${m};">&nbsp;</span>
3723
3899
  <span style="display:inline-block;width:10px;height:20px;background-color:${y};">&nbsp;</span>
3724
- <span style="display:inline-block;width:10px;height:20px;background-color:${k};">&nbsp;</span>
3725
3900
  <span style="display:inline-block;width:10px;height:20px;background-color:${v};">&nbsp;</span>
3726
- </span>`:m?.icon?`<pds-icon icon="${m.icon}" size="sm"></pds-icon>`:""},u=()=>{let m=e?.presets||{};return Object.values(m||{}).filter(b=>!!(b?.id||b?.name))},g=m=>m&&u().find(f=>String(f?.id||f?.name)===String(m))||null;return{hideCategory:r,itemGrid:n,iconHandler:typeof c=="function"?c:l,categories:{[i]:{trigger:()=>!0,getItems:(m={})=>{let b=String(m?.search||"").toLowerCase().trim();return u().filter(y=>{let k=String(y?.name||y?.id||"").toLowerCase(),v=String(y?.description||"").toLowerCase(),$=Array.isArray(y?.tags)?y.tags.map(T=>String(T).toLowerCase()):[];if(b&&!(k.includes(b)||v.includes(b)||$.some(F=>F.includes(b))))return!1;let A=ge(y,d);return!(!o&&!A)}).map(y=>{let k=y?.id||y?.name,v=ge(y,d),$=tr(y),A=$.length===1?`${$[0]} only`:`Not available in ${d} mode`,T=String(y?.description||"").trim(),F=v?T:T?`${T} - ${A}`:A;return{id:k,text:y?.name||String(k),description:F,icon:"palette",class:!v&&a?"disabled":"",disabled:!v&&a,tooltip:v?"":A}}).sort((y,k)=>String(y.text||"").localeCompare(String(k.text||"")))},action:async m=>{if(!m?.id||m?.disabled)return m?.id;let b=g(m.id);return b?typeof p=="function"?await p({preset:b,selection:m,resolvedTheme:d}):(typeof e?.applyLivePreset=="function"&&await e.applyLivePreset(b.id||m.id),b.id||m.id):m?.id}}}}}async function ca(e,{applyResolvedTheme:t,setupSystemListenerIfNeeded:r,emitConfigChanged:n}){if(Xr)return;let[o,a,i]=await Promise.all([Promise.resolve().then(()=>(Bt(),Tr)),Promise.resolve().then(()=>(Fe(),br)),Promise.resolve().then(()=>(nr(),ct))]),s=o?.default||o?.ontology,p=o?.findComponentForElement,c=a?.enums;e.ontology=s,e.findComponentForElement=p,e.enums=c,e.common=i||{},e.presets=Q,e.configRelations=Sr,e.configSpec=$r,e.configEditorMetadata=Cr,e.configFormSchema=Mr,e.buildConfigFormSchema=be,e.getConfigEditorMetadata=je,e.enhancerMetadata=Ur,(!Array.isArray(e.defaultEnhancers)||e.defaultEnhancers.length===0)&&(e.defaultEnhancers=Array.isArray(rt)?rt:[]),e.applyStyles=function(d){let l=d||X.instance;Wr(l),typeof n=="function"&&n({mode:"live",source:"live:styles-applied"})},e.adoptLayers=function(d,l,u){return tt(d,l,u,X.instance)},e.adoptPrimitives=function(d,l){return et(d,l,X.instance)},e.getGenerator=async function(){return X},e.buildPresetOmniboxSettings=function(d={}){return la(e,d)},e.applyLivePreset=async function(d,l={}){if(!d)return!1;if(!e.registry?.isLive)return e.log("warn","PDS.applyLivePreset is only available in live mode."),!1;let u=e.currentConfig||{},{design:g,preset:m,...b}=u,f={...ut(b),preset:d},y=Xt(f,{},{presets:Q,defaultLog:Ot,validateDesignConfig:It,validateInitConfig:jt}),k=Le(e.theme);if(!ge(y.generatorConfig.design,k)){let T=y.presetInfo?.name||y.generatorConfig?.design?.name||d;e.log("warn",`PDS theme "${k}" not supported by preset "${T}".`)}u.theme&&!y.generatorConfig.theme&&(y.generatorConfig.theme=u.theme);let v=new X(y.generatorConfig);if(y.generatorConfig.design?.typography)try{await Jt(y.generatorConfig.design.typography)}catch(T){y.generatorConfig?.log?.("warn","Failed to load some fonts from Google Fonts:",T)}e.applyStyles?.(v);let $=y.presetInfo||{id:d,name:d};if(e.currentPreset=$,e.compiled=en({...u,preset:y.generatorConfig.preset,design:y.generatorConfig.design,theme:y.generatorConfig.theme||u.theme}),e.configEditorMetadata=je(y.generatorConfig.design),e.configFormSchema=be(y.generatorConfig.design),l?.persist!==!1&&typeof window<"u"){let T="pure-ds-config";try{let F=localStorage.getItem(T),I=F?JSON.parse(F):null,L={...I&&typeof I=="object"?I:{},preset:$.id||d,design:ut(y.generatorConfig.design||{})};localStorage.setItem(T,JSON.stringify(L))}catch(F){y.generatorConfig?.log?.("warn","Failed to store preset:",F)}}return!0},e.preloadCritical=function(d,l={}){if(typeof window>"u"||!document.head||!d)return;let{theme:u,layers:g=["tokens"]}=l;try{let m=u||"light";(u==="system"||!u)&&(m=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),document.documentElement.setAttribute("data-theme",m);let b=d.design?{...d,theme:m}:{design:d,theme:m},f=new X(b),y=g.map(k=>{try{return f.css?.[k]||""}catch{return""}}).filter(k=>k.trim()).join(`
3727
- `);if(y){let k=document.head.querySelector("style[data-pds-preload]");k&&k.remove();let v=document.createElement("style");v.setAttribute("data-pds-preload",""),v.textContent=y,document.head.insertBefore(v,document.head.firstChild)}}catch(m){e.log("warn","PDS preload failed:",m)}},Xr=!0}async function da(e,t,{emitReady:r,emitConfigChanged:n,applyResolvedTheme:o,setupSystemListenerIfNeeded:a}){if(!t||typeof t!="object")throw new Error("PDS.start({ mode: 'live', ... }) requires a valid configuration object");let i=t?.design?.icons?.externalPath||t?.icons?.externalPath||null;if(t=sa(t),typeof i=="string"&&i.trim()){let g=t?.design&&typeof t.design=="object"?t.design:{},m=g?.icons&&typeof g.icons=="object"?g.icons:{};t={...t,design:{...g,icons:{...m,externalPath:i}}}}if(await ca(e,{applyResolvedTheme:o,setupSystemListenerIfNeeded:a,emitConfigChanged:n}),at(e),typeof document<"u"&&document.adoptedStyleSheets){let g=`
3901
+ </span>`:f?.icon?`<pds-icon icon="${f.icon}" size="sm"></pds-icon>`:""},u=()=>{let f=t?.presets||{};return Object.values(f||{}).filter(w=>!!(w?.id||w?.name))},g=f=>f&&u().find(b=>String(b?.id||b?.name)===String(f))||null;return{hideCategory:r,itemGrid:n,iconHandler:typeof c=="function"?c:l,categories:{[i]:{trigger:()=>!0,getItems:(f={})=>{let w=String(f?.search||"").toLowerCase().trim();return u().filter(m=>{let y=String(m?.name||m?.id||"").toLowerCase(),v=String(m?.description||"").toLowerCase(),h=Array.isArray(m?.tags)?m.tags.map(A=>String(A).toLowerCase()):[];if(w&&!(y.includes(w)||v.includes(w)||h.some(T=>T.includes(w))))return!1;let $=ge(m,p);return!(!o&&!$)}).map(m=>{let y=m?.id||m?.name,v=ge(m,p),h=tr(m),$=h.length===1?`${h[0]} only`:`Not available in ${p} mode`,A=String(m?.description||"").trim(),T=v?A:A?`${A} - ${$}`:$;return{id:y,text:m?.name||String(y),description:T,icon:"palette",class:!v&&a?"disabled":"",disabled:!v&&a,tooltip:v?"":$}}).sort((m,y)=>String(m.text||"").localeCompare(String(y.text||"")))},action:async f=>{if(!f?.id||f?.disabled)return f?.id;let w=g(f.id);return w?typeof d=="function"?await d({preset:w,selection:f,resolvedTheme:p}):(typeof t?.applyLivePreset=="function"&&await t.applyLivePreset(w.id||f.id),w.id||f.id):f?.id}}}}}async function ca(t,{applyResolvedTheme:e,setupSystemListenerIfNeeded:r,emitConfigChanged:n}){if(Zr)return;let[o,a,i]=await Promise.all([Promise.resolve().then(()=>(Bt(),Ar)),Promise.resolve().then(()=>(_e(),br)),Promise.resolve().then(()=>(nr(),ct))]),s=o?.default||o?.ontology,d=o?.findComponentForElement,c=a?.enums;t.ontology=s,t.findComponentForElement=d,t.enums=c,t.common=i||{},t.presets=Q,t.configRelations=Sr,t.configSpec=$r,t.configEditorMetadata=Cr,t.configFormSchema=Mr,t.buildConfigFormSchema=be,t.getConfigEditorMetadata=je,t.enhancerMetadata=Ur,(!Array.isArray(t.defaultEnhancers)||t.defaultEnhancers.length===0)&&(t.defaultEnhancers=Array.isArray(rt)?rt:[]),t.applyStyles=function(p){let l=p||Z.instance;Hr(l),typeof n=="function"&&n({mode:"live",source:"live:styles-applied"})},t.adoptLayers=function(p,l,u){return tt(p,l,u,Z.instance)},t.adoptPrimitives=function(p,l){return et(p,l,Z.instance)},t.getGenerator=async function(){return Z},t.buildPresetOmniboxSettings=function(p={}){return la(t,p)},t.applyLivePreset=async function(p,l={}){if(!p)return!1;if(!t.registry?.isLive)return t.log("warn","PDS.applyLivePreset is only available in live mode."),!1;let u=t.currentConfig||{},{design:g,preset:f,...w}=u,b={...ut(w),preset:p},m=Zt(b,{},{presets:Q,defaultLog:Ot,validateDesignConfig:Nt,validateInitConfig:jt}),y=ze(t.theme);if(!ge(m.generatorConfig.design,y)){let A=m.presetInfo?.name||m.generatorConfig?.design?.name||p;t.log("warn",`PDS theme "${y}" not supported by preset "${A}".`)}u.theme&&!m.generatorConfig.theme&&(m.generatorConfig.theme=u.theme);let v=new Z(m.generatorConfig);if(m.generatorConfig.design?.typography)try{await Jt(m.generatorConfig.design.typography)}catch(A){m.generatorConfig?.log?.("warn","Failed to load some fonts from Google Fonts:",A)}t.applyStyles?.(v);let h=m.presetInfo||{id:p,name:p};if(t.currentPreset=h,t.compiled=en({...u,preset:m.generatorConfig.preset,design:m.generatorConfig.design,theme:m.generatorConfig.theme||u.theme}),t.configEditorMetadata=je(m.generatorConfig.design),t.configFormSchema=be(m.generatorConfig.design),l?.persist!==!1&&typeof window<"u"){let A="pure-ds-config";try{let T=localStorage.getItem(A),I=T?JSON.parse(T):null,z={...I&&typeof I=="object"?I:{},preset:h.id||p,design:ut(m.generatorConfig.design||{})};localStorage.setItem(A,JSON.stringify(z))}catch(T){m.generatorConfig?.log?.("warn","Failed to store preset:",T)}}return!0},t.preloadCritical=function(p,l={}){if(typeof window>"u"||!document.head||!p)return;let{theme:u,layers:g=["tokens"]}=l;try{let f=u||"light";(u==="system"||!u)&&(f=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),document.documentElement.setAttribute("data-theme",f);let w=p.design?{...p,theme:f}:{design:p,theme:f},b=new Z(w),m=g.map(y=>{try{return b.css?.[y]||""}catch{return""}}).filter(y=>y.trim()).join(`
3902
+ `);if(m){let y=document.head.querySelector("style[data-pds-preload]");y&&y.remove();let v=document.createElement("style");v.setAttribute("data-pds-preload",""),v.textContent=m,document.head.insertBefore(v,document.head.firstChild)}}catch(f){t.log("warn","PDS preload failed:",f)}},Zr=!0}async function da(t,e,{emitReady:r,emitConfigChanged:n,applyResolvedTheme:o,setupSystemListenerIfNeeded:a}){if(!e||typeof e!="object")throw new Error("PDS.start({ mode: 'live', ... }) requires a valid configuration object");let i=e?.design?.icons?.externalPath||e?.icons?.externalPath||null;if(e=sa(e),typeof i=="string"&&i.trim()){let g=e?.design&&typeof e.design=="object"?e.design:{},f=g?.icons&&typeof g.icons=="object"?g.icons:{};e={...e,design:{...g,icons:{...f,externalPath:i}}}}if(await ca(t,{applyResolvedTheme:o,setupSystemListenerIfNeeded:a,emitConfigChanged:n}),at(t),typeof document<"u"&&document.adoptedStyleSheets){let g=`
3728
3903
  html { opacity: 0; }
3729
3904
  html.pds-ready { opacity: 1; transition: opacity 0.3s ease-in; }
3730
- `;try{if(!document.adoptedStyleSheets.some(b=>b._pdsFouc)){let b=new CSSStyleSheet;b.replaceSync(g),b._pdsFouc=!0,document.adoptedStyleSheets=[b,...document.adoptedStyleSheets]}}catch(m){if(e.log("warn","Constructable stylesheets not supported, using <style> tag fallback:",m),!document.head.querySelector("style[data-pds-fouc]")){let f=document.createElement("style");f.setAttribute("data-pds-fouc",""),f.textContent=g,document.head.insertBefore(f,document.head.firstChild)}}}let s=t.applyGlobalStyles??!0,p=t.manageTheme??!0,c=t.themeStorageKey??"pure-ds-theme",d=t.preloadStyles??!1,l=t.criticalLayers??["tokens","primitives"],u=t&&t.autoDefine||null;try{let{resolvedTheme:g}=it({manageTheme:p,themeStorageKey:c,applyResolvedTheme:o,setupSystemListenerIfNeeded:a}),m=Xt(t,{},{presets:Q,defaultLog:Ot,validateDesignConfig:It,validateInitConfig:jt});if(p&&!ge(m.generatorConfig.design,g)){let L=m.presetInfo?.name||m.generatorConfig?.design?.name||m.generatorConfig?.preset||"current preset";e.log("warn",`PDS theme "${g}" not supported by preset "${L}".`)}let b=m.enhancers,{log:f,...y}=m.generatorConfig,k=ut(y);k.log=f,p&&(k.theme=g);let v=new X(k);if(k.design?.typography)try{await Jt(k.design.typography)}catch(L){k?.log?.("warn","Failed to load some fonts from Google Fonts:",L)}if(d&&typeof window<"u"&&document.head)try{let L=l.map(M=>{try{return v.css?.[M]||""}catch(N){return k?.log?.("warn",`Failed to generate critical CSS for layer "${M}":`,N),""}}).filter(M=>M.trim()).join(`
3731
- `);if(L){let M=document.head.querySelector("style[data-pds-critical]");M&&M.remove();let N=document.createElement("style");N.setAttribute("data-pds-critical",""),N.textContent=L;let z=document.head.querySelector('meta[charset], meta[name="viewport"]');z?z.parentNode.insertBefore(N,z.nextSibling):document.head.insertBefore(N,document.head.firstChild)}}catch(L){k?.log?.("warn","Failed to preload critical styles:",L)}e.registry.setLiveMode(),m.presetInfo?.name?k?.log?.("log",`PDS live with preset "${m.presetInfo.name}"`):k?.log?.("log","PDS live with custom config"),s&&(e.applyStyles?.(X.instance),typeof window<"u"&&setTimeout(()=>{let L=document.head.querySelector("style[data-pds-critical]");L&&L.remove();let M=document.head.querySelector("style[data-pds-preload]");M&&M.remove();let N=document.getElementById("pds-runtime-stylesheet");N&&N.remove()},100));let $=ze(t,{resolvePublicAssetURL:ke}),A;u&&u.baseURL?A=Se($e(u.baseURL,{preferModule:!1})):A=`${$}components/`;let T=null,F=[];try{let L=await st({autoDefineBaseURL:A,autoDefinePreload:u&&Array.isArray(u.predefine)&&u.predefine||[],autoDefineMapper:u&&typeof u.mapper=="function"&&u.mapper||null,enhancers:b,autoDefineOverrides:u||null,autoDefinePreferModule:!(u&&u.baseURL)},{baseEnhancers:rt});T=L.autoDefiner,F=L.mergedEnhancers||[]}catch(L){k?.log?.("error","\u274C Failed to initialize AutoDefiner/Enhancers:",L)}let I=v?.options||k;if(e.compiled=en({mode:"live",...I,theme:g,enhancers:F}),e.configEditorMetadata=je(m.generatorConfig.design),e.configFormSchema=be(m.generatorConfig.design),typeof n=="function"&&n({mode:"live",source:"live:config-applied",preset:m.generatorConfig.preset}),typeof document<"u")try{t?.liveEdit?setTimeout(()=>{aa()},0):oa()}catch(L){k?.log?.("warn","Live editor toggle failed to start:",L)}return r({mode:"live",generator:v,config:I,theme:g,autoDefiner:T}),{generator:v,config:I,theme:g,autoDefiner:T}}catch(g){throw e.dispatchEvent(new CustomEvent("pds:error",{detail:{error:g}})),g}}function pa(e){let t=Number(e);return Number.isFinite(t)?Math.max(0,Math.min(1,t)):.5}function ua(e){return Array.isArray(e)?e.map(t=>t?{severity:String(t.severity||"info").toLowerCase(),message:String(t.message||""),path:t.path?String(t.path):""}:null).filter(t=>t&&t.message):[]}function W(e={}){let t=String(e.source||"unknown"),r=String(e.type||"generic"),n=pa(e.confidence),o=ua(e.issues),a=e.designPatch&&typeof e.designPatch=="object"?e.designPatch:{},i=e.template&&typeof e.template=="object"?e.template:null;return{source:t,type:r,confidence:n,issues:o,designPatch:a,template:i,meta:e.meta&&typeof e.meta=="object"?e.meta:{}}}function ga(e){return!!(e&&typeof e=="object"&&"source"in e&&"type"in e&&"confidence"in e&&"issues"in e&&"designPatch"in e)}var ma="../templates/templates.json",nn="/assets/pds/templates/templates.json",fa=["public","assets","pds","templates","templates.json"],ha=["..","..","..","public","assets","pds","templates","templates.json"],gt=null;function on(){return!!(typeof process<"u"&&process?.versions?.node)}function ba(e={}){return{id:String(e.id||"").trim(),name:String(e.name||e.id||"Template").trim(),description:String(e.description||"").trim(),icon:String(e.icon||"layout").trim(),file:String(e.file||"").trim(),tags:Array.isArray(e.tags)?e.tags.map(t=>String(t)):[]}}function mt(e={},t={}){let n=(Array.isArray(e)?e:Array.isArray(e?.templates)?e.templates:[]).map(ba).filter(o=>o.id&&o.file);return{version:e?.version||"1",templates:n,__catalogURL:t.catalogURL||null,__catalogFilePath:t.catalogFilePath||null}}async function ya(e={}){let r=[e.catalogURL||globalThis?.PDS?.currentConfig?.templateCatalogURL,ma,nn].filter(Boolean);for(let n of r)try{let o=new URL(n,import.meta.url).href,a=await fetch(o,{credentials:"same-origin"});if(!a.ok)continue;let i=await a.json();return mt(i,{catalogURL:o})}catch{}return mt({templates:[]})}async function va(e={}){let t="node:fs/promises",r="node:path",n="node:url",[{readFile:o},a,{fileURLToPath:i}]=await Promise.all([import(t),import(r),import(n)]),s=[];e.catalogPath&&s.push(a.resolve(e.catalogPath)),s.push(a.resolve(process.cwd(),...fa));let p=a.dirname(i(import.meta.url));s.push(a.resolve(p,...ha));for(let c of s)try{let d=await o(c,"utf8"),l=JSON.parse(d);return mt(l,{catalogFilePath:c})}catch{}return mt({templates:[]})}async function xa(e,t){if(!e?.file)return"";if(!on()){let p=t?.__catalogURL||nn,c=new URL(e.file,p).href,d=await fetch(c,{credentials:"same-origin"});if(!d.ok)throw new Error(`Template file not found: ${e.file}`);return(await d.text()).trim()}let r="node:fs/promises",n="node:path",[{readFile:o},a]=await Promise.all([import(r),import(n)]),i=t?.__catalogFilePath?a.dirname(t.__catalogFilePath):a.resolve(process.cwd(),"public","assets","pds","templates"),s=a.resolve(i,e.file);return(await o(s,"utf8")).trim()}async function ft(e={}){return gt&&!e.forceReload||(gt=on()?await va(e):await ya(e)),gt}async function an(e={}){return(await ft(e)).templates.map(({id:r,name:n,description:o,icon:a,file:i,tags:s})=>({id:r,name:n,description:o,icon:a,file:i,tags:s}))}async function wa(e,t={}){let r=await ft(t),n=r.templates.find(a=>a.id===e)||null;if(!n)return null;let o=await xa(n,r);return{...n,html:o}}async function sn(e,t={}){let r=await wa(e,t);return r?W({source:"template",type:"template",confidence:1,template:{id:r.id,name:r.name,html:r.html,icon:r.icon,description:r.description}}):W({source:"template",type:"template",confidence:0,issues:[{severity:"error",message:`Unknown template: ${e}`}]})}var ln={version:"tw2pds-layout-v4",summary:"Deterministic Tailwind\u2192PDS conversion rules focused on layout intent, semantic primitive mapping, and richer import-* fallback coverage.",governance:[{id:"layout.utilities.grid",controls:["grid","grid-cols-*","grid-auto-*"],note:"When false, grid mappings are skipped."},{id:"layout.utilities.flex",controls:["flex","flex-*","items-*","justify-*","grow"],note:"When false, flex mappings are skipped."},{id:"layout.utilities.spacing",controls:["gap-*","stack-*"],note:"When false, spacing mappings are skipped."},{id:"layout.utilities.container",controls:["container","max-w-*"],note:"When false, container mappings are skipped."}],nonPdsClassPatterns:["^group(?:[/:].*)?$","^layout-container$"],neverFallbackTags:["table","thead","tbody","tfoot","tr","th","td","caption","colgroup","col"],directMappings:[{id:"layout.flex.base",tw:"flex",pds:["flex"],gate:"flex"},{id:"layout.flex.inline",tw:"inline-flex",pds:["flex"],gate:"flex"},{id:"layout.flex.row",tw:"flex-row",pds:["flex-row"],gate:"flex"},{id:"layout.flex.col",tw:"flex-col",pds:["flex-col"],gate:"flex"},{id:"layout.flex.wrap",tw:"flex-wrap",pds:["flex-wrap"],gate:"flex"},{id:"layout.flex.grow",tw:"grow",pds:["grow"],gate:"flex"},{id:"layout.flex.grow.tw",tw:"flex-grow",pds:["grow"],gate:"flex"},{id:"layout.flex.grow1",tw:"flex-1",pds:["grow"],gate:"flex"},{id:"layout.items.start",tw:"items-start",pds:["items-start"],gate:"flex"},{id:"layout.items.center",tw:"items-center",pds:["items-center"],gate:"flex"},{id:"layout.items.end",tw:"items-end",pds:["items-end"],gate:"flex"},{id:"layout.items.stretch",tw:"items-stretch",pds:["items-stretch"],gate:"flex"},{id:"layout.items.baseline",tw:"items-baseline",pds:["items-baseline"],gate:"flex"},{id:"layout.justify.start",tw:"justify-start",pds:["justify-start"],gate:"flex"},{id:"layout.justify.center",tw:"justify-center",pds:["justify-center"],gate:"flex"},{id:"layout.justify.end",tw:"justify-end",pds:["justify-end"],gate:"flex"},{id:"layout.justify.between",tw:"justify-between",pds:["justify-between"],gate:"flex"},{id:"layout.justify.around",tw:"justify-around",pds:["justify-around"],gate:"flex"},{id:"layout.justify.evenly",tw:"justify-evenly",pds:["justify-evenly"],gate:"flex"},{id:"layout.grid.base",tw:"grid",pds:["grid"],gate:"grid"},{id:"layout.grid.cols.1",tw:"grid-cols-1",pds:["grid-cols-1"],gate:"grid"},{id:"layout.grid.cols.2",tw:"grid-cols-2",pds:["grid-cols-2"],gate:"grid"},{id:"layout.grid.cols.3",tw:"grid-cols-3",pds:["grid-cols-3"],gate:"grid"},{id:"layout.grid.cols.4",tw:"grid-cols-4",pds:["grid-cols-4"],gate:"grid"},{id:"layout.grid.cols.6",tw:"grid-cols-6",pds:["grid-cols-6"],gate:"grid"},{id:"layout.container",tw:"container",pds:["container"],gate:"container"},{id:"intent.surface.shadow",tw:"shadow",pds:["surface-elevated"]},{id:"intent.surface.shadow-md",tw:"shadow-md",pds:["surface-elevated"]},{id:"intent.surface.shadow-lg",tw:"shadow-lg",pds:["surface-elevated"]},{id:"intent.surface.base",tw:"bg-white",pds:["surface-base"]},{id:"typography.align.center",tw:"text-center",pds:["text-center"]},{id:"typography.align.left",tw:"text-left",pds:["text-left"]},{id:"typography.align.right",tw:"text-right",pds:["text-right"]},{id:"typography.text.muted.gray500",tw:"text-gray-500",pds:["text-muted"]},{id:"typography.text.muted.slate500",tw:"text-slate-500",pds:["text-muted"]}],ignoredPatterns:[{id:"style.color",pattern:"^(?:text|from|to|via|decoration|accent|caret)-|^bg-(?!cover$|center$|no-repeat$)",reason:"Visual style token skipped in favor of semantic PDS styling."},{id:"style.radius-border-shadow",pattern:"^(?:rounded|ring|border|shadow|outline)-?",reason:"Surface/shape inferred at primitive level."},{id:"style.typography",pattern:"^(?:font|leading|tracking|uppercase|lowercase|capitalize)-?",reason:"Typography atomic utilities are skipped."},{id:"style.effects",pattern:"^(?:opacity|blur|backdrop|drop-shadow|mix-blend|filter)-",reason:"Visual effects skipped unless mapped to a PDS utility."},{id:"style.transitions",pattern:"^(?:transition|duration|ease|delay|animate)-",reason:"Motion is system-defined in PDS."},{id:"style.spacing.atomic",pattern:"^(?:p|px|py|pt|pb|pl|pr|m|mx|my|mt|mb|ml|mr)-",reason:"Atomic spacing skipped; structural spacing intent is mapped."},{id:"style.positioning.atomic",pattern:"^(?:absolute|relative|fixed|sticky|inset(?:-[xy])?|top|right|bottom|left|z|translate(?:-[xy])?|-translate-[xy])(?:-|$)",reason:"Atomic positioning/offset utilities are skipped so PDS primitives and layout utilities control placement."}],intentRules:[{id:"intent.layout.responsive-grid-to-auto",summary:"Collapse responsive grid-cols patterns (including base+md two-step patterns) to best-fit grid-auto-*"},{id:"intent.layout.mobile-stack",summary:"Map flex-col + md/lg:flex-row to mobile-stack"},{id:"intent.component.card",summary:"Infer card/surface classes from rounded+shadow+surface signals"},{id:"intent.component.card.normalize",summary:"Detect Tailwind card utility clusters and normalize them to PDS card and surface variants."},{id:"intent.component.button",summary:"Infer btn-primary / btn-outline / icon-only from CTA patterns"},{id:"intent.component.button.normalize",summary:"Prevents import-* style classes on button-like elements and applies PDS button variants/sizes."},{id:"intent.component.button.layout-grow",summary:"Preserve CTA row width intent on button-like elements by mapping w-full/flex-1 to grow."},{id:"intent.icon.color-preserve",summary:"Preserve icon color intent by mapping Tailwind text color utilities on icon-like elements to tokenized import-* classes."},{id:"intent.component.badge.normalize",summary:"Detects Tailwind badge/pill utility clusters and normalizes them to PDS badge primitives/variants."},{id:"intent.typography.heading-semantic",summary:"Removes Tailwind heading typography/color utilities so heading semantics and PDS defaults control typography."},{id:"intent.surface.footer-inverse",summary:"Use surface-inverse for footers with explicit background intent"},{id:"intent.typography.link-treatment",summary:"Apply minimal link treatment for hover/transition-tailwind anchors"},{id:"intent.typography.link-active-preserve",summary:"Preserve anchor text color intent (including active menu states) by mapping Tailwind text utilities to tokenized import-* classes."},{id:"intent.typography.metric-paragraph-to-div",summary:"Normalize metric display lines from paragraph tags to div tags to avoid default paragraph margins in compact stat layouts."},{id:"intent.typography.metric-pair-no-stack",summary:"When a compact metric container has two consecutive typography lines, remove stack-sm so spacing follows Tailwind preflight no-margin assumptions."},{id:"intent.typography.semantic-heading-from-scale",summary:"Map large bold typography scales (text-2xl/text-3xl/text-4xl) to semantic heading tags when possible."},{id:"intent.typography.bold-to-strong",summary:"Prefer semantic strong tags for bold inline text intent instead of utility-only font-weight classes."},{id:"intent.preflight.tailwind-runtime-detected",summary:"Detect Tailwind runtime CSS injection and translate key preflight intent"},{id:"intent.preflight.list-reset",summary:"Preserve Tailwind list-reset preflight behavior via scoped fallback class"},{id:"intent.preflight.anchor-reset",summary:"Preserve Tailwind anchor reset preflight behavior via scoped fallback class"},{id:"table.strict-tags.no-classes",summary:"Never emit classes for semantic table tags (table/thead/tbody/tfoot/tr/th/td/caption/colgroup/col)"},{id:"intent.form.nested-label",summary:"Convert sibling label+control pairs into nested labels"},{id:"fallback.import-style",summary:"Generate import-* classes + local style block for unmapped utility styles"}],gapScaleMap:{"gap-0":"gap-0","gap-1":"gap-xs","gap-2":"gap-sm","gap-3":"gap-sm","gap-4":"gap-md","gap-5":"gap-md","gap-6":"gap-lg","gap-7":"gap-lg","gap-8":"gap-xl","gap-10":"gap-xl","gap-12":"gap-xl"},maxWidthMap:{"max-w-xs":"max-w-sm","max-w-sm":"max-w-sm","max-w-md":"max-w-md","max-w-lg":"max-w-lg","max-w-xl":"max-w-xl","max-w-2xl":"max-w-xl","max-w-3xl":"max-w-xl","max-w-4xl":"max-w-xl","max-w-5xl":"max-w-xl","max-w-6xl":"max-w-xl","max-w-7xl":"max-w-xl"},tailwindSizeScale:{"0":"var(--spacing-0)","0.5":"0.125rem","1":"var(--spacing-1)","1.5":"0.375rem","2":"var(--spacing-2)","2.5":"0.625rem","3":"var(--spacing-3)","3.5":"0.875rem","4":"var(--spacing-4)","5":"var(--spacing-5)","6":"var(--spacing-6)","7":"var(--spacing-7)","8":"var(--spacing-8)","9":"var(--spacing-9)","10":"var(--spacing-10)","11":"var(--spacing-11)","12":"var(--spacing-12)","14":"3.5rem","16":"4rem","20":"5rem","24":"6rem","28":"7rem","32":"8rem","36":"9rem","40":"10rem","48":"12rem"},tailwindShadeScale:["50","100","200","300","400","500","600","700","800","900"],defaultTailwindShade:"500",importStyleRules:{"mx-auto":"margin-left:auto;margin-right:auto","ml-auto":"margin-left:auto","mr-auto":"margin-right:auto","w-full":"width:100%","w-auto":"width:auto","h-full":"height:100%","h-48":"height:12rem","h-2.5":"height:0.625rem","h-10":"height:var(--spacing-10)","h-2":"height:var(--spacing-2)","w-2":"width:var(--spacing-2)","size-8":"width:var(--spacing-8);height:var(--spacing-8)","size-10":"width:var(--spacing-10);height:var(--spacing-10)","size-full":"width:100%;height:100%","min-h-screen":"min-height:100vh","overflow-hidden":"overflow:hidden","overflow-x-hidden":"overflow-x:hidden","overflow-x-auto":"overflow-x:auto","whitespace-nowrap":"white-space:nowrap",hidden:"display:none",block:"display:block",truncate:"overflow:hidden;text-overflow:ellipsis;white-space:nowrap","justify-items-center":"justify-items:center","justify-items-start":"justify-items:start","justify-items-end":"justify-items:end","justify-items-stretch":"justify-items:stretch","grid-flow-col":"grid-auto-flow:column","aspect-square":"aspect-ratio:1 / 1","bg-center":"background-position:center","bg-cover":"background-size:cover","bg-no-repeat":"background-repeat:no-repeat","transition-colors":"transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:150ms"},importStyleDynamicRules:[{id:"fallback.import-style.gap-scale",pattern:"^gap-(\\d+)$",summary:"Converts gap scale utilities (including responsive variants like md:gap-6) to generated import-* fallback classes."},{id:"fallback.import-style.min-width-arbitrary",pattern:"^min-w-\\[[^\\]]+\\]$",summary:"Converts arbitrary min-width utilities (e.g. min-w-[600px]) to generated import-* fallback classes."},{id:"fallback.import-style.max-width-arbitrary",pattern:"^max-w-\\[[^\\]]+\\]$",summary:"Converts arbitrary max-width utilities (e.g. max-w-[480px]) to generated import-* fallback classes."},{id:"fallback.import-style.min-height-arbitrary",pattern:"^min-h-\\[[^\\]]+\\]$",summary:"Converts arbitrary min-height utilities (e.g. min-h-[180px]) to generated import-* fallback classes."},{id:"fallback.import-style.grid-rows-arbitrary",pattern:"^grid-rows-\\[[^\\]]+\\]$",summary:"Converts arbitrary grid template row utilities (e.g. grid-rows-[1fr_auto]) to generated import-* fallback classes."},{id:"fallback.import-style.size-scale",pattern:"^size-(\\[[^\\]]+\\]|[0-9.]+)$",summary:"Converts size scale/arbitrary utilities into width+height fallback declarations."},{id:"fallback.import-style.width-height-scale",pattern:"^[wh]-(\\[[^\\]]+\\]|[0-9.]+)$",summary:"Converts width/height scale and arbitrary utilities to import-* classes."},{id:"fallback.import-style.spacing",pattern:"^-?(?:p|px|py|pt|pb|pl|pr|m|mx|my|mt|mb|ml|mr)-(.+)$",summary:"Converts spacing utilities to directional padding/margin fallback declarations, including responsive variants."},{id:"fallback.import-style.text-size",pattern:"^text-(xs|sm|base|lg|xl|2xl|3xl|4xl)$",summary:"Converts common text size utilities to import-* font-size declarations."},{id:"fallback.import-style.font-weight",pattern:"^font-(normal|medium|semibold|bold|extrabold|black)$",summary:"Converts common font weight utilities to import-* font-weight declarations."},{id:"fallback.import-style.leading-tracking",pattern:"^(leading|tracking)-(none|tight|snug|normal|relaxed|loose|tighter|wide|wider|widest)$",summary:"Converts line-height and letter-spacing utilities to import-* declarations for typography fidelity."},{id:"fallback.import-style.bg-tokenized",pattern:"^bg-([a-z]+)-(\\d{2,3})$",summary:"Safeguards Tailwind background color utilities by mapping families like blue/purple/green/red to PDS semantic tokens."},{id:"fallback.import-style.bg-semantic",pattern:"^bg-(primary|secondary|accent)$",summary:"Safeguards semantic background utilities by mapping bg-primary/bg-secondary/bg-accent to PDS color tokens."},{id:"fallback.import-style.text-tokenized",pattern:"^text-([a-z]+)-(\\d{2,3})$",summary:"Safeguards Tailwind text color utilities by mapping common families to PDS semantic tokens."},{id:"fallback.import-style.rounded",pattern:"^rounded(?:-[trbl]{1,2})?(?:-(none|xs|sm|md|lg|xl|2xl|3xl|full))?$",summary:"Safeguards rounded utilities (including rounded-t-sm) by mapping to PDS radius tokens."},{id:"fallback.import-style.overlay-alpha",pattern:"^bg-black\\/(\\d{1,3})$",summary:"Converts alpha black overlay classes (e.g. bg-black/50) to tokenized color-mix background overlays."},{id:"fallback.import-style.text-inverse",pattern:"^text-white$",summary:"Preserves white foreground intent for text-on-image use cases using inverse-compatible tokens."},{id:"fallback.import-style.bg-arbitrary",pattern:"^bg-\\[[^\\]]+\\]$",summary:"Converts arbitrary background colors to import-* fallback classes when values are CSS-safe."},{id:"fallback.import-style.text-arbitrary",pattern:"^text-\\[[^\\]]+\\]$",summary:"Converts arbitrary text colors to import-* fallback classes when values are CSS-safe."}]};Fe();nr();typeof h.initializing!="boolean"&&(h.initializing=!1);"currentPreset"in h||(h.currentPreset=null);typeof h.debug!="boolean"&&(h.debug=!1);"currentConfig"in h||(h.currentConfig=null);"compiled"in h||(h.compiled=null);typeof h.logHandler!="function"&&(h.logHandler=null);"mode"in h||(h.mode=null);var ht=null,bt=null,yt=null,vt=null,xt=null,wt=null,dn="__pdsLocalizationRuntime";function Ce(){if(wt)return wt;let e=h?.[dn];return e&&typeof e=="object"?(wt=e,e):null}function Sa(e){let t=e&&typeof e=="object"?e:null;wt=t,h[dn]=t}Fr({getLogger:()=>typeof h.logHandler=="function"?h.logHandler:null,getContext:()=>{let e=h?.mode||h?.compiled?.mode||(h?.registry?.isLive?"live":"static"),t=(h?.debug||h?.currentConfig?.debug||h?.currentConfig?.design?.debug||h?.compiled?.debug||h?.compiled?.design?.debug||!1)===!0;return{mode:e,debug:t,thisArg:h}}});h.log=(e="log",t,...r)=>{Qe(e,t,...r)};var U={locale:"en",messages:{},hasProvider:!1},kt=new Set;function pn(e){return!!e&&typeof e!="string"&&typeof e=="object"&&"strTag"in e}function un(e=[]){let t="";for(let r=0;r<=e.length-1;r+=1)t+=e[r],r<e.length-1&&(t+=`{${r}}`);return t}function $a(e,t){return String(e).replace(/\{(\d+)\}/g,(r,n)=>t(Number(n)))}function za(e){if(!e||typeof e!="object")return{};let t={};for(let[r,n]of Object.entries(e)){if(typeof n=="string"){t[r]=n;continue}n&&typeof n=="object"&&typeof n.content=="string"&&(t[r]=n.content)}return t}function La(e,...t){return{strTag:!0,strings:Array.from(e||[]),values:t,raw:Array.from(e?.raw||[])}}function Ca(e){if(!e)return"";if(pn(e)){let r=un(e.strings||[]),n=U.messages[r]||r;return $a(n,o=>e.values?.[o])}let t=String(e);return U.messages[t]||t}function Ma(e){if(!e)return;let t=pn(e)?un(e.strings||[]):String(e);typeof t=="string"&&t.length>0&&kt.add(t)}function gn(e){if(!e||typeof e.msg!="function"||kt.size===0)return;let t=Array.from(kt);kt.clear();for(let r of t)try{e.msg(r)}catch{}}async function qe(){let e=Ce();return e||(xt||(xt=import(Ge("pds-localization.js")).then(r=>{if(typeof r?.msg!="function"||typeof r?.str!="function"||typeof r?.configureLocalization!="function"||typeof r?.loadLocale!="function"||typeof r?.setLocale!="function"||typeof r?.getLocalizationState!="function")throw new Error("Failed to load localization runtime exports");return Sa(r),gn(r),r}).catch(r=>{throw xt=null,r})),xt)}var mn=(e,t={})=>{let r=Ce();return typeof r?.msg=="function"?r.msg(e,t):(Ma(e),Ca(e,t))},fn=(e,...t)=>{let r=Ce();return typeof r?.str=="function"?r.str(e,...t):La(e,...t)},St=(e=null)=>{let t=Ce();if(typeof t?.configureLocalization=="function")return t.configureLocalization(e);if(!e||typeof e!="object")return U.locale="en",U.messages={},U.hasProvider=!1,{locale:U.locale,messages:{...U.messages},hasProvider:U.hasProvider};typeof e.locale=="string"&&e.locale.trim()&&(U.locale=e.locale.trim()),Object.prototype.hasOwnProperty.call(e,"messages")&&(U.messages=za(e.messages));let r=!!(e.provider||e.translate||e.loadLocale||e.setLocale);return U.hasProvider=r,r&&qe().then(n=>{n.configureLocalization(e),gn(n)}).catch(()=>{}),{locale:U.locale,messages:{...U.messages},hasProvider:U.hasProvider}},hn=async e=>(await qe()).loadLocale(e),bn=async(e,t={})=>(await qe()).setLocale(e,t),yn=()=>{let e=Ce();return typeof e?.getLocalizationState=="function"?e.getLocalizationState():{locale:U.locale,messages:{...U.messages},hasProvider:U.hasProvider}},vn=(e={})=>{let t=Ce();if(typeof t?.createJSONLocalization=="function")return t.createJSONLocalization(e);let r=typeof e?.locale=="string"&&e.locale.trim()?e.locale.trim().toLowerCase():"en",n=Array.isArray(e?.locales)?e.locales.map(p=>String(p||"").trim().toLowerCase()).filter(Boolean):[],o=Array.from(new Set([r,...n])),a=null,i=async()=>(a||(a=qe().then(p=>typeof p?.createJSONLocalization=="function"?p.createJSONLocalization(e):null).catch(()=>null)),a),s=async(p="loadLocale")=>{let c=await i();if(!c||typeof c!="object")return null;let d=c.provider;if(!d||typeof d!="object")return null;let l=d[p];return typeof l=="function"?l:p==="setLocale"&&typeof d.loadLocale=="function"?d.loadLocale:null};return{locale:r,locales:[...o],provider:{locales:[...o],async loadLocale(p={}){let c=await s("loadLocale");return typeof c!="function"?{}:c(p)},async setLocale(p={}){let c=await s("setLocale");return typeof c!="function"?{}:c(p)}}}};function Ge(e,t){return t&&typeof t=="string"?t:`${ze(h.currentConfig||{},{resolvePublicAssetURL:ke})}core/${e}`}async function Ea(){return Array.isArray(h.defaultEnhancers)&&h.defaultEnhancers.length>0?h.defaultEnhancers:(vt||(vt=import(Ge("pds-enhancers.js",h.currentConfig?.enhancersURL)).then(t=>{let r=Array.isArray(t?.defaultPDSEnhancers)?t.defaultPDSEnhancers:[];return h.defaultEnhancers=r,r}).catch(t=>{throw vt=null,t})),vt)}async function Ta(){return typeof h.ask=="function"&&h.ask!==xn?h.ask:(bt||(bt=import(Ge("pds-ask.js",h.currentConfig?.askURL)).then(t=>{let r=t?.ask;if(typeof r!="function")throw new Error("Failed to load ask helper");return h.ask=r,r}).catch(t=>{throw bt=null,t})),bt)}async function Ve(){return typeof h.toast=="function"&&h.toast!==Me?h.toast:(yt||(yt=import(Ge("pds-toast.js",h.currentConfig?.toastURL)).then(t=>{let r=t?.toast;if(typeof r!="function")throw new Error("Failed to load toast helper");return h.toast=r,r}).catch(t=>{throw yt=null,t})),yt)}async function xn(...e){return(await Ta())(...e)}async function Me(...e){return(await Ve())(...e)}Me.success=async(...e)=>(await Ve()).success(...e);Me.error=async(...e)=>(await Ve()).error(...e);Me.warning=async(...e)=>(await Ve()).warning(...e);Me.info=async(...e)=>(await Ve()).info(...e);var cn=function(e="log",t,...r){h.log(e,t,...r)};function lr(e){if(e==null)return e;if(typeof e=="function")return;if(typeof e!="object")return e;if(Array.isArray(e))return e.map(r=>lr(r)).filter(r=>r!==void 0);let t={};for(let[r,n]of Object.entries(e)){let o=lr(n);o!==void 0&&(t[r]=o)}return t}function wn(e,t=new WeakSet){if(!e||typeof e!="object"||t.has(e))return e;t.add(e),Object.freeze(e);for(let r of Object.keys(e))wn(e[r],t);return e}function cr(e){return e==null||typeof e!="object"?e:wn(structuredClone(lr(e)))}async function Aa(e,t={}){if(t?.runtimeConfig===!1||typeof fetch!="function")return null;let r=t?.runtimeConfigURL||`${e}pds-runtime-config.json`;try{let n=await fetch(r,{cache:"no-store"});return n.ok?await n.json():null}catch{return null}}h.registry=we;h.enums=w;h.adoptLayers=tt;h.adoptPrimitives=et;h.parse=rr;h.createStylesheet=Hr;h.isLiveMode=()=>we.isLive;h.ask=xn;h.toast=Me;h.common=ct;h.msg=mn;h.str=fn;h.configureLocalization=St;h.loadLocale=hn;h.setLocale=bn;h.getLocalizationState=yn;h.createJSONLocalization=vn;h.i18n={msg:mn,str:fn,configure:St,loadLocale:hn,setLocale:bn,getState:yn,createJSONLocalization:vn};h.AutoComplete=null;h.loadAutoComplete=async()=>{if(h.AutoComplete&&typeof h.AutoComplete.connect=="function")return h.AutoComplete;let e=Ge("pds-autocomplete.js",h.currentConfig?.autoCompleteURL);return ht||(ht=import(e).then(t=>{let r=t?.AutoComplete||t?.default?.AutoComplete||t?.default||null;if(!r)throw new Error("AutoComplete export not found in module");return h.AutoComplete=r,r}).catch(t=>{throw ht=null,t})),ht};function kn(e){let t=typeof CustomEvent=="function";try{let r=t?new CustomEvent("pds:ready",{detail:e}):new Event("pds:ready");h.dispatchEvent(r)}catch{}if(typeof document<"u")if(t){let r={detail:e,bubbles:!0,composed:!0};try{document.dispatchEvent(new CustomEvent("pds:ready",r))}catch{}try{document.dispatchEvent(new CustomEvent("pds-ready",r))}catch{}}else{try{document.dispatchEvent(new Event("pds:ready"))}catch{}try{document.dispatchEvent(new Event("pds-ready"))}catch{}}}function Sn(e={}){let t=typeof CustomEvent=="function",r={at:Date.now(),...e};try{let n=t?new CustomEvent("pds:config-changed",{detail:r}):new Event("pds:config-changed");h.dispatchEvent(n)}catch{}if(typeof document<"u")if(t){let n={detail:r,bubbles:!0,composed:!0};try{document.dispatchEvent(new CustomEvent("pds:config-changed",n))}catch{}}else try{document.dispatchEvent(new Event("pds:config-changed"))}catch{}}var sr="pure-ds-theme",me=null,Ue=null;function dr(e){try{if(typeof document>"u")return;let t="light";e?e==="system"?t=typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":t=e:t=typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",document.documentElement.setAttribute("data-theme",t)}catch{}}function pr(e){try{if(me&&Ue){try{typeof me.removeEventListener=="function"?me.removeEventListener("change",Ue):typeof me.removeListener=="function"&&me.removeListener(Ue)}catch{}me=null,Ue=null}if(e==="system"&&typeof window<"u"&&window.matchMedia){let t=window.matchMedia("(prefers-color-scheme: dark)"),r=n=>{let o=n?.matches===void 0?t.matches:n.matches;try{let a=o?"dark":"light";document.documentElement.setAttribute("data-theme",a),h.dispatchEvent(new CustomEvent("pds:theme:changed",{detail:{theme:a,source:"system"}}))}catch{}};me=t,Ue=r,typeof t.addEventListener=="function"?t.addEventListener("change",r):typeof t.addListener=="function"&&t.addListener(r)}}catch{}}var Ra=Object.getOwnPropertyDescriptor(h,"theme");Ra||Object.defineProperty(h,"theme",{get(){try{return typeof window>"u"?null:localStorage.getItem(sr)||null}catch{return null}},set(e){try{if(typeof window>"u")return;let t=h.currentConfig?.design||null,r=Le(e);if(t&&!ge(t,r)){let n=t?.name||h.currentPreset?.name||h.currentConfig?.preset||"current preset";h.log("warn",`PDS theme "${r}" not supported by preset "${n}".`),h.dispatchEvent(new CustomEvent("pds:theme:blocked",{detail:{theme:e,resolvedTheme:r,preset:n}}));return}e==null?localStorage.removeItem(sr):localStorage.setItem(sr,e),dr(e),pr(e),h.dispatchEvent(new CustomEvent("pds:theme:changed",{detail:{theme:e,source:"api"}}))}catch{}}});h.defaultEnhancers=[];async function _a(e){h.initializing=!0;try{let t=e&&e.mode||"live",{mode:r,...n}=e||{};h.mode=t,h.logHandler=typeof n?.log=="function"?n.log:null,h.currentConfig=cr(n);let o=n&&typeof n.localization=="object"&&n.localization?n.localization:null;o?(await qe(),St(o)):St(null);let a;if(t==="static")a=await Fa(n);else{let{localization:s,...p}=n||{},c=ze(p,{resolvePublicAssetURL:ke}),d=p?.managerURL||p?.public?.managerURL||p?.manager?.url||new URL("core/pds-manager.js",c).href||new URL("./pds-manager.js",import.meta.url).href,{startLive:l}=await import(d);a=await l(h,p,{emitReady:kn,emitConfigChanged:Sn,applyResolvedTheme:dr,setupSystemListenerIfNeeded:pr})}h.compiled=cr(a?.config||null);let i=h?.compiled?.design?.icons?.externalPath||"/assets/img/icons/";return h.log("info",`startup ready; external icon path: ${i}`),a}finally{h.initializing=!1}}h.start=_a;async function Fa(e){if(!e||typeof e!="object")throw new Error("PDS.start({ mode: 'static', ... }) requires a valid configuration object");let t=e.applyGlobalStyles??!0,r=e.manageTheme??!0,n=e.themeStorageKey??"pure-ds-theme",o=e.staticPaths??{},a=ze(e,{resolvePublicAssetURL:ke}),i=e&&e.autoDefine||null,s;i&&i.baseURL?s=Se($e(i.baseURL,{preferModule:!1})):s=`${a}components/`;let p=i&&Array.isArray(i.predefine)&&i.predefine||[],c=i&&typeof i.mapper=="function"&&i.mapper||null;try{at(h);let{resolvedTheme:d}=it({manageTheme:r,themeStorageKey:n,applyResolvedTheme:dr,setupSystemListenerIfNeeded:pr}),l=await Aa(a,e),u=Array.isArray(e?.enhancers)?e.enhancers:e?.enhancers&&typeof e.enhancers=="object"?Object.values(e.enhancers):[],g=l?.config?{...l.config,...e,design:e?.design||l.config.design,preset:e?.preset||l.config.preset}:{...e},m={tokens:`${a}styles/pds-tokens.css.js`,primitives:`${a}styles/pds-primitives.css.js`,components:`${a}styles/pds-components.css.js`,utilities:`${a}styles/pds-utilities.css.js`,styles:`${a}styles/pds-styles.css.js`},b=l?.paths||{};if(o={...m,...b,...o},h.registry.setStaticMode(o),t&&typeof document<"u")try{let k=await h.registry.getStylesheet("styles");if(k){k._pds=!0;let v=(document.adoptedStyleSheets||[]).filter($=>$._pds!==!0);document.adoptedStyleSheets=[...v,k],Sn({mode:"static",source:"static:styles-applied"})}}catch(k){cn.call(h,"warn","Failed to apply static styles:",k)}let f=null,y=[];try{let k=await Ea(),v=await st({autoDefineBaseURL:s,autoDefinePreload:p,autoDefineMapper:c,enhancers:u,autoDefineOverrides:i||null,autoDefinePreferModule:!(i&&i.baseURL)},{baseEnhancers:k});f=v.autoDefiner,y=v.mergedEnhancers||[]}catch(k){cn.call(h,"error","\u274C Failed to initialize AutoDefiner/Enhancers (static):",k)}return h.compiled=cr({mode:"static",...g,theme:d,enhancers:y}),kn({mode:"static",config:g,theme:d,autoDefiner:f}),{config:g,theme:d,autoDefiner:f}}catch(d){throw h.dispatchEvent(new CustomEvent("pds:error",{detail:{error:d}})),d}}var Pa="src/js/pds-live-manager/tailwind-conversion-rules.json",Lt=["base","sm","md","lg","xl","2xl"];function Na(e={}){let t=Array.isArray(e.ignoredPatterns)?e.ignoredPatterns.map(n=>({...n,pattern:n?.pattern instanceof RegExp?n.pattern:new RegExp(String(n?.pattern||""))})):[],r=Array.isArray(e.nonPdsClassPatterns)?e.nonPdsClassPatterns.map(n=>n instanceof RegExp?n:new RegExp(String(n||""))):[];return{...e,ignoredPatterns:t,nonPdsClassPatterns:r}}var G=Na(ln),$n=G.version||"tw2pds-layout-v4",Ia=new Map(G.directMappings.map(e=>[e.tw,e])),ur=new Map(Object.entries(G.gapScaleMap||{})),zn=new Map(Object.entries(G.maxWidthMap||{})),ja=G.nonPdsClassPatterns||[],Oa=new Set(G.neverFallbackTags||[]),Ba={...G.importStyleRules||{}},Da=G.tailwindSizeScale||{},gr=Array.isArray(G.tailwindShadeScale)?G.tailwindShadeScale.map(e=>String(e)).filter(Boolean):["50","100","200","300","400","500","600","700","800","900"],Ln=gr.includes(String(G.defaultTailwindShade||""))?String(G.defaultTailwindShade):"500",zt=1.2,Wa=["container","grid","flex","gap","space","items","justify","content","place","self","col","row","w","h","min","max","p","m","rounded","border","ring","outline","shadow","bg","text","font","leading","tracking","uppercase","lowercase","capitalize","overflow","whitespace","truncate","object","aspect","opacity","blur","backdrop","transition","duration","ease","delay","animate","hidden","block","inline","absolute","relative","fixed","sticky","size"];function Cn(e="",t=""){if(!e||!t)return e;let r=new RegExp(`\\s${t}\\s*=\\s*("[^"]*"|'[^']*'|[^\\s>]+)`,"gi");return String(e).replace(r,"")}function Ha(e="",t=null){let r=String(e||""),n=0;return r=r.replace(/<label([^>]*?)\sfor\s*=\s*(["'])([^"']+)\2([^>]*)>([\s\S]*?)<\/label>\s*<(input)([^>]*?)\sid\s*=\s*(["'])([^"']+)\8([^>]*?)>/gi,(o,a,i,s,p,c,d,l,u,g,m)=>{if(s!==g)return o;let b=Cn(`${a||""}${p||""}`,"for"),f=`<${d}${l||""} id="${g}"${m||""}>`;return n+=1,`<label${b}>${c}${f}</label>`}),r=r.replace(/<label([^>]*?)\sfor\s*=\s*(["'])([^"']+)\2([^>]*)>([\s\S]*?)<\/label>\s*<(select|textarea)([^>]*?)\sid\s*=\s*(["'])([^"']+)\8([^>]*)>([\s\S]*?)<\/\6>/gi,(o,a,i,s,p,c,d,l,u,g,m,b)=>{if(s!==g)return o;let f=Cn(`${a||""}${p||""}`,"for"),y=`<${d}${l||""} id="${g}"${m||""}>${b}</${d}>`;return n+=1,`<label${f}>${c}${y}</label>`}),t&&n>0&&(t.labelNestingCount+=n,j(t,`Nested ${n} label/control pairs.`),R(t,"intent.form.nested-label")),r}function Ua(e="",t="base"){let r=String(e||"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"rule";return`import-${t&&t!=="base"?`${t}-`:""}${r}`}function fe(e,t,r,n="base",o=""){if(!e||!t||!r)return"";let a=Ua(t,n);if(o){let i=`${n}|${o}`;e.importPseudoStyles.has(i)||e.importPseudoStyles.set(i,new Map),e.importPseudoStyles.get(i).set(a,r)}else n==="base"?e.importBaseStyles.set(a,r):(e.importResponsiveStyles.has(n)||e.importResponsiveStyles.set(n,new Map),e.importResponsiveStyles.get(n).set(a,r));return e.importedStyleCount+=1,a}function Te(e=""){return String(e||"").trim().replace(/_/g," ")}function Ae(e=""){return!e||/[;{}]/.test(e)?!1:/^[-#(),.%/\sa-zA-Z0-9]+$/.test(e)}function Ke(e=""){let t=String(e||"").trim();if(!t)return null;let r=t.match(/^\[([^\]]+)\]$/);if(r){let n=Te(r[1]);return Ae(n)?n:null}return Da[t]||null}function qa(e=""){let t=Number(e);if(!Number.isFinite(t))return Ln;let r=String(t);return gr.includes(r)?r:gr.reduce((n,o)=>{let a=Math.abs(Number(n)-t);return Math.abs(Number(o)-t)<a?o:n},Ln)}function Ye(e="",t="500"){let r=String(e||"").toLowerCase(),n=qa(t);return["blue","sky","indigo","cyan"].includes(r)?`var(--color-primary-${n})`:["purple","violet","fuchsia"].includes(r)?`var(--color-accent-${n})`:["green","emerald","lime","teal"].includes(r)?`var(--color-success-${n})`:["yellow","amber","warning"].includes(r)?`var(--color-warning-${n})`:["red","rose","pink","orange"].includes(r)?`var(--color-danger-${n})`:["slate","gray","zinc","neutral","stone"].includes(r)?`var(--color-gray-${n})`:""}function Mn(e=""){let t=Te(e);return Ae(t)&&(/^#(?:[0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(t)||/^(?:rgb|hsl)a?\([^)]*\)$/.test(t))?t:""}function ae(e=""){return String(e||"").split(/\s+/).map(t=>t.trim()).filter(Boolean)}function Ga(e="",t=""){if(!t)return e;let r=String(e||""),n=r.match(/\sclass\s*=\s*(["'])(.*?)\1/i);if(!n)return`${r} class="${t}"`;let o=n[1]||'"',a=ae(n[2]);a.includes(t)||a.push(t);let i=` class=${o}${a.join(" ")}${o}`;return r.replace(n[0],i)}function Va(e="",t=""){return t?new RegExp(`\\s${t}\\s*=`,"i").test(String(e||"")):!1}function Ka(e=""){let t=String(e||"").replace(/[-_]+/g," ").trim();return t?t.replace(/(^|\s)([a-z])/g,(r,n,o)=>`${n}${o.toUpperCase()}`):"Icon button"}function Ja(e="",t=null){let r=String(e||"");return r&&r.replace(/<(button|a)([^>]*)>\s*(<pds-icon\b[^>]*><\/pds-icon>)\s*<\/\1>/gi,(n,o,a,i)=>{let s=Ga(a,"icon-only");if(!Va(s,"aria-label")){let p=String(i).match(/\sicon\s*=\s*(["'])(.*?)\1/i),c=p?String(p[2]||""):"",d=Ka(c);s+=` aria-label="${d}"`}return t&&(t.intentHits+=1,R(t,"intent.component.button.icon-only-markup")),`<${o}${s}>${i}</${o}>`})}function Ya(e="",t=null){let r=String(e||"");if(!r)return r;let n=0,o=r.replace(/<p([^>]*?)>([\s\S]*?)<\/p>/gi,(a,i,s)=>{let p=String(i||"").match(/\sclass\s*=\s*(["'])(.*?)\1/i);if(!p)return a;let c=ae(p[2]||""),d=c.some(u=>/^import-text-/.test(String(u||""))),l=c.includes("text-muted")||c.some(u=>/^import-font-/.test(String(u||"")));return!d||!l?a:(n+=1,`<div${i}>${s}</div>`)});return t&&n>0&&(t.intentHits+=1,R(t,"intent.typography.metric-paragraph-to-div"),j(t,`Normalized ${n} metric text paragraph tag(s) to div.`)),o}function Pn(e="",t=""){if(!t)return e;let r=String(e||""),n=r.match(/\sclass\s*=\s*(["'])(.*?)\1/i);if(!n)return r;let o=n[1]||'"',a=ae(n[2]).filter(s=>s!==t);if(a.length===0)return r.replace(n[0],"");let i=` class=${o}${a.join(" ")}${o}`;return r.replace(n[0],i)}function Za(e="",t=r=>r){let r=String(e||""),n=r.match(/\sclass\s*=\s*(["'])(.*?)\1/i);if(!n)return r;let o=n[1]||'"',a=ae(n[2]),i=t(Array.from(a)),s=Array.isArray(i)?i.filter(Boolean):a;if(s.length===0)return r.replace(n[0],"");let p=` class=${o}${s.join(" ")}${o}`;return r.replace(n[0],p)}function Xa(e="",t=null){let r=String(e||"");if(!r)return r;let n=0,o=r.replace(/<(div|section|article|aside)([^>]*)>\s*<(p|div)([^>]*)>[\s\S]*?<\/\3>\s*<(p|div)([^>]*)>[\s\S]*?<\/\5>\s*<\/\1>/gi,(a,i,s,p,c,d,l)=>{let u=String(s||"").match(/\sclass\s*=\s*(["'])(.*?)\1/i);if(!u||!ae(u[2]).includes("stack-sm"))return a;let m=String(c||"").match(/\sclass\s*=\s*(["'])(.*?)\1/i),b=String(l||"").match(/\sclass\s*=\s*(["'])(.*?)\1/i);if(!m||!b)return a;let f=ae(m[2]),y=ae(b[2]);if(!(f.some($=>/^import-text-/.test(String($||"")))&&y.some($=>/^import-text-/.test(String($||"")))))return a;let v=Pn(s,"stack-sm");return n+=1,a.replace(`<${i}${s}>`,`<${i}${v}>`)});return t&&n>0&&(t.intentHits+=1,R(t,"intent.typography.metric-pair-no-stack"),j(t,`Removed stack-sm from ${n} metric text pair container(s).`)),o}function Qa(e={}){if(!e||typeof e!="object")return{};let t=e.typography;if(t&&typeof t=="object")return t;let r=e.design?.typography;return r&&typeof r=="object"?r:{}}function ei(e={}){let t=Qa(e),r=Number(t.fontScale);return Number.isFinite(r)?Math.max(1,Math.min(2,r)):zt}function ti(e="",t=zt){let n={"4xl":1,"3xl":2,"2xl":3,xl:4}[e];if(!n)return"";let o=Number.isFinite(Number(t))?Math.max(1,Math.min(2,Number(t))):zt,a=Math.max(-1,Math.min(1,Math.round((o-zt)/.25))),i=n-a;return i<1?"h1":i>4?"":`h${i}`}function ri(e="",t=null,r={}){let n=String(e||"");if(!n)return n;let o=ei(r.config||{}),a=0,i=0,s=n.replace(/<(p|div|span)([^>]*)>([\s\S]*?)<\/\1>/gi,(p,c,d,l)=>{let u=String(d||"").match(/\sclass\s*=\s*(["'])(.*?)\1/i);if(!u)return p;let g=ae(u[2]);if(!g.includes("import-font-bold"))return p;let b=g.find($=>/^import-text-(?:4xl|3xl|2xl|xl)$/.test(String($||"")))||"",f=b.match(/^import-text-(4xl|3xl|2xl|xl)$/);if(f){let $=ti(f[1],o);if(!$)return p;let A=Za(d,T=>T.filter(F=>F!=="import-font-bold"&&F!==b));return a+=1,`<${$}${A}>${l}</${$}>`}let y=/<\/?(?:div|p|section|article|aside|main|header|footer|ul|ol|li|table|tr|td|th|h[1-6])\b/i.test(l),k=/<\/?(?:strong|b)\b/i.test(l);if(y||k)return p;let v=Pn(d,"import-font-bold");return i+=1,`<${c}${v}><strong>${l}</strong></${c}>`});return t&&(a>0&&(t.intentHits+=1,R(t,"intent.typography.semantic-heading-from-scale"),j(t,`Converted ${a} bold display text node(s) to semantic heading tags (fontScale=${Number(o).toFixed(2)}).`)),i>0&&(t.intentHits+=1,R(t,"intent.typography.bold-to-strong"),j(t,`Wrapped ${i} bold text node(s) in strong tags.`))),s}function ni(e=[]){if(!Array.isArray(e)||e.length===0)return"";let t=e.filter(n=>!Lt.includes(n));if(t.length===0||t.length>1)return"";let r=t[0];return["hover","focus","active"].includes(r)?r:""}function En(e,t="base",r=[]){let n=ni(r),o=Ba[e];if(o)return{declaration:o,breakpoint:t,pseudo:n,ruleId:"fallback.import-style"};let a=String(e).match(/^gap-(\d+)$/);if(a){let x={0:"var(--spacing-0)",1:"var(--spacing-1)",2:"var(--spacing-2)",3:"var(--spacing-3)",4:"var(--spacing-4)",5:"var(--spacing-5)",6:"var(--spacing-6)",7:"var(--spacing-7)",8:"var(--spacing-8)",10:"var(--spacing-10)",12:"var(--spacing-12)"},S=Number(a[1]);if(x[S])return{declaration:`gap:${x[S]}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.gap-scale"}}let i=String(e).match(/^(mt|mb|my)-(.+)$/);if(i){let x=i[1],S=i[2],C=Ke(S);if(C){let E="";return x==="mt"?E=`margin-top:${C}`:x==="mb"?E=`margin-bottom:${C}`:E=`margin-top:${C};margin-bottom:${C}`,{declaration:E,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.margin-scale"}}}let s=String(e).match(/^min-w-\[([^\]]+)\]$/);if(s){let x=Te(s[1]);if(Ae(x))return{declaration:`min-width:${x}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.min-width-arbitrary"}}let p=String(e).match(/^max-w-\[([^\]]+)\]$/);if(p){let x=Te(p[1]);if(Ae(x))return{declaration:`max-width:${x}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.max-width-arbitrary"}}let c=String(e).match(/^min-h-\[([^\]]+)\]$/);if(c){let x=Te(c[1]);if(Ae(x))return{declaration:`min-height:${x}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.min-height-arbitrary"}}let d=String(e).match(/^grid-rows-\[([^\]]+)\]$/);if(d){let x=Te(d[1]);if(Ae(x))return{declaration:`grid-template-rows:${x}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.grid-rows-arbitrary"}}let l=String(e).match(/^size-(.+)$/);if(l){let x=Ke(l[1]);if(x)return{declaration:`width:${x};height:${x}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.size-scale"}}let u=String(e).match(/^w-(.+)$/);if(u){let x=Ke(u[1]);if(x)return{declaration:`width:${x}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.width-scale"}}let g=String(e).match(/^h-(.+)$/);if(g){let x=Ke(g[1]);if(x)return{declaration:`height:${x}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.height-scale"}}let m={xs:"var(--font-size-xs)",sm:"var(--font-size-sm)",base:"var(--font-size-md)",lg:"var(--font-size-lg)",xl:"var(--font-size-xl)","2xl":"var(--font-size-2xl)","3xl":"var(--font-size-3xl)","4xl":"var(--font-size-4xl)"},b=String(e).match(/^text-(xs|sm|base|lg|xl|2xl|3xl|4xl)$/);if(b)return{declaration:`font-size:${m[b[1]]}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.text-size"};let f={normal:"400",medium:"500",semibold:"600",bold:"700",extrabold:"800",black:"900"},y=String(e).match(/^font-(normal|medium|semibold|bold|extrabold|black)$/);if(y)return{declaration:`font-weight:${f[y[1]]}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.font-weight"};let k={none:"1",tight:"1.25",snug:"1.375",normal:"1.5",relaxed:"1.625",loose:"2"},v=String(e).match(/^leading-(none|tight|snug|normal|relaxed|loose)$/);if(v)return{declaration:`line-height:${k[v[1]]}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.line-height"};let $={tighter:"-0.05em",tight:"-0.025em",normal:"0em",wide:"0.025em",wider:"0.05em",widest:"0.1em"},A=String(e).match(/^tracking-(tighter|tight|normal|wide|wider|widest)$/);if(A)return{declaration:`letter-spacing:${$[A[1]]}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.tracking"};let T=String(e).match(/^bg-black\/(\d{1,3})$/);if(T)return{declaration:`background-color:color-mix(in srgb, var(--color-gray-900) ${Math.max(0,Math.min(100,Number(T[1])))}%, transparent)`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.overlay-alpha"};if(e==="text-white")return{declaration:"color:var(--color-gray-50)",breakpoint:t,pseudo:n,ruleId:"fallback.import-style.text-inverse"};let F=String(e).match(/^bg-(primary|secondary|accent)$/);if(F){let S={primary:"var(--color-primary-fill)",secondary:"var(--color-gray-500)",accent:"var(--color-accent-500)"}[F[1]];if(S)return{declaration:`background-color:${S}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.bg-semantic"}}let I=String(e).match(/^bg-([a-z]+)-(\d{2,3})$/);if(I){let x=Ye(I[1],I[2]);if(x)return{declaration:`background-color:${x}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.bg-tokenized"}}let L=String(e).match(/^bg-\[([^\]]+)\]$/);if(L){let x=Mn(L[1]);if(x)return{declaration:`background-color:${x}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.bg-arbitrary"}}let M=String(e).match(/^text-([a-z]+)-(\d{2,3})$/);if(M){let x=Ye(M[1],M[2]);if(x)return{declaration:`color:${x}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.text-tokenized"}}let N=String(e).match(/^text-\[([^\]]+)\]$/);if(N){let x=Mn(N[1]);if(x)return{declaration:`color:${x}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.text-arbitrary"}}let z=String(e).match(/^rounded(?:-([trbl]{1,2}))?(?:-(none|xs|sm|md|lg|xl|2xl|3xl|full))?$/);if(z){let x=z[1]||"",S=z[2]||"sm",C=S==="none"?"0":`var(--radius-${S})`,E={t:["top-left","top-right"],b:["bottom-left","bottom-right"],l:["top-left","bottom-left"],r:["top-right","bottom-right"],tl:["top-left"],tr:["top-right"],bl:["bottom-left"],br:["bottom-right"]};if(!x)return{declaration:`border-radius:${C}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.rounded"};let B=(E[x]||[]).map(K=>`border-${K}-radius:${C}`).join(";");if(B)return{declaration:B,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.rounded"}}return null}function $t(e,t){return typeof e=="number"&&Number.isFinite(e)?`${e}px`:typeof e=="string"&&e.trim()?e.trim():`${t}px`}function oi(e={}){let r=(e?.design&&typeof e.design=="object"?e.design:e)?.layout?.breakpoints||{};return{sm:$t(r.sm,640),md:$t(r.md,768),lg:$t(r.lg,1024),xl:$t(r.xl,1280)}}function ai(e,t){let r=Array.from(e.importBaseStyles.entries()).map(([a,i])=>`.${a}{${i};}`),n=[];for(let[a,i]of e.importResponsiveStyles.entries()){let s=t?.[a];if(!s||!i?.size)continue;let p=Array.from(i.entries()).map(([c,d])=>`.${c}{${d};}`).join(`
3905
+ `;try{if(!document.adoptedStyleSheets.some(w=>w._pdsFouc)){let w=new CSSStyleSheet;w.replaceSync(g),w._pdsFouc=!0,document.adoptedStyleSheets=[w,...document.adoptedStyleSheets]}}catch(f){if(t.log("warn","Constructable stylesheets not supported, using <style> tag fallback:",f),!document.head.querySelector("style[data-pds-fouc]")){let b=document.createElement("style");b.setAttribute("data-pds-fouc",""),b.textContent=g,document.head.insertBefore(b,document.head.firstChild)}}}let s=e.applyGlobalStyles??!0,d=e.manageTheme??!0,c=e.themeStorageKey??"pure-ds-theme",p=e.preloadStyles??!1,l=e.criticalLayers??["tokens","primitives"],u=e&&e.autoDefine||null;try{let{resolvedTheme:g}=it({manageTheme:d,themeStorageKey:c,applyResolvedTheme:o,setupSystemListenerIfNeeded:a}),f=Zt(e,{},{presets:Q,defaultLog:Ot,validateDesignConfig:Nt,validateInitConfig:jt});if(d&&!ge(f.generatorConfig.design,g)){let z=f.presetInfo?.name||f.generatorConfig?.design?.name||f.generatorConfig?.preset||"current preset";t.log("warn",`PDS theme "${g}" not supported by preset "${z}".`)}let w=f.enhancers,{log:b,...m}=f.generatorConfig,y=ut(m);y.log=b,d&&(y.theme=g);let v=new Z(y);if(y.design?.typography)try{await Jt(y.design.typography)}catch(z){y?.log?.("warn","Failed to load some fonts from Google Fonts:",z)}if(p&&typeof window<"u"&&document.head)try{let z=l.map(M=>{try{return v.css?.[M]||""}catch(P){return y?.log?.("warn",`Failed to generate critical CSS for layer "${M}":`,P),""}}).filter(M=>M.trim()).join(`
3906
+ `);if(z){let M=document.head.querySelector("style[data-pds-critical]");M&&M.remove();let P=document.createElement("style");P.setAttribute("data-pds-critical",""),P.textContent=z;let C=document.head.querySelector('meta[charset], meta[name="viewport"]');C?C.parentNode.insertBefore(P,C.nextSibling):document.head.insertBefore(P,document.head.firstChild)}}catch(z){y?.log?.("warn","Failed to preload critical styles:",z)}t.registry.setLiveMode(),f.presetInfo?.name?y?.log?.("log",`PDS live with preset "${f.presetInfo.name}"`):y?.log?.("log","PDS live with custom config"),s&&(t.applyStyles?.(Z.instance),typeof window<"u"&&setTimeout(()=>{let z=document.head.querySelector("style[data-pds-critical]");z&&z.remove();let M=document.head.querySelector("style[data-pds-preload]");M&&M.remove();let P=document.getElementById("pds-runtime-stylesheet");P&&P.remove()},100));let h=Le(e,{resolvePublicAssetURL:ke}),$;u&&u.baseURL?$=Se($e(u.baseURL,{preferModule:!1})):$=`${h}components/`;let A=null,T=[];try{let z=await st({autoDefineBaseURL:$,autoDefinePreload:u&&Array.isArray(u.predefine)&&u.predefine||[],autoDefineMapper:u&&typeof u.mapper=="function"&&u.mapper||null,enhancers:w,autoDefineOverrides:u||null,autoDefinePreferModule:!(u&&u.baseURL)},{baseEnhancers:rt});A=z.autoDefiner,T=z.mergedEnhancers||[]}catch(z){y?.log?.("error","\u274C Failed to initialize AutoDefiner/Enhancers:",z)}let I=v?.options||y;if(t.compiled=en({mode:"live",...I,theme:g,enhancers:T}),t.configEditorMetadata=je(f.generatorConfig.design),t.configFormSchema=be(f.generatorConfig.design),typeof n=="function"&&n({mode:"live",source:"live:config-applied",preset:f.generatorConfig.preset}),typeof document<"u")try{e?.liveEdit?setTimeout(()=>{aa()},0):oa()}catch(z){y?.log?.("warn","Live editor toggle failed to start:",z)}return r({mode:"live",generator:v,config:I,theme:g,autoDefiner:A}),{generator:v,config:I,theme:g,autoDefiner:A}}catch(g){throw t.dispatchEvent(new CustomEvent("pds:error",{detail:{error:g}})),g}}function pa(t){let e=Number(t);return Number.isFinite(e)?Math.max(0,Math.min(1,e)):.5}function ua(t){return Array.isArray(t)?t.map(e=>e?{severity:String(e.severity||"info").toLowerCase(),message:String(e.message||""),path:e.path?String(e.path):""}:null).filter(e=>e&&e.message):[]}function H(t={}){let e=String(t.source||"unknown"),r=String(t.type||"generic"),n=pa(t.confidence),o=ua(t.issues),a=t.designPatch&&typeof t.designPatch=="object"?t.designPatch:{},i=t.template&&typeof t.template=="object"?t.template:null;return{source:e,type:r,confidence:n,issues:o,designPatch:a,template:i,meta:t.meta&&typeof t.meta=="object"?t.meta:{}}}function ga(t){return!!(t&&typeof t=="object"&&"source"in t&&"type"in t&&"confidence"in t&&"issues"in t&&"designPatch"in t)}var fa="../templates/templates.json",nn="/assets/pds/templates/templates.json",ma=["public","assets","pds","templates","templates.json"],ha=["..","..","..","public","assets","pds","templates","templates.json"],gt=null;function on(){return!!(typeof process<"u"&&process?.versions?.node)}function ba(t={}){return{id:String(t.id||"").trim(),name:String(t.name||t.id||"Template").trim(),description:String(t.description||"").trim(),icon:String(t.icon||"layout").trim(),file:String(t.file||"").trim(),tags:Array.isArray(t.tags)?t.tags.map(e=>String(e)):[]}}function ft(t={},e={}){let n=(Array.isArray(t)?t:Array.isArray(t?.templates)?t.templates:[]).map(ba).filter(o=>o.id&&o.file);return{version:t?.version||"1",templates:n,__catalogURL:e.catalogURL||null,__catalogFilePath:e.catalogFilePath||null}}async function ya(t={}){let r=[t.catalogURL||globalThis?.PDS?.currentConfig?.templateCatalogURL,fa,nn].filter(Boolean);for(let n of r)try{let o=new URL(n,import.meta.url).href,a=await fetch(o,{credentials:"same-origin"});if(!a.ok)continue;let i=await a.json();return ft(i,{catalogURL:o})}catch{}return ft({templates:[]})}async function va(t={}){let e="node:fs/promises",r="node:path",n="node:url",[{readFile:o},a,{fileURLToPath:i}]=await Promise.all([import(e),import(r),import(n)]),s=[];t.catalogPath&&s.push(a.resolve(t.catalogPath)),s.push(a.resolve(process.cwd(),...ma));let d=a.dirname(i(import.meta.url));s.push(a.resolve(d,...ha));for(let c of s)try{let p=await o(c,"utf8"),l=JSON.parse(p);return ft(l,{catalogFilePath:c})}catch{}return ft({templates:[]})}async function xa(t,e){if(!t?.file)return"";if(!on()){let d=e?.__catalogURL||nn,c=new URL(t.file,d).href,p=await fetch(c,{credentials:"same-origin"});if(!p.ok)throw new Error(`Template file not found: ${t.file}`);return(await p.text()).trim()}let r="node:fs/promises",n="node:path",[{readFile:o},a]=await Promise.all([import(r),import(n)]),i=e?.__catalogFilePath?a.dirname(e.__catalogFilePath):a.resolve(process.cwd(),"public","assets","pds","templates"),s=a.resolve(i,t.file);return(await o(s,"utf8")).trim()}async function mt(t={}){return gt&&!t.forceReload||(gt=on()?await va(t):await ya(t)),gt}async function an(t={}){return(await mt(t)).templates.map(({id:r,name:n,description:o,icon:a,file:i,tags:s})=>({id:r,name:n,description:o,icon:a,file:i,tags:s}))}async function wa(t,e={}){let r=await mt(e),n=r.templates.find(a=>a.id===t)||null;if(!n)return null;let o=await xa(n,r);return{...n,html:o}}async function sn(t,e={}){let r=await wa(t,e);return r?H({source:"template",type:"template",confidence:1,template:{id:r.id,name:r.name,html:r.html,icon:r.icon,description:r.description}}):H({source:"template",type:"template",confidence:0,issues:[{severity:"error",message:`Unknown template: ${t}`}]})}var ln={version:"tw2pds-layout-v4",summary:"Deterministic Tailwind\u2192PDS conversion rules focused on layout intent, semantic primitive mapping, and richer import-* fallback coverage.",governance:[{id:"layout.utilities.grid",controls:["grid","grid-cols-*","grid-auto-*"],note:"When false, grid mappings are skipped."},{id:"layout.utilities.flex",controls:["flex","flex-*","items-*","justify-*","grow"],note:"When false, flex mappings are skipped."},{id:"layout.utilities.spacing",controls:["gap-*","stack-*"],note:"When false, spacing mappings are skipped."},{id:"layout.utilities.container",controls:["container","max-w-*"],note:"When false, container mappings are skipped."}],nonPdsClassPatterns:["^group(?:[/:].*)?$","^layout-container$"],neverFallbackTags:["table","thead","tbody","tfoot","tr","th","td","caption","colgroup","col"],directMappings:[{id:"layout.flex.base",tw:"flex",pds:["flex"],gate:"flex"},{id:"layout.flex.inline",tw:"inline-flex",pds:["flex"],gate:"flex"},{id:"layout.flex.row",tw:"flex-row",pds:["flex-row"],gate:"flex"},{id:"layout.flex.col",tw:"flex-col",pds:["flex-col"],gate:"flex"},{id:"layout.flex.wrap",tw:"flex-wrap",pds:["flex-wrap"],gate:"flex"},{id:"layout.flex.grow",tw:"grow",pds:["grow"],gate:"flex"},{id:"layout.flex.grow.tw",tw:"flex-grow",pds:["grow"],gate:"flex"},{id:"layout.flex.grow1",tw:"flex-1",pds:["grow"],gate:"flex"},{id:"layout.items.start",tw:"items-start",pds:["items-start"],gate:"flex"},{id:"layout.items.center",tw:"items-center",pds:["items-center"],gate:"flex"},{id:"layout.items.end",tw:"items-end",pds:["items-end"],gate:"flex"},{id:"layout.items.stretch",tw:"items-stretch",pds:["items-stretch"],gate:"flex"},{id:"layout.items.baseline",tw:"items-baseline",pds:["items-baseline"],gate:"flex"},{id:"layout.justify.start",tw:"justify-start",pds:["justify-start"],gate:"flex"},{id:"layout.justify.center",tw:"justify-center",pds:["justify-center"],gate:"flex"},{id:"layout.justify.end",tw:"justify-end",pds:["justify-end"],gate:"flex"},{id:"layout.justify.between",tw:"justify-between",pds:["justify-between"],gate:"flex"},{id:"layout.justify.around",tw:"justify-around",pds:["justify-around"],gate:"flex"},{id:"layout.justify.evenly",tw:"justify-evenly",pds:["justify-evenly"],gate:"flex"},{id:"layout.grid.base",tw:"grid",pds:["grid"],gate:"grid"},{id:"layout.grid.cols.1",tw:"grid-cols-1",pds:["grid-cols-1"],gate:"grid"},{id:"layout.grid.cols.2",tw:"grid-cols-2",pds:["grid-cols-2"],gate:"grid"},{id:"layout.grid.cols.3",tw:"grid-cols-3",pds:["grid-cols-3"],gate:"grid"},{id:"layout.grid.cols.4",tw:"grid-cols-4",pds:["grid-cols-4"],gate:"grid"},{id:"layout.grid.cols.6",tw:"grid-cols-6",pds:["grid-cols-6"],gate:"grid"},{id:"layout.container",tw:"container",pds:["container"],gate:"container"},{id:"intent.surface.shadow",tw:"shadow",pds:["surface-elevated"]},{id:"intent.surface.shadow-md",tw:"shadow-md",pds:["surface-elevated"]},{id:"intent.surface.shadow-lg",tw:"shadow-lg",pds:["surface-elevated"]},{id:"intent.surface.base",tw:"bg-white",pds:["surface-base"]},{id:"typography.align.center",tw:"text-center",pds:["text-center"]},{id:"typography.align.left",tw:"text-left",pds:["text-left"]},{id:"typography.align.right",tw:"text-right",pds:["text-right"]},{id:"typography.text.muted.gray500",tw:"text-gray-500",pds:["text-muted"]},{id:"typography.text.muted.slate500",tw:"text-slate-500",pds:["text-muted"]}],ignoredPatterns:[{id:"style.color",pattern:"^(?:text|from|to|via|decoration|accent|caret)-|^bg-(?!cover$|center$|no-repeat$)",reason:"Visual style token skipped in favor of semantic PDS styling."},{id:"style.radius-border-shadow",pattern:"^(?:rounded|ring|border|shadow|outline)-?",reason:"Surface/shape inferred at primitive level."},{id:"style.typography",pattern:"^(?:font|leading|tracking|uppercase|lowercase|capitalize)-?",reason:"Typography atomic utilities are skipped."},{id:"style.effects",pattern:"^(?:opacity|blur|backdrop|drop-shadow|mix-blend|filter)-",reason:"Visual effects skipped unless mapped to a PDS utility."},{id:"style.transitions",pattern:"^(?:transition|duration|ease|delay|animate)-",reason:"Motion is system-defined in PDS."},{id:"style.spacing.atomic",pattern:"^(?:p|px|py|pt|pb|pl|pr|m|mx|my|mt|mb|ml|mr)-",reason:"Atomic spacing skipped; structural spacing intent is mapped."},{id:"style.positioning.atomic",pattern:"^(?:absolute|relative|fixed|sticky|inset(?:-[xy])?|top|right|bottom|left|z|translate(?:-[xy])?|-translate-[xy])(?:-|$)",reason:"Atomic positioning/offset utilities are skipped so PDS primitives and layout utilities control placement."}],intentRules:[{id:"intent.layout.responsive-grid-to-auto",summary:"Collapse responsive grid-cols patterns (including base+md two-step patterns) to best-fit grid-auto-*"},{id:"intent.layout.mobile-stack",summary:"Map flex-col + md/lg:flex-row to mobile-stack"},{id:"intent.component.card",summary:"Infer card/surface classes from rounded+shadow+surface signals"},{id:"intent.component.card.normalize",summary:"Detect Tailwind card utility clusters and normalize them to PDS card and surface variants."},{id:"intent.component.button",summary:"Infer btn-primary / btn-outline / icon-only from CTA patterns"},{id:"intent.component.button.normalize",summary:"Prevents import-* style classes on button-like elements and applies PDS button variants/sizes."},{id:"intent.component.button.layout-grow",summary:"Preserve CTA row width intent on button-like elements by mapping w-full/flex-1 to grow."},{id:"intent.icon.color-preserve",summary:"Preserve icon color intent by mapping Tailwind text color utilities on icon-like elements to tokenized import-* classes."},{id:"intent.component.badge.normalize",summary:"Detects Tailwind badge/pill utility clusters and normalizes them to PDS badge primitives/variants."},{id:"intent.typography.heading-semantic",summary:"Removes Tailwind heading typography/color utilities so heading semantics and PDS defaults control typography."},{id:"intent.surface.footer-inverse",summary:"Use surface-inverse for footers with explicit background intent"},{id:"intent.typography.link-treatment",summary:"Apply minimal link treatment for hover/transition-tailwind anchors"},{id:"intent.typography.link-active-preserve",summary:"Preserve anchor text color intent (including active menu states) by mapping Tailwind text utilities to tokenized import-* classes."},{id:"intent.typography.metric-paragraph-to-div",summary:"Normalize metric display lines from paragraph tags to div tags to avoid default paragraph margins in compact stat layouts."},{id:"intent.typography.metric-pair-no-stack",summary:"When a compact metric container has two consecutive typography lines, remove stack-sm so spacing follows Tailwind preflight no-margin assumptions."},{id:"intent.typography.semantic-heading-from-scale",summary:"Map large bold typography scales (text-2xl/text-3xl/text-4xl) to semantic heading tags when possible."},{id:"intent.typography.bold-to-strong",summary:"Prefer semantic strong tags for bold inline text intent instead of utility-only font-weight classes."},{id:"intent.preflight.tailwind-runtime-detected",summary:"Detect Tailwind runtime CSS injection and translate key preflight intent"},{id:"intent.preflight.list-reset",summary:"Preserve Tailwind list-reset preflight behavior via scoped fallback class"},{id:"intent.preflight.anchor-reset",summary:"Preserve Tailwind anchor reset preflight behavior via scoped fallback class"},{id:"table.strict-tags.no-classes",summary:"Never emit classes for semantic table tags (table/thead/tbody/tfoot/tr/th/td/caption/colgroup/col)"},{id:"intent.form.nested-label",summary:"Convert sibling label+control pairs into nested labels"},{id:"fallback.import-style",summary:"Generate import-* classes + local style block for unmapped utility styles"}],gapScaleMap:{"gap-0":"gap-0","gap-1":"gap-xs","gap-2":"gap-sm","gap-3":"gap-sm","gap-4":"gap-md","gap-5":"gap-md","gap-6":"gap-lg","gap-7":"gap-lg","gap-8":"gap-xl","gap-10":"gap-xl","gap-12":"gap-xl"},maxWidthMap:{"max-w-xs":"max-w-sm","max-w-sm":"max-w-sm","max-w-md":"max-w-md","max-w-lg":"max-w-lg","max-w-xl":"max-w-xl","max-w-2xl":"max-w-xl","max-w-3xl":"max-w-xl","max-w-4xl":"max-w-xl","max-w-5xl":"max-w-xl","max-w-6xl":"max-w-xl","max-w-7xl":"max-w-xl"},tailwindSizeScale:{"0":"var(--spacing-0)","0.5":"0.125rem","1":"var(--spacing-1)","1.5":"0.375rem","2":"var(--spacing-2)","2.5":"0.625rem","3":"var(--spacing-3)","3.5":"0.875rem","4":"var(--spacing-4)","5":"var(--spacing-5)","6":"var(--spacing-6)","7":"var(--spacing-7)","8":"var(--spacing-8)","9":"var(--spacing-9)","10":"var(--spacing-10)","11":"var(--spacing-11)","12":"var(--spacing-12)","14":"3.5rem","16":"4rem","20":"5rem","24":"6rem","28":"7rem","32":"8rem","36":"9rem","40":"10rem","48":"12rem"},tailwindShadeScale:["50","100","200","300","400","500","600","700","800","900"],defaultTailwindShade:"500",importStyleRules:{"mx-auto":"margin-left:auto;margin-right:auto","ml-auto":"margin-left:auto","mr-auto":"margin-right:auto","w-full":"width:100%","w-auto":"width:auto","h-full":"height:100%","h-48":"height:12rem","h-2.5":"height:0.625rem","h-10":"height:var(--spacing-10)","h-2":"height:var(--spacing-2)","w-2":"width:var(--spacing-2)","size-8":"width:var(--spacing-8);height:var(--spacing-8)","size-10":"width:var(--spacing-10);height:var(--spacing-10)","size-full":"width:100%;height:100%","min-h-screen":"min-height:100vh","overflow-hidden":"overflow:hidden","overflow-x-hidden":"overflow-x:hidden","overflow-x-auto":"overflow-x:auto","whitespace-nowrap":"white-space:nowrap",hidden:"display:none",block:"display:block",truncate:"overflow:hidden;text-overflow:ellipsis;white-space:nowrap","justify-items-center":"justify-items:center","justify-items-start":"justify-items:start","justify-items-end":"justify-items:end","justify-items-stretch":"justify-items:stretch","grid-flow-col":"grid-auto-flow:column","aspect-square":"aspect-ratio:1 / 1","bg-center":"background-position:center","bg-cover":"background-size:cover","bg-no-repeat":"background-repeat:no-repeat","transition-colors":"transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:150ms"},importStyleDynamicRules:[{id:"fallback.import-style.gap-scale",pattern:"^gap-(\\d+)$",summary:"Converts gap scale utilities (including responsive variants like md:gap-6) to generated import-* fallback classes."},{id:"fallback.import-style.min-width-arbitrary",pattern:"^min-w-\\[[^\\]]+\\]$",summary:"Converts arbitrary min-width utilities (e.g. min-w-[600px]) to generated import-* fallback classes."},{id:"fallback.import-style.max-width-arbitrary",pattern:"^max-w-\\[[^\\]]+\\]$",summary:"Converts arbitrary max-width utilities (e.g. max-w-[480px]) to generated import-* fallback classes."},{id:"fallback.import-style.min-height-arbitrary",pattern:"^min-h-\\[[^\\]]+\\]$",summary:"Converts arbitrary min-height utilities (e.g. min-h-[180px]) to generated import-* fallback classes."},{id:"fallback.import-style.grid-rows-arbitrary",pattern:"^grid-rows-\\[[^\\]]+\\]$",summary:"Converts arbitrary grid template row utilities (e.g. grid-rows-[1fr_auto]) to generated import-* fallback classes."},{id:"fallback.import-style.size-scale",pattern:"^size-(\\[[^\\]]+\\]|[0-9.]+)$",summary:"Converts size scale/arbitrary utilities into width+height fallback declarations."},{id:"fallback.import-style.width-height-scale",pattern:"^[wh]-(\\[[^\\]]+\\]|[0-9.]+)$",summary:"Converts width/height scale and arbitrary utilities to import-* classes."},{id:"fallback.import-style.spacing",pattern:"^-?(?:p|px|py|pt|pb|pl|pr|m|mx|my|mt|mb|ml|mr)-(.+)$",summary:"Converts spacing utilities to directional padding/margin fallback declarations, including responsive variants."},{id:"fallback.import-style.text-size",pattern:"^text-(xs|sm|base|lg|xl|2xl|3xl|4xl)$",summary:"Converts common text size utilities to import-* font-size declarations."},{id:"fallback.import-style.font-weight",pattern:"^font-(normal|medium|semibold|bold|extrabold|black)$",summary:"Converts common font weight utilities to import-* font-weight declarations."},{id:"fallback.import-style.leading-tracking",pattern:"^(leading|tracking)-(none|tight|snug|normal|relaxed|loose|tighter|wide|wider|widest)$",summary:"Converts line-height and letter-spacing utilities to import-* declarations for typography fidelity."},{id:"fallback.import-style.bg-tokenized",pattern:"^bg-([a-z]+)-(\\d{2,3})$",summary:"Safeguards Tailwind background color utilities by mapping families like blue/purple/green/red to PDS semantic tokens."},{id:"fallback.import-style.bg-semantic",pattern:"^bg-(primary|secondary|accent)$",summary:"Safeguards semantic background utilities by mapping bg-primary/bg-secondary/bg-accent to PDS color tokens."},{id:"fallback.import-style.text-tokenized",pattern:"^text-([a-z]+)-(\\d{2,3})$",summary:"Safeguards Tailwind text color utilities by mapping common families to PDS semantic tokens."},{id:"fallback.import-style.rounded",pattern:"^rounded(?:-[trbl]{1,2})?(?:-(none|xs|sm|md|lg|xl|2xl|3xl|full))?$",summary:"Safeguards rounded utilities (including rounded-t-sm) by mapping to PDS radius tokens."},{id:"fallback.import-style.overlay-alpha",pattern:"^bg-black\\/(\\d{1,3})$",summary:"Converts alpha black overlay classes (e.g. bg-black/50) to tokenized color-mix background overlays."},{id:"fallback.import-style.text-inverse",pattern:"^text-white$",summary:"Preserves white foreground intent for text-on-image use cases using inverse-compatible tokens."},{id:"fallback.import-style.bg-arbitrary",pattern:"^bg-\\[[^\\]]+\\]$",summary:"Converts arbitrary background colors to import-* fallback classes when values are CSS-safe."},{id:"fallback.import-style.text-arbitrary",pattern:"^text-\\[[^\\]]+\\]$",summary:"Converts arbitrary text colors to import-* fallback classes when values are CSS-safe."}]};_e();nr();typeof x.initializing!="boolean"&&(x.initializing=!1);"currentPreset"in x||(x.currentPreset=null);typeof x.debug!="boolean"&&(x.debug=!1);"currentConfig"in x||(x.currentConfig=null);"compiled"in x||(x.compiled=null);typeof x.logHandler!="function"&&(x.logHandler=null);"mode"in x||(x.mode=null);var ht=null,bt=null,yt=null,vt=null,xt=null,wt=null,dn="__pdsLocalizationRuntime";function Ce(){if(wt)return wt;let t=x?.[dn];return t&&typeof t=="object"?(wt=t,t):null}function Sa(t){let e=t&&typeof t=="object"?t:null;wt=e,x[dn]=e}_r({getLogger:()=>typeof x.logHandler=="function"?x.logHandler:null,getContext:()=>{let t=x?.mode||x?.compiled?.mode||(x?.registry?.isLive?"live":"static"),e=(x?.debug||x?.currentConfig?.debug||x?.currentConfig?.design?.debug||x?.compiled?.debug||x?.compiled?.design?.debug||!1)===!0;return{mode:t,debug:e,thisArg:x}}});x.log=(t="log",e,...r)=>{Qe(t,e,...r)};var U={locale:"en",messages:{},hasProvider:!1},kt=new Set;function pn(t){return!!t&&typeof t!="string"&&typeof t=="object"&&"strTag"in t}function un(t=[]){let e="";for(let r=0;r<=t.length-1;r+=1)e+=t[r],r<t.length-1&&(e+=`{${r}}`);return e}function $a(t,e){return String(t).replace(/\{(\d+)\}/g,(r,n)=>e(Number(n)))}function La(t){if(!t||typeof t!="object")return{};let e={};for(let[r,n]of Object.entries(t)){if(typeof n=="string"){e[r]=n;continue}n&&typeof n=="object"&&typeof n.content=="string"&&(e[r]=n.content)}return e}function za(t,...e){return{strTag:!0,strings:Array.from(t||[]),values:e,raw:Array.from(t?.raw||[])}}function Ca(t){if(!t)return"";if(pn(t)){let r=un(t.strings||[]),n=U.messages[r]||r;return $a(n,o=>t.values?.[o])}let e=String(t);return U.messages[e]||e}function Ma(t){if(!t)return;let e=pn(t)?un(t.strings||[]):String(t);typeof e=="string"&&e.length>0&&kt.add(e)}function gn(t){if(!t||typeof t.msg!="function"||kt.size===0)return;let e=Array.from(kt);kt.clear();for(let r of e)try{t.msg(r)}catch{}}async function qe(){let t=Ce();return t||(xt||(xt=import(Ve("pds-localization.js")).then(r=>{if(typeof r?.msg!="function"||typeof r?.str!="function"||typeof r?.configureLocalization!="function"||typeof r?.loadLocale!="function"||typeof r?.setLocale!="function"||typeof r?.getLocalizationState!="function")throw new Error("Failed to load localization runtime exports");return Sa(r),gn(r),r}).catch(r=>{throw xt=null,r})),xt)}var fn=(t,e={})=>{let r=Ce();return typeof r?.msg=="function"?r.msg(t,e):(Ma(t),Ca(t,e))},mn=(t,...e)=>{let r=Ce();return typeof r?.str=="function"?r.str(t,...e):za(t,...e)},St=(t=null)=>{let e=Ce();if(typeof e?.configureLocalization=="function")return e.configureLocalization(t);if(!t||typeof t!="object")return U.locale="en",U.messages={},U.hasProvider=!1,{locale:U.locale,messages:{...U.messages},hasProvider:U.hasProvider};typeof t.locale=="string"&&t.locale.trim()&&(U.locale=t.locale.trim()),Object.prototype.hasOwnProperty.call(t,"messages")&&(U.messages=La(t.messages));let r=!!(t.provider||t.translate||t.loadLocale||t.setLocale);return U.hasProvider=r,r&&qe().then(n=>{n.configureLocalization(t),gn(n)}).catch(()=>{}),{locale:U.locale,messages:{...U.messages},hasProvider:U.hasProvider}},hn=async t=>(await qe()).loadLocale(t),bn=async(t,e={})=>(await qe()).setLocale(t,e),yn=()=>{let t=Ce();return typeof t?.getLocalizationState=="function"?t.getLocalizationState():{locale:U.locale,messages:{...U.messages},hasProvider:U.hasProvider}},vn=(t={})=>{let e=Ce();if(typeof e?.createJSONLocalization=="function")return e.createJSONLocalization(t);let r=typeof t?.locale=="string"&&t.locale.trim()?t.locale.trim().toLowerCase():"en",n=Array.isArray(t?.locales)?t.locales.map(d=>String(d||"").trim().toLowerCase()).filter(Boolean):[],o=Array.from(new Set([r,...n])),a=null,i=async()=>(a||(a=qe().then(d=>typeof d?.createJSONLocalization=="function"?d.createJSONLocalization(t):null).catch(()=>null)),a),s=async(d="loadLocale")=>{let c=await i();if(!c||typeof c!="object")return null;let p=c.provider;if(!p||typeof p!="object")return null;let l=p[d];return typeof l=="function"?l:d==="setLocale"&&typeof p.loadLocale=="function"?p.loadLocale:null};return{locale:r,locales:[...o],provider:{locales:[...o],async loadLocale(d={}){let c=await s("loadLocale");return typeof c!="function"?{}:c(d)},async setLocale(d={}){let c=await s("setLocale");return typeof c!="function"?{}:c(d)}}}};function Ve(t,e){return e&&typeof e=="string"?e:`${Le(x.currentConfig||{},{resolvePublicAssetURL:ke})}core/${t}`}async function Ea(){return Array.isArray(x.defaultEnhancers)&&x.defaultEnhancers.length>0?x.defaultEnhancers:(vt||(vt=import(Ve("pds-enhancers.js",x.currentConfig?.enhancersURL)).then(e=>{let r=Array.isArray(e?.defaultPDSEnhancers)?e.defaultPDSEnhancers:[];return x.defaultEnhancers=r,r}).catch(e=>{throw vt=null,e})),vt)}async function Aa(){return typeof x.ask=="function"&&x.ask!==xn?x.ask:(bt||(bt=import(Ve("pds-ask.js",x.currentConfig?.askURL)).then(e=>{let r=e?.ask;if(typeof r!="function")throw new Error("Failed to load ask helper");return x.ask=r,r}).catch(e=>{throw bt=null,e})),bt)}async function Ge(){return typeof x.toast=="function"&&x.toast!==Me?x.toast:(yt||(yt=import(Ve("pds-toast.js",x.currentConfig?.toastURL)).then(e=>{let r=e?.toast;if(typeof r!="function")throw new Error("Failed to load toast helper");return x.toast=r,r}).catch(e=>{throw yt=null,e})),yt)}async function xn(...t){return(await Aa())(...t)}async function Me(...t){return(await Ge())(...t)}Me.success=async(...t)=>(await Ge()).success(...t);Me.error=async(...t)=>(await Ge()).error(...t);Me.warning=async(...t)=>(await Ge()).warning(...t);Me.info=async(...t)=>(await Ge()).info(...t);var cn=function(t="log",e,...r){x.log(t,e,...r)};function lr(t){if(t==null)return t;if(typeof t=="function")return;if(typeof t!="object")return t;if(Array.isArray(t))return t.map(r=>lr(r)).filter(r=>r!==void 0);let e={};for(let[r,n]of Object.entries(t)){let o=lr(n);o!==void 0&&(e[r]=o)}return e}function wn(t,e=new WeakSet){if(!t||typeof t!="object"||e.has(t))return t;e.add(t),Object.freeze(t);for(let r of Object.keys(t))wn(t[r],e);return t}function cr(t){return t==null||typeof t!="object"?t:wn(structuredClone(lr(t)))}async function Ta(t,e={}){if(e?.runtimeConfig===!1||typeof fetch!="function")return null;let r=e?.runtimeConfigURL||`${t}pds-runtime-config.json`;try{let n=await fetch(r,{cache:"no-store"});return n.ok?await n.json():null}catch{return null}}x.registry=we;x.enums=S;x.adoptLayers=tt;x.adoptPrimitives=et;x.parse=rr;x.createStylesheet=Wr;x.isLiveMode=()=>we.isLive;x.ask=xn;x.toast=Me;x.common=ct;x.msg=fn;x.str=mn;x.configureLocalization=St;x.loadLocale=hn;x.setLocale=bn;x.getLocalizationState=yn;x.createJSONLocalization=vn;x.i18n={msg:fn,str:mn,configure:St,loadLocale:hn,setLocale:bn,getState:yn,createJSONLocalization:vn};x.AutoComplete=null;x.loadAutoComplete=async()=>{if(x.AutoComplete&&typeof x.AutoComplete.connect=="function")return x.AutoComplete;let t=Ve("pds-autocomplete.js",x.currentConfig?.autoCompleteURL);return ht||(ht=import(t).then(e=>{let r=e?.AutoComplete||e?.default?.AutoComplete||e?.default||null;if(!r)throw new Error("AutoComplete export not found in module");return x.AutoComplete=r,r}).catch(e=>{throw ht=null,e})),ht};function kn(t){let e=typeof CustomEvent=="function";try{let r=e?new CustomEvent("pds:ready",{detail:t}):new Event("pds:ready");x.dispatchEvent(r)}catch{}if(typeof document<"u")if(e){let r={detail:t,bubbles:!0,composed:!0};try{document.dispatchEvent(new CustomEvent("pds:ready",r))}catch{}try{document.dispatchEvent(new CustomEvent("pds-ready",r))}catch{}}else{try{document.dispatchEvent(new Event("pds:ready"))}catch{}try{document.dispatchEvent(new Event("pds-ready"))}catch{}}}function Sn(t={}){let e=typeof CustomEvent=="function",r={at:Date.now(),...t};try{let n=e?new CustomEvent("pds:config-changed",{detail:r}):new Event("pds:config-changed");x.dispatchEvent(n)}catch{}if(typeof document<"u")if(e){let n={detail:r,bubbles:!0,composed:!0};try{document.dispatchEvent(new CustomEvent("pds:config-changed",n))}catch{}}else try{document.dispatchEvent(new Event("pds:config-changed"))}catch{}}var sr="pure-ds-theme",fe=null,Ue=null;function dr(t){try{if(typeof document>"u")return;let e="light";t?t==="system"?e=typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":e=t:e=typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",document.documentElement.setAttribute("data-theme",e)}catch{}}function pr(t){try{if(fe&&Ue){try{typeof fe.removeEventListener=="function"?fe.removeEventListener("change",Ue):typeof fe.removeListener=="function"&&fe.removeListener(Ue)}catch{}fe=null,Ue=null}if(t==="system"&&typeof window<"u"&&window.matchMedia){let e=window.matchMedia("(prefers-color-scheme: dark)"),r=n=>{let o=n?.matches===void 0?e.matches:n.matches;try{let a=o?"dark":"light";document.documentElement.setAttribute("data-theme",a),x.dispatchEvent(new CustomEvent("pds:theme:changed",{detail:{theme:a,source:"system"}}))}catch{}};fe=e,Ue=r,typeof e.addEventListener=="function"?e.addEventListener("change",r):typeof e.addListener=="function"&&e.addListener(r)}}catch{}}var Ra=Object.getOwnPropertyDescriptor(x,"theme");Ra||Object.defineProperty(x,"theme",{get(){try{return typeof window>"u"?null:localStorage.getItem(sr)||null}catch{return null}},set(t){try{if(typeof window>"u")return;let e=x.currentConfig?.design||null,r=ze(t);if(e&&!ge(e,r)){let n=e?.name||x.currentPreset?.name||x.currentConfig?.preset||"current preset";x.log("warn",`PDS theme "${r}" not supported by preset "${n}".`),x.dispatchEvent(new CustomEvent("pds:theme:blocked",{detail:{theme:t,resolvedTheme:r,preset:n}}));return}t==null?localStorage.removeItem(sr):localStorage.setItem(sr,t),dr(t),pr(t),x.dispatchEvent(new CustomEvent("pds:theme:changed",{detail:{theme:t,source:"api"}}))}catch{}}});x.defaultEnhancers=[];async function Ia(t){x.initializing=!0;try{let e=t&&t.mode||"live",{mode:r,...n}=t||{};x.mode=e,x.logHandler=typeof n?.log=="function"?n.log:null,x.currentConfig=cr(n);let o=n&&typeof n.localization=="object"&&n.localization?n.localization:null;o?(await qe(),St(o)):St(null);let a;if(e==="static")a=await _a(n);else{let{localization:s,...d}=n||{},c=Le(d,{resolvePublicAssetURL:ke}),p=d?.managerURL||d?.public?.managerURL||d?.manager?.url||new URL("core/pds-manager.js",c).href||new URL("./pds-manager.js",import.meta.url).href,{startLive:l}=await import(p);a=await l(x,d,{emitReady:kn,emitConfigChanged:Sn,applyResolvedTheme:dr,setupSystemListenerIfNeeded:pr})}x.compiled=cr(a?.config||null);let i=x?.compiled?.design?.icons?.externalPath||"/assets/img/icons/";return x.log("info",`startup ready; external icon path: ${i}`),a}finally{x.initializing=!1}}x.start=Ia;async function _a(t){if(!t||typeof t!="object")throw new Error("PDS.start({ mode: 'static', ... }) requires a valid configuration object");let e=t.applyGlobalStyles??!0,r=t.manageTheme??!0,n=t.themeStorageKey??"pure-ds-theme",o=t.staticPaths??{},a=Le(t,{resolvePublicAssetURL:ke}),i=t&&t.autoDefine||null,s;i&&i.baseURL?s=Se($e(i.baseURL,{preferModule:!1})):s=`${a}components/`;let d=i&&Array.isArray(i.predefine)&&i.predefine||[],c=i&&typeof i.mapper=="function"&&i.mapper||null;try{at(x);let{resolvedTheme:p}=it({manageTheme:r,themeStorageKey:n,applyResolvedTheme:dr,setupSystemListenerIfNeeded:pr}),l=await Ta(a,t),u=Array.isArray(t?.enhancers)?t.enhancers:t?.enhancers&&typeof t.enhancers=="object"?Object.values(t.enhancers):[],g=l?.config?{...l.config,...t,design:t?.design||l.config.design,preset:t?.preset||l.config.preset}:{...t},f={tokens:`${a}styles/pds-tokens.css.js`,primitives:`${a}styles/pds-primitives.css.js`,components:`${a}styles/pds-components.css.js`,utilities:`${a}styles/pds-utilities.css.js`,styles:`${a}styles/pds-styles.css.js`},w=l?.paths||{};if(o={...f,...w,...o},x.registry.setStaticMode(o),e&&typeof document<"u")try{let y=await x.registry.getStylesheet("styles");if(y){y._pds=!0;let v=(document.adoptedStyleSheets||[]).filter(h=>h._pds!==!0);document.adoptedStyleSheets=[...v,y],Sn({mode:"static",source:"static:styles-applied"})}}catch(y){cn.call(x,"warn","Failed to apply static styles:",y)}let b=null,m=[];try{let y=await Ea(),v=await st({autoDefineBaseURL:s,autoDefinePreload:d,autoDefineMapper:c,enhancers:u,autoDefineOverrides:i||null,autoDefinePreferModule:!(i&&i.baseURL)},{baseEnhancers:y});b=v.autoDefiner,m=v.mergedEnhancers||[]}catch(y){cn.call(x,"error","\u274C Failed to initialize AutoDefiner/Enhancers (static):",y)}return x.compiled=cr({mode:"static",...g,theme:p,enhancers:m}),kn({mode:"static",config:g,theme:p,autoDefiner:b}),{config:g,theme:p,autoDefiner:b}}catch(p){throw x.dispatchEvent(new CustomEvent("pds:error",{detail:{error:p}})),p}}var Fa="src/js/pds-live-manager/tailwind-conversion-rules.json",zt=["base","sm","md","lg","xl","2xl"];function Pa(t={}){let e=Array.isArray(t.ignoredPatterns)?t.ignoredPatterns.map(n=>({...n,pattern:n?.pattern instanceof RegExp?n.pattern:new RegExp(String(n?.pattern||""))})):[],r=Array.isArray(t.nonPdsClassPatterns)?t.nonPdsClassPatterns.map(n=>n instanceof RegExp?n:new RegExp(String(n||""))):[];return{...t,ignoredPatterns:e,nonPdsClassPatterns:r}}var V=Pa(ln),$n=V.version||"tw2pds-layout-v4",Na=new Map(V.directMappings.map(t=>[t.tw,t])),ur=new Map(Object.entries(V.gapScaleMap||{})),Ln=new Map(Object.entries(V.maxWidthMap||{})),ja=V.nonPdsClassPatterns||[],Oa=new Set(V.neverFallbackTags||[]),Ba={...V.importStyleRules||{}},Da=V.tailwindSizeScale||{},gr=Array.isArray(V.tailwindShadeScale)?V.tailwindShadeScale.map(t=>String(t)).filter(Boolean):["50","100","200","300","400","500","600","700","800","900"],zn=gr.includes(String(V.defaultTailwindShade||""))?String(V.defaultTailwindShade):"500",Lt=1.2,Ha=["container","grid","flex","gap","space","items","justify","content","place","self","col","row","w","h","min","max","p","m","rounded","border","ring","outline","shadow","bg","text","font","leading","tracking","uppercase","lowercase","capitalize","overflow","whitespace","truncate","object","aspect","opacity","blur","backdrop","transition","duration","ease","delay","animate","hidden","block","inline","absolute","relative","fixed","sticky","size"];function Cn(t="",e=""){if(!t||!e)return t;let r=new RegExp(`\\s${e}\\s*=\\s*("[^"]*"|'[^']*'|[^\\s>]+)`,"gi");return String(t).replace(r,"")}function Wa(t="",e=null){let r=String(t||""),n=0;return r=r.replace(/<label([^>]*?)\sfor\s*=\s*(["'])([^"']+)\2([^>]*)>([\s\S]*?)<\/label>\s*<(input)([^>]*?)\sid\s*=\s*(["'])([^"']+)\8([^>]*?)>/gi,(o,a,i,s,d,c,p,l,u,g,f)=>{if(s!==g)return o;let w=Cn(`${a||""}${d||""}`,"for"),b=`<${p}${l||""} id="${g}"${f||""}>`;return n+=1,`<label${w}>${c}${b}</label>`}),r=r.replace(/<label([^>]*?)\sfor\s*=\s*(["'])([^"']+)\2([^>]*)>([\s\S]*?)<\/label>\s*<(select|textarea)([^>]*?)\sid\s*=\s*(["'])([^"']+)\8([^>]*)>([\s\S]*?)<\/\6>/gi,(o,a,i,s,d,c,p,l,u,g,f,w)=>{if(s!==g)return o;let b=Cn(`${a||""}${d||""}`,"for"),m=`<${p}${l||""} id="${g}"${f||""}>${w}</${p}>`;return n+=1,`<label${b}>${c}${m}</label>`}),e&&n>0&&(e.labelNestingCount+=n,j(e,`Nested ${n} label/control pairs.`),_(e,"intent.form.nested-label")),r}function Ua(t="",e="base"){let r=String(t||"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"rule";return`import-${e&&e!=="base"?`${e}-`:""}${r}`}function me(t,e,r,n="base",o=""){if(!t||!e||!r)return"";let a=Ua(e,n);if(o){let i=`${n}|${o}`;t.importPseudoStyles.has(i)||t.importPseudoStyles.set(i,new Map),t.importPseudoStyles.get(i).set(a,r)}else n==="base"?t.importBaseStyles.set(a,r):(t.importResponsiveStyles.has(n)||t.importResponsiveStyles.set(n,new Map),t.importResponsiveStyles.get(n).set(a,r));return t.importedStyleCount+=1,a}function Ae(t=""){return String(t||"").trim().replace(/_/g," ")}function Te(t=""){return!t||/[;{}]/.test(t)?!1:/^[-#(),.%/\sa-zA-Z0-9]+$/.test(t)}function Ke(t=""){let e=String(t||"").trim();if(!e)return null;let r=e.match(/^\[([^\]]+)\]$/);if(r){let n=Ae(r[1]);return Te(n)?n:null}return Da[e]||null}function qa(t=""){let e=Number(t);if(!Number.isFinite(e))return zn;let r=String(e);return gr.includes(r)?r:gr.reduce((n,o)=>{let a=Math.abs(Number(n)-e);return Math.abs(Number(o)-e)<a?o:n},zn)}function Ye(t="",e="500"){let r=String(t||"").toLowerCase(),n=qa(e);return["blue","sky","indigo","cyan"].includes(r)?`var(--color-primary-${n})`:["purple","violet","fuchsia"].includes(r)?`var(--color-accent-${n})`:["green","emerald","lime","teal"].includes(r)?`var(--color-success-${n})`:["yellow","amber","warning"].includes(r)?`var(--color-warning-${n})`:["red","rose","pink","orange"].includes(r)?`var(--color-danger-${n})`:["slate","gray","zinc","neutral","stone"].includes(r)?`var(--color-gray-${n})`:""}function Mn(t=""){let e=Ae(t);return Te(e)&&(/^#(?:[0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(e)||/^(?:rgb|hsl)a?\([^)]*\)$/.test(e))?e:""}function ae(t=""){return String(t||"").split(/\s+/).map(e=>e.trim()).filter(Boolean)}function Va(t="",e=""){if(!e)return t;let r=String(t||""),n=r.match(/\sclass\s*=\s*(["'])(.*?)\1/i);if(!n)return`${r} class="${e}"`;let o=n[1]||'"',a=ae(n[2]);a.includes(e)||a.push(e);let i=` class=${o}${a.join(" ")}${o}`;return r.replace(n[0],i)}function Ga(t="",e=""){return e?new RegExp(`\\s${e}\\s*=`,"i").test(String(t||"")):!1}function Ka(t=""){let e=String(t||"").replace(/[-_]+/g," ").trim();return e?e.replace(/(^|\s)([a-z])/g,(r,n,o)=>`${n}${o.toUpperCase()}`):"Icon button"}function Ja(t="",e=null){let r=String(t||"");return r&&r.replace(/<(button|a)([^>]*)>\s*(<pds-icon\b[^>]*><\/pds-icon>)\s*<\/\1>/gi,(n,o,a,i)=>{let s=Va(a,"icon-only");if(!Ga(s,"aria-label")){let d=String(i).match(/\sicon\s*=\s*(["'])(.*?)\1/i),c=d?String(d[2]||""):"",p=Ka(c);s+=` aria-label="${p}"`}return e&&(e.intentHits+=1,_(e,"intent.component.button.icon-only-markup")),`<${o}${s}>${i}</${o}>`})}function Ya(t="",e=null){let r=String(t||"");if(!r)return r;let n=0,o=r.replace(/<p([^>]*?)>([\s\S]*?)<\/p>/gi,(a,i,s)=>{let d=String(i||"").match(/\sclass\s*=\s*(["'])(.*?)\1/i);if(!d)return a;let c=ae(d[2]||""),p=c.some(u=>/^import-text-/.test(String(u||""))),l=c.includes("text-muted")||c.some(u=>/^import-font-/.test(String(u||"")));return!p||!l?a:(n+=1,`<div${i}>${s}</div>`)});return e&&n>0&&(e.intentHits+=1,_(e,"intent.typography.metric-paragraph-to-div"),j(e,`Normalized ${n} metric text paragraph tag(s) to div.`)),o}function Fn(t="",e=""){if(!e)return t;let r=String(t||""),n=r.match(/\sclass\s*=\s*(["'])(.*?)\1/i);if(!n)return r;let o=n[1]||'"',a=ae(n[2]).filter(s=>s!==e);if(a.length===0)return r.replace(n[0],"");let i=` class=${o}${a.join(" ")}${o}`;return r.replace(n[0],i)}function Xa(t="",e=r=>r){let r=String(t||""),n=r.match(/\sclass\s*=\s*(["'])(.*?)\1/i);if(!n)return r;let o=n[1]||'"',a=ae(n[2]),i=e(Array.from(a)),s=Array.isArray(i)?i.filter(Boolean):a;if(s.length===0)return r.replace(n[0],"");let d=` class=${o}${s.join(" ")}${o}`;return r.replace(n[0],d)}function Za(t="",e=null){let r=String(t||"");if(!r)return r;let n=0,o=r.replace(/<(div|section|article|aside)([^>]*)>\s*<(p|div)([^>]*)>[\s\S]*?<\/\3>\s*<(p|div)([^>]*)>[\s\S]*?<\/\5>\s*<\/\1>/gi,(a,i,s,d,c,p,l)=>{let u=String(s||"").match(/\sclass\s*=\s*(["'])(.*?)\1/i);if(!u||!ae(u[2]).includes("stack-sm"))return a;let f=String(c||"").match(/\sclass\s*=\s*(["'])(.*?)\1/i),w=String(l||"").match(/\sclass\s*=\s*(["'])(.*?)\1/i);if(!f||!w)return a;let b=ae(f[2]),m=ae(w[2]);if(!(b.some(h=>/^import-text-/.test(String(h||"")))&&m.some(h=>/^import-text-/.test(String(h||"")))))return a;let v=Fn(s,"stack-sm");return n+=1,a.replace(`<${i}${s}>`,`<${i}${v}>`)});return e&&n>0&&(e.intentHits+=1,_(e,"intent.typography.metric-pair-no-stack"),j(e,`Removed stack-sm from ${n} metric text pair container(s).`)),o}function Qa(t={}){if(!t||typeof t!="object")return{};let e=t.typography;if(e&&typeof e=="object")return e;let r=t.design?.typography;return r&&typeof r=="object"?r:{}}function ei(t={}){let e=Qa(t),r=Number(e.fontScale);return Number.isFinite(r)?Math.max(1,Math.min(2,r)):Lt}function ti(t="",e=Lt){let n={"4xl":1,"3xl":2,"2xl":3,xl:4}[t];if(!n)return"";let o=Number.isFinite(Number(e))?Math.max(1,Math.min(2,Number(e))):Lt,a=Math.max(-1,Math.min(1,Math.round((o-Lt)/.25))),i=n-a;return i<1?"h1":i>4?"":`h${i}`}function ri(t="",e=null,r={}){let n=String(t||"");if(!n)return n;let o=ei(r.config||{}),a=0,i=0,s=n.replace(/<(p|div|span)([^>]*)>([\s\S]*?)<\/\1>/gi,(d,c,p,l)=>{let u=String(p||"").match(/\sclass\s*=\s*(["'])(.*?)\1/i);if(!u)return d;let g=ae(u[2]);if(!g.includes("import-font-bold"))return d;let w=g.find(h=>/^import-text-(?:4xl|3xl|2xl|xl)$/.test(String(h||"")))||"",b=w.match(/^import-text-(4xl|3xl|2xl|xl)$/);if(b){let h=ti(b[1],o);if(!h)return d;let $=Xa(p,A=>A.filter(T=>T!=="import-font-bold"&&T!==w));return a+=1,`<${h}${$}>${l}</${h}>`}let m=/<\/?(?:div|p|section|article|aside|main|header|footer|ul|ol|li|table|tr|td|th|h[1-6])\b/i.test(l),y=/<\/?(?:strong|b)\b/i.test(l);if(m||y)return d;let v=Fn(p,"import-font-bold");return i+=1,`<${c}${v}><strong>${l}</strong></${c}>`});return e&&(a>0&&(e.intentHits+=1,_(e,"intent.typography.semantic-heading-from-scale"),j(e,`Converted ${a} bold display text node(s) to semantic heading tags (fontScale=${Number(o).toFixed(2)}).`)),i>0&&(e.intentHits+=1,_(e,"intent.typography.bold-to-strong"),j(e,`Wrapped ${i} bold text node(s) in strong tags.`))),s}function ni(t=[]){if(!Array.isArray(t)||t.length===0)return"";let e=t.filter(n=>!zt.includes(n));if(e.length===0||e.length>1)return"";let r=e[0];return["hover","focus","active"].includes(r)?r:""}function En(t,e="base",r=[]){let n=ni(r),o=Ba[t];if(o)return{declaration:o,breakpoint:e,pseudo:n,ruleId:"fallback.import-style"};let a=String(t).match(/^gap-(\d+)$/);if(a){let k={0:"var(--spacing-0)",1:"var(--spacing-1)",2:"var(--spacing-2)",3:"var(--spacing-3)",4:"var(--spacing-4)",5:"var(--spacing-5)",6:"var(--spacing-6)",7:"var(--spacing-7)",8:"var(--spacing-8)",10:"var(--spacing-10)",12:"var(--spacing-12)"},L=Number(a[1]);if(k[L])return{declaration:`gap:${k[L]}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.gap-scale"}}let i=String(t).match(/^(mt|mb|my)-(.+)$/);if(i){let k=i[1],L=i[2],E=Ke(L);if(E){let R="";return k==="mt"?R=`margin-top:${E}`:k==="mb"?R=`margin-bottom:${E}`:R=`margin-top:${E};margin-bottom:${E}`,{declaration:R,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.margin-scale"}}}let s=String(t).match(/^min-w-\[([^\]]+)\]$/);if(s){let k=Ae(s[1]);if(Te(k))return{declaration:`min-width:${k}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.min-width-arbitrary"}}let d=String(t).match(/^max-w-\[([^\]]+)\]$/);if(d){let k=Ae(d[1]);if(Te(k))return{declaration:`max-width:${k}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.max-width-arbitrary"}}let c=String(t).match(/^min-h-\[([^\]]+)\]$/);if(c){let k=Ae(c[1]);if(Te(k))return{declaration:`min-height:${k}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.min-height-arbitrary"}}let p=String(t).match(/^grid-rows-\[([^\]]+)\]$/);if(p){let k=Ae(p[1]);if(Te(k))return{declaration:`grid-template-rows:${k}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.grid-rows-arbitrary"}}let l=String(t).match(/^size-(.+)$/);if(l){let k=Ke(l[1]);if(k)return{declaration:`width:${k};height:${k}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.size-scale"}}let u=String(t).match(/^w-(.+)$/);if(u){let k=Ke(u[1]);if(k)return{declaration:`width:${k}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.width-scale"}}let g=String(t).match(/^h-(.+)$/);if(g){let k=Ke(g[1]);if(k)return{declaration:`height:${k}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.height-scale"}}let f={xs:"var(--font-size-xs)",sm:"var(--font-size-sm)",base:"var(--font-size-md)",lg:"var(--font-size-lg)",xl:"var(--font-size-xl)","2xl":"var(--font-size-2xl)","3xl":"var(--font-size-3xl)","4xl":"var(--font-size-4xl)"},w=String(t).match(/^text-(xs|sm|base|lg|xl|2xl|3xl|4xl)$/);if(w)return{declaration:`font-size:${f[w[1]]}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.text-size"};let b={normal:"400",medium:"500",semibold:"600",bold:"700",extrabold:"800",black:"900"},m=String(t).match(/^font-(normal|medium|semibold|bold|extrabold|black)$/);if(m)return{declaration:`font-weight:${b[m[1]]}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.font-weight"};let y={none:"1",tight:"1.25",snug:"1.375",normal:"1.5",relaxed:"1.625",loose:"2"},v=String(t).match(/^leading-(none|tight|snug|normal|relaxed|loose)$/);if(v)return{declaration:`line-height:${y[v[1]]}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.line-height"};let h={tighter:"-0.05em",tight:"-0.025em",normal:"0em",wide:"0.025em",wider:"0.05em",widest:"0.1em"},$=String(t).match(/^tracking-(tighter|tight|normal|wide|wider|widest)$/);if($)return{declaration:`letter-spacing:${h[$[1]]}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.tracking"};let A=String(t).match(/^bg-black\/(\d{1,3})$/);if(A)return{declaration:`background-color:color-mix(in srgb, var(--color-gray-900) ${Math.max(0,Math.min(100,Number(A[1])))}%, transparent)`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.overlay-alpha"};if(t==="text-white")return{declaration:"color:var(--color-gray-50)",breakpoint:e,pseudo:n,ruleId:"fallback.import-style.text-inverse"};let T=String(t).match(/^bg-(primary|secondary|accent)$/);if(T){let L={primary:"var(--color-primary-fill)",secondary:"var(--color-gray-500)",accent:"var(--color-accent-500)"}[T[1]];if(L)return{declaration:`background-color:${L}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.bg-semantic"}}let I=String(t).match(/^bg-([a-z]+)-(\d{2,3})$/);if(I){let k=Ye(I[1],I[2]);if(k)return{declaration:`background-color:${k}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.bg-tokenized"}}let z=String(t).match(/^bg-\[([^\]]+)\]$/);if(z){let k=Mn(z[1]);if(k)return{declaration:`background-color:${k}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.bg-arbitrary"}}let M=String(t).match(/^text-([a-z]+)-(\d{2,3})$/);if(M){let k=Ye(M[1],M[2]);if(k)return{declaration:`color:${k}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.text-tokenized"}}let P=String(t).match(/^text-\[([^\]]+)\]$/);if(P){let k=Mn(P[1]);if(k)return{declaration:`color:${k}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.text-arbitrary"}}let C=String(t).match(/^rounded(?:-([trbl]{1,2}))?(?:-(none|xs|sm|md|lg|xl|2xl|3xl|full))?$/);if(C){let k=C[1]||"",L=C[2]||"sm",E=L==="none"?"0":`var(--radius-${L})`,R={t:["top-left","top-right"],b:["bottom-left","bottom-right"],l:["top-left","bottom-left"],r:["top-right","bottom-right"],tl:["top-left"],tr:["top-right"],bl:["bottom-left"],br:["bottom-right"]};if(!k)return{declaration:`border-radius:${E}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.rounded"};let B=(R[k]||[]).map(K=>`border-${K}-radius:${E}`).join(";");if(B)return{declaration:B,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.rounded"}}return null}function $t(t,e){return typeof t=="number"&&Number.isFinite(t)?`${t}px`:typeof t=="string"&&t.trim()?t.trim():`${e}px`}function oi(t={}){let r=(t?.design&&typeof t.design=="object"?t.design:t)?.layout?.breakpoints||{};return{sm:$t(r.sm,640),md:$t(r.md,768),lg:$t(r.lg,1024),xl:$t(r.xl,1280)}}function ai(t,e){let r=Array.from(t.importBaseStyles.entries()).map(([a,i])=>`.${a}{${i};}`),n=[];for(let[a,i]of t.importResponsiveStyles.entries()){let s=e?.[a];if(!s||!i?.size)continue;let d=Array.from(i.entries()).map(([c,p])=>`.${c}{${p};}`).join(`
3732
3907
  `);n.push(`@media (min-width: ${s}) {
3733
- ${p}
3734
- }`)}for(let[a,i]of e.importPseudoStyles.entries()){let[s,p]=String(a).split("|");if(!p||!i?.size)continue;let c=Array.from(i.entries()).map(([l,u])=>`.${l}:${p}{${u};}`).join(`
3735
- `);if(!c)continue;if(s==="base"){n.push(c);continue}let d=t?.[s];d&&n.push(`@media (min-width: ${d}) {
3908
+ ${d}
3909
+ }`)}for(let[a,i]of t.importPseudoStyles.entries()){let[s,d]=String(a).split("|");if(!d||!i?.size)continue;let c=Array.from(i.entries()).map(([l,u])=>`.${l}:${d}{${u};}`).join(`
3910
+ `);if(!c)continue;if(s==="base"){n.push(c);continue}let p=e?.[s];p&&n.push(`@media (min-width: ${p}) {
3736
3911
  ${c}
3737
3912
  }`)}let o=[...r,...n].filter(Boolean).join(`
3738
3913
  `);return o.trim()?["/* pds-import: generated fallback styles for unmapped Tailwind utilities */",o].join(`
3739
- `):""}function ii(e="",t=""){if(!t||!t.trim())return e;let r=`<style data-pds-import="tailwind-fallback">
3740
- ${t}
3741
- </style>`;return/<head[^>]*>/i.test(e)?e.replace(/<head([^>]*)>/i,`<head$1>
3914
+ `):""}function ii(t="",e=""){if(!e||!e.trim())return t;let r=`<style data-pds-import="tailwind-fallback">
3915
+ ${e}
3916
+ </style>`;return/<head[^>]*>/i.test(t)?t.replace(/<head([^>]*)>/i,`<head$1>
3742
3917
  ${r}`):`${r}
3743
- ${e}`}function Tn(e=""){if(!e)return!1;if(e.includes(":")||e.includes("["))return!0;let t=e.split("-")[0];return Wa.includes(t)}function ie(e=""){let t=String(e).split(":");if(t.length===1)return{breakpoint:"base",base:t[0],variants:[]};let r=t[t.length-1],n=t.slice(0,-1);return{breakpoint:n.find(a=>Lt.includes(a))||"base",base:r,variants:n}}function si(){return{totalTailwind:0,mapped:0,ignored:0,policySkipped:0,unknown:0,intentHits:0,unknownTokens:new Map,notes:[],appliedRules:new Set,importBaseStyles:new Map,importResponsiveStyles:new Map,importPseudoStyles:new Map,importedStyleCount:0,labelNestingCount:0,removedAtomicSpacingCount:0,removedAtomicPositioningCount:0}}function li(e=""){let t=String(e||"").toLowerCase().replace(/\s+/g,""),r=t.includes("menu,ol,ul{list-style:none")||t.includes("ol,ul,menu{list-style:none")||t.includes("ul,ol,menu{list-style:none"),n=t.includes("a{color:inherit;text-decoration:inherit");return{listReset:r,anchorReset:n}}function ci(e=""){return String(e||"").toLowerCase().includes("cdn.tailwindcss.com")?{listReset:!0,anchorReset:!0}:{listReset:!1,anchorReset:!1}}function di(e="",t=null){let r=String(e||""),n={listReset:!1,anchorReset:!1,strippedRuntimeCssBlocks:0,strippedRuntimeScripts:0};return r=r.replace(/<style([^>]*)>([\s\S]*?)<\/style>/gi,(o,a,i)=>{let s=String(i||"");if(!(/tailwindcss\s+v\d/i.test(s)||/\*\s*!\s*tailwindcss/i.test(s)))return o;let c=li(s);return n.listReset=n.listReset||c.listReset,n.anchorReset=n.anchorReset||c.anchorReset,n.strippedRuntimeCssBlocks+=1,""}),r=r.replace(/<script([^>]*?)src\s*=\s*(?:(['"])([^"']*cdn\.tailwindcss\.com[^"']*)\2|([^\s>]*cdn\.tailwindcss\.com[^\s>]*))([^>]*)><\/script>/gi,(o,a,i,s,p)=>{let d=ci(s||p||"");return n.listReset=n.listReset||d.listReset,n.anchorReset=n.anchorReset||d.anchorReset,n.strippedRuntimeScripts+=1,""}),t&&(n.strippedRuntimeCssBlocks>0||n.strippedRuntimeScripts>0)&&(R(t,"intent.preflight.tailwind-runtime-detected"),n.strippedRuntimeCssBlocks>0&&j(t,`Detected and stripped ${n.strippedRuntimeCssBlocks} Tailwind runtime style block(s).`)),t&&n.strippedRuntimeScripts>0&&j(t,`Removed ${n.strippedRuntimeScripts} Tailwind CDN script reference(s).`),{html:r,hints:n}}function j(e,t){!e||!t||e.notes.includes(t)||e.notes.push(t)}function pi(e,t){let r=e.unknownTokens.get(t)||0;e.unknownTokens.set(t,r+1)}function ui(e={}){let r=(e?.design&&typeof e.design=="object"?e.design:e)?.layout?.utilities||{};return{grid:r.grid!==!1,flex:r.flex!==!1,spacing:r.spacing!==!1,container:r.container!==!1}}function J(e,t){return t?e?.[t]!==!1:!0}function An(e){let t=String(e).match(/^grid-cols-(\d+)$/);return t?Number(t[1]):null}function Rn(e={}){let t=Lt.map(o=>({bp:o,cols:e[o]})).filter(o=>Number.isFinite(o.cols));if(t.length<2)return null;if(t.length===2){let[o,a]=t;if(o.bp==="base"&&o.cols===1&&a.cols===2)return"grid-auto-lg";if(o.bp==="base"&&o.cols===1&&a.cols>=3)return null;if(o.cols<a.cols){if(a.cols>=4)return"grid-auto-md";if(a.cols>=2)return"grid-auto-lg"}return null}let r=!0;for(let o=1;o<t.length;o+=1)if(t[o].cols<=t[o-1].cols){r=!1;break}if(!r)return null;let n=t[t.length-1]?.cols||0;return n>=4?"grid-auto-md":n>=3?"grid-auto-sm":null}function gi(e=""){let t=String(e).match(/^text-(gray|slate|zinc|neutral|stone)-(\d{2,3})$/);if(!t)return"";let r=Number(t[2]);return Number.isFinite(r)&&r>=400&&r<=600?"text-muted":""}function mi(e="",t=0){return!e||!Number.isFinite(t)?"":{sm:{2:"sm:grid-cols-2"},md:{3:"md:grid-cols-3"},lg:{4:"lg:grid-cols-4"}}?.[e]?.[t]||""}function fi(e=""){let t=ie(e),n=String(t?.base||"").match(/^space-y-(\d+)$/);if(!n)return"stack-md";let o=Number(n[1]);return Number.isFinite(o)?o<=1?"stack-xs":o<=2?"stack-sm":o<=4?"stack-md":"stack-lg":"stack-md"}function hi(e=new Set){return Array.from(e).some(t=>{let r=String(t||"");return/^gap-(?:xs|sm|md|lg|xl)$/.test(r)||/^gap-[0-9]+$/.test(r)||/^import-(?:sm-|md-|lg-|xl-)?gap-/.test(r)})}function bi(e=new Set){return Array.from(e).some(t=>/^stack-(?:xs|sm|md|lg|xl)$/.test(String(t||"")))}function yi(e=new Set){return Array.from(e).some(t=>{let r=String(t||"");return/^grid-cols-\d+$/.test(r)||/^grid-auto-(?:sm|md|lg|xl)$/.test(r)||/^(?:sm|md|lg|xl):grid-cols-\d+$/.test(r)||/^import-(?:sm-|md-|lg-|xl-)?grid-cols-\d+$/.test(r)})}function vi(e,t=12){return Array.from(e.unknownTokens.entries()).sort((r,n)=>n[1]-r[1]).slice(0,t).map(([r])=>r)}function R(e,t){!e||!t||e.appliedRules.add(t)}function le(e=[],t){return!Array.isArray(e)||!t?!1:e.some(r=>t.test(String(r)))}function xi(e=[]){for(let t of e){let r=ie(t);if(r.breakpoint!=="base")continue;let n=String(r.base).match(/^h-(.+)$/);if(!n)continue;let o=Ke(n[1]);if(!o||o==="auto")continue;let a=String(o).match(/^(-?\d+(?:\.\d+)?)rem$/);if(a){let i=Number(a[1]);if(Number.isFinite(i))return i*16}}return null}function wi(e=[],t=""){let r=t==="button",n=le(e,/^bg-/),o=le(e,/^hover:bg-/),a=le(e,/^border/),i=le(e,/^shadow/),s=e.includes("cursor-pointer"),p=le(e,/^rounded/),c=le(e,/^(?:min-w|max-w|w)-/),d=le(e,/^text-(?:white|black|\[[^\]]+\]|[a-z]+-\d{2,3})$/),l=n||o||i;if(!(r||t==="a"&&(l||a||s||p&&c)))return{shouldNormalize:!1,variant:"none",size:"base",iconOnly:!1};let m="none";a&&!n&&!o?m="outline":(l||n&&d)&&(m="primary");let b=e.includes("rounded-full")&&(e.includes("p-2")||e.includes("p-1")||e.includes("p-2.5")),f=le(e,/^size-(?:6|7|8|9|10|11|12)$/),y=b||f,k=xi(e),v=e.includes("text-sm")||e.includes("text-xs"),$=e.includes("text-lg")||e.includes("text-xl"),A="base";return k&&k<=40||v?A="sm":(k&&k>=48||$)&&(A="lg"),{shouldNormalize:!0,variant:m,size:A,iconOnly:y}}function ki(e=""){let t=String(e||"").toLowerCase();return["green","emerald","lime","teal"].includes(t)?"badge-success":["blue","sky","cyan","indigo"].includes(t)?"badge-info":["yellow","amber","orange"].includes(t)?"badge-warning":["red","rose","pink"].includes(t)?"badge-danger":["gray","slate","zinc","neutral","stone"].includes(t)?"badge-secondary":["purple","violet","fuchsia","primary","accent"].includes(t)?"badge-primary":"badge-secondary"}function Si(e=[],t="",r={shouldNormalize:!1}){if(r?.shouldNormalize)return{shouldNormalize:!1,variantClass:"",outline:!1,sizeClass:"",pastel:null};if(["button","a","input","select","textarea"].includes(t))return{shouldNormalize:!1,variantClass:"",outline:!1,sizeClass:"",pastel:null};if(e.some(M=>/^badge(?:-|$)/.test(String(M))))return{shouldNormalize:!1,variantClass:"",outline:!1,sizeClass:"",pastel:null};let n=e.map(M=>ie(M)).filter(M=>M.breakpoint==="base").map(M=>String(M.base)),o=n.some(M=>/^rounded(?:-|$)/.test(M)),a=n.some(M=>/^px-/.test(M)),i=n.some(M=>/^py-/.test(M)),s=a&&i,p=n.includes("text-xs")||n.includes("text-sm"),c=n.includes("text-lg")||n.includes("text-xl"),d=n.map(M=>M.match(/^bg-([a-z]+)-(\d{2,3})(?:\/\d{1,3})?$/)).find(Boolean),l=n.map(M=>M.match(/^text-([a-z]+)-(\d{2,3})(?:\/\d{1,3})?$/)).find(Boolean),u=n.map(M=>M.match(/^border-([a-z]+)-(\d{2,3})$/)).find(Boolean),g=Number(d?.[2]),m=Number(l?.[2]),b=!!(d&&Number.isFinite(g)&&g<=300),f=n.some(M=>/^border(?:-|$)/.test(M)),y=!!(d||l||u),k=[o,s,p,b||f].filter(Boolean).length;if(!(y&&k>=3))return{shouldNormalize:!1,variantClass:"",outline:!1,sizeClass:"",pastel:null};let $=d&&d[1]||l&&l[1]||u&&u[1]||"",A=ki($),T=f&&!b,F=p?"badge-sm":c?"badge-lg":"",I=b?{family:$,bgShade:Number.isFinite(g)?g:200,textShade:Number.isFinite(m)?m:700}:null;return{shouldNormalize:!0,variantClass:I?"":A,outline:T,sizeClass:F,pastel:I}}function $i(e="",t=0){let r=String(e||"").toLowerCase(),n=Number(t);return r==="white"?"surface-base":["gray","slate","zinc","neutral","stone"].includes(r)?Number.isFinite(n)&&n<=100?"surface-base":"surface-subtle":["blue","sky","cyan","indigo","primary","info"].includes(r)?"surface-info":["purple","violet","fuchsia","accent"].includes(r)?"surface-primary":["green","emerald","lime","teal","success"].includes(r)?"surface-success":["yellow","amber","orange","warning"].includes(r)?"surface-warning":["red","rose","pink","danger"].includes(r)?"surface-danger":"surface-base"}function zi(e=[],t="",r={shouldNormalize:!1},n={shouldNormalize:!1}){if(r?.shouldNormalize||n?.shouldNormalize)return{shouldNormalize:!1,cardVariantClass:"",surfaceClass:""};if(!new Set(["div","section","article","aside","li"]).has(t))return{shouldNormalize:!1,cardVariantClass:"",surfaceClass:""};if(e.some(f=>/^card(?:-|$)/.test(String(f))))return{shouldNormalize:!1,cardVariantClass:"",surfaceClass:""};let a=e.map(f=>ie(f)).filter(f=>f.breakpoint==="base").map(f=>String(f.base)),i=a.some(f=>/^rounded(?:-|$)/.test(f)),s=a.some(f=>/^border(?:$|-)/.test(f)),p=a.some(f=>/^shadow(?:$|-)/.test(f)),c=a.some(f=>/^(?:p|px|py|pt|pb|pl|pr)-/.test(f)),d=a.map(f=>f.match(/^bg-([a-z]+)-?(\d{2,3})?$/)).find(Boolean),l=a.includes("bg-white")||!!d;if(!([i,s||p,l,c].filter(Boolean).length>=3))return{shouldNormalize:!1,cardVariantClass:"",surfaceClass:""};let m="card-basic";p?m="card-elevated":s&&(m="card-outlined");let b="";return p?b="surface-elevated":d?b=$i(d[1],d[2]):l&&(b="surface-base"),{shouldNormalize:!0,cardVariantClass:m,surfaceClass:b}}function Li({tagName:e,originalClassValue:t,policy:r,summary:n,preflightHints:o={}}){if(Oa.has(e))return R(n,"table.strict-tags.no-classes"),"";let a=String(t).split(/\s+/).filter(Boolean),i=wi(a,e),s=Si(a,e,i),p=zi(a,e,i,s),c=/^h[1-6]$/.test(e),d=["i","svg"].includes(e)||a.some(z=>/^fa(?:[a-z-]+)?$/i.test(String(z||""))||/^fa-/.test(String(z||""))),l=new Set,u={},g={},m=!1,b="",f="",y=!1,k="";a.forEach(z=>{let x=ie(z),S=x.base;if(ja.some(P=>P.test(S))){n.ignored+=1,R(n,"cleanup.non-pds-class");return}let C=Tn(z)||Tn(S);if(C&&(n.totalTailwind+=1),/^space-y-/.test(S)){m=!0,b=b||z,f=f||fi(z),n.ignored+=1,R(n,"layout.spacing.space-y-to-stack");return}if(/^space-x-/.test(S)){let P=String(S).match(/^space-x-(\d+)$/);if(P){let D=`gap-${P[1]}`,Y=ur.get(D);if(Y&&J(r,"spacing")){l.add(Y),y=!0,k=k||z,n.mapped+=1,n.intentHits+=1,R(n,"layout.spacing.space-x-to-gap");return}}n.ignored+=1,R(n,"style.spacing.atomic");return}if(/^grid-cols-\d+$/.test(S)&&x.breakpoint!=="base"){let P=An(S);if(Number.isFinite(P)&&J(r,"grid")){u[x.breakpoint]=P,n.mapped+=1,R(n,"intent.layout.responsive-grid-to-auto");return}if(!J(r,"grid")){n.policySkipped+=1,j(n,"Skipped responsive grid mapping because layout.utilities.grid=false.");return}}if(/^flex-(?:row|col)$/.test(S)&&x.breakpoint!=="base"){if(J(r,"flex")){g[x.breakpoint]=S,n.mapped+=1,R(n,"intent.layout.mobile-stack");return}n.policySkipped+=1,j(n,"Skipped responsive flex mapping because layout.utilities.flex=false.");return}if(/^grid-cols-\d+$/.test(S)&&x.breakpoint==="base"){let P=An(S);Number.isFinite(P)&&J(r,"grid")&&(u.base=P)}let E=Ia.get(S);if(E&&x.breakpoint==="base"){if(!J(r,E.gate)){n.policySkipped+=1,j(n,`Skipped ${S} because layout.utilities.${E.gate}=false.`);return}E.pds.forEach(P=>{P&&l.add(P)}),n.mapped+=1,R(n,E.id);return}if(ur.has(S)&&x.breakpoint==="base"){if(!J(r,"spacing")){n.policySkipped+=1,j(n,"Skipped gap utility because layout.utilities.spacing=false.");return}l.add(ur.get(S)),n.mapped+=1,R(n,"layout.spacing.gap-scale");return}if(zn.has(S)&&x.breakpoint==="base"){if(!J(r,"container")){n.policySkipped+=1,j(n,"Skipped max-width utility because layout.utilities.container=false.");return}l.add(zn.get(S)),n.mapped+=1,R(n,"layout.container.max-width");return}if(i.shouldNormalize&&C){let P=String(S||"");if(x.breakpoint==="base"&&["flex-1","grow","flex-grow"].includes(P)){l.add("grow"),n.mapped+=1,n.intentHits+=1,R(n,"intent.component.button.layout-grow");return}if(/^(?:bg-|text-(?!center$|left$|right$)|font-|leading-|tracking-|rounded|ring|border|shadow|outline|transition|duration|ease|delay|animate|p|px|py|pt|pb|pl|pr|m|mx|my|mt|mb|ml|mr|w-|h-|min-|max-|size-|overflow)/.test(P)||P.startsWith("hover:")){n.ignored+=1,R(n,"intent.component.button.normalize");return}}if(c&&/^(?:text-(?:xs|sm|base|lg|xl|\dxl|white|black|\[[^\]]+\]|[a-z]+-\d{2,3})|font-|leading-|tracking-|uppercase|lowercase|capitalize)/.test(S)){n.ignored+=1,n.intentHits+=1,R(n,"intent.typography.heading-semantic");return}if(s.shouldNormalize&&C){let P=String(S||"");if(/^(?:bg-|text-(?!center$|left$|right$)|font-|leading-|tracking-|rounded|ring|border|shadow|outline|transition|duration|ease|delay|animate|p|px|py|pt|pb|pl|pr|m|mx|my|mt|mb|ml|mr|w-|h-|min-|max-|size-|overflow)/.test(P)||P.startsWith("hover:")){n.ignored+=1,R(n,"intent.component.badge.normalize");return}}if(p.shouldNormalize&&C){let P=String(S||"");if(/^(?:bg-|text-(?!center$|left$|right$)|font-|leading-|tracking-|rounded|ring|border|shadow|outline|transition|duration|ease|delay|animate|p|px|py|pt|pb|pl|pr|m|mx|my|mt|mb|ml|mr)/.test(P)||P.startsWith("hover:")){n.ignored+=1,R(n,"intent.component.card.normalize");return}}let O=gi(S);if(O&&x.breakpoint==="base"){l.add(O),n.mapped+=1,n.intentHits+=1,R(n,"intent.typography.text-neutral-to-muted");return}if(/^text-(?:white|black|[a-z]+-\d{2,3}|\[[^\]]+\])$/.test(S)){if(d||e==="a"&&!i.shouldNormalize){let D=En(S,x.breakpoint,x.variants);if(D){let Y=fe(n,`${e}-color-${S}`,D.declaration,D.breakpoint,D.pseudo);if(Y){l.add(Y),n.mapped+=1,n.intentHits+=1,R(n,d?"intent.icon.color-preserve":"intent.typography.link-active-preserve");return}}}n.ignored+=1,R(n,"style.color");return}let K=En(S,x.breakpoint,x.variants);if(K){let P=fe(n,S,K.declaration,K.breakpoint,K.pseudo);if(P){l.add(P),n.mapped+=1,n.intentHits+=1,R(n,K.ruleId),x.breakpoint!=="base"&&j(n,`Generated responsive import fallback for ${z}.`);return}}for(let P of G.ignoredPatterns)if(P.pattern.test(S)){n.ignored+=1,R(n,P.id),P.id==="style.spacing.atomic"&&(n.removedAtomicSpacingCount+=1),P.id==="style.positioning.atomic"&&(n.removedAtomicPositioningCount+=1);return}if(C){n.unknown+=1,pi(n,z);return}l.add(z)}),m&&J(r,"spacing")&&(l.add(f||"stack-md"),n.mapped+=1,n.intentHits+=1,j(n,`Mapped ${b} to ${f||"stack-md"}.`)),y&&J(r,"spacing")&&j(n,`Mapped ${k} to gap utility.`);let v=Rn(u);if(v&&J(r,"grid")?(l.delete("grid-cols-1"),l.delete("grid-cols-2"),l.delete("grid-cols-3"),l.delete("grid-cols-4"),l.delete("grid-cols-6"),l.add("grid"),l.add(v),n.intentHits+=1,R(n,"intent.layout.responsive-grid-to-auto"),j(n,`Collapsed responsive grid columns to ${v}.`)):J(r,"grid")&&Lt.filter(x=>x!=="base"&&Number.isFinite(u[x])).forEach(x=>{let S=u[x],C=mi(x,S);if(C){l.add("grid"),l.add(C),n.intentHits+=1,R(n,"intent.layout.responsive-grid-to-auto"),j(n,`Mapped ${x}:grid-cols-${S} to ${C}.`);return}let E=fe(n,`grid-cols-${S}`,`grid-template-columns:repeat(${S}, minmax(0, 1fr))`,x);E&&(l.add("grid"),l.add(E),n.intentHits+=1,R(n,"fallback.import-style.grid-cols-responsive"),j(n,`Mapped ${x}:grid-cols-${S} to responsive import fallback for exact columns.`))}),J(r,"flex")&&a.includes("flex-col")&&(g.md==="flex-row"||g.lg==="flex-row")&&(l.delete("flex-col"),l.delete("flex-row"),l.add("mobile-stack"),n.intentHits+=1,R(n,"intent.layout.mobile-stack"),j(n,"Mapped flex-col + breakpoint flex-row to mobile-stack.")),(l.has("flex")||l.has("inline-flex"))&&J(r,"spacing")&&(hi(l)||bi(l)||y||m||(l.add("gap-sm"),n.intentHits+=1,R(n,"layout.spacing.flex-min-gap"),j(n,"Added gap-sm fallback for flex container without explicit spacing."))),a.some(z=>/^grid-cols-\d+$/.test(ie(z).base))&&l.has("grid")&&!yi(l)){let z=Rn(u);z?(l.add(z),n.intentHits+=1,R(n,"intent.layout.responsive-grid-to-auto"),j(n,`Applied grid safety fallback ${z} to avoid bare grid output.`)):Number.isFinite(u.base)&&u.base>1?(l.add(`grid-cols-${u.base}`),n.intentHits+=1,R(n,"intent.layout.grid-safety-fallback"),j(n,`Applied grid safety fallback grid-cols-${u.base} to preserve explicit grid intent.`)):(l.add("mobile-stack"),n.intentHits+=1,R(n,"intent.layout.grid-safety-fallback.mobile-stack"),j(n,"Applied mobile-stack safety fallback to avoid bare grid output when explicit grid intent was present."))}let T=a.some(z=>/^(?:bg-white|shadow|shadow-md|shadow-lg)$/.test(z)),F=a.some(z=>/^rounded/.test(z));if(["div","section","article","li","aside"].includes(e)&&T&&F&&(l.add("card"),!l.has("surface-elevated")&&a.some(z=>/^shadow/.test(z))&&l.add("surface-elevated"),!l.has("surface-base")&&a.includes("bg-white")&&l.add("surface-base"),n.intentHits+=1,R(n,"intent.component.card")),e==="button"||e==="a"){let z=a.some(C=>/^bg-(?:[a-z]+-)?[4567]00$/.test(C))&&a.includes("text-white"),x=a.some(C=>/^border/.test(C))&&!z,S=a.includes("p-2")&&a.includes("rounded-full");z?(l.delete("surface-base"),l.delete("surface-elevated"),l.add("btn-primary"),n.intentHits+=1,R(n,"intent.component.button.primary")):x&&(l.add("btn-outline"),n.intentHits+=1,R(n,"intent.component.button.outline")),S&&(l.add("icon-only"),R(n,"intent.component.button.icon-only"))}if(i.shouldNormalize){for(let x of Array.from(l))String(x).startsWith("import-")&&l.delete(x);["flex","inline-flex","items-start","items-center","items-end","justify-start","justify-center","justify-end","justify-between","shrink","self-start","self-center","self-end","cursor-pointer","truncate","overflow-hidden","whitespace-nowrap","surface-base","surface-elevated","surface-subtle","card"].forEach(x=>l.delete(x)),i.variant==="primary"?(l.add("btn-primary"),R(n,"intent.component.button.primary")):i.variant==="outline"&&(l.add("btn-outline"),R(n,"intent.component.button.outline")),i.size==="sm"?(l.add("btn-sm"),R(n,"intent.component.button.size-sm")):i.size==="lg"&&(l.add("btn-lg"),R(n,"intent.component.button.size-lg")),i.iconOnly&&(l.add("icon-only"),R(n,"intent.component.button.icon-only")),n.intentHits+=1,R(n,"intent.component.button.normalize")}if(s.shouldNormalize){for(let x of Array.from(l))String(x).startsWith("import-")&&l.delete(x);if(["flex","inline-flex","items-start","items-center","items-end","justify-start","justify-center","justify-end","justify-between","grow","shrink","self-start","self-center","self-end","cursor-pointer","truncate","overflow-hidden","whitespace-nowrap","text-muted","surface-base","surface-elevated","surface-subtle","card"].forEach(x=>l.delete(x)),l.add("badge"),s.variantClass&&l.add(s.variantClass),s.outline&&l.add("badge-outline"),s.sizeClass&&l.add(s.sizeClass),s.pastel&&s.pastel.family){let x=Ye(s.pastel.family,String(s.pastel.bgShade||200)),S=Ye(s.pastel.family,String(s.pastel.textShade||700));if(x&&S){let C=`badge-pastel-${s.pastel.family}-${s.pastel.bgShade}-${s.pastel.textShade}`,E=fe(n,C,`background-color:${x};color:${S}`,"base");E&&(l.add(E),R(n,"intent.component.badge.pastel-preserve"),j(n,`Preserved pastel badge tone using ${E}.`))}}n.intentHits+=1,R(n,"intent.component.badge.normalize"),j(n,"Normalized badge/pill utility cluster to PDS badge classes.")}if(p.shouldNormalize){for(let x of Array.from(l))String(x).startsWith("import-")&&l.delete(x);["surface-base","surface-subtle","surface-elevated","surface-sunken","surface-overlay","surface-inverse","surface-primary","surface-secondary","surface-success","surface-warning","surface-danger","surface-info","card-basic","card-elevated","card-outlined","card-interactive"].forEach(x=>l.delete(x)),l.add("card"),p.cardVariantClass&&l.add(p.cardVariantClass),p.surfaceClass&&l.add(p.surfaceClass),n.intentHits+=1,R(n,"intent.component.card.normalize"),j(n,"Normalized card utility cluster to PDS card/surface classes.")}if(e==="a"&&!i.shouldNormalize&&a.some(x=>x.includes("hover:text")||x==="transition-colors")){let x=fe(n,"link-reset","text-decoration:none");x&&l.add(x),n.intentHits+=1,R(n,"intent.typography.link-treatment")}if(e==="footer"&&(l.has("surface-base")||a.some(x=>/^bg-/.test(x)))&&(l.delete("surface-base"),l.delete("surface-subtle"),l.add("surface-inverse"),n.intentHits+=1,R(n,"intent.surface.footer-inverse")),o?.listReset&&["ul","ol","menu"].includes(e)){let z=fe(n,"list-reset","list-style:none;margin:0;padding:0");z&&(l.add(z),n.intentHits+=1,R(n,"intent.preflight.list-reset"))}if(o?.anchorReset&&e==="a"&&!i.shouldNormalize){let z=fe(n,"anchor-reset","color:inherit;text-decoration:inherit");z&&(l.add(z),n.intentHits+=1,R(n,"intent.preflight.anchor-reset"))}let M=new Set(["div","section","article","aside","nav","main","header","footer","form","fieldset","ul","ol","li"]),N=a.some(z=>{let x=ie(z).base;return/^(?:flex|grid|container|gap-|space-[xy]-|items-|justify-|content-|place-|self-|w-|h-|min-|max-)/.test(x)});return l.size===0&&M.has(e)&&N&&(l.add("stack-sm"),j(n,`Added stack-sm fallback for <${e}> with unmapped classes.`)),Array.from(l).join(" ")}function Ci(e="",t={}){let r=String(e||""),n=ui(t.config||{}),o=oi(t.config||{}),a=si(),i=di(r,a),p=Ha(i.html,a).replace(/<([a-zA-Z][\w:-]*)([^>]*?)\sclass\s*=\s*(["'])(.*?)\3([^>]*)>/gs,(A,T,F,I,L,M)=>{let N=Li({tagName:String(T||"").toLowerCase(),originalClassValue:L,policy:n,summary:a,preflightHints:i.hints}),z=String(N||"").trim();return z?`<${T}${F} class=${I}${z}${I}${M}>`:`<${T}${F}${M}>`}),c=ri(Xa(Ya(Ja(p,a),a),a),a,{config:t.config||{}}),d=ai(a,o),l=ii(c,d);d&&j(a,`Generated ${a.importedStyleCount} import-* fallback style mappings.`),(a.removedAtomicSpacingCount>0||a.removedAtomicPositioningCount>0)&&j(a,`Removed atomic utilities by policy: spacing=${a.removedAtomicSpacingCount}, positioning=${a.removedAtomicPositioningCount}.`);let u=vi(a,16),g=a.mapped+a.ignored+a.policySkipped,m=a.totalTailwind>0?g/a.totalTailwind:1,b=a.totalTailwind>0?a.unknown/a.totalTailwind:0,f=.42+m*.45+Math.min(a.intentHits,4)*.025-b*.18,y=Math.max(.15,Math.min(.96,Number(f.toFixed(2)))),k=[`pds-import: rulebook=${$n} confidence=${Math.round(y*100)}%`,`pds-import: tailwind=${a.totalTailwind} mapped=${a.mapped} ignored=${a.ignored} policySkipped=${a.policySkipped} unknown=${a.unknown}`];u.length&&k.push(`pds-import: unknown-tailwind=${u.join(", ")}`),a.notes.length&&k.push(`pds-import: notes=${a.notes.join(" | ")}`);let v=`<!-- ${k.join(` -->
3918
+ ${t}`}function An(t=""){if(!t)return!1;if(t.includes(":")||t.includes("["))return!0;let e=t.split("-")[0];return Ha.includes(e)}function ie(t=""){let e=String(t).split(":");if(e.length===1)return{breakpoint:"base",base:e[0],variants:[]};let r=e[e.length-1],n=e.slice(0,-1);return{breakpoint:n.find(a=>zt.includes(a))||"base",base:r,variants:n}}function si(){return{totalTailwind:0,mapped:0,ignored:0,policySkipped:0,unknown:0,intentHits:0,unknownTokens:new Map,notes:[],appliedRules:new Set,importBaseStyles:new Map,importResponsiveStyles:new Map,importPseudoStyles:new Map,importedStyleCount:0,labelNestingCount:0,removedAtomicSpacingCount:0,removedAtomicPositioningCount:0}}function li(t=""){let e=String(t||"").toLowerCase().replace(/\s+/g,""),r=e.includes("menu,ol,ul{list-style:none")||e.includes("ol,ul,menu{list-style:none")||e.includes("ul,ol,menu{list-style:none"),n=e.includes("a{color:inherit;text-decoration:inherit");return{listReset:r,anchorReset:n}}function ci(t=""){return String(t||"").toLowerCase().includes("cdn.tailwindcss.com")?{listReset:!0,anchorReset:!0}:{listReset:!1,anchorReset:!1}}function di(t="",e=null){let r=String(t||""),n={listReset:!1,anchorReset:!1,strippedRuntimeCssBlocks:0,strippedRuntimeScripts:0};return r=r.replace(/<style([^>]*)>([\s\S]*?)<\/style>/gi,(o,a,i)=>{let s=String(i||"");if(!(/tailwindcss\s+v\d/i.test(s)||/\*\s*!\s*tailwindcss/i.test(s)))return o;let c=li(s);return n.listReset=n.listReset||c.listReset,n.anchorReset=n.anchorReset||c.anchorReset,n.strippedRuntimeCssBlocks+=1,""}),r=r.replace(/<script([^>]*?)src\s*=\s*(?:(['"])([^"']*cdn\.tailwindcss\.com[^"']*)\2|([^\s>]*cdn\.tailwindcss\.com[^\s>]*))([^>]*)><\/script>/gi,(o,a,i,s,d)=>{let p=ci(s||d||"");return n.listReset=n.listReset||p.listReset,n.anchorReset=n.anchorReset||p.anchorReset,n.strippedRuntimeScripts+=1,""}),e&&(n.strippedRuntimeCssBlocks>0||n.strippedRuntimeScripts>0)&&(_(e,"intent.preflight.tailwind-runtime-detected"),n.strippedRuntimeCssBlocks>0&&j(e,`Detected and stripped ${n.strippedRuntimeCssBlocks} Tailwind runtime style block(s).`)),e&&n.strippedRuntimeScripts>0&&j(e,`Removed ${n.strippedRuntimeScripts} Tailwind CDN script reference(s).`),{html:r,hints:n}}function j(t,e){!t||!e||t.notes.includes(e)||t.notes.push(e)}function pi(t,e){let r=t.unknownTokens.get(e)||0;t.unknownTokens.set(e,r+1)}function ui(t={}){let r=(t?.design&&typeof t.design=="object"?t.design:t)?.layout?.utilities||{};return{grid:r.grid!==!1,flex:r.flex!==!1,spacing:r.spacing!==!1,container:r.container!==!1}}function J(t,e){return e?t?.[e]!==!1:!0}function Tn(t){let e=String(t).match(/^grid-cols-(\d+)$/);return e?Number(e[1]):null}function Rn(t={}){let e=zt.map(o=>({bp:o,cols:t[o]})).filter(o=>Number.isFinite(o.cols));if(e.length<2)return null;if(e.length===2){let[o,a]=e;if(o.bp==="base"&&o.cols===1&&a.cols===2)return"grid-auto-lg";if(o.bp==="base"&&o.cols===1&&a.cols>=3)return null;if(o.cols<a.cols){if(a.cols>=4)return"grid-auto-md";if(a.cols>=2)return"grid-auto-lg"}return null}let r=!0;for(let o=1;o<e.length;o+=1)if(e[o].cols<=e[o-1].cols){r=!1;break}if(!r)return null;let n=e[e.length-1]?.cols||0;return n>=4?"grid-auto-md":n>=3?"grid-auto-sm":null}function gi(t=""){let e=String(t).match(/^text-(gray|slate|zinc|neutral|stone)-(\d{2,3})$/);if(!e)return"";let r=Number(e[2]);return Number.isFinite(r)&&r>=400&&r<=600?"text-muted":""}function fi(t="",e=0){return!t||!Number.isFinite(e)?"":{sm:{2:"sm:grid-cols-2"},md:{3:"md:grid-cols-3"},lg:{4:"lg:grid-cols-4"}}?.[t]?.[e]||""}function mi(t=""){let e=ie(t),n=String(e?.base||"").match(/^space-y-(\d+)$/);if(!n)return"stack-md";let o=Number(n[1]);return Number.isFinite(o)?o<=1?"stack-xs":o<=2?"stack-sm":o<=4?"stack-md":"stack-lg":"stack-md"}function hi(t=new Set){return Array.from(t).some(e=>{let r=String(e||"");return/^gap-(?:xs|sm|md|lg|xl)$/.test(r)||/^gap-[0-9]+$/.test(r)||/^import-(?:sm-|md-|lg-|xl-)?gap-/.test(r)})}function bi(t=new Set){return Array.from(t).some(e=>/^stack-(?:xs|sm|md|lg|xl)$/.test(String(e||"")))}function yi(t=new Set){return Array.from(t).some(e=>{let r=String(e||"");return/^grid-cols-\d+$/.test(r)||/^grid-auto-(?:sm|md|lg|xl)$/.test(r)||/^(?:sm|md|lg|xl):grid-cols-\d+$/.test(r)||/^import-(?:sm-|md-|lg-|xl-)?grid-cols-\d+$/.test(r)})}function vi(t,e=12){return Array.from(t.unknownTokens.entries()).sort((r,n)=>n[1]-r[1]).slice(0,e).map(([r])=>r)}function _(t,e){!t||!e||t.appliedRules.add(e)}function le(t=[],e){return!Array.isArray(t)||!e?!1:t.some(r=>e.test(String(r)))}function xi(t=[]){for(let e of t){let r=ie(e);if(r.breakpoint!=="base")continue;let n=String(r.base).match(/^h-(.+)$/);if(!n)continue;let o=Ke(n[1]);if(!o||o==="auto")continue;let a=String(o).match(/^(-?\d+(?:\.\d+)?)rem$/);if(a){let i=Number(a[1]);if(Number.isFinite(i))return i*16}}return null}function wi(t=[],e=""){let r=e==="button",n=le(t,/^bg-/),o=le(t,/^hover:bg-/),a=le(t,/^border/),i=le(t,/^shadow/),s=t.includes("cursor-pointer"),d=le(t,/^rounded/),c=le(t,/^(?:min-w|max-w|w)-/),p=le(t,/^text-(?:white|black|\[[^\]]+\]|[a-z]+-\d{2,3})$/),l=n||o||i;if(!(r||e==="a"&&(l||a||s||d&&c)))return{shouldNormalize:!1,variant:"none",size:"base",iconOnly:!1};let f="none";a&&!n&&!o?f="outline":(l||n&&p)&&(f="primary");let w=t.includes("rounded-full")&&(t.includes("p-2")||t.includes("p-1")||t.includes("p-2.5")),b=le(t,/^size-(?:6|7|8|9|10|11|12)$/),m=w||b,y=xi(t),v=t.includes("text-sm")||t.includes("text-xs"),h=t.includes("text-lg")||t.includes("text-xl"),$="base";return y&&y<=40||v?$="sm":(y&&y>=48||h)&&($="lg"),{shouldNormalize:!0,variant:f,size:$,iconOnly:m}}function ki(t=""){let e=String(t||"").toLowerCase();return["green","emerald","lime","teal"].includes(e)?"badge-success":["blue","sky","cyan","indigo"].includes(e)?"badge-info":["yellow","amber","orange"].includes(e)?"badge-warning":["red","rose","pink"].includes(e)?"badge-danger":["gray","slate","zinc","neutral","stone"].includes(e)?"badge-secondary":["purple","violet","fuchsia","primary","accent"].includes(e)?"badge-primary":"badge-secondary"}function Si(t=[],e="",r={shouldNormalize:!1}){if(r?.shouldNormalize)return{shouldNormalize:!1,variantClass:"",outline:!1,sizeClass:"",pastel:null};if(["button","a","input","select","textarea"].includes(e))return{shouldNormalize:!1,variantClass:"",outline:!1,sizeClass:"",pastel:null};if(t.some(M=>/^badge(?:-|$)/.test(String(M))))return{shouldNormalize:!1,variantClass:"",outline:!1,sizeClass:"",pastel:null};let n=t.map(M=>ie(M)).filter(M=>M.breakpoint==="base").map(M=>String(M.base)),o=n.some(M=>/^rounded(?:-|$)/.test(M)),a=n.some(M=>/^px-/.test(M)),i=n.some(M=>/^py-/.test(M)),s=a&&i,d=n.includes("text-xs")||n.includes("text-sm"),c=n.includes("text-lg")||n.includes("text-xl"),p=n.map(M=>M.match(/^bg-([a-z]+)-(\d{2,3})(?:\/\d{1,3})?$/)).find(Boolean),l=n.map(M=>M.match(/^text-([a-z]+)-(\d{2,3})(?:\/\d{1,3})?$/)).find(Boolean),u=n.map(M=>M.match(/^border-([a-z]+)-(\d{2,3})$/)).find(Boolean),g=Number(p?.[2]),f=Number(l?.[2]),w=!!(p&&Number.isFinite(g)&&g<=300),b=n.some(M=>/^border(?:-|$)/.test(M)),m=!!(p||l||u),y=[o,s,d,w||b].filter(Boolean).length;if(!(m&&y>=3))return{shouldNormalize:!1,variantClass:"",outline:!1,sizeClass:"",pastel:null};let h=p&&p[1]||l&&l[1]||u&&u[1]||"",$=ki(h),A=b&&!w,T=d?"badge-sm":c?"badge-lg":"",I=w?{family:h,bgShade:Number.isFinite(g)?g:200,textShade:Number.isFinite(f)?f:700}:null;return{shouldNormalize:!0,variantClass:I?"":$,outline:A,sizeClass:T,pastel:I}}function $i(t="",e=0){let r=String(t||"").toLowerCase(),n=Number(e);return r==="white"?"surface-base":["gray","slate","zinc","neutral","stone"].includes(r)?Number.isFinite(n)&&n<=100?"surface-base":"surface-subtle":["blue","sky","cyan","indigo","primary","info"].includes(r)?"surface-info":["purple","violet","fuchsia","accent"].includes(r)?"surface-primary":["green","emerald","lime","teal","success"].includes(r)?"surface-success":["yellow","amber","orange","warning"].includes(r)?"surface-warning":["red","rose","pink","danger"].includes(r)?"surface-danger":"surface-base"}function Li(t=[],e="",r={shouldNormalize:!1},n={shouldNormalize:!1}){if(r?.shouldNormalize||n?.shouldNormalize)return{shouldNormalize:!1,cardVariantClass:"",surfaceClass:""};if(!new Set(["div","section","article","aside","li"]).has(e))return{shouldNormalize:!1,cardVariantClass:"",surfaceClass:""};if(t.some(b=>/^card(?:-|$)/.test(String(b))))return{shouldNormalize:!1,cardVariantClass:"",surfaceClass:""};let a=t.map(b=>ie(b)).filter(b=>b.breakpoint==="base").map(b=>String(b.base)),i=a.some(b=>/^rounded(?:-|$)/.test(b)),s=a.some(b=>/^border(?:$|-)/.test(b)),d=a.some(b=>/^shadow(?:$|-)/.test(b)),c=a.some(b=>/^(?:p|px|py|pt|pb|pl|pr)-/.test(b)),p=a.map(b=>b.match(/^bg-([a-z]+)-?(\d{2,3})?$/)).find(Boolean),l=a.includes("bg-white")||!!p;if(!([i,s||d,l,c].filter(Boolean).length>=3))return{shouldNormalize:!1,cardVariantClass:"",surfaceClass:""};let f="card-basic";d?f="card-elevated":s&&(f="card-outlined");let w="";return d?w="surface-elevated":p?w=$i(p[1],p[2]):l&&(w="surface-base"),{shouldNormalize:!0,cardVariantClass:f,surfaceClass:w}}function zi({tagName:t,originalClassValue:e,policy:r,summary:n,preflightHints:o={}}){if(Oa.has(t))return _(n,"table.strict-tags.no-classes"),"";let a=String(e).split(/\s+/).filter(Boolean),i=wi(a,t),s=Si(a,t,i),d=Li(a,t,i,s),c=/^h[1-6]$/.test(t),p=["i","svg"].includes(t)||a.some(C=>/^fa(?:[a-z-]+)?$/i.test(String(C||""))||/^fa-/.test(String(C||""))),l=new Set,u={},g={},f=!1,w="",b="",m=!1,y="";a.forEach(C=>{let k=ie(C),L=k.base;if(ja.some(N=>N.test(L))){n.ignored+=1,_(n,"cleanup.non-pds-class");return}let E=An(C)||An(L);if(E&&(n.totalTailwind+=1),/^space-y-/.test(L)){f=!0,w=w||C,b=b||mi(C),n.ignored+=1,_(n,"layout.spacing.space-y-to-stack");return}if(/^space-x-/.test(L)){let N=String(L).match(/^space-x-(\d+)$/);if(N){let D=`gap-${N[1]}`,Y=ur.get(D);if(Y&&J(r,"spacing")){l.add(Y),m=!0,y=y||C,n.mapped+=1,n.intentHits+=1,_(n,"layout.spacing.space-x-to-gap");return}}n.ignored+=1,_(n,"style.spacing.atomic");return}if(/^grid-cols-\d+$/.test(L)&&k.breakpoint!=="base"){let N=Tn(L);if(Number.isFinite(N)&&J(r,"grid")){u[k.breakpoint]=N,n.mapped+=1,_(n,"intent.layout.responsive-grid-to-auto");return}if(!J(r,"grid")){n.policySkipped+=1,j(n,"Skipped responsive grid mapping because layout.utilities.grid=false.");return}}if(/^flex-(?:row|col)$/.test(L)&&k.breakpoint!=="base"){if(J(r,"flex")){g[k.breakpoint]=L,n.mapped+=1,_(n,"intent.layout.mobile-stack");return}n.policySkipped+=1,j(n,"Skipped responsive flex mapping because layout.utilities.flex=false.");return}if(/^grid-cols-\d+$/.test(L)&&k.breakpoint==="base"){let N=Tn(L);Number.isFinite(N)&&J(r,"grid")&&(u.base=N)}let R=Na.get(L);if(R&&k.breakpoint==="base"){if(!J(r,R.gate)){n.policySkipped+=1,j(n,`Skipped ${L} because layout.utilities.${R.gate}=false.`);return}R.pds.forEach(N=>{N&&l.add(N)}),n.mapped+=1,_(n,R.id);return}if(ur.has(L)&&k.breakpoint==="base"){if(!J(r,"spacing")){n.policySkipped+=1,j(n,"Skipped gap utility because layout.utilities.spacing=false.");return}l.add(ur.get(L)),n.mapped+=1,_(n,"layout.spacing.gap-scale");return}if(Ln.has(L)&&k.breakpoint==="base"){if(!J(r,"container")){n.policySkipped+=1,j(n,"Skipped max-width utility because layout.utilities.container=false.");return}l.add(Ln.get(L)),n.mapped+=1,_(n,"layout.container.max-width");return}if(i.shouldNormalize&&E){let N=String(L||"");if(k.breakpoint==="base"&&["flex-1","grow","flex-grow"].includes(N)){l.add("grow"),n.mapped+=1,n.intentHits+=1,_(n,"intent.component.button.layout-grow");return}if(/^(?:bg-|text-(?!center$|left$|right$)|font-|leading-|tracking-|rounded|ring|border|shadow|outline|transition|duration|ease|delay|animate|p|px|py|pt|pb|pl|pr|m|mx|my|mt|mb|ml|mr|w-|h-|min-|max-|size-|overflow)/.test(N)||N.startsWith("hover:")){n.ignored+=1,_(n,"intent.component.button.normalize");return}}if(c&&/^(?:text-(?:xs|sm|base|lg|xl|\dxl|white|black|\[[^\]]+\]|[a-z]+-\d{2,3})|font-|leading-|tracking-|uppercase|lowercase|capitalize)/.test(L)){n.ignored+=1,n.intentHits+=1,_(n,"intent.typography.heading-semantic");return}if(s.shouldNormalize&&E){let N=String(L||"");if(/^(?:bg-|text-(?!center$|left$|right$)|font-|leading-|tracking-|rounded|ring|border|shadow|outline|transition|duration|ease|delay|animate|p|px|py|pt|pb|pl|pr|m|mx|my|mt|mb|ml|mr|w-|h-|min-|max-|size-|overflow)/.test(N)||N.startsWith("hover:")){n.ignored+=1,_(n,"intent.component.badge.normalize");return}}if(d.shouldNormalize&&E){let N=String(L||"");if(/^(?:bg-|text-(?!center$|left$|right$)|font-|leading-|tracking-|rounded|ring|border|shadow|outline|transition|duration|ease|delay|animate|p|px|py|pt|pb|pl|pr|m|mx|my|mt|mb|ml|mr)/.test(N)||N.startsWith("hover:")){n.ignored+=1,_(n,"intent.component.card.normalize");return}}let O=gi(L);if(O&&k.breakpoint==="base"){l.add(O),n.mapped+=1,n.intentHits+=1,_(n,"intent.typography.text-neutral-to-muted");return}if(/^text-(?:white|black|[a-z]+-\d{2,3}|\[[^\]]+\])$/.test(L)){if(p||t==="a"&&!i.shouldNormalize){let D=En(L,k.breakpoint,k.variants);if(D){let Y=me(n,`${t}-color-${L}`,D.declaration,D.breakpoint,D.pseudo);if(Y){l.add(Y),n.mapped+=1,n.intentHits+=1,_(n,p?"intent.icon.color-preserve":"intent.typography.link-active-preserve");return}}}n.ignored+=1,_(n,"style.color");return}let K=En(L,k.breakpoint,k.variants);if(K){let N=me(n,L,K.declaration,K.breakpoint,K.pseudo);if(N){l.add(N),n.mapped+=1,n.intentHits+=1,_(n,K.ruleId),k.breakpoint!=="base"&&j(n,`Generated responsive import fallback for ${C}.`);return}}for(let N of V.ignoredPatterns)if(N.pattern.test(L)){n.ignored+=1,_(n,N.id),N.id==="style.spacing.atomic"&&(n.removedAtomicSpacingCount+=1),N.id==="style.positioning.atomic"&&(n.removedAtomicPositioningCount+=1);return}if(E){n.unknown+=1,pi(n,C);return}l.add(C)}),f&&J(r,"spacing")&&(l.add(b||"stack-md"),n.mapped+=1,n.intentHits+=1,j(n,`Mapped ${w} to ${b||"stack-md"}.`)),m&&J(r,"spacing")&&j(n,`Mapped ${y} to gap utility.`);let v=Rn(u);if(v&&J(r,"grid")?(l.delete("grid-cols-1"),l.delete("grid-cols-2"),l.delete("grid-cols-3"),l.delete("grid-cols-4"),l.delete("grid-cols-6"),l.add("grid"),l.add(v),n.intentHits+=1,_(n,"intent.layout.responsive-grid-to-auto"),j(n,`Collapsed responsive grid columns to ${v}.`)):J(r,"grid")&&zt.filter(k=>k!=="base"&&Number.isFinite(u[k])).forEach(k=>{let L=u[k],E=fi(k,L);if(E){l.add("grid"),l.add(E),n.intentHits+=1,_(n,"intent.layout.responsive-grid-to-auto"),j(n,`Mapped ${k}:grid-cols-${L} to ${E}.`);return}let R=me(n,`grid-cols-${L}`,`grid-template-columns:repeat(${L}, minmax(0, 1fr))`,k);R&&(l.add("grid"),l.add(R),n.intentHits+=1,_(n,"fallback.import-style.grid-cols-responsive"),j(n,`Mapped ${k}:grid-cols-${L} to responsive import fallback for exact columns.`))}),J(r,"flex")&&a.includes("flex-col")&&(g.md==="flex-row"||g.lg==="flex-row")&&(l.delete("flex-col"),l.delete("flex-row"),l.add("mobile-stack"),n.intentHits+=1,_(n,"intent.layout.mobile-stack"),j(n,"Mapped flex-col + breakpoint flex-row to mobile-stack.")),(l.has("flex")||l.has("inline-flex"))&&J(r,"spacing")&&(hi(l)||bi(l)||m||f||(l.add("gap-sm"),n.intentHits+=1,_(n,"layout.spacing.flex-min-gap"),j(n,"Added gap-sm fallback for flex container without explicit spacing."))),a.some(C=>/^grid-cols-\d+$/.test(ie(C).base))&&l.has("grid")&&!yi(l)){let C=Rn(u);C?(l.add(C),n.intentHits+=1,_(n,"intent.layout.responsive-grid-to-auto"),j(n,`Applied grid safety fallback ${C} to avoid bare grid output.`)):Number.isFinite(u.base)&&u.base>1?(l.add(`grid-cols-${u.base}`),n.intentHits+=1,_(n,"intent.layout.grid-safety-fallback"),j(n,`Applied grid safety fallback grid-cols-${u.base} to preserve explicit grid intent.`)):(l.add("mobile-stack"),n.intentHits+=1,_(n,"intent.layout.grid-safety-fallback.mobile-stack"),j(n,"Applied mobile-stack safety fallback to avoid bare grid output when explicit grid intent was present."))}let A=a.some(C=>/^(?:bg-white|shadow|shadow-md|shadow-lg)$/.test(C)),T=a.some(C=>/^rounded/.test(C));if(["div","section","article","li","aside"].includes(t)&&A&&T&&(l.add("card"),!l.has("surface-elevated")&&a.some(C=>/^shadow/.test(C))&&l.add("surface-elevated"),!l.has("surface-base")&&a.includes("bg-white")&&l.add("surface-base"),n.intentHits+=1,_(n,"intent.component.card")),t==="button"||t==="a"){let C=a.some(E=>/^bg-(?:[a-z]+-)?[4567]00$/.test(E))&&a.includes("text-white"),k=a.some(E=>/^border/.test(E))&&!C,L=a.includes("p-2")&&a.includes("rounded-full");C?(l.delete("surface-base"),l.delete("surface-elevated"),l.add("btn-primary"),n.intentHits+=1,_(n,"intent.component.button.primary")):k&&(l.add("btn-outline"),n.intentHits+=1,_(n,"intent.component.button.outline")),L&&(l.add("icon-only"),_(n,"intent.component.button.icon-only"))}if(i.shouldNormalize){for(let k of Array.from(l))String(k).startsWith("import-")&&l.delete(k);["flex","inline-flex","items-start","items-center","items-end","justify-start","justify-center","justify-end","justify-between","shrink","self-start","self-center","self-end","cursor-pointer","truncate","overflow-hidden","whitespace-nowrap","surface-base","surface-elevated","surface-subtle","card"].forEach(k=>l.delete(k)),i.variant==="primary"?(l.add("btn-primary"),_(n,"intent.component.button.primary")):i.variant==="outline"&&(l.add("btn-outline"),_(n,"intent.component.button.outline")),i.size==="sm"?(l.add("btn-sm"),_(n,"intent.component.button.size-sm")):i.size==="lg"&&(l.add("btn-lg"),_(n,"intent.component.button.size-lg")),i.iconOnly&&(l.add("icon-only"),_(n,"intent.component.button.icon-only")),n.intentHits+=1,_(n,"intent.component.button.normalize")}if(s.shouldNormalize){for(let k of Array.from(l))String(k).startsWith("import-")&&l.delete(k);if(["flex","inline-flex","items-start","items-center","items-end","justify-start","justify-center","justify-end","justify-between","grow","shrink","self-start","self-center","self-end","cursor-pointer","truncate","overflow-hidden","whitespace-nowrap","text-muted","surface-base","surface-elevated","surface-subtle","card"].forEach(k=>l.delete(k)),l.add("badge"),s.variantClass&&l.add(s.variantClass),s.outline&&l.add("badge-outline"),s.sizeClass&&l.add(s.sizeClass),s.pastel&&s.pastel.family){let k=Ye(s.pastel.family,String(s.pastel.bgShade||200)),L=Ye(s.pastel.family,String(s.pastel.textShade||700));if(k&&L){let E=`badge-pastel-${s.pastel.family}-${s.pastel.bgShade}-${s.pastel.textShade}`,R=me(n,E,`background-color:${k};color:${L}`,"base");R&&(l.add(R),_(n,"intent.component.badge.pastel-preserve"),j(n,`Preserved pastel badge tone using ${R}.`))}}n.intentHits+=1,_(n,"intent.component.badge.normalize"),j(n,"Normalized badge/pill utility cluster to PDS badge classes.")}if(d.shouldNormalize){for(let k of Array.from(l))String(k).startsWith("import-")&&l.delete(k);["surface-base","surface-subtle","surface-elevated","surface-sunken","surface-overlay","surface-inverse","surface-primary","surface-secondary","surface-success","surface-warning","surface-danger","surface-info","card-basic","card-elevated","card-outlined","card-interactive"].forEach(k=>l.delete(k)),l.add("card"),d.cardVariantClass&&l.add(d.cardVariantClass),d.surfaceClass&&l.add(d.surfaceClass),n.intentHits+=1,_(n,"intent.component.card.normalize"),j(n,"Normalized card utility cluster to PDS card/surface classes.")}if(t==="a"&&!i.shouldNormalize&&a.some(k=>k.includes("hover:text")||k==="transition-colors")){let k=me(n,"link-reset","text-decoration:none");k&&l.add(k),n.intentHits+=1,_(n,"intent.typography.link-treatment")}if(t==="footer"&&(l.has("surface-base")||a.some(k=>/^bg-/.test(k)))&&(l.delete("surface-base"),l.delete("surface-subtle"),l.add("surface-inverse"),n.intentHits+=1,_(n,"intent.surface.footer-inverse")),o?.listReset&&["ul","ol","menu"].includes(t)){let C=me(n,"list-reset","list-style:none;margin:0;padding:0");C&&(l.add(C),n.intentHits+=1,_(n,"intent.preflight.list-reset"))}if(o?.anchorReset&&t==="a"&&!i.shouldNormalize){let C=me(n,"anchor-reset","color:inherit;text-decoration:inherit");C&&(l.add(C),n.intentHits+=1,_(n,"intent.preflight.anchor-reset"))}let M=new Set(["div","section","article","aside","nav","main","header","footer","form","fieldset","ul","ol","li"]),P=a.some(C=>{let k=ie(C).base;return/^(?:flex|grid|container|gap-|space-[xy]-|items-|justify-|content-|place-|self-|w-|h-|min-|max-)/.test(k)});return l.size===0&&M.has(t)&&P&&(l.add("stack-sm"),j(n,`Added stack-sm fallback for <${t}> with unmapped classes.`)),Array.from(l).join(" ")}function Ci(t="",e={}){let r=String(t||""),n=ui(e.config||{}),o=oi(e.config||{}),a=si(),i=di(r,a),d=Wa(i.html,a).replace(/<([a-zA-Z][\w:-]*)([^>]*?)\sclass\s*=\s*(["'])(.*?)\3([^>]*)>/gs,($,A,T,I,z,M)=>{let P=zi({tagName:String(A||"").toLowerCase(),originalClassValue:z,policy:n,summary:a,preflightHints:i.hints}),C=String(P||"").trim();return C?`<${A}${T} class=${I}${C}${I}${M}>`:`<${A}${T}${M}>`}),c=ri(Za(Ya(Ja(d,a),a),a),a,{config:e.config||{}}),p=ai(a,o),l=ii(c,p);p&&j(a,`Generated ${a.importedStyleCount} import-* fallback style mappings.`),(a.removedAtomicSpacingCount>0||a.removedAtomicPositioningCount>0)&&j(a,`Removed atomic utilities by policy: spacing=${a.removedAtomicSpacingCount}, positioning=${a.removedAtomicPositioningCount}.`);let u=vi(a,16),g=a.mapped+a.ignored+a.policySkipped,f=a.totalTailwind>0?g/a.totalTailwind:1,w=a.totalTailwind>0?a.unknown/a.totalTailwind:0,b=.42+f*.45+Math.min(a.intentHits,4)*.025-w*.18,m=Math.max(.15,Math.min(.96,Number(b.toFixed(2)))),y=[`pds-import: rulebook=${$n} confidence=${Math.round(m*100)}%`,`pds-import: tailwind=${a.totalTailwind} mapped=${a.mapped} ignored=${a.ignored} policySkipped=${a.policySkipped} unknown=${a.unknown}`];u.length&&y.push(`pds-import: unknown-tailwind=${u.join(", ")}`),a.notes.length&&y.push(`pds-import: notes=${a.notes.join(" | ")}`);let v=`<!-- ${y.join(` -->
3744
3919
  <!-- `)} -->
3745
- ${l}`,$=[];return a.unknown>0&&$.push({severity:"warning",message:`Converted with ${a.unknown} unknown Tailwind utilities requiring manual review.`}),a.policySkipped>0&&$.push({severity:"info",message:`Skipped ${a.policySkipped} utility mappings due to PDS config policy.`}),u.length&&$.push({severity:"info",message:`Top unknown utilities: ${u.slice(0,8).join(", ")}`}),{html:v,confidence:y,issues:$,meta:{rulebookVersion:$n,coverage:{tailwind:a.totalTailwind,mapped:a.mapped,ignored:a.ignored,policySkipped:a.policySkipped,unknown:a.unknown,importedStyles:a.importedStyleCount,nestedLabelPairs:a.labelNestingCount},unknownTailwindTokens:u,notes:a.notes,appliedRules:Array.from(a.appliedRules),policy:n,importStyleSheetInjected:!!d,breakpoints:o}}}function Mi(){return{rulesJsonPath:Pa,...G,directMappings:G.directMappings.map(e=>({id:e.id,tw:e.tw,pds:e.pds,gate:e.gate||null})),ignoredPatterns:G.ignoredPatterns.map(e=>({id:e.id,pattern:String(e.pattern),reason:e.reason}))}}function Ei(e){let t=String(e||"").match(/#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})\b/);return t?t[0]:null}function Ti(e){return String(e||"").replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;").replaceAll('"',"&quot;").replaceAll("'","&#39;")}function Nn(e){return/<\s*[a-z][^>]*>/i.test(String(e||""))}function Ai(e){let t=String(e||"").trim().toLowerCase();if(!t)return null;let r=Number.parseFloat(t);return Number.isFinite(r)?t.endsWith("rem")||t.endsWith("em")?r*16:t.endsWith("px")||/^[0-9.\-]+$/.test(t)?r:null:null}function ee(e){let t=String(e||"").trim();if(!t)return"";let r=t.match(/#(?:[0-9a-f]{3,8})\b/i);if(r)return r[0].toLowerCase();let n=t.match(/rgba?\([^)]*\)/i);if(n)return n[0];let o=t.match(/hsla?\([^)]*\)/i);return o?o[0]:""}function Ri(e=""){let t=String(e||"").trim();if(!t||typeof window>"u"||typeof document>"u")return"";let r=document.documentElement;if(!r)return"";let n=window.getComputedStyle(r);return String(n.getPropertyValue(t)||"").trim()}function _i(e=""){let t=String(e||"").trim(),r=ee(t);if(r)return r;let n=t.match(/var\(\s*(--[^\s,)]+)\s*(?:,[^)]+)?\)/i);if(!n)return"";let o=Ri(n[1]);return ee(o)}function Fi(e=""){let t=String(e||"").trim();if(!t)return"";let r=t.split(":").pop()||t;if(r==="bg-white")return"#ffffff";if(r==="bg-black")return"#000000";let n=r.match(/^bg-black\/(\d{1,3})$/i);if(n)return`rgba(0,0,0,${Math.max(0,Math.min(100,Number(n[1])))/100})`;let o=r.match(/^bg-\[([^\]]+)\]$/i);if(o)return ee(o[1]);let a=r.match(/^bg-([a-z]+)-(\d{2,3})$/i);if(!a)return"";let i=Ye(a[1],a[2]);return i?_i(i):""}function _n(e=""){return String(e||"").split(/\s+/).map(r=>r.trim()).filter(Boolean).map(r=>Fi(r)).filter(Boolean)}function Pi(e=""){let t=[],r=String(e||""),n=/([^{}]+)\{([^{}]*)\}/g,o=n.exec(r);for(;o;){let a=String(o[1]||"").trim(),i=String(o[2]||"").trim();a&&i&&t.push({selector:a,body:i}),o=n.exec(r)}return t}function Ni(e=""){let t=String(e||"").toLowerCase();return t?/(^|\s|,)(html|body|:root|main)(\s|,|$)|#app\b|#root\b|\.app\b|\.page\b/.test(t):!1}function Ii(e=""){let t=String(e||"").trim().match(/rgba?\(\s*([0-9.]+)\s*,\s*([0-9.]+)\s*,\s*([0-9.]+)(?:\s*,\s*([0-9.]+))?\s*\)/i);if(!t)return null;let r=Number.parseFloat(t[1]),n=Number.parseFloat(t[2]),o=Number.parseFloat(t[3]),a=t[4]==null?1:Number.parseFloat(t[4]);return[r,n,o,a].every(i=>Number.isFinite(i))?{r:Math.max(0,Math.min(255,r)),g:Math.max(0,Math.min(255,n)),b:Math.max(0,Math.min(255,o)),a:Math.max(0,Math.min(1,a))}:null}function ji(e=""){let t=String(e||"").trim().match(/^#([0-9a-f]{3,8})$/i);if(!t)return null;let r=t[1].toLowerCase();if(r.length===3){let[n,o,a]=r.split("");return{r:Number.parseInt(`${n}${n}`,16),g:Number.parseInt(`${o}${o}`,16),b:Number.parseInt(`${a}${a}`,16),a:1}}return r.length===6||r.length===8?{r:Number.parseInt(r.slice(0,2),16),g:Number.parseInt(r.slice(2,4),16),b:Number.parseInt(r.slice(4,6),16),a:r.length===8?Number.parseInt(r.slice(6,8),16)/255:1}:null}function In(e=""){let t=ee(e);return t?t.startsWith("#")?ji(t):t.startsWith("rgb")?Ii(t):null:null}function Oi(e){if(!e)return null;let t=a=>{let i=Number(a)/255;return i<=.03928?i/12.92:((i+.055)/1.055)**2.4},r=t(e.r),n=t(e.g),o=t(e.b);return .2126*r+.7152*n+.0722*o}function Fn(e=""){let t=String(e||"").trim().toLowerCase();if(!t||t==="transparent")return!0;let r=In(t);return r&&Number.isFinite(r.a)?r.a<=.04:!1}function Bi(e=[],t=[]){let r=e.map(p=>ee(p)).filter(p=>p&&!Fn(p)),n=Je(r);if(n)return{color:n,source:"root"};let o=t.map(p=>ee(p)).filter(p=>p&&!Fn(p)),a=o.filter(p=>{let c=In(p),d=Oi(c);return Number.isFinite(d)?d>=.72:!1}),i=Je(a);if(i)return{color:i,source:"fallback-bright"};let s=Je(o);return s?{color:s,source:"fallback"}:{color:"",source:"none"}}function Ee(e,t=new Map){let r=String(e||""),n=/([a-z-]+)\s*:\s*([^;{}]+)/gi,o=n.exec(r);for(;o;){let a=String(o[1]||"").trim().toLowerCase(),i=String(o[2]||"").trim();a&&i&&(t.has(a)||t.set(a,[]),t.get(a).push(i)),o=n.exec(r)}return t}function Di(e=""){let t=String(e||""),r=new Map,n=[],o=[],a=[],i=[],s=[],p=[],c=[],d=/#(?:[0-9a-f]{3,8})\b|rgba?\([^)]*\)|hsla?\([^)]*\)/gi,l=u=>{(String(u||"").match(d)||[]).forEach(m=>{let b=ee(m);b&&n.push(b)})};if(typeof DOMParser<"u"&&Nn(t))try{let g=new DOMParser().parseFromString(t,"text/html");Array.from(g.querySelectorAll("style")).map(v=>v.textContent||"").forEach(v=>{Ee(v,r),l(v),Pi(v).forEach($=>{if(!Ni($.selector))return;let A=Ee($.body,new Map),T=Z(A,["background","background-color"]).map(F=>ee(F)).filter(Boolean);o.push(...T)})}),Array.from(g.querySelectorAll("[style]")).forEach(v=>{let $=v.getAttribute("style")||"";Ee($,r),l($)}),["html","body","main","#app","#root",".app",".page"].forEach(v=>{let $=g.querySelector(v);if(!$)return;let A=$.getAttribute("style")||"";if(!A)return;let T=Ee(A,new Map),F=Z(T,["background","background-color"]).map(L=>ee(L)).filter(Boolean);o.push(...F);let I=_n($.getAttribute("class")||"");a.push(...I)}),Array.from(g.querySelectorAll("[class]")).forEach(v=>{let $=ae(v.getAttribute("class")||"");p.push(...$);let A=_n(v.getAttribute("class")||"");i.push(...A);let T=String(v.tagName||"").toLowerCase(),F=T==="button"||T==="a",I=$.some(L=>/^bg-/.test(String(ie(L).base||"")));F&&I&&A.length&&s.push(...A)});let k=g.body?.textContent||"";k.trim()&&c.push(k),l(g.documentElement?.outerHTML||t)}catch{Ee(t,r),l(t),c.push(t)}else Ee(t,r),l(t),c.push(t);return{declarations:r,colorValues:n,rootBackgroundColors:o,rootClassBackgroundColors:a,classBackgroundColors:i,buttonBackgroundColors:s,classTokens:p,textCorpus:c.join(`
3746
- `)}}function Je(e=[]){let t=new Map;e.forEach(o=>{let a=String(o||"").trim();a&&t.set(a,(t.get(a)||0)+1)});let r="",n=-1;return t.forEach((o,a)=>{o>n&&(r=a,n=o)}),r}function Z(e,t=[]){return t.flatMap(r=>e.get(r)||[])}function Wi(e,t){if(!e||!t)return null;let r=String(t).split(".").filter(Boolean),n=e;for(let o of r){if(!n||n.type!=="object"||!n.properties||typeof n.properties!="object")return null;n=n.properties[o]}return n||null}function Hi(e={}){let t=e&&typeof e=="object"?e:{},r=h?.configRelations&&typeof h.configRelations=="object"?h.configRelations:{},n=new Set(Object.keys(r)),o=null;if(typeof h?.buildConfigFormSchema=="function")try{o=h.buildConfigFormSchema(t)?.schema||null}catch{o=null}return!o&&h?.configFormSchema?.schema&&(o=h.configFormSchema.schema),{design:t,schema:o,allowedPaths:n}}function Ui(e,t){if(!e)return t;if(Array.isArray(e.oneOf)&&e.oneOf.length){let r=e.oneOf.map(n=>n?.const).filter(n=>n!=null);if(r.length){if(typeof t=="string"){let n=r.find(o=>String(o).toLowerCase()===t.toLowerCase());if(n!==void 0)return n}if(typeof t=="number"){let n=r.map(o=>Number(o)).filter(o=>Number.isFinite(o));if(n.length)return n.reduce((o,a)=>Math.abs(a-t)<Math.abs(o-t)?a:o,n[0])}return r[0]}}if(e.type==="number"||e.type==="integer"){let r=Number(t);return Number.isFinite(r)?e.type==="integer"?Math.round(r):r:void 0}return e.type==="boolean"?!!t:e.type==="string"?String(t||"").trim():t}function qi(e,t,r){let n=String(t||"").split(".").filter(Boolean);if(!n.length)return;let o=e;for(let a=0;a<n.length;a+=1){let i=n[a];if(a===n.length-1){o[i]=r;return}(!o[i]||typeof o[i]!="object"||Array.isArray(o[i]))&&(o[i]={}),o=o[i]}}function H(e,t,r){if(r==null||r===""||e.allowedPaths.size&&!e.allowedPaths.has(t))return;let n=Wi(e.schema,t),o=Ui(n,r);o==null||o===""||(qi(e.patch,t,o),e.inferredPaths.add(t))}function he(e=[]){let t=e.map(n=>Ai(n)).filter(n=>Number.isFinite(n));if(!t.length)return null;t.sort((n,o)=>n-o);let r=Math.floor(t.length/2);return t.length%2?t[r]:(t[r-1]+t[r])/2}function Gi(e=[]){let t=e.map(r=>String(r||"").split(",")[0]||"").map(r=>r.trim().replace(/^['"]|['"]$/g,"")).filter(Boolean);return Je(t)}function Vi(e){let t=Number(e);return Number.isFinite(t)?t<=.75?"hairline":t<=1.5?"thin":t<=2.5?"medium":"thick":"thin"}function Ki(e=""){let r=String(ie(e).base||"").toLowerCase().match(/^rounded(?:-[trbl]{1,2})?(?:-(none|xs|sm|md|lg|xl|2xl|3xl|full))?$/);if(!r)return null;let n=r[1]||"DEFAULT",o={none:0,xs:2,sm:4,DEFAULT:6,md:8,lg:12,xl:16,"2xl":24,"3xl":32};return n==="full"?null:Number.isFinite(o[n])?o[n]:null}function Ji(e=[]){let t=e.map(n=>Ki(n)).filter(n=>Number.isFinite(n));if(!t.length)return null;t.sort((n,o)=>n-o);let r=Math.floor(t.length/2);return t.length%2?t[r]:(t[r-1]+t[r])/2}function mr(e={}){let t=String(e.html||"");if(!t.trim())return W({source:"html-inference",type:String(e.sourceType||"design-inference"),confidence:0,issues:[{severity:"warning",message:"No HTML or guideline text provided for design extraction."}],designPatch:{},meta:{extractedPathCount:0,extractedPaths:[]}});let r=Hi(e.config||{}),n=Di(t),o={patch:{},inferredPaths:new Set,allowedPaths:r.allowedPaths,schema:r.schema},a=Z(n.declarations,["color"]).map(V=>ee(V)).filter(Boolean),i=Z(n.declarations,["background","background-color"]).map(V=>ee(V)).filter(Boolean),s=[...i,...a,...n.colorValues].filter(Boolean),p=Array.from(new Set(s)),c=[...n.rootBackgroundColors||[]],d=[...n.rootClassBackgroundColors||[]],l=c.length?c:d,u=[...i,...n.classBackgroundColors||[]],g=Bi(l,u),m=g.color;H(o,"colors.background",m||i[0]||p[0]);let b=p.filter(V=>V&&V!==m),y=Je(n.buttonBackgroundColors||[])||b[0]||p[0],k=b.filter(V=>V&&V!==y);H(o,"colors.primary",y),H(o,"colors.secondary",k[0]||y||p[0]),H(o,"colors.accent",k[1]||k[0]||y||p[0]);let v=Z(n.declarations,["font-family"]),$=Gi(v);H(o,"typography.fontFamilyBody",$),H(o,"typography.fontFamilyHeadings",$),H(o,"typography.fontFamilyMono",/mono|code/i.test(n.textCorpus)?"JetBrains Mono":"");let A=Z(n.declarations,["font-size"]),T=he(A);H(o,"typography.baseSize",T);let F=Z(n.declarations,["padding","padding-top","padding-right","padding-bottom","padding-left","margin","margin-top","margin-right","margin-bottom","margin-left","gap","row-gap","column-gap"]),I=he(F);H(o,"spatialRhythm.baseUnit",I),H(o,"spatialRhythm.inputPadding",I),H(o,"spatialRhythm.buttonPadding",I);let L=Z(n.declarations,["border-radius"]),M=he(L)||Ji(n.classTokens||[]);H(o,"shape.radiusSize",M);let N=Z(n.declarations,["border-width","border-top-width","border-right-width","border-bottom-width","border-left-width"]),z=he(N);H(o,"shape.borderWidth",Vi(z));let x=Z(n.declarations,["max-width"]),S=he(x);H(o,"layout.containerMaxWidth",S),H(o,"layout.maxWidth",S);let C=Z(n.declarations,["min-height","height"]),E=he(C);H(o,"layout.buttonMinHeight",E),H(o,"layout.inputMinHeight",E);let O=Z(n.declarations,["transition-duration"]),B=he(O.map(V=>{let _e=String(V||"").trim().toLowerCase(),ce=Number.parseFloat(_e);return Number.isFinite(ce)?_e.endsWith("ms")?ce:_e.endsWith("s")?ce*1e3:ce:null}));H(o,"behavior.transitionSpeed",B);let P=Z(n.declarations,["box-shadow"]).length>0;H(o,"layers.baseShadowOpacity",P?.2:.08);let D=Array.from(o.inferredPaths),Y=D.reduce((V,_e)=>{let ce=_e.split(".")[0];return V[ce]=(V[ce]||0)+1,V},{}),Re=D.length?Math.min(.92,.35+D.length*.02):.25;return W({source:"html-inference",type:String(e.sourceType||"design-inference"),confidence:Re,issues:D.length?[]:[{severity:"warning",message:"Could not infer enough design signals from input."}],designPatch:o.patch,meta:{extractedPathCount:D.length,extractedPaths:D,categoryCoverage:Y,colorSampleSize:p.length,backgroundInference:{source:g.source,candidates:{root:l.length,declaration:i.length,classBased:(n.classBackgroundColors||[]).length}}}})}function jn(e={}){let t=String(e.input||"").trim(),r=String(e.sourceType||"unknown");if(!t)return W({source:r,type:r,confidence:0,issues:[{severity:"error",message:"No input provided."}],meta:{conversionMode:"none"}});if(Nn(t)){let n=Ct({html:t,config:e.config||{}});return W({source:r,type:r,confidence:n.confidence,issues:n.issues,template:n.template,meta:{...n.meta||{},conversionMode:"html-to-pds"}})}return W({source:r,type:r,confidence:.48,issues:[{severity:"info",message:"Input is not HTML; generated text-based preview template."}],template:{id:`${r}-text-import`,name:"Imported Guideline Text",html:`<article class="card surface-base stack-sm"><h3>Imported Guidelines</h3><pre>${Ti(t)}</pre></article>`},meta:{conversionMode:"text-preview"}})}function Ct(e={}){let t=String(e.html||"").trim();if(!t)return W({source:"tailwind",type:"tailwind-html",confidence:0,issues:[{severity:"error",message:"No HTML provided."}]});let r=Ci(t,{config:e.config||{}});return W({source:"tailwind",type:"tailwind-html",confidence:r.confidence,issues:r.issues,template:{id:"tailwind-import",name:"Converted Tailwind Markup",html:r.html},meta:r.meta})}function fr(e={}){let t=String(e.text||"").trim();if(!t)return W({source:"brand",type:"brand-guidelines",confidence:0,issues:[{severity:"error",message:"No brand guideline text provided."}]});let r=Ei(t),n={colors:{},typography:{}},o=[];return r?n.colors.primary=r:o.push({severity:"warning",message:"No HEX color found; primary color was not inferred."}),/serif/i.test(t)&&(n.typography.fontFamilyBody="Georgia, serif"),/sans[-\s]?serif/i.test(t)&&(n.typography.fontFamilyBody="Inter, Arial, sans-serif"),/mono|monospace/i.test(t)&&(n.typography.fontFamilyMono="JetBrains Mono, monospace"),W({source:"brand",type:"brand-guidelines",confidence:r?.68:.52,issues:o,designPatch:n,meta:{inferred:{primaryColor:r}}})}var hr="convert-only",On="adopt-design-and-convert";function Yi(e){return String(e||"").trim().toLowerCase()===On?On:hr}function Bn(...e){let t=e.flat().filter(Boolean);if(!t.length)return[];let r=new Set;return t.filter(n=>{let o=`${String(n?.severity||"info")}::${String(n?.path||"")}::${String(n?.message||"")}`;return r.has(o)?!1:(r.add(o),!0)})}function Dn(e=[]){let t=e.map(r=>Number(r)).filter(r=>Number.isFinite(r));return t.length?Math.max(0,Math.min(1,t.reduce((r,n)=>r+n,0)/t.length)):0}function Ze(e={},t={}){return{...e&&typeof e=="object"?e:{},...t&&typeof t=="object"?t:{}}}function Un(e={},t={}){if(!t||typeof t!="object")return e;let r=Array.isArray(e)?[...e]:{...e};return Object.entries(t).forEach(([n,o])=>{o&&typeof o=="object"&&!Array.isArray(o)?r[n]=Un(r[n]&&typeof r[n]=="object"?r[n]:{},o):r[n]=o}),r}function Wn(e){if(typeof structuredClone=="function")try{return structuredClone(e)}catch{}return JSON.parse(JSON.stringify(e||{}))}function Zi(e={}){let t=Number(e?.ratio),r=Number(e?.min),n=Number.isFinite(t)?t.toFixed(2):"n/a",o=Number.isFinite(r)?r.toFixed(2):"n/a";return{severity:"error",path:String(e?.path||"/colors"),message:`${String(e?.message||"Color contrast validation failed.")} (ratio=${n}, required=${o})`}}function Hn(e={},t={},r={}){if(!(t&&typeof t=="object"?Object.keys(t):[]).length)return{ok:!0,blocked:!1,issues:[],report:{ok:!0,issues:[]}};let o=Number(r.minContrast),a=Number.isFinite(o)?o:4.5,i=Un(Wn(e||{}),Wn(t||{})),s=Ar(i,{minContrast:a,minMutedContrast:3,extendedChecks:!0}),p=Array.isArray(s?.issues)?s.issues.map(c=>Zi(c)):[];return{ok:!!s?.ok,blocked:!s?.ok,issues:p,report:{ok:!!s?.ok,minContrast:a,issues:Array.isArray(s?.issues)?s.issues:[]}}}function Xi(){return[{id:"template",name:"Templates"},{id:"tailwind-html",name:"Tailwind HTML"},{id:"brand-guidelines",name:"Brand Guidelines"},{id:"figma-json",name:"Figma Tokens JSON (planned)"},{id:"ux-pilot",name:"UX Pilot (planned)"},{id:"google-stitch",name:"Google Stitch (planned)"}]}async function Qi(e={}){let t=String(e.sourceType||""),r=Yi(e.importMode),n=String(e.input||""),o=e.config||null;if(t==="template"){let a=sn(e.templateId,e);return a.meta=Ze(a.meta,{importMode:r}),a}if(t==="tailwind-html"){let a=Ct({html:n,config:o});if(r===hr)return a.meta=Ze(a.meta,{importMode:r}),a;let i=mr({html:n,config:o,sourceType:t}),s=Hn(o||{},i.designPatch||{}),p=s.blocked?{}:i.designPatch,c=s.blocked?[{severity:"error",path:"/colors",message:"Import blocked: inferred design patch failed accessibility contrast validation."},...s.issues]:[];return W({source:a.source||"tailwind",type:t,confidence:Dn([a.confidence,i.confidence]),issues:Bn(a.issues,i.issues,c),template:a.template,designPatch:p,meta:Ze(a.meta,{importMode:r,inference:i.meta,validation:s.report,validationBlocked:s.blocked})})}if(t==="brand-guidelines"){let a=jn({input:n,sourceType:t,config:o});if(r===hr)return a.meta=Ze(a.meta,{importMode:r}),a;let i=fr({text:n}),s=mr({html:n,config:o,sourceType:t}),p={...i.designPatch&&typeof i.designPatch=="object"?i.designPatch:{},...s.designPatch&&typeof s.designPatch=="object"?s.designPatch:{}},c=Hn(o||{},p||{}),d=c.blocked?{}:p,l=c.blocked?[{severity:"error",path:"/colors",message:"Import blocked: inferred design patch failed accessibility contrast validation."},...c.issues]:[];return W({source:"brand",type:t,confidence:Dn([a.confidence,i.confidence,s.confidence]),issues:Bn(a.issues,i.issues,s.issues,l),template:a.template,designPatch:d,meta:Ze(a.meta,{importMode:r,inference:s.meta,brandHeuristics:i.meta,validation:c.report,validationBlocked:c.blocked})})}return t==="figma-json"||t==="ux-pilot"||t==="google-stitch"?W({source:t,type:t,confidence:0,issues:[{severity:"info",message:`${t} adapter is not implemented yet in this phase.`}],meta:{importMode:r}}):W({source:t||"unknown",type:"unknown",confidence:0,issues:[{severity:"error",message:"Unsupported import source type."}],meta:{importMode:r}})}var es="pds-live-import-history";var ne="imports",Mt=null;function ts(){return typeof globalThis<"u"&&typeof globalThis.indexedDB<"u"}function te(e){return typeof e=="string"?e:""}function Et(e){return Array.isArray(e)?e:[]}function Tt(e){return e&&typeof e=="object"?e:{}}function At(){return ts()?Mt||(Mt=new Promise((e,t)=>{let r=globalThis.indexedDB.open(es,1);r.onupgradeneeded=()=>{let n=r.result;if(!n.objectStoreNames.contains(ne)){let o=n.createObjectStore(ne,{keyPath:"id",autoIncrement:!0});o.createIndex("createdAt","createdAt",{unique:!1}),o.createIndex("sourceType","sourceType",{unique:!1}),o.createIndex("fileName","fileName",{unique:!1})}},r.onsuccess=()=>e(r.result),r.onerror=()=>t(r.error||new Error("Failed to open import history database."))}),Mt):Promise.resolve(null)}function Rt(e){return new Promise((t,r)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>r(e.error||new Error("IndexedDB operation failed."))})}function rs(e={}){let t=Date.now(),r=Number.isFinite(Number(e.createdAt))?Number(e.createdAt):t,n=new Date(r).toISOString(),o=Et(e.issues).map(p=>({severity:te(p?.severity||"info"),message:te(p?.message||"")})),a=Et(e.notes).filter(p=>typeof p=="string"),i=Et(e.unknownTailwindTokens).filter(p=>typeof p=="string"),s=Et(e.appliedRules).filter(p=>typeof p=="string");return{createdAt:r,createdAtIso:n,sourceType:te(e.sourceType||"unknown"),importMode:te(e.importMode||"convert-only"),source:te(e.source||"unknown"),type:te(e.type||"unknown"),fileName:te(e.fileName||""),fileSize:Number.isFinite(Number(e.fileSize))?Number(e.fileSize):0,mimeType:te(e.mimeType||""),fileContents:te(e.fileContents||""),convertedHtml:te(e.convertedHtml||""),confidence:Number.isFinite(Number(e.confidence))?Number(e.confidence):0,notes:a,issues:o,coverage:Tt(e.coverage),unknownTailwindTokens:i,appliedRules:s,importStyleSheetInjected:!!e.importStyleSheetInjected,templateName:te(e.templateName||""),designPatch:Tt(e.designPatch),meta:Tt(e.meta),resultSnapshot:Tt(e.resultSnapshot)}}async function ns(e={}){let t=await At();if(!t)return null;let r=rs(e),o=t.transaction(ne,"readwrite").objectStore(ne);return{id:await Rt(o.add(r)),...r}}async function os(e={}){let t=await At();if(!t)return[];let r=Number.isFinite(Number(e.limit))?Math.max(1,Number(e.limit)):30,o=t.transaction(ne,"readonly").objectStore(ne);return(await Rt(o.getAll())||[]).sort((i,s)=>Number(s?.createdAt||0)-Number(i?.createdAt||0)).slice(0,r)}async function as(e){let t=await At();if(!t)return null;let r=Number(e);if(!Number.isFinite(r))return null;let o=t.transaction(ne,"readonly").objectStore(ne);return await Rt(o.get(r))||null}async function is(){let e=await At();if(!e)return;let r=e.transaction(ne,"readwrite").objectStore(ne);await Rt(r.clear())}export{is as clearLiveImportHistory,fr as convertBrandGuidelinesToPatch,Ct as convertTailwindHtmlToPds,W as createImportResult,Mi as describeTailwindConversionRules,as as getLiveImportHistoryEntry,Xi as getLiveImportSources,ga as isImportResult,os as listLiveImportHistory,an as listLiveTemplates,Kr as loadGoogleFont,ft as loadLiveTemplateCatalog,Qi as runLiveImport,ns as saveLiveImportHistory,da as startLive};
3920
+ ${l}`,h=[];return a.unknown>0&&h.push({severity:"warning",message:`Converted with ${a.unknown} unknown Tailwind utilities requiring manual review.`}),a.policySkipped>0&&h.push({severity:"info",message:`Skipped ${a.policySkipped} utility mappings due to PDS config policy.`}),u.length&&h.push({severity:"info",message:`Top unknown utilities: ${u.slice(0,8).join(", ")}`}),{html:v,confidence:m,issues:h,meta:{rulebookVersion:$n,coverage:{tailwind:a.totalTailwind,mapped:a.mapped,ignored:a.ignored,policySkipped:a.policySkipped,unknown:a.unknown,importedStyles:a.importedStyleCount,nestedLabelPairs:a.labelNestingCount},unknownTailwindTokens:u,notes:a.notes,appliedRules:Array.from(a.appliedRules),policy:n,importStyleSheetInjected:!!p,breakpoints:o}}}function Mi(){return{rulesJsonPath:Fa,...V,directMappings:V.directMappings.map(t=>({id:t.id,tw:t.tw,pds:t.pds,gate:t.gate||null})),ignoredPatterns:V.ignoredPatterns.map(t=>({id:t.id,pattern:String(t.pattern),reason:t.reason}))}}function Ei(t){let e=String(t||"").match(/#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})\b/);return e?e[0]:null}function Ai(t){return String(t||"").replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;").replaceAll('"',"&quot;").replaceAll("'","&#39;")}function Pn(t){return/<\s*[a-z][^>]*>/i.test(String(t||""))}function Ti(t){let e=String(t||"").trim().toLowerCase();if(!e)return null;let r=Number.parseFloat(e);return Number.isFinite(r)?e.endsWith("rem")||e.endsWith("em")?r*16:e.endsWith("px")||/^[0-9.\-]+$/.test(e)?r:null:null}function ee(t){let e=String(t||"").trim();if(!e)return"";let r=e.match(/#(?:[0-9a-f]{3,8})\b/i);if(r)return r[0].toLowerCase();let n=e.match(/rgba?\([^)]*\)/i);if(n)return n[0];let o=e.match(/hsla?\([^)]*\)/i);return o?o[0]:""}function Ri(t=""){let e=String(t||"").trim();if(!e||typeof window>"u"||typeof document>"u")return"";let r=document.documentElement;if(!r)return"";let n=window.getComputedStyle(r);return String(n.getPropertyValue(e)||"").trim()}function Ii(t=""){let e=String(t||"").trim(),r=ee(e);if(r)return r;let n=e.match(/var\(\s*(--[^\s,)]+)\s*(?:,[^)]+)?\)/i);if(!n)return"";let o=Ri(n[1]);return ee(o)}function _i(t=""){let e=String(t||"").trim();if(!e)return"";let r=e.split(":").pop()||e;if(r==="bg-white")return"#ffffff";if(r==="bg-black")return"#000000";let n=r.match(/^bg-black\/(\d{1,3})$/i);if(n)return`rgba(0,0,0,${Math.max(0,Math.min(100,Number(n[1])))/100})`;let o=r.match(/^bg-\[([^\]]+)\]$/i);if(o)return ee(o[1]);let a=r.match(/^bg-([a-z]+)-(\d{2,3})$/i);if(!a)return"";let i=Ye(a[1],a[2]);return i?Ii(i):""}function In(t=""){return String(t||"").split(/\s+/).map(r=>r.trim()).filter(Boolean).map(r=>_i(r)).filter(Boolean)}function Fi(t=""){let e=[],r=String(t||""),n=/([^{}]+)\{([^{}]*)\}/g,o=n.exec(r);for(;o;){let a=String(o[1]||"").trim(),i=String(o[2]||"").trim();a&&i&&e.push({selector:a,body:i}),o=n.exec(r)}return e}function Pi(t=""){let e=String(t||"").toLowerCase();return e?/(^|\s|,)(html|body|:root|main)(\s|,|$)|#app\b|#root\b|\.app\b|\.page\b/.test(e):!1}function Ni(t=""){let e=String(t||"").trim().match(/rgba?\(\s*([0-9.]+)\s*,\s*([0-9.]+)\s*,\s*([0-9.]+)(?:\s*,\s*([0-9.]+))?\s*\)/i);if(!e)return null;let r=Number.parseFloat(e[1]),n=Number.parseFloat(e[2]),o=Number.parseFloat(e[3]),a=e[4]==null?1:Number.parseFloat(e[4]);return[r,n,o,a].every(i=>Number.isFinite(i))?{r:Math.max(0,Math.min(255,r)),g:Math.max(0,Math.min(255,n)),b:Math.max(0,Math.min(255,o)),a:Math.max(0,Math.min(1,a))}:null}function ji(t=""){let e=String(t||"").trim().match(/^#([0-9a-f]{3,8})$/i);if(!e)return null;let r=e[1].toLowerCase();if(r.length===3){let[n,o,a]=r.split("");return{r:Number.parseInt(`${n}${n}`,16),g:Number.parseInt(`${o}${o}`,16),b:Number.parseInt(`${a}${a}`,16),a:1}}return r.length===6||r.length===8?{r:Number.parseInt(r.slice(0,2),16),g:Number.parseInt(r.slice(2,4),16),b:Number.parseInt(r.slice(4,6),16),a:r.length===8?Number.parseInt(r.slice(6,8),16)/255:1}:null}function Nn(t=""){let e=ee(t);return e?e.startsWith("#")?ji(e):e.startsWith("rgb")?Ni(e):null:null}function Oi(t){if(!t)return null;let e=a=>{let i=Number(a)/255;return i<=.03928?i/12.92:((i+.055)/1.055)**2.4},r=e(t.r),n=e(t.g),o=e(t.b);return .2126*r+.7152*n+.0722*o}function _n(t=""){let e=String(t||"").trim().toLowerCase();if(!e||e==="transparent")return!0;let r=Nn(e);return r&&Number.isFinite(r.a)?r.a<=.04:!1}function Bi(t=[],e=[]){let r=t.map(d=>ee(d)).filter(d=>d&&!_n(d)),n=Je(r);if(n)return{color:n,source:"root"};let o=e.map(d=>ee(d)).filter(d=>d&&!_n(d)),a=o.filter(d=>{let c=Nn(d),p=Oi(c);return Number.isFinite(p)?p>=.72:!1}),i=Je(a);if(i)return{color:i,source:"fallback-bright"};let s=Je(o);return s?{color:s,source:"fallback"}:{color:"",source:"none"}}function Ee(t,e=new Map){let r=String(t||""),n=/([a-z-]+)\s*:\s*([^;{}]+)/gi,o=n.exec(r);for(;o;){let a=String(o[1]||"").trim().toLowerCase(),i=String(o[2]||"").trim();a&&i&&(e.has(a)||e.set(a,[]),e.get(a).push(i)),o=n.exec(r)}return e}function Di(t=""){let e=String(t||""),r=new Map,n=[],o=[],a=[],i=[],s=[],d=[],c=[],p=/#(?:[0-9a-f]{3,8})\b|rgba?\([^)]*\)|hsla?\([^)]*\)/gi,l=u=>{(String(u||"").match(p)||[]).forEach(f=>{let w=ee(f);w&&n.push(w)})};if(typeof DOMParser<"u"&&Pn(e))try{let g=new DOMParser().parseFromString(e,"text/html");Array.from(g.querySelectorAll("style")).map(v=>v.textContent||"").forEach(v=>{Ee(v,r),l(v),Fi(v).forEach(h=>{if(!Pi(h.selector))return;let $=Ee(h.body,new Map),A=X($,["background","background-color"]).map(T=>ee(T)).filter(Boolean);o.push(...A)})}),Array.from(g.querySelectorAll("[style]")).forEach(v=>{let h=v.getAttribute("style")||"";Ee(h,r),l(h)}),["html","body","main","#app","#root",".app",".page"].forEach(v=>{let h=g.querySelector(v);if(!h)return;let $=h.getAttribute("style")||"";if(!$)return;let A=Ee($,new Map),T=X(A,["background","background-color"]).map(z=>ee(z)).filter(Boolean);o.push(...T);let I=In(h.getAttribute("class")||"");a.push(...I)}),Array.from(g.querySelectorAll("[class]")).forEach(v=>{let h=ae(v.getAttribute("class")||"");d.push(...h);let $=In(v.getAttribute("class")||"");i.push(...$);let A=String(v.tagName||"").toLowerCase(),T=A==="button"||A==="a",I=h.some(z=>/^bg-/.test(String(ie(z).base||"")));T&&I&&$.length&&s.push(...$)});let y=g.body?.textContent||"";y.trim()&&c.push(y),l(g.documentElement?.outerHTML||e)}catch{Ee(e,r),l(e),c.push(e)}else Ee(e,r),l(e),c.push(e);return{declarations:r,colorValues:n,rootBackgroundColors:o,rootClassBackgroundColors:a,classBackgroundColors:i,buttonBackgroundColors:s,classTokens:d,textCorpus:c.join(`
3921
+ `)}}function Je(t=[]){let e=new Map;t.forEach(o=>{let a=String(o||"").trim();a&&e.set(a,(e.get(a)||0)+1)});let r="",n=-1;return e.forEach((o,a)=>{o>n&&(r=a,n=o)}),r}function X(t,e=[]){return e.flatMap(r=>t.get(r)||[])}function Hi(t,e){if(!t||!e)return null;let r=String(e).split(".").filter(Boolean),n=t;for(let o of r){if(!n||n.type!=="object"||!n.properties||typeof n.properties!="object")return null;n=n.properties[o]}return n||null}function Wi(t={}){let e=t&&typeof t=="object"?t:{},r=x?.configRelations&&typeof x.configRelations=="object"?x.configRelations:{},n=new Set(Object.keys(r)),o=null;if(typeof x?.buildConfigFormSchema=="function")try{o=x.buildConfigFormSchema(e)?.schema||null}catch{o=null}return!o&&x?.configFormSchema?.schema&&(o=x.configFormSchema.schema),{design:e,schema:o,allowedPaths:n}}function Ui(t,e){if(!t)return e;if(Array.isArray(t.oneOf)&&t.oneOf.length){let r=t.oneOf.map(n=>n?.const).filter(n=>n!=null);if(r.length){if(typeof e=="string"){let n=r.find(o=>String(o).toLowerCase()===e.toLowerCase());if(n!==void 0)return n}if(typeof e=="number"){let n=r.map(o=>Number(o)).filter(o=>Number.isFinite(o));if(n.length)return n.reduce((o,a)=>Math.abs(a-e)<Math.abs(o-e)?a:o,n[0])}return r[0]}}if(t.type==="number"||t.type==="integer"){let r=Number(e);return Number.isFinite(r)?t.type==="integer"?Math.round(r):r:void 0}return t.type==="boolean"?!!e:t.type==="string"?String(e||"").trim():e}function qi(t,e,r){let n=String(e||"").split(".").filter(Boolean);if(!n.length)return;let o=t;for(let a=0;a<n.length;a+=1){let i=n[a];if(a===n.length-1){o[i]=r;return}(!o[i]||typeof o[i]!="object"||Array.isArray(o[i]))&&(o[i]={}),o=o[i]}}function W(t,e,r){if(r==null||r===""||t.allowedPaths.size&&!t.allowedPaths.has(e))return;let n=Hi(t.schema,e),o=Ui(n,r);o==null||o===""||(qi(t.patch,e,o),t.inferredPaths.add(e))}function he(t=[]){let e=t.map(n=>Ti(n)).filter(n=>Number.isFinite(n));if(!e.length)return null;e.sort((n,o)=>n-o);let r=Math.floor(e.length/2);return e.length%2?e[r]:(e[r-1]+e[r])/2}function Vi(t=[]){let e=t.map(r=>String(r||"").split(",")[0]||"").map(r=>r.trim().replace(/^['"]|['"]$/g,"")).filter(Boolean);return Je(e)}function Gi(t){let e=Number(t);return Number.isFinite(e)?e<=.75?"hairline":e<=1.5?"thin":e<=2.5?"medium":"thick":"thin"}function Ki(t=""){let r=String(ie(t).base||"").toLowerCase().match(/^rounded(?:-[trbl]{1,2})?(?:-(none|xs|sm|md|lg|xl|2xl|3xl|full))?$/);if(!r)return null;let n=r[1]||"DEFAULT",o={none:0,xs:2,sm:4,DEFAULT:6,md:8,lg:12,xl:16,"2xl":24,"3xl":32};return n==="full"?null:Number.isFinite(o[n])?o[n]:null}function Ji(t=[]){let e=t.map(n=>Ki(n)).filter(n=>Number.isFinite(n));if(!e.length)return null;e.sort((n,o)=>n-o);let r=Math.floor(e.length/2);return e.length%2?e[r]:(e[r-1]+e[r])/2}function fr(t={}){let e=String(t.html||"");if(!e.trim())return H({source:"html-inference",type:String(t.sourceType||"design-inference"),confidence:0,issues:[{severity:"warning",message:"No HTML or guideline text provided for design extraction."}],designPatch:{},meta:{extractedPathCount:0,extractedPaths:[]}});let r=Wi(t.config||{}),n=Di(e),o={patch:{},inferredPaths:new Set,allowedPaths:r.allowedPaths,schema:r.schema},a=X(n.declarations,["color"]).map(G=>ee(G)).filter(Boolean),i=X(n.declarations,["background","background-color"]).map(G=>ee(G)).filter(Boolean),s=[...i,...a,...n.colorValues].filter(Boolean),d=Array.from(new Set(s)),c=[...n.rootBackgroundColors||[]],p=[...n.rootClassBackgroundColors||[]],l=c.length?c:p,u=[...i,...n.classBackgroundColors||[]],g=Bi(l,u),f=g.color;W(o,"colors.background",f||i[0]||d[0]);let w=d.filter(G=>G&&G!==f),m=Je(n.buttonBackgroundColors||[])||w[0]||d[0],y=w.filter(G=>G&&G!==m);W(o,"colors.primary",m),W(o,"colors.secondary",y[0]||m||d[0]),W(o,"colors.accent",y[1]||y[0]||m||d[0]);let v=X(n.declarations,["font-family"]),h=Vi(v);W(o,"typography.fontFamilyBody",h),W(o,"typography.fontFamilyHeadings",h),W(o,"typography.fontFamilyMono",/mono|code/i.test(n.textCorpus)?"JetBrains Mono":"");let $=X(n.declarations,["font-size"]),A=he($);W(o,"typography.baseSize",A);let T=X(n.declarations,["padding","padding-top","padding-right","padding-bottom","padding-left","margin","margin-top","margin-right","margin-bottom","margin-left","gap","row-gap","column-gap"]),I=he(T);W(o,"spatialRhythm.baseUnit",I),W(o,"spatialRhythm.inputPadding",I),W(o,"spatialRhythm.buttonPadding",I);let z=X(n.declarations,["border-radius"]),M=he(z)||Ji(n.classTokens||[]);W(o,"shape.radiusSize",M);let P=X(n.declarations,["border-width","border-top-width","border-right-width","border-bottom-width","border-left-width"]),C=he(P);W(o,"shape.borderWidth",Gi(C));let k=X(n.declarations,["max-width"]),L=he(k);W(o,"layout.containerMaxWidth",L),W(o,"layout.maxWidth",L);let E=X(n.declarations,["min-height","height"]),R=he(E);W(o,"layout.buttonMinHeight",R),W(o,"layout.inputMinHeight",R);let O=X(n.declarations,["transition-duration"]),B=he(O.map(G=>{let Ie=String(G||"").trim().toLowerCase(),ce=Number.parseFloat(Ie);return Number.isFinite(ce)?Ie.endsWith("ms")?ce:Ie.endsWith("s")?ce*1e3:ce:null}));W(o,"behavior.transitionSpeed",B);let N=X(n.declarations,["box-shadow"]).length>0;W(o,"layers.baseShadowOpacity",N?.2:.08);let D=Array.from(o.inferredPaths),Y=D.reduce((G,Ie)=>{let ce=Ie.split(".")[0];return G[ce]=(G[ce]||0)+1,G},{}),Re=D.length?Math.min(.92,.35+D.length*.02):.25;return H({source:"html-inference",type:String(t.sourceType||"design-inference"),confidence:Re,issues:D.length?[]:[{severity:"warning",message:"Could not infer enough design signals from input."}],designPatch:o.patch,meta:{extractedPathCount:D.length,extractedPaths:D,categoryCoverage:Y,colorSampleSize:d.length,backgroundInference:{source:g.source,candidates:{root:l.length,declaration:i.length,classBased:(n.classBackgroundColors||[]).length}}}})}function jn(t={}){let e=String(t.input||"").trim(),r=String(t.sourceType||"unknown");if(!e)return H({source:r,type:r,confidence:0,issues:[{severity:"error",message:"No input provided."}],meta:{conversionMode:"none"}});if(Pn(e)){let n=Ct({html:e,config:t.config||{}});return H({source:r,type:r,confidence:n.confidence,issues:n.issues,template:n.template,meta:{...n.meta||{},conversionMode:"html-to-pds"}})}return H({source:r,type:r,confidence:.48,issues:[{severity:"info",message:"Input is not HTML; generated text-based preview template."}],template:{id:`${r}-text-import`,name:"Imported Guideline Text",html:`<article class="card surface-base stack-sm"><h3>Imported Guidelines</h3><pre>${Ai(e)}</pre></article>`},meta:{conversionMode:"text-preview"}})}function Ct(t={}){let e=String(t.html||"").trim();if(!e)return H({source:"tailwind",type:"tailwind-html",confidence:0,issues:[{severity:"error",message:"No HTML provided."}]});let r=Ci(e,{config:t.config||{}});return H({source:"tailwind",type:"tailwind-html",confidence:r.confidence,issues:r.issues,template:{id:"tailwind-import",name:"Converted Tailwind Markup",html:r.html},meta:r.meta})}function mr(t={}){let e=String(t.text||"").trim();if(!e)return H({source:"brand",type:"brand-guidelines",confidence:0,issues:[{severity:"error",message:"No brand guideline text provided."}]});let r=Ei(e),n={colors:{},typography:{}},o=[];return r?n.colors.primary=r:o.push({severity:"warning",message:"No HEX color found; primary color was not inferred."}),/serif/i.test(e)&&(n.typography.fontFamilyBody="Georgia, serif"),/sans[-\s]?serif/i.test(e)&&(n.typography.fontFamilyBody="Inter, Arial, sans-serif"),/mono|monospace/i.test(e)&&(n.typography.fontFamilyMono="JetBrains Mono, monospace"),H({source:"brand",type:"brand-guidelines",confidence:r?.68:.52,issues:o,designPatch:n,meta:{inferred:{primaryColor:r}}})}var hr="convert-only",On="adopt-design-and-convert";function Yi(t){return String(t||"").trim().toLowerCase()===On?On:hr}function Bn(...t){let e=t.flat().filter(Boolean);if(!e.length)return[];let r=new Set;return e.filter(n=>{let o=`${String(n?.severity||"info")}::${String(n?.path||"")}::${String(n?.message||"")}`;return r.has(o)?!1:(r.add(o),!0)})}function Dn(t=[]){let e=t.map(r=>Number(r)).filter(r=>Number.isFinite(r));return e.length?Math.max(0,Math.min(1,e.reduce((r,n)=>r+n,0)/e.length)):0}function Xe(t={},e={}){return{...t&&typeof t=="object"?t:{},...e&&typeof e=="object"?e:{}}}function Un(t={},e={}){if(!e||typeof e!="object")return t;let r=Array.isArray(t)?[...t]:{...t};return Object.entries(e).forEach(([n,o])=>{o&&typeof o=="object"&&!Array.isArray(o)?r[n]=Un(r[n]&&typeof r[n]=="object"?r[n]:{},o):r[n]=o}),r}function Hn(t){if(typeof structuredClone=="function")try{return structuredClone(t)}catch{}return JSON.parse(JSON.stringify(t||{}))}function Xi(t={}){let e=Number(t?.ratio),r=Number(t?.min),n=Number.isFinite(e)?e.toFixed(2):"n/a",o=Number.isFinite(r)?r.toFixed(2):"n/a";return{severity:"error",path:String(t?.path||"/colors"),message:`${String(t?.message||"Color contrast validation failed.")} (ratio=${n}, required=${o})`}}function Wn(t={},e={},r={}){if(!(e&&typeof e=="object"?Object.keys(e):[]).length)return{ok:!0,blocked:!1,issues:[],report:{ok:!0,issues:[]}};let o=Number(r.minContrast),a=Number.isFinite(o)?o:4.5,i=Un(Hn(t||{}),Hn(e||{})),s=Tr(i,{minContrast:a,minMutedContrast:3,extendedChecks:!0}),d=Array.isArray(s?.issues)?s.issues.map(c=>Xi(c)):[];return{ok:!!s?.ok,blocked:!s?.ok,issues:d,report:{ok:!!s?.ok,minContrast:a,issues:Array.isArray(s?.issues)?s.issues:[]}}}function Zi(){return[{id:"template",name:"Templates"},{id:"tailwind-html",name:"Tailwind HTML"},{id:"brand-guidelines",name:"Brand Guidelines"},{id:"figma-json",name:"Figma Tokens JSON (planned)"},{id:"ux-pilot",name:"UX Pilot (planned)"},{id:"google-stitch",name:"Google Stitch (planned)"}]}async function Qi(t={}){let e=String(t.sourceType||""),r=Yi(t.importMode),n=String(t.input||""),o=t.config||null;if(e==="template"){let a=sn(t.templateId,t);return a.meta=Xe(a.meta,{importMode:r}),a}if(e==="tailwind-html"){let a=Ct({html:n,config:o});if(r===hr)return a.meta=Xe(a.meta,{importMode:r}),a;let i=fr({html:n,config:o,sourceType:e}),s=Wn(o||{},i.designPatch||{}),d=s.blocked?{}:i.designPatch,c=s.blocked?[{severity:"error",path:"/colors",message:"Import blocked: inferred design patch failed accessibility contrast validation."},...s.issues]:[];return H({source:a.source||"tailwind",type:e,confidence:Dn([a.confidence,i.confidence]),issues:Bn(a.issues,i.issues,c),template:a.template,designPatch:d,meta:Xe(a.meta,{importMode:r,inference:i.meta,validation:s.report,validationBlocked:s.blocked})})}if(e==="brand-guidelines"){let a=jn({input:n,sourceType:e,config:o});if(r===hr)return a.meta=Xe(a.meta,{importMode:r}),a;let i=mr({text:n}),s=fr({html:n,config:o,sourceType:e}),d={...i.designPatch&&typeof i.designPatch=="object"?i.designPatch:{},...s.designPatch&&typeof s.designPatch=="object"?s.designPatch:{}},c=Wn(o||{},d||{}),p=c.blocked?{}:d,l=c.blocked?[{severity:"error",path:"/colors",message:"Import blocked: inferred design patch failed accessibility contrast validation."},...c.issues]:[];return H({source:"brand",type:e,confidence:Dn([a.confidence,i.confidence,s.confidence]),issues:Bn(a.issues,i.issues,s.issues,l),template:a.template,designPatch:p,meta:Xe(a.meta,{importMode:r,inference:s.meta,brandHeuristics:i.meta,validation:c.report,validationBlocked:c.blocked})})}return e==="figma-json"||e==="ux-pilot"||e==="google-stitch"?H({source:e,type:e,confidence:0,issues:[{severity:"info",message:`${e} adapter is not implemented yet in this phase.`}],meta:{importMode:r}}):H({source:e||"unknown",type:"unknown",confidence:0,issues:[{severity:"error",message:"Unsupported import source type."}],meta:{importMode:r}})}var es="pds-live-import-history";var ne="imports",Mt=null;function ts(){return typeof globalThis<"u"&&typeof globalThis.indexedDB<"u"}function te(t){return typeof t=="string"?t:""}function Et(t){return Array.isArray(t)?t:[]}function At(t){return t&&typeof t=="object"?t:{}}function Tt(){return ts()?Mt||(Mt=new Promise((t,e)=>{let r=globalThis.indexedDB.open(es,1);r.onupgradeneeded=()=>{let n=r.result;if(!n.objectStoreNames.contains(ne)){let o=n.createObjectStore(ne,{keyPath:"id",autoIncrement:!0});o.createIndex("createdAt","createdAt",{unique:!1}),o.createIndex("sourceType","sourceType",{unique:!1}),o.createIndex("fileName","fileName",{unique:!1})}},r.onsuccess=()=>t(r.result),r.onerror=()=>e(r.error||new Error("Failed to open import history database."))}),Mt):Promise.resolve(null)}function Rt(t){return new Promise((e,r)=>{t.onsuccess=()=>e(t.result),t.onerror=()=>r(t.error||new Error("IndexedDB operation failed."))})}function rs(t={}){let e=Date.now(),r=Number.isFinite(Number(t.createdAt))?Number(t.createdAt):e,n=new Date(r).toISOString(),o=Et(t.issues).map(d=>({severity:te(d?.severity||"info"),message:te(d?.message||"")})),a=Et(t.notes).filter(d=>typeof d=="string"),i=Et(t.unknownTailwindTokens).filter(d=>typeof d=="string"),s=Et(t.appliedRules).filter(d=>typeof d=="string");return{createdAt:r,createdAtIso:n,sourceType:te(t.sourceType||"unknown"),importMode:te(t.importMode||"convert-only"),source:te(t.source||"unknown"),type:te(t.type||"unknown"),fileName:te(t.fileName||""),fileSize:Number.isFinite(Number(t.fileSize))?Number(t.fileSize):0,mimeType:te(t.mimeType||""),fileContents:te(t.fileContents||""),convertedHtml:te(t.convertedHtml||""),confidence:Number.isFinite(Number(t.confidence))?Number(t.confidence):0,notes:a,issues:o,coverage:At(t.coverage),unknownTailwindTokens:i,appliedRules:s,importStyleSheetInjected:!!t.importStyleSheetInjected,templateName:te(t.templateName||""),designPatch:At(t.designPatch),meta:At(t.meta),resultSnapshot:At(t.resultSnapshot)}}async function ns(t={}){let e=await Tt();if(!e)return null;let r=rs(t),o=e.transaction(ne,"readwrite").objectStore(ne);return{id:await Rt(o.add(r)),...r}}async function os(t={}){let e=await Tt();if(!e)return[];let r=Number.isFinite(Number(t.limit))?Math.max(1,Number(t.limit)):30,o=e.transaction(ne,"readonly").objectStore(ne);return(await Rt(o.getAll())||[]).sort((i,s)=>Number(s?.createdAt||0)-Number(i?.createdAt||0)).slice(0,r)}async function as(t){let e=await Tt();if(!e)return null;let r=Number(t);if(!Number.isFinite(r))return null;let o=e.transaction(ne,"readonly").objectStore(ne);return await Rt(o.get(r))||null}async function is(){let t=await Tt();if(!t)return;let r=t.transaction(ne,"readwrite").objectStore(ne);await Rt(r.clear())}export{is as clearLiveImportHistory,mr as convertBrandGuidelinesToPatch,Ct as convertTailwindHtmlToPds,H as createImportResult,Mi as describeTailwindConversionRules,as as getLiveImportHistoryEntry,Zi as getLiveImportSources,ga as isImportResult,os as listLiveImportHistory,an as listLiveTemplates,Kr as loadGoogleFont,mt as loadLiveTemplateCatalog,Qi as runLiveImport,ns as saveLiveImportHistory,da as startLive};