@tamagui/web 1.124.10 → 1.124.12

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.
@@ -38,13 +38,25 @@ const ThemeStateContext = (0, import_react.createContext)(""),
38
38
  listenersByParent = {},
39
39
  hasRenderedOnce = /* @__PURE__ */new WeakMap(),
40
40
  pendingUpdate = /* @__PURE__ */new Map(),
41
- states = /* @__PURE__ */new Map();
41
+ states = /* @__PURE__ */new Map(),
42
+ localStates = /* @__PURE__ */new Map();
43
+ process.env.NODE_ENV === "development" && (globalThis.getTamaguiThemes = () => {
44
+ function buildTree(id) {
45
+ const node = states.get(id);
46
+ if (!node) return null;
47
+ const children = Array.from(states.values()).filter(child => child?.parentId === id).map(child => buildTree(child.id)).filter(Boolean);
48
+ return {
49
+ ...node,
50
+ children
51
+ };
52
+ }
53
+ rootThemeState && console.info(buildTree(rootThemeState.id));
54
+ });
42
55
  let shouldForce = !1;
43
56
  const forceUpdateThemes = () => {
44
57
  cacheVersion++, shouldForce = !0, allListeners.forEach(cb => cb());
45
58
  },
46
- getThemeState = id => states.get(id),
47
- cache = /* @__PURE__ */new Map();
59
+ getThemeState = id => states.get(id);
48
60
  let cacheVersion = 0,
49
61
  themes = null,
50
62
  rootThemeState = null;
@@ -54,6 +66,7 @@ const getRootThemeState = () => rootThemeState,
54
66
  disable
55
67
  } = props,
56
68
  parentId = (0, import_react.useContext)(ThemeStateContext);
69
+ if (!parentId && !isRoot) throw new Error("No parent?");
57
70
  if (disable) return states.get(parentId) || {
58
71
  id: "",
59
72
  name: "light",
@@ -64,17 +77,24 @@ const getRootThemeState = () => rootThemeState,
64
77
  subscribe = (0, import_react.useCallback)(cb => (listenersByParent[parentId] ||= /* @__PURE__ */new Set(), listenersByParent[parentId].add(id), allListeners.set(id, () => {
65
78
  pendingUpdate.set(id, shouldForce ? "force" : !0), cb();
66
79
  }), () => {
67
- allListeners.delete(id), listenersByParent[parentId].delete(id);
80
+ allListeners.delete(id), listenersByParent[parentId].delete(id), localStates.delete(id), states.delete(id), pendingUpdate.delete(id);
68
81
  }), [id, parentId]),
69
82
  propsKey = getPropsKey(props),
70
83
  getSnapshot = () => {
71
- const last = states.get(id),
72
- needsUpdate = props.name === "light" || props.name === "dark" ? !0 : hasRenderedOnce.get(keys) ? keys?.current?.size ? !0 : props.needsUpdate?.() : !0,
73
- parentState = states.get(parentId),
74
- cacheKey = `${cacheVersion}${id}${propsKey}${parentState?.name || ""}${isRoot}`;
75
- if (!needsUpdate && cache.has(cacheKey)) return cache.get(cacheKey);
76
- const next = getSnapshotFrom(last, props, propsKey, isRoot, id, parentId, needsUpdate, pendingUpdate.get(id));
77
- return last !== next && (pendingUpdate.delete(id), states.set(id, next), cache.set(id, next), process.env.NODE_ENV === "development" && props.debug && props.debug !== "profile" && console.warn(` \xB7 useTheme(${id}) UPDATE from`, last, "to", next)), next;
84
+ let local = localStates.get(id);
85
+ const needsUpdate = isRoot || props.name === "light" || props.name === "dark" || props.name === null ? !0 : hasRenderedOnce.get(keys) ? keys?.current?.size ? !0 : props.needsUpdate?.() : !0,
86
+ [rerender, next] = getNextState(local, props, propsKey, isRoot, id, parentId, needsUpdate, pendingUpdate.get(id));
87
+ return pendingUpdate.delete(id), (!local || rerender) && (local = {
88
+ ...next
89
+ }, localStates.set(id, local)), process.env.NODE_ENV === "development" && props.debug && props.debug !== "profile" && (console.groupCollapsed(` ${id} \u{1FA84} ${rerender}`, local.name, ">", next.name), console.info({
90
+ props,
91
+ propsKey,
92
+ isRoot,
93
+ parentId,
94
+ local,
95
+ next,
96
+ needsUpdate
97
+ }), console.groupEnd()), Object.assign(local, next), local.id = id, states.set(id, next), local;
78
98
  };
79
99
  process.env.NODE_ENV === "development" && globalThis.time && globalThis.time`theme-prep-uses`;
80
100
  const state = (0, import_react.useSyncExternalStore)(subscribe, getSnapshot, getSnapshot);
@@ -84,21 +104,19 @@ const getRootThemeState = () => rootThemeState,
84
104
  return;
85
105
  }
86
106
  propsKey && (process.env.NODE_ENV === "development" && props.debug && props.debug !== "profile" && console.warn(` \xB7 useTheme(${id}) scheduleUpdate`, propsKey, states.get(id)?.name), scheduleUpdate(id));
87
- }, [keys, propsKey]), state.id === id ? {
88
- ...state,
89
- isNew: !0
90
- } : state;
107
+ }, [keys, propsKey]), state;
91
108
  },
