@tamagui/core 1.100.1 → 1.100.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/native.js CHANGED
@@ -2974,6 +2974,62 @@ var require_useDisableSSR_native = __commonJS({
2974
2974
  }
2975
2975
  });
2976
2976
 
2977
+ // ../web/dist/cjs/hooks/useDidHydrateOnce.native.js
2978
+ var require_useDidHydrateOnce_native = __commonJS({
2979
+ "../web/dist/cjs/hooks/useDidHydrateOnce.native.js"(exports2, module2) {
2980
+ "use strict";
2981
+ var __defProp2 = Object.defineProperty, __getOwnPropDesc2 = Object.getOwnPropertyDescriptor, __getOwnPropNames2 = Object.getOwnPropertyNames, __hasOwnProp2 = Object.prototype.hasOwnProperty, __export2 = function(target, all) {
2982
+ for (var name in all) __defProp2(target, name, {
2983
+ get: all[name],
2984
+ enumerable: !0
2985
+ });
2986
+ }, __copyProps2 = function(to, from, except, desc) {
2987
+ var _iteratorNormalCompletion = !0, _didIteratorError = !1, _iteratorError = void 0;
2988
+ if (from && typeof from == "object" || typeof from == "function") try {
2989
+ for (var _loop = function() {
2990
+ var key = _step.value;
2991
+ !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {
2992
+ get: function() {
2993
+ return from[key];
2994
+ },
2995
+ enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable
2996
+ });
2997
+ }, _iterator = __getOwnPropNames2(from)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) _loop();
2998
+ } catch (err) {
2999
+ _didIteratorError = !0, _iteratorError = err;
3000
+ } finally {
3001
+ try {
3002
+ !_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
3003
+ } finally {
3004
+ if (_didIteratorError)
3005
+ throw _iteratorError;
3006
+ }
3007
+ }
3008
+ return to;
3009
+ }, __toCommonJS2 = function(mod) {
3010
+ return __copyProps2(__defProp2({}, "__esModule", {
3011
+ value: !0
3012
+ }), mod);
3013
+ }, useDidHydrateOnce_exports = {};
3014
+ __export2(useDidHydrateOnce_exports, {
3015
+ useDidHydrateOnce: function() {
3016
+ return useDidHydrateOnce;
3017
+ },
3018
+ useDidHydrateOnceRoot: function() {
3019
+ return useDidHydrateOnceRoot;
3020
+ }
3021
+ });
3022
+ module2.exports = __toCommonJS2(useDidHydrateOnce_exports);
3023
+ var import_react3 = require("react");
3024
+ function useDidHydrateOnceRoot() {
3025
+ }
3026
+ var last = Date.now();
3027
+ function useDidHydrateOnce() {
3028
+ return !0;
3029
+ }
3030
+ }
3031
+ });
3032
+
2977
3033
  // ../web/dist/cjs/hooks/useMedia.native.js
2978
3034
  var require_useMedia_native = __commonJS({
2979
3035
  "../web/dist/cjs/hooks/useMedia.native.js"(exports2, module2) {
@@ -3060,7 +3116,7 @@ var require_useMedia_native = __commonJS({
3060
3116
  }
3061
3117
  });
3062
3118
  module2.exports = __toCommonJS2(useMedia_exports);
3063
- var import_constants = require_index_native3(), import_react3 = require("react"), import_config = require_config_native(), import_matchMedia = require_matchMedia_native(), import_pseudoDescriptors = require_pseudoDescriptors_native(), import_useDisableSSR = require_useDisableSSR_native();
3119
+ var import_constants = require_index_native3(), import_react3 = require("react"), import_config = require_config_native(), import_matchMedia = require_matchMedia_native(), import_pseudoDescriptors = require_pseudoDescriptors_native(), import_useDisableSSR = require_useDisableSSR_native(), import_useDidHydrateOnce = require_useDidHydrateOnce_native();
3064
3120
  function _array_like_to_array(arr, len) {
3065
3121
  (len == null || len > arr.length) && (len = arr.length);
3066
3122
  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
@@ -3198,7 +3254,7 @@ var require_useMedia_native = __commonJS({
3198
3254
  }), update();
3199
3255
  };
3200
3256
  if (!(import_constants.isWeb && import_constants.isServer) && setupVersion !== mediaVersion) {
3201
- setupVersion = mediaVersion, unlisten();
3257
+ setupVersion = mediaVersion, process.env.NODE_ENV === "development" && unlisten();
3202
3258
  for (var key in mediaQueryConfig2) _loop(key);
3203
3259
  }
3204
3260
  }
@@ -3210,45 +3266,41 @@ var require_useMedia_native = __commonJS({
3210
3266
  });
3211
3267
  }));
