@pure-ds/core 0.7.29 → 0.7.32

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 (76) hide show
  1. package/.github/copilot-instructions.md +20 -11
  2. package/LOCALIZATION.md +197 -0
  3. package/dist/types/pds.config.d.ts +1 -1
  4. package/dist/types/pds.config.d.ts.map +1 -1
  5. package/dist/types/pds.d.ts +150 -0
  6. package/dist/types/public/assets/pds/components/pds-form.d.ts +2 -2
  7. package/dist/types/public/assets/pds/components/pds-form.d.ts.map +1 -1
  8. package/dist/types/public/assets/pds/components/pds-omnibox.d.ts +2 -2
  9. package/dist/types/public/assets/pds/components/pds-omnibox.d.ts.map +1 -1
  10. package/dist/types/public/assets/pds/components/pds-rating.d.ts +1 -119
  11. package/dist/types/public/assets/pds/components/pds-rating.d.ts.map +1 -1
  12. package/dist/types/public/assets/pds/components/pds-treeview.d.ts.map +1 -1
  13. package/dist/types/public/assets/pds/components/pds-upload.d.ts.map +1 -1
  14. package/dist/types/src/js/common/ask.d.ts.map +1 -1
  15. package/dist/types/src/js/common/font-loader.d.ts.map +1 -1
  16. package/dist/types/src/js/common/localization-resource-provider.d.ts +49 -0
  17. package/dist/types/src/js/common/localization-resource-provider.d.ts.map +1 -0
  18. package/dist/types/src/js/common/localization.d.ts +25 -0
  19. package/dist/types/src/js/common/localization.d.ts.map +1 -0
  20. package/dist/types/src/js/common/msg.d.ts +1 -2
  21. package/dist/types/src/js/common/msg.d.ts.map +1 -1
  22. package/dist/types/src/js/common/pds-log.d.ts +3 -0
  23. package/dist/types/src/js/common/pds-log.d.ts.map +1 -0
  24. package/dist/types/src/js/lit.d.ts +0 -6
  25. package/dist/types/src/js/lit.d.ts.map +1 -1
  26. package/dist/types/src/js/pds-core/pds-config.d.ts +51 -0
  27. package/dist/types/src/js/pds-core/pds-config.d.ts.map +1 -1
  28. package/dist/types/src/js/pds-core/pds-enhancers.d.ts.map +1 -1
  29. package/dist/types/src/js/pds-core/pds-live.d.ts.map +1 -1
  30. package/dist/types/src/js/pds-core/pds-registry.d.ts.map +1 -1
  31. package/dist/types/src/js/pds-core/pds-runtime.d.ts.map +1 -1
  32. package/dist/types/src/js/pds-core/pds-start-helpers.d.ts.map +1 -1
  33. package/dist/types/src/js/pds-localization.d.ts +3 -0
  34. package/dist/types/src/js/pds-localization.d.ts.map +1 -0
  35. package/dist/types/src/js/pds-singleton.d.ts +13 -0
  36. package/dist/types/src/js/pds-singleton.d.ts.map +1 -0
  37. package/dist/types/src/js/pds.d.ts +9 -1
  38. package/dist/types/src/js/pds.d.ts.map +1 -1
  39. package/package.json +8 -3
  40. package/packages/pds-cli/README.md +2 -0
  41. package/packages/pds-cli/lib/pds-mcp-core.js +2 -2
  42. package/public/assets/js/app.js +9 -11
  43. package/public/assets/js/lit.js +2 -2
  44. package/public/assets/js/pds-ask.js +4 -4
  45. package/public/assets/js/pds-enhancers.js +1 -1
  46. package/public/assets/js/pds-localization.js +1 -0
  47. package/public/assets/js/pds-manager.js +118 -118
  48. package/public/assets/js/pds.js +2 -2
  49. package/public/assets/pds/components/pds-calendar.js +4 -4
  50. package/public/assets/pds/components/pds-daterange.js +11 -8
  51. package/public/assets/pds/components/pds-form.js +22 -22
  52. package/public/assets/pds/components/pds-live-edit.js +503 -42
  53. package/public/assets/pds/components/pds-live-importer.js +66 -66
  54. package/public/assets/pds/components/pds-live-template-canvas.js +3 -3
  55. package/public/assets/pds/components/pds-omnibox.js +4 -4
  56. package/public/assets/pds/components/pds-rating.js +5 -3
  57. package/public/assets/pds/components/pds-tags.js +5 -5
  58. package/public/assets/pds/components/pds-theme.js +4 -4
  59. package/public/assets/pds/components/pds-toaster.js +6 -6
  60. package/public/assets/pds/components/pds-treeview.js +8 -4
  61. package/public/assets/pds/components/pds-upload.js +7 -6
  62. package/public/assets/pds/core/pds-ask.js +4 -4
  63. package/public/assets/pds/core/pds-enhancers.js +1 -1
  64. package/public/assets/pds/core/pds-localization.js +1 -0
  65. package/public/assets/pds/core/pds-manager.js +118 -118
  66. package/public/assets/pds/core.js +2 -2
  67. package/public/assets/pds/external/lit.js +2 -2
  68. package/readme.md +34 -6
  69. package/src/js/pds-core/pds-config.js +34 -11
  70. package/src/js/pds-core/pds-enhancers.js +5 -3
  71. package/src/js/pds-core/pds-live.js +7 -5
  72. package/src/js/pds-core/pds-registry.js +6 -4
  73. package/src/js/pds-core/pds-runtime.js +12 -8
  74. package/src/js/pds-core/pds-start-helpers.js +9 -4
  75. package/src/js/pds.d.ts +150 -0
  76. package/src/js/pds.js +420 -40
