@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,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'