92
- getSnapshotFrom = (lastState, props, propsKey, isRoot = !1, id, parentId, needsUpdate, pendingUpdate2) => {
109
+ getNextState = (lastState, props, propsKey, isRoot = !1, id, parentId, needsUpdate, pendingUpdate2) => {
93
110
  const {
94
111
  debug
95
112
  } = props,
96
113
  parentState = states.get(parentId);
97
114
  themes || (themes = (0, import_config.getConfig)().themes);
98
- const name = !propsKey && pendingUpdate2 !== "force" ? null : getNewThemeName(parentState?.name, props, pendingUpdate2 === "force" ? !0 : !!needsUpdate),
99
- isSameAsParent = !!(!name && propsKey);
115
+ const name = !propsKey && (!lastState || !lastState?.isNew) ? null : getNewThemeName(parentState?.name, props, pendingUpdate2 === "force" ? !0 : !!needsUpdate),
116
+ isSameAsParent = parentState && (!name || name === parentState.name),
117
+ shouldRerender = !!(needsUpdate && (pendingUpdate2 || lastState?.name !== parentState?.name));
100
118
  if (process.env.NODE_ENV === "development" && debug && debug !== "profile") {
101
- const message = ` \xB7 useTheme(${id}) snapshot ${name}, parent ${parentState?.id} needsUpdate ${needsUpdate}`;
119
+ const message = ` \xB7 useTheme(${id}) => ${name} needsUpdate ${needsUpdate} shouldRerender ${shouldRerender}`;
102
120
  console.groupCollapsed(message), console.trace({
103
121
  name,
104
122
  lastState,
@@ -109,15 +127,17 @@ const getRootThemeState = () => rootThemeState,
109
127
  isSameAsParent
110
128
  }), console.groupEnd();
111
129
  }
112
- if (parentState && isSameAsParent) return parentState;
130
+ if (isSameAsParent) return [shouldRerender, {
131
+ ...parentState,
132
+ isNew: !1
133
+ }];
113
134
  if (!name) {
114
135
  const next = lastState ?? parentState;
115
136
  if (!next) throw new Error("No theme and no parent?");
116
- return needsUpdate && pendingUpdate2 ? {
137
+ return shouldRerender ? [!0, {
117
138
  ...(parentState || lastState)
118
- } : next;
139
+ }] : [!1, next];
119
140
  }
120
- if (pendingUpdate2 !== "force" && lastState && lastState.name === name) return lastState;
121
141
  const scheme = getScheme(name),
122
142
  parentInverses = parentState?.inverses ?? 0,
123
143
  isInverse = parentState && scheme !== parentState.scheme,
@@ -130,16 +150,17 @@ const getRootThemeState = () => rootThemeState,
130
150
  parentId,
131
151
  parentName: parentState?.name,
132
152
  inverses,
133
- isInverse
153
+ isInverse,
154
+ isNew: !0
134
155
  };
135
- isRoot && (rootThemeState = nextState);
156
+ if (isRoot && (rootThemeState = nextState), pendingUpdate2 !== "force" && lastState && lastState.name === name) return [!1, nextState];
136
157
  const shouldAvoidRerender = pendingUpdate2 !== "force" && lastState && !needsUpdate && nextState.name === lastState.name;
137
158
  return process.env.NODE_ENV === "development" && debug && debug !== "profile" && (console.groupCollapsed(` \xB7 useTheme(${id}) \u23ED\uFE0F ${name} shouldAvoidRerender: ${shouldAvoidRerender}`), console.info({
138
159
  lastState,
139
160
  needsUpdate,
140
161
  nextState,
141
162
  pendingUpdate: pendingUpdate2
142
- }), console.groupEnd()), shouldAvoidRerender ? (Object.assign(lastState, nextState), lastState) : nextState;
163
+ }), console.groupEnd()), shouldAvoidRerender ? [!1, nextState] : [!0, nextState];
143
164
  };
144
165
  function scheduleUpdate(id) {
145
166
  const queue = [id],
@@ -24,14 +24,25 @@ __export(useThemeState_exports, {
24
24
  });
25
25
  module.exports = __toCommonJS(useThemeState_exports);
26
26
  var import_constants = require("@tamagui/constants"), import_react = require("react"), import_config = require("../config");
27
- const ThemeStateContext = (0, import_react.createContext)(""), keysToId = /* @__PURE__ */ new WeakMap(), allListeners = /* @__PURE__ */ new Map(), listenersByParent = {}, hasRenderedOnce = /* @__PURE__ */ new WeakMap(), pendingUpdate = /* @__PURE__ */ new Map(), states = /* @__PURE__ */ new Map();
27
+ const ThemeStateContext = (0, import_react.createContext)(""), keysToId = /* @__PURE__ */ new WeakMap(), allListeners = /* @__PURE__ */ new Map(), listenersByParent = {}, hasRenderedOnce = /* @__PURE__ */ new WeakMap(), pendingUpdate = /* @__PURE__ */ new Map(), states = /* @__PURE__ */ new Map(), localStates = /* @__PURE__ */ new Map();
28
+ process.env.NODE_ENV === "development" && (globalThis.getTamaguiThemes = () => {
29
+ function buildTree(id) {
30
+ const node = states.get(id);
31
+ if (!node) return null;
32
+ const children = Array.from(states.values()).filter((child) => child?.parentId === id).map((child) => buildTree(child.id)).filter(Boolean);
33
+ return { ...node, children };
34
+ }
35
+ rootThemeState && console.info(buildTree(rootThemeState.id));
36
+ });
28
37
  let shouldForce = !1;
29
38
  const forceUpdateThemes = () => {
30
39
  cacheVersion++, shouldForce = !0, allListeners.forEach((cb) => cb());
31
- }, getThemeState = (id) => states.get(id), cache = /* @__PURE__ */ new Map();
40
+ }, getThemeState = (id) => states.get(id);
32
41
  let cacheVersion = 0, themes = null, rootThemeState = null;
