@vxrn/color-scheme 1.2.28 → 1.2.31

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 (46) hide show
  1. package/dist/cjs/index.cjs +34 -58
  2. package/dist/cjs/index.js +27 -56
  3. package/dist/cjs/index.js.map +2 -2
  4. package/dist/cjs/index.native.js +23 -52
  5. package/dist/cjs/index.native.js.map +1 -1
  6. package/dist/cjs/systemScheme.cjs +40 -0
  7. package/dist/cjs/systemScheme.js +34 -0
  8. package/dist/cjs/systemScheme.js.map +6 -0
  9. package/dist/cjs/systemScheme.native.js +48 -0
  10. package/dist/cjs/systemScheme.native.js.map +1 -0
  11. package/dist/cjs/userScheme.cjs +95 -0
  12. package/dist/cjs/userScheme.js +80 -0
  13. package/dist/cjs/userScheme.js.map +6 -0
  14. package/dist/cjs/userScheme.native.js +109 -0
  15. package/dist/cjs/userScheme.native.js.map +1 -0
  16. package/dist/esm/index.js +29 -62
  17. package/dist/esm/index.js.map +2 -2
  18. package/dist/esm/index.mjs +28 -52
  19. package/dist/esm/index.mjs.map +1 -1
  20. package/dist/esm/index.native.js +18 -47
  21. package/dist/esm/index.native.js.map +1 -1
  22. package/dist/esm/systemScheme.js +19 -0
  23. package/dist/esm/systemScheme.js.map +6 -0
  24. package/dist/esm/systemScheme.mjs +16 -0
  25. package/dist/esm/systemScheme.mjs.map +1 -0
  26. package/dist/esm/systemScheme.native.js +21 -0
  27. package/dist/esm/systemScheme.native.js.map +1 -0
  28. package/dist/esm/userScheme.js +67 -0
  29. package/dist/esm/userScheme.js.map +6 -0
  30. package/dist/esm/userScheme.mjs +68 -0
  31. package/dist/esm/userScheme.mjs.map +1 -0
  32. package/dist/esm/userScheme.native.js +80 -0
  33. package/dist/esm/userScheme.native.js.map +1 -0
  34. package/package.json +3 -4
  35. package/src/index.tsx +28 -85
  36. package/src/systemScheme.native.ts +21 -0
  37. package/src/systemScheme.ts +26 -0
  38. package/src/userScheme.ts +149 -0
  39. package/types/index.d.ts +9 -15
  40. package/types/index.d.ts.map +1 -1
  41. package/types/systemScheme.d.ts +4 -0
  42. package/types/systemScheme.d.ts.map +1 -0
  43. package/types/systemScheme.native.d.ts +4 -0
  44. package/types/systemScheme.native.d.ts.map +1 -0
  45. package/types/userScheme.d.ts +20 -0
  46. package/types/userScheme.d.ts.map +1 -0
@@ -22,91 +22,67 @@ var index_exports = {};
22
22
  __export(index_exports, {
23
23
  MetaTheme: () => MetaTheme,
24
24
  SchemeProvider: () => SchemeProvider,
25
- clearColorSchemeSetting: () => clearColorSchemeSetting,
26
- getColorScheme: () => import_universal_color_scheme2.getColorScheme,
27
- onColorSchemeChange: () => import_universal_color_scheme2.onColorSchemeChange,
28
- setSchemeSetting: () => setSchemeSetting,
29
- useColorScheme: () => useColorScheme,
30
- useSchemeSetting: () => useSchemeSetting
25
+ getSystemScheme: () => import_systemScheme.getSystemScheme,
26
+ getUserScheme: () => import_userScheme2.getUserScheme,
27
+ onUserSchemeChange: () => import_userScheme2.onUserSchemeChange,
28
+ setUserScheme: () => import_userScheme2.setUserScheme,
29
+ useSystemScheme: () => import_systemScheme.useSystemScheme,
30
+ useUserScheme: () => import_userScheme2.useUserScheme
31
31
  });
32
32
  module.exports = __toCommonJS(index_exports);
33
- var import_universal_color_scheme = require("@vxrn/universal-color-scheme"),
34
- import_use_isomorphic_layout_effect = require("@vxrn/use-isomorphic-layout-effect"),
35
- import_react = require("react"),
36
- import_universal_color_scheme2 = require("@vxrn/universal-color-scheme"),
33
+ var import_use_isomorphic_layout_effect = require("@vxrn/use-isomorphic-layout-effect"),
34
+ import_userScheme = require("./userScheme.cjs"),
35
+ import_systemScheme = require("./systemScheme.cjs"),
36
+ import_userScheme2 = require("./userScheme.cjs"),
37
37
  import_jsx_runtime = require("react/jsx-runtime");
