@vxrn/color-scheme 1.13.1 → 1.13.2
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.
- package/dist/cjs/index.cjs +13 -8
- package/dist/cjs/index.native.js +6 -3
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/userScheme.native.js +1 -1
- package/dist/cjs/userScheme.native.js.map +1 -1
- package/dist/esm/index.js +16 -11
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +16 -11
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +7 -4
- package/dist/esm/index.native.js.map +1 -1
- package/package.json +2 -2
- package/src/index.tsx +25 -4
- package/types/index.d.ts +3 -1
- package/types/index.d.ts.map +1 -1
package/dist/cjs/index.cjs
CHANGED
|
@@ -38,21 +38,25 @@ var import_use_isomorphic_layout_effect = require("@vxrn/use-isomorphic-layout-e
|
|
|
38
38
|
const storageKey = "vxrn-scheme";
|
|
39
39
|
function SchemeProvider({
|
|
40
40
|
children,
|
|
41
|
-
getClassName = name => `t_${name}
|
|
41
|
+
getClassName = name => `t_${name}`,
|
|
42
|
+
defaultScheme
|
|
42
43
|
}) {
|
|
43
44
|
const {
|
|
44
45
|
value
|
|
45
46
|
} = (0, import_userScheme.useUserScheme)();
|
|
46
|
-
|
|
47
|
+
(0, import_use_isomorphic_layout_effect.useIsomorphicLayoutEffect)(() => {
|
|
48
|
+
defaultScheme && typeof localStorage < "u" && (localStorage.getItem(storageKey) || (0, import_userScheme.setUserScheme)(defaultScheme));
|
|
49
|
+
}, []), (0, import_use_isomorphic_layout_effect.useIsomorphicLayoutEffect)(() => {
|
|
47
50
|
const toAdd = getClassName(value),
|
|
51
|
+
toRemove = getClassName(value === "light" ? "dark" : "light"),
|
|
48
52
|
{
|
|
49
53
|
classList
|
|
50
54
|
} = document.documentElement;
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
}
|
|
55
|
-
|
|
55
|
+
classList.remove(toRemove), classList.contains(toAdd) || classList.add(toAdd);
|
|
56
|
+
}, [value]);
|
|
57
|
+
const fallback = defaultScheme ? `'${defaultScheme}' === 'dark'` : "window.matchMedia('(prefers-color-scheme: dark)').matches",
|
|
58
|
+
seedStorage = defaultScheme ? `if(!e){localStorage.setItem('${storageKey}','${defaultScheme}')}` : "";
|
|
59
|
+
return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
|
|
56
60
|
children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)("script", {
|
|
57
61
|
suppressHydrationWarning: !0,
|
|
58
62
|
dangerouslySetInnerHTML: {
|
|
@@ -60,8 +64,9 @@ function SchemeProvider({
|
|
|
60
64
|
d.remove('${getClassName("light")}')
|
|
61
65
|
d.remove('${getClassName("dark")}')
|
|
62
66
|
let e = localStorage.getItem('${storageKey}')
|
|
67
|
+
${seedStorage}
|
|
63
68
|
let t = 'system' === e || !e
|
|
64
|
-
?
|
|
69
|
+
? ${fallback}
|
|
65
70
|
: e === 'dark'
|
|
66
71
|
t ? d.add('${getClassName("dark")}') : d.add('${getClassName("light")}')
|
|
67
72
|
`
|
package/dist/cjs/index.native.js
CHANGED
|
@@ -35,7 +35,7 @@ module.exports = __toCommonJS(index_exports);
|
|
|
35
35
|
var import_jsx_runtime = require("react/jsx-runtime"),
|
|
36
36
|
import_use_isomorphic_layout_effect = require("@vxrn/use-isomorphic-layout-effect"),
|
|
37
37
|
import_userScheme = require("./userScheme.native.js"),
|
|
38
|
-
import_systemScheme = require("./systemScheme"),
|
|
38
|
+
import_systemScheme = require("./systemScheme.native.js"),
|
|
39
39
|
import_userScheme2 = require("./userScheme.native.js"),
|
|
40
40
|
storageKey = "vxrn-scheme";
|
|
41
41
|
function SchemeProvider(param) {
|
|
@@ -43,11 +43,14 @@ function SchemeProvider(param) {
|
|
|
43
43
|
children,
|
|
44
44
|
getClassName = function (name) {
|
|
45
45
|
return `t_${name}`;
|
|
46
|
-
}
|
|
46
|
+
},
|
|
47
|
+
defaultScheme
|
|
47
48
|
} = param,
|
|
48
49
|
{
|
|
49
50
|
value
|
|
50
|
-
} = (0, import_userScheme.useUserScheme)()
|
|
51
|
+
} = (0, import_userScheme.useUserScheme)(),
|
|
52
|
+
fallback = defaultScheme ? `'${defaultScheme}' === 'dark'` : "window.matchMedia('(prefers-color-scheme: dark)').matches",
|
|
53
|
+
seedStorage = defaultScheme ? `if(!e){localStorage.setItem('${storageKey}','${defaultScheme}')}` : "";
|
|
51
54
|
return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
|
|
52
55
|
children: [null, children]
|
|
53
56
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
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","defaultScheme","fallback","seedStorage","jsxs","Fragment","color","darkColor","lightColor","jsx","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;AAiB1C,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;MAChB;MAAAC;IAAA,IAAAJ,KAAA;IAAA;MAAApB;IAAA,QAAAkB,iBAAA,CAAAN,aAAA;IAAAa,QAAA,GAAAD,aAAA,OAAAA,aAAA;IAAAE,WAAA,GAAAF,aAAA,mCAAAL,UAAA,MAAAK,aAAA;EACF,OAKG,mBAAAT,kBAAA,CAAAY,IAAA,EAAAZ,kBAAA,CAAAa,QAAA;IACDP,QAAQ,GAIN,MACMA,QAAA;EAQJ;AAGA;AAEqB,SAEnBlB,SAAMA,CAAAiB,KAAA;EAGZ;MAAMS,KAAA;MAAAC,SAAW;MAAAC;IACb,IAAIX,KAAA;IAAA;MAAApB;IAAa,QAAAkB,iBACjB,CAAAN,aAAA;EAMJ,OACE,mBAAAG,kBAAA,CAAAY,IAAA,EAAAZ,kBAAA,CAAAa,QAAA;IAEIP,QAAA,GAAC,mBAAAN,kBAAA,CAAAiB,GAAA;MAAAC,wBAAA;MACCC,EAAA;MACAX,IAAA;MAAyBY,OACvB,EAAAN,KAAQ,KAAA7B,KAAA,cAAA8B,SAAA,GAAAC,UAAA;IAAA,IACa,eACrB,IAAahB,kBAAO,CAAAiB,GAAA;MAAAC,wBACA;MAC9BC,EAAA,sBAAW;MAAAE,uBAAA;QAEPC,MAAQ;AAAA;AAAA,iCAEmBlB,UAAA;AAAoC;AAAA,oCAE3DW,SAAA,QAAAC,UAAA;AAAA;MACF;IAED;EAGP;AAEO","ignoreList":[]}
|
|
@@ -31,7 +31,7 @@ module.exports = __toCommonJS(userScheme_exports);
|
|
|
31
31
|
var import_use_isomorphic_layout_effect = require("@vxrn/use-isomorphic-layout-effect"),
|
|
32
32
|
import_react = require("react"),
|
|
33
33
|
import_react_native = require("react-native"),
|
|
34
|
-
import_systemScheme = require("./systemScheme"),
|
|
34
|
+
import_systemScheme = require("./systemScheme.native.js"),
|
|
35
35
|
listeners = /* @__PURE__ */new Set(),
|
|
36
36
|
storageKey = "vxrn-scheme";
|
|
37
37
|
function getInitialSetting() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","userScheme_exports","getUserScheme","onUserSchemeChange","setUserScheme","useUserScheme","module","exports","import_use_isomorphic_layout_effect","require","import_react","import_react_native","import_systemScheme","listeners","Set","storageKey","getInitialSetting","localStorage","stored","getItem","getInitialValue","setting","Appearance","getColorScheme","initialSetting","currentSetting","currentValue","addChangeListener","next","colorScheme","updateValueFromSystem","isWebListening","startWebListener","_window_matchMedia","_window","_matcher_addEventListener","matcher","window","matchMedia","onSystemChange","addEventListener","resolveValue","forEach","l","updateScheme","setColorScheme","setItem","listener","add","delete","state","setState","useState","useIsomorphicLayoutEffect","dispose","useMemo","set"],"sources":["userScheme.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: !0 });\n}, __copyProps = (to, from, except, desc) => {\n if (from && typeof from == \"object\" || typeof from == \"function\")\n for (let key of __getOwnPropNames(from))\n !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: !0 }), mod);\nvar userScheme_exports = {};\n__export(userScheme_exports, {\n getUserScheme: () => getUserScheme,\n onUserSchemeChange: () => onUserSchemeChange,\n setUserScheme: () => setUserScheme,\n useUserScheme: () => useUserScheme\n});\nmodule.exports = __toCommonJS(userScheme_exports);\nvar import_use_isomorphic_layout_effect = require(\"@vxrn/use-isomorphic-layout-effect\"), import_react = require(\"react\"), import_react_native = require(\"react-native\"), import_systemScheme = require(\"./systemScheme\"), listeners = /* @__PURE__ */ new Set(), storageKey = \"vxrn-scheme\";\nfunction getInitialSetting() {\n if (typeof localStorage < \"u\") {\n var stored = localStorage.getItem(storageKey);\n if (stored === \"light\" || stored === \"dark\" || stored === \"system\")\n return stored;\n }\n return \"system\";\n}\nfunction getInitialValue(setting) {\n return setting === \"system\" ? import_react_native.Appearance.getColorScheme() === \"dark\" ? \"dark\" : \"light\" : setting;\n}\nvar initialSetting = getInitialSetting(), currentSetting = initialSetting, currentValue = getInitialValue(initialSetting);\nimport_react_native.Appearance.addChangeListener(function(next) {\n currentSetting === \"system\" && next.colorScheme && updateValueFromSystem();\n});\nvar isWebListening = !1;\nfunction startWebListener() {\n var _window_matchMedia, _window, _matcher_addEventListener;\n if (!isWebListening) {\n isWebListening = !0;\n var matcher = typeof window < \"u\" ? (_window_matchMedia = (_window = window).matchMedia) === null || _window_matchMedia === void 0 ? void 0 : _window_matchMedia.call(_window, \"(prefers-color-scheme: dark)\") : null, onSystemChange = function() {\n currentSetting === \"system\" && updateValueFromSystem();\n };\n onSystemChange(), matcher == null || (_matcher_addEventListener = matcher.addEventListener) === null || _matcher_addEventListener === void 0 || _matcher_addEventListener.call(matcher, \"change\", onSystemChange);\n }\n}\nfunction resolveValue(setting) {\n return setting === \"system\" ? import_react_native.Appearance.getColorScheme() === \"dark\" ? \"dark\" : \"light\" : setting;\n}\nfunction updateValueFromSystem() {\n var value = resolveValue(\"system\");\n value !== currentValue && (currentValue = value, listeners.forEach(function(l) {\n l(currentSetting, currentValue);\n }));\n}\nfunction updateScheme(setting) {\n var value = setting === \"system\" ? resolveValue(\"system\") : setting;\n (value !== currentValue || currentSetting !== setting) && (currentSetting = setting, currentValue = value, setting !== \"system\" ? import_react_native.Appearance.setColorScheme(value) : import_react_native.Appearance.setColorScheme(\"unspecified\"), listeners.forEach(function(l) {\n l(currentSetting, currentValue);\n }));\n}\nfunction setUserScheme(setting) {\n typeof localStorage < \"u\" && localStorage.setItem(storageKey, setting), updateScheme(setting);\n}\nfunction getUserScheme() {\n return {\n setting: currentSetting,\n value: currentValue\n };\n}\nfunction onUserSchemeChange(listener) {\n return listeners.add(listener), listener(currentSetting, currentValue), function() {\n listeners.delete(listener);\n };\n}\nfunction useUserScheme() {\n var [state, setState] = (0, import_react.useState)(function() {\n return getUserScheme();\n });\n return (0, import_use_isomorphic_layout_effect.useIsomorphicLayoutEffect)(function() {\n if (typeof localStorage < \"u\") {\n var stored = localStorage.getItem(storageKey);\n stored && updateScheme(stored);\n }\n var dispose = onUserSchemeChange(function(setting, value) {\n setState({\n setting,\n value\n });\n });\n return startWebListener(), dispose;\n }, []), (0, import_react.useMemo)(function() {\n return {\n setting: state.setting,\n value: state.value,\n set: setUserScheme\n };\n }, [\n state.setting,\n state.value\n ]);\n}\n//# sourceMappingURL=userScheme.js.map\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","userScheme_exports","__export","getUserScheme","onUserSchemeChange","setUserScheme","useUserScheme","module","exports","import_use_isomorphic_layout_effect","require","import_react","import_react_native","import_systemScheme","listeners","Set","storageKey","getInitialSetting","localStorage","stored","getItem","getInitialValue","setting","Appearance","getColorScheme","initialSetting","currentSetting","currentValue","addChangeListener","next","colorScheme","updateValueFromSystem","isWebListening","startWebListener","_window_matchMedia","_window","_matcher_addEventListener","matcher","window","matchMedia","call","onSystemChange","addEventListener","resolveValue","forEach","l","updateScheme","setColorScheme","setItem","listener","add","delete","state","setState","useState","useIsomorphicLayoutEffect"],"sources":["../../src/userScheme.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,26 +1,30 @@
|
|
|
1
1
|
import { useIsomorphicLayoutEffect } from "@vxrn/use-isomorphic-layout-effect";
|
|
2
|
-
import { useUserScheme } from "./userScheme.mjs";
|
|
2
|
+
import { setUserScheme, useUserScheme } from "./userScheme.mjs";
|
|
3
3
|
import { getSystemScheme, useSystemScheme } from "./systemScheme.mjs";
|
|
4
|
-
import { getUserScheme, onUserSchemeChange, setUserScheme, useUserScheme as useUserScheme2 } from "./userScheme.mjs";
|
|
4
|
+
import { getUserScheme, onUserSchemeChange, setUserScheme as setUserScheme2, useUserScheme as useUserScheme2 } from "./userScheme.mjs";
|
|
5
5
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
const storageKey = "vxrn-scheme";
|
|
7
7
|
function SchemeProvider({
|
|
8
8
|
children,
|
|
9
|
-
getClassName = name => `t_${name}
|
|
9
|
+
getClassName = name => `t_${name}`,
|
|
10
|
+
defaultScheme
|
|
10
11
|
}) {
|
|
11
12
|
const {
|
|
12
13
|
value
|
|
13
14
|
} = useUserScheme();
|
|
14
|
-
|
|
15
|
+
useIsomorphicLayoutEffect(() => {
|
|
16
|
+
defaultScheme && typeof localStorage < "u" && (localStorage.getItem(storageKey) || setUserScheme(defaultScheme));
|
|
17
|
+
}, []), useIsomorphicLayoutEffect(() => {
|
|
15
18
|
const toAdd = getClassName(value),
|
|
19
|
+
toRemove = getClassName(value === "light" ? "dark" : "light"),
|
|
16
20
|
{
|
|
17
21
|
classList
|
|
18
22
|
} = document.documentElement;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}
|
|
23
|
-
|
|
23
|
+
classList.remove(toRemove), classList.contains(toAdd) || classList.add(toAdd);
|
|
24
|
+
}, [value]);
|
|
25
|
+
const fallback = defaultScheme ? `'${defaultScheme}' === 'dark'` : "window.matchMedia('(prefers-color-scheme: dark)').matches",
|
|
26
|
+
seedStorage = defaultScheme ? `if(!e){localStorage.setItem('${storageKey}','${defaultScheme}')}` : "";
|
|
27
|
+
return /* @__PURE__ */jsxs(Fragment, {
|
|
24
28
|
children: [/* @__PURE__ */jsx("script", {
|
|
25
29
|
suppressHydrationWarning: !0,
|
|
26
30
|
dangerouslySetInnerHTML: {
|
|
@@ -28,8 +32,9 @@ function SchemeProvider({
|
|
|
28
32
|
d.remove('${getClassName("light")}')
|
|
29
33
|
d.remove('${getClassName("dark")}')
|
|
30
34
|
let e = localStorage.getItem('${storageKey}')
|
|
35
|
+
${seedStorage}
|
|
31
36
|
let t = 'system' === e || !e
|
|
32
|
-
?
|
|
37
|
+
? ${fallback}
|
|
33
38
|
: e === 'dark'
|
|
34
39
|
t ? d.add('${getClassName("dark")}') : d.add('${getClassName("light")}')
|
|
35
40
|
`
|
|
@@ -65,5 +70,5 @@ dc.setAttribute('content', isD ? '${darkColor}' : '${lightColor}')
|
|
|
65
70
|
})]
|
|
66
71
|
});
|
|
67
72
|
}
|
|
68
|
-
export { MetaTheme, SchemeProvider, getSystemScheme, getUserScheme, onUserSchemeChange, setUserScheme, useSystemScheme, useUserScheme2 as useUserScheme };
|
|
73
|
+
export { MetaTheme, SchemeProvider, getSystemScheme, getUserScheme, onUserSchemeChange, setUserScheme2 as setUserScheme, useSystemScheme, useUserScheme2 as useUserScheme };
|
|
69
74
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useIsomorphicLayoutEffect","useUserScheme","getSystemScheme","useSystemScheme","getUserScheme","onUserSchemeChange","
|
|
1
|
+
{"version":3,"names":["useIsomorphicLayoutEffect","setUserScheme","useUserScheme","getSystemScheme","useSystemScheme","getUserScheme","onUserSchemeChange","setUserScheme2","useUserScheme2","Fragment","jsx","jsxs","storageKey","SchemeProvider","children","getClassName","name","defaultScheme","value","localStorage","getItem","toAdd","toRemove","classList","document","documentElement","remove","contains","add","fallback","seedStorage","suppressHydrationWarning","dangerouslySetInnerHTML","__html","MetaTheme","color","darkColor","lightColor","id","content"],"sources":["../../src/index.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,yBAAA,QAAiC;AAE1C,SAASC,aAAA,EAAeC,aAAA,QAAqB;AAO7C,SAASC,eAAA,EAAiBC,eAAA,QAAuB;AACjD,SACEC,aAAA,EACAC,kBAAA,EACAL,aAAA,IAAAM,cAAA,EACAL,aAAA,IAAAM,cAAA,QACK;AA8CH,SAAAC,QAAA,EAEIC,GAAA,EAFJC,IAAA;AA5CJ,MAAMC,UAAA,GAAa;AAEZ,SAASC,eAAe;EAC7BC,QAAA;EACAC,YAAA,GAAgBC,IAAA,IAAS,KAAKA,IAAI;EAClCC;AACF,GAKG;EACD,MAAM;IAAEC;EAAM,IAAIhB,aAAA,CAAc;EAI9BF,yBAAA,CAA0B,MAAM;IAC1BiB,aAAA,IAAiB,OAAOE,YAAA,GAAiB,QACtCA,YAAA,CAAaC,OAAA,CAAQR,UAAU,KAClCX,aAAA,CAAcgB,aAAa;EAGjC,GAAG,EAAE,GAELjB,yBAAA,CAA0B,MAAM;IAC9B,MAAMqB,KAAA,GAAQN,YAAA,CAAaG,KAAK;MAC1BI,QAAA,GAAWP,YAAA,CAAaG,KAAA,KAAU,UAAU,SAAS,OAAO;MAC5D;QAAEK;MAAU,IAAIC,QAAA,CAASC,eAAA;IAC/BF,SAAA,CAAUG,MAAA,CAAOJ,QAAQ,GACpBC,SAAA,CAAUI,QAAA,CAASN,KAAK,KAC3BE,SAAA,CAAUK,GAAA,CAAIP,KAAK;EAEvB,GAAG,CAACH,KAAK,CAAC;EAGZ,MAAMW,QAAA,GAAWZ,aAAA,GACb,IAAIA,aAAa,iBACjB;IAEEa,WAAA,GAAcb,aAAA,GAChB,gCAAgCL,UAAU,MAAMK,aAAa,QAC7D;EAEJ,OACE,eAAAN,IAAA,CAAAF,QAAA;IAEIK,QAAA,kBAAAJ,GAAA,CAAC;MACCqB,wBAAA,EAAwB;MACxBC,uBAAA,EAAyB;QACvBC,MAAA,EAAQ;AAAA,YACRlB,YAAA,CAAa,OAAO,CAAC;AAAA,YACrBA,YAAA,CAAa,MAAM,CAAC;AAAA,gCACAH,UAAU;AAAA,EACxCkB,WAAW;AAAA;AAAA,MAEPD,QAAQ;AAAA;AAAA,aAEDd,YAAA,CAAa,MAAM,CAAC,eAAeA,YAAA,CAAa,OAAO,CAAC;AAAA;MAE3D;IAAA,CACF,GAEDD,QAAA;EAAA,CACH;AAEJ;AAEO,SAASoB,UAAU;EACxBC,KAAA;EACAC,SAAA;EACAC;AACF,GAIG;EACD,MAAM;IAAEnB;EAAM,IAAIhB,aAAA,CAAc;EAEhC,OACE,eAAAS,IAAA,CAAAF,QAAA;IACEK,QAAA,kBAAAJ,GAAA,CAAC;MACCqB,wBAAA,EAAwB;MACxBO,EAAA,EAAG;MACHtB,IAAA,EAAK;MACLuB,OAAA,EAASJ,KAAA,KAAUjB,KAAA,KAAU,SAASkB,SAAA,GAAYC,UAAA;IAAA,CACpD,GACA,eAAA3B,GAAA,CAAC;MACCqB,wBAAA,EAAwB;MACxBO,EAAA,EAAG;MACHN,uBAAA,EAAyB;QACvBC,MAAA,EAAQ;AAAA;AAAA,iCAEerB,UAAU;AAAA;AAAA,oCAEPwB,SAAS,QAAQC,UAAU;AAAA;MAEvD;IAAA,CACF;EAAA,CACF;AAEJ","ignoreList":[]}
|
package/dist/esm/index.mjs
CHANGED
|
@@ -1,26 +1,30 @@
|
|
|
1
1
|
import { useIsomorphicLayoutEffect } from "@vxrn/use-isomorphic-layout-effect";
|
|
2
|
-
import { useUserScheme } from "./userScheme.mjs";
|
|
2
|
+
import { setUserScheme, useUserScheme } from "./userScheme.mjs";
|
|
3
3
|
import { getSystemScheme, useSystemScheme } from "./systemScheme.mjs";
|
|
4
|
-
import { getUserScheme, onUserSchemeChange, setUserScheme, useUserScheme as useUserScheme2 } from "./userScheme.mjs";
|
|
4
|
+
import { getUserScheme, onUserSchemeChange, setUserScheme as setUserScheme2, useUserScheme as useUserScheme2 } from "./userScheme.mjs";
|
|
5
5
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
const storageKey = "vxrn-scheme";
|
|
7
7
|
function SchemeProvider({
|
|
8
8
|
children,
|
|
9
|
-
getClassName = name => `t_${name}
|
|
9
|
+
getClassName = name => `t_${name}`,
|
|
10
|
+
defaultScheme
|
|
10
11
|
}) {
|
|
11
12
|
const {
|
|
12
13
|
value
|
|
13
14
|
} = useUserScheme();
|
|
14
|
-
|
|
15
|
+
useIsomorphicLayoutEffect(() => {
|
|
16
|
+
defaultScheme && typeof localStorage < "u" && (localStorage.getItem(storageKey) || setUserScheme(defaultScheme));
|
|
17
|
+
}, []), useIsomorphicLayoutEffect(() => {
|
|
15
18
|
const toAdd = getClassName(value),
|
|
19
|
+
toRemove = getClassName(value === "light" ? "dark" : "light"),
|
|
16
20
|
{
|
|
17
21
|
classList
|
|
18
22
|
} = document.documentElement;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}
|
|
23
|
-
|
|
23
|
+
classList.remove(toRemove), classList.contains(toAdd) || classList.add(toAdd);
|
|
24
|
+
}, [value]);
|
|
25
|
+
const fallback = defaultScheme ? `'${defaultScheme}' === 'dark'` : "window.matchMedia('(prefers-color-scheme: dark)').matches",
|
|
26
|
+
seedStorage = defaultScheme ? `if(!e){localStorage.setItem('${storageKey}','${defaultScheme}')}` : "";
|
|
27
|
+
return /* @__PURE__ */jsxs(Fragment, {
|
|
24
28
|
children: [/* @__PURE__ */jsx("script", {
|
|
25
29
|
suppressHydrationWarning: !0,
|
|
26
30
|
dangerouslySetInnerHTML: {
|
|
@@ -28,8 +32,9 @@ function SchemeProvider({
|
|
|
28
32
|
d.remove('${getClassName("light")}')
|
|
29
33
|
d.remove('${getClassName("dark")}')
|
|
30
34
|
let e = localStorage.getItem('${storageKey}')
|
|
35
|
+
${seedStorage}
|
|
31
36
|
let t = 'system' === e || !e
|
|
32
|
-
?
|
|
37
|
+
? ${fallback}
|
|
33
38
|
: e === 'dark'
|
|
34
39
|
t ? d.add('${getClassName("dark")}') : d.add('${getClassName("light")}')
|
|
35
40
|
`
|
|
@@ -65,5 +70,5 @@ dc.setAttribute('content', isD ? '${darkColor}' : '${lightColor}')
|
|
|
65
70
|
})]
|
|
66
71
|
});
|
|
67
72
|
}
|
|
68
|
-
export { MetaTheme, SchemeProvider, getSystemScheme, getUserScheme, onUserSchemeChange, setUserScheme, useSystemScheme, useUserScheme2 as useUserScheme };
|
|
73
|
+
export { MetaTheme, SchemeProvider, getSystemScheme, getUserScheme, onUserSchemeChange, setUserScheme2 as setUserScheme, useSystemScheme, useUserScheme2 as useUserScheme };
|
|
69
74
|
//# sourceMappingURL=index.mjs.map
|
package/dist/esm/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useIsomorphicLayoutEffect","useUserScheme","getSystemScheme","useSystemScheme","getUserScheme","onUserSchemeChange","
|
|
1
|
+
{"version":3,"names":["useIsomorphicLayoutEffect","setUserScheme","useUserScheme","getSystemScheme","useSystemScheme","getUserScheme","onUserSchemeChange","setUserScheme2","useUserScheme2","Fragment","jsx","jsxs","storageKey","SchemeProvider","children","getClassName","name","defaultScheme","value","localStorage","getItem","toAdd","toRemove","classList","document","documentElement","remove","contains","add","fallback","seedStorage","suppressHydrationWarning","dangerouslySetInnerHTML","__html","MetaTheme","color","darkColor","lightColor","id","content"],"sources":["../../src/index.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,yBAAA,QAAiC;AAE1C,SAASC,aAAA,EAAeC,aAAA,QAAqB;AAO7C,SAASC,eAAA,EAAiBC,eAAA,QAAuB;AACjD,SACEC,aAAA,EACAC,kBAAA,EACAL,aAAA,IAAAM,cAAA,EACAL,aAAA,IAAAM,cAAA,QACK;AA8CH,SAAAC,QAAA,EAEIC,GAAA,EAFJC,IAAA;AA5CJ,MAAMC,UAAA,GAAa;AAEZ,SAASC,eAAe;EAC7BC,QAAA;EACAC,YAAA,GAAgBC,IAAA,IAAS,KAAKA,IAAI;EAClCC;AACF,GAKG;EACD,MAAM;IAAEC;EAAM,IAAIhB,aAAA,CAAc;EAI9BF,yBAAA,CAA0B,MAAM;IAC1BiB,aAAA,IAAiB,OAAOE,YAAA,GAAiB,QACtCA,YAAA,CAAaC,OAAA,CAAQR,UAAU,KAClCX,aAAA,CAAcgB,aAAa;EAGjC,GAAG,EAAE,GAELjB,yBAAA,CAA0B,MAAM;IAC9B,MAAMqB,KAAA,GAAQN,YAAA,CAAaG,KAAK;MAC1BI,QAAA,GAAWP,YAAA,CAAaG,KAAA,KAAU,UAAU,SAAS,OAAO;MAC5D;QAAEK;MAAU,IAAIC,QAAA,CAASC,eAAA;IAC/BF,SAAA,CAAUG,MAAA,CAAOJ,QAAQ,GACpBC,SAAA,CAAUI,QAAA,CAASN,KAAK,KAC3BE,SAAA,CAAUK,GAAA,CAAIP,KAAK;EAEvB,GAAG,CAACH,KAAK,CAAC;EAGZ,MAAMW,QAAA,GAAWZ,aAAA,GACb,IAAIA,aAAa,iBACjB;IAEEa,WAAA,GAAcb,aAAA,GAChB,gCAAgCL,UAAU,MAAMK,aAAa,QAC7D;EAEJ,OACE,eAAAN,IAAA,CAAAF,QAAA;IAEIK,QAAA,kBAAAJ,GAAA,CAAC;MACCqB,wBAAA,EAAwB;MACxBC,uBAAA,EAAyB;QACvBC,MAAA,EAAQ;AAAA,YACRlB,YAAA,CAAa,OAAO,CAAC;AAAA,YACrBA,YAAA,CAAa,MAAM,CAAC;AAAA,gCACAH,UAAU;AAAA,EACxCkB,WAAW;AAAA;AAAA,MAEPD,QAAQ;AAAA;AAAA,aAEDd,YAAA,CAAa,MAAM,CAAC,eAAeA,YAAA,CAAa,OAAO,CAAC;AAAA;MAE3D;IAAA,CACF,GAEDD,QAAA;EAAA,CACH;AAEJ;AAEO,SAASoB,UAAU;EACxBC,KAAA;EACAC,SAAA;EACAC;AACF,GAIG;EACD,MAAM;IAAEnB;EAAM,IAAIhB,aAAA,CAAc;EAEhC,OACE,eAAAS,IAAA,CAAAF,QAAA;IACEK,QAAA,kBAAAJ,GAAA,CAAC;MACCqB,wBAAA,EAAwB;MACxBO,EAAA,EAAG;MACHtB,IAAA,EAAK;MACLuB,OAAA,EAASJ,KAAA,KAAUjB,KAAA,KAAU,SAASkB,SAAA,GAAYC,UAAA;IAAA,CACpD,GACA,eAAA3B,GAAA,CAAC;MACCqB,wBAAA,EAAwB;MACxBO,EAAA,EAAG;MACHN,uBAAA,EAAyB;QACvBC,MAAA,EAAQ;AAAA;AAAA,iCAEerB,UAAU;AAAA;AAAA,oCAEPwB,SAAS,QAAQC,UAAU;AAAA;MAEvD;IAAA,CACF;EAAA,CACF;AAEJ","ignoreList":[]}
|
package/dist/esm/index.native.js
CHANGED
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { useUserScheme } from "./userScheme.native.js";
|
|
3
3
|
import { getSystemScheme, useSystemScheme } from "./systemScheme.native.js";
|
|
4
|
-
import { getUserScheme, onUserSchemeChange, setUserScheme, useUserScheme as useUserScheme2 } from "./userScheme.native.js";
|
|
4
|
+
import { getUserScheme, onUserSchemeChange, setUserScheme as setUserScheme2, useUserScheme as useUserScheme2 } from "./userScheme.native.js";
|
|
5
5
|
var storageKey = "vxrn-scheme";
|
|
6
6
|
function SchemeProvider(param) {
|
|
7
7
|
var {
|
|
8
8
|
children,
|
|
9
9
|
getClassName = function (name) {
|
|
10
10
|
return `t_${name}`;
|
|
11
|
-
}
|
|
11
|
+
},
|
|
12
|
+
defaultScheme
|
|
12
13
|
} = param,
|
|
13
14
|
{
|
|
14
15
|
value
|
|
15
|
-
} = useUserScheme()
|
|
16
|
+
} = useUserScheme(),
|
|
17
|
+
fallback = defaultScheme ? `'${defaultScheme}' === 'dark'` : "window.matchMedia('(prefers-color-scheme: dark)').matches",
|
|
18
|
+
seedStorage = defaultScheme ? `if(!e){localStorage.setItem('${storageKey}','${defaultScheme}')}` : "";
|
|
16
19
|
return /* @__PURE__ */_jsxs(_Fragment, {
|
|
17
20
|
children: [null, children]
|
|
18
21
|
});
|
|
@@ -46,5 +49,5 @@ dc.setAttribute('content', isD ? '${darkColor}' : '${lightColor}')
|
|
|
46
49
|
})]
|
|
47
50
|
});
|
|
48
51
|
}
|
|
49
|
-
export { MetaTheme, SchemeProvider, getSystemScheme, getUserScheme, onUserSchemeChange, setUserScheme, useSystemScheme, useUserScheme2 as useUserScheme };
|
|
52
|
+
export { MetaTheme, SchemeProvider, getSystemScheme, getUserScheme, onUserSchemeChange, setUserScheme2 as setUserScheme, useSystemScheme, useUserScheme2 as useUserScheme };
|
|
50
53
|
//# sourceMappingURL=index.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","useUserScheme","getSystemScheme","useSystemScheme","getUserScheme","onUserSchemeChange","setUserScheme","useUserScheme2","storageKey","SchemeProvider","param","children","getClassName","name","value","MetaTheme","color","darkColor","lightColor","suppressHydrationWarning","id","content","dangerouslySetInnerHTML","__html"],"sources":["../../src/index.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,EAAAC,QAAiC,IAAAC,SAAA;AAS1C,SAASC,aAAA,QAAiB;AAC1B,SAAAC,eAAA,EAAAC,eAAA;AAAA,SACEC,aAAA,EAAAC,kBAAA,EAAAC,aAAA,
|
|
1
|
+
{"version":3,"names":["jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","useUserScheme","getSystemScheme","useSystemScheme","getUserScheme","onUserSchemeChange","setUserScheme","setUserScheme2","useUserScheme2","storageKey","SchemeProvider","param","children","getClassName","name","defaultScheme","value","fallback","seedStorage","MetaTheme","color","darkColor","lightColor","suppressHydrationWarning","id","content","dangerouslySetInnerHTML","__html"],"sources":["../../src/index.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,EAAAC,QAAiC,IAAAC,SAAA;AAS1C,SAASC,aAAA,QAAiB;AAC1B,SAAAC,eAAA,EAAAC,eAAA;AAAA,SACEC,aAAA,EAAAC,kBAAA,EAAAC,aAAA,IAAAC,cAAA,EAAAN,aAAA,IAAAO,cAAA;AAAA,IACAC,UAAA;AAAA,SACAC,eAAAC,KAAA;EACA;MAAAC,QAAA;MAAAC,YAAA,YAAAA,CAAAC,IAAA;QAAA,OACK,KAAAA,IAAA;MA8CH;MAAAC;IAEI,IAAAJ,KAFJ;IAAA;MAAAK;IAAA,IAAAf,aAAA;IAAAgB,QAAA,GAAAF,aAAA,OAAAA,aAAA;IAAAG,WAAA,GAAAH,aAAA,mCAAAN,UAAA,MAAAM,aAAA;EA5CJ,OAAM,eAAajB,KAAA,CAAAE,SAAA;IAEZY,QAAS,GACd,MACAA,QAAA;EAEF,CAKG;AACD;AAIE,SAAAO,UAAAR,KAAA;EACE,IAAI;MAAAS,KAAA;MAAAC,SAAiB;MAAAC;IAAO,IAAAX,KAAiB;IAAA;MAAAK;IACtC,IAAAf,aAAqB;EAI9B,OAAK,eAELH,KAAA,CAAAE,SAA0B,EAAM;IAC9BY,QAAM,GAGN,eAAiBhB,IAAA,OACZ;MAGH2B,wBAAM;MAGNC,EAAA,oBAAW;MAQjBV,IACE;MAEIW,OAAA,EAAAL,KAAA,KAAAJ,KAAA,cAAAK,SAAA,GAAAC,UAAA;IAAC,mBAAA1B,IAAA;MACC2B,wBAAA,EAAwB;MACxBC,EAAA;MAAyBE,uBACf;QAAAC,MACR;AAAqB;AACD,iCACAlB,UAAU;AAAA;AAC7B,oCAAAY,SAAA,QAAAC,UAAA;AAAA;MAEC;IAAA;EAEuD;AAE3D;AAAA,SACFH,SAED,EAAAT,cACH,EAEJR,eAAA,EAEOE,aAAS,EACdC,kBAAA,EACAE,cAAA,IAAAD,aAAA,EACAH,eAAA,EACFK,cAIG,IAAAP,aAAA","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vxrn/color-scheme",
|
|
3
|
-
"version": "1.13.
|
|
3
|
+
"version": "1.13.2",
|
|
4
4
|
"sideEffects": false,
|
|
5
5
|
"exports": {
|
|
6
6
|
"./package.json": "./package.json",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"watch": "tamagui-build --watch"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@vxrn/use-isomorphic-layout-effect": "1.13.
|
|
33
|
+
"@vxrn/use-isomorphic-layout-effect": "1.13.2"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@tamagui/build": "2.0.0-rc.32",
|
package/src/index.tsx
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useIsomorphicLayoutEffect } from '@vxrn/use-isomorphic-layout-effect'
|
|
2
2
|
import type { Scheme } from './systemScheme'
|
|
3
|
-
import { useUserScheme } from './userScheme'
|
|
3
|
+
import { setUserScheme, useUserScheme } from './userScheme'
|
|
4
4
|
|
|
5
5
|
// re-export types
|
|
6
6
|
export type { Scheme } from './systemScheme'
|
|
@@ -20,24 +20,44 @@ const storageKey = 'vxrn-scheme'
|
|
|
20
20
|
export function SchemeProvider({
|
|
21
21
|
children,
|
|
22
22
|
getClassName = (name) => `t_${name}`,
|
|
23
|
+
defaultScheme,
|
|
23
24
|
}: {
|
|
24
25
|
children: any
|
|
25
26
|
getClassName?: (name: Scheme) => string
|
|
27
|
+
/** Force a default scheme when no user preference is stored. Without this, falls back to system preference. */
|
|
28
|
+
defaultScheme?: Scheme
|
|
26
29
|
}) {
|
|
27
30
|
const { value } = useUserScheme()
|
|
28
31
|
|
|
29
32
|
if (process.env.TAMAGUI_TARGET !== 'native') {
|
|
33
|
+
// when defaultScheme is set and no stored preference, apply it on mount
|
|
34
|
+
useIsomorphicLayoutEffect(() => {
|
|
35
|
+
if (defaultScheme && typeof localStorage !== 'undefined') {
|
|
36
|
+
if (!localStorage.getItem(storageKey)) {
|
|
37
|
+
setUserScheme(defaultScheme)
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}, [])
|
|
41
|
+
|
|
30
42
|
useIsomorphicLayoutEffect(() => {
|
|
31
43
|
const toAdd = getClassName(value)
|
|
44
|
+
const toRemove = getClassName(value === 'light' ? 'dark' : 'light')
|
|
32
45
|
const { classList } = document.documentElement
|
|
46
|
+
classList.remove(toRemove)
|
|
33
47
|
if (!classList.contains(toAdd)) {
|
|
34
|
-
const toRemove = value === 'light' ? 'dark' : 'light'
|
|
35
|
-
classList.remove(getClassName(toRemove))
|
|
36
48
|
classList.add(toAdd)
|
|
37
49
|
}
|
|
38
50
|
}, [value])
|
|
39
51
|
}
|
|
40
52
|
|
|
53
|
+
const fallback = defaultScheme
|
|
54
|
+
? `'${defaultScheme}' === 'dark'`
|
|
55
|
+
: `window.matchMedia('(prefers-color-scheme: dark)').matches`
|
|
56
|
+
|
|
57
|
+
const seedStorage = defaultScheme
|
|
58
|
+
? `if(!e){localStorage.setItem('${storageKey}','${defaultScheme}')}`
|
|
59
|
+
: ''
|
|
60
|
+
|
|
41
61
|
return (
|
|
42
62
|
<>
|
|
43
63
|
{process.env.TAMAGUI_TARGET === 'native' ? null : (
|
|
@@ -48,8 +68,9 @@ export function SchemeProvider({
|
|
|
48
68
|
d.remove('${getClassName('light')}')
|
|
49
69
|
d.remove('${getClassName('dark')}')
|
|
50
70
|
let e = localStorage.getItem('${storageKey}')
|
|
71
|
+
${seedStorage}
|
|
51
72
|
let t = 'system' === e || !e
|
|
52
|
-
?
|
|
73
|
+
? ${fallback}
|
|
53
74
|
: e === 'dark'
|
|
54
75
|
t ? d.add('${getClassName('dark')}') : d.add('${getClassName('light')}')
|
|
55
76
|
`,
|
package/types/index.d.ts
CHANGED
|
@@ -3,9 +3,11 @@ export type { Scheme } from './systemScheme';
|
|
|
3
3
|
export type { SchemeSetting, UserScheme } from './userScheme';
|
|
4
4
|
export { getSystemScheme, useSystemScheme } from './systemScheme';
|
|
5
5
|
export { getUserScheme, onUserSchemeChange, setUserScheme, useUserScheme, } from './userScheme';
|
|
6
|
-
export declare function SchemeProvider({ children, getClassName, }: {
|
|
6
|
+
export declare function SchemeProvider({ children, getClassName, defaultScheme, }: {
|
|
7
7
|
children: any;
|
|
8
8
|
getClassName?: (name: Scheme) => string;
|
|
9
|
+
/** Force a default scheme when no user preference is stored. Without this, falls back to system preference. */
|
|
10
|
+
defaultScheme?: Scheme;
|
|
9
11
|
}): import("react/jsx-runtime").JSX.Element;
|
|
10
12
|
export declare function MetaTheme({ color, darkColor, lightColor, }: {
|
|
11
13
|
color?: string;
|
package/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAI5C,YAAY,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAC5C,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAG7D,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACjE,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,aAAa,GACd,MAAM,cAAc,CAAA;AAIrB,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,YAAoC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAI5C,YAAY,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAC5C,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAG7D,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACjE,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,aAAa,GACd,MAAM,cAAc,CAAA;AAIrB,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,YAAoC,EACpC,aAAa,GACd,EAAE;IACD,QAAQ,EAAE,GAAG,CAAA;IACb,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;IACvC,+GAA+G;IAC/G,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,2CAsDA;AAED,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,SAAS,EACT,UAAU,GACX,EAAE;IACD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;CACnB,2CAyBA"}
|