@hanzogui/context-menu 3.0.2 → 7.3.0

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.
Files changed (34) hide show
  1. package/dist/cjs/ContextMenu.cjs +142 -139
  2. package/dist/cjs/ContextMenu.native.js +172 -170
  3. package/dist/cjs/ContextMenu.native.js.map +1 -1
  4. package/dist/cjs/createNonNativeContextMenu.cjs +370 -344
  5. package/dist/cjs/createNonNativeContextMenu.native.js +391 -364
  6. package/dist/cjs/createNonNativeContextMenu.native.js.map +1 -1
  7. package/dist/cjs/index.cjs +24 -22
  8. package/dist/cjs/index.native.js +26 -24
  9. package/dist/cjs/index.native.js.map +1 -1
  10. package/dist/esm/ContextMenu.mjs +114 -113
  11. package/dist/esm/ContextMenu.mjs.map +1 -1
  12. package/dist/esm/ContextMenu.native.js +141 -141
  13. package/dist/esm/ContextMenu.native.js.map +1 -1
  14. package/dist/esm/createNonNativeContextMenu.mjs +340 -316
  15. package/dist/esm/createNonNativeContextMenu.mjs.map +1 -1
  16. package/dist/esm/createNonNativeContextMenu.native.js +361 -336
  17. package/dist/esm/createNonNativeContextMenu.native.js.map +1 -1
  18. package/dist/jsx/ContextMenu.mjs +114 -113
  19. package/dist/jsx/ContextMenu.mjs.map +1 -1
  20. package/dist/jsx/ContextMenu.native.js +172 -170
  21. package/dist/jsx/ContextMenu.native.js.map +1 -1
  22. package/dist/jsx/createNonNativeContextMenu.mjs +340 -316
  23. package/dist/jsx/createNonNativeContextMenu.mjs.map +1 -1
  24. package/dist/jsx/createNonNativeContextMenu.native.js +391 -364
  25. package/dist/jsx/createNonNativeContextMenu.native.js.map +1 -1
  26. package/dist/jsx/index.native.js +26 -24
  27. package/dist/jsx/index.native.js.map +1 -1
  28. package/package.json +14 -12
  29. package/types/ContextMenu.d.ts +59 -59
  30. package/types/ContextMenu.d.ts.map +1 -0
  31. package/types/createNonNativeContextMenu.d.ts +53 -53
  32. package/types/createNonNativeContextMenu.d.ts.map +1 -0
  33. package/types/index.d.ts +59 -59
  34. package/types/index.d.ts.map +1 -0
@@ -2,396 +2,422 @@ var __create = Object.create;
2
2
  var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf,
6
- __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
7
  var __export = (target, all) => {
8
- for (var name in all) __defProp(target, name, {
9
- get: all[name],
10
- enumerable: !0
11
- });
12
- },
13
- __copyProps = (to, from, except, desc) => {
14
- if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
15
16
  get: () => from[key],
16
17
  enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
17
18
  });
18
- return to;
19
- };
19
+ }
20
+ return to;
21
+ };
20
22
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
26
- value: mod,
27
- enumerable: !0
28
- }) : target, mod)),
29
- __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
30
- value: !0
31
- }), mod);
23
+ // If the importer is in node compatibility mode or this is not an ESM
24
+ // file that has been converted to a CommonJS file using a Babel-
25
+ // compatible transform (i.e. "__esModule" has not been set), then set
26
+ // "default" to the CommonJS "module.exports" for node compatibility.
27
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
28
+ value: mod,
29
+ enumerable: true
30
+ }) : target, mod));
31
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
32
+ value: true
33
+ }), mod);
32
34
  var createNonNativeContextMenu_exports = {};
33
35
  __export(createNonNativeContextMenu_exports, {
34
36
  CONTEXTMENU_CONTEXT: () => CONTEXTMENU_CONTEXT,
35
37
  createNonNativeContextMenu: () => createNonNativeContextMenu
36
38
  });
37
39
  module.exports = __toCommonJS(createNonNativeContextMenu_exports);
38
- var import_gui_create_menu = require("@hanzogui/create-menu"),
39
- import_gui_use_controllable_state = require("@hanzogui/use-controllable-state"),
40
- import_gui_web = require("@hanzogui/web"),
41
- import_react = __toESM(require("react"), 1),
42
- import_jsx_runtime = require("react/jsx-runtime");
40
+ var import_create_menu = require("@hanzogui/create-menu");
41
+ var import_use_controllable_state = require("@hanzogui/use-controllable-state");
42
+ var import_web = require("@hanzogui/web");
43
+ var import_react = __toESM(require("react"), 1);
44
+ var import_jsx_runtime = require("react/jsx-runtime");
43
45
  const CONTEXTMENU_CONTEXT = "ContextMenuContext";