38
- const storageKey = "vxrn-scheme",
39
- clearColorSchemeSetting = () => {
40
- setSchemeSetting("system");
41
- },
42
- getSetting = () => typeof localStorage < "u" && localStorage.getItem(storageKey) || "system",
43
- SchemeContext = (0, import_react.createContext)({
44
- setting: "system",
45
- scheme: "light"
46
- }),
47
- useColorScheme = () => {
48
- const [state] = (0, import_universal_color_scheme.useColorScheme)();
49
- return [state, setSchemeSetting];
50
- };
51
- function useSchemeSetting() {
52
- return [(0, import_react.useContext)(SchemeContext), setSchemeSetting];
53
- }
54
- function setSchemeSetting(next) {
55
- typeof localStorage < "u" && localStorage.setItem(storageKey, next), (0, import_universal_color_scheme.setColorScheme)(next);
56
- }
38
+ const storageKey = "vxrn-scheme";
57
39
  function SchemeProvider({
58
40
  children,
59
- // defaults to tamagui-compatible
60
41
  getClassName = name => `t_${name}`
61
42
  }) {
62
- const [colorSchemeSetting] = (0, import_universal_color_scheme.useColorSchemeSetting)(),
63
- [colorScheme] = useColorScheme();
43
+ const {
44
+ value
45
+ } = (0, import_userScheme.useUserScheme)();
64
46
  return (0, import_use_isomorphic_layout_effect.useIsomorphicLayoutEffect)(() => {
65
- (0, import_universal_color_scheme.setColorScheme)(getSetting());
66
- const toAdd = getClassName(colorScheme),
47
+ const toAdd = getClassName(value),
67
48
  {
68
49
  classList
69
50
  } = document.documentElement;
70
51
  if (!classList.contains(toAdd)) {
71
- const toRemove = colorScheme === "light" ? "dark" : "light";
52
+ const toRemove = value === "light" ? "dark" : "light";
72
53
  classList.remove(getClassName(toRemove)), classList.add(toAdd);
73
54
  }
74
- }, [colorScheme]), /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
55
+ }, [value]), /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
75
56
  children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)("script", {
76
57
  dangerouslySetInnerHTML: {
77
58
  __html: `let d = document.documentElement.classList
78
- d.remove('${getClassName("light")}')
79
- d.remove('${getClassName("dark")}')
80
- let e = localStorage.getItem('${storageKey}')
81
- let t =
82
- 'system' === e || !e
83
- ? window.matchMedia('(prefers-color-scheme: dark)').matches
84
- : e === 'dark'
85
- t ? d.add('${getClassName("dark")}') : d.add('${getClassName("light")}')
86
- `
59
+ d.remove('${getClassName("light")}')
60
+ d.remove('${getClassName("dark")}')
61
+ let e = localStorage.getItem('${storageKey}')
62
+ let t = 'system' === e || !e
63
+ ? window.matchMedia('(prefers-color-scheme: dark)').matches
64
+ : e === 'dark'
65
+ t ? d.add('${getClassName("dark")}') : d.add('${getClassName("light")}')
66
+ `
87
67
  }
88
- }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(SchemeContext.Provider, {
89
- value: (0, import_react.useMemo)(() => ({
90
- scheme: colorScheme,
91
- setting: colorSchemeSetting
92
- }), [colorScheme, colorSchemeSetting]),
93
- children
94
- })]
68
+ }), children]
95
69
  });
96
70
  }
97
- const MetaTheme = ({
71
+ function MetaTheme({
98
72
  color,
99
73
  darkColor,
100
74
  lightColor
101
- }) => {
102
- const [colorScheme] = useColorScheme();
75
+ }) {
76
+ const {
77
+ value
78
+ } = (0, import_userScheme.useUserScheme)();
103
79
  return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
104
80
  children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)("meta", {
105
81
  itemProp: "__deopt",
106
82
  suppressHydrationWarning: !0,
107
83
  id: "vxrn-theme-color",
108
84
  name: "theme-color",
109
- content: color ?? (colorScheme === "dark" ? darkColor : lightColor)
85
+ content: color ?? (value === "dark" ? darkColor : lightColor)
110
86
  }), /* @__PURE__ */(0, import_jsx_runtime.jsx)("script", {
111
87
  id: "meta-theme-hydrate",
112
88
  dangerouslySetInnerHTML: {
@@ -115,8 +91,8 @@ let dc = document.getElementById('vxrn-theme-color')
115
91
  let e1 = localStorage.getItem('${storageKey}')
116
92
  let isD = 'system' === e1 || !e1 ? window.matchMedia('(prefers-color-scheme: dark)').matches : e1 === 'dark'
117
93
  dc.setAttribute('content', isD ? '${darkColor}' : '${lightColor}')
118
- `
94
+ `
119
95
  }
120
96
  })]
121
97
  });
122
- };
98
+ }
package/dist/cjs/index.js CHANGED
@@ -16,82 +16,53 @@ var index_exports = {};
16
16
  __export(index_exports, {
17
17
  MetaTheme: () => MetaTheme,
18
18
  SchemeProvider: () => SchemeProvider,
19
- clearColorSchemeSetting: () => clearColorSchemeSetting,
20
- getColorScheme: () => import_universal_color_scheme2.getColorScheme,
21
- onColorSchemeChange: () => import_universal_color_scheme2.onColorSchemeChange,
22
- setSchemeSetting: () => setSchemeSetting,
23
- useColorScheme: () => useColorScheme,
24
- useSchemeSetting: () => useSchemeSetting
19
+ getSystemScheme: () => import_systemScheme.getSystemScheme,
20
+ getUserScheme: () => import_userScheme2.getUserScheme,
21
+ onUserSchemeChange: () => import_userScheme2.onUserSchemeChange,
22
+ setUserScheme: () => import_userScheme2.setUserScheme,
23
+ useSystemScheme: () => import_systemScheme.useSystemScheme,
24
+ useUserScheme: () => import_userScheme2.useUserScheme
25
25
  });
26
26
  module.exports = __toCommonJS(index_exports);
27
- var import_universal_color_scheme = require("@vxrn/universal-color-scheme"), import_use_isomorphic_layout_effect = require("@vxrn/use-isomorphic-layout-effect"), import_react = require("react"), import_universal_color_scheme2 = require("@vxrn/universal-color-scheme"), import_jsx_runtime = require("react/jsx-runtime");
28
- const storageKey = "vxrn-scheme", clearColorSchemeSetting = () => {
29
- setSchemeSetting("system");
30
- }, getSetting = () => typeof localStorage < "u" && localStorage.getItem(storageKey) || "system", SchemeContext = (0, import_react.createContext)({
31
- setting: "system",
32
- scheme: "light"
33
- }), useColorScheme = () => {
34
- const [state] = (0, import_universal_color_scheme.useColorScheme)();
35
- return [state, setSchemeSetting];
36
- };
37
- function useSchemeSetting() {
38
- return [(0, import_react.useContext)(SchemeContext), setSchemeSetting];
39
- }
40
- function setSchemeSetting(next) {
41
- typeof localStorage < "u" && localStorage.setItem(storageKey, next), (0, import_universal_color_scheme.setColorScheme)(next);
42
- }
27
+ var import_use_isomorphic_layout_effect = require("@vxrn/use-isomorphic-layout-effect"), import_userScheme = require("./userScheme"), import_systemScheme = require("./systemScheme"), import_userScheme2 = require("./userScheme"), import_jsx_runtime = require("react/jsx-runtime");
28
+ const storageKey = "vxrn-scheme";
43
29
  function SchemeProvider({
44
30
  children,
45
- // defaults to tamagui-compatible
46
31
  getClassName = (name) => `t_${name}`
47
32
  }) {
48
- const [colorSchemeSetting] = (0, import_universal_color_scheme.useColorSchemeSetting)(), [colorScheme] = useColorScheme();
33
+ const { value } = (0, import_userScheme.useUserScheme)();
49
34
  return (0, import_use_isomorphic_layout_effect.useIsomorphicLayoutEffect)(() => {
50
- (0, import_universal_color_scheme.setColorScheme)(getSetting());
51
- const toAdd = getClassName(colorScheme), { classList } = document.documentElement;
35
+ const toAdd = getClassName(value), { classList } = document.documentElement;
52
36
  if (!classList.contains(toAdd)) {
53
- const toRemove = colorScheme === "light" ? "dark" : "light";
37
+ const toRemove = value === "light" ? "dark" : "light";
54
38
  classList.remove(getClassName(toRemove)), classList.add(toAdd);
55
39
  }
56
- }, [colorScheme]), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
40
+ }, [value]), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
57
41
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
58
42
  "script",
59
43
  {
60
44
  dangerouslySetInnerHTML: {
61
45
  __html: `let d = document.documentElement.classList
62
- d.remove('${getClassName("light")}')
63
- d.remove('${getClassName("dark")}')
64
- let e = localStorage.getItem('${storageKey}')
65
- let t =
66
- 'system' === e || !e
67
- ? window.matchMedia('(prefers-color-scheme: dark)').matches
68
- : e === 'dark'
69
- t ? d.add('${getClassName("dark")}') : d.add('${getClassName("light")}')
70
- `
46
+ d.remove('${getClassName("light")}')
47
+ d.remove('${getClassName("dark")}')
48
+ let e = localStorage.getItem('${storageKey}')
49
+ let t = 'system' === e || !e
50
+ ? window.matchMedia('(prefers-color-scheme: dark)').matches
51
+ : e === 'dark'
52
+ t ? d.add('${getClassName("dark")}') : d.add('${getClassName("light")}')
53
+ `
71
54
  }
72
55
  }
73
56
  ),
