neatkit 0.10.0 → 0.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.
Files changed (80) hide show
  1. package/dist/Boundary.cjs +1 -1
  2. package/dist/Boundary.js +191 -120
  3. package/dist/{Button-CVe9T_Zw.cjs → Button-DtrX4X-s.cjs} +1 -1
  4. package/dist/{Button-D6rXvcqq.js → Button-LmEHdRkW.js} +1 -1
  5. package/dist/Button.cjs +1 -1
  6. package/dist/Button.js +1 -1
  7. package/dist/Checkbox.cjs +1 -1
  8. package/dist/Checkbox.js +2 -2
  9. package/dist/Field.cjs +1 -1
  10. package/dist/Field.js +57 -62
  11. package/dist/Icon-CMSHMSDJ.cjs +1 -0
  12. package/dist/{Icon-CxK1wlGk.js → Icon-NT3kRJYz.js} +275 -94
  13. package/dist/Icon.cjs +1 -1
  14. package/dist/Icon.js +1 -1
  15. package/dist/Input.cjs +1 -1
  16. package/dist/Input.js +2 -2
  17. package/dist/Markdown.cjs +1 -1
  18. package/dist/Markdown.js +1 -1
  19. package/dist/Modal.cjs +1 -1
  20. package/dist/Modal.js +4 -4
  21. package/dist/PinInput.cjs +1 -1
  22. package/dist/PinInput.js +1 -1
  23. package/dist/Popover.cjs +1 -1
  24. package/dist/Popover.js +117 -119
  25. package/dist/Radio.cjs +1 -1
  26. package/dist/Radio.js +1 -1
  27. package/dist/Select.cjs +1 -1
  28. package/dist/Select.js +12 -11
  29. package/dist/Sidebar.cjs +1 -1
  30. package/dist/Sidebar.js +373 -324
  31. package/dist/Switch.cjs +1 -1
  32. package/dist/Switch.js +1 -1
  33. package/dist/{Table-BqWBgMTU.cjs → Table-Bjw9lUKS.cjs} +1 -1
  34. package/dist/{Table-DutHfiXR.js → Table-GeoE4h-u.js} +2 -2
  35. package/dist/Table.cjs +1 -1
  36. package/dist/Table.js +1 -1
  37. package/dist/TextArea.cjs +1 -1
  38. package/dist/TextArea.js +1 -1
  39. package/dist/Tooltip-CpyROf6x.js +225 -0
  40. package/dist/Tooltip-DDPh_YFO.cjs +1 -0
  41. package/dist/Tooltip.cjs +1 -1
  42. package/dist/Tooltip.js +1 -1
  43. package/dist/aria-Bv-xVREf.js +17 -0
  44. package/dist/aria-DM-xYEHQ.cjs +1 -0
  45. package/dist/components/Boundary/hooks/useDocumentBackground.d.ts +28 -0
  46. package/dist/components/Icon/icons/AppleIcon.d.ts +11 -0
  47. package/dist/components/Icon/icons/BingIcon.d.ts +11 -0
  48. package/dist/components/Icon/icons/FacebookIcon.d.ts +11 -0
  49. package/dist/components/Icon/icons/GoogleIcon.d.ts +11 -0
  50. package/dist/components/Icon/icons/InstagramIcon.d.ts +11 -0
  51. package/dist/components/Icon/icons/MicrosoftIcon.d.ts +11 -0
  52. package/dist/components/Icon/icons/TwitterIcon.d.ts +11 -0
  53. package/dist/components/Icon/utils/registry.d.ts +7 -0
  54. package/dist/components/PinInput/PinInput.d.ts +1 -1
  55. package/dist/components/Radio/Radio.d.ts +1 -1
  56. package/dist/components/Sidebar/components/SidebarFallbackTrigger.d.ts +32 -0
  57. package/dist/components/Sidebar/components/SidebarPanel.d.ts +1 -1
  58. package/dist/components/Sidebar/components/SidebarTrigger.d.ts +4 -0
  59. package/dist/effects-D98vUn6N.cjs +1 -0
  60. package/dist/effects-DGbA6Q2O.js +18 -0
  61. package/dist/style.css +1 -1
  62. package/dist/useFloatingPosition-DQgw-w_Z.cjs +1 -0
  63. package/dist/useFloatingPosition-MGoyautY.js +57 -0
  64. package/dist/{useFocusTrap-C0IcCdNf.js → useFocusTrap-BxPazAL6.js} +1 -1
  65. package/dist/{useFocusTrap-gAK_402D.cjs → useFocusTrap-CrMcAu8s.cjs} +1 -1
  66. package/dist/{usePresence-CqegYqy4.js → usePresence-BTRY1_l-.js} +47 -56
  67. package/dist/usePresence-Dm0mls5p.cjs +1 -0
  68. package/dist/utils/aria.d.ts +4 -5
  69. package/dist/utils/trigger.d.ts +46 -0
  70. package/package.json +1 -1
  71. package/dist/Icon-BIBzgznI.cjs +0 -1
  72. package/dist/Tooltip-CCuE-hfp.cjs +0 -1
  73. package/dist/Tooltip-CeyRKNv4.js +0 -231
  74. package/dist/aria-Bntn6ad_.cjs +0 -1
  75. package/dist/aria-CeA9QfD1.js +0 -15
  76. package/dist/effects-D5CWf-Pl.js +0 -8
  77. package/dist/effects-D85L_7zM.cjs +0 -1
  78. package/dist/useFloatingPosition-Dq8xpr3E.js +0 -27
  79. package/dist/useFloatingPosition-g5kXywoB.cjs +0 -1
  80. package/dist/usePresence-B5RYv4e1.cjs +0 -1
