@tamagui/next-theme 1.142.0 → 1.143.0

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 (39) hide show
  1. package/dist/cjs/NextThemeProvider.cjs +13 -20
  2. package/dist/cjs/NextThemeProvider.js +15 -27
  3. package/dist/cjs/NextThemeProvider.js.map +2 -2
  4. package/dist/cjs/ThemeSettingContext.cjs +6 -17
  5. package/dist/cjs/ThemeSettingContext.js +4 -12
  6. package/dist/cjs/ThemeSettingContext.js.map +2 -2
  7. package/dist/cjs/useRootTheme.cjs +8 -19
  8. package/dist/cjs/useRootTheme.js +6 -14
  9. package/dist/cjs/useRootTheme.js.map +2 -2
  10. package/dist/cjs/useTheme.cjs +7 -18
  11. package/dist/cjs/useTheme.js +4 -12
  12. package/dist/cjs/useTheme.js.map +2 -2
  13. package/dist/esm/NextThemeProvider.js +16 -28
  14. package/dist/esm/NextThemeProvider.js.map +1 -1
  15. package/dist/esm/NextThemeProvider.mjs +14 -21
  16. package/dist/esm/NextThemeProvider.mjs.map +1 -1
  17. package/dist/esm/ThemeSettingContext.js +2 -2
  18. package/dist/esm/ThemeSettingContext.js.map +1 -1
  19. package/dist/esm/ThemeSettingContext.mjs +2 -2
  20. package/dist/esm/ThemeSettingContext.mjs.map +1 -1
  21. package/dist/esm/useRootTheme.js +4 -4
  22. package/dist/esm/useRootTheme.js.map +1 -1
  23. package/dist/esm/useRootTheme.mjs +4 -4
  24. package/dist/esm/useRootTheme.mjs.map +1 -1
  25. package/dist/esm/useTheme.js +2 -2
  26. package/dist/esm/useTheme.js.map +1 -1
  27. package/dist/esm/useTheme.mjs +3 -3
  28. package/dist/esm/useTheme.mjs.map +1 -1
  29. package/package.json +5 -5
  30. package/src/NextThemeProvider.tsx +33 -45
  31. package/src/ThemeSettingContext.tsx +6 -7
  32. package/src/useRootTheme.tsx +6 -7
  33. package/src/useTheme.tsx +3 -3
  34. package/types/NextThemeProvider.d.ts.map +1 -1
  35. package/types/ThemeSettingContext.d.ts +2 -2
  36. package/types/ThemeSettingContext.d.ts.map +3 -3
  37. package/types/useRootTheme.d.ts +2 -2
  38. package/types/useRootTheme.d.ts.map +2 -2
  39. package/types/useTheme.d.ts.map +1 -1
@@ -36,7 +36,7 @@ __export(NextThemeProvider_exports, {
36
36
  module.exports = __toCommonJS(NextThemeProvider_exports);
37
37
  var import_constants = require("@tamagui/constants"),
38
38
  import_use_event = require("@tamagui/use-event"),
39
- import_head = __toESM(require("next/head"), 1),
39
+ import_script = __toESM(require("next/script"), 1),
40
40
  React = __toESM(require("react"), 1),
41
41
  import_react = require("react"),
42
42
  import_constants2 = require("./constants.cjs"),
@@ -139,7 +139,7 @@ const NextThemeProvider = (0, import_react.memo)(({
139
139
  defaultTheme,
140
140
  attrs,
141
141
  skipNextHead
142
- }), (0, import_react.useMemo)(() => children, [children])]
142
+ }), children]
143
143
  });
144
144
  }),
145
145
  ThemeScript = (0, import_react.memo)(({
@@ -159,23 +159,16 @@ const NextThemeProvider = (0, import_react.memo)(({
159
159
  return attribute === "class" ? `d.add(${val})` : `d.setAttribute('${attribute}', ${val})`;
160
160
  },
161
161
  defaultSystem = defaultTheme === "system",
162
- contents = /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {
163
- children: forcedTheme ? /* @__PURE__ */(0, import_jsx_runtime.jsx)("script", {
164
- dangerouslySetInnerHTML: {
165
- // These are minified via Terser and then updated by hand, don't recommend
166
- __html: `!function(){${optimization}${updateDOM(forcedTheme)}}()`
167
- }
168
- }, "next-themes-script") : enableSystem ? /* @__PURE__ */(0, import_jsx_runtime.jsx)("script", {
169
- dangerouslySetInnerHTML: {
170
- __html: `!function(){try {${optimization}var e=localStorage.getItem('${storageKey}');${defaultSystem ? "" : updateDOM(defaultTheme) + ";"}if("system"===e||(!e&&${defaultSystem})){var t="${import_constants2.MEDIA}",m=window.matchMedia(t);m.media!==t||m.matches?${updateDOM("dark")}:${updateDOM("light")}}else if(e) ${value ? `var x=${JSON.stringify(value)};` : ""}${updateDOM(value ? "x[e]" : "e", !0)}}catch(e){}}()`
171
- }
172
- }, "next-themes-script") : /* @__PURE__ */(0, import_jsx_runtime.jsx)("script", {
173
- dangerouslySetInnerHTML: {
174
- __html: `!function(){try{${optimization}var e=localStorage.getItem("${storageKey}");if(e){${value ? `var x=${JSON.stringify(value)};` : ""}${updateDOM(value ? "x[e]" : "e", !0)}}else{${updateDOM(defaultTheme)};}}catch(t){}}();`
175
- }
176
- }, "next-themes-script")
177
- });
178
- return skipNextHead ? contents : /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_head.default, {
179
- children: contents
162
+ scriptContent = forcedTheme ? `!function(){${optimization}${updateDOM(forcedTheme)}}()` : enableSystem ? `!function(){try {${optimization}var e=localStorage.getItem('${storageKey}');if("system"===e||(!e&&${defaultSystem})){var t="${import_constants2.MEDIA}",m=window.matchMedia(t);m.media!==t||m.matches?${updateDOM("dark")}:${updateDOM("light")}}else if(e){${value ? `var x=${JSON.stringify(value)};` : ""}${updateDOM(value ? "x[e]" : "e", !0)}}${defaultSystem ? "" : `else{${updateDOM(defaultTheme)}}`}}catch(e){}}()` : `!function(){try{${optimization}var e=localStorage.getItem("${storageKey}");if(e){${value ? `var x=${JSON.stringify(value)};` : ""}${updateDOM(value ? "x[e]" : "e", !0)}}else{${updateDOM(defaultTheme)};}}catch(t){}}();`;
163
+ return skipNextHead ? /* @__PURE__ */(0, import_jsx_runtime.jsx)("script", {
164
+ dangerouslySetInnerHTML: {
165
+ __html: scriptContent
166
+ }
167
+ }, "next-themes-script") : /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_script.default, {
168
+ id: "next-themes-script",
169
+ strategy: "beforeInteractive",
170
+ dangerouslySetInnerHTML: {
171
+ __html: scriptContent
172
+ }
180
173
  });
181
174
  }, (prevProps, nextProps) => prevProps.forcedTheme === nextProps.forcedTheme);
@@ -25,7 +25,7 @@ __export(NextThemeProvider_exports, {
25
25
  NextThemeProvider: () => NextThemeProvider
26
26
  });
27
27
  module.exports = __toCommonJS(NextThemeProvider_exports);
28
- var import_constants = require("@tamagui/constants"), import_use_event = require("@tamagui/use-event"), import_head = __toESM(require("next/head"), 1), React = __toESM(require("react"), 1), import_react = require("react"), import_constants2 = require("./constants"), import_helpers = require("./helpers"), import_ThemeSettingContext = require("./ThemeSettingContext"), import_jsx_runtime = require("react/jsx-runtime");
28
+ var import_constants = require("@tamagui/constants"), import_use_event = require("@tamagui/use-event"), import_script = __toESM(require("next/script"), 1), React = __toESM(require("react"), 1), import_react = require("react"), import_constants2 = require("./constants"), import_helpers = require("./helpers"), import_ThemeSettingContext = require("./ThemeSettingContext"), import_jsx_runtime = require("react/jsx-runtime");
29
29
  const NextThemeProvider = (0, import_react.memo)(
30
30
  ({
31
31
  forcedTheme,
@@ -135,7 +135,7 @@ const NextThemeProvider = (0, import_react.memo)(
135
135
  skipNextHead
136
136
  }
137
137
  ),
138
- (0, import_react.useMemo)(() => children, [children])
138
+ children
139
139
  ] });
140
140
  }
141
141
  ), ThemeScript = (0, import_react.memo)(
@@ -153,37 +153,25 @@ const NextThemeProvider = (0, import_react.memo)(
153
153
  name = value?.[name] || name;
154
154
  const val = literal ? name : `'${name}'`;
155
155
  return attribute === "class" ? `d.add(${val})` : `d.setAttribute('${attribute}', ${val})`;
156
- }, defaultSystem = defaultTheme === "system", contents = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: forcedTheme ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
156
+ }, defaultSystem = defaultTheme === "system", scriptContent = forcedTheme ? `!function(){${optimization}${updateDOM(forcedTheme)}}()` : enableSystem ? `!function(){try {${optimization}var e=localStorage.getItem('${storageKey}');if("system"===e||(!e&&${defaultSystem})){var t="${import_constants2.MEDIA}",m=window.matchMedia(t);m.media!==t||m.matches?${updateDOM(
157
+ "dark"
158
+ )}:${updateDOM("light")}}else if(e){${value ? `var x=${JSON.stringify(value)};` : ""}${updateDOM(value ? "x[e]" : "e", !0)}}${defaultSystem ? "" : `else{${updateDOM(defaultTheme)}}`}}catch(e){}}()` : `!function(){try{${optimization}var e=localStorage.getItem("${storageKey}");if(e){${value ? `var x=${JSON.stringify(value)};` : ""}${updateDOM(value ? "x[e]" : "e", !0)}}else{${updateDOM(
159
+ defaultTheme
160
+ )};}}catch(t){}}();`;
161
+ return skipNextHead ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
157
162
  "script",