3212
3268
  }
3213
- var shouldUpdate = /* @__PURE__ */ new WeakMap();
3269
+ var States = /* @__PURE__ */ new WeakMap();
3214
3270
  function setMediaShouldUpdate(ref, props) {
3215
- return shouldUpdate.set(ref, props);
3216
- }
3217
- function subscribe(subscriber) {
3218
- return listeners.add(subscriber), function() {
3219
- return listeners.delete(subscriber);
3220
- };
3271
+ return States.set(ref, _object_spread2({}, States.get(ref), props));
3221
3272
  }
3222
- function useLayoutExternalStore(subscriber, getSnapshot, getServerSnapshot) {
3223
- var _useState = _sliced_to_array((0, import_react3.useState)(getServerSnapshot), 2), state = _useState[0], setState = _useState[1];
3273
+ function getSnapshot(param) {
3274
+ var touched = param.touched, prev = param.prev, enabled = param.enabled, keys = param.keys, isDisabled = enabled === !1;
3275
+ if (isDisabled) return prev;
3276
+ var testKeys = keys || touched ? _to_consumable_array(keys || []).concat(_to_consumable_array(touched || [])) : null, hasntUpdated = !testKeys || (testKeys == null ? void 0 : testKeys.every(function(key) {
3277
+ return mediaState2[key] === prev[key];
3278
+ }));
3279
+ return hasntUpdated ? prev : mediaState2;
3280
+ }
3281
+ function useMedia2(uidIn, componentContext) {
3282
+ var uid = uidIn ?? (0, import_react3.useRef)(), hasHydrated = (0, import_useDidHydrateOnce.useDidHydrateOnce)(), isHydrated = !import_constants.isWeb || (0, import_useDisableSSR.getDisableSSR)(componentContext) || hasHydrated, initialState = isHydrated ? mediaState2 : initState, componentState = States.get(uid);
3283
+ componentState || (componentState = {
3284
+ prev: initialState
3285
+ }, States.set(uid, componentState)), componentState.touched = void 0;
3286
+ var _useState = _sliced_to_array((0, import_react3.useState)(initialState), 2), state = _useState[0], setState = _useState[1];
3224
3287
  return (0, import_constants.useIsomorphicLayoutEffect)(function() {
3225
- return subscriber(function() {
3288
+ var update = function() {
3226
3289
  setState(function(prev) {
3227
- var next = getSnapshot();
3228
- return next !== prev ? next : prev;
3290
+ var componentState2 = States.get(uid), next = getSnapshot(componentState2);
3291
+ return next !== prev ? (componentState2.prev = next, next) : prev;
3229
3292
  });
3230
- });
3231
- }, []), state;
3232
- }
3233
- function useMedia2(uid, componentContext) {
3234
- var internal = (0, import_react3.useRef)(), disableSSR = (0, import_useDisableSSR.getDisableSSR)(componentContext), initialState = (disableSSR || !import_constants.isWeb ? mediaState2 : initState) || {}, state = useLayoutExternalStore(subscribe, function() {
3235
- if (!internal.current) return initialState;
3236
- var _internal_current = internal.current, touched = _internal_current.touched, prev = _internal_current.prev, componentState = uid ? shouldUpdate.get(uid) : void 0;
3237
- if (componentState && componentState.enabled === !1) return prev;
3238
- var _componentState_keys, testKeys = (_componentState_keys = componentState == null ? void 0 : componentState.keys) !== null && _componentState_keys !== void 0 ? _componentState_keys : (!componentState || componentState.enabled) && touched ? _to_consumable_array(touched) : null, hasntUpdated = !testKeys || (testKeys == null ? void 0 : testKeys.every(function(key) {
3239
- return mediaState2[key] === prev[key];
3240
- }));
3241
- return hasntUpdated ? prev : (internal.current.prev = mediaState2, mediaState2);
3242
- }, function() {
3243
- return initialState;
3244
- });
3245
- return new Proxy(state, {
3293
+ };
3294
+ return Promise.resolve().then(update), listeners.add(update), function() {
3295
+ listeners.delete(update);
3296
+ };
3297
+ }, [
3298
+ uid
3299
+ ]), new Proxy(state, {
3246
3300
  get: function(_, key) {
3247
3301
  if (typeof key == "string") {
3248
- var _internal, _internal_current;
3249
- (_internal = internal).current || (_internal.current = {
3250
- prev: initialState
3251
- }), (_internal_current = internal.current).touched || (_internal_current.touched = /* @__PURE__ */ new Set()), internal.current.touched.add(key);
3302
+ var _componentState;
3303
+ (_componentState = componentState).touched || (_componentState.touched = /* @__PURE__ */ new Set()), componentState.touched.add(key);
3252
3304
  }
3253
3305
  return Reflect.get(state, key);
3254
3306
  }
@@ -8754,7 +8806,7 @@ var require_createComponent_native = __commonJS({
8754
8806
  }
8755
8807
  });
8756
8808
  module2.exports = __toCommonJS2(createComponent_exports);
8757
- var import_jsx_runtime = require("react/jsx-runtime"), import_compose_refs = require_index_native5(), import_constants = require_index_native3(), import_helpers = require_index_native4(), import_react3 = __toESM2(require("react")), import_config = require_config_native(), import_constants2 = require_constants_native2(), import_isDevTools = require_isDevTools_native(), import_ComponentContext = require_ComponentContext_native(), import_createVariable = require_createVariable_native(), import_defaultComponentState = require_defaultComponentState_native(), import_createShallowSetState = require_createShallowSetState_native(), import_getSplitStyles = require_getSplitStyles_native(), import_isObj = require_isObj_native(), import_log = require_log_native(), import_mergeProps = require_mergeProps_native(), import_setElementProps = require_setElementProps_native(), import_themeable = require_themeable_native(), import_useMedia = require_useMedia_native(), import_useTheme = require_useTheme_native(), import_setupHooks = require_setupHooks_native(), import_Slot = require_Slot_native(), import_Theme = require_Theme_native(), import_ThemeDebug = require_ThemeDebug_native();
8809
+ var import_jsx_runtime = require("react/jsx-runtime"), import_compose_refs = require_index_native5(), import_constants = require_index_native3(), import_helpers = require_index_native4(), import_react3 = __toESM2(require("react")), import_config = require_config_native(), import_constants2 = require_constants_native2(), import_isDevTools = require_isDevTools_native(), import_ComponentContext = require_ComponentContext_native(), import_createVariable = require_createVariable_native(), import_defaultComponentState = require_defaultComponentState_native(), import_createShallowSetState = require_createShallowSetState_native(), import_getSplitStyles = require_getSplitStyles_native(), import_isObj = require_isObj_native(), import_log = require_log_native(), import_mergeProps = require_mergeProps_native(), import_setElementProps = require_setElementProps_native(), import_themeable = require_themeable_native(), import_useMedia = require_useMedia_native(), import_useTheme = require_useTheme_native(), import_setupHooks = require_setupHooks_native(), import_Slot = require_Slot_native(), import_Theme = require_Theme_native(), import_ThemeDebug = require_ThemeDebug_native(), import_useDidHydrateOnce = require_useDidHydrateOnce_native();
8758
8810
  function _array_like_to_array(arr, len) {
8759
8811
  (len == null || len > arr.length) && (len = arr.length);
8760
8812
  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
@@ -9082,7 +9134,14 @@ var require_createComponent_native = __commonJS({
9082
9134
  willBeAnimated && !curStateRef.hasAnimated && (curStateRef.hasAnimated = !0);
9083
9135
  var presence = willBeAnimated && props.animatePresence !== !1 && (animationDriver == null || (_animationDriver_usePresence = animationDriver.usePresence) === null || _animationDriver_usePresence === void 0 ? void 0 : _animationDriver_usePresence.call(animationDriver)) || null, presenceState = presence == null ? void 0 : presence[2], isExiting = (presenceState == null ? void 0 : presenceState.isPresent) === !1, isEntering = (presenceState == null ? void 0 : presenceState.isPresent) === !0 && presenceState.initial !== !1, hasEnterStyle = !!props.enterStyle, hasRNAnimation = hasAnimationProp && (animationDriver == null ? void 0 : animationDriver.isReactNative);
9084
9136
  process.env.NODE_ENV === "development" && time && time(_templateObject());
9085
- var hasEnterState = hasEnterStyle || isEntering, initialState = hasEnterState || hasRNAnimation ? import_constants.isWeb ? import_defaultComponentState.defaultComponentState : import_defaultComponentState.defaultComponentStateShouldEnter : import_defaultComponentState.defaultComponentStateMounted, disabled = isDisabled(props);
9137
+ var hasEnterState = hasEnterStyle || isEntering, didHydrateOnce = (0, import_useDidHydrateOnce.useDidHydrateOnce)(), initialState = hasEnterState || !didHydrateOnce && hasRNAnimation ? (
9138
+ // on the very first render we switch all spring animation drivers to css rendering
9139
+ // this is because we need to use css variables, which they don't support to do proper SSR
9140
+ // without flickers of the wrong colors.
9141
+ // but once we do that initial hydration and we are in client side rendering mode,
9142
+ // we can avoid the extra re-render on mount
9143
+ import_constants.isWeb && !didHydrateOnce ? import_defaultComponentState.defaultComponentState : import_defaultComponentState.defaultComponentStateShouldEnter
9144
+ ) : import_defaultComponentState.defaultComponentStateMounted, disabled = isDisabled(props);
9086
9145
  disabled != null && (initialState.disabled = disabled);
9087
9146
  var states = (0, import_react3.useState)(initialState), state = props.forceStyle ? _object_spread_props(_object_spread2({}, states[0]), _define_property2({}, props.forceStyle, !0)) : states[0], setState = states[1], isHydrated = state.unmounted === !1 || state.unmounted === "should-enter", isAnimated = willBeAnimated;
9088
9147
  import_constants.isWeb && hasRNAnimation && !staticConfig.isHOC && state.unmounted === !0 && (isAnimated = !1, curStateRef.willHydrate = !0), disabled !== state.disabled && (state.disabled = disabled, disabled && Object.assign(state, import_defaultComponentState.defaultComponentStateMounted), setState(_object_spread2({}, state)));
@@ -9352,7 +9411,7 @@ If you meant to do this, you can disable this warning - either change untilMeasu
9352
9411
  };
9353
9412
  (0, import_react3.useEffect)(function() {
9354
9413
  if (!disabled) {
9355
- if (state.unmounted === !0) {
9414
+ if (state.unmounted === !0 && hasEnterStyle) {
9356
9415
  setStateShallow({
9357
9416
  unmounted: "should-enter"
9358
9417
  });
@@ -12373,7 +12432,7 @@ var require_TamaguiProvider_native = __commonJS({
12373
12432
  }
12374
12433
  });
12375
12434
  module2.exports = __toCommonJS2(TamaguiProvider_exports);
12376
- var import_jsx_runtime = require("react/jsx-runtime"), import_constants = require_index_native3(), React = __toESM2(require("react")), import_ComponentContext = require_ComponentContext_native(), import_useMedia = require_useMedia_native(), import_ThemeProvider = require_ThemeProvider_native();
12435
+ var import_jsx_runtime = require("react/jsx-runtime"), import_constants = require_index_native3(), React = __toESM2(require("react")), import_ComponentContext = require_ComponentContext_native(), import_useMedia = require_useMedia_native(), import_ThemeProvider = require_ThemeProvider_native(), import_useDidHydrateOnce = require_useDidHydrateOnce_native();
12377
12436
  function _define_property2(obj, key, value) {
12378
12437
  return key in obj ? Object.defineProperty(obj, key, {
12379
12438
  value,
@@ -12429,7 +12488,7 @@ var require_TamaguiProvider_native = __commonJS({
12429
12488
  "disableInjectCSS",
12430
12489
  "config"
12431
12490
  ]);
12432
- (0, import_useMedia.setupMediaListeners)(), import_constants.isClient && React.useInsertionEffect(function() {
12491
+ (0, import_useMedia.setupMediaListeners)(), import_constants.isClient && ((0, import_useDidHydrateOnce.useDidHydrateOnceRoot)(), React.useInsertionEffect(function() {
12433
12492
  if (config && (config.disableSSR || document.documentElement.classList.contains("t_unmounted") && document.documentElement.classList.remove("t_unmounted"), !disableInjectCSS)) {
12434
12493
  var style = document.createElement("style");
12435
12494
  return style.appendChild(document.createTextNode(config.getCSS())), document.head.appendChild(style), function() {
@@ -12439,7 +12498,7 @@ var require_TamaguiProvider_native = __commonJS({
12439
12498
  }, [
12440
12499
  config,
12441
12500
  disableInjectCSS
12442
- ]);
12501
+ ]));
12443
12502
  var _themePropsProvider_defaultTheme;
12444
12503
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ComponentContext.ComponentContext.Provider, {
12445
12504
  animationDriver: config == null ? void 0 : config.animations,