44
46
  function createNonNativeContextMenu(params) {
45
47
  const {
46
- Menu
47
- } = (0, import_gui_create_menu.createBaseMenu)(params),
48
- CONTEXT_MENU_NAME = "ContextMenu",
49
- {
50
- Provider: ContextMenuProvider,
51
- useStyledContext: useContextMenuContext
52
- } = (0, import_gui_web.createStyledContext)(),
53
- ContextMenuComp = props => {
54
- const {
55
- scope,
56
- children,
57
- onOpenChange,
58
- dir,
59
- modal = !0,
60
- ...rest
61
- } = props,
62
- [open, setOpen] = import_react.default.useState(!1),
63
- triggerRef = import_react.default.useRef(null),
64
- handleOpenChange = import_react.default.useCallback((open2, event) => {
65
- onOpenChange?.(open2, event), !event?.defaultPrevented && setOpen(open2);
66
- }, [onOpenChange]);
67
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(ContextMenuProvider, {
68
- scope,
69
- triggerId: (0, import_react.useId)(),
70
- triggerRef,
71
- contentId: (0, import_react.useId)(),
48
+ Menu
49
+ } = (0, import_create_menu.createBaseMenu)(params);
50
+ const CONTEXT_MENU_NAME = "ContextMenu";
51
+ const {
52
+ Provider: ContextMenuProvider,
53
+ useStyledContext: useContextMenuContext
54
+ } = (0, import_web.createStyledContext)();
55
+ const ContextMenuComp = props => {
56
+ const {
57
+ scope,
58
+ children,
59
+ onOpenChange,
60
+ dir,
61
+ modal = true,
62
+ ...rest
63
+ } = props;
64
+ const [open, setOpen] = import_react.default.useState(false);
65
+ const triggerRef = import_react.default.useRef(null);
66
+ const handleOpenChange = import_react.default.useCallback((open2, event) => {
67
+ onOpenChange?.(open2, event);
68
+ if (event?.defaultPrevented) return;
69
+ setOpen(open2);
70
+ }, [onOpenChange]);
71
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(ContextMenuProvider, {
72
+ scope,
73
+ triggerId: (0, import_react.useId)(),
74
+ triggerRef,
75
+ contentId: (0, import_react.useId)(),
76
+ open,
77
+ onOpenChange: handleOpenChange,
78
+ modal,
79
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(Menu, {
80
+ scope: scope || CONTEXTMENU_CONTEXT,
81
+ dir,
72
82
  open,
73
83
  onOpenChange: handleOpenChange,
74
84
  modal,
75
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(Menu, {
76
- scope: scope || CONTEXTMENU_CONTEXT,
77
- dir,
78
- open,
79
- onOpenChange: handleOpenChange,
80
- modal,
81
- ...rest,
82
- children
83
- })
84
- });
85
- };
85
+ ...rest,
86
+ children
87
+ })
88
+ });
89
+ };
86
90
  ContextMenuComp.displayName = CONTEXT_MENU_NAME;