158
163
  {
159
- dangerouslySetInnerHTML: {
160
- // These are minified via Terser and then updated by hand, don't recommend
161
- __html: `!function(){${optimization}${updateDOM(forcedTheme)}}()`
162
- }
163
- },
164
- "next-themes-script"
165
- ) : enableSystem ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
166
- "script",
167
- {
168
- dangerouslySetInnerHTML: {
169
- __html: `!function(){try {${optimization}var e=localStorage.getItem('${storageKey}');${defaultSystem ? "" : updateDOM(defaultTheme) + ";"}if("system"===e||(!e&&${defaultSystem})){var t="${import_constants2.MEDIA}",m=window.matchMedia(t);m.media!==t||m.matches?${updateDOM(
170
- "dark"
171
- )}:${updateDOM("light")}}else if(e) ${value ? `var x=${JSON.stringify(value)};` : ""}${updateDOM(value ? "x[e]" : "e", !0)}}catch(e){}}()`
172
- }
164
+ dangerouslySetInnerHTML: { __html: scriptContent }
173
165
  },
174
166
  "next-themes-script"
175
167
  ) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
176
- "script",
168
+ import_script.default,
177
169
  {
178
- dangerouslySetInnerHTML: {
179
- __html: `!function(){try{${optimization}var e=localStorage.getItem("${storageKey}");if(e){${value ? `var x=${JSON.stringify(value)};` : ""}${updateDOM(value ? "x[e]" : "e", !0)}}else{${updateDOM(
180
- defaultTheme
181
- )};}}catch(t){}}();`
182
- }
183
- },
184
- "next-themes-script"
185
- ) });
186
- return skipNextHead ? contents : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_head.default, { children: contents });
170
+ id: "next-themes-script",
171
+ strategy: "beforeInteractive",
172
+ dangerouslySetInnerHTML: { __html: scriptContent }
173
+ }
174
+ );
187
175
  },
188
176
  (prevProps, nextProps) => prevProps.forcedTheme === nextProps.forcedTheme
189
177
  );
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/NextThemeProvider.tsx"],
4
- "mappings": "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",
5
- "names": ["import_constants", "theme", "NextHead"]
4
+ "mappings": "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",
5
+ "names": ["import_constants", "theme", "Script"]
6
6
  }
@@ -1,9 +1,7 @@
1
- var __create = Object.create;
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf,
6
- __hasOwnProp = Object.prototype.hasOwnProperty;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
5
  var __export = (target, all) => {
8
6
  for (var name in all) __defProp(target, name, {
9
7
  get: all[name],
@@ -17,25 +15,16 @@ var __export = (target, all) => {
17
15
  });
18
16
  return to;
19
17
  };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
26
- value: mod,
27
- enumerable: !0
28
- }) : target, mod)),
29
- __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
30
- value: !0
31
- }), mod);
18
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
19
+ value: !0
20
+ }), mod);
32
21
  var ThemeSettingContext_exports = {};
33
22
  __export(ThemeSettingContext_exports, {
34
23
  ThemeSettingContext: () => ThemeSettingContext
35
24
  });
36
25
  module.exports = __toCommonJS(ThemeSettingContext_exports);
37
- var import_react = __toESM(require("react"), 1);
38
- const ThemeSettingContext = import_react.default.createContext({
26
+ var import_react = require("react");
27
+ const ThemeSettingContext = (0, import_react.createContext)({
39
28
  toggle: () => {},
40
29
  set: _ => {},
41
30
  themes: []
@@ -1,8 +1,7 @@
1
- var __create = Object.create;
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
5
  var __export = (target, all) => {
7
6
  for (var name in all)
8
7
  __defProp(target, name, { get: all[name], enumerable: !0 });
@@ -12,21 +11,14 @@ var __export = (target, all) => {
12
11
  !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
13
12
  return to;
14
13
  };
15
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
16
- // If the importer is in node compatibility mode or this is not an ESM
17
- // file that has been converted to a CommonJS file using a Babel-
18
- // compatible transform (i.e. "__esModule" has not been set), then set
19
- // "default" to the CommonJS "module.exports" for node compatibility.
20
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target,
21
- mod
22
- )), __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
23
15
  var ThemeSettingContext_exports = {};
24
16
  __export(ThemeSettingContext_exports, {
25
17
  ThemeSettingContext: () => ThemeSettingContext
26
18
  });
27
19
  module.exports = __toCommonJS(ThemeSettingContext_exports);
28
- var import_react = __toESM(require("react"), 1);
29
- const ThemeSettingContext = import_react.default.createContext({
20
+ var import_react = require("react");
21
+ const ThemeSettingContext = (0, import_react.createContext)({
30
22
  toggle: () => {
31
23
  },
32
24
  set: (_) => {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/ThemeSettingContext.tsx"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB;AAIX,MAAM,sBACX,aAAAA,QAAM,cAA6B;AAAA,EACjC,QAAQ,MAAM;AAAA,EAAC;AAAA,EACf,KAAK,CAAC,MAAM;AAAA,EAAC;AAAA,EACb,QAAQ,CAAC;AACX,CAAC;",
5
- "names": ["React"]
4
+ "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA4C;AAIrC,MAAM,0BAA8C,4BAA6B;AAAA,EACtF,QAAQ,MAAM;AAAA,EAAC;AAAA,EACf,KAAK,CAAC,MAAM;AAAA,EAAC;AAAA,EACb,QAAQ,CAAC;AACX,CAAC;",
5
+ "names": []
6
6
  }
@@ -1,9 +1,7 @@
1
- var __create = Object.create;
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf,
6
- __hasOwnProp = Object.prototype.hasOwnProperty;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
5
  var __export = (target, all) => {
8
6
  for (var name in all) __defProp(target, name, {
9
7
  get: all[name],
@@ -17,32 +15,23 @@ var __export = (target, all) => {
17
15
  });
18
16
  return to;
19
17
  };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
26
- value: mod,
27
- enumerable: !0
28
- }) : target, mod)),
29
- __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
30
- value: !0
31
- }), mod);
18
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
19
+ value: !0
20
+ }), mod);
32
21
  var useRootTheme_exports = {};
33
22
  __export(useRootTheme_exports, {
34
23
  useRootTheme: () => useRootTheme
35
24
  });
36
25
  module.exports = __toCommonJS(useRootTheme_exports);
37
- var import_react = __toESM(require("react"), 1),
26
+ var import_react = require("react"),
38
27
  import_constants = require("@tamagui/constants");
39
28
  const useRootTheme = ({
40
29
  fallback = "light"
41
30
  } = {}) => {
42
31
  let initialVal = fallback;
43
32
  if (import_constants.isClient) {
44
- const classes = [...document.documentElement.classList];
45
- initialVal = classes.includes("t_dark") ? "dark" : classes.includes("t_light") ? "light" : fallback;
33
+ const classes = document.documentElement.classList;
34
+ initialVal = classes.contains("t_dark") ? "dark" : classes.contains("t_light") ? "light" : fallback;
46
35
  }
47
- return import_react.default.useState(initialVal);
36
+ return (0, import_react.useState)(initialVal);
48
37
  };
@@ -1,8 +1,7 @@
1
- var __create = Object.create;
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
5
  var __export = (target, all) => {
7
6
  for (var name in all)
8
7
  __defProp(target, name, { get: all[name], enumerable: !0 });
@@ -12,28 +11,21 @@ var __export = (target, all) => {
12
11
  !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
13
12
  return to;
14
13
  };
15
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
16
- // If the importer is in node compatibility mode or this is not an ESM
17
- // file that has been converted to a CommonJS file using a Babel-
18
- // compatible transform (i.e. "__esModule" has not been set), then set
19
- // "default" to the CommonJS "module.exports" for node compatibility.
20
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target,
21
- mod
22
- )), __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
23
15
  var useRootTheme_exports = {};
24
16
  __export(useRootTheme_exports, {
25
17
  useRootTheme: () => useRootTheme
26
18
  });
27
19
  module.exports = __toCommonJS(useRootTheme_exports);
28
- var import_react = __toESM(require("react"), 1), import_constants = require("@tamagui/constants");
20
+ var import_react = require("react"), import_constants = require("@tamagui/constants");
29
21
  const useRootTheme = ({
30
22
  fallback = "light"
31
23
  } = {}) => {
32
24
  let initialVal = fallback;
33
25
  if (import_constants.isClient) {
34
- const classes = [...document.documentElement.classList];
35
- initialVal = classes.includes("t_dark") ? "dark" : classes.includes("t_light") ? "light" : fallback;
26
+ const classes = document.documentElement.classList;
27
+ initialVal = classes.contains("t_dark") ? "dark" : classes.contains("t_light") ? "light" : fallback;
36
28
  }
37
- return import_react.default.useState(initialVal);
29
+ return (0, import_react.useState)(initialVal);
38
30
  };
39
31
  //# sourceMappingURL=useRootTheme.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/useRootTheme.tsx"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB,8BAClB,mBAAyB;AAIlB,MAAM,eAAe,CAAC;AAAA,EAC3B,WAAW;AACb,IAAgC,CAAC,MAG5B;AACH,MAAI,aAAa;AAEjB,MAAI,2BAAU;AAEZ,UAAM,UAAU,CAAC,GAAG,SAAS,gBAAgB,SAAS;AACtD,iBAAa,QAAQ,SAAS,QAAQ,IAClC,SACA,QAAQ,SAAS,SAAS,IACxB,UACA;AAAA,EACR;AAEA,SAAO,aAAAA,QAAM,SAAsB,UAAU;AAC/C;",
