UNPKG

@mantine/core

Version:

React components library focused on usability, accessibility and developer experience

61 lines (60 loc) 2.29 kB
"use client"; import { getDefaultZIndex } from "../../core/utils/get-default-z-index/get-default-z-index.mjs"; import { useProps } from "../../core/MantineProvider/use-props/use-props.mjs"; import { useStyles } from "../../core/styles-api/use-styles/use-styles.mjs"; import { factory } from "../../core/factory/factory.mjs"; import { Paper } from "../Paper/Paper.mjs"; import { OptionalPortal } from "../Portal/OptionalPortal.mjs"; import FloatingWindow_module_default from "./FloatingWindow.module.mjs"; import { useImperativeHandle } from "react"; import { useFloatingWindow, useMergedRef } from "@mantine/hooks"; import { jsx } from "react/jsx-runtime"; //#region packages/@mantine/core/src/components/FloatingWindow/FloatingWindow.tsx const defaultProps = { constrainToViewport: true, zIndex: getDefaultZIndex("overlay") }; const FloatingWindow = factory((_props) => { const props = useProps("FloatingWindow", defaultProps, _props); const { classNames, className, style, styles, unstyled, vars, mod, enabled, constrainToViewport, constrainOffset, dragHandleSelector, excludeDragHandleSelector, axis, initialPosition, onPositionChange, onDragStart, onDragEnd, setPositionRef, withinPortal, portalProps, zIndex, ref, ...others } = props; const getStyles = useStyles({ name: "FloatingWindow", classes: FloatingWindow_module_default, props, className, style, classNames, styles, unstyled, vars }); const floatingWindow = useFloatingWindow({ enabled, constrainToViewport, constrainOffset, dragHandleSelector, excludeDragHandleSelector, axis, initialPosition, onPositionChange, onDragStart, onDragEnd }); useImperativeHandle(setPositionRef, () => floatingWindow.setPosition, [floatingWindow.setPosition]); return /* @__PURE__ */ jsx(OptionalPortal, { withinPortal, ...portalProps, children: /* @__PURE__ */ jsx(Paper, { ref: useMergedRef(ref, floatingWindow.ref), mod: [{ dragging: floatingWindow.isDragging }, mod], ...getStyles("root"), ...others, __vars: { "--floating-window-z-index": zIndex.toString() } }) }); }); FloatingWindow.displayName = "@mantine/core/FloatingWindow"; FloatingWindow.classes = FloatingWindow_module_default; //#endregion export { FloatingWindow }; //# sourceMappingURL=FloatingWindow.mjs.map