@taprootio/espalier 2.10.0 → 2.11.0

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
- var p=function(u,t,e,a){var r=arguments.length,s=r<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,e):a,i;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(u,t,e,a);else for(var o=u.length-1;o>=0;o--)(i=u[o])&&(s=(r<3?i(s):r>3?i(t,e,s):i(t,e))||s);return r>3&&s&&Object.defineProperty(t,e,s),s};import{css as k,html as x,nothing as S}from"lit";import{customElement as P,property as l,state as C}from"lit/decorators.js";import{classMap as z}from"lit/directives/class-map.js";import{createRef as d,ref as h}from"lit/directives/ref.js";import{EspalierElementBase as f}from"../shared/esp-element-base.js";import{BiDirectionalStickyController as g}from"./bi-directional-sticky-controller.js";import{getEspBus as R}from"../shared/bus-events.js";import"../toaster/esp-toaster.js";const w='esp-footer, footer, [role~="contentinfo"]',_="(max-width: 50em)",c=1;let n=class extends f{constructor(){super(),this.dialogZone=d(),this.flyoutSlot=d(),this.footerSlot=d(),this.previewSlot=d(),this.previewSpace=d(),this.previewWidthProbe=d(),this.previewMainMinProbe=d(),this.previewObservedWidths=new WeakMap,this.previewSyncRaf=null,this.previewSyncGeneration=0,this.previewSyncTask=Promise.resolve(),this.previewHeader=null,this.previewMenu=null,this.previewCollapsedSidebarWidth=0,this.footerWrapperIsLandmark=!0,this.schedulePreviewLayout=()=>{if(!this.isConnected||!this.hasUpdated)return;this.previewSyncGeneration+=1;const t=this.previewSyncGeneration;this.previewSyncRaf!==null&&cancelAnimationFrame(this.previewSyncRaf),this.previewSyncRaf=requestAnimationFrame(()=>{this.previewSyncRaf=null,this.previewSyncTask=this.previewSyncTask.then(()=>this.syncPreviewLayout(t)).catch(()=>{})})},this.onPreviewMediaChange=()=>this.schedulePreviewLayout(),this.onPreviewResize=t=>{t.some(a=>{const r=a.contentRect.width,s=this.previewObservedWidths.get(a.target);return this.previewObservedWidths.set(a.target,r),s===void 0||Math.abs(s-r)>.25})&&this.schedulePreviewLayout()},this.kind="wide",this.align="start",this.contained=!1,this.headerPosition="normal",this.fixedMenus=!1,this.previewOpen=!1,this.previewLabel="Preview",this.previewCollapseSidebar=!1,this.previewVisible=!1,this.previewReclaiming=!1,new g(this,".esp-page-left > .sticky-wrapper"),new g(this,".esp-page-right > .sticky-wrapper"),new g(this,".esp-page-flyout > .sticky-wrapper"),new g(this,".esp-page-preview > .sticky-wrapper"),this.addEventListener("flyout-state-changed",t=>this.syncFlyoutState(t))}connectedCallback(){const t=Array.from(this.children).filter(e=>e.getAttribute("slot")==="footer");this.footerWrapperIsLandmark=!t.some(e=>this.footerElementProvidesLandmark(e)),super.connectedCallback(),this.hasUpdated&&queueMicrotask(()=>this.setupPreviewLayoutObserver())}disconnectedCallback(){this.previewResizeObserver?.disconnect(),this.previewResizeObserver=void 0,this.previewMediaQuery?.removeEventListener("change",this.onPreviewMediaChange),this.previewMediaQuery=void 0,this.previewSyncRaf!==null&&(cancelAnimationFrame(this.previewSyncRaf),this.previewSyncRaf=null),this.previewSyncGeneration+=1,this.toggleAttribute("data-preview-measuring",!1),this.setPreviewLayoutState(!1,!1),this.setPreviewNavigationCollapse(!1),super.disconnectedCallback()}syncFlyoutState(t){if(t&&t.target?.closest?.("esp-page")!==this)return;const e=i=>{const o=i.mode;return(typeof o=="string"?o:i.getAttribute("mode"))==="overlay"},a=i=>{const o=i.open;return typeof o=="boolean"?o:i.hasAttribute("open")},r=i=>i.anchor!=null,s=(this.flyoutSlot.value?.assignedElements()??[]).filter(i=>i.tagName==="ESP-FLYOUT");this.toggleAttribute("flyout-open",s.some(i=>a(i)&&!e(i))),this.toggleAttribute("flyout-overlay-open",s.some(i=>a(i)&&e(i))),this.toggleAttribute("flyout-anchored",s.some(i=>a(i)&&r(i))),this.schedulePreviewLayout()}previewHasContent(){const t=this.previewSlot.value?.assignedNodes({flatten:!0});return t?t.some(e=>e.nodeType===Node.ELEMENT_NODE||(e.textContent?.trim().length??0)>0):Array.from(this.childNodes).some(e=>e instanceof Element&&e.getAttribute("slot")==="preview"&&!e.hasAttribute("hidden"))}getPreviewNavigationPair(){if(!this.previewCollapseSidebar)return null;const t=Array.from(this.children),e=t.find(i=>i.slot==="header"&&i.tagName==="ESP-HEADER"),a=t.find(i=>i.slot==="sidebar"&&i.tagName==="ESP-MENU");if(!e||!a||!a.id)return null;const r=typeof e.drawerTarget=="string"?e.drawerTarget:e.getAttribute("drawer-target")??"",s=typeof a.mode=="string"?a.mode:a.getAttribute("mode");return r!==a.id||s!=="vertical"||!("previewCollapseRequested"in e)||!("previewCollapseRequested"in a)?null:{header:e,menu:a}}async setPreviewNavigationCollapse(t){const e=t?this.getPreviewNavigationPair():null,a=e!==null&&this.previewHeader===e.header&&this.previewMenu===e.menu,r=this.previewHeader&&this.previewHeader!==e?.header?this.previewHeader:null,s=this.previewMenu&&this.previewMenu!==e?.menu?this.previewMenu:null;if(r&&(r.previewCollapseRequested=!1),s&&(s.previewCollapseRequested=!1),this.previewHeader=e?.header??null,this.previewMenu=e?.menu??null,this.toggleAttribute("data-preview-navigation-collapsed",!1),await r?.updateComplete,await s?.updateComplete,!e)return this.previewCollapsedSidebarWidth=0,!1;const i=a?this.previewCollapsedSidebarWidth:this.shadowRoot?.querySelector(".esp-page-left")?.getBoundingClientRect().width??0;return e.header.previewCollapseRequested=!0,e.menu.previewCollapseRequested=!0,await e.header.updateComplete,await e.menu.updateComplete,e.menu.hasExternalDrawerControl===!0?(this.previewCollapsedSidebarWidth=i,this.toggleAttribute("data-preview-navigation-collapsed",!0),!0):(e.header.previewCollapseRequested=!1,e.menu.previewCollapseRequested=!1,await e.header.updateComplete,await e.menu.updateComplete,this.previewHeader=null,this.previewMenu=null,this.previewCollapsedSidebarWidth=0,!1)}previewTokenIsConfigured(){return getComputedStyle(this).getPropertyValue("--esp-page-preview-min-main-width").trim().length>0}setPreviewLayoutState(t,e){this.previewVisible=t,this.previewReclaiming=t&&e}previewFitsWithinPage(t,e){const a=this.shadowRoot?.querySelector(".esp-page-main"),r=this.shadowRoot?.querySelector(".esp-page-preview");if(!a||!r)return!1;const s=this.getBoundingClientRect(),i=a.getBoundingClientRect(),o=r.getBoundingClientRect();return i.width+c>=t&&o.width+c>=e&&o.left+c>=s.left&&o.right<=s.right+c}async syncPreviewLayout(t){if(t!==this.previewSyncGeneration||!this.isConnected)return;let e=!1;this.toggleAttribute("data-preview-measuring",!0);try{const a=this.previewOpen&&this.previewHasContent(),r=this.previewMediaQuery?.matches??!1,s=this.hasAttribute("flyout-overlay-open"),i=this.hasAttribute("data-preview-navigation-collapsed")?this.previewCollapsedSidebarWidth:0;if(this.setPreviewLayoutState(!1,!1),this.toggleAttribute("data-preview-navigation-collapsed",!1),await this.updateComplete,t!==this.previewSyncGeneration||!a||r||s)return;const o=this.previewWidthProbe.value?.getBoundingClientRect().width??0,m=this.previewSpace.value?.getBoundingClientRect().width??0,y=Math.max(0,m-i);if(o<=0)return;if(y+c>=o){this.setPreviewLayoutState(!0,!1);return}if(!this.previewTokenIsConfigured())return;const v=this.previewMainMinProbe.value?.getBoundingClientRect().width??0;if(v<=0||(e=await this.setPreviewNavigationCollapse(this.previewCollapseSidebar),t!==this.previewSyncGeneration)||(this.setPreviewLayoutState(!0,!0),await new Promise(b=>requestAnimationFrame(()=>b())),t!==this.previewSyncGeneration))return;this.previewFitsWithinPage(v,o)||(this.setPreviewLayoutState(!1,!1),e=!1)}finally{t===this.previewSyncGeneration&&!e&&await this.setPreviewNavigationCollapse(!1),t===this.previewSyncGeneration&&this.toggleAttribute("data-preview-measuring",!1)}}setupPreviewLayoutObserver(){this.isConnected&&(!this.previewMediaQuery&&typeof window.matchMedia=="function"&&(this.previewMediaQuery=window.matchMedia(_),this.previewMediaQuery.addEventListener("change",this.onPreviewMediaChange)),!this.previewResizeObserver&&typeof ResizeObserver<"u"&&(this.previewResizeObserver=new ResizeObserver(this.onPreviewResize),this.previewResizeObserver.observe(this),this.previewWidthProbe.value&&this.previewResizeObserver.observe(this.previewWidthProbe.value),this.previewMainMinProbe.value&&this.previewResizeObserver.observe(this.previewMainMinProbe.value)),this.schedulePreviewLayout())}footerElementProvidesLandmark(t){return t.matches(w)||t.querySelector(w)!==null}syncFooterLandmark(){const e=(this.footerSlot.value?.assignedElements({flatten:!0})??[]).some(a=>this.footerElementProvidesLandmark(a));this.footerWrapperIsLandmark=!e}showPreview(){this.previewOpen=!0}closePreview(){this.previewOpen=!1}togglePreview(){this.previewOpen=!this.previewOpen}AddDialog(t){this.dialogZone.value?.appendChild(t)}firstUpdated(t){super.firstUpdated(t),this.syncFlyoutState(),this.setupPreviewLayoutObserver()}updated(t){super.updated(t),(t.has("fixedMenus")||t.has("headerPosition"))&&R().publish("fixed-menus-changed",{fixed:this.fixedMenus||this.headerPosition==="fixed"}),(t.has("previewOpen")||t.has("previewCollapseSidebar"))&&this.schedulePreviewLayout()}render(){const t=this.fixedMenus||this.headerPosition==="fixed",e=!t&&this.headerPosition==="sticky";return x`
2
- <div part="wrapper" class="esp-page ${z({"fixed-menus":t,"fixed-header":t,"sticky-header":e})}">
1
+ var w=function(P,e,t,i){var a=arguments.length,r=a<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(P,e,t,i);else for(var o=P.length-1;o>=0;o--)(s=P[o])&&(r=(a<3?s(r):a>3?s(e,t,r):s(e,t))||r);return a>3&&r&&Object.defineProperty(e,t,r),r};import{css as B,html as q,nothing as T}from"lit";import{customElement as I,property as m,state as N}from"lit/decorators.js";import{classMap as G}from"lit/directives/class-map.js";import{createRef as y,ref as b}from"lit/directives/ref.js";import{EspalierElementBase as F}from"../shared/esp-element-base.js";import{BiDirectionalStickyController as W}from"./bi-directional-sticky-controller.js";import{getEspBus as D}from"../shared/bus-events.js";import"../toaster/esp-toaster.js";const z='esp-footer, footer, [role~="contentinfo"]',$="(max-width: 50em)",l=1,H=5,U=12,V=48;let v=class extends F{constructor(){super(),this.dialogZone=y(),this.flyoutSlot=y(),this.footerSlot=y(),this.previewSlot=y(),this.previewSpace=y(),this.previewMinWidthProbe=y(),this.previewMaxWidthProbe=y(),this.flyoutMinWidthProbe=y(),this.flyoutMaxWidthProbe=y(),this.mainMinWidthProbe=y(),this.previewObservedWidths=new WeakMap,this.previewSyncRaf=null,this.previewSyncGeneration=0,this.previewSyncTask=Promise.resolve(),this.previewOverlayRecoveryRequested=!1,this.previewHeader=null,this.previewMenu=null,this.previewCollapsedSidebarWidth=0,this.flyoutOverlayPromotionWidth=null,this.flyoutOverlayRecoveryReady=!1,this.flyoutOverlayRecoveryGeneration=0,this.footerWrapperIsLandmark=!0,this.schedulePreviewLayout=(e=!1)=>{if(!this.isConnected||!this.hasUpdated)return;this.previewOverlayRecoveryRequested||=e===!0,this.previewSyncGeneration+=1;const t=this.previewSyncGeneration;this.previewSyncRaf!==null&&cancelAnimationFrame(this.previewSyncRaf),this.previewSyncRaf=requestAnimationFrame(()=>{this.previewSyncRaf=null;const i=this.previewOverlayRecoveryRequested;this.previewOverlayRecoveryRequested=!1,this.previewSyncTask=this.previewSyncTask.then(()=>this.syncPreviewLayout(t,i)).catch(()=>{})})},this.onPreviewMediaChange=()=>this.schedulePreviewLayout(!0),this.onPreviewResize=e=>{e.some(i=>{const a=i.contentRect.width,r=this.previewObservedWidths.get(i.target);return this.previewObservedWidths.set(i.target,a),r===void 0||Math.abs(r-a)>.25})&&this.schedulePreviewLayout(!0)},this.kind="wide",this.align="start",this.contained=!1,this.headerPosition="normal",this.fixedMenus=!1,this.previewOpen=!1,this.previewLabel="Preview",this.previewCollapseSidebar=!1,this.previewVisible=!1,this.previewReclaiming=!1,new W(this,".esp-page-left > .sticky-wrapper"),new W(this,".esp-page-right > .sticky-wrapper"),new W(this,".esp-page-flyout > .sticky-wrapper"),new W(this,".esp-page-preview > .sticky-wrapper",{topOffset:()=>0}),this.addEventListener("flyout-state-changed",e=>this.syncFlyoutState(e))}connectedCallback(){const e=Array.from(this.children).filter(t=>t.getAttribute("slot")==="footer");this.footerWrapperIsLandmark=!e.some(t=>this.footerElementProvidesLandmark(t)),super.connectedCallback(),this.hasUpdated&&queueMicrotask(()=>this.setupPreviewLayoutObserver())}disconnectedCallback(){this.previewResizeObserver?.disconnect(),this.previewResizeObserver=void 0,this.previewMediaQuery?.removeEventListener("change",this.onPreviewMediaChange),this.previewMediaQuery=void 0,this.previewSyncRaf!==null&&(cancelAnimationFrame(this.previewSyncRaf),this.previewSyncRaf=null),this.previewSyncGeneration+=1,this.previewOverlayRecoveryRequested=!1,this.toggleAttribute("data-preview-measuring",!1),this.toggleAttribute("data-preview-validating",!1),this.toggleAttribute("descendant-flyout-overlay-open",!1),this.clearFlyoutOverlayRecovery(),this.setPreviewLayoutState(!1,!1),this.setWorkspaceWidths(0,0),this.setPreviewNavigationCollapse(!1),super.disconnectedCallback()}syncFlyoutState(e){if(e&&e.target?.closest?.("esp-page")!==this){this.syncDescendantFlyoutOverlayState();return}const t=s=>{const o=s;return(typeof o.mode=="string"?o.mode:s.getAttribute("mode"))==="overlay"||o.pageOverlayRequested===!0},i=s=>{const o=s.open;return typeof o=="boolean"?o:s.hasAttribute("open")},a=s=>s.anchor!=null,r=(this.flyoutSlot.value?.assignedElements()??[]).filter(s=>s.tagName==="ESP-FLYOUT");for(const s of r){const o=s,n=typeof o.mode=="string"?o.mode:s.getAttribute("mode");o.pageOverlayRequested&&(!i(s)||n!=="auto")&&(o.pageOverlayRequested=!1)}r.some(s=>s.pageOverlayRequested===!0)||this.clearFlyoutOverlayRecovery(),this.toggleAttribute("flyout-open",r.some(s=>i(s)&&!t(s))),this.toggleAttribute("flyout-overlay-open",r.some(s=>i(s)&&t(s))),this.toggleAttribute("flyout-anchored",r.some(s=>i(s)&&a(s))),this.schedulePreviewLayout()}syncDescendantFlyoutOverlayState(){const e=Array.from(this.querySelectorAll("esp-flyout")).some(t=>{if(t.closest("esp-page")===this)return!1;const i=t,a=typeof i.open=="boolean"?i.open:t.hasAttribute("open"),r=typeof i.mode=="string"?i.mode:t.getAttribute("mode");return a&&(r==="overlay"||i.pageOverlayRequested===!0||t.getAttribute("aria-modal")==="true")});this.toggleAttribute("descendant-flyout-overlay-open",e)}assignedFlyouts(){return(this.flyoutSlot.value?.assignedElements()??[]).filter(e=>e.tagName==="ESP-FLYOUT")}openAutoFlyouts(){return this.assignedFlyouts().filter(e=>{const t=typeof e.open=="boolean"?e.open:e.hasAttribute("open"),i=typeof e.mode=="string"?e.mode:e.getAttribute("mode");return t&&i!=="overlay"})}async setPageFlyoutOverlay(e){let t=!1;const i=new Set(this.openAutoFlyouts());for(const a of this.assignedFlyouts()){const r=e&&i.has(a);a.pageOverlayRequested!==r&&(a.pageOverlayRequested=r,t=!0)}return t&&await Promise.all(this.assignedFlyouts().map(a=>a.updateComplete??Promise.resolve())),e||this.clearFlyoutOverlayRecovery(),t}clearFlyoutOverlayRecovery(){this.flyoutOverlayPromotionWidth=null,this.flyoutOverlayRecoveryReady=!1,this.flyoutOverlayRecoveryGeneration+=1}armFlyoutOverlayRecovery(){const e=++this.flyoutOverlayRecoveryGeneration;this.flyoutOverlayRecoveryReady=!1,requestAnimationFrame(()=>{requestAnimationFrame(()=>{e!==this.flyoutOverlayRecoveryGeneration||!this.openAutoFlyouts().some(t=>t.pageOverlayRequested===!0)||(this.flyoutOverlayPromotionWidth=this.visiblePageInlineBounds().width,this.flyoutOverlayRecoveryReady=!0)})})}previewHasContent(){const e=this.previewSlot.value?.assignedNodes({flatten:!0});return e?e.some(t=>t.nodeType===Node.ELEMENT_NODE||(t.textContent?.trim().length??0)>0):Array.from(this.childNodes).some(t=>t instanceof Element&&t.getAttribute("slot")==="preview"&&!t.hasAttribute("hidden"))}getPreviewNavigationPair(){if(!this.previewCollapseSidebar)return null;const e=Array.from(this.children),t=e.find(s=>s.slot==="header"&&s.tagName==="ESP-HEADER"),i=e.find(s=>s.slot==="sidebar"&&s.tagName==="ESP-MENU");if(!t||!i||!i.id)return null;const a=typeof t.drawerTarget=="string"?t.drawerTarget:t.getAttribute("drawer-target")??"",r=typeof i.mode=="string"?i.mode:i.getAttribute("mode");return a!==i.id||r!=="vertical"||!("previewCollapseRequested"in t)||!("previewCollapseRequested"in i)?null:{header:t,menu:i}}async setPreviewNavigationCollapse(e){const t=e?this.getPreviewNavigationPair():null,i=t!==null&&this.previewHeader===t.header&&this.previewMenu===t.menu,a=this.previewHeader&&this.previewHeader!==t?.header?this.previewHeader:null,r=this.previewMenu&&this.previewMenu!==t?.menu?this.previewMenu:null;if(a&&(a.previewCollapseRequested=!1),r&&(r.previewCollapseRequested=!1),this.previewHeader=t?.header??null,this.previewMenu=t?.menu??null,this.toggleAttribute("data-preview-navigation-collapsed",!1),await a?.updateComplete,await r?.updateComplete,!t)return this.previewCollapsedSidebarWidth=0,!1;const s=i?this.previewCollapsedSidebarWidth:this.shadowRoot?.querySelector(".esp-page-left")?.getBoundingClientRect().width??0;return t.header.previewCollapseRequested=!0,t.menu.previewCollapseRequested=!0,await t.header.updateComplete,await t.menu.updateComplete,t.menu.hasExternalDrawerControl===!0?(this.previewCollapsedSidebarWidth=s,this.toggleAttribute("data-preview-navigation-collapsed",!0),!0):(t.header.previewCollapseRequested=!1,t.menu.previewCollapseRequested=!1,await t.header.updateComplete,await t.menu.updateComplete,this.previewHeader=null,this.previewMenu=null,this.previewCollapsedSidebarWidth=0,!1)}setPreviewLayoutState(e,t){this.previewVisible=e,this.previewReclaiming=e&&t}setWorkspaceWidths(e,t){this.style.setProperty("--_esp-page-preview-used-width",`${Math.max(0,e)}px`),this.style.setProperty("--_esp-page-flyout-used-width",`${Math.max(0,t)}px`)}visiblePageInlineBounds(){const e=this.getBoundingClientRect();let t=e.left,i=e.right;const a=window.visualViewport,r=a?.offsetLeft??0,s=a?.width??document.documentElement.clientWidth;s>0&&(t=Math.max(t,r),i=Math.min(i,r+s));const o=this.getRootNode();let n=this.parentElement??(o instanceof ShadowRoot?o.host:null);for(;n;){const g=getComputedStyle(n).overflowX;if(["auto","clip","hidden","scroll"].includes(g)){const h=n.getBoundingClientRect();t=Math.max(t,h.left),i=Math.min(i,h.right)}const d=n.getRootNode();n=n.parentElement??(d instanceof ShadowRoot?d.host:null)}return{left:t,right:i,width:Math.max(0,i-t)}}visibleSpaceWidth(){const e=this.previewSpace.value?.getBoundingClientRect();if(!e)return 0;const t=this.visiblePageInlineBounds(),i=Math.max(0,t.left-e.left),a=Math.max(0,e.right-t.right);return Math.max(0,e.width-i-a)}probeWidth(e){return e.value?.getBoundingClientRect().width??0}allocateWorkspaceWidths(e,t,i,a,r,s,o){const n=Math.max(0,e),g=Math.max(0,a),d=Math.max(g,r),h=Math.max(0,s),p=Math.max(h,o);let u=0,f=0;return t&&i?(u=Math.min(d,Math.max(g,n-h)),f=Math.min(p,Math.max(h,n-u))):t?u=Math.min(d,Math.max(g,n)):i&&(f=Math.min(p,Math.max(h,n))),{previewWidth:u,flyoutWidth:f}}previewFitsWithinPage(e,t,i,a,r,s){const o=this.shadowRoot?.querySelector(".esp-page-main"),n=this.shadowRoot?.querySelector(".esp-page-preview"),g=this.shadowRoot?.querySelector(".esp-page-flyout");if(!o||!n||!g)return!1;const d=this.visiblePageInlineBounds(),h=o.getBoundingClientRect(),p=n.getBoundingClientRect(),u=g.getBoundingClientRect(),f=Math.max(t,i),M=Math.max(r,s),O=p.width+l>=t&&p.width<=f+l,R=!a||u.width+l>=r&&u.width<=M+l,x=p.left+l>=d.left&&p.right<=d.right+l&&(!a||u.left+l>=d.left&&u.right<=d.right+l),c=getComputedStyle(this).direction==="rtl"?h.left+l>=p.right&&(!a||p.left+l>=u.right):h.right<=p.left+l&&(!a||p.right<=u.left+l);return h.width+l>=e&&O&&R&&x&&c}flyoutFitsWithinPage(e,t,i){const a=this.shadowRoot?.querySelector(".esp-page-main"),r=this.shadowRoot?.querySelector(".esp-page-flyout");if(!a||!r)return!1;const s=this.visiblePageInlineBounds(),o=a.getBoundingClientRect(),n=r.getBoundingClientRect(),g=Math.max(t,i),d=n.width+l>=t&&n.width<=g+l,h=n.left+l>=s.left&&n.right<=s.right+l,p=getComputedStyle(this).direction==="rtl"?o.left+l>=n.right:o.right<=n.left+l;return o.width+l>=e&&d&&h&&p}workspaceMinimumsCanFit(e,t,i,a,r){const s=this.visiblePageInlineBounds().width;if(s<=0||e<=0||t&&i<=0||a&&r<=0)return!1;const o=this.shadowRoot?.querySelector(".esp-page-left")?.getBoundingClientRect().width??0,n=this.shadowRoot?.querySelector(".esp-page-right")?.getBoundingClientRect().width??0,d=(t&&this.getPreviewNavigationPair()!==null?0:o)+n+e+(t?i:0)+(a?r:0);return s+l>=d}workspaceGeometrySample(){const e=this.visiblePageInlineBounds(),t=this.shadowRoot?.querySelector(".esp-page-main")?.getBoundingClientRect(),i=this.shadowRoot?.querySelector(".esp-page-preview")?.getBoundingClientRect(),a=this.shadowRoot?.querySelector(".esp-page-flyout")?.getBoundingClientRect();return[e.left,e.right,e.width,t?.left??0,t?.right??0,t?.width??0,i?.left??0,i?.right??0,i?.width??0,a?.left??0,a?.right??0,a?.width??0]}workspaceGeometryMatches(e,t){return e.length===t.length&&e.every((i,a)=>Math.abs(i-(t[a]??i))<=l)}workspaceCandidateIsMeasurable(e,t){const i=this.shadowRoot?.querySelector(".esp-page-preview")?.getBoundingClientRect().width??0,a=this.shadowRoot?.querySelector(".esp-page-flyout")?.getBoundingClientRect().width??0;return(!e||i>l)&&(!t||a>l)}async candidateFitsAfterLayoutSettles(e,t,i){if(await this.updateComplete,e!==this.previewSyncGeneration||!this.isConnected)return null;let a=null,r=0;for(let s=0;s<U;s+=1){if(await new Promise(n=>requestAnimationFrame(()=>n())),e!==this.previewSyncGeneration||!this.isConnected)return null;if(t())return!0;if(!i()){a=null,r=0;continue}const o=this.workspaceGeometrySample();if(r=a&&this.workspaceGeometryMatches(a,o)?r+1:1,r>=H)return!1;a=o}return null}async promoteFlyoutIfClipped(e,t,i,a){if(i<=0)return!1;const r=await this.candidateFitsAfterLayoutSettles(e,()=>this.flyoutFitsWithinPage(t,i,a),()=>this.workspaceCandidateIsMeasurable(!1,!0));return r===null?!0:r?!1:(await this.promoteFlyoutToOverlay(),!0)}async promoteFlyoutToOverlay(){this.setPreviewLayoutState(!1,!1),this.setWorkspaceWidths(0,0),this.flyoutOverlayPromotionWidth===null&&(this.flyoutOverlayPromotionWidth=this.visiblePageInlineBounds().width,this.armFlyoutOverlayRecovery()),await this.setPageFlyoutOverlay(!0)}async syncPreviewLayout(e,t=!0){if(e!==this.previewSyncGeneration||!this.isConnected)return;let i=!1;const a=this.previewVisible;this.toggleAttribute("data-preview-measuring",!0);try{const r=this.previewOpen&&this.previewHasContent(),s=this.previewMediaQuery?.matches??!1,o=this.hasAttribute("flyout-overlay-open"),n=this.hasAttribute("flyout-open"),g=this.hasAttribute("data-preview-navigation-collapsed")?this.previewCollapsedSidebarWidth:0,d=this.probeWidth(this.previewMinWidthProbe),h=this.probeWidth(this.previewMaxWidthProbe),p=this.probeWidth(this.flyoutMinWidthProbe),u=this.probeWidth(this.flyoutMaxWidthProbe),f=this.probeWidth(this.mainMinWidthProbe),M=this.openAutoFlyouts().some(k=>k.pageOverlayRequested===!0);if(this.setPreviewLayoutState(!1,!1),this.setWorkspaceWidths(0,0),M){const k=this.visiblePageInlineBounds().width,E=this.flyoutOverlayPromotionWidth===null||k>=this.flyoutOverlayPromotionWidth+V;!s&&t&&this.flyoutOverlayRecoveryReady&&E&&this.workspaceMinimumsCanFit(f,r,d,!0,p)?await this.setPageFlyoutOverlay(!1):s&&await this.setPageFlyoutOverlay(!1);return}if(this.toggleAttribute("data-preview-navigation-collapsed",!1),await this.updateComplete,e!==this.previewSyncGeneration)return;const O=this.visibleSpaceWidth(),R=Math.max(0,O-g),x=r&&!s&&!o,c=n&&!s;if(f>0&&(!x||d>0)&&(!c||p>0)&&(x||c)&&!this.workspaceMinimumsCanFit(f,x,d,c,p)){c&&await this.promoteFlyoutToOverlay();return}const C=(x?d:0)+(c?p:0);let S=this.allocateWorkspaceWidths(R,x,c,d,h,p,u);if(this.setWorkspaceWidths(S.previewWidth,S.flyoutWidth),!x||d<=0){c&&await this.promoteFlyoutIfClipped(e,f,p,u);return}if(R+l>=C){a||this.toggleAttribute("data-preview-validating",!0),this.setPreviewLayoutState(!0,!1);const k=await this.candidateFitsAfterLayoutSettles(e,()=>this.previewFitsWithinPage(f,d,h,c,p,u),()=>this.workspaceCandidateIsMeasurable(!0,c));if(k===null)return;if(k){this.toggleAttribute("data-preview-validating",!1);return}this.setPreviewLayoutState(!1,!1),this.setWorkspaceWidths(0,c?p:0),c&&await this.promoteFlyoutToOverlay();return}const _=(this.shadowRoot?.querySelector(".esp-page-main")?.getBoundingClientRect().width??0)+R+l>=f+C;if(i=_?!1:await this.setPreviewNavigationCollapse(this.previewCollapseSidebar),_&&await this.setPreviewNavigationCollapse(!1),e!==this.previewSyncGeneration||(a||this.toggleAttribute("data-preview-validating",!0),this.setPreviewLayoutState(!0,!0),await this.updateComplete,e!==this.previewSyncGeneration))return;const L=this.visibleSpaceWidth();S=this.allocateWorkspaceWidths(L,!0,c,d,h,p,u),this.setWorkspaceWidths(S.previewWidth,S.flyoutWidth);const A=await this.candidateFitsAfterLayoutSettles(e,()=>this.previewFitsWithinPage(f,d,h,c,p,u),()=>this.workspaceCandidateIsMeasurable(!0,c));if(A===null)return;A?this.toggleAttribute("data-preview-validating",!1):(this.setPreviewLayoutState(!1,!1),this.setWorkspaceWidths(0,c?p:0),i=!1,c&&await this.promoteFlyoutToOverlay())}finally{e===this.previewSyncGeneration&&!i&&await this.setPreviewNavigationCollapse(!1),e===this.previewSyncGeneration&&(this.toggleAttribute("data-preview-measuring",!1),this.toggleAttribute("data-preview-validating",!1))}}setupPreviewLayoutObserver(){if(this.isConnected){if(!this.previewMediaQuery&&typeof window.matchMedia=="function"&&(this.previewMediaQuery=window.matchMedia($),this.previewMediaQuery.addEventListener("change",this.onPreviewMediaChange)),!this.previewResizeObserver&&typeof ResizeObserver<"u"){this.previewResizeObserver=new ResizeObserver(this.onPreviewResize),this.previewResizeObserver.observe(this);for(const e of[this.previewMinWidthProbe,this.previewMaxWidthProbe,this.flyoutMinWidthProbe,this.flyoutMaxWidthProbe,this.mainMinWidthProbe])e.value&&this.previewResizeObserver.observe(e.value)}this.schedulePreviewLayout(!0)}}footerElementProvidesLandmark(e){return e.matches(z)||e.querySelector(z)!==null}syncFooterLandmark(){const t=(this.footerSlot.value?.assignedElements({flatten:!0})??[]).some(i=>this.footerElementProvidesLandmark(i));this.footerWrapperIsLandmark=!t}showPreview(){this.previewOpen=!0}closePreview(){this.previewOpen=!1}togglePreview(){this.previewOpen=!this.previewOpen}AddDialog(e){this.dialogZone.value?.appendChild(e)}firstUpdated(e){super.firstUpdated(e),this.syncFlyoutState(),this.setupPreviewLayoutObserver()}updated(e){super.updated(e),(e.has("fixedMenus")||e.has("headerPosition"))&&D().publish("fixed-menus-changed",{fixed:this.fixedMenus||this.headerPosition==="fixed"}),(e.has("previewOpen")||e.has("previewCollapseSidebar"))&&this.schedulePreviewLayout(!0)}render(){const e=this.fixedMenus||this.headerPosition==="fixed",t=!e&&this.headerPosition==="sticky";return q`
2
+ <div part="wrapper" class="esp-page ${G({"fixed-menus":e,"fixed-header":e,"sticky-header":t})}">
3
3
  <div part="canvas" class="esp-page-canvas esp-page-canvas--left" aria-hidden="true"></div>
4
4
  <div part="canvas" class="esp-page-canvas esp-page-canvas--right" aria-hidden="true"></div>
5
5
  <div part="surface" class="esp-page-surface" aria-hidden="true"></div>
@@ -23,41 +23,81 @@ var p=function(u,t,e,a){var r=arguments.length,s=r<3?t:a===null?a=Object.getOwnP
23
23
  <div class="sticky-wrapper">
24
24
  <slot
25
25
  name="flyout"
26
- ${h(this.flyoutSlot)}
26
+ ${b(this.flyoutSlot)}
27
27
  @slotchange=${()=>this.syncFlyoutState()}
28
28
  ></slot>
29
29
  </div>
30
30
  </div>
31
31
  <div
32
- class="esp-page-preview-width-probe"
32
+ class="esp-page-preview-width-probe esp-page-preview-min-width-probe"
33
33
  aria-hidden="true"
34
- ${h(this.previewWidthProbe)}
34
+ ${b(this.previewMinWidthProbe)}
35
35
  ></div>
36
36
  <div
37
- class="esp-page-preview-main-min-probe"
37
+ class="esp-page-preview-max-width-probe"
38
38
  aria-hidden="true"
39
- ${h(this.previewMainMinProbe)}
39
+ ${b(this.previewMaxWidthProbe)}
40
40
  ></div>
41
- <div class="esp-page-preview-space" ${h(this.previewSpace)}>
41
+ <div
42
+ class="esp-page-flyout-min-width-probe"
43
+ aria-hidden="true"
44
+ ${b(this.flyoutMinWidthProbe)}
45
+ ></div>
46
+ <div
47
+ class="esp-page-flyout-max-width-probe"
48
+ aria-hidden="true"
49
+ ${b(this.flyoutMaxWidthProbe)}
50
+ ></div>
51
+ <div
52
+ class="esp-page-preview-main-min-probe esp-page-main-min-width-probe"
53
+ aria-hidden="true"
54
+ ${b(this.mainMinWidthProbe)}
55
+ ></div>
56
+ <div class="esp-page-preview-space" ${b(this.previewSpace)}>
42
57
  <aside part="preview" class="esp-page-preview" aria-label=${this.previewLabel}>
43
58
  <div part="preview-content" class="sticky-wrapper">
44
59
  <slot
45
60
  name="preview"
46
- ${h(this.previewSlot)}
61
+ ${b(this.previewSlot)}
47
62
  @slotchange=${this.schedulePreviewLayout}
48
63
  ></slot>
49
64
  </div>
50
65
  </aside>
51
66
  </div>
52
- <div class="esp-page-footer" role=${this.footerWrapperIsLandmark?"contentinfo":S}>
53
- <slot name="footer" ${h(this.footerSlot)} @slotchange=${this.syncFooterLandmark}></slot>
67
+ <div class="esp-page-footer" role=${this.footerWrapperIsLandmark?"contentinfo":T}>
68
+ <slot name="footer" ${b(this.footerSlot)} @slotchange=${this.syncFooterLandmark}></slot>
54
69
  </div>
55
- <div id="dialog-drop-zone" ${h(this.dialogZone)}></div>
70
+ <div id="dialog-drop-zone" ${b(this.dialogZone)}></div>
56
71
  <esp-toaster></esp-toaster>
57
72
  </div>
58
- `}};n.styles=[...f.styles,k`
73
+ `}};v.styles=[...F.styles,B`
59
74
  :host {
60
- --_esp-page-resolved-max-width: var(--esp-page-max-width, 1536px);
75
+ --_esp-page-resolved-max-width: var(
76
+ --esp-page-main-max-width,
77
+ var(--esp-page-max-width, 1536px)
78
+ );
79
+ --_esp-page-main-min-width: var(
80
+ --esp-page-main-min-width,
81
+ var(--esp-page-preview-min-main-width, 30rem)
82
+ );
83
+ --_esp-page-preview-resolved-min-width: var(
84
+ --esp-page-preview-width,
85
+ var(--esp-page-preview-min-width, 22.5rem)
86
+ );
87
+ --_esp-page-preview-resolved-max-width: var(
88
+ --esp-page-preview-width,
89
+ var(--esp-page-preview-max-width, 48rem)
90
+ );
91
+ --_esp-page-flyout-resolved-min-width: var(
92
+ --esp-page-flyout-width,
93
+ var(--esp-page-flyout-min-width, 20rem)
94
+ );
95
+ --_esp-page-flyout-resolved-max-width: var(
96
+ --esp-page-flyout-width,
97
+ var(--esp-page-flyout-max-width, 30rem)
98
+ );
99
+ --_esp-page-preview-used-width: 0px;
100
+ --_esp-page-flyout-used-width: 0px;
61
101
 
62
102
  --_esp-page-main-track: minmax(0, var(--_esp-page-resolved-max-width));
63
103
 
@@ -85,7 +125,10 @@ var p=function(u,t,e,a){var r=arguments.length,s=r<3?t:a===null?a=Object.getOwnP
85
125
  }
86
126
 
87
127
  :host([kind="narrow"]) {
88
- --_esp-page-resolved-max-width: var(--esp-page-max-width, 768px);
128
+ --_esp-page-resolved-max-width: var(
129
+ --esp-page-main-max-width,
130
+ var(--esp-page-max-width, 768px)
131
+ );
89
132
  }
90
133
 
91
134
  :host([align="center"]) {
@@ -100,7 +143,10 @@ var p=function(u,t,e,a){var r=arguments.length,s=r<3?t:a===null?a=Object.getOwnP
100
143
 
101
144
 
102
145
  :host([kind="full"]) {
103
- --_esp-page-resolved-max-width: var(--esp-page-max-width, none);
146
+ --_esp-page-resolved-max-width: var(
147
+ --esp-page-main-max-width,
148
+ var(--esp-page-max-width, none)
149
+ );
104
150
  --_esp-page-main-track: 1fr;
105
151
  --_esp-page-gutter-left: 0fr;
106
152
  --_esp-page-gutter-right: 0fr;
@@ -108,19 +154,24 @@ var p=function(u,t,e,a){var r=arguments.length,s=r<3?t:a===null?a=Object.getOwnP
108
154
 
109
155
 
110
156
  :host([flyout-open]) {
111
- --_esp-page-flyout-min: var(--esp-page-flyout-width, 20rem);
157
+ --_esp-page-flyout-min: var(--_esp-page-flyout-resolved-min-width);
112
158
  }
113
159
 
114
160
  :host([preview-reclaiming]) {
115
- --_esp-page-preview-min: var(--esp-page-preview-width, 20rem);
161
+ --_esp-page-preview-min: var(--_esp-page-preview-resolved-min-width);
162
+ }
163
+
164
+ :host([flyout-open]),
165
+ :host([preview-reclaiming]) {
116
166
  --_esp-page-main-track: minmax(
117
- var(--esp-page-preview-min-main-width, 0px),
167
+ var(--_esp-page-main-min-width),
118
168
  var(--_esp-page-resolved-max-width)
119
169
  );
120
170
  }
121
171
 
172
+ :host([kind="full"][flyout-open]),
122
173
  :host([kind="full"][preview-reclaiming]) {
123
- --_esp-page-main-track: minmax(var(--esp-page-preview-min-main-width, 0px), 1fr);
174
+ --_esp-page-main-track: minmax(var(--_esp-page-main-min-width), 1fr);
124
175
  }
125
176
 
126
177
 
@@ -133,6 +184,16 @@ var p=function(u,t,e,a){var r=arguments.length,s=r<3?t:a===null?a=Object.getOwnP
133
184
  --_esp-page-preview-min: 0px;
134
185
  }
135
186
 
187
+ :host([flyout-open]),
188
+ :host([preview-reclaiming]) {
189
+ --_esp-page-main-track: minmax(0, var(--_esp-page-resolved-max-width));
190
+ }
191
+
192
+ :host([kind="full"][flyout-open]),
193
+ :host([kind="full"][preview-reclaiming]) {
194
+ --_esp-page-main-track: 1fr;
195
+ }
196
+
136
197
  .esp-page > .esp-page-preview-space {
137
198
  display: none;
138
199
  }
@@ -144,11 +205,27 @@ var p=function(u,t,e,a){var r=arguments.length,s=r<3?t:a===null?a=Object.getOwnP
144
205
  }
145
206
 
146
207
 
208
+ :host([descendant-flyout-overlay-open]) .esp-page > div.esp-page-main {
209
+ z-index: var(--esp-flyout-z-index, 3000);
210
+ overflow: visible;
211
+ }
212
+
213
+
147
214
  :host([flyout-anchored]) .esp-page > div.esp-page-flyout > .sticky-wrapper {
148
215
  position: static;
149
216
  }
150
217
 
151
218
 
219
+ :host([flyout-anchored][preview-visible]) .esp-page > div.esp-page-flyout {
220
+ z-index: calc(var(--esp-page-header-z-index, 20) + 2);
221
+ }
222
+
223
+ slot[name="flyout"]::slotted(esp-flyout) {
224
+ --_esp-flyout-used-width: var(--_esp-page-flyout-used-width);
225
+ --_esp-flyout-preview-bridge-width: var(--_esp-page-preview-used-width);
226
+ }
227
+
228
+
152
229
  slot[name="flyout"]::slotted(esp-flyout[match-surface]) {
153
230
  --esp-flyout-shadow: var(--_esp-page-surface-edge-shadow);
154
231
  }
@@ -232,6 +309,11 @@ var p=function(u,t,e,a){var r=arguments.length,s=r<3?t:a===null?a=Object.getOwnP
232
309
  transition: none;
233
310
  }
234
311
 
312
+
313
+ :host([data-preview-validating]) .esp-page-preview {
314
+ visibility: hidden;
315
+ }
316
+
235
317
  .esp-page {
236
318
 
237
319
  min-height: 100vh;
@@ -321,6 +403,9 @@ var p=function(u,t,e,a){var r=arguments.length,s=r<3?t:a===null?a=Object.getOwnP
321
403
  grid-row: content;
322
404
  z-index: 5;
323
405
  position: relative;
406
+ inline-size: var(--_esp-page-flyout-used-width);
407
+ min-inline-size: 0;
408
+ margin-inline-start: var(--_esp-page-preview-used-width);
324
409
 
325
410
 
326
411
  @media (max-width: 50em) {
@@ -335,19 +420,30 @@ var p=function(u,t,e,a){var r=arguments.length,s=r<3?t:a===null?a=Object.getOwnP
335
420
  z-index: 4;
336
421
  position: relative;
337
422
  min-inline-size: 0;
338
- margin-inline-start: var(--_esp-page-flyout-min);
339
423
 
340
424
  > .esp-page-preview {
341
425
  display: none;
342
- inline-size: var(--esp-page-preview-width, 20rem);
343
- max-inline-size: 100%;
426
+ box-sizing: border-box;
427
+ inline-size: var(--_esp-page-preview-used-width);
344
428
  position: relative;
429
+ background: var(
430
+ --esp-page-preview-background,
431
+ var(
432
+ --esp-page-main-background,
433
+ var(--esp-page-background, var(--esp-color-background))
434
+ )
435
+ );
436
+ border-inline-start: var(--esp-page-preview-border, 1px dotted var(--esp-color-border));
437
+ box-shadow: var(--esp-page-preview-shadow, var(--_esp-page-surface-edge-shadow));
345
438
  }
346
439
  }
347
440
 
348
441
 
349
- > .esp-page-preview-width-probe,
350
- > .esp-page-preview-main-min-probe {
442
+ > .esp-page-preview-min-width-probe,
443
+ > .esp-page-preview-max-width-probe,
444
+ > .esp-page-flyout-min-width-probe,
445
+ > .esp-page-flyout-max-width-probe,
446
+ > .esp-page-main-min-width-probe {
351
447
  position: absolute;
352
448
  block-size: 0;
353
449
  visibility: hidden;
@@ -355,12 +451,24 @@ var p=function(u,t,e,a){var r=arguments.length,s=r<3?t:a===null?a=Object.getOwnP
355
451
  contain: strict;
356
452
  }
357
453
 
358
- > .esp-page-preview-width-probe {
359
- inline-size: var(--esp-page-preview-width, 20rem);
454
+ > .esp-page-preview-min-width-probe {
455
+ inline-size: var(--_esp-page-preview-resolved-min-width);
360
456
  }
361
457
 
362
- > .esp-page-preview-main-min-probe {
363
- inline-size: var(--esp-page-preview-min-main-width, 0px);
458
+ > .esp-page-preview-max-width-probe {
459
+ inline-size: var(--_esp-page-preview-resolved-max-width);
460
+ }
461
+
462
+ > .esp-page-flyout-min-width-probe {
463
+ inline-size: var(--_esp-page-flyout-resolved-min-width);
464
+ }
465
+
466
+ > .esp-page-flyout-max-width-probe {
467
+ inline-size: var(--_esp-page-flyout-resolved-max-width);
468
+ }
469
+
470
+ > .esp-page-main-min-width-probe {
471
+ inline-size: var(--_esp-page-main-min-width);
364
472
  }
365
473
 
366
474
 
@@ -451,7 +559,6 @@ var p=function(u,t,e,a){var r=arguments.length,s=r<3?t:a===null?a=Object.getOwnP
451
559
  > aside.esp-page-left,
452
560
  > aside.esp-page-right,
453
561
  > div.esp-page-flyout,
454
- > div.esp-page-preview-space,
455
562
  > .esp-page-surface,
456
563
  > .esp-page-canvas {
457
564
  margin-top: var(--_esp-page-fixed-header-offset);
@@ -482,9 +589,36 @@ var p=function(u,t,e,a){var r=arguments.length,s=r<3?t:a===null?a=Object.getOwnP
482
589
  overflow: hidden;
483
590
  }
484
591
 
592
+
593
+ :host([preview-visible]) .esp-page > .esp-page-surface {
594
+ box-shadow: none;
595
+ }
596
+
597
+
598
+ .esp-page > div.esp-page-preview-space {
599
+ grid-row: top-start / footer-end;
600
+ z-index: calc(var(--esp-page-header-z-index, 20) + 1);
601
+ pointer-events: none;
602
+
603
+ > .esp-page-preview {
604
+ position: absolute;
605
+ inset-block: 0;
606
+ inset-inline-start: 0;
607
+ pointer-events: auto;
608
+
609
+ > .sticky-wrapper {
610
+ block-size: 100vh;
611
+ block-size: 100dvh;
612
+ overflow-y: auto;
613
+
614
+ overscroll-behavior-y: auto;
615
+ }
616
+ }
617
+ }
618
+
485
619
  @media (prefers-reduced-motion: reduce) {
486
620
  .esp-page {
487
621
  transition: none;
488
622
  }
489
623
  }
490
- `],p([C()],n.prototype,"footerWrapperIsLandmark",void 0),p([l({reflect:!0})],n.prototype,"kind",void 0),p([l({reflect:!0})],n.prototype,"align",void 0),p([l({type:Boolean,reflect:!0})],n.prototype,"contained",void 0),p([l({attribute:"header-position",reflect:!0})],n.prototype,"headerPosition",void 0),p([l({attribute:"fixed-menus",type:Boolean,reflect:!0})],n.prototype,"fixedMenus",void 0),p([l({attribute:"preview-open",type:Boolean,reflect:!0})],n.prototype,"previewOpen",void 0),p([l({attribute:"preview-label",type:String,reflect:!0})],n.prototype,"previewLabel",void 0),p([l({attribute:"preview-collapse-sidebar",type:Boolean,reflect:!0})],n.prototype,"previewCollapseSidebar",void 0),p([l({attribute:"preview-visible",type:Boolean,reflect:!0})],n.prototype,"previewVisible",void 0),p([l({attribute:"preview-reclaiming",type:Boolean,reflect:!0})],n.prototype,"previewReclaiming",void 0),n=p([P("esp-page")],n);export{n as EspalierPage};
624
+ `],w([N()],v.prototype,"footerWrapperIsLandmark",void 0),w([m({reflect:!0})],v.prototype,"kind",void 0),w([m({reflect:!0})],v.prototype,"align",void 0),w([m({type:Boolean,reflect:!0})],v.prototype,"contained",void 0),w([m({attribute:"header-position",reflect:!0})],v.prototype,"headerPosition",void 0),w([m({attribute:"fixed-menus",type:Boolean,reflect:!0})],v.prototype,"fixedMenus",void 0),w([m({attribute:"preview-open",type:Boolean,reflect:!0})],v.prototype,"previewOpen",void 0),w([m({attribute:"preview-label",type:String,reflect:!0})],v.prototype,"previewLabel",void 0),w([m({attribute:"preview-collapse-sidebar",type:Boolean,reflect:!0})],v.prototype,"previewCollapseSidebar",void 0),w([m({attribute:"preview-visible",type:Boolean,reflect:!0})],v.prototype,"previewVisible",void 0),w([m({attribute:"preview-reclaiming",type:Boolean,reflect:!0})],v.prototype,"previewReclaiming",void 0),v=w([I("esp-page")],v);export{v as EspalierPage};
@@ -1615,11 +1615,23 @@
1615
1615
  "component": "esp-page",
1616
1616
  "description": "Offset reserved for fixed headers. Defaults to `var(--esp-header-height)`."
1617
1617
  },
1618
+ {
1619
+ "name": "--esp-page-flyout-max-width",
1620
+ "category": "component",
1621
+ "component": "esp-page",
1622
+ "description": "Maximum help width and overlay drawer cap before the `85vw` viewport cap. Defaults to `30rem`."
1623
+ },
1624
+ {
1625
+ "name": "--esp-page-flyout-min-width",
1626
+ "category": "component",
1627
+ "component": "esp-page",
1628
+ "description": "Minimum in-grid help width. Defaults to `20rem`."
1629
+ },
1618
1630
  {
1619
1631
  "name": "--esp-page-flyout-width",
1620
1632
  "category": "component",
1621
1633
  "component": "esp-page",
1622
- "description": "The width of the open flyout track (and of the `esp-flyout` overlay drawer). Defaults to `20rem`."
1634
+ "description": "Legacy fixed-width alias that pins both help bounds."
1623
1635
  },
1624
1636
  {
1625
1637
  "name": "--esp-page-header-z-index",
@@ -1633,23 +1645,65 @@
1633
1645
  "component": "esp-page",
1634
1646
  "description": "The background of the main content well. Defaults to `transparent` (the well shows the page background). Set it to give the content well its own card color, or pair the transparent default with `--esp-page-surface-shadow: none` for content that floats directly on the page with no frame."
1635
1647
  },
1648
+ {
1649
+ "name": "--esp-page-main-max-width",
1650
+ "category": "component",
1651
+ "component": "esp-page",
1652
+ "description": "Maximum width of the main content well. Defaults from `kind`: `1536px` (wide), `768px` (narrow), or unbounded (full). Surplus width beyond it becomes canvas gutters."
1653
+ },
1654
+ {
1655
+ "name": "--esp-page-main-min-width",
1656
+ "category": "component",
1657
+ "component": "esp-page",
1658
+ "description": "Minimum width of the main content well while preview or in-grid help competes for space. Defaults to `30rem`."
1659
+ },
1636
1660
  {
1637
1661
  "name": "--esp-page-max-width",
1638
1662
  "category": "component",
1639
1663
  "component": "esp-page",
1640
- "description": "The maximum width of the main content well. Set automatically by the `kind` attribute: `1536px` (wide), `768px` (narrow), or `none` (full). This cap now sizes the main grid track; surplus width beyond it becomes the canvas gutters."
1664
+ "description": "Legacy fallback for `--esp-page-main-max-width`."
1665
+ },
1666
+ {
1667
+ "name": "--esp-page-preview-background",
1668
+ "category": "component",
1669
+ "component": "esp-page",
1670
+ "description": "Background of the persistent preview surface. Defaults to the main background, then the page background."
1671
+ },
1672
+ {
1673
+ "name": "--esp-page-preview-border",
1674
+ "category": "component",
1675
+ "component": "esp-page",
1676
+ "description": "Leading tear-off edge between main and preview. Defaults to `1px dotted var(--esp-color-border)`."
1677
+ },
1678
+ {
1679
+ "name": "--esp-page-preview-max-width",
1680
+ "category": "component",
1681
+ "component": "esp-page",
1682
+ "description": "Maximum preview width. Defaults to `48rem`. Preview receives flexible trailing space before help grows."
1641
1683
  },
1642
1684
  {
1643
1685
  "name": "--esp-page-preview-min-main-width",
1644
1686
  "category": "component",
1645
1687
  "component": "esp-page",
1646
- "description": "Optional minimum width of the main content well while preview is reclaiming canvas/surface space. Unset by default, so preview uses spare canvas only. Set a length such as `900px` to opt into reclaim behavior."
1688
+ "description": "Legacy fallback for `--esp-page-main-min-width`."
1689
+ },
1690
+ {
1691
+ "name": "--esp-page-preview-min-width",
1692
+ "category": "component",
1693
+ "component": "esp-page",
1694
+ "description": "Minimum preview width. Defaults to `22.5rem` (360px, a reasonable mobile-device surface)."
1695
+ },
1696
+ {
1697
+ "name": "--esp-page-preview-shadow",
1698
+ "category": "component",
1699
+ "component": "esp-page",
1700
+ "description": "Shadow cast from the preview's trailing edge. Defaults to the page surface edge shadow. Set to `none` for a flat additive surface."
1647
1701
  },
1648
1702
  {
1649
1703
  "name": "--esp-page-preview-width",
1650
1704
  "category": "component",
1651
1705
  "component": "esp-page",
1652
- "description": "Width of the persistent preview panel. Defaults to `20rem`."
1706
+ "description": "Legacy fixed-width alias that pins both preview bounds."
1653
1707
  },
1654
1708
  {
1655
1709
  "name": "--esp-page-sticky-header-top",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taprootio/espalier",
3
- "version": "2.10.0",
3
+ "version": "2.11.0",
4
4
  "packageManager": "bun@1.3.12",
5
5
  "description": "Espalier — a themeable, accessible, framework-agnostic, enterprise-grade design system built on web standards and love.",
6
6
  "customElements": "custom-elements.json",