@tamagui/web 1.124.4 → 1.124.6

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 (35) hide show
  1. package/dist/cjs/helpers/insertStyleRule.js.map +1 -1
  2. package/dist/cjs/helpers/insertStyleRule.native.js.map +1 -1
  3. package/dist/cjs/hooks/getThemeProxied.cjs +21 -15
  4. package/dist/cjs/hooks/getThemeProxied.js +20 -12
  5. package/dist/cjs/hooks/getThemeProxied.js.map +1 -1
  6. package/dist/cjs/hooks/getThemeProxied.native.js +25 -21
  7. package/dist/cjs/hooks/getThemeProxied.native.js.map +2 -2
  8. package/dist/cjs/hooks/useThemeState.cjs +76 -62
  9. package/dist/cjs/hooks/useThemeState.js +51 -39
  10. package/dist/cjs/hooks/useThemeState.js.map +2 -2
  11. package/dist/cjs/hooks/useThemeState.native.js +38 -30
  12. package/dist/cjs/hooks/useThemeState.native.js.map +2 -2
  13. package/dist/esm/helpers/insertStyleRule.js.map +1 -1
  14. package/dist/esm/helpers/insertStyleRule.mjs.map +1 -1
  15. package/dist/esm/helpers/insertStyleRule.native.js.map +1 -1
  16. package/dist/esm/hooks/getThemeProxied.js +20 -11
  17. package/dist/esm/hooks/getThemeProxied.js.map +1 -1
  18. package/dist/esm/hooks/getThemeProxied.mjs +20 -14
  19. package/dist/esm/hooks/getThemeProxied.mjs.map +1 -1
  20. package/dist/esm/hooks/getThemeProxied.native.js +26 -21
  21. package/dist/esm/hooks/getThemeProxied.native.js.map +2 -2
  22. package/dist/esm/hooks/useThemeState.js +51 -39
  23. package/dist/esm/hooks/useThemeState.js.map +2 -2
  24. package/dist/esm/hooks/useThemeState.mjs +76 -63
  25. package/dist/esm/hooks/useThemeState.mjs.map +1 -1
  26. package/dist/esm/hooks/useThemeState.native.js +37 -30
  27. package/dist/esm/hooks/useThemeState.native.js.map +2 -2
  28. package/package.json +11 -11
  29. package/src/hooks/getThemeProxied.ts +19 -13
  30. package/src/hooks/useThemeState.ts +99 -57
  31. package/types/helpers/insertStyleRule.d.ts.map +1 -1
  32. package/types/hooks/getThemeProxied.d.ts +2 -2
  33. package/types/hooks/getThemeProxied.d.ts.map +1 -1
  34. package/types/hooks/useThemeState.d.ts +1 -0
  35. package/types/hooks/useThemeState.d.ts.map +1 -1
@@ -2,34 +2,40 @@ import "@tamagui/constants";
2
2
  import { getConfig } from "../config.mjs";
3
3
  import { getVariable } from "../createVariable.mjs";
4
4
  import "./doesRootSchemeMatchSystem.mjs";
5
+ import { keysToId } from "./useThemeState.mjs";
5
6
  const cache = /* @__PURE__ */new Map();
6
- let curKeys, curProps;
7
+ let curKeys, curProps, curState;
7
8
  const emptyObject = {};