87
- const TRIGGER_NAME = "ContextMenuTrigger",
88
- ContextMenuTrigger = import_gui_web.View.styleable((props, forwardedRef) => {
89
- const {
90
- scope,
91
- style,
92
- disabled = !1,
93
- asChild,
94
- children,
95
- ...triggerProps
96
- } = props,
97
- context = useContextMenuContext(scope),
98
- pointRef = import_react.default.useRef({
99
- x: 0,
100
- y: 0
101
- }),
102
- virtualRef = import_react.default.useMemo(() => ({
103
- current: {
104
- getBoundingClientRect: () => {
105
- if (import_gui_web.isWeb) {
106
- const scrollX = window.scrollX || document.documentElement.scrollLeft,
107
- scrollY = window.scrollY || document.documentElement.scrollTop;
108
- return DOMRect.fromRect({
109
- width: 0,
110
- height: 0,
111
- x: pointRef.current.x - scrollX,
112
- y: pointRef.current.y - scrollY
113
- });
114
- }
115
- return {
116
- width: 0,
117
- height: 0,
118
- top: 0,
119
- left: 0,
120
- ...pointRef.current
121
- };
122
- },
123
- ...(!import_gui_web.isWeb && {
124
- measure: c => c(pointRef.current.x, pointRef.current.y, 0, 0),
125
- measureInWindow: c => c(pointRef.current.x, pointRef.current.y, 0, 0)
126
- })
91
+ const TRIGGER_NAME = "ContextMenuTrigger";
92
+ const ContextMenuTrigger = import_web.View.styleable((props, forwardedRef) => {
93
+ const {
94
+ scope,
95
+ style,
96
+ disabled = false,
97
+ asChild,
98
+ children,
99
+ ...triggerProps
100
+ } = props;
101
+ const context = useContextMenuContext(scope);
102
+ const pointRef = import_react.default.useRef({
103
+ x: 0,
104
+ y: 0
105
+ });
106
+ const virtualRef = import_react.default.useMemo(() => ({
107
+ current: {
108
+ getBoundingClientRect: () => {
109
+ if (import_web.isWeb) {
110
+ const scrollX = window.scrollX || document.documentElement.scrollLeft;
111
+ const scrollY = window.scrollY || document.documentElement.scrollTop;
112
+ return DOMRect.fromRect({
113
+ width: 0,
114
+ height: 0,
115
+ x: pointRef.current.x - scrollX,
116
+ y: pointRef.current.y - scrollY
117
+ });
127
118
  }
128
- }), [pointRef.current.x, pointRef.current.y]),
129
- longPressTimerRef = import_react.default.useRef(0),
130
- clearLongPress = import_react.default.useCallback(() => window.clearTimeout(longPressTimerRef.current), []),
131
- createOpenChangeEvent = () => {
132
- let defaultPrevented = !1;
133
119
  return {
134
- get defaultPrevented() {
135
- return defaultPrevented;
136
- },
137
- preventDefault() {
138
- defaultPrevented = !0;
139
- }
120
+ width: 0,
121
+ height: 0,
122
+ top: 0,
123
+ left: 0,
124
+ ...pointRef.current
140
125
  };
141
126
  },
142
- handleOpen = event => {
143
- import_gui_web.isWeb && (event instanceof MouseEvent || event instanceof PointerEvent) ? pointRef.current = {
144
- x: event.clientX,
145
- y: event.clientY
146
- } : pointRef.current = {
147
- x: event.nativeEvent.pageX,
148
- y: event.nativeEvent.pageY
149
- };
150
- const openChangeEvent = createOpenChangeEvent();
151
- return context.onOpenChange(!0, openChangeEvent), openChangeEvent;
127
+ ...(!import_web.isWeb && {
128
+ measure: c => c(pointRef.current.x, pointRef.current.y, 0, 0),
129
+ measureInWindow: c => c(pointRef.current.x, pointRef.current.y, 0, 0)
130
+ })
131
+ }
132
+ }), [pointRef.current.x, pointRef.current.y]);
133
+ const longPressTimerRef = import_react.default.useRef(0);
134
+ const clearLongPress = import_react.default.useCallback(() => window.clearTimeout(longPressTimerRef.current), []);
135
+ const createOpenChangeEvent = () => {
136
+ let defaultPrevented = false;
137
+ return {
138
+ get defaultPrevented() {
139
+ return defaultPrevented;
140
+ },
141
+ preventDefault() {
142
+ defaultPrevented = true;
143
+ }
144
+ };
145
+ };
146
+ const handleOpen = event => {
147
+ if (import_web.isWeb && (event instanceof MouseEvent || event instanceof PointerEvent)) {
148
+ pointRef.current = {
149
+ x: event.clientX,
150
+ y: event.clientY
152
151
  };
153
- import_react.default.useEffect(() => clearLongPress, [clearLongPress]), import_react.default.useEffect(() => {
154
- disabled && clearLongPress();
155
- }, [disabled, clearLongPress]);
156
- const Comp = asChild ? import_gui_web.Slot : import_gui_web.View;
157
- return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
158
- children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(Menu.Anchor, {
159
- scope: scope || CONTEXTMENU_CONTEXT,
160
- virtualRef
161
- }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(Comp, {
162
- render: "span",
163
- componentName: TRIGGER_NAME,
164
- id: context.triggerId,
165
- "data-state": context.open ? "open" : "closed",
166
- "data-disabled": disabled ? "" : void 0,
167
- ...triggerProps,
168
- ref: (0, import_gui_web.composeRefs)(forwardedRef, context.triggerRef),
169
- style: import_gui_web.isWeb ? {
170
- WebkitTouchCallout: "none",
171
- ...style
172
- } : null,
173
- ...(import_gui_web.isWeb && {
174
- onContextMenu: disabled ? props.onContextMenu : (0, import_gui_web.composeEventHandlers)(props.onContextMenu, event => {
175
- clearLongPress(), handleOpen(event).defaultPrevented || event.preventDefault();
176
- }),
177
- onPointerDown: disabled ? props.onPointerDown : (0, import_gui_web.composeEventHandlers)(props.onPointerDown, event => {
178
- event.pointerType !== "mouse" && (clearLongPress(), longPressTimerRef.current = window.setTimeout(() => handleOpen(event), 700));
179
- }),
180
- onPointerMove: disabled ? props.onPointerMove : (0, import_gui_web.composeEventHandlers)(props.onPointerMove, event => {
181
- event.pointerType !== "mouse" && clearLongPress();
182
- }),
183
- onPointerCancel: disabled ? props.onPointerCancel : (0, import_gui_web.composeEventHandlers)(props.onPointerCancel, event => {
184
- event.pointerType !== "mouse" && clearLongPress();
185
- }),
186
- onPointerUp: disabled ? props.onPointerUp : (0, import_gui_web.composeEventHandlers)(props.onPointerUp, event => {
187
- event.pointerType !== "mouse" && clearLongPress();
188
- })
152
+ } else {
153
+ pointRef.current = {
154
+ x: event.nativeEvent.pageX,
155
+ y: event.nativeEvent.pageY
156
+ };
157
+ }
158
+ const openChangeEvent = createOpenChangeEvent();
159
+ context.onOpenChange(true, openChangeEvent);
160
+ return openChangeEvent;
161
+ };
162
+ import_react.default.useEffect(() => clearLongPress, [clearLongPress]);
163
+ import_react.default.useEffect(() => void (disabled && clearLongPress()), [disabled, clearLongPress]);
164
+ const Comp = asChild ? import_web.Slot : import_web.View;
165
+ return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
166
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(Menu.Anchor, {
167
+ scope: scope || CONTEXTMENU_CONTEXT,
168
+ virtualRef
169
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(Comp, {
170
+ render: "span",
171
+ componentName: TRIGGER_NAME,
172
+ id: context.triggerId,
173
+ "data-state": context.open ? "open" : "closed",
174
+ "data-disabled": disabled ? "" : void 0,
175
+ ...triggerProps,
176
+ ref: (0, import_web.composeRefs)(forwardedRef, context.triggerRef),
177
+ style: import_web.isWeb ? {
178
+ WebkitTouchCallout: "none",
179
+ ...style
180
+ } : null,
181
+ ...(import_web.isWeb && {
182
+ onContextMenu: disabled ? props.onContextMenu : (0, import_web.composeEventHandlers)(props.onContextMenu, event => {
183
+ clearLongPress();
184
+ const openChangeEvent = handleOpen(event);
185
+ if (!openChangeEvent.defaultPrevented) {
186
+ event.preventDefault();
187
+ }
188
+ }),
189
+ onPointerDown: disabled ? props.onPointerDown : (0, import_web.composeEventHandlers)(props.onPointerDown, event => {
190
+ if (event.pointerType === "mouse") return;
191
+ clearLongPress();
192
+ longPressTimerRef.current = window.setTimeout(() => handleOpen(event), 700);
193
+ }),
194
+ onPointerMove: disabled ? props.onPointerMove : (0, import_web.composeEventHandlers)(props.onPointerMove, event => {
195
+ if (event.pointerType === "mouse") return;
196
+ clearLongPress();
189
197
  }),
190
- ...(!import_gui_web.isWeb && {
191
- onLongPress: disabled ? props.onLongPress : (0, import_gui_web.composeEventHandlers)(props.onLongPress, event => {
192
- clearLongPress(), handleOpen(event).defaultPrevented || event.preventDefault();
193
- })
198
+ onPointerCancel: disabled ? props.onPointerCancel : (0, import_web.composeEventHandlers)(props.onPointerCancel, event => {
199
+ if (event.pointerType === "mouse") return;
200
+ clearLongPress();
194
201
  }),
195
- children
196
- })]
197
- });
202
+ onPointerUp: disabled ? props.onPointerUp : (0, import_web.composeEventHandlers)(props.onPointerUp, event => {
203
+ if (event.pointerType === "mouse") return;
204
+ clearLongPress();
205
+ })
206
+ }),
207
+ ...(!import_web.isWeb && {
208
+ onLongPress: disabled ? props.onLongPress : (0, import_web.composeEventHandlers)(props.onLongPress, event => {
209
+ clearLongPress();
210
+ const openChangeEvent = handleOpen(event);
211
+ if (!openChangeEvent.defaultPrevented) {
212
+ event.preventDefault();
213
+ }
214
+ })
215
+ }),
216
+ children
217
+ })]
198
218
  });
219
+ });
199
220
  ContextMenuTrigger.displayName = TRIGGER_NAME;
200
- const PORTAL_NAME = "ContextMenuPortal",
201
- ContextMenuPortal = props => {
202
- const {
203
- scope,
204
- children,
205
- ...portalProps
206
- } = props,
207
- context = import_gui_web.isAndroid ? useContextMenuContext(scope) : null,
208
- content = import_gui_web.isAndroid ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(ContextMenuProvider, {
209
- ...context,
210
- children
211
- }) : children;
212
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(Menu.Portal, {
213
- scope: scope || CONTEXTMENU_CONTEXT,
214
- ...portalProps,
215
- children: content
216
- });
217
- };
221
+ const PORTAL_NAME = "ContextMenuPortal";
222
+ const ContextMenuPortal = props => {
223
+ const {
224
+ scope,
225
+ children,
226
+ ...portalProps
227
+ } = props;
228
+ const context = import_web.isAndroid ? useContextMenuContext(scope) : null;
229
+ const content = import_web.isAndroid ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(ContextMenuProvider, {
230
+ ...context,
231
+ children
232
+ }) : children;
233
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(Menu.Portal, {
234
+ scope: scope || CONTEXTMENU_CONTEXT,
235
+ ...portalProps,
236
+ children: content
237
+ });
238
+ };
218
239
  ContextMenuPortal.displayName = PORTAL_NAME;
219
- const CONTENT_NAME = "ContextMenuContent",
220
- ContextMenuContent = import_react.default.forwardRef((props, forwardedRef) => {
221
- const {
222
- scope,
223
- ...contentProps
224
- } = props,
225
- context = useContextMenuContext(scope),
226
- hasInteractedOutsideRef = import_react.default.useRef(!1);
227
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(Menu.Content, {
228
- id: context.contentId,
229
- "aria-labelledby": context.triggerId,
230
- scope: scope || CONTEXTMENU_CONTEXT,
231
- ...contentProps,
232
- ref: forwardedRef,
233
- onCloseAutoFocus: (0, import_gui_web.composeEventHandlers)(props.onCloseAutoFocus, event => {
234
- hasInteractedOutsideRef.current || context.triggerRef.current?.focus(), hasInteractedOutsideRef.current = !1, event.preventDefault();
235
- }),
236
- onInteractOutside: (0, import_gui_web.composeEventHandlers)(props.onInteractOutside, event => {
237
- const originalEvent = event.detail.originalEvent,
238
- ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === !0,
239
- isRightClick = originalEvent.button === 2 || ctrlLeftClick;
240
- (!context.modal || isRightClick) && (hasInteractedOutsideRef.current = !0);
241
- })
242
- });
240
+ const CONTENT_NAME = "ContextMenuContent";
241
+ const ContextMenuContent = import_react.default.forwardRef((props, forwardedRef) => {
242
+ const {
243
+ scope,
244
+ ...contentProps
245
+ } = props;
246
+ const context = useContextMenuContext(scope);
247
+ const hasInteractedOutsideRef = import_react.default.useRef(false);
248
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(Menu.Content, {
249
+ id: context.contentId,
250
+ "aria-labelledby": context.triggerId,
251
+ scope: scope || CONTEXTMENU_CONTEXT,
252
+ ...contentProps,
253
+ ref: forwardedRef,
254
+ onCloseAutoFocus: (0, import_web.composeEventHandlers)(props.onCloseAutoFocus, event => {
255
+ if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();
256
+ hasInteractedOutsideRef.current = false;
257
+ event.preventDefault();
258
+ }),
259
+ onInteractOutside: (0, import_web.composeEventHandlers)(props.onInteractOutside, event => {
260
+ const originalEvent = event.detail.originalEvent;
261
+ const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;
262
+ const isRightClick = originalEvent.button === 2 || ctrlLeftClick;
263
+ if (!context.modal || isRightClick) hasInteractedOutsideRef.current = true;
264
+ })
243
265
  });
266
+ });
244
267
  ContextMenuContent.displayName = CONTENT_NAME;
245
- const ITEM_NAME = "ContextMenuItem",
246
- ContextMenuItem = import_react.default.forwardRef((props, forwardedRef) => {
247
- const {
248
- scope,
249
- ...itemProps
250
- } = props;
251
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(Menu.Item, {
252
- componentName: ITEM_NAME,
253
- scope: scope || CONTEXTMENU_CONTEXT,
254
- ...itemProps,
255
- ref: forwardedRef
256
- });
268
+ const ITEM_NAME = "ContextMenuItem";
269
+ const ContextMenuItem = import_react.default.forwardRef((props, forwardedRef) => {
270
+ const {
271
+ scope,
272
+ ...itemProps
273
+ } = props;
274
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(Menu.Item, {
275
+ componentName: ITEM_NAME,
276
+ scope: scope || CONTEXTMENU_CONTEXT,
277
+ ...itemProps,
278
+ ref: forwardedRef
257
279
  });
280
+ });
258
281
  ContextMenuItem.displayName = ITEM_NAME;
259
- const CHECKBOX_ITEM_NAME = "ContextMenuCheckboxItem",
260
- ContextMenuCheckboxItem = import_react.default.forwardRef((props, forwardedRef) => {
261
- const {
262
- scope,
263
- ...checkboxItemProps
264
- } = props;
265
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(Menu.CheckboxItem, {
266
- componentName: CHECKBOX_ITEM_NAME,
267
- scope: scope || CONTEXTMENU_CONTEXT,
268
- ...checkboxItemProps,
269
- ref: forwardedRef
270
- });
282
+ const CHECKBOX_ITEM_NAME = "ContextMenuCheckboxItem";
283
+ const ContextMenuCheckboxItem = import_react.default.forwardRef((props, forwardedRef) => {
284
+ const {
285
+ scope,
286
+ ...checkboxItemProps
287
+ } = props;
288
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(Menu.CheckboxItem, {
289
+ componentName: CHECKBOX_ITEM_NAME,
290
+ scope: scope || CONTEXTMENU_CONTEXT,
291
+ ...checkboxItemProps,
292
+ ref: forwardedRef
271
293
  });
294
+ });
272
295
  ContextMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;
273
- const RADIO_GROUP_NAME = "ContextMenuRadioGroup",
274
- ContextMenuRadioGroup = import_react.default.forwardRef((props, forwardedRef) => {
275
- const {
276
- scope,
277
- ...radioGroupProps
278
- } = props;
279
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(Menu.RadioGroup, {
280
- scope: scope || CONTEXTMENU_CONTEXT,
281
- ...radioGroupProps,
282
- ref: forwardedRef
283
- });
296
+ const RADIO_GROUP_NAME = "ContextMenuRadioGroup";
297
+ const ContextMenuRadioGroup = import_react.default.forwardRef((props, forwardedRef) => {
298
+ const {
299
+ scope,
300
+ ...radioGroupProps
301
+ } = props;
302
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(Menu.RadioGroup, {
303
+ scope: scope || CONTEXTMENU_CONTEXT,
304
+ ...radioGroupProps,
305
+ ref: forwardedRef
284
306
  });
307
+ });
285
308
  ContextMenuRadioGroup.displayName = RADIO_GROUP_NAME;
286
- const RADIO_ITEM_NAME = "ContextMenuRadioItem",
287
- ContextMenuRadioItem = import_react.default.forwardRef((props, forwardedRef) => {
288
- const {
289
- scope,
290
- ...radioItemProps
291
- } = props;
292
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(Menu.RadioItem, {
293
- componentName: RADIO_ITEM_NAME,
294
- scope: scope || CONTEXTMENU_CONTEXT,
295
- ...radioItemProps,
296
- ref: forwardedRef
297
- });
309
+ const RADIO_ITEM_NAME = "ContextMenuRadioItem";
310
+ const ContextMenuRadioItem = import_react.default.forwardRef((props, forwardedRef) => {
311
+ const {
312
+ scope,
313
+ ...radioItemProps
314
+ } = props;
315
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(Menu.RadioItem, {
316
+ componentName: RADIO_ITEM_NAME,
317
+ scope: scope || CONTEXTMENU_CONTEXT,
318
+ ...radioItemProps,
319
+ ref: forwardedRef
298
320
  });
321
+ });
299
322
  ContextMenuRadioItem.displayName = RADIO_ITEM_NAME;
300
- const INDICATOR_NAME = "ContextMenuItemIndicator",
301
- ContextMenuItemIndicator = Menu.ItemIndicator.styleable((props, forwardedRef) => {
302
- const {
303
- scope,
304
- ...itemIndicatorProps
305
- } = props;
306
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(Menu.ItemIndicator, {
307
- componentName: INDICATOR_NAME,
308
- scope: scope || CONTEXTMENU_CONTEXT,
309
- ...itemIndicatorProps,
310
- ref: forwardedRef
311
- });
323
+ const INDICATOR_NAME = "ContextMenuItemIndicator";
324
+ const ContextMenuItemIndicator = Menu.ItemIndicator.styleable((props, forwardedRef) => {
325
+ const {
326
+ scope,
327
+ ...itemIndicatorProps
328
+ } = props;
329
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(Menu.ItemIndicator, {
330
+ componentName: INDICATOR_NAME,
331
+ scope: scope || CONTEXTMENU_CONTEXT,
332
+ ...itemIndicatorProps,
333
+ ref: forwardedRef
312
334
  });
335
+ });
313
336
  ContextMenuItemIndicator.displayName = INDICATOR_NAME;
314
- const SUB_NAME = "ContextMenuSub",
315
- ContextMenuSub = props => {
316
- const {
317
- scope,
318
- children,
319
- onOpenChange,
320
- open: openProp,
321
- defaultOpen,
322
- ...rest
323
- } = props,
324
- [open, setOpen] = (0, import_gui_use_controllable_state.useControllableState)({
325
- prop: openProp,
326
- defaultProp: defaultOpen,
327
- onChange: onOpenChange
328
- });
329
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(Menu.Sub, {
330
- scope: scope || CONTEXTMENU_CONTEXT,
331
- open,
332
- onOpenChange: setOpen,
333
- ...rest,
334
- children
335
- });
336
- };
337
+ const SUB_NAME = "ContextMenuSub";
338
+ const ContextMenuSub = props => {
339
+ const {
340
+ scope,
341
+ children,
342
+ onOpenChange,
343
+ open: openProp,
344
+ defaultOpen,
345
+ ...rest
346
+ } = props;
347
+ const [open, setOpen] = (0, import_use_controllable_state.useControllableState)({
348
+ prop: openProp,
349
+ defaultProp: defaultOpen,
350
+ onChange: onOpenChange
351
+ });
352
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(Menu.Sub, {
353
+ scope: scope || CONTEXTMENU_CONTEXT,
354
+ open,
355
+ onOpenChange: setOpen,
356
+ ...rest,
357
+ children
358
+ });
359
+ };
337
360
  ContextMenuSub.displayName = SUB_NAME;
338
- const SUB_TRIGGER_NAME = "ContextMenuSubTrigger",
339
- ContextMenuSubTrigger = import_gui_web.View.styleable((props, forwardedRef) => {
340
- const {
341
- scope,
342
- ...subTriggerProps
343
- } = props;
344
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(Menu.SubTrigger, {
345
- componentName: SUB_TRIGGER_NAME,
346
- scope: scope || CONTEXTMENU_CONTEXT,
347
- ...subTriggerProps,
348
- ref: forwardedRef
349
- });
361
+ const SUB_TRIGGER_NAME = "ContextMenuSubTrigger";
362
+ const ContextMenuSubTrigger = import_web.View.styleable((props, forwardedRef) => {
363
+ const {
364
+ scope,
365
+ ...subTriggerProps
366
+ } = props;
367
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(Menu.SubTrigger, {
368
+ componentName: SUB_TRIGGER_NAME,
369
+ scope: scope || CONTEXTMENU_CONTEXT,
370
+ ...subTriggerProps,
371
+ ref: forwardedRef
350
372
  });
373
+ });
351
374
  ContextMenuSubTrigger.displayName = SUB_TRIGGER_NAME;
352
- const SUB_CONTENT_NAME = "ContextMenuSubContent",
353
- ContextMenuSubContent = import_react.default.forwardRef((props, forwardedRef) => {
354
- const {
355
- scope,
356
- ...subContentProps
357
- } = props;
358
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(Menu.SubContent, {
359
- scope: scope || CONTEXTMENU_CONTEXT,
360
- ...subContentProps,
361
- ref: forwardedRef,
362
- style: import_gui_web.isWeb ? {
363
- ...props.style,
364
- "--tamagui-context-menu-content-transform-origin": "var(--tamagui-popper-transform-origin)",
365
- "--tamagui-context-menu-content-available-width": "var(--tamagui-popper-available-width)",
366
- "--tamagui-context-menu-content-available-height": "var(--tamagui-popper-available-height)",
367
- "--tamagui-context-menu-trigger-width": "var(--tamagui-popper-anchor-width)",
368
- "--tamagui-context-menu-trigger-height": "var(--tamagui-popper-anchor-height)"
369
- } : null
370
- });
375
+ const SUB_CONTENT_NAME = "ContextMenuSubContent";
376
+ const ContextMenuSubContent = import_react.default.forwardRef((props, forwardedRef) => {
377
+ const {
378
+ scope,
379
+ ...subContentProps
380
+ } = props;
381
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(Menu.SubContent, {
382
+ scope: scope || CONTEXTMENU_CONTEXT,
383
+ ...subContentProps,
384
+ ref: forwardedRef,
385
+ style: import_web.isWeb ? {
386
+ ...props.style,
387
+ ...{
388
+ "--gui-context-menu-content-transform-origin": "var(--gui-popper-transform-origin)",
389
+ "--gui-context-menu-content-available-width": "var(--gui-popper-available-width)",
390
+ "--gui-context-menu-content-available-height": "var(--gui-popper-available-height)",
391
+ "--gui-context-menu-trigger-width": "var(--gui-popper-anchor-width)",
392
+ "--gui-context-menu-trigger-height": "var(--gui-popper-anchor-height)"
393
+ }
394
+ } : null
371
395
  });
396
+ });
372
397
  ContextMenuSubContent.displayName = SUB_CONTENT_NAME;
373
- const ARROW_NAME = "ContextMenuArrow",
374
- ContextMenuArrow = import_react.default.forwardRef((props, forwardedRef) => {
375
- const {
376
- scope,
377
- ...arrowProps
378
- } = props;
379
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(Menu.Arrow, {
380
- componentName: ARROW_NAME,
381
- scope: scope || CONTEXTMENU_CONTEXT,
382
- ...arrowProps,
383
- ref: forwardedRef
384
- });
398
+ const ARROW_NAME = "ContextMenuArrow";
399
+ const ContextMenuArrow = import_react.default.forwardRef((props, forwardedRef) => {
400
+ const {
401
+ scope,
402
+ ...arrowProps
403
+ } = props;
404
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(Menu.Arrow, {
405
+ componentName: ARROW_NAME,
406
+ scope: scope || CONTEXTMENU_CONTEXT,
407
+ ...arrowProps,
408
+ ref: forwardedRef
385
409
  });
410
+ });
386
411
  ContextMenuArrow.displayName = ARROW_NAME;
387
- const ContextMenuGroup = Menu.Group,
388
- ContextMenuLabel = Menu.Label,
389
- ContextMenuSeparator = Menu.Separator,
390
- ContextMenuItemTitle = Menu.ItemTitle,
391
- ContextMenuItemSubTitle = Menu.ItemSubtitle,
392
- ContextMenuItemImage = Menu.ItemImage,
393
- ContextMenuItemIcon = Menu.ItemIcon;
394
- return (0, import_gui_web.withStaticProperties)(ContextMenuComp, {
412
+ const ContextMenuGroup = Menu.Group;
413
+ const ContextMenuLabel = Menu.Label;
414
+ const ContextMenuSeparator = Menu.Separator;
415
+ const ContextMenuItemTitle = Menu.ItemTitle;
416
+ const ContextMenuItemSubTitle = Menu.ItemSubtitle;
417
+ const ContextMenuItemImage = Menu.ItemImage;
418
+ const ContextMenuItemIcon = Menu.ItemIcon;
419
+ const ContextMenuPreview = () => null;
420
+ return (0, import_web.withStaticProperties)(ContextMenuComp, {
395
421
  Root: ContextMenuComp,
396
422
  Trigger: ContextMenuTrigger,
397
423
  Portal: ContextMenuPortal,
@@ -412,6 +438,6 @@ function createNonNativeContextMenu(params) {
412
438
  ItemSubtitle: ContextMenuItemSubTitle,
413
439
  ItemIcon: ContextMenuItemIcon,
414
440
  ItemImage: ContextMenuItemImage,
415
- Preview: () => null
441
+ Preview: ContextMenuPreview
416
442
  });
417
443
  }