@tamagui/core 1.0.0-alpha.37 → 1.0.0-alpha.38
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/constants/constants.js +32 -0
- package/dist/constants/constants.js.map +7 -0
- package/dist/{esm/constants → constants}/platform.js +2 -3
- package/dist/constants/platform.js.map +7 -0
- package/dist/constants/rnw.js +10 -0
- package/dist/constants/rnw.js.map +7 -0
- package/dist/constants/styleConstants.js +59 -0
- package/dist/constants/styleConstants.js.map +7 -0
- package/dist/createComponent.js +395 -0
- package/dist/createComponent.js.map +7 -0
- package/dist/{esm/createShorthands.js → createShorthands.js} +0 -0
- package/dist/createShorthands.js.map +7 -0
- package/dist/createTamagui.js +107 -0
- package/dist/createTamagui.js.map +7 -0
- package/dist/{esm/createTokens.js → createTokens.js} +0 -4
- package/dist/createTokens.js.map +7 -0
- package/dist/{esm/createVariable.js → createVariable.js} +2 -6
- package/dist/createVariable.js.map +7 -0
- package/dist/helpers/addStylesUsingClassname.js +28 -0
- package/dist/helpers/addStylesUsingClassname.js.map +7 -0
- package/dist/{esm/helpers → helpers}/createMediaStyle.js +0 -0
- package/dist/{esm/helpers → helpers}/createMediaStyle.js.map +1 -1
- package/dist/{esm/helpers → helpers}/createTamaguiProvider.js +20 -2
- package/dist/helpers/createTamaguiProvider.js.map +7 -0
- package/dist/helpers/extendStaticConfig.js +158 -0
- package/dist/helpers/extendStaticConfig.js.map +7 -0
- package/dist/helpers/fixNativeShadow.js +38 -0
- package/dist/helpers/fixNativeShadow.js.map +7 -0
- package/dist/{esm/helpers → helpers}/getSplitStyles.js +40 -43
- package/dist/helpers/getSplitStyles.js.map +7 -0
- package/dist/{esm/helpers → helpers}/insertStyleRule.js +0 -7
- package/dist/helpers/insertStyleRule.js.map +7 -0
- package/dist/{esm/helpers → helpers}/matchMedia.js +0 -3
- package/dist/helpers/matchMedia.js.map +7 -0
- package/dist/{esm/helpers → helpers}/matchMedia.native.js +0 -1
- package/dist/{esm/helpers → helpers}/matchMedia.native.js.map +3 -3
- package/dist/helpers/setIfChanged.js +17 -0
- package/dist/helpers/setIfChanged.js.map +7 -0
- package/dist/{esm/helpers → helpers}/themeable.js +1 -1
- package/dist/{esm/helpers → helpers}/themeable.js.map +3 -3
- package/dist/{esm/hooks → hooks}/useConstant.js +0 -0
- package/dist/{esm/hooks → hooks}/useConstant.js.map +1 -1
- package/dist/{esm/hooks → hooks}/useFeatures.js +51 -39
- 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/{esm/hooks → hooks}/useMedia.js +18 -20
- package/dist/hooks/useMedia.js.map +7 -0
- package/dist/{esm/hooks → hooks}/usePressable.js +1 -2
- package/dist/{esm/hooks → hooks}/usePressable.js.map +2 -2
- package/dist/{esm/hooks → hooks}/useTheme.js +25 -28
- package/dist/hooks/useTheme.js.map +7 -0
- package/dist/index.cjs +1837 -0
- package/dist/index.cjs.map +7 -0
- package/dist/{esm/index.js → index.js} +4 -6
- package/dist/index.js.map +7 -0
- package/dist/{esm/static → static}/postProcessStyles.js +3 -3
- package/dist/static/postProcessStyles.js.map +7 -0
- package/dist/{esm/static.js → static.js} +1 -6
- package/dist/static.js.map +7 -0
- package/dist/styled.js +28 -0
- package/dist/styled.js.map +7 -0
- package/dist/testtypes.js +1 -0
- package/dist/{esm/types.js.map → testtypes.js.map} +0 -0
- package/dist/{esm/types.js → types.js} +0 -0
- package/dist/types.js.map +7 -0
- package/dist/{esm/views → views}/Animated.js +0 -0
- package/dist/{esm/views → views}/Animated.js.map +3 -3
- package/dist/{esm/views → views}/Stack.js +1 -1
- package/dist/views/Stack.js.map +7 -0
- package/dist/views/Text.js +36 -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/{esm/views → views}/Theme.js +23 -29
- package/dist/views/Theme.js.map +7 -0
- package/dist/{esm/views → views}/ThemeContext.js +0 -0
- package/dist/{esm/views → views}/ThemeContext.js.map +1 -1
- package/dist/{esm/views → views}/ThemeInverse.js +1 -0
- package/dist/{esm/views → views}/ThemeInverse.js.map +3 -3
- package/dist/{esm/views → views}/ThemeManagerContext.js +6 -13
- package/dist/views/ThemeManagerContext.js.map +7 -0
- package/dist/{esm/views → views}/ThemeProvider.js +10 -10
- package/dist/views/ThemeProvider.js.map +7 -0
- package/package.json +6 -9
- package/dist/cjs/constants/constants.js +0 -50
- package/dist/cjs/constants/constants.js.map +0 -7
- package/dist/cjs/constants/platform.js +0 -43
- package/dist/cjs/constants/platform.js.map +0 -7
- package/dist/cjs/constants/pseudos.js +0 -25
- package/dist/cjs/constants/pseudos.js.map +0 -7
- package/dist/cjs/constants/rnw.js +0 -28
- package/dist/cjs/constants/rnw.js.map +0 -7
- package/dist/cjs/createComponent.js +0 -529
- package/dist/cjs/createComponent.js.map +0 -7
- package/dist/cjs/createFont.js +0 -50
- package/dist/cjs/createFont.js.map +0 -7
- package/dist/cjs/createShorthands.js +0 -16
- package/dist/cjs/createShorthands.js.map +0 -7
- package/dist/cjs/createTamagui.js +0 -223
- package/dist/cjs/createTamagui.js.map +0 -7
- package/dist/cjs/createTheme.js +0 -13
- package/dist/cjs/createTheme.js.map +0 -7
- package/dist/cjs/createTokens.js +0 -55
- package/dist/cjs/createTokens.js.map +0 -7
- package/dist/cjs/createVariable.js +0 -47
- package/dist/cjs/createVariable.js.map +0 -7
- package/dist/cjs/helpers/addStylesUsingClassname.js +0 -79
- package/dist/cjs/helpers/addStylesUsingClassname.js.map +0 -7
- package/dist/cjs/helpers/createMediaStyle.js +0 -56
- package/dist/cjs/helpers/createMediaStyle.js.map +0 -7
- package/dist/cjs/helpers/createPropMapper.js +0 -197
- package/dist/cjs/helpers/createPropMapper.js.map +0 -7
- package/dist/cjs/helpers/createTamaguiProvider.js +0 -74
- package/dist/cjs/helpers/createTamaguiProvider.js.map +0 -7
- package/dist/cjs/helpers/extendStaticConfig.js +0 -82
- package/dist/cjs/helpers/extendStaticConfig.js.map +0 -7
- package/dist/cjs/helpers/fixNativeShadow.js +0 -14
- package/dist/cjs/helpers/fixNativeShadow.js.map +0 -7
- package/dist/cjs/helpers/fixNativeShadow.native.js +0 -40
- package/dist/cjs/helpers/fixNativeShadow.native.js.map +0 -7
- package/dist/cjs/helpers/getSplitStyles.js +0 -180
- package/dist/cjs/helpers/getSplitStyles.js.map +0 -7
- package/dist/cjs/helpers/getStylesAtomic.js +0 -117
- package/dist/cjs/helpers/getStylesAtomic.js.map +0 -7
- package/dist/cjs/helpers/getStylesAtomic.native.js +0 -16
- package/dist/cjs/helpers/getStylesAtomic.native.js.map +0 -7
- package/dist/cjs/helpers/insertStyleRule.js +0 -46
- package/dist/cjs/helpers/insertStyleRule.js.map +0 -7
- package/dist/cjs/helpers/isObj.js +0 -13
- package/dist/cjs/helpers/isObj.js.map +0 -7
- package/dist/cjs/helpers/isTamaguiElement.js +0 -33
- package/dist/cjs/helpers/isTamaguiElement.js.map +0 -7
- package/dist/cjs/helpers/matchMedia.js +0 -24
- package/dist/cjs/helpers/matchMedia.js.map +0 -7
- package/dist/cjs/helpers/matchMedia.native.js +0 -31
- package/dist/cjs/helpers/matchMedia.native.js.map +0 -7
- package/dist/cjs/helpers/themeable.js +0 -78
- package/dist/cjs/helpers/themeable.js.map +0 -7
- package/dist/cjs/helpers/validate.js +0 -82
- package/dist/cjs/helpers/validate.js.map +0 -7
- package/dist/cjs/hooks/useConstant.js +0 -37
- package/dist/cjs/hooks/useConstant.js.map +0 -7
- package/dist/cjs/hooks/useFeatures.js +0 -100
- package/dist/cjs/hooks/useFeatures.js.map +0 -7
- package/dist/cjs/hooks/useMedia.js +0 -207
- package/dist/cjs/hooks/useMedia.js.map +0 -7
- package/dist/cjs/hooks/usePressable.js +0 -50
- package/dist/cjs/hooks/usePressable.js.map +0 -7
- package/dist/cjs/hooks/useTheme.js +0 -118
- package/dist/cjs/hooks/useTheme.js.map +0 -7
- package/dist/cjs/index.js +0 -55
- package/dist/cjs/index.js.map +0 -7
- package/dist/cjs/static/postProcessStyles.js +0 -40
- package/dist/cjs/static/postProcessStyles.js.map +0 -7
- package/dist/cjs/static.js +0 -34
- package/dist/cjs/static.js.map +0 -7
- package/dist/cjs/styled.js +0 -72
- package/dist/cjs/styled.js.map +0 -7
- package/dist/cjs/types.js +0 -4
- package/dist/cjs/types.js.map +0 -7
- package/dist/cjs/views/Animated.js +0 -129
- package/dist/cjs/views/Animated.js.map +0 -7
- package/dist/cjs/views/Stack.js +0 -51
- package/dist/cjs/views/Stack.js.map +0 -7
- package/dist/cjs/views/Text.js +0 -93
- package/dist/cjs/views/Text.js.map +0 -7
- package/dist/cjs/views/TextAncestorContext.js +0 -40
- package/dist/cjs/views/TextAncestorContext.js.map +0 -7
- package/dist/cjs/views/Theme.js +0 -91
- package/dist/cjs/views/Theme.js.map +0 -7
- package/dist/cjs/views/ThemeContext.js +0 -29
- package/dist/cjs/views/ThemeContext.js.map +0 -7
- package/dist/cjs/views/ThemeInverse.js +0 -48
- package/dist/cjs/views/ThemeInverse.js.map +0 -7
- package/dist/cjs/views/ThemeManagerContext.js +0 -84
- package/dist/cjs/views/ThemeManagerContext.js.map +0 -7
- package/dist/cjs/views/ThemeProvider.js +0 -67
- package/dist/cjs/views/ThemeProvider.js.map +0 -7
- package/dist/esm/constants/constants.js +0 -14
- package/dist/esm/constants/constants.js.map +0 -7
- package/dist/esm/constants/platform.js.map +0 -7
- package/dist/esm/constants/pseudos.js +0 -18
- package/dist/esm/constants/pseudos.js.map +0 -7
- package/dist/esm/constants/rnw.js +0 -22
- package/dist/esm/constants/rnw.js.map +0 -7
- package/dist/esm/createComponent.js +0 -465
- package/dist/esm/createComponent.js.map +0 -7
- package/dist/esm/createFont.js +0 -28
- package/dist/esm/createFont.js.map +0 -7
- package/dist/esm/createShorthands.js.map +0 -7
- package/dist/esm/createTamagui.js +0 -185
- package/dist/esm/createTamagui.js.map +0 -7
- package/dist/esm/createTheme.js +0 -7
- package/dist/esm/createTheme.js.map +0 -7
- package/dist/esm/createTokens.js.map +0 -7
- package/dist/esm/createVariable.js.map +0 -7
- package/dist/esm/helpers/addStylesUsingClassname.js +0 -57
- package/dist/esm/helpers/addStylesUsingClassname.js.map +0 -7
- package/dist/esm/helpers/createPropMapper.js +0 -162
- package/dist/esm/helpers/createPropMapper.js.map +0 -7
- package/dist/esm/helpers/createTamaguiProvider.js.map +0 -7
- package/dist/esm/helpers/extendStaticConfig.js +0 -60
- package/dist/esm/helpers/extendStaticConfig.js.map +0 -7
- package/dist/esm/helpers/fixNativeShadow.js +0 -8
- package/dist/esm/helpers/fixNativeShadow.js.map +0 -7
- package/dist/esm/helpers/fixNativeShadow.native.js +0 -34
- package/dist/esm/helpers/fixNativeShadow.native.js.map +0 -7
- package/dist/esm/helpers/getSplitStyles.js.map +0 -7
- package/dist/esm/helpers/getStylesAtomic.js +0 -84
- package/dist/esm/helpers/getStylesAtomic.js.map +0 -7
- package/dist/esm/helpers/getStylesAtomic.native.js +0 -10
- package/dist/esm/helpers/getStylesAtomic.native.js.map +0 -7
- package/dist/esm/helpers/insertStyleRule.js.map +0 -7
- package/dist/esm/helpers/isObj.js +0 -7
- package/dist/esm/helpers/isObj.js.map +0 -7
- package/dist/esm/helpers/isTamaguiElement.js +0 -11
- package/dist/esm/helpers/isTamaguiElement.js.map +0 -7
- package/dist/esm/helpers/matchMedia.js.map +0 -7
- package/dist/esm/helpers/validate.js +0 -60
- package/dist/esm/helpers/validate.js.map +0 -7
- package/dist/esm/hooks/useFeatures.js.map +0 -7
- package/dist/esm/hooks/useMedia.js.map +0 -7
- package/dist/esm/hooks/useTheme.js.map +0 -7
- package/dist/esm/index.js.map +0 -7
- package/dist/esm/static/postProcessStyles.js.map +0 -7
- package/dist/esm/static.js.map +0 -7
- package/dist/esm/styled.js +0 -21
- package/dist/esm/styled.js.map +0 -7
- package/dist/esm/views/Stack.js.map +0 -7
- package/dist/esm/views/Text.js +0 -60
- package/dist/esm/views/Text.js.map +0 -7
- package/dist/esm/views/TextAncestorContext.js +0 -18
- package/dist/esm/views/TextAncestorContext.js.map +0 -7
- package/dist/esm/views/Theme.js.map +0 -7
- package/dist/esm/views/ThemeManagerContext.js.map +0 -7
- package/dist/esm/views/ThemeProvider.js.map +0 -7
- package/dist/jsx/constants/constants.js +0 -13
- package/dist/jsx/constants/platform.js +0 -19
- package/dist/jsx/constants/pseudos.js +0 -17
- package/dist/jsx/constants/rnw.js +0 -21
- package/dist/jsx/createComponent.js +0 -459
- package/dist/jsx/createFont.js +0 -27
- package/dist/jsx/createShorthands.js +0 -9
- package/dist/jsx/createTamagui.js +0 -184
- package/dist/jsx/createTheme.js +0 -6
- package/dist/jsx/createTokens.js +0 -32
- package/dist/jsx/createVariable.js +0 -24
- package/dist/jsx/helpers/addStylesUsingClassname.js +0 -56
- package/dist/jsx/helpers/createMediaStyle.js +0 -33
- package/dist/jsx/helpers/createPropMapper.js +0 -161
- package/dist/jsx/helpers/createTamaguiProvider.js +0 -19
- package/dist/jsx/helpers/extendStaticConfig.js +0 -59
- package/dist/jsx/helpers/fixNativeShadow.js +0 -7
- package/dist/jsx/helpers/fixNativeShadow.native.js +0 -33
- package/dist/jsx/helpers/getSplitStyles.js +0 -149
- package/dist/jsx/helpers/getStylesAtomic.js +0 -83
- package/dist/jsx/helpers/getStylesAtomic.native.js +0 -9
- package/dist/jsx/helpers/insertStyleRule.js +0 -23
- package/dist/jsx/helpers/isObj.js +0 -6
- package/dist/jsx/helpers/isTamaguiElement.js +0 -10
- package/dist/jsx/helpers/matchMedia.js +0 -17
- package/dist/jsx/helpers/matchMedia.native.js +0 -8
- package/dist/jsx/helpers/themeable.js +0 -23
- package/dist/jsx/helpers/validate.js +0 -59
- package/dist/jsx/hooks/useConstant.js +0 -14
- package/dist/jsx/hooks/useFeatures.js +0 -57
- package/dist/jsx/hooks/useMedia.js +0 -174
- package/dist/jsx/hooks/usePressable.js +0 -13
- package/dist/jsx/hooks/useTheme.js +0 -96
- package/dist/jsx/index.js +0 -31
- package/dist/jsx/static/postProcessStyles.js +0 -17
- package/dist/jsx/static.js +0 -14
- package/dist/jsx/styled.js +0 -20
- package/dist/jsx/types.js +0 -0
- package/dist/jsx/views/Animated.js +0 -74
- package/dist/jsx/views/Stack.js +0 -11
- package/dist/jsx/views/Text.js +0 -59
- package/dist/jsx/views/TextAncestorContext.js +0 -15
- package/dist/jsx/views/Theme.js +0 -63
- package/dist/jsx/views/ThemeContext.js +0 -5
- package/dist/jsx/views/ThemeInverse.js +0 -22
- package/dist/jsx/views/ThemeManagerContext.js +0 -61
- package/dist/jsx/views/ThemeProvider.js +0 -39
- package/types/constants/constants.d.ts.map +0 -1
- package/types/constants/platform.d.ts.map +0 -1
- package/types/constants/pseudos.d.ts.map +0 -1
- package/types/constants/rnw.d.ts.map +0 -1
- package/types/createComponent.d.ts.map +0 -1
- package/types/createFont.d.ts.map +0 -1
- package/types/createShorthands.d.ts.map +0 -1
- package/types/createTamagui.d.ts.map +0 -1
- package/types/createTheme.d.ts.map +0 -1
- package/types/createTokens.d.ts.map +0 -1
- package/types/createVariable.d.ts.map +0 -1
- package/types/helpers/addStylesUsingClassname.d.ts.map +0 -1
- package/types/helpers/createMediaStyle.d.ts.map +0 -1
- package/types/helpers/createPropMapper.d.ts.map +0 -1
- package/types/helpers/createTamaguiProvider.d.ts.map +0 -1
- package/types/helpers/extendStaticConfig.d.ts.map +0 -1
- package/types/helpers/fixNativeShadow.d.ts.map +0 -1
- package/types/helpers/fixNativeShadow.native.d.ts.map +0 -1
- package/types/helpers/getSplitStyles.d.ts.map +0 -1
- package/types/helpers/getStylesAtomic.d.ts.map +0 -1
- package/types/helpers/getStylesAtomic.native.d.ts.map +0 -1
- package/types/helpers/insertStyleRule.d.ts.map +0 -1
- package/types/helpers/isObj.d.ts.map +0 -1
- package/types/helpers/isTamaguiElement.d.ts.map +0 -1
- package/types/helpers/matchMedia.d.ts.map +0 -1
- package/types/helpers/matchMedia.native.d.ts.map +0 -1
- package/types/helpers/themeable.d.ts.map +0 -1
- package/types/helpers/validate.d.ts.map +0 -1
- package/types/hooks/useConstant.d.ts.map +0 -1
- package/types/hooks/useFeatures.d.ts.map +0 -1
- package/types/hooks/useMedia.d.ts.map +0 -1
- package/types/hooks/usePressable.d.ts.map +0 -1
- package/types/hooks/useTheme.d.ts.map +0 -1
- package/types/index.d.ts.map +0 -1
- package/types/static/postProcessStyles.d.ts.map +0 -1
- package/types/static.d.ts.map +0 -1
- package/types/styled.d.ts.map +0 -1
- package/types/types.d.ts.map +0 -1
- package/types/views/Animated.d.ts.map +0 -1
- package/types/views/Stack.d.ts.map +0 -1
- package/types/views/Text.d.ts.map +0 -1
- package/types/views/TextAncestorContext.d.ts.map +0 -1
- package/types/views/Theme.d.ts.map +0 -1
- package/types/views/ThemeContext.d.ts.map +0 -1
- package/types/views/ThemeInverse.d.ts.map +0 -1
- package/types/views/ThemeManagerContext.d.ts.map +0 -1
- package/types/views/ThemeProvider.d.ts.map +0 -1
|
@@ -1,23 +1,16 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
2
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
-
import {
|
|
4
|
-
AllRules,
|
|
5
|
-
stylePropsText,
|
|
6
|
-
stylePropsTransform,
|
|
7
|
-
validStyles,
|
|
8
|
-
validStylesPseudo
|
|
9
|
-
} from "@tamagui/helpers";
|
|
3
|
+
import { getStylesAtomic, stylePropsText, stylePropsTransform, validStyles } from "@tamagui/helpers";
|
|
10
4
|
import { isWeb } from "../constants/platform";
|
|
11
|
-
import {
|
|
5
|
+
import { getMedia, mediaQueryConfig } from "../hooks/useMedia";
|
|
12
6
|
import { createMediaStyle } from "./createMediaStyle";
|
|
13
7
|
import { fixNativeShadow } from "./fixNativeShadow";
|
|
14
|
-
import { getStylesAtomic } from "./getStylesAtomic";
|
|
15
8
|
import { insertStyleRule } from "./insertStyleRule";
|
|
16
|
-
const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig,
|
|
9
|
+
const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, internalConfig) => {
|
|
17
10
|
const validStyleProps = staticConfig.isText ? stylePropsText : validStyles;
|
|
18
11
|
const viewProps = {};
|
|
19
12
|
const style = [];
|
|
20
|
-
let
|
|
13
|
+
let psuedos = null;
|
|
21
14
|
let cur = null;
|
|
22
15
|
let classNames = null;
|
|
23
16
|
for (const keyInit in props) {
|
|
@@ -29,49 +22,39 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, isSpl
|
|
|
29
22
|
continue;
|
|
30
23
|
}
|
|
31
24
|
const mediaProps = { ...props, ...valInit };
|
|
32
|
-
const mediaStyle = getSubStyle(valInit,
|
|
33
|
-
|
|
34
|
-
|
|
25
|
+
const mediaStyle = getSubStyle(valInit, mediaProps, staticConfig, internalConfig);
|
|
26
|
+
const mediaStyles = getStylesAtomic(mediaStyle);
|
|
27
|
+
for (const style2 of mediaStyles) {
|
|
28
|
+
const out2 = createMediaStyle(style2, mediaKey, mediaQueryConfig);
|
|
29
|
+
classNames = classNames || [];
|
|
30
|
+
classNames.push(out2.identifier);
|
|
31
|
+
insertStyleRule(out2.styleRule);
|
|
35
32
|
if (process.env.NODE_ENV === "development") {
|
|
36
|
-
if (props["debug"])
|
|
37
|
-
console.log("mediaStyles", keyInit, { mediaProps, mediaStyle, mediaStyles });
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
for (const style2 of mediaStyles) {
|
|
41
|
-
const out2 = createMediaStyle(style2, mediaKey, mediaQueryConfig);
|
|
42
|
-
classNames = classNames || [];
|
|
43
|
-
classNames.push(out2.identifier);
|
|
44
|
-
AllRules.add(out2.styleRule);
|
|
45
|
-
insertStyleRule(out2.styleRule);
|
|
46
|
-
if (process.env.NODE_ENV === "development" && props["debug"]) {
|
|
33
|
+
if (props["debug"])
|
|
47
34
|
console.log("mediaProp", style2.identifier, out2, mediaProps, mediaStyle, mediaStyles);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
} else {
|
|
51
|
-
if (mediaState[mediaKey]) {
|
|
52
|
-
style.push(mediaStyle);
|
|
53
35
|
}
|
|
54
36
|
}
|
|
55
37
|
continue;
|
|
56
38
|
}
|
|
57
|
-
|
|
39
|
+
const isPseudo = keyInit === "hoverStyle" || keyInit === "pressStyle" || keyInit === "focusStyle";
|
|
40
|
+
if (isPseudo) {
|
|
58
41
|
if (!valInit)
|
|
59
42
|
continue;
|
|
60
|
-
|
|
61
|
-
|
|
43
|
+
psuedos = psuedos || {};
|
|
44
|
+
psuedos[keyInit] = getSubStyle(valInit, props, staticConfig, internalConfig);
|
|
62
45
|
continue;
|
|
63
46
|
}
|
|
64
|
-
const out = staticConfig.propMapper(keyInit, valInit,
|
|
47
|
+
const out = staticConfig.propMapper(keyInit, valInit, props);
|
|
65
48
|
const expanded = out === true || !out ? [[keyInit, valInit]] : Object.entries(out);
|
|
66
49
|
for (const [key, val] of expanded) {
|
|
67
50
|
const keyFirstChar = key[0];
|
|
68
51
|
if (key === "style" || keyFirstChar === "_" && key.startsWith("_style")) {
|
|
69
52
|
if (cur) {
|
|
70
|
-
fixNativeShadow(cur);
|
|
53
|
+
fixNativeShadow(cur, true);
|
|
71
54
|
style.push(cur);
|
|
72
55
|
cur = null;
|
|
73
56
|
}
|
|
74
|
-
fixNativeShadow(val);
|
|
57
|
+
fixNativeShadow(val, true);
|
|
75
58
|
style.push(val);
|
|
76
59
|
continue;
|
|
77
60
|
}
|
|
@@ -97,32 +80,32 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, isSpl
|
|
|
97
80
|
cur[key] = val;
|
|
98
81
|
continue;
|
|
99
82
|
}
|
|
100
|
-
if (!
|
|
83
|
+
if (!blacklistProps[key]) {
|
|
101
84
|
viewProps[key] = val;
|
|
102
85
|
}
|
|
103
86
|
}
|
|
104
87
|
}
|
|
105
88
|
if (cur) {
|
|
106
|
-
fixNativeShadow(cur);
|
|
89
|
+
fixNativeShadow(cur, true);
|
|
107
90
|
style.push(cur);
|
|
108
91
|
}
|
|
109
92
|
if (process.env.NODE_ENV === "development") {
|
|
110
93
|
if (props["debug"]) {
|
|
111
|
-
console.log("
|
|
94
|
+
console.log(" style debug:", { props, viewProps, style }, getMedia());
|
|
112
95
|
}
|
|
113
96
|
}
|
|
114
97
|
return {
|
|
115
98
|
viewProps,
|
|
116
99
|
style,
|
|
117
|
-
|
|
100
|
+
psuedos,
|
|
118
101
|
classNames
|
|
119
102
|
};
|
|
120
103
|
}, "getSplitStyles");
|
|
121
|
-
const getSubStyle = /* @__PURE__ */ __name((styleIn,
|
|
104
|
+
const getSubStyle = /* @__PURE__ */ __name((styleIn, props, staticConfig, internalConfig) => {
|
|
122
105
|
const styleOut = {};
|
|
123
106
|
for (const key in styleIn) {
|
|
124
107
|
const val = styleIn[key];
|
|
125
|
-
const out = staticConfig.propMapper(key, val,
|
|
108
|
+
const out = staticConfig.propMapper(key, val, props);
|
|
126
109
|
const expanded = out === true || !out ? [[key, val]] : Object.entries(out);
|
|
127
110
|
for (const [skey, sval] of expanded) {
|
|
128
111
|
if (skey in stylePropsTransform) {
|
|
@@ -132,9 +115,17 @@ const getSubStyle = /* @__PURE__ */ __name((styleIn, staticConfig, theme, props)
|
|
|
132
115
|
}
|
|
133
116
|
}
|
|
134
117
|
}
|
|
135
|
-
fixNativeShadow(styleOut);
|
|
118
|
+
fixNativeShadow(styleOut, true);
|
|
136
119
|
return styleOut;
|
|
137
120
|
}, "getSubStyle");
|
|
121
|
+
const blacklistProps = {
|
|
122
|
+
debug: true,
|
|
123
|
+
onPress: true,
|
|
124
|
+
spacing: true,
|
|
125
|
+
hitSlop: true,
|
|
126
|
+
...validStyles,
|
|
127
|
+
...stylePropsText
|
|
128
|
+
};
|
|
138
129
|
const mapTransformKeys = {
|
|
139
130
|
x: "translateX",
|
|
140
131
|
y: "translateY"
|
|
@@ -144,6 +135,12 @@ const mergeTransform = /* @__PURE__ */ __name((obj, key, val) => {
|
|
|
144
135
|
transform.push({ [mapTransformKeys[key] || key]: val });
|
|
145
136
|
obj.transform = transform;
|
|
146
137
|
}, "mergeTransform");
|
|
138
|
+
const fullscreenStyle = {
|
|
139
|
+
top: 0,
|
|
140
|
+
left: 0,
|
|
141
|
+
right: 0,
|
|
142
|
+
bottom: 0
|
|
143
|
+
};
|
|
147
144
|
export {
|
|
148
145
|
getSplitStyles
|
|
149
146
|
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/helpers/getSplitStyles.tsx"],
|
|
4
|
+
"sourcesContent": ["import { getStylesAtomic, stylePropsText, stylePropsTransform, validStyles } from '@tamagui/helpers'\nimport { ViewProps, ViewStyle } from 'react-native'\n\nimport { isWeb } from '../constants/platform'\nimport { getMedia, mediaQueryConfig } from '../hooks/useMedia'\nimport { StaticConfigParsed, TamaguiInternalConfig } from '../types'\nimport { createMediaStyle } from './createMediaStyle'\nimport { fixNativeShadow } from './fixNativeShadow'\nimport { insertStyleRule } from './insertStyleRule'\n\nexport type SplitStyles = ReturnType<typeof getSplitStyles>\n\nexport const getSplitStyles = (\n props: { [key: string]: any },\n staticConfig: StaticConfigParsed,\n internalConfig: TamaguiInternalConfig\n) => {\n const validStyleProps = staticConfig.isText ? stylePropsText : validStyles\n const viewProps: ViewProps = {}\n const style: any[] = []\n let psuedos: { hoverStyle?: ViewStyle; pressStyle?: ViewStyle } | null = null\n let cur: ViewStyle | null = null\n let classNames: string[] | null = null\n for (const keyInit in props) {\n // be sure to sync next few lines below to getSubStyle (*1)\n const valInit = props[keyInit]\n\n // media\n if (keyInit[0] === '$') {\n const mediaKey = keyInit.slice(1)\n\n if (!mediaQueryConfig[mediaKey]) {\n // this isn't a media key, pass through\n viewProps[keyInit] = valInit\n continue\n }\n\n // dont check if media is active, we just apply *all* media styles\n // we combine the media props on top regular props, could proxy this\n // TODO test proxy here instead of merge\n const mediaProps = { ...props, ...valInit }\n // TODO media + hover\n const mediaStyle = getSubStyle(valInit, mediaProps, staticConfig, internalConfig)\n const mediaStyles = getStylesAtomic(mediaStyle)\n for (const style of mediaStyles) {\n const out = createMediaStyle(style, mediaKey, mediaQueryConfig)\n classNames = classNames || []\n classNames.push(out.identifier)\n insertStyleRule(out.styleRule)\n if (process.env.NODE_ENV === 'development') {\n if (props['debug'])\n console.log('mediaProp', style.identifier, out, mediaProps, mediaStyle, mediaStyles)\n }\n }\n continue\n }\n\n // pseudo\n const isPseudo =\n keyInit === 'hoverStyle' || keyInit === 'pressStyle' || keyInit === 'focusStyle'\n if (isPseudo) {\n if (!valInit) continue\n psuedos = psuedos || {}\n psuedos[keyInit] = getSubStyle(valInit, props, staticConfig, internalConfig)\n continue\n }\n\n const out = staticConfig.propMapper(keyInit, valInit, props)\n const expanded = out === true || !out ? [[keyInit, valInit]] : Object.entries(out)\n for (const [key, val] of expanded) {\n // const val = valueMap(valInit) ?? valInit\n const keyFirstChar = key[0]\n if (key === 'style' || (keyFirstChar === '_' && key.startsWith('_style'))) {\n if (cur) {\n // process last\n fixNativeShadow(cur, true)\n style.push(cur)\n cur = null\n }\n fixNativeShadow(val, true)\n style.push(val)\n continue\n }\n // expand flex so it merged with flexShrink etc properly\n if (key === 'flex') {\n cur = cur || {}\n // see spec for flex shorthand https://developer.mozilla.org/en-US/docs/Web/CSS/flex\n Object.assign(cur, {\n flexGrow: val,\n flexShrink: 1,\n })\n continue\n }\n if (!isWeb && key === 'pointerEvents') {\n viewProps[key] = val\n continue\n }\n if (validStyleProps[key]) {\n // transforms\n if (key in stylePropsTransform) {\n cur = cur || {}\n mergeTransform(cur, key, val)\n continue\n }\n cur = cur || {}\n cur[key] = val\n continue\n }\n // TODO this blacklist should be configurable + better set up\n if (!blacklistProps[key]) {\n viewProps[key] = val\n }\n }\n }\n // push last style\n if (cur) {\n fixNativeShadow(cur, true)\n style.push(cur)\n }\n\n if (process.env.NODE_ENV === 'development') {\n if (props['debug']) {\n console.log(' style debug:', { props, viewProps, style }, getMedia())\n }\n }\n\n return {\n viewProps,\n style,\n psuedos,\n classNames,\n }\n}\n\nconst getSubStyle = (\n styleIn: Object,\n props: any,\n staticConfig: StaticConfigParsed,\n internalConfig: TamaguiInternalConfig\n): ViewStyle => {\n const styleOut: ViewStyle = {}\n for (const key in styleIn) {\n // be sure to sync next few lines below to loop above (*1)\n const val = styleIn[key]\n const out = staticConfig.propMapper(key, val, props)\n const expanded = out === true || !out ? [[key, val]] : Object.entries(out)\n for (const [skey, sval] of expanded) {\n // const sval = valueMap(valInit)\n if (skey in stylePropsTransform) {\n mergeTransform(styleOut, skey, sval)\n } else {\n styleOut[skey] = sval\n }\n }\n }\n fixNativeShadow(styleOut, true)\n return styleOut\n}\n\n// temp\nconst blacklistProps = {\n debug: true,\n onPress: true,\n spacing: true,\n hitSlop: true,\n ...validStyles,\n ...stylePropsText,\n}\n\nconst mapTransformKeys = {\n x: 'translateX',\n y: 'translateY',\n}\n\nconst mergeTransform = (obj: ViewStyle, key: string, val: any) => {\n const transform = obj.transform\n ? Array.isArray(obj.transform)\n ? obj.transform\n : [obj.transform]\n : []\n // @ts-expect-error\n transform.push({ [mapTransformKeys[key] || key]: val })\n obj.transform = transform\n}\n\n// TODO move otu\nconst fullscreenStyle = {\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n} as const\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,16 +1,9 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
2
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
-
import { isWeb } from "../constants/platform";
|
|
4
3
|
function insertStyleRule(rule) {
|
|
5
4
|
if (typeof window === "undefined") {
|
|
6
5
|
return;
|
|
7
6
|
}
|
|
8
|
-
if (process.env.NODE_ENV === "development") {
|
|
9
|
-
if (!isWeb) {
|
|
10
|
-
console.warn("non web platform, dont use this");
|
|
11
|
-
return;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
7
|
const sheet = window.document.styleSheets[0];
|
|
15
8
|
if (!sheet) {
|
|
16
9
|
return;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/helpers/insertStyleRule.tsx"],
|
|
4
|
+
"sourcesContent": ["export function insertStyleRule(rule: string) {\n if (typeof window === 'undefined') {\n return\n }\n const sheet = window.document.styleSheets[0]\n if (!sheet) {\n return\n }\n sheet.insertRule(rule, sheet.cssRules.length)\n}\n"],
|
|
5
|
+
"mappings": ";;AAAO,yBAAyB,MAAc;AAC5C,MAAI,OAAO,WAAW,aAAa;AACjC;AAAA;AAEF,QAAM,QAAQ,OAAO,SAAS,YAAY;AAC1C,MAAI,CAAC,OAAO;AACV;AAAA;AAEF,QAAM,WAAW,MAAM,MAAM,SAAS;AAAA;AARxB;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -3,9 +3,6 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
3
3
|
const matchMedia = typeof window !== "undefined" && window.matchMedia || /* @__PURE__ */ __name(function matchMediaFallback(query) {
|
|
4
4
|
return {
|
|
5
5
|
addListener() {
|
|
6
|
-
if (process.env.NODE_ENV === "development" && !process.env.IS_STATIC && process.env.TAMAGUI_TARGET !== "web") {
|
|
7
|
-
console.log("warning: matchMedia not loading! Is native picking up .native.js files?");
|
|
8
|
-
}
|
|
9
6
|
},
|
|
10
7
|
removeListener() {
|
|
11
8
|
},
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/helpers/matchMedia.ts"],
|
|
4
|
+
"sourcesContent": ["export const matchMedia =\n (typeof window !== 'undefined' && window.matchMedia) ||\n (function matchMediaFallback(query: string) {\n return {\n addListener() {},\n removeListener() {},\n matches: false,\n }\n } as any)\n"],
|
|
5
|
+
"mappings": ";;AAAO,MAAM,aACV,OAAO,WAAW,eAAe,OAAO,cACxC,mDAA4B,OAAe;AAC1C,SAAO;AAAA,IACL,cAAc;AAAA;AAAA,IACd,iBAAiB;AAAA;AAAA,IACjB,SAAS;AAAA;AAAA,GAJZ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -2,7 +2,6 @@ var __defProp = Object.defineProperty;
|
|
|
2
2
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
3
|
import MediaQueryList from "@expo/match-media/build/MediaQueryList.js";
|
|
4
4
|
const matchMedia = /* @__PURE__ */ __name((media) => new MediaQueryList(media), "matchMedia");
|
|
5
|
-
globalThis["matchMedia"] = matchMedia;
|
|
6
5
|
export {
|
|
7
6
|
matchMedia
|
|
8
7
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
4
|
-
"sourcesContent": ["import MediaQueryList from '@expo/match-media/build/MediaQueryList.js'\n\nexport const matchMedia = (media: string) => new MediaQueryList(media)\n
|
|
5
|
-
"mappings": ";;AAAA;AAEO,MAAM,aAAa,wBAAC,UAAkB,IAAI,eAAe,QAAtC;
|
|
3
|
+
"sources": ["../../src/helpers/matchMedia.native.ts"],
|
|
4
|
+
"sourcesContent": ["import MediaQueryList from '@expo/match-media/build/MediaQueryList.js'\n\nexport const matchMedia = (media: string) => new MediaQueryList(media)\n"],
|
|
5
|
+
"mappings": ";;AAAA;AAEO,MAAM,aAAa,wBAAC,UAAkB,IAAI,eAAe,QAAtC;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
import { isEqual } from "@dish/fast-compare";
|
|
4
|
+
const setIfChanged = /* @__PURE__ */ __name((setter, next) => {
|
|
5
|
+
setter((prev) => {
|
|
6
|
+
console.log("should test if this is the right way to check, merge objects??");
|
|
7
|
+
const n = { ...prev, ...next };
|
|
8
|
+
if (isEqual(prev, n)) {
|
|
9
|
+
return prev;
|
|
10
|
+
}
|
|
11
|
+
return n;
|
|
12
|
+
});
|
|
13
|
+
}, "setIfChanged");
|
|
14
|
+
export {
|
|
15
|
+
setIfChanged
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=setIfChanged.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/helpers/setIfChanged.tsx"],
|
|
4
|
+
"sourcesContent": ["import { isEqual } from '@dish/fast-compare'\n\nexport const setIfChanged = (setter: any, next: Object) => {\n setter((prev) => {\n console.log('should test if this is the right way to check, merge objects??')\n const n = { ...prev, ...next }\n if (isEqual(prev, n)) {\n return prev\n }\n return n\n })\n}\n"],
|
|
5
|
+
"mappings": ";;AAAA;AAEO,MAAM,eAAe,wBAAC,QAAa,SAAiB;AACzD,SAAO,CAAC,SAAS;AACf,YAAQ,IAAI;AACZ,UAAM,IAAI,KAAK,SAAS;AACxB,QAAI,QAAQ,MAAM,IAAI;AACpB,aAAO;AAAA;AAET,WAAO;AAAA;AAAA,GAPiB;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -17,7 +17,7 @@ const themeable = /* @__PURE__ */ __name(function graphql(component) {
|
|
|
17
17
|
return el;
|
|
18
18
|
}, "WithTheme"));
|
|
19
19
|
const withTheme = withThemeComponent;
|
|
20
|
-
withTheme.displayName = `Themed(${
|
|
20
|
+
withTheme.displayName = `Themed(${component?.displayName || component?.name || "Anonymous"})`;
|
|
21
21
|
return withTheme;
|
|
22
22
|
}, "graphql");
|
|
23
23
|
export {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
4
|
-
"sourcesContent": ["import React, { ReactElement, forwardRef } from 'react'\n\nimport { Theme } from '../views/Theme'\nimport { ThemeInverse } from '../views/ThemeInverse'\n\nexport type ThemeableProps = {\n theme?: string | null\n themeInverse?: boolean\n}\n\nexport const themeable: ThemeableHOC = function graphql<\n R extends ReactElement<any, any> | null,\n P extends ThemeableProps = {}\n>(component: (props: P) => R) {\n const withThemeComponent = forwardRef(function WithTheme({ themeInverse, ...rest }: P, ref) {\n const el = React.createElement(component, { ...rest, ref } as any) as R\n if (themeInverse) {\n return (<ThemeInverse>{el}</ThemeInverse>) as R\n }\n if (rest.theme) {\n return (<Theme name={rest.theme || null}>{el}</Theme>) as R\n }\n return el\n })\n\n const withTheme: {\n (props: P): R\n displayName: string\n } = withThemeComponent as any\n\n withTheme.displayName = `Themed(${
|
|
5
|
-
"mappings": ";;AAAA;AAEA;AACA;AAOO,MAAM,YAA0B,wCAGrC,WAA4B;AAC5B,QAAM,qBAAqB,WAAW,0CAAmB,EAAE,iBAAiB,QAAW,KAAK;AAC1F,UAAM,KAAK,MAAM,cAAc,WAAW,KAAK,MAAM;AACrD,QAAI,cAAc;AAChB,aAAQ,oCAAC,cAAD,MAAe;AAAA;AAEzB,QAAI,KAAK,OAAO;
|
|
3
|
+
"sources": ["../../src/helpers/themeable.tsx"],
|
|
4
|
+
"sourcesContent": ["import React, { ReactElement, forwardRef } from 'react'\n\nimport { Theme } from '../views/Theme'\nimport { ThemeInverse } from '../views/ThemeInverse'\n\nexport type ThemeableProps = {\n theme?: string | null\n themeInverse?: boolean\n}\n\nexport const themeable: ThemeableHOC = function graphql<\n R extends ReactElement<any, any> | null,\n P extends ThemeableProps = {}\n>(component: (props: P) => R) {\n const withThemeComponent = forwardRef(function WithTheme({ themeInverse, ...rest }: P, ref) {\n const el = React.createElement(component, { ...rest, ref } as any) as R\n if (themeInverse) {\n return (<ThemeInverse>{el}</ThemeInverse>) as R\n }\n if (rest.theme) {\n // @ts-ignore\n return (<Theme name={rest.theme || null}>{el}</Theme>) as R\n }\n return el\n })\n\n const withTheme: {\n (props: P): R\n displayName: string\n } = withThemeComponent as any\n\n withTheme.displayName = `Themed(${(component as any)?.displayName || (component as any)?.name || 'Anonymous'})`\n\n return withTheme\n}\n\nexport interface ThemeableHOC {\n <R extends ReactElement<any, any> | null, P extends ThemeableProps = {}>(component: (props: P) => R): (\n props: P\n ) => R\n}\n"],
|
|
5
|
+
"mappings": ";;AAAA;AAEA;AACA;AAOO,MAAM,YAA0B,wCAGrC,WAA4B;AAC5B,QAAM,qBAAqB,WAAW,0CAAmB,EAAE,iBAAiB,QAAW,KAAK;AAC1F,UAAM,KAAK,MAAM,cAAc,WAAW,KAAK,MAAM;AACrD,QAAI,cAAc;AAChB,aAAQ,oCAAC,cAAD,MAAe;AAAA;AAEzB,QAAI,KAAK,OAAO;AAEd,aAAQ,oCAAC,OAAD;AAAA,QAAO,MAAM,KAAK,SAAS;AAAA,SAAO;AAAA;AAE5C,WAAO;AAAA,KAT6B;AAYtC,QAAM,YAGF;AAEJ,YAAU,cAAc,UAAW,WAAmB,eAAgB,WAAmB,QAAQ;AAEjG,SAAO;AAAA,GAvB8B;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
File without changes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../src/hooks/useConstant.tsx"],
|
|
4
4
|
"sourcesContent": ["import { useRef } from 'react'\n\ntype ResultBox<T> = { v: T }\nexport function useConstant<T>(fn: () => T): T {\n const ref = useRef<ResultBox<T>>()\n if (!ref.current) {\n ref.current = { v: fn() }\n }\n return ref.current.v\n}\n"],
|
|
5
5
|
"mappings": ";;AAAA;AAGO,qBAAwB,IAAgB;AAC7C,QAAM,MAAM;AACZ,MAAI,CAAC,IAAI,SAAS;AAChB,QAAI,UAAU,EAAE,GAAG;AAAA;AAErB,SAAO,IAAI,QAAQ;AAAA;AALL;",
|
|
6
6
|
"names": []
|
|
@@ -2,45 +2,41 @@ var __defProp = Object.defineProperty;
|
|
|
2
2
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
3
|
import React from "react";
|
|
4
4
|
import { isWeb, useIsomorphicLayoutEffect } from "../constants/platform";
|
|
5
|
-
import { addMediaQueryListener,
|
|
6
|
-
const createDefinition = /* @__PURE__ */ __name(({
|
|
7
|
-
Component,
|
|
8
|
-
propNames
|
|
9
|
-
}) => ({
|
|
5
|
+
import { addMediaQueryListener, removeMediaQueryListener } from "./useMedia";
|
|
6
|
+
const createDefinition = /* @__PURE__ */ __name(({ Component, propNames }) => ({
|
|
10
7
|
isEnabled: (props) => propNames.some((name) => !!props[name]),
|
|
11
8
|
Component
|
|
12
9
|
}), "createDefinition");
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
__name(loadFeatures, "loadFeatures");
|
|
39
|
-
function loadMediaQueryFeature() {
|
|
40
|
-
const mediaPropNames = Object.keys(mediaState);
|
|
41
|
-
return createDefinition({
|
|
10
|
+
const mediaQueryPropNames = [
|
|
11
|
+
"$xs",
|
|
12
|
+
"$sm",
|
|
13
|
+
"$md",
|
|
14
|
+
"$lg",
|
|
15
|
+
"$xl",
|
|
16
|
+
"$xxl",
|
|
17
|
+
"$pointerCoarse",
|
|
18
|
+
"$hoverNone",
|
|
19
|
+
"$tall",
|
|
20
|
+
"$short",
|
|
21
|
+
"$gtSm",
|
|
22
|
+
"$notXs",
|
|
23
|
+
"$gtMd",
|
|
24
|
+
"$gtLg"
|
|
25
|
+
];
|
|
26
|
+
const featureDefinitions = {
|
|
27
|
+
measureLayout: createDefinition({
|
|
28
|
+
Component: (props) => {
|
|
29
|
+
console.log("measure", props);
|
|
30
|
+
return null;
|
|
31
|
+
},
|
|
32
|
+
propNames: ["onLayout"]
|
|
33
|
+
}),
|
|
34
|
+
mediaQuery: createDefinition({
|
|
42
35
|
Component: (props) => {
|
|
43
|
-
|
|
36
|
+
if (isWeb) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const keys = mediaQueryPropNames.flatMap((x) => x in props ? x.slice(1) : []);
|
|
44
40
|
useIsomorphicLayoutEffect(() => {
|
|
45
41
|
for (const key of keys) {
|
|
46
42
|
addMediaQueryListener(key, props._utils.forceUpdate);
|
|
@@ -53,10 +49,26 @@ function loadMediaQueryFeature() {
|
|
|
53
49
|
}, [keys.join(",")]);
|
|
54
50
|
return null;
|
|
55
51
|
},
|
|
56
|
-
propNames:
|
|
57
|
-
})
|
|
58
|
-
}
|
|
59
|
-
|
|
52
|
+
propNames: mediaQueryPropNames
|
|
53
|
+
})
|
|
54
|
+
};
|
|
55
|
+
const featureNames = Object.keys(featureDefinitions);
|
|
56
|
+
const numFeatures = featureNames.length;
|
|
57
|
+
const useFeatures = /* @__PURE__ */ __name((props, utils) => {
|
|
58
|
+
const features = [];
|
|
59
|
+
for (let i = 0; i < numFeatures; i++) {
|
|
60
|
+
const name = featureNames[i];
|
|
61
|
+
const { isEnabled, Component } = featureDefinitions[name];
|
|
62
|
+
if (isEnabled(props) && Component) {
|
|
63
|
+
features.push(/* @__PURE__ */ React.createElement(Component, {
|
|
64
|
+
key: name,
|
|
65
|
+
...props,
|
|
66
|
+
_utils: utils
|
|
67
|
+
}));
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return features;
|
|
71
|
+
}, "useFeatures");
|
|
60
72
|
export {
|
|
61
73
|
useFeatures
|
|
62
74
|
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/hooks/useFeatures.tsx"],
|
|
4
|
+
"sourcesContent": ["import React from 'react'\n\nimport { isWeb, useIsomorphicLayoutEffect } from '../constants/platform'\nimport { addMediaQueryListener, removeMediaQueryListener } from './useMedia'\n\n// only needed on native\n// dynamic loading of features to avoid heavy views\n\nconst createDefinition = ({ Component, propNames }: { Component; propNames: string[] }) => ({\n isEnabled: (props: any) => propNames.some((name) => !!props[name]),\n Component,\n})\n\nconst mediaQueryPropNames = [\n '$xs',\n '$sm',\n '$md',\n '$lg',\n '$xl',\n '$xxl',\n '$pointerCoarse',\n '$hoverNone',\n '$tall',\n '$short',\n '$gtSm',\n '$notXs',\n '$gtMd',\n '$gtLg',\n]\n\nconst featureDefinitions = {\n measureLayout: createDefinition({\n Component: (props) => {\n console.log('measure', props)\n return null\n },\n propNames: ['onLayout'],\n }),\n\n // will update the parent whenever media query changes\n mediaQuery: createDefinition({\n Component: (props) => {\n if (isWeb) {\n // no need for media queries are inserted and run in css\n return\n }\n\n const keys = mediaQueryPropNames.flatMap((x) => (x in props ? x.slice(1) : []))\n useIsomorphicLayoutEffect(() => {\n for (const key of keys) {\n addMediaQueryListener(key, props._utils.forceUpdate)\n }\n return () => {\n for (const key of keys) {\n removeMediaQueryListener(key, props._utils.forceUpdate)\n }\n }\n }, [keys.join(',')])\n return null\n },\n propNames: mediaQueryPropNames,\n }),\n}\n\nconst featureNames = Object.keys(featureDefinitions)\nconst numFeatures = featureNames.length\n\nexport const useFeatures = (props: any, utils?: { forceUpdate?: Function }) => {\n const features: JSX.Element[] = []\n for (let i = 0; i < numFeatures; i++) {\n const name = featureNames[i]\n const { isEnabled, Component } = featureDefinitions[name] as any //FeatureDefinition\n if (isEnabled(props) && Component) {\n features.push(<Component key={name} {...props} _utils={utils} />)\n }\n }\n return features\n}\n"],
|
|
5
|
+
"mappings": ";;AAAA;AAEA;AACA;AAKA,MAAM,mBAAmB,wBAAC,EAAE,WAAW,gBAAqD;AAAA,EAC1F,WAAW,CAAC,UAAe,UAAU,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM;AAAA,EAC5D;AAAA,IAFuB;AAKzB,MAAM,sBAAsB;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAGF,MAAM,qBAAqB;AAAA,EACzB,eAAe,iBAAiB;AAAA,IAC9B,WAAW,CAAC,UAAU;AACpB,cAAQ,IAAI,WAAW;AACvB,aAAO;AAAA;AAAA,IAET,WAAW,CAAC;AAAA;AAAA,EAId,YAAY,iBAAiB;AAAA,IAC3B,WAAW,CAAC,UAAU;AACpB,UAAI,OAAO;AAET;AAAA;AAGF,YAAM,OAAO,oBAAoB,QAAQ,CAAC,MAAO,KAAK,QAAQ,EAAE,MAAM,KAAK;AAC3E,gCAA0B,MAAM;AAC9B,mBAAW,OAAO,MAAM;AACtB,gCAAsB,KAAK,MAAM,OAAO;AAAA;AAE1C,eAAO,MAAM;AACX,qBAAW,OAAO,MAAM;AACtB,qCAAyB,KAAK,MAAM,OAAO;AAAA;AAAA;AAAA,SAG9C,CAAC,KAAK,KAAK;AACd,aAAO;AAAA;AAAA,IAET,WAAW;AAAA;AAAA;AAIf,MAAM,eAAe,OAAO,KAAK;AACjC,MAAM,cAAc,aAAa;AAE1B,MAAM,cAAc,wBAAC,OAAY,UAAuC;AAC7E,QAAM,WAA0B;AAChC,WAAS,IAAI,GAAG,IAAI,aAAa,KAAK;AACpC,UAAM,OAAO,aAAa;AAC1B,UAAM,EAAE,WAAW,cAAc,mBAAmB;AACpD,QAAI,UAAU,UAAU,WAAW;AACjC,eAAS,KAAK,oCAAC,WAAD;AAAA,QAAW,KAAK;AAAA,WAAU;AAAA,QAAO,QAAQ;AAAA;AAAA;AAAA;AAG3D,SAAO;AAAA,GATkB;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
import { useEffect, useRef, useState } from "react";
|
|
4
|
+
function useForceUpdate() {
|
|
5
|
+
const setState = useState(0)[1];
|
|
6
|
+
const internal = useRef();
|
|
7
|
+
if (!internal.current) {
|
|
8
|
+
internal.current = {
|
|
9
|
+
isMounted: true,
|
|
10
|
+
update: () => {
|
|
11
|
+
if (internal.current.isMounted) {
|
|
12
|
+
setState(Math.random());
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
return () => {
|
|
19
|
+
internal.current.isMounted = false;
|
|
20
|
+
};
|
|
21
|
+
}, []);
|
|
22
|
+
return internal.current.update;
|
|
23
|
+
}
|
|
24
|
+
__name(useForceUpdate, "useForceUpdate");
|
|
25
|
+
export {
|
|
26
|
+
useForceUpdate
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=useForceUpdate.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/hooks/useForceUpdate.tsx"],
|
|
4
|
+
"sourcesContent": ["import { useEffect, useRef, useState } from 'react'\n\n// ensures no updates after unmount\n\nexport function useForceUpdate() {\n const setState = useState(0)[1]\n const internal = useRef<{ update: Function; isMounted: boolean }>()\n if (!internal.current) {\n internal.current = {\n isMounted: true,\n update: () => {\n if (internal.current!.isMounted) {\n setState(Math.random())\n }\n },\n }\n }\n\n useEffect(() => {\n return () => {\n internal.current!.isMounted = false\n }\n }, [])\n\n return internal.current.update\n}\n"],
|
|
5
|
+
"mappings": ";;AAAA;AAIO,0BAA0B;AAC/B,QAAM,WAAW,SAAS,GAAG;AAC7B,QAAM,WAAW;AACjB,MAAI,CAAC,SAAS,SAAS;AACrB,aAAS,UAAU;AAAA,MACjB,WAAW;AAAA,MACX,QAAQ,MAAM;AACZ,YAAI,SAAS,QAAS,WAAW;AAC/B,mBAAS,KAAK;AAAA;AAAA;AAAA;AAAA;AAMtB,YAAU,MAAM;AACd,WAAO,MAAM;AACX,eAAS,QAAS,YAAY;AAAA;AAAA,KAE/B;AAEH,SAAO,SAAS,QAAQ;AAAA;AApBV;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
2
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
-
import { useForceUpdate } from "@tamagui/use-force-update";
|
|
4
3
|
import { useRef } from "react";
|
|
5
4
|
import { useIsomorphicLayoutEffect } from "../constants/platform";
|
|
6
5
|
import { matchMedia } from "../helpers/matchMedia";
|
|
7
6
|
import { useConstant } from "./useConstant";
|
|
7
|
+
import { useForceUpdate } from "./useForceUpdate";
|
|
8
8
|
const mediaState = {};
|
|
9
9
|
const mediaQueryListeners = {};
|
|
10
10
|
const addMediaQueryListener = /* @__PURE__ */ __name((key, cb) => {
|
|
@@ -12,24 +12,22 @@ const addMediaQueryListener = /* @__PURE__ */ __name((key, cb) => {
|
|
|
12
12
|
mediaQueryListeners[key].add(cb);
|
|
13
13
|
}, "addMediaQueryListener");
|
|
14
14
|
const removeMediaQueryListener = /* @__PURE__ */ __name((key, cb) => {
|
|
15
|
-
|
|
16
|
-
(_a = mediaQueryListeners[key]) == null ? void 0 : _a.delete(cb);
|
|
15
|
+
mediaQueryListeners[key].delete(cb);
|
|
17
16
|
}, "removeMediaQueryListener");
|
|
18
|
-
let
|
|
17
|
+
let hasConfigured = false;
|
|
18
|
+
let mediaQueryConfigObject = null;
|
|
19
19
|
const mediaQueryConfig = new Proxy({}, {
|
|
20
20
|
get(target, key) {
|
|
21
|
-
if (!
|
|
22
|
-
|
|
23
|
-
return null;
|
|
21
|
+
if (!mediaQueryConfigObject) {
|
|
22
|
+
throw new Error(`Be sure to run configureMedia before accessing mediaQueryConfig`);
|
|
24
23
|
}
|
|
25
|
-
return Reflect.get(
|
|
24
|
+
return Reflect.get(mediaQueryConfigObject, key);
|
|
26
25
|
},
|
|
27
26
|
ownKeys() {
|
|
28
|
-
if (!
|
|
29
|
-
|
|
30
|
-
return [];
|
|
27
|
+
if (!mediaQueryConfigObject) {
|
|
28
|
+
throw new Error(`Be sure to run configureMedia before accessing mediaQueryConfig`);
|
|
31
29
|
}
|
|
32
|
-
return Object.keys(
|
|
30
|
+
return Object.keys(mediaQueryConfigObject);
|
|
33
31
|
},
|
|
34
32
|
getOwnPropertyDescriptor() {
|
|
35
33
|
return {
|
|
@@ -39,7 +37,7 @@ const mediaQueryConfig = new Proxy({}, {
|
|
|
39
37
|
}
|
|
40
38
|
});
|
|
41
39
|
const getMedia = /* @__PURE__ */ __name(() => {
|
|
42
|
-
if (!
|
|
40
|
+
if (!hasConfigured) {
|
|
43
41
|
throw new Error(`not configured yet`);
|
|
44
42
|
}
|
|
45
43
|
return mediaState;
|
|
@@ -48,13 +46,13 @@ const configureMedia = /* @__PURE__ */ __name(({
|
|
|
48
46
|
queries,
|
|
49
47
|
defaultActive = ["sm", "xs"]
|
|
50
48
|
} = {}) => {
|
|
51
|
-
|
|
52
|
-
if (conf) {
|
|
49
|
+
if (hasConfigured) {
|
|
53
50
|
console.warn(`Already configured mediaQueries once (you may have called getMedia() before configureMedia())`);
|
|
51
|
+
return;
|
|
54
52
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
53
|
+
hasConfigured = true;
|
|
54
|
+
if (queries)
|
|
55
|
+
mediaQueryConfigObject = queries;
|
|
58
56
|
for (const key in queries) {
|
|
59
57
|
const str = mediaObjectToString(queries[key]);
|
|
60
58
|
try {
|
|
@@ -70,7 +68,7 @@ const configureMedia = /* @__PURE__ */ __name(({
|
|
|
70
68
|
return;
|
|
71
69
|
mediaState[key] = next;
|
|
72
70
|
const listeners = mediaQueryListeners[key];
|
|
73
|
-
if (listeners
|
|
71
|
+
if (listeners?.size) {
|
|
74
72
|
for (const cb of [...listeners]) {
|
|
75
73
|
cb();
|
|
76
74
|
}
|
|
@@ -78,7 +76,7 @@ const configureMedia = /* @__PURE__ */ __name(({
|
|
|
78
76
|
});
|
|
79
77
|
} catch (err) {
|
|
80
78
|
console.error("Error running media query", str, err.message, err.stack);
|
|
81
|
-
const isDefaultActive =
|
|
79
|
+
const isDefaultActive = defaultActive?.includes(key) ?? true;
|
|
82
80
|
mediaState[key] = isDefaultActive;
|
|
83
81
|
}
|
|
84
82
|
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/hooks/useMedia.tsx"],
|
|
4
|
+
"sourcesContent": ["import { useRef } from 'react'\n\nimport { useIsomorphicLayoutEffect } from '../constants/platform'\nimport { matchMedia } from '../helpers/matchMedia'\nimport {\n ConfigureMediaQueryOptions,\n MediaQueries,\n MediaQueryObject,\n MediaQueryState,\n} from '../types'\nimport { useConstant } from './useConstant'\nimport { useForceUpdate } from './useForceUpdate'\n\n// For now disabled customization of media queries, but a lot of the initial steps are in place\n\nexport const mediaState: { [key in keyof MediaQueryState]: boolean } = {} as any\nconst mediaQueryListeners: { [key: string]: Set<Function> } = {}\n\nexport const addMediaQueryListener = (key: string, cb: any) => {\n mediaQueryListeners[key] = mediaQueryListeners[key] || new Set()\n mediaQueryListeners[key].add(cb)\n}\n\nexport const removeMediaQueryListener = (key: string, cb: any) => {\n mediaQueryListeners[key].delete(cb)\n}\n\nlet hasConfigured = false\nlet mediaQueryConfigObject: MediaQueries | null = null\n\nexport const mediaQueryConfig = new Proxy<MediaQueries>({} as any, {\n get(target, key) {\n if (!mediaQueryConfigObject) {\n throw new Error(`Be sure to run configureMedia before accessing mediaQueryConfig`)\n }\n return Reflect.get(mediaQueryConfigObject, key)\n },\n ownKeys() {\n if (!mediaQueryConfigObject) {\n throw new Error(`Be sure to run configureMedia before accessing mediaQueryConfig`)\n }\n return Object.keys(mediaQueryConfigObject)\n },\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true,\n }\n },\n})\n\nexport const getMedia = () => {\n if (!hasConfigured) {\n throw new Error(`not configured yet`)\n }\n return mediaState\n}\n\nexport const configureMedia = ({\n queries,\n defaultActive = ['sm', 'xs'],\n}: ConfigureMediaQueryOptions = {}) => {\n if (hasConfigured) {\n console.warn(\n `Already configured mediaQueries once (you may have called getMedia() before configureMedia())`\n )\n return\n }\n hasConfigured = true\n if (queries) mediaQueryConfigObject = queries\n\n // setup\n for (const key in queries) {\n const str = mediaObjectToString(queries[key])\n try {\n const getMatch = () => matchMedia(str)\n const match = getMatch()\n if (!match || typeof match.addListener !== 'function') {\n // caught below\n throw new Error('\u26A0\uFE0F No match (seeing this in RN sometimes)')\n }\n mediaState[key] = !!match.matches\n match.addListener(() => {\n const next = !!getMatch().matches\n if (next === mediaState[key]) return\n mediaState[key] = next\n const listeners = mediaQueryListeners[key]\n if (listeners?.size) {\n for (const cb of [...listeners]) {\n cb()\n }\n }\n })\n } catch (err: any) {\n console.error('Error running media query', str, err.message, err.stack)\n const isDefaultActive = defaultActive?.includes(key as any) ?? true\n mediaState[key] = isDefaultActive\n }\n }\n}\n\ntype UseMediaState = {\n selections: { [key: string]: boolean }\n nextSelections: { [key: string]: boolean }\n isRendering: boolean\n isUnmounted: boolean\n}\n\nexport const useMedia = () => {\n const forceUpdate = useForceUpdate()\n const state = useRef() as React.MutableRefObject<UseMediaState>\n if (!state.current) {\n state.current = {\n selections: {},\n nextSelections: {},\n isUnmounted: false,\n isRendering: true,\n }\n }\n state.current.isRendering = true\n\n // track usage\n useIsomorphicLayoutEffect(() => {\n const st = state.current\n st.isRendering = false\n // delete old\n for (const key in st.selections) {\n if (!(key in st.nextSelections)) {\n removeMediaQueryListener(key, forceUpdate)\n }\n }\n // add new\n for (const key in st.nextSelections) {\n if (!(key in st.selections)) {\n addMediaQueryListener(key, forceUpdate)\n }\n }\n })\n\n // unmount\n useIsomorphicLayoutEffect(() => {\n return () => {\n const st = state.current\n st.isUnmounted = true\n const allKeys = {\n ...st.selections,\n ...st.nextSelections,\n }\n for (const key in allKeys) {\n removeMediaQueryListener(key, forceUpdate)\n }\n }\n }, [])\n\n return useConstant(() => {\n const st = state.current\n return new Proxy(mediaState, {\n get(target, key: string) {\n if (!(key in mediaState)) {\n return Reflect.get(target, key)\n }\n if (!st.isUnmounted) {\n if (st.isRendering) {\n st.nextSelections[key] = true\n }\n }\n if (key in mediaState) {\n return mediaState[key]\n }\n return Reflect.get(mediaState, key)\n },\n })\n })\n}\n\nfunction camelToHyphen(str: string) {\n return str.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`).toLowerCase()\n}\n\nexport function mediaObjectToString(query: string | MediaQueryObject) {\n if (typeof query === 'string') {\n return query\n }\n return Object.entries(query)\n .map(([feature, value]) => {\n feature = camelToHyphen(feature)\n if (typeof value === 'string') {\n return `(${feature}: ${value})`\n }\n if (typeof value === 'number' && /[height|width]$/.test(feature)) {\n value = `${value}px`\n }\n return `(${feature}: ${value})`\n })\n .join(' and ')\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
2
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
-
var _a, _b;
|
|
4
3
|
import { Pressable } from "react-native";
|
|
5
|
-
const getPressable =
|
|
4
|
+
const getPressable = Pressable?.["type"]?.["render"];
|
|
6
5
|
const usePressable = /* @__PURE__ */ __name((props) => {
|
|
7
6
|
const out = getPressable(props);
|
|
8
7
|
const { children, style, ...pressableProps } = out.props;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../src/hooks/usePressable.tsx"],
|
|
4
4
|
"sourcesContent": ["import { Pressable, PressableProps } from 'react-native'\n\nconst getPressable = Pressable?.['type']?.['render']\n\nexport const usePressable = (props: PressableProps) => {\n const out = getPressable(props)\n const { children, style, ...pressableProps } = out.props\n return [pressableProps, style] as const\n}\n"],
|
|
5
|
-
"mappings": ";;AAAA;
|
|
5
|
+
"mappings": ";;AAAA;AAEA,MAAM,eAAe,YAAY,UAAU;AAEpC,MAAM,eAAe,wBAAC,UAA0B;AACrD,QAAM,MAAM,aAAa;AACzB,QAAM,EAAE,UAAU,UAAU,mBAAmB,IAAI;AACnD,SAAO,CAAC,gBAAgB;AAAA,GAHE;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|