@jamsrui/menu 0.0.12 → 0.0.13

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 (75) hide show
  1. package/dist/chunk-5GJHZWBN.mjs +1 -0
  2. package/dist/chunk-73ICREUJ.mjs +1 -0
  3. package/dist/chunk-7IUW47U3.mjs +1 -0
  4. package/dist/chunk-AEYH7VXJ.mjs +1 -0
  5. package/dist/chunk-AQWDIQDM.mjs +1 -0
  6. package/dist/chunk-E5KNVWWQ.mjs +1 -0
  7. package/dist/chunk-FJVOYNHF.mjs +1 -0
  8. package/dist/{chunk-SNAXAYWZ.mjs → chunk-IGMCHKXT.mjs} +1 -1
  9. package/dist/chunk-JRUGEZXQ.mjs +1 -0
  10. package/dist/chunk-OJO3ZCS3.mjs +1 -0
  11. package/dist/chunk-TK6HMBAL.mjs +1 -0
  12. package/dist/chunk-V3CQJ2RS.mjs +1 -0
  13. package/dist/chunk-VGN4WMWX.mjs +1 -0
  14. package/dist/chunk-VU45CFXY.mjs +1 -0
  15. package/dist/chunk-WCI2HQ7Q.mjs +1 -0
  16. package/dist/chunk-YQVA5YDV.mjs +1 -0
  17. package/dist/index.d.mts +56 -15
  18. package/dist/index.mjs +1 -1
  19. package/dist/{menu-BQP9o4yc.d.mts → menu-BpwPA3vD.d.mts} +14 -17
  20. package/dist/menu-arrow.d.mts +10 -0
  21. package/dist/menu-arrow.mjs +1 -0
  22. package/dist/menu-checkbox-item.d.mts +5 -5
  23. package/dist/menu-checkbox-item.mjs +1 -1
  24. package/dist/menu-config.d.mts +5 -4
  25. package/dist/menu-config.mjs +1 -1
  26. package/dist/menu-container.d.mts +13 -0
  27. package/dist/menu-container.mjs +1 -0
  28. package/dist/menu-content.d.mts +2 -2
  29. package/dist/menu-content.mjs +1 -1
  30. package/dist/menu-context.d.mts +5 -4
  31. package/dist/menu-context.mjs +1 -1
  32. package/dist/menu-floating-context.mjs +1 -1
  33. package/dist/menu-group-label.mjs +1 -1
  34. package/dist/menu-group.mjs +1 -1
  35. package/dist/menu-item-indicator-context.d.mts +11 -0
  36. package/dist/menu-item-indicator-context.mjs +1 -0
  37. package/dist/menu-item-indicator.d.mts +10 -0
  38. package/dist/menu-item-indicator.mjs +1 -0
  39. package/dist/menu-item.d.mts +5 -4
  40. package/dist/menu-item.mjs +1 -1
  41. package/dist/menu-radio-group-context.mjs +1 -1
  42. package/dist/menu-radio-group.mjs +1 -1
  43. package/dist/menu-radio-item.d.mts +5 -5
  44. package/dist/menu-radio-item.mjs +1 -1
  45. package/dist/menu-separator.d.mts +6 -1
  46. package/dist/menu-separator.mjs +1 -1
  47. package/dist/menu-submenu-indicator.d.mts +10 -0
  48. package/dist/menu-submenu-indicator.mjs +1 -0
  49. package/dist/menu-trigger.mjs +1 -1
  50. package/dist/menu.d.mts +5 -4
  51. package/dist/menu.mjs +1 -1
  52. package/dist/styles.d.mts +9 -6
  53. package/dist/styles.mjs +1 -1
  54. package/dist/use-menu.d.mts +5 -4
  55. package/dist/use-menu.mjs +1 -1
  56. package/package.json +6 -6
  57. package/dist/chunk-4DRJMVOY.mjs +0 -1
  58. package/dist/chunk-4QOOXBEL.mjs +0 -1
  59. package/dist/chunk-5DZZ6VC5.mjs +0 -1
  60. package/dist/chunk-6RHOGA5S.mjs +0 -1
  61. package/dist/chunk-BDCGHIJW.mjs +0 -1
  62. package/dist/chunk-EDFHOYYY.mjs +0 -1
  63. package/dist/chunk-GBR7YVTW.mjs +0 -1
  64. package/dist/chunk-LSC54BQQ.mjs +0 -1
  65. package/dist/chunk-MFCNUSNC.mjs +0 -1
  66. package/dist/chunk-VDALF5ID.mjs +0 -1
  67. package/dist/chunk-W6Z5NYJV.mjs +0 -1
  68. package/dist/chunk-WYIM2S4D.mjs +0 -1
  69. package/dist/chunk-Z3M52LAZ.mjs +0 -1
  70. package/dist/menu-content2.d.mts +0 -10
  71. package/dist/menu-content2.mjs +0 -1
  72. package/dist/menu-item-inner.d.mts +0 -10
  73. package/dist/menu-item-inner.mjs +0 -1
  74. package/dist/menu-root.d.mts +0 -10
  75. package/dist/menu-root.mjs +0 -1
