@mantine/core
Version:
React components library focused on usability, accessibility and developer experience
61 lines (60 loc) • 2.29 kB
JavaScript
"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