74
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
75
- SchemeContext.Provider,
76
- {
77
- value: (0, import_react.useMemo)(
78
- () => ({
79
- scheme: colorScheme,
80
- setting: colorSchemeSetting
81
- }),
82
- [colorScheme, colorSchemeSetting]
83
- ),
84
- children
85
- }
86
- )
57
+ children
87
58
  ] });
88
59
  }
89
- const MetaTheme = ({
60
+ function MetaTheme({
90
61
  color,
91
62
  darkColor,
92
63
  lightColor
93
- }) => {
94
- const [colorScheme] = useColorScheme();
64
+ }) {
65
+ const { value } = (0, import_userScheme.useUserScheme)();
95
66
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
96
67
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
97
68
  "meta",
@@ -100,7 +71,7 @@ const MetaTheme = ({
100
71
  suppressHydrationWarning: !0,
101
72
  id: "vxrn-theme-color",
102
73
  name: "theme-color",
103
- content: color ?? (colorScheme === "dark" ? darkColor : lightColor)
74
+ content: color ?? (value === "dark" ? darkColor : lightColor)
104
75
  }
105
76
  ),
106
77
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
@@ -113,10 +84,10 @@ let dc = document.getElementById('vxrn-theme-color')
113
84
  let e1 = localStorage.getItem('${storageKey}')
114
85
  let isD = 'system' === e1 || !e1 ? window.matchMedia('(prefers-color-scheme: dark)').matches : e1 === 'dark'
115
86
  dc.setAttribute('content', isD ? '${darkColor}' : '${lightColor}')
116
- `
87
+ `
117
88
  }
118
89
  }
