@jamsrui/context-menu 0.0.15 → 0.0.17

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.
@@ -1,13 +1,12 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
-
3
- declare const useContextMenuConfig: () => ContextMenuConfig.Props;
4
- declare const ContextMenuConfig: (props: Omit<Partial<ContextMenuConfig.Props>, "children"> & {
5
- merge?: boolean;
6
- children: React.ReactNode;
7
- }) => react_jsx_runtime.JSX.Element;
8
- declare namespace ContextMenuConfig {
9
- interface Props {
10
- }
11
- }
12
-
13
- export { ContextMenuConfig, useContextMenuConfig };
1
+ import 'react/jsx-runtime';
2
+ import '@jamsrui/core';
3
+ export { ContextMenuConfig, useContextMenuConfig } from './index.mjs';
4
+ import 'react';
5
+ import './context-menu-BgSke4mM.mjs';
6
+ import '@floating-ui/react';
7
+ import '@jamsrui/utils';
8
+ import './context-menu-content.mjs';
9
+ import './context-menu-floating-context.mjs';
10
+ import './context-menu-item-inner.mjs';
11
+ import './styles.mjs';
12
+ import './context-menu-trigger.mjs';
@@ -1 +1 @@
1
- import{createConfigContext as o}from"@jamsrui/utils";const[n,t]=o({displayName:"ContextMenuConfig"});export{n as ContextMenuConfig,t as useContextMenuConfig};
1
+ "use client";import{createConfigContext as e}from"@jamsrui/utils";const[i,r]=e({displayName:"ContextMenuConfig"});export{i as ContextMenuConfig,r as useContextMenuConfig};
@@ -1 +1 @@
1
- import{Fragment as M,jsx as t,jsxs as f}from"react/jsx-runtime";import{FloatingFocusManager as C,FloatingList as m,FloatingOverlay as x,FloatingPortal as F}from"@floating-ui/react";import{useRenderElement as c}from"@jamsrui/hooks";import{useContextMenuContext as d}from"./context-menu-context.mjs";import{ContextMenuFloatingContext as P}from"./context-menu-floating-context.mjs";const O=o=>{const{getFloatingListProps:e,getOverlayProps:n,getFocusManagerProps:r,getRootProps:i,getContentProps:s,isOpen:a,floatingCtx:l}=d(),{children:p}=o,g=t(M,{children:t("div",{...s(o),children:p})}),u=c("div",{props:[i(),{children:g}]});return t(P,{value:l,children:t(m,{...e(),children:a?f(F,{children:[t(x,{...n()}),t(C,{...r(),children:u})]}):null})})};export{O as ContextMenuContent};
1
+ "use client";import{Fragment as M,jsx as t,jsxs as f}from"react/jsx-runtime";import{FloatingFocusManager as C,FloatingList as m,FloatingOverlay as c,FloatingPortal as x}from"@floating-ui/react";import{useRenderElement as F}from"@jamsrui/hooks";import{useContextMenuContext as d}from"./context-menu-context.mjs";import{ContextMenuFloatingContext as P}from"./context-menu-floating-context.mjs";const O=o=>{const{getFloatingListProps:e,getOverlayProps:n,getFocusManagerProps:r,getRootProps:i,getContentProps:s,isOpen:a,floatingCtx:l}=d(),{children:p}=o,g=t(M,{children:t("div",{...s(o),children:p})}),u=F("div",{props:[i(),{children:g}]});return t(P,{value:l,children:t(m,{...e(),children:a?f(x,{children:[t(c,{...n()}),t(C,{...r(),children:u})]}):null})})};export{O as ContextMenuContent};
@@ -1,9 +1,9 @@
1
1
  import * as react from 'react';
2
- import { u as useContextMenu } from './use-context-menu-K6P2zj_Q.mjs';
2
+ import { u as useContextMenu } from './context-menu-BgSke4mM.mjs';
3
+ import 'react/jsx-runtime';
3
4
  import '@floating-ui/react';
4
5
  import '@jamsrui/utils';
5
6
  import './context-menu-content.mjs';
6
- import 'react/jsx-runtime';
7
7
  import './context-menu-floating-context.mjs';
