@tamagui/core 1.0.0-beta.153 → 1.0.0-beta.181
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/Tamagui.js +13 -1
- package/dist/cjs/Tamagui.js.map +2 -2
- package/dist/cjs/ThemeContext.js +4 -0
- package/dist/cjs/ThemeManager.js +30 -14
- package/dist/cjs/ThemeManager.js.map +2 -2
- package/dist/cjs/conf.js +10 -1
- package/dist/cjs/conf.js.map +2 -2
- package/dist/cjs/constants/constants.js +6 -0
- package/dist/cjs/constants/platform.js +12 -0
- package/dist/cjs/constants/rnw.js +4 -0
- package/dist/cjs/contexts/ButtonInsideButtonContext.js +4 -0
- package/dist/cjs/createComponent.js +78 -54
- package/dist/cjs/createComponent.js.map +2 -2
- package/dist/cjs/createFont.js +4 -0
- package/dist/cjs/createShorthands.js +4 -0
- package/dist/cjs/createTamagui.js +4 -0
- package/dist/cjs/createTamagui.js.map +2 -2
- package/dist/cjs/createTheme.js +4 -0
- package/dist/cjs/createTokens.js +5 -0
- package/dist/cjs/createTokens.js.map +1 -1
- package/dist/cjs/createVariable.js +9 -0
- package/dist/cjs/helpers/RNComponents.js +4 -0
- package/dist/cjs/helpers/addStylesUsingClassname.js +8 -0
- package/dist/cjs/helpers/addStylesUsingClassname.js.map +2 -2
- package/dist/cjs/helpers/areEqualSets.js +4 -0
- package/dist/cjs/helpers/createMediaStyle.js +5 -2
- package/dist/cjs/helpers/createMediaStyle.js.map +2 -2
- package/dist/cjs/helpers/createPropMapper.js +11 -12
- package/dist/cjs/helpers/createPropMapper.js.map +2 -2
- package/dist/cjs/helpers/createShallowUpdate.js +4 -0
- package/dist/cjs/helpers/createTamaguiProvider.js +4 -0
- package/dist/cjs/helpers/extendStaticConfig.js +8 -6
- package/dist/cjs/helpers/extendStaticConfig.js.map +2 -2
- package/dist/cjs/helpers/fixNativeShadow.js +4 -0
- package/dist/cjs/helpers/fixNativeShadow.native.js +6 -2
- package/dist/cjs/helpers/fixNativeShadow.native.js.map +2 -2
- package/dist/cjs/helpers/getExpandedShorthands.js +4 -0
- package/dist/cjs/helpers/getSplitStyles.js +70 -34
- package/dist/cjs/helpers/getSplitStyles.js.map +2 -2
- package/dist/cjs/helpers/getStylesAtomic.js +20 -3
- package/dist/cjs/helpers/getStylesAtomic.js.map +2 -2
- package/dist/cjs/helpers/getStylesAtomic.native.js +4 -0
- package/dist/cjs/helpers/insertStyleRule.js +41 -27
- package/dist/cjs/helpers/insertStyleRule.js.map +2 -2
- package/dist/cjs/helpers/isObj.js +4 -0
- package/dist/cjs/helpers/isTamaguiElement.js +4 -0
- package/dist/cjs/helpers/matchMedia.js +4 -0
- package/dist/cjs/helpers/matchMedia.native.js +4 -0
- package/dist/cjs/helpers/themeable.js +8 -2
- package/dist/cjs/helpers/themeable.js.map +2 -2
- package/dist/cjs/helpers/validate.js +46 -5
- package/dist/cjs/helpers/validate.js.map +2 -2
- package/dist/cjs/helpers/withStaticProperties.js +4 -0
- package/dist/cjs/helpers/wrapThemeManagerContext.js +4 -0
- package/dist/cjs/hooks/useConstant.js +4 -0
- package/dist/cjs/hooks/useFeatures.js +4 -0
- package/dist/cjs/hooks/useIsMounted.js +4 -0
- package/dist/cjs/hooks/useIsTouchDevice.js +4 -0
- package/dist/cjs/hooks/useMedia.js +15 -0
- package/dist/cjs/hooks/useMedia.js.map +2 -2
- package/dist/cjs/hooks/usePressable.js +4 -0
- package/dist/cjs/hooks/useTheme.js +16 -0
- package/dist/cjs/hooks/useTheme.js.map +2 -2
- package/dist/cjs/hooks/useUnmountEffect.js +4 -0
- package/dist/cjs/index.js +14 -0
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/styled.js +7 -4
- package/dist/cjs/styled.js.map +2 -2
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/views/Stack.js +4 -0
- package/dist/cjs/views/Text.js +4 -0
- package/dist/cjs/views/TextAncestorContext.js +6 -0
- package/dist/cjs/views/Theme.js +10 -3
- package/dist/cjs/views/Theme.js.map +2 -2
- package/dist/cjs/views/ThemeInverse.js +5 -0
- package/dist/cjs/views/ThemeProvider.js +4 -0
- package/dist/cjs/views/ThemeReset.js +4 -0
- package/dist/esm/Tamagui.js +8 -2
- package/dist/esm/Tamagui.js.map +2 -2
- package/dist/esm/ThemeManager.js +21 -11
- package/dist/esm/ThemeManager.js.map +2 -2
- package/dist/esm/conf.js +0 -1
- package/dist/esm/conf.js.map +2 -2
- package/dist/esm/createComponent.js +68 -54
- package/dist/esm/createComponent.js.map +2 -2
- package/dist/esm/createTamagui.js.map +2 -2
- package/dist/esm/createTokens.js.map +1 -1
- package/dist/esm/helpers/addStylesUsingClassname.js +4 -1
- package/dist/esm/helpers/addStylesUsingClassname.js.map +2 -2
- package/dist/esm/helpers/createMediaStyle.js +0 -2
- package/dist/esm/helpers/createMediaStyle.js.map +2 -2
- package/dist/esm/helpers/createPropMapper.js +7 -12
- package/dist/esm/helpers/createPropMapper.js.map +2 -2
- package/dist/esm/helpers/extendStaticConfig.js +5 -6
- package/dist/esm/helpers/extendStaticConfig.js.map +2 -2
- package/dist/esm/helpers/fixNativeShadow.native.js +2 -2
- package/dist/esm/helpers/fixNativeShadow.native.js.map +2 -2
- package/dist/esm/helpers/getSplitStyles.js +65 -35
- package/dist/esm/helpers/getSplitStyles.js.map +2 -2
- package/dist/esm/helpers/getStylesAtomic.js +15 -3
- package/dist/esm/helpers/getStylesAtomic.js.map +2 -2
- package/dist/esm/helpers/insertStyleRule.js +31 -27
- package/dist/esm/helpers/insertStyleRule.js.map +2 -2
- package/dist/esm/helpers/themeable.js +4 -2
- package/dist/esm/helpers/themeable.js.map +2 -2
- package/dist/esm/helpers/validate.js +17 -5
- package/dist/esm/helpers/validate.js.map +2 -2
- package/dist/esm/hooks/useMedia.js +4 -0
- package/dist/esm/hooks/useMedia.js.map +2 -2
- package/dist/esm/hooks/useTheme.js +8 -0
- package/dist/esm/hooks/useTheme.js.map +2 -2
- package/dist/esm/index.js +3 -0
- package/dist/esm/index.js.map +2 -2
- package/dist/esm/styled.js +3 -4
- package/dist/esm/styled.js.map +2 -2
- package/dist/esm/views/Theme.js +6 -3
- package/dist/esm/views/Theme.js.map +2 -2
- package/dist/jsx/Tamagui.js +8 -2
- package/dist/jsx/ThemeManager.js +21 -11
- package/dist/jsx/conf.js +0 -1
- package/dist/jsx/createComponent.js +64 -50
- package/dist/jsx/helpers/addStylesUsingClassname.js +4 -1
- package/dist/jsx/helpers/createMediaStyle.js +0 -2
- package/dist/jsx/helpers/createPropMapper.js +7 -12
- package/dist/jsx/helpers/extendStaticConfig.js +5 -6
- package/dist/jsx/helpers/fixNativeShadow.native.js +2 -2
- package/dist/jsx/helpers/getSplitStyles.js +65 -35
- package/dist/jsx/helpers/getStylesAtomic.js +15 -3
- package/dist/jsx/helpers/insertStyleRule.js +31 -27
- package/dist/jsx/helpers/themeable.js +4 -3
- package/dist/jsx/helpers/validate.js +17 -5
- package/dist/jsx/hooks/useMedia.js +4 -0
- package/dist/jsx/hooks/useTheme.js +8 -0
- package/dist/jsx/index.js +3 -0
- package/dist/jsx/styled.js +3 -4
- package/dist/jsx/views/Theme.js +7 -4
- package/package.json +6 -6
- package/types/Tamagui.d.ts +14 -1
- package/types/Tamagui.d.ts.map +1 -1
- package/types/ThemeManager.d.ts +3 -3
- package/types/ThemeManager.d.ts.map +1 -1
- package/types/conf.d.ts.map +1 -1
- package/types/createComponent.d.ts +3 -4
- package/types/createComponent.d.ts.map +1 -1
- package/types/createTamagui.d.ts.map +1 -1
- package/types/createTokens.d.ts +8 -0
- package/types/createTokens.d.ts.map +1 -1
- package/types/helpers/addStylesUsingClassname.d.ts.map +1 -1
- package/types/helpers/createMediaStyle.d.ts.map +1 -1
- package/types/helpers/createPropMapper.d.ts +1 -1
- package/types/helpers/createPropMapper.d.ts.map +1 -1
- package/types/helpers/extendStaticConfig.d.ts +2 -2
- package/types/helpers/extendStaticConfig.d.ts.map +1 -1
- package/types/helpers/getSplitStyles.d.ts +2 -1
- package/types/helpers/getSplitStyles.d.ts.map +1 -1
- package/types/helpers/getStylesAtomic.d.ts.map +1 -1
- package/types/helpers/insertStyleRule.d.ts +2 -1
- package/types/helpers/insertStyleRule.d.ts.map +1 -1
- package/types/helpers/themeable.d.ts +3 -1
- package/types/helpers/themeable.d.ts.map +1 -1
- package/types/helpers/validate.d.ts.map +1 -1
- package/types/hooks/useMedia.d.ts +3 -3
- package/types/hooks/useMedia.d.ts.map +1 -1
- package/types/hooks/useTheme.d.ts +1 -1
- package/types/hooks/useTheme.d.ts.map +1 -1
- package/types/index.d.ts +1 -0
- package/types/index.d.ts.map +1 -1
- package/types/styled.d.ts +12 -3
- package/types/styled.d.ts.map +1 -1
- package/types/types.d.ts +43 -25
- package/types/types.d.ts.map +1 -1
- package/types/views/Theme.d.ts +1 -0
- package/types/views/Theme.d.ts.map +1 -1
package/dist/cjs/Tamagui.js
CHANGED
|
@@ -27,14 +27,20 @@ __export(Tamagui_exports, {
|
|
|
27
27
|
});
|
|
28
28
|
module.exports = __toCommonJS(Tamagui_exports);
|
|
29
29
|
var Helpers = __toESM(require("@tamagui/helpers"));
|
|
30
|
+
var import_conf = require("./conf");
|
|
30
31
|
var import_rnw = require("./constants/rnw");
|
|
31
32
|
var import_insertStyleRule = require("./helpers/insertStyleRule");
|
|
32
33
|
class TamaguiManager {
|
|
33
34
|
constructor() {
|
|
34
|
-
this.config = null;
|
|
35
35
|
this.rnw = import_rnw.rnw;
|
|
36
36
|
this.Helpers = Helpers;
|
|
37
37
|
}
|
|
38
|
+
get config() {
|
|
39
|
+
return (0, import_conf.getConfig)();
|
|
40
|
+
}
|
|
41
|
+
get insertedRules() {
|
|
42
|
+
return (0, import_insertStyleRule.getInsertedRules)();
|
|
43
|
+
}
|
|
38
44
|
get allSelectors() {
|
|
39
45
|
return (0, import_insertStyleRule.getAllSelectors)();
|
|
40
46
|
}
|
|
@@ -54,4 +60,10 @@ const getValueFromIdentifier = /* @__PURE__ */ __name((identifier) => {
|
|
|
54
60
|
const setIdentifierValue = /* @__PURE__ */ __name((identifier, value) => {
|
|
55
61
|
identifierToValue.set(identifier, value);
|
|
56
62
|
}, "setIdentifierValue");
|
|
63
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
64
|
+
0 && (module.exports = {
|
|
65
|
+
Tamagui,
|
|
66
|
+
getValueFromIdentifier,
|
|
67
|
+
setIdentifierValue
|
|
68
|
+
});
|
|
57
69
|
//# sourceMappingURL=Tamagui.js.map
|
package/dist/cjs/Tamagui.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/Tamagui.ts"],
|
|
4
|
-
"sourcesContent": ["import * as Helpers from '@tamagui/helpers'\n\nimport { rnw } from './constants/rnw'\nimport { getAllSelectors, getAllTransforms } from './helpers/insertStyleRule'\nimport { TamaguiInternalConfig } from './types'\n\n// serves a central store for state\n\nclass TamaguiManager {\n
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAAyB;AAEzB,iBAAoB;AACpB,
|
|
4
|
+
"sourcesContent": ["import * as Helpers from '@tamagui/helpers'\n\nimport { getConfig } from './conf'\nimport { rnw } from './constants/rnw'\nimport { getAllSelectors, getAllTransforms, getInsertedRules } from './helpers/insertStyleRule'\nimport { TamaguiInternalConfig } from './types'\n\n// serves a central store for state\n\nclass TamaguiManager {\n rnw = rnw\n Helpers = Helpers\n\n get config() {\n return getConfig()\n }\n\n get insertedRules() {\n return getInsertedRules()\n }\n\n get allSelectors() {\n return getAllSelectors()\n }\n\n get allTransforms() {\n return getAllTransforms()\n }\n\n get identifierToValue() {\n return identifierToValue\n }\n}\n\nexport const Tamagui = new TamaguiManager()\n\nconst identifierToValue = new Map<string, any>()\n\nexport const getValueFromIdentifier = (identifier: string) => {\n return identifierToValue.get(identifier)\n}\n\nexport const setIdentifierValue = (identifier: string, value: any) => {\n identifierToValue.set(identifier, value)\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAAyB;AAEzB,kBAA0B;AAC1B,iBAAoB;AACpB,6BAAoE;AAKpE,MAAM,eAAe;AAAA,EAArB;AACE,eAAM;AACN,mBAAU;AAAA;AAAA,MAEN,SAAS;AACX,WAAO,2BAAU;AAAA,EACnB;AAAA,MAEI,gBAAgB;AAClB,WAAO,6CAAiB;AAAA,EAC1B;AAAA,MAEI,eAAe;AACjB,WAAO,4CAAgB;AAAA,EACzB;AAAA,MAEI,gBAAgB;AAClB,WAAO,6CAAiB;AAAA,EAC1B;AAAA,MAEI,oBAAoB;AACtB,WAAO;AAAA,EACT;AACF;AAvBA;AAyBO,MAAM,UAAU,IAAI,eAAe;AAE1C,MAAM,oBAAoB,oBAAI,IAAiB;AAExC,MAAM,yBAAyB,wBAAC,eAAuB;AAC5D,SAAO,kBAAkB,IAAI,UAAU;AACzC,GAFsC;AAI/B,MAAM,qBAAqB,wBAAC,YAAoB,UAAe;AACpE,oBAAkB,IAAI,YAAY,KAAK;AACzC,GAFkC;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/cjs/ThemeContext.js
CHANGED
|
@@ -22,4 +22,8 @@ __export(ThemeContext_exports, {
|
|
|
22
22
|
module.exports = __toCommonJS(ThemeContext_exports);
|
|
23
23
|
var import_react = require("react");
|
|
24
24
|
const ThemeContext = (0, import_react.createContext)(null);
|
|
25
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
26
|
+
0 && (module.exports = {
|
|
27
|
+
ThemeContext
|
|
28
|
+
});
|
|
25
29
|
//# sourceMappingURL=ThemeContext.js.map
|
package/dist/cjs/ThemeManager.js
CHANGED
|
@@ -38,10 +38,10 @@ __export(ThemeManager_exports, {
|
|
|
38
38
|
module.exports = __toCommonJS(ThemeManager_exports);
|
|
39
39
|
var import_react = require("react");
|
|
40
40
|
var import_conf = require("./conf");
|
|
41
|
-
var
|
|
41
|
+
var import_constants = require("./constants/constants");
|
|
42
42
|
var _getClassName, getClassName_fn;
|
|
43
43
|
class ThemeManager {
|
|
44
|
-
constructor(name =
|
|
44
|
+
constructor(name = "", theme = null, parentManager = null) {
|
|
45
45
|
this.name = name;
|
|
46
46
|
this.theme = theme;
|
|
47
47
|
this.parentManager = parentManager;
|
|
@@ -99,7 +99,7 @@ class ThemeManager {
|
|
|
99
99
|
return false;
|
|
100
100
|
}
|
|
101
101
|
this.className = className || null;
|
|
102
|
-
this.name = name ||
|
|
102
|
+
this.name = name || "";
|
|
103
103
|
this.theme = theme;
|
|
104
104
|
this.notifyListeners();
|
|
105
105
|
return true;
|
|
@@ -108,10 +108,14 @@ class ThemeManager {
|
|
|
108
108
|
const { themes = (0, import_conf.getThemes)(), name, componentName } = opts;
|
|
109
109
|
if (!name) {
|
|
110
110
|
if (componentName) {
|
|
111
|
-
const
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
111
|
+
const names = [
|
|
112
|
+
`${this.name}_${componentName}`,
|
|
113
|
+
`${withoutComponentName(this.name)}_${componentName}`
|
|
114
|
+
];
|
|
115
|
+
for (const name2 of names) {
|
|
116
|
+
if (name2 in themes) {
|
|
117
|
+
return { name: name2, theme: themes[name2], className: __privateMethod(this, _getClassName, getClassName_fn).call(this, name2) };
|
|
118
|
+
}
|
|
115
119
|
}
|
|
116
120
|
}
|
|
117
121
|
return {
|
|
@@ -129,16 +133,21 @@ class ThemeManager {
|
|
|
129
133
|
if (nextName in themes) {
|
|
130
134
|
break;
|
|
131
135
|
}
|
|
132
|
-
if (!parentName.includes(
|
|
136
|
+
if (!parentName.includes(import_constants.THEME_NAME_SEPARATOR)) {
|
|
133
137
|
console.warn("theme not found", name);
|
|
134
138
|
break;
|
|
135
139
|
}
|
|
136
|
-
parentName = parentName.slice(0, parentName.lastIndexOf(
|
|
140
|
+
parentName = parentName.slice(0, parentName.lastIndexOf(import_constants.THEME_NAME_SEPARATOR));
|
|
137
141
|
}
|
|
138
142
|
if (componentName) {
|
|
139
|
-
const
|
|
140
|
-
|
|
141
|
-
nextName
|
|
143
|
+
const names = [
|
|
144
|
+
`${nextName}_${componentName}`,
|
|
145
|
+
`${withoutComponentName(nextName)}_${componentName}`
|
|
146
|
+
];
|
|
147
|
+
for (const name2 of names) {
|
|
148
|
+
if (name2 in themes) {
|
|
149
|
+
nextName = name2;
|
|
150
|
+
}
|
|
142
151
|
}
|
|
143
152
|
}
|
|
144
153
|
let theme = themes[nextName];
|
|
@@ -146,7 +155,7 @@ class ThemeManager {
|
|
|
146
155
|
theme = themes[`light_${nextName}`];
|
|
147
156
|
}
|
|
148
157
|
if (process.env.NODE_ENV === "development" && props && props["debug"]) {
|
|
149
|
-
console.log("getNextTheme", { opts, nextName, parentName }
|
|
158
|
+
console.log("getNextTheme", { name: opts.name, nextName, parentName });
|
|
150
159
|
}
|
|
151
160
|
return {
|
|
152
161
|
name: nextName,
|
|
@@ -188,8 +197,15 @@ class ThemeManager {
|
|
|
188
197
|
__name(ThemeManager, "ThemeManager");
|
|
189
198
|
_getClassName = new WeakSet();
|
|
190
199
|
getClassName_fn = /* @__PURE__ */ __name(function(name) {
|
|
191
|
-
return `${
|
|
200
|
+
return `${import_constants.THEME_CLASSNAME_PREFIX}${name} tui_theme`.replace("light_", "").replace("dark_", "");
|
|
192
201
|
}, "#getClassName");
|
|
193
202
|
const ThemeManagerContext = (0, import_react.createContext)(null);
|
|
194
203
|
const emptyManager = new ThemeManager();
|
|
204
|
+
const withoutComponentName = /* @__PURE__ */ __name((name) => name.replace(/\_[A-Z][a-z]+$/, ""), "withoutComponentName");
|
|
205
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
206
|
+
0 && (module.exports = {
|
|
207
|
+
ThemeManager,
|
|
208
|
+
ThemeManagerContext,
|
|
209
|
+
emptyManager
|
|
210
|
+
});
|
|
195
211
|
//# sourceMappingURL=ThemeManager.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/ThemeManager.tsx"],
|
|
4
|
-
"sourcesContent": ["import { createContext } from 'react'\n\nimport { getThemes } from './conf'\nimport { THEME_CLASSNAME_PREFIX, THEME_NAME_SEPARATOR } from './
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA8B;AAE9B,kBAA0B;AAC1B,
|
|
4
|
+
"sourcesContent": ["import { createContext } from 'react'\n\nimport { getThemes } from './conf'\nimport { THEME_CLASSNAME_PREFIX, THEME_NAME_SEPARATOR } from './constants/constants'\nimport { ThemeObject, Themes } from './types'\n\ntype ThemeListener = (name: string | null, themeManager: ThemeManager) => void\n\nexport type SetActiveThemeProps = {\n className?: string\n parentManager?: ThemeManager | null\n name?: string | null\n theme?: any\n}\n\nexport class ThemeManager {\n keys = new Map<any, Set<string>>()\n listeners = new Map<any, Function>()\n themeListeners = new Set<ThemeListener>()\n className: string | null = null\n\n constructor(\n public name: string = '',\n public theme: ThemeObject | null = null,\n public parentManager: ThemeManager | null = null\n ) {\n // find the nearest different parentManager\n let parent = parentManager\n let tries = 0\n while (true) {\n tries++\n if (tries > 10) {\n throw new Error(`Nested 10 of the same theme in a row, likely error`)\n }\n if (!parent) break\n if (parent.name === name) {\n // go up if same\n parent = parent.parentManager\n } else {\n this.parentManager = parent\n break\n }\n }\n }\n\n get parentName() {\n return this.parentManager?.name || null\n }\n\n get fullName(): string {\n return this.getNextTheme().name || this.name || ''\n // const parentName = this.parentManager?.fullName || ''\n // const name = this.name || ''\n // const parts = [...new Set([...`${parentName}_${name}`.split('_')])].filter(Boolean)\n // return parts.join('_')\n }\n\n // gets value going up to parents\n getValue(key: string) {\n let theme = this.theme\n let manager = this as ThemeManager | null\n while (true) {\n if (!theme) return\n if (key in theme) {\n return theme[key]\n }\n manager = this.parentManager\n if (!manager) {\n return\n }\n if (manager.theme === theme) {\n return\n }\n theme = manager.theme\n }\n }\n\n update({ name, theme, className }: SetActiveThemeProps = {}) {\n // className compare on web, avoids light/dark re-renders\n const sameNameOrClassName = this.className\n ? // == instead of === (sometimes its undefined/null)\n className == this.className\n : name === this.name\n if (sameNameOrClassName) {\n return false\n }\n this.className = className || null\n this.name = name || ''\n this.theme = theme\n this.notifyListeners()\n return true\n }\n\n getNextTheme(\n opts: { themes?: Themes; name?: string | null; componentName?: string | null } = {},\n props?: any\n ) {\n const { themes = getThemes(), name, componentName } = opts\n\n if (!name) {\n if (componentName) {\n // allow for _Card_Button or just _Button\n const names = [\n `${this.name}_${componentName}`,\n `${withoutComponentName(this.name)}_${componentName}`,\n ]\n for (const name of names) {\n if (name in themes) {\n return { name, theme: themes[name], className: this.#getClassName(name) }\n }\n }\n }\n return {\n name: this.name,\n theme: this.theme,\n }\n }\n\n let nextName = name || this.name || ''\n let parentName = this.fullName\n\n while (true) {\n if (nextName in themes) {\n break\n }\n nextName = `${parentName}_${name}`\n if (nextName in themes) {\n break\n }\n if (!parentName.includes(THEME_NAME_SEPARATOR)) {\n // not found!\n console.warn('theme not found', name)\n break\n }\n // go up one\n parentName = parentName.slice(0, parentName.lastIndexOf(THEME_NAME_SEPARATOR))\n }\n\n if (componentName) {\n // allow for _Card_Button or just _Button\n const names = [\n `${nextName}_${componentName}`,\n `${withoutComponentName(nextName)}_${componentName}`,\n ]\n for (const name of names) {\n if (name in themes) {\n nextName = name\n }\n }\n }\n\n let theme = themes[nextName]\n if (!theme) {\n theme = themes[`light_${nextName}`]\n }\n\n if (process.env.NODE_ENV === 'development' && props && props['debug']) {\n console.log('getNextTheme', { name: opts.name, nextName, parentName })\n }\n\n return {\n name: nextName,\n theme,\n className: this.#getClassName(nextName),\n }\n }\n\n #getClassName(name: string) {\n return `${THEME_CLASSNAME_PREFIX}${name} tui_theme`.replace('light_', '').replace('dark_', '')\n }\n\n track(uuid: any, keys: Set<string>) {\n if (!this.name) return\n this.keys.set(uuid, keys)\n }\n\n notifyListeners() {\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.themeListeners.forEach((cb) => cb(this.name, this))\n }\n\n onChangeTheme(cb: ThemeListener) {\n this.themeListeners.add(cb)\n return () => {\n this.themeListeners.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 | null>(null)\nexport const emptyManager = new ThemeManager()\n\nconst withoutComponentName = (name: string) => name.replace(/\\_[A-Z][a-z]+$/, '')\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA8B;AAE9B,kBAA0B;AAC1B,uBAA6D;AAH7D;AAeO,MAAM,aAAa;AAAA,EAMxB,YACS,OAAe,IACf,QAA4B,MAC5B,gBAAqC,MAC5C;AAHO;AACA;AACA;AA+IT;AAvJA,gBAAO,oBAAI,IAAsB;AACjC,qBAAY,oBAAI,IAAmB;AACnC,0BAAiB,oBAAI,IAAmB;AACxC,qBAA2B;AAQzB,QAAI,SAAS;AACb,QAAI,QAAQ;AACZ,WAAO,MAAM;AACX;AACA,UAAI,QAAQ,IAAI;AACd,cAAM,IAAI,MAAM,oDAAoD;AAAA,MACtE;AACA,UAAI,CAAC;AAAQ;AACb,UAAI,OAAO,SAAS,MAAM;AAExB,iBAAS,OAAO;AAAA,MAClB,OAAO;AACL,aAAK,gBAAgB;AACrB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,MAEI,aAAa;AA7CnB;AA8CI,WAAO,YAAK,kBAAL,mBAAoB,SAAQ;AAAA,EACrC;AAAA,MAEI,WAAmB;AACrB,WAAO,KAAK,aAAa,EAAE,QAAQ,KAAK,QAAQ;AAAA,EAKlD;AAAA,EAGA,SAAS,KAAa;AACpB,QAAI,QAAQ,KAAK;AACjB,QAAI,UAAU;AACd,WAAO,MAAM;AACX,UAAI,CAAC;AAAO;AACZ,UAAI,OAAO,OAAO;AAChB,eAAO,MAAM;AAAA,MACf;AACA,gBAAU,KAAK;AACf,UAAI,CAAC,SAAS;AACZ;AAAA,MACF;AACA,UAAI,QAAQ,UAAU,OAAO;AAC3B;AAAA,MACF;AACA,cAAQ,QAAQ;AAAA,IAClB;AAAA,EACF;AAAA,EAEA,OAAO,EAAE,MAAM,OAAO,cAAmC,CAAC,GAAG;AAE3D,UAAM,sBAAsB,KAAK,YAE7B,aAAa,KAAK,YAClB,SAAS,KAAK;AAClB,QAAI,qBAAqB;AACvB,aAAO;AAAA,IACT;AACA,SAAK,YAAY,aAAa;AAC9B,SAAK,OAAO,QAAQ;AACpB,SAAK,QAAQ;AACb,SAAK,gBAAgB;AACrB,WAAO;AAAA,EACT;AAAA,EAEA,aACE,OAAiF,CAAC,GAClF,OACA;AACA,UAAM,EAAE,SAAS,2BAAU,GAAG,MAAM,kBAAkB;AAEtD,QAAI,CAAC,MAAM;AACT,UAAI,eAAe;AAEjB,cAAM,QAAQ;AAAA,UACZ,GAAG,KAAK,QAAQ;AAAA,UAChB,GAAG,qBAAqB,KAAK,IAAI,KAAK;AAAA,QACxC;AACA,mBAAW,SAAQ,OAAO;AACxB,cAAI,SAAQ,QAAQ;AAClB,mBAAO,EAAE,aAAM,OAAO,OAAO,QAAO,WAAW,sBAAK,gCAAL,WAAmB,OAAM;AAAA,UAC1E;AAAA,QACF;AAAA,MACF;AACA,aAAO;AAAA,QACL,MAAM,KAAK;AAAA,QACX,OAAO,KAAK;AAAA,MACd;AAAA,IACF;AAEA,QAAI,WAAW,QAAQ,KAAK,QAAQ;AACpC,QAAI,aAAa,KAAK;AAEtB,WAAO,MAAM;AACX,UAAI,YAAY,QAAQ;AACtB;AAAA,MACF;AACA,iBAAW,GAAG,cAAc;AAC5B,UAAI,YAAY,QAAQ;AACtB;AAAA,MACF;AACA,UAAI,CAAC,WAAW,SAAS,qCAAoB,GAAG;AAE9C,gBAAQ,KAAK,mBAAmB,IAAI;AACpC;AAAA,MACF;AAEA,mBAAa,WAAW,MAAM,GAAG,WAAW,YAAY,qCAAoB,CAAC;AAAA,IAC/E;AAEA,QAAI,eAAe;AAEjB,YAAM,QAAQ;AAAA,QACZ,GAAG,YAAY;AAAA,QACf,GAAG,qBAAqB,QAAQ,KAAK;AAAA,MACvC;AACA,iBAAW,SAAQ,OAAO;AACxB,YAAI,SAAQ,QAAQ;AAClB,qBAAW;AAAA,QACb;AAAA,MACF;AAAA,IACF;AAEA,QAAI,QAAQ,OAAO;AACnB,QAAI,CAAC,OAAO;AACV,cAAQ,OAAO,SAAS;AAAA,IAC1B;AAEA,QAAI,QAAQ,IAAI,aAAa,iBAAiB,SAAS,MAAM,UAAU;AACrE,cAAQ,IAAI,gBAAgB,EAAE,MAAM,KAAK,MAAM,UAAU,WAAW,CAAC;AAAA,IACvE;AAEA,WAAO;AAAA,MACL,MAAM;AAAA,MACN;AAAA,MACA,WAAW,sBAAK,gCAAL,WAAmB;AAAA,IAChC;AAAA,EACF;AAAA,EAMA,MAAM,MAAW,MAAmB;AAClC,QAAI,CAAC,KAAK;AAAM;AAChB,SAAK,KAAK,IAAI,MAAM,IAAI;AAAA,EAC1B;AAAA,EAEA,kBAAkB;AAhLpB;AAiLI,QAAI,CAAC,KAAK,MAAM;AACd,WAAK,KAAK,MAAM;AAAA,IAClB;AACA,eAAW,CAAC,MAAM,SAAS,KAAK,KAAK,QAAQ,GAAG;AAC9C,UAAI,KAAK,MAAM;AACb,mBAAK,UAAU,IAAI,IAAI,MAAvB;AAAA,MACF;AAAA,IACF;AACA,SAAK,eAAe,QAAQ,CAAC,OAAO,GAAG,KAAK,MAAM,IAAI,CAAC;AAAA,EACzD;AAAA,EAEA,cAAc,IAAmB;AAC/B,SAAK,eAAe,IAAI,EAAE;AAC1B,WAAO,MAAM;AACX,WAAK,eAAe,OAAO,EAAE;AAAA,IAC/B;AAAA,EACF;AAAA,EAEA,SAAS,MAAW,IAAc;AAChC,SAAK,UAAU,IAAI,MAAM,EAAE;AAC3B,WAAO,MAAM;AACX,WAAK,UAAU,OAAO,IAAI;AAC1B,WAAK,KAAK,OAAO,IAAI;AAAA,IACvB;AAAA,EACF;AACF;AA3LO;AAwJL;AAAA,kBAAa,gCAAC,MAAc;AAC1B,SAAO,GAAG,0CAAyB,iBAAiB,QAAQ,UAAU,EAAE,EAAE,QAAQ,SAAS,EAAE;AAC/F,GAFa;AAqCR,MAAM,sBAAsB,gCAAmC,IAAI;AACnE,MAAM,eAAe,IAAI,aAAa;AAE7C,MAAM,uBAAuB,wBAAC,SAAiB,KAAK,QAAQ,kBAAkB,EAAE,GAAnD;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/cjs/conf.js
CHANGED
|
@@ -48,8 +48,17 @@ const onConfiguredOnce = /* @__PURE__ */ __name((cb) => {
|
|
|
48
48
|
configListeners.add(cb);
|
|
49
49
|
}
|
|
50
50
|
if (!globalThis["Tamagui"]) {
|
|
51
|
-
import_Tamagui.Tamagui.config = conf;
|
|
52
51
|
globalThis["Tamagui"] = import_Tamagui.Tamagui;
|
|
53
52
|
}
|
|
54
53
|
}, "onConfiguredOnce");
|
|
54
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
55
|
+
0 && (module.exports = {
|
|
56
|
+
configListeners,
|
|
57
|
+
getConfig,
|
|
58
|
+
getHasConfigured,
|
|
59
|
+
getThemes,
|
|
60
|
+
getTokens,
|
|
61
|
+
onConfiguredOnce,
|
|
62
|
+
setConfig
|
|
63
|
+
});
|
|
55
64
|
//# sourceMappingURL=conf.js.map
|
package/dist/cjs/conf.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/conf.ts"],
|
|
4
|
-
"sourcesContent": ["import { Tamagui } from './Tamagui'\nimport { ConfigListener, TamaguiInternalConfig } from './types'\n\nlet conf: TamaguiInternalConfig | null\n\nexport const setConfig = (next: TamaguiInternalConfig) => {\n conf = next\n if (configListeners.size) {\n configListeners.forEach((cb) => cb(conf!))\n configListeners.clear()\n }\n}\n\nexport const getHasConfigured = () => !!conf\nexport const getConfig = () => conf!\nexport const getTokens = () => conf!.tokensParsed\nexport const getThemes = () => conf!.themes\n\nexport const configListeners = new Set<ConfigListener>()\n\nexport const onConfiguredOnce = (cb: ConfigListener) => {\n if (conf) {\n cb(conf)\n } else {\n configListeners.add(cb)\n }\n\n if (!globalThis['Tamagui']) {\n
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAwB;AAGxB,IAAI;AAEG,MAAM,YAAY,wBAAC,SAAgC;AACxD,SAAO;AACP,MAAI,gBAAgB,MAAM;AACxB,oBAAgB,QAAQ,CAAC,OAAO,GAAG,IAAK,CAAC;AACzC,oBAAgB,MAAM;AAAA,EACxB;AACF,GANyB;AAQlB,MAAM,mBAAmB,6BAAM,CAAC,CAAC,MAAR;AACzB,MAAM,YAAY,6BAAM,MAAN;AAClB,MAAM,YAAY,6BAAM,KAAM,cAAZ;AAClB,MAAM,YAAY,6BAAM,KAAM,QAAZ;AAElB,MAAM,kBAAkB,oBAAI,IAAoB;AAEhD,MAAM,mBAAmB,wBAAC,OAAuB;AACtD,MAAI,MAAM;AACR,OAAG,
|
|
4
|
+
"sourcesContent": ["import { Tamagui } from './Tamagui'\nimport { ConfigListener, TamaguiInternalConfig } from './types'\n\nlet conf: TamaguiInternalConfig | null\n\nexport const setConfig = (next: TamaguiInternalConfig) => {\n conf = next\n if (configListeners.size) {\n configListeners.forEach((cb) => cb(conf!))\n configListeners.clear()\n }\n}\n\nexport const getHasConfigured = () => !!conf\nexport const getConfig = () => conf!\nexport const getTokens = () => conf!.tokensParsed\nexport const getThemes = () => conf!.themes\n\nexport const configListeners = new Set<ConfigListener>()\n\nexport const onConfiguredOnce = (cb: ConfigListener) => {\n if (conf) {\n cb(conf!)\n } else {\n configListeners.add(cb)\n }\n\n if (!globalThis['Tamagui']) {\n globalThis['Tamagui'] = Tamagui\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAwB;AAGxB,IAAI;AAEG,MAAM,YAAY,wBAAC,SAAgC;AACxD,SAAO;AACP,MAAI,gBAAgB,MAAM;AACxB,oBAAgB,QAAQ,CAAC,OAAO,GAAG,IAAK,CAAC;AACzC,oBAAgB,MAAM;AAAA,EACxB;AACF,GANyB;AAQlB,MAAM,mBAAmB,6BAAM,CAAC,CAAC,MAAR;AACzB,MAAM,YAAY,6BAAM,MAAN;AAClB,MAAM,YAAY,6BAAM,KAAM,cAAZ;AAClB,MAAM,YAAY,6BAAM,KAAM,QAAZ;AAElB,MAAM,kBAAkB,oBAAI,IAAoB;AAEhD,MAAM,mBAAmB,wBAAC,OAAuB;AACtD,MAAI,MAAM;AACR,OAAG,IAAK;AAAA,EACV,OAAO;AACL,oBAAgB,IAAI,EAAE;AAAA,EACxB;AAEA,MAAI,CAAC,WAAW,YAAY;AAC1B,eAAW,aAAa;AAAA,EAC1B;AACF,GAVgC;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -47,4 +47,10 @@ const stackDefaultStyles = __spreadValues({
|
|
|
47
47
|
flexBasis: "auto",
|
|
48
48
|
boxSizing: "border-box"
|
|
49
49
|
});
|
|
50
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
51
|
+
0 && (module.exports = {
|
|
52
|
+
THEME_CLASSNAME_PREFIX,
|
|
53
|
+
THEME_NAME_SEPARATOR,
|
|
54
|
+
stackDefaultStyles
|
|
55
|
+
});
|
|
50
56
|
//# sourceMappingURL=constants.js.map
|
|
@@ -40,4 +40,16 @@ const isChrome = typeof navigator !== "undefined" && /Chrome/.test(navigator.use
|
|
|
40
40
|
const supportsTouchWeb = typeof window !== "undefined" && "ontouchstart" in window;
|
|
41
41
|
const isTouchDevice = !isWeb || supportsTouchWeb;
|
|
42
42
|
const isWebIOS = isWeb && typeof navigator !== "undefined" && (/iPad|iPhone|iPod/.test(navigator.platform) || navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1) && !window["MSStream"];
|
|
43
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
44
|
+
0 && (module.exports = {
|
|
45
|
+
isAndroid,
|
|
46
|
+
isChrome,
|
|
47
|
+
isIOS,
|
|
48
|
+
isSSR,
|
|
49
|
+
isTouchDevice,
|
|
50
|
+
isWeb,
|
|
51
|
+
isWebIOS,
|
|
52
|
+
supportsTouchWeb,
|
|
53
|
+
useIsomorphicLayoutEffect
|
|
54
|
+
});
|
|
43
55
|
//# sourceMappingURL=platform.js.map
|
|
@@ -39,4 +39,8 @@ if (process.env.IS_STATIC === "is_static") {
|
|
|
39
39
|
} else if (process.env.TAMAGUI_TARGET === "web") {
|
|
40
40
|
Object.assign(rnw, interopRequire(require("react-native-web").TamaguiExports));
|
|
41
41
|
}
|
|
42
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
43
|
+
0 && (module.exports = {
|
|
44
|
+
rnw
|
|
45
|
+
});
|
|
42
46
|
//# sourceMappingURL=rnw.js.map
|
|
@@ -22,4 +22,8 @@ __export(ButtonInsideButtonContext_exports, {
|
|
|
22
22
|
module.exports = __toCommonJS(ButtonInsideButtonContext_exports);
|
|
23
23
|
var import_react = require("react");
|
|
24
24
|
const ButtonInsideButtonContext = (0, import_react.createContext)(false);
|
|
25
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
26
|
+
0 && (module.exports = {
|
|
27
|
+
ButtonInsideButtonContext
|
|
28
|
+
});
|
|
25
29
|
//# sourceMappingURL=ButtonInsideButtonContext.js.map
|
|
@@ -53,7 +53,6 @@ __export(createComponent_exports, {
|
|
|
53
53
|
AbsoluteFill: () => AbsoluteFill,
|
|
54
54
|
Spacer: () => Spacer,
|
|
55
55
|
createComponent: () => createComponent,
|
|
56
|
-
defaultComponentState: () => defaultComponentState,
|
|
57
56
|
mouseUps: () => mouseUps,
|
|
58
57
|
spacedChildren: () => spacedChildren
|
|
59
58
|
});
|
|
@@ -92,33 +91,37 @@ if (typeof document !== "undefined") {
|
|
|
92
91
|
mouseUps.clear();
|
|
93
92
|
});
|
|
94
93
|
}
|
|
95
|
-
function
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
staticConfig = configIn;
|
|
99
|
-
} else {
|
|
100
|
-
staticConfig = (0, import_extendStaticConfig.parseStaticConfig)(configIn);
|
|
94
|
+
function mergeShorthands({ defaultProps }, { shorthands }) {
|
|
95
|
+
for (const key in defaultProps) {
|
|
96
|
+
defaultProps[shorthands[key] || key] = defaultProps[key];
|
|
101
97
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
98
|
+
}
|
|
99
|
+
__name(mergeShorthands, "mergeShorthands");
|
|
100
|
+
function createComponent(configIn, ParentComponent) {
|
|
101
|
+
const staticConfig = (() => {
|
|
102
|
+
const config = (0, import_extendStaticConfig.extendStaticConfig)(configIn, ParentComponent);
|
|
103
|
+
if ("parsed" in config) {
|
|
104
|
+
return config;
|
|
105
|
+
} else {
|
|
106
|
+
return (0, import_extendStaticConfig.parseStaticConfig)(config);
|
|
107
|
+
}
|
|
108
|
+
})();
|
|
109
|
+
const componentClassName = `is_${staticConfig.componentName}`;
|
|
105
110
|
let tamaguiConfig;
|
|
106
111
|
let AnimatedText;
|
|
107
112
|
let AnimatedView;
|
|
108
113
|
let avoidClasses = true;
|
|
109
|
-
let defaultPseudos = {};
|
|
110
114
|
let defaultNativeStyle;
|
|
111
|
-
let defaultNativeStyleSheet
|
|
112
|
-
let defaultsClassName = null;
|
|
115
|
+
let defaultNativeStyleSheet;
|
|
113
116
|
let initialTheme;
|
|
114
|
-
let
|
|
117
|
+
let initialSplitStyles;
|
|
115
118
|
function addPseudoToStyles(styles, name, pseudos) {
|
|
116
119
|
const pseudoStyle = pseudos[name];
|
|
117
120
|
const shouldNestObject = import_platform.isWeb && name !== "enterStyle" && name !== "exitStyle";
|
|
118
121
|
if (pseudoStyle) {
|
|
119
122
|
styles.push(shouldNestObject ? { [name]: pseudoStyle } : pseudoStyle);
|
|
120
123
|
}
|
|
121
|
-
const defaultPseudoStyle =
|
|
124
|
+
const defaultPseudoStyle = initialSplitStyles.pseudos[name];
|
|
122
125
|
if (defaultPseudoStyle) {
|
|
123
126
|
styles.push(shouldNestObject ? { [name]: defaultPseudoStyle } : defaultPseudoStyle);
|
|
124
127
|
}
|
|
@@ -126,20 +129,21 @@ function createComponent(configIn) {
|
|
|
126
129
|
__name(addPseudoToStyles, "addPseudoToStyles");
|
|
127
130
|
const component = (0, import_react.forwardRef)((props, forwardedRef) => {
|
|
128
131
|
var _a, _c, _d, _e;
|
|
132
|
+
const { Component, componentName, isText, isZStack } = staticConfig;
|
|
129
133
|
if (process.env.NODE_ENV === "development") {
|
|
130
134
|
if (props["debug"]) {
|
|
131
|
-
console.warn(componentName || (Component == null ? void 0 : Component.displayName) || (Component == null ? void 0 : Component.name) || "[Unnamed Component]", "debug on");
|
|
135
|
+
console.warn(staticConfig.componentName || (Component == null ? void 0 : Component.displayName) || (Component == null ? void 0 : Component.name) || "[Unnamed Component]", "debug on");
|
|
132
136
|
console.log("props in:", props);
|
|
133
137
|
if (props["debug"] === "break")
|
|
134
138
|
debugger;
|
|
135
139
|
}
|
|
136
140
|
}
|
|
137
141
|
const forceUpdate = (0, import_use_force_update.useForceUpdate)();
|
|
138
|
-
const theme = (0, import_useTheme.useTheme)(props.theme, componentName, props, forceUpdate);
|
|
142
|
+
const theme = (0, import_useTheme.useTheme)(props.theme, staticConfig.componentName, props, forceUpdate);
|
|
139
143
|
const [state, set_] = (0, import_react.useState)(defaultComponentState);
|
|
140
144
|
const setStateShallow = (0, import_createShallowUpdate.createShallowUpdate)(set_);
|
|
141
145
|
const shouldAvoidClasses = !!(props.animation && avoidClasses);
|
|
142
|
-
const splitStyles = (0, import_getSplitStyles.getSplitStyles)(props, staticConfig, theme, shouldAvoidClasses ? __spreadProps(__spreadValues({}, state), { noClassNames: true, resolveVariablesAs: "value" }) : state, shouldAvoidClasses ? null :
|
|
146
|
+
const splitStyles = (0, import_getSplitStyles.getSplitStyles)(props, staticConfig, theme, shouldAvoidClasses ? __spreadProps(__spreadValues({}, state), { noClassNames: true, resolveVariablesAs: "value" }) : state, shouldAvoidClasses ? null : initialSplitStyles.classNames);
|
|
143
147
|
const { viewProps: viewPropsIn, pseudos, medias, style, classNames } = splitStyles;
|
|
144
148
|
const useAnimations = (_a = tamaguiConfig.animations) == null ? void 0 : _a.useAnimations;
|
|
145
149
|
const isAnimated = !!(useAnimations && props.animation);
|
|
@@ -192,6 +196,7 @@ function createComponent(configIn) {
|
|
|
192
196
|
accessibilityRole,
|
|
193
197
|
collapsable,
|
|
194
198
|
focusable,
|
|
199
|
+
onClick,
|
|
195
200
|
theme: _themeProp,
|
|
196
201
|
defaultVariants,
|
|
197
202
|
onLayout
|
|
@@ -232,6 +237,7 @@ function createComponent(configIn) {
|
|
|
232
237
|
"accessibilityRole",
|
|
233
238
|
"collapsable",
|
|
234
239
|
"focusable",
|
|
240
|
+
"onClick",
|
|
235
241
|
"theme",
|
|
236
242
|
"defaultVariants",
|
|
237
243
|
"onLayout"
|
|
@@ -253,7 +259,7 @@ function createComponent(configIn) {
|
|
|
253
259
|
};
|
|
254
260
|
}
|
|
255
261
|
(0, import_platform.useIsomorphicLayoutEffect)(() => {
|
|
256
|
-
if (typeof window !== "undefined") {
|
|
262
|
+
if (typeof window !== "undefined" && (hasEnterStyle || props.animation)) {
|
|
257
263
|
setStateShallow({
|
|
258
264
|
mounted: true
|
|
259
265
|
});
|
|
@@ -263,7 +269,7 @@ function createComponent(configIn) {
|
|
|
263
269
|
mouseUps.delete(unPress);
|
|
264
270
|
internal.current.isMounted = false;
|
|
265
271
|
};
|
|
266
|
-
}, [hasEnterStyle]);
|
|
272
|
+
}, [hasEnterStyle, props.animation]);
|
|
267
273
|
if (nativeID) {
|
|
268
274
|
viewProps.id = nativeID;
|
|
269
275
|
}
|
|
@@ -336,7 +342,7 @@ function createComponent(configIn) {
|
|
|
336
342
|
const className = classList.join(" ");
|
|
337
343
|
if (process.env.NODE_ENV === "development") {
|
|
338
344
|
if (props["debug"]) {
|
|
339
|
-
console.log(" \xBB className", { isStringElement, pseudos, state,
|
|
345
|
+
console.log(" \xBB className", { isStringElement, pseudos, state, classNames, propsClassName: props.className, style, classList, className: className.trim().split(" "), themeClassName: theme.className, values: Object.fromEntries(Object.entries(classNames).map(([k, v]) => [v, (0, import_insertStyleRule.getAllSelectors)()[v]])) });
|
|
340
346
|
}
|
|
341
347
|
}
|
|
342
348
|
viewProps.className = className;
|
|
@@ -377,7 +383,8 @@ function createComponent(configIn) {
|
|
|
377
383
|
viewProps.ref = forwardedRef;
|
|
378
384
|
}
|
|
379
385
|
}
|
|
380
|
-
const
|
|
386
|
+
const initialPseudos = initialSplitStyles.pseudos;
|
|
387
|
+
const attachPress = !!(pseudos && pseudos.pressStyle || initialPseudos && initialPseudos.pressStyle || onPress || onPressOut || onPressIn || onClick);
|
|
381
388
|
const isHoverable = import_platform.isWeb && !import_platform.isTouchDevice;
|
|
382
389
|
const attachHover = isHoverable && !!(pseudos && pseudos.hoverStyle || onHoverIn || onHoverOut || onMouseEnter || onMouseLeave);
|
|
383
390
|
const pressEventKey = isStringElement ? "onClick" : "onPress";
|
|
@@ -439,6 +446,7 @@ function createComponent(configIn) {
|
|
|
439
446
|
onPress == null ? void 0 : onPress(e);
|
|
440
447
|
unPress();
|
|
441
448
|
onPressOut == null ? void 0 : onPressOut(e);
|
|
449
|
+
onClick == null ? void 0 : onClick(e);
|
|
442
450
|
} : null
|
|
443
451
|
}) : null;
|
|
444
452
|
let childEls = !children ? children : (0, import_wrapThemeManagerContext.wrapThemeManagerContext)(spacedChildren({
|
|
@@ -494,7 +502,7 @@ function createComponent(configIn) {
|
|
|
494
502
|
if (process.env.NODE_ENV === "development") {
|
|
495
503
|
if (props["debug"]) {
|
|
496
504
|
viewProps["debug"] = true;
|
|
497
|
-
console.log(" \xBB ", __spreadValues({ propsIn: __spreadValues({}, props), propsOut: __spreadValues({}, viewProps), state, splitStyles,
|
|
505
|
+
console.log(" \xBB ", __spreadValues({ propsIn: __spreadValues({}, props), propsOut: __spreadValues({}, viewProps), state, splitStyles, animationStyles, isStringElement, classNamesIn: (_d = props.className) == null ? void 0 : _d.split(" "), classNamesOut: (_e = viewProps.className) == null ? void 0 : _e.split(" "), pressProps, events, shouldAttach, ViewComponent, viewProps, styles, pseudos, content, childEls, shouldAvoidClasses, avoidClasses, animation: props.animation, style, defaultNativeStyle, initialSplitStyles }, typeof window !== "undefined" ? { theme, themeState: theme.__state, themeClassName: theme.className, staticConfig, tamaguiConfig } : null));
|
|
498
506
|
}
|
|
499
507
|
}
|
|
500
508
|
if (features.length) {
|
|
@@ -502,18 +510,19 @@ function createComponent(configIn) {
|
|
|
502
510
|
}
|
|
503
511
|
return content;
|
|
504
512
|
});
|
|
513
|
+
component.displayName = staticConfig.componentName;
|
|
505
514
|
(0, import_conf.onConfiguredOnce)((conf) => {
|
|
506
515
|
var _a, _b, _c, _d;
|
|
507
516
|
if (process.env.IS_STATIC === "is_static") {
|
|
508
517
|
return;
|
|
509
518
|
}
|
|
510
|
-
const shouldDebug = (_a = staticConfig.defaultProps) == null ? void 0 : _a.debug;
|
|
511
519
|
tamaguiConfig = conf;
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
520
|
+
mergeShorthands(staticConfig, tamaguiConfig);
|
|
521
|
+
avoidClasses = !!((_a = tamaguiConfig.animations) == null ? void 0 : _a.avoidClasses);
|
|
522
|
+
AnimatedText = (_b = tamaguiConfig.animations) == null ? void 0 : _b.Text;
|
|
523
|
+
AnimatedView = (_c = tamaguiConfig == null ? void 0 : tamaguiConfig.animations) == null ? void 0 : _c.View;
|
|
515
524
|
initialTheme = conf.themes[conf.defaultTheme || Object.keys(conf.themes)[0]];
|
|
516
|
-
|
|
525
|
+
initialSplitStyles = (0, import_getSplitStyles.getSplitStyles)(staticConfig.defaultProps, staticConfig, initialTheme, {
|
|
517
526
|
mounted: true,
|
|
518
527
|
hover: false,
|
|
519
528
|
press: false,
|
|
@@ -521,11 +530,7 @@ function createComponent(configIn) {
|
|
|
521
530
|
focus: false,
|
|
522
531
|
resolveVariablesAs: "both"
|
|
523
532
|
});
|
|
524
|
-
const {
|
|
525
|
-
if (import_platform.isWeb) {
|
|
526
|
-
defaultsClassName = classNames;
|
|
527
|
-
}
|
|
528
|
-
defaultPseudos = pseudos;
|
|
533
|
+
const { style, viewProps } = initialSplitStyles;
|
|
529
534
|
defaultNativeStyle = {};
|
|
530
535
|
for (const key in style) {
|
|
531
536
|
const v = style[key];
|
|
@@ -534,26 +539,34 @@ function createComponent(configIn) {
|
|
|
534
539
|
defaultNativeStyleSheet = import_react_native.StyleSheet.create({
|
|
535
540
|
base: defaultNativeStyle
|
|
536
541
|
});
|
|
537
|
-
component.displayName = staticConfig.componentName;
|
|
538
542
|
component.defaultProps = __spreadValues(__spreadValues({}, viewProps), component.defaultProps);
|
|
539
|
-
if (process.env.NODE_ENV === "development" &&
|
|
540
|
-
|
|
543
|
+
if (process.env.NODE_ENV === "development" && ((_d = staticConfig.defaultProps) == null ? void 0 : _d.debug)) {
|
|
544
|
+
if (process.env.IS_STATIC !== "is_static") {
|
|
545
|
+
console.log(`\u{1F41B} [${staticConfig.componentName || "Component"}]`, {
|
|
546
|
+
staticConfig,
|
|
547
|
+
initialSplitStyles
|
|
548
|
+
});
|
|
549
|
+
}
|
|
541
550
|
}
|
|
542
551
|
});
|
|
543
552
|
let res = component;
|
|
544
553
|
if (configIn.memo) {
|
|
545
554
|
res = (0, import_react.memo)(res);
|
|
546
555
|
}
|
|
547
|
-
res["whyDidYouRender"] = true;
|
|
548
556
|
res["staticConfig"] = __spreadValues({
|
|
549
|
-
validStyles:
|
|
557
|
+
validStyles: staticConfig.validStyles || import_helpers.stylePropsView
|
|
550
558
|
}, staticConfig);
|
|
551
|
-
|
|
552
|
-
|
|
559
|
+
if (process.env.NODE_ENV === "development") {
|
|
560
|
+
res["whyDidYouRender"] = true;
|
|
561
|
+
}
|
|
562
|
+
res["extractable"] = (Component, conf) => {
|
|
563
|
+
Component["staticConfig"] = (0, import_extendStaticConfig.extendStaticConfig)(__spreadProps(__spreadValues({
|
|
564
|
+
Component
|
|
565
|
+
}, conf), {
|
|
553
566
|
neverFlatten: true,
|
|
554
|
-
defaultProps: __spreadValues(__spreadValues({},
|
|
555
|
-
}));
|
|
556
|
-
return
|
|
567
|
+
defaultProps: __spreadValues(__spreadValues({}, Component.defaultProps), conf == null ? void 0 : conf.defaultProps)
|
|
568
|
+
}), res);
|
|
569
|
+
return Component;
|
|
557
570
|
};
|
|
558
571
|
return res;
|
|
559
572
|
}
|
|
@@ -637,15 +650,26 @@ function spacedChildren({
|
|
|
637
650
|
return next;
|
|
638
651
|
}
|
|
639
652
|
__name(spacedChildren, "spacedChildren");
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
}
|
|
649
|
-
|
|
650
|
-
|
|
653
|
+
function AbsoluteFill(props) {
|
|
654
|
+
return import_platform.isWeb ? /* @__PURE__ */ import_react.default.createElement("div", {
|
|
655
|
+
style: {
|
|
656
|
+
position: "absolute",
|
|
657
|
+
top: 0,
|
|
658
|
+
left: 0,
|
|
659
|
+
right: 0,
|
|
660
|
+
bottom: 0
|
|
661
|
+
}
|
|
662
|
+
}, props.children) : /* @__PURE__ */ import_react.default.createElement(import_react_native.View, {
|
|
663
|
+
style: import_react_native.StyleSheet.absoluteFill
|
|
664
|
+
}, props.child);
|
|
665
|
+
}
|
|
666
|
+
__name(AbsoluteFill, "AbsoluteFill");
|
|
667
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
668
|
+
0 && (module.exports = {
|
|
669
|
+
AbsoluteFill,
|
|
670
|
+
Spacer,
|
|
671
|
+
createComponent,
|
|
672
|
+
mouseUps,
|
|
673
|
+
spacedChildren
|
|
674
|
+
});
|
|
651
675
|
//# sourceMappingURL=createComponent.js.map
|