@tamagui/core 1.0.0-alpha.0 → 1.0.0-alpha.12
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/LICENSE +21 -0
- package/dist/cjs/constants/constants.js +50 -0
- package/dist/cjs/constants/constants.js.map +7 -0
- package/dist/cjs/constants/platform.js +43 -0
- package/dist/cjs/constants/platform.js.map +7 -0
- package/dist/cjs/constants/pseudos.js +25 -0
- package/dist/cjs/constants/pseudos.js.map +7 -0
- package/dist/cjs/constants/rnw.js +28 -0
- package/dist/cjs/constants/rnw.js.map +7 -0
- package/dist/cjs/createComponent.js +532 -0
- package/dist/cjs/createComponent.js.map +7 -0
- package/dist/cjs/createFont.js +50 -0
- package/dist/cjs/createFont.js.map +7 -0
- package/dist/cjs/createShorthands.js +16 -0
- package/dist/cjs/createShorthands.js.map +7 -0
- package/dist/cjs/createTamagui.js +206 -0
- package/dist/cjs/createTamagui.js.map +7 -0
- package/dist/cjs/createTheme.js +42 -0
- package/dist/cjs/createTheme.js.map +7 -0
- package/dist/cjs/createTokens.js +55 -0
- package/dist/cjs/createTokens.js.map +7 -0
- package/dist/cjs/createVariable.js +47 -0
- package/dist/cjs/createVariable.js.map +7 -0
- package/dist/cjs/helpers/addStylesUsingClassname.js +79 -0
- package/dist/cjs/helpers/addStylesUsingClassname.js.map +7 -0
- package/dist/cjs/helpers/createMediaStyle.js +56 -0
- package/dist/cjs/helpers/createMediaStyle.js.map +7 -0
- package/dist/cjs/helpers/createPropMapper.js +197 -0
- package/dist/cjs/helpers/createPropMapper.js.map +7 -0
- package/dist/cjs/helpers/createTamaguiProvider.js +74 -0
- package/dist/cjs/helpers/createTamaguiProvider.js.map +7 -0
- package/dist/cjs/helpers/extendStaticConfig.js +82 -0
- package/dist/cjs/helpers/extendStaticConfig.js.map +7 -0
- package/dist/cjs/helpers/fixNativeShadow.js +14 -0
- package/dist/cjs/helpers/fixNativeShadow.js.map +7 -0
- package/dist/cjs/helpers/fixNativeShadow.native.js +36 -0
- package/dist/cjs/helpers/fixNativeShadow.native.js.map +7 -0
- package/dist/cjs/helpers/getSplitStyles.js +180 -0
- package/dist/cjs/helpers/getSplitStyles.js.map +7 -0
- package/dist/cjs/helpers/getStylesAtomic.js +117 -0
- package/dist/cjs/helpers/getStylesAtomic.js.map +7 -0
- package/dist/cjs/helpers/getStylesAtomic.native.js +16 -0
- package/dist/cjs/helpers/getStylesAtomic.native.js.map +7 -0
- package/dist/cjs/helpers/insertStyleRule.js +46 -0
- package/dist/cjs/helpers/insertStyleRule.js.map +7 -0
- package/dist/cjs/helpers/isObj.js +13 -0
- package/dist/cjs/helpers/isObj.js.map +7 -0
- package/dist/cjs/helpers/isTamaguiElement.js +33 -0
- package/dist/cjs/helpers/isTamaguiElement.js.map +7 -0
- package/dist/cjs/helpers/matchMedia.js +24 -0
- package/dist/cjs/helpers/matchMedia.js.map +7 -0
- package/dist/cjs/helpers/matchMedia.native.js +31 -0
- package/dist/cjs/helpers/matchMedia.native.js.map +7 -0
- package/dist/cjs/helpers/themeable.js +78 -0
- package/dist/cjs/helpers/themeable.js.map +7 -0
- package/dist/cjs/helpers/validate.js +82 -0
- package/dist/cjs/helpers/validate.js.map +7 -0
- package/dist/cjs/hooks/useConstant.js +37 -0
- package/dist/cjs/hooks/useConstant.js.map +7 -0
- package/dist/cjs/hooks/useFeatures.js +100 -0
- package/dist/cjs/hooks/useFeatures.js.map +7 -0
- package/dist/cjs/hooks/useMedia.js +206 -0
- package/dist/cjs/hooks/useMedia.js.map +7 -0
- package/dist/cjs/hooks/usePressable.js +50 -0
- package/dist/cjs/hooks/usePressable.js.map +7 -0
- package/dist/cjs/hooks/useTheme.js +111 -0
- package/dist/cjs/hooks/useTheme.js.map +7 -0
- package/dist/cjs/index.js +55 -0
- package/dist/cjs/index.js.map +7 -0
- package/dist/cjs/static/postProcessStyles.js +40 -0
- package/dist/cjs/static/postProcessStyles.js.map +7 -0
- package/dist/cjs/static.js +34 -0
- package/dist/cjs/static.js.map +7 -0
- package/dist/cjs/styled.js +72 -0
- package/dist/cjs/styled.js.map +7 -0
- package/dist/cjs/types.js +4 -0
- package/dist/cjs/types.js.map +7 -0
- package/dist/cjs/views/Animated.js +129 -0
- package/dist/cjs/views/Animated.js.map +7 -0
- package/dist/cjs/views/Stack.js +51 -0
- package/dist/cjs/views/Stack.js.map +7 -0
- package/dist/cjs/views/Text.js +93 -0
- package/dist/cjs/views/Text.js.map +7 -0
- package/dist/cjs/views/TextAncestorContext.js +41 -0
- package/dist/cjs/views/TextAncestorContext.js.map +7 -0
- package/dist/cjs/views/Theme.js +91 -0
- package/dist/cjs/views/Theme.js.map +7 -0
- package/dist/cjs/views/ThemeContext.js +29 -0
- package/dist/cjs/views/ThemeContext.js.map +7 -0
- package/dist/cjs/views/ThemeInverse.js +48 -0
- package/dist/cjs/views/ThemeInverse.js.map +7 -0
- package/dist/cjs/views/ThemeManagerContext.js +84 -0
- package/dist/cjs/views/ThemeManagerContext.js.map +7 -0
- package/dist/cjs/views/ThemeProvider.js +67 -0
- package/dist/cjs/views/ThemeProvider.js.map +7 -0
- package/dist/constants/platform.js +1 -1
- package/dist/constants/platform.js.map +2 -2
- package/dist/createComponent.js +51 -32
- package/dist/createComponent.js.map +2 -2
- package/dist/createFont.js +4 -0
- package/dist/createFont.js.map +2 -2
- package/dist/createTamagui.js +11 -2
- package/dist/createTamagui.js.map +2 -2
- package/dist/createTokens.js +4 -0
- package/dist/createTokens.js.map +2 -2
- package/dist/createVariable.js +3 -0
- package/dist/createVariable.js.map +2 -2
- package/{_ → dist/esm}/constants/constants.js +0 -0
- package/{_ → dist/esm}/constants/constants.js.map +1 -1
- package/{_ → dist/esm}/constants/platform.js +1 -2
- package/dist/esm/constants/platform.js.map +7 -0
- package/{_ → dist/esm}/constants/pseudos.js +0 -0
- package/{_ → dist/esm}/constants/pseudos.js.map +1 -1
- package/{_ → dist/esm}/constants/rnw.js +0 -0
- package/{_ → dist/esm}/constants/rnw.js.map +1 -1
- package/{_ → dist/esm}/createComponent.js +115 -78
- package/dist/esm/createComponent.js.map +7 -0
- package/dist/esm/createFont.js +28 -0
- package/dist/esm/createFont.js.map +7 -0
- package/{_ → dist/esm}/createShorthands.js +0 -0
- package/{_ → dist/esm}/createShorthands.js.map +1 -1
- package/{_ → dist/esm}/createTamagui.js +61 -15
- package/dist/esm/createTamagui.js.map +7 -0
- package/{_ → dist/esm}/createTheme.js +0 -0
- package/{_ → dist/esm}/createTheme.js.map +1 -1
- package/{_ → dist/esm}/createTokens.js +4 -0
- package/dist/esm/createTokens.js.map +7 -0
- package/{_ → dist/esm}/createVariable.js +3 -0
- package/{_ → dist/esm}/createVariable.js.map +3 -3
- package/dist/esm/helpers/addStylesUsingClassname.js +57 -0
- package/dist/esm/helpers/addStylesUsingClassname.js.map +7 -0
- package/{_ → dist/esm}/helpers/createMediaStyle.js +0 -0
- package/{_ → dist/esm}/helpers/createMediaStyle.js.map +1 -1
- package/dist/esm/helpers/createPropMapper.js +160 -0
- package/dist/esm/helpers/createPropMapper.js.map +7 -0
- package/{_ → dist/esm}/helpers/createTamaguiProvider.js +2 -19
- package/dist/esm/helpers/createTamaguiProvider.js.map +7 -0
- package/dist/esm/helpers/extendStaticConfig.js +59 -0
- package/dist/esm/helpers/extendStaticConfig.js.map +7 -0
- package/{_ → dist/esm}/helpers/fixNativeShadow.js +0 -0
- package/{_ → dist/esm}/helpers/fixNativeShadow.js.map +1 -1
- package/{_ → dist/esm}/helpers/fixNativeShadow.native.js +0 -0
- package/{_ → dist/esm}/helpers/fixNativeShadow.native.js.map +1 -1
- package/{_ → dist/esm}/helpers/getSplitStyles.js +18 -28
- package/dist/esm/helpers/getSplitStyles.js.map +7 -0
- package/{_ → dist/esm}/helpers/getStylesAtomic.js +1 -2
- package/{_ → dist/esm}/helpers/getStylesAtomic.js.map +2 -2
- package/{_ → dist/esm}/helpers/getStylesAtomic.native.js +0 -0
- package/{_ → dist/esm}/helpers/getStylesAtomic.native.js.map +1 -1
- package/{_ → dist/esm}/helpers/insertStyleRule.js +0 -0
- package/{_ → dist/esm}/helpers/insertStyleRule.js.map +1 -1
- package/dist/esm/helpers/isObj.js +7 -0
- package/dist/esm/helpers/isObj.js.map +7 -0
- package/dist/esm/helpers/isTamaguiElement.js +10 -0
- package/dist/esm/helpers/isTamaguiElement.js.map +7 -0
- package/{_ → dist/esm}/helpers/matchMedia.js +3 -0
- package/dist/esm/helpers/matchMedia.js.map +7 -0
- package/{_ → dist/esm}/helpers/matchMedia.native.js +1 -0
- package/{_ → dist/esm}/helpers/matchMedia.native.js.map +3 -3
- package/{_ → dist/esm}/helpers/themeable.js +1 -1
- package/{_ → dist/esm}/helpers/themeable.js.map +2 -2
- package/dist/esm/helpers/validate.js +60 -0
- package/dist/esm/helpers/validate.js.map +7 -0
- package/{_ → dist/esm}/hooks/useConstant.js +0 -0
- package/{_ → dist/esm}/hooks/useConstant.js.map +1 -1
- package/{_ → dist/esm}/hooks/useFeatures.js +39 -51
- package/dist/esm/hooks/useFeatures.js.map +7 -0
- package/{_ → dist/esm}/hooks/useMedia.js +7 -7
- package/dist/esm/hooks/useMedia.js.map +7 -0
- package/{_ → dist/esm}/hooks/usePressable.js +1 -2
- package/{_ → dist/esm}/hooks/usePressable.js.map +2 -2
- package/{_ → dist/esm}/hooks/useTheme.js +6 -11
- package/dist/esm/hooks/useTheme.js.map +7 -0
- package/{_ → dist/esm}/index.js +3 -1
- package/dist/esm/index.js.map +7 -0
- package/{_ → dist/esm}/static/postProcessStyles.js +0 -0
- package/{_ → dist/esm}/static/postProcessStyles.js.map +1 -1
- package/{_ → dist/esm}/static.js +3 -0
- package/dist/esm/static.js.map +7 -0
- package/{_ → dist/esm}/styled.js +2 -2
- package/dist/esm/styled.js.map +7 -0
- package/{_ → dist/esm}/types.js +0 -0
- package/{_ → dist/esm}/types.js.map +0 -0
- package/{_ → dist/esm}/views/Animated.js +0 -0
- package/{_ → dist/esm}/views/Animated.js.map +1 -1
- package/{_ → dist/esm}/views/Stack.js +0 -0
- package/{_ → dist/esm}/views/Stack.js.map +1 -1
- package/{_ → dist/esm}/views/Text.js +0 -0
- package/{_ → dist/esm}/views/Text.js.map +1 -1
- package/{_ → dist/esm}/views/TextAncestorContext.js +1 -2
- package/{_ → dist/esm}/views/TextAncestorContext.js.map +2 -2
- package/{_ → dist/esm}/views/Theme.js +25 -14
- package/dist/esm/views/Theme.js.map +7 -0
- package/{_ → dist/esm}/views/ThemeContext.js +0 -0
- package/{_ → dist/esm}/views/ThemeContext.js.map +1 -1
- package/{_ → dist/esm}/views/ThemeInverse.js +0 -1
- package/{_ → dist/esm}/views/ThemeInverse.js.map +3 -3
- package/{_ → dist/esm}/views/ThemeManagerContext.js +12 -7
- package/dist/esm/views/ThemeManagerContext.js.map +7 -0
- package/{_ → dist/esm}/views/ThemeProvider.js +0 -0
- package/{_ → dist/esm}/views/ThemeProvider.js.map +1 -1
- package/dist/helpers/createPropMapper.js +16 -9
- package/dist/helpers/createPropMapper.js.map +2 -2
- package/dist/helpers/getSplitStyles.js +13 -23
- package/dist/helpers/getSplitStyles.js.map +2 -2
- package/dist/helpers/isComponent.js +10 -0
- package/dist/helpers/isComponent.js.map +7 -0
- package/dist/helpers/isTamaguiComponent.js +10 -0
- package/dist/helpers/isTamaguiComponent.js.map +7 -0
- package/dist/helpers/isTamaguiElement.js +10 -0
- package/dist/helpers/isTamaguiElement.js.map +7 -0
- package/dist/helpers/matchMedia.js +3 -0
- package/dist/helpers/matchMedia.js.map +2 -2
- package/dist/helpers/matchMedia.native.js +1 -0
- package/dist/helpers/matchMedia.native.js.map +2 -2
- package/dist/helpers/validate.js +60 -0
- package/dist/helpers/validate.js.map +7 -0
- package/dist/helpers/validateConfig.js +46 -0
- package/dist/helpers/validateConfig.js.map +7 -0
- package/dist/helpers/validateTokens.js +29 -0
- package/dist/helpers/validateTokens.js.map +7 -0
- package/dist/hooks/useFeatures.js +39 -51
- package/dist/hooks/useFeatures.js.map +2 -2
- package/dist/hooks/useMedia.js +5 -3
- package/dist/hooks/useMedia.js.map +2 -2
- package/dist/hooks/useTheme.js +5 -9
- package/dist/hooks/useTheme.js.map +2 -2
- package/dist/index.cjs +274 -197
- package/dist/index.cjs.map +3 -3
- package/dist/index.js +1 -2
- package/dist/index.js.map +2 -2
- package/dist/jsx/constants/constants.js +13 -0
- package/dist/jsx/constants/platform.js +18 -0
- package/dist/jsx/constants/pseudos.js +17 -0
- package/dist/jsx/constants/rnw.js +21 -0
- package/dist/jsx/createComponent.js +458 -0
- package/dist/jsx/createFont.js +27 -0
- package/dist/jsx/createShorthands.js +9 -0
- package/dist/jsx/createTamagui.js +167 -0
- package/dist/jsx/createTheme.js +19 -0
- package/dist/jsx/createTokens.js +32 -0
- package/dist/jsx/createVariable.js +24 -0
- package/dist/jsx/helpers/addStylesUsingClassname.js +56 -0
- package/dist/jsx/helpers/createMediaStyle.js +33 -0
- package/dist/jsx/helpers/createPropMapper.js +159 -0
- package/dist/jsx/helpers/createTamaguiProvider.js +19 -0
- package/dist/jsx/helpers/extendStaticConfig.js +58 -0
- package/dist/jsx/helpers/fixNativeShadow.js +7 -0
- package/dist/jsx/helpers/fixNativeShadow.native.js +29 -0
- package/dist/jsx/helpers/getSplitStyles.js +149 -0
- package/dist/jsx/helpers/getStylesAtomic.js +82 -0
- package/dist/jsx/helpers/getStylesAtomic.native.js +9 -0
- package/dist/jsx/helpers/insertStyleRule.js +23 -0
- package/dist/jsx/helpers/isObj.js +6 -0
- package/dist/jsx/helpers/isTamaguiElement.js +9 -0
- package/dist/jsx/helpers/matchMedia.js +17 -0
- package/dist/jsx/helpers/matchMedia.native.js +8 -0
- package/dist/jsx/helpers/themeable.js +23 -0
- package/dist/jsx/helpers/validate.js +59 -0
- package/dist/jsx/hooks/useConstant.js +14 -0
- package/dist/jsx/hooks/useFeatures.js +57 -0
- package/dist/jsx/hooks/useMedia.js +172 -0
- package/dist/jsx/hooks/usePressable.js +12 -0
- package/dist/jsx/hooks/useTheme.js +88 -0
- package/dist/jsx/index.js +31 -0
- package/dist/jsx/static/postProcessStyles.js +17 -0
- package/dist/jsx/static.js +14 -0
- package/dist/jsx/styled.js +20 -0
- package/dist/jsx/types.js +0 -0
- package/dist/jsx/views/Animated.js +74 -0
- package/dist/jsx/views/Stack.js +11 -0
- package/dist/jsx/views/Text.js +59 -0
- package/dist/jsx/views/TextAncestorContext.js +14 -0
- package/dist/jsx/views/Theme.js +62 -0
- package/dist/jsx/views/ThemeContext.js +5 -0
- package/dist/jsx/views/ThemeInverse.js +22 -0
- package/dist/jsx/views/ThemeManagerContext.js +60 -0
- package/dist/jsx/views/ThemeProvider.js +39 -0
- package/dist/views/Theme.js +25 -13
- package/dist/views/Theme.js.map +2 -2
- package/dist/views/ThemeInverse.js +0 -1
- package/dist/views/ThemeInverse.js.map +2 -2
- package/dist/views/ThemeManagerContext.js +11 -5
- package/dist/views/ThemeManagerContext.js.map +2 -2
- package/package.json +17 -9
- package/src/constants/platform.ts +1 -1
- package/src/createComponent.tsx +59 -41
- package/src/createFont.ts +5 -0
- package/src/createTamagui.ts +11 -1
- package/src/createTokens.ts +6 -1
- package/src/createVariable.ts +4 -0
- package/src/helpers/createPropMapper.ts +16 -8
- package/src/helpers/getSplitStyles.tsx +16 -26
- package/src/helpers/isTamaguiElement.tsx +5 -0
- package/src/helpers/matchMedia.native.ts +3 -0
- package/src/helpers/matchMedia.ts +9 -1
- package/src/helpers/validate.ts +59 -0
- package/src/hooks/useFeatures.tsx +54 -53
- package/src/hooks/useMedia.tsx +5 -3
- package/src/hooks/useTheme.tsx +7 -8
- package/src/index.ts +1 -2
- package/src/types.tsx +9 -8
- package/src/views/Text.tsx +2 -1
- package/src/views/Theme.tsx +42 -21
- package/src/views/ThemeInverse.tsx +0 -1
- package/src/views/ThemeManagerContext.tsx +18 -6
- package/types/constants/constants.d.ts +8 -0
- package/types/constants/constants.d.ts.map +1 -0
- package/types/constants/platform.d.ts +9 -0
- package/types/constants/platform.d.ts.map +1 -0
- package/types/constants/pseudos.d.ts +15 -0
- package/types/constants/pseudos.d.ts.map +1 -0
- package/types/constants/rnw.d.ts +2 -0
- package/types/constants/rnw.d.ts.map +1 -0
- package/types/createComponent.d.ts +17 -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/types/createShorthands.d.ts +2 -0
- package/types/createShorthands.d.ts.map +1 -0
- package/types/createTamagui.d.ts +38 -0
- package/types/createTamagui.d.ts.map +1 -0
- package/types/createTheme.d.ts +5 -0
- package/types/createTheme.d.ts.map +1 -0
- package/types/createTokens.d.ts +55 -0
- package/types/createTokens.d.ts.map +1 -0
- package/types/createVariable.d.ts +15 -0
- package/types/createVariable.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/createMediaStyle.d.ts +8 -0
- package/types/helpers/createMediaStyle.d.ts.map +1 -0
- package/types/helpers/createPropMapper.d.ts +3 -0
- package/types/helpers/createPropMapper.d.ts.map +1 -0
- package/types/helpers/createTamaguiProvider.d.ts +5 -0
- package/types/helpers/createTamaguiProvider.d.ts.map +1 -0
- package/types/helpers/extendStaticConfig.d.ts +5 -0
- package/types/helpers/extendStaticConfig.d.ts.map +1 -0
- package/types/helpers/fixNativeShadow.d.ts +2 -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/getSplitStyles.d.ts +15 -0
- package/types/helpers/getSplitStyles.d.ts.map +1 -0
- package/types/helpers/getStylesAtomic.d.ts +3 -0
- package/types/helpers/getStylesAtomic.d.ts.map +1 -0
- package/types/helpers/getStylesAtomic.native.d.ts +2 -0
- package/types/helpers/getStylesAtomic.native.d.ts.map +1 -0
- package/types/helpers/insertStyleRule.d.ts +2 -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/types/helpers/matchMedia.d.ts +2 -0
- package/types/helpers/matchMedia.d.ts.map +1 -0
- package/types/helpers/matchMedia.native.d.ts +3 -0
- package/types/helpers/matchMedia.native.d.ts.map +1 -0
- package/types/helpers/themeable.d.ts +10 -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/hooks/useConstant.d.ts +2 -0
- package/types/hooks/useConstant.d.ts.map +1 -0
- package/types/hooks/useFeatures.d.ts +5 -0
- package/types/hooks/useFeatures.d.ts.map +1 -0
- package/types/hooks/useMedia.d.ts +16 -0
- package/types/hooks/useMedia.d.ts.map +1 -0
- package/types/hooks/usePressable.d.ts +3 -0
- package/types/hooks/usePressable.d.ts.map +1 -0
- package/types/hooks/useTheme.d.ts +20 -0
- package/types/hooks/useTheme.d.ts.map +1 -0
- package/types/index.d.ts +29 -0
- package/types/index.d.ts.map +1 -0
- package/types/static/postProcessStyles.d.ts +7 -0
- package/types/static/postProcessStyles.d.ts.map +1 -0
- package/types/static.d.ts +15 -0
- package/types/static.d.ts.map +1 -0
- package/types/styled.d.ts +21 -0
- package/types/styled.d.ts.map +1 -0
- package/types/types.d.ts +306 -0
- package/types/types.d.ts.map +1 -0
- package/types/views/Animated.d.ts +15 -0
- package/types/views/Animated.d.ts.map +1 -0
- package/types/views/Stack.d.ts +3 -0
- package/types/views/Stack.d.ts.map +1 -0
- package/types/views/Text.d.ts +3 -0
- package/types/views/Text.d.ts.map +1 -0
- package/types/views/TextAncestorContext.d.ts +3 -0
- package/types/views/TextAncestorContext.d.ts.map +1 -0
- package/types/views/Theme.d.ts +8 -0
- package/types/views/Theme.d.ts.map +1 -0
- package/types/views/ThemeContext.d.ts +18 -0
- package/types/views/ThemeContext.d.ts.map +1 -0
- package/types/views/ThemeInverse.d.ts +10 -0
- package/types/views/ThemeInverse.d.ts.map +1 -0
- package/types/views/ThemeManagerContext.d.ts +22 -0
- package/types/views/ThemeManagerContext.d.ts.map +1 -0
- package/types/views/ThemeProvider.d.ts +10 -0
- package/types/views/ThemeProvider.d.ts.map +1 -0
- package/.ultra.cache.json +0 -1
- package/_/constants/platform.js.map +0 -7
- package/_/createComponent.js.map +0 -7
- package/_/createTamagui.js.map +0 -7
- package/_/createTokens.js.map +0 -7
- package/_/helpers/addStylesUsingClassname.js +0 -32
- package/_/helpers/addStylesUsingClassname.js.map +0 -7
- package/_/helpers/createTamaguiProvider.js.map +0 -7
- package/_/helpers/extendStaticConfig.js +0 -176
- package/_/helpers/extendStaticConfig.js.map +0 -7
- package/_/helpers/getSplitStyles.js.map +0 -7
- package/_/helpers/matchMedia.js.map +0 -7
- package/_/hooks/useFeatures.js.map +0 -7
- package/_/hooks/useForceUpdate.js +0 -28
- package/_/hooks/useForceUpdate.js.map +0 -7
- package/_/hooks/useMedia.js.map +0 -7
- package/_/hooks/useTheme.js.map +0 -7
- package/_/index.js.map +0 -7
- package/_/static.js.map +0 -7
- package/_/styled.js.map +0 -7
- package/_/views/Theme.js.map +0 -7
- package/_/views/ThemeManagerContext.js.map +0 -7
- package/src/hooks/useForceUpdate.tsx +0 -26
- package/src/views/SafeAreaProvider.tsx +0 -33
- package/tsconfig.json +0 -8
- package/types.d.ts +0 -558
package/dist/createTamagui.js
CHANGED
|
@@ -3,10 +3,12 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
3
3
|
import { getStyleRules } from "@tamagui/helpers";
|
|
4
4
|
import { Variable, createVariable, isVariable } from "./createVariable";
|
|
5
5
|
import { createTamaguiProvider } from "./helpers/createTamaguiProvider";
|
|
6
|
+
import { validateConfig } from "./helpers/validate";
|
|
6
7
|
import { configureMedia } from "./hooks/useMedia";
|
|
7
8
|
let conf;
|
|
8
9
|
const getHasConfigured = /* @__PURE__ */ __name(() => !!conf, "getHasConfigured");
|
|
9
|
-
const
|
|
10
|
+
const getTamagui = /* @__PURE__ */ __name(() => conf, "getTamagui");
|
|
11
|
+
const getTokens = /* @__PURE__ */ __name(() => conf.tokensParsed, "getTokens");
|
|
10
12
|
const configListeners = new Set();
|
|
11
13
|
const onConfiguredOnce = /* @__PURE__ */ __name((cb) => {
|
|
12
14
|
if (conf) {
|
|
@@ -17,6 +19,11 @@ const onConfiguredOnce = /* @__PURE__ */ __name((cb) => {
|
|
|
17
19
|
}, "onConfiguredOnce");
|
|
18
20
|
const PREFIX = `theme--`;
|
|
19
21
|
function createTamagui(config) {
|
|
22
|
+
if (process.env.NODE_ENV === "development") {
|
|
23
|
+
if (!config["parsed"]) {
|
|
24
|
+
validateConfig(config);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
20
27
|
if (conf) {
|
|
21
28
|
console.warn("Called createTamagui twice! Should never do so");
|
|
22
29
|
}
|
|
@@ -104,6 +111,7 @@ ${vars}
|
|
|
104
111
|
themeConfig,
|
|
105
112
|
themeParsed,
|
|
106
113
|
tokensParsed,
|
|
114
|
+
parsed: true,
|
|
107
115
|
getCSS() {
|
|
108
116
|
return `${themeConfig.css}
|
|
109
117
|
${[...getStyleRules()].join("\n")}`;
|
|
@@ -152,8 +160,9 @@ const parseTokens = /* @__PURE__ */ __name((tokens) => {
|
|
|
152
160
|
export {
|
|
153
161
|
createTamagui,
|
|
154
162
|
getHasConfigured,
|
|
155
|
-
|
|
163
|
+
getTamagui,
|
|
156
164
|
getThemeParentClassName,
|
|
165
|
+
getTokens,
|
|
157
166
|
onConfiguredOnce
|
|
158
167
|
};
|
|
159
168
|
//# sourceMappingURL=createTamagui.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/createTamagui.ts"],
|
|
4
|
-
"sourcesContent": ["import { getStyleRules } from '@tamagui/helpers'\n\nimport { Variable, createVariable, isVariable } from './createVariable'\nimport { createTamaguiProvider } from './helpers/createTamaguiProvider'\nimport { configureMedia } from './hooks/useMedia'\nimport {\n CreateTamaguiConfig,\n GenericTamaguiConfig,\n MediaQueryKey,\n TamaguiInternalConfig,\n TamaguiProviderProps,\n} from './types'\n\nexport type CreateTamaguiProps = TamaguiProviderProps &\n // we omit and re-declare it because we need to allow instantation types to be flexible\n // user then re-defines the types after createTamagui returns the typed object they want\n Omit<GenericTamaguiConfig, 'themes'> & {\n themes: {\n [key: string]: {\n [key: string]: string | number | Variable\n }\n }\n // for ssr/native, will default to active\n mediaQueryDefaultActive?: MediaQueryKey[]\n }\n\nlet conf: TamaguiInternalConfig | null\n\nexport const getHasConfigured = () => !!conf\nexport const
|
|
5
|
-
"mappings": ";;AAAA;AAEA;AACA;AACA;AAsBA,IAAI;AAEG,MAAM,mBAAmB,6BAAM,CAAC,CAAC,MAAR;
|
|
4
|
+
"sourcesContent": ["import { getStyleRules } from '@tamagui/helpers'\n\nimport { Variable, createVariable, isVariable } from './createVariable'\nimport { createTamaguiProvider } from './helpers/createTamaguiProvider'\nimport { validateConfig } from './helpers/validate'\nimport { configureMedia } from './hooks/useMedia'\nimport {\n CreateTamaguiConfig,\n GenericTamaguiConfig,\n MediaQueryKey,\n TamaguiInternalConfig,\n TamaguiProviderProps,\n} from './types'\n\nexport type CreateTamaguiProps = TamaguiProviderProps &\n // we omit and re-declare it because we need to allow instantation types to be flexible\n // user then re-defines the types after createTamagui returns the typed object they want\n Omit<GenericTamaguiConfig, 'themes'> & {\n themes: {\n [key: string]: {\n [key: string]: string | number | Variable\n }\n }\n // for ssr/native, will default to active\n mediaQueryDefaultActive?: MediaQueryKey[]\n }\n\nlet conf: TamaguiInternalConfig | null\n\nexport const getHasConfigured = () => !!conf\n\nexport const getTamagui = () => conf!\nexport const getTokens = () => conf!.tokensParsed\n\ntype ConfigListener = (conf: TamaguiInternalConfig) => void\nconst configListeners = new Set<ConfigListener>()\nexport const onConfiguredOnce = (cb: ConfigListener) => {\n if (conf) {\n cb(conf)\n } else {\n configListeners.add(cb)\n }\n}\n\nconst PREFIX = `theme--`\n\nexport function createTamagui<Conf extends CreateTamaguiProps>(\n config: Conf\n): Conf extends CreateTamaguiConfig<infer A, infer B, infer C, infer D>\n ? TamaguiInternalConfig<A, B, C, D>\n : unknown {\n if (process.env.NODE_ENV === 'development') {\n // config is re-run by the @tamagui/static, dont double validate\n if (!config['parsed']) {\n validateConfig(config)\n }\n }\n // test env loads a few times as it runs diff tests\n if (conf) {\n console.warn('Called createTamagui twice! Should never do so')\n // throw new Error(`#000 createTamagui called twice`)\n }\n\n configureMedia({\n queries: config.media as any,\n defaultActive: config.mediaQueryDefaultActive,\n })\n\n // TODO can avoid some of this CSS creation on native\n const themeConfig = (() => {\n let cssRules: string[] = []\n\n // tokens\n let tokenRule = `:root {`\n const varsByValue = new Map<string, Variable>()\n const addVar = (v: Variable) => {\n varsByValue[v.val] = v\n const rule = `--${v.name}:${typeof v.val === 'number' ? `${v.val}px` : v.val};`\n tokenRule += rule\n }\n\n for (const key in config.tokens) {\n for (const skey in config.tokens[key]) {\n const val = config.tokens[key][skey]\n if (key === 'font') {\n for (const fkey in val) {\n if (fkey === 'family') {\n addVar(val[fkey])\n } else {\n for (const fskey in val[fkey]) {\n addVar(val[fkey][fskey])\n }\n }\n }\n } else {\n addVar(val)\n }\n }\n }\n cssRules.push(`${tokenRule}\\n}`)\n\n // themes\n for (const themeName in config.themes) {\n // to allow using the same theme with diff names, be sure we don't mutate!\n config.themes[themeName] = { ...config.themes[themeName] }\n const theme = config.themes[themeName]\n let vars = ''\n for (const themeKey in theme) {\n const val = theme[themeKey]\n const getVariableCSS = (inv: any) => {\n const v = varsByValue[inv] ?? inv\n return isVariable(v) ? `--${themeKey}:var(--${v.name});` : `--${themeKey}:${v};`\n }\n vars += getVariableCSS(val)\n // TODO sanity check is necessary\n // make everything a variable that gets put into css\n if (!isVariable(val)) {\n theme[themeKey] = createVariable({\n name: themeKey,\n val,\n })\n }\n }\n\n const [themeClassName, parentName] = themeName.includes('-')\n ? themeName.split('-')\n : [themeName, '']\n // tiny hack for now assuming light/dark are typical parentName\n const oppositeName = parentName === 'dark' ? 'light' : 'dark'\n const cssParentSel = parentName ? `.${PREFIX}${parentName}` : ''\n const cssChildSel = `.${PREFIX}${themeClassName}`\n const cssSel = `${cssParentSel} ${cssChildSel}`\n // we need to force specificity\n const cssRule = `${cssSel}, .${PREFIX}${oppositeName} ${cssSel} {\\n${vars}\\n}`\n cssRules.push(cssRule)\n }\n\n Object.freeze(cssRules)\n\n return {\n cssRules,\n css: cssRules.join('\\n'),\n }\n })()\n\n // faster lookups token keys become $keys to match input\n const tokensParsed: any = parseTokens(config.tokens)\n // all themes should match key and we just need variable name\n // TODO once w react native we'd want to have a reverse lookup back to value\n const themeParsed: any = {}\n const firstKey = Object.keys(config.themes)[0]\n for (const key in config.themes[firstKey]) {\n // themeParsed[`$${key}`] = config.themes[firstKey][key]\n const val = config.themes[firstKey][key].val\n themeParsed[`$${key}`] = new Variable({ val, name: key })\n }\n\n const next: TamaguiInternalConfig = {\n // @ts-ignore\n shorthands: {},\n ...config,\n Provider: createTamaguiProvider({\n defaultTheme: 'light',\n ...config,\n }),\n themeConfig,\n themeParsed,\n tokensParsed,\n parsed: true,\n getCSS() {\n return `${themeConfig.css}\\n${[...getStyleRules()].join('\\n')}`\n },\n }\n conf = next\n\n if (configListeners.size) {\n configListeners.forEach((cb) => cb(next))\n configListeners.clear()\n }\n\n // @ts-expect-error\n return next\n}\n\nexport function getThemeParentClassName(themeName?: string | null) {\n return `theme-parent ${themeName ? `${PREFIX}${themeName}` : ''}`\n}\n\nconst parseTokens = (tokens: any) => {\n const res: any = {}\n for (const key in tokens) {\n res[key] = {}\n if (key === 'font') {\n for (const family in tokens.font) {\n const obj = {}\n res.font[`$${family}`] = obj\n for (const attrKey in tokens.font[family]) {\n const attr = tokens.font[family][attrKey]\n if (attrKey === 'family') {\n obj[attrKey] = attr\n continue\n }\n obj[attrKey] = Object.keys(attr).reduce((acc, cur) => {\n acc[`$${cur}`] = attr[cur]\n return acc\n }, {})\n }\n }\n continue\n }\n for (const skey in tokens[key]) {\n res[key][`$${skey}`] = tokens[key][skey]\n }\n }\n\n return res\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/createTokens.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
2
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
3
|
import { createVariable } from "./createVariable";
|
|
4
|
+
import { validateTokens } from "./helpers/validate";
|
|
4
5
|
function createTokens(tokens) {
|
|
6
|
+
if (process.env.NODE_ENV === "development") {
|
|
7
|
+
validateTokens(tokens);
|
|
8
|
+
}
|
|
5
9
|
return setupTokens(tokens);
|
|
6
10
|
}
|
|
7
11
|
__name(createTokens, "createTokens");
|
package/dist/createTokens.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/createTokens.ts"],
|
|
4
|
-
"sourcesContent": ["import { Variable, createVariable } from './createVariable'\nimport { CreateTokens } from './types'\n\n// tokens.color.dark.red ===>{ var: `color-dark-red`, val: '' }\n\nexport function createTokens<T extends CreateTokens>(tokens: T): MakeTokens<T> {\n return setupTokens(tokens) as any\n}\n\nfunction setupTokens(tokens: any) {\n return mapTokensToVariables(tokens)\n}\n\nexport const mapTokensToVariables = (\n tokens: CreateTokens,\n parentPath = ''\n): CreateTokens<Variable> => {\n const res = {}\n for (const key in tokens) {\n const val = tokens[key]\n const name = parentPath ? `${parentPath}-${key}` : key\n if (val && typeof val === 'object') {\n res[key] = mapTokensToVariables(tokens[key], name)\n } else {\n res[key] = createVariable({ val, name })\n }\n }\n // @ts-expect-error\n return res\n}\n\n// verbose but gives us nice types...\ntype MakeTokens<T> = T extends {\n font: {\n [key in infer A]: {\n size: infer B\n lineHeight: infer C\n letterSpacing: infer D\n weight: infer Z\n family: infer Y\n }\n }\n color: infer E\n space: infer F\n size: infer G\n radius: infer H\n zIndex: infer J\n}\n ? {\n font: {\n [key in A]: {\n size: {\n [key in keyof B]: Variable\n }\n lineHeight: {\n [key in keyof C]: Variable\n }\n letterSpacing: {\n [key in keyof D]: Variable\n }\n weight: {\n [key in keyof Z]: Variable\n }\n family: Y\n }\n }\n color: {\n [key in keyof E]: Variable\n }\n space: {\n [key in keyof F]: Variable\n }\n size: {\n [key in keyof G]: Variable\n }\n radius: {\n [key in keyof H]: Variable\n }\n zIndex: {\n [key in keyof J]: Variable\n }\n }\n : never\n"],
|
|
5
|
-
"mappings": ";;AAAA;AAKO,sBAA8C,QAA0B;AAC7E,SAAO,YAAY;AAAA;
|
|
4
|
+
"sourcesContent": ["import { Variable, createVariable } from './createVariable'\nimport { validateTokens } from './helpers/validate'\nimport { CreateTokens } from './types'\n\n// tokens.color.dark.red ===> { var: `color-dark-red`, val: '' }\n\nexport function createTokens<T extends CreateTokens>(tokens: T): MakeTokens<T> {\n if (process.env.NODE_ENV === 'development') {\n validateTokens(tokens)\n }\n\n return setupTokens(tokens) as any\n}\n\nfunction setupTokens(tokens: any) {\n return mapTokensToVariables(tokens)\n}\n\nexport const mapTokensToVariables = (\n tokens: CreateTokens,\n parentPath = ''\n): CreateTokens<Variable> => {\n const res = {}\n for (const key in tokens) {\n const val = tokens[key]\n const name = parentPath ? `${parentPath}-${key}` : key\n if (val && typeof val === 'object') {\n res[key] = mapTokensToVariables(tokens[key], name)\n } else {\n res[key] = createVariable({ val, name })\n }\n }\n // @ts-expect-error\n return res\n}\n\n// verbose but gives us nice types...\ntype MakeTokens<T> = T extends {\n font: {\n [key in infer A]: {\n size: infer B\n lineHeight: infer C\n letterSpacing: infer D\n weight: infer Z\n family: infer Y\n }\n }\n color: infer E\n space: infer F\n size: infer G\n radius: infer H\n zIndex: infer J\n}\n ? {\n font: {\n [key in A]: {\n size: {\n [key in keyof B]: Variable\n }\n lineHeight: {\n [key in keyof C]: Variable\n }\n letterSpacing: {\n [key in keyof D]: Variable\n }\n weight: {\n [key in keyof Z]: Variable\n }\n family: Y\n }\n }\n color: {\n [key in keyof E]: Variable\n }\n space: {\n [key in keyof F]: Variable\n }\n size: {\n [key in keyof G]: Variable\n }\n radius: {\n [key in keyof H]: Variable\n }\n zIndex: {\n [key in keyof J]: Variable\n }\n }\n : never\n"],
|
|
5
|
+
"mappings": ";;AAAA;AACA;AAKO,sBAA8C,QAA0B;AAC7E,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,mBAAe;AAAA;AAGjB,SAAO,YAAY;AAAA;AALL;AAQhB,qBAAqB,QAAa;AAChC,SAAO,qBAAqB;AAAA;AADrB;AAIF,MAAM,uBAAuB,wBAClC,QACA,aAAa,OACc;AAC3B,QAAM,MAAM;AACZ,aAAW,OAAO,QAAQ;AACxB,UAAM,MAAM,OAAO;AACnB,UAAM,OAAO,aAAa,GAAG,cAAc,QAAQ;AACnD,QAAI,OAAO,OAAO,QAAQ,UAAU;AAClC,UAAI,OAAO,qBAAqB,OAAO,MAAM;AAAA,WACxC;AACL,UAAI,OAAO,eAAe,EAAE,KAAK;AAAA;AAAA;AAIrC,SAAO;AAAA,GAf2B;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/createVariable.js
CHANGED
|
@@ -7,6 +7,9 @@ class Variable {
|
|
|
7
7
|
this.name = name;
|
|
8
8
|
this.variable = isWeb ? `var(--${name})` : this.val;
|
|
9
9
|
}
|
|
10
|
+
toString() {
|
|
11
|
+
return isWeb ? this.variable : this.val;
|
|
12
|
+
}
|
|
10
13
|
}
|
|
11
14
|
__name(Variable, "Variable");
|
|
12
15
|
const createVariable = /* @__PURE__ */ __name((props) => new Variable(props), "createVariable");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/createVariable.ts"],
|
|
4
|
-
"sourcesContent": ["import { isWeb } from './constants/platform'\n\nexport class Variable {\n name: string\n val: string | number\n variable: string | number\n\n constructor({ val, name }: VariableIn) {\n // converting to px breaks rn\n this.val = val //typeof val === 'string' ? val : `${val}px`\n this.name = name\n this.variable = isWeb ? `var(--${name})` : this.val\n }\n}\n\ntype VariableIn = { val: string | number; name: string }\n\nexport const createVariable = (props: VariableIn) => new Variable(props)\n\nexport function isVariable(v: Variable | any): v is Variable {\n return v instanceof Variable\n}\n"],
|
|
5
|
-
"mappings": ";;AAAA;AAEO,eAAe;AAAA,EAKpB,YAAY,EAAE,KAAK,QAAoB;AAErC,SAAK,MAAM;AACX,SAAK,OAAO;AACZ,SAAK,WAAW,QAAQ,SAAS,UAAU,KAAK;AAAA;AAAA;
|
|
4
|
+
"sourcesContent": ["import { isWeb } from './constants/platform'\n\nexport class Variable {\n name: string\n val: string | number\n variable: string | number\n\n constructor({ val, name }: VariableIn) {\n // converting to px breaks rn\n this.val = val //typeof val === 'string' ? val : `${val}px`\n this.name = name\n this.variable = isWeb ? `var(--${name})` : this.val\n }\n\n toString() {\n return isWeb ? this.variable : this.val\n }\n}\n\ntype VariableIn = { val: string | number; name: string }\n\nexport const createVariable = (props: VariableIn) => new Variable(props)\n\nexport function isVariable(v: Variable | any): v is Variable {\n return v instanceof Variable\n}\n"],
|
|
5
|
+
"mappings": ";;AAAA;AAEO,eAAe;AAAA,EAKpB,YAAY,EAAE,KAAK,QAAoB;AAErC,SAAK,MAAM;AACX,SAAK,OAAO;AACZ,SAAK,WAAW,QAAQ,SAAS,UAAU,KAAK;AAAA;AAAA,EAGlD,WAAW;AACT,WAAO,QAAQ,KAAK,WAAW,KAAK;AAAA;AAAA;AAbjC;AAmBA,MAAM,iBAAiB,wBAAC,UAAsB,IAAI,SAAS,QAApC;AAEvB,oBAAoB,GAAkC;AAC3D,SAAO,aAAa;AAAA;AADN;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
File without changes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../src/constants/constants.ts"],
|
|
4
4
|
"sourcesContent": ["import { isWeb } from './platform'\n\nexport const stackDefaultStyles = {\n alignItems: 'stretch',\n flexShrink: 0,\n // more accurately match react-native defaults on web\n ...(isWeb && {\n display: 'flex',\n flexBasis: 'auto',\n boxSizing: 'border-box',\n }),\n}\n"],
|
|
5
5
|
"mappings": "AAAA;AAEO,MAAM,qBAAqB;AAAA,EAChC,YAAY;AAAA,EACZ,YAAY;AAAA,KAER,SAAS;AAAA,IACX,SAAS;AAAA,IACT,WAAW;AAAA,IACX,WAAW;AAAA;AAAA;",
|
|
6
6
|
"names": []
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
var _a;
|
|
2
1
|
import { useEffect, useLayoutEffect } from "react";
|
|
3
2
|
import { Platform } from "react-native";
|
|
4
|
-
const isWeb = process.env.TAMAGUI_TARGET === "web"
|
|
3
|
+
const isWeb = process.env.TAMAGUI_TARGET === "web" ? true : Platform?.OS === "web";
|
|
5
4
|
const isSSR = isWeb && typeof window === "undefined";
|
|
6
5
|
const useIsomorphicLayoutEffect = isSSR ? useEffect : useLayoutEffect;
|
|
7
6
|
const isChrome = typeof navigator !== "undefined" && /Chrome/.test(navigator.userAgent || "");
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/constants/platform.ts"],
|
|
4
|
+
"sourcesContent": ["import { useEffect, useLayoutEffect } from 'react'\nimport { Platform } from 'react-native'\n\nexport const isWeb = process.env.TAMAGUI_TARGET === 'web' ? true : Platform?.OS === 'web'\nexport const isSSR = isWeb && typeof window === 'undefined'\nexport const useIsomorphicLayoutEffect = isSSR ? useEffect : useLayoutEffect\nexport const isChrome = typeof navigator !== 'undefined' && /Chrome/.test(navigator.userAgent || '')\nexport const supportsTouchWeb = typeof window !== 'undefined' && 'ontouchstart' in window\nexport const isTouchDevice = !isWeb || supportsTouchWeb\nexport const isWebIOS =\n isWeb &&\n typeof navigator !== 'undefined' &&\n (/iPad|iPhone|iPod/.test(navigator.platform) ||\n (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)) &&\n !window['MSStream']\n"],
|
|
5
|
+
"mappings": "AAAA;AACA;AAEO,MAAM,QAAQ,QAAQ,IAAI,mBAAmB,QAAQ,OAAO,UAAU,OAAO;AAC7E,MAAM,QAAQ,SAAS,OAAO,WAAW;AACzC,MAAM,4BAA4B,QAAQ,YAAY;AACtD,MAAM,WAAW,OAAO,cAAc,eAAe,SAAS,KAAK,UAAU,aAAa;AAC1F,MAAM,mBAAmB,OAAO,WAAW,eAAe,kBAAkB;AAC5E,MAAM,gBAAgB,CAAC,SAAS;AAChC,MAAM,WACX,SACA,OAAO,cAAc,eACpB,oBAAmB,KAAK,UAAU,aAChC,UAAU,aAAa,cAAc,UAAU,iBAAiB,MACnE,CAAC,OAAO;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
File without changes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../src/constants/pseudos.ts"],
|
|
4
4
|
"sourcesContent": ["export const pseudos = {\n focusStyle: {\n name: 'focus',\n priority: 3,\n },\n pressStyle: {\n name: 'active',\n priority: 2,\n },\n hoverStyle: {\n name: 'hover',\n priority: 1,\n },\n}\n"],
|
|
5
5
|
"mappings": "AAAO,MAAM,UAAU;AAAA,EACrB,YAAY;AAAA,IACV,MAAM;AAAA,IACN,UAAU;AAAA;AAAA,EAEZ,YAAY;AAAA,IACV,MAAM;AAAA,IACN,UAAU;AAAA;AAAA,EAEZ,YAAY;AAAA,IACV,MAAM;AAAA,IACN,UAAU;AAAA;AAAA;",
|
|
6
6
|
"names": []
|
|
File without changes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../src/constants/rnw.tsx"],
|
|
4
4
|
"sourcesContent": ["const interopRequire = (src: any) => ('default' in src ? src.default : src)\n\nexport const rnw: Record<string, any> = {}\n\n// in static mode, require them directly since we can't import react-native-web at all (it has flow stuff in it)\nif (process.env.IS_STATIC === 'is_static') {\n const createCompileableStyle = require('react-native-web/dist/cjs/exports/StyleSheet/createCompileableStyle')\n const createReactDOMStyle = require('react-native-web/dist/cjs/exports/StyleSheet/createReactDOMStyle')\n const i18Style = require('react-native-web/dist/cjs/exports/StyleSheet/i18nStyle')\n const atomic = require('react-native-web/dist/cjs/exports/StyleSheet/compile').atomic\n Object.assign(rnw, {\n createCompileableStyle,\n createReactDOMStyle,\n i18Style,\n atomic,\n })\n} else if (process.env.TAMAGUI_TARGET === 'web') {\n // when targeting web (client) import it like so\n Object.assign(rnw, interopRequire(require('react-native-web').TamaguiExports))\n}\n"],
|
|
5
5
|
"mappings": ";;AAAA,MAAM,iBAAiB,wBAAC,QAAc,aAAa,MAAM,IAAI,UAAU,KAAhD;AAEhB,MAAM,MAA2B;AAGxC,IAAI,QAAQ,IAAI,cAAc,aAAa;AACzC,QAAM,yBAAyB,QAAQ;AACvC,QAAM,sBAAsB,QAAQ;AACpC,QAAM,WAAW,QAAQ;AACzB,QAAM,SAAS,QAAQ,wDAAwD;AAC/E,SAAO,OAAO,KAAK;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,WAEO,QAAQ,IAAI,mBAAmB,OAAO;AAE/C,SAAO,OAAO,KAAK,eAAe,QAAQ,oBAAoB;AAAA;",
|
|
6
6
|
"names": []
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
2
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
3
|
import { concatClassName, stylePropsView } from "@tamagui/helpers";
|
|
4
|
+
import { useForceUpdate } from "@tamagui/use-force-update";
|
|
4
5
|
import React, {
|
|
5
6
|
Children,
|
|
6
7
|
Fragment,
|
|
@@ -12,16 +13,15 @@ import React, {
|
|
|
12
13
|
useRef,
|
|
13
14
|
useState
|
|
14
15
|
} from "react";
|
|
15
|
-
import { Text, View } from "react-native";
|
|
16
|
+
import { StyleSheet, Text, View } from "react-native";
|
|
16
17
|
import { stackDefaultStyles } from "./constants/constants";
|
|
17
18
|
import { isTouchDevice, isWeb } from "./constants/platform";
|
|
18
19
|
import { rnw } from "./constants/rnw";
|
|
19
20
|
import { onConfiguredOnce } from "./createTamagui";
|
|
20
|
-
import { addStylesUsingClassname } from "./helpers/addStylesUsingClassname";
|
|
21
|
+
import { addStylesUsingClassname, useStylesAsClassname } from "./helpers/addStylesUsingClassname";
|
|
21
22
|
import { extendStaticConfig, parseStaticConfig } from "./helpers/extendStaticConfig";
|
|
22
23
|
import { getSplitStyles } from "./helpers/getSplitStyles";
|
|
23
24
|
import { useFeatures } from "./hooks/useFeatures";
|
|
24
|
-
import { useForceUpdate } from "./hooks/useForceUpdate";
|
|
25
25
|
import { usePressable } from "./hooks/usePressable";
|
|
26
26
|
import { TextAncestorContext } from "./views/TextAncestorContext";
|
|
27
27
|
import { ThemeManagerContext } from "./views/ThemeManagerContext";
|
|
@@ -39,15 +39,47 @@ function createComponent(configIn) {
|
|
|
39
39
|
} else {
|
|
40
40
|
staticConfig = parseStaticConfig(configIn);
|
|
41
41
|
}
|
|
42
|
-
const { Component, validStyles, isText } = staticConfig;
|
|
43
|
-
const validStyleProps = validStyles
|
|
42
|
+
const { Component, validStyles, isText, isZStack } = staticConfig;
|
|
43
|
+
const validStyleProps = validStyles ?? stylePropsView;
|
|
44
44
|
let defaultProps = null;
|
|
45
45
|
let tamaguiConfig;
|
|
46
46
|
let defaultsStyle;
|
|
47
47
|
let defaultsClassName = "";
|
|
48
48
|
let initialTheme;
|
|
49
49
|
const component = forwardRef((props, forwardedRef) => {
|
|
50
|
-
|
|
50
|
+
const forceUpdate = useForceUpdate();
|
|
51
|
+
const features = useFeatures(props, { forceUpdate });
|
|
52
|
+
const manager = useContext(ThemeManagerContext);
|
|
53
|
+
const [state, set_] = useState(() => ({
|
|
54
|
+
hover: false,
|
|
55
|
+
press: false,
|
|
56
|
+
pressIn: false,
|
|
57
|
+
theme: manager.name
|
|
58
|
+
}));
|
|
59
|
+
const set = /* @__PURE__ */ __name((next) => set_((prev) => {
|
|
60
|
+
for (const key in next) {
|
|
61
|
+
if (prev[key] !== next[key]) {
|
|
62
|
+
return { ...prev, ...next };
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return prev;
|
|
66
|
+
}), "set");
|
|
67
|
+
if (process.env.NODE_ENV === "development" && !isText && isWeb) {
|
|
68
|
+
Children.toArray(props.children).forEach((item) => {
|
|
69
|
+
if (typeof item === "string") {
|
|
70
|
+
console.error(`Unexpected text node: ${item}. A text node cannot be a child of a <View>.`);
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
const hasTextAncestor = isWeb ? useContext(TextAncestorContext) : false;
|
|
75
|
+
const hostRef = useRef(null);
|
|
76
|
+
const theme = manager.theme || initialTheme;
|
|
77
|
+
const {
|
|
78
|
+
viewProps: viewPropsIn,
|
|
79
|
+
pseudos,
|
|
80
|
+
style,
|
|
81
|
+
classNames
|
|
82
|
+
} = getSplitStyles(props, staticConfig, theme);
|
|
51
83
|
const {
|
|
52
84
|
tag,
|
|
53
85
|
hitSlop,
|
|
@@ -81,34 +113,17 @@ function createComponent(configIn) {
|
|
|
81
113
|
onStartShouldSetResponderCapture,
|
|
82
114
|
onMouseDown,
|
|
83
115
|
onClick,
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
}));
|
|
95
|
-
const set = /* @__PURE__ */ __name((next) => set_((prev) => {
|
|
96
|
-
for (const key in next) {
|
|
97
|
-
if (prev[key] !== next[key]) {
|
|
98
|
-
return { ...prev, ...next };
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
return prev;
|
|
102
|
-
}), "set");
|
|
103
|
-
if (process.env.NODE_ENV === "development" && !isText && isWeb) {
|
|
104
|
-
Children.toArray(props.children).forEach((item) => {
|
|
105
|
-
if (typeof item === "string") {
|
|
106
|
-
console.error(`Unexpected text node: ${item}. A text node cannot be a child of a <View>.`);
|
|
107
|
-
}
|
|
108
|
-
});
|
|
116
|
+
accessible,
|
|
117
|
+
accessibilityRole,
|
|
118
|
+
onLayout,
|
|
119
|
+
...viewProps
|
|
120
|
+
} = viewPropsIn;
|
|
121
|
+
if (!isWeb) {
|
|
122
|
+
if (accessible)
|
|
123
|
+
viewProps.accessible = accessible;
|
|
124
|
+
if (accessibilityRole)
|
|
125
|
+
viewProps.accessibilityRole = accessibilityRole;
|
|
109
126
|
}
|
|
110
|
-
const hasTextAncestor = isWeb ? useContext(TextAncestorContext) : false;
|
|
111
|
-
const hostRef = useRef(null);
|
|
112
127
|
if (isWeb) {
|
|
113
128
|
rnw.useResponderEvents(hostRef, {
|
|
114
129
|
onMoveShouldSetResponder,
|
|
@@ -130,7 +145,6 @@ function createComponent(configIn) {
|
|
|
130
145
|
});
|
|
131
146
|
}
|
|
132
147
|
const isTracking = useRef(false);
|
|
133
|
-
const { viewProps, pseudos, style, classNames } = getSplitStyles(props, staticConfig, manager.theme || initialTheme);
|
|
134
148
|
const internal = useRef();
|
|
135
149
|
if (!internal.current) {
|
|
136
150
|
internal.current = {
|
|
@@ -139,7 +153,7 @@ function createComponent(configIn) {
|
|
|
139
153
|
}
|
|
140
154
|
useEffect(() => {
|
|
141
155
|
internal.current.isMounted = true;
|
|
142
|
-
const dispose = manager
|
|
156
|
+
const dispose = manager?.onChangeTheme((name) => {
|
|
143
157
|
if (isTracking.current) {
|
|
144
158
|
set({ theme: name });
|
|
145
159
|
}
|
|
@@ -163,18 +177,17 @@ function createComponent(configIn) {
|
|
|
163
177
|
isPressing ? pseudos.pressStyle || null : null
|
|
164
178
|
];
|
|
165
179
|
if (isWeb) {
|
|
166
|
-
const stylesClassNames =
|
|
167
|
-
const classList =
|
|
180
|
+
const stylesClassNames = useStylesAsClassname(styles);
|
|
181
|
+
const classList = isText ? [
|
|
168
182
|
defaultsClassName,
|
|
169
183
|
classNames,
|
|
170
184
|
stylesClassNames,
|
|
171
185
|
props.className
|
|
172
186
|
] : [defaultsClassName, props.className, classNames, stylesClassNames];
|
|
173
|
-
const
|
|
174
|
-
const className = concatClassName(classListFlat);
|
|
187
|
+
const className = concatClassName(...classList);
|
|
175
188
|
if (process.env.NODE_ENV === "development") {
|
|
176
189
|
if (props["debug"]) {
|
|
177
|
-
console.log("\u{1F95A} className", { style, styles,
|
|
190
|
+
console.log("\u{1F95A} className", { style, styles, classList, stylesClassNames, className });
|
|
178
191
|
}
|
|
179
192
|
}
|
|
180
193
|
viewProps.className = className;
|
|
@@ -223,7 +236,7 @@ function createComponent(configIn) {
|
|
|
223
236
|
...!isWeb && {
|
|
224
237
|
onPressOut: (e) => {
|
|
225
238
|
unPress();
|
|
226
|
-
onPressOut
|
|
239
|
+
onPressOut?.(e);
|
|
227
240
|
}
|
|
228
241
|
},
|
|
229
242
|
...isWeb && !isTouchDevice && {
|
|
@@ -238,8 +251,8 @@ function createComponent(configIn) {
|
|
|
238
251
|
if (Object.keys(next).length) {
|
|
239
252
|
set(next);
|
|
240
253
|
}
|
|
241
|
-
onHoverIn
|
|
242
|
-
onMouseEnter
|
|
254
|
+
onHoverIn?.(e);
|
|
255
|
+
onMouseEnter?.(e);
|
|
243
256
|
} : void 0,
|
|
244
257
|
onMouseLeave: attachHover || attachPress ? (e) => {
|
|
245
258
|
let next = {};
|
|
@@ -254,8 +267,8 @@ function createComponent(configIn) {
|
|
|
254
267
|
if (Object.keys(next).length) {
|
|
255
268
|
set(next);
|
|
256
269
|
}
|
|
257
|
-
onHoverOut
|
|
258
|
-
onMouseLeave
|
|
270
|
+
onHoverOut?.(e);
|
|
271
|
+
onMouseLeave?.(e);
|
|
259
272
|
} : void 0
|
|
260
273
|
},
|
|
261
274
|
onMouseDown: attachPress ? (e) => {
|
|
@@ -263,14 +276,14 @@ function createComponent(configIn) {
|
|
|
263
276
|
press: true,
|
|
264
277
|
pressIn: true
|
|
265
278
|
});
|
|
266
|
-
onPressIn
|
|
267
|
-
onMouseDown
|
|
279
|
+
onPressIn?.(e);
|
|
280
|
+
onMouseDown?.(e);
|
|
268
281
|
} : onPressIn,
|
|
269
282
|
onClick: attachPress ? (e) => {
|
|
270
|
-
onPress
|
|
271
|
-
onClick
|
|
283
|
+
onPress?.(e);
|
|
284
|
+
onClick?.(e);
|
|
272
285
|
unPress();
|
|
273
|
-
onPressOut
|
|
286
|
+
onPressOut?.(e);
|
|
274
287
|
} : onPressOut
|
|
275
288
|
} : null;
|
|
276
289
|
if (events) {
|
|
@@ -287,10 +300,11 @@ function createComponent(configIn) {
|
|
|
287
300
|
Object.assign(viewProps, events);
|
|
288
301
|
}
|
|
289
302
|
}
|
|
290
|
-
const
|
|
303
|
+
const childEls = spacedChildren({
|
|
291
304
|
children,
|
|
292
305
|
space,
|
|
293
|
-
flexDirection: props.flexDirection ||
|
|
306
|
+
flexDirection: props.flexDirection || defaultProps?.flexDirection,
|
|
307
|
+
isZStack
|
|
294
308
|
});
|
|
295
309
|
let content;
|
|
296
310
|
if (isWeb && rnw) {
|
|
@@ -298,11 +312,11 @@ function createComponent(configIn) {
|
|
|
298
312
|
const className = domProps.className && domProps.className !== viewProps.className ? `${domProps.className} ${viewProps.className}` : viewProps.className;
|
|
299
313
|
Object.assign(viewProps, domProps);
|
|
300
314
|
viewProps.className = className;
|
|
301
|
-
content = createElement(ViewComponent, viewProps,
|
|
315
|
+
content = createElement(ViewComponent, viewProps, childEls);
|
|
302
316
|
} else {
|
|
303
|
-
content = createElement(ViewComponent, viewProps,
|
|
317
|
+
content = createElement(ViewComponent, viewProps, childEls);
|
|
304
318
|
}
|
|
305
|
-
const shouldWrapTextAncestor = isWeb &&
|
|
319
|
+
const shouldWrapTextAncestor = isWeb && isText && !hasTextAncestor;
|
|
306
320
|
if (shouldWrapTextAncestor) {
|
|
307
321
|
content = createElement(TextAncestorContext.Provider, { value: true }, content);
|
|
308
322
|
}
|
|
@@ -311,8 +325,8 @@ function createComponent(configIn) {
|
|
|
311
325
|
viewProps["debug"] = true;
|
|
312
326
|
console.log("\u{1F95A} props in:", props);
|
|
313
327
|
console.log("\u{1F95A} props out:", viewProps);
|
|
314
|
-
console.log(
|
|
315
|
-
console.log("\u{1F95A} etc:", { shouldAttach, ViewComponent, viewProps, styles, pseudos, content,
|
|
328
|
+
console.log(props.onClick?.toString());
|
|
329
|
+
console.log("\u{1F95A} etc:", { shouldAttach, ViewComponent, viewProps, styles, pseudos, content, childEls });
|
|
316
330
|
if (isWeb) {
|
|
317
331
|
console.log("\u{1F95A} component info", { staticConfig, tamaguiConfig });
|
|
318
332
|
}
|
|
@@ -321,7 +335,6 @@ function createComponent(configIn) {
|
|
|
321
335
|
return /* @__PURE__ */ React.createElement(React.Fragment, null, features, content);
|
|
322
336
|
});
|
|
323
337
|
onConfiguredOnce((conf) => {
|
|
324
|
-
var _a;
|
|
325
338
|
tamaguiConfig = conf;
|
|
326
339
|
initialTheme = conf.themes[conf.defaultTheme || Object.keys(conf.themes)[0]];
|
|
327
340
|
const next = getSplitStyles(staticConfig.defaultProps, staticConfig, initialTheme, true);
|
|
@@ -331,14 +344,17 @@ function createComponent(configIn) {
|
|
|
331
344
|
}
|
|
332
345
|
defaultsClassName += addStylesUsingClassname([next.style, next.pseudos]);
|
|
333
346
|
} else {
|
|
334
|
-
|
|
347
|
+
if (!hasWarnedOnce) {
|
|
348
|
+
hasWarnedOnce = true;
|
|
349
|
+
console.log("\u26A0\uFE0F TODO account for default styles for media queries");
|
|
350
|
+
}
|
|
335
351
|
}
|
|
336
352
|
component.defaultProps = {
|
|
337
353
|
...next.viewProps,
|
|
338
354
|
...component.defaultProps
|
|
339
355
|
};
|
|
340
356
|
if (process.env.NODE_ENV === "development") {
|
|
341
|
-
if (
|
|
357
|
+
if (staticConfig.defaultProps?.debug) {
|
|
342
358
|
console.log("tamagui debug component:", next, defaultsClassName, component.defaultProps);
|
|
343
359
|
}
|
|
344
360
|
}
|
|
@@ -348,25 +364,33 @@ function createComponent(configIn) {
|
|
|
348
364
|
...staticConfig
|
|
349
365
|
};
|
|
350
366
|
const res = component;
|
|
351
|
-
res["extractable"] = (Component2) => {
|
|
367
|
+
res["extractable"] = (Component2, conf) => {
|
|
352
368
|
Component2["staticConfig"] = extendStaticConfig(res, {
|
|
369
|
+
...conf,
|
|
353
370
|
neverFlatten: true,
|
|
354
|
-
defaultProps:
|
|
371
|
+
defaultProps: {
|
|
372
|
+
...Component2.defaultProps,
|
|
373
|
+
...conf?.defaultProps
|
|
374
|
+
}
|
|
355
375
|
});
|
|
356
376
|
return Component2;
|
|
357
377
|
};
|
|
358
378
|
return res;
|
|
359
379
|
}
|
|
360
380
|
__name(createComponent, "createComponent");
|
|
381
|
+
let hasWarnedOnce = false;
|
|
361
382
|
const Spacer = createComponent({
|
|
362
|
-
defaultProps:
|
|
383
|
+
defaultProps: {
|
|
384
|
+
...stackDefaultStyles,
|
|
385
|
+
size: true
|
|
386
|
+
},
|
|
363
387
|
variants: {
|
|
364
388
|
size: {
|
|
365
389
|
"...size": (size, { tokens }) => {
|
|
366
|
-
|
|
390
|
+
size = size == true ? "$true" : size;
|
|
367
391
|
return {
|
|
368
|
-
width:
|
|
369
|
-
height:
|
|
392
|
+
width: tokens.size[size] ?? size,
|
|
393
|
+
height: tokens.size[size] ?? size
|
|
370
394
|
};
|
|
371
395
|
}
|
|
372
396
|
},
|
|
@@ -381,12 +405,12 @@ const Spacer = createComponent({
|
|
|
381
405
|
}
|
|
382
406
|
});
|
|
383
407
|
function spacedChildren({
|
|
408
|
+
isZStack,
|
|
384
409
|
children,
|
|
385
410
|
space,
|
|
386
411
|
flexDirection
|
|
387
412
|
}) {
|
|
388
|
-
|
|
389
|
-
if (!space) {
|
|
413
|
+
if (!space && !isZStack) {
|
|
390
414
|
return children;
|
|
391
415
|
}
|
|
392
416
|
const childrenList = Children.toArray(children);
|
|
@@ -399,25 +423,38 @@ function spacedChildren({
|
|
|
399
423
|
if (child === null || child === void 0) {
|
|
400
424
|
continue;
|
|
401
425
|
}
|
|
402
|
-
const key = `${
|
|
426
|
+
const key = `${child?.["key"] ?? index}`;
|
|
403
427
|
next.push(/* @__PURE__ */ React.createElement(Fragment, {
|
|
404
428
|
key
|
|
405
|
-
}, child));
|
|
406
|
-
if (
|
|
429
|
+
}, isZStack ? /* @__PURE__ */ React.createElement(Absolute, null, child) : child));
|
|
430
|
+
if (child?.["type"]?.["isVisuallyHidden"]) {
|
|
407
431
|
continue;
|
|
408
432
|
}
|
|
409
|
-
if (index
|
|
410
|
-
|
|
433
|
+
if (index !== len - 1) {
|
|
434
|
+
if (space) {
|
|
435
|
+
next.push(/* @__PURE__ */ React.createElement(Spacer, {
|
|
436
|
+
key: `${key}_spacer`,
|
|
437
|
+
direction: flexDirection === "row" || flexDirection === "row-reverse" ? "horizontal" : "vertical",
|
|
438
|
+
size: space
|
|
439
|
+
}));
|
|
440
|
+
}
|
|
411
441
|
}
|
|
412
|
-
next.push(/* @__PURE__ */ React.createElement(Spacer, {
|
|
413
|
-
key: `${key}_spacer`,
|
|
414
|
-
direction: flexDirection === "row" || flexDirection === "row-reverse" ? "horizontal" : "vertical",
|
|
415
|
-
size: space
|
|
416
|
-
}));
|
|
417
442
|
}
|
|
418
443
|
return next;
|
|
419
444
|
}
|
|
420
445
|
__name(spacedChildren, "spacedChildren");
|
|
446
|
+
const Absolute = /* @__PURE__ */ __name(({ children }) => /* @__PURE__ */ React.createElement(View, {
|
|
447
|
+
style: sheet.fullscreen
|
|
448
|
+
}, children), "Absolute");
|
|
449
|
+
const sheet = StyleSheet.create({
|
|
450
|
+
fullscreen: {
|
|
451
|
+
position: "absolute",
|
|
452
|
+
top: 0,
|
|
453
|
+
left: 0,
|
|
454
|
+
right: 0,
|
|
455
|
+
bottom: 0
|
|
456
|
+
}
|
|
457
|
+
});
|
|
421
458
|
export {
|
|
422
459
|
Spacer,
|
|
423
460
|
createComponent,
|