@radix-ui/react-context-menu 2.3.3 → 2.3.4-rc.1784074599772
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +51 -70
- package/dist/index.js.map +3 -3
- package/dist/index.mjs +52 -70
- package/dist/index.mjs.map +3 -3
- package/package.json +7 -7
package/dist/index.js
CHANGED
|
@@ -6,6 +6,7 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
|
6
6
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
7
|
var __getProtoOf = Object.getPrototypeOf;
|
|
8
8
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
9
10
|
var __export = (target, all) => {
|
|
10
11
|
for (var name in all)
|
|
11
12
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -69,6 +70,7 @@ module.exports = __toCommonJS(index_exports);
|
|
|
69
70
|
|
|
70
71
|
// src/context-menu.tsx
|
|
71
72
|
var React = __toESM(require("react"));
|
|
73
|
+
var import_is_development = require("@radix-ui/primitive/is-development");
|
|
72
74
|
var import_primitive = require("@radix-ui/primitive");
|
|
73
75
|
var import_react_context = require("@radix-ui/react-context");
|
|
74
76
|
var import_react_primitive = require("@radix-ui/react-primitive");
|
|
@@ -82,10 +84,10 @@ var [createContextMenuContext, createContextMenuScope] = (0, import_react_contex
|
|
|
82
84
|
]);
|
|
83
85
|
var useMenuScope = (0, import_react_menu.createMenuScope)();
|
|
84
86
|
var [ContextMenuProvider, useContextMenuContext] = createContextMenuContext(CONTEXT_MENU_NAME);
|
|
85
|
-
var ContextMenu = (props) => {
|
|
87
|
+
var ContextMenu = /* @__PURE__ */ __name((props) => {
|
|
86
88
|
const { __scopeContextMenu, children, onOpenChange, open: openProp, dir, modal = true } = props;
|
|
87
89
|
const hasInteractedRef = React.useRef(false);
|
|
88
|
-
if (
|
|
90
|
+
if (import_is_development.IS_DEVELOPMENT) {
|
|
89
91
|
const hasWarnedRef = React.useRef(false);
|
|
90
92
|
React.useEffect(() => {
|
|
91
93
|
if (openProp === true && !hasInteractedRef.current && !hasWarnedRef.current) {
|
|
@@ -114,11 +116,11 @@ var ContextMenu = (props) => {
|
|
|
114
116
|
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(MenuPrimitive.Root, { ...menuScope, dir, open, onOpenChange: setOpen, modal, children })
|
|
115
117
|
}
|
|
116
118
|
);
|
|
117
|
-
};
|
|
118
|
-
ContextMenu.displayName = CONTEXT_MENU_NAME;
|
|
119
|
+
}, "ContextMenu");
|
|
119
120
|
var TRIGGER_NAME = "ContextMenuTrigger";
|
|
120
|
-
var ContextMenuTrigger = React.forwardRef(
|
|
121
|
-
|
|
121
|
+
var ContextMenuTrigger = /* @__PURE__ */ React.forwardRef(
|
|
122
|
+
// blank line to reduce diff noise
|
|
123
|
+
/* @__PURE__ */ __name(function ContextMenuTrigger2(props, forwardedRef) {
|
|
122
124
|
const { __scopeContextMenu, disabled = false, ...triggerProps } = props;
|
|
123
125
|
const context = useContextMenuContext(TRIGGER_NAME, __scopeContextMenu);
|
|
124
126
|
const menuScope = useMenuScope(__scopeContextMenu);
|
|
@@ -126,7 +128,7 @@ var ContextMenuTrigger = React.forwardRef(
|
|
|
126
128
|
const virtualRef = React.useMemo(
|
|
127
129
|
() => ({
|
|
128
130
|
current: {
|
|
129
|
-
getBoundingClientRect: () => DOMRect.fromRect({ width: 0, height: 0, ...point })
|
|
131
|
+
getBoundingClientRect: /* @__PURE__ */ __name(() => DOMRect.fromRect({ width: 0, height: 0, ...point }), "getBoundingClientRect")
|
|
130
132
|
}
|
|
131
133
|
}),
|
|
132
134
|
[point]
|
|
@@ -136,11 +138,11 @@ var ContextMenuTrigger = React.forwardRef(
|
|
|
136
138
|
() => window.clearTimeout(longPressTimerRef.current),
|
|
137
139
|
[]
|
|
138
140
|
);
|
|
139
|
-
const handleOpen = (event) => {
|
|
141
|
+
const handleOpen = /* @__PURE__ */ __name((event) => {
|
|
140
142
|
context.hasInteractedRef.current = true;
|
|
141
143
|
setPoint({ x: event.clientX, y: event.clientY });
|
|
142
144
|
context.onOpenChange(true);
|
|
143
|
-
};
|
|
145
|
+
}, "handleOpen");
|
|
144
146
|
React.useEffect(() => clearLongPress, [clearLongPress]);
|
|
145
147
|
React.useEffect(() => void (disabled && clearLongPress()), [disabled, clearLongPress]);
|
|
146
148
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
@@ -174,19 +176,17 @@ var ContextMenuTrigger = React.forwardRef(
|
|
|
174
176
|
}
|
|
175
177
|
)
|
|
176
178
|
] });
|
|
177
|
-
}
|
|
179
|
+
}, "ContextMenuTrigger")
|
|
178
180
|
);
|
|
179
|
-
|
|
180
|
-
var PORTAL_NAME = "ContextMenuPortal";
|
|
181
|
-
var ContextMenuPortal = (props) => {
|
|
181
|
+
var ContextMenuPortal = /* @__PURE__ */ __name((props) => {
|
|
182
182
|
const { __scopeContextMenu, ...portalProps } = props;
|
|
183
183
|
const menuScope = useMenuScope(__scopeContextMenu);
|
|
184
184
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(MenuPrimitive.Portal, { ...menuScope, ...portalProps });
|
|
185
|
-
};
|
|
186
|
-
ContextMenuPortal.displayName = PORTAL_NAME;
|
|
185
|
+
}, "ContextMenuPortal");
|
|
187
186
|
var CONTENT_NAME = "ContextMenuContent";
|
|
188
|
-
var ContextMenuContent = React.forwardRef(
|
|
189
|
-
|
|
187
|
+
var ContextMenuContent = /* @__PURE__ */ React.forwardRef(
|
|
188
|
+
// blank line to reduce diff noise
|
|
189
|
+
/* @__PURE__ */ __name(function ContextMenuContent2(props, forwardedRef) {
|
|
190
190
|
const { __scopeContextMenu, ...contentProps } = props;
|
|
191
191
|
const context = useContextMenuContext(CONTENT_NAME, __scopeContextMenu);
|
|
192
192
|
const menuScope = useMenuScope(__scopeContextMenu);
|
|
@@ -224,82 +224,67 @@ var ContextMenuContent = React.forwardRef(
|
|
|
224
224
|
}
|
|
225
225
|
}
|
|
226
226
|
);
|
|
227
|
-
}
|
|
227
|
+
}, "ContextMenuContent")
|
|
228
228
|
);
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
(props, forwardedRef) => {
|
|
229
|
+
var ContextMenuGroup = /* @__PURE__ */ React.forwardRef(
|
|
230
|
+
// blank line to reduce diff noise
|
|
231
|
+
/* @__PURE__ */ __name(function ContextMenuGroup2(props, forwardedRef) {
|
|
233
232
|
const { __scopeContextMenu, ...groupProps } = props;
|
|
234
233
|
const menuScope = useMenuScope(__scopeContextMenu);
|
|
235
234
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(MenuPrimitive.Group, { ...menuScope, ...groupProps, ref: forwardedRef });
|
|
236
|
-
}
|
|
235
|
+
}, "ContextMenuGroup")
|
|
237
236
|
);
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
(props, forwardedRef) => {
|
|
237
|
+
var ContextMenuLabel = /* @__PURE__ */ React.forwardRef(
|
|
238
|
+
// blank line to reduce diff noise
|
|
239
|
+
/* @__PURE__ */ __name(function ContextMenuLabel2(props, forwardedRef) {
|
|
242
240
|
const { __scopeContextMenu, ...labelProps } = props;
|
|
243
241
|
const menuScope = useMenuScope(__scopeContextMenu);
|
|
244
242
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(MenuPrimitive.Label, { ...menuScope, ...labelProps, ref: forwardedRef });
|
|
245
|
-
}
|
|
243
|
+
}, "ContextMenuLabel")
|
|
246
244
|
);
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
(props, forwardedRef) => {
|
|
245
|
+
var ContextMenuItem = /* @__PURE__ */ React.forwardRef(
|
|
246
|
+
// blank line to reduce diff noise
|
|
247
|
+
/* @__PURE__ */ __name(function ContextMenuItem2(props, forwardedRef) {
|
|
251
248
|
const { __scopeContextMenu, ...itemProps } = props;
|
|
252
249
|
const menuScope = useMenuScope(__scopeContextMenu);
|
|
253
250
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(MenuPrimitive.Item, { ...menuScope, ...itemProps, ref: forwardedRef });
|
|
254
|
-
}
|
|
251
|
+
}, "ContextMenuItem")
|
|
255
252
|
);
|
|
256
|
-
|
|
257
|
-
var CHECKBOX_ITEM_NAME = "ContextMenuCheckboxItem";
|
|
258
|
-
var ContextMenuCheckboxItem = React.forwardRef((props, forwardedRef) => {
|
|
253
|
+
var ContextMenuCheckboxItem = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function ContextMenuCheckboxItem2(props, forwardedRef) {
|
|
259
254
|
const { __scopeContextMenu, ...checkboxItemProps } = props;
|
|
260
255
|
const menuScope = useMenuScope(__scopeContextMenu);
|
|
261
256
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(MenuPrimitive.CheckboxItem, { ...menuScope, ...checkboxItemProps, ref: forwardedRef });
|
|
262
|
-
});
|
|
263
|
-
|
|
264
|
-
var RADIO_GROUP_NAME = "ContextMenuRadioGroup";
|
|
265
|
-
var ContextMenuRadioGroup = React.forwardRef((props, forwardedRef) => {
|
|
257
|
+
}, "ContextMenuCheckboxItem"));
|
|
258
|
+
var ContextMenuRadioGroup = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function ContextMenuRadioGroup2(props, forwardedRef) {
|
|
266
259
|
const { __scopeContextMenu, ...radioGroupProps } = props;
|
|
267
260
|
const menuScope = useMenuScope(__scopeContextMenu);
|
|
268
261
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(MenuPrimitive.RadioGroup, { ...menuScope, ...radioGroupProps, ref: forwardedRef });
|
|
269
|
-
});
|
|
270
|
-
|
|
271
|
-
var RADIO_ITEM_NAME = "ContextMenuRadioItem";
|
|
272
|
-
var ContextMenuRadioItem = React.forwardRef((props, forwardedRef) => {
|
|
262
|
+
}, "ContextMenuRadioGroup"));
|
|
263
|
+
var ContextMenuRadioItem = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function ContextMenuRadioItem2(props, forwardedRef) {
|
|
273
264
|
const { __scopeContextMenu, ...radioItemProps } = props;
|
|
274
265
|
const menuScope = useMenuScope(__scopeContextMenu);
|
|
275
266
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(MenuPrimitive.RadioItem, { ...menuScope, ...radioItemProps, ref: forwardedRef });
|
|
276
|
-
});
|
|
277
|
-
|
|
278
|
-
var INDICATOR_NAME = "ContextMenuItemIndicator";
|
|
279
|
-
var ContextMenuItemIndicator = React.forwardRef((props, forwardedRef) => {
|
|
267
|
+
}, "ContextMenuRadioItem"));
|
|
268
|
+
var ContextMenuItemIndicator = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function ContextMenuItemIndicator2(props, forwardedRef) {
|
|
280
269
|
const { __scopeContextMenu, ...itemIndicatorProps } = props;
|
|
281
270
|
const menuScope = useMenuScope(__scopeContextMenu);
|
|
282
271
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(MenuPrimitive.ItemIndicator, { ...menuScope, ...itemIndicatorProps, ref: forwardedRef });
|
|
283
|
-
});
|
|
284
|
-
|
|
285
|
-
var SEPARATOR_NAME = "ContextMenuSeparator";
|
|
286
|
-
var ContextMenuSeparator = React.forwardRef((props, forwardedRef) => {
|
|
272
|
+
}, "ContextMenuItemIndicator"));
|
|
273
|
+
var ContextMenuSeparator = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function ContextMenuSeparator2(props, forwardedRef) {
|
|
287
274
|
const { __scopeContextMenu, ...separatorProps } = props;
|
|
288
275
|
const menuScope = useMenuScope(__scopeContextMenu);
|
|
289
276
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(MenuPrimitive.Separator, { ...menuScope, ...separatorProps, ref: forwardedRef });
|
|
290
|
-
});
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
(props, forwardedRef) => {
|
|
277
|
+
}, "ContextMenuSeparator"));
|
|
278
|
+
var ContextMenuArrow = /* @__PURE__ */ React.forwardRef(
|
|
279
|
+
// blank line to reduce diff noise
|
|
280
|
+
/* @__PURE__ */ __name(function ContextMenuArrow2(props, forwardedRef) {
|
|
295
281
|
const { __scopeContextMenu, ...arrowProps } = props;
|
|
296
282
|
const menuScope = useMenuScope(__scopeContextMenu);
|
|
297
283
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(MenuPrimitive.Arrow, { ...menuScope, ...arrowProps, ref: forwardedRef });
|
|
298
|
-
}
|
|
284
|
+
}, "ContextMenuArrow")
|
|
299
285
|
);
|
|
300
|
-
ContextMenuArrow.displayName = ARROW_NAME;
|
|
301
286
|
var SUB_NAME = "ContextMenuSub";
|
|
302
|
-
var ContextMenuSub = (props) => {
|
|
287
|
+
var ContextMenuSub = /* @__PURE__ */ __name((props) => {
|
|
303
288
|
const { __scopeContextMenu, children, onOpenChange, open: openProp, defaultOpen } = props;
|
|
304
289
|
const menuScope = useMenuScope(__scopeContextMenu);
|
|
305
290
|
const [open, setOpen] = (0, import_react_use_controllable_state.useControllableState)({
|
|
@@ -309,17 +294,13 @@ var ContextMenuSub = (props) => {
|
|
|
309
294
|
caller: SUB_NAME
|
|
310
295
|
});
|
|
311
296
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(MenuPrimitive.Sub, { ...menuScope, open, onOpenChange: setOpen, children });
|
|
312
|
-
};
|
|
313
|
-
|
|
314
|
-
var SUB_TRIGGER_NAME = "ContextMenuSubTrigger";
|
|
315
|
-
var ContextMenuSubTrigger = React.forwardRef((props, forwardedRef) => {
|
|
297
|
+
}, "ContextMenuSub");
|
|
298
|
+
var ContextMenuSubTrigger = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function ContextMenuSubTrigger2(props, forwardedRef) {
|
|
316
299
|
const { __scopeContextMenu, ...triggerItemProps } = props;
|
|
317
300
|
const menuScope = useMenuScope(__scopeContextMenu);
|
|
318
301
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(MenuPrimitive.SubTrigger, { ...menuScope, ...triggerItemProps, ref: forwardedRef });
|
|
319
|
-
});
|
|
320
|
-
|
|
321
|
-
var SUB_CONTENT_NAME = "ContextMenuSubContent";
|
|
322
|
-
var ContextMenuSubContent = React.forwardRef((props, forwardedRef) => {
|
|
302
|
+
}, "ContextMenuSubTrigger"));
|
|
303
|
+
var ContextMenuSubContent = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function ContextMenuSubContent2(props, forwardedRef) {
|
|
323
304
|
const { __scopeContextMenu, ...subContentProps } = props;
|
|
324
305
|
const menuScope = useMenuScope(__scopeContextMenu);
|
|
325
306
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
@@ -341,11 +322,11 @@ var ContextMenuSubContent = React.forwardRef((props, forwardedRef) => {
|
|
|
341
322
|
}
|
|
342
323
|
}
|
|
343
324
|
);
|
|
344
|
-
});
|
|
345
|
-
ContextMenuSubContent.displayName = SUB_CONTENT_NAME;
|
|
325
|
+
}, "ContextMenuSubContent"));
|
|
346
326
|
function whenTouchOrPen(handler) {
|
|
347
327
|
return (event) => event.pointerType !== "mouse" ? handler(event) : void 0;
|
|
348
328
|
}
|
|
329
|
+
__name(whenTouchOrPen, "whenTouchOrPen");
|
|
349
330
|
var Root2 = ContextMenu;
|
|
350
331
|
var Trigger = ContextMenuTrigger;
|
|
351
332
|
var Portal2 = ContextMenuPortal;
|
package/dist/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.ts", "../src/context-menu.tsx"],
|
|
4
|
-
"sourcesContent": ["'use client';\nexport {\n createContextMenuScope,\n //\n ContextMenu,\n ContextMenuTrigger,\n ContextMenuPortal,\n ContextMenuContent,\n ContextMenuGroup,\n ContextMenuLabel,\n ContextMenuItem,\n ContextMenuCheckboxItem,\n ContextMenuRadioGroup,\n ContextMenuRadioItem,\n ContextMenuItemIndicator,\n ContextMenuSeparator,\n ContextMenuArrow,\n ContextMenuSub,\n ContextMenuSubTrigger,\n ContextMenuSubContent,\n //\n Root,\n Trigger,\n Portal,\n Content,\n Group,\n Label,\n Item,\n CheckboxItem,\n RadioGroup,\n RadioItem,\n ItemIndicator,\n Separator,\n Arrow,\n Sub,\n SubTrigger,\n SubContent,\n} from './context-menu';\nexport type {\n ContextMenuProps,\n ContextMenuTriggerProps,\n ContextMenuPortalProps,\n ContextMenuContentProps,\n ContextMenuGroupProps,\n ContextMenuLabelProps,\n ContextMenuItemProps,\n ContextMenuCheckboxItemProps,\n ContextMenuRadioGroupProps,\n ContextMenuRadioItemProps,\n ContextMenuItemIndicatorProps,\n ContextMenuSeparatorProps,\n ContextMenuArrowProps,\n ContextMenuSubProps,\n ContextMenuSubTriggerProps,\n ContextMenuSubContentProps,\n} from './context-menu';\n", "import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport * as MenuPrimitive from '@radix-ui/react-menu';\nimport { createMenuScope } from '@radix-ui/react-menu';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport type { Scope } from '@radix-ui/react-context';\n\ntype Direction = 'ltr' | 'rtl';\ntype Point = { x: number; y: number };\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenu\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTEXT_MENU_NAME = 'ContextMenu';\n\ntype ScopedProps<P> = P & { __scopeContextMenu?: Scope };\nconst [createContextMenuContext, createContextMenuScope] = createContextScope(CONTEXT_MENU_NAME, [\n createMenuScope,\n]);\nconst useMenuScope = createMenuScope();\n\ninterface ContextMenuContextValue {\n open: boolean;\n onOpenChange(open: boolean): void;\n modal: boolean;\n hasInteractedRef: React.RefObject<boolean>;\n}\n\nconst [ContextMenuProvider, useContextMenuContext] =\n createContextMenuContext<ContextMenuContextValue>(CONTEXT_MENU_NAME);\n\ninterface ContextMenuProps {\n children?: React.ReactNode;\n open?: boolean;\n onOpenChange?(open: boolean): void;\n dir?: Direction;\n modal?: boolean;\n}\n\nconst ContextMenu: React.FC<ContextMenuProps> = (props: ScopedProps<ContextMenuProps>) => {\n const { __scopeContextMenu, children, onOpenChange, open: openProp, dir, modal = true } = props;\n\n // OK to disable conditionally calling hooks here because they will always run\n // consistently in the same environment. Bundlers should be able to remove the\n // code block entirely in production.\n /* eslint-disable react-hooks/rules-of-hooks */\n const hasInteractedRef = React.useRef(false);\n if (process.env.NODE_ENV !== 'production') {\n const hasWarnedRef = React.useRef(false);\n React.useEffect(() => {\n if (openProp === true && !hasInteractedRef.current && !hasWarnedRef.current) {\n hasWarnedRef.current = true;\n // dev warning: open prop is controllable but its position has not been set\n // because the user has not interacted with the trigger. The controllable\n // state is only enabled so that the user can read or programatically close\n // the menu. Programatically opening the menu will anchor it to the most\n // recently interacted position.\n console.warn(\n 'ContextMenu: The `open` prop has been set to `true` before the user has interacted with the trigger, so its position is indeterminate. This is likely unintended and will result in the menu being anchored to the top-left corner of the viewport.',\n );\n }\n }, [openProp]);\n }\n /* eslint-enable react-hooks/rules-of-hooks */\n\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: false,\n onChange: onOpenChange,\n caller: CONTEXT_MENU_NAME,\n });\n\n const menuScope = useMenuScope(__scopeContextMenu);\n\n return (\n <ContextMenuProvider\n scope={__scopeContextMenu}\n open={open}\n onOpenChange={setOpen}\n modal={modal}\n hasInteractedRef={hasInteractedRef}\n >\n <MenuPrimitive.Root {...menuScope} dir={dir} open={open} onOpenChange={setOpen} modal={modal}>\n {children}\n </MenuPrimitive.Root>\n </ContextMenuProvider>\n );\n};\n\nContextMenu.displayName = CONTEXT_MENU_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'ContextMenuTrigger';\n\ntype ContextMenuTriggerElement = React.ComponentRef<typeof Primitive.span>;\ntype PrimitiveSpanProps = React.ComponentPropsWithoutRef<typeof Primitive.span>;\ninterface ContextMenuTriggerProps extends PrimitiveSpanProps {\n disabled?: boolean;\n}\n\nconst ContextMenuTrigger = React.forwardRef<ContextMenuTriggerElement, ContextMenuTriggerProps>(\n (props: ScopedProps<ContextMenuTriggerProps>, forwardedRef) => {\n const { __scopeContextMenu, disabled = false, ...triggerProps } = props;\n const context = useContextMenuContext(TRIGGER_NAME, __scopeContextMenu);\n const menuScope = useMenuScope(__scopeContextMenu);\n const [point, setPoint] = React.useState<Point>({ x: 0, y: 0 });\n\n // Re-create the virtual anchor whenever the pointer position changes so the\n // content re-anchors to the latest point when the menu is re-triggered while\n // already open (e.g. right-clicking in a new location, #2611).\n const virtualRef = React.useMemo(\n () => ({\n current: {\n getBoundingClientRect: () => DOMRect.fromRect({ width: 0, height: 0, ...point }),\n },\n }),\n [point],\n );\n const longPressTimerRef = React.useRef(0);\n const clearLongPress = React.useCallback(\n () => window.clearTimeout(longPressTimerRef.current),\n [],\n );\n const handleOpen = (event: React.MouseEvent | React.PointerEvent) => {\n context.hasInteractedRef.current = true;\n setPoint({ x: event.clientX, y: event.clientY });\n context.onOpenChange(true);\n };\n\n React.useEffect(() => clearLongPress, [clearLongPress]);\n React.useEffect(() => void (disabled && clearLongPress()), [disabled, clearLongPress]);\n\n return (\n <>\n <MenuPrimitive.Anchor {...menuScope} virtualRef={virtualRef} />\n <Primitive.span\n data-state={context.open ? 'open' : 'closed'}\n data-disabled={disabled ? '' : undefined}\n {...triggerProps}\n ref={forwardedRef}\n // prevent iOS context menu from appearing\n style={{ WebkitTouchCallout: 'none', ...props.style }}\n // if trigger is disabled, enable the native Context Menu\n onContextMenu={\n disabled\n ? props.onContextMenu\n : composeEventHandlers(props.onContextMenu, (event) => {\n // clearing the long press here because some platforms already support\n // long press to trigger a `contextmenu` event\n clearLongPress();\n handleOpen(event);\n event.preventDefault();\n })\n }\n onPointerDown={\n disabled\n ? props.onPointerDown\n : composeEventHandlers(\n props.onPointerDown,\n whenTouchOrPen((event) => {\n // clear the long press here in case there's multiple touch points\n clearLongPress();\n if (context.open) {\n context.onOpenChange(false);\n }\n longPressTimerRef.current = window.setTimeout(() => handleOpen(event), 700);\n }),\n )\n }\n onPointerMove={\n disabled\n ? props.onPointerMove\n : composeEventHandlers(props.onPointerMove, whenTouchOrPen(clearLongPress))\n }\n onPointerCancel={\n disabled\n ? props.onPointerCancel\n : composeEventHandlers(props.onPointerCancel, whenTouchOrPen(clearLongPress))\n }\n onPointerUp={\n disabled\n ? props.onPointerUp\n : composeEventHandlers(props.onPointerUp, whenTouchOrPen(clearLongPress))\n }\n />\n </>\n );\n },\n);\n\nContextMenuTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuPortal\n * -----------------------------------------------------------------------------------------------*/\n\nconst PORTAL_NAME = 'ContextMenuPortal';\n\ntype MenuPortalProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.Portal>;\ninterface ContextMenuPortalProps extends MenuPortalProps {}\n\nconst ContextMenuPortal: React.FC<ContextMenuPortalProps> = (\n props: ScopedProps<ContextMenuPortalProps>,\n) => {\n const { __scopeContextMenu, ...portalProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.Portal {...menuScope} {...portalProps} />;\n};\n\nContextMenuPortal.displayName = PORTAL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'ContextMenuContent';\n\ntype ContextMenuContentElement = React.ComponentRef<typeof MenuPrimitive.Content>;\ntype MenuContentProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.Content>;\ninterface ContextMenuContentProps extends Omit<\n MenuContentProps,\n 'onEntryFocus' | 'side' | 'sideOffset' | 'align'\n> {}\n\nconst ContextMenuContent = React.forwardRef<ContextMenuContentElement, ContextMenuContentProps>(\n (props: ScopedProps<ContextMenuContentProps>, forwardedRef) => {\n const { __scopeContextMenu, ...contentProps } = props;\n const context = useContextMenuContext(CONTENT_NAME, __scopeContextMenu);\n const menuScope = useMenuScope(__scopeContextMenu);\n const hasInteractedOutsideRef = React.useRef(false);\n\n return (\n <MenuPrimitive.Content\n {...menuScope}\n {...contentProps}\n ref={forwardedRef}\n side=\"right\"\n sideOffset={2}\n align=\"start\"\n onCloseAutoFocus={(event) => {\n props.onCloseAutoFocus?.(event);\n\n if (!event.defaultPrevented && hasInteractedOutsideRef.current) {\n event.preventDefault();\n }\n\n hasInteractedOutsideRef.current = false;\n }}\n onInteractOutside={(event) => {\n props.onInteractOutside?.(event);\n\n if (!event.defaultPrevented && !context.modal) hasInteractedOutsideRef.current = true;\n }}\n style={{\n ...props.style,\n // re-namespace exposed content custom properties\n ...{\n '--radix-context-menu-content-transform-origin': 'var(--radix-popper-transform-origin)',\n '--radix-context-menu-content-available-width': 'var(--radix-popper-available-width)',\n '--radix-context-menu-content-available-height': 'var(--radix-popper-available-height)',\n '--radix-context-menu-trigger-width': 'var(--radix-popper-anchor-width)',\n '--radix-context-menu-trigger-height': 'var(--radix-popper-anchor-height)',\n },\n }}\n />\n );\n },\n);\n\nContextMenuContent.displayName = CONTENT_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuGroup\n * -----------------------------------------------------------------------------------------------*/\n\nconst GROUP_NAME = 'ContextMenuGroup';\n\ntype ContextMenuGroupElement = React.ComponentRef<typeof MenuPrimitive.Group>;\ntype MenuGroupProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.Group>;\ninterface ContextMenuGroupProps extends MenuGroupProps {}\n\nconst ContextMenuGroup = React.forwardRef<ContextMenuGroupElement, ContextMenuGroupProps>(\n (props: ScopedProps<ContextMenuGroupProps>, forwardedRef) => {\n const { __scopeContextMenu, ...groupProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.Group {...menuScope} {...groupProps} ref={forwardedRef} />;\n },\n);\n\nContextMenuGroup.displayName = GROUP_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuLabel\n * -----------------------------------------------------------------------------------------------*/\n\nconst LABEL_NAME = 'ContextMenuLabel';\n\ntype ContextMenuLabelElement = React.ComponentRef<typeof MenuPrimitive.Label>;\ntype MenuLabelProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.Label>;\ninterface ContextMenuLabelProps extends MenuLabelProps {}\n\nconst ContextMenuLabel = React.forwardRef<ContextMenuLabelElement, ContextMenuLabelProps>(\n (props: ScopedProps<ContextMenuLabelProps>, forwardedRef) => {\n const { __scopeContextMenu, ...labelProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.Label {...menuScope} {...labelProps} ref={forwardedRef} />;\n },\n);\n\nContextMenuLabel.displayName = LABEL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst ITEM_NAME = 'ContextMenuItem';\n\ntype ContextMenuItemElement = React.ComponentRef<typeof MenuPrimitive.Item>;\ntype MenuItemProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.Item>;\ninterface ContextMenuItemProps extends MenuItemProps {}\n\nconst ContextMenuItem = React.forwardRef<ContextMenuItemElement, ContextMenuItemProps>(\n (props: ScopedProps<ContextMenuItemProps>, forwardedRef) => {\n const { __scopeContextMenu, ...itemProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.Item {...menuScope} {...itemProps} ref={forwardedRef} />;\n },\n);\n\nContextMenuItem.displayName = ITEM_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuCheckboxItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst CHECKBOX_ITEM_NAME = 'ContextMenuCheckboxItem';\n\ntype ContextMenuCheckboxItemElement = React.ComponentRef<typeof MenuPrimitive.CheckboxItem>;\ntype MenuCheckboxItemProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.CheckboxItem>;\ninterface ContextMenuCheckboxItemProps extends MenuCheckboxItemProps {}\n\nconst ContextMenuCheckboxItem = React.forwardRef<\n ContextMenuCheckboxItemElement,\n ContextMenuCheckboxItemProps\n>((props: ScopedProps<ContextMenuCheckboxItemProps>, forwardedRef) => {\n const { __scopeContextMenu, ...checkboxItemProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.CheckboxItem {...menuScope} {...checkboxItemProps} ref={forwardedRef} />;\n});\n\nContextMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuRadioGroup\n * -----------------------------------------------------------------------------------------------*/\n\nconst RADIO_GROUP_NAME = 'ContextMenuRadioGroup';\n\ntype ContextMenuRadioGroupElement = React.ComponentRef<typeof MenuPrimitive.RadioGroup>;\ntype MenuRadioGroupProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.RadioGroup>;\ninterface ContextMenuRadioGroupProps extends MenuRadioGroupProps {}\n\nconst ContextMenuRadioGroup = React.forwardRef<\n ContextMenuRadioGroupElement,\n ContextMenuRadioGroupProps\n>((props: ScopedProps<ContextMenuRadioGroupProps>, forwardedRef) => {\n const { __scopeContextMenu, ...radioGroupProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.RadioGroup {...menuScope} {...radioGroupProps} ref={forwardedRef} />;\n});\n\nContextMenuRadioGroup.displayName = RADIO_GROUP_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuRadioItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst RADIO_ITEM_NAME = 'ContextMenuRadioItem';\n\ntype ContextMenuRadioItemElement = React.ComponentRef<typeof MenuPrimitive.RadioItem>;\ntype MenuRadioItemProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.RadioItem>;\ninterface ContextMenuRadioItemProps extends MenuRadioItemProps {}\n\nconst ContextMenuRadioItem = React.forwardRef<\n ContextMenuRadioItemElement,\n ContextMenuRadioItemProps\n>((props: ScopedProps<ContextMenuRadioItemProps>, forwardedRef) => {\n const { __scopeContextMenu, ...radioItemProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.RadioItem {...menuScope} {...radioItemProps} ref={forwardedRef} />;\n});\n\nContextMenuRadioItem.displayName = RADIO_ITEM_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuItemIndicator\n * -----------------------------------------------------------------------------------------------*/\n\nconst INDICATOR_NAME = 'ContextMenuItemIndicator';\n\ntype ContextMenuItemIndicatorElement = React.ComponentRef<typeof MenuPrimitive.ItemIndicator>;\ntype MenuItemIndicatorProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.ItemIndicator>;\ninterface ContextMenuItemIndicatorProps extends MenuItemIndicatorProps {}\n\nconst ContextMenuItemIndicator = React.forwardRef<\n ContextMenuItemIndicatorElement,\n ContextMenuItemIndicatorProps\n>((props: ScopedProps<ContextMenuItemIndicatorProps>, forwardedRef) => {\n const { __scopeContextMenu, ...itemIndicatorProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.ItemIndicator {...menuScope} {...itemIndicatorProps} ref={forwardedRef} />;\n});\n\nContextMenuItemIndicator.displayName = INDICATOR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuSeparator\n * -----------------------------------------------------------------------------------------------*/\n\nconst SEPARATOR_NAME = 'ContextMenuSeparator';\n\ntype ContextMenuSeparatorElement = React.ComponentRef<typeof MenuPrimitive.Separator>;\ntype MenuSeparatorProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.Separator>;\ninterface ContextMenuSeparatorProps extends MenuSeparatorProps {}\n\nconst ContextMenuSeparator = React.forwardRef<\n ContextMenuSeparatorElement,\n ContextMenuSeparatorProps\n>((props: ScopedProps<ContextMenuSeparatorProps>, forwardedRef) => {\n const { __scopeContextMenu, ...separatorProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.Separator {...menuScope} {...separatorProps} ref={forwardedRef} />;\n});\n\nContextMenuSeparator.displayName = SEPARATOR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuArrow\n * -----------------------------------------------------------------------------------------------*/\n\nconst ARROW_NAME = 'ContextMenuArrow';\n\ntype ContextMenuArrowElement = React.ComponentRef<typeof MenuPrimitive.Arrow>;\ntype MenuArrowProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.Arrow>;\ninterface ContextMenuArrowProps extends MenuArrowProps {}\n\nconst ContextMenuArrow = React.forwardRef<ContextMenuArrowElement, ContextMenuArrowProps>(\n (props: ScopedProps<ContextMenuArrowProps>, forwardedRef) => {\n const { __scopeContextMenu, ...arrowProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.Arrow {...menuScope} {...arrowProps} ref={forwardedRef} />;\n },\n);\n\nContextMenuArrow.displayName = ARROW_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuSub\n * -----------------------------------------------------------------------------------------------*/\n\nconst SUB_NAME = 'ContextMenuSub';\n\ninterface ContextMenuSubProps {\n children?: React.ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?(open: boolean): void;\n}\n\nconst ContextMenuSub: React.FC<ContextMenuSubProps> = (props: ScopedProps<ContextMenuSubProps>) => {\n const { __scopeContextMenu, children, onOpenChange, open: openProp, defaultOpen } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: SUB_NAME,\n });\n\n return (\n <MenuPrimitive.Sub {...menuScope} open={open} onOpenChange={setOpen}>\n {children}\n </MenuPrimitive.Sub>\n );\n};\n\nContextMenuSub.displayName = SUB_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuSubTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst SUB_TRIGGER_NAME = 'ContextMenuSubTrigger';\n\ntype ContextMenuSubTriggerElement = React.ComponentRef<typeof MenuPrimitive.SubTrigger>;\ntype MenuSubTriggerProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.SubTrigger>;\ninterface ContextMenuSubTriggerProps extends MenuSubTriggerProps {}\n\nconst ContextMenuSubTrigger = React.forwardRef<\n ContextMenuSubTriggerElement,\n ContextMenuSubTriggerProps\n>((props: ScopedProps<ContextMenuSubTriggerProps>, forwardedRef) => {\n const { __scopeContextMenu, ...triggerItemProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.SubTrigger {...menuScope} {...triggerItemProps} ref={forwardedRef} />;\n});\n\nContextMenuSubTrigger.displayName = SUB_TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuSubContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst SUB_CONTENT_NAME = 'ContextMenuSubContent';\n\ntype ContextMenuSubContentElement = React.ComponentRef<typeof MenuPrimitive.Content>;\ntype MenuSubContentProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.SubContent>;\ninterface ContextMenuSubContentProps extends MenuSubContentProps {}\n\nconst ContextMenuSubContent = React.forwardRef<\n ContextMenuSubContentElement,\n ContextMenuSubContentProps\n>((props: ScopedProps<ContextMenuSubContentProps>, forwardedRef) => {\n const { __scopeContextMenu, ...subContentProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n\n return (\n <MenuPrimitive.SubContent\n {...menuScope}\n {...subContentProps}\n ref={forwardedRef}\n style={{\n ...props.style,\n // re-namespace exposed content custom properties\n ...{\n '--radix-context-menu-content-transform-origin': 'var(--radix-popper-transform-origin)',\n '--radix-context-menu-content-available-width': 'var(--radix-popper-available-width)',\n '--radix-context-menu-content-available-height': 'var(--radix-popper-available-height)',\n '--radix-context-menu-trigger-width': 'var(--radix-popper-anchor-width)',\n '--radix-context-menu-trigger-height': 'var(--radix-popper-anchor-height)',\n },\n }}\n />\n );\n});\n\nContextMenuSubContent.displayName = SUB_CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction whenTouchOrPen<E>(handler: React.PointerEventHandler<E>): React.PointerEventHandler<E> {\n return (event) => (event.pointerType !== 'mouse' ? handler(event) : undefined);\n}\n\nconst Root = ContextMenu;\nconst Trigger = ContextMenuTrigger;\nconst Portal = ContextMenuPortal;\nconst Content = ContextMenuContent;\nconst Group = ContextMenuGroup;\nconst Label = ContextMenuLabel;\nconst Item = ContextMenuItem;\nconst CheckboxItem = ContextMenuCheckboxItem;\nconst RadioGroup = ContextMenuRadioGroup;\nconst RadioItem = ContextMenuRadioItem;\nconst ItemIndicator = ContextMenuItemIndicator;\nconst Separator = ContextMenuSeparator;\nconst Arrow = ContextMenuArrow;\nconst Sub = ContextMenuSub;\nconst SubTrigger = ContextMenuSubTrigger;\nconst SubContent = ContextMenuSubContent;\n\nexport {\n createContextMenuScope,\n //\n ContextMenu,\n ContextMenuTrigger,\n ContextMenuPortal,\n ContextMenuContent,\n ContextMenuGroup,\n ContextMenuLabel,\n ContextMenuItem,\n ContextMenuCheckboxItem,\n ContextMenuRadioGroup,\n ContextMenuRadioItem,\n ContextMenuItemIndicator,\n ContextMenuSeparator,\n ContextMenuArrow,\n ContextMenuSub,\n ContextMenuSubTrigger,\n ContextMenuSubContent,\n //\n Root,\n Trigger,\n Portal,\n Content,\n Group,\n Label,\n Item,\n CheckboxItem,\n RadioGroup,\n RadioItem,\n ItemIndicator,\n Separator,\n Arrow,\n Sub,\n SubTrigger,\n SubContent,\n};\nexport type {\n ContextMenuProps,\n ContextMenuTriggerProps,\n ContextMenuPortalProps,\n ContextMenuContentProps,\n ContextMenuGroupProps,\n ContextMenuLabelProps,\n ContextMenuItemProps,\n ContextMenuCheckboxItemProps,\n ContextMenuRadioGroupProps,\n ContextMenuRadioItemProps,\n ContextMenuItemIndicatorProps,\n ContextMenuSeparatorProps,\n ContextMenuArrowProps,\n ContextMenuSubProps,\n ContextMenuSubTriggerProps,\n ContextMenuSubContentProps,\n};\n"],
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": ["Arrow", "CheckboxItem", "Content", "Group", "Item", "ItemIndicator", "Label", "Portal", "RadioGroup", "RadioItem", "Root", "Separator", "Sub", "SubContent", "SubTrigger", "Root", "Portal", "Content", "Group", "Label", "Item", "CheckboxItem", "RadioGroup", "RadioItem", "ItemIndicator", "Separator", "Arrow", "Sub", "SubTrigger", "SubContent"]
|
|
4
|
+
"sourcesContent": ["'use client';\nexport {\n createContextMenuScope,\n //\n ContextMenu,\n ContextMenuTrigger,\n ContextMenuPortal,\n ContextMenuContent,\n ContextMenuGroup,\n ContextMenuLabel,\n ContextMenuItem,\n ContextMenuCheckboxItem,\n ContextMenuRadioGroup,\n ContextMenuRadioItem,\n ContextMenuItemIndicator,\n ContextMenuSeparator,\n ContextMenuArrow,\n ContextMenuSub,\n ContextMenuSubTrigger,\n ContextMenuSubContent,\n //\n Root,\n Trigger,\n Portal,\n Content,\n Group,\n Label,\n Item,\n CheckboxItem,\n RadioGroup,\n RadioItem,\n ItemIndicator,\n Separator,\n Arrow,\n Sub,\n SubTrigger,\n SubContent,\n} from './context-menu';\nexport type {\n ContextMenuProps,\n ContextMenuTriggerProps,\n ContextMenuPortalProps,\n ContextMenuContentProps,\n ContextMenuGroupProps,\n ContextMenuLabelProps,\n ContextMenuItemProps,\n ContextMenuCheckboxItemProps,\n ContextMenuRadioGroupProps,\n ContextMenuRadioItemProps,\n ContextMenuItemIndicatorProps,\n ContextMenuSeparatorProps,\n ContextMenuArrowProps,\n ContextMenuSubProps,\n ContextMenuSubTriggerProps,\n ContextMenuSubContentProps,\n} from './context-menu';\n", "import * as React from 'react';\nimport { IS_DEVELOPMENT } from '@radix-ui/primitive/is-development';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport * as MenuPrimitive from '@radix-ui/react-menu';\nimport { createMenuScope } from '@radix-ui/react-menu';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport type { Scope } from '@radix-ui/react-context';\n\ntype Direction = 'ltr' | 'rtl';\ntype Point = { x: number; y: number };\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenu\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTEXT_MENU_NAME = 'ContextMenu';\n\ntype ScopedProps<P> = P & { __scopeContextMenu?: Scope };\nconst [createContextMenuContext, createContextMenuScope] = createContextScope(CONTEXT_MENU_NAME, [\n createMenuScope,\n]);\nconst useMenuScope = createMenuScope();\n\ninterface ContextMenuContextValue {\n open: boolean;\n onOpenChange(open: boolean): void;\n modal: boolean;\n hasInteractedRef: React.RefObject<boolean>;\n}\n\nconst [ContextMenuProvider, useContextMenuContext] =\n createContextMenuContext<ContextMenuContextValue>(CONTEXT_MENU_NAME);\n\ninterface ContextMenuProps {\n children?: React.ReactNode;\n open?: boolean;\n onOpenChange?(open: boolean): void;\n dir?: Direction;\n modal?: boolean;\n}\n\nconst ContextMenu: React.FC<ContextMenuProps> = (props: ScopedProps<ContextMenuProps>) => {\n const { __scopeContextMenu, children, onOpenChange, open: openProp, dir, modal = true } = props;\n\n // OK to disable conditionally calling hooks here because they will always run\n // consistently in the same environment. Bundlers should be able to remove the\n // code block entirely in production.\n /* eslint-disable react-hooks/rules-of-hooks */\n const hasInteractedRef = React.useRef(false);\n if (IS_DEVELOPMENT) {\n const hasWarnedRef = React.useRef(false);\n React.useEffect(() => {\n if (openProp === true && !hasInteractedRef.current && !hasWarnedRef.current) {\n hasWarnedRef.current = true;\n // dev warning: open prop is controllable but its position has not been set\n // because the user has not interacted with the trigger. The controllable\n // state is only enabled so that the user can read or programatically close\n // the menu. Programatically opening the menu will anchor it to the most\n // recently interacted position.\n console.warn(\n 'ContextMenu: The `open` prop has been set to `true` before the user has interacted with the trigger, so its position is indeterminate. This is likely unintended and will result in the menu being anchored to the top-left corner of the viewport.',\n );\n }\n }, [openProp]);\n }\n /* eslint-enable react-hooks/rules-of-hooks */\n\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: false,\n onChange: onOpenChange,\n caller: CONTEXT_MENU_NAME,\n });\n\n const menuScope = useMenuScope(__scopeContextMenu);\n\n return (\n <ContextMenuProvider\n scope={__scopeContextMenu}\n open={open}\n onOpenChange={setOpen}\n modal={modal}\n hasInteractedRef={hasInteractedRef}\n >\n <MenuPrimitive.Root {...menuScope} dir={dir} open={open} onOpenChange={setOpen} modal={modal}>\n {children}\n </MenuPrimitive.Root>\n </ContextMenuProvider>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'ContextMenuTrigger';\n\ntype ContextMenuTriggerElement = React.ComponentRef<typeof Primitive.span>;\ntype PrimitiveSpanProps = React.ComponentPropsWithoutRef<typeof Primitive.span>;\ninterface ContextMenuTriggerProps extends PrimitiveSpanProps {\n disabled?: boolean;\n}\n\nconst ContextMenuTrigger = /* @__PURE__ */ React.forwardRef<\n ContextMenuTriggerElement,\n ContextMenuTriggerProps\n>(\n // blank line to reduce diff noise\n function ContextMenuTrigger(props: ScopedProps<ContextMenuTriggerProps>, forwardedRef) {\n const { __scopeContextMenu, disabled = false, ...triggerProps } = props;\n const context = useContextMenuContext(TRIGGER_NAME, __scopeContextMenu);\n const menuScope = useMenuScope(__scopeContextMenu);\n const [point, setPoint] = React.useState<Point>({ x: 0, y: 0 });\n\n // Re-create the virtual anchor whenever the pointer position changes so the\n // content re-anchors to the latest point when the menu is re-triggered while\n // already open (e.g. right-clicking in a new location, #2611).\n const virtualRef = React.useMemo(\n () => ({\n current: {\n getBoundingClientRect: () => DOMRect.fromRect({ width: 0, height: 0, ...point }),\n },\n }),\n [point],\n );\n const longPressTimerRef = React.useRef(0);\n const clearLongPress = React.useCallback(\n () => window.clearTimeout(longPressTimerRef.current),\n [],\n );\n const handleOpen = (event: React.MouseEvent | React.PointerEvent) => {\n context.hasInteractedRef.current = true;\n setPoint({ x: event.clientX, y: event.clientY });\n context.onOpenChange(true);\n };\n\n React.useEffect(() => clearLongPress, [clearLongPress]);\n React.useEffect(() => void (disabled && clearLongPress()), [disabled, clearLongPress]);\n\n return (\n <>\n <MenuPrimitive.Anchor {...menuScope} virtualRef={virtualRef} />\n <Primitive.span\n data-state={context.open ? 'open' : 'closed'}\n data-disabled={disabled ? '' : undefined}\n {...triggerProps}\n ref={forwardedRef}\n // prevent iOS context menu from appearing\n style={{ WebkitTouchCallout: 'none', ...props.style }}\n // if trigger is disabled, enable the native Context Menu\n onContextMenu={\n disabled\n ? props.onContextMenu\n : composeEventHandlers(props.onContextMenu, (event) => {\n // clearing the long press here because some platforms already support\n // long press to trigger a `contextmenu` event\n clearLongPress();\n handleOpen(event);\n event.preventDefault();\n })\n }\n onPointerDown={\n disabled\n ? props.onPointerDown\n : composeEventHandlers(\n props.onPointerDown,\n whenTouchOrPen((event) => {\n // clear the long press here in case there's multiple touch points\n clearLongPress();\n if (context.open) {\n context.onOpenChange(false);\n }\n longPressTimerRef.current = window.setTimeout(() => handleOpen(event), 700);\n }),\n )\n }\n onPointerMove={\n disabled\n ? props.onPointerMove\n : composeEventHandlers(props.onPointerMove, whenTouchOrPen(clearLongPress))\n }\n onPointerCancel={\n disabled\n ? props.onPointerCancel\n : composeEventHandlers(props.onPointerCancel, whenTouchOrPen(clearLongPress))\n }\n onPointerUp={\n disabled\n ? props.onPointerUp\n : composeEventHandlers(props.onPointerUp, whenTouchOrPen(clearLongPress))\n }\n />\n </>\n );\n },\n);\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuPortal\n * -----------------------------------------------------------------------------------------------*/\n\ntype MenuPortalProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.Portal>;\ninterface ContextMenuPortalProps extends MenuPortalProps {}\n\nconst ContextMenuPortal: React.FC<ContextMenuPortalProps> = (\n props: ScopedProps<ContextMenuPortalProps>,\n) => {\n const { __scopeContextMenu, ...portalProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.Portal {...menuScope} {...portalProps} />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'ContextMenuContent';\n\ntype ContextMenuContentElement = React.ComponentRef<typeof MenuPrimitive.Content>;\ntype MenuContentProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.Content>;\ninterface ContextMenuContentProps extends Omit<\n MenuContentProps,\n 'onEntryFocus' | 'side' | 'sideOffset' | 'align'\n> {}\n\nconst ContextMenuContent = /* @__PURE__ */ React.forwardRef<\n ContextMenuContentElement,\n ContextMenuContentProps\n>(\n // blank line to reduce diff noise\n function ContextMenuContent(props: ScopedProps<ContextMenuContentProps>, forwardedRef) {\n const { __scopeContextMenu, ...contentProps } = props;\n const context = useContextMenuContext(CONTENT_NAME, __scopeContextMenu);\n const menuScope = useMenuScope(__scopeContextMenu);\n const hasInteractedOutsideRef = React.useRef(false);\n\n return (\n <MenuPrimitive.Content\n {...menuScope}\n {...contentProps}\n ref={forwardedRef}\n side=\"right\"\n sideOffset={2}\n align=\"start\"\n onCloseAutoFocus={(event) => {\n props.onCloseAutoFocus?.(event);\n\n if (!event.defaultPrevented && hasInteractedOutsideRef.current) {\n event.preventDefault();\n }\n\n hasInteractedOutsideRef.current = false;\n }}\n onInteractOutside={(event) => {\n props.onInteractOutside?.(event);\n\n if (!event.defaultPrevented && !context.modal) hasInteractedOutsideRef.current = true;\n }}\n style={{\n ...props.style,\n // re-namespace exposed content custom properties\n ...{\n '--radix-context-menu-content-transform-origin': 'var(--radix-popper-transform-origin)',\n '--radix-context-menu-content-available-width': 'var(--radix-popper-available-width)',\n '--radix-context-menu-content-available-height': 'var(--radix-popper-available-height)',\n '--radix-context-menu-trigger-width': 'var(--radix-popper-anchor-width)',\n '--radix-context-menu-trigger-height': 'var(--radix-popper-anchor-height)',\n },\n }}\n />\n );\n },\n);\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuGroup\n * -----------------------------------------------------------------------------------------------*/\n\ntype ContextMenuGroupElement = React.ComponentRef<typeof MenuPrimitive.Group>;\ntype MenuGroupProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.Group>;\ninterface ContextMenuGroupProps extends MenuGroupProps {}\n\nconst ContextMenuGroup = /* @__PURE__ */ React.forwardRef<\n ContextMenuGroupElement,\n ContextMenuGroupProps\n>(\n // blank line to reduce diff noise\n function ContextMenuGroup(props: ScopedProps<ContextMenuGroupProps>, forwardedRef) {\n const { __scopeContextMenu, ...groupProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.Group {...menuScope} {...groupProps} ref={forwardedRef} />;\n },\n);\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuLabel\n * -----------------------------------------------------------------------------------------------*/\n\ntype ContextMenuLabelElement = React.ComponentRef<typeof MenuPrimitive.Label>;\ntype MenuLabelProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.Label>;\ninterface ContextMenuLabelProps extends MenuLabelProps {}\n\nconst ContextMenuLabel = /* @__PURE__ */ React.forwardRef<\n ContextMenuLabelElement,\n ContextMenuLabelProps\n>(\n // blank line to reduce diff noise\n function ContextMenuLabel(props: ScopedProps<ContextMenuLabelProps>, forwardedRef) {\n const { __scopeContextMenu, ...labelProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.Label {...menuScope} {...labelProps} ref={forwardedRef} />;\n },\n);\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuItem\n * -----------------------------------------------------------------------------------------------*/\n\ntype ContextMenuItemElement = React.ComponentRef<typeof MenuPrimitive.Item>;\ntype MenuItemProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.Item>;\ninterface ContextMenuItemProps extends MenuItemProps {}\n\nconst ContextMenuItem = /* @__PURE__ */ React.forwardRef<\n ContextMenuItemElement,\n ContextMenuItemProps\n>(\n // blank line to reduce diff noise\n function ContextMenuItem(props: ScopedProps<ContextMenuItemProps>, forwardedRef) {\n const { __scopeContextMenu, ...itemProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.Item {...menuScope} {...itemProps} ref={forwardedRef} />;\n },\n);\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuCheckboxItem\n * -----------------------------------------------------------------------------------------------*/\n\ntype ContextMenuCheckboxItemElement = React.ComponentRef<typeof MenuPrimitive.CheckboxItem>;\ntype MenuCheckboxItemProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.CheckboxItem>;\ninterface ContextMenuCheckboxItemProps extends MenuCheckboxItemProps {}\n\nconst ContextMenuCheckboxItem = /* @__PURE__ */ React.forwardRef<\n ContextMenuCheckboxItemElement,\n ContextMenuCheckboxItemProps\n>(function ContextMenuCheckboxItem(props: ScopedProps<ContextMenuCheckboxItemProps>, forwardedRef) {\n const { __scopeContextMenu, ...checkboxItemProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.CheckboxItem {...menuScope} {...checkboxItemProps} ref={forwardedRef} />;\n});\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuRadioGroup\n * -----------------------------------------------------------------------------------------------*/\n\ntype ContextMenuRadioGroupElement = React.ComponentRef<typeof MenuPrimitive.RadioGroup>;\ntype MenuRadioGroupProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.RadioGroup>;\ninterface ContextMenuRadioGroupProps extends MenuRadioGroupProps {}\n\nconst ContextMenuRadioGroup = /* @__PURE__ */ React.forwardRef<\n ContextMenuRadioGroupElement,\n ContextMenuRadioGroupProps\n>(function ContextMenuRadioGroup(props: ScopedProps<ContextMenuRadioGroupProps>, forwardedRef) {\n const { __scopeContextMenu, ...radioGroupProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.RadioGroup {...menuScope} {...radioGroupProps} ref={forwardedRef} />;\n});\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuRadioItem\n * -----------------------------------------------------------------------------------------------*/\n\ntype ContextMenuRadioItemElement = React.ComponentRef<typeof MenuPrimitive.RadioItem>;\ntype MenuRadioItemProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.RadioItem>;\ninterface ContextMenuRadioItemProps extends MenuRadioItemProps {}\n\nconst ContextMenuRadioItem = /* @__PURE__ */ React.forwardRef<\n ContextMenuRadioItemElement,\n ContextMenuRadioItemProps\n>(function ContextMenuRadioItem(props: ScopedProps<ContextMenuRadioItemProps>, forwardedRef) {\n const { __scopeContextMenu, ...radioItemProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.RadioItem {...menuScope} {...radioItemProps} ref={forwardedRef} />;\n});\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuItemIndicator\n * -----------------------------------------------------------------------------------------------*/\n\ntype ContextMenuItemIndicatorElement = React.ComponentRef<typeof MenuPrimitive.ItemIndicator>;\ntype MenuItemIndicatorProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.ItemIndicator>;\ninterface ContextMenuItemIndicatorProps extends MenuItemIndicatorProps {}\n\nconst ContextMenuItemIndicator = /* @__PURE__ */ React.forwardRef<\n ContextMenuItemIndicatorElement,\n ContextMenuItemIndicatorProps\n>(function ContextMenuItemIndicator(\n props: ScopedProps<ContextMenuItemIndicatorProps>,\n forwardedRef,\n) {\n const { __scopeContextMenu, ...itemIndicatorProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.ItemIndicator {...menuScope} {...itemIndicatorProps} ref={forwardedRef} />;\n});\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuSeparator\n * -----------------------------------------------------------------------------------------------*/\n\ntype ContextMenuSeparatorElement = React.ComponentRef<typeof MenuPrimitive.Separator>;\ntype MenuSeparatorProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.Separator>;\ninterface ContextMenuSeparatorProps extends MenuSeparatorProps {}\n\nconst ContextMenuSeparator = /* @__PURE__ */ React.forwardRef<\n ContextMenuSeparatorElement,\n ContextMenuSeparatorProps\n>(function ContextMenuSeparator(props: ScopedProps<ContextMenuSeparatorProps>, forwardedRef) {\n const { __scopeContextMenu, ...separatorProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.Separator {...menuScope} {...separatorProps} ref={forwardedRef} />;\n});\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuArrow\n * -----------------------------------------------------------------------------------------------*/\n\ntype ContextMenuArrowElement = React.ComponentRef<typeof MenuPrimitive.Arrow>;\ntype MenuArrowProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.Arrow>;\ninterface ContextMenuArrowProps extends MenuArrowProps {}\n\nconst ContextMenuArrow = /* @__PURE__ */ React.forwardRef<\n ContextMenuArrowElement,\n ContextMenuArrowProps\n>(\n // blank line to reduce diff noise\n function ContextMenuArrow(props: ScopedProps<ContextMenuArrowProps>, forwardedRef) {\n const { __scopeContextMenu, ...arrowProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.Arrow {...menuScope} {...arrowProps} ref={forwardedRef} />;\n },\n);\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuSub\n * -----------------------------------------------------------------------------------------------*/\n\nconst SUB_NAME = 'ContextMenuSub';\n\ninterface ContextMenuSubProps {\n children?: React.ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?(open: boolean): void;\n}\n\nconst ContextMenuSub: React.FC<ContextMenuSubProps> = (props: ScopedProps<ContextMenuSubProps>) => {\n const { __scopeContextMenu, children, onOpenChange, open: openProp, defaultOpen } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: SUB_NAME,\n });\n\n return (\n <MenuPrimitive.Sub {...menuScope} open={open} onOpenChange={setOpen}>\n {children}\n </MenuPrimitive.Sub>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuSubTrigger\n * -----------------------------------------------------------------------------------------------*/\n\ntype ContextMenuSubTriggerElement = React.ComponentRef<typeof MenuPrimitive.SubTrigger>;\ntype MenuSubTriggerProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.SubTrigger>;\ninterface ContextMenuSubTriggerProps extends MenuSubTriggerProps {}\n\nconst ContextMenuSubTrigger = /* @__PURE__ */ React.forwardRef<\n ContextMenuSubTriggerElement,\n ContextMenuSubTriggerProps\n>(function ContextMenuSubTrigger(props: ScopedProps<ContextMenuSubTriggerProps>, forwardedRef) {\n const { __scopeContextMenu, ...triggerItemProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.SubTrigger {...menuScope} {...triggerItemProps} ref={forwardedRef} />;\n});\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuSubContent\n * -----------------------------------------------------------------------------------------------*/\n\ntype ContextMenuSubContentElement = React.ComponentRef<typeof MenuPrimitive.Content>;\ntype MenuSubContentProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.SubContent>;\ninterface ContextMenuSubContentProps extends MenuSubContentProps {}\n\nconst ContextMenuSubContent = /* @__PURE__ */ React.forwardRef<\n ContextMenuSubContentElement,\n ContextMenuSubContentProps\n>(function ContextMenuSubContent(props: ScopedProps<ContextMenuSubContentProps>, forwardedRef) {\n const { __scopeContextMenu, ...subContentProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n\n return (\n <MenuPrimitive.SubContent\n {...menuScope}\n {...subContentProps}\n ref={forwardedRef}\n style={{\n ...props.style,\n // re-namespace exposed content custom properties\n ...{\n '--radix-context-menu-content-transform-origin': 'var(--radix-popper-transform-origin)',\n '--radix-context-menu-content-available-width': 'var(--radix-popper-available-width)',\n '--radix-context-menu-content-available-height': 'var(--radix-popper-available-height)',\n '--radix-context-menu-trigger-width': 'var(--radix-popper-anchor-width)',\n '--radix-context-menu-trigger-height': 'var(--radix-popper-anchor-height)',\n },\n }}\n />\n );\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction whenTouchOrPen<E>(handler: React.PointerEventHandler<E>): React.PointerEventHandler<E> {\n return (event) => (event.pointerType !== 'mouse' ? handler(event) : undefined);\n}\n\nconst Root = ContextMenu;\nconst Trigger = ContextMenuTrigger;\nconst Portal = ContextMenuPortal;\nconst Content = ContextMenuContent;\nconst Group = ContextMenuGroup;\nconst Label = ContextMenuLabel;\nconst Item = ContextMenuItem;\nconst CheckboxItem = ContextMenuCheckboxItem;\nconst RadioGroup = ContextMenuRadioGroup;\nconst RadioItem = ContextMenuRadioItem;\nconst ItemIndicator = ContextMenuItemIndicator;\nconst Separator = ContextMenuSeparator;\nconst Arrow = ContextMenuArrow;\nconst Sub = ContextMenuSub;\nconst SubTrigger = ContextMenuSubTrigger;\nconst SubContent = ContextMenuSubContent;\n\nexport {\n createContextMenuScope,\n //\n ContextMenu,\n ContextMenuTrigger,\n ContextMenuPortal,\n ContextMenuContent,\n ContextMenuGroup,\n ContextMenuLabel,\n ContextMenuItem,\n ContextMenuCheckboxItem,\n ContextMenuRadioGroup,\n ContextMenuRadioItem,\n ContextMenuItemIndicator,\n ContextMenuSeparator,\n ContextMenuArrow,\n ContextMenuSub,\n ContextMenuSubTrigger,\n ContextMenuSubContent,\n //\n Root,\n Trigger,\n Portal,\n Content,\n Group,\n Label,\n Item,\n CheckboxItem,\n RadioGroup,\n RadioItem,\n ItemIndicator,\n Separator,\n Arrow,\n Sub,\n SubTrigger,\n SubContent,\n};\nexport type {\n ContextMenuProps,\n ContextMenuTriggerProps,\n ContextMenuPortalProps,\n ContextMenuContentProps,\n ContextMenuGroupProps,\n ContextMenuLabelProps,\n ContextMenuItemProps,\n ContextMenuCheckboxItemProps,\n ContextMenuRadioGroupProps,\n ContextMenuRadioItemProps,\n ContextMenuItemIndicatorProps,\n ContextMenuSeparatorProps,\n ContextMenuArrowProps,\n ContextMenuSubProps,\n ContextMenuSubTriggerProps,\n ContextMenuSubContentProps,\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Arrow", "CheckboxItem", "Content", "Group", "Item", "ItemIndicator", "Label", "Portal", "RadioGroup", "RadioItem", "Root", "Separator", "Sub", "SubContent", "SubTrigger", "ContextMenuTrigger", "ContextMenuContent", "ContextMenuGroup", "ContextMenuLabel", "ContextMenuItem", "ContextMenuCheckboxItem", "ContextMenuRadioGroup", "ContextMenuRadioItem", "ContextMenuItemIndicator", "ContextMenuSeparator", "ContextMenuArrow", "ContextMenuSubTrigger", "ContextMenuSubContent", "Root", "Portal", "Content", "Group", "Label", "Item", "CheckboxItem", "RadioGroup", "RadioItem", "ItemIndicator", "Separator", "Arrow", "Sub", "SubTrigger", "SubContent"]
|
|
7
7
|
}
|
package/dist/index.mjs
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
2
4
|
|
|
3
5
|
// src/context-menu.tsx
|
|
4
6
|
import * as React from "react";
|
|
7
|
+
import { IS_DEVELOPMENT } from "@radix-ui/primitive/is-development";
|
|
5
8
|
import { composeEventHandlers } from "@radix-ui/primitive";
|
|
6
9
|
import { createContextScope } from "@radix-ui/react-context";
|
|
7
10
|
import { Primitive } from "@radix-ui/react-primitive";
|
|
@@ -15,10 +18,10 @@ var [createContextMenuContext, createContextMenuScope] = createContextScope(CONT
|
|
|
15
18
|
]);
|
|
16
19
|
var useMenuScope = createMenuScope();
|
|
17
20
|
var [ContextMenuProvider, useContextMenuContext] = createContextMenuContext(CONTEXT_MENU_NAME);
|
|
18
|
-
var ContextMenu = (props) => {
|
|
21
|
+
var ContextMenu = /* @__PURE__ */ __name((props) => {
|
|
19
22
|
const { __scopeContextMenu, children, onOpenChange, open: openProp, dir, modal = true } = props;
|
|
20
23
|
const hasInteractedRef = React.useRef(false);
|
|
21
|
-
if (
|
|
24
|
+
if (IS_DEVELOPMENT) {
|
|
22
25
|
const hasWarnedRef = React.useRef(false);
|
|
23
26
|
React.useEffect(() => {
|
|
24
27
|
if (openProp === true && !hasInteractedRef.current && !hasWarnedRef.current) {
|
|
@@ -47,11 +50,11 @@ var ContextMenu = (props) => {
|
|
|
47
50
|
children: /* @__PURE__ */ jsx(MenuPrimitive.Root, { ...menuScope, dir, open, onOpenChange: setOpen, modal, children })
|
|
48
51
|
}
|
|
49
52
|
);
|
|
50
|
-
};
|
|
51
|
-
ContextMenu.displayName = CONTEXT_MENU_NAME;
|
|
53
|
+
}, "ContextMenu");
|
|
52
54
|
var TRIGGER_NAME = "ContextMenuTrigger";
|
|
53
|
-
var ContextMenuTrigger = React.forwardRef(
|
|
54
|
-
|
|
55
|
+
var ContextMenuTrigger = /* @__PURE__ */ React.forwardRef(
|
|
56
|
+
// blank line to reduce diff noise
|
|
57
|
+
/* @__PURE__ */ __name(function ContextMenuTrigger2(props, forwardedRef) {
|
|
55
58
|
const { __scopeContextMenu, disabled = false, ...triggerProps } = props;
|
|
56
59
|
const context = useContextMenuContext(TRIGGER_NAME, __scopeContextMenu);
|
|
57
60
|
const menuScope = useMenuScope(__scopeContextMenu);
|
|
@@ -59,7 +62,7 @@ var ContextMenuTrigger = React.forwardRef(
|
|
|
59
62
|
const virtualRef = React.useMemo(
|
|
60
63
|
() => ({
|
|
61
64
|
current: {
|
|
62
|
-
getBoundingClientRect: () => DOMRect.fromRect({ width: 0, height: 0, ...point })
|
|
65
|
+
getBoundingClientRect: /* @__PURE__ */ __name(() => DOMRect.fromRect({ width: 0, height: 0, ...point }), "getBoundingClientRect")
|
|
63
66
|
}
|
|
64
67
|
}),
|
|
65
68
|
[point]
|
|
@@ -69,11 +72,11 @@ var ContextMenuTrigger = React.forwardRef(
|
|
|
69
72
|
() => window.clearTimeout(longPressTimerRef.current),
|
|
70
73
|
[]
|
|
71
74
|
);
|
|
72
|
-
const handleOpen = (event) => {
|
|
75
|
+
const handleOpen = /* @__PURE__ */ __name((event) => {
|
|
73
76
|
context.hasInteractedRef.current = true;
|
|
74
77
|
setPoint({ x: event.clientX, y: event.clientY });
|
|
75
78
|
context.onOpenChange(true);
|
|
76
|
-
};
|
|
79
|
+
}, "handleOpen");
|
|
77
80
|
React.useEffect(() => clearLongPress, [clearLongPress]);
|
|
78
81
|
React.useEffect(() => void (disabled && clearLongPress()), [disabled, clearLongPress]);
|
|
79
82
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
@@ -107,19 +110,17 @@ var ContextMenuTrigger = React.forwardRef(
|
|
|
107
110
|
}
|
|
108
111
|
)
|
|
109
112
|
] });
|
|
110
|
-
}
|
|
113
|
+
}, "ContextMenuTrigger")
|
|
111
114
|
);
|
|
112
|
-
|
|
113
|
-
var PORTAL_NAME = "ContextMenuPortal";
|
|
114
|
-
var ContextMenuPortal = (props) => {
|
|
115
|
+
var ContextMenuPortal = /* @__PURE__ */ __name((props) => {
|
|
115
116
|
const { __scopeContextMenu, ...portalProps } = props;
|
|
116
117
|
const menuScope = useMenuScope(__scopeContextMenu);
|
|
117
118
|
return /* @__PURE__ */ jsx(MenuPrimitive.Portal, { ...menuScope, ...portalProps });
|
|
118
|
-
};
|
|
119
|
-
ContextMenuPortal.displayName = PORTAL_NAME;
|
|
119
|
+
}, "ContextMenuPortal");
|
|
120
120
|
var CONTENT_NAME = "ContextMenuContent";
|
|
121
|
-
var ContextMenuContent = React.forwardRef(
|
|
122
|
-
|
|
121
|
+
var ContextMenuContent = /* @__PURE__ */ React.forwardRef(
|
|
122
|
+
// blank line to reduce diff noise
|
|
123
|
+
/* @__PURE__ */ __name(function ContextMenuContent2(props, forwardedRef) {
|
|
123
124
|
const { __scopeContextMenu, ...contentProps } = props;
|
|
124
125
|
const context = useContextMenuContext(CONTENT_NAME, __scopeContextMenu);
|
|
125
126
|
const menuScope = useMenuScope(__scopeContextMenu);
|
|
@@ -157,82 +158,67 @@ var ContextMenuContent = React.forwardRef(
|
|
|
157
158
|
}
|
|
158
159
|
}
|
|
159
160
|
);
|
|
160
|
-
}
|
|
161
|
+
}, "ContextMenuContent")
|
|
161
162
|
);
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
(props, forwardedRef) => {
|
|
163
|
+
var ContextMenuGroup = /* @__PURE__ */ React.forwardRef(
|
|
164
|
+
// blank line to reduce diff noise
|
|
165
|
+
/* @__PURE__ */ __name(function ContextMenuGroup2(props, forwardedRef) {
|
|
166
166
|
const { __scopeContextMenu, ...groupProps } = props;
|
|
167
167
|
const menuScope = useMenuScope(__scopeContextMenu);
|
|
168
168
|
return /* @__PURE__ */ jsx(MenuPrimitive.Group, { ...menuScope, ...groupProps, ref: forwardedRef });
|
|
169
|
-
}
|
|
169
|
+
}, "ContextMenuGroup")
|
|
170
170
|
);
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
(props, forwardedRef) => {
|
|
171
|
+
var ContextMenuLabel = /* @__PURE__ */ React.forwardRef(
|
|
172
|
+
// blank line to reduce diff noise
|
|
173
|
+
/* @__PURE__ */ __name(function ContextMenuLabel2(props, forwardedRef) {
|
|
175
174
|
const { __scopeContextMenu, ...labelProps } = props;
|
|
176
175
|
const menuScope = useMenuScope(__scopeContextMenu);
|
|
177
176
|
return /* @__PURE__ */ jsx(MenuPrimitive.Label, { ...menuScope, ...labelProps, ref: forwardedRef });
|
|
178
|
-
}
|
|
177
|
+
}, "ContextMenuLabel")
|
|
179
178
|
);
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
(props, forwardedRef) => {
|
|
179
|
+
var ContextMenuItem = /* @__PURE__ */ React.forwardRef(
|
|
180
|
+
// blank line to reduce diff noise
|
|
181
|
+
/* @__PURE__ */ __name(function ContextMenuItem2(props, forwardedRef) {
|
|
184
182
|
const { __scopeContextMenu, ...itemProps } = props;
|
|
185
183
|
const menuScope = useMenuScope(__scopeContextMenu);
|
|
186
184
|
return /* @__PURE__ */ jsx(MenuPrimitive.Item, { ...menuScope, ...itemProps, ref: forwardedRef });
|
|
187
|
-
}
|
|
185
|
+
}, "ContextMenuItem")
|
|
188
186
|
);
|
|
189
|
-
|
|
190
|
-
var CHECKBOX_ITEM_NAME = "ContextMenuCheckboxItem";
|
|
191
|
-
var ContextMenuCheckboxItem = React.forwardRef((props, forwardedRef) => {
|
|
187
|
+
var ContextMenuCheckboxItem = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function ContextMenuCheckboxItem2(props, forwardedRef) {
|
|
192
188
|
const { __scopeContextMenu, ...checkboxItemProps } = props;
|
|
193
189
|
const menuScope = useMenuScope(__scopeContextMenu);
|
|
194
190
|
return /* @__PURE__ */ jsx(MenuPrimitive.CheckboxItem, { ...menuScope, ...checkboxItemProps, ref: forwardedRef });
|
|
195
|
-
});
|
|
196
|
-
|
|
197
|
-
var RADIO_GROUP_NAME = "ContextMenuRadioGroup";
|
|
198
|
-
var ContextMenuRadioGroup = React.forwardRef((props, forwardedRef) => {
|
|
191
|
+
}, "ContextMenuCheckboxItem"));
|
|
192
|
+
var ContextMenuRadioGroup = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function ContextMenuRadioGroup2(props, forwardedRef) {
|
|
199
193
|
const { __scopeContextMenu, ...radioGroupProps } = props;
|
|
200
194
|
const menuScope = useMenuScope(__scopeContextMenu);
|
|
201
195
|
return /* @__PURE__ */ jsx(MenuPrimitive.RadioGroup, { ...menuScope, ...radioGroupProps, ref: forwardedRef });
|
|
202
|
-
});
|
|
203
|
-
|
|
204
|
-
var RADIO_ITEM_NAME = "ContextMenuRadioItem";
|
|
205
|
-
var ContextMenuRadioItem = React.forwardRef((props, forwardedRef) => {
|
|
196
|
+
}, "ContextMenuRadioGroup"));
|
|
197
|
+
var ContextMenuRadioItem = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function ContextMenuRadioItem2(props, forwardedRef) {
|
|
206
198
|
const { __scopeContextMenu, ...radioItemProps } = props;
|
|
207
199
|
const menuScope = useMenuScope(__scopeContextMenu);
|
|
208
200
|
return /* @__PURE__ */ jsx(MenuPrimitive.RadioItem, { ...menuScope, ...radioItemProps, ref: forwardedRef });
|
|
209
|
-
});
|
|
210
|
-
|
|
211
|
-
var INDICATOR_NAME = "ContextMenuItemIndicator";
|
|
212
|
-
var ContextMenuItemIndicator = React.forwardRef((props, forwardedRef) => {
|
|
201
|
+
}, "ContextMenuRadioItem"));
|
|
202
|
+
var ContextMenuItemIndicator = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function ContextMenuItemIndicator2(props, forwardedRef) {
|
|
213
203
|
const { __scopeContextMenu, ...itemIndicatorProps } = props;
|
|
214
204
|
const menuScope = useMenuScope(__scopeContextMenu);
|
|
215
205
|
return /* @__PURE__ */ jsx(MenuPrimitive.ItemIndicator, { ...menuScope, ...itemIndicatorProps, ref: forwardedRef });
|
|
216
|
-
});
|
|
217
|
-
|
|
218
|
-
var SEPARATOR_NAME = "ContextMenuSeparator";
|
|
219
|
-
var ContextMenuSeparator = React.forwardRef((props, forwardedRef) => {
|
|
206
|
+
}, "ContextMenuItemIndicator"));
|
|
207
|
+
var ContextMenuSeparator = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function ContextMenuSeparator2(props, forwardedRef) {
|
|
220
208
|
const { __scopeContextMenu, ...separatorProps } = props;
|
|
221
209
|
const menuScope = useMenuScope(__scopeContextMenu);
|
|
222
210
|
return /* @__PURE__ */ jsx(MenuPrimitive.Separator, { ...menuScope, ...separatorProps, ref: forwardedRef });
|
|
223
|
-
});
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
(props, forwardedRef) => {
|
|
211
|
+
}, "ContextMenuSeparator"));
|
|
212
|
+
var ContextMenuArrow = /* @__PURE__ */ React.forwardRef(
|
|
213
|
+
// blank line to reduce diff noise
|
|
214
|
+
/* @__PURE__ */ __name(function ContextMenuArrow2(props, forwardedRef) {
|
|
228
215
|
const { __scopeContextMenu, ...arrowProps } = props;
|
|
229
216
|
const menuScope = useMenuScope(__scopeContextMenu);
|
|
230
217
|
return /* @__PURE__ */ jsx(MenuPrimitive.Arrow, { ...menuScope, ...arrowProps, ref: forwardedRef });
|
|
231
|
-
}
|
|
218
|
+
}, "ContextMenuArrow")
|
|
232
219
|
);
|
|
233
|
-
ContextMenuArrow.displayName = ARROW_NAME;
|
|
234
220
|
var SUB_NAME = "ContextMenuSub";
|
|
235
|
-
var ContextMenuSub = (props) => {
|
|
221
|
+
var ContextMenuSub = /* @__PURE__ */ __name((props) => {
|
|
236
222
|
const { __scopeContextMenu, children, onOpenChange, open: openProp, defaultOpen } = props;
|
|
237
223
|
const menuScope = useMenuScope(__scopeContextMenu);
|
|
238
224
|
const [open, setOpen] = useControllableState({
|
|
@@ -242,17 +228,13 @@ var ContextMenuSub = (props) => {
|
|
|
242
228
|
caller: SUB_NAME
|
|
243
229
|
});
|
|
244
230
|
return /* @__PURE__ */ jsx(MenuPrimitive.Sub, { ...menuScope, open, onOpenChange: setOpen, children });
|
|
245
|
-
};
|
|
246
|
-
|
|
247
|
-
var SUB_TRIGGER_NAME = "ContextMenuSubTrigger";
|
|
248
|
-
var ContextMenuSubTrigger = React.forwardRef((props, forwardedRef) => {
|
|
231
|
+
}, "ContextMenuSub");
|
|
232
|
+
var ContextMenuSubTrigger = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function ContextMenuSubTrigger2(props, forwardedRef) {
|
|
249
233
|
const { __scopeContextMenu, ...triggerItemProps } = props;
|
|
250
234
|
const menuScope = useMenuScope(__scopeContextMenu);
|
|
251
235
|
return /* @__PURE__ */ jsx(MenuPrimitive.SubTrigger, { ...menuScope, ...triggerItemProps, ref: forwardedRef });
|
|
252
|
-
});
|
|
253
|
-
|
|
254
|
-
var SUB_CONTENT_NAME = "ContextMenuSubContent";
|
|
255
|
-
var ContextMenuSubContent = React.forwardRef((props, forwardedRef) => {
|
|
236
|
+
}, "ContextMenuSubTrigger"));
|
|
237
|
+
var ContextMenuSubContent = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function ContextMenuSubContent2(props, forwardedRef) {
|
|
256
238
|
const { __scopeContextMenu, ...subContentProps } = props;
|
|
257
239
|
const menuScope = useMenuScope(__scopeContextMenu);
|
|
258
240
|
return /* @__PURE__ */ jsx(
|
|
@@ -274,11 +256,11 @@ var ContextMenuSubContent = React.forwardRef((props, forwardedRef) => {
|
|
|
274
256
|
}
|
|
275
257
|
}
|
|
276
258
|
);
|
|
277
|
-
});
|
|
278
|
-
ContextMenuSubContent.displayName = SUB_CONTENT_NAME;
|
|
259
|
+
}, "ContextMenuSubContent"));
|
|
279
260
|
function whenTouchOrPen(handler) {
|
|
280
261
|
return (event) => event.pointerType !== "mouse" ? handler(event) : void 0;
|
|
281
262
|
}
|
|
263
|
+
__name(whenTouchOrPen, "whenTouchOrPen");
|
|
282
264
|
var Root2 = ContextMenu;
|
|
283
265
|
var Trigger = ContextMenuTrigger;
|
|
284
266
|
var Portal2 = ContextMenuPortal;
|
package/dist/index.mjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/context-menu.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport * as MenuPrimitive from '@radix-ui/react-menu';\nimport { createMenuScope } from '@radix-ui/react-menu';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport type { Scope } from '@radix-ui/react-context';\n\ntype Direction = 'ltr' | 'rtl';\ntype Point = { x: number; y: number };\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenu\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTEXT_MENU_NAME = 'ContextMenu';\n\ntype ScopedProps<P> = P & { __scopeContextMenu?: Scope };\nconst [createContextMenuContext, createContextMenuScope] = createContextScope(CONTEXT_MENU_NAME, [\n createMenuScope,\n]);\nconst useMenuScope = createMenuScope();\n\ninterface ContextMenuContextValue {\n open: boolean;\n onOpenChange(open: boolean): void;\n modal: boolean;\n hasInteractedRef: React.RefObject<boolean>;\n}\n\nconst [ContextMenuProvider, useContextMenuContext] =\n createContextMenuContext<ContextMenuContextValue>(CONTEXT_MENU_NAME);\n\ninterface ContextMenuProps {\n children?: React.ReactNode;\n open?: boolean;\n onOpenChange?(open: boolean): void;\n dir?: Direction;\n modal?: boolean;\n}\n\nconst ContextMenu: React.FC<ContextMenuProps> = (props: ScopedProps<ContextMenuProps>) => {\n const { __scopeContextMenu, children, onOpenChange, open: openProp, dir, modal = true } = props;\n\n // OK to disable conditionally calling hooks here because they will always run\n // consistently in the same environment. Bundlers should be able to remove the\n // code block entirely in production.\n /* eslint-disable react-hooks/rules-of-hooks */\n const hasInteractedRef = React.useRef(false);\n if (process.env.NODE_ENV !== 'production') {\n const hasWarnedRef = React.useRef(false);\n React.useEffect(() => {\n if (openProp === true && !hasInteractedRef.current && !hasWarnedRef.current) {\n hasWarnedRef.current = true;\n // dev warning: open prop is controllable but its position has not been set\n // because the user has not interacted with the trigger. The controllable\n // state is only enabled so that the user can read or programatically close\n // the menu. Programatically opening the menu will anchor it to the most\n // recently interacted position.\n console.warn(\n 'ContextMenu: The `open` prop has been set to `true` before the user has interacted with the trigger, so its position is indeterminate. This is likely unintended and will result in the menu being anchored to the top-left corner of the viewport.',\n );\n }\n }, [openProp]);\n }\n /* eslint-enable react-hooks/rules-of-hooks */\n\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: false,\n onChange: onOpenChange,\n caller: CONTEXT_MENU_NAME,\n });\n\n const menuScope = useMenuScope(__scopeContextMenu);\n\n return (\n <ContextMenuProvider\n scope={__scopeContextMenu}\n open={open}\n onOpenChange={setOpen}\n modal={modal}\n hasInteractedRef={hasInteractedRef}\n >\n <MenuPrimitive.Root {...menuScope} dir={dir} open={open} onOpenChange={setOpen} modal={modal}>\n {children}\n </MenuPrimitive.Root>\n </ContextMenuProvider>\n );\n};\n\nContextMenu.displayName = CONTEXT_MENU_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'ContextMenuTrigger';\n\ntype ContextMenuTriggerElement = React.ComponentRef<typeof Primitive.span>;\ntype PrimitiveSpanProps = React.ComponentPropsWithoutRef<typeof Primitive.span>;\ninterface ContextMenuTriggerProps extends PrimitiveSpanProps {\n disabled?: boolean;\n}\n\nconst ContextMenuTrigger = React.forwardRef<ContextMenuTriggerElement, ContextMenuTriggerProps>(\n (props: ScopedProps<ContextMenuTriggerProps>, forwardedRef) => {\n const { __scopeContextMenu, disabled = false, ...triggerProps } = props;\n const context = useContextMenuContext(TRIGGER_NAME, __scopeContextMenu);\n const menuScope = useMenuScope(__scopeContextMenu);\n const [point, setPoint] = React.useState<Point>({ x: 0, y: 0 });\n\n // Re-create the virtual anchor whenever the pointer position changes so the\n // content re-anchors to the latest point when the menu is re-triggered while\n // already open (e.g. right-clicking in a new location, #2611).\n const virtualRef = React.useMemo(\n () => ({\n current: {\n getBoundingClientRect: () => DOMRect.fromRect({ width: 0, height: 0, ...point }),\n },\n }),\n [point],\n );\n const longPressTimerRef = React.useRef(0);\n const clearLongPress = React.useCallback(\n () => window.clearTimeout(longPressTimerRef.current),\n [],\n );\n const handleOpen = (event: React.MouseEvent | React.PointerEvent) => {\n context.hasInteractedRef.current = true;\n setPoint({ x: event.clientX, y: event.clientY });\n context.onOpenChange(true);\n };\n\n React.useEffect(() => clearLongPress, [clearLongPress]);\n React.useEffect(() => void (disabled && clearLongPress()), [disabled, clearLongPress]);\n\n return (\n <>\n <MenuPrimitive.Anchor {...menuScope} virtualRef={virtualRef} />\n <Primitive.span\n data-state={context.open ? 'open' : 'closed'}\n data-disabled={disabled ? '' : undefined}\n {...triggerProps}\n ref={forwardedRef}\n // prevent iOS context menu from appearing\n style={{ WebkitTouchCallout: 'none', ...props.style }}\n // if trigger is disabled, enable the native Context Menu\n onContextMenu={\n disabled\n ? props.onContextMenu\n : composeEventHandlers(props.onContextMenu, (event) => {\n // clearing the long press here because some platforms already support\n // long press to trigger a `contextmenu` event\n clearLongPress();\n handleOpen(event);\n event.preventDefault();\n })\n }\n onPointerDown={\n disabled\n ? props.onPointerDown\n : composeEventHandlers(\n props.onPointerDown,\n whenTouchOrPen((event) => {\n // clear the long press here in case there's multiple touch points\n clearLongPress();\n if (context.open) {\n context.onOpenChange(false);\n }\n longPressTimerRef.current = window.setTimeout(() => handleOpen(event), 700);\n }),\n )\n }\n onPointerMove={\n disabled\n ? props.onPointerMove\n : composeEventHandlers(props.onPointerMove, whenTouchOrPen(clearLongPress))\n }\n onPointerCancel={\n disabled\n ? props.onPointerCancel\n : composeEventHandlers(props.onPointerCancel, whenTouchOrPen(clearLongPress))\n }\n onPointerUp={\n disabled\n ? props.onPointerUp\n : composeEventHandlers(props.onPointerUp, whenTouchOrPen(clearLongPress))\n }\n />\n </>\n );\n },\n);\n\nContextMenuTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuPortal\n * -----------------------------------------------------------------------------------------------*/\n\nconst PORTAL_NAME = 'ContextMenuPortal';\n\ntype MenuPortalProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.Portal>;\ninterface ContextMenuPortalProps extends MenuPortalProps {}\n\nconst ContextMenuPortal: React.FC<ContextMenuPortalProps> = (\n props: ScopedProps<ContextMenuPortalProps>,\n) => {\n const { __scopeContextMenu, ...portalProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.Portal {...menuScope} {...portalProps} />;\n};\n\nContextMenuPortal.displayName = PORTAL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'ContextMenuContent';\n\ntype ContextMenuContentElement = React.ComponentRef<typeof MenuPrimitive.Content>;\ntype MenuContentProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.Content>;\ninterface ContextMenuContentProps extends Omit<\n MenuContentProps,\n 'onEntryFocus' | 'side' | 'sideOffset' | 'align'\n> {}\n\nconst ContextMenuContent = React.forwardRef<ContextMenuContentElement, ContextMenuContentProps>(\n (props: ScopedProps<ContextMenuContentProps>, forwardedRef) => {\n const { __scopeContextMenu, ...contentProps } = props;\n const context = useContextMenuContext(CONTENT_NAME, __scopeContextMenu);\n const menuScope = useMenuScope(__scopeContextMenu);\n const hasInteractedOutsideRef = React.useRef(false);\n\n return (\n <MenuPrimitive.Content\n {...menuScope}\n {...contentProps}\n ref={forwardedRef}\n side=\"right\"\n sideOffset={2}\n align=\"start\"\n onCloseAutoFocus={(event) => {\n props.onCloseAutoFocus?.(event);\n\n if (!event.defaultPrevented && hasInteractedOutsideRef.current) {\n event.preventDefault();\n }\n\n hasInteractedOutsideRef.current = false;\n }}\n onInteractOutside={(event) => {\n props.onInteractOutside?.(event);\n\n if (!event.defaultPrevented && !context.modal) hasInteractedOutsideRef.current = true;\n }}\n style={{\n ...props.style,\n // re-namespace exposed content custom properties\n ...{\n '--radix-context-menu-content-transform-origin': 'var(--radix-popper-transform-origin)',\n '--radix-context-menu-content-available-width': 'var(--radix-popper-available-width)',\n '--radix-context-menu-content-available-height': 'var(--radix-popper-available-height)',\n '--radix-context-menu-trigger-width': 'var(--radix-popper-anchor-width)',\n '--radix-context-menu-trigger-height': 'var(--radix-popper-anchor-height)',\n },\n }}\n />\n );\n },\n);\n\nContextMenuContent.displayName = CONTENT_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuGroup\n * -----------------------------------------------------------------------------------------------*/\n\nconst GROUP_NAME = 'ContextMenuGroup';\n\ntype ContextMenuGroupElement = React.ComponentRef<typeof MenuPrimitive.Group>;\ntype MenuGroupProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.Group>;\ninterface ContextMenuGroupProps extends MenuGroupProps {}\n\nconst ContextMenuGroup = React.forwardRef<ContextMenuGroupElement, ContextMenuGroupProps>(\n (props: ScopedProps<ContextMenuGroupProps>, forwardedRef) => {\n const { __scopeContextMenu, ...groupProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.Group {...menuScope} {...groupProps} ref={forwardedRef} />;\n },\n);\n\nContextMenuGroup.displayName = GROUP_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuLabel\n * -----------------------------------------------------------------------------------------------*/\n\nconst LABEL_NAME = 'ContextMenuLabel';\n\ntype ContextMenuLabelElement = React.ComponentRef<typeof MenuPrimitive.Label>;\ntype MenuLabelProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.Label>;\ninterface ContextMenuLabelProps extends MenuLabelProps {}\n\nconst ContextMenuLabel = React.forwardRef<ContextMenuLabelElement, ContextMenuLabelProps>(\n (props: ScopedProps<ContextMenuLabelProps>, forwardedRef) => {\n const { __scopeContextMenu, ...labelProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.Label {...menuScope} {...labelProps} ref={forwardedRef} />;\n },\n);\n\nContextMenuLabel.displayName = LABEL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst ITEM_NAME = 'ContextMenuItem';\n\ntype ContextMenuItemElement = React.ComponentRef<typeof MenuPrimitive.Item>;\ntype MenuItemProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.Item>;\ninterface ContextMenuItemProps extends MenuItemProps {}\n\nconst ContextMenuItem = React.forwardRef<ContextMenuItemElement, ContextMenuItemProps>(\n (props: ScopedProps<ContextMenuItemProps>, forwardedRef) => {\n const { __scopeContextMenu, ...itemProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.Item {...menuScope} {...itemProps} ref={forwardedRef} />;\n },\n);\n\nContextMenuItem.displayName = ITEM_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuCheckboxItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst CHECKBOX_ITEM_NAME = 'ContextMenuCheckboxItem';\n\ntype ContextMenuCheckboxItemElement = React.ComponentRef<typeof MenuPrimitive.CheckboxItem>;\ntype MenuCheckboxItemProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.CheckboxItem>;\ninterface ContextMenuCheckboxItemProps extends MenuCheckboxItemProps {}\n\nconst ContextMenuCheckboxItem = React.forwardRef<\n ContextMenuCheckboxItemElement,\n ContextMenuCheckboxItemProps\n>((props: ScopedProps<ContextMenuCheckboxItemProps>, forwardedRef) => {\n const { __scopeContextMenu, ...checkboxItemProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.CheckboxItem {...menuScope} {...checkboxItemProps} ref={forwardedRef} />;\n});\n\nContextMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuRadioGroup\n * -----------------------------------------------------------------------------------------------*/\n\nconst RADIO_GROUP_NAME = 'ContextMenuRadioGroup';\n\ntype ContextMenuRadioGroupElement = React.ComponentRef<typeof MenuPrimitive.RadioGroup>;\ntype MenuRadioGroupProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.RadioGroup>;\ninterface ContextMenuRadioGroupProps extends MenuRadioGroupProps {}\n\nconst ContextMenuRadioGroup = React.forwardRef<\n ContextMenuRadioGroupElement,\n ContextMenuRadioGroupProps\n>((props: ScopedProps<ContextMenuRadioGroupProps>, forwardedRef) => {\n const { __scopeContextMenu, ...radioGroupProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.RadioGroup {...menuScope} {...radioGroupProps} ref={forwardedRef} />;\n});\n\nContextMenuRadioGroup.displayName = RADIO_GROUP_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuRadioItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst RADIO_ITEM_NAME = 'ContextMenuRadioItem';\n\ntype ContextMenuRadioItemElement = React.ComponentRef<typeof MenuPrimitive.RadioItem>;\ntype MenuRadioItemProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.RadioItem>;\ninterface ContextMenuRadioItemProps extends MenuRadioItemProps {}\n\nconst ContextMenuRadioItem = React.forwardRef<\n ContextMenuRadioItemElement,\n ContextMenuRadioItemProps\n>((props: ScopedProps<ContextMenuRadioItemProps>, forwardedRef) => {\n const { __scopeContextMenu, ...radioItemProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.RadioItem {...menuScope} {...radioItemProps} ref={forwardedRef} />;\n});\n\nContextMenuRadioItem.displayName = RADIO_ITEM_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuItemIndicator\n * -----------------------------------------------------------------------------------------------*/\n\nconst INDICATOR_NAME = 'ContextMenuItemIndicator';\n\ntype ContextMenuItemIndicatorElement = React.ComponentRef<typeof MenuPrimitive.ItemIndicator>;\ntype MenuItemIndicatorProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.ItemIndicator>;\ninterface ContextMenuItemIndicatorProps extends MenuItemIndicatorProps {}\n\nconst ContextMenuItemIndicator = React.forwardRef<\n ContextMenuItemIndicatorElement,\n ContextMenuItemIndicatorProps\n>((props: ScopedProps<ContextMenuItemIndicatorProps>, forwardedRef) => {\n const { __scopeContextMenu, ...itemIndicatorProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.ItemIndicator {...menuScope} {...itemIndicatorProps} ref={forwardedRef} />;\n});\n\nContextMenuItemIndicator.displayName = INDICATOR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuSeparator\n * -----------------------------------------------------------------------------------------------*/\n\nconst SEPARATOR_NAME = 'ContextMenuSeparator';\n\ntype ContextMenuSeparatorElement = React.ComponentRef<typeof MenuPrimitive.Separator>;\ntype MenuSeparatorProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.Separator>;\ninterface ContextMenuSeparatorProps extends MenuSeparatorProps {}\n\nconst ContextMenuSeparator = React.forwardRef<\n ContextMenuSeparatorElement,\n ContextMenuSeparatorProps\n>((props: ScopedProps<ContextMenuSeparatorProps>, forwardedRef) => {\n const { __scopeContextMenu, ...separatorProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.Separator {...menuScope} {...separatorProps} ref={forwardedRef} />;\n});\n\nContextMenuSeparator.displayName = SEPARATOR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuArrow\n * -----------------------------------------------------------------------------------------------*/\n\nconst ARROW_NAME = 'ContextMenuArrow';\n\ntype ContextMenuArrowElement = React.ComponentRef<typeof MenuPrimitive.Arrow>;\ntype MenuArrowProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.Arrow>;\ninterface ContextMenuArrowProps extends MenuArrowProps {}\n\nconst ContextMenuArrow = React.forwardRef<ContextMenuArrowElement, ContextMenuArrowProps>(\n (props: ScopedProps<ContextMenuArrowProps>, forwardedRef) => {\n const { __scopeContextMenu, ...arrowProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.Arrow {...menuScope} {...arrowProps} ref={forwardedRef} />;\n },\n);\n\nContextMenuArrow.displayName = ARROW_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuSub\n * -----------------------------------------------------------------------------------------------*/\n\nconst SUB_NAME = 'ContextMenuSub';\n\ninterface ContextMenuSubProps {\n children?: React.ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?(open: boolean): void;\n}\n\nconst ContextMenuSub: React.FC<ContextMenuSubProps> = (props: ScopedProps<ContextMenuSubProps>) => {\n const { __scopeContextMenu, children, onOpenChange, open: openProp, defaultOpen } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: SUB_NAME,\n });\n\n return (\n <MenuPrimitive.Sub {...menuScope} open={open} onOpenChange={setOpen}>\n {children}\n </MenuPrimitive.Sub>\n );\n};\n\nContextMenuSub.displayName = SUB_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuSubTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst SUB_TRIGGER_NAME = 'ContextMenuSubTrigger';\n\ntype ContextMenuSubTriggerElement = React.ComponentRef<typeof MenuPrimitive.SubTrigger>;\ntype MenuSubTriggerProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.SubTrigger>;\ninterface ContextMenuSubTriggerProps extends MenuSubTriggerProps {}\n\nconst ContextMenuSubTrigger = React.forwardRef<\n ContextMenuSubTriggerElement,\n ContextMenuSubTriggerProps\n>((props: ScopedProps<ContextMenuSubTriggerProps>, forwardedRef) => {\n const { __scopeContextMenu, ...triggerItemProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.SubTrigger {...menuScope} {...triggerItemProps} ref={forwardedRef} />;\n});\n\nContextMenuSubTrigger.displayName = SUB_TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuSubContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst SUB_CONTENT_NAME = 'ContextMenuSubContent';\n\ntype ContextMenuSubContentElement = React.ComponentRef<typeof MenuPrimitive.Content>;\ntype MenuSubContentProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.SubContent>;\ninterface ContextMenuSubContentProps extends MenuSubContentProps {}\n\nconst ContextMenuSubContent = React.forwardRef<\n ContextMenuSubContentElement,\n ContextMenuSubContentProps\n>((props: ScopedProps<ContextMenuSubContentProps>, forwardedRef) => {\n const { __scopeContextMenu, ...subContentProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n\n return (\n <MenuPrimitive.SubContent\n {...menuScope}\n {...subContentProps}\n ref={forwardedRef}\n style={{\n ...props.style,\n // re-namespace exposed content custom properties\n ...{\n '--radix-context-menu-content-transform-origin': 'var(--radix-popper-transform-origin)',\n '--radix-context-menu-content-available-width': 'var(--radix-popper-available-width)',\n '--radix-context-menu-content-available-height': 'var(--radix-popper-available-height)',\n '--radix-context-menu-trigger-width': 'var(--radix-popper-anchor-width)',\n '--radix-context-menu-trigger-height': 'var(--radix-popper-anchor-height)',\n },\n }}\n />\n );\n});\n\nContextMenuSubContent.displayName = SUB_CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction whenTouchOrPen<E>(handler: React.PointerEventHandler<E>): React.PointerEventHandler<E> {\n return (event) => (event.pointerType !== 'mouse' ? handler(event) : undefined);\n}\n\nconst Root = ContextMenu;\nconst Trigger = ContextMenuTrigger;\nconst Portal = ContextMenuPortal;\nconst Content = ContextMenuContent;\nconst Group = ContextMenuGroup;\nconst Label = ContextMenuLabel;\nconst Item = ContextMenuItem;\nconst CheckboxItem = ContextMenuCheckboxItem;\nconst RadioGroup = ContextMenuRadioGroup;\nconst RadioItem = ContextMenuRadioItem;\nconst ItemIndicator = ContextMenuItemIndicator;\nconst Separator = ContextMenuSeparator;\nconst Arrow = ContextMenuArrow;\nconst Sub = ContextMenuSub;\nconst SubTrigger = ContextMenuSubTrigger;\nconst SubContent = ContextMenuSubContent;\n\nexport {\n createContextMenuScope,\n //\n ContextMenu,\n ContextMenuTrigger,\n ContextMenuPortal,\n ContextMenuContent,\n ContextMenuGroup,\n ContextMenuLabel,\n ContextMenuItem,\n ContextMenuCheckboxItem,\n ContextMenuRadioGroup,\n ContextMenuRadioItem,\n ContextMenuItemIndicator,\n ContextMenuSeparator,\n ContextMenuArrow,\n ContextMenuSub,\n ContextMenuSubTrigger,\n ContextMenuSubContent,\n //\n Root,\n Trigger,\n Portal,\n Content,\n Group,\n Label,\n Item,\n CheckboxItem,\n RadioGroup,\n RadioItem,\n ItemIndicator,\n Separator,\n Arrow,\n Sub,\n SubTrigger,\n SubContent,\n};\nexport type {\n ContextMenuProps,\n ContextMenuTriggerProps,\n ContextMenuPortalProps,\n ContextMenuContentProps,\n ContextMenuGroupProps,\n ContextMenuLabelProps,\n ContextMenuItemProps,\n ContextMenuCheckboxItemProps,\n ContextMenuRadioGroupProps,\n ContextMenuRadioItemProps,\n ContextMenuItemIndicatorProps,\n ContextMenuSeparatorProps,\n ContextMenuArrowProps,\n ContextMenuSubProps,\n ContextMenuSubTriggerProps,\n ContextMenuSubContentProps,\n};\n"],
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": ["Root", "Portal", "Content", "Group", "Label", "Item", "CheckboxItem", "RadioGroup", "RadioItem", "ItemIndicator", "Separator", "Arrow", "Sub", "SubTrigger", "SubContent"]
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nimport { IS_DEVELOPMENT } from '@radix-ui/primitive/is-development';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport * as MenuPrimitive from '@radix-ui/react-menu';\nimport { createMenuScope } from '@radix-ui/react-menu';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport type { Scope } from '@radix-ui/react-context';\n\ntype Direction = 'ltr' | 'rtl';\ntype Point = { x: number; y: number };\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenu\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTEXT_MENU_NAME = 'ContextMenu';\n\ntype ScopedProps<P> = P & { __scopeContextMenu?: Scope };\nconst [createContextMenuContext, createContextMenuScope] = createContextScope(CONTEXT_MENU_NAME, [\n createMenuScope,\n]);\nconst useMenuScope = createMenuScope();\n\ninterface ContextMenuContextValue {\n open: boolean;\n onOpenChange(open: boolean): void;\n modal: boolean;\n hasInteractedRef: React.RefObject<boolean>;\n}\n\nconst [ContextMenuProvider, useContextMenuContext] =\n createContextMenuContext<ContextMenuContextValue>(CONTEXT_MENU_NAME);\n\ninterface ContextMenuProps {\n children?: React.ReactNode;\n open?: boolean;\n onOpenChange?(open: boolean): void;\n dir?: Direction;\n modal?: boolean;\n}\n\nconst ContextMenu: React.FC<ContextMenuProps> = (props: ScopedProps<ContextMenuProps>) => {\n const { __scopeContextMenu, children, onOpenChange, open: openProp, dir, modal = true } = props;\n\n // OK to disable conditionally calling hooks here because they will always run\n // consistently in the same environment. Bundlers should be able to remove the\n // code block entirely in production.\n /* eslint-disable react-hooks/rules-of-hooks */\n const hasInteractedRef = React.useRef(false);\n if (IS_DEVELOPMENT) {\n const hasWarnedRef = React.useRef(false);\n React.useEffect(() => {\n if (openProp === true && !hasInteractedRef.current && !hasWarnedRef.current) {\n hasWarnedRef.current = true;\n // dev warning: open prop is controllable but its position has not been set\n // because the user has not interacted with the trigger. The controllable\n // state is only enabled so that the user can read or programatically close\n // the menu. Programatically opening the menu will anchor it to the most\n // recently interacted position.\n console.warn(\n 'ContextMenu: The `open` prop has been set to `true` before the user has interacted with the trigger, so its position is indeterminate. This is likely unintended and will result in the menu being anchored to the top-left corner of the viewport.',\n );\n }\n }, [openProp]);\n }\n /* eslint-enable react-hooks/rules-of-hooks */\n\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: false,\n onChange: onOpenChange,\n caller: CONTEXT_MENU_NAME,\n });\n\n const menuScope = useMenuScope(__scopeContextMenu);\n\n return (\n <ContextMenuProvider\n scope={__scopeContextMenu}\n open={open}\n onOpenChange={setOpen}\n modal={modal}\n hasInteractedRef={hasInteractedRef}\n >\n <MenuPrimitive.Root {...menuScope} dir={dir} open={open} onOpenChange={setOpen} modal={modal}>\n {children}\n </MenuPrimitive.Root>\n </ContextMenuProvider>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'ContextMenuTrigger';\n\ntype ContextMenuTriggerElement = React.ComponentRef<typeof Primitive.span>;\ntype PrimitiveSpanProps = React.ComponentPropsWithoutRef<typeof Primitive.span>;\ninterface ContextMenuTriggerProps extends PrimitiveSpanProps {\n disabled?: boolean;\n}\n\nconst ContextMenuTrigger = /* @__PURE__ */ React.forwardRef<\n ContextMenuTriggerElement,\n ContextMenuTriggerProps\n>(\n // blank line to reduce diff noise\n function ContextMenuTrigger(props: ScopedProps<ContextMenuTriggerProps>, forwardedRef) {\n const { __scopeContextMenu, disabled = false, ...triggerProps } = props;\n const context = useContextMenuContext(TRIGGER_NAME, __scopeContextMenu);\n const menuScope = useMenuScope(__scopeContextMenu);\n const [point, setPoint] = React.useState<Point>({ x: 0, y: 0 });\n\n // Re-create the virtual anchor whenever the pointer position changes so the\n // content re-anchors to the latest point when the menu is re-triggered while\n // already open (e.g. right-clicking in a new location, #2611).\n const virtualRef = React.useMemo(\n () => ({\n current: {\n getBoundingClientRect: () => DOMRect.fromRect({ width: 0, height: 0, ...point }),\n },\n }),\n [point],\n );\n const longPressTimerRef = React.useRef(0);\n const clearLongPress = React.useCallback(\n () => window.clearTimeout(longPressTimerRef.current),\n [],\n );\n const handleOpen = (event: React.MouseEvent | React.PointerEvent) => {\n context.hasInteractedRef.current = true;\n setPoint({ x: event.clientX, y: event.clientY });\n context.onOpenChange(true);\n };\n\n React.useEffect(() => clearLongPress, [clearLongPress]);\n React.useEffect(() => void (disabled && clearLongPress()), [disabled, clearLongPress]);\n\n return (\n <>\n <MenuPrimitive.Anchor {...menuScope} virtualRef={virtualRef} />\n <Primitive.span\n data-state={context.open ? 'open' : 'closed'}\n data-disabled={disabled ? '' : undefined}\n {...triggerProps}\n ref={forwardedRef}\n // prevent iOS context menu from appearing\n style={{ WebkitTouchCallout: 'none', ...props.style }}\n // if trigger is disabled, enable the native Context Menu\n onContextMenu={\n disabled\n ? props.onContextMenu\n : composeEventHandlers(props.onContextMenu, (event) => {\n // clearing the long press here because some platforms already support\n // long press to trigger a `contextmenu` event\n clearLongPress();\n handleOpen(event);\n event.preventDefault();\n })\n }\n onPointerDown={\n disabled\n ? props.onPointerDown\n : composeEventHandlers(\n props.onPointerDown,\n whenTouchOrPen((event) => {\n // clear the long press here in case there's multiple touch points\n clearLongPress();\n if (context.open) {\n context.onOpenChange(false);\n }\n longPressTimerRef.current = window.setTimeout(() => handleOpen(event), 700);\n }),\n )\n }\n onPointerMove={\n disabled\n ? props.onPointerMove\n : composeEventHandlers(props.onPointerMove, whenTouchOrPen(clearLongPress))\n }\n onPointerCancel={\n disabled\n ? props.onPointerCancel\n : composeEventHandlers(props.onPointerCancel, whenTouchOrPen(clearLongPress))\n }\n onPointerUp={\n disabled\n ? props.onPointerUp\n : composeEventHandlers(props.onPointerUp, whenTouchOrPen(clearLongPress))\n }\n />\n </>\n );\n },\n);\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuPortal\n * -----------------------------------------------------------------------------------------------*/\n\ntype MenuPortalProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.Portal>;\ninterface ContextMenuPortalProps extends MenuPortalProps {}\n\nconst ContextMenuPortal: React.FC<ContextMenuPortalProps> = (\n props: ScopedProps<ContextMenuPortalProps>,\n) => {\n const { __scopeContextMenu, ...portalProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.Portal {...menuScope} {...portalProps} />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'ContextMenuContent';\n\ntype ContextMenuContentElement = React.ComponentRef<typeof MenuPrimitive.Content>;\ntype MenuContentProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.Content>;\ninterface ContextMenuContentProps extends Omit<\n MenuContentProps,\n 'onEntryFocus' | 'side' | 'sideOffset' | 'align'\n> {}\n\nconst ContextMenuContent = /* @__PURE__ */ React.forwardRef<\n ContextMenuContentElement,\n ContextMenuContentProps\n>(\n // blank line to reduce diff noise\n function ContextMenuContent(props: ScopedProps<ContextMenuContentProps>, forwardedRef) {\n const { __scopeContextMenu, ...contentProps } = props;\n const context = useContextMenuContext(CONTENT_NAME, __scopeContextMenu);\n const menuScope = useMenuScope(__scopeContextMenu);\n const hasInteractedOutsideRef = React.useRef(false);\n\n return (\n <MenuPrimitive.Content\n {...menuScope}\n {...contentProps}\n ref={forwardedRef}\n side=\"right\"\n sideOffset={2}\n align=\"start\"\n onCloseAutoFocus={(event) => {\n props.onCloseAutoFocus?.(event);\n\n if (!event.defaultPrevented && hasInteractedOutsideRef.current) {\n event.preventDefault();\n }\n\n hasInteractedOutsideRef.current = false;\n }}\n onInteractOutside={(event) => {\n props.onInteractOutside?.(event);\n\n if (!event.defaultPrevented && !context.modal) hasInteractedOutsideRef.current = true;\n }}\n style={{\n ...props.style,\n // re-namespace exposed content custom properties\n ...{\n '--radix-context-menu-content-transform-origin': 'var(--radix-popper-transform-origin)',\n '--radix-context-menu-content-available-width': 'var(--radix-popper-available-width)',\n '--radix-context-menu-content-available-height': 'var(--radix-popper-available-height)',\n '--radix-context-menu-trigger-width': 'var(--radix-popper-anchor-width)',\n '--radix-context-menu-trigger-height': 'var(--radix-popper-anchor-height)',\n },\n }}\n />\n );\n },\n);\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuGroup\n * -----------------------------------------------------------------------------------------------*/\n\ntype ContextMenuGroupElement = React.ComponentRef<typeof MenuPrimitive.Group>;\ntype MenuGroupProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.Group>;\ninterface ContextMenuGroupProps extends MenuGroupProps {}\n\nconst ContextMenuGroup = /* @__PURE__ */ React.forwardRef<\n ContextMenuGroupElement,\n ContextMenuGroupProps\n>(\n // blank line to reduce diff noise\n function ContextMenuGroup(props: ScopedProps<ContextMenuGroupProps>, forwardedRef) {\n const { __scopeContextMenu, ...groupProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.Group {...menuScope} {...groupProps} ref={forwardedRef} />;\n },\n);\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuLabel\n * -----------------------------------------------------------------------------------------------*/\n\ntype ContextMenuLabelElement = React.ComponentRef<typeof MenuPrimitive.Label>;\ntype MenuLabelProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.Label>;\ninterface ContextMenuLabelProps extends MenuLabelProps {}\n\nconst ContextMenuLabel = /* @__PURE__ */ React.forwardRef<\n ContextMenuLabelElement,\n ContextMenuLabelProps\n>(\n // blank line to reduce diff noise\n function ContextMenuLabel(props: ScopedProps<ContextMenuLabelProps>, forwardedRef) {\n const { __scopeContextMenu, ...labelProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.Label {...menuScope} {...labelProps} ref={forwardedRef} />;\n },\n);\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuItem\n * -----------------------------------------------------------------------------------------------*/\n\ntype ContextMenuItemElement = React.ComponentRef<typeof MenuPrimitive.Item>;\ntype MenuItemProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.Item>;\ninterface ContextMenuItemProps extends MenuItemProps {}\n\nconst ContextMenuItem = /* @__PURE__ */ React.forwardRef<\n ContextMenuItemElement,\n ContextMenuItemProps\n>(\n // blank line to reduce diff noise\n function ContextMenuItem(props: ScopedProps<ContextMenuItemProps>, forwardedRef) {\n const { __scopeContextMenu, ...itemProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.Item {...menuScope} {...itemProps} ref={forwardedRef} />;\n },\n);\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuCheckboxItem\n * -----------------------------------------------------------------------------------------------*/\n\ntype ContextMenuCheckboxItemElement = React.ComponentRef<typeof MenuPrimitive.CheckboxItem>;\ntype MenuCheckboxItemProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.CheckboxItem>;\ninterface ContextMenuCheckboxItemProps extends MenuCheckboxItemProps {}\n\nconst ContextMenuCheckboxItem = /* @__PURE__ */ React.forwardRef<\n ContextMenuCheckboxItemElement,\n ContextMenuCheckboxItemProps\n>(function ContextMenuCheckboxItem(props: ScopedProps<ContextMenuCheckboxItemProps>, forwardedRef) {\n const { __scopeContextMenu, ...checkboxItemProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.CheckboxItem {...menuScope} {...checkboxItemProps} ref={forwardedRef} />;\n});\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuRadioGroup\n * -----------------------------------------------------------------------------------------------*/\n\ntype ContextMenuRadioGroupElement = React.ComponentRef<typeof MenuPrimitive.RadioGroup>;\ntype MenuRadioGroupProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.RadioGroup>;\ninterface ContextMenuRadioGroupProps extends MenuRadioGroupProps {}\n\nconst ContextMenuRadioGroup = /* @__PURE__ */ React.forwardRef<\n ContextMenuRadioGroupElement,\n ContextMenuRadioGroupProps\n>(function ContextMenuRadioGroup(props: ScopedProps<ContextMenuRadioGroupProps>, forwardedRef) {\n const { __scopeContextMenu, ...radioGroupProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.RadioGroup {...menuScope} {...radioGroupProps} ref={forwardedRef} />;\n});\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuRadioItem\n * -----------------------------------------------------------------------------------------------*/\n\ntype ContextMenuRadioItemElement = React.ComponentRef<typeof MenuPrimitive.RadioItem>;\ntype MenuRadioItemProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.RadioItem>;\ninterface ContextMenuRadioItemProps extends MenuRadioItemProps {}\n\nconst ContextMenuRadioItem = /* @__PURE__ */ React.forwardRef<\n ContextMenuRadioItemElement,\n ContextMenuRadioItemProps\n>(function ContextMenuRadioItem(props: ScopedProps<ContextMenuRadioItemProps>, forwardedRef) {\n const { __scopeContextMenu, ...radioItemProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.RadioItem {...menuScope} {...radioItemProps} ref={forwardedRef} />;\n});\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuItemIndicator\n * -----------------------------------------------------------------------------------------------*/\n\ntype ContextMenuItemIndicatorElement = React.ComponentRef<typeof MenuPrimitive.ItemIndicator>;\ntype MenuItemIndicatorProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.ItemIndicator>;\ninterface ContextMenuItemIndicatorProps extends MenuItemIndicatorProps {}\n\nconst ContextMenuItemIndicator = /* @__PURE__ */ React.forwardRef<\n ContextMenuItemIndicatorElement,\n ContextMenuItemIndicatorProps\n>(function ContextMenuItemIndicator(\n props: ScopedProps<ContextMenuItemIndicatorProps>,\n forwardedRef,\n) {\n const { __scopeContextMenu, ...itemIndicatorProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.ItemIndicator {...menuScope} {...itemIndicatorProps} ref={forwardedRef} />;\n});\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuSeparator\n * -----------------------------------------------------------------------------------------------*/\n\ntype ContextMenuSeparatorElement = React.ComponentRef<typeof MenuPrimitive.Separator>;\ntype MenuSeparatorProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.Separator>;\ninterface ContextMenuSeparatorProps extends MenuSeparatorProps {}\n\nconst ContextMenuSeparator = /* @__PURE__ */ React.forwardRef<\n ContextMenuSeparatorElement,\n ContextMenuSeparatorProps\n>(function ContextMenuSeparator(props: ScopedProps<ContextMenuSeparatorProps>, forwardedRef) {\n const { __scopeContextMenu, ...separatorProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.Separator {...menuScope} {...separatorProps} ref={forwardedRef} />;\n});\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuArrow\n * -----------------------------------------------------------------------------------------------*/\n\ntype ContextMenuArrowElement = React.ComponentRef<typeof MenuPrimitive.Arrow>;\ntype MenuArrowProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.Arrow>;\ninterface ContextMenuArrowProps extends MenuArrowProps {}\n\nconst ContextMenuArrow = /* @__PURE__ */ React.forwardRef<\n ContextMenuArrowElement,\n ContextMenuArrowProps\n>(\n // blank line to reduce diff noise\n function ContextMenuArrow(props: ScopedProps<ContextMenuArrowProps>, forwardedRef) {\n const { __scopeContextMenu, ...arrowProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.Arrow {...menuScope} {...arrowProps} ref={forwardedRef} />;\n },\n);\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuSub\n * -----------------------------------------------------------------------------------------------*/\n\nconst SUB_NAME = 'ContextMenuSub';\n\ninterface ContextMenuSubProps {\n children?: React.ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?(open: boolean): void;\n}\n\nconst ContextMenuSub: React.FC<ContextMenuSubProps> = (props: ScopedProps<ContextMenuSubProps>) => {\n const { __scopeContextMenu, children, onOpenChange, open: openProp, defaultOpen } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: SUB_NAME,\n });\n\n return (\n <MenuPrimitive.Sub {...menuScope} open={open} onOpenChange={setOpen}>\n {children}\n </MenuPrimitive.Sub>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuSubTrigger\n * -----------------------------------------------------------------------------------------------*/\n\ntype ContextMenuSubTriggerElement = React.ComponentRef<typeof MenuPrimitive.SubTrigger>;\ntype MenuSubTriggerProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.SubTrigger>;\ninterface ContextMenuSubTriggerProps extends MenuSubTriggerProps {}\n\nconst ContextMenuSubTrigger = /* @__PURE__ */ React.forwardRef<\n ContextMenuSubTriggerElement,\n ContextMenuSubTriggerProps\n>(function ContextMenuSubTrigger(props: ScopedProps<ContextMenuSubTriggerProps>, forwardedRef) {\n const { __scopeContextMenu, ...triggerItemProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.SubTrigger {...menuScope} {...triggerItemProps} ref={forwardedRef} />;\n});\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuSubContent\n * -----------------------------------------------------------------------------------------------*/\n\ntype ContextMenuSubContentElement = React.ComponentRef<typeof MenuPrimitive.Content>;\ntype MenuSubContentProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.SubContent>;\ninterface ContextMenuSubContentProps extends MenuSubContentProps {}\n\nconst ContextMenuSubContent = /* @__PURE__ */ React.forwardRef<\n ContextMenuSubContentElement,\n ContextMenuSubContentProps\n>(function ContextMenuSubContent(props: ScopedProps<ContextMenuSubContentProps>, forwardedRef) {\n const { __scopeContextMenu, ...subContentProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n\n return (\n <MenuPrimitive.SubContent\n {...menuScope}\n {...subContentProps}\n ref={forwardedRef}\n style={{\n ...props.style,\n // re-namespace exposed content custom properties\n ...{\n '--radix-context-menu-content-transform-origin': 'var(--radix-popper-transform-origin)',\n '--radix-context-menu-content-available-width': 'var(--radix-popper-available-width)',\n '--radix-context-menu-content-available-height': 'var(--radix-popper-available-height)',\n '--radix-context-menu-trigger-width': 'var(--radix-popper-anchor-width)',\n '--radix-context-menu-trigger-height': 'var(--radix-popper-anchor-height)',\n },\n }}\n />\n );\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction whenTouchOrPen<E>(handler: React.PointerEventHandler<E>): React.PointerEventHandler<E> {\n return (event) => (event.pointerType !== 'mouse' ? handler(event) : undefined);\n}\n\nconst Root = ContextMenu;\nconst Trigger = ContextMenuTrigger;\nconst Portal = ContextMenuPortal;\nconst Content = ContextMenuContent;\nconst Group = ContextMenuGroup;\nconst Label = ContextMenuLabel;\nconst Item = ContextMenuItem;\nconst CheckboxItem = ContextMenuCheckboxItem;\nconst RadioGroup = ContextMenuRadioGroup;\nconst RadioItem = ContextMenuRadioItem;\nconst ItemIndicator = ContextMenuItemIndicator;\nconst Separator = ContextMenuSeparator;\nconst Arrow = ContextMenuArrow;\nconst Sub = ContextMenuSub;\nconst SubTrigger = ContextMenuSubTrigger;\nconst SubContent = ContextMenuSubContent;\n\nexport {\n createContextMenuScope,\n //\n ContextMenu,\n ContextMenuTrigger,\n ContextMenuPortal,\n ContextMenuContent,\n ContextMenuGroup,\n ContextMenuLabel,\n ContextMenuItem,\n ContextMenuCheckboxItem,\n ContextMenuRadioGroup,\n ContextMenuRadioItem,\n ContextMenuItemIndicator,\n ContextMenuSeparator,\n ContextMenuArrow,\n ContextMenuSub,\n ContextMenuSubTrigger,\n ContextMenuSubContent,\n //\n Root,\n Trigger,\n Portal,\n Content,\n Group,\n Label,\n Item,\n CheckboxItem,\n RadioGroup,\n RadioItem,\n ItemIndicator,\n Separator,\n Arrow,\n Sub,\n SubTrigger,\n SubContent,\n};\nexport type {\n ContextMenuProps,\n ContextMenuTriggerProps,\n ContextMenuPortalProps,\n ContextMenuContentProps,\n ContextMenuGroupProps,\n ContextMenuLabelProps,\n ContextMenuItemProps,\n ContextMenuCheckboxItemProps,\n ContextMenuRadioGroupProps,\n ContextMenuRadioItemProps,\n ContextMenuItemIndicatorProps,\n ContextMenuSeparatorProps,\n ContextMenuArrowProps,\n ContextMenuSubProps,\n ContextMenuSubTriggerProps,\n ContextMenuSubContentProps,\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["ContextMenuTrigger", "ContextMenuContent", "ContextMenuGroup", "ContextMenuLabel", "ContextMenuItem", "ContextMenuCheckboxItem", "ContextMenuRadioGroup", "ContextMenuRadioItem", "ContextMenuItemIndicator", "ContextMenuSeparator", "ContextMenuArrow", "ContextMenuSubTrigger", "ContextMenuSubContent", "Root", "Portal", "Content", "Group", "Label", "Item", "CheckboxItem", "RadioGroup", "RadioItem", "ItemIndicator", "Separator", "Arrow", "Sub", "SubTrigger", "SubContent"]
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@radix-ui/react-context-menu",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.4-rc.1784074599772",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"source": "./src/index.ts",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -11,11 +11,11 @@
|
|
|
11
11
|
],
|
|
12
12
|
"sideEffects": false,
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"@radix-ui/primitive": "1.1.
|
|
14
|
+
"@radix-ui/primitive": "1.1.6-rc.1784074599772",
|
|
15
15
|
"@radix-ui/react-context": "1.2.0",
|
|
16
|
-
"@radix-ui/react-menu": "2.1.
|
|
16
|
+
"@radix-ui/react-menu": "2.1.21-rc.1784074599772",
|
|
17
17
|
"@radix-ui/react-primitive": "2.1.7",
|
|
18
|
-
"@radix-ui/react-use-controllable-state": "1.2.
|
|
18
|
+
"@radix-ui/react-use-controllable-state": "1.2.4-rc.1784074599772"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
21
|
"@types/react": "^19.2.2",
|
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
"react": "^19.2.0",
|
|
24
24
|
"react-dom": "^19.2.0",
|
|
25
25
|
"typescript": "^5.9.3",
|
|
26
|
-
"@repo/
|
|
27
|
-
"@repo/
|
|
28
|
-
"@repo/
|
|
26
|
+
"@repo/typescript-config": "0.0.0",
|
|
27
|
+
"@repo/builder": "0.0.1-rc.1784074599772",
|
|
28
|
+
"@repo/test-data": "0.0.0"
|
|
29
29
|
},
|
|
30
30
|
"peerDependencies": {
|
|
31
31
|
"@types/react": "*",
|