8
8
  import './context-menu-item-inner.mjs';
9
9
  import './styles.mjs';
@@ -1 +1 @@
1
- import{createContext as e,use as n}from"react";const o=e(null),u=()=>{const t=n(o);if(!t)throw new Error("useContextMenuContext must be used within a ContextMenuContext");return t};export{o as ContextMenuContext,u as useContextMenuContext};
1
+ "use client";import{createContext as t,use as n}from"react";const o=t(null),x=()=>{const e=n(o);if(!e)throw new Error("useContextMenuContext must be used within a ContextMenuContext");return e};export{o as ContextMenuContext,x as useContextMenuContext};
@@ -1 +1 @@
1
- import{createContext as t,use as e}from"react";const o=t({setHasFocusInside:()=>{},activeIndex:null,getItemProps:()=>({})}),s=()=>e(o);export{o as ContextMenuFloatingContext,s as useContextMenuFloatingContext};
1
+ "use client";import{createContext as e,use as t}from"react";const n=e({setHasFocusInside:()=>{},activeIndex:null,getItemProps:()=>({})}),s=()=>t(n);export{n as ContextMenuFloatingContext,s as useContextMenuFloatingContext};
@@ -1 +1 @@
1
- import{useRenderElement as t}from"@jamsrui/hooks";import{useContextMenuContext as r}from"./context-menu-context.mjs";const m=e=>{const{getMenuItemInnerProps:n}=r();return t("span",{props:[n(e)]})};export{m as ContextMenuItemInner};
1
+ "use client";import{useRenderElement as t}from"@jamsrui/hooks";import{useContextMenuContext as r}from"./context-menu-context.mjs";const m=e=>{const{getMenuItemInnerProps:n}=r();return t("span",{props:[n(e)]})};export{m as ContextMenuItemInner};
@@ -1,9 +1,9 @@
1
1
  import 'react';
2
2
  import '@jamsrui/utils';
3
- export { a as ContextMenuItem } from './use-context-menu-K6P2zj_Q.mjs';
3
+ export { a as ContextMenuItem } from './context-menu-BgSke4mM.mjs';
4
+ import 'react/jsx-runtime';
4
5
  import '@floating-ui/react';
5
6
  import './context-menu-content.mjs';
6
- import 'react/jsx-runtime';
7
7
  import './context-menu-floating-context.mjs';
8
8
  import './context-menu-item-inner.mjs';
9
9
  import './styles.mjs';
@@ -1 +1 @@
1
- import{Fragment as R,jsx as v,jsxs as k}from"react/jsx-runtime";import{useFloatingTree as x,useListItem as f}from"@floating-ui/react";import{useMergeRefs as I,useRenderElement as M}from"@jamsrui/hooks";import{useContextMenuContext as b}from"./context-menu-context.mjs";import{useContextMenuFloatingContext as P}from"./context-menu-floating-context.mjs";import{ContextMenuItemInner as g}from"./context-menu-item-inner.mjs";const O=s=>{const{getMenuItemProps:i}=b(),a=x(),{textValue:c,children:e,isDisabled:t,startContent:m,endContent:l,preventCloseOnClick:d,...u}=s,n=P(),o=f({label:c??(typeof e=="string"?e:void 0)}),r=o.index===n.activeIndex,p=I([o.ref]),C=k(R,{children:[m,v(g,{children:e}),l]});return M("button",{props:[i(u),{children:C,disabled:t,"data-disabled":t,"data-active":r,"aria-disabled":t,ref:p,tabIndex:r?0:-1,onClick(){d||a?.events.emit("click")},onMouseEnter(){n.setHasFocusInside(!0)}}]})};export{O as ContextMenuItem};
1
+ "use client";import{Fragment as R,jsx as v,jsxs as k}from"react/jsx-runtime";import{useFloatingTree as x,useListItem as f}from"@floating-ui/react";import{useMergeRefs as I,useRenderElement as M}from"@jamsrui/hooks";import{useContextMenuContext as b}from"./context-menu-context.mjs";import{useContextMenuFloatingContext as P}from"./context-menu-floating-context.mjs";import{ContextMenuItemInner as g}from"./context-menu-item-inner.mjs";const O=s=>{const{getMenuItemProps:i}=b(),a=x(),{textValue:c,children:e,isDisabled:t,startContent:l,endContent:m,preventCloseOnClick:u,...d}=s,n=P(),o=f({label:c??(typeof e=="string"?e:void 0)}),r=o.index===n.activeIndex,p=I([o.ref]),C=k(R,{children:[l,v(g,{children:e}),m]});return M("button",{props:[i(d),{children:C,disabled:t,"data-disabled":t,"data-active":r,"aria-disabled":t,ref:p,tabIndex:r?0:-1,onClick(){u||a?.events.emit("click")},onMouseEnter(){n.setHasFocusInside(!0)}}]})};export{O as ContextMenuItem};
@@ -1 +1 @@
1
- import{cloneElement as t,isValidElement as o}from"react";import{useContextMenuContext as i}from"./context-menu-context.mjs";const s=r=>{const{children:e}=r,{getTriggerProps:n}=i();return o(e)?t(e,n()):(console.warn("Invalid children passed to MenuTrigger"),null)};export{s as ContextMenuTrigger};
1
+ "use client";import{cloneElement as t,isValidElement as o}from"react";import{useContextMenuContext as i}from"./context-menu-context.mjs";const s=n=>{const{children:e}=n,{getTriggerProps:r}=i();return o(e)?t(e,r()):(console.warn("Invalid children passed to MenuTrigger"),null)};export{s as ContextMenuTrigger};
@@ -1,5 +1,5 @@
1
1
  import 'react/jsx-runtime';
