tamagui 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,4 +1,4 @@
1
1
  $ tamagui-build
2
- built tamagui in 763 ms
2
+ built tamagui in 2855 ms
3
3
  Running afterBuild script...
4
- afterBuild completed in 226 ms
4
+ afterBuild completed in 1055 ms
package/dist/native.cjs CHANGED
@@ -14005,12 +14005,18 @@ function marker(name) {
14005
14005
  Marker.displayName = `ExpoUI${name}`;
14006
14006
  return Marker;
14007
14007
  }
14008
+ function isMarkerType(candidate, type) {
14009
+ if (candidate === type) return true;
14010
+ var wanted = type.displayName;
14011
+ if (!wanted) return false;
14012
+ return typeof candidate === "function" && candidate.displayName === wanted;
14013
+ }
14008
14014
  function elementOfType(children, type) {
14009
14015
  var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
14010
14016
  try {
14011
14017
  for (var _iterator = react$1.default.Children.toArray(children)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
14012
14018
  var child = _step.value;
14013
- if (/* @__PURE__ */ react$1.default.isValidElement(child) && child.type === type) return child;
14019
+ if (/* @__PURE__ */ react$1.default.isValidElement(child) && isMarkerType(child.type, type)) return child;
14014
14020
  }
14015
14021
  } catch (err) {
14016
14022
  _didIteratorError = true;
@@ -14024,6 +14030,11 @@ function elementOfType(children, type) {
14024
14030
  }
14025
14031
  return null;
14026
14032
  }
14033
+ function warnUnsupported(feature) {
14034
+ if (warnedUnsupported.has(feature) || true) return;
14035
+ warnedUnsupported.add(feature);
14036
+ 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.`);
14037
+ }
14027
14038
  function textFromNode(node) {
14028
14039
  if (typeof node === "string" || typeof node === "number") return String(node);
14029
14040
  if (!/* @__PURE__ */ react$1.default.isValidElement(node)) return "";
@@ -14056,7 +14067,7 @@ function createExpoUIMenuAdapter(param) {
14056
14067
  var content = elementOfType(children, Content);
14057
14068
  var preview = elementOfType(children, Preview);
14058
14069
  var auxiliary = elementOfType(children, Auxiliary);
14059
- if (preview || auxiliary) throw new Error("@expo/ui/community/menu does not support Tamagui context-menu previews or auxiliary views");
14070
+ if (preview || auxiliary) warnUnsupported("context-menu previews or auxiliary views");
14060
14071
  if (!trigger || !content) throw new Error("Tamagui native menus require one Trigger and one Content");
14061
14072
  var nextId = 0;
14062
14073
  var handlers = /* @__PURE__ */ new Map();
@@ -14112,12 +14123,12 @@ function createExpoUIMenuAdapter(param) {
14112
14123
  var _loop = function() {
14113
14124
  var child = _step.value;
14114
14125
  if (!/* @__PURE__ */ react$1.default.isValidElement(child)) return "continue";
14115
- if (child.type === Separator) {
14126
+ if (isMarkerType(child.type, Separator)) {
14116
14127
  if (!section) section = actions.splice(0);
14117
14128
  flushSection();
14118
14129
  return "continue";
14119
14130
  }
14120
- if (child.type === Group) {
14131
+ if (isMarkerType(child.type, Group)) {
14121
14132
  var label2 = elementOfType(child.props.children, Label);
14122
14133
  append({
14123
14134
  id: actionId(child),
@@ -14127,7 +14138,7 @@ function createExpoUIMenuAdapter(param) {
14127
14138
  });
14128
14139
  return "continue";
14129
14140
  }
14130
- if (child.type === Sub) {
14141
+ if (isMarkerType(child.type, Sub)) {
14131
14142
  var subTrigger = elementOfType(child.props.children, SubTrigger);
14132
14143
  var subContent = elementOfType(child.props.children, SubContent);
14133
14144
  if (!subTrigger || !subContent) throw new Error("Tamagui native submenus require one SubTrigger and SubContent");
@@ -14140,10 +14151,10 @@ function createExpoUIMenuAdapter(param) {
14140
14151
  });
14141
14152
  return "continue";
14142
14153
  }
14143
- if (child.type !== Item && child.type !== CheckboxItem) return "continue";
14144
- if (elementOfType(child.props.children, ItemSubtitle)) throw new Error("@expo/ui/community/menu does not support menu item subtitles");
14154
+ if (!isMarkerType(child.type, Item) && !isMarkerType(child.type, CheckboxItem)) return "continue";
14155
+ if (elementOfType(child.props.children, ItemSubtitle)) warnUnsupported("menu item subtitles");
14145
14156
  var id = actionId(child);
14146
- if (child.type === CheckboxItem) {
14157
+ if (isMarkerType(child.type, CheckboxItem)) {
14147
14158
  var current = child.props.value === true || child.props.value === "on" || child.props.checked === true;
14148
14159
  var onValueChange = child.props.onValueChange;
14149
14160
  var onCheckedChange = child.props.onCheckedChange;
@@ -14233,7 +14244,10 @@ function createExpoUIMenuAdapter(param) {
14233
14244
  ContextMenu: createModule(true)
14234
14245
  };
14235
14246
  }
14236
- var init_expoUIMenuAdapter_native = __esmMin((() => {}));
14247
+ var warnedUnsupported;
14248
+ var init_expoUIMenuAdapter_native = __esmMin((() => {
14249
+ warnedUnsupported = /* @__PURE__ */ new Set();
14250
+ }));
14237
14251
  //#endregion
14238
14252
  //#region ../../core/native/dist/esm/nativeMenuContext.native.js
14239
14253
  var NativeMenuContext;
package/dist/test.cjs CHANGED
@@ -14183,12 +14183,18 @@ function marker(name) {
14183
14183
  Marker.displayName = `ExpoUI${name}`;
14184
14184
  return Marker;
14185
14185
  }
14186
+ function isMarkerType(candidate, type) {
14187
+ if (candidate === type) return true;
14188
+ var wanted = type.displayName;
14189
+ if (!wanted) return false;
14190
+ return typeof candidate === "function" && candidate.displayName === wanted;
14191
+ }
14186
14192
  function elementOfType(children, type) {
14187
14193
  var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
14188
14194
  try {
14189
14195
  for (var _iterator = react$1.default.Children.toArray(children)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
14190
14196
  var child = _step.value;
14191
- if (/* @__PURE__ */ react$1.default.isValidElement(child) && child.type === type) return child;
14197
+ if (/* @__PURE__ */ react$1.default.isValidElement(child) && isMarkerType(child.type, type)) return child;
14192
14198
  }
14193
14199
  } catch (err) {
14194
14200
  _didIteratorError = true;
@@ -14202,6 +14208,11 @@ function elementOfType(children, type) {
14202
14208
  }
14203
14209
  return null;
14204
14210
  }
14211
+ function warnUnsupported(feature) {
14212
+ if (warnedUnsupported.has(feature) || false) return;
14213
+ warnedUnsupported.add(feature);
14214
+ 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.`);
14215
+ }
14205
14216
  function textFromNode(node) {
14206
14217
  if (typeof node === "string" || typeof node === "number") return String(node);
14207
14218
  if (!/* @__PURE__ */ react$1.default.isValidElement(node)) return "";
@@ -14234,7 +14245,7 @@ function createExpoUIMenuAdapter(param) {
14234
14245
  var content = elementOfType(children, Content);
14235
14246
  var preview = elementOfType(children, Preview);
14236
14247
  var auxiliary = elementOfType(children, Auxiliary);
14237
- if (preview || auxiliary) throw new Error("@expo/ui/community/menu does not support Tamagui context-menu previews or auxiliary views");
14248
+ if (preview || auxiliary) warnUnsupported("context-menu previews or auxiliary views");
14238
14249
  if (!trigger || !content) throw new Error("Tamagui native menus require one Trigger and one Content");
14239
14250
  var nextId = 0;
14240
14251
  var handlers = /* @__PURE__ */ new Map();
@@ -14290,12 +14301,12 @@ function createExpoUIMenuAdapter(param) {
14290
14301
  var _loop = function() {
14291
14302
  var child = _step.value;
14292
14303
  if (!/* @__PURE__ */ react$1.default.isValidElement(child)) return "continue";
14293
- if (child.type === Separator) {
14304
+ if (isMarkerType(child.type, Separator)) {
14294
14305
  if (!section) section = actions.splice(0);
14295
14306
  flushSection();
14296
14307
  return "continue";
14297
14308
  }
14298
- if (child.type === Group) {
14309
+ if (isMarkerType(child.type, Group)) {
14299
14310
  var label2 = elementOfType(child.props.children, Label);
14300
14311
  append({
14301
14312
  id: actionId(child),
@@ -14305,7 +14316,7 @@ function createExpoUIMenuAdapter(param) {
14305
14316
  });
14306
14317
  return "continue";
14307
14318
  }
14308
- if (child.type === Sub) {
14319
+ if (isMarkerType(child.type, Sub)) {
14309
14320
  var subTrigger = elementOfType(child.props.children, SubTrigger);
14310
14321
  var subContent = elementOfType(child.props.children, SubContent);
14311
14322
  if (!subTrigger || !subContent) throw new Error("Tamagui native submenus require one SubTrigger and SubContent");
@@ -14318,10 +14329,10 @@ function createExpoUIMenuAdapter(param) {
14318
14329
  });
14319
14330
  return "continue";
14320
14331
  }
14321
- if (child.type !== Item && child.type !== CheckboxItem) return "continue";
14322
- if (elementOfType(child.props.children, ItemSubtitle)) throw new Error("@expo/ui/community/menu does not support menu item subtitles");
14332
+ if (!isMarkerType(child.type, Item) && !isMarkerType(child.type, CheckboxItem)) return "continue";
14333
+ if (elementOfType(child.props.children, ItemSubtitle)) warnUnsupported("menu item subtitles");
14323
14334
  var id = actionId(child);
14324
- if (child.type === CheckboxItem) {
14335
+ if (isMarkerType(child.type, CheckboxItem)) {
14325
14336
  var current = child.props.value === true || child.props.value === "on" || child.props.checked === true;
14326
14337
  var onValueChange = child.props.onValueChange;
14327
14338
  var onCheckedChange = child.props.onCheckedChange;
@@ -14411,7 +14422,10 @@ function createExpoUIMenuAdapter(param) {
14411
14422
  ContextMenu: createModule(true)
14412
14423
  };
14413
14424
  }
14414
- var init_expoUIMenuAdapter_native = __esmMin((() => {}));
14425
+ var warnedUnsupported;
14426
+ var init_expoUIMenuAdapter_native = __esmMin((() => {
14427
+ warnedUnsupported = /* @__PURE__ */ new Set();
14428
+ }));
14415
14429
  //#endregion
14416
14430
  //#region ../../core/native/dist/esm/nativeMenuContext.native.js
14417
14431
  var NativeMenuContext;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tamagui",
3
- "version": "2.7.0",
3
+ "version": "2.7.2",
4
4
  "gitHead": "a49cc7ea6b93ba384e77a4880ae48ac4a5635c14",
5
5
  "description": "Style and UI for React (web and native) meet an optimizing compiler",
6
6
  "repository": {
@@ -77,72 +77,72 @@
77
77
  "check-circular-deps": "npx madge --circular ./src/index.ts"
78
78
  },
79
79
  "dependencies": {
80
- "@tamagui/accordion": "2.7.0",
81
- "@tamagui/adapt": "2.7.0",
82
- "@tamagui/alert-dialog": "2.7.0",
83
- "@tamagui/animate": "2.7.0",
84
- "@tamagui/animate-presence": "2.7.0",
85
- "@tamagui/avatar": "2.7.0",
86
- "@tamagui/button": "2.7.0",
87
- "@tamagui/card": "2.7.0",
88
- "@tamagui/checkbox": "2.7.0",
89
- "@tamagui/collapsible": "2.7.0",
90
- "@tamagui/compose-refs": "2.7.0",
91
- "@tamagui/constants": "2.7.0",
92
- "@tamagui/context-menu": "2.7.0",
93
- "@tamagui/core": "2.7.0",
94
- "@tamagui/create-context": "2.7.0",
95
- "@tamagui/create-menu": "2.7.0",
96
- "@tamagui/dialog": "2.7.0",
97
- "@tamagui/element": "2.7.0",
98
- "@tamagui/elements": "2.7.0",
99
- "@tamagui/fake-react-native": "2.7.0",
100
- "@tamagui/focusable": "2.7.0",
101
- "@tamagui/form": "2.7.0",
102
- "@tamagui/get-button-sized": "2.7.0",
103
- "@tamagui/get-font-sized": "2.7.0",
104
- "@tamagui/get-token": "2.7.0",
105
- "@tamagui/group": "2.7.0",
106
- "@tamagui/helpers-tamagui": "2.7.0",
107
- "@tamagui/image": "2.7.0",
108
- "@tamagui/input": "2.7.0",
109
- "@tamagui/label": "2.7.0",
110
- "@tamagui/linear-gradient": "2.7.0",
111
- "@tamagui/list-item": "2.7.0",
112
- "@tamagui/menu": "2.7.0",
113
- "@tamagui/polyfill-dev": "2.7.0",
114
- "@tamagui/popover": "2.7.0",
115
- "@tamagui/popper": "2.7.0",
116
- "@tamagui/portal": "2.7.0",
117
- "@tamagui/progress": "2.7.0",
118
- "@tamagui/radio-group": "2.7.0",
119
- "@tamagui/react-native-media-driver": "2.7.0",
120
- "@tamagui/scroll-view": "2.7.0",
121
- "@tamagui/select": "2.7.0",
122
- "@tamagui/separator": "2.7.0",
123
- "@tamagui/shapes": "2.7.0",
124
- "@tamagui/sheet": "2.7.0",
125
- "@tamagui/slider": "2.7.0",
126
- "@tamagui/spacer": "2.7.0",
127
- "@tamagui/spinner": "2.7.0",
128
- "@tamagui/stacks": "2.7.0",
129
- "@tamagui/switch": "2.7.0",
130
- "@tamagui/tabs": "2.7.0",
131
- "@tamagui/text": "2.7.0",
132
- "@tamagui/theme": "2.7.0",
133
- "@tamagui/toast": "2.7.0",
134
- "@tamagui/toggle-group": "2.7.0",
135
- "@tamagui/tooltip": "2.7.0",
136
- "@tamagui/use-controllable-state": "2.7.0",
137
- "@tamagui/use-debounce": "2.7.0",
138
- "@tamagui/use-force-update": "2.7.0",
139
- "@tamagui/use-window-dimensions": "2.7.0",
140
- "@tamagui/visually-hidden": "2.7.0",
141
- "@tamagui/font-size": "2.7.0",
142
- "@tamagui/z-index-stack": "2.7.0"
80
+ "@tamagui/accordion": "2.7.2",
81
+ "@tamagui/adapt": "2.7.2",
82
+ "@tamagui/alert-dialog": "2.7.2",
83
+ "@tamagui/animate": "2.7.2",
84
+ "@tamagui/animate-presence": "2.7.2",
85
+ "@tamagui/avatar": "2.7.2",
86
+ "@tamagui/button": "2.7.2",
87
+ "@tamagui/card": "2.7.2",
88
+ "@tamagui/checkbox": "2.7.2",
89
+ "@tamagui/collapsible": "2.7.2",
90
+ "@tamagui/compose-refs": "2.7.2",
91
+ "@tamagui/constants": "2.7.2",
92
+ "@tamagui/context-menu": "2.7.2",
93
+ "@tamagui/core": "2.7.2",
94
+ "@tamagui/create-context": "2.7.2",
95
+ "@tamagui/create-menu": "2.7.2",
96
+ "@tamagui/dialog": "2.7.2",
97
+ "@tamagui/element": "2.7.2",
98
+ "@tamagui/elements": "2.7.2",
99
+ "@tamagui/fake-react-native": "2.7.2",
100
+ "@tamagui/focusable": "2.7.2",
101
+ "@tamagui/form": "2.7.2",
102
+ "@tamagui/get-button-sized": "2.7.2",
103
+ "@tamagui/get-font-sized": "2.7.2",
104
+ "@tamagui/get-token": "2.7.2",
105
+ "@tamagui/group": "2.7.2",
106
+ "@tamagui/helpers-tamagui": "2.7.2",
107
+ "@tamagui/image": "2.7.2",
108
+ "@tamagui/input": "2.7.2",
109
+ "@tamagui/label": "2.7.2",
110
+ "@tamagui/linear-gradient": "2.7.2",
111
+ "@tamagui/list-item": "2.7.2",
112
+ "@tamagui/menu": "2.7.2",
113
+ "@tamagui/polyfill-dev": "2.7.2",
114
+ "@tamagui/popover": "2.7.2",
115
+ "@tamagui/popper": "2.7.2",
116
+ "@tamagui/portal": "2.7.2",
117
+ "@tamagui/progress": "2.7.2",
118
+ "@tamagui/radio-group": "2.7.2",
119
+ "@tamagui/react-native-media-driver": "2.7.2",
120
+ "@tamagui/scroll-view": "2.7.2",
121
+ "@tamagui/select": "2.7.2",
122
+ "@tamagui/separator": "2.7.2",
123
+ "@tamagui/shapes": "2.7.2",
124
+ "@tamagui/sheet": "2.7.2",
125
+ "@tamagui/slider": "2.7.2",
126
+ "@tamagui/spacer": "2.7.2",
127
+ "@tamagui/spinner": "2.7.2",
128
+ "@tamagui/stacks": "2.7.2",
129
+ "@tamagui/switch": "2.7.2",
130
+ "@tamagui/tabs": "2.7.2",
131
+ "@tamagui/text": "2.7.2",
132
+ "@tamagui/theme": "2.7.2",
133
+ "@tamagui/toast": "2.7.2",
134
+ "@tamagui/toggle-group": "2.7.2",
135
+ "@tamagui/tooltip": "2.7.2",
136
+ "@tamagui/use-controllable-state": "2.7.2",
137
+ "@tamagui/use-debounce": "2.7.2",
138
+ "@tamagui/use-force-update": "2.7.2",
139
+ "@tamagui/use-window-dimensions": "2.7.2",
140
+ "@tamagui/visually-hidden": "2.7.2",
141
+ "@tamagui/font-size": "2.7.2",
142
+ "@tamagui/z-index-stack": "2.7.2"
143
143
  },
144
144
  "devDependencies": {
145
- "@tamagui/build": "2.7.0",
145
+ "@tamagui/build": "2.7.2",
146
146
  "react": ">=19",
147
147
  "react-native": "0.83.2",
148
148
  "react-native-web": "^0.21.0"