UNPKG

ivt

Version:

Ivt Components Library

3 lines (2 loc) 13.2 kB
import*as e from"react";import{c as n}from"./index-DVnblQ-a.mjs";import{createCollection as t}from"@radix-ui/react-collection";import{u as r,c as o}from"./index-C-j8pU3U.mjs";import{c as a}from"./index-Dr5ObK3L.mjs";import{u as c}from"./index-DBjm5RwN.mjs";import{P as s,D as u}from"./index-C_Mk3Jfk.mjs";import{h as i,u as l,R as d,F as f}from"./index-lVEpnR8T.mjs";import{u as p}from"./index-UQBMY2z8.mjs";import{c as m,R as h,A as v,C as g,a as _}from"./index-DtZD7YmJ.mjs";import{P as w}from"./index-1xuBLrml.mjs";import{P as M,d as C}from"./index-DiPp8h7C.mjs";import{c as y,I as b,R}from"./index-9IZ9Aw1I.mjs";import{createSlot as P}from"@radix-ui/react-slot";import{u as k}from"./index-DSUHCtxx.mjs";import{jsx as x}from"react/jsx-runtime";var D=["Enter"," "],E=["ArrowUp","PageDown","End"],O=["ArrowDown","PageUp","Home",...E],I={ltr:[...D,"ArrowRight"],rtl:[...D,"ArrowLeft"]},S={ltr:["ArrowLeft"],rtl:["ArrowRight"]},T="Menu",[F,L,K]=t(T),[A,N]=a(T,[K,m,y]),j=m(),G=y(),[V,U]=A(T),[B,X]=A(T),Y=n=>{const{__scopeMenu:t,open:r=!1,children:o,dir:a,onOpenChange:s,modal:u=!0}=n,i=j(t),[l,d]=e.useState(null),f=e.useRef(!1),p=k(s),m=c(a);return e.useEffect(()=>{const e=()=>{f.current=!0,document.addEventListener("pointerdown",n,{capture:!0,once:!0}),document.addEventListener("pointermove",n,{capture:!0,once:!0})},n=()=>f.current=!1;return document.addEventListener("keydown",e,{capture:!0}),()=>{document.removeEventListener("keydown",e,{capture:!0}),document.removeEventListener("pointerdown",n,{capture:!0}),document.removeEventListener("pointermove",n,{capture:!0})}},[]),x(h,{...i,children:x(V,{scope:t,open:r,onOpenChange:p,content:l,onContentChange:d,children:x(B,{scope:t,onClose:e.useCallback(()=>p(!1),[p]),isUsingKeyboardRef:f,dir:m,modal:u,children:o})})})};Y.displayName=T;var z=e.forwardRef((e,n)=>{const{__scopeMenu:t,...r}=e,o=j(t);return x(v,{...o,...r,ref:n})});z.displayName="MenuAnchor";var H="MenuPortal",[W,Z]=A(H,{forceMount:void 0}),q=e=>{const{__scopeMenu:n,forceMount:t,children:r,container:o}=e,a=U(H,n);return x(W,{scope:n,forceMount:t,children:x(w,{present:t||a.open,children:x(s,{asChild:!0,container:o,children:r})})})};q.displayName=H;var J="MenuContent",[Q,$]=A(J),ee=e.forwardRef((e,n)=>{const t=Z(J,e.__scopeMenu),{forceMount:r=t.forceMount,...o}=e,a=U(J,e.__scopeMenu),c=X(J,e.__scopeMenu);return x(F.Provider,{scope:e.__scopeMenu,children:x(w,{present:r||a.open,children:x(F.Slot,{scope:e.__scopeMenu,children:c.modal?x(ne,{...o,ref:n}):x(te,{...o,ref:n})})})})}),ne=e.forwardRef((t,o)=>{const a=U(J,t.__scopeMenu),c=e.useRef(null),s=r(o,c);return e.useEffect(()=>{const e=c.current;if(e)return i(e)},[]),x(oe,{...t,ref:s,trapFocus:a.open,disableOutsidePointerEvents:a.open,disableOutsideScroll:!0,onFocusOutside:n(t.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>a.onOpenChange(!1)})}),te=e.forwardRef((e,n)=>{const t=U(J,e.__scopeMenu);return x(oe,{...e,ref:n,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>t.onOpenChange(!1)})}),re=P("MenuContent.ScrollLock"),oe=e.forwardRef((t,o)=>{const{__scopeMenu:a,loop:c=!1,trapFocus:s,onOpenAutoFocus:i,onCloseAutoFocus:p,disableOutsidePointerEvents:m,onEntryFocus:h,onEscapeKeyDown:v,onPointerDownOutside:_,onFocusOutside:w,onInteractOutside:M,onDismiss:C,disableOutsideScroll:y,...b}=t,P=U(J,a),k=X(J,a),D=j(a),I=G(a),S=L(a),[T,F]=e.useState(null),K=e.useRef(null),A=r(o,K,P.onContentChange),N=e.useRef(0),V=e.useRef(""),B=e.useRef(0),Y=e.useRef(null),z=e.useRef("right"),H=e.useRef(0),W=y?d:e.Fragment,Z=y?{as:re,allowPinchZoom:!0}:void 0,q=e=>{const n=V.current+e,t=S().filter(e=>!e.disabled),r=document.activeElement,o=t.find(e=>e.ref.current===r)?.textValue,a=function(e,n,t){const r=n.length>1&&Array.from(n).every(e=>e===n[0]),o=r?n[0]:n,a=t?e.indexOf(t):-1;let c=(s=e,u=Math.max(a,0),s.map((e,n)=>s[(u+n)%s.length]));var s,u;1===o.length&&(c=c.filter(e=>e!==t));const i=c.find(e=>e.toLowerCase().startsWith(o.toLowerCase()));return i!==t?i:void 0}(t.map(e=>e.textValue),n,o),c=t.find(e=>e.textValue===a)?.ref.current;!function e(n){V.current=n,window.clearTimeout(N.current),""!==n&&(N.current=window.setTimeout(()=>e(""),1e3))}(n),c&&setTimeout(()=>c.focus())};e.useEffect(()=>()=>window.clearTimeout(N.current),[]),l();const $=e.useCallback(e=>z.current===Y.current?.side&&function(e,n){if(!n)return!1;const t={x:e.clientX,y:e.clientY};return function(e,n){const{x:t,y:r}=e;let o=!1;for(let e=0,a=n.length-1;e<n.length;a=e++){const c=n[e],s=n[a],u=c.x,i=c.y,l=s.x,d=s.y;i>r!=d>r&&t<(l-u)*(r-i)/(d-i)+u&&(o=!o)}return o}(t,n)}(e,Y.current?.area),[]);return x(Q,{scope:a,searchRef:V,onItemEnter:e.useCallback(e=>{$(e)&&e.preventDefault()},[$]),onItemLeave:e.useCallback(e=>{$(e)||(K.current?.focus(),F(null))},[$]),onTriggerLeave:e.useCallback(e=>{$(e)&&e.preventDefault()},[$]),pointerGraceTimerRef:B,onPointerGraceIntentChange:e.useCallback(e=>{Y.current=e},[]),children:x(W,{...Z,children:x(f,{asChild:!0,trapped:s,onMountAutoFocus:n(i,e=>{e.preventDefault(),K.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:p,children:x(u,{asChild:!0,disableOutsidePointerEvents:m,onEscapeKeyDown:v,onPointerDownOutside:_,onFocusOutside:w,onInteractOutside:M,onDismiss:C,children:x(R,{asChild:!0,...I,dir:k.dir,orientation:"vertical",loop:c,currentTabStopId:T,onCurrentTabStopIdChange:F,onEntryFocus:n(h,e=>{k.isUsingKeyboardRef.current||e.preventDefault()}),preventScrollOnEntryFocus:!0,children:x(g,{role:"menu","aria-orientation":"vertical","data-state":Se(P.open),"data-radix-menu-content":"",dir:k.dir,...D,...b,ref:A,style:{outline:"none",...b.style},onKeyDown:n(b.onKeyDown,e=>{const n=e.target.closest("[data-radix-menu-content]")===e.currentTarget,t=e.ctrlKey||e.altKey||e.metaKey,r=1===e.key.length;n&&("Tab"===e.key&&e.preventDefault(),!t&&r&&q(e.key));const o=K.current;if(e.target!==o)return;if(!O.includes(e.key))return;e.preventDefault();const a=S().filter(e=>!e.disabled).map(e=>e.ref.current);E.includes(e.key)&&a.reverse(),function(e){const n=document.activeElement;for(const t of e){if(t===n)return;if(t.focus(),document.activeElement!==n)return}}(a)}),onBlur:n(t.onBlur,e=>{e.currentTarget.contains(e.target)||(window.clearTimeout(N.current),V.current="")}),onPointerMove:n(t.onPointerMove,Le(e=>{const n=e.target,t=H.current!==e.clientX;if(e.currentTarget.contains(n)&&t){const n=e.clientX>H.current?"right":"left";z.current=n,H.current=e.clientX}}))})})})})})})});ee.displayName=J;var ae=e.forwardRef((e,n)=>{const{__scopeMenu:t,...r}=e;return x(M.div,{role:"group",...r,ref:n})});ae.displayName="MenuGroup";var ce=e.forwardRef((e,n)=>{const{__scopeMenu:t,...r}=e;return x(M.div,{...r,ref:n})});ce.displayName="MenuLabel";var se="MenuItem",ue="menu.itemSelect",ie=e.forwardRef((t,o)=>{const{disabled:a=!1,onSelect:c,...s}=t,u=e.useRef(null),i=X(se,t.__scopeMenu),l=$(se,t.__scopeMenu),d=r(o,u),f=e.useRef(!1);return x(le,{...s,ref:d,disabled:a,onClick:n(t.onClick,()=>{const e=u.current;if(!a&&e){const n=new CustomEvent(ue,{bubbles:!0,cancelable:!0});e.addEventListener(ue,e=>c?.(e),{once:!0}),C(e,n),n.defaultPrevented?f.current=!1:i.onClose()}}),onPointerDown:e=>{t.onPointerDown?.(e),f.current=!0},onPointerUp:n(t.onPointerUp,e=>{f.current||e.currentTarget?.click()}),onKeyDown:n(t.onKeyDown,e=>{const n=""!==l.searchRef.current;a||n&&" "===e.key||D.includes(e.key)&&(e.currentTarget.click(),e.preventDefault())})})});ie.displayName=se;var le=e.forwardRef((t,o)=>{const{__scopeMenu:a,disabled:c=!1,textValue:s,...u}=t,i=$(se,a),l=G(a),d=e.useRef(null),f=r(o,d),[p,m]=e.useState(!1),[h,v]=e.useState("");return e.useEffect(()=>{const e=d.current;e&&v((e.textContent??"").trim())},[u.children]),x(F.ItemSlot,{scope:a,disabled:c,textValue:s??h,children:x(b,{asChild:!0,...l,focusable:!c,children:x(M.div,{role:"menuitem","data-highlighted":p?"":void 0,"aria-disabled":c||void 0,"data-disabled":c?"":void 0,...u,ref:f,onPointerMove:n(t.onPointerMove,Le(e=>{if(c)i.onItemLeave(e);else if(i.onItemEnter(e),!e.defaultPrevented){e.currentTarget.focus({preventScroll:!0})}})),onPointerLeave:n(t.onPointerLeave,Le(e=>i.onItemLeave(e))),onFocus:n(t.onFocus,()=>m(!0)),onBlur:n(t.onBlur,()=>m(!1))})})})}),de=e.forwardRef((e,t)=>{const{checked:r=!1,onCheckedChange:o,...a}=e;return x(we,{scope:e.__scopeMenu,checked:r,children:x(ie,{role:"menuitemcheckbox","aria-checked":Te(r)?"mixed":r,...a,ref:t,"data-state":Fe(r),onSelect:n(a.onSelect,()=>o?.(!!Te(r)||!r),{checkForDefaultPrevented:!1})})})});de.displayName="MenuCheckboxItem";var fe="MenuRadioGroup",[pe,me]=A(fe,{value:void 0,onValueChange:()=>{}}),he=e.forwardRef((e,n)=>{const{value:t,onValueChange:r,...o}=e,a=k(r);return x(pe,{scope:e.__scopeMenu,value:t,onValueChange:a,children:x(ae,{...o,ref:n})})});he.displayName=fe;var ve="MenuRadioItem",ge=e.forwardRef((e,t)=>{const{value:r,...o}=e,a=me(ve,e.__scopeMenu),c=r===a.value;return x(we,{scope:e.__scopeMenu,checked:c,children:x(ie,{role:"menuitemradio","aria-checked":c,...o,ref:t,"data-state":Fe(c),onSelect:n(o.onSelect,()=>a.onValueChange?.(r),{checkForDefaultPrevented:!1})})})});ge.displayName=ve;var _e="MenuItemIndicator",[we,Me]=A(_e,{checked:!1}),Ce=e.forwardRef((e,n)=>{const{__scopeMenu:t,forceMount:r,...o}=e,a=Me(_e,t);return x(w,{present:r||Te(a.checked)||!0===a.checked,children:x(M.span,{...o,ref:n,"data-state":Fe(a.checked)})})});Ce.displayName=_e;var ye=e.forwardRef((e,n)=>{const{__scopeMenu:t,...r}=e;return x(M.div,{role:"separator","aria-orientation":"horizontal",...r,ref:n})});ye.displayName="MenuSeparator";var be=e.forwardRef((e,n)=>{const{__scopeMenu:t,...r}=e,o=j(t);return x(_,{...o,...r,ref:n})});be.displayName="MenuArrow";var Re="MenuSub",[Pe,ke]=A(Re),xe=n=>{const{__scopeMenu:t,children:r,open:o=!1,onOpenChange:a}=n,c=U(Re,t),s=j(t),[u,i]=e.useState(null),[l,d]=e.useState(null),f=k(a);return e.useEffect(()=>(!1===c.open&&f(!1),()=>f(!1)),[c.open,f]),x(h,{...s,children:x(V,{scope:t,open:o,onOpenChange:f,content:l,onContentChange:d,children:x(Pe,{scope:t,contentId:p(),triggerId:p(),trigger:u,onTriggerChange:i,children:r})})})};xe.displayName=Re;var De="MenuSubTrigger",Ee=e.forwardRef((t,r)=>{const a=U(De,t.__scopeMenu),c=X(De,t.__scopeMenu),s=ke(De,t.__scopeMenu),u=$(De,t.__scopeMenu),i=e.useRef(null),{pointerGraceTimerRef:l,onPointerGraceIntentChange:d}=u,f={__scopeMenu:t.__scopeMenu},p=e.useCallback(()=>{i.current&&window.clearTimeout(i.current),i.current=null},[]);return e.useEffect(()=>p,[p]),e.useEffect(()=>{const e=l.current;return()=>{window.clearTimeout(e),d(null)}},[l,d]),x(z,{asChild:!0,...f,children:x(le,{id:s.triggerId,"aria-haspopup":"menu","aria-expanded":a.open,"aria-controls":s.contentId,"data-state":Se(a.open),...t,ref:o(r,s.onTriggerChange),onClick:e=>{t.onClick?.(e),t.disabled||e.defaultPrevented||(e.currentTarget.focus(),a.open||a.onOpenChange(!0))},onPointerMove:n(t.onPointerMove,Le(e=>{u.onItemEnter(e),e.defaultPrevented||t.disabled||a.open||i.current||(u.onPointerGraceIntentChange(null),i.current=window.setTimeout(()=>{a.onOpenChange(!0),p()},100))})),onPointerLeave:n(t.onPointerLeave,Le(e=>{p();const n=a.content?.getBoundingClientRect();if(n){const t=a.content?.dataset.side,r="right"===t,o=r?-5:5,c=n[r?"left":"right"],s=n[r?"right":"left"];u.onPointerGraceIntentChange({area:[{x:e.clientX+o,y:e.clientY},{x:c,y:n.top},{x:s,y:n.top},{x:s,y:n.bottom},{x:c,y:n.bottom}],side:t}),window.clearTimeout(l.current),l.current=window.setTimeout(()=>u.onPointerGraceIntentChange(null),300)}else{if(u.onTriggerLeave(e),e.defaultPrevented)return;u.onPointerGraceIntentChange(null)}})),onKeyDown:n(t.onKeyDown,e=>{const n=""!==u.searchRef.current;t.disabled||n&&" "===e.key||I[c.dir].includes(e.key)&&(a.onOpenChange(!0),a.content?.focus(),e.preventDefault())})})})});Ee.displayName=De;var Oe="MenuSubContent",Ie=e.forwardRef((t,o)=>{const a=Z(J,t.__scopeMenu),{forceMount:c=a.forceMount,...s}=t,u=U(J,t.__scopeMenu),i=X(J,t.__scopeMenu),l=ke(Oe,t.__scopeMenu),d=e.useRef(null),f=r(o,d);return x(F.Provider,{scope:t.__scopeMenu,children:x(w,{present:c||u.open,children:x(F.Slot,{scope:t.__scopeMenu,children:x(oe,{id:l.contentId,"aria-labelledby":l.triggerId,...s,ref:f,align:"start",side:"rtl"===i.dir?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:e=>{i.isUsingKeyboardRef.current&&d.current?.focus(),e.preventDefault()},onCloseAutoFocus:e=>e.preventDefault(),onFocusOutside:n(t.onFocusOutside,e=>{e.target!==l.trigger&&u.onOpenChange(!1)}),onEscapeKeyDown:n(t.onEscapeKeyDown,e=>{i.onClose(),e.preventDefault()}),onKeyDown:n(t.onKeyDown,e=>{const n=e.currentTarget.contains(e.target),t=S[i.dir].includes(e.key);n&&t&&(u.onOpenChange(!1),l.trigger?.focus(),e.preventDefault())})})})})})});function Se(e){return e?"open":"closed"}function Te(e){return"indeterminate"===e}function Fe(e){return Te(e)?"indeterminate":e?"checked":"unchecked"}function Le(e){return n=>"mouse"===n.pointerType?e(n):void 0}Ie.displayName=Oe;var Ke=Y,Ae=z,Ne=q,je=ee,Ge=ae,Ve=ce,Ue=ie,Be=de,Xe=he,Ye=ge,ze=Ce,He=ye,We=be,Ze=xe,qe=Ee,Je=Ie;export{Ae as A,je as C,Ge as G,Ue as I,Ve as L,Ne as P,Ke as R,He as S,Be as a,ze as b,N as c,Xe as d,Ye as e,Ze as f,qe as g,Je as h,We as i}; //# sourceMappingURL=index-BekjHCXg.mjs.map