5
- "names": ["React"]
4
+ "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA6D,kBAC7D,mBAAyB;AAIlB,MAAM,eAAe,CAAC;AAAA,EAC3B,WAAW;AACb,IAAgC,CAAC,MAG5B;AACH,MAAI,aAAa;AAEjB,MAAI,2BAAU;AACZ,UAAM,UAAU,SAAS,gBAAgB;AACzC,iBAAa,QAAQ,SAAS,QAAQ,IAClC,SACA,QAAQ,SAAS,SAAS,IACxB,UACA;AAAA,EACR;AAEA,aAAO,uBAAsB,UAAU;AACzC;",
5
+ "names": []
6
6
  }
@@ -1,9 +1,7 @@
1
- var __create = Object.create;
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf,
6
- __hasOwnProp = Object.prototype.hasOwnProperty;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
5
  var __export = (target, all) => {
8
6
  for (var name in all) __defProp(target, name, {
9
7
  get: all[name],
@@ -17,25 +15,16 @@ var __export = (target, all) => {
17
15
  });
18
16
  return to;
19
17
  };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
26
- value: mod,
27
- enumerable: !0
28
- }) : target, mod)),
29
- __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
30
- value: !0
31
- }), mod);
18
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
19
+ value: !0
20
+ }), mod);
32
21
  var useTheme_exports = {};
33
22
  __export(useTheme_exports, {
34
23
  useTheme: () => useTheme,
35
24
  useThemeSetting: () => useThemeSetting
36
25
  });
37
26
  module.exports = __toCommonJS(useTheme_exports);
38
- var import_react = __toESM(require("react"), 1),
27
+ var import_react = require("react"),
39
28
  import_ThemeSettingContext = require("./ThemeSettingContext.cjs");
40
- const useTheme = () => import_react.default.useContext(import_ThemeSettingContext.ThemeSettingContext),
41
- useThemeSetting = () => import_react.default.useContext(import_ThemeSettingContext.ThemeSettingContext);
29
+ const useTheme = () => (0, import_react.useContext)(import_ThemeSettingContext.ThemeSettingContext),
30
+ useThemeSetting = () => (0, import_react.useContext)(import_ThemeSettingContext.ThemeSettingContext);
@@ -1,8 +1,7 @@
1
- var __create = Object.create;
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
5
  var __export = (target, all) => {
7
6
  for (var name in all)
8
7
  __defProp(target, name, { get: all[name], enumerable: !0 });
@@ -12,20 +11,13 @@ var __export = (target, all) => {
12
11
  !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
13
12
  return to;
14
13
  };
15
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
16
- // If the importer is in node compatibility mode or this is not an ESM
17
- // file that has been converted to a CommonJS file using a Babel-
18
- // compatible transform (i.e. "__esModule" has not been set), then set
19
- // "default" to the CommonJS "module.exports" for node compatibility.
20
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target,
21
- mod
22
- )), __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
23
15
  var useTheme_exports = {};
24
16
  __export(useTheme_exports, {
25
17
  useTheme: () => useTheme,
26
18
  useThemeSetting: () => useThemeSetting
27
19
  });
28
20
  module.exports = __toCommonJS(useTheme_exports);
29
- var import_react = __toESM(require("react"), 1), import_ThemeSettingContext = require("./ThemeSettingContext");
30
- const useTheme = () => import_react.default.useContext(import_ThemeSettingContext.ThemeSettingContext), useThemeSetting = () => import_react.default.useContext(import_ThemeSettingContext.ThemeSettingContext);
21
+ var import_react = require("react"), import_ThemeSettingContext = require("./ThemeSettingContext");
22
+ const useTheme = () => (0, import_react.useContext)(import_ThemeSettingContext.ThemeSettingContext), useThemeSetting = () => (0, import_react.useContext)(import_ThemeSettingContext.ThemeSettingContext);
31
23
  //# sourceMappingURL=useTheme.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/useTheme.tsx"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB,8BAElB,6BAAoC;AAO7B,MAAM,WAAW,MAAqB,aAAAA,QAAM,WAAW,8CAAmB,GAEpE,kBAAkB,MAAqB,aAAAA,QAAM,WAAW,8CAAmB;",
5
- "names": ["React"]
4
+ "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA2B,kBAE3B,6BAAoC;AAO7B,MAAM,WAAW,UAAqB,yBAAW,8CAAmB,GAE9D,kBAAkB,UAAqB,yBAAW,8CAAmB;",
5
+ "names": []
6
6
  }
@@ -1,12 +1,12 @@
1
1
  import { useIsomorphicLayoutEffect } from "@tamagui/constants";
2
2
  import { useEvent } from "@tamagui/use-event";
3
- import NextHead from "next/head";
3
+ import Script from "next/script";
4
4
  import * as React from "react";
5
5
  import { memo, useEffect, useMemo, useState } from "react";
6
6
  import { MEDIA, colorSchemes } from "./constants";
7
7
  import { getSystemTheme, getTheme } from "./helpers";
8
8
  import { ThemeSettingContext } from "./ThemeSettingContext";
9
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
9
+ import { jsx, jsxs } from "react/jsx-runtime";
10
10
  const NextThemeProvider = memo(
11
11
  ({
12
12
  forcedTheme,
@@ -116,7 +116,7 @@ const NextThemeProvider = memo(
116
116
  skipNextHead
117
117
  }
118
118
  ),
119
- useMemo(() => children, [children])
119
+ children
120
120
  ] });
121
121
  }
122
122
  ), ThemeScript = memo(
@@ -134,37 +134,25 @@ const NextThemeProvider = memo(
134
134
  name = value?.[name] || name;
135
135
  const val = literal ? name : `'${name}'`;
136
136
  return attribute === "class" ? `d.add(${val})` : `d.setAttribute('${attribute}', ${val})`;
137
- }, defaultSystem = defaultTheme === "system", contents = /* @__PURE__ */ jsx(Fragment, { children: forcedTheme ? /* @__PURE__ */ jsx(
137
+ }, defaultSystem = defaultTheme === "system", scriptContent = forcedTheme ? `!function(){${optimization}${updateDOM(forcedTheme)}}()` : enableSystem ? `!function(){try {${optimization}var e=localStorage.getItem('${storageKey}');if("system"===e||(!e&&${defaultSystem})){var t="${MEDIA}",m=window.matchMedia(t);m.media!==t||m.matches?${updateDOM(
138
+ "dark"
139
+ )}:${updateDOM("light")}}else if(e){${value ? `var x=${JSON.stringify(value)};` : ""}${updateDOM(value ? "x[e]" : "e", !0)}}${defaultSystem ? "" : `else{${updateDOM(defaultTheme)}}`}}catch(e){}}()` : `!function(){try{${optimization}var e=localStorage.getItem("${storageKey}");if(e){${value ? `var x=${JSON.stringify(value)};` : ""}${updateDOM(value ? "x[e]" : "e", !0)}}else{${updateDOM(
140
+ defaultTheme
141
+ )};}}catch(t){}}();`;
142
+ return skipNextHead ? /* @__PURE__ */ jsx(
138
143
  "script",
139
144
  {
140
- dangerouslySetInnerHTML: {
141
- // These are minified via Terser and then updated by hand, don't recommend
142
- __html: `!function(){${optimization}${updateDOM(forcedTheme)}}()`
143
- }
144
- },
145
- "next-themes-script"
146
- ) : enableSystem ? /* @__PURE__ */ jsx(
147
- "script",
148
- {
149
- dangerouslySetInnerHTML: {
150
- __html: `!function(){try {${optimization}var e=localStorage.getItem('${storageKey}');${defaultSystem ? "" : updateDOM(defaultTheme) + ";"}if("system"===e||(!e&&${defaultSystem})){var t="${MEDIA}",m=window.matchMedia(t);m.media!==t||m.matches?${updateDOM(
151
- "dark"
152
- )}:${updateDOM("light")}}else if(e) ${value ? `var x=${JSON.stringify(value)};` : ""}${updateDOM(value ? "x[e]" : "e", !0)}}catch(e){}}()`
153
- }
145
+ dangerouslySetInnerHTML: { __html: scriptContent }
154
146
  },
155
147
  "next-themes-script"
156
148
  ) : /* @__PURE__ */ jsx(
157
- "script",
149
+ Script,
158
150
  {
159
- dangerouslySetInnerHTML: {
160
- __html: `!function(){try{${optimization}var e=localStorage.getItem("${storageKey}");if(e){${value ? `var x=${JSON.stringify(value)};` : ""}${updateDOM(value ? "x[e]" : "e", !0)}}else{${updateDOM(
161
- defaultTheme
162
- )};}}catch(t){}}();`
163
- }
164
- },
165
- "next-themes-script"
166
- ) });
167
- return skipNextHead ? contents : /* @__PURE__ */ jsx(NextHead, { children: contents });
151
+ id: "next-themes-script",
152
+ strategy: "beforeInteractive",
153
+ dangerouslySetInnerHTML: { __html: scriptContent }
154
+ }
155
+ );
168
156
  },
169
157
  (prevProps, nextProps) => prevProps.forcedTheme === nextProps.forcedTheme
170
158
  );
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/NextThemeProvider.tsx"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["theme"]
6
6
  }
@@ -1,12 +1,12 @@
1
1
  import { useIsomorphicLayoutEffect } from "@tamagui/constants";
2
2
  import { useEvent } from "@tamagui/use-event";
3
- import NextHead from "next/head";
3
+ import Script from "next/script";
4
4
  import * as React from "react";
5
5
  import { memo, useEffect, useMemo, useState } from "react";
6
6
  import { MEDIA, colorSchemes } from "./constants.mjs";
