@tamagui/native 2.7.7 → 3.0.0-beta.1097.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 (231) hide show
  1. package/dist/cjs/PressBoundary.cjs +15 -80
  2. package/dist/cjs/PressBoundary.native.cjs +85 -0
  3. package/dist/cjs/PressBoundary.native.js +64 -82
  4. package/dist/cjs/PressBoundary.native.js.map +1 -1
  5. package/dist/cjs/burntState.cjs +28 -32
  6. package/dist/cjs/burntState.native.cjs +44 -0
  7. package/dist/cjs/burntState.native.js +28 -31
  8. package/dist/cjs/burntState.native.js.map +1 -1
  9. package/dist/cjs/components.cjs +34 -55
  10. package/dist/cjs/components.native.cjs +55 -0
  11. package/dist/cjs/components.native.js +34 -54
  12. package/dist/cjs/components.native.js.map +1 -1
  13. package/dist/cjs/expoUIMenuAdapter.cjs +239 -254
  14. package/dist/cjs/expoUIMenuAdapter.native.cjs +310 -0
  15. package/dist/cjs/expoUIMenuAdapter.native.js +282 -305
  16. package/dist/cjs/expoUIMenuAdapter.native.js.map +1 -1
  17. package/dist/cjs/gesture-handler.cjs +20 -22
  18. package/dist/cjs/gesture-handler.native.cjs +37 -0
  19. package/dist/cjs/gesture-handler.native.js +20 -21
  20. package/dist/cjs/gesture-handler.native.js.map +1 -1
  21. package/dist/cjs/gestureState.cjs +201 -207
  22. package/dist/cjs/gestureState.native.cjs +261 -0
  23. package/dist/cjs/gestureState.native.js +214 -219
  24. package/dist/cjs/gestureState.native.js.map +1 -1
  25. package/dist/cjs/globalState.cjs +30 -34
  26. package/dist/cjs/globalState.native.cjs +43 -0
  27. package/dist/cjs/globalState.native.js +30 -33
  28. package/dist/cjs/globalState.native.js.map +1 -1
  29. package/dist/cjs/index.cjs +33 -34
  30. package/dist/cjs/index.native.cjs +58 -0
  31. package/dist/cjs/index.native.js +33 -33
  32. package/dist/cjs/index.native.js.map +1 -1
  33. package/dist/cjs/keyboardControllerState.cjs +27 -29
  34. package/dist/cjs/keyboardControllerState.native.cjs +49 -0
  35. package/dist/cjs/keyboardControllerState.native.js +27 -28
  36. package/dist/cjs/keyboardControllerState.native.js.map +1 -1
  37. package/dist/cjs/linearGradientState.cjs +27 -31
  38. package/dist/cjs/linearGradientState.native.cjs +43 -0
  39. package/dist/cjs/linearGradientState.native.js +27 -30
  40. package/dist/cjs/linearGradientState.native.js.map +1 -1
  41. package/dist/cjs/nativeMenuContext.cjs +14 -18
  42. package/dist/cjs/nativeMenuContext.native.cjs +27 -0
  43. package/dist/cjs/nativeMenuContext.native.js +14 -17
  44. package/dist/cjs/nativeMenuContext.native.js.map +1 -1
  45. package/dist/cjs/nativeMenuState.cjs +26 -28
  46. package/dist/cjs/nativeMenuState.native.cjs +46 -0
  47. package/dist/cjs/nativeMenuState.native.js +26 -27
  48. package/dist/cjs/nativeMenuState.native.js.map +1 -1
  49. package/dist/cjs/portalState.cjs +27 -31
  50. package/dist/cjs/portalState.native.cjs +43 -0
  51. package/dist/cjs/portalState.native.js +27 -30
  52. package/dist/cjs/portalState.native.js.map +1 -1
  53. package/dist/cjs/safeAreaState.cjs +76 -53
  54. package/dist/cjs/safeAreaState.native.cjs +100 -0
  55. package/dist/cjs/safeAreaState.native.js +78 -52
  56. package/dist/cjs/safeAreaState.native.js.map +1 -1
  57. package/dist/cjs/setup-burnt.cjs +14 -14
  58. package/dist/cjs/setup-burnt.native.cjs +19 -0
  59. package/dist/cjs/setup-burnt.native.js +14 -13
  60. package/dist/cjs/setup-burnt.native.js.map +1 -1
  61. package/dist/cjs/setup-expo-linear-gradient.cjs +13 -13
  62. package/dist/cjs/setup-expo-linear-gradient.native.cjs +18 -0
  63. package/dist/cjs/setup-expo-linear-gradient.native.js +13 -12
  64. package/dist/cjs/setup-expo-linear-gradient.native.js.map +1 -1
  65. package/dist/cjs/setup-expo-ui-menu.cjs +11 -13
  66. package/dist/cjs/setup-expo-ui-menu.native.cjs +17 -0
  67. package/dist/cjs/setup-expo-ui-menu.native.js +11 -12
  68. package/dist/cjs/setup-expo-ui-menu.native.js.map +1 -1
  69. package/dist/cjs/setup-gesture-handler.cjs +50 -57
  70. package/dist/cjs/setup-gesture-handler.native.cjs +71 -0
  71. package/dist/cjs/setup-gesture-handler.native.js +50 -56
  72. package/dist/cjs/setup-gesture-handler.native.js.map +1 -1
  73. package/dist/cjs/setup-keyboard-controller.native.cjs +27 -0
  74. package/dist/cjs/setup-keyboard-controller.native.js +22 -29
  75. package/dist/cjs/setup-keyboard-controller.native.js.map +1 -1
  76. package/dist/cjs/setup-safe-area.cjs +16 -3
  77. package/dist/cjs/setup-safe-area.native.cjs +27 -0
  78. package/dist/cjs/setup-safe-area.native.js +22 -16
  79. package/dist/cjs/setup-safe-area.native.js.map +1 -1
  80. package/dist/cjs/setup-teleport.cjs +15 -15
  81. package/dist/cjs/setup-teleport.native.cjs +20 -0
  82. package/dist/cjs/setup-teleport.native.js +15 -14
  83. package/dist/cjs/setup-teleport.native.js.map +1 -1
  84. package/dist/cjs/setup-worklets.cjs +18 -18
  85. package/dist/cjs/setup-worklets.native.cjs +23 -0
  86. package/dist/cjs/setup-worklets.native.js +18 -17
  87. package/dist/cjs/setup-worklets.native.js.map +1 -1
  88. package/dist/cjs/setup-zeego.cjs +17 -17
  89. package/dist/cjs/setup-zeego.native.cjs +22 -0
  90. package/dist/cjs/setup-zeego.native.js +17 -16
  91. package/dist/cjs/setup-zeego.native.js.map +1 -1
  92. package/dist/cjs/types.cjs +9 -11
  93. package/dist/cjs/types.native.cjs +18 -0
  94. package/dist/cjs/types.native.js +9 -10
  95. package/dist/cjs/types.native.js.map +1 -1
  96. package/dist/cjs/workletsState.cjs +30 -34
  97. package/dist/cjs/workletsState.native.cjs +46 -0
  98. package/dist/cjs/workletsState.native.js +30 -33
  99. package/dist/cjs/workletsState.native.js.map +1 -1
  100. package/dist/esm/PressBoundary.mjs +5 -53
  101. package/dist/esm/PressBoundary.mjs.map +1 -1
  102. package/dist/esm/PressBoundary.native.js +48 -56
  103. package/dist/esm/PressBoundary.native.js.map +1 -1
  104. package/dist/esm/burntState.mjs +16 -14
  105. package/dist/esm/burntState.mjs.map +1 -1
  106. package/dist/esm/burntState.native.js +16 -14
  107. package/dist/esm/burntState.native.js.map +1 -1
  108. package/dist/esm/components.mjs +20 -37
  109. package/dist/esm/components.mjs.map +1 -1
  110. package/dist/esm/components.native.js +21 -38
  111. package/dist/esm/components.native.js.map +1 -1
  112. package/dist/esm/expoUIMenuAdapter.mjs +224 -228
  113. package/dist/esm/expoUIMenuAdapter.mjs.map +1 -1
  114. package/dist/esm/expoUIMenuAdapter.native.js +267 -280
  115. package/dist/esm/expoUIMenuAdapter.native.js.map +1 -1
  116. package/dist/esm/gesture-handler.mjs +3 -4
  117. package/dist/esm/gesture-handler.native.js +3 -4
  118. package/dist/esm/gestureState.mjs +185 -187
  119. package/dist/esm/gestureState.mjs.map +1 -1
  120. package/dist/esm/gestureState.native.js +198 -200
  121. package/dist/esm/gestureState.native.js.map +1 -1
  122. package/dist/esm/globalState.mjs +17 -16
  123. package/dist/esm/globalState.mjs.map +1 -1
  124. package/dist/esm/globalState.native.js +17 -16
  125. package/dist/esm/globalState.native.js.map +1 -1
  126. package/dist/esm/index.js +5 -6
  127. package/dist/esm/index.mjs +5 -6
  128. package/dist/esm/index.native.js +5 -6
  129. package/dist/esm/keyboardControllerState.mjs +13 -11
  130. package/dist/esm/keyboardControllerState.mjs.map +1 -1
  131. package/dist/esm/keyboardControllerState.native.js +13 -11
  132. package/dist/esm/keyboardControllerState.native.js.map +1 -1
  133. package/dist/esm/linearGradientState.mjs +15 -13
  134. package/dist/esm/linearGradientState.mjs.map +1 -1
  135. package/dist/esm/linearGradientState.native.js +15 -13
  136. package/dist/esm/linearGradientState.native.js.map +1 -1
  137. package/dist/esm/nativeMenuContext.mjs +2 -0
  138. package/dist/esm/nativeMenuContext.mjs.map +1 -1
  139. package/dist/esm/nativeMenuContext.native.js +2 -0
  140. package/dist/esm/nativeMenuContext.native.js.map +1 -1
  141. package/dist/esm/nativeMenuState.mjs +13 -11
  142. package/dist/esm/nativeMenuState.mjs.map +1 -1
  143. package/dist/esm/nativeMenuState.native.js +13 -11
  144. package/dist/esm/nativeMenuState.native.js.map +1 -1
  145. package/dist/esm/portalState.mjs +15 -13
  146. package/dist/esm/portalState.mjs.map +1 -1
  147. package/dist/esm/portalState.native.js +15 -13
  148. package/dist/esm/portalState.native.js.map +1 -1
  149. package/dist/esm/safeAreaState.mjs +64 -38
  150. package/dist/esm/safeAreaState.mjs.map +1 -1
  151. package/dist/esm/safeAreaState.native.js +66 -38
  152. package/dist/esm/safeAreaState.native.js.map +1 -1
  153. package/dist/esm/setup-burnt.mjs +20 -13
  154. package/dist/esm/setup-burnt.mjs.map +1 -1
  155. package/dist/esm/setup-burnt.native.js +20 -13
  156. package/dist/esm/setup-burnt.native.js.map +1 -1
  157. package/dist/esm/setup-expo-linear-gradient.mjs +19 -12
  158. package/dist/esm/setup-expo-linear-gradient.mjs.map +1 -1
  159. package/dist/esm/setup-expo-linear-gradient.native.js +19 -12
  160. package/dist/esm/setup-expo-linear-gradient.native.js.map +1 -1
  161. package/dist/esm/setup-expo-ui-menu.mjs +17 -12
  162. package/dist/esm/setup-expo-ui-menu.mjs.map +1 -1
  163. package/dist/esm/setup-expo-ui-menu.native.js +17 -12
  164. package/dist/esm/setup-expo-ui-menu.native.js.map +1 -1
  165. package/dist/esm/setup-gesture-handler.mjs +42 -40
  166. package/dist/esm/setup-gesture-handler.mjs.map +1 -1
  167. package/dist/esm/setup-gesture-handler.native.js +42 -40
  168. package/dist/esm/setup-gesture-handler.native.js.map +1 -1
  169. package/dist/esm/setup-keyboard-controller.mjs +0 -2
  170. package/dist/esm/setup-keyboard-controller.native.js +28 -29
  171. package/dist/esm/setup-keyboard-controller.native.js.map +1 -1
  172. package/dist/esm/setup-safe-area.mjs +0 -4
  173. package/dist/esm/setup-safe-area.native.js +23 -22
  174. package/dist/esm/setup-safe-area.native.js.map +1 -1
  175. package/dist/esm/setup-teleport.mjs +21 -14
  176. package/dist/esm/setup-teleport.mjs.map +1 -1
  177. package/dist/esm/setup-teleport.native.js +21 -14
  178. package/dist/esm/setup-teleport.native.js.map +1 -1
  179. package/dist/esm/setup-worklets.mjs +24 -17
  180. package/dist/esm/setup-worklets.mjs.map +1 -1
  181. package/dist/esm/setup-worklets.native.js +24 -17
  182. package/dist/esm/setup-worklets.native.js.map +1 -1
  183. package/dist/esm/setup-zeego.mjs +23 -16
  184. package/dist/esm/setup-zeego.mjs.map +1 -1
  185. package/dist/esm/setup-zeego.native.js +23 -16
  186. package/dist/esm/setup-zeego.native.js.map +1 -1
  187. package/dist/esm/types.mjs +0 -2
  188. package/dist/esm/types.native.js +0 -2
  189. package/dist/esm/workletsState.mjs +18 -16
  190. package/dist/esm/workletsState.mjs.map +1 -1
  191. package/dist/esm/workletsState.native.js +18 -16
  192. package/dist/esm/workletsState.native.js.map +1 -1
  193. package/package.json +87 -8
  194. package/src/PressBoundary.native.tsx +75 -0
  195. package/src/PressBoundary.tsx +16 -80
  196. package/src/expoUIMenuAdapter.tsx +1 -2
  197. package/src/gesture-handler.ts +1 -1
  198. package/src/gestureState.ts +2 -2
  199. package/src/index.ts +1 -1
  200. package/src/safeAreaState.ts +59 -27
  201. package/src/setup-safe-area.ts +27 -22
  202. package/src/setup-safe-area.web.ts +2 -0
  203. package/src/types.ts +12 -0
  204. package/types/PressBoundary.d.ts +13 -12
  205. package/types/PressBoundary.d.ts.map +2 -2
  206. package/types/PressBoundary.native.d.ts +8 -0
  207. package/types/PressBoundary.native.d.ts.map +11 -0
  208. package/types/expoUIMenuAdapter.d.ts.map +2 -2
  209. package/types/gesture-handler.d.ts +1 -1
  210. package/types/gesture-handler.d.ts.map +1 -1
  211. package/types/gestureState.d.ts.map +1 -1
  212. package/types/index.d.ts +1 -1
  213. package/types/index.d.ts.map +2 -2
  214. package/types/safeAreaState.d.ts +5 -2
  215. package/types/safeAreaState.d.ts.map +2 -2
  216. package/types/setup-safe-area.d.ts.map +1 -1
  217. package/types/setup-safe-area.web.d.ts +3 -0
  218. package/types/setup-safe-area.web.d.ts.map +11 -0
  219. package/types/types.d.ts +11 -0
  220. package/types/types.d.ts.map +2 -2
  221. package/.turbo/turbo-build.log +0 -2
  222. package/dist/esm/gesture-handler.mjs.map +0 -1
  223. package/dist/esm/gesture-handler.native.js.map +0 -1
  224. package/dist/esm/index.js.map +0 -1
  225. package/dist/esm/index.mjs.map +0 -1
  226. package/dist/esm/index.native.js.map +0 -1
  227. package/dist/esm/setup-keyboard-controller.mjs.map +0 -1
  228. package/dist/esm/setup-safe-area.mjs.map +0 -1
  229. package/dist/esm/types.mjs.map +0 -1
  230. package/dist/esm/types.native.js.map +0 -1
  231. package/tsconfig.json +0 -12
