neatkit 0.7.0 → 0.9.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 (179) hide show
  1. package/dist/Avatar-Belo7qAY.cjs +1 -0
  2. package/dist/Avatar-DjDCFqNG.js +55 -0
  3. package/dist/Avatar.cjs +1 -1
  4. package/dist/Avatar.js +2 -52
  5. package/dist/Boundary.cjs +1 -0
  6. package/dist/Boundary.js +176 -0
  7. package/dist/Button-BV5OUXpc.js +101 -0
  8. package/dist/Button-DU4j_IED.cjs +1 -0
  9. package/dist/Button.cjs +1 -1
  10. package/dist/Button.js +1 -1
  11. package/dist/Checkbox.cjs +1 -1
  12. package/dist/Checkbox.js +213 -2
  13. package/dist/Code-B7s_rN0G.cjs +4 -0
  14. package/dist/Code-Bp2X1k-g.js +224 -0
  15. package/dist/Code.cjs +1 -1
  16. package/dist/Code.js +1 -1
  17. package/dist/Divider-C7XGlr26.cjs +1 -0
  18. package/dist/{Divider-BE15WVDI.js → Divider-DZgpYpr-.js} +1 -1
  19. package/dist/Divider.cjs +1 -1
  20. package/dist/Divider.js +1 -1
  21. package/dist/Icon-BIBzgznI.cjs +1 -0
  22. package/dist/{Icon-uQmpr5P2.js → Icon-CxK1wlGk.js} +194 -181
  23. package/dist/Icon.cjs +1 -1
  24. package/dist/Icon.js +2 -35
  25. package/dist/Input.cjs +1 -1
  26. package/dist/Input.js +70 -79
  27. package/dist/Markdown.cjs +1 -31
  28. package/dist/Markdown.js +469 -18066
  29. package/dist/Modal.cjs +1 -1
  30. package/dist/Modal.js +100 -122
  31. package/dist/PinInput.cjs +1 -1
  32. package/dist/PinInput.js +1 -1
  33. package/dist/Popover.cjs +1 -1
  34. package/dist/Popover.js +171 -165
  35. package/dist/Radio.cjs +1 -1
  36. package/dist/Radio.js +86 -41
  37. package/dist/Select.cjs +1 -1
  38. package/dist/Select.js +326 -315
  39. package/dist/Sidebar.cjs +1 -0
  40. package/dist/Sidebar.js +490 -0
  41. package/dist/Skeleton.cjs +1 -1
  42. package/dist/Skeleton.js +20 -16
  43. package/dist/Switch.cjs +1 -1
  44. package/dist/Switch.js +1 -1
  45. package/dist/Table-CADupJEU.js +423 -0
  46. package/dist/Table-qetwZpTC.cjs +1 -0
  47. package/dist/Table.cjs +1 -1
  48. package/dist/Table.js +1 -1
  49. package/dist/TextArea.cjs +1 -1
  50. package/dist/TextArea.js +1 -1
  51. package/dist/Tooltip-B2d5ss7S.cjs +1 -0
  52. package/dist/Tooltip-BK64rkxV.js +231 -0
  53. package/dist/Tooltip.cjs +1 -1
  54. package/dist/Tooltip.js +2 -3
  55. package/dist/albert-sans-cb3e34c4.woff2 +0 -0
  56. package/dist/aria-Bntn6ad_.cjs +1 -0
  57. package/dist/aria-CeA9QfD1.js +15 -0
  58. package/dist/components/Boundary/Boundary.d.ts +65 -0
  59. package/dist/components/Boundary/contexts/BoundaryContext.d.ts +28 -0
  60. package/dist/components/Boundary/hooks/useBoundary.d.ts +19 -0
  61. package/dist/components/Boundary/hooks/useBoundaryWidth.d.ts +23 -0
  62. package/dist/components/Boundary/index.d.ts +2 -0
  63. package/dist/components/Boundary/utils/width.d.ts +11 -0
  64. package/dist/components/Checkbox/Checkbox.d.ts +9 -1
  65. package/dist/components/{CheckboxGroup → Checkbox/components}/CheckboxGroup.d.ts +2 -2
  66. package/dist/components/Checkbox/index.d.ts +1 -0
  67. package/dist/components/Checkbox/utils/checkbox-option.d.ts +17 -0
  68. package/dist/components/Icon/Icon.d.ts +1 -0
  69. package/dist/components/Icon/icons/GearIcon.d.ts +11 -0
  70. package/dist/components/Icon/icons/ImageIcon.d.ts +11 -0
  71. package/dist/components/Icon/index.d.ts +0 -33
  72. package/dist/components/Icon/utils/registry.d.ts +2 -0
  73. package/dist/components/Input/Input.d.ts +1 -9
  74. package/dist/components/Modal/Modal.d.ts +0 -4
  75. package/dist/components/PinInput/PinInput.d.ts +1 -1
  76. package/dist/components/Popover/Popover.d.ts +2 -6
  77. package/dist/components/Portal/Portal.d.ts +11 -8
  78. package/dist/components/Portal/hooks/useDismissableLayer.d.ts +2 -0
  79. package/dist/components/Portal/hooks/useFloatingPosition.d.ts +4 -3
  80. package/dist/components/Portal/hooks/useFocusTrap.d.ts +2 -0
  81. package/dist/components/Portal/hooks/useScrollLock.d.ts +9 -3
  82. package/dist/components/Portal/utils/boundary-focus.d.ts +23 -0
  83. package/dist/components/Portal/utils/floating-position.d.ts +43 -9
  84. package/dist/components/Portal/utils/overlay-stack.d.ts +22 -10
  85. package/dist/components/Portal/utils/scroll-container.d.ts +13 -0
  86. package/dist/components/Radio/Radio.d.ts +9 -1
  87. package/dist/components/{RadioGroup → Radio/components}/RadioGroup.d.ts +9 -2
  88. package/dist/components/Radio/index.d.ts +1 -0
  89. package/dist/components/Select/Select.d.ts +0 -2
  90. package/dist/components/Select/utils/listbox-position.d.ts +28 -0
  91. package/dist/components/Sidebar/Sidebar.d.ts +113 -0
  92. package/dist/components/Sidebar/components/SidebarFooter.d.ts +24 -0
  93. package/dist/components/Sidebar/components/SidebarGroup.d.ts +31 -0
  94. package/dist/components/Sidebar/components/SidebarHeader.d.ts +29 -0
  95. package/dist/components/Sidebar/components/SidebarItem.d.ts +46 -0
  96. package/dist/components/Sidebar/components/SidebarOverlay.d.ts +38 -0
  97. package/dist/components/Sidebar/components/SidebarPanel.d.ts +47 -0
  98. package/dist/components/Sidebar/components/SidebarTrigger.d.ts +47 -0
  99. package/dist/components/Sidebar/components/SidebarUser.d.ts +59 -0
  100. package/dist/components/Sidebar/hooks/usePresentation.d.ts +14 -0
  101. package/dist/components/Sidebar/hooks/useSidebar.d.ts +9 -0
  102. package/dist/components/Sidebar/index.d.ts +2 -0
  103. package/dist/components/Sidebar/utils/presentation.d.ts +12 -0
  104. package/dist/components/Sidebar/utils/state.d.ts +62 -0
  105. package/dist/components/Skeleton/Skeleton.d.ts +21 -5
  106. package/dist/components/Table/Table.d.ts +21 -249
  107. package/dist/components/Table/components/TableAction.d.ts +18 -0
  108. package/dist/components/Table/components/TableActionCell.d.ts +15 -0
  109. package/dist/components/Table/components/TableActionHeaderCell.d.ts +13 -0
  110. package/dist/components/Table/components/TableBody.d.ts +27 -0
  111. package/dist/components/Table/components/TableCell.d.ts +42 -0
  112. package/dist/components/Table/components/TableFoot.d.ts +19 -0
  113. package/dist/components/Table/components/TableHead.d.ts +19 -0
  114. package/dist/components/Table/components/TableHeaderCell.d.ts +23 -0
  115. package/dist/components/Table/components/TableRow.d.ts +67 -0
  116. package/dist/components/Table/contexts/TableContext.d.ts +4 -0
  117. package/dist/components/Table/hooks/useHorizontalOverflow.d.ts +25 -0
  118. package/dist/components/Table/index.d.ts +1 -1
  119. package/dist/components/Table/utils/cell.d.ts +25 -0
  120. package/dist/components/Table/utils/children.d.ts +18 -0
  121. package/dist/components/Table/utils/trigger.d.ts +54 -0
  122. package/dist/components/Tooltip/Tooltip.d.ts +10 -4
  123. package/dist/components/Tooltip/TooltipProvider.d.ts +1 -1
  124. package/dist/components/Tooltip/index.d.ts +0 -1
  125. package/dist/effects-D5CWf-Pl.js +8 -0
  126. package/dist/effects-D85L_7zM.cjs +1 -0
  127. package/dist/floating-position-DIjh2wnP.cjs +1 -0
  128. package/dist/floating-position-DvR6e334.js +50 -0
  129. package/dist/style.css +1 -1
  130. package/dist/tokens.d.ts +1 -0
  131. package/dist/useFloatingPosition-B3ZC-v3v.js +43 -0
  132. package/dist/useFloatingPosition-GzkP9dCc.cjs +1 -0
  133. package/dist/useFocusTrap-BrFZdMqQ.cjs +1 -0
  134. package/dist/useFocusTrap-DhVnlboe.js +136 -0
  135. package/dist/usePresence-B5RYv4e1.cjs +1 -0
  136. package/dist/usePresence-CqegYqy4.js +221 -0
  137. package/dist/useScrollLock-Drd7OZRC.js +62 -0
  138. package/dist/useScrollLock-Dy8MZaSn.cjs +1 -0
  139. package/dist/utils/aria.d.ts +9 -0
  140. package/dist/utils/effects.d.ts +12 -0
  141. package/package.json +12 -16
  142. package/dist/Button-BAsLfA0D.js +0 -99
  143. package/dist/Button-D7JUO6Fs.cjs +0 -1
  144. package/dist/Checkbox-BvXM9VyY.js +0 -68
  145. package/dist/Checkbox-VQifZrZZ.cjs +0 -1
  146. package/dist/CheckboxGroup.cjs +0 -1
  147. package/dist/CheckboxGroup.js +0 -144
  148. package/dist/Code-BP2ZCmUf.js +0 -7446
  149. package/dist/Code-eispVOW3.cjs +0 -6
  150. package/dist/Content.cjs +0 -1
  151. package/dist/Content.js +0 -144
  152. package/dist/Divider-CJYbFcSX.cjs +0 -1
  153. package/dist/Icon-D8IZceys.cjs +0 -1
  154. package/dist/RadioGroup.cjs +0 -1
  155. package/dist/RadioGroup.js +0 -51
  156. package/dist/RadioGroupContext-BX9KnDek.cjs +0 -1
  157. package/dist/RadioGroupContext-DbKM4zPZ.js +0 -5
  158. package/dist/Table-83unQQOi.cjs +0 -1
  159. package/dist/Table-Cw8u-pEW.js +0 -403
  160. package/dist/Tooltip-BB82wNOE.cjs +0 -1
  161. package/dist/Tooltip-CqWK_GRD.js +0 -236
  162. package/dist/aria-DHnOMyYp.js +0 -10
  163. package/dist/aria-DKxpE8cA.cjs +0 -1
  164. package/dist/components/CheckboxGroup/index.d.ts +0 -2
  165. package/dist/components/Content/Content.d.ts +0 -60
  166. package/dist/components/Content/hooks/useContentLayout.d.ts +0 -18
  167. package/dist/components/Content/index.d.ts +0 -2
  168. package/dist/components/Content/utils/layout.d.ts +0 -11
  169. package/dist/components/RadioGroup/index.d.ts +0 -2
  170. package/dist/useFloatingPosition-CxzhAvy8.js +0 -73
  171. package/dist/useFloatingPosition-D1FqYy0l.cjs +0 -1
  172. package/dist/useFocusTrap--cgjy78G.cjs +0 -1
  173. package/dist/useFocusTrap-Da4nEash.js +0 -134
  174. package/dist/usePresence-DSPt6aKi.js +0 -210
  175. package/dist/usePresence-qe92UTvK.cjs +0 -1
  176. /package/dist/components/{CheckboxGroup → Checkbox}/contexts/CheckboxGroupContext.d.ts +0 -0
  177. /package/dist/components/{CheckboxGroup → Checkbox}/hooks/useCheckboxGroup.d.ts +0 -0
  178. /package/dist/components/{RadioGroup → Radio}/contexts/RadioGroupContext.d.ts +0 -0
  179. /package/dist/components/{RadioGroup → Radio}/hooks/useRadioGroup.d.ts +0 -0
