neatkit 0.15.4 → 0.16.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/dist/Sidebar.cjs CHANGED
@@ -1 +1 @@
1
- "use client";"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const l=require("react/jsx-runtime"),t=require("react"),R=require("./effects-D98vUn6N.cjs"),H=require("./reference-C2guRuR0.cjs"),P=require("./usePresence-Dm0mls5p.cjs"),z=require("./Button-BFzmvlPf.cjs"),U=require("./Text-DWYlIcPj.cjs"),ae=require("./useFocusTrap-CrMcAu8s.cjs"),oe=require("./useScrollLock-Dy8MZaSn.cjs"),ie=require("./aria-DM-xYEHQ.cjs"),le=require("./useFloatingPosition-DPVO2E8O.cjs"),ce=require("./Avatar-Belo7qAY.cjs"),ue=require("./Spinner-BE0F4y2S.cjs"),de=require("./Tooltip-B2rZmRCs.cjs"),fe=require("./units-BUvyiHxw.cjs");function be(s){const{label:n,onToggle:e,panelId:r,reference:b,side:u,sidebarOpen:i}=s;return l.jsx(z.Button,{ref:b,"aria-controls":r,"aria-expanded":i,"aria-haspopup":"dialog","aria-label":n,className:"nk-sidebar__fallback-trigger","data-side":u,icon:"burger",variant:"secondary",size:"large",onClick:e})}const q=new WeakMap;function Z(s){const n=q.get(s);if(n)return n;const e={listeners:new Set,owner:null,state:void 0};return q.set(s,e),e}function pe(s,n,e){const r=Z(s);return r.owner!==null&&r.owner!==n?!1:(r.owner=n,r.state=e,r.listeners.forEach(b=>b()),!0)}function he(s,n){const e=q.get(s);!e||e.owner!==n||(e.owner=null,e.state=void 0,e.listeners.forEach(r=>r()))}function me(s){var n;return s?(n=q.get(s))==null?void 0:n.state:void 0}function ge(s,n){if(!s)return()=>{};const e=Z(s);return e.listeners.add(n),()=>{e.listeners.delete(n)}}const ve=()=>{};function O(s){const n=R.useBoundary(s).boundaryElement,e=t.useCallback(b=>ge(n,b),[n]),r=t.useCallback(()=>me(n),[n]);return t.useSyncExternalStore(e,r,ve)}function D(s,n){return s==="both"||s===(n==="overlay"?"overlay":"inline")}const W=t.forwardRef(function(n,e){const{children:r,className:b,presentation:u="both",...i}=n,o=O("Sidebar.Footer");return D(u,o==null?void 0:o.presentation)?l.jsx("div",{...i,ref:e,className:["nk-sidebar__footer",b].filter(Boolean).join(" "),children:r}):null}),ye=t.forwardRef(function(n,e){const{"aria-label":r,"aria-labelledby":b,children:u,className:i,label:o,presentation:y="both",...p}=n,S=O("Sidebar.Group"),c=`${t.useId()}-label`,h=o!=null&&typeof o!="boolean"&&(typeof o!="string"||o.trim()!=="");if(!D(y,S==null?void 0:S.presentation))return null;const d=b??(r===void 0&&h?c:void 0),a=!!(r??d);return t.createElement(a?"nav":"div",{...p,ref:e,"aria-label":r,"aria-labelledby":d,className:["nk-sidebar__group",i].filter(Boolean).join(" ")},h?l.jsx(U.Text,{as:"h2",className:"nk-sidebar__group-label",id:c,size:"subtitle",weight:"medium",children:o}):null,l.jsx("ul",{className:"nk-sidebar__list",children:u}))}),Se=t.forwardRef(function(n,e){const{children:r,className:b,presentation:u="both",...i}=n,o=O("Sidebar.Header");return D(u,o==null?void 0:o.presentation)?l.jsx("div",{...i,ref:e,className:["nk-sidebar__header",b].filter(Boolean).join(" "),children:r}):null}),ke=t.forwardRef(function(n,e){const{active:r=!1,as:b,children:u,className:i,disabled:o=!1,icon:y,onClick:p,presentation:S="both",type:c,...h}=n,d=O("Sidebar.Item"),a=b??"button",f=a==="button",m=h,E=m.href!==void 0||m.to!==void 0;function v(k){if(o){k.preventDefault();return}p==null||p(k),d!=null&&d.open&&d.presentation==="overlay"&&!k.defaultPrevented&&d.requestOpenChange(!1,"item")}return D(S,d==null?void 0:d.presentation)?l.jsx("li",{className:"nk-sidebar__item-container",children:l.jsx(z.Button,{...h,ref:e,"aria-current":r?E?"page":"true":void 0,as:a,className:["nk-sidebar__item",i].filter(Boolean).join(" "),"data-active":r||void 0,disabled:o,fullWidth:!0,href:m.href,icon:y,onClick:v,shape:"rectangle",size:"small",textAlignment:"left",type:f?c??"button":c,variant:"ghost",children:l.jsx("span",{className:"nk-sidebar__item-label",children:u})})}):null}),Ee=1;function Ce(s){return s==null?void 0:s.ResizeObserver}function xe(s){return s==null?void 0:s.MutationObserver}function _e(){const[s,n]=t.useState(!1),e=t.useRef(null),r=t.useCallback(i=>{const o=i.scrollHeight-i.scrollTop-i.clientHeight;n(o>Ee)},[]),b=t.useCallback(i=>{var m;if((m=e.current)==null||m.call(e),e.current=null,!i)return;const o=i;r(o);function y(){r(o)}const p=o.ownerDocument.defaultView;p==null||p.addEventListener("resize",y);const S=Ce(p),c=S?new S(y):void 0;function h(){c==null||c.disconnect(),c==null||c.observe(o);for(const E of o.children)c==null||c.observe(E)}h();function d(E){E.some(k=>k.type==="childList")&&h(),y()}const a=xe(p),f=a?new a(d):void 0;f==null||f.observe(o,{attributeFilter:["class","hidden","style"],characterData:!0,childList:!0,subtree:!0}),e.current=()=>{p==null||p.removeEventListener("resize",y),c==null||c.disconnect(),f==null||f.disconnect()}},[r]),u=t.useCallback(i=>{r(i.currentTarget)},[r]);return{containerReference:b,contentBelow:s,handleScroll:u}}function je(s,n){for(const e of t.Children.toArray(s)){if(t.isValidElement(e)&&e.type===t.Fragment){const r=ee(e.props.children);r.bodyChildren.length>0&&n.bodyChildren.push(t.cloneElement(e,void 0,...r.bodyChildren)),r.footerChildren.length>0&&n.footerChildren.push(t.cloneElement(e,void 0,...r.footerChildren));continue}t.isValidElement(e)&&e.type===W?n.footerChildren.push(e):n.bodyChildren.push(e)}}function ee(s){const n={bodyChildren:[],footerChildren:[]};return je(s,n),n}function ne(s){const{"aria-label":n,"aria-labelledby":e,children:r,className:b,height:u,open:i,panelId:o,panelReference:y,presentation:p,side:S,state:c,style:h,width:d,...a}=s,{containerReference:f,contentBelow:m,handleScroll:E}=_e(),v=p==="overlay",{bodyChildren:k,footerChildren:I}=ee(r),L=n??(e===void 0?"Sidebar":void 0),T=v&&i;let j=h;return(d!==void 0||u!==void 0)&&(j={...h},u!==void 0&&(j["--nk-sidebar-height"]=u),d!==void 0&&(j["--nk-sidebar-width"]=d)),l.jsxs("aside",{...a,ref:y,"aria-hidden":v&&!i?!0:void 0,"aria-label":v&&!i?void 0:L,"aria-labelledby":v&&!i?void 0:e,"aria-modal":T?"true":void 0,className:["nk-sidebar",b].filter(Boolean).join(" "),"data-responsive":p==="pending"||void 0,"data-side":S,"data-state":c,"data-variant":v?"overlay":"inline",id:o,role:T?"dialog":void 0,style:j,tabIndex:v?-1:void 0,children:[l.jsx("div",{ref:f,className:"nk-sidebar__body","data-content-below":m||void 0,onScroll:E,children:k}),I]})}function Ne(s){const{boundaries:n,initialFocusReference:e,lockScroll:r,ownerDocument:b,panelReference:u,presenceState:i,restoreFocus:o,sidebar:y,side:p,...S}=s,{id:c,open:h,requestOpenChange:d}=y,a=t.useContext(P.FocusScopeContext),f=t.useRef(null),[m,E]=t.useState(null),v=R.useBoundary("Sidebar").boundaryElement,k=P.useOverlayLayer(!0,v),I=t.useCallback(B=>{f.current=B,u(B),E(B)},[u]);R.useIsomorphicLayoutEffect(()=>{m&&(m.inert=!h)},[h,m]);const L=t.useCallback(()=>{d(!1,"escape")},[d]),T=t.useCallback(()=>{d(!1,"outside")},[d]);P.useDismissableLayer({boundary:v,active:h,boundaries:n,dismissOnEscape:!0,dismissOnPointerDownOutside:!0,layerId:k.id,onEscapeDismiss:L,onPointerDownOutsideDismiss:T,ownerDocument:b});const j=ae.useFocusTrap({boundary:v,active:h,container:m,initialFocusReference:e??f,layerId:k.id,restoreFocus:o});return oe.useScrollLock(r&&h,b,v),l.jsx(P.FocusScopeContext.Provider,{value:h?j:a,children:l.jsx("div",{className:"nk-sidebar__overlay","data-side":p,"data-state":i,role:"presentation",style:{zIndex:k.zIndex},children:l.jsx(ne,{...S,open:h,panelId:c,panelReference:I,presentation:"overlay",side:p,state:i})})})}function Re(s){const{children:n}=s;if(n.type===t.Fragment)throw new Error("Sidebar.Trigger requires a single non-Fragment child");const e=O("Sidebar.Trigger"),r=n.props,b=H.getElementReference(n),u=e==null?void 0:e.registerTrigger,i=e==null?void 0:e.unregisterTrigger,o=t.useRef(null),y=t.useCallback(f=>{const m=o.current;m&&m!==f&&(i==null||i(m)),o.current=f,f&&(u==null||u(f)),H.assignElementReference(b,f)},[b,u,i]),p=t.useCallback(f=>{f.defaultPrevented||!e||e.requestOpenChange(!e.open,"trigger")},[e]);if(!e)return null;const{id:S,open:c,presentation:h,variant:d}=e,a=c&&h==="overlay";return t.cloneElement(n,le.resolveTriggerOverrides(r,{"aria-controls":a?ie.mergeIdentifiers(r["aria-controls"],S):r["aria-controls"],"aria-expanded":c,"aria-haspopup":r["aria-haspopup"]??"dialog",className:"nk-sidebar__trigger","data-sidebar-variant":d,onClick:p,ref:y}))}const Pe=t.forwardRef(function(n,e){const{actions:r,className:b,description:u,image:i,loading:o=!1,name:y,onClick:p,...S}=n,c=u!=null&&typeof u!="boolean",h=l.jsxs(l.Fragment,{children:[l.jsx(ce.Avatar,{alt:y,"aria-hidden":!0,className:"nk-sidebar__user-avatar",image:i}),l.jsxs("span",{className:"nk-sidebar__user-text",children:[l.jsx(U.Text,{as:"span",className:"nk-sidebar__user-name",children:y}),c?l.jsx(U.Text,{as:"span",className:"nk-sidebar__user-description",size:"caption",tone:"muted",children:u}):null]})]});return l.jsx("div",{...S,ref:e,className:["nk-sidebar__user",b].filter(Boolean).join(" "),children:o?l.jsx(ue.Spinner,{className:"nk-sidebar__user-spinner",size:16}):l.jsxs(l.Fragment,{children:[p?l.jsx("button",{className:"nk-sidebar__user-details",onClick:p,type:"button",children:h}):l.jsx("div",{className:"nk-sidebar__user-details",children:h}),r!==void 0&&r.length>0?l.jsx("div",{className:"nk-sidebar__user-actions",children:r.map(d=>{const{"aria-label":a,icon:f,label:m,...E}=d;return l.jsx(de.Tooltip2,{content:m,children:l.jsx(z.Button,{...E,"aria-label":a??m,className:"nk-sidebar__user-action",icon:f,shape:"rectangle",type:"button",variant:"ghost"})},m)})}):null]})})}),Te=()=>()=>{},X=()=>{};function Ie(s,n){const e=s==="responsive"?n:void 0,r=t.useSyncExternalStore((e==null?void 0:e.subscribe)??Te,(e==null?void 0:e.read)??X,X);return s!=="responsive"?s:r===void 0?"pending":r>=fe.breakpoint("medium")?"inline":"overlay"}const Le=32,Be=t.forwardRef(function(n,e){var Q;const{defaultOpen:r=!1,height:b,initialFocusReference:u,lockScroll:i=!0,onOpenChange:o,open:y,restoreFocus:p=!0,side:S="left",variant:c="responsive",width:h,...d}=n,a=R.useBoundary("Sidebar"),f=`${t.useId()}-sidebar`,m=t.useRef(Symbol("nk-sidebar")).current,E=t.useRef(null),v=Ie(c,a==null?void 0:a.width),k=y!==void 0,[I,L]=t.useState(r),[T,j]=t.useState(0),[B,re]=t.useState(!1),G=t.useRef(null),N=k?y:I,w=t.useRef(o);R.useIsomorphicLayoutEffect(()=>{w.current=o});const F=t.useCallback((g,C)=>{var x;N!==g&&(k||L(g),(x=w.current)==null||x.call(w,g,C))},[k,N]),V=t.useCallback(g=>{E.current=g,H.assignElementReference(e,g)},[e]),_=t.useMemo(()=>[E],[]),$=t.useCallback(g=>{_.push({current:g}),j(C=>C+1)},[_]),K=t.useCallback(g=>{const C=_.findIndex(x=>x.current===g);C>0&&_.splice(C,1),j(x=>Math.max(x-1,0))},[_]),te=t.useCallback(g=>{const C=G.current;if(C&&C!==g){const x=_.findIndex(se=>se.current===C);x>0&&_.splice(x,1)}G.current=g,g&&_.push({current:g})},[_]),A=t.useMemo(()=>({id:f,open:N,presentation:v,registerTrigger:$,requestOpenChange:F,unregisterTrigger:K,variant:c}),[N,f,v,$,F,K,c]);R.useIsomorphicLayoutEffect(()=>{const g=a==null?void 0:a.boundaryElement;if(!g)return;if(pe(g,m,A)===!1)throw new Error("A Boundary supports one Sidebar. Neatkit resolves Trigger, Group, and Item interactions against the single Sidebar published to the nearest Boundary, so give each Sidebar a Boundary of its own.")},[a==null?void 0:a.boundaryElement,m,A]),R.useIsomorphicLayoutEffect(()=>{const g=a==null?void 0:a.boundaryElement;if(g)return()=>he(g,m)},[a==null?void 0:a.boundaryElement,m]),t.useEffect(()=>{v==="inline"&&F(!1,"variant")},[v,F]),t.useEffect(()=>{var x;const g=(x=a==null?void 0:a.boundaryElement)==null?void 0:x.ownerDocument.defaultView;if(!g)return;const C=g.setTimeout(()=>re(!0),Le);return()=>g.clearTimeout(C)},[a==null?void 0:a.boundaryElement]);const M=P.usePresence(N&&v==="overlay"),Y=((Q=a==null?void 0:a.boundaryElement)==null?void 0:Q.ownerDocument)??(typeof document>"u"?null:document);if(v!=="overlay")return l.jsx(ne,{...d,height:b,open:!1,panelId:f,panelReference:V,presentation:v,side:S,width:h});const J=B&&T===0?l.jsx(P.Portal,{children:l.jsx(be,{label:`Open ${d["aria-label"]??"Sidebar"}`,onToggle:()=>F(!N,"trigger"),panelId:M.present?f:void 0,reference:te,side:S,sidebarOpen:N})}):null;return!M.present||!Y?J:l.jsxs(l.Fragment,{children:[J,l.jsx(P.Portal,{children:l.jsx(Ne,{...d,boundaries:_,initialFocusReference:u,lockScroll:i,ownerDocument:Y,panelReference:V,presenceState:M.state==="closing"?"closing":"open",restoreFocus:p,side:S,sidebar:A,width:h})})]})}),Fe=Object.assign(Be,{Footer:W,Group:ye,Header:Se,Item:ke,Trigger:Re,User:Pe});exports.default=Fe;
1
+ "use client";"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("react/jsx-runtime"),t=require("react"),R=require("./effects-D98vUn6N.cjs"),U=require("./reference-C2guRuR0.cjs"),T=require("./usePresence-Dm0mls5p.cjs"),z=require("./Button-ysPCQKRu.cjs"),G=require("./Text-DWYlIcPj.cjs"),ie=require("./useFocusTrap-CrMcAu8s.cjs"),oe=require("./useScrollLock-Dy8MZaSn.cjs"),le=require("./aria-DM-xYEHQ.cjs"),ce=require("./useFloatingPosition-DPVO2E8O.cjs"),de=require("./Avatar-Belo7qAY.cjs"),H=require("./Skeleton-CBS-MN5x.cjs"),ue=require("./Tooltip-B2rZmRCs.cjs"),fe=require("./units-BUvyiHxw.cjs");function be(s){const{label:n,onToggle:e,panelId:r,reference:b,side:d,sidebarOpen:l}=s;return o.jsx(z.Button,{ref:b,"aria-controls":r,"aria-expanded":l,"aria-haspopup":"dialog","aria-label":n,className:"nk-sidebar__fallback-trigger","data-side":d,icon:"burger",variant:"secondary",size:"large",onClick:e})}const q=new WeakMap;function W(s){const n=q.get(s);if(n)return n;const e={listeners:new Set,owner:null,state:void 0};return q.set(s,e),e}function pe(s,n,e){const r=W(s);return r.owner!==null&&r.owner!==n?!1:(r.owner=n,r.state=e,r.listeners.forEach(b=>b()),!0)}function he(s,n){const e=q.get(s);!e||e.owner!==n||(e.owner=null,e.state=void 0,e.listeners.forEach(r=>r()))}function ge(s){var n;return s?(n=q.get(s))==null?void 0:n.state:void 0}function me(s,n){if(!s)return()=>{};const e=W(s);return e.listeners.add(n),()=>{e.listeners.delete(n)}}const ve=()=>{};function F(s){const n=R.useBoundary(s).boundaryElement,e=t.useCallback(b=>me(n,b),[n]),r=t.useCallback(()=>ge(n),[n]);return t.useSyncExternalStore(e,r,ve)}function D(s,n){return s==="both"||s===(n==="overlay"?"overlay":"inline")}const ee=t.forwardRef(function(n,e){const{children:r,className:b,presentation:d="both",...l}=n,i=F("Sidebar.Footer");return D(d,i==null?void 0:i.presentation)?o.jsx("div",{...l,ref:e,className:["nk-sidebar__footer",b].filter(Boolean).join(" "),children:r}):null}),ye=t.forwardRef(function(n,e){const{"aria-label":r,"aria-labelledby":b,children:d,className:l,label:i,presentation:S="both",...p}=n,y=F("Sidebar.Group"),c=`${t.useId()}-label`,h=i!=null&&typeof i!="boolean"&&(typeof i!="string"||i.trim()!=="");if(!D(S,y==null?void 0:y.presentation))return null;const u=b??(r===void 0&&h?c:void 0),a=!!(r??u);return t.createElement(a?"nav":"div",{...p,ref:e,"aria-label":r,"aria-labelledby":u,className:["nk-sidebar__group",l].filter(Boolean).join(" ")},h?o.jsx(G.Text,{as:"h2",className:"nk-sidebar__group-label",id:c,size:"subtitle",weight:"medium",children:i}):null,o.jsx("ul",{className:"nk-sidebar__list",children:d}))}),Se=t.forwardRef(function(n,e){const{children:r,className:b,presentation:d="both",...l}=n,i=F("Sidebar.Header");return D(d,i==null?void 0:i.presentation)?o.jsx("div",{...l,ref:e,className:["nk-sidebar__header",b].filter(Boolean).join(" "),children:r}):null}),ke=t.forwardRef(function(n,e){const{active:r=!1,as:b,children:d,className:l,disabled:i=!1,icon:S,onClick:p,presentation:y="both",type:c,...h}=n,u=F("Sidebar.Item"),a=b??"button",f=a==="button",m=h,E=m.href!==void 0||m.to!==void 0;function v(k){if(i){k.preventDefault();return}p==null||p(k),u!=null&&u.open&&u.presentation==="overlay"&&!k.defaultPrevented&&u.requestOpenChange(!1,"item")}return D(y,u==null?void 0:u.presentation)?o.jsx("li",{className:"nk-sidebar__item-container",children:o.jsx(z.Button,{...h,ref:e,"aria-current":r?E?"page":"true":void 0,as:a,className:["nk-sidebar__item",l].filter(Boolean).join(" "),"data-active":r||void 0,disabled:i,fullWidth:!0,href:m.href,icon:S,onClick:v,shape:"rectangle",size:"small",textAlignment:"left",type:f?c??"button":c,variant:"ghost",children:o.jsx("span",{className:"nk-sidebar__item-label",children:d})})}):null}),xe=1;function Ee(s){return s==null?void 0:s.ResizeObserver}function _e(s){return s==null?void 0:s.MutationObserver}function Ce(){const[s,n]=t.useState(!1),e=t.useRef(null),r=t.useCallback(l=>{const i=l.scrollHeight-l.scrollTop-l.clientHeight;n(i>xe)},[]),b=t.useCallback(l=>{var m;if((m=e.current)==null||m.call(e),e.current=null,!l)return;const i=l;r(i);function S(){r(i)}const p=i.ownerDocument.defaultView;p==null||p.addEventListener("resize",S);const y=Ee(p),c=y?new y(S):void 0;function h(){c==null||c.disconnect(),c==null||c.observe(i);for(const E of i.children)c==null||c.observe(E)}h();function u(E){E.some(k=>k.type==="childList")&&h(),S()}const a=_e(p),f=a?new a(u):void 0;f==null||f.observe(i,{attributeFilter:["class","hidden","style"],characterData:!0,childList:!0,subtree:!0}),e.current=()=>{p==null||p.removeEventListener("resize",S),c==null||c.disconnect(),f==null||f.disconnect()}},[r]),d=t.useCallback(l=>{r(l.currentTarget)},[r]);return{containerReference:b,contentBelow:s,handleScroll:d}}function je(s,n){for(const e of t.Children.toArray(s)){if(t.isValidElement(e)&&e.type===t.Fragment){const r=ne(e.props.children);r.bodyChildren.length>0&&n.bodyChildren.push(t.cloneElement(e,void 0,...r.bodyChildren)),r.footerChildren.length>0&&n.footerChildren.push(t.cloneElement(e,void 0,...r.footerChildren));continue}t.isValidElement(e)&&e.type===ee?n.footerChildren.push(e):n.bodyChildren.push(e)}}function ne(s){const n={bodyChildren:[],footerChildren:[]};return je(s,n),n}function re(s){const{"aria-label":n,"aria-labelledby":e,children:r,className:b,height:d,open:l,panelId:i,panelReference:S,presentation:p,side:y,state:c,style:h,width:u,...a}=s,{containerReference:f,contentBelow:m,handleScroll:E}=Ce(),v=p==="overlay",{bodyChildren:k,footerChildren:I}=ne(r),B=n??(e===void 0?"Sidebar":void 0),P=v&&l;let j=h;return(u!==void 0||d!==void 0)&&(j={...h},d!==void 0&&(j["--nk-sidebar-height"]=d),u!==void 0&&(j["--nk-sidebar-width"]=u)),o.jsxs("aside",{...a,ref:S,"aria-hidden":v&&!l?!0:void 0,"aria-label":v&&!l?void 0:B,"aria-labelledby":v&&!l?void 0:e,"aria-modal":P?"true":void 0,className:["nk-sidebar",b].filter(Boolean).join(" "),"data-responsive":p==="pending"||void 0,"data-side":y,"data-state":c,"data-variant":v?"overlay":"inline",id:i,role:P?"dialog":void 0,style:j,tabIndex:v?-1:void 0,children:[o.jsx("div",{ref:f,className:"nk-sidebar__body","data-content-below":m||void 0,onScroll:E,children:k}),I]})}function Ne(s){const{boundaries:n,initialFocusReference:e,lockScroll:r,ownerDocument:b,panelReference:d,presenceState:l,restoreFocus:i,sidebar:S,side:p,...y}=s,{id:c,open:h,requestOpenChange:u}=S,a=t.useContext(T.FocusScopeContext),f=t.useRef(null),[m,E]=t.useState(null),v=R.useBoundary("Sidebar").boundaryElement,k=T.useOverlayLayer(!0,v),I=t.useCallback(L=>{f.current=L,d(L),E(L)},[d]);R.useIsomorphicLayoutEffect(()=>{m&&(m.inert=!h)},[h,m]);const B=t.useCallback(()=>{u(!1,"escape")},[u]),P=t.useCallback(()=>{u(!1,"outside")},[u]);T.useDismissableLayer({boundary:v,active:h,boundaries:n,dismissOnEscape:!0,dismissOnPointerDownOutside:!0,layerId:k.id,onEscapeDismiss:B,onPointerDownOutsideDismiss:P,ownerDocument:b});const j=ie.useFocusTrap({boundary:v,active:h,container:m,initialFocusReference:e??f,layerId:k.id,restoreFocus:i});return oe.useScrollLock(r&&h,b,v),o.jsx(T.FocusScopeContext.Provider,{value:h?j:a,children:o.jsx("div",{className:"nk-sidebar__overlay","data-side":p,"data-state":l,role:"presentation",style:{zIndex:k.zIndex},children:o.jsx(re,{...y,open:h,panelId:c,panelReference:I,presentation:"overlay",side:p,state:l})})})}function Re(s){const{children:n}=s;if(n.type===t.Fragment)throw new Error("Sidebar.Trigger requires a single non-Fragment child");const e=F("Sidebar.Trigger"),r=n.props,b=U.getElementReference(n),d=e==null?void 0:e.registerTrigger,l=e==null?void 0:e.unregisterTrigger,i=t.useRef(null),S=t.useCallback(f=>{const m=i.current;m&&m!==f&&(l==null||l(m)),i.current=f,f&&(d==null||d(f)),U.assignElementReference(b,f)},[b,d,l]),p=t.useCallback(f=>{f.defaultPrevented||!e||e.requestOpenChange(!e.open,"trigger")},[e]);if(!e)return null;const{id:y,open:c,presentation:h,variant:u}=e,a=c&&h==="overlay";return t.cloneElement(n,ce.resolveTriggerOverrides(r,{"aria-controls":a?le.mergeIdentifiers(r["aria-controls"],y):r["aria-controls"],"aria-expanded":c,"aria-haspopup":r["aria-haspopup"]??"dialog",className:"nk-sidebar__trigger","data-sidebar-variant":u,onClick:p,ref:S}))}const Te=t.forwardRef(function(n,e){const{actions:r,className:b,description:d,image:l,loading:i=!1,name:S,onClick:p,...y}=n,c=d!=null&&typeof d!="boolean";if(i)return o.jsx("div",{...y,ref:e,className:["nk-sidebar__user",b].filter(Boolean).join(" "),children:o.jsxs("div",{"aria-label":"Loading user",className:"nk-sidebar__user-details",role:"status",children:[o.jsx(H.Skeleton,{className:"nk-sidebar__user-avatar",height:"var(--nk-space-32)",shape:"ellipse",width:"var(--nk-space-32)"}),o.jsxs("div",{className:"nk-sidebar__user-text",style:{gap:"var(--nk-space-8)"},children:[o.jsx(H.Skeleton,{height:"var(--nk-space-16)",width:"70%"}),c?o.jsx(H.Skeleton,{height:"var(--nk-space-12)",width:"50%"}):null]})]})});const h=o.jsxs(o.Fragment,{children:[o.jsx(de.Avatar,{alt:S,"aria-hidden":!0,className:"nk-sidebar__user-avatar",image:l}),o.jsxs("span",{className:"nk-sidebar__user-text",children:[o.jsx(G.Text,{as:"span",className:"nk-sidebar__user-name",children:S}),c?o.jsx(G.Text,{as:"span",className:"nk-sidebar__user-description",size:"caption",tone:"muted",children:d}):null]})]});return o.jsxs("div",{...y,ref:e,className:["nk-sidebar__user",b].filter(Boolean).join(" "),children:[p?o.jsx("button",{className:"nk-sidebar__user-details",onClick:p,type:"button",children:h}):o.jsx("div",{className:"nk-sidebar__user-details",children:h}),r!=null&&r.length?o.jsx("div",{className:"nk-sidebar__user-actions",children:r.map(({"aria-label":u,icon:a,label:f,...m})=>o.jsx(ue.Tooltip2,{content:f,children:o.jsx(z.Button,{...m,"aria-label":u??f,className:"nk-sidebar__user-action",icon:a,shape:"rectangle",type:"button",variant:"ghost"})},f))}):null]})}),Pe=()=>()=>{},Z=()=>{};function Ie(s,n){const e=s==="responsive"?n:void 0,r=t.useSyncExternalStore((e==null?void 0:e.subscribe)??Pe,(e==null?void 0:e.read)??Z,Z);return s!=="responsive"?s:r===void 0?"pending":r>=fe.breakpoint("medium")?"inline":"overlay"}const Be=32,Le=t.forwardRef(function(n,e){var X;const{defaultOpen:r=!1,height:b,initialFocusReference:d,lockScroll:l=!0,onOpenChange:i,open:S,restoreFocus:p=!0,side:y="left",variant:c="responsive",width:h,...u}=n,a=R.useBoundary("Sidebar"),f=`${t.useId()}-sidebar`,m=t.useRef(Symbol("nk-sidebar")).current,E=t.useRef(null),v=Ie(c,a==null?void 0:a.width),k=S!==void 0,[I,B]=t.useState(r),[P,j]=t.useState(0),[L,te]=t.useState(!1),V=t.useRef(null),N=k?S:I,w=t.useRef(i);R.useIsomorphicLayoutEffect(()=>{w.current=i});const O=t.useCallback((g,x)=>{var _;N!==g&&(k||B(g),(_=w.current)==null||_.call(w,g,x))},[k,N]),$=t.useCallback(g=>{E.current=g,U.assignElementReference(e,g)},[e]),C=t.useMemo(()=>[E],[]),K=t.useCallback(g=>{C.push({current:g}),j(x=>x+1)},[C]),Y=t.useCallback(g=>{const x=C.findIndex(_=>_.current===g);x>0&&C.splice(x,1),j(_=>Math.max(_-1,0))},[C]),se=t.useCallback(g=>{const x=V.current;if(x&&x!==g){const _=C.findIndex(ae=>ae.current===x);_>0&&C.splice(_,1)}V.current=g,g&&C.push({current:g})},[C]),A=t.useMemo(()=>({id:f,open:N,presentation:v,registerTrigger:K,requestOpenChange:O,unregisterTrigger:Y,variant:c}),[N,f,v,K,O,Y,c]);R.useIsomorphicLayoutEffect(()=>{const g=a==null?void 0:a.boundaryElement;if(!g)return;if(pe(g,m,A)===!1)throw new Error("A Boundary supports one Sidebar. Neatkit resolves Trigger, Group, and Item interactions against the single Sidebar published to the nearest Boundary, so give each Sidebar a Boundary of its own.")},[a==null?void 0:a.boundaryElement,m,A]),R.useIsomorphicLayoutEffect(()=>{const g=a==null?void 0:a.boundaryElement;if(g)return()=>he(g,m)},[a==null?void 0:a.boundaryElement,m]),t.useEffect(()=>{v==="inline"&&O(!1,"variant")},[v,O]),t.useEffect(()=>{var _;const g=(_=a==null?void 0:a.boundaryElement)==null?void 0:_.ownerDocument.defaultView;if(!g)return;const x=g.setTimeout(()=>te(!0),Be);return()=>g.clearTimeout(x)},[a==null?void 0:a.boundaryElement]);const M=T.usePresence(N&&v==="overlay"),J=((X=a==null?void 0:a.boundaryElement)==null?void 0:X.ownerDocument)??(typeof document>"u"?null:document);if(v!=="overlay")return o.jsx(re,{...u,height:b,open:!1,panelId:f,panelReference:$,presentation:v,side:y,width:h});const Q=L&&P===0?o.jsx(T.Portal,{children:o.jsx(be,{label:`Open ${u["aria-label"]??"Sidebar"}`,onToggle:()=>O(!N,"trigger"),panelId:M.present?f:void 0,reference:se,side:y,sidebarOpen:N})}):null;return!M.present||!J?Q:o.jsxs(o.Fragment,{children:[Q,o.jsx(T.Portal,{children:o.jsx(Ne,{...u,boundaries:C,initialFocusReference:d,lockScroll:l,ownerDocument:J,panelReference:$,presenceState:M.state==="closing"?"closing":"open",restoreFocus:p,side:y,sidebar:A,width:h})})]})}),Oe=Object.assign(Le,{Footer:ee,Group:ye,Header:Se,Item:ke,Trigger:Re,User:Te});exports.default=Oe;