33
42
  const getRootThemeState = () => rootThemeState, useThemeState = (props, isRoot = !1, keys) => {
34
43
  const { disable } = props, parentId = (0, import_react.useContext)(ThemeStateContext);
44
+ if (!parentId && !isRoot)
45
+ throw new Error("No parent?");
35
46
  if (disable)
36
47
  return states.get(parentId) || {
37
48
  id: "",
@@ -43,15 +54,13 @@ const getRootThemeState = () => rootThemeState, useThemeState = (props, isRoot =
43
54
  (cb) => (listenersByParent[parentId] ||= /* @__PURE__ */ new Set(), listenersByParent[parentId].add(id), allListeners.set(id, () => {
44
55
  pendingUpdate.set(id, shouldForce ? "force" : !0), cb();
45
56
  }), () => {
46
- allListeners.delete(id), listenersByParent[parentId].delete(id);
57
+ allListeners.delete(id), listenersByParent[parentId].delete(id), localStates.delete(id), states.delete(id), pendingUpdate.delete(id);
47
58
  }),
48
59
  [id, parentId]
49
60
  ), propsKey = getPropsKey(props), getSnapshot = () => {
50
- const last = states.get(id), needsUpdate = props.name === "light" || props.name === "dark" ? !0 : hasRenderedOnce.get(keys) ? keys?.current?.size ? !0 : props.needsUpdate?.() : !0, parentState = states.get(parentId), cacheKey = `${cacheVersion}${id}${propsKey}${parentState?.name || ""}${isRoot}`;
51
- if (!needsUpdate && cache.has(cacheKey))
52
- return cache.get(cacheKey);
53
- const next = getSnapshotFrom(
54
- last,
61
+ let local = localStates.get(id);
62
+ const needsUpdate = isRoot || props.name === "light" || props.name === "dark" || props.name === null ? !0 : hasRenderedOnce.get(keys) ? keys?.current?.size ? !0 : props.needsUpdate?.() : !0, [rerender, next] = getNextState(
63
+ local,
55
64
  props,
56
65
  propsKey,
57
66
  isRoot,
@@ -60,7 +69,7 @@ const getRootThemeState = () => rootThemeState, useThemeState = (props, isRoot =
60
69
  needsUpdate,
61
70
  pendingUpdate.get(id)
62
71
  );
63
- return last !== next && (pendingUpdate.delete(id), states.set(id, next), cache.set(id, next), process.env.NODE_ENV === "development" && props.debug && props.debug !== "profile" && console.warn(` \xB7 useTheme(${id}) UPDATE from`, last, "to", next)), next;
72
+ return pendingUpdate.delete(id), (!local || rerender) && (local = { ...next }, localStates.set(id, local)), process.env.NODE_ENV === "development" && props.debug && props.debug !== "profile" && (console.groupCollapsed(` ${id} \u{1FA84} ${rerender}`, local.name, ">", next.name), console.info({ props, propsKey, isRoot, parentId, local, next, needsUpdate }), console.groupEnd()), Object.assign(local, next), local.id = id, states.set(id, next), local;
64
73
  };
65
74
  process.env.NODE_ENV === "development" && globalThis.time && globalThis.time`theme-prep-uses`;
66
75
  const state = (0, import_react.useSyncExternalStore)(subscribe, getSnapshot, getSnapshot);
@@ -70,29 +79,27 @@ const getRootThemeState = () => rootThemeState, useThemeState = (props, isRoot =
70
79
  return;
71
80
  }
72
81
  propsKey && (process.env.NODE_ENV === "development" && props.debug && props.debug !== "profile" && console.warn(` \xB7 useTheme(${id}) scheduleUpdate`, propsKey, states.get(id)?.name), scheduleUpdate(id));
73
- }, [keys, propsKey]), state.id === id ? { ...state, isNew: !0 } : state;
74
- }, getSnapshotFrom = (lastState, props, propsKey, isRoot = !1, id, parentId, needsUpdate, pendingUpdate2) => {
82
+ }, [keys, propsKey]), state;
83
+ }, getNextState = (lastState, props, propsKey, isRoot = !1, id, parentId, needsUpdate, pendingUpdate2) => {
75
84
  const { debug } = props, parentState = states.get(parentId);
76
85
  themes || (themes = (0, import_config.getConfig)().themes);
77
- const name = !propsKey && pendingUpdate2 !== "force" ? null : getNewThemeName(
86
+ const name = !propsKey && (!lastState || !lastState?.isNew) ? null : getNewThemeName(
78
87
  parentState?.name,
79
88
  props,
80
89
  pendingUpdate2 === "force" ? !0 : !!needsUpdate
81
- ), isSameAsParent = !!(!name && propsKey);
90
+ ), isSameAsParent = parentState && (!name || name === parentState.name), shouldRerender = !!(needsUpdate && (pendingUpdate2 || lastState?.name !== parentState?.name));
82
91
  if (process.env.NODE_ENV === "development" && debug && debug !== "profile") {
83
- const message = ` \xB7 useTheme(${id}) snapshot ${name}, parent ${parentState?.id} needsUpdate ${needsUpdate}`;
92
+ const message = ` \xB7 useTheme(${id}) => ${name} needsUpdate ${needsUpdate} shouldRerender ${shouldRerender}`;
84
93
  console.groupCollapsed(message), console.trace({ name, lastState, parentState, props, propsKey, id, isSameAsParent }), console.groupEnd();
85
94
  }
86
- if (parentState && isSameAsParent)
87
- return parentState;
95
+ if (isSameAsParent)
96
+ return [shouldRerender, { ...parentState, isNew: !1 }];
88
97
  if (!name) {
89
98
  const next = lastState ?? parentState;
90
99
  if (!next)
91
100
  throw new Error("No theme and no parent?");
92
- return needsUpdate && pendingUpdate2 ? { ...parentState || lastState } : next;
101
+ return shouldRerender ? [!0, { ...parentState || lastState }] : [!1, next];
93
102
  }
94
- if (pendingUpdate2 !== "force" && lastState && lastState.name === name)
95
- return lastState;
96
103
  const scheme = getScheme(name), parentInverses = parentState?.inverses ?? 0, isInverse = parentState && scheme !== parentState.scheme, inverses = parentInverses + (isInverse ? 1 : 0), nextState = {
97
104
  id,
98
105
  name,
@@ -101,13 +108,15 @@ const getRootThemeState = () => rootThemeState, useThemeState = (props, isRoot =
101
108
  parentId,
102
109
  parentName: parentState?.name,
103
110
  inverses,
104
- isInverse
111
+ isInverse,
112
+ isNew: !0
105
113
  };
106
- isRoot && (rootThemeState = nextState);
114
+ if (isRoot && (rootThemeState = nextState), pendingUpdate2 !== "force" && lastState && lastState.name === name)
115
+ return [!1, nextState];
107
116
  const shouldAvoidRerender = pendingUpdate2 !== "force" && lastState && !needsUpdate && nextState.name === lastState.name;
108
117
  return process.env.NODE_ENV === "development" && debug && debug !== "profile" && (console.groupCollapsed(
109
118
  ` \xB7 useTheme(${id}) \u23ED\uFE0F ${name} shouldAvoidRerender: ${shouldAvoidRerender}`
110
- ), console.info({ lastState, needsUpdate, nextState, pendingUpdate: pendingUpdate2 }), console.groupEnd()), shouldAvoidRerender ? (Object.assign(lastState, nextState), lastState) : nextState;
119
+ ), console.info({ lastState, needsUpdate, nextState, pendingUpdate: pendingUpdate2 }), console.groupEnd()), shouldAvoidRerender ? [!1, nextState] : [!0, nextState];
111
120
  };
112
121
  function scheduleUpdate(id) {
113
122
  const queue = [id], visited = /* @__PURE__ */ new Set();
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/hooks/useThemeState.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["pendingUpdate", "themes"]
6
6
  }
@@ -24,16 +24,35 @@ __export(useThemeState_exports, {
24
24
  useThemeState: () => useThemeState
25
25
  });
26
26
  module.exports = __toCommonJS(useThemeState_exports);