119
90
  )
120
91
  ] });
121
- };
92
+ }
122
93
  //# sourceMappingURL=index.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.tsx"],
4
- "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oCAKO,yCACP,sCAA0C,+CAC1C,eAAmD,kBAKnDA,iCAAoD,yCAgEhD;AA9DJ,MAAM,aAAa,eAEN,0BAA0B,MAAM;AAC3C,mBAAiB,QAAQ;AAC3B,GAEM,aAAa,MAChB,OAAO,eAAiB,OAAgB,aAAa,QAAQ,UAAU,KACxE,UAEI,oBAAgB,4BAGnB;AAAA,EACD,SAAS;AAAA,EACT,QAAQ;AACV,CAAC,GAEY,iBAAiB,MAAM;AAClC,QAAM,CAAC,KAAK,QAAI,8BAAAC,gBAAmB;AACnC,SAAO,CAAC,OAAO,gBAAgB;AACjC;AAEO,SAAS,mBAAmB;AAEjC,SAAO,KADQ,yBAAW,aAAa,GACvB,gBAAgB;AAClC;AAEO,SAAS,iBAAiB,MAAqB;AACpD,EAAI,OAAO,eAAiB,OAC1B,aAAa,QAAQ,YAAY,IAAI,OAEvC,8CAAe,IAAI;AACrB;AAEO,SAAS,eAAe;AAAA,EAC7B;AAAA;AAAA,EAEA,eAAe,CAAC,SAAS,KAAK,IAAI;AACpC,GAGG;AACD,QAAM,CAAC,kBAAkB,QAAI,qDAAsB,GAC7C,CAAC,WAAW,IAAI,eAAe;AAGnC,4EAA0B,MAAM;AAE9B,sDAAe,WAAW,CAAC;AAE3B,UAAM,QAAQ,aAAa,WAAW,GAChC,EAAE,UAAU,IAAI,SAAS;AAC/B,QAAI,CAAC,UAAU,SAAS,KAAK,GAAG;AAC9B,YAAM,WAAW,gBAAgB,UAAU,SAAS;AACpD,gBAAU,OAAO,aAAa,QAAQ,CAAC,GACvC,UAAU,IAAI,KAAK;AAAA,IACrB;AAAA,EACF,GAAG,CAAC,WAAW,CAAC,GAIhB,4EAEI;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,yBAAyB;AAAA,UACvB,QAAQ;AAAA,sBACE,aAAa,OAAO,CAAC;AAAA,wBACnB,aAAa,MAAM,CAAC;AAAA,0CACF,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA,uBAK7B,aAAa,MAAM,CAAC,eAAe,aAAa,OAAO,CAAC;AAAA;AAAA,QAErE;AAAA;AAAA,IACF;AAAA,IAEF;AAAA,MAAC,cAAc;AAAA,MAAd;AAAA,QACC,WAAO;AAAA,UACL,OAAO;AAAA,YACL,QAAQ;AAAA,YACR,SAAS;AAAA,UACX;AAAA,UACA,CAAC,aAAa,kBAAkB;AAAA,QAClC;AAAA,QAEC;AAAA;AAAA,IACH;AAAA,KACF;AAEJ;AAEO,MAAM,YAAY,CAAC;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AACF,MAIM;AACJ,QAAM,CAAC,WAAW,IAAI,eAAe;AAErC,SACE,4EAGE;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,UAAS;AAAA,QAGT,0BAAwB;AAAA,QACxB,IAAG;AAAA,QACH,MAAK;AAAA,QACL,SAAS,UAAU,gBAAgB,SAAS,YAAY;AAAA;AAAA,IAC1D;AAAA,IAGA;AAAA,MAAC;AAAA;AAAA,QACC,IAAG;AAAA,QACH,yBAAyB;AAAA,UACvB,QAAQ;AAAA;AAAA,iCAEe,UAAU;AAAA;AAAA,oCAEP,SAAS,QAAQ,UAAU;AAAA;AAAA,QAEvD;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;",
5
- "names": ["import_universal_color_scheme", "useColorSchemeBase"]
4
+ "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0CAA0C,+CAE1C,oBAA8B,yBAO9B,sBAAiD,2BACjDA,qBAAgF,yBA0B5E;AAxBJ,MAAM,aAAa;AAEZ,SAAS,eAAe;AAAA,EAC7B;AAAA,EACA,eAAe,CAAC,SAAS,KAAK,IAAI;AACpC,GAGG;AACD,QAAM,EAAE,MAAM,QAAI,iCAAc;AAG9B,4EAA0B,MAAM;AAC9B,UAAM,QAAQ,aAAa,KAAK,GAC1B,EAAE,UAAU,IAAI,SAAS;AAC/B,QAAI,CAAC,UAAU,SAAS,KAAK,GAAG;AAC9B,YAAM,WAAW,UAAU,UAAU,SAAS;AAC9C,gBAAU,OAAO,aAAa,QAAQ,CAAC,GACvC,UAAU,IAAI,KAAK;AAAA,IACrB;AAAA,EACF,GAAG,CAAC,KAAK,CAAC,GAIV,4EAEI;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,yBAAyB;AAAA,UACvB,QAAQ;AAAA,YACR,aAAa,OAAO,CAAC;AAAA,YACrB,aAAa,MAAM,CAAC;AAAA,gCACA,UAAU;AAAA;AAAA;AAAA;AAAA,aAI7B,aAAa,MAAM,CAAC,eAAe,aAAa,OAAO,CAAC;AAAA;AAAA,QAE3D;AAAA;AAAA,IACF;AAAA,IAED;AAAA,KACH;AAEJ;AAEO,SAAS,UAAU;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,QAAM,EAAE,MAAM,QAAI,iCAAc;AAEhC,SACE,4EACE;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,UAAS;AAAA,QACT,0BAAwB;AAAA,QACxB,IAAG;AAAA,QACH,MAAK;AAAA,QACL,SAAS,UAAU,UAAU,SAAS,YAAY;AAAA;AAAA,IACpD;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,IAAG;AAAA,QACH,yBAAyB;AAAA,UACvB,QAAQ;AAAA;AAAA,iCAEe,UAAU;AAAA;AAAA,oCAEP,SAAS,QAAQ,UAAU;AAAA;AAAA,QAEvD;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;",
5
+ "names": ["import_userScheme"]
6
6
  }
