@pure-ds/storybook 0.7.46 → 0.7.53
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.storybook/preview.js +14 -14
- package/dist/pds-reference.json +271 -41
- package/package.json +2 -2
- package/public/assets/js/app.js +8 -6
- package/public/assets/js/pds-ask.js +6 -6
- package/public/assets/js/pds-enhancers.js +1 -1
- package/public/assets/js/pds-manager.js +511 -291
- package/public/assets/js/pds.js +2 -2
- package/public/assets/pds/components/pds-live-edit.js +1 -1
- package/public/assets/pds/components/pds-toaster.js +55 -11
- package/public/assets/pds/core/pds-ask.js +6 -6
- package/public/assets/pds/core/pds-enhancers.js +1 -1
- package/public/assets/pds/core/pds-manager.js +511 -291
- package/public/assets/pds/core.js +2 -2
- package/public/assets/pds/pds-css-complete.json +544 -55
- package/public/assets/pds/pds.css-data.json +154 -0
- package/public/assets/pds/styles/pds-components.css +12 -11
- package/public/assets/pds/styles/pds-components.css.js +24 -22
- package/public/assets/pds/styles/pds-styles.css +12 -11
- package/public/assets/pds/styles/pds-styles.css.js +24 -22
- package/public/assets/pds/vscode-custom-data.json +30 -0
- package/src/js/app.js +7 -4
- package/src/js/common/common.js +120 -23
- package/src/js/common/toast.js +8 -0
- package/src/js/pds-core/pds-config.js +63 -10
- package/src/js/pds-core/pds-enhancers.js +6 -1
- package/src/js/pds-core/pds-generator.js +823 -217
- package/src/js/pds-core/pds-live.js +3 -4
- package/src/js/pds.d.ts +19 -6
- package/src/js/pds.js +11 -6
- package/stories/components/PdsFab.stories.js +2 -2
- package/stories/components/PdsForm.stories.js +3 -3
- package/stories/components/PdsIcon.stories.js +2 -2
- package/stories/components/PdsRating.stories.js +1 -1
- package/stories/components/PdsScrollrow.stories.js +10 -10
- package/stories/components/PdsSplitpanel.stories.js +8 -8
- package/stories/foundations/Colors.stories.js +1289 -187
- package/stories/foundations/HTMLDefaults.stories.js +3 -3
- package/stories/foundations/Icons.stories.js +20 -20
- package/stories/foundations/SmartSurfaces.stories.js +11 -14
- package/stories/patterns/InteractiveStates.stories.js +5 -5
- package/stories/primitives/Badges.stories.js +1 -0
- package/stories/primitives/Cards.stories.js +3 -3
- package/stories/reference/pds-object-docs.js +7 -2
- package/stories/utils/PdsToast.stories.js +62 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
var qn=Object.defineProperty;var _t=(e,t)=>()=>(e&&(t=e(e=0)),t);var Ft=(e,t)=>{for(var r in t)qn(e,r,{get:t[r],enumerable:!0})};var br={};Ft(br,{enums:()=>w});var w,Fe=_t(()=>{w={FontWeights:{light:300,normal:400,medium:500,semibold:600,bold:700},LineHeights:{tight:1.25,normal:1.5,relaxed:1.75},BorderWidths:{hairline:.5,thin:1,medium:2,thick:3},RadiusSizes:{none:0,small:4,medium:8,large:16,xlarge:24,xxlarge:32},ShadowDepths:{none:"none",light:"0 1px 2px 0 rgba(0, 0, 0, 0.05)",medium:"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)",deep:"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)",extreme:"0 25px 50px -12px rgba(0, 0, 0, 0.25)"},TransitionSpeeds:{fast:150,normal:250,slow:350},AnimationEasings:{linear:"linear",ease:"ease","ease-in":"ease-in","ease-out":"ease-out","ease-in-out":"ease-in-out",bounce:"cubic-bezier(0.68, -0.55, 0.265, 1.55)"},TouchTargetSizes:{compact:36,standard:44,comfortable:48,spacious:56},LinkStyles:{inline:"inline",block:"block",button:"button"},FocusStyles:{ring:"ring",outline:"outline",border:"border",glow:"glow"},TabSizes:{compact:2,standard:4,wide:8},SelectIcons:{chevron:"chevron",arrow:"arrow",caret:"caret",none:"none"},IconSizes:{xs:16,sm:20,md:24,lg:32,xl:48,"2xl":64,"3xl":96}}});var Tr={};Ft(Tr,{default:()=>no,findComponentForElement:()=>Xn,getAllSelectors:()=>Qn,getAllTags:()=>ro,getByCategory:()=>to,ontology:()=>q,searchOntology:()=>eo});function de(e,t){if(!e||!t)return!1;try{return e.matches(t)}catch{return!1}}function Er(e,t){if(!e||!t||!e.closest)return null;try{return e.closest(t)}catch{return null}}function Xn(e,{maxDepth:t=5}={}){if(!e||e.closest&&e.closest(".showcase-toc"))return null;let r=e,n=0;for(;r&&n<t;){if(n++,r.tagName==="DS-SHOWCASE")return null;if(r.classList&&r.classList.contains("showcase-section")){r=r.parentElement;continue}for(let a of PDS.ontology.enhancements){let i=a.selector||a;if(de(r,i))return{element:r,componentType:"enhanced-component",displayName:a.description||i,id:a.id}}if(r.tagName==="FIELDSET"){let a=r.getAttribute("role");if(a==="group"||a==="radiogroup")return{element:r,componentType:"form-group",displayName:a==="radiogroup"?"radio group":"form group"}}if(r.tagName==="LABEL"&&r.querySelector&&r.querySelector("input,select,textarea"))return{element:r,componentType:"form-control",displayName:"label with input"};let o=r.closest?r.closest("label"):null;if(o&&o.querySelector&&o.querySelector("input,select,textarea"))return{element:o,componentType:"form-control",displayName:"label with input"};for(let a of PDS.ontology.primitives){for(let i of a.selectors||[]){let s=String(i||"").trim();if(s.includes("*")){if(s.startsWith(".")){let c=s.slice(1).replace(/\*/g,"");if(r.classList&&Array.from(r.classList).some(u=>u.startsWith(c)))return{element:r,componentType:"pds-primitive",displayName:a.name||a.id,id:a.id,tags:a.tags};let d=r.parentElement,l=0;for(;d&&l<t;){if(d.classList&&Array.from(d.classList).some(u=>u.startsWith(c))&&d.tagName!=="DS-SHOWCASE")return{element:d,componentType:"pds-primitive",displayName:a.name||a.id,id:a.id,tags:a.tags};d=d.parentElement,l++}continue}continue}if(de(r,s))return{element:r,componentType:"pds-primitive",displayName:a.name||a.id,id:a.id,tags:a.tags};let p=Er(r,s);if(p&&p.tagName!=="DS-SHOWCASE")return{element:p,componentType:"pds-primitive",displayName:a.name||a.id,id:a.id,tags:a.tags}}if(r.classList){let i=Array.from(r.classList);for(let s of a.selectors||[])if(typeof s=="string"&&s.includes("*")&&s.startsWith(".")){let p=s.slice(1).replace(/\*/g,"");if(i.some(c=>c.startsWith(p)))return{element:r,componentType:"pds-primitive",displayName:a.name||a.id,id:a.id,tags:a.tags}}}}for(let a of PDS.ontology.layoutPatterns||[])for(let i of a.selectors||[]){let s=String(i||"").trim();if(s.includes("*")){if(s.startsWith(".")){let c=s.slice(1).replace(/\*/g,"");if(r.classList&&Array.from(r.classList).some(d=>d.startsWith(c)))return{element:r,componentType:"layout-pattern",displayName:a.name||a.id,id:a.id,tags:a.tags}}continue}if(de(r,s))return{element:r,componentType:"layout-pattern",displayName:a.name||a.id,id:a.id,tags:a.tags};let p=Er(r,s);if(p&&p.tagName!=="DS-SHOWCASE")return{element:p,componentType:"layout-pattern",displayName:a.name||a.id,id:a.id,tags:a.tags}}if(r.tagName&&r.tagName.includes("-")){let a=r.tagName.toLowerCase(),i=PDS.ontology.components.find(s=>s.selectors.includes(a));return{element:r,componentType:"web-component",displayName:i?.name||a,id:i?.id||a,tags:i?.tags}}if(r.tagName==="BUTTON"){let a=r.querySelector&&r.querySelector("pds-icon");return{element:r,componentType:"button",displayName:a?"button with icon":"button",id:"button"}}if(de(r,"pds-icon")||r.closest&&r.closest("pds-icon")){let a=de(r,"pds-icon")?r:r.closest("pds-icon");return{element:a,componentType:"icon",displayName:`pds-icon (${a.getAttribute&&a.getAttribute("icon")||"unknown"})`,id:"pds-icon"}}if(de(r,"nav[data-dropdown]")||r.closest&&r.closest("nav[data-dropdown]"))return{element:de(r,"nav[data-dropdown]")?r:r.closest("nav[data-dropdown]"),componentType:"navigation",displayName:"dropdown menu",id:"dropdown"};r=r.parentElement}return null}function Qn(){let e=[];for(let t of PDS.ontology.primitives)e.push(...t.selectors||[]);for(let t of PDS.ontology.components)e.push(...t.selectors||[]);for(let t of PDS.ontology.layoutPatterns||[])e.push(...t.selectors||[]);return Array.from(new Set(e))}function eo(e,t={}){let r=e.toLowerCase(),n=[],o=(a,i)=>{for(let s of a)(s.id?.toLowerCase().includes(r)||s.name?.toLowerCase().includes(r)||s.description?.toLowerCase().includes(r)||s.tags?.some(c=>c.toLowerCase().includes(r))||s.category?.toLowerCase().includes(r)||s.selectors?.some(c=>c.toLowerCase().includes(r)))&&n.push({...s,type:i})};return(!t.type||t.type==="primitive")&&o(q.primitives,"primitive"),(!t.type||t.type==="component")&&o(q.components,"component"),(!t.type||t.type==="layout")&&o(q.layoutPatterns,"layout"),(!t.type||t.type==="enhancement")&&o(q.enhancements,"enhancement"),n}function to(e){let t=e.toLowerCase();return{primitives:q.primitives.filter(r=>r.category===t),components:q.components.filter(r=>r.category===t),layouts:q.layoutPatterns.filter(r=>r.category===t)}}function ro(){let e=new Set;return q.primitives.forEach(t=>t.tags?.forEach(r=>e.add(r))),q.components.forEach(t=>t.tags?.forEach(r=>e.add(r))),q.layoutPatterns.forEach(t=>t.tags?.forEach(r=>e.add(r))),q.enhancements.forEach(t=>t.tags?.forEach(r=>e.add(r))),Array.from(e).sort()}var q,no,Bt=_t(()=>{q={meta:{name:"Pure Design System Ontology",version:"1.0.0",description:"Complete metadata registry for PDS primitives, components, utilities, and tokens"},tokens:{colors:{semantic:["primary","secondary","accent","success","warning","danger","info"],neutral:["gray"],shades:[50,100,200,300,400,500,600,700,800,900,950],surface:["base","subtle","elevated","sunken","overlay","inverse","translucent"],text:["default","muted","subtle","inverse","primary","success","warning","danger","info"]},spacing:{scale:["1","2","3","4","5","6","8","10","12","16","20","24"],semantic:["xs","sm","md","lg","xl"]},typography:{families:["heading","body","mono"],sizes:["xs","sm","base","lg","xl","2xl","3xl","4xl","5xl"],weights:["light","normal","medium","semibold","bold"]},radius:{scale:["none","sm","base","md","lg","xl","2xl","full"]},shadows:{scale:["none","sm","base","md","lg","xl","inner"]},themes:["light","dark"],breakpoints:{sm:640,md:768,lg:1024,xl:1280}},primitives:[{id:"badge",name:"Badge / Pill",description:"Inline status indicators and labels",selectors:[".badge",".badge-primary",".badge-secondary",".badge-success",".badge-info",".badge-warning",".badge-danger",".badge-outline",".badge-sm",".badge-lg",".pill",".tag",".chip"],tags:["status","label","indicator","inline"],category:"feedback"},{id:"card",name:"Card",description:"Content container with padding, border-radius, and optional shadow",selectors:[".card",".card-basic",".card-elevated",".card-outlined",".card-interactive"],tags:["container","content","grouping"],category:"container"},{id:"surface",name:"Surface",description:"Smart surface classes with automatic text/background color handling",selectors:[".surface-base",".surface-subtle",".surface-elevated",".surface-sunken",".surface-overlay",".surface-inverse",".surface-translucent",".surface-translucent-25",".surface-translucent-50",".surface-translucent-75",".surface-primary",".surface-secondary",".surface-success",".surface-warning",".surface-danger",".surface-info"],tags:["background","theming","color","container"],category:"theming"},{id:"callout",name:"Callout",description:"Contextual information and notification messages",selectors:[".callout",".callout-info",".callout-success",".callout-warning",".callout-danger",".callout-error",".callout-dismissible"],tags:["feedback","message","notification","status","information"],category:"feedback"},{id:"empty-state",name:"Empty State",description:"Empty state layout for missing data or onboarding",selectors:[".empty-state"],tags:["empty","no-data","zero","placeholder","onboarding","state"],category:"feedback"},{id:"dialog",name:"Dialog",description:"Modal dialog element",selectors:["dialog",".dialog"],tags:["modal","overlay","popup","modal"],category:"overlay"},{id:"divider",name:"Divider",description:"Horizontal rule with optional label",selectors:["hr","hr[data-content]"],tags:["separator","line","content-divider"],category:"layout"},{id:"table",name:"Table",description:"Data tables with responsive and styling variants",selectors:["table",".table-responsive",".table-striped",".table-bordered",".table-compact",".data-table"],tags:["data","grid","tabular","responsive"],category:"data"},{id:"button",name:"Button",description:"Interactive button element with variants",selectors:["button",".btn-primary",".btn-secondary",".btn-outline",".btn-danger",".btn-sm",".btn-xs",".btn-lg",".btn-working",".icon-only"],tags:["interactive","action","cta","form"],category:"action"},{id:"fieldset",name:"Fieldset Group",description:"Form field grouping for radio/checkbox groups",selectors:["fieldset[role='group']","fieldset[role='radiogroup']","fieldset.buttons"],tags:["form","grouping","radio","checkbox"],category:"form"},{id:"label-field",name:"Label+Input",description:"Semantic label wrapping form input",selectors:["label","label:has(input)","label:has(select)","label:has(textarea)"],tags:["form","input","accessibility"],category:"form"},{id:"accordion",name:"Accordion",description:"Collapsible content sections",selectors:[".accordion",".accordion-item","details","details > summary"],tags:["expandable","collapsible","disclosure"],category:"disclosure"},{id:"icon",name:"Icon",description:"SVG icon element with size and color variants",selectors:["pds-icon",".icon-xs",".icon-sm",".icon-md",".icon-lg",".icon-xl",".icon-primary",".icon-secondary",".icon-accent",".icon-success",".icon-warning",".icon-danger",".icon-info",".icon-muted",".icon-subtle",".icon-text",".icon-text-start",".icon-text-end"],tags:["graphic","symbol","visual"],category:"media"},{id:"figure",name:"Figure/Media",description:"Figure element for images with captions",selectors:["figure","figure.media","figcaption"],tags:["image","media","caption"],category:"media"},{id:"gallery",name:"Gallery",description:"Image gallery grid",selectors:[".gallery",".gallery-grid",".img-gallery"],tags:["images","grid","collection"],category:"media"},{id:"form",name:"Form Container",description:"Form styling and layout",selectors:["form",".form-container",".form-actions",".field-description"],tags:["form","input","submission"],category:"form"},{id:"navigation",name:"Navigation",description:"Navigation elements and menus",selectors:["nav","nav[data-dropdown]","menu","nav menu li"],tags:["menu","links","routing"],category:"navigation"}],components:[{id:"pds-tabstrip",name:"Tab Strip",description:"Tabbed interface component",selectors:["pds-tabstrip"],tags:["tabs","navigation","panels"],category:"navigation"},{id:"pds-drawer",name:"Drawer",description:"Slide-out panel overlay",selectors:["pds-drawer"],tags:["panel","overlay","sidebar"],category:"overlay"},{id:"pds-fab",name:"FAB",description:"Floating Action Button with expandable satellite actions",selectors:["pds-fab"],tags:["button","action","floating","interactive"],category:"action"},{id:"pds-upload",name:"Upload",description:"File upload component with drag-and-drop",selectors:["pds-upload"],tags:["file","upload","drag-drop","form"],category:"form"},{id:"pds-icon",name:"Icon",description:"SVG icon web component",selectors:["pds-icon"],tags:["icon","graphic","svg"],category:"media"},{id:"pds-toaster",name:"Toaster",description:"Toast notification container",selectors:["pds-toaster"],tags:["notification","toast","feedback"],category:"feedback"},{id:"pds-form",name:"JSON Form",description:"Auto-generated form from JSON Schema",selectors:["pds-form"],tags:["form","schema","auto-generate"],category:"form"},{id:"pds-live-edit",name:"Live Edit",description:"Contextual live editing for PDS design settings",selectors:["pds-live-edit"],tags:["editor","live","config","tooling"],category:"tooling"},{id:"pds-splitpanel",name:"Split Panel",description:"Resizable split pane layout",selectors:["pds-splitpanel"],tags:["layout","resize","panels"],category:"layout"},{id:"pds-scrollrow",name:"Scroll Row",description:"Horizontal scrolling row with snap points",selectors:["pds-scrollrow"],tags:["scroll","horizontal","carousel"],category:"layout"},{id:"pds-richtext",name:"Rich Text",description:"Rich text editor component",selectors:["pds-richtext"],tags:["editor","wysiwyg","text"],category:"form"},{id:"pds-calendar",name:"Calendar",description:"Date picker calendar component",selectors:["pds-calendar"],tags:["date","picker","calendar"],category:"form"}],layoutPatterns:[{id:"container",name:"Container",description:"Centered max-width wrapper with padding",selectors:[".container"],tags:["wrapper","centered","max-width","page"],category:"structure"},{id:"grid",name:"Grid",description:"CSS Grid layout container",selectors:[".grid"],tags:["layout","columns","css-grid"],category:"layout"},{id:"grid-cols",name:"Grid Columns",description:"Fixed column count grids",selectors:[".grid-cols-1",".grid-cols-2",".grid-cols-3",".grid-cols-4",".grid-cols-6"],tags:["columns","fixed","grid"],category:"layout"},{id:"grid-auto",name:"Auto-fit Grid",description:"Responsive auto-fit grid with minimum widths",selectors:[".grid-auto-sm",".grid-auto-md",".grid-auto-lg",".grid-auto-xl"],tags:["responsive","auto-fit","fluid"],category:"layout"},{id:"flex",name:"Flex Container",description:"Flexbox layout with direction and wrap modifiers",selectors:[".flex",".flex-wrap",".flex-col",".flex-row"],tags:["flexbox","layout","alignment"],category:"layout"},{id:"grow",name:"Flex Grow",description:"Fill remaining flex space",selectors:[".grow"],tags:["flex","expand","fill"],category:"layout"},{id:"stack",name:"Stack",description:"Vertical flex layout with predefined gaps",selectors:[".stack-sm",".stack-md",".stack-lg",".stack-xl"],tags:["vertical","spacing","column"],category:"layout"},{id:"gap",name:"Gap",description:"Spacing between flex/grid children",selectors:[".gap-0",".gap-xs",".gap-sm",".gap-md",".gap-lg",".gap-xl"],tags:["spacing","margin","gutters"],category:"spacing"},{id:"items",name:"Items Alignment",description:"Cross-axis alignment for flex/grid",selectors:[".items-start",".items-center",".items-end",".items-stretch",".items-baseline"],tags:["alignment","vertical","cross-axis"],category:"alignment"},{id:"justify",name:"Justify Content",description:"Main-axis alignment for flex/grid",selectors:[".justify-start",".justify-center",".justify-end",".justify-between",".justify-around",".justify-evenly"],tags:["alignment","horizontal","main-axis"],category:"alignment"},{id:"max-width",name:"Max-Width",description:"Content width constraints",selectors:[".max-w-sm",".max-w-md",".max-w-lg",".max-w-xl"],tags:["width","constraint","readable"],category:"sizing"},{id:"section",name:"Section Spacing",description:"Vertical padding for content sections",selectors:[".section",".section-lg"],tags:["spacing","vertical","padding"],category:"spacing"},{id:"mobile-stack",name:"Mobile Stack",description:"Stack on mobile, row on desktop",selectors:[".mobile-stack"],tags:["responsive","mobile","breakpoint"],category:"responsive"}],utilities:{text:{alignment:[".text-left",".text-center",".text-right"],color:[".text-muted"],overflow:[".truncate"]},backdrop:{base:[".backdrop"],variants:[".backdrop-light",".backdrop-dark"],blur:[".backdrop-blur-sm",".backdrop-blur-md",".backdrop-blur-lg"]},shadow:{scale:[".shadow-sm",".shadow-base",".shadow-md",".shadow-lg",".shadow-xl",".shadow-inner",".shadow-none"]},border:{gradient:[".border-gradient",".border-gradient-primary",".border-gradient-accent",".border-gradient-secondary",".border-gradient-soft",".border-gradient-medium",".border-gradient-strong"],glow:[".border-glow",".border-glow-sm",".border-glow-lg",".border-glow-primary",".border-glow-accent",".border-glow-success",".border-glow-warning",".border-glow-danger"],combined:[".border-gradient-glow"]},media:{image:[".img-gallery",".img-rounded-sm",".img-rounded-md",".img-rounded-lg",".img-rounded-xl",".img-rounded-full",".img-inline"],video:[".video-responsive"],figure:[".figure-responsive"]},effects:{glass:[".liquid-glass"]}},responsive:{prefixes:["sm","md","lg"],utilities:{grid:[":grid-cols-2",":grid-cols-3",":grid-cols-4"],flex:[":flex-row"],text:[":text-sm",":text-lg",":text-xl"],spacing:[":p-6",":p-8",":p-12",":gap-6",":gap-8",":gap-12"],width:[":w-1/2",":w-1/3",":w-1/4"],display:[":hidden",":block"]}},enhancements:[{id:"dropdown",selector:"nav[data-dropdown]",description:"Dropdown menu from nav element. Use data-dropdown-close on clickable descendants to dismiss on selection.",tags:["menu","interactive","navigation","dismiss","close"]},{id:"dropdown-close",selector:"[data-dropdown-close]",description:"Declarative close marker for nav[data-dropdown] panels; clicking marked targets closes the open dropdown.",tags:["dropdown","menu","dismiss","close","attribute"]},{id:"toggle",selector:"label[data-toggle]",description:"Toggle switch from checkbox",tags:["switch","boolean","form"]},{id:"color-input",selector:"label[data-color]",description:"Enhanced color input with swatch shell and hex output",tags:["color","input","form"]},{id:"range",selector:'input[type="range"]',description:"Enhanced range slider with output",tags:["slider","input","form"]},{id:"required",selector:"form [required]",description:"Required field asterisk indicator",tags:["validation","form","accessibility"]},{id:"open-group",selector:"fieldset[role=group][data-open]",description:"Editable checkbox/radio group",tags:["form","dynamic","editable"]},{id:"working-button",selector:"button.btn-working, a.btn-working",description:"Button with loading spinner",tags:["loading","async","feedback"]},{id:"labeled-divider",selector:"hr[data-content]",description:"Horizontal rule with centered label",tags:["divider","separator","text"]}],categories:{feedback:{description:"User feedback and status indicators",primitives:["callout","badge","empty-state"],components:["pds-toaster"]},form:{description:"Form inputs and controls",primitives:["button","fieldset","label-field","form"],components:["pds-upload","pds-form","pds-richtext","pds-calendar"]},layout:{description:"Page structure and content arrangement",patterns:["container","grid","flex","stack","section"],components:["pds-splitpanel","pds-scrollrow"]},navigation:{description:"Navigation and routing",primitives:["navigation"],components:["pds-tabstrip","pds-drawer"]},media:{description:"Images, icons, and visual content",primitives:["icon","figure","gallery"],components:["pds-icon"]},overlay:{description:"Modal and overlay content",primitives:["dialog"],components:["pds-drawer"]},data:{description:"Data display and tables",primitives:["table"]},theming:{description:"Colors, surfaces, and visual theming",primitives:["surface"]},action:{description:"Interactive actions and buttons",primitives:["button"],components:["pds-fab"]}},styles:{typography:["headings","body","code","links"],icons:{source:"svg",sets:["core","brand"]},interactive:["focus","hover","active","disabled"],states:["success","warning","danger","info","muted"]},searchRelations:{text:["typography","truncate","text-muted","text-primary","text-left","text-center","text-right","pds-richtext","heading","font","label","paragraph","content","ellipsis","overflow","input"],font:["typography","text","heading","font-size","font-weight","font-family"],type:["typography","text","font"],typography:["text","font","heading","truncate","text-muted"],heading:["typography","text","font-size","h1","h2","h3"],truncate:["text","overflow","ellipsis","clamp","nowrap","typography"],ellipsis:["truncate","text","overflow","clamp"],overflow:["truncate","scroll","hidden","text"],paragraph:["text","typography","content","body"],content:["text","typography","body","article"],empty:["empty-state","placeholder","zero","no-data","onboarding","callout","card","icon","button"],"empty state":["empty-state","empty","no-data","zero","onboarding"],"no data":["empty-state","empty","zero","placeholder"],form:["input","field","label","button","fieldset","pds-form","pds-upload","pds-richtext","pds-calendar","required","validation","submit"],input:["form","field","text","label","required","validation"],field:["form","input","label","required"],button:["btn","interactive","action","submit","form","btn-primary","btn-secondary","btn-danger","btn-working","pds-fab","floating"],btn:["button","interactive","action","pds-fab"],fab:["pds-fab","floating","button","action","menu"],floating:["fab","pds-fab","button","action"],toggle:["switch","checkbox","boolean","form","interactive"],switch:["toggle","checkbox","boolean"],slider:["range","input","form"],range:["slider","input","form"],checkbox:["toggle","form","fieldset","boolean"],radio:["fieldset","form","group"],select:["dropdown","form","input","menu"],upload:["file","pds-upload","form","drag-drop"],file:["upload","pds-upload","form"],modal:["dialog","pds-ask","overlay","popup","backdrop","pds-drawer","alert","confirm","prompt","lightbox"],dialog:["modal","pds-ask","overlay","popup","backdrop","alert","confirm","prompt"],popup:["modal","dialog","dropdown","popover","overlay","tooltip"],popover:["popup","tooltip","overlay"],overlay:["modal","dialog","backdrop","drawer","popup"],drawer:["pds-drawer","sidebar","panel","overlay","modal"],backdrop:["overlay","modal","dialog","blur"],confirm:["pds-ask","dialog","modal"],prompt:["pds-ask","dialog","modal","input"],ask:["pds-ask","dialog","confirm","prompt","modal"],dropdown:["menu","nav-dropdown","select","popover"],menu:["dropdown","navigation","nav","list"],nav:["navigation","menu","dropdown","tabs","links"],navigation:["nav","menu","tabs","pds-tabstrip","links","routing"],tabs:["pds-tabstrip","navigation","panels"],tab:["tabs","pds-tabstrip","panel"],link:["navigation","anchor","href","routing"],callout:["notification","feedback","message","status","toast","information","alert","warning","error","info","success","danger"],alert:["callout","notification","feedback","message","status","toast","modal","dialog","pds-ask","confirm","warning","error","info","success","danger"],notification:["callout","toast","pds-toaster","feedback","message","popup","alert"],toast:["pds-toaster","notification","callout","feedback","popup","snackbar","alert"],feedback:["callout","notification","toast","status","badge","validation","error","success","alert"],message:["callout","notification","feedback","dialog","toast","alert"],status:["badge","callout","indicator","feedback","state","alert"],error:["callout","danger","validation","feedback","warning","alert"],success:["callout","feedback","badge","status","check","alert"],warning:["callout","caution","feedback","status","alert"],info:["callout","information","feedback","status","alert"],danger:["callout","error","feedback","destructive","delete","alert"],badge:["status","pill","tag","chip","indicator","label"],pill:["badge","tag","chip"],tag:["badge","pill","chip","label"],chip:["badge","pill","tag"],layout:["grid","flex","stack","container","gap","spacing","pds-splitpanel","section"],grid:["layout","columns","css-grid","table","gallery"],flex:["layout","flexbox","alignment","row","column"],stack:["layout","vertical","spacing","column","gap"],container:["wrapper","layout","max-width","centered"],gap:["spacing","margin","padding","layout"],spacing:["gap","margin","padding","section"],section:["spacing","layout","container","page"],split:["pds-splitpanel","resizable","panels","layout"],panel:["pds-splitpanel","drawer","sidebar","section"],card:["surface","container","elevated","content"],surface:["card","background","elevated","theming","color"],box:["card","container","surface"],elevated:["surface","shadow","card"],color:["palette","theme","surface","primary","secondary","accent"],colours:["color","palette","theme"],palette:["color","theme","tokens"],theme:["color","palette","dark","light","surface"],primary:["color","button","badge","surface"],secondary:["color","button","badge","surface"],accent:["color","highlight","surface"],border:["border-gradient","border-glow","outline","radius"],effect:["border-gradient","border-glow","shadow","glass","animation"],gradient:["border-gradient","color","background"],glow:["border-glow","effect","shadow"],shadow:["elevated","effect","depth","card"],radius:["rounded","border","corner"],rounded:["radius","border","corner"],glass:["liquid-glass","backdrop","blur","effect"],icon:["pds-icon","graphic","symbol","svg","phosphor"],image:["img","figure","gallery","media","picture"],img:["image","figure","gallery","media"],figure:["image","media","caption"],gallery:["images","grid","collection","media"],media:["image","icon","figure","gallery","video"],table:["data","grid","tabular","rows","columns"],data:["table","json","form","display"],editor:["pds-richtext","wysiwyg","text","content"],wysiwyg:["editor","pds-richtext","richtext"],richtext:["pds-richtext","editor","wysiwyg","text"],calendar:["pds-calendar","date","picker","datepicker"],date:["calendar","pds-calendar","picker","input"],datepicker:["calendar","date","pds-calendar"],scroll:["pds-scrollrow","carousel","horizontal","overflow"],carousel:["scroll","pds-scrollrow","slider","gallery"],accordion:["details","collapsible","expandable","disclosure"],collapsible:["accordion","details","expandable"],expandable:["accordion","collapsible","disclosure"],details:["accordion","summary","disclosure"],divider:["hr","separator","line","rule"],separator:["divider","hr","line"],hr:["divider","separator","horizontal-rule"],interactive:["hover","focus","active","disabled","button","link"],hover:["interactive","effect","state"],focus:["interactive","accessibility","state","outline"],disabled:["interactive","state","muted"],loading:["btn-working","spinner","async","progress"],spinner:["loading","btn-working","progress"],accessibility:["a11y","aria","focus","label","required"],a11y:["accessibility","aria","semantic"],aria:["accessibility","a11y","role"],required:["form","validation","asterisk","input"],validation:["form","required","error","feedback"],start:["getting-started","intro","overview","whatispds"],intro:["getting-started","overview","start","docs"],getting:["getting-started","start","intro"],overview:["intro","start","summary","layout-overview"],docs:["documentation","reference","guide"],primitive:["primitives"],component:["components"],enhancement:["enhancements"],foundation:["foundations","color","icon","typography","spacing","tokens"],utility:["utilities","text","backdrop","shadow","border","helper"],pattern:["patterns","layout","responsive","mobile-stack"]}};no=q});var ct={};Ft(ct,{deepMerge:()=>Zr,fragmentFromTemplateLike:()=>Xo,isObject:()=>lt,parseHTML:()=>rr});function lt(e){return e&&typeof e=="object"&&!Array.isArray(e)}function Zr(e,t){let r={...e};return lt(e)&<(t)&&Object.keys(t).forEach(n=>{lt(t[n])?n in e?r[n]=Zr(e[n],t[n]):Object.assign(r,{[n]:t[n]}):Object.assign(r,{[n]:t[n]})}),r}function Xo(e){let t=Array.isArray(e?.strings)?e.strings:[],r=Array.isArray(e?.values)?e.values:[],n=new Set,o=[],a=/(\s)(\.[\w-]+)=\s*$/;for(let l=0;l<t.length;l+=1){let u=t[l]??"",g=u.match(a);if(g&&l<r.length){let b=g[2].slice(1),f=`pds-val-${l}`;u=u.replace(a,`$1data-pds-prop="${b}:${f}"`),n.add(l)}o.push(u),l<r.length&&!n.has(l)&&o.push(`<!--pds-val-${l}-->`)}let i=document.createElement("template");i.innerHTML=o.join("");let s=(l,u)=>{let g=l.parentNode;if(!g)return;if(u==null){g.removeChild(l);return}let m=b=>{if(b!=null){if(b instanceof Node){g.insertBefore(b,l);return}if(Array.isArray(b)){b.forEach(f=>m(f));return}g.insertBefore(document.createTextNode(String(b)),l)}};m(u),g.removeChild(l)},p=document.createTreeWalker(i.content,NodeFilter.SHOW_COMMENT),c=[];for(;p.nextNode();){let l=p.currentNode;l?.nodeValue?.startsWith("pds-val-")&&c.push(l)}return c.forEach(l=>{let u=Number(l.nodeValue.replace("pds-val-",""));s(l,r[u])}),i.content.querySelectorAll("*").forEach(l=>{let u=l.getAttribute("data-pds-prop");if(!u)return;let[g,m]=u.split(":"),b=Number(String(m).replace("pds-val-",""));g&&Number.isInteger(b)&&(l[g]=r[b]),l.removeAttribute("data-pds-prop")}),i.content}function rr(e){return new DOMParser().parseFromString(e,"text/html").body.childNodes}var nr=_t(()=>{});Fe();var re="any",Ie={type:"object",allowUnknown:!1,properties:{id:{type:"string",minLength:1,maxLength:64},name:{type:"string",minLength:1,maxLength:80},tags:{type:"array",uniqueItems:!0,items:{type:"string"}},themes:{type:"array",uniqueItems:!0,items:{type:"string",oneOf:[{const:"light",title:"Light"},{const:"dark",title:"Dark"},{const:"system",title:"System"}]}},description:{type:"string",maxLength:500},options:{type:"object",allowUnknown:!0,properties:{liquidGlassEffects:{type:"boolean"},backgroundMesh:{type:"number"}}},form:{type:"object",allowUnknown:!0,properties:{options:{type:"object",allowUnknown:!0,properties:{widgets:{type:"object",allowUnknown:!1,properties:{booleans:{type:"string"},numbers:{type:"string"},selects:{type:"string"}}},layouts:{type:"object",allowUnknown:!1,properties:{fieldsets:{type:"string"},arrays:{type:"string"}}},enhancements:{type:"object",allowUnknown:!1,properties:{icons:{type:"boolean"},datalists:{type:"boolean"},rangeOutput:{type:"boolean"},colorInput:{type:"boolean"}}},validation:{type:"object",allowUnknown:!1,properties:{showErrors:{type:"boolean"},validateOnChange:{type:"boolean"}}}}}}},colors:{type:"object",allowUnknown:!1,properties:{primary:{type:"string",relations:{tokens:["--color-primary-*","--color-primary-fill","--color-primary-text","--background-mesh-*"]}},secondary:{type:"string",relations:{tokens:["--color-secondary-*","--color-gray-*","--background-mesh-*"]}},accent:{type:"string",relations:{tokens:["--color-accent-*","--background-mesh-*"]}},background:{type:"string",relations:{tokens:["--color-surface-*","--color-surface-translucent-*","--surface-*-bg","--surface-*-text","--surface-*-text-secondary","--surface-*-text-muted","--surface-*-icon","--surface-*-icon-subtle","--surface-*-shadow","--surface-*-border"]}},success:{type:["string","null"],relations:{tokens:["--color-success-*"]}},warning:{type:["string","null"],relations:{tokens:["--color-warning-*"]}},danger:{type:["string","null"],relations:{tokens:["--color-danger-*"]}},info:{type:["string","null"],relations:{tokens:["--color-info-*"]}},gradientStops:{type:"number"},elevationOpacity:{type:"number",relations:{tokens:["--surface-*-shadow"]}},darkMode:{type:"object",allowUnknown:!1,properties:{background:{type:"string",relations:{theme:"dark",tokens:["--color-surface-*","--color-surface-translucent-*","--surface-*-bg","--surface-*-text","--surface-*-text-secondary","--surface-*-text-muted","--surface-*-icon","--surface-*-icon-subtle","--surface-*-shadow","--surface-*-border"]}},primary:{type:"string",relations:{theme:"dark",tokens:["--color-primary-*","--color-primary-fill","--color-primary-text"]}},secondary:{type:"string",relations:{theme:"dark",tokens:["--color-secondary-*","--color-gray-*"]}},accent:{type:"string",relations:{theme:"dark",tokens:["--color-accent-*"]}}}}}},typography:{type:"object",allowUnknown:!1,properties:{fontFamilyHeadings:{type:"string",relations:{tokens:["--font-family-headings"]}},fontFamilyBody:{type:"string",relations:{tokens:["--font-family-body"]}},fontFamilyMono:{type:"string",relations:{tokens:["--font-family-mono"]}},baseFontSize:{type:"number",relations:{tokens:["--font-size-*"]}},fontScale:{type:"number",relations:{tokens:["--font-size-*"]}},fontWeightLight:{type:["string","number"],relations:{tokens:["--font-weight-light"]}},fontWeightNormal:{type:["string","number"],relations:{tokens:["--font-weight-normal"]}},fontWeightMedium:{type:["string","number"],relations:{tokens:["--font-weight-medium"]}},fontWeightSemibold:{type:["string","number"],relations:{tokens:["--font-weight-semibold"]}},fontWeightBold:{type:["string","number"],relations:{tokens:["--font-weight-bold"]}},lineHeightTight:{type:["string","number"],relations:{tokens:["--font-line-height-tight"]}},lineHeightNormal:{type:["string","number"],relations:{tokens:["--font-line-height-normal"]}},lineHeightRelaxed:{type:["string","number"],relations:{tokens:["--font-line-height-relaxed"]}},letterSpacingTight:{type:"number"},letterSpacingNormal:{type:"number"},letterSpacingWide:{type:"number"}}},spatialRhythm:{type:"object",allowUnknown:!1,properties:{baseUnit:{type:"number",relations:{tokens:["--spacing-*"]}},scaleRatio:{type:"number"},maxSpacingSteps:{type:"number",relations:{tokens:["--spacing-*"]}},containerPadding:{type:"number"},inputPadding:{type:"number",relations:{rules:[{selectors:["input","textarea","select"],properties:["padding"]}]}},buttonPadding:{type:"number",relations:{rules:[{selectors:["button",".btn"],properties:["padding"]}]}},sectionSpacing:{type:"number",relations:{rules:[{selectors:["section"],properties:["margin","padding"]}]}}}},shape:{type:"object",allowUnknown:!1,properties:{radiusSize:{type:["string","number"],relations:{tokens:["--radius-*"]}},customRadius:{type:["string","number","null"]},borderWidth:{type:["string","number"],relations:{tokens:["--border-width-*"]}}}},behavior:{type:"object",allowUnknown:!1,properties:{transitionSpeed:{type:["string","number"],relations:{tokens:["--transition-*"]}},animationEasing:{type:"string"},customTransitionSpeed:{type:["number","null"]},customEasing:{type:["string","null"]},focusRingWidth:{type:"number",relations:{rules:[{selectors:[":focus-visible"],properties:["outline-width","box-shadow"]}]}},focusRingOpacity:{type:"number",relations:{rules:[{selectors:[":focus-visible"],properties:["box-shadow","outline-color"]}]}},hoverOpacity:{type:"number"}}},layout:{type:"object",allowUnknown:!1,properties:{maxWidth:{type:["number","string"],relations:{tokens:["--layout-max-width","--layout-max-width-*"]}},maxWidths:{type:"object",allowUnknown:!1,properties:{sm:{type:["number","string"],relations:{tokens:["--layout-max-width-sm"]}},md:{type:["number","string"],relations:{tokens:["--layout-max-width-md"]}},lg:{type:["number","string"],relations:{tokens:["--layout-max-width-lg"]}},xl:{type:["number","string"],relations:{tokens:["--layout-max-width-xl"]}}}},containerPadding:{type:["number","string"],relations:{tokens:["--layout-container-padding"]}},breakpoints:{type:"object",allowUnknown:!1,properties:{sm:{type:"number"},md:{type:"number"},lg:{type:"number"},xl:{type:"number"}}},gridColumns:{type:"number"},gridGutter:{type:"number"},densityCompact:{type:"number"},densityNormal:{type:"number"},densityComfortable:{type:"number"},buttonMinHeight:{type:"number"},inputMinHeight:{type:"number"},baseShadowOpacity:{type:"number",relations:{tokens:["--shadow-*"]}},darkMode:{type:"object",allowUnknown:!1,properties:{baseShadowOpacity:{type:"number",relations:{theme:"dark",tokens:["--shadow-*"]}}}},utilities:{type:"object",allowUnknown:!0,properties:{grid:{type:"boolean"},flex:{type:"boolean"},spacing:{type:"boolean"},container:{type:"boolean"}}},gridSystem:{type:"object",allowUnknown:!0,properties:{columns:{type:"array",items:{type:"number"}},autoFitBreakpoints:{type:"object",allowUnknown:!1,properties:{sm:{type:"string"},md:{type:"string"},lg:{type:"string"},xl:{type:"string"}}},enableGapUtilities:{type:"boolean"}}},containerMaxWidth:{type:["number","string"]}}},layers:{type:"object",allowUnknown:!1,properties:{baseShadowOpacity:{type:"number",relations:{tokens:["--shadow-*"]}},shadowBlurMultiplier:{type:"number",relations:{tokens:["--shadow-*"]}},shadowOffsetMultiplier:{type:"number",relations:{tokens:["--shadow-*"]}},shadowDepth:{type:"string"},blurLight:{type:"number"},blurMedium:{type:"number"},blurHeavy:{type:"number"},baseZIndex:{type:"number",relations:{tokens:["--z-*"]}},zIndexStep:{type:"number",relations:{tokens:["--z-*"]}},zIndexBase:{type:"number"},zIndexDropdown:{type:"number"},zIndexSticky:{type:"number"},zIndexFixed:{type:"number"},zIndexModal:{type:"number"},zIndexPopover:{type:"number"},zIndexTooltip:{type:"number"},zIndexNotification:{type:"number"},darkMode:{type:"object",allowUnknown:!1,properties:{baseShadowOpacity:{type:"number",relations:{theme:"dark",tokens:["--shadow-*"]}}}}}},advanced:{type:"object",allowUnknown:!0,properties:{linkStyle:{type:"string"},colorDerivation:{type:"string"}}},a11y:{type:"object",allowUnknown:!0,properties:{minTouchTarget:{type:["string","number"]},prefersReducedMotion:{type:"boolean"},focusStyle:{type:"string"}}},icons:{type:"object",allowUnknown:!1,properties:{set:{type:"string"},weight:{type:"string"},defaultSize:{type:"number",relations:{tokens:["--icon-size"]}},sizes:{type:"object",allowUnknown:!0,properties:{xs:{type:["number","string"]},sm:{type:["number","string"]},md:{type:["number","string"]},lg:{type:["number","string"]},xl:{type:["number","string"]},"2xl":{type:["number","string"]}}},spritePath:{type:"string"},externalPath:{type:"string"},include:{type:"object",allowUnknown:!0,properties:{navigation:{type:"array",items:{type:"string"}},actions:{type:"array",items:{type:"string"}},communication:{type:"array",items:{type:"string"}},content:{type:"array",items:{type:"string"}},status:{type:"array",items:{type:"string"}},time:{type:"array",items:{type:"string"}},commerce:{type:"array",items:{type:"string"}},formatting:{type:"array",items:{type:"string"}},system:{type:"array",items:{type:"string"}}}}}},components:{type:"object",allowUnknown:!0},debug:{type:"boolean"}}},Gn={type:"object",allowUnknown:!0,properties:{mode:{type:"string"},preset:{type:"string"},design:Ie,enhancers:{type:["object","array"]},applyGlobalStyles:{type:"boolean"},manageTheme:{type:"boolean"},themeStorageKey:{type:"string"},preloadStyles:{type:"boolean"},criticalLayers:{type:"array",items:{type:"string"}},autoDefine:{type:"object",allowUnknown:!1,properties:{predefine:{type:"array",items:{type:"string"}},mapper:{type:re},enhancers:{type:["object","array"]},scanExisting:{type:"boolean"},observeShadows:{type:"boolean"},patchAttachShadow:{type:"boolean"},debounceMs:{type:"number"},onError:{type:re},baseURL:{type:"string"}}},managerURL:{type:"string"},manager:{type:re},liveEdit:{type:"boolean"},localization:{type:"object",allowUnknown:!1,properties:{locale:{type:"string"},locales:{type:"array",items:{type:"string"}},messages:{type:"object",allowUnknown:!0},provider:{type:re},translate:{type:re},loadLocale:{type:re},setLocale:{type:re}}},log:{type:re}}};function Pe(e){return e===null?"null":Array.isArray(e)?"array":typeof e}function Vn(e,t){if(t===re)return!0;let r=Pe(e);return Array.isArray(t)?t.includes(r):r===t}function Xe(e,t,r,n){if(!t)return;let o=t.type||re;if(!Vn(e,o)){n.push({path:r,expected:o,actual:Pe(e),message:`Expected ${o} but got ${Pe(e)}`});return}if(o==="array"&&t.items&&Array.isArray(e)&&e.forEach((a,i)=>{Xe(a,t.items,`${r}[${i}]`,n)}),o==="object"&&e&&typeof e=="object"){let a=t.properties||{};for(let[i,s]of Object.entries(e)){if(!Object.prototype.hasOwnProperty.call(a,i)){t.allowUnknown||n.push({path:`${r}.${i}`,expected:"known property",actual:"unknown",message:`Unknown property "${i}"`});continue}Xe(s,a[i],`${r}.${i}`,n)}}}function Nt(e,t="",r={}){if(!e||typeof e!="object")return r;if(e.relations&&t&&(r[t]=e.relations),e.type==="object"&&e.properties&&Object.entries(e.properties).forEach(([n,o])=>{let a=t?`${t}.${n}`:n;Nt(o,a,r)}),e.type==="array"&&e.items){let n=`${t}[]`;Nt(e.items,n,r)}return r}var Sr=Nt(Ie,""),$r=Ie,Kn={"colors.primary":{widget:"input-color"},"colors.secondary":{widget:"input-color"},"colors.accent":{widget:"input-color"},"colors.background":{widget:"input-color"},"colors.success":{widget:"input-color"},"colors.warning":{widget:"input-color"},"colors.danger":{widget:"input-color"},"colors.info":{widget:"input-color"},"colors.gradientStops":{min:2,max:8,step:1,widget:"range"},"colors.elevationOpacity":{min:0,max:1,step:.01,widget:"range"},"colors.darkMode.background":{widget:"input-color"},"colors.darkMode.primary":{widget:"input-color"},"colors.darkMode.secondary":{widget:"input-color"},"colors.darkMode.accent":{widget:"input-color"},description:{widget:"textarea",maxLength:500,rows:4,placeholder:"Summarize the visual and interaction intent"},"typography.fontFamilyHeadings":{widget:"font-family-omnibox",icon:"text-aa",placeholder:"Heading font stack"},"typography.fontFamilyBody":{widget:"font-family-omnibox",icon:"text-aa",placeholder:"Body font stack"},"typography.fontFamilyMono":{widget:"font-family-omnibox",icon:"text-aa",placeholder:"Monospace font stack"},"typography.baseFontSize":{min:8,max:32,step:1,widget:"input-range"},"typography.fontScale":{min:1,max:2,step:.01,widget:"range"},"typography.fontWeightLight":{min:100,max:800,step:100,widget:"input-range"},"typography.fontWeightNormal":{min:100,max:800,step:100,widget:"input-range"},"typography.fontWeightMedium":{min:100,max:800,step:100,widget:"input-range"},"typography.fontWeightSemibold":{min:100,max:800,step:100,widget:"input-range"},"typography.fontWeightBold":{min:100,max:800,step:100,widget:"input-range"},"typography.lineHeightTight":{min:.75,max:3,step:.001,widget:"input-range"},"typography.lineHeightNormal":{min:.75,max:3,step:.001,widget:"input-range"},"typography.lineHeightRelaxed":{min:.75,max:3,step:.001,widget:"input-range"},"typography.letterSpacingTight":{min:-.1,max:.1,step:.001,widget:"range"},"typography.letterSpacingNormal":{min:-.1,max:.1,step:.001,widget:"range"},"typography.letterSpacingWide":{min:-.1,max:.1,step:.001,widget:"range"},"spatialRhythm.baseUnit":{min:1,max:16,step:1,widget:"range"},"spatialRhythm.scaleRatio":{min:1,max:2,step:.01,widget:"range"},"spatialRhythm.maxSpacingSteps":{min:4,max:64,step:1,widget:"range"},"spatialRhythm.containerPadding":{min:0,max:8,step:.05,widget:"range"},"spatialRhythm.inputPadding":{min:0,max:4,step:.05,widget:"range"},"spatialRhythm.buttonPadding":{min:0,max:4,step:.05,widget:"range"},"spatialRhythm.sectionSpacing":{min:0,max:8,step:.05,widget:"range"},"shape.radiusSize":{oneOf:Object.entries(w.RadiusSizes).map(([e,t])=>({const:t,title:e}))},"shape.borderWidth":{widget:"select",oneOf:Object.entries(w.BorderWidths).map(([e,t])=>({const:t,title:e}))},"shape.customRadius":{min:0,max:64,step:1,widget:"range"},"behavior.transitionSpeed":{oneOf:Object.entries(w.TransitionSpeeds).map(([e,t])=>({const:t,title:e}))},"behavior.animationEasing":{enum:Object.values(w.AnimationEasings)},"behavior.customTransitionSpeed":{min:0,max:1e3,step:10,widget:"range"},"behavior.focusRingWidth":{min:0,max:8,step:1,widget:"range"},"behavior.focusRingOpacity":{min:0,max:1,step:.01,widget:"range"},"behavior.hoverOpacity":{min:0,max:1,step:.01,widget:"range"},"layout.gridColumns":{min:1,max:24,step:1,widget:"range"},"layout.gridGutter":{min:0,max:8,step:.05,widget:"range"},"layout.maxWidth":{widget:"input-text",placeholder:"e.g. 1200 or 1200px"},"layout.maxWidths.sm":{widget:"input-text",placeholder:"e.g. 640 or 640px"},"layout.maxWidths.md":{widget:"input-text",placeholder:"e.g. 768 or 768px"},"layout.maxWidths.lg":{widget:"input-text",placeholder:"e.g. 1024 or 1024px"},"layout.maxWidths.xl":{widget:"input-text",placeholder:"e.g. 1280 or 1280px"},"layout.containerMaxWidth":{widget:"input-text",placeholder:"e.g. 1400px"},"layout.containerPadding":{widget:"input-text",placeholder:"e.g. var(--spacing-6)"},"layout.breakpoints.sm":{min:320,max:2560,step:1,widget:"input-number"},"layout.breakpoints.md":{min:480,max:3200,step:1,widget:"input-number"},"layout.breakpoints.lg":{min:640,max:3840,step:1,widget:"input-number"},"layout.breakpoints.xl":{min:768,max:5120,step:1,widget:"input-number"},"layout.baseShadowOpacity":{min:0,max:1,step:.01,widget:"range"},"layout.darkMode.baseShadowOpacity":{min:0,max:1,step:.01,widget:"range"},"layout.densityCompact":{min:.5,max:2,step:.05,widget:"range"},"layout.densityNormal":{min:.5,max:2,step:.05,widget:"range"},"layout.densityComfortable":{min:.5,max:2,step:.05,widget:"range"},"layout.buttonMinHeight":{min:24,max:96,step:1,widget:"range"},"layout.inputMinHeight":{min:24,max:96,step:1,widget:"range"},"layers.baseShadowOpacity":{min:0,max:1,step:.01,widget:"range"},"layers.shadowBlurMultiplier":{min:0,max:8,step:.1,widget:"range"},"layers.shadowOffsetMultiplier":{min:0,max:8,step:.1,widget:"range"},"layers.blurLight":{min:0,max:48,step:1,widget:"range"},"layers.blurMedium":{min:0,max:64,step:1,widget:"range"},"layers.blurHeavy":{min:0,max:96,step:1,widget:"range"},"layers.baseZIndex":{min:0,max:1e4,step:10,widget:"range"},"layers.zIndexStep":{min:1,max:100,step:1,widget:"range"},"layers.darkMode.baseShadowOpacity":{min:0,max:1,step:.01,widget:"range"},"advanced.linkStyle":{enum:Object.values(w.LinkStyles)},"a11y.minTouchTarget":{oneOf:Object.entries(w.TouchTargetSizes).map(([e,t])=>({const:t,title:e}))},"a11y.focusStyle":{enum:Object.values(w.FocusStyles)},"icons.defaultSize":{min:8,max:128,step:1,widget:"range",icon:"sparkle"}};function yr(e=[]){return e.join(".")}function vr(e=[]){return`/${e.join("/")}`}function Jn(e,t=[]){if(!(!e||typeof e!="object"))return t.reduce((r,n)=>{if(r!=null&&typeof r=="object")return r[n]},e)}function xr(e,t,r=[]){if(e!=null)return e;let n=Jn(t,r);return n??void 0}function Ne(e=""){return String(e).replace(/([a-z])([A-Z])/g,"$1 $2").replace(/[_-]+/g," ").replace(/\s+/g," ").trim().replace(/^./,t=>t.toUpperCase())}function zr(e,t){if(!e)return"string";let r=e.type||"string";if(Array.isArray(r)){let n=Pe(t);return n!=="undefined"&&r.includes(n)?n:r.includes("string")?"string":r.find(o=>o!=="null")||r[0]||"string"}return r}function Pt(e,t,r=[]){return!e||!t||!Array.isArray(r)||r.forEach(n=>{t[n]!==void 0&&(e[n]=t[n])}),e}function wr(e,t){return Array.isArray(t?.oneOf)&&t.oneOf.length?t.oneOf:Array.isArray(t?.enum)&&t.enum.length?t.enum.map(r=>({const:r,title:Ne(r)})):Array.isArray(e?.oneOf)&&e.oneOf.length?e.oneOf:Array.isArray(e?.enum)&&e.enum.length?e.enum.map(r=>({const:r,title:Ne(r)})):null}function Yn(e){return e&&(e==="range"?"input-range":e)}function Zn(e,t){if(!Array.isArray(t)||!t.length)return e;let r=new Set;for(let n of t)!n||n.const===void 0||r.add(Pe(n.const));if(!r.size)return e;if(r.size===1){let n=Array.from(r)[0];if(n==="number")return"number";if(n==="string")return"string";if(n==="boolean")return"boolean"}return e}function kr(e,t,r){let n=zr(t,r),o=e.toLowerCase(),a={label:Ne(e.split(".").slice(-1)[0]||e)};n==="boolean"&&(a.widget="toggle"),n==="number"&&(a.widget="range",o.includes("opacity")?(a.min=0,a.max=1,a.step=.01):o.includes("lineheight")?(a.min=.75,a.max=3,a.step=.001,a.widget="input-range"):o.includes("fontweight")?(a.min=100,a.max=800,a.step=100,a.widget="input-range"):o.endsWith("basefontsize")?(a.min=8,a.max=32,a.step=1,a.widget="input-range"):o.includes("scale")||o.includes("ratio")?(a.min=1,a.max=2,a.step=.01):(a.min=0,a.max=Math.max(10,Number.isFinite(Number(r))?Number(r)*4:100),a.step=1)),n==="string"&&e.startsWith("colors.")&&(a.widget="input-color"),n==="string"&&o==="description"&&(a.widget="textarea",a.maxLength=500,a.rows=4);let i=Kn[e]||{},s={...a,...i};return s.widget&&(s.widget=Yn(s.widget)),s}function Lr(e,t,r,n,o,a){if(!e||typeof e!="object")return null;let i=xr(t,a,r),s=zr(e,i);if(s==="object"&&e.properties){let y={type:"object",properties:{}};r.length>0&&(y.title=Ne(r[r.length-1]));let k={};for(let[v,$]of Object.entries(e.properties)){let A=t&&typeof t=="object"&&!Array.isArray(t)?t[v]:void 0,T=Lr($,A,[...r,v],n,o,a);T&&(y.properties[v]=T.schema,T.hasValue&&(k[v]=T.value))}return Object.keys(y.properties).length?{schema:y,value:k,hasValue:Object.keys(k).length>0}:null}if(s==="array"){let y=yr(r),k=kr(y,e,t);o[y]=k;let v=xr(t,a,r),$=e.items?.type||"string",A=Array.isArray($)?$[0]:$,T={type:A},F=wr(e?.items,null);if(F&&(T.oneOf=F),A==="string"&&Array.isArray(v)&&v.length>0){let z=v.find(x=>typeof x=="string"&&x.trim().length>0);z&&(T.examples=[z])}Pt(T,e?.items,["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","minLength","maxLength","pattern","format","minItems","maxItems","uniqueItems","description","default"]);let I={type:"array",items:T};Pt(I,e,["minItems","maxItems","uniqueItems","description","default"]);let L=vr(r),M={},N=Array.isArray(T.oneOf)&&T.oneOf.length>0;if(A==="string"&&N&&(M["ui:widget"]=I.maxItems===1?"radio":"checkbox-group"),A==="string"&&Array.isArray(v)&&v.length>0){let z=v.filter(x=>typeof x=="string"&&x.trim().length>0).slice(0,5).join(", ");z&&(M["ui:placeholder"]=z)}return Object.keys(M).length&&(n[L]={...n[L]||{},...M}),{schema:I,value:Array.isArray(t)?t:[],hasValue:Array.isArray(t)}}let p=yr(r),c=kr(p,e,i);o[p]=c;let d=wr(e,c),g={type:Zn(s==="null"?"string":s,d),title:c.label||Ne(r[r.length-1]||p)};d&&(g.oneOf=d),Pt(g,e,["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","minLength","maxLength","pattern","format","description","default"]),typeof c.maxLength=="number"&&g.maxLength===void 0&&(g.maxLength=c.maxLength),(g.type==="number"||g.type==="integer")&&typeof c.min=="number"&&g.minimum===void 0&&(g.minimum=c.min),(g.type==="number"||g.type==="integer")&&typeof c.max=="number"&&g.maximum===void 0&&(g.maximum=c.max),(g.type==="number"||g.type==="integer")&&typeof c.step=="number"&&g.multipleOf===void 0&&(g.multipleOf=c.step);let m=i;m!==void 0&&(g.examples=[m]);let b=vr(r),f={};return c.widget&&(f["ui:widget"]=c.widget),c.icon&&(f["ui:icon"]=c.icon),typeof c.min=="number"&&(f["ui:min"]=c.min),typeof c.max=="number"&&(f["ui:max"]=c.max),typeof c.step=="number"&&(f["ui:step"]=c.step),c.placeholder&&(f["ui:placeholder"]=c.placeholder),typeof c.rows=="number"&&(f["ui:options"]={...f["ui:options"]||{},rows:c.rows}),c.widget==="input-range"&&m!==void 0&&(f["ui:allowUnset"]=!0),(typeof c.min=="number"||typeof c.max=="number"||typeof c.step=="number")&&(f["ui:options"]={...f["ui:options"]||{},...typeof c.min=="number"?{min:c.min}:{},...typeof c.max=="number"?{max:c.max}:{},...typeof c.step=="number"?{step:c.step}:{}}),Object.keys(f).length&&(n[b]=f),{schema:g,value:t,hasValue:t!==void 0}}function be(e={}){let t={},r={"/colors":{"ui:layout":"flex","ui:layoutOptions":{wrap:!0,gap:"sm"}},"/colors/darkMode":{"ui:layout":"flex","ui:layoutOptions":{wrap:!0,gap:"sm"}}},n=Q?.default&&typeof Q.default=="object"?Q.default:null,o=Lr(Ie,e,[],r,t,n);return{schema:o?.schema||{type:"object",properties:{}},uiSchema:r,values:o?.value||{},metadata:t}}function je(e={}){return be(e).metadata}function It(e,{log:t,context:r="PDS config"}={}){if(!e||typeof e!="object")return[];let n=[];return Xe(e,Ie,"design",n),n.length&&typeof t=="function"&&n.forEach(o=>{t("warn",`[${r}] ${o.message} at ${o.path}`)}),n}function jt(e,{log:t,context:r="PDS config"}={}){if(!e||typeof e!="object")return[];let n=[];return Xe(e,Gn,"config",n),n.length&&typeof t=="function"&&n.forEach(o=>{t("warn",`[${r}] ${o.message} at ${o.path}`)}),n}var Q={"ocean-breeze":{id:"ocean-breeze",name:"Ocean Breeze",tags:["playful"],description:"Fresh and calming ocean-inspired palette with professional undertones",options:{liquidGlassEffects:!0,backgroundMesh:3},colors:{primary:"#0891b2",secondary:"#64748b",accent:"#06b6d4",background:"#f0f9ff",darkMode:{background:"#0c1821",secondary:"#94a3b8",primary:"#0891b2"}},typography:{baseFontSize:17,fontScale:1.35,fontFamilyHeadings:'system-ui, -apple-system, "Segoe UI", Roboto, sans-serif',fontFamilyBody:'system-ui, -apple-system, "Segoe UI", Roboto, sans-serif'},spatialRhythm:{baseUnit:6,scaleRatio:1.2},shape:{radiusSize:w.RadiusSizes.xxlarge}},"midnight-steel":{id:"midnight-steel",name:"Midnight Steel",description:"Bold industrial aesthetic with sharp contrasts and urban edge",colors:{primary:"#3b82f6",secondary:"#52525b",accent:"#f59e0b",background:"#fafaf9",darkMode:{background:"#18181b",secondary:"#71717a",primary:"#3b82f6"}},typography:{baseFontSize:16,fontScale:1.333,fontFamilyHeadings:"'IBM Plex Sans', system-ui, -apple-system, sans-serif",fontFamilyBody:"'Inter', system-ui, -apple-system, sans-serif",fontWeightSemibold:600},spatialRhythm:{baseUnit:4,scaleRatio:1.25},shape:{radiusSize:w.RadiusSizes.small,borderWidth:w.BorderWidths.thin}},"neural-glow":{id:"neural-glow",name:"Neural Glow",description:"AI-inspired with vibrant purple-blue gradients and futuristic vibes",colors:{primary:"#8b5cf6",secondary:"#6366f1",accent:"#ec4899",background:"#faf5ff",darkMode:{background:"#0f0a1a",secondary:"#818cf8",primary:"#8b5cf6"}},typography:{baseFontSize:16,fontScale:1.318,fontFamilyHeadings:"'Space Grotesk', system-ui, sans-serif",fontFamilyBody:"'Space Grotesk', system-ui, sans-serif"},spatialRhythm:{baseUnit:4,scaleRatio:1.5},shape:{radiusSize:w.RadiusSizes.xlarge,borderWidth:w.BorderWidths.medium},behavior:{transitionSpeed:w.TransitionSpeeds.fast}},"paper-and-ink":{id:"paper-and-ink",name:"Paper & Ink",tags:["app","featured"],themes:["light"],description:"Ultra-minimal design with focus on typography and whitespace",colors:{primary:"#171717",secondary:"#737373",accent:"#525252",background:"#ffffff",darkMode:{background:"#0a0a0a",secondary:"#a3a3a3",primary:"#737373"}},typography:{baseFontSize:18,fontScale:1.333,fontFamilyHeadings:"'Helvetica Neue', 'Arial', sans-serif",fontFamilyBody:"'Georgia', 'Times New Roman', serif",fontWeightNormal:400,fontWeightBold:700},spatialRhythm:{baseUnit:4,scaleRatio:1.2},shape:{radiusSize:w.RadiusSizes.none,borderWidth:w.BorderWidths.thin}},"sunset-paradise":{id:"sunset-paradise",name:"Sunset Paradise",description:"Warm tropical colors evoking golden hour by the beach",options:{liquidGlassEffects:!0,backgroundMesh:2},colors:{primary:"#ea580c",secondary:"#d4a373",accent:"#fb923c",background:"#fffbeb",darkMode:{background:"#1a0f0a",secondary:"#c9a482",primary:"#f97316"}},typography:{baseFontSize:16,fontScale:1.3,fontFamilyHeadings:"'Quicksand', 'Comfortaa', sans-serif",fontFamilyBody:"'Quicksand', 'Comfortaa', sans-serif"},spatialRhythm:{baseUnit:6,scaleRatio:1.5},shape:{radiusSize:w.RadiusSizes.xxlarge,borderWidth:w.BorderWidths.medium}},"retro-wave":{id:"retro-wave",name:"Retro Wave",description:"Nostalgic 80s-inspired palette with neon undertones",colors:{primary:"#c026d3",secondary:"#a78bfa",accent:"#22d3ee",background:"#fef3ff",darkMode:{background:"#1a0a1f",secondary:"#c4b5fd",primary:"#d946ef"}},typography:{baseFontSize:15,fontScale:1.5,fontFamilyHeadings:"'Orbitron', 'Impact', monospace",fontFamilyBody:"'Courier New', 'Courier', monospace",fontWeightBold:700},spatialRhythm:{baseUnit:4,scaleRatio:1.25},shape:{radiusSize:w.RadiusSizes.none,borderWidth:w.BorderWidths.thick},behavior:{transitionSpeed:w.TransitionSpeeds.instant}},"forest-canopy":{id:"forest-canopy",name:"Forest Canopy",description:"Natural earth tones with organic, calming green hues",colors:{primary:"#059669",secondary:"#78716c",accent:"#84cc16",background:"#f0fdf4",darkMode:{background:"#0a1410",secondary:"#a8a29e",primary:"#10b981"}},typography:{baseFontSize:16,fontScale:1.414,fontFamilyHeadings:"'Merriweather Sans', 'Arial', sans-serif",fontFamilyBody:"'Merriweather', 'Georgia', serif"},spatialRhythm:{baseUnit:6,scaleRatio:1.3},shape:{radiusSize:w.RadiusSizes.medium,borderWidth:w.BorderWidths.thin}},"ruby-elegance":{id:"ruby-elegance",name:"Ruby Elegance",description:"Sophisticated palette with rich ruby reds and warm accents",colors:{primary:"#dc2626",secondary:"#9ca3af",accent:"#be123c",background:"#fef2f2",darkMode:{background:"#1b0808",secondary:"#d1d5db",primary:"#ef4444"}},typography:{baseFontSize:17,fontScale:1.3,fontFamilyHeadings:"'Playfair Display', 'Georgia', serif",fontFamilyBody:"'Crimson Text', 'Garamond', serif",fontWeightNormal:400,fontWeightSemibold:600},spatialRhythm:{baseUnit:4,scaleRatio:1.3},shape:{radiusSize:w.RadiusSizes.small,borderWidth:w.BorderWidths.thin}},"desert-dawn":{id:"desert-dawn",name:"Desert Dawn",description:"Sun-baked neutrals with grounded terracotta and cool oasis accents",colors:{primary:"#b45309",secondary:"#a8a29e",accent:"#0ea5a8",background:"#fcf6ef",darkMode:{background:"#12100e",secondary:"#d1d5db",primary:"#f59e0b"}},typography:{baseFontSize:16,fontScale:1.414,fontFamilyHeadings:"'Source Sans Pro', system-ui, -apple-system, sans-serif",fontFamilyBody:"'Source Serif Pro', Georgia, serif"},spatialRhythm:{baseUnit:6,scaleRatio:1.3},shape:{radiusSize:w.RadiusSizes.medium,borderWidth:w.BorderWidths.medium}},"contrast-pro":{id:"contrast-pro",name:"Contrast Pro",description:"Accessibility-first, high-contrast UI with assertive clarity",colors:{primary:"#1f2937",secondary:"#111827",accent:"#eab308",background:"#ffffff",darkMode:{background:"#0b0f14",secondary:"#9ca3af",primary:"#9ca3af"}},typography:{baseFontSize:17,fontScale:1.2,fontFamilyHeadings:"system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif",fontFamilyBody:"system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif",fontWeightBold:700},spatialRhythm:{baseUnit:3,scaleRatio:1.2},shape:{radiusSize:w.RadiusSizes.small,borderWidth:w.BorderWidths.thick},behavior:{transitionSpeed:w.TransitionSpeeds.fast,focusRingWidth:4}},"pastel-play":{id:"pastel-play",name:"Pastel Play",themes:["light"],description:"Playful pastels with soft surfaces and friendly rounded shapes",colors:{primary:"#db2777",secondary:"#a78bfa",accent:"#34d399",background:"#fff7fa",darkMode:{background:"#1a1016",secondary:"#c4b5fd",primary:"#ec4899"}},typography:{baseFontSize:16,fontScale:1.333,fontFamilyHeadings:"'Nunito', system-ui, -apple-system, sans-serif",fontFamilyBody:"'Nunito', system-ui, -apple-system, sans-serif",lineHeightRelaxed:w.LineHeights.relaxed},spatialRhythm:{baseUnit:6,scaleRatio:1.4},shape:{radiusSize:w.RadiusSizes.xxlarge,borderWidth:w.BorderWidths.thin},behavior:{transitionSpeed:w.TransitionSpeeds.slow,animationEasing:w.AnimationEasings["ease-out"]}},"brutalist-tech":{id:"brutalist-tech",name:"Brutalist Tech",description:"Stark grayscale with engineered accents and unapologetically bold structure",colors:{primary:"#111111",secondary:"#4b5563",accent:"#06b6d4",background:"#f8fafc",darkMode:{background:"#0c0c0c",secondary:"#9ca3af",primary:"#06b6d4"}},typography:{baseFontSize:15,fontScale:1.25,fontFamilyHeadings:"'JetBrains Mono', ui-monospace, Menlo, Consolas, monospace",fontFamilyBody:"'Inter', system-ui, -apple-system, sans-serif",letterSpacingTight:-.02},spatialRhythm:{baseUnit:4,scaleRatio:1.25},shape:{radiusSize:w.RadiusSizes.none,borderWidth:w.BorderWidths.thick},behavior:{transitionSpeed:w.TransitionSpeeds.instant}},"zen-garden":{id:"zen-garden",name:"Zen Garden",description:"Soft botanicals with contemplative spacing and balanced motion",colors:{primary:"#3f6212",secondary:"#6b7280",accent:"#7c3aed",background:"#f7fbef",darkMode:{background:"#0d130a",secondary:"#a3a3a3",primary:"#84cc16"}},typography:{baseFontSize:17,fontScale:1.35,fontFamilyHeadings:"'Merriweather', Georgia, serif",fontFamilyBody:"'Noto Sans', system-ui, -apple-system, sans-serif"},spatialRhythm:{baseUnit:6,scaleRatio:1.35},shape:{radiusSize:w.RadiusSizes.large,borderWidth:w.BorderWidths.medium},behavior:{transitionSpeed:w.TransitionSpeeds.normal,animationEasing:w.AnimationEasings.ease}},"fitness-pro":{id:"fitness-pro",name:"Fitness Pro",tags:["app","featured"],description:"Health and fitness tracking aesthetic with data-driven dark surfaces and vibrant accent rings",options:{liquidGlassEffects:!0,backgroundMesh:2},colors:{primary:"#e91e63",secondary:"#78909c",accent:"#ab47bc",background:"#fafafa",darkMode:{background:"#1a1d21",secondary:"#78909c",primary:"#0a4ca4"}},typography:{baseFontSize:15,fontScale:1.25,fontFamilyHeadings:"'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif",fontFamilyBody:"'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif",fontWeightNormal:400,fontWeightMedium:500,fontWeightSemibold:600,fontWeightBold:700,lineHeightNormal:w.LineHeights.tight},spatialRhythm:{baseUnit:4,scaleRatio:1.25,containerPadding:1.25,sectionSpacing:2.5},shape:{radiusSize:w.RadiusSizes.large,borderWidth:w.BorderWidths.thin},layers:{shadowDepth:"medium",blurMedium:12},behavior:{transitionSpeed:w.TransitionSpeeds.fast,animationEasing:w.AnimationEasings["ease-out"],focusRingWidth:2}},"travel-market":{id:"travel-market",name:"Travel Market",description:"Hospitality marketplace design with clean cards, subtle shadows, and trust-building neutrals",options:{liquidGlassEffects:!0,backgroundMesh:3},colors:{primary:"#d93251",secondary:"#717171",accent:"#144990",background:"#ffffff",darkMode:{background:"#222222",secondary:"#b0b0b0",primary:"#ff5a7a"}},typography:{baseFontSize:16,fontScale:1.2,fontFamilyHeadings:"'Circular', system-ui, -apple-system, 'Segoe UI', sans-serif",fontFamilyBody:"'Circular', system-ui, -apple-system, 'Segoe UI', sans-serif",fontWeightNormal:400,fontWeightMedium:500,fontWeightSemibold:600,fontWeightBold:700,lineHeightRelaxed:w.LineHeights.relaxed},spatialRhythm:{baseUnit:4,scaleRatio:1.25,containerPadding:1.5,sectionSpacing:3},shape:{radiusSize:w.RadiusSizes.medium,borderWidth:w.BorderWidths.thin},layers:{shadowDepth:"light",blurLight:8},behavior:{transitionSpeed:w.TransitionSpeeds.normal,animationEasing:w.AnimationEasings["ease-in-out"],hoverOpacity:.9}},"mobility-app":{id:"mobility-app",name:"Mobility App",tags:["app","featured"],description:"On-demand service platform with bold typography, map-ready colors, and action-driven UI",options:{liquidGlassEffects:!0,backgroundMesh:0},colors:{primary:"#000000",secondary:"#545454",accent:"#06c167",info:"#0e7490",background:"#f6f6f6",darkMode:{background:"#0f0f0f",secondary:"#8a8a8a",primary:"#06c167"}},typography:{baseFontSize:16,fontScale:1.3,fontFamilyHeadings:"'UberMove', system-ui, -apple-system, 'Segoe UI', sans-serif",fontFamilyBody:"'UberMove', system-ui, -apple-system, 'Segoe UI', sans-serif",fontWeightNormal:400,fontWeightMedium:500,fontWeightSemibold:600,fontWeightBold:700},spatialRhythm:{baseUnit:4,scaleRatio:1.25,buttonPadding:1.25,inputPadding:1},shape:{radiusSize:w.RadiusSizes.small,borderWidth:w.BorderWidths.medium},behavior:{transitionSpeed:w.TransitionSpeeds.fast,animationEasing:w.AnimationEasings["ease-out"],focusRingWidth:3},a11y:{minTouchTarget:w.TouchTargetSizes.comfortable,focusStyle:w.FocusStyles.ring}},"fintech-secure":{id:"fintech-secure",name:"Fintech Secure",description:"Financial services app UI with trust-building blues, precise spacing, and security-first design",options:{liquidGlassEffects:!1,backgroundMesh:0},colors:{primary:"#0a2540",secondary:"#425466",accent:"#00d4ff",background:"#f7fafc",darkMode:{background:"#0a1929",secondary:"#8796a5",primary:"#00d4ff"}},typography:{baseFontSize:16,fontScale:1.25,fontFamilyHeadings:"'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif",fontFamilyBody:"'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif",fontFamilyMono:"'JetBrains Mono', ui-monospace, 'Cascadia Code', monospace",fontWeightNormal:400,fontWeightMedium:500,fontWeightSemibold:600,fontWeightBold:700},spatialRhythm:{baseUnit:4,scaleRatio:1.25,sectionSpacing:2.5},shape:{radiusSize:w.RadiusSizes.medium,borderWidth:w.BorderWidths.thin},layers:{shadowDepth:"light",blurLight:6},behavior:{transitionSpeed:w.TransitionSpeeds.fast,animationEasing:w.AnimationEasings["ease-in-out"],focusRingWidth:3,focusRingOpacity:.4},a11y:{minTouchTarget:w.TouchTargetSizes.standard,focusStyle:w.FocusStyles.ring}},"social-feed":{id:"social-feed",name:"Social Feed",tags:["app","featured"],description:"Content-first social platform with minimal chrome, bold actions, and vibrant media presentation",options:{liquidGlassEffects:!0,backgroundMesh:4},colors:{primary:"#1877f2",secondary:"#65676b",accent:"#fe2c55",background:"#ffffff",darkMode:{background:"#18191a",secondary:"#b0b3b8",primary:"#2d88ff"}},typography:{baseFontSize:15,fontScale:1.2,fontFamilyHeadings:"system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif",fontFamilyBody:"system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif",fontWeightNormal:400,fontWeightMedium:500,fontWeightSemibold:600,fontWeightBold:700,lineHeightNormal:w.LineHeights.relaxed},spatialRhythm:{baseUnit:4,scaleRatio:1.25,sectionSpacing:1.5},shape:{radiusSize:w.RadiusSizes.medium,borderWidth:w.BorderWidths.thin},behavior:{transitionSpeed:w.TransitionSpeeds.fast,animationEasing:w.AnimationEasings["ease-out"],hoverOpacity:.85}},"enterprise-dash":{id:"enterprise-dash",tags:["app","featured"],name:"Enterprise Dashboard",description:"Data-dense business intelligence app interface with organized hierarchy and professional polish",options:{liquidGlassEffects:!1},colors:{primary:"#0066cc",secondary:"#5f6368",accent:"#1a73e8",background:"#ffffff",success:"#34a853",warning:"#fbbc04",danger:"#ea4335",darkMode:{background:"#202124",secondary:"#9aa0a6",primary:"#8ab4f8"}},typography:{baseFontSize:14,fontScale:1.2,fontFamilyHeadings:"'Roboto', system-ui, -apple-system, 'Segoe UI', sans-serif",fontFamilyBody:"'Roboto', system-ui, -apple-system, 'Segoe UI', sans-serif",fontFamilyMono:"'Roboto Mono', ui-monospace, Consolas, monospace",fontWeightNormal:400,fontWeightMedium:500,fontWeightSemibold:600,fontWeightBold:700,lineHeightNormal:w.LineHeights.tight},spatialRhythm:{baseUnit:4,scaleRatio:1.2,containerPadding:1.5,sectionSpacing:2},shape:{radiusSize:w.RadiusSizes.small,borderWidth:w.BorderWidths.thin},layers:{shadowDepth:"light",blurLight:4},behavior:{transitionSpeed:w.TransitionSpeeds.fast,animationEasing:w.AnimationEasings["ease-in-out"],focusRingWidth:2},layout:{densityCompact:.85,gridColumns:12}}};Q.default={id:"default",name:"Default",tags:["app","featured"],description:"Fresh and modern design system with balanced aesthetics and usability",options:{liquidGlassEffects:!1,backgroundMesh:0},form:{options:{widgets:{booleans:"toggle",numbers:"input",selects:"standard"},layouts:{fieldsets:"default",arrays:"default"},enhancements:{icons:!0,datalists:!0,rangeOutput:!0,colorInput:!0},validation:{showErrors:!0,validateOnChange:!1}}},colors:{primary:"#0e7490",secondary:"#a99b95",accent:"#e54271",background:"#e7e6de",darkMode:{background:"#16171a",secondary:"#8b9199",primary:"#06b6d4"},success:null,warning:"#B38600",danger:null,info:null,gradientStops:3,elevationOpacity:.05},typography:{baseFontSize:16,fontScale:1.2,fontFamilyHeadings:'system-ui, -apple-system, "Segoe UI", Roboto, sans-serif',fontFamilyBody:'system-ui, -apple-system, "Segoe UI", Roboto, sans-serif',fontFamilyMono:'ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, monospace',fontWeightLight:w.FontWeights.light,fontWeightNormal:w.FontWeights.normal,fontWeightMedium:w.FontWeights.medium,fontWeightSemibold:w.FontWeights.semibold,fontWeightBold:w.FontWeights.bold,lineHeightTight:w.LineHeights.tight,lineHeightNormal:w.LineHeights.normal,lineHeightRelaxed:w.LineHeights.relaxed,letterSpacingTight:-.025,letterSpacingNormal:0,letterSpacingWide:.025},spatialRhythm:{baseUnit:4,scaleRatio:1.25,maxSpacingSteps:32,containerPadding:1,inputPadding:.75,buttonPadding:1,sectionSpacing:2},layers:{baseShadowOpacity:.1,darkMode:{baseShadowOpacity:.25},shadowDepth:"medium",blurLight:4,blurMedium:8,blurHeavy:16,zIndexBase:0,zIndexDropdown:1e3,zIndexSticky:1020,zIndexFixed:1030,zIndexModal:1040,zIndexPopover:1050,zIndexTooltip:1060,zIndexNotification:1070},shape:{radiusSize:w.RadiusSizes.large,borderWidth:w.BorderWidths.medium,customRadius:null},behavior:{transitionSpeed:w.TransitionSpeeds.normal,animationEasing:w.AnimationEasings["ease-out"],customTransitionSpeed:null,customEasing:null,focusRingWidth:3,focusRingOpacity:.3,hoverOpacity:.8},layout:{gridColumns:12,gridGutter:1,baseShadowOpacity:.1,darkMode:{baseShadowOpacity:.25},breakpoints:{sm:640,md:768,lg:1024,xl:1280},densityCompact:.8,densityNormal:1,densityComfortable:1.2,buttonMinHeight:30,inputMinHeight:40,utilities:{grid:!0,flex:!0,spacing:!0,container:!0},gridSystem:{columns:[1,2,3,4,6],autoFitBreakpoints:{sm:"150px",md:"250px",lg:"350px",xl:"450px"},enableGapUtilities:!0},containerMaxWidth:"1400px",containerPadding:"var(--spacing-6)"},advanced:{linkStyle:w.LinkStyles.inline,colorDerivation:"hsl"},a11y:{minTouchTarget:w.TouchTargetSizes.standard,prefersReducedMotion:!0,focusStyle:w.FocusStyles.ring},icons:{set:"phosphor",weight:"regular",defaultSize:24,externalPath:"/assets/img/icons/",sizes:w.IconSizes,include:{navigation:["arrow-left","arrow-right","arrow-up","arrow-down","arrow-counter-clockwise","caret-left","caret-right","caret-down","caret-up","x","list","list-dashes","dots-three-vertical","dots-three","house","gear","magnifying-glass","funnel","tabs","sidebar"],actions:["plus","minus","check","trash","pencil","floppy-disk","copy","download","upload","share","link","eye","eye-slash","heart","star","bookmark","note-pencil","cursor-click","clipboard","magic-wand","sparkle"],communication:["envelope","bell","bell-ringing","bell-simple","chat-circle","phone","paper-plane-tilt","user","users","user-gear","at"],content:["image","file","file-text","file-css","file-js","folder","folder-open","book-open","camera","video-camera","play","pause","microphone","brackets-curly","code","folder-simple","grid-four","briefcase","chart-line","chart-bar","database","map-pin"],status:["info","warning","check-circle","x-circle","question","shield","shield-check","shield-warning","lock","lock-open","fingerprint","circle-notch"],time:["calendar","clock","timer","hourglass"],commerce:["shopping-cart","credit-card","currency-dollar","tag","receipt","storefront"],formatting:["text-align-left","text-align-center","text-align-right","text-b","text-italic","text-underline","list-bullets","list-numbers","text-aa"],system:["cloud","cloud-arrow-up","cloud-arrow-down","desktop","device-mobile","globe","wifi-high","battery-charging","sun","moon","moon-stars","palette","rocket","feather","square","circle","squares-four","lightning","wrench"]},spritePath:"/assets/pds/icons/pds-icons.svg"},debug:!1};var Cr=je(Q.default),Mr=be(Q.default);function Ot(e="log",t,...r){let n=globalThis?.PDS?.log;if(typeof n=="function"){n(e,t,...r);return}if(typeof console>"u")return;let o=typeof console[e]=="function"?console[e].bind(console):typeof console.log=="function"?console.log.bind(console):null;o&&(r.length>0?o(t,...r):o(t))}Fe();Bt();var X=class e{static#m;static get instance(){return this.#m}#e;#o;constructor(t={}){this.options={debug:!1,...t},this.options.design||(this.options.design={}),this.options.debug&&this.options.log?.("debug","Generator options:",this.options),e.#m=this,this.tokens=this.generateTokens(),this.options.debug&&this.options.log?.("debug","Generated tokens:",this.tokens),this.#Se(),typeof CSSStyleSheet<"u"?this.#Me():this.options.debug&&this.options.log?.("debug","[Generator] Skipping browser features (CSSStyleSheet not available)")}generateTokens(){let t=this.options.design||{},r=this.#C(t),n=t.layers||{},o=this.#h(n,r.light),a=this.#z(o),i=r.dark!=null?this.#z(this.#h(n,r.dark)):null;return{colors:this.#M(t.colors||{},r),spacing:this.generateSpacingTokens(t.spatialRhythm||{}),radius:this.#O(t.shape||{}),borderWidths:this.#B(t.shape||{}),typography:this.generateTypographyTokens(t.typography||{}),shadows:a,darkShadows:i,layout:this.#D(t.layout||{}),transitions:this.#W(t.behavior||{}),zIndex:this.#H(t.layers||{}),icons:this.#U(t.icons||{})}}#C(t={}){let r=t.layout||{},n=t.layers||{};return{light:this.#f(r.baseShadowOpacity??n.baseShadowOpacity),dark:this.#f(r.darkMode?.baseShadowOpacity??n.darkMode?.baseShadowOpacity)}}#f(t){let r=Number(t);if(Number.isFinite(r))return Math.min(Math.max(r,0),1)}#h(t={},r){let n={...t};return r!=null&&(n.baseShadowOpacity=r),n}#M(t,r={}){let{primary:n="#3b82f6",secondary:o="#64748b",accent:a="#ec4899",background:i="#ffffff",success:s=null,warning:p="#FFBF00",danger:c=null,info:d=null,darkMode:l={}}=t,u={primary:this.#r(n),secondary:this.#r(o),accent:this.#r(a),success:this.#r(s||this.#E(n)),warning:this.#r(p||a),danger:this.#r(c||this.#T(n)),info:this.#r(d||n),gray:this.#b(o),surface:this.#y(i)};return u.surface.fieldset=this.#A(u.surface),u.surfaceSmart=this.#S(u.surface,r),u.dark=this.#_(u,i,l),u.dark&&u.dark.surface&&(u.dark.surfaceSmart=this.#S(u.dark.surface,r)),u.interactive={light:{fill:this.#k(u.primary,4.5),text:u.primary[600]},dark:{fill:this.#k(u.dark.primary,4.5),text:this.#I(u.dark.primary,u.dark.surface.base,4.5)}},u}#r(t){let r=this.#a(t);return{50:this.#t(r.h,Math.max(r.s-10,10),Math.min(r.l+45,95)),100:this.#t(r.h,Math.max(r.s-5,15),Math.min(r.l+35,90)),200:this.#t(r.h,r.s,Math.min(r.l+25,85)),300:this.#t(r.h,r.s,Math.min(r.l+15,75)),400:this.#t(r.h,r.s,Math.min(r.l+5,65)),500:t,600:this.#t(r.h,r.s,Math.max(r.l-10,25)),700:this.#t(r.h,r.s,Math.max(r.l-20,20)),800:this.#t(r.h,r.s,Math.max(r.l-30,15)),900:this.#t(r.h,r.s,Math.max(r.l-40,10))}}#E(t){let r=this.#a(t);return this.#t(120,Math.max(r.s,60),45)}#T(t){let r=this.#a(t);return this.#t(0,Math.max(r.s,70),50)}#b(t){let r=this.#a(t),n=r.h,o=Math.min(r.s,10);return{50:this.#t(n,o,98),100:this.#t(n,o,95),200:this.#t(n,o,88),300:this.#t(n,o,78),400:this.#t(n,o,60),500:t,600:this.#t(n,Math.min(o+5,15),45),700:this.#t(n,Math.min(o+8,18),35),800:this.#t(n,Math.min(o+10,20),20),900:this.#t(n,Math.min(o+12,22),10)}}#y(t){let r=this.#a(t);return{base:t,subtle:this.#t(r.h,Math.max(r.s,2),Math.max(r.l-2,2)),elevated:this.#t(r.h,Math.max(r.s,3),Math.max(r.l-4,5)),sunken:this.#t(r.h,Math.max(r.s,4),Math.max(r.l-6,8)),overlay:this.#t(r.h,Math.max(r.s,2),Math.min(r.l+2,98)),inverse:this.#v(t),hover:"color-mix(in oklab, var(--color-surface-base) 92%, var(--color-text-primary) 8%);"}}#A(t){return{base:t.subtle,subtle:t.elevated,elevated:t.sunken,sunken:this.#R(t.sunken,.05),overlay:t.elevated}}#R(t,r=.05){let n=this.#a(t),o=Math.max(n.l-n.l*r,5);return this.#t(n.h,n.s,o)}#v(t){let r=this.#a(t);if(r.l>50){let n=Math.min(r.s+5,25),o=Math.max(12-(r.l-50)*.1,8);return this.#t(r.h,n,o)}else{let n=Math.max(r.s-10,5),o=Math.min(85+(50-r.l)*.3,95);return this.#t(r.h,n,o)}}#_(t,r="#ffffff",n={}){let o=n.background?n.background:this.#v(r),a=this.#y(o),i=n.primary?this.#r(n.primary):this.#i(t.primary);return{surface:{...a,fieldset:this.#N(a)},primary:i,secondary:n.secondary?this.#r(n.secondary):this.#i(t.secondary),accent:n.accent?this.#r(n.accent):this.#i(t.accent),gray:n.secondary?this.#b(n.secondary):t.gray,success:this.#i(t.success),info:this.#i(t.info),warning:this.#i(t.warning),danger:this.#i(t.danger)}}#c(t){let r=String(t||"").replace("#",""),n=r.length===3?r.split("").map(a=>a+a).join(""):r,o=parseInt(n,16);return{r:o>>16&255,g:o>>8&255,b:o&255}}#p(t){let{r,g:n,b:o}=this.#c(t),a=[r/255,n/255,o/255].map(i=>i<=.03928?i/12.92:Math.pow((i+.055)/1.055,2.4));return .2126*a[0]+.7152*a[1]+.0722*a[2]}#d(t,r){let n=this.#p(t),o=this.#p(r),a=Math.max(n,o),i=Math.min(n,o);return(a+.05)/(i+.05)}#x(t,r=4.5){if(!t)return"#000000";let n="#ffffff",o="#000000",a=this.#d(t,n);if(a>=r)return n;let i=this.#d(t,o);return i>=r||i>a?o:n}#w(t,r=1){let{r:n,g:o,b:a}=this.#c(t);return`rgba(${n}, ${o}, ${a}, ${r})`}#F(t,r,n=.5){let o=this.#c(t),a=this.#c(r),i=Math.round(o.r+(a.r-o.r)*n),s=Math.round(o.g+(a.g-o.g)*n),p=Math.round(o.b+(a.b-o.b)*n);return this.#P(i,s,p)}#P(t,r,n){let o=a=>{let i=Math.max(0,Math.min(255,Math.round(a))).toString(16);return i.length===1?"0"+i:i};return`#${o(t)}${o(r)}${o(n)}`}#N(t){return{base:t.elevated,subtle:t.overlay,elevated:this.#$(t.elevated,.08),sunken:t.elevated,overlay:this.#$(t.overlay,.05)}}#I(t={},r="#000000",n=4.5){let o=["600","700","800","500","400","900","300","200"],a={shade:null,color:null,ratio:0};for(let i of o){let s=t?.[i];if(!s||typeof s!="string")continue;let p=this.#d(s,r);if(p>a.ratio&&(a={shade:i,color:s,ratio:p}),p>=n)return s}return a.color||t?.["600"]||t?.["500"]}#k(t={},r=4.5){let n=["600","700","800","500","400","900"],o={shade:null,color:null,ratio:0};for(let a of n){let i=t?.[a];if(!i||typeof i!="string")continue;let s=this.#d(i,"#ffffff");if(s>o.ratio&&(o={shade:a,color:i,ratio:s}),s>=r)return i}return o.color||t?.["600"]||t?.["500"]}#S(t,r={}){let n={},o=r.light??.1,a=r.dark??.25;return Object.entries(t).forEach(([i,s])=>{if(!s||typeof s!="string"||!s.startsWith("#"))return;let p=this.#p(s)<.5,c=this.#x(s,4.5),d=this.#x(s,3),l=this.#F(c,s,.4),u=c,g=l,m=p?"#ffffff":"#000000",b=p?a:o,f=this.#w(m,b),y=p?"#ffffff":"#000000",k=p?.15:.1,v=this.#w(y,k);n[i]={bg:s,text:c,textSecondary:d,textMuted:l,icon:u,iconSubtle:g,shadow:f,border:v,scheme:p?"dark":"light"}}),n}#$(t,r=.05){let n=this.#a(t),o=Math.min(n.l+(100-n.l)*r,95);return this.#t(n.h,n.s,o)}#i(t){let r={};return Object.entries({50:{source:"900",dimFactor:.8},100:{source:"800",dimFactor:.8},200:{source:"700",dimFactor:.8},300:{source:"600",dimFactor:.8},400:{source:"500",dimFactor:.85},500:{source:"400",dimFactor:.85},600:{source:"300",dimFactor:.85},700:{source:"200",dimFactor:.85},800:{source:"100",dimFactor:.95},900:{source:"50",dimFactor:.95}}).forEach(([o,a])=>{let i=t[a.source];r[o]=this.#j(i,a.dimFactor)}),r}#j(t,r=.8){let n=this.#a(t),o=Math.max(n.s*r,5),a=Math.max(n.l*r,5);return this.#t(n.h,o,a)}generateSpacingTokens(t){let{baseUnit:r=4,scaleRatio:n=1.25,maxSpacingSteps:o=12}=t,a=Number.isFinite(Number(r))?Number(r):4,i=Math.min(Number.isFinite(Number(o))?Number(o):12,12),s={0:"0"};for(let p=1;p<=i;p++)s[p]=`${a*p}px`;return s}#O(t){let{radiusSize:r="medium",customRadius:n=null}=t,o;n!=null?o=n:typeof r=="number"?o=r:typeof r=="string"?o=w.RadiusSizes[r]??w.RadiusSizes.medium:o=w.RadiusSizes.medium;let a=Number.isFinite(Number(o))?Number(o):w.RadiusSizes.medium;return{none:"0",xs:`${Number.isFinite(a*.25)?Math.round(a*.25):0}px`,sm:`${Number.isFinite(a*.5)?Math.round(a*.5):0}px`,md:`${a}px`,lg:`${Number.isFinite(a*1.5)?Math.round(a*1.5):0}px`,xl:`${Number.isFinite(a*2)?Math.round(a*2):0}px`,full:"9999px"}}#B(t){let{borderWidth:r="medium"}=t,n;typeof r=="number"?n=r:typeof r=="string"?n=w.BorderWidths[r]??w.BorderWidths.medium:n=w.BorderWidths.medium;let o=Number.isFinite(Number(n))?Number(n):w.BorderWidths.medium,a=i=>`${Math.max(1,Math.ceil(i))}px`;return{hairline:a(o*.25),thin:a(o*.5),medium:a(o),thick:a(o*1.5)}}generateTypographyTokens(t){let{fontFamilyHeadings:r="system-ui, -apple-system, sans-serif",fontFamilyBody:n="system-ui, -apple-system, sans-serif",fontFamilyMono:o='ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, monospace',baseFontSize:a=16,fontScale:i=1.25,fontWeightLight:s=w.FontWeights.light,fontWeightNormal:p=w.FontWeights.normal,fontWeightMedium:c=w.FontWeights.medium,fontWeightSemibold:d=w.FontWeights.semibold,fontWeightBold:l=w.FontWeights.bold,lineHeightTight:u=w.LineHeights.tight,lineHeightNormal:g=w.LineHeights.normal,lineHeightRelaxed:m=w.LineHeights.relaxed}=t,b=Number.isFinite(Number(a))?Number(a):16,f=Number.isFinite(Number(i))?Number(i):1.25;return{fontFamily:{headings:r,body:n,mono:o},fontSize:{xs:`${Math.round(b/Math.pow(f,2))}px`,sm:`${Math.round(b/f)}px`,base:`${b}px`,lg:`${Math.round(b*f)}px`,xl:`${Math.round(b*Math.pow(f,2))}px`,"2xl":`${Math.round(b*Math.pow(f,3))}px`,"3xl":`${Math.round(b*Math.pow(f,4))}px`,"4xl":`${Math.round(b*Math.pow(f,5))}px`},fontWeight:{light:s?.toString()||"300",normal:p?.toString()||"400",medium:c?.toString()||"500",semibold:d?.toString()||"600",bold:l?.toString()||"700"},lineHeight:{tight:u?.toString()||"1.25",normal:g?.toString()||"1.5",relaxed:m?.toString()||"1.75"}}}#z(t){let{baseShadowOpacity:r=.1,shadowBlurMultiplier:n=1,shadowOffsetMultiplier:o=1}=t,a=`rgba(0, 0, 0, ${r})`,i=`rgba(0, 0, 0, ${r*.5})`;return{sm:`0 ${1*o}px ${2*n}px 0 ${i}`,base:`0 ${1*o}px ${3*n}px 0 ${a}, 0 ${1*o}px ${2*n}px 0 ${i}`,md:`0 ${4*o}px ${6*n}px ${-1*o}px ${a}, 0 ${2*o}px ${4*n}px ${-1*o}px ${i}`,lg:`0 ${10*o}px ${15*n}px ${-3*o}px ${a}, 0 ${4*o}px ${6*n}px ${-2*o}px ${i}`,xl:`0 ${20*o}px ${25*n}px ${-5*o}px ${a}, 0 ${10*o}px ${10*n}px ${-5*o}px ${i}`,inner:`inset 0 ${2*o}px ${4*n}px 0 ${i}`}}#D(t){let{containerPadding:r=16,breakpoints:n={sm:640,md:768,lg:1024,xl:1280}}=t,o=this.#u(t,"maxWidth"),a=t.maxWidth,i=this.#L(t,{emitFallbacks:!1});return{maxWidth:o?this.#n(a,"1200px"):void 0,maxWidthSm:i.sm,maxWidthMd:i.md,maxWidthLg:i.lg,maxWidthXl:i.xl,minHeight:"100vh",containerPadding:this.#n(r,"16px"),breakpoints:{sm:this.#n(n.sm,"640px"),md:this.#n(n.md,"768px"),lg:this.#n(n.lg,"1024px"),xl:this.#n(n.xl,"1280px")},pageMargin:"120px",sectionGap:"160px",containerGap:"200px",heroSpacing:"240px",footerSpacing:"160px"}}#L(t={},r={}){let{emitFallbacks:n=!0}=r,o={sm:640,md:768,lg:1024,xl:1280},{maxWidths:a={},containerPadding:i=16,breakpoints:s=o}=t||{},p=this.#u(t,"maxWidth"),c=["sm","md","lg","xl"].some(f=>this.#u(a,f));if(!n&&!p&&!c)return{sm:void 0,md:void 0,lg:void 0,xl:void 0};let d=t?.maxWidth,l=this.#s(i,16),u=this.#s(d,o.xl),g={sm:this.#s(s.sm,o.sm),md:this.#s(s.md,o.md),lg:this.#s(s.lg,o.lg),xl:this.#s(s.xl,o.xl)},m=f=>f?Math.max(320,f-l*2):u,b={sm:Math.min(u,m(g.sm)),md:Math.min(u,m(g.md)),lg:Math.min(u,m(g.lg)),xl:Math.max(320,u)};return{sm:this.#n(a.sm,`${b.sm}px`),md:this.#n(a.md,`${b.md}px`),lg:this.#n(a.lg,`${b.lg}px`),xl:this.#n(a.xl,`${b.xl}px`)}}#u(t,r){if(!t||typeof t!="object"||!Object.prototype.hasOwnProperty.call(t,r))return!1;let n=t[r];return!(n==null||typeof n=="string"&&n.trim().length===0)}#n(t,r){return typeof t=="number"&&Number.isFinite(t)?`${t}px`:typeof t=="string"&&t.trim().length>0?t:r}#s(t,r){if(typeof t=="number"&&Number.isFinite(t))return t;if(typeof t=="string"){let n=parseFloat(t);if(Number.isFinite(n))return n}return r}#W(t){let{transitionSpeed:r=w.TransitionSpeeds.normal,animationEasing:n=w.AnimationEasings["ease-out"]}=t,o;return typeof r=="number"?o=r:typeof r=="string"&&w.TransitionSpeeds[r]?o=w.TransitionSpeeds[r]:o=w.TransitionSpeeds.normal,{fast:`${Math.round(o*.6)}ms`,normal:`${o}ms`,slow:`${Math.round(o*1.4)}ms`}}#H(t){let{baseZIndex:r=1e3,zIndexStep:n=10}=t;return{dropdown:r.toString(),sticky:(r+n*2).toString(),fixed:(r+n*3).toString(),modal:(r+n*4).toString(),drawer:(r+n*5).toString(),popover:(r+n*6).toString(),tooltip:(r+n*7).toString(),notification:(r+n*8).toString()}}#U(t){let{set:r="phosphor",weight:n="regular",defaultSize:o=24,sizes:a={xs:16,sm:20,md:24,lg:32,xl:48,"2xl":64},spritePath:i="/assets/pds/icons/pds-icons.svg",externalPath:s="/assets/img/icons/"}=t;return{set:r,weight:n,defaultSize:`${o}px`,sizes:Object.fromEntries(Object.entries(a).map(([p,c])=>[p,`${c}px`])),spritePath:i,externalPath:s}}#q(t){let r=[];r.push(` /* Colors */
|
|
1
|
+
var Gn=Object.defineProperty;var _t=(t,e)=>()=>(t&&(e=t(t=0)),e);var Ft=(t,e)=>{for(var r in e)Gn(t,r,{get:e[r],enumerable:!0})};var vr={};Ft(vr,{enums:()=>$});var $,_e=_t(()=>{$={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 Rr={};Ft(Rr,{default:()=>ao,findComponentForElement:()=>eo,getAllSelectors:()=>to,getAllTags:()=>oo,getByCategory:()=>no,ontology:()=>q,searchOntology:()=>ro});function de(t,e){if(!t||!e)return!1;try{return t.matches(e)}catch{return!1}}function Tr(t,e){if(!t||!e||!t.closest)return null;try{return t.closest(e)}catch{return null}}function eo(t,{maxDepth:e=5}={}){if(!t||t.closest&&t.closest(".showcase-toc"))return null;let r=t,n=0;for(;r&&n<e;){if(n++,r.tagName==="DS-SHOWCASE")return null;if(r.classList&&r.classList.contains("showcase-section")){r=r.parentElement;continue}for(let a of PDS.ontology.enhancements){let i=a.selector||a;if(de(r,i))return{element:r,componentType:"enhanced-component",displayName:a.description||i,id:a.id}}if(r.tagName==="FIELDSET"){let a=r.getAttribute("role");if(a==="group"||a==="radiogroup")return{element:r,componentType:"form-group",displayName:a==="radiogroup"?"radio group":"form group"}}if(r.tagName==="LABEL"&&r.querySelector&&r.querySelector("input,select,textarea"))return{element:r,componentType:"form-control",displayName:"label with input"};let o=r.closest?r.closest("label"):null;if(o&&o.querySelector&&o.querySelector("input,select,textarea"))return{element:o,componentType:"form-control",displayName:"label with input"};for(let a of PDS.ontology.primitives){for(let i of a.selectors||[]){let s=String(i||"").trim();if(s.includes("*")){if(s.startsWith(".")){let l=s.slice(1).replace(/\*/g,"");if(r.classList&&Array.from(r.classList).some(u=>u.startsWith(l)))return{element:r,componentType:"pds-primitive",displayName:a.name||a.id,id:a.id,tags:a.tags};let p=r.parentElement,c=0;for(;p&&c<e;){if(p.classList&&Array.from(p.classList).some(u=>u.startsWith(l))&&p.tagName!=="DS-SHOWCASE")return{element:p,componentType:"pds-primitive",displayName:a.name||a.id,id:a.id,tags:a.tags};p=p.parentElement,c++}continue}continue}if(de(r,s))return{element:r,componentType:"pds-primitive",displayName:a.name||a.id,id:a.id,tags:a.tags};let d=Tr(r,s);if(d&&d.tagName!=="DS-SHOWCASE")return{element:d,componentType:"pds-primitive",displayName:a.name||a.id,id:a.id,tags:a.tags}}if(r.classList){let i=Array.from(r.classList);for(let s of a.selectors||[])if(typeof s=="string"&&s.includes("*")&&s.startsWith(".")){let d=s.slice(1).replace(/\*/g,"");if(i.some(l=>l.startsWith(d)))return{element:r,componentType:"pds-primitive",displayName:a.name||a.id,id:a.id,tags:a.tags}}}}for(let a of PDS.ontology.layoutPatterns||[])for(let i of a.selectors||[]){let s=String(i||"").trim();if(s.includes("*")){if(s.startsWith(".")){let l=s.slice(1).replace(/\*/g,"");if(r.classList&&Array.from(r.classList).some(p=>p.startsWith(l)))return{element:r,componentType:"layout-pattern",displayName:a.name||a.id,id:a.id,tags:a.tags}}continue}if(de(r,s))return{element:r,componentType:"layout-pattern",displayName:a.name||a.id,id:a.id,tags:a.tags};let d=Tr(r,s);if(d&&d.tagName!=="DS-SHOWCASE")return{element:d,componentType:"layout-pattern",displayName:a.name||a.id,id:a.id,tags:a.tags}}if(r.tagName&&r.tagName.includes("-")){let a=r.tagName.toLowerCase(),i=PDS.ontology.components.find(s=>s.selectors.includes(a));return{element:r,componentType:"web-component",displayName:i?.name||a,id:i?.id||a,tags:i?.tags}}if(r.tagName==="BUTTON"){let a=r.querySelector&&r.querySelector("pds-icon");return{element:r,componentType:"button",displayName:a?"button with icon":"button",id:"button"}}if(de(r,"pds-icon")||r.closest&&r.closest("pds-icon")){let a=de(r,"pds-icon")?r:r.closest("pds-icon");return{element:a,componentType:"icon",displayName:`pds-icon (${a.getAttribute&&a.getAttribute("icon")||"unknown"})`,id:"pds-icon"}}if(de(r,"nav[data-dropdown]")||r.closest&&r.closest("nav[data-dropdown]"))return{element:de(r,"nav[data-dropdown]")?r:r.closest("nav[data-dropdown]"),componentType:"navigation",displayName:"dropdown menu",id:"dropdown"};r=r.parentElement}return null}function to(){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 ro(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(l=>l.toLowerCase().includes(r))||s.category?.toLowerCase().includes(r)||s.selectors?.some(l=>l.toLowerCase().includes(r)))&&n.push({...s,type:i})};return(!e.type||e.type==="primitive")&&o(q.primitives,"primitive"),(!e.type||e.type==="component")&&o(q.components,"component"),(!e.type||e.type==="layout")&&o(q.layoutPatterns,"layout"),(!e.type||e.type==="enhancement")&&o(q.enhancements,"enhancement"),n}function no(t){let e=t.toLowerCase();return{primitives:q.primitives.filter(r=>r.category===e),components:q.components.filter(r=>r.category===e),layouts:q.layoutPatterns.filter(r=>r.category===e)}}function oo(){let t=new Set;return q.primitives.forEach(e=>e.tags?.forEach(r=>t.add(r))),q.components.forEach(e=>e.tags?.forEach(r=>t.add(r))),q.layoutPatterns.forEach(e=>e.tags?.forEach(r=>t.add(r))),q.enhancements.forEach(e=>e.tags?.forEach(r=>t.add(r))),Array.from(t).sort()}var q,ao,Dt=_t(()=>{q={meta:{name:"Pure Design System Ontology",version:"1.0.0",description:"Complete metadata registry for PDS primitives, components, utilities, and tokens"},tokens:{colors:{semantic:["primary","secondary","accent","success","warning","danger","info"],neutral:["gray"],shades:[50,100,200,300,400,500,600,700,800,900,950],surface:["base","subtle","elevated","sunken","overlay","inverse","translucent"],text:["default","muted","subtle","inverse","primary","success","warning","danger","info"]},spacing:{scale:["1","2","3","4","5","6","8","10","12","16","20","24"],semantic:["xs","sm","md","lg","xl"]},typography:{families:["heading","body","mono"],sizes:["xs","sm","base","lg","xl","2xl","3xl","4xl","5xl"],weights:["light","normal","medium","semibold","bold"]},radius:{scale:["none","sm","base","md","lg","xl","2xl","full"]},shadows:{scale:["none","sm","base","md","lg","xl","inner"]},themes:["light","dark"],breakpoints:{sm:640,md:768,lg:1024,xl:1280}},primitives:[{id:"badge",name:"Badge / Pill",description:"Inline status indicators and labels",selectors:[".badge",".badge-primary",".badge-secondary",".badge-success",".badge-info",".badge-warning",".badge-danger",".badge-outline",".badge-sm",".badge-lg",".pill",".tag",".chip"],tags:["status","label","indicator","inline"],category:"feedback"},{id:"card",name:"Card",description:"Content container with padding, border-radius, and optional shadow",selectors:[".card",".card-basic",".card-elevated",".card-outlined",".card-interactive"],tags:["container","content","grouping"],category:"container"},{id:"surface",name:"Surface",description:"Smart surface classes with automatic text/background color handling",selectors:[".surface-base",".surface-subtle",".surface-elevated",".surface-sunken",".surface-overlay",".surface-inverse",".surface-translucent",".surface-translucent-25",".surface-translucent-50",".surface-translucent-75",".surface-primary",".surface-secondary",".surface-success",".surface-warning",".surface-danger",".surface-info"],tags:["background","theming","color","container"],category:"theming"},{id:"callout",name:"Callout",description:"Contextual information and notification messages",selectors:[".callout",".callout-info",".callout-success",".callout-warning",".callout-danger",".callout-error",".callout-dismissible"],tags:["feedback","message","notification","status","information"],category:"feedback"},{id:"empty-state",name:"Empty State",description:"Empty state layout for missing data or onboarding",selectors:[".empty-state"],tags:["empty","no-data","zero","placeholder","onboarding","state"],category:"feedback"},{id:"dialog",name:"Dialog",description:"Modal dialog element",selectors:["dialog",".dialog"],tags:["modal","overlay","popup","modal"],category:"overlay"},{id:"divider",name:"Divider",description:"Horizontal rule with optional label",selectors:["hr","hr[data-content]"],tags:["separator","line","content-divider"],category:"layout"},{id:"table",name:"Table",description:"Data tables with responsive and styling variants",selectors:["table",".table-responsive",".table-striped",".table-bordered",".table-compact",".data-table"],tags:["data","grid","tabular","responsive"],category:"data"},{id:"button",name:"Button",description:"Interactive button element with variants",selectors:["button",".btn-primary",".btn-secondary",".btn-outline",".btn-danger",".btn-sm",".btn-xs",".btn-lg",".btn-working",".icon-only"],tags:["interactive","action","cta","form"],category:"action"},{id:"fieldset",name:"Fieldset Group",description:"Form field grouping for radio/checkbox groups",selectors:["fieldset[role='group']","fieldset[role='radiogroup']","fieldset.buttons"],tags:["form","grouping","radio","checkbox"],category:"form"},{id:"label-field",name:"Label+Input",description:"Semantic label wrapping form input",selectors:["label","label:has(input)","label:has(select)","label:has(textarea)"],tags:["form","input","accessibility"],category:"form"},{id:"accordion",name:"Accordion",description:"Collapsible content sections",selectors:[".accordion",".accordion-item","details","details > summary"],tags:["expandable","collapsible","disclosure"],category:"disclosure"},{id:"icon",name:"Icon",description:"SVG icon element with size and color variants",selectors:["pds-icon",".icon-xs",".icon-sm",".icon-md",".icon-lg",".icon-xl",".icon-primary",".icon-secondary",".icon-accent",".icon-success",".icon-warning",".icon-danger",".icon-info",".icon-muted",".icon-subtle",".icon-text",".icon-text-start",".icon-text-end"],tags:["graphic","symbol","visual"],category:"media"},{id:"figure",name:"Figure/Media",description:"Figure element for images with captions",selectors:["figure","figure.media","figcaption"],tags:["image","media","caption"],category:"media"},{id:"gallery",name:"Gallery",description:"Image gallery grid",selectors:[".gallery",".gallery-grid",".img-gallery"],tags:["images","grid","collection"],category:"media"},{id:"form",name:"Form Container",description:"Form styling and layout",selectors:["form",".form-container",".form-actions",".field-description"],tags:["form","input","submission"],category:"form"},{id:"navigation",name:"Navigation",description:"Navigation elements and menus",selectors:["nav","nav[data-dropdown]","menu","nav menu li"],tags:["menu","links","routing"],category:"navigation"}],components:[{id:"pds-tabstrip",name:"Tab Strip",description:"Tabbed interface component",selectors:["pds-tabstrip"],tags:["tabs","navigation","panels"],category:"navigation"},{id:"pds-drawer",name:"Drawer",description:"Slide-out panel overlay",selectors:["pds-drawer"],tags:["panel","overlay","sidebar"],category:"overlay"},{id:"pds-fab",name:"FAB",description:"Floating Action Button with expandable satellite actions",selectors:["pds-fab"],tags:["button","action","floating","interactive"],category:"action"},{id:"pds-upload",name:"Upload",description:"File upload component with drag-and-drop",selectors:["pds-upload"],tags:["file","upload","drag-drop","form"],category:"form"},{id:"pds-icon",name:"Icon",description:"SVG icon web component",selectors:["pds-icon"],tags:["icon","graphic","svg"],category:"media"},{id:"pds-toaster",name:"Toaster",description:"Toast notification container",selectors:["pds-toaster"],tags:["notification","toast","feedback"],category:"feedback"},{id:"pds-form",name:"JSON Form",description:"Auto-generated form from JSON Schema",selectors:["pds-form"],tags:["form","schema","auto-generate"],category:"form"},{id:"pds-live-edit",name:"Live Edit",description:"Contextual live editing for PDS design settings",selectors:["pds-live-edit"],tags:["editor","live","config","tooling"],category:"tooling"},{id:"pds-splitpanel",name:"Split Panel",description:"Resizable split pane layout",selectors:["pds-splitpanel"],tags:["layout","resize","panels"],category:"layout"},{id:"pds-scrollrow",name:"Scroll Row",description:"Horizontal scrolling row with snap points",selectors:["pds-scrollrow"],tags:["scroll","horizontal","carousel"],category:"layout"},{id:"pds-richtext",name:"Rich Text",description:"Rich text editor component",selectors:["pds-richtext"],tags:["editor","wysiwyg","text"],category:"form"},{id:"pds-calendar",name:"Calendar",description:"Date picker calendar component",selectors:["pds-calendar"],tags:["date","picker","calendar"],category:"form"}],layoutPatterns:[{id:"container",name:"Container",description:"Centered max-width wrapper with padding",selectors:[".container"],tags:["wrapper","centered","max-width","page"],category:"structure"},{id:"grid",name:"Grid",description:"CSS Grid layout container",selectors:[".grid"],tags:["layout","columns","css-grid"],category:"layout"},{id:"grid-cols",name:"Grid Columns",description:"Fixed column count grids",selectors:[".grid-cols-1",".grid-cols-2",".grid-cols-3",".grid-cols-4",".grid-cols-6"],tags:["columns","fixed","grid"],category:"layout"},{id:"grid-auto",name:"Auto-fit Grid",description:"Responsive auto-fit grid with minimum widths",selectors:[".grid-auto-sm",".grid-auto-md",".grid-auto-lg",".grid-auto-xl"],tags:["responsive","auto-fit","fluid"],category:"layout"},{id:"flex",name:"Flex Container",description:"Flexbox layout with direction and wrap modifiers",selectors:[".flex",".flex-wrap",".flex-col",".flex-row"],tags:["flexbox","layout","alignment"],category:"layout"},{id:"grow",name:"Flex Grow",description:"Fill remaining flex space",selectors:[".grow"],tags:["flex","expand","fill"],category:"layout"},{id:"stack",name:"Stack",description:"Vertical flex layout with predefined gaps",selectors:[".stack-sm",".stack-md",".stack-lg",".stack-xl"],tags:["vertical","spacing","column"],category:"layout"},{id:"gap",name:"Gap",description:"Spacing between flex/grid children",selectors:[".gap-0",".gap-xs",".gap-sm",".gap-md",".gap-lg",".gap-xl"],tags:["spacing","margin","gutters"],category:"spacing"},{id:"items",name:"Items Alignment",description:"Cross-axis alignment for flex/grid",selectors:[".items-start",".items-center",".items-end",".items-stretch",".items-baseline"],tags:["alignment","vertical","cross-axis"],category:"alignment"},{id:"justify",name:"Justify Content",description:"Main-axis alignment for flex/grid",selectors:[".justify-start",".justify-center",".justify-end",".justify-between",".justify-around",".justify-evenly"],tags:["alignment","horizontal","main-axis"],category:"alignment"},{id:"max-width",name:"Max-Width",description:"Content width constraints",selectors:[".max-w-sm",".max-w-md",".max-w-lg",".max-w-xl"],tags:["width","constraint","readable"],category:"sizing"},{id:"section",name:"Section Spacing",description:"Vertical padding for content sections",selectors:[".section",".section-lg"],tags:["spacing","vertical","padding"],category:"spacing"},{id:"mobile-stack",name:"Mobile Stack",description:"Stack on mobile, row on desktop",selectors:[".mobile-stack"],tags:["responsive","mobile","breakpoint"],category:"responsive"}],utilities:{text:{alignment:[".text-left",".text-center",".text-right"],color:[".text-muted"],overflow:[".truncate"]},backdrop:{base:[".backdrop"],variants:[".backdrop-light",".backdrop-dark"],blur:[".backdrop-blur-sm",".backdrop-blur-md",".backdrop-blur-lg"]},shadow:{scale:[".shadow-sm",".shadow-base",".shadow-md",".shadow-lg",".shadow-xl",".shadow-inner",".shadow-none"]},border:{gradient:[".border-gradient",".border-gradient-primary",".border-gradient-accent",".border-gradient-secondary",".border-gradient-soft",".border-gradient-medium",".border-gradient-strong"],glow:[".border-glow",".border-glow-sm",".border-glow-lg",".border-glow-primary",".border-glow-accent",".border-glow-success",".border-glow-warning",".border-glow-danger"],combined:[".border-gradient-glow"]},media:{image:[".img-gallery",".img-rounded-sm",".img-rounded-md",".img-rounded-lg",".img-rounded-xl",".img-rounded-full",".img-inline"],video:[".video-responsive"],figure:[".figure-responsive"]},effects:{glass:[".liquid-glass"]}},responsive:{prefixes:["sm","md","lg"],utilities:{grid:[":grid-cols-2",":grid-cols-3",":grid-cols-4"],flex:[":flex-row"],text:[":text-sm",":text-lg",":text-xl"],spacing:[":p-6",":p-8",":p-12",":gap-6",":gap-8",":gap-12"],width:[":w-1/2",":w-1/3",":w-1/4"],display:[":hidden",":block"]}},enhancements:[{id:"dropdown",selector:"nav[data-dropdown]",description:"Dropdown menu from nav element. Use data-dropdown-close on clickable descendants to dismiss on selection.",tags:["menu","interactive","navigation","dismiss","close"]},{id:"dropdown-close",selector:"[data-dropdown-close]",description:"Declarative close marker for nav[data-dropdown] panels; clicking marked targets closes the open dropdown.",tags:["dropdown","menu","dismiss","close","attribute"]},{id:"toggle",selector:"label[data-toggle]",description:"Toggle switch from checkbox",tags:["switch","boolean","form"]},{id:"color-input",selector:"label[data-color]",description:"Enhanced color input with swatch shell and hex output",tags:["color","input","form"]},{id:"range",selector:'input[type="range"]',description:"Enhanced range slider with output",tags:["slider","input","form"]},{id:"required",selector:"form [required]",description:"Required field asterisk indicator",tags:["validation","form","accessibility"]},{id:"open-group",selector:"fieldset[role=group][data-open]",description:"Editable checkbox/radio group",tags:["form","dynamic","editable"]},{id:"working-button",selector:"button.btn-working, a.btn-working",description:"Button with loading spinner",tags:["loading","async","feedback"]},{id:"labeled-divider",selector:"hr[data-content]",description:"Horizontal rule with centered label",tags:["divider","separator","text"]}],categories:{feedback:{description:"User feedback and status indicators",primitives:["callout","badge","empty-state"],components:["pds-toaster"]},form:{description:"Form inputs and controls",primitives:["button","fieldset","label-field","form"],components:["pds-upload","pds-form","pds-richtext","pds-calendar"]},layout:{description:"Page structure and content arrangement",patterns:["container","grid","flex","stack","section"],components:["pds-splitpanel","pds-scrollrow"]},navigation:{description:"Navigation and routing",primitives:["navigation"],components:["pds-tabstrip","pds-drawer"]},media:{description:"Images, icons, and visual content",primitives:["icon","figure","gallery"],components:["pds-icon"]},overlay:{description:"Modal and overlay content",primitives:["dialog"],components:["pds-drawer"]},data:{description:"Data display and tables",primitives:["table"]},theming:{description:"Colors, surfaces, and visual theming",primitives:["surface"]},action:{description:"Interactive actions and buttons",primitives:["button"],components:["pds-fab"]}},styles:{typography:["headings","body","code","links"],icons:{source:"svg",sets:["core","brand"]},interactive:["focus","hover","active","disabled"],states:["success","warning","danger","info","muted"]},searchRelations:{text:["typography","truncate","text-muted","text-primary","text-left","text-center","text-right","pds-richtext","heading","font","label","paragraph","content","ellipsis","overflow","input"],font:["typography","text","heading","font-size","font-weight","font-family"],type:["typography","text","font"],typography:["text","font","heading","truncate","text-muted"],heading:["typography","text","font-size","h1","h2","h3"],truncate:["text","overflow","ellipsis","clamp","nowrap","typography"],ellipsis:["truncate","text","overflow","clamp"],overflow:["truncate","scroll","hidden","text"],paragraph:["text","typography","content","body"],content:["text","typography","body","article"],empty:["empty-state","placeholder","zero","no-data","onboarding","callout","card","icon","button"],"empty state":["empty-state","empty","no-data","zero","onboarding"],"no data":["empty-state","empty","zero","placeholder"],form:["input","field","label","button","fieldset","pds-form","pds-upload","pds-richtext","pds-calendar","required","validation","submit"],input:["form","field","text","label","required","validation"],field:["form","input","label","required"],button:["btn","interactive","action","submit","form","btn-primary","btn-secondary","btn-danger","btn-working","pds-fab","floating"],btn:["button","interactive","action","pds-fab"],fab:["pds-fab","floating","button","action","menu"],floating:["fab","pds-fab","button","action"],toggle:["switch","checkbox","boolean","form","interactive"],switch:["toggle","checkbox","boolean"],slider:["range","input","form"],range:["slider","input","form"],checkbox:["toggle","form","fieldset","boolean"],radio:["fieldset","form","group"],select:["dropdown","form","input","menu"],upload:["file","pds-upload","form","drag-drop"],file:["upload","pds-upload","form"],modal:["dialog","pds-ask","overlay","popup","backdrop","pds-drawer","alert","confirm","prompt","lightbox"],dialog:["modal","pds-ask","overlay","popup","backdrop","alert","confirm","prompt"],popup:["modal","dialog","dropdown","popover","overlay","tooltip"],popover:["popup","tooltip","overlay"],overlay:["modal","dialog","backdrop","drawer","popup"],drawer:["pds-drawer","sidebar","panel","overlay","modal"],backdrop:["overlay","modal","dialog","blur"],confirm:["pds-ask","dialog","modal"],prompt:["pds-ask","dialog","modal","input"],ask:["pds-ask","dialog","confirm","prompt","modal"],dropdown:["menu","nav-dropdown","select","popover"],menu:["dropdown","navigation","nav","list"],nav:["navigation","menu","dropdown","tabs","links"],navigation:["nav","menu","tabs","pds-tabstrip","links","routing"],tabs:["pds-tabstrip","navigation","panels"],tab:["tabs","pds-tabstrip","panel"],link:["navigation","anchor","href","routing"],callout:["notification","feedback","message","status","toast","information","alert","warning","error","info","success","danger"],alert:["callout","notification","feedback","message","status","toast","modal","dialog","pds-ask","confirm","warning","error","info","success","danger"],notification:["callout","toast","pds-toaster","feedback","message","popup","alert"],toast:["pds-toaster","notification","callout","feedback","popup","snackbar","alert"],feedback:["callout","notification","toast","status","badge","validation","error","success","alert"],message:["callout","notification","feedback","dialog","toast","alert"],status:["badge","callout","indicator","feedback","state","alert"],error:["callout","danger","validation","feedback","warning","alert"],success:["callout","feedback","badge","status","check","alert"],warning:["callout","caution","feedback","status","alert"],info:["callout","information","feedback","status","alert"],danger:["callout","error","feedback","destructive","delete","alert"],badge:["status","pill","tag","chip","indicator","label"],pill:["badge","tag","chip"],tag:["badge","pill","chip","label"],chip:["badge","pill","tag"],layout:["grid","flex","stack","container","gap","spacing","pds-splitpanel","section"],grid:["layout","columns","css-grid","table","gallery"],flex:["layout","flexbox","alignment","row","column"],stack:["layout","vertical","spacing","column","gap"],container:["wrapper","layout","max-width","centered"],gap:["spacing","margin","padding","layout"],spacing:["gap","margin","padding","section"],section:["spacing","layout","container","page"],split:["pds-splitpanel","resizable","panels","layout"],panel:["pds-splitpanel","drawer","sidebar","section"],card:["surface","container","elevated","content"],surface:["card","background","elevated","theming","color"],box:["card","container","surface"],elevated:["surface","shadow","card"],color:["palette","theme","surface","primary","secondary","accent"],colours:["color","palette","theme"],palette:["color","theme","tokens"],theme:["color","palette","dark","light","surface"],primary:["color","button","badge","surface"],secondary:["color","button","badge","surface"],accent:["color","highlight","surface"],border:["border-gradient","border-glow","outline","radius"],effect:["border-gradient","border-glow","shadow","glass","animation"],gradient:["border-gradient","color","background"],glow:["border-glow","effect","shadow"],shadow:["elevated","effect","depth","card"],radius:["rounded","border","corner"],rounded:["radius","border","corner"],glass:["liquid-glass","backdrop","blur","effect"],icon:["pds-icon","graphic","symbol","svg","phosphor"],image:["img","figure","gallery","media","picture"],img:["image","figure","gallery","media"],figure:["image","media","caption"],gallery:["images","grid","collection","media"],media:["image","icon","figure","gallery","video"],table:["data","grid","tabular","rows","columns"],data:["table","json","form","display"],editor:["pds-richtext","wysiwyg","text","content"],wysiwyg:["editor","pds-richtext","richtext"],richtext:["pds-richtext","editor","wysiwyg","text"],calendar:["pds-calendar","date","picker","datepicker"],date:["calendar","pds-calendar","picker","input"],datepicker:["calendar","date","pds-calendar"],scroll:["pds-scrollrow","carousel","horizontal","overflow"],carousel:["scroll","pds-scrollrow","slider","gallery"],accordion:["details","collapsible","expandable","disclosure"],collapsible:["accordion","details","expandable"],expandable:["accordion","collapsible","disclosure"],details:["accordion","summary","disclosure"],divider:["hr","separator","line","rule"],separator:["divider","hr","line"],hr:["divider","separator","horizontal-rule"],interactive:["hover","focus","active","disabled","button","link"],hover:["interactive","effect","state"],focus:["interactive","accessibility","state","outline"],disabled:["interactive","state","muted"],loading:["btn-working","spinner","async","progress"],spinner:["loading","btn-working","progress"],accessibility:["a11y","aria","focus","label","required"],a11y:["accessibility","aria","semantic"],aria:["accessibility","a11y","role"],required:["form","validation","asterisk","input"],validation:["form","required","error","feedback"],start:["getting-started","intro","overview","whatispds"],intro:["getting-started","overview","start","docs"],getting:["getting-started","start","intro"],overview:["intro","start","summary","layout-overview"],docs:["documentation","reference","guide"],primitive:["primitives"],component:["components"],enhancement:["enhancements"],foundation:["foundations","color","icon","typography","spacing","tokens"],utility:["utilities","text","backdrop","shadow","border","helper"],pattern:["patterns","layout","responsive","mobile-stack"]}};ao=q});var dt={};Ft(dt,{deepMerge:()=>Qr,fragmentFromTemplateLike:()=>nr,isObject:()=>lt,parseFragment:()=>ct,parseHTML:()=>or});function lt(t){return t&&typeof t=="object"&&!Array.isArray(t)}function Qr(t,e){let r={...t};return lt(t)&<(e)&&Object.keys(e).forEach(n=>{lt(e[n])?n in t?r[n]=Qr(t[n],e[n]):Object.assign(r,{[n]:e[n]}):Object.assign(r,{[n]:e[n]})}),r}function nr(t){let e=Array.isArray(t?.strings)?t.strings:[],r=Array.isArray(t?.values)?t.values:[],n=new Set,o=[],a=/(\s)(\.[\w-]+)=\s*$/,i=/(\s)(@[\w-]+)=\s*$/,s=/(\s)(\?[\w-]+)=\s*$/,d=/(\s)([\w:-]+)=\s*$/;for(let g=0;g<e.length;g+=1){let x=e[g]??"";if(g<r.length){let b=`pds-val-${g}`,f=x.match(a),h=x.match(i),v=x.match(s),m=x.match(d);if(f){let S=f[2].slice(1);x=x.replace(a,`$1data-pds-bind-${g}="prop:${S}:${b}"`),n.add(g)}else if(h){let S=h[2].slice(1);x=x.replace(i,`$1data-pds-bind-${g}="event:${S}:${b}"`),n.add(g)}else if(v){let S=v[2].slice(1);x=x.replace(s,`$1data-pds-bind-${g}="boolean:${S}:${b}"`),n.add(g)}else if(m){let S=m[2];x=x.replace(d,`$1data-pds-bind-${g}="attr:${S}:${b}"`),n.add(g)}}o.push(x),g<r.length&&!n.has(g)&&o.push(`<!--pds-val-${g}-->`)}let l=document.createElement("template");l.innerHTML=o.join("");let p=(g,x)=>{let b=g.parentNode;if(!b)return;if(x==null){b.removeChild(g);return}let f=h=>{if(h!=null){if(h instanceof Node){b.insertBefore(h,g);return}if(Array.isArray(h)){h.forEach(v=>f(v));return}b.insertBefore(document.createTextNode(String(h)),g)}};f(x),b.removeChild(g)},c=document.createTreeWalker(l.content,NodeFilter.SHOW_COMMENT),u=[];for(;c.nextNode();){let g=c.currentNode;g?.nodeValue?.startsWith("pds-val-")&&u.push(g)}return u.forEach(g=>{let x=Number(g.nodeValue.replace("pds-val-",""));p(g,r[x])}),l.content.querySelectorAll("*").forEach(g=>{[...g.attributes].forEach(x=>{if(!x.name.startsWith("data-pds-bind-"))return;let b=x.value.indexOf(":"),f=x.value.lastIndexOf(":");if(b<=0||f<=b){g.removeAttribute(x.name);return}let h=x.value.slice(0,b),v=x.value.slice(b+1,f),m=x.value.slice(f+1),S=Number(String(m).replace("pds-val-","")),C=r[S];if(!v||!Number.isInteger(S)){g.removeAttribute(x.name);return}h==="prop"?g[v]=C:h==="event"?(typeof C=="function"||C&&typeof C.handleEvent=="function")&&g.addEventListener(v,C):h==="boolean"?C?g.setAttribute(v,""):g.removeAttribute(v):h==="attr"&&(C==null||C===!1?g.removeAttribute(v):g.setAttribute(v,String(C))),g.removeAttribute(x.name)})}),l.content}function ct(t,...e){if(Array.isArray(t)&&Object.prototype.hasOwnProperty.call(t,"raw"))return nr({strings:Array.from(t),values:e});if(Array.isArray(t?.strings)&&Array.isArray(t?.values))return nr({strings:t.strings,values:t.values});let n=document.createElement("template");return n.innerHTML=String(t??""),n.content}function or(t,...e){return ct(t,...e).childNodes}var ar=_t(()=>{});_e();var re="any",Ne={type:"object",allowUnknown:!1,properties:{id:{type:"string",minLength:1,maxLength:64},name:{type:"string",minLength:1,maxLength:80},tags:{type:"array",uniqueItems:!0,items:{type:"string"}},themes:{type:"array",uniqueItems:!0,items:{type:"string",oneOf:[{const:"light",title:"Light"},{const:"dark",title:"Dark"},{const:"system",title:"System"}]}},description:{type:"string",maxLength:500},options:{type:"object",allowUnknown:!0,properties:{liquidGlassEffects:{type:"boolean"},backgroundMesh:{type:"number"}}},form:{type:"object",allowUnknown:!0,properties:{options:{type:"object",allowUnknown:!0,properties:{widgets:{type:"object",allowUnknown:!1,properties:{booleans:{type:"string"},numbers:{type:"string"},selects:{type:"string"}}},layouts:{type:"object",allowUnknown:!1,properties:{fieldsets:{type:"string"},arrays:{type:"string"}}},enhancements:{type:"object",allowUnknown:!1,properties:{icons:{type:"boolean"},datalists:{type:"boolean"},rangeOutput:{type:"boolean"},colorInput:{type:"boolean"}}},validation:{type:"object",allowUnknown:!1,properties:{showErrors:{type:"boolean"},validateOnChange:{type:"boolean"}}}}}}},colors:{type:"object",allowUnknown:!1,properties:{primary:{type:"string",relations:{tokens:["--color-primary-*","--color-primary-fill","--color-primary-text","--background-mesh-*"]}},secondary:{type:"string",relations:{tokens:["--color-secondary-*","--color-gray-*","--background-mesh-*"]}},accent:{type:"string",relations:{tokens:["--color-accent-*","--background-mesh-*"]}},background:{type:"string",relations:{tokens:["--color-surface-*","--color-surface-translucent-*","--surface-*-bg","--surface-*-text","--surface-*-text-secondary","--surface-*-text-muted","--surface-*-icon","--surface-*-icon-subtle","--surface-*-shadow","--surface-*-border"]}},success:{type:["string","null"],relations:{tokens:["--color-success-*","--color-success-fill","--color-success-fill-hover","--color-success-fill-active","--color-success-text","--color-success-text-hover","--color-success-contrast","--color-success-display-*","--surface-*-success-text","--surface-*-success-text-hover"]}},warning:{type:["string","null"],relations:{tokens:["--color-warning-*","--color-warning-fill","--color-warning-fill-hover","--color-warning-fill-active","--color-warning-text","--color-warning-text-hover","--color-warning-contrast","--color-warning-display-*","--surface-*-warning-text","--surface-*-warning-text-hover"]}},danger:{type:["string","null"],relations:{tokens:["--color-danger-*","--color-danger-fill","--color-danger-fill-hover","--color-danger-fill-active","--color-danger-text","--color-danger-text-hover","--color-danger-contrast","--color-danger-display-*","--surface-*-danger-text","--surface-*-danger-text-hover"]}},info:{type:["string","null"],relations:{tokens:["--color-info-*","--color-info-fill","--color-info-fill-hover","--color-info-fill-active","--color-info-text","--color-info-text-hover","--color-info-contrast","--color-info-display-*","--surface-*-info-text","--surface-*-info-text-hover"]}},gradientStops:{type:"number"},elevationOpacity:{type:"number",relations:{tokens:["--surface-*-shadow"]}},darkMode:{type:"object",allowUnknown:!1,properties:{background:{type:"string",relations:{theme:"dark",tokens:["--color-surface-*","--color-surface-translucent-*","--surface-*-bg","--surface-*-text","--surface-*-text-secondary","--surface-*-text-muted","--surface-*-icon","--surface-*-icon-subtle","--surface-*-shadow","--surface-*-border"]}},primary:{type:"string",relations:{theme:"dark",tokens:["--color-primary-*","--color-primary-fill","--color-primary-text"]}},secondary:{type:"string",relations:{theme:"dark",tokens:["--color-secondary-*","--color-gray-*"]}},accent:{type:"string",relations:{theme:"dark",tokens:["--color-accent-*"]}}}}}},typography:{type:"object",allowUnknown:!1,properties:{fontFamilyHeadings:{type:"string",relations:{tokens:["--font-family-headings"]}},fontFamilyBody:{type:"string",relations:{tokens:["--font-family-body"]}},fontFamilyMono:{type:"string",relations:{tokens:["--font-family-mono"]}},baseFontSize:{type:"number",relations:{tokens:["--font-size-*"]}},fontScale:{type:"number",relations:{tokens:["--font-size-*"]}},fontWeightLight:{type:["string","number"],relations:{tokens:["--font-weight-light"]}},fontWeightNormal:{type:["string","number"],relations:{tokens:["--font-weight-normal"]}},fontWeightMedium:{type:["string","number"],relations:{tokens:["--font-weight-medium"]}},fontWeightSemibold:{type:["string","number"],relations:{tokens:["--font-weight-semibold"]}},fontWeightBold:{type:["string","number"],relations:{tokens:["--font-weight-bold"]}},lineHeightTight:{type:["string","number"],relations:{tokens:["--font-line-height-tight"]}},lineHeightNormal:{type:["string","number"],relations:{tokens:["--font-line-height-normal"]}},lineHeightRelaxed:{type:["string","number"],relations:{tokens:["--font-line-height-relaxed"]}},letterSpacingTight:{type:"number"},letterSpacingNormal:{type:"number"},letterSpacingWide:{type:"number"}}},spatialRhythm:{type:"object",allowUnknown:!1,properties:{baseUnit:{type:"number",relations:{tokens:["--spacing-*"]}},scaleRatio:{type:"number"},maxSpacingSteps:{type:"number",relations:{tokens:["--spacing-*"]}},containerPadding:{type:"number"},inputPadding:{type:"number",relations:{rules:[{selectors:["input","textarea","select"],properties:["padding"]}]}},buttonPadding:{type:"number",relations:{rules:[{selectors:["button",".btn"],properties:["padding"]}]}},sectionSpacing:{type:"number",relations:{rules:[{selectors:["section"],properties:["margin","padding"]}]}}}},shape:{type:"object",allowUnknown:!1,properties:{radiusSize:{type:["string","number"],relations:{tokens:["--radius-*"]}},customRadius:{type:["string","number","null"]},borderWidth:{type:["string","number"],relations:{tokens:["--border-width-*"]}}}},behavior:{type:"object",allowUnknown:!1,properties:{transitionSpeed:{type:["string","number"],relations:{tokens:["--transition-*"]}},animationEasing:{type:"string"},customTransitionSpeed:{type:["number","null"]},customEasing:{type:["string","null"]},focusRingWidth:{type:"number",relations:{rules:[{selectors:[":focus-visible"],properties:["outline-width","box-shadow"]}]}},focusRingOpacity:{type:"number",relations:{rules:[{selectors:[":focus-visible"],properties:["box-shadow","outline-color"]}]}},hoverOpacity:{type:"number"}}},layout:{type:"object",allowUnknown:!1,properties:{maxWidth:{type:["number","string"],relations:{tokens:["--layout-max-width","--layout-max-width-*"]}},maxWidths:{type:"object",allowUnknown:!1,properties:{sm:{type:["number","string"],relations:{tokens:["--layout-max-width-sm"]}},md:{type:["number","string"],relations:{tokens:["--layout-max-width-md"]}},lg:{type:["number","string"],relations:{tokens:["--layout-max-width-lg"]}},xl:{type:["number","string"],relations:{tokens:["--layout-max-width-xl"]}}}},containerPadding:{type:["number","string"],relations:{tokens:["--layout-container-padding"]}},breakpoints:{type:"object",allowUnknown:!1,properties:{sm:{type:"number"},md:{type:"number"},lg:{type:"number"},xl:{type:"number"}}},gridColumns:{type:"number"},gridGutter:{type:"number"},densityCompact:{type:"number"},densityNormal:{type:"number"},densityComfortable:{type:"number"},buttonMinHeight:{type:"number"},inputMinHeight:{type:"number"},baseShadowOpacity:{type:"number",relations:{tokens:["--shadow-*"]}},darkMode:{type:"object",allowUnknown:!1,properties:{baseShadowOpacity:{type:"number",relations:{theme:"dark",tokens:["--shadow-*"]}}}},utilities:{type:"object",allowUnknown:!0,properties:{grid:{type:"boolean"},flex:{type:"boolean"},spacing:{type:"boolean"},container:{type:"boolean"}}},gridSystem:{type:"object",allowUnknown:!0,properties:{columns:{type:"array",items:{type:"number"}},autoFitBreakpoints:{type:"object",allowUnknown:!1,properties:{sm:{type:"string"},md:{type:"string"},lg:{type:"string"},xl:{type:"string"}}},enableGapUtilities:{type:"boolean"}}},containerMaxWidth:{type:["number","string"]}}},layers:{type:"object",allowUnknown:!1,properties:{baseShadowOpacity:{type:"number",relations:{tokens:["--shadow-*"]}},shadowBlurMultiplier:{type:"number",relations:{tokens:["--shadow-*"]}},shadowOffsetMultiplier:{type:"number",relations:{tokens:["--shadow-*"]}},shadowDepth:{type:"string"},blurLight:{type:"number"},blurMedium:{type:"number"},blurHeavy:{type:"number"},baseZIndex:{type:"number",relations:{tokens:["--z-*"]}},zIndexStep:{type:"number",relations:{tokens:["--z-*"]}},zIndexBase:{type:"number"},zIndexDropdown:{type:"number"},zIndexSticky:{type:"number"},zIndexFixed:{type:"number"},zIndexModal:{type:"number"},zIndexPopover:{type:"number"},zIndexTooltip:{type:"number"},zIndexNotification:{type:"number"},darkMode:{type:"object",allowUnknown:!1,properties:{baseShadowOpacity:{type:"number",relations:{theme:"dark",tokens:["--shadow-*"]}}}}}},advanced:{type:"object",allowUnknown:!0,properties:{linkStyle:{type:"string"},colorDerivation:{type:"string"}}},a11y:{type:"object",allowUnknown:!0,properties:{minTouchTarget:{type:["string","number"]},prefersReducedMotion:{type:"boolean"},focusStyle:{type:"string"}}},icons:{type:"object",allowUnknown:!1,properties:{set:{type:"string"},weight:{type:"string"},defaultSize:{type:"number",relations:{tokens:["--icon-size"]}},sizes:{type:"object",allowUnknown:!0,properties:{xs:{type:["number","string"]},sm:{type:["number","string"]},md:{type:["number","string"]},lg:{type:["number","string"]},xl:{type:["number","string"]},"2xl":{type:["number","string"]}}},spritePath:{type:"string"},externalPath:{type:"string"},include:{type:"object",allowUnknown:!0,properties:{navigation:{type:"array",items:{type:"string"}},actions:{type:"array",items:{type:"string"}},communication:{type:"array",items:{type:"string"}},content:{type:"array",items:{type:"string"}},status:{type:"array",items:{type:"string"}},time:{type:"array",items:{type:"string"}},commerce:{type:"array",items:{type:"string"}},formatting:{type:"array",items:{type:"string"}},system:{type:"array",items:{type:"string"}}}}}},components:{type:"object",allowUnknown:!0},debug:{type:"boolean"}}},Kn={type:"object",allowUnknown:!0,properties:{mode:{type:"string"},preset:{type:"string"},design:Ne,enhancers:{type:["object","array"]},applyGlobalStyles:{type:"boolean"},manageTheme:{type:"boolean"},themeStorageKey:{type:"string"},preloadStyles:{type:"boolean"},criticalLayers:{type:"array",items:{type:"string"}},autoDefine:{type:"object",allowUnknown:!1,properties:{predefine:{type:"array",items:{type:"string"}},mapper:{type:re},enhancers:{type:["object","array"]},scanExisting:{type:"boolean"},observeShadows:{type:"boolean"},patchAttachShadow:{type:"boolean"},debounceMs:{type:"number"},onError:{type:re},baseURL:{type:"string"}}},managerURL:{type:"string"},manager:{type:re},liveEdit:{type:"boolean"},localization:{type:"object",allowUnknown:!1,properties:{locale:{type:"string"},locales:{type:"array",items:{type:"string"}},messages:{type:"object",allowUnknown:!0},provider:{type:re},translate:{type:re},loadLocale:{type:re},setLocale:{type:re}}},log:{type:re}}};function Fe(t){return t===null?"null":Array.isArray(t)?"array":typeof t}function Jn(t,e){if(e===re)return!0;let r=Fe(t);return Array.isArray(e)?e.includes(r):r===e}function Ze(t,e,r,n){if(!e)return;let o=e.type||re;if(!Jn(t,o)){n.push({path:r,expected:o,actual:Fe(t),message:`Expected ${o} but got ${Fe(t)}`});return}if(o==="array"&&e.items&&Array.isArray(t)&&t.forEach((a,i)=>{Ze(a,e.items,`${r}[${i}]`,n)}),o==="object"&&t&&typeof t=="object"){let a=e.properties||{};for(let[i,s]of Object.entries(t)){if(!Object.prototype.hasOwnProperty.call(a,i)){e.allowUnknown||n.push({path:`${r}.${i}`,expected:"known property",actual:"unknown",message:`Unknown property "${i}"`});continue}Ze(s,a[i],`${r}.${i}`,n)}}}function Nt(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;Nt(o,a,r)}),t.type==="array"&&t.items){let n=`${e}[]`;Nt(t.items,n,r)}return r}var Lr=Nt(Ne,""),zr=Ne,Yn={"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($.RadiusSizes).map(([t,e])=>({const:e,title:t}))},"shape.borderWidth":{widget:"select",oneOf:Object.entries($.BorderWidths).map(([t,e])=>({const:e,title:t}))},"shape.customRadius":{min:0,max:64,step:1,widget:"range"},"behavior.transitionSpeed":{oneOf:Object.entries($.TransitionSpeeds).map(([t,e])=>({const:e,title:t}))},"behavior.animationEasing":{enum:Object.values($.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($.LinkStyles)},"a11y.minTouchTarget":{oneOf:Object.entries($.TouchTargetSizes).map(([t,e])=>({const:e,title:t}))},"a11y.focusStyle":{enum:Object.values($.FocusStyles)},"icons.defaultSize":{min:8,max:128,step:1,widget:"range",icon:"sparkle"}};function xr(t=[]){return t.join(".")}function wr(t=[]){return`/${t.join("/")}`}function Xn(t,e=[]){if(!(!t||typeof t!="object"))return e.reduce((r,n)=>{if(r!=null&&typeof r=="object")return r[n]},t)}function kr(t,e,r=[]){if(t!=null)return t;let n=Xn(e,r);return n??void 0}function Pe(t=""){return String(t).replace(/([a-z])([A-Z])/g,"$1 $2").replace(/[_-]+/g," ").replace(/\s+/g," ").trim().replace(/^./,e=>e.toUpperCase())}function Cr(t,e){if(!t)return"string";let r=t.type||"string";if(Array.isArray(r)){let n=Fe(e);return n!=="undefined"&&r.includes(n)?n:r.includes("string")?"string":r.find(o=>o!=="null")||r[0]||"string"}return r}function Pt(t,e,r=[]){return!t||!e||!Array.isArray(r)||r.forEach(n=>{e[n]!==void 0&&(t[n]=e[n])}),t}function Sr(t,e){return Array.isArray(e?.oneOf)&&e.oneOf.length?e.oneOf:Array.isArray(e?.enum)&&e.enum.length?e.enum.map(r=>({const:r,title:Pe(r)})):Array.isArray(t?.oneOf)&&t.oneOf.length?t.oneOf:Array.isArray(t?.enum)&&t.enum.length?t.enum.map(r=>({const:r,title:Pe(r)})):null}function Zn(t){return t&&(t==="range"?"input-range":t)}function Qn(t,e){if(!Array.isArray(e)||!e.length)return t;let r=new Set;for(let n of e)!n||n.const===void 0||r.add(Fe(n.const));if(!r.size)return t;if(r.size===1){let n=Array.from(r)[0];if(n==="number")return"number";if(n==="string")return"string";if(n==="boolean")return"boolean"}return t}function $r(t,e,r){let n=Cr(e,r),o=t.toLowerCase(),a={label:Pe(t.split(".").slice(-1)[0]||t)};n==="boolean"&&(a.widget="toggle"),n==="number"&&(a.widget="range",o.includes("opacity")?(a.min=0,a.max=1,a.step=.01):o.includes("lineheight")?(a.min=.75,a.max=3,a.step=.001,a.widget="input-range"):o.includes("fontweight")?(a.min=100,a.max=800,a.step=100,a.widget="input-range"):o.endsWith("basefontsize")?(a.min=8,a.max=32,a.step=1,a.widget="input-range"):o.includes("scale")||o.includes("ratio")?(a.min=1,a.max=2,a.step=.01):(a.min=0,a.max=Math.max(10,Number.isFinite(Number(r))?Number(r)*4:100),a.step=1)),n==="string"&&t.startsWith("colors.")&&(a.widget="input-color"),n==="string"&&o==="description"&&(a.widget="textarea",a.maxLength=500,a.rows=4);let i=Yn[t]||{},s={...a,...i};return s.widget&&(s.widget=Zn(s.widget)),s}function Mr(t,e,r,n,o,a){if(!t||typeof t!="object")return null;let i=kr(e,a,r),s=Cr(t,i);if(s==="object"&&t.properties){let f={type:"object",properties:{}};r.length>0&&(f.title=Pe(r[r.length-1]));let h={};for(let[v,m]of Object.entries(t.properties)){let S=e&&typeof e=="object"&&!Array.isArray(e)?e[v]:void 0,C=Mr(m,S,[...r,v],n,o,a);C&&(f.properties[v]=C.schema,C.hasValue&&(h[v]=C.value))}return Object.keys(f.properties).length?{schema:f,value:h,hasValue:Object.keys(h).length>0}:null}if(s==="array"){let f=xr(r),h=$r(f,t,e);o[f]=h;let v=kr(e,a,r),m=t.items?.type||"string",S=Array.isArray(m)?m[0]:m,C={type:S},T=Sr(t?.items,null);if(T&&(C.oneOf=T),S==="string"&&Array.isArray(v)&&v.length>0){let M=v.find(k=>typeof k=="string"&&k.trim().length>0);M&&(C.examples=[M])}Pt(C,t?.items,["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","minLength","maxLength","pattern","format","minItems","maxItems","uniqueItems","description","default"]);let I={type:"array",items:C};Pt(I,t,["minItems","maxItems","uniqueItems","description","default"]);let z=wr(r),E={},P=Array.isArray(C.oneOf)&&C.oneOf.length>0;if(S==="string"&&P&&(E["ui:widget"]=I.maxItems===1?"radio":"checkbox-group"),S==="string"&&Array.isArray(v)&&v.length>0){let M=v.filter(k=>typeof k=="string"&&k.trim().length>0).slice(0,5).join(", ");M&&(E["ui:placeholder"]=M)}return Object.keys(E).length&&(n[z]={...n[z]||{},...E}),{schema:I,value:Array.isArray(e)?e:[],hasValue:Array.isArray(e)}}let d=xr(r),l=$r(d,t,i);o[d]=l;let p=Sr(t,l),y={type:Qn(s==="null"?"string":s,p),title:l.label||Pe(r[r.length-1]||d)};p&&(y.oneOf=p),Pt(y,t,["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","minLength","maxLength","pattern","format","description","default"]),typeof l.maxLength=="number"&&y.maxLength===void 0&&(y.maxLength=l.maxLength),(y.type==="number"||y.type==="integer")&&typeof l.min=="number"&&y.minimum===void 0&&(y.minimum=l.min),(y.type==="number"||y.type==="integer")&&typeof l.max=="number"&&y.maximum===void 0&&(y.maximum=l.max),(y.type==="number"||y.type==="integer")&&typeof l.step=="number"&&y.multipleOf===void 0&&(y.multipleOf=l.step);let g=i;g!==void 0&&(y.examples=[g]);let x=wr(r),b={};return l.widget&&(b["ui:widget"]=l.widget),l.icon&&(b["ui:icon"]=l.icon),typeof l.min=="number"&&(b["ui:min"]=l.min),typeof l.max=="number"&&(b["ui:max"]=l.max),typeof l.step=="number"&&(b["ui:step"]=l.step),l.placeholder&&(b["ui:placeholder"]=l.placeholder),typeof l.rows=="number"&&(b["ui:options"]={...b["ui:options"]||{},rows:l.rows}),l.widget==="input-range"&&g!==void 0&&(b["ui:allowUnset"]=!0),(typeof l.min=="number"||typeof l.max=="number"||typeof l.step=="number")&&(b["ui:options"]={...b["ui:options"]||{},...typeof l.min=="number"?{min:l.min}:{},...typeof l.max=="number"?{max:l.max}:{},...typeof l.step=="number"?{step:l.step}:{}}),Object.keys(b).length&&(n[x]=b),{schema:y,value:e,hasValue:e!==void 0}}function be(t={}){let e={},r={"/colors":{"ui:layout":"flex","ui:layoutOptions":{wrap:!0,gap:"sm"}},"/colors/darkMode":{"ui:layout":"flex","ui:layoutOptions":{wrap:!0,gap:"sm"}}},n=Q?.default&&typeof Q.default=="object"?Q.default:null,o=Mr(Ne,t,[],r,e,n);return{schema:o?.schema||{type:"object",properties:{}},uiSchema:r,values:o?.value||{},metadata:e}}function je(t={}){return be(t).metadata}function jt(t,{log:e,context:r="PDS config"}={}){if(!t||typeof t!="object")return[];let n=[];return Ze(t,Ne,"design",n),n.length&&typeof e=="function"&&n.forEach(o=>{e("warn",`[${r}] ${o.message} at ${o.path}`)}),n}function Ot(t,{log:e,context:r="PDS config"}={}){if(!t||typeof t!="object")return[];let n=[];return Ze(t,Kn,"config",n),n.length&&typeof e=="function"&&n.forEach(o=>{e("warn",`[${r}] ${o.message} at ${o.path}`)}),n}var Q={"ocean-breeze":{id:"ocean-breeze",name:"Ocean Breeze",tags:["playful"],description:"Fresh and calming ocean-inspired palette with professional undertones",options:{liquidGlassEffects:!0,backgroundMesh:3},colors:{primary:"#0891b2",secondary:"#64748b",accent:"#06b6d4",background:"#f0f9ff",darkMode:{background:"#0c1821",secondary:"#94a3b8",primary:"#0891b2"}},typography:{baseFontSize:17,fontScale:1.35,fontFamilyHeadings:'system-ui, -apple-system, "Segoe UI", Roboto, sans-serif',fontFamilyBody:'system-ui, -apple-system, "Segoe UI", Roboto, sans-serif'},spatialRhythm:{baseUnit:6,scaleRatio:1.2},shape:{radiusSize:$.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:$.RadiusSizes.small,borderWidth:$.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:$.RadiusSizes.xlarge,borderWidth:$.BorderWidths.medium},behavior:{transitionSpeed:$.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:$.RadiusSizes.none,borderWidth:$.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:$.RadiusSizes.xxlarge,borderWidth:$.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:$.RadiusSizes.none,borderWidth:$.BorderWidths.thick},behavior:{transitionSpeed:$.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:$.RadiusSizes.medium,borderWidth:$.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:$.RadiusSizes.small,borderWidth:$.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:$.RadiusSizes.medium,borderWidth:$.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:$.RadiusSizes.small,borderWidth:$.BorderWidths.thick},behavior:{transitionSpeed:$.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:$.LineHeights.relaxed},spatialRhythm:{baseUnit:6,scaleRatio:1.4},shape:{radiusSize:$.RadiusSizes.xxlarge,borderWidth:$.BorderWidths.thin},behavior:{transitionSpeed:$.TransitionSpeeds.slow,animationEasing:$.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:$.RadiusSizes.none,borderWidth:$.BorderWidths.thick},behavior:{transitionSpeed:$.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:$.RadiusSizes.large,borderWidth:$.BorderWidths.medium},behavior:{transitionSpeed:$.TransitionSpeeds.normal,animationEasing:$.AnimationEasings.ease}},"fitness-pro":{id:"fitness-pro",name:"Fitness Pro",tags:["app","featured"],description:"Health and fitness tracking aesthetic with data-driven dark surfaces and vibrant accent rings",options:{liquidGlassEffects:!0,backgroundMesh:2},colors:{primary:"#e91e63",secondary:"#78909c",accent:"#ab47bc",background:"#fafafa",darkMode:{background:"#1a1d21",secondary:"#78909c"}},typography:{baseFontSize:15,fontScale:1.25,fontFamilyHeadings:"'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif",fontFamilyBody:"'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif",fontWeightNormal:400,fontWeightMedium:500,fontWeightSemibold:600,fontWeightBold:700,lineHeightNormal:$.LineHeights.tight},spatialRhythm:{baseUnit:4,scaleRatio:1.25,containerPadding:1.25,sectionSpacing:2.5},shape:{radiusSize:$.RadiusSizes.large,borderWidth:$.BorderWidths.thin},layers:{shadowDepth:"medium",blurMedium:12},behavior:{transitionSpeed:$.TransitionSpeeds.fast,animationEasing:$.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:$.LineHeights.relaxed},spatialRhythm:{baseUnit:4,scaleRatio:1.25,containerPadding:1.5,sectionSpacing:3},shape:{radiusSize:$.RadiusSizes.medium,borderWidth:$.BorderWidths.thin},layers:{shadowDepth:"light",blurLight:8},behavior:{transitionSpeed:$.TransitionSpeeds.normal,animationEasing:$.AnimationEasings["ease-in-out"],hoverOpacity:.9}},"mobility-app":{id:"mobility-app",name:"Mobility App",tags:["app","featured"],description:"On-demand service platform with bold typography, map-ready colors, and action-driven UI",options:{liquidGlassEffects:!0,backgroundMesh:0},colors:{primary:"#000000",secondary:"#545454",accent:"#06c167",info:"#0e7490",background:"#f6f6f6",darkMode:{background:"#0f0f0f",secondary:"#8a8a8a",primary:"#b1b1b1"}},typography:{baseFontSize:16,fontScale:1.3,fontFamilyHeadings:"'UberMove', system-ui, -apple-system, 'Segoe UI', sans-serif",fontFamilyBody:"'UberMove', system-ui, -apple-system, 'Segoe UI', sans-serif",fontWeightNormal:400,fontWeightMedium:500,fontWeightSemibold:600,fontWeightBold:700},spatialRhythm:{baseUnit:4,scaleRatio:1.25,buttonPadding:1.25,inputPadding:1},shape:{radiusSize:$.RadiusSizes.small,borderWidth:$.BorderWidths.medium},behavior:{transitionSpeed:$.TransitionSpeeds.fast,animationEasing:$.AnimationEasings["ease-out"],focusRingWidth:3},a11y:{minTouchTarget:$.TouchTargetSizes.comfortable,focusStyle:$.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:$.RadiusSizes.medium,borderWidth:$.BorderWidths.thin},layers:{shadowDepth:"light",blurLight:6},behavior:{transitionSpeed:$.TransitionSpeeds.fast,animationEasing:$.AnimationEasings["ease-in-out"],focusRingWidth:3,focusRingOpacity:.4},a11y:{minTouchTarget:$.TouchTargetSizes.standard,focusStyle:$.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:$.LineHeights.relaxed},spatialRhythm:{baseUnit:4,scaleRatio:1.25,sectionSpacing:1.5},shape:{radiusSize:$.RadiusSizes.medium,borderWidth:$.BorderWidths.thin},behavior:{transitionSpeed:$.TransitionSpeeds.fast,animationEasing:$.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:$.LineHeights.tight},spatialRhythm:{baseUnit:4,scaleRatio:1.2,containerPadding:1.5,sectionSpacing:2},shape:{radiusSize:$.RadiusSizes.small,borderWidth:$.BorderWidths.thin},layers:{shadowDepth:"light",blurLight:4},behavior:{transitionSpeed:$.TransitionSpeeds.fast,animationEasing:$.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:$.FontWeights.light,fontWeightNormal:$.FontWeights.normal,fontWeightMedium:$.FontWeights.medium,fontWeightSemibold:$.FontWeights.semibold,fontWeightBold:$.FontWeights.bold,lineHeightTight:$.LineHeights.tight,lineHeightNormal:$.LineHeights.normal,lineHeightRelaxed:$.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:$.RadiusSizes.large,borderWidth:$.BorderWidths.medium,customRadius:null},behavior:{transitionSpeed:$.TransitionSpeeds.normal,animationEasing:$.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:$.LinkStyles.inline,colorDerivation:"hsl"},a11y:{minTouchTarget:$.TouchTargetSizes.standard,prefersReducedMotion:!0,focusStyle:$.FocusStyles.ring},icons:{set:"phosphor",weight:"regular",defaultSize:24,externalPath:"/assets/img/icons/",sizes:$.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 Er=je(Q.default),Ar=be(Q.default);function Bt(t="log",e,...r){let n=globalThis?.PDS?.log;if(typeof n=="function"){n(t,e,...r);return}if(typeof console>"u")return;let o=typeof console[t]=="function"?console[t].bind(console):typeof console.log=="function"?console.log.bind(console):null;o&&(r.length>0?o(e,...r):o(e))}_e();Dt();var Z=class t{static#v;static get instance(){return this.#v}#e;#a;constructor(e={}){this.options={debug:!1,...e},this.options.design||(this.options.design={}),this.options.debug&&this.options.log?.("debug","Generator options:",this.options),t.#v=this,this.tokens=this.generateTokens(),this.options.debug&&this.options.log?.("debug","Generated tokens:",this.tokens),this.#Se(),typeof CSSStyleSheet<"u"?this.#Me():this.options.debug&&this.options.log?.("debug","[Generator] Skipping browser features (CSSStyleSheet not available)")}generateTokens(){let e=this.options.design||{},r=this.#A(e),n=e.layers||{},o=this.#w(n,r.light),a=this.#M(o),i=r.dark!=null?this.#M(this.#w(n,r.dark)):null;return{colors:this.#T(e.colors||{},r),spacing:this.generateSpacingTokens(e.spatialRhythm||{}),radius:this.#O(e.shape||{}),borderWidths:this.#B(e.shape||{}),typography:this.generateTypographyTokens(e.typography||{}),shadows:a,darkShadows:i,layout:this.#D(e.layout||{}),transitions:this.#H(e.behavior||{}),zIndex:this.#W(e.layers||{}),icons:this.#U(e.icons||{})}}#A(e={}){let r=e.layout||{},n=e.layers||{};return{light:this.#x(r.baseShadowOpacity??n.baseShadowOpacity),dark:this.#x(r.darkMode?.baseShadowOpacity??n.darkMode?.baseShadowOpacity)}}#x(e){let r=Number(e);if(Number.isFinite(r))return Math.min(Math.max(r,0),1)}#w(e={},r){let n={...e};return r!=null&&(n.baseShadowOpacity=r),n}#T(e,r={}){let{primary:n="#3b82f6",secondary:o="#64748b",accent:a="#ec4899",background:i="#ffffff",success:s=null,warning:d="#FFBF00",danger:l=null,info:p=null,darkMode:c={}}=e,u={primary:this.#i(n),secondary:this.#i(o),accent:this.#i(a),success:this.#i(s||this.#R(n)),warning:this.#i(d||a),danger:this.#i(l||this.#I(n)),info:this.#i(p||n),gray:this.#k(o),surface:this.#S(i)};return u.surface.fieldset=this.#_(u.surface),u.surfaceSmart=this.#C(u.surface,r),u.dark=this.#F(u,i,c),u.dark&&u.dark.surface&&(u.dark.surfaceSmart=this.#C(u.dark.surface,r)),u.interactive={light:this.#r(u.primary,u.surface.base),dark:this.#r(u.dark.primary,u.dark.surface.base)},u.accentInteractive={light:this.#r(u.accent,u.surface.base),dark:this.#r(u.dark.accent,u.dark.surface.base)},u.surfaceAccent={light:this.#n(u.accent,u.surface),dark:this.#n(u.dark.accent,u.dark.surface)},u.dangerInteractive={light:this.#r(u.danger,u.surface.base),dark:this.#r(u.dark.danger,u.dark.surface.base)},u.successInteractive={light:this.#r(u.success,u.surface.base),dark:this.#r(u.dark.success,u.dark.surface.base)},u.warningInteractive={light:this.#r(u.warning,u.surface.base),dark:this.#r(u.dark.warning,u.dark.surface.base)},u.infoInteractive={light:this.#r(u.info,u.surface.base),dark:this.#r(u.dark.info,u.dark.surface.base)},u.surfaceStatus={light:{success:this.#n(u.success,u.surface),warning:this.#n(u.warning,u.surface),info:this.#n(u.info,u.surface),danger:this.#n(u.danger,u.surface)},dark:{success:this.#n(u.dark.success,u.dark.surface),warning:this.#n(u.dark.warning,u.dark.surface),info:this.#n(u.dark.info,u.dark.surface),danger:this.#n(u.dark.danger,u.dark.surface)}},u}#i(e){let r=this.#s(e);return{50:this.#t(r.h,Math.max(r.s-10,10),Math.min(r.l+45,95)),100:this.#t(r.h,Math.max(r.s-5,15),Math.min(r.l+35,90)),200:this.#t(r.h,r.s,Math.min(r.l+25,85)),300:this.#t(r.h,r.s,Math.min(r.l+15,75)),400:this.#t(r.h,r.s,Math.min(r.l+5,65)),500:e,600:this.#t(r.h,r.s,Math.max(r.l-10,25)),700:this.#t(r.h,r.s,Math.max(r.l-20,20)),800:this.#t(r.h,r.s,Math.max(r.l-30,15)),900:this.#t(r.h,r.s,Math.max(r.l-40,10))}}#R(e){let r=this.#s(e);return this.#t(120,Math.max(r.s,60),45)}#I(e){let r=this.#s(e);return this.#t(0,Math.max(r.s,70),50)}#k(e){let r=this.#s(e),n=r.h,o=Math.min(r.s,10);return{50:this.#t(n,o,98),100:this.#t(n,o,95),200:this.#t(n,o,88),300:this.#t(n,o,78),400:this.#t(n,o,60),500:e,600:this.#t(n,Math.min(o+5,15),45),700:this.#t(n,Math.min(o+8,18),35),800:this.#t(n,Math.min(o+10,20),20),900:this.#t(n,Math.min(o+12,22),10)}}#S(e){let r=this.#s(e);return{base:e,subtle:this.#t(r.h,Math.max(r.s,2),Math.max(r.l-2,2)),elevated:this.#t(r.h,Math.max(r.s,3),Math.max(r.l-4,5)),sunken:this.#t(r.h,Math.max(r.s,4),Math.max(r.l-6,8)),overlay:this.#t(r.h,Math.max(r.s,2),Math.min(r.l+2,98)),inverse:this.#$(e),hover:"color-mix(in oklab, var(--color-surface-base) 92%, var(--color-text-primary) 8%);"}}#_(e){return{base:e.subtle,subtle:e.elevated,elevated:e.sunken,sunken:this.#h(e.sunken,.05),overlay:e.elevated}}#h(e,r=.05){let n=this.#s(e),o=Math.max(n.l-n.l*r,5);return this.#t(n.h,n.s,o)}#$(e){let r=this.#s(e);if(r.l>50){let n=Math.min(r.s+5,25),o=Math.max(12-(r.l-50)*.1,8);return this.#t(r.h,n,o)}else{let n=Math.max(r.s-10,5),o=Math.min(85+(50-r.l)*.3,95);return this.#t(r.h,n,o)}}#F(e,r="#ffffff",n={}){let o=n.background?n.background:this.#$(r),a=this.#S(o),i=(s,d)=>s?this.#i(s):d;return{surface:{...a,fieldset:this.#N(a)},primary:i(n.primary,e.primary),secondary:i(n.secondary,e.secondary),accent:i(n.accent,e.accent),gray:n.secondary?this.#k(n.secondary):e.gray,success:i(n.success,e.success),info:i(n.info,e.info),warning:i(n.warning,e.warning),danger:i(n.danger,e.danger)}}#p(e){let r=String(e||"").replace("#",""),n=r.length===3?r.split("").map(a=>a+a).join(""):r,o=parseInt(n,16);return{r:o>>16&255,g:o>>8&255,b:o&255}}#u(e){let{r,g:n,b:o}=this.#p(e),a=[r/255,n/255,o/255].map(i=>i<=.03928?i/12.92:Math.pow((i+.055)/1.055,2.4));return .2126*a[0]+.7152*a[1]+.0722*a[2]}#g(e,r){let n=this.#u(e),o=this.#u(r),a=Math.max(n,o),i=Math.min(n,o);return(a+.05)/(i+.05)}#f(e,r=4.5){if(!e)return"#000000";let n="#ffffff",o="#000000",a=this.#g(e,n);if(a>=r)return n;let i=this.#g(e,o);return i>=r||i>a?o:n}#L(e,r=1){let{r:n,g:o,b:a}=this.#p(e);return`rgba(${n}, ${o}, ${a}, ${r})`}#z(e,r,n=.5){let o=this.#p(e),a=this.#p(r),i=Math.round(o.r+(a.r-o.r)*n),s=Math.round(o.g+(a.g-o.g)*n),d=Math.round(o.b+(a.b-o.b)*n);return this.#P(i,s,d)}#P(e,r,n){let o=a=>{let i=Math.max(0,Math.min(255,Math.round(a))).toString(16);return i.length===1?"0"+i:i};return`#${o(e)}${o(r)}${o(n)}`}#N(e){return{base:e.elevated,subtle:e.overlay,elevated:this.#m(e.elevated,.08),sunken:e.elevated,overlay:this.#m(e.overlay,.05)}}#c(e={},r="#000000",n=4.5){let o=["600","700","800","500","400","900","300","200"],a={shade:null,color:null,ratio:0};for(let i of o){let s=e?.[i];if(!s||typeof s!="string")continue;let d=this.#g(s,r);if(d>a.ratio&&(a={shade:i,color:s,ratio:d}),d>=n)return s}return a.color||e?.["600"]||e?.["500"]}#r(e={},r="#ffffff"){let n=this.#u(r)<.18,o=this.#j(e,4.5),a=n?this.#m(o,.15):this.#h(o,.1),i=n?this.#m(o,.07):this.#h(o,.2),s=this.#c(e,r,4.5),d=this.#c(e,r,5.5),l=this.#c(e,r,3);return{fill:o,fillHover:a,fillActive:i,text:s,textHover:d||s,textVisited:this.#z(s||o,r,.2),focusRing:l||s||o,selectionBg:s||o,selectionText:this.#f(s||o,4.5),contrast:this.#f(o,4.5)}}#n(e={},r={}){let n={};return Object.entries(r).forEach(([o,a])=>{if(!a||typeof a!="string"||!a.startsWith("#"))return;let i=this.#c(e,a,4.5),s=this.#c(e,a,5);n[o]={text:i,textHover:s||i}}),n}#j(e={},r=4.5){let n=["600","700","800","500","400","900"],o={shade:null,color:null,ratio:0};for(let a of n){let i=e?.[a];if(!i||typeof i!="string")continue;let s=this.#g(i,"#ffffff");if(s>o.ratio&&(o={shade:a,color:i,ratio:s}),s>=r)return i}return o.color||e?.["600"]||e?.["500"]}#C(e,r={}){let n={},o=r.light??.1,a=r.dark??.25;return Object.entries(e).forEach(([i,s])=>{if(!s||typeof s!="string"||!s.startsWith("#"))return;let d=this.#u(s)<.5,l=this.#f(s,4.5),p=this.#f(s,3),c=this.#z(l,s,.4),u=l,y=c,g=d?"#ffffff":"#000000",x=d?a:o,b=this.#L(g,x),f=d?"#ffffff":"#000000",h=d?.15:.1,v=this.#L(f,h);n[i]={bg:s,text:l,textSecondary:p,textMuted:c,icon:u,iconSubtle:y,shadow:b,border:v,scheme:d?"dark":"light"}}),n}#m(e,r=.05){let n=this.#s(e),o=Math.min(n.l+(100-n.l)*r,95);return this.#t(n.h,n.s,o)}generateSpacingTokens(e){let{baseUnit:r=4,scaleRatio:n=1.25,maxSpacingSteps:o=12}=e,a=Number.isFinite(Number(r))?Number(r):4,i=Math.min(Number.isFinite(Number(o))?Number(o):12,12),s={0:"0"};for(let d=1;d<=i;d++)s[d]=`${a*d}px`;return s}#O(e){let{radiusSize:r="medium",customRadius:n=null}=e,o;n!=null?o=n:typeof r=="number"?o=r:typeof r=="string"?o=$.RadiusSizes[r]??$.RadiusSizes.medium:o=$.RadiusSizes.medium;let a=Number.isFinite(Number(o))?Number(o):$.RadiusSizes.medium;return{none:"0",xs:`${Number.isFinite(a*.25)?Math.round(a*.25):0}px`,sm:`${Number.isFinite(a*.5)?Math.round(a*.5):0}px`,md:`${a}px`,lg:`${Number.isFinite(a*1.5)?Math.round(a*1.5):0}px`,xl:`${Number.isFinite(a*2)?Math.round(a*2):0}px`,full:"9999px"}}#B(e){let{borderWidth:r="medium"}=e,n;typeof r=="number"?n=r:typeof r=="string"?n=$.BorderWidths[r]??$.BorderWidths.medium:n=$.BorderWidths.medium;let o=Number.isFinite(Number(n))?Number(n):$.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=$.FontWeights.light,fontWeightNormal:d=$.FontWeights.normal,fontWeightMedium:l=$.FontWeights.medium,fontWeightSemibold:p=$.FontWeights.semibold,fontWeightBold:c=$.FontWeights.bold,lineHeightTight:u=$.LineHeights.tight,lineHeightNormal:y=$.LineHeights.normal,lineHeightRelaxed:g=$.LineHeights.relaxed}=e,x=Number.isFinite(Number(a))?Number(a):16,b=Number.isFinite(Number(i))?Number(i):1.25;return{fontFamily:{headings:r,body:n,mono:o},fontSize:{xs:`${Math.round(x/Math.pow(b,2))}px`,sm:`${Math.round(x/b)}px`,base:`${x}px`,lg:`${Math.round(x*b)}px`,xl:`${Math.round(x*Math.pow(b,2))}px`,"2xl":`${Math.round(x*Math.pow(b,3))}px`,"3xl":`${Math.round(x*Math.pow(b,4))}px`,"4xl":`${Math.round(x*Math.pow(b,5))}px`},fontWeight:{light:s?.toString()||"300",normal:d?.toString()||"400",medium:l?.toString()||"500",semibold:p?.toString()||"600",bold:c?.toString()||"700"},lineHeight:{tight:u?.toString()||"1.25",normal:y?.toString()||"1.5",relaxed:g?.toString()||"1.75"}}}#M(e){let{baseShadowOpacity:r=.1,shadowBlurMultiplier:n=1,shadowOffsetMultiplier:o=1}=e,a=`rgba(0, 0, 0, ${r})`,i=`rgba(0, 0, 0, ${r*.5})`;return{sm:`0 ${1*o}px ${2*n}px 0 ${i}`,base:`0 ${1*o}px ${3*n}px 0 ${a}, 0 ${1*o}px ${2*n}px 0 ${i}`,md:`0 ${4*o}px ${6*n}px ${-1*o}px ${a}, 0 ${2*o}px ${4*n}px ${-1*o}px ${i}`,lg:`0 ${10*o}px ${15*n}px ${-3*o}px ${a}, 0 ${4*o}px ${6*n}px ${-2*o}px ${i}`,xl:`0 ${20*o}px ${25*n}px ${-5*o}px ${a}, 0 ${10*o}px ${10*n}px ${-5*o}px ${i}`,inner:`inset 0 ${2*o}px ${4*n}px 0 ${i}`}}#D(e){let{containerPadding:r=16,breakpoints:n={sm:640,md:768,lg:1024,xl:1280}}=e,o=this.#b(e,"maxWidth"),a=e.maxWidth,i=this.#E(e,{emitFallbacks:!1});return{maxWidth:o?this.#o(a,"1200px"):void 0,maxWidthSm:i.sm,maxWidthMd:i.md,maxWidthLg:i.lg,maxWidthXl:i.xl,minHeight:"100vh",containerPadding:this.#o(r,"16px"),breakpoints:{sm:this.#o(n.sm,"640px"),md:this.#o(n.md,"768px"),lg:this.#o(n.lg,"1024px"),xl:this.#o(n.xl,"1280px")},pageMargin:"120px",sectionGap:"160px",containerGap:"200px",heroSpacing:"240px",footerSpacing:"160px"}}#E(e={},r={}){let{emitFallbacks:n=!0}=r,o={sm:640,md:768,lg:1024,xl:1280},{maxWidths:a={},containerPadding:i=16,breakpoints:s=o}=e||{},d=this.#b(e,"maxWidth"),l=["sm","md","lg","xl"].some(b=>this.#b(a,b));if(!n&&!d&&!l)return{sm:void 0,md:void 0,lg:void 0,xl:void 0};let p=e?.maxWidth,c=this.#l(i,16),u=this.#l(p,o.xl),y={sm:this.#l(s.sm,o.sm),md:this.#l(s.md,o.md),lg:this.#l(s.lg,o.lg),xl:this.#l(s.xl,o.xl)},g=b=>b?Math.max(320,b-c*2):u,x={sm:Math.min(u,g(y.sm)),md:Math.min(u,g(y.md)),lg:Math.min(u,g(y.lg)),xl:Math.max(320,u)};return{sm:this.#o(a.sm,`${x.sm}px`),md:this.#o(a.md,`${x.md}px`),lg:this.#o(a.lg,`${x.lg}px`),xl:this.#o(a.xl,`${x.xl}px`)}}#b(e,r){if(!e||typeof e!="object"||!Object.prototype.hasOwnProperty.call(e,r))return!1;let n=e[r];return!(n==null||typeof n=="string"&&n.trim().length===0)}#o(e,r){return typeof e=="number"&&Number.isFinite(e)?`${e}px`:typeof e=="string"&&e.trim().length>0?e:r}#l(e,r){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"){let n=parseFloat(e);if(Number.isFinite(n))return n}return r}#H(e){let{transitionSpeed:r=$.TransitionSpeeds.normal,animationEasing:n=$.AnimationEasings["ease-out"]}=e,o;return typeof r=="number"?o=r:typeof r=="string"&&$.TransitionSpeeds[r]?o=$.TransitionSpeeds[r]:o=$.TransitionSpeeds.normal,{fast:`${Math.round(o*.6)}ms`,normal:`${o}ms`,slow:`${Math.round(o*1.4)}ms`}}#W(e){let{baseZIndex:r=1e3,zIndexStep:n=10}=e;return{dropdown:r.toString(),sticky:(r+n*2).toString(),fixed:(r+n*3).toString(),modal:(r+n*4).toString(),drawer:(r+n*5).toString(),popover:(r+n*6).toString(),tooltip:(r+n*7).toString(),notification:(r+n*8).toString()}}#U(e){let{set:r="phosphor",weight:n="regular",defaultSize:o=24,sizes:a={xs:16,sm:20,md:24,lg:32,xl:48,"2xl":64},spritePath:i="/assets/pds/icons/pds-icons.svg",externalPath:s="/assets/img/icons/"}=e;return{set:r,weight:n,defaultSize:`${o}px`,sizes:Object.fromEntries(Object.entries(a).map(([d,l])=>[d,`${l}px`])),spritePath:i,externalPath:s}}#q(e){let r=[];r.push(` /* Colors */
|
|
2
2
|
`);let n=(o,a="")=>{Object.entries(o).forEach(([i,s])=>{typeof s=="object"&&s!==null?n(s,`${a}${i}-`):typeof s=="string"&&r.push(` --color-${a}${i}: ${s};
|
|
3
|
-
`)})};
|
|
4
|
-
`),Object.entries(
|
|
3
|
+
`)})};Object.entries(e).forEach(([o,a])=>{o!=="dark"&&o!=="surfaceSmart"&&o!=="interactive"&&o!=="accentInteractive"&&o!=="dangerInteractive"&&o!=="successInteractive"&&o!=="warningInteractive"&&o!=="infoInteractive"&&o!=="surfaceAccent"&&o!=="surfaceStatus"&&typeof a=="object"&&a!==null&&n(a,`${o}-`)}),e.surfaceSmart&&(r.push(` /* Smart Surface Tokens (context-aware) */
|
|
4
|
+
`),Object.entries(e.surfaceSmart).forEach(([o,a])=>{r.push(` --surface-${o}-bg: ${a.bg};
|
|
5
5
|
`),r.push(` --surface-${o}-text: ${a.text};
|
|
6
6
|
`),r.push(` --surface-${o}-text-secondary: ${a.textSecondary};
|
|
7
7
|
`),r.push(` --surface-${o}-text-muted: ${a.textMuted};
|
|
@@ -13,16 +13,71 @@ var qn=Object.defineProperty;var _t=(e,t)=>()=>(e&&(t=e(e=0)),t);var Ft=(e,t)=>{
|
|
|
13
13
|
`)),r.push(` /* Semantic Text Colors */
|
|
14
14
|
`),r.push(` --color-text-primary: var(--color-gray-900);
|
|
15
15
|
`),r.push(` --color-text-secondary: var(--color-gray-600);
|
|
16
|
-
`),r.push(` --color-text-muted: var(--color-gray-
|
|
16
|
+
`),r.push(` --color-text-muted: var(--color-gray-500);
|
|
17
17
|
`),r.push(` --color-border: var(--color-gray-300);
|
|
18
18
|
`),r.push(` --color-input-bg: var(--color-surface-base);
|
|
19
19
|
`),r.push(` --color-input-disabled-bg: var(--color-gray-50);
|
|
20
20
|
`),r.push(` --color-input-disabled-text: var(--color-gray-500);
|
|
21
21
|
`),r.push(` --color-code-bg: var(--color-gray-100);
|
|
22
|
-
`),
|
|
23
|
-
`),r.push(` --color-primary-fill: ${
|
|
24
|
-
`),r.push(` --color-primary-
|
|
25
|
-
`)
|
|
22
|
+
`),e.interactive&&e.interactive.light&&(r.push(` /* Interactive Colors - optimized for specific use cases */
|
|
23
|
+
`),r.push(` --color-primary-fill: ${e.interactive.light.fill}; /* For button backgrounds with white text */
|
|
24
|
+
`),r.push(` --color-primary-fill-hover: ${e.interactive.light.fillHover};
|
|
25
|
+
`),r.push(` --color-primary-fill-active: ${e.interactive.light.fillActive};
|
|
26
|
+
`),r.push(` --color-primary-text: ${e.interactive.light.text}; /* For links and outline buttons on light surfaces */
|
|
27
|
+
`),r.push(` --color-primary-text-hover: ${e.interactive.light.textHover};
|
|
28
|
+
`),r.push(` --color-primary-text-visited: ${e.interactive.light.textVisited};
|
|
29
|
+
`),r.push(` --color-primary-contrast: ${e.interactive.light.contrast};
|
|
30
|
+
`),r.push(` --color-focus-ring: ${e.interactive.light.focusRing};
|
|
31
|
+
`),r.push(` --color-selection-bg: ${e.interactive.light.selectionBg};
|
|
32
|
+
`),r.push(` --color-selection-text: ${e.interactive.light.selectionText};
|
|
33
|
+
`),r.push(` --color-link: var(--color-primary-text);
|
|
34
|
+
`),r.push(` --color-link-hover: var(--color-primary-text-hover);
|
|
35
|
+
`),r.push(` --color-link-visited: var(--color-primary-text-visited);
|
|
36
|
+
`)),e.accentInteractive?.light&&(r.push(` /* Accent Role Colors */
|
|
37
|
+
`),r.push(` --color-accent-fill: ${e.accentInteractive.light.fill};
|
|
38
|
+
`),r.push(` --color-accent-fill-hover: ${e.accentInteractive.light.fillHover};
|
|
39
|
+
`),r.push(` --color-accent-fill-active: ${e.accentInteractive.light.fillActive};
|
|
40
|
+
`),r.push(` --color-accent-text: ${e.accentInteractive.light.text};
|
|
41
|
+
`),r.push(` --color-accent-text-hover: ${e.accentInteractive.light.textHover};
|
|
42
|
+
`)),e.surfaceAccent?.light&&(r.push(` /* Surface-Aware Accent Text Tokens */
|
|
43
|
+
`),Object.entries(e.surfaceAccent.light).forEach(([o,a])=>{r.push(` --surface-${o}-accent-text: ${a.text};
|
|
44
|
+
`),r.push(` --surface-${o}-accent-text-hover: ${a.textHover};
|
|
45
|
+
`)})),e.dangerInteractive?.light&&(r.push(` /* Danger Role Colors */
|
|
46
|
+
`),r.push(` --color-danger-fill: ${e.dangerInteractive.light.fill};
|
|
47
|
+
`),r.push(` --color-danger-fill-hover: ${e.dangerInteractive.light.fillHover};
|
|
48
|
+
`),r.push(` --color-danger-fill-active: ${e.dangerInteractive.light.fillActive};
|
|
49
|
+
`),r.push(` --color-danger-text: ${e.dangerInteractive.light.text};
|
|
50
|
+
`),r.push(` --color-danger-text-hover: ${e.dangerInteractive.light.textHover};
|
|
51
|
+
`),r.push(` --color-danger-contrast: ${e.dangerInteractive.light.contrast};
|
|
52
|
+
`)),e.successInteractive?.light&&(r.push(` /* Success Role Colors */
|
|
53
|
+
`),r.push(` --color-success-fill: ${e.successInteractive.light.fill};
|
|
54
|
+
`),r.push(` --color-success-fill-hover: ${e.successInteractive.light.fillHover};
|
|
55
|
+
`),r.push(` --color-success-fill-active: ${e.successInteractive.light.fillActive};
|
|
56
|
+
`),r.push(` --color-success-text: ${e.successInteractive.light.text};
|
|
57
|
+
`),r.push(` --color-success-text-hover: ${e.successInteractive.light.textHover};
|
|
58
|
+
`),r.push(` --color-success-contrast: ${e.successInteractive.light.contrast};
|
|
59
|
+
`)),e.warningInteractive?.light&&(r.push(` /* Warning Role Colors */
|
|
60
|
+
`),r.push(` --color-warning-fill: ${e.warningInteractive.light.fill};
|
|
61
|
+
`),r.push(` --color-warning-fill-hover: ${e.warningInteractive.light.fillHover};
|
|
62
|
+
`),r.push(` --color-warning-fill-active: ${e.warningInteractive.light.fillActive};
|
|
63
|
+
`),r.push(` --color-warning-text: ${e.warningInteractive.light.text};
|
|
64
|
+
`),r.push(` --color-warning-text-hover: ${e.warningInteractive.light.textHover};
|
|
65
|
+
`),r.push(` --color-warning-contrast: ${e.warningInteractive.light.contrast};
|
|
66
|
+
`)),e.infoInteractive?.light&&(r.push(` /* Info Role Colors */
|
|
67
|
+
`),r.push(` --color-info-fill: ${e.infoInteractive.light.fill};
|
|
68
|
+
`),r.push(` --color-info-fill-hover: ${e.infoInteractive.light.fillHover};
|
|
69
|
+
`),r.push(` --color-info-fill-active: ${e.infoInteractive.light.fillActive};
|
|
70
|
+
`),r.push(` --color-info-text: ${e.infoInteractive.light.text};
|
|
71
|
+
`),r.push(` --color-info-text-hover: ${e.infoInteractive.light.textHover};
|
|
72
|
+
`),r.push(` --color-info-contrast: ${e.infoInteractive.light.contrast};
|
|
73
|
+
`)),e.surfaceStatus?.light&&(r.push(` /* Surface-Aware Status Text Tokens */
|
|
74
|
+
`),Object.entries(e.surfaceStatus.light).forEach(([o,a])=>{Object.entries(a).forEach(([i,s])=>{r.push(` --surface-${i}-${o}-text: ${s.text};
|
|
75
|
+
`),r.push(` --surface-${i}-${o}-text-hover: ${s.textHover};
|
|
76
|
+
`)})})),r.push(` /* Semantic Callout Display Tokens */
|
|
77
|
+
`);for(let o of["success","info","warning","danger"])r.push(` --color-${o}-display-bg: var(--color-${o}-50);
|
|
78
|
+
`),r.push(` --color-${o}-display-border: var(--color-${o}-600);
|
|
79
|
+
`),r.push(` --color-${o}-display-text: var(--color-${o}-900);
|
|
80
|
+
`);return r.push(` /* Translucent Surface Tokens */
|
|
26
81
|
`),r.push(` --color-surface-translucent-25: color-mix(in oklab, var(--color-surface-subtle) 25%, transparent 75%);
|
|
27
82
|
`),r.push(` --color-surface-translucent-50: color-mix(in oklab, var(--color-surface-subtle) 50%, transparent 50%);
|
|
28
83
|
`),r.push(` --color-surface-translucent-75: color-mix(in oklab, var(--color-surface-subtle) 75%, transparent 25%);
|
|
@@ -41,8 +96,8 @@ var qn=Object.defineProperty;var _t=(e,t)=>()=>(e&&(t=e(e=0)),t);var Ft=(e,t)=>{
|
|
|
41
96
|
|
|
42
97
|
/* Legacy alias for backwards compatibility */
|
|
43
98
|
--backdrop-background: var(--backdrop-bg);
|
|
44
|
-
`),r.push(this.#
|
|
45
|
-
`}#
|
|
99
|
+
`),r.push(this.#V(e)),`${r.join("")}
|
|
100
|
+
`}#V(e){let r=e.primary?.[500]||"#3b82f6",n=e.secondary?.[500]||"#8b5cf6",o=e.accent?.[500]||"#f59e0b";return`
|
|
46
101
|
/* Mesh Gradient Backgrounds */
|
|
47
102
|
--background-mesh-01: radial-gradient(at 27% 37%, color-mix(in oklab, ${r} 25%, transparent) 0px, transparent 50%),
|
|
48
103
|
radial-gradient(at 97% 21%, color-mix(in oklab, ${n} 22%, transparent) 0px, transparent 50%),
|
|
@@ -68,56 +123,114 @@ var qn=Object.defineProperty;var _t=(e,t)=>()=>(e&&(t=e(e=0)),t);var Ft=(e,t)=>{
|
|
|
68
123
|
radial-gradient(at 10% 10%, color-mix(in oklab, ${o} 20%, transparent) 0px, transparent 50%),
|
|
69
124
|
radial-gradient(at 90% 10%, color-mix(in oklab, ${n} 18%, transparent) 0px, transparent 50%),
|
|
70
125
|
radial-gradient(at 50% 90%, color-mix(in oklab, ${o} 15%, transparent) 0px, transparent 50%);
|
|
71
|
-
`}#
|
|
72
|
-
`];return Object.entries(
|
|
126
|
+
`}#G(e){let r=[` /* Spacing */
|
|
127
|
+
`];return Object.entries(e).forEach(([n,o])=>{n!=null&&n!=="NaN"&&o!==void 0&&!o.includes("NaN")&&r.push(` --spacing-${n}: ${o};
|
|
73
128
|
`)}),`${r.join("")}
|
|
74
|
-
`}#K(
|
|
75
|
-
`];return Object.entries(
|
|
129
|
+
`}#K(e){let r=[` /* Border Radius */
|
|
130
|
+
`];return Object.entries(e).forEach(([n,o])=>{r.push(` --radius-${n}: ${o};
|
|
76
131
|
`)}),`${r.join("")}
|
|
77
|
-
`}#J(
|
|
78
|
-
`];return Object.entries(
|
|
132
|
+
`}#J(e){let r=[` /* Border Widths */
|
|
133
|
+
`];return Object.entries(e).forEach(([n,o])=>{r.push(` --border-width-${n}: ${o};
|
|
79
134
|
`)}),`${r.join("")}
|
|
80
|
-
`}#Y(
|
|
81
|
-
`];return Object.entries(
|
|
135
|
+
`}#Y(e){let r=[` /* Typography */
|
|
136
|
+
`];return Object.entries(e).forEach(([n,o])=>{let a=n.replace(/^font/,"").replace(/^(.)/,i=>i.toLowerCase()).replace(/([A-Z])/g,"-$1").toLowerCase();Object.entries(o).forEach(([i,s])=>{let d=i.replace(/([A-Z])/g,"-$1").toLowerCase();r.push(` --font-${a}-${d}: ${s};
|
|
82
137
|
`)})}),`${r.join("")}
|
|
83
|
-
`}#
|
|
84
|
-
`];return Object.entries(
|
|
138
|
+
`}#y(e){let r=[` /* Shadows */
|
|
139
|
+
`];return Object.entries(e).forEach(([n,o])=>{r.push(` --shadow-${n}: ${o};
|
|
85
140
|
`)}),`${r.join("")}
|
|
86
|
-
`}#
|
|
87
|
-
`];return Object.entries(
|
|
141
|
+
`}#X(e){let r=[` /* Layout */
|
|
142
|
+
`];return Object.entries(e).forEach(([n,o])=>{let a=n.replace(/([A-Z])/g,"-$1").toLowerCase();o!=null&&n!=="breakpoints"&&r.push(` --layout-${a}: ${o};
|
|
88
143
|
`)}),`${r.join("")}
|
|
89
|
-
`}#
|
|
90
|
-
`];return Object.entries(
|
|
144
|
+
`}#Z(e){let r=[` /* Transitions */
|
|
145
|
+
`];return Object.entries(e).forEach(([n,o])=>{r.push(` --transition-${n}: ${o};
|
|
91
146
|
`)}),`${r.join("")}
|
|
92
|
-
`}#Q(
|
|
93
|
-
`];return Object.entries(
|
|
147
|
+
`}#Q(e){let r=[` /* Z-Index */
|
|
148
|
+
`];return Object.entries(e).forEach(([n,o])=>{r.push(` --z-${n}: ${o};
|
|
94
149
|
`)}),`${r.join("")}
|
|
95
|
-
`}#ee(
|
|
96
|
-
`];return r.push(` --icon-set: ${
|
|
97
|
-
`),r.push(` --icon-weight: ${
|
|
98
|
-
`),r.push(` --icon-size: ${
|
|
99
|
-
`),Object.entries(
|
|
150
|
+
`}#ee(e){let r=[` /* Icon System */
|
|
151
|
+
`];return r.push(` --icon-set: ${e.set};
|
|
152
|
+
`),r.push(` --icon-weight: ${e.weight};
|
|
153
|
+
`),r.push(` --icon-size: ${e.defaultSize};
|
|
154
|
+
`),Object.entries(e.sizes).forEach(([n,o])=>{r.push(` --icon-size-${n}: ${o};
|
|
100
155
|
`)}),`${r.join("")}
|
|
101
|
-
`}#te(
|
|
102
|
-
`)})};Object.entries(
|
|
103
|
-
`),Object.entries(
|
|
104
|
-
`),a.push(` --surface-${
|
|
105
|
-
`),a.push(` --surface-${
|
|
106
|
-
`),a.push(` --surface-${
|
|
107
|
-
`),a.push(` --surface-${
|
|
108
|
-
`),a.push(` --surface-${
|
|
109
|
-
`),a.push(` --surface-${
|
|
110
|
-
`),a.push(` --surface-${
|
|
156
|
+
`}#te(e,r){if(!e?.dark)return"";let n=[],o=(m,S="")=>{Object.entries(m).forEach(([C,T])=>{typeof T=="object"&&T!==null?o(T,`${S}${C}-`):typeof T=="string"&&n.push(` --color-${S}${C}: ${T};
|
|
157
|
+
`)})};Object.entries(e.dark).forEach(([m,S])=>{m!=="surfaceSmart"&&typeof S=="object"&&S!==null&&o(S,`${m}-`)});let a=[];e.dark.surfaceSmart&&(a.push(` /* Smart Surface Tokens (dark mode, context-aware) */
|
|
158
|
+
`),Object.entries(e.dark.surfaceSmart).forEach(([m,S])=>{a.push(` --surface-${m}-bg: ${S.bg};
|
|
159
|
+
`),a.push(` --surface-${m}-text: ${S.text};
|
|
160
|
+
`),a.push(` --surface-${m}-text-secondary: ${S.textSecondary};
|
|
161
|
+
`),a.push(` --surface-${m}-text-muted: ${S.textMuted};
|
|
162
|
+
`),a.push(` --surface-${m}-icon: ${S.icon};
|
|
163
|
+
`),a.push(` --surface-${m}-icon-subtle: ${S.iconSubtle};
|
|
164
|
+
`),a.push(` --surface-${m}-shadow: ${S.shadow};
|
|
165
|
+
`),a.push(` --surface-${m}-border: ${S.border};
|
|
111
166
|
`)}),a.push(`
|
|
112
|
-
`));let i
|
|
167
|
+
`));let i=[];e.interactive?.dark&&(i.push(` /* Interactive Colors - optimized for specific use cases (dark mode) */
|
|
168
|
+
`),i.push(` --color-primary-fill: ${e.interactive.dark.fill};
|
|
169
|
+
`),i.push(` --color-primary-fill-hover: ${e.interactive.dark.fillHover};
|
|
170
|
+
`),i.push(` --color-primary-fill-active: ${e.interactive.dark.fillActive};
|
|
171
|
+
`),i.push(` --color-primary-text: ${e.interactive.dark.text};
|
|
172
|
+
`),i.push(` --color-primary-text-hover: ${e.interactive.dark.textHover};
|
|
173
|
+
`),i.push(` --color-primary-text-visited: ${e.interactive.dark.textVisited};
|
|
174
|
+
`),i.push(` --color-primary-contrast: ${e.interactive.dark.contrast};
|
|
175
|
+
`),i.push(` --color-focus-ring: ${e.interactive.dark.focusRing};
|
|
176
|
+
`),i.push(` --color-selection-bg: ${e.interactive.dark.selectionBg};
|
|
177
|
+
`),i.push(` --color-selection-text: ${e.interactive.dark.selectionText};
|
|
178
|
+
`),i.push(` --color-link: var(--color-primary-text);
|
|
179
|
+
`),i.push(` --color-link-hover: var(--color-primary-text-hover);
|
|
180
|
+
`),i.push(` --color-link-visited: var(--color-primary-text-visited);
|
|
181
|
+
`));let s=[];e.accentInteractive?.dark&&(s.push(` /* Accent Role Colors (dark mode) */
|
|
182
|
+
`),s.push(` --color-accent-fill: ${e.accentInteractive.dark.fill};
|
|
183
|
+
`),s.push(` --color-accent-fill-hover: ${e.accentInteractive.dark.fillHover};
|
|
184
|
+
`),s.push(` --color-accent-fill-active: ${e.accentInteractive.dark.fillActive};
|
|
185
|
+
`),s.push(` --color-accent-text: ${e.accentInteractive.dark.text};
|
|
186
|
+
`),s.push(` --color-accent-text-hover: ${e.accentInteractive.dark.textHover};
|
|
187
|
+
`));let d=[];e.surfaceAccent?.dark&&(d.push(` /* Surface-Aware Accent Text Tokens (dark mode) */
|
|
188
|
+
`),Object.entries(e.surfaceAccent.dark).forEach(([m,S])=>{d.push(` --surface-${m}-accent-text: ${S.text};
|
|
189
|
+
`),d.push(` --surface-${m}-accent-text-hover: ${S.textHover};
|
|
190
|
+
`)}));let l=[];e.dangerInteractive?.dark&&(l.push(` /* Danger Role Colors (dark mode) */
|
|
191
|
+
`),l.push(` --color-danger-fill: ${e.dangerInteractive.dark.fill};
|
|
192
|
+
`),l.push(` --color-danger-fill-hover: ${e.dangerInteractive.dark.fillHover};
|
|
193
|
+
`),l.push(` --color-danger-fill-active: ${e.dangerInteractive.dark.fillActive};
|
|
194
|
+
`),l.push(` --color-danger-text: ${e.dangerInteractive.dark.text};
|
|
195
|
+
`),l.push(` --color-danger-text-hover: ${e.dangerInteractive.dark.textHover};
|
|
196
|
+
`),l.push(` --color-danger-contrast: ${e.dangerInteractive.dark.contrast};
|
|
197
|
+
`));let p=[];e.successInteractive?.dark&&(p.push(` /* Success Role Colors (dark mode) */
|
|
198
|
+
`),p.push(` --color-success-fill: ${e.successInteractive.dark.fill};
|
|
199
|
+
`),p.push(` --color-success-fill-hover: ${e.successInteractive.dark.fillHover};
|
|
200
|
+
`),p.push(` --color-success-fill-active: ${e.successInteractive.dark.fillActive};
|
|
201
|
+
`),p.push(` --color-success-text: ${e.successInteractive.dark.text};
|
|
202
|
+
`),p.push(` --color-success-text-hover: ${e.successInteractive.dark.textHover};
|
|
203
|
+
`),p.push(` --color-success-contrast: ${e.successInteractive.dark.contrast};
|
|
204
|
+
`));let c=[];e.warningInteractive?.dark&&(c.push(` /* Warning Role Colors (dark mode) */
|
|
205
|
+
`),c.push(` --color-warning-fill: ${e.warningInteractive.dark.fill};
|
|
206
|
+
`),c.push(` --color-warning-fill-hover: ${e.warningInteractive.dark.fillHover};
|
|
207
|
+
`),c.push(` --color-warning-fill-active: ${e.warningInteractive.dark.fillActive};
|
|
208
|
+
`),c.push(` --color-warning-text: ${e.warningInteractive.dark.text};
|
|
209
|
+
`),c.push(` --color-warning-text-hover: ${e.warningInteractive.dark.textHover};
|
|
210
|
+
`),c.push(` --color-warning-contrast: ${e.warningInteractive.dark.contrast};
|
|
211
|
+
`));let u=[];e.infoInteractive?.dark&&(u.push(` /* Info Role Colors (dark mode) */
|
|
212
|
+
`),u.push(` --color-info-fill: ${e.infoInteractive.dark.fill};
|
|
213
|
+
`),u.push(` --color-info-fill-hover: ${e.infoInteractive.dark.fillHover};
|
|
214
|
+
`),u.push(` --color-info-fill-active: ${e.infoInteractive.dark.fillActive};
|
|
215
|
+
`),u.push(` --color-info-text: ${e.infoInteractive.dark.text};
|
|
216
|
+
`),u.push(` --color-info-text-hover: ${e.infoInteractive.dark.textHover};
|
|
217
|
+
`),u.push(` --color-info-contrast: ${e.infoInteractive.dark.contrast};
|
|
218
|
+
`));let y=[];e.surfaceStatus?.dark&&(y.push(` /* Surface-Aware Status Text Tokens (dark mode) */
|
|
219
|
+
`),Object.entries(e.surfaceStatus.dark).forEach(([m,S])=>{Object.entries(S).forEach(([C,T])=>{y.push(` --surface-${C}-${m}-text: ${T.text};
|
|
220
|
+
`),y.push(` --surface-${C}-${m}-text-hover: ${T.textHover};
|
|
221
|
+
`)})}));let g=[` /* Semantic Callout Display Tokens (dark mode) */
|
|
222
|
+
`];for(let m of["success","info","warning","danger"])g.push(` --color-${m}-display-bg: color-mix(in oklab, var(--color-${m}-400) 12%, var(--color-surface-base));
|
|
223
|
+
`),g.push(` --color-${m}-display-border: var(--color-${m}-400);
|
|
224
|
+
`),g.push(` --color-${m}-display-text: var(--color-${m}-100);
|
|
225
|
+
`);let x=` --color-text-primary: var(--color-gray-100);
|
|
113
226
|
--color-text-secondary: var(--color-gray-300);
|
|
114
|
-
--color-text-muted: var(--color-gray-
|
|
227
|
+
--color-text-muted: var(--color-gray-500);
|
|
115
228
|
--color-border: var(--color-gray-700);
|
|
116
229
|
--color-input-bg: var(--color-gray-800);
|
|
117
230
|
--color-input-disabled-bg: var(--color-gray-900);
|
|
118
231
|
--color-input-disabled-text: var(--color-gray-600);
|
|
119
232
|
--color-code-bg: var(--color-gray-800);
|
|
120
|
-
`,
|
|
233
|
+
`,b=` /* Backdrop tokens - dark mode */
|
|
121
234
|
--backdrop-bg: linear-gradient(
|
|
122
235
|
135deg,
|
|
123
236
|
rgba(0, 0, 0, 0.6),
|
|
@@ -131,31 +244,86 @@ var qn=Object.defineProperty;var _t=(e,t)=>()=>(e&&(t=e(e=0)),t);var Ft=(e,t)=>{
|
|
|
131
244
|
|
|
132
245
|
/* Legacy alias for backwards compatibility */
|
|
133
246
|
--backdrop-background: var(--backdrop-bg);
|
|
134
|
-
`,
|
|
135
|
-
${[...n,...a,...
|
|
136
|
-
`}#re(
|
|
137
|
-
`)})};Object.entries(
|
|
138
|
-
`),Object.entries(
|
|
139
|
-
`),a.push(` --surface-${
|
|
140
|
-
`),a.push(` --surface-${
|
|
141
|
-
`),a.push(` --surface-${
|
|
142
|
-
`),a.push(` --surface-${
|
|
143
|
-
`),a.push(` --surface-${
|
|
144
|
-
`),a.push(` --surface-${
|
|
145
|
-
`),a.push(` --surface-${
|
|
247
|
+
`,f=this.#oe(e),h=r?[this.#y(r)]:[];return`html[data-theme="dark"] {
|
|
248
|
+
${[...n,...a,...h,x,...i,...s,...d,...l,...p,...c,...u,...y,...g,b,f].join("")}}
|
|
249
|
+
`}#re(e,r){if(!e?.dark)return"";let n=[],o=(m,S="")=>{Object.entries(m).forEach(([C,T])=>{typeof T=="object"&&T!==null?o(T,`${S}${C}-`):typeof T=="string"&&n.push(` --color-${S}${C}: ${T};
|
|
250
|
+
`)})};Object.entries(e.dark).forEach(([m,S])=>{m!=="surfaceSmart"&&typeof S=="object"&&S!==null&&o(S,`${m}-`)});let a=[];e.dark.surfaceSmart&&(a.push(` /* Smart Surface Tokens (dark mode, context-aware) */
|
|
251
|
+
`),Object.entries(e.dark.surfaceSmart).forEach(([m,S])=>{a.push(` --surface-${m}-bg: ${S.bg};
|
|
252
|
+
`),a.push(` --surface-${m}-text: ${S.text};
|
|
253
|
+
`),a.push(` --surface-${m}-text-secondary: ${S.textSecondary};
|
|
254
|
+
`),a.push(` --surface-${m}-text-muted: ${S.textMuted};
|
|
255
|
+
`),a.push(` --surface-${m}-icon: ${S.icon};
|
|
256
|
+
`),a.push(` --surface-${m}-icon-subtle: ${S.iconSubtle};
|
|
257
|
+
`),a.push(` --surface-${m}-shadow: ${S.shadow};
|
|
258
|
+
`),a.push(` --surface-${m}-border: ${S.border};
|
|
146
259
|
`)}),a.push(`
|
|
147
|
-
`));let i=[];
|
|
148
|
-
`),i.push(` --color-primary-fill: ${
|
|
149
|
-
`),i.push(` --color-primary-
|
|
150
|
-
`)
|
|
260
|
+
`));let i=[];e.interactive&&e.interactive.dark&&(i.push(` /* Interactive Colors - optimized for specific use cases (dark mode) */
|
|
261
|
+
`),i.push(` --color-primary-fill: ${e.interactive.dark.fill};
|
|
262
|
+
`),i.push(` --color-primary-fill-hover: ${e.interactive.dark.fillHover};
|
|
263
|
+
`),i.push(` --color-primary-fill-active: ${e.interactive.dark.fillActive};
|
|
264
|
+
`),i.push(` --color-primary-text: ${e.interactive.dark.text};
|
|
265
|
+
`),i.push(` --color-primary-text-hover: ${e.interactive.dark.textHover};
|
|
266
|
+
`),i.push(` --color-primary-text-visited: ${e.interactive.dark.textVisited};
|
|
267
|
+
`),i.push(` --color-primary-contrast: ${e.interactive.dark.contrast};
|
|
268
|
+
`),i.push(` --color-focus-ring: ${e.interactive.dark.focusRing};
|
|
269
|
+
`),i.push(` --color-selection-bg: ${e.interactive.dark.selectionBg};
|
|
270
|
+
`),i.push(` --color-selection-text: ${e.interactive.dark.selectionText};
|
|
271
|
+
`),i.push(` --color-link: var(--color-primary-text);
|
|
272
|
+
`),i.push(` --color-link-hover: var(--color-primary-text-hover);
|
|
273
|
+
`),i.push(` --color-link-visited: var(--color-primary-text-visited);
|
|
274
|
+
`));let s=[];e.accentInteractive?.dark&&(s.push(` /* Accent Role Colors (dark mode) */
|
|
275
|
+
`),s.push(` --color-accent-fill: ${e.accentInteractive.dark.fill};
|
|
276
|
+
`),s.push(` --color-accent-fill-hover: ${e.accentInteractive.dark.fillHover};
|
|
277
|
+
`),s.push(` --color-accent-fill-active: ${e.accentInteractive.dark.fillActive};
|
|
278
|
+
`),s.push(` --color-accent-text: ${e.accentInteractive.dark.text};
|
|
279
|
+
`),s.push(` --color-accent-text-hover: ${e.accentInteractive.dark.textHover};
|
|
280
|
+
`));let d=[];e.surfaceAccent?.dark&&(d.push(` /* Surface-Aware Accent Text Tokens (dark mode) */
|
|
281
|
+
`),Object.entries(e.surfaceAccent.dark).forEach(([m,S])=>{d.push(` --surface-${m}-accent-text: ${S.text};
|
|
282
|
+
`),d.push(` --surface-${m}-accent-text-hover: ${S.textHover};
|
|
283
|
+
`)}));let l=[];e.dangerInteractive?.dark&&(l.push(` /* Danger Role Colors (dark mode) */
|
|
284
|
+
`),l.push(` --color-danger-fill: ${e.dangerInteractive.dark.fill};
|
|
285
|
+
`),l.push(` --color-danger-fill-hover: ${e.dangerInteractive.dark.fillHover};
|
|
286
|
+
`),l.push(` --color-danger-fill-active: ${e.dangerInteractive.dark.fillActive};
|
|
287
|
+
`),l.push(` --color-danger-text: ${e.dangerInteractive.dark.text};
|
|
288
|
+
`),l.push(` --color-danger-text-hover: ${e.dangerInteractive.dark.textHover};
|
|
289
|
+
`),l.push(` --color-danger-contrast: ${e.dangerInteractive.dark.contrast};
|
|
290
|
+
`));let p=[];e.successInteractive?.dark&&(p.push(` /* Success Role Colors (dark mode) */
|
|
291
|
+
`),p.push(` --color-success-fill: ${e.successInteractive.dark.fill};
|
|
292
|
+
`),p.push(` --color-success-fill-hover: ${e.successInteractive.dark.fillHover};
|
|
293
|
+
`),p.push(` --color-success-fill-active: ${e.successInteractive.dark.fillActive};
|
|
294
|
+
`),p.push(` --color-success-text: ${e.successInteractive.dark.text};
|
|
295
|
+
`),p.push(` --color-success-text-hover: ${e.successInteractive.dark.textHover};
|
|
296
|
+
`),p.push(` --color-success-contrast: ${e.successInteractive.dark.contrast};
|
|
297
|
+
`));let c=[];e.warningInteractive?.dark&&(c.push(` /* Warning Role Colors (dark mode) */
|
|
298
|
+
`),c.push(` --color-warning-fill: ${e.warningInteractive.dark.fill};
|
|
299
|
+
`),c.push(` --color-warning-fill-hover: ${e.warningInteractive.dark.fillHover};
|
|
300
|
+
`),c.push(` --color-warning-fill-active: ${e.warningInteractive.dark.fillActive};
|
|
301
|
+
`),c.push(` --color-warning-text: ${e.warningInteractive.dark.text};
|
|
302
|
+
`),c.push(` --color-warning-text-hover: ${e.warningInteractive.dark.textHover};
|
|
303
|
+
`),c.push(` --color-warning-contrast: ${e.warningInteractive.dark.contrast};
|
|
304
|
+
`));let u=[];e.infoInteractive?.dark&&(u.push(` /* Info Role Colors (dark mode) */
|
|
305
|
+
`),u.push(` --color-info-fill: ${e.infoInteractive.dark.fill};
|
|
306
|
+
`),u.push(` --color-info-fill-hover: ${e.infoInteractive.dark.fillHover};
|
|
307
|
+
`),u.push(` --color-info-fill-active: ${e.infoInteractive.dark.fillActive};
|
|
308
|
+
`),u.push(` --color-info-text: ${e.infoInteractive.dark.text};
|
|
309
|
+
`),u.push(` --color-info-text-hover: ${e.infoInteractive.dark.textHover};
|
|
310
|
+
`),u.push(` --color-info-contrast: ${e.infoInteractive.dark.contrast};
|
|
311
|
+
`));let y=[];e.surfaceStatus?.dark&&(y.push(` /* Surface-Aware Status Text Tokens (dark mode) */
|
|
312
|
+
`),Object.entries(e.surfaceStatus.dark).forEach(([m,S])=>{Object.entries(S).forEach(([C,T])=>{y.push(` --surface-${C}-${m}-text: ${T.text};
|
|
313
|
+
`),y.push(` --surface-${C}-${m}-text-hover: ${T.textHover};
|
|
314
|
+
`)})}));let g=[` /* Semantic Callout Display Tokens (dark mode) */
|
|
315
|
+
`];for(let m of["success","info","warning","danger"])g.push(` --color-${m}-display-bg: color-mix(in oklab, var(--color-${m}-400) 12%, var(--color-surface-base));
|
|
316
|
+
`),g.push(` --color-${m}-display-border: var(--color-${m}-400);
|
|
317
|
+
`),g.push(` --color-${m}-display-text: var(--color-${m}-100);
|
|
318
|
+
`);let x=[` --color-text-primary: var(--color-gray-100);
|
|
151
319
|
`,` --color-text-secondary: var(--color-gray-300);
|
|
152
|
-
`,` --color-text-muted: var(--color-gray-
|
|
320
|
+
`,` --color-text-muted: var(--color-gray-500);
|
|
153
321
|
`,` --color-border: var(--color-gray-700);
|
|
154
322
|
`,` --color-input-bg: var(--color-gray-800);
|
|
155
323
|
`,` --color-input-disabled-bg: var(--color-gray-900);
|
|
156
324
|
`,` --color-input-disabled-text: var(--color-gray-600);
|
|
157
325
|
`,` --color-code-bg: var(--color-gray-800);
|
|
158
|
-
`,...i].join(""),
|
|
326
|
+
`,...i].join(""),b=` /* Backdrop tokens - dark mode */
|
|
159
327
|
--backdrop-bg: linear-gradient(
|
|
160
328
|
135deg,
|
|
161
329
|
rgba(0, 0, 0, 0.6),
|
|
@@ -169,10 +337,10 @@ ${[...n,...a,...c,i,s,p].join("")}}
|
|
|
169
337
|
|
|
170
338
|
/* Legacy alias for backwards compatibility */
|
|
171
339
|
--backdrop-background: var(--backdrop-bg);
|
|
172
|
-
`,
|
|
340
|
+
`,f=this.#ne(e),h=r?[this.#y(r)]:[];return`
|
|
173
341
|
html[data-theme="dark"] {
|
|
174
|
-
${[...n,...a,...
|
|
175
|
-
`}#ne(
|
|
342
|
+
${[...n,...a,...h,x,...s,...d,...l,...p,...c,...u,...y,...g,b,f].join("")} }
|
|
343
|
+
`}#ne(e){let r=e.dark||e,n=r.primary?.[400]||"#60a5fa",o=r.secondary?.[400]||"#a78bfa",a=r.accent?.[400]||"#fbbf24";return` /* Mesh Gradient Variables (Dark Mode) */
|
|
176
344
|
--background-mesh-01: radial-gradient(at 27% 37%, color-mix(in oklab, ${n} 20%, transparent) 0px, transparent 50%),
|
|
177
345
|
radial-gradient(at 97% 21%, color-mix(in oklab, ${o} 16%, transparent) 0px, transparent 50%),
|
|
178
346
|
radial-gradient(at 52% 99%, color-mix(in oklab, ${a} 13%, transparent) 0px, transparent 50%),
|
|
@@ -197,7 +365,7 @@ ${[...n,...a,...d,s,p,c].join("")} }
|
|
|
197
365
|
radial-gradient(at 10% 10%, color-mix(in oklab, ${a} 14%, transparent) 0px, transparent 50%),
|
|
198
366
|
radial-gradient(at 90% 10%, color-mix(in oklab, ${o} 13%, transparent) 0px, transparent 50%),
|
|
199
367
|
radial-gradient(at 50% 90%, color-mix(in oklab, ${a} 10%, transparent) 0px, transparent 50%);
|
|
200
|
-
`}#oe(
|
|
368
|
+
`}#oe(e){let r=e.dark||e,n=r.primary?.[400]||"#60a5fa",o=r.secondary?.[400]||"#a78bfa",a=r.accent?.[400]||"#fbbf24";return`
|
|
201
369
|
/* Mesh Gradient Backgrounds (Dark Mode) */
|
|
202
370
|
--background-mesh-01: radial-gradient(at 27% 37%, color-mix(in oklab, ${n} 20%, transparent) 0px, transparent 50%),
|
|
203
371
|
radial-gradient(at 97% 21%, color-mix(in oklab, ${o} 16%, transparent) 0px, transparent 50%),
|
|
@@ -223,19 +391,15 @@ ${[...n,...a,...d,s,p,c].join("")} }
|
|
|
223
391
|
radial-gradient(at 10% 10%, color-mix(in oklab, ${a} 14%, transparent) 0px, transparent 50%),
|
|
224
392
|
radial-gradient(at 90% 10%, color-mix(in oklab, ${o} 13%, transparent) 0px, transparent 50%),
|
|
225
393
|
radial-gradient(at 50% 90%, color-mix(in oklab, ${a} 10%, transparent) 0px, transparent 50%);
|
|
226
|
-
`}#ae(){return`/*
|
|
394
|
+
`}#ae(){return`/* Dark mode component adjustments */
|
|
227
395
|
html[data-theme="dark"] {
|
|
228
|
-
.callout-success { background-color: var(--color-success-50); border-color: var(--color-success-500); color: var(--color-success-900); }
|
|
229
|
-
.callout-info { background-color: var(--color-info-50); border-color: var(--color-info-500); color: var(--color-info-900); }
|
|
230
|
-
.callout-warning { background-color: var(--color-warning-50); border-color: var(--color-warning-500); color: var(--color-warning-900); }
|
|
231
|
-
.callout-danger, .callout-error { background-color: var(--color-danger-50); border-color: var(--color-danger-500); color: var(--color-danger-900); }
|
|
232
396
|
img, video { opacity: 0.8; transition: opacity var(--transition-normal); }
|
|
233
397
|
img:hover, video:hover { opacity: 1; }
|
|
234
|
-
}`}#ie(){try{let
|
|
398
|
+
}`}#ie(){try{let e=this.options?.design?.options?.backgroundMesh;this.options.debug&&this.options.log?.("debug","backgroundMesh check:",e);let r=Number(e);return!Number.isFinite(r)||r===0?"":`/* Optional background mesh applied from config */
|
|
235
399
|
body {
|
|
236
400
|
background: var(--background-mesh-0${Math.max(1,Math.min(5,Math.floor(r)))});
|
|
237
401
|
background-attachment: fixed;
|
|
238
|
-
}`}catch(
|
|
402
|
+
}`}catch(e){return this.options.debug&&this.options.log?.("error","Error in generateBodyBackgroundMeshRule:",e),""}}#se(){try{return this.options?.design?.options?.liquidGlassEffects?`/* Liquid glass utility (opt-in via options.liquidGlassEffects) */
|
|
239
403
|
.liquid-glass {
|
|
240
404
|
border-radius: var(--radius-lg);
|
|
241
405
|
/* Subtle translucent fill blended with surface */
|
|
@@ -417,12 +581,12 @@ html[data-theme="dark"] .liquid-glass {
|
|
|
417
581
|
box-shadow: 0 0 12px var(--color-danger-500);
|
|
418
582
|
}
|
|
419
583
|
|
|
420
|
-
`}#ce(){let{layout:
|
|
584
|
+
`}#ce(){let{layout:e={}}=this.options.design,r=e.breakpoints||{sm:640,md:768,lg:1024,xl:1280};return`/* Semantic HTML Elements (low-specificity via :where()) */
|
|
421
585
|
|
|
422
586
|
:where(blockquote) {
|
|
423
587
|
margin: 0 0 var(--spacing-4) 0;
|
|
424
588
|
padding: var(--spacing-6) var(--spacing-8);
|
|
425
|
-
border-left: calc(var(--border-width-thick) + var(--border-width-thin)) solid var(--color-
|
|
589
|
+
border-left: calc(var(--border-width-thick) + var(--border-width-thin)) solid var(--color-link);
|
|
426
590
|
background-color: var(--color-surface-elevated);
|
|
427
591
|
border-radius: var(--radius-none);
|
|
428
592
|
font-size: var(--font-size-lg);
|
|
@@ -438,7 +602,7 @@ html[data-theme="dark"] .liquid-glass {
|
|
|
438
602
|
margin-top: var(--spacing-4);
|
|
439
603
|
font-size: var(--font-size-base);
|
|
440
604
|
font-style: normal;
|
|
441
|
-
color: var(--color-
|
|
605
|
+
color: var(--color-link);
|
|
442
606
|
}
|
|
443
607
|
}
|
|
444
608
|
|
|
@@ -521,8 +685,8 @@ html[data-theme="dark"] .liquid-glass {
|
|
|
521
685
|
}
|
|
522
686
|
|
|
523
687
|
:where(mark) {
|
|
524
|
-
background-color: var(--color-warning-
|
|
525
|
-
color: var(--color-warning-
|
|
688
|
+
background-color: var(--color-warning-display-bg);
|
|
689
|
+
color: var(--color-warning-display-text);
|
|
526
690
|
padding: 0 var(--spacing-1);
|
|
527
691
|
border-radius: var(--radius-sm);
|
|
528
692
|
}
|
|
@@ -608,7 +772,7 @@ html[data-theme="dark"] .liquid-glass {
|
|
|
608
772
|
|
|
609
773
|
/* Dialog styles moved to #generateDialogStyles() */
|
|
610
774
|
|
|
611
|
-
`}#de(){let{shape:
|
|
775
|
+
`}#de(){let{shape:e={},spatialRhythm:r={},inputPadding:n,buttonPadding:o,focusRingWidth:a,focusRingOpacity:i,borderWidthThin:s,sectionSpacing:d,buttonMinHeight:l,inputMinHeight:p}=this.options.design,c=typeof e.borderWidth=="number"?e.borderWidth:typeof e.borderWidth=="string"?$.BorderWidths[e.borderWidth]??null:null,u=r.inputPadding??n??.75,y=r.buttonPadding??o??1,g=a||3,x=s||c||$.BorderWidths.thin,b=r.sectionSpacing??d??2,f=l||30;return`/* Mobile-First Form Styles - Generated from Design Config */
|
|
612
776
|
form {
|
|
613
777
|
margin: 0;
|
|
614
778
|
width: 100%;
|
|
@@ -640,7 +804,7 @@ fieldset {
|
|
|
640
804
|
margin-bottom: 0;
|
|
641
805
|
|
|
642
806
|
&:hover {
|
|
643
|
-
color: var(--color-primary-
|
|
807
|
+
color: var(--color-link-hover, var(--color-primary-text-hover));
|
|
644
808
|
}
|
|
645
809
|
}
|
|
646
810
|
|
|
@@ -659,21 +823,21 @@ fieldset {
|
|
|
659
823
|
margin: 0;
|
|
660
824
|
cursor: pointer;
|
|
661
825
|
flex-shrink: 0;
|
|
662
|
-
accent-color: var(--color-primary-
|
|
826
|
+
accent-color: var(--color-primary-fill);
|
|
663
827
|
|
|
664
828
|
&:focus-visible {
|
|
665
829
|
outline: none;
|
|
666
830
|
|
|
667
831
|
box-shadow:
|
|
668
|
-
0 0 0 2px var(--color-primary-500),
|
|
832
|
+
0 0 0 2px var(--color-focus-ring, var(--color-primary-500)),
|
|
669
833
|
0 0 0 4px color-mix(in srgb,
|
|
670
|
-
var(--color-primary-500) 40%,
|
|
834
|
+
var(--color-focus-ring, var(--color-primary-500)) 40%,
|
|
671
835
|
transparent
|
|
672
836
|
);
|
|
673
837
|
}
|
|
674
838
|
|
|
675
839
|
&:checked {
|
|
676
|
-
background-color: var(--color-primary-
|
|
840
|
+
background-color: var(--color-primary-fill);
|
|
677
841
|
}
|
|
678
842
|
|
|
679
843
|
}
|
|
@@ -736,7 +900,7 @@ input, textarea, select {
|
|
|
736
900
|
|
|
737
901
|
input, textarea, select {
|
|
738
902
|
width: 100%;
|
|
739
|
-
min-height: ${
|
|
903
|
+
min-height: ${p||40}px;
|
|
740
904
|
padding: calc(var(--spacing-1) * ${u}) var(--spacing-4);
|
|
741
905
|
border: var(--border-width-medium) solid var(--color-border);
|
|
742
906
|
border-radius: var(--radius-md);
|
|
@@ -751,7 +915,7 @@ input, textarea, select {
|
|
|
751
915
|
-webkit-appearance: none;
|
|
752
916
|
|
|
753
917
|
&:focus {
|
|
754
|
-
border-color: var(--color-primary-500);
|
|
918
|
+
border-color: var(--color-focus-ring, var(--color-primary-500));
|
|
755
919
|
background-color: var(--color-surface-base);
|
|
756
920
|
}
|
|
757
921
|
|
|
@@ -764,10 +928,10 @@ input, textarea, select {
|
|
|
764
928
|
}
|
|
765
929
|
|
|
766
930
|
&:invalid {
|
|
767
|
-
border-color: var(--color-danger-
|
|
931
|
+
border-color: var(--color-danger-fill);
|
|
768
932
|
|
|
769
933
|
&:focus {
|
|
770
|
-
box-shadow: 0 0 0 ${
|
|
934
|
+
box-shadow: 0 0 0 ${g}px color-mix(in oklab, var(--color-danger-fill) ${Math.round((i||.3)*100)}%, transparent);
|
|
771
935
|
}
|
|
772
936
|
}
|
|
773
937
|
}
|
|
@@ -802,11 +966,11 @@ input[type="range"] {
|
|
|
802
966
|
width: var(--range-thumb-size, 28px);
|
|
803
967
|
height: var(--range-thumb-size, 28px);
|
|
804
968
|
margin-top: calc((var(--range-track-height, 8px) - var(--range-thumb-size, 28px)) / 2);
|
|
805
|
-
background: color-mix(in srgb, var(--color-primary-
|
|
969
|
+
background: color-mix(in srgb, var(--color-primary-fill) 15%, var(--color-surface-base));
|
|
806
970
|
border-radius: 50%;
|
|
807
971
|
box-shadow: var(--shadow-sm);
|
|
808
972
|
cursor: grab;
|
|
809
|
-
border: var(--border-width-thin) solid color-mix(in srgb, var(--color-primary-
|
|
973
|
+
border: var(--border-width-thin) solid color-mix(in srgb, var(--color-primary-fill) 30%, var(--color-border));
|
|
810
974
|
}
|
|
811
975
|
|
|
812
976
|
/* Mozilla track */
|
|
@@ -820,10 +984,10 @@ input[type="range"] {
|
|
|
820
984
|
&::-moz-range-thumb {
|
|
821
985
|
width: var(--range-thumb-size, 28px);
|
|
822
986
|
height: var(--range-thumb-size, 28px);
|
|
823
|
-
background: color-mix(in srgb, var(--color-primary-
|
|
987
|
+
background: color-mix(in srgb, var(--color-primary-fill) 15%, var(--color-surface-base));
|
|
824
988
|
border-radius: 50%;
|
|
825
989
|
box-shadow: var(--shadow-sm);
|
|
826
|
-
border: var(--border-width-thin) solid color-mix(in srgb, var(--color-primary-
|
|
990
|
+
border: var(--border-width-thin) solid color-mix(in srgb, var(--color-primary-fill) 30%, var(--color-border));
|
|
827
991
|
transform: translateY(calc((var(--range-track-height, 8px) - var(--range-thumb-size, 28px)) / 2));
|
|
828
992
|
}
|
|
829
993
|
|
|
@@ -831,39 +995,39 @@ input[type="range"] {
|
|
|
831
995
|
&:hover::-webkit-slider-thumb,
|
|
832
996
|
&:focus-visible::-webkit-slider-thumb {
|
|
833
997
|
cursor: grabbing;
|
|
834
|
-
background: var(--color-primary-
|
|
998
|
+
background: var(--color-primary-fill);
|
|
835
999
|
box-shadow: 0 4px 12px rgba(0,0,0,0.2);
|
|
836
|
-
border-color: var(--color-primary-
|
|
1000
|
+
border-color: var(--color-primary-fill-hover);
|
|
837
1001
|
}
|
|
838
1002
|
|
|
839
1003
|
/* Active state for WebKit */
|
|
840
1004
|
&:active::-webkit-slider-thumb {
|
|
841
|
-
background: var(--color-primary-
|
|
1005
|
+
background: var(--color-primary-fill-active);
|
|
842
1006
|
}
|
|
843
1007
|
|
|
844
1008
|
/* Hover and focus states for Mozilla */
|
|
845
1009
|
&:hover::-moz-range-thumb,
|
|
846
1010
|
&:focus-visible::-moz-range-thumb {
|
|
847
|
-
background: var(--color-primary-
|
|
1011
|
+
background: var(--color-primary-fill);
|
|
848
1012
|
box-shadow: 0 4px 12px rgba(0,0,0,0.2);
|
|
849
|
-
border-color: var(--color-primary-
|
|
1013
|
+
border-color: var(--color-primary-fill-hover);
|
|
850
1014
|
cursor: grabbing;
|
|
851
1015
|
}
|
|
852
1016
|
|
|
853
1017
|
/* Active state for Mozilla */
|
|
854
1018
|
&:active::-moz-range-thumb {
|
|
855
|
-
background: var(--color-primary-
|
|
1019
|
+
background: var(--color-primary-fill-active);
|
|
856
1020
|
}
|
|
857
1021
|
}
|
|
858
1022
|
|
|
859
1023
|
/* Focus style for container to match input focus */
|
|
860
1024
|
.range-container:focus-within {
|
|
861
|
-
border-color: var(--color-primary-500);
|
|
862
|
-
box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary-500) 30%, transparent);
|
|
1025
|
+
border-color: var(--color-focus-ring, var(--color-primary-500));
|
|
1026
|
+
box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-focus-ring, var(--color-primary-500)) 30%, transparent);
|
|
863
1027
|
}
|
|
864
1028
|
|
|
865
1029
|
input[type="range"]:active::-moz-range-thumb {
|
|
866
|
-
background: var(--color-primary-
|
|
1030
|
+
background: var(--color-primary-fill-active);
|
|
867
1031
|
}
|
|
868
1032
|
|
|
869
1033
|
input[type="color"] {
|
|
@@ -916,8 +1080,8 @@ input[type="color"] {
|
|
|
916
1080
|
display: inline-flex;
|
|
917
1081
|
align-items: center;
|
|
918
1082
|
justify-content: center;
|
|
919
|
-
min-height: calc(${
|
|
920
|
-
padding: calc(var(--spacing-1) * ${
|
|
1083
|
+
min-height: calc(${f}px * 0.75);
|
|
1084
|
+
padding: calc(var(--spacing-1) * ${y*.6}) calc(var(--spacing-4) * 0.85);
|
|
921
1085
|
border: var(--border-width-medium) solid var(--color-border);
|
|
922
1086
|
border-radius: var(--radius-md);
|
|
923
1087
|
font-family: var(--font-family-body);
|
|
@@ -937,27 +1101,27 @@ input[type="color"] {
|
|
|
937
1101
|
|
|
938
1102
|
&:hover {
|
|
939
1103
|
background-color: var(--color-surface-subtle);
|
|
940
|
-
border-color: var(--color-primary-
|
|
1104
|
+
border-color: var(--color-primary-fill);
|
|
941
1105
|
}
|
|
942
1106
|
|
|
943
1107
|
&:has(input[type="checkbox"]:checked),
|
|
944
1108
|
input[type="checkbox"]:checked + label:not(fieldset label):not(label[data-toggle]) {
|
|
945
|
-
background-color: color-mix(in oklab, var(--color-primary-
|
|
946
|
-
color: var(--color-primary-
|
|
947
|
-
border-color: var(--color-primary-
|
|
1109
|
+
background-color: color-mix(in oklab, var(--color-primary-fill) 8%, transparent);
|
|
1110
|
+
color: var(--color-primary-text);
|
|
1111
|
+
border-color: var(--color-primary-fill);
|
|
948
1112
|
border-width: var(--border-width-medium);
|
|
949
1113
|
font-weight: var(--font-weight-semibold);
|
|
950
1114
|
|
|
951
1115
|
&:hover {
|
|
952
|
-
background-color: color-mix(in oklab, var(--color-primary-
|
|
953
|
-
border-color: var(--color-primary-
|
|
1116
|
+
background-color: color-mix(in oklab, var(--color-primary-fill) 15%, transparent);
|
|
1117
|
+
border-color: var(--color-primary-fill);
|
|
954
1118
|
}
|
|
955
1119
|
}
|
|
956
1120
|
|
|
957
1121
|
&:has(input[type="checkbox"]:focus),
|
|
958
1122
|
input[type="checkbox"]:focus + label:not(fieldset label):not(label[data-toggle]) {
|
|
959
1123
|
outline: none;
|
|
960
|
-
box-shadow: 0 0 0 ${
|
|
1124
|
+
box-shadow: 0 0 0 ${g}px color-mix(in oklab, var(--color-focus-ring, var(--color-primary-500)) ${Math.round((i||.3)*100)}%, transparent);
|
|
961
1125
|
}
|
|
962
1126
|
|
|
963
1127
|
&:has(input[type="checkbox"]:disabled),
|
|
@@ -989,6 +1153,7 @@ input[type="radio"]:not(fieldset input[type="radio"]) {
|
|
|
989
1153
|
opacity: 1;
|
|
990
1154
|
appearance: auto;
|
|
991
1155
|
-webkit-appearance: auto;
|
|
1156
|
+
accent-color: var(--color-primary-fill);
|
|
992
1157
|
|
|
993
1158
|
&:disabled {
|
|
994
1159
|
cursor: not-allowed;
|
|
@@ -1020,8 +1185,8 @@ fieldset[role="group"].buttons {
|
|
|
1020
1185
|
display: inline-flex;
|
|
1021
1186
|
align-items: center;
|
|
1022
1187
|
justify-content: center;
|
|
1023
|
-
min-height: calc(${
|
|
1024
|
-
padding: calc(var(--spacing-1) * ${
|
|
1188
|
+
min-height: calc(${f}px * 0.75);
|
|
1189
|
+
padding: calc(var(--spacing-1) * ${y*.6}) calc(var(--spacing-4) * 0.85);
|
|
1025
1190
|
border: var(--border-width-medium) solid var(--color-border);
|
|
1026
1191
|
border-radius: var(--radius-md);
|
|
1027
1192
|
font-family: var(--font-family-body);
|
|
@@ -1041,7 +1206,7 @@ fieldset[role="group"].buttons {
|
|
|
1041
1206
|
|
|
1042
1207
|
&:hover {
|
|
1043
1208
|
background-color: var(--color-surface-subtle);
|
|
1044
|
-
border-color: var(--color-primary-
|
|
1209
|
+
border-color: var(--color-primary-fill);
|
|
1045
1210
|
color: var(--color-text-primary);
|
|
1046
1211
|
}
|
|
1047
1212
|
|
|
@@ -1050,20 +1215,20 @@ fieldset[role="group"].buttons {
|
|
|
1050
1215
|
}
|
|
1051
1216
|
|
|
1052
1217
|
&:has(input:is([type="radio"], [type="checkbox"]):checked) {
|
|
1053
|
-
background-color: color-mix(in oklab, var(--color-primary-
|
|
1054
|
-
border-color: var(--color-primary-
|
|
1218
|
+
background-color: color-mix(in oklab, var(--color-primary-fill) 8%, transparent);
|
|
1219
|
+
border-color: var(--color-primary-fill);
|
|
1055
1220
|
border-width: var(--border-width-medium);
|
|
1056
1221
|
font-weight: var(--font-weight-semibold);
|
|
1057
1222
|
|
|
1058
1223
|
&:hover {
|
|
1059
|
-
background-color: color-mix(in oklab, var(--color-primary-
|
|
1060
|
-
border-color: var(--color-primary-
|
|
1224
|
+
background-color: color-mix(in oklab, var(--color-primary-fill) 15%, transparent);
|
|
1225
|
+
border-color: var(--color-primary-fill-hover);
|
|
1061
1226
|
}
|
|
1062
1227
|
}
|
|
1063
1228
|
|
|
1064
1229
|
&:has(input:is([type="radio"], [type="checkbox"]):focus) {
|
|
1065
1230
|
outline: none;
|
|
1066
|
-
box-shadow: 0 0 0 ${
|
|
1231
|
+
box-shadow: 0 0 0 ${g}px color-mix(in oklab, var(--color-focus-ring, var(--color-primary-500)) ${Math.round((i||.3)*100)}%, transparent);
|
|
1067
1232
|
}
|
|
1068
1233
|
|
|
1069
1234
|
&:has(input:is([type="radio"], [type="checkbox"]):disabled) {
|
|
@@ -1147,7 +1312,7 @@ label[data-toggle] {
|
|
|
1147
1312
|
&:has(input[type="checkbox"]:checked) {
|
|
1148
1313
|
&.with-icons .toggle-knob::before {
|
|
1149
1314
|
content: "\u2713";
|
|
1150
|
-
color: var(--color-primary-
|
|
1315
|
+
color: var(--color-primary-contrast, white);
|
|
1151
1316
|
}
|
|
1152
1317
|
|
|
1153
1318
|
.toggle-switch {
|
|
@@ -1161,7 +1326,7 @@ label[data-toggle] {
|
|
|
1161
1326
|
|
|
1162
1327
|
&:has(input[type="checkbox"]:focus) .toggle-switch,
|
|
1163
1328
|
&:focus-visible .toggle-switch {
|
|
1164
|
-
outline: 2px solid var(--color-primary-500);
|
|
1329
|
+
outline: 2px solid var(--color-focus-ring, var(--color-primary-500));
|
|
1165
1330
|
outline-offset: 2px;
|
|
1166
1331
|
}
|
|
1167
1332
|
|
|
@@ -1279,8 +1444,8 @@ label[data-color] {
|
|
|
1279
1444
|
}
|
|
1280
1445
|
|
|
1281
1446
|
&:focus-within .color-control {
|
|
1282
|
-
border-color: var(--color-primary-500);
|
|
1283
|
-
box-shadow: 0 0 0 ${
|
|
1447
|
+
border-color: var(--color-focus-ring, var(--color-primary-500));
|
|
1448
|
+
box-shadow: 0 0 0 ${g}px color-mix(in oklab, var(--color-focus-ring, var(--color-primary-500)) ${Math.round((i||.3)*100)}%, transparent);
|
|
1284
1449
|
}
|
|
1285
1450
|
|
|
1286
1451
|
&:has(input[type="color"]:disabled) .color-control {
|
|
@@ -1315,8 +1480,8 @@ select {
|
|
|
1315
1480
|
|
|
1316
1481
|
/* Button styling */
|
|
1317
1482
|
button, .btn, input[type="submit"], input[type="button"], input[type="reset"] {
|
|
1318
|
-
--btn-pad-y: max(calc(var(--spacing-1) * ${
|
|
1319
|
-
--btn-target-h: max(${
|
|
1483
|
+
--btn-pad-y: max(calc(var(--spacing-1) * ${y}), var(--spacing-2));
|
|
1484
|
+
--btn-target-h: max(${f}px, calc(var(--font-size-base) + (var(--btn-pad-y) * 2) + (var(--border-width-medium) * 2)));
|
|
1320
1485
|
display: inline-flex;
|
|
1321
1486
|
gap: var(--spacing-1);
|
|
1322
1487
|
align-items: center;
|
|
@@ -1348,7 +1513,7 @@ button, .btn, input[type="submit"], input[type="button"], input[type="reset"] {
|
|
|
1348
1513
|
|
|
1349
1514
|
&:focus {
|
|
1350
1515
|
outline: none;
|
|
1351
|
-
box-shadow: 0 0 0 ${
|
|
1516
|
+
box-shadow: 0 0 0 ${g}px color-mix(in oklab, var(--color-focus-ring, var(--color-primary-500)) ${Math.round((i||.3)*100)}%, transparent);
|
|
1352
1517
|
}
|
|
1353
1518
|
|
|
1354
1519
|
&:disabled {
|
|
@@ -1366,19 +1531,19 @@ button, .btn, input[type="submit"], input[type="button"], input[type="reset"] {
|
|
|
1366
1531
|
border-color: var(--color-primary-fill);
|
|
1367
1532
|
|
|
1368
1533
|
&:hover {
|
|
1369
|
-
background-color:
|
|
1370
|
-
border-color:
|
|
1534
|
+
background-color: var(--color-primary-fill-hover);
|
|
1535
|
+
border-color: var(--color-primary-fill-hover);
|
|
1371
1536
|
color: white;
|
|
1372
1537
|
}
|
|
1373
1538
|
|
|
1374
1539
|
&:active {
|
|
1375
|
-
background-color:
|
|
1376
|
-
border-color:
|
|
1540
|
+
background-color: var(--color-primary-fill-active);
|
|
1541
|
+
border-color: var(--color-primary-fill-active);
|
|
1377
1542
|
color: white;
|
|
1378
1543
|
}
|
|
1379
1544
|
|
|
1380
1545
|
&:focus {
|
|
1381
|
-
box-shadow: 0 0 0 ${
|
|
1546
|
+
box-shadow: 0 0 0 ${g}px color-mix(in oklab, var(--color-focus-ring, var(--color-primary-500)) ${Math.round((i||.3)*100)}%, transparent);
|
|
1382
1547
|
}
|
|
1383
1548
|
|
|
1384
1549
|
&:disabled {
|
|
@@ -1400,13 +1565,13 @@ button, .btn, input[type="submit"], input[type="button"], input[type="reset"] {
|
|
|
1400
1565
|
|
|
1401
1566
|
.btn-outline {
|
|
1402
1567
|
background-color: transparent;
|
|
1403
|
-
color: var(--color-
|
|
1404
|
-
border-color: var(--color-
|
|
1568
|
+
color: var(--color-link);
|
|
1569
|
+
border-color: var(--color-link);
|
|
1405
1570
|
|
|
1406
1571
|
&:hover {
|
|
1407
|
-
background-color: var(--color-primary-
|
|
1572
|
+
background-color: var(--color-primary-fill);
|
|
1408
1573
|
color: var(--color-primary-contrast, #ffffff);
|
|
1409
|
-
border-color: var(--color-primary-
|
|
1574
|
+
border-color: var(--color-primary-fill);
|
|
1410
1575
|
|
|
1411
1576
|
pds-icon {
|
|
1412
1577
|
color: var(--color-primary-contrast, #ffffff);
|
|
@@ -1414,8 +1579,8 @@ button, .btn, input[type="submit"], input[type="button"], input[type="reset"] {
|
|
|
1414
1579
|
}
|
|
1415
1580
|
|
|
1416
1581
|
&:active {
|
|
1417
|
-
background-color:
|
|
1418
|
-
border-color:
|
|
1582
|
+
background-color: var(--color-primary-fill-active);
|
|
1583
|
+
border-color: var(--color-primary-fill-active);
|
|
1419
1584
|
color: var(--color-primary-contrast, #ffffff);
|
|
1420
1585
|
|
|
1421
1586
|
pds-icon {
|
|
@@ -1431,31 +1596,31 @@ button, .btn, input[type="submit"], input[type="button"], input[type="reset"] {
|
|
|
1431
1596
|
}
|
|
1432
1597
|
|
|
1433
1598
|
.btn-danger {
|
|
1434
|
-
background-color: var(--color-danger-
|
|
1599
|
+
background-color: var(--color-danger-fill);
|
|
1435
1600
|
color: white;
|
|
1436
|
-
border-color: var(--color-danger-
|
|
1601
|
+
border-color: var(--color-danger-fill);
|
|
1437
1602
|
|
|
1438
1603
|
&:hover {
|
|
1439
|
-
background-color:
|
|
1440
|
-
border-color:
|
|
1604
|
+
background-color: var(--color-danger-fill-hover);
|
|
1605
|
+
border-color: var(--color-danger-fill-hover);
|
|
1441
1606
|
color: white;
|
|
1442
1607
|
}
|
|
1443
1608
|
|
|
1444
1609
|
&:active {
|
|
1445
|
-
background-color:
|
|
1446
|
-
border-color:
|
|
1610
|
+
background-color: var(--color-danger-fill-active);
|
|
1611
|
+
border-color: var(--color-danger-fill-active);
|
|
1447
1612
|
color: white;
|
|
1448
1613
|
}
|
|
1449
1614
|
}
|
|
1450
1615
|
|
|
1451
1616
|
.btn-danger.btn-outline {
|
|
1452
1617
|
background-color: transparent;
|
|
1453
|
-
color: var(--color-danger-
|
|
1454
|
-
border-color: var(--color-danger-
|
|
1618
|
+
color: var(--color-danger-fill);
|
|
1619
|
+
border-color: var(--color-danger-fill);
|
|
1455
1620
|
|
|
1456
1621
|
&:hover {
|
|
1457
|
-
background-color: var(--color-danger-
|
|
1458
|
-
border-color: var(--color-danger-
|
|
1622
|
+
background-color: var(--color-danger-fill);
|
|
1623
|
+
border-color: var(--color-danger-fill);
|
|
1459
1624
|
color: white;
|
|
1460
1625
|
|
|
1461
1626
|
pds-icon {
|
|
@@ -1464,8 +1629,8 @@ button, .btn, input[type="submit"], input[type="button"], input[type="reset"] {
|
|
|
1464
1629
|
}
|
|
1465
1630
|
|
|
1466
1631
|
&:active {
|
|
1467
|
-
background-color:
|
|
1468
|
-
border-color:
|
|
1632
|
+
background-color: var(--color-danger-fill-active);
|
|
1633
|
+
border-color: var(--color-danger-fill-active);
|
|
1469
1634
|
color: white;
|
|
1470
1635
|
|
|
1471
1636
|
pds-icon {
|
|
@@ -1481,8 +1646,8 @@ button, .btn, input[type="submit"], input[type="button"], input[type="reset"] {
|
|
|
1481
1646
|
}
|
|
1482
1647
|
|
|
1483
1648
|
.btn-sm {
|
|
1484
|
-
--btn-pad-y: calc(max(calc(var(--spacing-1) * ${
|
|
1485
|
-
--btn-target-h: max(calc(${
|
|
1649
|
+
--btn-pad-y: calc(max(calc(var(--spacing-1) * ${y}), var(--spacing-2)) * 0.85);
|
|
1650
|
+
--btn-target-h: max(calc(${f}px * 0.85), calc(var(--font-size-sm) + (var(--btn-pad-y) * 2) + (var(--border-width-medium) * 2)));
|
|
1486
1651
|
padding: var(--btn-pad-y) calc(var(--spacing-6) * 0.8);
|
|
1487
1652
|
font-size: var(--font-size-sm);
|
|
1488
1653
|
min-height: var(--btn-target-h);
|
|
@@ -1490,8 +1655,8 @@ button, .btn, input[type="submit"], input[type="button"], input[type="reset"] {
|
|
|
1490
1655
|
}
|
|
1491
1656
|
|
|
1492
1657
|
.btn-xs {
|
|
1493
|
-
--btn-pad-y: calc(max(calc(var(--spacing-1) * ${
|
|
1494
|
-
--btn-target-h: max(calc(${
|
|
1658
|
+
--btn-pad-y: calc(max(calc(var(--spacing-1) * ${y}), var(--spacing-2)) * 0.7);
|
|
1659
|
+
--btn-target-h: max(calc(${f}px * 0.7), calc(var(--font-size-xs) + (var(--btn-pad-y) * 2) + (var(--border-width-medium) * 2)));
|
|
1495
1660
|
padding: var(--btn-pad-y) calc(var(--spacing-6) * 0.65);
|
|
1496
1661
|
font-size: var(--font-size-xs);
|
|
1497
1662
|
min-height: var(--btn-target-h);
|
|
@@ -1500,8 +1665,8 @@ button, .btn, input[type="submit"], input[type="button"], input[type="reset"] {
|
|
|
1500
1665
|
|
|
1501
1666
|
|
|
1502
1667
|
.btn-lg {
|
|
1503
|
-
--btn-pad-y: calc(max(calc(var(--spacing-1) * ${
|
|
1504
|
-
--btn-target-h: max(calc(${
|
|
1668
|
+
--btn-pad-y: calc(max(calc(var(--spacing-1) * ${y}), var(--spacing-2)) * 1.15);
|
|
1669
|
+
--btn-target-h: max(calc(${f}px * 1.15), calc(var(--font-size-lg) + (var(--btn-pad-y) * 2) + (var(--border-width-medium) * 2)));
|
|
1505
1670
|
padding: var(--btn-pad-y) calc(var(--spacing-6) * 1.35);
|
|
1506
1671
|
font-size: var(--font-size-lg);
|
|
1507
1672
|
min-height: var(--btn-target-h);
|
|
@@ -1526,14 +1691,27 @@ a.btn-working {
|
|
|
1526
1691
|
|
|
1527
1692
|
/* Skeleton loading animation */
|
|
1528
1693
|
.skeleton {
|
|
1694
|
+
--skeleton-base: color-mix(in oklab, var(--color-text-primary) 8%, transparent);
|
|
1695
|
+
--skeleton-highlight: color-mix(in oklab, var(--color-text-primary) 16%, transparent);
|
|
1696
|
+
--skeleton-child-offset: 0ms;
|
|
1697
|
+
--skeleton-type-offset: 0ms;
|
|
1698
|
+
--skeleton-parent-offset: 0ms;
|
|
1699
|
+
--skeleton-delay: calc(
|
|
1700
|
+
220ms +
|
|
1701
|
+
var(--skeleton-child-offset) +
|
|
1702
|
+
var(--skeleton-type-offset) +
|
|
1703
|
+
var(--skeleton-parent-offset)
|
|
1704
|
+
);
|
|
1529
1705
|
background: linear-gradient(
|
|
1530
1706
|
90deg,
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1707
|
+
var(--skeleton-base) 0%,
|
|
1708
|
+
var(--skeleton-highlight) 50%,
|
|
1709
|
+
var(--skeleton-base) 100%
|
|
1534
1710
|
);
|
|
1535
1711
|
background-size: 200% 100%;
|
|
1536
|
-
animation:
|
|
1712
|
+
animation:
|
|
1713
|
+
pds-skeleton-fade-in 220ms ease-out both,
|
|
1714
|
+
pds-skeleton 1.5s ease-in-out infinite var(--skeleton-delay);
|
|
1537
1715
|
border-radius: var(--radius-sm);
|
|
1538
1716
|
|
|
1539
1717
|
&::before {
|
|
@@ -1541,6 +1719,38 @@ a.btn-working {
|
|
|
1541
1719
|
}
|
|
1542
1720
|
}
|
|
1543
1721
|
|
|
1722
|
+
/* Deterministic stagger so large skeleton groups do not animate in lockstep. */
|
|
1723
|
+
:where(.skeleton:nth-child(11n + 1)) { --skeleton-child-offset: 0ms; }
|
|
1724
|
+
:where(.skeleton:nth-child(11n + 2)) { --skeleton-child-offset: 17ms; }
|
|
1725
|
+
:where(.skeleton:nth-child(11n + 3)) { --skeleton-child-offset: 34ms; }
|
|
1726
|
+
:where(.skeleton:nth-child(11n + 4)) { --skeleton-child-offset: 51ms; }
|
|
1727
|
+
:where(.skeleton:nth-child(11n + 5)) { --skeleton-child-offset: 68ms; }
|
|
1728
|
+
:where(.skeleton:nth-child(11n + 6)) { --skeleton-child-offset: 85ms; }
|
|
1729
|
+
:where(.skeleton:nth-child(11n + 7)) { --skeleton-child-offset: 102ms; }
|
|
1730
|
+
:where(.skeleton:nth-child(11n + 8)) { --skeleton-child-offset: 119ms; }
|
|
1731
|
+
:where(.skeleton:nth-child(11n + 9)) { --skeleton-child-offset: 136ms; }
|
|
1732
|
+
:where(.skeleton:nth-child(11n + 10)) { --skeleton-child-offset: 153ms; }
|
|
1733
|
+
:where(.skeleton:nth-child(11n + 11)) { --skeleton-child-offset: 170ms; }
|
|
1734
|
+
|
|
1735
|
+
:where(.skeleton:nth-of-type(7n + 1)) { --skeleton-type-offset: 0ms; }
|
|
1736
|
+
:where(.skeleton:nth-of-type(7n + 2)) { --skeleton-type-offset: 11ms; }
|
|
1737
|
+
:where(.skeleton:nth-of-type(7n + 3)) { --skeleton-type-offset: 22ms; }
|
|
1738
|
+
:where(.skeleton:nth-of-type(7n + 4)) { --skeleton-type-offset: 33ms; }
|
|
1739
|
+
:where(.skeleton:nth-of-type(7n + 5)) { --skeleton-type-offset: 44ms; }
|
|
1740
|
+
:where(.skeleton:nth-of-type(7n + 6)) { --skeleton-type-offset: 55ms; }
|
|
1741
|
+
:where(.skeleton:nth-of-type(7n + 7)) { --skeleton-type-offset: 66ms; }
|
|
1742
|
+
|
|
1743
|
+
:where(*:nth-child(5n + 1) > .skeleton) { --skeleton-parent-offset: 0ms; }
|
|
1744
|
+
:where(*:nth-child(5n + 2) > .skeleton) { --skeleton-parent-offset: 9ms; }
|
|
1745
|
+
:where(*:nth-child(5n + 3) > .skeleton) { --skeleton-parent-offset: 18ms; }
|
|
1746
|
+
:where(*:nth-child(5n + 4) > .skeleton) { --skeleton-parent-offset: 27ms; }
|
|
1747
|
+
:where(*:nth-child(5n + 5) > .skeleton) { --skeleton-parent-offset: 36ms; }
|
|
1748
|
+
|
|
1749
|
+
@keyframes pds-skeleton-fade-in {
|
|
1750
|
+
from { opacity: 0; }
|
|
1751
|
+
to { opacity: 1; }
|
|
1752
|
+
}
|
|
1753
|
+
|
|
1544
1754
|
@keyframes pds-skeleton {
|
|
1545
1755
|
0% { background-position: 200% 0; }
|
|
1546
1756
|
100% { background-position: -200% 0; }
|
|
@@ -1729,7 +1939,7 @@ a.btn-working {
|
|
|
1729
1939
|
}
|
|
1730
1940
|
}
|
|
1731
1941
|
|
|
1732
|
-
`}#pe(){let{layout:
|
|
1942
|
+
`}#pe(){let{layout:e={}}=this.options.design,r=e.breakpoints||{sm:640,md:768,lg:1024,xl:1280};return`/* Table Styles - Mobile First */
|
|
1733
1943
|
|
|
1734
1944
|
table {
|
|
1735
1945
|
width: 100%;
|
|
@@ -1832,25 +2042,25 @@ tbody {
|
|
|
1832
2042
|
}
|
|
1833
2043
|
/* Variants: success/info/warning/danger mapped to tokens */
|
|
1834
2044
|
.callout-success {
|
|
1835
|
-
background-color: var(--color-success-
|
|
1836
|
-
border-color: var(--color-success-
|
|
1837
|
-
color: var(--color-success-
|
|
2045
|
+
background-color: var(--color-success-display-bg);
|
|
2046
|
+
border-color: var(--color-success-display-border);
|
|
2047
|
+
color: var(--color-success-display-text);
|
|
1838
2048
|
}
|
|
1839
2049
|
.callout-info {
|
|
1840
|
-
background-color: var(--color-info-
|
|
1841
|
-
border-color: var(--color-info-
|
|
1842
|
-
color: var(--color-info-
|
|
2050
|
+
background-color: var(--color-info-display-bg);
|
|
2051
|
+
border-color: var(--color-info-display-border);
|
|
2052
|
+
color: var(--color-info-display-text);
|
|
1843
2053
|
}
|
|
1844
2054
|
.callout-warning {
|
|
1845
|
-
background-color: var(--color-warning-
|
|
1846
|
-
border-color: var(--color-warning-
|
|
1847
|
-
color: var(--color-warning-
|
|
2055
|
+
background-color: var(--color-warning-display-bg);
|
|
2056
|
+
border-color: var(--color-warning-display-border);
|
|
2057
|
+
color: var(--color-warning-display-text);
|
|
1848
2058
|
}
|
|
1849
2059
|
.callout-danger,
|
|
1850
2060
|
.callout-error {
|
|
1851
|
-
background-color: var(--color-danger-
|
|
1852
|
-
border-color: var(--color-danger-
|
|
1853
|
-
color: var(--color-danger-
|
|
2061
|
+
background-color: var(--color-danger-display-bg);
|
|
2062
|
+
border-color: var(--color-danger-display-border);
|
|
2063
|
+
color: var(--color-danger-display-text);
|
|
1854
2064
|
}
|
|
1855
2065
|
|
|
1856
2066
|
.callout-title {
|
|
@@ -1953,7 +2163,7 @@ tbody {
|
|
|
1953
2163
|
}
|
|
1954
2164
|
|
|
1955
2165
|
&:focus-visible {
|
|
1956
|
-
box-shadow: 0 0 0 3px color-mix(in oklab, var(--color-primary-500) 30%, transparent);
|
|
2166
|
+
box-shadow: 0 0 0 3px color-mix(in oklab, var(--color-focus-ring, var(--color-primary-500)) 30%, transparent);
|
|
1957
2167
|
}
|
|
1958
2168
|
|
|
1959
2169
|
/* Chevron indicator */
|
|
@@ -1989,7 +2199,7 @@ tbody {
|
|
|
1989
2199
|
}
|
|
1990
2200
|
}
|
|
1991
2201
|
}
|
|
1992
|
-
`}#
|
|
2202
|
+
`}#fe(){return`/* Badge/Pill Styles */
|
|
1993
2203
|
|
|
1994
2204
|
.badge {
|
|
1995
2205
|
display: inline-flex;
|
|
@@ -2007,29 +2217,30 @@ tbody {
|
|
|
2007
2217
|
}
|
|
2008
2218
|
|
|
2009
2219
|
.badge-primary, .badge-secondary, .badge-success, .badge-info, .badge-warning, .badge-danger { color: white; }
|
|
2010
|
-
.badge-primary { background-color: var(--color-primary-
|
|
2220
|
+
.badge-primary { background-color: var(--color-primary-fill); }
|
|
2011
2221
|
.badge-secondary { background-color: var(--color-secondary-600); }
|
|
2012
|
-
.badge-success { background-color: var(--color-success-
|
|
2013
|
-
.badge-info { background-color: var(--color-info-
|
|
2014
|
-
.badge-warning { background-color: var(--color-warning-
|
|
2015
|
-
.badge-danger { background-color: var(--color-danger-
|
|
2222
|
+
.badge-success { background-color: var(--color-success-fill); }
|
|
2223
|
+
.badge-info { background-color: var(--color-info-fill); }
|
|
2224
|
+
.badge-warning { background-color: var(--color-warning-fill); }
|
|
2225
|
+
.badge-danger { background-color: var(--color-danger-fill); }
|
|
2016
2226
|
|
|
2017
2227
|
.badge-outline {
|
|
2018
2228
|
background-color: transparent;
|
|
2229
|
+
color: var(--color-text-secondary);
|
|
2019
2230
|
border: var(--border-width-thin) solid currentColor;
|
|
2020
|
-
&.badge-primary { color: var(--color-text
|
|
2021
|
-
&.badge-secondary { color: var(--color-secondary
|
|
2022
|
-
&.badge-success { color: var(--color-success-
|
|
2023
|
-
&.badge-info { color: var(--color-info-
|
|
2024
|
-
&.badge-warning { color: var(--color-warning-
|
|
2025
|
-
&.badge-danger { color: var(--color-danger-
|
|
2231
|
+
&.badge-primary { color: var(--color-primary-text); }
|
|
2232
|
+
&.badge-secondary { color: var(--color-text-secondary); }
|
|
2233
|
+
&.badge-success { color: var(--color-success-text); }
|
|
2234
|
+
&.badge-info { color: var(--color-info-text); }
|
|
2235
|
+
&.badge-warning { color: var(--color-warning-text); }
|
|
2236
|
+
&.badge-danger { color: var(--color-danger-text); }
|
|
2026
2237
|
}
|
|
2027
2238
|
|
|
2028
2239
|
.badge-sm { padding: 2px var(--spacing-1); font-size: 10px; }
|
|
2029
2240
|
.badge-lg { padding: var(--spacing-2) var(--spacing-3); font-size: var(--font-size-sm); }
|
|
2030
2241
|
.pill { padding: var(--spacing-1) var(--spacing-3); border-radius: var(--radius-full); }
|
|
2031
2242
|
|
|
2032
|
-
`}#
|
|
2243
|
+
`}#me(){let{layout:e={},behavior:r={}}=this.options.design;return`/* ============================================================================
|
|
2033
2244
|
Dialog Primitive
|
|
2034
2245
|
Native <dialog> element with PDS integration
|
|
2035
2246
|
============================================================================ */
|
|
@@ -2225,7 +2436,7 @@ dialog.dialog-xl { width: min(1200px, calc(100vw - var(--spacing-8))); max-width
|
|
|
2225
2436
|
dialog.dialog-full { width: calc(100vw - var(--spacing-8)); max-width: calc(100vw - var(--spacing-8)); max-height: calc(100dvh - var(--spacing-8)); }
|
|
2226
2437
|
|
|
2227
2438
|
/* Mobile responsiveness - maximize on mobile */
|
|
2228
|
-
@media (max-width: ${(
|
|
2439
|
+
@media (max-width: ${(e.breakpoints||{sm:640,md:768,lg:1024,xl:1280}).sm-1}px) {
|
|
2229
2440
|
dialog,
|
|
2230
2441
|
dialog.dialog-sm,
|
|
2231
2442
|
dialog.dialog-lg,
|
|
@@ -2292,7 +2503,7 @@ html:has(pds-drawer[open]) {
|
|
|
2292
2503
|
}
|
|
2293
2504
|
|
|
2294
2505
|
|
|
2295
|
-
`}#he(){let{layout:
|
|
2506
|
+
`}#he(){let{layout:e={}}=this.options.design;return`/* Tab Strip Component */
|
|
2296
2507
|
|
|
2297
2508
|
/* Tab navigation */
|
|
2298
2509
|
|
|
@@ -2340,7 +2551,7 @@ pds-tabstrip {
|
|
|
2340
2551
|
}
|
|
2341
2552
|
|
|
2342
2553
|
&:focus-visible {
|
|
2343
|
-
outline: var(--focus-ring-width, 2px) solid var(--color-primary-500);
|
|
2554
|
+
outline: var(--focus-ring-width, 2px) solid var(--color-focus-ring, var(--color-primary-500));
|
|
2344
2555
|
outline-offset: -2px;
|
|
2345
2556
|
border-radius: var(--radius-sm);
|
|
2346
2557
|
z-index: 1;
|
|
@@ -2348,14 +2559,14 @@ pds-tabstrip {
|
|
|
2348
2559
|
|
|
2349
2560
|
/* Active tab */
|
|
2350
2561
|
&[aria-current="page"] {
|
|
2351
|
-
color: var(--color-
|
|
2562
|
+
color: var(--color-link);
|
|
2352
2563
|
font-weight: var(--font-weight-semibold);
|
|
2353
|
-
border-bottom-color: var(--color-
|
|
2564
|
+
border-bottom-color: var(--color-link);
|
|
2354
2565
|
|
|
2355
2566
|
&:hover {
|
|
2356
|
-
color: var(--color-
|
|
2357
|
-
border-bottom-color: var(--color-
|
|
2358
|
-
background-color: var(--color-
|
|
2567
|
+
color: var(--color-link-hover);
|
|
2568
|
+
border-bottom-color: var(--color-link-hover);
|
|
2569
|
+
background-color: color-mix(in oklab, var(--color-link) 10%, transparent);
|
|
2359
2570
|
}
|
|
2360
2571
|
}
|
|
2361
2572
|
}
|
|
@@ -2383,7 +2594,7 @@ pds-tabstrip {
|
|
|
2383
2594
|
}
|
|
2384
2595
|
|
|
2385
2596
|
/* Mobile responsive */
|
|
2386
|
-
@media (max-width: ${(
|
|
2597
|
+
@media (max-width: ${(e.breakpoints||{sm:640,md:768,lg:1024,xl:1280}).sm-1}px) {
|
|
2387
2598
|
pds-tabstrip > nav { gap: var(--spacing-1); }
|
|
2388
2599
|
pds-tabstrip > nav > a { padding: var(--spacing-2) var(--spacing-3); font-size: var(--font-size-sm); }
|
|
2389
2600
|
pds-tabstrip > pds-tabpanel[data-tabpanel] { padding: var(--spacing-3) 0; }
|
|
@@ -2415,7 +2626,7 @@ pds-tabstrip {
|
|
|
2415
2626
|
*:hover { scrollbar-color: var(--color-secondary-400) transparent; }
|
|
2416
2627
|
@media (prefers-color-scheme: dark) { *:hover { scrollbar-color: var(--color-secondary-500) transparent; } }
|
|
2417
2628
|
|
|
2418
|
-
`}#ye(){let{layout:
|
|
2629
|
+
`}#ye(){let{layout:e={}}=this.options.design,r=e.buttonMinHeight||30,n=e.buttonPadding||1,o=`max(calc(var(--spacing-1) * ${n}), var(--spacing-2))`,a=`calc(max(calc(var(--spacing-1) * ${n}), var(--spacing-2)) * 0.85)`,i=`calc(max(calc(var(--spacing-1) * ${n}), var(--spacing-2)) * 0.7)`,s=`calc(max(calc(var(--spacing-1) * ${n}), var(--spacing-2)) * 1.15)`,d=.72,l=`calc(${o} * ${d})`,p=`calc(${a} * ${d})`,c=`calc(${i} * ${d})`,u=`calc(${s} * ${d})`,y=`${r}px`,g=`calc(${r}px * 0.85)`,x=`calc(${r}px * 0.7)`,b=`calc(${r}px * 1.15)`,f=`max(${y}, calc(var(--font-size-base) + (${o} * 2) + (var(--border-width-medium) * 2)))`,h=`max(${g}, calc(var(--font-size-sm) + (${a} * 2) + (var(--border-width-medium) * 2)))`,v=`max(${x}, calc(var(--font-size-xs) + (${i} * 2) + (var(--border-width-medium) * 2)))`,m=`max(${b}, calc(var(--font-size-lg) + (${s} * 2) + (var(--border-width-medium) * 2)))`;return`/* Icon System */
|
|
2419
2630
|
|
|
2420
2631
|
pds-icon {
|
|
2421
2632
|
display: inline-flex;
|
|
@@ -2437,13 +2648,13 @@ pds-icon {
|
|
|
2437
2648
|
|
|
2438
2649
|
|
|
2439
2650
|
/* Icon color utilities */
|
|
2440
|
-
.icon-primary, pds-icon.primary { color: var(--color-primary-
|
|
2441
|
-
.icon-secondary, pds-icon.secondary { color: var(--color-secondary
|
|
2442
|
-
.icon-accent, pds-icon.accent { color: var(--color-accent-
|
|
2443
|
-
.icon-success, pds-icon.success { color: var(--color-success-
|
|
2444
|
-
.icon-warning, pds-icon.warning { color: var(--color-warning-
|
|
2445
|
-
.icon-danger, pds-icon.danger { color: var(--color-danger-
|
|
2446
|
-
.icon-info, pds-icon.info { color: var(--color-info-
|
|
2651
|
+
.icon-primary, pds-icon.primary { color: var(--color-primary-text); }
|
|
2652
|
+
.icon-secondary, pds-icon.secondary { color: var(--color-text-secondary); }
|
|
2653
|
+
.icon-accent, pds-icon.accent { color: var(--color-accent-text); }
|
|
2654
|
+
.icon-success, pds-icon.success { color: var(--color-success-text); }
|
|
2655
|
+
.icon-warning, pds-icon.warning { color: var(--color-warning-text); }
|
|
2656
|
+
.icon-danger, pds-icon.danger { color: var(--color-danger-text); }
|
|
2657
|
+
.icon-info, pds-icon.info { color: var(--color-info-text); }
|
|
2447
2658
|
.icon-muted, pds-icon.muted { color: var(--color-text-muted); }
|
|
2448
2659
|
.icon-subtle, pds-icon.subtle { color: var(--color-text-subtle); }
|
|
2449
2660
|
|
|
@@ -2468,11 +2679,11 @@ a.icon-only {
|
|
|
2468
2679
|
}
|
|
2469
2680
|
|
|
2470
2681
|
&.icon-only {
|
|
2471
|
-
padding: ${
|
|
2472
|
-
min-width: ${
|
|
2473
|
-
min-height: ${
|
|
2474
|
-
width: ${
|
|
2475
|
-
height: ${
|
|
2682
|
+
padding: ${l};
|
|
2683
|
+
min-width: ${f};
|
|
2684
|
+
min-height: ${f};
|
|
2685
|
+
width: ${f};
|
|
2686
|
+
height: ${f};
|
|
2476
2687
|
display: inline-flex;
|
|
2477
2688
|
align-items: center;
|
|
2478
2689
|
justify-content: center;
|
|
@@ -2485,11 +2696,11 @@ a.icon-only {
|
|
|
2485
2696
|
}
|
|
2486
2697
|
|
|
2487
2698
|
&.btn-sm.icon-only {
|
|
2488
|
-
padding: ${
|
|
2489
|
-
min-width: ${
|
|
2490
|
-
min-height: ${
|
|
2491
|
-
width: ${
|
|
2492
|
-
height: ${
|
|
2699
|
+
padding: ${p};
|
|
2700
|
+
min-width: ${h};
|
|
2701
|
+
min-height: ${h};
|
|
2702
|
+
width: ${h};
|
|
2703
|
+
height: ${h};
|
|
2493
2704
|
|
|
2494
2705
|
pds-icon,
|
|
2495
2706
|
pds-icon[size] {
|
|
@@ -2499,7 +2710,7 @@ a.icon-only {
|
|
|
2499
2710
|
}
|
|
2500
2711
|
|
|
2501
2712
|
&.btn-xs.icon-only {
|
|
2502
|
-
padding: ${
|
|
2713
|
+
padding: ${c};
|
|
2503
2714
|
min-width: ${v};
|
|
2504
2715
|
min-height: ${v};
|
|
2505
2716
|
width: ${v};
|
|
@@ -2514,10 +2725,10 @@ a.icon-only {
|
|
|
2514
2725
|
|
|
2515
2726
|
&.btn-lg.icon-only {
|
|
2516
2727
|
padding: ${u};
|
|
2517
|
-
min-width: ${
|
|
2518
|
-
min-height: ${
|
|
2519
|
-
width: ${
|
|
2520
|
-
height: ${
|
|
2728
|
+
min-width: ${m};
|
|
2729
|
+
min-height: ${m};
|
|
2730
|
+
width: ${m};
|
|
2731
|
+
height: ${m};
|
|
2521
2732
|
|
|
2522
2733
|
pds-icon,
|
|
2523
2734
|
pds-icon[size] {
|
|
@@ -2548,12 +2759,12 @@ a.icon-only {
|
|
|
2548
2759
|
/* Basic dropdown host */
|
|
2549
2760
|
nav[data-dropdown] {
|
|
2550
2761
|
position: relative;
|
|
2551
|
-
display:
|
|
2762
|
+
display: flex;
|
|
2552
2763
|
padding: 0;
|
|
2553
2764
|
|
|
2554
2765
|
& > :last-child {
|
|
2555
2766
|
position: absolute;
|
|
2556
|
-
padding: var(--spacing-2);
|
|
2767
|
+
padding: 0 var(--spacing-2);
|
|
2557
2768
|
margin: 0;
|
|
2558
2769
|
background: var(--color-surface-overlay);
|
|
2559
2770
|
border: var(--border-width-thin) solid var(--color-border);
|
|
@@ -2608,7 +2819,7 @@ nav[data-dropdown] {
|
|
|
2608
2819
|
}
|
|
2609
2820
|
|
|
2610
2821
|
menu li {
|
|
2611
|
-
padding: var(--spacing-
|
|
2822
|
+
padding: var(--spacing-2) 0;
|
|
2612
2823
|
|
|
2613
2824
|
& + li {
|
|
2614
2825
|
border-top: var(--border-width-thin) solid var(--color-border);
|
|
@@ -2641,7 +2852,7 @@ nav[data-dropdown] {
|
|
|
2641
2852
|
gap: var(--spacing-2);
|
|
2642
2853
|
|
|
2643
2854
|
&.danger {
|
|
2644
|
-
color: var(--color-danger-
|
|
2855
|
+
color: var(--color-danger-text);
|
|
2645
2856
|
}
|
|
2646
2857
|
}
|
|
2647
2858
|
|
|
@@ -2699,7 +2910,7 @@ nav[data-dropdown] {
|
|
|
2699
2910
|
opacity: 0;
|
|
2700
2911
|
}
|
|
2701
2912
|
}
|
|
2702
|
-
`}#xe(){let{layout:
|
|
2913
|
+
`}#xe(){let{layout:e={}}=this.options.design,r=e.breakpoints||{sm:640,md:768,lg:1024,xl:1280},n=e.gridSystem||{},o=n.columns||[1,2,3,4,6],a=n.autoFitBreakpoints||{sm:"150px",md:"250px",lg:"350px",xl:"450px"},i=this.#E(e),s=[`
|
|
2703
2914
|
/* ============================================================================
|
|
2704
2915
|
Layout Utilities
|
|
2705
2916
|
Modern grid and flex system for building responsive layouts
|
|
@@ -2709,9 +2920,9 @@ nav[data-dropdown] {
|
|
|
2709
2920
|
.container {
|
|
2710
2921
|
display: block;
|
|
2711
2922
|
width: 100%;
|
|
2712
|
-
max-width: ${
|
|
2923
|
+
max-width: ${e.containerMaxWidth||"1400px"};
|
|
2713
2924
|
margin: 0 auto;
|
|
2714
|
-
padding: ${
|
|
2925
|
+
padding: ${e.containerPadding||"var(--spacing-6)"};
|
|
2715
2926
|
}
|
|
2716
2927
|
|
|
2717
2928
|
/* Grid System */
|
|
@@ -2720,10 +2931,10 @@ nav[data-dropdown] {
|
|
|
2720
2931
|
gap: var(--spacing-4);
|
|
2721
2932
|
}
|
|
2722
2933
|
|
|
2723
|
-
`];for(let
|
|
2934
|
+
`];for(let d of o)s.push(`.grid-cols-${d} { grid-template-columns: repeat(${d}, 1fr); }
|
|
2724
2935
|
`);s.push(`
|
|
2725
2936
|
/* Auto-fit grids (responsive) */
|
|
2726
|
-
`);for(let[
|
|
2937
|
+
`);for(let[d,l]of Object.entries(a))s.push(`.grid-auto-${d} { grid-template-columns: repeat(auto-fit, minmax(${l}, 1fr)); }
|
|
2727
2938
|
`);return s.push(`
|
|
2728
2939
|
/* Gap utilities */
|
|
2729
2940
|
.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 +3054,7 @@ nav[data-dropdown] {
|
|
|
2843
3054
|
height: auto;
|
|
2844
3055
|
}
|
|
2845
3056
|
|
|
2846
|
-
`}#ke(){let{layout:
|
|
3057
|
+
`}#ke(){let{layout:e={},a11y:r={}}=this.options.design,n=e.breakpoints||{sm:640,md:768,lg:1024,xl:1280},o=r.minTouchTarget||$.TouchTargetSizes.standard;return`/* Mobile-First Responsive Design */
|
|
2847
3058
|
|
|
2848
3059
|
/* Small devices (${n.sm}px and up) */
|
|
2849
3060
|
@media (min-width: ${n.sm}px) {
|
|
@@ -2899,7 +3110,7 @@ nav[data-dropdown] {
|
|
|
2899
3110
|
|
|
2900
3111
|
a {
|
|
2901
3112
|
&:hover {
|
|
2902
|
-
color: var(--color-
|
|
3113
|
+
color: var(--color-link-hover);
|
|
2903
3114
|
}
|
|
2904
3115
|
}
|
|
2905
3116
|
}
|
|
@@ -2947,23 +3158,23 @@ nav[data-dropdown] {
|
|
|
2947
3158
|
}
|
|
2948
3159
|
}
|
|
2949
3160
|
|
|
2950
|
-
`}#
|
|
3161
|
+
`}#s(e){let r=parseInt(e.slice(1,3),16)/255,n=parseInt(e.slice(3,5),16)/255,o=parseInt(e.slice(5,7),16)/255,a=Math.max(r,n,o),i=Math.min(r,n,o),s,d,l=(a+i)/2;if(a===i)s=d=0;else{let p=a-i;switch(d=l>.5?p/(2-a-i):p/(a+i),a){case r:s=(n-o)/p+(n<o?6:0);break;case n:s=(o-r)/p+2;break;case o:s=(r-n)/p+4;break}s/=6}return{h:s*360,s:d*100,l:l*100}}#t(e,r,n){e=e/360,r=r/100,n=n/100;let o=(l,p,c)=>(c<0&&(c+=1),c>1&&(c-=1),c<1/6?l+(p-l)*6*c:c<1/2?p:c<2/3?l+(p-l)*(2/3-c)*6:l),a,i,s;if(r===0)a=i=s=n;else{let l=n<.5?n*(1+r):n+r-n*r,p=2*n-l;a=o(p,l,e+1/3),i=o(p,l,e),s=o(p,l,e-1/3)}let d=l=>{let p=Math.round(l*255).toString(16);return p.length===1?"0"+p:p};return`#${d(a)}${d(i)}${d(s)}`}getTokens(){return this.tokens}exportCSS(){return this.layeredCSS}#Se(){this.#e={tokens:this.#$e(),primitives:this.#Le(),components:this.#ze(),utilities:this.#Ce()},this.options.debug&&this.options.log?.("debug","[Generator] Layer sizes:",{tokens:`${(this.#e.tokens.length/1024).toFixed(2)} KB`,primitives:`${(this.#e.primitives.length/1024).toFixed(2)} KB`,components:`${(this.#e.components.length/1024).toFixed(2)} KB`,utilities:`${(this.#e.utilities.length/1024).toFixed(2)} KB`})}#$e(){let{colors:e,spacing:r,radius:n,borderWidths:o,typography:a,shadows:i,darkShadows:s,layout:d,transitions:l,zIndex:p,icons:c}=this.tokens,u=[`@layer tokens {
|
|
2951
3162
|
:root {
|
|
2952
|
-
${this.#q(
|
|
2953
|
-
${this.#
|
|
3163
|
+
${this.#q(e)}
|
|
3164
|
+
${this.#G(r)}
|
|
2954
3165
|
${this.#K(n)}
|
|
2955
3166
|
${this.#J(o)}
|
|
2956
3167
|
${this.#Y(a)}
|
|
2957
|
-
${this.#
|
|
2958
|
-
${this.#
|
|
2959
|
-
${this.#
|
|
2960
|
-
${this.#Q(
|
|
2961
|
-
${this.#ee(
|
|
3168
|
+
${this.#y(i)}
|
|
3169
|
+
${this.#X(d)}
|
|
3170
|
+
${this.#Z(l)}
|
|
3171
|
+
${this.#Q(p)}
|
|
3172
|
+
${this.#ee(c)}
|
|
2962
3173
|
}
|
|
2963
|
-
${this.#re(
|
|
3174
|
+
${this.#re(e,s)}
|
|
2964
3175
|
}`];return u.push(`
|
|
2965
3176
|
/* Non-layered dark variables fallback (ensures attribute wins) */
|
|
2966
|
-
`),u.push(this.#te(
|
|
3177
|
+
`),u.push(this.#te(e,s)),u.join("")}#Le(){let{advanced:e={},a11y:r={},layout:n={}}=this.options.design,o=e.tabSize||$.TabSizes.standard,a=r.minTouchTarget||$.TouchTargetSizes.standard,i=n.breakpoints||{sm:640,md:768,lg:1024,xl:1280};return`@layer primitives {
|
|
2967
3178
|
/* Base HTML reset */
|
|
2968
3179
|
*, *::before, *::after {
|
|
2969
3180
|
box-sizing: border-box;
|
|
@@ -3010,7 +3221,7 @@ nav[data-dropdown] {
|
|
|
3010
3221
|
box-sizing: border-box;
|
|
3011
3222
|
font: inherit;
|
|
3012
3223
|
color: var(--color-primary-contrast, white);
|
|
3013
|
-
background: var(--color-primary-
|
|
3224
|
+
background: var(--color-primary-fill);
|
|
3014
3225
|
padding: var(--spacing-2) var(--spacing-4);
|
|
3015
3226
|
border: 0;
|
|
3016
3227
|
border-radius: var(--radius-md);
|
|
@@ -3029,11 +3240,11 @@ nav[data-dropdown] {
|
|
|
3029
3240
|
|
|
3030
3241
|
:where(button):hover:not(:disabled) {
|
|
3031
3242
|
opacity: 0.9;
|
|
3032
|
-
background-color: var(--color-primary-
|
|
3243
|
+
background-color: var(--color-primary-fill-hover);
|
|
3033
3244
|
}
|
|
3034
3245
|
|
|
3035
3246
|
:where(button):focus-visible {
|
|
3036
|
-
outline: 2px solid var(--color-primary-500);
|
|
3247
|
+
outline: 2px solid var(--color-focus-ring, var(--color-primary-500));
|
|
3037
3248
|
outline-offset: 2px;
|
|
3038
3249
|
}
|
|
3039
3250
|
|
|
@@ -3066,8 +3277,8 @@ nav[data-dropdown] {
|
|
|
3066
3277
|
:where(select):focus-visible,
|
|
3067
3278
|
:where(textarea):focus-visible {
|
|
3068
3279
|
outline: none;
|
|
3069
|
-
border-color: var(--color-primary-500);
|
|
3070
|
-
box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary-500) 30%, transparent);
|
|
3280
|
+
border-color: var(--color-focus-ring, var(--color-primary-500));
|
|
3281
|
+
box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-focus-ring, var(--color-primary-500)) 30%, transparent);
|
|
3071
3282
|
}
|
|
3072
3283
|
|
|
3073
3284
|
:where(input):disabled,
|
|
@@ -3094,22 +3305,32 @@ nav[data-dropdown] {
|
|
|
3094
3305
|
|
|
3095
3306
|
/* Link primitives */
|
|
3096
3307
|
:where(a) {
|
|
3097
|
-
color: var(--color-primary-text, var(--color-primary-600));
|
|
3308
|
+
color: var(--color-link, var(--color-primary-text, var(--color-primary-600)));
|
|
3098
3309
|
text-decoration: underline;
|
|
3099
3310
|
text-underline-offset: 0.2em;
|
|
3100
|
-
transition: opacity var(--transition-fast);
|
|
3311
|
+
transition: color var(--transition-fast), opacity var(--transition-fast);
|
|
3101
3312
|
}
|
|
3102
3313
|
|
|
3103
3314
|
:where(a):hover {
|
|
3104
|
-
|
|
3315
|
+
color: var(--color-link-hover, var(--color-link, var(--color-primary-text, var(--color-primary-600))));
|
|
3316
|
+
opacity: 0.9;
|
|
3317
|
+
}
|
|
3318
|
+
|
|
3319
|
+
:where(a):visited {
|
|
3320
|
+
color: var(--color-link-visited, var(--color-link, var(--color-primary-text, var(--color-primary-600))));
|
|
3105
3321
|
}
|
|
3106
3322
|
|
|
3107
3323
|
:where(a):focus-visible {
|
|
3108
|
-
outline: 2px solid var(--color-primary-500);
|
|
3324
|
+
outline: 2px solid var(--color-focus-ring, var(--color-primary-500));
|
|
3109
3325
|
outline-offset: 2px;
|
|
3110
3326
|
border-radius: var(--radius-sm);
|
|
3111
3327
|
}
|
|
3112
3328
|
|
|
3329
|
+
::selection {
|
|
3330
|
+
background: var(--color-selection-bg, var(--color-primary-text, var(--color-primary-600)));
|
|
3331
|
+
color: var(--color-selection-text, var(--color-primary-contrast, #ffffff));
|
|
3332
|
+
}
|
|
3333
|
+
|
|
3113
3334
|
/* Form primitives */
|
|
3114
3335
|
:where(label) {
|
|
3115
3336
|
display: block;
|
|
@@ -3167,23 +3388,23 @@ nav[data-dropdown] {
|
|
|
3167
3388
|
}
|
|
3168
3389
|
|
|
3169
3390
|
&:has(input[type="checkbox"]:checked)::before {
|
|
3170
|
-
background: var(--color-primary-
|
|
3171
|
-
border-color: var(--color-primary-
|
|
3391
|
+
background: var(--color-primary-fill);
|
|
3392
|
+
border-color: var(--color-primary-fill);
|
|
3172
3393
|
}
|
|
3173
3394
|
|
|
3174
3395
|
&:has(input[type="checkbox"]:focus)::before {
|
|
3175
|
-
outline: 2px solid var(--color-primary-500);
|
|
3396
|
+
outline: 2px solid var(--color-focus-ring, var(--color-primary-500));
|
|
3176
3397
|
outline-offset: 2px;
|
|
3177
3398
|
}
|
|
3178
3399
|
|
|
3179
3400
|
&:has(input[type="checkbox"]:not(:disabled)):hover::before {
|
|
3180
|
-
border-color: var(--color-primary-
|
|
3401
|
+
border-color: var(--color-primary-fill);
|
|
3181
3402
|
background: var(--color-surface-subtle);
|
|
3182
3403
|
}
|
|
3183
3404
|
|
|
3184
3405
|
&:has(input[type="checkbox"]:checked:not(:disabled)):hover::before {
|
|
3185
|
-
background: var(--color-primary-
|
|
3186
|
-
border-color: var(--color-primary-
|
|
3406
|
+
background: var(--color-primary-fill-hover);
|
|
3407
|
+
border-color: var(--color-primary-fill-hover);
|
|
3187
3408
|
}
|
|
3188
3409
|
|
|
3189
3410
|
&:has(input[type="checkbox"]:disabled) {
|
|
@@ -3310,7 +3531,7 @@ nav[data-dropdown] {
|
|
|
3310
3531
|
}
|
|
3311
3532
|
}
|
|
3312
3533
|
|
|
3313
|
-
`}#
|
|
3534
|
+
`}#ze(){return`@layer components {
|
|
3314
3535
|
|
|
3315
3536
|
${this.#ce()}
|
|
3316
3537
|
|
|
@@ -3318,10 +3539,10 @@ ${this.#de()}
|
|
|
3318
3539
|
|
|
3319
3540
|
${this.#ue()}
|
|
3320
3541
|
|
|
3321
|
-
${this.#me()}
|
|
3322
|
-
|
|
3323
3542
|
${this.#fe()}
|
|
3324
3543
|
|
|
3544
|
+
${this.#me()}
|
|
3545
|
+
|
|
3325
3546
|
${this.#ge()}
|
|
3326
3547
|
|
|
3327
3548
|
${this.#ve()}
|
|
@@ -3469,13 +3690,13 @@ ${this.#le()}
|
|
|
3469
3690
|
|
|
3470
3691
|
/* btn-primary stays vibrant in any context */
|
|
3471
3692
|
& .btn-primary {
|
|
3472
|
-
background-color: var(--color-primary-
|
|
3473
|
-
border-color: var(--color-primary-
|
|
3693
|
+
background-color: var(--color-primary-fill);
|
|
3694
|
+
border-color: var(--color-primary-fill);
|
|
3474
3695
|
color: var(--color-primary-contrast, #ffffff);
|
|
3475
3696
|
|
|
3476
3697
|
&:hover {
|
|
3477
|
-
background-color: var(--color-primary-
|
|
3478
|
-
border-color: var(--color-primary-
|
|
3698
|
+
background-color: var(--color-primary-fill-hover);
|
|
3699
|
+
border-color: var(--color-primary-fill-hover);
|
|
3479
3700
|
}
|
|
3480
3701
|
}
|
|
3481
3702
|
}
|
|
@@ -3508,7 +3729,7 @@ html:not([data-theme="dark"]) .surface-inverse {
|
|
|
3508
3729
|
}
|
|
3509
3730
|
|
|
3510
3731
|
& a:not([class*="btn"]) {
|
|
3511
|
-
color: var(--color-
|
|
3732
|
+
color: var(--color-link);
|
|
3512
3733
|
}
|
|
3513
3734
|
}
|
|
3514
3735
|
|
|
@@ -3540,7 +3761,7 @@ html[data-theme="dark"] .surface-inverse {
|
|
|
3540
3761
|
}
|
|
3541
3762
|
|
|
3542
3763
|
& a:not([class*="btn"]) {
|
|
3543
|
-
color: var(--color-
|
|
3764
|
+
color: var(--color-link);
|
|
3544
3765
|
}
|
|
3545
3766
|
}
|
|
3546
3767
|
|
|
@@ -3583,17 +3804,17 @@ ${this.#we()}
|
|
|
3583
3804
|
${this.#ke()}
|
|
3584
3805
|
|
|
3585
3806
|
}
|
|
3586
|
-
`}#Me(){this.#
|
|
3807
|
+
`}#Me(){this.#a={tokens:new CSSStyleSheet,primitives:new CSSStyleSheet,components:new CSSStyleSheet,utilities:new CSSStyleSheet},this.#Ee()}#Ee(){this.#a.tokens.replaceSync(this.#e.tokens),this.#a.primitives.replaceSync(this.#e.primitives),this.#a.components.replaceSync(this.#e.components),this.#a.utilities.replaceSync(this.#e.utilities)}get tokensCSS(){return this.#e?.tokens||""}get primitivesCSS(){return this.#e?.primitives||""}get componentsCSS(){return this.#e?.components||""}get utilitiesCSS(){return this.#e?.utilities||""}get layeredCSS(){return this.#e?`${this.#e.tokens}
|
|
3587
3808
|
${this.#e.primitives}
|
|
3588
3809
|
${this.#e.components}
|
|
3589
|
-
${this.#e.utilities}`:""}get compiled(){return{tokens:{colors:this.tokens.colors,spacing:this.tokens.spacing,radius:this.tokens.radius,borderWidths:this.tokens.borderWidths,typography:this.tokens.typography,shadows:this.tokens.shadows,layout:this.tokens.layout,transitions:this.tokens.transitions,zIndex:this.tokens.zIndex,icons:this.tokens.icons},layers:{tokens:{css:this.#e?.tokens||"",size:this.#e?.tokens?.length||0,sizeKB:((this.#e?.tokens?.length||0)/1024).toFixed(2)},primitives:{css:this.#e?.primitives||"",size:this.#e?.primitives?.length||0,sizeKB:((this.#e?.primitives?.length||0)/1024).toFixed(2)},components:{css:this.#e?.components||"",size:this.#e?.components?.length||0,sizeKB:((this.#e?.components?.length||0)/1024).toFixed(2)},utilities:{css:this.#e?.utilities||"",size:this.#e?.utilities?.length||0,sizeKB:((this.#e?.utilities?.length||0)/1024).toFixed(2)},combined:{css:this.layeredCSS,size:this.layeredCSS?.length||0,sizeKB:((this.layeredCSS?.length||0)/1024).toFixed(2)}},config:{design:this.options.design||{},preset:this.options.preset||null,debug:this.options.debug||!1},capabilities:{constructableStylesheets:typeof CSSStyleSheet<"u",blobURLs:typeof Blob<"u"&&typeof URL<"u",shadowDOM:typeof ShadowRoot<"u"},references:{ontology:typeof q<"u"?q:null,enums:typeof
|
|
3810
|
+
${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 $<"u"?$:null},meta:{generatedAt:new Date().toISOString(),totalSize:(this.#e?.tokens?.length||0)+(this.#e?.primitives?.length||0)+(this.#e?.components?.length||0)+(this.#e?.utilities?.length||0),totalSizeKB:(((this.#e?.tokens?.length||0)+(this.#e?.primitives?.length||0)+(this.#e?.components?.length||0)+(this.#e?.utilities?.length||0))/1024).toFixed(2),layerCount:4,tokenGroups:Object.keys(this.tokens).length},helpers:{getColorScales:()=>{let e=[],r=this.tokens.colors;for(let[n,o]of Object.entries(r))typeof o=="object"&&o!==null&&e.push({name:n,scale:o});return e},getColorScale:e=>this.tokens.colors[e]||null,getSpacingValues:()=>Object.entries(this.tokens.spacing).map(([e,r])=>({key:e,value:r})),getTypography:()=>this.tokens.typography,getLayerCSS:e=>{let r=["tokens","primitives","components","utilities"];if(!r.includes(e))throw new Error(`Invalid layer: ${e}. Must be one of ${r.join(", ")}`);return this.#e?.[e]||""},usesEnumValue:(e,r)=>{let n=this.options.design||{};return JSON.stringify(n).includes(r)}}}}get tokensStylesheet(){return this.#a?.tokens}get primitivesStylesheet(){return this.#a?.primitives}get componentsStylesheet(){return this.#a?.components}get utilitiesStylesheet(){return this.#a?.utilities}getCSSModules(){return{"pds-tokens.css.js":this.#d("tokens",this.#e.tokens),"pds-primitives.css.js":this.#d("primitives",this.#e.primitives),"pds-components.css.js":this.#d("components",this.#e.components),"pds-utilities.css.js":this.#d("utilities",this.#e.utilities),"pds-styles.css.js":this.#d("styles",this.layeredCSS)}}#d(e,r){let n=r.replace(/\\/g,"\\\\").replace(/`/g,"\\`").replace(/\$/g,"\\$");return`// Pure Design System - ${e}
|
|
3590
3811
|
// Auto-generated - do not edit directly
|
|
3591
3812
|
|
|
3592
|
-
export const ${
|
|
3593
|
-
${
|
|
3813
|
+
export const ${e} = new CSSStyleSheet();
|
|
3814
|
+
${e}.replaceSync(\`${n}\`);
|
|
3594
3815
|
|
|
3595
|
-
export const ${
|
|
3596
|
-
`}};function Ar(e={},t={}){let r=Number(t.minContrast||4.5),n=Number(t.minMutedContrast||3),o=!!t.extendedChecks,a=c=>{let d=String(c||"").replace("#",""),l=d.length===3?d.split("").map(g=>g+g).join(""):d,u=parseInt(l||"0",16);return{r:u>>16&255,g:u>>8&255,b:u&255}},i=c=>{let{r:d,g:l,b:u}=a(c),g=[d/255,l/255,u/255].map(m=>m<=.03928?m/12.92:Math.pow((m+.055)/1.055,2.4));return .2126*g[0]+.7152*g[1]+.0722*g[2]},s=(c,d)=>{if(!c||!d)return 0;let l=i(c),u=i(d),g=Math.max(l,u),m=Math.min(l,u);return(g+.05)/(m+.05)},p=[];try{let d=new X({design:structuredClone(e)}).tokens.colors,l={surfaceBg:d.surface?.base,surfaceText:d.gray?.[900]||"#000000",surfaceTextSecondary:d.gray?.[700]||d.gray?.[800]||d.gray?.[900],surfaceTextMuted:d.gray?.[500]||d.gray?.[600]||d.gray?.[700],surfaceElevated:d.surface?.elevated||d.surface?.base,primaryFill:d.interactive?.light?.fill||d.primary?.[600],primaryText:d.interactive?.light?.text||d.primary?.[600],accentFill:d.accent?.[600]||d.accent?.[500],successFill:d.success?.[600]||d.success?.[500],warningFill:d.warning?.[600]||d.warning?.[500],dangerFill:d.danger?.[600]||d.danger?.[500],infoFill:d.info?.[600]||d.info?.[500]},u=y=>Math.max(s(y,"#ffffff"),s(y,"#000000")),g=s(l.primaryFill,"#ffffff");g<r&&p.push({path:"/colors/primary",message:`Primary button contrast too low in light theme (${g.toFixed(2)} < ${r}). Choose a darker primary.`,ratio:g,min:r,context:"light/btn-primary"});let m=s(l.surfaceBg,l.surfaceText);if(m<r&&p.push({path:"/colors/background",message:`Base text contrast on surface (light) is too low (${m.toFixed(2)} < ${r}). Adjust background or secondary (gray).`,ratio:m,min:r,context:"light/surface-text"}),o){let y=s(l.surfaceBg,l.surfaceTextSecondary);y<r&&p.push({path:"/colors/secondary",message:`Secondary text contrast on base surface (light) is too low (${y.toFixed(2)} < ${r}).`,ratio:y,min:r,context:"light/surface-text-secondary"});let k=s(l.surfaceBg,l.surfaceTextMuted);k<n&&p.push({path:"/colors/secondary",message:`Muted text contrast on base surface (light) is too low (${k.toFixed(2)} < ${n}).`,ratio:k,min:n,context:"light/surface-text-muted"});let v=s(l.surfaceElevated,l.surfaceText);v<r&&p.push({path:"/colors/background",message:`Elevated surface text contrast (light) is too low (${v.toFixed(2)} < ${r}).`,ratio:v,min:r,context:"light/surface-elevated-text"})}let b=s(l.primaryText,l.surfaceBg);b<r&&p.push({path:"/colors/primary",message:`Primary text on surface is too low for outline/link styles (light) (${b.toFixed(2)} < ${r}). Choose a darker primary or lighter surface.`,ratio:b,min:r,context:"light/outline"}),o&&[{path:"/colors/accent",key:"accent",value:l.accentFill},{path:"/colors/success",key:"success",value:l.successFill},{path:"/colors/warning",key:"warning",value:l.warningFill},{path:"/colors/danger",key:"danger",value:l.dangerFill},{path:"/colors/info",key:"info",value:l.infoFill}].forEach(k=>{if(!k?.value)return;let v=u(k.value);v<r&&p.push({path:k.path,message:`${k.key} fill color cannot achieve accessible text contrast (${v.toFixed(2)} < ${r}) with either white or black text.`,ratio:v,min:r,context:`light/${k.key}-fill`})});let f=d.dark;if(f){let y={surfaceBg:f.surface?.base||d.surface?.inverse,surfaceText:f.gray?.[50]||f.gray?.[100]||"#ffffff",surfaceTextMuted:f.gray?.[300]||f.gray?.[400]||f.gray?.[500],primaryFill:d.interactive?.dark?.fill||f.primary?.[600],primaryText:d.interactive?.dark?.text||f.primary?.[600]},k=s(y.primaryFill,"#ffffff");k<r&&p.push({path:"/colors/darkMode/primary",message:`Primary button contrast too low in dark theme (${k.toFixed(2)} < ${r}). Override darkMode.primary or pick a brighter hue.`,ratio:k,min:r,context:"dark/btn-primary"});let v=s(y.primaryText,y.surfaceBg);if(v<r&&p.push({path:"/colors/darkMode/primary",message:`Primary text on surface is too low for outline/link styles (dark) (${v.toFixed(2)} < ${r}). Override darkMode.primary/background.`,ratio:v,min:r,context:"dark/outline"}),o){let $=s(y.surfaceBg,y.surfaceText);$<r&&p.push({path:"/colors/darkMode/background",message:`Base text contrast on surface (dark) is too low (${$.toFixed(2)} < ${r}).`,ratio:$,min:r,context:"dark/surface-text"});let A=s(y.surfaceBg,y.surfaceTextMuted);A<n&&p.push({path:"/colors/darkMode/secondary",message:`Muted text contrast on surface (dark) is too low (${A.toFixed(2)} < ${n}).`,ratio:A,min:n,context:"dark/surface-text-muted"})}}}catch(c){p.push({path:"/",message:`Validation failed: ${String(c?.message||c)}`,ratio:0,min:0})}return{ok:p.length===0,issues:p}}var oo=new Set(["log","warn","error","debug","info"]),ao="__PURE_DS_PDS_SINGLETON__",Dt=null,Wt=null;function _r(){try{let t=(typeof globalThis<"u"?globalThis:window)?.[ao];if(t&&typeof t=="object")return t}catch{return null}return null}function io(e){return!e||typeof e!="object"?null:{mode:e.mode==="live"||e.mode==="static"?e.mode:null,debug:e.debug===!0,thisArg:e.thisArg}}function so(e){if(typeof e!="string")return"log";let t=e.toLowerCase();return oo.has(t)?t:"log"}function lo(){if(typeof Wt=="function")try{let t=io(Wt());if(t)return t}catch{}let e=_r();if(e){let t=e?.mode||e?.compiled?.mode||(e?.registry?.isLive?"live":"static"),r=(e?.debug||e?.currentConfig?.debug||e?.currentConfig?.design?.debug||e?.compiled?.debug||e?.compiled?.design?.debug||!1)===!0;return{mode:t,debug:r,thisArg:e}}return{mode:null,debug:!1}}function co(){if(typeof Dt=="function")try{let t=Dt();if(typeof t=="function")return t}catch{}let e=_r();return typeof e?.logHandler=="function"?e.logHandler:null}function Rr(e,t,...r){if(typeof console>"u")return;let n=typeof console[e]=="function"?console[e].bind(console):typeof console.log=="function"?console.log.bind(console):null;n&&(r.length>0?n(t,...r):n(t))}function po(e,t){let r=t?.debug===!0;return!(t?.mode==="static"&&!r||!r&&e!=="error"&&e!=="warn")}function Fr({getLogger:e,getContext:t}={}){Dt=typeof e=="function"?e:null,Wt=typeof t=="function"?t:null}function Qe(e="log",t,...r){let n=so(e),o=lo(),a=co();if(a)try{a.call(o?.thisArg,n,t,...r);return}catch(i){Rr("error","Custom log handler failed:",i)}po(n,o)&&Rr(n,t,...r)}var uo="en",_={defaultLocale:uo,provider:null,messagesByLocale:new Map,loadingByLocale:new Map,observer:null,reconcileTimer:null,requestedKeys:new Set,textNodeKeyMap:new WeakMap,attributeKeyMap:new WeakMap,valueToKeys:new Map,missingWarnings:new Set},go=["title","placeholder","aria-label","aria-description","aria-placeholder","aria-roledescription","alt","label"],mo=e=>!!e&&typeof e!="string"&&typeof e=="object"&&"strTag"in e;function oe(e){return String(e||"").trim().toLowerCase()}function fo(e){let t=oe(e);return t?t.split("-")[0]||t:""}function pe(e){let t=oe(e);if(!t)return _.defaultLocale;let r=_.provider?.resolveLocale;if(typeof r=="function"){let n=oe(r(e));if(n)return n}return t}function ho(e){let t="";for(let r=0;r<=e.length-1;r+=1)t+=e[r],r<e.length-1&&(t+=`{${r}}`);return t}function ye(e,t){return String(e).replace(/\{(\d+)\}/g,(r,n)=>t(Number(n)))}function Ht(e){if(!e||typeof e!="object")return{};let t={};for(let[r,n]of Object.entries(e)){if(typeof n=="string"){t[r]=n;continue}n&&typeof n=="object"&&typeof n.content=="string"&&(t[r]=n.content)}return t}function bo(e){let t=oe(e);if(!t)return[_.defaultLocale];let r=fo(t);return!r||r===t?[t]:[t,r]}function Pr(e,t){let r=pe(e);_.messagesByLocale.set(r,Ht(t))}function jr(e){typeof e=="string"&&e.length>0&&_.requestedKeys.add(e)}function Nr(e,t){if(typeof e!="string"||!e.length)return;let r=typeof t=="string"?t:String(t||"");r.length&&(_.valueToKeys.has(r)||_.valueToKeys.set(r,new Set),_.valueToKeys.get(r).add(e))}function Oe(e){let t=bo(e);for(let r of t)if(_.messagesByLocale.has(r))return{locale:r,messages:_.messagesByLocale.get(r)};return null}async function ve(e,t="explicit"){let r=pe(e),n=Oe(r);if(n)return n.messages;let o=r;if(_.loadingByLocale.has(o))return _.loadingByLocale.get(o);if(!_.provider)return{};let a=_.provider.loadLocale||_.provider.setLocale||null;if(typeof a!="function")return{};let i={locale:r,defaultLocale:_.defaultLocale,reason:t,loadedLocales:Array.from(_.messagesByLocale.keys()),messages:{...Oe(r)?.messages||{}},load:t==="set-default"||t==="explicit-load"},s;try{s=a(i)}catch{return{}}if(s&&typeof s.then=="function"){let c=s.then(d=>{let l=Ht(d);return Pr(r,l),l}).catch(()=>({})).finally(()=>{_.loadingByLocale.delete(o)});return _.loadingByLocale.set(o,c),c}let p=Ht(s);return Pr(r,p),p}function yo(e){if(!e||typeof e!="object")return"";let r=typeof Element<"u"&&e instanceof Element||e?.nodeType===1?e:null;if(!r)return"";if(r.hasAttribute?.("lang"))return oe(r.getAttribute("lang"));let n=r.closest?.("[lang]");return n&&n.getAttribute?oe(n.getAttribute("lang")):""}function Be(e={}){if(typeof e?.lang=="string"&&e.lang.trim())return pe(e.lang);let t=e?.element||e?.scope||e?.host||e?.contextElement||null,r=yo(t);if(r)return pe(r);if(typeof document<"u"&&document.documentElement){let n=oe(document.documentElement.getAttribute("lang"));if(n)return pe(n)}return _.defaultLocale}function vo(){let e=new Set([_.defaultLocale]);if(typeof document>"u")return e;let t=oe(document.documentElement?.getAttribute?.("lang"));t&&e.add(pe(t));let r=document.querySelectorAll?.("[lang]")||[];for(let n of r){let o=oe(n.getAttribute("lang"));o&&e.add(pe(o))}return e}async function xo(e){for(let t of e)await ve(t,"lang-detected")}function wo(e){for(let t of Array.from(_.messagesByLocale.keys()))e.has(t)||_.messagesByLocale.delete(t)}function ko(e){let t=String(e||""),r=(t.match(/^\s*/)||[""])[0],n=(t.match(/\s*$/)||[""])[0],o=r.length,a=t.length-n.length,i=a>=o?t.slice(o,a):"";return{leading:r,core:i,trailing:n}}function Ir(e){return String(e||"").replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function So(e,t){let r=typeof e=="string"?e:String(e||""),n=typeof t=="string"?t:String(t||""),o=/\{(\d+)\}/g,a=Array.from(r.matchAll(o));if(!a.length)return r===n?[]:null;let i=[],s="^",p=0;for(let l of a){let u=l.index??0;s+=Ir(r.slice(p,u)),s+="([\\s\\S]*?)",i.push(Number(l[1])),p=u+l[0].length}s+=Ir(r.slice(p)),s+="$";let c=new RegExp(s).exec(n);if(!c)return null;let d=[];for(let l=1;l<c.length;l+=1){let u=i[l-1],g=c[l];if(Object.prototype.hasOwnProperty.call(d,u)&&d[u]!==g)return null;d[u]=g}return d}function Ut(e,t){if(typeof e!="string"||!e.length)return[];let r=[e];for(let[,n]of _.messagesByLocale.entries()){let o=n?.[e];typeof o=="string"&&o.length&&r.push(o)}for(let n of r){let o=So(n,t);if(o)return o}return[]}function Or(e){if(!e)return null;let t=_.valueToKeys.get(e);if(t&&t.size>0){for(let n of t)if(_.requestedKeys.has(n))return n}if(_.requestedKeys.has(e))return e;let r=Array.from(_.messagesByLocale.entries());for(let n of _.requestedKeys)for(let[,o]of r)if(o&&o[n]===e)return n;return null}function Br(e){if(!e)return null;let t=null;for(let[r,n]of _.valueToKeys.entries()){if(typeof r!="string"||!r.length||r===e)continue;let o=e.indexOf(r);if(o!==-1)for(let a of n){if(!_.requestedKeys.has(a))continue;let i=Ut(a,r),s={key:a,matchedText:r,start:o,end:o+r.length,values:i};(!t||s.matchedText.length>t.matchedText.length)&&(t=s);break}}return t}async function $o(e){if(!e||e.nodeType!==3)return;let t=e.parentElement||null;if(!t)return;let{leading:r,core:n,trailing:o}=ko(e.nodeValue);if(!n)return;let a=_.textNodeKeyMap.get(e)||null;if((!a||!_.requestedKeys.has(a))&&(a=Or(n)),!a){let l=Br(n);if(!l)return;let u=Be({element:t});await ve(u,"text-node");let g=xe(l.key,l.values,{element:t},null),m=l.values.length?ye(g,y=>l.values[y]):g,b=n.slice(0,l.start)+m+n.slice(l.end),f=`${r}${b}${o}`;f!==e.nodeValue&&(e.nodeValue=f);return}_.textNodeKeyMap.set(e,a);let i=Be({element:t});await ve(i,"text-node");let s=Ut(a,n),p=xe(a,s,{element:t},null),c=s.length?ye(p,l=>s[l]):p,d=`${r}${c}${o}`;d!==e.nodeValue&&(e.nodeValue=d)}async function zo(){if(typeof document>"u"||_.requestedKeys.size===0)return;let e=document.body||document.documentElement;if(!e||typeof document.createTreeWalker!="function")return;let t=[],r=new Set,n=a=>{!a||r.has(a)||(r.add(a),t.push(a))};n(e);for(let a=0;a<t.length;a+=1){let i=t[a];if(!i||typeof i.querySelectorAll!="function")continue;let s=i.querySelectorAll("*");for(let p of s){let c=p?.shadowRoot;c&&n(c)}}let o=[];for(let a of t){let i=document.createTreeWalker(a,NodeFilter.SHOW_TEXT);for(;i.nextNode();)o.push(i.currentNode)}for(let a of o)await $o(a)}function Lo(e){let t=_.attributeKeyMap.get(e);return t||(t=new Map,_.attributeKeyMap.set(e,t)),t}async function Co(e,t){if(!e||typeof e.getAttribute!="function")return;let r=e.getAttribute(t);if(typeof r!="string"||!r.length)return;let n=Lo(e),o=n.get(t)||null;if((!o||!_.requestedKeys.has(o))&&(o=Or(r)),!o){let c=Br(r);if(!c)return;let d=Be({element:e});await ve(d,"attribute");let l=xe(c.key,c.values,{element:e},null),u=c.values.length?ye(l,m=>c.values[m]):l,g=r.slice(0,c.start)+u+r.slice(c.end);g!==r&&e.setAttribute(t,g),n.set(t,c.key);return}n.set(t,o);let a=Be({element:e});await ve(a,"attribute");let i=Ut(o,r),s=xe(o,i,{element:e},null),p=i.length?ye(s,c=>i[c]):s;p!==r&&e.setAttribute(t,p)}async function Mo(){if(typeof document>"u"||_.requestedKeys.size===0)return;let e=document.body||document.documentElement;if(!e)return;let t=[],r=new Set,n=o=>{!o||r.has(o)||(r.add(o),t.push(o))};n(e);for(let o=0;o<t.length;o+=1){let a=t[o];if(!a||typeof a.querySelectorAll!="function")continue;let i=a.querySelectorAll("*");for(let s of i){let p=s?.shadowRoot;p&&n(p)}}for(let o of t){if(!o||typeof o.querySelectorAll!="function")continue;let a=o.querySelectorAll("*");for(let i of a)for(let s of go)i.hasAttribute(s)&&await Co(i,s)}}async function Eo(){let e=vo();await xo(e),await zo(),await Mo(),wo(e)}function To(){typeof window>"u"||(_.reconcileTimer&&clearTimeout(_.reconcileTimer),_.reconcileTimer=setTimeout(()=>{_.reconcileTimer=null,Eo()},16))}function xe(e,t=[],r={},n=null){let o=Be(r),a=Oe(o);a||ve(o,"msg");let i=Oe(o)?.messages||{},s=Oe(_.defaultLocale)?.messages||{},p={key:e,values:t,options:r,locale:o,defaultLocale:_.defaultLocale,messages:i,messagesByLocale:Object.fromEntries(Array.from(_.messagesByLocale.entries())),template:n},c,d=!!a,l=o===_.defaultLocale;typeof _.provider?.translate=="function"&&(c=_.provider.translate(p));let u=null;if(c==null&&(c=i[e]),c==null&&(c=s[e],u=c==null?null:"default"),c==null&&(c=e,u="key"),d&&!l&&u){let m=`${o}::${e}`;_.missingWarnings.has(m)||(_.missingWarnings.add(m),Qe("warn",`[i18n] Missing translation for locale "${o}" and key "${e}"; using ${u} fallback.`))}let g=typeof c=="string"?c:String(c);if(Nr(e,g),Array.isArray(t)&&t.length>0){let m=ye(g,b=>t[b]);m!==g&&Nr(e,m)}return g}var Ao=(e,t,r={})=>{let n=ho(e);jr(n);let o=xe(n,t,r,{strings:e,values:t});return ye(o,a=>t[a])};var se=(e,t={})=>{if(!e)return"";if(mo(e))return Ao(e.strings,e.values,t);let r=String(e);jr(r);let n=xe(r,[],t,null);return!t?.element&&!t?.scope&&!t?.host&&!t?.contextElement&&!t?.lang&&To(),n};var Gt=class extends EventTarget{constructor(){super(),this.mode=null,this.compiled=null,this.log=()=>{},this.logHandler=null}},Dr="__PURE_DS_PDS_SINGLETON__",Vt=typeof globalThis<"u"?globalThis:window,qt=Vt?.[Dr],h=qt&&typeof qt.addEventListener=="function"?qt:new Gt;Vt&&(Vt[Dr]=h);typeof h.log!="function"&&(h.log=(e="log",t,...r)=>{if(typeof console>"u")return;let n=typeof console[e]=="function"?console[e].bind(console):typeof console.log=="function"?console.log.bind(console):null;n&&(r.length>0?n(t,...r):n(t))});typeof h.logHandler!="function"&&(h.logHandler=null);var Kt=class{constructor(){this._mode="static",this._staticPaths={tokens:"/assets/pds/styles/pds-tokens.css.js",primitives:"/assets/pds/styles/pds-primitives.css.js",components:"/assets/pds/styles/pds-components.css.js",utilities:"/assets/pds/styles/pds-utilities.css.js",styles:"/assets/pds/styles/pds-styles.css.js"}}setLiveMode(){this._mode="live"}setStaticMode(t={}){this._mode="static",this._staticPaths={...this._staticPaths,...t}}async getStylesheet(t){if(this._mode==="live")return null;try{return(await import(this._staticPaths[t]))[t]}catch(r){h.log("error",`Registry: failed to load static ${t}:`,r),h.log("error",`Registry: looking for ${this._staticPaths[t]}`),h.log("error","Registry: make sure you've run 'npm run pds:build' and configured PDS.start() with the correct static.root path");let n=new CSSStyleSheet;return n.replaceSync("/* Failed to load "+t+" */"),n}}get mode(){return this._mode}get isLive(){return this._mode==="live"}},we=new Kt;function Ro(e){try{if(typeof document>"u")return;if(typeof CSSStyleSheet<"u"&&"adoptedStyleSheets"in Document.prototype){let n=new CSSStyleSheet;n.replaceSync(e),n._pds=!0;let o=(document.adoptedStyleSheets||[]).filter(a=>a._pds!==!0);document.adoptedStyleSheets=[...o,n];return}let t="pds-runtime-stylesheet",r=document.getElementById(t);if(!r){r=document.createElement("style"),r.id=t,r.type="text/css";let n=document.head||document.getElementsByTagName("head")[0];n?n.appendChild(r):document.documentElement.appendChild(r)}r.textContent=e}catch(t){h.log("warn","installRuntimeStyles failed:",t)}}function Wr(e){let t=e;if(!t||typeof t!="object"){h.log("error","Runtime applyStyles requires an explicit generator instance in live mode");return}let r=t.layeredCSS||t.css||"";if(!r){t.options?.log?.("warn","Runtime: no CSS available on generator to apply");return}Ro(r)}async function et(e,t=[],r=null){try{let n=r?.primitivesStylesheet?r.primitivesStylesheet:await we.getStylesheet("primitives");e.adoptedStyleSheets=[n,...t]}catch(n){let o=e.host?.tagName?.toLowerCase()||"unknown";h.log("error",`Adopter: <${o}> failed to adopt primitives:`,n),e.adoptedStyleSheets=t}}async function tt(e,t=["primitives"],r=[],n=null){let o=Array.isArray(r)?r.filter(Boolean):[];if(o.length){let i=(Array.isArray(e.adoptedStyleSheets)?e.adoptedStyleSheets:[]).filter(s=>!o.includes(s));e.adoptedStyleSheets=[...i,...o]}try{let i=(await Promise.all(t.map(async s=>{if(n)switch(s){case"tokens":return n.tokensStylesheet;case"primitives":return n.primitivesStylesheet;case"components":return n.componentsStylesheet;case"utilities":return n.utilitiesStylesheet;default:break}return we.getStylesheet(s)}))).filter(s=>s!==null);e.adoptedStyleSheets=[...i,...o]}catch(a){let i=e.host?.tagName?.toLowerCase()||"unknown";h.log("error",`Adopter: <${i}> failed to adopt layers:`,a),e.adoptedStyleSheets=o}}function Hr(e){let t=new CSSStyleSheet;return t.replaceSync(e),t}var _o=[{selector:".accordion"},{selector:"nav[data-dropdown]"},{selector:"label[data-toggle]"},{selector:"label[data-color]"},{selector:'input[type="range"]'},{selector:"form[data-required]"},{selector:"fieldset[role=group][data-open]"},{selector:"[data-clip]"},{selector:"button, a[class*='btn-']"}];function Fo(e){e.dataset.enhancedAccordion||(e.dataset.enhancedAccordion="true",e.addEventListener("toggle",t=>{t.target.open&&t.target.parentElement===e&&e.querySelectorAll(":scope > details[open]").forEach(r=>{r!==t.target&&(r.open=!1)})},!0))}function Po(e){if(e.dataset.enhancedDropdown)return;e.dataset.enhancedDropdown="true";let t=e.lastElementChild;if(!t)return;let r=e.querySelector("[data-dropdown-toggle]")||e.querySelector("button"),n=typeof HTMLElement<"u"&&"showPopover"in HTMLElement.prototype&&"hidePopover"in HTMLElement.prototype;r&&!r.hasAttribute("type")&&r.setAttribute("type","button"),t.id||(t.id=`dropdown-${Math.random().toString(36).slice(2,9)}`);let o=t.tagName?.toLowerCase()==="menu",a=8;if(o&&!t.hasAttribute("role")&&t.setAttribute("role","menu"),t.hasAttribute("aria-hidden")||t.setAttribute("aria-hidden","true"),r&&(r.setAttribute("aria-haspopup","true"),r.setAttribute("aria-controls",t.id),r.setAttribute("aria-expanded","false")),!n){let L="__PDS_DROPDOWN_POPOVER_WARNED__";globalThis[L]||(globalThis[L]=!0,console.warn("[PDS] nav[data-dropdown] requires the Popover API. Add a popover polyfill (recommended: @oddbird/popover-polyfill) for browsers without support."));return}t.setAttribute("popover","auto");let i=()=>{let L=t.getAttribute("style");t.style.visibility="hidden",t.style.display="inline-block",t.style.pointerEvents="none";let M=t.getBoundingClientRect(),N=Math.max(t.offsetWidth||0,t.scrollWidth||0,M.width||0,1),z=Math.max(t.offsetHeight||0,t.scrollHeight||0,M.height||0,1);return L===null?t.removeAttribute("style"):t.setAttribute("style",L),{width:N,height:z}},s=()=>{try{return t.matches(":popover-open")}catch{return!1}},p=()=>{t.setAttribute("aria-hidden","true"),r?.setAttribute("aria-expanded","false")},c=()=>{t.setAttribute("aria-hidden","false"),r?.setAttribute("aria-expanded","true")},d=()=>{let L=(e.getAttribute("data-direction")||e.getAttribute("data-dropdown-direction")||e.getAttribute("data-mode")||"auto").toLowerCase();if(L==="up"||L==="down")return L;let M=(r||e).getBoundingClientRect(),{height:N}=i(),z=Math.max(0,window.innerHeight-M.bottom),x=Math.max(0,M.top),S=z>=N,C=x>=N;return S&&!C?"down":C&&!S?"up":S&&C?"down":x>z?"up":"down"},l=()=>{let L=(e.getAttribute("data-align")||e.getAttribute("data-dropdown-align")||"auto").toLowerCase();if(L==="left"||L==="right"||L==="start"||L==="end")return L==="start"?"left":L==="end"?"right":L;let M=(r||e).getBoundingClientRect(),{width:N}=i(),z=Math.max(0,window.innerWidth-M.left),x=Math.max(0,M.right),S=z>=N,C=x>=N;return S&&!C?"left":C&&!S?"right":S&&C?"left":x>z?"right":"left"},u=(L,M=8)=>{let N=getComputedStyle(e).getPropertyValue(L).trim();if(!N)return M;let z=document.createElement("span");z.style.position="fixed",z.style.visibility="hidden",z.style.pointerEvents="none",z.style.height=N,document.body.appendChild(z);let x=Number.parseFloat(getComputedStyle(z).height);return z.remove(),Number.isFinite(x)?x:M},g=()=>{["position","left","top","right","bottom","margin-top","margin-bottom","max-width","max-inline-size","max-height","overflow"].forEach(L=>t.style.removeProperty(L))},m=()=>{if(!s())return;let L=(r||e).getBoundingClientRect(),M=window.visualViewport,N=M?.width||document.documentElement?.clientWidth||window.innerWidth,z=M?.height||document.documentElement?.clientHeight||window.innerHeight,x=M?.offsetLeft||0,S=M?.offsetTop||0,C=Math.max(1,N-a*2),E=Math.max(1,z-a*2);t.style.maxWidth=`${Math.round(C)}px`,t.style.maxInlineSize=`${Math.round(C)}px`,t.style.maxHeight=`${Math.round(E)}px`,t.style.overflow="auto";let{width:O,height:B}=i(),K=u("--spacing-2",8),P=d(),D=l();e.dataset.dropdownDirection=P,e.dataset.dropdownAlign=D;let Y=D==="right"?L.right-O:L.left;O>=C-1?Y=x+a:Y=Math.max(x+a,Math.min(Y,x+N-O-a));let Re=P==="up"?L.top-K-B:L.bottom+K;Re=Math.max(S+a,Math.min(Re,S+z-B-a)),Object.assign(t.style,{position:"fixed",left:`${Math.round(Y)}px`,top:`${Math.round(Re)}px`,right:"auto",bottom:"auto",marginTop:"0",marginBottom:"0"})},b=null,f=()=>{b||(b=()=>m(),window.addEventListener("resize",b),window.addEventListener("scroll",b,!0))},y=()=>{b&&(window.removeEventListener("resize",b),window.removeEventListener("scroll",b,!0),b=null)},k=null,v=null,$=()=>{k||typeof document>"u"||(k=()=>{s()&&(e.dataset.dropdownDirection=d(),e.dataset.dropdownAlign=l(),v!==null&&cancelAnimationFrame(v),v=requestAnimationFrame(()=>{v=null,s()&&m()}))},document.addEventListener("pds:config-changed",k))},A=()=>{!k||typeof document>"u"||(document.removeEventListener("pds:config-changed",k),k=null,v!==null&&(cancelAnimationFrame(v),v=null))};t.addEventListener("toggle",L=>{if(L.newState==="open"){c(),m(),f(),$();return}p(),y(),A(),g()});let T=()=>{s()||(e.dataset.dropdownDirection=d(),e.dataset.dropdownAlign=l(),t.showPopover(),requestAnimationFrame(()=>m()))},F=()=>{s()&&t.hidePopover()},I=()=>{s()?F():T()};p(),t.addEventListener("click",L=>{let M=L.target instanceof Element?L.target:L.target?.parentElement;M&&M.closest("[data-dropdown-close]")&&F()}),r?.addEventListener("click",L=>{L.preventDefault(),L.stopPropagation(),I()}),e.addEventListener("keydown",L=>{L.key==="Escape"&&(F(),r?.focus())})}function No(e){if(e.dataset.enhancedToggle)return;e.dataset.enhancedToggle="true";let t=e.querySelector('input[type="checkbox"]');if(!t)return;e.hasAttribute("tabindex")||e.setAttribute("tabindex","0"),e.setAttribute("role","switch"),e.setAttribute("aria-checked",t.checked?"true":"false");let r=document.createElement("span");r.className="toggle-switch",r.setAttribute("role","presentation"),r.setAttribute("aria-hidden","true");let n=document.createElement("span");n.className="toggle-knob",r.appendChild(n),e.insertBefore(r,t.nextSibling);let o=()=>{e.setAttribute("aria-checked",t.checked?"true":"false")},a=()=>{t.disabled||(t.checked=!t.checked,o(),t.dispatchEvent(new Event("input",{bubbles:!0})),t.dispatchEvent(new Event("change",{bubbles:!0})))};e.addEventListener("click",i=>{i.preventDefault(),a()}),e.addEventListener("keydown",i=>{(i.key===" "||i.key==="Enter")&&(i.preventDefault(),a())}),t.addEventListener("change",o)}function Io(e){if(e.dataset.enhancedColorInput)return;let t=e.querySelector('input[type="color"]');if(!t)return;e.dataset.enhancedColorInput="true";let r=e.querySelector(":scope > .color-control"),n=e.querySelector(":scope > .color-control > .color-swatch"),o=e.querySelector(":scope > .color-control > output");r||(r=document.createElement("span"),r.className="color-control",t.before(r)),n||(n=document.createElement("span"),n.className="color-swatch",r.appendChild(n)),t.parentElement!==n&&n.appendChild(t),o||(o=document.createElement("output"),r.appendChild(o));let a=()=>{if(t.dataset.colorUnset==="1"){o.value="",o.textContent=se("not set"),r.dataset.value="",r.dataset.unset="1",n.dataset.unset="1";return}o.value=t.value,o.textContent=t.value,r.dataset.value=t.value,delete r.dataset.unset,delete n.dataset.unset};a();let i=()=>{t.dataset.colorUnset==="1"&&(t.dataset.colorUnset="0"),a()};t.addEventListener("input",i,{passive:!0}),t.addEventListener("change",i,{passive:!0})}function jo(e){if(e.dataset.enhancedRange)return;let t=i=>{if(e.dataset.enhancedRangeProgrammatic)return;e.dataset.enhancedRangeProgrammatic="1";let s=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(e),"value")||Object.getOwnPropertyDescriptor(HTMLInputElement.prototype,"value");s?.get&&s?.set&&Object.defineProperty(e,"value",{configurable:!0,enumerable:s.enumerable,get(){return s.get.call(this)},set(c){s.set.call(this,c),i()}}),new MutationObserver(c=>{c.some(l=>{let u=l.attributeName;return u==="value"||u==="min"||u==="max"})&&i()}).observe(e,{attributes:!0,attributeFilter:["value","min","max"]})},r=e.closest("label"),n=r?.classList.contains("range-output"),o=e.id||`range-${Math.random().toString(36).substring(2,11)}`,a=`${o}-output`;if(e.id=o,n){let i=r.querySelector("span");if(i&&!i.classList.contains("range-output-wrapper")){let s=document.createElement("span");s.className="range-output-wrapper",s.style.display="flex",s.style.justifyContent="space-between",s.style.alignItems="center";let p=document.createElement("span");p.textContent=i.textContent,s.appendChild(p);let c=document.createElement("output");c.id=a,c.setAttribute("for",o),c.style.color="var(--surface-text-secondary, var(--color-text-secondary))",c.style.fontSize="0.875rem",c.textContent=e.value,s.appendChild(c),i.textContent="",i.appendChild(s);let d=()=>{c.textContent=e.value};e.addEventListener("input",d),e.addEventListener("change",d),t(d),d()}}else{let i=e.closest(".range-container");i||(i=document.createElement("div"),i.className="range-container",e.parentNode?.insertBefore(i,e),i.appendChild(e)),i.style.position="relative";let s=document.createElement("output");s.id=a,s.setAttribute("for",o),s.className="range-bubble",s.setAttribute("aria-live","polite"),i.appendChild(s);let p=()=>{let l=parseFloat(e.min)||0,u=parseFloat(e.max)||100,g=parseFloat(e.value),m=(g-l)/(u-l);s.style.left=`calc(${m*100}% )`,s.textContent=String(g)},c=()=>s.classList.add("visible"),d=()=>s.classList.remove("visible");e.addEventListener("input",p),e.addEventListener("pointerdown",c),e.addEventListener("pointerup",d),e.addEventListener("pointerleave",d),e.addEventListener("focus",c),e.addEventListener("blur",d),e.addEventListener("change",p),t(p),p()}e.dataset.enhancedRange="1"}function Oo(e){if(e.dataset.enhancedRequired)return;e.dataset.enhancedRequired="true";let t=r=>{let n;if(r.closest("[role$=group]")?n=r.closest("[role$=group]").querySelector("legend"):n=r.closest("label"),!n||n.querySelector(".required-asterisk"))return;let o=document.createElement("span");o.classList.add("required-asterisk"),o.textContent="*",o.style.marginLeft="4px";let a=n.querySelector("span, [data-label]");if(a)a.appendChild(o);else{let s=n.querySelector("input, select, textarea");s?n.insertBefore(o,s):n.appendChild(o)}let i=r.closest("form");if(i&&!i.querySelector(".required-legend")){let s=document.createElement("small");s.classList.add("required-legend"),s.textContent=se("* Required fields"),i.insertBefore(s,i.querySelector(".form-actions")||i.lastElementChild)}};e.querySelectorAll("[required]").forEach(r=>{t(r)})}function Bo(e){if(e.dataset.enhancedOpenGroup)return;e.dataset.enhancedOpenGroup="true",e.classList.add("flex","flex-wrap","buttons");let t=document.createElement("input");t.type="text",t.placeholder=se("Add item..."),t.classList.add("input-text","input-sm"),t.style.width="auto";let r=()=>e.querySelector('input[type="radio"], input[type="checkbox"]');e.appendChild(t),t.addEventListener("keydown",n=>{if(n.key==="Enter"||n.key==="Tab"){let o=t.value.trim();if(o){n.preventDefault();let a=r(),i=a?.type==="radio"?"radio":"checkbox",s=`open-group-${Math.random().toString(36).substring(2,11)}`,p=document.createElement("label"),c=document.createElement("span");c.setAttribute("data-label",""),c.textContent=o;let d=document.createElement("input");d.type=i,d.name=a?.name||e.getAttribute("data-name")||"open-group",d.value=o,d.id=s,p.appendChild(c),p.appendChild(d),e.insertBefore(p,t),t.value=""}}else if(n.key==="Backspace"&&t.value===""){n.preventDefault();let o=e.querySelectorAll("label");o.length>0&&o[o.length-1].remove()}})}function Do(e){if(e.dataset.enhancedClip)return;e.dataset.enhancedClip="true",e.hasAttribute("tabindex")||e.setAttribute("tabindex","0"),e.hasAttribute("role")||e.setAttribute("role","button");let t=()=>{let n=e.getAttribute("data-clip-open")==="true";e.setAttribute("aria-expanded",n?"true":"false")},r=()=>{let n=e.getAttribute("data-clip-open")==="true";e.setAttribute("data-clip-open",n?"false":"true"),t()};e.addEventListener("click",n=>{n.defaultPrevented||r()}),e.addEventListener("keydown",n=>{(n.key===" "||n.key==="Enter")&&(n.preventDefault(),r())}),t()}function Wo(e){if(e.dataset.enhancedBtnWorking)return;e.dataset.enhancedBtnWorking="true";let t=null,r=!1;new MutationObserver(o=>{o.forEach(a=>{if(a.attributeName==="class"){let i=e.classList.contains("btn-working"),s=e.querySelector("pds-icon");if(i)if(s)t||(t=s.getAttribute("icon")),s.setAttribute("icon","circle-notch");else{let p=document.createElement("pds-icon");p.setAttribute("icon","circle-notch"),p.setAttribute("size","sm"),e.insertBefore(p,e.firstChild),r=!0}else a.oldValue?.includes("btn-working")&&s&&(r?(s.remove(),r=!1):t&&(s.setAttribute("icon",t),t=null))}})}).observe(e,{attributes:!0,attributeFilter:["class"],attributeOldValue:!0})}var Ho=new Map([[".accordion",Fo],["nav[data-dropdown]",Po],["label[data-toggle]",No],["label[data-color]",Io],['input[type="range"]',jo],["form[data-required]",Oo],["fieldset[role=group][data-open]",Bo],["[data-clip]",Do],["button, a[class*='btn-']",Wo]]),rt=_o.map(e=>({...e,run:Ho.get(e.selector)||(()=>{})}));var Ur=[{selector:".accordion",description:"Ensures only one <details> element can be open at a time within the accordion.",demoHtml:`
|
|
3816
|
+
export const ${e}CSS = \`${n}\`;
|
|
3817
|
+
`}};function Ir(t={},e={}){let r=Number(e.minContrast||4.5),n=Number(e.minMutedContrast||3),o=!!e.extendedChecks,a=e.warnOnHueDrift!==!1,i=Number.isFinite(Number(e.maxHueDrift))?Number(e.maxHueDrift):35,s=Number.isFinite(Number(e.minSaturationForHueWarning))?Number(e.minSaturationForHueWarning):18,d=b=>{let h=String(b||"").trim().match(/^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/);if(!h)return null;let v=h[1];return`#${(v.length===3?v.split("").map(S=>S+S).join(""):v).toLowerCase()}`},l=b=>{let f=d(b);if(!f)return null;let h=f.replace("#",""),v=h.length===3?h.split("").map(S=>S+S).join(""):h,m=parseInt(v||"0",16);return{r:m>>16&255,g:m>>8&255,b:m&255}},p=b=>{let f=l(b);if(!f)return 0;let{r:h,g:v,b:m}=f,S=[h/255,v/255,m/255].map(C=>C<=.03928?C/12.92:Math.pow((C+.055)/1.055,2.4));return .2126*S[0]+.7152*S[1]+.0722*S[2]},c=(b,f)=>{if(!b||!f)return 0;let h=p(b),v=p(f),m=Math.max(h,v),S=Math.min(h,v);return(m+.05)/(S+.05)},u=b=>{let f=l(b);if(!f)return null;let h=f.r/255,v=f.g/255,m=f.b/255,S=Math.max(h,v,m),C=Math.min(h,v,m),T=S-C,I=0;T!==0&&(S===h?I=(v-m)/T%6:S===v?I=(m-h)/T+2:I=(h-v)/T+4,I*=60,I<0&&(I+=360));let z=(S+C)/2,E=T===0?0:T/(1-Math.abs(2*z-1));return{h:I,s:E*100,l:z*100}},y=(b,f)=>{if(!Number.isFinite(b)||!Number.isFinite(f))return null;let h=Math.abs(b-f);return Math.min(h,360-h)},g=[],x=[];try{let f=new Z({design:structuredClone(t)}).tokens.colors,h={surfaceBg:f.surface?.base,surfaceText:f.gray?.[900]||"#000000",surfaceTextSecondary:f.gray?.[700]||f.gray?.[800]||f.gray?.[900],surfaceTextMuted:f.gray?.[500]||f.gray?.[600]||f.gray?.[700],surfaceElevated:f.surface?.elevated||f.surface?.base,primaryFill:f.interactive?.light?.fill||f.primary?.[600],primaryText:f.interactive?.light?.text||f.primary?.[600],accentFill:f.accent?.[600]||f.accent?.[500],successFill:f.success?.[600]||f.success?.[500],warningFill:f.warning?.[600]||f.warning?.[500],dangerFill:f.danger?.[600]||f.danger?.[500],infoFill:f.info?.[600]||f.info?.[500]},v=I=>Math.max(c(I,"#ffffff"),c(I,"#000000")),m=c(h.primaryFill,"#ffffff");m<r&&g.push({path:"/colors/primary",message:`Primary button contrast too low in light theme (${m.toFixed(2)} < ${r}). Choose a darker primary.`,ratio:m,min:r,context:"light/btn-primary"});let S=c(h.surfaceBg,h.surfaceText);if(S<r&&g.push({path:"/colors/background",message:`Base text contrast on surface (light) is too low (${S.toFixed(2)} < ${r}). Adjust background or secondary (gray).`,ratio:S,min:r,context:"light/surface-text"}),o){let I=c(h.surfaceBg,h.surfaceTextSecondary);I<r&&g.push({path:"/colors/secondary",message:`Secondary text contrast on base surface (light) is too low (${I.toFixed(2)} < ${r}).`,ratio:I,min:r,context:"light/surface-text-secondary"});let z=c(h.surfaceBg,h.surfaceTextMuted);z<n&&g.push({path:"/colors/secondary",message:`Muted text contrast on base surface (light) is too low (${z.toFixed(2)} < ${n}).`,ratio:z,min:n,context:"light/surface-text-muted"});let E=c(h.surfaceElevated,h.surfaceText);E<r&&g.push({path:"/colors/background",message:`Elevated surface text contrast (light) is too low (${E.toFixed(2)} < ${r}).`,ratio:E,min:r,context:"light/surface-elevated-text"})}let C=c(h.primaryText,h.surfaceBg);C<r&&g.push({path:"/colors/primary",message:`Primary text on surface is too low for outline/link styles (light) (${C.toFixed(2)} < ${r}). Choose a darker primary or lighter surface.`,ratio:C,min:r,context:"light/outline"}),o&&[{path:"/colors/accent",key:"accent",value:h.accentFill},{path:"/colors/success",key:"success",value:h.successFill},{path:"/colors/warning",key:"warning",value:h.warningFill},{path:"/colors/danger",key:"danger",value:h.dangerFill},{path:"/colors/info",key:"info",value:h.infoFill}].forEach(z=>{if(!z?.value)return;let E=v(z.value);E<r&&g.push({path:z.path,message:`${z.key} fill color cannot achieve accessible text contrast (${E.toFixed(2)} < ${r}) with either white or black text.`,ratio:E,min:r,context:`light/${z.key}-fill`})});let T=f.dark;if(T){let I={surfaceBg:T.surface?.base||f.surface?.inverse,surfaceText:T.gray?.[50]||T.gray?.[100]||"#ffffff",surfaceTextMuted:T.gray?.[300]||T.gray?.[400]||T.gray?.[500],primaryFill:f.interactive?.dark?.fill||T.primary?.[600],primaryText:f.interactive?.dark?.text||T.primary?.[600]},z=c(I.primaryFill,"#ffffff");z<r&&g.push({path:"/colors/darkMode/primary",message:`Primary button contrast too low in dark theme (${z.toFixed(2)} < ${r}). Override darkMode.primary or pick a brighter hue.`,ratio:z,min:r,context:"dark/btn-primary"});let E=c(I.primaryText,I.surfaceBg);if(E<r&&g.push({path:"/colors/darkMode/primary",message:`Primary text on surface is too low for outline/link styles (dark) (${E.toFixed(2)} < ${r}). Override darkMode.primary/background.`,ratio:E,min:r,context:"dark/outline"}),o){let P=c(I.surfaceBg,I.surfaceText);P<r&&g.push({path:"/colors/darkMode/background",message:`Base text contrast on surface (dark) is too low (${P.toFixed(2)} < ${r}).`,ratio:P,min:r,context:"dark/surface-text"});let M=c(I.surfaceBg,I.surfaceTextMuted);M<n&&g.push({path:"/colors/darkMode/secondary",message:`Muted text contrast on surface (dark) is too low (${M.toFixed(2)} < ${n}).`,ratio:M,min:n,context:"dark/surface-text-muted"})}}if(a){let I=t?.colors||{},z=I?.darkMode||{};["primary","secondary","accent"].forEach(P=>{let M=I?.[P],k=z?.[P];if(!M||!k)return;let L=u(M),A=u(k);if(!L||!A||L.s<s&&A.s<s)return;let R=y(L.h,A.h);R==null||R<=i||x.push({path:`/colors/darkMode/${P}`,message:`Dark mode ${P} hue drifts ${R.toFixed(1)}deg from light ${P} (${L.h.toFixed(1)}deg -> ${A.h.toFixed(1)}deg). This may reduce cross-theme brand identity consistency.`,context:`dark/identity-hue-${P}`})})}}catch(b){g.push({path:"/",message:`Validation failed: ${String(b?.message||b)}`,ratio:0,min:0})}return{ok:g.length===0,issues:g,warnings:x}}var io=new Set(["log","warn","error","debug","info"]),so="__PURE_DS_PDS_SINGLETON__",Ht=null,Wt=null;function Fr(){try{let e=(typeof globalThis<"u"?globalThis:window)?.[so];if(e&&typeof e=="object")return e}catch{return null}return null}function lo(t){return!t||typeof t!="object"?null:{mode:t.mode==="live"||t.mode==="static"?t.mode:null,debug:t.debug===!0,thisArg:t.thisArg}}function co(t){if(typeof t!="string")return"log";let e=t.toLowerCase();return io.has(e)?e:"log"}function po(){if(typeof Wt=="function")try{let e=lo(Wt());if(e)return e}catch{}let t=Fr();if(t){let e=t?.mode||t?.compiled?.mode||(t?.registry?.isLive?"live":"static"),r=(t?.debug||t?.currentConfig?.debug||t?.currentConfig?.design?.debug||t?.compiled?.debug||t?.compiled?.design?.debug||!1)===!0;return{mode:e,debug:r,thisArg:t}}return{mode:null,debug:!1}}function uo(){if(typeof Ht=="function")try{let e=Ht();if(typeof e=="function")return e}catch{}let t=Fr();return typeof t?.logHandler=="function"?t.logHandler:null}function _r(t,e,...r){if(typeof console>"u")return;let n=typeof console[t]=="function"?console[t].bind(console):typeof console.log=="function"?console.log.bind(console):null;n&&(r.length>0?n(e,...r):n(e))}function go(t,e){let r=e?.debug===!0;return!(e?.mode==="static"&&!r||!r&&t!=="error"&&t!=="warn")}function Pr({getLogger:t,getContext:e}={}){Ht=typeof t=="function"?t:null,Wt=typeof e=="function"?e:null}function Qe(t="log",e,...r){let n=co(t),o=po(),a=uo();if(a)try{a.call(o?.thisArg,n,e,...r);return}catch(i){_r("error","Custom log handler failed:",i)}go(n,o)&&_r(n,e,...r)}var fo="en",F={defaultLocale:fo,provider:null,messagesByLocale:new Map,loadingByLocale:new Map,observer:null,reconcileTimer:null,requestedKeys:new Set,textNodeKeyMap:new WeakMap,attributeKeyMap:new WeakMap,valueToKeys:new Map,missingWarnings:new Set},mo=["title","placeholder","aria-label","aria-description","aria-placeholder","aria-roledescription","alt","label"],ho=t=>!!t&&typeof t!="string"&&typeof t=="object"&&"strTag"in t;function oe(t){return String(t||"").trim().toLowerCase()}function bo(t){let e=oe(t);return e?e.split("-")[0]||e:""}function pe(t){let e=oe(t);if(!e)return F.defaultLocale;let r=F.provider?.resolveLocale;if(typeof r=="function"){let n=oe(r(t));if(n)return n}return e}function yo(t){let e="";for(let r=0;r<=t.length-1;r+=1)e+=t[r],r<t.length-1&&(e+=`{${r}}`);return e}function ye(t,e){return String(t).replace(/\{(\d+)\}/g,(r,n)=>e(Number(n)))}function Ut(t){if(!t||typeof t!="object")return{};let e={};for(let[r,n]of Object.entries(t)){if(typeof n=="string"){e[r]=n;continue}n&&typeof n=="object"&&typeof n.content=="string"&&(e[r]=n.content)}return e}function vo(t){let e=oe(t);if(!e)return[F.defaultLocale];let r=bo(e);return!r||r===e?[e]:[e,r]}function Nr(t,e){let r=pe(t);F.messagesByLocale.set(r,Ut(e))}function Br(t){typeof t=="string"&&t.length>0&&F.requestedKeys.add(t)}function jr(t,e){if(typeof t!="string"||!t.length)return;let r=typeof e=="string"?e:String(e||"");r.length&&(F.valueToKeys.has(r)||F.valueToKeys.set(r,new Set),F.valueToKeys.get(r).add(t))}function Oe(t){let e=vo(t);for(let r of e)if(F.messagesByLocale.has(r))return{locale:r,messages:F.messagesByLocale.get(r)};return null}async function ve(t,e="explicit"){let r=pe(t),n=Oe(r);if(n)return n.messages;let o=r;if(F.loadingByLocale.has(o))return F.loadingByLocale.get(o);if(!F.provider)return{};let a=F.provider.loadLocale||F.provider.setLocale||null;if(typeof a!="function")return{};let i={locale:r,defaultLocale:F.defaultLocale,reason:e,loadedLocales:Array.from(F.messagesByLocale.keys()),messages:{...Oe(r)?.messages||{}},load:e==="set-default"||e==="explicit-load"},s;try{s=a(i)}catch{return{}}if(s&&typeof s.then=="function"){let l=s.then(p=>{let c=Ut(p);return Nr(r,c),c}).catch(()=>({})).finally(()=>{F.loadingByLocale.delete(o)});return F.loadingByLocale.set(o,l),l}let d=Ut(s);return Nr(r,d),d}function xo(t){if(!t||typeof t!="object")return"";let r=typeof Element<"u"&&t instanceof Element||t?.nodeType===1?t:null;if(!r)return"";if(r.hasAttribute?.("lang"))return oe(r.getAttribute("lang"));let n=r.closest?.("[lang]");return n&&n.getAttribute?oe(n.getAttribute("lang")):""}function Be(t={}){if(typeof t?.lang=="string"&&t.lang.trim())return pe(t.lang);let e=t?.element||t?.scope||t?.host||t?.contextElement||null,r=xo(e);if(r)return pe(r);if(typeof document<"u"&&document.documentElement){let n=oe(document.documentElement.getAttribute("lang"));if(n)return pe(n)}return F.defaultLocale}function wo(){let t=new Set([F.defaultLocale]);if(typeof document>"u")return t;let e=oe(document.documentElement?.getAttribute?.("lang"));e&&t.add(pe(e));let r=document.querySelectorAll?.("[lang]")||[];for(let n of r){let o=oe(n.getAttribute("lang"));o&&t.add(pe(o))}return t}async function ko(t){for(let e of t)await ve(e,"lang-detected")}function So(t){for(let e of Array.from(F.messagesByLocale.keys()))t.has(e)||F.messagesByLocale.delete(e)}function $o(t){let e=String(t||""),r=(e.match(/^\s*/)||[""])[0],n=(e.match(/\s*$/)||[""])[0],o=r.length,a=e.length-n.length,i=a>=o?e.slice(o,a):"";return{leading:r,core:i,trailing:n}}function Or(t){return String(t||"").replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Lo(t,e){let r=typeof t=="string"?t:String(t||""),n=typeof e=="string"?e:String(e||""),o=/\{(\d+)\}/g,a=Array.from(r.matchAll(o));if(!a.length)return r===n?[]:null;let i=[],s="^",d=0;for(let c of a){let u=c.index??0;s+=Or(r.slice(d,u)),s+="([\\s\\S]*?)",i.push(Number(c[1])),d=u+c[0].length}s+=Or(r.slice(d)),s+="$";let l=new RegExp(s).exec(n);if(!l)return null;let p=[];for(let c=1;c<l.length;c+=1){let u=i[c-1],y=l[c];if(Object.prototype.hasOwnProperty.call(p,u)&&p[u]!==y)return null;p[u]=y}return p}function qt(t,e){if(typeof t!="string"||!t.length)return[];let r=[t];for(let[,n]of F.messagesByLocale.entries()){let o=n?.[t];typeof o=="string"&&o.length&&r.push(o)}for(let n of r){let o=Lo(n,e);if(o)return o}return[]}function Dr(t){if(!t)return null;let e=F.valueToKeys.get(t);if(e&&e.size>0){for(let n of e)if(F.requestedKeys.has(n))return n}if(F.requestedKeys.has(t))return t;let r=Array.from(F.messagesByLocale.entries());for(let n of F.requestedKeys)for(let[,o]of r)if(o&&o[n]===t)return n;return null}function Hr(t){if(!t)return null;let e=null;for(let[r,n]of F.valueToKeys.entries()){if(typeof r!="string"||!r.length||r===t)continue;let o=t.indexOf(r);if(o!==-1)for(let a of n){if(!F.requestedKeys.has(a))continue;let i=qt(a,r),s={key:a,matchedText:r,start:o,end:o+r.length,values:i};(!e||s.matchedText.length>e.matchedText.length)&&(e=s);break}}return e}async function zo(t){if(!t||t.nodeType!==3)return;let e=t.parentElement||null;if(!e)return;let{leading:r,core:n,trailing:o}=$o(t.nodeValue);if(!n)return;let a=F.textNodeKeyMap.get(t)||null;if((!a||!F.requestedKeys.has(a))&&(a=Dr(n)),!a){let c=Hr(n);if(!c)return;let u=Be({element:e});await ve(u,"text-node");let y=xe(c.key,c.values,{element:e},null),g=c.values.length?ye(y,f=>c.values[f]):y,x=n.slice(0,c.start)+g+n.slice(c.end),b=`${r}${x}${o}`;b!==t.nodeValue&&(t.nodeValue=b);return}F.textNodeKeyMap.set(t,a);let i=Be({element:e});await ve(i,"text-node");let s=qt(a,n),d=xe(a,s,{element:e},null),l=s.length?ye(d,c=>s[c]):d,p=`${r}${l}${o}`;p!==t.nodeValue&&(t.nodeValue=p)}async function Co(){if(typeof document>"u"||F.requestedKeys.size===0)return;let t=document.body||document.documentElement;if(!t||typeof document.createTreeWalker!="function")return;let e=[],r=new Set,n=a=>{!a||r.has(a)||(r.add(a),e.push(a))};n(t);for(let a=0;a<e.length;a+=1){let i=e[a];if(!i||typeof i.querySelectorAll!="function")continue;let s=i.querySelectorAll("*");for(let d of s){let l=d?.shadowRoot;l&&n(l)}}let o=[];for(let a of e){let i=document.createTreeWalker(a,NodeFilter.SHOW_TEXT);for(;i.nextNode();)o.push(i.currentNode)}for(let a of o)await zo(a)}function Mo(t){let e=F.attributeKeyMap.get(t);return e||(e=new Map,F.attributeKeyMap.set(t,e)),e}async function Eo(t,e){if(!t||typeof t.getAttribute!="function")return;let r=t.getAttribute(e);if(typeof r!="string"||!r.length)return;let n=Mo(t),o=n.get(e)||null;if((!o||!F.requestedKeys.has(o))&&(o=Dr(r)),!o){let l=Hr(r);if(!l)return;let p=Be({element:t});await ve(p,"attribute");let c=xe(l.key,l.values,{element:t},null),u=l.values.length?ye(c,g=>l.values[g]):c,y=r.slice(0,l.start)+u+r.slice(l.end);y!==r&&t.setAttribute(e,y),n.set(e,l.key);return}n.set(e,o);let a=Be({element:t});await ve(a,"attribute");let i=qt(o,r),s=xe(o,i,{element:t},null),d=i.length?ye(s,l=>i[l]):s;d!==r&&t.setAttribute(e,d)}async function Ao(){if(typeof document>"u"||F.requestedKeys.size===0)return;let t=document.body||document.documentElement;if(!t)return;let e=[],r=new Set,n=o=>{!o||r.has(o)||(r.add(o),e.push(o))};n(t);for(let o=0;o<e.length;o+=1){let a=e[o];if(!a||typeof a.querySelectorAll!="function")continue;let i=a.querySelectorAll("*");for(let s of i){let d=s?.shadowRoot;d&&n(d)}}for(let o of e){if(!o||typeof o.querySelectorAll!="function")continue;let a=o.querySelectorAll("*");for(let i of a)for(let s of mo)i.hasAttribute(s)&&await Eo(i,s)}}async function To(){let t=wo();await ko(t),await Co(),await Ao(),So(t)}function Ro(){typeof window>"u"||(F.reconcileTimer&&clearTimeout(F.reconcileTimer),F.reconcileTimer=setTimeout(()=>{F.reconcileTimer=null,To()},16))}function xe(t,e=[],r={},n=null){let o=Be(r),a=Oe(o);a||ve(o,"msg");let i=Oe(o)?.messages||{},s=Oe(F.defaultLocale)?.messages||{},d={key:t,values:e,options:r,locale:o,defaultLocale:F.defaultLocale,messages:i,messagesByLocale:Object.fromEntries(Array.from(F.messagesByLocale.entries())),template:n},l,p=!!a,c=o===F.defaultLocale;typeof F.provider?.translate=="function"&&(l=F.provider.translate(d));let u=null;if(l==null&&(l=i[t]),l==null&&(l=s[t],u=l==null?null:"default"),l==null&&(l=t,u="key"),p&&!c&&u){let g=`${o}::${t}`;F.missingWarnings.has(g)||(F.missingWarnings.add(g),Qe("warn",`[i18n] Missing translation for locale "${o}" and key "${t}"; using ${u} fallback.`))}let y=typeof l=="string"?l:String(l);if(jr(t,y),Array.isArray(e)&&e.length>0){let g=ye(y,x=>e[x]);g!==y&&jr(t,g)}return y}var Io=(t,e,r={})=>{let n=yo(t);Br(n);let o=xe(n,e,r,{strings:t,values:e});return ye(o,a=>e[a])};var se=(t,e={})=>{if(!t)return"";if(ho(t))return Io(t.strings,t.values,e);let r=String(t);Br(r);let n=xe(r,[],e,null);return!e?.element&&!e?.scope&&!e?.host&&!e?.contextElement&&!e?.lang&&Ro(),n};var Gt=class extends EventTarget{constructor(){super(),this.mode=null,this.compiled=null,this.log=()=>{},this.logHandler=null}},Wr="__PURE_DS_PDS_SINGLETON__",Kt=typeof globalThis<"u"?globalThis:window,Vt=Kt?.[Wr],w=Vt&&typeof Vt.addEventListener=="function"?Vt:new Gt;Kt&&(Kt[Wr]=w);typeof w.log!="function"&&(w.log=(t="log",e,...r)=>{if(typeof console>"u")return;let n=typeof console[t]=="function"?console[t].bind(console):typeof console.log=="function"?console.log.bind(console):null;n&&(r.length>0?n(e,...r):n(e))});typeof w.logHandler!="function"&&(w.logHandler=null);var Jt=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){w.log("error",`Registry: failed to load static ${e}:`,r),w.log("error",`Registry: looking for ${this._staticPaths[e]}`),w.log("error","Registry: make sure you've run 'npm run pds:build' and configured PDS.start() with the correct static.root path");let n=new CSSStyleSheet;return n.replaceSync("/* Failed to load "+e+" */"),n}}get mode(){return this._mode}get isLive(){return this._mode==="live"}},we=new Jt;function _o(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){w.log("warn","installRuntimeStyles failed:",e)}}function Ur(t){let e=t;if(!e||typeof e!="object"){w.log("error","Runtime applyStyles requires an explicit generator instance in live mode");return}let r=e.layeredCSS||e.css||"";if(!r){e.options?.log?.("warn","Runtime: no CSS available on generator to apply");return}_o(r)}async function et(t,e=[],r=null){try{let n=r?.primitivesStylesheet?r.primitivesStylesheet:await we.getStylesheet("primitives");t.adoptedStyleSheets=[n,...e]}catch(n){let o=t.host?.tagName?.toLowerCase()||"unknown";w.log("error",`Adopter: <${o}> failed to adopt primitives:`,n),t.adoptedStyleSheets=e}}async function tt(t,e=["primitives"],r=[],n=null){let o=Array.isArray(r)?r.filter(Boolean):[];if(o.length){let i=(Array.isArray(t.adoptedStyleSheets)?t.adoptedStyleSheets:[]).filter(s=>!o.includes(s));t.adoptedStyleSheets=[...i,...o]}try{let i=(await Promise.all(e.map(async s=>{if(n)switch(s){case"tokens":return n.tokensStylesheet;case"primitives":return n.primitivesStylesheet;case"components":return n.componentsStylesheet;case"utilities":return n.utilitiesStylesheet;default:break}return we.getStylesheet(s)}))).filter(s=>s!==null);t.adoptedStyleSheets=[...i,...o]}catch(a){let i=t.host?.tagName?.toLowerCase()||"unknown";w.log("error",`Adopter: <${i}> failed to adopt layers:`,a),t.adoptedStyleSheets=o}}function qr(t){let e=new CSSStyleSheet;return e.replaceSync(t),e}var Fo=[{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 Po(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 No(t){if(t.dataset.enhancedDropdown)return;t.dataset.enhancedDropdown="true";let e=t.lastElementChild;if(!e)return;let r=t.querySelector("[data-dropdown-toggle]")||t.querySelector("button"),n=typeof HTMLElement<"u"&&"showPopover"in HTMLElement.prototype&&"hidePopover"in HTMLElement.prototype;r&&!r.hasAttribute("type")&&r.setAttribute("type","button"),e.id||(e.id=`dropdown-${Math.random().toString(36).slice(2,9)}`);let o=e.tagName?.toLowerCase()==="menu",a=8;if(o&&!e.hasAttribute("role")&&e.setAttribute("role","menu"),e.hasAttribute("aria-hidden")||e.setAttribute("aria-hidden","true"),r&&(r.setAttribute("aria-haspopup","true"),r.setAttribute("aria-controls",e.id),r.setAttribute("aria-expanded","false")),!n){let z="__PDS_DROPDOWN_POPOVER_WARNED__";globalThis[z]||(globalThis[z]=!0,console.warn("[PDS] nav[data-dropdown] requires the Popover API. Add a popover polyfill (recommended: @oddbird/popover-polyfill) for browsers without support."));return}e.setAttribute("popover","auto");let i=()=>{let z=e.getAttribute("style");e.style.visibility="hidden",e.style.display="inline-block",e.style.pointerEvents="none";let E=e.getBoundingClientRect(),P=Math.max(e.offsetWidth||0,e.scrollWidth||0,E.width||0,1),M=Math.max(e.offsetHeight||0,e.scrollHeight||0,E.height||0,1);return z===null?e.removeAttribute("style"):e.setAttribute("style",z),{width:P,height:M}},s=()=>{try{return e.matches(":popover-open")}catch{return!1}},d=()=>{e.setAttribute("aria-hidden","true"),r?.setAttribute("aria-expanded","false")},l=()=>{e.setAttribute("aria-hidden","false"),r?.setAttribute("aria-expanded","true")},p=()=>{let z=(t.getAttribute("data-direction")||t.getAttribute("data-dropdown-direction")||t.getAttribute("data-mode")||"auto").toLowerCase();if(z==="up"||z==="down")return z;let E=(r||t).getBoundingClientRect(),{height:P}=i(),M=Math.max(0,window.innerHeight-E.bottom),k=Math.max(0,E.top),L=M>=P,A=k>=P;return L&&!A?"down":A&&!L?"up":L&&A?"down":k>M?"up":"down"},c=()=>{let z=(t.getAttribute("data-align")||t.getAttribute("data-dropdown-align")||"auto").toLowerCase();if(z==="left"||z==="right"||z==="start"||z==="end")return z==="start"?"left":z==="end"?"right":z;let E=(r||t).getBoundingClientRect(),{width:P}=i(),M=Math.max(0,window.innerWidth-E.left),k=Math.max(0,E.right),L=M>=P,A=k>=P;return L&&!A?"left":A&&!L?"right":L&&A?"left":k>M?"right":"left"},u=(z,E=8)=>{let P=getComputedStyle(t).getPropertyValue(z).trim();if(!P)return E;let M=document.createElement("span");M.style.position="fixed",M.style.visibility="hidden",M.style.pointerEvents="none",M.style.height=P,document.body.appendChild(M);let k=Number.parseFloat(getComputedStyle(M).height);return M.remove(),Number.isFinite(k)?k:E},y=()=>{["position","left","top","right","bottom","margin-top","margin-bottom","max-width","max-inline-size","max-height","overflow"].forEach(z=>e.style.removeProperty(z))},g=()=>{if(!s())return;let z=(r||t).getBoundingClientRect(),E=window.visualViewport,P=E?.width||document.documentElement?.clientWidth||window.innerWidth,M=E?.height||document.documentElement?.clientHeight||window.innerHeight,k=E?.offsetLeft||0,L=E?.offsetTop||0,A=Math.max(1,P-a*2),R=Math.max(1,M-a*2);e.style.maxWidth=`${Math.round(A)}px`,e.style.maxInlineSize=`${Math.round(A)}px`,e.style.maxHeight=`${Math.round(R)}px`,e.style.overflow="auto";let{width:O,height:B}=i(),K=u("--spacing-2",8),N=p(),D=c();t.dataset.dropdownDirection=N,t.dataset.dropdownAlign=D;let Y=D==="right"?z.right-O:z.left;O>=A-1?Y=k+a:Y=Math.max(k+a,Math.min(Y,k+P-O-a));let Re=N==="up"?z.top-K-B:z.bottom+K;Re=Math.max(L+a,Math.min(Re,L+M-B-a)),Object.assign(e.style,{position:"fixed",left:`${Math.round(Y)}px`,top:`${Math.round(Re)}px`,right:"auto",bottom:"auto",marginTop:"0",marginBottom:"0"})},x=null,b=()=>{x||(x=()=>g(),window.addEventListener("resize",x),window.addEventListener("scroll",x,!0))},f=()=>{x&&(window.removeEventListener("resize",x),window.removeEventListener("scroll",x,!0),x=null)},h=null,v=null,m=()=>{h||typeof document>"u"||(h=()=>{s()&&(t.dataset.dropdownDirection=p(),t.dataset.dropdownAlign=c(),v!==null&&cancelAnimationFrame(v),v=requestAnimationFrame(()=>{v=null,s()&&g()}))},document.addEventListener("pds:config-changed",h))},S=()=>{!h||typeof document>"u"||(document.removeEventListener("pds:config-changed",h),h=null,v!==null&&(cancelAnimationFrame(v),v=null))};e.addEventListener("toggle",z=>{if(z.newState==="open"){l(),g(),b(),m();return}d(),f(),S(),y()});let C=()=>{s()||(t.dataset.dropdownDirection=p(),t.dataset.dropdownAlign=c(),e.showPopover(),requestAnimationFrame(()=>g()))},T=()=>{s()&&e.hidePopover()},I=()=>{s()?T():C()};d(),e.addEventListener("click",z=>{let E=z.target instanceof Element?z.target:z.target?.parentElement;E&&E.closest("[data-dropdown-close]")&&T()}),r?.addEventListener("click",z=>{z.preventDefault(),z.stopPropagation(),I()}),t.addEventListener("keydown",z=>{z.key==="Escape"&&(T(),r?.focus())})}function jo(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 Oo(t){if(t.dataset.enhancedColorInput)return;let e=t.querySelector('input[type="color"]');if(!e)return;t.dataset.enhancedColorInput="true";let r=t.querySelector(":scope > .color-control"),n=t.querySelector(":scope > .color-control > .color-swatch"),o=t.querySelector(":scope > .color-control > output");r||(r=document.createElement("span"),r.className="color-control",e.before(r)),n||(n=document.createElement("span"),n.className="color-swatch",r.appendChild(n)),e.parentElement!==n&&n.appendChild(e),o||(o=document.createElement("output"),r.appendChild(o));let a=()=>{if(e.dataset.colorUnset==="1"){o.value="",o.textContent=se("not set"),r.dataset.value="",r.dataset.unset="1",n.dataset.unset="1";return}o.value=e.value,o.textContent=e.value,r.dataset.value=e.value,delete r.dataset.unset,delete n.dataset.unset};a();let i=()=>{e.dataset.colorUnset==="1"&&(e.dataset.colorUnset="0"),a()};e.addEventListener("input",i,{passive:!0}),e.addEventListener("change",i,{passive:!0})}function Bo(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(l){s.set.call(this,l),i()}}),new MutationObserver(l=>{l.some(c=>{let u=c.attributeName;return u==="value"||u==="min"||u==="max"})&&i()}).observe(t,{attributes:!0,attributeFilter:["value","min","max"]})},r=t.closest("label"),n=r?.classList.contains("range-output"),o=t.id||`range-${Math.random().toString(36).substring(2,11)}`,a=`${o}-output`;if(t.id=o,n){let i=r.querySelector("span");if(i&&!i.classList.contains("range-output-wrapper")){let s=i.getAttribute("data-range-label")||r.getAttribute("data-range-label")||"",d=document.createElement("span");d.className="range-output-wrapper",d.style.display="flex",d.style.justifyContent="space-between",d.style.alignItems="center";let l=document.createElement("span");l.textContent=s||i.textContent,d.appendChild(l);let p=document.createElement("output");p.id=a,p.setAttribute("for",o),p.style.color="var(--surface-text-secondary, var(--color-text-secondary))",p.style.fontSize="0.875rem",p.textContent=t.value,d.appendChild(p),i.textContent="",i.appendChild(d);let c=()=>{p.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 d=()=>{let c=parseFloat(t.min)||0,u=parseFloat(t.max)||100,y=parseFloat(t.value),g=(y-c)/(u-c);s.style.left=`calc(${g*100}% )`,s.textContent=String(y)},l=()=>s.classList.add("visible"),p=()=>s.classList.remove("visible");t.addEventListener("input",d),t.addEventListener("pointerdown",l),t.addEventListener("pointerup",p),t.addEventListener("pointerleave",p),t.addEventListener("focus",l),t.addEventListener("blur",p),t.addEventListener("change",d),e(d),d()}t.dataset.enhancedRange="1"}function Do(t){if(t.dataset.enhancedRequired)return;t.dataset.enhancedRequired="true";let e=r=>{let n;if(r.closest("[role$=group]")?n=r.closest("[role$=group]").querySelector("legend"):n=r.closest("label"),!n||n.querySelector(".required-asterisk"))return;let o=document.createElement("span");o.classList.add("required-asterisk"),o.textContent="*",o.style.marginLeft="4px";let a=n.querySelector("span, [data-label]");if(a)a.appendChild(o);else{let s=n.querySelector("input, select, textarea");s?n.insertBefore(o,s):n.appendChild(o)}let i=r.closest("form");if(i&&!i.querySelector(".required-legend")){let s=document.createElement("small");s.classList.add("required-legend"),s.textContent=se("* Required fields"),i.insertBefore(s,i.querySelector(".form-actions")||i.lastElementChild)}};t.querySelectorAll("[required]").forEach(r=>{e(r)})}function Ho(t){if(t.dataset.enhancedOpenGroup)return;t.dataset.enhancedOpenGroup="true",t.classList.add("flex","flex-wrap","buttons");let e=document.createElement("input");e.type="text",e.placeholder=se("Add item..."),e.classList.add("input-text","input-sm"),e.style.width="auto";let r=()=>t.querySelector('input[type="radio"], input[type="checkbox"]');t.appendChild(e),e.addEventListener("keydown",n=>{if(n.key==="Enter"||n.key==="Tab"){let o=e.value.trim();if(o){n.preventDefault();let a=r(),i=a?.type==="radio"?"radio":"checkbox",s=`open-group-${Math.random().toString(36).substring(2,11)}`,d=document.createElement("label"),l=document.createElement("span");l.setAttribute("data-label",""),l.textContent=o;let p=document.createElement("input");p.type=i,p.name=a?.name||t.getAttribute("data-name")||"open-group",p.value=o,p.id=s,d.appendChild(l),d.appendChild(p),t.insertBefore(d,e),e.value=""}}else if(n.key==="Backspace"&&e.value===""){n.preventDefault();let o=t.querySelectorAll("label");o.length>0&&o[o.length-1].remove()}})}function Wo(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 Uo(t){if(t.dataset.enhancedBtnWorking)return;t.dataset.enhancedBtnWorking="true";let e=null,r=!1;new MutationObserver(o=>{o.forEach(a=>{if(a.attributeName==="class"){let i=t.classList.contains("btn-working"),s=t.querySelector("pds-icon");if(i)if(s)e||(e=s.getAttribute("icon")),s.setAttribute("icon","circle-notch");else{let d=document.createElement("pds-icon");d.setAttribute("icon","circle-notch"),d.setAttribute("size","sm"),t.insertBefore(d,t.firstChild),r=!0}else a.oldValue?.includes("btn-working")&&s&&(r?(s.remove(),r=!1):e&&(s.setAttribute("icon",e),e=null))}})}).observe(t,{attributes:!0,attributeFilter:["class"],attributeOldValue:!0})}var qo=new Map([[".accordion",Po],["nav[data-dropdown]",No],["label[data-toggle]",jo],["label[data-color]",Oo],['input[type="range"]',Bo],["form[data-required]",Do],["fieldset[role=group][data-open]",Ho],["[data-clip]",Wo],["button, a[class*='btn-']",Uo]]),rt=Fo.map(t=>({...t,run:qo.get(t.selector)||(()=>{})}));var Vr=[{selector:".accordion",description:"Ensures only one <details> element can be open at a time within the accordion.",demoHtml:`
|
|
3597
3818
|
<div class="accordion">
|
|
3598
3819
|
<details>
|
|
3599
3820
|
<summary>Section 1</summary>
|
|
@@ -3658,8 +3879,8 @@ export const ${t}CSS = \`${n}\`;
|
|
|
3658
3879
|
<button class="btn-primary btn-working">
|
|
3659
3880
|
<span>Saving</span>
|
|
3660
3881
|
</button>
|
|
3661
|
-
`.trim()}];var Gr="pds",Uo=/^([a-z][a-z0-9+\-.]*:)?\/\//i,qr=/^[a-z]:/i;function De(e=""){return e.endsWith("/")?e:`${e}/`}function qo(e="",t=Gr){let r=e.replace(/\/+$/,"");return new RegExp(`(?:^|/)${t}$`,"i").test(r)?r:`${r}/${t}`}function Go(e){return e.replace(/^\.\/+/,"")}function Vo(e){return qr.test(e)?e.replace(qr,"").replace(/^\/+/,""):e}function Ko(e){return e.startsWith("public/")?e.substring(7):e}function ke(e,t={}){let r=t.segment||Gr,n=t.defaultRoot||`/assets/${r}/`,o=e?.public&&e.public?.root||e?.static&&e.static?.root||null;if(!o||typeof o!="string")return De(n);let a=o.trim();return a?(a=a.replace(/\\/g,"/"),a=qo(a,r),a=De(a),Uo.test(a)?a:(a=Go(a),a=Vo(a),a.startsWith("/")||(a=Ko(a),a.startsWith("/")||(a=`/${a}`),a=a.replace(/\/+/g,(i,s)=>s===0?i:"/")),De(a))):De(n)}function Vr(e){let t=e.replace(/['"]/g,"").trim();if(["system-ui","-apple-system","sans-serif","serif","monospace","cursive","fantasy","ui-sans-serif","ui-serif","ui-monospace","ui-rounded"].includes(t.toLowerCase()))return!0;let o=document.createElement("canvas").getContext("2d");if(!o)return!1;let a="mmmmmmmmmmlli",i="72px",s="monospace";o.font=`${i} ${s}`;let p=o.measureText(a).width;o.font=`${i} "${t}", ${s}`;let c=o.measureText(a).width;return p!==c}function Jo(e){return e?e.split(",").map(n=>n.trim())[0].replace(/['"]/g,"").trim():null}async function Kr(e,t={}){if(!e)return Promise.resolve();let{weights:r=[400,500,600,700],italic:n=!1}=t,o=Jo(e);if(!o||Vr(o))return Promise.resolve();let a=encodeURIComponent(o);return document.querySelector(`link[href*="fonts.googleapis.com"][href*="${a}"]`)?(h.log("log",`Font "${o}" is already loading or loaded`),Promise.resolve()):(h.log("log",`Loading font "${o}" from Google Fonts...`),new Promise((s,p)=>{let c=document.createElement("link");c.rel="stylesheet";let d=n?`ital,wght@0,${r.join(";0,")};1,${r.join(";1,")}`:`wght@${r.join(";")}`;c.href=`https://fonts.googleapis.com/css2?family=${a}:${d}&display=swap`,c.setAttribute("data-font-loader",o),c.onload=()=>{h.log("log",`Successfully loaded font "${o}"`),s()},c.onerror=()=>{h.log("warn",`Failed to load font "${o}" from Google Fonts`),p(new Error(`Failed to load font: ${o}`))},document.head.appendChild(c),setTimeout(()=>{Vr(o)||h.log("warn",`Font "${o}" did not load within timeout`),s()},5e3)}))}async function Jt(e){if(!e)return Promise.resolve();let t=new Set;e.fontFamilyHeadings&&t.add(e.fontFamilyHeadings),e.fontFamilyBody&&t.add(e.fontFamilyBody),e.fontFamilyMono&&t.add(e.fontFamilyMono);let r=Array.from(t).map(n=>Kr(n).catch(o=>{h.log("warn",`Could not load font: ${n}`,o)}));await Promise.all(r)}async function Yo(...e){let t={};e.length&&typeof e[e.length-1]=="object"&&(t=e.pop()||{});let r=e,{baseURL:n,mapper:o=c=>`${c}.js`,onError:a=(c,d)=>console.error(`[defineWebComponents] ${c}:`,d)}=t,i=n?new URL(n,typeof location<"u"?location.href:import.meta.url):new URL("./",import.meta.url),s=c=>c.toLowerCase().replace(/(^|-)([a-z])/g,(d,l,u)=>u.toUpperCase()),p=async c=>{try{if(customElements.get(c))return{tag:c,status:"already-defined"};let d=o(c),u=await import(d instanceof URL?d.href:new URL(d,i).href),g=u?.default??u?.[s(c)];if(!g){if(customElements.get(c))return{tag:c,status:"self-defined"};throw new Error(`No export found for ${c}. Expected default export or named export "${s(c)}".`)}return customElements.get(c)?{tag:c,status:"race-already-defined"}:(customElements.define(c,g),{tag:c,status:"defined"})}catch(d){throw a(c,d),d}};return Promise.all(r.map(p))}var nt=class{constructor(t={}){let{baseURL:r,mapper:n,onError:o,predicate:a=()=>!0,attributeModule:i="data-module",root:s=document,scanExisting:p=!0,debounceMs:c=16,observeShadows:d=!0,enhancers:l=[],patchAttachShadow:u=!0}=t,g=new Set,m=new Set,b=new Set,f=new Map,y=new WeakMap,k=new WeakMap,v=0,$=!1,A=null,T=S=>{if(!S||!l.length)return;let C=k.get(S);C||(C=new Set,k.set(S,C));for(let E of l)if(!(!E.selector||!E.run)&&!C.has(E.selector))try{S.matches&&S.matches(E.selector)&&(E.run(S),C.add(E.selector))}catch(O){console.warn(`[AutoDefiner] Error applying enhancer for selector "${E.selector}":`,O)}},F=(S,C)=>{if(!$&&!(!S||!S.includes("-"))&&!customElements.get(S)&&!m.has(S)&&!b.has(S)){if(C&&C.getAttribute){let E=C.getAttribute(i);E&&!f.has(S)&&f.set(S,E)}g.add(S),I()}},I=()=>{v||(v=setTimeout(N,c))},L=S=>{if(S){if(S.nodeType===1){let C=S,E=C.tagName?.toLowerCase();E&&E.includes("-")&&!customElements.get(E)&&a(E,C)&&F(E,C),T(C),d&&C.shadowRoot&&M(C.shadowRoot)}S.querySelectorAll&&S.querySelectorAll("*").forEach(C=>{let E=C.tagName?.toLowerCase();E&&E.includes("-")&&!customElements.get(E)&&a(E,C)&&F(E,C),T(C),d&&C.shadowRoot&&M(C.shadowRoot)})}},M=S=>{if(!S||y.has(S))return;L(S);let C=new MutationObserver(E=>{for(let O of E)O.addedNodes?.forEach(B=>{L(B)}),O.type==="attributes"&&O.target&&L(O.target)});C.observe(S,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[i,...l.map(E=>E.selector).filter(E=>E.startsWith("data-"))]}),y.set(S,C)};async function N(){if(clearTimeout(v),v=0,!g.size)return;let S=Array.from(g);g.clear(),S.forEach(C=>m.add(C));try{let C=E=>f.get(E)??(n?n(E):`${E}.js`);await Yo(...S,{baseURL:r,mapper:C,onError:(E,O)=>{b.add(E),o?.(E,O)}})}catch{}finally{S.forEach(C=>m.delete(C))}}let z=s===document?document.documentElement:s,x=new MutationObserver(S=>{for(let C of S)C.addedNodes?.forEach(E=>{L(E)}),C.type==="attributes"&&C.target&&L(C.target)});if(x.observe(z,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[i,...l.map(S=>S.selector).filter(S=>S.startsWith("data-"))]}),d&&u&&Element.prototype.attachShadow){let S=Element.prototype.attachShadow;Element.prototype.attachShadow=function(E){let O=S.call(this,E);if(E&&E.mode==="open"){M(O);let B=this.tagName?.toLowerCase();B&&B.includes("-")&&!customElements.get(B)&&F(B,this)}return O},A=()=>Element.prototype.attachShadow=S}return p&&L(z),{stop(){$=!0,x.disconnect(),A&&A(),v&&(clearTimeout(v),v=0),y.forEach(S=>S.disconnect())},flush:N}}static async define(...t){let r={};t.length&&typeof t[t.length-1]=="object"&&(r=t.pop()||{});let n=t,{baseURL:o,mapper:a=d=>`${d}.js`,onError:i=(d,l)=>console.error(`[defineWebComponents] ${d}:`,l)}=r,s=o?new URL(o,typeof location<"u"?location.href:import.meta.url):new URL("./",import.meta.url),p=d=>d.toLowerCase().replace(/(^|-)([a-z])/g,(l,u,g)=>g.toUpperCase()),c=async d=>{try{if(customElements.get(d))return{tag:d,status:"already-defined"};let l=a(d),g=await import(l instanceof URL?l.href:new URL(l,s).href),m=g?.default??g?.[p(d)];if(!m){if(customElements.get(d))return{tag:d,status:"self-defined"};throw new Error(`No export found for ${d}. Expected default export or named export "${p(d)}".`)}return customElements.get(d)?{tag:d,status:"race-already-defined"}:(customElements.define(d,m),{tag:d,status:"defined"})}catch(l){throw i(d,l),l}};return Promise.all(n.map(c))}};var Zo=/^[a-z][a-z0-9+\-.]*:\/\//i,We=(()=>{try{return import.meta.url}catch{return}})(),Se=e=>typeof e=="string"&&e.length&&!e.endsWith("/")?`${e}/`:e;function $e(e,t={}){if(!e||Zo.test(e))return e;let{preferModule:r=!0}=t,n=()=>{if(!We)return null;try{return new URL(e,We).href}catch{return null}},o=()=>{if(typeof window>"u"||!window.location?.origin)return null;try{return new URL(e,window.location.origin).href}catch{return null}};return(r?n()||o():o()||n())||e}var Jr=(()=>{if(We)try{let e=new URL(We);if(/\/public\/assets\/js\//.test(e.pathname))return new URL("../pds/",We).href}catch{return}})(),Yr=!1;function at(e){Yr||typeof document>"u"||(Yr=!0,e.addEventListener("pds:ready",t=>{let r=t.detail?.mode;r&&document.documentElement.classList.add(`pds-${r}`,"pds-ready")}))}function Zt(e={},t={}){if(!t||typeof t!="object")return e;let r=Array.isArray(e)?[...e]:{...e};for(let[n,o]of Object.entries(t))o&&typeof o=="object"&&!Array.isArray(o)?r[n]=Zt(r[n]&&typeof r[n]=="object"?r[n]:{},o):r[n]=o;return r}function Yt(e=""){return String(e).toLowerCase().replace(/&/g," and ").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}function ue(e){if(e==null)return e;if(typeof e=="function")return;if(typeof e!="object")return e;if(Array.isArray(e))return e.map(r=>ue(r)).filter(r=>r!==void 0);let t={};for(let r in e)if(e.hasOwnProperty(r)){let n=e[r];if(typeof n!="function"){let o=ue(n);o!==void 0&&(t[r]=o)}}return t}function ot(e){let t=ue(e);return typeof structuredClone=="function"?structuredClone(t):JSON.parse(JSON.stringify(t))}function Xt(e={},t={},{presets:r,defaultLog:n,validateDesignConfig:o,validateInitConfig:a}={}){let i=e&&typeof e.log=="function"?e.log:n,s=typeof e=="object"&&("colors"in e||"typography"in e||"spatialRhythm"in e||"shape"in e||"behavior"in e||"layout"in e||"advanced"in e||"a11y"in e||"components"in e||"icons"in e),p=e&&e.enhancers;p&&!Array.isArray(p)&&(p=Object.values(p));let c=p??t.enhancers??[],d=e&&e.preset,l=e&&e.design,u=e&&e.icons&&typeof e.icons=="object"?e.icons:null,g="preset"in(e||{})||"design"in(e||{})||"enhancers"in(e||{});e&&typeof e=="object"&&typeof a=="function"&&a(e,{log:i,context:"PDS.start"});let m,b=null;if(g){l&&typeof l=="object"&&typeof o=="function"&&o(l,{log:i,context:"PDS.start"});let f=String(d||"default").toLowerCase(),y=r?.[f]||Object.values(r||{}).find(B=>Yt(B.name)===f||String(B.name||"").toLowerCase()===f);if(!y)throw new Error(`PDS preset not found: "${d||"default"}"`);b={id:y.id||Yt(y.name),name:y.name||y.id||String(f)};let k=ot(y);if(l&&typeof l=="object"||u){let B=l?ue(l):{},K=u?ue(u):null,P=K?Zt(B,{icons:K}):B;k=Zt(k,ot(P))}let{mode:v,autoDefine:$,applyGlobalStyles:A,manageTheme:T,themeStorageKey:F,preloadStyles:I,criticalLayers:L,managerURL:M,manager:N,localization:z,preset:x,design:S,enhancers:C,log:E,...O}=e;m={...O,design:k,preset:b.name,log:E||n}}else if(s){typeof o=="function"&&o(e,{log:i,context:"PDS.start"});let{log:f,...y}=e;m={design:ot(y),log:f||n}}else{let f=r?.default||Object.values(r||{}).find(y=>Yt(y.name)==="default");if(!f)throw new Error("PDS default preset not available");b={id:f.id||"default",name:f.name||"Default"},m={design:ot(f),preset:b.name,log:n}}return{generatorConfig:m,enhancers:c,presetInfo:b}}function it({manageTheme:e,themeStorageKey:t,applyResolvedTheme:r,setupSystemListenerIfNeeded:n}){let o="light",a=null;if(e&&typeof window<"u"){try{a=localStorage.getItem(t)||null}catch{a=null}try{r?.(a),n?.(a)}catch{}a?a==="system"?o=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":o=a:o=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}return{resolvedTheme:o,storedTheme:a}}function ze(e,{resolvePublicAssetURL:t}){let r=!!(e?.public?.root||e?.static?.root),n=t(e);return!r&&Jr&&(n=Jr),Se($e(n))}async function st(e,{baseEnhancers:t=[]}={}){let{autoDefineBaseURL:r="/auto-define/",autoDefinePreload:n=[],autoDefineMapper:o=null,enhancers:a=[],autoDefineOverrides:i=null,autoDefinePreferModule:s=!0}=e,p=(()=>{let d=new Map;return(t||[]).forEach(l=>d.set(l.selector,l)),(a||[]).forEach(l=>d.set(l.selector,l)),Array.from(d.values())})(),c=null;if(typeof window<"u"&&typeof document<"u"){let d=nt,l=v=>{switch(v){case"pds-tabpanel":return"pds-tabstrip.js";default:return`${v}.js`}},{mapper:u,enhancers:g,...m}=i&&typeof i=="object"?i:{},b=g?Array.isArray(g)?g:typeof g=="object"?Object.values(g):[]:[],f=(()=>{let v=new Map;return(p||[]).forEach($=>{$?.selector&&v.set($.selector,$)}),(b||[]).forEach($=>{if(!$?.selector)return;let A=v.get($.selector)||null;v.set($.selector,{...A||{},...$,run:typeof $?.run=="function"?$.run:A?.run})}),Array.from(v.values())})(),k={baseURL:r&&Se($e(r,{preferModule:s})),predefine:n,scanExisting:!0,observeShadows:!0,patchAttachShadow:!0,debounceMs:16,enhancers:f,onError:(v,$)=>{if(typeof v=="string"&&v.startsWith("pds-")){let T=["pds-form","pds-drawer"].includes(v),F=$?.message?.includes("#pds/lit")||$?.message?.includes("Failed to resolve module specifier");T&&F?h.log("error",`\u274C PDS component <${v}> requires Lit but #pds/lit is not in import map.
|
|
3662
|
-
See: https://github.com/Pure-Web-Foundation/pure-ds/blob/main/readme.md#lit-components-not-working`):
|
|
3882
|
+
`.trim()}];var Kr="pds",Vo=/^([a-z][a-z0-9+\-.]*:)?\/\//i,Gr=/^[a-z]:/i;function De(t=""){return t.endsWith("/")?t:`${t}/`}function Go(t="",e=Kr){let r=t.replace(/\/+$/,"");return new RegExp(`(?:^|/)${e}$`,"i").test(r)?r:`${r}/${e}`}function Ko(t){return t.replace(/^\.\/+/,"")}function Jo(t){return Gr.test(t)?t.replace(Gr,"").replace(/^\/+/,""):t}function Yo(t){return t.startsWith("public/")?t.substring(7):t}function ke(t,e={}){let r=e.segment||Kr,n=e.defaultRoot||`/assets/${r}/`,o=t?.public&&t.public?.root||t?.static&&t.static?.root||null;if(!o||typeof o!="string")return De(n);let a=o.trim();return a?(a=a.replace(/\\/g,"/"),a=Go(a,r),a=De(a),Vo.test(a)?a:(a=Ko(a),a=Jo(a),a.startsWith("/")||(a=Yo(a),a.startsWith("/")||(a=`/${a}`),a=a.replace(/\/+/g,(i,s)=>s===0?i:"/")),De(a))):De(n)}function Jr(t){let e=t.replace(/['"]/g,"").trim();if(["system-ui","-apple-system","sans-serif","serif","monospace","cursive","fantasy","ui-sans-serif","ui-serif","ui-monospace","ui-rounded"].includes(e.toLowerCase()))return!0;let o=document.createElement("canvas").getContext("2d");if(!o)return!1;let a="mmmmmmmmmmlli",i="72px",s="monospace";o.font=`${i} ${s}`;let d=o.measureText(a).width;o.font=`${i} "${e}", ${s}`;let l=o.measureText(a).width;return d!==l}function Xo(t){return t?t.split(",").map(n=>n.trim())[0].replace(/['"]/g,"").trim():null}async function Yr(t,e={}){if(!t)return Promise.resolve();let{weights:r=[400,500,600,700],italic:n=!1}=e,o=Xo(t);if(!o||Jr(o))return Promise.resolve();let a=encodeURIComponent(o);return document.querySelector(`link[href*="fonts.googleapis.com"][href*="${a}"]`)?(w.log("log",`Font "${o}" is already loading or loaded`),Promise.resolve()):(w.log("log",`Loading font "${o}" from Google Fonts...`),new Promise((s,d)=>{let l=document.createElement("link");l.rel="stylesheet";let p=n?`ital,wght@0,${r.join(";0,")};1,${r.join(";1,")}`:`wght@${r.join(";")}`;l.href=`https://fonts.googleapis.com/css2?family=${a}:${p}&display=swap`,l.setAttribute("data-font-loader",o),l.onload=()=>{w.log("log",`Successfully loaded font "${o}"`),s()},l.onerror=()=>{w.log("warn",`Failed to load font "${o}" from Google Fonts`),d(new Error(`Failed to load font: ${o}`))},document.head.appendChild(l),setTimeout(()=>{Jr(o)||w.log("warn",`Font "${o}" did not load within timeout`),s()},5e3)}))}async function Yt(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=>Yr(n).catch(o=>{w.log("warn",`Could not load font: ${n}`,o)}));await Promise.all(r)}async function Zo(...t){let e={};t.length&&typeof t[t.length-1]=="object"&&(e=t.pop()||{});let r=t,{baseURL:n,mapper:o=l=>`${l}.js`,onError:a=(l,p)=>console.error(`[defineWebComponents] ${l}:`,p)}=e,i=n?new URL(n,typeof location<"u"?location.href:import.meta.url):new URL("./",import.meta.url),s=l=>l.toLowerCase().replace(/(^|-)([a-z])/g,(p,c,u)=>u.toUpperCase()),d=async l=>{try{if(customElements.get(l))return{tag:l,status:"already-defined"};let p=o(l),u=await import(p instanceof URL?p.href:new URL(p,i).href),y=u?.default??u?.[s(l)];if(!y){if(customElements.get(l))return{tag:l,status:"self-defined"};throw new Error(`No export found for ${l}. Expected default export or named export "${s(l)}".`)}return customElements.get(l)?{tag:l,status:"race-already-defined"}:(customElements.define(l,y),{tag:l,status:"defined"})}catch(p){throw a(l,p),p}};return Promise.all(r.map(d))}var nt=class{constructor(e={}){let{baseURL:r,mapper:n,onError:o,predicate:a=()=>!0,attributeModule:i="data-module",root:s=document,scanExisting:d=!0,debounceMs:l=16,observeShadows:p=!0,enhancers:c=[],patchAttachShadow:u=!0}=e,y=new Set,g=new Set,x=new Set,b=new Map,f=new WeakMap,h=new WeakMap,v=0,m=!1,S=null,C=L=>{if(!L||!c.length)return;let A=h.get(L);A||(A=new Set,h.set(L,A));for(let R of c)if(!(!R.selector||!R.run)&&!A.has(R.selector))try{L.matches&&L.matches(R.selector)&&(R.run(L),A.add(R.selector))}catch(O){console.warn(`[AutoDefiner] Error applying enhancer for selector "${R.selector}":`,O)}},T=(L,A)=>{if(!m&&!(!L||!L.includes("-"))&&!customElements.get(L)&&!g.has(L)&&!x.has(L)){if(A&&A.getAttribute){let R=A.getAttribute(i);R&&!b.has(L)&&b.set(L,R)}y.add(L),I()}},I=()=>{v||(v=setTimeout(P,l))},z=L=>{if(L){if(L.nodeType===1){let A=L,R=A.tagName?.toLowerCase();R&&R.includes("-")&&!customElements.get(R)&&a(R,A)&&T(R,A),C(A),p&&A.shadowRoot&&E(A.shadowRoot)}L.querySelectorAll&&L.querySelectorAll("*").forEach(A=>{let R=A.tagName?.toLowerCase();R&&R.includes("-")&&!customElements.get(R)&&a(R,A)&&T(R,A),C(A),p&&A.shadowRoot&&E(A.shadowRoot)})}},E=L=>{if(!L||f.has(L))return;z(L);let A=new MutationObserver(R=>{for(let O of R)O.addedNodes?.forEach(B=>{z(B)}),O.type==="attributes"&&O.target&&z(O.target)});A.observe(L,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[i,...c.map(R=>R.selector).filter(R=>R.startsWith("data-"))]}),f.set(L,A)};async function P(){if(clearTimeout(v),v=0,!y.size)return;let L=Array.from(y);y.clear(),L.forEach(A=>g.add(A));try{let A=R=>b.get(R)??(n?n(R):`${R}.js`);await Zo(...L,{baseURL:r,mapper:A,onError:(R,O)=>{x.add(R),o?.(R,O)}})}catch{}finally{L.forEach(A=>g.delete(A))}}let M=s===document?document.documentElement:s,k=new MutationObserver(L=>{for(let A of L)A.addedNodes?.forEach(R=>{z(R)}),A.type==="attributes"&&A.target&&z(A.target)});if(k.observe(M,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[i,...c.map(L=>L.selector).filter(L=>L.startsWith("data-"))]}),p&&u&&Element.prototype.attachShadow){let L=Element.prototype.attachShadow;Element.prototype.attachShadow=function(R){let O=L.call(this,R);if(R&&R.mode==="open"){E(O);let B=this.tagName?.toLowerCase();B&&B.includes("-")&&!customElements.get(B)&&T(B,this)}return O},S=()=>Element.prototype.attachShadow=L}return d&&z(M),{stop(){m=!0,k.disconnect(),S&&S(),v&&(clearTimeout(v),v=0),f.forEach(L=>L.disconnect())},flush:P}}static async define(...e){let r={};e.length&&typeof e[e.length-1]=="object"&&(r=e.pop()||{});let n=e,{baseURL:o,mapper:a=p=>`${p}.js`,onError:i=(p,c)=>console.error(`[defineWebComponents] ${p}:`,c)}=r,s=o?new URL(o,typeof location<"u"?location.href:import.meta.url):new URL("./",import.meta.url),d=p=>p.toLowerCase().replace(/(^|-)([a-z])/g,(c,u,y)=>y.toUpperCase()),l=async p=>{try{if(customElements.get(p))return{tag:p,status:"already-defined"};let c=a(p),y=await import(c instanceof URL?c.href:new URL(c,s).href),g=y?.default??y?.[d(p)];if(!g){if(customElements.get(p))return{tag:p,status:"self-defined"};throw new Error(`No export found for ${p}. Expected default export or named export "${d(p)}".`)}return customElements.get(p)?{tag:p,status:"race-already-defined"}:(customElements.define(p,g),{tag:p,status:"defined"})}catch(c){throw i(p,c),c}};return Promise.all(n.map(l))}};var Qo=/^[a-z][a-z0-9+\-.]*:\/\//i,He=(()=>{try{return import.meta.url}catch{return}})(),Se=t=>typeof t=="string"&&t.length&&!t.endsWith("/")?`${t}/`:t;function $e(t,e={}){if(!t||Qo.test(t))return t;let{preferModule:r=!0}=e,n=()=>{if(!He)return null;try{return new URL(t,He).href}catch{return null}},o=()=>{if(typeof window>"u"||!window.location?.origin)return null;try{return new URL(t,window.location.origin).href}catch{return null}};return(r?n()||o():o()||n())||t}var Xr=(()=>{if(He)try{let t=new URL(He);if(/\/public\/assets\/js\//.test(t.pathname))return new URL("../pds/",He).href}catch{return}})(),Zr=!1;function at(t){Zr||typeof document>"u"||(Zr=!0,t.addEventListener("pds:ready",e=>{let r=e.detail?.mode;r&&document.documentElement.classList.add(`pds-${r}`,"pds-ready")}))}function Zt(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]=Zt(r[n]&&typeof r[n]=="object"?r[n]:{},o):r[n]=o;return r}function Xt(t=""){return String(t).toLowerCase().replace(/&/g," and ").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}function ue(t){if(t==null)return t;if(typeof t=="function")return;if(typeof t!="object")return t;if(Array.isArray(t))return t.map(r=>ue(r)).filter(r=>r!==void 0);let e={};for(let r in t)if(t.hasOwnProperty(r)){let n=t[r];if(typeof n!="function"){let o=ue(n);o!==void 0&&(e[r]=o)}}return e}function ot(t){let e=ue(t);return typeof structuredClone=="function"?structuredClone(e):JSON.parse(JSON.stringify(e))}function Qt(t={},e={},{presets:r,defaultLog:n,validateDesignConfig:o,validateInitConfig:a}={}){let i=t&&typeof t.log=="function"?t.log:n,s=typeof t=="object"&&("colors"in t||"typography"in t||"spatialRhythm"in t||"shape"in t||"behavior"in t||"layout"in t||"advanced"in t||"a11y"in t||"components"in t||"icons"in t),d=t&&t.enhancers;d&&!Array.isArray(d)&&(d=Object.values(d));let l=d??e.enhancers??[],p=t&&t.preset,c=t&&t.design,u=t&&t.icons&&typeof t.icons=="object"?t.icons:null,y="preset"in(t||{})||"design"in(t||{})||"enhancers"in(t||{});t&&typeof t=="object"&&typeof a=="function"&&a(t,{log:i,context:"PDS.start"});let g,x=null;if(y){c&&typeof c=="object"&&typeof o=="function"&&o(c,{log:i,context:"PDS.start"});let b=String(p||"default").toLowerCase(),f=r?.[b]||Object.values(r||{}).find(B=>Xt(B.name)===b||String(B.name||"").toLowerCase()===b);if(!f)throw new Error(`PDS preset not found: "${p||"default"}"`);x={id:f.id||Xt(f.name),name:f.name||f.id||String(b)};let h=ot(f);if(c&&typeof c=="object"||u){let B=c?ue(c):{},K=u?ue(u):null,N=K?Zt(B,{icons:K}):B;h=Zt(h,ot(N))}let{mode:v,autoDefine:m,applyGlobalStyles:S,manageTheme:C,themeStorageKey:T,preloadStyles:I,criticalLayers:z,managerURL:E,manager:P,localization:M,preset:k,design:L,enhancers:A,log:R,...O}=t;g={...O,design:h,preset:x.name,log:R||n}}else if(s){typeof o=="function"&&o(t,{log:i,context:"PDS.start"});let{log:b,...f}=t;g={design:ot(f),log:b||n}}else{let b=r?.default||Object.values(r||{}).find(f=>Xt(f.name)==="default");if(!b)throw new Error("PDS default preset not available");x={id:b.id||"default",name:b.name||"Default"},g={design:ot(b),preset:x.name,log:n}}return{generatorConfig:g,enhancers:l,presetInfo:x}}function it({manageTheme:t,themeStorageKey:e,applyResolvedTheme:r,setupSystemListenerIfNeeded:n}){let o="light",a=null;if(t&&typeof window<"u"){try{a=localStorage.getItem(e)||null}catch{a=null}try{r?.(a),n?.(a)}catch{}a?a==="system"?o=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":o=a:o=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}return{resolvedTheme:o,storedTheme:a}}function Le(t,{resolvePublicAssetURL:e}){let r=!!(t?.public?.root||t?.static?.root),n=e(t);return!r&&Xr&&(n=Xr),Se($e(n))}async function st(t,{baseEnhancers:e=[]}={}){let{autoDefineBaseURL:r="/auto-define/",autoDefinePreload:n=[],autoDefineMapper:o=null,enhancers:a=[],autoDefineOverrides:i=null,autoDefinePreferModule:s=!0}=t,d=(()=>{let p=new Map;return(e||[]).forEach(c=>p.set(c.selector,c)),(a||[]).forEach(c=>p.set(c.selector,c)),Array.from(p.values())})(),l=null;if(typeof window<"u"&&typeof document<"u"){let p=nt,c=v=>{switch(v){case"pds-tabpanel":return"pds-tabstrip.js";default:return`${v}.js`}},{mapper:u,enhancers:y,...g}=i&&typeof i=="object"?i:{},x=y?Array.isArray(y)?y:typeof y=="object"?Object.values(y):[]:[],b=(()=>{let v=new Map;return(d||[]).forEach(m=>{m?.selector&&v.set(m.selector,m)}),(x||[]).forEach(m=>{if(!m?.selector)return;let S=v.get(m.selector)||null;v.set(m.selector,{...S||{},...m,run:typeof m?.run=="function"?m.run:S?.run})}),Array.from(v.values())})(),h={baseURL:r&&Se($e(r,{preferModule:s})),predefine:n,scanExisting:!0,observeShadows:!0,patchAttachShadow:!0,debounceMs:16,enhancers:b,onError:(v,m)=>{if(typeof v=="string"&&v.startsWith("pds-")){let C=["pds-form","pds-drawer"].includes(v),T=m?.message?.includes("#pds/lit")||m?.message?.includes("Failed to resolve module specifier");C&&T?w.log("error",`\u274C PDS component <${v}> requires Lit but #pds/lit is not in import map.
|
|
3883
|
+
See: https://github.com/Pure-Web-Foundation/pure-ds/blob/main/readme.md#lit-components-not-working`):w.log("warn",`\u26A0\uFE0F PDS component <${v}> not found. Assets may not be installed.`)}else w.log("error",`\u274C Auto-define error for <${v}>:`,m)},...g,mapper:v=>{if(customElements.get(v))return null;if(typeof o=="function")try{let m=o(v);return m===void 0?c(v):m}catch(m){return w.log("warn","Custom autoDefine.mapper error; falling back to default:",m?.message||m),c(v)}return c(v)}};l=new p(h),n.length>0&&typeof p.define=="function"&&await p.define(...n,{baseURL:r,mapper:h.mapper,onError:h.onError})}return{autoDefiner:l,mergedEnhancers:d}}var er=["light","dark"],tr=new Set(er);function rr(t){let r=(Array.isArray(t?.themes)?t.themes.map(n=>String(n).toLowerCase()):er).filter(n=>tr.has(n));return r.length?r:er}function ze(t,{preferDocument:e=!0}={}){let r=String(t||"").toLowerCase();if(tr.has(r))return r;if(e&&typeof document<"u"){let n=document.documentElement?.getAttribute("data-theme");if(tr.has(n))return n}return typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function ge(t,e){let r=ze(e);return rr(t).includes(r)}var en=!1,ut="pds-live-edit-toggle",sr="pds-live-edit-toggle-style";function tn(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))tn(t[r],e);return t}function gt(t){let e=ue(t);return typeof structuredClone=="function"?structuredClone(e):JSON.parse(JSON.stringify(e))}function rn(t){return t==null||typeof t!="object"?t:tn(gt(t))}function nn(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 ea(t={}){let e=t?.interactive!==!1;typeof document>"u"||nn(()=>{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 pt(t=0){return new Promise(e=>{setTimeout(e,Math.max(0,Number(t)||0))})}async function We(t={}){let e=t?.mountIfMissing!==!1,r=t?.interactive!==!1,n=typeof t?.requiredMethod=="string"&&t.requiredMethod.trim()?t.requiredMethod.trim():"openDesignSettings",o=Number.isFinite(Number(t?.timeoutMs))?Number(t.timeoutMs):2400;if(typeof document>"u"||!e&&!document.querySelector("pds-live-edit"))return null;e&&ea({interactive:r});let a=Date.now();for(;Date.now()-a<o;){let s=document.querySelector("pds-live-edit");if(!s){await pt(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"),pt(80)])}catch{await pt(40)}continue}await pt(40)}let i=document.querySelector("pds-live-edit");return i&&typeof i?.[n]=="function"?i:null}function on(){if(typeof document>"u")return;document.querySelectorAll("pds-live-edit").forEach(e=>{typeof e?.setInteractiveEditingEnabled=="function"&&e.setInteractiveEditingEnabled(!1),e.remove()})}function ta(t){return t?typeof t.isInteractiveEditingEnabled=="function"?!!t.isInteractiveEditingEnabled():!0:!1}function ra(){if(typeof document>"u"||document.getElementById(sr))return;let t=document.createElement("style");t.id=sr,t.textContent=`
|
|
3663
3884
|
:where(.pds-live-edit-toggle-nav) {
|
|
3664
3885
|
position: fixed;
|
|
3665
3886
|
top: var(--spacing-3);
|
|
@@ -3684,8 +3905,7 @@ export const ${t}CSS = \`${n}\`;
|
|
|
3684
3905
|
:where(.pds-live-edit-toggle-nav menu li.pds-live-shared-quick-mode-item .pds-live-editor-menu) {
|
|
3685
3906
|
display: grid;
|
|
3686
3907
|
gap: var(--spacing-2);
|
|
3687
|
-
padding: var(--spacing-2);
|
|
3688
|
-
border-bottom: var(--border-width-thin) solid var(--color-border);
|
|
3908
|
+
padding: var(--spacing-2);
|
|
3689
3909
|
}
|
|
3690
3910
|
|
|
3691
3911
|
:where(.pds-live-edit-toggle-nav menu li.pds-live-shared-quick-mode-item label) {
|
|
@@ -3713,34 +3933,34 @@ export const ${t}CSS = \`${n}\`;
|
|
|
3713
3933
|
}
|
|
3714
3934
|
|
|
3715
3935
|
:where(.pds-live-edit-toggle-nav menu a[data-pds-live-action="reset-config"]) {
|
|
3716
|
-
color: var(--color-danger-
|
|
3936
|
+
color: var(--color-danger-text);
|
|
3717
3937
|
}
|
|
3718
3938
|
|
|
3719
3939
|
:where(.pds-live-edit-toggle-nav menu a[data-pds-live-action="reset-config"] pds-icon) {
|
|
3720
|
-
color: var(--color-danger-
|
|
3940
|
+
color: var(--color-danger-text);
|
|
3721
3941
|
}
|
|
3722
|
-
`,document.head.appendChild(
|
|
3723
|
-
<span style="display:inline-block;width:10px;height:20px;background-color:${
|
|
3724
|
-
<span style="display:inline-block;width:10px;height:20px;background-color:${
|
|
3942
|
+
`,document.head.appendChild(t)}function ir(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 na(){if(typeof document>"u")return null;ra();let t=document.getElementById(ut);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=ut,t.type="button",t.className="icon-only btn-secondary",t.setAttribute("data-pds-live-edit-ignore","true"),t.innerHTML='<pds-icon icon="cursor-click" size="sm"></pds-icon>';let r=document.createElement("menu");r.setAttribute("data-pds-live-edit-ignore","true");let n=(i,s,d)=>{let l=document.createElement("li"),p=document.createElement("a");p.href="#",p.dataset.pdsLiveAction=i,p.setAttribute("data-pds-live-edit-ignore","true");let c=document.createElement("pds-icon");return c.setAttribute("icon",d),c.setAttribute("size","sm"),p.append(c,document.createTextNode(` ${s}`)),l.appendChild(p),l},o=()=>{let i=document.createElement("li");i.setAttribute("data-pds-live-edit-ignore","true");let s=document.createElement("hr");return s.setAttribute("aria-hidden","true"),i.appendChild(s),i};r.appendChild(n("toggle",se("Toggle live editing"),"pencil"));let a=n("open-settings",se("Open Settings"),"gear");a.setAttribute("data-dropdown-close",""),r.appendChild(a),r.appendChild(n("reset-config",se("Reset Config"),"arrow-counter-clockwise")),await oa(r),e.append(t,r),nn(()=>{document.getElementById(ut)||document.body.appendChild(e)})}return t}async function oa(t){if(t instanceof Element){if(t.__pdsLiveSharedMenuItemInFlight)return t.__pdsLiveSharedMenuItemInFlight;t.__pdsLiveSharedMenuItemInFlight=(async()=>{t.querySelectorAll("li.pds-live-shared-quick-mode-item").forEach(s=>s.remove());let e=await We({mountIfMissing:!0,interactive:!1,requiredMethod:"createSharedQuickModeMenuItem",timeoutMs:7e3});if(!e||typeof e.createSharedQuickModeMenuItem!="function")return;let r=await e.createSharedQuickModeMenuItem();if(!(r instanceof Element))return;r.classList.add("pds-live-shared-quick-mode-item");let o=t.querySelector('a[data-pds-live-action="reset-config"]')?.closest("li")||null,a=o?.previousElementSibling||null,i=a&&a.querySelector?.(":scope > hr")?a:null;if(i){t.insertBefore(r,i);return}if(o){t.insertBefore(r,o);return}t.appendChild(r)})();try{await t.__pdsLiveSharedMenuItemInFlight}finally{t.__pdsLiveSharedMenuItemInFlight=null}}}function aa(){if(typeof document>"u")return;let t=document.getElementById(ut);if(t){let r=t.closest(".pds-live-edit-toggle-nav");r?r.remove():t.remove()}let e=document.getElementById(sr);e&&e.remove(),on()}async function ia(){if(typeof document>"u")return;let t=await na();if(!t)return;let e=async i=>{if(i){let s=await We({mountIfMissing:!0});s&&typeof s.setInteractiveEditingEnabled=="function"&&s.setInteractiveEditingEnabled(!0)}else on();ir(t,i)};e(!1);let r=t.closest(".pds-live-edit-toggle-nav")||t;t.__pdsLiveEditActionHandler&&r.removeEventListener("click",t.__pdsLiveEditActionHandler);let n=async i=>{let s=i.target?.closest?.("[data-pds-live-action]");if(!s)return;i.preventDefault();let d=String(s.dataset.pdsLiveAction||"");if(d==="toggle"){let l=await We({mountIfMissing:!1}),p=ta(l);await e(!p);return}if(d==="open-settings"){let l=await We({mountIfMissing:!0,requiredMethod:"openDesignSettings",interactive:!1});l&&typeof l.setInteractiveEditingEnabled=="function"&&l.setInteractiveEditingEnabled(!1),l&&typeof l.openDesignSettings=="function"&&(ir(t,!1),await l.openDesignSettings());return}if(d==="reset-config"){let l=await We({mountIfMissing:!0,requiredMethod:"resetConfig",interactive:!1});ir(t,!1),l&&typeof l.resetConfig=="function"&&await l.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 sa(){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 lr(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]=lr(r[n]&&typeof r[n]=="object"?r[n]:{},o):r[n]=o;return r}function la(t){let e=sa();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=lr(i,n)}else a=lr(t,n);return a}function ca(t,e={}){let{hideCategory:r=!0,itemGrid:n="45px 1fr",includeIncompatible:o=!0,disableIncompatible:a=!0,categoryName:i="Presets",theme:s,onSelect:d,iconHandler:l}=e||{},p=ze(s??t?.theme),c=g=>{let b=y(g?.id)?.colors||{},f=b?.primary,h=b?.secondary,v=b?.accent;return f&&h&&v?`<span style="display:flex;gap:1px;flex-shrink:0;" aria-hidden="true">
|
|
3943
|
+
<span style="display:inline-block;width:10px;height:20px;background-color:${f};"> </span>
|
|
3944
|
+
<span style="display:inline-block;width:10px;height:20px;background-color:${h};"> </span>
|
|
3725
3945
|
<span style="display:inline-block;width:10px;height:20px;background-color:${v};"> </span>
|
|
3726
|
-
</span>`:
|
|
3727
|
-
`);if(
|
|
3946
|
+
</span>`:g?.icon?`<pds-icon icon="${g.icon}" size="sm"></pds-icon>`:""},u=()=>{let g=t?.presets||{};return Object.values(g||{}).filter(x=>!!(x?.id||x?.name))},y=g=>g&&u().find(b=>String(b?.id||b?.name)===String(g))||null;return{hideCategory:r,itemGrid:n,iconHandler:typeof l=="function"?l:c,categories:{[i]:{trigger:()=>!0,getItems:(g={})=>{let x=String(g?.search||"").toLowerCase().trim();return u().filter(f=>{let h=String(f?.name||f?.id||"").toLowerCase(),v=String(f?.description||"").toLowerCase(),m=Array.isArray(f?.tags)?f.tags.map(C=>String(C).toLowerCase()):[];if(x&&!(h.includes(x)||v.includes(x)||m.some(T=>T.includes(x))))return!1;let S=ge(f,p);return!(!o&&!S)}).map(f=>{let h=f?.id||f?.name,v=ge(f,p),m=rr(f),S=m.length===1?`${m[0]} only`:`Not available in ${p} mode`,C=String(f?.description||"").trim(),T=v?C:C?`${C} - ${S}`:S;return{id:h,text:f?.name||String(h),description:T,icon:"palette",class:!v&&a?"disabled":"",disabled:!v&&a,tooltip:v?"":S}}).sort((f,h)=>String(f.text||"").localeCompare(String(h.text||"")))},action:async g=>{if(!g?.id||g?.disabled)return g?.id;let x=y(g.id);return x?typeof d=="function"?await d({preset:x,selection:g,resolvedTheme:p}):(typeof t?.applyLivePreset=="function"&&await t.applyLivePreset(x.id||g.id),x.id||g.id):g?.id}}}}}async function da(t,{applyResolvedTheme:e,setupSystemListenerIfNeeded:r,emitConfigChanged:n}){if(en)return;let[o,a,i]=await Promise.all([Promise.resolve().then(()=>(Dt(),Rr)),Promise.resolve().then(()=>(_e(),vr)),Promise.resolve().then(()=>(ar(),dt))]),s=o?.default||o?.ontology,d=o?.findComponentForElement,l=a?.enums;t.ontology=s,t.findComponentForElement=d,t.enums=l,t.common=i||{},t.presets=Q,t.configRelations=Lr,t.configSpec=zr,t.configEditorMetadata=Er,t.configFormSchema=Ar,t.buildConfigFormSchema=be,t.getConfigEditorMetadata=je,t.enhancerMetadata=Vr,(!Array.isArray(t.defaultEnhancers)||t.defaultEnhancers.length===0)&&(t.defaultEnhancers=Array.isArray(rt)?rt:[]),t.applyStyles=function(p){let c=p||Z.instance;Ur(c),typeof n=="function"&&n({mode:"live",source:"live:styles-applied"})},t.adoptLayers=function(p,c,u){return tt(p,c,u,Z.instance)},t.adoptPrimitives=function(p,c){return et(p,c,Z.instance)},t.getGenerator=async function(){return Z},t.buildPresetOmniboxSettings=function(p={}){return ca(t,p)},t.applyLivePreset=async function(p,c={}){if(!p)return!1;if(!t.registry?.isLive)return t.log("warn","PDS.applyLivePreset is only available in live mode."),!1;let u=t.currentConfig||{},{design:y,preset:g,...x}=u,b={...gt(x),preset:p},f=Qt(b,{},{presets:Q,defaultLog:Bt,validateDesignConfig:jt,validateInitConfig:Ot}),h=ze(t.theme);if(!ge(f.generatorConfig.design,h)){let C=f.presetInfo?.name||f.generatorConfig?.design?.name||p;t.log("warn",`PDS theme "${h}" not supported by preset "${C}".`)}u.theme&&!f.generatorConfig.theme&&(f.generatorConfig.theme=u.theme);let v=new Z(f.generatorConfig);if(f.generatorConfig.design?.typography)try{await Yt(f.generatorConfig.design.typography)}catch(C){f.generatorConfig?.log?.("warn","Failed to load some fonts from Google Fonts:",C)}t.applyStyles?.(v);let m=f.presetInfo||{id:p,name:p};if(t.currentPreset=m,t.compiled=rn({...u,preset:f.generatorConfig.preset,design:f.generatorConfig.design,theme:f.generatorConfig.theme||u.theme}),t.configEditorMetadata=je(f.generatorConfig.design),t.configFormSchema=be(f.generatorConfig.design),c?.persist!==!1&&typeof window<"u"){let C="pure-ds-config";try{let T=localStorage.getItem(C),I=T?JSON.parse(T):null,z={...I&&typeof I=="object"?I:{},preset:m.id||p,design:gt(f.generatorConfig.design||{})};localStorage.setItem(C,JSON.stringify(z))}catch(T){f.generatorConfig?.log?.("warn","Failed to store preset:",T)}}return!0},t.preloadCritical=function(p,c={}){if(typeof window>"u"||!document.head||!p)return;let{theme:u,layers:y=["tokens"]}=c;try{let g=u||"light";(u==="system"||!u)&&(g=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),document.documentElement.setAttribute("data-theme",g);let x=p.design?{...p,theme:g}:{design:p,theme:g},b=new Z(x),f=y.map(h=>{try{return b.css?.[h]||""}catch{return""}}).filter(h=>h.trim()).join(`
|
|
3947
|
+
`);if(f){let h=document.head.querySelector("style[data-pds-preload]");h&&h.remove();let v=document.createElement("style");v.setAttribute("data-pds-preload",""),v.textContent=f,document.head.insertBefore(v,document.head.firstChild)}}catch(g){t.log("warn","PDS preload failed:",g)}},en=!0}async function pa(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=la(e),typeof i=="string"&&i.trim()){let y=e?.design&&typeof e.design=="object"?e.design:{},g=y?.icons&&typeof y.icons=="object"?y.icons:{};e={...e,design:{...y,icons:{...g,externalPath:i}}}}if(await da(t,{applyResolvedTheme:o,setupSystemListenerIfNeeded:a,emitConfigChanged:n}),at(t),typeof document<"u"&&document.adoptedStyleSheets){let y=`
|
|
3728
3948
|
html { opacity: 0; }
|
|
3729
3949
|
html.pds-ready { opacity: 1; transition: opacity 0.3s ease-in; }
|
|
3730
|
-
`;try{if(!document.adoptedStyleSheets.some(
|
|
3731
|
-
`);if(L){let M=document.head.querySelector("style[data-pds-critical]");M&&M.remove();let N=document.createElement("style");N.setAttribute("data-pds-critical",""),N.textContent=L;let z=document.head.querySelector('meta[charset], meta[name="viewport"]');z?z.parentNode.insertBefore(N,z.nextSibling):document.head.insertBefore(N,document.head.firstChild)}}catch(L){k?.log?.("warn","Failed to preload critical styles:",L)}e.registry.setLiveMode(),m.presetInfo?.name?k?.log?.("log",`PDS live with preset "${m.presetInfo.name}"`):k?.log?.("log","PDS live with custom config"),s&&(e.applyStyles?.(X.instance),typeof window<"u"&&setTimeout(()=>{let L=document.head.querySelector("style[data-pds-critical]");L&&L.remove();let M=document.head.querySelector("style[data-pds-preload]");M&&M.remove();let N=document.getElementById("pds-runtime-stylesheet");N&&N.remove()},100));let $=ze(t,{resolvePublicAssetURL:ke}),A;u&&u.baseURL?A=Se($e(u.baseURL,{preferModule:!1})):A=`${$}components/`;let T=null,F=[];try{let L=await st({autoDefineBaseURL:A,autoDefinePreload:u&&Array.isArray(u.predefine)&&u.predefine||[],autoDefineMapper:u&&typeof u.mapper=="function"&&u.mapper||null,enhancers:b,autoDefineOverrides:u||null,autoDefinePreferModule:!(u&&u.baseURL)},{baseEnhancers:rt});T=L.autoDefiner,F=L.mergedEnhancers||[]}catch(L){k?.log?.("error","\u274C Failed to initialize AutoDefiner/Enhancers:",L)}let I=v?.options||k;if(e.compiled=en({mode:"live",...I,theme:g,enhancers:F}),e.configEditorMetadata=je(m.generatorConfig.design),e.configFormSchema=be(m.generatorConfig.design),typeof n=="function"&&n({mode:"live",source:"live:config-applied",preset:m.generatorConfig.preset}),typeof document<"u")try{t?.liveEdit?setTimeout(()=>{aa()},0):oa()}catch(L){k?.log?.("warn","Live editor toggle failed to start:",L)}return r({mode:"live",generator:v,config:I,theme:g,autoDefiner:T}),{generator:v,config:I,theme:g,autoDefiner:T}}catch(g){throw e.dispatchEvent(new CustomEvent("pds:error",{detail:{error:g}})),g}}function pa(e){let t=Number(e);return Number.isFinite(t)?Math.max(0,Math.min(1,t)):.5}function ua(e){return Array.isArray(e)?e.map(t=>t?{severity:String(t.severity||"info").toLowerCase(),message:String(t.message||""),path:t.path?String(t.path):""}:null).filter(t=>t&&t.message):[]}function W(e={}){let t=String(e.source||"unknown"),r=String(e.type||"generic"),n=pa(e.confidence),o=ua(e.issues),a=e.designPatch&&typeof e.designPatch=="object"?e.designPatch:{},i=e.template&&typeof e.template=="object"?e.template:null;return{source:t,type:r,confidence:n,issues:o,designPatch:a,template:i,meta:e.meta&&typeof e.meta=="object"?e.meta:{}}}function ga(e){return!!(e&&typeof e=="object"&&"source"in e&&"type"in e&&"confidence"in e&&"issues"in e&&"designPatch"in e)}var ma="../templates/templates.json",nn="/assets/pds/templates/templates.json",fa=["public","assets","pds","templates","templates.json"],ha=["..","..","..","public","assets","pds","templates","templates.json"],gt=null;function on(){return!!(typeof process<"u"&&process?.versions?.node)}function ba(e={}){return{id:String(e.id||"").trim(),name:String(e.name||e.id||"Template").trim(),description:String(e.description||"").trim(),icon:String(e.icon||"layout").trim(),file:String(e.file||"").trim(),tags:Array.isArray(e.tags)?e.tags.map(t=>String(t)):[]}}function mt(e={},t={}){let n=(Array.isArray(e)?e:Array.isArray(e?.templates)?e.templates:[]).map(ba).filter(o=>o.id&&o.file);return{version:e?.version||"1",templates:n,__catalogURL:t.catalogURL||null,__catalogFilePath:t.catalogFilePath||null}}async function ya(e={}){let r=[e.catalogURL||globalThis?.PDS?.currentConfig?.templateCatalogURL,ma,nn].filter(Boolean);for(let n of r)try{let o=new URL(n,import.meta.url).href,a=await fetch(o,{credentials:"same-origin"});if(!a.ok)continue;let i=await a.json();return mt(i,{catalogURL:o})}catch{}return mt({templates:[]})}async function va(e={}){let t="node:fs/promises",r="node:path",n="node:url",[{readFile:o},a,{fileURLToPath:i}]=await Promise.all([import(t),import(r),import(n)]),s=[];e.catalogPath&&s.push(a.resolve(e.catalogPath)),s.push(a.resolve(process.cwd(),...fa));let p=a.dirname(i(import.meta.url));s.push(a.resolve(p,...ha));for(let c of s)try{let d=await o(c,"utf8"),l=JSON.parse(d);return mt(l,{catalogFilePath:c})}catch{}return mt({templates:[]})}async function xa(e,t){if(!e?.file)return"";if(!on()){let p=t?.__catalogURL||nn,c=new URL(e.file,p).href,d=await fetch(c,{credentials:"same-origin"});if(!d.ok)throw new Error(`Template file not found: ${e.file}`);return(await d.text()).trim()}let r="node:fs/promises",n="node:path",[{readFile:o},a]=await Promise.all([import(r),import(n)]),i=t?.__catalogFilePath?a.dirname(t.__catalogFilePath):a.resolve(process.cwd(),"public","assets","pds","templates"),s=a.resolve(i,e.file);return(await o(s,"utf8")).trim()}async function ft(e={}){return gt&&!e.forceReload||(gt=on()?await va(e):await ya(e)),gt}async function an(e={}){return(await ft(e)).templates.map(({id:r,name:n,description:o,icon:a,file:i,tags:s})=>({id:r,name:n,description:o,icon:a,file:i,tags:s}))}async function wa(e,t={}){let r=await ft(t),n=r.templates.find(a=>a.id===e)||null;if(!n)return null;let o=await xa(n,r);return{...n,html:o}}async function sn(e,t={}){let r=await wa(e,t);return r?W({source:"template",type:"template",confidence:1,template:{id:r.id,name:r.name,html:r.html,icon:r.icon,description:r.description}}):W({source:"template",type:"template",confidence:0,issues:[{severity:"error",message:`Unknown template: ${e}`}]})}var ln={version:"tw2pds-layout-v4",summary:"Deterministic Tailwind\u2192PDS conversion rules focused on layout intent, semantic primitive mapping, and richer import-* fallback coverage.",governance:[{id:"layout.utilities.grid",controls:["grid","grid-cols-*","grid-auto-*"],note:"When false, grid mappings are skipped."},{id:"layout.utilities.flex",controls:["flex","flex-*","items-*","justify-*","grow"],note:"When false, flex mappings are skipped."},{id:"layout.utilities.spacing",controls:["gap-*","stack-*"],note:"When false, spacing mappings are skipped."},{id:"layout.utilities.container",controls:["container","max-w-*"],note:"When false, container mappings are skipped."}],nonPdsClassPatterns:["^group(?:[/:].*)?$","^layout-container$"],neverFallbackTags:["table","thead","tbody","tfoot","tr","th","td","caption","colgroup","col"],directMappings:[{id:"layout.flex.base",tw:"flex",pds:["flex"],gate:"flex"},{id:"layout.flex.inline",tw:"inline-flex",pds:["flex"],gate:"flex"},{id:"layout.flex.row",tw:"flex-row",pds:["flex-row"],gate:"flex"},{id:"layout.flex.col",tw:"flex-col",pds:["flex-col"],gate:"flex"},{id:"layout.flex.wrap",tw:"flex-wrap",pds:["flex-wrap"],gate:"flex"},{id:"layout.flex.grow",tw:"grow",pds:["grow"],gate:"flex"},{id:"layout.flex.grow.tw",tw:"flex-grow",pds:["grow"],gate:"flex"},{id:"layout.flex.grow1",tw:"flex-1",pds:["grow"],gate:"flex"},{id:"layout.items.start",tw:"items-start",pds:["items-start"],gate:"flex"},{id:"layout.items.center",tw:"items-center",pds:["items-center"],gate:"flex"},{id:"layout.items.end",tw:"items-end",pds:["items-end"],gate:"flex"},{id:"layout.items.stretch",tw:"items-stretch",pds:["items-stretch"],gate:"flex"},{id:"layout.items.baseline",tw:"items-baseline",pds:["items-baseline"],gate:"flex"},{id:"layout.justify.start",tw:"justify-start",pds:["justify-start"],gate:"flex"},{id:"layout.justify.center",tw:"justify-center",pds:["justify-center"],gate:"flex"},{id:"layout.justify.end",tw:"justify-end",pds:["justify-end"],gate:"flex"},{id:"layout.justify.between",tw:"justify-between",pds:["justify-between"],gate:"flex"},{id:"layout.justify.around",tw:"justify-around",pds:["justify-around"],gate:"flex"},{id:"layout.justify.evenly",tw:"justify-evenly",pds:["justify-evenly"],gate:"flex"},{id:"layout.grid.base",tw:"grid",pds:["grid"],gate:"grid"},{id:"layout.grid.cols.1",tw:"grid-cols-1",pds:["grid-cols-1"],gate:"grid"},{id:"layout.grid.cols.2",tw:"grid-cols-2",pds:["grid-cols-2"],gate:"grid"},{id:"layout.grid.cols.3",tw:"grid-cols-3",pds:["grid-cols-3"],gate:"grid"},{id:"layout.grid.cols.4",tw:"grid-cols-4",pds:["grid-cols-4"],gate:"grid"},{id:"layout.grid.cols.6",tw:"grid-cols-6",pds:["grid-cols-6"],gate:"grid"},{id:"layout.container",tw:"container",pds:["container"],gate:"container"},{id:"intent.surface.shadow",tw:"shadow",pds:["surface-elevated"]},{id:"intent.surface.shadow-md",tw:"shadow-md",pds:["surface-elevated"]},{id:"intent.surface.shadow-lg",tw:"shadow-lg",pds:["surface-elevated"]},{id:"intent.surface.base",tw:"bg-white",pds:["surface-base"]},{id:"typography.align.center",tw:"text-center",pds:["text-center"]},{id:"typography.align.left",tw:"text-left",pds:["text-left"]},{id:"typography.align.right",tw:"text-right",pds:["text-right"]},{id:"typography.text.muted.gray500",tw:"text-gray-500",pds:["text-muted"]},{id:"typography.text.muted.slate500",tw:"text-slate-500",pds:["text-muted"]}],ignoredPatterns:[{id:"style.color",pattern:"^(?:text|from|to|via|decoration|accent|caret)-|^bg-(?!cover$|center$|no-repeat$)",reason:"Visual style token skipped in favor of semantic PDS styling."},{id:"style.radius-border-shadow",pattern:"^(?:rounded|ring|border|shadow|outline)-?",reason:"Surface/shape inferred at primitive level."},{id:"style.typography",pattern:"^(?:font|leading|tracking|uppercase|lowercase|capitalize)-?",reason:"Typography atomic utilities are skipped."},{id:"style.effects",pattern:"^(?:opacity|blur|backdrop|drop-shadow|mix-blend|filter)-",reason:"Visual effects skipped unless mapped to a PDS utility."},{id:"style.transitions",pattern:"^(?:transition|duration|ease|delay|animate)-",reason:"Motion is system-defined in PDS."},{id:"style.spacing.atomic",pattern:"^(?:p|px|py|pt|pb|pl|pr|m|mx|my|mt|mb|ml|mr)-",reason:"Atomic spacing skipped; structural spacing intent is mapped."},{id:"style.positioning.atomic",pattern:"^(?:absolute|relative|fixed|sticky|inset(?:-[xy])?|top|right|bottom|left|z|translate(?:-[xy])?|-translate-[xy])(?:-|$)",reason:"Atomic positioning/offset utilities are skipped so PDS primitives and layout utilities control placement."}],intentRules:[{id:"intent.layout.responsive-grid-to-auto",summary:"Collapse responsive grid-cols patterns (including base+md two-step patterns) to best-fit grid-auto-*"},{id:"intent.layout.mobile-stack",summary:"Map flex-col + md/lg:flex-row to mobile-stack"},{id:"intent.component.card",summary:"Infer card/surface classes from rounded+shadow+surface signals"},{id:"intent.component.card.normalize",summary:"Detect Tailwind card utility clusters and normalize them to PDS card and surface variants."},{id:"intent.component.button",summary:"Infer btn-primary / btn-outline / icon-only from CTA patterns"},{id:"intent.component.button.normalize",summary:"Prevents import-* style classes on button-like elements and applies PDS button variants/sizes."},{id:"intent.component.button.layout-grow",summary:"Preserve CTA row width intent on button-like elements by mapping w-full/flex-1 to grow."},{id:"intent.icon.color-preserve",summary:"Preserve icon color intent by mapping Tailwind text color utilities on icon-like elements to tokenized import-* classes."},{id:"intent.component.badge.normalize",summary:"Detects Tailwind badge/pill utility clusters and normalizes them to PDS badge primitives/variants."},{id:"intent.typography.heading-semantic",summary:"Removes Tailwind heading typography/color utilities so heading semantics and PDS defaults control typography."},{id:"intent.surface.footer-inverse",summary:"Use surface-inverse for footers with explicit background intent"},{id:"intent.typography.link-treatment",summary:"Apply minimal link treatment for hover/transition-tailwind anchors"},{id:"intent.typography.link-active-preserve",summary:"Preserve anchor text color intent (including active menu states) by mapping Tailwind text utilities to tokenized import-* classes."},{id:"intent.typography.metric-paragraph-to-div",summary:"Normalize metric display lines from paragraph tags to div tags to avoid default paragraph margins in compact stat layouts."},{id:"intent.typography.metric-pair-no-stack",summary:"When a compact metric container has two consecutive typography lines, remove stack-sm so spacing follows Tailwind preflight no-margin assumptions."},{id:"intent.typography.semantic-heading-from-scale",summary:"Map large bold typography scales (text-2xl/text-3xl/text-4xl) to semantic heading tags when possible."},{id:"intent.typography.bold-to-strong",summary:"Prefer semantic strong tags for bold inline text intent instead of utility-only font-weight classes."},{id:"intent.preflight.tailwind-runtime-detected",summary:"Detect Tailwind runtime CSS injection and translate key preflight intent"},{id:"intent.preflight.list-reset",summary:"Preserve Tailwind list-reset preflight behavior via scoped fallback class"},{id:"intent.preflight.anchor-reset",summary:"Preserve Tailwind anchor reset preflight behavior via scoped fallback class"},{id:"table.strict-tags.no-classes",summary:"Never emit classes for semantic table tags (table/thead/tbody/tfoot/tr/th/td/caption/colgroup/col)"},{id:"intent.form.nested-label",summary:"Convert sibling label+control pairs into nested labels"},{id:"fallback.import-style",summary:"Generate import-* classes + local style block for unmapped utility styles"}],gapScaleMap:{"gap-0":"gap-0","gap-1":"gap-xs","gap-2":"gap-sm","gap-3":"gap-sm","gap-4":"gap-md","gap-5":"gap-md","gap-6":"gap-lg","gap-7":"gap-lg","gap-8":"gap-xl","gap-10":"gap-xl","gap-12":"gap-xl"},maxWidthMap:{"max-w-xs":"max-w-sm","max-w-sm":"max-w-sm","max-w-md":"max-w-md","max-w-lg":"max-w-lg","max-w-xl":"max-w-xl","max-w-2xl":"max-w-xl","max-w-3xl":"max-w-xl","max-w-4xl":"max-w-xl","max-w-5xl":"max-w-xl","max-w-6xl":"max-w-xl","max-w-7xl":"max-w-xl"},tailwindSizeScale:{"0":"var(--spacing-0)","0.5":"0.125rem","1":"var(--spacing-1)","1.5":"0.375rem","2":"var(--spacing-2)","2.5":"0.625rem","3":"var(--spacing-3)","3.5":"0.875rem","4":"var(--spacing-4)","5":"var(--spacing-5)","6":"var(--spacing-6)","7":"var(--spacing-7)","8":"var(--spacing-8)","9":"var(--spacing-9)","10":"var(--spacing-10)","11":"var(--spacing-11)","12":"var(--spacing-12)","14":"3.5rem","16":"4rem","20":"5rem","24":"6rem","28":"7rem","32":"8rem","36":"9rem","40":"10rem","48":"12rem"},tailwindShadeScale:["50","100","200","300","400","500","600","700","800","900"],defaultTailwindShade:"500",importStyleRules:{"mx-auto":"margin-left:auto;margin-right:auto","ml-auto":"margin-left:auto","mr-auto":"margin-right:auto","w-full":"width:100%","w-auto":"width:auto","h-full":"height:100%","h-48":"height:12rem","h-2.5":"height:0.625rem","h-10":"height:var(--spacing-10)","h-2":"height:var(--spacing-2)","w-2":"width:var(--spacing-2)","size-8":"width:var(--spacing-8);height:var(--spacing-8)","size-10":"width:var(--spacing-10);height:var(--spacing-10)","size-full":"width:100%;height:100%","min-h-screen":"min-height:100vh","overflow-hidden":"overflow:hidden","overflow-x-hidden":"overflow-x:hidden","overflow-x-auto":"overflow-x:auto","whitespace-nowrap":"white-space:nowrap",hidden:"display:none",block:"display:block",truncate:"overflow:hidden;text-overflow:ellipsis;white-space:nowrap","justify-items-center":"justify-items:center","justify-items-start":"justify-items:start","justify-items-end":"justify-items:end","justify-items-stretch":"justify-items:stretch","grid-flow-col":"grid-auto-flow:column","aspect-square":"aspect-ratio:1 / 1","bg-center":"background-position:center","bg-cover":"background-size:cover","bg-no-repeat":"background-repeat:no-repeat","transition-colors":"transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:150ms"},importStyleDynamicRules:[{id:"fallback.import-style.gap-scale",pattern:"^gap-(\\d+)$",summary:"Converts gap scale utilities (including responsive variants like md:gap-6) to generated import-* fallback classes."},{id:"fallback.import-style.min-width-arbitrary",pattern:"^min-w-\\[[^\\]]+\\]$",summary:"Converts arbitrary min-width utilities (e.g. min-w-[600px]) to generated import-* fallback classes."},{id:"fallback.import-style.max-width-arbitrary",pattern:"^max-w-\\[[^\\]]+\\]$",summary:"Converts arbitrary max-width utilities (e.g. max-w-[480px]) to generated import-* fallback classes."},{id:"fallback.import-style.min-height-arbitrary",pattern:"^min-h-\\[[^\\]]+\\]$",summary:"Converts arbitrary min-height utilities (e.g. min-h-[180px]) to generated import-* fallback classes."},{id:"fallback.import-style.grid-rows-arbitrary",pattern:"^grid-rows-\\[[^\\]]+\\]$",summary:"Converts arbitrary grid template row utilities (e.g. grid-rows-[1fr_auto]) to generated import-* fallback classes."},{id:"fallback.import-style.size-scale",pattern:"^size-(\\[[^\\]]+\\]|[0-9.]+)$",summary:"Converts size scale/arbitrary utilities into width+height fallback declarations."},{id:"fallback.import-style.width-height-scale",pattern:"^[wh]-(\\[[^\\]]+\\]|[0-9.]+)$",summary:"Converts width/height scale and arbitrary utilities to import-* classes."},{id:"fallback.import-style.spacing",pattern:"^-?(?:p|px|py|pt|pb|pl|pr|m|mx|my|mt|mb|ml|mr)-(.+)$",summary:"Converts spacing utilities to directional padding/margin fallback declarations, including responsive variants."},{id:"fallback.import-style.text-size",pattern:"^text-(xs|sm|base|lg|xl|2xl|3xl|4xl)$",summary:"Converts common text size utilities to import-* font-size declarations."},{id:"fallback.import-style.font-weight",pattern:"^font-(normal|medium|semibold|bold|extrabold|black)$",summary:"Converts common font weight utilities to import-* font-weight declarations."},{id:"fallback.import-style.leading-tracking",pattern:"^(leading|tracking)-(none|tight|snug|normal|relaxed|loose|tighter|wide|wider|widest)$",summary:"Converts line-height and letter-spacing utilities to import-* declarations for typography fidelity."},{id:"fallback.import-style.bg-tokenized",pattern:"^bg-([a-z]+)-(\\d{2,3})$",summary:"Safeguards Tailwind background color utilities by mapping families like blue/purple/green/red to PDS semantic tokens."},{id:"fallback.import-style.bg-semantic",pattern:"^bg-(primary|secondary|accent)$",summary:"Safeguards semantic background utilities by mapping bg-primary/bg-secondary/bg-accent to PDS color tokens."},{id:"fallback.import-style.text-tokenized",pattern:"^text-([a-z]+)-(\\d{2,3})$",summary:"Safeguards Tailwind text color utilities by mapping common families to PDS semantic tokens."},{id:"fallback.import-style.rounded",pattern:"^rounded(?:-[trbl]{1,2})?(?:-(none|xs|sm|md|lg|xl|2xl|3xl|full))?$",summary:"Safeguards rounded utilities (including rounded-t-sm) by mapping to PDS radius tokens."},{id:"fallback.import-style.overlay-alpha",pattern:"^bg-black\\/(\\d{1,3})$",summary:"Converts alpha black overlay classes (e.g. bg-black/50) to tokenized color-mix background overlays."},{id:"fallback.import-style.text-inverse",pattern:"^text-white$",summary:"Preserves white foreground intent for text-on-image use cases using inverse-compatible tokens."},{id:"fallback.import-style.bg-arbitrary",pattern:"^bg-\\[[^\\]]+\\]$",summary:"Converts arbitrary background colors to import-* fallback classes when values are CSS-safe."},{id:"fallback.import-style.text-arbitrary",pattern:"^text-\\[[^\\]]+\\]$",summary:"Converts arbitrary text colors to import-* fallback classes when values are CSS-safe."}]};Fe();nr();typeof h.initializing!="boolean"&&(h.initializing=!1);"currentPreset"in h||(h.currentPreset=null);typeof h.debug!="boolean"&&(h.debug=!1);"currentConfig"in h||(h.currentConfig=null);"compiled"in h||(h.compiled=null);typeof h.logHandler!="function"&&(h.logHandler=null);"mode"in h||(h.mode=null);var ht=null,bt=null,yt=null,vt=null,xt=null,wt=null,dn="__pdsLocalizationRuntime";function Ce(){if(wt)return wt;let e=h?.[dn];return e&&typeof e=="object"?(wt=e,e):null}function Sa(e){let t=e&&typeof e=="object"?e:null;wt=t,h[dn]=t}Fr({getLogger:()=>typeof h.logHandler=="function"?h.logHandler:null,getContext:()=>{let e=h?.mode||h?.compiled?.mode||(h?.registry?.isLive?"live":"static"),t=(h?.debug||h?.currentConfig?.debug||h?.currentConfig?.design?.debug||h?.compiled?.debug||h?.compiled?.design?.debug||!1)===!0;return{mode:e,debug:t,thisArg:h}}});h.log=(e="log",t,...r)=>{Qe(e,t,...r)};var U={locale:"en",messages:{},hasProvider:!1},kt=new Set;function pn(e){return!!e&&typeof e!="string"&&typeof e=="object"&&"strTag"in e}function un(e=[]){let t="";for(let r=0;r<=e.length-1;r+=1)t+=e[r],r<e.length-1&&(t+=`{${r}}`);return t}function $a(e,t){return String(e).replace(/\{(\d+)\}/g,(r,n)=>t(Number(n)))}function za(e){if(!e||typeof e!="object")return{};let t={};for(let[r,n]of Object.entries(e)){if(typeof n=="string"){t[r]=n;continue}n&&typeof n=="object"&&typeof n.content=="string"&&(t[r]=n.content)}return t}function La(e,...t){return{strTag:!0,strings:Array.from(e||[]),values:t,raw:Array.from(e?.raw||[])}}function Ca(e){if(!e)return"";if(pn(e)){let r=un(e.strings||[]),n=U.messages[r]||r;return $a(n,o=>e.values?.[o])}let t=String(e);return U.messages[t]||t}function Ma(e){if(!e)return;let t=pn(e)?un(e.strings||[]):String(e);typeof t=="string"&&t.length>0&&kt.add(t)}function gn(e){if(!e||typeof e.msg!="function"||kt.size===0)return;let t=Array.from(kt);kt.clear();for(let r of t)try{e.msg(r)}catch{}}async function qe(){let e=Ce();return e||(xt||(xt=import(Ge("pds-localization.js")).then(r=>{if(typeof r?.msg!="function"||typeof r?.str!="function"||typeof r?.configureLocalization!="function"||typeof r?.loadLocale!="function"||typeof r?.setLocale!="function"||typeof r?.getLocalizationState!="function")throw new Error("Failed to load localization runtime exports");return Sa(r),gn(r),r}).catch(r=>{throw xt=null,r})),xt)}var mn=(e,t={})=>{let r=Ce();return typeof r?.msg=="function"?r.msg(e,t):(Ma(e),Ca(e,t))},fn=(e,...t)=>{let r=Ce();return typeof r?.str=="function"?r.str(e,...t):La(e,...t)},St=(e=null)=>{let t=Ce();if(typeof t?.configureLocalization=="function")return t.configureLocalization(e);if(!e||typeof e!="object")return U.locale="en",U.messages={},U.hasProvider=!1,{locale:U.locale,messages:{...U.messages},hasProvider:U.hasProvider};typeof e.locale=="string"&&e.locale.trim()&&(U.locale=e.locale.trim()),Object.prototype.hasOwnProperty.call(e,"messages")&&(U.messages=za(e.messages));let r=!!(e.provider||e.translate||e.loadLocale||e.setLocale);return U.hasProvider=r,r&&qe().then(n=>{n.configureLocalization(e),gn(n)}).catch(()=>{}),{locale:U.locale,messages:{...U.messages},hasProvider:U.hasProvider}},hn=async e=>(await qe()).loadLocale(e),bn=async(e,t={})=>(await qe()).setLocale(e,t),yn=()=>{let e=Ce();return typeof e?.getLocalizationState=="function"?e.getLocalizationState():{locale:U.locale,messages:{...U.messages},hasProvider:U.hasProvider}},vn=(e={})=>{let t=Ce();if(typeof t?.createJSONLocalization=="function")return t.createJSONLocalization(e);let r=typeof e?.locale=="string"&&e.locale.trim()?e.locale.trim().toLowerCase():"en",n=Array.isArray(e?.locales)?e.locales.map(p=>String(p||"").trim().toLowerCase()).filter(Boolean):[],o=Array.from(new Set([r,...n])),a=null,i=async()=>(a||(a=qe().then(p=>typeof p?.createJSONLocalization=="function"?p.createJSONLocalization(e):null).catch(()=>null)),a),s=async(p="loadLocale")=>{let c=await i();if(!c||typeof c!="object")return null;let d=c.provider;if(!d||typeof d!="object")return null;let l=d[p];return typeof l=="function"?l:p==="setLocale"&&typeof d.loadLocale=="function"?d.loadLocale:null};return{locale:r,locales:[...o],provider:{locales:[...o],async loadLocale(p={}){let c=await s("loadLocale");return typeof c!="function"?{}:c(p)},async setLocale(p={}){let c=await s("setLocale");return typeof c!="function"?{}:c(p)}}}};function Ge(e,t){return t&&typeof t=="string"?t:`${ze(h.currentConfig||{},{resolvePublicAssetURL:ke})}core/${e}`}async function Ea(){return Array.isArray(h.defaultEnhancers)&&h.defaultEnhancers.length>0?h.defaultEnhancers:(vt||(vt=import(Ge("pds-enhancers.js",h.currentConfig?.enhancersURL)).then(t=>{let r=Array.isArray(t?.defaultPDSEnhancers)?t.defaultPDSEnhancers:[];return h.defaultEnhancers=r,r}).catch(t=>{throw vt=null,t})),vt)}async function Ta(){return typeof h.ask=="function"&&h.ask!==xn?h.ask:(bt||(bt=import(Ge("pds-ask.js",h.currentConfig?.askURL)).then(t=>{let r=t?.ask;if(typeof r!="function")throw new Error("Failed to load ask helper");return h.ask=r,r}).catch(t=>{throw bt=null,t})),bt)}async function Ve(){return typeof h.toast=="function"&&h.toast!==Me?h.toast:(yt||(yt=import(Ge("pds-toast.js",h.currentConfig?.toastURL)).then(t=>{let r=t?.toast;if(typeof r!="function")throw new Error("Failed to load toast helper");return h.toast=r,r}).catch(t=>{throw yt=null,t})),yt)}async function xn(...e){return(await Ta())(...e)}async function Me(...e){return(await Ve())(...e)}Me.success=async(...e)=>(await Ve()).success(...e);Me.error=async(...e)=>(await Ve()).error(...e);Me.warning=async(...e)=>(await Ve()).warning(...e);Me.info=async(...e)=>(await Ve()).info(...e);var cn=function(e="log",t,...r){h.log(e,t,...r)};function lr(e){if(e==null)return e;if(typeof e=="function")return;if(typeof e!="object")return e;if(Array.isArray(e))return e.map(r=>lr(r)).filter(r=>r!==void 0);let t={};for(let[r,n]of Object.entries(e)){let o=lr(n);o!==void 0&&(t[r]=o)}return t}function wn(e,t=new WeakSet){if(!e||typeof e!="object"||t.has(e))return e;t.add(e),Object.freeze(e);for(let r of Object.keys(e))wn(e[r],t);return e}function cr(e){return e==null||typeof e!="object"?e:wn(structuredClone(lr(e)))}async function Aa(e,t={}){if(t?.runtimeConfig===!1||typeof fetch!="function")return null;let r=t?.runtimeConfigURL||`${e}pds-runtime-config.json`;try{let n=await fetch(r,{cache:"no-store"});return n.ok?await n.json():null}catch{return null}}h.registry=we;h.enums=w;h.adoptLayers=tt;h.adoptPrimitives=et;h.parse=rr;h.createStylesheet=Hr;h.isLiveMode=()=>we.isLive;h.ask=xn;h.toast=Me;h.common=ct;h.msg=mn;h.str=fn;h.configureLocalization=St;h.loadLocale=hn;h.setLocale=bn;h.getLocalizationState=yn;h.createJSONLocalization=vn;h.i18n={msg:mn,str:fn,configure:St,loadLocale:hn,setLocale:bn,getState:yn,createJSONLocalization:vn};h.AutoComplete=null;h.loadAutoComplete=async()=>{if(h.AutoComplete&&typeof h.AutoComplete.connect=="function")return h.AutoComplete;let e=Ge("pds-autocomplete.js",h.currentConfig?.autoCompleteURL);return ht||(ht=import(e).then(t=>{let r=t?.AutoComplete||t?.default?.AutoComplete||t?.default||null;if(!r)throw new Error("AutoComplete export not found in module");return h.AutoComplete=r,r}).catch(t=>{throw ht=null,t})),ht};function kn(e){let t=typeof CustomEvent=="function";try{let r=t?new CustomEvent("pds:ready",{detail:e}):new Event("pds:ready");h.dispatchEvent(r)}catch{}if(typeof document<"u")if(t){let r={detail:e,bubbles:!0,composed:!0};try{document.dispatchEvent(new CustomEvent("pds:ready",r))}catch{}try{document.dispatchEvent(new CustomEvent("pds-ready",r))}catch{}}else{try{document.dispatchEvent(new Event("pds:ready"))}catch{}try{document.dispatchEvent(new Event("pds-ready"))}catch{}}}function Sn(e={}){let t=typeof CustomEvent=="function",r={at:Date.now(),...e};try{let n=t?new CustomEvent("pds:config-changed",{detail:r}):new Event("pds:config-changed");h.dispatchEvent(n)}catch{}if(typeof document<"u")if(t){let n={detail:r,bubbles:!0,composed:!0};try{document.dispatchEvent(new CustomEvent("pds:config-changed",n))}catch{}}else try{document.dispatchEvent(new Event("pds:config-changed"))}catch{}}var sr="pure-ds-theme",me=null,Ue=null;function dr(e){try{if(typeof document>"u")return;let t="light";e?e==="system"?t=typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":t=e:t=typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",document.documentElement.setAttribute("data-theme",t)}catch{}}function pr(e){try{if(me&&Ue){try{typeof me.removeEventListener=="function"?me.removeEventListener("change",Ue):typeof me.removeListener=="function"&&me.removeListener(Ue)}catch{}me=null,Ue=null}if(e==="system"&&typeof window<"u"&&window.matchMedia){let t=window.matchMedia("(prefers-color-scheme: dark)"),r=n=>{let o=n?.matches===void 0?t.matches:n.matches;try{let a=o?"dark":"light";document.documentElement.setAttribute("data-theme",a),h.dispatchEvent(new CustomEvent("pds:theme:changed",{detail:{theme:a,source:"system"}}))}catch{}};me=t,Ue=r,typeof t.addEventListener=="function"?t.addEventListener("change",r):typeof t.addListener=="function"&&t.addListener(r)}}catch{}}var Ra=Object.getOwnPropertyDescriptor(h,"theme");Ra||Object.defineProperty(h,"theme",{get(){try{return typeof window>"u"?null:localStorage.getItem(sr)||null}catch{return null}},set(e){try{if(typeof window>"u")return;let t=h.currentConfig?.design||null,r=Le(e);if(t&&!ge(t,r)){let n=t?.name||h.currentPreset?.name||h.currentConfig?.preset||"current preset";h.log("warn",`PDS theme "${r}" not supported by preset "${n}".`),h.dispatchEvent(new CustomEvent("pds:theme:blocked",{detail:{theme:e,resolvedTheme:r,preset:n}}));return}e==null?localStorage.removeItem(sr):localStorage.setItem(sr,e),dr(e),pr(e),h.dispatchEvent(new CustomEvent("pds:theme:changed",{detail:{theme:e,source:"api"}}))}catch{}}});h.defaultEnhancers=[];async function _a(e){h.initializing=!0;try{let t=e&&e.mode||"live",{mode:r,...n}=e||{};h.mode=t,h.logHandler=typeof n?.log=="function"?n.log:null,h.currentConfig=cr(n);let o=n&&typeof n.localization=="object"&&n.localization?n.localization:null;o?(await qe(),St(o)):St(null);let a;if(t==="static")a=await Fa(n);else{let{localization:s,...p}=n||{},c=ze(p,{resolvePublicAssetURL:ke}),d=p?.managerURL||p?.public?.managerURL||p?.manager?.url||new URL("core/pds-manager.js",c).href||new URL("./pds-manager.js",import.meta.url).href,{startLive:l}=await import(d);a=await l(h,p,{emitReady:kn,emitConfigChanged:Sn,applyResolvedTheme:dr,setupSystemListenerIfNeeded:pr})}h.compiled=cr(a?.config||null);let i=h?.compiled?.design?.icons?.externalPath||"/assets/img/icons/";return h.log("info",`startup ready; external icon path: ${i}`),a}finally{h.initializing=!1}}h.start=_a;async function Fa(e){if(!e||typeof e!="object")throw new Error("PDS.start({ mode: 'static', ... }) requires a valid configuration object");let t=e.applyGlobalStyles??!0,r=e.manageTheme??!0,n=e.themeStorageKey??"pure-ds-theme",o=e.staticPaths??{},a=ze(e,{resolvePublicAssetURL:ke}),i=e&&e.autoDefine||null,s;i&&i.baseURL?s=Se($e(i.baseURL,{preferModule:!1})):s=`${a}components/`;let p=i&&Array.isArray(i.predefine)&&i.predefine||[],c=i&&typeof i.mapper=="function"&&i.mapper||null;try{at(h);let{resolvedTheme:d}=it({manageTheme:r,themeStorageKey:n,applyResolvedTheme:dr,setupSystemListenerIfNeeded:pr}),l=await Aa(a,e),u=Array.isArray(e?.enhancers)?e.enhancers:e?.enhancers&&typeof e.enhancers=="object"?Object.values(e.enhancers):[],g=l?.config?{...l.config,...e,design:e?.design||l.config.design,preset:e?.preset||l.config.preset}:{...e},m={tokens:`${a}styles/pds-tokens.css.js`,primitives:`${a}styles/pds-primitives.css.js`,components:`${a}styles/pds-components.css.js`,utilities:`${a}styles/pds-utilities.css.js`,styles:`${a}styles/pds-styles.css.js`},b=l?.paths||{};if(o={...m,...b,...o},h.registry.setStaticMode(o),t&&typeof document<"u")try{let k=await h.registry.getStylesheet("styles");if(k){k._pds=!0;let v=(document.adoptedStyleSheets||[]).filter($=>$._pds!==!0);document.adoptedStyleSheets=[...v,k],Sn({mode:"static",source:"static:styles-applied"})}}catch(k){cn.call(h,"warn","Failed to apply static styles:",k)}let f=null,y=[];try{let k=await Ea(),v=await st({autoDefineBaseURL:s,autoDefinePreload:p,autoDefineMapper:c,enhancers:u,autoDefineOverrides:i||null,autoDefinePreferModule:!(i&&i.baseURL)},{baseEnhancers:k});f=v.autoDefiner,y=v.mergedEnhancers||[]}catch(k){cn.call(h,"error","\u274C Failed to initialize AutoDefiner/Enhancers (static):",k)}return h.compiled=cr({mode:"static",...g,theme:d,enhancers:y}),kn({mode:"static",config:g,theme:d,autoDefiner:f}),{config:g,theme:d,autoDefiner:f}}catch(d){throw h.dispatchEvent(new CustomEvent("pds:error",{detail:{error:d}})),d}}var Pa="src/js/pds-live-manager/tailwind-conversion-rules.json",Lt=["base","sm","md","lg","xl","2xl"];function Na(e={}){let t=Array.isArray(e.ignoredPatterns)?e.ignoredPatterns.map(n=>({...n,pattern:n?.pattern instanceof RegExp?n.pattern:new RegExp(String(n?.pattern||""))})):[],r=Array.isArray(e.nonPdsClassPatterns)?e.nonPdsClassPatterns.map(n=>n instanceof RegExp?n:new RegExp(String(n||""))):[];return{...e,ignoredPatterns:t,nonPdsClassPatterns:r}}var G=Na(ln),$n=G.version||"tw2pds-layout-v4",Ia=new Map(G.directMappings.map(e=>[e.tw,e])),ur=new Map(Object.entries(G.gapScaleMap||{})),zn=new Map(Object.entries(G.maxWidthMap||{})),ja=G.nonPdsClassPatterns||[],Oa=new Set(G.neverFallbackTags||[]),Ba={...G.importStyleRules||{}},Da=G.tailwindSizeScale||{},gr=Array.isArray(G.tailwindShadeScale)?G.tailwindShadeScale.map(e=>String(e)).filter(Boolean):["50","100","200","300","400","500","600","700","800","900"],Ln=gr.includes(String(G.defaultTailwindShade||""))?String(G.defaultTailwindShade):"500",zt=1.2,Wa=["container","grid","flex","gap","space","items","justify","content","place","self","col","row","w","h","min","max","p","m","rounded","border","ring","outline","shadow","bg","text","font","leading","tracking","uppercase","lowercase","capitalize","overflow","whitespace","truncate","object","aspect","opacity","blur","backdrop","transition","duration","ease","delay","animate","hidden","block","inline","absolute","relative","fixed","sticky","size"];function Cn(e="",t=""){if(!e||!t)return e;let r=new RegExp(`\\s${t}\\s*=\\s*("[^"]*"|'[^']*'|[^\\s>]+)`,"gi");return String(e).replace(r,"")}function Ha(e="",t=null){let r=String(e||""),n=0;return r=r.replace(/<label([^>]*?)\sfor\s*=\s*(["'])([^"']+)\2([^>]*)>([\s\S]*?)<\/label>\s*<(input)([^>]*?)\sid\s*=\s*(["'])([^"']+)\8([^>]*?)>/gi,(o,a,i,s,p,c,d,l,u,g,m)=>{if(s!==g)return o;let b=Cn(`${a||""}${p||""}`,"for"),f=`<${d}${l||""} id="${g}"${m||""}>`;return n+=1,`<label${b}>${c}${f}</label>`}),r=r.replace(/<label([^>]*?)\sfor\s*=\s*(["'])([^"']+)\2([^>]*)>([\s\S]*?)<\/label>\s*<(select|textarea)([^>]*?)\sid\s*=\s*(["'])([^"']+)\8([^>]*)>([\s\S]*?)<\/\6>/gi,(o,a,i,s,p,c,d,l,u,g,m,b)=>{if(s!==g)return o;let f=Cn(`${a||""}${p||""}`,"for"),y=`<${d}${l||""} id="${g}"${m||""}>${b}</${d}>`;return n+=1,`<label${f}>${c}${y}</label>`}),t&&n>0&&(t.labelNestingCount+=n,j(t,`Nested ${n} label/control pairs.`),R(t,"intent.form.nested-label")),r}function Ua(e="",t="base"){let r=String(e||"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"rule";return`import-${t&&t!=="base"?`${t}-`:""}${r}`}function fe(e,t,r,n="base",o=""){if(!e||!t||!r)return"";let a=Ua(t,n);if(o){let i=`${n}|${o}`;e.importPseudoStyles.has(i)||e.importPseudoStyles.set(i,new Map),e.importPseudoStyles.get(i).set(a,r)}else n==="base"?e.importBaseStyles.set(a,r):(e.importResponsiveStyles.has(n)||e.importResponsiveStyles.set(n,new Map),e.importResponsiveStyles.get(n).set(a,r));return e.importedStyleCount+=1,a}function Te(e=""){return String(e||"").trim().replace(/_/g," ")}function Ae(e=""){return!e||/[;{}]/.test(e)?!1:/^[-#(),.%/\sa-zA-Z0-9]+$/.test(e)}function Ke(e=""){let t=String(e||"").trim();if(!t)return null;let r=t.match(/^\[([^\]]+)\]$/);if(r){let n=Te(r[1]);return Ae(n)?n:null}return Da[t]||null}function qa(e=""){let t=Number(e);if(!Number.isFinite(t))return Ln;let r=String(t);return gr.includes(r)?r:gr.reduce((n,o)=>{let a=Math.abs(Number(n)-t);return Math.abs(Number(o)-t)<a?o:n},Ln)}function Ye(e="",t="500"){let r=String(e||"").toLowerCase(),n=qa(t);return["blue","sky","indigo","cyan"].includes(r)?`var(--color-primary-${n})`:["purple","violet","fuchsia"].includes(r)?`var(--color-accent-${n})`:["green","emerald","lime","teal"].includes(r)?`var(--color-success-${n})`:["yellow","amber","warning"].includes(r)?`var(--color-warning-${n})`:["red","rose","pink","orange"].includes(r)?`var(--color-danger-${n})`:["slate","gray","zinc","neutral","stone"].includes(r)?`var(--color-gray-${n})`:""}function Mn(e=""){let t=Te(e);return Ae(t)&&(/^#(?:[0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(t)||/^(?:rgb|hsl)a?\([^)]*\)$/.test(t))?t:""}function ae(e=""){return String(e||"").split(/\s+/).map(t=>t.trim()).filter(Boolean)}function Ga(e="",t=""){if(!t)return e;let r=String(e||""),n=r.match(/\sclass\s*=\s*(["'])(.*?)\1/i);if(!n)return`${r} class="${t}"`;let o=n[1]||'"',a=ae(n[2]);a.includes(t)||a.push(t);let i=` class=${o}${a.join(" ")}${o}`;return r.replace(n[0],i)}function Va(e="",t=""){return t?new RegExp(`\\s${t}\\s*=`,"i").test(String(e||"")):!1}function Ka(e=""){let t=String(e||"").replace(/[-_]+/g," ").trim();return t?t.replace(/(^|\s)([a-z])/g,(r,n,o)=>`${n}${o.toUpperCase()}`):"Icon button"}function Ja(e="",t=null){let r=String(e||"");return r&&r.replace(/<(button|a)([^>]*)>\s*(<pds-icon\b[^>]*><\/pds-icon>)\s*<\/\1>/gi,(n,o,a,i)=>{let s=Ga(a,"icon-only");if(!Va(s,"aria-label")){let p=String(i).match(/\sicon\s*=\s*(["'])(.*?)\1/i),c=p?String(p[2]||""):"",d=Ka(c);s+=` aria-label="${d}"`}return t&&(t.intentHits+=1,R(t,"intent.component.button.icon-only-markup")),`<${o}${s}>${i}</${o}>`})}function Ya(e="",t=null){let r=String(e||"");if(!r)return r;let n=0,o=r.replace(/<p([^>]*?)>([\s\S]*?)<\/p>/gi,(a,i,s)=>{let p=String(i||"").match(/\sclass\s*=\s*(["'])(.*?)\1/i);if(!p)return a;let c=ae(p[2]||""),d=c.some(u=>/^import-text-/.test(String(u||""))),l=c.includes("text-muted")||c.some(u=>/^import-font-/.test(String(u||"")));return!d||!l?a:(n+=1,`<div${i}>${s}</div>`)});return t&&n>0&&(t.intentHits+=1,R(t,"intent.typography.metric-paragraph-to-div"),j(t,`Normalized ${n} metric text paragraph tag(s) to div.`)),o}function Pn(e="",t=""){if(!t)return e;let r=String(e||""),n=r.match(/\sclass\s*=\s*(["'])(.*?)\1/i);if(!n)return r;let o=n[1]||'"',a=ae(n[2]).filter(s=>s!==t);if(a.length===0)return r.replace(n[0],"");let i=` class=${o}${a.join(" ")}${o}`;return r.replace(n[0],i)}function Za(e="",t=r=>r){let r=String(e||""),n=r.match(/\sclass\s*=\s*(["'])(.*?)\1/i);if(!n)return r;let o=n[1]||'"',a=ae(n[2]),i=t(Array.from(a)),s=Array.isArray(i)?i.filter(Boolean):a;if(s.length===0)return r.replace(n[0],"");let p=` class=${o}${s.join(" ")}${o}`;return r.replace(n[0],p)}function Xa(e="",t=null){let r=String(e||"");if(!r)return r;let n=0,o=r.replace(/<(div|section|article|aside)([^>]*)>\s*<(p|div)([^>]*)>[\s\S]*?<\/\3>\s*<(p|div)([^>]*)>[\s\S]*?<\/\5>\s*<\/\1>/gi,(a,i,s,p,c,d,l)=>{let u=String(s||"").match(/\sclass\s*=\s*(["'])(.*?)\1/i);if(!u||!ae(u[2]).includes("stack-sm"))return a;let m=String(c||"").match(/\sclass\s*=\s*(["'])(.*?)\1/i),b=String(l||"").match(/\sclass\s*=\s*(["'])(.*?)\1/i);if(!m||!b)return a;let f=ae(m[2]),y=ae(b[2]);if(!(f.some($=>/^import-text-/.test(String($||"")))&&y.some($=>/^import-text-/.test(String($||"")))))return a;let v=Pn(s,"stack-sm");return n+=1,a.replace(`<${i}${s}>`,`<${i}${v}>`)});return t&&n>0&&(t.intentHits+=1,R(t,"intent.typography.metric-pair-no-stack"),j(t,`Removed stack-sm from ${n} metric text pair container(s).`)),o}function Qa(e={}){if(!e||typeof e!="object")return{};let t=e.typography;if(t&&typeof t=="object")return t;let r=e.design?.typography;return r&&typeof r=="object"?r:{}}function ei(e={}){let t=Qa(e),r=Number(t.fontScale);return Number.isFinite(r)?Math.max(1,Math.min(2,r)):zt}function ti(e="",t=zt){let n={"4xl":1,"3xl":2,"2xl":3,xl:4}[e];if(!n)return"";let o=Number.isFinite(Number(t))?Math.max(1,Math.min(2,Number(t))):zt,a=Math.max(-1,Math.min(1,Math.round((o-zt)/.25))),i=n-a;return i<1?"h1":i>4?"":`h${i}`}function ri(e="",t=null,r={}){let n=String(e||"");if(!n)return n;let o=ei(r.config||{}),a=0,i=0,s=n.replace(/<(p|div|span)([^>]*)>([\s\S]*?)<\/\1>/gi,(p,c,d,l)=>{let u=String(d||"").match(/\sclass\s*=\s*(["'])(.*?)\1/i);if(!u)return p;let g=ae(u[2]);if(!g.includes("import-font-bold"))return p;let b=g.find($=>/^import-text-(?:4xl|3xl|2xl|xl)$/.test(String($||"")))||"",f=b.match(/^import-text-(4xl|3xl|2xl|xl)$/);if(f){let $=ti(f[1],o);if(!$)return p;let A=Za(d,T=>T.filter(F=>F!=="import-font-bold"&&F!==b));return a+=1,`<${$}${A}>${l}</${$}>`}let y=/<\/?(?:div|p|section|article|aside|main|header|footer|ul|ol|li|table|tr|td|th|h[1-6])\b/i.test(l),k=/<\/?(?:strong|b)\b/i.test(l);if(y||k)return p;let v=Pn(d,"import-font-bold");return i+=1,`<${c}${v}><strong>${l}</strong></${c}>`});return t&&(a>0&&(t.intentHits+=1,R(t,"intent.typography.semantic-heading-from-scale"),j(t,`Converted ${a} bold display text node(s) to semantic heading tags (fontScale=${Number(o).toFixed(2)}).`)),i>0&&(t.intentHits+=1,R(t,"intent.typography.bold-to-strong"),j(t,`Wrapped ${i} bold text node(s) in strong tags.`))),s}function ni(e=[]){if(!Array.isArray(e)||e.length===0)return"";let t=e.filter(n=>!Lt.includes(n));if(t.length===0||t.length>1)return"";let r=t[0];return["hover","focus","active"].includes(r)?r:""}function En(e,t="base",r=[]){let n=ni(r),o=Ba[e];if(o)return{declaration:o,breakpoint:t,pseudo:n,ruleId:"fallback.import-style"};let a=String(e).match(/^gap-(\d+)$/);if(a){let x={0:"var(--spacing-0)",1:"var(--spacing-1)",2:"var(--spacing-2)",3:"var(--spacing-3)",4:"var(--spacing-4)",5:"var(--spacing-5)",6:"var(--spacing-6)",7:"var(--spacing-7)",8:"var(--spacing-8)",10:"var(--spacing-10)",12:"var(--spacing-12)"},S=Number(a[1]);if(x[S])return{declaration:`gap:${x[S]}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.gap-scale"}}let i=String(e).match(/^(mt|mb|my)-(.+)$/);if(i){let x=i[1],S=i[2],C=Ke(S);if(C){let E="";return x==="mt"?E=`margin-top:${C}`:x==="mb"?E=`margin-bottom:${C}`:E=`margin-top:${C};margin-bottom:${C}`,{declaration:E,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.margin-scale"}}}let s=String(e).match(/^min-w-\[([^\]]+)\]$/);if(s){let x=Te(s[1]);if(Ae(x))return{declaration:`min-width:${x}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.min-width-arbitrary"}}let p=String(e).match(/^max-w-\[([^\]]+)\]$/);if(p){let x=Te(p[1]);if(Ae(x))return{declaration:`max-width:${x}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.max-width-arbitrary"}}let c=String(e).match(/^min-h-\[([^\]]+)\]$/);if(c){let x=Te(c[1]);if(Ae(x))return{declaration:`min-height:${x}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.min-height-arbitrary"}}let d=String(e).match(/^grid-rows-\[([^\]]+)\]$/);if(d){let x=Te(d[1]);if(Ae(x))return{declaration:`grid-template-rows:${x}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.grid-rows-arbitrary"}}let l=String(e).match(/^size-(.+)$/);if(l){let x=Ke(l[1]);if(x)return{declaration:`width:${x};height:${x}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.size-scale"}}let u=String(e).match(/^w-(.+)$/);if(u){let x=Ke(u[1]);if(x)return{declaration:`width:${x}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.width-scale"}}let g=String(e).match(/^h-(.+)$/);if(g){let x=Ke(g[1]);if(x)return{declaration:`height:${x}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.height-scale"}}let m={xs:"var(--font-size-xs)",sm:"var(--font-size-sm)",base:"var(--font-size-md)",lg:"var(--font-size-lg)",xl:"var(--font-size-xl)","2xl":"var(--font-size-2xl)","3xl":"var(--font-size-3xl)","4xl":"var(--font-size-4xl)"},b=String(e).match(/^text-(xs|sm|base|lg|xl|2xl|3xl|4xl)$/);if(b)return{declaration:`font-size:${m[b[1]]}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.text-size"};let f={normal:"400",medium:"500",semibold:"600",bold:"700",extrabold:"800",black:"900"},y=String(e).match(/^font-(normal|medium|semibold|bold|extrabold|black)$/);if(y)return{declaration:`font-weight:${f[y[1]]}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.font-weight"};let k={none:"1",tight:"1.25",snug:"1.375",normal:"1.5",relaxed:"1.625",loose:"2"},v=String(e).match(/^leading-(none|tight|snug|normal|relaxed|loose)$/);if(v)return{declaration:`line-height:${k[v[1]]}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.line-height"};let $={tighter:"-0.05em",tight:"-0.025em",normal:"0em",wide:"0.025em",wider:"0.05em",widest:"0.1em"},A=String(e).match(/^tracking-(tighter|tight|normal|wide|wider|widest)$/);if(A)return{declaration:`letter-spacing:${$[A[1]]}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.tracking"};let T=String(e).match(/^bg-black\/(\d{1,3})$/);if(T)return{declaration:`background-color:color-mix(in srgb, var(--color-gray-900) ${Math.max(0,Math.min(100,Number(T[1])))}%, transparent)`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.overlay-alpha"};if(e==="text-white")return{declaration:"color:var(--color-gray-50)",breakpoint:t,pseudo:n,ruleId:"fallback.import-style.text-inverse"};let F=String(e).match(/^bg-(primary|secondary|accent)$/);if(F){let S={primary:"var(--color-primary-fill)",secondary:"var(--color-gray-500)",accent:"var(--color-accent-500)"}[F[1]];if(S)return{declaration:`background-color:${S}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.bg-semantic"}}let I=String(e).match(/^bg-([a-z]+)-(\d{2,3})$/);if(I){let x=Ye(I[1],I[2]);if(x)return{declaration:`background-color:${x}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.bg-tokenized"}}let L=String(e).match(/^bg-\[([^\]]+)\]$/);if(L){let x=Mn(L[1]);if(x)return{declaration:`background-color:${x}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.bg-arbitrary"}}let M=String(e).match(/^text-([a-z]+)-(\d{2,3})$/);if(M){let x=Ye(M[1],M[2]);if(x)return{declaration:`color:${x}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.text-tokenized"}}let N=String(e).match(/^text-\[([^\]]+)\]$/);if(N){let x=Mn(N[1]);if(x)return{declaration:`color:${x}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.text-arbitrary"}}let z=String(e).match(/^rounded(?:-([trbl]{1,2}))?(?:-(none|xs|sm|md|lg|xl|2xl|3xl|full))?$/);if(z){let x=z[1]||"",S=z[2]||"sm",C=S==="none"?"0":`var(--radius-${S})`,E={t:["top-left","top-right"],b:["bottom-left","bottom-right"],l:["top-left","bottom-left"],r:["top-right","bottom-right"],tl:["top-left"],tr:["top-right"],bl:["bottom-left"],br:["bottom-right"]};if(!x)return{declaration:`border-radius:${C}`,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.rounded"};let B=(E[x]||[]).map(K=>`border-${K}-radius:${C}`).join(";");if(B)return{declaration:B,breakpoint:t,pseudo:n,ruleId:"fallback.import-style.rounded"}}return null}function $t(e,t){return typeof e=="number"&&Number.isFinite(e)?`${e}px`:typeof e=="string"&&e.trim()?e.trim():`${t}px`}function oi(e={}){let r=(e?.design&&typeof e.design=="object"?e.design:e)?.layout?.breakpoints||{};return{sm:$t(r.sm,640),md:$t(r.md,768),lg:$t(r.lg,1024),xl:$t(r.xl,1280)}}function ai(e,t){let r=Array.from(e.importBaseStyles.entries()).map(([a,i])=>`.${a}{${i};}`),n=[];for(let[a,i]of e.importResponsiveStyles.entries()){let s=t?.[a];if(!s||!i?.size)continue;let p=Array.from(i.entries()).map(([c,d])=>`.${c}{${d};}`).join(`
|
|
3950
|
+
`;try{if(!document.adoptedStyleSheets.some(x=>x._pdsFouc)){let x=new CSSStyleSheet;x.replaceSync(y),x._pdsFouc=!0,document.adoptedStyleSheets=[x,...document.adoptedStyleSheets]}}catch(g){if(t.log("warn","Constructable stylesheets not supported, using <style> tag fallback:",g),!document.head.querySelector("style[data-pds-fouc]")){let b=document.createElement("style");b.setAttribute("data-pds-fouc",""),b.textContent=y,document.head.insertBefore(b,document.head.firstChild)}}}let s=e.applyGlobalStyles??!0,d=e.manageTheme??!0,l=e.themeStorageKey??"pure-ds-theme",p=e.preloadStyles??!1,c=e.criticalLayers??["tokens","primitives"],u=e&&e.autoDefine||null;try{let{resolvedTheme:y}=it({manageTheme:d,themeStorageKey:l,applyResolvedTheme:o,setupSystemListenerIfNeeded:a}),g=Qt(e,{},{presets:Q,defaultLog:Bt,validateDesignConfig:jt,validateInitConfig:Ot});if(d&&!ge(g.generatorConfig.design,y)){let z=g.presetInfo?.name||g.generatorConfig?.design?.name||g.generatorConfig?.preset||"current preset";t.log("warn",`PDS theme "${y}" not supported by preset "${z}".`)}let x=g.enhancers,{log:b,...f}=g.generatorConfig,h=gt(f);h.log=b,d&&(h.theme=y);let v=new Z(h);if(h.design?.typography)try{await Yt(h.design.typography)}catch(z){h?.log?.("warn","Failed to load some fonts from Google Fonts:",z)}if(p&&typeof window<"u"&&document.head)try{let z=c.map(E=>{try{return v.css?.[E]||""}catch(P){return h?.log?.("warn",`Failed to generate critical CSS for layer "${E}":`,P),""}}).filter(E=>E.trim()).join(`
|
|
3951
|
+
`);if(z){let E=document.head.querySelector("style[data-pds-critical]");E&&E.remove();let P=document.createElement("style");P.setAttribute("data-pds-critical",""),P.textContent=z;let M=document.head.querySelector('meta[charset], meta[name="viewport"]');M?M.parentNode.insertBefore(P,M.nextSibling):document.head.insertBefore(P,document.head.firstChild)}}catch(z){h?.log?.("warn","Failed to preload critical styles:",z)}t.registry.setLiveMode(),g.presetInfo?.name?h?.log?.("log",`PDS live with preset "${g.presetInfo.name}"`):h?.log?.("log","PDS live with custom config"),s&&(t.applyStyles?.(Z.instance),typeof window<"u"&&setTimeout(()=>{let z=document.head.querySelector("style[data-pds-critical]");z&&z.remove();let E=document.head.querySelector("style[data-pds-preload]");E&&E.remove();let P=document.getElementById("pds-runtime-stylesheet");P&&P.remove()},100));let m=Le(e,{resolvePublicAssetURL:ke}),S;u&&u.baseURL?S=Se($e(u.baseURL,{preferModule:!1})):S=`${m}components/`;let C=null,T=[];try{let z=await st({autoDefineBaseURL:S,autoDefinePreload:u&&Array.isArray(u.predefine)&&u.predefine||[],autoDefineMapper:u&&typeof u.mapper=="function"&&u.mapper||null,enhancers:x,autoDefineOverrides:u||null,autoDefinePreferModule:!(u&&u.baseURL)},{baseEnhancers:rt});C=z.autoDefiner,T=z.mergedEnhancers||[]}catch(z){h?.log?.("error","\u274C Failed to initialize AutoDefiner/Enhancers:",z)}let I=v?.options||h;if(t.compiled=rn({mode:"live",...I,theme:y,enhancers:T}),t.configEditorMetadata=je(g.generatorConfig.design),t.configFormSchema=be(g.generatorConfig.design),typeof n=="function"&&n({mode:"live",source:"live:config-applied",preset:g.generatorConfig.preset}),typeof document<"u")try{e?.liveEdit?setTimeout(()=>{ia()},0):aa()}catch(z){h?.log?.("warn","Live editor toggle failed to start:",z)}return r({mode:"live",generator:v,config:I,theme:y,autoDefiner:C}),{generator:v,config:I,theme:y,autoDefiner:C}}catch(y){throw t.dispatchEvent(new CustomEvent("pds:error",{detail:{error:y}})),y}}function ua(t){let e=Number(t);return Number.isFinite(e)?Math.max(0,Math.min(1,e)):.5}function ga(t){return Array.isArray(t)?t.map(e=>e?{severity:String(e.severity||"info").toLowerCase(),message:String(e.message||""),path:e.path?String(e.path):""}:null).filter(e=>e&&e.message):[]}function H(t={}){let e=String(t.source||"unknown"),r=String(t.type||"generic"),n=ua(t.confidence),o=ga(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 fa(t){return!!(t&&typeof t=="object"&&"source"in t&&"type"in t&&"confidence"in t&&"issues"in t&&"designPatch"in t)}var ma="../templates/templates.json",an="/assets/pds/templates/templates.json",ha=["public","assets","pds","templates","templates.json"],ba=["..","..","..","public","assets","pds","templates","templates.json"],ft=null;function sn(){return!!(typeof process<"u"&&process?.versions?.node)}function ya(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 mt(t={},e={}){let n=(Array.isArray(t)?t:Array.isArray(t?.templates)?t.templates:[]).map(ya).filter(o=>o.id&&o.file);return{version:t?.version||"1",templates:n,__catalogURL:e.catalogURL||null,__catalogFilePath:e.catalogFilePath||null}}async function va(t={}){let r=[t.catalogURL||globalThis?.PDS?.currentConfig?.templateCatalogURL,ma,an].filter(Boolean);for(let n of r)try{let o=new URL(n,import.meta.url).href,a=await fetch(o,{credentials:"same-origin"});if(!a.ok)continue;let i=await a.json();return mt(i,{catalogURL:o})}catch{}return mt({templates:[]})}async function xa(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(),...ha));let d=a.dirname(i(import.meta.url));s.push(a.resolve(d,...ba));for(let l of s)try{let p=await o(l,"utf8"),c=JSON.parse(p);return mt(c,{catalogFilePath:l})}catch{}return mt({templates:[]})}async function wa(t,e){if(!t?.file)return"";if(!sn()){let d=e?.__catalogURL||an,l=new URL(t.file,d).href,p=await fetch(l,{credentials:"same-origin"});if(!p.ok)throw new Error(`Template file not found: ${t.file}`);return(await p.text()).trim()}let r="node:fs/promises",n="node:path",[{readFile:o},a]=await Promise.all([import(r),import(n)]),i=e?.__catalogFilePath?a.dirname(e.__catalogFilePath):a.resolve(process.cwd(),"public","assets","pds","templates"),s=a.resolve(i,t.file);return(await o(s,"utf8")).trim()}async function ht(t={}){return ft&&!t.forceReload||(ft=sn()?await xa(t):await va(t)),ft}async function ln(t={}){return(await ht(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 ka(t,e={}){let r=await ht(e),n=r.templates.find(a=>a.id===t)||null;if(!n)return null;let o=await wa(n,r);return{...n,html:o}}async function cn(t,e={}){let r=await ka(t,e);return r?H({source:"template",type:"template",confidence:1,template:{id:r.id,name:r.name,html:r.html,icon:r.icon,description:r.description}}):H({source:"template",type:"template",confidence:0,issues:[{severity:"error",message:`Unknown template: ${t}`}]})}var dn={version:"tw2pds-layout-v4",summary:"Deterministic Tailwind\u2192PDS conversion rules focused on layout intent, semantic primitive mapping, and richer import-* fallback coverage.",governance:[{id:"layout.utilities.grid",controls:["grid","grid-cols-*","grid-auto-*"],note:"When false, grid mappings are skipped."},{id:"layout.utilities.flex",controls:["flex","flex-*","items-*","justify-*","grow"],note:"When false, flex mappings are skipped."},{id:"layout.utilities.spacing",controls:["gap-*","stack-*"],note:"When false, spacing mappings are skipped."},{id:"layout.utilities.container",controls:["container","max-w-*"],note:"When false, container mappings are skipped."}],nonPdsClassPatterns:["^group(?:[/:].*)?$","^layout-container$"],neverFallbackTags:["table","thead","tbody","tfoot","tr","th","td","caption","colgroup","col"],directMappings:[{id:"layout.flex.base",tw:"flex",pds:["flex"],gate:"flex"},{id:"layout.flex.inline",tw:"inline-flex",pds:["flex"],gate:"flex"},{id:"layout.flex.row",tw:"flex-row",pds:["flex-row"],gate:"flex"},{id:"layout.flex.col",tw:"flex-col",pds:["flex-col"],gate:"flex"},{id:"layout.flex.wrap",tw:"flex-wrap",pds:["flex-wrap"],gate:"flex"},{id:"layout.flex.grow",tw:"grow",pds:["grow"],gate:"flex"},{id:"layout.flex.grow.tw",tw:"flex-grow",pds:["grow"],gate:"flex"},{id:"layout.flex.grow1",tw:"flex-1",pds:["grow"],gate:"flex"},{id:"layout.items.start",tw:"items-start",pds:["items-start"],gate:"flex"},{id:"layout.items.center",tw:"items-center",pds:["items-center"],gate:"flex"},{id:"layout.items.end",tw:"items-end",pds:["items-end"],gate:"flex"},{id:"layout.items.stretch",tw:"items-stretch",pds:["items-stretch"],gate:"flex"},{id:"layout.items.baseline",tw:"items-baseline",pds:["items-baseline"],gate:"flex"},{id:"layout.justify.start",tw:"justify-start",pds:["justify-start"],gate:"flex"},{id:"layout.justify.center",tw:"justify-center",pds:["justify-center"],gate:"flex"},{id:"layout.justify.end",tw:"justify-end",pds:["justify-end"],gate:"flex"},{id:"layout.justify.between",tw:"justify-between",pds:["justify-between"],gate:"flex"},{id:"layout.justify.around",tw:"justify-around",pds:["justify-around"],gate:"flex"},{id:"layout.justify.evenly",tw:"justify-evenly",pds:["justify-evenly"],gate:"flex"},{id:"layout.grid.base",tw:"grid",pds:["grid"],gate:"grid"},{id:"layout.grid.cols.1",tw:"grid-cols-1",pds:["grid-cols-1"],gate:"grid"},{id:"layout.grid.cols.2",tw:"grid-cols-2",pds:["grid-cols-2"],gate:"grid"},{id:"layout.grid.cols.3",tw:"grid-cols-3",pds:["grid-cols-3"],gate:"grid"},{id:"layout.grid.cols.4",tw:"grid-cols-4",pds:["grid-cols-4"],gate:"grid"},{id:"layout.grid.cols.6",tw:"grid-cols-6",pds:["grid-cols-6"],gate:"grid"},{id:"layout.container",tw:"container",pds:["container"],gate:"container"},{id:"intent.surface.shadow",tw:"shadow",pds:["surface-elevated"]},{id:"intent.surface.shadow-md",tw:"shadow-md",pds:["surface-elevated"]},{id:"intent.surface.shadow-lg",tw:"shadow-lg",pds:["surface-elevated"]},{id:"intent.surface.base",tw:"bg-white",pds:["surface-base"]},{id:"typography.align.center",tw:"text-center",pds:["text-center"]},{id:"typography.align.left",tw:"text-left",pds:["text-left"]},{id:"typography.align.right",tw:"text-right",pds:["text-right"]},{id:"typography.text.muted.gray500",tw:"text-gray-500",pds:["text-muted"]},{id:"typography.text.muted.slate500",tw:"text-slate-500",pds:["text-muted"]}],ignoredPatterns:[{id:"style.color",pattern:"^(?:text|from|to|via|decoration|accent|caret)-|^bg-(?!cover$|center$|no-repeat$)",reason:"Visual style token skipped in favor of semantic PDS styling."},{id:"style.radius-border-shadow",pattern:"^(?:rounded|ring|border|shadow|outline)-?",reason:"Surface/shape inferred at primitive level."},{id:"style.typography",pattern:"^(?:font|leading|tracking|uppercase|lowercase|capitalize)-?",reason:"Typography atomic utilities are skipped."},{id:"style.effects",pattern:"^(?:opacity|blur|backdrop|drop-shadow|mix-blend|filter)-",reason:"Visual effects skipped unless mapped to a PDS utility."},{id:"style.transitions",pattern:"^(?:transition|duration|ease|delay|animate)-",reason:"Motion is system-defined in PDS."},{id:"style.spacing.atomic",pattern:"^(?:p|px|py|pt|pb|pl|pr|m|mx|my|mt|mb|ml|mr)-",reason:"Atomic spacing skipped; structural spacing intent is mapped."},{id:"style.positioning.atomic",pattern:"^(?:absolute|relative|fixed|sticky|inset(?:-[xy])?|top|right|bottom|left|z|translate(?:-[xy])?|-translate-[xy])(?:-|$)",reason:"Atomic positioning/offset utilities are skipped so PDS primitives and layout utilities control placement."}],intentRules:[{id:"intent.layout.responsive-grid-to-auto",summary:"Collapse responsive grid-cols patterns (including base+md two-step patterns) to best-fit grid-auto-*"},{id:"intent.layout.mobile-stack",summary:"Map flex-col + md/lg:flex-row to mobile-stack"},{id:"intent.component.card",summary:"Infer card/surface classes from rounded+shadow+surface signals"},{id:"intent.component.card.normalize",summary:"Detect Tailwind card utility clusters and normalize them to PDS card and surface variants."},{id:"intent.component.button",summary:"Infer btn-primary / btn-outline / icon-only from CTA patterns"},{id:"intent.component.button.normalize",summary:"Prevents import-* style classes on button-like elements and applies PDS button variants/sizes."},{id:"intent.component.button.layout-grow",summary:"Preserve CTA row width intent on button-like elements by mapping w-full/flex-1 to grow."},{id:"intent.icon.color-preserve",summary:"Preserve icon color intent by mapping Tailwind text color utilities on icon-like elements to tokenized import-* classes."},{id:"intent.component.badge.normalize",summary:"Detects Tailwind badge/pill utility clusters and normalizes them to PDS badge primitives/variants."},{id:"intent.typography.heading-semantic",summary:"Removes Tailwind heading typography/color utilities so heading semantics and PDS defaults control typography."},{id:"intent.surface.footer-inverse",summary:"Use surface-inverse for footers with explicit background intent"},{id:"intent.typography.link-treatment",summary:"Apply minimal link treatment for hover/transition-tailwind anchors"},{id:"intent.typography.link-active-preserve",summary:"Preserve anchor text color intent (including active menu states) by mapping Tailwind text utilities to tokenized import-* classes."},{id:"intent.typography.metric-paragraph-to-div",summary:"Normalize metric display lines from paragraph tags to div tags to avoid default paragraph margins in compact stat layouts."},{id:"intent.typography.metric-pair-no-stack",summary:"When a compact metric container has two consecutive typography lines, remove stack-sm so spacing follows Tailwind preflight no-margin assumptions."},{id:"intent.typography.semantic-heading-from-scale",summary:"Map large bold typography scales (text-2xl/text-3xl/text-4xl) to semantic heading tags when possible."},{id:"intent.typography.bold-to-strong",summary:"Prefer semantic strong tags for bold inline text intent instead of utility-only font-weight classes."},{id:"intent.preflight.tailwind-runtime-detected",summary:"Detect Tailwind runtime CSS injection and translate key preflight intent"},{id:"intent.preflight.list-reset",summary:"Preserve Tailwind list-reset preflight behavior via scoped fallback class"},{id:"intent.preflight.anchor-reset",summary:"Preserve Tailwind anchor reset preflight behavior via scoped fallback class"},{id:"table.strict-tags.no-classes",summary:"Never emit classes for semantic table tags (table/thead/tbody/tfoot/tr/th/td/caption/colgroup/col)"},{id:"intent.form.nested-label",summary:"Convert sibling label+control pairs into nested labels"},{id:"fallback.import-style",summary:"Generate import-* classes + local style block for unmapped utility styles"}],gapScaleMap:{"gap-0":"gap-0","gap-1":"gap-xs","gap-2":"gap-sm","gap-3":"gap-sm","gap-4":"gap-md","gap-5":"gap-md","gap-6":"gap-lg","gap-7":"gap-lg","gap-8":"gap-xl","gap-10":"gap-xl","gap-12":"gap-xl"},maxWidthMap:{"max-w-xs":"max-w-sm","max-w-sm":"max-w-sm","max-w-md":"max-w-md","max-w-lg":"max-w-lg","max-w-xl":"max-w-xl","max-w-2xl":"max-w-xl","max-w-3xl":"max-w-xl","max-w-4xl":"max-w-xl","max-w-5xl":"max-w-xl","max-w-6xl":"max-w-xl","max-w-7xl":"max-w-xl"},tailwindSizeScale:{"0":"var(--spacing-0)","0.5":"0.125rem","1":"var(--spacing-1)","1.5":"0.375rem","2":"var(--spacing-2)","2.5":"0.625rem","3":"var(--spacing-3)","3.5":"0.875rem","4":"var(--spacing-4)","5":"var(--spacing-5)","6":"var(--spacing-6)","7":"var(--spacing-7)","8":"var(--spacing-8)","9":"var(--spacing-9)","10":"var(--spacing-10)","11":"var(--spacing-11)","12":"var(--spacing-12)","14":"3.5rem","16":"4rem","20":"5rem","24":"6rem","28":"7rem","32":"8rem","36":"9rem","40":"10rem","48":"12rem"},tailwindShadeScale:["50","100","200","300","400","500","600","700","800","900"],defaultTailwindShade:"500",importStyleRules:{"mx-auto":"margin-left:auto;margin-right:auto","ml-auto":"margin-left:auto","mr-auto":"margin-right:auto","w-full":"width:100%","w-auto":"width:auto","h-full":"height:100%","h-48":"height:12rem","h-2.5":"height:0.625rem","h-10":"height:var(--spacing-10)","h-2":"height:var(--spacing-2)","w-2":"width:var(--spacing-2)","size-8":"width:var(--spacing-8);height:var(--spacing-8)","size-10":"width:var(--spacing-10);height:var(--spacing-10)","size-full":"width:100%;height:100%","min-h-screen":"min-height:100vh","overflow-hidden":"overflow:hidden","overflow-x-hidden":"overflow-x:hidden","overflow-x-auto":"overflow-x:auto","whitespace-nowrap":"white-space:nowrap",hidden:"display:none",block:"display:block",truncate:"overflow:hidden;text-overflow:ellipsis;white-space:nowrap","justify-items-center":"justify-items:center","justify-items-start":"justify-items:start","justify-items-end":"justify-items:end","justify-items-stretch":"justify-items:stretch","grid-flow-col":"grid-auto-flow:column","aspect-square":"aspect-ratio:1 / 1","bg-center":"background-position:center","bg-cover":"background-size:cover","bg-no-repeat":"background-repeat:no-repeat","transition-colors":"transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:150ms"},importStyleDynamicRules:[{id:"fallback.import-style.gap-scale",pattern:"^gap-(\\d+)$",summary:"Converts gap scale utilities (including responsive variants like md:gap-6) to generated import-* fallback classes."},{id:"fallback.import-style.min-width-arbitrary",pattern:"^min-w-\\[[^\\]]+\\]$",summary:"Converts arbitrary min-width utilities (e.g. min-w-[600px]) to generated import-* fallback classes."},{id:"fallback.import-style.max-width-arbitrary",pattern:"^max-w-\\[[^\\]]+\\]$",summary:"Converts arbitrary max-width utilities (e.g. max-w-[480px]) to generated import-* fallback classes."},{id:"fallback.import-style.min-height-arbitrary",pattern:"^min-h-\\[[^\\]]+\\]$",summary:"Converts arbitrary min-height utilities (e.g. min-h-[180px]) to generated import-* fallback classes."},{id:"fallback.import-style.grid-rows-arbitrary",pattern:"^grid-rows-\\[[^\\]]+\\]$",summary:"Converts arbitrary grid template row utilities (e.g. grid-rows-[1fr_auto]) to generated import-* fallback classes."},{id:"fallback.import-style.size-scale",pattern:"^size-(\\[[^\\]]+\\]|[0-9.]+)$",summary:"Converts size scale/arbitrary utilities into width+height fallback declarations."},{id:"fallback.import-style.width-height-scale",pattern:"^[wh]-(\\[[^\\]]+\\]|[0-9.]+)$",summary:"Converts width/height scale and arbitrary utilities to import-* classes."},{id:"fallback.import-style.spacing",pattern:"^-?(?:p|px|py|pt|pb|pl|pr|m|mx|my|mt|mb|ml|mr)-(.+)$",summary:"Converts spacing utilities to directional padding/margin fallback declarations, including responsive variants."},{id:"fallback.import-style.text-size",pattern:"^text-(xs|sm|base|lg|xl|2xl|3xl|4xl)$",summary:"Converts common text size utilities to import-* font-size declarations."},{id:"fallback.import-style.font-weight",pattern:"^font-(normal|medium|semibold|bold|extrabold|black)$",summary:"Converts common font weight utilities to import-* font-weight declarations."},{id:"fallback.import-style.leading-tracking",pattern:"^(leading|tracking)-(none|tight|snug|normal|relaxed|loose|tighter|wide|wider|widest)$",summary:"Converts line-height and letter-spacing utilities to import-* declarations for typography fidelity."},{id:"fallback.import-style.bg-tokenized",pattern:"^bg-([a-z]+)-(\\d{2,3})$",summary:"Safeguards Tailwind background color utilities by mapping families like blue/purple/green/red to PDS semantic tokens."},{id:"fallback.import-style.bg-semantic",pattern:"^bg-(primary|secondary|accent)$",summary:"Safeguards semantic background utilities by mapping bg-primary/bg-secondary/bg-accent to PDS color tokens."},{id:"fallback.import-style.text-tokenized",pattern:"^text-([a-z]+)-(\\d{2,3})$",summary:"Safeguards Tailwind text color utilities by mapping common families to PDS semantic tokens."},{id:"fallback.import-style.rounded",pattern:"^rounded(?:-[trbl]{1,2})?(?:-(none|xs|sm|md|lg|xl|2xl|3xl|full))?$",summary:"Safeguards rounded utilities (including rounded-t-sm) by mapping to PDS radius tokens."},{id:"fallback.import-style.overlay-alpha",pattern:"^bg-black\\/(\\d{1,3})$",summary:"Converts alpha black overlay classes (e.g. bg-black/50) to tokenized color-mix background overlays."},{id:"fallback.import-style.text-inverse",pattern:"^text-white$",summary:"Preserves white foreground intent for text-on-image use cases using inverse-compatible tokens."},{id:"fallback.import-style.bg-arbitrary",pattern:"^bg-\\[[^\\]]+\\]$",summary:"Converts arbitrary background colors to import-* fallback classes when values are CSS-safe."},{id:"fallback.import-style.text-arbitrary",pattern:"^text-\\[[^\\]]+\\]$",summary:"Converts arbitrary text colors to import-* fallback classes when values are CSS-safe."}]};_e();ar();typeof w.initializing!="boolean"&&(w.initializing=!1);"currentPreset"in w||(w.currentPreset=null);typeof w.debug!="boolean"&&(w.debug=!1);"currentConfig"in w||(w.currentConfig=null);"compiled"in w||(w.compiled=null);typeof w.logHandler!="function"&&(w.logHandler=null);"mode"in w||(w.mode=null);var bt=null,yt=null,vt=null,xt=null,wt=null,kt=null,un="__pdsLocalizationRuntime";function Ce(){if(kt)return kt;let t=w?.[un];return t&&typeof t=="object"?(kt=t,t):null}function $a(t){let e=t&&typeof t=="object"?t:null;kt=e,w[un]=e}Pr({getLogger:()=>typeof w.logHandler=="function"?w.logHandler:null,getContext:()=>{let t=w?.mode||w?.compiled?.mode||(w?.registry?.isLive?"live":"static"),e=(w?.debug||w?.currentConfig?.debug||w?.currentConfig?.design?.debug||w?.compiled?.debug||w?.compiled?.design?.debug||!1)===!0;return{mode:t,debug:e,thisArg:w}}});w.log=(t="log",e,...r)=>{Qe(t,e,...r)};var U={locale:"en",messages:{},hasProvider:!1},St=new Set;function gn(t){return!!t&&typeof t!="string"&&typeof t=="object"&&"strTag"in t}function fn(t=[]){let e="";for(let r=0;r<=t.length-1;r+=1)e+=t[r],r<t.length-1&&(e+=`{${r}}`);return e}function La(t,e){return String(t).replace(/\{(\d+)\}/g,(r,n)=>e(Number(n)))}function za(t){if(!t||typeof t!="object")return{};let e={};for(let[r,n]of Object.entries(t)){if(typeof n=="string"){e[r]=n;continue}n&&typeof n=="object"&&typeof n.content=="string"&&(e[r]=n.content)}return e}function Ca(t,...e){return{strTag:!0,strings:Array.from(t||[]),values:e,raw:Array.from(t?.raw||[])}}function Ma(t){if(!t)return"";if(gn(t)){let r=fn(t.strings||[]),n=U.messages[r]||r;return La(n,o=>t.values?.[o])}let e=String(t);return U.messages[e]||e}function Ea(t){if(!t)return;let e=gn(t)?fn(t.strings||[]):String(t);typeof e=="string"&&e.length>0&&St.add(e)}function mn(t){if(!t||typeof t.msg!="function"||St.size===0)return;let e=Array.from(St);St.clear();for(let r of e)try{t.msg(r)}catch{}}async function qe(){let t=Ce();return t||(wt||(wt=import(Ve("pds-localization.js")).then(r=>{if(typeof r?.msg!="function"||typeof r?.str!="function"||typeof r?.configureLocalization!="function"||typeof r?.loadLocale!="function"||typeof r?.setLocale!="function"||typeof r?.getLocalizationState!="function")throw new Error("Failed to load localization runtime exports");return $a(r),mn(r),r}).catch(r=>{throw wt=null,r})),wt)}var hn=(t,e={})=>{let r=Ce();return typeof r?.msg=="function"?r.msg(t,e):(Ea(t),Ma(t,e))},bn=(t,...e)=>{let r=Ce();return typeof r?.str=="function"?r.str(t,...e):Ca(t,...e)},$t=(t=null)=>{let e=Ce();if(typeof e?.configureLocalization=="function")return e.configureLocalization(t);if(!t||typeof t!="object")return U.locale="en",U.messages={},U.hasProvider=!1,{locale:U.locale,messages:{...U.messages},hasProvider:U.hasProvider};typeof t.locale=="string"&&t.locale.trim()&&(U.locale=t.locale.trim()),Object.prototype.hasOwnProperty.call(t,"messages")&&(U.messages=za(t.messages));let r=!!(t.provider||t.translate||t.loadLocale||t.setLocale);return U.hasProvider=r,r&&qe().then(n=>{n.configureLocalization(t),mn(n)}).catch(()=>{}),{locale:U.locale,messages:{...U.messages},hasProvider:U.hasProvider}},yn=async t=>(await qe()).loadLocale(t),vn=async(t,e={})=>(await qe()).setLocale(t,e),xn=()=>{let t=Ce();return typeof t?.getLocalizationState=="function"?t.getLocalizationState():{locale:U.locale,messages:{...U.messages},hasProvider:U.hasProvider}},wn=(t={})=>{let e=Ce();if(typeof e?.createJSONLocalization=="function")return e.createJSONLocalization(t);let r=typeof t?.locale=="string"&&t.locale.trim()?t.locale.trim().toLowerCase():"en",n=Array.isArray(t?.locales)?t.locales.map(d=>String(d||"").trim().toLowerCase()).filter(Boolean):[],o=Array.from(new Set([r,...n])),a=null,i=async()=>(a||(a=qe().then(d=>typeof d?.createJSONLocalization=="function"?d.createJSONLocalization(t):null).catch(()=>null)),a),s=async(d="loadLocale")=>{let l=await i();if(!l||typeof l!="object")return null;let p=l.provider;if(!p||typeof p!="object")return null;let c=p[d];return typeof c=="function"?c:d==="setLocale"&&typeof p.loadLocale=="function"?p.loadLocale:null};return{locale:r,locales:[...o],provider:{locales:[...o],async loadLocale(d={}){let l=await s("loadLocale");return typeof l!="function"?{}:l(d)},async setLocale(d={}){let l=await s("setLocale");return typeof l!="function"?{}:l(d)}}}};function Ve(t,e){return e&&typeof e=="string"?e:`${Le(w.currentConfig||{},{resolvePublicAssetURL:ke})}core/${t}`}async function Aa(){return Array.isArray(w.defaultEnhancers)&&w.defaultEnhancers.length>0?w.defaultEnhancers:(xt||(xt=import(Ve("pds-enhancers.js",w.currentConfig?.enhancersURL)).then(e=>{let r=Array.isArray(e?.defaultPDSEnhancers)?e.defaultPDSEnhancers:[];return w.defaultEnhancers=r,r}).catch(e=>{throw xt=null,e})),xt)}async function Ta(){return typeof w.ask=="function"&&w.ask!==kn?w.ask:(yt||(yt=import(Ve("pds-ask.js",w.currentConfig?.askURL)).then(e=>{let r=e?.ask;if(typeof r!="function")throw new Error("Failed to load ask helper");return w.ask=r,r}).catch(e=>{throw yt=null,e})),yt)}async function Ge(){return typeof w.toast=="function"&&w.toast!==Me?w.toast:(vt||(vt=import(Ve("pds-toast.js",w.currentConfig?.toastURL)).then(e=>{let r=e?.toast;if(typeof r!="function")throw new Error("Failed to load toast helper");return w.toast=r,r}).catch(e=>{throw vt=null,e})),vt)}async function kn(...t){return(await Ta())(...t)}async function Me(...t){return(await Ge())(...t)}Me.success=async(...t)=>(await Ge()).success(...t);Me.error=async(...t)=>(await Ge()).error(...t);Me.warning=async(...t)=>(await Ge()).warning(...t);Me.info=async(...t)=>(await Ge()).info(...t);var pn=function(t="log",e,...r){w.log(t,e,...r)};function dr(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=>dr(r)).filter(r=>r!==void 0);let e={};for(let[r,n]of Object.entries(t)){let o=dr(n);o!==void 0&&(e[r]=o)}return e}function Sn(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))Sn(t[r],e);return t}function pr(t){return t==null||typeof t!="object"?t:Sn(structuredClone(dr(t)))}async function Ra(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}}w.registry=we;w.enums=$;w.adoptLayers=tt;w.adoptPrimitives=et;var Ia=or;w.parse=Ia;var _a=ct;w.html=_a;w.createStylesheet=qr;w.isLiveMode=()=>we.isLive;w.ask=kn;w.toast=Me;w.common=dt;w.msg=hn;w.str=bn;w.configureLocalization=$t;w.loadLocale=yn;w.setLocale=vn;w.getLocalizationState=xn;w.createJSONLocalization=wn;w.i18n={msg:hn,str:bn,configure:$t,loadLocale:yn,setLocale:vn,getState:xn,createJSONLocalization:wn};w.AutoComplete=null;w.loadAutoComplete=async()=>{if(w.AutoComplete&&typeof w.AutoComplete.connect=="function")return w.AutoComplete;let t=Ve("pds-autocomplete.js",w.currentConfig?.autoCompleteURL);return bt||(bt=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 w.AutoComplete=r,r}).catch(e=>{throw bt=null,e})),bt};function $n(t){let e=typeof CustomEvent=="function";try{let r=e?new CustomEvent("pds:ready",{detail:t}):new Event("pds:ready");w.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 Ln(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");w.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 cr="pure-ds-theme",fe=null,Ue=null;function ur(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 gr(t){try{if(fe&&Ue){try{typeof fe.removeEventListener=="function"?fe.removeEventListener("change",Ue):typeof fe.removeListener=="function"&&fe.removeListener(Ue)}catch{}fe=null,Ue=null}if(t==="system"&&typeof window<"u"&&window.matchMedia){let e=window.matchMedia("(prefers-color-scheme: dark)"),r=n=>{let o=n?.matches===void 0?e.matches:n.matches;try{let a=o?"dark":"light";document.documentElement.setAttribute("data-theme",a),w.dispatchEvent(new CustomEvent("pds:theme:changed",{detail:{theme:a,source:"system"}}))}catch{}};fe=e,Ue=r,typeof e.addEventListener=="function"?e.addEventListener("change",r):typeof e.addListener=="function"&&e.addListener(r)}}catch{}}var Fa=Object.getOwnPropertyDescriptor(w,"theme");Fa||Object.defineProperty(w,"theme",{get(){try{return typeof window>"u"?null:localStorage.getItem(cr)||null}catch{return null}},set(t){try{if(typeof window>"u")return;let e=w.currentConfig?.design||null,r=ze(t);if(e&&!ge(e,r)){let n=e?.name||w.currentPreset?.name||w.currentConfig?.preset||"current preset";w.log("warn",`PDS theme "${r}" not supported by preset "${n}".`),w.dispatchEvent(new CustomEvent("pds:theme:blocked",{detail:{theme:t,resolvedTheme:r,preset:n}}));return}t==null?localStorage.removeItem(cr):localStorage.setItem(cr,t),ur(t),gr(t),w.dispatchEvent(new CustomEvent("pds:theme:changed",{detail:{theme:t,source:"api"}}))}catch{}}});w.defaultEnhancers=[];async function Pa(t){w.initializing=!0;try{let e=t&&t.mode||"live",{mode:r,...n}=t||{};w.mode=e,w.logHandler=typeof n?.log=="function"?n.log:null,w.currentConfig=pr(n);let o=n&&typeof n.localization=="object"&&n.localization?n.localization:null;o?(await qe(),$t(o)):$t(null);let a;if(e==="static")a=await Na(n);else{let{localization:s,...d}=n||{},l=Le(d,{resolvePublicAssetURL:ke}),p=d?.managerURL||d?.public?.managerURL||d?.manager?.url||new URL("core/pds-manager.js",l).href||new URL("./pds-manager.js",import.meta.url).href,{startLive:c}=await import(p);a=await c(w,d,{emitReady:$n,emitConfigChanged:Ln,applyResolvedTheme:ur,setupSystemListenerIfNeeded:gr})}w.compiled=pr(a?.config||null);let i=w?.compiled?.design?.icons?.externalPath||"/assets/img/icons/";return w.log("info",`startup ready; external icon path: ${i}`),a}finally{w.initializing=!1}}w.start=Pa;async function Na(t){if(!t||typeof t!="object")throw new Error("PDS.start({ mode: 'static', ... }) requires a valid configuration object");let e=t.applyGlobalStyles??!0,r=t.manageTheme??!0,n=t.themeStorageKey??"pure-ds-theme",o=t.staticPaths??{},a=Le(t,{resolvePublicAssetURL:ke}),i=t&&t.autoDefine||null,s;i&&i.baseURL?s=Se($e(i.baseURL,{preferModule:!1})):s=`${a}components/`;let d=i&&Array.isArray(i.predefine)&&i.predefine||[],l=i&&typeof i.mapper=="function"&&i.mapper||null;try{at(w);let{resolvedTheme:p}=it({manageTheme:r,themeStorageKey:n,applyResolvedTheme:ur,setupSystemListenerIfNeeded:gr}),c=await Ra(a,t),u=Array.isArray(t?.enhancers)?t.enhancers:t?.enhancers&&typeof t.enhancers=="object"?Object.values(t.enhancers):[],y=c?.config?{...c.config,...t,design:t?.design||c.config.design,preset:t?.preset||c.config.preset}:{...t},g={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`},x=c?.paths||{};if(o={...g,...x,...o},w.registry.setStaticMode(o),e&&typeof document<"u")try{let h=await w.registry.getStylesheet("styles");if(h){h._pds=!0;let v=(document.adoptedStyleSheets||[]).filter(m=>m._pds!==!0);document.adoptedStyleSheets=[...v,h],Ln({mode:"static",source:"static:styles-applied"})}}catch(h){pn.call(w,"warn","Failed to apply static styles:",h)}let b=null,f=[];try{let h=await Aa(),v=await st({autoDefineBaseURL:s,autoDefinePreload:d,autoDefineMapper:l,enhancers:u,autoDefineOverrides:i||null,autoDefinePreferModule:!(i&&i.baseURL)},{baseEnhancers:h});b=v.autoDefiner,f=v.mergedEnhancers||[]}catch(h){pn.call(w,"error","\u274C Failed to initialize AutoDefiner/Enhancers (static):",h)}return w.compiled=pr({mode:"static",...y,theme:p,enhancers:f}),$n({mode:"static",config:y,theme:p,autoDefiner:b}),{config:y,theme:p,autoDefiner:b}}catch(p){throw w.dispatchEvent(new CustomEvent("pds:error",{detail:{error:p}})),p}}var ja="src/js/pds-live-manager/tailwind-conversion-rules.json",Ct=["base","sm","md","lg","xl","2xl"];function Oa(t={}){let e=Array.isArray(t.ignoredPatterns)?t.ignoredPatterns.map(n=>({...n,pattern:n?.pattern instanceof RegExp?n.pattern:new RegExp(String(n?.pattern||""))})):[],r=Array.isArray(t.nonPdsClassPatterns)?t.nonPdsClassPatterns.map(n=>n instanceof RegExp?n:new RegExp(String(n||""))):[];return{...t,ignoredPatterns:e,nonPdsClassPatterns:r}}var V=Oa(dn),zn=V.version||"tw2pds-layout-v4",Ba=new Map(V.directMappings.map(t=>[t.tw,t])),fr=new Map(Object.entries(V.gapScaleMap||{})),Cn=new Map(Object.entries(V.maxWidthMap||{})),Da=V.nonPdsClassPatterns||[],Ha=new Set(V.neverFallbackTags||[]),Wa={...V.importStyleRules||{}},Ua=V.tailwindSizeScale||{},mr=Array.isArray(V.tailwindShadeScale)?V.tailwindShadeScale.map(t=>String(t)).filter(Boolean):["50","100","200","300","400","500","600","700","800","900"],Mn=mr.includes(String(V.defaultTailwindShade||""))?String(V.defaultTailwindShade):"500",zt=1.2,qa=["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 En(t="",e=""){if(!t||!e)return t;let r=new RegExp(`\\s${e}\\s*=\\s*("[^"]*"|'[^']*'|[^\\s>]+)`,"gi");return String(t).replace(r,"")}function Va(t="",e=null){let r=String(t||""),n=0;return r=r.replace(/<label([^>]*?)\sfor\s*=\s*(["'])([^"']+)\2([^>]*)>([\s\S]*?)<\/label>\s*<(input)([^>]*?)\sid\s*=\s*(["'])([^"']+)\8([^>]*?)>/gi,(o,a,i,s,d,l,p,c,u,y,g)=>{if(s!==y)return o;let x=En(`${a||""}${d||""}`,"for"),b=`<${p}${c||""} id="${y}"${g||""}>`;return n+=1,`<label${x}>${l}${b}</label>`}),r=r.replace(/<label([^>]*?)\sfor\s*=\s*(["'])([^"']+)\2([^>]*)>([\s\S]*?)<\/label>\s*<(select|textarea)([^>]*?)\sid\s*=\s*(["'])([^"']+)\8([^>]*)>([\s\S]*?)<\/\6>/gi,(o,a,i,s,d,l,p,c,u,y,g,x)=>{if(s!==y)return o;let b=En(`${a||""}${d||""}`,"for"),f=`<${p}${c||""} id="${y}"${g||""}>${x}</${p}>`;return n+=1,`<label${b}>${l}${f}</label>`}),e&&n>0&&(e.labelNestingCount+=n,j(e,`Nested ${n} label/control pairs.`),_(e,"intent.form.nested-label")),r}function Ga(t="",e="base"){let r=String(t||"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"rule";return`import-${e&&e!=="base"?`${e}-`:""}${r}`}function me(t,e,r,n="base",o=""){if(!t||!e||!r)return"";let a=Ga(e,n);if(o){let i=`${n}|${o}`;t.importPseudoStyles.has(i)||t.importPseudoStyles.set(i,new Map),t.importPseudoStyles.get(i).set(a,r)}else n==="base"?t.importBaseStyles.set(a,r):(t.importResponsiveStyles.has(n)||t.importResponsiveStyles.set(n,new Map),t.importResponsiveStyles.get(n).set(a,r));return t.importedStyleCount+=1,a}function Ae(t=""){return String(t||"").trim().replace(/_/g," ")}function Te(t=""){return!t||/[;{}]/.test(t)?!1:/^[-#(),.%/\sa-zA-Z0-9]+$/.test(t)}function Ke(t=""){let e=String(t||"").trim();if(!e)return null;let r=e.match(/^\[([^\]]+)\]$/);if(r){let n=Ae(r[1]);return Te(n)?n:null}return Ua[e]||null}function Ka(t=""){let e=Number(t);if(!Number.isFinite(e))return Mn;let r=String(e);return mr.includes(r)?r:mr.reduce((n,o)=>{let a=Math.abs(Number(n)-e);return Math.abs(Number(o)-e)<a?o:n},Mn)}function Ye(t="",e="500"){let r=String(t||"").toLowerCase(),n=Ka(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 An(t=""){let e=Ae(t);return Te(e)&&(/^#(?:[0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(e)||/^(?:rgb|hsl)a?\([^)]*\)$/.test(e))?e:""}function ae(t=""){return String(t||"").split(/\s+/).map(e=>e.trim()).filter(Boolean)}function Ja(t="",e=""){if(!e)return t;let r=String(t||""),n=r.match(/\sclass\s*=\s*(["'])(.*?)\1/i);if(!n)return`${r} class="${e}"`;let o=n[1]||'"',a=ae(n[2]);a.includes(e)||a.push(e);let i=` class=${o}${a.join(" ")}${o}`;return r.replace(n[0],i)}function Ya(t="",e=""){return e?new RegExp(`\\s${e}\\s*=`,"i").test(String(t||"")):!1}function Xa(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 Za(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=Ja(a,"icon-only");if(!Ya(s,"aria-label")){let d=String(i).match(/\sicon\s*=\s*(["'])(.*?)\1/i),l=d?String(d[2]||""):"",p=Xa(l);s+=` aria-label="${p}"`}return e&&(e.intentHits+=1,_(e,"intent.component.button.icon-only-markup")),`<${o}${s}>${i}</${o}>`})}function Qa(t="",e=null){let r=String(t||"");if(!r)return r;let n=0,o=r.replace(/<p([^>]*?)>([\s\S]*?)<\/p>/gi,(a,i,s)=>{let d=String(i||"").match(/\sclass\s*=\s*(["'])(.*?)\1/i);if(!d)return a;let l=ae(d[2]||""),p=l.some(u=>/^import-text-/.test(String(u||""))),c=l.includes("text-muted")||l.some(u=>/^import-font-/.test(String(u||"")));return!p||!c?a:(n+=1,`<div${i}>${s}</div>`)});return e&&n>0&&(e.intentHits+=1,_(e,"intent.typography.metric-paragraph-to-div"),j(e,`Normalized ${n} metric text paragraph tag(s) to div.`)),o}function Nn(t="",e=""){if(!e)return t;let r=String(t||""),n=r.match(/\sclass\s*=\s*(["'])(.*?)\1/i);if(!n)return r;let o=n[1]||'"',a=ae(n[2]).filter(s=>s!==e);if(a.length===0)return r.replace(n[0],"");let i=` class=${o}${a.join(" ")}${o}`;return r.replace(n[0],i)}function ei(t="",e=r=>r){let r=String(t||""),n=r.match(/\sclass\s*=\s*(["'])(.*?)\1/i);if(!n)return r;let o=n[1]||'"',a=ae(n[2]),i=e(Array.from(a)),s=Array.isArray(i)?i.filter(Boolean):a;if(s.length===0)return r.replace(n[0],"");let d=` class=${o}${s.join(" ")}${o}`;return r.replace(n[0],d)}function ti(t="",e=null){let r=String(t||"");if(!r)return r;let n=0,o=r.replace(/<(div|section|article|aside)([^>]*)>\s*<(p|div)([^>]*)>[\s\S]*?<\/\3>\s*<(p|div)([^>]*)>[\s\S]*?<\/\5>\s*<\/\1>/gi,(a,i,s,d,l,p,c)=>{let u=String(s||"").match(/\sclass\s*=\s*(["'])(.*?)\1/i);if(!u||!ae(u[2]).includes("stack-sm"))return a;let g=String(l||"").match(/\sclass\s*=\s*(["'])(.*?)\1/i),x=String(c||"").match(/\sclass\s*=\s*(["'])(.*?)\1/i);if(!g||!x)return a;let b=ae(g[2]),f=ae(x[2]);if(!(b.some(m=>/^import-text-/.test(String(m||"")))&&f.some(m=>/^import-text-/.test(String(m||"")))))return a;let v=Nn(s,"stack-sm");return n+=1,a.replace(`<${i}${s}>`,`<${i}${v}>`)});return e&&n>0&&(e.intentHits+=1,_(e,"intent.typography.metric-pair-no-stack"),j(e,`Removed stack-sm from ${n} metric text pair container(s).`)),o}function ri(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 ni(t={}){let e=ri(t),r=Number(e.fontScale);return Number.isFinite(r)?Math.max(1,Math.min(2,r)):zt}function oi(t="",e=zt){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))):zt,a=Math.max(-1,Math.min(1,Math.round((o-zt)/.25))),i=n-a;return i<1?"h1":i>4?"":`h${i}`}function ai(t="",e=null,r={}){let n=String(t||"");if(!n)return n;let o=ni(r.config||{}),a=0,i=0,s=n.replace(/<(p|div|span)([^>]*)>([\s\S]*?)<\/\1>/gi,(d,l,p,c)=>{let u=String(p||"").match(/\sclass\s*=\s*(["'])(.*?)\1/i);if(!u)return d;let y=ae(u[2]);if(!y.includes("import-font-bold"))return d;let x=y.find(m=>/^import-text-(?:4xl|3xl|2xl|xl)$/.test(String(m||"")))||"",b=x.match(/^import-text-(4xl|3xl|2xl|xl)$/);if(b){let m=oi(b[1],o);if(!m)return d;let S=ei(p,C=>C.filter(T=>T!=="import-font-bold"&&T!==x));return a+=1,`<${m}${S}>${c}</${m}>`}let f=/<\/?(?:div|p|section|article|aside|main|header|footer|ul|ol|li|table|tr|td|th|h[1-6])\b/i.test(c),h=/<\/?(?:strong|b)\b/i.test(c);if(f||h)return d;let v=Nn(p,"import-font-bold");return i+=1,`<${l}${v}><strong>${c}</strong></${l}>`});return e&&(a>0&&(e.intentHits+=1,_(e,"intent.typography.semantic-heading-from-scale"),j(e,`Converted ${a} bold display text node(s) to semantic heading tags (fontScale=${Number(o).toFixed(2)}).`)),i>0&&(e.intentHits+=1,_(e,"intent.typography.bold-to-strong"),j(e,`Wrapped ${i} bold text node(s) in strong tags.`))),s}function ii(t=[]){if(!Array.isArray(t)||t.length===0)return"";let e=t.filter(n=>!Ct.includes(n));if(e.length===0||e.length>1)return"";let r=e[0];return["hover","focus","active"].includes(r)?r:""}function Tn(t,e="base",r=[]){let n=ii(r),o=Wa[t];if(o)return{declaration:o,breakpoint:e,pseudo:n,ruleId:"fallback.import-style"};let a=String(t).match(/^gap-(\d+)$/);if(a){let k={0:"var(--spacing-0)",1:"var(--spacing-1)",2:"var(--spacing-2)",3:"var(--spacing-3)",4:"var(--spacing-4)",5:"var(--spacing-5)",6:"var(--spacing-6)",7:"var(--spacing-7)",8:"var(--spacing-8)",10:"var(--spacing-10)",12:"var(--spacing-12)"},L=Number(a[1]);if(k[L])return{declaration:`gap:${k[L]}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.gap-scale"}}let i=String(t).match(/^(mt|mb|my)-(.+)$/);if(i){let k=i[1],L=i[2],A=Ke(L);if(A){let R="";return k==="mt"?R=`margin-top:${A}`:k==="mb"?R=`margin-bottom:${A}`:R=`margin-top:${A};margin-bottom:${A}`,{declaration:R,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.margin-scale"}}}let s=String(t).match(/^min-w-\[([^\]]+)\]$/);if(s){let k=Ae(s[1]);if(Te(k))return{declaration:`min-width:${k}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.min-width-arbitrary"}}let d=String(t).match(/^max-w-\[([^\]]+)\]$/);if(d){let k=Ae(d[1]);if(Te(k))return{declaration:`max-width:${k}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.max-width-arbitrary"}}let l=String(t).match(/^min-h-\[([^\]]+)\]$/);if(l){let k=Ae(l[1]);if(Te(k))return{declaration:`min-height:${k}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.min-height-arbitrary"}}let p=String(t).match(/^grid-rows-\[([^\]]+)\]$/);if(p){let k=Ae(p[1]);if(Te(k))return{declaration:`grid-template-rows:${k}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.grid-rows-arbitrary"}}let c=String(t).match(/^size-(.+)$/);if(c){let k=Ke(c[1]);if(k)return{declaration:`width:${k};height:${k}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.size-scale"}}let u=String(t).match(/^w-(.+)$/);if(u){let k=Ke(u[1]);if(k)return{declaration:`width:${k}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.width-scale"}}let y=String(t).match(/^h-(.+)$/);if(y){let k=Ke(y[1]);if(k)return{declaration:`height:${k}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.height-scale"}}let g={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)"},x=String(t).match(/^text-(xs|sm|base|lg|xl|2xl|3xl|4xl)$/);if(x)return{declaration:`font-size:${g[x[1]]}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.text-size"};let b={normal:"400",medium:"500",semibold:"600",bold:"700",extrabold:"800",black:"900"},f=String(t).match(/^font-(normal|medium|semibold|bold|extrabold|black)$/);if(f)return{declaration:`font-weight:${b[f[1]]}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.font-weight"};let h={none:"1",tight:"1.25",snug:"1.375",normal:"1.5",relaxed:"1.625",loose:"2"},v=String(t).match(/^leading-(none|tight|snug|normal|relaxed|loose)$/);if(v)return{declaration:`line-height:${h[v[1]]}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.line-height"};let m={tighter:"-0.05em",tight:"-0.025em",normal:"0em",wide:"0.025em",wider:"0.05em",widest:"0.1em"},S=String(t).match(/^tracking-(tighter|tight|normal|wide|wider|widest)$/);if(S)return{declaration:`letter-spacing:${m[S[1]]}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.tracking"};let C=String(t).match(/^bg-black\/(\d{1,3})$/);if(C)return{declaration:`background-color:color-mix(in srgb, var(--color-gray-900) ${Math.max(0,Math.min(100,Number(C[1])))}%, transparent)`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.overlay-alpha"};if(t==="text-white")return{declaration:"color:var(--color-gray-50)",breakpoint:e,pseudo:n,ruleId:"fallback.import-style.text-inverse"};let T=String(t).match(/^bg-(primary|secondary|accent)$/);if(T){let L={primary:"var(--color-primary-fill)",secondary:"var(--color-gray-500)",accent:"var(--color-accent-500)"}[T[1]];if(L)return{declaration:`background-color:${L}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.bg-semantic"}}let I=String(t).match(/^bg-([a-z]+)-(\d{2,3})$/);if(I){let k=Ye(I[1],I[2]);if(k)return{declaration:`background-color:${k}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.bg-tokenized"}}let z=String(t).match(/^bg-\[([^\]]+)\]$/);if(z){let k=An(z[1]);if(k)return{declaration:`background-color:${k}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.bg-arbitrary"}}let E=String(t).match(/^text-([a-z]+)-(\d{2,3})$/);if(E){let k=Ye(E[1],E[2]);if(k)return{declaration:`color:${k}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.text-tokenized"}}let P=String(t).match(/^text-\[([^\]]+)\]$/);if(P){let k=An(P[1]);if(k)return{declaration:`color:${k}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.text-arbitrary"}}let M=String(t).match(/^rounded(?:-([trbl]{1,2}))?(?:-(none|xs|sm|md|lg|xl|2xl|3xl|full))?$/);if(M){let k=M[1]||"",L=M[2]||"sm",A=L==="none"?"0":`var(--radius-${L})`,R={t:["top-left","top-right"],b:["bottom-left","bottom-right"],l:["top-left","bottom-left"],r:["top-right","bottom-right"],tl:["top-left"],tr:["top-right"],bl:["bottom-left"],br:["bottom-right"]};if(!k)return{declaration:`border-radius:${A}`,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.rounded"};let B=(R[k]||[]).map(K=>`border-${K}-radius:${A}`).join(";");if(B)return{declaration:B,breakpoint:e,pseudo:n,ruleId:"fallback.import-style.rounded"}}return null}function Lt(t,e){return typeof t=="number"&&Number.isFinite(t)?`${t}px`:typeof t=="string"&&t.trim()?t.trim():`${e}px`}function si(t={}){let r=(t?.design&&typeof t.design=="object"?t.design:t)?.layout?.breakpoints||{};return{sm:Lt(r.sm,640),md:Lt(r.md,768),lg:Lt(r.lg,1024),xl:Lt(r.xl,1280)}}function li(t,e){let r=Array.from(t.importBaseStyles.entries()).map(([a,i])=>`.${a}{${i};}`),n=[];for(let[a,i]of t.importResponsiveStyles.entries()){let s=e?.[a];if(!s||!i?.size)continue;let d=Array.from(i.entries()).map(([l,p])=>`.${l}{${p};}`).join(`
|
|
3732
3952
|
`);n.push(`@media (min-width: ${s}) {
|
|
3733
|
-
${
|
|
3734
|
-
}`)}for(let[a,i]of
|
|
3735
|
-
`);if(!
|
|
3736
|
-
${
|
|
3953
|
+
${d}
|
|
3954
|
+
}`)}for(let[a,i]of t.importPseudoStyles.entries()){let[s,d]=String(a).split("|");if(!d||!i?.size)continue;let l=Array.from(i.entries()).map(([c,u])=>`.${c}:${d}{${u};}`).join(`
|
|
3955
|
+
`);if(!l)continue;if(s==="base"){n.push(l);continue}let p=e?.[s];p&&n.push(`@media (min-width: ${p}) {
|
|
3956
|
+
${l}
|
|
3737
3957
|
}`)}let o=[...r,...n].filter(Boolean).join(`
|
|
3738
3958
|
`);return o.trim()?["/* pds-import: generated fallback styles for unmapped Tailwind utilities */",o].join(`
|
|
3739
|
-
`):""}function
|
|
3740
|
-
${
|
|
3741
|
-
</style>`;return/<head[^>]*>/i.test(
|
|
3959
|
+
`):""}function ci(t="",e=""){if(!e||!e.trim())return t;let r=`<style data-pds-import="tailwind-fallback">
|
|
3960
|
+
${e}
|
|
3961
|
+
</style>`;return/<head[^>]*>/i.test(t)?t.replace(/<head([^>]*)>/i,`<head$1>
|
|
3742
3962
|
${r}`):`${r}
|
|
3743
|
-
${e}`}function Tn(e=""){if(!e)return!1;if(e.includes(":")||e.includes("["))return!0;let t=e.split("-")[0];return Wa.includes(t)}function ie(e=""){let t=String(e).split(":");if(t.length===1)return{breakpoint:"base",base:t[0],variants:[]};let r=t[t.length-1],n=t.slice(0,-1);return{breakpoint:n.find(a=>Lt.includes(a))||"base",base:r,variants:n}}function si(){return{totalTailwind:0,mapped:0,ignored:0,policySkipped:0,unknown:0,intentHits:0,unknownTokens:new Map,notes:[],appliedRules:new Set,importBaseStyles:new Map,importResponsiveStyles:new Map,importPseudoStyles:new Map,importedStyleCount:0,labelNestingCount:0,removedAtomicSpacingCount:0,removedAtomicPositioningCount:0}}function li(e=""){let t=String(e||"").toLowerCase().replace(/\s+/g,""),r=t.includes("menu,ol,ul{list-style:none")||t.includes("ol,ul,menu{list-style:none")||t.includes("ul,ol,menu{list-style:none"),n=t.includes("a{color:inherit;text-decoration:inherit");return{listReset:r,anchorReset:n}}function ci(e=""){return String(e||"").toLowerCase().includes("cdn.tailwindcss.com")?{listReset:!0,anchorReset:!0}:{listReset:!1,anchorReset:!1}}function di(e="",t=null){let r=String(e||""),n={listReset:!1,anchorReset:!1,strippedRuntimeCssBlocks:0,strippedRuntimeScripts:0};return r=r.replace(/<style([^>]*)>([\s\S]*?)<\/style>/gi,(o,a,i)=>{let s=String(i||"");if(!(/tailwindcss\s+v\d/i.test(s)||/\*\s*!\s*tailwindcss/i.test(s)))return o;let c=li(s);return n.listReset=n.listReset||c.listReset,n.anchorReset=n.anchorReset||c.anchorReset,n.strippedRuntimeCssBlocks+=1,""}),r=r.replace(/<script([^>]*?)src\s*=\s*(?:(['"])([^"']*cdn\.tailwindcss\.com[^"']*)\2|([^\s>]*cdn\.tailwindcss\.com[^\s>]*))([^>]*)><\/script>/gi,(o,a,i,s,p)=>{let d=ci(s||p||"");return n.listReset=n.listReset||d.listReset,n.anchorReset=n.anchorReset||d.anchorReset,n.strippedRuntimeScripts+=1,""}),t&&(n.strippedRuntimeCssBlocks>0||n.strippedRuntimeScripts>0)&&(R(t,"intent.preflight.tailwind-runtime-detected"),n.strippedRuntimeCssBlocks>0&&j(t,`Detected and stripped ${n.strippedRuntimeCssBlocks} Tailwind runtime style block(s).`)),t&&n.strippedRuntimeScripts>0&&j(t,`Removed ${n.strippedRuntimeScripts} Tailwind CDN script reference(s).`),{html:r,hints:n}}function j(e,t){!e||!t||e.notes.includes(t)||e.notes.push(t)}function pi(e,t){let r=e.unknownTokens.get(t)||0;e.unknownTokens.set(t,r+1)}function ui(e={}){let r=(e?.design&&typeof e.design=="object"?e.design:e)?.layout?.utilities||{};return{grid:r.grid!==!1,flex:r.flex!==!1,spacing:r.spacing!==!1,container:r.container!==!1}}function J(e,t){return t?e?.[t]!==!1:!0}function An(e){let t=String(e).match(/^grid-cols-(\d+)$/);return t?Number(t[1]):null}function Rn(e={}){let t=Lt.map(o=>({bp:o,cols:e[o]})).filter(o=>Number.isFinite(o.cols));if(t.length<2)return null;if(t.length===2){let[o,a]=t;if(o.bp==="base"&&o.cols===1&&a.cols===2)return"grid-auto-lg";if(o.bp==="base"&&o.cols===1&&a.cols>=3)return null;if(o.cols<a.cols){if(a.cols>=4)return"grid-auto-md";if(a.cols>=2)return"grid-auto-lg"}return null}let r=!0;for(let o=1;o<t.length;o+=1)if(t[o].cols<=t[o-1].cols){r=!1;break}if(!r)return null;let n=t[t.length-1]?.cols||0;return n>=4?"grid-auto-md":n>=3?"grid-auto-sm":null}function gi(e=""){let t=String(e).match(/^text-(gray|slate|zinc|neutral|stone)-(\d{2,3})$/);if(!t)return"";let r=Number(t[2]);return Number.isFinite(r)&&r>=400&&r<=600?"text-muted":""}function mi(e="",t=0){return!e||!Number.isFinite(t)?"":{sm:{2:"sm:grid-cols-2"},md:{3:"md:grid-cols-3"},lg:{4:"lg:grid-cols-4"}}?.[e]?.[t]||""}function fi(e=""){let t=ie(e),n=String(t?.base||"").match(/^space-y-(\d+)$/);if(!n)return"stack-md";let o=Number(n[1]);return Number.isFinite(o)?o<=1?"stack-xs":o<=2?"stack-sm":o<=4?"stack-md":"stack-lg":"stack-md"}function hi(e=new Set){return Array.from(e).some(t=>{let r=String(t||"");return/^gap-(?:xs|sm|md|lg|xl)$/.test(r)||/^gap-[0-9]+$/.test(r)||/^import-(?:sm-|md-|lg-|xl-)?gap-/.test(r)})}function bi(e=new Set){return Array.from(e).some(t=>/^stack-(?:xs|sm|md|lg|xl)$/.test(String(t||"")))}function yi(e=new Set){return Array.from(e).some(t=>{let r=String(t||"");return/^grid-cols-\d+$/.test(r)||/^grid-auto-(?:sm|md|lg|xl)$/.test(r)||/^(?:sm|md|lg|xl):grid-cols-\d+$/.test(r)||/^import-(?:sm-|md-|lg-|xl-)?grid-cols-\d+$/.test(r)})}function vi(e,t=12){return Array.from(e.unknownTokens.entries()).sort((r,n)=>n[1]-r[1]).slice(0,t).map(([r])=>r)}function R(e,t){!e||!t||e.appliedRules.add(t)}function le(e=[],t){return!Array.isArray(e)||!t?!1:e.some(r=>t.test(String(r)))}function xi(e=[]){for(let t of e){let r=ie(t);if(r.breakpoint!=="base")continue;let n=String(r.base).match(/^h-(.+)$/);if(!n)continue;let o=Ke(n[1]);if(!o||o==="auto")continue;let a=String(o).match(/^(-?\d+(?:\.\d+)?)rem$/);if(a){let i=Number(a[1]);if(Number.isFinite(i))return i*16}}return null}function wi(e=[],t=""){let r=t==="button",n=le(e,/^bg-/),o=le(e,/^hover:bg-/),a=le(e,/^border/),i=le(e,/^shadow/),s=e.includes("cursor-pointer"),p=le(e,/^rounded/),c=le(e,/^(?:min-w|max-w|w)-/),d=le(e,/^text-(?:white|black|\[[^\]]+\]|[a-z]+-\d{2,3})$/),l=n||o||i;if(!(r||t==="a"&&(l||a||s||p&&c)))return{shouldNormalize:!1,variant:"none",size:"base",iconOnly:!1};let m="none";a&&!n&&!o?m="outline":(l||n&&d)&&(m="primary");let b=e.includes("rounded-full")&&(e.includes("p-2")||e.includes("p-1")||e.includes("p-2.5")),f=le(e,/^size-(?:6|7|8|9|10|11|12)$/),y=b||f,k=xi(e),v=e.includes("text-sm")||e.includes("text-xs"),$=e.includes("text-lg")||e.includes("text-xl"),A="base";return k&&k<=40||v?A="sm":(k&&k>=48||$)&&(A="lg"),{shouldNormalize:!0,variant:m,size:A,iconOnly:y}}function ki(e=""){let t=String(e||"").toLowerCase();return["green","emerald","lime","teal"].includes(t)?"badge-success":["blue","sky","cyan","indigo"].includes(t)?"badge-info":["yellow","amber","orange"].includes(t)?"badge-warning":["red","rose","pink"].includes(t)?"badge-danger":["gray","slate","zinc","neutral","stone"].includes(t)?"badge-secondary":["purple","violet","fuchsia","primary","accent"].includes(t)?"badge-primary":"badge-secondary"}function Si(e=[],t="",r={shouldNormalize:!1}){if(r?.shouldNormalize)return{shouldNormalize:!1,variantClass:"",outline:!1,sizeClass:"",pastel:null};if(["button","a","input","select","textarea"].includes(t))return{shouldNormalize:!1,variantClass:"",outline:!1,sizeClass:"",pastel:null};if(e.some(M=>/^badge(?:-|$)/.test(String(M))))return{shouldNormalize:!1,variantClass:"",outline:!1,sizeClass:"",pastel:null};let n=e.map(M=>ie(M)).filter(M=>M.breakpoint==="base").map(M=>String(M.base)),o=n.some(M=>/^rounded(?:-|$)/.test(M)),a=n.some(M=>/^px-/.test(M)),i=n.some(M=>/^py-/.test(M)),s=a&&i,p=n.includes("text-xs")||n.includes("text-sm"),c=n.includes("text-lg")||n.includes("text-xl"),d=n.map(M=>M.match(/^bg-([a-z]+)-(\d{2,3})(?:\/\d{1,3})?$/)).find(Boolean),l=n.map(M=>M.match(/^text-([a-z]+)-(\d{2,3})(?:\/\d{1,3})?$/)).find(Boolean),u=n.map(M=>M.match(/^border-([a-z]+)-(\d{2,3})$/)).find(Boolean),g=Number(d?.[2]),m=Number(l?.[2]),b=!!(d&&Number.isFinite(g)&&g<=300),f=n.some(M=>/^border(?:-|$)/.test(M)),y=!!(d||l||u),k=[o,s,p,b||f].filter(Boolean).length;if(!(y&&k>=3))return{shouldNormalize:!1,variantClass:"",outline:!1,sizeClass:"",pastel:null};let $=d&&d[1]||l&&l[1]||u&&u[1]||"",A=ki($),T=f&&!b,F=p?"badge-sm":c?"badge-lg":"",I=b?{family:$,bgShade:Number.isFinite(g)?g:200,textShade:Number.isFinite(m)?m:700}:null;return{shouldNormalize:!0,variantClass:I?"":A,outline:T,sizeClass:F,pastel:I}}function $i(e="",t=0){let r=String(e||"").toLowerCase(),n=Number(t);return r==="white"?"surface-base":["gray","slate","zinc","neutral","stone"].includes(r)?Number.isFinite(n)&&n<=100?"surface-base":"surface-subtle":["blue","sky","cyan","indigo","primary","info"].includes(r)?"surface-info":["purple","violet","fuchsia","accent"].includes(r)?"surface-primary":["green","emerald","lime","teal","success"].includes(r)?"surface-success":["yellow","amber","orange","warning"].includes(r)?"surface-warning":["red","rose","pink","danger"].includes(r)?"surface-danger":"surface-base"}function zi(e=[],t="",r={shouldNormalize:!1},n={shouldNormalize:!1}){if(r?.shouldNormalize||n?.shouldNormalize)return{shouldNormalize:!1,cardVariantClass:"",surfaceClass:""};if(!new Set(["div","section","article","aside","li"]).has(t))return{shouldNormalize:!1,cardVariantClass:"",surfaceClass:""};if(e.some(f=>/^card(?:-|$)/.test(String(f))))return{shouldNormalize:!1,cardVariantClass:"",surfaceClass:""};let a=e.map(f=>ie(f)).filter(f=>f.breakpoint==="base").map(f=>String(f.base)),i=a.some(f=>/^rounded(?:-|$)/.test(f)),s=a.some(f=>/^border(?:$|-)/.test(f)),p=a.some(f=>/^shadow(?:$|-)/.test(f)),c=a.some(f=>/^(?:p|px|py|pt|pb|pl|pr)-/.test(f)),d=a.map(f=>f.match(/^bg-([a-z]+)-?(\d{2,3})?$/)).find(Boolean),l=a.includes("bg-white")||!!d;if(!([i,s||p,l,c].filter(Boolean).length>=3))return{shouldNormalize:!1,cardVariantClass:"",surfaceClass:""};let m="card-basic";p?m="card-elevated":s&&(m="card-outlined");let b="";return p?b="surface-elevated":d?b=$i(d[1],d[2]):l&&(b="surface-base"),{shouldNormalize:!0,cardVariantClass:m,surfaceClass:b}}function Li({tagName:e,originalClassValue:t,policy:r,summary:n,preflightHints:o={}}){if(Oa.has(e))return R(n,"table.strict-tags.no-classes"),"";let a=String(t).split(/\s+/).filter(Boolean),i=wi(a,e),s=Si(a,e,i),p=zi(a,e,i,s),c=/^h[1-6]$/.test(e),d=["i","svg"].includes(e)||a.some(z=>/^fa(?:[a-z-]+)?$/i.test(String(z||""))||/^fa-/.test(String(z||""))),l=new Set,u={},g={},m=!1,b="",f="",y=!1,k="";a.forEach(z=>{let x=ie(z),S=x.base;if(ja.some(P=>P.test(S))){n.ignored+=1,R(n,"cleanup.non-pds-class");return}let C=Tn(z)||Tn(S);if(C&&(n.totalTailwind+=1),/^space-y-/.test(S)){m=!0,b=b||z,f=f||fi(z),n.ignored+=1,R(n,"layout.spacing.space-y-to-stack");return}if(/^space-x-/.test(S)){let P=String(S).match(/^space-x-(\d+)$/);if(P){let D=`gap-${P[1]}`,Y=ur.get(D);if(Y&&J(r,"spacing")){l.add(Y),y=!0,k=k||z,n.mapped+=1,n.intentHits+=1,R(n,"layout.spacing.space-x-to-gap");return}}n.ignored+=1,R(n,"style.spacing.atomic");return}if(/^grid-cols-\d+$/.test(S)&&x.breakpoint!=="base"){let P=An(S);if(Number.isFinite(P)&&J(r,"grid")){u[x.breakpoint]=P,n.mapped+=1,R(n,"intent.layout.responsive-grid-to-auto");return}if(!J(r,"grid")){n.policySkipped+=1,j(n,"Skipped responsive grid mapping because layout.utilities.grid=false.");return}}if(/^flex-(?:row|col)$/.test(S)&&x.breakpoint!=="base"){if(J(r,"flex")){g[x.breakpoint]=S,n.mapped+=1,R(n,"intent.layout.mobile-stack");return}n.policySkipped+=1,j(n,"Skipped responsive flex mapping because layout.utilities.flex=false.");return}if(/^grid-cols-\d+$/.test(S)&&x.breakpoint==="base"){let P=An(S);Number.isFinite(P)&&J(r,"grid")&&(u.base=P)}let E=Ia.get(S);if(E&&x.breakpoint==="base"){if(!J(r,E.gate)){n.policySkipped+=1,j(n,`Skipped ${S} because layout.utilities.${E.gate}=false.`);return}E.pds.forEach(P=>{P&&l.add(P)}),n.mapped+=1,R(n,E.id);return}if(ur.has(S)&&x.breakpoint==="base"){if(!J(r,"spacing")){n.policySkipped+=1,j(n,"Skipped gap utility because layout.utilities.spacing=false.");return}l.add(ur.get(S)),n.mapped+=1,R(n,"layout.spacing.gap-scale");return}if(zn.has(S)&&x.breakpoint==="base"){if(!J(r,"container")){n.policySkipped+=1,j(n,"Skipped max-width utility because layout.utilities.container=false.");return}l.add(zn.get(S)),n.mapped+=1,R(n,"layout.container.max-width");return}if(i.shouldNormalize&&C){let P=String(S||"");if(x.breakpoint==="base"&&["flex-1","grow","flex-grow"].includes(P)){l.add("grow"),n.mapped+=1,n.intentHits+=1,R(n,"intent.component.button.layout-grow");return}if(/^(?:bg-|text-(?!center$|left$|right$)|font-|leading-|tracking-|rounded|ring|border|shadow|outline|transition|duration|ease|delay|animate|p|px|py|pt|pb|pl|pr|m|mx|my|mt|mb|ml|mr|w-|h-|min-|max-|size-|overflow)/.test(P)||P.startsWith("hover:")){n.ignored+=1,R(n,"intent.component.button.normalize");return}}if(c&&/^(?:text-(?:xs|sm|base|lg|xl|\dxl|white|black|\[[^\]]+\]|[a-z]+-\d{2,3})|font-|leading-|tracking-|uppercase|lowercase|capitalize)/.test(S)){n.ignored+=1,n.intentHits+=1,R(n,"intent.typography.heading-semantic");return}if(s.shouldNormalize&&C){let P=String(S||"");if(/^(?:bg-|text-(?!center$|left$|right$)|font-|leading-|tracking-|rounded|ring|border|shadow|outline|transition|duration|ease|delay|animate|p|px|py|pt|pb|pl|pr|m|mx|my|mt|mb|ml|mr|w-|h-|min-|max-|size-|overflow)/.test(P)||P.startsWith("hover:")){n.ignored+=1,R(n,"intent.component.badge.normalize");return}}if(p.shouldNormalize&&C){let P=String(S||"");if(/^(?:bg-|text-(?!center$|left$|right$)|font-|leading-|tracking-|rounded|ring|border|shadow|outline|transition|duration|ease|delay|animate|p|px|py|pt|pb|pl|pr|m|mx|my|mt|mb|ml|mr)/.test(P)||P.startsWith("hover:")){n.ignored+=1,R(n,"intent.component.card.normalize");return}}let O=gi(S);if(O&&x.breakpoint==="base"){l.add(O),n.mapped+=1,n.intentHits+=1,R(n,"intent.typography.text-neutral-to-muted");return}if(/^text-(?:white|black|[a-z]+-\d{2,3}|\[[^\]]+\])$/.test(S)){if(d||e==="a"&&!i.shouldNormalize){let D=En(S,x.breakpoint,x.variants);if(D){let Y=fe(n,`${e}-color-${S}`,D.declaration,D.breakpoint,D.pseudo);if(Y){l.add(Y),n.mapped+=1,n.intentHits+=1,R(n,d?"intent.icon.color-preserve":"intent.typography.link-active-preserve");return}}}n.ignored+=1,R(n,"style.color");return}let K=En(S,x.breakpoint,x.variants);if(K){let P=fe(n,S,K.declaration,K.breakpoint,K.pseudo);if(P){l.add(P),n.mapped+=1,n.intentHits+=1,R(n,K.ruleId),x.breakpoint!=="base"&&j(n,`Generated responsive import fallback for ${z}.`);return}}for(let P of G.ignoredPatterns)if(P.pattern.test(S)){n.ignored+=1,R(n,P.id),P.id==="style.spacing.atomic"&&(n.removedAtomicSpacingCount+=1),P.id==="style.positioning.atomic"&&(n.removedAtomicPositioningCount+=1);return}if(C){n.unknown+=1,pi(n,z);return}l.add(z)}),m&&J(r,"spacing")&&(l.add(f||"stack-md"),n.mapped+=1,n.intentHits+=1,j(n,`Mapped ${b} to ${f||"stack-md"}.`)),y&&J(r,"spacing")&&j(n,`Mapped ${k} to gap utility.`);let v=Rn(u);if(v&&J(r,"grid")?(l.delete("grid-cols-1"),l.delete("grid-cols-2"),l.delete("grid-cols-3"),l.delete("grid-cols-4"),l.delete("grid-cols-6"),l.add("grid"),l.add(v),n.intentHits+=1,R(n,"intent.layout.responsive-grid-to-auto"),j(n,`Collapsed responsive grid columns to ${v}.`)):J(r,"grid")&&Lt.filter(x=>x!=="base"&&Number.isFinite(u[x])).forEach(x=>{let S=u[x],C=mi(x,S);if(C){l.add("grid"),l.add(C),n.intentHits+=1,R(n,"intent.layout.responsive-grid-to-auto"),j(n,`Mapped ${x}:grid-cols-${S} to ${C}.`);return}let E=fe(n,`grid-cols-${S}`,`grid-template-columns:repeat(${S}, minmax(0, 1fr))`,x);E&&(l.add("grid"),l.add(E),n.intentHits+=1,R(n,"fallback.import-style.grid-cols-responsive"),j(n,`Mapped ${x}:grid-cols-${S} to responsive import fallback for exact columns.`))}),J(r,"flex")&&a.includes("flex-col")&&(g.md==="flex-row"||g.lg==="flex-row")&&(l.delete("flex-col"),l.delete("flex-row"),l.add("mobile-stack"),n.intentHits+=1,R(n,"intent.layout.mobile-stack"),j(n,"Mapped flex-col + breakpoint flex-row to mobile-stack.")),(l.has("flex")||l.has("inline-flex"))&&J(r,"spacing")&&(hi(l)||bi(l)||y||m||(l.add("gap-sm"),n.intentHits+=1,R(n,"layout.spacing.flex-min-gap"),j(n,"Added gap-sm fallback for flex container without explicit spacing."))),a.some(z=>/^grid-cols-\d+$/.test(ie(z).base))&&l.has("grid")&&!yi(l)){let z=Rn(u);z?(l.add(z),n.intentHits+=1,R(n,"intent.layout.responsive-grid-to-auto"),j(n,`Applied grid safety fallback ${z} to avoid bare grid output.`)):Number.isFinite(u.base)&&u.base>1?(l.add(`grid-cols-${u.base}`),n.intentHits+=1,R(n,"intent.layout.grid-safety-fallback"),j(n,`Applied grid safety fallback grid-cols-${u.base} to preserve explicit grid intent.`)):(l.add("mobile-stack"),n.intentHits+=1,R(n,"intent.layout.grid-safety-fallback.mobile-stack"),j(n,"Applied mobile-stack safety fallback to avoid bare grid output when explicit grid intent was present."))}let T=a.some(z=>/^(?:bg-white|shadow|shadow-md|shadow-lg)$/.test(z)),F=a.some(z=>/^rounded/.test(z));if(["div","section","article","li","aside"].includes(e)&&T&&F&&(l.add("card"),!l.has("surface-elevated")&&a.some(z=>/^shadow/.test(z))&&l.add("surface-elevated"),!l.has("surface-base")&&a.includes("bg-white")&&l.add("surface-base"),n.intentHits+=1,R(n,"intent.component.card")),e==="button"||e==="a"){let z=a.some(C=>/^bg-(?:[a-z]+-)?[4567]00$/.test(C))&&a.includes("text-white"),x=a.some(C=>/^border/.test(C))&&!z,S=a.includes("p-2")&&a.includes("rounded-full");z?(l.delete("surface-base"),l.delete("surface-elevated"),l.add("btn-primary"),n.intentHits+=1,R(n,"intent.component.button.primary")):x&&(l.add("btn-outline"),n.intentHits+=1,R(n,"intent.component.button.outline")),S&&(l.add("icon-only"),R(n,"intent.component.button.icon-only"))}if(i.shouldNormalize){for(let x of Array.from(l))String(x).startsWith("import-")&&l.delete(x);["flex","inline-flex","items-start","items-center","items-end","justify-start","justify-center","justify-end","justify-between","shrink","self-start","self-center","self-end","cursor-pointer","truncate","overflow-hidden","whitespace-nowrap","surface-base","surface-elevated","surface-subtle","card"].forEach(x=>l.delete(x)),i.variant==="primary"?(l.add("btn-primary"),R(n,"intent.component.button.primary")):i.variant==="outline"&&(l.add("btn-outline"),R(n,"intent.component.button.outline")),i.size==="sm"?(l.add("btn-sm"),R(n,"intent.component.button.size-sm")):i.size==="lg"&&(l.add("btn-lg"),R(n,"intent.component.button.size-lg")),i.iconOnly&&(l.add("icon-only"),R(n,"intent.component.button.icon-only")),n.intentHits+=1,R(n,"intent.component.button.normalize")}if(s.shouldNormalize){for(let x of Array.from(l))String(x).startsWith("import-")&&l.delete(x);if(["flex","inline-flex","items-start","items-center","items-end","justify-start","justify-center","justify-end","justify-between","grow","shrink","self-start","self-center","self-end","cursor-pointer","truncate","overflow-hidden","whitespace-nowrap","text-muted","surface-base","surface-elevated","surface-subtle","card"].forEach(x=>l.delete(x)),l.add("badge"),s.variantClass&&l.add(s.variantClass),s.outline&&l.add("badge-outline"),s.sizeClass&&l.add(s.sizeClass),s.pastel&&s.pastel.family){let x=Ye(s.pastel.family,String(s.pastel.bgShade||200)),S=Ye(s.pastel.family,String(s.pastel.textShade||700));if(x&&S){let C=`badge-pastel-${s.pastel.family}-${s.pastel.bgShade}-${s.pastel.textShade}`,E=fe(n,C,`background-color:${x};color:${S}`,"base");E&&(l.add(E),R(n,"intent.component.badge.pastel-preserve"),j(n,`Preserved pastel badge tone using ${E}.`))}}n.intentHits+=1,R(n,"intent.component.badge.normalize"),j(n,"Normalized badge/pill utility cluster to PDS badge classes.")}if(p.shouldNormalize){for(let x of Array.from(l))String(x).startsWith("import-")&&l.delete(x);["surface-base","surface-subtle","surface-elevated","surface-sunken","surface-overlay","surface-inverse","surface-primary","surface-secondary","surface-success","surface-warning","surface-danger","surface-info","card-basic","card-elevated","card-outlined","card-interactive"].forEach(x=>l.delete(x)),l.add("card"),p.cardVariantClass&&l.add(p.cardVariantClass),p.surfaceClass&&l.add(p.surfaceClass),n.intentHits+=1,R(n,"intent.component.card.normalize"),j(n,"Normalized card utility cluster to PDS card/surface classes.")}if(e==="a"&&!i.shouldNormalize&&a.some(x=>x.includes("hover:text")||x==="transition-colors")){let x=fe(n,"link-reset","text-decoration:none");x&&l.add(x),n.intentHits+=1,R(n,"intent.typography.link-treatment")}if(e==="footer"&&(l.has("surface-base")||a.some(x=>/^bg-/.test(x)))&&(l.delete("surface-base"),l.delete("surface-subtle"),l.add("surface-inverse"),n.intentHits+=1,R(n,"intent.surface.footer-inverse")),o?.listReset&&["ul","ol","menu"].includes(e)){let z=fe(n,"list-reset","list-style:none;margin:0;padding:0");z&&(l.add(z),n.intentHits+=1,R(n,"intent.preflight.list-reset"))}if(o?.anchorReset&&e==="a"&&!i.shouldNormalize){let z=fe(n,"anchor-reset","color:inherit;text-decoration:inherit");z&&(l.add(z),n.intentHits+=1,R(n,"intent.preflight.anchor-reset"))}let M=new Set(["div","section","article","aside","nav","main","header","footer","form","fieldset","ul","ol","li"]),N=a.some(z=>{let x=ie(z).base;return/^(?:flex|grid|container|gap-|space-[xy]-|items-|justify-|content-|place-|self-|w-|h-|min-|max-)/.test(x)});return l.size===0&&M.has(e)&&N&&(l.add("stack-sm"),j(n,`Added stack-sm fallback for <${e}> with unmapped classes.`)),Array.from(l).join(" ")}function Ci(e="",t={}){let r=String(e||""),n=ui(t.config||{}),o=oi(t.config||{}),a=si(),i=di(r,a),p=Ha(i.html,a).replace(/<([a-zA-Z][\w:-]*)([^>]*?)\sclass\s*=\s*(["'])(.*?)\3([^>]*)>/gs,(A,T,F,I,L,M)=>{let N=Li({tagName:String(T||"").toLowerCase(),originalClassValue:L,policy:n,summary:a,preflightHints:i.hints}),z=String(N||"").trim();return z?`<${T}${F} class=${I}${z}${I}${M}>`:`<${T}${F}${M}>`}),c=ri(Xa(Ya(Ja(p,a),a),a),a,{config:t.config||{}}),d=ai(a,o),l=ii(c,d);d&&j(a,`Generated ${a.importedStyleCount} import-* fallback style mappings.`),(a.removedAtomicSpacingCount>0||a.removedAtomicPositioningCount>0)&&j(a,`Removed atomic utilities by policy: spacing=${a.removedAtomicSpacingCount}, positioning=${a.removedAtomicPositioningCount}.`);let u=vi(a,16),g=a.mapped+a.ignored+a.policySkipped,m=a.totalTailwind>0?g/a.totalTailwind:1,b=a.totalTailwind>0?a.unknown/a.totalTailwind:0,f=.42+m*.45+Math.min(a.intentHits,4)*.025-b*.18,y=Math.max(.15,Math.min(.96,Number(f.toFixed(2)))),k=[`pds-import: rulebook=${$n} confidence=${Math.round(y*100)}%`,`pds-import: tailwind=${a.totalTailwind} mapped=${a.mapped} ignored=${a.ignored} policySkipped=${a.policySkipped} unknown=${a.unknown}`];u.length&&k.push(`pds-import: unknown-tailwind=${u.join(", ")}`),a.notes.length&&k.push(`pds-import: notes=${a.notes.join(" | ")}`);let v=`<!-- ${k.join(` -->
|
|
3963
|
+
${t}`}function Rn(t=""){if(!t)return!1;if(t.includes(":")||t.includes("["))return!0;let e=t.split("-")[0];return qa.includes(e)}function ie(t=""){let e=String(t).split(":");if(e.length===1)return{breakpoint:"base",base:e[0],variants:[]};let r=e[e.length-1],n=e.slice(0,-1);return{breakpoint:n.find(a=>Ct.includes(a))||"base",base:r,variants:n}}function di(){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 pi(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 ui(t=""){return String(t||"").toLowerCase().includes("cdn.tailwindcss.com")?{listReset:!0,anchorReset:!0}:{listReset:!1,anchorReset:!1}}function gi(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 l=pi(s);return n.listReset=n.listReset||l.listReset,n.anchorReset=n.anchorReset||l.anchorReset,n.strippedRuntimeCssBlocks+=1,""}),r=r.replace(/<script([^>]*?)src\s*=\s*(?:(['"])([^"']*cdn\.tailwindcss\.com[^"']*)\2|([^\s>]*cdn\.tailwindcss\.com[^\s>]*))([^>]*)><\/script>/gi,(o,a,i,s,d)=>{let p=ui(s||d||"");return n.listReset=n.listReset||p.listReset,n.anchorReset=n.anchorReset||p.anchorReset,n.strippedRuntimeScripts+=1,""}),e&&(n.strippedRuntimeCssBlocks>0||n.strippedRuntimeScripts>0)&&(_(e,"intent.preflight.tailwind-runtime-detected"),n.strippedRuntimeCssBlocks>0&&j(e,`Detected and stripped ${n.strippedRuntimeCssBlocks} Tailwind runtime style block(s).`)),e&&n.strippedRuntimeScripts>0&&j(e,`Removed ${n.strippedRuntimeScripts} Tailwind CDN script reference(s).`),{html:r,hints:n}}function j(t,e){!t||!e||t.notes.includes(e)||t.notes.push(e)}function fi(t,e){let r=t.unknownTokens.get(e)||0;t.unknownTokens.set(e,r+1)}function mi(t={}){let r=(t?.design&&typeof t.design=="object"?t.design:t)?.layout?.utilities||{};return{grid:r.grid!==!1,flex:r.flex!==!1,spacing:r.spacing!==!1,container:r.container!==!1}}function J(t,e){return e?t?.[e]!==!1:!0}function In(t){let e=String(t).match(/^grid-cols-(\d+)$/);return e?Number(e[1]):null}function _n(t={}){let e=Ct.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 hi(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 bi(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 yi(t=""){let e=ie(t),n=String(e?.base||"").match(/^space-y-(\d+)$/);if(!n)return"stack-md";let o=Number(n[1]);return Number.isFinite(o)?o<=1?"stack-xs":o<=2?"stack-sm":o<=4?"stack-md":"stack-lg":"stack-md"}function vi(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 xi(t=new Set){return Array.from(t).some(e=>/^stack-(?:xs|sm|md|lg|xl)$/.test(String(e||"")))}function wi(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 ki(t,e=12){return Array.from(t.unknownTokens.entries()).sort((r,n)=>n[1]-r[1]).slice(0,e).map(([r])=>r)}function _(t,e){!t||!e||t.appliedRules.add(e)}function le(t=[],e){return!Array.isArray(t)||!e?!1:t.some(r=>e.test(String(r)))}function Si(t=[]){for(let e of t){let r=ie(e);if(r.breakpoint!=="base")continue;let n=String(r.base).match(/^h-(.+)$/);if(!n)continue;let o=Ke(n[1]);if(!o||o==="auto")continue;let a=String(o).match(/^(-?\d+(?:\.\d+)?)rem$/);if(a){let i=Number(a[1]);if(Number.isFinite(i))return i*16}}return null}function $i(t=[],e=""){let r=e==="button",n=le(t,/^bg-/),o=le(t,/^hover:bg-/),a=le(t,/^border/),i=le(t,/^shadow/),s=t.includes("cursor-pointer"),d=le(t,/^rounded/),l=le(t,/^(?:min-w|max-w|w)-/),p=le(t,/^text-(?:white|black|\[[^\]]+\]|[a-z]+-\d{2,3})$/),c=n||o||i;if(!(r||e==="a"&&(c||a||s||d&&l)))return{shouldNormalize:!1,variant:"none",size:"base",iconOnly:!1};let g="none";a&&!n&&!o?g="outline":(c||n&&p)&&(g="primary");let x=t.includes("rounded-full")&&(t.includes("p-2")||t.includes("p-1")||t.includes("p-2.5")),b=le(t,/^size-(?:6|7|8|9|10|11|12)$/),f=x||b,h=Si(t),v=t.includes("text-sm")||t.includes("text-xs"),m=t.includes("text-lg")||t.includes("text-xl"),S="base";return h&&h<=40||v?S="sm":(h&&h>=48||m)&&(S="lg"),{shouldNormalize:!0,variant:g,size:S,iconOnly:f}}function Li(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 zi(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(E=>/^badge(?:-|$)/.test(String(E))))return{shouldNormalize:!1,variantClass:"",outline:!1,sizeClass:"",pastel:null};let n=t.map(E=>ie(E)).filter(E=>E.breakpoint==="base").map(E=>String(E.base)),o=n.some(E=>/^rounded(?:-|$)/.test(E)),a=n.some(E=>/^px-/.test(E)),i=n.some(E=>/^py-/.test(E)),s=a&&i,d=n.includes("text-xs")||n.includes("text-sm"),l=n.includes("text-lg")||n.includes("text-xl"),p=n.map(E=>E.match(/^bg-([a-z]+)-(\d{2,3})(?:\/\d{1,3})?$/)).find(Boolean),c=n.map(E=>E.match(/^text-([a-z]+)-(\d{2,3})(?:\/\d{1,3})?$/)).find(Boolean),u=n.map(E=>E.match(/^border-([a-z]+)-(\d{2,3})$/)).find(Boolean),y=Number(p?.[2]),g=Number(c?.[2]),x=!!(p&&Number.isFinite(y)&&y<=300),b=n.some(E=>/^border(?:-|$)/.test(E)),f=!!(p||c||u),h=[o,s,d,x||b].filter(Boolean).length;if(!(f&&h>=3))return{shouldNormalize:!1,variantClass:"",outline:!1,sizeClass:"",pastel:null};let m=p&&p[1]||c&&c[1]||u&&u[1]||"",S=Li(m),C=b&&!x,T=d?"badge-sm":l?"badge-lg":"",I=x?{family:m,bgShade:Number.isFinite(y)?y:200,textShade:Number.isFinite(g)?g:700}:null;return{shouldNormalize:!0,variantClass:I?"":S,outline:C,sizeClass:T,pastel:I}}function Ci(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 Mi(t=[],e="",r={shouldNormalize:!1},n={shouldNormalize:!1}){if(r?.shouldNormalize||n?.shouldNormalize)return{shouldNormalize:!1,cardVariantClass:"",surfaceClass:""};if(!new Set(["div","section","article","aside","li"]).has(e))return{shouldNormalize:!1,cardVariantClass:"",surfaceClass:""};if(t.some(b=>/^card(?:-|$)/.test(String(b))))return{shouldNormalize:!1,cardVariantClass:"",surfaceClass:""};let a=t.map(b=>ie(b)).filter(b=>b.breakpoint==="base").map(b=>String(b.base)),i=a.some(b=>/^rounded(?:-|$)/.test(b)),s=a.some(b=>/^border(?:$|-)/.test(b)),d=a.some(b=>/^shadow(?:$|-)/.test(b)),l=a.some(b=>/^(?:p|px|py|pt|pb|pl|pr)-/.test(b)),p=a.map(b=>b.match(/^bg-([a-z]+)-?(\d{2,3})?$/)).find(Boolean),c=a.includes("bg-white")||!!p;if(!([i,s||d,c,l].filter(Boolean).length>=3))return{shouldNormalize:!1,cardVariantClass:"",surfaceClass:""};let g="card-basic";d?g="card-elevated":s&&(g="card-outlined");let x="";return d?x="surface-elevated":p?x=Ci(p[1],p[2]):c&&(x="surface-base"),{shouldNormalize:!0,cardVariantClass:g,surfaceClass:x}}function Ei({tagName:t,originalClassValue:e,policy:r,summary:n,preflightHints:o={}}){if(Ha.has(t))return _(n,"table.strict-tags.no-classes"),"";let a=String(e).split(/\s+/).filter(Boolean),i=$i(a,t),s=zi(a,t,i),d=Mi(a,t,i,s),l=/^h[1-6]$/.test(t),p=["i","svg"].includes(t)||a.some(M=>/^fa(?:[a-z-]+)?$/i.test(String(M||""))||/^fa-/.test(String(M||""))),c=new Set,u={},y={},g=!1,x="",b="",f=!1,h="";a.forEach(M=>{let k=ie(M),L=k.base;if(Da.some(N=>N.test(L))){n.ignored+=1,_(n,"cleanup.non-pds-class");return}let A=Rn(M)||Rn(L);if(A&&(n.totalTailwind+=1),/^space-y-/.test(L)){g=!0,x=x||M,b=b||yi(M),n.ignored+=1,_(n,"layout.spacing.space-y-to-stack");return}if(/^space-x-/.test(L)){let N=String(L).match(/^space-x-(\d+)$/);if(N){let D=`gap-${N[1]}`,Y=fr.get(D);if(Y&&J(r,"spacing")){c.add(Y),f=!0,h=h||M,n.mapped+=1,n.intentHits+=1,_(n,"layout.spacing.space-x-to-gap");return}}n.ignored+=1,_(n,"style.spacing.atomic");return}if(/^grid-cols-\d+$/.test(L)&&k.breakpoint!=="base"){let N=In(L);if(Number.isFinite(N)&&J(r,"grid")){u[k.breakpoint]=N,n.mapped+=1,_(n,"intent.layout.responsive-grid-to-auto");return}if(!J(r,"grid")){n.policySkipped+=1,j(n,"Skipped responsive grid mapping because layout.utilities.grid=false.");return}}if(/^flex-(?:row|col)$/.test(L)&&k.breakpoint!=="base"){if(J(r,"flex")){y[k.breakpoint]=L,n.mapped+=1,_(n,"intent.layout.mobile-stack");return}n.policySkipped+=1,j(n,"Skipped responsive flex mapping because layout.utilities.flex=false.");return}if(/^grid-cols-\d+$/.test(L)&&k.breakpoint==="base"){let N=In(L);Number.isFinite(N)&&J(r,"grid")&&(u.base=N)}let R=Ba.get(L);if(R&&k.breakpoint==="base"){if(!J(r,R.gate)){n.policySkipped+=1,j(n,`Skipped ${L} because layout.utilities.${R.gate}=false.`);return}R.pds.forEach(N=>{N&&c.add(N)}),n.mapped+=1,_(n,R.id);return}if(fr.has(L)&&k.breakpoint==="base"){if(!J(r,"spacing")){n.policySkipped+=1,j(n,"Skipped gap utility because layout.utilities.spacing=false.");return}c.add(fr.get(L)),n.mapped+=1,_(n,"layout.spacing.gap-scale");return}if(Cn.has(L)&&k.breakpoint==="base"){if(!J(r,"container")){n.policySkipped+=1,j(n,"Skipped max-width utility because layout.utilities.container=false.");return}c.add(Cn.get(L)),n.mapped+=1,_(n,"layout.container.max-width");return}if(i.shouldNormalize&&A){let N=String(L||"");if(k.breakpoint==="base"&&["flex-1","grow","flex-grow"].includes(N)){c.add("grow"),n.mapped+=1,n.intentHits+=1,_(n,"intent.component.button.layout-grow");return}if(/^(?:bg-|text-(?!center$|left$|right$)|font-|leading-|tracking-|rounded|ring|border|shadow|outline|transition|duration|ease|delay|animate|p|px|py|pt|pb|pl|pr|m|mx|my|mt|mb|ml|mr|w-|h-|min-|max-|size-|overflow)/.test(N)||N.startsWith("hover:")){n.ignored+=1,_(n,"intent.component.button.normalize");return}}if(l&&/^(?:text-(?:xs|sm|base|lg|xl|\dxl|white|black|\[[^\]]+\]|[a-z]+-\d{2,3})|font-|leading-|tracking-|uppercase|lowercase|capitalize)/.test(L)){n.ignored+=1,n.intentHits+=1,_(n,"intent.typography.heading-semantic");return}if(s.shouldNormalize&&A){let N=String(L||"");if(/^(?:bg-|text-(?!center$|left$|right$)|font-|leading-|tracking-|rounded|ring|border|shadow|outline|transition|duration|ease|delay|animate|p|px|py|pt|pb|pl|pr|m|mx|my|mt|mb|ml|mr|w-|h-|min-|max-|size-|overflow)/.test(N)||N.startsWith("hover:")){n.ignored+=1,_(n,"intent.component.badge.normalize");return}}if(d.shouldNormalize&&A){let N=String(L||"");if(/^(?:bg-|text-(?!center$|left$|right$)|font-|leading-|tracking-|rounded|ring|border|shadow|outline|transition|duration|ease|delay|animate|p|px|py|pt|pb|pl|pr|m|mx|my|mt|mb|ml|mr)/.test(N)||N.startsWith("hover:")){n.ignored+=1,_(n,"intent.component.card.normalize");return}}let O=hi(L);if(O&&k.breakpoint==="base"){c.add(O),n.mapped+=1,n.intentHits+=1,_(n,"intent.typography.text-neutral-to-muted");return}if(/^text-(?:white|black|[a-z]+-\d{2,3}|\[[^\]]+\])$/.test(L)){if(p||t==="a"&&!i.shouldNormalize){let D=Tn(L,k.breakpoint,k.variants);if(D){let Y=me(n,`${t}-color-${L}`,D.declaration,D.breakpoint,D.pseudo);if(Y){c.add(Y),n.mapped+=1,n.intentHits+=1,_(n,p?"intent.icon.color-preserve":"intent.typography.link-active-preserve");return}}}n.ignored+=1,_(n,"style.color");return}let K=Tn(L,k.breakpoint,k.variants);if(K){let N=me(n,L,K.declaration,K.breakpoint,K.pseudo);if(N){c.add(N),n.mapped+=1,n.intentHits+=1,_(n,K.ruleId),k.breakpoint!=="base"&&j(n,`Generated responsive import fallback for ${M}.`);return}}for(let N of V.ignoredPatterns)if(N.pattern.test(L)){n.ignored+=1,_(n,N.id),N.id==="style.spacing.atomic"&&(n.removedAtomicSpacingCount+=1),N.id==="style.positioning.atomic"&&(n.removedAtomicPositioningCount+=1);return}if(A){n.unknown+=1,fi(n,M);return}c.add(M)}),g&&J(r,"spacing")&&(c.add(b||"stack-md"),n.mapped+=1,n.intentHits+=1,j(n,`Mapped ${x} to ${b||"stack-md"}.`)),f&&J(r,"spacing")&&j(n,`Mapped ${h} to gap utility.`);let v=_n(u);if(v&&J(r,"grid")?(c.delete("grid-cols-1"),c.delete("grid-cols-2"),c.delete("grid-cols-3"),c.delete("grid-cols-4"),c.delete("grid-cols-6"),c.add("grid"),c.add(v),n.intentHits+=1,_(n,"intent.layout.responsive-grid-to-auto"),j(n,`Collapsed responsive grid columns to ${v}.`)):J(r,"grid")&&Ct.filter(k=>k!=="base"&&Number.isFinite(u[k])).forEach(k=>{let L=u[k],A=bi(k,L);if(A){c.add("grid"),c.add(A),n.intentHits+=1,_(n,"intent.layout.responsive-grid-to-auto"),j(n,`Mapped ${k}:grid-cols-${L} to ${A}.`);return}let R=me(n,`grid-cols-${L}`,`grid-template-columns:repeat(${L}, minmax(0, 1fr))`,k);R&&(c.add("grid"),c.add(R),n.intentHits+=1,_(n,"fallback.import-style.grid-cols-responsive"),j(n,`Mapped ${k}:grid-cols-${L} to responsive import fallback for exact columns.`))}),J(r,"flex")&&a.includes("flex-col")&&(y.md==="flex-row"||y.lg==="flex-row")&&(c.delete("flex-col"),c.delete("flex-row"),c.add("mobile-stack"),n.intentHits+=1,_(n,"intent.layout.mobile-stack"),j(n,"Mapped flex-col + breakpoint flex-row to mobile-stack.")),(c.has("flex")||c.has("inline-flex"))&&J(r,"spacing")&&(vi(c)||xi(c)||f||g||(c.add("gap-sm"),n.intentHits+=1,_(n,"layout.spacing.flex-min-gap"),j(n,"Added gap-sm fallback for flex container without explicit spacing."))),a.some(M=>/^grid-cols-\d+$/.test(ie(M).base))&&c.has("grid")&&!wi(c)){let M=_n(u);M?(c.add(M),n.intentHits+=1,_(n,"intent.layout.responsive-grid-to-auto"),j(n,`Applied grid safety fallback ${M} to avoid bare grid output.`)):Number.isFinite(u.base)&&u.base>1?(c.add(`grid-cols-${u.base}`),n.intentHits+=1,_(n,"intent.layout.grid-safety-fallback"),j(n,`Applied grid safety fallback grid-cols-${u.base} to preserve explicit grid intent.`)):(c.add("mobile-stack"),n.intentHits+=1,_(n,"intent.layout.grid-safety-fallback.mobile-stack"),j(n,"Applied mobile-stack safety fallback to avoid bare grid output when explicit grid intent was present."))}let C=a.some(M=>/^(?:bg-white|shadow|shadow-md|shadow-lg)$/.test(M)),T=a.some(M=>/^rounded/.test(M));if(["div","section","article","li","aside"].includes(t)&&C&&T&&(c.add("card"),!c.has("surface-elevated")&&a.some(M=>/^shadow/.test(M))&&c.add("surface-elevated"),!c.has("surface-base")&&a.includes("bg-white")&&c.add("surface-base"),n.intentHits+=1,_(n,"intent.component.card")),t==="button"||t==="a"){let M=a.some(A=>/^bg-(?:[a-z]+-)?[4567]00$/.test(A))&&a.includes("text-white"),k=a.some(A=>/^border/.test(A))&&!M,L=a.includes("p-2")&&a.includes("rounded-full");M?(c.delete("surface-base"),c.delete("surface-elevated"),c.add("btn-primary"),n.intentHits+=1,_(n,"intent.component.button.primary")):k&&(c.add("btn-outline"),n.intentHits+=1,_(n,"intent.component.button.outline")),L&&(c.add("icon-only"),_(n,"intent.component.button.icon-only"))}if(i.shouldNormalize){for(let k of Array.from(c))String(k).startsWith("import-")&&c.delete(k);["flex","inline-flex","items-start","items-center","items-end","justify-start","justify-center","justify-end","justify-between","shrink","self-start","self-center","self-end","cursor-pointer","truncate","overflow-hidden","whitespace-nowrap","surface-base","surface-elevated","surface-subtle","card"].forEach(k=>c.delete(k)),i.variant==="primary"?(c.add("btn-primary"),_(n,"intent.component.button.primary")):i.variant==="outline"&&(c.add("btn-outline"),_(n,"intent.component.button.outline")),i.size==="sm"?(c.add("btn-sm"),_(n,"intent.component.button.size-sm")):i.size==="lg"&&(c.add("btn-lg"),_(n,"intent.component.button.size-lg")),i.iconOnly&&(c.add("icon-only"),_(n,"intent.component.button.icon-only")),n.intentHits+=1,_(n,"intent.component.button.normalize")}if(s.shouldNormalize){for(let k of Array.from(c))String(k).startsWith("import-")&&c.delete(k);if(["flex","inline-flex","items-start","items-center","items-end","justify-start","justify-center","justify-end","justify-between","grow","shrink","self-start","self-center","self-end","cursor-pointer","truncate","overflow-hidden","whitespace-nowrap","text-muted","surface-base","surface-elevated","surface-subtle","card"].forEach(k=>c.delete(k)),c.add("badge"),s.variantClass&&c.add(s.variantClass),s.outline&&c.add("badge-outline"),s.sizeClass&&c.add(s.sizeClass),s.pastel&&s.pastel.family){let k=Ye(s.pastel.family,String(s.pastel.bgShade||200)),L=Ye(s.pastel.family,String(s.pastel.textShade||700));if(k&&L){let A=`badge-pastel-${s.pastel.family}-${s.pastel.bgShade}-${s.pastel.textShade}`,R=me(n,A,`background-color:${k};color:${L}`,"base");R&&(c.add(R),_(n,"intent.component.badge.pastel-preserve"),j(n,`Preserved pastel badge tone using ${R}.`))}}n.intentHits+=1,_(n,"intent.component.badge.normalize"),j(n,"Normalized badge/pill utility cluster to PDS badge classes.")}if(d.shouldNormalize){for(let k of Array.from(c))String(k).startsWith("import-")&&c.delete(k);["surface-base","surface-subtle","surface-elevated","surface-sunken","surface-overlay","surface-inverse","surface-primary","surface-secondary","surface-success","surface-warning","surface-danger","surface-info","card-basic","card-elevated","card-outlined","card-interactive"].forEach(k=>c.delete(k)),c.add("card"),d.cardVariantClass&&c.add(d.cardVariantClass),d.surfaceClass&&c.add(d.surfaceClass),n.intentHits+=1,_(n,"intent.component.card.normalize"),j(n,"Normalized card utility cluster to PDS card/surface classes.")}if(t==="a"&&!i.shouldNormalize&&a.some(k=>k.includes("hover:text")||k==="transition-colors")){let k=me(n,"link-reset","text-decoration:none");k&&c.add(k),n.intentHits+=1,_(n,"intent.typography.link-treatment")}if(t==="footer"&&(c.has("surface-base")||a.some(k=>/^bg-/.test(k)))&&(c.delete("surface-base"),c.delete("surface-subtle"),c.add("surface-inverse"),n.intentHits+=1,_(n,"intent.surface.footer-inverse")),o?.listReset&&["ul","ol","menu"].includes(t)){let M=me(n,"list-reset","list-style:none;margin:0;padding:0");M&&(c.add(M),n.intentHits+=1,_(n,"intent.preflight.list-reset"))}if(o?.anchorReset&&t==="a"&&!i.shouldNormalize){let M=me(n,"anchor-reset","color:inherit;text-decoration:inherit");M&&(c.add(M),n.intentHits+=1,_(n,"intent.preflight.anchor-reset"))}let E=new Set(["div","section","article","aside","nav","main","header","footer","form","fieldset","ul","ol","li"]),P=a.some(M=>{let k=ie(M).base;return/^(?:flex|grid|container|gap-|space-[xy]-|items-|justify-|content-|place-|self-|w-|h-|min-|max-)/.test(k)});return c.size===0&&E.has(t)&&P&&(c.add("stack-sm"),j(n,`Added stack-sm fallback for <${t}> with unmapped classes.`)),Array.from(c).join(" ")}function Ai(t="",e={}){let r=String(t||""),n=mi(e.config||{}),o=si(e.config||{}),a=di(),i=gi(r,a),d=Va(i.html,a).replace(/<([a-zA-Z][\w:-]*)([^>]*?)\sclass\s*=\s*(["'])(.*?)\3([^>]*)>/gs,(S,C,T,I,z,E)=>{let P=Ei({tagName:String(C||"").toLowerCase(),originalClassValue:z,policy:n,summary:a,preflightHints:i.hints}),M=String(P||"").trim();return M?`<${C}${T} class=${I}${M}${I}${E}>`:`<${C}${T}${E}>`}),l=ai(ti(Qa(Za(d,a),a),a),a,{config:e.config||{}}),p=li(a,o),c=ci(l,p);p&&j(a,`Generated ${a.importedStyleCount} import-* fallback style mappings.`),(a.removedAtomicSpacingCount>0||a.removedAtomicPositioningCount>0)&&j(a,`Removed atomic utilities by policy: spacing=${a.removedAtomicSpacingCount}, positioning=${a.removedAtomicPositioningCount}.`);let u=ki(a,16),y=a.mapped+a.ignored+a.policySkipped,g=a.totalTailwind>0?y/a.totalTailwind:1,x=a.totalTailwind>0?a.unknown/a.totalTailwind:0,b=.42+g*.45+Math.min(a.intentHits,4)*.025-x*.18,f=Math.max(.15,Math.min(.96,Number(b.toFixed(2)))),h=[`pds-import: rulebook=${zn} confidence=${Math.round(f*100)}%`,`pds-import: tailwind=${a.totalTailwind} mapped=${a.mapped} ignored=${a.ignored} policySkipped=${a.policySkipped} unknown=${a.unknown}`];u.length&&h.push(`pds-import: unknown-tailwind=${u.join(", ")}`),a.notes.length&&h.push(`pds-import: notes=${a.notes.join(" | ")}`);let v=`<!-- ${h.join(` -->
|
|
3744
3964
|
<!-- `)} -->
|
|
3745
|
-
${
|
|
3746
|
-
`)}}function Je(e=[]){let t=new Map;e.forEach(o=>{let a=String(o||"").trim();a&&t.set(a,(t.get(a)||0)+1)});let r="",n=-1;return t.forEach((o,a)=>{o>n&&(r=a,n=o)}),r}function Z(e,t=[]){return t.flatMap(r=>e.get(r)||[])}function Wi(e,t){if(!e||!t)return null;let r=String(t).split(".").filter(Boolean),n=e;for(let o of r){if(!n||n.type!=="object"||!n.properties||typeof n.properties!="object")return null;n=n.properties[o]}return n||null}function Hi(e={}){let t=e&&typeof e=="object"?e:{},r=h?.configRelations&&typeof h.configRelations=="object"?h.configRelations:{},n=new Set(Object.keys(r)),o=null;if(typeof h?.buildConfigFormSchema=="function")try{o=h.buildConfigFormSchema(t)?.schema||null}catch{o=null}return!o&&h?.configFormSchema?.schema&&(o=h.configFormSchema.schema),{design:t,schema:o,allowedPaths:n}}function Ui(e,t){if(!e)return t;if(Array.isArray(e.oneOf)&&e.oneOf.length){let r=e.oneOf.map(n=>n?.const).filter(n=>n!=null);if(r.length){if(typeof t=="string"){let n=r.find(o=>String(o).toLowerCase()===t.toLowerCase());if(n!==void 0)return n}if(typeof t=="number"){let n=r.map(o=>Number(o)).filter(o=>Number.isFinite(o));if(n.length)return n.reduce((o,a)=>Math.abs(a-t)<Math.abs(o-t)?a:o,n[0])}return r[0]}}if(e.type==="number"||e.type==="integer"){let r=Number(t);return Number.isFinite(r)?e.type==="integer"?Math.round(r):r:void 0}return e.type==="boolean"?!!t:e.type==="string"?String(t||"").trim():t}function qi(e,t,r){let n=String(t||"").split(".").filter(Boolean);if(!n.length)return;let o=e;for(let a=0;a<n.length;a+=1){let i=n[a];if(a===n.length-1){o[i]=r;return}(!o[i]||typeof o[i]!="object"||Array.isArray(o[i]))&&(o[i]={}),o=o[i]}}function H(e,t,r){if(r==null||r===""||e.allowedPaths.size&&!e.allowedPaths.has(t))return;let n=Wi(e.schema,t),o=Ui(n,r);o==null||o===""||(qi(e.patch,t,o),e.inferredPaths.add(t))}function he(e=[]){let t=e.map(n=>Ai(n)).filter(n=>Number.isFinite(n));if(!t.length)return null;t.sort((n,o)=>n-o);let r=Math.floor(t.length/2);return t.length%2?t[r]:(t[r-1]+t[r])/2}function Gi(e=[]){let t=e.map(r=>String(r||"").split(",")[0]||"").map(r=>r.trim().replace(/^['"]|['"]$/g,"")).filter(Boolean);return Je(t)}function Vi(e){let t=Number(e);return Number.isFinite(t)?t<=.75?"hairline":t<=1.5?"thin":t<=2.5?"medium":"thick":"thin"}function Ki(e=""){let r=String(ie(e).base||"").toLowerCase().match(/^rounded(?:-[trbl]{1,2})?(?:-(none|xs|sm|md|lg|xl|2xl|3xl|full))?$/);if(!r)return null;let n=r[1]||"DEFAULT",o={none:0,xs:2,sm:4,DEFAULT:6,md:8,lg:12,xl:16,"2xl":24,"3xl":32};return n==="full"?null:Number.isFinite(o[n])?o[n]:null}function Ji(e=[]){let t=e.map(n=>Ki(n)).filter(n=>Number.isFinite(n));if(!t.length)return null;t.sort((n,o)=>n-o);let r=Math.floor(t.length/2);return t.length%2?t[r]:(t[r-1]+t[r])/2}function mr(e={}){let t=String(e.html||"");if(!t.trim())return W({source:"html-inference",type:String(e.sourceType||"design-inference"),confidence:0,issues:[{severity:"warning",message:"No HTML or guideline text provided for design extraction."}],designPatch:{},meta:{extractedPathCount:0,extractedPaths:[]}});let r=Hi(e.config||{}),n=Di(t),o={patch:{},inferredPaths:new Set,allowedPaths:r.allowedPaths,schema:r.schema},a=Z(n.declarations,["color"]).map(V=>ee(V)).filter(Boolean),i=Z(n.declarations,["background","background-color"]).map(V=>ee(V)).filter(Boolean),s=[...i,...a,...n.colorValues].filter(Boolean),p=Array.from(new Set(s)),c=[...n.rootBackgroundColors||[]],d=[...n.rootClassBackgroundColors||[]],l=c.length?c:d,u=[...i,...n.classBackgroundColors||[]],g=Bi(l,u),m=g.color;H(o,"colors.background",m||i[0]||p[0]);let b=p.filter(V=>V&&V!==m),y=Je(n.buttonBackgroundColors||[])||b[0]||p[0],k=b.filter(V=>V&&V!==y);H(o,"colors.primary",y),H(o,"colors.secondary",k[0]||y||p[0]),H(o,"colors.accent",k[1]||k[0]||y||p[0]);let v=Z(n.declarations,["font-family"]),$=Gi(v);H(o,"typography.fontFamilyBody",$),H(o,"typography.fontFamilyHeadings",$),H(o,"typography.fontFamilyMono",/mono|code/i.test(n.textCorpus)?"JetBrains Mono":"");let A=Z(n.declarations,["font-size"]),T=he(A);H(o,"typography.baseSize",T);let F=Z(n.declarations,["padding","padding-top","padding-right","padding-bottom","padding-left","margin","margin-top","margin-right","margin-bottom","margin-left","gap","row-gap","column-gap"]),I=he(F);H(o,"spatialRhythm.baseUnit",I),H(o,"spatialRhythm.inputPadding",I),H(o,"spatialRhythm.buttonPadding",I);let L=Z(n.declarations,["border-radius"]),M=he(L)||Ji(n.classTokens||[]);H(o,"shape.radiusSize",M);let N=Z(n.declarations,["border-width","border-top-width","border-right-width","border-bottom-width","border-left-width"]),z=he(N);H(o,"shape.borderWidth",Vi(z));let x=Z(n.declarations,["max-width"]),S=he(x);H(o,"layout.containerMaxWidth",S),H(o,"layout.maxWidth",S);let C=Z(n.declarations,["min-height","height"]),E=he(C);H(o,"layout.buttonMinHeight",E),H(o,"layout.inputMinHeight",E);let O=Z(n.declarations,["transition-duration"]),B=he(O.map(V=>{let _e=String(V||"").trim().toLowerCase(),ce=Number.parseFloat(_e);return Number.isFinite(ce)?_e.endsWith("ms")?ce:_e.endsWith("s")?ce*1e3:ce:null}));H(o,"behavior.transitionSpeed",B);let P=Z(n.declarations,["box-shadow"]).length>0;H(o,"layers.baseShadowOpacity",P?.2:.08);let D=Array.from(o.inferredPaths),Y=D.reduce((V,_e)=>{let ce=_e.split(".")[0];return V[ce]=(V[ce]||0)+1,V},{}),Re=D.length?Math.min(.92,.35+D.length*.02):.25;return W({source:"html-inference",type:String(e.sourceType||"design-inference"),confidence:Re,issues:D.length?[]:[{severity:"warning",message:"Could not infer enough design signals from input."}],designPatch:o.patch,meta:{extractedPathCount:D.length,extractedPaths:D,categoryCoverage:Y,colorSampleSize:p.length,backgroundInference:{source:g.source,candidates:{root:l.length,declaration:i.length,classBased:(n.classBackgroundColors||[]).length}}}})}function jn(e={}){let t=String(e.input||"").trim(),r=String(e.sourceType||"unknown");if(!t)return W({source:r,type:r,confidence:0,issues:[{severity:"error",message:"No input provided."}],meta:{conversionMode:"none"}});if(Nn(t)){let n=Ct({html:t,config:e.config||{}});return W({source:r,type:r,confidence:n.confidence,issues:n.issues,template:n.template,meta:{...n.meta||{},conversionMode:"html-to-pds"}})}return W({source:r,type:r,confidence:.48,issues:[{severity:"info",message:"Input is not HTML; generated text-based preview template."}],template:{id:`${r}-text-import`,name:"Imported Guideline Text",html:`<article class="card surface-base stack-sm"><h3>Imported Guidelines</h3><pre>${Ti(t)}</pre></article>`},meta:{conversionMode:"text-preview"}})}function Ct(e={}){let t=String(e.html||"").trim();if(!t)return W({source:"tailwind",type:"tailwind-html",confidence:0,issues:[{severity:"error",message:"No HTML provided."}]});let r=Ci(t,{config:e.config||{}});return W({source:"tailwind",type:"tailwind-html",confidence:r.confidence,issues:r.issues,template:{id:"tailwind-import",name:"Converted Tailwind Markup",html:r.html},meta:r.meta})}function fr(e={}){let t=String(e.text||"").trim();if(!t)return W({source:"brand",type:"brand-guidelines",confidence:0,issues:[{severity:"error",message:"No brand guideline text provided."}]});let r=Ei(t),n={colors:{},typography:{}},o=[];return r?n.colors.primary=r:o.push({severity:"warning",message:"No HEX color found; primary color was not inferred."}),/serif/i.test(t)&&(n.typography.fontFamilyBody="Georgia, serif"),/sans[-\s]?serif/i.test(t)&&(n.typography.fontFamilyBody="Inter, Arial, sans-serif"),/mono|monospace/i.test(t)&&(n.typography.fontFamilyMono="JetBrains Mono, monospace"),W({source:"brand",type:"brand-guidelines",confidence:r?.68:.52,issues:o,designPatch:n,meta:{inferred:{primaryColor:r}}})}var hr="convert-only",On="adopt-design-and-convert";function Yi(e){return String(e||"").trim().toLowerCase()===On?On:hr}function Bn(...e){let t=e.flat().filter(Boolean);if(!t.length)return[];let r=new Set;return t.filter(n=>{let o=`${String(n?.severity||"info")}::${String(n?.path||"")}::${String(n?.message||"")}`;return r.has(o)?!1:(r.add(o),!0)})}function Dn(e=[]){let t=e.map(r=>Number(r)).filter(r=>Number.isFinite(r));return t.length?Math.max(0,Math.min(1,t.reduce((r,n)=>r+n,0)/t.length)):0}function Ze(e={},t={}){return{...e&&typeof e=="object"?e:{},...t&&typeof t=="object"?t:{}}}function Un(e={},t={}){if(!t||typeof t!="object")return e;let r=Array.isArray(e)?[...e]:{...e};return Object.entries(t).forEach(([n,o])=>{o&&typeof o=="object"&&!Array.isArray(o)?r[n]=Un(r[n]&&typeof r[n]=="object"?r[n]:{},o):r[n]=o}),r}function Wn(e){if(typeof structuredClone=="function")try{return structuredClone(e)}catch{}return JSON.parse(JSON.stringify(e||{}))}function Zi(e={}){let t=Number(e?.ratio),r=Number(e?.min),n=Number.isFinite(t)?t.toFixed(2):"n/a",o=Number.isFinite(r)?r.toFixed(2):"n/a";return{severity:"error",path:String(e?.path||"/colors"),message:`${String(e?.message||"Color contrast validation failed.")} (ratio=${n}, required=${o})`}}function Hn(e={},t={},r={}){if(!(t&&typeof t=="object"?Object.keys(t):[]).length)return{ok:!0,blocked:!1,issues:[],report:{ok:!0,issues:[]}};let o=Number(r.minContrast),a=Number.isFinite(o)?o:4.5,i=Un(Wn(e||{}),Wn(t||{})),s=Ar(i,{minContrast:a,minMutedContrast:3,extendedChecks:!0}),p=Array.isArray(s?.issues)?s.issues.map(c=>Zi(c)):[];return{ok:!!s?.ok,blocked:!s?.ok,issues:p,report:{ok:!!s?.ok,minContrast:a,issues:Array.isArray(s?.issues)?s.issues:[]}}}function Xi(){return[{id:"template",name:"Templates"},{id:"tailwind-html",name:"Tailwind HTML"},{id:"brand-guidelines",name:"Brand Guidelines"},{id:"figma-json",name:"Figma Tokens JSON (planned)"},{id:"ux-pilot",name:"UX Pilot (planned)"},{id:"google-stitch",name:"Google Stitch (planned)"}]}async function Qi(e={}){let t=String(e.sourceType||""),r=Yi(e.importMode),n=String(e.input||""),o=e.config||null;if(t==="template"){let a=sn(e.templateId,e);return a.meta=Ze(a.meta,{importMode:r}),a}if(t==="tailwind-html"){let a=Ct({html:n,config:o});if(r===hr)return a.meta=Ze(a.meta,{importMode:r}),a;let i=mr({html:n,config:o,sourceType:t}),s=Hn(o||{},i.designPatch||{}),p=s.blocked?{}:i.designPatch,c=s.blocked?[{severity:"error",path:"/colors",message:"Import blocked: inferred design patch failed accessibility contrast validation."},...s.issues]:[];return W({source:a.source||"tailwind",type:t,confidence:Dn([a.confidence,i.confidence]),issues:Bn(a.issues,i.issues,c),template:a.template,designPatch:p,meta:Ze(a.meta,{importMode:r,inference:i.meta,validation:s.report,validationBlocked:s.blocked})})}if(t==="brand-guidelines"){let a=jn({input:n,sourceType:t,config:o});if(r===hr)return a.meta=Ze(a.meta,{importMode:r}),a;let i=fr({text:n}),s=mr({html:n,config:o,sourceType:t}),p={...i.designPatch&&typeof i.designPatch=="object"?i.designPatch:{},...s.designPatch&&typeof s.designPatch=="object"?s.designPatch:{}},c=Hn(o||{},p||{}),d=c.blocked?{}:p,l=c.blocked?[{severity:"error",path:"/colors",message:"Import blocked: inferred design patch failed accessibility contrast validation."},...c.issues]:[];return W({source:"brand",type:t,confidence:Dn([a.confidence,i.confidence,s.confidence]),issues:Bn(a.issues,i.issues,s.issues,l),template:a.template,designPatch:d,meta:Ze(a.meta,{importMode:r,inference:s.meta,brandHeuristics:i.meta,validation:c.report,validationBlocked:c.blocked})})}return t==="figma-json"||t==="ux-pilot"||t==="google-stitch"?W({source:t,type:t,confidence:0,issues:[{severity:"info",message:`${t} adapter is not implemented yet in this phase.`}],meta:{importMode:r}}):W({source:t||"unknown",type:"unknown",confidence:0,issues:[{severity:"error",message:"Unsupported import source type."}],meta:{importMode:r}})}var es="pds-live-import-history";var ne="imports",Mt=null;function ts(){return typeof globalThis<"u"&&typeof globalThis.indexedDB<"u"}function te(e){return typeof e=="string"?e:""}function Et(e){return Array.isArray(e)?e:[]}function Tt(e){return e&&typeof e=="object"?e:{}}function At(){return ts()?Mt||(Mt=new Promise((e,t)=>{let r=globalThis.indexedDB.open(es,1);r.onupgradeneeded=()=>{let n=r.result;if(!n.objectStoreNames.contains(ne)){let o=n.createObjectStore(ne,{keyPath:"id",autoIncrement:!0});o.createIndex("createdAt","createdAt",{unique:!1}),o.createIndex("sourceType","sourceType",{unique:!1}),o.createIndex("fileName","fileName",{unique:!1})}},r.onsuccess=()=>e(r.result),r.onerror=()=>t(r.error||new Error("Failed to open import history database."))}),Mt):Promise.resolve(null)}function Rt(e){return new Promise((t,r)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>r(e.error||new Error("IndexedDB operation failed."))})}function rs(e={}){let t=Date.now(),r=Number.isFinite(Number(e.createdAt))?Number(e.createdAt):t,n=new Date(r).toISOString(),o=Et(e.issues).map(p=>({severity:te(p?.severity||"info"),message:te(p?.message||"")})),a=Et(e.notes).filter(p=>typeof p=="string"),i=Et(e.unknownTailwindTokens).filter(p=>typeof p=="string"),s=Et(e.appliedRules).filter(p=>typeof p=="string");return{createdAt:r,createdAtIso:n,sourceType:te(e.sourceType||"unknown"),importMode:te(e.importMode||"convert-only"),source:te(e.source||"unknown"),type:te(e.type||"unknown"),fileName:te(e.fileName||""),fileSize:Number.isFinite(Number(e.fileSize))?Number(e.fileSize):0,mimeType:te(e.mimeType||""),fileContents:te(e.fileContents||""),convertedHtml:te(e.convertedHtml||""),confidence:Number.isFinite(Number(e.confidence))?Number(e.confidence):0,notes:a,issues:o,coverage:Tt(e.coverage),unknownTailwindTokens:i,appliedRules:s,importStyleSheetInjected:!!e.importStyleSheetInjected,templateName:te(e.templateName||""),designPatch:Tt(e.designPatch),meta:Tt(e.meta),resultSnapshot:Tt(e.resultSnapshot)}}async function ns(e={}){let t=await At();if(!t)return null;let r=rs(e),o=t.transaction(ne,"readwrite").objectStore(ne);return{id:await Rt(o.add(r)),...r}}async function os(e={}){let t=await At();if(!t)return[];let r=Number.isFinite(Number(e.limit))?Math.max(1,Number(e.limit)):30,o=t.transaction(ne,"readonly").objectStore(ne);return(await Rt(o.getAll())||[]).sort((i,s)=>Number(s?.createdAt||0)-Number(i?.createdAt||0)).slice(0,r)}async function as(e){let t=await At();if(!t)return null;let r=Number(e);if(!Number.isFinite(r))return null;let o=t.transaction(ne,"readonly").objectStore(ne);return await Rt(o.get(r))||null}async function is(){let e=await At();if(!e)return;let r=e.transaction(ne,"readwrite").objectStore(ne);await Rt(r.clear())}export{is as clearLiveImportHistory,fr as convertBrandGuidelinesToPatch,Ct as convertTailwindHtmlToPds,W as createImportResult,Mi as describeTailwindConversionRules,as as getLiveImportHistoryEntry,Xi as getLiveImportSources,ga as isImportResult,os as listLiveImportHistory,an as listLiveTemplates,Kr as loadGoogleFont,ft as loadLiveTemplateCatalog,Qi as runLiveImport,ns as saveLiveImportHistory,da as startLive};
|
|
3965
|
+
${c}`,m=[];return a.unknown>0&&m.push({severity:"warning",message:`Converted with ${a.unknown} unknown Tailwind utilities requiring manual review.`}),a.policySkipped>0&&m.push({severity:"info",message:`Skipped ${a.policySkipped} utility mappings due to PDS config policy.`}),u.length&&m.push({severity:"info",message:`Top unknown utilities: ${u.slice(0,8).join(", ")}`}),{html:v,confidence:f,issues:m,meta:{rulebookVersion:zn,coverage:{tailwind:a.totalTailwind,mapped:a.mapped,ignored:a.ignored,policySkipped:a.policySkipped,unknown:a.unknown,importedStyles:a.importedStyleCount,nestedLabelPairs:a.labelNestingCount},unknownTailwindTokens:u,notes:a.notes,appliedRules:Array.from(a.appliedRules),policy:n,importStyleSheetInjected:!!p,breakpoints:o}}}function Ti(){return{rulesJsonPath:ja,...V,directMappings:V.directMappings.map(t=>({id:t.id,tw:t.tw,pds:t.pds,gate:t.gate||null})),ignoredPatterns:V.ignoredPatterns.map(t=>({id:t.id,pattern:String(t.pattern),reason:t.reason}))}}function Ri(t){let e=String(t||"").match(/#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})\b/);return e?e[0]:null}function Ii(t){return String(t||"").replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""").replaceAll("'","'")}function jn(t){return/<\s*[a-z][^>]*>/i.test(String(t||""))}function _i(t){let e=String(t||"").trim().toLowerCase();if(!e)return null;let r=Number.parseFloat(e);return Number.isFinite(r)?e.endsWith("rem")||e.endsWith("em")?r*16:e.endsWith("px")||/^[0-9.\-]+$/.test(e)?r:null:null}function ee(t){let e=String(t||"").trim();if(!e)return"";let r=e.match(/#(?:[0-9a-f]{3,8})\b/i);if(r)return r[0].toLowerCase();let n=e.match(/rgba?\([^)]*\)/i);if(n)return n[0];let o=e.match(/hsla?\([^)]*\)/i);return o?o[0]:""}function Fi(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 Pi(t=""){let e=String(t||"").trim(),r=ee(e);if(r)return r;let n=e.match(/var\(\s*(--[^\s,)]+)\s*(?:,[^)]+)?\)/i);if(!n)return"";let o=Fi(n[1]);return ee(o)}function Ni(t=""){let e=String(t||"").trim();if(!e)return"";let r=e.split(":").pop()||e;if(r==="bg-white")return"#ffffff";if(r==="bg-black")return"#000000";let n=r.match(/^bg-black\/(\d{1,3})$/i);if(n)return`rgba(0,0,0,${Math.max(0,Math.min(100,Number(n[1])))/100})`;let o=r.match(/^bg-\[([^\]]+)\]$/i);if(o)return ee(o[1]);let a=r.match(/^bg-([a-z]+)-(\d{2,3})$/i);if(!a)return"";let i=Ye(a[1],a[2]);return i?Pi(i):""}function Fn(t=""){return String(t||"").split(/\s+/).map(r=>r.trim()).filter(Boolean).map(r=>Ni(r)).filter(Boolean)}function ji(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 Oi(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 Bi(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 Di(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 On(t=""){let e=ee(t);return e?e.startsWith("#")?Di(e):e.startsWith("rgb")?Bi(e):null:null}function Hi(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 Pn(t=""){let e=String(t||"").trim().toLowerCase();if(!e||e==="transparent")return!0;let r=On(e);return r&&Number.isFinite(r.a)?r.a<=.04:!1}function Wi(t=[],e=[]){let r=t.map(d=>ee(d)).filter(d=>d&&!Pn(d)),n=Je(r);if(n)return{color:n,source:"root"};let o=e.map(d=>ee(d)).filter(d=>d&&!Pn(d)),a=o.filter(d=>{let l=On(d),p=Hi(l);return Number.isFinite(p)?p>=.72:!1}),i=Je(a);if(i)return{color:i,source:"fallback-bright"};let s=Je(o);return s?{color:s,source:"fallback"}:{color:"",source:"none"}}function Ee(t,e=new Map){let r=String(t||""),n=/([a-z-]+)\s*:\s*([^;{}]+)/gi,o=n.exec(r);for(;o;){let a=String(o[1]||"").trim().toLowerCase(),i=String(o[2]||"").trim();a&&i&&(e.has(a)||e.set(a,[]),e.get(a).push(i)),o=n.exec(r)}return e}function Ui(t=""){let e=String(t||""),r=new Map,n=[],o=[],a=[],i=[],s=[],d=[],l=[],p=/#(?:[0-9a-f]{3,8})\b|rgba?\([^)]*\)|hsla?\([^)]*\)/gi,c=u=>{(String(u||"").match(p)||[]).forEach(g=>{let x=ee(g);x&&n.push(x)})};if(typeof DOMParser<"u"&&jn(e))try{let y=new DOMParser().parseFromString(e,"text/html");Array.from(y.querySelectorAll("style")).map(v=>v.textContent||"").forEach(v=>{Ee(v,r),c(v),ji(v).forEach(m=>{if(!Oi(m.selector))return;let S=Ee(m.body,new Map),C=X(S,["background","background-color"]).map(T=>ee(T)).filter(Boolean);o.push(...C)})}),Array.from(y.querySelectorAll("[style]")).forEach(v=>{let m=v.getAttribute("style")||"";Ee(m,r),c(m)}),["html","body","main","#app","#root",".app",".page"].forEach(v=>{let m=y.querySelector(v);if(!m)return;let S=m.getAttribute("style")||"";if(!S)return;let C=Ee(S,new Map),T=X(C,["background","background-color"]).map(z=>ee(z)).filter(Boolean);o.push(...T);let I=Fn(m.getAttribute("class")||"");a.push(...I)}),Array.from(y.querySelectorAll("[class]")).forEach(v=>{let m=ae(v.getAttribute("class")||"");d.push(...m);let S=Fn(v.getAttribute("class")||"");i.push(...S);let C=String(v.tagName||"").toLowerCase(),T=C==="button"||C==="a",I=m.some(z=>/^bg-/.test(String(ie(z).base||"")));T&&I&&S.length&&s.push(...S)});let h=y.body?.textContent||"";h.trim()&&l.push(h),c(y.documentElement?.outerHTML||e)}catch{Ee(e,r),c(e),l.push(e)}else Ee(e,r),c(e),l.push(e);return{declarations:r,colorValues:n,rootBackgroundColors:o,rootClassBackgroundColors:a,classBackgroundColors:i,buttonBackgroundColors:s,classTokens:d,textCorpus:l.join(`
|
|
3966
|
+
`)}}function Je(t=[]){let e=new Map;t.forEach(o=>{let a=String(o||"").trim();a&&e.set(a,(e.get(a)||0)+1)});let r="",n=-1;return e.forEach((o,a)=>{o>n&&(r=a,n=o)}),r}function X(t,e=[]){return e.flatMap(r=>t.get(r)||[])}function qi(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 Vi(t={}){let e=t&&typeof t=="object"?t:{},r=w?.configRelations&&typeof w.configRelations=="object"?w.configRelations:{},n=new Set(Object.keys(r)),o=null;if(typeof w?.buildConfigFormSchema=="function")try{o=w.buildConfigFormSchema(e)?.schema||null}catch{o=null}return!o&&w?.configFormSchema?.schema&&(o=w.configFormSchema.schema),{design:e,schema:o,allowedPaths:n}}function Gi(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 Ki(t,e,r){let n=String(e||"").split(".").filter(Boolean);if(!n.length)return;let o=t;for(let a=0;a<n.length;a+=1){let i=n[a];if(a===n.length-1){o[i]=r;return}(!o[i]||typeof o[i]!="object"||Array.isArray(o[i]))&&(o[i]={}),o=o[i]}}function W(t,e,r){if(r==null||r===""||t.allowedPaths.size&&!t.allowedPaths.has(e))return;let n=qi(t.schema,e),o=Gi(n,r);o==null||o===""||(Ki(t.patch,e,o),t.inferredPaths.add(e))}function he(t=[]){let e=t.map(n=>_i(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 Ji(t=[]){let e=t.map(r=>String(r||"").split(",")[0]||"").map(r=>r.trim().replace(/^['"]|['"]$/g,"")).filter(Boolean);return Je(e)}function Yi(t){let e=Number(t);return Number.isFinite(e)?e<=.75?"hairline":e<=1.5?"thin":e<=2.5?"medium":"thick":"thin"}function Xi(t=""){let r=String(ie(t).base||"").toLowerCase().match(/^rounded(?:-[trbl]{1,2})?(?:-(none|xs|sm|md|lg|xl|2xl|3xl|full))?$/);if(!r)return null;let n=r[1]||"DEFAULT",o={none:0,xs:2,sm:4,DEFAULT:6,md:8,lg:12,xl:16,"2xl":24,"3xl":32};return n==="full"?null:Number.isFinite(o[n])?o[n]:null}function Zi(t=[]){let e=t.map(n=>Xi(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 hr(t={}){let e=String(t.html||"");if(!e.trim())return H({source:"html-inference",type:String(t.sourceType||"design-inference"),confidence:0,issues:[{severity:"warning",message:"No HTML or guideline text provided for design extraction."}],designPatch:{},meta:{extractedPathCount:0,extractedPaths:[]}});let r=Vi(t.config||{}),n=Ui(e),o={patch:{},inferredPaths:new Set,allowedPaths:r.allowedPaths,schema:r.schema},a=X(n.declarations,["color"]).map(G=>ee(G)).filter(Boolean),i=X(n.declarations,["background","background-color"]).map(G=>ee(G)).filter(Boolean),s=[...i,...a,...n.colorValues].filter(Boolean),d=Array.from(new Set(s)),l=[...n.rootBackgroundColors||[]],p=[...n.rootClassBackgroundColors||[]],c=l.length?l:p,u=[...i,...n.classBackgroundColors||[]],y=Wi(c,u),g=y.color;W(o,"colors.background",g||i[0]||d[0]);let x=d.filter(G=>G&&G!==g),f=Je(n.buttonBackgroundColors||[])||x[0]||d[0],h=x.filter(G=>G&&G!==f);W(o,"colors.primary",f),W(o,"colors.secondary",h[0]||f||d[0]),W(o,"colors.accent",h[1]||h[0]||f||d[0]);let v=X(n.declarations,["font-family"]),m=Ji(v);W(o,"typography.fontFamilyBody",m),W(o,"typography.fontFamilyHeadings",m),W(o,"typography.fontFamilyMono",/mono|code/i.test(n.textCorpus)?"JetBrains Mono":"");let S=X(n.declarations,["font-size"]),C=he(S);W(o,"typography.baseSize",C);let T=X(n.declarations,["padding","padding-top","padding-right","padding-bottom","padding-left","margin","margin-top","margin-right","margin-bottom","margin-left","gap","row-gap","column-gap"]),I=he(T);W(o,"spatialRhythm.baseUnit",I),W(o,"spatialRhythm.inputPadding",I),W(o,"spatialRhythm.buttonPadding",I);let z=X(n.declarations,["border-radius"]),E=he(z)||Zi(n.classTokens||[]);W(o,"shape.radiusSize",E);let P=X(n.declarations,["border-width","border-top-width","border-right-width","border-bottom-width","border-left-width"]),M=he(P);W(o,"shape.borderWidth",Yi(M));let k=X(n.declarations,["max-width"]),L=he(k);W(o,"layout.containerMaxWidth",L),W(o,"layout.maxWidth",L);let A=X(n.declarations,["min-height","height"]),R=he(A);W(o,"layout.buttonMinHeight",R),W(o,"layout.inputMinHeight",R);let O=X(n.declarations,["transition-duration"]),B=he(O.map(G=>{let Ie=String(G||"").trim().toLowerCase(),ce=Number.parseFloat(Ie);return Number.isFinite(ce)?Ie.endsWith("ms")?ce:Ie.endsWith("s")?ce*1e3:ce:null}));W(o,"behavior.transitionSpeed",B);let N=X(n.declarations,["box-shadow"]).length>0;W(o,"layers.baseShadowOpacity",N?.2:.08);let D=Array.from(o.inferredPaths),Y=D.reduce((G,Ie)=>{let ce=Ie.split(".")[0];return G[ce]=(G[ce]||0)+1,G},{}),Re=D.length?Math.min(.92,.35+D.length*.02):.25;return H({source:"html-inference",type:String(t.sourceType||"design-inference"),confidence:Re,issues:D.length?[]:[{severity:"warning",message:"Could not infer enough design signals from input."}],designPatch:o.patch,meta:{extractedPathCount:D.length,extractedPaths:D,categoryCoverage:Y,colorSampleSize:d.length,backgroundInference:{source:y.source,candidates:{root:c.length,declaration:i.length,classBased:(n.classBackgroundColors||[]).length}}}})}function Bn(t={}){let e=String(t.input||"").trim(),r=String(t.sourceType||"unknown");if(!e)return H({source:r,type:r,confidence:0,issues:[{severity:"error",message:"No input provided."}],meta:{conversionMode:"none"}});if(jn(e)){let n=Mt({html:e,config:t.config||{}});return H({source:r,type:r,confidence:n.confidence,issues:n.issues,template:n.template,meta:{...n.meta||{},conversionMode:"html-to-pds"}})}return H({source:r,type:r,confidence:.48,issues:[{severity:"info",message:"Input is not HTML; generated text-based preview template."}],template:{id:`${r}-text-import`,name:"Imported Guideline Text",html:`<article class="card surface-base stack-sm"><h3>Imported Guidelines</h3><pre>${Ii(e)}</pre></article>`},meta:{conversionMode:"text-preview"}})}function Mt(t={}){let e=String(t.html||"").trim();if(!e)return H({source:"tailwind",type:"tailwind-html",confidence:0,issues:[{severity:"error",message:"No HTML provided."}]});let r=Ai(e,{config:t.config||{}});return H({source:"tailwind",type:"tailwind-html",confidence:r.confidence,issues:r.issues,template:{id:"tailwind-import",name:"Converted Tailwind Markup",html:r.html},meta:r.meta})}function br(t={}){let e=String(t.text||"").trim();if(!e)return H({source:"brand",type:"brand-guidelines",confidence:0,issues:[{severity:"error",message:"No brand guideline text provided."}]});let r=Ri(e),n={colors:{},typography:{}},o=[];return r?n.colors.primary=r:o.push({severity:"warning",message:"No HEX color found; primary color was not inferred."}),/serif/i.test(e)&&(n.typography.fontFamilyBody="Georgia, serif"),/sans[-\s]?serif/i.test(e)&&(n.typography.fontFamilyBody="Inter, Arial, sans-serif"),/mono|monospace/i.test(e)&&(n.typography.fontFamilyMono="JetBrains Mono, monospace"),H({source:"brand",type:"brand-guidelines",confidence:r?.68:.52,issues:o,designPatch:n,meta:{inferred:{primaryColor:r}}})}var yr="convert-only",Dn="adopt-design-and-convert";function Qi(t){return String(t||"").trim().toLowerCase()===Dn?Dn:yr}function Hn(...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 Wn(t=[]){let e=t.map(r=>Number(r)).filter(r=>Number.isFinite(r));return e.length?Math.max(0,Math.min(1,e.reduce((r,n)=>r+n,0)/e.length)):0}function Xe(t={},e={}){return{...t&&typeof t=="object"?t:{},...e&&typeof e=="object"?e:{}}}function Vn(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]=Vn(r[n]&&typeof r[n]=="object"?r[n]:{},o):r[n]=o}),r}function Un(t){if(typeof structuredClone=="function")try{return structuredClone(t)}catch{}return JSON.parse(JSON.stringify(t||{}))}function es(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 qn(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=Vn(Un(t||{}),Un(e||{})),s=Ir(i,{minContrast:a,minMutedContrast:3,extendedChecks:!0}),d=Array.isArray(s?.issues)?s.issues.map(l=>es(l)):[];return{ok:!!s?.ok,blocked:!s?.ok,issues:d,report:{ok:!!s?.ok,minContrast:a,issues:Array.isArray(s?.issues)?s.issues:[]}}}function ts(){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 rs(t={}){let e=String(t.sourceType||""),r=Qi(t.importMode),n=String(t.input||""),o=t.config||null;if(e==="template"){let a=cn(t.templateId,t);return a.meta=Xe(a.meta,{importMode:r}),a}if(e==="tailwind-html"){let a=Mt({html:n,config:o});if(r===yr)return a.meta=Xe(a.meta,{importMode:r}),a;let i=hr({html:n,config:o,sourceType:e}),s=qn(o||{},i.designPatch||{}),d=s.blocked?{}:i.designPatch,l=s.blocked?[{severity:"error",path:"/colors",message:"Import blocked: inferred design patch failed accessibility contrast validation."},...s.issues]:[];return H({source:a.source||"tailwind",type:e,confidence:Wn([a.confidence,i.confidence]),issues:Hn(a.issues,i.issues,l),template:a.template,designPatch:d,meta:Xe(a.meta,{importMode:r,inference:i.meta,validation:s.report,validationBlocked:s.blocked})})}if(e==="brand-guidelines"){let a=Bn({input:n,sourceType:e,config:o});if(r===yr)return a.meta=Xe(a.meta,{importMode:r}),a;let i=br({text:n}),s=hr({html:n,config:o,sourceType:e}),d={...i.designPatch&&typeof i.designPatch=="object"?i.designPatch:{},...s.designPatch&&typeof s.designPatch=="object"?s.designPatch:{}},l=qn(o||{},d||{}),p=l.blocked?{}:d,c=l.blocked?[{severity:"error",path:"/colors",message:"Import blocked: inferred design patch failed accessibility contrast validation."},...l.issues]:[];return H({source:"brand",type:e,confidence:Wn([a.confidence,i.confidence,s.confidence]),issues:Hn(a.issues,i.issues,s.issues,c),template:a.template,designPatch:p,meta:Xe(a.meta,{importMode:r,inference:s.meta,brandHeuristics:i.meta,validation:l.report,validationBlocked:l.blocked})})}return e==="figma-json"||e==="ux-pilot"||e==="google-stitch"?H({source:e,type:e,confidence:0,issues:[{severity:"info",message:`${e} adapter is not implemented yet in this phase.`}],meta:{importMode:r}}):H({source:e||"unknown",type:"unknown",confidence:0,issues:[{severity:"error",message:"Unsupported import source type."}],meta:{importMode:r}})}var ns="pds-live-import-history";var ne="imports",Et=null;function os(){return typeof globalThis<"u"&&typeof globalThis.indexedDB<"u"}function te(t){return typeof t=="string"?t:""}function At(t){return Array.isArray(t)?t:[]}function Tt(t){return t&&typeof t=="object"?t:{}}function Rt(){return os()?Et||(Et=new Promise((t,e)=>{let r=globalThis.indexedDB.open(ns,1);r.onupgradeneeded=()=>{let n=r.result;if(!n.objectStoreNames.contains(ne)){let o=n.createObjectStore(ne,{keyPath:"id",autoIncrement:!0});o.createIndex("createdAt","createdAt",{unique:!1}),o.createIndex("sourceType","sourceType",{unique:!1}),o.createIndex("fileName","fileName",{unique:!1})}},r.onsuccess=()=>t(r.result),r.onerror=()=>e(r.error||new Error("Failed to open import history database."))}),Et):Promise.resolve(null)}function It(t){return new Promise((e,r)=>{t.onsuccess=()=>e(t.result),t.onerror=()=>r(t.error||new Error("IndexedDB operation failed."))})}function as(t={}){let e=Date.now(),r=Number.isFinite(Number(t.createdAt))?Number(t.createdAt):e,n=new Date(r).toISOString(),o=At(t.issues).map(d=>({severity:te(d?.severity||"info"),message:te(d?.message||"")})),a=At(t.notes).filter(d=>typeof d=="string"),i=At(t.unknownTailwindTokens).filter(d=>typeof d=="string"),s=At(t.appliedRules).filter(d=>typeof d=="string");return{createdAt:r,createdAtIso:n,sourceType:te(t.sourceType||"unknown"),importMode:te(t.importMode||"convert-only"),source:te(t.source||"unknown"),type:te(t.type||"unknown"),fileName:te(t.fileName||""),fileSize:Number.isFinite(Number(t.fileSize))?Number(t.fileSize):0,mimeType:te(t.mimeType||""),fileContents:te(t.fileContents||""),convertedHtml:te(t.convertedHtml||""),confidence:Number.isFinite(Number(t.confidence))?Number(t.confidence):0,notes:a,issues:o,coverage:Tt(t.coverage),unknownTailwindTokens:i,appliedRules:s,importStyleSheetInjected:!!t.importStyleSheetInjected,templateName:te(t.templateName||""),designPatch:Tt(t.designPatch),meta:Tt(t.meta),resultSnapshot:Tt(t.resultSnapshot)}}async function is(t={}){let e=await Rt();if(!e)return null;let r=as(t),o=e.transaction(ne,"readwrite").objectStore(ne);return{id:await It(o.add(r)),...r}}async function ss(t={}){let e=await Rt();if(!e)return[];let r=Number.isFinite(Number(t.limit))?Math.max(1,Number(t.limit)):30,o=e.transaction(ne,"readonly").objectStore(ne);return(await It(o.getAll())||[]).sort((i,s)=>Number(s?.createdAt||0)-Number(i?.createdAt||0)).slice(0,r)}async function ls(t){let e=await Rt();if(!e)return null;let r=Number(t);if(!Number.isFinite(r))return null;let o=e.transaction(ne,"readonly").objectStore(ne);return await It(o.get(r))||null}async function cs(){let t=await Rt();if(!t)return;let r=t.transaction(ne,"readwrite").objectStore(ne);await It(r.clear())}export{cs as clearLiveImportHistory,br as convertBrandGuidelinesToPatch,Mt as convertTailwindHtmlToPds,H as createImportResult,Ti as describeTailwindConversionRules,ls as getLiveImportHistoryEntry,ts as getLiveImportSources,fa as isImportResult,ss as listLiveImportHistory,ln as listLiveTemplates,Yr as loadGoogleFont,ht as loadLiveTemplateCatalog,rs as runLiveImport,is as saveLiveImportHistory,pa as startLive};
|