@@ -0,0 +1 @@
1
+ import{createContext as e,use as t}from"react";var n=e({setHasFocusInside:()=>{},activeIndex:null,getItemProps:()=>({})}),s=()=>t(n);export{n as a,s as b};
@@ -0,0 +1 @@
1
+ import{a as t}from"./chunk-V3CQJ2RS.mjs";import{a as o}from"./chunk-7IUW47U3.mjs";import{useCallback as k}from"react";import{useControlledState as p}from"@jamsrui/hooks";import{jsx as n}from"react/jsx-runtime";var f=c=>{let{isChecked:r,onCheckedChange:C,defaultChecked:s,...a}=c,[d=!1,e]=p({defaultProp:s,onChange:C,prop:r}),l=k(()=>{e(h=>!h)},[e]);return n(t,{value:{isChecked:d},children:n(o,{preventCloseOnClick:!0,onClick:l,...a})})};export{f as a};
@@ -0,0 +1 @@
1
+ import{b as s}from"./chunk-IP6JQ5TM.mjs";import{b as i}from"./chunk-5GJHZWBN.mjs";import{useFloatingTree as b,useListItem as x}from"@floating-ui/react";import{useMergeRefs as I,useRenderElement as M}from"@jamsrui/hooks";import{dataAttr as t}from"@jamsrui/utils";var F=a=>{let{getMenuItemProps:l}=s(),c=b(),{textValue:m,children:u,disabled:e=!1,preventCloseOnClick:d,...p}=a,n=i(),o=x({label:m}),r=o.index===n.activeIndex,f=I([o.ref]);return M("button",{props:[l(p),{children:u,disabled:e,"data-disabled":t(e),"data-active":t(r),"aria-disabled":t(e),ref:f,tabIndex:r?0:-1,onClick(){d||c?.events.emit("click")},onMouseEnter(){n.setHasFocusInside(!0)}}]})};export{F as a};
@@ -0,0 +1 @@
1
+ import{a as u}from"./chunk-JRUGEZXQ.mjs";import{a as r}from"./chunk-IP6JQ5TM.mjs";import{FloatingNode as i,FloatingTree as a,useFloatingParentNodeId as l}from"@floating-ui/react";import{jsx as n}from"react/jsx-runtime";var c=e=>{let t=u(e),{children:o}=e,{getNodeProps:s}=t;return n(r,{value:t,children:n(i,{...s(),children:o})})},g=e=>{let t=l(),{children:o}=e;return t===null?n(a,{children:n(c,{...e,children:o})}):n(c,{...e,children:o})};export{g as a};
@@ -0,0 +1 @@
1
+ import{b as e}from"./chunk-IP6JQ5TM.mjs";import{useRenderElement as s}from"@jamsrui/hooks";import{ChevronRightIcon as p}from"@jamsrui/icons";import{jsx as m}from"react/jsx-runtime";var d=r=>{let{children:n=m(p,{className:"size-full"}),...o}=r,{getSubmenuIndicatorProps:t}=e();return s("span",{props:[t(o),{children:n}]})};export{d as a};
@@ -0,0 +1 @@
1
+ import{b as t}from"./chunk-V3CQJ2RS.mjs";import{b as e}from"./chunk-IP6JQ5TM.mjs";import{useRenderElement as p}from"@jamsrui/hooks";import{CheckIcon as c}from"@jamsrui/icons";import{jsx as i}from"react/jsx-runtime";var f=r=>{let{children:n=i(c,{className:"size-full"}),...o}=r,{getMenuItemIndicatorProps:s}=e(),{isChecked:m}=t();return p("span",{props:[s(o),{children:m?n:null}]})};export{f as a};
@@ -0,0 +1 @@
1
+ import{a as c}from"./chunk-VU45CFXY.mjs";import{a as g}from"./chunk-AQWDIQDM.mjs";import{a as l}from"./chunk-A4ENIW42.mjs";import{a as t}from"./chunk-AEYH7VXJ.mjs";import{a as s}from"./chunk-DHAF5YKZ.mjs";import{a as m}from"./chunk-3TXNSYIT.mjs";import{a as M}from"./chunk-E5KNVWWQ.mjs";import{a as f}from"./chunk-IGMCHKXT.mjs";import{a as x}from"./chunk-WCI2HQ7Q.mjs";import{a as p}from"./chunk-VGN4WMWX.mjs";import{a as u}from"./chunk-73ICREUJ.mjs";import{a}from"./chunk-7IUW47U3.mjs";import{a as o}from"./chunk-YQVA5YDV.mjs";import{b as n}from"./chunk-IP6JQ5TM.mjs";import{a as i}from"./chunk-5GJHZWBN.mjs";import{FloatingFocusManager as S,FloatingList as v,FloatingOverlay as k,FloatingPortal as A}from"@floating-ui/react";import{useRenderElement as O}from"@jamsrui/hooks";import{AnimatePresence as T}from"motion/react";var Y=Object.assign(t,{Root:t,Group:m,Item:a,CheckboxItem:u,RadioItem:x,RadioGroup:f,Separator:c,Trigger:l,GroupLabel:s,Content:C,ContentRoot:o,SubmenuIndicator:g,ItemIndicator:M,Arrow:p});import{jsx as e,jsxs as y}from"react/jsx-runtime";var d=r=>{let{getFloatingListProps:P,isOpen:I,getFocusManagerProps:F,getOverlayProps:R,floatingCtx:G,isNested:b,getContainerProps:L}=n(),h=O("div",{props:[L(r)]});return e(i,{value:G,children:e(v,{...P(),children:e(T,{children:I?y(A,{children:[b?null:e(k,{...R()}),e(S,{...F(),children:h})]}):null})})})},C=r=>e(d,{children:e(o,{...r})});export{d as a,C as b,Y as c};
@@ -1 +1 @@
1
- import{a as t}from"./chunk-MCQCEY2U.mjs";import{useMemo as s}from"react";import{useControlledState as d}from"@jamsrui/hooks";import{jsx as c}from"react/jsx-runtime";var v=u=>{let{children:n,defaultValue:r,isDisabled:e,onValueChange:l,value:p}=u,[o="",a]=d({defaultProp:r,onChange:l,prop:p}),i=s(()=>({isDisabled:e,value:o,setValue:a}),[e,a,o]);return c(t,{value:i,children:n})};export{v as a};
1
+ import{a as t}from"./chunk-MCQCEY2U.mjs";import{useMemo as s}from"react";import{useControlledState as d}from"@jamsrui/hooks";import{jsx as c}from"react/jsx-runtime";var v=u=>{let{children:n,defaultValue:r,isDisabled:e,onValueChange:l,value:i}=u,[o="",a]=d({defaultProp:r,onChange:l,prop:i}),p=s(()=>({isDisabled:e,value:o,setValue:a}),[e,a,o]);return c(t,{value:p,children:n})};export{v as a};
@@ -0,0 +1 @@
1
+ import{a as I}from"./chunk-TK6HMBAL.mjs";import{b as J}from"./chunk-5GJHZWBN.mjs";import{useCallback as n,useEffect as Q,useMemo as W,useRef as X,useState as M}from"react";import{arrow as ye,autoUpdate as be,flip as Ie,offset as Me,safePolygon as ve,shift as Fe,size as Ne,useClick as he,useDismiss as Oe,useFloating as Ce,useFloatingNodeId as xe,useFloatingParentNodeId as Ge,useFloatingTree as we,useHover as Ee,useInteractions as ke,useListItem as Le,useListNavigation as Re,useRole as Se,useTypeahead as Ae}from"@floating-ui/react";import{useControlledState as De,useMergeRefs as He}from"@jamsrui/hooks";import{dataAttrDev as l,mapPropsVariants as Te}from"@jamsrui/utils";var Be=Y=>{let c=Ge(),o=c!==null,[Z,_]=Te(Y,I.variantKeys),{closeDelay:ee=0,closeOnEscapeKey:te=!0,closeOnOutsidePress:oe=!0,isOpen:ne,lockScroll:v=!0,offset:se=4,openDelay:re=75,placement:f=o?"right-start":"bottom",defaultOpen:ae=!1,onOpenChange:le,triggerOn:ie="click"}=Z,a=we(),i=xe(),P=Le(),[s=!1,p]=De({defaultProp:ae,onChange:le,prop:ne}),[ue,y]=M(!1),[m,F]=M(null),[N,h]=M(null),O=X([]),C=X([]),ce=N?7:0,{floatingStyles:x,refs:b,context:r}=Ce({nodeId:i,open:s,onOpenChange:p,placement:f,middleware:[Me({mainAxis:se+ce,alignmentAxis:o?-4:0}),Ie(),Fe({padding:5}),ye({element:N}),Ne({apply({availableHeight:e,elements:u,availableWidth:g}){u.floating.style.setProperty("--available-width",`${g}px`),u.floating.style.setProperty("--available-height",`${e}px`),u.floating.style.setProperty("--transform-origin","top left")}})],whileElementsMounted:be}),pe=Ee(r,{enabled:ie==="hover"||o,delay:{open:re,close:ee},handleClose:ve({blockPointerEvents:!0})}),me=he(r,{event:"mousedown",toggle:!o,ignoreMouse:o}),de=Se(r,{role:"menu"}),ge=Oe(r,{bubbles:!0,escapeKey:te,outsidePress:oe}),fe=Re(r,{listRef:O,activeIndex:m,nested:o,onNavigate:F}),Pe=Ae(r,{enabled:s,listRef:C,onMatch:F,activeIndex:m}),{getReferenceProps:G,getFloatingProps:w,getItemProps:E}=ke([pe,me,de,ge,fe,Pe]);Q(()=>{if(!a)return;function e(){p(!1)}function u(g){g.nodeId!==i&&g.parentId===c&&p(!1)}return a.events.on("click",e),a.events.on("menuopen",u),()=>{a.events.off("click",e),a.events.off("menuopen",u)}},[a,i,c,p,s]),Q(()=>{s&&a&&a.events.emit("menuopen",{parentId:c,nodeId:i})},[a,s,i,c]);let t=I(_),k=s&&ue&&o,L=He([b.setReference,P.ref]),d=J(),R=n(()=>({ref:L,tabIndex:o?d.activeIndex===P.index?0:-1:void 0,"data-slot":l("trigger"),role:o?"menuitem":void 0,"data-active":k,"data-nested":o,"data-open":s,...G({...d.getItemProps({onMouseEnter(){y(!1),d.setHasFocusInside(!0)}})})}),[G,k,o,s,P.index,L,d]),S=n(()=>({lockScroll:v,"data-slot":l("overlay"),className:t.backdrop()}),[v,t]),A=n(()=>({context:r,modal:!0,initialFocus:1,returnFocus:!o,disabled:!1}),[r,o]),D=n(e=>({...e,"data-component":l("menu"),"data-slot":l("container"),className:t.container(),ref:b.setFloating,style:x,...w()}),[x,w,b.setFloating,t]),H=n(()=>({className:t.content()}),[t]),T=n(e=>({tipRadius:6,...e,context:r,ref:h,className:t.arrow({className:e.className})}),[r,h,t]),V=n(()=>({id:i}),[i]),K=n(()=>({elementsRef:O,labelsRef:C}),[]),U=W(()=>({activeIndex:m,getItemProps:E,setHasFocusInside:y}),[m,E,y]),$=n(e=>({...e,"data-slot":l("menu-item"),className:t.menuItem({className:e.className,color:e.color}),role:"menuitem"}),[t]),j=n(e=>({...e,"data-slot":l("submenu-indicator"),className:t.submenuIndicator({className:e.className})}),[t]),z=n(e=>({...e,"data-slot":l("menu-item-indicator"),className:t.menuItemIndicator({className:e.className})}),[t]),q=n(e=>({...e,"data-slot":l("menu-group"),className:t.menuGroup({className:e.className})}),[t]),B=n(e=>({...e,"data-slot":l("menu-group-label"),className:t.menuGroupLabel({className:e.className})}),[t]);return W(()=>({getOverlayProps:S,getFocusManagerProps:A,getContentProps:H,getArrowProps:T,getNodeProps:V,isOpen:s,getTriggerProps:R,getFloatingListProps:K,floatingCtx:U,getContainerProps:D,getMenuItemProps:$,isNested:o,getSubmenuIndicatorProps:j,getMenuGroupProps:q,getMenuGroupLabelProps:B,placement:f,getMenuItemIndicatorProps:z}),[z,S,A,H,T,V,s,R,K,U,D,$,o,j,q,B,f])};export{Be as a};
@@ -0,0 +1 @@
1
+ import{createConfigContext as e}from"@jamsrui/utils";var[n,r]=e({displayName:"MenuConfigContext"});export{n as a,r as b};
@@ -0,0 +1 @@
1
+ import{radiusVariant as e,tv as r}from"@jamsrui/utils";var t=r({slots:{arrow:"fill-background-secondary",backdrop:"z-backdrop",container:"min-w-[150px] z-popover outline-none outline-0",content:["relative z-popover box-border inline-flex w-full flex-col justify-center bg-surface p-1 text-sm shadow-md outline-none","shadow-lg border-[0.5px] border-divider-dark origin-(--transform-origin)"],menuItem:["relative box-border flex size-full select-none items-center gap-2 px-2 py-1.5 text-left outline-none data-disabled:cursor-not-allowed data-disabled:opacity-60","ui-active:bg-surface-secondary"],menuGroup:[""],menuGroupLabel:"pl-2 text-foreground-secondary py-1",submenuIndicator:"ml-auto size-4",menuItemIndicator:"size-4"},variants:{radius:e(["content","menuItem"]),backdrop:{transparent:{backdrop:""},opaque:{backdrop:"bg-black/50"},blur:{backdrop:"bg-black/30 backdrop-blur-md backdrop-saturate-150"}},color:{default:{menuItem:"ui-hover:bg-surface-secondary ui-hover:text-foreground"},primary:{menuItem:"ui-hover:bg-primary ui-hover:text-primary-foreground"},secondary:{menuItem:"ui-hover:bg-secondary ui-hover:text-secondary-foreground"},success:{menuItem:"ui-hover:bg-success ui-hover:text-success-foreground"},warning:{menuItem:"ui-hover:bg-warning ui-hover:text-warning-foreground"},danger:{menuItem:"ui-hover:bg-danger ui-hover:text-danger-foreground"}}},defaultVariants:{backdrop:"transparent",radius:"md",color:"default"}});export{t as a};
@@ -0,0 +1 @@
1
+ import{createContext as e,use as t}from"react";var o=e({isChecked:!1}),r=()=>t(o);export{o as a,r as b};
@@ -0,0 +1 @@
1
+ import{b as r}from"./chunk-IP6JQ5TM.mjs";import{FloatingArrow as e}from"@floating-ui/react";import{jsx as n}from"react/jsx-runtime";var s=o=>{let{getArrowProps:t}=r();return n(e,{...t(o)})};export{s as a};
@@ -0,0 +1 @@
1
+ import{Divider as r}from"@jamsrui/divider";import{jsx as o}from"react/jsx-runtime";var a=e=>o(r,{...e,className:"my-1.5"});export{a};
@@ -0,0 +1 @@
1
+ import{b as i}from"./chunk-MCQCEY2U.mjs";import{a as r}from"./chunk-V3CQJ2RS.mjs";import{a as n}from"./chunk-7IUW47U3.mjs";import{useCallback as p}from"react";import{jsx as s}from"react/jsx-runtime";var M=a=>{let{value:e,...u}=a,{value:m,isDisabled:t,setValue:o}=i(),l=p(()=>{t||o(e)},[t,e,o]);return s(r,{value:{isChecked:m===e},children:s(n,{preventCloseOnClick:!0,onClick:l,...u})})};export{M as a};
@@ -0,0 +1 @@
1
+ import{b as t}from"./chunk-IP6JQ5TM.mjs";import{motion as r}from"motion/react";import{jsx as p}from"react/jsx-runtime";var m=o=>{let{children:n,...e}=o,{getContentProps:i,isNested:s}=t();return p(r.div,{...s?{}:{initial:{opacity:0,scale:.8},transition:{type:"spring",stiffness:300,damping:25},animate:{opacity:1,scale:1,x:0,y:0},exit:{opacity:0,scale:.8,transition:{duration:.2}}},...i(e),children:n})};export{m as a};
package/dist/index.d.mts CHANGED
@@ -1,21 +1,62 @@
1
- export { M as Menu, a as MenuItem } from './menu-BQP9o4yc.mjs';
2
- export { MenuCheckboxItem } from './menu-checkbox-item.mjs';
1
+ import * as react from 'react';
2
+ import * as react_jsx_runtime from 'react/jsx-runtime';
3
+ import { M as Menu$1, a as MenuItem } from './menu-BpwPA3vD.mjs';
4
+ import { MenuArrow } from './menu-arrow.mjs';
5
+ import { MenuCheckboxItem } from './menu-checkbox-item.mjs';
6
+ export { MenuContainer } from './menu-container.mjs';
7
+ import { MenuContent } from './menu-content.mjs';
8
+ import { MenuGroup } from './menu-group.mjs';
9
+ import { MenuGroupLabel } from './menu-group-label.mjs';
10
+ import { MenuItemIndicator } from './menu-item-indicator.mjs';
11
+ import { MenuRadioGroup } from './menu-radio-group.mjs';
12
+ import { MenuRadioItem } from './menu-radio-item.mjs';
13
+ import { MenuSeparator } from './menu-separator.mjs';
14
+ import { SubmenuIndicator } from './menu-submenu-indicator.mjs';
15
+ import { MenuTrigger } from './menu-trigger.mjs';
3
16
  export { MenuConfig, useMenuConfig } from './menu-config.mjs';
