Initial commit
This commit is contained in:
46
node_modules/@radix-ui/react-popper/dist/index.d.mts
generated
vendored
Normal file
46
node_modules/@radix-ui/react-popper/dist/index.d.mts
generated
vendored
Normal file
@@ -0,0 +1,46 @@
|
||||
import * as _radix_ui_react_context from '@radix-ui/react-context';
|
||||
import * as React from 'react';
|
||||
import * as ArrowPrimitive from '@radix-ui/react-arrow';
|
||||
import { Primitive } from '@radix-ui/react-primitive';
|
||||
import { Measurable } from '@radix-ui/rect';
|
||||
|
||||
declare const SIDE_OPTIONS: readonly ["top", "right", "bottom", "left"];
|
||||
declare const ALIGN_OPTIONS: readonly ["start", "center", "end"];
|
||||
type Side = (typeof SIDE_OPTIONS)[number];
|
||||
type Align = (typeof ALIGN_OPTIONS)[number];
|
||||
declare const createPopperScope: _radix_ui_react_context.CreateScope;
|
||||
interface PopperProps {
|
||||
children?: React.ReactNode;
|
||||
}
|
||||
declare const Popper: React.FC<PopperProps>;
|
||||
type PrimitiveDivProps = React.ComponentPropsWithoutRef<typeof Primitive.div>;
|
||||
interface PopperAnchorProps extends PrimitiveDivProps {
|
||||
virtualRef?: React.RefObject<Measurable>;
|
||||
}
|
||||
declare const PopperAnchor: React.ForwardRefExoticComponent<PopperAnchorProps & React.RefAttributes<HTMLDivElement>>;
|
||||
type Boundary = Element | null;
|
||||
interface PopperContentProps extends PrimitiveDivProps {
|
||||
side?: Side;
|
||||
sideOffset?: number;
|
||||
align?: Align;
|
||||
alignOffset?: number;
|
||||
arrowPadding?: number;
|
||||
avoidCollisions?: boolean;
|
||||
collisionBoundary?: Boundary | Boundary[];
|
||||
collisionPadding?: number | Partial<Record<Side, number>>;
|
||||
sticky?: 'partial' | 'always';
|
||||
hideWhenDetached?: boolean;
|
||||
updatePositionStrategy?: 'optimized' | 'always';
|
||||
onPlaced?: () => void;
|
||||
}
|
||||
declare const PopperContent: React.ForwardRefExoticComponent<PopperContentProps & React.RefAttributes<HTMLDivElement>>;
|
||||
type ArrowProps = React.ComponentPropsWithoutRef<typeof ArrowPrimitive.Root>;
|
||||
interface PopperArrowProps extends ArrowProps {
|
||||
}
|
||||
declare const PopperArrow: React.ForwardRefExoticComponent<PopperArrowProps & React.RefAttributes<SVGSVGElement>>;
|
||||
declare const Root: React.FC<PopperProps>;
|
||||
declare const Anchor: React.ForwardRefExoticComponent<PopperAnchorProps & React.RefAttributes<HTMLDivElement>>;
|
||||
declare const Content: React.ForwardRefExoticComponent<PopperContentProps & React.RefAttributes<HTMLDivElement>>;
|
||||
declare const Arrow: React.ForwardRefExoticComponent<PopperArrowProps & React.RefAttributes<SVGSVGElement>>;
|
||||
|
||||
export { ALIGN_OPTIONS, Anchor, Arrow, Content, Popper, PopperAnchor, type PopperAnchorProps, PopperArrow, type PopperArrowProps, PopperContent, type PopperContentProps, type PopperProps, Root, SIDE_OPTIONS, createPopperScope };
|
||||
46
node_modules/@radix-ui/react-popper/dist/index.d.ts
generated
vendored
Normal file
46
node_modules/@radix-ui/react-popper/dist/index.d.ts
generated
vendored
Normal file
@@ -0,0 +1,46 @@
|
||||
import * as _radix_ui_react_context from '@radix-ui/react-context';
|
||||
import * as React from 'react';
|
||||
import * as ArrowPrimitive from '@radix-ui/react-arrow';
|
||||
import { Primitive } from '@radix-ui/react-primitive';
|
||||
import { Measurable } from '@radix-ui/rect';
|
||||
|
||||
declare const SIDE_OPTIONS: readonly ["top", "right", "bottom", "left"];
|
||||
declare const ALIGN_OPTIONS: readonly ["start", "center", "end"];
|
||||
type Side = (typeof SIDE_OPTIONS)[number];
|
||||
type Align = (typeof ALIGN_OPTIONS)[number];
|
||||
declare const createPopperScope: _radix_ui_react_context.CreateScope;
|
||||
interface PopperProps {
|
||||
children?: React.ReactNode;
|
||||
}
|
||||
declare const Popper: React.FC<PopperProps>;
|
||||
type PrimitiveDivProps = React.ComponentPropsWithoutRef<typeof Primitive.div>;
|
||||
interface PopperAnchorProps extends PrimitiveDivProps {
|
||||
virtualRef?: React.RefObject<Measurable>;
|
||||
}
|
||||
declare const PopperAnchor: React.ForwardRefExoticComponent<PopperAnchorProps & React.RefAttributes<HTMLDivElement>>;
|
||||
type Boundary = Element | null;
|
||||
interface PopperContentProps extends PrimitiveDivProps {
|
||||
side?: Side;
|
||||
sideOffset?: number;
|
||||
align?: Align;
|
||||
alignOffset?: number;
|
||||
arrowPadding?: number;
|
||||
avoidCollisions?: boolean;
|
||||
collisionBoundary?: Boundary | Boundary[];
|
||||
collisionPadding?: number | Partial<Record<Side, number>>;
|
||||
sticky?: 'partial' | 'always';
|
||||
hideWhenDetached?: boolean;
|
||||
updatePositionStrategy?: 'optimized' | 'always';
|
||||
onPlaced?: () => void;
|
||||
}
|
||||
declare const PopperContent: React.ForwardRefExoticComponent<PopperContentProps & React.RefAttributes<HTMLDivElement>>;
|
||||
type ArrowProps = React.ComponentPropsWithoutRef<typeof ArrowPrimitive.Root>;
|
||||
interface PopperArrowProps extends ArrowProps {
|
||||
}
|
||||
declare const PopperArrow: React.ForwardRefExoticComponent<PopperArrowProps & React.RefAttributes<SVGSVGElement>>;
|
||||
declare const Root: React.FC<PopperProps>;
|
||||
declare const Anchor: React.ForwardRefExoticComponent<PopperAnchorProps & React.RefAttributes<HTMLDivElement>>;
|
||||
declare const Content: React.ForwardRefExoticComponent<PopperContentProps & React.RefAttributes<HTMLDivElement>>;
|
||||
declare const Arrow: React.ForwardRefExoticComponent<PopperArrowProps & React.RefAttributes<SVGSVGElement>>;
|
||||
|
||||
export { ALIGN_OPTIONS, Anchor, Arrow, Content, Popper, PopperAnchor, type PopperAnchorProps, PopperArrow, type PopperArrowProps, PopperContent, type PopperContentProps, type PopperProps, Root, SIDE_OPTIONS, createPopperScope };
|
||||
325
node_modules/@radix-ui/react-popper/dist/index.js
generated
vendored
Normal file
325
node_modules/@radix-ui/react-popper/dist/index.js
generated
vendored
Normal file
@@ -0,0 +1,325 @@
|
||||
"use strict";
|
||||
"use client";
|
||||
var __create = Object.create;
|
||||
var __defProp = Object.defineProperty;
|
||||
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
||||
var __getOwnPropNames = Object.getOwnPropertyNames;
|
||||
var __getProtoOf = Object.getPrototypeOf;
|
||||
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
||||
var __export = (target, all) => {
|
||||
for (var name in all)
|
||||
__defProp(target, name, { get: all[name], enumerable: true });
|
||||
};
|
||||
var __copyProps = (to, from, except, desc) => {
|
||||
if (from && typeof from === "object" || typeof from === "function") {
|
||||
for (let key of __getOwnPropNames(from))
|
||||
if (!__hasOwnProp.call(to, key) && key !== except)
|
||||
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
||||
}
|
||||
return to;
|
||||
};
|
||||
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
||||
// If the importer is in node compatibility mode or this is not an ESM
|
||||
// file that has been converted to a CommonJS file using a Babel-
|
||||
// compatible transform (i.e. "__esModule" has not been set), then set
|
||||
// "default" to the CommonJS "module.exports" for node compatibility.
|
||||
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
||||
mod
|
||||
));
|
||||
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
||||
|
||||
// packages/react/popper/src/index.ts
|
||||
var src_exports = {};
|
||||
__export(src_exports, {
|
||||
ALIGN_OPTIONS: () => ALIGN_OPTIONS,
|
||||
Anchor: () => Anchor,
|
||||
Arrow: () => Arrow,
|
||||
Content: () => Content,
|
||||
Popper: () => Popper,
|
||||
PopperAnchor: () => PopperAnchor,
|
||||
PopperArrow: () => PopperArrow,
|
||||
PopperContent: () => PopperContent,
|
||||
Root: () => Root2,
|
||||
SIDE_OPTIONS: () => SIDE_OPTIONS,
|
||||
createPopperScope: () => createPopperScope
|
||||
});
|
||||
module.exports = __toCommonJS(src_exports);
|
||||
|
||||
// packages/react/popper/src/popper.tsx
|
||||
var React = __toESM(require("react"));
|
||||
var import_react_dom = require("@floating-ui/react-dom");
|
||||
var ArrowPrimitive = __toESM(require("@radix-ui/react-arrow"));
|
||||
var import_react_compose_refs = require("@radix-ui/react-compose-refs");
|
||||
var import_react_context = require("@radix-ui/react-context");
|
||||
var import_react_primitive = require("@radix-ui/react-primitive");
|
||||
var import_react_use_callback_ref = require("@radix-ui/react-use-callback-ref");
|
||||
var import_react_use_layout_effect = require("@radix-ui/react-use-layout-effect");
|
||||
var import_react_use_size = require("@radix-ui/react-use-size");
|
||||
var import_jsx_runtime = require("react/jsx-runtime");
|
||||
var SIDE_OPTIONS = ["top", "right", "bottom", "left"];
|
||||
var ALIGN_OPTIONS = ["start", "center", "end"];
|
||||
var POPPER_NAME = "Popper";
|
||||
var [createPopperContext, createPopperScope] = (0, import_react_context.createContextScope)(POPPER_NAME);
|
||||
var [PopperProvider, usePopperContext] = createPopperContext(POPPER_NAME);
|
||||
var Popper = (props) => {
|
||||
const { __scopePopper, children } = props;
|
||||
const [anchor, setAnchor] = React.useState(null);
|
||||
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PopperProvider, { scope: __scopePopper, anchor, onAnchorChange: setAnchor, children });
|
||||
};
|
||||
Popper.displayName = POPPER_NAME;
|
||||
var ANCHOR_NAME = "PopperAnchor";
|
||||
var PopperAnchor = React.forwardRef(
|
||||
(props, forwardedRef) => {
|
||||
const { __scopePopper, virtualRef, ...anchorProps } = props;
|
||||
const context = usePopperContext(ANCHOR_NAME, __scopePopper);
|
||||
const ref = React.useRef(null);
|
||||
const composedRefs = (0, import_react_compose_refs.useComposedRefs)(forwardedRef, ref);
|
||||
React.useEffect(() => {
|
||||
context.onAnchorChange(virtualRef?.current || ref.current);
|
||||
});
|
||||
return virtualRef ? null : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_primitive.Primitive.div, { ...anchorProps, ref: composedRefs });
|
||||
}
|
||||
);
|
||||
PopperAnchor.displayName = ANCHOR_NAME;
|
||||
var CONTENT_NAME = "PopperContent";
|
||||
var [PopperContentProvider, useContentContext] = createPopperContext(CONTENT_NAME);
|
||||
var PopperContent = React.forwardRef(
|
||||
(props, forwardedRef) => {
|
||||
const {
|
||||
__scopePopper,
|
||||
side = "bottom",
|
||||
sideOffset = 0,
|
||||
align = "center",
|
||||
alignOffset = 0,
|
||||
arrowPadding = 0,
|
||||
avoidCollisions = true,
|
||||
collisionBoundary = [],
|
||||
collisionPadding: collisionPaddingProp = 0,
|
||||
sticky = "partial",
|
||||
hideWhenDetached = false,
|
||||
updatePositionStrategy = "optimized",
|
||||
onPlaced,
|
||||
...contentProps
|
||||
} = props;
|
||||
const context = usePopperContext(CONTENT_NAME, __scopePopper);
|
||||
const [content, setContent] = React.useState(null);
|
||||
const composedRefs = (0, import_react_compose_refs.useComposedRefs)(forwardedRef, (node) => setContent(node));
|
||||
const [arrow, setArrow] = React.useState(null);
|
||||
const arrowSize = (0, import_react_use_size.useSize)(arrow);
|
||||
const arrowWidth = arrowSize?.width ?? 0;
|
||||
const arrowHeight = arrowSize?.height ?? 0;
|
||||
const desiredPlacement = side + (align !== "center" ? "-" + align : "");
|
||||
const collisionPadding = typeof collisionPaddingProp === "number" ? collisionPaddingProp : { top: 0, right: 0, bottom: 0, left: 0, ...collisionPaddingProp };
|
||||
const boundary = Array.isArray(collisionBoundary) ? collisionBoundary : [collisionBoundary];
|
||||
const hasExplicitBoundaries = boundary.length > 0;
|
||||
const detectOverflowOptions = {
|
||||
padding: collisionPadding,
|
||||
boundary: boundary.filter(isNotNull),
|
||||
// with `strategy: 'fixed'`, this is the only way to get it to respect boundaries
|
||||
altBoundary: hasExplicitBoundaries
|
||||
};
|
||||
const { refs, floatingStyles, placement, isPositioned, middlewareData } = (0, import_react_dom.useFloating)({
|
||||
// default to `fixed` strategy so users don't have to pick and we also avoid focus scroll issues
|
||||
strategy: "fixed",
|
||||
placement: desiredPlacement,
|
||||
whileElementsMounted: (...args) => {
|
||||
const cleanup = (0, import_react_dom.autoUpdate)(...args, {
|
||||
animationFrame: updatePositionStrategy === "always"
|
||||
});
|
||||
return cleanup;
|
||||
},
|
||||
elements: {
|
||||
reference: context.anchor
|
||||
},
|
||||
middleware: [
|
||||
(0, import_react_dom.offset)({ mainAxis: sideOffset + arrowHeight, alignmentAxis: alignOffset }),
|
||||
avoidCollisions && (0, import_react_dom.shift)({
|
||||
mainAxis: true,
|
||||
crossAxis: false,
|
||||
limiter: sticky === "partial" ? (0, import_react_dom.limitShift)() : void 0,
|
||||
...detectOverflowOptions
|
||||
}),
|
||||
avoidCollisions && (0, import_react_dom.flip)({ ...detectOverflowOptions }),
|
||||
(0, import_react_dom.size)({
|
||||
...detectOverflowOptions,
|
||||
apply: ({ elements, rects, availableWidth, availableHeight }) => {
|
||||
const { width: anchorWidth, height: anchorHeight } = rects.reference;
|
||||
const contentStyle = elements.floating.style;
|
||||
contentStyle.setProperty("--radix-popper-available-width", `${availableWidth}px`);
|
||||
contentStyle.setProperty("--radix-popper-available-height", `${availableHeight}px`);
|
||||
contentStyle.setProperty("--radix-popper-anchor-width", `${anchorWidth}px`);
|
||||
contentStyle.setProperty("--radix-popper-anchor-height", `${anchorHeight}px`);
|
||||
}
|
||||
}),
|
||||
arrow && (0, import_react_dom.arrow)({ element: arrow, padding: arrowPadding }),
|
||||
transformOrigin({ arrowWidth, arrowHeight }),
|
||||
hideWhenDetached && (0, import_react_dom.hide)({ strategy: "referenceHidden", ...detectOverflowOptions })
|
||||
]
|
||||
});
|
||||
const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);
|
||||
const handlePlaced = (0, import_react_use_callback_ref.useCallbackRef)(onPlaced);
|
||||
(0, import_react_use_layout_effect.useLayoutEffect)(() => {
|
||||
if (isPositioned) {
|
||||
handlePlaced?.();
|
||||
}
|
||||
}, [isPositioned, handlePlaced]);
|
||||
const arrowX = middlewareData.arrow?.x;
|
||||
const arrowY = middlewareData.arrow?.y;
|
||||
const cannotCenterArrow = middlewareData.arrow?.centerOffset !== 0;
|
||||
const [contentZIndex, setContentZIndex] = React.useState();
|
||||
(0, import_react_use_layout_effect.useLayoutEffect)(() => {
|
||||
if (content) setContentZIndex(window.getComputedStyle(content).zIndex);
|
||||
}, [content]);
|
||||
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
||||
"div",
|
||||
{
|
||||
ref: refs.setFloating,
|
||||
"data-radix-popper-content-wrapper": "",
|
||||
style: {
|
||||
...floatingStyles,
|
||||
transform: isPositioned ? floatingStyles.transform : "translate(0, -200%)",
|
||||
// keep off the page when measuring
|
||||
minWidth: "max-content",
|
||||
zIndex: contentZIndex,
|
||||
["--radix-popper-transform-origin"]: [
|
||||
middlewareData.transformOrigin?.x,
|
||||
middlewareData.transformOrigin?.y
|
||||
].join(" "),
|
||||
// hide the content if using the hide middleware and should be hidden
|
||||
// set visibility to hidden and disable pointer events so the UI behaves
|
||||
// as if the PopperContent isn't there at all
|
||||
...middlewareData.hide?.referenceHidden && {
|
||||
visibility: "hidden",
|
||||
pointerEvents: "none"
|
||||
}
|
||||
},
|
||||
dir: props.dir,
|
||||
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
||||
PopperContentProvider,
|
||||
{
|
||||
scope: __scopePopper,
|
||||
placedSide,
|
||||
onArrowChange: setArrow,
|
||||
arrowX,
|
||||
arrowY,
|
||||
shouldHideArrow: cannotCenterArrow,
|
||||
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
||||
import_react_primitive.Primitive.div,
|
||||
{
|
||||
"data-side": placedSide,
|
||||
"data-align": placedAlign,
|
||||
...contentProps,
|
||||
ref: composedRefs,
|
||||
style: {
|
||||
...contentProps.style,
|
||||
// if the PopperContent hasn't been placed yet (not all measurements done)
|
||||
// we prevent animations so that users's animation don't kick in too early referring wrong sides
|
||||
animation: !isPositioned ? "none" : void 0
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
)
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
||||
PopperContent.displayName = CONTENT_NAME;
|
||||
var ARROW_NAME = "PopperArrow";
|
||||
var OPPOSITE_SIDE = {
|
||||
top: "bottom",
|
||||
right: "left",
|
||||
bottom: "top",
|
||||
left: "right"
|
||||
};
|
||||
var PopperArrow = React.forwardRef(function PopperArrow2(props, forwardedRef) {
|
||||
const { __scopePopper, ...arrowProps } = props;
|
||||
const contentContext = useContentContext(ARROW_NAME, __scopePopper);
|
||||
const baseSide = OPPOSITE_SIDE[contentContext.placedSide];
|
||||
return (
|
||||
// we have to use an extra wrapper because `ResizeObserver` (used by `useSize`)
|
||||
// doesn't report size as we'd expect on SVG elements.
|
||||
// it reports their bounding box which is effectively the largest path inside the SVG.
|
||||
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
||||
"span",
|
||||
{
|
||||
ref: contentContext.onArrowChange,
|
||||
style: {
|
||||
position: "absolute",
|
||||
left: contentContext.arrowX,
|
||||
top: contentContext.arrowY,
|
||||
[baseSide]: 0,
|
||||
transformOrigin: {
|
||||
top: "",
|
||||
right: "0 0",
|
||||
bottom: "center 0",
|
||||
left: "100% 0"
|
||||
}[contentContext.placedSide],
|
||||
transform: {
|
||||
top: "translateY(100%)",
|
||||
right: "translateY(50%) rotate(90deg) translateX(-50%)",
|
||||
bottom: `rotate(180deg)`,
|
||||
left: "translateY(50%) rotate(-90deg) translateX(50%)"
|
||||
}[contentContext.placedSide],
|
||||
visibility: contentContext.shouldHideArrow ? "hidden" : void 0
|
||||
},
|
||||
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
||||
ArrowPrimitive.Root,
|
||||
{
|
||||
...arrowProps,
|
||||
ref: forwardedRef,
|
||||
style: {
|
||||
...arrowProps.style,
|
||||
// ensures the element can be measured correctly (mostly for if SVG)
|
||||
display: "block"
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
)
|
||||
);
|
||||
});
|
||||
PopperArrow.displayName = ARROW_NAME;
|
||||
function isNotNull(value) {
|
||||
return value !== null;
|
||||
}
|
||||
var transformOrigin = (options) => ({
|
||||
name: "transformOrigin",
|
||||
options,
|
||||
fn(data) {
|
||||
const { placement, rects, middlewareData } = data;
|
||||
const cannotCenterArrow = middlewareData.arrow?.centerOffset !== 0;
|
||||
const isArrowHidden = cannotCenterArrow;
|
||||
const arrowWidth = isArrowHidden ? 0 : options.arrowWidth;
|
||||
const arrowHeight = isArrowHidden ? 0 : options.arrowHeight;
|
||||
const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);
|
||||
const noArrowAlign = { start: "0%", center: "50%", end: "100%" }[placedAlign];
|
||||
const arrowXCenter = (middlewareData.arrow?.x ?? 0) + arrowWidth / 2;
|
||||
const arrowYCenter = (middlewareData.arrow?.y ?? 0) + arrowHeight / 2;
|
||||
let x = "";
|
||||
let y = "";
|
||||
if (placedSide === "bottom") {
|
||||
x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;
|
||||
y = `${-arrowHeight}px`;
|
||||
} else if (placedSide === "top") {
|
||||
x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;
|
||||
y = `${rects.floating.height + arrowHeight}px`;
|
||||
} else if (placedSide === "right") {
|
||||
x = `${-arrowHeight}px`;
|
||||
y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;
|
||||
} else if (placedSide === "left") {
|
||||
x = `${rects.floating.width + arrowHeight}px`;
|
||||
y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;
|
||||
}
|
||||
return { data: { x, y } };
|
||||
}
|
||||
});
|
||||
function getSideAndAlignFromPlacement(placement) {
|
||||
const [side, align = "center"] = placement.split("-");
|
||||
return [side, align];
|
||||
}
|
||||
var Root2 = Popper;
|
||||
var Anchor = PopperAnchor;
|
||||
var Content = PopperContent;
|
||||
var Arrow = PopperArrow;
|
||||
//# sourceMappingURL=index.js.map
|
||||
7
node_modules/@radix-ui/react-popper/dist/index.js.map
generated
vendored
Normal file
7
node_modules/@radix-ui/react-popper/dist/index.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
303
node_modules/@radix-ui/react-popper/dist/index.mjs
generated
vendored
Normal file
303
node_modules/@radix-ui/react-popper/dist/index.mjs
generated
vendored
Normal file
@@ -0,0 +1,303 @@
|
||||
"use client";
|
||||
|
||||
// packages/react/popper/src/popper.tsx
|
||||
import * as React from "react";
|
||||
import {
|
||||
useFloating,
|
||||
autoUpdate,
|
||||
offset,
|
||||
shift,
|
||||
limitShift,
|
||||
hide,
|
||||
arrow as floatingUIarrow,
|
||||
flip,
|
||||
size
|
||||
} from "@floating-ui/react-dom";
|
||||
import * as ArrowPrimitive from "@radix-ui/react-arrow";
|
||||
import { useComposedRefs } from "@radix-ui/react-compose-refs";
|
||||
import { createContextScope } from "@radix-ui/react-context";
|
||||
import { Primitive } from "@radix-ui/react-primitive";
|
||||
import { useCallbackRef } from "@radix-ui/react-use-callback-ref";
|
||||
import { useLayoutEffect } from "@radix-ui/react-use-layout-effect";
|
||||
import { useSize } from "@radix-ui/react-use-size";
|
||||
import { jsx } from "react/jsx-runtime";
|
||||
var SIDE_OPTIONS = ["top", "right", "bottom", "left"];
|
||||
var ALIGN_OPTIONS = ["start", "center", "end"];
|
||||
var POPPER_NAME = "Popper";
|
||||
var [createPopperContext, createPopperScope] = createContextScope(POPPER_NAME);
|
||||
var [PopperProvider, usePopperContext] = createPopperContext(POPPER_NAME);
|
||||
var Popper = (props) => {
|
||||
const { __scopePopper, children } = props;
|
||||
const [anchor, setAnchor] = React.useState(null);
|
||||
return /* @__PURE__ */ jsx(PopperProvider, { scope: __scopePopper, anchor, onAnchorChange: setAnchor, children });
|
||||
};
|
||||
Popper.displayName = POPPER_NAME;
|
||||
var ANCHOR_NAME = "PopperAnchor";
|
||||
var PopperAnchor = React.forwardRef(
|
||||
(props, forwardedRef) => {
|
||||
const { __scopePopper, virtualRef, ...anchorProps } = props;
|
||||
const context = usePopperContext(ANCHOR_NAME, __scopePopper);
|
||||
const ref = React.useRef(null);
|
||||
const composedRefs = useComposedRefs(forwardedRef, ref);
|
||||
React.useEffect(() => {
|
||||
context.onAnchorChange(virtualRef?.current || ref.current);
|
||||
});
|
||||
return virtualRef ? null : /* @__PURE__ */ jsx(Primitive.div, { ...anchorProps, ref: composedRefs });
|
||||
}
|
||||
);
|
||||
PopperAnchor.displayName = ANCHOR_NAME;
|
||||
var CONTENT_NAME = "PopperContent";
|
||||
var [PopperContentProvider, useContentContext] = createPopperContext(CONTENT_NAME);
|
||||
var PopperContent = React.forwardRef(
|
||||
(props, forwardedRef) => {
|
||||
const {
|
||||
__scopePopper,
|
||||
side = "bottom",
|
||||
sideOffset = 0,
|
||||
align = "center",
|
||||
alignOffset = 0,
|
||||
arrowPadding = 0,
|
||||
avoidCollisions = true,
|
||||
collisionBoundary = [],
|
||||
collisionPadding: collisionPaddingProp = 0,
|
||||
sticky = "partial",
|
||||
hideWhenDetached = false,
|
||||
updatePositionStrategy = "optimized",
|
||||
onPlaced,
|
||||
...contentProps
|
||||
} = props;
|
||||
const context = usePopperContext(CONTENT_NAME, __scopePopper);
|
||||
const [content, setContent] = React.useState(null);
|
||||
const composedRefs = useComposedRefs(forwardedRef, (node) => setContent(node));
|
||||
const [arrow, setArrow] = React.useState(null);
|
||||
const arrowSize = useSize(arrow);
|
||||
const arrowWidth = arrowSize?.width ?? 0;
|
||||
const arrowHeight = arrowSize?.height ?? 0;
|
||||
const desiredPlacement = side + (align !== "center" ? "-" + align : "");
|
||||
const collisionPadding = typeof collisionPaddingProp === "number" ? collisionPaddingProp : { top: 0, right: 0, bottom: 0, left: 0, ...collisionPaddingProp };
|
||||
const boundary = Array.isArray(collisionBoundary) ? collisionBoundary : [collisionBoundary];
|
||||
const hasExplicitBoundaries = boundary.length > 0;
|
||||
const detectOverflowOptions = {
|
||||
padding: collisionPadding,
|
||||
boundary: boundary.filter(isNotNull),
|
||||
// with `strategy: 'fixed'`, this is the only way to get it to respect boundaries
|
||||
altBoundary: hasExplicitBoundaries
|
||||
};
|
||||
const { refs, floatingStyles, placement, isPositioned, middlewareData } = useFloating({
|
||||
// default to `fixed` strategy so users don't have to pick and we also avoid focus scroll issues
|
||||
strategy: "fixed",
|
||||
placement: desiredPlacement,
|
||||
whileElementsMounted: (...args) => {
|
||||
const cleanup = autoUpdate(...args, {
|
||||
animationFrame: updatePositionStrategy === "always"
|
||||
});
|
||||
return cleanup;
|
||||
},
|
||||
elements: {
|
||||
reference: context.anchor
|
||||
},
|
||||
middleware: [
|
||||
offset({ mainAxis: sideOffset + arrowHeight, alignmentAxis: alignOffset }),
|
||||
avoidCollisions && shift({
|
||||
mainAxis: true,
|
||||
crossAxis: false,
|
||||
limiter: sticky === "partial" ? limitShift() : void 0,
|
||||
...detectOverflowOptions
|
||||
}),
|
||||
avoidCollisions && flip({ ...detectOverflowOptions }),
|
||||
size({
|
||||
...detectOverflowOptions,
|
||||
apply: ({ elements, rects, availableWidth, availableHeight }) => {
|
||||
const { width: anchorWidth, height: anchorHeight } = rects.reference;
|
||||
const contentStyle = elements.floating.style;
|
||||
contentStyle.setProperty("--radix-popper-available-width", `${availableWidth}px`);
|
||||
contentStyle.setProperty("--radix-popper-available-height", `${availableHeight}px`);
|
||||
contentStyle.setProperty("--radix-popper-anchor-width", `${anchorWidth}px`);
|
||||
contentStyle.setProperty("--radix-popper-anchor-height", `${anchorHeight}px`);
|
||||
}
|
||||
}),
|
||||
arrow && floatingUIarrow({ element: arrow, padding: arrowPadding }),
|
||||
transformOrigin({ arrowWidth, arrowHeight }),
|
||||
hideWhenDetached && hide({ strategy: "referenceHidden", ...detectOverflowOptions })
|
||||
]
|
||||
});
|
||||
const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);
|
||||
const handlePlaced = useCallbackRef(onPlaced);
|
||||
useLayoutEffect(() => {
|
||||
if (isPositioned) {
|
||||
handlePlaced?.();
|
||||
}
|
||||
}, [isPositioned, handlePlaced]);
|
||||
const arrowX = middlewareData.arrow?.x;
|
||||
const arrowY = middlewareData.arrow?.y;
|
||||
const cannotCenterArrow = middlewareData.arrow?.centerOffset !== 0;
|
||||
const [contentZIndex, setContentZIndex] = React.useState();
|
||||
useLayoutEffect(() => {
|
||||
if (content) setContentZIndex(window.getComputedStyle(content).zIndex);
|
||||
}, [content]);
|
||||
return /* @__PURE__ */ jsx(
|
||||
"div",
|
||||
{
|
||||
ref: refs.setFloating,
|
||||
"data-radix-popper-content-wrapper": "",
|
||||
style: {
|
||||
...floatingStyles,
|
||||
transform: isPositioned ? floatingStyles.transform : "translate(0, -200%)",
|
||||
// keep off the page when measuring
|
||||
minWidth: "max-content",
|
||||
zIndex: contentZIndex,
|
||||
["--radix-popper-transform-origin"]: [
|
||||
middlewareData.transformOrigin?.x,
|
||||
middlewareData.transformOrigin?.y
|
||||
].join(" "),
|
||||
// hide the content if using the hide middleware and should be hidden
|
||||
// set visibility to hidden and disable pointer events so the UI behaves
|
||||
// as if the PopperContent isn't there at all
|
||||
...middlewareData.hide?.referenceHidden && {
|
||||
visibility: "hidden",
|
||||
pointerEvents: "none"
|
||||
}
|
||||
},
|
||||
dir: props.dir,
|
||||
children: /* @__PURE__ */ jsx(
|
||||
PopperContentProvider,
|
||||
{
|
||||
scope: __scopePopper,
|
||||
placedSide,
|
||||
onArrowChange: setArrow,
|
||||
arrowX,
|
||||
arrowY,
|
||||
shouldHideArrow: cannotCenterArrow,
|
||||
children: /* @__PURE__ */ jsx(
|
||||
Primitive.div,
|
||||
{
|
||||
"data-side": placedSide,
|
||||
"data-align": placedAlign,
|
||||
...contentProps,
|
||||
ref: composedRefs,
|
||||
style: {
|
||||
...contentProps.style,
|
||||
// if the PopperContent hasn't been placed yet (not all measurements done)
|
||||
// we prevent animations so that users's animation don't kick in too early referring wrong sides
|
||||
animation: !isPositioned ? "none" : void 0
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
)
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
||||
PopperContent.displayName = CONTENT_NAME;
|
||||
var ARROW_NAME = "PopperArrow";
|
||||
var OPPOSITE_SIDE = {
|
||||
top: "bottom",
|
||||
right: "left",
|
||||
bottom: "top",
|
||||
left: "right"
|
||||
};
|
||||
var PopperArrow = React.forwardRef(function PopperArrow2(props, forwardedRef) {
|
||||
const { __scopePopper, ...arrowProps } = props;
|
||||
const contentContext = useContentContext(ARROW_NAME, __scopePopper);
|
||||
const baseSide = OPPOSITE_SIDE[contentContext.placedSide];
|
||||
return (
|
||||
// we have to use an extra wrapper because `ResizeObserver` (used by `useSize`)
|
||||
// doesn't report size as we'd expect on SVG elements.
|
||||
// it reports their bounding box which is effectively the largest path inside the SVG.
|
||||
/* @__PURE__ */ jsx(
|
||||
"span",
|
||||
{
|
||||
ref: contentContext.onArrowChange,
|
||||
style: {
|
||||
position: "absolute",
|
||||
left: contentContext.arrowX,
|
||||
top: contentContext.arrowY,
|
||||
[baseSide]: 0,
|
||||
transformOrigin: {
|
||||
top: "",
|
||||
right: "0 0",
|
||||
bottom: "center 0",
|
||||
left: "100% 0"
|
||||
}[contentContext.placedSide],
|
||||
transform: {
|
||||
top: "translateY(100%)",
|
||||
right: "translateY(50%) rotate(90deg) translateX(-50%)",
|
||||
bottom: `rotate(180deg)`,
|
||||
left: "translateY(50%) rotate(-90deg) translateX(50%)"
|
||||
}[contentContext.placedSide],
|
||||
visibility: contentContext.shouldHideArrow ? "hidden" : void 0
|
||||
},
|
||||
children: /* @__PURE__ */ jsx(
|
||||
ArrowPrimitive.Root,
|
||||
{
|
||||
...arrowProps,
|
||||
ref: forwardedRef,
|
||||
style: {
|
||||
...arrowProps.style,
|
||||
// ensures the element can be measured correctly (mostly for if SVG)
|
||||
display: "block"
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
)
|
||||
);
|
||||
});
|
||||
PopperArrow.displayName = ARROW_NAME;
|
||||
function isNotNull(value) {
|
||||
return value !== null;
|
||||
}
|
||||
var transformOrigin = (options) => ({
|
||||
name: "transformOrigin",
|
||||
options,
|
||||
fn(data) {
|
||||
const { placement, rects, middlewareData } = data;
|
||||
const cannotCenterArrow = middlewareData.arrow?.centerOffset !== 0;
|
||||
const isArrowHidden = cannotCenterArrow;
|
||||
const arrowWidth = isArrowHidden ? 0 : options.arrowWidth;
|
||||
const arrowHeight = isArrowHidden ? 0 : options.arrowHeight;
|
||||
const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);
|
||||
const noArrowAlign = { start: "0%", center: "50%", end: "100%" }[placedAlign];
|
||||
const arrowXCenter = (middlewareData.arrow?.x ?? 0) + arrowWidth / 2;
|
||||
const arrowYCenter = (middlewareData.arrow?.y ?? 0) + arrowHeight / 2;
|
||||
let x = "";
|
||||
let y = "";
|
||||
if (placedSide === "bottom") {
|
||||
x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;
|
||||
y = `${-arrowHeight}px`;
|
||||
} else if (placedSide === "top") {
|
||||
x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;
|
||||
y = `${rects.floating.height + arrowHeight}px`;
|
||||
} else if (placedSide === "right") {
|
||||
x = `${-arrowHeight}px`;
|
||||
y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;
|
||||
} else if (placedSide === "left") {
|
||||
x = `${rects.floating.width + arrowHeight}px`;
|
||||
y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;
|
||||
}
|
||||
return { data: { x, y } };
|
||||
}
|
||||
});
|
||||
function getSideAndAlignFromPlacement(placement) {
|
||||
const [side, align = "center"] = placement.split("-");
|
||||
return [side, align];
|
||||
}
|
||||
var Root2 = Popper;
|
||||
var Anchor = PopperAnchor;
|
||||
var Content = PopperContent;
|
||||
var Arrow = PopperArrow;
|
||||
export {
|
||||
ALIGN_OPTIONS,
|
||||
Anchor,
|
||||
Arrow,
|
||||
Content,
|
||||
Popper,
|
||||
PopperAnchor,
|
||||
PopperArrow,
|
||||
PopperContent,
|
||||
Root2 as Root,
|
||||
SIDE_OPTIONS,
|
||||
createPopperScope
|
||||
};
|
||||
//# sourceMappingURL=index.mjs.map
|
||||
7
node_modules/@radix-ui/react-popper/dist/index.mjs.map
generated
vendored
Normal file
7
node_modules/@radix-ui/react-popper/dist/index.mjs.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user