@tamagui/core 1.0.0-alpha.4 → 1.0.0-alpha.5
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/package.json +10 -5
- package/.ultra.cache.json +0 -1
- package/_/constants/constants.js +0 -14
- package/_/constants/constants.js.map +0 -7
- package/_/constants/platform.js +0 -20
- package/_/constants/platform.js.map +0 -7
- package/_/constants/pseudos.js +0 -18
- package/_/constants/pseudos.js.map +0 -7
- package/_/constants/rnw.js +0 -22
- package/_/constants/rnw.js.map +0 -7
- package/_/createComponent.js +0 -427
- package/_/createComponent.js.map +0 -7
- package/_/createShorthands.js +0 -10
- package/_/createShorthands.js.map +0 -7
- package/_/createTamagui.js +0 -122
- package/_/createTamagui.js.map +0 -7
- package/_/createTheme.js +0 -20
- package/_/createTheme.js.map +0 -7
- package/_/createTokens.js +0 -29
- package/_/createTokens.js.map +0 -7
- package/_/createVariable.js +0 -22
- package/_/createVariable.js.map +0 -7
- package/_/helpers/addStylesUsingClassname.js +0 -32
- package/_/helpers/addStylesUsingClassname.js.map +0 -7
- package/_/helpers/createMediaStyle.js +0 -34
- package/_/helpers/createMediaStyle.js.map +0 -7
- package/_/helpers/createTamaguiProvider.js +0 -42
- package/_/helpers/createTamaguiProvider.js.map +0 -7
- package/_/helpers/extendStaticConfig.js +0 -176
- package/_/helpers/extendStaticConfig.js.map +0 -7
- package/_/helpers/fixNativeShadow.js +0 -8
- package/_/helpers/fixNativeShadow.js.map +0 -7
- package/_/helpers/fixNativeShadow.native.js +0 -30
- package/_/helpers/fixNativeShadow.native.js.map +0 -7
- package/_/helpers/getSplitStyles.js +0 -160
- package/_/helpers/getSplitStyles.js.map +0 -7
- package/_/helpers/getStylesAtomic.js +0 -84
- package/_/helpers/getStylesAtomic.js.map +0 -7
- package/_/helpers/getStylesAtomic.native.js +0 -10
- package/_/helpers/getStylesAtomic.native.js.map +0 -7
- package/_/helpers/insertStyleRule.js +0 -24
- package/_/helpers/insertStyleRule.js.map +0 -7
- package/_/helpers/matchMedia.js +0 -15
- package/_/helpers/matchMedia.js.map +0 -7
- package/_/helpers/matchMedia.native.js +0 -8
- package/_/helpers/matchMedia.native.js.map +0 -7
- package/_/helpers/themeable.js +0 -26
- package/_/helpers/themeable.js.map +0 -7
- package/_/hooks/useConstant.js +0 -15
- package/_/hooks/useConstant.js.map +0 -7
- package/_/hooks/useFeatures.js +0 -75
- package/_/hooks/useFeatures.js.map +0 -7
- package/_/hooks/useForceUpdate.js +0 -28
- package/_/hooks/useForceUpdate.js.map +0 -7
- package/_/hooks/useMedia.js +0 -173
- package/_/hooks/useMedia.js.map +0 -7
- package/_/hooks/usePressable.js +0 -14
- package/_/hooks/usePressable.js.map +0 -7
- package/_/hooks/useTheme.js +0 -94
- package/_/hooks/useTheme.js.map +0 -7
- package/_/index.js +0 -30
- package/_/index.js.map +0 -7
- package/_/static/postProcessStyles.js +0 -18
- package/_/static/postProcessStyles.js.map +0 -7
- package/_/static.js +0 -12
- package/_/static.js.map +0 -7
- package/_/styled.js +0 -21
- package/_/styled.js.map +0 -7
- package/_/types.js +0 -1
- package/_/types.js.map +0 -7
- package/_/views/Animated.js +0 -79
- package/_/views/Animated.js.map +0 -7
- package/_/views/Stack.js +0 -12
- package/_/views/Stack.js.map +0 -7
- package/_/views/Text.js +0 -60
- package/_/views/Text.js.map +0 -7
- package/_/views/TextAncestorContext.js +0 -19
- package/_/views/TextAncestorContext.js.map +0 -7
- package/_/views/Theme.js +0 -57
- package/_/views/Theme.js.map +0 -7
- package/_/views/ThemeContext.js +0 -6
- package/_/views/ThemeContext.js.map +0 -7
- package/_/views/ThemeInverse.js +0 -27
- package/_/views/ThemeInverse.js.map +0 -7
- package/_/views/ThemeManagerContext.js +0 -56
- package/_/views/ThemeManagerContext.js.map +0 -7
- package/_/views/ThemeProvider.js +0 -45
- package/_/views/ThemeProvider.js.map +0 -7
- package/tsconfig.json +0 -8
package/_/views/Text.js.map
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/views/Text.tsx"],
|
|
4
|
-
"sourcesContent": ["import { isWeb } from '../constants/platform'\nimport { createComponent } from '../createComponent'\nimport { stylePropsTextOnly, validStyles } from '../static'\nimport { TextProps } from '../types'\n\nconst ellipseStyle = {\n maxWidth: '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n}\n\nexport const Text = createComponent<TextProps>({\n isText: true,\n defaultProps: {\n display: isWeb ? 'inline' : 'inline-flex',\n boxSizing: 'border-box',\n fontFamily: 'System',\n wordWrap: 'break-word',\n },\n variants: {\n numberOfLines: {\n 1: ellipseStyle,\n // TODO imply fn, test 1, could do types `>1` `<2`\n '[number]': (lines) => (lines > 1 ? { WebkitLineClamp: 1 } : null),\n },\n\n selectable: {\n true: {\n userSelect: 'text',\n },\n false: {\n userSelect: 'none',\n },\n },\n\n pressable: {\n true: {\n cursor: 'pointer',\n },\n },\n\n ellipse: {\n true: isWeb\n ? ellipseStyle\n : {\n numberOfLines: 1,\n lineBreakMode: 'clip',\n },\n },\n },\n // TODO document\n deoptProps: new Set(isWeb ? [] : ['ellipse']),\n validStyles: {\n ...validStyles,\n ...stylePropsTextOnly,\n ...(isWeb && {\n userSelect: true,\n textOverflow: true,\n whiteSpace: true,\n wordWrap: true,\n selectable: true,\n cursor: true,\n }),\n },\n})\n"],
|
|
5
|
-
"mappings": "AAAA;AACA;AACA;AAGA,MAAM,eAAe;AAAA,EACnB,UAAU;AAAA,EACV,UAAU;AAAA,EACV,cAAc;AAAA,EACd,YAAY;AAAA;AAGP,MAAM,OAAO,gBAA2B;AAAA,EAC7C,QAAQ;AAAA,EACR,cAAc;AAAA,IACZ,SAAS,QAAQ,WAAW;AAAA,IAC5B,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA;AAAA,EAEZ,UAAU;AAAA,IACR,eAAe;AAAA,MACb,GAAG;AAAA,MAEH,YAAY,CAAC,UAAW,QAAQ,IAAI,EAAE,iBAAiB,MAAM;AAAA;AAAA,IAG/D,YAAY;AAAA,MACV,MAAM;AAAA,QACJ,YAAY;AAAA;AAAA,MAEd,OAAO;AAAA,QACL,YAAY;AAAA;AAAA;AAAA,IAIhB,WAAW;AAAA,MACT,MAAM;AAAA,QACJ,QAAQ;AAAA;AAAA;AAAA,IAIZ,SAAS;AAAA,MACP,MAAM,QACF,eACA;AAAA,QACE,eAAe;AAAA,QACf,eAAe;AAAA;AAAA;AAAA;AAAA,EAKzB,YAAY,IAAI,IAAI,QAAQ,KAAK,CAAC;AAAA,EAClC,aAAa;AAAA,OACR;AAAA,OACA;AAAA,OACC,SAAS;AAAA,MACX,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,YAAY;AAAA,MACZ,QAAQ;AAAA;AAAA;AAAA;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
-
var _a;
|
|
4
|
-
import React from "react";
|
|
5
|
-
import { rnw } from "../constants/rnw";
|
|
6
|
-
const TextAncestorContext = (_a = rnw) == null ? void 0 : _a.TextAncestorContext;
|
|
7
|
-
const TextAncestorProvider = /* @__PURE__ */ __name((props) => {
|
|
8
|
-
if (TextAncestorContext) {
|
|
9
|
-
return /* @__PURE__ */ React.createElement(TextAncestorContext.Provider, {
|
|
10
|
-
value: false
|
|
11
|
-
}, props.children);
|
|
12
|
-
}
|
|
13
|
-
return props.children;
|
|
14
|
-
}, "TextAncestorProvider");
|
|
15
|
-
export {
|
|
16
|
-
TextAncestorContext,
|
|
17
|
-
TextAncestorProvider
|
|
18
|
-
};
|
|
19
|
-
//# sourceMappingURL=TextAncestorContext.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/views/TextAncestorContext.tsx"],
|
|
4
|
-
"sourcesContent": ["import React from 'react'\n\nimport { rnw } from '../constants/rnw'\n\nexport const TextAncestorContext = rnw?.TextAncestorContext\n\nexport const TextAncestorProvider = (props) => {\n if (TextAncestorContext) {\n return <TextAncestorContext.Provider value={false}>{props.children}</TextAncestorContext.Provider>\n }\n return props.children\n}\n"],
|
|
5
|
-
"mappings": ";;AAAA;AAAA;AAEA;AAEO,MAAM,sBAAsB,iCAAK;AAEjC,MAAM,uBAAuB,wBAAC,UAAU;AAC7C,MAAI,qBAAqB;AACvB,WAAO,oCAAC,oBAAoB,UAArB;AAAA,MAA8B,OAAO;AAAA,OAAQ,MAAM;AAAA;AAE5D,SAAO,MAAM;AAAA,GAJqB;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
package/_/views/Theme.js
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
-
import React, { useContext, useState } from "react";
|
|
4
|
-
import { isWeb, useIsomorphicLayoutEffect } from "../constants/platform";
|
|
5
|
-
import { getThemeParentClassName } from "../createTamagui";
|
|
6
|
-
import { useConstant } from "../hooks/useConstant";
|
|
7
|
-
import { ThemeContext } from "./ThemeContext";
|
|
8
|
-
import { ThemeManager, ThemeManagerContext } from "./ThemeManagerContext";
|
|
9
|
-
const Theme = /* @__PURE__ */ __name((props) => {
|
|
10
|
-
var _a, _b;
|
|
11
|
-
const parent = useContext(ThemeManagerContext);
|
|
12
|
-
const themes = useContext(ThemeContext);
|
|
13
|
-
const [parentName, setParentName] = useState(parent.name || "light");
|
|
14
|
-
if (!themes) {
|
|
15
|
-
console.warn("no themes???", props);
|
|
16
|
-
return props.children;
|
|
17
|
-
}
|
|
18
|
-
const name = props.name;
|
|
19
|
-
const theme = themes[name] || themes[`${name}-${parentName}`];
|
|
20
|
-
const themeManager = useConstant(() => {
|
|
21
|
-
const manager = new ThemeManager();
|
|
22
|
-
if (name) {
|
|
23
|
-
manager.setActiveTheme(name, themes[name]);
|
|
24
|
-
}
|
|
25
|
-
return manager;
|
|
26
|
-
});
|
|
27
|
-
useIsomorphicLayoutEffect(() => {
|
|
28
|
-
themeManager.setActiveTheme(name, theme);
|
|
29
|
-
return parent.onChangeTheme((next) => {
|
|
30
|
-
if (next) {
|
|
31
|
-
themeManager.setActiveTheme(next, themes[next]);
|
|
32
|
-
setParentName(next);
|
|
33
|
-
}
|
|
34
|
-
});
|
|
35
|
-
}, [themes, name]);
|
|
36
|
-
if (!name) {
|
|
37
|
-
return props.children;
|
|
38
|
-
}
|
|
39
|
-
const contents = themeManager ? /* @__PURE__ */ React.createElement(ThemeManagerContext.Provider, {
|
|
40
|
-
value: themeManager
|
|
41
|
-
}, props.children) : props.children;
|
|
42
|
-
if (isWeb) {
|
|
43
|
-
if (props.disableThemeClass) {
|
|
44
|
-
return contents;
|
|
45
|
-
}
|
|
46
|
-
const color = (_b = (_a = themes[name]) == null ? void 0 : _a["color"]) == null ? void 0 : _b["variable"];
|
|
47
|
-
return /* @__PURE__ */ React.createElement("div", {
|
|
48
|
-
className: getThemeParentClassName(name),
|
|
49
|
-
style: { display: "contents", color }
|
|
50
|
-
}, contents);
|
|
51
|
-
}
|
|
52
|
-
return contents;
|
|
53
|
-
}, "Theme");
|
|
54
|
-
export {
|
|
55
|
-
Theme
|
|
56
|
-
};
|
|
57
|
-
//# sourceMappingURL=Theme.js.map
|
package/_/views/Theme.js.map
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/views/Theme.tsx"],
|
|
4
|
-
"sourcesContent": ["import React, { useContext, useState } from 'react'\n\nimport { isWeb, useIsomorphicLayoutEffect } from '../constants/platform'\nimport { getThemeParentClassName } from '../createTamagui'\nimport { useConstant } from '../hooks/useConstant'\nimport { ThemeName, Themes } from '../types'\nimport { ThemeContext } from './ThemeContext'\nimport { ThemeManager, ThemeManagerContext } from './ThemeManagerContext'\n\nexport type ThemeProps = {\n disableThemeClass?: boolean\n name: ThemeName | null\n children?: any\n}\n\nexport const Theme = (props: ThemeProps) => {\n const parent = useContext(ThemeManagerContext)\n const themes = useContext(ThemeContext)\n const [parentName, setParentName] = useState(parent.name || 'light')\n if (!themes) {\n console.warn('no themes???', props)\n return props.children\n }\n const name = props.name as string\n const theme = themes[name] || themes[`${name}-${parentName}`]\n const themeManager = useConstant<ThemeManager>(() => {\n const manager = new ThemeManager()\n if (name) {\n manager.setActiveTheme(name, themes[name])\n }\n return manager\n })\n\n useIsomorphicLayoutEffect(() => {\n themeManager.setActiveTheme(name, theme)\n return parent.onChangeTheme((next) => {\n if (next) {\n themeManager.setActiveTheme(next, themes[next])\n setParentName(next)\n }\n })\n }, [themes, name])\n\n if (!name) {\n return props.children\n }\n\n const contents = themeManager ? (\n <ThemeManagerContext.Provider value={themeManager}>\n {props.children}\n </ThemeManagerContext.Provider>\n ) : (\n props.children\n )\n\n if (isWeb) {\n if (props.disableThemeClass) {\n return contents\n }\n const color = themes[name]?.['color']?.['variable']\n return (\n <div\n className={getThemeParentClassName(name)}\n // in order to provide currentColor, set color by default\n style={{ display: 'contents', color }}\n >\n {contents}\n </div>\n )\n }\n\n return contents\n}\n"],
|
|
5
|
-
"mappings": ";;AAAA;AAEA;AACA;AACA;AAEA;AACA;AAQO,MAAM,QAAQ,wBAAC,UAAsB;AAf5C;AAgBE,QAAM,SAAS,WAAW;AAC1B,QAAM,SAAS,WAAW;AAC1B,QAAM,CAAC,YAAY,iBAAiB,SAAS,OAAO,QAAQ;AAC5D,MAAI,CAAC,QAAQ;AACX,YAAQ,KAAK,gBAAgB;AAC7B,WAAO,MAAM;AAAA;AAEf,QAAM,OAAO,MAAM;AACnB,QAAM,QAAQ,OAAO,SAAS,OAAO,GAAG,QAAQ;AAChD,QAAM,eAAe,YAA0B,MAAM;AACnD,UAAM,UAAU,IAAI;AACpB,QAAI,MAAM;AACR,cAAQ,eAAe,MAAM,OAAO;AAAA;AAEtC,WAAO;AAAA;AAGT,4BAA0B,MAAM;AAC9B,iBAAa,eAAe,MAAM;AAClC,WAAO,OAAO,cAAc,CAAC,SAAS;AACpC,UAAI,MAAM;AACR,qBAAa,eAAe,MAAM,OAAO;AACzC,sBAAc;AAAA;AAAA;AAAA,KAGjB,CAAC,QAAQ;AAEZ,MAAI,CAAC,MAAM;AACT,WAAO,MAAM;AAAA;AAGf,QAAM,WAAW,eACf,oCAAC,oBAAoB,UAArB;AAAA,IAA8B,OAAO;AAAA,KAClC,MAAM,YAGT,MAAM;AAGR,MAAI,OAAO;AACT,QAAI,MAAM,mBAAmB;AAC3B,aAAO;AAAA;AAET,UAAM,QAAQ,mBAAO,UAAP,mBAAe,aAAf,mBAA0B;AACxC,WACE,oCAAC,OAAD;AAAA,MACE,WAAW,wBAAwB;AAAA,MAEnC,OAAO,EAAE,SAAS,YAAY;AAAA,OAE7B;AAAA;AAKP,SAAO;AAAA,GAxDY;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
package/_/views/ThemeContext.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/views/ThemeContext.tsx"],
|
|
4
|
-
"sourcesContent": ["import { createContext } from 'react'\n\nimport { Themes } from '../types'\n\nexport const ThemeContext = createContext<Themes>(null as any)\n"],
|
|
5
|
-
"mappings": "AAAA;AAIO,MAAM,eAAe,cAAsB;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
package/_/views/ThemeInverse.js
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
-
import React from "react";
|
|
4
|
-
import { useDefaultThemeName, useThemeName } from "../hooks/useTheme";
|
|
5
|
-
import { Theme } from "./Theme";
|
|
6
|
-
let inversions = {
|
|
7
|
-
light: "dark",
|
|
8
|
-
dark: "light"
|
|
9
|
-
};
|
|
10
|
-
function setThemeInversions(next) {
|
|
11
|
-
inversions = next;
|
|
12
|
-
}
|
|
13
|
-
__name(setThemeInversions, "setThemeInversions");
|
|
14
|
-
const ThemeInverse = /* @__PURE__ */ __name((props) => {
|
|
15
|
-
const themeName = useThemeName();
|
|
16
|
-
const defaultTheme = useDefaultThemeName();
|
|
17
|
-
const name = inversions[themeName] || inversions[defaultTheme] || null;
|
|
18
|
-
console.log("todo fixme invert", { themeName, defaultTheme, next: name });
|
|
19
|
-
return /* @__PURE__ */ React.createElement(Theme, {
|
|
20
|
-
name
|
|
21
|
-
}, props.children);
|
|
22
|
-
}, "ThemeInverse");
|
|
23
|
-
export {
|
|
24
|
-
ThemeInverse,
|
|
25
|
-
setThemeInversions
|
|
26
|
-
};
|
|
27
|
-
//# sourceMappingURL=ThemeInverse.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/views/ThemeInverse.tsx"],
|
|
4
|
-
"sourcesContent": ["import React from 'react'\n\nimport { useDefaultThemeName, useThemeName } from '../hooks/useTheme'\nimport { Theme } from './Theme'\n\ntype StringRecord = { [key: string]: string }\n\nlet inversions: StringRecord = {\n light: 'dark',\n dark: 'light',\n}\n\nexport function setThemeInversions(next: StringRecord) {\n inversions = next\n}\n\nexport const ThemeInverse = (props: { children: any }) => {\n const themeName = useThemeName()\n const defaultTheme = useDefaultThemeName()\n const name = inversions[themeName] || inversions[defaultTheme] || null\n console.log('todo fixme invert', { themeName, defaultTheme, next: name })\n return <Theme name={name}>{props.children}</Theme>\n}\n"],
|
|
5
|
-
"mappings": ";;AAAA;AAEA;AACA;AAIA,IAAI,aAA2B;AAAA,EAC7B,OAAO;AAAA,EACP,MAAM;AAAA;AAGD,4BAA4B,MAAoB;AACrD,eAAa;AAAA;AADC;AAIT,MAAM,eAAe,wBAAC,UAA6B;AACxD,QAAM,YAAY;AAClB,QAAM,eAAe;AACrB,QAAM,OAAO,WAAW,cAAc,WAAW,iBAAiB;AAClE,UAAQ,IAAI,qBAAqB,EAAE,WAAW,cAAc,MAAM;AAClE,SAAO,oCAAC,OAAD;AAAA,IAAO;AAAA,KAAa,MAAM;AAAA,GALP;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
-
import { createContext } from "react";
|
|
4
|
-
class ThemeManager {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.name = "light";
|
|
7
|
-
this.keys = new Map();
|
|
8
|
-
this.listeners = new Map();
|
|
9
|
-
this.callbacks = new Set();
|
|
10
|
-
this.theme = null;
|
|
11
|
-
}
|
|
12
|
-
setActiveTheme(name, theme) {
|
|
13
|
-
if (name === this.name)
|
|
14
|
-
return;
|
|
15
|
-
this.name = name;
|
|
16
|
-
this.theme = theme;
|
|
17
|
-
this.update();
|
|
18
|
-
}
|
|
19
|
-
track(uuid, keys) {
|
|
20
|
-
if (!this.name)
|
|
21
|
-
return;
|
|
22
|
-
this.keys.set(uuid, keys);
|
|
23
|
-
}
|
|
24
|
-
update() {
|
|
25
|
-
var _a;
|
|
26
|
-
if (!this.name) {
|
|
27
|
-
this.keys.clear();
|
|
28
|
-
}
|
|
29
|
-
for (const [uuid, keys] of this.keys.entries()) {
|
|
30
|
-
if (keys.size) {
|
|
31
|
-
(_a = this.listeners.get(uuid)) == null ? void 0 : _a();
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
this.callbacks.forEach((cb) => cb(this.name));
|
|
35
|
-
}
|
|
36
|
-
onChangeTheme(cb) {
|
|
37
|
-
this.callbacks.add(cb);
|
|
38
|
-
return () => {
|
|
39
|
-
this.callbacks.delete(cb);
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
onUpdate(uuid, cb) {
|
|
43
|
-
this.listeners.set(uuid, cb);
|
|
44
|
-
return () => {
|
|
45
|
-
this.listeners.delete(uuid);
|
|
46
|
-
this.keys.delete(uuid);
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
__name(ThemeManager, "ThemeManager");
|
|
51
|
-
const ThemeManagerContext = createContext(new ThemeManager());
|
|
52
|
-
export {
|
|
53
|
-
ThemeManager,
|
|
54
|
-
ThemeManagerContext
|
|
55
|
-
};
|
|
56
|
-
//# sourceMappingURL=ThemeManagerContext.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/views/ThemeManagerContext.tsx"],
|
|
4
|
-
"sourcesContent": ["import { createContext } from 'react'\n\nexport class ThemeManager {\n name: string | null = 'light'\n keys = new Map<any, Set<string>>()\n listeners = new Map<any, Function>()\n callbacks = new Set<Function>()\n theme = null\n\n setActiveTheme(name: string | null, theme?: any) {\n if (name === this.name) return\n this.name = name\n this.theme = theme\n this.update()\n }\n\n track(uuid: any, keys: Set<string>) {\n if (!this.name) return\n this.keys.set(uuid, keys)\n }\n\n update() {\n if (!this.name) {\n this.keys.clear()\n }\n for (const [uuid, keys] of this.keys.entries()) {\n if (keys.size) {\n this.listeners.get(uuid)?.()\n }\n }\n this.callbacks.forEach((cb) => cb(this.name))\n }\n\n onChangeTheme(cb: (name: string | null) => void) {\n this.callbacks.add(cb)\n return () => {\n this.callbacks.delete(cb)\n }\n }\n\n onUpdate(uuid: any, cb: Function) {\n this.listeners.set(uuid, cb)\n return () => {\n this.listeners.delete(uuid)\n this.keys.delete(uuid)\n }\n }\n}\n\nexport const ThemeManagerContext = createContext<ThemeManager>(new ThemeManager())\n"],
|
|
5
|
-
"mappings": ";;AAAA;AAEO,mBAAmB;AAAA,EAAnB,cAFP;AAGE,gBAAsB;AACtB,gBAAO,IAAI;AACX,qBAAY,IAAI;AAChB,qBAAY,IAAI;AAChB,iBAAQ;AAAA;AAAA,EAER,eAAe,MAAqB,OAAa;AAC/C,QAAI,SAAS,KAAK;AAAM;AACxB,SAAK,OAAO;AACZ,SAAK,QAAQ;AACb,SAAK;AAAA;AAAA,EAGP,MAAM,MAAW,MAAmB;AAClC,QAAI,CAAC,KAAK;AAAM;AAChB,SAAK,KAAK,IAAI,MAAM;AAAA;AAAA,EAGtB,SAAS;AArBX;AAsBI,QAAI,CAAC,KAAK,MAAM;AACd,WAAK,KAAK;AAAA;AAEZ,eAAW,CAAC,MAAM,SAAS,KAAK,KAAK,WAAW;AAC9C,UAAI,KAAK,MAAM;AACb,mBAAK,UAAU,IAAI,UAAnB;AAAA;AAAA;AAGJ,SAAK,UAAU,QAAQ,CAAC,OAAO,GAAG,KAAK;AAAA;AAAA,EAGzC,cAAc,IAAmC;AAC/C,SAAK,UAAU,IAAI;AACnB,WAAO,MAAM;AACX,WAAK,UAAU,OAAO;AAAA;AAAA;AAAA,EAI1B,SAAS,MAAW,IAAc;AAChC,SAAK,UAAU,IAAI,MAAM;AACzB,WAAO,MAAM;AACX,WAAK,UAAU,OAAO;AACtB,WAAK,KAAK,OAAO;AAAA;AAAA;AAAA;AA1ChB;AA+CA,MAAM,sBAAsB,cAA4B,IAAI;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
package/_/views/ThemeProvider.js
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
-
import React, { useMemo } from "react";
|
|
4
|
-
import { useIsomorphicLayoutEffect } from "../constants/platform";
|
|
5
|
-
import { getHasConfigured, getThemeParentClassName } from "../createTamagui";
|
|
6
|
-
import { Theme } from "./Theme";
|
|
7
|
-
import { ThemeContext } from "./ThemeContext";
|
|
8
|
-
const GET_DEFAULT_THEME = "___TGUI";
|
|
9
|
-
const ThemeProvider = /* @__PURE__ */ __name((props) => {
|
|
10
|
-
if (!getHasConfigured()) {
|
|
11
|
-
throw new Error(`Missing configureThemes() call, add to your root file`);
|
|
12
|
-
}
|
|
13
|
-
useIsomorphicLayoutEffect(() => {
|
|
14
|
-
if (props.disableRootThemeClass) {
|
|
15
|
-
return;
|
|
16
|
-
}
|
|
17
|
-
if (typeof document !== "undefined") {
|
|
18
|
-
const cns = getThemeParentClassName(`${props.defaultTheme}`).split(" ");
|
|
19
|
-
cns.forEach((cn) => document.body.classList.add(cn));
|
|
20
|
-
return () => {
|
|
21
|
-
cns.forEach((cn) => document.body.classList.remove(cn));
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
}, []);
|
|
25
|
-
const themeContext = useMemo(() => {
|
|
26
|
-
return new Proxy(props.themes, {
|
|
27
|
-
get(target, key) {
|
|
28
|
-
if (key === GET_DEFAULT_THEME)
|
|
29
|
-
return props.defaultTheme;
|
|
30
|
-
return Reflect.get(target, key);
|
|
31
|
-
}
|
|
32
|
-
});
|
|
33
|
-
}, [props.themes]);
|
|
34
|
-
return /* @__PURE__ */ React.createElement(ThemeContext.Provider, {
|
|
35
|
-
value: themeContext
|
|
36
|
-
}, /* @__PURE__ */ React.createElement(Theme, {
|
|
37
|
-
name: props.defaultTheme,
|
|
38
|
-
disableThemeClass: props.disableRootThemeClass
|
|
39
|
-
}, props.children));
|
|
40
|
-
}, "ThemeProvider");
|
|
41
|
-
export {
|
|
42
|
-
GET_DEFAULT_THEME,
|
|
43
|
-
ThemeProvider
|
|
44
|
-
};
|
|
45
|
-
//# sourceMappingURL=ThemeProvider.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/views/ThemeProvider.tsx"],
|
|
4
|
-
"sourcesContent": ["import React, { useMemo } from 'react'\n\nimport { useIsomorphicLayoutEffect } from '../constants/platform'\nimport { getHasConfigured, getThemeParentClassName } from '../createTamagui'\nimport { Theme } from './Theme'\nimport { ThemeContext } from './ThemeContext'\n\nexport type ThemeProviderProps = {\n themes: any\n defaultTheme: string\n disableRootThemeClass?: boolean\n children?: any\n}\n\nexport const GET_DEFAULT_THEME = '___TGUI'\n\nexport const ThemeProvider = (props: ThemeProviderProps) => {\n if (!getHasConfigured()) {\n throw new Error(`Missing configureThemes() call, add to your root file`)\n }\n\n // ensure theme is attached to root body node as well to work with modals by default\n useIsomorphicLayoutEffect(() => {\n if (props.disableRootThemeClass) {\n return\n }\n if (typeof document !== 'undefined') {\n const cns = getThemeParentClassName(`${props.defaultTheme}`).split(' ')\n cns.forEach((cn) => document.body.classList.add(cn))\n return () => {\n cns.forEach((cn) => document.body.classList.remove(cn))\n }\n }\n }, [])\n\n const themeContext = useMemo(() => {\n return new Proxy(props.themes, {\n get(target, key) {\n if (key === GET_DEFAULT_THEME) return props.defaultTheme\n return Reflect.get(target, key)\n },\n })\n }, [props.themes])\n\n return (\n <ThemeContext.Provider value={themeContext}>\n <Theme name={props.defaultTheme} disableThemeClass={props.disableRootThemeClass}>\n {props.children}\n </Theme>\n </ThemeContext.Provider>\n )\n}\n"],
|
|
5
|
-
"mappings": ";;AAAA;AAEA;AACA;AACA;AACA;AASO,MAAM,oBAAoB;AAE1B,MAAM,gBAAgB,wBAAC,UAA8B;AAC1D,MAAI,CAAC,oBAAoB;AACvB,UAAM,IAAI,MAAM;AAAA;AAIlB,4BAA0B,MAAM;AAC9B,QAAI,MAAM,uBAAuB;AAC/B;AAAA;AAEF,QAAI,OAAO,aAAa,aAAa;AACnC,YAAM,MAAM,wBAAwB,GAAG,MAAM,gBAAgB,MAAM;AACnE,UAAI,QAAQ,CAAC,OAAO,SAAS,KAAK,UAAU,IAAI;AAChD,aAAO,MAAM;AACX,YAAI,QAAQ,CAAC,OAAO,SAAS,KAAK,UAAU,OAAO;AAAA;AAAA;AAAA,KAGtD;AAEH,QAAM,eAAe,QAAQ,MAAM;AACjC,WAAO,IAAI,MAAM,MAAM,QAAQ;AAAA,MAC7B,IAAI,QAAQ,KAAK;AACf,YAAI,QAAQ;AAAmB,iBAAO,MAAM;AAC5C,eAAO,QAAQ,IAAI,QAAQ;AAAA;AAAA;AAAA,KAG9B,CAAC,MAAM;AAEV,SACE,oCAAC,aAAa,UAAd;AAAA,IAAuB,OAAO;AAAA,KAC5B,oCAAC,OAAD;AAAA,IAAO,MAAM,MAAM;AAAA,IAAc,mBAAmB,MAAM;AAAA,KACvD,MAAM;AAAA,GA/Bc;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|