@tamagui/context-menu 2.0.0-1

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