27
- var import_constants = require("@tamagui/constants"), import_react = require("react"), import_config = require("../config"), ThemeStateContext = (0, import_react.createContext)(""), keysToId = /* @__PURE__ */ new WeakMap(), allListeners = /* @__PURE__ */ new Map(), listenersByParent = {}, hasRenderedOnce = /* @__PURE__ */ new WeakMap(), pendingUpdate = /* @__PURE__ */ new Map(), states = /* @__PURE__ */ new Map(), shouldForce = !1, forceUpdateThemes = function() {
27
+ var import_constants = require("@tamagui/constants"), import_react = require("react"), import_config = require("../config"), ThemeStateContext = (0, import_react.createContext)(""), keysToId = /* @__PURE__ */ new WeakMap(), allListeners = /* @__PURE__ */ new Map(), listenersByParent = {}, hasRenderedOnce = /* @__PURE__ */ new WeakMap(), pendingUpdate = /* @__PURE__ */ new Map(), states = /* @__PURE__ */ new Map(), localStates = /* @__PURE__ */ new Map();
28
+ process.env.NODE_ENV === "development" && (globalThis.getTamaguiThemes = function() {
29
+ function buildTree(id) {
30
+ var node = states.get(id);
31
+ if (!node) return null;
32
+ var children = Array.from(states.values()).filter(function(child) {
33
+ return (child == null ? void 0 : child.parentId) === id;
34
+ }).map(function(child) {
35
+ return buildTree(child.id);
36
+ }).filter(Boolean);
37
+ return {
38
+ ...node,
39
+ children
40
+ };
41
+ }
42
+ rootThemeState && console.info(buildTree(rootThemeState.id));
43
+ });
44
+ var shouldForce = !1, forceUpdateThemes = function() {
28
45
  cacheVersion++, shouldForce = !0, allListeners.forEach(function(cb) {
29
46
  return cb();
30
47
  });
31
48
  }, getThemeState = function(id) {
32
49
  return states.get(id);
33
- }, cache = /* @__PURE__ */ new Map(), cacheVersion = 0, themes = null, rootThemeState = null, getRootThemeState = function() {
50
+ }, cacheVersion = 0, themes = null, rootThemeState = null, getRootThemeState = function() {
34
51
  return rootThemeState;
35
52
  }, useThemeState = function(props) {
36
53
  var isRoot = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1, keys = arguments.length > 2 ? arguments[2] : void 0, { disable } = props, parentId = (0, import_react.useContext)(ThemeStateContext);
54
+ if (!parentId && !isRoot)
55
+ throw new Error("No parent?");
37
56
  if (disable)
38
57
  return states.get(parentId) || {
39
58
  id: "",
@@ -46,17 +65,24 @@ var import_constants = require("@tamagui/constants"), import_react = require("re
46
65
  return (_listenersByParent = listenersByParent)[_parentId = parentId] || (_listenersByParent[_parentId] = /* @__PURE__ */ new Set()), listenersByParent[parentId].add(id), allListeners.set(id, function() {
47
66
  pendingUpdate.set(id, shouldForce ? "force" : !0), cb();
48
67
  }), function() {
49
- allListeners.delete(id), listenersByParent[parentId].delete(id);
68
+ allListeners.delete(id), listenersByParent[parentId].delete(id), localStates.delete(id), states.delete(id), pendingUpdate.delete(id);
50
69
  };
51
70
  }, [
52
71
  id,
53
72
  parentId
54
73
  ]), propsKey = getPropsKey(props), getSnapshot = function() {
55
- var _keys_current, _props_needsUpdate, last = states.get(id), needsUpdate = props.name === "light" || props.name === "dark" ? !0 : hasRenderedOnce.get(keys) ? !(keys == null || (_keys_current = keys.current) === null || _keys_current === void 0) && _keys_current.size ? !0 : (_props_needsUpdate = props.needsUpdate) === null || _props_needsUpdate === void 0 ? void 0 : _props_needsUpdate.call(props) : !0, parentState = states.get(parentId), cacheKey = `${cacheVersion}${id}${propsKey}${(parentState == null ? void 0 : parentState.name) || ""}${isRoot}`;
56
- if (!needsUpdate && cache.has(cacheKey))
57
- return cache.get(cacheKey);
58
- var next = getSnapshotFrom(last, props, propsKey, isRoot, id, parentId, needsUpdate, pendingUpdate.get(id));
59
- return last !== next && (pendingUpdate.delete(id), states.set(id, next), cache.set(id, next), process.env.NODE_ENV === "development" && props.debug && props.debug !== "profile" && console.warn(` \xB7 useTheme(${id}) UPDATE from`, last, "to", next)), next;
74
+ var _keys_current, _props_needsUpdate, local = localStates.get(id), needsUpdate = isRoot || props.name === "light" || props.name === "dark" || props.name === null ? !0 : hasRenderedOnce.get(keys) ? !(keys == null || (_keys_current = keys.current) === null || _keys_current === void 0) && _keys_current.size ? !0 : (_props_needsUpdate = props.needsUpdate) === null || _props_needsUpdate === void 0 ? void 0 : _props_needsUpdate.call(props) : !0, [rerender, next] = getNextState(local, props, propsKey, isRoot, id, parentId, needsUpdate, pendingUpdate.get(id));
75
+ return pendingUpdate.delete(id), (!local || rerender) && (local = {
76
+ ...next
77
+ }, localStates.set(id, local)), process.env.NODE_ENV === "development" && props.debug && props.debug !== "profile" && (console.groupCollapsed(` ${id} \u{1FA84} ${rerender}`, local.name, ">", next.name), console.info({
78
+ props,
79
+ propsKey,
80
+ isRoot,
81
+ parentId,
82
+ local,
83
+ next,
84
+ needsUpdate
85
+ }), console.groupEnd()), Object.assign(local, next), local.id = id, states.set(id, next), local;
60
86
  };
61
87
  process.env.NODE_ENV === "development" && globalThis.time && globalThis.time`theme-prep-uses`;
62
88
  var state = (0, import_react.useSyncExternalStore)(subscribe, getSnapshot, getSnapshot);
@@ -75,34 +101,41 @@ var import_constants = require("@tamagui/constants"), import_react = require("re
75
101
  }, [
76
102
  keys,
77
103
  propsKey
78
- ]), state.id === id ? {
79
- ...state,
80
- isNew: !0
81
- } : state;
82
- }, getSnapshotFrom = function(lastState, props, propsKey) {
104
+ ]), state;
105
+ }, getNextState = function(lastState, props, propsKey) {
83
106
  var isRoot = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : !1, id = arguments.length > 4 ? arguments[4] : void 0, parentId = arguments.length > 5 ? arguments[5] : void 0, needsUpdate = arguments.length > 6 ? arguments[6] : void 0, pendingUpdate2 = arguments.length > 7 ? arguments[7] : void 0, { debug } = props, parentState = states.get(parentId);
84
107
  themes || (themes = (0, import_config.getConfig)().themes);
85
- var name = !propsKey && pendingUpdate2 !== "force" ? null : getNewThemeName(parentState == null ? void 0 : parentState.name, props, pendingUpdate2 === "force" ? !0 : !!needsUpdate), isSameAsParent = !!(!name && propsKey);
108
+ var name = !propsKey && (!lastState || !(lastState != null && lastState.isNew)) ? null : getNewThemeName(parentState == null ? void 0 : parentState.name, props, pendingUpdate2 === "force" ? !0 : !!needsUpdate), isSameAsParent = parentState && (!name || name === parentState.name), shouldRerender = !!(needsUpdate && (pendingUpdate2 || (lastState == null ? void 0 : lastState.name) !== (parentState == null ? void 0 : parentState.name)));
86
109
  if (process.env.NODE_ENV === "development" && debug && debug !== "profile") {
87
- var message = ` \xB7 useTheme(${id}) snapshot ${name}, parent ${parentState == null ? void 0 : parentState.id} needsUpdate ${needsUpdate}`;
110
+ var message = ` \xB7 useTheme(${id}) => ${name} needsUpdate ${needsUpdate} shouldRerender ${shouldRerender}`;
88
111
  console.info(message);
89
112
  }
90
- if (parentState && isSameAsParent)
91
- return parentState;
113
+ if (isSameAsParent)
114
+ return [
115
+ shouldRerender,
116
+ {
117
+ ...parentState,
118
+ isNew: !1
119
+ }
120
+ ];
92
121
  if (!name) {
93
122
  var next = lastState ?? parentState;
94
123
  if (!next)
95
124
  throw new Error("No theme and no parent?");
96
- if (needsUpdate && pendingUpdate2) {
125
+ if (shouldRerender) {
97
126
  var updated = {
98
127
  ...parentState || lastState
99
128
  };
100
- return updated;
129
+ return [
130
+ !0,
131
+ updated
132
+ ];
101
133
  }
102
- return next;
134
+ return [
135
+ !1,
136
+ next
137
+ ];
103
138
  }
104
- if (pendingUpdate2 !== "force" && lastState && lastState.name === name)
105
- return lastState;
106
139
  var scheme = getScheme(name), _parentState_inverses, parentInverses = (_parentState_inverses = parentState == null ? void 0 : parentState.inverses) !== null && _parentState_inverses !== void 0 ? _parentState_inverses : 0, isInverse = parentState && scheme !== parentState.scheme, inverses = parentInverses + (isInverse ? 1 : 0), nextState = {
107
140
  id,
108
141
  name,
@@ -111,16 +144,27 @@ var import_constants = require("@tamagui/constants"), import_react = require("re
111
144
  parentId,
112
145
  parentName: parentState == null ? void 0 : parentState.name,
113
146
  inverses,
114
- isInverse
147
+ isInverse,
148
+ isNew: !0
115
149
  };
116
- isRoot && (rootThemeState = nextState);
150
+ if (isRoot && (rootThemeState = nextState), pendingUpdate2 !== "force" && lastState && lastState.name === name)
151
+ return [
152
+ !1,
153
+ nextState
154
+ ];
117
155
  var shouldAvoidRerender = pendingUpdate2 !== "force" && lastState && !needsUpdate && nextState.name === lastState.name;
118
156
  return process.env.NODE_ENV === "development" && debug && debug !== "profile" && (console.groupCollapsed(` \xB7 useTheme(${id}) \u23ED\uFE0F ${name} shouldAvoidRerender: ${shouldAvoidRerender}`), console.info({
119
157
  lastState,
120
158
  needsUpdate,
121
159
  nextState,
122
160
  pendingUpdate: pendingUpdate2
123
- }), console.groupEnd()), shouldAvoidRerender ? (Object.assign(lastState, nextState), lastState) : nextState;
161
+ }), console.groupEnd()), shouldAvoidRerender ? [
162
+ !1,
163
+ nextState
164
+ ] : [
165
+ !0,
166
+ nextState
167
+ ];
124
168
  };
