@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.
@@ -2776,6 +2776,62 @@ 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");
2826
+ function useDidHydrateOnceRoot() {
2827
+ }
2828
+ var last = Date.now();
2829
+ function useDidHydrateOnce() {
2830
+ return !0;
2831
+ }
2832
+ }
2833
+ });
2834
+
2779
2835
  // ../web/dist/cjs/hooks/useMedia.native.js
2780
2836
  var require_useMedia_native = __commonJS({
2781
2837
  "../web/dist/cjs/hooks/useMedia.native.js"(exports2, module2) {
@@ -2862,7 +2918,7 @@ var require_useMedia_native = __commonJS({
2862
2918
  }
2863
2919
  });
2864
2920
  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();
2921
+ 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
2922
  function _array_like_to_array(arr, len) {
2867
2923
  (len == null || len > arr.length) && (len = arr.length);
2868
2924
  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
@@ -2969,13 +3025,7 @@ var require_useMedia_native = __commonJS({
2969
3025
  for (var key in media) mediaState2[key] = (mediaQueryDefaultActive == null ? void 0 : mediaQueryDefaultActive[key]) || !1, mediaKeys.add("$".concat(key));
2970
3026
  Object.assign(mediaQueryConfig2, media), initState = _object_spread2({}, mediaState2), mediaKeysOrdered = Object.keys(media), config.disableSSR ? setupMediaListeners() : updateCurrentState();
2971
3027
  }
2972
- };
2973
- function unlisten() {
2974
- dispose.forEach(function(cb) {
2975
- return cb();
2976
- }), dispose.clear();
2977
- }
2978
- var setupVersion = -1;
3028
+ }, setupVersion = -1;
2979
3029
  function setupMediaListeners() {
2980
3030
  var _loop = function(key2) {
2981
3031
  var update = function() {
@@ -2990,7 +3040,7 @@ var require_useMedia_native = __commonJS({
2990
3040
  }), update();
2991
3041
  };
2992
3042
  if (!(import_constants.isWeb && import_constants.isServer) && setupVersion !== mediaVersion) {
2993
- setupVersion = mediaVersion, unlisten();
3043
+ setupVersion = mediaVersion;
2994
3044
  for (var key in mediaQueryConfig2) _loop(key);
2995
3045
  }
2996
3046
  }
@@ -3002,45 +3052,41 @@ var require_useMedia_native = __commonJS({
3002
3052
  });
3003
3053
  }));
3004
3054
  }
3005
- var shouldUpdate = /* @__PURE__ */ new WeakMap();
3055
+ var States = /* @__PURE__ */ new WeakMap();
3006
3056
  function setMediaShouldUpdate(ref, props) {
3007
- return shouldUpdate.set(ref, props);
3057
+ return States.set(ref, _object_spread2({}, States.get(ref), props));
3008
3058
  }
