@tamagui/web 3.0.0-beta.1479.1 → 3.0.0-beta.1540.1

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.
Files changed (43) hide show
  1. package/dist/cjs/eventHandling.native.cjs +2 -2
  2. package/dist/cjs/eventHandling.native.js +2 -2
  3. package/dist/cjs/eventHandling.native.js.map +1 -1
  4. package/dist/cjs/helpers/expandStyle.cjs +25 -1
  5. package/dist/cjs/helpers/expandStyle.native.cjs +25 -1
  6. package/dist/cjs/helpers/expandStyle.native.js +25 -1
  7. package/dist/cjs/helpers/expandStyle.native.js.map +1 -1
  8. package/dist/cjs/helpers/getSplitStyles.native.cjs +16 -6
  9. package/dist/cjs/helpers/getSplitStyles.native.js +16 -6
  10. package/dist/cjs/helpers/getSplitStyles.native.js.map +1 -1
  11. package/dist/cjs/helpers/mainThreadPressEvents.native.cjs +47 -120
  12. package/dist/cjs/helpers/mainThreadPressEvents.native.js +47 -120
  13. package/dist/cjs/helpers/mainThreadPressEvents.native.js.map +1 -1
  14. package/dist/cjs/hooks/useThemeState.cjs +2 -2
  15. package/dist/cjs/hooks/useThemeState.native.cjs +2 -2
  16. package/dist/cjs/hooks/useThemeState.native.js +2 -2
  17. package/dist/cjs/hooks/useThemeState.native.js.map +1 -1
  18. package/dist/esm/eventHandling.native.js +2 -2
  19. package/dist/esm/eventHandling.native.js.map +1 -1
  20. package/dist/esm/helpers/expandStyle.mjs +22 -1
  21. package/dist/esm/helpers/expandStyle.mjs.map +1 -1
  22. package/dist/esm/helpers/expandStyle.native.js +22 -1
  23. package/dist/esm/helpers/expandStyle.native.js.map +1 -1
  24. package/dist/esm/helpers/getSplitStyles.native.js +17 -7
  25. package/dist/esm/helpers/getSplitStyles.native.js.map +1 -1
  26. package/dist/esm/helpers/mainThreadPressEvents.native.js +48 -121
  27. package/dist/esm/helpers/mainThreadPressEvents.native.js.map +1 -1
  28. package/dist/esm/hooks/useThemeState.mjs +2 -2
  29. package/dist/esm/hooks/useThemeState.mjs.map +1 -1
  30. package/dist/esm/hooks/useThemeState.native.js +2 -2
  31. package/dist/esm/hooks/useThemeState.native.js.map +1 -1
  32. package/package.json +16 -16
  33. package/src/eventHandling.native.ts +4 -4
  34. package/src/helpers/expandStyle.ts +26 -0
  35. package/src/helpers/getSplitStyles.tsx +18 -1
  36. package/src/helpers/mainThreadPressEvents.native.ts +66 -187
  37. package/src/hooks/useThemeState.ts +10 -2
  38. package/types/helpers/expandStyle.d.ts +1 -0
  39. package/types/helpers/expandStyle.d.ts.map +1 -1
  40. package/types/helpers/getSplitStyles.d.ts.map +1 -1
  41. package/types/helpers/mainThreadPressEvents.native.d.ts +0 -7
  42. package/types/helpers/mainThreadPressEvents.native.d.ts.map +1 -1
  43. package/types/hooks/useThemeState.d.ts.map +1 -1