125
169
  function scheduleUpdate(id) {
126
170
  for (var queue = [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/hooks/Users/n8/tamagui/code/core/web/src/hooks/useThemeState.ts"],
4
- "mappings": "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",
5
- "names": ["ThemeStateContext", "createContext", "keysToId", "WeakMap", "allListeners", "Map", "listenersByParent", "hasRenderedOnce", "pendingUpdate", "states", "shouldForce", "forceUpdateThemes", "cacheVersion", "forEach", "cb", "getThemeState", "id", "get", "cache", "themes", "rootThemeState", "getRootThemeState", "useThemeState", "props", "isRoot", "keys", "disable", "parentId", "useContext", "name", "theme", "getConfig", "light", "inverses", "useId", "subscribe", "useCallback", "Set", "add", "set", "delete", "propsKey", "getPropsKey", "getSnapshot", "last", "needsUpdate", "current", "size", "parentState", "cacheKey", "has", "next", "getSnapshotFrom", "process", "env", "NODE_ENV", "debug", "console", "warn", "globalThis", "time", "state", "useSyncExternalStore", "useIsomorphicLayoutEffect", "scheduleUpdate", "isNew", "lastState", "getNewThemeName", "isSameAsParent", "Boolean", "message", "info", "Error", "updated", "scheme", "getScheme", "parentInverses", "isInverse", "nextState", "parentName", "shouldAvoidRerender", "groupCollapsed", "groupEnd", "Object", "assign", "queue", "visited", "length", "parent", "shift", "children", "childId", "push", "validSchemes", "dark", "split", "reset", "componentName", "inverse", "forceUpdate", "lastPartIndex", "lastIndexOf", "slice", "parentParts", "lastName", "toLowerCase", "pop", "subNames", "undefined", "filter", "found", "max", "i", "base", "join", "subName", "potential", "replace", "RegExp", "forceClassName", "hasThemeUpdatingProps"]
4
+ "mappings": ";;;;;;;;;;;;;;;AAAA;;;;;;;;;;;uBAA0C,+BAC1C,eAOO,kBACP,gBAA0B,sBAiBbA,wBAAoBC,4BAAkB,EAAA,GAEtCC,WAAW,oBAAIC,QAAAA,GAEtBC,eAAe,oBAAIC,IAAAA,GACnBC,oBAAyC,CAAC,GAC1CC,kBAAkB,oBAAIJ,QAAAA,GACtBK,gBAAgB,oBAAIH,IAAAA,GAGpBI,SAA0C,oBAAIJ,IAAAA,GAC9CK,cAA+C,oBAAIL,IAAAA;AAErDM,QAAQC,IAAIC,aAAa,kBAC3BC,WAAWC,mBAAmB,WAAA;AAC5B,WAASC,UAAUC,IAAM;AACvB,QAAMC,OAAOT,OAAOU,IAAIF,EAAAA;AACxB,QAAI,CAACC,KAAM,QAAO;AAClB,QAAME,WAAWC,MAAMC,KAAKb,OAAOc,OAAM,CAAA,EACtCC,OAAO,SAACC,OAAAA;cAAUA,SAAAA,OAAAA,SAAAA,MAAOC,cAAaT;OACtCU,IAAI,SAACF,OAAAA;aAAUT,UAAUS,MAAOR,EAAE;OAClCO,OAAOI,OAAAA;AACV,WAAO;MAAE,GAAGV;MAAME;IAAS;EAC7B;AAEA,EAAIS,kBACFC,QAAQC,KAAKf,UAAUa,eAAeZ,EAAE,CAAA;AAE5C;AAGF,IAAIe,cAAc,IACLC,oBAAoB,WAAA;AAC/BC,kBACAF,cAAc,IACd5B,aAAa+B,QAAQ,SAACC,IAAAA;WAAOA,GAAAA;;AAC/B,GAEaC,gBAAgB,SAACpB,IAAAA;SAAWR,OAAOU,IAAIF,EAAAA;GAGhDiB,eAAe,GAEfI,SAA6C,MAE7CT,iBAAoC,MAC3BU,oBAAoB,WAAA;SAAMV;GAE1BW,gBAAgB,SAC3BC,OAAAA;MACAC,SAAAA,UAAAA,SAAAA,KAAAA,UAAAA,CAAAA,MAAAA,SAAAA,UAAAA,CAAAA,IAAS,IACTC,OAAAA,UAAAA,SAAAA,IAAAA,UAAAA,CAAAA,IAAAA,QAEM,EAAEC,QAAO,IAAKH,OACdf,eAAWmB,yBAAW7C,iBAAAA;AAE5B,MAAI,CAAC0B,YAAY,CAACgB;AAChB,UAAM,IAAII,MAAM,YAAY;AAG9B,MAAIF;AACF,WACEnC,OAAOU,IAAIO,QAAAA,KAAa;MACtBT,IAAI;MACJ8B,MAAM;MACNC,WAAOC,yBAAAA,EAAYX,OAAOY;MAC1BC,UAAU;IACZ;AAIJ,MAAMlC,SAAKmC,oBAAAA,GAELC,gBAAYC,0BAChB,SAAClB,IAAAA;QACC9B,oBAAkBoB;AAAlBpB,YAAAA,qBAAAA,mBAAkBoB,YAAAA,QAAAA,MAAlBpB,mBAAkBoB,SAAAA,IAAc,oBAAI6B,IAAAA,IACpCjD,kBAAkBoB,QAAAA,EAAU8B,IAAIvC,EAAAA,GAChCb,aAAaqD,IAAIxC,IAAI,WAAA;AACnBT,oBAAciD,IAAIxC,IAAIe,cAAc,UAAU,EAAA,GAC9CI,GAAAA;IACF,CAAA,GACO,WAAA;AACLhC,mBAAasD,OAAOzC,EAAAA,GACpBX,kBAAkBoB,QAAAA,EAAUgC,OAAOzC,EAAAA,GACnCP,YAAYgD,OAAOzC,EAAAA,GACnBR,OAAOiD,OAAOzC,EAAAA,GACdT,cAAckD,OAAOzC,EAAAA;IACvB;EACF,GACA;IAACA;IAAIS;GAAS,GAGViC,WAAWC,YAAYnB,KAAAA,GAEvBoB,cAAc,WAAA;QAQVlB,eAEEF,oBATNqB,QAAQpD,YAAYS,IAAIF,EAAAA,GAEtB8C,cACJrB,UAAUD,MAAMM,SAAS,WAAWN,MAAMM,SAAS,UAAUN,MAAMM,SAAS,OACxE,KACCxC,gBAAgBY,IAAIwB,IAAAA,IAEnBA,UAAAA,SAAAA,gBAAAA,KAAMqB,aAAO,QAAbrB,kBAAAA,WAAAA,cAAesB,OACb,MACAxB,qBAAAA,MAAMsB,iBAAW,QAAjBtB,uBAAAA,SAAAA,SAAAA,mBAAAA,KAAAA,KAAAA,IAHF,IAaF,CAACyB,UAAUC,IAAAA,IAAQC,aACvBN,OACArB,OACAkB,UACAjB,QACAzB,IACAS,UACAqC,aACAvD,cAAcW,IAAIF,EAAAA,CAAAA;AAGpBT,yBAAckD,OAAOzC,EAAAA,IAMjB,CAAC6C,SAASI,cACZJ,QAAQ;MAAE,GAAGK;IAAK,GAClBzD,YAAY+C,IAAIxC,IAAI6C,KAAAA,IAIpBnD,QAAQC,IAAIC,aAAa,iBACzB4B,MAAM4B,SACN5B,MAAM4B,UAAU,cAEhBvC,QAAQwC,eAAe,IAAIrD,EAAAA,cAASiD,QAAAA,IAAYJ,MAAMf,MAAM,KAAKoB,KAAKpB,IAAI,GAC1EjB,QAAQC,KAAK;MAAEU;MAAOkB;MAAUjB;MAAQhB;MAAUoC;MAAOK;MAAMJ;IAAY,CAAA,GAC3EjC,QAAQyC,SAAQ,IAGlBC,OAAOC,OAAOX,OAAOK,IAAAA,GACrBL,MAAM7C,KAAKA,IACXR,OAAOgD,IAAIxC,IAAIkD,IAAAA,GAERL;EACT;AAEA,EAAInD,QAAQC,IAAIC,aAAa,iBAAiBC,WAAW4D,QACvD5D,WAAW4D;AAEb,MAAMC,YAAQC,mCAAqBvB,WAAWQ,aAAaA,WAAAA;AAE3DgB,yDAA0B,WAAA;AACxB,QAAI,CAACtE,gBAAgBY,IAAIwB,IAAAA,GAAO;AAC9BpC,sBAAgBkD,IAAId,MAAM,EAAA;AAC1B;IACF;AACA,QAAKgB,UACL;UACEhD,QAAQC,IAAIC,aAAa,iBACzB4B,MAAM4B,SACN5B,MAAM4B,UAAU,WAChB;YAC4D5D;AAA5DqB,gBAAQgD,KAAK,kBAAe7D,EAAAA,oBAAsB0C,WAAUlD,cAAAA,OAAOU,IAAIF,EAAAA,OAAAA,QAAXR,gBAAAA,SAAAA,SAAAA,YAAgBsC,IAAI;MAClF;AACAgC,qBAAe9D,EAAAA;;EACjB,GAAG;IAAC0B;IAAMgB;GAAS,GAEZgB;AACT,GAEMP,eAAe,SACnBY,WACAvC,OACAkB,UAAAA;MACAjB,SAAAA,UAAAA,SAAAA,KAAAA,UAAAA,CAAAA,MAAAA,SAAAA,UAAAA,CAAAA,IAAS,IACTzB,KAAAA,UAAAA,SAAAA,IAAAA,UAAAA,CAAAA,IAAAA,QACAS,WAAAA,UAAAA,SAAAA,IAAAA,UAAAA,CAAAA,IAAAA,QACAqC,cAAAA,UAAAA,SAAAA,IAAAA,UAAAA,CAAAA,IAAAA,QACAvD,iBAAAA,UAAAA,SAAAA,IAAAA,UAAAA,CAAAA,IAAAA,QAEM,EAAE6D,MAAK,IAAK5B,OACZwC,cAAcxE,OAAOU,IAAIO,QAAAA;AAE/B,EAAKY,WACHA,aAASW,yBAAAA,EAAYX;AAGvB,MAAMS,OACJ,CAACY,aAAa,CAACqB,aAAa,EAACA,aAAAA,QAAAA,UAAWE,UACpC,OACAC,gBACEF,eAAAA,OAAAA,SAAAA,YAAalC,MACbN,OACAjC,mBAAkB,UAAU,KAAO,CAAC,CAACuD,WAAAA,GAGvCqB,iBAAiBH,gBAAgB,CAAClC,QAAQA,SAASkC,YAAYlC,OAC/DsC,iBAAiBzD,GACrBmC,gBAAgBvD,mBAAiBwE,aAAAA,OAAAA,SAAAA,UAAWjC,WAASkC,eAAAA,OAAAA,SAAAA,YAAalC;AAGpE,MAAIpC,QAAQC,IAAIC,aAAa,iBAAiBwD,SAASA,UAAU,WAAW;AAC1E,QAAMiB,UAAU,kBAAerE,EAAAA,QAAU8B,IAAAA,gBAAoBgB,WAAAA,mBAA8BsB,cAAAA;AAEzFvD,YAAQC,KAAKuD,OAAAA;EAMjB;AAEA,MAAIF;AACF,WAAO;MAACC;MAAgB;QAAE,GAAGJ;QAAaC,OAAO;MAAM;;AAGzD,MAAI,CAACnC,MAAM;AACT,QAAMoB,OAAOa,aAAaC;AAE1B,QAAI,CAACd;AACH,YAAM,IAAIrB,MAAM,yBAAyB;AAG3C,QAAIuC,gBAAgB;AAClB,UAAME,UAAU;QAAE,GAAIN,eAAeD;MAAY;AACjD,aAAO;QAAC;QAAMO;;IAChB;AAEA,WAAO;MAAC;MAAOpB;;EACjB;AAEA,MAAMqB,SAASC,UAAU1C,IAAAA,GACFkC,uBAAjBS,kBAAiBT,wBAAAA,eAAAA,OAAAA,SAAAA,YAAa9B,cAAQ,QAArB8B,0BAAAA,SAAAA,wBAAyB,GAC1CU,YAAYV,eAAeO,WAAWP,YAAYO,QAClDrC,WAAWuC,kBAAkBC,YAAY,IAAI,IAE7CC,YAAY;IAChB3E;IACA8B;IACAC,OAAOV,OAAOS,IAAAA;IACdyC;IACA9D;IACAmE,YAAYZ,eAAAA,OAAAA,SAAAA,YAAalC;IACzBI;IACAwC;IACAT,OAAO;EACT;AAMA,MAJIxC,WACFb,iBAAiB+D,YAGfpF,mBAAkB,WAAWwE,aAAaA,UAAUjC,SAASA;AAC/D,WAAO;MAAC;MAAO6C;;AAGjB,MAAME,sBACJtF,mBAAkB,WAClBwE,aACA,CAACjB,eACD6B,UAAU7C,SAASiC,UAAUjC;AAY/B,SAVIpC,QAAQC,IAAIC,aAAa,iBAAiBwD,SAASA,UAAU,cAC/DvC,QAAQwC,eACN,kBAAerD,EAAAA,kBAAU8B,IAAAA,yBAA6B+C,mBAAAA,EAAqB,GAE7EhE,QAAQC,KAAK;IAAEiD;IAAWjB;IAAa6B;IAAWpF,eAAAA;EAAc,CAAA,GAChEsB,QAAQyC,SAAQ,IAKduB,sBACK;IAAC;IAAOF;MAGV;IAAC;IAAMA;;AAChB;AAIA,SAASG,eAAeC,IAAU;AAIhC,WAHMC,QAAQ;IAACD;KACTE,UAAU,oBAAIC,IAAAA,GAEbF,MAAMG,UAAQ;AACnB,QAAMC,SAASJ,MAAMK,MAAK,GACpBC,WAAWC,kBAAkBH,MAAAA;AACnC,QAAIE,UAAU;UACP,4BAAA,IAAA,oBAAA,IAAA,iBAAA;;AAAL,iBAAK,YAAiBA,SAAAA,OAAAA,QAAAA,EAAAA,GAAjB,OAAA,EAAA,6BAAA,QAAA,UAAA,KAAA,GAAA,OAAA,4BAAA,IAA2B;AAA3B,cAAME,UAAN,MAAA;AACH,UAAKP,QAAQQ,IAAID,OAAAA,MACfP,QAAQS,IAAIF,OAAAA,GACZR,MAAMW,KAAKH,OAAAA;QAEf;;AALK,4BAAA,IAAA,iBAAA;;;WAAA,6BAAA,UAAA,UAAA,QAAA,UAAA,OAAA;;cAAA;kBAAA;;;IAMP;EACF;AAEAP,UAAQW,QAAQ,SAACJ,UAAAA;AACf,QAAMK,KAAKC,aAAaC,IAAIP,QAAAA;AAC5BK,UAAAA,QAAAA,GAAAA;EACF,CAAA;AACF;AAEA,IAAMG,eAAe;EACnBC,OAAO;EACPC,MAAM;AACR;AAEA,SAASC,UAAUC,MAAY;AAC7B,SAAOJ,aAAaI,KAAKC,MAAM,GAAA,EAAK,CAAA,CAAE;AACxC;AAEA,SAASC,kBAAAA;MACPC,aAAAA,UAAAA,SAAAA,KAAAA,UAAAA,CAAAA,MAAAA,SAAAA,UAAAA,CAAAA,IAAa,IACb,EAAEH,MAAMI,OAAOC,eAAeC,SAASC,MAAK,IAA0B,UAAA,SAAA,IAAA,UAAA,CAAA,IAAA,QACtEC,cAAAA,UAAAA,SAAAA,KAAAA,UAAAA,CAAAA,MAAAA,SAAAA,UAAAA,CAAAA,IAAc;AAEd,MAAIR,QAAQI;AACV,UAAM,IAAIK,MACRC,QAAQC,IAAIC,aAAa,eACrB,cACA,mDAAA;AAIR,MAAIR,OAAO;AACT,QAAI,CAACD,WAAY,OAAM,IAAIM,MAAM,cAAI;AACrC,QAAMI,gBAAgBV,WAAWW,YAAY,GAAA;AAC7C,WAAOD,iBAAiB,IAAIV,aAAaA,WAAWY,MAAMF,aAAAA;EAC5D;AAEA,MAAM,EAAEG,QAAAA,QAAM,QAAKC,yBAAAA,GACbC,cAAcf,WAAWF,MAAM,GAAA,GAG/BkB,WAAWD,YAAYA,YAAYnC,SAAS,CAAA;AAClD,EAAIoC,YAAYA,SAAS,CAAA,EAAGC,YAAW,MAAOD,SAAS,CAAA,KACrDD,YAAYG,IAAG;AAajB,WAVMC,WAAW;IACftB,QAAQK,gBAAgB,GAAGL,IAAAA,IAAQK,aAAAA,KAAkBkB;IACrDvB;IACAK;IACAmB,OAAOC,OAAAA,GAELC,QAAuB,MAErBC,MAAMT,YAAYnC,QAEf6C,IAAI,GAAGA,KAAKD,KAAKC,KAAK;AAC7B,QAAMC,QAAQD,MAAM,IAAIV,cAAcA,YAAYH,MAAM,GAAG,CAACa,CAAAA,GAAIE,KAAK,GAAA,GAEhE,4BAAA,IAAA,oBAAA,IAAA,iBAAA;;AAAL,eAAK,YAAiBR,SAAAA,OAAAA,QAAAA,EAAAA,GAAjB,OAAA,EAAA,6BAAA,QAAA,UAAA,KAAA,GAAA,OAAA,4BAAA,IAA2B;AAA3B,YAAMS,UAAN,MAAA,OACGC,YAAYH,OAAO,GAAGA,IAAAA,IAAQE,OAAAA,KAAYA;AAEhD,YAAIC,aAAahB,SAAQ;AACvBU,kBAAQM;AACR;QACF;MACF;;AAPK,0BAAA,IAAA,iBAAA;;;SAAA,6BAAA,UAAA,UAAA,QAAA,UAAA,OAAA;;YAAA;gBAAA;;;AASL,QAAIN,MAAO;EACb;AAEA,MAAIpB,SAAS;AACXoB,cAAAA,QAAUvB;AACV,QAAM8B,SAASP,MAAMzB,MAAM,GAAA,EAAK,CAAA;AAChCyB,YAAQA,MAAMQ,QAAQ,IAAIC,OAAO,IAAIF,MAAAA,EAAQ,GAAGA,WAAW,UAAU,SAAS,OAAA;EAChF;AAEA,SACE,CAACzB,eACDkB,UAAUvB;;EAGV,CAACP,aAAa8B,KAAAA,IAEP,OAGFA;AACT;AAEA,IAAMU,cAAc,SAAA,OAAA;MAAC,EACnBpC,MACAI,OACAE,SACA+B,gBACAhC,cAAa,IACF;SACX,GAAGL,QAAQ,EAAA,GAAKM,WAAW,EAAA,GAAKF,SAAS,EAAA,GAAKiC,kBAAkB,EAAA,GAAKhC,iBAAiB,EAAA;GAE3EiC,wBAAwB,SAACC,OAAAA;SACpC,aAAaA,SAAS,UAAUA,SAAS,WAAWA,SAAS,oBAAoBA;;",
5
+ "names": ["ThemeStateContext", "createContext", "keysToId", "WeakMap", "allListeners", "Map", "listenersByParent", "hasRenderedOnce", "pendingUpdate", "states", "localStates", "process", "env", "NODE_ENV", "globalThis", "getTamaguiThemes", "buildTree", "id", "node", "get", "children", "Array", "from", "values", "filter", "child", "parentId", "map", "Boolean", "rootThemeState", "console", "info", "shouldForce", "forceUpdateThemes", "cacheVersion", "forEach", "cb", "getThemeState", "themes", "getRootThemeState", "useThemeState", "props", "isRoot", "keys", "disable", "useContext", "Error", "name", "theme", "getConfig", "light", "inverses", "useId", "subscribe", "useCallback", "Set", "add", "set", "delete", "propsKey", "getPropsKey", "getSnapshot", "local", "needsUpdate", "current", "size", "rerender", "next", "getNextState", "debug", "groupCollapsed", "groupEnd", "Object", "assign", "time", "state", "useSyncExternalStore", "useIsomorphicLayoutEffect", "warn", "scheduleUpdate", "lastState", "parentState", "isNew", "getNewThemeName", "isSameAsParent", "shouldRerender", "message", "updated", "scheme", "getScheme", "parentInverses", "isInverse", "nextState", "parentName", "shouldAvoidRerender", "scheduleUpdate", "id", "queue", "visited", "Set", "length", "parent", "shift", "children", "listenersByParent", "childId", "has", "add", "push", "forEach", "cb", "allListeners", "get", "validSchemes", "light", "dark", "getScheme", "name", "split", "getNewThemeName", "parentName", "reset", "componentName", "inverse", "debug", "forceUpdate", "Error", "process", "env", "NODE_ENV", "lastPartIndex", "lastIndexOf", "slice", "themes", "getConfig", "parentParts", "lastName", "toLowerCase", "pop", "subNames", "undefined", "filter", "Boolean", "found", "max", "i", "base", "join", "subName", "potential", "scheme", "replace", "RegExp", "getPropsKey", "forceClassName", "hasThemeUpdatingProps", "props"]
6
6
  }
@@ -71,7 +71,12 @@ function getThemedChildren(themeState, children, props, isRoot = !1, stateRef) {
71
71
  forceClassName
72
72
  } = props,
73
73
  state = stateRef.current;
74
- if (!(state.hasEverThemed || themeState.isNew || isRoot || (0, import_useThemeState.hasThemeUpdatingProps)(props))) return children;
74
+ let shouldRenderChildrenWithTheme = state.hasEverThemed || themeState.isNew || isRoot || (0, import_useThemeState.hasThemeUpdatingProps)(props);
75
+ if (process.env.NODE_ENV === "development" && props.debug && (children = /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_ThemeDebug.ThemeDebug, {
76
+ themeState,
77
+ themeProps: props,
78
+ children
79
+ })), !shouldRenderChildrenWithTheme) return children;
75
80
  children = /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_useThemeState.ThemeStateContext.Provider, {
76
81
  value: themeState.id,
77
82
  children
@@ -92,23 +97,22 @@ function getThemedChildren(themeState, children, props, isRoot = !1, stateRef) {
92
97
  children: child.props.children
93
98
  })) : child);
