@tamagui/core 1.100.1 → 1.100.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.
package/dist/native.js CHANGED
@@ -2974,6 +2974,70 @@ 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"), didHydrateOnce = !1;
3024
+ function useDidHydrateOnceRoot() {
3025
+ (0, import_react3.useEffect)(function() {
3026
+ var tm = setInterval(function() {
3027
+ Date.now() - last > 32 && (didHydrateOnce = !0, clearInterval(tm));
3028
+ }, 16);
3029
+ return function() {
3030
+ clearInterval(tm);
3031
+ };
3032
+ }, []);
3033
+ }
3034
+ var last = Date.now();
3035
+ function useDidHydrateOnce() {
3036
+ return didHydrateOnce || (last = Date.now()), didHydrateOnce;
3037
+ }
3038
+ }
3039
+ });
3040
+
2977
3041
  // ../web/dist/cjs/hooks/useMedia.native.js
2978
3042
  var require_useMedia_native = __commonJS({
2979
3043
  "../web/dist/cjs/hooks/useMedia.native.js"(exports2, module2) {
@@ -3060,7 +3124,7 @@ var require_useMedia_native = __commonJS({
3060
3124
  }
3061
3125
  });
3062
3126
  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();
3127
+ 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
3128
  function _array_like_to_array(arr, len) {
3065
3129
  (len == null || len > arr.length) && (len = arr.length);
3066
3130
  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
@@ -3220,19 +3284,20 @@ var require_useMedia_native = __commonJS({
3220
3284
  };
3221
3285
  }
3222
3286
  function useLayoutExternalStore(subscriber, getSnapshot, getServerSnapshot) {
3223
- var _useState = _sliced_to_array((0, import_react3.useState)(getServerSnapshot), 2), state = _useState[0], setState = _useState[1];
3287
+ var hasHydrated = (0, import_useDidHydrateOnce.useDidHydrateOnce)(), _useState = _sliced_to_array((0, import_react3.useState)(hasHydrated ? mediaState2 : getServerSnapshot), 2), state = _useState[0], setState = _useState[1];
3224
3288
  return (0, import_constants.useIsomorphicLayoutEffect)(function() {
3225
- return subscriber(function() {
3289
+ var update = function() {
3226
3290
  setState(function(prev) {
3227
3291
  var next = getSnapshot();
3228
3292
  return next !== prev ? next : prev;
3229
3293
  });
3230
- });
3294
+ };
3295
+ return update(), subscriber(update);
3231
3296
  }, []), state;
3232
3297
  }
3233
3298
  function useMedia2(uid, componentContext) {
3234
3299
  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;
3300
+ if (!internal.current) return mediaState2;
3236
3301
  var _internal_current = internal.current, touched = _internal_current.touched, prev = _internal_current.prev, componentState = uid ? shouldUpdate.get(uid) : void 0;
3237
3302
  if (componentState && componentState.enabled === !1) return prev;
3238
3303
  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) {
@@ -8754,7 +8819,7 @@ var require_createComponent_native = __commonJS({
8754
8819
  }
8755
8820
  });
8756
8821
  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();
8822
+ 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
8823
  function _array_like_to_array(arr, len) {
8759
8824
  (len == null || len > arr.length) && (len = arr.length);
8760
8825
  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
@@ -9082,7 +9147,14 @@ var require_createComponent_native = __commonJS({
9082
9147
  willBeAnimated && !curStateRef.hasAnimated && (curStateRef.hasAnimated = !0);
9083
9148
  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
9149
  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);
9150
+ var hasEnterState = hasEnterStyle || isEntering, didHydrateOnce = (0, import_useDidHydrateOnce.useDidHydrateOnce)(), initialState = hasEnterState || !didHydrateOnce && hasRNAnimation ? (
9151
+ // on the very first render we switch all spring animation drivers to css rendering
9152
+ // this is because we need to use css variables, which they don't support to do proper SSR
9153
+ // without flickers of the wrong colors.
9154
+ // but once we do that initial hydration and we are in client side rendering mode,
9155
+ // we can avoid the extra re-render on mount
9156
+ import_constants.isWeb && !didHydrateOnce ? import_defaultComponentState.defaultComponentState : import_defaultComponentState.defaultComponentStateShouldEnter
9157
+ ) : import_defaultComponentState.defaultComponentStateMounted, disabled = isDisabled(props);
9086
9158
  disabled != null && (initialState.disabled = disabled);
9087
9159
  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
9160
  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 +9424,7 @@ If you meant to do this, you can disable this warning - either change untilMeasu
9352
9424
  };
9353
9425
  (0, import_react3.useEffect)(function() {
9354
9426
  if (!disabled) {
9355
- if (state.unmounted === !0) {
9427
+ if (state.unmounted === !0 && hasEnterStyle) {
9356
9428
  setStateShallow({
9357
9429
  unmounted: "should-enter"
9358
9430
  });
@@ -12373,7 +12445,7 @@ var require_TamaguiProvider_native = __commonJS({
12373
12445
  }
12374
12446
  });
12375
12447
  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();
12448
+ 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
12449
  function _define_property2(obj, key, value) {
12378
12450
  return key in obj ? Object.defineProperty(obj, key, {
12379
12451
  value,
@@ -12429,7 +12501,7 @@ var require_TamaguiProvider_native = __commonJS({
12429
12501
  "disableInjectCSS",
12430
12502
  "config"
12431
12503
  ]);
12432
- (0, import_useMedia.setupMediaListeners)(), import_constants.isClient && React.useInsertionEffect(function() {
12504
+ (0, import_useMedia.setupMediaListeners)(), import_constants.isClient && ((0, import_useDidHydrateOnce.useDidHydrateOnceRoot)(), React.useInsertionEffect(function() {
12433
12505
  if (config && (config.disableSSR || document.documentElement.classList.contains("t_unmounted") && document.documentElement.classList.remove("t_unmounted"), !disableInjectCSS)) {
12434
12506
  var style = document.createElement("style");
12435
12507
  return style.appendChild(document.createTextNode(config.getCSS())), document.head.appendChild(style), function() {
@@ -12439,7 +12511,7 @@ var require_TamaguiProvider_native = __commonJS({
12439
12511
  }, [
12440
12512
  config,
12441
12513
  disableInjectCSS
12442
- ]);
12514
+ ]));
12443
12515
  var _themePropsProvider_defaultTheme;
12444
12516
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ComponentContext.ComponentContext.Provider, {
12445
12517
  animationDriver: config == null ? void 0 : config.animations,