@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.
- package/dist/cjs/ContextMenu.cjs +182 -0
- package/dist/cjs/ContextMenu.js +145 -0
- package/dist/cjs/ContextMenu.js.map +6 -0
- package/dist/cjs/ContextMenu.native.js +191 -0
- package/dist/cjs/ContextMenu.native.js.map +1 -0
- package/dist/cjs/createNonNativeContextMenu.cjs +394 -0
- package/dist/cjs/createNonNativeContextMenu.js +318 -0
- package/dist/cjs/createNonNativeContextMenu.js.map +6 -0
- package/dist/cjs/createNonNativeContextMenu.native.js +420 -0
- package/dist/cjs/createNonNativeContextMenu.native.js.map +1 -0
- package/dist/cjs/index.cjs +39 -0
- package/dist/cjs/index.js +32 -0
- package/dist/cjs/index.js.map +6 -0
- package/dist/cjs/index.native.js +42 -0
- package/dist/cjs/index.native.js.map +1 -0
- package/dist/esm/ContextMenu.js +127 -0
- package/dist/esm/ContextMenu.js.map +6 -0
- package/dist/esm/ContextMenu.mjs +148 -0
- package/dist/esm/ContextMenu.mjs.map +1 -0
- package/dist/esm/ContextMenu.native.js +154 -0
- package/dist/esm/ContextMenu.native.js.map +1 -0
- package/dist/esm/createNonNativeContextMenu.js +307 -0
- package/dist/esm/createNonNativeContextMenu.js.map +6 -0
- package/dist/esm/createNonNativeContextMenu.mjs +359 -0
- package/dist/esm/createNonNativeContextMenu.mjs.map +1 -0
- package/dist/esm/createNonNativeContextMenu.native.js +382 -0
- package/dist/esm/createNonNativeContextMenu.native.js.map +1 -0
- package/dist/esm/index.js +18 -0
- package/dist/esm/index.js.map +6 -0
- package/dist/esm/index.mjs +16 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/index.native.js +16 -0
- package/dist/esm/index.native.js.map +1 -0
- package/dist/jsx/ContextMenu.js +127 -0
- package/dist/jsx/ContextMenu.js.map +6 -0
- package/dist/jsx/ContextMenu.mjs +148 -0
- package/dist/jsx/ContextMenu.mjs.map +1 -0
- package/dist/jsx/ContextMenu.native.js +191 -0
- package/dist/jsx/ContextMenu.native.js.map +1 -0
- package/dist/jsx/createNonNativeContextMenu.js +307 -0
- package/dist/jsx/createNonNativeContextMenu.js.map +6 -0
- package/dist/jsx/createNonNativeContextMenu.mjs +359 -0
- package/dist/jsx/createNonNativeContextMenu.mjs.map +1 -0
- package/dist/jsx/createNonNativeContextMenu.native.js +420 -0
- package/dist/jsx/createNonNativeContextMenu.native.js.map +1 -0
- package/dist/jsx/index.js +18 -0
- package/dist/jsx/index.js.map +6 -0
- package/dist/jsx/index.mjs +16 -0
- package/dist/jsx/index.mjs.map +1 -0
- package/dist/jsx/index.native.js +42 -0
- package/dist/jsx/index.native.js.map +1 -0
- package/package.json +56 -0
- package/src/ContextMenu.tsx +187 -0
- package/src/createNonNativeContextMenu.tsx +607 -0
- package/src/index.tsx +17 -0
- package/types/ContextMenu.d.ts +98 -0
- package/types/ContextMenu.d.ts.map +1 -0
- package/types/createNonNativeContextMenu.d.ts +123 -0
- package/types/createNonNativeContextMenu.d.ts.map +1 -0
- package/types/index.d.ts +96 -0
- package/types/index.d.ts.map +1 -0
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
CreateBaseMenuProps,
|
|
3
|
+
NativeMenuItemIconProps,
|
|
4
|
+
NativeMenuSubTriggerProps,
|
|
5
|
+
} from '@tamagui/create-menu'
|
|
6
|
+
import { createNativeMenu, withNativeMenu } from '@tamagui/create-menu'
|
|
7
|
+
import { withStaticProperties } from '@tamagui/web'
|
|
8
|
+
import React from 'react'
|
|
9
|
+
|
|
10
|
+
import {
|
|
11
|
+
CONTEXTMENU_CONTEXT,
|
|
12
|
+
type ContextMenuItemIconProps,
|
|
13
|
+
type ContextMenuSubTriggerProps,
|
|
14
|
+
createNonNativeContextMenu,
|
|
15
|
+
} from './createNonNativeContextMenu'
|
|
16
|
+
|
|
17
|
+
const COMMON_PARAMS = {
|
|
18
|
+
isRoot: false,
|
|
19
|
+
scope: CONTEXTMENU_CONTEXT,
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export function createContextMenu(param: CreateBaseMenuProps) {
|
|
23
|
+
const { Menu: NativeMenuRoot } = createNativeMenu('ContextMenu')
|
|
24
|
+
const NonNativeContextMenu = createNonNativeContextMenu(param)
|
|
25
|
+
|
|
26
|
+
const ContextMenuComp = withNativeMenu({
|
|
27
|
+
...COMMON_PARAMS,
|
|
28
|
+
Component: NonNativeContextMenu.Root,
|
|
29
|
+
NativeComponent: NativeMenuRoot,
|
|
30
|
+
isRoot: true,
|
|
31
|
+
})
|
|
32
|
+
|
|
33
|
+
const Trigger = withNativeMenu({
|
|
34
|
+
...COMMON_PARAMS,
|
|
35
|
+
Component: NonNativeContextMenu.Trigger,
|
|
36
|
+
NativeComponent: NativeMenuRoot.Trigger,
|
|
37
|
+
})
|
|
38
|
+
const Portal = withNativeMenu({
|
|
39
|
+
...COMMON_PARAMS,
|
|
40
|
+
Component: NonNativeContextMenu.Portal,
|
|
41
|
+
NativeComponent: React.Fragment,
|
|
42
|
+
})
|
|
43
|
+
const Content = withNativeMenu({
|
|
44
|
+
...COMMON_PARAMS,
|
|
45
|
+
Component: NonNativeContextMenu.Content,
|
|
46
|
+
NativeComponent: NativeMenuRoot.Content,
|
|
47
|
+
})
|
|
48
|
+
const Preview = withNativeMenu({
|
|
49
|
+
...COMMON_PARAMS,
|
|
50
|
+
Component: NonNativeContextMenu.Preview,
|
|
51
|
+
NativeComponent: NativeMenuRoot.Preview,
|
|
52
|
+
})
|
|
53
|
+
const Group = withNativeMenu({
|
|
54
|
+
...COMMON_PARAMS,
|
|
55
|
+
Component: NonNativeContextMenu.Group,
|
|
56
|
+
NativeComponent: NativeMenuRoot.Group,
|
|
57
|
+
})
|
|
58
|
+
const Label = withNativeMenu({
|
|
59
|
+
...COMMON_PARAMS,
|
|
60
|
+
Component: NonNativeContextMenu.Label,
|
|
61
|
+
NativeComponent: NativeMenuRoot.Label,
|
|
62
|
+
})
|
|
63
|
+
const Item = withNativeMenu({
|
|
64
|
+
...COMMON_PARAMS,
|
|
65
|
+
Component: NonNativeContextMenu.Item,
|
|
66
|
+
NativeComponent: NativeMenuRoot.Item,
|
|
67
|
+
})
|
|
68
|
+
const ItemTitle = withNativeMenu({
|
|
69
|
+
...COMMON_PARAMS,
|
|
70
|
+
Component: NonNativeContextMenu.ItemTitle,
|
|
71
|
+
NativeComponent: NativeMenuRoot.ItemTitle,
|
|
72
|
+
})
|
|
73
|
+
const ItemSubtitle = withNativeMenu({
|
|
74
|
+
...COMMON_PARAMS,
|
|
75
|
+
Component: NonNativeContextMenu.ItemSubtitle,
|
|
76
|
+
NativeComponent: NativeMenuRoot.ItemSubtitle,
|
|
77
|
+
})
|
|
78
|
+
|
|
79
|
+
const ItemIcon = withNativeMenu({
|
|
80
|
+
...COMMON_PARAMS,
|
|
81
|
+
Component: NonNativeContextMenu.ItemIcon,
|
|
82
|
+
NativeComponent: NativeMenuRoot.ItemIcon,
|
|
83
|
+
})
|
|
84
|
+
|
|
85
|
+
const ItemImage = withNativeMenu({
|
|
86
|
+
...COMMON_PARAMS,
|
|
87
|
+
Component: NonNativeContextMenu.ItemImage,
|
|
88
|
+
NativeComponent: NativeMenuRoot.ItemImage,
|
|
89
|
+
})
|
|
90
|
+
|
|
91
|
+
const CheckboxItem = withNativeMenu({
|
|
92
|
+
...COMMON_PARAMS,
|
|
93
|
+
Component: NonNativeContextMenu.CheckboxItem,
|
|
94
|
+
NativeComponent: NativeMenuRoot.CheckboxItem,
|
|
95
|
+
})
|
|
96
|
+
const RadioGroup = withNativeMenu({
|
|
97
|
+
...COMMON_PARAMS,
|
|
98
|
+
Component: NonNativeContextMenu.RadioGroup,
|
|
99
|
+
NativeComponent: () => null,
|
|
100
|
+
})
|
|
101
|
+
const RadioItem = withNativeMenu({
|
|
102
|
+
...COMMON_PARAMS,
|
|
103
|
+
Component: NonNativeContextMenu.RadioItem,
|
|
104
|
+
NativeComponent: ({ children }) => children,
|
|
105
|
+
})
|
|
106
|
+
const ItemIndicator = withNativeMenu({
|
|
107
|
+
...COMMON_PARAMS,
|
|
108
|
+
Component: NonNativeContextMenu.ItemIndicator,
|
|
109
|
+
NativeComponent: NativeMenuRoot.ItemIndicator,
|
|
110
|
+
})
|
|
111
|
+
const Separator = withNativeMenu({
|
|
112
|
+
...COMMON_PARAMS,
|
|
113
|
+
Component: NonNativeContextMenu.Separator,
|
|
114
|
+
NativeComponent: NativeMenuRoot.Separator,
|
|
115
|
+
})
|
|
116
|
+
const Arrow = withNativeMenu({
|
|
117
|
+
...COMMON_PARAMS,
|
|
118
|
+
Component: NonNativeContextMenu.Arrow,
|
|
119
|
+
NativeComponent: NativeMenuRoot.Arrow,
|
|
120
|
+
})
|
|
121
|
+
const Sub = withNativeMenu({
|
|
122
|
+
...COMMON_PARAMS,
|
|
123
|
+
Component: NonNativeContextMenu.Sub,
|
|
124
|
+
NativeComponent: NativeMenuRoot.Sub,
|
|
125
|
+
})
|
|
126
|
+
const SubTrigger = withNativeMenu({
|
|
127
|
+
...COMMON_PARAMS,
|
|
128
|
+
Component: NonNativeContextMenu.SubTrigger,
|
|
129
|
+
NativeComponent: NativeMenuRoot.SubTrigger,
|
|
130
|
+
})
|
|
131
|
+
const SubContent = withNativeMenu({
|
|
132
|
+
...COMMON_PARAMS,
|
|
133
|
+
Component: NonNativeContextMenu.SubContent,
|
|
134
|
+
NativeComponent: NativeMenuRoot.SubContent,
|
|
135
|
+
})
|
|
136
|
+
|
|
137
|
+
type ContextMenuCombinedSubTriggerProps = ContextMenuSubTriggerProps &
|
|
138
|
+
NativeMenuSubTriggerProps
|
|
139
|
+
|
|
140
|
+
type ContextMenuCombinedItemIconProps = ContextMenuItemIconProps &
|
|
141
|
+
NativeMenuItemIconProps
|
|
142
|
+
|
|
143
|
+
const ContextMenu = withStaticProperties(ContextMenuComp, {
|
|
144
|
+
Trigger,
|
|
145
|
+
Portal,
|
|
146
|
+
Content,
|
|
147
|
+
Group,
|
|
148
|
+
Label,
|
|
149
|
+
Item,
|
|
150
|
+
CheckboxItem,
|
|
151
|
+
RadioGroup,
|
|
152
|
+
RadioItem,
|
|
153
|
+
ItemIndicator,
|
|
154
|
+
Separator,
|
|
155
|
+
Arrow,
|
|
156
|
+
Sub,
|
|
157
|
+
// cast to React.FC to avoid TS error
|
|
158
|
+
SubTrigger: SubTrigger as React.FC<ContextMenuCombinedSubTriggerProps>,
|
|
159
|
+
SubContent,
|
|
160
|
+
ItemTitle,
|
|
161
|
+
ItemSubtitle,
|
|
162
|
+
// cast to React.FC to avoid TS error
|
|
163
|
+
ItemIcon: ItemIcon as React.FC<ContextMenuCombinedItemIconProps>,
|
|
164
|
+
ItemImage,
|
|
165
|
+
Preview,
|
|
166
|
+
})
|
|
167
|
+
return ContextMenu
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
export type {
|
|
171
|
+
ContextMenuArrowProps,
|
|
172
|
+
ContextMenuCheckboxItemProps,
|
|
173
|
+
ContextMenuContentProps,
|
|
174
|
+
ContextMenuGroupProps,
|
|
175
|
+
ContextMenuItemIconProps,
|
|
176
|
+
ContextMenuItemImageProps,
|
|
177
|
+
ContextMenuItemIndicatorProps,
|
|
178
|
+
ContextMenuItemProps,
|
|
179
|
+
ContextMenuProps,
|
|
180
|
+
ContextMenuRadioGroupProps,
|
|
181
|
+
ContextMenuRadioItemProps,
|
|
182
|
+
ContextMenuSeparatorProps,
|
|
183
|
+
ContextMenuSubContentProps,
|
|
184
|
+
ContextMenuSubProps,
|
|
185
|
+
ContextMenuSubTriggerProps,
|
|
186
|
+
ContextMenuTriggerProps,
|
|
187
|
+
} from './createNonNativeContextMenu'
|