@tamagui/core 1.100.0 → 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];
@@ -3011,9 +3075,21 @@ var require_useMedia_native = __commonJS({
3011
3075
  return listeners.delete(subscriber);
3012
3076
  };
3013
3077
  }
3078
+ function useLayoutExternalStore(subscriber, getSnapshot, getServerSnapshot) {
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];
3080
+ return (0, import_constants.useIsomorphicLayoutEffect)(function() {
3081
+ var update = function() {
3082
+ setState(function(prev) {
3083
+ var next = getSnapshot();
3084
+ return next !== prev ? next : prev;
3085
+ });
3086
+ };
3087
+ return update(), subscriber(update);
3088
+ }, []), state;
3089
+ }
3014
3090
  function useMedia2(uid, componentContext) {
3015
- var internal = (0, import_react3.useRef)(), disableSSR = (0, import_useDisableSSR.getDisableSSR)(componentContext), initialState = (disableSSR || !import_constants.isWeb ? mediaState2 : initState) || {}, state = (0, import_react3.useSyncExternalStore)(subscribe, function() {
3016
- if (!internal.current) return initialState;
3091
+ var internal = (0, import_react3.useRef)(), disableSSR = (0, import_useDisableSSR.getDisableSSR)(componentContext), initialState = (disableSSR || !import_constants.isWeb ? mediaState2 : initState) || {}, state = useLayoutExternalStore(subscribe, function() {
3092
+ if (!internal.current) return mediaState2;
3017
3093
  var _internal_current = internal.current, touched = _internal_current.touched, prev = _internal_current.prev, componentState = uid ? shouldUpdate.get(uid) : void 0;
3018
3094
  if (componentState && componentState.enabled === !1) return prev;
3019
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) {
@@ -8251,7 +8327,7 @@ var require_createComponent_native = __commonJS({
8251
8327
  }
8252
8328
  });
8253
8329
  module2.exports = __toCommonJS2(createComponent_exports);
8254
- 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();
8255
8331
  function _array_like_to_array(arr, len) {
8256
8332
  (len == null || len > arr.length) && (len = arr.length);
8257
8333
  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
@@ -8370,7 +8446,14 @@ var require_createComponent_native = __commonJS({
8370
8446
  return !!(next || curStateRef.hasAnimated);
8371
8447
  }(), willBeAnimated = !import_constants.isServer && willBeAnimatedClient;
8372
8448
  willBeAnimated && !curStateRef.hasAnimated && (curStateRef.hasAnimated = !0);
8373
- 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);
8374
8457
  disabled != null && (initialState.disabled = disabled);
8375
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;
8376
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)));
@@ -8581,7 +8664,7 @@ var require_createComponent_native = __commonJS({
8581
8664
  };
8582
8665
  (0, import_react3.useEffect)(function() {
8583
8666
  if (!disabled) {
8584
- if (state.unmounted === !0) {
8667
+ if (state.unmounted === !0 && hasEnterStyle) {
8585
8668
  setStateShallow({
8586
8669
  unmounted: "should-enter"
8587
8670
  });
@@ -11551,7 +11634,7 @@ var require_TamaguiProvider_native = __commonJS({
11551
11634
  }
11552
11635
  });
11553
11636
  module2.exports = __toCommonJS2(TamaguiProvider_exports);
11554
- 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();
11555
11638
  function _define_property2(obj, key, value) {
11556
11639
  return key in obj ? Object.defineProperty(obj, key, {
11557
11640
  value,
@@ -11607,7 +11690,7 @@ var require_TamaguiProvider_native = __commonJS({
11607
11690
  "disableInjectCSS",
11608
11691
  "config"
11609
11692
  ]);
11610
- (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() {
11611
11694
  if (config && (config.disableSSR || document.documentElement.classList.contains("t_unmounted") && document.documentElement.classList.remove("t_unmounted"), !disableInjectCSS)) {
11612
11695
  var style = document.createElement("style");
11613
11696
  return style.appendChild(document.createTextNode(config.getCSS())), document.head.appendChild(style), function() {
@@ -11617,7 +11700,7 @@ var require_TamaguiProvider_native = __commonJS({
11617
11700
  }, [
11618
11701
  config,
11619
11702
  disableInjectCSS
11620
- ]);
11703
+ ]));
11621
11704
  var _themePropsProvider_defaultTheme;
11622
11705
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ComponentContext.ComponentContext.Provider, {
11623
11706
  animationDriver: config == null ? void 0 : config.animations,