@jamsrui/menu 0.0.2

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 (68) hide show
  1. package/README.md +40 -0
  2. package/dist/chunk-3J33PYDE.js +1 -0
  3. package/dist/chunk-3NN75CDA.mjs +1 -0
  4. package/dist/chunk-3RPR26EV.mjs +1 -0
  5. package/dist/chunk-4A5USF3K.js +1 -0
  6. package/dist/chunk-5DZZ6VC5.mjs +1 -0
  7. package/dist/chunk-7RG7WPEA.mjs +1 -0
  8. package/dist/chunk-A4ENIW42.mjs +1 -0
  9. package/dist/chunk-BLFKYVLC.js +1 -0
  10. package/dist/chunk-EZY4DCNG.mjs +1 -0
  11. package/dist/chunk-IP6JQ5TM.mjs +1 -0
  12. package/dist/chunk-KC7QMDYR.js +1 -0
  13. package/dist/chunk-NSPNMH6Z.js +1 -0
  14. package/dist/chunk-P4JWOT3A.js +1 -0
  15. package/dist/chunk-R43UX3LY.js +1 -0
  16. package/dist/chunk-U2XRBGNU.mjs +1 -0
  17. package/dist/chunk-UEFGBHFK.js +1 -0
  18. package/dist/chunk-UNIE5VBW.mjs +1 -0
  19. package/dist/chunk-W6Z5NYJV.mjs +1 -0
  20. package/dist/chunk-WJQQ5JXW.js +1 -0
  21. package/dist/chunk-WYFK63QG.js +1 -0
  22. package/dist/index.d.mts +12 -0
  23. package/dist/index.d.ts +12 -0
  24. package/dist/index.js +1 -0
  25. package/dist/index.mjs +1 -0
  26. package/dist/menu-BF85INsd.d.mts +69 -0
  27. package/dist/menu-BpxSgXXZ.d.ts +69 -0
  28. package/dist/menu-config.d.mts +21 -0
  29. package/dist/menu-config.d.ts +21 -0
  30. package/dist/menu-config.js +1 -0
  31. package/dist/menu-config.mjs +1 -0
  32. package/dist/menu-content.d.mts +10 -0
  33. package/dist/menu-content.d.ts +10 -0
  34. package/dist/menu-content.js +1 -0
  35. package/dist/menu-content.mjs +1 -0
  36. package/dist/menu-context.d.mts +18 -0
  37. package/dist/menu-context.d.ts +18 -0
  38. package/dist/menu-context.js +1 -0
  39. package/dist/menu-context.mjs +1 -0
  40. package/dist/menu-floating-context.d.mts +13 -0
  41. package/dist/menu-floating-context.d.ts +13 -0
  42. package/dist/menu-floating-context.js +1 -0
  43. package/dist/menu-floating-context.mjs +1 -0
  44. package/dist/menu-item-inner.d.mts +10 -0
  45. package/dist/menu-item-inner.d.ts +10 -0
  46. package/dist/menu-item-inner.js +1 -0
  47. package/dist/menu-item-inner.mjs +1 -0
  48. package/dist/menu-item.d.mts +9 -0
  49. package/dist/menu-item.d.ts +9 -0
  50. package/dist/menu-item.js +1 -0
  51. package/dist/menu-item.mjs +1 -0
  52. package/dist/menu-trigger.d.mts +10 -0
  53. package/dist/menu-trigger.d.ts +10 -0
  54. package/dist/menu-trigger.js +1 -0
  55. package/dist/menu-trigger.mjs +1 -0
  56. package/dist/menu.d.mts +9 -0
  57. package/dist/menu.d.ts +9 -0
  58. package/dist/menu.js +1 -0
  59. package/dist/menu.mjs +1 -0
  60. package/dist/styles.d.mts +156 -0
  61. package/dist/styles.d.ts +156 -0
  62. package/dist/styles.js +1 -0
  63. package/dist/styles.mjs +1 -0
  64. package/dist/use-menu.d.mts +9 -0
  65. package/dist/use-menu.d.ts +9 -0
  66. package/dist/use-menu.js +1 -0
  67. package/dist/use-menu.mjs +1 -0
  68. package/package.json +49 -0