package/dist/Select.cjs CHANGED
@@ -1 +1 @@
1
- "use client";"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const d=require("react/jsx-runtime"),r=require("react"),S=require("./usePresence-B5RYv4e1.cjs"),U=require("./aria-Bntn6ad_.cjs"),ye=require("./reference-C2guRuR0.cjs"),q=require("./Icon-BIBzgznI.cjs"),xe=require("./useAnchoredPosition-D7GRFzoX.cjs");function Ie(t){const{form:n,onReset:s,resetValue:a,triggerReference:o}=t,l=r.useRef(null);return r.useEffect(()=>{var u;const i=(u=o.current)==null?void 0:u.form;if(!i)return;function h(){const b=l.current;if(b){const y=Array.from(b.options),g=y.find(x=>x.value===a)??y[0];y.forEach(x=>{x.defaultSelected=x===g})}s()}return i.addEventListener("reset",h),()=>i.removeEventListener("reset",h)},[n,s,a,o]),l}const H=8,z=4,ge=160,ke=72;function we(t,n,s){const a=s.bottom-t.bottom-z-H,o=t.top-s.top-z-H,l=a<ge&&o>a,i=Math.max(ke,l?o:a),h=Math.max(t.width,(n==null?void 0:n.width)??t.width),u=s.left+H,b=Math.min(Math.max(u,t.left),Math.max(u,s.right-H-h)),y=l?Math.max(s.top+H,t.top-z-Math.min((n==null?void 0:n.height)??i,i)):t.bottom+z;return{left:b,maxHeight:i,minWidth:t.width,top:y}}function Ee(t,n,s,a){const o=r.useCallback(l=>{const{panelBounds:i,triggerBounds:h,visibleBounds:u}=l;return we(h,i,u)},[]);return xe.useAnchoredPosition({active:t,boundary:a,fit:o,panel:s,trigger:n})}const Re=500;function _e(t){const n=r.useRef(""),s=r.useRef(null),a=r.useRef(null);return r.useEffect(()=>()=>{const o=a.current;o&&s.current!==null&&o.clearTimeout(s.current)},[]),r.useCallback(o=>{var u;const l=(u=t.current)==null?void 0:u.ownerDocument.defaultView;if(!l)return null;a.current=l;const i=n.current+o,h=Array.from(i).every(b=>b===o);return n.current=h?o:i,s.current!==null&&l.clearTimeout(s.current),s.current=l.setTimeout(()=>{n.current="",s.current=null},Re),n.current},[t])}function Q(t,n,s){if(t.length===0)return-1;for(let a=1;a<=t.length;a+=1){const o=(n+s*a+t.length)%t.length;if(!t[o].disabled)return o}return-1}function Oe(t,n,s){for(let a=1;a<=t.length;a+=1){const o=(s+a+t.length)%t.length,l=t[o];if(!l.disabled&&l.label.toLocaleLowerCase().startsWith(n))return o}return-1}function Se(t){const n=new Set;t.forEach(s=>{if(n.has(s.value))throw new Error("Select option values must be unique");n.add(s.value)})}function De(t){const{active:n,closeOnEscape:s,closeOnOutsideInteraction:a,highlightedIndex:o,id:l,listboxReference:i,onEscapeDismiss:h,onEscapeKeyDown:u,onHighlight:b,onOutsideDismiss:y,onPointerDownOutside:g,onSelect:x,options:k,ownerDocument:C,position:R,selectedValue:_,state:D,triggerReference:V}=t,m=r.useRef(null),W=S.useBoundary("Select").boundaryElement,O=S.useOverlayLayer(!0,W),$=r.useMemo(()=>[V,m],[V]),G=r.useCallback(f=>{m.current=f,i(f)},[i]);return S.useDismissableLayer({active:n,boundaries:$,boundary:W,dismissOnEscape:s,dismissOnPointerDownOutside:a,layerId:O.id,onEscapeDismiss:h,onEscapeKeyDown:u,onPointerDownOutside:g,onPointerDownOutsideDismiss:y,ownerDocument:C}),d.jsx("div",{"aria-hidden":n?void 0:!0,"aria-labelledby":l,className:"nk-select__listbox","data-state":D,id:`${l}-listbox`,ref:G,role:"listbox",style:R?{left:R.left,maxHeight:R.maxHeight,minWidth:R.minWidth,top:R.top,zIndex:O.zIndex}:{visibility:"hidden",zIndex:O.zIndex},children:k.map((f,N)=>d.jsxs("div",{"aria-disabled":f.disabled||void 0,"aria-selected":f.value===_,className:"nk-select__option","data-highlighted":N===o||void 0,"data-selected":f.value===_||void 0,id:`${l}-option-${N}`,onPointerDown:X=>{X.preventDefault(),f.disabled||x(f)},onPointerMove:()=>{f.disabled||b(N)},role:"option",children:[f.icon?d.jsx(q.Icon,{type:f.icon}):null,d.jsx("span",{className:"nk-select__option-label",children:f.label}),f.value===_?d.jsx(q.Icon,{className:"nk-select__check",type:"checkmark"}):null]},f.value))})}function je(t,n,s){n.current=t,ye.assignElementReference(s,t)}function Le(t){var B;const{"aria-invalid":n,className:s,closeOnEscape:a=!0,closeOnOutsideInteraction:o=!0,defaultValue:l="",disabled:i=!1,displayOverride:h,form:u,forwardedReference:b,id:y,invalid:g=!1,name:x,onChange:k,onClick:C,onEscapeKeyDown:R,onKeyDown:_,onOpenChange:D,onPointerDownOutside:V,options:m,placeholder:W,required:O=!1,style:$,value:G,width:f,...N}=t;Se(m);const X=r.useId(),j=y??X,I=r.useRef(null),[A,te]=r.useState(null),[v,ne]=r.useState(!1),[w,T]=r.useState(-1),[se,J]=r.useState(l),L=G!==void 0,P=L?G:se,ae=m.find(e=>e.value===P),le=g||U.hasInvalidState(n),ie=U.resolveAriaInvalid(g,n),Y=S.usePresence(v),M=((B=I.current)==null?void 0:B.ownerDocument)??(typeof document>"u"?null:document),re=S.useBoundary("Select").boundaryElement,oe=Ee(Y.present,I.current,A,re),ce=_e(I),de=f===void 0?$:{...$,width:f},K=h??ae,ue=r.useCallback(e=>je(e,I,b),[b]),p=r.useCallback(e=>{v!==e&&(ne(e),D==null||D(e))},[D,v]),fe=r.useCallback(()=>{L||J(l),p(!1)},[l,L,p]),me=Ie({form:u,onReset:fe,resetValue:L?P:l,triggerReference:I}),F=r.useCallback((e=1)=>{const c=m.findIndex(ee=>ee.value===P&&!ee.disabled),E=e===1?-1:m.length;T(c>=0?c:Q(m,E,e)),p(!0)},[m,P,p]),Z=r.useCallback(e=>{var c;i||e.disabled||(L||J(e.value),p(!1),(c=I.current)==null||c.focus(),k==null||k(e.value))},[i,L,k,p]),he=r.useCallback(()=>{var e;p(!1),(e=I.current)==null||e.focus()},[p]),ve=r.useCallback(()=>{p(!1)},[p]);function pe(e){C==null||C(e),!(e.defaultPrevented||i)&&(v?p(!1):F())}function be(e){if(_==null||_(e),!(e.defaultPrevented||i)){if(e.key==="ArrowDown"||e.key==="ArrowUp"){e.preventDefault();const c=e.key==="ArrowDown"?1:-1;v?T(E=>Q(m,E,c)):F(c);return}if(e.key==="Home"||e.key==="End"){if(e.preventDefault(),!v)F(e.key==="Home"?1:-1);else{const c=e.key==="Home"?1:-1,E=c===1?-1:m.length;T(Q(m,E,c))}return}if(e.key==="Enter"||e.key===" "){e.preventDefault();const c=m[w];v&&c?Z(c):v||F();return}if(e.key==="Tab"){p(!1);return}if(e.key.length===1&&!e.altKey&&!e.ctrlKey&&!e.metaKey){const c=ce(e.key.toLocaleLowerCase());if(c===null)return;const E=Oe(m,c,w);E>=0&&(e.preventDefault(),v||p(!0),T(E))}}}return r.useEffect(()=>{i&&p(!1)},[i,p]),r.useEffect(()=>{var e;if(v&&w>=0){const c=M==null?void 0:M.getElementById(`${j}-option-${w}`);c&&(A!=null&&A.contains(c))&&((e=c.scrollIntoView)==null||e.call(c,{block:"nearest"}))}},[w,j,A,v]),d.jsxs("span",{className:["nk-select",s].filter(Boolean).join(" "),"data-disabled":i||void 0,"data-invalid":le||void 0,"data-mode":"custom","data-open":v||void 0,style:de,children:[d.jsxs("button",{...N,ref:ue,"aria-activedescendant":v&&w>=0?`${j}-option-${w}`:void 0,"aria-controls":`${j}-listbox`,"aria-expanded":v,"aria-haspopup":"listbox","aria-invalid":ie,"aria-required":O||void 0,"aria-autocomplete":"none",className:"nk-select__trigger",disabled:i,form:u,id:j,onClick:pe,onKeyDown:be,role:"combobox",type:"button",children:[K?d.jsxs("span",{className:"nk-select__value",children:[K.icon?d.jsx(q.Icon,{type:K.icon}):null,d.jsx("span",{className:"nk-select__value-label",children:K.label})]}):d.jsx("span",{className:"nk-select__placeholder",children:W}),d.jsx(q.Icon,{className:"nk-select__icon",type:"chevron-down"})]}),x||O?d.jsxs("select",{ref:me,"aria-hidden":"true",className:"nk-select__form-control",disabled:i,form:u,name:x,onChange:()=>{},onInvalid:e=>{var c;e.preventDefault(),(c=I.current)==null||c.focus()},required:O,tabIndex:-1,value:P,children:[d.jsx("option",{value:""}),m.map(e=>d.jsx("option",{disabled:e.disabled,value:e.value,children:e.label},e.value))]}):null,Y.present&&M?d.jsx(S.Portal,{children:d.jsx(De,{active:v,closeOnEscape:a,closeOnOutsideInteraction:o,highlightedIndex:w,id:j,listboxReference:te,onEscapeDismiss:he,onEscapeKeyDown:R,onHighlight:T,onOutsideDismiss:ve,onPointerDownOutside:V,onSelect:Z,options:m,ownerDocument:M,position:oe,selectedValue:P,state:Y.state==="closing"?"closing":"open",triggerReference:I})}):null]})}function Pe(t){const{"aria-invalid":n,children:s,className:a,defaultValue:o,disabled:l=!1,forwardedReference:i,invalid:h=!1,placeholder:u,style:b,value:y,...g}=t,x=U.resolveAriaInvalid(h,n),k=h||U.hasInvalidState(n);return d.jsxs("span",{className:["nk-select",a].filter(Boolean).join(" "),"data-disabled":l||void 0,"data-invalid":k||void 0,"data-mode":"native",style:b,children:[d.jsxs("select",{...g,ref:i,"aria-invalid":x,className:"nk-select__control",defaultValue:y===void 0?o??(u!==void 0?"":void 0):void 0,disabled:l,value:y,children:[u!==void 0?d.jsx("option",{disabled:!0,value:"",children:u}):null,s]}),d.jsx(q.Icon,{className:"nk-select__icon",type:"chevron-down"})]})}const Ce=r.forwardRef(function(n,s){const{options:a}=n;return S.useBoundary("Select"),a!==void 0?d.jsx(Le,{...n,forwardedReference:s}):d.jsx(Pe,{...n,forwardedReference:s})});exports.default=Ce;
1
+ "use client";"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const d=require("react/jsx-runtime"),r=require("react"),J=require("./effects-D98vUn6N.cjs"),z=require("./aria-DM-xYEHQ.cjs"),xe=require("./reference-C2guRuR0.cjs"),H=require("./Icon-CMSHMSDJ.cjs"),U=require("./usePresence-Dm0mls5p.cjs"),Ie=require("./useAnchoredPosition-D7GRFzoX.cjs");function ge(t){const{form:n,onReset:s,resetValue:a,triggerReference:o}=t,l=r.useRef(null);return r.useEffect(()=>{var u;const i=(u=o.current)==null?void 0:u.form;if(!i)return;function h(){const b=l.current;if(b){const y=Array.from(b.options),g=y.find(x=>x.value===a)??y[0];y.forEach(x=>{x.defaultSelected=x===g})}s()}return i.addEventListener("reset",h),()=>i.removeEventListener("reset",h)},[n,s,a,o]),l}const M=8,F=4,ke=160,we=72;function Ee(t,n,s){const a=s.bottom-t.bottom-F-M,o=t.top-s.top-F-M,l=a<ke&&o>a,i=Math.max(we,l?o:a),h=Math.max(t.width,(n==null?void 0:n.width)??t.width),u=s.left+M,b=Math.min(Math.max(u,t.left),Math.max(u,s.right-M-h)),y=l?Math.max(s.top+M,t.top-F-Math.min((n==null?void 0:n.height)??i,i)):t.bottom+F;return{left:b,maxHeight:i,minWidth:t.width,top:y}}function Re(t,n,s,a){const o=r.useCallback(l=>{const{panelBounds:i,triggerBounds:h,visibleBounds:u}=l;return Ee(h,i,u)},[]);return Ie.useAnchoredPosition({active:t,boundary:a,fit:o,panel:s,trigger:n})}const _e=500;function Oe(t){const n=r.useRef(""),s=r.useRef(null),a=r.useRef(null);return r.useEffect(()=>()=>{const o=a.current;o&&s.current!==null&&o.clearTimeout(s.current)},[]),r.useCallback(o=>{var u;const l=(u=t.current)==null?void 0:u.ownerDocument.defaultView;if(!l)return null;a.current=l;const i=n.current+o,h=Array.from(i).every(b=>b===o);return n.current=h?o:i,s.current!==null&&l.clearTimeout(s.current),s.current=l.setTimeout(()=>{n.current="",s.current=null},_e),n.current},[t])}function Q(t,n,s){if(t.length===0)return-1;for(let a=1;a<=t.length;a+=1){const o=(n+s*a+t.length)%t.length;if(!t[o].disabled)return o}return-1}function Se(t,n,s){for(let a=1;a<=t.length;a+=1){const o=(s+a+t.length)%t.length,l=t[o];if(!l.disabled&&l.label.toLocaleLowerCase().startsWith(n))return o}return-1}function De(t){const n=new Set;t.forEach(s=>{if(n.has(s.value))throw new Error("Select option values must be unique");n.add(s.value)})}function je(t){const{active:n,closeOnEscape:s,closeOnOutsideInteraction:a,highlightedIndex:o,id:l,listboxReference:i,onEscapeDismiss:h,onEscapeKeyDown:u,onHighlight:b,onOutsideDismiss:y,onPointerDownOutside:g,onSelect:x,options:k,ownerDocument:P,position:R,selectedValue:_,state:S,triggerReference:q}=t,m=r.useRef(null),V=J.useBoundary("Select").boundaryElement,O=U.useOverlayLayer(!0,V),W=r.useMemo(()=>[q,m],[q]),$=r.useCallback(f=>{m.current=f,i(f)},[i]);return U.useDismissableLayer({active:n,boundaries:W,boundary:V,dismissOnEscape:s,dismissOnPointerDownOutside:a,layerId:O.id,onEscapeDismiss:h,onEscapeKeyDown:u,onPointerDownOutside:g,onPointerDownOutsideDismiss:y,ownerDocument:P}),d.jsx("div",{"aria-hidden":n?void 0:!0,"aria-labelledby":l,className:"nk-select__listbox","data-state":S,id:`${l}-listbox`,ref:$,role:"listbox",style:R?{left:R.left,maxHeight:R.maxHeight,minWidth:R.minWidth,top:R.top,zIndex:O.zIndex}:{visibility:"hidden",zIndex:O.zIndex},children:k.map((f,C)=>d.jsxs("div",{"aria-disabled":f.disabled||void 0,"aria-selected":f.value===_,className:"nk-select__option","data-highlighted":C===o||void 0,"data-selected":f.value===_||void 0,id:`${l}-option-${C}`,onPointerDown:X=>{X.preventDefault(),f.disabled||x(f)},onPointerMove:()=>{f.disabled||b(C)},role:"option",children:[f.icon?d.jsx(H.Icon,{type:f.icon}):null,d.jsx("span",{className:"nk-select__option-label",children:f.label}),f.value===_?d.jsx(H.Icon,{className:"nk-select__check",type:"checkmark"}):null]},f.value))})}function Le(t,n,s){n.current=t,xe.assignElementReference(s,t)}function Pe(t){var ee;const{"aria-invalid":n,className:s,closeOnEscape:a=!0,closeOnOutsideInteraction:o=!0,defaultValue:l="",disabled:i=!1,displayOverride:h,form:u,forwardedReference:b,id:y,invalid:g=!1,name:x,onChange:k,onClick:P,onEscapeKeyDown:R,onKeyDown:_,onOpenChange:S,onPointerDownOutside:q,options:m,placeholder:V,required:O=!1,style:W,value:$,width:f,...C}=t;De(m);const X=r.useId(),D=y??X,I=r.useRef(null),[N,ne]=r.useState(null),[v,se]=r.useState(!1),[w,A]=r.useState(-1),[ae,Z]=r.useState(l),j=$!==void 0,L=j?$:ae,le=m.find(e=>e.value===L),ie=g||z.hasInvalidState(n),re=z.resolveAriaInvalid(g,n),Y=U.usePresence(v),T=((ee=I.current)==null?void 0:ee.ownerDocument)??(typeof document>"u"?null:document),oe=J.useBoundary("Select").boundaryElement,ce=Re(Y.present,I.current,N,oe),de=Oe(I),ue=f===void 0?W:{...W,width:f},G=h??le,fe=r.useCallback(e=>Le(e,I,b),[b]),p=r.useCallback(e=>{v!==e&&(se(e),S==null||S(e))},[S,v]),me=r.useCallback(()=>{j||Z(l),p(!1)},[l,j,p]),he=ge({form:u,onReset:me,resetValue:j?L:l,triggerReference:I}),K=r.useCallback((e=1)=>{const c=m.findIndex(te=>te.value===L&&!te.disabled),E=e===1?-1:m.length;A(c>=0?c:Q(m,E,e)),p(!0)},[m,L,p]),B=r.useCallback(e=>{var c;i||e.disabled||(j||Z(e.value),p(!1),(c=I.current)==null||c.focus(),k==null||k(e.value))},[i,j,k,p]),ve=r.useCallback(()=>{var e;p(!1),(e=I.current)==null||e.focus()},[p]),pe=r.useCallback(()=>{p(!1)},[p]);function be(e){P==null||P(e),!(e.defaultPrevented||i)&&(v?p(!1):K())}function ye(e){if(_==null||_(e),!(e.defaultPrevented||i)){if(e.key==="ArrowDown"||e.key==="ArrowUp"){e.preventDefault();const c=e.key==="ArrowDown"?1:-1;v?A(E=>Q(m,E,c)):K(c);return}if(e.key==="Home"||e.key==="End"){if(e.preventDefault(),!v)K(e.key==="Home"?1:-1);else{const c=e.key==="Home"?1:-1,E=c===1?-1:m.length;A(Q(m,E,c))}return}if(e.key==="Enter"||e.key===" "){e.preventDefault();const c=m[w];v&&c?B(c):v||K();return}if(e.key==="Tab"){p(!1);return}if(e.key.length===1&&!e.altKey&&!e.ctrlKey&&!e.metaKey){const c=de(e.key.toLocaleLowerCase());if(c===null)return;const E=Se(m,c,w);E>=0&&(e.preventDefault(),v||p(!0),A(E))}}}return r.useEffect(()=>{i&&p(!1)},[i,p]),r.useEffect(()=>{var e;if(v&&w>=0){const c=T==null?void 0:T.getElementById(`${D}-option-${w}`);c&&(N!=null&&N.contains(c))&&((e=c.scrollIntoView)==null||e.call(c,{block:"nearest"}))}},[w,D,N,v]),d.jsxs("span",{className:["nk-select",s].filter(Boolean).join(" "),"data-disabled":i||void 0,"data-invalid":ie||void 0,"data-mode":"custom","data-open":v||void 0,style:ue,children:[d.jsxs("button",{...C,ref:fe,"aria-activedescendant":v&&w>=0?`${D}-option-${w}`:void 0,"aria-controls":`${D}-listbox`,"aria-expanded":v,"aria-haspopup":"listbox","aria-invalid":re,"aria-required":O||void 0,"aria-autocomplete":"none",className:"nk-select__trigger",disabled:i,form:u,id:D,onClick:be,onKeyDown:ye,role:"combobox",type:"button",children:[G?d.jsxs("span",{className:"nk-select__value",children:[G.icon?d.jsx(H.Icon,{type:G.icon}):null,d.jsx("span",{className:"nk-select__value-label",children:G.label})]}):d.jsx("span",{className:"nk-select__placeholder",children:V}),d.jsx(H.Icon,{className:"nk-select__icon",type:"chevron-down"})]}),x||O?d.jsxs("select",{ref:he,"aria-hidden":"true",className:"nk-select__form-control",disabled:i,form:u,name:x,onChange:()=>{},onInvalid:e=>{var c;e.preventDefault(),(c=I.current)==null||c.focus()},required:O,tabIndex:-1,value:L,children:[d.jsx("option",{value:""}),m.map(e=>d.jsx("option",{disabled:e.disabled,value:e.value,children:e.label},e.value))]}):null,Y.present&&T?d.jsx(U.Portal,{children:d.jsx(je,{active:v,closeOnEscape:a,closeOnOutsideInteraction:o,highlightedIndex:w,id:D,listboxReference:ne,onEscapeDismiss:ve,onEscapeKeyDown:R,onHighlight:A,onOutsideDismiss:pe,onPointerDownOutside:q,onSelect:B,options:m,ownerDocument:T,position:ce,selectedValue:L,state:Y.state==="closing"?"closing":"open",triggerReference:I})}):null]})}function Ce(t){const{"aria-invalid":n,children:s,className:a,defaultValue:o,disabled:l=!1,forwardedReference:i,invalid:h=!1,placeholder:u,style:b,value:y,...g}=t,x=z.resolveAriaInvalid(h,n),k=h||z.hasInvalidState(n);return d.jsxs("span",{className:["nk-select",a].filter(Boolean).join(" "),"data-disabled":l||void 0,"data-invalid":k||void 0,"data-mode":"native",style:b,children:[d.jsxs("select",{...g,ref:i,"aria-invalid":x,className:"nk-select__control",defaultValue:y===void 0?o??(u!==void 0?"":void 0):void 0,disabled:l,value:y,children:[u!==void 0?d.jsx("option",{disabled:!0,value:"",children:u}):null,s]}),d.jsx(H.Icon,{className:"nk-select__icon",type:"chevron-down"})]})}const Ne=r.forwardRef(function(n,s){const{options:a}=n;return J.useBoundary("Select"),a!==void 0?d.jsx(Pe,{...n,forwardedReference:s}):d.jsx(Ce,{...n,forwardedReference:s})});exports.default=Ne;
package/dist/Select.js CHANGED
@@ -1,10 +1,11 @@
1
1
  "use client";
