@tamagui/create-menu 1.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/LICENSE +21 -0
- package/dist/cjs/MenuPredefined.cjs +189 -0
- package/dist/cjs/MenuPredefined.js +168 -0
- package/dist/cjs/MenuPredefined.js.map +6 -0
- package/dist/cjs/MenuPredefined.native.js +192 -0
- package/dist/cjs/MenuPredefined.native.js.map +1 -0
- package/dist/cjs/createBaseMenu.cjs +1147 -0
- package/dist/cjs/createBaseMenu.js +884 -0
- package/dist/cjs/createBaseMenu.js.map +6 -0
- package/dist/cjs/createBaseMenu.native.js +1346 -0
- package/dist/cjs/createBaseMenu.native.js.map +1 -0
- package/dist/cjs/createNativeMenu/createNativeMenu.cjs +242 -0
- package/dist/cjs/createNativeMenu/createNativeMenu.js +184 -0
- package/dist/cjs/createNativeMenu/createNativeMenu.js.map +6 -0
- package/dist/cjs/createNativeMenu/createNativeMenu.native.js +307 -0
- package/dist/cjs/createNativeMenu/createNativeMenu.native.js.map +1 -0
- package/dist/cjs/createNativeMenu/createNativeMenuTypes.cjs +16 -0
- package/dist/cjs/createNativeMenu/createNativeMenuTypes.js +14 -0
- package/dist/cjs/createNativeMenu/createNativeMenuTypes.js.map +6 -0
- package/dist/cjs/createNativeMenu/createNativeMenuTypes.native.js +19 -0
- package/dist/cjs/createNativeMenu/createNativeMenuTypes.native.js.map +1 -0
- package/dist/cjs/createNativeMenu/utils.cjs +68 -0
- package/dist/cjs/createNativeMenu/utils.js +66 -0
- package/dist/cjs/createNativeMenu/utils.js.map +6 -0
- package/dist/cjs/createNativeMenu/utils.native.js +94 -0
- package/dist/cjs/createNativeMenu/utils.native.js.map +1 -0
- package/dist/cjs/createNativeMenu/withNativeMenu.cjs +37 -0
- package/dist/cjs/createNativeMenu/withNativeMenu.js +30 -0
- package/dist/cjs/createNativeMenu/withNativeMenu.js.map +6 -0
- package/dist/cjs/createNativeMenu/withNativeMenu.native.js +43 -0
- package/dist/cjs/createNativeMenu/withNativeMenu.native.js.map +1 -0
- package/dist/cjs/index.cjs +30 -0
- package/dist/cjs/index.js +24 -0
- package/dist/cjs/index.js.map +6 -0
- package/dist/cjs/index.native.js +33 -0
- package/dist/cjs/index.native.js.map +1 -0
- package/dist/esm/MenuPredefined.js +154 -0
- package/dist/esm/MenuPredefined.js.map +6 -0
- package/dist/esm/MenuPredefined.mjs +166 -0
- package/dist/esm/MenuPredefined.mjs.map +1 -0
- package/dist/esm/MenuPredefined.native.js +166 -0
- package/dist/esm/MenuPredefined.native.js.map +1 -0
- package/dist/esm/createBaseMenu.js +892 -0
- package/dist/esm/createBaseMenu.js.map +6 -0
- package/dist/esm/createBaseMenu.mjs +1113 -0
- package/dist/esm/createBaseMenu.mjs.map +1 -0
- package/dist/esm/createBaseMenu.native.js +1309 -0
- package/dist/esm/createBaseMenu.native.js.map +1 -0
- package/dist/esm/createNativeMenu/createNativeMenu.js +163 -0
- package/dist/esm/createNativeMenu/createNativeMenu.js.map +6 -0
- package/dist/esm/createNativeMenu/createNativeMenu.mjs +208 -0
- package/dist/esm/createNativeMenu/createNativeMenu.mjs.map +1 -0
- package/dist/esm/createNativeMenu/createNativeMenu.native.js +270 -0
- package/dist/esm/createNativeMenu/createNativeMenu.native.js.map +1 -0
- package/dist/esm/createNativeMenu/createNativeMenuTypes.js +1 -0
- package/dist/esm/createNativeMenu/createNativeMenuTypes.js.map +6 -0
- package/dist/esm/createNativeMenu/createNativeMenuTypes.mjs +2 -0
- package/dist/esm/createNativeMenu/createNativeMenuTypes.mjs.map +1 -0
- package/dist/esm/createNativeMenu/createNativeMenuTypes.native.js +2 -0
- package/dist/esm/createNativeMenu/createNativeMenuTypes.native.js.map +1 -0
- package/dist/esm/createNativeMenu/utils.js +47 -0
- package/dist/esm/createNativeMenu/utils.js.map +6 -0
- package/dist/esm/createNativeMenu/utils.mjs +29 -0
- package/dist/esm/createNativeMenu/utils.mjs.map +1 -0
- package/dist/esm/createNativeMenu/utils.native.js +52 -0
- package/dist/esm/createNativeMenu/utils.native.js.map +1 -0
- package/dist/esm/createNativeMenu/withNativeMenu.js +15 -0
- package/dist/esm/createNativeMenu/withNativeMenu.js.map +6 -0
- package/dist/esm/createNativeMenu/withNativeMenu.mjs +14 -0
- package/dist/esm/createNativeMenu/withNativeMenu.mjs.map +1 -0
- package/dist/esm/createNativeMenu/withNativeMenu.native.js +17 -0
- package/dist/esm/createNativeMenu/withNativeMenu.native.js.map +1 -0
- package/dist/esm/index.js +8 -0
- package/dist/esm/index.js.map +6 -0
- package/dist/esm/index.mjs +6 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/index.native.js +6 -0
- package/dist/esm/index.native.js.map +1 -0
- package/dist/jsx/MenuPredefined.js +154 -0
- package/dist/jsx/MenuPredefined.js.map +6 -0
- package/dist/jsx/MenuPredefined.mjs +166 -0
- package/dist/jsx/MenuPredefined.mjs.map +1 -0
- package/dist/jsx/MenuPredefined.native.js +192 -0
- package/dist/jsx/MenuPredefined.native.js.map +1 -0
- package/dist/jsx/createBaseMenu.js +892 -0
- package/dist/jsx/createBaseMenu.js.map +6 -0
- package/dist/jsx/createBaseMenu.mjs +1113 -0
- package/dist/jsx/createBaseMenu.mjs.map +1 -0
- package/dist/jsx/createBaseMenu.native.js +1346 -0
- package/dist/jsx/createBaseMenu.native.js.map +1 -0
- package/dist/jsx/createNativeMenu/createNativeMenu.js +163 -0
- package/dist/jsx/createNativeMenu/createNativeMenu.js.map +6 -0
- package/dist/jsx/createNativeMenu/createNativeMenu.mjs +208 -0
- package/dist/jsx/createNativeMenu/createNativeMenu.mjs.map +1 -0
- package/dist/jsx/createNativeMenu/createNativeMenu.native.js +307 -0
- package/dist/jsx/createNativeMenu/createNativeMenu.native.js.map +1 -0
- package/dist/jsx/createNativeMenu/createNativeMenuTypes.js +1 -0
- package/dist/jsx/createNativeMenu/createNativeMenuTypes.js.map +6 -0
- package/dist/jsx/createNativeMenu/createNativeMenuTypes.mjs +2 -0
- package/dist/jsx/createNativeMenu/createNativeMenuTypes.mjs.map +1 -0
- package/dist/jsx/createNativeMenu/createNativeMenuTypes.native.js +19 -0
- package/dist/jsx/createNativeMenu/createNativeMenuTypes.native.js.map +1 -0
- package/dist/jsx/createNativeMenu/utils.js +47 -0
- package/dist/jsx/createNativeMenu/utils.js.map +6 -0
- package/dist/jsx/createNativeMenu/utils.mjs +29 -0
- package/dist/jsx/createNativeMenu/utils.mjs.map +1 -0
- package/dist/jsx/createNativeMenu/utils.native.js +94 -0
- package/dist/jsx/createNativeMenu/utils.native.js.map +1 -0
- package/dist/jsx/createNativeMenu/withNativeMenu.js +15 -0
- package/dist/jsx/createNativeMenu/withNativeMenu.js.map +6 -0
- package/dist/jsx/createNativeMenu/withNativeMenu.mjs +14 -0
- package/dist/jsx/createNativeMenu/withNativeMenu.mjs.map +1 -0
- package/dist/jsx/createNativeMenu/withNativeMenu.native.js +43 -0
- package/dist/jsx/createNativeMenu/withNativeMenu.native.js.map +1 -0
- package/dist/jsx/index.js +8 -0
- package/dist/jsx/index.js.map +6 -0
- package/dist/jsx/index.mjs +6 -0
- package/dist/jsx/index.mjs.map +1 -0
- package/dist/jsx/index.native.js +33 -0
- package/dist/jsx/index.native.js.map +1 -0
- package/package.json +69 -0
- package/src/MenuPredefined.tsx +204 -0
- package/src/createBaseMenu.tsx +2031 -0
- package/src/createNativeMenu/createNativeMenu.tsx +400 -0
- package/src/createNativeMenu/createNativeMenuTypes.ts +214 -0
- package/src/createNativeMenu/utils.tsx +150 -0
- package/src/createNativeMenu/withNativeMenu.tsx +39 -0
- package/src/index.tsx +5 -0
- package/types/MenuPredefined.d.ts +31 -0
- package/types/MenuPredefined.d.ts.map +1 -0
- package/types/createBaseMenu.d.ts +298 -0
- package/types/createBaseMenu.d.ts.map +1 -0
- package/types/createNativeMenu/createNativeMenu.d.ts +42 -0
- package/types/createNativeMenu/createNativeMenu.d.ts.map +1 -0
- package/types/createNativeMenu/createNativeMenuTypes.d.ts +188 -0
- package/types/createNativeMenu/createNativeMenuTypes.d.ts.map +1 -0
- package/types/createNativeMenu/index.d.ts +4 -0
- package/types/createNativeMenu/utils.d.ts +38 -0
- package/types/createNativeMenu/utils.d.ts.map +1 -0
- package/types/createNativeMenu/withNativeMenu.d.ts +9 -0
- package/types/createNativeMenu/withNativeMenu.d.ts.map +1 -0
- package/types/index.d.ts +6 -0
- package/types/index.d.ts.map +1 -0
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Credit to geist-ui/react, it's initially copied from there and updated.
|
|
3
|
+
*
|
|
4
|
+
* MIT License
|
|
5
|
+
|
|
6
|
+
Copyright (c) 2020 Geist UI
|
|
7
|
+
|
|
8
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
9
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
10
|
+
in the Software without restriction, including without limitation the rights
|
|
11
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
12
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
13
|
+
furnished to do so, subject to the following conditions:
|
|
14
|
+
|
|
15
|
+
The above copyright notice and this permission notice shall be included in all
|
|
16
|
+
copies or substantial portions of the Software.
|
|
17
|
+
|
|
18
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
19
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
20
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
21
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
22
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
23
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
24
|
+
SOFTWARE.
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
import React, {
|
|
28
|
+
Children,
|
|
29
|
+
type ReactElement,
|
|
30
|
+
type ReactNode,
|
|
31
|
+
cloneElement,
|
|
32
|
+
isValidElement,
|
|
33
|
+
} from 'react'
|
|
34
|
+
|
|
35
|
+
type ReactChildArray = ReturnType<typeof React.Children.toArray>
|
|
36
|
+
|
|
37
|
+
export function flattenChildrenKeyless(children: ReactNode): ReactChildArray {
|
|
38
|
+
const childrenArray = React.Children.toArray(children)
|
|
39
|
+
return childrenArray.reduce((flatChildren: ReactChildArray, child) => {
|
|
40
|
+
if ((child as React.ReactElement<any>).type === React.Fragment) {
|
|
41
|
+
return flatChildren.concat(
|
|
42
|
+
flattenChildren((child as React.ReactElement<any>).props.children)
|
|
43
|
+
)
|
|
44
|
+
}
|
|
45
|
+
flatChildren.push(child)
|
|
46
|
+
return flatChildren
|
|
47
|
+
}, [])
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export function flattenChildren(
|
|
51
|
+
children: ReactNode,
|
|
52
|
+
componentNamesToIgnore?: string[],
|
|
53
|
+
depth = 0,
|
|
54
|
+
keys: (string | number)[] = []
|
|
55
|
+
): ReactNode[] {
|
|
56
|
+
return Children.toArray(children)
|
|
57
|
+
.flatMap((elem) => {
|
|
58
|
+
if (isValidElement(elem)) {
|
|
59
|
+
if (
|
|
60
|
+
typeof (elem as any)?.type == 'function' &&
|
|
61
|
+
componentNamesToIgnore?.some((skipComponentName) =>
|
|
62
|
+
(elem.type as any).displayName.includes(skipComponentName)
|
|
63
|
+
)
|
|
64
|
+
) {
|
|
65
|
+
return (elem as any).props.children
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return elem
|
|
69
|
+
})
|
|
70
|
+
.reduce((acc: ReactNode[], node: any, nodeIndex) => {
|
|
71
|
+
if (node.type === React.Fragment) {
|
|
72
|
+
acc.push.apply(
|
|
73
|
+
acc,
|
|
74
|
+
flattenChildren(
|
|
75
|
+
node.props.children,
|
|
76
|
+
componentNamesToIgnore,
|
|
77
|
+
depth + 1,
|
|
78
|
+
keys.concat(node.key || nodeIndex)
|
|
79
|
+
)
|
|
80
|
+
)
|
|
81
|
+
} else {
|
|
82
|
+
if (isValidElement(node)) {
|
|
83
|
+
acc.push(
|
|
84
|
+
cloneElement(node, {
|
|
85
|
+
key: keys.concat(String(node.key)).join('.'),
|
|
86
|
+
})
|
|
87
|
+
)
|
|
88
|
+
} else if (typeof node === 'string' || typeof node === 'number') {
|
|
89
|
+
acc.push(node)
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return acc
|
|
93
|
+
}, [])
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
export const pickChildren = <Props = any>(
|
|
97
|
+
_children: ReactNode | undefined,
|
|
98
|
+
targetChild: React.ElementType,
|
|
99
|
+
componentNamesToIgnore?: string[]
|
|
100
|
+
) => {
|
|
101
|
+
const children = flattenChildren(_children, componentNamesToIgnore)
|
|
102
|
+
const target: ReactElement<Props>[] = []
|
|
103
|
+
const withoutTargetChildren = React.Children.map(children, (item) => {
|
|
104
|
+
if (!isValidElement(item)) return item
|
|
105
|
+
if (isInstanceOfComponent(item, targetChild)) {
|
|
106
|
+
// @ts-expect-error
|
|
107
|
+
target.push(cloneElement(item))
|
|
108
|
+
return null
|
|
109
|
+
}
|
|
110
|
+
return item
|
|
111
|
+
})
|
|
112
|
+
|
|
113
|
+
const targetChildren = target.length >= 0 ? target : undefined
|
|
114
|
+
|
|
115
|
+
return {
|
|
116
|
+
targetChildren,
|
|
117
|
+
withoutTargetChildren,
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
export const isInstanceOfComponent = (
|
|
122
|
+
element: React.ReactElement | ReactNode | undefined,
|
|
123
|
+
targetElement: React.ElementType
|
|
124
|
+
) => {
|
|
125
|
+
const matches =
|
|
126
|
+
(element as any)?.type === targetElement ||
|
|
127
|
+
(typeof (element as any)?.type == 'function' &&
|
|
128
|
+
((element as any)?.type?.displayName === (targetElement as any).displayName ||
|
|
129
|
+
(element as any)?.type?.displayName ===
|
|
130
|
+
(targetElement as any).displayName + 'Wrapper'))
|
|
131
|
+
return matches
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
export const filterNull = <T extends unknown | null | undefined>(
|
|
135
|
+
t: T
|
|
136
|
+
): t is NonNullable<T> => {
|
|
137
|
+
return t != null
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
export const create = <Props extends {}>(
|
|
141
|
+
Component: React.ComponentType<Props>,
|
|
142
|
+
displayName: string
|
|
143
|
+
) => {
|
|
144
|
+
const MenuComponent: React.FC<Props> = (props: Props) => {
|
|
145
|
+
return <Component {...(props as any)} />
|
|
146
|
+
}
|
|
147
|
+
MenuComponent.displayName = displayName
|
|
148
|
+
|
|
149
|
+
return MenuComponent
|
|
150
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { isWeb } from '@tamagui/web'
|
|
2
|
+
|
|
3
|
+
type GetProps<T> = T extends React.ComponentType<infer P> ? P : never
|
|
4
|
+
|
|
5
|
+
export function withNativeMenu<
|
|
6
|
+
C extends React.ComponentType<any>,
|
|
7
|
+
N extends React.ComponentType<any>,
|
|
8
|
+
CP = GetProps<C>,
|
|
9
|
+
NP = GetProps<N>,
|
|
10
|
+
>({
|
|
11
|
+
Component,
|
|
12
|
+
NativeComponent,
|
|
13
|
+
}: {
|
|
14
|
+
Component: C
|
|
15
|
+
NativeComponent: N
|
|
16
|
+
scope?: string
|
|
17
|
+
isRoot?: boolean
|
|
18
|
+
}): React.FC<CP & Partial<Omit<NP, keyof CP>>> {
|
|
19
|
+
type Props = CP & Partial<Omit<NP, keyof CP>>
|
|
20
|
+
|
|
21
|
+
if (isWeb) {
|
|
22
|
+
return Component as React.FC<Props>
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// On native platform, always use native component
|
|
26
|
+
// If NativeComponent is missing (zeego not set up), fall back to web Component
|
|
27
|
+
if (!NativeComponent) {
|
|
28
|
+
return Component as React.FC<Props>
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
const Menu: React.FC<Props> = (props) => {
|
|
32
|
+
return <NativeComponent {...(props as any)} />
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// displayName is required for Portal flattening (checks displayName.includes('Portal'))
|
|
36
|
+
Menu.displayName = NativeComponent.displayName || Component?.displayName
|
|
37
|
+
|
|
38
|
+
return Menu
|
|
39
|
+
}
|
package/src/index.tsx
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export declare const MenuPredefined: {
|
|
2
|
+
MenuIcon: import("@tamagui/web").TamaguiComponent<import("@tamagui/web").TamaDefer, import("@tamagui/web").TamaguiElement, import("@tamagui/web").StackNonStyleProps, import("@tamagui/web").StackStyleBase, {
|
|
3
|
+
unstyled?: boolean | undefined;
|
|
4
|
+
}, import("@tamagui/web").StaticConfigPublic>;
|
|
5
|
+
MenuImage: import("@tamagui/web").TamaguiComponent<import("@tamagui/web").TamaDefer, unknown, import("@tamagui/web").TamaguiComponentPropsBaseBase & Partial<import("@tamagui/image").ImageProps>, import("@tamagui/web").StackStyleBase, {}, import("@tamagui/web").StaticConfigPublic>;
|
|
6
|
+
MenuIndicator: import("@tamagui/web").TamaguiComponent<import("@tamagui/web").TamaDefer, import("@tamagui/web").TamaguiElement, import("@tamagui/web").StackNonStyleProps, import("@tamagui/web").StackStyleBase, {
|
|
7
|
+
unstyled?: boolean | undefined;
|
|
8
|
+
}, import("@tamagui/web").StaticConfigPublic>;
|
|
9
|
+
MenuItem: import("@tamagui/web").TamaguiComponent<import("@tamagui/web").TamaDefer, import("@tamagui/web").TamaguiElement, import("@tamagui/web").StackNonStyleProps, import("@tamagui/web").StackStyleBase, {
|
|
10
|
+
unstyled?: boolean | undefined;
|
|
11
|
+
}, import("@tamagui/web").StaticConfigPublic>;
|
|
12
|
+
Title: import("@tamagui/web").TamaguiComponent<import("@tamagui/web").TamaDefer, import("@tamagui/web").TamaguiTextElement, import("@tamagui/web").TextNonStyleProps, import("@tamagui/web").TextStylePropsBase, {
|
|
13
|
+
unstyled?: boolean | undefined;
|
|
14
|
+
size?: import("@tamagui/web").FontSizeTokens | undefined;
|
|
15
|
+
}, import("@tamagui/web").StaticConfigPublic>;
|
|
16
|
+
SubTitle: import("@tamagui/web").TamaguiComponent<import("@tamagui/web").TamaDefer, import("@tamagui/web").TamaguiTextElement, import("@tamagui/web").TextNonStyleProps, import("@tamagui/web").TextStylePropsBase, {
|
|
17
|
+
unstyled?: boolean | undefined;
|
|
18
|
+
size?: import("@tamagui/web").FontSizeTokens | undefined;
|
|
19
|
+
}, import("@tamagui/web").StaticConfigPublic>;
|
|
20
|
+
MenuGroup: import("@tamagui/web").TamaguiComponent<import("@tamagui/web").TamaDefer, import("@tamagui/web").TamaguiElement, import("@tamagui/web").StackNonStyleProps, import("@tamagui/web").StackStyleBase, {
|
|
21
|
+
unstyled?: boolean | undefined;
|
|
22
|
+
}, import("@tamagui/web").StaticConfigPublic>;
|
|
23
|
+
MenuSeparator: import("@tamagui/web").TamaguiComponent<import("@tamagui/web").TamaDefer, import("@tamagui/web").TamaguiElement, import("@tamagui/web").StackNonStyleProps, import("@tamagui/web").StackStyleBase, {
|
|
24
|
+
unstyled?: boolean | undefined;
|
|
25
|
+
}, import("@tamagui/web").StaticConfigPublic>;
|
|
26
|
+
MenuLabel: import("@tamagui/web").TamaguiComponent<import("@tamagui/web").TamaDefer, import("@tamagui/web").TamaguiTextElement, import("@tamagui/web").TextNonStyleProps, import("@tamagui/web").TextStylePropsBase, {
|
|
27
|
+
unstyled?: boolean | undefined;
|
|
28
|
+
size?: import("@tamagui/web").FontSizeTokens | undefined;
|
|
29
|
+
}, import("@tamagui/web").StaticConfigPublic>;
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=MenuPredefined.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuPredefined.d.ts","sourceRoot":"","sources":["../src/MenuPredefined.tsx"],"names":[],"mappings":"AAiMA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAU1B,CAAA"}
|
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
import { Dismissable as DismissableLayer } from '@tamagui/dismissable';
|
|
2
|
+
import { FocusScope } from '@tamagui/focus-scope';
|
|
3
|
+
import type { PopperContentProps } from '@tamagui/popper';
|
|
4
|
+
import * as PopperPrimitive from '@tamagui/popper';
|
|
5
|
+
import type { RovingFocusGroupProps } from '@tamagui/roving-focus';
|
|
6
|
+
import type { TextProps } from '@tamagui/web';
|
|
7
|
+
import { type ViewProps, View } from '@tamagui/web';
|
|
8
|
+
import type { TamaguiElement } from '@tamagui/web/types';
|
|
9
|
+
import * as React from 'react';
|
|
10
|
+
import type { Image, ImageProps } from 'react-native';
|
|
11
|
+
import { MenuPredefined } from './MenuPredefined';
|
|
12
|
+
type Direction = 'ltr' | 'rtl';
|
|
13
|
+
type ScopedProps<P> = P & {
|
|
14
|
+
scope?: string;
|
|
15
|
+
};
|
|
16
|
+
interface MenuBaseProps extends PopperPrimitive.PopperProps {
|
|
17
|
+
children?: React.ReactNode;
|
|
18
|
+
open?: boolean;
|
|
19
|
+
onOpenChange?(open: boolean): void;
|
|
20
|
+
dir?: Direction;
|
|
21
|
+
modal?: boolean;
|
|
22
|
+
native?: boolean;
|
|
23
|
+
}
|
|
24
|
+
type PopperAnchorProps = React.ComponentPropsWithoutRef<typeof PopperPrimitive.PopperAnchor>;
|
|
25
|
+
interface MenuAnchorProps extends PopperAnchorProps {
|
|
26
|
+
}
|
|
27
|
+
interface MenuPortalProps {
|
|
28
|
+
children?: React.ReactNode;
|
|
29
|
+
/**
|
|
30
|
+
* Used to force mounting when more control is needed. Useful when
|
|
31
|
+
* controlling animation with React animation libraries.
|
|
32
|
+
*/
|
|
33
|
+
forceMount?: boolean;
|
|
34
|
+
zIndex?: number;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* We purposefully don't union MenuRootContent and MenuSubContent props here because
|
|
38
|
+
* they have conflicting prop types. We agreed that we would allow MenuSubContent to
|
|
39
|
+
* accept props that it would just ignore.
|
|
40
|
+
*/
|
|
41
|
+
interface MenuContentProps extends MenuRootContentTypeProps {
|
|
42
|
+
/**
|
|
43
|
+
* Used to force mounting when more control is needed. Useful when
|
|
44
|
+
* controlling animation with React animation libraries.
|
|
45
|
+
*/
|
|
46
|
+
forceMount?: boolean;
|
|
47
|
+
}
|
|
48
|
+
interface MenuRootContentTypeProps extends Omit<MenuContentImplProps, keyof MenuContentImplPrivateProps> {
|
|
49
|
+
}
|
|
50
|
+
type MenuContentImplElement = React.ElementRef<typeof PopperPrimitive.PopperContent>;
|
|
51
|
+
type FocusScopeProps = React.ComponentPropsWithoutRef<typeof FocusScope>;
|
|
52
|
+
type DismissableLayerProps = React.ComponentPropsWithoutRef<typeof DismissableLayer>;
|
|
53
|
+
type MenuContentImplPrivateProps = {
|
|
54
|
+
onOpenAutoFocus?: FocusScopeProps['onMountAutoFocus'];
|
|
55
|
+
onDismiss?: DismissableLayerProps['onDismiss'];
|
|
56
|
+
disableOutsidePointerEvents?: DismissableLayerProps['disableOutsidePointerEvents'];
|
|
57
|
+
/**
|
|
58
|
+
* Whether scrolling outside the `MenuContent` should be prevented
|
|
59
|
+
* (default: `false`)
|
|
60
|
+
*/
|
|
61
|
+
disableOutsideScroll?: boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Whether focus should be trapped within the `MenuContent`
|
|
64
|
+
* (default: false)
|
|
65
|
+
*/
|
|
66
|
+
trapFocus?: FocusScopeProps['trapped'];
|
|
67
|
+
/**
|
|
68
|
+
* Whether to disable dismissing the menu when the user scrolls outside of it
|
|
69
|
+
* (default: false, meaning scroll will dismiss on web)
|
|
70
|
+
*/
|
|
71
|
+
disableDismissOnScroll?: boolean;
|
|
72
|
+
};
|
|
73
|
+
interface MenuContentImplProps extends MenuContentImplPrivateProps, Omit<PopperContentProps, 'dir' | 'onPlaced'> {
|
|
74
|
+
/**
|
|
75
|
+
* Event handler called when auto-focusing on close.
|
|
76
|
+
* Can be prevented.
|
|
77
|
+
*/
|
|
78
|
+
onCloseAutoFocus?: FocusScopeProps['onUnmountAutoFocus'];
|
|
79
|
+
/**
|
|
80
|
+
* Whether keyboard navigation should loop around
|
|
81
|
+
* @defaultValue false
|
|
82
|
+
*/
|
|
83
|
+
loop?: RovingFocusGroupProps['loop'];
|
|
84
|
+
onEntryFocus?: RovingFocusGroupProps['onEntryFocus'];
|
|
85
|
+
onEscapeKeyDown?: DismissableLayerProps['onEscapeKeyDown'];
|
|
86
|
+
onPointerDownOutside?: DismissableLayerProps['onPointerDownOutside'];
|
|
87
|
+
onFocusOutside?: DismissableLayerProps['onFocusOutside'];
|
|
88
|
+
onInteractOutside?: DismissableLayerProps['onInteractOutside'];
|
|
89
|
+
}
|
|
90
|
+
interface MenuGroupProps extends ViewProps {
|
|
91
|
+
}
|
|
92
|
+
interface MenuLabelProps extends ViewProps {
|
|
93
|
+
}
|
|
94
|
+
interface MenuItemProps extends Omit<MenuItemImplProps, 'onSelect'> {
|
|
95
|
+
onSelect?: (event: Event) => void;
|
|
96
|
+
unstyled?: boolean;
|
|
97
|
+
/**
|
|
98
|
+
* Prevents the menu from closing when this item is selected.
|
|
99
|
+
* Useful for toggle items or multi-select scenarios.
|
|
100
|
+
*/
|
|
101
|
+
preventCloseOnSelect?: boolean;
|
|
102
|
+
}
|
|
103
|
+
interface MenuItemImplProps extends ViewProps {
|
|
104
|
+
disabled?: boolean;
|
|
105
|
+
textValue?: string;
|
|
106
|
+
unstyled?: boolean;
|
|
107
|
+
}
|
|
108
|
+
interface MenuItemTitleProps extends TextProps {
|
|
109
|
+
}
|
|
110
|
+
interface MenuItemSubTitleProps extends TextProps {
|
|
111
|
+
}
|
|
112
|
+
type MenuItemIconProps = ViewProps;
|
|
113
|
+
type CheckedState = boolean | 'indeterminate';
|
|
114
|
+
interface MenuCheckboxItemProps extends MenuItemProps {
|
|
115
|
+
checked?: CheckedState;
|
|
116
|
+
onCheckedChange?: (checked: boolean) => void;
|
|
117
|
+
}
|
|
118
|
+
interface MenuRadioGroupProps extends MenuGroupProps {
|
|
119
|
+
value?: string;
|
|
120
|
+
onValueChange?: (value: string) => void;
|
|
121
|
+
}
|
|
122
|
+
interface MenuRadioItemProps extends MenuItemProps {
|
|
123
|
+
value: string;
|
|
124
|
+
}
|
|
125
|
+
type PrimitiveSpanProps = React.ComponentPropsWithoutRef<typeof View>;
|
|
126
|
+
interface MenuItemIndicatorProps extends PrimitiveSpanProps {
|
|
127
|
+
/**
|
|
128
|
+
* Used to force mounting when more control is needed. Useful when
|
|
129
|
+
* controlling animation with React animation libraries.
|
|
130
|
+
*/
|
|
131
|
+
forceMount?: boolean;
|
|
132
|
+
}
|
|
133
|
+
interface MenuSeparatorProps extends ViewProps {
|
|
134
|
+
}
|
|
135
|
+
type PopperArrowProps = React.ComponentPropsWithoutRef<typeof PopperPrimitive.PopperArrow>;
|
|
136
|
+
interface MenuArrowProps extends PopperArrowProps {
|
|
137
|
+
unstyled?: boolean;
|
|
138
|
+
}
|
|
139
|
+
export interface MenuSubProps extends PopperPrimitive.PopperProps {
|
|
140
|
+
children?: React.ReactNode;
|
|
141
|
+
open?: boolean;
|
|
142
|
+
onOpenChange?(open: boolean): void;
|
|
143
|
+
}
|
|
144
|
+
interface MenuSubTriggerProps extends MenuItemImplProps {
|
|
145
|
+
}
|
|
146
|
+
export type MenuSubContentElement = MenuContentImplElement;
|
|
147
|
+
export interface MenuSubContentProps extends Omit<MenuContentImplProps, keyof MenuContentImplPrivateProps | 'onCloseAutoFocus' | 'onEntryFocus' | 'side' | 'align'> {
|
|
148
|
+
/**
|
|
149
|
+
* Used to force mounting when more control is needed. Useful when
|
|
150
|
+
* controlling animation with React animation libraries.
|
|
151
|
+
*/
|
|
152
|
+
forceMount?: boolean;
|
|
153
|
+
}
|
|
154
|
+
export type CreateBaseMenuProps = {
|
|
155
|
+
Item?: typeof MenuPredefined.MenuItem;
|
|
156
|
+
MenuGroup?: typeof MenuPredefined.MenuGroup;
|
|
157
|
+
Title?: typeof MenuPredefined.Title;
|
|
158
|
+
SubTitle?: typeof MenuPredefined.SubTitle;
|
|
159
|
+
Image?: React.ElementType;
|
|
160
|
+
Icon?: typeof MenuPredefined.MenuIcon;
|
|
161
|
+
Indicator?: typeof MenuPredefined.MenuIndicator;
|
|
162
|
+
Separator?: typeof MenuPredefined.MenuSeparator;
|
|
163
|
+
Label?: typeof MenuPredefined.MenuLabel;
|
|
164
|
+
};
|
|
165
|
+
export declare function createBaseMenu({ Item: _Item, Title: _Title, SubTitle: _SubTitle, Image: _Image, Icon: _Icon, Indicator: _Indicator, Separator: _Separator, MenuGroup: _MenuGroup, Label: _Label, }: CreateBaseMenuProps): {
|
|
166
|
+
Menu: {
|
|
167
|
+
(props: ScopedProps<MenuBaseProps>): import("react/jsx-runtime").JSX.Element;
|
|
168
|
+
displayName: string;
|
|
169
|
+
} & {
|
|
170
|
+
Anchor: {
|
|
171
|
+
(props: MenuAnchorProps): import("react/jsx-runtime").JSX.Element;
|
|
172
|
+
displayName: string;
|
|
173
|
+
};
|
|
174
|
+
Portal: {
|
|
175
|
+
(props: ScopedProps<MenuPortalProps>): import("react/jsx-runtime").JSX.Element;
|
|
176
|
+
displayName: string;
|
|
177
|
+
};
|
|
178
|
+
Content: import("@tamagui/web").TamaguiComponent<Omit<import("@tamagui/web").GetFinalProps<import("@tamagui/core").RNTamaguiViewNonStyleProps, import("@tamagui/web").StackStyleBase, {
|
|
179
|
+
size?: import("@tamagui/web").SizeTokens | undefined;
|
|
180
|
+
unstyled?: boolean | undefined;
|
|
181
|
+
elevation?: number | import("@tamagui/web").SizeTokens | undefined;
|
|
182
|
+
fullscreen?: boolean | undefined;
|
|
183
|
+
}>, keyof MenuContentProps> & MenuContentProps & {
|
|
184
|
+
scope?: string;
|
|
185
|
+
}, TamaguiElement, import("@tamagui/core").RNTamaguiViewNonStyleProps & MenuContentProps & {
|
|
186
|
+
scope?: string;
|
|
187
|
+
}, import("@tamagui/web").StackStyleBase, {
|
|
188
|
+
size?: import("@tamagui/web").SizeTokens | undefined;
|
|
189
|
+
unstyled?: boolean | undefined;
|
|
190
|
+
elevation?: number | import("@tamagui/web").SizeTokens | undefined;
|
|
191
|
+
fullscreen?: boolean | undefined;
|
|
192
|
+
}, import("@tamagui/web").StaticConfigPublic>;
|
|
193
|
+
Group: import("@tamagui/web").TamaguiComponent<Omit<import("@tamagui/web").GetFinalProps<import("@tamagui/web").StackNonStyleProps, import("@tamagui/web").StackStyleBase, {
|
|
194
|
+
unstyled?: boolean | undefined;
|
|
195
|
+
}>, keyof MenuGroupProps> & MenuGroupProps, TamaguiElement, import("@tamagui/web").StackNonStyleProps & MenuGroupProps, import("@tamagui/web").StackStyleBase, {
|
|
196
|
+
unstyled?: boolean | undefined;
|
|
197
|
+
}, import("@tamagui/web").StaticConfigPublic>;
|
|
198
|
+
Label: import("@tamagui/web").TamaguiComponent<Omit<import("@tamagui/web").GetFinalProps<import("@tamagui/web").TextNonStyleProps, import("@tamagui/web").TextStylePropsBase, {
|
|
199
|
+
unstyled?: boolean | undefined;
|
|
200
|
+
size?: import("@tamagui/web").FontSizeTokens | undefined;
|
|
201
|
+
}>, keyof MenuLabelProps> & MenuLabelProps, import("@tamagui/web").TamaguiTextElement, import("@tamagui/web").TextNonStyleProps & MenuLabelProps, import("@tamagui/web").TextStylePropsBase, {
|
|
202
|
+
unstyled?: boolean | undefined;
|
|
203
|
+
size?: import("@tamagui/web").FontSizeTokens | undefined;
|
|
204
|
+
}, import("@tamagui/web").StaticConfigPublic>;
|
|
205
|
+
Item: import("@tamagui/web").TamaguiComponent<Omit<import("@tamagui/web").GetFinalProps<import("@tamagui/web").StackNonStyleProps, import("@tamagui/web").StackStyleBase, {
|
|
206
|
+
unstyled?: boolean | undefined;
|
|
207
|
+
}>, "scope" | keyof MenuItemProps> & MenuItemProps & {
|
|
208
|
+
scope?: string;
|
|
209
|
+
}, TamaguiElement, import("@tamagui/web").StackNonStyleProps & MenuItemProps & {
|
|
210
|
+
scope?: string;
|
|
211
|
+
}, import("@tamagui/web").StackStyleBase, {
|
|
212
|
+
unstyled?: boolean | undefined;
|
|
213
|
+
}, import("@tamagui/web").StaticConfigPublic>;
|
|
214
|
+
CheckboxItem: import("@tamagui/web").TamaguiComponent<Omit<import("@tamagui/web").GetFinalProps<import("@tamagui/web").StackNonStyleProps, import("@tamagui/web").StackStyleBase, {
|
|
215
|
+
unstyled?: boolean | undefined;
|
|
216
|
+
}>, "scope" | keyof MenuCheckboxItemProps> & MenuCheckboxItemProps & {
|
|
217
|
+
scope?: string;
|
|
218
|
+
}, TamaguiElement, import("@tamagui/web").StackNonStyleProps & MenuCheckboxItemProps & {
|
|
219
|
+
scope?: string;
|
|
220
|
+
}, import("@tamagui/web").StackStyleBase, {
|
|
221
|
+
unstyled?: boolean | undefined;
|
|
222
|
+
}, import("@tamagui/web").StaticConfigPublic>;
|
|
223
|
+
RadioGroup: import("@tamagui/web").TamaguiComponent<Omit<import("@tamagui/web").GetFinalProps<import("@tamagui/web").StackNonStyleProps, import("@tamagui/web").StackStyleBase, {
|
|
224
|
+
unstyled?: boolean | undefined;
|
|
225
|
+
}>, "scope" | keyof MenuRadioGroupProps> & MenuRadioGroupProps & {
|
|
226
|
+
scope?: string;
|
|
227
|
+
}, TamaguiElement, import("@tamagui/web").StackNonStyleProps & MenuRadioGroupProps & {
|
|
228
|
+
scope?: string;
|
|
229
|
+
}, import("@tamagui/web").StackStyleBase, {
|
|
230
|
+
unstyled?: boolean | undefined;
|
|
231
|
+
}, import("@tamagui/web").StaticConfigPublic>;
|
|
232
|
+
RadioItem: import("@tamagui/web").TamaguiComponent<Omit<import("@tamagui/web").GetFinalProps<import("@tamagui/web").StackNonStyleProps, import("@tamagui/web").StackStyleBase, {
|
|
233
|
+
unstyled?: boolean | undefined;
|
|
234
|
+
}>, "scope" | keyof MenuRadioItemProps> & MenuRadioItemProps & {
|
|
235
|
+
scope?: string;
|
|
236
|
+
}, TamaguiElement, import("@tamagui/web").StackNonStyleProps & MenuRadioItemProps & {
|
|
237
|
+
scope?: string;
|
|
238
|
+
}, import("@tamagui/web").StackStyleBase, {
|
|
239
|
+
unstyled?: boolean | undefined;
|
|
240
|
+
}, import("@tamagui/web").StaticConfigPublic>;
|
|
241
|
+
ItemIndicator: import("@tamagui/web").TamaguiComponent<Omit<import("@tamagui/web").GetFinalProps<import("@tamagui/web").StackNonStyleProps, import("@tamagui/web").StackStyleBase, {
|
|
242
|
+
unstyled?: boolean | undefined;
|
|
243
|
+
}>, "scope" | keyof MenuItemIndicatorProps> & MenuItemIndicatorProps & {
|
|
244
|
+
scope?: string;
|
|
245
|
+
}, TamaguiElement, import("@tamagui/web").StackNonStyleProps & MenuItemIndicatorProps & {
|
|
246
|
+
scope?: string;
|
|
247
|
+
}, import("@tamagui/web").StackStyleBase, {
|
|
248
|
+
unstyled?: boolean | undefined;
|
|
249
|
+
}, import("@tamagui/web").StaticConfigPublic>;
|
|
250
|
+
Separator: import("@tamagui/web").TamaguiComponent<Omit<import("@tamagui/web").GetFinalProps<import("@tamagui/web").StackNonStyleProps, import("@tamagui/web").StackStyleBase, {
|
|
251
|
+
unstyled?: boolean | undefined;
|
|
252
|
+
}>, keyof MenuSeparatorProps> & MenuSeparatorProps, TamaguiElement, import("@tamagui/web").StackNonStyleProps & MenuSeparatorProps, import("@tamagui/web").StackStyleBase, {
|
|
253
|
+
unstyled?: boolean | undefined;
|
|
254
|
+
}, import("@tamagui/web").StaticConfigPublic>;
|
|
255
|
+
Arrow: React.ForwardRefExoticComponent<MenuArrowProps & React.RefAttributes<TamaguiElement>>;
|
|
256
|
+
Sub: React.FC<ScopedProps<MenuSubProps>>;
|
|
257
|
+
SubTrigger: React.ForwardRefExoticComponent<MenuSubTriggerProps & {
|
|
258
|
+
scope?: string;
|
|
259
|
+
} & React.RefAttributes<TamaguiElement>>;
|
|
260
|
+
SubContent: import("@tamagui/web").TamaguiComponent<Omit<import("@tamagui/web").GetFinalProps<import("@tamagui/core").RNTamaguiViewNonStyleProps, import("@tamagui/web").StackStyleBase, {
|
|
261
|
+
size?: import("@tamagui/web").SizeTokens | undefined;
|
|
262
|
+
unstyled?: boolean | undefined;
|
|
263
|
+
elevation?: number | import("@tamagui/web").SizeTokens | undefined;
|
|
264
|
+
fullscreen?: boolean | undefined;
|
|
265
|
+
}>, keyof MenuSubContentProps> & MenuSubContentProps & {
|
|
266
|
+
scope?: string;
|
|
267
|
+
}, TamaguiElement, import("@tamagui/core").RNTamaguiViewNonStyleProps & MenuSubContentProps & {
|
|
268
|
+
scope?: string;
|
|
269
|
+
}, import("@tamagui/web").StackStyleBase, {
|
|
270
|
+
size?: import("@tamagui/web").SizeTokens | undefined;
|
|
271
|
+
unstyled?: boolean | undefined;
|
|
272
|
+
elevation?: number | import("@tamagui/web").SizeTokens | undefined;
|
|
273
|
+
fullscreen?: boolean | undefined;
|
|
274
|
+
}, import("@tamagui/web").StaticConfigPublic>;
|
|
275
|
+
ItemTitle: import("@tamagui/web").TamaguiComponent<Omit<import("@tamagui/web").GetFinalProps<import("@tamagui/web").TextNonStyleProps, import("@tamagui/web").TextStylePropsBase, {
|
|
276
|
+
unstyled?: boolean | undefined;
|
|
277
|
+
size?: import("@tamagui/web").FontSizeTokens | undefined;
|
|
278
|
+
}>, keyof MenuItemTitleProps> & MenuItemTitleProps, import("@tamagui/web").TamaguiTextElement, import("@tamagui/web").TextNonStyleProps & MenuItemTitleProps, import("@tamagui/web").TextStylePropsBase, {
|
|
279
|
+
unstyled?: boolean | undefined;
|
|
280
|
+
size?: import("@tamagui/web").FontSizeTokens | undefined;
|
|
281
|
+
}, import("@tamagui/web").StaticConfigPublic>;
|
|
282
|
+
ItemSubtitle: import("@tamagui/web").TamaguiComponent<Omit<import("@tamagui/web").GetFinalProps<import("@tamagui/web").TextNonStyleProps, import("@tamagui/web").TextStylePropsBase, {
|
|
283
|
+
unstyled?: boolean | undefined;
|
|
284
|
+
size?: import("@tamagui/web").FontSizeTokens | undefined;
|
|
285
|
+
}>, keyof MenuItemSubTitleProps> & MenuItemSubTitleProps, import("@tamagui/web").TamaguiTextElement, import("@tamagui/web").TextNonStyleProps & MenuItemSubTitleProps, import("@tamagui/web").TextStylePropsBase, {
|
|
286
|
+
unstyled?: boolean | undefined;
|
|
287
|
+
size?: import("@tamagui/web").FontSizeTokens | undefined;
|
|
288
|
+
}, import("@tamagui/web").StaticConfigPublic>;
|
|
289
|
+
ItemImage: React.ForwardRefExoticComponent<ImageProps & React.RefAttributes<Image>>;
|
|
290
|
+
ItemIcon: import("@tamagui/web").TamaguiComponent<Omit<import("@tamagui/web").GetFinalProps<import("@tamagui/web").StackNonStyleProps, import("@tamagui/web").StackStyleBase, {
|
|
291
|
+
unstyled?: boolean | undefined;
|
|
292
|
+
}>, `$${string}` | `$${number}` | import("@tamagui/web").GroupMediaKeys | `$theme-${string}` | `$theme-${number}` | keyof import("@tamagui/web").StackStyleBase | keyof import("@tamagui/web").StackNonStyleProps | keyof import("@tamagui/web").WithPseudoProps<import("@tamagui/web").WithThemeValues<import("@tamagui/web").StackStyleBase> & import("@tamagui/web").WithShorthands<import("@tamagui/web").WithThemeValues<import("@tamagui/web").StackStyleBase>>>> & import("@tamagui/web").StackNonStyleProps & import("@tamagui/web").WithThemeValues<import("@tamagui/web").StackStyleBase> & import("@tamagui/web").WithShorthands<import("@tamagui/web").WithThemeValues<import("@tamagui/web").StackStyleBase>> & import("@tamagui/web").WithPseudoProps<import("@tamagui/web").WithThemeValues<import("@tamagui/web").StackStyleBase> & import("@tamagui/web").WithShorthands<import("@tamagui/web").WithThemeValues<import("@tamagui/web").StackStyleBase>>> & import("@tamagui/web").WithMediaProps<import("@tamagui/web").WithThemeShorthandsAndPseudos<import("@tamagui/web").StackStyleBase, {}>>, TamaguiElement, import("@tamagui/web").StackNonStyleProps & import("@tamagui/web").WithThemeValues<import("@tamagui/web").StackStyleBase> & import("@tamagui/web").WithShorthands<import("@tamagui/web").WithThemeValues<import("@tamagui/web").StackStyleBase>> & import("@tamagui/web").WithPseudoProps<import("@tamagui/web").WithThemeValues<import("@tamagui/web").StackStyleBase> & import("@tamagui/web").WithShorthands<import("@tamagui/web").WithThemeValues<import("@tamagui/web").StackStyleBase>>> & import("@tamagui/web").WithMediaProps<import("@tamagui/web").WithThemeShorthandsAndPseudos<import("@tamagui/web").StackStyleBase, {}>>, import("@tamagui/web").StackStyleBase, {
|
|
293
|
+
unstyled?: boolean | undefined;
|
|
294
|
+
}, import("@tamagui/web").StaticConfigPublic>;
|
|
295
|
+
};
|
|
296
|
+
};
|
|
297
|
+
export type { MenuAnchorProps, MenuArrowProps, MenuCheckboxItemProps, MenuContentProps, MenuGroupProps, MenuItemIconProps, MenuItemIndicatorProps, MenuItemProps, MenuItemSubTitleProps, MenuItemTitleProps, MenuLabelProps, MenuPortalProps, MenuBaseProps as MenuProps, MenuRadioGroupProps, MenuRadioItemProps, MenuSeparatorProps, MenuSubTriggerProps, };
|
|
298
|
+
//# sourceMappingURL=createBaseMenu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createBaseMenu.d.ts","sourceRoot":"","sources":["../src/createBaseMenu.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* createNativeMenu - provides native menu implementation for React Native
|
|
3
|
+
*
|
|
4
|
+
* On Web: Returns empty stub components (withNativeMenu will use the web components instead)
|
|
5
|
+
* On Native: Uses Zeego for native menus (Credit to nandorojo/Zeego)
|
|
6
|
+
*/
|
|
7
|
+
import type { FC } from 'react';
|
|
8
|
+
import React from 'react';
|
|
9
|
+
import type { ContextMenuPreviewProps, NativeMenuArrowProps, NativeMenuCheckboxItemProps, NativeMenuContentProps, NativeMenuGroupProps, NativeMenuItemIconProps, NativeMenuItemImageProps, NativeMenuItemIndicatorProps, NativeMenuItemProps, NativeMenuItemSubtitleProps, NativeMenuItemTitleProps, NativeMenuLabelProps, NativeMenuProps, NativeMenuSeparatorProps, NativeMenuSubContentProps, NativeMenuSubProps, NativeMenuSubTriggerProps, MenuTriggerProps } from './createNativeMenuTypes';
|
|
10
|
+
export type NativeMenuComponents = {
|
|
11
|
+
Menu: FC<NativeMenuProps> & {
|
|
12
|
+
Trigger: FC<MenuTriggerProps>;
|
|
13
|
+
Content: FC<NativeMenuContentProps>;
|
|
14
|
+
Item: FC<NativeMenuItemProps>;
|
|
15
|
+
ItemTitle: FC<NativeMenuItemTitleProps>;
|
|
16
|
+
ItemSubtitle: FC<NativeMenuItemSubtitleProps>;
|
|
17
|
+
SubTrigger: FC<NativeMenuSubTriggerProps>;
|
|
18
|
+
Group: FC<NativeMenuGroupProps>;
|
|
19
|
+
ItemIcon: FC<NativeMenuItemIconProps>;
|
|
20
|
+
Separator: FC<NativeMenuSeparatorProps>;
|
|
21
|
+
CheckboxItem: FC<NativeMenuCheckboxItemProps>;
|
|
22
|
+
ItemIndicator: FC<NativeMenuItemIndicatorProps>;
|
|
23
|
+
ItemImage: FC<NativeMenuItemImageProps>;
|
|
24
|
+
Label: FC<NativeMenuLabelProps>;
|
|
25
|
+
Arrow: FC<NativeMenuArrowProps>;
|
|
26
|
+
Sub: FC<NativeMenuSubProps>;
|
|
27
|
+
SubContent: FC<NativeMenuSubContentProps>;
|
|
28
|
+
Preview: FC<ContextMenuPreviewProps>;
|
|
29
|
+
Portal: FC<{
|
|
30
|
+
children: React.ReactNode;
|
|
31
|
+
}>;
|
|
32
|
+
RadioGroup: FC<{
|
|
33
|
+
children: React.ReactNode;
|
|
34
|
+
}>;
|
|
35
|
+
RadioItem: FC<{
|
|
36
|
+
children: React.ReactNode;
|
|
37
|
+
}>;
|
|
38
|
+
Auxiliary: FC<any>;
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
export declare const createNativeMenu: (MenuType: "ContextMenu" | "Menu") => NativeMenuComponents;
|
|
42
|
+
//# sourceMappingURL=createNativeMenu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createNativeMenu.d.ts","sourceRoot":"","sources":["../../src/createNativeMenu/createNativeMenu.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,EACV,uBAAuB,EACvB,oBAAoB,EACpB,2BAA2B,EAC3B,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,wBAAwB,EACxB,4BAA4B,EAC5B,mBAAmB,EACnB,2BAA2B,EAC3B,wBAAwB,EACxB,oBAAoB,EACpB,eAAe,EACf,wBAAwB,EACxB,yBAAyB,EACzB,kBAAkB,EAClB,yBAAyB,EACzB,gBAAgB,EACjB,MAAM,yBAAyB,CAAA;AAEhC,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG;QAC1B,OAAO,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAA;QAC7B,OAAO,EAAE,EAAE,CAAC,sBAAsB,CAAC,CAAA;QACnC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAA;QAC7B,SAAS,EAAE,EAAE,CAAC,wBAAwB,CAAC,CAAA;QACvC,YAAY,EAAE,EAAE,CAAC,2BAA2B,CAAC,CAAA;QAC7C,UAAU,EAAE,EAAE,CAAC,yBAAyB,CAAC,CAAA;QACzC,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAA;QAC/B,QAAQ,EAAE,EAAE,CAAC,uBAAuB,CAAC,CAAA;QACrC,SAAS,EAAE,EAAE,CAAC,wBAAwB,CAAC,CAAA;QACvC,YAAY,EAAE,EAAE,CAAC,2BAA2B,CAAC,CAAA;QAC7C,aAAa,EAAE,EAAE,CAAC,4BAA4B,CAAC,CAAA;QAC/C,SAAS,EAAE,EAAE,CAAC,wBAAwB,CAAC,CAAA;QACvC,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAA;QAC/B,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAA;QAC/B,GAAG,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAA;QAC3B,UAAU,EAAE,EAAE,CAAC,yBAAyB,CAAC,CAAA;QACzC,OAAO,EAAE,EAAE,CAAC,uBAAuB,CAAC,CAAA;QACpC,MAAM,EAAE,EAAE,CAAC;YAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;SAAE,CAAC,CAAA;QACzC,UAAU,EAAE,EAAE,CAAC;YAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;SAAE,CAAC,CAAA;QAC7C,SAAS,EAAE,EAAE,CAAC;YAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;SAAE,CAAC,CAAA;QAC5C,SAAS,EAAE,EAAE,CAAC,GAAG,CAAC,CAAA;KACnB,CAAA;CACF,CAAA;AAED,eAAO,MAAM,gBAAgB,GAC3B,UAAU,aAAa,GAAG,MAAM,KAC/B,oBAmVF,CAAA"}
|