UNPKG

@accelint/design-toolkit

Version:

An open-source component library to serve as part of the entire ecosystem of UX for Accelint.

4 lines (3 loc) 1.79 kB
'use client'; import {jsxs,jsx}from'react/jsx-runtime';import {ChevronDown}from'@accelint/icons';import'client-only';import {useContext,useRef}from'react';import {Disclosure,composeRenderProps,Button,Heading,DisclosurePanel,DialogTrigger,Popover}from'react-aria-components';import {Icon}from'../icon/index.js';import {Tooltip}from'../tooltip/index.js';import {TooltipTrigger}from'../tooltip/trigger.js';import {SidenavContext}from'./context.js';import {SidenavStyles}from'./styles.js';const{menu:y,menuButton:g,menuPanel:H,panelContent:d,tooltip:M,transient:R}=SidenavStyles();function G({icon:a,title:i,classNames:n,children:p,...l}){const{isOpen:s}=useContext(SidenavContext),m=useRef(null);return s?jsxs(Disclosure,{className:composeRenderProps(n?.menu,o=>y({className:o})),children:[jsxs(Button,{...l,slot:"trigger",className:composeRenderProps(n?.button,o=>g({className:o})),children:[a,jsx(Heading,{slot:"menu",children:i}),jsx(Icon,{className:R({className:n?.icon}),children:jsx(ChevronDown,{className:"transform group-expanded/menu:rotate-180"})})]}),jsx(DisclosurePanel,{className:composeRenderProps(n?.disclosurePanel,o=>o??""),children:jsx("div",{className:d({className:n?.panelContent}),children:p})})]}):jsxs(DialogTrigger,{children:[jsxs(TooltipTrigger,{isDisabled:s,children:[jsx(Button,{...l,ref:m,className:composeRenderProps(n?.button,o=>g({className:o})),children:a}),jsx(Tooltip,{parentRef:m,placement:"right",className:M(),children:i})]}),jsxs(Popover,{className:composeRenderProps(n?.popoverPanel,o=>H({className:o})),placement:"right top",shouldFlip:false,children:[jsx(Heading,{slot:"panel",children:i}),jsx("div",{className:d({className:n?.panelContent}),children:p})]})]})}export{G as SidenavMenu};//# sourceMappingURL=menu.js.map //# sourceMappingURL=menu.js.map