2
2
  import { jsx as f, jsxs as R } from "react/jsx-runtime";
3
3
  import { useRef as T, useEffect as Y, useCallback as I, useMemo as ke, useId as Ee, useState as U, forwardRef as xe } from "react";
4
- import { b as B, d as De, e as Oe, c as Re, P as Se } from "./usePresence-CqegYqy4.js";
5
- import { h as le, r as ie } from "./aria-CeA9QfD1.js";
6
- import { a as Le } from "./reference-CXMr27nM.js";
7
- import { I as $ } from "./Icon-CxK1wlGk.js";
4
+ import { u as B } from "./effects-DGbA6Q2O.js";
5
+ import { h as le, r as ie } from "./aria-Bv-xVREf.js";
6
+ import { a as De } from "./reference-CXMr27nM.js";
7
+ import { I as $ } from "./Icon-NT3kRJYz.js";
8
+ import { c as Oe, d as Re, b as Se, P as Le } from "./usePresence-BTRY1_l-.js";
8
9
  import { u as Ne } from "./useAnchoredPosition-C0VS7hm6.js";
9
10
  function Pe(t) {
10
11
  const { form: n, onReset: a, resetValue: l, triggerReference: o } = t, i = T(null);
@@ -133,7 +134,7 @@ function Ge(t) {
133
134
  selectedValue: D,
134
135
  state: S,
135
136
  triggerReference: G
136
- } = t, u = T(null), K = B("Select").boundaryElement, O = De(!0, K), q = ke(
137
+ } = t, u = T(null), K = B("Select").boundaryElement, O = Oe(!0, K), q = ke(
137
138
  () => [G, u],
138
139
  [G]
139
140
  ), F = I(
@@ -142,7 +143,7 @@ function Ge(t) {
142
143
  },
143
144
  [s]
144
145
  );
145
- return Oe({
146
+ return Re({
146
147
  active: n,
147
148
  boundaries: q,
148
149
  boundary: K,
@@ -199,7 +200,7 @@ function Ge(t) {
199
200
  );
200
201
  }
201
202
  function Ke(t, n, a) {
202
- n.current = t, Le(a, t);
203
+ n.current = t, De(a, t);
203
204
  }
204
205
  function qe(t) {
205
206
  var ne;
@@ -233,7 +234,7 @@ function qe(t) {
233
234
  $e(u);
234
235
  const Q = Ee(), L = b ?? Q, g = T(null), [M, se] = U(null), [h, oe] = U(!1), [k, V] = U(-1), [re, ee] = U(i), N = F !== void 0, P = N ? F : re, ce = u.find(
235
236
  (e) => e.value === P
236
- ), de = w || le(n), ue = ie(w, n), J = Re(h), C = ((ne = g.current) == null ? void 0 : ne.ownerDocument) ?? (typeof document > "u" ? null : document), fe = B("Select").boundaryElement, me = Me(
237
+ ), de = w || le(n), ue = ie(w, n), J = Se(h), C = ((ne = g.current) == null ? void 0 : ne.ownerDocument) ?? (typeof document > "u" ? null : document), fe = B("Select").boundaryElement, me = Me(
237
238
  J.present,
238
239
  g.current,
239
240
  M,
@@ -396,7 +397,7 @@ function qe(t) {
396
397
  ]
397
398
  }
398
399
  ) : null,
399
- J.present && C ? /* @__PURE__ */ f(Se, { children: /* @__PURE__ */ f(
400
+ J.present && C ? /* @__PURE__ */ f(Le, { children: /* @__PURE__ */ f(
400
401
  Ge,
401
402
  {
402
403
  active: h,
@@ -467,7 +468,7 @@ function Fe(t) {
467
468
  }
468
469
  );
469
470
  }
470
- const Ze = xe(function(n, a) {
471
+ const Be = xe(function(n, a) {
471
472
  const { options: l } = n;
472
473
  return B("Select"), l !== void 0 ? /* @__PURE__ */ f(
473
474
  qe,
@@ -484,5 +485,5 @@ const Ze = xe(function(n, a) {
484
485
  );
485
486
  });
486
487
  export {
487
- Ze as default
488
+ Be as default
488
489
  };
package/dist/Sidebar.cjs CHANGED
@@ -1 +1 @@
1
- "use client";"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const i=require("react/jsx-runtime"),t=require("react"),C=require("./effects-D85L_7zM.cjs"),L=require("./reference-C2guRuR0.cjs"),x=require("./usePresence-B5RYv4e1.cjs"),D=require("./Text-DWYlIcPj.cjs"),J=require("./Button-CVe9T_Zw.cjs"),V=require("./useFocusTrap-gAK_402D.cjs"),W=require("./useScrollLock-Dy8MZaSn.cjs"),X=require("./aria-Bntn6ad_.cjs"),Y=require("./Avatar-Belo7qAY.cjs"),Z=require("./Spinner-BE0F4y2S.cjs"),ee=require("./Tooltip-CCuE-hfp.cjs"),ne=require("./units-PzuiQNnw.cjs"),B=new WeakMap;function K(s){const n=B.get(s);if(n)return n;const e={listeners:new Set,owner:null,state:void 0};return B.set(s,e),e}function re(s,n,e){const r=K(s);return r.owner!==null&&r.owner!==n?!1:(r.owner=n,r.state=e,r.listeners.forEach(p=>p()),!0)}function te(s,n){const e=B.get(s);!e||e.owner!==n||(e.owner=null,e.state=void 0,e.listeners.forEach(r=>r()))}function se(s){var n;return s?(n=B.get(s))==null?void 0:n.state:void 0}function ae(s,n){if(!s)return()=>{};const e=K(s);return e.listeners.add(n),()=>{e.listeners.delete(n)}}const ie=()=>{};function P(s){const n=x.useBoundary(s).boundaryElement,e=t.useCallback(p=>ae(n,p),[n]),r=t.useCallback(()=>se(n),[n]);return t.useSyncExternalStore(e,r,ie)}function O(s,n){return s==="both"||s===(n==="overlay"?"overlay":"inline")}const oe=t.forwardRef(function(n,e){const{children:r,className:p,presentation:c="both",...b}=n,o=P("Sidebar.Footer");return O(c,o==null?void 0:o.presentation)?i.jsx("div",{...b,ref:e,className:["nk-sidebar__footer",p].filter(Boolean).join(" "),children:r}):null}),le=t.forwardRef(function(n,e){const{"aria-label":r,"aria-labelledby":p,children:c,className:b,label:o,presentation:S="both",...v}=n,g=P("Sidebar.Group"),h=`${t.useId()}-label`,f=o!=null&&typeof o!="boolean"&&(typeof o!="string"||o.trim()!=="");if(!O(S,g==null?void 0:g.presentation))return null;const l=p??(r===void 0&&f?h:void 0),a=!!(r??l);return t.createElement(a?"nav":"div",{...v,ref:e,"aria-label":r,"aria-labelledby":l,className:["nk-sidebar__group",b].filter(Boolean).join(" ")},f?i.jsx(D.Text,{as:"h2",className:"nk-sidebar__group-label",id:h,size:"subtitle",weight:"medium",children:o}):null,i.jsx("ul",{className:"nk-sidebar__list",children:c}))}),ce=t.forwardRef(function(n,e){const{children:r,className:p,presentation:c="both",...b}=n,o=P("Sidebar.Header");return O(c,o==null?void 0:o.presentation)?i.jsx("div",{...b,ref:e,className:["nk-sidebar__header",p].filter(Boolean).join(" "),children:r}):null}),ue=t.forwardRef(function(n,e){const{active:r=!1,as:p,children:c,className:b,disabled:o=!1,icon:S,onClick:v,presentation:g="both",type:h,...f}=n,l=P("Sidebar.Item"),a=p??"button",u=a==="button",d=f,k=d.href!==void 0||d.to!==void 0;function m(_){if(o){_.preventDefault();return}v==null||v(_),l!=null&&l.open&&l.presentation==="overlay"&&!_.defaultPrevented&&l.requestOpenChange(!1,"item")}return O(g,l==null?void 0:l.presentation)?i.jsx("li",{className:"nk-sidebar__item-container",children:i.jsx(J.Button,{...f,ref:e,"aria-current":r?k?"page":"true":void 0,as:a,className:["nk-sidebar__item",b].filter(Boolean).join(" "),"data-active":r||void 0,disabled:o,fullWidth:!0,href:d.href,icon:S,onClick:m,shape:"rectangle",textAlignment:"left",type:u?h??"button":h,variant:"ghost",children:i.jsx("span",{className:"nk-sidebar__item-label",children:c})})}):null});function Q(s){const{"aria-label":n,"aria-labelledby":e,children:r,className:p,height:c,open:b,panelId:o,panelReference:S,presentation:v,side:g,state:h,style:f,width:l,...a}=s,u=v==="overlay",d=n??(e===void 0?"Sidebar":void 0),k=u&&b;let m=f;return(l!==void 0||c!==void 0)&&(m={...f},c!==void 0&&(m["--nk-sidebar-height"]=c),l!==void 0&&(m["--nk-sidebar-width"]=l)),i.jsx("aside",{...a,ref:S,"aria-hidden":u&&!b?!0:void 0,"aria-label":u&&!b?void 0:d,"aria-labelledby":u&&!b?void 0:e,"aria-modal":k?"true":void 0,className:["nk-sidebar",p].filter(Boolean).join(" "),"data-responsive":v==="pending"||void 0,"data-side":g,"data-state":h,"data-variant":u?"overlay":"inline",id:o,role:k?"dialog":void 0,style:m,tabIndex:u?-1:void 0,children:i.jsx("div",{className:"nk-sidebar__body",children:r})})}function de(s){const{boundaries:n,initialFocusReference:e,lockScroll:r,ownerDocument:p,panelReference:c,presenceState:b,restoreFocus:o,sidebar:S,side:v,...g}=s,{id:h,open:f,requestOpenChange:l}=S,a=t.useContext(x.FocusScopeContext),u=t.useRef(null),[d,k]=t.useState(null),m=x.useBoundary("Sidebar").boundaryElement,_=x.useOverlayLayer(!0,m),T=t.useCallback(E=>{u.current=E,c(E),k(E)},[c]);C.useIsomorphicLayoutEffect(()=>{d&&(d.inert=!f)},[f,d]);const q=t.useCallback(()=>{l(!1,"escape")},[l]),j=t.useCallback(()=>{l(!1,"outside")},[l]);x.useDismissableLayer({boundary:m,active:f,boundaries:n,dismissOnEscape:!0,dismissOnPointerDownOutside:!0,layerId:_.id,onEscapeDismiss:q,onPointerDownOutsideDismiss:j,ownerDocument:p});const N=V.useFocusTrap({boundary:m,active:f,container:d,initialFocusReference:e??u,layerId:_.id,restoreFocus:o});return W.useScrollLock(r&&f,p,m),i.jsx(x.FocusScopeContext.Provider,{value:f?N:a,children:i.jsx("div",{className:"nk-sidebar__overlay","data-side":v,"data-state":b,role:"presentation",style:{zIndex:_.zIndex},children:i.jsx(Q,{...g,open:f,panelId:h,panelReference:T,presentation:"overlay",side:v,state:b})})})}function be(s){const{children:n}=s;if(n.type===t.Fragment)throw new Error("Sidebar.Trigger requires a single non-Fragment child");const e=P("Sidebar.Trigger"),r=n.props,p=L.getElementReference(n),c=e==null?void 0:e.registerTrigger,b=e==null?void 0:e.unregisterTrigger,o=t.useRef(null),S=t.useCallback(u=>{const d=o.current;d&&d!==u&&(b==null||b(d)),o.current=u,u&&(c==null||c(u)),L.assignElementReference(p,u)},[p,c,b]),v=t.useCallback(u=>{var d;(d=r.onClick)==null||d.call(r,u),!(u.defaultPrevented||!e)&&e.requestOpenChange(!e.open,"trigger")},[r,e]);if(!e)return null;const{id:g,open:h,presentation:f,variant:l}=e,a=h&&f==="overlay";return t.cloneElement(n,{"aria-controls":a?X.mergeIdentifiers(r["aria-controls"],g):r["aria-controls"],"aria-expanded":h,"aria-haspopup":r["aria-haspopup"]??"dialog",className:[r.className,"nk-sidebar__trigger"].filter(Boolean).join(" "),"data-sidebar-variant":l,onClick:v,ref:S})}const fe=t.forwardRef(function(n,e){const{actions:r,className:p,description:c,image:b,loading:o=!1,name:S,onClick:v,...g}=n,h=c!=null&&typeof c!="boolean",f=i.jsxs(i.Fragment,{children:[i.jsx(Y.Avatar,{alt:S,"aria-hidden":!0,className:"nk-sidebar__user-avatar",image:b}),i.jsxs("span",{className:"nk-sidebar__user-text",children:[i.jsx(D.Text,{as:"span",className:"nk-sidebar__user-name",children:S}),h?i.jsx(D.Text,{as:"span",className:"nk-sidebar__user-description",size:"caption",tone:"muted",children:c}):null]})]});return i.jsx("div",{...g,ref:e,className:["nk-sidebar__user",p].filter(Boolean).join(" "),children:o?i.jsx(Z.Spinner,{className:"nk-sidebar__user-spinner",size:16}):i.jsxs(i.Fragment,{children:[v?i.jsx("button",{className:"nk-sidebar__user-details",onClick:v,type:"button",children:f}):i.jsx("div",{className:"nk-sidebar__user-details",children:f}),r!==void 0&&r.length>0?i.jsx("div",{className:"nk-sidebar__user-actions",children:r.map(l=>{const{"aria-label":a,icon:u,label:d,...k}=l;return i.jsx(ee.Tooltip2,{content:d,children:i.jsx(J.Button,{...k,"aria-label":a??d,className:"nk-sidebar__user-action",icon:u,shape:"rectangle",type:"button",variant:"ghost"})},d)})}):null]})})}),pe=()=>()=>{},$=()=>{};function me(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)??$,$);return s!=="responsive"?s:r===void 0?"pending":r>=ne.breakpoint("md")?"inline":"overlay"}const ve=t.forwardRef(function(n,e){var H;const{defaultOpen:r=!1,height:p,initialFocusReference:c,lockScroll:b=!0,onOpenChange:o,open:S,restoreFocus:v=!0,side:g="start",variant:h="responsive",width:f,...l}=n,a=x.useBoundary("Sidebar"),u=`${t.useId()}-sidebar`,d=t.useRef(Symbol("nk-sidebar")).current,k=t.useRef(null),m=me(h,a==null?void 0:a.width),_=S!==void 0,[T,q]=t.useState(r),j=_?S:T,N=t.useRef(o);C.useIsomorphicLayoutEffect(()=>{N.current=o});const E=t.useCallback((y,R)=>{var I;j!==y&&(_||q(y),(I=N.current)==null||I.call(N,y,R))},[_,j]),A=t.useCallback(y=>{k.current=y,L.assignElementReference(e,y)},[e]),w=t.useMemo(()=>[k],[]),M=t.useCallback(y=>{w.push({current:y})},[w]),U=t.useCallback(y=>{const R=w.findIndex(I=>I.current===y);R>0&&w.splice(R,1)},[w]),F=t.useMemo(()=>({id:u,open:j,presentation:m,registerTrigger:M,requestOpenChange:E,unregisterTrigger:U,variant:h}),[j,u,m,M,E,U,h]);C.useIsomorphicLayoutEffect(()=>{const y=a==null?void 0:a.boundaryElement;if(!y)return;if(re(y,d,F)===!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,d,F]),C.useIsomorphicLayoutEffect(()=>{const y=a==null?void 0:a.boundaryElement;if(y)return()=>te(y,d)},[a==null?void 0:a.boundaryElement,d]),t.useEffect(()=>{m==="inline"&&E(!1,"variant")},[m,E]);const z=x.usePresence(j&&m==="overlay"),G=((H=a==null?void 0:a.boundaryElement)==null?void 0:H.ownerDocument)??(typeof document>"u"?null:document);return m!=="overlay"?i.jsx(Q,{...l,height:p,open:!1,panelId:u,panelReference:A,presentation:m,side:g,width:f}):!z.present||!G?null:i.jsx(x.Portal,{children:i.jsx(de,{...l,boundaries:w,initialFocusReference:c,lockScroll:b,ownerDocument:G,panelReference:A,presenceState:z.state==="closing"?"closing":"open",restoreFocus:v,side:g,sidebar:F,width:f})})}),he=Object.assign(ve,{Footer:oe,Group:le,Header:ce,Item:ue,Trigger:be,User:fe});exports.default=he;
1
+ "use client";"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const i=require("react/jsx-runtime"),t=require("react"),w=require("./effects-D98vUn6N.cjs"),U=require("./reference-C2guRuR0.cjs"),P=require("./usePresence-Dm0mls5p.cjs"),G=require("./Button-DtrX4X-s.cjs"),z=require("./Text-DWYlIcPj.cjs"),te=require("./useFocusTrap-CrMcAu8s.cjs"),se=require("./useScrollLock-Dy8MZaSn.cjs"),ae=require("./aria-DM-xYEHQ.cjs"),ie=require("./useFloatingPosition-DQgw-w_Z.cjs"),oe=require("./Avatar-Belo7qAY.cjs"),le=require("./Spinner-BE0F4y2S.cjs"),ce=require("./Tooltip-DDPh_YFO.cjs"),ue=require("./units-PzuiQNnw.cjs");function de(a){const{label:r,onToggle:e,panelId:n,reference:b,side:l,sidebarOpen:u}=a;return i.jsx(G.Button,{ref:b,"aria-controls":n,"aria-expanded":u,"aria-haspopup":"dialog","aria-label":r,className:"nk-sidebar__fallback-trigger","data-side":l,icon:"burger",onClick:e})}const B=new WeakMap;function X(a){const r=B.get(a);if(r)return r;const e={listeners:new Set,owner:null,state:void 0};return B.set(a,e),e}function be(a,r,e){const n=X(a);return n.owner!==null&&n.owner!==r?!1:(n.owner=r,n.state=e,n.listeners.forEach(b=>b()),!0)}function fe(a,r){const e=B.get(a);!e||e.owner!==r||(e.owner=null,e.state=void 0,e.listeners.forEach(n=>n()))}function pe(a){var r;return a?(r=B.get(a))==null?void 0:r.state:void 0}function me(a,r){if(!a)return()=>{};const e=X(a);return e.listeners.add(r),()=>{e.listeners.delete(r)}}const ge=()=>{};function I(a){const r=w.useBoundary(a).boundaryElement,e=t.useCallback(b=>me(r,b),[r]),n=t.useCallback(()=>pe(r),[r]);return t.useSyncExternalStore(e,n,ge)}function F(a,r){return a==="both"||a===(r==="overlay"?"overlay":"inline")}const ve=t.forwardRef(function(r,e){const{children:n,className:b,presentation:l="both",...u}=r,o=I("Sidebar.Footer");return F(l,o==null?void 0:o.presentation)?i.jsx("div",{...u,ref:e,className:["nk-sidebar__footer",b].filter(Boolean).join(" "),children:n}):null}),he=t.forwardRef(function(r,e){const{"aria-label":n,"aria-labelledby":b,children:l,className:u,label:o,presentation:S="both",...v}=r,y=I("Sidebar.Group"),h=`${t.useId()}-label`,p=o!=null&&typeof o!="boolean"&&(typeof o!="string"||o.trim()!=="");if(!F(S,y==null?void 0:y.presentation))return null;const c=b??(n===void 0&&p?h:void 0),s=!!(n??c);return t.createElement(s?"nav":"div",{...v,ref:e,"aria-label":n,"aria-labelledby":c,className:["nk-sidebar__group",u].filter(Boolean).join(" ")},p?i.jsx(z.Text,{as:"h2",className:"nk-sidebar__group-label",id:h,size:"subtitle",weight:"medium",children:o}):null,i.jsx("ul",{className:"nk-sidebar__list",children:l}))}),ye=t.forwardRef(function(r,e){const{children:n,className:b,presentation:l="both",...u}=r,o=I("Sidebar.Header");return F(l,o==null?void 0:o.presentation)?i.jsx("div",{...u,ref:e,className:["nk-sidebar__header",b].filter(Boolean).join(" "),children:n}):null}),Se=t.forwardRef(function(r,e){const{active:n=!1,as:b,children:l,className:u,disabled:o=!1,icon:S,onClick:v,presentation:y="both",type:h,...p}=r,c=I("Sidebar.Item"),s=b??"button",d=s==="button",m=p,_=m.href!==void 0||m.to!==void 0;function g(E){if(o){E.preventDefault();return}v==null||v(E),c!=null&&c.open&&c.presentation==="overlay"&&!E.defaultPrevented&&c.requestOpenChange(!1,"item")}return F(y,c==null?void 0:c.presentation)?i.jsx("li",{className:"nk-sidebar__item-container",children:i.jsx(G.Button,{...p,ref:e,"aria-current":n?_?"page":"true":void 0,as:s,className:["nk-sidebar__item",u].filter(Boolean).join(" "),"data-active":n||void 0,disabled:o,fullWidth:!0,href:m.href,icon:S,onClick:g,shape:"rectangle",textAlignment:"left",type:d?h??"button":h,variant:"ghost",children:i.jsx("span",{className:"nk-sidebar__item-label",children:l})})}):null});function Z(a){const{"aria-label":r,"aria-labelledby":e,children:n,className:b,height:l,open:u,panelId:o,panelReference:S,presentation:v,side:y,state:h,style:p,width:c,...s}=a,d=v==="overlay",m=r??(e===void 0?"Sidebar":void 0),_=d&&u;let g=p;return(c!==void 0||l!==void 0)&&(g={...p},l!==void 0&&(g["--nk-sidebar-height"]=l),c!==void 0&&(g["--nk-sidebar-width"]=c)),i.jsx("aside",{...s,ref:S,"aria-hidden":d&&!u?!0:void 0,"aria-label":d&&!u?void 0:m,"aria-labelledby":d&&!u?void 0:e,"aria-modal":_?"true":void 0,className:["nk-sidebar",b].filter(Boolean).join(" "),"data-responsive":v==="pending"||void 0,"data-side":y,"data-state":h,"data-variant":d?"overlay":"inline",id:o,role:_?"dialog":void 0,style:g,tabIndex:d?-1:void 0,children:i.jsx("div",{className:"nk-sidebar__body",children:n})})}function ke(a){const{boundaries:r,initialFocusReference:e,lockScroll:n,ownerDocument:b,panelReference:l,presenceState:u,restoreFocus:o,sidebar:S,side:v,...y}=a,{id:h,open:p,requestOpenChange:c}=S,s=t.useContext(P.FocusScopeContext),d=t.useRef(null),[m,_]=t.useState(null),g=w.useBoundary("Sidebar").boundaryElement,E=P.useOverlayLayer(!0,g),L=t.useCallback(R=>{d.current=R,l(R),_(R)},[l]);w.useIsomorphicLayoutEffect(()=>{m&&(m.inert=!p)},[p,m]);const q=t.useCallback(()=>{c(!1,"escape")},[c]),D=t.useCallback(()=>{c(!1,"outside")},[c]);P.useDismissableLayer({boundary:g,active:p,boundaries:r,dismissOnEscape:!0,dismissOnPointerDownOutside:!0,layerId:E.id,onEscapeDismiss:q,onPointerDownOutsideDismiss:D,ownerDocument:b});const T=te.useFocusTrap({boundary:g,active:p,container:m,initialFocusReference:e??d,layerId:E.id,restoreFocus:o});return se.useScrollLock(n&&p,b,g),i.jsx(P.FocusScopeContext.Provider,{value:p?T:s,children:i.jsx("div",{className:"nk-sidebar__overlay","data-side":v,"data-state":u,role:"presentation",style:{zIndex:E.zIndex},children:i.jsx(Z,{...y,open:p,panelId:h,panelReference:L,presentation:"overlay",side:v,state:u})})})}function xe(a){const{children:r}=a;if(r.type===t.Fragment)throw new Error("Sidebar.Trigger requires a single non-Fragment child");const e=I("Sidebar.Trigger"),n=r.props,b=U.getElementReference(r),l=e==null?void 0:e.registerTrigger,u=e==null?void 0:e.unregisterTrigger,o=t.useRef(null),S=t.useCallback(d=>{const m=o.current;m&&m!==d&&(u==null||u(m)),o.current=d,d&&(l==null||l(d)),U.assignElementReference(b,d)},[b,l,u]),v=t.useCallback(d=>{d.defaultPrevented||!e||e.requestOpenChange(!e.open,"trigger")},[e]);if(!e)return null;const{id:y,open:h,presentation:p,variant:c}=e,s=h&&p==="overlay";return t.cloneElement(r,ie.resolveTriggerOverrides(n,{"aria-controls":s?ae.mergeIdentifiers(n["aria-controls"],y):n["aria-controls"],"aria-expanded":h,"aria-haspopup":n["aria-haspopup"]??"dialog",className:"nk-sidebar__trigger","data-sidebar-variant":c,onClick:v,ref:S}))}const _e=t.forwardRef(function(r,e){const{actions:n,className:b,description:l,image:u,loading:o=!1,name:S,onClick:v,...y}=r,h=l!=null&&typeof l!="boolean",p=i.jsxs(i.Fragment,{children:[i.jsx(oe.Avatar,{alt:S,"aria-hidden":!0,className:"nk-sidebar__user-avatar",image:u}),i.jsxs("span",{className:"nk-sidebar__user-text",children:[i.jsx(z.Text,{as:"span",className:"nk-sidebar__user-name",children:S}),h?i.jsx(z.Text,{as:"span",className:"nk-sidebar__user-description",size:"caption",tone:"muted",children:l}):null]})]});return i.jsx("div",{...y,ref:e,className:["nk-sidebar__user",b].filter(Boolean).join(" "),children:o?i.jsx(le.Spinner,{className:"nk-sidebar__user-spinner",size:16}):i.jsxs(i.Fragment,{children:[v?i.jsx("button",{className:"nk-sidebar__user-details",onClick:v,type:"button",children:p}):i.jsx("div",{className:"nk-sidebar__user-details",children:p}),n!==void 0&&n.length>0?i.jsx("div",{className:"nk-sidebar__user-actions",children:n.map(c=>{const{"aria-label":s,icon:d,label:m,..._}=c;return i.jsx(ce.Tooltip2,{content:m,children:i.jsx(G.Button,{..._,"aria-label":s??m,className:"nk-sidebar__user-action",icon:d,shape:"rectangle",type:"button",variant:"ghost"})},m)})}):null]})})}),Ee=()=>()=>{},Q=()=>{};function je(a,r){const e=a==="responsive"?r:void 0,n=t.useSyncExternalStore((e==null?void 0:e.subscribe)??Ee,(e==null?void 0:e.read)??Q,Q);return a!=="responsive"?a:n===void 0?"pending":n>=ue.breakpoint("md")?"inline":"overlay"}const Ne=32,we=t.forwardRef(function(r,e){var J;const{defaultOpen:n=!1,height:b,initialFocusReference:l,lockScroll:u=!0,onOpenChange:o,open:S,restoreFocus:v=!0,side:y="left",variant:h="responsive",width:p,...c}=r,s=w.useBoundary("Sidebar"),d=`${t.useId()}-sidebar`,m=t.useRef(Symbol("nk-sidebar")).current,_=t.useRef(null),g=je(h,s==null?void 0:s.width),E=S!==void 0,[L,q]=t.useState(n),[D,T]=t.useState(0),[R,ee]=t.useState(!1),H=t.useRef(null),N=E?S:L,O=t.useRef(o);w.useIsomorphicLayoutEffect(()=>{O.current=o});const C=t.useCallback((f,k)=>{var x;N!==f&&(E||q(f),(x=O.current)==null||x.call(O,f,k))},[E,N]),$=t.useCallback(f=>{_.current=f,U.assignElementReference(e,f)},[e]),j=t.useMemo(()=>[_],[]),W=t.useCallback(f=>{j.push({current:f}),T(k=>k+1)},[j]),K=t.useCallback(f=>{const k=j.findIndex(x=>x.current===f);k>0&&j.splice(k,1),T(x=>Math.max(x-1,0))},[j]),re=t.useCallback(f=>{const k=H.current;if(k&&k!==f){const x=j.findIndex(ne=>ne.current===k);x>0&&j.splice(x,1)}H.current=f,f&&j.push({current:f})},[j]),A=t.useMemo(()=>({id:d,open:N,presentation:g,registerTrigger:W,requestOpenChange:C,unregisterTrigger:K,variant:h}),[N,d,g,W,C,K,h]);w.useIsomorphicLayoutEffect(()=>{const f=s==null?void 0:s.boundaryElement;if(!f)return;if(be(f,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.")},[s==null?void 0:s.boundaryElement,m,A]),w.useIsomorphicLayoutEffect(()=>{const f=s==null?void 0:s.boundaryElement;if(f)return()=>fe(f,m)},[s==null?void 0:s.boundaryElement,m]),t.useEffect(()=>{g==="inline"&&C(!1,"variant")},[g,C]),t.useEffect(()=>{var x;const f=(x=s==null?void 0:s.boundaryElement)==null?void 0:x.ownerDocument.defaultView;if(!f)return;const k=f.setTimeout(()=>ee(!0),Ne);return()=>f.clearTimeout(k)},[s==null?void 0:s.boundaryElement]);const M=P.usePresence(N&&g==="overlay"),V=((J=s==null?void 0:s.boundaryElement)==null?void 0:J.ownerDocument)??(typeof document>"u"?null:document);if(g!=="overlay")return i.jsx(Z,{...c,height:b,open:!1,panelId:d,panelReference:$,presentation:g,side:y,width:p});const Y=R&&D===0?i.jsx(P.Portal,{children:i.jsx(de,{label:`Open ${c["aria-label"]??"Sidebar"}`,onToggle:()=>C(!N,"trigger"),panelId:M.present?d:void 0,reference:re,side:y,sidebarOpen:N})}):null;return!M.present||!V?Y:i.jsxs(i.Fragment,{children:[Y,i.jsx(P.Portal,{children:i.jsx(ke,{...c,boundaries:j,initialFocusReference:l,lockScroll:u,ownerDocument:V,panelReference:$,presenceState:M.state==="closing"?"closing":"open",restoreFocus:v,side:y,sidebar:A,width:p})})]})}),Pe=Object.assign(we,{Footer:ve,Group:he,Header:ye,Item:Se,Trigger:xe,User:_e});exports.default=Pe;