@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.
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];
@@ -3219,9 +3283,21 @@ var require_useMedia_native = __commonJS({
3219
3283
  return listeners.delete(subscriber);
3220
3284
  };
3221
3285
  }
3286
+ function useLayoutExternalStore(subscriber, getSnapshot, getServerSnapshot) {
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];
3288
+ return (0, import_constants.useIsomorphicLayoutEffect)(function() {
3289
+ var update = function() {
3290
+ setState(function(prev) {
3291
+ var next = getSnapshot();
3292
+ return next !== prev ? next : prev;
3293
+ });
3294
+ };
3295
+ return update(), subscriber(update);
3296
+ }, []), state;
3297
+ }
3222
3298
  function useMedia2(uid, componentContext) {
3223
- 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() {
3224
- if (!internal.current) return initialState;
3299
+ var internal = (0, import_react3.useRef)(), disableSSR = (0, import_useDisableSSR.getDisableSSR)(componentContext), initialState = (disableSSR || !import_constants.isWeb ? mediaState2 : initState) || {}, state = useLayoutExternalStore(subscribe, function() {
3300
+ if (!internal.current) return mediaState2;
3225
3301
  var _internal_current = internal.current, touched = _internal_current.touched, prev = _internal_current.prev, componentState = uid ? shouldUpdate.get(uid) : void 0;
3226
3302
  if (componentState && componentState.enabled === !1) return prev;
3227
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) {
@@ -8743,7 +8819,7 @@ var require_createComponent_native = __commonJS({
8743
8819
  }
8744
8820
  });
8745
8821
  module2.exports = __toCommonJS2(createComponent_exports);
8746
- 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();
8747
8823
  function _array_like_to_array(arr, len) {
8748
8824
  (len == null || len > arr.length) && (len = arr.length);
8749
8825
  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
@@ -9071,7 +9147,14 @@ var require_createComponent_native = __commonJS({
9071
9147
  willBeAnimated && !curStateRef.hasAnimated && (curStateRef.hasAnimated = !0);
9072
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);
9073
9149
  process.env.NODE_ENV === "development" && time && time(_templateObject());
9074
- 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);
9075
9158
  disabled != null && (initialState.disabled = disabled);
9076
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;
9077
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)));
@@ -9341,7 +9424,7 @@ If you meant to do this, you can disable this warning - either change untilMeasu
9341
9424
  };
9342
9425
  (0, import_react3.useEffect)(function() {
9343
9426
  if (!disabled) {
9344
- if (state.unmounted === !0) {
9427
+ if (state.unmounted === !0 && hasEnterStyle) {
9345
9428
  setStateShallow({
9346
9429
  unmounted: "should-enter"
9347
9430
  });
@@ -12362,7 +12445,7 @@ var require_TamaguiProvider_native = __commonJS({
12362
12445
  }
12363
12446
  });
12364
12447
  module2.exports = __toCommonJS2(TamaguiProvider_exports);
12365
- 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();
12366
12449
  function _define_property2(obj, key, value) {
12367
12450
  return key in obj ? Object.defineProperty(obj, key, {
12368
12451
  value,
@@ -12418,7 +12501,7 @@ var require_TamaguiProvider_native = __commonJS({
12418
12501
  "disableInjectCSS",
12419
12502
  "config"
12420
12503
  ]);
12421
- (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() {
12422
12505
  if (config && (config.disableSSR || document.documentElement.classList.contains("t_unmounted") && document.documentElement.classList.remove("t_unmounted"), !disableInjectCSS)) {
12423
12506
  var style = document.createElement("style");
12424
12507
  return style.appendChild(document.createTextNode(config.getCSS())), document.head.appendChild(style), function() {
@@ -12428,7 +12511,7 @@ var require_TamaguiProvider_native = __commonJS({
12428
12511
  }, [
12429
12512
  config,
12430
12513
  disableInjectCSS
12431
- ]);
12514
+ ]));
12432
12515
  var _themePropsProvider_defaultTheme;
12433
12516
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ComponentContext.ComponentContext.Provider, {
12434
12517
  animationDriver: config == null ? void 0 : config.animations,