package/dist/Select.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"),i=require("react"),G=require("./aria-DKxpE8cA.cjs"),K=require("./Icon-D8IZceys.cjs"),J=require("./usePresence-qe92UTvK.cjs");function ee(a,n,s){if(a.length===0)return-1;for(let c=1;c<=a.length;c+=1){const v=(n+s*c+a.length)%a.length;if(!a[v].disabled)return v}return-1}function xe(a,n,s){for(let c=1;c<=a.length;c+=1){const v=(s+c+a.length)%a.length,d=a[v];if(!d.disabled&&d.label.toLocaleLowerCase().startsWith(n))return v}return-1}function we(a){const n=new Set;a.forEach(s=>{if(n.has(s.value))throw new Error("Select option values must be unique");n.add(s.value)})}function Ie(a,n,s){n.current=a,typeof s=="function"?s(a):s&&(s.current=a)}function ke(a){const{"aria-invalid":n,children:s,className:c,defaultValue:v,disabled:d=!1,forwardedReference:o,invalid:p=!1,placeholder:x,style:f,value:h,...b}=a,k=G.resolveAriaInvalid(p,n),w=p||G.hasInvalidState(n);return l.jsxs("span",{className:["nk-select",c].filter(Boolean).join(" "),"data-disabled":d||void 0,"data-invalid":w||void 0,"data-mode":"native",style:f,children:[l.jsxs("select",{...b,ref:o,"aria-invalid":k,className:"nk-select__control",defaultValue:h===void 0?v??(x!==void 0?"":void 0):void 0,disabled:d,value:h,children:[x!==void 0?l.jsx("option",{disabled:!0,value:"",children:x}):null,s]}),l.jsx(K.Icon,{className:"nk-select__icon",type:"chevron-down"})]})}function De(a,n,s){const[c,v]=i.useState(null);return i.useEffect(()=>{if(!a||!n){v(null);return}const d=n.ownerDocument.defaultView;if(!d)return;const o=d;function p(){const h=n==null?void 0:n.getBoundingClientRect();if(!h)return;const b=8,k=4,w=o.innerHeight-h.bottom-k-b,E=h.top-k-b,j=w<160&&E>w,D=Math.max(72,j?E:w),y=s==null?void 0:s.getBoundingClientRect(),L=Math.max(h.width,(y==null?void 0:y.width)??h.width),r=Math.min(Math.max(b,h.left),Math.max(b,o.innerWidth-b-L)),R=j?Math.max(b,h.top-k-Math.min((y==null?void 0:y.height)??D,D)):h.bottom+k;v({left:r,maxHeight:D,minWidth:h.width,top:R})}p(),o.addEventListener("resize",p),o.addEventListener("scroll",p,!0);const x=o.ResizeObserver,f=x?new x(p):null;return f==null||f.observe(n),s&&(f==null||f.observe(s)),()=>{o.removeEventListener("resize",p),o.removeEventListener("scroll",p,!0),f==null||f.disconnect()}},[a,s,n]),c}function je(a){const{active:n,closeOnEscape:s,closeOnOutsideInteraction:c,highlightedIndex:v,id:d,listboxReference:o,onEscapeDismiss:p,onEscapeKeyDown:x,onHighlight:f,onOutsideDismiss:h,onPointerDownOutside:b,onSelect:k,options:w,ownerDocument:E,position:j,selectedValue:D,state:y,triggerReference:L}=a,r=i.useRef(null),R=J.useOverlayLayer(!0,E),N=i.useMemo(()=>[L,r],[L]),T=i.useCallback(u=>{r.current=u,o(u)},[o]);return J.useDismissableLayer({active:n,boundaries:N,dismissOnEscape:s,dismissOnPointerDownOutside:c,layerId:R.id,onEscapeDismiss:p,onEscapeKeyDown:x,onPointerDownOutside:b,onPointerDownOutsideDismiss:h,ownerDocument:E}),l.jsx("div",{"aria-hidden":n?void 0:!0,"aria-labelledby":d,className:"nk-select__listbox","data-state":y,id:`${d}-listbox`,ref:T,role:"listbox",style:j?{left:j.left,maxHeight:j.maxHeight,minWidth:j.minWidth,top:j.top,zIndex:R.zIndex}:{visibility:"hidden",zIndex:R.zIndex},children:w.map((u,P)=>l.jsxs("div",{"aria-disabled":u.disabled||void 0,"aria-selected":u.value===D,className:"nk-select__option","data-highlighted":P===v||void 0,"data-selected":u.value===D||void 0,id:`${d}-option-${P}`,onPointerDown:B=>{B.preventDefault(),u.disabled||k(u)},onPointerMove:()=>{u.disabled||f(P)},role:"option",children:[u.icon?l.jsx(K.Icon,{type:u.icon}):null,l.jsx("span",{className:"nk-select__option-label",children:u.label}),u.value===D?l.jsx(K.Icon,{className:"nk-select__check",type:"checkmark"}):null]},u.value))})}function _e(a){var ae;const{"aria-invalid":n,className:s,closeOnEscape:c=!0,closeOnOutsideInteraction:v=!0,defaultValue:d="",disabled:o=!1,displayOverride:p,form:x,forwardedReference:f,id:h,invalid:b=!1,name:k,onChange:w,onClick:E,onEscapeKeyDown:j,onKeyDown:D,onOpenChange:y,onPointerDownOutside:L,options:r,placeholder:R,portalContainer:N,required:T=!1,style:u,value:P,width:B,...ie}=a;we(r);const le=i.useId(),M=h??le,_=i.useRef(null),te=i.useRef(null),V=i.useRef(null),z=i.useRef(""),[W,oe]=i.useState(null),[m,re]=i.useState(!1),[O,q]=i.useState(-1),[ce,ne]=i.useState(d),A=P!==void 0,C=A?P:ce,de=r.find(e=>e.value===C),ue=b||G.hasInvalidState(n),fe=G.resolveAriaInvalid(b,n),X=J.usePresence(m),$=(N==null?void 0:N.ownerDocument)??((ae=_.current)==null?void 0:ae.ownerDocument)??(typeof document>"u"?null:document),he=De(X.present,_.current,W),me=B===void 0?u:{...u,width:B},F=p??de,ve=i.useCallback(e=>{Ie(e,_,f)},[f]),g=i.useCallback(e=>{m!==e&&(re(e),y==null||y(e))},[y,m]),Q=i.useCallback((e=1)=>{const t=r.findIndex(S=>S.value===C&&!S.disabled),I=e===1?-1:r.length;q(t>=0?t:ee(r,I,e)),g(!0)},[r,C,g]),se=i.useCallback(e=>{var t;e.disabled||(A||ne(e.value),g(!1),(t=_.current)==null||t.focus(),w==null||w(e.value))},[A,w,g]),pe=i.useCallback(()=>{var e;g(!1),(e=_.current)==null||e.focus()},[g]),be=i.useCallback(()=>{g(!1)},[g]);function ye(e){E==null||E(e),!(e.defaultPrevented||o)&&(m?g(!1):Q())}function ge(e){if(D==null||D(e),!(e.defaultPrevented||o)){if(e.key==="ArrowDown"||e.key==="ArrowUp"){e.preventDefault();const t=e.key==="ArrowDown"?1:-1;m?q(I=>ee(r,I,t)):Q(t);return}if(e.key==="Home"||e.key==="End"){if(e.preventDefault(),!m)Q(e.key==="Home"?1:-1);else{const t=e.key==="Home"?1:-1,I=t===1?-1:r.length;q(ee(r,I,t))}return}if(e.key==="Enter"||e.key===" "){e.preventDefault();const t=r[O];m&&t?se(t):m||Q();return}if(e.key==="Tab"){g(!1);return}if(e.key.length===1&&!e.altKey&&!e.ctrlKey&&!e.metaKey){const t=e.currentTarget.ownerDocument.defaultView;if(!t)return;const I=e.key.toLocaleLowerCase(),S=z.current+I,Y=Array.from(S).every(Z=>Z===I);z.current=Y?I:S,V.current!==null&&t.clearTimeout(V.current),V.current=t.setTimeout(()=>{z.current="",V.current=null},500);const H=xe(r,z.current,O);H>=0&&(e.preventDefault(),m||g(!0),q(H))}}}return i.useEffect(()=>{var e;if(m&&O>=0){const t=$==null?void 0:$.getElementById(`${M}-option-${O}`);t&&(W!=null&&W.contains(t))&&((e=t.scrollIntoView)==null||e.call(t,{block:"nearest"}))}},[O,M,W,m]),i.useEffect(()=>{var I;const e=(I=_.current)==null?void 0:I.form;if(!e)return;function t(){const S=te.current,Y=A?C:d;if(S){const H=Array.from(S.options),Z=H.find(U=>U.value===Y)??H[0];H.forEach(U=>{U.defaultSelected=U===Z})}A||ne(d),g(!1)}return e.addEventListener("reset",t),()=>e.removeEventListener("reset",t)},[d,x,A,C,g]),i.useEffect(()=>()=>{var t;const e=(t=_.current)==null?void 0:t.ownerDocument.defaultView;e&&V.current!==null&&e.clearTimeout(V.current)},[]),l.jsxs("span",{className:["nk-select",s].filter(Boolean).join(" "),"data-disabled":o||void 0,"data-invalid":ue||void 0,"data-mode":"custom","data-open":m||void 0,style:me,children:[l.jsxs("button",{...ie,ref:ve,"aria-activedescendant":m&&O>=0?`${M}-option-${O}`:void 0,"aria-controls":`${M}-listbox`,"aria-expanded":m,"aria-haspopup":"listbox","aria-invalid":fe,"aria-required":T||void 0,"aria-autocomplete":"none",className:"nk-select__trigger",disabled:o,form:x,id:M,onClick:ye,onKeyDown:ge,role:"combobox",type:"button",children:[F?l.jsxs("span",{className:"nk-select__value",children:[F.icon?l.jsx(K.Icon,{type:F.icon}):null,l.jsx("span",{className:"nk-select__value-label",children:F.label})]}):l.jsx("span",{className:"nk-select__placeholder",children:R}),l.jsx(K.Icon,{className:"nk-select__icon",type:"chevron-down"})]}),k||T?l.jsxs("select",{ref:te,"aria-hidden":"true",className:"nk-select__form-control",disabled:o,form:x,name:k,onChange:()=>{},onInvalid:e=>{var t;e.preventDefault(),(t=_.current)==null||t.focus()},required:T,tabIndex:-1,value:C,children:[l.jsx("option",{value:""}),r.map(e=>l.jsx("option",{disabled:e.disabled,value:e.value,children:e.label},e.value))]}):null,X.present&&$?l.jsx(J.Portal,{container:N,inheritFrom:_.current,children:l.jsx(je,{active:m,closeOnEscape:c,closeOnOutsideInteraction:v,highlightedIndex:O,id:M,listboxReference:oe,onEscapeDismiss:pe,onEscapeKeyDown:j,onHighlight:q,onOutsideDismiss:be,onPointerDownOutside:L,onSelect:se,options:r,ownerDocument:$,position:he,selectedValue:C,state:X.state==="closing"?"closing":"open",triggerReference:_})}):null]})}const Ee=i.forwardRef(function(n,s){const{options:c}=n;return c!==void 0?l.jsx(_e,{...n,forwardedReference:s}):l.jsx(ke,{...n,forwardedReference:s})});exports.default=Ee;
1
+ "use client";"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("react/jsx-runtime"),a=require("react"),J=require("./aria-Bntn6ad_.cjs"),$=require("./Icon-BIBzgznI.cjs"),O=require("./usePresence-B5RYv4e1.cjs"),ke=require("./floating-position-DIjh2wnP.cjs"),q=8,B=4,ge=160,Ee=72;function _e(n,t,s){const i=s.bottom-n.bottom-B-q,h=n.top-s.top-B-q,d=i<ge&&h>i,c=Math.max(Ee,d?h:i),m=Math.max(n.width,(t==null?void 0:t.width)??n.width),u=s.left+q,w=Math.min(Math.max(u,n.left),Math.max(u,s.right-q-m)),r=d?Math.max(s.top+q,n.top-B-Math.min((t==null?void 0:t.height)??c,c)):n.bottom+B;return{left:w,maxHeight:c,minWidth:n.width,top:r}}function se(n,t,s){if(n.length===0)return-1;for(let i=1;i<=n.length;i+=1){const h=(t+s*i+n.length)%n.length;if(!n[h].disabled)return h}return-1}function De(n,t,s){for(let i=1;i<=n.length;i+=1){const h=(s+i+n.length)%n.length,d=n[h];if(!d.disabled&&d.label.toLocaleLowerCase().startsWith(t))return h}return-1}function Se(n){const t=new Set;n.forEach(s=>{if(t.has(s.value))throw new Error("Select option values must be unique");t.add(s.value)})}function Re(n,t,s){t.current=n,typeof s=="function"?s(n):s&&(s.current=n)}function je(n){const{"aria-invalid":t,children:s,className:i,defaultValue:h,disabled:d=!1,forwardedReference:c,invalid:m=!1,placeholder:u,style:w,value:r,...k}=n,b=J.resolveAriaInvalid(m,t),x=m||J.hasInvalidState(t);return o.jsxs("span",{className:["nk-select",i].filter(Boolean).join(" "),"data-disabled":d||void 0,"data-invalid":x||void 0,"data-mode":"native",style:w,children:[o.jsxs("select",{...k,ref:c,"aria-invalid":b,className:"nk-select__control",defaultValue:r===void 0?h??(u!==void 0?"":void 0):void 0,disabled:d,value:r,children:[u!==void 0?o.jsx("option",{disabled:!0,value:"",children:u}):null,s]}),o.jsx($.Icon,{className:"nk-select__icon",type:"chevron-down"})]})}function Oe(n,t,s,i){const[h,d]=a.useState(null);return a.useEffect(()=>{if(!n||!t||!i){d(null);return}const c=t.ownerDocument.defaultView;if(!c)return;const m=c;function u(){const k=t==null?void 0:t.getBoundingClientRect(),b=i==null?void 0:i.getBoundingClientRect();if(!k||!b||!i)return;const x=_e(k,s==null?void 0:s.getBoundingClientRect(),ke.getVisibleBounds(b,m.innerWidth,m.innerHeight));d({...x,left:x.left-b.left-i.clientLeft+i.scrollLeft,top:x.top-b.top-i.clientTop+i.scrollTop})}u(),m.addEventListener("scroll",u,!0),m.addEventListener("resize",u);const w=m.ResizeObserver,r=w?new w(u):null;return r==null||r.observe(t),r==null||r.observe(i),s&&(r==null||r.observe(s)),()=>{m.removeEventListener("scroll",u,!0),m.removeEventListener("resize",u),r==null||r.disconnect()}},[n,i,s,t]),h}function Le(n){const{active:t,closeOnEscape:s,closeOnOutsideInteraction:i,highlightedIndex:h,id:d,listboxReference:c,onEscapeDismiss:m,onEscapeKeyDown:u,onHighlight:w,onOutsideDismiss:r,onPointerDownOutside:k,onSelect:b,options:x,ownerDocument:M,position:D,selectedValue:S,state:L,triggerReference:G}=n,v=a.useRef(null),K=O.useBoundary("Select").boundaryElement,R=O.useOverlayLayer(!0,K),U=a.useMemo(()=>[G,v],[G]),X=a.useCallback(f=>{v.current=f,c(f)},[c]);return O.useDismissableLayer({active:t,boundaries:U,boundary:K,dismissOnEscape:s,dismissOnPointerDownOutside:i,layerId:R.id,onEscapeDismiss:m,onEscapeKeyDown:u,onPointerDownOutside:k,onPointerDownOutsideDismiss:r,ownerDocument:M}),o.jsx("div",{"aria-hidden":t?void 0:!0,"aria-labelledby":d,className:"nk-select__listbox","data-state":L,id:`${d}-listbox`,ref:X,role:"listbox",style:D?{left:D.left,maxHeight:D.maxHeight,minWidth:D.minWidth,top:D.top,zIndex:R.zIndex}:{visibility:"hidden",zIndex:R.zIndex},children:x.map((f,H)=>o.jsxs("div",{"aria-disabled":f.disabled||void 0,"aria-selected":f.value===S,className:"nk-select__option","data-highlighted":H===h||void 0,"data-selected":f.value===S||void 0,id:`${d}-option-${H}`,onPointerDown:Z=>{Z.preventDefault(),f.disabled||b(f)},onPointerMove:()=>{f.disabled||w(H)},role:"option",children:[f.icon?o.jsx($.Icon,{type:f.icon}):null,o.jsx("span",{className:"nk-select__option-label",children:f.label}),f.value===S?o.jsx($.Icon,{className:"nk-select__check",type:"checkmark"}):null]},f.value))})}function Pe(n){var oe;const{"aria-invalid":t,className:s,closeOnEscape:i=!0,closeOnOutsideInteraction:h=!0,defaultValue:d="",disabled:c=!1,displayOverride:m,form:u,forwardedReference:w,id:r,invalid:k=!1,name:b,onChange:x,onClick:M,onEscapeKeyDown:D,onKeyDown:S,onOpenChange:L,onPointerDownOutside:G,options:v,placeholder:K,required:R=!1,style:U,value:X,width:f,...H}=n;Se(v);const Z=a.useId(),P=r??Z,g=a.useRef(null),le=a.useRef(null),C=a.useRef(null),F=a.useRef(""),[A,ce]=a.useState(null),[p,re]=a.useState(!1),[E,V]=a.useState(-1),[de,ie]=a.useState(d),N=X!==void 0,j=N?X:de,ue=v.find(e=>e.value===j),fe=k||J.hasInvalidState(t),he=J.resolveAriaInvalid(k,t),ee=O.usePresence(p),W=((oe=g.current)==null?void 0:oe.ownerDocument)??(typeof document>"u"?null:document),me=O.useBoundary("Select").boundaryElement,ve=Oe(ee.present,g.current,A,me),pe=f===void 0?U:{...U,width:f},Q=m??ue,Ie=a.useCallback(e=>{Re(e,g,w)},[w]),I=a.useCallback(e=>{p!==e&&(re(e),L==null||L(e))},[L,p]),z=a.useCallback((e=1)=>{const l=v.findIndex(_=>_.value===j&&!_.disabled),y=e===1?-1:v.length;V(l>=0?l:se(v,y,e)),I(!0)},[v,j,I]),ae=a.useCallback(e=>{var l;c||e.disabled||(N||ie(e.value),I(!1),(l=g.current)==null||l.focus(),x==null||x(e.value))},[c,N,x,I]),xe=a.useCallback(()=>{var e;I(!1),(e=g.current)==null||e.focus()},[I]),ye=a.useCallback(()=>{I(!1)},[I]);function we(e){M==null||M(e),!(e.defaultPrevented||c)&&(p?I(!1):z())}function be(e){if(S==null||S(e),!(e.defaultPrevented||c)){if(e.key==="ArrowDown"||e.key==="ArrowUp"){e.preventDefault();const l=e.key==="ArrowDown"?1:-1;p?V(y=>se(v,y,l)):z(l);return}if(e.key==="Home"||e.key==="End"){if(e.preventDefault(),!p)z(e.key==="Home"?1:-1);else{const l=e.key==="Home"?1:-1,y=l===1?-1:v.length;V(se(v,y,l))}return}if(e.key==="Enter"||e.key===" "){e.preventDefault();const l=v[E];p&&l?ae(l):p||z();return}if(e.key==="Tab"){I(!1);return}if(e.key.length===1&&!e.altKey&&!e.ctrlKey&&!e.metaKey){const l=e.currentTarget.ownerDocument.defaultView;if(!l)return;const y=e.key.toLocaleLowerCase(),_=F.current+y,te=Array.from(_).every(ne=>ne===y);F.current=te?y:_,C.current!==null&&l.clearTimeout(C.current),C.current=l.setTimeout(()=>{F.current="",C.current=null},500);const T=De(v,F.current,E);T>=0&&(e.preventDefault(),p||I(!0),V(T))}}}return a.useEffect(()=>{c&&I(!1)},[c,I]),a.useEffect(()=>{var e;if(p&&E>=0){const l=W==null?void 0:W.getElementById(`${P}-option-${E}`);l&&(A!=null&&A.contains(l))&&((e=l.scrollIntoView)==null||e.call(l,{block:"nearest"}))}},[E,P,A,p]),a.useEffect(()=>{var y;const e=(y=g.current)==null?void 0:y.form;if(!e)return;function l(){const _=le.current,te=N?j:d;if(_){const T=Array.from(_.options),ne=T.find(Y=>Y.value===te)??T[0];T.forEach(Y=>{Y.defaultSelected=Y===ne})}N||ie(d),I(!1)}return e.addEventListener("reset",l),()=>e.removeEventListener("reset",l)},[d,u,N,j,I]),a.useEffect(()=>()=>{var l;const e=(l=g.current)==null?void 0:l.ownerDocument.defaultView;e&&C.current!==null&&e.clearTimeout(C.current)},[]),o.jsxs("span",{className:["nk-select",s].filter(Boolean).join(" "),"data-disabled":c||void 0,"data-invalid":fe||void 0,"data-mode":"custom","data-open":p||void 0,style:pe,children:[o.jsxs("button",{...H,ref:Ie,"aria-activedescendant":p&&E>=0?`${P}-option-${E}`:void 0,"aria-controls":`${P}-listbox`,"aria-expanded":p,"aria-haspopup":"listbox","aria-invalid":he,"aria-required":R||void 0,"aria-autocomplete":"none",className:"nk-select__trigger",disabled:c,form:u,id:P,onClick:we,onKeyDown:be,role:"combobox",type:"button",children:[Q?o.jsxs("span",{className:"nk-select__value",children:[Q.icon?o.jsx($.Icon,{type:Q.icon}):null,o.jsx("span",{className:"nk-select__value-label",children:Q.label})]}):o.jsx("span",{className:"nk-select__placeholder",children:K}),o.jsx($.Icon,{className:"nk-select__icon",type:"chevron-down"})]}),b||R?o.jsxs("select",{ref:le,"aria-hidden":"true",className:"nk-select__form-control",disabled:c,form:u,name:b,onChange:()=>{},onInvalid:e=>{var l;e.preventDefault(),(l=g.current)==null||l.focus()},required:R,tabIndex:-1,value:j,children:[o.jsx("option",{value:""}),v.map(e=>o.jsx("option",{disabled:e.disabled,value:e.value,children:e.label},e.value))]}):null,ee.present&&W?o.jsx(O.Portal,{children:o.jsx(Le,{active:p,closeOnEscape:i,closeOnOutsideInteraction:h,highlightedIndex:E,id:P,listboxReference:ce,onEscapeDismiss:xe,onEscapeKeyDown:D,onHighlight:V,onOutsideDismiss:ye,onPointerDownOutside:G,onSelect:ae,options:v,ownerDocument:W,position:ve,selectedValue:j,state:ee.state==="closing"?"closing":"open",triggerReference:g})}):null]})}const Ce=a.forwardRef(function(t,s){const{options:i}=t;return O.useBoundary("Select"),i!==void 0?o.jsx(Pe,{...t,forwardedReference:s}):o.jsx(je,{...t,forwardedReference:s})});exports.default=Ce;