@@ -0,0 +1,310 @@
1
+ "use strict";
2
+
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __export = (target, all) => {
10
+ for (var name in all) __defProp(target, name, {
11
+ get: all[name],
12
+ enumerable: true
13
+ });
14
+ };
15
+ var __copyProps = (to, from, except, desc) => {
16
+ if (from && typeof from === "object" || typeof from === "function") {
17
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
18
+ get: () => from[key],
19
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
20
+ });
21
+ }
22
+ return to;
23
+ };
24
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
25
+ value: mod,
26
+ enumerable: true
27
+ }) : target, mod));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var expoUIMenuAdapter_exports = {};
30
+ __export(expoUIMenuAdapter_exports, { createExpoUIMenuAdapter: () => createExpoUIMenuAdapter });
31
+ module.exports = __toCommonJS(expoUIMenuAdapter_exports);
32
+ var import_jsx_runtime = require("react/jsx-runtime");
33
+ var import_react = __toESM(require("react"), 1);
34
+ function marker(name) {
35
+ var Marker = function() {
36
+ return null;
37
+ };
38
+ Marker.displayName = `ExpoUI${name}`;
39
+ return Marker;
40
+ }
41
+ function isMarkerType(candidate, type) {
42
+ if (candidate === type) return true;
43
+ var wanted = type.displayName;
44
+ if (!wanted) return false;
45
+ return typeof candidate === "function" && candidate.displayName === wanted;
46
+ }
47
+ function elementOfType(children, type) {
48
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
49
+ try {
50
+ for (var _iterator = import_react.default.Children.toArray(children)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
51
+ var child = _step.value;
52
+ if (/* @__PURE__ */ import_react.default.isValidElement(child) && isMarkerType(child.type, type)) {
53
+ return child;
54
+ }
55
+ }
56
+ } catch (err) {
57
+ _didIteratorError = true;
58
+ _iteratorError = err;
59
+ } finally {
60
+ try {
61
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
62
+ _iterator.return();
63
+ }
64
+ } finally {
65
+ if (_didIteratorError) {
66
+ throw _iteratorError;
67
+ }
68
+ }
69
+ }
70
+ return null;
71
+ }
72
+ var warnedUnsupported = /* @__PURE__ */ new Set();
73
+ function warnUnsupported(feature) {
74
+ if (warnedUnsupported.has(feature) || process.env.NODE_ENV === "production") {
75
+ return;
76
+ }
77
+ warnedUnsupported.add(feature);
78
+ console.warn(`[Tamagui] @expo/ui/community/menu does not support ${feature}, so it will not render. Register a different native menu adapter if you need it.`);
79
+ }
80
+ function textFromNode(node) {
81
+ if (typeof node === "string" || typeof node === "number") return String(node);
82
+ if (!/* @__PURE__ */ import_react.default.isValidElement(node)) return "";
83
+ return import_react.default.Children.toArray(node.props.children).map(textFromNode).join("");
84
+ }
85
+ function createExpoUIMenuAdapter(param) {
86
+ var { MenuView } = param;
87
+ var NativeMenuView = MenuView;
88
+ function createModule(isContextMenu) {
89
+ var Trigger = marker("Trigger");
90
+ var Content = marker("Content");
91
+ var Item = marker("Item");
92
+ var ItemTitle = marker("ItemTitle");
93
+ var ItemSubtitle = marker("ItemSubtitle");
94
+ var ItemIcon = marker("ItemIcon");
95
+ var ItemImage = marker("ItemImage");
96
+ var ItemIndicator = marker("ItemIndicator");
97
+ var Group = marker("Group");
98
+ var Label = marker("Label");
99
+ var Separator = marker("Separator");
100
+ var Sub = marker("Sub");
101
+ var SubTrigger = marker("SubTrigger");
102
+ var SubContent = marker("SubContent");
103
+ var CheckboxItem = marker("CheckboxItem");
104
+ var Preview = marker("Preview");
105
+ var Auxiliary = marker("Auxiliary");
106
+ function Root(param2) {
107
+ var { children, onOpenChange, onOpenWillChange } = param2;
108
+ var trigger = elementOfType(children, Trigger);
109
+ var content = elementOfType(children, Content);
110
+ var preview = elementOfType(children, Preview);
111
+ var auxiliary = elementOfType(children, Auxiliary);
112
+ if (preview || auxiliary) {
113
+ warnUnsupported("context-menu previews or auxiliary views");
114
+ }
115
+ if (!trigger || !content) {
116
+ throw new Error("Tamagui native menus require one Trigger and one Content");
117
+ }
118
+ var nextId = 0;
119
+ var handlers = /* @__PURE__ */ new Map();
120
+ function actionId(element) {
121
+ return element.key == null ? `tamagui-menu-${nextId++}` : String(element.key).replace(/^\.\$/, "");
122
+ }
123
+ function itemTitle(element) {
124
+ if (typeof element.props.textValue === "string") return element.props.textValue;
125
+ var title = elementOfType(element.props.children, ItemTitle);
126
+ return title ? textFromNode(title.props.children) : "";
127
+ }
128
+ function actionImage(element) {
129
+ var image = elementOfType(element.props.children, ItemImage);
130
+ if (image === null || image === void 0 ? void 0 : image.props.source) return image.props.source;
131
+ var icon = elementOfType(element.props.children, ItemIcon);
132
+ if (!icon) return void 0;
133
+ var ios = icon.props.ios;
134
+ if (typeof ios === "object" && ios && "name" in ios && typeof ios.name === "string") {
135
+ return ios.name;
136
+ }
137
+ return typeof icon.props.iosIconName === "string" ? icon.props.iosIconName : void 0;
138
+ }
139
+ function attributes(element) {
140
+ var destructive = element.props.destructive === true;
141
+ var disabled = element.props.disabled === true;
142
+ var hidden = element.props.hidden === true;
143
+ return destructive || disabled || hidden ? {
144
+ destructive,
145
+ disabled,
146
+ hidden
147
+ } : void 0;
148
+ }
149
+ function actionsFrom(childrenToParse) {
150
+ var actions = [];
151
+ var section = null;
152
+ function append(action) {
153
+ if (section) {
154
+ section.push(action);
155
+ } else {
156
+ actions.push(action);
157
+ }
158
+ }
159
+ function flushSection() {
160
+ if (!(section === null || section === void 0 ? void 0 : section.length)) {
161
+ section = [];
162
+ return;
163
+ }
164
+ actions.push({
165
+ id: `tamagui-menu-section-${nextId++}`,
166
+ title: "",
167
+ subactions: section,
168
+ displayInline: true
169
+ });
170
+ section = [];
171
+ }
172
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
173
+ try {
174
+ var _loop = function() {
175
+ var child = _step.value;
176
+ if (!/* @__PURE__ */ import_react.default.isValidElement(child)) return "continue";
177
+ if (isMarkerType(child.type, Separator)) {
178
+ if (!section) section = actions.splice(0);
179
+ flushSection();
180
+ return "continue";
181
+ }
182
+ if (isMarkerType(child.type, Group)) {
183
+ var label2 = elementOfType(child.props.children, Label);
184
+ append({
185
+ id: actionId(child),
186
+ title: label2 ? textFromNode(label2.props.children) : "",
187
+ subactions: actionsFrom(child.props.children),
188
+ displayInline: true
189
+ });
190
+ return "continue";
191
+ }
192
+ if (isMarkerType(child.type, Sub)) {
193
+ var subTrigger = elementOfType(child.props.children, SubTrigger);
194
+ var subContent = elementOfType(child.props.children, SubContent);
195
+ if (!subTrigger || !subContent) {
196
+ throw new Error("Tamagui native submenus require one SubTrigger and SubContent");
197
+ }
198
+ append({
199
+ id: actionId(child),
200
+ title: itemTitle(subTrigger),
201
+ image: actionImage(subTrigger),
202
+ attributes: attributes(subTrigger),
203
+ subactions: actionsFrom(subContent.props.children)
204
+ });
205
+ return "continue";
206
+ }
207
+ if (!isMarkerType(child.type, Item) && !isMarkerType(child.type, CheckboxItem)) return "continue";
208
+ if (elementOfType(child.props.children, ItemSubtitle)) {
209
+ warnUnsupported("menu item subtitles");
210
+ }
211
+ var id = actionId(child);
212
+ if (isMarkerType(child.type, CheckboxItem)) {
213
+ var current = child.props.value === true || child.props.value === "on" || child.props.checked === true;
214
+ var onValueChange = child.props.onValueChange;
215
+ var onCheckedChange = child.props.onCheckedChange;
216
+ handlers.set(id, function() {
217
+ if (typeof onValueChange === "function") {
218
+ onValueChange(current ? "off" : "on", current ? "on" : "off");
219
+ } else if (typeof onCheckedChange === "function") {
220
+ onCheckedChange(!current);
221
+ }
222
+ });
223
+ append({
224
+ id,
225
+ title: itemTitle(child),
226
+ image: actionImage(child),
227
+ state: current ? "on" : "off",
228
+ attributes: attributes(child)
229
+ });
230
+ return "continue";
231
+ }
232
+ var onSelect = child.props.onSelect;
233
+ if (typeof onSelect === "function") {
234
+ handlers.set(id, function() {
235
+ return onSelect();
236
+ });
237
+ }
238
+ append({
239
+ id,
240
+ title: itemTitle(child),
241
+ image: actionImage(child),
242
+ attributes: attributes(child)
243
+ });
244
+ };
245
+ for (var _iterator = import_react.default.Children.toArray(childrenToParse)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) _loop();
246
+ } catch (err) {
247
+ _didIteratorError = true;
248
+ _iteratorError = err;
249
+ } finally {
250
+ try {
251
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
252
+ _iterator.return();
253
+ }
254
+ } finally {
255
+ if (_didIteratorError) {
256
+ throw _iteratorError;
257
+ }
258
+ }
259
+ }
260
+ if (section) flushSection();
261
+ return actions;
262
+ }
263
+ var label = elementOfType(content.props.children, Label);
264
+ var triggerAction = trigger.props.action;
265
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(NativeMenuView, {
266
+ actions: actionsFrom(content.props.children),
267
+ title: label ? textFromNode(label.props.children) : void 0,
268
+ shouldOpenOnLongPress: triggerAction === "longPress" || triggerAction !== "press" && isContextMenu,
269
+ onPressAction: function(event) {
270
+ var _handlers_get;
271
+ return (_handlers_get = handlers.get(event.nativeEvent.event)) === null || _handlers_get === void 0 ? void 0 : _handlers_get();
272
+ },
273
+ onOpenMenu: function() {
274
+ onOpenWillChange === null || onOpenWillChange === void 0 ? void 0 : onOpenWillChange(true);
275
+ onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(true);
276
+ },
277
+ onCloseMenu: function() {
278
+ onOpenWillChange === null || onOpenWillChange === void 0 ? void 0 : onOpenWillChange(false);
279
+ onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(false);
280
+ },
281
+ children: trigger.props.children
282
+ });
283
+ }
284
+ return {
285
+ Root,
286
+ Trigger,
287
+ Content,
288
+ Item,
289
+ ItemTitle,
290
+ ItemSubtitle,
291
+ ItemIcon,
292
+ ItemImage,
293
+ ItemIndicator,
294
+ Group,
295
+ Label,
296
+ Separator,
297
+ Sub,
298
+ SubTrigger,
299
+ SubContent,
300
+ CheckboxItem,
301
+ Preview,
302
+ Auxiliary
303
+ };
304
+ }
305
+ return {
306
+ name: "expo-ui",
307
+ Menu: createModule(false),
308
+ ContextMenu: createModule(true)
309
+ };
310
+ }