4
- export { MenuContent } from './menu-content.mjs';
5
- export { MenuGroup } from './menu-group.mjs';
6
- export { MenuGroupLabel } from './menu-group-label.mjs';
7
- export { MenuRadioGroup } from './menu-radio-group.mjs';
8
- export { MenuRadioItem } from './menu-radio-item.mjs';
9
- export { MenuSeparator } from './menu-separator.mjs';
10
- export { MenuTrigger } from './menu-trigger.mjs';
11
- import 'react/jsx-runtime';
12
17
  import '@floating-ui/react';
13
18
  import '@jamsrui/utils';
14
- import 'react';
15
- import './menu-content2.mjs';
16
- import 'motion/react';
17
19
  import './menu-floating-context.mjs';
18
- import './menu-item-inner.mjs';
19
- import './menu-root.mjs';
20
20
  import './styles.mjs';
21
+ import 'motion/react';
22
+ import '@jamsrui/divider';
21
23
  import '@jamsrui/core';
24
+
25
+ declare const Menu: ((props: Menu$1.Props) => react_jsx_runtime.JSX.Element) & {
26
+ Root: (props: Menu$1.Props) => react_jsx_runtime.JSX.Element;
27
+ Group: (props: MenuGroup.Props) => react.ReactElement<unknown, string | react.JSXElementConstructor<any>>;
28
+ Item: (props: MenuItem.Props) => react.ReactElement<unknown, string | react.JSXElementConstructor<any>>;
29
+ CheckboxItem: (props: MenuCheckboxItem.Props) => react_jsx_runtime.JSX.Element;
30
+ RadioItem: (props: MenuRadioItem.Props) => react_jsx_runtime.JSX.Element;
31
+ RadioGroup: (props: MenuRadioGroup.Props) => react_jsx_runtime.JSX.Element;
32
+ Separator: (props: MenuSeparator.Props) => react_jsx_runtime.JSX.Element;
33
+ Trigger: (props: MenuTrigger.Props) => react.ReactElement<unknown, string | react.JSXElementConstructor<any>> | null;
34
+ GroupLabel: (props: MenuGroupLabel.Props) => react.ReactElement<unknown, string | react.JSXElementConstructor<any>>;
35
+ Content: (props: MenuContent.Props) => react_jsx_runtime.JSX.Element;
36
+ ContentRoot: (props: MenuContent.Props) => react_jsx_runtime.JSX.Element;
37
+ SubmenuIndicator: (props: SubmenuIndicator.Props) => react.ReactElement<unknown, string | react.JSXElementConstructor<any>>;
38
+ ItemIndicator: (props: MenuItemIndicator.Props) => react.ReactElement<unknown, string | react.JSXElementConstructor<any>>;
39
+ Arrow: (props: MenuArrow.Props) => react_jsx_runtime.JSX.Element;
40
+ };
41
+ declare namespace Menu {
42
+ interface Props extends Menu$1.Props {
43
+ }
44
+ interface CheckboxItem extends MenuCheckboxItem.Props {
45
+ }
46
+ interface RadioItem extends MenuRadioItem.Props {
47
+ }
48
+ interface RadioGroup extends MenuRadioGroup.Props {
49
+ }
50
+ interface Item extends MenuItem.Props {
51
+ }
52
+ interface Group extends MenuGroup.Props {
53
+ }
54
+ interface GroupLabel extends MenuGroupLabel.Props {
55
+ }
56
+ interface Separator extends MenuSeparator.Props {
57
+ }
58
+ interface Trigger extends MenuTrigger.Props {
59
+ }
60
+ }
61
+
62
+ export { Menu, MenuCheckboxItem, MenuContent, MenuGroup, MenuGroupLabel, MenuItem, MenuRadioGroup, MenuRadioItem, MenuSeparator, MenuTrigger };
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- "use client";import{a as i}from"./chunk-A4ENIW42.mjs";import{a as e}from"./chunk-4DRJMVOY.mjs";import"./chunk-6RHOGA5S.mjs";import"./chunk-VDALF5ID.mjs";import{a as p}from"./chunk-3TXNSYIT.mjs";import{a as f}from"./chunk-SNAXAYWZ.mjs";import{a as x}from"./chunk-EDFHOYYY.mjs";import"./chunk-MCQCEY2U.mjs";import{a as M}from"./chunk-WYIM2S4D.mjs";import{a as r}from"./chunk-GBR7YVTW.mjs";import{a as o}from"./chunk-Z3M52LAZ.mjs";import"./chunk-W6Z5NYJV.mjs";import{a as t,b as n}from"./chunk-5DZZ6VC5.mjs";import{a as u}from"./chunk-BDCGHIJW.mjs";import"./chunk-MFCNUSNC.mjs";import"./chunk-LSC54BQQ.mjs";import"./chunk-4QOOXBEL.mjs";import{a as m}from"./chunk-DHAF5YKZ.mjs";import"./chunk-IP6JQ5TM.mjs";export{e as Menu,r as MenuCheckboxItem,t as MenuConfig,u as MenuContent,p as MenuGroup,m as MenuGroupLabel,o as MenuItem,f as MenuRadioGroup,x as MenuRadioItem,M as MenuSeparator,i as MenuTrigger,n as useMenuConfig};
1
+ import{a as c,c as m}from"./chunk-FJVOYNHF.mjs";import{a as i}from"./chunk-VU45CFXY.mjs";import"./chunk-AQWDIQDM.mjs";import{a as j}from"./chunk-A4ENIW42.mjs";import"./chunk-AEYH7VXJ.mjs";import"./chunk-JRUGEZXQ.mjs";import"./chunk-TK6HMBAL.mjs";import{a as f}from"./chunk-DHAF5YKZ.mjs";import{a as e}from"./chunk-3TXNSYIT.mjs";import"./chunk-E5KNVWWQ.mjs";import{a as g}from"./chunk-IGMCHKXT.mjs";import{a as h}from"./chunk-WCI2HQ7Q.mjs";import"./chunk-MCQCEY2U.mjs";import"./chunk-VGN4WMWX.mjs";import{a as b}from"./chunk-73ICREUJ.mjs";import"./chunk-V3CQJ2RS.mjs";import{a}from"./chunk-7IUW47U3.mjs";import{a as k,b as l}from"./chunk-OJO3ZCS3.mjs";import{a as d}from"./chunk-YQVA5YDV.mjs";import"./chunk-IP6JQ5TM.mjs";import"./chunk-5GJHZWBN.mjs";export{m as Menu,b as MenuCheckboxItem,k as MenuConfig,c as MenuContainer,d as MenuContent,e as MenuGroup,f as MenuGroupLabel,a as MenuItem,g as MenuRadioGroup,h as MenuRadioItem,i as MenuSeparator,j as MenuTrigger,l as useMenuConfig};
@@ -1,24 +1,23 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import { FloatingOverlayProps, FloatingFocusManagerProps, FloatingArrowProps, FloatingNodeProps, FloatingList, Placement } from '@floating-ui/react';
3
- import { UIProps, PropGetter, SlotsToClassNames } from '@jamsrui/utils';
3
+ import { UIProps, PropGetter } from '@jamsrui/utils';
4
4
  import * as react from 'react';
