@tamagui/core 1.0.0-alpha.9 → 1.0.0-beta.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/dist/cjs/Tamagui.js +69 -0
- package/dist/cjs/Tamagui.js.map +7 -0
- package/dist/cjs/ThemeContext.js +29 -0
- package/dist/cjs/ThemeContext.js.map +7 -0
- package/dist/cjs/ThemeManager.js +211 -0
- package/dist/cjs/ThemeManager.js.map +7 -0
- package/dist/cjs/conf.js +64 -0
- package/dist/cjs/conf.js.map +7 -0
- package/dist/cjs/constants/constants.js +21 -15
- package/dist/cjs/constants/constants.js.map +2 -2
- package/dist/cjs/constants/platform.js +33 -18
- package/dist/cjs/constants/platform.js.map +2 -2
- package/dist/cjs/constants/pseudos.js +19 -3
- package/dist/cjs/constants/pseudos.js.map +1 -1
- package/dist/cjs/constants/rnw.js +21 -3
- package/dist/cjs/constants/rnw.js.map +2 -2
- package/dist/cjs/contexts/ButtonInsideButtonContext.js +29 -0
- package/dist/cjs/contexts/ButtonInsideButtonContext.js.map +7 -0
- package/dist/cjs/createComponent.js +371 -225
- package/dist/cjs/createComponent.js.map +2 -2
- package/dist/cjs/createFont.js +15 -15
- package/dist/cjs/createFont.js.map +1 -1
- package/dist/cjs/createShorthands.js +19 -3
- package/dist/cjs/createShorthands.js.map +1 -1
- package/dist/cjs/createTamagui.js +156 -122
- package/dist/cjs/createTamagui.js.map +2 -2
- package/dist/cjs/createTheme.js +15 -28
- package/dist/cjs/createTheme.js.map +2 -2
- package/dist/cjs/createTokens.js +19 -22
- package/dist/cjs/createTokens.js.map +2 -2
- package/dist/cjs/createVariable.js +49 -19
- package/dist/cjs/createVariable.js.map +2 -2
- package/dist/cjs/defaultComponentState.js +1 -0
- package/dist/{helpers/pseudos.js.map → cjs/defaultComponentState.js.map} +0 -0
- package/dist/cjs/helpers/RNComponents.js +38 -0
- package/dist/cjs/helpers/RNComponents.js.map +7 -0
- package/dist/cjs/helpers/addStylesUsingClassname.js +37 -29
- package/dist/cjs/helpers/addStylesUsingClassname.js.map +2 -2
- package/dist/cjs/helpers/areEqualSets.js +38 -0
- package/dist/cjs/helpers/areEqualSets.js.map +7 -0
- package/dist/cjs/helpers/createMediaStyle.js +19 -21
- package/dist/cjs/helpers/createMediaStyle.js.map +2 -2
- package/dist/cjs/helpers/createPropMapper.js +157 -119
- package/dist/cjs/helpers/createPropMapper.js.map +2 -2
- package/dist/cjs/helpers/createShallowUpdate.js +55 -0
- package/dist/cjs/helpers/createShallowUpdate.js.map +7 -0
- package/dist/cjs/helpers/createTamaguiProvider.js +45 -26
- package/dist/cjs/helpers/createTamaguiProvider.js.map +2 -2
- package/dist/cjs/helpers/extendStaticConfig.js +27 -27
- package/dist/cjs/helpers/extendStaticConfig.js.map +2 -2
- package/dist/cjs/helpers/fixNativeShadow.js +19 -3
- package/dist/cjs/helpers/fixNativeShadow.js.map +1 -1
- package/dist/cjs/helpers/fixNativeShadow.native.js +42 -22
- package/dist/cjs/helpers/fixNativeShadow.native.js.map +2 -2
- package/dist/cjs/helpers/getExpandedShorthands.js +41 -0
- package/dist/cjs/helpers/getExpandedShorthands.js.map +7 -0
- package/dist/cjs/helpers/getSize.js +35 -0
- package/dist/cjs/helpers/getSize.js.map +7 -0
- package/dist/cjs/helpers/getSplitStyles.js +225 -98
- package/dist/cjs/helpers/getSplitStyles.js.map +2 -2
- package/dist/cjs/helpers/getStylesAtomic.js +116 -56
- package/dist/cjs/helpers/getStylesAtomic.js.map +2 -2
- package/dist/cjs/helpers/getStylesAtomic.native.js +19 -3
- package/dist/cjs/helpers/getStylesAtomic.native.js.map +1 -1
- package/dist/cjs/helpers/getThemeParentClassName.js +33 -0
- package/dist/cjs/helpers/getThemeParentClassName.js.map +7 -0
- package/dist/cjs/helpers/insertStyleRule.js +101 -25
- package/dist/cjs/helpers/insertStyleRule.js.map +2 -2
- package/dist/cjs/helpers/isObj.js +19 -3
- package/dist/cjs/helpers/isObj.js.map +1 -1
- package/dist/cjs/helpers/isTamaguiElement.js +15 -15
- package/dist/cjs/helpers/isTamaguiElement.js.map +1 -1
- package/dist/cjs/helpers/matchMedia.js +19 -3
- package/dist/cjs/helpers/matchMedia.js.map +1 -1
- package/dist/cjs/helpers/matchMedia.native.js +16 -13
- package/dist/cjs/helpers/matchMedia.native.js.map +1 -1
- package/dist/cjs/helpers/proxyThemeVariables.js +40 -0
- package/dist/cjs/helpers/proxyThemeVariables.js.map +7 -0
- package/dist/cjs/helpers/themeable.js +29 -24
- package/dist/cjs/helpers/themeable.js.map +2 -2
- package/dist/cjs/helpers/validate.js +88 -47
- package/dist/cjs/helpers/validate.js.map +2 -2
- package/dist/cjs/helpers/withStaticProperties.js +32 -0
- package/dist/cjs/helpers/withStaticProperties.js.map +7 -0
- package/dist/cjs/helpers/wrapThemeManagerContext.js +39 -0
- package/dist/cjs/helpers/wrapThemeManagerContext.js.map +7 -0
- package/dist/cjs/hooks/useConstant.js +15 -15
- package/dist/cjs/hooks/useConstant.js.map +1 -1
- package/dist/cjs/hooks/useFeatures.js +146 -18
- package/dist/cjs/hooks/useFeatures.js.map +2 -2
- package/dist/cjs/hooks/useIsMounted.js +41 -0
- package/dist/cjs/hooks/useIsMounted.js.map +7 -0
- package/dist/cjs/hooks/useIsTouchDevice.js +39 -0
- package/dist/cjs/hooks/useIsTouchDevice.js.map +7 -0
- package/dist/cjs/hooks/useMedia.js +54 -59
- package/dist/cjs/hooks/useMedia.js.map +2 -2
- package/dist/cjs/hooks/usePressable.js +15 -15
- package/dist/cjs/hooks/usePressable.js.map +1 -1
- package/dist/cjs/hooks/useTheme.js +175 -67
- package/dist/cjs/hooks/useTheme.js.map +2 -2
- package/dist/cjs/hooks/useUnmountEffect.js +33 -0
- package/dist/cjs/hooks/useUnmountEffect.js.map +7 -0
- package/dist/cjs/index.js +71 -43
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/static/postProcessStyles.js +15 -15
- package/dist/cjs/static/postProcessStyles.js.map +1 -1
- package/dist/cjs/static.js +26 -27
- package/dist/cjs/static.js.map +2 -2
- package/dist/cjs/styled.js +42 -20
- package/dist/cjs/styled.js.map +3 -3
- package/dist/cjs/tamagui-base.css +11 -0
- package/dist/cjs/tamagui-base.css.map +7 -0
- package/dist/cjs/types-rnw.js +16 -0
- package/dist/cjs/types-rnw.js.map +7 -0
- package/dist/cjs/types.js +14 -2
- package/dist/cjs/types.js.map +2 -2
- package/dist/cjs/views/Animated.js +20 -17
- package/dist/cjs/views/Animated.js.map +1 -1
- package/dist/cjs/views/Stack.js +17 -16
- package/dist/cjs/views/Stack.js.map +2 -2
- package/dist/cjs/views/Text.js +23 -21
- package/dist/cjs/views/Text.js.map +2 -2
- package/dist/cjs/views/TextAncestorContext.js +25 -21
- package/dist/cjs/views/TextAncestorContext.js.map +2 -2
- package/dist/cjs/views/Theme.js +36 -64
- package/dist/cjs/views/Theme.js.map +2 -2
- package/dist/cjs/views/ThemeContext.js +15 -15
- package/dist/cjs/views/ThemeContext.js.map +1 -1
- package/dist/cjs/views/ThemeInverse.js +20 -16
- package/dist/cjs/views/ThemeInverse.js.map +2 -2
- package/dist/cjs/views/ThemeManagerContext.js +19 -18
- package/dist/cjs/views/ThemeManagerContext.js.map +1 -1
- package/dist/cjs/views/ThemeProvider.js +37 -37
- package/dist/cjs/views/ThemeProvider.js.map +2 -2
- package/dist/cjs/views/ThemeReset.js +63 -0
- package/dist/cjs/views/ThemeReset.js.map +7 -0
- package/dist/esm/Tamagui.js +42 -0
- package/dist/esm/Tamagui.js.map +7 -0
- package/dist/{views → esm}/ThemeContext.js +0 -0
- package/dist/esm/ThemeContext.js.map +7 -0
- package/dist/esm/ThemeManager.js +187 -0
- package/dist/esm/ThemeManager.js.map +7 -0
- package/dist/esm/conf.js +36 -0
- package/dist/esm/conf.js.map +7 -0
- package/dist/{constants → esm/constants}/constants.js +4 -0
- package/dist/esm/constants/constants.js.map +7 -0
- package/dist/{constants → esm/constants}/platform.js +8 -1
- package/dist/esm/constants/platform.js.map +7 -0
- package/dist/{constants → esm/constants}/pseudos.js +0 -0
- package/dist/{constants → esm/constants}/pseudos.js.map +2 -2
- package/dist/{constants → esm/constants}/rnw.js +2 -0
- package/dist/esm/constants/rnw.js.map +7 -0
- package/dist/esm/contexts/ButtonInsideButtonContext.js +6 -0
- package/dist/esm/contexts/ButtonInsideButtonContext.js.map +7 -0
- package/dist/esm/createComponent.js +606 -0
- package/dist/esm/createComponent.js.map +7 -0
- package/dist/{createFont.js → esm/createFont.js} +0 -0
- package/dist/{createFont.js.map → esm/createFont.js.map} +2 -2
- package/dist/{createShorthands.js → esm/createShorthands.js} +0 -0
- package/dist/{createShorthands.js.map → esm/createShorthands.js.map} +2 -2
- package/dist/esm/createTamagui.js +202 -0
- package/dist/esm/createTamagui.js.map +7 -0
- package/dist/esm/createTheme.js +7 -0
- package/dist/esm/createTheme.js.map +7 -0
- package/dist/{createTokens.js → esm/createTokens.js} +2 -6
- package/dist/esm/createTokens.js.map +7 -0
- package/dist/esm/createVariable.js +49 -0
- package/dist/esm/createVariable.js.map +7 -0
- package/dist/esm/defaultComponentState.js +1 -0
- package/dist/{types.js.map → esm/defaultComponentState.js.map} +0 -0
- package/dist/esm/helpers/RNComponents.js +12 -0
- package/dist/esm/helpers/RNComponents.js.map +7 -0
- package/dist/{helpers → esm/helpers}/addStylesUsingClassname.js +20 -13
- package/dist/esm/helpers/addStylesUsingClassname.js.map +7 -0
- package/dist/esm/helpers/areEqualSets.js +16 -0
- package/dist/esm/helpers/areEqualSets.js.map +7 -0
- package/dist/{helpers → esm/helpers}/createMediaStyle.js +3 -6
- package/dist/esm/helpers/createMediaStyle.js.map +7 -0
- package/dist/esm/helpers/createPropMapper.js +206 -0
- package/dist/esm/helpers/createPropMapper.js.map +7 -0
- package/dist/esm/helpers/createShallowUpdate.js +19 -0
- package/dist/esm/helpers/createShallowUpdate.js.map +7 -0
- package/dist/esm/helpers/createTamaguiProvider.js +40 -0
- package/dist/esm/helpers/createTamaguiProvider.js.map +7 -0
- package/dist/{helpers → esm/helpers}/extendStaticConfig.js +17 -14
- package/dist/esm/helpers/extendStaticConfig.js.map +7 -0
- package/dist/{helpers → esm/helpers}/fixNativeShadow.js +0 -0
- package/dist/{helpers → esm/helpers}/fixNativeShadow.js.map +2 -2
- package/dist/esm/helpers/fixNativeShadow.native.js +34 -0
- package/dist/esm/helpers/fixNativeShadow.native.js.map +7 -0
- package/dist/esm/helpers/getExpandedShorthands.js +19 -0
- package/dist/esm/helpers/getExpandedShorthands.js.map +7 -0
- package/dist/esm/helpers/getSize.js +13 -0
- package/dist/esm/helpers/getSize.js.map +7 -0
- package/dist/esm/helpers/getSplitStyles.js +278 -0
- package/dist/esm/helpers/getSplitStyles.js.map +7 -0
- package/dist/esm/helpers/getStylesAtomic.js +131 -0
- package/dist/esm/helpers/getStylesAtomic.js.map +7 -0
- package/dist/{helpers → esm/helpers}/getStylesAtomic.native.js +0 -0
- package/dist/{helpers → esm/helpers}/getStylesAtomic.native.js.map +2 -2
- package/dist/esm/helpers/getThemeParentClassName.js +11 -0
- package/dist/esm/helpers/getThemeParentClassName.js.map +7 -0
- package/dist/esm/helpers/insertStyleRule.js +94 -0
- package/dist/esm/helpers/insertStyleRule.js.map +7 -0
- package/dist/{helpers → esm/helpers}/isObj.js +0 -0
- package/dist/{helpers → esm/helpers}/isObj.js.map +2 -2
- package/dist/{helpers → esm/helpers}/isTamaguiElement.js +2 -1
- package/dist/{helpers → esm/helpers}/isTamaguiElement.js.map +2 -2
- package/dist/{helpers → esm/helpers}/matchMedia.js +0 -0
- package/dist/{helpers → esm/helpers}/matchMedia.js.map +2 -2
- package/dist/{helpers → esm/helpers}/matchMedia.native.js +0 -0
- package/dist/{helpers → esm/helpers}/matchMedia.native.js.map +2 -2
- package/dist/esm/helpers/proxyThemeVariables.js +18 -0
- package/dist/esm/helpers/proxyThemeVariables.js.map +7 -0
- package/dist/{helpers → esm/helpers}/themeable.js +12 -10
- package/dist/esm/helpers/themeable.js.map +7 -0
- package/dist/esm/helpers/validate.js +76 -0
- package/dist/esm/helpers/validate.js.map +7 -0
- package/dist/esm/helpers/withStaticProperties.js +10 -0
- package/dist/esm/helpers/withStaticProperties.js.map +7 -0
- package/dist/esm/helpers/wrapThemeManagerContext.js +14 -0
- package/dist/esm/helpers/wrapThemeManagerContext.js.map +7 -0
- package/dist/{hooks → esm/hooks}/useConstant.js +0 -0
- package/dist/{hooks → esm/hooks}/useConstant.js.map +2 -2
- package/dist/esm/hooks/useFeatures.js +173 -0
- package/dist/esm/hooks/useFeatures.js.map +7 -0
- package/dist/esm/hooks/useIsMounted.js +19 -0
- package/dist/esm/hooks/useIsMounted.js.map +7 -0
- package/dist/esm/hooks/useIsTouchDevice.js +17 -0
- package/dist/esm/hooks/useIsTouchDevice.js.map +7 -0
- package/dist/{hooks → esm/hooks}/useMedia.js +31 -42
- package/dist/esm/hooks/useMedia.js.map +7 -0
- package/dist/{hooks → esm/hooks}/usePressable.js +2 -1
- package/dist/{hooks → esm/hooks}/usePressable.js.map +2 -2
- package/dist/esm/hooks/useTheme.js +178 -0
- package/dist/esm/hooks/useTheme.js.map +7 -0
- package/dist/esm/hooks/useUnmountEffect.js +11 -0
- package/dist/esm/hooks/useUnmountEffect.js.map +7 -0
- package/dist/{index.js → esm/index.js} +25 -5
- package/dist/esm/index.js.map +7 -0
- package/dist/{static → esm/static}/postProcessStyles.js +0 -0
- package/dist/{static → esm/static}/postProcessStyles.js.map +2 -2
- package/dist/{static.js → esm/static.js} +4 -2
- package/dist/esm/static.js.map +7 -0
- package/dist/esm/styled.js +45 -0
- package/dist/esm/styled.js.map +7 -0
- package/dist/esm/tamagui-base.css +11 -0
- package/dist/esm/tamagui-base.css.map +7 -0
- package/dist/esm/types-rnw.js +1 -0
- package/dist/esm/types-rnw.js.map +7 -0
- package/dist/{types.js → esm/types.js} +0 -0
- package/dist/esm/types.js.map +7 -0
- package/dist/{views → esm/views}/Animated.js +0 -0
- package/dist/{views → esm/views}/Animated.js.map +2 -2
- package/dist/{views → esm/views}/Stack.js +1 -0
- package/dist/esm/views/Stack.js.map +7 -0
- package/dist/{views → esm/views}/Text.js +6 -4
- package/dist/esm/views/Text.js.map +7 -0
- package/dist/esm/views/TextAncestorContext.js +18 -0
- package/dist/esm/views/TextAncestorContext.js.map +7 -0
- package/dist/esm/views/Theme.js +35 -0
- package/dist/esm/views/Theme.js.map +7 -0
- package/dist/esm/views/ThemeContext.js +6 -0
- package/dist/{views → esm/views}/ThemeContext.js.map +2 -2
- package/dist/{views → esm/views}/ThemeInverse.js +1 -1
- package/dist/{views → esm/views}/ThemeInverse.js.map +3 -3
- package/dist/{views → esm/views}/ThemeManagerContext.js +5 -4
- package/dist/{views → esm/views}/ThemeManagerContext.js.map +2 -2
- package/dist/esm/views/ThemeProvider.js +42 -0
- package/dist/esm/views/ThemeProvider.js.map +7 -0
- package/dist/esm/views/ThemeReset.js +38 -0
- package/dist/esm/views/ThemeReset.js.map +7 -0
- package/dist/jsx/Tamagui.js +41 -0
- package/dist/jsx/ThemeContext.js +5 -0
- package/dist/jsx/ThemeManager.js +186 -0
- package/dist/jsx/conf.js +35 -0
- package/dist/jsx/constants/constants.js +17 -0
- package/dist/jsx/constants/platform.js +25 -0
- package/dist/jsx/constants/pseudos.js +17 -0
- package/dist/jsx/constants/rnw.js +23 -0
- package/dist/jsx/contexts/ButtonInsideButtonContext.js +5 -0
- package/dist/jsx/createComponent.js +592 -0
- package/dist/jsx/createFont.js +27 -0
- package/dist/jsx/createShorthands.js +9 -0
- package/dist/jsx/createTamagui.js +201 -0
- package/dist/jsx/createTheme.js +6 -0
- package/dist/jsx/createTokens.js +28 -0
- package/dist/jsx/createVariable.js +48 -0
- package/dist/jsx/defaultComponentState.js +0 -0
- package/dist/jsx/helpers/RNComponents.js +11 -0
- package/dist/jsx/helpers/addStylesUsingClassname.js +63 -0
- package/dist/jsx/helpers/areEqualSets.js +15 -0
- package/dist/jsx/helpers/createMediaStyle.js +30 -0
- package/dist/jsx/helpers/createPropMapper.js +205 -0
- package/dist/jsx/helpers/createShallowUpdate.js +18 -0
- package/dist/jsx/helpers/createTamaguiProvider.js +34 -0
- package/dist/jsx/helpers/extendStaticConfig.js +61 -0
- package/dist/jsx/helpers/fixNativeShadow.js +7 -0
- package/dist/jsx/helpers/fixNativeShadow.native.js +33 -0
- package/dist/jsx/helpers/getExpandedShorthands.js +18 -0
- package/dist/jsx/helpers/getSize.js +12 -0
- package/dist/jsx/helpers/getSplitStyles.js +277 -0
- package/dist/jsx/helpers/getStylesAtomic.js +130 -0
- package/dist/jsx/helpers/getStylesAtomic.native.js +9 -0
- package/dist/jsx/helpers/getThemeParentClassName.js +10 -0
- package/dist/jsx/helpers/insertStyleRule.js +93 -0
- package/dist/jsx/helpers/isObj.js +6 -0
- package/dist/jsx/helpers/isTamaguiElement.js +10 -0
- package/dist/jsx/helpers/matchMedia.js +17 -0
- package/dist/jsx/helpers/matchMedia.native.js +8 -0
- package/dist/jsx/helpers/proxyThemeVariables.js +17 -0
- package/dist/jsx/helpers/themeable.js +24 -0
- package/dist/jsx/helpers/validate.js +75 -0
- package/dist/jsx/helpers/withStaticProperties.js +9 -0
- package/dist/jsx/helpers/wrapThemeManagerContext.js +10 -0
- package/dist/jsx/hooks/useConstant.js +14 -0
- package/dist/jsx/hooks/useFeatures.js +167 -0
- package/dist/jsx/hooks/useIsMounted.js +18 -0
- package/dist/jsx/hooks/useIsTouchDevice.js +16 -0
- package/dist/jsx/hooks/useMedia.js +159 -0
- package/dist/jsx/hooks/usePressable.js +13 -0
- package/dist/jsx/hooks/useTheme.js +177 -0
- package/dist/jsx/hooks/useUnmountEffect.js +10 -0
- package/dist/jsx/index.js +51 -0
- package/dist/jsx/static/postProcessStyles.js +17 -0
- package/dist/jsx/static.js +16 -0
- package/dist/jsx/styled.js +44 -0
- package/dist/jsx/tamagui-base.css +10 -0
- package/dist/jsx/types-rnw.js +0 -0
- package/dist/jsx/types.js +0 -0
- package/dist/jsx/views/Animated.js +74 -0
- package/dist/jsx/views/Stack.js +12 -0
- package/dist/jsx/views/Text.js +61 -0
- package/dist/jsx/views/TextAncestorContext.js +15 -0
- package/dist/jsx/views/Theme.js +31 -0
- package/dist/jsx/views/ThemeContext.js +5 -0
- package/dist/jsx/views/ThemeInverse.js +22 -0
- package/dist/jsx/views/ThemeManagerContext.js +61 -0
- package/dist/jsx/views/ThemeProvider.js +35 -0
- package/dist/jsx/views/ThemeReset.js +34 -0
- package/package.json +22 -20
- package/types/Tamagui.d.ts +30 -0
- package/types/Tamagui.d.ts.map +1 -0
- package/types/ThemeContext.d.ts +7 -0
- package/types/ThemeContext.d.ts.map +1 -0
- package/types/ThemeManager.d.ts +49 -0
- package/types/ThemeManager.d.ts.map +1 -0
- package/types/conf.d.ts +27 -0
- package/types/conf.d.ts.map +1 -0
- package/{dist/packages/core/src → types}/constants/constants.d.ts +2 -0
- package/types/constants/constants.d.ts.map +1 -0
- package/{dist/packages/core/src → types}/constants/platform.d.ts +3 -0
- package/types/constants/platform.d.ts.map +1 -0
- package/{dist/packages/core/src → types}/constants/rnw.d.ts +0 -0
- package/types/constants/rnw.d.ts.map +1 -0
- package/types/contexts/ButtonInsideButtonContext.d.ts +3 -0
- package/types/contexts/ButtonInsideButtonContext.d.ts.map +1 -0
- package/types/createComponent.d.ts +19 -0
- package/types/createComponent.d.ts.map +1 -0
- package/types/createFont.d.ts +3 -0
- package/types/createFont.d.ts.map +1 -0
- package/{dist/packages/core/src → types}/createShorthands.d.ts +0 -0
- package/types/createShorthands.d.ts.map +1 -0
- package/types/createTamagui.d.ts +18 -0
- package/types/createTamagui.d.ts.map +1 -0
- package/types/createTheme.d.ts +7 -0
- package/types/createTheme.d.ts.map +1 -0
- package/{dist/packages/core/src → types}/createTokens.d.ts +0 -16
- package/types/createTokens.d.ts.map +1 -0
- package/types/createVariable.d.ts +20 -0
- package/types/createVariable.d.ts.map +1 -0
- package/types/defaultComponentState.d.ts +1 -0
- package/types/defaultComponentState.d.ts.map +1 -0
- package/types/helpers/RNComponents.d.ts +2 -0
- package/types/helpers/RNComponents.d.ts.map +1 -0
- package/types/helpers/addStylesUsingClassname.d.ts +3 -0
- package/types/helpers/addStylesUsingClassname.d.ts.map +1 -0
- package/types/helpers/areEqualSets.d.ts +2 -0
- package/types/helpers/areEqualSets.d.ts.map +1 -0
- package/{dist/packages/core/src → types}/helpers/createMediaStyle.d.ts +1 -1
- package/types/helpers/createMediaStyle.d.ts.map +1 -0
- package/types/helpers/createPropMapper.d.ts +4 -0
- package/types/helpers/createPropMapper.d.ts.map +1 -0
- package/types/helpers/createShallowUpdate.d.ts +4 -0
- package/types/helpers/createShallowUpdate.d.ts.map +1 -0
- package/types/helpers/createTamaguiProvider.d.ts +7 -0
- package/types/helpers/createTamaguiProvider.d.ts.map +1 -0
- package/types/helpers/extendStaticConfig.d.ts +4 -0
- package/types/helpers/extendStaticConfig.d.ts.map +1 -0
- package/{dist/packages/core/src → types}/helpers/fixNativeShadow.d.ts +0 -0
- package/types/helpers/fixNativeShadow.d.ts.map +1 -0
- package/types/helpers/fixNativeShadow.native.d.ts +2 -0
- package/types/helpers/fixNativeShadow.native.d.ts.map +1 -0
- package/types/helpers/getExpandedShorthands.d.ts +3 -0
- package/types/helpers/getExpandedShorthands.d.ts.map +1 -0
- package/types/helpers/getSize.d.ts +3 -0
- package/types/helpers/getSize.d.ts.map +1 -0
- package/types/helpers/getSplitStyles.d.ts +19 -0
- package/types/helpers/getSplitStyles.d.ts.map +1 -0
- package/types/helpers/getStylesAtomic.d.ts +27 -0
- package/types/helpers/getStylesAtomic.d.ts.map +1 -0
- package/{dist/packages/core/src → types}/helpers/getStylesAtomic.native.d.ts +0 -0
- package/types/helpers/getStylesAtomic.native.d.ts.map +1 -0
- package/types/helpers/insertStyleRule.d.ts +8 -0
- package/types/helpers/insertStyleRule.d.ts.map +1 -0
- package/types/helpers/isObj.d.ts +2 -0
- package/types/helpers/isObj.d.ts.map +1 -0
- package/types/helpers/isTamaguiElement.d.ts +3 -0
- package/types/helpers/isTamaguiElement.d.ts.map +1 -0
- package/{dist/packages/core/src → types}/helpers/matchMedia.d.ts +0 -0
- package/types/helpers/matchMedia.d.ts.map +1 -0
- package/{dist/packages/core/src → types}/helpers/matchMedia.native.d.ts +0 -0
- package/types/helpers/matchMedia.native.d.ts.map +1 -0
- package/types/helpers/proxyThemeVariables.d.ts +2 -0
- package/types/helpers/proxyThemeVariables.d.ts.map +1 -0
- package/types/helpers/themeable.d.ts +12 -0
- package/types/helpers/themeable.d.ts.map +1 -0
- package/types/helpers/validate.d.ts +4 -0
- package/types/helpers/validate.d.ts.map +1 -0
- package/types/helpers/withStaticProperties.d.ts +2 -0
- package/types/helpers/withStaticProperties.d.ts.map +1 -0
- package/types/helpers/wrapThemeManagerContext.d.ts +3 -0
- package/types/helpers/wrapThemeManagerContext.d.ts.map +1 -0
- package/{dist/packages/core/src → types}/hooks/useConstant.d.ts +0 -0
- package/types/hooks/useConstant.d.ts.map +1 -0
- package/types/hooks/useFeatures.d.ts +18 -0
- package/types/hooks/useFeatures.d.ts.map +1 -0
- package/types/hooks/useIsMounted.d.ts +3 -0
- package/types/hooks/useIsMounted.d.ts.map +1 -0
- package/types/hooks/useIsTouchDevice.d.ts +2 -0
- package/types/hooks/useIsTouchDevice.d.ts.map +1 -0
- package/{dist/packages/core/src → types}/hooks/useMedia.d.ts +2 -6
- package/types/hooks/useMedia.d.ts.map +1 -0
- package/{dist/packages/core/src → types}/hooks/usePressable.d.ts +0 -0
- package/types/hooks/usePressable.d.ts.map +1 -0
- package/types/hooks/useTheme.d.ts +36 -0
- package/types/hooks/useTheme.d.ts.map +1 -0
- package/types/hooks/useUnmountEffect.d.ts +2 -0
- package/types/hooks/useUnmountEffect.d.ts.map +1 -0
- package/types/index.d.ts +42 -0
- package/types/index.d.ts.map +1 -0
- package/{dist/packages/core/src → types}/static.d.ts +7 -2
- package/types/static.d.ts.map +1 -0
- package/types/styled.d.ts +16 -0
- package/types/styled.d.ts.map +1 -0
- package/types/types-rnw.d.ts +74 -0
- package/types/types-rnw.d.ts.map +1 -0
- package/types/types.d.ts +406 -0
- package/types/types.d.ts.map +1 -0
- package/types/views/Stack.d.ts +4 -0
- package/types/views/Stack.d.ts.map +1 -0
- package/types/views/Text.d.ts +4 -0
- package/types/views/Text.d.ts.map +1 -0
- package/types/views/TextAncestorContext.d.ts +5 -0
- package/types/views/TextAncestorContext.d.ts.map +1 -0
- package/types/views/Theme.d.ts +12 -0
- package/types/views/Theme.d.ts.map +1 -0
- package/{dist/packages/core/src → types}/views/ThemeInverse.d.ts +0 -0
- package/types/views/ThemeInverse.d.ts.map +1 -0
- package/{dist/packages/core/src → types}/views/ThemeProvider.d.ts +1 -1
- package/types/views/ThemeProvider.d.ts.map +1 -0
- package/types/views/ThemeReset.d.ts +4 -0
- package/types/views/ThemeReset.d.ts.map +1 -0
- package/LICENSE +0 -21
- package/dist/constants/constants.js.map +0 -7
- package/dist/constants/platform.js.map +0 -7
- package/dist/constants/rnw.js.map +0 -7
- package/dist/constants/styleConstants.js +0 -46
- package/dist/constants/styleConstants.js.map +0 -7
- package/dist/createComponent.js +0 -463
- package/dist/createComponent.js.map +0 -7
- package/dist/createTamagui.js +0 -168
- package/dist/createTamagui.js.map +0 -7
- package/dist/createTheme.js +0 -20
- package/dist/createTheme.js.map +0 -7
- package/dist/createTokens.js.map +0 -7
- package/dist/createVariable.js +0 -25
- package/dist/createVariable.js.map +0 -7
- package/dist/helpers/addStylesUsingClassname.js.map +0 -7
- package/dist/helpers/createMediaStyle.js.map +0 -7
- package/dist/helpers/createPropMapper.js +0 -153
- package/dist/helpers/createPropMapper.js.map +0 -7
- package/dist/helpers/createTamaguiProvider.js +0 -25
- package/dist/helpers/createTamaguiProvider.js.map +0 -7
- package/dist/helpers/extendStaticConfig.js.map +0 -7
- package/dist/helpers/fixNativeShadow.native.js +0 -30
- package/dist/helpers/fixNativeShadow.native.js.map +0 -7
- package/dist/helpers/getSplitStyles.js +0 -150
- package/dist/helpers/getSplitStyles.js.map +0 -7
- package/dist/helpers/getStylesAtomic.js +0 -83
- package/dist/helpers/getStylesAtomic.js.map +0 -7
- package/dist/helpers/insertStyleRule.js +0 -24
- package/dist/helpers/insertStyleRule.js.map +0 -7
- package/dist/helpers/isComponent.js +0 -10
- package/dist/helpers/isComponent.js.map +0 -7
- package/dist/helpers/isTamaguiComponent.js +0 -10
- package/dist/helpers/isTamaguiComponent.js.map +0 -7
- package/dist/helpers/pseudos.js +0 -1
- package/dist/helpers/themeable.js.map +0 -7
- package/dist/helpers/validate.js +0 -60
- package/dist/helpers/validate.js.map +0 -7
- package/dist/helpers/validateConfig.js +0 -46
- package/dist/helpers/validateConfig.js.map +0 -7
- package/dist/helpers/validateTokens.js +0 -29
- package/dist/helpers/validateTokens.js.map +0 -7
- package/dist/hooks/useFeatures.js +0 -63
- package/dist/hooks/useFeatures.js.map +0 -7
- package/dist/hooks/useForceUpdate.js +0 -28
- package/dist/hooks/useForceUpdate.js.map +0 -7
- package/dist/hooks/useMedia.js.map +0 -7
- package/dist/hooks/useTheme.js +0 -89
- package/dist/hooks/useTheme.js.map +0 -7
- package/dist/index.cjs +0 -2202
- package/dist/index.cjs.map +0 -7
- package/dist/index.js.map +0 -7
- package/dist/packages/core/src/constants/constants.d.ts.map +0 -1
- package/dist/packages/core/src/constants/platform.d.ts.map +0 -1
- package/dist/packages/core/src/constants/pseudos.d.ts +0 -15
- package/dist/packages/core/src/constants/pseudos.d.ts.map +0 -1
- package/dist/packages/core/src/constants/rnw.d.ts.map +0 -1
- package/dist/packages/core/src/createComponent.d.ts +0 -16
- package/dist/packages/core/src/createComponent.d.ts.map +0 -1
- package/dist/packages/core/src/createShorthands.d.ts.map +0 -1
- package/dist/packages/core/src/createTamagui.d.ts +0 -37
- package/dist/packages/core/src/createTamagui.d.ts.map +0 -1
- package/dist/packages/core/src/createTheme.d.ts +0 -5
- package/dist/packages/core/src/createTheme.d.ts.map +0 -1
- package/dist/packages/core/src/createTokens.d.ts.map +0 -1
- package/dist/packages/core/src/createVariable.d.ts +0 -14
- package/dist/packages/core/src/createVariable.d.ts.map +0 -1
- package/dist/packages/core/src/helpers/addStylesUsingClassname.d.ts +0 -2
- package/dist/packages/core/src/helpers/addStylesUsingClassname.d.ts.map +0 -1
- package/dist/packages/core/src/helpers/createMediaStyle.d.ts.map +0 -1
- package/dist/packages/core/src/helpers/createTamaguiProvider.d.ts +0 -5
- package/dist/packages/core/src/helpers/createTamaguiProvider.d.ts.map +0 -1
- package/dist/packages/core/src/helpers/extendStaticConfig.d.ts +0 -5
- package/dist/packages/core/src/helpers/extendStaticConfig.d.ts.map +0 -1
- package/dist/packages/core/src/helpers/fixNativeShadow.d.ts.map +0 -1
- package/dist/packages/core/src/helpers/fixNativeShadow.native.d.ts +0 -2
- package/dist/packages/core/src/helpers/fixNativeShadow.native.d.ts.map +0 -1
- package/dist/packages/core/src/helpers/getSplitStyles.d.ts +0 -15
- package/dist/packages/core/src/helpers/getSplitStyles.d.ts.map +0 -1
- package/dist/packages/core/src/helpers/getStylesAtomic.d.ts +0 -3
- package/dist/packages/core/src/helpers/getStylesAtomic.d.ts.map +0 -1
- package/dist/packages/core/src/helpers/getStylesAtomic.native.d.ts.map +0 -1
- package/dist/packages/core/src/helpers/insertStyleRule.d.ts +0 -2
- package/dist/packages/core/src/helpers/insertStyleRule.d.ts.map +0 -1
- package/dist/packages/core/src/helpers/matchMedia.d.ts.map +0 -1
- package/dist/packages/core/src/helpers/matchMedia.native.d.ts.map +0 -1
- package/dist/packages/core/src/helpers/themeable.d.ts +0 -10
- package/dist/packages/core/src/helpers/themeable.d.ts.map +0 -1
- package/dist/packages/core/src/hooks/useConstant.d.ts.map +0 -1
- package/dist/packages/core/src/hooks/useFeatures.d.ts +0 -5
- package/dist/packages/core/src/hooks/useFeatures.d.ts.map +0 -1
- package/dist/packages/core/src/hooks/useForceUpdate.d.ts +0 -2
- package/dist/packages/core/src/hooks/useForceUpdate.d.ts.map +0 -1
- package/dist/packages/core/src/hooks/useMedia.d.ts.map +0 -1
- package/dist/packages/core/src/hooks/usePressable.d.ts.map +0 -1
- package/dist/packages/core/src/hooks/useTheme.d.ts +0 -18
- package/dist/packages/core/src/hooks/useTheme.d.ts.map +0 -1
- package/dist/packages/core/src/index.d.ts +0 -27
- package/dist/packages/core/src/index.d.ts.map +0 -1
- package/dist/packages/core/src/static/postProcessStyles.d.ts +0 -7
- package/dist/packages/core/src/static/postProcessStyles.d.ts.map +0 -1
- package/dist/packages/core/src/static.d.ts.map +0 -1
- package/dist/packages/core/src/styled.d.ts +0 -16
- package/dist/packages/core/src/styled.d.ts.map +0 -1
- package/dist/packages/core/src/types.d.ts +0 -305
- package/dist/packages/core/src/types.d.ts.map +0 -1
- package/dist/packages/core/src/views/Animated.d.ts +0 -15
- package/dist/packages/core/src/views/Animated.d.ts.map +0 -1
- package/dist/packages/core/src/views/Stack.d.ts +0 -3
- package/dist/packages/core/src/views/Stack.d.ts.map +0 -1
- package/dist/packages/core/src/views/Text.d.ts +0 -3
- package/dist/packages/core/src/views/Text.d.ts.map +0 -1
- package/dist/packages/core/src/views/TextAncestorContext.d.ts +0 -3
- package/dist/packages/core/src/views/TextAncestorContext.d.ts.map +0 -1
- package/dist/packages/core/src/views/Theme.d.ts +0 -8
- package/dist/packages/core/src/views/Theme.d.ts.map +0 -1
- package/dist/packages/core/src/views/ThemeContext.d.ts +0 -18
- package/dist/packages/core/src/views/ThemeContext.d.ts.map +0 -1
- package/dist/packages/core/src/views/ThemeInverse.d.ts.map +0 -1
- package/dist/packages/core/src/views/ThemeManagerContext.d.ts +0 -15
- package/dist/packages/core/src/views/ThemeManagerContext.d.ts.map +0 -1
- package/dist/packages/core/src/views/ThemeProvider.d.ts.map +0 -1
- package/dist/packages/helpers/src/AllRules.d.ts +0 -3
- package/dist/packages/helpers/src/AllRules.d.ts.map +0 -1
- package/dist/packages/helpers/src/concatClassName.d.ts +0 -2
- package/dist/packages/helpers/src/concatClassName.d.ts.map +0 -1
- package/dist/packages/helpers/src/index.d.ts +0 -5
- package/dist/packages/helpers/src/index.d.ts.map +0 -1
- package/dist/packages/helpers/src/types.d.ts +0 -8
- package/dist/packages/helpers/src/types.d.ts.map +0 -1
- package/dist/packages/helpers/src/validStyleProps.d.ts +0 -475
- package/dist/packages/helpers/src/validStyleProps.d.ts.map +0 -1
- package/dist/static.js.map +0 -7
- package/dist/styled.js +0 -21
- package/dist/styled.js.map +0 -7
- package/dist/views/SafeAreaProvider.js +0 -30
- package/dist/views/SafeAreaProvider.js.map +0 -7
- package/dist/views/Stack.js.map +0 -7
- package/dist/views/Text.js.map +0 -7
- package/dist/views/TextAncestorContext.js +0 -18
- package/dist/views/TextAncestorContext.js.map +0 -7
- package/dist/views/Theme.js +0 -65
- package/dist/views/Theme.js.map +0 -7
- package/dist/views/ThemeProvider.js +0 -45
- package/dist/views/ThemeProvider.js.map +0 -7
- package/src/constants/constants.ts +0 -12
- package/src/constants/platform.ts +0 -15
- package/src/constants/pseudos.ts +0 -14
- package/src/constants/rnw.tsx +0 -20
- package/src/createComponent.tsx +0 -612
- package/src/createFont.ts +0 -31
- package/src/createShorthands.ts +0 -5
- package/src/createTamagui.ts +0 -217
- package/src/createTheme.ts +0 -19
- package/src/createTokens.ts +0 -88
- package/src/createVariable.ts +0 -26
- package/src/helpers/addStylesUsingClassname.tsx +0 -60
- package/src/helpers/createMediaStyle.ts +0 -46
- package/src/helpers/createPropMapper.ts +0 -184
- package/src/helpers/createTamaguiProvider.tsx +0 -22
- package/src/helpers/extendStaticConfig.ts +0 -68
- package/src/helpers/fixNativeShadow.native.tsx +0 -27
- package/src/helpers/fixNativeShadow.tsx +0 -2
- package/src/helpers/getSplitStyles.tsx +0 -200
- package/src/helpers/getStylesAtomic.native.ts +0 -3
- package/src/helpers/getStylesAtomic.ts +0 -103
- package/src/helpers/insertStyleRule.tsx +0 -18
- package/src/helpers/isObj.ts +0 -1
- package/src/helpers/isTamaguiElement.tsx +0 -5
- package/src/helpers/matchMedia.native.ts +0 -6
- package/src/helpers/matchMedia.ts +0 -17
- package/src/helpers/themeable.tsx +0 -42
- package/src/helpers/validate.ts +0 -59
- package/src/hooks/useConstant.tsx +0 -10
- package/src/hooks/useFeatures.tsx +0 -79
- package/src/hooks/useMedia.tsx +0 -194
- package/src/hooks/usePressable.tsx +0 -9
- package/src/hooks/useTheme.tsx +0 -106
- package/src/index.ts +0 -32
- package/src/static/postProcessStyles.tsx +0 -20
- package/src/static.ts +0 -22
- package/src/styled.ts +0 -82
- package/src/types.tsx +0 -562
- package/src/views/Animated.tsx +0 -121
- package/src/views/Stack.tsx +0 -21
- package/src/views/Text.tsx +0 -66
- package/src/views/TextAncestorContext.tsx +0 -12
- package/src/views/Theme.tsx +0 -90
- package/src/views/ThemeContext.tsx +0 -5
- package/src/views/ThemeInverse.tsx +0 -22
- package/src/views/ThemeManagerContext.tsx +0 -62
- package/src/views/ThemeProvider.tsx +0 -52
- package/types.d.ts +0 -559
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import React from 'react'
|
|
2
|
-
|
|
3
|
-
import { StaticComponent, StaticConfig, StaticConfigParsed } from '../types'
|
|
4
|
-
import { createPropMapper } from './createPropMapper'
|
|
5
|
-
|
|
6
|
-
export function extendStaticConfig(
|
|
7
|
-
// can be undefined when loading with @tamagui/fake-react-native
|
|
8
|
-
// could be fixed a bit cleaner
|
|
9
|
-
Component?: StaticComponent | React.Component<any>,
|
|
10
|
-
config: StaticConfig = {}
|
|
11
|
-
): StaticConfigParsed | null {
|
|
12
|
-
const parent = (Component || {}) as any
|
|
13
|
-
if (!parent.staticConfig) {
|
|
14
|
-
// if no static config, we are extending an external component
|
|
15
|
-
parent.staticConfig = {
|
|
16
|
-
Component,
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
const variants = {
|
|
21
|
-
...parent.staticConfig.variants,
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
// merge variants without clobbering previous... can we tho (typed??
|
|
25
|
-
if (config.variants) {
|
|
26
|
-
for (const key in config.variants) {
|
|
27
|
-
if (variants[key]) {
|
|
28
|
-
variants[key] = {
|
|
29
|
-
...variants[key],
|
|
30
|
-
...config.variants[key],
|
|
31
|
-
}
|
|
32
|
-
} else {
|
|
33
|
-
variants[key] = config.variants[key]
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
return parseStaticConfig({
|
|
39
|
-
...parent.staticConfig,
|
|
40
|
-
isZStack: config.isZStack || parent.staticConfig.isZStack,
|
|
41
|
-
variants,
|
|
42
|
-
isText: config.isText || parent.staticConfig.isText || false,
|
|
43
|
-
neverFlatten: config.neverFlatten ?? parent.staticConfig.neverFlatten,
|
|
44
|
-
ensureOverriddenProp: config.ensureOverriddenProp ?? parent.staticConfig.ensureOverriddenProp,
|
|
45
|
-
validStyles: config.validStyles
|
|
46
|
-
? {
|
|
47
|
-
...parent.staticConfig.validStyles,
|
|
48
|
-
...config.validStyles,
|
|
49
|
-
}
|
|
50
|
-
: parent.staticConfig.validStyles,
|
|
51
|
-
validPropsExtra: {
|
|
52
|
-
...parent.staticConfig.validPropsExtra,
|
|
53
|
-
...config.validPropsExtra,
|
|
54
|
-
},
|
|
55
|
-
defaultProps: {
|
|
56
|
-
...parent.staticConfig.defaultProps,
|
|
57
|
-
...config.defaultProps,
|
|
58
|
-
},
|
|
59
|
-
})
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
export const parseStaticConfig = (config: StaticConfig): StaticConfigParsed => {
|
|
63
|
-
return {
|
|
64
|
-
...config,
|
|
65
|
-
parsed: true,
|
|
66
|
-
propMapper: createPropMapper(config),
|
|
67
|
-
}
|
|
68
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
const matchRgba =
|
|
2
|
-
/rgba\(\s*([\d\.]{1,})\s*,\s*([\d\.]{1,})\s*,\s*([\d\.]{1,})\s*,\s*([\d\.]{1,})\s*\)$/
|
|
3
|
-
|
|
4
|
-
export function fixNativeShadow(props: any) {
|
|
5
|
-
if (props.shadowColor) {
|
|
6
|
-
if (!!!('shadowOffset' in props)) {
|
|
7
|
-
// fixes some broken shadows
|
|
8
|
-
props.shadowOffset = {
|
|
9
|
-
width: 0,
|
|
10
|
-
height: 0,
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
if (!!!('shadowOpacity' in props)) {
|
|
14
|
-
const c = `${props.shadowColor}`
|
|
15
|
-
// react native has issues sometimes with rgba()
|
|
16
|
-
if (c[0] === 'r' && c[3] === 'a') {
|
|
17
|
-
const [_, r, g, b, a] = c.match(matchRgba) || []
|
|
18
|
-
if (typeof a !== 'string') {
|
|
19
|
-
console.warn('non valid rgba', c)
|
|
20
|
-
return props
|
|
21
|
-
}
|
|
22
|
-
props.shadowColor = `rgb(${r},${g},${b})`
|
|
23
|
-
props.shadowOpacity = +a
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
}
|
|
@@ -1,200 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
AllRules,
|
|
3
|
-
stylePropsText,
|
|
4
|
-
stylePropsTransform,
|
|
5
|
-
validStyles,
|
|
6
|
-
validStylesPseudo,
|
|
7
|
-
} from '@tamagui/helpers'
|
|
8
|
-
import { ViewStyle } from 'react-native'
|
|
9
|
-
|
|
10
|
-
import { isWeb } from '../constants/platform'
|
|
11
|
-
import { mediaQueryConfig, mediaState } from '../hooks/useMedia'
|
|
12
|
-
import { StaticConfigParsed, ThemeObject } from '../types'
|
|
13
|
-
import { createMediaStyle } from './createMediaStyle'
|
|
14
|
-
import { fixNativeShadow } from './fixNativeShadow'
|
|
15
|
-
import { getStylesAtomic } from './getStylesAtomic'
|
|
16
|
-
import { insertStyleRule } from './insertStyleRule'
|
|
17
|
-
|
|
18
|
-
export type SplitStyles = ReturnType<typeof getSplitStyles>
|
|
19
|
-
|
|
20
|
-
// TODO run over this, should be able to cut it down quite a bit
|
|
21
|
-
|
|
22
|
-
export const getSplitStyles = (
|
|
23
|
-
props: { [key: string]: any },
|
|
24
|
-
staticConfig: StaticConfigParsed,
|
|
25
|
-
theme: ThemeObject,
|
|
26
|
-
isSplittingDefaultProps?: boolean
|
|
27
|
-
) => {
|
|
28
|
-
const validStyleProps = staticConfig.isText ? stylePropsText : validStyles
|
|
29
|
-
const viewProps: Record<string, any> = {}
|
|
30
|
-
const style: any[] = []
|
|
31
|
-
|
|
32
|
-
let pseudos: { hoverStyle?: ViewStyle; pressStyle?: ViewStyle } | null = null
|
|
33
|
-
let cur: ViewStyle | null = null
|
|
34
|
-
let classNames: string[] | null = null
|
|
35
|
-
|
|
36
|
-
for (const keyInit in props) {
|
|
37
|
-
// be sure to sync next few lines below to getSubStyle (*1)
|
|
38
|
-
const valInit = props[keyInit]
|
|
39
|
-
|
|
40
|
-
// media
|
|
41
|
-
if (keyInit[0] === '$') {
|
|
42
|
-
const mediaKey = keyInit.slice(1)
|
|
43
|
-
|
|
44
|
-
if (!mediaQueryConfig[mediaKey]) {
|
|
45
|
-
// this isn't a media key, pass through
|
|
46
|
-
viewProps[keyInit] = valInit
|
|
47
|
-
continue
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
// dont check if media is active, we just apply *all* media styles
|
|
51
|
-
// we combine the media props on top regular props, could proxy this
|
|
52
|
-
// TODO test proxy here instead of merge
|
|
53
|
-
const mediaProps = { ...props, ...valInit }
|
|
54
|
-
// TODO media + hover
|
|
55
|
-
const mediaStyle = getSubStyle(valInit, staticConfig, theme, props)
|
|
56
|
-
|
|
57
|
-
if (isWeb) {
|
|
58
|
-
const mediaStyles = getStylesAtomic(mediaStyle)
|
|
59
|
-
if (process.env.NODE_ENV === 'development') {
|
|
60
|
-
if (props['debug']) {
|
|
61
|
-
console.log('mediaStyles', keyInit, { mediaProps, mediaStyle, mediaStyles })
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
for (const style of mediaStyles) {
|
|
65
|
-
const out = createMediaStyle(style, mediaKey, mediaQueryConfig)
|
|
66
|
-
classNames = classNames || []
|
|
67
|
-
classNames.push(out.identifier)
|
|
68
|
-
AllRules.add(out.styleRule)
|
|
69
|
-
insertStyleRule(out.styleRule)
|
|
70
|
-
if (process.env.NODE_ENV === 'development' && props['debug']) {
|
|
71
|
-
console.log('mediaProp', style.identifier, out, mediaProps, mediaStyle, mediaStyles)
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
} else {
|
|
75
|
-
if (mediaState[mediaKey]) {
|
|
76
|
-
style.push(mediaStyle)
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
continue
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
// pseudo
|
|
83
|
-
if (validStylesPseudo[keyInit]) {
|
|
84
|
-
if (!valInit) continue
|
|
85
|
-
pseudos = pseudos || {}
|
|
86
|
-
pseudos[keyInit] = getSubStyle(valInit, staticConfig, theme, props)
|
|
87
|
-
continue
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
const out = staticConfig.propMapper(keyInit, valInit, theme, props)
|
|
91
|
-
|
|
92
|
-
const expanded = out === true || !out ? [[keyInit, valInit]] : Object.entries(out)
|
|
93
|
-
|
|
94
|
-
for (const [key, val] of expanded) {
|
|
95
|
-
// const val = valueMap(valInit) ?? valInit
|
|
96
|
-
const keyFirstChar = key[0]
|
|
97
|
-
if (key === 'style' || (keyFirstChar === '_' && key.startsWith('_style'))) {
|
|
98
|
-
if (cur) {
|
|
99
|
-
// process last
|
|
100
|
-
fixNativeShadow(cur)
|
|
101
|
-
style.push(cur)
|
|
102
|
-
cur = null
|
|
103
|
-
}
|
|
104
|
-
fixNativeShadow(val)
|
|
105
|
-
style.push(val)
|
|
106
|
-
continue
|
|
107
|
-
}
|
|
108
|
-
// expand flex so it merged with flexShrink etc properly
|
|
109
|
-
// TODO this shouldn't be here...
|
|
110
|
-
if (key === 'flex') {
|
|
111
|
-
cur = cur || {}
|
|
112
|
-
// see spec for flex shorthand https://developer.mozilla.org/en-US/docs/Web/CSS/flex
|
|
113
|
-
// TODO this fixed a behavior but need to find / document / test
|
|
114
|
-
Object.assign(cur, {
|
|
115
|
-
flexGrow: val,
|
|
116
|
-
flexShrink: 1,
|
|
117
|
-
})
|
|
118
|
-
continue
|
|
119
|
-
}
|
|
120
|
-
if (!isWeb && key === 'pointerEvents') {
|
|
121
|
-
viewProps[key] = val
|
|
122
|
-
continue
|
|
123
|
-
}
|
|
124
|
-
if (validStyleProps[key]) {
|
|
125
|
-
// transforms
|
|
126
|
-
if (key in stylePropsTransform) {
|
|
127
|
-
cur = cur || {}
|
|
128
|
-
mergeTransform(cur, key, val)
|
|
129
|
-
continue
|
|
130
|
-
}
|
|
131
|
-
cur = cur || {}
|
|
132
|
-
cur[key] = val
|
|
133
|
-
continue
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
// pass to view props
|
|
137
|
-
if (!staticConfig.variants || !(key in staticConfig.variants)) {
|
|
138
|
-
viewProps[key] = val
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
// push last style
|
|
143
|
-
if (cur) {
|
|
144
|
-
fixNativeShadow(cur)
|
|
145
|
-
style.push(cur)
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
if (process.env.NODE_ENV === 'development') {
|
|
149
|
-
if (props['debug']) {
|
|
150
|
-
console.log(' 🥚 splitProps:', { props, viewProps, style })
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
return {
|
|
155
|
-
viewProps,
|
|
156
|
-
style,
|
|
157
|
-
pseudos,
|
|
158
|
-
classNames,
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
const getSubStyle = (
|
|
163
|
-
styleIn: Object,
|
|
164
|
-
staticConfig: StaticConfigParsed,
|
|
165
|
-
theme: ThemeObject,
|
|
166
|
-
props: any
|
|
167
|
-
): ViewStyle => {
|
|
168
|
-
const styleOut: ViewStyle = {}
|
|
169
|
-
for (const key in styleIn) {
|
|
170
|
-
// be sure to sync next few lines below to loop above (*1)
|
|
171
|
-
const val = styleIn[key]
|
|
172
|
-
const out = staticConfig.propMapper(key, val, theme, props)
|
|
173
|
-
const expanded = out === true || !out ? [[key, val]] : Object.entries(out)
|
|
174
|
-
for (const [skey, sval] of expanded) {
|
|
175
|
-
// const sval = valueMap(valInit)
|
|
176
|
-
if (skey in stylePropsTransform) {
|
|
177
|
-
mergeTransform(styleOut, skey, sval)
|
|
178
|
-
} else {
|
|
179
|
-
styleOut[skey] = sval
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
fixNativeShadow(styleOut)
|
|
184
|
-
return styleOut
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
const mapTransformKeys = {
|
|
188
|
-
x: 'translateX',
|
|
189
|
-
y: 'translateY',
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
const mergeTransform = (obj: ViewStyle, key: string, val: any) => {
|
|
193
|
-
const transform: any[] = obj.transform
|
|
194
|
-
? Array.isArray(obj.transform)
|
|
195
|
-
? obj.transform
|
|
196
|
-
: [obj.transform]
|
|
197
|
-
: []
|
|
198
|
-
transform.push({ [mapTransformKeys[key] || key]: val })
|
|
199
|
-
obj.transform = transform
|
|
200
|
-
}
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
import { AllRules, StyleObject } from '@tamagui/helpers'
|
|
2
|
-
import { ViewStyle } from 'react-native'
|
|
3
|
-
|
|
4
|
-
import { pseudos } from '../constants/pseudos'
|
|
5
|
-
import { rnw } from '../constants/rnw'
|
|
6
|
-
|
|
7
|
-
const generateStyle = (style: any) => {
|
|
8
|
-
const { atomic, createCompileableStyle, createReactDOMStyle, i18Style } = rnw
|
|
9
|
-
return {
|
|
10
|
-
...atomic(createCompileableStyle(createReactDOMStyle(i18Style(style)))),
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
const borderDefaults = {
|
|
15
|
-
borderWidth: 'borderStyle',
|
|
16
|
-
borderBottomWidth: 'borderBottomStyle',
|
|
17
|
-
borderTopWidth: 'borderTopStyle',
|
|
18
|
-
borderLeftWidth: 'borderLeftStyle',
|
|
19
|
-
borderRightWidth: 'borderRightStyle',
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export function getStylesAtomic(style: any, avoidCollection = false) {
|
|
23
|
-
const styles: { [key: string]: ViewStyle } = {
|
|
24
|
-
base: {},
|
|
25
|
-
}
|
|
26
|
-
// split pseudos
|
|
27
|
-
for (const key in style) {
|
|
28
|
-
if (!!pseudos[key]) {
|
|
29
|
-
styles[key] = style[key]
|
|
30
|
-
} else {
|
|
31
|
-
styles.base[key] = style[key]
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
return Object.keys(styles)
|
|
35
|
-
.map((key) => {
|
|
36
|
-
return getAtomicStyle(styles[key], pseudos[key], avoidCollection)
|
|
37
|
-
})
|
|
38
|
-
.flat()
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
const importantRegex = /\!important*/g
|
|
42
|
-
|
|
43
|
-
function getAtomicStyle(
|
|
44
|
-
style: ViewStyle,
|
|
45
|
-
pseudo?: { name: string; priority: number },
|
|
46
|
-
avoidCollection?: boolean
|
|
47
|
-
): StyleObject[] {
|
|
48
|
-
if (style == null || typeof style !== 'object') {
|
|
49
|
-
throw new Error(`Wrong style type: "${typeof style}": ${style}`)
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
// why is this diff from react-native-web!? need to figure out
|
|
53
|
-
for (const key in borderDefaults) {
|
|
54
|
-
if (key in style) {
|
|
55
|
-
style[borderDefaults[key]] = style[borderDefaults[key]] ?? 'solid'
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
const all = generateStyle(style)
|
|
60
|
-
return Object.keys(all).map((key) => {
|
|
61
|
-
const val = all[key]
|
|
62
|
-
const hash = val.identifier.slice(`${val.identifier}`.lastIndexOf('-') + 1)
|
|
63
|
-
// pseudos have a `--` to be easier to find with concatClassNames
|
|
64
|
-
const psuedoPrefix = pseudo ? `-${pseudo.name}-` : ''
|
|
65
|
-
const identifier = `_${val.property}-${psuedoPrefix}${hash}`
|
|
66
|
-
const className = `.${identifier}`
|
|
67
|
-
const rules = val.rules.map((rule) => {
|
|
68
|
-
if (pseudo) {
|
|
69
|
-
const psuedoPrefixSelect = [...Array(pseudo.priority)].map(() => ':root').join('') + ' '
|
|
70
|
-
let res = rule
|
|
71
|
-
.replace(`.${val.identifier}`, `${psuedoPrefixSelect} ${className}`)
|
|
72
|
-
.replace('{', `:${pseudo.name}{`)
|
|
73
|
-
|
|
74
|
-
if (pseudo.name === 'hover') {
|
|
75
|
-
// hover styles need to be conditional
|
|
76
|
-
// perhaps this can be generalized but for now lets just shortcut
|
|
77
|
-
// and hardcode for hover styles, if we need to later we can
|
|
78
|
-
// WEIRD SYNTAX, SEE:
|
|
79
|
-
// https://stackoverflow.com/questions/40532204/media-query-for-devices-supporting-hover
|
|
80
|
-
res = `@media not all and (hover: none) { ${res} }`
|
|
81
|
-
}
|
|
82
|
-
return res
|
|
83
|
-
}
|
|
84
|
-
return rule.replace(`.${val.identifier}`, className).replace(importantRegex, '')
|
|
85
|
-
})
|
|
86
|
-
|
|
87
|
-
if (!avoidCollection) {
|
|
88
|
-
if (rules.length > 1) {
|
|
89
|
-
console.warn('have never seen more than one, verifying')
|
|
90
|
-
}
|
|
91
|
-
AllRules.add(rules[0])
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
const result: StyleObject = {
|
|
95
|
-
property: val.property,
|
|
96
|
-
value: val.value,
|
|
97
|
-
identifier,
|
|
98
|
-
className,
|
|
99
|
-
rules,
|
|
100
|
-
}
|
|
101
|
-
return result
|
|
102
|
-
})
|
|
103
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { isWeb } from '../constants/platform'
|
|
2
|
-
|
|
3
|
-
export function insertStyleRule(rule: string) {
|
|
4
|
-
if (typeof window === 'undefined') {
|
|
5
|
-
return
|
|
6
|
-
}
|
|
7
|
-
if (process.env.NODE_ENV === 'development') {
|
|
8
|
-
if (!isWeb) {
|
|
9
|
-
console.warn('non web platform, dont use this')
|
|
10
|
-
return
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
const sheet = window.document.styleSheets[0]
|
|
14
|
-
if (!sheet) {
|
|
15
|
-
return
|
|
16
|
-
}
|
|
17
|
-
sheet.insertRule(rule, sheet.cssRules.length)
|
|
18
|
-
}
|
package/src/helpers/isObj.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const isObj = (x: any) => x && !Array.isArray(x) && typeof x === 'object'
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
export const matchMedia =
|
|
2
|
-
(typeof window !== 'undefined' && window.matchMedia) ||
|
|
3
|
-
(function matchMediaFallback(query: string) {
|
|
4
|
-
return {
|
|
5
|
-
addListener() {
|
|
6
|
-
if (
|
|
7
|
-
process.env.NODE_ENV === 'development' &&
|
|
8
|
-
!process.env.IS_STATIC &&
|
|
9
|
-
process.env.TAMAGUI_TARGET !== 'web'
|
|
10
|
-
) {
|
|
11
|
-
console.log('warning: matchMedia not loading! Is native picking up .native.js files?')
|
|
12
|
-
}
|
|
13
|
-
},
|
|
14
|
-
removeListener() {},
|
|
15
|
-
matches: false,
|
|
16
|
-
}
|
|
17
|
-
} as any)
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import React, { ReactElement, forwardRef } from 'react'
|
|
2
|
-
|
|
3
|
-
import { Theme } from '../views/Theme'
|
|
4
|
-
import { ThemeInverse } from '../views/ThemeInverse'
|
|
5
|
-
|
|
6
|
-
export type ThemeableProps = {
|
|
7
|
-
theme?: string | null
|
|
8
|
-
themeInverse?: boolean
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export const themeable: ThemeableHOC = function graphql<
|
|
12
|
-
R extends ReactElement<any, any> | null,
|
|
13
|
-
P extends ThemeableProps = {}
|
|
14
|
-
>(component: (props: P) => R) {
|
|
15
|
-
const withThemeComponent = forwardRef(function WithTheme({ themeInverse, ...rest }: P, ref) {
|
|
16
|
-
const el = React.createElement(component, { ...rest, ref } as any) as R
|
|
17
|
-
if (themeInverse) {
|
|
18
|
-
return (<ThemeInverse>{el}</ThemeInverse>) as R
|
|
19
|
-
}
|
|
20
|
-
if (rest.theme) {
|
|
21
|
-
return (<Theme name={rest.theme || null}>{el}</Theme>) as R
|
|
22
|
-
}
|
|
23
|
-
return el
|
|
24
|
-
})
|
|
25
|
-
|
|
26
|
-
const withTheme: {
|
|
27
|
-
(props: P): R
|
|
28
|
-
displayName: string
|
|
29
|
-
} = withThemeComponent as any
|
|
30
|
-
|
|
31
|
-
withTheme.displayName = `Themed(${
|
|
32
|
-
(component as any)?.displayName || (component as any)?.name || 'Anonymous'
|
|
33
|
-
})`
|
|
34
|
-
|
|
35
|
-
return withTheme
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export interface ThemeableHOC {
|
|
39
|
-
<R extends ReactElement<any, any> | null, P extends ThemeableProps = {}>(
|
|
40
|
-
component: (props: P) => R
|
|
41
|
-
): (props: P) => R
|
|
42
|
-
}
|
package/src/helpers/validate.ts
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
// published a patched version that works on native
|
|
2
|
-
import ow from '@tamagui/ow'
|
|
3
|
-
|
|
4
|
-
export const validateConfig = (conf: any) => {
|
|
5
|
-
if (!conf) {
|
|
6
|
-
console.warn('no conf?')
|
|
7
|
-
return
|
|
8
|
-
}
|
|
9
|
-
try {
|
|
10
|
-
ow(conf, validConfig)
|
|
11
|
-
} catch (err: any) {
|
|
12
|
-
console.log('Given config:\n', JSON.stringify(conf, null, 2))
|
|
13
|
-
throw err
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
const validConfig = ow.object.exactShape({
|
|
18
|
-
defaultTheme: ow.optional.string,
|
|
19
|
-
disableRootThemeClass: ow.optional.boolean,
|
|
20
|
-
shorthands: ow.optional.object.valuesOfType(ow.string),
|
|
21
|
-
themes: ow.object.valuesOfType(ow.object),
|
|
22
|
-
tokens: ow.object.valuesOfType(ow.object),
|
|
23
|
-
media: ow.object.valuesOfType(ow.object),
|
|
24
|
-
})
|
|
25
|
-
|
|
26
|
-
const validFont = ow.object.exactShape({
|
|
27
|
-
family: ow.string,
|
|
28
|
-
size: ow.object.nonEmpty.valuesOfType(ow.number),
|
|
29
|
-
lineHeight: ow.object.nonEmpty.valuesOfType(ow.number),
|
|
30
|
-
weight: ow.object.nonEmpty.valuesOfType(ow.string),
|
|
31
|
-
letterSpacing: ow.object.nonEmpty.valuesOfType(ow.number),
|
|
32
|
-
})
|
|
33
|
-
|
|
34
|
-
const validTokens = ow.object.exactShape({
|
|
35
|
-
font: ow.object.valuesOfType(validFont),
|
|
36
|
-
size: ow.object.nonEmpty.valuesOfType(ow.number),
|
|
37
|
-
space: ow.object.nonEmpty.valuesOfType(ow.number),
|
|
38
|
-
zIndex: ow.object.nonEmpty.valuesOfType(ow.number),
|
|
39
|
-
radius: ow.object.nonEmpty.valuesOfType(ow.number),
|
|
40
|
-
color: ow.object.nonEmpty.valuesOfType(ow.string),
|
|
41
|
-
})
|
|
42
|
-
|
|
43
|
-
export const validateTokens = (tokens: any) => {
|
|
44
|
-
try {
|
|
45
|
-
ow(tokens, validTokens)
|
|
46
|
-
} catch (err: any) {
|
|
47
|
-
console.log('Given tokens:\n', JSON.stringify(tokens, null, 2))
|
|
48
|
-
throw err
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
export const validateFont = (font: any) => {
|
|
53
|
-
try {
|
|
54
|
-
ow(font, validFont)
|
|
55
|
-
} catch (err: any) {
|
|
56
|
-
console.log('Given font:\n', JSON.stringify(font, null, 2))
|
|
57
|
-
throw err
|
|
58
|
-
}
|
|
59
|
-
}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import React from 'react'
|
|
2
|
-
|
|
3
|
-
import { isWeb, useIsomorphicLayoutEffect } from '../constants/platform'
|
|
4
|
-
import { addMediaQueryListener, mediaState, removeMediaQueryListener } from './useMedia'
|
|
5
|
-
|
|
6
|
-
type FeatureDefinition = {
|
|
7
|
-
isEnabled: (props: any) => boolean
|
|
8
|
-
Component: any
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
const createDefinition = ({
|
|
12
|
-
Component,
|
|
13
|
-
propNames,
|
|
14
|
-
}: {
|
|
15
|
-
Component: any
|
|
16
|
-
propNames: string[]
|
|
17
|
-
}): FeatureDefinition => ({
|
|
18
|
-
isEnabled: (props: any) => propNames.some((name) => !!props[name]),
|
|
19
|
-
Component,
|
|
20
|
-
})
|
|
21
|
-
|
|
22
|
-
let featureDefinitions: Record<string, FeatureDefinition> | null = null
|
|
23
|
-
|
|
24
|
-
export const useFeatures = (props: any, utils?: { forceUpdate?: Function }) => {
|
|
25
|
-
if (!featureDefinitions) {
|
|
26
|
-
featureDefinitions = loadFeatures()
|
|
27
|
-
}
|
|
28
|
-
const features: JSX.Element[] = []
|
|
29
|
-
for (const name in featureDefinitions) {
|
|
30
|
-
const { isEnabled, Component } = featureDefinitions[name]
|
|
31
|
-
if (isEnabled(props) && Component) {
|
|
32
|
-
features.push(<Component key={name} {...props} _utils={utils} />)
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
return features
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
function loadFeatures(): Record<string, FeatureDefinition> {
|
|
39
|
-
return {
|
|
40
|
-
// TODO
|
|
41
|
-
// measureLayout: createDefinition({
|
|
42
|
-
// Component: (props) => {
|
|
43
|
-
// console.log('measure', props)
|
|
44
|
-
// return null
|
|
45
|
-
// },
|
|
46
|
-
// propNames: ['onLayout'],
|
|
47
|
-
// }),
|
|
48
|
-
|
|
49
|
-
// will update the parent whenever media query changes
|
|
50
|
-
// no need on web, media queries are inserted and run in css
|
|
51
|
-
...(!isWeb && {
|
|
52
|
-
mediaQuery: loadMediaQueryFeature(),
|
|
53
|
-
}),
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
function loadMediaQueryFeature() {
|
|
58
|
-
const mediaPropNames = Object.keys(mediaState)
|
|
59
|
-
|
|
60
|
-
return createDefinition({
|
|
61
|
-
Component: (props: any) => {
|
|
62
|
-
const keys = mediaPropNames.flatMap((x) => (x in props ? x.slice(1) : []))
|
|
63
|
-
|
|
64
|
-
useIsomorphicLayoutEffect(() => {
|
|
65
|
-
for (const key of keys) {
|
|
66
|
-
addMediaQueryListener(key, props._utils.forceUpdate)
|
|
67
|
-
}
|
|
68
|
-
return () => {
|
|
69
|
-
for (const key of keys) {
|
|
70
|
-
removeMediaQueryListener(key, props._utils.forceUpdate)
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
}, [keys.join(',')])
|
|
74
|
-
|
|
75
|
-
return null
|
|
76
|
-
},
|
|
77
|
-
propNames: mediaPropNames,
|
|
78
|
-
})
|
|
79
|
-
}
|