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