@@ -1,7 +1,7 @@
1
- var rn=Object.defineProperty;var mt=(t,e)=>()=>(t&&(e=t(t=0)),e);var ft=(t,e)=>{for(var r in e)rn(t,r,{get:e[r],enumerable:!0})};var Yt={};ft(Yt,{enums:()=>v});var v,Ce=mt(()=>{v={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 sr={};ft(sr,{default:()=>fn,findComponentForElement:()=>dn,getAllSelectors:()=>pn,getAllTags:()=>mn,getByCategory:()=>gn,ontology:()=>H,searchOntology:()=>un});function ae(t,e){if(!t||!e)return!1;try{return t.matches(e)}catch{return!1}}function ir(t,e){if(!t||!e||!t.closest)return null;try{return t.closest(e)}catch{return null}}function dn(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(ae(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 d=s.slice(1).replace(/\*/g,"");if(r.classList&&Array.from(r.classList).some(u=>u.startsWith(d)))return{element:r,componentType:"pds-primitive",displayName:a.name||a.id,id:a.id,tags:a.tags};let c=r.parentElement,l=0;for(;c&&l<e;){if(c.classList&&Array.from(c.classList).some(u=>u.startsWith(d))&&c.tagName!=="DS-SHOWCASE")return{element:c,componentType:"pds-primitive",displayName:a.name||a.id,id:a.id,tags:a.tags};c=c.parentElement,l++}continue}continue}if(ae(r,s))return{element:r,componentType:"pds-primitive",displayName:a.name||a.id,id:a.id,tags:a.tags};let p=ir(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(d=>d.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 d=s.slice(1).replace(/\*/g,"");if(r.classList&&Array.from(r.classList).some(c=>c.startsWith(d)))return{element:r,componentType:"layout-pattern",displayName:a.name||a.id,id:a.id,tags:a.tags}}continue}if(ae(r,s))return{element:r,componentType:"layout-pattern",displayName:a.name||a.id,id:a.id,tags:a.tags};let p=ir(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(ae(r,"pds-icon")||r.closest&&r.closest("pds-icon")){let a=ae(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(ae(r,"nav[data-dropdown]")||r.closest&&r.closest("nav[data-dropdown]"))return{element:ae(r,"nav[data-dropdown]")?r:r.closest("nav[data-dropdown]"),componentType:"navigation",displayName:"dropdown menu",id:"dropdown"};r=r.parentElement}return null}function pn(){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 un(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(d=>d.toLowerCase().includes(r))||s.category?.toLowerCase().includes(r)||s.selectors?.some(d=>d.toLowerCase().includes(r)))&&n.push({...s,type:i})};return(!e.type||e.type==="primitive")&&o(H.primitives,"primitive"),(!e.type||e.type==="component")&&o(H.components,"component"),(!e.type||e.type==="layout")&&o(H.layoutPatterns,"layout"),(!e.type||e.type==="enhancement")&&o(H.enhancements,"enhancement"),n}function gn(t){let e=t.toLowerCase();return{primitives:H.primitives.filter(r=>r.category===e),components:H.components.filter(r=>r.category===e),layouts:H.layoutPatterns.filter(r=>r.category===e)}}function mn(){let t=new Set;return H.primitives.forEach(e=>e.tags?.forEach(r=>t.add(r))),H.components.forEach(e=>e.tags?.forEach(r=>t.add(r))),H.layoutPatterns.forEach(e=>e.tags?.forEach(r=>t.add(r))),H.enhancements.forEach(e=>e.tags?.forEach(r=>t.add(r))),Array.from(t).sort()}var H,fn,wt=mt(()=>{H={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",tags:["menu","interactive","navigation"]},{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"]}};fn=H});var Ye={};ft(Ye,{deepMerge:()=>yr,fragmentFromTemplateLike:()=>In,isObject:()=>Ve,parseHTML:()=>At});function Ve(t){return t&&typeof t=="object"&&!Array.isArray(t)}function yr(t,e){let r={...t};return Ve(t)&&Ve(e)&&Object.keys(e).forEach(n=>{Ve(e[n])?n in t?r[n]=yr(t[n],e[n]):Object.assign(r,{[n]:e[n]}):Object.assign(r,{[n]:e[n]})}),r}function In(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 y=g[2].slice(1),f=`pds-val-${l}`;u=u.replace(a,`$1data-pds-prop="${y}:${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=y=>{if(y!=null){if(y instanceof Node){g.insertBefore(y,l);return}if(Array.isArray(y)){y.forEach(f=>m(f));return}g.insertBefore(document.createTextNode(String(y)),l)}};m(u),g.removeChild(l)},p=document.createTreeWalker(i.content,NodeFilter.SHOW_COMMENT),d=[];for(;p.nextNode();){let l=p.currentNode;l?.nodeValue?.startsWith("pds-val-")&&d.push(l)}return d.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(":"),y=Number(String(m).replace("pds-val-",""));g&&Number.isInteger(y)&&(l[g]=r[y]),l.removeAttribute("data-pds-prop")}),i.content}function At(t){return new DOMParser().parseFromString(t,"text/html").body.childNodes}var Lt=mt(()=>{});Ce();var pe="any",Ee={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"}}},nn={type:"object",allowUnknown:!0,properties:{mode:{type:"string"},preset:{type:"string"},design:Ee,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:pe},enhancers:{type:["object","array"]},scanExisting:{type:"boolean"},observeShadows:{type:"boolean"},patchAttachShadow:{type:"boolean"},debounceMs:{type:"number"},onError:{type:pe},baseURL:{type:"string"}}},managerURL:{type:"string"},manager:{type:pe},liveEdit:{type:"boolean"},log:{type:pe}}};function ze(t){return t===null?"null":Array.isArray(t)?"array":typeof t}function on(t,e){if(e===pe)return!0;let r=ze(t);return Array.isArray(e)?e.includes(r):r===e}function _e(t,e,r,n){if(!e)return;let o=e.type||pe;if(!on(t,o)){n.push({path:r,expected:o,actual:ze(t),message:`Expected ${o} but got ${ze(t)}`});return}if(o==="array"&&e.items&&Array.isArray(t)&&t.forEach((a,i)=>{_e(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}_e(s,a[i],`${r}.${i}`,n)}}}function bt(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;bt(o,a,r)}),t.type==="array"&&t.items){let n=`${e}[]`;bt(t.items,n,r)}return r}var er=bt(Ee,""),tr=Ee,an={"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(v.RadiusSizes).map(([t,e])=>({const:e,title:t}))},"shape.borderWidth":{widget:"select",oneOf:Object.entries(v.BorderWidths).map(([t,e])=>({const:e,title:t}))},"shape.customRadius":{min:0,max:64,step:1,widget:"range"},"behavior.transitionSpeed":{oneOf:Object.entries(v.TransitionSpeeds).map(([t,e])=>({const:e,title:t}))},"behavior.animationEasing":{enum:Object.values(v.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(v.LinkStyles)},"a11y.minTouchTarget":{oneOf:Object.entries(v.TouchTargetSizes).map(([t,e])=>({const:e,title:t}))},"a11y.focusStyle":{enum:Object.values(v.FocusStyles)},"icons.defaultSize":{min:8,max:128,step:1,widget:"range",icon:"sparkle"}};function Jt(t=[]){return t.join(".")}function Kt(t=[]){return`/${t.join("/")}`}function sn(t,e=[]){if(!(!t||typeof t!="object"))return e.reduce((r,n)=>{if(r!=null&&typeof r=="object")return r[n]},t)}function Xt(t,e,r=[]){if(t!=null)return t;let n=sn(e,r);return n??void 0}function Me(t=""){return String(t).replace(/([a-z])([A-Z])/g,"$1 $2").replace(/[_-]+/g," ").replace(/\s+/g," ").trim().replace(/^./,e=>e.toUpperCase())}function rr(t,e){if(!t)return"string";let r=t.type||"string";if(Array.isArray(r)){let n=ze(e);return n!=="undefined"&&r.includes(n)?n:r.includes("string")?"string":r.find(o=>o!=="null")||r[0]||"string"}return r}function ht(t,e,r=[]){return!t||!e||!Array.isArray(r)||r.forEach(n=>{e[n]!==void 0&&(t[n]=e[n])}),t}function Zt(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:Me(r)})):Array.isArray(t?.oneOf)&&t.oneOf.length?t.oneOf:Array.isArray(t?.enum)&&t.enum.length?t.enum.map(r=>({const:r,title:Me(r)})):null}function ln(t){return t&&(t==="range"?"input-range":t)}function cn(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(ze(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 Qt(t,e,r){let n=rr(e,r),o=t.toLowerCase(),a={label:Me(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=an[t]||{},s={...a,...i};return s.widget&&(s.widget=ln(s.widget)),s}function nr(t,e,r,n,o,a){if(!t||typeof t!="object")return null;let i=Xt(e,a,r),s=rr(t,i);if(s==="object"&&t.properties){let h={type:"object",properties:{}};r.length>0&&(h.title=Me(r[r.length-1]));let w={};for(let[x,S]of Object.entries(t.properties)){let A=e&&typeof e=="object"&&!Array.isArray(e)?e[x]:void 0,L=nr(S,A,[...r,x],n,o,a);L&&(h.properties[x]=L.schema,L.hasValue&&(w[x]=L.value))}return Object.keys(h.properties).length?{schema:h,value:w,hasValue:Object.keys(w).length>0}:null}if(s==="array"){let h=Jt(r),w=Qt(h,t,e);o[h]=w;let x=Xt(e,a,r),S=t.items?.type||"string",A=Array.isArray(S)?S[0]:S,L={type:A},F=Zt(t?.items,null);if(F&&(L.oneOf=F),A==="string"&&Array.isArray(x)&&x.length>0){let C=x.find(b=>typeof b=="string"&&b.trim().length>0);C&&(L.examples=[C])}ht(L,t?.items,["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","minLength","maxLength","pattern","format","minItems","maxItems","uniqueItems","description","default"]);let I={type:"array",items:L};ht(I,t,["minItems","maxItems","uniqueItems","description","default"]);let $=Kt(r),z={},P=Array.isArray(L.oneOf)&&L.oneOf.length>0;if(A==="string"&&P&&(z["ui:widget"]=I.maxItems===1?"radio":"checkbox-group"),A==="string"&&Array.isArray(x)&&x.length>0){let C=x.filter(b=>typeof b=="string"&&b.trim().length>0).slice(0,5).join(", ");C&&(z["ui:placeholder"]=C)}return Object.keys(z).length&&(n[$]={...n[$]||{},...z}),{schema:I,value:Array.isArray(e)?e:[],hasValue:Array.isArray(e)}}let p=Jt(r),d=Qt(p,t,i);o[p]=d;let c=Zt(t,d),g={type:cn(s==="null"?"string":s,c),title:d.label||Me(r[r.length-1]||p)};c&&(g.oneOf=c),ht(g,t,["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","minLength","maxLength","pattern","format","description","default"]),typeof d.maxLength=="number"&&g.maxLength===void 0&&(g.maxLength=d.maxLength),(g.type==="number"||g.type==="integer")&&typeof d.min=="number"&&g.minimum===void 0&&(g.minimum=d.min),(g.type==="number"||g.type==="integer")&&typeof d.max=="number"&&g.maximum===void 0&&(g.maximum=d.max),(g.type==="number"||g.type==="integer")&&typeof d.step=="number"&&g.multipleOf===void 0&&(g.multipleOf=d.step);let m=i;m!==void 0&&(g.examples=[m]);let y=Kt(r),f={};return d.widget&&(f["ui:widget"]=d.widget),d.icon&&(f["ui:icon"]=d.icon),typeof d.min=="number"&&(f["ui:min"]=d.min),typeof d.max=="number"&&(f["ui:max"]=d.max),typeof d.step=="number"&&(f["ui:step"]=d.step),d.placeholder&&(f["ui:placeholder"]=d.placeholder),typeof d.rows=="number"&&(f["ui:options"]={...f["ui:options"]||{},rows:d.rows}),d.widget==="input-range"&&m!==void 0&&(f["ui:allowUnset"]=!0),(typeof d.min=="number"||typeof d.max=="number"||typeof d.step=="number")&&(f["ui:options"]={...f["ui:options"]||{},...typeof d.min=="number"?{min:d.min}:{},...typeof d.max=="number"?{max:d.max}:{},...typeof d.step=="number"?{step:d.step}:{}}),Object.keys(f).length&&(n[y]=f),{schema:g,value:e,hasValue:e!==void 0}}function ue(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=X?.default&&typeof X.default=="object"?X.default:null,o=nr(Ee,t,[],r,e,n);return{schema:o?.schema||{type:"object",properties:{}},uiSchema:r,values:o?.value||{},metadata:e}}function Te(t={}){return ue(t).metadata}function yt(t,{log:e,context:r="PDS config"}={}){if(!t||typeof t!="object")return[];let n=[];return _e(t,Ee,"design",n),n.length&&typeof e=="function"&&n.forEach(o=>{e("warn",`[${r}] ${o.message} at ${o.path}`)}),n}function vt(t,{log:e,context:r="PDS config"}={}){if(!t||typeof t!="object")return[];let n=[];return _e(t,nn,"config",n),n.length&&typeof e=="function"&&n.forEach(o=>{e("warn",`[${r}] ${o.message} at ${o.path}`)}),n}var X={"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:v.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:v.RadiusSizes.small,borderWidth:v.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:v.RadiusSizes.xlarge,borderWidth:v.BorderWidths.medium},behavior:{transitionSpeed:v.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:v.RadiusSizes.none,borderWidth:v.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:v.RadiusSizes.xxlarge,borderWidth:v.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:v.RadiusSizes.none,borderWidth:v.BorderWidths.thick},behavior:{transitionSpeed:v.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:v.RadiusSizes.medium,borderWidth:v.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:v.RadiusSizes.small,borderWidth:v.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:v.RadiusSizes.medium,borderWidth:v.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:v.RadiusSizes.small,borderWidth:v.BorderWidths.thick},behavior:{transitionSpeed:v.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:v.LineHeights.relaxed},spatialRhythm:{baseUnit:6,scaleRatio:1.4},shape:{radiusSize:v.RadiusSizes.xxlarge,borderWidth:v.BorderWidths.thin},behavior:{transitionSpeed:v.TransitionSpeeds.slow,animationEasing:v.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:v.RadiusSizes.none,borderWidth:v.BorderWidths.thick},behavior:{transitionSpeed:v.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:v.RadiusSizes.large,borderWidth:v.BorderWidths.medium},behavior:{transitionSpeed:v.TransitionSpeeds.normal,animationEasing:v.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:v.LineHeights.tight},spatialRhythm:{baseUnit:4,scaleRatio:1.25,containerPadding:1.25,sectionSpacing:2.5},shape:{radiusSize:v.RadiusSizes.large,borderWidth:v.BorderWidths.thin},layers:{shadowDepth:"medium",blurMedium:12},behavior:{transitionSpeed:v.TransitionSpeeds.fast,animationEasing:v.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:v.LineHeights.relaxed},spatialRhythm:{baseUnit:4,scaleRatio:1.25,containerPadding:1.5,sectionSpacing:3},shape:{radiusSize:v.RadiusSizes.medium,borderWidth:v.BorderWidths.thin},layers:{shadowDepth:"light",blurLight:8},behavior:{transitionSpeed:v.TransitionSpeeds.normal,animationEasing:v.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:v.RadiusSizes.small,borderWidth:v.BorderWidths.medium},behavior:{transitionSpeed:v.TransitionSpeeds.fast,animationEasing:v.AnimationEasings["ease-out"],focusRingWidth:3},a11y:{minTouchTarget:v.TouchTargetSizes.comfortable,focusStyle:v.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:v.RadiusSizes.medium,borderWidth:v.BorderWidths.thin},layers:{shadowDepth:"light",blurLight:6},behavior:{transitionSpeed:v.TransitionSpeeds.fast,animationEasing:v.AnimationEasings["ease-in-out"],focusRingWidth:3,focusRingOpacity:.4},a11y:{minTouchTarget:v.TouchTargetSizes.standard,focusStyle:v.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:v.LineHeights.relaxed},spatialRhythm:{baseUnit:4,scaleRatio:1.25,sectionSpacing:1.5},shape:{radiusSize:v.RadiusSizes.medium,borderWidth:v.BorderWidths.thin},behavior:{transitionSpeed:v.TransitionSpeeds.fast,animationEasing:v.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:v.LineHeights.tight},spatialRhythm:{baseUnit:4,scaleRatio:1.2,containerPadding:1.5,sectionSpacing:2},shape:{radiusSize:v.RadiusSizes.small,borderWidth:v.BorderWidths.thin},layers:{shadowDepth:"light",blurLight:4},behavior:{transitionSpeed:v.TransitionSpeeds.fast,animationEasing:v.AnimationEasings["ease-in-out"],focusRingWidth:2},layout:{densityCompact:.85,gridColumns:12}}};X.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:v.FontWeights.light,fontWeightNormal:v.FontWeights.normal,fontWeightMedium:v.FontWeights.medium,fontWeightSemibold:v.FontWeights.semibold,fontWeightBold:v.FontWeights.bold,lineHeightTight:v.LineHeights.tight,lineHeightNormal:v.LineHeights.normal,lineHeightRelaxed:v.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:v.RadiusSizes.large,borderWidth:v.BorderWidths.medium,customRadius:null},behavior:{transitionSpeed:v.TransitionSpeeds.normal,animationEasing:v.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:v.LinkStyles.inline,colorDerivation:"hsl"},a11y:{minTouchTarget:v.TouchTargetSizes.standard,prefersReducedMotion:!0,focusStyle:v.FocusStyles.ring},icons:{set:"phosphor",weight:"regular",defaultSize:24,externalPath:"/assets/img/icons/",sizes:v.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 or=Te(X.default),ar=ue(X.default);function xt(t="log",e,...r){if(this?.debug||this?.design?.debug||!1||t==="error"||t==="warn"){let o=console[t]||console.log;r.length>0?o(e,...r):o(e)}}Ce();wt();var K=class t{static#m;static get instance(){return this.#m}#e;#o;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.#m=this,this.tokens=this.generateTokens(),this.options.debug&&this.options.log?.("debug","Generated tokens:",this.tokens),this.#Se(),typeof CSSStyleSheet<"u"?this.#Ee():this.options.debug&&this.options.log?.("debug","[Generator] Skipping browser features (CSSStyleSheet not available)")}generateTokens(){let e=this.options.design||{},r=this.#M(e),n=e.layers||{},o=this.#h(n,r.light),a=this.#C(o),i=r.dark!=null?this.#C(this.#h(n,r.dark)):null;return{colors:this.#E(e.colors||{},r),spacing:this.generateSpacingTokens(e.spatialRhythm||{}),radius:this.#_(e.shape||{}),borderWidths:this.#O(e.shape||{}),typography:this.generateTypographyTokens(e.typography||{}),shadows:a,darkShadows:i,layout:this.#D(e.layout||{}),transitions:this.#W(e.behavior||{}),zIndex:this.#H(e.layers||{}),icons:this.#U(e.icons||{})}}#M(e={}){let r=e.layout||{},n=e.layers||{};return{light:this.#f(r.baseShadowOpacity??n.baseShadowOpacity),dark:this.#f(r.darkMode?.baseShadowOpacity??n.darkMode?.baseShadowOpacity)}}#f(e){let r=Number(e);if(Number.isFinite(r))return Math.min(Math.max(r,0),1)}#h(e={},r){let n={...e};return r!=null&&(n.baseShadowOpacity=r),n}#E(e,r={}){let{primary:n="#3b82f6",secondary:o="#64748b",accent:a="#ec4899",background:i="#ffffff",success:s=null,warning:p="#FFBF00",danger:d=null,info:c=null,darkMode:l={}}=e,u={primary:this.#r(n),secondary:this.#r(o),accent:this.#r(a),success:this.#r(s||this.#T(n)),warning:this.#r(p||a),danger:this.#r(d||this.#A(n)),info:this.#r(c||n),gray:this.#b(o),surface:this.#y(i)};return u.surface.fieldset=this.#L(u.surface),u.surfaceSmart=this.#S(u.surface,r),u.dark=this.#F(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.#j(u.dark.primary,u.dark.surface.base,4.5)}},u}#r(e){let r=this.#a(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))}}#T(e){let r=this.#a(e);return this.#t(120,Math.max(r.s,60),45)}#A(e){let r=this.#a(e);return this.#t(0,Math.max(r.s,70),50)}#b(e){let r=this.#a(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)}}#y(e){let r=this.#a(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.#v(e),hover:"color-mix(in oklab, var(--color-surface-base) 92%, var(--color-text-primary) 8%);"}}#L(e){return{base:e.subtle,subtle:e.elevated,elevated:e.sunken,sunken:this.#R(e.sunken,.05),overlay:e.elevated}}#R(e,r=.05){let n=this.#a(e),o=Math.max(n.l-n.l*r,5);return this.#t(n.h,n.s,o)}#v(e){let r=this.#a(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.#v(r),a=this.#y(o),i=n.primary?this.#r(n.primary):this.#i(e.primary);return{surface:{...a,fieldset:this.#I(a)},primary:i,secondary:n.secondary?this.#r(n.secondary):this.#i(e.secondary),accent:n.accent?this.#r(n.accent):this.#i(e.accent),gray:n.secondary?this.#b(n.secondary):e.gray,success:this.#i(e.success),info:this.#i(e.info),warning:this.#i(e.warning),danger:this.#i(e.danger)}}#c(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}}#p(e){let{r,g:n,b:o}=this.#c(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]}#d(e,r){let n=this.#p(e),o=this.#p(r),a=Math.max(n,o),i=Math.min(n,o);return(a+.05)/(i+.05)}#x(e,r=4.5){if(!e)return"#000000";let n="#ffffff",o="#000000",a=this.#d(e,n);if(a>=r)return n;let i=this.#d(e,o);return i>=r||i>a?o:n}#w(e,r=1){let{r:n,g:o,b:a}=this.#c(e);return`rgba(${n}, ${o}, ${a}, ${r})`}#P(e,r,n=.5){let o=this.#c(e),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.#N(i,s,p)}#N(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)}`}#I(e){return{base:e.elevated,subtle:e.overlay,elevated:this.#$(e.elevated,.08),sunken:e.elevated,overlay:this.#$(e.overlay,.05)}}#j(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 p=this.#d(s,r);if(p>a.ratio&&(a={shade:i,color:s,ratio:p}),p>=n)return s}return a.color||e?.["600"]||e?.["500"]}#k(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.#d(i,"#ffffff");if(s>o.ratio&&(o={shade:a,color:i,ratio:s}),s>=r)return i}return o.color||e?.["600"]||e?.["500"]}#S(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 p=this.#p(s)<.5,d=this.#x(s,4.5),c=this.#x(s,3),l=this.#P(d,s,.4),u=d,g=l,m=p?"#ffffff":"#000000",y=p?a:o,f=this.#w(m,y),h=p?"#ffffff":"#000000",w=p?.15:.1,x=this.#w(h,w);n[i]={bg:s,text:d,textSecondary:c,textMuted:l,icon:u,iconSubtle:g,shadow:f,border:x,scheme:p?"dark":"light"}}),n}#$(e,r=.05){let n=this.#a(e),o=Math.min(n.l+(100-n.l)*r,95);return this.#t(n.h,n.s,o)}#i(e){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=e[a.source];r[o]=this.#B(i,a.dimFactor)}),r}#B(e,r=.8){let n=this.#a(e),o=Math.max(n.s*r,5),a=Math.max(n.l*r,5);return this.#t(n.h,o,a)}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 p=1;p<=i;p++)s[p]=`${a*p}px`;return s}#_(e){let{radiusSize:r="medium",customRadius:n=null}=e,o;n!=null?o=n:typeof r=="number"?o=r:typeof r=="string"?o=v.RadiusSizes[r]??v.RadiusSizes.medium:o=v.RadiusSizes.medium;let a=Number.isFinite(Number(o))?Number(o):v.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"}}#O(e){let{borderWidth:r="medium"}=e,n;typeof r=="number"?n=r:typeof r=="string"?n=v.BorderWidths[r]??v.BorderWidths.medium:n=v.BorderWidths.medium;let o=Number.isFinite(Number(n))?Number(n):v.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=v.FontWeights.light,fontWeightNormal:p=v.FontWeights.normal,fontWeightMedium:d=v.FontWeights.medium,fontWeightSemibold:c=v.FontWeights.semibold,fontWeightBold:l=v.FontWeights.bold,lineHeightTight:u=v.LineHeights.tight,lineHeightNormal:g=v.LineHeights.normal,lineHeightRelaxed:m=v.LineHeights.relaxed}=e,y=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(y/Math.pow(f,2))}px`,sm:`${Math.round(y/f)}px`,base:`${y}px`,lg:`${Math.round(y*f)}px`,xl:`${Math.round(y*Math.pow(f,2))}px`,"2xl":`${Math.round(y*Math.pow(f,3))}px`,"3xl":`${Math.round(y*Math.pow(f,4))}px`,"4xl":`${Math.round(y*Math.pow(f,5))}px`},fontWeight:{light:s?.toString()||"300",normal:p?.toString()||"400",medium:d?.toString()||"500",semibold:c?.toString()||"600",bold:l?.toString()||"700"},lineHeight:{tight:u?.toString()||"1.25",normal:g?.toString()||"1.5",relaxed:m?.toString()||"1.75"}}}#C(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.#u(e,"maxWidth"),a=e.maxWidth,i=this.#z(e,{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"}}#z(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||{},p=this.#u(e,"maxWidth"),d=["sm","md","lg","xl"].some(f=>this.#u(a,f));if(!n&&!p&&!d)return{sm:void 0,md:void 0,lg:void 0,xl:void 0};let c=e?.maxWidth,l=this.#s(i,16),u=this.#s(c,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,y={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,`${y.sm}px`),md:this.#n(a.md,`${y.md}px`),lg:this.#n(a.lg,`${y.lg}px`),xl:this.#n(a.xl,`${y.xl}px`)}}#u(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)}#n(e,r){return typeof e=="number"&&Number.isFinite(e)?`${e}px`:typeof e=="string"&&e.trim().length>0?e:r}#s(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}#W(e){let{transitionSpeed:r=v.TransitionSpeeds.normal,animationEasing:n=v.AnimationEasings["ease-out"]}=e,o;return typeof r=="number"?o=r:typeof r=="string"&&v.TransitionSpeeds[r]?o=v.TransitionSpeeds[r]:o=v.TransitionSpeeds.normal,{fast:`${Math.round(o*.6)}ms`,normal:`${o}ms`,slow:`${Math.round(o*1.4)}ms`}}#H(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(([p,d])=>[p,`${d}px`])),spritePath:i,externalPath:s}}#q(e){let r=[];r.push(` /* Colors */
1
+ var Dn=Object.defineProperty;var Tt=(e,t)=>()=>(e&&(t=e(e=0)),t);var At=(e,t)=>{for(var r in t)Dn(e,r,{get:t[r],enumerable:!0})};var mr={};At(mr,{enums:()=>x});var x,Te=Tt(()=>{x={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 Mr={};At(Mr,{default:()=>Qn,findComponentForElement:()=>Kn,getAllSelectors:()=>Jn,getAllTags:()=>Zn,getByCategory:()=>Xn,ontology:()=>q,searchOntology:()=>Yn});function ce(e,t){if(!e||!t)return!1;try{return e.matches(t)}catch{return!1}}function Lr(e,t){if(!e||!t||!e.closest)return null;try{return e.closest(t)}catch{return null}}function Kn(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(ce(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(ce(r,s))return{element:r,componentType:"pds-primitive",displayName:a.name||a.id,id:a.id,tags:a.tags};let p=Lr(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(ce(r,s))return{element:r,componentType:"layout-pattern",displayName:a.name||a.id,id:a.id,tags:a.tags};let p=Lr(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(ce(r,"pds-icon")||r.closest&&r.closest("pds-icon")){let a=ce(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(ce(r,"nav[data-dropdown]")||r.closest&&r.closest("nav[data-dropdown]"))return{element:ce(r,"nav[data-dropdown]")?r:r.closest("nav[data-dropdown]"),componentType:"navigation",displayName:"dropdown menu",id:"dropdown"};r=r.parentElement}return null}function Jn(){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 Yn(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 Xn(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 Zn(){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,Qn,Ot=Tt(()=>{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",tags:["menu","interactive","navigation"]},{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"]}};Qn=q});var st={};At(st,{deepMerge:()=>Vr,fragmentFromTemplateLike:()=>Go,isObject:()=>it,parseHTML:()=>Qt});function it(e){return e&&typeof e=="object"&&!Array.isArray(e)}function Vr(e,t){let r={...e};return it(e)&&it(t)&&Object.keys(t).forEach(n=>{it(t[n])?n in e?r[n]=Vr(e[n],t[n]):Object.assign(r,{[n]:t[n]}):Object.assign(r,{[n]:t[n]})}),r}function Go(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 v=g[2].slice(1),h=`pds-val-${l}`;u=u.replace(a,`$1data-pds-prop="${v}:${h}"`),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=v=>{if(v!=null){if(v instanceof Node){g.insertBefore(v,l);return}if(Array.isArray(v)){v.forEach(h=>m(h));return}g.insertBefore(document.createTextNode(String(v)),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(":"),v=Number(String(m).replace("pds-val-",""));g&&Number.isInteger(v)&&(l[g]=r[v]),l.removeAttribute("data-pds-prop")}),i.content}function Qt(e){return new DOMParser().parseFromString(e,"text/html").body.childNodes}var er=Tt(()=>{});Te();var _t=class extends EventTarget{constructor(){super(),this.mode=null,this.compiled=null,this.log=()=>{},this.logHandler=null}},fr="__PURE_DS_PDS_SINGLETON__",Ft=typeof globalThis<"u"?globalThis:window,Rt=Ft?.[fr],f=Rt&&typeof Rt.addEventListener=="function"?Rt:new _t;Ft&&(Ft[fr]=f);typeof f.log!="function"&&(f.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 f.logHandler!="function"&&(f.logHandler=null);var re="any",_e={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"}}},Wn={type:"object",allowUnknown:!0,properties:{mode:{type:"string"},preset:{type:"string"},design:_e,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 Ae(e){return e===null?"null":Array.isArray(e)?"array":typeof e}function Hn(e,t){if(t===re)return!0;let r=Ae(e);return Array.isArray(t)?t.includes(r):r===t}function Ve(e,t,r,n){if(!t)return;let o=t.type||re;if(!Hn(e,o)){n.push({path:r,expected:o,actual:Ae(e),message:`Expected ${o} but got ${Ae(e)}`});return}if(o==="array"&&t.items&&Array.isArray(e)&&e.forEach((a,i)=>{Ve(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}Ve(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 wr=Nt(_e,""),kr=_e,Un={"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(x.RadiusSizes).map(([e,t])=>({const:t,title:e}))},"shape.borderWidth":{widget:"select",oneOf:Object.entries(x.BorderWidths).map(([e,t])=>({const:t,title:e}))},"shape.customRadius":{min:0,max:64,step:1,widget:"range"},"behavior.transitionSpeed":{oneOf:Object.entries(x.TransitionSpeeds).map(([e,t])=>({const:t,title:e}))},"behavior.animationEasing":{enum:Object.values(x.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(x.LinkStyles)},"a11y.minTouchTarget":{oneOf:Object.entries(x.TouchTargetSizes).map(([e,t])=>({const:t,title:e}))},"a11y.focusStyle":{enum:Object.values(x.FocusStyles)},"icons.defaultSize":{min:8,max:128,step:1,widget:"range",icon:"sparkle"}};function hr(e=[]){return e.join(".")}function br(e=[]){return`/${e.join("/")}`}function qn(e,t=[]){if(!(!e||typeof e!="object"))return t.reduce((r,n)=>{if(r!=null&&typeof r=="object")return r[n]},e)}function yr(e,t,r=[]){if(e!=null)return e;let n=qn(t,r);return n??void 0}function Re(e=""){return String(e).replace(/([a-z])([A-Z])/g,"$1 $2").replace(/[_-]+/g," ").replace(/\s+/g," ").trim().replace(/^./,t=>t.toUpperCase())}function Sr(e,t){if(!e)return"string";let r=e.type||"string";if(Array.isArray(r)){let n=Ae(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 vr(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:Re(r)})):Array.isArray(e?.oneOf)&&e.oneOf.length?e.oneOf:Array.isArray(e?.enum)&&e.enum.length?e.enum.map(r=>({const:r,title:Re(r)})):null}function Gn(e){return e&&(e==="range"?"input-range":e)}function Vn(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(Ae(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 xr(e,t,r){let n=Sr(t,r),o=e.toLowerCase(),a={label:Re(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=Un[e]||{},s={...a,...i};return s.widget&&(s.widget=Gn(s.widget)),s}function $r(e,t,r,n,o,a){if(!e||typeof e!="object")return null;let i=yr(t,a,r),s=Sr(e,i);if(s==="object"&&e.properties){let b={type:"object",properties:{}};r.length>0&&(b.title=Re(r[r.length-1]));let k={};for(let[w,$]of Object.entries(e.properties)){let T=t&&typeof t=="object"&&!Array.isArray(t)?t[w]:void 0,A=$r($,T,[...r,w],n,o,a);A&&(b.properties[w]=A.schema,A.hasValue&&(k[w]=A.value))}return Object.keys(b.properties).length?{schema:b,value:k,hasValue:Object.keys(k).length>0}:null}if(s==="array"){let b=hr(r),k=xr(b,e,t);o[b]=k;let w=yr(t,a,r),$=e.items?.type||"string",T=Array.isArray($)?$[0]:$,A={type:T},_=vr(e?.items,null);if(_&&(A.oneOf=_),T==="string"&&Array.isArray(w)&&w.length>0){let C=w.find(y=>typeof y=="string"&&y.trim().length>0);C&&(A.examples=[C])}Pt(A,e?.items,["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","minLength","maxLength","pattern","format","minItems","maxItems","uniqueItems","description","default"]);let I={type:"array",items:A};Pt(I,e,["minItems","maxItems","uniqueItems","description","default"]);let z=br(r),L={},P=Array.isArray(A.oneOf)&&A.oneOf.length>0;if(T==="string"&&P&&(L["ui:widget"]=I.maxItems===1?"radio":"checkbox-group"),T==="string"&&Array.isArray(w)&&w.length>0){let C=w.filter(y=>typeof y=="string"&&y.trim().length>0).slice(0,5).join(", ");C&&(L["ui:placeholder"]=C)}return Object.keys(L).length&&(n[z]={...n[z]||{},...L}),{schema:I,value:Array.isArray(t)?t:[],hasValue:Array.isArray(t)}}let p=hr(r),c=xr(p,e,i);o[p]=c;let d=vr(e,c),g={type:Vn(s==="null"?"string":s,d),title:c.label||Re(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 v=br(r),h={};return c.widget&&(h["ui:widget"]=c.widget),c.icon&&(h["ui:icon"]=c.icon),typeof c.min=="number"&&(h["ui:min"]=c.min),typeof c.max=="number"&&(h["ui:max"]=c.max),typeof c.step=="number"&&(h["ui:step"]=c.step),c.placeholder&&(h["ui:placeholder"]=c.placeholder),typeof c.rows=="number"&&(h["ui:options"]={...h["ui:options"]||{},rows:c.rows}),c.widget==="input-range"&&m!==void 0&&(h["ui:allowUnset"]=!0),(typeof c.min=="number"||typeof c.max=="number"||typeof c.step=="number")&&(h["ui:options"]={...h["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(h).length&&(n[v]=h),{schema:g,value:t,hasValue:t!==void 0}}function he(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=$r(_e,e,[],r,t,n);return{schema:o?.schema||{type:"object",properties:{}},uiSchema:r,values:o?.value||{},metadata:t}}function Fe(e={}){return he(e).metadata}function It(e,{log:t,context:r="PDS config"}={}){if(!e||typeof e!="object")return[];let n=[];return Ve(e,_e,"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 Ve(e,Wn,"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:x.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:x.RadiusSizes.small,borderWidth:x.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:x.RadiusSizes.xlarge,borderWidth:x.BorderWidths.medium},behavior:{transitionSpeed:x.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:x.RadiusSizes.none,borderWidth:x.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:x.RadiusSizes.xxlarge,borderWidth:x.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:x.RadiusSizes.none,borderWidth:x.BorderWidths.thick},behavior:{transitionSpeed:x.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:x.RadiusSizes.medium,borderWidth:x.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:x.RadiusSizes.small,borderWidth:x.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:x.RadiusSizes.medium,borderWidth:x.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:x.RadiusSizes.small,borderWidth:x.BorderWidths.thick},behavior:{transitionSpeed:x.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:x.LineHeights.relaxed},spatialRhythm:{baseUnit:6,scaleRatio:1.4},shape:{radiusSize:x.RadiusSizes.xxlarge,borderWidth:x.BorderWidths.thin},behavior:{transitionSpeed:x.TransitionSpeeds.slow,animationEasing:x.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:x.RadiusSizes.none,borderWidth:x.BorderWidths.thick},behavior:{transitionSpeed:x.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:x.RadiusSizes.large,borderWidth:x.BorderWidths.medium},behavior:{transitionSpeed:x.TransitionSpeeds.normal,animationEasing:x.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:x.LineHeights.tight},spatialRhythm:{baseUnit:4,scaleRatio:1.25,containerPadding:1.25,sectionSpacing:2.5},shape:{radiusSize:x.RadiusSizes.large,borderWidth:x.BorderWidths.thin},layers:{shadowDepth:"medium",blurMedium:12},behavior:{transitionSpeed:x.TransitionSpeeds.fast,animationEasing:x.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:x.LineHeights.relaxed},spatialRhythm:{baseUnit:4,scaleRatio:1.25,containerPadding:1.5,sectionSpacing:3},shape:{radiusSize:x.RadiusSizes.medium,borderWidth:x.BorderWidths.thin},layers:{shadowDepth:"light",blurLight:8},behavior:{transitionSpeed:x.TransitionSpeeds.normal,animationEasing:x.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:x.RadiusSizes.small,borderWidth:x.BorderWidths.medium},behavior:{transitionSpeed:x.TransitionSpeeds.fast,animationEasing:x.AnimationEasings["ease-out"],focusRingWidth:3},a11y:{minTouchTarget:x.TouchTargetSizes.comfortable,focusStyle:x.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:x.RadiusSizes.medium,borderWidth:x.BorderWidths.thin},layers:{shadowDepth:"light",blurLight:6},behavior:{transitionSpeed:x.TransitionSpeeds.fast,animationEasing:x.AnimationEasings["ease-in-out"],focusRingWidth:3,focusRingOpacity:.4},a11y:{minTouchTarget:x.TouchTargetSizes.standard,focusStyle:x.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:x.LineHeights.relaxed},spatialRhythm:{baseUnit:4,scaleRatio:1.25,sectionSpacing:1.5},shape:{radiusSize:x.RadiusSizes.medium,borderWidth:x.BorderWidths.thin},behavior:{transitionSpeed:x.TransitionSpeeds.fast,animationEasing:x.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:x.LineHeights.tight},spatialRhythm:{baseUnit:4,scaleRatio:1.2,containerPadding:1.5,sectionSpacing:2},shape:{radiusSize:x.RadiusSizes.small,borderWidth:x.BorderWidths.thin},layers:{shadowDepth:"light",blurLight:4},behavior:{transitionSpeed:x.TransitionSpeeds.fast,animationEasing:x.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:x.FontWeights.light,fontWeightNormal:x.FontWeights.normal,fontWeightMedium:x.FontWeights.medium,fontWeightSemibold:x.FontWeights.semibold,fontWeightBold:x.FontWeights.bold,lineHeightTight:x.LineHeights.tight,lineHeightNormal:x.LineHeights.normal,lineHeightRelaxed:x.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:x.RadiusSizes.large,borderWidth:x.BorderWidths.medium,customRadius:null},behavior:{transitionSpeed:x.TransitionSpeeds.normal,animationEasing:x.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:x.LinkStyles.inline,colorDerivation:"hsl"},a11y:{minTouchTarget:x.TouchTargetSizes.standard,prefersReducedMotion:!0,focusStyle:x.FocusStyles.ring},icons:{set:"phosphor",weight:"regular",defaultSize:24,externalPath:"/assets/img/icons/",sizes:x.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 zr=Fe(Q.default),Cr=he(Q.default);function Bt(e="log",t,...r){f.log(e,t,...r)}Te();Ot();var Z=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.#L(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.#B(t.shape||{}),borderWidths:this.#O(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||{})}}#L(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",v=p?a:o,h=this.#w(m,v),b=p?"#ffffff":"#000000",k=p?.15:.1,w=this.#w(b,k);n[i]={bg:s,text:c,textSecondary:d,textMuted:l,icon:u,iconSubtle:g,shadow:h,border:w,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}#B(t){let{radiusSize:r="medium",customRadius:n=null}=t,o;n!=null?o=n:typeof r=="number"?o=r:typeof r=="string"?o=x.RadiusSizes[r]??x.RadiusSizes.medium:o=x.RadiusSizes.medium;let a=Number.isFinite(Number(o))?Number(o):x.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"}}#O(t){let{borderWidth:r="medium"}=t,n;typeof r=="number"?n=r:typeof r=="string"?n=x.BorderWidths[r]??x.BorderWidths.medium:n=x.BorderWidths.medium;let o=Number.isFinite(Number(n))?Number(n):x.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=x.FontWeights.light,fontWeightNormal:p=x.FontWeights.normal,fontWeightMedium:c=x.FontWeights.medium,fontWeightSemibold:d=x.FontWeights.semibold,fontWeightBold:l=x.FontWeights.bold,lineHeightTight:u=x.LineHeights.tight,lineHeightNormal:g=x.LineHeights.normal,lineHeightRelaxed:m=x.LineHeights.relaxed}=t,v=Number.isFinite(Number(a))?Number(a):16,h=Number.isFinite(Number(i))?Number(i):1.25;return{fontFamily:{headings:r,body:n,mono:o},fontSize:{xs:`${Math.round(v/Math.pow(h,2))}px`,sm:`${Math.round(v/h)}px`,base:`${v}px`,lg:`${Math.round(v*h)}px`,xl:`${Math.round(v*Math.pow(h,2))}px`,"2xl":`${Math.round(v*Math.pow(h,3))}px`,"3xl":`${Math.round(v*Math.pow(h,4))}px`,"4xl":`${Math.round(v*Math.pow(h,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.#C(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"}}#C(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(h=>this.#u(a,h));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=h=>h?Math.max(320,h-l*2):u,v={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,`${v.sm}px`),md:this.#n(a.md,`${v.md}px`),lg:this.#n(a.lg,`${v.lg}px`),xl:this.#n(a.xl,`${v.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=x.TransitionSpeeds.normal,animationEasing:n=x.AnimationEasings["ease-out"]}=t,o;return typeof r=="number"?o=r:typeof r=="string"&&x.TransitionSpeeds[r]?o=x.TransitionSpeeds[r]:o=x.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 */
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(e).forEach(([o,a])=>{o!=="dark"&&o!=="surfaceSmart"&&o!=="interactive"&&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};
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};
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};
@@ -19,9 +19,9 @@ var rn=Object.defineProperty;var mt=(t,e)=>()=>(t&&(e=t(t=0)),e);var ft=(t,e)=>{
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
- `),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-text: ${e.interactive.light.text}; /* For links and outline buttons on light surfaces */
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
25
  `)),r.push(` /* Translucent Surface Tokens */
26
26
  `),r.push(` --color-surface-translucent-25: color-mix(in oklab, var(--color-surface-subtle) 25%, transparent 75%);
27
27
  `),r.push(` --color-surface-translucent-50: color-mix(in oklab, var(--color-surface-subtle) 50%, transparent 50%);
@@ -41,8 +41,8 @@ var rn=Object.defineProperty;var mt=(t,e)=>()=>(t&&(e=t(t=0)),e);var ft=(t,e)=>{
41
41
 
42
42
  /* Legacy alias for backwards compatibility */
43
43
  --backdrop-background: var(--backdrop-bg);
44
- `),r.push(this.#G(e)),`${r.join("")}
45
- `}#G(e){let r=e.primary?.[500]||"#3b82f6",n=e.secondary?.[500]||"#8b5cf6",o=e.accent?.[500]||"#f59e0b";return`
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`
46
46
  /* Mesh Gradient Backgrounds */
47
47
  --background-mesh-01: radial-gradient(at 27% 37%, color-mix(in oklab, ${r} 25%, transparent) 0px, transparent 50%),
48
48
  radial-gradient(at 97% 21%, color-mix(in oklab, ${n} 22%, transparent) 0px, transparent 50%),
@@ -68,39 +68,39 @@ var rn=Object.defineProperty;var mt=(t,e)=>()=>(t&&(e=t(t=0)),e);var ft=(t,e)=>{
68
68
  radial-gradient(at 10% 10%, color-mix(in oklab, ${o} 20%, transparent) 0px, transparent 50%),
69
69
  radial-gradient(at 90% 10%, color-mix(in oklab, ${n} 18%, transparent) 0px, transparent 50%),
70
70
  radial-gradient(at 50% 90%, color-mix(in oklab, ${o} 15%, transparent) 0px, transparent 50%);
71
- `}#V(e){let r=[` /* Spacing */
72
- `];return Object.entries(e).forEach(([n,o])=>{n!=null&&n!=="NaN"&&o!==void 0&&!o.includes("NaN")&&r.push(` --spacing-${n}: ${o};
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};
73
73
  `)}),`${r.join("")}
74
- `}#Y(e){let r=[` /* Border Radius */
75
- `];return Object.entries(e).forEach(([n,o])=>{r.push(` --radius-${n}: ${o};
74
+ `}#K(t){let r=[` /* Border Radius */
75
+ `];return Object.entries(t).forEach(([n,o])=>{r.push(` --radius-${n}: ${o};
76
76
  `)}),`${r.join("")}
77
- `}#J(e){let r=[` /* Border Widths */
78
- `];return Object.entries(e).forEach(([n,o])=>{r.push(` --border-width-${n}: ${o};
77
+ `}#J(t){let r=[` /* Border Widths */
78
+ `];return Object.entries(t).forEach(([n,o])=>{r.push(` --border-width-${n}: ${o};
79
79
  `)}),`${r.join("")}
80
- `}#K(e){let r=[` /* Typography */
81
- `];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 p=i.replace(/([A-Z])/g,"-$1").toLowerCase();r.push(` --font-${a}-${p}: ${s};
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};
82
82
  `)})}),`${r.join("")}
83
- `}#g(e){let r=[` /* Shadows */
84
- `];return Object.entries(e).forEach(([n,o])=>{r.push(` --shadow-${n}: ${o};
83
+ `}#g(t){let r=[` /* Shadows */
84
+ `];return Object.entries(t).forEach(([n,o])=>{r.push(` --shadow-${n}: ${o};
85
85
  `)}),`${r.join("")}
86
- `}#X(e){let r=[` /* Layout */
87
- `];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};
86
+ `}#X(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};
88
88
  `)}),`${r.join("")}
89
- `}#Z(e){let r=[` /* Transitions */
90
- `];return Object.entries(e).forEach(([n,o])=>{r.push(` --transition-${n}: ${o};
89
+ `}#Z(t){let r=[` /* Transitions */
90
+ `];return Object.entries(t).forEach(([n,o])=>{r.push(` --transition-${n}: ${o};
91
91
  `)}),`${r.join("")}
92
- `}#Q(e){let r=[` /* Z-Index */
93
- `];return Object.entries(e).forEach(([n,o])=>{r.push(` --z-${n}: ${o};
92
+ `}#Q(t){let r=[` /* Z-Index */
93
+ `];return Object.entries(t).forEach(([n,o])=>{r.push(` --z-${n}: ${o};
94
94
  `)}),`${r.join("")}
95
- `}#ee(e){let r=[` /* Icon System */
96
- `];return r.push(` --icon-set: ${e.set};
97
- `),r.push(` --icon-weight: ${e.weight};
98
- `),r.push(` --icon-size: ${e.defaultSize};
99
- `),Object.entries(e.sizes).forEach(([n,o])=>{r.push(` --icon-size-${n}: ${o};
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};
100
100
  `)}),`${r.join("")}
101
- `}#te(e,r){if(!e?.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(e.dark).forEach(([l,u])=>{l!=="surfaceSmart"&&typeof u=="object"&&u!==null&&o(u,`${l}-`)});let a=[];e.dark.surfaceSmart&&(a.push(` /* Smart Surface Tokens (dark mode, context-aware) */
103
- `),Object.entries(e.dark.surfaceSmart).forEach(([l,u])=>{a.push(` --surface-${l}-bg: ${u.bg};
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
104
  `),a.push(` --surface-${l}-text: ${u.text};
105
105
  `),a.push(` --surface-${l}-text-secondary: ${u.textSecondary};
106
106
  `),a.push(` --surface-${l}-text-muted: ${u.textMuted};
@@ -131,11 +131,11 @@ var rn=Object.defineProperty;var mt=(t,e)=>()=>(t&&(e=t(t=0)),e);var ft=(t,e)=>{
131
131
 
132
132
  /* Legacy alias for backwards compatibility */
133
133
  --backdrop-background: var(--backdrop-bg);
134
- `,p=this.#oe(e),d=r?[this.#g(r)]:[];return`html[data-theme="dark"] {
135
- ${[...n,...a,...d,i,s,p].join("")}}
136
- `}#re(e,r){if(!e?.dark)return"";let n=[],o=(u,g="")=>{Object.entries(u).forEach(([m,y])=>{typeof y=="object"&&y!==null?o(y,`${g}${m}-`):typeof y=="string"&&n.push(` --color-${g}${m}: ${y};
137
- `)})};Object.entries(e.dark).forEach(([u,g])=>{u!=="surfaceSmart"&&typeof g=="object"&&g!==null&&o(g,`${u}-`)});let a=[];e.dark.surfaceSmart&&(a.push(` /* Smart Surface Tokens (dark mode, context-aware) */
138
- `),Object.entries(e.dark.surfaceSmart).forEach(([u,g])=>{a.push(` --surface-${u}-bg: ${g.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,v])=>{typeof v=="object"&&v!==null?o(v,`${g}${m}-`):typeof v=="string"&&n.push(` --color-${g}${m}: ${v};
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
139
  `),a.push(` --surface-${u}-text: ${g.text};
140
140
  `),a.push(` --surface-${u}-text-secondary: ${g.textSecondary};
141
141
  `),a.push(` --surface-${u}-text-muted: ${g.textMuted};
@@ -144,9 +144,9 @@ ${[...n,...a,...d,i,s,p].join("")}}
144
144
  `),a.push(` --surface-${u}-shadow: ${g.shadow};
145
145
  `),a.push(` --surface-${u}-border: ${g.border};
146
146
  `)}),a.push(`
147
- `));let i=[];e.interactive&&e.interactive.dark&&(i.push(` /* Interactive Colors - optimized for specific use cases (dark mode) */
148
- `),i.push(` --color-primary-fill: ${e.interactive.dark.fill}; /* For button backgrounds with white text */
149
- `),i.push(` --color-primary-text: ${e.interactive.dark.text}; /* For links and outline buttons on dark surfaces */
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
150
  `));let s=[` --color-text-primary: var(--color-gray-100);
151
151
  `,` --color-text-secondary: var(--color-gray-300);
152
152
  `,` --color-text-muted: var(--color-gray-600);
@@ -169,10 +169,10 @@ ${[...n,...a,...d,i,s,p].join("")}}
169
169
 
170
170
  /* Legacy alias for backwards compatibility */
171
171
  --backdrop-background: var(--backdrop-bg);
172
- `,d=this.#ne(e),c=r?[this.#g(r)]:[];return`
172
+ `,c=this.#ne(t),d=r?[this.#g(r)]:[];return`
173
173
  html[data-theme="dark"] {
174
- ${[...n,...a,...c,s,p,d].join("")} }
175
- `}#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) */
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) */
176
176
  --background-mesh-01: radial-gradient(at 27% 37%, color-mix(in oklab, ${n} 20%, transparent) 0px, transparent 50%),
177
177
  radial-gradient(at 97% 21%, color-mix(in oklab, ${o} 16%, transparent) 0px, transparent 50%),
178
178
  radial-gradient(at 52% 99%, color-mix(in oklab, ${a} 13%, transparent) 0px, transparent 50%),
@@ -197,7 +197,7 @@ ${[...n,...a,...c,s,p,d].join("")} }
197
197
  radial-gradient(at 10% 10%, color-mix(in oklab, ${a} 14%, transparent) 0px, transparent 50%),
198
198
  radial-gradient(at 90% 10%, color-mix(in oklab, ${o} 13%, transparent) 0px, transparent 50%),
199
199
  radial-gradient(at 50% 90%, color-mix(in oklab, ${a} 10%, transparent) 0px, transparent 50%);
200
- `}#oe(e){let r=e.dark||e,n=r.primary?.[400]||"#60a5fa",o=r.secondary?.[400]||"#a78bfa",a=r.accent?.[400]||"#fbbf24";return`
200
+ `}#oe(t){let r=t.dark||t,n=r.primary?.[400]||"#60a5fa",o=r.secondary?.[400]||"#a78bfa",a=r.accent?.[400]||"#fbbf24";return`
201
201
  /* Mesh Gradient Backgrounds (Dark Mode) */
202
202
  --background-mesh-01: radial-gradient(at 27% 37%, color-mix(in oklab, ${n} 20%, transparent) 0px, transparent 50%),
203
203
  radial-gradient(at 97% 21%, color-mix(in oklab, ${o} 16%, transparent) 0px, transparent 50%),
@@ -231,11 +231,11 @@ html[data-theme="dark"] {
231
231
  .callout-danger, .callout-error { background-color: var(--color-danger-50); border-color: var(--color-danger-500); color: var(--color-danger-900); }
232
232
  img, video { opacity: 0.8; transition: opacity var(--transition-normal); }
233
233
  img:hover, video:hover { opacity: 1; }
234
- }`}#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 */
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 */
235
235
  body {
236
236
  background: var(--background-mesh-0${Math.max(1,Math.min(5,Math.floor(r)))});
237
237
  background-attachment: fixed;
238
- }`}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) */
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) */
239
239
  .liquid-glass {
240
240
  border-radius: var(--radius-lg);
241
241
  /* Subtle translucent fill blended with surface */
@@ -417,7 +417,7 @@ html[data-theme="dark"] .liquid-glass {
417
417
  box-shadow: 0 0 12px var(--color-danger-500);
418
418
  }
419
419
 
420
- `}#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()) */
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()) */
421
421
 
422
422
  :where(blockquote) {
423
423
  margin: 0 0 var(--spacing-4) 0;
@@ -608,7 +608,7 @@ html[data-theme="dark"] .liquid-glass {
608
608
 
609
609
  /* Dialog styles moved to #generateDialogStyles() */
610
610
 
611
- `}#de(){let{shape:e={},spatialRhythm:r={},inputPadding:n,buttonPadding:o,focusRingWidth:a,focusRingOpacity:i,borderWidthThin:s,sectionSpacing:p,buttonMinHeight:d,inputMinHeight:c}=this.options.design,l=typeof e.borderWidth=="number"?e.borderWidth:typeof e.borderWidth=="string"?v.BorderWidths[e.borderWidth]??null:null,u=r.inputPadding??n??.75,g=r.buttonPadding??o??1,m=a||3,y=s||l||v.BorderWidths.thin,f=r.sectionSpacing??p??2,h=d||30;return`/* Mobile-First Form Styles - Generated from Design Config */
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"?x.BorderWidths[t.borderWidth]??null:null,u=r.inputPadding??n??.75,g=r.buttonPadding??o??1,m=a||3,v=s||l||x.BorderWidths.thin,h=r.sectionSpacing??p??2,b=c||30;return`/* Mobile-First Form Styles - Generated from Design Config */
612
612
  form {
613
613
  margin: 0;
614
614
  width: 100%;
@@ -736,7 +736,7 @@ input, textarea, select {
736
736
 
737
737
  input, textarea, select {
738
738
  width: 100%;
739
- min-height: ${c||40}px;
739
+ min-height: ${d||40}px;
740
740
  padding: calc(var(--spacing-1) * ${u}) var(--spacing-4);
741
741
  border: var(--border-width-medium) solid var(--color-border);
742
742
  border-radius: var(--radius-md);
@@ -916,7 +916,7 @@ input[type="color"] {
916
916
  display: inline-flex;
917
917
  align-items: center;
918
918
  justify-content: center;
919
- min-height: calc(${h}px * 0.75);
919
+ min-height: calc(${b}px * 0.75);
920
920
  padding: calc(var(--spacing-1) * ${g*.6}) calc(var(--spacing-4) * 0.85);
921
921
  border: var(--border-width-medium) solid var(--color-border);
922
922
  border-radius: var(--radius-md);
@@ -1020,7 +1020,7 @@ fieldset[role="group"].buttons {
1020
1020
  display: inline-flex;
1021
1021
  align-items: center;
1022
1022
  justify-content: center;
1023
- min-height: calc(${h}px * 0.75);
1023
+ min-height: calc(${b}px * 0.75);
1024
1024
  padding: calc(var(--spacing-1) * ${g*.6}) calc(var(--spacing-4) * 0.85);
1025
1025
  border: var(--border-width-medium) solid var(--color-border);
1026
1026
  border-radius: var(--radius-md);
@@ -1316,7 +1316,7 @@ select {
1316
1316
  /* Button styling */
1317
1317
  button, .btn, input[type="submit"], input[type="button"], input[type="reset"] {
1318
1318
  --btn-pad-y: max(calc(var(--spacing-1) * ${g}), var(--spacing-2));
1319
- --btn-target-h: max(${h}px, calc(var(--font-size-base) + (var(--btn-pad-y) * 2) + (var(--border-width-medium) * 2)));
1319
+ --btn-target-h: max(${b}px, calc(var(--font-size-base) + (var(--btn-pad-y) * 2) + (var(--border-width-medium) * 2)));
1320
1320
  display: inline-flex;
1321
1321
  gap: var(--spacing-1);
1322
1322
  align-items: center;
@@ -1482,7 +1482,7 @@ button, .btn, input[type="submit"], input[type="button"], input[type="reset"] {
1482
1482
 
1483
1483
  .btn-sm {
1484
1484
  --btn-pad-y: calc(max(calc(var(--spacing-1) * ${g}), var(--spacing-2)) * 0.85);
1485
- --btn-target-h: max(calc(${h}px * 0.85), calc(var(--font-size-sm) + (var(--btn-pad-y) * 2) + (var(--border-width-medium) * 2)));
1485
+ --btn-target-h: max(calc(${b}px * 0.85), calc(var(--font-size-sm) + (var(--btn-pad-y) * 2) + (var(--border-width-medium) * 2)));
1486
1486
  padding: var(--btn-pad-y) calc(var(--spacing-6) * 0.8);
1487
1487
  font-size: var(--font-size-sm);
1488
1488
  min-height: var(--btn-target-h);
@@ -1491,7 +1491,7 @@ button, .btn, input[type="submit"], input[type="button"], input[type="reset"] {
1491
1491
 
1492
1492
  .btn-xs {
1493
1493
  --btn-pad-y: calc(max(calc(var(--spacing-1) * ${g}), var(--spacing-2)) * 0.7);
1494
- --btn-target-h: max(calc(${h}px * 0.7), calc(var(--font-size-xs) + (var(--btn-pad-y) * 2) + (var(--border-width-medium) * 2)));
1494
+ --btn-target-h: max(calc(${b}px * 0.7), calc(var(--font-size-xs) + (var(--btn-pad-y) * 2) + (var(--border-width-medium) * 2)));
1495
1495
  padding: var(--btn-pad-y) calc(var(--spacing-6) * 0.65);
1496
1496
  font-size: var(--font-size-xs);
1497
1497
  min-height: var(--btn-target-h);
@@ -1501,7 +1501,7 @@ button, .btn, input[type="submit"], input[type="button"], input[type="reset"] {
1501
1501
 
1502
1502
  .btn-lg {
1503
1503
  --btn-pad-y: calc(max(calc(var(--spacing-1) * ${g}), var(--spacing-2)) * 1.15);
1504
- --btn-target-h: max(calc(${h}px * 1.15), calc(var(--font-size-lg) + (var(--btn-pad-y) * 2) + (var(--border-width-medium) * 2)));
1504
+ --btn-target-h: max(calc(${b}px * 1.15), calc(var(--font-size-lg) + (var(--btn-pad-y) * 2) + (var(--border-width-medium) * 2)));
1505
1505
  padding: var(--btn-pad-y) calc(var(--spacing-6) * 1.35);
1506
1506
  font-size: var(--font-size-lg);
1507
1507
  min-height: var(--btn-target-h);
@@ -1729,7 +1729,7 @@ a.btn-working {
1729
1729
  }
1730
1730
  }
1731
1731
 
1732
- `}#pe(){let{layout:e={}}=this.options.design,r=e.breakpoints||{sm:640,md:768,lg:1024,xl:1280};return`/* Table Styles - Mobile First */
1732
+ `}#pe(){let{layout:t={}}=this.options.design,r=t.breakpoints||{sm:640,md:768,lg:1024,xl:1280};return`/* Table Styles - Mobile First */
1733
1733
 
1734
1734
  table {
1735
1735
  width: 100%;
@@ -2029,7 +2029,7 @@ tbody {
2029
2029
  .badge-lg { padding: var(--spacing-2) var(--spacing-3); font-size: var(--font-size-sm); }
2030
2030
  .pill { padding: var(--spacing-1) var(--spacing-3); border-radius: var(--radius-full); }
2031
2031
 
2032
- `}#fe(){let{layout:e={},behavior:r={}}=this.options.design;return`/* ============================================================================
2032
+ `}#fe(){let{layout:t={},behavior:r={}}=this.options.design;return`/* ============================================================================
2033
2033
  Dialog Primitive
2034
2034
  Native <dialog> element with PDS integration
2035
2035
  ============================================================================ */
@@ -2233,7 +2233,7 @@ dialog.dialog-xl { width: min(1200px, calc(100vw - var(--spacing-8))); max-width
2233
2233
  dialog.dialog-full { width: calc(100vw - var(--spacing-8)); max-width: calc(100vw - var(--spacing-8)); max-height: calc(100dvh - var(--spacing-8)); }
2234
2234
 
2235
2235
  /* Mobile responsiveness - maximize on mobile */
2236
- @media (max-width: ${(e.breakpoints||{sm:640,md:768,lg:1024,xl:1280}).sm-1}px) {
2236
+ @media (max-width: ${(t.breakpoints||{sm:640,md:768,lg:1024,xl:1280}).sm-1}px) {
2237
2237
  dialog,
2238
2238
  dialog.dialog-sm,
2239
2239
  dialog.dialog-lg,
@@ -2299,7 +2299,7 @@ html:has(dialog[open]:modal) {
2299
2299
  }
2300
2300
 
2301
2301
 
2302
- `}#he(){let{layout:e={}}=this.options.design;return`/* Tab Strip Component */
2302
+ `}#he(){let{layout:t={}}=this.options.design;return`/* Tab Strip Component */
2303
2303
 
2304
2304
  /* Tab navigation */
2305
2305
 
@@ -2390,7 +2390,7 @@ pds-tabstrip {
2390
2390
  }
2391
2391
 
2392
2392
  /* Mobile responsive */
2393
- @media (max-width: ${(e.breakpoints||{sm:640,md:768,lg:1024,xl:1280}).sm-1}px) {
2393
+ @media (max-width: ${(t.breakpoints||{sm:640,md:768,lg:1024,xl:1280}).sm-1}px) {
2394
2394
  pds-tabstrip > nav { gap: var(--spacing-1); }
2395
2395
  pds-tabstrip > nav > a { padding: var(--spacing-2) var(--spacing-3); font-size: var(--font-size-sm); }
2396
2396
  pds-tabstrip > pds-tabpanel[data-tabpanel] { padding: var(--spacing-3) 0; }
@@ -2422,7 +2422,7 @@ pds-tabstrip {
2422
2422
  *:hover { scrollbar-color: var(--color-secondary-400) transparent; }
2423
2423
  @media (prefers-color-scheme: dark) { *:hover { scrollbar-color: var(--color-secondary-500) transparent; } }
2424
2424
 
2425
- `}#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)`,p=.72,d=`calc(${o} * ${p})`,c=`calc(${a} * ${p})`,l=`calc(${i} * ${p})`,u=`calc(${s} * ${p})`,g=`${r}px`,m=`calc(${r}px * 0.85)`,y=`calc(${r}px * 0.7)`,f=`calc(${r}px * 1.15)`,h=`max(${g}, calc(var(--font-size-base) + (${o} * 2) + (var(--border-width-medium) * 2)))`,w=`max(${m}, calc(var(--font-size-sm) + (${a} * 2) + (var(--border-width-medium) * 2)))`,x=`max(${y}, calc(var(--font-size-xs) + (${i} * 2) + (var(--border-width-medium) * 2)))`,S=`max(${f}, calc(var(--font-size-lg) + (${s} * 2) + (var(--border-width-medium) * 2)))`;return`/* Icon System */
2425
+ `}#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)`,v=`calc(${r}px * 0.7)`,h=`calc(${r}px * 1.15)`,b=`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)))`,w=`max(${v}, calc(var(--font-size-xs) + (${i} * 2) + (var(--border-width-medium) * 2)))`,$=`max(${h}, calc(var(--font-size-lg) + (${s} * 2) + (var(--border-width-medium) * 2)))`;return`/* Icon System */
2426
2426
 
2427
2427
  pds-icon {
2428
2428
  display: inline-flex;
@@ -2475,11 +2475,11 @@ a.icon-only {
2475
2475
  }
2476
2476
 
2477
2477
  &.icon-only {
2478
- padding: ${d};
2479
- min-width: ${h};
2480
- min-height: ${h};
2481
- width: ${h};
2482
- height: ${h};
2478
+ padding: ${c};
2479
+ min-width: ${b};
2480
+ min-height: ${b};
2481
+ width: ${b};
2482
+ height: ${b};
2483
2483
  display: inline-flex;
2484
2484
  align-items: center;
2485
2485
  justify-content: center;
@@ -2492,11 +2492,11 @@ a.icon-only {
2492
2492
  }
2493
2493
 
2494
2494
  &.btn-sm.icon-only {
2495
- padding: ${c};
2496
- min-width: ${w};
2497
- min-height: ${w};
2498
- width: ${w};
2499
- height: ${w};
2495
+ padding: ${d};
2496
+ min-width: ${k};
2497
+ min-height: ${k};
2498
+ width: ${k};
2499
+ height: ${k};
2500
2500
 
2501
2501
  pds-icon,
2502
2502
  pds-icon[size] {
@@ -2507,10 +2507,10 @@ a.icon-only {
2507
2507
 
2508
2508
  &.btn-xs.icon-only {
2509
2509
  padding: ${l};
2510
- min-width: ${x};
2511
- min-height: ${x};
2512
- width: ${x};
2513
- height: ${x};
2510
+ min-width: ${w};
2511
+ min-height: ${w};
2512
+ width: ${w};
2513
+ height: ${w};
2514
2514
 
2515
2515
  pds-icon,
2516
2516
  pds-icon[size] {
@@ -2521,10 +2521,10 @@ a.icon-only {
2521
2521
 
2522
2522
  &.btn-lg.icon-only {
2523
2523
  padding: ${u};
2524
- min-width: ${S};
2525
- min-height: ${S};
2526
- width: ${S};
2527
- height: ${S};
2524
+ min-width: ${$};
2525
+ min-height: ${$};
2526
+ width: ${$};
2527
+ height: ${$};
2528
2528
 
2529
2529
  pds-icon,
2530
2530
  pds-icon[size] {
@@ -2699,7 +2699,7 @@ nav[data-dropdown] {
2699
2699
  opacity: 0;
2700
2700
  }
2701
2701
  }
2702
- `}#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.#z(e),s=[`
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.#C(t),s=[`
2703
2703
  /* ============================================================================
2704
2704
  Layout Utilities
2705
2705
  Modern grid and flex system for building responsive layouts
@@ -2709,9 +2709,9 @@ nav[data-dropdown] {
2709
2709
  .container {
2710
2710
  display: block;
2711
2711
  width: 100%;
2712
- max-width: ${e.containerMaxWidth||"1400px"};
2712
+ max-width: ${t.containerMaxWidth||"1400px"};
2713
2713
  margin: 0 auto;
2714
- padding: ${e.containerPadding||"var(--spacing-6)"};
2714
+ padding: ${t.containerPadding||"var(--spacing-6)"};
2715
2715
  }
2716
2716
 
2717
2717
  /* Grid System */
@@ -2723,7 +2723,7 @@ nav[data-dropdown] {
2723
2723
  `];for(let p of o)s.push(`.grid-cols-${p} { grid-template-columns: repeat(${p}, 1fr); }
2724
2724
  `);s.push(`
2725
2725
  /* Auto-fit grids (responsive) */
2726
- `);for(let[p,d]of Object.entries(a))s.push(`.grid-auto-${p} { grid-template-columns: repeat(auto-fit, minmax(${d}, 1fr)); }
2726
+ `);for(let[p,c]of Object.entries(a))s.push(`.grid-auto-${p} { grid-template-columns: repeat(auto-fit, minmax(${c}, 1fr)); }
2727
2727
  `);return s.push(`
2728
2728
  /* Gap utilities */
2729
2729
  .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 +2843,7 @@ nav[data-dropdown] {
2843
2843
  height: auto;
2844
2844
  }
2845
2845
 
2846
- `}#ke(){let{layout:e={},a11y:r={}}=this.options.design,n=e.breakpoints||{sm:640,md:768,lg:1024,xl:1280},o=r.minTouchTarget||v.TouchTargetSizes.standard;return`/* Mobile-First Responsive Design */
2846
+ `}#ke(){let{layout:t={},a11y:r={}}=this.options.design,n=t.breakpoints||{sm:640,md:768,lg:1024,xl:1280},o=r.minTouchTarget||x.TouchTargetSizes.standard;return`/* Mobile-First Responsive Design */
2847
2847
 
2848
2848
  /* Small devices (${n.sm}px and up) */
2849
2849
  @media (min-width: ${n.sm}px) {
@@ -2947,23 +2947,23 @@ nav[data-dropdown] {
2947
2947
  }
2948
2948
  }
2949
2949
 
2950
- `}#a(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,p,d=(a+i)/2;if(a===i)s=p=0;else{let c=a-i;switch(p=d>.5?c/(2-a-i):c/(a+i),a){case r:s=(n-o)/c+(n<o?6:0);break;case n:s=(o-r)/c+2;break;case o:s=(r-n)/c+4;break}s/=6}return{h:s*360,s:p*100,l:d*100}}#t(e,r,n){e=e/360,r=r/100,n=n/100;let o=(d,c,l)=>(l<0&&(l+=1),l>1&&(l-=1),l<1/6?d+(c-d)*6*l:l<1/2?c:l<2/3?d+(c-d)*(2/3-l)*6:d),a,i,s;if(r===0)a=i=s=n;else{let d=n<.5?n*(1+r):n+r-n*r,c=2*n-d;a=o(c,d,e+1/3),i=o(c,d,e),s=o(c,d,e-1/3)}let p=d=>{let c=Math.round(d*255).toString(16);return c.length===1?"0"+c:c};return`#${p(a)}${p(i)}${p(s)}`}getTokens(){return this.tokens}exportCSS(){return this.layeredCSS}#Se(){this.#e={tokens:this.#$e(),primitives:this.#Ce(),components:this.#ze(),utilities:this.#Me()},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:p,transitions:d,zIndex:c,icons:l}=this.tokens,u=[`@layer tokens {
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.#Ce(),utilities:this.#Le()},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 {
2951
2951
  :root {
2952
- ${this.#q(e)}
2952
+ ${this.#q(t)}
2953
2953
  ${this.#V(r)}
2954
- ${this.#Y(n)}
2954
+ ${this.#K(n)}
2955
2955
  ${this.#J(o)}
2956
- ${this.#K(a)}
2956
+ ${this.#Y(a)}
2957
2957
  ${this.#g(i)}
2958
2958
  ${this.#X(p)}
2959
- ${this.#Z(d)}
2960
- ${this.#Q(c)}
2959
+ ${this.#Z(c)}
2960
+ ${this.#Q(d)}
2961
2961
  ${this.#ee(l)}
2962
2962
  }
2963
- ${this.#re(e,s)}
2963
+ ${this.#re(t,s)}
2964
2964
  }`];return u.push(`
2965
2965
  /* Non-layered dark variables fallback (ensures attribute wins) */
2966
- `),u.push(this.#te(e,s)),u.join("")}#Ce(){let{advanced:e={},a11y:r={},layout:n={}}=this.options.design,o=e.tabSize||v.TabSizes.standard,a=r.minTouchTarget||v.TouchTargetSizes.standard,i=n.breakpoints||{sm:640,md:768,lg:1024,xl:1280};return`@layer primitives {
2966
+ `),u.push(this.#te(t,s)),u.join("")}#ze(){let{advanced:t={},a11y:r={},layout:n={}}=this.options.design,o=t.tabSize||x.TabSizes.standard,a=r.minTouchTarget||x.TouchTargetSizes.standard,i=n.breakpoints||{sm:640,md:768,lg:1024,xl:1280};return`@layer primitives {
2967
2967
  /* Base HTML reset */
2968
2968
  *, *::before, *::after {
2969
2969
  box-sizing: border-box;
@@ -3310,7 +3310,7 @@ nav[data-dropdown] {
3310
3310
  }
3311
3311
  }
3312
3312
 
3313
- `}#ze(){return`@layer components {
3313
+ `}#Ce(){return`@layer components {
3314
3314
 
3315
3315
  ${this.#ce()}
3316
3316
 
@@ -3375,7 +3375,7 @@ ${this.#be()}
3375
3375
  ${this.#ae()}
3376
3376
 
3377
3377
  }
3378
- `}#Me(){return`@layer utilities {
3378
+ `}#Le(){return`@layer utilities {
3379
3379
 
3380
3380
  ${this.#ye()}
3381
3381
 
@@ -3583,17 +3583,17 @@ ${this.#we()}
3583
3583
  ${this.#ke()}
3584
3584
 
3585
3585
  }
3586
- `}#Ee(){this.#o={tokens:new CSSStyleSheet,primitives:new CSSStyleSheet,components:new CSSStyleSheet,utilities:new CSSStyleSheet},this.#Te()}#Te(){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}
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}
3587
3587
  ${this.#e.primitives}
3588
3588
  ${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 H<"u"?H:null,enums:typeof v<"u"?v: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.#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(e,r){let n=r.replace(/\\/g,"\\\\").replace(/`/g,"\\`").replace(/\$/g,"\\$");return`// Pure Design System - ${e}
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 x<"u"?x: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}
3590
3590
  // Auto-generated - do not edit directly
3591
3591
 
3592
- export const ${e} = new CSSStyleSheet();
3593
- ${e}.replaceSync(\`${n}\`);
3592
+ export const ${t} = new CSSStyleSheet();
3593
+ ${t}.replaceSync(\`${n}\`);
3594
3594
 
3595
- export const ${e}CSS = \`${n}\`;
3596
- `}};function lr(t={},e={}){let r=Number(e.minContrast||4.5),n=Number(e.minMutedContrast||3),o=!!e.extendedChecks,a=d=>{let c=String(d||"").replace("#",""),l=c.length===3?c.split("").map(g=>g+g).join(""):c,u=parseInt(l||"0",16);return{r:u>>16&255,g:u>>8&255,b:u&255}},i=d=>{let{r:c,g:l,b:u}=a(d),g=[c/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=(d,c)=>{if(!d||!c)return 0;let l=i(d),u=i(c),g=Math.max(l,u),m=Math.min(l,u);return(g+.05)/(m+.05)},p=[];try{let c=new K({design:structuredClone(t)}).tokens.colors,l={surfaceBg:c.surface?.base,surfaceText:c.gray?.[900]||"#000000",surfaceTextSecondary:c.gray?.[700]||c.gray?.[800]||c.gray?.[900],surfaceTextMuted:c.gray?.[500]||c.gray?.[600]||c.gray?.[700],surfaceElevated:c.surface?.elevated||c.surface?.base,primaryFill:c.interactive?.light?.fill||c.primary?.[600],primaryText:c.interactive?.light?.text||c.primary?.[600],accentFill:c.accent?.[600]||c.accent?.[500],successFill:c.success?.[600]||c.success?.[500],warningFill:c.warning?.[600]||c.warning?.[500],dangerFill:c.danger?.[600]||c.danger?.[500],infoFill:c.info?.[600]||c.info?.[500]},u=h=>Math.max(s(h,"#ffffff"),s(h,"#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 h=s(l.surfaceBg,l.surfaceTextSecondary);h<r&&p.push({path:"/colors/secondary",message:`Secondary text contrast on base surface (light) is too low (${h.toFixed(2)} < ${r}).`,ratio:h,min:r,context:"light/surface-text-secondary"});let w=s(l.surfaceBg,l.surfaceTextMuted);w<n&&p.push({path:"/colors/secondary",message:`Muted text contrast on base surface (light) is too low (${w.toFixed(2)} < ${n}).`,ratio:w,min:n,context:"light/surface-text-muted"});let x=s(l.surfaceElevated,l.surfaceText);x<r&&p.push({path:"/colors/background",message:`Elevated surface text contrast (light) is too low (${x.toFixed(2)} < ${r}).`,ratio:x,min:r,context:"light/surface-elevated-text"})}let y=s(l.primaryText,l.surfaceBg);y<r&&p.push({path:"/colors/primary",message:`Primary text on surface is too low for outline/link styles (light) (${y.toFixed(2)} < ${r}). Choose a darker primary or lighter surface.`,ratio:y,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(w=>{if(!w?.value)return;let x=u(w.value);x<r&&p.push({path:w.path,message:`${w.key} fill color cannot achieve accessible text contrast (${x.toFixed(2)} < ${r}) with either white or black text.`,ratio:x,min:r,context:`light/${w.key}-fill`})});let f=c.dark;if(f){let h={surfaceBg:f.surface?.base||c.surface?.inverse,surfaceText:f.gray?.[50]||f.gray?.[100]||"#ffffff",surfaceTextMuted:f.gray?.[300]||f.gray?.[400]||f.gray?.[500],primaryFill:c.interactive?.dark?.fill||f.primary?.[600],primaryText:c.interactive?.dark?.text||f.primary?.[600]},w=s(h.primaryFill,"#ffffff");w<r&&p.push({path:"/colors/darkMode/primary",message:`Primary button contrast too low in dark theme (${w.toFixed(2)} < ${r}). Override darkMode.primary or pick a brighter hue.`,ratio:w,min:r,context:"dark/btn-primary"});let x=s(h.primaryText,h.surfaceBg);if(x<r&&p.push({path:"/colors/darkMode/primary",message:`Primary text on surface is too low for outline/link styles (dark) (${x.toFixed(2)} < ${r}). Override darkMode.primary/background.`,ratio:x,min:r,context:"dark/outline"}),o){let S=s(h.surfaceBg,h.surfaceText);S<r&&p.push({path:"/colors/darkMode/background",message:`Base text contrast on surface (dark) is too low (${S.toFixed(2)} < ${r}).`,ratio:S,min:r,context:"dark/surface-text"});let A=s(h.surfaceBg,h.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(d){p.push({path:"/",message:`Validation failed: ${String(d?.message||d)}`,ratio:0,min:0})}return{ok:p.length===0,issues:p}}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){console.error(`[PDS Registry] Failed to load static ${e}:`,r),console.error(`[PDS Registry] Looking for: ${this._staticPaths[e]}`),console.error("[PDS 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"}},ge=new kt;function hn(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){console.warn("installRuntimeStyles failed:",e)}}function cr(t){let e=t;if(!e||typeof e!="object"){console.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}hn(r)}async function Oe(t,e=[],r=null){try{let n=r?.primitivesStylesheet?r.primitivesStylesheet:await ge.getStylesheet("primitives");t.adoptedStyleSheets=[n,...e]}catch(n){let o=t.host?.tagName?.toLowerCase()||"unknown";console.error(`[PDS Adopter] <${o}> failed to adopt primitives:`,n),t.adoptedStyleSheets=e}}async function De(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 ge.getStylesheet(s)}))).filter(s=>s!==null);t.adoptedStyleSheets=[...i,...o]}catch(a){let i=t.host?.tagName?.toLowerCase()||"unknown";console.error(`[PDS Adopter] <${i}> failed to adopt layers:`,a),t.adoptedStyleSheets=o}}function dr(t){let e=new CSSStyleSheet;return e.replaceSync(t),e}var bn=[{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 yn(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 vn(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");r&&!r.hasAttribute("type")&&r.setAttribute("type","button"),e.id||(e.id=`dropdown-${Math.random().toString(36).slice(2,9)}`);let n=e.tagName?.toLowerCase()==="menu",o=8;n&&!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"));let a=()=>{let $=e.getAttribute("style");e.style.visibility="hidden",e.style.display="inline-block",e.style.pointerEvents="none";let z=e.getBoundingClientRect(),P=Math.max(e.offsetWidth||0,e.scrollWidth||0,z.width||0,1),C=Math.max(e.offsetHeight||0,e.scrollHeight||0,z.height||0,1);return $===null?e.removeAttribute("style"):e.setAttribute("style",$),{width:P,height:C}},i=()=>{let $=(t.getAttribute("data-direction")||t.getAttribute("data-dropdown-direction")||t.getAttribute("data-mode")||"auto").toLowerCase();if($==="up"||$==="down")return $;let z=(r||t).getBoundingClientRect(),{height:P}=a(),C=Math.max(0,window.innerHeight-z.bottom),b=Math.max(0,z.top),k=C>=P,E=b>=P;return k&&!E?"down":E&&!k?"up":k&&E?"down":b>C?"up":"down"},s=()=>{let $=(t.getAttribute("data-align")||t.getAttribute("data-dropdown-align")||"auto").toLowerCase();if($==="left"||$==="right"||$==="start"||$==="end")return $==="start"?"left":$==="end"?"right":$;let z=(r||t).getBoundingClientRect(),{width:P}=a(),C=Math.max(0,window.innerWidth-z.left),b=Math.max(0,z.right),k=C>=P,E=b>=P;return k&&!E?"left":E&&!k?"right":k&&E?"left":b>C?"right":"left"},p=($,z=8)=>{let P=getComputedStyle(t).getPropertyValue($).trim();if(!P)return z;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 b=Number.parseFloat(getComputedStyle(C).height);return C.remove(),Number.isFinite(b)?b:z},d=()=>{e.style.removeProperty("position"),e.style.removeProperty("left"),e.style.removeProperty("top"),e.style.removeProperty("right"),e.style.removeProperty("bottom"),e.style.removeProperty("margin-top"),e.style.removeProperty("margin-bottom"),e.style.removeProperty("max-width"),e.style.removeProperty("max-inline-size"),e.style.removeProperty("max-height"),e.style.removeProperty("overflow")},c=$=>{if(!$)return null;if($.parentElement)return $.parentElement;let z=$.getRootNode?.();return z instanceof ShadowRoot?z.host:null},l=()=>{let $=c(e);for(;$&&$!==document.documentElement;){let z=getComputedStyle($),P=z.contain||"",C=z.willChange||"";if(z.transform!=="none"||z.perspective!=="none"||z.filter!=="none"||z.backdropFilter!=="none"||P.includes("paint")||P.includes("layout")||P.includes("strict")||P.includes("content")||C.includes("transform")||C.includes("perspective")||C.includes("filter"))return!0;$=c($)}return!1},u=()=>{e.getAttribute("aria-hidden")==="false"&&(d(),requestAnimationFrame(()=>{requestAnimationFrame(()=>{g()})}))},g=()=>{if(e.getAttribute("aria-hidden")!=="false")return;if(l()){d();return}let $=(r||t).getBoundingClientRect(),z=window.visualViewport,P=z?.width||document.documentElement?.clientWidth||window.innerWidth,C=z?.height||document.documentElement?.clientHeight||window.innerHeight,b=z?.offsetLeft||0,k=z?.offsetTop||0,E=Math.max(1,P-o*2),T=Math.max(1,C-o*2);e.style.maxWidth=`${Math.round(E)}px`,e.style.maxInlineSize=`${Math.round(E)}px`,e.style.maxHeight=`${Math.round(T)}px`,e.style.overflow="auto";let{width:B,height:W}=a(),V=p("--spacing-2",8),N=i(),_=s();t.dataset.dropdownDirection=N,t.dataset.dropdownAlign=_;let Y=_==="right"?$.right-B:$.left;B>=E-1?Y=b+o:Y=Math.max(b+o,Math.min(Y,b+P-B-o));let Se=N==="up"?$.top-V-W:$.bottom+V;Se=Math.max(k+o,Math.min(Se,k+C-W-o)),e.style.position="fixed",e.style.left=`${Math.round(Y)}px`,e.style.top=`${Math.round(Se)}px`,e.style.right="auto",e.style.bottom="auto",e.style.marginTop="0",e.style.marginBottom="0"},m=null,y=()=>{m||(m=()=>g(),window.addEventListener("resize",m),window.addEventListener("scroll",m,!0))},f=()=>{m&&(window.removeEventListener("resize",m),window.removeEventListener("scroll",m,!0),m=null)},h=null,w=null,x=()=>{h||typeof document>"u"||(h=()=>{e.getAttribute("aria-hidden")==="false"&&(t.dataset.dropdownDirection=i(),t.dataset.dropdownAlign=s(),w!==null&&cancelAnimationFrame(w),w=requestAnimationFrame(()=>{w=null,e.getAttribute("aria-hidden")==="false"&&g()}))},document.addEventListener("pds:config-changed",h))},S=()=>{!h||typeof document>"u"||(document.removeEventListener("pds:config-changed",h),h=null,w!==null&&(cancelAnimationFrame(w),w=null))},A=null,L=()=>{t.dataset.dropdownDirection=i(),t.dataset.dropdownAlign=s(),e.setAttribute("aria-hidden","false"),r?.setAttribute("aria-expanded","true"),y(),x(),u(),A||(A=$=>{($.composedPath?$.composedPath():[$.target]).some(C=>C===t)||F()},setTimeout(()=>{document.addEventListener("click",A)},0))},F=()=>{e.setAttribute("aria-hidden","true"),r?.setAttribute("aria-expanded","false"),f(),S(),d(),A&&(document.removeEventListener("click",A),A=null)},I=()=>{e.getAttribute("aria-hidden")==="false"?F():L()};r?.addEventListener("click",$=>{$.preventDefault(),$.stopPropagation(),I()}),t.addEventListener("keydown",$=>{$.key==="Escape"&&(F(),r?.focus())}),t.addEventListener("focusout",$=>{$.relatedTarget&&(($.composedPath?$.composedPath():[$.relatedTarget]).some(C=>C===t)||F())})}function xn(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 wn(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="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 kn(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(d){s.set.call(this,d),i()}}),new MutationObserver(d=>{d.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=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 d=document.createElement("output");d.id=a,d.setAttribute("for",o),d.style.color="var(--surface-text-secondary, var(--color-text-secondary))",d.style.fontSize="0.875rem",d.textContent=t.value,s.appendChild(d),i.textContent="",i.appendChild(s);let c=()=>{d.textContent=t.value};t.addEventListener("input",c),t.addEventListener("change",c),e(c),c()}}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 p=()=>{let l=parseFloat(t.min)||0,u=parseFloat(t.max)||100,g=parseFloat(t.value),m=(g-l)/(u-l);s.style.left=`calc(${m*100}% )`,s.textContent=String(g)},d=()=>s.classList.add("visible"),c=()=>s.classList.remove("visible");t.addEventListener("input",p),t.addEventListener("pointerdown",d),t.addEventListener("pointerup",c),t.addEventListener("pointerleave",c),t.addEventListener("focus",d),t.addEventListener("blur",c),t.addEventListener("change",p),e(p),p()}t.dataset.enhancedRange="1"}function Sn(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="* Required fields",i.insertBefore(s,i.querySelector(".form-actions")||i.lastElementChild)}};t.querySelectorAll("[required]").forEach(r=>{e(r)})}function $n(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="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)}`,p=document.createElement("label"),d=document.createElement("span");d.setAttribute("data-label",""),d.textContent=o;let c=document.createElement("input");c.type=i,c.name=a?.name||t.getAttribute("data-name")||"open-group",c.value=o,c.id=s,p.appendChild(d),p.appendChild(c),t.insertBefore(p,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 Cn(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 zn(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 p=document.createElement("pds-icon");p.setAttribute("icon","circle-notch"),p.setAttribute("size","sm"),t.insertBefore(p,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 Mn=new Map([[".accordion",yn],["nav[data-dropdown]",vn],["label[data-toggle]",xn],["label[data-color]",wn],['input[type="range"]',kn],["form[data-required]",Sn],["fieldset[role=group][data-open]",$n],["[data-clip]",Cn],["button, a[class*='btn-']",zn]]),We=bn.map(t=>({...t,run:Mn.get(t.selector)||(()=>{})}));var pr=[{selector:".accordion",description:"Ensures only one <details> element can be open at a time within the accordion.",demoHtml:`
3595
+ export const ${t}CSS = \`${n}\`;
3596
+ `}};function Er(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 Z({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=b=>Math.max(s(b,"#ffffff"),s(b,"#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 b=s(l.surfaceBg,l.surfaceTextSecondary);b<r&&p.push({path:"/colors/secondary",message:`Secondary text contrast on base surface (light) is too low (${b.toFixed(2)} < ${r}).`,ratio:b,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 w=s(l.surfaceElevated,l.surfaceText);w<r&&p.push({path:"/colors/background",message:`Elevated surface text contrast (light) is too low (${w.toFixed(2)} < ${r}).`,ratio:w,min:r,context:"light/surface-elevated-text"})}let v=s(l.primaryText,l.surfaceBg);v<r&&p.push({path:"/colors/primary",message:`Primary text on surface is too low for outline/link styles (light) (${v.toFixed(2)} < ${r}). Choose a darker primary or lighter surface.`,ratio:v,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 w=u(k.value);w<r&&p.push({path:k.path,message:`${k.key} fill color cannot achieve accessible text contrast (${w.toFixed(2)} < ${r}) with either white or black text.`,ratio:w,min:r,context:`light/${k.key}-fill`})});let h=d.dark;if(h){let b={surfaceBg:h.surface?.base||d.surface?.inverse,surfaceText:h.gray?.[50]||h.gray?.[100]||"#ffffff",surfaceTextMuted:h.gray?.[300]||h.gray?.[400]||h.gray?.[500],primaryFill:d.interactive?.dark?.fill||h.primary?.[600],primaryText:d.interactive?.dark?.text||h.primary?.[600]},k=s(b.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 w=s(b.primaryText,b.surfaceBg);if(w<r&&p.push({path:"/colors/darkMode/primary",message:`Primary text on surface is too low for outline/link styles (dark) (${w.toFixed(2)} < ${r}). Override darkMode.primary/background.`,ratio:w,min:r,context:"dark/outline"}),o){let $=s(b.surfaceBg,b.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 T=s(b.surfaceBg,b.surfaceTextMuted);T<n&&p.push({path:"/colors/darkMode/secondary",message:`Muted text contrast on surface (dark) is too low (${T.toFixed(2)} < ${n}).`,ratio:T,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 Dt=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){f.log("error",`Registry: failed to load static ${t}:`,r),f.log("error",`Registry: looking for ${this._staticPaths[t]}`),f.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"}},be=new Dt;function eo(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){f.log("warn","installRuntimeStyles failed:",t)}}function Tr(e){let t=e;if(!t||typeof t!="object"){f.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}eo(r)}async function Ke(e,t=[],r=null){try{let n=r?.primitivesStylesheet?r.primitivesStylesheet:await be.getStylesheet("primitives");e.adoptedStyleSheets=[n,...t]}catch(n){let o=e.host?.tagName?.toLowerCase()||"unknown";f.log("error",`Adopter: <${o}> failed to adopt primitives:`,n),e.adoptedStyleSheets=t}}async function Je(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 be.getStylesheet(s)}))).filter(s=>s!==null);e.adoptedStyleSheets=[...i,...o]}catch(a){let i=e.host?.tagName?.toLowerCase()||"unknown";f.log("error",`Adopter: <${i}> failed to adopt layers:`,a),e.adoptedStyleSheets=o}}function Ar(e){let t=new CSSStyleSheet;return t.replaceSync(e),t}var to=new Set(["log","warn","error","debug","info"]),ro="__PURE_DS_PDS_SINGLETON__",Wt=null,Ht=null;function _r(){try{let t=(typeof globalThis<"u"?globalThis:window)?.[ro];if(t&&typeof t=="object")return t}catch{return null}return null}function no(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 oo(e){if(typeof e!="string")return"log";let t=e.toLowerCase();return to.has(t)?t:"log"}function ao(){if(typeof Ht=="function")try{let t=no(Ht());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 io(){if(typeof Wt=="function")try{let t=Wt();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 so(e,t){let r=t?.debug===!0;return!(t?.mode==="static"&&!r||!r&&e!=="error"&&e!=="warn")}function Fr({getLogger:e,getContext:t}={}){Wt=typeof e=="function"?e:null,Ht=typeof t=="function"?t:null}function Ye(e="log",t,...r){let n=oo(e),o=ao(),a=io();if(a)try{a.call(o?.thisArg,n,t,...r);return}catch(i){Rr("error","Custom log handler failed:",i)}so(n,o)&&Rr(n,t,...r)}var lo="en",F={defaultLocale:lo,provider:null,messagesByLocale:new Map,loadingByLocale:new Map,observer:null,reconcileTimer:null,requestedKeys:new Set,textNodeKeyMap:new WeakMap,valueToKeys:new Map,missingWarnings:new Set},co=e=>!!e&&typeof e!="string"&&typeof e=="object"&&"strTag"in e;function ie(e){return String(e||"").trim().toLowerCase()}function po(e){let t=ie(e);return t?t.split("-")[0]||t:""}function de(e){let t=ie(e);return t||F.defaultLocale}function uo(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 Xe(e,t){return String(e).replace(/\{(\d+)\}/g,(r,n)=>t(Number(n)))}function Ut(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 go(e){let t=ie(e);if(!t)return[F.defaultLocale];let r=po(t);return!r||r===t?[t]:[t,r]}function Pr(e,t){let r=de(e);F.messagesByLocale.set(r,Ut(t))}function jr(e){typeof e=="string"&&e.length>0&&F.requestedKeys.add(e)}function Nr(e,t){if(typeof e!="string"||!e.length)return;let r=typeof t=="string"?t:String(t||"");r.length&&(F.valueToKeys.has(r)||F.valueToKeys.set(r,new Set),F.valueToKeys.get(r).add(e))}function Pe(e){let t=go(e);for(let r of t)if(F.messagesByLocale.has(r))return{locale:r,messages:F.messagesByLocale.get(r)};return null}async function Ze(e,t="explicit"){let r=de(e),n=Pe(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:t,loadedLocales:Array.from(F.messagesByLocale.keys()),messages:{...Pe(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=Ut(d);return Pr(r,l),l}).catch(()=>({})).finally(()=>{F.loadingByLocale.delete(o)});return F.loadingByLocale.set(o,c),c}let p=Ut(s);return Pr(r,p),p}function mo(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 ie(r.getAttribute("lang"));let n=r.closest?.("[lang]");return n&&n.getAttribute?ie(n.getAttribute("lang")):""}function qt(e={}){if(typeof e?.lang=="string"&&e.lang.trim())return de(e.lang);let t=e?.element||e?.scope||e?.host||e?.contextElement||null,r=mo(t);if(r)return de(r);if(typeof document<"u"&&document.documentElement){let n=ie(document.documentElement.getAttribute("lang"));if(n)return de(n)}return F.defaultLocale}function fo(){let e=new Set([F.defaultLocale]);if(typeof document>"u")return e;let t=ie(document.documentElement?.getAttribute?.("lang"));t&&e.add(de(t));let r=document.querySelectorAll?.("[lang]")||[];for(let n of r){let o=ie(n.getAttribute("lang"));o&&e.add(de(o))}return e}async function ho(e){for(let t of e)await Ze(t,"lang-detected")}function bo(e){for(let t of Array.from(F.messagesByLocale.keys()))e.has(t)||F.messagesByLocale.delete(t)}function yo(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 vo(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 Br(e,t){if(typeof e!="string"||!e.length)return[];let r=[e];for(let[,n]of F.messagesByLocale.entries()){let o=n?.[e];typeof o=="string"&&o.length&&r.push(o)}for(let n of r){let o=vo(n,t);if(o)return o}return[]}function xo(e){if(!e)return null;let t=F.valueToKeys.get(e);if(t&&t.size>0){for(let n of t)if(F.requestedKeys.has(n))return n}if(F.requestedKeys.has(e))return e;let r=Array.from(F.messagesByLocale.entries());for(let n of F.requestedKeys)for(let[,o]of r)if(o&&o[n]===e)return n;return null}function wo(e){if(!e)return null;let t=null;for(let[r,n]of F.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(!F.requestedKeys.has(a))continue;let i=Br(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 ko(e){if(!e||e.nodeType!==3)return;let t=e.parentElement||null;if(!t)return;let{leading:r,core:n,trailing:o}=yo(e.nodeValue);if(!n)return;let a=F.textNodeKeyMap.get(e)||null;if((!a||!F.requestedKeys.has(a))&&(a=xo(n)),!a){let l=wo(n);if(!l)return;let u=qt({element:t});await Ze(u,"text-node");let g=Qe(l.key,l.values,{element:t},null),m=l.values.length?Xe(g,b=>l.values[b]):g,v=n.slice(0,l.start)+m+n.slice(l.end),h=`${r}${v}${o}`;h!==e.nodeValue&&(e.nodeValue=h);return}F.textNodeKeyMap.set(e,a);let i=qt({element:t});await Ze(i,"text-node");let s=Br(a,n),p=Qe(a,s,{element:t},null),c=s.length?Xe(p,l=>s[l]):p,d=`${r}${c}${o}`;d!==e.nodeValue&&(e.nodeValue=d)}async function So(){if(typeof document>"u"||F.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 ko(a)}async function $o(){let e=fo();await ho(e),await So(),bo(e)}function zo(){typeof window>"u"||(F.reconcileTimer&&clearTimeout(F.reconcileTimer),F.reconcileTimer=setTimeout(()=>{F.reconcileTimer=null,$o()},16))}function Qe(e,t=[],r={},n=null){let o=qt(r),a=Pe(o);a||Ze(o,"msg");let i=Pe(o)?.messages||{},s=Pe(F.defaultLocale)?.messages||{},p={key:e,values:t,options:r,locale:o,defaultLocale:F.defaultLocale,messages:i,messagesByLocale:Object.fromEntries(Array.from(F.messagesByLocale.entries())),template:n},c,d=!!a,l=o===F.defaultLocale;typeof F.provider?.translate=="function"&&(c=F.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}`;F.missingWarnings.has(m)||(F.missingWarnings.add(m),Ye("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=Xe(g,v=>t[v]);m!==g&&Nr(e,m)}return g}var Co=(e,t,r={})=>{let n=uo(e);jr(n);let o=Qe(n,t,r,{strings:e,values:t});return Xe(o,a=>t[a])};var et=(e,t={})=>{if(!e)return"";if(co(e))return Co(e.strings,e.values,t);let r=String(e);jr(r);let n=Qe(r,[],t,null);return!t?.element&&!t?.scope&&!t?.host&&!t?.contextElement&&!t?.lang&&zo(),n};var Lo=[{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 Mo(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 Eo(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");r&&!r.hasAttribute("type")&&r.setAttribute("type","button"),t.id||(t.id=`dropdown-${Math.random().toString(36).slice(2,9)}`);let n=t.tagName?.toLowerCase()==="menu",o=8;n&&!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"));let a=()=>{let z=t.getAttribute("style");t.style.visibility="hidden",t.style.display="inline-block",t.style.pointerEvents="none";let L=t.getBoundingClientRect(),P=Math.max(t.offsetWidth||0,t.scrollWidth||0,L.width||0,1),C=Math.max(t.offsetHeight||0,t.scrollHeight||0,L.height||0,1);return z===null?t.removeAttribute("style"):t.setAttribute("style",z),{width:P,height:C}},i=()=>{let z=(e.getAttribute("data-direction")||e.getAttribute("data-dropdown-direction")||e.getAttribute("data-mode")||"auto").toLowerCase();if(z==="up"||z==="down")return z;let L=(r||e).getBoundingClientRect(),{height:P}=a(),C=Math.max(0,window.innerHeight-L.bottom),y=Math.max(0,L.top),S=C>=P,M=y>=P;return S&&!M?"down":M&&!S?"up":S&&M?"down":y>C?"up":"down"},s=()=>{let z=(e.getAttribute("data-align")||e.getAttribute("data-dropdown-align")||"auto").toLowerCase();if(z==="left"||z==="right"||z==="start"||z==="end")return z==="start"?"left":z==="end"?"right":z;let L=(r||e).getBoundingClientRect(),{width:P}=a(),C=Math.max(0,window.innerWidth-L.left),y=Math.max(0,L.right),S=C>=P,M=y>=P;return S&&!M?"left":M&&!S?"right":S&&M?"left":y>C?"right":"left"},p=(z,L=8)=>{let P=getComputedStyle(e).getPropertyValue(z).trim();if(!P)return L;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 y=Number.parseFloat(getComputedStyle(C).height);return C.remove(),Number.isFinite(y)?y:L},c=()=>{t.style.removeProperty("position"),t.style.removeProperty("left"),t.style.removeProperty("top"),t.style.removeProperty("right"),t.style.removeProperty("bottom"),t.style.removeProperty("margin-top"),t.style.removeProperty("margin-bottom"),t.style.removeProperty("max-width"),t.style.removeProperty("max-inline-size"),t.style.removeProperty("max-height"),t.style.removeProperty("overflow")},d=z=>{if(!z)return null;if(z.parentElement)return z.parentElement;let L=z.getRootNode?.();return L instanceof ShadowRoot?L.host:null},l=()=>{let z=d(t);for(;z&&z!==document.documentElement;){let L=getComputedStyle(z),P=L.contain||"",C=L.willChange||"";if(L.transform!=="none"||L.perspective!=="none"||L.filter!=="none"||L.backdropFilter!=="none"||P.includes("paint")||P.includes("layout")||P.includes("strict")||P.includes("content")||C.includes("transform")||C.includes("perspective")||C.includes("filter"))return!0;z=d(z)}return!1},u=()=>{t.getAttribute("aria-hidden")==="false"&&(c(),requestAnimationFrame(()=>{requestAnimationFrame(()=>{g()})}))},g=()=>{if(t.getAttribute("aria-hidden")!=="false")return;if(l()){c();return}let z=(r||e).getBoundingClientRect(),L=window.visualViewport,P=L?.width||document.documentElement?.clientWidth||window.innerWidth,C=L?.height||document.documentElement?.clientHeight||window.innerHeight,y=L?.offsetLeft||0,S=L?.offsetTop||0,M=Math.max(1,P-o*2),E=Math.max(1,C-o*2);t.style.maxWidth=`${Math.round(M)}px`,t.style.maxInlineSize=`${Math.round(M)}px`,t.style.maxHeight=`${Math.round(E)}px`,t.style.overflow="auto";let{width:B,height:O}=a(),K=p("--spacing-2",8),N=i(),D=s();e.dataset.dropdownDirection=N,e.dataset.dropdownAlign=D;let Y=D==="right"?z.right-B:z.left;B>=M-1?Y=y+o:Y=Math.max(y+o,Math.min(Y,y+P-B-o));let Me=N==="up"?z.top-K-O:z.bottom+K;Me=Math.max(S+o,Math.min(Me,S+C-O-o)),t.style.position="fixed",t.style.left=`${Math.round(Y)}px`,t.style.top=`${Math.round(Me)}px`,t.style.right="auto",t.style.bottom="auto",t.style.marginTop="0",t.style.marginBottom="0"},m=null,v=()=>{m||(m=()=>g(),window.addEventListener("resize",m),window.addEventListener("scroll",m,!0))},h=()=>{m&&(window.removeEventListener("resize",m),window.removeEventListener("scroll",m,!0),m=null)},b=null,k=null,w=()=>{b||typeof document>"u"||(b=()=>{t.getAttribute("aria-hidden")==="false"&&(e.dataset.dropdownDirection=i(),e.dataset.dropdownAlign=s(),k!==null&&cancelAnimationFrame(k),k=requestAnimationFrame(()=>{k=null,t.getAttribute("aria-hidden")==="false"&&g()}))},document.addEventListener("pds:config-changed",b))},$=()=>{!b||typeof document>"u"||(document.removeEventListener("pds:config-changed",b),b=null,k!==null&&(cancelAnimationFrame(k),k=null))},T=null,A=()=>{e.dataset.dropdownDirection=i(),e.dataset.dropdownAlign=s(),t.setAttribute("aria-hidden","false"),r?.setAttribute("aria-expanded","true"),v(),w(),u(),T||(T=z=>{(z.composedPath?z.composedPath():[z.target]).some(C=>C===e)||_()},setTimeout(()=>{document.addEventListener("click",T)},0))},_=()=>{t.setAttribute("aria-hidden","true"),r?.setAttribute("aria-expanded","false"),h(),$(),c(),T&&(document.removeEventListener("click",T),T=null)},I=()=>{t.getAttribute("aria-hidden")==="false"?_():A()};r?.addEventListener("click",z=>{z.preventDefault(),z.stopPropagation(),I()}),e.addEventListener("keydown",z=>{z.key==="Escape"&&(_(),r?.focus())}),e.addEventListener("focusout",z=>{z.relatedTarget&&((z.composedPath?z.composedPath():[z.relatedTarget]).some(C=>C===e)||_())})}function To(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 Ao(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=et("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 Ro(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 _o(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=et("* Required fields"),i.insertBefore(s,i.querySelector(".form-actions")||i.lastElementChild)}};e.querySelectorAll("[required]").forEach(r=>{t(r)})}function Fo(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=et("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 Po(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 No(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 Io=new Map([[".accordion",Mo],["nav[data-dropdown]",Eo],["label[data-toggle]",To],["label[data-color]",Ao],['input[type="range"]',Ro],["form[data-required]",_o],["fieldset[role=group][data-open]",Fo],["[data-clip]",Po],["button, a[class*='btn-']",No]]),tt=Lo.map(e=>({...e,run:Io.get(e.selector)||(()=>{})}));var Or=[{selector:".accordion",description:"Ensures only one <details> element can be open at a time within the accordion.",demoHtml:`
3597
3597
  <div class="accordion">
3598
3598
  <details>
3599
3599
  <summary>Section 1</summary>
@@ -3661,8 +3661,8 @@ export const ${e}CSS = \`${n}\`;
3661
3661
  <button class="btn-primary btn-working">
3662
3662
  <span>Saving</span>
3663
3663
  </button>
3664
- `.trim()}];var gr="pds",En=/^([a-z][a-z0-9+\-.]*:)?\/\//i,ur=/^[a-z]:/i;function Ae(t=""){return t.endsWith("/")?t:`${t}/`}function Tn(t="",e=gr){let r=t.replace(/\/+$/,"");return new RegExp(`(?:^|/)${e}$`,"i").test(r)?r:`${r}/${e}`}function An(t){return t.replace(/^\.\/+/,"")}function Ln(t){return ur.test(t)?t.replace(ur,"").replace(/^\/+/,""):t}function Rn(t){return t.startsWith("public/")?t.substring(7):t}function me(t,e={}){let r=e.segment||gr,n=e.defaultRoot||`/assets/${r}/`,o=t?.public&&t.public?.root||t?.static&&t.static?.root||null;if(!o||typeof o!="string")return Ae(n);let a=o.trim();return a?(a=a.replace(/\\/g,"/"),a=Tn(a,r),a=Ae(a),En.test(a)?a:(a=An(a),a=Ln(a),a.startsWith("/")||(a=Rn(a),a.startsWith("/")||(a=`/${a}`),a=a.replace(/\/+/g,(i,s)=>s===0?i:"/")),Ae(a))):Ae(n)}function mr(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 p=o.measureText(a).width;o.font=`${i} "${e}", ${s}`;let d=o.measureText(a).width;return p!==d}function Fn(t){return t?t.split(",").map(n=>n.trim())[0].replace(/['"]/g,"").trim():null}async function fr(t,e={}){if(!t)return Promise.resolve();let{weights:r=[400,500,600,700],italic:n=!1}=e,o=Fn(t);if(!o||mr(o))return Promise.resolve();let a=encodeURIComponent(o);return document.querySelector(`link[href*="fonts.googleapis.com"][href*="${a}"]`)?(console.log(`Font "${o}" is already loading or loaded`),Promise.resolve()):(console.log(`Loading font "${o}" from Google Fonts...`),new Promise((s,p)=>{let d=document.createElement("link");d.rel="stylesheet";let c=n?`ital,wght@0,${r.join(";0,")};1,${r.join(";1,")}`:`wght@${r.join(";")}`;d.href=`https://fonts.googleapis.com/css2?family=${a}:${c}&display=swap`,d.setAttribute("data-font-loader",o),d.onload=()=>{console.log(`Successfully loaded font "${o}"`),s()},d.onerror=()=>{console.warn(`Failed to load font "${o}" from Google Fonts`),p(new Error(`Failed to load font: ${o}`))},document.head.appendChild(d),setTimeout(()=>{mr(o)||console.warn(`Font "${o}" did not load within timeout`),s()},5e3)}))}async function St(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=>fr(n).catch(o=>{console.warn(`Could not load font: ${n}`,o)}));await Promise.all(r)}async function Pn(...t){let e={};t.length&&typeof t[t.length-1]=="object"&&(e=t.pop()||{});let r=t,{baseURL:n,mapper:o=d=>`${d}.js`,onError:a=(d,c)=>console.error(`[defineWebComponents] ${d}:`,c)}=e,i=n?new URL(n,typeof location<"u"?location.href:import.meta.url):new URL("./",import.meta.url),s=d=>d.toLowerCase().replace(/(^|-)([a-z])/g,(c,l,u)=>u.toUpperCase()),p=async d=>{try{if(customElements.get(d))return{tag:d,status:"already-defined"};let c=o(d),u=await import(c instanceof URL?c.href:new URL(c,i).href),g=u?.default??u?.[s(d)];if(!g){if(customElements.get(d))return{tag:d,status:"self-defined"};throw new Error(`No export found for ${d}. Expected default export or named export "${s(d)}".`)}return customElements.get(d)?{tag:d,status:"race-already-defined"}:(customElements.define(d,g),{tag:d,status:"defined"})}catch(c){throw a(d,c),c}};return Promise.all(r.map(p))}var He=class{constructor(e={}){let{baseURL:r,mapper:n,onError:o,predicate:a=()=>!0,attributeModule:i="data-module",root:s=document,scanExisting:p=!0,debounceMs:d=16,observeShadows:c=!0,enhancers:l=[],patchAttachShadow:u=!0}=e,g=new Set,m=new Set,y=new Set,f=new Map,h=new WeakMap,w=new WeakMap,x=0,S=!1,A=null,L=k=>{if(!k||!l.length)return;let E=w.get(k);E||(E=new Set,w.set(k,E));for(let T of l)if(!(!T.selector||!T.run)&&!E.has(T.selector))try{k.matches&&k.matches(T.selector)&&(T.run(k),E.add(T.selector))}catch(B){console.warn(`[AutoDefiner] Error applying enhancer for selector "${T.selector}":`,B)}},F=(k,E)=>{if(!S&&!(!k||!k.includes("-"))&&!customElements.get(k)&&!m.has(k)&&!y.has(k)){if(E&&E.getAttribute){let T=E.getAttribute(i);T&&!f.has(k)&&f.set(k,T)}g.add(k),I()}},I=()=>{x||(x=setTimeout(P,d))},$=k=>{if(k){if(k.nodeType===1){let E=k,T=E.tagName?.toLowerCase();T&&T.includes("-")&&!customElements.get(T)&&a(T,E)&&F(T,E),L(E),c&&E.shadowRoot&&z(E.shadowRoot)}k.querySelectorAll&&k.querySelectorAll("*").forEach(E=>{let T=E.tagName?.toLowerCase();T&&T.includes("-")&&!customElements.get(T)&&a(T,E)&&F(T,E),L(E),c&&E.shadowRoot&&z(E.shadowRoot)})}},z=k=>{if(!k||h.has(k))return;$(k);let E=new MutationObserver(T=>{for(let B of T)B.addedNodes?.forEach(W=>{$(W)}),B.type==="attributes"&&B.target&&$(B.target)});E.observe(k,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[i,...l.map(T=>T.selector).filter(T=>T.startsWith("data-"))]}),h.set(k,E)};async function P(){if(clearTimeout(x),x=0,!g.size)return;let k=Array.from(g);g.clear(),k.forEach(E=>m.add(E));try{let E=T=>f.get(T)??(n?n(T):`${T}.js`);await Pn(...k,{baseURL:r,mapper:E,onError:(T,B)=>{y.add(T),o?.(T,B)}})}catch{}finally{k.forEach(E=>m.delete(E))}}let C=s===document?document.documentElement:s,b=new MutationObserver(k=>{for(let E of k)E.addedNodes?.forEach(T=>{$(T)}),E.type==="attributes"&&E.target&&$(E.target)});if(b.observe(C,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[i,...l.map(k=>k.selector).filter(k=>k.startsWith("data-"))]}),c&&u&&Element.prototype.attachShadow){let k=Element.prototype.attachShadow;Element.prototype.attachShadow=function(T){let B=k.call(this,T);if(T&&T.mode==="open"){z(B);let W=this.tagName?.toLowerCase();W&&W.includes("-")&&!customElements.get(W)&&F(W,this)}return B},A=()=>Element.prototype.attachShadow=k}return p&&$(C),{stop(){S=!0,b.disconnect(),A&&A(),x&&(clearTimeout(x),x=0),h.forEach(k=>k.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=c=>`${c}.js`,onError:i=(c,l)=>console.error(`[defineWebComponents] ${c}:`,l)}=r,s=o?new URL(o,typeof location<"u"?location.href:import.meta.url):new URL("./",import.meta.url),p=c=>c.toLowerCase().replace(/(^|-)([a-z])/g,(l,u,g)=>g.toUpperCase()),d=async c=>{try{if(customElements.get(c))return{tag:c,status:"already-defined"};let l=a(c),g=await import(l instanceof URL?l.href:new URL(l,s).href),m=g?.default??g?.[p(c)];if(!m){if(customElements.get(c))return{tag:c,status:"self-defined"};throw new Error(`No export found for ${c}. Expected default export or named export "${p(c)}".`)}return customElements.get(c)?{tag:c,status:"race-already-defined"}:(customElements.define(c,m),{tag:c,status:"defined"})}catch(l){throw i(c,l),l}};return Promise.all(n.map(d))}};var Nn=/^[a-z][a-z0-9+\-.]*:\/\//i,Le=(()=>{try{return import.meta.url}catch{return}})(),fe=t=>typeof t=="string"&&t.length&&!t.endsWith("/")?`${t}/`:t;function he(t,e={}){if(!t||Nn.test(t))return t;let{preferModule:r=!0}=e,n=()=>{if(!Le)return null;try{return new URL(t,Le).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 hr=(()=>{if(Le)try{let t=new URL(Le);if(/\/public\/assets\/js\//.test(t.pathname))return new URL("../pds/",Le).href}catch{return}})(),br=!1;function Ue(t){br||typeof document>"u"||(br=!0,t.addEventListener("pds:ready",e=>{let r=e.detail?.mode;r&&document.documentElement.classList.add(`pds-${r}`,"pds-ready")}))}function Ct(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]=Ct(r[n]&&typeof r[n]=="object"?r[n]:{},o):r[n]=o;return r}function $t(t=""){return String(t).toLowerCase().replace(/&/g," and ").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}function ie(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=>ie(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=ie(n);o!==void 0&&(e[r]=o)}}return 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),p=t&&t.enhancers;p&&!Array.isArray(p)&&(p=Object.values(p));let d=p??e.enhancers??[],c=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 m,y=null;if(g){l&&typeof l=="object"&&typeof o=="function"&&o(l,{log:i,context:"PDS.start"});let f=String(c||"default").toLowerCase(),h=r?.[f]||Object.values(r||{}).find(B=>$t(B.name)===f||String(B.name||"").toLowerCase()===f);if(!h)throw new Error(`PDS preset not found: "${c||"default"}"`);y={id:h.id||$t(h.name),name:h.name||h.id||String(f)};let w=structuredClone(h);if(l&&typeof l=="object"||u){let B=l?ie(l):{},W=u?ie(u):null,V=W?Ct(B,{icons:W}):B;w=Ct(w,structuredClone(V))}let{mode:x,autoDefine:S,applyGlobalStyles:A,manageTheme:L,themeStorageKey:F,preloadStyles:I,criticalLayers:$,managerURL:z,manager:P,preset:C,design:b,enhancers:k,log:E,...T}=t;m={...T,design:w,preset:y.name,log:E||n}}else if(s){typeof o=="function"&&o(t,{log:i,context:"PDS.start"});let{log:f,...h}=t;m={design:structuredClone(h),log:f||n}}else{let f=r?.default||Object.values(r||{}).find(h=>$t(h.name)==="default");if(!f)throw new Error("PDS default preset not available");y={id:f.id||"default",name:f.name||"Default"},m={design:structuredClone(f),preset:y.name,log:n}}return{generatorConfig:m,enhancers:d,presetInfo:y}}function qe({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 be(t,{resolvePublicAssetURL:e}){let r=!!(t?.public?.root||t?.static?.root),n=e(t);return!r&&hr&&(n=hr),fe(he(n))}async function Ge(t,{baseEnhancers:e=[]}={}){let{autoDefineBaseURL:r="/auto-define/",autoDefinePreload:n=[],autoDefineMapper:o=null,enhancers:a=[],autoDefineOverrides:i=null,autoDefinePreferModule:s=!0}=t,p=(()=>{let c=new Map;return(e||[]).forEach(l=>c.set(l.selector,l)),(a||[]).forEach(l=>c.set(l.selector,l)),Array.from(c.values())})(),d=null;if(typeof window<"u"&&typeof document<"u"){let c=He,l=x=>{switch(x){case"pds-tabpanel":return"pds-tabstrip.js";default:return`${x}.js`}},{mapper:u,enhancers:g,...m}=i&&typeof i=="object"?i:{},y=g?Array.isArray(g)?g:typeof g=="object"?Object.values(g):[]:[],f=(()=>{let x=new Map;return(p||[]).forEach(S=>{S?.selector&&x.set(S.selector,S)}),(y||[]).forEach(S=>{if(!S?.selector)return;let A=x.get(S.selector)||null;x.set(S.selector,{...A||{},...S,run:typeof S?.run=="function"?S.run:A?.run})}),Array.from(x.values())})(),w={baseURL:r&&fe(he(r,{preferModule:s})),predefine:n,scanExisting:!0,observeShadows:!0,patchAttachShadow:!0,debounceMs:16,enhancers:f,onError:(x,S)=>{if(typeof x=="string"&&x.startsWith("pds-")){let L=["pds-form","pds-drawer"].includes(x),F=S?.message?.includes("#pds/lit")||S?.message?.includes("Failed to resolve module specifier");L&&F?console.error(`\u274C PDS component <${x}> requires Lit but #pds/lit is not in import map.
3665
- See: https://github.com/Pure-Web-Foundation/pure-ds/blob/main/readme.md#lit-components-not-working`):console.warn(`\u26A0\uFE0F PDS component <${x}> not found. Assets may not be installed.`)}else console.error(`\u274C Auto-define error for <${x}>:`,S)},...m,mapper:x=>{if(customElements.get(x))return null;if(typeof o=="function")try{let S=o(x);return S===void 0?l(x):S}catch(S){return console.warn("Custom autoDefine.mapper error; falling back to default:",S?.message||S),l(x)}return l(x)}};d=new c(w),n.length>0&&typeof c.define=="function"&&await c.define(...n,{baseURL:r,mapper:w.mapper,onError:w.onError})}return{autoDefiner:d,mergedEnhancers:p}}var Mt=["light","dark"],Et=new Set(Mt);function Tt(t){let r=(Array.isArray(t?.themes)?t.themes.map(n=>String(n).toLowerCase()):Mt).filter(n=>Et.has(n));return r.length?r:Mt}function ye(t,{preferDocument:e=!0}={}){let r=String(t||"").toLowerCase();if(Et.has(r))return r;if(e&&typeof document<"u"){let n=document.documentElement?.getAttribute("data-theme");if(Et.has(n))return n}return typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function se(t,e){let r=ye(e);return Tt(t).includes(r)}var vr=!1,Ke="pds-live-edit-toggle",Ft="pds-live-edit-toggle-style";function xr(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))xr(t[r],e);return t}function wr(t){return t==null||typeof t!="object"?t:xr(structuredClone(ie(t)))}function kr(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 jn(t={}){let e=t?.interactive!==!1;typeof document>"u"||kr(()=>{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 Je(t=0){return new Promise(e=>{setTimeout(e,Math.max(0,Number(t)||0))})}async function Re(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&&jn({interactive:r});let a=Date.now();for(;Date.now()-a<o;){let s=document.querySelector("pds-live-edit");if(!s){await Je(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"),Je(80)])}catch{await Je(40)}continue}await Je(40)}let i=document.querySelector("pds-live-edit");return i&&typeof i?.[n]=="function"?i:null}function Sr(){if(typeof document>"u")return;document.querySelectorAll("pds-live-edit").forEach(e=>{typeof e?.setInteractiveEditingEnabled=="function"&&e.setInteractiveEditingEnabled(!1),e.remove()})}function Bn(t){return t?typeof t.isInteractiveEditingEnabled=="function"?!!t.isInteractiveEditingEnabled():!0:!1}function _n(){if(typeof document>"u"||document.getElementById(Ft))return;let t=document.createElement("style");t.id=Ft,t.textContent=`
3664
+ `.trim()}];var Wr="pds",jo=/^([a-z][a-z0-9+\-.]*:)?\/\//i,Dr=/^[a-z]:/i;function Ne(e=""){return e.endsWith("/")?e:`${e}/`}function Bo(e="",t=Wr){let r=e.replace(/\/+$/,"");return new RegExp(`(?:^|/)${t}$`,"i").test(r)?r:`${r}/${t}`}function Oo(e){return e.replace(/^\.\/+/,"")}function Do(e){return Dr.test(e)?e.replace(Dr,"").replace(/^\/+/,""):e}function Wo(e){return e.startsWith("public/")?e.substring(7):e}function ye(e,t={}){let r=t.segment||Wr,n=t.defaultRoot||`/assets/${r}/`,o=e?.public&&e.public?.root||e?.static&&e.static?.root||null;if(!o||typeof o!="string")return Ne(n);let a=o.trim();return a?(a=a.replace(/\\/g,"/"),a=Bo(a,r),a=Ne(a),jo.test(a)?a:(a=Oo(a),a=Do(a),a.startsWith("/")||(a=Wo(a),a.startsWith("/")||(a=`/${a}`),a=a.replace(/\/+/g,(i,s)=>s===0?i:"/")),Ne(a))):Ne(n)}function Hr(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 Ho(e){return e?e.split(",").map(n=>n.trim())[0].replace(/['"]/g,"").trim():null}async function Ur(e,t={}){if(!e)return Promise.resolve();let{weights:r=[400,500,600,700],italic:n=!1}=t,o=Ho(e);if(!o||Hr(o))return Promise.resolve();let a=encodeURIComponent(o);return document.querySelector(`link[href*="fonts.googleapis.com"][href*="${a}"]`)?(f.log("log",`Font "${o}" is already loading or loaded`),Promise.resolve()):(f.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=()=>{f.log("log",`Successfully loaded font "${o}"`),s()},c.onerror=()=>{f.log("warn",`Failed to load font "${o}" from Google Fonts`),p(new Error(`Failed to load font: ${o}`))},document.head.appendChild(c),setTimeout(()=>{Hr(o)||f.log("warn",`Font "${o}" did not load within timeout`),s()},5e3)}))}async function Gt(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=>Ur(n).catch(o=>{f.log("warn",`Could not load font: ${n}`,o)}));await Promise.all(r)}async function Uo(...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 rt=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,v=new Set,h=new Map,b=new WeakMap,k=new WeakMap,w=0,$=!1,T=null,A=S=>{if(!S||!l.length)return;let M=k.get(S);M||(M=new Set,k.set(S,M));for(let E of l)if(!(!E.selector||!E.run)&&!M.has(E.selector))try{S.matches&&S.matches(E.selector)&&(E.run(S),M.add(E.selector))}catch(B){console.warn(`[AutoDefiner] Error applying enhancer for selector "${E.selector}":`,B)}},_=(S,M)=>{if(!$&&!(!S||!S.includes("-"))&&!customElements.get(S)&&!m.has(S)&&!v.has(S)){if(M&&M.getAttribute){let E=M.getAttribute(i);E&&!h.has(S)&&h.set(S,E)}g.add(S),I()}},I=()=>{w||(w=setTimeout(P,c))},z=S=>{if(S){if(S.nodeType===1){let M=S,E=M.tagName?.toLowerCase();E&&E.includes("-")&&!customElements.get(E)&&a(E,M)&&_(E,M),A(M),d&&M.shadowRoot&&L(M.shadowRoot)}S.querySelectorAll&&S.querySelectorAll("*").forEach(M=>{let E=M.tagName?.toLowerCase();E&&E.includes("-")&&!customElements.get(E)&&a(E,M)&&_(E,M),A(M),d&&M.shadowRoot&&L(M.shadowRoot)})}},L=S=>{if(!S||b.has(S))return;z(S);let M=new MutationObserver(E=>{for(let B of E)B.addedNodes?.forEach(O=>{z(O)}),B.type==="attributes"&&B.target&&z(B.target)});M.observe(S,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[i,...l.map(E=>E.selector).filter(E=>E.startsWith("data-"))]}),b.set(S,M)};async function P(){if(clearTimeout(w),w=0,!g.size)return;let S=Array.from(g);g.clear(),S.forEach(M=>m.add(M));try{let M=E=>h.get(E)??(n?n(E):`${E}.js`);await Uo(...S,{baseURL:r,mapper:M,onError:(E,B)=>{v.add(E),o?.(E,B)}})}catch{}finally{S.forEach(M=>m.delete(M))}}let C=s===document?document.documentElement:s,y=new MutationObserver(S=>{for(let M of S)M.addedNodes?.forEach(E=>{z(E)}),M.type==="attributes"&&M.target&&z(M.target)});if(y.observe(C,{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 B=S.call(this,E);if(E&&E.mode==="open"){L(B);let O=this.tagName?.toLowerCase();O&&O.includes("-")&&!customElements.get(O)&&_(O,this)}return B},T=()=>Element.prototype.attachShadow=S}return p&&z(C),{stop(){$=!0,y.disconnect(),T&&T(),w&&(clearTimeout(w),w=0),b.forEach(S=>S.disconnect())},flush:P}}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 qo=/^[a-z][a-z0-9+\-.]*:\/\//i,Ie=(()=>{try{return import.meta.url}catch{return}})(),ve=e=>typeof e=="string"&&e.length&&!e.endsWith("/")?`${e}/`:e;function xe(e,t={}){if(!e||qo.test(e))return e;let{preferModule:r=!0}=t,n=()=>{if(!Ie)return null;try{return new URL(e,Ie).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 qr=(()=>{if(Ie)try{let e=new URL(Ie);if(/\/public\/assets\/js\//.test(e.pathname))return new URL("../pds/",Ie).href}catch{return}})(),Gr=!1;function nt(e){Gr||typeof document>"u"||(Gr=!0,e.addEventListener("pds:ready",t=>{let r=t.detail?.mode;r&&document.documentElement.classList.add(`pds-${r}`,"pds-ready")}))}function Kt(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]=Kt(r[n]&&typeof r[n]=="object"?r[n]:{},o):r[n]=o;return r}function Vt(e=""){return String(e).toLowerCase().replace(/&/g," and ").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}function pe(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=>pe(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=pe(n);o!==void 0&&(t[r]=o)}}return t}function Jt(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,v=null;if(g){l&&typeof l=="object"&&typeof o=="function"&&o(l,{log:i,context:"PDS.start"});let h=String(d||"default").toLowerCase(),b=r?.[h]||Object.values(r||{}).find(O=>Vt(O.name)===h||String(O.name||"").toLowerCase()===h);if(!b)throw new Error(`PDS preset not found: "${d||"default"}"`);v={id:b.id||Vt(b.name),name:b.name||b.id||String(h)};let k=structuredClone(b);if(l&&typeof l=="object"||u){let O=l?pe(l):{},K=u?pe(u):null,N=K?Kt(O,{icons:K}):O;k=Kt(k,structuredClone(N))}let{mode:w,autoDefine:$,applyGlobalStyles:T,manageTheme:A,themeStorageKey:_,preloadStyles:I,criticalLayers:z,managerURL:L,manager:P,localization:C,preset:y,design:S,enhancers:M,log:E,...B}=e;m={...B,design:k,preset:v.name,log:E||n}}else if(s){typeof o=="function"&&o(e,{log:i,context:"PDS.start"});let{log:h,...b}=e;m={design:structuredClone(b),log:h||n}}else{let h=r?.default||Object.values(r||{}).find(b=>Vt(b.name)==="default");if(!h)throw new Error("PDS default preset not available");v={id:h.id||"default",name:h.name||"Default"},m={design:structuredClone(h),preset:v.name,log:n}}return{generatorConfig:m,enhancers:c,presetInfo:v}}function ot({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 we(e,{resolvePublicAssetURL:t}){let r=!!(e?.public?.root||e?.static?.root),n=t(e);return!r&&qr&&(n=qr),ve(xe(n))}async function at(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=rt,l=w=>{switch(w){case"pds-tabpanel":return"pds-tabstrip.js";default:return`${w}.js`}},{mapper:u,enhancers:g,...m}=i&&typeof i=="object"?i:{},v=g?Array.isArray(g)?g:typeof g=="object"?Object.values(g):[]:[],h=(()=>{let w=new Map;return(p||[]).forEach($=>{$?.selector&&w.set($.selector,$)}),(v||[]).forEach($=>{if(!$?.selector)return;let T=w.get($.selector)||null;w.set($.selector,{...T||{},...$,run:typeof $?.run=="function"?$.run:T?.run})}),Array.from(w.values())})(),k={baseURL:r&&ve(xe(r,{preferModule:s})),predefine:n,scanExisting:!0,observeShadows:!0,patchAttachShadow:!0,debounceMs:16,enhancers:h,onError:(w,$)=>{if(typeof w=="string"&&w.startsWith("pds-")){let A=["pds-form","pds-drawer"].includes(w),_=$?.message?.includes("#pds/lit")||$?.message?.includes("Failed to resolve module specifier");A&&_?f.log("error",`\u274C PDS component <${w}> requires Lit but #pds/lit is not in import map.
3665
+ See: https://github.com/Pure-Web-Foundation/pure-ds/blob/main/readme.md#lit-components-not-working`):f.log("warn",`\u26A0\uFE0F PDS component <${w}> not found. Assets may not be installed.`)}else f.log("error",`\u274C Auto-define error for <${w}>:`,$)},...m,mapper:w=>{if(customElements.get(w))return null;if(typeof o=="function")try{let $=o(w);return $===void 0?l(w):$}catch($){return f.log("warn","Custom autoDefine.mapper error; falling back to default:",$?.message||$),l(w)}return l(w)}};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 Yt=["light","dark"],Xt=new Set(Yt);function Zt(e){let r=(Array.isArray(e?.themes)?e.themes.map(n=>String(n).toLowerCase()):Yt).filter(n=>Xt.has(n));return r.length?r:Yt}function ke(e,{preferDocument:t=!0}={}){let r=String(e||"").toLowerCase();if(Xt.has(r))return r;if(t&&typeof document<"u"){let n=document.documentElement?.getAttribute("data-theme");if(Xt.has(n))return n}return typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function ue(e,t){let r=ke(t);return Zt(e).includes(r)}var Kr=!1,ct="pds-live-edit-toggle",rr="pds-live-edit-toggle-style";function Jr(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))Jr(e[r],t);return e}function Yr(e){return e==null||typeof e!="object"?e:Jr(structuredClone(pe(e)))}function Xr(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 Vo(e={}){let t=e?.interactive!==!1;typeof document>"u"||Xr(()=>{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 lt(e=0){return new Promise(t=>{setTimeout(t,Math.max(0,Number(e)||0))})}async function je(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&&Vo({interactive:r});let a=Date.now();for(;Date.now()-a<o;){let s=document.querySelector("pds-live-edit");if(!s){await lt(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"),lt(80)])}catch{await lt(40)}continue}await lt(40)}let i=document.querySelector("pds-live-edit");return i&&typeof i?.[n]=="function"?i:null}function Zr(){if(typeof document>"u")return;document.querySelectorAll("pds-live-edit").forEach(t=>{typeof t?.setInteractiveEditingEnabled=="function"&&t.setInteractiveEditingEnabled(!1),t.remove()})}function Ko(e){return e?typeof e.isInteractiveEditingEnabled=="function"?!!e.isInteractiveEditingEnabled():!0:!1}function Jo(){if(typeof document>"u"||document.getElementById(rr))return;let e=document.createElement("style");e.id=rr,e.textContent=`
3666
3666
  :where(.pds-live-edit-toggle-nav) {
3667
3667
  position: fixed;
3668
3668
  top: var(--spacing-3);
@@ -3722,28 +3722,28 @@ export const ${e}CSS = \`${n}\`;
3722
3722
  :where(.pds-live-edit-toggle-nav menu a[data-pds-live-action="reset-config"] pds-icon) {
3723
3723
  color: var(--color-danger-700);
3724
3724
  }
3725
- `,document.head.appendChild(t)}function Rt(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 On(){if(typeof document>"u")return null;_n();let t=document.getElementById(Ke);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=Ke,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=(a,i,s)=>{let p=document.createElement("li"),d=document.createElement("a");d.href="#",d.dataset.pdsLiveAction=a,d.setAttribute("data-pds-live-edit-ignore","true");let c=document.createElement("pds-icon");return c.setAttribute("icon",s),c.setAttribute("size","sm"),d.append(c,document.createTextNode(` ${i}`)),p.appendChild(d),p},o=()=>{let a=document.createElement("li");a.setAttribute("data-pds-live-edit-ignore","true");let i=document.createElement("hr");return i.setAttribute("aria-hidden","true"),a.appendChild(i),a};r.appendChild(n("toggle","Toggle live editing","pencil")),r.appendChild(n("open-settings","Open Settings","gear")),r.appendChild(o()),r.appendChild(n("reset-config","Reset Config","arrow-counter-clockwise")),await Dn(r),e.append(t,r),kr(()=>{document.getElementById(Ke)||document.body.appendChild(e)})}return t}async function Dn(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 Re({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 Wn(){if(typeof document>"u")return;let t=document.getElementById(Ke);if(t){let r=t.closest(".pds-live-edit-toggle-nav");r?r.remove():t.remove()}let e=document.getElementById(Ft);e&&e.remove(),Sr()}async function Hn(){if(typeof document>"u")return;let t=await On();if(!t)return;let e=async i=>{if(i){let s=await Re({mountIfMissing:!0});s&&typeof s.setInteractiveEditingEnabled=="function"&&s.setInteractiveEditingEnabled(!0)}else Sr();Rt(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 p=String(s.dataset.pdsLiveAction||"");if(p==="toggle"){let d=await Re({mountIfMissing:!1}),c=Bn(d);await e(!c);return}if(p==="open-settings"){let d=await Re({mountIfMissing:!0,requiredMethod:"openDesignSettings",interactive:!1});d&&typeof d.setInteractiveEditingEnabled=="function"&&d.setInteractiveEditingEnabled(!1),d&&typeof d.openDesignSettings=="function"&&(Rt(t,!1),await d.openDesignSettings());return}if(p==="reset-config"){let d=await Re({mountIfMissing:!0,requiredMethod:"resetConfig",interactive:!1});Rt(t,!1),d&&typeof d.resetConfig=="function"&&await d.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 Un(){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 Pt(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]=Pt(r[n]&&typeof r[n]=="object"?r[n]:{},o):r[n]=o;return r}function qn(t){let e=Un();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=Pt(i,n)}else a=Pt(t,n);return a}function Gn(t,e={}){let{hideCategory:r=!0,itemGrid:n="45px 1fr",includeIncompatible:o=!0,disableIncompatible:a=!0,categoryName:i="Presets",theme:s,onSelect:p,iconHandler:d}=e||{},c=ye(s??t?.theme),l=m=>{let f=g(m?.id)?.colors||{},h=f?.primary,w=f?.secondary,x=f?.accent;return h&&w&&x?`<span style="display:flex;gap:1px;flex-shrink:0;" aria-hidden="true">
3726
- <span style="display:inline-block;width:10px;height:20px;background-color:${h};">&nbsp;</span>
3725
+ `,document.head.appendChild(e)}function tr(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 Yo(){if(typeof document>"u")return null;Jo();let e=document.getElementById(ct);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=ct,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=(a,i,s)=>{let p=document.createElement("li"),c=document.createElement("a");c.href="#",c.dataset.pdsLiveAction=a,c.setAttribute("data-pds-live-edit-ignore","true");let d=document.createElement("pds-icon");return d.setAttribute("icon",s),d.setAttribute("size","sm"),c.append(d,document.createTextNode(` ${i}`)),p.appendChild(c),p},o=()=>{let a=document.createElement("li");a.setAttribute("data-pds-live-edit-ignore","true");let i=document.createElement("hr");return i.setAttribute("aria-hidden","true"),a.appendChild(i),a};r.appendChild(n("toggle","Toggle live editing","pencil")),r.appendChild(n("open-settings","Open Settings","gear")),r.appendChild(o()),r.appendChild(n("reset-config","Reset Config","arrow-counter-clockwise")),await Xo(r),t.append(e,r),Xr(()=>{document.getElementById(ct)||document.body.appendChild(t)})}return e}async function Xo(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 je({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 Zo(){if(typeof document>"u")return;let e=document.getElementById(ct);if(e){let r=e.closest(".pds-live-edit-toggle-nav");r?r.remove():e.remove()}let t=document.getElementById(rr);t&&t.remove(),Zr()}async function Qo(){if(typeof document>"u")return;let e=await Yo();if(!e)return;let t=async i=>{if(i){let s=await je({mountIfMissing:!0});s&&typeof s.setInteractiveEditingEnabled=="function"&&s.setInteractiveEditingEnabled(!0)}else Zr();tr(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 je({mountIfMissing:!1}),d=Ko(c);await t(!d);return}if(p==="open-settings"){let c=await je({mountIfMissing:!0,requiredMethod:"openDesignSettings",interactive:!1});c&&typeof c.setInteractiveEditingEnabled=="function"&&c.setInteractiveEditingEnabled(!1),c&&typeof c.openDesignSettings=="function"&&(tr(e,!1),await c.openDesignSettings());return}if(p==="reset-config"){let c=await je({mountIfMissing:!0,requiredMethod:"resetConfig",interactive:!1});tr(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 ea(){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 nr(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]=nr(r[n]&&typeof r[n]=="object"?r[n]:{},o):r[n]=o;return r}function ta(e){let t=ea();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=nr(i,n)}else a=nr(e,n);return a}function ra(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=ke(s??e?.theme),l=m=>{let h=g(m?.id)?.colors||{},b=h?.primary,k=h?.secondary,w=h?.accent;return b&&k&&w?`<span style="display:flex;gap:1px;flex-shrink:0;" aria-hidden="true">
3726
+ <span style="display:inline-block;width:10px;height:20px;background-color:${b};">&nbsp;</span>
3727
+ <span style="display:inline-block;width:10px;height:20px;background-color:${k};">&nbsp;</span>
3727
3728
  <span style="display:inline-block;width:10px;height:20px;background-color:${w};">&nbsp;</span>
3728
- <span style="display:inline-block;width:10px;height:20px;background-color:${x};">&nbsp;</span>
3729
- </span>`:m?.icon?`<pds-icon icon="${m.icon}" size="sm"></pds-icon>`:""},u=()=>{let m=t?.presets||{};return Object.values(m||{}).filter(y=>!!(y?.id||y?.name))},g=m=>m&&u().find(f=>String(f?.id||f?.name)===String(m))||null;return{hideCategory:r,itemGrid:n,iconHandler:typeof d=="function"?d:l,categories:{[i]:{trigger:()=>!0,getItems:(m={})=>{let y=String(m?.search||"").toLowerCase().trim();return u().filter(h=>{let w=String(h?.name||h?.id||"").toLowerCase(),x=String(h?.description||"").toLowerCase(),S=Array.isArray(h?.tags)?h.tags.map(L=>String(L).toLowerCase()):[];if(y&&!(w.includes(y)||x.includes(y)||S.some(F=>F.includes(y))))return!1;let A=se(h,c);return!(!o&&!A)}).map(h=>{let w=h?.id||h?.name,x=se(h,c),S=Tt(h),A=S.length===1?`${S[0]} only`:`Not available in ${c} mode`,L=String(h?.description||"").trim(),F=x?L:L?`${L} - ${A}`:A;return{id:w,text:h?.name||String(w),description:F,icon:"palette",class:!x&&a?"disabled":"",disabled:!x&&a,tooltip:x?"":A}}).sort((h,w)=>String(h.text||"").localeCompare(String(w.text||"")))},action:async m=>{if(!m?.id||m?.disabled)return m?.id;let y=g(m.id);return y?typeof p=="function"?await p({preset:y,selection:m,resolvedTheme:c}):(typeof t?.applyLivePreset=="function"&&await t.applyLivePreset(y.id||m.id),y.id||m.id):m?.id}}}}}async function Vn(t,{applyResolvedTheme:e,setupSystemListenerIfNeeded:r,emitConfigChanged:n}){if(vr)return;let[o,a,i]=await Promise.all([Promise.resolve().then(()=>(wt(),sr)),Promise.resolve().then(()=>(Ce(),Yt)),Promise.resolve().then(()=>(Lt(),Ye))]),s=o?.default||o?.ontology,p=o?.findComponentForElement,d=a?.enums;t.ontology=s,t.findComponentForElement=p,t.enums=d,t.common=i||{},t.presets=X,t.configRelations=er,t.configSpec=tr,t.configEditorMetadata=or,t.configFormSchema=ar,t.buildConfigFormSchema=ue,t.getConfigEditorMetadata=Te,t.enhancerMetadata=pr,(!Array.isArray(t.defaultEnhancers)||t.defaultEnhancers.length===0)&&(t.defaultEnhancers=Array.isArray(We)?We:[]),t.applyStyles=function(c){let l=c||K.instance;cr(l),typeof n=="function"&&n({mode:"live",source:"live:styles-applied"})},t.adoptLayers=function(c,l,u){return De(c,l,u,K.instance)},t.adoptPrimitives=function(c,l){return Oe(c,l,K.instance)},t.getGenerator=async function(){return K},t.buildPresetOmniboxSettings=function(c={}){return Gn(t,c)},t.applyLivePreset=async function(c,l={}){if(!c)return!1;if(!t.registry?.isLive)return console.warn("PDS.applyLivePreset is only available in live mode."),!1;let u=t.currentConfig||{},{design:g,preset:m,...y}=u,f={...structuredClone(ie(y)),preset:c},h=zt(f,{},{presets:X,defaultLog:xt,validateDesignConfig:yt,validateInitConfig:vt}),w=ye(t.theme);if(!se(h.generatorConfig.design,w)){let L=h.presetInfo?.name||h.generatorConfig?.design?.name||c;console.warn(`PDS theme "${w}" not supported by preset "${L}".`)}u.theme&&!h.generatorConfig.theme&&(h.generatorConfig.theme=u.theme);let x=new K(h.generatorConfig);if(h.generatorConfig.design?.typography)try{await St(h.generatorConfig.design.typography)}catch(L){h.generatorConfig?.log?.("warn","Failed to load some fonts from Google Fonts:",L)}t.applyStyles?.(x);let S=h.presetInfo||{id:c,name:c};if(t.currentPreset=S,t.compiled=wr({...u,preset:h.generatorConfig.preset,design:h.generatorConfig.design,theme:h.generatorConfig.theme||u.theme}),t.configEditorMetadata=Te(h.generatorConfig.design),t.configFormSchema=ue(h.generatorConfig.design),l?.persist!==!1&&typeof window<"u"){let L="pure-ds-config";try{let F=localStorage.getItem(L),I=F?JSON.parse(F):null,$={...I&&typeof I=="object"?I:{},preset:S.id||c,design:structuredClone(h.generatorConfig.design||{})};localStorage.setItem(L,JSON.stringify($))}catch(F){h.generatorConfig?.log?.("warn","Failed to store preset:",F)}}return!0},t.preloadCritical=function(c,l={}){if(typeof window>"u"||!document.head||!c)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 y=c.design?{...c,theme:m}:{design:c,theme:m},f=new K(y),h=g.map(w=>{try{return f.css?.[w]||""}catch{return""}}).filter(w=>w.trim()).join(`
3730
- `);if(h){let w=document.head.querySelector("style[data-pds-preload]");w&&w.remove();let x=document.createElement("style");x.setAttribute("data-pds-preload",""),x.textContent=h,document.head.insertBefore(x,document.head.firstChild)}}catch(m){console.warn("PDS preload failed:",m)}},vr=!0}async function Yn(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=qn(e),typeof i=="string"&&i.trim()){let g=e?.design&&typeof e.design=="object"?e.design:{},m=g?.icons&&typeof g.icons=="object"?g.icons:{};e={...e,design:{...g,icons:{...m,externalPath:i}}}}if(await Vn(t,{applyResolvedTheme:o,setupSystemListenerIfNeeded:a,emitConfigChanged:n}),Ue(t),typeof document<"u"&&document.adoptedStyleSheets){let g=`
3729
+ </span>`:m?.icon?`<pds-icon icon="${m.icon}" size="sm"></pds-icon>`:""},u=()=>{let m=e?.presets||{};return Object.values(m||{}).filter(v=>!!(v?.id||v?.name))},g=m=>m&&u().find(h=>String(h?.id||h?.name)===String(m))||null;return{hideCategory:r,itemGrid:n,iconHandler:typeof c=="function"?c:l,categories:{[i]:{trigger:()=>!0,getItems:(m={})=>{let v=String(m?.search||"").toLowerCase().trim();return u().filter(b=>{let k=String(b?.name||b?.id||"").toLowerCase(),w=String(b?.description||"").toLowerCase(),$=Array.isArray(b?.tags)?b.tags.map(A=>String(A).toLowerCase()):[];if(v&&!(k.includes(v)||w.includes(v)||$.some(_=>_.includes(v))))return!1;let T=ue(b,d);return!(!o&&!T)}).map(b=>{let k=b?.id||b?.name,w=ue(b,d),$=Zt(b),T=$.length===1?`${$[0]} only`:`Not available in ${d} mode`,A=String(b?.description||"").trim(),_=w?A:A?`${A} - ${T}`:T;return{id:k,text:b?.name||String(k),description:_,icon:"palette",class:!w&&a?"disabled":"",disabled:!w&&a,tooltip:w?"":T}}).sort((b,k)=>String(b.text||"").localeCompare(String(k.text||"")))},action:async m=>{if(!m?.id||m?.disabled)return m?.id;let v=g(m.id);return v?typeof p=="function"?await p({preset:v,selection:m,resolvedTheme:d}):(typeof e?.applyLivePreset=="function"&&await e.applyLivePreset(v.id||m.id),v.id||m.id):m?.id}}}}}async function na(e,{applyResolvedTheme:t,setupSystemListenerIfNeeded:r,emitConfigChanged:n}){if(Kr)return;let[o,a,i]=await Promise.all([Promise.resolve().then(()=>(Ot(),Mr)),Promise.resolve().then(()=>(Te(),mr)),Promise.resolve().then(()=>(er(),st))]),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=wr,e.configSpec=kr,e.configEditorMetadata=zr,e.configFormSchema=Cr,e.buildConfigFormSchema=he,e.getConfigEditorMetadata=Fe,e.enhancerMetadata=Or,(!Array.isArray(e.defaultEnhancers)||e.defaultEnhancers.length===0)&&(e.defaultEnhancers=Array.isArray(tt)?tt:[]),e.applyStyles=function(d){let l=d||Z.instance;Tr(l),typeof n=="function"&&n({mode:"live",source:"live:styles-applied"})},e.adoptLayers=function(d,l,u){return Je(d,l,u,Z.instance)},e.adoptPrimitives=function(d,l){return Ke(d,l,Z.instance)},e.getGenerator=async function(){return Z},e.buildPresetOmniboxSettings=function(d={}){return ra(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,...v}=u,h={...structuredClone(pe(v)),preset:d},b=Jt(h,{},{presets:Q,defaultLog:Bt,validateDesignConfig:It,validateInitConfig:jt}),k=ke(e.theme);if(!ue(b.generatorConfig.design,k)){let A=b.presetInfo?.name||b.generatorConfig?.design?.name||d;e.log("warn",`PDS theme "${k}" not supported by preset "${A}".`)}u.theme&&!b.generatorConfig.theme&&(b.generatorConfig.theme=u.theme);let w=new Z(b.generatorConfig);if(b.generatorConfig.design?.typography)try{await Gt(b.generatorConfig.design.typography)}catch(A){b.generatorConfig?.log?.("warn","Failed to load some fonts from Google Fonts:",A)}e.applyStyles?.(w);let $=b.presetInfo||{id:d,name:d};if(e.currentPreset=$,e.compiled=Yr({...u,preset:b.generatorConfig.preset,design:b.generatorConfig.design,theme:b.generatorConfig.theme||u.theme}),e.configEditorMetadata=Fe(b.generatorConfig.design),e.configFormSchema=he(b.generatorConfig.design),l?.persist!==!1&&typeof window<"u"){let A="pure-ds-config";try{let _=localStorage.getItem(A),I=_?JSON.parse(_):null,z={...I&&typeof I=="object"?I:{},preset:$.id||d,design:structuredClone(b.generatorConfig.design||{})};localStorage.setItem(A,JSON.stringify(z))}catch(_){b.generatorConfig?.log?.("warn","Failed to store preset:",_)}}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 v=d.design?{...d,theme:m}:{design:d,theme:m},h=new Z(v),b=g.map(k=>{try{return h.css?.[k]||""}catch{return""}}).filter(k=>k.trim()).join(`
3730
+ `);if(b){let k=document.head.querySelector("style[data-pds-preload]");k&&k.remove();let w=document.createElement("style");w.setAttribute("data-pds-preload",""),w.textContent=b,document.head.insertBefore(w,document.head.firstChild)}}catch(m){e.log("warn","PDS preload failed:",m)}},Kr=!0}async function oa(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=ta(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 na(e,{applyResolvedTheme:o,setupSystemListenerIfNeeded:a,emitConfigChanged:n}),nt(e),typeof document<"u"&&document.adoptedStyleSheets){let g=`
3731
3731
  html { opacity: 0; }
3732
3732
  html.pds-ready { opacity: 1; transition: opacity 0.3s ease-in; }
3733
- `;try{if(!document.adoptedStyleSheets.some(y=>y._pdsFouc)){let y=new CSSStyleSheet;y.replaceSync(g),y._pdsFouc=!0,document.adoptedStyleSheets=[y,...document.adoptedStyleSheets]}}catch(m){if(console.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=e.applyGlobalStyles??!0,p=e.manageTheme??!0,d=e.themeStorageKey??"pure-ds-theme",c=e.preloadStyles??!1,l=e.criticalLayers??["tokens","primitives"],u=e&&e.autoDefine||null;try{let{resolvedTheme:g}=qe({manageTheme:p,themeStorageKey:d,applyResolvedTheme:o,setupSystemListenerIfNeeded:a}),m=zt(e,{},{presets:X,defaultLog:xt,validateDesignConfig:yt,validateInitConfig:vt});if(p&&!se(m.generatorConfig.design,g)){let $=m.presetInfo?.name||m.generatorConfig?.design?.name||m.generatorConfig?.preset||"current preset";console.warn(`PDS theme "${g}" not supported by preset "${$}".`)}let y=m.enhancers,{log:f,...h}=m.generatorConfig,w=structuredClone(h);w.log=f,p&&(w.theme=g);let x=new K(w);if(w.design?.typography)try{await St(w.design.typography)}catch($){w?.log?.("warn","Failed to load some fonts from Google Fonts:",$)}if(c&&typeof window<"u"&&document.head)try{let $=l.map(z=>{try{return x.css?.[z]||""}catch(P){return w?.log?.("warn",`Failed to generate critical CSS for layer "${z}":`,P),""}}).filter(z=>z.trim()).join(`
3734
- `);if($){let z=document.head.querySelector("style[data-pds-critical]");z&&z.remove();let P=document.createElement("style");P.setAttribute("data-pds-critical",""),P.textContent=$;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($){w?.log?.("warn","Failed to preload critical styles:",$)}t.registry.setLiveMode(),m.presetInfo?.name?w?.log?.("log",`PDS live with preset "${m.presetInfo.name}"`):w?.log?.("log","PDS live with custom config"),s&&(t.applyStyles?.(K.instance),typeof window<"u"&&setTimeout(()=>{let $=document.head.querySelector("style[data-pds-critical]");$&&$.remove();let z=document.head.querySelector("style[data-pds-preload]");z&&z.remove();let P=document.getElementById("pds-runtime-stylesheet");P&&P.remove()},100));let S=be(e,{resolvePublicAssetURL:me}),A;u&&u.baseURL?A=fe(he(u.baseURL,{preferModule:!1})):A=`${S}components/`;let L=null,F=[];try{let $=await Ge({autoDefineBaseURL:A,autoDefinePreload:u&&Array.isArray(u.predefine)&&u.predefine||[],autoDefineMapper:u&&typeof u.mapper=="function"&&u.mapper||null,enhancers:y,autoDefineOverrides:u||null,autoDefinePreferModule:!(u&&u.baseURL)},{baseEnhancers:We});L=$.autoDefiner,F=$.mergedEnhancers||[]}catch($){w?.log?.("error","\u274C Failed to initialize AutoDefiner/Enhancers:",$)}let I=x?.options||w;if(t.compiled=wr({mode:"live",...I,theme:g,enhancers:F}),t.configEditorMetadata=Te(m.generatorConfig.design),t.configFormSchema=ue(m.generatorConfig.design),typeof n=="function"&&n({mode:"live",source:"live:config-applied",preset:m.generatorConfig.preset}),typeof document<"u")try{e?.liveEdit?setTimeout(()=>{Hn()},0):Wn()}catch($){w?.log?.("warn","Live editor toggle failed to start:",$)}return r({mode:"live",generator:x,config:I,theme:g,autoDefiner:L}),{generator:x,config:I,theme:g,autoDefiner:L}}catch(g){throw t.dispatchEvent(new CustomEvent("pds:error",{detail:{error:g}})),g}}function Jn(t){let e=Number(t);return Number.isFinite(e)?Math.max(0,Math.min(1,e)):.5}function Kn(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 O(t={}){let e=String(t.source||"unknown"),r=String(t.type||"generic"),n=Jn(t.confidence),o=Kn(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 Xn(t){return!!(t&&typeof t=="object"&&"source"in t&&"type"in t&&"confidence"in t&&"issues"in t&&"designPatch"in t)}var Zn="../templates/templates.json",$r="/assets/pds/templates/templates.json",Qn=["public","assets","pds","templates","templates.json"],eo=["..","..","..","public","assets","pds","templates","templates.json"],Xe=null;function Cr(){return!!(typeof process<"u"&&process?.versions?.node)}function to(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 Ze(t={},e={}){let n=(Array.isArray(t)?t:Array.isArray(t?.templates)?t.templates:[]).map(to).filter(o=>o.id&&o.file);return{version:t?.version||"1",templates:n,__catalogURL:e.catalogURL||null,__catalogFilePath:e.catalogFilePath||null}}async function ro(t={}){let r=[t.catalogURL||globalThis?.PDS?.currentConfig?.templateCatalogURL,Zn,$r].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 Ze(i,{catalogURL:o})}catch{}return Ze({templates:[]})}async function no(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(),...Qn));let p=a.dirname(i(import.meta.url));s.push(a.resolve(p,...eo));for(let d of s)try{let c=await o(d,"utf8"),l=JSON.parse(c);return Ze(l,{catalogFilePath:d})}catch{}return Ze({templates:[]})}async function oo(t,e){if(!t?.file)return"";if(!Cr()){let p=e?.__catalogURL||$r,d=new URL(t.file,p).href,c=await fetch(d,{credentials:"same-origin"});if(!c.ok)throw new Error(`Template file not found: ${t.file}`);return(await c.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 Qe(t={}){return Xe&&!t.forceReload||(Xe=Cr()?await no(t):await ro(t)),Xe}async function zr(t={}){return(await Qe(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 ao(t,e={}){let r=await Qe(e),n=r.templates.find(a=>a.id===t)||null;if(!n)return null;let o=await oo(n,r);return{...n,html:o}}async function Mr(t,e={}){let r=await ao(t,e);return r?O({source:"template",type:"template",confidence:1,template:{id:r.id,name:r.name,html:r.html,icon:r.icon,description:r.description}}):O({source:"template",type:"template",confidence:0,issues:[{severity:"error",message:`Unknown template: ${t}`}]})}var Er={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."}]};Ce();Lt();var jt=class extends EventTarget{},Ar="__PURE_DS_PDS_SINGLETON__",Bt=typeof globalThis<"u"?globalThis:window,Nt=Bt?.[Ar],M=Nt&&typeof Nt.addEventListener=="function"?Nt:new jt;Bt&&(Bt[Ar]=M);typeof M.initializing!="boolean"&&(M.initializing=!1);"currentPreset"in M||(M.currentPreset=null);typeof M.debug!="boolean"&&(M.debug=!1);"currentConfig"in M||(M.currentConfig=null);"compiled"in M||(M.compiled=null);var et=null,tt=null,rt=null,nt=null;function ot(t,e){return e&&typeof e=="string"?e:`${be(M.currentConfig||{},{resolvePublicAssetURL:me})}core/${t}`}async function so(){return Array.isArray(M.defaultEnhancers)&&M.defaultEnhancers.length>0?M.defaultEnhancers:(nt||(nt=import(ot("pds-enhancers.js",M.currentConfig?.enhancersURL)).then(e=>{let r=Array.isArray(e?.defaultPDSEnhancers)?e.defaultPDSEnhancers:[];return M.defaultEnhancers=r,r}).catch(e=>{throw nt=null,e})),nt)}async function lo(){return typeof M.ask=="function"&&M.ask!==Lr?M.ask:(tt||(tt=import(ot("pds-ask.js",M.currentConfig?.askURL)).then(e=>{let r=e?.ask;if(typeof r!="function")throw new Error("Failed to load ask helper");return M.ask=r,r}).catch(e=>{throw tt=null,e})),tt)}async function Pe(){return typeof M.toast=="function"&&M.toast!==ve?M.toast:(rt||(rt=import(ot("pds-toast.js",M.currentConfig?.toastURL)).then(e=>{let r=e?.toast;if(typeof r!="function")throw new Error("Failed to load toast helper");return M.toast=r,r}).catch(e=>{throw rt=null,e})),rt)}async function Lr(...t){return(await lo())(...t)}async function ve(...t){return(await Pe())(...t)}ve.success=async(...t)=>(await Pe()).success(...t);ve.error=async(...t)=>(await Pe()).error(...t);ve.warning=async(...t)=>(await Pe()).warning(...t);ve.info=async(...t)=>(await Pe()).info(...t);var Tr=function(t="log",e,...r){let n=!!(M.registry&&!M.registry.isLive),o=(this?.debug||this?.design?.debug||M.debug||!1)===!0;if(n){if(!M.debug)return}else if(!o&&t!=="error"&&t!=="warn")return;let a=console[t]||console.log;r.length>0?a(e,...r):a(e)};function _t(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=>_t(r)).filter(r=>r!==void 0);let e={};for(let[r,n]of Object.entries(t)){let o=_t(n);o!==void 0&&(e[r]=o)}return e}function Rr(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))Rr(t[r],e);return t}function Ot(t){return t==null||typeof t!="object"?t:Rr(structuredClone(_t(t)))}async function co(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}}M.registry=ge;M.enums=v;M.adoptLayers=De;M.adoptPrimitives=Oe;M.parse=At;M.createStylesheet=dr;M.isLiveMode=()=>ge.isLive;M.ask=Lr;M.toast=ve;M.common=Ye;M.AutoComplete=null;M.loadAutoComplete=async()=>{if(M.AutoComplete&&typeof M.AutoComplete.connect=="function")return M.AutoComplete;let t=ot("pds-autocomplete.js",M.currentConfig?.autoCompleteURL);return et||(et=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 M.AutoComplete=r,r}).catch(e=>{throw et=null,e})),et};function Fr(t){let e=typeof CustomEvent=="function";try{let r=e?new CustomEvent("pds:ready",{detail:t}):new Event("pds:ready");M.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 Pr(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");M.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 It="pure-ds-theme",le=null,Fe=null;function Dt(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 Wt(t){try{if(le&&Fe){try{typeof le.removeEventListener=="function"?le.removeEventListener("change",Fe):typeof le.removeListener=="function"&&le.removeListener(Fe)}catch{}le=null,Fe=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),M.dispatchEvent(new CustomEvent("pds:theme:changed",{detail:{theme:a,source:"system"}}))}catch{}};le=e,Fe=r,typeof e.addEventListener=="function"?e.addEventListener("change",r):typeof e.addListener=="function"&&e.addListener(r)}}catch{}}var po=Object.getOwnPropertyDescriptor(M,"theme");po||Object.defineProperty(M,"theme",{get(){try{return typeof window>"u"?null:localStorage.getItem(It)||null}catch{return null}},set(t){try{if(typeof window>"u")return;let e=M.currentConfig?.design||null,r=ye(t);if(e&&!se(e,r)){let n=e?.name||M.currentPreset?.name||M.currentConfig?.preset||"current preset";console.warn(`PDS theme "${r}" not supported by preset "${n}".`),M.dispatchEvent(new CustomEvent("pds:theme:blocked",{detail:{theme:t,resolvedTheme:r,preset:n}}));return}t==null?localStorage.removeItem(It):localStorage.setItem(It,t),Dt(t),Wt(t),M.dispatchEvent(new CustomEvent("pds:theme:changed",{detail:{theme:t,source:"api"}}))}catch{}}});M.defaultEnhancers=[];async function uo(t){M.initializing=!0;try{let e=t&&t.mode||"live",{mode:r,...n}=t||{};M.currentConfig=Ot(n);let o;if(e==="static")o=await go(n);else{let i=be(n,{resolvePublicAssetURL:me}),s=n?.managerURL||n?.public?.managerURL||n?.manager?.url||new URL("core/pds-manager.js",i).href||new URL("./pds-manager.js",import.meta.url).href,{startLive:p}=await import(s);o=await p(M,n,{emitReady:Fr,emitConfigChanged:Pr,applyResolvedTheme:Dt,setupSystemListenerIfNeeded:Wt})}M.compiled=Ot(o?.config||null);let a=M?.compiled?.design?.icons?.externalPath||"/assets/img/icons/";return typeof console<"u"&&typeof console.info=="function"&&console.info(`[PDS] startup ready; external icon path: ${a}`),o}finally{M.initializing=!1}}M.start=uo;async function go(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=be(t,{resolvePublicAssetURL:me}),i=t&&t.autoDefine||null,s;i&&i.baseURL?s=fe(he(i.baseURL,{preferModule:!1})):s=`${a}components/`;let p=i&&Array.isArray(i.predefine)&&i.predefine||[],d=i&&typeof i.mapper=="function"&&i.mapper||null;try{Ue(M);let{resolvedTheme:c}=qe({manageTheme:r,themeStorageKey:n,applyResolvedTheme:Dt,setupSystemListenerIfNeeded:Wt}),l=await co(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},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`},y=l?.paths||{};if(o={...m,...y,...o},M.registry.setStaticMode(o),e&&typeof document<"u")try{let w=await M.registry.getStylesheet("styles");if(w){w._pds=!0;let x=(document.adoptedStyleSheets||[]).filter(S=>S._pds!==!0);document.adoptedStyleSheets=[...x,w],Pr({mode:"static",source:"static:styles-applied"})}}catch(w){Tr.call(M,"warn","Failed to apply static styles:",w)}let f=null,h=[];try{let w=await so(),x=await Ge({autoDefineBaseURL:s,autoDefinePreload:p,autoDefineMapper:d,enhancers:u,autoDefineOverrides:i||null,autoDefinePreferModule:!(i&&i.baseURL)},{baseEnhancers:w});f=x.autoDefiner,h=x.mergedEnhancers||[]}catch(w){Tr.call(M,"error","\u274C Failed to initialize AutoDefiner/Enhancers (static):",w)}return M.compiled=Ot({mode:"static",...g,theme:c,enhancers:h}),Fr({mode:"static",config:g,theme:c,autoDefiner:f}),{config:g,theme:c,autoDefiner:f}}catch(c){throw M.dispatchEvent(new CustomEvent("pds:error",{detail:{error:c}})),c}}var mo="src/js/pds-live-manager/tailwind-conversion-rules.json",st=["base","sm","md","lg","xl","2xl"];function fo(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 U=fo(Er),Nr=U.version||"tw2pds-layout-v4",ho=new Map(U.directMappings.map(t=>[t.tw,t])),Ht=new Map(Object.entries(U.gapScaleMap||{})),Ir=new Map(Object.entries(U.maxWidthMap||{})),bo=U.nonPdsClassPatterns||[],yo=new Set(U.neverFallbackTags||[]),vo={...U.importStyleRules||{}},xo=U.tailwindSizeScale||{},Ut=Array.isArray(U.tailwindShadeScale)?U.tailwindShadeScale.map(t=>String(t)).filter(Boolean):["50","100","200","300","400","500","600","700","800","900"],jr=Ut.includes(String(U.defaultTailwindShade||""))?String(U.defaultTailwindShade):"500",it=1.2,wo=["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 Br(t="",e=""){if(!t||!e)return t;let r=new RegExp(`\\s${e}\\s*=\\s*("[^"]*"|'[^']*'|[^\\s>]+)`,"gi");return String(t).replace(r,"")}function ko(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,p,d,c,l,u,g,m)=>{if(s!==g)return o;let y=Br(`${a||""}${p||""}`,"for"),f=`<${c}${l||""} id="${g}"${m||""}>`;return n+=1,`<label${y}>${d}${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,d,c,l,u,g,m,y)=>{if(s!==g)return o;let f=Br(`${a||""}${p||""}`,"for"),h=`<${c}${l||""} id="${g}"${m||""}>${y}</${c}>`;return n+=1,`<label${f}>${d}${h}</label>`}),e&&n>0&&(e.labelNestingCount+=n,j(e,`Nested ${n} label/control pairs.`),R(e,"intent.form.nested-label")),r}function So(t="",e="base"){let r=String(t||"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"rule";return`import-${e&&e!=="base"?`${e}-`:""}${r}`}function ce(t,e,r,n="base",o=""){if(!t||!e||!r)return"";let a=So(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 we(t=""){return String(t||"").trim().replace(/_/g," ")}function ke(t=""){return!t||/[;{}]/.test(t)?!1:/^[-#(),.%/\sa-zA-Z0-9]+$/.test(t)}function Ne(t=""){let e=String(t||"").trim();if(!e)return null;let r=e.match(/^\[([^\]]+)\]$/);if(r){let n=we(r[1]);return ke(n)?n:null}return xo[e]||null}function $o(t=""){let e=Number(t);if(!Number.isFinite(e))return jr;let r=String(e);return Ut.includes(r)?r:Ut.reduce((n,o)=>{let a=Math.abs(Number(n)-e);return Math.abs(Number(o)-e)<a?o:n},jr)}function je(t="",e="500"){let r=String(t||"").toLowerCase(),n=$o(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 _r(t=""){let e=we(t);return ke(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 te(t=""){return String(t||"").split(/\s+/).map(e=>e.trim()).filter(Boolean)}function Co(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=te(n[2]);a.includes(e)||a.push(e);let i=` class=${o}${a.join(" ")}${o}`;return r.replace(n[0],i)}function zo(t="",e=""){return e?new RegExp(`\\s${e}\\s*=`,"i").test(String(t||"")):!1}function Mo(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 Eo(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=Co(a,"icon-only");if(!zo(s,"aria-label")){let p=String(i).match(/\sicon\s*=\s*(["'])(.*?)\1/i),d=p?String(p[2]||""):"",c=Mo(d);s+=` aria-label="${c}"`}return e&&(e.intentHits+=1,R(e,"intent.component.button.icon-only-markup")),`<${o}${s}>${i}</${o}>`})}function To(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 p=String(i||"").match(/\sclass\s*=\s*(["'])(.*?)\1/i);if(!p)return a;let d=te(p[2]||""),c=d.some(u=>/^import-text-/.test(String(u||""))),l=d.includes("text-muted")||d.some(u=>/^import-font-/.test(String(u||"")));return!c||!l?a:(n+=1,`<div${i}>${s}</div>`)});return e&&n>0&&(e.intentHits+=1,R(e,"intent.typography.metric-paragraph-to-div"),j(e,`Normalized ${n} metric text paragraph tag(s) to div.`)),o}function Gr(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=te(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 Ao(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=te(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 p=` class=${o}${s.join(" ")}${o}`;return r.replace(n[0],p)}function Lo(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,p,d,c,l)=>{let u=String(s||"").match(/\sclass\s*=\s*(["'])(.*?)\1/i);if(!u||!te(u[2]).includes("stack-sm"))return a;let m=String(d||"").match(/\sclass\s*=\s*(["'])(.*?)\1/i),y=String(l||"").match(/\sclass\s*=\s*(["'])(.*?)\1/i);if(!m||!y)return a;let f=te(m[2]),h=te(y[2]);if(!(f.some(S=>/^import-text-/.test(String(S||"")))&&h.some(S=>/^import-text-/.test(String(S||"")))))return a;let x=Gr(s,"stack-sm");return n+=1,a.replace(`<${i}${s}>`,`<${i}${x}>`)});return e&&n>0&&(e.intentHits+=1,R(e,"intent.typography.metric-pair-no-stack"),j(e,`Removed stack-sm from ${n} metric text pair container(s).`)),o}function Ro(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 Fo(t={}){let e=Ro(t),r=Number(e.fontScale);return Number.isFinite(r)?Math.max(1,Math.min(2,r)):it}function Po(t="",e=it){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))):it,a=Math.max(-1,Math.min(1,Math.round((o-it)/.25))),i=n-a;return i<1?"h1":i>4?"":`h${i}`}function No(t="",e=null,r={}){let n=String(t||"");if(!n)return n;let o=Fo(r.config||{}),a=0,i=0,s=n.replace(/<(p|div|span)([^>]*)>([\s\S]*?)<\/\1>/gi,(p,d,c,l)=>{let u=String(c||"").match(/\sclass\s*=\s*(["'])(.*?)\1/i);if(!u)return p;let g=te(u[2]);if(!g.includes("import-font-bold"))return p;let y=g.find(S=>/^import-text-(?:4xl|3xl|2xl|xl)$/.test(String(S||"")))||"",f=y.match(/^import-text-(4xl|3xl|2xl|xl)$/);if(f){let S=Po(f[1],o);if(!S)return p;let A=Ao(c,L=>L.filter(F=>F!=="import-font-bold"&&F!==y));return a+=1,`<${S}${A}>${l}</${S}>`}let h=/<\/?(?:div|p|section|article|aside|main|header|footer|ul|ol|li|table|tr|td|th|h[1-6])\b/i.test(l),w=/<\/?(?:strong|b)\b/i.test(l);if(h||w)return p;let x=Gr(c,"import-font-bold");return i+=1,`<${d}${x}><strong>${l}</strong></${d}>`});return e&&(a>0&&(e.intentHits+=1,R(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,R(e,"intent.typography.bold-to-strong"),j(e,`Wrapped ${i} bold text node(s) in strong tags.`))),s}function Io(t=[]){if(!Array.isArray(t)||t.length===0)return"";let e=t.filter(n=>!st.includes(n));if(e.length===0||e.length>1)return"";let r=e[0];return["hover","focus","active"].includes(r)?r:""}function Or(t,e="base",r=[]){let n=Io(r),o=vo[t];if(o)return{declaration:o,breakpoint:e,pseudo:n,ruleId:"fallback.import-style"};let a=String(t).match(/^gap-(\d+)$/);if(a){let b={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)"},k=Number(a[1]);if(b[k])return{declaration:`gap:${b[k]}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.gap-scale"}}let i=String(t).match(/^(mt|mb|my)-(.+)$/);if(i){let b=i[1],k=i[2],E=Ne(k);if(E){let T="";return b==="mt"?T=`margin-top:${E}`:b==="mb"?T=`margin-bottom:${E}`:T=`margin-top:${E};margin-bottom:${E}`,{declaration:T,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.margin-scale"}}}let s=String(t).match(/^min-w-\[([^\]]+)\]$/);if(s){let b=we(s[1]);if(ke(b))return{declaration:`min-width:${b}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.min-width-arbitrary"}}let p=String(t).match(/^max-w-\[([^\]]+)\]$/);if(p){let b=we(p[1]);if(ke(b))return{declaration:`max-width:${b}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.max-width-arbitrary"}}let d=String(t).match(/^min-h-\[([^\]]+)\]$/);if(d){let b=we(d[1]);if(ke(b))return{declaration:`min-height:${b}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.min-height-arbitrary"}}let c=String(t).match(/^grid-rows-\[([^\]]+)\]$/);if(c){let b=we(c[1]);if(ke(b))return{declaration:`grid-template-rows:${b}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.grid-rows-arbitrary"}}let l=String(t).match(/^size-(.+)$/);if(l){let b=Ne(l[1]);if(b)return{declaration:`width:${b};height:${b}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.size-scale"}}let u=String(t).match(/^w-(.+)$/);if(u){let b=Ne(u[1]);if(b)return{declaration:`width:${b}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.width-scale"}}let g=String(t).match(/^h-(.+)$/);if(g){let b=Ne(g[1]);if(b)return{declaration:`height:${b}`,breakpoint:e,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)"},y=String(t).match(/^text-(xs|sm|base|lg|xl|2xl|3xl|4xl)$/);if(y)return{declaration:`font-size:${m[y[1]]}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.text-size"};let f={normal:"400",medium:"500",semibold:"600",bold:"700",extrabold:"800",black:"900"},h=String(t).match(/^font-(normal|medium|semibold|bold|extrabold|black)$/);if(h)return{declaration:`font-weight:${f[h[1]]}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.font-weight"};let w={none:"1",tight:"1.25",snug:"1.375",normal:"1.5",relaxed:"1.625",loose:"2"},x=String(t).match(/^leading-(none|tight|snug|normal|relaxed|loose)$/);if(x)return{declaration:`line-height:${w[x[1]]}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.line-height"};let S={tighter:"-0.05em",tight:"-0.025em",normal:"0em",wide:"0.025em",wider:"0.05em",widest:"0.1em"},A=String(t).match(/^tracking-(tighter|tight|normal|wide|wider|widest)$/);if(A)return{declaration:`letter-spacing:${S[A[1]]}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.tracking"};let L=String(t).match(/^bg-black\/(\d{1,3})$/);if(L)return{declaration:`background-color:color-mix(in srgb, var(--color-gray-900) ${Math.max(0,Math.min(100,Number(L[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 F=String(t).match(/^bg-(primary|secondary|accent)$/);if(F){let k={primary:"var(--color-primary-fill)",secondary:"var(--color-gray-500)",accent:"var(--color-accent-500)"}[F[1]];if(k)return{declaration:`background-color:${k}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.bg-semantic"}}let I=String(t).match(/^bg-([a-z]+)-(\d{2,3})$/);if(I){let b=je(I[1],I[2]);if(b)return{declaration:`background-color:${b}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.bg-tokenized"}}let $=String(t).match(/^bg-\[([^\]]+)\]$/);if($){let b=_r($[1]);if(b)return{declaration:`background-color:${b}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.bg-arbitrary"}}let z=String(t).match(/^text-([a-z]+)-(\d{2,3})$/);if(z){let b=je(z[1],z[2]);if(b)return{declaration:`color:${b}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.text-tokenized"}}let P=String(t).match(/^text-\[([^\]]+)\]$/);if(P){let b=_r(P[1]);if(b)return{declaration:`color:${b}`,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 b=C[1]||"",k=C[2]||"sm",E=k==="none"?"0":`var(--radius-${k})`,T={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(!b)return{declaration:`border-radius:${E}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.rounded"};let W=(T[b]||[]).map(V=>`border-${V}-radius:${E}`).join(";");if(W)return{declaration:W,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.rounded"}}return null}function at(t,e){return typeof t=="number"&&Number.isFinite(t)?`${t}px`:typeof t=="string"&&t.trim()?t.trim():`${e}px`}function jo(t={}){let r=(t?.design&&typeof t.design=="object"?t.design:t)?.layout?.breakpoints||{};return{sm:at(r.sm,640),md:at(r.md,768),lg:at(r.lg,1024),xl:at(r.xl,1280)}}function Bo(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 p=Array.from(i.entries()).map(([d,c])=>`.${d}{${c};}`).join(`
3733
+ `;try{if(!document.adoptedStyleSheets.some(v=>v._pdsFouc)){let v=new CSSStyleSheet;v.replaceSync(g),v._pdsFouc=!0,document.adoptedStyleSheets=[v,...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 h=document.createElement("style");h.setAttribute("data-pds-fouc",""),h.textContent=g,document.head.insertBefore(h,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}=ot({manageTheme:p,themeStorageKey:c,applyResolvedTheme:o,setupSystemListenerIfNeeded:a}),m=Jt(t,{},{presets:Q,defaultLog:Bt,validateDesignConfig:It,validateInitConfig:jt});if(p&&!ue(m.generatorConfig.design,g)){let z=m.presetInfo?.name||m.generatorConfig?.design?.name||m.generatorConfig?.preset||"current preset";e.log("warn",`PDS theme "${g}" not supported by preset "${z}".`)}let v=m.enhancers,{log:h,...b}=m.generatorConfig,k=structuredClone(b);k.log=h,p&&(k.theme=g);let w=new Z(k);if(k.design?.typography)try{await Gt(k.design.typography)}catch(z){k?.log?.("warn","Failed to load some fonts from Google Fonts:",z)}if(d&&typeof window<"u"&&document.head)try{let z=l.map(L=>{try{return w.css?.[L]||""}catch(P){return k?.log?.("warn",`Failed to generate critical CSS for layer "${L}":`,P),""}}).filter(L=>L.trim()).join(`
3734
+ `);if(z){let L=document.head.querySelector("style[data-pds-critical]");L&&L.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){k?.log?.("warn","Failed to preload critical styles:",z)}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?.(Z.instance),typeof window<"u"&&setTimeout(()=>{let z=document.head.querySelector("style[data-pds-critical]");z&&z.remove();let L=document.head.querySelector("style[data-pds-preload]");L&&L.remove();let P=document.getElementById("pds-runtime-stylesheet");P&&P.remove()},100));let $=we(t,{resolvePublicAssetURL:ye}),T;u&&u.baseURL?T=ve(xe(u.baseURL,{preferModule:!1})):T=`${$}components/`;let A=null,_=[];try{let z=await at({autoDefineBaseURL:T,autoDefinePreload:u&&Array.isArray(u.predefine)&&u.predefine||[],autoDefineMapper:u&&typeof u.mapper=="function"&&u.mapper||null,enhancers:v,autoDefineOverrides:u||null,autoDefinePreferModule:!(u&&u.baseURL)},{baseEnhancers:tt});A=z.autoDefiner,_=z.mergedEnhancers||[]}catch(z){k?.log?.("error","\u274C Failed to initialize AutoDefiner/Enhancers:",z)}let I=w?.options||k;if(e.compiled=Yr({mode:"live",...I,theme:g,enhancers:_}),e.configEditorMetadata=Fe(m.generatorConfig.design),e.configFormSchema=he(m.generatorConfig.design),typeof n=="function"&&n({mode:"live",source:"live:config-applied",preset:m.generatorConfig.preset}),typeof document<"u")try{t?.liveEdit?setTimeout(()=>{Qo()},0):Zo()}catch(z){k?.log?.("warn","Live editor toggle failed to start:",z)}return r({mode:"live",generator:w,config:I,theme:g,autoDefiner:A}),{generator:w,config:I,theme:g,autoDefiner:A}}catch(g){throw e.dispatchEvent(new CustomEvent("pds:error",{detail:{error:g}})),g}}function aa(e){let t=Number(e);return Number.isFinite(t)?Math.max(0,Math.min(1,t)):.5}function ia(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=aa(e.confidence),o=ia(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 sa(e){return!!(e&&typeof e=="object"&&"source"in e&&"type"in e&&"confidence"in e&&"issues"in e&&"designPatch"in e)}var la="../templates/templates.json",Qr="/assets/pds/templates/templates.json",ca=["public","assets","pds","templates","templates.json"],da=["..","..","..","public","assets","pds","templates","templates.json"],dt=null;function en(){return!!(typeof process<"u"&&process?.versions?.node)}function pa(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 pt(e={},t={}){let n=(Array.isArray(e)?e:Array.isArray(e?.templates)?e.templates:[]).map(pa).filter(o=>o.id&&o.file);return{version:e?.version||"1",templates:n,__catalogURL:t.catalogURL||null,__catalogFilePath:t.catalogFilePath||null}}async function ua(e={}){let r=[e.catalogURL||globalThis?.PDS?.currentConfig?.templateCatalogURL,la,Qr].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 pt(i,{catalogURL:o})}catch{}return pt({templates:[]})}async function ga(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(),...ca));let p=a.dirname(i(import.meta.url));s.push(a.resolve(p,...da));for(let c of s)try{let d=await o(c,"utf8"),l=JSON.parse(d);return pt(l,{catalogFilePath:c})}catch{}return pt({templates:[]})}async function ma(e,t){if(!e?.file)return"";if(!en()){let p=t?.__catalogURL||Qr,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 ut(e={}){return dt&&!e.forceReload||(dt=en()?await ga(e):await ua(e)),dt}async function tn(e={}){return(await ut(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 fa(e,t={}){let r=await ut(t),n=r.templates.find(a=>a.id===e)||null;if(!n)return null;let o=await ma(n,r);return{...n,html:o}}async function rn(e,t={}){let r=await fa(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 nn={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."}]};Te();er();typeof f.initializing!="boolean"&&(f.initializing=!1);"currentPreset"in f||(f.currentPreset=null);typeof f.debug!="boolean"&&(f.debug=!1);"currentConfig"in f||(f.currentConfig=null);"compiled"in f||(f.compiled=null);typeof f.logHandler!="function"&&(f.logHandler=null);"mode"in f||(f.mode=null);var gt=null,mt=null,ft=null,ht=null,bt=null,yt=null,an="__pdsLocalizationRuntime";function Se(){if(yt)return yt;let e=f?.[an];return e&&typeof e=="object"?(yt=e,e):null}function ba(e){let t=e&&typeof e=="object"?e:null;yt=t,f[an]=t}Fr({getLogger:()=>typeof f.logHandler=="function"?f.logHandler:null,getContext:()=>{let e=f?.mode||f?.compiled?.mode||(f?.registry?.isLive?"live":"static"),t=(f?.debug||f?.currentConfig?.debug||f?.currentConfig?.design?.debug||f?.compiled?.debug||f?.compiled?.design?.debug||!1)===!0;return{mode:e,debug:t,thisArg:f}}});f.log=(e="log",t,...r)=>{Ye(e,t,...r)};var U={locale:"en",messages:{},hasProvider:!1},vt=new Set;function sn(e){return!!e&&typeof e!="string"&&typeof e=="object"&&"strTag"in e}function ln(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 ya(e,t){return String(e).replace(/\{(\d+)\}/g,(r,n)=>t(Number(n)))}function va(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 xa(e,...t){return{strTag:!0,strings:Array.from(e||[]),values:t,raw:Array.from(e?.raw||[])}}function wa(e){if(!e)return"";if(sn(e)){let r=ln(e.strings||[]),n=U.messages[r]||r;return ya(n,o=>e.values?.[o])}let t=String(e);return U.messages[t]||t}function ka(e){if(!e)return;let t=sn(e)?ln(e.strings||[]):String(e);typeof t=="string"&&t.length>0&&vt.add(t)}function cn(e){if(!e||typeof e.msg!="function"||vt.size===0)return;let t=Array.from(vt);vt.clear();for(let r of t)try{e.msg(r)}catch{}}async function Oe(){let e=Se();return e||(bt||(bt=import(De("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 ba(r),cn(r),r}).catch(r=>{throw bt=null,r})),bt)}var dn=(e,t={})=>{let r=Se();return typeof r?.msg=="function"?r.msg(e,t):(ka(e),wa(e,t))},pn=(e,...t)=>{let r=Se();return typeof r?.str=="function"?r.str(e,...t):xa(e,...t)},xt=(e=null)=>{let t=Se();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=va(e.messages));let r=!!(e.provider||e.translate||e.loadLocale||e.setLocale);return U.hasProvider=r,r&&Oe().then(n=>{n.configureLocalization(e),cn(n)}).catch(()=>{}),{locale:U.locale,messages:{...U.messages},hasProvider:U.hasProvider}},un=async e=>(await Oe()).loadLocale(e),gn=async(e,t={})=>(await Oe()).setLocale(e,t),mn=()=>{let e=Se();return typeof e?.getLocalizationState=="function"?e.getLocalizationState():{locale:U.locale,messages:{...U.messages},hasProvider:U.hasProvider}},fn=(e={})=>{let t=Se();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=Oe().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 De(e,t){return t&&typeof t=="string"?t:`${we(f.currentConfig||{},{resolvePublicAssetURL:ye})}core/${e}`}async function Sa(){return Array.isArray(f.defaultEnhancers)&&f.defaultEnhancers.length>0?f.defaultEnhancers:(ht||(ht=import(De("pds-enhancers.js",f.currentConfig?.enhancersURL)).then(t=>{let r=Array.isArray(t?.defaultPDSEnhancers)?t.defaultPDSEnhancers:[];return f.defaultEnhancers=r,r}).catch(t=>{throw ht=null,t})),ht)}async function $a(){return typeof f.ask=="function"&&f.ask!==hn?f.ask:(mt||(mt=import(De("pds-ask.js",f.currentConfig?.askURL)).then(t=>{let r=t?.ask;if(typeof r!="function")throw new Error("Failed to load ask helper");return f.ask=r,r}).catch(t=>{throw mt=null,t})),mt)}async function We(){return typeof f.toast=="function"&&f.toast!==$e?f.toast:(ft||(ft=import(De("pds-toast.js",f.currentConfig?.toastURL)).then(t=>{let r=t?.toast;if(typeof r!="function")throw new Error("Failed to load toast helper");return f.toast=r,r}).catch(t=>{throw ft=null,t})),ft)}async function hn(...e){return(await $a())(...e)}async function $e(...e){return(await We())(...e)}$e.success=async(...e)=>(await We()).success(...e);$e.error=async(...e)=>(await We()).error(...e);$e.warning=async(...e)=>(await We()).warning(...e);$e.info=async(...e)=>(await We()).info(...e);var on=function(e="log",t,...r){f.log(e,t,...r)};function ar(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=>ar(r)).filter(r=>r!==void 0);let t={};for(let[r,n]of Object.entries(e)){let o=ar(n);o!==void 0&&(t[r]=o)}return t}function bn(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))bn(e[r],t);return e}function ir(e){return e==null||typeof e!="object"?e:bn(structuredClone(ar(e)))}async function za(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}}f.registry=be;f.enums=x;f.adoptLayers=Je;f.adoptPrimitives=Ke;f.parse=Qt;f.createStylesheet=Ar;f.isLiveMode=()=>be.isLive;f.ask=hn;f.toast=$e;f.common=st;f.msg=dn;f.str=pn;f.configureLocalization=xt;f.loadLocale=un;f.setLocale=gn;f.getLocalizationState=mn;f.createJSONLocalization=fn;f.i18n={msg:dn,str:pn,configure:xt,loadLocale:un,setLocale:gn,getState:mn,createJSONLocalization:fn};f.AutoComplete=null;f.loadAutoComplete=async()=>{if(f.AutoComplete&&typeof f.AutoComplete.connect=="function")return f.AutoComplete;let e=De("pds-autocomplete.js",f.currentConfig?.autoCompleteURL);return gt||(gt=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 f.AutoComplete=r,r}).catch(t=>{throw gt=null,t})),gt};function yn(e){let t=typeof CustomEvent=="function";try{let r=t?new CustomEvent("pds:ready",{detail:e}):new Event("pds:ready");f.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 vn(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");f.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 or="pure-ds-theme",ge=null,Be=null;function sr(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 lr(e){try{if(ge&&Be){try{typeof ge.removeEventListener=="function"?ge.removeEventListener("change",Be):typeof ge.removeListener=="function"&&ge.removeListener(Be)}catch{}ge=null,Be=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),f.dispatchEvent(new CustomEvent("pds:theme:changed",{detail:{theme:a,source:"system"}}))}catch{}};ge=t,Be=r,typeof t.addEventListener=="function"?t.addEventListener("change",r):typeof t.addListener=="function"&&t.addListener(r)}}catch{}}var Ca=Object.getOwnPropertyDescriptor(f,"theme");Ca||Object.defineProperty(f,"theme",{get(){try{return typeof window>"u"?null:localStorage.getItem(or)||null}catch{return null}},set(e){try{if(typeof window>"u")return;let t=f.currentConfig?.design||null,r=ke(e);if(t&&!ue(t,r)){let n=t?.name||f.currentPreset?.name||f.currentConfig?.preset||"current preset";f.log("warn",`PDS theme "${r}" not supported by preset "${n}".`),f.dispatchEvent(new CustomEvent("pds:theme:blocked",{detail:{theme:e,resolvedTheme:r,preset:n}}));return}e==null?localStorage.removeItem(or):localStorage.setItem(or,e),sr(e),lr(e),f.dispatchEvent(new CustomEvent("pds:theme:changed",{detail:{theme:e,source:"api"}}))}catch{}}});f.defaultEnhancers=[];async function La(e){f.initializing=!0;try{let t=e&&e.mode||"live",{mode:r,...n}=e||{};f.mode=t,f.logHandler=typeof n?.log=="function"?n.log:null,f.currentConfig=ir(n);let o=n&&typeof n.localization=="object"&&n.localization?n.localization:null;o?(await Oe(),xt(o)):xt(null);let a;if(t==="static")a=await Ma(n);else{let s=we(n,{resolvePublicAssetURL:ye}),p=n?.managerURL||n?.public?.managerURL||n?.manager?.url||new URL("core/pds-manager.js",s).href||new URL("./pds-manager.js",import.meta.url).href,{startLive:c}=await import(p);a=await c(f,n,{emitReady:yn,emitConfigChanged:vn,applyResolvedTheme:sr,setupSystemListenerIfNeeded:lr})}f.compiled=ir(a?.config||null);let i=f?.compiled?.design?.icons?.externalPath||"/assets/img/icons/";return f.log("info",`startup ready; external icon path: ${i}`),a}finally{f.initializing=!1}}f.start=La;async function Ma(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=we(e,{resolvePublicAssetURL:ye}),i=e&&e.autoDefine||null,s;i&&i.baseURL?s=ve(xe(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{nt(f);let{resolvedTheme:d}=ot({manageTheme:r,themeStorageKey:n,applyResolvedTheme:sr,setupSystemListenerIfNeeded:lr}),l=await za(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`},v=l?.paths||{};if(o={...m,...v,...o},f.registry.setStaticMode(o),t&&typeof document<"u")try{let k=await f.registry.getStylesheet("styles");if(k){k._pds=!0;let w=(document.adoptedStyleSheets||[]).filter($=>$._pds!==!0);document.adoptedStyleSheets=[...w,k],vn({mode:"static",source:"static:styles-applied"})}}catch(k){on.call(f,"warn","Failed to apply static styles:",k)}let h=null,b=[];try{let k=await Sa(),w=await at({autoDefineBaseURL:s,autoDefinePreload:p,autoDefineMapper:c,enhancers:u,autoDefineOverrides:i||null,autoDefinePreferModule:!(i&&i.baseURL)},{baseEnhancers:k});h=w.autoDefiner,b=w.mergedEnhancers||[]}catch(k){on.call(f,"error","\u274C Failed to initialize AutoDefiner/Enhancers (static):",k)}return f.compiled=ir({mode:"static",...g,theme:d,enhancers:b}),yn({mode:"static",config:g,theme:d,autoDefiner:h}),{config:g,theme:d,autoDefiner:h}}catch(d){throw f.dispatchEvent(new CustomEvent("pds:error",{detail:{error:d}})),d}}var Ea="src/js/pds-live-manager/tailwind-conversion-rules.json",St=["base","sm","md","lg","xl","2xl"];function Ta(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=Ta(nn),xn=G.version||"tw2pds-layout-v4",Aa=new Map(G.directMappings.map(e=>[e.tw,e])),cr=new Map(Object.entries(G.gapScaleMap||{})),wn=new Map(Object.entries(G.maxWidthMap||{})),Ra=G.nonPdsClassPatterns||[],_a=new Set(G.neverFallbackTags||[]),Fa={...G.importStyleRules||{}},Pa=G.tailwindSizeScale||{},dr=Array.isArray(G.tailwindShadeScale)?G.tailwindShadeScale.map(e=>String(e)).filter(Boolean):["50","100","200","300","400","500","600","700","800","900"],kn=dr.includes(String(G.defaultTailwindShade||""))?String(G.defaultTailwindShade):"500",kt=1.2,Na=["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 Sn(e="",t=""){if(!e||!t)return e;let r=new RegExp(`\\s${t}\\s*=\\s*("[^"]*"|'[^']*'|[^\\s>]+)`,"gi");return String(e).replace(r,"")}function Ia(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 v=Sn(`${a||""}${p||""}`,"for"),h=`<${d}${l||""} id="${g}"${m||""}>`;return n+=1,`<label${v}>${c}${h}</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,v)=>{if(s!==g)return o;let h=Sn(`${a||""}${p||""}`,"for"),b=`<${d}${l||""} id="${g}"${m||""}>${v}</${d}>`;return n+=1,`<label${h}>${c}${b}</label>`}),t&&n>0&&(t.labelNestingCount+=n,j(t,`Nested ${n} label/control pairs.`),R(t,"intent.form.nested-label")),r}function ja(e="",t="base"){let r=String(e||"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"rule";return`import-${t&&t!=="base"?`${t}-`:""}${r}`}function me(e,t,r,n="base",o=""){if(!e||!t||!r)return"";let a=ja(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 Ce(e=""){return String(e||"").trim().replace(/_/g," ")}function Le(e=""){return!e||/[;{}]/.test(e)?!1:/^[-#(),.%/\sa-zA-Z0-9]+$/.test(e)}function He(e=""){let t=String(e||"").trim();if(!t)return null;let r=t.match(/^\[([^\]]+)\]$/);if(r){let n=Ce(r[1]);return Le(n)?n:null}return Pa[t]||null}function Ba(e=""){let t=Number(e);if(!Number.isFinite(t))return kn;let r=String(t);return dr.includes(r)?r:dr.reduce((n,o)=>{let a=Math.abs(Number(n)-t);return Math.abs(Number(o)-t)<a?o:n},kn)}function qe(e="",t="500"){let r=String(e||"").toLowerCase(),n=Ba(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 $n(e=""){let t=Ce(e);return Le(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 oe(e=""){return String(e||"").split(/\s+/).map(t=>t.trim()).filter(Boolean)}function Oa(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=oe(n[2]);a.includes(t)||a.push(t);let i=` class=${o}${a.join(" ")}${o}`;return r.replace(n[0],i)}function Da(e="",t=""){return t?new RegExp(`\\s${t}\\s*=`,"i").test(String(e||"")):!1}function Wa(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 Ha(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=Oa(a,"icon-only");if(!Da(s,"aria-label")){let p=String(i).match(/\sicon\s*=\s*(["'])(.*?)\1/i),c=p?String(p[2]||""):"",d=Wa(c);s+=` aria-label="${d}"`}return t&&(t.intentHits+=1,R(t,"intent.component.button.icon-only-markup")),`<${o}${s}>${i}</${o}>`})}function Ua(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=oe(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 An(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=oe(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 qa(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=oe(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 Ga(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||!oe(u[2]).includes("stack-sm"))return a;let m=String(c||"").match(/\sclass\s*=\s*(["'])(.*?)\1/i),v=String(l||"").match(/\sclass\s*=\s*(["'])(.*?)\1/i);if(!m||!v)return a;let h=oe(m[2]),b=oe(v[2]);if(!(h.some($=>/^import-text-/.test(String($||"")))&&b.some($=>/^import-text-/.test(String($||"")))))return a;let w=An(s,"stack-sm");return n+=1,a.replace(`<${i}${s}>`,`<${i}${w}>`)});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 Va(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 Ka(e={}){let t=Va(e),r=Number(t.fontScale);return Number.isFinite(r)?Math.max(1,Math.min(2,r)):kt}function Ja(e="",t=kt){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))):kt,a=Math.max(-1,Math.min(1,Math.round((o-kt)/.25))),i=n-a;return i<1?"h1":i>4?"":`h${i}`}function Ya(e="",t=null,r={}){let n=String(e||"");if(!n)return n;let o=Ka(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=oe(u[2]);if(!g.includes("import-font-bold"))return p;let v=g.find($=>/^import-text-(?:4xl|3xl|2xl|xl)$/.test(String($||"")))||"",h=v.match(/^import-text-(4xl|3xl|2xl|xl)$/);if(h){let $=Ja(h[1],o);if(!$)return p;let T=qa(d,A=>A.filter(_=>_!=="import-font-bold"&&_!==v));return a+=1,`<${$}${T}>${l}</${$}>`}let b=/<\/?(?: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(b||k)return p;let w=An(d,"import-font-bold");return i+=1,`<${c}${w}><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 Xa(e=[]){if(!Array.isArray(e)||e.length===0)return"";let t=e.filter(n=>!St.includes(n));if(t.length===0||t.length>1)return"";let r=t[0];return["hover","focus","active"].includes(r)?r:""}function zn(e,t="base",r=[]){let n=Xa(r),o=Fa[e];if(o)return{declaration:o,breakpoint:t,pseudo:n,ruleId:"fallback.import-style"};let a=String(e).match(/^gap-(\d+)$/);if(a){let y={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(y[S])return{declaration:`gap:${y[S]}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.gap-scale"}}let i=String(e).match(/^(mt|mb|my)-(.+)$/);if(i){let y=i[1],S=i[2],M=He(S);if(M){let E="";return y==="mt"?E=`margin-top:${M}`:y==="mb"?E=`margin-bottom:${M}`:E=`margin-top:${M};margin-bottom:${M}`,{declaration:E,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.margin-scale"}}}let s=String(e).match(/^min-w-\[([^\]]+)\]$/);if(s){let y=Ce(s[1]);if(Le(y))return{declaration:`min-width:${y}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.min-width-arbitrary"}}let p=String(e).match(/^max-w-\[([^\]]+)\]$/);if(p){let y=Ce(p[1]);if(Le(y))return{declaration:`max-width:${y}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.max-width-arbitrary"}}let c=String(e).match(/^min-h-\[([^\]]+)\]$/);if(c){let y=Ce(c[1]);if(Le(y))return{declaration:`min-height:${y}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.min-height-arbitrary"}}let d=String(e).match(/^grid-rows-\[([^\]]+)\]$/);if(d){let y=Ce(d[1]);if(Le(y))return{declaration:`grid-template-rows:${y}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.grid-rows-arbitrary"}}let l=String(e).match(/^size-(.+)$/);if(l){let y=He(l[1]);if(y)return{declaration:`width:${y};height:${y}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.size-scale"}}let u=String(e).match(/^w-(.+)$/);if(u){let y=He(u[1]);if(y)return{declaration:`width:${y}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.width-scale"}}let g=String(e).match(/^h-(.+)$/);if(g){let y=He(g[1]);if(y)return{declaration:`height:${y}`,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)"},v=String(e).match(/^text-(xs|sm|base|lg|xl|2xl|3xl|4xl)$/);if(v)return{declaration:`font-size:${m[v[1]]}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.text-size"};let h={normal:"400",medium:"500",semibold:"600",bold:"700",extrabold:"800",black:"900"},b=String(e).match(/^font-(normal|medium|semibold|bold|extrabold|black)$/);if(b)return{declaration:`font-weight:${h[b[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"},w=String(e).match(/^leading-(none|tight|snug|normal|relaxed|loose)$/);if(w)return{declaration:`line-height:${k[w[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"},T=String(e).match(/^tracking-(tighter|tight|normal|wide|wider|widest)$/);if(T)return{declaration:`letter-spacing:${$[T[1]]}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.tracking"};let A=String(e).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: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 _=String(e).match(/^bg-(primary|secondary|accent)$/);if(_){let S={primary:"var(--color-primary-fill)",secondary:"var(--color-gray-500)",accent:"var(--color-accent-500)"}[_[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 y=qe(I[1],I[2]);if(y)return{declaration:`background-color:${y}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.bg-tokenized"}}let z=String(e).match(/^bg-\[([^\]]+)\]$/);if(z){let y=$n(z[1]);if(y)return{declaration:`background-color:${y}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.bg-arbitrary"}}let L=String(e).match(/^text-([a-z]+)-(\d{2,3})$/);if(L){let y=qe(L[1],L[2]);if(y)return{declaration:`color:${y}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.text-tokenized"}}let P=String(e).match(/^text-\[([^\]]+)\]$/);if(P){let y=$n(P[1]);if(y)return{declaration:`color:${y}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.text-arbitrary"}}let C=String(e).match(/^rounded(?:-([trbl]{1,2}))?(?:-(none|xs|sm|md|lg|xl|2xl|3xl|full))?$/);if(C){let y=C[1]||"",S=C[2]||"sm",M=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(!y)return{declaration:`border-radius:${M}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.rounded"};let O=(E[y]||[]).map(K=>`border-${K}-radius:${M}`).join(";");if(O)return{declaration:O,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.rounded"}}return null}function wt(e,t){return typeof e=="number"&&Number.isFinite(e)?`${e}px`:typeof e=="string"&&e.trim()?e.trim():`${t}px`}function Za(e={}){let r=(e?.design&&typeof e.design=="object"?e.design:e)?.layout?.breakpoints||{};return{sm:wt(r.sm,640),md:wt(r.md,768),lg:wt(r.lg,1024),xl:wt(r.xl,1280)}}function Qa(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(`
3735
3735
  `);n.push(`@media (min-width: ${s}) {
3736
3736
  ${p}
3737
- }`)}for(let[a,i]of t.importPseudoStyles.entries()){let[s,p]=String(a).split("|");if(!p||!i?.size)continue;let d=Array.from(i.entries()).map(([l,u])=>`.${l}:${p}{${u};}`).join(`
3738
- `);if(!d)continue;if(s==="base"){n.push(d);continue}let c=e?.[s];c&&n.push(`@media (min-width: ${c}) {
3739
- ${d}
3737
+ }`)}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(`
3738
+ `);if(!c)continue;if(s==="base"){n.push(c);continue}let d=t?.[s];d&&n.push(`@media (min-width: ${d}) {
3739
+ ${c}
3740
3740
  }`)}let o=[...r,...n].filter(Boolean).join(`
3741
3741
  `);return o.trim()?["/* pds-import: generated fallback styles for unmapped Tailwind utilities */",o].join(`
3742
- `):""}function _o(t="",e=""){if(!e||!e.trim())return t;let r=`<style data-pds-import="tailwind-fallback">
3743
- ${e}
3744
- </style>`;return/<head[^>]*>/i.test(t)?t.replace(/<head([^>]*)>/i,`<head$1>
3742
+ `):""}function ei(e="",t=""){if(!t||!t.trim())return e;let r=`<style data-pds-import="tailwind-fallback">
3743
+ ${t}
3744
+ </style>`;return/<head[^>]*>/i.test(e)?e.replace(/<head([^>]*)>/i,`<head$1>
3745
3745
  ${r}`):`${r}
3746
- ${t}`}function Dr(t=""){if(!t)return!1;if(t.includes(":")||t.includes("["))return!0;let e=t.split("-")[0];return wo.includes(e)}function re(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=>st.includes(a))||"base",base:r,variants:n}}function Oo(){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 Do(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 Wo(t=""){return String(t||"").toLowerCase().includes("cdn.tailwindcss.com")?{listReset:!0,anchorReset:!0}:{listReset:!1,anchorReset:!1}}function Ho(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 d=Do(s);return n.listReset=n.listReset||d.listReset,n.anchorReset=n.anchorReset||d.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 c=Wo(s||p||"");return n.listReset=n.listReset||c.listReset,n.anchorReset=n.anchorReset||c.anchorReset,n.strippedRuntimeScripts+=1,""}),e&&(n.strippedRuntimeCssBlocks>0||n.strippedRuntimeScripts>0)&&(R(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 Uo(t,e){let r=t.unknownTokens.get(e)||0;t.unknownTokens.set(e,r+1)}function qo(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 G(t,e){return e?t?.[e]!==!1:!0}function Wr(t){let e=String(t).match(/^grid-cols-(\d+)$/);return e?Number(e[1]):null}function Hr(t={}){let e=st.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 Go(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 Vo(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 Yo(t=""){let e=re(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 Jo(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 Ko(t=new Set){return Array.from(t).some(e=>/^stack-(?:xs|sm|md|lg|xl)$/.test(String(e||"")))}function Xo(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 Zo(t,e=12){return Array.from(t.unknownTokens.entries()).sort((r,n)=>n[1]-r[1]).slice(0,e).map(([r])=>r)}function R(t,e){!t||!e||t.appliedRules.add(e)}function ne(t=[],e){return!Array.isArray(t)||!e?!1:t.some(r=>e.test(String(r)))}function Qo(t=[]){for(let e of t){let r=re(e);if(r.breakpoint!=="base")continue;let n=String(r.base).match(/^h-(.+)$/);if(!n)continue;let o=Ne(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 ea(t=[],e=""){let r=e==="button",n=ne(t,/^bg-/),o=ne(t,/^hover:bg-/),a=ne(t,/^border/),i=ne(t,/^shadow/),s=t.includes("cursor-pointer"),p=ne(t,/^rounded/),d=ne(t,/^(?:min-w|max-w|w)-/),c=ne(t,/^text-(?:white|black|\[[^\]]+\]|[a-z]+-\d{2,3})$/),l=n||o||i;if(!(r||e==="a"&&(l||a||s||p&&d)))return{shouldNormalize:!1,variant:"none",size:"base",iconOnly:!1};let m="none";a&&!n&&!o?m="outline":(l||n&&c)&&(m="primary");let y=t.includes("rounded-full")&&(t.includes("p-2")||t.includes("p-1")||t.includes("p-2.5")),f=ne(t,/^size-(?:6|7|8|9|10|11|12)$/),h=y||f,w=Qo(t),x=t.includes("text-sm")||t.includes("text-xs"),S=t.includes("text-lg")||t.includes("text-xl"),A="base";return w&&w<=40||x?A="sm":(w&&w>=48||S)&&(A="lg"),{shouldNormalize:!0,variant:m,size:A,iconOnly:h}}function ta(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 ra(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(z=>/^badge(?:-|$)/.test(String(z))))return{shouldNormalize:!1,variantClass:"",outline:!1,sizeClass:"",pastel:null};let n=t.map(z=>re(z)).filter(z=>z.breakpoint==="base").map(z=>String(z.base)),o=n.some(z=>/^rounded(?:-|$)/.test(z)),a=n.some(z=>/^px-/.test(z)),i=n.some(z=>/^py-/.test(z)),s=a&&i,p=n.includes("text-xs")||n.includes("text-sm"),d=n.includes("text-lg")||n.includes("text-xl"),c=n.map(z=>z.match(/^bg-([a-z]+)-(\d{2,3})(?:\/\d{1,3})?$/)).find(Boolean),l=n.map(z=>z.match(/^text-([a-z]+)-(\d{2,3})(?:\/\d{1,3})?$/)).find(Boolean),u=n.map(z=>z.match(/^border-([a-z]+)-(\d{2,3})$/)).find(Boolean),g=Number(c?.[2]),m=Number(l?.[2]),y=!!(c&&Number.isFinite(g)&&g<=300),f=n.some(z=>/^border(?:-|$)/.test(z)),h=!!(c||l||u),w=[o,s,p,y||f].filter(Boolean).length;if(!(h&&w>=3))return{shouldNormalize:!1,variantClass:"",outline:!1,sizeClass:"",pastel:null};let S=c&&c[1]||l&&l[1]||u&&u[1]||"",A=ta(S),L=f&&!y,F=p?"badge-sm":d?"badge-lg":"",I=y?{family:S,bgShade:Number.isFinite(g)?g:200,textShade:Number.isFinite(m)?m:700}:null;return{shouldNormalize:!0,variantClass:I?"":A,outline:L,sizeClass:F,pastel:I}}function na(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 oa(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(f=>/^card(?:-|$)/.test(String(f))))return{shouldNormalize:!1,cardVariantClass:"",surfaceClass:""};let a=t.map(f=>re(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)),d=a.some(f=>/^(?:p|px|py|pt|pb|pl|pr)-/.test(f)),c=a.map(f=>f.match(/^bg-([a-z]+)-?(\d{2,3})?$/)).find(Boolean),l=a.includes("bg-white")||!!c;if(!([i,s||p,l,d].filter(Boolean).length>=3))return{shouldNormalize:!1,cardVariantClass:"",surfaceClass:""};let m="card-basic";p?m="card-elevated":s&&(m="card-outlined");let y="";return p?y="surface-elevated":c?y=na(c[1],c[2]):l&&(y="surface-base"),{shouldNormalize:!0,cardVariantClass:m,surfaceClass:y}}function aa({tagName:t,originalClassValue:e,policy:r,summary:n,preflightHints:o={}}){if(yo.has(t))return R(n,"table.strict-tags.no-classes"),"";let a=String(e).split(/\s+/).filter(Boolean),i=ea(a,t),s=ra(a,t,i),p=oa(a,t,i,s),d=/^h[1-6]$/.test(t),c=["i","svg"].includes(t)||a.some(C=>/^fa(?:[a-z-]+)?$/i.test(String(C||""))||/^fa-/.test(String(C||""))),l=new Set,u={},g={},m=!1,y="",f="",h=!1,w="";a.forEach(C=>{let b=re(C),k=b.base;if(bo.some(N=>N.test(k))){n.ignored+=1,R(n,"cleanup.non-pds-class");return}let E=Dr(C)||Dr(k);if(E&&(n.totalTailwind+=1),/^space-y-/.test(k)){m=!0,y=y||C,f=f||Yo(C),n.ignored+=1,R(n,"layout.spacing.space-y-to-stack");return}if(/^space-x-/.test(k)){let N=String(k).match(/^space-x-(\d+)$/);if(N){let _=`gap-${N[1]}`,Y=Ht.get(_);if(Y&&G(r,"spacing")){l.add(Y),h=!0,w=w||C,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(k)&&b.breakpoint!=="base"){let N=Wr(k);if(Number.isFinite(N)&&G(r,"grid")){u[b.breakpoint]=N,n.mapped+=1,R(n,"intent.layout.responsive-grid-to-auto");return}if(!G(r,"grid")){n.policySkipped+=1,j(n,"Skipped responsive grid mapping because layout.utilities.grid=false.");return}}if(/^flex-(?:row|col)$/.test(k)&&b.breakpoint!=="base"){if(G(r,"flex")){g[b.breakpoint]=k,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(k)&&b.breakpoint==="base"){let N=Wr(k);Number.isFinite(N)&&G(r,"grid")&&(u.base=N)}let T=ho.get(k);if(T&&b.breakpoint==="base"){if(!G(r,T.gate)){n.policySkipped+=1,j(n,`Skipped ${k} because layout.utilities.${T.gate}=false.`);return}T.pds.forEach(N=>{N&&l.add(N)}),n.mapped+=1,R(n,T.id);return}if(Ht.has(k)&&b.breakpoint==="base"){if(!G(r,"spacing")){n.policySkipped+=1,j(n,"Skipped gap utility because layout.utilities.spacing=false.");return}l.add(Ht.get(k)),n.mapped+=1,R(n,"layout.spacing.gap-scale");return}if(Ir.has(k)&&b.breakpoint==="base"){if(!G(r,"container")){n.policySkipped+=1,j(n,"Skipped max-width utility because layout.utilities.container=false.");return}l.add(Ir.get(k)),n.mapped+=1,R(n,"layout.container.max-width");return}if(i.shouldNormalize&&E){let N=String(k||"");if(b.breakpoint==="base"&&["flex-1","grow","flex-grow"].includes(N)){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(N)||N.startsWith("hover:")){n.ignored+=1,R(n,"intent.component.button.normalize");return}}if(d&&/^(?:text-(?:xs|sm|base|lg|xl|\dxl|white|black|\[[^\]]+\]|[a-z]+-\d{2,3})|font-|leading-|tracking-|uppercase|lowercase|capitalize)/.test(k)){n.ignored+=1,n.intentHits+=1,R(n,"intent.typography.heading-semantic");return}if(s.shouldNormalize&&E){let N=String(k||"");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,R(n,"intent.component.badge.normalize");return}}if(p.shouldNormalize&&E){let N=String(k||"");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,R(n,"intent.component.card.normalize");return}}let B=Go(k);if(B&&b.breakpoint==="base"){l.add(B),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(k)){if(c||t==="a"&&!i.shouldNormalize){let _=Or(k,b.breakpoint,b.variants);if(_){let Y=ce(n,`${t}-color-${k}`,_.declaration,_.breakpoint,_.pseudo);if(Y){l.add(Y),n.mapped+=1,n.intentHits+=1,R(n,c?"intent.icon.color-preserve":"intent.typography.link-active-preserve");return}}}n.ignored+=1,R(n,"style.color");return}let V=Or(k,b.breakpoint,b.variants);if(V){let N=ce(n,k,V.declaration,V.breakpoint,V.pseudo);if(N){l.add(N),n.mapped+=1,n.intentHits+=1,R(n,V.ruleId),b.breakpoint!=="base"&&j(n,`Generated responsive import fallback for ${C}.`);return}}for(let N of U.ignoredPatterns)if(N.pattern.test(k)){n.ignored+=1,R(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,Uo(n,C);return}l.add(C)}),m&&G(r,"spacing")&&(l.add(f||"stack-md"),n.mapped+=1,n.intentHits+=1,j(n,`Mapped ${y} to ${f||"stack-md"}.`)),h&&G(r,"spacing")&&j(n,`Mapped ${w} to gap utility.`);let x=Hr(u);if(x&&G(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(x),n.intentHits+=1,R(n,"intent.layout.responsive-grid-to-auto"),j(n,`Collapsed responsive grid columns to ${x}.`)):G(r,"grid")&&st.filter(b=>b!=="base"&&Number.isFinite(u[b])).forEach(b=>{let k=u[b],E=Vo(b,k);if(E){l.add("grid"),l.add(E),n.intentHits+=1,R(n,"intent.layout.responsive-grid-to-auto"),j(n,`Mapped ${b}:grid-cols-${k} to ${E}.`);return}let T=ce(n,`grid-cols-${k}`,`grid-template-columns:repeat(${k}, minmax(0, 1fr))`,b);T&&(l.add("grid"),l.add(T),n.intentHits+=1,R(n,"fallback.import-style.grid-cols-responsive"),j(n,`Mapped ${b}:grid-cols-${k} to responsive import fallback for exact columns.`))}),G(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"))&&G(r,"spacing")&&(Jo(l)||Ko(l)||h||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(C=>/^grid-cols-\d+$/.test(re(C).base))&&l.has("grid")&&!Xo(l)){let C=Hr(u);C?(l.add(C),n.intentHits+=1,R(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,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 L=a.some(C=>/^(?:bg-white|shadow|shadow-md|shadow-lg)$/.test(C)),F=a.some(C=>/^rounded/.test(C));if(["div","section","article","li","aside"].includes(t)&&L&&F&&(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,R(n,"intent.component.card")),t==="button"||t==="a"){let C=a.some(E=>/^bg-(?:[a-z]+-)?[4567]00$/.test(E))&&a.includes("text-white"),b=a.some(E=>/^border/.test(E))&&!C,k=a.includes("p-2")&&a.includes("rounded-full");C?(l.delete("surface-base"),l.delete("surface-elevated"),l.add("btn-primary"),n.intentHits+=1,R(n,"intent.component.button.primary")):b&&(l.add("btn-outline"),n.intentHits+=1,R(n,"intent.component.button.outline")),k&&(l.add("icon-only"),R(n,"intent.component.button.icon-only"))}if(i.shouldNormalize){for(let b of Array.from(l))String(b).startsWith("import-")&&l.delete(b);["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(b=>l.delete(b)),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 b of Array.from(l))String(b).startsWith("import-")&&l.delete(b);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(b=>l.delete(b)),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 b=je(s.pastel.family,String(s.pastel.bgShade||200)),k=je(s.pastel.family,String(s.pastel.textShade||700));if(b&&k){let E=`badge-pastel-${s.pastel.family}-${s.pastel.bgShade}-${s.pastel.textShade}`,T=ce(n,E,`background-color:${b};color:${k}`,"base");T&&(l.add(T),R(n,"intent.component.badge.pastel-preserve"),j(n,`Preserved pastel badge tone using ${T}.`))}}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 b of Array.from(l))String(b).startsWith("import-")&&l.delete(b);["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(b=>l.delete(b)),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(t==="a"&&!i.shouldNormalize&&a.some(b=>b.includes("hover:text")||b==="transition-colors")){let b=ce(n,"link-reset","text-decoration:none");b&&l.add(b),n.intentHits+=1,R(n,"intent.typography.link-treatment")}if(t==="footer"&&(l.has("surface-base")||a.some(b=>/^bg-/.test(b)))&&(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(t)){let C=ce(n,"list-reset","list-style:none;margin:0;padding:0");C&&(l.add(C),n.intentHits+=1,R(n,"intent.preflight.list-reset"))}if(o?.anchorReset&&t==="a"&&!i.shouldNormalize){let C=ce(n,"anchor-reset","color:inherit;text-decoration:inherit");C&&(l.add(C),n.intentHits+=1,R(n,"intent.preflight.anchor-reset"))}let z=new Set(["div","section","article","aside","nav","main","header","footer","form","fieldset","ul","ol","li"]),P=a.some(C=>{let b=re(C).base;return/^(?:flex|grid|container|gap-|space-[xy]-|items-|justify-|content-|place-|self-|w-|h-|min-|max-)/.test(b)});return l.size===0&&z.has(t)&&P&&(l.add("stack-sm"),j(n,`Added stack-sm fallback for <${t}> with unmapped classes.`)),Array.from(l).join(" ")}function ia(t="",e={}){let r=String(t||""),n=qo(e.config||{}),o=jo(e.config||{}),a=Oo(),i=Ho(r,a),p=ko(i.html,a).replace(/<([a-zA-Z][\w:-]*)([^>]*?)\sclass\s*=\s*(["'])(.*?)\3([^>]*)>/gs,(A,L,F,I,$,z)=>{let P=aa({tagName:String(L||"").toLowerCase(),originalClassValue:$,policy:n,summary:a,preflightHints:i.hints}),C=String(P||"").trim();return C?`<${L}${F} class=${I}${C}${I}${z}>`:`<${L}${F}${z}>`}),d=No(Lo(To(Eo(p,a),a),a),a,{config:e.config||{}}),c=Bo(a,o),l=_o(d,c);c&&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=Zo(a,16),g=a.mapped+a.ignored+a.policySkipped,m=a.totalTailwind>0?g/a.totalTailwind:1,y=a.totalTailwind>0?a.unknown/a.totalTailwind:0,f=.42+m*.45+Math.min(a.intentHits,4)*.025-y*.18,h=Math.max(.15,Math.min(.96,Number(f.toFixed(2)))),w=[`pds-import: rulebook=${Nr} confidence=${Math.round(h*100)}%`,`pds-import: tailwind=${a.totalTailwind} mapped=${a.mapped} ignored=${a.ignored} policySkipped=${a.policySkipped} unknown=${a.unknown}`];u.length&&w.push(`pds-import: unknown-tailwind=${u.join(", ")}`),a.notes.length&&w.push(`pds-import: notes=${a.notes.join(" | ")}`);let x=`<!-- ${w.join(` -->
3746
+ ${e}`}function Cn(e=""){if(!e)return!1;if(e.includes(":")||e.includes("["))return!0;let t=e.split("-")[0];return Na.includes(t)}function ae(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=>St.includes(a))||"base",base:r,variants:n}}function ti(){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 ri(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 ni(e=""){return String(e||"").toLowerCase().includes("cdn.tailwindcss.com")?{listReset:!0,anchorReset:!0}:{listReset:!1,anchorReset:!1}}function oi(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=ri(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=ni(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 ai(e,t){let r=e.unknownTokens.get(t)||0;e.unknownTokens.set(t,r+1)}function ii(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 Ln(e){let t=String(e).match(/^grid-cols-(\d+)$/);return t?Number(t[1]):null}function Mn(e={}){let t=St.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 si(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 li(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 ci(e=""){let t=ae(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 di(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 pi(e=new Set){return Array.from(e).some(t=>/^stack-(?:xs|sm|md|lg|xl)$/.test(String(t||"")))}function ui(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 gi(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 se(e=[],t){return!Array.isArray(e)||!t?!1:e.some(r=>t.test(String(r)))}function mi(e=[]){for(let t of e){let r=ae(t);if(r.breakpoint!=="base")continue;let n=String(r.base).match(/^h-(.+)$/);if(!n)continue;let o=He(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 fi(e=[],t=""){let r=t==="button",n=se(e,/^bg-/),o=se(e,/^hover:bg-/),a=se(e,/^border/),i=se(e,/^shadow/),s=e.includes("cursor-pointer"),p=se(e,/^rounded/),c=se(e,/^(?:min-w|max-w|w)-/),d=se(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 v=e.includes("rounded-full")&&(e.includes("p-2")||e.includes("p-1")||e.includes("p-2.5")),h=se(e,/^size-(?:6|7|8|9|10|11|12)$/),b=v||h,k=mi(e),w=e.includes("text-sm")||e.includes("text-xs"),$=e.includes("text-lg")||e.includes("text-xl"),T="base";return k&&k<=40||w?T="sm":(k&&k>=48||$)&&(T="lg"),{shouldNormalize:!0,variant:m,size:T,iconOnly:b}}function hi(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 bi(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(L=>/^badge(?:-|$)/.test(String(L))))return{shouldNormalize:!1,variantClass:"",outline:!1,sizeClass:"",pastel:null};let n=e.map(L=>ae(L)).filter(L=>L.breakpoint==="base").map(L=>String(L.base)),o=n.some(L=>/^rounded(?:-|$)/.test(L)),a=n.some(L=>/^px-/.test(L)),i=n.some(L=>/^py-/.test(L)),s=a&&i,p=n.includes("text-xs")||n.includes("text-sm"),c=n.includes("text-lg")||n.includes("text-xl"),d=n.map(L=>L.match(/^bg-([a-z]+)-(\d{2,3})(?:\/\d{1,3})?$/)).find(Boolean),l=n.map(L=>L.match(/^text-([a-z]+)-(\d{2,3})(?:\/\d{1,3})?$/)).find(Boolean),u=n.map(L=>L.match(/^border-([a-z]+)-(\d{2,3})$/)).find(Boolean),g=Number(d?.[2]),m=Number(l?.[2]),v=!!(d&&Number.isFinite(g)&&g<=300),h=n.some(L=>/^border(?:-|$)/.test(L)),b=!!(d||l||u),k=[o,s,p,v||h].filter(Boolean).length;if(!(b&&k>=3))return{shouldNormalize:!1,variantClass:"",outline:!1,sizeClass:"",pastel:null};let $=d&&d[1]||l&&l[1]||u&&u[1]||"",T=hi($),A=h&&!v,_=p?"badge-sm":c?"badge-lg":"",I=v?{family:$,bgShade:Number.isFinite(g)?g:200,textShade:Number.isFinite(m)?m:700}:null;return{shouldNormalize:!0,variantClass:I?"":T,outline:A,sizeClass:_,pastel:I}}function yi(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 vi(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(h=>/^card(?:-|$)/.test(String(h))))return{shouldNormalize:!1,cardVariantClass:"",surfaceClass:""};let a=e.map(h=>ae(h)).filter(h=>h.breakpoint==="base").map(h=>String(h.base)),i=a.some(h=>/^rounded(?:-|$)/.test(h)),s=a.some(h=>/^border(?:$|-)/.test(h)),p=a.some(h=>/^shadow(?:$|-)/.test(h)),c=a.some(h=>/^(?:p|px|py|pt|pb|pl|pr)-/.test(h)),d=a.map(h=>h.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 v="";return p?v="surface-elevated":d?v=yi(d[1],d[2]):l&&(v="surface-base"),{shouldNormalize:!0,cardVariantClass:m,surfaceClass:v}}function xi({tagName:e,originalClassValue:t,policy:r,summary:n,preflightHints:o={}}){if(_a.has(e))return R(n,"table.strict-tags.no-classes"),"";let a=String(t).split(/\s+/).filter(Boolean),i=fi(a,e),s=bi(a,e,i),p=vi(a,e,i,s),c=/^h[1-6]$/.test(e),d=["i","svg"].includes(e)||a.some(C=>/^fa(?:[a-z-]+)?$/i.test(String(C||""))||/^fa-/.test(String(C||""))),l=new Set,u={},g={},m=!1,v="",h="",b=!1,k="";a.forEach(C=>{let y=ae(C),S=y.base;if(Ra.some(N=>N.test(S))){n.ignored+=1,R(n,"cleanup.non-pds-class");return}let M=Cn(C)||Cn(S);if(M&&(n.totalTailwind+=1),/^space-y-/.test(S)){m=!0,v=v||C,h=h||ci(C),n.ignored+=1,R(n,"layout.spacing.space-y-to-stack");return}if(/^space-x-/.test(S)){let N=String(S).match(/^space-x-(\d+)$/);if(N){let D=`gap-${N[1]}`,Y=cr.get(D);if(Y&&J(r,"spacing")){l.add(Y),b=!0,k=k||C,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)&&y.breakpoint!=="base"){let N=Ln(S);if(Number.isFinite(N)&&J(r,"grid")){u[y.breakpoint]=N,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)&&y.breakpoint!=="base"){if(J(r,"flex")){g[y.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)&&y.breakpoint==="base"){let N=Ln(S);Number.isFinite(N)&&J(r,"grid")&&(u.base=N)}let E=Aa.get(S);if(E&&y.breakpoint==="base"){if(!J(r,E.gate)){n.policySkipped+=1,j(n,`Skipped ${S} because layout.utilities.${E.gate}=false.`);return}E.pds.forEach(N=>{N&&l.add(N)}),n.mapped+=1,R(n,E.id);return}if(cr.has(S)&&y.breakpoint==="base"){if(!J(r,"spacing")){n.policySkipped+=1,j(n,"Skipped gap utility because layout.utilities.spacing=false.");return}l.add(cr.get(S)),n.mapped+=1,R(n,"layout.spacing.gap-scale");return}if(wn.has(S)&&y.breakpoint==="base"){if(!J(r,"container")){n.policySkipped+=1,j(n,"Skipped max-width utility because layout.utilities.container=false.");return}l.add(wn.get(S)),n.mapped+=1,R(n,"layout.container.max-width");return}if(i.shouldNormalize&&M){let N=String(S||"");if(y.breakpoint==="base"&&["flex-1","grow","flex-grow"].includes(N)){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(N)||N.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&&M){let N=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(N)||N.startsWith("hover:")){n.ignored+=1,R(n,"intent.component.badge.normalize");return}}if(p.shouldNormalize&&M){let N=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(N)||N.startsWith("hover:")){n.ignored+=1,R(n,"intent.component.card.normalize");return}}let B=si(S);if(B&&y.breakpoint==="base"){l.add(B),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=zn(S,y.breakpoint,y.variants);if(D){let Y=me(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=zn(S,y.breakpoint,y.variants);if(K){let N=me(n,S,K.declaration,K.breakpoint,K.pseudo);if(N){l.add(N),n.mapped+=1,n.intentHits+=1,R(n,K.ruleId),y.breakpoint!=="base"&&j(n,`Generated responsive import fallback for ${C}.`);return}}for(let N of G.ignoredPatterns)if(N.pattern.test(S)){n.ignored+=1,R(n,N.id),N.id==="style.spacing.atomic"&&(n.removedAtomicSpacingCount+=1),N.id==="style.positioning.atomic"&&(n.removedAtomicPositioningCount+=1);return}if(M){n.unknown+=1,ai(n,C);return}l.add(C)}),m&&J(r,"spacing")&&(l.add(h||"stack-md"),n.mapped+=1,n.intentHits+=1,j(n,`Mapped ${v} to ${h||"stack-md"}.`)),b&&J(r,"spacing")&&j(n,`Mapped ${k} to gap utility.`);let w=Mn(u);if(w&&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(w),n.intentHits+=1,R(n,"intent.layout.responsive-grid-to-auto"),j(n,`Collapsed responsive grid columns to ${w}.`)):J(r,"grid")&&St.filter(y=>y!=="base"&&Number.isFinite(u[y])).forEach(y=>{let S=u[y],M=li(y,S);if(M){l.add("grid"),l.add(M),n.intentHits+=1,R(n,"intent.layout.responsive-grid-to-auto"),j(n,`Mapped ${y}:grid-cols-${S} to ${M}.`);return}let E=me(n,`grid-cols-${S}`,`grid-template-columns:repeat(${S}, minmax(0, 1fr))`,y);E&&(l.add("grid"),l.add(E),n.intentHits+=1,R(n,"fallback.import-style.grid-cols-responsive"),j(n,`Mapped ${y}: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")&&(di(l)||pi(l)||b||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(C=>/^grid-cols-\d+$/.test(ae(C).base))&&l.has("grid")&&!ui(l)){let C=Mn(u);C?(l.add(C),n.intentHits+=1,R(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,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 A=a.some(C=>/^(?:bg-white|shadow|shadow-md|shadow-lg)$/.test(C)),_=a.some(C=>/^rounded/.test(C));if(["div","section","article","li","aside"].includes(e)&&A&&_&&(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,R(n,"intent.component.card")),e==="button"||e==="a"){let C=a.some(M=>/^bg-(?:[a-z]+-)?[4567]00$/.test(M))&&a.includes("text-white"),y=a.some(M=>/^border/.test(M))&&!C,S=a.includes("p-2")&&a.includes("rounded-full");C?(l.delete("surface-base"),l.delete("surface-elevated"),l.add("btn-primary"),n.intentHits+=1,R(n,"intent.component.button.primary")):y&&(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 y of Array.from(l))String(y).startsWith("import-")&&l.delete(y);["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(y=>l.delete(y)),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 y of Array.from(l))String(y).startsWith("import-")&&l.delete(y);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(y=>l.delete(y)),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 y=qe(s.pastel.family,String(s.pastel.bgShade||200)),S=qe(s.pastel.family,String(s.pastel.textShade||700));if(y&&S){let M=`badge-pastel-${s.pastel.family}-${s.pastel.bgShade}-${s.pastel.textShade}`,E=me(n,M,`background-color:${y};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 y of Array.from(l))String(y).startsWith("import-")&&l.delete(y);["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(y=>l.delete(y)),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(y=>y.includes("hover:text")||y==="transition-colors")){let y=me(n,"link-reset","text-decoration:none");y&&l.add(y),n.intentHits+=1,R(n,"intent.typography.link-treatment")}if(e==="footer"&&(l.has("surface-base")||a.some(y=>/^bg-/.test(y)))&&(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 C=me(n,"list-reset","list-style:none;margin:0;padding:0");C&&(l.add(C),n.intentHits+=1,R(n,"intent.preflight.list-reset"))}if(o?.anchorReset&&e==="a"&&!i.shouldNormalize){let C=me(n,"anchor-reset","color:inherit;text-decoration:inherit");C&&(l.add(C),n.intentHits+=1,R(n,"intent.preflight.anchor-reset"))}let L=new Set(["div","section","article","aside","nav","main","header","footer","form","fieldset","ul","ol","li"]),P=a.some(C=>{let y=ae(C).base;return/^(?:flex|grid|container|gap-|space-[xy]-|items-|justify-|content-|place-|self-|w-|h-|min-|max-)/.test(y)});return l.size===0&&L.has(e)&&P&&(l.add("stack-sm"),j(n,`Added stack-sm fallback for <${e}> with unmapped classes.`)),Array.from(l).join(" ")}function wi(e="",t={}){let r=String(e||""),n=ii(t.config||{}),o=Za(t.config||{}),a=ti(),i=oi(r,a),p=Ia(i.html,a).replace(/<([a-zA-Z][\w:-]*)([^>]*?)\sclass\s*=\s*(["'])(.*?)\3([^>]*)>/gs,(T,A,_,I,z,L)=>{let P=xi({tagName:String(A||"").toLowerCase(),originalClassValue:z,policy:n,summary:a,preflightHints:i.hints}),C=String(P||"").trim();return C?`<${A}${_} class=${I}${C}${I}${L}>`:`<${A}${_}${L}>`}),c=Ya(Ga(Ua(Ha(p,a),a),a),a,{config:t.config||{}}),d=Qa(a,o),l=ei(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=gi(a,16),g=a.mapped+a.ignored+a.policySkipped,m=a.totalTailwind>0?g/a.totalTailwind:1,v=a.totalTailwind>0?a.unknown/a.totalTailwind:0,h=.42+m*.45+Math.min(a.intentHits,4)*.025-v*.18,b=Math.max(.15,Math.min(.96,Number(h.toFixed(2)))),k=[`pds-import: rulebook=${xn} confidence=${Math.round(b*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 w=`<!-- ${k.join(` -->
3747
3747
  <!-- `)} -->
3748
- ${l}`,S=[];return a.unknown>0&&S.push({severity:"warning",message:`Converted with ${a.unknown} unknown Tailwind utilities requiring manual review.`}),a.policySkipped>0&&S.push({severity:"info",message:`Skipped ${a.policySkipped} utility mappings due to PDS config policy.`}),u.length&&S.push({severity:"info",message:`Top unknown utilities: ${u.slice(0,8).join(", ")}`}),{html:x,confidence:h,issues:S,meta:{rulebookVersion:Nr,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:!!c,breakpoints:o}}}function sa(){return{rulesJsonPath:mo,...U,directMappings:U.directMappings.map(t=>({id:t.id,tw:t.tw,pds:t.pds,gate:t.gate||null})),ignoredPatterns:U.ignoredPatterns.map(t=>({id:t.id,pattern:String(t.pattern),reason:t.reason}))}}function la(t){let e=String(t||"").match(/#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})\b/);return e?e[0]:null}function ca(t){return String(t||"").replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;").replaceAll('"',"&quot;").replaceAll("'","&#39;")}function Vr(t){return/<\s*[a-z][^>]*>/i.test(String(t||""))}function da(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 Z(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 pa(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 ua(t=""){let e=String(t||"").trim(),r=Z(e);if(r)return r;let n=e.match(/var\(\s*(--[^\s,)]+)\s*(?:,[^)]+)?\)/i);if(!n)return"";let o=pa(n[1]);return Z(o)}function ga(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 Z(o[1]);let a=r.match(/^bg-([a-z]+)-(\d{2,3})$/i);if(!a)return"";let i=je(a[1],a[2]);return i?ua(i):""}function Ur(t=""){return String(t||"").split(/\s+/).map(r=>r.trim()).filter(Boolean).map(r=>ga(r)).filter(Boolean)}function ma(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 fa(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 ha(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 ba(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 Yr(t=""){let e=Z(t);return e?e.startsWith("#")?ba(e):e.startsWith("rgb")?ha(e):null:null}function ya(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 qr(t=""){let e=String(t||"").trim().toLowerCase();if(!e||e==="transparent")return!0;let r=Yr(e);return r&&Number.isFinite(r.a)?r.a<=.04:!1}function va(t=[],e=[]){let r=t.map(p=>Z(p)).filter(p=>p&&!qr(p)),n=Ie(r);if(n)return{color:n,source:"root"};let o=e.map(p=>Z(p)).filter(p=>p&&!qr(p)),a=o.filter(p=>{let d=Yr(p),c=ya(d);return Number.isFinite(c)?c>=.72:!1}),i=Ie(a);if(i)return{color:i,source:"fallback-bright"};let s=Ie(o);return s?{color:s,source:"fallback"}:{color:"",source:"none"}}function xe(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 xa(t=""){let e=String(t||""),r=new Map,n=[],o=[],a=[],i=[],s=[],p=[],d=[],c=/#(?:[0-9a-f]{3,8})\b|rgba?\([^)]*\)|hsla?\([^)]*\)/gi,l=u=>{(String(u||"").match(c)||[]).forEach(m=>{let y=Z(m);y&&n.push(y)})};if(typeof DOMParser<"u"&&Vr(e))try{let g=new DOMParser().parseFromString(e,"text/html");Array.from(g.querySelectorAll("style")).map(x=>x.textContent||"").forEach(x=>{xe(x,r),l(x),ma(x).forEach(S=>{if(!fa(S.selector))return;let A=xe(S.body,new Map),L=J(A,["background","background-color"]).map(F=>Z(F)).filter(Boolean);o.push(...L)})}),Array.from(g.querySelectorAll("[style]")).forEach(x=>{let S=x.getAttribute("style")||"";xe(S,r),l(S)}),["html","body","main","#app","#root",".app",".page"].forEach(x=>{let S=g.querySelector(x);if(!S)return;let A=S.getAttribute("style")||"";if(!A)return;let L=xe(A,new Map),F=J(L,["background","background-color"]).map($=>Z($)).filter(Boolean);o.push(...F);let I=Ur(S.getAttribute("class")||"");a.push(...I)}),Array.from(g.querySelectorAll("[class]")).forEach(x=>{let S=te(x.getAttribute("class")||"");p.push(...S);let A=Ur(x.getAttribute("class")||"");i.push(...A);let L=String(x.tagName||"").toLowerCase(),F=L==="button"||L==="a",I=S.some($=>/^bg-/.test(String(re($).base||"")));F&&I&&A.length&&s.push(...A)});let w=g.body?.textContent||"";w.trim()&&d.push(w),l(g.documentElement?.outerHTML||e)}catch{xe(e,r),l(e),d.push(e)}else xe(e,r),l(e),d.push(e);return{declarations:r,colorValues:n,rootBackgroundColors:o,rootClassBackgroundColors:a,classBackgroundColors:i,buttonBackgroundColors:s,classTokens:p,textCorpus:d.join(`
3749
- `)}}function Ie(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 J(t,e=[]){return e.flatMap(r=>t.get(r)||[])}function wa(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 ka(t={}){let e=t&&typeof t=="object"?t:{},r=M?.configRelations&&typeof M.configRelations=="object"?M.configRelations:{},n=new Set(Object.keys(r)),o=null;if(typeof M?.buildConfigFormSchema=="function")try{o=M.buildConfigFormSchema(e)?.schema||null}catch{o=null}return!o&&M?.configFormSchema?.schema&&(o=M.configFormSchema.schema),{design:e,schema:o,allowedPaths:n}}function Sa(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 $a(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 D(t,e,r){if(r==null||r===""||t.allowedPaths.size&&!t.allowedPaths.has(e))return;let n=wa(t.schema,e),o=Sa(n,r);o==null||o===""||($a(t.patch,e,o),t.inferredPaths.add(e))}function de(t=[]){let e=t.map(n=>da(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 Ca(t=[]){let e=t.map(r=>String(r||"").split(",")[0]||"").map(r=>r.trim().replace(/^['"]|['"]$/g,"")).filter(Boolean);return Ie(e)}function za(t){let e=Number(t);return Number.isFinite(e)?e<=.75?"hairline":e<=1.5?"thin":e<=2.5?"medium":"thick":"thin"}function Ma(t=""){let r=String(re(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 Ea(t=[]){let e=t.map(n=>Ma(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 qt(t={}){let e=String(t.html||"");if(!e.trim())return O({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=ka(t.config||{}),n=xa(e),o={patch:{},inferredPaths:new Set,allowedPaths:r.allowedPaths,schema:r.schema},a=J(n.declarations,["color"]).map(q=>Z(q)).filter(Boolean),i=J(n.declarations,["background","background-color"]).map(q=>Z(q)).filter(Boolean),s=[...i,...a,...n.colorValues].filter(Boolean),p=Array.from(new Set(s)),d=[...n.rootBackgroundColors||[]],c=[...n.rootClassBackgroundColors||[]],l=d.length?d:c,u=[...i,...n.classBackgroundColors||[]],g=va(l,u),m=g.color;D(o,"colors.background",m||i[0]||p[0]);let y=p.filter(q=>q&&q!==m),h=Ie(n.buttonBackgroundColors||[])||y[0]||p[0],w=y.filter(q=>q&&q!==h);D(o,"colors.primary",h),D(o,"colors.secondary",w[0]||h||p[0]),D(o,"colors.accent",w[1]||w[0]||h||p[0]);let x=J(n.declarations,["font-family"]),S=Ca(x);D(o,"typography.fontFamilyBody",S),D(o,"typography.fontFamilyHeadings",S),D(o,"typography.fontFamilyMono",/mono|code/i.test(n.textCorpus)?"JetBrains Mono":"");let A=J(n.declarations,["font-size"]),L=de(A);D(o,"typography.baseSize",L);let F=J(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=de(F);D(o,"spatialRhythm.baseUnit",I),D(o,"spatialRhythm.inputPadding",I),D(o,"spatialRhythm.buttonPadding",I);let $=J(n.declarations,["border-radius"]),z=de($)||Ea(n.classTokens||[]);D(o,"shape.radiusSize",z);let P=J(n.declarations,["border-width","border-top-width","border-right-width","border-bottom-width","border-left-width"]),C=de(P);D(o,"shape.borderWidth",za(C));let b=J(n.declarations,["max-width"]),k=de(b);D(o,"layout.containerMaxWidth",k),D(o,"layout.maxWidth",k);let E=J(n.declarations,["min-height","height"]),T=de(E);D(o,"layout.buttonMinHeight",T),D(o,"layout.inputMinHeight",T);let B=J(n.declarations,["transition-duration"]),W=de(B.map(q=>{let $e=String(q||"").trim().toLowerCase(),oe=Number.parseFloat($e);return Number.isFinite(oe)?$e.endsWith("ms")?oe:$e.endsWith("s")?oe*1e3:oe:null}));D(o,"behavior.transitionSpeed",W);let N=J(n.declarations,["box-shadow"]).length>0;D(o,"layers.baseShadowOpacity",N?.2:.08);let _=Array.from(o.inferredPaths),Y=_.reduce((q,$e)=>{let oe=$e.split(".")[0];return q[oe]=(q[oe]||0)+1,q},{}),Se=_.length?Math.min(.92,.35+_.length*.02):.25;return O({source:"html-inference",type:String(t.sourceType||"design-inference"),confidence:Se,issues:_.length?[]:[{severity:"warning",message:"Could not infer enough design signals from input."}],designPatch:o.patch,meta:{extractedPathCount:_.length,extractedPaths:_,categoryCoverage:Y,colorSampleSize:p.length,backgroundInference:{source:g.source,candidates:{root:l.length,declaration:i.length,classBased:(n.classBackgroundColors||[]).length}}}})}function Jr(t={}){let e=String(t.input||"").trim(),r=String(t.sourceType||"unknown");if(!e)return O({source:r,type:r,confidence:0,issues:[{severity:"error",message:"No input provided."}],meta:{conversionMode:"none"}});if(Vr(e)){let n=lt({html:e,config:t.config||{}});return O({source:r,type:r,confidence:n.confidence,issues:n.issues,template:n.template,meta:{...n.meta||{},conversionMode:"html-to-pds"}})}return O({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>${ca(e)}</pre></article>`},meta:{conversionMode:"text-preview"}})}function lt(t={}){let e=String(t.html||"").trim();if(!e)return O({source:"tailwind",type:"tailwind-html",confidence:0,issues:[{severity:"error",message:"No HTML provided."}]});let r=ia(e,{config:t.config||{}});return O({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 Gt(t={}){let e=String(t.text||"").trim();if(!e)return O({source:"brand",type:"brand-guidelines",confidence:0,issues:[{severity:"error",message:"No brand guideline text provided."}]});let r=la(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"),O({source:"brand",type:"brand-guidelines",confidence:r?.68:.52,issues:o,designPatch:n,meta:{inferred:{primaryColor:r}}})}var Vt="convert-only",Kr="adopt-design-and-convert";function Ta(t){return String(t||"").trim().toLowerCase()===Kr?Kr:Vt}function Xr(...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 Zr(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 Be(t={},e={}){return{...t&&typeof t=="object"?t:{},...e&&typeof e=="object"?e:{}}}function tn(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]=tn(r[n]&&typeof r[n]=="object"?r[n]:{},o):r[n]=o}),r}function Qr(t){if(typeof structuredClone=="function")try{return structuredClone(t)}catch{}return JSON.parse(JSON.stringify(t||{}))}function Aa(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 en(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=tn(Qr(t||{}),Qr(e||{})),s=lr(i,{minContrast:a,minMutedContrast:3,extendedChecks:!0}),p=Array.isArray(s?.issues)?s.issues.map(d=>Aa(d)):[];return{ok:!!s?.ok,blocked:!s?.ok,issues:p,report:{ok:!!s?.ok,minContrast:a,issues:Array.isArray(s?.issues)?s.issues:[]}}}function La(){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 Ra(t={}){let e=String(t.sourceType||""),r=Ta(t.importMode),n=String(t.input||""),o=t.config||null;if(e==="template"){let a=Mr(t.templateId,t);return a.meta=Be(a.meta,{importMode:r}),a}if(e==="tailwind-html"){let a=lt({html:n,config:o});if(r===Vt)return a.meta=Be(a.meta,{importMode:r}),a;let i=qt({html:n,config:o,sourceType:e}),s=en(o||{},i.designPatch||{}),p=s.blocked?{}:i.designPatch,d=s.blocked?[{severity:"error",path:"/colors",message:"Import blocked: inferred design patch failed accessibility contrast validation."},...s.issues]:[];return O({source:a.source||"tailwind",type:e,confidence:Zr([a.confidence,i.confidence]),issues:Xr(a.issues,i.issues,d),template:a.template,designPatch:p,meta:Be(a.meta,{importMode:r,inference:i.meta,validation:s.report,validationBlocked:s.blocked})})}if(e==="brand-guidelines"){let a=Jr({input:n,sourceType:e,config:o});if(r===Vt)return a.meta=Be(a.meta,{importMode:r}),a;let i=Gt({text:n}),s=qt({html:n,config:o,sourceType:e}),p={...i.designPatch&&typeof i.designPatch=="object"?i.designPatch:{},...s.designPatch&&typeof s.designPatch=="object"?s.designPatch:{}},d=en(o||{},p||{}),c=d.blocked?{}:p,l=d.blocked?[{severity:"error",path:"/colors",message:"Import blocked: inferred design patch failed accessibility contrast validation."},...d.issues]:[];return O({source:"brand",type:e,confidence:Zr([a.confidence,i.confidence,s.confidence]),issues:Xr(a.issues,i.issues,s.issues,l),template:a.template,designPatch:c,meta:Be(a.meta,{importMode:r,inference:s.meta,brandHeuristics:i.meta,validation:d.report,validationBlocked:d.blocked})})}return e==="figma-json"||e==="ux-pilot"||e==="google-stitch"?O({source:e,type:e,confidence:0,issues:[{severity:"info",message:`${e} adapter is not implemented yet in this phase.`}],meta:{importMode:r}}):O({source:e||"unknown",type:"unknown",confidence:0,issues:[{severity:"error",message:"Unsupported import source type."}],meta:{importMode:r}})}var Fa="pds-live-import-history";var ee="imports",ct=null;function Pa(){return typeof globalThis<"u"&&typeof globalThis.indexedDB<"u"}function Q(t){return typeof t=="string"?t:""}function dt(t){return Array.isArray(t)?t:[]}function pt(t){return t&&typeof t=="object"?t:{}}function ut(){return Pa()?ct||(ct=new Promise((t,e)=>{let r=globalThis.indexedDB.open(Fa,1);r.onupgradeneeded=()=>{let n=r.result;if(!n.objectStoreNames.contains(ee)){let o=n.createObjectStore(ee,{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."))}),ct):Promise.resolve(null)}function gt(t){return new Promise((e,r)=>{t.onsuccess=()=>e(t.result),t.onerror=()=>r(t.error||new Error("IndexedDB operation failed."))})}function Na(t={}){let e=Date.now(),r=Number.isFinite(Number(t.createdAt))?Number(t.createdAt):e,n=new Date(r).toISOString(),o=dt(t.issues).map(p=>({severity:Q(p?.severity||"info"),message:Q(p?.message||"")})),a=dt(t.notes).filter(p=>typeof p=="string"),i=dt(t.unknownTailwindTokens).filter(p=>typeof p=="string"),s=dt(t.appliedRules).filter(p=>typeof p=="string");return{createdAt:r,createdAtIso:n,sourceType:Q(t.sourceType||"unknown"),importMode:Q(t.importMode||"convert-only"),source:Q(t.source||"unknown"),type:Q(t.type||"unknown"),fileName:Q(t.fileName||""),fileSize:Number.isFinite(Number(t.fileSize))?Number(t.fileSize):0,mimeType:Q(t.mimeType||""),fileContents:Q(t.fileContents||""),convertedHtml:Q(t.convertedHtml||""),confidence:Number.isFinite(Number(t.confidence))?Number(t.confidence):0,notes:a,issues:o,coverage:pt(t.coverage),unknownTailwindTokens:i,appliedRules:s,importStyleSheetInjected:!!t.importStyleSheetInjected,templateName:Q(t.templateName||""),designPatch:pt(t.designPatch),meta:pt(t.meta),resultSnapshot:pt(t.resultSnapshot)}}async function Ia(t={}){let e=await ut();if(!e)return null;let r=Na(t),o=e.transaction(ee,"readwrite").objectStore(ee);return{id:await gt(o.add(r)),...r}}async function ja(t={}){let e=await ut();if(!e)return[];let r=Number.isFinite(Number(t.limit))?Math.max(1,Number(t.limit)):30,o=e.transaction(ee,"readonly").objectStore(ee);return(await gt(o.getAll())||[]).sort((i,s)=>Number(s?.createdAt||0)-Number(i?.createdAt||0)).slice(0,r)}async function Ba(t){let e=await ut();if(!e)return null;let r=Number(t);if(!Number.isFinite(r))return null;let o=e.transaction(ee,"readonly").objectStore(ee);return await gt(o.get(r))||null}async function _a(){let t=await ut();if(!t)return;let r=t.transaction(ee,"readwrite").objectStore(ee);await gt(r.clear())}export{_a as clearLiveImportHistory,Gt as convertBrandGuidelinesToPatch,lt as convertTailwindHtmlToPds,O as createImportResult,sa as describeTailwindConversionRules,Ba as getLiveImportHistoryEntry,La as getLiveImportSources,Xn as isImportResult,ja as listLiveImportHistory,zr as listLiveTemplates,fr as loadGoogleFont,Qe as loadLiveTemplateCatalog,Ra as runLiveImport,Ia as saveLiveImportHistory,Yn as startLive};
3748
+ ${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:w,confidence:b,issues:$,meta:{rulebookVersion:xn,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 ki(){return{rulesJsonPath:Ea,...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 Si(e){let t=String(e||"").match(/#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})\b/);return t?t[0]:null}function $i(e){return String(e||"").replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;").replaceAll('"',"&quot;").replaceAll("'","&#39;")}function Rn(e){return/<\s*[a-z][^>]*>/i.test(String(e||""))}function zi(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 Ci(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 Li(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=Ci(n[1]);return ee(o)}function Mi(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=qe(a[1],a[2]);return i?Li(i):""}function En(e=""){return String(e||"").split(/\s+/).map(r=>r.trim()).filter(Boolean).map(r=>Mi(r)).filter(Boolean)}function Ei(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 Ti(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 Ai(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 Ri(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 _n(e=""){let t=ee(e);return t?t.startsWith("#")?Ri(t):t.startsWith("rgb")?Ai(t):null:null}function _i(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 Tn(e=""){let t=String(e||"").trim().toLowerCase();if(!t||t==="transparent")return!0;let r=_n(t);return r&&Number.isFinite(r.a)?r.a<=.04:!1}function Fi(e=[],t=[]){let r=e.map(p=>ee(p)).filter(p=>p&&!Tn(p)),n=Ue(r);if(n)return{color:n,source:"root"};let o=t.map(p=>ee(p)).filter(p=>p&&!Tn(p)),a=o.filter(p=>{let c=_n(p),d=_i(c);return Number.isFinite(d)?d>=.72:!1}),i=Ue(a);if(i)return{color:i,source:"fallback-bright"};let s=Ue(o);return s?{color:s,source:"fallback"}:{color:"",source:"none"}}function ze(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 Pi(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 v=ee(m);v&&n.push(v)})};if(typeof DOMParser<"u"&&Rn(t))try{let g=new DOMParser().parseFromString(t,"text/html");Array.from(g.querySelectorAll("style")).map(w=>w.textContent||"").forEach(w=>{ze(w,r),l(w),Ei(w).forEach($=>{if(!Ti($.selector))return;let T=ze($.body,new Map),A=X(T,["background","background-color"]).map(_=>ee(_)).filter(Boolean);o.push(...A)})}),Array.from(g.querySelectorAll("[style]")).forEach(w=>{let $=w.getAttribute("style")||"";ze($,r),l($)}),["html","body","main","#app","#root",".app",".page"].forEach(w=>{let $=g.querySelector(w);if(!$)return;let T=$.getAttribute("style")||"";if(!T)return;let A=ze(T,new Map),_=X(A,["background","background-color"]).map(z=>ee(z)).filter(Boolean);o.push(..._);let I=En($.getAttribute("class")||"");a.push(...I)}),Array.from(g.querySelectorAll("[class]")).forEach(w=>{let $=oe(w.getAttribute("class")||"");p.push(...$);let T=En(w.getAttribute("class")||"");i.push(...T);let A=String(w.tagName||"").toLowerCase(),_=A==="button"||A==="a",I=$.some(z=>/^bg-/.test(String(ae(z).base||"")));_&&I&&T.length&&s.push(...T)});let k=g.body?.textContent||"";k.trim()&&c.push(k),l(g.documentElement?.outerHTML||t)}catch{ze(t,r),l(t),c.push(t)}else ze(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(`
3749
+ `)}}function Ue(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 X(e,t=[]){return t.flatMap(r=>e.get(r)||[])}function Ni(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 Ii(e={}){let t=e&&typeof e=="object"?e:{},r=f?.configRelations&&typeof f.configRelations=="object"?f.configRelations:{},n=new Set(Object.keys(r)),o=null;if(typeof f?.buildConfigFormSchema=="function")try{o=f.buildConfigFormSchema(t)?.schema||null}catch{o=null}return!o&&f?.configFormSchema?.schema&&(o=f.configFormSchema.schema),{design:t,schema:o,allowedPaths:n}}function ji(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 Bi(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=Ni(e.schema,t),o=ji(n,r);o==null||o===""||(Bi(e.patch,t,o),e.inferredPaths.add(t))}function fe(e=[]){let t=e.map(n=>zi(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 Oi(e=[]){let t=e.map(r=>String(r||"").split(",")[0]||"").map(r=>r.trim().replace(/^['"]|['"]$/g,"")).filter(Boolean);return Ue(t)}function Di(e){let t=Number(e);return Number.isFinite(t)?t<=.75?"hairline":t<=1.5?"thin":t<=2.5?"medium":"thick":"thin"}function Wi(e=""){let r=String(ae(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 Hi(e=[]){let t=e.map(n=>Wi(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 pr(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=Ii(e.config||{}),n=Pi(t),o={patch:{},inferredPaths:new Set,allowedPaths:r.allowedPaths,schema:r.schema},a=X(n.declarations,["color"]).map(V=>ee(V)).filter(Boolean),i=X(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=Fi(l,u),m=g.color;H(o,"colors.background",m||i[0]||p[0]);let v=p.filter(V=>V&&V!==m),b=Ue(n.buttonBackgroundColors||[])||v[0]||p[0],k=v.filter(V=>V&&V!==b);H(o,"colors.primary",b),H(o,"colors.secondary",k[0]||b||p[0]),H(o,"colors.accent",k[1]||k[0]||b||p[0]);let w=X(n.declarations,["font-family"]),$=Oi(w);H(o,"typography.fontFamilyBody",$),H(o,"typography.fontFamilyHeadings",$),H(o,"typography.fontFamilyMono",/mono|code/i.test(n.textCorpus)?"JetBrains Mono":"");let T=X(n.declarations,["font-size"]),A=fe(T);H(o,"typography.baseSize",A);let _=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=fe(_);H(o,"spatialRhythm.baseUnit",I),H(o,"spatialRhythm.inputPadding",I),H(o,"spatialRhythm.buttonPadding",I);let z=X(n.declarations,["border-radius"]),L=fe(z)||Hi(n.classTokens||[]);H(o,"shape.radiusSize",L);let P=X(n.declarations,["border-width","border-top-width","border-right-width","border-bottom-width","border-left-width"]),C=fe(P);H(o,"shape.borderWidth",Di(C));let y=X(n.declarations,["max-width"]),S=fe(y);H(o,"layout.containerMaxWidth",S),H(o,"layout.maxWidth",S);let M=X(n.declarations,["min-height","height"]),E=fe(M);H(o,"layout.buttonMinHeight",E),H(o,"layout.inputMinHeight",E);let B=X(n.declarations,["transition-duration"]),O=fe(B.map(V=>{let Ee=String(V||"").trim().toLowerCase(),le=Number.parseFloat(Ee);return Number.isFinite(le)?Ee.endsWith("ms")?le:Ee.endsWith("s")?le*1e3:le:null}));H(o,"behavior.transitionSpeed",O);let N=X(n.declarations,["box-shadow"]).length>0;H(o,"layers.baseShadowOpacity",N?.2:.08);let D=Array.from(o.inferredPaths),Y=D.reduce((V,Ee)=>{let le=Ee.split(".")[0];return V[le]=(V[le]||0)+1,V},{}),Me=D.length?Math.min(.92,.35+D.length*.02):.25;return W({source:"html-inference",type:String(e.sourceType||"design-inference"),confidence:Me,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 Fn(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(Rn(t)){let n=$t({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>${$i(t)}</pre></article>`},meta:{conversionMode:"text-preview"}})}function $t(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=wi(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 ur(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=Si(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 gr="convert-only",Pn="adopt-design-and-convert";function Ui(e){return String(e||"").trim().toLowerCase()===Pn?Pn:gr}function Nn(...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 In(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 Ge(e={},t={}){return{...e&&typeof e=="object"?e:{},...t&&typeof t=="object"?t:{}}}function On(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]=On(r[n]&&typeof r[n]=="object"?r[n]:{},o):r[n]=o}),r}function jn(e){if(typeof structuredClone=="function")try{return structuredClone(e)}catch{}return JSON.parse(JSON.stringify(e||{}))}function qi(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 Bn(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=On(jn(e||{}),jn(t||{})),s=Er(i,{minContrast:a,minMutedContrast:3,extendedChecks:!0}),p=Array.isArray(s?.issues)?s.issues.map(c=>qi(c)):[];return{ok:!!s?.ok,blocked:!s?.ok,issues:p,report:{ok:!!s?.ok,minContrast:a,issues:Array.isArray(s?.issues)?s.issues:[]}}}function Gi(){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 Vi(e={}){let t=String(e.sourceType||""),r=Ui(e.importMode),n=String(e.input||""),o=e.config||null;if(t==="template"){let a=rn(e.templateId,e);return a.meta=Ge(a.meta,{importMode:r}),a}if(t==="tailwind-html"){let a=$t({html:n,config:o});if(r===gr)return a.meta=Ge(a.meta,{importMode:r}),a;let i=pr({html:n,config:o,sourceType:t}),s=Bn(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:In([a.confidence,i.confidence]),issues:Nn(a.issues,i.issues,c),template:a.template,designPatch:p,meta:Ge(a.meta,{importMode:r,inference:i.meta,validation:s.report,validationBlocked:s.blocked})})}if(t==="brand-guidelines"){let a=Fn({input:n,sourceType:t,config:o});if(r===gr)return a.meta=Ge(a.meta,{importMode:r}),a;let i=ur({text:n}),s=pr({html:n,config:o,sourceType:t}),p={...i.designPatch&&typeof i.designPatch=="object"?i.designPatch:{},...s.designPatch&&typeof s.designPatch=="object"?s.designPatch:{}},c=Bn(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:In([a.confidence,i.confidence,s.confidence]),issues:Nn(a.issues,i.issues,s.issues,l),template:a.template,designPatch:d,meta:Ge(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 Ki="pds-live-import-history";var ne="imports",zt=null;function Ji(){return typeof globalThis<"u"&&typeof globalThis.indexedDB<"u"}function te(e){return typeof e=="string"?e:""}function Ct(e){return Array.isArray(e)?e:[]}function Lt(e){return e&&typeof e=="object"?e:{}}function Mt(){return Ji()?zt||(zt=new Promise((e,t)=>{let r=globalThis.indexedDB.open(Ki,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."))}),zt):Promise.resolve(null)}function Et(e){return new Promise((t,r)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>r(e.error||new Error("IndexedDB operation failed."))})}function Yi(e={}){let t=Date.now(),r=Number.isFinite(Number(e.createdAt))?Number(e.createdAt):t,n=new Date(r).toISOString(),o=Ct(e.issues).map(p=>({severity:te(p?.severity||"info"),message:te(p?.message||"")})),a=Ct(e.notes).filter(p=>typeof p=="string"),i=Ct(e.unknownTailwindTokens).filter(p=>typeof p=="string"),s=Ct(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:Lt(e.coverage),unknownTailwindTokens:i,appliedRules:s,importStyleSheetInjected:!!e.importStyleSheetInjected,templateName:te(e.templateName||""),designPatch:Lt(e.designPatch),meta:Lt(e.meta),resultSnapshot:Lt(e.resultSnapshot)}}async function Xi(e={}){let t=await Mt();if(!t)return null;let r=Yi(e),o=t.transaction(ne,"readwrite").objectStore(ne);return{id:await Et(o.add(r)),...r}}async function Zi(e={}){let t=await Mt();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 Et(o.getAll())||[]).sort((i,s)=>Number(s?.createdAt||0)-Number(i?.createdAt||0)).slice(0,r)}async function Qi(e){let t=await Mt();if(!t)return null;let r=Number(e);if(!Number.isFinite(r))return null;let o=t.transaction(ne,"readonly").objectStore(ne);return await Et(o.get(r))||null}async function es(){let e=await Mt();if(!e)return;let r=e.transaction(ne,"readwrite").objectStore(ne);await Et(r.clear())}export{es as clearLiveImportHistory,ur as convertBrandGuidelinesToPatch,$t as convertTailwindHtmlToPds,W as createImportResult,ki as describeTailwindConversionRules,Qi as getLiveImportHistoryEntry,Gi as getLiveImportSources,sa as isImportResult,Zi as listLiveImportHistory,tn as listLiveTemplates,Ur as loadGoogleFont,ut as loadLiveTemplateCatalog,Vi as runLiveImport,Xi as saveLiveImportHistory,oa as startLive};