@logosphere-ui/core 0.0.0-alpha.45 → 0.0.0-alpha.47
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/AGENTS.md +1 -1
- package/dist/AGENTS.md +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/index.umd.js +36 -36
- package/dist/left-menu.cjs +1 -1
- package/dist/left-menu.js +1 -1
- package/dist/{leftmenu-BcUNnvly.cjs → leftmenu-DiKo8iud.cjs} +2 -2
- package/dist/{leftmenu-Cg57EaSY.js → leftmenu-DlU_G4Sj.js} +18 -6
- package/package.json +1 -1
package/dist/left-menu.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./leftmenu-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./leftmenu-DiKo8iud.cjs");Object.defineProperty(exports,"LeftMenu",{enumerable:!0,get:()=>e.LeftMenu});exports.isLeftMenuGroup=e.isLeftMenuGroup;
|
package/dist/left-menu.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
"use strict";const n=require("lit"),a=require("lit/decorators.js");require("./button-vdNReBMi.cjs");require("./input-DyLKo7h6.cjs");require("./popover-CrXUbUR-.cjs");require("./ui-icon-DWl7I5BQ.cjs");require("./tree-menu-DDQ_DYl7.cjs");function g(d){return"items"in d&&Array.isArray(d.items)}const v=':host{display:block;position:relative;height:100%;font-family:var(--font-family-base)}.lm{position:relative;height:100%;transition:width var(--transition-speed-base) var(--transition-timing)}.lm--resizing{transition:none}.lm__panel{position:relative;width:var(--lm-closed-width);min-width:var(--lm-closed-width);height:100%;background:var(--color-body-bg);border-right:1px solid var(--color-border);display:flex;flex-direction:column;overflow:hidden;overflow-x:hidden;box-sizing:border-box;padding:var(--spacing-2) var(--spacing-3);transition:width var(--transition-speed-base) var(--transition-timing),min-width var(--transition-speed-base) var(--transition-timing),box-shadow var(--transition-speed-base) var(--transition-timing)}.lm--resizing .lm__panel{transition:none}.lm--open .lm__panel{width:var(--lm-open-width);min-width:var(--lm-open-width)}.lm__resize-handle{position:absolute;top:0;right:-4px;width:8px;height:100%;cursor:col-resize;z-index:calc(var(--z-index-dropdown) + 1);touch-action:none}.lm__resize-handle:after{content:"";position:absolute;top:0;right:3px;width:1px;height:100%;background:transparent;transition:background-color var(--transition-speed-fast) var(--transition-timing)}.lm__resize-handle:hover:after,.lm--resizing .lm__resize-handle:after{background:var(--color-border)}.lm__brand{padding:var(--spacing-1-5) 0 18px var(--spacing-2);margin-bottom:var(--spacing-3);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-2);box-sizing:border-box}.lm--closed .lm__brand{width:100%;min-height:64px;padding:var(--spacing-1-5) 0 18px;flex-direction:column;justify-content:center}.lm__brand-logo{display:inline-flex;align-items:center;min-width:0;flex:1 1 auto;overflow:hidden}.lm--closed .lm__brand-logo{flex:0 0 auto;justify-content:center;width:100%}.lm__brand-toggle{flex:0 0 auto}.lm__brand-toggle-slot{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:32px;height:32px;min-width:32px;overflow:hidden}.lm__search{padding:var(--spacing-2) 0}.lm__nav{flex:1;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin}.lm__nav-actions{display:flex;justify-content:flex-end;padding-top:var(--spacing-2)}.lm__nav-action-tooltip{--popover-min-width: max-content;--popover-body-padding: var(--spacing-2) var(--spacing-3)}.lm__nav-action-tooltip-text{color:var(--color-body-color);white-space:nowrap}.lm__nav logosphere-tree-menu{width:100%}.lm__group{position:relative;margin-bottom:var(--spacing-2)}.lm__group--with-separator:after{content:"";display:block;margin:var(--spacing-2) var(--spacing-2);border-bottom:1px solid var(--color-border)}.lm__group-label{padding:var(--spacing-2) var(--spacing-1);font-size:var(--font-size-xs);letter-spacing:.04em;color:var(--color-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lm__custom{border-top:1px solid var(--color-border);margin-top:var(--spacing-4);padding:var(--spacing-2)}.lm--closed .lm__custom{padding:var(--spacing-2) 0}.lm__custom--hidden{display:none}.lm--closed .lm__nav{padding-left:0;padding-right:0;scrollbar-gutter:auto;scrollbar-color:var(--color-border) transparent}.lm--closed .lm__nav::-webkit-scrollbar{width:4px;height:4px}.lm--closed .lm__nav::-webkit-scrollbar-track{background:transparent}.lm--closed .lm__nav::-webkit-scrollbar-thumb{background-color:var(--color-border);border-radius:999px}.lm--closed .lm__nav:hover::-webkit-scrollbar-thumb{background-color:var(--color-tertiary)}.lm__footer{margin-top:auto;border-top:1px solid var(--color-border);padding:var(--spacing-2) 0 0;display:flex;align-items:center;justify-content:center;gap:var(--spacing-2)}.lm--closed .lm__footer{flex-direction:column;justify-content:center}.lm__ctrl{width:32px;height:32px;border:1px solid var(--color-border);background:var(--color-body-bg);border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-body-color)}.lm__ctrl:hover{background:var(--color-tertiary)}.lm__toggle-icon{transform:rotate(180deg);transition:transform var(--transition-speed-base) var(--transition-timing)}.lm__toggle-icon--open{transform:rotate(0)}::slotted([slot="logo-open"]),::slotted([slot="toggle-closed"]){display:inline-flex;width:100%;height:100%}::slotted([slot="custom-open"]),::slotted([slot="custom-closed"]){display:block;width:100%}';var b=Object.defineProperty,w=Object.getOwnPropertyDescriptor,l=(d,e,t,o)=>{for(var i=o>1?void 0:o?w(e,t):e,s=d.length-1,r;s>=0;s--)(r=d[s])&&(i=(o?r(e,t,i):r(i))||i);return o&&i&&b(e,t,i),i};const m=68,_=248,x=500;function y(d){const e=new Set,t=o=>{o.forEach(i=>{e.add(i.id),i.children?.length&&t(i.children)})};return t(d),e}function u(d){const e=[];let t=null,o=0;return d.forEach(i=>{if(g(i)){t=null,e.push({id:i.id||`group-${o++}`,label:i.label?.trim()||null,items:i.items});return}t||(t={id:`group-${o++}`,label:null,items:[]},e.push(t)),t.items.push(i)}),e}function f(d){return d.map(e=>({id:e.id,label:e.label,disabled:e.disabled,active:e.active,iconName:e.iconName,badges:e.badges,data:e.data??e,children:e.children?.length?f(e.children):void 0}))}exports.LeftMenu=class extends n.LitElement{constructor(){super(...arguments),this.open=!1,this.openWidth=248,this.storageKey="logosphere-leftmenu-state",this.items=[],this.defaultExpandedIds=[],this.leading=!0,this._expandedIds=new Set,this._search="",this._searchExpandedIds=new Set,this._hasCustomOpen=!1,this._hasCustomClosed=!1,this._closedToggleHover=!1,this._currentOpenWidth=_,this._resizing=!1,this._isHydratingState=!1,this._resizeStartX=0,this._resizeStartWidth=_,this._onCustomOpenSlotChange=e=>{const t=e.target;this._hasCustomOpen=t.assignedElements({flatten:!0}).length>0},this._onCustomClosedSlotChange=e=>{const t=e.target;this._hasCustomClosed=t.assignedElements({flatten:!0}).length>0},this._handleSearchInput=e=>{const o=e.detail?.value;typeof o=="string"&&this._setSearch(o)},this._toggleOpen=()=>{this.open=!this.open,this._closedToggleHover=!1},this._handleClosedToggleMouseEnter=()=>{this.open||(this._closedToggleHover=!0)},this._handleClosedToggleMouseLeave=()=>{this._closedToggleHover=!1},this._handleResizePointerDown=e=>{this.open&&(e.preventDefault(),e.stopPropagation(),this._resizing=!0,this._resizeStartX=e.clientX,this._resizeStartWidth=this._currentOpenWidth,window.addEventListener("pointermove",this._handleResizePointerMove),window.addEventListener("pointerup",this._handleResizePointerUp),window.addEventListener("pointercancel",this._handleResizePointerUp))},this._handleResizePointerMove=e=>{if(!this._resizing)return;const t=e.clientX-this._resizeStartX;this._currentOpenWidth=this._clampOpenWidth(this._resizeStartWidth+t)},this._handleResizePointerUp=()=>{this._resizing&&(this._resizing=!1,this._removeResizeListeners(),this.dispatchEvent(new CustomEvent("width-change",{detail:{width:this._currentOpenWidth},bubbles:!0,composed:!0})))},this._collapseAll=()=>{this._expandedIds=new Set,this._searchExpandedIds=new Set},this._handleTreeToggle=e=>{e.stopPropagation();const{item:t,expanded:o}=e.detail;o?this._expandedIds.add(t.id):this._expandedIds.delete(t.id),this._expandedIds=new Set(this._expandedIds)},this._handleTreeNodeClick=e=>{this.open||!e.detail.hasChildren||(this.open=!0,this._expandedIds.add(e.detail.item.id),this._expandedIds=new Set(this._expandedIds))},this._handleTreeItemClick=e=>{e.stopPropagation(),this.dispatchEvent(new CustomEvent("item-click",{detail:{item:e.detail.item.data??e.detail.item},bubbles:!0,composed:!0}))}}connectedCallback(){super.connectedCallback(),this._currentOpenWidth=this._clampOpenWidth(this.openWidth),this._loadPersistedState()}disconnectedCallback(){super.disconnectedCallback(),this._removeResizeListeners()}updated(e){this._isHydratingState||(e.has("openWidth")&&!this._resizing&&(this._currentOpenWidth=this._clampOpenWidth(this.openWidth)),e.has("open")&&this._persistState(),e.has("items")&&this.defaultExpandedIds.length&&(this._expandedIds=new Set(this.defaultExpandedIds)),(e.has("items")||e.has("open"))&&this._syncIconSlots())}_loadPersistedState(){if(!(typeof window>"u"))try{const e=window.localStorage.getItem(this.storageKey);if(!e)return;const t=JSON.parse(e);this._isHydratingState=!0,typeof t.open=="boolean"&&(this.open=t.open),this._isHydratingState=!1}catch{this._isHydratingState=!1}}_persistState(){if(!(typeof window>"u"))try{window.localStorage.setItem(this.storageKey,JSON.stringify({open:this.open}))}catch{}}_syncIconSlots(){const e=Array.from(this.querySelectorAll("[slot^='icon-']")),t=Array.from(this.shadowRoot?.querySelectorAll("logosphere-tree-menu")??[]);if(!t.length)return;const o=t.map(i=>{const s=i.getAttribute("data-group-id"),r=this._renderGroups().find(h=>h.id===s);return r?y(r.items):new Set});e.forEach(i=>{const r=(i.getAttribute("slot")??"").slice(5),h=o.findIndex(p=>p.has(r)),c=h>=0?t[h]:t[0];c&&i.parentElement!==c&&c.appendChild(i)})}_allItems(){return u(this.items).flatMap(e=>e.items)}_renderGroups(){return u(this.items)}_setSearch(e){if(this._search=e,!e){this._searchExpandedIds=new Set;return}const t=new Set,o=i=>{let s=!1;return i.forEach(r=>{const h=r.children??[],c=r.label.toLocaleLowerCase().includes(e.toLocaleLowerCase()),p=h.length?o(h):!1;p&&t.add(r.id),c&&h.length&&t.add(r.id),s=s||c||p}),s};o(this._allItems()),this._searchExpandedIds=t}_filterItems(e,t){if(!t)return e;const o=t.toLocaleLowerCase(),i=s=>{const r=(s.children??[]).map(i).filter(Boolean);return!s.label.toLocaleLowerCase().includes(o)&&r.length===0?null:{...s,children:r}};return e.map(i).filter(Boolean)}_clampOpenWidth(e){return Math.min(x,Math.max(_,Math.round(e)))}_removeResizeListeners(){window.removeEventListener("pointermove",this._handleResizePointerMove),window.removeEventListener("pointerup",this._handleResizePointerUp),window.removeEventListener("pointercancel",this._handleResizePointerUp)}_effectiveExpandedIds(){const e=new Set(this._expandedIds);return this._search&&this._searchExpandedIds.forEach(t=>e.add(t)),Array.from(e)}render(){const e=this.open,t=this._effectiveExpandedIds(),o=this._renderGroups().map(s=>({group:s,items:this._filterItems(s.items,this._search)})).filter(({items:s})=>s.length>0),i=e?this._currentOpenWidth:m;return n.html`
|
|
1
|
+
"use strict";const n=require("lit"),a=require("lit/decorators.js");require("./button-vdNReBMi.cjs");require("./input-DyLKo7h6.cjs");require("./popover-CrXUbUR-.cjs");require("./ui-icon-DWl7I5BQ.cjs");require("./tree-menu-DDQ_DYl7.cjs");function g(d){return"items"in d&&Array.isArray(d.items)}const v=':host{display:block;position:relative;height:100%;font-family:var(--font-family-base)}.lm{position:relative;height:100%;transition:width var(--transition-speed-base) var(--transition-timing)}.lm--resizing{transition:none}.lm__panel{position:relative;width:var(--lm-closed-width);min-width:var(--lm-closed-width);height:100%;background:var(--color-body-bg);border-right:1px solid var(--color-border);display:flex;flex-direction:column;overflow:hidden;overflow-x:hidden;box-sizing:border-box;padding:var(--spacing-2) var(--spacing-3);transition:width var(--transition-speed-base) var(--transition-timing),min-width var(--transition-speed-base) var(--transition-timing),box-shadow var(--transition-speed-base) var(--transition-timing)}.lm--resizing .lm__panel{transition:none}.lm--open .lm__panel{width:var(--lm-open-width);min-width:var(--lm-open-width)}.lm__resize-handle{position:absolute;top:0;right:-4px;width:8px;height:100%;cursor:col-resize;z-index:calc(var(--z-index-dropdown) + 1);touch-action:none}.lm__resize-handle:after{content:"";position:absolute;top:0;right:3px;width:1px;height:100%;background:transparent;transition:background-color var(--transition-speed-fast) var(--transition-timing)}.lm__resize-handle:hover:after,.lm--resizing .lm__resize-handle:after{background:var(--color-border)}.lm__brand{padding:var(--spacing-1-5) 0 18px var(--spacing-2);margin-bottom:var(--spacing-3);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-2);box-sizing:border-box}.lm--closed .lm__brand{width:100%;min-height:64px;padding:var(--spacing-1-5) 0 18px;flex-direction:column;justify-content:center}.lm__brand-logo{display:inline-flex;align-items:center;min-width:0;flex:1 1 auto;overflow:hidden}.lm--closed .lm__brand-logo{flex:0 0 auto;justify-content:center;width:100%}.lm__brand-toggle{flex:0 0 auto}.lm__brand-toggle-slot{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:32px;height:32px;min-width:32px;overflow:hidden}.lm__search{padding:var(--spacing-2) 0}.lm__nav{flex:1;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin}.lm__nav-actions{display:flex;justify-content:flex-end;padding-top:var(--spacing-2)}.lm__nav-action-tooltip{--popover-min-width: max-content;--popover-body-padding: var(--spacing-2) var(--spacing-3)}.lm__nav-action-tooltip-text{color:var(--color-body-color);white-space:nowrap}.lm__nav logosphere-tree-menu{width:100%}.lm__group{position:relative;margin-bottom:var(--spacing-2)}.lm__group--with-separator:after{content:"";display:block;margin:var(--spacing-2) var(--spacing-2);border-bottom:1px solid var(--color-border)}.lm__group-label{padding:var(--spacing-2) var(--spacing-1);font-size:var(--font-size-xs);letter-spacing:.04em;color:var(--color-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lm__custom{border-top:1px solid var(--color-border);margin-top:var(--spacing-4);padding:var(--spacing-2)}.lm--closed .lm__custom{padding:var(--spacing-2) 0}.lm__custom--hidden{display:none}.lm--closed .lm__nav{padding-left:0;padding-right:0;scrollbar-gutter:auto;scrollbar-color:var(--color-border) transparent}.lm--closed .lm__nav::-webkit-scrollbar{width:4px;height:4px}.lm--closed .lm__nav::-webkit-scrollbar-track{background:transparent}.lm--closed .lm__nav::-webkit-scrollbar-thumb{background-color:var(--color-border);border-radius:999px}.lm--closed .lm__nav:hover::-webkit-scrollbar-thumb{background-color:var(--color-tertiary)}.lm__footer{margin-top:auto;border-top:1px solid var(--color-border);padding:var(--spacing-2) 0 0;display:flex;align-items:center;justify-content:center;gap:var(--spacing-2)}.lm--closed .lm__footer{flex-direction:column;justify-content:center}.lm__ctrl{width:32px;height:32px;border:1px solid var(--color-border);background:var(--color-body-bg);border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-body-color)}.lm__ctrl:hover{background:var(--color-tertiary)}.lm__toggle-icon{transform:rotate(180deg);transition:transform var(--transition-speed-base) var(--transition-timing)}.lm__toggle-icon--open{transform:rotate(0)}::slotted([slot="logo-open"]),::slotted([slot="toggle-closed"]){display:inline-flex;width:100%;height:100%}::slotted([slot="custom-open"]),::slotted([slot="custom-closed"]){display:block;width:100%}';var b=Object.defineProperty,w=Object.getOwnPropertyDescriptor,l=(d,e,t,o)=>{for(var i=o>1?void 0:o?w(e,t):e,s=d.length-1,r;s>=0;s--)(r=d[s])&&(i=(o?r(e,t,i):r(i))||i);return o&&i&&b(e,t,i),i};const u=68,_=248,x=500;function y(d){const e=new Set,t=o=>{o.forEach(i=>{e.add(i.id),i.children?.length&&t(i.children)})};return t(d),e}function m(d){const e=[];let t=null,o=0;return d.forEach(i=>{if(g(i)){t=null,e.push({id:i.id||`group-${o++}`,label:i.label?.trim()||null,items:i.items});return}t||(t={id:`group-${o++}`,label:null,items:[]},e.push(t)),t.items.push(i)}),e}function f(d){return d.map(e=>({id:e.id,label:e.label,disabled:e.disabled,active:e.active,iconName:e.iconName,badges:e.badges,data:e.data??e,children:e.children?.length?f(e.children):void 0}))}exports.LeftMenu=class extends n.LitElement{constructor(){super(...arguments),this.open=!1,this.openWidth=248,this.storageKey="logosphere-leftmenu-state",this.items=[],this.defaultExpandedIds=[],this.leading=!0,this._expandedIds=new Set,this._search="",this._searchExpandedIds=new Set,this._hasCustomOpen=!1,this._hasCustomClosed=!1,this._closedToggleHover=!1,this._currentOpenWidth=_,this._resizing=!1,this._isHydratingState=!1,this._resizeStartX=0,this._resizeStartWidth=_,this._onCustomOpenSlotChange=e=>{const t=e.target;this._hasCustomOpen=t.assignedElements({flatten:!0}).length>0},this._onCustomClosedSlotChange=e=>{const t=e.target;this._hasCustomClosed=t.assignedElements({flatten:!0}).length>0},this._handleSearchInput=e=>{const o=e.detail?.value;typeof o=="string"&&this._setSearch(o)},this._toggleOpen=()=>{const e=!this.open,t=e?this._currentOpenWidth:u;this.open=e,this._closedToggleHover=!1,this.dispatchEvent(new CustomEvent("toggle-change",{detail:{open:e,width:t,openWidth:this._currentOpenWidth,closedWidth:u},bubbles:!0,composed:!0}))},this._handleClosedToggleMouseEnter=()=>{this.open||(this._closedToggleHover=!0)},this._handleClosedToggleMouseLeave=()=>{this._closedToggleHover=!1},this._handleResizePointerDown=e=>{this.open&&(e.preventDefault(),e.stopPropagation(),this._resizing=!0,this._resizeStartX=e.clientX,this._resizeStartWidth=this._currentOpenWidth,window.addEventListener("pointermove",this._handleResizePointerMove),window.addEventListener("pointerup",this._handleResizePointerUp),window.addEventListener("pointercancel",this._handleResizePointerUp))},this._handleResizePointerMove=e=>{if(!this._resizing)return;const t=e.clientX-this._resizeStartX;this._currentOpenWidth=this._clampOpenWidth(this._resizeStartWidth+t)},this._handleResizePointerUp=()=>{this._resizing&&(this._resizing=!1,this._removeResizeListeners(),this.dispatchEvent(new CustomEvent("width-change",{detail:{width:this._currentOpenWidth},bubbles:!0,composed:!0})))},this._collapseAll=()=>{this._expandedIds=new Set,this._searchExpandedIds=new Set},this._handleTreeToggle=e=>{e.stopPropagation();const{item:t,expanded:o}=e.detail;o?this._expandedIds.add(t.id):this._expandedIds.delete(t.id),this._expandedIds=new Set(this._expandedIds)},this._handleTreeNodeClick=e=>{this.open||!e.detail.hasChildren||(this.open=!0,this._expandedIds.add(e.detail.item.id),this._expandedIds=new Set(this._expandedIds))},this._handleTreeItemClick=e=>{e.stopPropagation(),this.dispatchEvent(new CustomEvent("item-click",{detail:{item:e.detail.item.data??e.detail.item},bubbles:!0,composed:!0}))}}connectedCallback(){super.connectedCallback(),this._currentOpenWidth=this._clampOpenWidth(this.openWidth),this._loadPersistedState()}disconnectedCallback(){super.disconnectedCallback(),this._removeResizeListeners()}updated(e){this._isHydratingState||(e.has("openWidth")&&!this._resizing&&(this._currentOpenWidth=this._clampOpenWidth(this.openWidth)),e.has("open")&&this._persistState(),e.has("items")&&this.defaultExpandedIds.length&&(this._expandedIds=new Set(this.defaultExpandedIds)),(e.has("items")||e.has("open"))&&this._syncIconSlots())}_loadPersistedState(){if(!(typeof window>"u"))try{const e=window.localStorage.getItem(this.storageKey);if(!e)return;const t=JSON.parse(e);this._isHydratingState=!0,typeof t.open=="boolean"&&(this.open=t.open),this._isHydratingState=!1}catch{this._isHydratingState=!1}}_persistState(){if(!(typeof window>"u"))try{window.localStorage.setItem(this.storageKey,JSON.stringify({open:this.open}))}catch{}}_syncIconSlots(){const e=Array.from(this.querySelectorAll("[slot^='icon-']")),t=Array.from(this.shadowRoot?.querySelectorAll("logosphere-tree-menu")??[]);if(!t.length)return;const o=t.map(i=>{const s=i.getAttribute("data-group-id"),r=this._renderGroups().find(h=>h.id===s);return r?y(r.items):new Set});e.forEach(i=>{const r=(i.getAttribute("slot")??"").slice(5),h=o.findIndex(p=>p.has(r)),c=h>=0?t[h]:t[0];c&&i.parentElement!==c&&c.appendChild(i)})}_allItems(){return m(this.items).flatMap(e=>e.items)}_renderGroups(){return m(this.items)}_setSearch(e){if(this._search=e,!e){this._searchExpandedIds=new Set;return}const t=new Set,o=i=>{let s=!1;return i.forEach(r=>{const h=r.children??[],c=r.label.toLocaleLowerCase().includes(e.toLocaleLowerCase()),p=h.length?o(h):!1;p&&t.add(r.id),c&&h.length&&t.add(r.id),s=s||c||p}),s};o(this._allItems()),this._searchExpandedIds=t}_filterItems(e,t){if(!t)return e;const o=t.toLocaleLowerCase(),i=s=>{const r=(s.children??[]).map(i).filter(Boolean);return!s.label.toLocaleLowerCase().includes(o)&&r.length===0?null:{...s,children:r}};return e.map(i).filter(Boolean)}_clampOpenWidth(e){return Math.min(x,Math.max(_,Math.round(e)))}_removeResizeListeners(){window.removeEventListener("pointermove",this._handleResizePointerMove),window.removeEventListener("pointerup",this._handleResizePointerUp),window.removeEventListener("pointercancel",this._handleResizePointerUp)}_effectiveExpandedIds(){const e=new Set(this._expandedIds);return this._search&&this._searchExpandedIds.forEach(t=>e.add(t)),Array.from(e)}render(){const e=this.open,t=this._effectiveExpandedIds(),o=this._renderGroups().map(s=>({group:s,items:this._filterItems(s.items,this._search)})).filter(({items:s})=>s.length>0),i=e?this._currentOpenWidth:u;return n.html`
|
|
2
2
|
<aside
|
|
3
3
|
class="lm ${e?"lm--open":"lm--closed"} ${this._resizing?"lm--resizing":""}"
|
|
4
|
-
style=${`--lm-open-width:${this._currentOpenWidth}px; --lm-closed-width:${
|
|
4
|
+
style=${`--lm-open-width:${this._currentOpenWidth}px; --lm-closed-width:${u}px; width:${i}px;`}
|
|
5
5
|
@mouseenter=${this._handleClosedToggleMouseEnter}
|
|
6
6
|
@mouseleave=${this._handleClosedToggleMouseLeave}
|
|
7
7
|
>
|
|
@@ -14,7 +14,7 @@ var S = Object.defineProperty, C = Object.getOwnPropertyDescriptor, l = (e, t, o
|
|
|
14
14
|
(a = e[n]) && (i = (s ? a(t, o, i) : a(i)) || i);
|
|
15
15
|
return s && i && S(t, o, i), i;
|
|
16
16
|
};
|
|
17
|
-
const
|
|
17
|
+
const g = 68, u = 248, $ = 500;
|
|
18
18
|
function E(e) {
|
|
19
19
|
const t = /* @__PURE__ */ new Set(), o = (s) => {
|
|
20
20
|
s.forEach((i) => {
|
|
@@ -52,7 +52,7 @@ function f(e) {
|
|
|
52
52
|
}
|
|
53
53
|
let r = class extends x {
|
|
54
54
|
constructor() {
|
|
55
|
-
super(...arguments), this.open = !1, this.openWidth = 248, this.storageKey = "logosphere-leftmenu-state", this.items = [], this.defaultExpandedIds = [], this.leading = !0, this._expandedIds = /* @__PURE__ */ new Set(), this._search = "", this._searchExpandedIds = /* @__PURE__ */ new Set(), this._hasCustomOpen = !1, this._hasCustomClosed = !1, this._closedToggleHover = !1, this._currentOpenWidth =
|
|
55
|
+
super(...arguments), this.open = !1, this.openWidth = 248, this.storageKey = "logosphere-leftmenu-state", this.items = [], this.defaultExpandedIds = [], this.leading = !0, this._expandedIds = /* @__PURE__ */ new Set(), this._search = "", this._searchExpandedIds = /* @__PURE__ */ new Set(), this._hasCustomOpen = !1, this._hasCustomClosed = !1, this._closedToggleHover = !1, this._currentOpenWidth = u, this._resizing = !1, this._isHydratingState = !1, this._resizeStartX = 0, this._resizeStartWidth = u, this._onCustomOpenSlotChange = (e) => {
|
|
56
56
|
const t = e.target;
|
|
57
57
|
this._hasCustomOpen = t.assignedElements({ flatten: !0 }).length > 0;
|
|
58
58
|
}, this._onCustomClosedSlotChange = (e) => {
|
|
@@ -62,7 +62,19 @@ let r = class extends x {
|
|
|
62
62
|
const o = e.detail?.value;
|
|
63
63
|
typeof o == "string" && this._setSearch(o);
|
|
64
64
|
}, this._toggleOpen = () => {
|
|
65
|
-
|
|
65
|
+
const e = !this.open, t = e ? this._currentOpenWidth : g;
|
|
66
|
+
this.open = e, this._closedToggleHover = !1, this.dispatchEvent(
|
|
67
|
+
new CustomEvent("toggle-change", {
|
|
68
|
+
detail: {
|
|
69
|
+
open: e,
|
|
70
|
+
width: t,
|
|
71
|
+
openWidth: this._currentOpenWidth,
|
|
72
|
+
closedWidth: g
|
|
73
|
+
},
|
|
74
|
+
bubbles: !0,
|
|
75
|
+
composed: !0
|
|
76
|
+
})
|
|
77
|
+
);
|
|
66
78
|
}, this._handleClosedToggleMouseEnter = () => {
|
|
67
79
|
this.open || (this._closedToggleHover = !0);
|
|
68
80
|
}, this._handleClosedToggleMouseLeave = () => {
|
|
@@ -172,7 +184,7 @@ let r = class extends x {
|
|
|
172
184
|
return e.map(s).filter(Boolean);
|
|
173
185
|
}
|
|
174
186
|
_clampOpenWidth(e) {
|
|
175
|
-
return Math.min($, Math.max(
|
|
187
|
+
return Math.min($, Math.max(u, Math.round(e)));
|
|
176
188
|
}
|
|
177
189
|
_removeResizeListeners() {
|
|
178
190
|
window.removeEventListener("pointermove", this._handleResizePointerMove), window.removeEventListener("pointerup", this._handleResizePointerUp), window.removeEventListener("pointercancel", this._handleResizePointerUp);
|
|
@@ -182,11 +194,11 @@ let r = class extends x {
|
|
|
182
194
|
return this._search && this._searchExpandedIds.forEach((t) => e.add(t)), Array.from(e);
|
|
183
195
|
}
|
|
184
196
|
render() {
|
|
185
|
-
const e = this.open, t = this._effectiveExpandedIds(), o = this._renderGroups().map((i) => ({ group: i, items: this._filterItems(i.items, this._search) })).filter(({ items: i }) => i.length > 0), s = e ? this._currentOpenWidth :
|
|
197
|
+
const e = this.open, t = this._effectiveExpandedIds(), o = this._renderGroups().map((i) => ({ group: i, items: this._filterItems(i.items, this._search) })).filter(({ items: i }) => i.length > 0), s = e ? this._currentOpenWidth : g;
|
|
186
198
|
return d`
|
|
187
199
|
<aside
|
|
188
200
|
class="lm ${e ? "lm--open" : "lm--closed"} ${this._resizing ? "lm--resizing" : ""}"
|
|
189
|
-
style=${`--lm-open-width:${this._currentOpenWidth}px; --lm-closed-width:${
|
|
201
|
+
style=${`--lm-open-width:${this._currentOpenWidth}px; --lm-closed-width:${g}px; width:${s}px;`}
|
|
190
202
|
@mouseenter=${this._handleClosedToggleMouseEnter}
|
|
191
203
|
@mouseleave=${this._handleClosedToggleMouseLeave}
|
|
192
204
|
>
|
package/package.json
CHANGED