7
7
  import { getSystemTheme, getTheme } from "./helpers.mjs";
8
8
  import { ThemeSettingContext } from "./ThemeSettingContext.mjs";
9
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
9
+ import { jsx, jsxs } from "react/jsx-runtime";
10
10
  const NextThemeProvider = memo(({
11
11
  forcedTheme,
12
12
  disableTransitionOnChange = !1,
@@ -103,7 +103,7 @@ const NextThemeProvider = memo(({
103
103
  defaultTheme,
104
104
  attrs,
105
105
  skipNextHead
106
- }), useMemo(() => children, [children])]
106
+ }), children]
107
107
  });
108
108
  }),
109
109
  ThemeScript = memo(({
@@ -123,24 +123,17 @@ const NextThemeProvider = memo(({
123
123
  return attribute === "class" ? `d.add(${val})` : `d.setAttribute('${attribute}', ${val})`;
124
124
  },
125
125
  defaultSystem = defaultTheme === "system",
126
- contents = /* @__PURE__ */jsx(Fragment, {
127
- children: forcedTheme ? /* @__PURE__ */jsx("script", {
128
- dangerouslySetInnerHTML: {
129
- // These are minified via Terser and then updated by hand, don't recommend
130
- __html: `!function(){${optimization}${updateDOM(forcedTheme)}}()`
131
- }
132
- }, "next-themes-script") : enableSystem ? /* @__PURE__ */jsx("script", {
133
- dangerouslySetInnerHTML: {
134
- __html: `!function(){try {${optimization}var e=localStorage.getItem('${storageKey}');${defaultSystem ? "" : updateDOM(defaultTheme) + ";"}if("system"===e||(!e&&${defaultSystem})){var t="${MEDIA}",m=window.matchMedia(t);m.media!==t||m.matches?${updateDOM("dark")}:${updateDOM("light")}}else if(e) ${value ? `var x=${JSON.stringify(value)};` : ""}${updateDOM(value ? "x[e]" : "e", !0)}}catch(e){}}()`
135
- }
136
- }, "next-themes-script") : /* @__PURE__ */jsx("script", {
137
- dangerouslySetInnerHTML: {
138
- __html: `!function(){try{${optimization}var e=localStorage.getItem("${storageKey}");if(e){${value ? `var x=${JSON.stringify(value)};` : ""}${updateDOM(value ? "x[e]" : "e", !0)}}else{${updateDOM(defaultTheme)};}}catch(t){}}();`
139
- }
140
- }, "next-themes-script")
141
- });
142
- return skipNextHead ? contents : /* @__PURE__ */jsx(NextHead, {
143
- children: contents
126
+ scriptContent = forcedTheme ? `!function(){${optimization}${updateDOM(forcedTheme)}}()` : enableSystem ? `!function(){try {${optimization}var e=localStorage.getItem('${storageKey}');if("system"===e||(!e&&${defaultSystem})){var t="${MEDIA}",m=window.matchMedia(t);m.media!==t||m.matches?${updateDOM("dark")}:${updateDOM("light")}}else if(e){${value ? `var x=${JSON.stringify(value)};` : ""}${updateDOM(value ? "x[e]" : "e", !0)}}${defaultSystem ? "" : `else{${updateDOM(defaultTheme)}}`}}catch(e){}}()` : `!function(){try{${optimization}var e=localStorage.getItem("${storageKey}");if(e){${value ? `var x=${JSON.stringify(value)};` : ""}${updateDOM(value ? "x[e]" : "e", !0)}}else{${updateDOM(defaultTheme)};}}catch(t){}}();`;
127
+ return skipNextHead ? /* @__PURE__ */jsx("script", {
128
+ dangerouslySetInnerHTML: {
129
+ __html: scriptContent
130
+ }
131
+ }, "next-themes-script") : /* @__PURE__ */jsx(Script, {
132
+ id: "next-themes-script",
133
+ strategy: "beforeInteractive",
134
+ dangerouslySetInnerHTML: {
135
+ __html: scriptContent
136
+ }
144
137
  });
145
138
  }, (prevProps, nextProps) => prevProps.forcedTheme === nextProps.forcedTheme);
146
139
  export { NextThemeProvider };
@@ -1 +1 @@
1
- {"version":3,"names":["useIsomorphicLayoutEffect","useEvent","NextHead","React","memo","useEffect","useMemo","useState","MEDIA","colorSchemes","getSystemTheme","getTheme","ThemeSettingContext","Fragment","jsx","jsxs","NextThemeProvider","forcedTheme","disableTransitionOnChange","enableSystem","enableColorScheme","storageKey","themes","defaultTheme","attribute","skipNextHead","onChangeTheme","value","dark","light","children","theme","setThemeState","resolvedTheme","setResolvedTheme","attrs","Object","values","handleMediaQuery","e","_","update","startTransition","handleChangeTheme","theme2","updateStorage","updateDOM","name","localStorage","setItem","resolved","replace","d","document","documentElement","classList","remove","add","setAttribute","media","window","matchMedia","addListener","removeListener","set","newTheme","handleStorage","key","newValue","addEventListener","removeEventListener","colorScheme","includes","matches","style","setProperty","toggle","order","next","indexOf","length","systemTheme","contextValue","current","Provider","ThemeScript","optimization","map","t","join","literal","val","defaultSystem","contents","dangerouslySetInnerHTML","__html","JSON","stringify","prevProps","nextProps"],"sources":["../../src/NextThemeProvider.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useIsomorphicLayoutEffect","useEvent","Script","React","memo","useEffect","useMemo","useState","MEDIA","colorSchemes","getSystemTheme","getTheme","ThemeSettingContext","jsx","jsxs","NextThemeProvider","forcedTheme","disableTransitionOnChange","enableSystem","enableColorScheme","storageKey","themes","defaultTheme","attribute","skipNextHead","onChangeTheme","value","dark","light","children","theme","setThemeState","resolvedTheme","setResolvedTheme","attrs","Object","values","handleMediaQuery","e","_","update","startTransition","handleChangeTheme","theme2","updateStorage","updateDOM","name","localStorage","setItem","resolved","replace","d","document","documentElement","classList","remove","add","setAttribute","media","window","matchMedia","addListener","removeListener","set","newTheme","handleStorage","key","newValue","addEventListener","removeEventListener","colorScheme","includes","matches","style","setProperty","toggle","order","next","indexOf","length","systemTheme","contextValue","current","Provider","ThemeScript","optimization","map","t","join","literal","val","defaultSystem","scriptContent","JSON","stringify","dangerouslySetInnerHTML","__html","id","strategy","prevProps","nextProps"],"sources":["../../src/NextThemeProvider.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import React from "react";
2
- const ThemeSettingContext = React.createContext({
1
+ import { createContext } from "react";
2
+ const ThemeSettingContext = createContext({
3
3
  toggle: () => {
4
4
  },
5
5
  set: (_) => {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/ThemeSettingContext.tsx"],
4
- "mappings": "AAAA,OAAO,WAAW;AAIX,MAAM,sBACX,MAAM,cAA6B;AAAA,EACjC,QAAQ,MAAM;AAAA,EAAC;AAAA,EACf,KAAK,CAAC,MAAM;AAAA,EAAC;AAAA,EACb,QAAQ,CAAC;AACX,CAAC;",
4
+ "mappings": "AAAA,SAAS,qBAAmC;AAIrC,MAAM,sBAA8C,cAA6B;AAAA,EACtF,QAAQ,MAAM;AAAA,EAAC;AAAA,EACf,KAAK,CAAC,MAAM;AAAA,EAAC;AAAA,EACb,QAAQ,CAAC;AACX,CAAC;",
5
5
  "names": []
6
6
  }
@@ -1,5 +1,5 @@
1
- import React from "react";
2
- const ThemeSettingContext = React.createContext({
1
+ import { createContext } from "react";
2
+ const ThemeSettingContext = createContext({
3
3
  toggle: () => {},
4
4
  set: _ => {},
5
5
  themes: []
@@ -1 +1 @@
1
- {"version":3,"names":["React","ThemeSettingContext","createContext","toggle","set","_","themes"],"sources":["../../src/ThemeSettingContext.tsx"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,KAAA,MAAW;AAIX,MAAMC,mBAAA,GACXD,KAAA,CAAME,aAAA,CAA6B;EACjCC,MAAA,EAAQA,CAAA,KAAM,CAAC;EACfC,GAAA,EAAMC,CAAA,IAAM,CAAC;EACbC,MAAA,EAAQ;AACV,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createContext","ThemeSettingContext","toggle","set","_","themes"],"sources":["../../src/ThemeSettingContext.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,aAAA,QAAmC;AAIrC,MAAMC,mBAAA,GAA8CD,aAAA,CAA6B;EACtFE,MAAA,EAAQA,CAAA,KAAM,CAAC;EACfC,GAAA,EAAMC,CAAA,IAAM,CAAC;EACbC,MAAA,EAAQ;AACV,CAAC","ignoreList":[]}
@@ -1,14 +1,14 @@
1
- import React from "react";
1
+ import { useState } from "react";
2
2
  import { isClient } from "@tamagui/constants";
3
3
  const useRootTheme = ({
4
4
  fallback = "light"
5
5
  } = {}) => {
6
6
  let initialVal = fallback;
7
7
  if (isClient) {
8
- const classes = [...document.documentElement.classList];
9
- initialVal = classes.includes("t_dark") ? "dark" : classes.includes("t_light") ? "light" : fallback;
8
+ const classes = document.documentElement.classList;
9
+ initialVal = classes.contains("t_dark") ? "dark" : classes.contains("t_light") ? "light" : fallback;
10
10
  }
11
- return React.useState(initialVal);
11
+ return useState(initialVal);
12
12
  };
13
13
  export {
14
14
  useRootTheme
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/useRootTheme.tsx"],
4
- "mappings": "AAAA,OAAO,WAAW;AAClB,SAAS,gBAAgB;AAIlB,MAAM,eAAe,CAAC;AAAA,EAC3B,WAAW;AACb,IAAgC,CAAC,MAG5B;AACH,MAAI,aAAa;AAEjB,MAAI,UAAU;AAEZ,UAAM,UAAU,CAAC,GAAG,SAAS,gBAAgB,SAAS;AACtD,iBAAa,QAAQ,SAAS,QAAQ,IAClC,SACA,QAAQ,SAAS,SAAS,IACxB,UACA;AAAA,EACR;AAEA,SAAO,MAAM,SAAsB,UAAU;AAC/C;",
4
+ "mappings": "AAAA,SAAS,gBAAoD;AAC7D,SAAS,gBAAgB;AAIlB,MAAM,eAAe,CAAC;AAAA,EAC3B,WAAW;AACb,IAAgC,CAAC,MAG5B;AACH,MAAI,aAAa;AAEjB,MAAI,UAAU;AACZ,UAAM,UAAU,SAAS,gBAAgB;AACzC,iBAAa,QAAQ,SAAS,QAAQ,IAClC,SACA,QAAQ,SAAS,SAAS,IACxB,UACA;AAAA,EACR;AAEA,SAAO,SAAsB,UAAU;AACzC;",
5
5
  "names": []
6
6
  }
@@ -1,14 +1,14 @@
1
- import React from "react";
1
+ import { useState } from "react";
2
2
  import { isClient } from "@tamagui/constants";
3
3
  const useRootTheme = ({
4
4
  fallback = "light"
5
5
  } = {}) => {
6
6
  let initialVal = fallback;
7
7
  if (isClient) {
8
- const classes = [...document.documentElement.classList];
9
- initialVal = classes.includes("t_dark") ? "dark" : classes.includes("t_light") ? "light" : fallback;
8
+ const classes = document.documentElement.classList;
9
+ initialVal = classes.contains("t_dark") ? "dark" : classes.contains("t_light") ? "light" : fallback;
10
10
  }
11
- return React.useState(initialVal);
11
+ return useState(initialVal);
12
12
  };
13
13
  export { useRootTheme };
14
14
  //# sourceMappingURL=useRootTheme.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","isClient","useRootTheme","fallback","initialVal","classes","document","documentElement","classList","includes","useState"],"sources":["../../src/useRootTheme.tsx"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,KAAA,MAAW;AAClB,SAASC,QAAA,QAAgB;AAIlB,MAAMC,YAAA,GAAeA,CAAC;EAC3BC,QAAA,GAAW;AACb,IAAgC,CAAC,MAG5B;EACH,IAAIC,UAAA,GAAaD,QAAA;EAEjB,IAAIF,QAAA,EAAU;IAEZ,MAAMI,OAAA,GAAU,CAAC,GAAGC,QAAA,CAASC,eAAA,CAAgBC,SAAS;IACtDJ,UAAA,GAAaC,OAAA,CAAQI,QAAA,CAAS,QAAQ,IAClC,SACAJ,OAAA,CAAQI,QAAA,CAAS,SAAS,IACxB,UACAN,QAAA;EACR;EAEA,OAAOH,KAAA,CAAMU,QAAA,CAAsBN,UAAU;AAC/C","ignoreList":[]}
1
+ {"version":3,"names":["useState","isClient","useRootTheme","fallback","initialVal","classes","document","documentElement","classList","contains"],"sources":["../../src/useRootTheme.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,QAAoD;AAC7D,SAASC,QAAA,QAAgB;AAIlB,MAAMC,YAAA,GAAeA,CAAC;EAC3BC,QAAA,GAAW;AACb,IAAgC,CAAC,MAG5B;EACH,IAAIC,UAAA,GAAaD,QAAA;EAEjB,IAAIF,QAAA,EAAU;IACZ,MAAMI,OAAA,GAAUC,QAAA,CAASC,eAAA,CAAgBC,SAAA;IACzCJ,UAAA,GAAaC,OAAA,CAAQI,QAAA,CAAS,QAAQ,IAClC,SACAJ,OAAA,CAAQI,QAAA,CAAS,SAAS,IACxB,UACAN,QAAA;EACR;EAEA,OAAOH,QAAA,CAAsBI,UAAU;AACzC","ignoreList":[]}
@@ -1,6 +1,6 @@
1
- import React from "react";
1
+ import { useContext } from "react";
2
2
  import { ThemeSettingContext } from "./ThemeSettingContext";
3
- const useTheme = () => React.useContext(ThemeSettingContext), useThemeSetting = () => React.useContext(ThemeSettingContext);
3
+ const useTheme = () => useContext(ThemeSettingContext), useThemeSetting = () => useContext(ThemeSettingContext);
4
4
  export {
5
5
  useTheme,
6
6
  useThemeSetting
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/useTheme.tsx"],
4
- "mappings": "AAAA,OAAO,WAAW;AAElB,SAAS,2BAA2B;AAO7B,MAAM,WAAW,MAAqB,MAAM,WAAW,mBAAmB,GAEpE,kBAAkB,MAAqB,MAAM,WAAW,mBAAmB;",
4
+ "mappings": "AAAA,SAAS,kBAAkB;AAE3B,SAAS,2BAA2B;AAO7B,MAAM,WAAW,MAAqB,WAAW,mBAAmB,GAE9D,kBAAkB,MAAqB,WAAW,mBAAmB;",
5
5
  "names": []
6
6
  }
@@ -1,6 +1,6 @@
1
- import React from "react";
1
+ import { useContext } from "react";
2
2
  import { ThemeSettingContext } from "./ThemeSettingContext.mjs";
3
- const useTheme = () => React.useContext(ThemeSettingContext),
4
- useThemeSetting = () => React.useContext(ThemeSettingContext);
3
+ const useTheme = () => useContext(ThemeSettingContext),
4
+ useThemeSetting = () => useContext(ThemeSettingContext);
5
5
  export { useTheme, useThemeSetting };
6
6
  //# sourceMappingURL=useTheme.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","ThemeSettingContext","useTheme","useContext","useThemeSetting"],"sources":["../../src/useTheme.tsx"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,KAAA,MAAW;AAElB,SAASC,mBAAA,QAA2B;AAO7B,MAAMC,QAAA,GAAWA,CAAA,KAAqBF,KAAA,CAAMG,UAAA,CAAWF,mBAAmB;EAEpEG,eAAA,GAAkBA,CAAA,KAAqBJ,KAAA,CAAMG,UAAA,CAAWF,mBAAmB","ignoreList":[]}
1
+ {"version":3,"names":["useContext","ThemeSettingContext","useTheme","useThemeSetting"],"sources":["../../src/useTheme.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,UAAA,QAAkB;AAE3B,SAASC,mBAAA,QAA2B;AAO7B,MAAMC,QAAA,GAAWA,CAAA,KAAqBF,UAAA,CAAWC,mBAAmB;EAE9DE,eAAA,GAAkBA,CAAA,KAAqBH,UAAA,CAAWC,mBAAmB","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/next-theme",
3
- "version": "1.142.0",
3
+ "version": "1.143.0",
4
4
  "type": "module",
5
5
  "source": "src/index.ts",
6
6
  "types": "./types/index.d.ts",
@@ -30,12 +30,12 @@
30
30
  }
31
31
  },
32
32
  "dependencies": {
33
- "@tamagui/constants": "1.142.0",
34
- "@tamagui/use-event": "1.142.0",
35
- "next": "^15.3.8"
33
+ "@tamagui/constants": "1.143.0",
34
+ "@tamagui/use-event": "1.143.0",
35
+ "next": "16.1.1"
36
36
  },
37
37
  "devDependencies": {
38
- "@tamagui/build": "1.142.0",
38
+ "@tamagui/build": "1.143.0",
39
39
  "react": "*"
40
40
  },
41
41
  "peerDependencies": {
@@ -1,6 +1,6 @@
1
1
  import { useIsomorphicLayoutEffect } from '@tamagui/constants'
2
2
  import { useEvent } from '@tamagui/use-event'
3
- import NextHead from 'next/head'
3
+ import Script from 'next/script'
4
4
  import * as React from 'react'
5
5
  import { memo, useEffect, useMemo, useState } from 'react'
6
6
 
@@ -197,8 +197,7 @@ export const NextThemeProvider: React.FunctionComponent<ThemeProviderProps> = me
197
197
  skipNextHead,
198
198
  }}
199
199
  />
200
- {/* because on SSR we re-run and can avoid whole tree re-render */}
201
- {useMemo(() => children, [children])}
200
+ {children}
202
201
  </ThemeSettingContext.Provider>
203
202
  )
204
203
  }
@@ -246,50 +245,39 @@ const ThemeScript = memo(
246
245
 
247
246
  const defaultSystem = defaultTheme === 'system'
248
247
 
249
- const contents = (
250
- <>
251
- {forcedTheme ? (
252
- <script
253
- // nonce={nonce}
254
- key="next-themes-script"
255
- dangerouslySetInnerHTML={{
256
- // These are minified via Terser and then updated by hand, don't recommend
257
- __html: `!function(){${optimization}${updateDOM(forcedTheme)}}()`,
258
- }}
259
- />
260
- ) : enableSystem ? (
261
- <script
262
- // nonce={nonce}
263
- key="next-themes-script"
264
- dangerouslySetInnerHTML={{
265
- __html: `!function(){try {${optimization}var e=localStorage.getItem('${storageKey}');${
266
- !defaultSystem ? updateDOM(defaultTheme) + ';' : ''
267
- }if("system"===e||(!e&&${defaultSystem})){var t="${MEDIA}",m=window.matchMedia(t);m.media!==t||m.matches?${updateDOM(
268
- 'dark'
269
- )}:${updateDOM('light')}}else if(e) ${
270
- value ? `var x=${JSON.stringify(value)};` : ''
271
- }${updateDOM(value ? 'x[e]' : 'e', true)}}catch(e){}}()`,
272
- }}
273
- />
274
- ) : (
275
- <script
276
- // nonce={nonce}
277
- key="next-themes-script"
278
- dangerouslySetInnerHTML={{
279
- __html: `!function(){try{${optimization}var e=localStorage.getItem("${storageKey}");if(e){${
280
- value ? `var x=${JSON.stringify(value)};` : ''
281
- }${updateDOM(value ? 'x[e]' : 'e', true)}}else{${updateDOM(
282
- defaultTheme
283
- )};}}catch(t){}}();`,
284
- }}
285
- />
286
- )}
287
- </>
288
- )
248
+ const scriptContent = forcedTheme
249
+ ? `!function(){${optimization}${updateDOM(forcedTheme)}}()`
250
+ : enableSystem
251
+ ? `!function(){try {${optimization}var e=localStorage.getItem('${storageKey}');if("system"===e||(!e&&${defaultSystem})){var t="${MEDIA}",m=window.matchMedia(t);m.media!==t||m.matches?${updateDOM(
252
+ 'dark'
253
+ )}:${updateDOM('light')}}else if(e){${
254
+ value ? `var x=${JSON.stringify(value)};` : ''
255
+ }${updateDOM(value ? 'x[e]' : 'e', true)}}${
256
+ !defaultSystem ? `else{${updateDOM(defaultTheme)}}` : ''
257
+ }}catch(e){}}()`
258
+ : `!function(){try{${optimization}var e=localStorage.getItem("${storageKey}");if(e){${
259
+ value ? `var x=${JSON.stringify(value)};` : ''
260
+ }${updateDOM(value ? 'x[e]' : 'e', true)}}else{${updateDOM(
261
+ defaultTheme
262
+ )};}}catch(t){}}();`
289
263
 
290
- if (skipNextHead) return contents
264
+ // skipNextHead returns raw script for useServerInsertedHTML usage
265
+ if (skipNextHead) {
266
+ return (
267
+ <script
268
+ key="next-themes-script"
269
+ dangerouslySetInnerHTML={{ __html: scriptContent }}
270
+ />
271
+ )
272
+ }
291
273
 
292
- return <NextHead>{contents}</NextHead>
274
+ return (
275
+ <Script
276
+ id="next-themes-script"
277
+ strategy="beforeInteractive"
278
+ dangerouslySetInnerHTML={{ __html: scriptContent }}
279
+ />
280
+ )
293
281
  },
294
282
  (prevProps, nextProps) => {
295
283
  // Only re-render when forcedTheme changes
@@ -1,10 +1,9 @@
1
- import React from 'react'
1
+ import { createContext, type Context } from 'react'
2
2
 
3
3
  import type { UseThemeProps } from './UseThemeProps'
4
4
 
5
- export const ThemeSettingContext: React.Context<UseThemeProps> =
6
- React.createContext<UseThemeProps>({
7
- toggle: () => {},
8
- set: (_) => {},
9
- themes: [],
10
- })
5
+ export const ThemeSettingContext: Context<UseThemeProps> = createContext<UseThemeProps>({
6
+ toggle: () => {},
7
+ set: (_) => {},
8
+ themes: [],
9
+ })
@@ -1,4 +1,4 @@
1
- import React from 'react'
1
+ import { useState, type Dispatch, type SetStateAction } from 'react'
2
2
  import { isClient } from '@tamagui/constants'
3
3
 
4
4
  import type { ColorScheme } from './types'
@@ -7,19 +7,18 @@ export const useRootTheme = ({
7
7
  fallback = 'light',
8
8
  }: { fallback?: ColorScheme } = {}): [
9
9
  ColorScheme,
10
- React.Dispatch<React.SetStateAction<ColorScheme>>,
10
+ Dispatch<SetStateAction<ColorScheme>>,
11
11
  ] => {
12
12
  let initialVal = fallback
13
13
 
14
14
  if (isClient) {
15
- // @ts-ignore
16
- const classes = [...document.documentElement.classList]
17
- initialVal = classes.includes(`t_dark`)
15
+ const classes = document.documentElement.classList
16
+ initialVal = classes.contains('t_dark')
18
17
  ? 'dark'
19
- : classes.includes(`t_light`)
18
+ : classes.contains('t_light')
20
19
  ? 'light'
21
20
  : fallback
22
21
  }
23
22
 
24
- return React.useState<ColorScheme>(initialVal)
23
+ return useState<ColorScheme>(initialVal)
25
24
  }
package/src/useTheme.tsx CHANGED
@@ -1,4 +1,4 @@
1
- import React from 'react'
1
+ import { useContext } from 'react'
2
2
 
3
3
  import { ThemeSettingContext } from './ThemeSettingContext'
4
4
  import type { UseThemeProps } from './UseThemeProps'
@@ -7,6 +7,6 @@ import type { UseThemeProps } from './UseThemeProps'
7
7
  * @deprecated renamed to `useThemeSetting` to avoid confusion with core `useTheme` hook
8
8
  */
9
9
 
10
- export const useTheme = (): UseThemeProps => React.useContext(ThemeSettingContext)
10
+ export const useTheme = (): UseThemeProps => useContext(ThemeSettingContext)
11
11
 
12
- export const useThemeSetting = (): UseThemeProps => React.useContext(ThemeSettingContext)
12
+ export const useThemeSetting = (): UseThemeProps => useContext(ThemeSettingContext)
@@ -7,7 +7,7 @@
7
7
  "src/NextThemeProvider.tsx"
8
8
  ],
9
9
  "sourcesContent": [
10
- "import { useIsomorphicLayoutEffect } from '@tamagui/constants'\nimport { useEvent } from '@tamagui/use-event'\nimport NextHead from 'next/head'\nimport * as React from 'react'\nimport { memo, useEffect, useMemo, useState } from 'react'\n\nimport { MEDIA, colorSchemes } from './constants'\nimport { getSystemTheme, getTheme } from './helpers'\nimport { ThemeSettingContext } from './ThemeSettingContext'\nimport type { ValueObject } from './types'\nimport type { ThemeProviderProps, UseThemeProps } from './UseThemeProps'\n\nexport const NextThemeProvider: React.FunctionComponent<ThemeProviderProps> = memo(\n ({\n forcedTheme,\n disableTransitionOnChange = false,\n enableSystem = true,\n enableColorScheme = true,\n storageKey = 'theme',\n themes = colorSchemes,\n defaultTheme = enableSystem ? 'system' : 'light',\n attribute = 'class',\n skipNextHead,\n onChangeTheme,\n value = {\n dark: 't_dark',\n light: 't_light',\n },\n children,\n }) => {\n const [theme, setThemeState] = useState(() => getTheme(storageKey, defaultTheme))\n const [resolvedTheme, setResolvedTheme] = useState(() => getTheme(storageKey))\n const attrs = !value ? themes : Object.values(value)\n\n const handleMediaQuery = useEvent((e?) => {\n const _ = getSystemTheme(e)\n const update = () => setResolvedTheme(_)\n if (disableTransitionOnChange) {\n update()\n } else {\n React.startTransition(() => update())\n }\n if (theme === 'system' && !forcedTheme) {\n handleChangeTheme(_, false)\n }\n })\n\n const handleChangeTheme = useEvent(\n (theme, updateStorage = true, updateDOM = true) => {\n let name = value?.[theme] || theme\n\n if (updateStorage) {\n try {\n localStorage.setItem(storageKey, theme)\n } catch (e) {\n // Unsupported\n }\n }\n\n if (theme === 'system' && enableSystem) {\n const resolved = getSystemTheme()\n name = value?.[resolved] || resolved\n }\n\n onChangeTheme?.(name.replace('t_', ''))\n\n if (updateDOM) {\n const d = document.documentElement\n if (attribute === 'class') {\n d.classList.remove(...attrs)\n d.classList.add(name)\n } else {\n d.setAttribute(attribute, name)\n }\n }\n }\n )\n\n useIsomorphicLayoutEffect(() => {\n // Always listen to System preference\n const media = window.matchMedia(MEDIA)\n // Intentionally use deprecated listener methods to support iOS & old browsers\n media.addListener(handleMediaQuery)\n handleMediaQuery(media)\n return () => {\n media.removeListener(handleMediaQuery)\n }\n }, [])\n\n const set = useEvent((newTheme) => {\n if (forcedTheme) {\n handleChangeTheme(newTheme, true, false)\n } else {\n handleChangeTheme(newTheme)\n }\n setThemeState(newTheme)\n })\n\n // localStorage event handling\n useEffect(() => {\n const handleStorage = (e: StorageEvent) => {\n if (e.key !== storageKey) {\n return\n }\n // If default theme set, use it if localstorage === null (happens on local storage manual deletion)\n const theme = e.newValue || defaultTheme\n set(theme)\n }\n window.addEventListener('storage', handleStorage)\n return () => {\n window.removeEventListener('storage', handleStorage)\n }\n }, [defaultTheme, set, storageKey])\n\n // color-scheme handling\n useIsomorphicLayoutEffect(() => {\n if (!enableColorScheme) return\n\n const colorScheme =\n // If theme is forced to light or dark, use that\n forcedTheme && colorSchemes.includes(forcedTheme as 'light' | 'dark')\n ? forcedTheme\n : // If regular theme is light or dark\n theme && colorSchemes.includes(theme)\n ? theme\n : // If theme is system, use the resolved version\n theme === 'system'\n ? resolvedTheme || null\n : null\n\n // color-scheme tells browser how to render built-in elements like forms, scrollbars, etc.\n // if color-scheme is null, this will remove the property\n const userPrefers =\n typeof window !== 'undefined' &&\n window.matchMedia &&\n window.matchMedia('(prefers-color-scheme: dark)').matches\n ? 'dark'\n : 'light'\n\n const wePrefer = colorScheme || 'light'\n\n // avoid running this because it causes full page reflow\n if (userPrefers !== wePrefer) {\n document.documentElement.style.setProperty('color-scheme', colorScheme)\n }\n }, [enableColorScheme, theme, resolvedTheme, forcedTheme])\n\n const toggle = useEvent(() => {\n const order =\n resolvedTheme === 'dark'\n ? ['system', 'light', 'dark']\n : ['system', 'dark', 'light']\n const next = order[(order.indexOf(theme) + 1) % order.length]\n set(next)\n })\n\n const systemTheme = (enableSystem ? resolvedTheme : undefined) as\n | 'light'\n | 'dark'\n | undefined\n\n const contextValue = useMemo(() => {\n const value: UseThemeProps = {\n theme,\n current: theme,\n set,\n toggle,\n forcedTheme,\n resolvedTheme: theme === 'system' ? resolvedTheme : theme,\n themes: enableSystem ? [...themes, 'system'] : (themes as string[]),\n systemTheme,\n } as const\n return value\n }, [\n theme,\n set,\n toggle,\n forcedTheme,\n resolvedTheme,\n enableSystem,\n themes,\n systemTheme,\n ])\n\n return (\n <ThemeSettingContext.Provider value={contextValue}>\n <ThemeScript\n {...{\n forcedTheme,\n storageKey,\n systemTheme: resolvedTheme,\n attribute,\n value,\n enableSystem,\n defaultTheme,\n attrs,\n skipNextHead,\n }}\n />\n {/* because on SSR we re-run and can avoid whole tree re-render */}\n {useMemo(() => children, [children])}\n </ThemeSettingContext.Provider>\n )\n }\n)\n\nconst ThemeScript = memo(\n ({\n forcedTheme,\n storageKey,\n attribute,\n enableSystem,\n defaultTheme,\n value,\n attrs,\n skipNextHead,\n }: {\n forcedTheme?: string\n storageKey: string\n attribute?: string\n enableSystem?: boolean\n defaultTheme: string\n value?: ValueObject\n attrs: any\n skipNextHead?: boolean\n }) => {\n // Code-golfing the amount of characters in the script\n const optimization = (() => {\n if (attribute === 'class') {\n const removeClasses = attrs.map((t: string) => `d.remove('${t}')`).join(';')\n return `var d=document.documentElement.classList;${removeClasses};`\n }\n return `var d=document.documentElement;`\n })()\n\n const updateDOM = (name: string, literal?: boolean) => {\n name = value?.[name] || name\n const val = literal ? name : `'${name}'`\n\n if (attribute === 'class') {\n return `d.add(${val})`\n }\n\n return `d.setAttribute('${attribute}', ${val})`\n }\n\n const defaultSystem = defaultTheme === 'system'\n\n const contents = (\n <>\n {forcedTheme ? (\n <script\n // nonce={nonce}\n key=\"next-themes-script\"\n dangerouslySetInnerHTML={{\n // These are minified via Terser and then updated by hand, don't recommend\n __html: `!function(){${optimization}${updateDOM(forcedTheme)}}()`,\n }}\n />\n ) : enableSystem ? (\n <script\n // nonce={nonce}\n key=\"next-themes-script\"\n dangerouslySetInnerHTML={{\n __html: `!function(){try {${optimization}var e=localStorage.getItem('${storageKey}');${\n !defaultSystem ? updateDOM(defaultTheme) + ';' : ''\n }if(\"system\"===e||(!e&&${defaultSystem})){var t=\"${MEDIA}\",m=window.matchMedia(t);m.media!==t||m.matches?${updateDOM(\n 'dark'\n )}:${updateDOM('light')}}else if(e) ${\n value ? `var x=${JSON.stringify(value)};` : ''\n }${updateDOM(value ? 'x[e]' : 'e', true)}}catch(e){}}()`,\n }}\n />\n ) : (\n <script\n // nonce={nonce}\n key=\"next-themes-script\"\n dangerouslySetInnerHTML={{\n __html: `!function(){try{${optimization}var e=localStorage.getItem(\"${storageKey}\");if(e){${\n value ? `var x=${JSON.stringify(value)};` : ''\n }${updateDOM(value ? 'x[e]' : 'e', true)}}else{${updateDOM(\n defaultTheme\n )};}}catch(t){}}();`,\n }}\n />\n )}\n </>\n )\n\n if (skipNextHead) return contents\n\n return <NextHead>{contents}</NextHead>\n },\n (prevProps, nextProps) => {\n // Only re-render when forcedTheme changes\n // the rest of the props should be completely stable\n if (prevProps.forcedTheme !== nextProps.forcedTheme) return false\n return true\n }\n)\n"
10
+ "import { useIsomorphicLayoutEffect } from '@tamagui/constants'\nimport { useEvent } from '@tamagui/use-event'\nimport Script from 'next/script'\nimport * as React from 'react'\nimport { memo, useEffect, useMemo, useState } from 'react'\n\nimport { MEDIA, colorSchemes } from './constants'\nimport { getSystemTheme, getTheme } from './helpers'\nimport { ThemeSettingContext } from './ThemeSettingContext'\nimport type { ValueObject } from './types'\nimport type { ThemeProviderProps, UseThemeProps } from './UseThemeProps'\n\nexport const NextThemeProvider: React.FunctionComponent<ThemeProviderProps> = memo(\n ({\n forcedTheme,\n disableTransitionOnChange = false,\n enableSystem = true,\n enableColorScheme = true,\n storageKey = 'theme',\n themes = colorSchemes,\n defaultTheme = enableSystem ? 'system' : 'light',\n attribute = 'class',\n skipNextHead,\n onChangeTheme,\n value = {\n dark: 't_dark',\n light: 't_light',\n },\n children,\n }) => {\n const [theme, setThemeState] = useState(() => getTheme(storageKey, defaultTheme))\n const [resolvedTheme, setResolvedTheme] = useState(() => getTheme(storageKey))\n const attrs = !value ? themes : Object.values(value)\n\n const handleMediaQuery = useEvent((e?) => {\n const _ = getSystemTheme(e)\n const update = () => setResolvedTheme(_)\n if (disableTransitionOnChange) {\n update()\n } else {\n React.startTransition(() => update())\n }\n if (theme === 'system' && !forcedTheme) {\n handleChangeTheme(_, false)\n }\n })\n\n const handleChangeTheme = useEvent(\n (theme, updateStorage = true, updateDOM = true) => {\n let name = value?.[theme] || theme\n\n if (updateStorage) {\n try {\n localStorage.setItem(storageKey, theme)\n } catch (e) {\n // Unsupported\n }\n }\n\n if (theme === 'system' && enableSystem) {\n const resolved = getSystemTheme()\n name = value?.[resolved] || resolved\n }\n\n onChangeTheme?.(name.replace('t_', ''))\n\n if (updateDOM) {\n const d = document.documentElement\n if (attribute === 'class') {\n d.classList.remove(...attrs)\n d.classList.add(name)\n } else {\n d.setAttribute(attribute, name)\n }\n }\n }\n )\n\n useIsomorphicLayoutEffect(() => {\n // Always listen to System preference\n const media = window.matchMedia(MEDIA)\n // Intentionally use deprecated listener methods to support iOS & old browsers\n media.addListener(handleMediaQuery)\n handleMediaQuery(media)\n return () => {\n media.removeListener(handleMediaQuery)\n }\n }, [])\n\n const set = useEvent((newTheme) => {\n if (forcedTheme) {\n handleChangeTheme(newTheme, true, false)\n } else {\n handleChangeTheme(newTheme)\n }\n setThemeState(newTheme)\n })\n\n // localStorage event handling\n useEffect(() => {\n const handleStorage = (e: StorageEvent) => {\n if (e.key !== storageKey) {\n return\n }\n // If default theme set, use it if localstorage === null (happens on local storage manual deletion)\n const theme = e.newValue || defaultTheme\n set(theme)\n }\n window.addEventListener('storage', handleStorage)\n return () => {\n window.removeEventListener('storage', handleStorage)\n }\n }, [defaultTheme, set, storageKey])\n\n // color-scheme handling\n useIsomorphicLayoutEffect(() => {\n if (!enableColorScheme) return\n\n const colorScheme =\n // If theme is forced to light or dark, use that\n forcedTheme && colorSchemes.includes(forcedTheme as 'light' | 'dark')\n ? forcedTheme\n : // If regular theme is light or dark\n theme && colorSchemes.includes(theme)\n ? theme\n : // If theme is system, use the resolved version\n theme === 'system'\n ? resolvedTheme || null\n : null\n\n // color-scheme tells browser how to render built-in elements like forms, scrollbars, etc.\n // if color-scheme is null, this will remove the property\n const userPrefers =\n typeof window !== 'undefined' &&\n window.matchMedia &&\n window.matchMedia('(prefers-color-scheme: dark)').matches\n ? 'dark'\n : 'light'\n\n const wePrefer = colorScheme || 'light'\n\n // avoid running this because it causes full page reflow\n if (userPrefers !== wePrefer) {\n document.documentElement.style.setProperty('color-scheme', colorScheme)\n }\n }, [enableColorScheme, theme, resolvedTheme, forcedTheme])\n\n const toggle = useEvent(() => {\n const order =\n resolvedTheme === 'dark'\n ? ['system', 'light', 'dark']\n : ['system', 'dark', 'light']\n const next = order[(order.indexOf(theme) + 1) % order.length]\n set(next)\n })\n\n const systemTheme = (enableSystem ? resolvedTheme : undefined) as\n | 'light'\n | 'dark'\n | undefined\n\n const contextValue = useMemo(() => {\n const value: UseThemeProps = {\n theme,\n current: theme,\n set,\n toggle,\n forcedTheme,\n resolvedTheme: theme === 'system' ? resolvedTheme : theme,\n themes: enableSystem ? [...themes, 'system'] : (themes as string[]),\n systemTheme,\n } as const\n return value\n }, [\n theme,\n set,\n toggle,\n forcedTheme,\n resolvedTheme,\n enableSystem,\n themes,\n systemTheme,\n ])\n\n return (\n <ThemeSettingContext.Provider value={contextValue}>\n <ThemeScript\n {...{\n forcedTheme,\n storageKey,\n systemTheme: resolvedTheme,\n attribute,\n value,\n enableSystem,\n defaultTheme,\n attrs,\n skipNextHead,\n }}\n />\n {children}\n </ThemeSettingContext.Provider>\n )\n }\n)\n\nconst ThemeScript = memo(\n ({\n forcedTheme,\n storageKey,\n attribute,\n enableSystem,\n defaultTheme,\n value,\n attrs,\n skipNextHead,\n }: {\n forcedTheme?: string\n storageKey: string\n attribute?: string\n enableSystem?: boolean\n defaultTheme: string\n value?: ValueObject\n attrs: any\n skipNextHead?: boolean\n }) => {\n // Code-golfing the amount of characters in the script\n const optimization = (() => {\n if (attribute === 'class') {\n const removeClasses = attrs.map((t: string) => `d.remove('${t}')`).join(';')\n return `var d=document.documentElement.classList;${removeClasses};`\n }\n return `var d=document.documentElement;`\n })()\n\n const updateDOM = (name: string, literal?: boolean) => {\n name = value?.[name] || name\n const val = literal ? name : `'${name}'`\n\n if (attribute === 'class') {\n return `d.add(${val})`\n }\n\n return `d.setAttribute('${attribute}', ${val})`\n }\n\n const defaultSystem = defaultTheme === 'system'\n\n const scriptContent = forcedTheme\n ? `!function(){${optimization}${updateDOM(forcedTheme)}}()`\n : enableSystem\n ? `!function(){try {${optimization}var e=localStorage.getItem('${storageKey}');if(\"system\"===e||(!e&&${defaultSystem})){var t=\"${MEDIA}\",m=window.matchMedia(t);m.media!==t||m.matches?${updateDOM(\n 'dark'\n )}:${updateDOM('light')}}else if(e){${\n value ? `var x=${JSON.stringify(value)};` : ''\n }${updateDOM(value ? 'x[e]' : 'e', true)}}${\n !defaultSystem ? `else{${updateDOM(defaultTheme)}}` : ''\n }}catch(e){}}()`\n : `!function(){try{${optimization}var e=localStorage.getItem(\"${storageKey}\");if(e){${\n value ? `var x=${JSON.stringify(value)};` : ''\n }${updateDOM(value ? 'x[e]' : 'e', true)}}else{${updateDOM(\n defaultTheme\n )};}}catch(t){}}();`\n\n // skipNextHead returns raw script for useServerInsertedHTML usage\n if (skipNextHead) {\n return (\n <script\n key=\"next-themes-script\"\n dangerouslySetInnerHTML={{ __html: scriptContent }}\n />\n )\n }\n\n return (\n <Script\n id=\"next-themes-script\"\n strategy=\"beforeInteractive\"\n dangerouslySetInnerHTML={{ __html: scriptContent }}\n />\n )\n },\n (prevProps, nextProps) => {\n // Only re-render when forcedTheme changes\n // the rest of the props should be completely stable\n if (prevProps.forcedTheme !== nextProps.forcedTheme) return false\n return true\n }\n)\n"
11
11
  ],
12
12
  "version": 3
13
13
  }
@@ -1,5 +1,5 @@
1
- import React from "react";
1
+ import { type Context } from "react";
2
2
  import type { UseThemeProps } from "./UseThemeProps";
3
- export declare const ThemeSettingContext: React.Context<UseThemeProps>;
3
+ export declare const ThemeSettingContext: Context<UseThemeProps>;
4
4
 
5
5
  //# sourceMappingURL=ThemeSettingContext.d.ts.map
@@ -1,13 +1,13 @@
1
1
  {
2
- "mappings": "AAAA,OAAO,WAAW;AAElB,cAAc,qBAAqB;AAEnC,OAAO,cAAMA,qBAAqB,MAAM,QAAQ",
2
+ "mappings": "AAAA,cAA6B,eAAe;AAE5C,cAAc,qBAAqB;AAEnC,OAAO,cAAMA,qBAAqB,QAAQ",
3
3
  "names": [
4
- "ThemeSettingContext: React.Context<UseThemeProps>"
4
+ "ThemeSettingContext: Context<UseThemeProps>"
5
5
  ],
6
6
  "sources": [
7
7
  "src/ThemeSettingContext.tsx"
8
8
  ],
9
9
  "sourcesContent": [
10
- "import React from 'react'\n\nimport type { UseThemeProps } from './UseThemeProps'\n\nexport const ThemeSettingContext: React.Context<UseThemeProps> =\n React.createContext<UseThemeProps>({\n toggle: () => {},\n set: (_) => {},\n themes: [],\n })\n"
10
+ "import { createContext, type Context } from 'react'\n\nimport type { UseThemeProps } from './UseThemeProps'\n\nexport const ThemeSettingContext: Context<UseThemeProps> = createContext<UseThemeProps>({\n toggle: () => {},\n set: (_) => {},\n themes: [],\n})\n"
11
11
  ],
12
12
  "version": 3
13
13
  }
@@ -1,7 +1,7 @@
1
- import React from "react";
1
+ import { type Dispatch, type SetStateAction } from "react";
2
2
  import type { ColorScheme } from "./types";
3
3
  export declare const useRootTheme: ({ fallback }?: {
4
4
  fallback?: ColorScheme;
5
- }) => [ColorScheme, React.Dispatch<React.SetStateAction<ColorScheme>>];
5
+ }) => [ColorScheme, Dispatch<SetStateAction<ColorScheme>>];
6
6
 
7
7
  //# sourceMappingURL=useRootTheme.d.ts.map
@@ -1,11 +1,11 @@
1
1
  {
2
- "mappings": "AAAA,OAAO,WAAW;AAGlB,cAAc,mBAAmB;AAEjC,OAAO,cAAM,eAAgB,EAC3B,aACC;CAAE,WAAW;OACd,aACA,MAAM,SAAS,MAAM,eAAe",
2
+ "mappings": "AAAA,cAAwB,eAAe,sBAAsB;AAG7D,cAAc,mBAAmB;AAEjC,OAAO,cAAM,eAAgB,EAC3B,aACC;CAAE,WAAW;OACd,aACA,SAAS,eAAe",
3
3
  "names": [],
4
4
  "sources": [
5
5
  "src/useRootTheme.tsx"
6
6
  ],
7
7
  "sourcesContent": [
8
- "import React from 'react'\nimport { isClient } from '@tamagui/constants'\n\nimport type { ColorScheme } from './types'\n\nexport const useRootTheme = ({\n fallback = 'light',\n}: { fallback?: ColorScheme } = {}): [\n ColorScheme,\n React.Dispatch<React.SetStateAction<ColorScheme>>,\n] => {\n let initialVal = fallback\n\n if (isClient) {\n // @ts-ignore\n const classes = [...document.documentElement.classList]\n initialVal = classes.includes(`t_dark`)\n ? 'dark'\n : classes.includes(`t_light`)\n ? 'light'\n : fallback\n }\n\n return React.useState<ColorScheme>(initialVal)\n}\n"
8
+ "import { useState, type Dispatch, type SetStateAction } from 'react'\nimport { isClient } from '@tamagui/constants'\n\nimport type { ColorScheme } from './types'\n\nexport const useRootTheme = ({\n fallback = 'light',\n}: { fallback?: ColorScheme } = {}): [\n ColorScheme,\n Dispatch<SetStateAction<ColorScheme>>,\n] => {\n let initialVal = fallback\n\n if (isClient) {\n const classes = document.documentElement.classList\n initialVal = classes.contains('t_dark')\n ? 'dark'\n : classes.contains('t_light')\n ? 'light'\n : fallback\n }\n\n return useState<ColorScheme>(initialVal)\n}\n"
9
9
  ],
10
10
  "version": 3
11
11
  }
@@ -5,7 +5,7 @@
5
5
  "src/useTheme.tsx"
6
6
  ],
7
7
  "sourcesContent": [
8
- "import React from 'react'\n\nimport { ThemeSettingContext } from './ThemeSettingContext'\nimport type { UseThemeProps } from './UseThemeProps'\n\n/**\n * @deprecated renamed to `useThemeSetting` to avoid confusion with core `useTheme` hook\n */\n\nexport const useTheme = (): UseThemeProps => React.useContext(ThemeSettingContext)\n\nexport const useThemeSetting = (): UseThemeProps => React.useContext(ThemeSettingContext)\n"
8
+ "import { useContext } from 'react'\n\nimport { ThemeSettingContext } from './ThemeSettingContext'\nimport type { UseThemeProps } from './UseThemeProps'\n\n/**\n * @deprecated renamed to `useThemeSetting` to avoid confusion with core `useTheme` hook\n */\n\nexport const useTheme = (): UseThemeProps => useContext(ThemeSettingContext)\n\nexport const useThemeSetting = (): UseThemeProps => useContext(ThemeSettingContext)\n"
9
9
  ],
10
10
  "version": 3
11
11
  }