2
- export { C as ContextMenu } from './use-context-menu-K6P2zj_Q.mjs';
2
+ export { C as ContextMenu } from './context-menu-BgSke4mM.mjs';
3
3
  import 'react';
4
4
  import '@floating-ui/react';
5
5
  import '@jamsrui/utils';
@@ -1 +1 @@
1
- import{jsx as n}from"react/jsx-runtime";import{FloatingNode as x,FloatingTree as c,useFloatingParentNodeId as s}from"@floating-ui/react";import{ContextMenuContext as C}from"./context-menu-context.mjs";import{useContextMenu as a}from"./use-context-menu.mjs";const r=e=>{const t=a(e),{children:o}=e,{getNodeProps:u}=t;return n(C,{value:t,children:n(x,{...u(),children:o})})},M=e=>{const t=s(),{children:o}=e;return t===null?n(c,{children:n(r,{...e,children:o})}):n(r,{...e,children:o})};export{M as ContextMenu};
1
+ "use client";import{jsx as n}from"react/jsx-runtime";import{FloatingNode as x,FloatingTree as c,useFloatingParentNodeId as s}from"@floating-ui/react";import{ContextMenuContext as i}from"./context-menu-context.mjs";import{useContextMenu as C}from"./use-context-menu.mjs";const r=e=>{const t=C(e),{children:o}=e,{getNodeProps:u}=t;return n(i,{value:t,children:n(x,{...u(),children:o})})},M=e=>{const t=s(),{children:o}=e;return t===null?n(c,{children:n(r,{...e,children:o})}):n(r,{...e,children:o})};export{M as ContextMenu};
package/dist/index.d.mts CHANGED
@@ -1,10 +1,41 @@
1
- export { C as ContextMenu, a as ContextMenuItem } from './use-context-menu-K6P2zj_Q.mjs';
2
- export { ContextMenuTrigger } from './context-menu-trigger.mjs';
3
- export { ContextMenuContent } from './context-menu-content.mjs';
4
- import 'react';
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { WithGlobalConfig } from '@jamsrui/core';
3
+ import * as react from 'react';
4
+ import { C as ContextMenu$1, a as ContextMenuItem } from './context-menu-BgSke4mM.mjs';
5
+ import { ContextMenuContent } from './context-menu-content.mjs';
6
+ import { ContextMenuTrigger } from './context-menu-trigger.mjs';
5
7
  import '@floating-ui/react';
6
8
  import '@jamsrui/utils';
7
9
  import './context-menu-floating-context.mjs';
