primereact
Version:
A rich set of premium UI Components for React.
4 lines (2 loc) • 1.36 kB
JavaScript
'use client';
import{Component as b,withComponent as C}from"@primereact/core/component";import{usePositioner as w}from"@primereact/headless/positioner";import{mergeProps as E}from"@primeuix/utils";import*as a from"react";import{createOptionalContext as O}from"@primereact/core/utils";var[I,p]=O();import{createOptionalContext as v}from"@primereact/core/utils";var[R,u]=v();import*as m from"@primereact/headless/positioner";var f={...m.defaultProps,as:"div",side:"bottom",align:"start",sideOffset:2};var B=C({name:"Menu.Positioner",defaultProps:f,setup(s){let{props:e,inProps:n}=s,o=p(),t=u(),i=t?.popover??o?.popover,r=n?.side!==void 0,c=n?.align!==void 0,d=n?.sideOffset!==void 0,l=n?.alignOffset!==void 0,P=t&&!r?"right":e.side,x=t&&!c?"start":e.align,h=t&&!d?0:e.sideOffset,M=t&&!l?-5:e.alignOffset,g=w({align:x,side:P,sideOffset:h,alignOffset:M,flip:e.flip,shift:e.shift,hideWhenDetached:e.hideWhenDetached,anchor:i?.state.anchorElement,content:i?.state.positionerElement,arrow:i?.state.arrowElement});return{menu:o,submenu:t,positioner:g}},render(s){let{props:e,ptmi:n,menu:o,submenu:t}=s,i=t?.popover??o?.popover,r=E(i?.positionerProps,{className:o?.cx("positioner")},o?.ptm("positioner"),n("root"));return a.createElement(b,{pIf:!!i?.state.rendered,instance:s,attrs:r,children:e.children})}});export{B as MenuPositioner,f as defaultPositionerProps};