8
- function getThemeProxied(_props, state, _keys) {
9
- const theme = state?.theme;
10
- if (!theme) return emptyObject;
11
- if (curKeys = _keys, curProps = _props, cache.has(theme)) return cache.get(theme);
12
- const {
13
- name,
14
- scheme
15
- } = state,
16
- config = getConfig();
9
+ function getThemeProxied(_props, _state, _keys) {
10
+ if (!_state?.theme) return emptyObject;
11
+ if (curKeys = _keys, curProps = _props, curState = _state, cache.has(curState.theme)) return cache.get(curState.theme);
12
+ const config = getConfig();
17
13
  function track(key) {
18
- curKeys && (curKeys.current || (curKeys.current = /* @__PURE__ */new Set()), curKeys.current.add(key), process.env.NODE_ENV === "development" && curProps.debug && console.info(` \u{1F3A8} useTheme() tracking new key: ${key}`));
14
+ if (curKeys && (curKeys.current || (curKeys.current = /* @__PURE__ */new Set()), curKeys.current.add(key), process.env.NODE_ENV === "development" && curProps.debug)) {
15
+ const realId = keysToId.get(curKeys);
16
+ console.info(` \u{1F3A8} useTheme(${realId}) tracking new key: ${key}`, curKeys, globalThis.states?.get(realId + 1));
17
+ }
19
18
  }
20
- const proxied = Object.fromEntries(Object.entries(theme).flatMap(([key, value]) => {
19
+ const proxied = Object.fromEntries(Object.entries(_state.theme).flatMap(([key, value]) => {
21
20
  const proxied2 = {
22
21
  ...value,
23
22
  get val() {
24
23
  return globalThis.tamaguiAvoidTracking || track(key), value.val;
25
24
  },
26
25
  get(platform) {
27
- return getVariable(value);
26
+ if (!curState) return;
27
+ const outVal = getVariable(value),
28
+ {
29
+ name,
30
+ scheme,
31
+ inverses
32
+ } = curState;
33
+ return outVal;
28
34
  }
29
35
  };
30
36
  return [[key, proxied2], [`$${key}`, proxied2]];
31
37
  }));
32
- return cache.set(theme, proxied), proxied;
38
+ return cache.set(_state.theme, proxied), proxied;
33
39
  }
34
40
  export { getThemeProxied };
35
41
  //# sourceMappingURL=getThemeProxied.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["getConfig","getVariable","cache","Map","curKeys","curProps","emptyObject","getThemeProxied","_props","state","_keys","theme","has","get","name","scheme","config","track","key","current","Set","add","process","env","NODE_ENV","debug","console","info","proxied","Object","fromEntries","entries","flatMap","value","proxied2","val","globalThis","tamaguiAvoidTracking","platform","set"],"sources":["../../../src/hooks/getThemeProxied.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAsB;AAEtB,SAASA,SAAA,QAA6B;AAEtC,SAASC,WAAA,QAAmB;AAQ5B,OAA0C;AAsC1C,MAAMC,KAAA,GAAwC,mBAAIC,GAAA,CAAI;AAEtD,IAAIC,OAAA,EACAC,QAAA;AAEJ,MAAMC,WAAA,GAAc,CAAC;AAEd,SAASC,gBAEdC,MAAA,EACAC,KAAA,EACAC,KAAA,EACc;EACd,MAAMC,KAAA,GAAQF,KAAA,EAAOE,KAAA;EAErB,IAAI,CAACA,KAAA,EACH,OAAOL,WAAA;EAMT,IAHAF,OAAA,GAAUM,KAAA,EACVL,QAAA,GAAWG,MAAA,EAEPN,KAAA,CAAMU,GAAA,CAAID,KAAK,GAEjB,OADgBT,KAAA,CAAMW,GAAA,CAAIF,KAAK;EAOjC,MAAM;MAAEG,IAAA;MAAMC;IAAO,IAAIN,KAAA;IAEnBO,MAAA,GAAShB,SAAA,CAAU;EAEzB,SAASiB,MAAMC,GAAA,EAAa;IACrBd,OAAA,KACAA,OAAA,CAAQe,OAAA,KACXf,OAAA,CAAQe,OAAA,GAAU,mBAAIC,GAAA,CAAI,IAE5BhB,OAAA,CAAQe,OAAA,CAAQE,GAAA,CAAIH,GAAG,GACnBI,OAAA,CAAQC,GAAA,CAAIC,QAAA,KAAa,iBAAiBnB,QAAA,CAASoB,KAAA,IACrDC,OAAA,CAAQC,IAAA,CAAK,2CAAoCT,GAAG,EAAE;EAE1D;EAEA,MAAMU,OAAA,GAAUC,MAAA,CAAOC,WAAA,CACrBD,MAAA,CAAOE,OAAA,CAAQpB,KAAK,EAAEqB,OAAA,CAAQ,CAAC,CAACd,GAAA,EAAKe,KAAK,MAAM;IAC9C,MAAMC,QAAA,GAAU;MACd,GAAGD,KAAA;MACH,IAAIE,IAAA,EAAM;QAER,OAAKC,UAAA,CAAWC,oBAAA,IAEdpB,KAAA,CAAMC,GAAG,GAEJe,KAAA,CAAME,GAAA;MACf;MACAtB,IAAIyB,QAAA,EAAkB;QA2CpB,OA1CerC,WAAA,CAAYgC,KAAK;MA2ClC;IACF;IAEA,OAAO,CACL,CAACf,GAAA,EAAKgB,QAAO,GACb,CAAC,IAAIhB,GAAG,IAAIgB,QAAO,EACrB;EACF,CAAC,CACH;EAEA,OAAAhC,KAAA,CAAMqC,GAAA,CAAI5B,KAAA,EAAOiB,OAAO,GAEjBA,OAAA;AACT","ignoreList":[]}
1
+ {"version":3,"names":["getConfig","getVariable","keysToId","cache","Map","curKeys","curProps","curState","emptyObject","getThemeProxied","_props","_state","_keys","theme","has","get","config","track","key","current","Set","add","process","env","NODE_ENV","debug","realId","console","info","globalThis","states","proxied","Object","fromEntries","entries","flatMap","value","proxied2","val","tamaguiAvoidTracking","platform","outVal","name","scheme","inverses","set"],"sources":["../../../src/hooks/getThemeProxied.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAsB;AAEtB,SAASA,SAAA,QAA6B;AAEtC,SAASC,WAAA,QAAmB;AAQ5B,OAA0C;AAC1C,SAASC,QAAA,QAAiC;AAqC1C,MAAMC,KAAA,GAAwC,mBAAIC,GAAA,CAAI;AAEtD,IAAIC,OAAA,EACAC,QAAA,EACAC,QAAA;AAEJ,MAAMC,WAAA,GAAc,CAAC;AAEd,SAASC,gBAEdC,MAAA,EACAC,MAAA,EACAC,KAAA,EACc;EACd,IAAI,CAACD,MAAA,EAAQE,KAAA,EACX,OAAOL,WAAA;EAOT,IAJAH,OAAA,GAAUO,KAAA,EACVN,QAAA,GAAWI,MAAA,EACXH,QAAA,GAAWI,MAAA,EAEPR,KAAA,CAAMW,GAAA,CAAIP,QAAA,CAASM,KAAK,GAE1B,OADgBV,KAAA,CAAMY,GAAA,CAAIR,QAAA,CAASM,KAAK;EAO1C,MAAMG,MAAA,GAAShB,SAAA,CAAU;EAEzB,SAASiB,MAAMC,GAAA,EAAa;IAC1B,IAAKb,OAAA,KACAA,OAAA,CAAQc,OAAA,KACXd,OAAA,CAAQc,OAAA,GAAU,mBAAIC,GAAA,CAAI,IAE5Bf,OAAA,CAAQc,OAAA,CAAQE,GAAA,CAAIH,GAAG,GACnBI,OAAA,CAAQC,GAAA,CAAIC,QAAA,KAAa,iBAAiBlB,QAAA,CAASmB,KAAA,GAAO;MAC5D,MAAMC,MAAA,GAASxB,QAAA,CAASa,GAAA,CAAIV,OAAO;MACnCsB,OAAA,CAAQC,IAAA,CACN,uBAAgBF,MAAM,uBAAuBR,GAAG,IAChDb,OAAA,EACAwB,UAAA,CAAWC,MAAA,EAAWf,GAAA,CAAIW,MAAA,GAAS,CAAC,CACtC;IACF;EACF;EAEA,MAAMK,OAAA,GAAUC,MAAA,CAAOC,WAAA,CACrBD,MAAA,CAAOE,OAAA,CAAQvB,MAAA,CAAOE,KAAK,EAAEsB,OAAA,CAAQ,CAAC,CAACjB,GAAA,EAAKkB,KAAK,MAAM;IACrD,MAAMC,QAAA,GAAU;MACd,GAAGD,KAAA;MACH,IAAIE,IAAA,EAAM;QAER,OAAKT,UAAA,CAAWU,oBAAA,IAEdtB,KAAA,CAAMC,GAAG,GAEJkB,KAAA,CAAME,GAAA;MACf;MACAvB,IAAIyB,QAAA,EAAkB;QACpB,IAAI,CAACjC,QAAA,EAAU;QAEf,MAAMkC,MAAA,GAASxC,WAAA,CAAYmC,KAAK;UAC1B;YAAEM,IAAA;YAAMC,MAAA;YAAQC;UAAS,IAAIrC,QAAA;QA0CnC,OAAOkC,MAAA;MACT;IACF;IAEA,OAAO,CACL,CAACvB,GAAA,EAAKmB,QAAO,GACb,CAAC,IAAInB,GAAG,IAAImB,QAAO,EACrB;EACF,CAAC,CACH;EAEA,OAAAlC,KAAA,CAAM0C,GAAA,CAAIlC,MAAA,CAAOE,KAAA,EAAOkB,OAAO,GAExBA,OAAA;AACT","ignoreList":[]}
@@ -2,42 +2,47 @@ import { isIos } from "@tamagui/constants";
2
2
  import { getConfig, getSetting } from "../config";
3
3
  import { getVariable } from "../createVariable";
4
4
  import { doesRootSchemeMatchSystem } from "./doesRootSchemeMatchSystem";
5
- var cache = /* @__PURE__ */ new Map(), curKeys, curProps, emptyObject = {};
6
- function getThemeProxied(_props, state, _keys) {
7
- var theme = state?.theme;
8
- if (!theme)
5
+ import { keysToId } from "./useThemeState";
6
+ var cache = /* @__PURE__ */ new Map(), curKeys, curProps, curState, emptyObject = {};
7
+ function getThemeProxied(_props, _state, _keys) {
8
+ if (!_state?.theme)
9
9
  return emptyObject;
10
- if (curKeys = _keys, curProps = _props, cache.has(theme)) {
11
- var proxied = cache.get(theme);
10
+ if (curKeys = _keys, curProps = _props, curState = _state, cache.has(curState.theme)) {
11
+ var proxied = cache.get(curState.theme);
12
12
  return proxied;
13
13
  }
14
- var { name, scheme } = state, config = getConfig();
14
+ var config = getConfig();
15
15
  function track(key) {
16
- curKeys && (curKeys.current || (curKeys.current = /* @__PURE__ */ new Set()), curKeys.current.add(key), process.env.NODE_ENV === "development" && curProps.debug && console.info(` \u{1F3A8} useTheme() tracking new key: ${key}`));
16
+ if (curKeys && (curKeys.current || (curKeys.current = /* @__PURE__ */ new Set()), curKeys.current.add(key), process.env.NODE_ENV === "development" && curProps.debug)) {
17
+ var _globalThis_states, realId = keysToId.get(curKeys);
18
+ console.info(` \u{1F3A8} useTheme(${realId}) tracking new key: ${key}`, curKeys, (_globalThis_states = globalThis.states) === null || _globalThis_states === void 0 ? void 0 : _globalThis_states.get(realId + 1));
19
+ }
17
20
  }
18
- var proxied1 = Object.fromEntries(Object.entries(theme).flatMap(function(param) {
21
+ var proxied1 = Object.fromEntries(Object.entries(_state.theme).flatMap(function(param) {
19
22
  var [key, value] = param, proxied2 = {
20
23
  ...value,
21
24
  get val() {
22
25
  return globalThis.tamaguiAvoidTracking || track(key), value.val;
23
26
  },
24
27
  get(platform) {
25
- var outVal = getVariable(value), shouldOptimize = scheme && platform !== "web" && isIos && !curProps.deopt && getSetting("fastSchemeChange") && state.inverses === 0 && doesRootSchemeMatchSystem();
26
- if (shouldOptimize) {
27
- var _config_themes_name, _config_themes_oppositeName, oppositeScheme = scheme === "dark" ? "light" : "dark", oppositeName = name.replace(scheme, oppositeScheme), color = getVariable((_config_themes_name = config.themes[name]) === null || _config_themes_name === void 0 ? void 0 : _config_themes_name[key]), oppositeColor = getVariable((_config_themes_oppositeName = config.themes[oppositeName]) === null || _config_themes_oppositeName === void 0 ? void 0 : _config_themes_oppositeName[key]), dynamicVal = {
28
- dynamic: {
29
- [scheme]: color,
30
- [oppositeScheme]: oppositeColor
31
- }
32
- };
33
- return dynamicVal;
34
- }
35
- return process.env.NODE_ENV === "development" && curProps.debug && console.info(` \u{1F3A8} useTheme() tracking new key because of:
28
+ if (curState) {
29
+ var outVal = getVariable(value), { name, scheme, inverses } = curState, shouldOptimize = scheme && platform !== "web" && isIos && !curProps.deopt && getSetting("fastSchemeChange") && inverses === 0 && doesRootSchemeMatchSystem();
30
+ if (shouldOptimize) {
31
+ var _config_themes_name, _config_themes_oppositeName, oppositeScheme = scheme === "dark" ? "light" : "dark", oppositeName = name.replace(scheme, oppositeScheme), color = getVariable((_config_themes_name = config.themes[name]) === null || _config_themes_name === void 0 ? void 0 : _config_themes_name[key]), oppositeColor = getVariable((_config_themes_oppositeName = config.themes[oppositeName]) === null || _config_themes_oppositeName === void 0 ? void 0 : _config_themes_oppositeName[key]), dynamicVal = {
32
+ dynamic: {
33
+ [scheme]: color,
34
+ [oppositeScheme]: oppositeColor
35
+ }
36
+ };
37
+ return dynamicVal;
38
+ }
39
+ return process.env.NODE_ENV === "development" && curProps.debug && console.info(` \u{1F3A8} useTheme() tracking new key because of:
36
40
  not web: ${platform !== "web"}
37
41
  isIOS: ${isIos}
38
42
  deopt: ${curProps.deopt}
39
43
  fastScheme: ${getSetting("fastSchemeChange")}
40
44
  `), track(key), outVal;
45
+ }
41
46
  }
42
47
  };
43
48
  return [
@@ -51,7 +56,7 @@ function getThemeProxied(_props, state, _keys) {
51
56
  ]
52
57
  ];
53
58
  }));
54
- return cache.set(theme, proxied1), proxied1;
59
+ return cache.set(_state.theme, proxied1), proxied1;
55
60
  }
56
61
  export {
57
62
  getThemeProxied
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/hooks/Users/n8/tamagui/code/core/web/src/hooks/getThemeProxied.ts"],
4
- "mappings": "AAAA,SAASA,aAAa;AAEtB,SAASC,WAAWC,kBAAkB;AAEtC,SAASC,mBAAmB;AAQ5B,SAASC,iCAAiC;AAsC1C,IAAMC,QAAwC,oBAAIC,IAAAA,GAE9CC,SACAC,UAEEC,cAAc,CAAC;AAEd,SAASC,gBAEdC,QACAC,OACAC,OAA2C;AAE3C,MAAMC,QAAQF,OAAOE;AAErB,MAAI,CAACA;AACH,WAAOL;AAMT,MAHAF,UAAUM,OACVL,WAAWG,QAEPN,MAAMU,IAAID,KAAAA,GAAQ;AACpB,QAAME,UAAUX,MAAMY,IAAIH,KAAAA;AAC1B,WAAOE;EACT;AAKA,MAAM,EAAEE,MAAMC,OAAM,IAAKP,OAEnBQ,SAASnB,UAAAA;AAEf,WAASoB,MAAMC,KAAW;AACxB,IAAKf,YACAA,QAAQgB,YACXhB,QAAQgB,UAAU,oBAAIC,IAAAA,IAExBjB,QAAQgB,QAAQE,IAAIH,GAAAA,GAChBI,QAAQC,IAAIC,aAAa,iBAAiBpB,SAASqB,SACrDC,QAAQC,KAAK,2CAAoCT,GAAAA,EAAK;EAE1D;AAEA,MAAMN,WAAUgB,OAAOC,YACrBD,OAAOE,QAAQpB,KAAAA,EAAOqB,QAAQ,SAAA,OAAA;QAAC,CAACb,KAAKc,KAAAA,IAAM,OACnCpB,WAAU;MACd,GAAGoB;MACH,IAAIC,MAAM;AAER,eAAKC,WAAWC,wBAEdlB,MAAMC,GAAAA,GAEDc,MAAMC;MACf;MACApB,IAAIuB,UAAgB;AAClB,YAAMC,SAAStC,YAAYiC,KAAAA,GAKnBM,iBACJvB,UACAqB,aAAa,SACbxC,SACA,CAACQ,SAASmC,SACVzC,WAAW,kBAAA,KACXU,MAAMgC,aAAa,KACnBxC,0BAAAA;AAEF,YAAIsC,gBAAgB;cAGQtB,qBACQA,6BAH5ByB,iBAAiB1B,WAAW,SAAS,UAAU,QAC/C2B,eAAe5B,KAAK6B,QAAQ5B,QAAQ0B,cAAAA,GACpCG,QAAQ7C,aAAYiB,sBAAAA,OAAO6B,OAAO/B,IAAAA,OAAK,QAAnBE,wBAAAA,SAAAA,SAAAA,oBAAsBE,GAAAA,CAAI,GAC9C4B,gBAAgB/C,aAAYiB,8BAAAA,OAAO6B,OAAOH,YAAAA,OAAa,QAA3B1B,gCAAAA,SAAAA,SAAAA,4BAA8BE,GAAAA,CAAI,GAE9D6B,aAAa;YACjBC,SAAS;cACP,CAACjC,MAAAA,GAAS6B;cACV,CAACH,cAAAA,GAAiBK;YACpB;UACF;AAEA,iBAAOC;QACT;AAEA,eAAIzB,QAAQC,IAAIC,aAAa,iBAAiBpB,SAASqB,SACrDC,QAAQC,KAAK;2BACAS,aAAa,KAAA;yBACfxC,KAAAA;yBACAQ,SAASmC,KAAK;8BACTzC,WAAW,kBAAA,CAAA;eAC1B,GAGHmB,MAAMC,GAAAA,GAGDmB;MACT;IACF;AAEA,WAAO;MACL;QAACnB;QAAKN;;MACN;QAAC,IAAIM,GAAAA;QAAON;;;EAEhB,CAAA,CAAA;AAGFX,eAAMgD,IAAIvC,OAAOE,QAAAA,GAEVA;AACT;",
5
- "names": ["isIos", "getConfig", "getSetting", "getVariable", "doesRootSchemeMatchSystem", "cache", "Map", "curKeys", "curProps", "emptyObject", "getThemeProxied", "_props", "state", "_keys", "theme", "has", "proxied", "get", "name", "scheme", "config", "track", "key", "current", "Set", "add", "process", "env", "NODE_ENV", "debug", "console", "info", "Object", "fromEntries", "entries", "flatMap", "value", "val", "globalThis", "tamaguiAvoidTracking", "platform", "outVal", "shouldOptimize", "deopt", "inverses", "oppositeScheme", "oppositeName", "replace", "color", "themes", "oppositeColor", "dynamicVal", "dynamic", "set"]
4
+ "mappings": "AAAA,SAASA,aAAa;AAEtB,SAASC,WAAWC,kBAAkB;AAEtC,SAASC,mBAAmB;AAQ5B,SAASC,iCAAiC;AAC1C,SAASC,gBAAiC;AAqC1C,IAAMC,QAAwC,oBAAIC,IAAAA,GAE9CC,SACAC,UACAC,UAEEC,cAAc,CAAC;AAEd,SAASC,gBAEdC,QACAC,QACAC,OAA2C;AAE3C,MAAI,CAACD,QAAQE;AACX,WAAOL;AAOT,MAJAH,UAAUO,OACVN,WAAWI,QACXH,WAAWI,QAEPR,MAAMW,IAAIP,SAASM,KAAK,GAAG;AAC7B,QAAME,UAAUZ,MAAMa,IAAIT,SAASM,KAAK;AACxC,WAAOE;EACT;AAKA,MAAME,SAASnB,UAAAA;AAEf,WAASoB,MAAMC,KAAW;AACxB,QAAKd,YACAA,QAAQe,YACXf,QAAQe,UAAU,oBAAIC,IAAAA,IAExBhB,QAAQe,QAAQE,IAAIH,GAAAA,GAChBI,QAAQC,IAAIC,aAAa,iBAAiBnB,SAASoB,QAAO;UAK1DC,oBAJIC,SAAS1B,SAASc,IAAIX,OAAAA;AAC5BwB,cAAQC,KACN,uBAAgBF,MAAAA,uBAA6BT,GAAAA,IAC7Cd,UACAsB,qBAAAA,WAAW,YAAS,QAApBA,uBAAAA,SAAAA,SAAAA,mBAAsBX,IAAIY,SAAS,CAAA,CAAA;IAEvC;EACF;AAEA,MAAMb,WAAUgB,OAAOC,YACrBD,OAAOE,QAAQtB,OAAOE,KAAK,EAAEqB,QAAQ,SAAA,OAAA;QAAC,CAACf,KAAKgB,KAAAA,IAAM,OAC1CpB,WAAU;MACd,GAAGoB;MACH,IAAIC,MAAM;AAER,eAAKT,WAAWU,wBAEdnB,MAAMC,GAAAA,GAEDgB,MAAMC;MACf;MACApB,IAAIsB,UAAgB;AAClB,YAAK/B,UAEL;cAAMgC,SAASvC,YAAYmC,KAAAA,GACrB,EAAEK,MAAMC,QAAQC,SAAQ,IAAKnC,UAK3BoC,iBACJF,UACAH,aAAa,SACbzC,SACA,CAACS,SAASsC,SACV7C,WAAW,kBAAA,KACX2C,aAAa,KACbzC,0BAAAA;AAEF,cAAI0C,gBAAgB;gBAGQ1B,qBACQA,6BAH5B4B,iBAAiBJ,WAAW,SAAS,UAAU,QAC/CK,eAAeN,KAAKO,QAAQN,QAAQI,cAAAA,GACpCG,QAAQhD,aAAYiB,sBAAAA,OAAOgC,OAAOT,IAAAA,OAAK,QAAnBvB,wBAAAA,SAAAA,SAAAA,oBAAsBE,GAAAA,CAAI,GAC9C+B,gBAAgBlD,aAAYiB,8BAAAA,OAAOgC,OAAOH,YAAAA,OAAa,QAA3B7B,gCAAAA,SAAAA,SAAAA,4BAA8BE,GAAAA,CAAI,GAE9DgC,aAAa;cACjBC,SAAS;gBACP,CAACX,MAAAA,GAASO;gBACV,CAACH,cAAAA,GAAiBK;cACpB;YACF;AAEA,mBAAOC;UACT;AAEA,iBAAI5B,QAAQC,IAAIC,aAAa,iBAAiBnB,SAASoB,SACrDG,QAAQC,KAAK;2BACAQ,aAAa,KAAA;yBACfzC,KAAAA;yBACAS,SAASsC,KAAK;8BACT7C,WAAW,kBAAA,CAAA;eAC1B,GAGHmB,MAAMC,GAAAA,GAGDoB;;MACT;IACF;AAEA,WAAO;MACL;QAACpB;QAAKJ;;MACN;QAAC,IAAII,GAAAA;QAAOJ;;;EAEhB,CAAA,CAAA;AAGFZ,eAAMkD,IAAI1C,OAAOE,OAAOE,QAAAA,GAEjBA;AACT;",
5
+ "names": ["isIos", "getConfig", "getSetting", "getVariable", "doesRootSchemeMatchSystem", "keysToId", "cache", "Map", "curKeys", "curProps", "curState", "emptyObject", "getThemeProxied", "_props", "_state", "_keys", "theme", "has", "proxied", "get", "config", "track", "key", "current", "Set", "add", "process", "env", "NODE_ENV", "debug", "globalThis", "realId", "console", "info", "Object", "fromEntries", "entries", "flatMap", "value", "val", "tamaguiAvoidTracking", "platform", "outVal", "name", "scheme", "inverses", "shouldOptimize", "deopt", "oppositeScheme", "oppositeName", "replace", "color", "themes", "oppositeColor", "dynamicVal", "dynamic", "set"]
6
6
  }
@@ -7,11 +7,13 @@ import {
7
7
  useSyncExternalStore
8
8
  } from "react";
9
9
  import { getConfig } from "../config";
10
- const ThemeStateContext = createContext(""), allListeners = /* @__PURE__ */ new Map(), listenersByParent = {}, states = /* @__PURE__ */ new Map(), forceUpdateThemes = () => {
11
- allListeners.forEach((cb) => cb());
12
- }, getThemeState = (id) => states.get(id);
13
- let rootThemeState = null;
14
- const getRootThemeState = () => rootThemeState, HasRenderedOnce = /* @__PURE__ */ new WeakMap(), useThemeState = (props, isRoot = !1, keys) => {
10
+ const ThemeStateContext = createContext(""), keysToId = /* @__PURE__ */ new WeakMap(), allListeners = /* @__PURE__ */ new Map(), listenersByParent = {}, hasRenderedOnce = /* @__PURE__ */ new WeakMap(), pendingUpdate = /* @__PURE__ */ new Map(), states = /* @__PURE__ */ new Map();
11
+ let shouldForce = !1;
12
+ const forceUpdateThemes = () => {
13
+ cacheVersion++, shouldForce = !0, allListeners.forEach((cb) => cb());
14
+ }, getThemeState = (id) => states.get(id), cache = /* @__PURE__ */ new Map();
15
+ let cacheVersion = 0, themes = null, rootThemeState = null;
16
+ const getRootThemeState = () => rootThemeState, useThemeState = (props, isRoot = !1, keys) => {
15
17
  const { disable } = props, parentId = useContext(ThemeStateContext);
16
18
  if (disable)
17
19
  return states.get(parentId) || {
@@ -21,48 +23,56 @@ const getRootThemeState = () => rootThemeState, HasRenderedOnce = /* @__PURE__ *
21
23
  inverses: 0
22
24
  };
23
25
  const id = useId(), subscribe = useCallback(
24
- (cb) => (listenersByParent[parentId] ||= /* @__PURE__ */ new Set(), listenersByParent[parentId].add(id), allListeners.set(id, cb), () => {
26
+ (cb) => (listenersByParent[parentId] ||= /* @__PURE__ */ new Set(), listenersByParent[parentId].add(id), allListeners.set(id, () => {
27
+ pendingUpdate.set(id, shouldForce ? "force" : !0), cb();
28
+ }), () => {
25
29
  allListeners.delete(id), listenersByParent[parentId].delete(id);
26
30
  }),
27
- [id, parentId, keys]
28
- ), propsKey = getPropsKey(props), getSnapshot = () => getSnapshotFrom(props, propsKey, isRoot, id, parentId, keys);
31
+ [id, parentId]
32
+ ), propsKey = getPropsKey(props), getSnapshot = () => {
33
+ 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}`;
34
+ if (!needsUpdate && cache.has(cacheKey))
35
+ return cache.get(cacheKey);
36
+ const next = getSnapshotFrom(
37
+ last,
38
+ props,
39
+ propsKey,
40
+ isRoot,
41
+ id,
42
+ parentId,
43
+ needsUpdate,
44
+ pendingUpdate.get(id)
45
+ );
46
+ 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;
47
+ };
29
48
  process.env.NODE_ENV === "development" && globalThis.time && globalThis.time`theme-prep-uses`;
30
49
  const state = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
31
50
  return useIsomorphicLayoutEffect(() => {
32
- if (propsKey) {
33
- if (!HasRenderedOnce.has(keys)) {
34
- HasRenderedOnce.set(keys, !0);
35
- return;
36
- }
37
- process.env.NODE_ENV === "development" && props.debug && props.debug !== "profile" && console.warn(` \xB7 useTheme(${id}) scheduleUpdate`, propsKey, states.get(id)?.name), scheduleUpdate(id);
51
+ if (!hasRenderedOnce.get(keys)) {
52
+ hasRenderedOnce.set(keys, !0);
53
+ return;
38
54
  }
39
- }, [keys, propsKey]), process.env.NODE_ENV === "development" && props.debug && (console.groupCollapsed(
40
- ` \xB7 useTheme(${id}) =>`,
41
- state.name,
42
- id === state.id ? "\u{1F389}" : "\u23ED\uFE0F"
43
- ), console.info({
44
- state,
45
- parentId,
46
- props,
47
- propsKey,
48
- id,
49
- parentState: states.get(parentId)
50
- }), console.groupEnd()), state.id === id ? { ...state, isNew: !0 } : state;
51
- };
52
- let themes = null;
53
- const getSnapshotFrom = (props, propsKey, isRoot = !1, id, parentId, keys) => {
54
- const needsUpdate = keys?.current?.size || props.needsUpdate?.(), parentState = states.get(parentId);
55
+ propsKey && (process.env.NODE_ENV === "development" && props.debug && props.debug !== "profile" && console.warn(` \xB7 useTheme(${id}) scheduleUpdate`, propsKey, states.get(id)?.name), scheduleUpdate(id));
56
+ }, [keys, propsKey]), state.id === id ? { ...state, isNew: !0 } : state;
57
+ }, getSnapshotFrom = (lastState, props, propsKey, isRoot = !1, id, parentId, needsUpdate, pendingUpdate2) => {
58
+ const parentState = states.get(parentId);
55
59
  themes || (themes = getConfig().themes);
56
- const lastState = states.get(id), name = propsKey ? getNewThemeName(parentState?.name, props, !!needsUpdate) : null;
60
+ const name = !propsKey && pendingUpdate2 !== "force" ? null : getNewThemeName(
61
+ parentState?.name,
62
+ props,
63
+ pendingUpdate2 === "force" ? !0 : !!needsUpdate
64
+ ), isSameAsParent = !!(!name && propsKey);
57
65
  if (process.env.NODE_ENV === "development" && props.debug && props.debug !== "profile") {
58
66
  const message = ` \xB7 useTheme(${id}) snapshot ${name}, parent ${parentState?.id} needsUpdate ${needsUpdate}`;
59
- console.groupCollapsed(message), console.info({ lastState, parentState, props, propsKey, id, keys }), console.groupEnd();
67
+ console.groupCollapsed(message), console.trace({ name, lastState, parentState, props, propsKey, id, isSameAsParent }), console.groupEnd();
60
68
  }
61
- if (parentState && (!name && propsKey))
69
+ if (parentState && isSameAsParent)
62
70
  return parentState;
63
- if (!name)
64
- return lastState && !needsUpdate ? lastState : (states.set(id, parentState), parentState);
65
- if (lastState && lastState.name === name)
71
+ if (!name) {
72
+ const next = lastState ?? parentState;
73
+ return needsUpdate && pendingUpdate2 ? { ...parentState || lastState } : next;
74
+ }
75
+ if (pendingUpdate2 !== "force" && lastState && lastState.name === name)
66
76
  return lastState;
67
77
  const scheme = getScheme(name), parentInverses = parentState?.inverses ?? 0, isInverse = parentState && scheme !== parentState.scheme, inverses = parentInverses + (isInverse ? 1 : 0), nextState = {
68
78
  id,
@@ -74,7 +84,7 @@ const getSnapshotFrom = (props, propsKey, isRoot = !1, id, parentId, keys) => {
74
84
  inverses,
75
85
  isInverse
76
86
  };
77
- return process.env.NODE_ENV === "development" && props.debug && props.debug !== "profile" && (console.groupCollapsed(` \xB7 useTheme(${id}) \u23ED\uFE0F ${name}`), console.info("state", nextState), console.groupEnd()), states.set(id, nextState), isRoot && (rootThemeState = nextState), nextState;
87
+ return process.env.NODE_ENV === "development" && props.debug && props.debug !== "profile" && (console.groupCollapsed(` \xB7 useTheme(${id}) \u23ED\uFE0F2 ${name}`), console.info("state", nextState), console.groupEnd()), isRoot && (rootThemeState = nextState), pendingUpdate2 !== "force" && lastState && !needsUpdate ? (Object.assign(lastState, nextState), lastState) : nextState;
78
88
  };
79
89
  function scheduleUpdate(id) {
80
90
  const queue = [id], visited = /* @__PURE__ */ new Set();
@@ -95,7 +105,7 @@ const validSchemes = {
95
105
  function getScheme(name) {
96
106
  return validSchemes[name.split("_")[0]];
97
107
  }
98
- function getNewThemeName(parentName = "", { name, reset, componentName, inverse }, forceUpdate = !1) {
108
+ function getNewThemeName(parentName = "", { name, reset, componentName, inverse, debug }, forceUpdate = !1) {
99
109
  if (name && reset)
100
110
  throw new Error(
101
111
  process.env.NODE_ENV === "production" ? "\u274C004" : "Cannot reset and set a new name at the same time."
@@ -125,7 +135,8 @@ function getNewThemeName(parentName = "", { name, reset, componentName, inverse
125
135
  }
126
136
  if (found) break;
127
137
  }
128
- if (found && inverse) {
138
+ if (inverse) {
139
+ found ||= parentName;
129
140
  const scheme = found.split("_")[0];
130
141
  found = found.replace(new RegExp(`^${scheme}`), scheme === "light" ? "dark" : "light");
131
142
  }
@@ -146,6 +157,7 @@ export {
146
157
  getRootThemeState,
147
158
  getThemeState,
148
159
  hasThemeUpdatingProps,
160
+ keysToId,
149
161
  useThemeState
150
162
  };
151
163
  //# sourceMappingURL=useThemeState.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/hooks/useThemeState.ts"],
4
- "mappings": "AAAA,SAAS,iCAAiC;AAC1C;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AACP,SAAS,iBAAiB;AAiBnB,MAAM,oBAAoB,cAAkB,EAAE,GAE/C,eAAe,oBAAI,IAAkB,GACrC,oBAAyC,CAAC,GAG1C,SAA0C,oBAAI,IAAI,GAE3C,oBAAoB,MAAM;AACrC,eAAa,QAAQ,CAAC,OAAO,GAAG,CAAC;AACnC,GAEa,gBAAgB,CAAC,OAAW,OAAO,IAAI,EAAE;AAEtD,IAAI,iBAAoC;AACjC,MAAM,oBAAoB,MAAM,gBAEjC,kBAAkB,oBAAI,QAAsB,GAErC,gBAAgB,CAC3B,OACA,SAAS,IACT,SACe;AACf,QAAM,EAAE,QAAQ,IAAI,OACd,WAAW,WAAW,iBAAiB;AAE7C,MAAI;AACF,WACE,OAAO,IAAI,QAAQ,KAAK;AAAA,MACtB,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,OAAO,UAAU,EAAE,OAAO;AAAA,MAC1B,UAAU;AAAA,IACZ;AAIJ,QAAM,KAAK,MAAM,GACX,YAAY;AAAA,IAChB,CAAC,QACC,kBAAkB,QAAQ,MAAM,oBAAI,IAAI,GACxC,kBAAkB,QAAQ,EAAE,IAAI,EAAE,GAClC,aAAa,IAAI,IAAI,EAAE,GAChB,MAAM;AACX,mBAAa,OAAO,EAAE,GACtB,kBAAkB,QAAQ,EAAE,OAAO,EAAE;AAAA,IACvC;AAAA,IAEF,CAAC,IAAI,UAAU,IAAI;AAAA,EACrB,GAEM,WAAW,YAAY,KAAK,GAE5B,cAAc,MACX,gBAAgB,OAAO,UAAU,QAAQ,IAAI,UAAU,IAAI;AAGpE,EAAI,QAAQ,IAAI,aAAa,iBAAiB,WAAW,QACvD,WAAW;AAEb,QAAM,QAAQ,qBAAqB,WAAW,aAAa,WAAW;AAEtE,mCAA0B,MAAM;AAC9B,QAAK,UACL;AAAA,UAAI,CAAC,gBAAgB,IAAI,IAAI,GAAG;AAC9B,wBAAgB,IAAI,MAAM,EAAI;AAC9B;AAAA,MACF;AACA,MACE,QAAQ,IAAI,aAAa,iBACzB,MAAM,SACN,MAAM,UAAU,aAEhB,QAAQ,KAAK,kBAAe,EAAE,oBAAoB,UAAU,OAAO,IAAI,EAAE,GAAG,IAAI,GAElF,eAAe,EAAE;AAAA;AAAA,EACnB,GAAG,CAAC,MAAM,QAAQ,CAAC,GAEf,QAAQ,IAAI,aAAa,iBAAiB,MAAM,UAClD,QAAQ;AAAA,IACN,kBAAe,EAAE;AAAA,IACjB,MAAM;AAAA,IACN,OAAO,MAAM,KAAK,cAAO;AAAA,EAC3B,GACA,QAAQ,KAAK;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,aAAa,OAAO,IAAI,QAAQ;AAAA,EAClC,CAAC,GACD,QAAQ,SAAS,IAGZ,MAAM,OAAO,KAAK,EAAE,GAAG,OAAO,OAAO,GAAK,IAAI;AACvD;AAGA,IAAI,SAA6C;AAEjD,MAAM,kBAAkB,CACtB,OACA,UACA,SAAS,IACT,IACA,UACA,SACe;AACf,QAAM,cAAc,MAAM,SAAS,QAAQ,MAAM,cAAc,GACzD,cAAc,OAAO,IAAI,QAAQ;AAOvC,EAAK,WACH,SAAS,UAAU,EAAE;AAGvB,QAAM,YAAY,OAAO,IAAI,EAAE,GAEzB,OAAQ,WAAkB,gBAAgB,aAAa,MAAM,OAAO,CAAC,CAAC,WAAW,IAA9D;AAEzB,MACE,QAAQ,IAAI,aAAa,iBACzB,MAAM,SACN,MAAM,UAAU,WAChB;AACA,UAAM,UAAU,kBAAe,EAAE,cAAc,IAAI,YAAY,aAAa,EAAE,gBAAgB,WAAW;AAIvG,YAAQ,eAAe,OAAO,GAC9B,QAAQ,KAAK,EAAE,WAAW,aAAa,OAAO,UAAU,IAAI,KAAK,CAAC,GAClE,QAAQ,SAAS;AAAA,EAErB;AAGA,MAAI,gBADmB,CAAC,QAAQ;AAE9B,WAAO;AAGT,MAAI,CAAC;AACH,WAAI,aAAa,CAAC,cACT,aAET,OAAO,IAAI,IAAI,WAAW,GAEnB;AAGT,MACE,aACA,UAAU,SAAS;AAKnB,WAAO;AAGT,QAAM,SAAS,UAAU,IAAI,GACvB,iBAAiB,aAAa,YAAY,GAC1C,YAAY,eAAe,WAAW,YAAY,QAClD,WAAW,kBAAkB,YAAY,IAAI,IAE7C,YAAY;AAAA,IAChB;AAAA,IACA;AAAA,IACA,OAAO,OAAO,IAAI;AAAA,IAClB;AAAA,IACA;AAAA,IACA,YAAY,aAAa;AAAA,IACzB;AAAA,IACA;AAAA,EACF;AAEA,SACE,QAAQ,IAAI,aAAa,iBACzB,MAAM,SACN,MAAM,UAAU,cAEhB,QAAQ,eAAe,kBAAe,EAAE,kBAAQ,IAAI,EAAE,GACtD,QAAQ,KAAK,SAAS,SAAS,GAC/B,QAAQ,SAAS,IAGnB,OAAO,IAAI,IAAI,SAAS,GAGpB,WACF,iBAAiB,YAGZ;AACT;AAEA,SAAS,eAAe,IAAY;AAClC,QAAM,QAAQ,CAAC,EAAE,GACX,UAAU,oBAAI,IAAY;AAEhC,SAAO,MAAM,UAAQ;AACnB,UAAM,SAAS,MAAM,MAAM,GACrB,WAAW,kBAAkB,MAAM;AACzC,QAAI;AACF,iBAAW,WAAW;AACpB,QAAK,QAAQ,IAAI,OAAO,MACtB,QAAQ,IAAI,OAAO,GACnB,MAAM,KAAK,OAAO;AAAA,EAI1B;AAEA,UAAQ,QAAQ,CAAC,YAAY;AAE3B,IADW,aAAa,IAAI,OAAO,IAC9B;AAAA,EACP,CAAC;AACH;AAEA,MAAM,eAAe;AAAA,EACnB,OAAO;AAAA,EACP,MAAM;AACR;AAEA,SAAS,UAAU,MAAc;AAC/B,SAAO,aAAa,KAAK,MAAM,GAAG,EAAE,CAAC,CAAC;AACxC;AAEA,SAAS,gBACP,aAAa,IACb,EAAE,MAAM,OAAO,eAAe,QAAQ,GACtC,cAAc,IACC;AACf,MAAI,QAAQ;AACV,UAAM,IAAI;AAAA,MACR,QAAQ,IAAI,aAAa,eACrB,cACA;AAAA,IACN;AAGF,MAAI,OAAO;AACT,QAAI,CAAC,WAAY,OAAM,IAAI,MAAM,cAAI;AACrC,UAAM,gBAAgB,WAAW,YAAY,GAAG;AAChD,WAAO,iBAAiB,IAAI,aAAa,WAAW,MAAM,aAAa;AAAA,EACzE;AAEA,QAAM,EAAE,QAAAA,QAAO,IAAI,UAAU,GACvB,cAAc,WAAW,MAAM,GAAG,GAGlC,WAAW,YAAY,YAAY,SAAS,CAAC;AACnD,EAAI,YAAY,SAAS,CAAC,EAAE,YAAY,MAAM,SAAS,CAAC,KACtD,YAAY,IAAI;AAGlB,QAAM,WAAW;AAAA,IACf,QAAQ,gBAAgB,GAAG,IAAI,IAAI,aAAa,KAAK;AAAA,IACrD;AAAA,IACA;AAAA,EACF,EAAE,OAAO,OAAO;AAEhB,MAAI,QAAuB;AAE3B,QAAM,MAAM,YAAY;AAExB,WAAS,IAAI,GAAG,KAAK,KAAK,KAAK;AAC7B,UAAM,QAAQ,MAAM,IAAI,cAAc,YAAY,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG;AAExE,eAAW,WAAW,UAAU;AAC9B,YAAM,YAAY,OAAO,GAAG,IAAI,IAAI,OAAO,KAAK;AAEhD,UAAI,aAAaA,SAAQ;AACvB,gBAAQ;AACR;AAAA,MACF;AAAA,IACF;AAEA,QAAI,MAAO;AAAA,EACb;AAEA,MAAI,SAAS,SAAS;AACpB,UAAM,SAAS,MAAM,MAAM,GAAG,EAAE,CAAC;AACjC,YAAQ,MAAM,QAAQ,IAAI,OAAO,IAAI,MAAM,EAAE,GAAG,WAAW,UAAU,SAAS,OAAO;AAAA,EACvF;AAEA,SACE,CAAC,eACD,UAAU;AAAA;AAAA,EAGV,CAAC,aAAa,KAAK,IAEZ,OAGF;AACT;AAEA,MAAM,cAAc,CAAC;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MACE,GAAG,QAAQ,EAAE,GAAG,WAAW,EAAE,GAAG,SAAS,EAAE,GAAG,kBAAkB,EAAE,GAAG,iBAAiB,EAAE,IAE7E,wBAAwB,CAAC,UACpC,aAAa,SAAS,UAAU,SAAS,WAAW,SAAS,oBAAoB;",
5
- "names": ["themes"]
4
+ "mappings": "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",
5
+ "names": ["pendingUpdate", "themes"]
6
6
  }
@@ -2,16 +2,22 @@ import { useIsomorphicLayoutEffect } from "@tamagui/constants";
2
2
  import { createContext, useCallback, useContext, useId, useSyncExternalStore } from "react";
3
3
  import { getConfig } from "../config.mjs";
4
4
  const ThemeStateContext = createContext(""),
5
+ keysToId = /* @__PURE__ */new WeakMap(),
5
6
  allListeners = /* @__PURE__ */new Map(),
6
7
  listenersByParent = {},
7
- states = /* @__PURE__ */new Map(),
8
- forceUpdateThemes = () => {
9
- allListeners.forEach(cb => cb());
8
+ hasRenderedOnce = /* @__PURE__ */new WeakMap(),
9
+ pendingUpdate = /* @__PURE__ */new Map(),
10
+ states = /* @__PURE__ */new Map();
11
+ let shouldForce = !1;
12
+ const forceUpdateThemes = () => {
13
+ cacheVersion++, shouldForce = !0, allListeners.forEach(cb => cb());
10
14
  },
11
- getThemeState = id => states.get(id);
12
- let rootThemeState = null;
15
+ getThemeState = id => states.get(id),
16
+ cache = /* @__PURE__ */new Map();
17
+ let cacheVersion = 0,
18
+ themes = null,
19
+ rootThemeState = null;
13
20
  const getRootThemeState = () => rootThemeState,
14
- HasRenderedOnce = /* @__PURE__ */new WeakMap(),
15
21
  useThemeState = (props, isRoot = !1, keys) => {
16
22
  const {
17
23
  disable
@@ -24,70 +30,75 @@ const getRootThemeState = () => rootThemeState,
24
30
  inverses: 0
25
31
  };
26
32
  const id = useId(),
27
- subscribe = useCallback(cb => (listenersByParent[parentId] ||= /* @__PURE__ */new Set(), listenersByParent[parentId].add(id), allListeners.set(id, cb), () => {
33
+ subscribe = useCallback(cb => (listenersByParent[parentId] ||= /* @__PURE__ */new Set(), listenersByParent[parentId].add(id), allListeners.set(id, () => {
34
+ pendingUpdate.set(id, shouldForce ? "force" : !0), cb();
35
+ }), () => {
28
36
  allListeners.delete(id), listenersByParent[parentId].delete(id);
29
- }), [id, parentId, keys]),
37
+ }), [id, parentId]),
30
38
  propsKey = getPropsKey(props),
31
- getSnapshot = () => getSnapshotFrom(props, propsKey, isRoot, id, parentId, keys);
39
+ getSnapshot = () => {
40
+ const last = states.get(id),
41
+ needsUpdate = props.name === "light" || props.name === "dark" ? !0 : hasRenderedOnce.get(keys) ? keys?.current?.size ? !0 : props.needsUpdate?.() : !0,
42
+ parentState = states.get(parentId),
43
+ cacheKey = `${cacheVersion}${id}${propsKey}${parentState?.name || ""}${isRoot}`;
44
+ if (!needsUpdate && cache.has(cacheKey)) return cache.get(cacheKey);
45
+ const next = getSnapshotFrom(last, props, propsKey, isRoot, id, parentId, needsUpdate, pendingUpdate.get(id));
46
+ 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;
47
+ };
32
48
  process.env.NODE_ENV === "development" && globalThis.time && globalThis.time`theme-prep-uses`;
33
49
  const state = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
34
50
  return useIsomorphicLayoutEffect(() => {
35
- if (propsKey) {
36
- if (!HasRenderedOnce.has(keys)) {
37
- HasRenderedOnce.set(keys, !0);
38
- return;
39
- }
40
- process.env.NODE_ENV === "development" && props.debug && props.debug !== "profile" && console.warn(` \xB7 useTheme(${id}) scheduleUpdate`, propsKey, states.get(id)?.name), scheduleUpdate(id);
51
+ if (!hasRenderedOnce.get(keys)) {
52
+ hasRenderedOnce.set(keys, !0);
53
+ return;
41
54
  }
42
- }, [keys, propsKey]), process.env.NODE_ENV === "development" && props.debug && (console.groupCollapsed(` \xB7 useTheme(${id}) =>`, state.name, id === state.id ? "\u{1F389}" : "\u23ED\uFE0F"), console.info({
43
- state,
44
- parentId,
45
- props,
46
- propsKey,
47
- id,
48
- parentState: states.get(parentId)
49
- }), console.groupEnd()), state.id === id ? {
55
+ propsKey && (process.env.NODE_ENV === "development" && props.debug && props.debug !== "profile" && console.warn(` \xB7 useTheme(${id}) scheduleUpdate`, propsKey, states.get(id)?.name), scheduleUpdate(id));
56
+ }, [keys, propsKey]), state.id === id ? {
50
57
  ...state,
51
58
  isNew: !0
52
59
  } : state;
60
+ },
61
+ getSnapshotFrom = (lastState, props, propsKey, isRoot = !1, id, parentId, needsUpdate, pendingUpdate2) => {
62
+ const parentState = states.get(parentId);
63
+ themes || (themes = getConfig().themes);
64
+ const name = !propsKey && pendingUpdate2 !== "force" ? null : getNewThemeName(parentState?.name, props, pendingUpdate2 === "force" ? !0 : !!needsUpdate),
65
+ isSameAsParent = !!(!name && propsKey);
66
+ if (process.env.NODE_ENV === "development" && props.debug && props.debug !== "profile") {
67
+ const message = ` \xB7 useTheme(${id}) snapshot ${name}, parent ${parentState?.id} needsUpdate ${needsUpdate}`;
68
+ console.groupCollapsed(message), console.trace({
69
+ name,
70
+ lastState,
71
+ parentState,
72
+ props,
73
+ propsKey,
74
+ id,
75
+ isSameAsParent
76
+ }), console.groupEnd();
77
+ }
78
+ if (parentState && isSameAsParent) return parentState;
79
+ if (!name) {
80
+ const next = lastState ?? parentState;
81
+ return needsUpdate && pendingUpdate2 ? {
82
+ ...(parentState || lastState)
83
+ } : next;
84
+ }
85
+ if (pendingUpdate2 !== "force" && lastState && lastState.name === name) return lastState;
86
+ const scheme = getScheme(name),
87
+ parentInverses = parentState?.inverses ?? 0,
88
+ isInverse = parentState && scheme !== parentState.scheme,
89
+ inverses = parentInverses + (isInverse ? 1 : 0),
90
+ nextState = {
91
+ id,
92
+ name,
93
+ theme: themes[name],
94
+ scheme,
95
+ parentId,
96
+ parentName: parentState?.name,
97
+ inverses,
98
+ isInverse
99
+ };
100
+ return process.env.NODE_ENV === "development" && props.debug && props.debug !== "profile" && (console.groupCollapsed(` \xB7 useTheme(${id}) \u23ED\uFE0F2 ${name}`), console.info("state", nextState), console.groupEnd()), isRoot && (rootThemeState = nextState), pendingUpdate2 !== "force" && lastState && !needsUpdate ? (Object.assign(lastState, nextState), lastState) : nextState;
53
101
  };
54
- let themes = null;
55
- const getSnapshotFrom = (props, propsKey, isRoot = !1, id, parentId, keys) => {
56
- const needsUpdate = keys?.current?.size || props.needsUpdate?.(),
57
- parentState = states.get(parentId);
58
- themes || (themes = getConfig().themes);
59
- const lastState = states.get(id),
60
- name = propsKey ? getNewThemeName(parentState?.name, props, !!needsUpdate) : null;
61
- if (process.env.NODE_ENV === "development" && props.debug && props.debug !== "profile") {
62
- const message = ` \xB7 useTheme(${id}) snapshot ${name}, parent ${parentState?.id} needsUpdate ${needsUpdate}`;
63
- console.groupCollapsed(message), console.info({
64
- lastState,
65
- parentState,
66
- props,
67
- propsKey,
68
- id,
69
- keys
70
- }), console.groupEnd();
71
- }
72
- if (parentState && !name && propsKey) return parentState;
73
- if (!name) return lastState && !needsUpdate ? lastState : (states.set(id, parentState), parentState);
74
- if (lastState && lastState.name === name) return lastState;
75
- const scheme = getScheme(name),
76
- parentInverses = parentState?.inverses ?? 0,
77
- isInverse = parentState && scheme !== parentState.scheme,
78
- inverses = parentInverses + (isInverse ? 1 : 0),
79
- nextState = {
80
- id,
81
- name,
82
- theme: themes[name],
83
- scheme,
84
- parentId,
85
- parentName: parentState?.name,
86
- inverses,
87
- isInverse
88
- };
89
- return process.env.NODE_ENV === "development" && props.debug && props.debug !== "profile" && (console.groupCollapsed(` \xB7 useTheme(${id}) \u23ED\uFE0F ${name}`), console.info("state", nextState), console.groupEnd()), states.set(id, nextState), isRoot && (rootThemeState = nextState), nextState;
90
- };
91
102
  function scheduleUpdate(id) {
92
103
  const queue = [id],
93
104
  visited = /* @__PURE__ */new Set();
@@ -111,7 +122,8 @@ function getNewThemeName(parentName = "", {
111
122
  name,
112
123
  reset,
113
124
  componentName,
114
- inverse
125
+ inverse,
126
+ debug
115
127
  }, forceUpdate = !1) {
116
128
  if (name && reset) throw new Error(process.env.NODE_ENV === "production" ? "\u274C004" : "Cannot reset and set a new name at the same time.");
117
129
  if (reset) {
@@ -139,7 +151,8 @@ function getNewThemeName(parentName = "", {
139
151
  }
140
152
  if (found) break;
141
153
  }
142
- if (found && inverse) {
154
+ if (inverse) {
155
+ found ||= parentName;
143
156
  const scheme = found.split("_")[0];
144
157
  found = found.replace(new RegExp(`^${scheme}`), scheme === "light" ? "dark" : "light");
145
158
  }
@@ -156,5 +169,5 @@ const getPropsKey = ({
156
169
  componentName
157
170
  }) => `${name || ""}${inverse || ""}${reset || ""}${forceClassName || ""}${componentName || ""}`,
158
171
  hasThemeUpdatingProps = props => "inverse" in props || "name" in props || "reset" in props || "forceClassName" in props;
159
- export { ThemeStateContext, forceUpdateThemes, getRootThemeState, getThemeState, hasThemeUpdatingProps, useThemeState };
172
+ export { ThemeStateContext, forceUpdateThemes, getRootThemeState, getThemeState, hasThemeUpdatingProps, keysToId, useThemeState };
160
173
  //# sourceMappingURL=useThemeState.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["useIsomorphicLayoutEffect","createContext","useCallback","useContext","useId","useSyncExternalStore","getConfig","ThemeStateContext","allListeners","Map","listenersByParent","states","forceUpdateThemes","forEach","cb","getThemeState","id","get","rootThemeState","getRootThemeState","HasRenderedOnce","WeakMap","useThemeState","props","isRoot","keys","disable","parentId","name","theme","themes","light","inverses","subscribe","Set","add","set","delete","propsKey","getPropsKey","getSnapshot","getSnapshotFrom","process","env","NODE_ENV","globalThis","time","state","has","debug","console","warn","scheduleUpdate","groupCollapsed","info","parentState","groupEnd","isNew","needsUpdate","current","size","lastState","getNewThemeName","message","scheme","getScheme","parentInverses","isInverse","nextState","parentName","queue","visited","length","parent","shift","children","childId","push","validSchemes","dark","split","reset","componentName","inverse","forceUpdate","Error","lastPartIndex","lastIndexOf","slice","themes2","parentParts","lastName","toLowerCase","pop","subNames","filter","Boolean","found","max","i","base","join","subName","potential","replace","RegExp","forceClassName","hasThemeUpdatingProps"],"sources":["../../../src/hooks/useThemeState.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useIsomorphicLayoutEffect","createContext","useCallback","useContext","useId","useSyncExternalStore","getConfig","ThemeStateContext","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","name","theme","light","inverses","subscribe","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","scheduleUpdate","isNew","lastState","pendingUpdate2","getNewThemeName","isSameAsParent","message","groupCollapsed","trace","groupEnd","scheme","getScheme","parentInverses","isInverse","nextState","parentName","info","Object","assign","queue","visited","length","parent","shift","children","childId","push","validSchemes","dark","split","reset","componentName","inverse","forceUpdate","Error","lastPartIndex","lastIndexOf","slice","themes2","parentParts","lastName","toLowerCase","pop","subNames","filter","Boolean","found","max","i","base","join","subName","potential","replace","RegExp","forceClassName","hasThemeUpdatingProps"],"sources":["../../../src/hooks/useThemeState.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}