8
- import 'react/jsx-runtime';
9
10
  import './context-menu-item-inner.mjs';
10
11
  import './styles.mjs';
12
+
13
+ declare const ContextMenu: ((props: ContextMenu$1.Props) => react_jsx_runtime.JSX.Element) & {
14
+ Trigger: (props: ContextMenuTrigger.Props) => react.ReactElement<unknown, string | react.JSXElementConstructor<any>> | null;
15
+ Content: (props: ContextMenuContent.Props) => react_jsx_runtime.JSX.Element;
16
+ Item: (props: ContextMenuItem.Props) => react.ReactElement<unknown, string | react.JSXElementConstructor<any>>;
17
+ };
18
+ declare namespace ContextMenu {
19
+ interface Props extends ContextMenu$1.Props {
20
+ }
21
+ interface Config extends ContextMenuConfig.Props {
22
+ }
23
+ interface Trigger extends ContextMenuTrigger.Props {
24
+ }
25
+ interface Content extends ContextMenuContent.Props {
26
+ }
27
+ interface Item extends ContextMenuItem.Props {
28
+ }
29
+ }
30
+
31
+ declare const useContextMenuConfig: () => ContextMenuConfig.Props;
32
+ declare const ContextMenuConfig: (props: Omit<Partial<ContextMenuConfig.Props>, "children"> & {
33
+ merge?: boolean;
34
+ children: React.ReactNode;
35
+ }) => react_jsx_runtime.JSX.Element;
36
+ declare namespace ContextMenuConfig {
37
+ interface Props extends WithGlobalConfig<ContextMenu.Props> {
38
+ }
39
+ }
40
+
41
+ export { ContextMenu, ContextMenuConfig, ContextMenuContent, ContextMenuItem, ContextMenuTrigger, useContextMenuConfig };
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- "use client";import{ContextMenu as o}from"./context-menu.mjs";import{ContextMenuTrigger as r}from"./context-menu-trigger.mjs";import{ContextMenuContent as m}from"./context-menu-content.mjs";import{ContextMenuItem as C}from"./context-menu-item.mjs";export{o as ContextMenu,m as ContextMenuContent,C as ContextMenuItem,r as ContextMenuTrigger};
1
+ import{ContextMenu as o}from"./context-menu.mjs";import{ContextMenuConfig as r,useContextMenuConfig as x}from"./context-menu-config.mjs";import{ContextMenuContent as e}from"./context-menu-content.mjs";import{ContextMenuItem as t}from"./context-menu-item.mjs";import{ContextMenuTrigger as n}from"./context-menu-trigger.mjs";const u=Object.assign(o,{Trigger:n,Content:e,Item:t});export{u as ContextMenu,r as ContextMenuConfig,e as ContextMenuContent,t as ContextMenuItem,n as ContextMenuTrigger,x as useContextMenuConfig};
@@ -3,7 +3,7 @@ import '@floating-ui/react';
3
3
  import '@jamsrui/utils';
4
4
  import './context-menu-content.mjs';
5
5
  import './context-menu-floating-context.mjs';
6
- export { u as useContextMenu } from './use-context-menu-K6P2zj_Q.mjs';
6
+ export { u as useContextMenu } from './context-menu-BgSke4mM.mjs';
7
7
  import './context-menu-item-inner.mjs';
8
8
  import './styles.mjs';
9
9
  import 'react/jsx-runtime';
