@tamagui/core 1.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.ultra.cache.json +1 -0
- package/_/constants/constants.js +14 -0
- package/_/constants/constants.js.map +7 -0
- package/_/constants/platform.js +20 -0
- package/_/constants/platform.js.map +7 -0
- package/_/constants/pseudos.js +18 -0
- package/_/constants/pseudos.js.map +7 -0
- package/_/constants/rnw.js +22 -0
- package/_/constants/rnw.js.map +7 -0
- package/_/createComponent.js +427 -0
- package/_/createComponent.js.map +7 -0
- package/_/createShorthands.js +10 -0
- package/_/createShorthands.js.map +7 -0
- package/_/createTamagui.js +122 -0
- package/_/createTamagui.js.map +7 -0
- package/_/createTheme.js +20 -0
- package/_/createTheme.js.map +7 -0
- package/_/createTokens.js +29 -0
- package/_/createTokens.js.map +7 -0
- package/_/createVariable.js +22 -0
- package/_/createVariable.js.map +7 -0
- package/_/helpers/addStylesUsingClassname.js +32 -0
- package/_/helpers/addStylesUsingClassname.js.map +7 -0
- package/_/helpers/createMediaStyle.js +34 -0
- package/_/helpers/createMediaStyle.js.map +7 -0
- package/_/helpers/createTamaguiProvider.js +42 -0
- package/_/helpers/createTamaguiProvider.js.map +7 -0
- package/_/helpers/extendStaticConfig.js +176 -0
- package/_/helpers/extendStaticConfig.js.map +7 -0
- package/_/helpers/fixNativeShadow.js +8 -0
- package/_/helpers/fixNativeShadow.js.map +7 -0
- package/_/helpers/fixNativeShadow.native.js +30 -0
- package/_/helpers/fixNativeShadow.native.js.map +7 -0
- package/_/helpers/getSplitStyles.js +160 -0
- package/_/helpers/getSplitStyles.js.map +7 -0
- package/_/helpers/getStylesAtomic.js +84 -0
- package/_/helpers/getStylesAtomic.js.map +7 -0
- package/_/helpers/getStylesAtomic.native.js +10 -0
- package/_/helpers/getStylesAtomic.native.js.map +7 -0
- package/_/helpers/insertStyleRule.js +24 -0
- package/_/helpers/insertStyleRule.js.map +7 -0
- package/_/helpers/matchMedia.js +15 -0
- package/_/helpers/matchMedia.js.map +7 -0
- package/_/helpers/matchMedia.native.js +8 -0
- package/_/helpers/matchMedia.native.js.map +7 -0
- package/_/helpers/themeable.js +26 -0
- package/_/helpers/themeable.js.map +7 -0
- package/_/hooks/useConstant.js +15 -0
- package/_/hooks/useConstant.js.map +7 -0
- package/_/hooks/useFeatures.js +75 -0
- package/_/hooks/useFeatures.js.map +7 -0
- package/_/hooks/useForceUpdate.js +28 -0
- package/_/hooks/useForceUpdate.js.map +7 -0
- package/_/hooks/useMedia.js +173 -0
- package/_/hooks/useMedia.js.map +7 -0
- package/_/hooks/usePressable.js +14 -0
- package/_/hooks/usePressable.js.map +7 -0
- package/_/hooks/useTheme.js +94 -0
- package/_/hooks/useTheme.js.map +7 -0
- package/_/index.js +30 -0
- package/_/index.js.map +7 -0
- package/_/static/postProcessStyles.js +18 -0
- package/_/static/postProcessStyles.js.map +7 -0
- package/_/static.js +12 -0
- package/_/static.js.map +7 -0
- package/_/styled.js +21 -0
- package/_/styled.js.map +7 -0
- package/_/types.js +1 -0
- package/_/types.js.map +7 -0
- package/_/views/Animated.js +79 -0
- package/_/views/Animated.js.map +7 -0
- package/_/views/Stack.js +12 -0
- package/_/views/Stack.js.map +7 -0
- package/_/views/Text.js +60 -0
- package/_/views/Text.js.map +7 -0
- package/_/views/TextAncestorContext.js +19 -0
- package/_/views/TextAncestorContext.js.map +7 -0
- package/_/views/Theme.js +57 -0
- package/_/views/Theme.js.map +7 -0
- package/_/views/ThemeContext.js +6 -0
- package/_/views/ThemeContext.js.map +7 -0
- package/_/views/ThemeInverse.js +27 -0
- package/_/views/ThemeInverse.js.map +7 -0
- package/_/views/ThemeManagerContext.js +56 -0
- package/_/views/ThemeManagerContext.js.map +7 -0
- package/_/views/ThemeProvider.js +45 -0
- package/_/views/ThemeProvider.js.map +7 -0
- package/dist/constants/constants.js +14 -0
- package/dist/constants/constants.js.map +7 -0
- package/dist/constants/platform.js +19 -0
- package/dist/constants/platform.js.map +7 -0
- package/dist/constants/pseudos.js +18 -0
- package/dist/constants/pseudos.js.map +7 -0
- package/dist/constants/rnw.js +22 -0
- package/dist/constants/rnw.js.map +7 -0
- package/dist/constants/styleConstants.js +46 -0
- package/dist/constants/styleConstants.js.map +7 -0
- package/dist/createComponent.js +445 -0
- package/dist/createComponent.js.map +7 -0
- package/dist/createFont.js +24 -0
- package/dist/createFont.js.map +7 -0
- package/dist/createShorthands.js +10 -0
- package/dist/createShorthands.js.map +7 -0
- package/dist/createTamagui.js +159 -0
- package/dist/createTamagui.js.map +7 -0
- package/dist/createTheme.js +20 -0
- package/dist/createTheme.js.map +7 -0
- package/dist/createTokens.js +29 -0
- package/dist/createTokens.js.map +7 -0
- package/dist/createVariable.js +22 -0
- package/dist/createVariable.js.map +7 -0
- package/dist/helpers/addStylesUsingClassname.js +57 -0
- package/dist/helpers/addStylesUsingClassname.js.map +7 -0
- package/dist/helpers/createMediaStyle.js +34 -0
- package/dist/helpers/createMediaStyle.js.map +7 -0
- package/dist/helpers/createPropMapper.js +153 -0
- package/dist/helpers/createPropMapper.js.map +7 -0
- package/dist/helpers/createTamaguiProvider.js +25 -0
- package/dist/helpers/createTamaguiProvider.js.map +7 -0
- package/dist/helpers/extendStaticConfig.js +59 -0
- package/dist/helpers/extendStaticConfig.js.map +7 -0
- package/dist/helpers/fixNativeShadow.js +8 -0
- package/dist/helpers/fixNativeShadow.js.map +7 -0
- package/dist/helpers/fixNativeShadow.native.js +30 -0
- package/dist/helpers/fixNativeShadow.native.js.map +7 -0
- package/dist/helpers/getSplitStyles.js +160 -0
- package/dist/helpers/getSplitStyles.js.map +7 -0
- package/dist/helpers/getStylesAtomic.js +83 -0
- package/dist/helpers/getStylesAtomic.js.map +7 -0
- package/dist/helpers/getStylesAtomic.native.js +10 -0
- package/dist/helpers/getStylesAtomic.native.js.map +7 -0
- package/dist/helpers/insertStyleRule.js +24 -0
- package/dist/helpers/insertStyleRule.js.map +7 -0
- package/dist/helpers/isObj.js +7 -0
- package/dist/helpers/isObj.js.map +7 -0
- package/dist/helpers/matchMedia.js +15 -0
- package/dist/helpers/matchMedia.js.map +7 -0
- package/dist/helpers/matchMedia.native.js +8 -0
- package/dist/helpers/matchMedia.native.js.map +7 -0
- package/dist/helpers/pseudos.js +1 -0
- package/dist/helpers/pseudos.js.map +7 -0
- package/dist/helpers/themeable.js +26 -0
- package/dist/helpers/themeable.js.map +7 -0
- package/dist/hooks/useConstant.js +15 -0
- package/dist/hooks/useConstant.js.map +7 -0
- package/dist/hooks/useFeatures.js +75 -0
- package/dist/hooks/useFeatures.js.map +7 -0
- package/dist/hooks/useForceUpdate.js +28 -0
- package/dist/hooks/useForceUpdate.js.map +7 -0
- package/dist/hooks/useMedia.js +171 -0
- package/dist/hooks/useMedia.js.map +7 -0
- package/dist/hooks/usePressable.js +13 -0
- package/dist/hooks/usePressable.js.map +7 -0
- package/dist/hooks/useTheme.js +93 -0
- package/dist/hooks/useTheme.js.map +7 -0
- package/dist/index.cjs +2125 -0
- package/dist/index.cjs.map +7 -0
- package/dist/index.js +33 -0
- package/dist/index.js.map +7 -0
- package/dist/packages/core/src/constants/constants.d.ts +8 -0
- package/dist/packages/core/src/constants/constants.d.ts.map +1 -0
- package/dist/packages/core/src/constants/platform.d.ts +9 -0
- package/dist/packages/core/src/constants/platform.d.ts.map +1 -0
- package/dist/packages/core/src/constants/pseudos.d.ts +15 -0
- package/dist/packages/core/src/constants/pseudos.d.ts.map +1 -0
- package/dist/packages/core/src/constants/rnw.d.ts +2 -0
- package/dist/packages/core/src/constants/rnw.d.ts.map +1 -0
- package/dist/packages/core/src/createComponent.d.ts +16 -0
- package/dist/packages/core/src/createComponent.d.ts.map +1 -0
- package/dist/packages/core/src/createShorthands.d.ts +2 -0
- package/dist/packages/core/src/createShorthands.d.ts.map +1 -0
- package/dist/packages/core/src/createTamagui.d.ts +37 -0
- package/dist/packages/core/src/createTamagui.d.ts.map +1 -0
- package/dist/packages/core/src/createTheme.d.ts +5 -0
- package/dist/packages/core/src/createTheme.d.ts.map +1 -0
- package/dist/packages/core/src/createTokens.d.ts +45 -0
- package/dist/packages/core/src/createTokens.d.ts.map +1 -0
- package/dist/packages/core/src/createVariable.d.ts +14 -0
- package/dist/packages/core/src/createVariable.d.ts.map +1 -0
- package/dist/packages/core/src/helpers/addStylesUsingClassname.d.ts +2 -0
- package/dist/packages/core/src/helpers/addStylesUsingClassname.d.ts.map +1 -0
- package/dist/packages/core/src/helpers/createMediaStyle.d.ts +8 -0
- package/dist/packages/core/src/helpers/createMediaStyle.d.ts.map +1 -0
- package/dist/packages/core/src/helpers/createTamaguiProvider.d.ts +5 -0
- package/dist/packages/core/src/helpers/createTamaguiProvider.d.ts.map +1 -0
- package/dist/packages/core/src/helpers/extendStaticConfig.d.ts +5 -0
- package/dist/packages/core/src/helpers/extendStaticConfig.d.ts.map +1 -0
- package/dist/packages/core/src/helpers/fixNativeShadow.d.ts +2 -0
- package/dist/packages/core/src/helpers/fixNativeShadow.d.ts.map +1 -0
- package/dist/packages/core/src/helpers/fixNativeShadow.native.d.ts +2 -0
- package/dist/packages/core/src/helpers/fixNativeShadow.native.d.ts.map +1 -0
- package/dist/packages/core/src/helpers/getSplitStyles.d.ts +15 -0
- package/dist/packages/core/src/helpers/getSplitStyles.d.ts.map +1 -0
- package/dist/packages/core/src/helpers/getStylesAtomic.d.ts +3 -0
- package/dist/packages/core/src/helpers/getStylesAtomic.d.ts.map +1 -0
- package/dist/packages/core/src/helpers/getStylesAtomic.native.d.ts +2 -0
- package/dist/packages/core/src/helpers/getStylesAtomic.native.d.ts.map +1 -0
- package/dist/packages/core/src/helpers/insertStyleRule.d.ts +2 -0
- package/dist/packages/core/src/helpers/insertStyleRule.d.ts.map +1 -0
- package/dist/packages/core/src/helpers/matchMedia.d.ts +2 -0
- package/dist/packages/core/src/helpers/matchMedia.d.ts.map +1 -0
- package/dist/packages/core/src/helpers/matchMedia.native.d.ts +3 -0
- package/dist/packages/core/src/helpers/matchMedia.native.d.ts.map +1 -0
- package/dist/packages/core/src/helpers/themeable.d.ts +10 -0
- package/dist/packages/core/src/helpers/themeable.d.ts.map +1 -0
- package/dist/packages/core/src/hooks/useConstant.d.ts +2 -0
- package/dist/packages/core/src/hooks/useConstant.d.ts.map +1 -0
- package/dist/packages/core/src/hooks/useFeatures.d.ts +5 -0
- package/dist/packages/core/src/hooks/useFeatures.d.ts.map +1 -0
- package/dist/packages/core/src/hooks/useForceUpdate.d.ts +2 -0
- package/dist/packages/core/src/hooks/useForceUpdate.d.ts.map +1 -0
- package/dist/packages/core/src/hooks/useMedia.d.ts +16 -0
- package/dist/packages/core/src/hooks/useMedia.d.ts.map +1 -0
- package/dist/packages/core/src/hooks/usePressable.d.ts +3 -0
- package/dist/packages/core/src/hooks/usePressable.d.ts.map +1 -0
- package/dist/packages/core/src/hooks/useTheme.d.ts +18 -0
- package/dist/packages/core/src/hooks/useTheme.d.ts.map +1 -0
- package/dist/packages/core/src/index.d.ts +27 -0
- package/dist/packages/core/src/index.d.ts.map +1 -0
- package/dist/packages/core/src/static/postProcessStyles.d.ts +7 -0
- package/dist/packages/core/src/static/postProcessStyles.d.ts.map +1 -0
- package/dist/packages/core/src/static.d.ts +12 -0
- package/dist/packages/core/src/static.d.ts.map +1 -0
- package/dist/packages/core/src/styled.d.ts +16 -0
- package/dist/packages/core/src/styled.d.ts.map +1 -0
- package/dist/packages/core/src/types.d.ts +305 -0
- package/dist/packages/core/src/types.d.ts.map +1 -0
- package/dist/packages/core/src/views/Animated.d.ts +15 -0
- package/dist/packages/core/src/views/Animated.d.ts.map +1 -0
- package/dist/packages/core/src/views/Stack.d.ts +3 -0
- package/dist/packages/core/src/views/Stack.d.ts.map +1 -0
- package/dist/packages/core/src/views/Text.d.ts +3 -0
- package/dist/packages/core/src/views/Text.d.ts.map +1 -0
- package/dist/packages/core/src/views/TextAncestorContext.d.ts +3 -0
- package/dist/packages/core/src/views/TextAncestorContext.d.ts.map +1 -0
- package/dist/packages/core/src/views/Theme.d.ts +8 -0
- package/dist/packages/core/src/views/Theme.d.ts.map +1 -0
- package/dist/packages/core/src/views/ThemeContext.d.ts +18 -0
- package/dist/packages/core/src/views/ThemeContext.d.ts.map +1 -0
- package/dist/packages/core/src/views/ThemeInverse.d.ts +10 -0
- package/dist/packages/core/src/views/ThemeInverse.d.ts.map +1 -0
- package/dist/packages/core/src/views/ThemeManagerContext.d.ts +15 -0
- package/dist/packages/core/src/views/ThemeManagerContext.d.ts.map +1 -0
- package/dist/packages/core/src/views/ThemeProvider.d.ts +10 -0
- package/dist/packages/core/src/views/ThemeProvider.d.ts.map +1 -0
- package/dist/packages/helpers/src/AllRules.d.ts +3 -0
- package/dist/packages/helpers/src/AllRules.d.ts.map +1 -0
- package/dist/packages/helpers/src/concatClassName.d.ts +2 -0
- package/dist/packages/helpers/src/concatClassName.d.ts.map +1 -0
- package/dist/packages/helpers/src/index.d.ts +5 -0
- package/dist/packages/helpers/src/index.d.ts.map +1 -0
- package/dist/packages/helpers/src/types.d.ts +8 -0
- package/dist/packages/helpers/src/types.d.ts.map +1 -0
- package/dist/packages/helpers/src/validStyleProps.d.ts +475 -0
- package/dist/packages/helpers/src/validStyleProps.d.ts.map +1 -0
- package/dist/static/postProcessStyles.js +18 -0
- package/dist/static/postProcessStyles.js.map +7 -0
- package/dist/static.js +15 -0
- package/dist/static.js.map +7 -0
- package/dist/styled.js +21 -0
- package/dist/styled.js.map +7 -0
- package/dist/types.js +1 -0
- package/dist/types.js.map +7 -0
- package/dist/views/Animated.js +79 -0
- package/dist/views/Animated.js.map +7 -0
- package/dist/views/SafeAreaProvider.js +30 -0
- package/dist/views/SafeAreaProvider.js.map +7 -0
- package/dist/views/Stack.js +12 -0
- package/dist/views/Stack.js.map +7 -0
- package/dist/views/Text.js +60 -0
- package/dist/views/Text.js.map +7 -0
- package/dist/views/TextAncestorContext.js +18 -0
- package/dist/views/TextAncestorContext.js.map +7 -0
- package/dist/views/Theme.js +56 -0
- package/dist/views/Theme.js.map +7 -0
- package/dist/views/ThemeContext.js +6 -0
- package/dist/views/ThemeContext.js.map +7 -0
- package/dist/views/ThemeInverse.js +27 -0
- package/dist/views/ThemeInverse.js.map +7 -0
- package/dist/views/ThemeManagerContext.js +55 -0
- package/dist/views/ThemeManagerContext.js.map +7 -0
- package/dist/views/ThemeProvider.js +45 -0
- package/dist/views/ThemeProvider.js.map +7 -0
- package/package.json +33 -0
- package/src/constants/constants.ts +12 -0
- package/src/constants/platform.ts +15 -0
- package/src/constants/pseudos.ts +14 -0
- package/src/constants/rnw.tsx +20 -0
- package/src/createComponent.tsx +596 -0
- package/src/createFont.ts +26 -0
- package/src/createShorthands.ts +5 -0
- package/src/createTamagui.ts +207 -0
- package/src/createTheme.ts +19 -0
- package/src/createTokens.ts +83 -0
- package/src/createVariable.ts +22 -0
- package/src/helpers/addStylesUsingClassname.tsx +60 -0
- package/src/helpers/createMediaStyle.ts +46 -0
- package/src/helpers/createPropMapper.ts +184 -0
- package/src/helpers/createTamaguiProvider.tsx +22 -0
- package/src/helpers/extendStaticConfig.ts +68 -0
- package/src/helpers/fixNativeShadow.native.tsx +27 -0
- package/src/helpers/fixNativeShadow.tsx +2 -0
- package/src/helpers/getSplitStyles.tsx +210 -0
- package/src/helpers/getStylesAtomic.native.ts +3 -0
- package/src/helpers/getStylesAtomic.ts +103 -0
- package/src/helpers/insertStyleRule.tsx +18 -0
- package/src/helpers/isObj.ts +1 -0
- package/src/helpers/matchMedia.native.ts +3 -0
- package/src/helpers/matchMedia.ts +9 -0
- package/src/helpers/themeable.tsx +42 -0
- package/src/hooks/useConstant.tsx +10 -0
- package/src/hooks/useFeatures.tsx +78 -0
- package/src/hooks/useForceUpdate.tsx +26 -0
- package/src/hooks/useMedia.tsx +194 -0
- package/src/hooks/usePressable.tsx +9 -0
- package/src/hooks/useTheme.tsx +107 -0
- package/src/index.ts +33 -0
- package/src/static/postProcessStyles.tsx +20 -0
- package/src/static.ts +22 -0
- package/src/styled.ts +82 -0
- package/src/types.tsx +561 -0
- package/src/views/Animated.tsx +121 -0
- package/src/views/SafeAreaProvider.tsx +33 -0
- package/src/views/Stack.tsx +21 -0
- package/src/views/Text.tsx +66 -0
- package/src/views/TextAncestorContext.tsx +12 -0
- package/src/views/Theme.tsx +73 -0
- package/src/views/ThemeContext.tsx +5 -0
- package/src/views/ThemeInverse.tsx +23 -0
- package/src/views/ThemeManagerContext.tsx +50 -0
- package/src/views/ThemeProvider.tsx +52 -0
- package/tsconfig.json +8 -0
- package/types.d.ts +558 -0
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
import { getStyleRules } from "@tamagui/helpers";
|
|
4
|
+
import { Variable, createVariable, isVariable } from "./createVariable";
|
|
5
|
+
import { createTamaguiProvider } from "./helpers/createTamaguiProvider";
|
|
6
|
+
import { configureMedia } from "./hooks/useMedia";
|
|
7
|
+
let conf;
|
|
8
|
+
const getHasConfigured = /* @__PURE__ */ __name(() => !!conf, "getHasConfigured");
|
|
9
|
+
const getTamaguiConfig = /* @__PURE__ */ __name(() => conf, "getTamaguiConfig");
|
|
10
|
+
const configListeners = new Set();
|
|
11
|
+
const onConfiguredOnce = /* @__PURE__ */ __name((cb) => {
|
|
12
|
+
if (conf) {
|
|
13
|
+
cb(conf);
|
|
14
|
+
} else {
|
|
15
|
+
configListeners.add(cb);
|
|
16
|
+
}
|
|
17
|
+
}, "onConfiguredOnce");
|
|
18
|
+
const PREFIX = `theme--`;
|
|
19
|
+
function createTamagui(config) {
|
|
20
|
+
if (conf) {
|
|
21
|
+
throw new Error(`#000 createTamagui called twice`);
|
|
22
|
+
}
|
|
23
|
+
configureMedia({
|
|
24
|
+
queries: config.media,
|
|
25
|
+
defaultActive: config.mediaQueryDefaultActive
|
|
26
|
+
});
|
|
27
|
+
const themeConfig = (() => {
|
|
28
|
+
let cssRules = [];
|
|
29
|
+
let tokenRule = `:root {`;
|
|
30
|
+
const varsByValue = new Map();
|
|
31
|
+
for (const key in config.tokens) {
|
|
32
|
+
for (const skey in config.tokens[key]) {
|
|
33
|
+
const v = config.tokens[key][skey];
|
|
34
|
+
varsByValue[v.val] = v;
|
|
35
|
+
tokenRule += `--${v.name}:${typeof v.val === "number" ? `${v.val}px` : v.val};`;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
cssRules.push(`${tokenRule}
|
|
39
|
+
}`);
|
|
40
|
+
for (const themeName in config.themes) {
|
|
41
|
+
config.themes[themeName] = { ...config.themes[themeName] };
|
|
42
|
+
const theme = config.themes[themeName];
|
|
43
|
+
let vars = "";
|
|
44
|
+
for (const themeKey in theme) {
|
|
45
|
+
const val = theme[themeKey];
|
|
46
|
+
const getVariableCSS = /* @__PURE__ */ __name((inv) => {
|
|
47
|
+
var _a;
|
|
48
|
+
const v = (_a = varsByValue[inv]) != null ? _a : inv;
|
|
49
|
+
return isVariable(v) ? `--${themeKey}:var(--${v.name});` : `--${themeKey}:${v};`;
|
|
50
|
+
}, "getVariableCSS");
|
|
51
|
+
vars += getVariableCSS(val);
|
|
52
|
+
if (!isVariable(val)) {
|
|
53
|
+
theme[themeKey] = createVariable({
|
|
54
|
+
name: themeKey,
|
|
55
|
+
val
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
const [themeClassName, parentName] = themeName.includes("-") ? themeName.split("-") : [themeName, ""];
|
|
60
|
+
const oppositeName = parentName === "dark" ? "light" : "dark";
|
|
61
|
+
const cssParentSel = parentName ? `.${PREFIX}${parentName}` : "";
|
|
62
|
+
const cssChildSel = `.${PREFIX}${themeClassName}`;
|
|
63
|
+
const cssSel = `${cssParentSel} ${cssChildSel}`;
|
|
64
|
+
const cssRule = `${cssSel}, .${PREFIX}${oppositeName} ${cssSel} {
|
|
65
|
+
${vars}
|
|
66
|
+
}`;
|
|
67
|
+
cssRules.push(cssRule);
|
|
68
|
+
}
|
|
69
|
+
Object.freeze(cssRules);
|
|
70
|
+
return {
|
|
71
|
+
cssRules,
|
|
72
|
+
css: cssRules.join("\n")
|
|
73
|
+
};
|
|
74
|
+
})();
|
|
75
|
+
const tokensParsed = {};
|
|
76
|
+
for (const key in config.tokens) {
|
|
77
|
+
tokensParsed[key] = {};
|
|
78
|
+
for (const skey in config.tokens[key]) {
|
|
79
|
+
tokensParsed[key][`$${skey}`] = config.tokens[key][skey];
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
const themeParsed = {};
|
|
83
|
+
const firstKey = Object.keys(config.themes)[0];
|
|
84
|
+
for (const key in config.themes[firstKey]) {
|
|
85
|
+
const val = config.themes[firstKey][key].val;
|
|
86
|
+
themeParsed[`$${key}`] = new Variable({ val, name: key });
|
|
87
|
+
}
|
|
88
|
+
const next = {
|
|
89
|
+
shorthands: {},
|
|
90
|
+
...config,
|
|
91
|
+
Provider: createTamaguiProvider({
|
|
92
|
+
defaultTheme: "light",
|
|
93
|
+
...config
|
|
94
|
+
}),
|
|
95
|
+
themeConfig,
|
|
96
|
+
themeParsed,
|
|
97
|
+
tokensParsed,
|
|
98
|
+
getCSS() {
|
|
99
|
+
return `${themeConfig.css}
|
|
100
|
+
${[...getStyleRules()].join("\n")}`;
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
conf = next;
|
|
104
|
+
if (configListeners.size) {
|
|
105
|
+
configListeners.forEach((cb) => cb(next));
|
|
106
|
+
configListeners.clear();
|
|
107
|
+
}
|
|
108
|
+
return next;
|
|
109
|
+
}
|
|
110
|
+
__name(createTamagui, "createTamagui");
|
|
111
|
+
function getThemeParentClassName(themeName) {
|
|
112
|
+
return `theme-parent ${themeName ? `${PREFIX}${themeName}` : ""}`;
|
|
113
|
+
}
|
|
114
|
+
__name(getThemeParentClassName, "getThemeParentClassName");
|
|
115
|
+
export {
|
|
116
|
+
createTamagui,
|
|
117
|
+
getHasConfigured,
|
|
118
|
+
getTamaguiConfig,
|
|
119
|
+
getThemeParentClassName,
|
|
120
|
+
onConfiguredOnce
|
|
121
|
+
};
|
|
122
|
+
//# sourceMappingURL=createTamagui.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/createTamagui.ts"],
|
|
4
|
+
"sourcesContent": ["import { getStyleRules } from '@tamagui/helpers'\n\nimport { Variable, createVariable, isVariable } from './createVariable'\nimport { createTamaguiProvider } from './helpers/createTamaguiProvider'\nimport { configureMedia } from './hooks/useMedia'\nimport {\n CreateTamaguiConfig,\n GenericTamaguiConfig,\n MediaQueryKey,\n TamaguiInternalConfig,\n TamaguiProviderProps,\n} from './types'\n\nexport type CreateTamaguiProps = TamaguiProviderProps &\n // we omit and re-declare it because we need to allow instantation types to be flexible\n // user then re-defines the types after createTamagui returns the typed object they want\n Omit<GenericTamaguiConfig, 'themes'> & {\n themes: {\n [key: string]: {\n [key: string]: string | number | Variable\n }\n }\n // for ssr/native, will default to active\n mediaQueryDefaultActive?: MediaQueryKey[]\n }\n\nlet conf: TamaguiInternalConfig | null\n\nexport const getHasConfigured = () => !!conf\nexport const getTamaguiConfig = () => conf!\n\ntype ConfigListener = (conf: TamaguiInternalConfig) => void\nconst configListeners = new Set<ConfigListener>()\nexport const onConfiguredOnce = (cb: ConfigListener) => {\n if (conf) {\n cb(conf)\n } else {\n configListeners.add(cb)\n }\n}\n\nconst PREFIX = `theme--`\n\nexport function createTamagui<Conf extends CreateTamaguiProps>(\n config: Conf\n): Conf extends CreateTamaguiConfig<infer A, infer B, infer C, infer D>\n ? TamaguiInternalConfig<A, B, C, D>\n : unknown {\n if (conf) {\n throw new Error(`#000 createTamagui called twice`)\n }\n\n configureMedia({\n queries: config.media as any,\n defaultActive: config.mediaQueryDefaultActive,\n })\n\n // TODO can avoid some of this CSS creation on native\n const themeConfig = (() => {\n let cssRules: string[] = []\n\n // tokens\n let tokenRule = `:root {`\n const varsByValue = new Map<string, Variable>()\n for (const key in config.tokens) {\n for (const skey in config.tokens[key]) {\n const v = config.tokens[key][skey]\n varsByValue[v.val] = v\n tokenRule += `--${v.name}:${typeof v.val === 'number' ? `${v.val}px` : v.val};`\n }\n }\n cssRules.push(`${tokenRule}\\n}`)\n\n // themes\n for (const themeName in config.themes) {\n // to allow using the same theme with diff names, be sure we don't mutate!\n config.themes[themeName] = { ...config.themes[themeName] }\n const theme = config.themes[themeName]\n let vars = ''\n for (const themeKey in theme) {\n const val = theme[themeKey]\n const getVariableCSS = (inv: any) => {\n const v = varsByValue[inv] ?? inv\n return isVariable(v) ? `--${themeKey}:var(--${v.name});` : `--${themeKey}:${v};`\n }\n vars += getVariableCSS(val)\n // TODO sanity check is necessary\n // make everything a variable that gets put into css\n if (!isVariable(val)) {\n theme[themeKey] = createVariable({\n name: themeKey,\n val,\n })\n }\n }\n\n const [themeClassName, parentName] = themeName.includes('-')\n ? themeName.split('-')\n : [themeName, '']\n // tiny hack for now assuming light/dark are typical parentName\n const oppositeName = parentName === 'dark' ? 'light' : 'dark'\n const cssParentSel = parentName ? `.${PREFIX}${parentName}` : ''\n const cssChildSel = `.${PREFIX}${themeClassName}`\n const cssSel = `${cssParentSel} ${cssChildSel}`\n // we need to force specificity\n const cssRule = `${cssSel}, .${PREFIX}${oppositeName} ${cssSel} {\\n${vars}\\n}`\n cssRules.push(cssRule)\n }\n\n Object.freeze(cssRules)\n\n return {\n cssRules,\n css: cssRules.join('\\n'),\n }\n })()\n\n // faster lookups token keys become $keys to match input\n const tokensParsed: any = {}\n for (const key in config.tokens) {\n tokensParsed[key] = {}\n for (const skey in config.tokens[key]) {\n tokensParsed[key][`$${skey}`] = config.tokens[key][skey]\n }\n }\n // all themes should match key and we just need variable name\n // TODO once w react native we'd want to have a reverse lookup back to value\n const themeParsed: any = {}\n const firstKey = Object.keys(config.themes)[0]\n for (const key in config.themes[firstKey]) {\n // themeParsed[`$${key}`] = config.themes[firstKey][key]\n const val = config.themes[firstKey][key].val\n themeParsed[`$${key}`] = new Variable({ val, name: key })\n }\n\n const next: TamaguiInternalConfig = {\n // @ts-ignore\n shorthands: {},\n ...config,\n Provider: createTamaguiProvider({\n defaultTheme: 'light',\n ...config,\n }),\n themeConfig,\n themeParsed,\n tokensParsed,\n getCSS() {\n return `${themeConfig.css}\\n${[...getStyleRules()].join('\\n')}`\n },\n }\n conf = next\n\n if (configListeners.size) {\n configListeners.forEach((cb) => cb(next))\n configListeners.clear()\n }\n\n // @ts-expect-error\n return next\n}\n\nexport function getThemeParentClassName(themeName?: string | null) {\n return `theme-parent ${themeName ? `${PREFIX}${themeName}` : ''}`\n}\n\n// insertSheet() {\n// // TODO use new react method of inserting\n// const tag = createStyleTag()\n// for (const rule of cssRules) {\n// tag?.sheet?.insertRule(rule)\n// }\n// },\n\n// function createStyleTag(): HTMLStyleElement | null {\n// if (typeof document === 'undefined') {\n// return null\n// }\n// const tag = document.createElement('style')\n// tag.className = 'tamagui-css-vars'\n// tag.setAttribute('type', 'text/css')\n// tag.appendChild(document.createTextNode(''))\n// if (!document.head) {\n// throw new Error('expected head')\n// }\n// document.head.appendChild(tag)\n// return tag\n// }\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/_/createTheme.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
import { Variable, createVariable } from "./createVariable";
|
|
4
|
+
const createTheme = /* @__PURE__ */ __name((theme) => {
|
|
5
|
+
const res = {};
|
|
6
|
+
for (const key in theme) {
|
|
7
|
+
const val = theme[key];
|
|
8
|
+
if (!(val instanceof Variable)) {
|
|
9
|
+
res[key] = createVariable({
|
|
10
|
+
name: key,
|
|
11
|
+
val
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
return res;
|
|
16
|
+
}, "createTheme");
|
|
17
|
+
export {
|
|
18
|
+
createTheme
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=createTheme.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/createTheme.ts"],
|
|
4
|
+
"sourcesContent": ["import { Variable, createVariable } from './createVariable'\n\nexport const createTheme = <Theme extends { [key: string]: string | Variable }>(\n theme: Theme\n): {\n [key in keyof Theme]: Variable\n} => {\n const res = {} as any\n for (const key in theme) {\n const val = theme[key]\n if (!(val instanceof Variable)) {\n res[key] = createVariable({\n name: key,\n val,\n })\n }\n }\n return res\n}\n"],
|
|
5
|
+
"mappings": ";;AAAA;AAEO,MAAM,cAAc,wBACzB,UAGG;AACH,QAAM,MAAM;AACZ,aAAW,OAAO,OAAO;AACvB,UAAM,MAAM,MAAM;AAClB,QAAI,CAAE,gBAAe,WAAW;AAC9B,UAAI,OAAO,eAAe;AAAA,QACxB,MAAM;AAAA,QACN;AAAA;AAAA;AAAA;AAIN,SAAO;AAAA,GAfkB;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
import { createVariable } from "./createVariable";
|
|
4
|
+
function createTokens(tokens) {
|
|
5
|
+
return setupTokens(tokens);
|
|
6
|
+
}
|
|
7
|
+
__name(createTokens, "createTokens");
|
|
8
|
+
function setupTokens(tokens) {
|
|
9
|
+
return mapTokensToVariables(tokens);
|
|
10
|
+
}
|
|
11
|
+
__name(setupTokens, "setupTokens");
|
|
12
|
+
const mapTokensToVariables = /* @__PURE__ */ __name((tokens, parentPath = "") => {
|
|
13
|
+
const res = {};
|
|
14
|
+
for (const key in tokens) {
|
|
15
|
+
const val = tokens[key];
|
|
16
|
+
const name = parentPath ? `${parentPath}-${key}` : key;
|
|
17
|
+
if (val && typeof val === "object") {
|
|
18
|
+
res[key] = mapTokensToVariables(tokens[key], name);
|
|
19
|
+
} else {
|
|
20
|
+
res[key] = createVariable({ val, name });
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return res;
|
|
24
|
+
}, "mapTokensToVariables");
|
|
25
|
+
export {
|
|
26
|
+
createTokens,
|
|
27
|
+
mapTokensToVariables
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=createTokens.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/createTokens.ts"],
|
|
4
|
+
"sourcesContent": ["import { Variable, createVariable } from './createVariable'\nimport { CreateTokens } from './types'\n\n// tokens.color.dark.red ===>{ var: `color-dark-red`, val: '' }\n\nexport function createTokens<T extends CreateTokens>(tokens: T): MakeTokens<T> {\n // @ts-ignore\n return setupTokens(tokens)\n}\n\nfunction setupTokens(tokens: any) {\n return mapTokensToVariables(tokens)\n}\n\nexport const mapTokensToVariables = (\n tokens: CreateTokens,\n parentPath = ''\n): CreateTokens<Variable> => {\n const res = {}\n for (const key in tokens) {\n const val = tokens[key]\n const name = parentPath ? `${parentPath}-${key}` : key\n if (val && typeof val === 'object') {\n res[key] = mapTokensToVariables(tokens[key], name)\n } else {\n res[key] = createVariable({ val, name })\n }\n }\n // @ts-expect-error\n return res\n}\n\n// verbose but gives us nice types...\ntype MakeTokens<T> = T extends {\n font: infer A\n fontSize: infer B\n lineHeight: infer C\n letterSpace: infer D\n color: infer E\n space: infer F\n size: infer G\n radius: infer H\n zIndex: infer J\n}\n ? {\n font: {\n [key in keyof A]: Variable\n }\n fontSize: {\n [key in keyof B]: Variable\n }\n lineHeight: {\n [key in keyof C]: Variable\n }\n letterSpace: {\n [key in keyof D]: Variable\n }\n color: {\n [key in keyof E]: Variable\n }\n space: {\n [key in keyof F]: Variable\n }\n size: {\n [key in keyof G]: Variable\n }\n radius: {\n [key in keyof H]: Variable\n }\n zIndex: {\n [key in keyof J]: Variable\n }\n }\n : never\n"],
|
|
5
|
+
"mappings": ";;AAAA;AAKO,sBAA8C,QAA0B;AAE7E,SAAO,YAAY;AAAA;AAFL;AAKhB,qBAAqB,QAAa;AAChC,SAAO,qBAAqB;AAAA;AADrB;AAIF,MAAM,uBAAuB,wBAClC,QACA,aAAa,OACc;AAC3B,QAAM,MAAM;AACZ,aAAW,OAAO,QAAQ;AACxB,UAAM,MAAM,OAAO;AACnB,UAAM,OAAO,aAAa,GAAG,cAAc,QAAQ;AACnD,QAAI,OAAO,OAAO,QAAQ,UAAU;AAClC,UAAI,OAAO,qBAAqB,OAAO,MAAM;AAAA,WACxC;AACL,UAAI,OAAO,eAAe,EAAE,KAAK;AAAA;AAAA;AAIrC,SAAO;AAAA,GAf2B;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
import { isWeb } from "./constants/platform";
|
|
4
|
+
class Variable {
|
|
5
|
+
constructor({ val, name }) {
|
|
6
|
+
this.val = val;
|
|
7
|
+
this.name = name;
|
|
8
|
+
this.variable = isWeb ? `var(--${name})` : this.val;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
__name(Variable, "Variable");
|
|
12
|
+
const createVariable = /* @__PURE__ */ __name((props) => new Variable(props), "createVariable");
|
|
13
|
+
function isVariable(v) {
|
|
14
|
+
return v instanceof Variable;
|
|
15
|
+
}
|
|
16
|
+
__name(isVariable, "isVariable");
|
|
17
|
+
export {
|
|
18
|
+
Variable,
|
|
19
|
+
createVariable,
|
|
20
|
+
isVariable
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=createVariable.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/createVariable.ts"],
|
|
4
|
+
"sourcesContent": ["import { isWeb } from './constants/platform'\n\nexport class Variable {\n name: string\n val: string | number\n variable: string | number\n\n constructor({ val, name }: VariableIn) {\n // converting to px breaks rn\n this.val = val //typeof val === 'string' ? val : `${val}px`\n this.name = name\n this.variable = isWeb ? `var(--${name})` : this.val\n }\n}\n\ntype VariableIn = { val: string | number; name: string }\n\nexport const createVariable = (props: VariableIn) => new Variable(props)\n\nexport function isVariable(v: Variable | any): v is Variable {\n return v instanceof Variable\n}\n"],
|
|
5
|
+
"mappings": ";;AAAA;AAEO,eAAe;AAAA,EAKpB,YAAY,EAAE,KAAK,QAAoB;AAErC,SAAK,MAAM;AACX,SAAK,OAAO;AACZ,SAAK,WAAW,QAAQ,SAAS,UAAU,KAAK;AAAA;AAAA;AAT7C;AAeA,MAAM,iBAAiB,wBAAC,UAAsB,IAAI,SAAS,QAApC;AAEvB,oBAAoB,GAAkC;AAC3D,SAAO,aAAa;AAAA;AADN;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
import { getStylesAtomic } from "./getStylesAtomic";
|
|
4
|
+
import { insertStyleRule } from "./insertStyleRule";
|
|
5
|
+
let added = {};
|
|
6
|
+
function addStylesUsingClassname(styles) {
|
|
7
|
+
let className = "";
|
|
8
|
+
for (const style of styles) {
|
|
9
|
+
if (!style)
|
|
10
|
+
continue;
|
|
11
|
+
if (Array.isArray(style)) {
|
|
12
|
+
className += " " + addStylesUsingClassname(style);
|
|
13
|
+
continue;
|
|
14
|
+
}
|
|
15
|
+
for (const { identifier, rules } of getStylesAtomic(style)) {
|
|
16
|
+
className += ` ${identifier}`;
|
|
17
|
+
if (added[identifier]) {
|
|
18
|
+
continue;
|
|
19
|
+
}
|
|
20
|
+
added[identifier] = true;
|
|
21
|
+
for (const rule of rules) {
|
|
22
|
+
insertStyleRule(rule);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return className;
|
|
27
|
+
}
|
|
28
|
+
__name(addStylesUsingClassname, "addStylesUsingClassname");
|
|
29
|
+
export {
|
|
30
|
+
addStylesUsingClassname
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=addStylesUsingClassname.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/helpers/addStylesUsingClassname.tsx"],
|
|
4
|
+
"sourcesContent": ["import { getStylesAtomic } from './getStylesAtomic'\nimport { insertStyleRule } from './insertStyleRule'\n\nlet added = {}\n\n// TODO use upcoming react method for inserting\n\nexport function addStylesUsingClassname(styles: any[]) {\n let className = ''\n for (const style of styles) {\n if (!style) continue\n if (Array.isArray(style)) {\n className += ' ' + addStylesUsingClassname(style)\n continue\n }\n for (const { identifier, rules } of getStylesAtomic(style)) {\n className += ` ${identifier}`\n if (added[identifier]) {\n continue\n }\n added[identifier] = true\n for (const rule of rules) {\n insertStyleRule(rule)\n }\n }\n }\n return className\n}\n"],
|
|
5
|
+
"mappings": ";;AAAA;AACA;AAEA,IAAI,QAAQ;AAIL,iCAAiC,QAAe;AACrD,MAAI,YAAY;AAChB,aAAW,SAAS,QAAQ;AAC1B,QAAI,CAAC;AAAO;AACZ,QAAI,MAAM,QAAQ,QAAQ;AACxB,mBAAa,MAAM,wBAAwB;AAC3C;AAAA;AAEF,eAAW,EAAE,YAAY,WAAW,gBAAgB,QAAQ;AAC1D,mBAAa,IAAI;AACjB,UAAI,MAAM,aAAa;AACrB;AAAA;AAEF,YAAM,cAAc;AACpB,iBAAW,QAAQ,OAAO;AACxB,wBAAgB;AAAA;AAAA;AAAA;AAItB,SAAO;AAAA;AAnBO;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
import { mediaObjectToString } from "../hooks/useMedia";
|
|
4
|
+
const MEDIA_SEP = "_";
|
|
5
|
+
const createMediaStyle = /* @__PURE__ */ __name(({ identifier, rules }, mediaKey, mediaQueries, negate, importance = 0) => {
|
|
6
|
+
const mediaKeys = Object.keys(mediaQueries);
|
|
7
|
+
const mediaKeyPrecendence = mediaKeys.reduce((acc, cur, i) => {
|
|
8
|
+
acc[cur] = new Array(importance + 1).fill(":root").join("");
|
|
9
|
+
return acc;
|
|
10
|
+
}, {});
|
|
11
|
+
const negKey = negate ? "0" : "";
|
|
12
|
+
const ogPrefix = identifier.slice(0, identifier.indexOf("-") + 1);
|
|
13
|
+
const nextIdentifier = `${identifier.replace(ogPrefix, `${ogPrefix}${MEDIA_SEP}${mediaKey}${negKey}${MEDIA_SEP}`)}`;
|
|
14
|
+
const screenStr = negate ? "not all" : "screen";
|
|
15
|
+
const mediaSelector = mediaObjectToString(mediaQueries[mediaKey]);
|
|
16
|
+
const mediaQuery = `${screenStr} and ${mediaSelector}`;
|
|
17
|
+
const precendencePrefix = mediaKeyPrecendence[mediaKey];
|
|
18
|
+
const styleInner = rules[0].replace(identifier, nextIdentifier);
|
|
19
|
+
let styleRule = "";
|
|
20
|
+
if (styleInner.includes("@media")) {
|
|
21
|
+
styleRule = styleInner.replace("{", ` and ${mediaQuery} {`);
|
|
22
|
+
} else {
|
|
23
|
+
styleRule = `@media ${mediaQuery} { ${precendencePrefix} ${styleInner} }`;
|
|
24
|
+
}
|
|
25
|
+
return {
|
|
26
|
+
styleRule,
|
|
27
|
+
identifier: nextIdentifier
|
|
28
|
+
};
|
|
29
|
+
}, "createMediaStyle");
|
|
30
|
+
export {
|
|
31
|
+
MEDIA_SEP,
|
|
32
|
+
createMediaStyle
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=createMediaStyle.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/helpers/createMediaStyle.ts"],
|
|
4
|
+
"sourcesContent": ["import { StyleObject } from '@tamagui/helpers'\n\nimport { mediaObjectToString } from '../hooks/useMedia'\nimport { MediaQueries } from '../types'\n\n// TODO have this be used by extractMediaStyle in tamagui static\n\n// not synced to static/constants for now\nexport const MEDIA_SEP = '_'\n\nexport const createMediaStyle = (\n { identifier, rules }: StyleObject,\n mediaKey: string,\n mediaQueries: MediaQueries,\n negate?: boolean,\n importance = 0\n) => {\n const mediaKeys = Object.keys(mediaQueries)\n const mediaKeyPrecendence = mediaKeys.reduce((acc, cur, i) => {\n acc[cur] = new Array(importance + 1).fill(':root').join('')\n return acc\n }, {})\n const negKey = negate ? '0' : ''\n const ogPrefix = identifier.slice(0, identifier.indexOf('-') + 1)\n const nextIdentifier = `${identifier.replace(\n ogPrefix,\n `${ogPrefix}${MEDIA_SEP}${mediaKey}${negKey}${MEDIA_SEP}`\n )}`\n const screenStr = negate ? 'not all' : 'screen'\n const mediaSelector = mediaObjectToString(mediaQueries[mediaKey])\n const mediaQuery = `${screenStr} and ${mediaSelector}`\n const precendencePrefix = mediaKeyPrecendence[mediaKey]\n const styleInner = rules[0].replace(identifier, nextIdentifier)\n // combines media queries if they already exist\n let styleRule = ''\n if (styleInner.includes('@media')) {\n // combine\n styleRule = styleInner.replace('{', ` and ${mediaQuery} {`)\n } else {\n styleRule = `@media ${mediaQuery} { ${precendencePrefix} ${styleInner} }`\n }\n return {\n styleRule,\n identifier: nextIdentifier,\n }\n}\n"],
|
|
5
|
+
"mappings": ";;AAEA;AAMO,MAAM,YAAY;AAElB,MAAM,mBAAmB,wBAC9B,EAAE,YAAY,SACd,UACA,cACA,QACA,aAAa,MACV;AACH,QAAM,YAAY,OAAO,KAAK;AAC9B,QAAM,sBAAsB,UAAU,OAAO,CAAC,KAAK,KAAK,MAAM;AAC5D,QAAI,OAAO,IAAI,MAAM,aAAa,GAAG,KAAK,SAAS,KAAK;AACxD,WAAO;AAAA,KACN;AACH,QAAM,SAAS,SAAS,MAAM;AAC9B,QAAM,WAAW,WAAW,MAAM,GAAG,WAAW,QAAQ,OAAO;AAC/D,QAAM,iBAAiB,GAAG,WAAW,QACnC,UACA,GAAG,WAAW,YAAY,WAAW,SAAS;AAEhD,QAAM,YAAY,SAAS,YAAY;AACvC,QAAM,gBAAgB,oBAAoB,aAAa;AACvD,QAAM,aAAa,GAAG,iBAAiB;AACvC,QAAM,oBAAoB,oBAAoB;AAC9C,QAAM,aAAa,MAAM,GAAG,QAAQ,YAAY;AAEhD,MAAI,YAAY;AAChB,MAAI,WAAW,SAAS,WAAW;AAEjC,gBAAY,WAAW,QAAQ,KAAK,QAAQ;AAAA,SACvC;AACL,gBAAY,UAAU,gBAAgB,qBAAqB;AAAA;AAE7D,SAAO;AAAA,IACL;AAAA,IACA,YAAY;AAAA;AAAA,GAjCgB;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { Platform } from "react-native";
|
|
5
|
+
import {
|
|
6
|
+
SafeAreaProvider,
|
|
7
|
+
initialWindowMetrics as defaultInitialWindowMetrics
|
|
8
|
+
} from "react-native-safe-area-context";
|
|
9
|
+
import { TextAncestorProvider } from "../views/TextAncestorContext";
|
|
10
|
+
import { ThemeProvider } from "../views/ThemeProvider";
|
|
11
|
+
function createTamaguiProvider(themeProps) {
|
|
12
|
+
let defaultMetrics = null;
|
|
13
|
+
return /* @__PURE__ */ __name(function TamaguiProvider({
|
|
14
|
+
initialWindowMetrics,
|
|
15
|
+
fallback,
|
|
16
|
+
children,
|
|
17
|
+
...themePropsProvider
|
|
18
|
+
}) {
|
|
19
|
+
if (!initialWindowMetrics && !defaultMetrics) {
|
|
20
|
+
defaultMetrics = Platform.select({
|
|
21
|
+
web: {
|
|
22
|
+
frame: { x: 0, y: 0, width: 0, height: 0 },
|
|
23
|
+
insets: { top: 0, left: 0, right: 0, bottom: 0 }
|
|
24
|
+
},
|
|
25
|
+
default: defaultInitialWindowMetrics
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
return /* @__PURE__ */ React.createElement(TextAncestorProvider, null, /* @__PURE__ */ React.createElement(SafeAreaProvider, {
|
|
29
|
+
initialMetrics: initialWindowMetrics != null ? initialWindowMetrics : defaultMetrics
|
|
30
|
+
}, /* @__PURE__ */ React.createElement(ThemeProvider, {
|
|
31
|
+
...themeProps,
|
|
32
|
+
...themePropsProvider
|
|
33
|
+
}, /* @__PURE__ */ React.createElement(React.Suspense, {
|
|
34
|
+
fallback: fallback || null
|
|
35
|
+
}, children))));
|
|
36
|
+
}, "TamaguiProvider");
|
|
37
|
+
}
|
|
38
|
+
__name(createTamaguiProvider, "createTamaguiProvider");
|
|
39
|
+
export {
|
|
40
|
+
createTamaguiProvider
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=createTamaguiProvider.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/helpers/createTamaguiProvider.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react'\nimport { Platform } from 'react-native'\nimport {\n Metrics,\n SafeAreaProvider,\n initialWindowMetrics as defaultInitialWindowMetrics,\n} from 'react-native-safe-area-context'\n\nimport { TamaguiProviderProps } from '../types'\nimport { TextAncestorProvider } from '../views/TextAncestorContext'\nimport { ThemeProvider, ThemeProviderProps } from '../views/ThemeProvider'\n\nexport function createTamaguiProvider(themeProps: ThemeProviderProps) {\n let defaultMetrics: Metrics | null = null\n return function TamaguiProvider({\n initialWindowMetrics,\n fallback,\n children,\n ...themePropsProvider\n }: TamaguiProviderProps) {\n if (!initialWindowMetrics && !defaultMetrics) {\n defaultMetrics = Platform.select({\n web: {\n frame: { x: 0, y: 0, width: 0, height: 0 },\n insets: { top: 0, left: 0, right: 0, bottom: 0 },\n },\n default: defaultInitialWindowMetrics,\n })\n }\n return (\n <TextAncestorProvider>\n <SafeAreaProvider initialMetrics={initialWindowMetrics ?? defaultMetrics}>\n <ThemeProvider {...themeProps} {...themePropsProvider}>\n <React.Suspense fallback={fallback || null}>{children}</React.Suspense>\n </ThemeProvider>\n </SafeAreaProvider>\n </TextAncestorProvider>\n )\n }\n}\n"],
|
|
5
|
+
"mappings": ";;AAAA;AACA;AACA;AAAA;AAAA;AAAA;AAOA;AACA;AAEO,+BAA+B,YAAgC;AACpE,MAAI,iBAAiC;AACrC,SAAO,gDAAyB;AAAA,IAC9B;AAAA,IACA;AAAA,IACA;AAAA,OACG;AAAA,KACoB;AACvB,QAAI,CAAC,wBAAwB,CAAC,gBAAgB;AAC5C,uBAAiB,SAAS,OAAO;AAAA,QAC/B,KAAK;AAAA,UACH,OAAO,EAAE,GAAG,GAAG,GAAG,GAAG,OAAO,GAAG,QAAQ;AAAA,UACvC,QAAQ,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ;AAAA;AAAA,QAE/C,SAAS;AAAA;AAAA;AAGb,WACE,oCAAC,sBAAD,MACE,oCAAC,kBAAD;AAAA,MAAkB,gBAAgB,sDAAwB;AAAA,OACxD,oCAAC,eAAD;AAAA,SAAmB;AAAA,SAAgB;AAAA,OACjC,oCAAC,MAAM,UAAP;AAAA,MAAgB,UAAU,YAAY;AAAA,OAAO;AAAA,KAnBhD;AAAA;AAFO;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
import { getTamaguiConfig } from "../createTamagui";
|
|
4
|
+
import { Variable } from "../createVariable";
|
|
5
|
+
function extendStaticConfig(Component, config = {}) {
|
|
6
|
+
var _a, _b;
|
|
7
|
+
const a = Component || {};
|
|
8
|
+
if (!a.staticConfig) {
|
|
9
|
+
a.staticConfig = {
|
|
10
|
+
Component
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
return parseStaticConfig({
|
|
14
|
+
...a.staticConfig,
|
|
15
|
+
variants: {
|
|
16
|
+
...a.staticConfig.variants,
|
|
17
|
+
...config.variants
|
|
18
|
+
},
|
|
19
|
+
isText: config.isText || a.staticConfig.isText || false,
|
|
20
|
+
neverFlatten: (_a = config.neverFlatten) != null ? _a : a.staticConfig.neverFlatten,
|
|
21
|
+
ensureOverriddenProp: (_b = config.ensureOverriddenProp) != null ? _b : a.staticConfig.ensureOverriddenProp,
|
|
22
|
+
validStyles: config.validStyles ? {
|
|
23
|
+
...a.staticConfig.validStyles,
|
|
24
|
+
...config.validStyles
|
|
25
|
+
} : a.staticConfig.validStyles,
|
|
26
|
+
validPropsExtra: {
|
|
27
|
+
...a.staticConfig.validPropsExtra,
|
|
28
|
+
...config.validPropsExtra
|
|
29
|
+
},
|
|
30
|
+
defaultProps: {
|
|
31
|
+
...a.staticConfig.defaultProps,
|
|
32
|
+
...config.defaultProps
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
__name(extendStaticConfig, "extendStaticConfig");
|
|
37
|
+
function parseStaticConfig(c) {
|
|
38
|
+
const variants = c.variants;
|
|
39
|
+
let variantsParsed;
|
|
40
|
+
return {
|
|
41
|
+
...c,
|
|
42
|
+
parsed: true,
|
|
43
|
+
propMapper(key, value, theme) {
|
|
44
|
+
var _a;
|
|
45
|
+
const conf = getTamaguiConfig();
|
|
46
|
+
if (!conf) {
|
|
47
|
+
console.trace("err");
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
if (variants && !variantsParsed) {
|
|
51
|
+
variantsParsed = parseVariants(variants, conf);
|
|
52
|
+
}
|
|
53
|
+
const variant = variantsParsed == null ? void 0 : variantsParsed[key];
|
|
54
|
+
if (variant) {
|
|
55
|
+
const tokenKey = typeof value === "string" && value[0] === "$" ? value.slice(1) : value;
|
|
56
|
+
const val = tokenKey === true ? variant["true"] : (_a = variant[tokenKey]) != null ? _a : value;
|
|
57
|
+
let res;
|
|
58
|
+
if (typeof val === "function") {
|
|
59
|
+
res = val(tokenKey, { tokens: conf.tokens, theme });
|
|
60
|
+
} else {
|
|
61
|
+
res = val;
|
|
62
|
+
}
|
|
63
|
+
if (res) {
|
|
64
|
+
for (const rKey in res) {
|
|
65
|
+
const fKey = conf.shorthands[rKey] || rKey;
|
|
66
|
+
if (rKey !== fKey) {
|
|
67
|
+
delete res[rKey];
|
|
68
|
+
}
|
|
69
|
+
const val2 = res[rKey];
|
|
70
|
+
if (val2 instanceof Variable) {
|
|
71
|
+
res[fKey] = val2.variable;
|
|
72
|
+
} else if (val2) {
|
|
73
|
+
const fVal = val2[0] === "$" ? getToken(fKey, val2, conf) : val2;
|
|
74
|
+
res[fKey] = fVal;
|
|
75
|
+
} else {
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return res;
|
|
80
|
+
}
|
|
81
|
+
let shouldReturn = false;
|
|
82
|
+
if (conf.shorthands[key]) {
|
|
83
|
+
shouldReturn = true;
|
|
84
|
+
key = conf.shorthands[key];
|
|
85
|
+
}
|
|
86
|
+
if (value && value[0] === "$") {
|
|
87
|
+
shouldReturn = true;
|
|
88
|
+
value = getToken(key, value, conf);
|
|
89
|
+
}
|
|
90
|
+
if (value instanceof Variable) {
|
|
91
|
+
shouldReturn = true;
|
|
92
|
+
value = value.variable;
|
|
93
|
+
}
|
|
94
|
+
if (shouldReturn) {
|
|
95
|
+
return {
|
|
96
|
+
[key]: value
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
__name(parseStaticConfig, "parseStaticConfig");
|
|
103
|
+
const getToken = /* @__PURE__ */ __name((key, value, { tokensParsed, themeParsed }) => {
|
|
104
|
+
if (themeParsed[value]) {
|
|
105
|
+
return themeParsed[value].variable;
|
|
106
|
+
}
|
|
107
|
+
for (const cat in tokenCategories) {
|
|
108
|
+
if (tokenCategories[cat][key]) {
|
|
109
|
+
const res = tokensParsed[cat][value];
|
|
110
|
+
if (res) {
|
|
111
|
+
return res.variable;
|
|
112
|
+
} else {
|
|
113
|
+
const themeVar = themeParsed[value];
|
|
114
|
+
if (themeVar) {
|
|
115
|
+
return themeVar.variable;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
const spaceVar = tokensParsed.space[value];
|
|
121
|
+
if (spaceVar) {
|
|
122
|
+
return spaceVar.variable;
|
|
123
|
+
}
|
|
124
|
+
return value;
|
|
125
|
+
}, "getToken");
|
|
126
|
+
const tokenCategories = {
|
|
127
|
+
size: {
|
|
128
|
+
width: true,
|
|
129
|
+
height: true,
|
|
130
|
+
minWidth: true,
|
|
131
|
+
minHeight: true,
|
|
132
|
+
maxWidth: true,
|
|
133
|
+
maxHeight: true
|
|
134
|
+
},
|
|
135
|
+
font: {
|
|
136
|
+
fontFamily: true
|
|
137
|
+
},
|
|
138
|
+
fontSize: {
|
|
139
|
+
fontSize: true
|
|
140
|
+
},
|
|
141
|
+
lineHeight: {
|
|
142
|
+
lineHeight: true
|
|
143
|
+
},
|
|
144
|
+
color: {
|
|
145
|
+
color: true,
|
|
146
|
+
backgroundColor: true,
|
|
147
|
+
borderColor: true,
|
|
148
|
+
borderBottomColor: true,
|
|
149
|
+
borderTopColor: true,
|
|
150
|
+
borderLeftColor: true,
|
|
151
|
+
borderRightColor: true
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
function parseVariants(variants, conf) {
|
|
155
|
+
return Object.keys(variants).reduce((acc, key) => {
|
|
156
|
+
acc[key] = Object.keys(variants[key]).reduce((vacc, vkey) => {
|
|
157
|
+
if (vkey.startsWith("...")) {
|
|
158
|
+
const tokenKey = vkey.slice(3);
|
|
159
|
+
const tokens = conf.tokens[tokenKey];
|
|
160
|
+
for (const tkey in tokens) {
|
|
161
|
+
vacc[tkey] = variants[key][vkey];
|
|
162
|
+
}
|
|
163
|
+
} else {
|
|
164
|
+
vacc[vkey] = variants[key][vkey];
|
|
165
|
+
}
|
|
166
|
+
return vacc;
|
|
167
|
+
}, {});
|
|
168
|
+
return acc;
|
|
169
|
+
}, {});
|
|
170
|
+
}
|
|
171
|
+
__name(parseVariants, "parseVariants");
|
|
172
|
+
export {
|
|
173
|
+
extendStaticConfig,
|
|
174
|
+
parseStaticConfig
|
|
175
|
+
};
|
|
176
|
+
//# sourceMappingURL=extendStaticConfig.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/helpers/extendStaticConfig.ts"],
|
|
4
|
+
"sourcesContent": ["import React from 'react'\n\nimport { getTamaguiConfig } from '../createTamagui'\nimport { Variable } from '../createVariable'\nimport { StaticComponent, StaticConfig, StaticConfigParsed, TamaguiInternalConfig } from '../types'\n\nexport function extendStaticConfig(\n // can be undefined when loading with @tamagui/fake-react-native\n // could be fixed a bit cleaner\n Component?: StaticComponent | React.Component<any>,\n config: StaticConfig = {}\n): StaticConfigParsed | null {\n const a = (Component || {}) as any\n if (!a.staticConfig) {\n // if no static config, we are extending an external component\n a.staticConfig = {\n Component,\n }\n }\n\n return parseStaticConfig({\n ...a.staticConfig,\n variants: {\n ...a.staticConfig.variants,\n ...config.variants,\n },\n isText: config.isText || a.staticConfig.isText || false,\n neverFlatten: config.neverFlatten ?? a.staticConfig.neverFlatten,\n ensureOverriddenProp: config.ensureOverriddenProp ?? a.staticConfig.ensureOverriddenProp,\n validStyles: config.validStyles\n ? {\n ...a.staticConfig.validStyles,\n ...config.validStyles,\n }\n : a.staticConfig.validStyles,\n validPropsExtra: {\n ...a.staticConfig.validPropsExtra,\n ...config.validPropsExtra,\n },\n defaultProps: {\n ...a.staticConfig.defaultProps,\n ...config.defaultProps,\n },\n })\n}\n\nexport function parseStaticConfig(c: StaticConfig): StaticConfigParsed {\n const variants = c.variants\n let variantsParsed\n return {\n ...c,\n parsed: true,\n\n propMapper(key: string, value: any, theme: any) {\n const conf = getTamaguiConfig()\n if (!conf) {\n console.trace('err')\n return\n }\n if (variants && !variantsParsed) {\n variantsParsed = parseVariants(variants, conf)\n }\n\n // expand variants\n const variant = variantsParsed?.[key]\n if (variant) {\n const tokenKey = typeof value === 'string' && value[0] === '$' ? value.slice(1) : value\n const val = tokenKey === true ? variant['true'] : variant[tokenKey] ?? value\n\n let res: any\n if (typeof val === 'function') {\n res = val(tokenKey, { tokens: conf.tokens, theme })\n } else {\n res = val\n }\n\n if (res) {\n for (const rKey in res) {\n const fKey = conf.shorthands[rKey] || rKey\n if (rKey !== fKey) {\n delete res[rKey]\n }\n const val = res[rKey]\n if (val instanceof Variable) {\n res[fKey] = val.variable\n } else if (val) {\n const fVal = val[0] === '$' ? getToken(fKey, val, conf) : val\n res[fKey] = fVal\n } else {\n // nullish values can't be tokens\n }\n }\n }\n\n return res\n }\n\n let shouldReturn = false\n\n // handle shorthands\n if (conf.shorthands[key]) {\n shouldReturn = true\n key = conf.shorthands[key]\n }\n\n if (value && value[0] === '$') {\n shouldReturn = true\n value = getToken(key, value, conf)\n }\n\n if (value instanceof Variable) {\n shouldReturn = true\n value = value.variable\n }\n\n if (shouldReturn) {\n return {\n [key]: value,\n }\n }\n },\n }\n}\n\nconst getToken = (\n key: string,\n value: string,\n { tokensParsed, themeParsed }: TamaguiInternalConfig\n) => {\n if (themeParsed[value]) {\n return themeParsed[value].variable\n }\n for (const cat in tokenCategories) {\n if (tokenCategories[cat][key]) {\n const res = tokensParsed[cat][value]\n if (res) {\n return res.variable\n } else {\n const themeVar = themeParsed[value]\n if (themeVar) {\n return themeVar.variable\n }\n }\n }\n }\n const spaceVar = tokensParsed.space[value]\n if (spaceVar) {\n return spaceVar.variable\n }\n return value\n}\n\n// just specificy the least costly, all else go to `space` (most keys - we can exclude)\n\nconst tokenCategories = {\n size: {\n width: true,\n height: true,\n minWidth: true,\n minHeight: true,\n maxWidth: true,\n maxHeight: true,\n },\n font: {\n fontFamily: true,\n },\n fontSize: {\n fontSize: true,\n },\n lineHeight: {\n lineHeight: true,\n },\n color: {\n color: true,\n backgroundColor: true,\n borderColor: true,\n borderBottomColor: true,\n borderTopColor: true,\n borderLeftColor: true,\n borderRightColor: true,\n },\n}\n\nfunction parseVariants(variants: any, conf: TamaguiInternalConfig) {\n return Object.keys(variants).reduce((acc, key) => {\n acc[key] = Object.keys(variants[key]).reduce((vacc, vkey) => {\n if (vkey.startsWith('...')) {\n const tokenKey = vkey.slice(3)\n const tokens = conf.tokens[tokenKey]\n for (const tkey in tokens) {\n vacc[tkey] = variants[key][vkey]\n }\n // explode\n // acc[vkey] = variants[key][vkey]\n } else {\n vacc[vkey] = variants[key][vkey]\n }\n return vacc\n }, {})\n return acc\n }, {})\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
const fixNativeShadow = /* @__PURE__ */ __name((a) => {
|
|
4
|
+
}, "fixNativeShadow");
|
|
5
|
+
export {
|
|
6
|
+
fixNativeShadow
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=fixNativeShadow.js.map
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
const matchRgba = /rgba\(\s*([\d\.]{1,})\s*,\s*([\d\.]{1,})\s*,\s*([\d\.]{1,})\s*,\s*([\d\.]{1,})\s*\)$/;
|
|
4
|
+
function fixNativeShadow(props) {
|
|
5
|
+
if (props.shadowColor) {
|
|
6
|
+
if (!!!("shadowOffset" in props)) {
|
|
7
|
+
props.shadowOffset = {
|
|
8
|
+
width: 0,
|
|
9
|
+
height: 0
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
if (!!!("shadowOpacity" in props)) {
|
|
13
|
+
const c = `${props.shadowColor}`;
|
|
14
|
+
if (c[0] === "r" && c[3] === "a") {
|
|
15
|
+
const [_, r, g, b, a] = c.match(matchRgba) || [];
|
|
16
|
+
if (typeof a !== "string") {
|
|
17
|
+
console.warn("non valid rgba", c);
|
|
18
|
+
return props;
|
|
19
|
+
}
|
|
20
|
+
props.shadowColor = `rgb(${r},${g},${b})`;
|
|
21
|
+
props.shadowOpacity = +a;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
__name(fixNativeShadow, "fixNativeShadow");
|
|
27
|
+
export {
|
|
28
|
+
fixNativeShadow
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=fixNativeShadow.native.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/helpers/fixNativeShadow.native.tsx"],
|
|
4
|
+
"sourcesContent": ["const matchRgba =\n /rgba\\(\\s*([\\d\\.]{1,})\\s*,\\s*([\\d\\.]{1,})\\s*,\\s*([\\d\\.]{1,})\\s*,\\s*([\\d\\.]{1,})\\s*\\)$/\n\nexport function fixNativeShadow(props: any) {\n if (props.shadowColor) {\n if (!!!('shadowOffset' in props)) {\n // fixes some broken shadows\n props.shadowOffset = {\n width: 0,\n height: 0,\n }\n }\n if (!!!('shadowOpacity' in props)) {\n const c = `${props.shadowColor}`\n // react native has issues sometimes with rgba()\n if (c[0] === 'r' && c[3] === 'a') {\n const [_, r, g, b, a] = c.match(matchRgba) || []\n if (typeof a !== 'string') {\n console.warn('non valid rgba', c)\n return props\n }\n props.shadowColor = `rgb(${r},${g},${b})`\n props.shadowOpacity = +a\n }\n }\n }\n}\n"],
|
|
5
|
+
"mappings": ";;AAAA,MAAM,YACJ;AAEK,yBAAyB,OAAY;AAC1C,MAAI,MAAM,aAAa;AACrB,QAAI,CAAC,CAAC,CAAE,mBAAkB,QAAQ;AAEhC,YAAM,eAAe;AAAA,QACnB,OAAO;AAAA,QACP,QAAQ;AAAA;AAAA;AAGZ,QAAI,CAAC,CAAC,CAAE,oBAAmB,QAAQ;AACjC,YAAM,IAAI,GAAG,MAAM;AAEnB,UAAI,EAAE,OAAO,OAAO,EAAE,OAAO,KAAK;AAChC,cAAM,CAAC,GAAG,GAAG,GAAG,GAAG,KAAK,EAAE,MAAM,cAAc;AAC9C,YAAI,OAAO,MAAM,UAAU;AACzB,kBAAQ,KAAK,kBAAkB;AAC/B,iBAAO;AAAA;AAET,cAAM,cAAc,OAAO,KAAK,KAAK;AACrC,cAAM,gBAAgB,CAAC;AAAA;AAAA;AAAA;AAAA;AAnBf;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|