94
99
  }
95
- if (process.env.NODE_ENV === "development" && props.debug && (console.warn(" getThemedChildren", {
100
+ if (process.env.NODE_ENV === "development" && props.debug && console.warn(" getThemedChildren", {
96
101
  requiresExtraWrapper,
97
102
  forceClassName,
98
103
  themeState,
99
104
  state,
100
105
  ...getThemeClassNameAndStyle(themeState, props, isRoot)
101
- }), children = /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_ThemeDebug.ThemeDebug, {
102
- themeState,
103
- themeProps: props,
104
- children
105
- })), forceClassName === !1) return children;
106
+ }), forceClassName === !1) return children;
106
107
  if (import_constants.isWeb) {
107
108
  const {
108
109
  className,
109
110
  style
110
111
  } = getThemeClassNameAndStyle(themeState, props, isRoot);
111
112
  if (children = /* @__PURE__ */(0, import_jsx_runtime.jsx)("span", {
113
+ ...(process.env.NODE_ENV === "development" && {
114
+ "data-theme-id": themeState.id
115
+ }),
112
116
  className: `${className} _dsp_contents is_Theme`,
113
117
  style,
114
118
  children
@@ -48,7 +48,8 @@ const empty = { className: "", style: {} }, Theme = (0, import_react.forwardRef)
48
48
  Theme.avoidForwardRef = !0;
49
49
  function getThemedChildren(themeState, children, props, isRoot = !1, stateRef) {
50
50
  const { shallow, forceClassName } = props, state = stateRef.current;
51
- if (!(state.hasEverThemed || themeState.isNew || isRoot || (0, import_useThemeState.hasThemeUpdatingProps)(props)))
51
+ let shouldRenderChildrenWithTheme = state.hasEverThemed || themeState.isNew || isRoot || (0, import_useThemeState.hasThemeUpdatingProps)(props);
52
+ if (process.env.NODE_ENV === "development" && props.debug && (children = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ThemeDebug.ThemeDebug, { themeState, themeProps: props, children })), !shouldRenderChildrenWithTheme)
52
53
  return children;
53
54
  children = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_useThemeState.ThemeStateContext.Provider, { value: themeState.id, children });
54
55
  const { isInverse, name } = themeState, requiresExtraWrapper = isInverse || forceClassName;
@@ -65,17 +66,27 @@ function getThemedChildren(themeState, children, props, isRoot = !1, stateRef) {
65
66
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Theme, { name: parentState.name, children: child.props.children })
66
67
  ) : child);
67
68
  }