@@ -1 +1 @@
1
- import{useCallback as a,useEffect as j,useMemo as B,useRef as g,useState as $}from"react";import{autoUpdate as pe,flip as de,offset as fe,safePolygon as ge,shift as Pe,useDismiss as xe,useFloating as Ie,useFloatingNodeId as Ce,useFloatingParentNodeId as Me,useFloatingTree as ve,useHover as ye,useInteractions as Fe,useListItem as be,useListNavigation as Ne,useMergeRefs as he,useRole as Oe,useTypeahead as Re}from"@floating-ui/react";import{useControlledState as ke}from"@jamsrui/hooks";import{cn as I,dataAttrDev as u,mapPropsVariants as Ee}from"@jamsrui/utils";import{useContextMenuFloatingContext as Se}from"./context-menu-floating-context.mjs";import{contextMenuVariants as q}from"./styles.mjs";const He=z=>{const m=Me(),t=m!==null,[J,Q]=Ee(z,q.variantKeys),{isOpen:W,defaultOpen:Z,onOpenChange:_,classNames:n,closeDelay:ee=0,closeOnEscapeKey:te=!0,closeOnOutsidePress:ne=!0,lockScroll:C=!0,offset:oe=4,openDelay:se=75,placement:ae="right-start"}=J,r=ve(),l=Ce(),P=be(),[o=!1,c]=ke({defaultProp:Z,onChange:_,prop:W}),[re,M]=$(!1),[d,v]=$(null),y=g([]),F=g([]),{refs:p,floatingStyles:b,context:i}=Ie({nodeId:l,open:o,onOpenChange:c,middleware:[fe({mainAxis:oe,alignmentAxis:t?-4:0}),de({fallbackPlacements:["left-start"]}),Pe({padding:5})],placement:ae,whileElementsMounted:pe}),le=ye(i,{enabled:t,delay:{open:se,close:ee},handleClose:ge({blockPointerEvents:!0})}),ie=Oe(i,{role:"menu"}),ce=xe(i,{escapeKey:te,outsidePress:ne}),ue=Ne(i,{listRef:y,onNavigate:v,activeIndex:d}),me=Re(i,{enabled:o,listRef:F,onMatch:v,activeIndex:d}),{getFloatingProps:N,getItemProps:h,getReferenceProps:O}=Fe([ie,le,ce,ue,me]);j(()=>{if(!r)return;function e(){c(!1)}function X(Y){Y.nodeId!==l&&Y.parentId===m&&c(!1)}return r.events.on("click",e),r.events.on("menuopen",X),()=>{r.events.off("click",e),r.events.off("menuopen",X)}},[r,l,m,c,o]),j(()=>{o&&r&&r.events.emit("menuopen",{parentId:m,nodeId:l})},[r,o,l,m]);const s=q(Q),R=o&&re&&t,f=Se(),k=g(!1),x=g(null),E=a(e=>{e.preventDefault(),p.setPositionReference({getBoundingClientRect(){return{width:0,height:0,x:e.clientX,y:e.clientY,top:e.clientY,right:e.clientX,bottom:e.clientY,left:e.clientX}}}),c(!0),x.current&&clearTimeout(x.current),k.current=!1,x.current=window.setTimeout(()=>{k.current=!0},300)},[p,c]),S=he([p.setReference,P.ref]),T=a(()=>({ref:S,tabIndex:t?f.activeIndex===P.index?0:-1:void 0,"data-slot":u("trigger"),role:t?"menuitem":void 0,"data-active":R,"data-nested":t,"data-open":o,onContextMenu:t?void 0:E,...O({...f.getItemProps({onMouseEnter(){M(!1),f.setHasFocusInside(!0)}})})}),[O,E,R,t,o,P.index,S,f]),D=a(()=>({lockScroll:C,"data-slot":u("overlay"),className:s.backdrop({className:n?.backdrop})}),[n?.backdrop,C,s]),w=a(()=>({context:i,modal:!0,initialFocus:1,returnFocus:!t,disabled:!1}),[i,t]),L=a(()=>({"data-component":u("menu"),"data-slot":u("root"),className:s.root({className:n?.root}),ref:p.setFloating,style:b,...N()}),[n?.root,b,N,p.setFloating,s]),A=a(()=>({className:s.content({className:I(n?.content)})}),[n?.content,s]),U=a(()=>({id:l}),[l]),G=a(()=>({elementsRef:y,labelsRef:F}),[]),H=B(()=>({activeIndex:d,getItemProps:h,setHasFocusInside:M}),[d,h]),K=a(e=>({...e,"data-slot":u("menu-item"),className:s.menuItem({className:I(n?.menuItem,e.className),color:e.color}),role:"menuitem"}),[n?.menuItem,s]),V=a(e=>({...e,"data-slot":u("menu-item-inner"),className:s.menuItemInner({className:I(n?.menuItemInner,e.className)})}),[n?.menuItemInner,s]);return B(()=>({getOverlayProps:D,getFocusManagerProps:w,getContentProps:A,getNodeProps:U,isOpen:o,getTriggerProps:T,getFloatingListProps:G,floatingCtx:H,getRootProps:L,getMenuItemProps:K,isNested:t,getMenuItemInnerProps:V}),[H,A,G,w,V,K,U,D,L,T,t,o])};export{He as useContextMenu};
1
+ "use client";import{useCallback as a,useEffect as j,useMemo as B,useRef as g,useState as $}from"react";import{autoUpdate as pe,flip as de,offset as fe,safePolygon as ge,shift as Pe,useDismiss as xe,useFloating as Ie,useFloatingNodeId as Ce,useFloatingParentNodeId as Me,useFloatingTree as ve,useHover as ye,useInteractions as Fe,useListItem as be,useListNavigation as Ne,useMergeRefs as he,useRole as Oe,useTypeahead as Re}from"@floating-ui/react";import{useControlledState as ke}from"@jamsrui/hooks";import{cn as I,dataAttrDev as u,mapPropsVariants as Ee}from"@jamsrui/utils";import{useContextMenuFloatingContext as Se}from"./context-menu-floating-context.mjs";import{contextMenuVariants as q}from"./styles.mjs";const He=z=>{const m=Me(),t=m!==null,[J,Q]=Ee(z,q.variantKeys),{isOpen:W,defaultOpen:Z,onOpenChange:_,classNames:n,closeDelay:ee=0,closeOnEscapeKey:te=!0,closeOnOutsidePress:ne=!0,lockScroll:C=!0,offset:oe=4,openDelay:se=75,placement:ae="right-start"}=J,r=ve(),l=Ce(),P=be(),[o=!1,c]=ke({defaultProp:Z,onChange:_,prop:W}),[re,M]=$(!1),[d,v]=$(null),y=g([]),F=g([]),{refs:p,floatingStyles:b,context:i}=Ie({nodeId:l,open:o,onOpenChange:c,middleware:[fe({mainAxis:oe,alignmentAxis:t?-4:0}),de({fallbackPlacements:["left-start"]}),Pe({padding:5})],placement:ae,whileElementsMounted:pe}),le=ye(i,{enabled:t,delay:{open:se,close:ee},handleClose:ge({blockPointerEvents:!0})}),ie=Oe(i,{role:"menu"}),ce=xe(i,{escapeKey:te,outsidePress:ne}),ue=Ne(i,{listRef:y,onNavigate:v,activeIndex:d}),me=Re(i,{enabled:o,listRef:F,onMatch:v,activeIndex:d}),{getFloatingProps:N,getItemProps:h,getReferenceProps:O}=Fe([ie,le,ce,ue,me]);j(()=>{if(!r)return;function e(){c(!1)}function X(Y){Y.nodeId!==l&&Y.parentId===m&&c(!1)}return r.events.on("click",e),r.events.on("menuopen",X),()=>{r.events.off("click",e),r.events.off("menuopen",X)}},[r,l,m,c,o]),j(()=>{o&&r&&r.events.emit("menuopen",{parentId:m,nodeId:l})},[r,o,l,m]);const s=q(Q),R=o&&re&&t,f=Se(),k=g(!1),x=g(null),E=a(e=>{e.preventDefault(),p.setPositionReference({getBoundingClientRect(){return{width:0,height:0,x:e.clientX,y:e.clientY,top:e.clientY,right:e.clientX,bottom:e.clientY,left:e.clientX}}}),c(!0),x.current&&clearTimeout(x.current),k.current=!1,x.current=window.setTimeout(()=>{k.current=!0},300)},[p,c]),S=he([p.setReference,P.ref]),T=a(()=>({ref:S,tabIndex:t?f.activeIndex===P.index?0:-1:void 0,"data-slot":u("trigger"),role:t?"menuitem":void 0,"data-active":R,"data-nested":t,"data-open":o,onContextMenu:t?void 0:E,...O({...f.getItemProps({onMouseEnter(){M(!1),f.setHasFocusInside(!0)}})})}),[O,E,R,t,o,P.index,S,f]),D=a(()=>({lockScroll:C,"data-slot":u("overlay"),className:s.backdrop({className:n?.backdrop})}),[n?.backdrop,C,s]),w=a(()=>({context:i,modal:!0,initialFocus:1,returnFocus:!t,disabled:!1}),[i,t]),L=a(()=>({"data-component":u("menu"),"data-slot":u("root"),className:s.root({className:n?.root}),ref:p.setFloating,style:b,...N()}),[n?.root,b,N,p.setFloating,s]),A=a(()=>({className:s.content({className:I(n?.content)})}),[n?.content,s]),U=a(()=>({id:l}),[l]),G=a(()=>({elementsRef:y,labelsRef:F}),[]),H=B(()=>({activeIndex:d,getItemProps:h,setHasFocusInside:M}),[d,h]),K=a(e=>({...e,"data-slot":u("menu-item"),className:s.menuItem({className:I(n?.menuItem,e.className),color:e.color}),role:"menuitem"}),[n?.menuItem,s]),V=a(e=>({...e,"data-slot":u("menu-item-inner"),className:s.menuItemInner({className:I(n?.menuItemInner,e.className)})}),[n?.menuItemInner,s]);return B(()=>({getOverlayProps:D,getFocusManagerProps:w,getContentProps:A,getNodeProps:U,isOpen:o,getTriggerProps:T,getFloatingListProps:G,floatingCtx:H,getRootProps:L,getMenuItemProps:K,isNested:t,getMenuItemInnerProps:V}),[H,A,G,w,V,K,U,D,L,T,t,o])};export{He as useContextMenu};
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@jamsrui/context-menu",
3
- "version": "0.0.15",
3
+ "version": "0.0.17",
4
4
  "peerDependencies": {
5
5
  "react": ">=19"
6
6
  },
