@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.
@@ -2776,6 +2776,70 @@ var require_useDisableSSR_native = __commonJS({
2776
2776
  }
2777
2777
  });
2778
2778
 
2779
+ // ../web/dist/cjs/hooks/useDidHydrateOnce.native.js
2780
+ var require_useDidHydrateOnce_native = __commonJS({
2781
+ "../web/dist/cjs/hooks/useDidHydrateOnce.native.js"(exports2, module2) {
2782
+ "use strict";
2783
+ var __defProp2 = Object.defineProperty, __getOwnPropDesc2 = Object.getOwnPropertyDescriptor, __getOwnPropNames2 = Object.getOwnPropertyNames, __hasOwnProp2 = Object.prototype.hasOwnProperty, __export2 = function(target, all) {
2784
+ for (var name in all) __defProp2(target, name, {
2785
+ get: all[name],
2786
+ enumerable: !0
2787
+ });
2788
+ }, __copyProps2 = function(to, from, except, desc) {
2789
+ var _iteratorNormalCompletion = !0, _didIteratorError = !1, _iteratorError = void 0;
2790
+ if (from && typeof from == "object" || typeof from == "function") try {
2791
+ for (var _loop = function() {
2792
+ var key = _step.value;
2793
+ !__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, {
2794
+ get: function() {
2795
+ return from[key];
2796
+ },
2797
+ enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable
2798
+ });
2799
+ }, _iterator = __getOwnPropNames2(from)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) _loop();
2800
+ } catch (err) {
2801
+ _didIteratorError = !0, _iteratorError = err;
2802
+ } finally {
2803
+ try {
2804
+ !_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
2805
+ } finally {
2806
+ if (_didIteratorError)
2807
+ throw _iteratorError;
2808
+ }
2809
+ }
2810
+ return to;
2811
+ }, __toCommonJS2 = function(mod) {
2812
+ return __copyProps2(__defProp2({}, "__esModule", {
2813
+ value: !0
2814
+ }), mod);
2815
+ }, useDidHydrateOnce_exports = {};
2816
+ __export2(useDidHydrateOnce_exports, {
2817
+ useDidHydrateOnce: function() {
2818
+ return useDidHydrateOnce;
2819
+ },
2820
+ useDidHydrateOnceRoot: function() {
2821
+ return useDidHydrateOnceRoot;
2822
+ }
2823
+ });
2824
+ module2.exports = __toCommonJS2(useDidHydrateOnce_exports);
2825
+ var import_react3 = require("react"), didHydrateOnce = !1;
2826
+ function useDidHydrateOnceRoot() {
2827
+ (0, import_react3.useEffect)(function() {
2828
+ var tm = setInterval(function() {
2829
+ Date.now() - last > 32 && (didHydrateOnce = !0, clearInterval(tm));
2830
+ }, 16);
2831
+ return function() {
2832
+ clearInterval(tm);
2833
+ };
2834
+ }, []);
2835
+ }
2836
+ var last = Date.now();
2837
+ function useDidHydrateOnce() {
2838
+ return didHydrateOnce || (last = Date.now()), didHydrateOnce;
2839
+ }
2840
+ }
2841
+ });
2842
+
2779
2843
  // ../web/dist/cjs/hooks/useMedia.native.js