3009
- function subscribe(subscriber) {
3010
- return listeners.add(subscriber), function() {
3011
- return listeners.delete(subscriber);
3012
- };
3013
- }
3014
- function useLayoutExternalStore(subscriber, getSnapshot, getServerSnapshot) {
3015
- var _useState = _sliced_to_array((0, import_react3.useState)(getServerSnapshot), 2), state = _useState[0], setState = _useState[1];
3059
+ function getSnapshot(param) {
3060
+ var touched = param.touched, prev = param.prev, enabled = param.enabled, keys = param.keys, isDisabled = enabled === !1;
3061
+ if (isDisabled) return prev;
3062
+ var testKeys = keys || touched ? _to_consumable_array(keys || []).concat(_to_consumable_array(touched || [])) : null, hasntUpdated = !testKeys || (testKeys == null ? void 0 : testKeys.every(function(key) {
3063
+ return mediaState2[key] === prev[key];
3064
+ }));
3065
+ return hasntUpdated ? prev : mediaState2;
3066
+ }
3067
+ function useMedia2(uidIn, componentContext) {
3068
+ 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);
3069
+ componentState || (componentState = {
3070
+ prev: initialState
3071
+ }, States.set(uid, componentState)), componentState.touched = void 0;
3072
+ var _useState = _sliced_to_array((0, import_react3.useState)(initialState), 2), state = _useState[0], setState = _useState[1];
3016
3073
  return (0, import_constants.useIsomorphicLayoutEffect)(function() {
3017
- return subscriber(function() {
3074
+ var update = function() {
3018
3075
  setState(function(prev) {
3019
- var next = getSnapshot();
3020
- return next !== prev ? next : prev;
3076
+ var componentState2 = States.get(uid), next = getSnapshot(componentState2);
3077
+ return next !== prev ? (componentState2.prev = next, next) : prev;
3021
3078
  });
3022
- });
3023
- }, []), state;
3024
- }
3025
- function useMedia2(uid, componentContext) {
3026
- 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;
3028
- var _internal_current = internal.current, touched = _internal_current.touched, prev = _internal_current.prev, componentState = uid ? shouldUpdate.get(uid) : void 0;
3029
- if (componentState && componentState.enabled === !1) return prev;
3030
- 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) {
3031
- return mediaState2[key] === prev[key];
3032
- }));
3033
- return hasntUpdated ? prev : (internal.current.prev = mediaState2, mediaState2);
3034
- }, function() {
3035
- return initialState;
3036
- });
3037
- return new Proxy(state, {
3079
+ };
3080
+ return Promise.resolve().then(update), listeners.add(update), function() {
3081
+ listeners.delete(update);
3082
+ };
3083
+ }, [
3084
+ uid
3085
+ ]), new Proxy(state, {
3038
3086
  get: function(_, key) {
3039
3087
  if (typeof key == "string") {
3040
- var _internal, _internal_current;
3041
- (_internal = internal).current || (_internal.current = {
3042
- prev: initialState
3043
- }), (_internal_current = internal.current).touched || (_internal_current.touched = /* @__PURE__ */ new Set()), internal.current.touched.add(key);
3088
+ var _componentState;
3089
+ (_componentState = componentState).touched || (_componentState.touched = /* @__PURE__ */ new Set()), componentState.touched.add(key);
3044
3090
  }
3045
3091
  return Reflect.get(state, key);
3046
3092
  }
@@ -8262,7 +8308,7 @@ var require_createComponent_native = __commonJS({
8262
8308
  }
8263
8309
  });
8264
8310
  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();
8311
+ 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
8312
  function _array_like_to_array(arr, len) {
8267
8313
  (len == null || len > arr.length) && (len = arr.length);
8268
8314
  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
@@ -8381,7 +8427,14 @@ var require_createComponent_native = __commonJS({
8381
8427
  return !!(next || curStateRef.hasAnimated);
8382
8428
  }(), willBeAnimated = !import_constants.isServer && willBeAnimatedClient;
8383
8429
  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);
8430
+ 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 ? (
8431
+ // on the very first render we switch all spring animation drivers to css rendering
8432
+ // this is because we need to use css variables, which they don't support to do proper SSR
8433
+ // without flickers of the wrong colors.
8434
+ // but once we do that initial hydration and we are in client side rendering mode,
8435
+ // we can avoid the extra re-render on mount
8436
+ import_constants.isWeb && !didHydrateOnce ? import_defaultComponentState.defaultComponentState : import_defaultComponentState.defaultComponentStateShouldEnter
8437
+ ) : import_defaultComponentState.defaultComponentStateMounted, disabled = isDisabled(props);
8385
8438
  disabled != null && (initialState.disabled = disabled);
8386
8439
  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
8440
  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 +8645,7 @@ var require_createComponent_native = __commonJS({
8592
8645
  };
8593
8646
  (0, import_react3.useEffect)(function() {
8594
8647
  if (!disabled) {
8595
- if (state.unmounted === !0) {
8648
+ if (state.unmounted === !0 && hasEnterStyle) {
8596
8649
  setStateShallow({
8597
8650
  unmounted: "should-enter"
8598
8651
  });
@@ -11562,7 +11615,7 @@ var require_TamaguiProvider_native = __commonJS({
11562
11615
  }
11563
11616
  });
11564
11617
  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();
11618
+ 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
11619
  function _define_property2(obj, key, value) {
11567
11620
  return key in obj ? Object.defineProperty(obj, key, {
11568
11621
  value,
@@ -11618,7 +11671,7 @@ var require_TamaguiProvider_native = __commonJS({
11618
11671
  "disableInjectCSS",
11619
11672
  "config"
11620
11673
  ]);
11621
- (0, import_useMedia.setupMediaListeners)(), import_constants.isClient && React.useInsertionEffect(function() {
11674
+ (0, import_useMedia.setupMediaListeners)(), import_constants.isClient && ((0, import_useDidHydrateOnce.useDidHydrateOnceRoot)(), React.useInsertionEffect(function() {
11622
11675
  if (config && (config.disableSSR || document.documentElement.classList.contains("t_unmounted") && document.documentElement.classList.remove("t_unmounted"), !disableInjectCSS)) {
11623
11676
  var style = document.createElement("style");
11624
11677
  return style.appendChild(document.createTextNode(config.getCSS())), document.head.appendChild(style), function() {
@@ -11628,7 +11681,7 @@ var require_TamaguiProvider_native = __commonJS({
11628
11681
  }, [
11629
11682
  config,
11630
11683
  disableInjectCSS
11631
- ]);
11684
+ ]));
11632
11685
  var _themePropsProvider_defaultTheme;
11633
11686
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ComponentContext.ComponentContext.Provider, {
11634
11687
  animationDriver: config == null ? void 0 : config.animations,