@tamagui/native 2.7.0 → 2.7.2

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.
@@ -1,2 +1,2 @@
1
1
  $ tamagui-build
2
- built @tamagui/native in 740 ms
2
+ built @tamagui/native in 3473 ms
@@ -43,14 +43,28 @@ function marker(name) {
43
43
  Marker.displayName = `ExpoUI${name}`;
44
44
  return Marker;
45
45
  }
46
+ function isMarkerType(candidate, type) {
47
+ if (candidate === type) return true;
48
+ const wanted = type.displayName;
49
+ if (!wanted) return false;
50
+ return typeof candidate === "function" && candidate.displayName === wanted;
51
+ }
46
52
  function elementOfType(children, type) {
47
53
  for (const child of import_react.default.Children.toArray(children)) {
48
- if (import_react.default.isValidElement(child) && child.type === type) {
54
+ if (import_react.default.isValidElement(child) && isMarkerType(child.type, type)) {
49
55
  return child;
50
56
  }
51
57
  }
52
58
  return null;
53
59
  }
60
+ const warnedUnsupported = /* @__PURE__ */new Set();
61
+ function warnUnsupported(feature) {
62
+ if (warnedUnsupported.has(feature) || process.env.NODE_ENV === "production") {
63
+ return;
64
+ }
65
+ warnedUnsupported.add(feature);
66
+ 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.`);
67
+ }
54
68
  function textFromNode(node) {
55
69
  if (typeof node === "string" || typeof node === "number") return String(node);
56
70
  if (!import_react.default.isValidElement(node)) return "";
@@ -88,7 +102,7 @@ function createExpoUIMenuAdapter({
88
102
  const preview = elementOfType(children, Preview);
89
103
  const auxiliary = elementOfType(children, Auxiliary);
90
104
  if (preview || auxiliary) {
91
- throw new Error("@expo/ui/community/menu does not support Tamagui context-menu previews or auxiliary views");
105
+ warnUnsupported("context-menu previews or auxiliary views");
92
106
  }
93
107
  if (!trigger || !content) {
94
108
  throw new Error("Tamagui native menus require one Trigger and one Content");
@@ -149,12 +163,12 @@ function createExpoUIMenuAdapter({
149
163
  }
150
164
  for (const child of import_react.default.Children.toArray(childrenToParse)) {
151
165
  if (!import_react.default.isValidElement(child)) continue;
152
- if (child.type === Separator) {
166
+ if (isMarkerType(child.type, Separator)) {
153
167
  if (!section) section = actions.splice(0);
154
168
  flushSection();
155
169
  continue;
156
170
  }
157
- if (child.type === Group) {
171
+ if (isMarkerType(child.type, Group)) {
158
172
  const label2 = elementOfType(child.props.children, Label);
159
173
  append({
160
174
  id: actionId(child),
@@ -164,7 +178,7 @@ function createExpoUIMenuAdapter({
164
178
  });
165
179
  continue;
166
180
  }
167
- if (child.type === Sub) {
181
+ if (isMarkerType(child.type, Sub)) {
168
182
  const subTrigger = elementOfType(child.props.children, SubTrigger);
169
183
  const subContent = elementOfType(child.props.children, SubContent);
170
184
  if (!subTrigger || !subContent) {
@@ -179,12 +193,12 @@ function createExpoUIMenuAdapter({
179
193
  });
180
194
  continue;
181
195
  }
182
- if (child.type !== Item && child.type !== CheckboxItem) continue;
196
+ if (!isMarkerType(child.type, Item) && !isMarkerType(child.type, CheckboxItem)) continue;
183
197
  if (elementOfType(child.props.children, ItemSubtitle)) {
184
- throw new Error("@expo/ui/community/menu does not support menu item subtitles");
198
+ warnUnsupported("menu item subtitles");
185
199
  }
186
200
  const id = actionId(child);
187
- if (child.type === CheckboxItem) {
201
+ if (isMarkerType(child.type, CheckboxItem)) {
188
202
  const current = child.props.value === true || child.props.value === "on" || child.props.checked === true;
189
203
  const onValueChange = child.props.onValueChange;
190
204
  const onCheckedChange = child.props.onCheckedChange;
@@ -52,6 +52,12 @@ function marker(name) {
52
52
  Marker.displayName = `ExpoUI${name}`;
53
53
  return Marker;
54
54
  }
55
+ function isMarkerType(candidate, type) {
56
+ if (candidate === type) return true;
57
+ var wanted = type.displayName;
58
+ if (!wanted) return false;
59
+ return typeof candidate === "function" && candidate.displayName === wanted;
60
+ }
55
61
  function elementOfType(children, type) {
56
62
  var _iteratorNormalCompletion = true,
57
63
  _didIteratorError = false,
@@ -59,7 +65,7 @@ function elementOfType(children, type) {
59
65
  try {
60
66
  for (var _iterator = import_react.default.Children.toArray(children)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
61
67
  var child = _step.value;
62
- if (/* @__PURE__ */import_react.default.isValidElement(child) && child.type === type) {
68
+ if (/* @__PURE__ */import_react.default.isValidElement(child) && isMarkerType(child.type, type)) {
63
69
  return child;
64
70
  }
65
71
  }
@@ -79,6 +85,14 @@ function elementOfType(children, type) {
79
85
  }
80
86
  return null;
81
87
  }
88
+ var warnedUnsupported = /* @__PURE__ */new Set();
89
+ function warnUnsupported(feature) {
90
+ if (warnedUnsupported.has(feature) || process.env.NODE_ENV === "production") {
91
+ return;
92
+ }
93
+ warnedUnsupported.add(feature);
94
+ 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.`);
95
+ }
82
96
  function textFromNode(node) {
83
97
  if (typeof node === "string" || typeof node === "number") return String(node);
84
98
  if (! /* @__PURE__ */import_react.default.isValidElement(node)) return "";
@@ -118,7 +132,7 @@ function createExpoUIMenuAdapter(param) {
118
132
  var preview = elementOfType(children, Preview);
119
133
  var auxiliary = elementOfType(children, Auxiliary);
120
134
  if (preview || auxiliary) {
121
- throw new Error("@expo/ui/community/menu does not support Tamagui context-menu previews or auxiliary views");
135
+ warnUnsupported("context-menu previews or auxiliary views");
122
136
  }
123
137
  if (!trigger || !content) {
124
138
  throw new Error("Tamagui native menus require one Trigger and one Content");
@@ -184,12 +198,12 @@ function createExpoUIMenuAdapter(param) {
184
198
  var _loop = function () {
185
199
  var child = _step.value;
186
200
  if (! /* @__PURE__ */import_react.default.isValidElement(child)) return "continue";
187
- if (child.type === Separator) {
201
+ if (isMarkerType(child.type, Separator)) {
188
202
  if (!section) section = actions.splice(0);
189
203
  flushSection();
190
204
  return "continue";
191
205
  }
192
- if (child.type === Group) {
206
+ if (isMarkerType(child.type, Group)) {
193
207
  var label2 = elementOfType(child.props.children, Label);
194
208
  append({
195
209
  id: actionId(child),
@@ -199,7 +213,7 @@ function createExpoUIMenuAdapter(param) {
199
213
  });
200
214
  return "continue";
201
215
  }
202
- if (child.type === Sub) {
216
+ if (isMarkerType(child.type, Sub)) {
203
217
  var subTrigger = elementOfType(child.props.children, SubTrigger);
204
218
  var subContent = elementOfType(child.props.children, SubContent);
205
219
  if (!subTrigger || !subContent) {
@@ -214,12 +228,12 @@ function createExpoUIMenuAdapter(param) {
214
228
  });
215
229
  return "continue";
216
230
  }
217
- if (child.type !== Item && child.type !== CheckboxItem) return "continue";
231
+ if (!isMarkerType(child.type, Item) && !isMarkerType(child.type, CheckboxItem)) return "continue";
218
232
  if (elementOfType(child.props.children, ItemSubtitle)) {
219
- throw new Error("@expo/ui/community/menu does not support menu item subtitles");
233
+ warnUnsupported("menu item subtitles");
220
234
  }
221
235
  var id = actionId(child);
222
- if (child.type === CheckboxItem) {
236
+ if (isMarkerType(child.type, CheckboxItem)) {
223
237
  var current = child.props.value === true || child.props.value === "on" || child.props.checked === true;
224
238
  var onValueChange = child.props.onValueChange;
225
239
  var onCheckedChange = child.props.onCheckedChange;
@@ -1 +1 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","expoUIMenuAdapter_exports","__export","createExpoUIMenuAdapter","module","exports","import_jsx_runtime","require","import_react","__toESM","_type_of","obj","Symbol","constructor","marker","name","Marker","displayName","elementOfType","children","type","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","default","Children","toArray","iterator","_step","next","done","child","isValidElement","err","return","textFromNode","node","String","props","map","join","param","MenuView","NativeMenuView","createModule","isContextMenu","Trigger","Content","Item","ItemTitle","ItemSubtitle","ItemIcon","ItemImage","ItemIndicator","Group","Label","Separator","Sub","SubTrigger","SubContent","CheckboxItem","Preview","Auxiliary","Root","param2","onOpenChange","onOpenWillChange","trigger","content","preview","auxiliary","Error","nextId","handlers","Map","actionId","element","key","replace","itemTitle","textValue","title","actionImage","image","source","icon","ios","iosIconName","attributes","destructive","disabled","hidden","actionsFrom","childrenToParse","actions","section","append","action","push","flushSection","length","id","subactions","displayInline","_loop","splice","label2","subTrigger","subContent","current","checked","onValueChange","onCheckedChange","set","state","onSelect","label","triggerAction","jsx","shouldOpenOnLongPress","onPressAction","event","_handlers_get","get","nativeEvent"],"sources":["../../src/expoUIMenuAdapter.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","expoUIMenuAdapter_exports","__export","createExpoUIMenuAdapter","module","exports","import_jsx_runtime","require","import_react","__toESM","_type_of","obj","Symbol","constructor","marker","name","Marker","displayName","isMarkerType","candidate","type","wanted","elementOfType","children","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","default","Children","toArray","iterator","_step","next","done","child","isValidElement","err","return","warnedUnsupported","Set","warnUnsupported","feature","has","process","env","NODE_ENV","add","console","warn","textFromNode","node","String","props","map","join","param","MenuView","NativeMenuView","createModule","isContextMenu","Trigger","Content","Item","ItemTitle","ItemSubtitle","ItemIcon","ItemImage","ItemIndicator","Group","Label","Separator","Sub","SubTrigger","SubContent","CheckboxItem","Preview","Auxiliary","Root","param2","onOpenChange","onOpenWillChange","trigger","content","preview","auxiliary","Error","nextId","handlers","Map","actionId","element","key","replace","itemTitle","textValue","title","actionImage","image","source","icon","ios","iosIconName","attributes","destructive","disabled","hidden","actionsFrom","childrenToParse","actions","section","append","action","push","flushSection","length","id","subactions","displayInline","_loop","splice","label2","subTrigger","subContent","current","checked","onValueChange","onCheckedChange","set","state","onSelect","label","triggerAction","jsx","shouldOpenOnLongPress","onPressAction","event","_handlers_get","get","nativeEvent"],"sources":["../../src/expoUIMenuAdapter.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -5,14 +5,28 @@ function marker(name) {
5
5
  Marker.displayName = `ExpoUI${name}`;
6
6
  return Marker;
7
7
  }
8
+ function isMarkerType(candidate, type) {
9
+ if (candidate === type) return true;
10
+ const wanted = type.displayName;
11
+ if (!wanted) return false;
12
+ return typeof candidate === "function" && candidate.displayName === wanted;
13
+ }
8
14
  function elementOfType(children, type) {
9
15
  for (const child of React.Children.toArray(children)) {
10
- if (React.isValidElement(child) && child.type === type) {
16
+ if (React.isValidElement(child) && isMarkerType(child.type, type)) {
11
17
  return child;
12
18
  }
13
19
  }
14
20
  return null;
15
21
  }
22
+ const warnedUnsupported = /* @__PURE__ */new Set();
23
+ function warnUnsupported(feature) {
24
+ if (warnedUnsupported.has(feature) || process.env.NODE_ENV === "production") {
25
+ return;
26
+ }
27
+ warnedUnsupported.add(feature);
28
+ 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.`);
29
+ }
16
30
  function textFromNode(node) {
17
31
  if (typeof node === "string" || typeof node === "number") return String(node);
18
32
  if (!React.isValidElement(node)) return "";
@@ -50,7 +64,7 @@ function createExpoUIMenuAdapter({
50
64
  const preview = elementOfType(children, Preview);
51
65
  const auxiliary = elementOfType(children, Auxiliary);
52
66
  if (preview || auxiliary) {
53
- throw new Error("@expo/ui/community/menu does not support Tamagui context-menu previews or auxiliary views");
67
+ warnUnsupported("context-menu previews or auxiliary views");
54
68
  }
55
69
  if (!trigger || !content) {
56
70
  throw new Error("Tamagui native menus require one Trigger and one Content");
@@ -111,12 +125,12 @@ function createExpoUIMenuAdapter({
111
125
  }
112
126
  for (const child of React.Children.toArray(childrenToParse)) {
113
127
  if (!React.isValidElement(child)) continue;
114
- if (child.type === Separator) {
128
+ if (isMarkerType(child.type, Separator)) {
115
129
  if (!section) section = actions.splice(0);
116
130
  flushSection();
117
131
  continue;
118
132
  }
119
- if (child.type === Group) {
133
+ if (isMarkerType(child.type, Group)) {
120
134
  const label2 = elementOfType(child.props.children, Label);
121
135
  append({
122
136
  id: actionId(child),
@@ -126,7 +140,7 @@ function createExpoUIMenuAdapter({
126
140
  });
127
141
  continue;
128
142
  }
129
- if (child.type === Sub) {
143
+ if (isMarkerType(child.type, Sub)) {
130
144
  const subTrigger = elementOfType(child.props.children, SubTrigger);
131
145
  const subContent = elementOfType(child.props.children, SubContent);
132
146
  if (!subTrigger || !subContent) {
@@ -141,12 +155,12 @@ function createExpoUIMenuAdapter({
141
155
  });
142
156
  continue;
143
157
  }
144
- if (child.type !== Item && child.type !== CheckboxItem) continue;
158
+ if (!isMarkerType(child.type, Item) && !isMarkerType(child.type, CheckboxItem)) continue;
145
159
  if (elementOfType(child.props.children, ItemSubtitle)) {
146
- throw new Error("@expo/ui/community/menu does not support menu item subtitles");
160
+ warnUnsupported("menu item subtitles");
147
161
  }
148
162
  const id = actionId(child);
149
- if (child.type === CheckboxItem) {
163
+ if (isMarkerType(child.type, CheckboxItem)) {
150
164
  const current = child.props.value === true || child.props.value === "on" || child.props.checked === true;
151
165
  const onValueChange = child.props.onValueChange;
152
166
  const onCheckedChange = child.props.onCheckedChange;
@@ -1 +1 @@
1
- {"version":3,"names":["React","jsx","marker","name","Marker","displayName","elementOfType","children","type","child","Children","toArray","isValidElement","textFromNode","node","String","props","map","join","createExpoUIMenuAdapter","MenuView","NativeMenuView","createModule","isContextMenu","Trigger","Content","Item","ItemTitle","ItemSubtitle","ItemIcon","ItemImage","ItemIndicator","Group","Label","Separator","Sub","SubTrigger","SubContent","CheckboxItem","Preview","Auxiliary","Root","onOpenChange","onOpenWillChange","trigger","content","preview","auxiliary","Error","nextId","handlers","Map","actionId","element","key","replace","itemTitle","textValue","title","actionImage","image","source","icon","ios","iosIconName","attributes","destructive","disabled","hidden","actionsFrom","childrenToParse","actions","section","append","action","push","flushSection","length","id","subactions","displayInline","splice","label","label2","subTrigger","subContent","current","value","checked","onValueChange","onCheckedChange","set","state","onSelect","triggerAction","shouldOpenOnLongPress","onPressAction","event","get","nativeEvent","onOpenMenu","onCloseMenu","Menu","ContextMenu"],"sources":["../../src/expoUIMenuAdapter.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","jsx","marker","name","Marker","displayName","isMarkerType","candidate","type","wanted","elementOfType","children","child","Children","toArray","isValidElement","warnedUnsupported","Set","warnUnsupported","feature","has","process","env","NODE_ENV","add","console","warn","textFromNode","node","String","props","map","join","createExpoUIMenuAdapter","MenuView","NativeMenuView","createModule","isContextMenu","Trigger","Content","Item","ItemTitle","ItemSubtitle","ItemIcon","ItemImage","ItemIndicator","Group","Label","Separator","Sub","SubTrigger","SubContent","CheckboxItem","Preview","Auxiliary","Root","onOpenChange","onOpenWillChange","trigger","content","preview","auxiliary","Error","nextId","handlers","Map","actionId","element","key","replace","itemTitle","textValue","title","actionImage","image","source","icon","ios","iosIconName","attributes","destructive","disabled","hidden","actionsFrom","childrenToParse","actions","section","append","action","push","flushSection","length","id","subactions","displayInline","splice","label","label2","subTrigger","subContent","current","value","checked","onValueChange","onCheckedChange","set","state","onSelect","triggerAction","shouldOpenOnLongPress","onPressAction","event","get","nativeEvent","onOpenMenu","onCloseMenu","Menu","ContextMenu"],"sources":["../../src/expoUIMenuAdapter.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -12,6 +12,12 @@ function marker(name) {
12
12
  Marker.displayName = `ExpoUI${name}`;
13
13
  return Marker;
14
14
  }
15
+ function isMarkerType(candidate, type) {
16
+ if (candidate === type) return true;
17
+ var wanted = type.displayName;
18
+ if (!wanted) return false;
19
+ return typeof candidate === "function" && candidate.displayName === wanted;
20
+ }
15
21
  function elementOfType(children, type) {
16
22
  var _iteratorNormalCompletion = true,
17
23
  _didIteratorError = false,
@@ -19,7 +25,7 @@ function elementOfType(children, type) {
19
25
  try {
20
26
  for (var _iterator = React.Children.toArray(children)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
21
27
  var child = _step.value;
22
- if (/* @__PURE__ */React.isValidElement(child) && child.type === type) {
28
+ if (/* @__PURE__ */React.isValidElement(child) && isMarkerType(child.type, type)) {
23
29
  return child;
24
30
  }
25
31
  }
@@ -39,6 +45,14 @@ function elementOfType(children, type) {
39
45
  }
40
46
  return null;
41
47
  }
48
+ var warnedUnsupported = /* @__PURE__ */new Set();
49
+ function warnUnsupported(feature) {
50
+ if (warnedUnsupported.has(feature) || process.env.NODE_ENV === "production") {
51
+ return;
52
+ }
53
+ warnedUnsupported.add(feature);
54
+ 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.`);
55
+ }
42
56
  function textFromNode(node) {
43
57
  if (typeof node === "string" || typeof node === "number") return String(node);
44
58
  if (! /* @__PURE__ */React.isValidElement(node)) return "";
@@ -78,7 +92,7 @@ function createExpoUIMenuAdapter(param) {
78
92
  var preview = elementOfType(children, Preview);
79
93
  var auxiliary = elementOfType(children, Auxiliary);
80
94
  if (preview || auxiliary) {
81
- throw new Error("@expo/ui/community/menu does not support Tamagui context-menu previews or auxiliary views");
95
+ warnUnsupported("context-menu previews or auxiliary views");
82
96
  }
83
97
  if (!trigger || !content) {
84
98
  throw new Error("Tamagui native menus require one Trigger and one Content");
@@ -144,12 +158,12 @@ function createExpoUIMenuAdapter(param) {
144
158
  var _loop = function () {
145
159
  var child = _step.value;
146
160
  if (! /* @__PURE__ */React.isValidElement(child)) return "continue";
147
- if (child.type === Separator) {
161
+ if (isMarkerType(child.type, Separator)) {
148
162
  if (!section) section = actions.splice(0);
149
163
  flushSection();
150
164
  return "continue";
151
165
  }
152
- if (child.type === Group) {
166
+ if (isMarkerType(child.type, Group)) {
153
167
  var label2 = elementOfType(child.props.children, Label);
154
168
  append({
155
169
  id: actionId(child),
@@ -159,7 +173,7 @@ function createExpoUIMenuAdapter(param) {
159
173
  });
160
174
  return "continue";
161
175
  }
162
- if (child.type === Sub) {
176
+ if (isMarkerType(child.type, Sub)) {
163
177
  var subTrigger = elementOfType(child.props.children, SubTrigger);
164
178
  var subContent = elementOfType(child.props.children, SubContent);
165
179
  if (!subTrigger || !subContent) {
@@ -174,12 +188,12 @@ function createExpoUIMenuAdapter(param) {
174
188
  });
175
189
  return "continue";
176
190
  }
177
- if (child.type !== Item && child.type !== CheckboxItem) return "continue";
191
+ if (!isMarkerType(child.type, Item) && !isMarkerType(child.type, CheckboxItem)) return "continue";
178
192
  if (elementOfType(child.props.children, ItemSubtitle)) {
179
- throw new Error("@expo/ui/community/menu does not support menu item subtitles");
193
+ warnUnsupported("menu item subtitles");
180
194
  }
181
195
  var id = actionId(child);
182
- if (child.type === CheckboxItem) {
196
+ if (isMarkerType(child.type, CheckboxItem)) {
183
197
  var current = child.props.value === true || child.props.value === "on" || child.props.checked === true;
184
198
  var onValueChange = child.props.onValueChange;
185
199
  var onCheckedChange = child.props.onCheckedChange;
@@ -1 +1 @@
1
- {"version":3,"names":["jsx","_jsx","React","_type_of","obj","Symbol","constructor","marker","name","Marker","displayName","elementOfType","children","type","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Children","toArray","iterator","_step","next","done","child","value","isValidElement","err","return","textFromNode","node","String","props","map","join","createExpoUIMenuAdapter","param","MenuView","NativeMenuView","createModule","isContextMenu","Trigger","Content","Item","ItemTitle","ItemSubtitle","ItemIcon","ItemImage","ItemIndicator","Group","Label","Separator","Sub","SubTrigger","SubContent","CheckboxItem","Preview","Auxiliary","Root","param2","onOpenChange","onOpenWillChange","trigger","content","preview","auxiliary","Error","nextId","handlers","Map","actionId","element","key","replace","itemTitle","textValue","title","actionImage","image","source","icon","ios","iosIconName","attributes","destructive","disabled","hidden","actionsFrom","childrenToParse","actions","section","append","action","push","flushSection","length","id","subactions","displayInline","_loop","splice","label2","subTrigger","subContent","current","checked","onValueChange","onCheckedChange","set","state","onSelect","label","triggerAction","shouldOpenOnLongPress","onPressAction","event","_handlers_get","get","nativeEvent","onOpenMenu"],"sources":["../../src/expoUIMenuAdapter.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["jsx","_jsx","React","_type_of","obj","Symbol","constructor","marker","name","Marker","displayName","isMarkerType","candidate","type","wanted","elementOfType","children","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Children","toArray","iterator","_step","next","done","child","value","isValidElement","err","return","warnedUnsupported","Set","warnUnsupported","feature","has","process","env","NODE_ENV","add","console","warn","textFromNode","node","String","props","map","join","createExpoUIMenuAdapter","param","MenuView","NativeMenuView","createModule","isContextMenu","Trigger","Content","Item","ItemTitle","ItemSubtitle","ItemIcon","ItemImage","ItemIndicator","Group","Label","Separator","Sub","SubTrigger","SubContent","CheckboxItem","Preview","Auxiliary","Root","param2","onOpenChange","onOpenWillChange","trigger","content","preview","auxiliary","Error","nextId","handlers","Map","actionId","element","key","replace","itemTitle","textValue","title","actionImage","image","source","icon","ios","iosIconName","attributes","destructive","disabled","hidden","actionsFrom","childrenToParse","actions","section","append","action","push","flushSection","length","id","subactions","displayInline","_loop","splice","label2","subTrigger","subContent","current","checked","onValueChange","onCheckedChange","set","state","onSelect","label","triggerAction","shouldOpenOnLongPress","onPressAction","event","_handlers_get","get","nativeEvent"],"sources":["../../src/expoUIMenuAdapter.tsx"],"sourcesContent":[null],"mappings":"AACA,SAAOA,GAAA,IAAAC,IAAW;AA4SV,OAAAC,KAAA;AAvQR,SAASC,QAAOA,CAAAC,GAAA,EAA0C;EACxD,uBAAqB;;EACrB,OAAOA,GAAA,WAAcC,MAAA,KAAS,WAAI,IAAAD,GAAA,CAAAE,WAAA,KAAAD,MAAA,qBAAAD,GAAA;AAClC;AACF,SAAAG,OAAAC,IAAA;EAEA,IAAAC,MAAS,YAAAA,CAAA,EAAa;IACpB,OAAI;EAMJ;EACAA,MAAK,CAAAC,WAAQ,GAAO,SAAAF,IAAA;EACpB,OACEC,MAAA;AAGJ;AAEA,SAASE,aAAAC,SACP,EACAC,IAAA,EACkC;EAClC,IAAAD,SAAW,KAAAC,IAAS,SAAM,IAAS;EACjC,IAAAC,MAAI,GAAMD,IAAA,CAAAH,WAA4B;EACpC,KAAAI,MAAO;EAAA,OACT,OAAAF,SAAA,mBAAAA,SAAA,CAAAF,WAAA,KAAAI,MAAA;AAAA;AAEF,SAAOC,cAAAC,QAAA,EAAAH,IAAA;EACT,IAAAI,yBAAA;IAAAC,iBAAA;IAAAC,cAAA;EAEA,IAAM;IAON,KAAS,IAAAC,SAAA,GAAgBlB,KAAA,CAAAmB,QAAiB,CAAAC,OAAA,CAAAN,QAAA,EAAAX,MAAA,CAAAkB,QAAA,KAAAC,KAAA,IAAAP,yBAAA,IAAAO,KAAA,GAAAJ,SAAA,CAAAK,IAAA,IAAAC,IAAA,GAAAT,yBAAA;MACpC,IAAAU,KAAA,GAAAH,KAAA,CAAkBI,KAAI;MACxB,mBAAA1B,KAAA,CAAA2B,cAAA,CAAAF,KAAA,KAAAhB,YAAA,CAAAgB,KAAA,CAAAd,IAAA,EAAAA,IAAA;QACF,OAAAc,KAAA;MACA;IACA;EAAQ,EACN,OAAAG,GAAA;IAEFZ,iBAAA;IACFC,cAAA,GAAAW,GAAA;EAEA,UAAS;IACP,IAAI;MACA,IAAC,CAAAb,yBAAyC,IAAAG,SAAO,CAAAW,MAAA;QACrDX,SAAa,CAAAW,MAAS;MACxB;IAEO,UAAS;MACd,IAAAb,iBAAA;QAC8C,MAAAC,cAAA;MAC9C;IAEA;EACE;EACA,WAAM;AACN;AACA,IAAAa,iBAAM,GAAY,eAAkB,IAAAC,GAAA;AACpC,SAAAC,eAAMA,CAAeC,OAAO;EAC5B,IAAAH,iBAAiB,CAAAI,GAAA,CAAOD,OAAA,KAAUE,OAAA,CAAAC,GAAA,CAAAC,QAAA;IAClC;EACA;EACAP,iBAAc,CAAAQ,GAAA,CAAAL,OAAO,CAAO;EAC5BM,OAAA,CAAMC,IAAA,uDAAsBP,OAAA;AAC5B;AACA,SAAAQ,YAAYA,CAAAC,IAAO,EAAK;EACxB,WAAMA,IAAA,aAAoB,WAAAA,IAAY,sBAAAC,MAAA,CAAAD,IAAA;EACtC,qBAAmB1C,KAAA,CAAA2B,cAAmB,CAAAe,IAAA;EACtC,OAAA1C,KAAM,CAAAmB,QAAA,CAAAC,OAAe,CAAOsB,IAAA,CAAAE,KAAA,CAAA9B,QAAc,EAAA+B,GAAA,CAAAJ,YAAA,EAAAK,IAAA;AAC1C;AACA,SAAAC,uBAAyBA,CAAAC,KAAA,EAAW;EAEpC;IAAAC;EAAS,CAAK,GAAAD,KAAA;EAAA,IACZE,cAAA,GAAAD,QAAA;EAAA,SACAE,aAAAC,aAAA;IAAA,IACAC,OAAA,GAAAhD,MAAA;IACF,IAIGiD,OAAA,GAAAjD,MAAA;IACD,IAAAkD,IAAM,GAAAlD,MAAA,CAAU;IAChB,IAAAmD,SAAM,GAAAnD,MAAU,YAAc;IAC9B,IAAAoD,YAAM,GAAUpD,MAAA,eAAc;IAC9B,IAAAqD,QAAM,GAAArD,MAAY;IAElB,IAAAsD,SAAI,GAAAtD,MAAW,YAAW;IACxB,IAAAuD,aAAA,GAAgBvD,MAAA;IAA0C,IAC5DwD,KAAA,GAAAxD,MAAA;IACA,IAAAyD,KAAK,GAAAzD,MAAW,CAAC;IACf,IAAA0D,SAAM,GAAI1D,MAAM;IAA0D,IAC5E2D,GAAA,GAAA3D,MAAA;IAEA,IAAA4D,UAAI,GAAS5D,MAAA;IACb,IAAA6D,UAAM,GAAA7D,MAAW;IAEjB,IAAA8D,YAAS,GAAA9D,MAAS,eAA4C;IAC5D,IAAA+D,OAAO,GAAA/D,MAAQ,UAAO;IAEqB,IAC7CgE,SAAA,GAAAhE,MAAA;IAEA,SAAAiE,IAASA,CAAAC,MAAA,EAAU;MACjB;QAAIzD,QAAO;QAAA0D,YAAc;QAAAC;MAAc,IAAUF,MAAA;MACjD,IAAAG,OAAM,GAAA7D,aAAQ,CAAAC,QAAc,EAAQuC,OAAM;MAC1C,IAAAsB,OAAO,GAAA9D,aAAQ,CAAAC,QAAmB,EAAAwC,OAAM;MAC1C,IAAAsB,OAAA,GAAA/D,aAAA,CAAAC,QAAA,EAAAsD,OAAA;MAEA,IAAAS,SAAS,GAAAhE,aAAY,CAA6CC,QAAA,EAAAuD,SAAA;MAChE,IAAAO,OAAM,IAAAC,SAAQ;QACd7C,eAAW,2CAAiC;MAC5C;MACA,KAAA0C,OAAW,KAAAC,OAAO;QAClB,MAAM,IAAAG,KAAM,2DAAW;MACvB;MAME,IAAAC,MAAA,GAAO;MAAI,IACbC,QAAA,sBAAAC,GAAA;MACA,SAAOC,QAAOA,CAAAC,OAAK,EAAM;QAG3B,OAAAA,OAAA,CAAAC,GAAA,2BAAAL,MAAA,OAAApC,MAAA,CAAAwC,OAAA,CAAAC,GAAA,EAAAC,OAAA;MAEA;MAGE,SAAMC,UAAAH,OAAc;QACpB,WAAMA,OAAW,CAAAvC,KAAA,CAAQ2C,SAAM,aAAa,SAAAJ,OAAA,CAAAvC,KAAA,CAAA2C,SAAA;QAC5C,IAAAC,KAAM,GAAA3E,aAAiB,CAAAsE,OAAM,CAAAvC,KAAA,CAAW9B,QAAA,EAAA0C,SAAA;QACxC,OAAOgC,KAAA,GAAA/C,YAAe,CAAA+C,KAAA,CAAY5C,KAAA,CAAA9B,QAC5B;MAER;MAEA,SAAS2E,YAAYN,OAAA;QACnB,IAAAO,KAAM,GAAA7E,aAA6B,CAAAsE,OAAA,CAAAvC,KAAA,CAAA9B,QAAA,EAAA6C,SAAA;QACnC,IAAI+B,KAAA,KAAmC,QAAAA,KAAA,uBAAAA,KAAA,CAAA9C,KAAA,CAAA+C,MAAA,SAAAD,KAAA,CAAA9C,KAAA,CAAA+C,MAAA;QAEvC,IAAAC,IAAA,GAAS/E,aAA+B,CAAAsE,OAAA,CAAAvC,KAAA,CAAA9B,QAAA,EAAA4C,QAAA;QACtC,KAAAkC,IAAI,SAAS;QACX,IAAAC,GAAA,GAAAD,IAAQ,CAAAhD,KAAK,CAAAiD,GAAM;QAAA,IACrB,QAAOA,GAAA,iCAAA5F,QAAA,CAAA4F,GAAA,mBAAAA,GAAA,cAAAA,GAAA,WAAAA,GAAA,CAAAvF,IAAA;UACL,OAAAuF,GAAQ,CAAAvF,IAAK;QAAM;QAEvB,cAAAsF,IAAA,CAAAhD,KAAA,CAAAkD,WAAA,gBAAAF,IAAA,CAAAhD,KAAA,CAAAkD,WAAA;MAEA;MACE,SAAKC,UAASA,CAAAZ,OAAQ;QACpB,IAAAa,WAAW,GAAAb,OAAA,CAAAvC,KAAA,CAAAoD,WAAA;QACX,IAAAC,QAAA,GAAAd,OAAA,CAAAvC,KAAA,CAAAqD,QAAA;QAAA,IACFC,MAAA,GAAAf,OAAA,CAAAvC,KAAA,CAAAsD,MAAA;QACA,OAAAF,WAAa,IAAAC,QAAA,IAAAC,MAAA;UAAAF,WACP;UAAgCC,QACpC;UAAOC;QACK,IACZ;MAAe;MAEjB,SAAAC,WAAWA,CAAAC,eAAA;QACb,IAAAC,OAAA;QAEA,IAAAC,OAAW;QACT,SAAKC,MAAMA,CAAAC,MAAA;UAEX,IAAIF,OAAA;YACFA,OAAK,CAAAG,IAAA,CAASD,MAAA;UACd;YACAH,OAAA,CAAAI,IAAA,CAAAD,MAAA;UACF;QAEA;QACE,SAAAE,YAAcA,CAAA;UACd,MAAAJ,OAAO,aAAAA,OAAA,uBAAAA,OAAA,CAAAK,MAAA;YAAAL,OACD;YAAc;UACkC;UACRD,OAC5C,CAAAI,IAAA;YACFG,EAAC,0BAAA7B,MAAA;YACDS,KAAA;YACFqB,UAAA,EAAAP,OAAA;YAEAQ,aAAI,EAAa;UACf;UACAR,OAAA,GAAM;QACN;QACE,IAAAvF,yBAAU;UAAAC,iBAAA;UAAAC,cAAA;QAAA;UACR,IACF8F,KAAA,YAAAA,CAAA;YACF,IAAAtF,KAAA,GAAAH,KAAA,CAAAI,KAAA;YACA,qBAAO1B,KAAA,CAAA2B,cAAA,CAAAF,KAAA;YAAA,IACLhB,YAAa,CAAAgB,KAAK,CAAAd,IAAA,EAAAoD,SAAA;cAClB,KAAAuC,OAAO,EAAAA,OAAU,GAAAD,OAAU,CAAAW,MAAA;cAC3BN,YAAO;cACP,iBAAY;YAAqB;YAEnC,IAACjG,YAAA,CAAAgB,KAAA,CAAAd,IAAA,EAAAkD,KAAA;cACD,IAAAoD,MAAA,GAAApG,aAAA,CAAAY,KAAA,CAAAmB,KAAA,CAAA9B,QAAA,EAAAgD,KAAA;cACFyC,MAAA;gBAEKK,EAAA,EAAA1B,QAAa,CAAAzD,KAAM;gBACtB+D,KAAA,EAAAyB,MAAA,GAAAxE,YAAA,CAAAwE,MAAA,CAAArE,KAAA,CAAA9B,QAAA;gBAEE+F,UAAA,EAAcV,WAAM,CAAM1E,KAAA,CAAAmB,KAAU,CAAA9B,QAAA;gBACtCgG,aAAgB;cAClB;cAEA,OAAW,UAAS;YACpB;YACE,IAAArG,YACE,CAAAgB,KAAM,CAAAd,IAAA,EAAMqD,GAAA;cAGd,IAAMkD,UAAA,GAAArG,aAAsB,CAAAY,KAAM,CAAAmB,KAAA,CAAA9B,QAAA,EAAAmD,UAAA;cAClC,IAAMkD,UAAA,GAAAtG,aAAwB,CAAAY,KAAM,CAAAmB,KAAA,CAAA9B,QAAA,EAAAoD,UAAA;cACpC,KAAAgD,UAAiB,KAAAC,UAAM;gBACrB,MAAI,IAAOrC,KAAA,gEAA8B;cACvC;cACFyB,MAAA;gBACEK,EAAA,EAAA1B,QAAA,CAAAzD,KAAiB;gBACnB+D,KAAA,EAAAF,SAAA,CAAA4B,UAAA;gBACDxB,KAAA,EAAAD,WAAA,CAAAyB,UAAA;gBACDnB,UAAO,EAAAA,UAAA,CAAAmB,UAAA;gBACLL,UAAA,EAAAV,WAAA,CAAAgB,UAAA,CAAAvE,KAAA,CAAA9B,QAAA;cACA;cACA,OAAO;YAAiB;YACA,IACxB,CAAAL,YAAY,CAAAgB,KAAA,CAAAd,IAAW,EAAK4C,IAAA,MAAA9C,YAAA,CAAAgB,KAAA,CAAAd,IAAA,EAAAwD,YAAA;YAC9B,IAACtD,aAAA,CAAAY,KAAA,CAAAmB,KAAA,CAAA9B,QAAA,EAAA2C,YAAA;cACDzB,eAAA;YACF;YAEA,IAAM4E,EAAA,GAAA1B,QAAW,CAAAzD,KAAM;YACvB,IAAIhB,YAAO,CAAAgB,KAAa,CAAAd,IAAA,EAAAwD,YAAY;cAClC,IAAAiD,OAAa,GAAA3F,KAAI,CAAAmB,KAAM,CAAAlB,KAAU,aAAAD,KAAA,CAAAmB,KAAA,CAAAlB,KAAA,aAAAD,KAAA,CAAAmB,KAAA,CAAAyE,OAAA;cACnC,IAAAC,aAAA,GAAA7F,KAAA,CAAAmB,KAAA,CAAA0E,aAAA;cACA,IAAOC,eAAA,GAAA9F,KAAA,CAAAmB,KAAA,CAAA2E,eAAA;cACLvC,QAAA,CAAAwC,GAAA,CAAAZ,EAAA;gBACA,IAAO,OAAAU,aAAe;kBACtBA,aAAmB,CAAAF,OAAK,iBAAAA,OAAA;gBACxB,WAAY,OAAAG,eAAgB;kBAC7BA,eAAA,EAAAH,OAAA;gBACH;cAEI;cACJb,MAAO;gBACTK,EAAA;gBAEMpB,KAAQ,EAAAF,SAAA,CAAA7D,KAAc;gBACtBiE,KAAA,EAAAD,WAAgB,CAAAhE,KAAQ;gBAG5BgG,KAAA,EAAAL,OAAA;gBAACrB,UAAA,EAAAA,UAAA,CAAAtE,KAAA;cAAA;cACC,OAAS,UAAY;YACrB;YACA,IAAAiG,QAAA,GAAAjG,KAAA,CACEmB,KAAA,CAAA8E,QAAA;YAEF,WAAAA,QAAgB,KAAU,UAAS;cACnC1C,QAAY,CAAAwC,GAAA,CAAAZ,EAAM;gBAChB,OAAAc,QAAmB;cACnB;YACF;YACAnB,MAAA;cACEK,EAAA;cACApB,KAAA,EAAAF,SAAe,CAAA7D,KAAK;cACtBiE,KAAA,EAAAD,WAAA,CAAAhE,KAAA;cAECsE,UAAA,EAAAA,UAAc,CAAAtE,KAAA;YAAA;UACjB;UAEJ,SAAAP,SAAA,GAAAlB,KAAA,CAAAmB,QAAA,CAAAC,OAAA,CAAAgF,eAAA,EAAAjG,MAAA,CAAAkB,QAAA,KAAAC,KAAA,IAAAP,yBAAA,IAAAO,KAAA,GAAAJ,SAAA,CAAAK,IAAA,IAAAC,IAAA,GAAAT,yBAAA,SAAAgG,KAAA;QAEA,SAAOnF,GAAA;UACLZ,iBAAA;UACAC,cAAA,GAAAW,GAAA;QACA;UACA;YACA,KAAAb,yBAAA,IAAAG,SAAA,CAAAW,MAAA;cACAX,SAAA,CAAAW,MAAA;YACA;UACA;YACA,IAAAb,iBAAA;cACA,MAAAC,cAAA;YACA;UACA;QACA;QACA,IAAAqF,OAAA,EAAAI,YAAA;QACA,OAAAL,OAAA;MACA;MACA,IAAAsB,KAAA,GAAA9G,aAAA,CAAA8D,OAAA,CAAA/B,KAAA,CAAA9B,QAAA,EAAAgD,KAAA;MACA,IAAA8D,aAAA,GAAAlD,OAAA,CAAA9B,KAAA,CAAA4D,MAAA;MACF,sBAAAzG,IAAA,CAAAmD,cAAA;QACFmD,OAAA,EAAAF,WAAA,CAAAxB,OAAA,CAAA/B,KAAA,CAAA9B,QAAA;QAEA0E,KAAO,EAAAmC,KAAA,GAAAlF,YAAA,CAAAkF,KAAA,CAAA/E,KAAA,CAAA9B,QAAA;QACL+G,qBAAM,EAAAD,aAAA,oBAAAA,aAAA,gBAAAxE,aAAA;QACN0E,aAAM,EAAa,SAAAA,CAAKC,KAAA;UACxB,IAAAC,aAAa;UACf,QAAAA,aAAA,GAAAhD,QAAA,CAAAiD,GAAA,CAAAF,KAAA,CAAAG,WAAA,CAAAH,KAAA,eAAAC,aAAA,uBAAAA,aAAA;QACF","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/native",
3
- "version": "2.7.0",
3
+ "version": "2.7.2",
4
4
  "description": "Native setup modules for Tamagui - portals, gesture handler, worklets, and more",
5
5
  "type": "module",
6
6
  "sideEffects": [
@@ -156,7 +156,7 @@
156
156
  "clean:build": "tamagui-build clean:build"
157
157
  },
158
158
  "devDependencies": {
159
- "@tamagui/build": "2.7.0",
159
+ "@tamagui/build": "2.7.2",
160
160
  "burnt": "^0.12.2",
161
161
  "react": ">=19",
162
162
  "react-native": "0.83.2",
@@ -42,18 +42,51 @@ function marker(name: string): ComponentType<MarkerProps> {
42
42
  return Marker
43
43
  }
44
44
 
45
+ function isMarkerType(candidate: unknown, type: ComponentType<MarkerProps>): boolean {
46
+ if (candidate === type) return true
47
+ // createMenu runs every native component through withNativeMenu, which wraps
48
+ // it in a new function component and copies the marker's displayName onto the
49
+ // wrapper. that wrapper is a different reference, so an identity-only check
50
+ // matches nothing and every item silently comes back with an empty title, no
51
+ // icon, and no submenu. fall back to the (unique, ExpoUI-prefixed) name.
52
+ const wanted = (type as { displayName?: string }).displayName
53
+ if (!wanted) return false
54
+ return (
55
+ typeof candidate === 'function' &&
56
+ (candidate as { displayName?: string }).displayName === wanted
57
+ )
58
+ }
59
+
45
60
  function elementOfType(
46
61
  children: ReactNode,
47
62
  type: ComponentType<MarkerProps>
48
63
  ): ReactElement<MarkerProps> | null {
49
64
  for (const child of React.Children.toArray(children)) {
50
- if (React.isValidElement<MarkerProps>(child) && child.type === type) {
65
+ if (React.isValidElement<MarkerProps>(child) && isMarkerType(child.type, type)) {
51
66
  return child
52
67
  }
53
68
  }
54
69
  return null
55
70
  }
56
71
 
72
+ const warnedUnsupported = new Set<string>()
73
+
74
+ // @expo/ui's MenuAction carries no subtitle, and its MenuView has no preview or
75
+ // auxiliary view. these are decorations on a menu that is otherwise complete, so
76
+ // drop them and warn once. throwing took down the whole app for an optional
77
+ // embellishment, and an app that renders the same menu on zeego and on expo-ui
78
+ // cannot avoid it without forking its markup per adapter.
79
+ function warnUnsupported(feature: string) {
80
+ if (warnedUnsupported.has(feature) || process.env.NODE_ENV === 'production') {
81
+ return
82
+ }
83
+ warnedUnsupported.add(feature)
84
+ console.warn(
85
+ `[Tamagui] @expo/ui/community/menu does not support ${feature}, so it will not render. ` +
86
+ `Register a different native menu adapter if you need it.`
87
+ )
88
+ }
89
+
57
90
  function textFromNode(node: ReactNode): string {
58
91
  if (typeof node === 'string' || typeof node === 'number') return String(node)
59
92
  if (!React.isValidElement<MarkerProps>(node)) return ''
@@ -99,9 +132,7 @@ export function createExpoUIMenuAdapter({
99
132
  const auxiliary = elementOfType(children, Auxiliary)
100
133
 
101
134
  if (preview || auxiliary) {
102
- throw new Error(
103
- '@expo/ui/community/menu does not support Tamagui context-menu previews or auxiliary views'
104
- )
135
+ warnUnsupported('context-menu previews or auxiliary views')
105
136
  }
106
137
  if (!trigger || !content) {
107
138
  throw new Error('Tamagui native menus require one Trigger and one Content')
@@ -181,13 +212,13 @@ export function createExpoUIMenuAdapter({
181
212
  for (const child of React.Children.toArray(childrenToParse)) {
182
213
  if (!React.isValidElement<MarkerProps>(child)) continue
183
214
 
184
- if (child.type === Separator) {
215
+ if (isMarkerType(child.type, Separator)) {
185
216
  if (!section) section = actions.splice(0)
186
217
  flushSection()
187
218
  continue
188
219
  }
189
220
 
190
- if (child.type === Group) {
221
+ if (isMarkerType(child.type, Group)) {
191
222
  const label = elementOfType(child.props.children, Label)
192
223
  append({
193
224
  id: actionId(child),
@@ -198,7 +229,7 @@ export function createExpoUIMenuAdapter({
198
229
  continue
199
230
  }
200
231
 
201
- if (child.type === Sub) {
232
+ if (isMarkerType(child.type, Sub)) {
202
233
  const subTrigger = elementOfType(child.props.children, SubTrigger)
203
234
  const subContent = elementOfType(child.props.children, SubContent)
204
235
  if (!subTrigger || !subContent) {
@@ -216,16 +247,15 @@ export function createExpoUIMenuAdapter({
216
247
  continue
217
248
  }
218
249
 
219
- if (child.type !== Item && child.type !== CheckboxItem) continue
250
+ if (!isMarkerType(child.type, Item) && !isMarkerType(child.type, CheckboxItem))
251
+ continue
220
252
 
221
253
  if (elementOfType(child.props.children, ItemSubtitle)) {
222
- throw new Error(
223
- '@expo/ui/community/menu does not support menu item subtitles'
224
- )
254
+ warnUnsupported('menu item subtitles')
225
255
  }
226
256
 
227
257
  const id = actionId(child)
228
- if (child.type === CheckboxItem) {
258
+ if (isMarkerType(child.type, CheckboxItem)) {
229
259
  const current =
230
260
  child.props.value === true ||
231
261
  child.props.value === 'on' ||
@@ -1,11 +1,11 @@
1
1
  {
2
- "mappings": "AAAA,cAAc,qBAA8C;AAG5D,cAAc,yBAA2C;AA0BzD,YAAY,2BAA2B;CACrC,UAAU;;AAgCZ,OAAO,iBAAS,wBAAwB,EACtC,YACC,2BAA2B",
2
+ "mappings": "AAAA,cAAc,qBAA8C;AAG5D,cAAc,yBAA2C;AA0BzD,YAAY,2BAA2B;CACrC,UAAU;;AAiEZ,OAAO,iBAAS,wBAAwB,EACtC,YACC,2BAA2B",
3
3
  "names": [],
4
4
  "sources": [
5
5
  "src/expoUIMenuAdapter.tsx"
6
6
  ],
7
7
  "version": 3,
8
8
  "sourcesContent": [
9
- "import type { ComponentType, ReactElement, ReactNode } from 'react'\nimport React from 'react'\n\nimport type { NativeMenuAdapter, NativeMenuModule } from './nativeMenuState'\n\ntype ExpoMenuAction = {\n id: string\n title: string\n image?: unknown\n state?: 'on' | 'off'\n attributes?: {\n destructive?: boolean\n disabled?: boolean\n hidden?: boolean\n }\n subactions?: ExpoMenuAction[]\n displayInline?: boolean\n}\n\ntype ExpoMenuViewProps = {\n actions: ExpoMenuAction[]\n title?: string\n shouldOpenOnLongPress?: boolean\n onPressAction?: (event: { nativeEvent: { event: string } }) => void\n onOpenMenu?: () => void\n onCloseMenu?: () => void\n children?: ReactNode\n}\n\nexport type ExpoUIMenuAdapterOptions = {\n MenuView: ComponentType<any>\n}\n\ntype MarkerProps = {\n children?: ReactNode\n [key: string]: unknown\n}\n\nfunction marker(name: string): ComponentType<MarkerProps> {\n const Marker = () => null\n Marker.displayName = `ExpoUI${name}`\n return Marker\n}\n\nfunction elementOfType(\n children: ReactNode,\n type: ComponentType<MarkerProps>\n): ReactElement<MarkerProps> | null {\n for (const child of React.Children.toArray(children)) {\n if (React.isValidElement<MarkerProps>(child) && child.type === type) {\n return child\n }\n }\n return null\n}\n\nfunction textFromNode(node: ReactNode): string {\n if (typeof node === 'string' || typeof node === 'number') return String(node)\n if (!React.isValidElement<MarkerProps>(node)) return ''\n return React.Children.toArray(node.props.children).map(textFromNode).join('')\n}\n\nexport function createExpoUIMenuAdapter({\n MenuView,\n}: ExpoUIMenuAdapterOptions): NativeMenuAdapter {\n const NativeMenuView: ComponentType<ExpoMenuViewProps> = MenuView\n\n function createModule(isContextMenu: boolean): NativeMenuModule {\n const Trigger = marker('Trigger')\n const Content = marker('Content')\n const Item = marker('Item')\n const ItemTitle = marker('ItemTitle')\n const ItemSubtitle = marker('ItemSubtitle')\n const ItemIcon = marker('ItemIcon')\n const ItemImage = marker('ItemImage')\n const ItemIndicator = marker('ItemIndicator')\n const Group = marker('Group')\n const Label = marker('Label')\n const Separator = marker('Separator')\n const Sub = marker('Sub')\n const SubTrigger = marker('SubTrigger')\n const SubContent = marker('SubContent')\n const CheckboxItem = marker('CheckboxItem')\n const Preview = marker('Preview')\n const Auxiliary = marker('Auxiliary')\n\n function Root({\n children,\n onOpenChange,\n onOpenWillChange,\n }: {\n children?: ReactNode\n onOpenChange?: (open: boolean) => void\n onOpenWillChange?: (open: boolean) => void\n }) {\n const trigger = elementOfType(children, Trigger)\n const content = elementOfType(children, Content)\n const preview = elementOfType(children, Preview)\n const auxiliary = elementOfType(children, Auxiliary)\n\n if (preview || auxiliary) {\n throw new Error(\n '@expo/ui/community/menu does not support Tamagui context-menu previews or auxiliary views'\n )\n }\n if (!trigger || !content) {\n throw new Error('Tamagui native menus require one Trigger and one Content')\n }\n\n let nextId = 0\n const handlers = new Map<string, () => void>()\n\n function actionId(element: ReactElement<MarkerProps>): string {\n return element.key == null\n ? `tamagui-menu-${nextId++}`\n : String(element.key).replace(/^\\.\\$/, '')\n }\n\n function itemTitle(element: ReactElement<MarkerProps>): string {\n if (typeof element.props.textValue === 'string') return element.props.textValue\n const title = elementOfType(element.props.children, ItemTitle)\n return title ? textFromNode(title.props.children) : ''\n }\n\n function actionImage(element: ReactElement<MarkerProps>): unknown {\n const image = elementOfType(element.props.children, ItemImage)\n if (image?.props.source) return image.props.source\n const icon = elementOfType(element.props.children, ItemIcon)\n if (!icon) return undefined\n const ios = icon.props.ios\n if (\n typeof ios === 'object' &&\n ios &&\n 'name' in ios &&\n typeof ios.name === 'string'\n ) {\n return ios.name\n }\n return typeof icon.props.iosIconName === 'string'\n ? icon.props.iosIconName\n : undefined\n }\n\n function attributes(\n element: ReactElement<MarkerProps>\n ): ExpoMenuAction['attributes'] {\n const destructive = element.props.destructive === true\n const disabled = element.props.disabled === true\n const hidden = element.props.hidden === true\n return destructive || disabled || hidden\n ? { destructive, disabled, hidden }\n : undefined\n }\n\n function actionsFrom(childrenToParse: ReactNode): ExpoMenuAction[] {\n const actions: ExpoMenuAction[] = []\n let section: ExpoMenuAction[] | null = null\n\n function append(action: ExpoMenuAction) {\n if (section) {\n section.push(action)\n } else {\n actions.push(action)\n }\n }\n\n function flushSection() {\n if (!section?.length) {\n section = []\n return\n }\n actions.push({\n id: `tamagui-menu-section-${nextId++}`,\n title: '',\n subactions: section,\n displayInline: true,\n })\n section = []\n }\n\n for (const child of React.Children.toArray(childrenToParse)) {\n if (!React.isValidElement<MarkerProps>(child)) continue\n\n if (child.type === Separator) {\n if (!section) section = actions.splice(0)\n flushSection()\n continue\n }\n\n if (child.type === Group) {\n const label = elementOfType(child.props.children, Label)\n append({\n id: actionId(child),\n title: label ? textFromNode(label.props.children) : '',\n subactions: actionsFrom(child.props.children),\n displayInline: true,\n })\n continue\n }\n\n if (child.type === Sub) {\n const subTrigger = elementOfType(child.props.children, SubTrigger)\n const subContent = elementOfType(child.props.children, SubContent)\n if (!subTrigger || !subContent) {\n throw new Error(\n 'Tamagui native submenus require one SubTrigger and SubContent'\n )\n }\n append({\n id: actionId(child),\n title: itemTitle(subTrigger),\n image: actionImage(subTrigger),\n attributes: attributes(subTrigger),\n subactions: actionsFrom(subContent.props.children),\n })\n continue\n }\n\n if (child.type !== Item && child.type !== CheckboxItem) continue\n\n if (elementOfType(child.props.children, ItemSubtitle)) {\n throw new Error(\n '@expo/ui/community/menu does not support menu item subtitles'\n )\n }\n\n const id = actionId(child)\n if (child.type === CheckboxItem) {\n const current =\n child.props.value === true ||\n child.props.value === 'on' ||\n child.props.checked === true\n const onValueChange = child.props.onValueChange\n const onCheckedChange = child.props.onCheckedChange\n handlers.set(id, () => {\n if (typeof onValueChange === 'function') {\n onValueChange(current ? 'off' : 'on', current ? 'on' : 'off')\n } else if (typeof onCheckedChange === 'function') {\n onCheckedChange(!current)\n }\n })\n append({\n id,\n title: itemTitle(child),\n image: actionImage(child),\n state: current ? 'on' : 'off',\n attributes: attributes(child),\n })\n continue\n }\n\n const onSelect = child.props.onSelect\n if (typeof onSelect === 'function') {\n handlers.set(id, () => onSelect())\n }\n append({\n id,\n title: itemTitle(child),\n image: actionImage(child),\n attributes: attributes(child),\n })\n }\n\n if (section) flushSection()\n return actions\n }\n\n const label = elementOfType(content.props.children, Label)\n const triggerAction = trigger.props.action\n\n return (\n <NativeMenuView\n actions={actionsFrom(content.props.children)}\n title={label ? textFromNode(label.props.children) : undefined}\n shouldOpenOnLongPress={\n triggerAction === 'longPress' || (triggerAction !== 'press' && isContextMenu)\n }\n onPressAction={(event) => handlers.get(event.nativeEvent.event)?.()}\n onOpenMenu={() => {\n onOpenWillChange?.(true)\n onOpenChange?.(true)\n }}\n onCloseMenu={() => {\n onOpenWillChange?.(false)\n onOpenChange?.(false)\n }}\n >\n {trigger.props.children}\n </NativeMenuView>\n )\n }\n\n return {\n Root,\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 Preview,\n Auxiliary,\n }\n }\n\n return {\n name: 'expo-ui',\n Menu: createModule(false),\n ContextMenu: createModule(true),\n }\n}\n"
9
+ "import type { ComponentType, ReactElement, ReactNode } from 'react'\nimport React from 'react'\n\nimport type { NativeMenuAdapter, NativeMenuModule } from './nativeMenuState'\n\ntype ExpoMenuAction = {\n id: string\n title: string\n image?: unknown\n state?: 'on' | 'off'\n attributes?: {\n destructive?: boolean\n disabled?: boolean\n hidden?: boolean\n }\n subactions?: ExpoMenuAction[]\n displayInline?: boolean\n}\n\ntype ExpoMenuViewProps = {\n actions: ExpoMenuAction[]\n title?: string\n shouldOpenOnLongPress?: boolean\n onPressAction?: (event: { nativeEvent: { event: string } }) => void\n onOpenMenu?: () => void\n onCloseMenu?: () => void\n children?: ReactNode\n}\n\nexport type ExpoUIMenuAdapterOptions = {\n MenuView: ComponentType<any>\n}\n\ntype MarkerProps = {\n children?: ReactNode\n [key: string]: unknown\n}\n\nfunction marker(name: string): ComponentType<MarkerProps> {\n const Marker = () => null\n Marker.displayName = `ExpoUI${name}`\n return Marker\n}\n\nfunction isMarkerType(candidate: unknown, type: ComponentType<MarkerProps>): boolean {\n if (candidate === type) return true\n // createMenu runs every native component through withNativeMenu, which wraps\n // it in a new function component and copies the marker's displayName onto the\n // wrapper. that wrapper is a different reference, so an identity-only check\n // matches nothing and every item silently comes back with an empty title, no\n // icon, and no submenu. fall back to the (unique, ExpoUI-prefixed) name.\n const wanted = (type as { displayName?: string }).displayName\n if (!wanted) return false\n return (\n typeof candidate === 'function' &&\n (candidate as { displayName?: string }).displayName === wanted\n )\n}\n\nfunction elementOfType(\n children: ReactNode,\n type: ComponentType<MarkerProps>\n): ReactElement<MarkerProps> | null {\n for (const child of React.Children.toArray(children)) {\n if (React.isValidElement<MarkerProps>(child) && isMarkerType(child.type, type)) {\n return child\n }\n }\n return null\n}\n\nconst warnedUnsupported = new Set<string>()\n\n// @expo/ui's MenuAction carries no subtitle, and its MenuView has no preview or\n// auxiliary view. these are decorations on a menu that is otherwise complete, so\n// drop them and warn once. throwing took down the whole app for an optional\n// embellishment, and an app that renders the same menu on zeego and on expo-ui\n// cannot avoid it without forking its markup per adapter.\nfunction warnUnsupported(feature: string) {\n if (warnedUnsupported.has(feature) || process.env.NODE_ENV === 'production') {\n return\n }\n warnedUnsupported.add(feature)\n console.warn(\n `[Tamagui] @expo/ui/community/menu does not support ${feature}, so it will not render. ` +\n `Register a different native menu adapter if you need it.`\n )\n}\n\nfunction textFromNode(node: ReactNode): string {\n if (typeof node === 'string' || typeof node === 'number') return String(node)\n if (!React.isValidElement<MarkerProps>(node)) return ''\n return React.Children.toArray(node.props.children).map(textFromNode).join('')\n}\n\nexport function createExpoUIMenuAdapter({\n MenuView,\n}: ExpoUIMenuAdapterOptions): NativeMenuAdapter {\n const NativeMenuView: ComponentType<ExpoMenuViewProps> = MenuView\n\n function createModule(isContextMenu: boolean): NativeMenuModule {\n const Trigger = marker('Trigger')\n const Content = marker('Content')\n const Item = marker('Item')\n const ItemTitle = marker('ItemTitle')\n const ItemSubtitle = marker('ItemSubtitle')\n const ItemIcon = marker('ItemIcon')\n const ItemImage = marker('ItemImage')\n const ItemIndicator = marker('ItemIndicator')\n const Group = marker('Group')\n const Label = marker('Label')\n const Separator = marker('Separator')\n const Sub = marker('Sub')\n const SubTrigger = marker('SubTrigger')\n const SubContent = marker('SubContent')\n const CheckboxItem = marker('CheckboxItem')\n const Preview = marker('Preview')\n const Auxiliary = marker('Auxiliary')\n\n function Root({\n children,\n onOpenChange,\n onOpenWillChange,\n }: {\n children?: ReactNode\n onOpenChange?: (open: boolean) => void\n onOpenWillChange?: (open: boolean) => void\n }) {\n const trigger = elementOfType(children, Trigger)\n const content = elementOfType(children, Content)\n const preview = elementOfType(children, Preview)\n const auxiliary = elementOfType(children, Auxiliary)\n\n if (preview || auxiliary) {\n warnUnsupported('context-menu previews or auxiliary views')\n }\n if (!trigger || !content) {\n throw new Error('Tamagui native menus require one Trigger and one Content')\n }\n\n let nextId = 0\n const handlers = new Map<string, () => void>()\n\n function actionId(element: ReactElement<MarkerProps>): string {\n return element.key == null\n ? `tamagui-menu-${nextId++}`\n : String(element.key).replace(/^\\.\\$/, '')\n }\n\n function itemTitle(element: ReactElement<MarkerProps>): string {\n if (typeof element.props.textValue === 'string') return element.props.textValue\n const title = elementOfType(element.props.children, ItemTitle)\n return title ? textFromNode(title.props.children) : ''\n }\n\n function actionImage(element: ReactElement<MarkerProps>): unknown {\n const image = elementOfType(element.props.children, ItemImage)\n if (image?.props.source) return image.props.source\n const icon = elementOfType(element.props.children, ItemIcon)\n if (!icon) return undefined\n const ios = icon.props.ios\n if (\n typeof ios === 'object' &&\n ios &&\n 'name' in ios &&\n typeof ios.name === 'string'\n ) {\n return ios.name\n }\n return typeof icon.props.iosIconName === 'string'\n ? icon.props.iosIconName\n : undefined\n }\n\n function attributes(\n element: ReactElement<MarkerProps>\n ): ExpoMenuAction['attributes'] {\n const destructive = element.props.destructive === true\n const disabled = element.props.disabled === true\n const hidden = element.props.hidden === true\n return destructive || disabled || hidden\n ? { destructive, disabled, hidden }\n : undefined\n }\n\n function actionsFrom(childrenToParse: ReactNode): ExpoMenuAction[] {\n const actions: ExpoMenuAction[] = []\n let section: ExpoMenuAction[] | null = null\n\n function append(action: ExpoMenuAction) {\n if (section) {\n section.push(action)\n } else {\n actions.push(action)\n }\n }\n\n function flushSection() {\n if (!section?.length) {\n section = []\n return\n }\n actions.push({\n id: `tamagui-menu-section-${nextId++}`,\n title: '',\n subactions: section,\n displayInline: true,\n })\n section = []\n }\n\n for (const child of React.Children.toArray(childrenToParse)) {\n if (!React.isValidElement<MarkerProps>(child)) continue\n\n if (isMarkerType(child.type, Separator)) {\n if (!section) section = actions.splice(0)\n flushSection()\n continue\n }\n\n if (isMarkerType(child.type, Group)) {\n const label = elementOfType(child.props.children, Label)\n append({\n id: actionId(child),\n title: label ? textFromNode(label.props.children) : '',\n subactions: actionsFrom(child.props.children),\n displayInline: true,\n })\n continue\n }\n\n if (isMarkerType(child.type, Sub)) {\n const subTrigger = elementOfType(child.props.children, SubTrigger)\n const subContent = elementOfType(child.props.children, SubContent)\n if (!subTrigger || !subContent) {\n throw new Error(\n 'Tamagui native submenus require one SubTrigger and SubContent'\n )\n }\n append({\n id: actionId(child),\n title: itemTitle(subTrigger),\n image: actionImage(subTrigger),\n attributes: attributes(subTrigger),\n subactions: actionsFrom(subContent.props.children),\n })\n continue\n }\n\n if (!isMarkerType(child.type, Item) && !isMarkerType(child.type, CheckboxItem))\n continue\n\n if (elementOfType(child.props.children, ItemSubtitle)) {\n warnUnsupported('menu item subtitles')\n }\n\n const id = actionId(child)\n if (isMarkerType(child.type, CheckboxItem)) {\n const current =\n child.props.value === true ||\n child.props.value === 'on' ||\n child.props.checked === true\n const onValueChange = child.props.onValueChange\n const onCheckedChange = child.props.onCheckedChange\n handlers.set(id, () => {\n if (typeof onValueChange === 'function') {\n onValueChange(current ? 'off' : 'on', current ? 'on' : 'off')\n } else if (typeof onCheckedChange === 'function') {\n onCheckedChange(!current)\n }\n })\n append({\n id,\n title: itemTitle(child),\n image: actionImage(child),\n state: current ? 'on' : 'off',\n attributes: attributes(child),\n })\n continue\n }\n\n const onSelect = child.props.onSelect\n if (typeof onSelect === 'function') {\n handlers.set(id, () => onSelect())\n }\n append({\n id,\n title: itemTitle(child),\n image: actionImage(child),\n attributes: attributes(child),\n })\n }\n\n if (section) flushSection()\n return actions\n }\n\n const label = elementOfType(content.props.children, Label)\n const triggerAction = trigger.props.action\n\n return (\n <NativeMenuView\n actions={actionsFrom(content.props.children)}\n title={label ? textFromNode(label.props.children) : undefined}\n shouldOpenOnLongPress={\n triggerAction === 'longPress' || (triggerAction !== 'press' && isContextMenu)\n }\n onPressAction={(event) => handlers.get(event.nativeEvent.event)?.()}\n onOpenMenu={() => {\n onOpenWillChange?.(true)\n onOpenChange?.(true)\n }}\n onCloseMenu={() => {\n onOpenWillChange?.(false)\n onOpenChange?.(false)\n }}\n >\n {trigger.props.children}\n </NativeMenuView>\n )\n }\n\n return {\n Root,\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 Preview,\n Auxiliary,\n }\n }\n\n return {\n name: 'expo-ui',\n Menu: createModule(false),\n ContextMenu: createModule(true),\n }\n}\n"
10
10
  ]
11
11
  }