2780
2844
  var require_useMedia_native = __commonJS({
2781
2845
  "../web/dist/cjs/hooks/useMedia.native.js"(exports2, module2) {
@@ -2862,7 +2926,7 @@ var require_useMedia_native = __commonJS({
2862
2926
  }
2863
2927
  });
2864
2928
  module2.exports = __toCommonJS2(useMedia_exports);
2865
- 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();
2929
+ 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();
2866
2930
  function _array_like_to_array(arr, len) {
2867
2931
  (len == null || len > arr.length) && (len = arr.length);
2868
2932
  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
@@ -3012,19 +3076,20 @@ var require_useMedia_native = __commonJS({
3012
3076
  };
3013
3077
  }
3014
3078
  function useLayoutExternalStore(subscriber, getSnapshot, getServerSnapshot) {
3015
- var _useState = _sliced_to_array((0, import_react3.useState)(getServerSnapshot), 2), state = _useState[0], setState = _useState[1];
3079
+ var hasHydrated = (0, import_useDidHydrateOnce.useDidHydrateOnce)(), _useState = _sliced_to_array((0, import_react3.useState)(hasHydrated ? mediaState2 : getServerSnapshot), 2), state = _useState[0], setState = _useState[1];
3016
3080
  return (0, import_constants.useIsomorphicLayoutEffect)(function() {
3017
- return subscriber(function() {
3081
+ var update = function() {
3018
3082
  setState(function(prev) {
3019
3083
  var next = getSnapshot();
3020
3084
  return next !== prev ? next : prev;
3021
3085
  });
3022
- });
3086
+ };
3087
+ return update(), subscriber(update);
3023
3088
  }, []), state;
3024
3089
  }
3025
3090
  function useMedia2(uid, componentContext) {
3026
3091
  var internal = (0, import_react3.useRef)(), disableSSR = (0, import_useDisableSSR.getDisableSSR)(componentContext), initialState = (disableSSR || !import_constants.isWeb ? mediaState2 : initState) || {}, state = useLayoutExternalStore(subscribe, function() {
3027
- if (!internal.current) return initialState;
3092
+ if (!internal.current) return mediaState2;
3028
3093
  var _internal_current = internal.current, touched = _internal_current.touched, prev = _internal_current.prev, componentState = uid ? shouldUpdate.get(uid) : void 0;
3029
3094
  if (componentState && componentState.enabled === !1) return prev;
3030
3095
  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) {
@@ -8262,7 +8327,7 @@ var require_createComponent_native = __commonJS({
8262
8327
  }
8263
8328
  });
8264
8329
  module2.exports = __toCommonJS2(createComponent_exports);
8265
- 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();
8330
+ 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();
8266
8331
  function _array_like_to_array(arr, len) {
8267
8332
  (len == null || len > arr.length) && (len = arr.length);
8268
8333
  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
@@ -8381,7 +8446,14 @@ var require_createComponent_native = __commonJS({
8381
8446
  return !!(next || curStateRef.hasAnimated);
8382
8447
  }(), willBeAnimated = !import_constants.isServer && willBeAnimatedClient;
8383
8448
  willBeAnimated && !curStateRef.hasAnimated && (curStateRef.hasAnimated = !0);
8384
- 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), hasEnterState = hasEnterStyle || isEntering, initialState = hasEnterState || hasRNAnimation ? import_constants.isWeb ? import_defaultComponentState.defaultComponentState : import_defaultComponentState.defaultComponentStateShouldEnter : import_defaultComponentState.defaultComponentStateMounted, disabled = isDisabled(props);
8449
+ 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), hasEnterState = hasEnterStyle || isEntering, didHydrateOnce = (0, import_useDidHydrateOnce.useDidHydrateOnce)(), initialState = hasEnterState || !didHydrateOnce && hasRNAnimation ? (
8450
+ // on the very first render we switch all spring animation drivers to css rendering
8451
+ // this is because we need to use css variables, which they don't support to do proper SSR
8452
+ // without flickers of the wrong colors.
8453
+ // but once we do that initial hydration and we are in client side rendering mode,
8454
+ // we can avoid the extra re-render on mount
8455
+ import_constants.isWeb && !didHydrateOnce ? import_defaultComponentState.defaultComponentState : import_defaultComponentState.defaultComponentStateShouldEnter
8456
+ ) : import_defaultComponentState.defaultComponentStateMounted, disabled = isDisabled(props);
8385
8457
  disabled != null && (initialState.disabled = disabled);
8386
8458
  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;
8387
8459
  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)));
@@ -8592,7 +8664,7 @@ var require_createComponent_native = __commonJS({
8592
8664
  };
8593
8665
  (0, import_react3.useEffect)(function() {
8594
8666
  if (!disabled) {
8595
- if (state.unmounted === !0) {
8667
+ if (state.unmounted === !0 && hasEnterStyle) {
8596
8668
  setStateShallow({
8597
8669
  unmounted: "should-enter"
8598
8670
  });
@@ -11562,7 +11634,7 @@ var require_TamaguiProvider_native = __commonJS({
11562
11634
  }
11563
11635
  });
11564
11636
  module2.exports = __toCommonJS2(TamaguiProvider_exports);
11565
- 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();
11637
+ 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();
11566
11638
  function _define_property2(obj, key, value) {
11567
11639
  return key in obj ? Object.defineProperty(obj, key, {
11568
11640
  value,
@@ -11618,7 +11690,7 @@ var require_TamaguiProvider_native = __commonJS({
11618
11690
  "disableInjectCSS",
11619
11691
  "config"
11620
11692
  ]);
11621
- (0, import_useMedia.setupMediaListeners)(), import_constants.isClient && React.useInsertionEffect(function() {
11693
+ (0, import_useMedia.setupMediaListeners)(), import_constants.isClient && ((0, import_useDidHydrateOnce.useDidHydrateOnceRoot)(), React.useInsertionEffect(function() {
11622
11694
  if (config && (config.disableSSR || document.documentElement.classList.contains("t_unmounted") && document.documentElement.classList.remove("t_unmounted"), !disableInjectCSS)) {
11623
11695
  var style = document.createElement("style");
11624
11696
  return style.appendChild(document.createTextNode(config.getCSS())), document.head.appendChild(style), function() {
@@ -11628,7 +11700,7 @@ var require_TamaguiProvider_native = __commonJS({
11628
11700
  }, [
11629
11701
  config,
11630
11702
  disableInjectCSS
11631
- ]);
11703
+ ]));
11632
11704
  var _themePropsProvider_defaultTheme;
11633
11705
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ComponentContext.ComponentContext.Provider, {
11634
11706
  animationDriver: config == null ? void 0 : config.animations,