UNPKG

@mantine/core

Version:

React components library focused on usability, accessibility and developer experience

124 lines (120 loc) 4.26 kB
'use client'; 'use strict'; var React = require('react'); var hooks = require('@mantine/hooks'); var rem = require('../../../core/utils/units-converters/rem.cjs'); var closeOnEscape = require('../../../core/utils/close-on-escape/close-on-escape.cjs'); require('clsx'); require('../../../core/MantineProvider/Mantine.context.cjs'); require('../../../core/MantineProvider/default-theme.cjs'); require('../../../core/MantineProvider/MantineProvider.cjs'); require('../../../core/MantineProvider/MantineThemeProvider/MantineThemeProvider.cjs'); var useProps = require('../../../core/MantineProvider/use-props/use-props.cjs'); var Box = require('../../../core/Box/Box.cjs'); var factory = require('../../../core/factory/factory.cjs'); require('../../../core/DirectionProvider/DirectionProvider.cjs'); require('@floating-ui/react'); var FloatingArrow = require('../../Floating/FloatingArrow/FloatingArrow.cjs'); var FocusTrap = require('../../FocusTrap/FocusTrap.cjs'); require('../../Portal/Portal.cjs'); var OptionalPortal = require('../../Portal/OptionalPortal.cjs'); require('../../Transition/transitions.cjs'); var Transition = require('../../Transition/Transition.cjs'); var Popover_context = require('../Popover.context.cjs'); var Popover_module = require('../Popover.module.css.cjs'); const defaultProps = {}; const PopoverDropdown = factory.factory((_props, ref) => { const props = useProps.useProps("PopoverDropdown", defaultProps, _props); const { className, style, vars, children, onKeyDownCapture, variant, classNames, styles, ...others } = props; const ctx = Popover_context.usePopoverContext(); const returnFocus = hooks.useFocusReturn({ opened: ctx.opened, shouldReturnFocus: ctx.returnFocus }); const accessibleProps = ctx.withRoles ? { "aria-labelledby": ctx.getTargetId(), id: ctx.getDropdownId(), role: "dialog", tabIndex: -1 } : {}; const mergedRef = hooks.useMergedRef(ref, ctx.floating); if (ctx.disabled) { return null; } return /* @__PURE__ */ React.createElement(OptionalPortal.OptionalPortal, { ...ctx.portalProps, withinPortal: ctx.withinPortal }, /* @__PURE__ */ React.createElement( Transition.Transition, { mounted: ctx.opened, ...ctx.transitionProps, transition: ctx.transitionProps?.transition || "fade", duration: ctx.transitionProps?.duration ?? 150, keepMounted: ctx.keepMounted, exitDuration: typeof ctx.transitionProps?.exitDuration === "number" ? ctx.transitionProps.exitDuration : ctx.transitionProps?.duration }, (transitionStyles) => /* @__PURE__ */ React.createElement(FocusTrap.FocusTrap, { active: ctx.trapFocus }, /* @__PURE__ */ React.createElement( Box.Box, { ...accessibleProps, ...others, variant, ref: mergedRef, onKeyDownCapture: closeOnEscape.closeOnEscape(ctx.onClose, { active: ctx.closeOnEscape, onTrigger: returnFocus, onKeyDown: onKeyDownCapture }), "data-position": ctx.placement, ...ctx.getStyles("dropdown", { className, props, classNames, styles, style: [ { ...transitionStyles, zIndex: ctx.zIndex, top: ctx.y ?? 0, left: ctx.x ?? 0, width: ctx.width === "target" ? void 0 : rem.rem(ctx.width) }, style ] }) }, children, /* @__PURE__ */ React.createElement( FloatingArrow.FloatingArrow, { ref: ctx.arrowRef, arrowX: ctx.arrowX, arrowY: ctx.arrowY, visible: ctx.withArrow, position: ctx.placement, arrowSize: ctx.arrowSize, arrowRadius: ctx.arrowRadius, arrowOffset: ctx.arrowOffset, arrowPosition: ctx.arrowPosition, ...ctx.getStyles("arrow", { props, classNames, styles }) } ) )) )); }); PopoverDropdown.classes = Popover_module; PopoverDropdown.displayName = "@mantine/core/PopoverDropdown"; exports.PopoverDropdown = PopoverDropdown; //# sourceMappingURL=PopoverDropdown.cjs.map