7
7
  "dependencies": {
8
8
  "@floating-ui/react": ">=0.27",
9
- "@jamsrui/hooks": "^0.0.15",
10
- "@jamsrui/core": "^0.0.13",
11
- "@jamsrui/utils": "^0.0.15"
9
+ "@jamsrui/hooks": "^0.0.17",
10
+ "@jamsrui/utils": "^0.0.17",
11
+ "@jamsrui/core": "^0.0.14"
12
12
  },
13
13
  "exports": {
14
14
  ".": {
@@ -1,20 +1,13 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
1
2
  import * as react from 'react';
2
3
  import { ComponentProps } from 'react';
3
4
  import { FloatingOverlayProps, FloatingFocusManagerProps, FloatingNodeProps, FloatingList, Placement } from '@floating-ui/react';
4
5
  import { UIProps, PropGetter, SlotsToClassNames } from '@jamsrui/utils';
5
6
  import { ContextMenuContent } from './context-menu-content.mjs';
6
7
  import { ContextMenuFloatingContext } from './context-menu-floating-context.mjs';
7
- import * as react_jsx_runtime from 'react/jsx-runtime';
8
8
  import { ContextMenuItemInner } from './context-menu-item-inner.mjs';
9
9
  import { ContextMenuVariantProps, ContextMenuSlots } from './styles.mjs';
10
10
 
11
- declare const ContextMenu: (props: ContextMenu.Props) => react_jsx_runtime.JSX.Element;
12
- declare namespace ContextMenu {
13
- interface Props extends useContextMenu.Props {
14
- children: React.ReactNode;
15
- }
16
- }
17
-
18
11
  declare const ContextMenuItem: (props: ContextMenuItem.Props) => react.ReactElement<unknown, string | react.JSXElementConstructor<any>>;
19
12
  declare namespace ContextMenuItem {
20
13
  interface Props extends UIProps<"button"> {
@@ -63,4 +56,11 @@ declare namespace useContextMenu {
63
56
  }
64
57
  }
65
58
 
59
+ declare const ContextMenu: (props: ContextMenu.Props) => react_jsx_runtime.JSX.Element;
60
+ declare namespace ContextMenu {
61
+ interface Props extends useContextMenu.Props {
62
+ children: React.ReactNode;
63
+ }
64
+ }
65
+
66
66
  export { ContextMenu as C, ContextMenuItem as a, useContextMenu as u };