@pure-ds/storybook 0.6.6 → 0.6.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  {
2
- "generatedAt": "2026-02-17T16:06:50.024Z",
2
+ "generatedAt": "2026-02-17T16:34:00.537Z",
3
3
  "sources": {
4
4
  "customElements": "custom-elements.json",
5
5
  "ontology": "src\\js\\pds-core\\pds-ontology.js",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pure-ds/storybook",
3
- "version": "0.6.6",
3
+ "version": "0.6.7",
4
4
  "description": "Storybook showcase for Pure Design System with live configuration",
5
5
  "type": "module",
6
6
  "private": false,
@@ -38,7 +38,7 @@
38
38
  "pds:build-icons": "pds-build-icons"
39
39
  },
40
40
  "peerDependencies": {
41
- "@pure-ds/core": "^0.6.6"
41
+ "@pure-ds/core": "^0.6.7"
42
42
  },
43
43
  "dependencies": {
44
44
  "@custom-elements-manifest/analyzer": "^0.11.0",
@@ -29,7 +29,7 @@ var Ke=Object.defineProperty;var Ze=(e,t)=>()=>(e&&(t=e(e=0)),t);var Ee=(e,t)=>{
29
29
  </footer>
30
30
  </form>
31
31
  `;let u=i.querySelector("#msg-container");re(u,e)}i.addEventListener("click",u=>{u.target.closest('button[value="cancel"]')&&(i.close(),n(!1))});let o=()=>{let u=i.querySelector("form");u?u.addEventListener("submit",p=>{p.preventDefault();let d;t.useForm&&p.submitter.value==="ok"?(console.log("Found form:",u),console.log("Form elements:",u?Array.from(u.elements):"no form"),d=new FormData(u),console.log("FormData entries:",Array.from(d.entries()))):d=p.submitter.value==="ok",i.close(),n(d)}):requestAnimationFrame(o)};o(),i.addEventListener("close",()=>{setTimeout(()=>i.remove(),200)}),document.body.appendChild(i),typeof t.rendered=="function"&&t.rendered(i),i.showModal()})}async function Je(){let e=document.querySelector("pds-toaster");return e||(e=document.createElement("pds-toaster"),document.body.appendChild(e),await customElements.whenDefined("pds-toaster")),e}async function M(e,t={}){return(await Je()).toast(e,t)}M.success=async function(e,t={}){return M(e,{...t,type:"success"})};M.error=async function(e,t={}){return M(e,{...t,type:"error"})};M.warning=async function(e,t={}){return M(e,{...t,type:"warning"})};M.info=async function(e,t={}){return M(e,{...t,type:"information"})};var Ye=[{selector:".accordion"},{selector:"nav[data-dropdown]"},{selector:"label[data-toggle]"},{selector:'input[type="range"]'},{selector:"form[data-required]"},{selector:"fieldset[role=group][data-open]"},{selector:"[data-clip]"},{selector:"button, a[class*='btn-']"}];function Xe(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(s=>{s!==t.target&&(s.open=!1)})},!0))}function et(e){if(e.dataset.enhancedDropdown)return;e.dataset.enhancedDropdown="true";let t=e.lastElementChild;if(!t)return;let s=e.querySelector("[data-dropdown-toggle]")||e.querySelector("button");s&&!s.hasAttribute("type")&&s.setAttribute("type","button"),t.id||(t.id=`dropdown-${Math.random().toString(36).slice(2,9)}`),t.tagName?.toLowerCase()==="menu"&&!t.hasAttribute("role")&&t.setAttribute("role","menu"),t.hasAttribute("aria-hidden")||t.setAttribute("aria-hidden","true"),s&&(s.setAttribute("aria-haspopup","true"),s.setAttribute("aria-controls",t.id),s.setAttribute("aria-expanded","false"));let i=()=>{let a=(e.getAttribute("data-direction")||e.getAttribute("data-dropdown-direction")||e.getAttribute("data-mode")||"auto").toLowerCase();if(a==="up"||a==="down")return a;let c=e.getBoundingClientRect(),f=t?.getBoundingClientRect?.()||{height:0},h=Math.max(t?.offsetHeight||0,t?.scrollHeight||0,f.height||0,200),k=Math.max(0,window.innerHeight-c.bottom),S=Math.max(0,c.top);return k>=h?"down":S>=h||S>k?"up":"down"},r=()=>{let a=(e.getAttribute("data-align")||e.getAttribute("data-dropdown-align")||"auto").toLowerCase();if(a==="left"||a==="right"||a==="start"||a==="end")return a==="start"?"left":a==="end"?"right":a;let c=e.getBoundingClientRect(),f=t?.getBoundingClientRect?.()||{width:0},h=Math.max(t?.offsetWidth||0,t?.scrollWidth||0,f.width||0,240),k=Math.max(0,window.innerWidth-c.left),S=Math.max(0,c.right);return k>=h?"left":S>=h||S>k?"right":"left"},o=null,u=()=>{e.dataset.dropdownDirection=i(),e.dataset.dropdownAlign=r(),t.setAttribute("aria-hidden","false"),s?.setAttribute("aria-expanded","true"),o||(o=a=>{(a.composedPath?a.composedPath():[a.target]).some(h=>h===e)||p()},setTimeout(()=>{document.addEventListener("click",o)},0))},p=()=>{t.setAttribute("aria-hidden","true"),s?.setAttribute("aria-expanded","false"),o&&(document.removeEventListener("click",o),o=null)},d=()=>{t.getAttribute("aria-hidden")==="false"?p():u()};s?.addEventListener("click",a=>{a.preventDefault(),a.stopPropagation(),d()}),e.addEventListener("keydown",a=>{a.key==="Escape"&&(p(),s?.focus())}),e.addEventListener("focusout",a=>{a.relatedTarget&&((a.composedPath?a.composedPath():[a.relatedTarget]).some(h=>h===e)||p())})}function tt(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 s=document.createElement("span");s.className="toggle-switch",s.setAttribute("role","presentation"),s.setAttribute("aria-hidden","true");let n=document.createElement("span");n.className="toggle-knob",s.appendChild(n),e.insertBefore(s,t.nextSibling);let i=()=>{e.setAttribute("aria-checked",t.checked?"true":"false")},r=()=>{t.disabled||(t.checked=!t.checked,i(),t.dispatchEvent(new Event("change",{bubbles:!0})))};e.addEventListener("click",o=>{o.preventDefault(),r()}),e.addEventListener("keydown",o=>{(o.key===" "||o.key==="Enter")&&(o.preventDefault(),r())}),t.addEventListener("change",i)}function st(e){if(e.dataset.enhancedRange)return;let t=e.closest("label"),s=t?.classList.contains("range-output"),n=e.id||`range-${Math.random().toString(36).substring(2,11)}`,i=`${n}-output`;if(e.id=n,s){let r=t.querySelector("span");if(r&&!r.classList.contains("range-output-wrapper")){let o=document.createElement("span");o.className="range-output-wrapper",o.style.display="flex",o.style.justifyContent="space-between",o.style.alignItems="center";let u=document.createElement("span");u.textContent=r.textContent,o.appendChild(u);let p=document.createElement("output");p.id=i,p.setAttribute("for",n),p.style.color="var(--surface-text-secondary, var(--color-text-secondary))",p.style.fontSize="0.875rem",p.textContent=e.value,o.appendChild(p),r.textContent="",r.appendChild(o);let d=()=>{p.textContent=e.value};e.addEventListener("input",d)}}else{let r=e.closest(".range-container");r||(r=document.createElement("div"),r.className="range-container",e.parentNode?.insertBefore(r,e),r.appendChild(e)),r.style.position="relative";let o=document.createElement("output");o.id=i,o.setAttribute("for",n),o.className="range-bubble",o.setAttribute("aria-live","polite"),r.appendChild(o);let u=()=>{let a=parseFloat(e.min)||0,c=parseFloat(e.max)||100,f=parseFloat(e.value),h=(f-a)/(c-a);o.style.left=`calc(${h*100}% )`,o.textContent=String(f)},p=()=>o.classList.add("visible"),d=()=>o.classList.remove("visible");e.addEventListener("input",u),e.addEventListener("pointerdown",p),e.addEventListener("pointerup",d),e.addEventListener("pointerleave",d),e.addEventListener("focus",p),e.addEventListener("blur",d),u()}e.dataset.enhancedRange="1"}function nt(e){if(e.dataset.enhancedRequired)return;e.dataset.enhancedRequired="true";let t=s=>{let n;if(s.closest("[role$=group]")?n=s.closest("[role$=group]").querySelector("legend"):n=s.closest("label"),!n||n.querySelector(".required-asterisk"))return;let i=document.createElement("span");i.classList.add("required-asterisk"),i.textContent="*",i.style.marginLeft="4px";let r=n.querySelector("span, [data-label]");if(r)r.appendChild(i);else{let u=n.querySelector("input, select, textarea");u?n.insertBefore(i,u):n.appendChild(i)}let o=s.closest("form");if(o&&!o.querySelector(".required-legend")){let u=document.createElement("small");u.classList.add("required-legend"),u.textContent="* Required fields",o.insertBefore(u,o.querySelector(".form-actions")||o.lastElementChild)}};e.querySelectorAll("[required]").forEach(s=>{t(s)})}function rt(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="Add item...",t.classList.add("input-text","input-sm"),t.style.width="auto";let s=e.querySelector('input[type="radio"], input[type="checkbox"]');e.appendChild(t),t.addEventListener("keydown",n=>{if(n.key==="Enter"||n.key==="Tab"){let i=t.value.trim();if(i){n.preventDefault();let r=s.type==="radio"?"radio":"checkbox",o=`open-group-${Math.random().toString(36).substring(2,11)}`,u=document.createElement("label"),p=document.createElement("span");p.setAttribute("data-label",""),p.textContent=i;let d=document.createElement("input");d.type=r,d.name=s.name||e.getAttribute("data-name")||"open-group",d.value=i,d.id=o,u.appendChild(p),u.appendChild(d),e.insertBefore(u,t),t.value=""}}else if(n.key==="Backspace"&&t.value===""){n.preventDefault();let i=e.querySelectorAll("label");i.length>0&&i[i.length-1].remove()}})}function it(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")},s=()=>{let n=e.getAttribute("data-clip-open")==="true";e.setAttribute("data-clip-open",n?"false":"true"),t()};e.addEventListener("click",n=>{n.defaultPrevented||s()}),e.addEventListener("keydown",n=>{(n.key===" "||n.key==="Enter")&&(n.preventDefault(),s())}),t()}function ot(e){if(e.dataset.enhancedBtnWorking)return;e.dataset.enhancedBtnWorking="true";let t=null,s=!1;new MutationObserver(i=>{i.forEach(r=>{if(r.attributeName==="class"){let o=e.classList.contains("btn-working"),u=e.querySelector("pds-icon");if(o)if(u)t||(t=u.getAttribute("icon")),u.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),s=!0}else r.oldValue?.includes("btn-working")&&u&&(s?(u.remove(),s=!1):t&&(u.setAttribute("icon",t),t=null))}})}).observe(e,{attributes:!0,attributeFilter:["class"],attributeOldValue:!0})}var at=new Map([[".accordion",Xe],["nav[data-dropdown]",et],["label[data-toggle]",tt],['input[type="range"]',st],["form[data-required]",nt],["fieldset[role=group][data-open]",rt],["[data-clip]",it],["button, a[class*='btn-']",ot]]),ie=Ye.map(e=>({...e,run:at.get(e.selector)||(()=>{})}));var ze="pds",ct=/^([a-z][a-z0-9+\-.]*:)?\/\//i,Pe=/^[a-z]:/i;function H(e=""){return e.endsWith("/")?e:`${e}/`}function lt(e="",t=ze){let s=e.replace(/\/+$/,"");return new RegExp(`(?:^|/)${t}$`,"i").test(s)?s:`${s}/${t}`}function dt(e){return e.replace(/^\.\/+/,"")}function ut(e){return Pe.test(e)?e.replace(Pe,"").replace(/^\/+/,""):e}function pt(e){return e.startsWith("public/")?e.substring(7):e}function oe(e,t={}){let s=t.segment||ze,n=t.defaultRoot||`/assets/${s}/`,i=e?.public&&e.public?.root||e?.static&&e.static?.root||null;if(!i||typeof i!="string")return H(n);let r=i.trim();return r?(r=r.replace(/\\/g,"/"),r=lt(r,s),r=H(r),ct.test(r)?r:(r=dt(r),r=ut(r),r.startsWith("/")||(r=pt(r),r.startsWith("/")||(r=`/${r}`),r=r.replace(/\/+/g,(o,u)=>u===0?o:"/")),H(r))):H(n)}var j="any",le={type:"object",allowUnknown:!1,properties:{id:{type:"string"},name:{type:"string"},tags:{type:"array",items:{type:"string"}},description:{type:"string"},options:{type:"object",allowUnknown:!0},form:{type:"object",allowUnknown:!0},colors:{type:"object",allowUnknown:!1,properties:{primary:{type:"string",relations:{tokens:["--color-primary-*","--color-primary-fill","--color-primary-text","--background-mesh-*"]}},secondary:{type:"string",relations:{tokens:["--color-secondary-*","--color-gray-*","--background-mesh-*"]}},accent:{type:"string",relations:{tokens:["--color-accent-*","--background-mesh-*"]}},background:{type:"string",relations:{tokens:["--color-surface-*","--color-surface-translucent-*","--surface-*-bg","--surface-*-text","--surface-*-text-secondary","--surface-*-text-muted","--surface-*-icon","--surface-*-icon-subtle","--surface-*-shadow","--surface-*-border"]}},success:{type:["string","null"],relations:{tokens:["--color-success-*"]}},warning:{type:["string","null"],relations:{tokens:["--color-warning-*"]}},danger:{type:["string","null"],relations:{tokens:["--color-danger-*"]}},info:{type:["string","null"],relations:{tokens:["--color-info-*"]}},gradientStops:{type:"number"},elevationOpacity:{type:"number",relations:{tokens:["--surface-*-shadow"]}},darkMode:{type:"object",allowUnknown:!0,properties:{background:{type:"string",relations:{theme:"dark",tokens:["--color-surface-*","--color-surface-translucent-*","--surface-*-bg","--surface-*-text","--surface-*-text-secondary","--surface-*-text-muted","--surface-*-icon","--surface-*-icon-subtle","--surface-*-shadow","--surface-*-border"]}},primary:{type:"string",relations:{theme:"dark",tokens:["--color-primary-*","--color-primary-fill","--color-primary-text"]}},secondary:{type:"string",relations:{theme:"dark",tokens:["--color-secondary-*","--color-gray-*"]}},accent:{type:"string",relations:{theme:"dark",tokens:["--color-accent-*"]}}}}}},typography:{type:"object",allowUnknown:!1,properties:{fontFamilyHeadings:{type:"string",relations:{tokens:["--font-family-headings"]}},fontFamilyBody:{type:"string",relations:{tokens:["--font-family-body"]}},fontFamilyMono:{type:"string",relations:{tokens:["--font-family-mono"]}},baseFontSize:{type:"number",relations:{tokens:["--font-size-*"]}},fontScale:{type:"number",relations:{tokens:["--font-size-*"]}},fontWeightLight:{type:["string","number"],relations:{tokens:["--font-weight-light"]}},fontWeightNormal:{type:["string","number"],relations:{tokens:["--font-weight-normal"]}},fontWeightMedium:{type:["string","number"],relations:{tokens:["--font-weight-medium"]}},fontWeightSemibold:{type:["string","number"],relations:{tokens:["--font-weight-semibold"]}},fontWeightBold:{type:["string","number"],relations:{tokens:["--font-weight-bold"]}},lineHeightTight:{type:["string","number"],relations:{tokens:["--font-line-height-tight"]}},lineHeightNormal:{type:["string","number"],relations:{tokens:["--font-line-height-normal"]}},lineHeightRelaxed:{type:["string","number"],relations:{tokens:["--font-line-height-relaxed"]}},letterSpacingTight:{type:"number"},letterSpacingNormal:{type:"number"},letterSpacingWide:{type:"number"}}},spatialRhythm:{type:"object",allowUnknown:!1,properties:{baseUnit:{type:"number",relations:{tokens:["--spacing-*"]}},scaleRatio:{type:"number"},maxSpacingSteps:{type:"number",relations:{tokens:["--spacing-*"]}},containerMaxWidth:{type:["number","string"]},containerPadding:{type:"number"},inputPadding:{type:"number",relations:{rules:[{selectors:["input","textarea","select"],properties:["padding"]}]}},buttonPadding:{type:"number",relations:{rules:[{selectors:["button",".btn"],properties:["padding"]}]}},sectionSpacing:{type:"number",relations:{rules:[{selectors:["section"],properties:["margin","padding"]}]}}}},shape:{type:"object",allowUnknown:!1,properties:{radiusSize:{type:["string","number"],relations:{tokens:["--radius-*"]}},customRadius:{type:["string","number","null"]},borderWidth:{type:["string","number"],relations:{tokens:["--border-width-*"]}}}},behavior:{type:"object",allowUnknown:!1,properties:{transitionSpeed:{type:["string","number"],relations:{tokens:["--transition-*"]}},animationEasing:{type:"string"},customTransitionSpeed:{type:["number","null"]},customEasing:{type:["string","null"]},focusRingWidth:{type:"number",relations:{rules:[{selectors:[":focus-visible"],properties:["outline-width","box-shadow"]}]}},focusRingOpacity:{type:"number",relations:{rules:[{selectors:[":focus-visible"],properties:["box-shadow","outline-color"]}]}},hoverOpacity:{type:"number"}}},layout:{type:"object",allowUnknown:!1,properties:{maxWidth:{type:["number","string"],relations:{tokens:["--layout-max-width","--layout-max-width-*"]}},maxWidths:{type:"object",allowUnknown:!1,properties:{sm:{type:["number","string"],relations:{tokens:["--layout-max-width-sm"]}},md:{type:["number","string"],relations:{tokens:["--layout-max-width-md"]}},lg:{type:["number","string"],relations:{tokens:["--layout-max-width-lg"]}},xl:{type:["number","string"],relations:{tokens:["--layout-max-width-xl"]}}}},containerPadding:{type:["number","string"],relations:{tokens:["--layout-container-padding"]}},breakpoints:{type:"object",allowUnknown:!1,properties:{sm:{type:"number"},md:{type:"number"},lg:{type:"number"},xl:{type:"number"}}},gridColumns:{type:"number"},gridGutter:{type:"number"},densityCompact:{type:"number"},densityNormal:{type:"number"},densityComfortable:{type:"number"},buttonMinHeight:{type:"number"},inputMinHeight:{type:"number"},baseShadowOpacity:{type:"number",relations:{tokens:["--shadow-*"]}},darkMode:{type:"object",allowUnknown:!0,properties:{baseShadowOpacity:{type:"number",relations:{theme:"dark",tokens:["--shadow-*"]}}}},utilities:{type:"object",allowUnknown:!0},gridSystem:{type:"object",allowUnknown:!0},containerMaxWidth:{type:["number","string"]}}},layers:{type:"object",allowUnknown:!1,properties:{baseShadowOpacity:{type:"number",relations:{tokens:["--shadow-*"]}},shadowBlurMultiplier:{type:"number",relations:{tokens:["--shadow-*"]}},shadowOffsetMultiplier:{type:"number",relations:{tokens:["--shadow-*"]}},shadowDepth:{type:"string"},blurLight:{type:"number"},blurMedium:{type:"number"},blurHeavy:{type:"number"},baseZIndex:{type:"number",relations:{tokens:["--z-*"]}},zIndexStep:{type:"number",relations:{tokens:["--z-*"]}},zIndexBase:{type:"number"},zIndexDropdown:{type:"number"},zIndexSticky:{type:"number"},zIndexFixed:{type:"number"},zIndexModal:{type:"number"},zIndexPopover:{type:"number"},zIndexTooltip:{type:"number"},zIndexNotification:{type:"number"},darkMode:{type:"object",allowUnknown:!0,properties:{baseShadowOpacity:{type:"number",relations:{theme:"dark",tokens:["--shadow-*"]}}}}}},advanced:{type:"object",allowUnknown:!0},a11y:{type:"object",allowUnknown:!0},icons:{type:"object",allowUnknown:!1,properties:{set:{type:"string"},weight:{type:"string"},defaultSize:{type:"number",relations:{tokens:["--icon-size"]}},sizes:{type:"object",allowUnknown:!0},spritePath:{type:"string"},externalPath:{type:"string"},include:{type:"object",allowUnknown:!0}}},components:{type:"object",allowUnknown:!0},gap:{type:"number"},debug:{type:"boolean"}}},ht={type:"object",allowUnknown:!0,properties:{mode:{type:"string"},preset:{type:"string"},design:le,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:j},enhancers:{type:["object","array"]},scanExisting:{type:"boolean"},observeShadows:{type:"boolean"},patchAttachShadow:{type:"boolean"},debounceMs:{type:"number"},onError:{type:j},baseURL:{type:"string"}}},managerURL:{type:"string"},manager:{type:j},liveEdit:{type:"boolean"},log:{type:j}}};function ae(e){return e===null?"null":Array.isArray(e)?"array":typeof e}function ft(e,t){if(t===j)return!0;let s=ae(e);return Array.isArray(t)?t.includes(s):s===t}function Z(e,t,s,n){if(!t)return;let i=t.type||j;if(!ft(e,i)){n.push({path:s,expected:i,actual:ae(e),message:`Expected ${i} but got ${ae(e)}`});return}if(i==="array"&&t.items&&Array.isArray(e)&&e.forEach((r,o)=>{Z(r,t.items,`${s}[${o}]`,n)}),i==="object"&&e&&typeof e=="object"){let r=t.properties||{};for(let[o,u]of Object.entries(e)){if(!Object.prototype.hasOwnProperty.call(r,o)){t.allowUnknown||n.push({path:`${s}.${o}`,expected:"known property",actual:"unknown",message:`Unknown property "${o}"`});continue}Z(u,r[o],`${s}.${o}`,n)}}}function ce(e,t="",s={}){if(!e||typeof e!="object")return s;if(e.relations&&t&&(s[t]=e.relations),e.type==="object"&&e.properties&&Object.entries(e.properties).forEach(([n,i])=>{let r=t?`${t}.${n}`:n;ce(i,r,s)}),e.type==="array"&&e.items){let n=`${t}[]`;ce(e.items,n,s)}return s}var Nt=ce(le,"");function de(e,{log:t,context:s="PDS config"}={}){if(!e||typeof e!="object")return[];let n=[];return Z(e,le,"design",n),n.length&&typeof t=="function"&&n.forEach(i=>{t("warn",`[${s}] ${i.message} at ${i.path}`)}),n}function Ue(e,{log:t,context:s="PDS config"}={}){if(!e||typeof e!="object")return[];let n=[];return Z(e,ht,"config",n),n.length&&typeof t=="function"&&n.forEach(i=>{t("warn",`[${s}] ${i.message} at ${i.path}`)}),n}var mt={"ocean-breeze":{id:"ocean-breeze",name:"Ocean Breeze",tags:["playful"],description:"Fresh and calming ocean-inspired palette with professional undertones",options:{liquidGlassEffects:!0,backgroundMesh:3},colors:{primary:"#0891b2",secondary:"#64748b",accent:"#06b6d4",background:"#f0f9ff",darkMode:{background:"#0c1821",secondary:"#94a3b8",primary:"#0891b2"}},typography:{baseFontSize:17,fontScale:1.5,fontFamilyHeadings:'system-ui, -apple-system, "Segoe UI", Roboto, sans-serif',fontFamilyBody:'system-ui, -apple-system, "Segoe UI", Roboto, sans-serif'},spatialRhythm:{baseUnit:6,scaleRatio:1.2},shape:{radiusSize:l.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:l.RadiusSizes.small,borderWidth:l.BorderWidths.thin}},"neural-glow":{id:"neural-glow",name:"Neural Glow",description:"AI-inspired with vibrant purple-blue gradients and futuristic vibes",colors:{primary:"#8b5cf6",secondary:"#6366f1",accent:"#ec4899",background:"#faf5ff",darkMode:{background:"#0f0a1a",secondary:"#818cf8",primary:"#8b5cf6"}},typography:{baseFontSize:16,fontScale:1.618,fontFamilyHeadings:"'Space Grotesk', system-ui, sans-serif",fontFamilyBody:"'Space Grotesk', system-ui, sans-serif"},spatialRhythm:{baseUnit:4,scaleRatio:1.5},shape:{radiusSize:l.RadiusSizes.xlarge,borderWidth:l.BorderWidths.medium},behavior:{transitionSpeed:l.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:l.RadiusSizes.none,borderWidth:l.BorderWidths.thin}},"sunset-paradise":{id:"sunset-paradise",name:"Sunset Paradise",description:"Warm tropical colors evoking golden hour by the beach",options:{liquidGlassEffects:!0,backgroundMesh:2},colors:{primary:"#ea580c",secondary:"#d4a373",accent:"#fb923c",background:"#fffbeb",darkMode:{background:"#1a0f0a",secondary:"#c9a482",primary:"#f97316"}},typography:{baseFontSize:16,fontScale:1.5,fontFamilyHeadings:"'Quicksand', 'Comfortaa', sans-serif",fontFamilyBody:"'Quicksand', 'Comfortaa', sans-serif"},spatialRhythm:{baseUnit:6,scaleRatio:1.5},shape:{radiusSize:l.RadiusSizes.xxlarge,borderWidth:l.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:l.RadiusSizes.none,borderWidth:l.BorderWidths.thick},behavior:{transitionSpeed:l.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:l.RadiusSizes.medium,borderWidth:l.BorderWidths.thin}},"ruby-elegance":{id:"ruby-elegance",name:"Ruby Elegance",description:"Sophisticated palette with rich ruby reds and warm accents",colors:{primary:"#dc2626",secondary:"#9ca3af",accent:"#be123c",background:"#fef2f2",darkMode:{background:"#1b0808",secondary:"#d1d5db",primary:"#ef4444"}},typography:{baseFontSize:17,fontScale:1.5,fontFamilyHeadings:"'Playfair Display', 'Georgia', serif",fontFamilyBody:"'Crimson Text', 'Garamond', serif",fontWeightNormal:400,fontWeightSemibold:600},spatialRhythm:{baseUnit:4,scaleRatio:1.333},shape:{radiusSize:l.RadiusSizes.small,borderWidth:l.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:l.RadiusSizes.medium,borderWidth:l.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:l.RadiusSizes.small,borderWidth:l.BorderWidths.thick},behavior:{transitionSpeed:l.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:l.LineHeights.relaxed},spatialRhythm:{baseUnit:6,scaleRatio:1.4},shape:{radiusSize:l.RadiusSizes.xxlarge,borderWidth:l.BorderWidths.thin},behavior:{transitionSpeed:l.TransitionSpeeds.slow,animationEasing:l.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:l.RadiusSizes.none,borderWidth:l.BorderWidths.thick},behavior:{transitionSpeed:l.TransitionSpeeds.instant}},"zen-garden":{id:"zen-garden",name:"Zen Garden",description:"Soft botanicals with contemplative spacing and balanced motion",colors:{primary:"#3f6212",secondary:"#6b7280",accent:"#7c3aed",background:"#f7fbef",darkMode:{background:"#0d130a",secondary:"#a3a3a3",primary:"#84cc16"}},typography:{baseFontSize:17,fontScale:1.414,fontFamilyHeadings:"'Merriweather', Georgia, serif",fontFamilyBody:"'Noto Sans', system-ui, -apple-system, sans-serif"},spatialRhythm:{baseUnit:6,scaleRatio:1.35},shape:{radiusSize:l.RadiusSizes.large,borderWidth:l.BorderWidths.medium},behavior:{transitionSpeed:l.TransitionSpeeds.normal,animationEasing:l.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:l.LineHeights.tight},spatialRhythm:{baseUnit:4,scaleRatio:1.25,containerPadding:1.25,sectionSpacing:2.5},shape:{radiusSize:l.RadiusSizes.large,borderWidth:l.BorderWidths.thin},layers:{shadowDepth:"medium",blurMedium:12},behavior:{transitionSpeed:l.TransitionSpeeds.fast,animationEasing:l.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:l.LineHeights.relaxed},spatialRhythm:{baseUnit:4,scaleRatio:1.25,containerMaxWidth:1440,containerPadding:1.5,sectionSpacing:3},shape:{radiusSize:l.RadiusSizes.medium,borderWidth:l.BorderWidths.thin},layers:{shadowDepth:"light",blurLight:8},behavior:{transitionSpeed:l.TransitionSpeeds.normal,animationEasing:l.AnimationEasings["ease-in-out"],hoverOpacity:.9}},"mobility-app":{id:"mobility-app",name:"Mobility App",tags:["app","featured"],description:"On-demand service platform with bold typography, map-ready colors, and action-driven UI",options:{liquidGlassEffects:!0,backgroundMesh:0},colors:{primary:"#000000",secondary:"#545454",accent:"#06c167",background:"#f6f6f6",darkMode:{background:"#0f0f0f",secondary:"#8a8a8a",primary:"#06c167"}},typography:{baseFontSize:16,fontScale:1.3,fontFamilyHeadings:"'UberMove', system-ui, -apple-system, 'Segoe UI', sans-serif",fontFamilyBody:"'UberMove', system-ui, -apple-system, 'Segoe UI', sans-serif",fontWeightNormal:400,fontWeightMedium:500,fontWeightSemibold:600,fontWeightBold:700},spatialRhythm:{baseUnit:4,scaleRatio:1.25,buttonPadding:1.25,inputPadding:1},shape:{radiusSize:l.RadiusSizes.small,borderWidth:l.BorderWidths.medium},behavior:{transitionSpeed:l.TransitionSpeeds.fast,animationEasing:l.AnimationEasings["ease-out"],focusRingWidth:3},a11y:{minTouchTarget:l.TouchTargetSizes.comfortable,focusStyle:l.FocusStyles.ring}},"fintech-secure":{id:"fintech-secure",name:"Fintech Secure",description:"Financial services app UI with trust-building blues, precise spacing, and security-first design",options:{liquidGlassEffects:!1,backgroundMesh:0},colors:{primary:"#0a2540",secondary:"#425466",accent:"#00d4ff",background:"#f7fafc",darkMode:{background:"#0a1929",secondary:"#8796a5",primary:"#00d4ff"}},typography:{baseFontSize:16,fontScale:1.25,fontFamilyHeadings:"'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif",fontFamilyBody:"'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif",fontFamilyMono:"'JetBrains Mono', ui-monospace, 'Cascadia Code', monospace",fontWeightNormal:400,fontWeightMedium:500,fontWeightSemibold:600,fontWeightBold:700},spatialRhythm:{baseUnit:4,scaleRatio:1.25,containerMaxWidth:1280,sectionSpacing:2.5},shape:{radiusSize:l.RadiusSizes.medium,borderWidth:l.BorderWidths.thin},layers:{shadowDepth:"light",blurLight:6},behavior:{transitionSpeed:l.TransitionSpeeds.fast,animationEasing:l.AnimationEasings["ease-in-out"],focusRingWidth:3,focusRingOpacity:.4},a11y:{minTouchTarget:l.TouchTargetSizes.standard,focusStyle:l.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:l.LineHeights.relaxed},spatialRhythm:{baseUnit:4,scaleRatio:1.25,containerMaxWidth:680,sectionSpacing:1.5},shape:{radiusSize:l.RadiusSizes.medium,borderWidth:l.BorderWidths.thin},behavior:{transitionSpeed:l.TransitionSpeeds.fast,animationEasing:l.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:l.LineHeights.tight},spatialRhythm:{baseUnit:4,scaleRatio:1.2,containerMaxWidth:1600,containerPadding:1.5,sectionSpacing:2},shape:{radiusSize:l.RadiusSizes.small,borderWidth:l.BorderWidths.thin},layers:{shadowDepth:"light",blurLight:4},behavior:{transitionSpeed:l.TransitionSpeeds.fast,animationEasing:l.AnimationEasings["ease-in-out"],focusRingWidth:2},layout:{densityCompact:.85,gridColumns:12}}};mt.default={id:"default",name:"Default",tags:["app","featured"],description:"Fresh and modern design system with balanced aesthetics and usability",options:{liquidGlassEffects:!0,backgroundMesh:4},form:{options:{widgets:{booleans:"toggle",numbers:"input",selects:"standard"},layouts:{fieldsets:"default",arrays:"default"},enhancements:{icons:!0,datalists:!0,rangeOutput:!0},validation:{showErrors:!0,validateOnChange:!1}}},colors:{primary:"#0e7490",secondary:"#a99b95",accent:"#e54271",background:"#e7e6de",darkMode:{background:"#16171a",secondary:"#8b9199",primary:"#06b6d4"},success:null,warning:"#B38600",danger:null,info:null,gradientStops:3,elevationOpacity:.05},typography:{baseFontSize:16,fontScale:1.2,fontFamilyHeadings:'system-ui, -apple-system, "Segoe UI", Roboto, sans-serif',fontFamilyBody:'system-ui, -apple-system, "Segoe UI", Roboto, sans-serif',fontFamilyMono:'ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, monospace',fontWeightLight:l.FontWeights.light,fontWeightNormal:l.FontWeights.normal,fontWeightMedium:l.FontWeights.medium,fontWeightSemibold:l.FontWeights.semibold,fontWeightBold:l.FontWeights.bold,lineHeightTight:l.LineHeights.tight,lineHeightNormal:l.LineHeights.normal,lineHeightRelaxed:l.LineHeights.relaxed,letterSpacingTight:-.025,letterSpacingNormal:0,letterSpacingWide:.025},spatialRhythm:{baseUnit:4,scaleRatio:1.25,maxSpacingSteps:32,containerMaxWidth:1200,containerPadding:1,inputPadding:.75,buttonPadding:1,sectionSpacing:2},layers:{shadowDepth:"medium",blurLight:4,blurMedium:8,blurHeavy:16,zIndexBase:0,zIndexDropdown:1e3,zIndexSticky:1020,zIndexFixed:1030,zIndexModal:1040,zIndexPopover:1050,zIndexTooltip:1060,zIndexNotification:1070},shape:{radiusSize:l.RadiusSizes.large,borderWidth:l.BorderWidths.medium,customRadius:null},behavior:{transitionSpeed:l.TransitionSpeeds.normal,animationEasing:l.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:l.TouchTargetSizes.standard,inputMinHeight:40,utilities:{grid:!0,flex:!0,spacing:!0,container:!0},gridSystem:{columns:[1,2,3,4,6],autoFitBreakpoints:{sm:"150px",md:"250px",lg:"350px",xl:"450px"},enableGapUtilities:!0},containerMaxWidth:"1400px",containerPadding:"var(--spacing-6)"},advanced:{linkStyle:l.LinkStyles.inline,colorDerivation:"hsl"},a11y:{minTouchTarget:l.TouchTargetSizes.standard,prefersReducedMotion:!0,focusStyle:l.FocusStyles.ring},icons:{set:"phosphor",weight:"regular",defaultSize:24,externalPath:"/assets/img/icons/",sizes:l.IconSizes,include:{navigation:["arrow-left","arrow-right","arrow-up","arrow-down","arrow-counter-clockwise","caret-left","caret-right","caret-down","caret-up","x","list","list-dashes","dots-three-vertical","dots-three","house","gear","magnifying-glass","funnel","tabs","sidebar"],actions:["plus","minus","check","trash","pencil","floppy-disk","copy","download","upload","share","link","eye","eye-slash","heart","star","bookmark","note-pencil","cursor-click","clipboard","magic-wand","sparkle"],communication:["envelope","bell","bell-ringing","bell-simple","chat-circle","phone","paper-plane-tilt","user","users","user-gear","at"],content:["image","file","file-text","file-css","file-js","folder","folder-open","book-open","camera","video-camera","play","pause","microphone","brackets-curly","code","folder-simple","grid-four","briefcase","chart-line","chart-bar","database","map-pin"],status:["info","warning","check-circle","x-circle","question","shield","shield-check","shield-warning","lock","lock-open","fingerprint","circle-notch"],time:["calendar","clock","timer","hourglass"],commerce:["shopping-cart","credit-card","currency-dollar","tag","receipt","storefront"],formatting:["text-align-left","text-align-center","text-align-right","text-b","text-italic","text-underline","list-bullets","list-numbers","text-aa"],system:["cloud","cloud-arrow-up","cloud-arrow-down","desktop","device-mobile","globe","wifi-high","battery-charging","sun","moon","moon-stars","palette","rocket","feather","square","circle","squares-four","lightning","wrench"]},spritePath:"public/assets/pds/icons/pds-icons.svg"},gap:4,debug:!1};var gt=/^[a-z][a-z0-9+\-.]*:\/\//i,N=(()=>{try{return import.meta.url}catch{return}})(),J=e=>typeof e=="string"&&e.length&&!e.endsWith("/")?`${e}/`:e;function Y(e,t={}){if(!e||gt.test(e))return e;let{preferModule:s=!0}=t,n=()=>{if(!N)return null;try{return new URL(e,N).href}catch{return null}},i=()=>{if(typeof window>"u"||!window.location?.origin)return null;try{return new URL(e,window.location.origin).href}catch{return null}};return(s?n()||i():i()||n())||e}var je=(()=>{if(N)try{let e=new URL(N);if(/\/public\/assets\/js\//.test(e.pathname))return new URL("../pds/",N).href}catch{return}})(),_e=!1;function Be(e){_e||typeof document>"u"||(_e=!0,e.addEventListener("pds:ready",t=>{let s=t.detail?.mode;s&&document.documentElement.classList.add(`pds-${s}`,"pds-ready")}))}function he(e={},t={}){if(!t||typeof t!="object")return e;let s=Array.isArray(e)?[...e]:{...e};for(let[n,i]of Object.entries(t))i&&typeof i=="object"&&!Array.isArray(i)?s[n]=he(s[n]&&typeof s[n]=="object"?s[n]:{},i):s[n]=i;return s}function pe(e=""){return String(e).toLowerCase().replace(/&/g," and ").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}function I(e){if(e==null)return e;if(typeof e=="function")return;if(typeof e!="object")return e;if(Array.isArray(e))return e.map(s=>I(s)).filter(s=>s!==void 0);let t={};for(let s in e)if(e.hasOwnProperty(s)){let n=e[s];if(typeof n!="function"){let i=I(n);i!==void 0&&(t[s]=i)}}return t}function He(e={},t={},{presets:s,defaultLog:n}){let i=e&&typeof e.log=="function"?e.log:n,r=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),o=e&&e.enhancers;o&&!Array.isArray(o)&&(o=Object.values(o));let u=o??t.enhancers??[],p=e&&e.preset,d=e&&e.design,a=e&&e.icons&&typeof e.icons=="object"?e.icons:null,c="preset"in(e||{})||"design"in(e||{})||"enhancers"in(e||{});e&&typeof e=="object"&&Ue(e,{log:i,context:"PDS.start"});let f,h=null;if(c){d&&typeof d=="object"&&de(d,{log:i,context:"PDS.start"});let k=String(p||"default").toLowerCase(),S=s?.[k]||Object.values(s||{}).find(y=>pe(y.name)===k||String(y.name||"").toLowerCase()===k);if(!S)throw new Error(`PDS preset not found: "${p||"default"}"`);h={id:S.id||pe(S.name),name:S.name||S.id||String(k)};let b=structuredClone(S);if(d&&typeof d=="object"||a){let y=d?I(d):{},g=a?I(a):null,A=g?he(y,{icons:g}):y;b=he(b,structuredClone(A))}let{mode:x,autoDefine:P,applyGlobalStyles:L,manageTheme:T,themeStorageKey:C,preloadStyles:_,criticalLayers:z,managerURL:q,manager:R,preset:D,design:B,enhancers:v,log:U,...m}=e;f={...m,design:b,preset:h.name,log:U||n}}else if(r){de(e,{log:i,context:"PDS.start"});let{log:k,...S}=e;f={design:structuredClone(S),log:k||n}}else{let k=s?.default||Object.values(s||{}).find(S=>pe(S.name)==="default");if(!k)throw new Error("PDS default preset not available");h={id:k.id||"default",name:k.name||"Default"},f={design:structuredClone(k),preset:h.name,log:n}}return{generatorConfig:f,enhancers:u,presetInfo:h}}function Ne({manageTheme:e,themeStorageKey:t,applyResolvedTheme:s,setupSystemListenerIfNeeded:n}){let i="light",r=null;if(e&&typeof window<"u"){try{r=localStorage.getItem(t)||null}catch{r=null}try{s?.(r),n?.(r)}catch{}r?r==="system"?i=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":i=r:i=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}return{resolvedTheme:i,storedTheme:r}}function fe(e,{resolvePublicAssetURL:t}){let s=!!(e?.public?.root||e?.static?.root),n=t(e);return!s&&je&&(n=je),J(Y(n))}async function Oe(e,{baseEnhancers:t=[]}={}){let{autoDefineBaseURL:s="/auto-define/",autoDefinePreload:n=[],autoDefineMapper:i=null,enhancers:r=[],autoDefineOverrides:o=null,autoDefinePreferModule:u=!0}=e,p=(()=>{let a=new Map;return(t||[]).forEach(c=>a.set(c.selector,c)),(r||[]).forEach(c=>a.set(c.selector,c)),Array.from(a.values())})(),d=null;if(typeof window<"u"&&typeof document<"u"){let a=null;try{let b=await Promise.resolve().then(()=>(Fe(),$e));a=b?.AutoDefiner||b?.default?.AutoDefiner||b?.default||null}catch(b){console.warn("AutoDefiner not available:",b?.message||b)}let c=b=>{switch(b){case"pds-tabpanel":return"pds-tabstrip.js";default:return`${b}.js`}},{mapper:f,...h}=o&&typeof o=="object"?o:{},S={baseURL:s&&J(Y(s,{preferModule:u})),predefine:n,scanExisting:!0,observeShadows:!0,patchAttachShadow:!0,debounceMs:16,enhancers:p,onError:(b,x)=>{if(typeof b=="string"&&b.startsWith("pds-")){let L=["pds-form","pds-drawer"].includes(b),T=x?.message?.includes("#pds/lit")||x?.message?.includes("Failed to resolve module specifier");L&&T?console.error(`\u274C PDS component <${b}> requires Lit but #pds/lit is not in import map.
32
- See: https://github.com/Pure-Web-Foundation/pure-ds/blob/main/readme.md#lit-components-not-working`):console.warn(`\u26A0\uFE0F PDS component <${b}> not found. Assets may not be installed.`)}else console.error(`\u274C Auto-define error for <${b}>:`,x)},...h,mapper:b=>{if(customElements.get(b))return null;if(typeof i=="function")try{let x=i(b);return x===void 0?c(b):x}catch(x){return console.warn("Custom autoDefine.mapper error; falling back to default:",x?.message||x),c(b)}return c(b)}};a&&(d=new a(S),n.length>0&&typeof a.define=="function"&&await a.define(...n,{baseURL:s,mapper:S.mapper,onError:S.onError}))}return{autoDefiner:d,mergedEnhancers:p}}var me=["light","dark"],ye=new Set(me);function bt(e){let s=(Array.isArray(e?.themes)?e.themes.map(n=>String(n).toLowerCase()):me).filter(n=>ye.has(n));return s.length?s:me}function ge(e,{preferDocument:t=!0}={}){let s=String(e||"").toLowerCase();if(ye.has(s))return s;if(t&&typeof document<"u"){let n=document.documentElement?.getAttribute("data-theme");if(ye.has(n))return n}return typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function qe(e,t){let s=ge(t);return bt(e).includes(s)}var Se=class extends EventTarget{},w=new Se;w.initializing=!1;w.currentPreset=null;w.debug=!1;var Ge=(e="")=>String(e).toLowerCase().replace(/&/g," and ").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,""),be=function(e="log",t,...s){let n=!!(w.registry&&!w.registry.isLive),i=(this?.debug||this?.design?.debug||w.debug||!1)===!0;if(n){if(!w.debug)return}else if(!i&&e!=="error"&&e!=="warn")return;let r=console[e]||console.log;s.length>0?r(t,...s):r(t)};async function wt(e,t={}){if(t?.runtimeConfig===!1||typeof fetch!="function")return null;let s=t?.runtimeConfigURL||`${e}pds-runtime-config.json`;try{let n=await fetch(s,{cache:"no-store"});return n.ok?await n.json():null}catch{return null}}w.registry=F;w.enums=l;w.adoptLayers=Te;w.adoptPrimitives=Me;w.parse=se;w.createStylesheet=De;w.isLiveMode=()=>F.isLive;w.ask=We;w.toast=M;w.common=ne;w.AutoComplete=V;function Ve(e){let t=typeof CustomEvent=="function";try{let s=t?new CustomEvent("pds:ready",{detail:e}):new Event("pds:ready");w.dispatchEvent(s)}catch{}if(typeof document<"u")if(t){let s={detail:e,bubbles:!0,composed:!0};try{document.dispatchEvent(new CustomEvent("pds:ready",s))}catch{}try{document.dispatchEvent(new CustomEvent("pds-ready",s))}catch{}}else{try{document.dispatchEvent(new Event("pds:ready"))}catch{}try{document.dispatchEvent(new Event("pds-ready"))}catch{}}}typeof window<"u"&&(window.PDS=w);var we="pure-ds-theme",W=null,O=null;function ke(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 xe(e){try{if(W&&O){try{typeof W.removeEventListener=="function"?W.removeEventListener("change",O):typeof W.removeListener=="function"&&W.removeListener(O)}catch{}W=null,O=null}if(e==="system"&&typeof window<"u"&&window.matchMedia){let t=window.matchMedia("(prefers-color-scheme: dark)"),s=n=>{let i=n?.matches===void 0?t.matches:n.matches;try{let r=i?"dark":"light";document.documentElement.setAttribute("data-theme",r),w.dispatchEvent(new CustomEvent("pds:theme:changed",{detail:{theme:r,source:"system"}}))}catch{}};W=t,O=s,typeof t.addEventListener=="function"?t.addEventListener("change",s):typeof t.addListener=="function"&&t.addListener(s)}}catch{}}Object.defineProperty(w,"theme",{get(){try{return typeof window>"u"?null:localStorage.getItem(we)||null}catch{return null}},set(e){try{if(typeof window>"u")return;let t=w.currentConfig?.design||null,s=ge(e);if(t&&!qe(t,s)){let n=t?.name||w.currentPreset?.name||w.currentConfig?.preset||"current preset";console.warn(`PDS theme "${s}" not supported by preset "${n}".`),w.dispatchEvent(new CustomEvent("pds:theme:blocked",{detail:{theme:e,resolvedTheme:s,preset:n}}));return}e==null?localStorage.removeItem(we):localStorage.setItem(we,e),ke(e),xe(e),w.dispatchEvent(new CustomEvent("pds:theme:changed",{detail:{theme:e,source:"api"}}))}catch{}}});w.defaultEnhancers=ie;async function St(e){let t=e&&e.mode||"live",{mode:s,...n}=e||{};if(t==="static")return kt(n);let i=fe(n,{resolvePublicAssetURL:oe}),r=n?.managerURL||n?.public?.managerURL||n?.manager?.url||new URL("core/pds-manager.js",i).href||new URL("./pds-manager.js",import.meta.url).href,{startLive:o}=await import(r);return o(w,n,{emitReady:Ve,applyResolvedTheme:ke,setupSystemListenerIfNeeded:xe})}w.start=St;async function kt(e){if(!e||typeof e!="object")throw new Error("PDS.start({ mode: 'static', ... }) requires a valid configuration object");let t=e.applyGlobalStyles??!0,s=e.manageTheme??!0,n=e.themeStorageKey??"pure-ds-theme",i=e.staticPaths??{},r=fe(e,{resolvePublicAssetURL:oe}),o=e&&e.autoDefine||null,u;o&&o.baseURL?u=J(Y(o.baseURL,{preferModule:!1})):u=`${r}components/`;let p=o&&Array.isArray(o.predefine)&&o.predefine||[],d=o&&typeof o.mapper=="function"&&o.mapper||null;try{Be(w);let{resolvedTheme:a}=Ne({manageTheme:s,themeStorageKey:n,applyResolvedTheme:ke,setupSystemListenerIfNeeded:xe}),c=await wt(r,e),f=c?.config?.design||c?.design||null,h=c?.config?.preset||c?.preset||"default",k=c?.presetId||Ge(h)||"default",S=f?{[String(k).toLowerCase()]:f,...String(k).toLowerCase()!=="default"?{default:f}:{}}:null,b=e?.design&&typeof e.design=="object"?I(e.design):null,x=Ge(e?.preset||"default")||"default",P=b?{[String(x).toLowerCase()]:b,...String(x).toLowerCase()!=="default"?{default:b}:{}}:null,L=S||e?.presets||P||{};if(!Object.keys(L||{}).length)throw new Error("PDS static mode requires preset data. Run pds:build or provide config.presets/config.design.");let T=c?.config?{...c.config,...e,preset:e?.preset||k,design:b||f||c?.config?.design}:e,C=He(T,{},{presets:L,defaultLog:be}),_=C.enhancers,z={tokens:`${r}styles/pds-tokens.css.js`,primitives:`${r}styles/pds-primitives.css.js`,components:`${r}styles/pds-components.css.js`,utilities:`${r}styles/pds-utilities.css.js`,styles:`${r}styles/pds-styles.css.js`},q=c?.paths||{};if(i={...z,...q,...i},w.registry.setStaticMode(i),t&&typeof document<"u")try{let v=await w.registry.getStylesheet("styles");if(v){v._pds=!0;let U=(document.adoptedStyleSheets||[]).filter(m=>m._pds!==!0);document.adoptedStyleSheets=[...U,v]}}catch(v){be.call(w,"warn","Failed to apply static styles:",v)}let R=null,D=[];try{let v=await Oe({autoDefineBaseURL:u,autoDefinePreload:p,autoDefineMapper:d,enhancers:_,autoDefineOverrides:o||null,autoDefinePreferModule:!(o&&o.baseURL)},{baseEnhancers:ie});R=v.autoDefiner,D=v.mergedEnhancers||[]}catch(v){be.call(w,"error","\u274C Failed to initialize AutoDefiner/Enhancers (static):",v)}let B=I(e);return w.currentConfig=Object.freeze({mode:"static",...structuredClone(B),design:structuredClone(C.generatorConfig.design),preset:C.generatorConfig.preset,theme:a,enhancers:D}),Ve({mode:"static",config:C.generatorConfig,theme:a,autoDefiner:R}),{config:C.generatorConfig,theme:a,autoDefiner:R}}catch(a){throw w.dispatchEvent(new CustomEvent("pds:error",{detail:{error:a}})),a}}var E={name:"@pure-ds/core",shortname:"pds",version:"0.6.6",description:"Pure Design System - Why develop a Design System when you can generate one?",repository:{type:"git",url:"git+https://github.com/Pure-Web-Foundation/pure-ds.git"},bugs:{url:"https://github.com/Pure-Web-Foundation/pure-ds/issues"},homepage:"https://puredesignsystem.z6.web.core.windows.net/",keywords:["design-system","css","web-components","lit","constructable-stylesheets","tokens","utilities","a11y"],type:"module",main:"./public/assets/js/pds.js",module:"./public/assets/js/pds.js",types:"./dist/types/pds.d.ts",bin:{"pds-build":"packages/pds-cli/bin/pds-static.js","pds-sync-assets":"packages/pds-cli/bin/sync-assets.js","pds-build-icons":"packages/pds-cli/bin/pds-build-icons.js","pds-setup-copilot":"packages/pds-cli/bin/pds-setup-copilot.js","pds-init-config":"packages/pds-cli/bin/pds-init-config.js","pds-bootstrap":"packages/pds-cli/bin/pds-bootstrap.js"},exports:{".":{types:"./src/js/pds.d.ts",import:"./public/assets/js/pds.js"},"./pds-core":"./src/js/pds.js","./auto-define/*":"./public/auto-define/*"},files:[".github/copilot-instructions.md",".cursorrules","dist/types/","public/assets/js/","public/assets/pds/components/","public/assets/pds/external/","public/assets/pds/vscode-custom-data.json","public/assets/pds/pds.css-data.json","public/assets/pds/pds-css-complete.json","public/auto-define/","public/pds/components/","public/assets/pds/icons/pds-icons.svg","packages/pds-cli/bin/","packages/pds-cli/lib/","src/js/pds.d.ts","src/js/pds.js","src/js/pds-core/","custom-elements.json","custom-elements-manifest.config.js","pds.html-data.json","pds.css-data.json","readme.md","INTELLISENSE.md","CSS-INTELLISENSE-LIMITATION.md","CSS-INTELLISENSE-QUICK-REF.md"],scripts:{test:'echo "Error: no test specified" && exit 1',dev:"node esbuild-dev.js",prebuild:"npm run types",build:"node esbuild-build.js",types:"tsc -p tsconfig.json && node scripts/sync-types.mjs",postinstall:"node packages/pds-cli/bin/postinstall.mjs","prepds:build":"npm run types","pds:build":"node packages/pds-cli/bin/pds-static.js","pds:build-icons":"node packages/pds-cli/bin/pds-build-icons.js","pds:bootstrap":"node packages/pds-cli/bin/pds-bootstrap.js","pds:manifest":"node packages/pds-cli/bin/generate-manifest.js","pds:css-data":"node packages/pds-cli/bin/generate-css-data.js","pds:dx":"node packages/pds-cli/bin/pds-dx.js","storybook:generate":"cd packages/pds-storybook && npm run generate-stories","storybook:dev":"cd packages/pds-storybook && npm run storybook:dev","storybook:build":"cd packages/pds-storybook && npm run storybook:build"},author:"Marc van Neerven",license:"ISC",engines:{node:">=18"},publishConfig:{access:"public"},devDependencies:{"@custom-elements-manifest/analyzer":"^0.9.9",esbuild:"^0.19.0","fs-extra":"^11.1.1",typescript:"^5.6.3","@types/node":"^22.10.2"},dependencies:{lit:"^3.3.1","pure-web":"1.1.30"},customElements:"custom-elements.json"};await w.start(Q);var vt=new Date,Et=vt.toLocaleDateString(void 0,{year:"numeric",month:"long",day:"numeric"}),Qe=typeof E.repository=="string"?E.repository:E.repository?.url,ve=Qe?Qe.replace(/^git\+/,"").replace(/\.git$/,""):"",Lt=E.homepage||ve,At=E.bugs?.url||"";document.body.innerHTML=`
32
+ See: https://github.com/Pure-Web-Foundation/pure-ds/blob/main/readme.md#lit-components-not-working`):console.warn(`\u26A0\uFE0F PDS component <${b}> not found. Assets may not be installed.`)}else console.error(`\u274C Auto-define error for <${b}>:`,x)},...h,mapper:b=>{if(customElements.get(b))return null;if(typeof i=="function")try{let x=i(b);return x===void 0?c(b):x}catch(x){return console.warn("Custom autoDefine.mapper error; falling back to default:",x?.message||x),c(b)}return c(b)}};a&&(d=new a(S),n.length>0&&typeof a.define=="function"&&await a.define(...n,{baseURL:s,mapper:S.mapper,onError:S.onError}))}return{autoDefiner:d,mergedEnhancers:p}}var me=["light","dark"],ye=new Set(me);function bt(e){let s=(Array.isArray(e?.themes)?e.themes.map(n=>String(n).toLowerCase()):me).filter(n=>ye.has(n));return s.length?s:me}function ge(e,{preferDocument:t=!0}={}){let s=String(e||"").toLowerCase();if(ye.has(s))return s;if(t&&typeof document<"u"){let n=document.documentElement?.getAttribute("data-theme");if(ye.has(n))return n}return typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function qe(e,t){let s=ge(t);return bt(e).includes(s)}var Se=class extends EventTarget{},w=new Se;w.initializing=!1;w.currentPreset=null;w.debug=!1;var Ge=(e="")=>String(e).toLowerCase().replace(/&/g," and ").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,""),be=function(e="log",t,...s){let n=!!(w.registry&&!w.registry.isLive),i=(this?.debug||this?.design?.debug||w.debug||!1)===!0;if(n){if(!w.debug)return}else if(!i&&e!=="error"&&e!=="warn")return;let r=console[e]||console.log;s.length>0?r(t,...s):r(t)};async function wt(e,t={}){if(t?.runtimeConfig===!1||typeof fetch!="function")return null;let s=t?.runtimeConfigURL||`${e}pds-runtime-config.json`;try{let n=await fetch(s,{cache:"no-store"});return n.ok?await n.json():null}catch{return null}}w.registry=F;w.enums=l;w.adoptLayers=Te;w.adoptPrimitives=Me;w.parse=se;w.createStylesheet=De;w.isLiveMode=()=>F.isLive;w.ask=We;w.toast=M;w.common=ne;w.AutoComplete=V;function Ve(e){let t=typeof CustomEvent=="function";try{let s=t?new CustomEvent("pds:ready",{detail:e}):new Event("pds:ready");w.dispatchEvent(s)}catch{}if(typeof document<"u")if(t){let s={detail:e,bubbles:!0,composed:!0};try{document.dispatchEvent(new CustomEvent("pds:ready",s))}catch{}try{document.dispatchEvent(new CustomEvent("pds-ready",s))}catch{}}else{try{document.dispatchEvent(new Event("pds:ready"))}catch{}try{document.dispatchEvent(new Event("pds-ready"))}catch{}}}typeof window<"u"&&(window.PDS=w);var we="pure-ds-theme",W=null,O=null;function ke(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 xe(e){try{if(W&&O){try{typeof W.removeEventListener=="function"?W.removeEventListener("change",O):typeof W.removeListener=="function"&&W.removeListener(O)}catch{}W=null,O=null}if(e==="system"&&typeof window<"u"&&window.matchMedia){let t=window.matchMedia("(prefers-color-scheme: dark)"),s=n=>{let i=n?.matches===void 0?t.matches:n.matches;try{let r=i?"dark":"light";document.documentElement.setAttribute("data-theme",r),w.dispatchEvent(new CustomEvent("pds:theme:changed",{detail:{theme:r,source:"system"}}))}catch{}};W=t,O=s,typeof t.addEventListener=="function"?t.addEventListener("change",s):typeof t.addListener=="function"&&t.addListener(s)}}catch{}}Object.defineProperty(w,"theme",{get(){try{return typeof window>"u"?null:localStorage.getItem(we)||null}catch{return null}},set(e){try{if(typeof window>"u")return;let t=w.currentConfig?.design||null,s=ge(e);if(t&&!qe(t,s)){let n=t?.name||w.currentPreset?.name||w.currentConfig?.preset||"current preset";console.warn(`PDS theme "${s}" not supported by preset "${n}".`),w.dispatchEvent(new CustomEvent("pds:theme:blocked",{detail:{theme:e,resolvedTheme:s,preset:n}}));return}e==null?localStorage.removeItem(we):localStorage.setItem(we,e),ke(e),xe(e),w.dispatchEvent(new CustomEvent("pds:theme:changed",{detail:{theme:e,source:"api"}}))}catch{}}});w.defaultEnhancers=ie;async function St(e){let t=e&&e.mode||"live",{mode:s,...n}=e||{};if(t==="static")return kt(n);let i=fe(n,{resolvePublicAssetURL:oe}),r=n?.managerURL||n?.public?.managerURL||n?.manager?.url||new URL("core/pds-manager.js",i).href||new URL("./pds-manager.js",import.meta.url).href,{startLive:o}=await import(r);return o(w,n,{emitReady:Ve,applyResolvedTheme:ke,setupSystemListenerIfNeeded:xe})}w.start=St;async function kt(e){if(!e||typeof e!="object")throw new Error("PDS.start({ mode: 'static', ... }) requires a valid configuration object");let t=e.applyGlobalStyles??!0,s=e.manageTheme??!0,n=e.themeStorageKey??"pure-ds-theme",i=e.staticPaths??{},r=fe(e,{resolvePublicAssetURL:oe}),o=e&&e.autoDefine||null,u;o&&o.baseURL?u=J(Y(o.baseURL,{preferModule:!1})):u=`${r}components/`;let p=o&&Array.isArray(o.predefine)&&o.predefine||[],d=o&&typeof o.mapper=="function"&&o.mapper||null;try{Be(w);let{resolvedTheme:a}=Ne({manageTheme:s,themeStorageKey:n,applyResolvedTheme:ke,setupSystemListenerIfNeeded:xe}),c=await wt(r,e),f=c?.config?.design||c?.design||null,h=c?.config?.preset||c?.preset||"default",k=c?.presetId||Ge(h)||"default",S=f?{[String(k).toLowerCase()]:f,...String(k).toLowerCase()!=="default"?{default:f}:{}}:null,b=e?.design&&typeof e.design=="object"?I(e.design):null,x=Ge(e?.preset||"default")||"default",P=b?{[String(x).toLowerCase()]:b,...String(x).toLowerCase()!=="default"?{default:b}:{}}:null,L=S||e?.presets||P||{};if(!Object.keys(L||{}).length)throw new Error("PDS static mode requires preset data. Run pds:build or provide config.presets/config.design.");let T=c?.config?{...c.config,...e,preset:e?.preset||k,design:b||f||c?.config?.design}:e,C=He(T,{},{presets:L,defaultLog:be}),_=C.enhancers,z={tokens:`${r}styles/pds-tokens.css.js`,primitives:`${r}styles/pds-primitives.css.js`,components:`${r}styles/pds-components.css.js`,utilities:`${r}styles/pds-utilities.css.js`,styles:`${r}styles/pds-styles.css.js`},q=c?.paths||{};if(i={...z,...q,...i},w.registry.setStaticMode(i),t&&typeof document<"u")try{let v=await w.registry.getStylesheet("styles");if(v){v._pds=!0;let U=(document.adoptedStyleSheets||[]).filter(m=>m._pds!==!0);document.adoptedStyleSheets=[...U,v]}}catch(v){be.call(w,"warn","Failed to apply static styles:",v)}let R=null,D=[];try{let v=await Oe({autoDefineBaseURL:u,autoDefinePreload:p,autoDefineMapper:d,enhancers:_,autoDefineOverrides:o||null,autoDefinePreferModule:!(o&&o.baseURL)},{baseEnhancers:ie});R=v.autoDefiner,D=v.mergedEnhancers||[]}catch(v){be.call(w,"error","\u274C Failed to initialize AutoDefiner/Enhancers (static):",v)}let B=I(e);return w.currentConfig=Object.freeze({mode:"static",...structuredClone(B),design:structuredClone(C.generatorConfig.design),preset:C.generatorConfig.preset,theme:a,enhancers:D}),Ve({mode:"static",config:C.generatorConfig,theme:a,autoDefiner:R}),{config:C.generatorConfig,theme:a,autoDefiner:R}}catch(a){throw w.dispatchEvent(new CustomEvent("pds:error",{detail:{error:a}})),a}}var E={name:"@pure-ds/core",shortname:"pds",version:"0.6.7",description:"Pure Design System - Why develop a Design System when you can generate one?",repository:{type:"git",url:"git+https://github.com/Pure-Web-Foundation/pure-ds.git"},bugs:{url:"https://github.com/Pure-Web-Foundation/pure-ds/issues"},homepage:"https://puredesignsystem.z6.web.core.windows.net/",keywords:["design-system","css","web-components","lit","constructable-stylesheets","tokens","utilities","a11y"],type:"module",main:"./public/assets/js/pds.js",module:"./public/assets/js/pds.js",types:"./dist/types/pds.d.ts",bin:{"pds-build":"packages/pds-cli/bin/pds-static.js","pds-sync-assets":"packages/pds-cli/bin/sync-assets.js","pds-build-icons":"packages/pds-cli/bin/pds-build-icons.js","pds-setup-copilot":"packages/pds-cli/bin/pds-setup-copilot.js","pds-init-config":"packages/pds-cli/bin/pds-init-config.js","pds-bootstrap":"packages/pds-cli/bin/pds-bootstrap.js"},exports:{".":{types:"./src/js/pds.d.ts",import:"./public/assets/js/pds.js"},"./pds-core":"./src/js/pds.js","./auto-define/*":"./public/auto-define/*"},files:[".github/copilot-instructions.md",".cursorrules","dist/types/","public/assets/js/","public/assets/pds/components/","public/assets/pds/external/","public/assets/pds/vscode-custom-data.json","public/assets/pds/pds.css-data.json","public/assets/pds/pds-css-complete.json","public/auto-define/","public/pds/components/","public/assets/pds/icons/pds-icons.svg","packages/pds-cli/bin/","packages/pds-cli/lib/","src/js/pds.d.ts","src/js/pds.js","src/js/pds-core/","custom-elements.json","custom-elements-manifest.config.js","pds.html-data.json","pds.css-data.json","readme.md","INTELLISENSE.md","CSS-INTELLISENSE-LIMITATION.md","CSS-INTELLISENSE-QUICK-REF.md"],scripts:{test:'echo "Error: no test specified" && exit 1',dev:"node esbuild-dev.js",prebuild:"npm run types",build:"node esbuild-build.js",types:"tsc -p tsconfig.json && node scripts/sync-types.mjs",postinstall:"node packages/pds-cli/bin/postinstall.mjs","prepds:build":"npm run types","pds:build":"node packages/pds-cli/bin/pds-static.js","pds:build-icons":"node packages/pds-cli/bin/pds-build-icons.js","pds:bootstrap":"node packages/pds-cli/bin/pds-bootstrap.js","pds:manifest":"node packages/pds-cli/bin/generate-manifest.js","pds:css-data":"node packages/pds-cli/bin/generate-css-data.js","pds:dx":"node packages/pds-cli/bin/pds-dx.js","storybook:generate":"cd packages/pds-storybook && npm run generate-stories","storybook:dev":"cd packages/pds-storybook && npm run storybook:dev","storybook:build":"cd packages/pds-storybook && npm run storybook:build"},author:"Marc van Neerven",license:"ISC",engines:{node:">=18"},publishConfig:{access:"public"},devDependencies:{"@custom-elements-manifest/analyzer":"^0.9.9",esbuild:"^0.19.0","fs-extra":"^11.1.1",typescript:"^5.6.3","@types/node":"^22.10.2"},dependencies:{lit:"^3.3.1","pure-web":"1.1.30"},customElements:"custom-elements.json"};await w.start(Q);var vt=new Date,Et=vt.toLocaleDateString(void 0,{year:"numeric",month:"long",day:"numeric"}),Qe=typeof E.repository=="string"?E.repository:E.repository?.url,ve=Qe?Qe.replace(/^git\+/,"").replace(/\.git$/,""):"",Lt=E.homepage||ve,At=E.bugs?.url||"";document.body.innerHTML=`
33
33
  <header class="container section">
34
34
  <div class="stack-sm">
35
35
  <pds-toaster id="global-toaster"></pds-toaster>
@@ -1875,10 +1875,12 @@ tbody {
1875
1875
  /* Dialog base styles */
1876
1876
  dialog {
1877
1877
  position: fixed;
1878
- inset: 0;
1878
+ left: 50%;
1879
+ top: 50%;
1880
+ width: min(600px, calc(100vw - var(--spacing-8)));
1879
1881
  max-width: min(600px, calc(100vw - var(--spacing-8)));
1880
- max-height: calc(100vh - var(--spacing-8));
1881
- margin: auto;
1882
+ max-height: calc(100dvh - var(--spacing-8));
1883
+ margin: 0;
1882
1884
  padding: 0;
1883
1885
  border: none;
1884
1886
  border-radius: var(--radius-lg);
@@ -1890,7 +1892,7 @@ dialog {
1890
1892
 
1891
1893
  /* Smooth transitions */
1892
1894
  opacity: 0;
1893
- transform: scale(0.95);
1895
+ transform: translate(-50%, -50%) scale(0.95);
1894
1896
  transition:
1895
1897
  opacity var(--transition-normal) ease,
1896
1898
  transform var(--transition-normal) ease;
@@ -1901,18 +1903,18 @@ dialog {
1901
1903
  /* Open state */
1902
1904
  dialog[open] {
1903
1905
  opacity: 1;
1904
- transform: scale(1);
1906
+ transform: translate(-50%, -50%) scale(1);
1905
1907
  animation: pds-dialog-enter var(--transition-normal) ease;
1906
1908
  }
1907
1909
 
1908
1910
  @keyframes pds-dialog-enter {
1909
1911
  from {
1910
1912
  opacity: 0;
1911
- transform: scale(0.95);
1913
+ transform: translate(-50%, -50%) scale(0.95);
1912
1914
  }
1913
1915
  to {
1914
1916
  opacity: 1;
1915
- transform: scale(1);
1917
+ transform: translate(-50%, -50%) scale(1);
1916
1918
  }
1917
1919
  }
1918
1920
 
@@ -2028,19 +2030,38 @@ dialog {
2028
2030
  }
2029
2031
 
2030
2032
  /* Dialog size modifiers */
2031
- dialog.dialog-sm { max-width: min(400px, calc(100vw - var(--spacing-8))); }
2032
- dialog.dialog-lg { max-width: min(800px, calc(100vw - var(--spacing-8))); }
2033
- dialog.dialog-xl { max-width: min(1200px, calc(100vw - var(--spacing-8))); }
2034
- dialog.dialog-full { max-width: calc(100vw - var(--spacing-8)); max-height: calc(100vh - var(--spacing-8)); }
2033
+ dialog.dialog-sm { width: min(400px, calc(100vw - var(--spacing-8))); max-width: min(400px, calc(100vw - var(--spacing-8))); }
2034
+ dialog.dialog-lg { width: min(800px, calc(100vw - var(--spacing-8))); max-width: min(800px, calc(100vw - var(--spacing-8))); }
2035
+ dialog.dialog-xl { width: min(1200px, calc(100vw - var(--spacing-8))); max-width: min(1200px, calc(100vw - var(--spacing-8))); }
2036
+ dialog.dialog-full { width: calc(100vw - var(--spacing-8)); max-width: calc(100vw - var(--spacing-8)); max-height: calc(100dvh - var(--spacing-8)); }
2035
2037
 
2036
2038
  /* Mobile responsiveness - maximize on mobile */
2037
2039
  @media (max-width: ${(t.breakpoints||{sm:640,md:768,lg:1024,xl:1280}).sm-1}px) {
2038
2040
  dialog {
2041
+ left: 0;
2042
+ top: 0;
2039
2043
  max-width: 100vw;
2040
- max-height: 100vh;
2041
- --dialog-max-height: 100vh; /* Override custom maxHeight on mobile */
2044
+ width: 100vw;
2045
+ height: 100dvh;
2046
+ max-height: 100dvh;
2047
+ --dialog-max-height: 100dvh; /* Override custom maxHeight on mobile */
2042
2048
  border-radius: 0;
2043
- margin: 0;
2049
+ margin: 0;
2050
+ transform: scale(0.95);
2051
+ }
2052
+ dialog[open] {
2053
+ transform: scale(1);
2054
+ animation: pds-dialog-enter-mobile var(--transition-normal) ease;
2055
+ }
2056
+ @keyframes pds-dialog-enter-mobile {
2057
+ from {
2058
+ opacity: 0;
2059
+ transform: scale(0.95);
2060
+ }
2061
+ to {
2062
+ opacity: 1;
2063
+ transform: scale(1);
2064
+ }
2044
2065
  }
2045
2066
  dialog header, dialog form > header, dialog article, dialog form > article, dialog footer, dialog form > footer { padding: var(--spacing-4); }
2046
2067
  }
@@ -1875,10 +1875,12 @@ tbody {
1875
1875
  /* Dialog base styles */
1876
1876
  dialog {
1877
1877
  position: fixed;
1878
- inset: 0;
1878
+ left: 50%;
1879
+ top: 50%;
1880
+ width: min(600px, calc(100vw - var(--spacing-8)));
1879
1881
  max-width: min(600px, calc(100vw - var(--spacing-8)));
1880
- max-height: calc(100vh - var(--spacing-8));
1881
- margin: auto;
1882
+ max-height: calc(100dvh - var(--spacing-8));
1883
+ margin: 0;
1882
1884
  padding: 0;
1883
1885
  border: none;
1884
1886
  border-radius: var(--radius-lg);
@@ -1890,7 +1892,7 @@ dialog {
1890
1892
 
1891
1893
  /* Smooth transitions */
1892
1894
  opacity: 0;
1893
- transform: scale(0.95);
1895
+ transform: translate(-50%, -50%) scale(0.95);
1894
1896
  transition:
1895
1897
  opacity var(--transition-normal) ease,
1896
1898
  transform var(--transition-normal) ease;
@@ -1901,18 +1903,18 @@ dialog {
1901
1903
  /* Open state */
1902
1904
  dialog[open] {
1903
1905
  opacity: 1;
1904
- transform: scale(1);
1906
+ transform: translate(-50%, -50%) scale(1);
1905
1907
  animation: pds-dialog-enter var(--transition-normal) ease;
1906
1908
  }
1907
1909
 
1908
1910
  @keyframes pds-dialog-enter {
1909
1911
  from {
1910
1912
  opacity: 0;
1911
- transform: scale(0.95);
1913
+ transform: translate(-50%, -50%) scale(0.95);
1912
1914
  }
1913
1915
  to {
1914
1916
  opacity: 1;
1915
- transform: scale(1);
1917
+ transform: translate(-50%, -50%) scale(1);
1916
1918
  }
1917
1919
  }
1918
1920
 
@@ -2028,19 +2030,38 @@ dialog {
2028
2030
  }
2029
2031
 
2030
2032
  /* Dialog size modifiers */
2031
- dialog.dialog-sm { max-width: min(400px, calc(100vw - var(--spacing-8))); }
2032
- dialog.dialog-lg { max-width: min(800px, calc(100vw - var(--spacing-8))); }
2033
- dialog.dialog-xl { max-width: min(1200px, calc(100vw - var(--spacing-8))); }
2034
- dialog.dialog-full { max-width: calc(100vw - var(--spacing-8)); max-height: calc(100vh - var(--spacing-8)); }
2033
+ dialog.dialog-sm { width: min(400px, calc(100vw - var(--spacing-8))); max-width: min(400px, calc(100vw - var(--spacing-8))); }
2034
+ dialog.dialog-lg { width: min(800px, calc(100vw - var(--spacing-8))); max-width: min(800px, calc(100vw - var(--spacing-8))); }
2035
+ dialog.dialog-xl { width: min(1200px, calc(100vw - var(--spacing-8))); max-width: min(1200px, calc(100vw - var(--spacing-8))); }
2036
+ dialog.dialog-full { width: calc(100vw - var(--spacing-8)); max-width: calc(100vw - var(--spacing-8)); max-height: calc(100dvh - var(--spacing-8)); }
2035
2037
 
2036
2038
  /* Mobile responsiveness - maximize on mobile */
2037
2039
  @media (max-width: ${(t.breakpoints||{sm:640,md:768,lg:1024,xl:1280}).sm-1}px) {
2038
2040
  dialog {
2041
+ left: 0;
2042
+ top: 0;
2039
2043
  max-width: 100vw;
2040
- max-height: 100vh;
2041
- --dialog-max-height: 100vh; /* Override custom maxHeight on mobile */
2044
+ width: 100vw;
2045
+ height: 100dvh;
2046
+ max-height: 100dvh;
2047
+ --dialog-max-height: 100dvh; /* Override custom maxHeight on mobile */
2042
2048
  border-radius: 0;
2043
- margin: 0;
2049
+ margin: 0;
2050
+ transform: scale(0.95);
2051
+ }
2052
+ dialog[open] {
2053
+ transform: scale(1);
2054
+ animation: pds-dialog-enter-mobile var(--transition-normal) ease;
2055
+ }
2056
+ @keyframes pds-dialog-enter-mobile {
2057
+ from {
2058
+ opacity: 0;
2059
+ transform: scale(0.95);
2060
+ }
2061
+ to {
2062
+ opacity: 1;
2063
+ transform: scale(1);
2064
+ }
2044
2065
  }
2045
2066
  dialog header, dialog form > header, dialog article, dialog form > article, dialog footer, dialog form > footer { padding: var(--spacing-4); }
2046
2067
  }
@@ -1275,10 +1275,12 @@ a.btn-working {
1275
1275
  /* Dialog base styles */
1276
1276
  dialog {
1277
1277
  position: fixed;
1278
- inset: 0;
1278
+ left: 50%;
1279
+ top: 50%;
1280
+ width: min(600px, calc(100vw - var(--spacing-8)));
1279
1281
  max-width: min(600px, calc(100vw - var(--spacing-8)));
1280
- max-height: calc(100vh - var(--spacing-8));
1281
- margin: auto;
1282
+ max-height: calc(100dvh - var(--spacing-8));
1283
+ margin: 0;
1282
1284
  padding: 0;
1283
1285
  border: none;
1284
1286
  border-radius: var(--radius-lg);
@@ -1290,7 +1292,7 @@ dialog {
1290
1292
 
1291
1293
  /* Smooth transitions */
1292
1294
  opacity: 0;
1293
- transform: scale(0.95);
1295
+ transform: translate(-50%, -50%) scale(0.95);
1294
1296
  transition:
1295
1297
  opacity var(--transition-normal) ease,
1296
1298
  transform var(--transition-normal) ease;
@@ -1301,18 +1303,18 @@ dialog {
1301
1303
  /* Open state */
1302
1304
  dialog[open] {
1303
1305
  opacity: 1;
1304
- transform: scale(1);
1306
+ transform: translate(-50%, -50%) scale(1);
1305
1307
  animation: pds-dialog-enter var(--transition-normal) ease;
1306
1308
  }
1307
1309
 
1308
1310
  @keyframes pds-dialog-enter {
1309
1311
  from {
1310
1312
  opacity: 0;
1311
- transform: scale(0.95);
1313
+ transform: translate(-50%, -50%) scale(0.95);
1312
1314
  }
1313
1315
  to {
1314
1316
  opacity: 1;
1315
- transform: scale(1);
1317
+ transform: translate(-50%, -50%) scale(1);
1316
1318
  }
1317
1319
  }
1318
1320
 
@@ -1428,19 +1430,38 @@ dialog {
1428
1430
  }
1429
1431
 
1430
1432
  /* Dialog size modifiers */
1431
- dialog.dialog-sm { max-width: min(400px, calc(100vw - var(--spacing-8))); }
1432
- dialog.dialog-lg { max-width: min(800px, calc(100vw - var(--spacing-8))); }
1433
- dialog.dialog-xl { max-width: min(1200px, calc(100vw - var(--spacing-8))); }
1434
- dialog.dialog-full { max-width: calc(100vw - var(--spacing-8)); max-height: calc(100vh - var(--spacing-8)); }
1433
+ dialog.dialog-sm { width: min(400px, calc(100vw - var(--spacing-8))); max-width: min(400px, calc(100vw - var(--spacing-8))); }
1434
+ dialog.dialog-lg { width: min(800px, calc(100vw - var(--spacing-8))); max-width: min(800px, calc(100vw - var(--spacing-8))); }
1435
+ dialog.dialog-xl { width: min(1200px, calc(100vw - var(--spacing-8))); max-width: min(1200px, calc(100vw - var(--spacing-8))); }
1436
+ dialog.dialog-full { width: calc(100vw - var(--spacing-8)); max-width: calc(100vw - var(--spacing-8)); max-height: calc(100dvh - var(--spacing-8)); }
1435
1437
 
1436
1438
  /* Mobile responsiveness - maximize on mobile */
1437
1439
  @media (max-width: 639px) {
1438
1440
  dialog {
1441
+ left: 0;
1442
+ top: 0;
1439
1443
  max-width: 100vw;
1440
- max-height: 100vh;
1441
- --dialog-max-height: 100vh; /* Override custom maxHeight on mobile */
1444
+ width: 100vw;
1445
+ height: 100dvh;
1446
+ max-height: 100dvh;
1447
+ --dialog-max-height: 100dvh; /* Override custom maxHeight on mobile */
1442
1448
  border-radius: 0;
1443
- margin: 0;
1449
+ margin: 0;
1450
+ transform: scale(0.95);
1451
+ }
1452
+ dialog[open] {
1453
+ transform: scale(1);
1454
+ animation: pds-dialog-enter-mobile var(--transition-normal) ease;
1455
+ }
1456
+ @keyframes pds-dialog-enter-mobile {
1457
+ from {
1458
+ opacity: 0;
1459
+ transform: scale(0.95);
1460
+ }
1461
+ to {
1462
+ opacity: 1;
1463
+ transform: scale(1);
1464
+ }
1444
1465
  }
1445
1466
  dialog header, dialog form > header, dialog article, dialog form > article, dialog footer, dialog form > footer { padding: var(--spacing-4); }
1446
1467
  }
@@ -1279,10 +1279,12 @@ a.btn-working {
1279
1279
  /* Dialog base styles */
1280
1280
  dialog {
1281
1281
  position: fixed;
1282
- inset: 0;
1282
+ left: 50%;
1283
+ top: 50%;
1284
+ width: min(600px, calc(100vw - var(--spacing-8)));
1283
1285
  max-width: min(600px, calc(100vw - var(--spacing-8)));
1284
- max-height: calc(100vh - var(--spacing-8));
1285
- margin: auto;
1286
+ max-height: calc(100dvh - var(--spacing-8));
1287
+ margin: 0;
1286
1288
  padding: 0;
1287
1289
  border: none;
1288
1290
  border-radius: var(--radius-lg);
@@ -1294,7 +1296,7 @@ dialog {
1294
1296
 
1295
1297
  /* Smooth transitions */
1296
1298
  opacity: 0;
1297
- transform: scale(0.95);
1299
+ transform: translate(-50%, -50%) scale(0.95);
1298
1300
  transition:
1299
1301
  opacity var(--transition-normal) ease,
1300
1302
  transform var(--transition-normal) ease;
@@ -1305,18 +1307,18 @@ dialog {
1305
1307
  /* Open state */
1306
1308
  dialog[open] {
1307
1309
  opacity: 1;
1308
- transform: scale(1);
1310
+ transform: translate(-50%, -50%) scale(1);
1309
1311
  animation: pds-dialog-enter var(--transition-normal) ease;
1310
1312
  }
1311
1313
 
1312
1314
  @keyframes pds-dialog-enter {
1313
1315
  from {
1314
1316
  opacity: 0;
1315
- transform: scale(0.95);
1317
+ transform: translate(-50%, -50%) scale(0.95);
1316
1318
  }
1317
1319
  to {
1318
1320
  opacity: 1;
1319
- transform: scale(1);
1321
+ transform: translate(-50%, -50%) scale(1);
1320
1322
  }
1321
1323
  }
1322
1324
 
@@ -1432,19 +1434,38 @@ dialog {
1432
1434
  }
1433
1435
 
1434
1436
  /* Dialog size modifiers */
1435
- dialog.dialog-sm { max-width: min(400px, calc(100vw - var(--spacing-8))); }
1436
- dialog.dialog-lg { max-width: min(800px, calc(100vw - var(--spacing-8))); }
1437
- dialog.dialog-xl { max-width: min(1200px, calc(100vw - var(--spacing-8))); }
1438
- dialog.dialog-full { max-width: calc(100vw - var(--spacing-8)); max-height: calc(100vh - var(--spacing-8)); }
1437
+ dialog.dialog-sm { width: min(400px, calc(100vw - var(--spacing-8))); max-width: min(400px, calc(100vw - var(--spacing-8))); }
1438
+ dialog.dialog-lg { width: min(800px, calc(100vw - var(--spacing-8))); max-width: min(800px, calc(100vw - var(--spacing-8))); }
1439
+ dialog.dialog-xl { width: min(1200px, calc(100vw - var(--spacing-8))); max-width: min(1200px, calc(100vw - var(--spacing-8))); }
1440
+ dialog.dialog-full { width: calc(100vw - var(--spacing-8)); max-width: calc(100vw - var(--spacing-8)); max-height: calc(100dvh - var(--spacing-8)); }
1439
1441
 
1440
1442
  /* Mobile responsiveness - maximize on mobile */
1441
1443
  @media (max-width: 639px) {
1442
1444
  dialog {
1445
+ left: 0;
1446
+ top: 0;
1443
1447
  max-width: 100vw;
1444
- max-height: 100vh;
1445
- --dialog-max-height: 100vh; /* Override custom maxHeight on mobile */
1448
+ width: 100vw;
1449
+ height: 100dvh;
1450
+ max-height: 100dvh;
1451
+ --dialog-max-height: 100dvh; /* Override custom maxHeight on mobile */
1446
1452
  border-radius: 0;
1447
- margin: 0;
1453
+ margin: 0;
1454
+ transform: scale(0.95);
1455
+ }
1456
+ dialog[open] {
1457
+ transform: scale(1);
1458
+ animation: pds-dialog-enter-mobile var(--transition-normal) ease;
1459
+ }
1460
+ @keyframes pds-dialog-enter-mobile {
1461
+ from {
1462
+ opacity: 0;
1463
+ transform: scale(0.95);
1464
+ }
1465
+ to {
1466
+ opacity: 1;
1467
+ transform: scale(1);
1468
+ }
1448
1469
  }
1449
1470
  dialog header, dialog form > header, dialog article, dialog form > article, dialog footer, dialog form > footer { padding: var(--spacing-4); }
1450
1471
  }
@@ -3274,10 +3274,12 @@ tbody {
3274
3274
  /* Dialog base styles */
3275
3275
  dialog {
3276
3276
  position: fixed;
3277
- inset: 0;
3277
+ left: 50%;
3278
+ top: 50%;
3279
+ width: min(600px, calc(100vw - var(--spacing-8)));
3278
3280
  max-width: min(600px, calc(100vw - var(--spacing-8)));
3279
- max-height: calc(100vh - var(--spacing-8));
3280
- margin: auto;
3281
+ max-height: calc(100dvh - var(--spacing-8));
3282
+ margin: 0;
3281
3283
  padding: 0;
3282
3284
  border: none;
3283
3285
  border-radius: var(--radius-lg);
@@ -3289,7 +3291,7 @@ dialog {
3289
3291
 
3290
3292
  /* Smooth transitions */
3291
3293
  opacity: 0;
3292
- transform: scale(0.95);
3294
+ transform: translate(-50%, -50%) scale(0.95);
3293
3295
  transition:
3294
3296
  opacity var(--transition-normal) ease,
3295
3297
  transform var(--transition-normal) ease;
@@ -3300,18 +3302,18 @@ dialog {
3300
3302
  /* Open state */
3301
3303
  dialog[open] {
3302
3304
  opacity: 1;
3303
- transform: scale(1);
3305
+ transform: translate(-50%, -50%) scale(1);
3304
3306
  animation: pds-dialog-enter var(--transition-normal) ease;
3305
3307
  }
3306
3308
 
3307
3309
  @keyframes pds-dialog-enter {
3308
3310
  from {
3309
3311
  opacity: 0;
3310
- transform: scale(0.95);
3312
+ transform: translate(-50%, -50%) scale(0.95);
3311
3313
  }
3312
3314
  to {
3313
3315
  opacity: 1;
3314
- transform: scale(1);
3316
+ transform: translate(-50%, -50%) scale(1);
3315
3317
  }
3316
3318
  }
3317
3319
 
@@ -3427,19 +3429,38 @@ dialog {
3427
3429
  }
3428
3430
 
3429
3431
  /* Dialog size modifiers */
3430
- dialog.dialog-sm { max-width: min(400px, calc(100vw - var(--spacing-8))); }
3431
- dialog.dialog-lg { max-width: min(800px, calc(100vw - var(--spacing-8))); }
3432
- dialog.dialog-xl { max-width: min(1200px, calc(100vw - var(--spacing-8))); }
3433
- dialog.dialog-full { max-width: calc(100vw - var(--spacing-8)); max-height: calc(100vh - var(--spacing-8)); }
3432
+ dialog.dialog-sm { width: min(400px, calc(100vw - var(--spacing-8))); max-width: min(400px, calc(100vw - var(--spacing-8))); }
3433
+ dialog.dialog-lg { width: min(800px, calc(100vw - var(--spacing-8))); max-width: min(800px, calc(100vw - var(--spacing-8))); }
3434
+ dialog.dialog-xl { width: min(1200px, calc(100vw - var(--spacing-8))); max-width: min(1200px, calc(100vw - var(--spacing-8))); }
3435
+ dialog.dialog-full { width: calc(100vw - var(--spacing-8)); max-width: calc(100vw - var(--spacing-8)); max-height: calc(100dvh - var(--spacing-8)); }
3434
3436
 
3435
3437
  /* Mobile responsiveness - maximize on mobile */
3436
3438
  @media (max-width: ${breakpoints.sm - 1}px) {
3437
3439
  dialog {
3440
+ left: 0;
3441
+ top: 0;
3438
3442
  max-width: 100vw;
3439
- max-height: 100vh;
3440
- --dialog-max-height: 100vh; /* Override custom maxHeight on mobile */
3443
+ width: 100vw;
3444
+ height: 100dvh;
3445
+ max-height: 100dvh;
3446
+ --dialog-max-height: 100dvh; /* Override custom maxHeight on mobile */
3441
3447
  border-radius: 0;
3442
- margin: 0;
3448
+ margin: 0;
3449
+ transform: scale(0.95);
3450
+ }
3451
+ dialog[open] {
3452
+ transform: scale(1);
3453
+ animation: pds-dialog-enter-mobile var(--transition-normal) ease;
3454
+ }
3455
+ @keyframes pds-dialog-enter-mobile {
3456
+ from {
3457
+ opacity: 0;
3458
+ transform: scale(0.95);
3459
+ }
3460
+ to {
3461
+ opacity: 1;
3462
+ transform: scale(1);
3463
+ }
3443
3464
  }
3444
3465
  dialog header, dialog form > header, dialog article, dialog form > article, dialog footer, dialog form > footer { padding: var(--spacing-4); }
3445
3466
  }