@@ -25,152 +25,79 @@ __export(mainThreadPressEvents_native_exports, { useMainThreadPressEvents: () =>
25
25
  module.exports = __toCommonJS(mainThreadPressEvents_native_exports);
26
26
  var import_native = require("@tamagui/native");
27
27
  var import_react = require("react");
28
- var DEFAULT_LONG_PRESS_DELAY = 500;
29
- var DEFAULT_MIN_PRESS_DURATION = 130;
30
28
  function useMainThreadPressEvents(events, viewProps) {
31
29
  var enabled = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : true, debugName = arguments.length > 3 ? arguments[3] : void 0;
32
- var ref = (0, import_react.useRef)(null);
33
- if (!ref.current) {
34
- ref.current = {
35
- state: "idle",
36
- pressInTimer: null,
37
- pressOutTimer: null,
38
- longPressTimer: null,
39
- activateTime: 0,
40
- blockedByExternalOwnership: false,
41
- pressInOutstanding: false
42
- };
43
- }
44
- (0, import_react.useEffect)(function() {
45
- return function() {
46
- clearStartTimers();
47
- if (ref.current.pressOutTimer) {
48
- clearTimeout(ref.current.pressOutTimer);
49
- ref.current.pressOutTimer = null;
50
- }
51
- };
52
- }, []);
53
- if (!enabled || !events) return;
54
- var _events_delayPressIn;
55
- var delayPressIn = Math.max(0, (_events_delayPressIn = events.delayPressIn) !== null && _events_delayPressIn !== void 0 ? _events_delayPressIn : 0);
56
- var _events_delayPressOut;
57
- var delayPressOut = Math.max(0, (_events_delayPressOut = events.delayPressOut) !== null && _events_delayPressOut !== void 0 ? _events_delayPressOut : 0);
58
- var _events_delayLongPress;
59
- var delayLongPress = Math.max(0, (_events_delayLongPress = events.delayLongPress) !== null && _events_delayLongPress !== void 0 ? _events_delayLongPress : DEFAULT_LONG_PRESS_DELAY);
60
- var _events_minPressDuration;
61
- var minPressDuration = Math.max(0, (_events_minPressDuration = events.minPressDuration) !== null && _events_minPressDuration !== void 0 ? _events_minPressDuration : DEFAULT_MIN_PRESS_DURATION);
62
- function activate(e) {
63
- var _events_onPressIn;
64
- if (ref.current.pressInOutstanding) return;
65
- ref.current.pressInOutstanding = true;
66
- ref.current.state = "active";
67
- ref.current.activateTime = Date.now();
68
- (_events_onPressIn = events.onPressIn) === null || _events_onPressIn === void 0 ? void 0 : _events_onPressIn.call(events, e);
69
- }
70
- function clearStartTimers() {
71
- if (ref.current.pressInTimer) clearTimeout(ref.current.pressInTimer);
72
- if (ref.current.longPressTimer) clearTimeout(ref.current.longPressTimer);
73
- ref.current.pressInTimer = null;
74
- ref.current.longPressTimer = null;
75
- }
76
- function releasePressOut(e) {
30
+ var usePressability = require("react-native/Libraries/Pressability/usePressability").default;
31
+ var initialized = (0, import_react.useRef)(false);
32
+ var ownsResponder = (0, import_react.useRef)(false);
33
+ var pressActive = (0, import_react.useRef)(false);
34
+ var active = enabled && Boolean(events);
35
+ if (active) initialized.current = true;
36
+ function endPress(e) {
77
37
  var _events_onPressOut;
78
- if (ref.current.pressOutTimer) {
79
- clearTimeout(ref.current.pressOutTimer);
80
- ref.current.pressOutTimer = null;
81
- }
82
- if (!ref.current.pressInOutstanding) return;
83
- ref.current.pressInOutstanding = false;
84
- ref.current.state = "idle";
85
- (_events_onPressOut = events.onPressOut) === null || _events_onPressOut === void 0 ? void 0 : _events_onPressOut.call(events, e);
86
- }
87
- function deactivate(e) {
88
- if (!ref.current.pressInOutstanding) return;
89
- var pressDuration = Date.now() - ref.current.activateTime;
90
- var remaining = Math.max(minPressDuration - pressDuration, delayPressOut);
91
- if (remaining > 0) {
92
- if (!ref.current.pressOutTimer) {
93
- ref.current.pressOutTimer = setTimeout(function() {
94
- ref.current.pressOutTimer = null;
95
- releasePressOut(e);
96
- }, remaining);
97
- }
98
- } else {
99
- releasePressOut(e);
100
- }
101
- }
102
- function resetPress(e) {
103
- releasePressOut(e);
104
- clearStartTimers();
105
- ref.current.blockedByExternalOwnership = false;
38
+ if (!pressActive.current) return;
39
+ pressActive.current = false;
40
+ events === null || events === void 0 ? void 0 : (_events_onPressOut = events.onPressOut) === null || _events_onPressOut === void 0 ? void 0 : _events_onPressOut.call(events, e);
106
41
  }
42
+ var handlers = usePressability(initialized.current ? {
43
+ ...active ? events : {},
44
+ disabled: !active || (events === null || events === void 0 ? void 0 : events.disabled),
45
+ android_disableSound: true,
46
+ onPressIn: active ? function(e) {
47
+ var _events_onPressIn;
48
+ endPress(e);
49
+ pressActive.current = true;
50
+ (_events_onPressIn = events.onPressIn) === null || _events_onPressIn === void 0 ? void 0 : _events_onPressIn.call(events, e);
51
+ } : void 0,
52
+ onPressOut: active ? endPress : void 0,
53
+ hitSlop: viewProps.hitSlop,
54
+ pressRectOffset: viewProps.pressRetentionOffset
55
+ } : null);
56
+ if (!active || !handlers) return;
107
57
  var userStartShouldSet = viewProps.onStartShouldSetResponder;
108
58
  var userGrant = viewProps.onResponderGrant;
109
59
  var userRelease = viewProps.onResponderRelease;
110
60
  var userTerminate = viewProps.onResponderTerminate;
111
61
  var userTerminationRequest = viewProps.onResponderTerminationRequest;
112
62
  var userMove = viewProps.onResponderMove;
63
+ var userClick = viewProps.onClick;
113
64
  viewProps.onStartShouldSetResponder = function(e) {
114
- if (userStartShouldSet === null || userStartShouldSet === void 0 ? void 0 : userStartShouldSet(e)) return true;
115
- return !events.disabled && !(0, import_native.unstable_hasExternalPressOwnership)();
65
+ return (userStartShouldSet === null || userStartShouldSet === void 0 ? void 0 : userStartShouldSet(e)) || !(0, import_native.unstable_hasExternalPressOwnership)() && handlers.onStartShouldSetResponder();
116
66
  };
117
67
  viewProps.onResponderGrant = function(e) {
118
- releasePressOut(e);
119
- clearStartTimers();
120
- if ((0, import_native.unstable_hasExternalPressOwnership)()) {
121
- ref.current.state = "idle";
122
- ref.current.blockedByExternalOwnership = true;
123
- return;
124
- }
68
+ endPress(e);
69
+ if ((0, import_native.unstable_hasExternalPressOwnership)()) return;
125
70
  userGrant === null || userGrant === void 0 ? void 0 : userGrant(e);
126
- ref.current.blockedByExternalOwnership = false;
127
- ref.current.state = "pressing";
128
- if (delayPressIn > 0) {
129
- ref.current.pressInTimer = setTimeout(function() {
130
- return activate(e);
131
- }, delayPressIn);
132
- } else {
133
- activate(e);
134
- }
135
- if (events.onLongPress) {
136
- ref.current.longPressTimer = setTimeout(function() {
137
- if (ref.current.state === "active") {
138
- var _events_onLongPress;
139
- ref.current.state = "longPressed";
140
- (_events_onLongPress = events.onLongPress) === null || _events_onLongPress === void 0 ? void 0 : _events_onLongPress.call(events, e);
141
- }
142
- }, delayLongPress + delayPressIn);
143
- }
71
+ ownsResponder.current = true;
72
+ return handlers.onResponderGrant(e);
144
73
  };
145
74
  viewProps.onResponderRelease = function(e) {
146
- if (ref.current.blockedByExternalOwnership || (0, import_native.unstable_hasExternalPressOwnership)()) {
147
- resetPress(e);
75
+ if (!ownsResponder.current) return;
76
+ ownsResponder.current = false;
77
+ if ((0, import_native.unstable_hasExternalPressOwnership)()) {
78
+ handlers.onResponderTerminate(e);
79
+ endPress(e);
148
80
  return;
149
81
  }
150
82
  userRelease === null || userRelease === void 0 ? void 0 : userRelease(e);
151
- var wasLongPressed = ref.current.state === "longPressed";
152
- clearStartTimers();
153
- if (ref.current.state === "pressing") {
154
- activate(e);
155
- }
156
- if (!wasLongPressed) {
157
- var _events_onPress;
158
- (_events_onPress = events.onPress) === null || _events_onPress === void 0 ? void 0 : _events_onPress.call(events, e);
159
- }
160
- deactivate(e);
161
- ref.current.blockedByExternalOwnership = false;
83
+ handlers.onResponderRelease(e);
162
84
  };
163
85
  viewProps.onResponderTerminate = function(e) {
164
86
  userTerminate === null || userTerminate === void 0 ? void 0 : userTerminate(e);
165
- resetPress(e);
87
+ if (ownsResponder.current) handlers.onResponderTerminate(e);
88
+ endPress(e);
89
+ ownsResponder.current = false;
166
90
  };
167
91
  viewProps.onResponderTerminationRequest = function(e) {
168
- if (userTerminationRequest) return userTerminationRequest(e);
169
- return events.cancelable !== false;
92
+ var _userTerminationRequest;
93
+ return (_userTerminationRequest = userTerminationRequest === null || userTerminationRequest === void 0 ? void 0 : userTerminationRequest(e)) !== null && _userTerminationRequest !== void 0 ? _userTerminationRequest : handlers.onResponderTerminationRequest();
170
94
  };
171
95
  viewProps.onResponderMove = function(e) {
172
- var _events_onPressMove;
173
96
  userMove === null || userMove === void 0 ? void 0 : userMove(e);
174
- (_events_onPressMove = events.onPressMove) === null || _events_onPressMove === void 0 ? void 0 : _events_onPressMove.call(events, e);
97
+ if (ownsResponder.current) handlers.onResponderMove(e);
98
+ };
99
+ viewProps.onClick = function(e) {
100
+ userClick === null || userClick === void 0 ? void 0 : userClick(e);
101
+ if (!(0, import_native.unstable_hasExternalPressOwnership)()) handlers.onClick(e);
175
102
  };
176
103
  }
@@ -25,153 +25,80 @@ __export(mainThreadPressEvents_native_exports, { useMainThreadPressEvents: () =>
25
25
  module.exports = __toCommonJS(mainThreadPressEvents_native_exports);
26
26
  var import_native = require("@tamagui/native");
27
27
  var import_react = require("react");
28
- var DEFAULT_LONG_PRESS_DELAY = 500;
29
- var DEFAULT_MIN_PRESS_DURATION = 130;
30
28
  function useMainThreadPressEvents(events, viewProps) {
31
29
  var enabled = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : true, debugName = arguments.length > 3 ? arguments[3] : void 0;
32
- var ref = (0, import_react.useRef)(null);
33
- if (!ref.current) {
34
- ref.current = {
35
- state: "idle",
36
- pressInTimer: null,
37
- pressOutTimer: null,
38
- longPressTimer: null,
39
- activateTime: 0,
40
- blockedByExternalOwnership: false,
41
- pressInOutstanding: false
42
- };
43
- }
44
- (0, import_react.useEffect)(function() {
45
- return function() {
46
- clearStartTimers();
47
- if (ref.current.pressOutTimer) {
48
- clearTimeout(ref.current.pressOutTimer);
49
- ref.current.pressOutTimer = null;
50
- }
51
- };
52
- }, []);
53
- if (!enabled || !events) return;
54
- var _events_delayPressIn;
55
- var delayPressIn = Math.max(0, (_events_delayPressIn = events.delayPressIn) !== null && _events_delayPressIn !== void 0 ? _events_delayPressIn : 0);
56
- var _events_delayPressOut;
57
- var delayPressOut = Math.max(0, (_events_delayPressOut = events.delayPressOut) !== null && _events_delayPressOut !== void 0 ? _events_delayPressOut : 0);
58
- var _events_delayLongPress;
59
- var delayLongPress = Math.max(0, (_events_delayLongPress = events.delayLongPress) !== null && _events_delayLongPress !== void 0 ? _events_delayLongPress : DEFAULT_LONG_PRESS_DELAY);
60
- var _events_minPressDuration;
61
- var minPressDuration = Math.max(0, (_events_minPressDuration = events.minPressDuration) !== null && _events_minPressDuration !== void 0 ? _events_minPressDuration : DEFAULT_MIN_PRESS_DURATION);
62
- function activate(e) {
63
- var _events_onPressIn;
64
- if (ref.current.pressInOutstanding) return;
65
- ref.current.pressInOutstanding = true;
66
- ref.current.state = "active";
67
- ref.current.activateTime = Date.now();
68
- (_events_onPressIn = events.onPressIn) === null || _events_onPressIn === void 0 ? void 0 : _events_onPressIn.call(events, e);
69
- }
70
- function clearStartTimers() {
71
- if (ref.current.pressInTimer) clearTimeout(ref.current.pressInTimer);
72
- if (ref.current.longPressTimer) clearTimeout(ref.current.longPressTimer);
73
- ref.current.pressInTimer = null;
74
- ref.current.longPressTimer = null;
75
- }
76
- function releasePressOut(e) {
30
+ var usePressability = require("react-native/Libraries/Pressability/usePressability").default;
31
+ var initialized = (0, import_react.useRef)(false);
32
+ var ownsResponder = (0, import_react.useRef)(false);
33
+ var pressActive = (0, import_react.useRef)(false);
34
+ var active = enabled && Boolean(events);
35
+ if (active) initialized.current = true;
36
+ function endPress(e) {
77
37
  var _events_onPressOut;
78
- if (ref.current.pressOutTimer) {
79
- clearTimeout(ref.current.pressOutTimer);
80
- ref.current.pressOutTimer = null;
81
- }
82
- if (!ref.current.pressInOutstanding) return;
83
- ref.current.pressInOutstanding = false;
84
- ref.current.state = "idle";
85
- (_events_onPressOut = events.onPressOut) === null || _events_onPressOut === void 0 ? void 0 : _events_onPressOut.call(events, e);
86
- }
87
- function deactivate(e) {
88
- if (!ref.current.pressInOutstanding) return;
89
- var pressDuration = Date.now() - ref.current.activateTime;
90
- var remaining = Math.max(minPressDuration - pressDuration, delayPressOut);
91
- if (remaining > 0) {
92
- if (!ref.current.pressOutTimer) {
93
- ref.current.pressOutTimer = setTimeout(function() {
94
- ref.current.pressOutTimer = null;
95
- releasePressOut(e);
96
- }, remaining);
97
- }
98
- } else {
99
- releasePressOut(e);
100
- }
101
- }
102
- function resetPress(e) {
103
- releasePressOut(e);
104
- clearStartTimers();
105
- ref.current.blockedByExternalOwnership = false;
38
+ if (!pressActive.current) return;
39
+ pressActive.current = false;
40
+ events === null || events === void 0 ? void 0 : (_events_onPressOut = events.onPressOut) === null || _events_onPressOut === void 0 ? void 0 : _events_onPressOut.call(events, e);
106
41
  }
42
+ var handlers = usePressability(initialized.current ? {
43
+ ...active ? events : {},
44
+ disabled: !active || (events === null || events === void 0 ? void 0 : events.disabled),
45
+ android_disableSound: true,
46
+ onPressIn: active ? function(e) {
47
+ var _events_onPressIn;
48
+ endPress(e);
49
+ pressActive.current = true;
50
+ (_events_onPressIn = events.onPressIn) === null || _events_onPressIn === void 0 ? void 0 : _events_onPressIn.call(events, e);
51
+ } : void 0,
52
+ onPressOut: active ? endPress : void 0,
53
+ hitSlop: viewProps.hitSlop,
54
+ pressRectOffset: viewProps.pressRetentionOffset
55
+ } : null);
56
+ if (!active || !handlers) return;
107
57
  var userStartShouldSet = viewProps.onStartShouldSetResponder;
108
58
  var userGrant = viewProps.onResponderGrant;
109
59
  var userRelease = viewProps.onResponderRelease;
110
60
  var userTerminate = viewProps.onResponderTerminate;
111
61
  var userTerminationRequest = viewProps.onResponderTerminationRequest;
112
62
  var userMove = viewProps.onResponderMove;
63
+ var userClick = viewProps.onClick;
113
64
  viewProps.onStartShouldSetResponder = function(e) {
114
- if (userStartShouldSet === null || userStartShouldSet === void 0 ? void 0 : userStartShouldSet(e)) return true;
115
- return !events.disabled && !(0, import_native.unstable_hasExternalPressOwnership)();
65
+ return (userStartShouldSet === null || userStartShouldSet === void 0 ? void 0 : userStartShouldSet(e)) || !(0, import_native.unstable_hasExternalPressOwnership)() && handlers.onStartShouldSetResponder();
116
66
  };
117
67
  viewProps.onResponderGrant = function(e) {
118
- releasePressOut(e);
119
- clearStartTimers();
120
- if ((0, import_native.unstable_hasExternalPressOwnership)()) {
121
- ref.current.state = "idle";
122
- ref.current.blockedByExternalOwnership = true;
123
- return;
124
- }
68
+ endPress(e);
69
+ if ((0, import_native.unstable_hasExternalPressOwnership)()) return;
125
70
  userGrant === null || userGrant === void 0 ? void 0 : userGrant(e);
126
- ref.current.blockedByExternalOwnership = false;
127
- ref.current.state = "pressing";
128
- if (delayPressIn > 0) {
129
- ref.current.pressInTimer = setTimeout(function() {
130
- return activate(e);
131
- }, delayPressIn);
132
- } else {
133
- activate(e);
134
- }
135
- if (events.onLongPress) {
136
- ref.current.longPressTimer = setTimeout(function() {
137
- if (ref.current.state === "active") {
138
- var _events_onLongPress;
139
- ref.current.state = "longPressed";
140
- (_events_onLongPress = events.onLongPress) === null || _events_onLongPress === void 0 ? void 0 : _events_onLongPress.call(events, e);
141
- }
142
- }, delayLongPress + delayPressIn);
143
- }
71
+ ownsResponder.current = true;
72
+ return handlers.onResponderGrant(e);
144
73
  };
145
74
  viewProps.onResponderRelease = function(e) {
146
- if (ref.current.blockedByExternalOwnership || (0, import_native.unstable_hasExternalPressOwnership)()) {
147
- resetPress(e);
75
+ if (!ownsResponder.current) return;
76
+ ownsResponder.current = false;
77
+ if ((0, import_native.unstable_hasExternalPressOwnership)()) {
78
+ handlers.onResponderTerminate(e);
79
+ endPress(e);
148
80
  return;
149
81
  }
150
82
  userRelease === null || userRelease === void 0 ? void 0 : userRelease(e);
151
- var wasLongPressed = ref.current.state === "longPressed";
152
- clearStartTimers();
153
- if (ref.current.state === "pressing") {
154
- activate(e);
155
- }
156
- if (!wasLongPressed) {
157
- var _events_onPress;
158
- (_events_onPress = events.onPress) === null || _events_onPress === void 0 ? void 0 : _events_onPress.call(events, e);
159
- }
160
- deactivate(e);
161
- ref.current.blockedByExternalOwnership = false;
83
+ handlers.onResponderRelease(e);
162
84
  };
163
85
  viewProps.onResponderTerminate = function(e) {
164
86
  userTerminate === null || userTerminate === void 0 ? void 0 : userTerminate(e);
165
- resetPress(e);
87
+ if (ownsResponder.current) handlers.onResponderTerminate(e);
88
+ endPress(e);
89
+ ownsResponder.current = false;
166
90
  };
167
91
  viewProps.onResponderTerminationRequest = function(e) {
168
- if (userTerminationRequest) return userTerminationRequest(e);
169
- return events.cancelable !== false;
92
+ var _userTerminationRequest;
93
+ return (_userTerminationRequest = userTerminationRequest === null || userTerminationRequest === void 0 ? void 0 : userTerminationRequest(e)) !== null && _userTerminationRequest !== void 0 ? _userTerminationRequest : handlers.onResponderTerminationRequest();
170
94
  };
171
95
  viewProps.onResponderMove = function(e) {
172
- var _events_onPressMove;
173
96
  userMove === null || userMove === void 0 ? void 0 : userMove(e);
174
- (_events_onPressMove = events.onPressMove) === null || _events_onPressMove === void 0 ? void 0 : _events_onPressMove.call(events, e);
97
+ if (ownsResponder.current) handlers.onResponderMove(e);
98
+ };
99
+ viewProps.onClick = function(e) {
100
+ userClick === null || userClick === void 0 ? void 0 : userClick(e);
101
+ if (!(0, import_native.unstable_hasExternalPressOwnership)()) handlers.onClick(e);
175
102
  };
176
103
  }
177
104
 
@@ -1 +1 @@
1
- {"version":3,"file":"mainThreadPressEvents.native.js","names":[],"sources":["cjs/helpers/mainThreadPressEvents.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar mainThreadPressEvents_native_exports = {};\n__export(mainThreadPressEvents_native_exports, {\n useMainThreadPressEvents: () => useMainThreadPressEvents\n});\nmodule.exports = __toCommonJS(mainThreadPressEvents_native_exports);\nvar import_native = require(\"@tamagui/native\");\nvar import_react = require(\"react\");\nvar DEFAULT_LONG_PRESS_DELAY = 500;\nvar DEFAULT_MIN_PRESS_DURATION = 130;\nfunction useMainThreadPressEvents(events, viewProps) {\n var enabled = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : true, debugName = arguments.length > 3 ? arguments[3] : void 0;\n var ref = (0, import_react.useRef)(null);\n if (!ref.current) {\n ref.current = {\n state: \"idle\",\n pressInTimer: null,\n pressOutTimer: null,\n longPressTimer: null,\n activateTime: 0,\n blockedByExternalOwnership: false,\n pressInOutstanding: false\n };\n }\n (0, import_react.useEffect)(\n function() {\n return function() {\n clearStartTimers();\n if (ref.current.pressOutTimer) {\n clearTimeout(ref.current.pressOutTimer);\n ref.current.pressOutTimer = null;\n }\n };\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n if (!enabled || !events) return;\n var _events_delayPressIn;\n var delayPressIn = Math.max(0, (_events_delayPressIn = events.delayPressIn) !== null && _events_delayPressIn !== void 0 ? _events_delayPressIn : 0);\n var _events_delayPressOut;\n var delayPressOut = Math.max(0, (_events_delayPressOut = events.delayPressOut) !== null && _events_delayPressOut !== void 0 ? _events_delayPressOut : 0);\n var _events_delayLongPress;\n var delayLongPress = Math.max(0, (_events_delayLongPress = events.delayLongPress) !== null && _events_delayLongPress !== void 0 ? _events_delayLongPress : DEFAULT_LONG_PRESS_DELAY);\n var _events_minPressDuration;\n var minPressDuration = Math.max(0, (_events_minPressDuration = events.minPressDuration) !== null && _events_minPressDuration !== void 0 ? _events_minPressDuration : DEFAULT_MIN_PRESS_DURATION);\n function activate(e) {\n var _events_onPressIn;\n if (ref.current.pressInOutstanding) return;\n ref.current.pressInOutstanding = true;\n ref.current.state = \"active\";\n ref.current.activateTime = Date.now();\n (_events_onPressIn = events.onPressIn) === null || _events_onPressIn === void 0 ? void 0 : _events_onPressIn.call(events, e);\n }\n function clearStartTimers() {\n if (ref.current.pressInTimer) clearTimeout(ref.current.pressInTimer);\n if (ref.current.longPressTimer) clearTimeout(ref.current.longPressTimer);\n ref.current.pressInTimer = null;\n ref.current.longPressTimer = null;\n }\n function releasePressOut(e) {\n var _events_onPressOut;\n if (ref.current.pressOutTimer) {\n clearTimeout(ref.current.pressOutTimer);\n ref.current.pressOutTimer = null;\n }\n if (!ref.current.pressInOutstanding) return;\n ref.current.pressInOutstanding = false;\n ref.current.state = \"idle\";\n (_events_onPressOut = events.onPressOut) === null || _events_onPressOut === void 0 ? void 0 : _events_onPressOut.call(events, e);\n }\n function deactivate(e) {\n if (!ref.current.pressInOutstanding) return;\n var pressDuration = Date.now() - ref.current.activateTime;\n var remaining = Math.max(minPressDuration - pressDuration, delayPressOut);\n if (remaining > 0) {\n if (!ref.current.pressOutTimer) {\n ref.current.pressOutTimer = setTimeout(function() {\n ref.current.pressOutTimer = null;\n releasePressOut(e);\n }, remaining);\n }\n } else {\n releasePressOut(e);\n }\n }\n function resetPress(e) {\n releasePressOut(e);\n clearStartTimers();\n ref.current.blockedByExternalOwnership = false;\n }\n var userStartShouldSet = viewProps.onStartShouldSetResponder;\n var userGrant = viewProps.onResponderGrant;\n var userRelease = viewProps.onResponderRelease;\n var userTerminate = viewProps.onResponderTerminate;\n var userTerminationRequest = viewProps.onResponderTerminationRequest;\n var userMove = viewProps.onResponderMove;\n viewProps.onStartShouldSetResponder = function(e) {\n if (userStartShouldSet === null || userStartShouldSet === void 0 ? void 0 : userStartShouldSet(e)) return true;\n return !events.disabled && !(0, import_native.unstable_hasExternalPressOwnership)();\n };\n viewProps.onResponderGrant = function(e) {\n releasePressOut(e);\n clearStartTimers();\n if ((0, import_native.unstable_hasExternalPressOwnership)()) {\n ref.current.state = \"idle\";\n ref.current.blockedByExternalOwnership = true;\n return;\n }\n userGrant === null || userGrant === void 0 ? void 0 : userGrant(e);\n ref.current.blockedByExternalOwnership = false;\n ref.current.state = \"pressing\";\n if (delayPressIn > 0) {\n ref.current.pressInTimer = setTimeout(function() {\n return activate(e);\n }, delayPressIn);\n } else {\n activate(e);\n }\n if (events.onLongPress) {\n ref.current.longPressTimer = setTimeout(function() {\n if (ref.current.state === \"active\") {\n var _events_onLongPress;\n ref.current.state = \"longPressed\";\n (_events_onLongPress = events.onLongPress) === null || _events_onLongPress === void 0 ? void 0 : _events_onLongPress.call(events, e);\n }\n }, delayLongPress + delayPressIn);\n }\n };\n viewProps.onResponderRelease = function(e) {\n if (ref.current.blockedByExternalOwnership || (0, import_native.unstable_hasExternalPressOwnership)()) {\n resetPress(e);\n return;\n }\n userRelease === null || userRelease === void 0 ? void 0 : userRelease(e);\n var wasLongPressed = ref.current.state === \"longPressed\";\n clearStartTimers();\n if (ref.current.state === \"pressing\") {\n activate(e);\n }\n if (!wasLongPressed) {\n var _events_onPress;\n (_events_onPress = events.onPress) === null || _events_onPress === void 0 ? void 0 : _events_onPress.call(events, e);\n }\n deactivate(e);\n ref.current.blockedByExternalOwnership = false;\n };\n viewProps.onResponderTerminate = function(e) {\n userTerminate === null || userTerminate === void 0 ? void 0 : userTerminate(e);\n resetPress(e);\n };\n viewProps.onResponderTerminationRequest = function(e) {\n if (userTerminationRequest) return userTerminationRequest(e);\n return events.cancelable !== false;\n };\n viewProps.onResponderMove = function(e) {\n var _events_onPressMove;\n userMove === null || userMove === void 0 ? void 0 : userMove(e);\n (_events_onPressMove = events.onPressMove) === null || _events_onPressMove === void 0 ? void 0 : _events_onPressMove.call(events, e);\n };\n}\n//# sourceMappingURL=mainThreadPressEvents.native.js.map\n"],"mappings":";;;AACA,IAAI,YAAY,OAAO;AACvB,IAAI,mBAAmB,OAAO;AAC9B,IAAI,oBAAoB,OAAO;AAC/B,IAAI,eAAe,OAAO,UAAU;AACpC,IAAI,YAAY,QAAQ,QAAQ;CAC9B,KAAK,IAAI,QAAQ,KACf,UAAU,QAAQ,MAAM;EAAE,KAAK,IAAI;EAAO,YAAY;CAAK,CAAC;AAChE;AACA,IAAI,eAAe,IAAI,MAAM,QAAQ,SAAS;CAC5C,IAAI,QAAQ,OAAO,SAAS,YAAY,OAAO,SAAS,YAAY;EAClE,KAAK,IAAI,OAAO,kBAAkB,IAAI,GACpC,IAAI,CAAC,aAAa,KAAK,IAAI,GAAG,KAAK,QAAQ,QACzC,UAAU,IAAI,KAAK;GAAE,WAAW,KAAK;GAAM,YAAY,EAAE,OAAO,iBAAiB,MAAM,GAAG,MAAM,KAAK;EAAW,CAAC;CACvH;CACA,OAAO;AACT;AACA,IAAI,gBAAgB,QAAQ,YAAY,UAAU,CAAC,GAAG,cAAc,EAAE,OAAO,KAAK,CAAC,GAAG,GAAG;AACzF,IAAI,uCAAuC,CAAC;AAC5C,SAAS,sCAAsC,EAC7C,gCAAgC,yBAClC,CAAC;AACD,OAAO,UAAU,aAAa,oCAAoC;AAClE,IAAI,gBAAgB,QAAQ,iBAAiB;AAC7C,IAAI,eAAe,QAAQ,OAAO;AAClC,IAAI,2BAA2B;AAC/B,IAAI,6BAA6B;AACjC,SAAS,yBAAyB,QAAQ,WAAW;CACnD,IAAI,UAAU,UAAU,SAAS,KAAK,UAAU,OAAO,KAAK,IAAI,UAAU,KAAK,MAAM,YAAY,UAAU,SAAS,IAAI,UAAU,KAAK,KAAK;CAC5I,IAAI,OAAO,GAAG,aAAa,OAAM,CAAE,IAAI;CACvC,IAAI,CAAC,IAAI,SAAS;EAChB,IAAI,UAAU;GACZ,OAAO;GACP,cAAc;GACd,eAAe;GACf,gBAAgB;GAChB,cAAc;GACd,4BAA4B;GAC5B,oBAAoB;EACtB;CACF;CACA,CAAC,GAAG,aAAa,UAAS,CACxB,WAAW;EACT,OAAO,WAAW;GAChB,iBAAiB;GACjB,IAAI,IAAI,QAAQ,eAAe;IAC7B,aAAa,IAAI,QAAQ,aAAa;IACtC,IAAI,QAAQ,gBAAgB;GAC9B;EACF;CACF,GAEA,CAAC,CACH;CACA,IAAI,CAAC,WAAW,CAAC,QAAQ;CACzB,IAAI;CACJ,IAAI,eAAe,KAAK,IAAI,IAAI,uBAAuB,OAAO,kBAAkB,QAAQ,yBAAyB,KAAK,IAAI,uBAAuB,CAAC;CAClJ,IAAI;CACJ,IAAI,gBAAgB,KAAK,IAAI,IAAI,wBAAwB,OAAO,mBAAmB,QAAQ,0BAA0B,KAAK,IAAI,wBAAwB,CAAC;CACvJ,IAAI;CACJ,IAAI,iBAAiB,KAAK,IAAI,IAAI,yBAAyB,OAAO,oBAAoB,QAAQ,2BAA2B,KAAK,IAAI,yBAAyB,wBAAwB;CACnL,IAAI;CACJ,IAAI,mBAAmB,KAAK,IAAI,IAAI,2BAA2B,OAAO,sBAAsB,QAAQ,6BAA6B,KAAK,IAAI,2BAA2B,0BAA0B;CAC/L,SAAS,SAAS,GAAG;EACnB,IAAI;EACJ,IAAI,IAAI,QAAQ,oBAAoB;EACpC,IAAI,QAAQ,qBAAqB;EACjC,IAAI,QAAQ,QAAQ;EACpB,IAAI,QAAQ,eAAe,KAAK,IAAI;EACpC,CAAC,oBAAoB,OAAO,eAAe,QAAQ,sBAAsB,KAAK,IAAI,KAAK,IAAI,kBAAkB,KAAK,QAAQ,CAAC;CAC7H;CACA,SAAS,mBAAmB;EAC1B,IAAI,IAAI,QAAQ,cAAc,aAAa,IAAI,QAAQ,YAAY;EACnE,IAAI,IAAI,QAAQ,gBAAgB,aAAa,IAAI,QAAQ,cAAc;EACvE,IAAI,QAAQ,eAAe;EAC3B,IAAI,QAAQ,iBAAiB;CAC/B;CACA,SAAS,gBAAgB,GAAG;EAC1B,IAAI;EACJ,IAAI,IAAI,QAAQ,eAAe;GAC7B,aAAa,IAAI,QAAQ,aAAa;GACtC,IAAI,QAAQ,gBAAgB;EAC9B;EACA,IAAI,CAAC,IAAI,QAAQ,oBAAoB;EACrC,IAAI,QAAQ,qBAAqB;EACjC,IAAI,QAAQ,QAAQ;EACpB,CAAC,qBAAqB,OAAO,gBAAgB,QAAQ,uBAAuB,KAAK,IAAI,KAAK,IAAI,mBAAmB,KAAK,QAAQ,CAAC;CACjI;CACA,SAAS,WAAW,GAAG;EACrB,IAAI,CAAC,IAAI,QAAQ,oBAAoB;EACrC,IAAI,gBAAgB,KAAK,IAAI,IAAI,IAAI,QAAQ;EAC7C,IAAI,YAAY,KAAK,IAAI,mBAAmB,eAAe,aAAa;EACxE,IAAI,YAAY,GAAG;GACjB,IAAI,CAAC,IAAI,QAAQ,eAAe;IAC9B,IAAI,QAAQ,gBAAgB,WAAW,WAAW;KAChD,IAAI,QAAQ,gBAAgB;KAC5B,gBAAgB,CAAC;IACnB,GAAG,SAAS;GACd;EACF,OAAO;GACL,gBAAgB,CAAC;EACnB;CACF;CACA,SAAS,WAAW,GAAG;EACrB,gBAAgB,CAAC;EACjB,iBAAiB;EACjB,IAAI,QAAQ,6BAA6B;CAC3C;CACA,IAAI,qBAAqB,UAAU;CACnC,IAAI,YAAY,UAAU;CAC1B,IAAI,cAAc,UAAU;CAC5B,IAAI,gBAAgB,UAAU;CAC9B,IAAI,yBAAyB,UAAU;CACvC,IAAI,WAAW,UAAU;CACzB,UAAU,4BAA4B,SAAS,GAAG;EAChD,IAAI,uBAAuB,QAAQ,uBAAuB,KAAK,IAAI,KAAK,IAAI,mBAAmB,CAAC,GAAG,OAAO;EAC1G,OAAO,CAAC,OAAO,YAAY,EAAE,GAAG,cAAc,mCAAkC,CAAE;CACpF;CACA,UAAU,mBAAmB,SAAS,GAAG;EACvC,gBAAgB,CAAC;EACjB,iBAAiB;EACjB,KAAK,GAAG,cAAc,mCAAkC,CAAE,GAAG;GAC3D,IAAI,QAAQ,QAAQ;GACpB,IAAI,QAAQ,6BAA6B;GACzC;EACF;EACA,cAAc,QAAQ,cAAc,KAAK,IAAI,KAAK,IAAI,UAAU,CAAC;EACjE,IAAI,QAAQ,6BAA6B;EACzC,IAAI,QAAQ,QAAQ;EACpB,IAAI,eAAe,GAAG;GACpB,IAAI,QAAQ,eAAe,WAAW,WAAW;IAC/C,OAAO,SAAS,CAAC;GACnB,GAAG,YAAY;EACjB,OAAO;GACL,SAAS,CAAC;EACZ;EACA,IAAI,OAAO,aAAa;GACtB,IAAI,QAAQ,iBAAiB,WAAW,WAAW;IACjD,IAAI,IAAI,QAAQ,UAAU,UAAU;KAClC,IAAI;KACJ,IAAI,QAAQ,QAAQ;KACpB,CAAC,sBAAsB,OAAO,iBAAiB,QAAQ,wBAAwB,KAAK,IAAI,KAAK,IAAI,oBAAoB,KAAK,QAAQ,CAAC;IACrI;GACF,GAAG,iBAAiB,YAAY;EAClC;CACF;CACA,UAAU,qBAAqB,SAAS,GAAG;EACzC,IAAI,IAAI,QAAQ,+BAA+B,GAAG,cAAc,mCAAkC,CAAE,GAAG;GACrG,WAAW,CAAC;GACZ;EACF;EACA,gBAAgB,QAAQ,gBAAgB,KAAK,IAAI,KAAK,IAAI,YAAY,CAAC;EACvE,IAAI,iBAAiB,IAAI,QAAQ,UAAU;EAC3C,iBAAiB;EACjB,IAAI,IAAI,QAAQ,UAAU,YAAY;GACpC,SAAS,CAAC;EACZ;EACA,IAAI,CAAC,gBAAgB;GACnB,IAAI;GACJ,CAAC,kBAAkB,OAAO,aAAa,QAAQ,oBAAoB,KAAK,IAAI,KAAK,IAAI,gBAAgB,KAAK,QAAQ,CAAC;EACrH;EACA,WAAW,CAAC;EACZ,IAAI,QAAQ,6BAA6B;CAC3C;CACA,UAAU,uBAAuB,SAAS,GAAG;EAC3C,kBAAkB,QAAQ,kBAAkB,KAAK,IAAI,KAAK,IAAI,cAAc,CAAC;EAC7E,WAAW,CAAC;CACd;CACA,UAAU,gCAAgC,SAAS,GAAG;EACpD,IAAI,wBAAwB,OAAO,uBAAuB,CAAC;EAC3D,OAAO,OAAO,eAAe;CAC/B;CACA,UAAU,kBAAkB,SAAS,GAAG;EACtC,IAAI;EACJ,aAAa,QAAQ,aAAa,KAAK,IAAI,KAAK,IAAI,SAAS,CAAC;EAC9D,CAAC,sBAAsB,OAAO,iBAAiB,QAAQ,wBAAwB,KAAK,IAAI,KAAK,IAAI,oBAAoB,KAAK,QAAQ,CAAC;CACrI;AACF"}
1
+ {"version":3,"file":"mainThreadPressEvents.native.js","names":[],"sources":["cjs/helpers/mainThreadPressEvents.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar mainThreadPressEvents_native_exports = {};\n__export(mainThreadPressEvents_native_exports, {\n useMainThreadPressEvents: () => useMainThreadPressEvents\n});\nmodule.exports = __toCommonJS(mainThreadPressEvents_native_exports);\nvar import_native = require(\"@tamagui/native\");\nvar import_react = require(\"react\");\nfunction useMainThreadPressEvents(events, viewProps) {\n var enabled = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : true, debugName = arguments.length > 3 ? arguments[3] : void 0;\n var usePressability = require(\"react-native/Libraries/Pressability/usePressability\").default;\n var initialized = (0, import_react.useRef)(false);\n var ownsResponder = (0, import_react.useRef)(false);\n var pressActive = (0, import_react.useRef)(false);\n var active = enabled && Boolean(events);\n if (active) initialized.current = true;\n function endPress(e) {\n var _events_onPressOut;\n if (!pressActive.current) return;\n pressActive.current = false;\n events === null || events === void 0 ? void 0 : (_events_onPressOut = events.onPressOut) === null || _events_onPressOut === void 0 ? void 0 : _events_onPressOut.call(events, e);\n }\n var handlers = usePressability(initialized.current ? {\n ...active ? events : {},\n disabled: !active || (events === null || events === void 0 ? void 0 : events.disabled),\n android_disableSound: true,\n onPressIn: active ? function(e) {\n var _events_onPressIn;\n endPress(e);\n pressActive.current = true;\n (_events_onPressIn = events.onPressIn) === null || _events_onPressIn === void 0 ? void 0 : _events_onPressIn.call(events, e);\n } : void 0,\n onPressOut: active ? endPress : void 0,\n hitSlop: viewProps.hitSlop,\n pressRectOffset: viewProps.pressRetentionOffset\n } : null);\n if (!active || !handlers) return;\n var userStartShouldSet = viewProps.onStartShouldSetResponder;\n var userGrant = viewProps.onResponderGrant;\n var userRelease = viewProps.onResponderRelease;\n var userTerminate = viewProps.onResponderTerminate;\n var userTerminationRequest = viewProps.onResponderTerminationRequest;\n var userMove = viewProps.onResponderMove;\n var userClick = viewProps.onClick;\n viewProps.onStartShouldSetResponder = function(e) {\n return (userStartShouldSet === null || userStartShouldSet === void 0 ? void 0 : userStartShouldSet(e)) || !(0, import_native.unstable_hasExternalPressOwnership)() && handlers.onStartShouldSetResponder();\n };\n viewProps.onResponderGrant = function(e) {\n endPress(e);\n if ((0, import_native.unstable_hasExternalPressOwnership)()) return;\n userGrant === null || userGrant === void 0 ? void 0 : userGrant(e);\n ownsResponder.current = true;\n return handlers.onResponderGrant(e);\n };\n viewProps.onResponderRelease = function(e) {\n if (!ownsResponder.current) return;\n ownsResponder.current = false;\n if ((0, import_native.unstable_hasExternalPressOwnership)()) {\n handlers.onResponderTerminate(e);\n endPress(e);\n return;\n }\n userRelease === null || userRelease === void 0 ? void 0 : userRelease(e);\n handlers.onResponderRelease(e);\n };\n viewProps.onResponderTerminate = function(e) {\n userTerminate === null || userTerminate === void 0 ? void 0 : userTerminate(e);\n if (ownsResponder.current) handlers.onResponderTerminate(e);\n endPress(e);\n ownsResponder.current = false;\n };\n viewProps.onResponderTerminationRequest = function(e) {\n var _userTerminationRequest;\n return (_userTerminationRequest = userTerminationRequest === null || userTerminationRequest === void 0 ? void 0 : userTerminationRequest(e)) !== null && _userTerminationRequest !== void 0 ? _userTerminationRequest : handlers.onResponderTerminationRequest();\n };\n viewProps.onResponderMove = function(e) {\n userMove === null || userMove === void 0 ? void 0 : userMove(e);\n if (ownsResponder.current) handlers.onResponderMove(e);\n };\n viewProps.onClick = function(e) {\n userClick === null || userClick === void 0 ? void 0 : userClick(e);\n if (!(0, import_native.unstable_hasExternalPressOwnership)()) handlers.onClick(e);\n };\n}\n//# sourceMappingURL=mainThreadPressEvents.native.js.map\n"],"mappings":"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"}
@@ -193,7 +193,7 @@ const getSnapshotImpl = (r) => {
193
193
  const isSchemeOnlyChange = !optimizeForFirstRender && false;
194
194
  const allKeysSchemeOptimized = !optimizeForFirstRender && Boolean(keys.current?.size && schemeKeys?.current?.size === keys.current.size);
195
195
  const canSkipForSchemeChange = Boolean(isSchemeOnlyChange && allKeysSchemeOptimized);
196
- const needsUpdate = props.passThrough ? false : optimizeForFirstRender ? true : isRoot || props.name === "light" || props.name === "dark" || props.name === null ? true : !HasRenderedOnce.get(keys) ? true : canSkipForSchemeChange ? false : keys?.current?.size ? true : props.needsUpdate?.();
196
+ const needsUpdate = props.passThrough ? false : optimizeForFirstRender ? true : isRoot || props.forceClassName || props.name === "light" || props.name === "dark" || props.name === null ? true : !HasRenderedOnce.get(keys) ? true : canSkipForSchemeChange ? false : keys?.current?.size ? true : props.needsUpdate?.();
197
197
  const [rerender, nextRaw] = getNextState(local, props, propsKey, isRoot, id, parentId, needsUpdate, PendingUpdate.get(id));
198
198
  let next = nextRaw;
199
199
  if (props._themeUpdate && nextRaw?.theme) {
@@ -221,7 +221,7 @@ const getSnapshotImpl = (r) => {
221
221
  };
222
222
  const getNextState = (lastState, props, propsKey, isRoot = false, id, parentId, needsUpdate, pendingUpdate) => {
223
223
  const parentState = states.get(parentId);
224
- if (props.passThrough) return [false, lastState || parentState || { name: "" }];
224
+ if (props.passThrough) return [false, parentState || lastState || { name: "" }];
225
225
  themes ||= (0, import_config.getConfig)().themes;
226
226
  const name = !propsKey && (!lastState || !lastState.isNew) ? null : getNewThemeName(parentState?.name, props, pendingUpdate === "force" ? true : !!needsUpdate);
227
227
  const authoredName = props.name;
@@ -221,7 +221,7 @@ var getSnapshotImpl = function(r) {
221
221
  var isSchemeOnlyChange = !optimizeForFirstRender && import_constants.supportsDynamicColorIOS && (0, import_config.getSetting)("fastSchemeChange") && local && parentState && local.scheme !== parentState.scheme && getThemeBaseName(local.name) === getThemeBaseName(parentState.name);
222
222
  var allKeysSchemeOptimized = !optimizeForFirstRender && Boolean(((_keys_current = keys.current) === null || _keys_current === void 0 ? void 0 : _keys_current.size) && (schemeKeys === null || schemeKeys === void 0 ? void 0 : (_schemeKeys_current = schemeKeys.current) === null || _schemeKeys_current === void 0 ? void 0 : _schemeKeys_current.size) === keys.current.size);
223
223
  var canSkipForSchemeChange = Boolean(isSchemeOnlyChange && allKeysSchemeOptimized);
224
- var needsUpdate = props.passThrough ? false : optimizeForFirstRender ? true : isRoot || props.name === "light" || props.name === "dark" || props.name === null ? true : !HasRenderedOnce.get(keys) ? true : canSkipForSchemeChange ? false : (keys === null || keys === void 0 ? void 0 : (_keys_current1 = keys.current) === null || _keys_current1 === void 0 ? void 0 : _keys_current1.size) ? true : (_props_needsUpdate = props.needsUpdate) === null || _props_needsUpdate === void 0 ? void 0 : _props_needsUpdate.call(props);
224
+ var needsUpdate = props.passThrough ? false : optimizeForFirstRender ? true : isRoot || props.forceClassName || props.name === "light" || props.name === "dark" || props.name === null ? true : !HasRenderedOnce.get(keys) ? true : canSkipForSchemeChange ? false : (keys === null || keys === void 0 ? void 0 : (_keys_current1 = keys.current) === null || _keys_current1 === void 0 ? void 0 : _keys_current1.size) ? true : (_props_needsUpdate = props.needsUpdate) === null || _props_needsUpdate === void 0 ? void 0 : _props_needsUpdate.call(props);
225
225
  var [rerender, nextRaw] = getNextState(local, props, propsKey, isRoot, id, parentId, needsUpdate, PendingUpdate.get(id));
226
226
  var next = nextRaw;
227
227
  if (props._themeUpdate && (nextRaw === null || nextRaw === void 0 ? void 0 : nextRaw.theme)) {
@@ -251,7 +251,7 @@ var getSnapshotImpl = function(r) {
251
251
  var getNextState = function(lastState, props, propsKey) {
252
252
  var isRoot = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false, id = arguments.length > 4 ? arguments[4] : void 0, parentId = arguments.length > 5 ? arguments[5] : void 0, needsUpdate = arguments.length > 6 ? arguments[6] : void 0, pendingUpdate = arguments.length > 7 ? arguments[7] : void 0;
253
253
  var parentState = states.get(parentId);
254
- if (props.passThrough) return [false, lastState || parentState || { name: "" }];
254
+ if (props.passThrough) return [false, parentState || lastState || { name: "" }];
255
255
  themes || (themes = (0, import_config.getConfig)().themes);
256
256
  var name = !propsKey && (!lastState || !lastState.isNew) ? null : getNewThemeName(parentState === null || parentState === void 0 ? void 0 : parentState.name, props, pendingUpdate === "force" ? true : !!needsUpdate);
257
257
  var authoredName = props.name;
@@ -221,7 +221,7 @@ var getSnapshotImpl = function(r) {
221
221
  var isSchemeOnlyChange = !optimizeForFirstRender && import_constants.supportsDynamicColorIOS && (0, import_config.getSetting)("fastSchemeChange") && local && parentState && local.scheme !== parentState.scheme && getThemeBaseName(local.name) === getThemeBaseName(parentState.name);
222
222
  var allKeysSchemeOptimized = !optimizeForFirstRender && Boolean(((_keys_current = keys.current) === null || _keys_current === void 0 ? void 0 : _keys_current.size) && (schemeKeys === null || schemeKeys === void 0 ? void 0 : (_schemeKeys_current = schemeKeys.current) === null || _schemeKeys_current === void 0 ? void 0 : _schemeKeys_current.size) === keys.current.size);
223
223
  var canSkipForSchemeChange = Boolean(isSchemeOnlyChange && allKeysSchemeOptimized);
224
- var needsUpdate = props.passThrough ? false : optimizeForFirstRender ? true : isRoot || props.name === "light" || props.name === "dark" || props.name === null ? true : !HasRenderedOnce.get(keys) ? true : canSkipForSchemeChange ? false : (keys === null || keys === void 0 ? void 0 : (_keys_current1 = keys.current) === null || _keys_current1 === void 0 ? void 0 : _keys_current1.size) ? true : (_props_needsUpdate = props.needsUpdate) === null || _props_needsUpdate === void 0 ? void 0 : _props_needsUpdate.call(props);
224
+ var needsUpdate = props.passThrough ? false : optimizeForFirstRender ? true : isRoot || props.forceClassName || props.name === "light" || props.name === "dark" || props.name === null ? true : !HasRenderedOnce.get(keys) ? true : canSkipForSchemeChange ? false : (keys === null || keys === void 0 ? void 0 : (_keys_current1 = keys.current) === null || _keys_current1 === void 0 ? void 0 : _keys_current1.size) ? true : (_props_needsUpdate = props.needsUpdate) === null || _props_needsUpdate === void 0 ? void 0 : _props_needsUpdate.call(props);
225
225
  var [rerender, nextRaw] = getNextState(local, props, propsKey, isRoot, id, parentId, needsUpdate, PendingUpdate.get(id));
226
226
  var next = nextRaw;
227
227
  if (props._themeUpdate && (nextRaw === null || nextRaw === void 0 ? void 0 : nextRaw.theme)) {
@@ -251,7 +251,7 @@ var getSnapshotImpl = function(r) {
251
251
  var getNextState = function(lastState, props, propsKey) {
252
252
  var isRoot = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false, id = arguments.length > 4 ? arguments[4] : void 0, parentId = arguments.length > 5 ? arguments[5] : void 0, needsUpdate = arguments.length > 6 ? arguments[6] : void 0, pendingUpdate = arguments.length > 7 ? arguments[7] : void 0;
253
253
  var parentState = states.get(parentId);
254
- if (props.passThrough) return [false, lastState || parentState || { name: "" }];
254
+ if (props.passThrough) return [false, parentState || lastState || { name: "" }];
255
255
  themes || (themes = (0, import_config.getConfig)().themes);
256
256
  var name = !propsKey && (!lastState || !lastState.isNew) ? null : getNewThemeName(parentState === null || parentState === void 0 ? void 0 : parentState.name, props, pendingUpdate === "force" ? true : !!needsUpdate);
257
257
  var authoredName = props.name;