package/README.md ADDED
@@ -0,0 +1,40 @@
1
+ # πŸš€ **JamsrUI**
2
+
3
+ **A comprehensive React UI component library designed for developers, with Tailwind CSS integration for seamless styling.**
4
+
5
+
6
+ ## πŸ“– **Overview**
7
+
8
+ [JamsrUI](https://jamsr-ui.jamsrworld.com) is designed to help developers build modern, fast and visually appealing web applications with ease.
9
+
10
+ ## πŸš€ Getting Started
11
+
12
+ Boost & Build your websites using [JamsrUI](https://jamsr-ui.jamsrworld.com).
13
+
14
+ ## ✨ Features
15
+
16
+ - πŸš€ **Production-Ready**: Optimized for modern React projects.
17
+ - 🎨 **Customizable**: Easily override styles and themes.
18
+ - πŸ› οΈ **Reusable Components**: Save time with prebuilt, efficient UI elements.
19
+ - ⚑ **Developer-Friendly**: Simple API and well-documented usage.
20
+ - πŸ“¦ **Lightweight**: Minimal dependencies for fast performance.
21
+ - πŸ–₯️ **Modern Design**: Clean, responsive, and user-friendly components.
22
+
23
+ ## 🌱 Community
24
+
25
+ We’re thrilled to see the community actively engage with **JamsrUI**! Whether you're sharing feedback, reporting bugs, requesting features, or showcasing projects built with JamsrUI, your involvement helps us grow and improve.
26
+
27
+ ### How to Engage
28
+
29
+ - πŸ’¬ **Report Bugs**: [GitHub Issues](https://github.com/jamsrworld/jamsr-ui/issues)
30
+ - πŸš€ **Request Features**: Share ideas for new components.
31
+ - 🀝 **Showcase Projects**: Let us know how you use JamsrUI.
32
+
33
+ ## Contributing
34
+
35
+ We welcome contributions from developers of all skill levels!
36
+
37
+ ## ⭐ Support the Project
38
+
39
+ If you find **JamsrUI** helpful, consider giving it a ⭐ on [GitHub](https://github.com/jamsrworld/jamsr-ui).
40
+
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkWJQQ5JXWjs = require('./chunk-WJQQ5JXW.js');var _chunk4A5USF3Kjs = require('./chunk-4A5USF3K.js');var _chunkNSPNMH6Zjs = require('./chunk-NSPNMH6Z.js');var _react = require('@floating-ui/react');var _hooks = require('@jamsrui/hooks');var F=m=>{let{getMenuItemProps:c}=_chunkNSPNMH6Zjs.b.call(void 0, ),l=_react.useFloatingTree.call(void 0, ),{textValue:u,children:e,isDisabled:t,startContent:d,endContent:p,preventCloseOnClick:f,...I}=m,n=_chunkWJQQ5JXWjs.b.call(void 0, ),o=_react.useListItem.call(void 0, {label:_nullishCoalesce(u, () => ((typeof e=="string"?e:void 0)))}),r=o.index===n.activeIndex,C=_hooks.useMergeRefs.call(void 0, [o.ref]),x=React.createElement(React.Fragment,null,d,React.createElement(_chunk4A5USF3Kjs.a,null,e),p);return _hooks.useRenderElement.call(void 0, "button",{props:[c(I),{children:x,disabled:t,"data-disabled":t,"data-active":r,"aria-disabled":t,ref:C,tabIndex:r?0:-1,onClick(){f||_optionalChain([l, 'optionalAccess', _ => _.events, 'access', _2 => _2.emit, 'call', _3 => _3("click")])},onMouseEnter(){n.setHasFocusInside(!0)}}]})};exports.a = F;
@@ -0,0 +1 @@
1
+ import{a as r}from"./chunk-3RPR26EV.mjs";import{a as o}from"./chunk-IP6JQ5TM.mjs";import{FloatingNode as s,FloatingTree as a,useFloatingParentNodeId as i}from"@floating-ui/react";var u=e=>{let n=r(e),{children:t}=e,{getNodeProps:c}=n;return React.createElement(o,{value:n},React.createElement(s,{...c()},t))},m=e=>{let n=i(),{children:t}=e;return n===null?React.createElement(a,null,React.createElement(u,{...e},t)):React.createElement(u,{...e},t)};export{m as a};
@@ -0,0 +1 @@
1
+ import{b as I}from"./chunk-UNIE5VBW.mjs";import{b as z}from"./chunk-U2XRBGNU.mjs";import{useCallback as r,useEffect as B,useMemo as J,useRef as v,useState as Q}from"react";import{arrow as Pe,autoUpdate as Ie,flip as ve,offset as Me,safePolygon as ye,shift as Fe,useClick as be,useDismiss as Ne,useFloating as Oe,useFloatingNodeId as he,useFloatingParentNodeId as Ce,useFloatingTree as xe,useHover as we,useInteractions as ke,useListItem as Re,useListNavigation as Se,useRole as Ee,useTypeahead as Ae}from"@floating-ui/react";import{useMergeRefs as De}from"@jamsrui/hooks";import{useControlledState as Te}from"@jamsrui/hooks";import{cn as M,dataAttrDev as c,mapPropsVariants as Le}from"@jamsrui/utils";var ze=W=>{let m=Ce(),e=m!==null,[X,Y]=Le(W,I.variantKeys),{closeDelay:Z=0,closeOnEscapeKey:_=!0,closeOnOutsidePress:ee=!0,isOpen:te,lockScroll:y=!0,offset:oe=4,openDelay:ne=75,placement:se=e?"right-start":"bottom-end",defaultOpen:re=!1,onOpenChange:ae,triggerOn:le="click",classNames:t,showArrow:f}=X,a=xe(),i=he(),g=Re(),ie=f?7:0,[n=!1,p]=Te({defaultProp:re,onChange:ae,prop:te}),[ce,F]=Q(!1),[u,b]=Q(null),N=v(null),O=v([]),h=v([]),{floatingStyles:C,refs:P,context:s}=Oe({nodeId:i,open:n,onOpenChange:p,placement:se,middleware:[Me({mainAxis:oe+ie,alignmentAxis:e?-4:0}),ve(),Fe({padding:5}),Pe({element:N})],whileElementsMounted:Ie}),me=we(s,{enabled:le==="hover"||e,delay:{open:ne,close:Z},handleClose:ye({blockPointerEvents:!0})}),pe=be(s,{event:"mousedown",toggle:!e,ignoreMouse:e}),ue=Ee(s,{role:"menu"}),de=Ne(s,{bubbles:!0,escapeKey:_,outsidePress:ee}),fe=Se(s,{listRef:O,activeIndex:u,nested:e,onNavigate:b}),ge=Ae(s,{enabled:n,listRef:h,onMatch:b,activeIndex:u}),{getReferenceProps:x,getFloatingProps:w,getItemProps:k}=ke([me,pe,ue,de,fe,ge]);B(()=>{if(!a)return;function l(){p(!1)}function $(q){q.nodeId!==i&&q.parentId===m&&p(!1)}return a.events.on("click",l),a.events.on("menuopen",$),()=>{a.events.off("click",l),a.events.off("menuopen",$)}},[a,i,m,p,n]),B(()=>{n&&a&&a.events.emit("menuopen",{parentId:m,nodeId:i})},[a,n,i,m]);let o=I(Y),R=n&&ce&&e,S=De([P.setReference,g.ref]),d=z(),E=r(()=>({ref:S,tabIndex:e?d.activeIndex===g.index?0:-1:void 0,"data-slot":c("trigger"),role:e?"menuitem":void 0,"data-active":R,"data-nested":e,"data-open":n,...x({...d.getItemProps({onMouseEnter(){F(!1),d.setHasFocusInside(!0)}})})}),[x,R,e,n,g.index,S,d]),A=r(()=>({lockScroll:y,"data-slot":c("overlay"),className:o.backdrop({className:t?.backdrop})}),[t?.backdrop,y,o]),D=r(()=>({context:s,modal:!0,initialFocus:1,returnFocus:!e,disabled:!1}),[s,e]),T=r(()=>({"data-component":c("menu"),"data-slot":c("root"),className:o.root({className:t?.root}),ref:P.setFloating,style:C,...w()}),[t?.root,C,w,P.setFloating,o]),L=r(()=>({className:o.content({className:M(t?.content)})}),[t?.content,o]),G=r(()=>({context:s,ref:N,className:o.arrow({className:t?.arrow})}),[t?.arrow,s,o]),H=r(()=>({id:i}),[i]),V=r(()=>({elementsRef:O,labelsRef:h}),[]),K=J(()=>({activeIndex:u,getItemProps:k,setHasFocusInside:F}),[u,k]),U=r(l=>({...l,"data-slot":c("menu-item"),className:o.menuItem({className:M(t?.menuItem,l.className),color:l.color}),role:"menuitem"}),[t?.menuItem,o]),j=r(l=>({...l,"data-slot":c("menu-item-inner"),className:o.menuItemInner({className:M(t?.menuItemInner,l.className)})}),[t?.menuItemInner,o]);return J(()=>({getOverlayProps:A,getFocusManagerProps:D,getContentProps:L,getArrowProps:G,getNodeProps:H,isOpen:n,getTriggerProps:E,getFloatingListProps:V,showArrow:f,floatingCtx:K,getRootProps:T,getMenuItemProps:U,isNested:e,getMenuItemInnerProps:j}),[A,D,L,G,H,n,E,V,f,K,T,U,e,j])};export{ze as a};
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkNSPNMH6Zjs = require('./chunk-NSPNMH6Z.js');var _hooks = require('@jamsrui/hooks');var m=n=>{let{getMenuItemInnerProps:r}=_chunkNSPNMH6Zjs.b.call(void 0, );return _hooks.useRenderElement.call(void 0, "span",{props:[r(n)]})};exports.a = m;
@@ -0,0 +1 @@
1
+ import{createConfigContext as o}from"@jamsrui/utils";var[n,r]=o({displayName:"MenuConfigContext"});export{n as a,r as b};
@@ -0,0 +1 @@
1
+ import{b as i}from"./chunk-U2XRBGNU.mjs";import{a}from"./chunk-W6Z5NYJV.mjs";import{b as s}from"./chunk-IP6JQ5TM.mjs";import{useFloatingTree as M,useListItem as b}from"@floating-ui/react";import{useMergeRefs as P,useRenderElement as g}from"@jamsrui/hooks";var F=m=>{let{getMenuItemProps:c}=s(),l=M(),{textValue:u,children:e,isDisabled:t,startContent:d,endContent:p,preventCloseOnClick:f,...I}=m,n=i(),o=b({label:u??(typeof e=="string"?e:void 0)}),r=o.index===n.activeIndex,C=P([o.ref]),x=React.createElement(React.Fragment,null,d,React.createElement(a,null,e),p);return g("button",{props:[c(I),{children:x,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{F as a};
@@ -0,0 +1 @@
1
+ import{b as r}from"./chunk-IP6JQ5TM.mjs";import{cloneElement as o,isValidElement as i}from"react";var s=n=>{let{children:e}=n,{getTriggerProps:t}=r();return i(e)?o(e,t()):(console.warn("Invalid children passed to MenuTrigger"),null)};export{s as a};
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkWJQQ5JXWjs = require('./chunk-WJQQ5JXW.js');var _chunkNSPNMH6Zjs = require('./chunk-NSPNMH6Z.js');var _react = require('@floating-ui/react');var _hooks = require('@jamsrui/hooks');var L=o=>{let{getFloatingListProps:n,isOpen:r,getFocusManagerProps:i,getOverlayProps:s,showArrow:a,getArrowProps:l,floatingCtx:p,getContentProps:g,getRootProps:u,isNested:m}=_chunkNSPNMH6Zjs.b.call(void 0, ),{children:F}=o,c=React.createElement(React.Fragment,null,!!a&&React.createElement(_react.FloatingArrow,{...l()}),React.createElement("div",{...g(o)},F)),d=_hooks.useRenderElement.call(void 0, "div",{props:[u(),{children:c}]});return React.createElement(_chunkWJQQ5JXWjs.a,{value:p},React.createElement(_react.FloatingList,{...n()},r?React.createElement(_react.FloatingPortal,null,m?null:React.createElement(_react.FloatingOverlay,{...s()}),React.createElement(_react.FloatingFocusManager,{...i()},d)):null))};exports.a = L;
@@ -0,0 +1 @@
1
+ import{a as e}from"./chunk-U2XRBGNU.mjs";import{b as t}from"./chunk-IP6JQ5TM.mjs";import{FloatingArrow as P,FloatingFocusManager as C,FloatingList as M,FloatingOverlay as x,FloatingPortal as f}from"@floating-ui/react";import{useRenderElement as v}from"@jamsrui/hooks";var L=o=>{let{getFloatingListProps:n,isOpen:r,getFocusManagerProps:i,getOverlayProps:s,showArrow:a,getArrowProps:l,floatingCtx:p,getContentProps:g,getRootProps:u,isNested:m}=t(),{children:F}=o,c=React.createElement(React.Fragment,null,!!a&&React.createElement(P,{...l()}),React.createElement("div",{...g(o)},F)),d=v("div",{props:[u(),{children:c}]});return React.createElement(e,{value:p},React.createElement(M,{...n()},r?React.createElement(f,null,m?null:React.createElement(x,{...s()}),React.createElement(C,{...i()},d)):null))};export{L as a};
@@ -0,0 +1 @@
1
+ import{createContext as t,use as n}from"react";var o=t(null),r=()=>{let e=n(o);if(!e)throw new Error("useMenuContext must be used within MenuContext");return e};export{o as a,r as b};
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkUEFGBHFKjs = require('./chunk-UEFGBHFK.js');var _chunkWJQQ5JXWjs = require('./chunk-WJQQ5JXW.js');var _react = require('react');var _react3 = require('@floating-ui/react');var _hooks = require('@jamsrui/hooks');var _utils = require('@jamsrui/utils');var ze=W=>{let m=_react3.useFloatingParentNodeId.call(void 0, ),e=m!==null,[X,Y]=_utils.mapPropsVariants.call(void 0, W,_chunkUEFGBHFKjs.b.variantKeys),{closeDelay:Z=0,closeOnEscapeKey:_=!0,closeOnOutsidePress:ee=!0,isOpen:te,lockScroll:y=!0,offset:oe=4,openDelay:ne=75,placement:se=e?"right-start":"bottom-end",defaultOpen:re=!1,onOpenChange:ae,triggerOn:le="click",classNames:t,showArrow:f}=X,a=_react3.useFloatingTree.call(void 0, ),i=_react3.useFloatingNodeId.call(void 0, ),g=_react3.useListItem.call(void 0, ),ie=f?7:0,[n=!1,p]=_hooks.useControlledState.call(void 0, {defaultProp:re,onChange:ae,prop:te}),[ce,F]=_react.useState.call(void 0, !1),[u,b]=_react.useState.call(void 0, null),N=_react.useRef.call(void 0, null),O=_react.useRef.call(void 0, []),h=_react.useRef.call(void 0, []),{floatingStyles:C,refs:P,context:s}=_react3.useFloating.call(void 0, {nodeId:i,open:n,onOpenChange:p,placement:se,middleware:[_react3.offset.call(void 0, {mainAxis:oe+ie,alignmentAxis:e?-4:0}),_react3.flip.call(void 0, ),_react3.shift.call(void 0, {padding:5}),_react3.arrow.call(void 0, {element:N})],whileElementsMounted:_react3.autoUpdate}),me=_react3.useHover.call(void 0, s,{enabled:le==="hover"||e,delay:{open:ne,close:Z},handleClose:_react3.safePolygon.call(void 0, {blockPointerEvents:!0})}),pe=_react3.useClick.call(void 0, s,{event:"mousedown",toggle:!e,ignoreMouse:e}),ue=_react3.useRole.call(void 0, s,{role:"menu"}),de=_react3.useDismiss.call(void 0, s,{bubbles:!0,escapeKey:_,outsidePress:ee}),fe=_react3.useListNavigation.call(void 0, s,{listRef:O,activeIndex:u,nested:e,onNavigate:b}),ge=_react3.useTypeahead.call(void 0, s,{enabled:n,listRef:h,onMatch:b,activeIndex:u}),{getReferenceProps:x,getFloatingProps:w,getItemProps:k}=_react3.useInteractions.call(void 0, [me,pe,ue,de,fe,ge]);_react.useEffect.call(void 0, ()=>{if(!a)return;function l(){p(!1)}function $(q){q.nodeId!==i&&q.parentId===m&&p(!1)}return a.events.on("click",l),a.events.on("menuopen",$),()=>{a.events.off("click",l),a.events.off("menuopen",$)}},[a,i,m,p,n]),_react.useEffect.call(void 0, ()=>{n&&a&&a.events.emit("menuopen",{parentId:m,nodeId:i})},[a,n,i,m]);let o=_chunkUEFGBHFKjs.b.call(void 0, Y),R=n&&ce&&e,S=_hooks.useMergeRefs.call(void 0, [P.setReference,g.ref]),d=_chunkWJQQ5JXWjs.b.call(void 0, ),E=_react.useCallback.call(void 0, ()=>({ref:S,tabIndex:e?d.activeIndex===g.index?0:-1:void 0,"data-slot":_utils.dataAttrDev.call(void 0, "trigger"),role:e?"menuitem":void 0,"data-active":R,"data-nested":e,"data-open":n,...x({...d.getItemProps({onMouseEnter(){F(!1),d.setHasFocusInside(!0)}})})}),[x,R,e,n,g.index,S,d]),A=_react.useCallback.call(void 0, ()=>({lockScroll:y,"data-slot":_utils.dataAttrDev.call(void 0, "overlay"),className:o.backdrop({className:_optionalChain([t, 'optionalAccess', _2 => _2.backdrop])})}),[_optionalChain([t, 'optionalAccess', _3 => _3.backdrop]),y,o]),D=_react.useCallback.call(void 0, ()=>({context:s,modal:!0,initialFocus:1,returnFocus:!e,disabled:!1}),[s,e]),T=_react.useCallback.call(void 0, ()=>({"data-component":_utils.dataAttrDev.call(void 0, "menu"),"data-slot":_utils.dataAttrDev.call(void 0, "root"),className:o.root({className:_optionalChain([t, 'optionalAccess', _4 => _4.root])}),ref:P.setFloating,style:C,...w()}),[_optionalChain([t, 'optionalAccess', _5 => _5.root]),C,w,P.setFloating,o]),L=_react.useCallback.call(void 0, ()=>({className:o.content({className:_utils.cn.call(void 0, _optionalChain([t, 'optionalAccess', _6 => _6.content]))})}),[_optionalChain([t, 'optionalAccess', _7 => _7.content]),o]),G=_react.useCallback.call(void 0, ()=>({context:s,ref:N,className:o.arrow({className:_optionalChain([t, 'optionalAccess', _8 => _8.arrow])})}),[_optionalChain([t, 'optionalAccess', _9 => _9.arrow]),s,o]),H=_react.useCallback.call(void 0, ()=>({id:i}),[i]),V=_react.useCallback.call(void 0, ()=>({elementsRef:O,labelsRef:h}),[]),K=_react.useMemo.call(void 0, ()=>({activeIndex:u,getItemProps:k,setHasFocusInside:F}),[u,k]),U=_react.useCallback.call(void 0, l=>({...l,"data-slot":_utils.dataAttrDev.call(void 0, "menu-item"),className:o.menuItem({className:_utils.cn.call(void 0, _optionalChain([t, 'optionalAccess', _10 => _10.menuItem]),l.className),color:l.color}),role:"menuitem"}),[_optionalChain([t, 'optionalAccess', _11 => _11.menuItem]),o]),j=_react.useCallback.call(void 0, l=>({...l,"data-slot":_utils.dataAttrDev.call(void 0, "menu-item-inner"),className:o.menuItemInner({className:_utils.cn.call(void 0, _optionalChain([t, 'optionalAccess', _12 => _12.menuItemInner]),l.className)})}),[_optionalChain([t, 'optionalAccess', _13 => _13.menuItemInner]),o]);return _react.useMemo.call(void 0, ()=>({getOverlayProps:A,getFocusManagerProps:D,getContentProps:L,getArrowProps:G,getNodeProps:H,isOpen:n,getTriggerProps:E,getFloatingListProps:V,showArrow:f,floatingCtx:K,getRootProps:T,getMenuItemProps:U,isNested:e,getMenuItemInnerProps:j}),[A,D,L,G,H,n,E,V,f,K,T,U,e,j])};exports.a = ze;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _react = require('react');var o=_react.createContext.call(void 0, null),r= exports.b =()=>{let e=_react.use.call(void 0, o);if(!e)throw new Error("useMenuContext must be used within MenuContext");return e};exports.a = o; exports.b = r;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkKC7QMDYRjs = require('./chunk-KC7QMDYR.js');var _chunkNSPNMH6Zjs = require('./chunk-NSPNMH6Z.js');var _react = require('@floating-ui/react');var u=e=>{let n=_chunkKC7QMDYRjs.a.call(void 0, e),{children:t}=e,{getNodeProps:c}=n;return React.createElement(_chunkNSPNMH6Zjs.a,{value:n},React.createElement(_react.FloatingNode,{...c()},t))},m= exports.a =e=>{let n=_react.useFloatingParentNodeId.call(void 0, ),{children:t}=e;return n===null?React.createElement(_react.FloatingTree,null,React.createElement(u,{...e},t)):React.createElement(u,{...e},t)};exports.a = m;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkNSPNMH6Zjs = require('./chunk-NSPNMH6Z.js');var _react = require('react');var s=n=>{let{children:e}=n,{getTriggerProps:t}=_chunkNSPNMH6Zjs.b.call(void 0, );return _react.isValidElement.call(void 0, e)?_react.cloneElement.call(void 0, e,t()):(console.warn("Invalid children passed to MenuTrigger"),null)};exports.a = s;
@@ -0,0 +1 @@
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};
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _utils = require('@jamsrui/utils');var t="",n= exports.b =_utils.tv.call(void 0, {slots:{arrow:"fill-background-secondary",backdrop:"z-backdrop",root:"min-w-[150px] z-popover",content:"relative z-popover box-border inline-flex w-full flex-col justify-center bg-surface p-1 text-sm shadow-md outline-none",menuItem:["relative box-border flex size-full cursor-pointer 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"],menuItemInner:"grow"},variants:{radius:_utils.radiusVariant.call(void 0, ["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"}});exports.a = t; exports.b = n;
@@ -0,0 +1 @@
1
+ import{radiusVariant as e,tv as r}from"@jamsrui/utils";var t="",n=r({slots:{arrow:"fill-background-secondary",backdrop:"z-backdrop",root:"min-w-[150px] z-popover",content:"relative z-popover box-border inline-flex w-full flex-col justify-center bg-surface p-1 text-sm shadow-md outline-none",menuItem:["relative box-border flex size-full cursor-pointer 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"],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{t as a,n as b};
@@ -0,0 +1 @@
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};
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _react = require('react');var o=_react.createContext.call(void 0, {setHasFocusInside:()=>{},activeIndex:null,getItemProps:()=>({})}),s= exports.b =()=>_react.use.call(void 0, o);exports.a = o; exports.b = s;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _utils = require('@jamsrui/utils');var[n,r]=_utils.createConfigContext.call(void 0, {displayName:"MenuConfigContext"});exports.a = n; exports.b = r;
@@ -0,0 +1,12 @@
1
+ export { M as Menu, a as MenuItem } from './menu-BF85INsd.mjs';
2
+ export { MenuConfig, useMenuConfig } from './menu-config.mjs';
3
+ export { MenuContent } from './menu-content.mjs';
4
+ export { MenuTrigger } from './menu-trigger.mjs';
5
+ import 'react';
6
+ import '@floating-ui/react';
7
+ import '@jamsrui/utils';
8
+ import './menu-floating-context.mjs';
9
+ import './menu-item-inner.mjs';
10
+ import './styles.mjs';
11
+ import 'tailwind-variants';
12
+ import '@jamsrui/core';
@@ -0,0 +1,12 @@
1
+ export { M as Menu, a as MenuItem } from './menu-BpxSgXXZ.js';
2
+ export { MenuConfig, useMenuConfig } from './menu-config.js';
3
+ export { MenuContent } from './menu-content.js';
4
+ export { MenuTrigger } from './menu-trigger.js';
5
+ import 'react';
6
+ import '@floating-ui/react';
7
+ import '@jamsrui/utils';
8
+ import './menu-floating-context.js';
9
+ import './menu-item-inner.js';
10
+ import './styles.js';
11
+ import 'tailwind-variants';
12
+ import '@jamsrui/core';
package/dist/index.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";var _chunkP4JWOT3Ajs = require('./chunk-P4JWOT3A.js');require('./chunk-KC7QMDYR.js');require('./chunk-UEFGBHFK.js');var _chunkWYFK63QGjs = require('./chunk-WYFK63QG.js');var _chunkBLFKYVLCjs = require('./chunk-BLFKYVLC.js');var _chunk3J33PYDEjs = require('./chunk-3J33PYDE.js');require('./chunk-WJQQ5JXW.js');require('./chunk-4A5USF3K.js');var _chunkR43UX3LYjs = require('./chunk-R43UX3LY.js');require('./chunk-NSPNMH6Z.js');exports.Menu = _chunkP4JWOT3Ajs.a; exports.MenuConfig = _chunkWYFK63QGjs.a; exports.MenuContent = _chunkBLFKYVLCjs.a; exports.MenuItem = _chunk3J33PYDEjs.a; exports.MenuTrigger = _chunkR43UX3LYjs.a; exports.useMenuConfig = _chunkWYFK63QGjs.b;
package/dist/index.mjs ADDED
@@ -0,0 +1 @@
1
+ "use client";import{a as e}from"./chunk-3NN75CDA.mjs";import"./chunk-3RPR26EV.mjs";import"./chunk-UNIE5VBW.mjs";import{a as o,b as r}from"./chunk-5DZZ6VC5.mjs";import{a as n}from"./chunk-EZY4DCNG.mjs";import{a as t}from"./chunk-7RG7WPEA.mjs";import"./chunk-U2XRBGNU.mjs";import"./chunk-W6Z5NYJV.mjs";import{a as u}from"./chunk-A4ENIW42.mjs";import"./chunk-IP6JQ5TM.mjs";export{e as Menu,o as MenuConfig,n as MenuContent,t as MenuItem,u as MenuTrigger,r as useMenuConfig};
@@ -0,0 +1,69 @@
1
+ import * as react from 'react';
2
+ import { ComponentProps } from 'react';
3
+ import { FloatingOverlayProps, FloatingFocusManagerProps, FloatingArrowProps, FloatingNodeProps, FloatingList, Placement } from '@floating-ui/react';
4
+ import { UIProps, PropGetter, SlotsToClassNames } from '@jamsrui/utils';
5
+ import { MenuContent } from './menu-content.mjs';
6
+ import { MenuFloatingContext } from './menu-floating-context.mjs';
7
+ import { MenuItemInner } from './menu-item-inner.mjs';
8
+ import { MenuVariantProps, MenuSlots } from './styles.mjs';
9
+
10
+ declare const MenuItem: (props: MenuItem.Props) => react.ReactElement<unknown, string | react.JSXElementConstructor<any>>;
11
+ declare namespace MenuItem {
12
+ interface Props extends UIProps<"button"> {
13
+ textValue?: string;
14
+ isDisabled?: boolean;
15
+ color?: Menu.Props["color"];
16
+ startContent?: React.ReactNode;
17
+ endContent?: React.ReactNode;
18
+ preventCloseOnClick?: boolean;
19
+ }
20
+ }
21
+
22
+ declare const useMenu: (props: useMenu.Props) => {
23
+ getOverlayProps: () => FloatingOverlayProps & UIProps<"div">;
24
+ getFocusManagerProps: () => Omit<FloatingFocusManagerProps, "children">;
25
+ getContentProps: PropGetter<MenuContent.Props>;
26
+ getArrowProps: () => FloatingArrowProps;
27
+ getNodeProps: () => FloatingNodeProps;
28
+ isOpen: boolean;
29
+ getTriggerProps: () => UIProps<"div">;
30
+ getFloatingListProps: () => Omit<ComponentProps<typeof FloatingList>, "children">;
31
+ showArrow: boolean | undefined;
32
+ floatingCtx: MenuFloatingContext.Props;
33
+ getRootProps: () => {
34
+ "data-component": string | undefined;
35
+ "data-slot": string | undefined;
36
+ className: string;
37
+ ref: ((node: HTMLElement | null) => void) & ((node: HTMLElement | null) => void);
38
+ style: react.CSSProperties;
39
+ };
40
+ getMenuItemProps: PropGetter<MenuItem.Props>;
41
+ isNested: boolean;
42
+ getMenuItemInnerProps: PropGetter<MenuItemInner.Props>;
43
+ };
44
+ declare namespace useMenu {
45
+ interface Props extends MenuVariantProps {
46
+ classNames?: SlotsToClassNames<MenuSlots>;
47
+ triggerOn?: "hover" | "click";
48
+ isOpen?: boolean;
49
+ defaultOpen?: boolean;
50
+ onOpenChange?: (open: boolean) => void;
51
+ openDelay?: number;
52
+ closeDelay?: number;
53
+ closeOnEscapeKey?: boolean;
54
+ closeOnOutsidePress?: boolean;
55
+ lockScroll?: boolean;
56
+ placement?: Placement;
57
+ offset?: number;
58
+ showArrow?: boolean;
59
+ }
60
+ }
61
+
62
+ declare const Menu: (props: Menu.Props) => react.JSX.Element;
63
+ declare namespace Menu {
64
+ interface Props extends useMenu.Props {
65
+ children: React.ReactNode;
66
+ }
67
+ }
68
+
69
+ export { Menu as M, MenuItem as a, useMenu as u };
@@ -0,0 +1,69 @@
1
+ import * as react from 'react';
2
+ import { ComponentProps } from 'react';
3
+ import { FloatingOverlayProps, FloatingFocusManagerProps, FloatingArrowProps, FloatingNodeProps, FloatingList, Placement } from '@floating-ui/react';
4
+ import { UIProps, PropGetter, SlotsToClassNames } from '@jamsrui/utils';
5
+ import { MenuContent } from './menu-content.js';
6
+ import { MenuFloatingContext } from './menu-floating-context.js';
7
+ import { MenuItemInner } from './menu-item-inner.js';
8
+ import { MenuVariantProps, MenuSlots } from './styles.js';
9
+
10
+ declare const MenuItem: (props: MenuItem.Props) => react.ReactElement<unknown, string | react.JSXElementConstructor<any>>;
11
+ declare namespace MenuItem {
12
+ interface Props extends UIProps<"button"> {
13
+ textValue?: string;
14
+ isDisabled?: boolean;
15
+ color?: Menu.Props["color"];
16
+ startContent?: React.ReactNode;
17
+ endContent?: React.ReactNode;
18
+ preventCloseOnClick?: boolean;
19
+ }
20
+ }
21
+
22
+ declare const useMenu: (props: useMenu.Props) => {
23
+ getOverlayProps: () => FloatingOverlayProps & UIProps<"div">;
24
+ getFocusManagerProps: () => Omit<FloatingFocusManagerProps, "children">;
25
+ getContentProps: PropGetter<MenuContent.Props>;
26
+ getArrowProps: () => FloatingArrowProps;
27
+ getNodeProps: () => FloatingNodeProps;
28
+ isOpen: boolean;
29
+ getTriggerProps: () => UIProps<"div">;
30
+ getFloatingListProps: () => Omit<ComponentProps<typeof FloatingList>, "children">;
31
+ showArrow: boolean | undefined;
32
+ floatingCtx: MenuFloatingContext.Props;
33
+ getRootProps: () => {
34
+ "data-component": string | undefined;
35
+ "data-slot": string | undefined;
36
+ className: string;
37
+ ref: ((node: HTMLElement | null) => void) & ((node: HTMLElement | null) => void);
38
+ style: react.CSSProperties;
39
+ };
40
+ getMenuItemProps: PropGetter<MenuItem.Props>;
41
+ isNested: boolean;
42
+ getMenuItemInnerProps: PropGetter<MenuItemInner.Props>;
43
+ };
44
+ declare namespace useMenu {
45
+ interface Props extends MenuVariantProps {
46
+ classNames?: SlotsToClassNames<MenuSlots>;
47
+ triggerOn?: "hover" | "click";
48
+ isOpen?: boolean;
49
+ defaultOpen?: boolean;
50
+ onOpenChange?: (open: boolean) => void;
51
+ openDelay?: number;
52
+ closeDelay?: number;
53
+ closeOnEscapeKey?: boolean;
54
+ closeOnOutsidePress?: boolean;
55
+ lockScroll?: boolean;
56
+ placement?: Placement;
57
+ offset?: number;
58
+ showArrow?: boolean;
59
+ }
60
+ }
61
+
62
+ declare const Menu: (props: Menu.Props) => react.JSX.Element;
63
+ declare namespace Menu {
64
+ interface Props extends useMenu.Props {
65
+ children: React.ReactNode;
66
+ }
67
+ }
68
+
69
+ export { Menu as M, MenuItem as a, useMenu as u };
@@ -0,0 +1,21 @@
1
+ import * as react from 'react';
2
+ import { GlobalConfigProps } from '@jamsrui/core';
3
+ import { M as Menu } from './menu-BF85INsd.mjs';
4
+ import '@floating-ui/react';
5
+ import '@jamsrui/utils';
6
+ import './menu-content.mjs';
7
+ import './menu-floating-context.mjs';
8
+ import './menu-item-inner.mjs';
9
+ import './styles.mjs';
10
+ import 'tailwind-variants';
11
+
12
+ declare const useMenuConfig: () => MenuConfig.Props;
13
+ declare const MenuConfig: (props: MenuConfig.Props & {
14
+ merge?: boolean;
15
+ }) => react.JSX.Element;
16
+ declare namespace MenuConfig {
17
+ interface Props extends Menu.Props, GlobalConfigProps<Menu.Props> {
18
+ }
19
+ }
20
+
21
+ export { MenuConfig, useMenuConfig };
@@ -0,0 +1,21 @@
1
+ import * as react from 'react';
2
+ import { GlobalConfigProps } from '@jamsrui/core';
3
+ import { M as Menu } from './menu-BpxSgXXZ.js';
4
+ import '@floating-ui/react';
5
+ import '@jamsrui/utils';
6
+ import './menu-content.js';
7
+ import './menu-floating-context.js';
8
+ import './menu-item-inner.js';
9
+ import './styles.js';
10
+ import 'tailwind-variants';
11
+
12
+ declare const useMenuConfig: () => MenuConfig.Props;
13
+ declare const MenuConfig: (props: MenuConfig.Props & {
14
+ merge?: boolean;
15
+ }) => react.JSX.Element;
16
+ declare namespace MenuConfig {
17
+ interface Props extends Menu.Props, GlobalConfigProps<Menu.Props> {
18
+ }
19
+ }
20
+
21
+ export { MenuConfig, useMenuConfig };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkWYFK63QGjs = require('./chunk-WYFK63QG.js');exports.MenuConfig = _chunkWYFK63QGjs.a; exports.useMenuConfig = _chunkWYFK63QGjs.b;
@@ -0,0 +1 @@
1
+ import{a,b}from"./chunk-5DZZ6VC5.mjs";export{a as MenuConfig,b as useMenuConfig};
@@ -0,0 +1,10 @@
1
+ import * as react from 'react';
2
+ import { UIProps } from '@jamsrui/utils';
3
+
4
+ declare const MenuContent: (props: MenuContent.Props) => react.JSX.Element;
5
+ declare namespace MenuContent {
6
+ interface Props extends UIProps<"div"> {
7
+ }
8
+ }
9
+
10
+ export { MenuContent };
@@ -0,0 +1,10 @@
1
+ import * as react from 'react';
2
+ import { UIProps } from '@jamsrui/utils';
3
+
4
+ declare const MenuContent: (props: MenuContent.Props) => react.JSX.Element;
5
+ declare namespace MenuContent {
6
+ interface Props extends UIProps<"div"> {
7
+ }
8
+ }
9
+
10
+ export { MenuContent };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkBLFKYVLCjs = require('./chunk-BLFKYVLC.js');require('./chunk-WJQQ5JXW.js');require('./chunk-NSPNMH6Z.js');exports.MenuContent = _chunkBLFKYVLCjs.a;
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-EZY4DCNG.mjs";import"./chunk-U2XRBGNU.mjs";import"./chunk-IP6JQ5TM.mjs";export{a as MenuContent};
@@ -0,0 +1,18 @@
1
+ import * as react from 'react';
2
+ import { u as useMenu } from './menu-BF85INsd.mjs';
3
+ import '@floating-ui/react';
4
+ import '@jamsrui/utils';
5
+ import './menu-content.mjs';
6
+ import './menu-floating-context.mjs';
7
+ import './menu-item-inner.mjs';
8
+ import './styles.mjs';
9
+ import 'tailwind-variants';
10
+
11
+ declare const useMenuContext: () => MenuContext.Props;
12
+ declare const MenuContext: react.Context<MenuContext.Props | null>;
13
+ declare namespace MenuContext {
14
+ interface Props extends ReturnType<typeof useMenu> {
15
+ }
16
+ }
17
+
18
+ export { MenuContext, useMenuContext };
@@ -0,0 +1,18 @@
1
+ import * as react from 'react';
2
+ import { u as useMenu } from './menu-BpxSgXXZ.js';
3
+ import '@floating-ui/react';
4
+ import '@jamsrui/utils';
5
+ import './menu-content.js';
6
+ import './menu-floating-context.js';
7
+ import './menu-item-inner.js';
8
+ import './styles.js';
9
+ import 'tailwind-variants';
10
+
11
+ declare const useMenuContext: () => MenuContext.Props;
12
+ declare const MenuContext: react.Context<MenuContext.Props | null>;
13
+ declare namespace MenuContext {
14
+ interface Props extends ReturnType<typeof useMenu> {
15
+ }
16
+ }
17
+
18
+ export { MenuContext, useMenuContext };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkNSPNMH6Zjs = require('./chunk-NSPNMH6Z.js');exports.MenuContext = _chunkNSPNMH6Zjs.a; exports.useMenuContext = _chunkNSPNMH6Zjs.b;
@@ -0,0 +1 @@
1
+ import{a,b}from"./chunk-IP6JQ5TM.mjs";export{a as MenuContext,b as useMenuContext};
@@ -0,0 +1,13 @@
1
+ import * as react from 'react';
2
+
3
+ declare const useMenuFloatingContext: () => MenuFloatingContext.Props;
4
+ declare const MenuFloatingContext: react.Context<MenuFloatingContext.Props>;
5
+ declare namespace MenuFloatingContext {
6
+ interface Props {
7
+ setHasFocusInside: React.Dispatch<React.SetStateAction<boolean>>;
8
+ activeIndex: number | null;
9
+ getItemProps: (props?: React.HTMLProps<HTMLElement>) => React.HTMLProps<HTMLElement>;
10
+ }
11
+ }
12
+
13
+ export { MenuFloatingContext, useMenuFloatingContext };
@@ -0,0 +1,13 @@
1
+ import * as react from 'react';
2
+
3
+ declare const useMenuFloatingContext: () => MenuFloatingContext.Props;
4
+ declare const MenuFloatingContext: react.Context<MenuFloatingContext.Props>;
5
+ declare namespace MenuFloatingContext {
6
+ interface Props {
7
+ setHasFocusInside: React.Dispatch<React.SetStateAction<boolean>>;
8
+ activeIndex: number | null;
9
+ getItemProps: (props?: React.HTMLProps<HTMLElement>) => React.HTMLProps<HTMLElement>;
10
+ }
11
+ }
12
+
13
+ export { MenuFloatingContext, useMenuFloatingContext };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkWJQQ5JXWjs = require('./chunk-WJQQ5JXW.js');exports.MenuFloatingContext = _chunkWJQQ5JXWjs.a; exports.useMenuFloatingContext = _chunkWJQQ5JXWjs.b;
@@ -0,0 +1 @@
1
+ import{a,b}from"./chunk-U2XRBGNU.mjs";export{a as MenuFloatingContext,b as useMenuFloatingContext};
@@ -0,0 +1,10 @@
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 };
@@ -0,0 +1,10 @@
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 };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk4A5USF3Kjs = require('./chunk-4A5USF3K.js');require('./chunk-NSPNMH6Z.js');exports.MenuItemInner = _chunk4A5USF3Kjs.a;
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-W6Z5NYJV.mjs";import"./chunk-IP6JQ5TM.mjs";export{a as MenuItemInner};
@@ -0,0 +1,9 @@
1
+ import 'react';
2
+ import '@jamsrui/utils';
3
+ export { a as MenuItem } from './menu-BF85INsd.mjs';
4
+ import '@floating-ui/react';
5
+ import './menu-content.mjs';
6
+ import './menu-floating-context.mjs';
7
+ import './menu-item-inner.mjs';
8
+ import './styles.mjs';
9
+ import 'tailwind-variants';
@@ -0,0 +1,9 @@
1
+ import 'react';
2
+ import '@jamsrui/utils';
3
+ export { a as MenuItem } from './menu-BpxSgXXZ.js';
4
+ import '@floating-ui/react';
5
+ import './menu-content.js';
6
+ import './menu-floating-context.js';
7
+ import './menu-item-inner.js';
8
+ import './styles.js';
9
+ import 'tailwind-variants';
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk3J33PYDEjs = require('./chunk-3J33PYDE.js');require('./chunk-WJQQ5JXW.js');require('./chunk-4A5USF3K.js');require('./chunk-NSPNMH6Z.js');exports.MenuItem = _chunk3J33PYDEjs.a;
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-7RG7WPEA.mjs";import"./chunk-U2XRBGNU.mjs";import"./chunk-W6Z5NYJV.mjs";import"./chunk-IP6JQ5TM.mjs";export{a as MenuItem};
@@ -0,0 +1,10 @@
1
+ import * as react from 'react';
2
+
3
+ declare const MenuTrigger: (props: MenuTrigger.Props) => react.ReactElement<unknown, string | react.JSXElementConstructor<any>> | null;
4
+ declare namespace MenuTrigger {
5
+ interface Props {
6
+ children?: React.ReactElement;
7
+ }
8
+ }
9
+
10
+ export { MenuTrigger };
@@ -0,0 +1,10 @@
1
+ import * as react from 'react';
2
+
3
+ declare const MenuTrigger: (props: MenuTrigger.Props) => react.ReactElement<unknown, string | react.JSXElementConstructor<any>> | null;
4
+ declare namespace MenuTrigger {
5
+ interface Props {
6
+ children?: React.ReactElement;
7
+ }
8
+ }
9
+
10
+ export { MenuTrigger };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkR43UX3LYjs = require('./chunk-R43UX3LY.js');require('./chunk-NSPNMH6Z.js');exports.MenuTrigger = _chunkR43UX3LYjs.a;
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-A4ENIW42.mjs";import"./chunk-IP6JQ5TM.mjs";export{a as MenuTrigger};
@@ -0,0 +1,9 @@
1
+ import 'react';
2
+ export { M as Menu } from './menu-BF85INsd.mjs';
3
+ import '@floating-ui/react';
4
+ import '@jamsrui/utils';
5
+ import './menu-content.mjs';
6
+ import './menu-floating-context.mjs';
7
+ import './menu-item-inner.mjs';
8
+ import './styles.mjs';
9
+ import 'tailwind-variants';
package/dist/menu.d.ts ADDED
@@ -0,0 +1,9 @@
1
+ import 'react';
2
+ export { M as Menu } from './menu-BpxSgXXZ.js';
3
+ import '@floating-ui/react';
4
+ import '@jamsrui/utils';
5
+ import './menu-content.js';
6
+ import './menu-floating-context.js';
7
+ import './menu-item-inner.js';
8
+ import './styles.js';
9
+ import 'tailwind-variants';
package/dist/menu.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkP4JWOT3Ajs = require('./chunk-P4JWOT3A.js');require('./chunk-KC7QMDYR.js');require('./chunk-UEFGBHFK.js');require('./chunk-WJQQ5JXW.js');require('./chunk-NSPNMH6Z.js');exports.Menu = _chunkP4JWOT3Ajs.a;
package/dist/menu.mjs ADDED
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-3NN75CDA.mjs";import"./chunk-3RPR26EV.mjs";import"./chunk-UNIE5VBW.mjs";import"./chunk-U2XRBGNU.mjs";import"./chunk-IP6JQ5TM.mjs";export{a as Menu};
@@ -0,0 +1,156 @@
1
+ import * as tailwind_variants from 'tailwind-variants';
2
+ import { VariantProps } from '@jamsrui/utils';
3
+
4
+ declare const test = "";
5
+ declare const menuVariants: tailwind_variants.TVReturnType<{
6
+ radius: {
7
+ sm: {};
8
+ md: {};
9
+ lg: {};
10
+ xl: {};
11
+ "2xl": {};
12
+ "3xl": {};
13
+ full: {};
14
+ none: {};
15
+ };
16
+ backdrop: {
17
+ transparent: {
18
+ backdrop: string;
19
+ };
20
+ opaque: {
21
+ backdrop: string;
22
+ };
23
+ blur: {
24
+ backdrop: string;
25
+ };
26
+ };
27
+ color: {
28
+ default: {
29
+ menuItem: string;
30
+ };
31
+ primary: {
32
+ menuItem: string;
33
+ };
34
+ secondary: {
35
+ menuItem: string;
36
+ };
37
+ success: {
38
+ menuItem: string;
39
+ };
40
+ warning: {
41
+ menuItem: string;
42
+ };
43
+ danger: {
44
+ menuItem: string;
45
+ };
46
+ };
47
+ }, {
48
+ arrow: string;
49
+ backdrop: string;
50
+ root: string;
51
+ content: string;
52
+ menuItem: string[];
53
+ menuItemInner: string;
54
+ }, undefined, {
55
+ radius: {
56
+ sm: {};
57
+ md: {};
58
+ lg: {};
59
+ xl: {};
60
+ "2xl": {};
61
+ "3xl": {};
62
+ full: {};
63
+ none: {};
64
+ };
65
+ backdrop: {
66
+ transparent: {
67
+ backdrop: string;
68
+ };
69
+ opaque: {
70
+ backdrop: string;
71
+ };
72
+ blur: {
73
+ backdrop: string;
74
+ };
75
+ };
76
+ color: {
77
+ default: {
78
+ menuItem: string;
79
+ };
80
+ primary: {
81
+ menuItem: string;
82
+ };
83
+ secondary: {
84
+ menuItem: string;
85
+ };
86
+ success: {
87
+ menuItem: string;
88
+ };
89
+ warning: {
90
+ menuItem: string;
91
+ };
92
+ danger: {
93
+ menuItem: string;
94
+ };
95
+ };
96
+ }, {
97
+ arrow: string;
98
+ backdrop: string;
99
+ root: string;
100
+ content: string;
101
+ menuItem: string[];
102
+ menuItemInner: string;
103
+ }, tailwind_variants.TVReturnType<{
104
+ radius: {
105
+ sm: {};
106
+ md: {};
107
+ lg: {};
108
+ xl: {};
109
+ "2xl": {};
110
+ "3xl": {};
111
+ full: {};
112
+ none: {};
113
+ };
114
+ backdrop: {
115
+ transparent: {
116
+ backdrop: string;
117
+ };
118
+ opaque: {
119
+ backdrop: string;
120
+ };
121
+ blur: {
122
+ backdrop: string;
123
+ };
124
+ };
125
+ color: {
126
+ default: {
127
+ menuItem: string;
128
+ };
129
+ primary: {
130
+ menuItem: string;
131
+ };
132
+ secondary: {
133
+ menuItem: string;
134
+ };
135
+ success: {
136
+ menuItem: string;
137
+ };
138
+ warning: {
139
+ menuItem: string;
140
+ };
141
+ danger: {
142
+ menuItem: string;
143
+ };
144
+ };
145
+ }, {
146
+ arrow: string;
147
+ backdrop: string;
148
+ root: string;
149
+ content: string;
150
+ menuItem: string[];
151
+ menuItemInner: string;
152
+ }, undefined, unknown, unknown, undefined>>;
153
+ type MenuVariantProps = VariantProps<typeof menuVariants>;
154
+ type MenuSlots = keyof ReturnType<typeof menuVariants>;
155
+
156
+ export { type MenuSlots, type MenuVariantProps, menuVariants, test };
@@ -0,0 +1,156 @@
1
+ import * as tailwind_variants from 'tailwind-variants';
2
+ import { VariantProps } from '@jamsrui/utils';
3
+
4
+ declare const test = "";
5
+ declare const menuVariants: tailwind_variants.TVReturnType<{
6
+ radius: {
7
+ sm: {};
8
+ md: {};
9
+ lg: {};
10
+ xl: {};
11
+ "2xl": {};
12
+ "3xl": {};
13
+ full: {};
14
+ none: {};
15
+ };
16
+ backdrop: {
17
+ transparent: {
18
+ backdrop: string;
19
+ };
20
+ opaque: {
21
+ backdrop: string;
22
+ };
23
+ blur: {
24
+ backdrop: string;
25
+ };
26
+ };
27
+ color: {
28
+ default: {
29
+ menuItem: string;
30
+ };
31
+ primary: {
32
+ menuItem: string;
33
+ };
34
+ secondary: {
35
+ menuItem: string;
36
+ };
37
+ success: {
38
+ menuItem: string;
39
+ };
40
+ warning: {
41
+ menuItem: string;
42
+ };
43
+ danger: {
44
+ menuItem: string;
45
+ };
46
+ };
47
+ }, {
48
+ arrow: string;
49
+ backdrop: string;
50
+ root: string;
51
+ content: string;
52
+ menuItem: string[];
53
+ menuItemInner: string;
54
+ }, undefined, {
55
+ radius: {
56
+ sm: {};
57
+ md: {};
58
+ lg: {};
59
+ xl: {};
60
+ "2xl": {};
61
+ "3xl": {};
62
+ full: {};
63
+ none: {};
64
+ };
65
+ backdrop: {
66
+ transparent: {
67
+ backdrop: string;
68
+ };
69
+ opaque: {
70
+ backdrop: string;
71
+ };
72
+ blur: {
73
+ backdrop: string;
74
+ };
75
+ };
76
+ color: {
77
+ default: {
78
+ menuItem: string;
79
+ };
80
+ primary: {
81
+ menuItem: string;
82
+ };
83
+ secondary: {
84
+ menuItem: string;
85
+ };
86
+ success: {
87
+ menuItem: string;
88
+ };
89
+ warning: {
90
+ menuItem: string;
91
+ };
92
+ danger: {
93
+ menuItem: string;
94
+ };
95
+ };
96
+ }, {
97
+ arrow: string;
98
+ backdrop: string;
99
+ root: string;
100
+ content: string;
101
+ menuItem: string[];
102
+ menuItemInner: string;
103
+ }, tailwind_variants.TVReturnType<{
104
+ radius: {
105
+ sm: {};
106
+ md: {};
107
+ lg: {};
108
+ xl: {};
109
+ "2xl": {};
110
+ "3xl": {};
111
+ full: {};
112
+ none: {};
113
+ };
114
+ backdrop: {
115
+ transparent: {
116
+ backdrop: string;
117
+ };
118
+ opaque: {
119
+ backdrop: string;
120
+ };
121
+ blur: {
122
+ backdrop: string;
123
+ };
124
+ };
125
+ color: {
126
+ default: {
127
+ menuItem: string;
128
+ };
129
+ primary: {
130
+ menuItem: string;
131
+ };
132
+ secondary: {
133
+ menuItem: string;
134
+ };
135
+ success: {
136
+ menuItem: string;
137
+ };
138
+ warning: {
139
+ menuItem: string;
140
+ };
141
+ danger: {
142
+ menuItem: string;
143
+ };
144
+ };
145
+ }, {
146
+ arrow: string;
147
+ backdrop: string;
148
+ root: string;
149
+ content: string;
150
+ menuItem: string[];
151
+ menuItemInner: string;
152
+ }, undefined, unknown, unknown, undefined>>;
153
+ type MenuVariantProps = VariantProps<typeof menuVariants>;
154
+ type MenuSlots = keyof ReturnType<typeof menuVariants>;
155
+
156
+ export { type MenuSlots, type MenuVariantProps, menuVariants, test };
package/dist/styles.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkUEFGBHFKjs = require('./chunk-UEFGBHFK.js');exports.menuVariants = _chunkUEFGBHFKjs.b; exports.test = _chunkUEFGBHFKjs.a;
@@ -0,0 +1 @@
1
+ import{a,b}from"./chunk-UNIE5VBW.mjs";export{b as menuVariants,a as test};
@@ -0,0 +1,9 @@
1
+ import 'react';
2
+ import '@floating-ui/react';
3
+ import '@jamsrui/utils';
4
+ import './menu-content.mjs';
5
+ import './menu-floating-context.mjs';
6
+ export { u as useMenu } from './menu-BF85INsd.mjs';
7
+ import './menu-item-inner.mjs';
8
+ import './styles.mjs';
9
+ import 'tailwind-variants';
@@ -0,0 +1,9 @@
1
+ import 'react';
2
+ import '@floating-ui/react';
3
+ import '@jamsrui/utils';
4
+ import './menu-content.js';
5
+ import './menu-floating-context.js';
6
+ export { u as useMenu } from './menu-BpxSgXXZ.js';
7
+ import './menu-item-inner.js';
8
+ import './styles.js';
9
+ import 'tailwind-variants';
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkKC7QMDYRjs = require('./chunk-KC7QMDYR.js');require('./chunk-UEFGBHFK.js');require('./chunk-WJQQ5JXW.js');exports.useMenu = _chunkKC7QMDYRjs.a;
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-3RPR26EV.mjs";import"./chunk-UNIE5VBW.mjs";import"./chunk-U2XRBGNU.mjs";export{a as useMenu};
package/package.json ADDED
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "@jamsrui/menu",
3
+ "version": "0.0.2",
4
+ "peerDependencies": {
5
+ "react": ">=19"
6
+ },
7
+ "dependencies": {
8
+ "@floating-ui/react": ">=0.27",
9
+ "@jamsrui/hooks": "^0.0.2",
10
+ "@jamsrui/core": "^0.0.2",
11
+ "@jamsrui/utils": "^0.0.2"
12
+ },
13
+ "exports": {
14
+ ".": {
15
+ "types": "./dist/index.d.ts",
16
+ "import": "./dist/index.mjs",
17
+ "require": "./dist/index.js"
18
+ }
19
+ },
20
+ "description": "A modern and beautiful Next.js UI components library.",
21
+ "keywords": [
22
+ "react",
23
+ "ui",
24
+ "UI components",
25
+ "Next.js",
26
+ "React",
27
+ "JamsrUI",
28
+ "jamsr-ui",
29
+ "TypeScript"
30
+ ],
31
+ "sideEffects": false,
32
+ "license": "MIT",
33
+ "author": "@jamsrworld",
34
+ "repository": {
35
+ "type": "git",
36
+ "url": "https://github.com/jamsrworld/jamsr-ui"
37
+ },
38
+ "bugs": {
39
+ "url": "https://github.com/jamsrworld/jamsr-ui/issues"
40
+ },
41
+ "homepage": "https://jamsr-ui.jamsrworld.com",
42
+ "files": [
43
+ "dist",
44
+ "README",
45
+ "README.md",
46
+ "package.json",
47
+ "LICENSE"
48
+ ]
49
+ }