5
5
  import { ComponentProps } from 'react';
6
- import { MenuContent2 } from './menu-content2.mjs';
6
+ import { MenuContainer } from './menu-container.mjs';
7
+ import { MenuContent } from './menu-content.mjs';
7
8
  import { MenuFloatingContext } from './menu-floating-context.mjs';
8
9
  import { MenuGroup } from './menu-group.mjs';
9
10
  import { MenuGroupLabel } from './menu-group-label.mjs';
10
- import { MenuItemInner } from './menu-item-inner.mjs';
11
- import { MenuRoot } from './menu-root.mjs';
12
- import { MenuVariantProps, MenuSlots } from './styles.mjs';
11
+ import { MenuItemIndicator } from './menu-item-indicator.mjs';
12
+ import { SubmenuIndicator } from './menu-submenu-indicator.mjs';
13
+ import { MenuVariantProps } from './styles.mjs';
13
14
 
14
15
  declare const MenuItem: (props: MenuItem.Props) => react.ReactElement<unknown, string | react.JSXElementConstructor<any>>;
15
16
  declare namespace MenuItem {
16
17
  interface Props extends UIProps<"button"> {
17
- textValue?: string;
18
- isDisabled?: boolean;
18
+ textValue: string;
19
+ disabled?: boolean;
19
20
  color?: Menu.Props["color"];
20
- startContent?: React.ReactNode;
21
- endContent?: React.ReactNode;
22
21
  preventCloseOnClick?: boolean;
23
22
  }
24
23
  }