@@ -24,80 +24,51 @@ var index_exports = {};
24
24
  __export(index_exports, {
25
25
  MetaTheme: () => MetaTheme,
26
26
  SchemeProvider: () => SchemeProvider,
27
- clearColorSchemeSetting: () => clearColorSchemeSetting,
28
- getColorScheme: () => import_universal_color_scheme2.getColorScheme,
29
- onColorSchemeChange: () => import_universal_color_scheme2.onColorSchemeChange,
30
- setSchemeSetting: () => setSchemeSetting,
31
- useColorScheme: () => useColorScheme,
32
- useSchemeSetting: () => useSchemeSetting
27
+ getSystemScheme: () => import_systemScheme.getSystemScheme,
28
+ getUserScheme: () => import_userScheme2.getUserScheme,
29
+ onUserSchemeChange: () => import_userScheme2.onUserSchemeChange,
30
+ setUserScheme: () => import_userScheme2.setUserScheme,
31
+ useSystemScheme: () => import_systemScheme.useSystemScheme,
32
+ useUserScheme: () => import_userScheme2.useUserScheme
33
33
  });
34
34
  module.exports = __toCommonJS(index_exports);
35
35
  var import_jsx_runtime = require("react/jsx-runtime"),
36
- import_universal_color_scheme = require("@vxrn/universal-color-scheme"),
37
36
  import_use_isomorphic_layout_effect = require("@vxrn/use-isomorphic-layout-effect"),
38
- import_react = require("react"),
39
- import_universal_color_scheme2 = require("@vxrn/universal-color-scheme"),
40
- storageKey = "vxrn-scheme",
41
- clearColorSchemeSetting = function () {
42
- setSchemeSetting("system");
43
- };
44
- var SchemeContext = /* @__PURE__ */(0, import_react.createContext)({
45
- setting: "system",
46
- scheme: "light"
47
- }),
48
- useColorScheme = function () {
49
- var [state] = (0, import_universal_color_scheme.useColorScheme)();
50
- return [state, setSchemeSetting];
51
- };
52
- function useSchemeSetting() {
53
- var values = (0, import_react.useContext)(SchemeContext);
54
- return [values, setSchemeSetting];
55
- }
56
- function setSchemeSetting(next) {
57
- typeof localStorage < "u" && localStorage.setItem(storageKey, next), (0, import_universal_color_scheme.setColorScheme)(next);
58
- }
37
+ import_userScheme = require("./userScheme.native.js"),
38
+ import_systemScheme = require("./systemScheme.native.js"),
39
+ import_userScheme2 = require("./userScheme.native.js"),
40
+ storageKey = "vxrn-scheme";
59
41
  function SchemeProvider(param) {
60
42
  var {
61
43
  children,
62
- // defaults to tamagui-compatible
63
44
  getClassName = function (name) {
64
45
  return `t_${name}`;
65
46
  }
66
47
  } = param,
67
- [colorSchemeSetting] = (0, import_universal_color_scheme.useColorSchemeSetting)(),
68
- [colorScheme] = useColorScheme();
48
+ {
49
+ value
50
+ } = (0, import_userScheme.useUserScheme)();
69
51
  return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
70
- children: [null, /* @__PURE__ */(0, import_jsx_runtime.jsx)(SchemeContext.Provider, {
71
- value: (0, import_react.useMemo)(function () {
72
- return {
73
- scheme: colorScheme,
74
- setting: colorSchemeSetting
75
- };
76
- }, [colorScheme, colorSchemeSetting]),
77
- children
78
- })]
52
+ children: [null, children]
79
53
  });
80
54
  }
