@tamagui/create-menu 2.7.7 → 3.0.0-beta.643.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/createBaseMenu.cjs +1033 -1247
- package/dist/cjs/createBaseMenu.native.cjs +1217 -0
- package/dist/cjs/createBaseMenu.native.js +1155 -1387
- package/dist/cjs/createBaseMenu.native.js.map +1 -1
- package/dist/cjs/createNativeMenu/createNativeMenu.cjs +346 -377
- package/dist/cjs/createNativeMenu/createNativeMenu.native.cjs +439 -0
- package/dist/cjs/createNativeMenu/createNativeMenu.native.js +405 -439
- package/dist/cjs/createNativeMenu/createNativeMenu.native.js.map +1 -1
- package/dist/cjs/createNativeMenu/createNativeMenuTypes.cjs +10 -11
- package/dist/cjs/createNativeMenu/createNativeMenuTypes.native.cjs +19 -0
- package/dist/cjs/createNativeMenu/createNativeMenuTypes.native.js +10 -10
- package/dist/cjs/createNativeMenu/createNativeMenuTypes.native.js.map +1 -1
- package/dist/cjs/createNativeMenu/utils.cjs +76 -86
- package/dist/cjs/createNativeMenu/utils.native.cjs +107 -0
- package/dist/cjs/createNativeMenu/utils.native.js +82 -92
- package/dist/cjs/createNativeMenu/utils.native.js.map +1 -1
- package/dist/cjs/createNativeMenu/withNativeMenu.cjs +27 -35
- package/dist/cjs/createNativeMenu/withNativeMenu.native.cjs +42 -0
- package/dist/cjs/createNativeMenu/withNativeMenu.native.js +27 -34
- package/dist/cjs/createNativeMenu/withNativeMenu.native.js.map +1 -1
- package/dist/cjs/index.cjs +9 -20
- package/dist/cjs/index.native.cjs +23 -0
- package/dist/cjs/index.native.js +10 -20
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/esm/createBaseMenu.mjs +1021 -1225
- package/dist/esm/createBaseMenu.mjs.map +1 -1
- package/dist/esm/createBaseMenu.native.js +1144 -1367
- package/dist/esm/createBaseMenu.native.js.map +1 -1
- package/dist/esm/createNativeMenu/createNativeMenu.mjs +332 -353
- package/dist/esm/createNativeMenu/createNativeMenu.mjs.map +1 -1
- package/dist/esm/createNativeMenu/createNativeMenu.native.js +392 -417
- package/dist/esm/createNativeMenu/createNativeMenu.native.js.map +1 -1
- package/dist/esm/createNativeMenu/createNativeMenuTypes.mjs +0 -2
- package/dist/esm/createNativeMenu/createNativeMenuTypes.native.js +0 -2
- package/dist/esm/createNativeMenu/utils.mjs +55 -57
- package/dist/esm/createNativeMenu/utils.mjs.map +1 -1
- package/dist/esm/createNativeMenu/utils.native.js +62 -65
- package/dist/esm/createNativeMenu/utils.native.js.map +1 -1
- package/dist/esm/createNativeMenu/withNativeMenu.mjs +14 -17
- package/dist/esm/createNativeMenu/withNativeMenu.mjs.map +1 -1
- package/dist/esm/createNativeMenu/withNativeMenu.native.js +15 -18
- package/dist/esm/createNativeMenu/withNativeMenu.native.js.map +1 -1
- package/dist/esm/index.js +5 -6
- package/dist/esm/index.mjs +5 -6
- package/dist/esm/index.native.js +5 -6
- package/dist/jsx/createBaseMenu.mjs +1021 -1225
- package/dist/jsx/createBaseMenu.mjs.map +1 -1
- package/dist/jsx/createBaseMenu.native.cjs +1217 -0
- package/dist/jsx/createBaseMenu.native.js +1155 -1387
- package/dist/jsx/createBaseMenu.native.js.map +1 -1
- package/dist/jsx/createNativeMenu/createNativeMenu.mjs +332 -353
- package/dist/jsx/createNativeMenu/createNativeMenu.mjs.map +1 -1
- package/dist/jsx/createNativeMenu/createNativeMenu.native.cjs +439 -0
- package/dist/jsx/createNativeMenu/createNativeMenu.native.js +405 -439
- package/dist/jsx/createNativeMenu/createNativeMenu.native.js.map +1 -1
- package/dist/jsx/createNativeMenu/createNativeMenuTypes.mjs +0 -2
- package/dist/jsx/createNativeMenu/createNativeMenuTypes.native.cjs +19 -0
- package/dist/jsx/createNativeMenu/createNativeMenuTypes.native.js +10 -10
- package/dist/jsx/createNativeMenu/createNativeMenuTypes.native.js.map +1 -1
- package/dist/jsx/createNativeMenu/utils.mjs +55 -57
- package/dist/jsx/createNativeMenu/utils.mjs.map +1 -1
- package/dist/jsx/createNativeMenu/utils.native.cjs +107 -0
- package/dist/jsx/createNativeMenu/utils.native.js +82 -92
- package/dist/jsx/createNativeMenu/utils.native.js.map +1 -1
- package/dist/jsx/createNativeMenu/withNativeMenu.mjs +14 -17
- package/dist/jsx/createNativeMenu/withNativeMenu.mjs.map +1 -1
- package/dist/jsx/createNativeMenu/withNativeMenu.native.cjs +42 -0
- package/dist/jsx/createNativeMenu/withNativeMenu.native.js +27 -34
- package/dist/jsx/createNativeMenu/withNativeMenu.native.js.map +1 -1
- package/dist/jsx/index.js +5 -6
- package/dist/jsx/index.mjs +5 -6
- package/dist/jsx/index.native.cjs +23 -0
- package/dist/jsx/index.native.js +10 -20
- package/dist/jsx/index.native.js.map +1 -1
- package/package.json +23 -22
- package/src/createBaseMenu.tsx +211 -231
- package/src/createNativeMenu/createNativeMenuTypes.ts +0 -6
- package/src/createNativeMenu/utils.tsx +6 -6
- package/src/createNativeMenu/withNativeMenu.tsx +1 -2
- package/src/index.tsx +0 -1
- package/types/createBaseMenu.d.ts +38 -126
- package/types/createBaseMenu.d.ts.map +1 -1
- package/types/createNativeMenu/createNativeMenu.d.ts +1 -1
- package/types/createNativeMenu/createNativeMenu.d.ts.map +1 -1
- package/types/createNativeMenu/createNativeMenuTypes.d.ts +0 -6
- package/types/createNativeMenu/createNativeMenuTypes.d.ts.map +1 -1
- package/types/createNativeMenu/utils.d.ts +5 -5
- package/types/createNativeMenu/utils.d.ts.map +1 -1
- package/types/createNativeMenu/withNativeMenu.d.ts.map +1 -1
- package/types/index.d.ts +0 -1
- package/types/index.d.ts.map +1 -1
- package/dist/cjs/MenuPredefined.cjs +0 -191
- package/dist/cjs/MenuPredefined.native.js +0 -194
- package/dist/cjs/MenuPredefined.native.js.map +0 -1
- package/dist/esm/MenuPredefined.mjs +0 -166
- package/dist/esm/MenuPredefined.mjs.map +0 -1
- package/dist/esm/MenuPredefined.native.js +0 -166
- package/dist/esm/MenuPredefined.native.js.map +0 -1
- package/dist/esm/createNativeMenu/createNativeMenuTypes.mjs.map +0 -1
- package/dist/esm/createNativeMenu/createNativeMenuTypes.native.js.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/index.mjs.map +0 -1
- package/dist/esm/index.native.js.map +0 -1
- package/dist/jsx/MenuPredefined.mjs +0 -166
- package/dist/jsx/MenuPredefined.mjs.map +0 -1
- package/dist/jsx/MenuPredefined.native.js +0 -194
- package/dist/jsx/MenuPredefined.native.js.map +0 -1
- package/dist/jsx/createNativeMenu/createNativeMenuTypes.mjs.map +0 -1
- package/dist/jsx/index.js.map +0 -1
- package/dist/jsx/index.mjs.map +0 -1
- package/src/MenuPredefined.tsx +0 -204
- package/types/MenuPredefined.d.ts +0 -31
- package/types/MenuPredefined.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getNativeMenuAdapter","NativeMenuContext","unstable_claimExternalPressOwnership","unstable_releaseExternalPressOwnership","isWeb","withStaticProperties","isIos","React","Fragment","jsx","MAPPED_TYPES","CONTAINER_TYPES","getComponentType","displayName","type","includes","isItemLike","props","isPortalLike","isTriggerLike","composeHandlers","first","second","args","getTriggerDebugName","menuType","childProps","isValidElement","children","prefix","detail","testID","accessibilityLabel","textValue","filter","Boolean","join","emptyStub","createWebStubs","Menu","Trigger","Content","Item","ItemTitle","ItemSubtitle","SubTrigger","Group","ItemIcon","Separator","CheckboxItem","ItemIndicator","ItemImage","Label","Arrow","Sub","SubContent","Preview","Portal","RadioGroup","RadioItem","Auxiliary","createNativeMenu","MenuType","isContextMenu","isAndroid","resolved","warned","resolve","adapter","console","warn","menu","ContextMenu","componentMap","transformChildren","map","shouldReverseOnIos","triggerBoundaryHandlers","radioContext","result","Children","forEach","child","push","inner","c","debugName","claim","release","triggerChildren","triggerProps","createElement","key","onTouchStart","onTouchEnd","onTouchCancel","onResponderGrant","onResponderRelease","onResponderTerminate","onPressIn","onPressOut","value","rgValue","onValueChange","rgOnValueChange","rgChildren","rest","itemValue","rChildren","cleanChildren","dn","componentType","checked","onCheckedChange","cbChildren","finalValue","finalOnValueChange","v","childChildren","restProps","AdapterComponent","isContainer","shouldReverse","itemChildren","itemProps","reverse","lazyAdapter","name","Comp","z","onOpenChange","onOpenWillChange","triggerOwnerRef","useRef","claimTriggerBoundary","useCallback","current","releaseTriggerBoundary","useEffect","handleOpenChange","isOpen","handleOpenWillChange","willOpen","rootProps","content","Root","Provider"],"sources":["../../../src/createNativeMenu/createNativeMenu.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"createNativeMenu.js","names":[],"sources":["jsx/createNativeMenu/createNativeMenu.js"],"sourcesContent":["import {\n getNativeMenuAdapter,\n NativeMenuContext,\n unstable_claimExternalPressOwnership,\n unstable_releaseExternalPressOwnership\n} from \"@tamagui/native\";\nimport { isWeb, withStaticProperties, isIos } from \"@tamagui/web\";\nimport React from \"react\";\nimport { Fragment, jsx } from \"react/jsx-runtime\";\nconst MAPPED_TYPES = [\n \"SubContent\",\n \"SubTrigger\",\n \"Content\",\n \"Sub\",\n \"Group\",\n \"Item\",\n \"ItemTitle\",\n \"ItemSubtitle\",\n \"ItemIcon\",\n \"ItemImage\",\n \"ItemIndicator\",\n \"Label\",\n \"Separator\",\n \"CheckboxItem\",\n \"Preview\",\n \"Auxiliary\"\n];\nconst CONTAINER_TYPES = [\n \"SubContent\",\n \"SubTrigger\",\n \"Content\",\n \"Sub\",\n \"Group\",\n \"Item\"\n];\nfunction getComponentType(displayName) {\n for (const type of MAPPED_TYPES) {\n if (displayName === type || displayName === `Menu${type}` || displayName === `ContextMenu${type}` || displayName.includes(`(${type})`)) {\n return type;\n }\n }\n return null;\n}\nfunction isItemLike(props, displayName) {\n if (getComponentType(displayName)) return false;\n return \"onSelect\" in props || \"textValue\" in props;\n}\nfunction isPortalLike(displayName) {\n return displayName === \"Portal\" || displayName.includes(\"Portal\");\n}\nfunction isTriggerLike(displayName) {\n return displayName === \"Trigger\" || displayName.includes(\"(Trigger)\");\n}\nfunction composeHandlers(first, second) {\n return (...args) => {\n first?.(...args);\n second?.(...args);\n };\n}\nfunction getTriggerDebugName(menuType, props) {\n const childProps = React.isValidElement(props.children) && props.children.props ? props.children.props : null;\n const prefix = menuType === \"ContextMenu\" ? \"ContextMenuTrigger\" : \"MenuTrigger\";\n const detail = childProps?.testID ?? childProps?.accessibilityLabel ?? (typeof props.textValue === \"string\" ? props.textValue : null);\n return [prefix, detail].filter(Boolean).join(\":\") || prefix;\n}\nconst emptyStub = (() => null);\nfunction createWebStubs() {\n return {\n Menu: withStaticProperties(emptyStub, {\n Trigger: emptyStub,\n Content: emptyStub,\n Item: emptyStub,\n ItemTitle: emptyStub,\n ItemSubtitle: emptyStub,\n SubTrigger: emptyStub,\n Group: emptyStub,\n ItemIcon: emptyStub,\n Separator: emptyStub,\n CheckboxItem: emptyStub,\n ItemIndicator: emptyStub,\n ItemImage: emptyStub,\n Label: emptyStub,\n Arrow: emptyStub,\n Sub: emptyStub,\n SubContent: emptyStub,\n Preview: emptyStub,\n Portal: emptyStub,\n RadioGroup: emptyStub,\n RadioItem: emptyStub,\n Auxiliary: emptyStub\n })\n };\n}\nconst createNativeMenu = (MenuType) => {\n if (isWeb) {\n return createWebStubs();\n }\n const isContextMenu = MenuType === \"ContextMenu\";\n const isAndroid = !isIos && !isWeb;\n let resolved = null;\n let warned = false;\n function resolve() {\n if (resolved) return resolved;\n const adapter = getNativeMenuAdapter();\n if (!adapter) {\n if (!warned) {\n warned = true;\n console.warn(\n `Warning: Register a native menu adapter before rendering Tamagui native menus`\n );\n }\n return null;\n }\n const menu = isContextMenu ? adapter.ContextMenu : adapter.Menu;\n resolved = {\n menu,\n componentMap: {\n SubContent: menu.SubContent,\n SubTrigger: menu.SubTrigger,\n Content: menu.Content,\n Sub: menu.Sub,\n Group: menu.Group,\n Item: menu.Item,\n ItemTitle: menu.ItemTitle,\n ItemSubtitle: menu.ItemSubtitle,\n ItemIcon: menu.ItemIcon,\n ItemImage: menu.ItemImage,\n ItemIndicator: menu.ItemIndicator,\n Label: menu.Label,\n Separator: menu.Separator,\n CheckboxItem: menu.CheckboxItem,\n Preview: menu.Preview,\n Auxiliary: menu.Auxiliary\n }\n };\n return resolved;\n }\n function transformChildren(menu, map, children, shouldReverseOnIos = false, triggerBoundaryHandlers, radioContext) {\n const result = [];\n React.Children.forEach(children, (child) => {\n if (!React.isValidElement(child)) {\n result.push(child);\n return;\n }\n const displayName = child.type?.displayName || \"\";\n const props = child.props;\n if (isPortalLike(displayName)) {\n const inner = transformChildren(\n menu,\n map,\n props.children,\n false,\n triggerBoundaryHandlers,\n radioContext\n );\n React.Children.forEach(inner, (c) => result.push(c));\n return;\n }\n if (displayName.includes(\"ScrollView\")) {\n const inner = transformChildren(\n menu,\n map,\n props.children,\n false,\n triggerBoundaryHandlers,\n radioContext\n );\n React.Children.forEach(inner, (c) => result.push(c));\n return;\n }\n if (isTriggerLike(displayName)) {\n const debugName = getTriggerDebugName(MenuType, props);\n const claim = () => triggerBoundaryHandlers?.claim(debugName);\n const release = () => triggerBoundaryHandlers?.release(debugName);\n const { children: triggerChildren, ...triggerProps } = props;\n result.push(\n React.createElement(\n menu.Trigger,\n {\n ...triggerProps,\n key: child.key,\n onTouchStart: composeHandlers(claim, props.onTouchStart),\n onTouchEnd: composeHandlers(props.onTouchEnd, release),\n onTouchCancel: composeHandlers(props.onTouchCancel, release),\n onResponderGrant: composeHandlers(claim, props.onResponderGrant),\n onResponderRelease: composeHandlers(props.onResponderRelease, release),\n onResponderTerminate: composeHandlers(props.onResponderTerminate, release),\n onPressIn: composeHandlers(claim, props.onPressIn),\n onPressOut: composeHandlers(props.onPressOut, release)\n },\n triggerChildren\n )\n );\n return;\n }\n if (displayName.includes(\"RadioGroup\")) {\n const {\n value: rgValue,\n onValueChange: rgOnValueChange,\n children: rgChildren,\n ...rest\n } = props;\n result.push(\n React.createElement(\n menu.Group,\n { ...rest, key: child.key },\n transformChildren(\n menu,\n map,\n rgChildren,\n false,\n triggerBoundaryHandlers,\n { value: rgValue, onValueChange: rgOnValueChange }\n )\n )\n );\n return;\n }\n if (displayName.includes(\"RadioItem\") && radioContext) {\n const {\n value: itemValue,\n children: rChildren,\n ...rest\n } = props;\n const cleanChildren = React.Children.map(rChildren, (c) => {\n if (!React.isValidElement(c)) return c;\n const dn = c.type?.displayName || \"\";\n if (dn.includes(\"ItemIndicator\")) return null;\n return c;\n });\n result.push(\n React.createElement(\n menu.CheckboxItem,\n {\n ...rest,\n key: child.key,\n value: itemValue === radioContext.value ? \"on\" : \"off\",\n onValueChange: () => radioContext.onValueChange?.(itemValue)\n },\n transformChildren(\n menu,\n map,\n cleanChildren,\n false,\n triggerBoundaryHandlers,\n radioContext\n )\n )\n );\n return;\n }\n const componentType = getComponentType(displayName);\n if (componentType === \"CheckboxItem\") {\n const {\n checked,\n onCheckedChange,\n value,\n onValueChange,\n children: cbChildren,\n ...rest\n } = props;\n const finalValue = value ?? (checked ? \"on\" : \"off\");\n const finalOnValueChange = onValueChange ?? (onCheckedChange && ((v) => onCheckedChange(v === \"on\")));\n const cleanChildren = React.Children.map(cbChildren, (c) => {\n if (!React.isValidElement(c)) return c;\n const dn = c.type?.displayName || \"\";\n if (dn.includes(\"ItemIndicator\")) return null;\n return c;\n });\n result.push(\n React.createElement(\n menu.CheckboxItem,\n {\n ...rest,\n key: child.key,\n value: finalValue,\n onValueChange: finalOnValueChange\n },\n transformChildren(\n menu,\n map,\n cleanChildren,\n false,\n triggerBoundaryHandlers,\n radioContext\n )\n )\n );\n return;\n }\n if (componentType) {\n const { children: childChildren, ...restProps } = props;\n const AdapterComponent = map[componentType];\n const isContainer = CONTAINER_TYPES.includes(componentType);\n const shouldReverse = componentType === \"Content\" || componentType === \"SubContent\";\n result.push(\n React.createElement(\n AdapterComponent,\n { ...restProps, key: child.key },\n isContainer ? transformChildren(\n menu,\n map,\n childChildren,\n shouldReverse,\n triggerBoundaryHandlers,\n radioContext\n ) : childChildren\n )\n );\n return;\n }\n if (isItemLike(props, displayName)) {\n const { children: itemChildren, ...itemProps } = props;\n result.push(\n React.createElement(\n menu.Item,\n { ...itemProps, key: child.key },\n transformChildren(\n menu,\n map,\n itemChildren,\n false,\n triggerBoundaryHandlers,\n radioContext\n )\n )\n );\n return;\n }\n result.push(child);\n });\n if (isIos && shouldReverseOnIos && !isContextMenu) {\n result.reverse();\n }\n return result;\n }\n function lazyAdapter(name, displayName) {\n const Comp = (props) => {\n const z = resolve();\n if (!z) return null;\n return React.createElement(z.menu[name], props);\n };\n Comp.displayName = displayName || name;\n return Comp;\n }\n const Trigger = lazyAdapter(\"Trigger\");\n const Content = lazyAdapter(\"Content\");\n const Item = lazyAdapter(\"Item\");\n const ItemTitle = lazyAdapter(\"ItemTitle\");\n const ItemSubtitle = lazyAdapter(\"ItemSubtitle\");\n const ItemIcon = lazyAdapter(\"ItemIcon\");\n const ItemImage = lazyAdapter(\"ItemImage\");\n const ItemIndicator = lazyAdapter(\"ItemIndicator\");\n const Group = lazyAdapter(\"Group\");\n const Label = lazyAdapter(\"Label\");\n const Separator = lazyAdapter(\"Separator\");\n const Sub = lazyAdapter(\"Sub\");\n const SubTrigger = lazyAdapter(\"SubTrigger\");\n const SubContent = lazyAdapter(\"SubContent\");\n const Portal = ({ children }) => /* @__PURE__ */ jsx(Fragment, { children });\n Portal.displayName = \"Portal\";\n const Arrow = () => null;\n Arrow.displayName = \"Arrow\";\n const RadioGroup = ({ children }) => /* @__PURE__ */ jsx(Fragment, { children });\n RadioGroup.displayName = `${MenuType}RadioGroup`;\n const RadioItem = ({ children }) => /* @__PURE__ */ jsx(Fragment, { children });\n RadioItem.displayName = `${MenuType}RadioItem`;\n const CheckboxItem = () => null;\n CheckboxItem.displayName = \"CheckboxItem\";\n const Preview = isContextMenu ? lazyAdapter(\"Preview\", `${MenuType}Preview`) : () => null;\n Preview.displayName = `${MenuType}Preview`;\n const Auxiliary = isContextMenu ? lazyAdapter(\"Auxiliary\", `${MenuType}Auxiliary`) : () => null;\n Auxiliary.displayName = `${MenuType}Auxiliary`;\n const Menu = ({ children, onOpenChange, onOpenWillChange }) => {\n const triggerOwnerRef = React.useRef(null);\n const claimTriggerBoundary = React.useCallback((debugName) => {\n if (triggerOwnerRef.current) {\n unstable_releaseExternalPressOwnership(triggerOwnerRef.current, debugName);\n }\n triggerOwnerRef.current = unstable_claimExternalPressOwnership(debugName);\n }, []);\n const releaseTriggerBoundary = React.useCallback((debugName) => {\n if (!triggerOwnerRef.current) return;\n unstable_releaseExternalPressOwnership(triggerOwnerRef.current, debugName);\n triggerOwnerRef.current = null;\n }, []);\n React.useEffect(() => releaseTriggerBoundary, [releaseTriggerBoundary]);\n const z = resolve();\n if (!z) return null;\n const handleOpenChange = React.useCallback(\n (isOpen) => {\n if (!isOpen) {\n releaseTriggerBoundary();\n }\n onOpenChange?.(isOpen);\n },\n [onOpenChange, releaseTriggerBoundary]\n );\n const handleOpenWillChange = React.useCallback(\n (willOpen) => {\n if (!willOpen) {\n releaseTriggerBoundary();\n }\n onOpenWillChange?.(willOpen);\n },\n [onOpenWillChange, releaseTriggerBoundary]\n );\n const rootProps = { onOpenChange: handleOpenChange };\n if (isContextMenu && onOpenWillChange) {\n rootProps.onOpenWillChange = handleOpenWillChange;\n }\n const content = /* @__PURE__ */ jsx(z.menu.Root, { ...rootProps, children: transformChildren(z.menu, z.componentMap, children, false, {\n claim: claimTriggerBoundary,\n release: releaseTriggerBoundary\n }) });\n if (isAndroid) {\n return /* @__PURE__ */ jsx(NativeMenuContext.Provider, { value: true, children: content });\n }\n return content;\n };\n Menu.displayName = MenuType;\n return {\n Menu: withStaticProperties(Menu, {\n Trigger,\n Content,\n Item,\n ItemTitle,\n ItemSubtitle,\n ItemIcon,\n ItemImage,\n ItemIndicator,\n Group,\n Label,\n Separator,\n Sub,\n SubTrigger,\n SubContent,\n CheckboxItem,\n Portal,\n RadioGroup,\n RadioItem,\n Arrow,\n Preview,\n Auxiliary\n })\n };\n};\nexport {\n createNativeMenu\n};\n//# sourceMappingURL=createNativeMenu.js.map\n"],"mappings":"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"}
|
|
@@ -0,0 +1,439 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
var __create = Object.create;
|
|
5
|
+
var __defProp = Object.defineProperty;
|
|
6
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
7
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
8
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
9
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
10
|
+
var __export = (target, all) => {
|
|
11
|
+
for (var name in all) __defProp(target, name, {
|
|
12
|
+
get: all[name],
|
|
13
|
+
enumerable: true
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
var __copyProps = (to, from, except, desc) => {
|
|
17
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
18
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
19
|
+
get: () => from[key],
|
|
20
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
return to;
|
|
24
|
+
};
|
|
25
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
26
|
+
value: mod,
|
|
27
|
+
enumerable: true
|
|
28
|
+
}) : target, mod));
|
|
29
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
30
|
+
var createNativeMenu_exports = {};
|
|
31
|
+
__export(createNativeMenu_exports, { createNativeMenu: () => createNativeMenu });
|
|
32
|
+
module.exports = __toCommonJS(createNativeMenu_exports);
|
|
33
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
34
|
+
var import_native = require("@tamagui/native");
|
|
35
|
+
var import_web = require("@tamagui/web");
|
|
36
|
+
var import_react = __toESM(require("react"), 1);
|
|
37
|
+
var MAPPED_TYPES = [
|
|
38
|
+
"SubContent",
|
|
39
|
+
"SubTrigger",
|
|
40
|
+
"Content",
|
|
41
|
+
"Sub",
|
|
42
|
+
"Group",
|
|
43
|
+
"Item",
|
|
44
|
+
"ItemTitle",
|
|
45
|
+
"ItemSubtitle",
|
|
46
|
+
"ItemIcon",
|
|
47
|
+
"ItemImage",
|
|
48
|
+
"ItemIndicator",
|
|
49
|
+
"Label",
|
|
50
|
+
"Separator",
|
|
51
|
+
"CheckboxItem",
|
|
52
|
+
"Preview",
|
|
53
|
+
"Auxiliary"
|
|
54
|
+
];
|
|
55
|
+
var CONTAINER_TYPES = [
|
|
56
|
+
"SubContent",
|
|
57
|
+
"SubTrigger",
|
|
58
|
+
"Content",
|
|
59
|
+
"Sub",
|
|
60
|
+
"Group",
|
|
61
|
+
"Item"
|
|
62
|
+
];
|
|
63
|
+
function getComponentType(displayName) {
|
|
64
|
+
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
|
|
65
|
+
try {
|
|
66
|
+
for (var _iterator = MAPPED_TYPES[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
67
|
+
var type = _step.value;
|
|
68
|
+
if (displayName === type || displayName === `Menu${type}` || displayName === `ContextMenu${type}` || displayName.includes(`(${type})`)) {
|
|
69
|
+
return type;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
} catch (err) {
|
|
73
|
+
_didIteratorError = true;
|
|
74
|
+
_iteratorError = err;
|
|
75
|
+
} finally {
|
|
76
|
+
try {
|
|
77
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
78
|
+
_iterator.return();
|
|
79
|
+
}
|
|
80
|
+
} finally {
|
|
81
|
+
if (_didIteratorError) {
|
|
82
|
+
throw _iteratorError;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
function isItemLike(props, displayName) {
|
|
89
|
+
if (getComponentType(displayName)) return false;
|
|
90
|
+
return "onSelect" in props || "textValue" in props;
|
|
91
|
+
}
|
|
92
|
+
function isPortalLike(displayName) {
|
|
93
|
+
return displayName === "Portal" || displayName.includes("Portal");
|
|
94
|
+
}
|
|
95
|
+
function isTriggerLike(displayName) {
|
|
96
|
+
return displayName === "Trigger" || displayName.includes("(Trigger)");
|
|
97
|
+
}
|
|
98
|
+
function composeHandlers(first, second) {
|
|
99
|
+
return function() {
|
|
100
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
101
|
+
args[_key] = arguments[_key];
|
|
102
|
+
}
|
|
103
|
+
first === null || first === void 0 ? void 0 : first(...args);
|
|
104
|
+
second === null || second === void 0 ? void 0 : second(...args);
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
function getTriggerDebugName(menuType, props) {
|
|
108
|
+
var childProps = /* @__PURE__ */ import_react.default.isValidElement(props.children) && props.children.props ? props.children.props : null;
|
|
109
|
+
var prefix = menuType === "ContextMenu" ? "ContextMenuTrigger" : "MenuTrigger";
|
|
110
|
+
var _childProps_testID, _ref;
|
|
111
|
+
var detail = (_ref = (_childProps_testID = childProps === null || childProps === void 0 ? void 0 : childProps.testID) !== null && _childProps_testID !== void 0 ? _childProps_testID : childProps === null || childProps === void 0 ? void 0 : childProps.accessibilityLabel) !== null && _ref !== void 0 ? _ref : typeof props.textValue === "string" ? props.textValue : null;
|
|
112
|
+
return [prefix, detail].filter(Boolean).join(":") || prefix;
|
|
113
|
+
}
|
|
114
|
+
var emptyStub = function() {
|
|
115
|
+
return null;
|
|
116
|
+
};
|
|
117
|
+
function createWebStubs() {
|
|
118
|
+
return { Menu: (0, import_web.withStaticProperties)(emptyStub, {
|
|
119
|
+
Trigger: emptyStub,
|
|
120
|
+
Content: emptyStub,
|
|
121
|
+
Item: emptyStub,
|
|
122
|
+
ItemTitle: emptyStub,
|
|
123
|
+
ItemSubtitle: emptyStub,
|
|
124
|
+
SubTrigger: emptyStub,
|
|
125
|
+
Group: emptyStub,
|
|
126
|
+
ItemIcon: emptyStub,
|
|
127
|
+
Separator: emptyStub,
|
|
128
|
+
CheckboxItem: emptyStub,
|
|
129
|
+
ItemIndicator: emptyStub,
|
|
130
|
+
ItemImage: emptyStub,
|
|
131
|
+
Label: emptyStub,
|
|
132
|
+
Arrow: emptyStub,
|
|
133
|
+
Sub: emptyStub,
|
|
134
|
+
SubContent: emptyStub,
|
|
135
|
+
Preview: emptyStub,
|
|
136
|
+
Portal: emptyStub,
|
|
137
|
+
RadioGroup: emptyStub,
|
|
138
|
+
RadioItem: emptyStub,
|
|
139
|
+
Auxiliary: emptyStub
|
|
140
|
+
}) };
|
|
141
|
+
}
|
|
142
|
+
var createNativeMenu = function(MenuType) {
|
|
143
|
+
if (import_web.isWeb) {
|
|
144
|
+
return createWebStubs();
|
|
145
|
+
}
|
|
146
|
+
var isContextMenu = MenuType === "ContextMenu";
|
|
147
|
+
var isAndroid = !import_web.isIos && !import_web.isWeb;
|
|
148
|
+
var resolved = null;
|
|
149
|
+
var warned = false;
|
|
150
|
+
function resolve() {
|
|
151
|
+
if (resolved) return resolved;
|
|
152
|
+
var adapter = (0, import_native.getNativeMenuAdapter)();
|
|
153
|
+
if (!adapter) {
|
|
154
|
+
if (!warned) {
|
|
155
|
+
warned = true;
|
|
156
|
+
console.warn(`Warning: Register a native menu adapter before rendering Tamagui native menus`);
|
|
157
|
+
}
|
|
158
|
+
return null;
|
|
159
|
+
}
|
|
160
|
+
var menu = isContextMenu ? adapter.ContextMenu : adapter.Menu;
|
|
161
|
+
resolved = {
|
|
162
|
+
menu,
|
|
163
|
+
componentMap: {
|
|
164
|
+
SubContent: menu.SubContent,
|
|
165
|
+
SubTrigger: menu.SubTrigger,
|
|
166
|
+
Content: menu.Content,
|
|
167
|
+
Sub: menu.Sub,
|
|
168
|
+
Group: menu.Group,
|
|
169
|
+
Item: menu.Item,
|
|
170
|
+
ItemTitle: menu.ItemTitle,
|
|
171
|
+
ItemSubtitle: menu.ItemSubtitle,
|
|
172
|
+
ItemIcon: menu.ItemIcon,
|
|
173
|
+
ItemImage: menu.ItemImage,
|
|
174
|
+
ItemIndicator: menu.ItemIndicator,
|
|
175
|
+
Label: menu.Label,
|
|
176
|
+
Separator: menu.Separator,
|
|
177
|
+
CheckboxItem: menu.CheckboxItem,
|
|
178
|
+
Preview: menu.Preview,
|
|
179
|
+
Auxiliary: menu.Auxiliary
|
|
180
|
+
}
|
|
181
|
+
};
|
|
182
|
+
return resolved;
|
|
183
|
+
}
|
|
184
|
+
function transformChildren(menu, map, children) {
|
|
185
|
+
var shouldReverseOnIos = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false, triggerBoundaryHandlers = arguments.length > 4 ? arguments[4] : void 0, radioContext = arguments.length > 5 ? arguments[5] : void 0;
|
|
186
|
+
var result = [];
|
|
187
|
+
import_react.default.Children.forEach(children, function(child) {
|
|
188
|
+
var _child_type;
|
|
189
|
+
if (!/* @__PURE__ */ import_react.default.isValidElement(child)) {
|
|
190
|
+
result.push(child);
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
var displayName = ((_child_type = child.type) === null || _child_type === void 0 ? void 0 : _child_type.displayName) || "";
|
|
194
|
+
var props = child.props;
|
|
195
|
+
if (isPortalLike(displayName)) {
|
|
196
|
+
var inner = transformChildren(menu, map, props.children, false, triggerBoundaryHandlers, radioContext);
|
|
197
|
+
import_react.default.Children.forEach(inner, function(c) {
|
|
198
|
+
return result.push(c);
|
|
199
|
+
});
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
if (displayName.includes("ScrollView")) {
|
|
203
|
+
var inner1 = transformChildren(menu, map, props.children, false, triggerBoundaryHandlers, radioContext);
|
|
204
|
+
import_react.default.Children.forEach(inner1, function(c) {
|
|
205
|
+
return result.push(c);
|
|
206
|
+
});
|
|
207
|
+
return;
|
|
208
|
+
}
|
|
209
|
+
if (isTriggerLike(displayName)) {
|
|
210
|
+
var debugName = getTriggerDebugName(MenuType, props);
|
|
211
|
+
var claim = function() {
|
|
212
|
+
return triggerBoundaryHandlers === null || triggerBoundaryHandlers === void 0 ? void 0 : triggerBoundaryHandlers.claim(debugName);
|
|
213
|
+
};
|
|
214
|
+
var release = function() {
|
|
215
|
+
return triggerBoundaryHandlers === null || triggerBoundaryHandlers === void 0 ? void 0 : triggerBoundaryHandlers.release(debugName);
|
|
216
|
+
};
|
|
217
|
+
var { children: triggerChildren, ...triggerProps } = props;
|
|
218
|
+
result.push(/* @__PURE__ */ import_react.default.createElement(menu.Trigger, {
|
|
219
|
+
...triggerProps,
|
|
220
|
+
key: child.key,
|
|
221
|
+
onTouchStart: composeHandlers(claim, props.onTouchStart),
|
|
222
|
+
onTouchEnd: composeHandlers(props.onTouchEnd, release),
|
|
223
|
+
onTouchCancel: composeHandlers(props.onTouchCancel, release),
|
|
224
|
+
onResponderGrant: composeHandlers(claim, props.onResponderGrant),
|
|
225
|
+
onResponderRelease: composeHandlers(props.onResponderRelease, release),
|
|
226
|
+
onResponderTerminate: composeHandlers(props.onResponderTerminate, release),
|
|
227
|
+
onPressIn: composeHandlers(claim, props.onPressIn),
|
|
228
|
+
onPressOut: composeHandlers(props.onPressOut, release)
|
|
229
|
+
}, triggerChildren));
|
|
230
|
+
return;
|
|
231
|
+
}
|
|
232
|
+
if (displayName.includes("RadioGroup")) {
|
|
233
|
+
var { value: rgValue, onValueChange: rgOnValueChange, children: rgChildren, ...rest } = props;
|
|
234
|
+
result.push(/* @__PURE__ */ import_react.default.createElement(menu.Group, {
|
|
235
|
+
...rest,
|
|
236
|
+
key: child.key
|
|
237
|
+
}, transformChildren(menu, map, rgChildren, false, triggerBoundaryHandlers, {
|
|
238
|
+
value: rgValue,
|
|
239
|
+
onValueChange: rgOnValueChange
|
|
240
|
+
})));
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
if (displayName.includes("RadioItem") && radioContext) {
|
|
244
|
+
var { value: itemValue, children: rChildren, ...rest1 } = props;
|
|
245
|
+
var cleanChildren = import_react.default.Children.map(rChildren, function(c) {
|
|
246
|
+
var _c_type;
|
|
247
|
+
if (!/* @__PURE__ */ import_react.default.isValidElement(c)) return c;
|
|
248
|
+
var dn = ((_c_type = c.type) === null || _c_type === void 0 ? void 0 : _c_type.displayName) || "";
|
|
249
|
+
if (dn.includes("ItemIndicator")) return null;
|
|
250
|
+
return c;
|
|
251
|
+
});
|
|
252
|
+
result.push(/* @__PURE__ */ import_react.default.createElement(menu.CheckboxItem, {
|
|
253
|
+
...rest1,
|
|
254
|
+
key: child.key,
|
|
255
|
+
value: itemValue === radioContext.value ? "on" : "off",
|
|
256
|
+
onValueChange: function() {
|
|
257
|
+
var _radioContext_onValueChange;
|
|
258
|
+
return (_radioContext_onValueChange = radioContext.onValueChange) === null || _radioContext_onValueChange === void 0 ? void 0 : _radioContext_onValueChange.call(radioContext, itemValue);
|
|
259
|
+
}
|
|
260
|
+
}, transformChildren(menu, map, cleanChildren, false, triggerBoundaryHandlers, radioContext)));
|
|
261
|
+
return;
|
|
262
|
+
}
|
|
263
|
+
var componentType = getComponentType(displayName);
|
|
264
|
+
if (componentType === "CheckboxItem") {
|
|
265
|
+
var { checked, onCheckedChange, value, onValueChange, children: cbChildren, ...rest2 } = props;
|
|
266
|
+
var finalValue = value !== null && value !== void 0 ? value : checked ? "on" : "off";
|
|
267
|
+
var finalOnValueChange = onValueChange !== null && onValueChange !== void 0 ? onValueChange : onCheckedChange && function(v) {
|
|
268
|
+
return onCheckedChange(v === "on");
|
|
269
|
+
};
|
|
270
|
+
var cleanChildren1 = import_react.default.Children.map(cbChildren, function(c) {
|
|
271
|
+
var _c_type;
|
|
272
|
+
if (!/* @__PURE__ */ import_react.default.isValidElement(c)) return c;
|
|
273
|
+
var dn = ((_c_type = c.type) === null || _c_type === void 0 ? void 0 : _c_type.displayName) || "";
|
|
274
|
+
if (dn.includes("ItemIndicator")) return null;
|
|
275
|
+
return c;
|
|
276
|
+
});
|
|
277
|
+
result.push(/* @__PURE__ */ import_react.default.createElement(menu.CheckboxItem, {
|
|
278
|
+
...rest2,
|
|
279
|
+
key: child.key,
|
|
280
|
+
value: finalValue,
|
|
281
|
+
onValueChange: finalOnValueChange
|
|
282
|
+
}, transformChildren(menu, map, cleanChildren1, false, triggerBoundaryHandlers, radioContext)));
|
|
283
|
+
return;
|
|
284
|
+
}
|
|
285
|
+
if (componentType) {
|
|
286
|
+
var { children: childChildren, ...restProps } = props;
|
|
287
|
+
var AdapterComponent = map[componentType];
|
|
288
|
+
var isContainer = CONTAINER_TYPES.includes(componentType);
|
|
289
|
+
var shouldReverse = componentType === "Content" || componentType === "SubContent";
|
|
290
|
+
result.push(/* @__PURE__ */ import_react.default.createElement(AdapterComponent, {
|
|
291
|
+
...restProps,
|
|
292
|
+
key: child.key
|
|
293
|
+
}, isContainer ? transformChildren(menu, map, childChildren, shouldReverse, triggerBoundaryHandlers, radioContext) : childChildren));
|
|
294
|
+
return;
|
|
295
|
+
}
|
|
296
|
+
if (isItemLike(props, displayName)) {
|
|
297
|
+
var { children: itemChildren, ...itemProps } = props;
|
|
298
|
+
result.push(/* @__PURE__ */ import_react.default.createElement(menu.Item, {
|
|
299
|
+
...itemProps,
|
|
300
|
+
key: child.key
|
|
301
|
+
}, transformChildren(menu, map, itemChildren, false, triggerBoundaryHandlers, radioContext)));
|
|
302
|
+
return;
|
|
303
|
+
}
|
|
304
|
+
result.push(child);
|
|
305
|
+
});
|
|
306
|
+
if (import_web.isIos && shouldReverseOnIos && !isContextMenu) {
|
|
307
|
+
result.reverse();
|
|
308
|
+
}
|
|
309
|
+
return result;
|
|
310
|
+
}
|
|
311
|
+
function lazyAdapter(name, displayName) {
|
|
312
|
+
var Comp = function(props) {
|
|
313
|
+
var z = resolve();
|
|
314
|
+
if (!z) return null;
|
|
315
|
+
return /* @__PURE__ */ import_react.default.createElement(z.menu[name], props);
|
|
316
|
+
};
|
|
317
|
+
Comp.displayName = displayName || name;
|
|
318
|
+
return Comp;
|
|
319
|
+
}
|
|
320
|
+
var Trigger = lazyAdapter("Trigger");
|
|
321
|
+
var Content = lazyAdapter("Content");
|
|
322
|
+
var Item = lazyAdapter("Item");
|
|
323
|
+
var ItemTitle = lazyAdapter("ItemTitle");
|
|
324
|
+
var ItemSubtitle = lazyAdapter("ItemSubtitle");
|
|
325
|
+
var ItemIcon = lazyAdapter("ItemIcon");
|
|
326
|
+
var ItemImage = lazyAdapter("ItemImage");
|
|
327
|
+
var ItemIndicator = lazyAdapter("ItemIndicator");
|
|
328
|
+
var Group = lazyAdapter("Group");
|
|
329
|
+
var Label = lazyAdapter("Label");
|
|
330
|
+
var Separator = lazyAdapter("Separator");
|
|
331
|
+
var Sub = lazyAdapter("Sub");
|
|
332
|
+
var SubTrigger = lazyAdapter("SubTrigger");
|
|
333
|
+
var SubContent = lazyAdapter("SubContent");
|
|
334
|
+
var Portal = function(param) {
|
|
335
|
+
var { children } = param;
|
|
336
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children });
|
|
337
|
+
};
|
|
338
|
+
Portal.displayName = "Portal";
|
|
339
|
+
var Arrow = function() {
|
|
340
|
+
return null;
|
|
341
|
+
};
|
|
342
|
+
Arrow.displayName = "Arrow";
|
|
343
|
+
var RadioGroup = function(param) {
|
|
344
|
+
var { children } = param;
|
|
345
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children });
|
|
346
|
+
};
|
|
347
|
+
RadioGroup.displayName = `${MenuType}RadioGroup`;
|
|
348
|
+
var RadioItem = function(param) {
|
|
349
|
+
var { children } = param;
|
|
350
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children });
|
|
351
|
+
};
|
|
352
|
+
RadioItem.displayName = `${MenuType}RadioItem`;
|
|
353
|
+
var CheckboxItem = function() {
|
|
354
|
+
return null;
|
|
355
|
+
};
|
|
356
|
+
CheckboxItem.displayName = "CheckboxItem";
|
|
357
|
+
var Preview = isContextMenu ? lazyAdapter("Preview", `${MenuType}Preview`) : function() {
|
|
358
|
+
return null;
|
|
359
|
+
};
|
|
360
|
+
Preview.displayName = `${MenuType}Preview`;
|
|
361
|
+
var Auxiliary = isContextMenu ? lazyAdapter("Auxiliary", `${MenuType}Auxiliary`) : function() {
|
|
362
|
+
return null;
|
|
363
|
+
};
|
|
364
|
+
Auxiliary.displayName = `${MenuType}Auxiliary`;
|
|
365
|
+
var Menu = function(param) {
|
|
366
|
+
var { children, onOpenChange, onOpenWillChange } = param;
|
|
367
|
+
var triggerOwnerRef = import_react.default.useRef(null);
|
|
368
|
+
var claimTriggerBoundary = import_react.default.useCallback(function(debugName) {
|
|
369
|
+
if (triggerOwnerRef.current) {
|
|
370
|
+
(0, import_native.unstable_releaseExternalPressOwnership)(triggerOwnerRef.current, debugName);
|
|
371
|
+
}
|
|
372
|
+
triggerOwnerRef.current = (0, import_native.unstable_claimExternalPressOwnership)(debugName);
|
|
373
|
+
}, []);
|
|
374
|
+
var releaseTriggerBoundary = import_react.default.useCallback(function(debugName) {
|
|
375
|
+
if (!triggerOwnerRef.current) return;
|
|
376
|
+
(0, import_native.unstable_releaseExternalPressOwnership)(triggerOwnerRef.current, debugName);
|
|
377
|
+
triggerOwnerRef.current = null;
|
|
378
|
+
}, []);
|
|
379
|
+
import_react.default.useEffect(function() {
|
|
380
|
+
return releaseTriggerBoundary;
|
|
381
|
+
}, [releaseTriggerBoundary]);
|
|
382
|
+
var z = resolve();
|
|
383
|
+
if (!z) return null;
|
|
384
|
+
var handleOpenChange = import_react.default.useCallback(function(isOpen) {
|
|
385
|
+
if (!isOpen) {
|
|
386
|
+
releaseTriggerBoundary();
|
|
387
|
+
}
|
|
388
|
+
onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(isOpen);
|
|
389
|
+
}, [onOpenChange, releaseTriggerBoundary]);
|
|
390
|
+
var handleOpenWillChange = import_react.default.useCallback(function(willOpen) {
|
|
391
|
+
if (!willOpen) {
|
|
392
|
+
releaseTriggerBoundary();
|
|
393
|
+
}
|
|
394
|
+
onOpenWillChange === null || onOpenWillChange === void 0 ? void 0 : onOpenWillChange(willOpen);
|
|
395
|
+
}, [onOpenWillChange, releaseTriggerBoundary]);
|
|
396
|
+
var rootProps = { onOpenChange: handleOpenChange };
|
|
397
|
+
if (isContextMenu && onOpenWillChange) {
|
|
398
|
+
rootProps.onOpenWillChange = handleOpenWillChange;
|
|
399
|
+
}
|
|
400
|
+
var content = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(z.menu.Root, {
|
|
401
|
+
...rootProps,
|
|
402
|
+
children: transformChildren(z.menu, z.componentMap, children, false, {
|
|
403
|
+
claim: claimTriggerBoundary,
|
|
404
|
+
release: releaseTriggerBoundary
|
|
405
|
+
})
|
|
406
|
+
});
|
|
407
|
+
if (isAndroid) {
|
|
408
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_native.NativeMenuContext.Provider, {
|
|
409
|
+
value: true,
|
|
410
|
+
children: content
|
|
411
|
+
});
|
|
412
|
+
}
|
|
413
|
+
return content;
|
|
414
|
+
};
|
|
415
|
+
Menu.displayName = MenuType;
|
|
416
|
+
return { Menu: (0, import_web.withStaticProperties)(Menu, {
|
|
417
|
+
Trigger,
|
|
418
|
+
Content,
|
|
419
|
+
Item,
|
|
420
|
+
ItemTitle,
|
|
421
|
+
ItemSubtitle,
|
|
422
|
+
ItemIcon,
|
|
423
|
+
ItemImage,
|
|
424
|
+
ItemIndicator,
|
|
425
|
+
Group,
|
|
426
|
+
Label,
|
|
427
|
+
Separator,
|
|
428
|
+
Sub,
|
|
429
|
+
SubTrigger,
|
|
430
|
+
SubContent,
|
|
431
|
+
CheckboxItem,
|
|
432
|
+
Portal,
|
|
433
|
+
RadioGroup,
|
|
434
|
+
RadioItem,
|
|
435
|
+
Arrow,
|
|
436
|
+
Preview,
|
|
437
|
+
Auxiliary
|
|
438
|
+
}) };
|
|
439
|
+
};
|