68
- if (process.env.NODE_ENV === "development" && props.debug && (console.warn(" getThemedChildren", {
69
+ if (process.env.NODE_ENV === "development" && props.debug && console.warn(" getThemedChildren", {
69
70
  requiresExtraWrapper,
70
71
  forceClassName,
71
72
  themeState,
72
73
  state,
73
74
  ...getThemeClassNameAndStyle(themeState, props, isRoot)
74
- }), children = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ThemeDebug.ThemeDebug, { themeState, themeProps: props, children })), forceClassName === !1)
75
+ }), forceClassName === !1)
75
76
  return children;
76
77
  if (import_constants.isWeb) {
77
78
  const { className, style } = getThemeClassNameAndStyle(themeState, props, isRoot);
78
- if (children = /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: `${className} _dsp_contents is_Theme`, style, children }), state.hasEverThemed === "wrapped") {
79
+ if (children = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
80
+ "span",
81
+ {
82
+ ...process.env.NODE_ENV === "development" && {
83
+ "data-theme-id": themeState.id
84
+ },
85
+ className: `${className} _dsp_contents is_Theme`,
86
+ style,
87
+ children
88
+ }
89
+ ), state.hasEverThemed === "wrapped") {
79
90
  const className2 = requiresExtraWrapper ? `${isInverse ? name.startsWith("light") ? "t_light is_inversed" : name.startsWith("dark") ? "t_dark is_inversed" : "" : ""} _dsp_contents` : "_dsp_contents";
80
91
  children = /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: className2, children });
81
92
  }