81
- var MetaTheme = function (param) {
55
+ function MetaTheme(param) {
82
56
  var {
83
57
  color,
84
58
  darkColor,
85
59
  lightColor
86
60
  } = param,
87
- [colorScheme] = useColorScheme();
61
+ {
62
+ value
63
+ } = (0, import_userScheme.useUserScheme)();
88
64
  return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
89
- children: [/* itemProp removes hoisting - react wasnt de-duping it properly causing two in DOM */
90
- /* maybe bug in safari or react */
91
- /* @__PURE__ */(0, import_jsx_runtime.jsx)("meta", {
65
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)("meta", {
92
66
  itemProp: "__deopt",
93
- // because the script below runs before render it actually ruins our nice ssr logic here
94
- // instead we just avoid the warning its a single tag
95
67
  suppressHydrationWarning: !0,
96
68
  id: "vxrn-theme-color",
97
69
  name: "theme-color",
98
- content: color ?? (colorScheme === "dark" ? darkColor : lightColor)
99
- }), /* ssr compat theme-color */
100
- /* @__PURE__ */(0, import_jsx_runtime.jsx)("script", {
70
+ content: color ?? (value === "dark" ? darkColor : lightColor)
71
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)("script", {
101
72
  id: "meta-theme-hydrate",
102
73
  dangerouslySetInnerHTML: {
103
74
  __html: `
@@ -105,9 +76,9 @@ let dc = document.getElementById('vxrn-theme-color')
105
76
  let e1 = localStorage.getItem('${storageKey}')
106
77
  let isD = 'system' === e1 || !e1 ? window.matchMedia('(prefers-color-scheme: dark)').matches : e1 === 'dark'
107
78
  dc.setAttribute('content', isD ? '${darkColor}' : '${lightColor}')
108
- `
79
+ `
109
80
  }
110
81
  })]
111
82
  });
112
- };
83
+ }
113
84
  //# sourceMappingURL=index.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","index_exports","__export","MetaTheme","SchemeProvider","clearColorSchemeSetting","getColorScheme","import_universal_color_scheme2","onColorSchemeChange","setSchemeSetting","useColorScheme","useSchemeSetting","module","exports","import_jsx_runtime","require","import_universal_color_scheme","import_use_isomorphic_layout_effect","import_react","storageKey","SchemeContext","createContext","setting","scheme","state","values","useContext","next","localStorage","setItem","setColorScheme","param","children","getClassName","name","colorSchemeSetting","useColorSchemeSetting","colorScheme","jsxs","Fragment","jsx","Provider","useMemo","color","darkColor","lightColor","itemProp","suppressHydrationWarning","id","content","dangerouslySetInnerHTML","__html"],"sources":["../../src/index.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","index_exports","__export","MetaTheme","SchemeProvider","getSystemScheme","import_systemScheme","getUserScheme","import_userScheme2","onUserSchemeChange","setUserScheme","useSystemScheme","useUserScheme","module","exports","import_jsx_runtime","require","import_use_isomorphic_layout_effect","import_userScheme","storageKey","param","children","getClassName","name","jsxs","Fragment","color","darkColor","lightColor","jsx","itemProp","suppressHydrationWarning","id","content","dangerouslySetInnerHTML","__html"],"sources":["../../src/index.tsx"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,aAAA;AAAAC,QAAA,CAAAD,aAAA;EAAAE,SAAA,EAAAA,CAAA,KAAAA,SAAA;EAAAC,cAAA,EAAAA,CAAA,KAAAA,cAAA;EAAAC,eAAA,EAAAA,CAAA,KAAAC,mBAAA,CAAAD,eAAA;EAAAE,aAAA,EAAAA,CAAA,KAAAC,kBAAA,CAAAD,aAAA;EAAAE,kBAAA,EAAAA,CAAA,KAAAD,kBAAA,CAAAC,kBAAA;EAAAC,aAAA,EAAAA,CAAA,KAAAF,kBAAA,CAAAE,aAAA;EAAAC,eAAA,EAAAA,CAAA,KAAAL,mBAAA,CAAAK,eAAA;EAAAC,aAAA,EAAAA,CAAA,KAAAJ,kBAAA,CAAAI;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAlB,YAAA,CAAAK,aAA0C;AAY1C,IAAAc,kBAAmB,GAAAC,OAAA;EAAAC,mCAAA,GAAAD,OAAA;EAAAE,iBAAA,GAAAF,OAAA;EAAAV,mBAAA,GAAAU,OAAA;EAAAR,kBAAA,GAAAQ,OAAA;EAAAG,UAAA;AAEZ,SAASf,eAAegB,KAAA;EAC7B;MAAAC,QAAA;MAAAC,YAAA,YAAAA,CAAAC,IAAA;QACA,YAAAA,IAAgB;MAClB;IAGG,IAAAH,KAAA;IAAA;MAAApB;IAAA,QAAAkB,iBAAA,CAAAN,aAAA;EACD,OAAM,eAAY,IAAAG,kBAAA,CAAAS,IAAA,EAAAT,kBAAc,CAAAU,QAAA;IAG9BJ,QAAA,GACE,IAAM,EAENA,QAAK;EAEH;AACmB;AACrB,SACElB,SAIJA,CAAAiB,KAAA;EAEI;MAAAM,KAAA;MAAAC,SAAA;MAAAC;IAAA,IAAAR,KAAA;IAAA;MAAApB;IAAA,QAAAkB,iBAAA,CAAAN,aAAA;EAAA,OAAC,mBAAAG,kBAAA,CAAAS,IAAA,EAAAT,kBAAA,CAAAU,QAAA;IAAAJ,QAAA,kBACC,IAAAN,kBAAyB,CAAAc,GAAA;MAAAC,QACvB,EAAQ;MAAAC,wBACY,EAAC;MAAAC,EAAA,EACrB,kBAAa;MAAOT,IAAA;MACUU,OAAA,EAAAP,KAAA,KAAA1B,KAAA,cAAA2B,SAAA,GAAAC,UAAA;IAAA,uBAAAb,kBAAA,CAAAc,GAAA;MAAAG,EAAA,sBAIV;MAAqCE,uBAAA;QAE3DC,MAAA;AAAA;AAAA,iCACFhB,UAAA;AAAA;AAED,oCACHQ,SAAA,QAAAC,UAAA;AAEJ;MAEO;IACL;EAEA;AACF","ignoreList":[]}
@@ -0,0 +1,40 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all) __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: !0
9
+ });
10
+ },
11
+ __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
13
+ get: () => from[key],
14
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
+ });
16
+ return to;
17
+ };
18
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
19
+ value: !0
20
+ }), mod);
21
+ var systemScheme_exports = {};
22
+ __export(systemScheme_exports, {
23
+ getSystemScheme: () => getSystemScheme,
24
+ useSystemScheme: () => useSystemScheme
25
+ });
26
+ module.exports = __toCommonJS(systemScheme_exports);
27
+ var import_use_isomorphic_layout_effect = require("@vxrn/use-isomorphic-layout-effect"),
28
+ import_react = require("react");
29
+ const media = typeof window < "u" && window.matchMedia ? window.matchMedia("(prefers-color-scheme: dark)") : null;
30
+ function getSystemScheme() {
31
+ return media?.matches ? "dark" : "light";
32
+ }
33
+ function useSystemScheme() {
34
+ const [scheme, setScheme] = (0, import_react.useState)("light");
35
+ return (0, import_use_isomorphic_layout_effect.useIsomorphicLayoutEffect)(() => {
36
+ setScheme(getSystemScheme());
37
+ const onChange = () => setScheme(getSystemScheme());
38
+ return media?.addEventListener("change", onChange), () => media?.removeEventListener("change", onChange);
39
+ }, []), scheme;
40
+ }
@@ -0,0 +1,34 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: !0 });
8
+ }, __copyProps = (to, from, except, desc) => {
9
+ if (from && typeof from == "object" || typeof from == "function")
10
+ for (let key of __getOwnPropNames(from))
11
+ !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
15
+ var systemScheme_exports = {};
16
+ __export(systemScheme_exports, {
17
+ getSystemScheme: () => getSystemScheme,
18
+ useSystemScheme: () => useSystemScheme
19
+ });
20
+ module.exports = __toCommonJS(systemScheme_exports);
21
+ var import_use_isomorphic_layout_effect = require("@vxrn/use-isomorphic-layout-effect"), import_react = require("react");
22
+ const media = typeof window < "u" && window.matchMedia ? window.matchMedia("(prefers-color-scheme: dark)") : null;
23
+ function getSystemScheme() {
24
+ return media?.matches ? "dark" : "light";
25
+ }
26
+ function useSystemScheme() {
27
+ const [scheme, setScheme] = (0, import_react.useState)("light");
28
+ return (0, import_use_isomorphic_layout_effect.useIsomorphicLayoutEffect)(() => {
29
+ setScheme(getSystemScheme());
30
+ const onChange = () => setScheme(getSystemScheme());
31
+ return media?.addEventListener("change", onChange), () => media?.removeEventListener("change", onChange);
32
+ }, []), scheme;
33
+ }
34
+ //# sourceMappingURL=systemScheme.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/systemScheme.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0CAA0C,+CAC1C,eAAyB;AAIzB,MAAM,QACJ,OAAO,SAAW,OAAe,OAAO,aACpC,OAAO,WAAW,8BAA8B,IAChD;AAEC,SAAS,kBAA0B;AACxC,SAAO,OAAO,UAAU,SAAS;AACnC;AAEO,SAAS,kBAA0B;AACxC,QAAM,CAAC,QAAQ,SAAS,QAAI,uBAAiB,OAAO;AAEpD,4EAA0B,MAAM;AAC9B,cAAU,gBAAgB,CAAC;AAC3B,UAAM,WAAW,MAAM,UAAU,gBAAgB,CAAC;AAClD,kBAAO,iBAAiB,UAAU,QAAQ,GACnC,MAAM,OAAO,oBAAoB,UAAU,QAAQ;AAAA,EAC5D,GAAG,CAAC,CAAC,GAEE;AACT;",
5
+ "names": []
6
+ }
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: !0
11
+ });
12
+ },
13
+ __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
15
+ get: () => from[key],
16
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
17
+ });
18
+ return to;
19
+ };
20
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
21
+ value: !0
22
+ }), mod);
23
+ var systemScheme_native_exports = {};
24
+ __export(systemScheme_native_exports, {
25
+ getSystemScheme: () => getSystemScheme,
26
+ useSystemScheme: () => useSystemScheme
27
+ });
28
+ module.exports = __toCommonJS(systemScheme_native_exports);
29
+ var import_react = require("react"),
30
+ import_react_native = require("react-native");
31
+ function getSystemScheme() {
32
+ return import_react_native.Appearance.getColorScheme() || "light";
33
+ }
34
+ function useSystemScheme() {
35
+ var [scheme, setScheme] = (0, import_react.useState)(getSystemScheme);
36
+ return (0, import_react.useEffect)(function () {
37
+ var subscription = import_react_native.Appearance.addChangeListener(function (param) {
38
+ var {
39
+ colorScheme
40
+ } = param;
41
+ setScheme(colorScheme || "light");
42
+ });
43
+ return function () {
44
+ return subscription.remove();
45
+ };
46
+ }, []), scheme;
47
+ }
48
+ //# sourceMappingURL=systemScheme.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["systemScheme_native_exports","__export","getSystemScheme","useSystemScheme","module","exports","__toCommonJS","import_react","require","import_react_native","Appearance","getColorScheme","scheme","setScheme","useState","useEffect","subscription","addChangeListener","param","colorScheme","remove"],"sources":["../../src/systemScheme.native.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,2BAAA;AAAAC,QAAA,CAAAD,2BAAA;EAAAE,eAAA,EAAAA,CAAA,KAAAA,eAAA;EAAAC,eAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAC,YAAA,CAAAN,2BAAA;AAAA,IAAAO,YAAA,GAAoCC,OAAA;EACpCC,mBAAA,GAA2BD,OAAA;AACpB,SAASN,gBAAA,EAAkB;EAC9B,OAAOO,mBAAA,CAAAC,UAAA,CAAWC,cAAA,CAAe,KAAK;AAC1C;AACO,SAASR,gBAAA,EAAkB;EAC9B,IAAI,CAACS,MAAA,EAAQC,SAAS,QAAIN,YAAA,CAAAO,QAAA,EAASZ,eAAe;EAClD,WAAAK,YAAA,CAAAQ,SAAA,EAAU,YAAW;IACjB,IAAIC,YAAA,GAAeP,mBAAA,CAAAC,UAAA,CAAWO,iBAAA,CAAkB,UAASC,KAAA,EAAO;MAC5D,IAAI;QAAEC;MAAY,IAAID,KAAA;MACtBL,SAAA,CAAUM,WAAA,IAAe,OAAO;IACpC,CAAC;IACD,OAAO,YAAW;MACd,OAAOH,YAAA,CAAaI,MAAA,CAAO;IAC/B;EACJ,GAAG,EAAE,GACER,MAAA;AACX","ignoreList":[]}
@@ -0,0 +1,95 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all) __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: !0
9
+ });
10
+ },
11
+ __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
13
+ get: () => from[key],
14
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
+ });
16
+ return to;
17
+ };
18
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
19
+ value: !0
20
+ }), mod);
21
+ var userScheme_exports = {};
22
+ __export(userScheme_exports, {
23
+ getUserScheme: () => getUserScheme,
24
+ onUserSchemeChange: () => onUserSchemeChange,
25
+ setUserScheme: () => setUserScheme,
26
+ useUserScheme: () => useUserScheme
27
+ });
28
+ module.exports = __toCommonJS(userScheme_exports);
29
+ var import_use_isomorphic_layout_effect = require("@vxrn/use-isomorphic-layout-effect"),
30
+ import_react = require("react"),
31
+ import_react_native = require("react-native-web"),
32
+ import_systemScheme = require("./systemScheme.cjs");
33
+ const listeners = /* @__PURE__ */new Set(),
34
+ storageKey = "vxrn-scheme";
35
+ let currentSetting = "system",
36
+ currentValue = "light",
37
+ isWebListening = !1;
38
+ function startWebListener() {
39
+ if (isWebListening) return;
40
+ isWebListening = !0;
41
+ const matcher = typeof window < "u" ? window.matchMedia?.("(prefers-color-scheme: dark)") : null,
42
+ onSystemChange = () => {
43
+ currentSetting === "system" && updateValueFromSystem();
44
+ };
45
+ onSystemChange(), matcher?.addEventListener?.("change", onSystemChange);
46
+ }
47
+ function resolveValue(setting) {
48
+ return setting === "system" ? (0, import_systemScheme.getSystemScheme)() : setting;
49
+ }
50
+ function updateValueFromSystem() {
51
+ const value = resolveValue("system");
52
+ value !== currentValue && (currentValue = value, listeners.forEach(l => {
53
+ l(currentSetting, currentValue);
54
+ }));
55
+ }
56
+ function updateScheme(setting) {
57
+ const value = setting === "system" ? resolveValue("system") : setting;
58
+ (value !== currentValue || currentSetting !== setting) && (currentSetting = setting, currentValue = value, listeners.forEach(l => {
59
+ l(currentSetting, currentValue);
60
+ }));
61
+ }
62
+ function setUserScheme(setting) {
63
+ typeof localStorage < "u" && localStorage.setItem(storageKey, setting), updateScheme(setting);
64
+ }
65
+ function getUserScheme() {
66
+ return {
67
+ setting: currentSetting,
68
+ value: currentValue
69
+ };
70
+ }
71
+ function onUserSchemeChange(listener) {
72
+ return listeners.add(listener), listener(currentSetting, currentValue), () => {
73
+ listeners.delete(listener);
74
+ };
75
+ }
76
+ function useUserScheme() {
77
+ const [state, setState] = (0, import_react.useState)(() => getUserScheme());
78
+ return (0, import_use_isomorphic_layout_effect.useIsomorphicLayoutEffect)(() => {
79
+ if (typeof localStorage < "u") {
80
+ const stored = localStorage.getItem(storageKey);
81
+ stored && updateScheme(stored);
82
+ }
83
+ const dispose = onUserSchemeChange((setting, value) => {
84
+ setState({
85
+ setting,
86
+ value
87
+ });
88
+ });
89
+ return startWebListener(), dispose;
90
+ }, []), (0, import_react.useMemo)(() => ({
91
+ setting: state.setting,
92
+ value: state.value,
93
+ set: setUserScheme
94
+ }), [state.setting, state.value]);
95
+ }