@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.
- package/CHANGELOG.md +54 -0
- package/custom-elements.json +5718 -5206
- package/dist/flyout/esp-flyout.d.ts +20 -12
- package/dist/flyout/esp-flyout.js +75 -22
- package/dist/page/bi-directional-sticky-controller.js +1 -1
- package/dist/page/esp-page.d.ts +129 -39
- package/dist/page/esp-page.js +165 -31
- package/espalier.token-manifest.json +58 -4
- package/package.json +1 -1
package/dist/page/esp-page.js
CHANGED
|
@@ -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 ${
|
|
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
|
-
${
|
|
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
|
-
${
|
|
34
|
+
${b(this.previewMinWidthProbe)}
|
|
35
35
|
></div>
|
|
36
36
|
<div
|
|
37
|
-
class="esp-page-preview-
|
|
37
|
+
class="esp-page-preview-max-width-probe"
|
|
38
38
|
aria-hidden="true"
|
|
39
|
-
${
|
|
39
|
+
${b(this.previewMaxWidthProbe)}
|
|
40
40
|
></div>
|
|
41
|
-
<div
|
|
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
|
-
${
|
|
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":
|
|
53
|
-
<slot name="footer" ${
|
|
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" ${
|
|
70
|
+
<div id="dialog-drop-zone" ${b(this.dialogZone)}></div>
|
|
56
71
|
<esp-toaster></esp-toaster>
|
|
57
72
|
</div>
|
|
58
|
-
`}};
|
|
73
|
+
`}};v.styles=[...F.styles,B`
|
|
59
74
|
:host {
|
|
60
|
-
--_esp-page-resolved-max-width: var(
|
|
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(
|
|
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(
|
|
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(--
|
|
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(--
|
|
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(--
|
|
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(--
|
|
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
|
-
|
|
343
|
-
|
|
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-
|
|
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(--
|
|
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-
|
|
363
|
-
inline-size: var(--
|
|
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
|
-
`],
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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.
|
|
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",
|