@@ -26,25 +25,24 @@ declare namespace MenuItem {
26
25
  declare const useMenu: (props: useMenu.Props) => {
27
26
  getOverlayProps: () => FloatingOverlayProps & UIProps<"div">;
28
27
  getFocusManagerProps: () => Omit<FloatingFocusManagerProps, "children">;
29
- getContentProps: PropGetter<MenuContent2.Props>;
30
- getArrowProps: () => FloatingArrowProps;
28
+ getContentProps: PropGetter<MenuContent.Props>;
29
+ getArrowProps: (props: Partial<FloatingArrowProps>) => FloatingArrowProps;
31
30
  getNodeProps: () => FloatingNodeProps;
32
31
  isOpen: boolean;
33
32
  getTriggerProps: () => UIProps<"div">;
34
33
  getFloatingListProps: () => Omit<ComponentProps<typeof FloatingList>, "children">;
35
- hideArrow: boolean;
36
34
  floatingCtx: MenuFloatingContext.Props;
37
- getRootProps: PropGetter<MenuRoot.Props>;
38
- getMenuItemProps: PropGetter<MenuItem.Props>;
35
+ getContainerProps: PropGetter<MenuContainer.Props>;
36
+ getMenuItemProps: PropGetter<Partial<MenuItem.Props>>;
39
37
  isNested: boolean;
40
- getMenuItemInnerProps: PropGetter<MenuItemInner.Props>;
38
+ getSubmenuIndicatorProps: PropGetter<SubmenuIndicator.Props>;
41
39
  getMenuGroupProps: PropGetter<MenuGroup.Props>;
42
40
  getMenuGroupLabelProps: PropGetter<MenuGroupLabel.Props>;
43
41
  placement: Placement;
42
+ getMenuItemIndicatorProps: PropGetter<MenuItemIndicator.Props>;
44
43
  };
45
44
  declare namespace useMenu {
46
45
  interface Props extends MenuVariantProps {
47
- classNames?: SlotsToClassNames<MenuSlots>;
48
46
  triggerOn?: "hover" | "click";
49
47
  isOpen?: boolean;
50
48
  defaultOpen?: boolean;
@@ -56,7 +54,6 @@ declare namespace useMenu {
56
54
  lockScroll?: boolean;
57
55
  placement?: Placement;
58
56
  offset?: number;
59
- hideArrow?: boolean;
60
57
  }
61
58
  }
62
59
 
@@ -0,0 +1,10 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { FloatingArrowProps } from '@floating-ui/react';
3
+
4
+ declare const MenuArrow: (props: MenuArrow.Props) => react_jsx_runtime.JSX.Element;
5
+ declare namespace MenuArrow {
6
+ interface Props extends Omit<FloatingArrowProps, "context"> {
7
+ }
8
+ }
9
+
10
+ export { MenuArrow };
@@ -0,0 +1 @@
1
+ "use client";import{a}from"./chunk-VGN4WMWX.mjs";import"./chunk-IP6JQ5TM.mjs";export{a as MenuArrow};
@@ -1,15 +1,16 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { a as MenuItem } from './menu-BQP9o4yc.mjs';
2
+ import { a as MenuItem } from './menu-BpwPA3vD.mjs';
3
3
  import '@floating-ui/react';
4
4
  import '@jamsrui/utils';
5
5
  import 'react';
6
- import './menu-content2.mjs';
6
+ import './menu-container.mjs';
7
+ import './menu-content.mjs';
7
8
  import 'motion/react';
8
9
  import './menu-floating-context.mjs';
9
10
  import './menu-group.mjs';
10
11
  import './menu-group-label.mjs';
11
- import './menu-item-inner.mjs';
12
- import './menu-root.mjs';
12
+ import './menu-item-indicator.mjs';
13
+ import './menu-submenu-indicator.mjs';
13
14
  import './styles.mjs';
14
15
 
15
16
  declare const MenuCheckboxItem: (props: MenuCheckboxItem.Props) => react_jsx_runtime.JSX.Element;
@@ -18,7 +19,6 @@ declare namespace MenuCheckboxItem {
18
19
  isChecked?: boolean;
19
20
  onCheckedChange?: (checked: boolean) => void;
20
21
  defaultChecked?: boolean;
21
- tickPlacement?: "start" | "end";
22
22
  }
23
23
  }
24
24
 
@@ -1 +1 @@
1
- import{a}from"./chunk-GBR7YVTW.mjs";import"./chunk-Z3M52LAZ.mjs";import"./chunk-W6Z5NYJV.mjs";import"./chunk-4QOOXBEL.mjs";import"./chunk-IP6JQ5TM.mjs";export{a as MenuCheckboxItem};
1
+ "use client";import{a}from"./chunk-73ICREUJ.mjs";import"./chunk-V3CQJ2RS.mjs";import"./chunk-7IUW47U3.mjs";import"./chunk-IP6JQ5TM.mjs";import"./chunk-5GJHZWBN.mjs";export{a as MenuCheckboxItem};
@@ -1,16 +1,17 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import { GlobalConfigProps } from '@jamsrui/core';
3
- import { M as Menu } from './menu-BQP9o4yc.mjs';
3
+ import { M as Menu } from './menu-BpwPA3vD.mjs';
4
4
  import '@floating-ui/react';
5
5
  import '@jamsrui/utils';
6
6
  import 'react';
7
- import './menu-content2.mjs';
7
+ import './menu-container.mjs';
8
+ import './menu-content.mjs';
8
9
  import 'motion/react';
9
10
  import './menu-floating-context.mjs';
10
11
  import './menu-group.mjs';
11
12
  import './menu-group-label.mjs';
12
- import './menu-item-inner.mjs';
13
- import './menu-root.mjs';
13
+ import './menu-item-indicator.mjs';
14
+ import './menu-submenu-indicator.mjs';
14
15
  import './styles.mjs';
15
16
 
16
17
  declare const useMenuConfig: () => MenuConfig.Props;
@@ -1 +1 @@
1
- import{a,b}from"./chunk-5DZZ6VC5.mjs";export{a as MenuConfig,b as useMenuConfig};
1
+ "use client";import{a,b}from"./chunk-OJO3ZCS3.mjs";export{a as MenuConfig,b as useMenuConfig};
@@ -0,0 +1,13 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { UIProps } from '@jamsrui/utils';
3
+ import { MenuContent } from './menu-content.mjs';
4
+ import 'motion/react';
5
+
6
+ declare const MenuContainer: (props: MenuContainer.Props) => react_jsx_runtime.JSX.Element;
7
+ declare namespace MenuContainer {
8
+ interface Props extends UIProps<"div"> {
9
+ }
10
+ }
11
+ declare const MenuContainerWithContent: (props: MenuContent.Props) => react_jsx_runtime.JSX.Element;
12
+
13
+ export { MenuContainer, MenuContainerWithContent };
@@ -0,0 +1 @@
1
+ "use client";import{a,b}from"./chunk-FJVOYNHF.mjs";import"./chunk-VU45CFXY.mjs";import"./chunk-AQWDIQDM.mjs";import"./chunk-A4ENIW42.mjs";import"./chunk-AEYH7VXJ.mjs";import"./chunk-JRUGEZXQ.mjs";import"./chunk-TK6HMBAL.mjs";import"./chunk-DHAF5YKZ.mjs";import"./chunk-3TXNSYIT.mjs";import"./chunk-E5KNVWWQ.mjs";import"./chunk-IGMCHKXT.mjs";import"./chunk-WCI2HQ7Q.mjs";import"./chunk-MCQCEY2U.mjs";import"./chunk-VGN4WMWX.mjs";import"./chunk-73ICREUJ.mjs";import"./chunk-V3CQJ2RS.mjs";import"./chunk-7IUW47U3.mjs";import"./chunk-OJO3ZCS3.mjs";import"./chunk-YQVA5YDV.mjs";import"./chunk-IP6JQ5TM.mjs";import"./chunk-5GJHZWBN.mjs";export{a as MenuContainer,b as MenuContainerWithContent};
@@ -1,9 +1,9 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { UIProps } from '@jamsrui/utils';
2
+ import { HTMLMotionProps } from 'motion/react';
3
3
 
4
4
  declare const MenuContent: (props: MenuContent.Props) => react_jsx_runtime.JSX.Element;
5
5
  declare namespace MenuContent {
6
- interface Props extends UIProps<"div"> {
6
+ interface Props extends HTMLMotionProps<"div"> {
7
7
  }
8
8
  }
9
9
 
@@ -1 +1 @@
1
- import{a}from"./chunk-BDCGHIJW.mjs";import"./chunk-MFCNUSNC.mjs";import"./chunk-LSC54BQQ.mjs";import"./chunk-4QOOXBEL.mjs";import"./chunk-IP6JQ5TM.mjs";export{a as MenuContent};
1
+ "use client";import{a}from"./chunk-YQVA5YDV.mjs";import"./chunk-IP6JQ5TM.mjs";export{a as MenuContent};
@@ -1,15 +1,16 @@
1
1
  import * as react from 'react';
2
- import { u as useMenu } from './menu-BQP9o4yc.mjs';
2
+ import { u as useMenu } from './menu-BpwPA3vD.mjs';
3
3
  import 'react/jsx-runtime';
4
4
  import '@floating-ui/react';
5
5
  import '@jamsrui/utils';
6
- import './menu-content2.mjs';
6
+ import './menu-container.mjs';
7
+ import './menu-content.mjs';
7
8
  import 'motion/react';
8
9
  import './menu-floating-context.mjs';
9
10
  import './menu-group.mjs';
10
11
  import './menu-group-label.mjs';
11
- import './menu-item-inner.mjs';
12
- import './menu-root.mjs';
12
+ import './menu-item-indicator.mjs';
13
+ import './menu-submenu-indicator.mjs';
13
14
  import './styles.mjs';
14
15
 
15
16
  declare const useMenuContext: () => MenuContext.Props;
@@ -1 +1 @@
1
- import{a,b}from"./chunk-IP6JQ5TM.mjs";export{a as MenuContext,b as useMenuContext};
1
+ "use client";import{a,b}from"./chunk-IP6JQ5TM.mjs";export{a as MenuContext,b as useMenuContext};
@@ -1 +1 @@
1
- import{a,b}from"./chunk-4QOOXBEL.mjs";export{a as MenuFloatingContext,b as useMenuFloatingContext};
1
+ "use client";import{a,b}from"./chunk-5GJHZWBN.mjs";export{a as MenuFloatingContext,b as useMenuFloatingContext};
@@ -1 +1 @@
1
- import{a}from"./chunk-DHAF5YKZ.mjs";import"./chunk-IP6JQ5TM.mjs";export{a as MenuGroupLabel};
1
+ "use client";import{a}from"./chunk-DHAF5YKZ.mjs";import"./chunk-IP6JQ5TM.mjs";export{a as MenuGroupLabel};
@@ -1 +1 @@
1
- import{a}from"./chunk-3TXNSYIT.mjs";import"./chunk-IP6JQ5TM.mjs";export{a as MenuGroup};
1
+ "use client";import{a}from"./chunk-3TXNSYIT.mjs";import"./chunk-IP6JQ5TM.mjs";export{a as MenuGroup};
@@ -0,0 +1,11 @@
1
+ import * as react from 'react';
2
+
3
+ declare const useMenuItemIndicatorContext: () => MenuItemIndicatorContext.Props;
4
+ declare const MenuItemIndicatorContext: react.Context<MenuItemIndicatorContext.Props>;
5
+ declare namespace MenuItemIndicatorContext {
6
+ interface Props {
7
+ isChecked: boolean;
8
+ }
9
+ }
10
+
11
+ export { MenuItemIndicatorContext, useMenuItemIndicatorContext };
@@ -0,0 +1 @@
1
+ import{a,b}from"./chunk-V3CQJ2RS.mjs";export{a as MenuItemIndicatorContext,b as useMenuItemIndicatorContext};
@@ -0,0 +1,10 @@
1
+ import * as react from 'react';
2
+ import { UIProps } from '@jamsrui/utils';
3
+
4
+ declare const MenuItemIndicator: (props: MenuItemIndicator.Props) => react.ReactElement<unknown, string | react.JSXElementConstructor<any>>;
5
+ declare namespace MenuItemIndicator {
6
+ interface Props extends UIProps<"span"> {
7
+ }
8
+ }
9
+
10
+ export { MenuItemIndicator };
@@ -0,0 +1 @@
1
+ "use client";import{a}from"./chunk-E5KNVWWQ.mjs";import"./chunk-V3CQJ2RS.mjs";import"./chunk-IP6JQ5TM.mjs";export{a as MenuItemIndicator};
@@ -1,13 +1,14 @@
1
1
  import 'react';
2
2
  import '@jamsrui/utils';
3
- export { a as MenuItem } from './menu-BQP9o4yc.mjs';
3
+ export { a as MenuItem } from './menu-BpwPA3vD.mjs';
4
4
  import 'react/jsx-runtime';
5
5
  import '@floating-ui/react';
6
- import './menu-content2.mjs';
6
+ import './menu-container.mjs';
7
+ import './menu-content.mjs';
7
8
  import 'motion/react';
8
9
  import './menu-floating-context.mjs';
9
10
  import './menu-group.mjs';
10
11
  import './menu-group-label.mjs';
11
- import './menu-item-inner.mjs';
12
- import './menu-root.mjs';
12
+ import './menu-item-indicator.mjs';
13
+ import './menu-submenu-indicator.mjs';
13
14
  import './styles.mjs';
@@ -1 +1 @@
1
- import{a}from"./chunk-Z3M52LAZ.mjs";import"./chunk-W6Z5NYJV.mjs";import"./chunk-4QOOXBEL.mjs";import"./chunk-IP6JQ5TM.mjs";export{a as MenuItem};
1
+ "use client";import{a}from"./chunk-7IUW47U3.mjs";import"./chunk-IP6JQ5TM.mjs";import"./chunk-5GJHZWBN.mjs";export{a as MenuItem};
@@ -1 +1 @@
1
- import{a,b}from"./chunk-MCQCEY2U.mjs";export{a as MenuRadioGroupContext,b as useMenuRadioGroupContext};
1
+ "use client";import{a,b}from"./chunk-MCQCEY2U.mjs";export{a as MenuRadioGroupContext,b as useMenuRadioGroupContext};
@@ -1 +1 @@
1
- import{a}from"./chunk-SNAXAYWZ.mjs";import"./chunk-MCQCEY2U.mjs";export{a as MenuRadioGroup};
1
+ "use client";import{a}from"./chunk-IGMCHKXT.mjs";import"./chunk-MCQCEY2U.mjs";export{a as MenuRadioGroup};
@@ -1,22 +1,22 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { a as MenuItem } from './menu-BQP9o4yc.mjs';
2
+ import { a as MenuItem } from './menu-BpwPA3vD.mjs';
3
3
  import '@floating-ui/react';
4
4
  import '@jamsrui/utils';
5
5
  import 'react';
6
- import './menu-content2.mjs';
6
+ import './menu-container.mjs';
7
+ import './menu-content.mjs';
7
8
  import 'motion/react';
8
9
  import './menu-floating-context.mjs';
9
10
  import './menu-group.mjs';
10
11
  import './menu-group-label.mjs';
11
- import './menu-item-inner.mjs';
12
- import './menu-root.mjs';
12
+ import './menu-item-indicator.mjs';
13
+ import './menu-submenu-indicator.mjs';
13
14
  import './styles.mjs';
14
15
 
15
16
  declare const MenuRadioItem: (props: MenuRadioItem.Props) => react_jsx_runtime.JSX.Element;
16
17
  declare namespace MenuRadioItem {
17
18
  interface Props extends MenuItem.Props {
18
19
  value: string;
19
- tickPlacement?: "start" | "end";
20
20
  }
21
21
  }
22
22
 
@@ -1 +1 @@
1
- import{a}from"./chunk-EDFHOYYY.mjs";import"./chunk-MCQCEY2U.mjs";import"./chunk-Z3M52LAZ.mjs";import"./chunk-W6Z5NYJV.mjs";import"./chunk-4QOOXBEL.mjs";import"./chunk-IP6JQ5TM.mjs";export{a as MenuRadioItem};
1
+ "use client";import{a}from"./chunk-WCI2HQ7Q.mjs";import"./chunk-MCQCEY2U.mjs";import"./chunk-V3CQJ2RS.mjs";import"./chunk-7IUW47U3.mjs";import"./chunk-IP6JQ5TM.mjs";import"./chunk-5GJHZWBN.mjs";export{a as MenuRadioItem};
@@ -1,5 +1,10 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { Divider } from '@jamsrui/divider';
2
3
 
3
- declare const MenuSeparator: () => react_jsx_runtime.JSX.Element;
4
+ declare const MenuSeparator: (props: MenuSeparator.Props) => react_jsx_runtime.JSX.Element;
5
+ declare namespace MenuSeparator {
6
+ interface Props extends Divider.Props {
7
+ }
8
+ }
4
9
 
5
10
  export { MenuSeparator };
@@ -1 +1 @@
1
- import{a}from"./chunk-WYIM2S4D.mjs";export{a as MenuSeparator};
1
+ import{a}from"./chunk-VU45CFXY.mjs";export{a as MenuSeparator};
@@ -0,0 +1,10 @@
1
+ import * as react from 'react';
2
+ import { UIProps } from '@jamsrui/utils';
3
+
4
+ declare const SubmenuIndicator: (props: SubmenuIndicator.Props) => react.ReactElement<unknown, string | react.JSXElementConstructor<any>>;
5
+ declare namespace SubmenuIndicator {
6
+ interface Props extends UIProps<"span"> {
7
+ }
8
+ }
9
+
10
+ export { SubmenuIndicator };
@@ -0,0 +1 @@
1
+ "use client";import{a}from"./chunk-AQWDIQDM.mjs";import"./chunk-IP6JQ5TM.mjs";export{a as SubmenuIndicator};
@@ -1 +1 @@
1
- import{a}from"./chunk-A4ENIW42.mjs";import"./chunk-IP6JQ5TM.mjs";export{a as MenuTrigger};
1
+ "use client";import{a}from"./chunk-A4ENIW42.mjs";import"./chunk-IP6JQ5TM.mjs";export{a as MenuTrigger};
package/dist/menu.d.mts CHANGED
@@ -1,13 +1,14 @@
1
1
  import 'react/jsx-runtime';
2
- export { M as Menu } from './menu-BQP9o4yc.mjs';
2
+ export { M as Menu } from './menu-BpwPA3vD.mjs';
3
3
  import '@floating-ui/react';
4
4
  import '@jamsrui/utils';
5
5
  import 'react';
6
- import './menu-content2.mjs';
6
+ import './menu-container.mjs';
7
+ import './menu-content.mjs';
7
8
  import 'motion/react';
8
9
  import './menu-floating-context.mjs';
9
10
  import './menu-group.mjs';
10
11
  import './menu-group-label.mjs';
11
- import './menu-item-inner.mjs';
12
- import './menu-root.mjs';
12
+ import './menu-item-indicator.mjs';
13
+ import './menu-submenu-indicator.mjs';
13
14
  import './styles.mjs';
package/dist/menu.mjs CHANGED
@@ -1 +1 @@
1
- import{a}from"./chunk-4DRJMVOY.mjs";import"./chunk-6RHOGA5S.mjs";import"./chunk-VDALF5ID.mjs";import"./chunk-4QOOXBEL.mjs";import"./chunk-IP6JQ5TM.mjs";export{a as Menu};
1
+ "use client";import{a}from"./chunk-AEYH7VXJ.mjs";import"./chunk-JRUGEZXQ.mjs";import"./chunk-TK6HMBAL.mjs";import"./chunk-IP6JQ5TM.mjs";import"./chunk-5GJHZWBN.mjs";export{a as Menu};
package/dist/styles.d.mts CHANGED
@@ -46,12 +46,13 @@ declare const menuVariants: _jamsrui_utils.TVReturnType<{
46
46
  }, {
47
47
  arrow: string;
48
48
  backdrop: string;
49
- root: string;
49
+ container: string;
50
50
  content: string[];
51
51
  menuItem: string[];
52
52
  menuGroup: string[];
53
53
  menuGroupLabel: string;
54
- menuItemInner: string;
54
+ submenuIndicator: string;
55
+ menuItemIndicator: string;
55
56
  }, undefined, {
56
57
  radius: {
57
58
  sm: {};
@@ -97,12 +98,13 @@ declare const menuVariants: _jamsrui_utils.TVReturnType<{
97
98
  }, {
98
99
  arrow: string;
99
100
  backdrop: string;
100
- root: string;
101
+ container: string;
101
102
  content: string[];
102
103
  menuItem: string[];
103
104
  menuGroup: string[];
104
105
  menuGroupLabel: string;
105
- menuItemInner: string;
106
+ submenuIndicator: string;
107
+ menuItemIndicator: string;
106
108
  }, _jamsrui_utils.TVReturnType<{
107
109
  radius: {
108
110
  sm: {};
@@ -148,12 +150,13 @@ declare const menuVariants: _jamsrui_utils.TVReturnType<{
148
150
  }, {
149
151
  arrow: string;
150
152
  backdrop: string;
151
- root: string;
153
+ container: string;
152
154
  content: string[];
153
155
  menuItem: string[];
154
156
  menuGroup: string[];
155
157
  menuGroupLabel: string;
156
- menuItemInner: string;
158
+ submenuIndicator: string;
159
+ menuItemIndicator: string;
157
160
  }, undefined, unknown, unknown, undefined>>;
158
161
  type MenuVariantProps = VariantProps<typeof menuVariants>;
159
162
  type MenuSlots = keyof ReturnType<typeof menuVariants>;
package/dist/styles.mjs CHANGED
@@ -1 +1 @@
1
- import{a}from"./chunk-VDALF5ID.mjs";export{a as menuVariants};
1
+ import{a}from"./chunk-TK6HMBAL.mjs";export{a as menuVariants};
@@ -1,13 +1,14 @@
1
1
  import '@floating-ui/react';
2
2
  import '@jamsrui/utils';
3
3
  import 'react';
4
- import './menu-content2.mjs';
4
+ import './menu-container.mjs';
5
+ import './menu-content.mjs';
5
6
  import './menu-floating-context.mjs';
6
7
  import './menu-group.mjs';
7
8
  import './menu-group-label.mjs';
8
- export { u as useMenu } from './menu-BQP9o4yc.mjs';
9
- import './menu-item-inner.mjs';
10
- import './menu-root.mjs';
9
+ export { u as useMenu } from './menu-BpwPA3vD.mjs';
10
+ import './menu-item-indicator.mjs';
11
+ import './menu-submenu-indicator.mjs';
11
12
  import './styles.mjs';
12
13
  import 'react/jsx-runtime';
13
14
  import 'motion/react';
package/dist/use-menu.mjs CHANGED
@@ -1 +1 @@
1
- import{a}from"./chunk-6RHOGA5S.mjs";import"./chunk-VDALF5ID.mjs";import"./chunk-4QOOXBEL.mjs";export{a as useMenu};
1
+ import{a}from"./chunk-JRUGEZXQ.mjs";import"./chunk-TK6HMBAL.mjs";import"./chunk-5GJHZWBN.mjs";export{a as useMenu};
package/package.json CHANGED
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "name": "@jamsrui/menu",
3
- "version": "0.0.12",
3
+ "version": "0.0.13",
4
4
  "peerDependencies": {
5
5
  "motion": ">=12",
6
6
  "react": ">=19"
7
7
  },
8
8
  "dependencies": {
9
9
  "@floating-ui/react": ">=0.27",
10
- "@jamsrui/core": "^0.0.10",
11
- "@jamsrui/divider": "^0.0.12",
12
- "@jamsrui/utils": "^0.0.12",
13
- "@jamsrui/hooks": "^0.0.12",
14
- "@jamsrui/icons": "^0.0.10"
10
+ "@jamsrui/core": "^0.0.11",
11
+ "@jamsrui/icons": "^0.0.11",
12
+ "@jamsrui/divider": "^0.0.13",
13
+ "@jamsrui/hooks": "^0.0.13",
14
+ "@jamsrui/utils": "^0.0.13"
15
15
  },
16
16
  "exports": {
17
17
  ".": {
@@ -1 +0,0 @@
1
- import{a as u}from"./chunk-6RHOGA5S.mjs";import{a as r}from"./chunk-IP6JQ5TM.mjs";import{FloatingNode as a,FloatingTree as i,useFloatingParentNodeId as d}from"@floating-ui/react";import{jsx as n}from"react/jsx-runtime";var c=e=>{let t=u(e),{children:o}=e,{getNodeProps:s}=t;return n(r,{value:t,children:n(a,{...s(),children:o})})},g=e=>{let t=d(),{children:o}=e;return t===null?n(i,{children:n(c,{...e,children:o})}):n(c,{...e,children:o})};export{g as a};
@@ -1 +0,0 @@
1
- import{createContext as e,use as t}from"react";var o=e({setHasFocusInside:()=>{},activeIndex:null,getItemProps:()=>({})}),s=()=>t(o);export{o as a,s as b};
@@ -1 +0,0 @@
1
- import{createConfigContext as o}from"@jamsrui/utils";var[n,r]=o({displayName:"MenuConfigContext"});export{n as a,r as b};
@@ -1 +0,0 @@
1
- import{a as v}from"./chunk-VDALF5ID.mjs";import{b as Q}from"./chunk-4QOOXBEL.mjs";import{useCallback as s,useEffect as W,useMemo as X,useRef as N,useState as Y}from"react";import{arrow as ye,autoUpdate as Me,flip as be,offset as ve,safePolygon as Ne,shift as Fe,size as he,useClick as Oe,useDismiss as xe,useFloating as Ce,useFloatingNodeId as Ge,useFloatingParentNodeId as we,useFloatingTree as Re,useHover as ke,useInteractions as Le,useListItem as Se,useListNavigation as Ee,useRole as Ae,useTypeahead as De}from"@floating-ui/react";import{useControlledState as Te,useMergeRefs as He}from"@jamsrui/hooks";import{cn as c,dataAttrDev as i,mapPropsVariants as Ve}from"@jamsrui/utils";var Je=Z=>{let p=we(),t=p!==null,[_,ee]=Ve(Z,v.variantKeys),{closeDelay:te=0,closeOnEscapeKey:oe=!0,closeOnOutsidePress:ne=!0,isOpen:se,lockScroll:F=!0,offset:re=4,openDelay:ae=75,placement:I=t?"right-start":"bottom",defaultOpen:le=!1,onOpenChange:ie,triggerOn:ue="click",classNames:o,hideArrow:y=!!t}=_,l=Re(),u=Ge(),M=Se(),me=y?0:7,[r=!1,d]=Te({defaultProp:le,onChange:ie,prop:se}),[pe,h]=Y(!1),[g,O]=Y(null),x=N(null),C=N([]),G=N([]),{floatingStyles:w,refs:b,context:a}=Ce({nodeId:u,open:r,onOpenChange:d,placement:I,middleware:[ve({mainAxis:re+me,alignmentAxis:t?-4:0}),be(),Fe({padding:5}),ye({element:x}),he({apply({availableHeight:e,elements:m,availableWidth:P}){m.floating.style.setProperty("--available-width",`${P}px`),m.floating.style.setProperty("--available-height",`${e}px`),m.floating.style.setProperty("--transform-origin","top center")}})],whileElementsMounted:Me}),ce=ke(a,{enabled:ue==="hover"||t,delay:{open:ae,close:te},handleClose:Ne({blockPointerEvents:!0})}),de=Oe(a,{event:"mousedown",toggle:!t,ignoreMouse:t}),ge=Ae(a,{role:"menu"}),fe=xe(a,{bubbles:!0,escapeKey:oe,outsidePress:ne}),Pe=Ee(a,{listRef:C,activeIndex:g,nested:t,onNavigate:O}),Ie=De(a,{enabled:r,listRef:G,onMatch:O,activeIndex:g}),{getReferenceProps:R,getFloatingProps:k,getItemProps:L}=Le([ce,de,ge,fe,Pe,Ie]);W(()=>{if(!l)return;function e(){d(!1)}function m(P){P.nodeId!==u&&P.parentId===p&&d(!1)}return l.events.on("click",e),l.events.on("menuopen",m),()=>{l.events.off("click",e),l.events.off("menuopen",m)}},[l,u,p,d,r]),W(()=>{r&&l&&l.events.emit("menuopen",{parentId:p,nodeId:u})},[l,r,u,p]);let n=v(ee),S=r&&pe&&t,E=He([b.setReference,M.ref]),f=Q(),A=s(()=>({ref:E,tabIndex:t?f.activeIndex===M.index?0:-1:void 0,"data-slot":i("trigger"),role:t?"menuitem":void 0,"data-active":S,"data-nested":t,"data-open":r,...R({...f.getItemProps({onMouseEnter(){h(!1),f.setHasFocusInside(!0)}})})}),[R,S,t,r,M.index,E,f]),D=s(()=>({lockScroll:F,"data-slot":i("overlay"),className:n.backdrop({className:o?.backdrop})}),[o?.backdrop,F,n]),T=s(()=>({context:a,modal:!0,initialFocus:1,returnFocus:!t,disabled:!1}),[a,t]),H=s(e=>({...e,"data-component":i("menu"),"data-slot":i("root"),className:n.root({className:o?.root}),ref:b.setFloating,style:w,...k()}),[o?.root,w,k,b.setFloating,n]),V=s(()=>({className:n.content({className:c(o?.content)})}),[o?.content,n]),K=s(()=>({context:a,ref:x,className:n.arrow({className:o?.arrow})}),[o?.arrow,a,n]),U=s(()=>({id:u}),[u]),$=s(()=>({elementsRef:C,labelsRef:G}),[]),j=X(()=>({activeIndex:g,getItemProps:L,setHasFocusInside:h}),[g,L]),z=s(e=>({...e,"data-slot":i("menu-item"),className:n.menuItem({className:c(o?.menuItem,e.className),color:e.color}),role:"menuitem"}),[o?.menuItem,n]),q=s(e=>({...e,"data-slot":i("menu-item-inner"),className:n.menuItemInner({className:c(o?.menuItemInner,e.className)})}),[o?.menuItemInner,n]),B=s(e=>({...e,"data-slot":i("menu-group"),className:n.menuItemInner({className:c(o?.menuGroup,e.className)})}),[o?.menuGroup,n]),J=s(e=>({...e,"data-slot":i("menu-group-label"),className:n.menuGroupLabel({className:c(o?.menuGroupLabel,e.className)})}),[o?.menuGroupLabel,n]);return X(()=>({getOverlayProps:D,getFocusManagerProps:T,getContentProps:V,getArrowProps:K,getNodeProps:U,isOpen:r,getTriggerProps:A,getFloatingListProps:$,hideArrow:y,floatingCtx:j,getRootProps:H,getMenuItemProps:z,isNested:t,getMenuItemInnerProps:q,getMenuGroupProps:B,getMenuGroupLabelProps:J,placement:I}),[D,T,V,K,U,r,A,$,y,j,H,z,t,q,B,J,I])};export{Je as a};
@@ -1 +0,0 @@
1
- import{a as r}from"./chunk-MFCNUSNC.mjs";import{a as e}from"./chunk-LSC54BQQ.mjs";import{a as n}from"./chunk-4QOOXBEL.mjs";import{b as t}from"./chunk-IP6JQ5TM.mjs";import{FloatingArrow as c,FloatingFocusManager as f,FloatingList as C,FloatingOverlay as x,FloatingPortal as d}from"@floating-ui/react";import{AnimatePresence as A}from"motion/react";import{jsx as o,jsxs as i}from"react/jsx-runtime";var I=a=>{let{getFloatingListProps:s,isOpen:l,getFocusManagerProps:p,getOverlayProps:u,hideArrow:g,getArrowProps:m,floatingCtx:F,isNested:M}=t(),{children:P}=a;return o(n,{value:F,children:o(C,{...s(),children:o(A,{children:l?i(d,{children:[M?null:o(x,{...u()}),o(f,{...p(),children:o(r,{children:i(e,{children:[g?null:o(c,{...m()}),P]})})})]}):null})})})};export{I as a};
@@ -1 +0,0 @@
1
- import{b as c}from"./chunk-MCQCEY2U.mjs";import{a as r}from"./chunk-Z3M52LAZ.mjs";import{useCallback as m}from"react";import{CheckIcon as p}from"@jamsrui/icons";import{jsx as n}from"react/jsx-runtime";var d=t=>{let{isChecked:e}=t;return n("span",{className:"size-4",children:e?n(p,{}):null})},M=t=>{let{value:e,tickPlacement:o,...l}=t,{value:s,isDisabled:a,setValue:i}=c(),u=m(()=>{a||i(e)},[a,e,i]);return n(r,{preventCloseOnClick:!0,onClick:u,endContent:o==="end"?n(d,{isChecked:s===e}):void 0,startContent:o==="start"?n(d,{isChecked:s===e}):void 0,...l})};export{M as a};
@@ -1 +0,0 @@
1
- import{a as d}from"./chunk-Z3M52LAZ.mjs";import{useCallback as l}from"react";import{useControlledState as p}from"@jamsrui/hooks";import{CheckIcon as m}from"@jamsrui/icons";import{jsx as e}from"react/jsx-runtime";var C=n=>{let{isChecked:o}=n;return e("span",{className:"size-4",children:o?e(m,{}):null})},P=n=>{let{isChecked:o,onCheckedChange:r,defaultChecked:a,tickPlacement:t,...k}=n,[c=!1,s]=p({defaultProp:a,onChange:r,prop:o}),h=l(()=>{s(i=>!i)},[s]);return e(d,{preventCloseOnClick:!0,onClick:h,endContent:t==="end"?e(C,{isChecked:c}):void 0,startContent:t==="start"?e(C,{isChecked:c}):void 0,...k})};export{P as a};
@@ -1 +0,0 @@
1
- import{b as t}from"./chunk-IP6JQ5TM.mjs";import{motion as r}from"motion/react";import{jsx as p}from"react/jsx-runtime";var m=o=>{let{children:e,...n}=o,{getContentProps:i,isNested:s}=t();return p(r.div,{...s?{}:{exit:{opacity:0,scale:.8},initial:{opacity:0,scale:.8},transition:{type:"spring",stiffness:300,damping:25},animate:{opacity:1,scale:1,x:0,y:0}},...i(n),children:e})};export{m as a};
@@ -1 +0,0 @@
1
- import{b as e}from"./chunk-IP6JQ5TM.mjs";import{useRenderElement as t}from"@jamsrui/hooks";var m=o=>{let{getRootProps:r}=e();return t("div",{props:[r(o)]})};export{m as a};
@@ -1 +0,0 @@
1
- import{radiusVariant as e,tv as r}from"@jamsrui/utils";var n=r({slots:{arrow:"fill-background-secondary",backdrop:"z-backdrop",root:"min-w-[150px] z-popover outline-none outline-0",content:["relative z-popover box-border inline-flex w-full flex-col justify-center bg-surface p-1 text-sm shadow-md outline-none","shadow-lg origin-(--transform-origin)"],menuItem:["relative box-border flex size-full select-none items-center gap-2 px-2 py-1.5 text-left outline-none ui-disabled:cursor-not-allowed ui-disabled:opacity-60","ui-active:bg-surface-secondary"],menuGroup:[""],menuGroupLabel:"pl-2 text-foreground-secondary py-1",menuItemInner:"grow"},variants:{radius:e(["content","menuItem"]),backdrop:{transparent:{backdrop:""},opaque:{backdrop:"bg-black/50"},blur:{backdrop:"bg-black/30 backdrop-blur-md backdrop-saturate-150"}},color:{default:{menuItem:"ui-hover:bg-surface-secondary ui-hover:text-foreground"},primary:{menuItem:"ui-hover:bg-primary ui-hover:text-primary-foreground"},secondary:{menuItem:"ui-hover:bg-secondary ui-hover:text-secondary-foreground"},success:{menuItem:"ui-hover:bg-success ui-hover:text-success-foreground"},warning:{menuItem:"ui-hover:bg-warning ui-hover:text-warning-foreground"},danger:{menuItem:"ui-hover:bg-danger ui-hover:text-danger-foreground"}}},defaultVariants:{backdrop:"transparent",radius:"md",color:"default"}});export{n as a};
@@ -1 +0,0 @@
1
- import{b as e}from"./chunk-IP6JQ5TM.mjs";import{useRenderElement as t}from"@jamsrui/hooks";var m=n=>{let{getMenuItemInnerProps:r}=e();return t("span",{props:[r(n)]})};export{m as a};
@@ -1 +0,0 @@
1
- import{Divider as r}from"@jamsrui/divider";import{jsx as o}from"react/jsx-runtime";var a=()=>o(r,{className:"my-1.5"});export{a};
@@ -1 +0,0 @@
1
- import{a}from"./chunk-W6Z5NYJV.mjs";import{b as i}from"./chunk-4QOOXBEL.mjs";import{b as s}from"./chunk-IP6JQ5TM.mjs";import{useFloatingTree as b,useListItem as x}from"@floating-ui/react";import{useMergeRefs as P,useRenderElement as g}from"@jamsrui/hooks";import{Fragment as R,jsx as v,jsxs as k}from"react/jsx-runtime";var O=m=>{let{getMenuItemProps:c}=s(),l=b(),{textValue:d,children:e,isDisabled:t,startContent:u,endContent:p,preventCloseOnClick:f,...I}=m,n=i(),o=x({label:d??(typeof e=="string"?e:void 0)}),r=o.index===n.activeIndex,C=P([o.ref]),M=k(R,{children:[u,v(a,{children:e}),p]});return g("button",{props:[c(I),{children:M,disabled:t,"data-disabled":t,"data-active":r,"aria-disabled":t,ref:C,tabIndex:r?0:-1,onClick(){f||l?.events.emit("click")},onMouseEnter(){n.setHasFocusInside(!0)}}]})};export{O as a};
@@ -1,10 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { HTMLMotionProps } from 'motion/react';
3
-
4
- declare const MenuContent2: (props: MenuContent2.Props) => react_jsx_runtime.JSX.Element;
5
- declare namespace MenuContent2 {
6
- interface Props extends HTMLMotionProps<"div"> {
7
- }
8
- }
9
-
10
- export { MenuContent2 };
@@ -1 +0,0 @@
1
- import{a}from"./chunk-LSC54BQQ.mjs";import"./chunk-IP6JQ5TM.mjs";export{a as MenuContent2};
@@ -1,10 +0,0 @@
1
- import * as react from 'react';
2
- import { UIProps } from '@jamsrui/utils';
3
-
4
- declare const MenuItemInner: (props: MenuItemInner.Props) => react.ReactElement<unknown, string | react.JSXElementConstructor<any>>;
5
- declare namespace MenuItemInner {
6
- interface Props extends UIProps<"span"> {
7
- }
8
- }
9
-
10
- export { MenuItemInner };
@@ -1 +0,0 @@
1
- import{a}from"./chunk-W6Z5NYJV.mjs";import"./chunk-IP6JQ5TM.mjs";export{a as MenuItemInner};
@@ -1,10 +0,0 @@
1
- import * as react from 'react';
2
- import { UIProps } from '@jamsrui/utils';
3
-
4
- declare const MenuRoot: (props: MenuRoot.Props) => react.ReactElement<unknown, string | react.JSXElementConstructor<any>>;
5
- declare namespace MenuRoot {
6
- interface Props extends UIProps<"div"> {
7
- }
8
- }
9
-
10
- export { MenuRoot };
@@ -1 +0,0 @@
1
- import{a}from"./chunk-MFCNUSNC.mjs";import"./chunk-IP6JQ5TM.mjs";export{a as MenuRoot};