@tamagui/core 1.12.2 → 1.13.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 +77 -0
- package/dist/cjs/Tamagui.js.map +7 -0
- package/dist/cjs/addTheme.js +78 -0
- package/dist/cjs/addTheme.js.map +7 -0
- package/dist/cjs/config.js +91 -0
- package/dist/cjs/config.js.map +7 -0
- package/dist/cjs/constants/constants.js +49 -0
- package/dist/cjs/constants/constants.js.map +7 -0
- package/dist/cjs/constants/isDevTools.js +37 -0
- package/dist/cjs/constants/isDevTools.js.map +7 -0
- package/dist/cjs/contexts/ButtonNestingContext.js +30 -0
- package/dist/cjs/contexts/ButtonNestingContext.js.map +7 -0
- package/dist/cjs/contexts/FontLanguageContext.js +30 -0
- package/dist/cjs/contexts/FontLanguageContext.js.map +7 -0
- package/dist/cjs/contexts/TextAncestorContext.js +30 -0
- package/dist/cjs/contexts/TextAncestorContext.js.map +7 -0
- package/dist/cjs/createComponent.js +991 -0
- package/dist/cjs/createComponent.js.map +7 -0
- package/dist/cjs/createFont.js +69 -0
- package/dist/cjs/createFont.js.map +7 -0
- package/dist/cjs/createFont.web.test.js +125 -0
- package/dist/cjs/createFont.web.test.js.map +7 -0
- package/dist/cjs/createShorthands.js +31 -0
- package/dist/cjs/createShorthands.js.map +7 -0
- package/dist/cjs/createTamagui.js +202 -0
- package/dist/cjs/createTamagui.js.map +7 -0
- package/dist/cjs/createTheme.js +31 -0
- package/dist/cjs/createTheme.js.map +7 -0
- package/dist/cjs/createTokens.js +39 -0
- package/dist/cjs/createTokens.js.map +7 -0
- package/dist/cjs/createTokens.web.test.js +28 -0
- package/dist/cjs/createTokens.web.test.js.map +7 -0
- package/dist/cjs/createVariable.js +111 -0
- package/dist/cjs/createVariable.js.map +7 -0
- package/dist/cjs/createVariable.web.test.js +7 -0
- package/dist/cjs/createVariable.web.test.js.map +7 -0
- package/dist/cjs/createVariables.js +60 -0
- package/dist/cjs/createVariables.js.map +7 -0
- package/dist/cjs/helpers/RNComponents.js +40 -0
- package/dist/cjs/helpers/RNComponents.js.map +7 -0
- package/dist/cjs/helpers/ThemeManager.js +234 -0
- package/dist/cjs/helpers/ThemeManager.js.map +7 -0
- package/dist/cjs/helpers/ThemeManager.test.js +465 -0
- package/dist/cjs/helpers/ThemeManager.test.js.map +7 -0
- package/dist/cjs/helpers/ThemeManagerContext.js +30 -0
- package/dist/cjs/helpers/ThemeManagerContext.js.map +7 -0
- package/dist/cjs/helpers/createMediaStyle.js +67 -0
- package/dist/cjs/helpers/createMediaStyle.js.map +7 -0
- package/dist/cjs/helpers/createPropMapper.js +411 -0
- package/dist/cjs/helpers/createPropMapper.js.map +7 -0
- package/dist/cjs/helpers/createProxy.js +43 -0
- package/dist/cjs/helpers/createProxy.js.map +7 -0
- package/dist/cjs/helpers/expandStyle.js +95 -0
- package/dist/cjs/helpers/expandStyle.js.map +7 -0
- package/dist/cjs/helpers/expandStyles.js +126 -0
- package/dist/cjs/helpers/expandStyles.js.map +7 -0
- package/dist/cjs/helpers/extendStaticConfig.js +91 -0
- package/dist/cjs/helpers/extendStaticConfig.js.map +7 -0
- package/dist/cjs/helpers/fixNativeShadow.js +30 -0
- package/dist/cjs/helpers/fixNativeShadow.js.map +7 -0
- package/dist/cjs/helpers/getAnimationDriver.js +32 -0
- package/dist/cjs/helpers/getAnimationDriver.js.map +7 -0
- package/dist/cjs/helpers/getExpandedShorthands.js +40 -0
- package/dist/cjs/helpers/getExpandedShorthands.js.map +7 -0
- package/dist/cjs/helpers/getFontLanguage.js +29 -0
- package/dist/cjs/helpers/getFontLanguage.js.map +7 -0
- package/dist/cjs/helpers/getSplitStyles.js +840 -0
- package/dist/cjs/helpers/getSplitStyles.js.map +7 -0
- package/dist/cjs/helpers/getStylesAtomic.js +226 -0
- package/dist/cjs/helpers/getStylesAtomic.js.map +7 -0
- package/dist/cjs/helpers/getStylesAtomic.native.js +35 -0
- package/dist/cjs/helpers/getStylesAtomic.native.js.map +7 -0
- package/dist/cjs/helpers/getThemeCSSRules.js +110 -0
- package/dist/cjs/helpers/getThemeCSSRules.js.map +7 -0
- package/dist/cjs/helpers/getThemeCSSRules.native.js +31 -0
- package/dist/cjs/helpers/getThemeCSSRules.native.js.map +7 -0
- package/dist/cjs/helpers/getVariantExtras.js +92 -0
- package/dist/cjs/helpers/getVariantExtras.js.map +7 -0
- package/dist/cjs/helpers/insertStyleRule.js +218 -0
- package/dist/cjs/helpers/insertStyleRule.js.map +7 -0
- package/dist/cjs/helpers/isObj.js +29 -0
- package/dist/cjs/helpers/isObj.js.map +7 -0
- package/dist/cjs/helpers/isTamaguiComponent.js +32 -0
- package/dist/cjs/helpers/isTamaguiComponent.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 +42 -0
- package/dist/cjs/helpers/matchMedia.js.map +7 -0
- package/dist/cjs/helpers/matchMedia.native.js +48 -0
- package/dist/cjs/helpers/matchMedia.native.js.map +7 -0
- package/dist/cjs/helpers/mergeProps.js +54 -0
- package/dist/cjs/helpers/mergeProps.js.map +7 -0
- package/dist/cjs/helpers/mergeTransform.js +47 -0
- package/dist/cjs/helpers/mergeTransform.js.map +7 -0
- package/dist/cjs/helpers/normalizeColor.js +71 -0
- package/dist/cjs/helpers/normalizeColor.js.map +7 -0
- package/dist/cjs/helpers/normalizeValueWithProperty.js +138 -0
- package/dist/cjs/helpers/normalizeValueWithProperty.js.map +7 -0
- package/dist/cjs/helpers/proxyThemeVariables.js +40 -0
- package/dist/cjs/helpers/proxyThemeVariables.js.map +7 -0
- package/dist/cjs/helpers/pseudoDescriptors.js +53 -0
- package/dist/cjs/helpers/pseudoDescriptors.js.map +7 -0
- package/dist/cjs/helpers/registerCSSVariable.js +40 -0
- package/dist/cjs/helpers/registerCSSVariable.js.map +7 -0
- package/dist/cjs/helpers/themeable.js +62 -0
- package/dist/cjs/helpers/themeable.js.map +7 -0
- package/dist/cjs/helpers/themes.js +78 -0
- package/dist/cjs/helpers/themes.js.map +7 -0
- package/dist/cjs/helpers/timer.js +35 -0
- package/dist/cjs/helpers/timer.js.map +7 -0
- package/dist/cjs/helpers/useShallowSetState.js +58 -0
- package/dist/cjs/helpers/useShallowSetState.js.map +7 -0
- package/dist/cjs/helpers/withStaticProperties.js +32 -0
- package/dist/cjs/helpers/withStaticProperties.js.map +7 -0
- package/dist/cjs/hooks/getThemeUnwrapped.js +34 -0
- package/dist/cjs/hooks/getThemeUnwrapped.js.map +7 -0
- package/dist/cjs/hooks/useId.js +29 -0
- package/dist/cjs/hooks/useId.js.map +7 -0
- package/dist/cjs/hooks/useIsTouchDevice.js +33 -0
- package/dist/cjs/hooks/useIsTouchDevice.js.map +7 -0
- package/dist/cjs/hooks/useMedia.js +262 -0
- package/dist/cjs/hooks/useMedia.js.map +7 -0
- package/dist/cjs/hooks/useSafeRef.js +59 -0
- package/dist/cjs/hooks/useSafeRef.js.map +7 -0
- package/dist/cjs/hooks/useServerHooks.js +36 -0
- package/dist/cjs/hooks/useServerHooks.js.map +7 -0
- package/dist/cjs/hooks/useTheme.js +234 -0
- package/dist/cjs/hooks/useTheme.js.map +7 -0
- package/dist/cjs/hooks/useThemeName.js +52 -0
- package/dist/cjs/hooks/useThemeName.js.map +7 -0
- package/dist/cjs/insertFont.js +93 -0
- package/dist/cjs/insertFont.js.map +7 -0
- package/dist/cjs/setupReactNative.js +50 -0
- package/dist/cjs/setupReactNative.js.map +7 -0
- package/dist/cjs/static.js +20 -0
- package/dist/cjs/static.js.map +7 -0
- package/dist/cjs/styled.js +95 -0
- package/dist/cjs/styled.js.map +7 -0
- package/dist/cjs/types-rnw.js +17 -0
- package/dist/cjs/types-rnw.js.map +7 -0
- package/dist/cjs/types.js +17 -0
- package/dist/cjs/types.js.map +7 -0
- package/dist/cjs/updateTheme.js +47 -0
- package/dist/cjs/updateTheme.js.map +7 -0
- package/dist/cjs/views/FontLanguage.js +41 -0
- package/dist/cjs/views/FontLanguage.js.map +7 -0
- package/dist/cjs/views/FontLanguage.native.js +35 -0
- package/dist/cjs/views/FontLanguage.native.js.map +7 -0
- package/dist/cjs/views/FontLanguage.types.js +17 -0
- package/dist/cjs/views/FontLanguage.types.js.map +7 -0
- package/dist/cjs/views/Slot.js +92 -0
- package/dist/cjs/views/Slot.js.map +7 -0
- package/dist/cjs/views/Stack.js +38 -0
- package/dist/cjs/views/Stack.js.map +7 -0
- package/dist/cjs/views/Stack.web.test.js +22 -0
- package/dist/cjs/views/Stack.web.test.js.map +7 -0
- package/dist/cjs/views/TamaguiProvider.js +90 -0
- package/dist/cjs/views/TamaguiProvider.js.map +7 -0
- package/dist/cjs/views/Text.js +94 -0
- package/dist/cjs/views/Text.js.map +7 -0
- package/dist/cjs/views/Theme.js +88 -0
- package/dist/cjs/views/Theme.js.map +7 -0
- package/dist/cjs/views/ThemeProvider.js +70 -0
- package/dist/cjs/views/ThemeProvider.js.map +7 -0
- package/dist/esm/Tamagui.js +41 -0
- package/dist/esm/Tamagui.js.map +7 -0
- package/dist/esm/Tamagui.mjs +41 -0
- package/dist/esm/Tamagui.mjs.map +7 -0
- package/dist/esm/addTheme.js +54 -0
- package/dist/esm/addTheme.js.map +7 -0
- package/dist/esm/addTheme.mjs +54 -0
- package/dist/esm/addTheme.mjs.map +7 -0
- package/dist/esm/config.js +58 -0
- package/dist/esm/config.js.map +7 -0
- package/dist/esm/config.mjs +58 -0
- package/dist/esm/config.mjs.map +7 -0
- package/dist/esm/constants/constants.js +22 -0
- package/dist/esm/constants/constants.js.map +7 -0
- package/dist/esm/constants/constants.mjs +22 -0
- package/dist/esm/constants/constants.mjs.map +7 -0
- package/dist/esm/constants/isDevTools.js +13 -0
- package/dist/esm/constants/isDevTools.js.map +7 -0
- package/dist/esm/constants/isDevTools.mjs +13 -0
- package/dist/esm/constants/isDevTools.mjs.map +7 -0
- package/dist/esm/contexts/ButtonNestingContext.js +6 -0
- package/dist/esm/contexts/ButtonNestingContext.js.map +7 -0
- package/dist/esm/contexts/ButtonNestingContext.mjs +6 -0
- package/dist/esm/contexts/ButtonNestingContext.mjs.map +7 -0
- package/dist/esm/contexts/FontLanguageContext.js +6 -0
- package/dist/esm/contexts/FontLanguageContext.js.map +7 -0
- package/dist/esm/contexts/FontLanguageContext.mjs +6 -0
- package/dist/esm/contexts/FontLanguageContext.mjs.map +7 -0
- package/dist/esm/contexts/TextAncestorContext.js +6 -0
- package/dist/esm/contexts/TextAncestorContext.js.map +7 -0
- package/dist/esm/contexts/TextAncestorContext.mjs +6 -0
- package/dist/esm/contexts/TextAncestorContext.mjs.map +7 -0
- package/dist/esm/createComponent.js +973 -0
- package/dist/esm/createComponent.js.map +7 -0
- package/dist/esm/createComponent.mjs +973 -0
- package/dist/esm/createComponent.mjs.map +7 -0
- package/dist/esm/createFont.js +45 -0
- package/dist/esm/createFont.js.map +7 -0
- package/dist/esm/createFont.mjs +45 -0
- package/dist/esm/createFont.mjs.map +7 -0
- package/dist/esm/createFont.web.test.js +124 -0
- package/dist/esm/createFont.web.test.js.map +7 -0
- package/dist/esm/createFont.web.test.mjs +124 -0
- package/dist/esm/createFont.web.test.mjs.map +7 -0
- package/dist/esm/createShorthands.js +7 -0
- package/dist/esm/createShorthands.js.map +7 -0
- package/dist/esm/createShorthands.mjs +7 -0
- package/dist/esm/createShorthands.mjs.map +7 -0
- package/dist/esm/createTamagui.js +186 -0
- package/dist/esm/createTamagui.js.map +7 -0
- package/dist/esm/createTamagui.mjs +186 -0
- package/dist/esm/createTamagui.mjs.map +7 -0
- package/dist/esm/createTheme.js +7 -0
- package/dist/esm/createTheme.js.map +7 -0
- package/dist/esm/createTheme.mjs +7 -0
- package/dist/esm/createTheme.mjs.map +7 -0
- package/dist/esm/createTokens.js +15 -0
- package/dist/esm/createTokens.js.map +7 -0
- package/dist/esm/createTokens.mjs +15 -0
- package/dist/esm/createTokens.mjs.map +7 -0
- package/dist/esm/createTokens.web.test.js +27 -0
- package/dist/esm/createTokens.web.test.js.map +7 -0
- package/dist/esm/createTokens.web.test.mjs +27 -0
- package/dist/esm/createTokens.web.test.mjs.map +7 -0
- package/dist/esm/createVariable.js +78 -0
- package/dist/esm/createVariable.js.map +7 -0
- package/dist/esm/createVariable.mjs +78 -0
- package/dist/esm/createVariable.mjs.map +7 -0
- package/dist/esm/createVariable.web.test.js +6 -0
- package/dist/esm/createVariable.web.test.js.map +7 -0
- package/dist/esm/createVariable.web.test.mjs +6 -0
- package/dist/esm/createVariable.web.test.mjs.map +7 -0
- package/dist/esm/createVariables.js +35 -0
- package/dist/esm/createVariables.js.map +7 -0
- package/dist/esm/createVariables.mjs +35 -0
- package/dist/esm/createVariables.mjs.map +7 -0
- package/dist/esm/helpers/RNComponents.js +16 -0
- package/dist/esm/helpers/RNComponents.js.map +7 -0
- package/dist/esm/helpers/RNComponents.mjs +16 -0
- package/dist/esm/helpers/RNComponents.mjs.map +7 -0
- package/dist/esm/helpers/ThemeManager.js +209 -0
- package/dist/esm/helpers/ThemeManager.js.map +7 -0
- package/dist/esm/helpers/ThemeManager.mjs +209 -0
- package/dist/esm/helpers/ThemeManager.mjs.map +7 -0
- package/dist/esm/helpers/ThemeManager.test.js +464 -0
- package/dist/esm/helpers/ThemeManager.test.js.map +7 -0
- package/dist/esm/helpers/ThemeManager.test.mjs +464 -0
- package/dist/esm/helpers/ThemeManager.test.mjs.map +7 -0
- package/dist/esm/helpers/ThemeManagerContext.js +6 -0
- package/dist/esm/helpers/ThemeManagerContext.js.map +7 -0
- package/dist/esm/helpers/ThemeManagerContext.mjs +6 -0
- package/dist/esm/helpers/ThemeManagerContext.mjs.map +7 -0
- package/dist/esm/helpers/createMediaStyle.js +42 -0
- package/dist/esm/helpers/createMediaStyle.js.map +7 -0
- package/dist/esm/helpers/createMediaStyle.mjs +42 -0
- package/dist/esm/helpers/createMediaStyle.mjs.map +7 -0
- package/dist/esm/helpers/createPropMapper.js +384 -0
- package/dist/esm/helpers/createPropMapper.js.map +7 -0
- package/dist/esm/helpers/createPropMapper.mjs +384 -0
- package/dist/esm/helpers/createPropMapper.mjs.map +7 -0
- package/dist/esm/helpers/createProxy.js +19 -0
- package/dist/esm/helpers/createProxy.js.map +7 -0
- package/dist/esm/helpers/createProxy.mjs +19 -0
- package/dist/esm/helpers/createProxy.mjs.map +7 -0
- package/dist/esm/helpers/expandStyle.js +71 -0
- package/dist/esm/helpers/expandStyle.js.map +7 -0
- package/dist/esm/helpers/expandStyle.mjs +71 -0
- package/dist/esm/helpers/expandStyle.mjs.map +7 -0
- package/dist/esm/helpers/expandStyles.js +90 -0
- package/dist/esm/helpers/expandStyles.js.map +7 -0
- package/dist/esm/helpers/expandStyles.mjs +90 -0
- package/dist/esm/helpers/expandStyles.mjs.map +7 -0
- package/dist/esm/helpers/extendStaticConfig.js +66 -0
- package/dist/esm/helpers/extendStaticConfig.js.map +7 -0
- package/dist/esm/helpers/extendStaticConfig.mjs +66 -0
- package/dist/esm/helpers/extendStaticConfig.mjs.map +7 -0
- package/dist/esm/helpers/fixNativeShadow.js +6 -0
- package/dist/esm/helpers/fixNativeShadow.js.map +7 -0
- package/dist/esm/helpers/fixNativeShadow.mjs +6 -0
- package/dist/esm/helpers/fixNativeShadow.mjs.map +7 -0
- package/dist/esm/helpers/getAnimationDriver.js +8 -0
- package/dist/esm/helpers/getAnimationDriver.js.map +7 -0
- package/dist/esm/helpers/getAnimationDriver.mjs +8 -0
- package/dist/esm/helpers/getAnimationDriver.mjs.map +7 -0
- package/dist/esm/helpers/getExpandedShorthands.js +16 -0
- package/dist/esm/helpers/getExpandedShorthands.js.map +7 -0
- package/dist/esm/helpers/getExpandedShorthands.mjs +16 -0
- package/dist/esm/helpers/getExpandedShorthands.mjs.map +7 -0
- package/dist/esm/helpers/getFontLanguage.js +5 -0
- package/dist/esm/helpers/getFontLanguage.js.map +7 -0
- package/dist/esm/helpers/getFontLanguage.mjs +5 -0
- package/dist/esm/helpers/getFontLanguage.mjs.map +7 -0
- package/dist/esm/helpers/getSplitStyles.js +839 -0
- package/dist/esm/helpers/getSplitStyles.js.map +7 -0
- package/dist/esm/helpers/getSplitStyles.mjs +839 -0
- package/dist/esm/helpers/getSplitStyles.mjs.map +7 -0
- package/dist/esm/helpers/getStylesAtomic.js +200 -0
- package/dist/esm/helpers/getStylesAtomic.js.map +7 -0
- package/dist/esm/helpers/getStylesAtomic.mjs +200 -0
- package/dist/esm/helpers/getStylesAtomic.mjs.map +7 -0
- package/dist/esm/helpers/getStylesAtomic.native.js +10 -0
- package/dist/esm/helpers/getStylesAtomic.native.js.map +7 -0
- package/dist/esm/helpers/getStylesAtomic.native.mjs +10 -0
- package/dist/esm/helpers/getStylesAtomic.native.mjs.map +7 -0
- package/dist/esm/helpers/getThemeCSSRules.js +86 -0
- package/dist/esm/helpers/getThemeCSSRules.js.map +7 -0
- package/dist/esm/helpers/getThemeCSSRules.mjs +86 -0
- package/dist/esm/helpers/getThemeCSSRules.mjs.map +7 -0
- package/dist/esm/helpers/getThemeCSSRules.native.js +7 -0
- package/dist/esm/helpers/getThemeCSSRules.native.js.map +7 -0
- package/dist/esm/helpers/getThemeCSSRules.native.mjs +7 -0
- package/dist/esm/helpers/getThemeCSSRules.native.mjs.map +7 -0
- package/dist/esm/helpers/getVariantExtras.js +67 -0
- package/dist/esm/helpers/getVariantExtras.js.map +7 -0
- package/dist/esm/helpers/getVariantExtras.mjs +67 -0
- package/dist/esm/helpers/getVariantExtras.mjs.map +7 -0
- package/dist/esm/helpers/insertStyleRule.js +186 -0
- package/dist/esm/helpers/insertStyleRule.js.map +7 -0
- package/dist/esm/helpers/insertStyleRule.mjs +186 -0
- package/dist/esm/helpers/insertStyleRule.mjs.map +7 -0
- package/dist/esm/helpers/isObj.js +5 -0
- package/dist/esm/helpers/isObj.js.map +7 -0
- package/dist/esm/helpers/isObj.mjs +5 -0
- package/dist/esm/helpers/isObj.mjs.map +7 -0
- package/dist/esm/helpers/isTamaguiComponent.js +8 -0
- package/dist/esm/helpers/isTamaguiComponent.js.map +7 -0
- package/dist/esm/helpers/isTamaguiComponent.mjs +8 -0
- package/dist/esm/helpers/isTamaguiComponent.mjs.map +7 -0
- package/dist/esm/helpers/isTamaguiElement.js +9 -0
- package/dist/esm/helpers/isTamaguiElement.js.map +7 -0
- package/dist/esm/helpers/isTamaguiElement.mjs +9 -0
- package/dist/esm/helpers/isTamaguiElement.mjs.map +7 -0
- package/dist/esm/helpers/matchMedia.js +17 -0
- package/dist/esm/helpers/matchMedia.js.map +7 -0
- package/dist/esm/helpers/matchMedia.mjs +17 -0
- package/dist/esm/helpers/matchMedia.mjs.map +7 -0
- package/dist/esm/helpers/matchMedia.native.js +23 -0
- package/dist/esm/helpers/matchMedia.native.js.map +7 -0
- package/dist/esm/helpers/matchMedia.native.mjs +23 -0
- package/dist/esm/helpers/matchMedia.native.mjs.map +7 -0
- package/dist/esm/helpers/mergeProps.js +30 -0
- package/dist/esm/helpers/mergeProps.js.map +7 -0
- package/dist/esm/helpers/mergeProps.mjs +30 -0
- package/dist/esm/helpers/mergeProps.mjs.map +7 -0
- package/dist/esm/helpers/mergeTransform.js +21 -0
- package/dist/esm/helpers/mergeTransform.js.map +7 -0
- package/dist/esm/helpers/mergeTransform.mjs +21 -0
- package/dist/esm/helpers/mergeTransform.mjs.map +7 -0
- package/dist/esm/helpers/normalizeColor.js +36 -0
- package/dist/esm/helpers/normalizeColor.js.map +7 -0
- package/dist/esm/helpers/normalizeColor.mjs +36 -0
- package/dist/esm/helpers/normalizeColor.mjs.map +7 -0
- package/dist/esm/helpers/normalizeValueWithProperty.js +113 -0
- package/dist/esm/helpers/normalizeValueWithProperty.js.map +7 -0
- package/dist/esm/helpers/normalizeValueWithProperty.mjs +113 -0
- package/dist/esm/helpers/normalizeValueWithProperty.mjs.map +7 -0
- package/dist/esm/helpers/proxyThemeVariables.js +16 -0
- package/dist/esm/helpers/proxyThemeVariables.js.map +7 -0
- package/dist/esm/helpers/proxyThemeVariables.mjs +16 -0
- package/dist/esm/helpers/proxyThemeVariables.mjs.map +7 -0
- package/dist/esm/helpers/pseudoDescriptors.js +29 -0
- package/dist/esm/helpers/pseudoDescriptors.js.map +7 -0
- package/dist/esm/helpers/pseudoDescriptors.mjs +29 -0
- package/dist/esm/helpers/pseudoDescriptors.mjs.map +7 -0
- package/dist/esm/helpers/registerCSSVariable.js +14 -0
- package/dist/esm/helpers/registerCSSVariable.js.map +7 -0
- package/dist/esm/helpers/registerCSSVariable.mjs +14 -0
- package/dist/esm/helpers/registerCSSVariable.mjs.map +7 -0
- package/dist/esm/helpers/themeable.js +28 -0
- package/dist/esm/helpers/themeable.js.map +7 -0
- package/dist/esm/helpers/themeable.mjs +28 -0
- package/dist/esm/helpers/themeable.mjs.map +7 -0
- package/dist/esm/helpers/themes.js +53 -0
- package/dist/esm/helpers/themes.js.map +7 -0
- package/dist/esm/helpers/themes.mjs +53 -0
- package/dist/esm/helpers/themes.mjs.map +7 -0
- package/dist/esm/helpers/timer.js +11 -0
- package/dist/esm/helpers/timer.js.map +7 -0
- package/dist/esm/helpers/timer.mjs +11 -0
- package/dist/esm/helpers/timer.mjs.map +7 -0
- package/dist/esm/helpers/useShallowSetState.js +34 -0
- package/dist/esm/helpers/useShallowSetState.js.map +7 -0
- package/dist/esm/helpers/useShallowSetState.mjs +34 -0
- package/dist/esm/helpers/useShallowSetState.mjs.map +7 -0
- package/dist/esm/helpers/withStaticProperties.js +8 -0
- package/dist/esm/helpers/withStaticProperties.js.map +7 -0
- package/dist/esm/helpers/withStaticProperties.mjs +8 -0
- package/dist/esm/helpers/withStaticProperties.mjs.map +7 -0
- package/dist/esm/hooks/getThemeUnwrapped.js +9 -0
- package/dist/esm/hooks/getThemeUnwrapped.js.map +7 -0
- package/dist/esm/hooks/getThemeUnwrapped.mjs +9 -0
- package/dist/esm/hooks/getThemeUnwrapped.mjs.map +7 -0
- package/dist/esm/hooks/useId.js +5 -0
- package/dist/esm/hooks/useId.js.map +7 -0
- package/dist/esm/hooks/useId.mjs +5 -0
- package/dist/esm/hooks/useId.mjs.map +7 -0
- package/dist/esm/hooks/useIsTouchDevice.js +9 -0
- package/dist/esm/hooks/useIsTouchDevice.js.map +7 -0
- package/dist/esm/hooks/useIsTouchDevice.mjs +9 -0
- package/dist/esm/hooks/useIsTouchDevice.mjs.map +7 -0
- package/dist/esm/hooks/useMedia.js +224 -0
- package/dist/esm/hooks/useMedia.js.map +7 -0
- package/dist/esm/hooks/useMedia.mjs +224 -0
- package/dist/esm/hooks/useMedia.mjs.map +7 -0
- package/dist/esm/hooks/useSafeRef.js +35 -0
- package/dist/esm/hooks/useSafeRef.js.map +7 -0
- package/dist/esm/hooks/useSafeRef.mjs +35 -0
- package/dist/esm/hooks/useSafeRef.mjs.map +7 -0
- package/dist/esm/hooks/useServerHooks.js +11 -0
- package/dist/esm/hooks/useServerHooks.js.map +7 -0
- package/dist/esm/hooks/useServerHooks.mjs +11 -0
- package/dist/esm/hooks/useServerHooks.mjs.map +7 -0
- package/dist/esm/hooks/useTheme.js +209 -0
- package/dist/esm/hooks/useTheme.js.map +7 -0
- package/dist/esm/hooks/useTheme.mjs +209 -0
- package/dist/esm/hooks/useTheme.mjs.map +7 -0
- package/dist/esm/hooks/useThemeName.js +28 -0
- package/dist/esm/hooks/useThemeName.js.map +7 -0
- package/dist/esm/hooks/useThemeName.mjs +28 -0
- package/dist/esm/hooks/useThemeName.mjs.map +7 -0
- package/dist/esm/insertFont.js +67 -0
- package/dist/esm/insertFont.js.map +7 -0
- package/dist/esm/insertFont.mjs +67 -0
- package/dist/esm/insertFont.mjs.map +7 -0
- package/dist/esm/setupReactNative.js +24 -0
- package/dist/esm/setupReactNative.js.map +7 -0
- package/dist/esm/setupReactNative.mjs +24 -0
- package/dist/esm/setupReactNative.mjs.map +7 -0
- package/dist/esm/static.js +3 -0
- package/dist/esm/static.js.map +7 -0
- package/dist/esm/static.mjs +3 -0
- package/dist/esm/static.mjs.map +7 -0
- package/dist/esm/styled.js +71 -0
- package/dist/esm/styled.js.map +7 -0
- package/dist/esm/styled.mjs +71 -0
- package/dist/esm/styled.mjs.map +7 -0
- package/dist/esm/types-rnw.js +1 -0
- package/dist/esm/types-rnw.js.map +7 -0
- package/dist/esm/types-rnw.mjs +1 -0
- package/dist/esm/types-rnw.mjs.map +7 -0
- package/dist/esm/types.js +1 -0
- package/dist/esm/types.js.map +7 -0
- package/dist/esm/types.mjs +1 -0
- package/dist/esm/types.mjs.map +7 -0
- package/dist/esm/updateTheme.js +23 -0
- package/dist/esm/updateTheme.js.map +7 -0
- package/dist/esm/updateTheme.mjs +23 -0
- package/dist/esm/updateTheme.mjs.map +7 -0
- package/dist/esm/views/FontLanguage.js +17 -0
- package/dist/esm/views/FontLanguage.js.map +7 -0
- package/dist/esm/views/FontLanguage.mjs +17 -0
- package/dist/esm/views/FontLanguage.mjs.map +7 -0
- package/dist/esm/views/FontLanguage.native.js +11 -0
- package/dist/esm/views/FontLanguage.native.js.map +7 -0
- package/dist/esm/views/FontLanguage.native.mjs +11 -0
- package/dist/esm/views/FontLanguage.native.mjs.map +7 -0
- package/dist/esm/views/FontLanguage.types.js +1 -0
- package/dist/esm/views/FontLanguage.types.js.map +7 -0
- package/dist/esm/views/FontLanguage.types.mjs +1 -0
- package/dist/esm/views/FontLanguage.types.mjs.map +7 -0
- package/dist/esm/views/Slot.js +71 -0
- package/dist/esm/views/Slot.js.map +7 -0
- package/dist/esm/views/Slot.mjs +71 -0
- package/dist/esm/views/Slot.mjs.map +7 -0
- package/dist/esm/views/Stack.js +14 -0
- package/dist/esm/views/Stack.js.map +7 -0
- package/dist/esm/views/Stack.mjs +14 -0
- package/dist/esm/views/Stack.mjs.map +7 -0
- package/dist/esm/views/Stack.web.test.js +21 -0
- package/dist/esm/views/Stack.web.test.js.map +7 -0
- package/dist/esm/views/Stack.web.test.mjs +21 -0
- package/dist/esm/views/Stack.web.test.mjs.map +7 -0
- package/dist/esm/views/TamaguiProvider.js +56 -0
- package/dist/esm/views/TamaguiProvider.js.map +7 -0
- package/dist/esm/views/TamaguiProvider.mjs +56 -0
- package/dist/esm/views/TamaguiProvider.mjs.map +7 -0
- package/dist/esm/views/Text.js +70 -0
- package/dist/esm/views/Text.js.map +7 -0
- package/dist/esm/views/Text.mjs +70 -0
- package/dist/esm/views/Text.mjs.map +7 -0
- package/dist/esm/views/Theme.js +63 -0
- package/dist/esm/views/Theme.js.map +7 -0
- package/dist/esm/views/Theme.mjs +63 -0
- package/dist/esm/views/Theme.mjs.map +7 -0
- package/dist/esm/views/ThemeProvider.js +45 -0
- package/dist/esm/views/ThemeProvider.js.map +7 -0
- package/dist/esm/views/ThemeProvider.mjs +45 -0
- package/dist/esm/views/ThemeProvider.mjs.map +7 -0
- package/package.json +6 -6
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/helpers/ThemeManager.tsx"],
|
|
4
|
+
"sourcesContent": ["import { getThemes, getTokens } from '../config'\nimport { THEME_CLASSNAME_PREFIX, THEME_NAME_SEPARATOR } from '../constants/constants'\nimport { getThemeUnwrapped } from '../hooks/getThemeUnwrapped'\nimport { ThemeParsed, ThemeProps } from '../types'\n\ntype ThemeListener = (name: string | null, themeManager: ThemeManager) => void\n\nexport type SetActiveThemeProps = {\n className?: string\n parentManager?: ThemeManager | null\n name?: string | null\n theme?: any\n reset?: boolean\n}\n\nexport type ThemeManagerState = {\n name: string\n theme?: ThemeParsed | null\n className?: string\n parentName?: string\n}\n\nconst emptyState: ThemeManagerState = { name: '' }\n\nexport function hasNoThemeUpdatingProps(props: ThemeProps) {\n return !(props.name || props.componentName || props.inverse || props.reset)\n}\n\nexport class ThemeManager {\n themeListeners = new Set<ThemeListener>()\n parentManager: ThemeManager | null = null\n state: ThemeManagerState = emptyState\n\n constructor(\n public props: ThemeProps = {},\n parentManager?: ThemeManager | 'root' | null | undefined\n ) {\n if (parentManager === 'root') {\n this.updateState(props, false)\n return\n }\n if (!parentManager) {\n if (process.env.NODE_ENV !== 'production') {\n console.trace()\n throw new Error(`No parent manager given`)\n }\n throw `\u274C`\n }\n // copy over listeners\n this.themeListeners = parentManager.themeListeners\n\n // no change no props\n if (hasNoThemeUpdatingProps(props)) {\n return parentManager\n }\n if (parentManager) {\n this.parentManager = parentManager\n }\n const updatedState = this.getStateIfChanged(props)\n if (updatedState) {\n this.state = updatedState\n return\n }\n return parentManager || this\n }\n\n updateState(\n props: ThemeProps & { forceTheme?: ThemeParsed } = this.props || {},\n notify = true\n ) {\n const shouldFlush = (() => {\n if (props.forceTheme) {\n this.state.theme = props.forceTheme\n this.state.name = props.name || ''\n return true\n }\n const nextState = this.getStateIfChanged(props)\n if (nextState) {\n this.state = nextState\n return true\n }\n })()\n if (shouldFlush) {\n // reset any derived state\n this._allKeys = null\n notify && this.notify()\n return this.state\n }\n }\n\n getStateIfChanged(\n props = this.props,\n state: ThemeManagerState | null = this.state,\n parentManager = this.parentManager\n ) {\n const _ = this.getState(props, parentManager)\n // is removing\n if (state && state !== emptyState && !_) {\n return parentManager?.state\n }\n if (this.getStateShouldChange(_, state)) {\n return _\n }\n }\n\n getStateShouldChange(\n nextState: ThemeManagerState | null,\n state: ThemeManagerState | null = this.state\n ) {\n if (!nextState?.theme || nextState.theme === state?.theme) {\n return false\n }\n return true\n }\n\n getState(props = this.props, parentManager = this.parentManager) {\n return (\n getState(props, parentManager) ||\n (process.env.TAMAGUI_TARGET === 'native' ? parentManager?.state || null : null)\n )\n }\n\n _allKeys: Set<string> | null = null\n get allKeys() {\n this._allKeys ||= new Set([\n ...(this.parentManager?.allKeys || []),\n ...Object.keys(this.state.theme || {}),\n ])\n return this._allKeys\n }\n\n // gets value going up to parents\n getValue(key: string, state?: ThemeManagerState) {\n if (!key) return\n let theme = (state || this.state).theme\n let manager = this as ThemeManager | null\n while (theme && manager) {\n if (key in theme) {\n return theme[key]\n }\n manager = manager.parentManager\n theme = manager?.state.theme\n }\n const tokens = getTokens()\n if (key in tokens.color) {\n return tokens.color[key]\n }\n }\n\n notify() {\n this.themeListeners.forEach((cb) => cb(this.state.name, this))\n }\n\n onChangeTheme(cb: ThemeListener) {\n this.themeListeners.add(cb)\n return () => {\n this.themeListeners.delete(cb)\n }\n }\n}\n\nfunction getNextThemeClassName(name: string, isInverting = false) {\n const next = `${THEME_CLASSNAME_PREFIX}${name}`\n if (isInverting) {\n return next\n }\n return next.replace('light_', '').replace('dark_', '')\n}\n\nconst cache = new WeakMap<ThemeProps, [ThemeManager, ThemeManagerState | null]>()\n\nfunction getState(\n props: ThemeProps,\n parentManager?: ThemeManager | null\n): ThemeManagerState | null {\n const cached = cache.get(props)\n if (cached && cached[0] === parentManager) {\n return cached[1]\n }\n\n const themes = getThemes()\n\n if (props.name && props.reset) {\n throw new Error('Cannot reset + set new name')\n }\n if (props.reset && !parentManager?.parentManager) {\n throw new Error('Cannot reset no grandparent exists')\n }\n\n let result: ThemeManagerState | null = null\n\n const nextName = props.reset\n ? parentManager?.parentManager?.state?.name || ''\n : props.name || ''\n const { componentName } = props\n const parentName = parentManager?.state?.name || ''\n\n // components look for most specific, fallback upwards\n const base = parentName.split(THEME_NAME_SEPARATOR)\n const lastSegment = base[base.length - 1]\n const isParentAComponentTheme =\n parentName && lastSegment[0].toUpperCase() === lastSegment[0]\n if (isParentAComponentTheme) {\n base.pop() // always remove componentName they can't nest\n }\n const parentBaseTheme = isParentAComponentTheme\n ? base.slice(0, base.length).join(THEME_NAME_SEPARATOR)\n : parentName\n const max = base.length\n const min =\n componentName && !nextName\n ? max // component name only don't search upwards\n : 0\n\n // prettier-ignore\n // eslint-disable-next-line no-console\n if (process.env.NODE_ENV === 'development' && props.debug === 'verbose') [ console.groupCollapsed('ThemeManager.getState()', props, { parentName, parentBaseTheme, base, min, max, isParentAComponentTheme }), console.trace(), console.groupEnd() ]\n\n for (let i = max; i >= min; i--) {\n let prefix = base.slice(0, i).join(THEME_NAME_SEPARATOR)\n if (props.inverse) {\n prefix = inverseThemeName(prefix)\n }\n const potentials: string[] = []\n if (prefix && prefix !== parentBaseTheme) {\n potentials.push(prefix)\n }\n if (nextName) {\n potentials.unshift(prefix ? `${prefix}_${nextName}` : nextName)\n }\n if (i === 1) {\n const lastSegment = potentials.findIndex((x) => !x.includes('_'))\n if (lastSegment > 0) {\n potentials.splice(lastSegment, 0, nextName) // last try prefer our new name to parent\n }\n }\n if (componentName) {\n // components only look for component themes\n if (nextName) {\n potentials.push(\n `${prefix.slice(\n 0,\n prefix.indexOf(THEME_NAME_SEPARATOR)\n )}_${nextName}_${componentName}`\n )\n }\n potentials.push(`${prefix}_${componentName}`)\n if (nextName) {\n potentials.unshift(`${prefix}_${nextName}_${componentName}`)\n }\n }\n\n const found = potentials.find((t) => t in themes)\n\n // eslint-disable-next-line no-console\n if (process.env.NODE_ENV === 'development' && props.debug === 'verbose')\n console.log('getState found', found, 'from', potentials, 'parentName', parentName)\n\n if (found) {\n // optimization return null if not changed\n if (found === parentName) {\n break\n }\n result = {\n name: found,\n theme: getThemeUnwrapped(themes[found]),\n className: getNextThemeClassName(found, props.inverse),\n parentName,\n }\n break\n }\n }\n\n if (parentManager) {\n cache.set(props, [parentManager, result])\n }\n\n return result\n}\n\nconst inverseThemeName = (themeName: string) => {\n return themeName.startsWith('light')\n ? themeName.replace(/^light/, 'dark')\n : themeName.replace(/^dark/, 'light')\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["lastSegment"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,465 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var import_config_default_node = require("@tamagui/config-default-node");
|
|
3
|
+
var import_vitest = require("vitest");
|
|
4
|
+
var import_createTamagui = require("../createTamagui");
|
|
5
|
+
var import_ThemeManager = require("./ThemeManager");
|
|
6
|
+
const conf = (0, import_config_default_node.getDefaultTamaguiConfig)();
|
|
7
|
+
(0, import_vitest.describe)("ThemeManager", () => {
|
|
8
|
+
(0, import_vitest.beforeAll)(() => {
|
|
9
|
+
(0, import_createTamagui.createTamagui)(conf);
|
|
10
|
+
});
|
|
11
|
+
(0, import_vitest.test)("Changes theme to dark", () => {
|
|
12
|
+
const manager = new import_ThemeManager.ThemeManager(
|
|
13
|
+
{
|
|
14
|
+
name: "dark"
|
|
15
|
+
},
|
|
16
|
+
"root"
|
|
17
|
+
);
|
|
18
|
+
(0, import_vitest.expect)(manager.state.name).toBe("dark");
|
|
19
|
+
});
|
|
20
|
+
(0, import_vitest.test)('Given parent theme "dark" and child theme "red" to return theme "dark_red"', () => {
|
|
21
|
+
const parent = new import_ThemeManager.ThemeManager(
|
|
22
|
+
{
|
|
23
|
+
name: "dark"
|
|
24
|
+
},
|
|
25
|
+
"root"
|
|
26
|
+
);
|
|
27
|
+
const child = new import_ThemeManager.ThemeManager(
|
|
28
|
+
{
|
|
29
|
+
name: "red"
|
|
30
|
+
},
|
|
31
|
+
parent
|
|
32
|
+
);
|
|
33
|
+
(0, import_vitest.expect)(parent.state.name).toBe("dark");
|
|
34
|
+
(0, import_vitest.expect)(child.state.name).toBe("dark_red");
|
|
35
|
+
});
|
|
36
|
+
(0, import_vitest.test)('Given parent theme "dark", child theme "red_alt2" and component "Button" returns "dark_red_alt2_Button"', () => {
|
|
37
|
+
const parent = new import_ThemeManager.ThemeManager(
|
|
38
|
+
{
|
|
39
|
+
name: "dark"
|
|
40
|
+
},
|
|
41
|
+
"root"
|
|
42
|
+
);
|
|
43
|
+
const child1 = new import_ThemeManager.ThemeManager(
|
|
44
|
+
{
|
|
45
|
+
name: "red"
|
|
46
|
+
},
|
|
47
|
+
parent
|
|
48
|
+
);
|
|
49
|
+
(0, import_vitest.expect)(child1.state.name).toBe("dark_red");
|
|
50
|
+
const child2 = new import_ThemeManager.ThemeManager(
|
|
51
|
+
{
|
|
52
|
+
name: "alt2",
|
|
53
|
+
componentName: "Button"
|
|
54
|
+
},
|
|
55
|
+
child1
|
|
56
|
+
);
|
|
57
|
+
(0, import_vitest.expect)(child2.state.name).toBe("dark_red_alt2_Button");
|
|
58
|
+
});
|
|
59
|
+
(0, import_vitest.test)('Given parent theme "dark", child theme "red" and component "Button" returns "dark_red_Button"', () => {
|
|
60
|
+
const parent = new import_ThemeManager.ThemeManager(
|
|
61
|
+
{
|
|
62
|
+
name: "dark"
|
|
63
|
+
},
|
|
64
|
+
"root"
|
|
65
|
+
);
|
|
66
|
+
const child1 = new import_ThemeManager.ThemeManager(
|
|
67
|
+
{
|
|
68
|
+
name: "red"
|
|
69
|
+
},
|
|
70
|
+
parent
|
|
71
|
+
);
|
|
72
|
+
(0, import_vitest.expect)(child1.state.name).toBe("dark_red");
|
|
73
|
+
const child2 = new import_ThemeManager.ThemeManager(
|
|
74
|
+
{
|
|
75
|
+
componentName: "Button"
|
|
76
|
+
},
|
|
77
|
+
child1
|
|
78
|
+
);
|
|
79
|
+
(0, import_vitest.expect)(child2.state.name).toBe("dark_red_Button");
|
|
80
|
+
});
|
|
81
|
+
(0, import_vitest.test)('Given parent theme "dark", child theme "red" and missing component "Card" returns "dark_red"', () => {
|
|
82
|
+
const parent = new import_ThemeManager.ThemeManager(
|
|
83
|
+
{
|
|
84
|
+
name: "dark"
|
|
85
|
+
},
|
|
86
|
+
"root"
|
|
87
|
+
);
|
|
88
|
+
const child1 = new import_ThemeManager.ThemeManager(
|
|
89
|
+
{
|
|
90
|
+
name: "red"
|
|
91
|
+
},
|
|
92
|
+
parent
|
|
93
|
+
);
|
|
94
|
+
(0, import_vitest.expect)(child1.state.name).toBe("dark_red");
|
|
95
|
+
const child2 = new import_ThemeManager.ThemeManager(
|
|
96
|
+
{
|
|
97
|
+
componentName: "Card"
|
|
98
|
+
},
|
|
99
|
+
child1
|
|
100
|
+
);
|
|
101
|
+
(0, import_vitest.expect)(child2.state.name).toBe("dark_red");
|
|
102
|
+
});
|
|
103
|
+
(0, import_vitest.test)('Changes "light" to "dark"', () => {
|
|
104
|
+
const parent = new import_ThemeManager.ThemeManager(
|
|
105
|
+
{
|
|
106
|
+
name: "light"
|
|
107
|
+
},
|
|
108
|
+
"root"
|
|
109
|
+
);
|
|
110
|
+
const child = new import_ThemeManager.ThemeManager(
|
|
111
|
+
{
|
|
112
|
+
name: "dark"
|
|
113
|
+
},
|
|
114
|
+
parent
|
|
115
|
+
);
|
|
116
|
+
(0, import_vitest.expect)(parent.state.name).toBe("light");
|
|
117
|
+
(0, import_vitest.expect)(child.state.name).toBe("dark");
|
|
118
|
+
});
|
|
119
|
+
(0, import_vitest.test)('Inverts "light" to "dark"', () => {
|
|
120
|
+
const parent = new import_ThemeManager.ThemeManager(
|
|
121
|
+
{
|
|
122
|
+
name: "light"
|
|
123
|
+
},
|
|
124
|
+
"root"
|
|
125
|
+
);
|
|
126
|
+
const child1 = new import_ThemeManager.ThemeManager(
|
|
127
|
+
{
|
|
128
|
+
inverse: true
|
|
129
|
+
},
|
|
130
|
+
parent
|
|
131
|
+
);
|
|
132
|
+
(0, import_vitest.expect)(child1.state.name).toBe("dark");
|
|
133
|
+
});
|
|
134
|
+
(0, import_vitest.test)('Inverts "light_red" to "dark_red"', () => {
|
|
135
|
+
const parent = new import_ThemeManager.ThemeManager(
|
|
136
|
+
{
|
|
137
|
+
name: "light"
|
|
138
|
+
},
|
|
139
|
+
"root"
|
|
140
|
+
);
|
|
141
|
+
const child1 = new import_ThemeManager.ThemeManager(
|
|
142
|
+
{
|
|
143
|
+
name: "red",
|
|
144
|
+
inverse: true
|
|
145
|
+
},
|
|
146
|
+
parent
|
|
147
|
+
);
|
|
148
|
+
(0, import_vitest.expect)(child1.state.name).toBe("dark_red");
|
|
149
|
+
});
|
|
150
|
+
(0, import_vitest.test)("Updates state", () => {
|
|
151
|
+
const parent = new import_ThemeManager.ThemeManager(
|
|
152
|
+
{
|
|
153
|
+
name: "light"
|
|
154
|
+
},
|
|
155
|
+
"root"
|
|
156
|
+
);
|
|
157
|
+
const newState = parent.updateState({
|
|
158
|
+
name: "dark"
|
|
159
|
+
});
|
|
160
|
+
(0, import_vitest.expect)(newState).toMatchInlineSnapshot(`
|
|
161
|
+
{
|
|
162
|
+
"className": "t_dark",
|
|
163
|
+
"name": "dark",
|
|
164
|
+
"parentName": "",
|
|
165
|
+
"theme": {
|
|
166
|
+
"background": {
|
|
167
|
+
"isVar": true,
|
|
168
|
+
"key": "color-2",
|
|
169
|
+
"name": "background",
|
|
170
|
+
"val": "#000",
|
|
171
|
+
"variable": "",
|
|
172
|
+
},
|
|
173
|
+
"color": {
|
|
174
|
+
"isVar": true,
|
|
175
|
+
"key": "color-1",
|
|
176
|
+
"name": "color",
|
|
177
|
+
"val": "#fff",
|
|
178
|
+
"variable": "",
|
|
179
|
+
},
|
|
180
|
+
},
|
|
181
|
+
}
|
|
182
|
+
`);
|
|
183
|
+
(0, import_vitest.expect)(parent.state.name).toBe("dark");
|
|
184
|
+
});
|
|
185
|
+
(0, import_vitest.test)("Returns parent on empty", () => {
|
|
186
|
+
const parent = new import_ThemeManager.ThemeManager(
|
|
187
|
+
{
|
|
188
|
+
name: "light"
|
|
189
|
+
},
|
|
190
|
+
"root"
|
|
191
|
+
);
|
|
192
|
+
const child = new import_ThemeManager.ThemeManager(
|
|
193
|
+
{
|
|
194
|
+
name: null
|
|
195
|
+
},
|
|
196
|
+
parent
|
|
197
|
+
);
|
|
198
|
+
(0, import_vitest.expect)(child).toBe(parent);
|
|
199
|
+
});
|
|
200
|
+
(0, import_vitest.test)("Resets theme", () => {
|
|
201
|
+
const parent = new import_ThemeManager.ThemeManager(
|
|
202
|
+
{
|
|
203
|
+
name: "light"
|
|
204
|
+
},
|
|
205
|
+
"root"
|
|
206
|
+
);
|
|
207
|
+
const child = new import_ThemeManager.ThemeManager(
|
|
208
|
+
{
|
|
209
|
+
name: "dark"
|
|
210
|
+
},
|
|
211
|
+
parent
|
|
212
|
+
);
|
|
213
|
+
(0, import_vitest.expect)(child.state.name).toBe("dark");
|
|
214
|
+
(0, import_vitest.expect)(child.parentManager).toBe(parent);
|
|
215
|
+
const child2 = new import_ThemeManager.ThemeManager(
|
|
216
|
+
{
|
|
217
|
+
reset: true
|
|
218
|
+
},
|
|
219
|
+
child
|
|
220
|
+
);
|
|
221
|
+
(0, import_vitest.expect)(child2.parentManager).toBe(child);
|
|
222
|
+
(0, import_vitest.expect)(child2.state.name).toBe("light");
|
|
223
|
+
});
|
|
224
|
+
(0, import_vitest.test)("Nested invert and reset", () => {
|
|
225
|
+
const parent = new import_ThemeManager.ThemeManager(
|
|
226
|
+
{
|
|
227
|
+
name: "light"
|
|
228
|
+
},
|
|
229
|
+
"root"
|
|
230
|
+
);
|
|
231
|
+
const child = new import_ThemeManager.ThemeManager(
|
|
232
|
+
{
|
|
233
|
+
name: "dark"
|
|
234
|
+
},
|
|
235
|
+
parent
|
|
236
|
+
);
|
|
237
|
+
const child2 = new import_ThemeManager.ThemeManager(
|
|
238
|
+
{
|
|
239
|
+
reset: true
|
|
240
|
+
},
|
|
241
|
+
child
|
|
242
|
+
);
|
|
243
|
+
const child3 = new import_ThemeManager.ThemeManager(
|
|
244
|
+
{
|
|
245
|
+
inverse: true
|
|
246
|
+
},
|
|
247
|
+
child2
|
|
248
|
+
);
|
|
249
|
+
(0, import_vitest.expect)(child3.state.name).toBe("dark");
|
|
250
|
+
});
|
|
251
|
+
(0, import_vitest.test)("Updates from null the new theme nested 3 themes", () => {
|
|
252
|
+
const a = new import_ThemeManager.ThemeManager(
|
|
253
|
+
{
|
|
254
|
+
name: "dark"
|
|
255
|
+
},
|
|
256
|
+
"root"
|
|
257
|
+
);
|
|
258
|
+
const b = new import_ThemeManager.ThemeManager(
|
|
259
|
+
{
|
|
260
|
+
name: "red"
|
|
261
|
+
},
|
|
262
|
+
a
|
|
263
|
+
);
|
|
264
|
+
(0, import_vitest.expect)(b.state.name).toBe("dark_red");
|
|
265
|
+
const c = new import_ThemeManager.ThemeManager(
|
|
266
|
+
{
|
|
267
|
+
name: "alt2"
|
|
268
|
+
},
|
|
269
|
+
b
|
|
270
|
+
);
|
|
271
|
+
(0, import_vitest.expect)(c.state.name).toBe("dark_red_alt2");
|
|
272
|
+
});
|
|
273
|
+
(0, import_vitest.test)("Ignored dup themes", () => {
|
|
274
|
+
const a = new import_ThemeManager.ThemeManager(
|
|
275
|
+
{
|
|
276
|
+
name: "dark"
|
|
277
|
+
},
|
|
278
|
+
"root"
|
|
279
|
+
);
|
|
280
|
+
const b = new import_ThemeManager.ThemeManager(
|
|
281
|
+
{
|
|
282
|
+
name: "dark"
|
|
283
|
+
},
|
|
284
|
+
a
|
|
285
|
+
);
|
|
286
|
+
(0, import_vitest.expect)(b === a).toBe(true);
|
|
287
|
+
});
|
|
288
|
+
(0, import_vitest.test)("Nested component themes fallback to grandparents", () => {
|
|
289
|
+
const parent = new import_ThemeManager.ThemeManager(
|
|
290
|
+
{
|
|
291
|
+
name: "dark"
|
|
292
|
+
},
|
|
293
|
+
"root"
|
|
294
|
+
);
|
|
295
|
+
const child = new import_ThemeManager.ThemeManager(
|
|
296
|
+
{
|
|
297
|
+
name: "red",
|
|
298
|
+
componentName: "Button"
|
|
299
|
+
},
|
|
300
|
+
parent
|
|
301
|
+
);
|
|
302
|
+
const child2 = new import_ThemeManager.ThemeManager(
|
|
303
|
+
{
|
|
304
|
+
name: "blue"
|
|
305
|
+
},
|
|
306
|
+
child
|
|
307
|
+
);
|
|
308
|
+
(0, import_vitest.expect)(child2.state.name).toBe("dark_blue");
|
|
309
|
+
const child3 = new import_ThemeManager.ThemeManager(
|
|
310
|
+
{
|
|
311
|
+
componentName: "Button"
|
|
312
|
+
},
|
|
313
|
+
child2
|
|
314
|
+
);
|
|
315
|
+
(0, import_vitest.expect)(child3.state.name).toBe("dark_blue_Button");
|
|
316
|
+
});
|
|
317
|
+
(0, import_vitest.test)(`Component theme with sub component that doesn't exist keeps same theme`, () => {
|
|
318
|
+
const parent = new import_ThemeManager.ThemeManager(
|
|
319
|
+
{
|
|
320
|
+
name: "dark"
|
|
321
|
+
},
|
|
322
|
+
"root"
|
|
323
|
+
);
|
|
324
|
+
const child = new import_ThemeManager.ThemeManager(
|
|
325
|
+
{
|
|
326
|
+
name: "red",
|
|
327
|
+
componentName: "Button"
|
|
328
|
+
},
|
|
329
|
+
parent
|
|
330
|
+
);
|
|
331
|
+
const child2 = new import_ThemeManager.ThemeManager(
|
|
332
|
+
{
|
|
333
|
+
componentName: "Spacer"
|
|
334
|
+
},
|
|
335
|
+
child
|
|
336
|
+
);
|
|
337
|
+
(0, import_vitest.expect)(child2).toBe(child);
|
|
338
|
+
});
|
|
339
|
+
(0, import_vitest.test)(`Doesn't find invalid parent when only passing component`, () => {
|
|
340
|
+
(0, import_vitest.expect)(!!conf.themes["dark_Card"]).toBeTruthy();
|
|
341
|
+
const parent = new import_ThemeManager.ThemeManager(
|
|
342
|
+
{
|
|
343
|
+
name: "dark_red"
|
|
344
|
+
},
|
|
345
|
+
"root"
|
|
346
|
+
);
|
|
347
|
+
const child = new import_ThemeManager.ThemeManager(
|
|
348
|
+
{
|
|
349
|
+
componentName: "Card"
|
|
350
|
+
},
|
|
351
|
+
parent
|
|
352
|
+
);
|
|
353
|
+
(0, import_vitest.expect)(child.state.name).toBe(parent.state.name);
|
|
354
|
+
});
|
|
355
|
+
(0, import_vitest.test)(`Finds sub-theme when componentName and name are passed but componentName doesn't exist`, () => {
|
|
356
|
+
const parent = new import_ThemeManager.ThemeManager(
|
|
357
|
+
{
|
|
358
|
+
name: "dark"
|
|
359
|
+
},
|
|
360
|
+
"root"
|
|
361
|
+
);
|
|
362
|
+
const child = new import_ThemeManager.ThemeManager(
|
|
363
|
+
{
|
|
364
|
+
name: "red",
|
|
365
|
+
componentName: "Missing"
|
|
366
|
+
},
|
|
367
|
+
parent
|
|
368
|
+
);
|
|
369
|
+
(0, import_vitest.expect)(child.state.name).toBe("dark_red");
|
|
370
|
+
});
|
|
371
|
+
(0, import_vitest.test)("Uses the full className without the light/dark prefix", () => {
|
|
372
|
+
const parent = new import_ThemeManager.ThemeManager(
|
|
373
|
+
{
|
|
374
|
+
name: "dark"
|
|
375
|
+
},
|
|
376
|
+
"root"
|
|
377
|
+
);
|
|
378
|
+
const child = new import_ThemeManager.ThemeManager(
|
|
379
|
+
{
|
|
380
|
+
name: "red_alt2"
|
|
381
|
+
},
|
|
382
|
+
parent
|
|
383
|
+
);
|
|
384
|
+
(0, import_vitest.expect)(child.state.className).toBe("t_red_alt2");
|
|
385
|
+
const child2 = new import_ThemeManager.ThemeManager(
|
|
386
|
+
{
|
|
387
|
+
name: "red"
|
|
388
|
+
},
|
|
389
|
+
parent
|
|
390
|
+
);
|
|
391
|
+
const child3 = new import_ThemeManager.ThemeManager(
|
|
392
|
+
{
|
|
393
|
+
name: "alt2"
|
|
394
|
+
},
|
|
395
|
+
child2
|
|
396
|
+
);
|
|
397
|
+
(0, import_vitest.expect)(child3.state.className).toBe("t_red_alt2");
|
|
398
|
+
});
|
|
399
|
+
(0, import_vitest.test)("Finds component dark_red + Button", () => {
|
|
400
|
+
const parent = new import_ThemeManager.ThemeManager(
|
|
401
|
+
{
|
|
402
|
+
name: "dark_red"
|
|
403
|
+
},
|
|
404
|
+
"root"
|
|
405
|
+
);
|
|
406
|
+
const child = new import_ThemeManager.ThemeManager(
|
|
407
|
+
{
|
|
408
|
+
name: "dark_red",
|
|
409
|
+
componentName: "Button"
|
|
410
|
+
},
|
|
411
|
+
parent
|
|
412
|
+
);
|
|
413
|
+
(0, import_vitest.expect)(child.state.className).toBe("t_red_Button");
|
|
414
|
+
(0, import_vitest.expect)(child.state.name).toBe("dark_red_Button");
|
|
415
|
+
});
|
|
416
|
+
(0, import_vitest.test)("Drops componentName if only regular name found at stronger level", () => {
|
|
417
|
+
const parent = new import_ThemeManager.ThemeManager(
|
|
418
|
+
{
|
|
419
|
+
name: "dark_red"
|
|
420
|
+
},
|
|
421
|
+
"root"
|
|
422
|
+
);
|
|
423
|
+
const child = new import_ThemeManager.ThemeManager(
|
|
424
|
+
{
|
|
425
|
+
name: "alt1",
|
|
426
|
+
componentName: "Button"
|
|
427
|
+
},
|
|
428
|
+
parent
|
|
429
|
+
);
|
|
430
|
+
(0, import_vitest.expect)(child.state.name).toBe("dark_red_alt1");
|
|
431
|
+
});
|
|
432
|
+
(0, import_vitest.test)("Component name + theme change when nested already", () => {
|
|
433
|
+
const parent = new import_ThemeManager.ThemeManager(
|
|
434
|
+
{
|
|
435
|
+
name: "dark_red"
|
|
436
|
+
},
|
|
437
|
+
"root"
|
|
438
|
+
);
|
|
439
|
+
const child = new import_ThemeManager.ThemeManager(
|
|
440
|
+
{
|
|
441
|
+
name: "yellow",
|
|
442
|
+
componentName: "Button"
|
|
443
|
+
},
|
|
444
|
+
parent
|
|
445
|
+
);
|
|
446
|
+
(0, import_vitest.expect)(child.state.name).toBe("dark_yellow_Button");
|
|
447
|
+
});
|
|
448
|
+
(0, import_vitest.test)("Component name + name finds one up when component name missing", () => {
|
|
449
|
+
const parent = new import_ThemeManager.ThemeManager(
|
|
450
|
+
{
|
|
451
|
+
name: "dark_red_alt1"
|
|
452
|
+
},
|
|
453
|
+
"root"
|
|
454
|
+
);
|
|
455
|
+
const child = new import_ThemeManager.ThemeManager(
|
|
456
|
+
{
|
|
457
|
+
name: "alt2",
|
|
458
|
+
componentName: "Missing"
|
|
459
|
+
},
|
|
460
|
+
parent
|
|
461
|
+
);
|
|
462
|
+
(0, import_vitest.expect)(child.state.name).toBe("dark_red_alt2");
|
|
463
|
+
});
|
|
464
|
+
});
|
|
465
|
+
//# sourceMappingURL=ThemeManager.test.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/helpers/ThemeManager.test.tsx"],
|
|
4
|
+
"sourcesContent": ["import { getDefaultTamaguiConfig } from '@tamagui/config-default-node'\nimport { beforeAll, describe, expect, test } from 'vitest'\n\nimport { createTamagui } from '../createTamagui'\nimport { ThemeManager } from './ThemeManager'\n\nconst conf = getDefaultTamaguiConfig()\n\ndescribe('ThemeManager', () => {\n beforeAll(() => {\n createTamagui(conf)\n })\n\n test('Changes theme to dark', () => {\n const manager = new ThemeManager(\n {\n name: 'dark',\n },\n 'root'\n )\n expect(manager.state.name).toBe('dark')\n })\n\n test('Given parent theme \"dark\" and child theme \"red\" to return theme \"dark_red\"', () => {\n const parent = new ThemeManager(\n {\n name: 'dark',\n },\n 'root'\n )\n const child = new ThemeManager(\n {\n name: 'red',\n },\n parent\n )\n expect(parent.state.name).toBe('dark')\n expect(child.state.name).toBe('dark_red')\n })\n\n test('Given parent theme \"dark\", child theme \"red_alt2\" and component \"Button\" returns \"dark_red_alt2_Button\"', () => {\n const parent = new ThemeManager(\n {\n name: 'dark',\n },\n 'root'\n )\n const child1 = new ThemeManager(\n {\n name: 'red',\n },\n parent\n )\n expect(child1.state.name).toBe('dark_red')\n const child2 = new ThemeManager(\n {\n name: 'alt2',\n componentName: 'Button',\n },\n child1\n )\n expect(child2.state.name).toBe('dark_red_alt2_Button')\n })\n\n test('Given parent theme \"dark\", child theme \"red\" and component \"Button\" returns \"dark_red_Button\"', () => {\n const parent = new ThemeManager(\n {\n name: 'dark',\n },\n 'root'\n )\n const child1 = new ThemeManager(\n {\n name: 'red',\n },\n parent\n )\n expect(child1.state.name).toBe('dark_red')\n const child2 = new ThemeManager(\n {\n componentName: 'Button',\n },\n child1\n )\n expect(child2.state.name).toBe('dark_red_Button')\n })\n\n test('Given parent theme \"dark\", child theme \"red\" and missing component \"Card\" returns \"dark_red\"', () => {\n const parent = new ThemeManager(\n {\n name: 'dark',\n },\n 'root'\n )\n const child1 = new ThemeManager(\n {\n name: 'red',\n },\n parent\n )\n expect(child1.state.name).toBe('dark_red')\n const child2 = new ThemeManager(\n {\n componentName: 'Card',\n },\n child1\n )\n expect(child2.state.name).toBe('dark_red')\n })\n\n test('Changes \"light\" to \"dark\"', () => {\n const parent = new ThemeManager(\n {\n name: 'light',\n },\n 'root'\n )\n const child = new ThemeManager(\n {\n name: 'dark',\n },\n parent\n )\n expect(parent.state.name).toBe('light')\n expect(child.state.name).toBe('dark')\n })\n\n test('Inverts \"light\" to \"dark\"', () => {\n const parent = new ThemeManager(\n {\n name: 'light',\n },\n 'root'\n )\n const child1 = new ThemeManager(\n {\n inverse: true,\n },\n parent\n )\n expect(child1.state.name).toBe('dark')\n })\n\n test('Inverts \"light_red\" to \"dark_red\"', () => {\n const parent = new ThemeManager(\n {\n name: 'light',\n },\n 'root'\n )\n const child1 = new ThemeManager(\n {\n name: 'red',\n inverse: true,\n },\n parent\n )\n expect(child1.state.name).toBe('dark_red')\n })\n\n test('Updates state', () => {\n const parent = new ThemeManager(\n {\n name: 'light',\n },\n 'root'\n )\n const newState = parent.updateState({\n name: 'dark',\n })\n expect(newState).toMatchInlineSnapshot(`\n {\n \"className\": \"t_dark\",\n \"name\": \"dark\",\n \"parentName\": \"\",\n \"theme\": {\n \"background\": {\n \"isVar\": true,\n \"key\": \"color-2\",\n \"name\": \"background\",\n \"val\": \"#000\",\n \"variable\": \"\",\n },\n \"color\": {\n \"isVar\": true,\n \"key\": \"color-1\",\n \"name\": \"color\",\n \"val\": \"#fff\",\n \"variable\": \"\",\n },\n },\n }\n `)\n expect(parent.state.name).toBe('dark')\n })\n\n test('Returns parent on empty', () => {\n const parent = new ThemeManager(\n {\n name: 'light',\n },\n 'root'\n )\n const child = new ThemeManager(\n {\n name: null,\n },\n parent\n )\n expect(child).toBe(parent)\n })\n\n test('Resets theme', () => {\n const parent = new ThemeManager(\n {\n name: 'light',\n },\n 'root'\n )\n const child = new ThemeManager(\n {\n name: 'dark',\n },\n parent\n )\n expect(child.state.name).toBe('dark')\n expect(child.parentManager).toBe(parent)\n const child2 = new ThemeManager(\n {\n reset: true,\n },\n child\n )\n expect(child2.parentManager).toBe(child)\n expect(child2.state.name).toBe('light')\n })\n\n test('Nested invert and reset', () => {\n const parent = new ThemeManager(\n {\n name: 'light',\n },\n 'root'\n )\n const child = new ThemeManager(\n {\n name: 'dark',\n },\n parent\n )\n const child2 = new ThemeManager(\n {\n reset: true,\n },\n child\n )\n const child3 = new ThemeManager(\n {\n inverse: true,\n },\n child2\n )\n expect(child3.state.name).toBe('dark')\n })\n\n test('Updates from null the new theme nested 3 themes', () => {\n const a = new ThemeManager(\n {\n name: 'dark',\n },\n 'root'\n )\n const b = new ThemeManager(\n {\n name: 'red',\n },\n a\n )\n expect(b.state.name).toBe('dark_red')\n const c = new ThemeManager(\n {\n name: 'alt2',\n },\n b\n )\n expect(c.state.name).toBe('dark_red_alt2')\n })\n\n test('Ignored dup themes', () => {\n const a = new ThemeManager(\n {\n name: 'dark',\n },\n 'root'\n )\n const b = new ThemeManager(\n {\n name: 'dark',\n },\n a\n )\n expect(b === a).toBe(true)\n })\n\n test('Nested component themes fallback to grandparents', () => {\n const parent = new ThemeManager(\n {\n name: 'dark',\n },\n 'root'\n )\n const child = new ThemeManager(\n {\n name: 'red',\n componentName: 'Button',\n },\n parent\n )\n const child2 = new ThemeManager(\n {\n name: 'blue',\n },\n child\n )\n expect(child2.state.name).toBe('dark_blue')\n const child3 = new ThemeManager(\n {\n componentName: 'Button',\n },\n child2\n )\n expect(child3.state.name).toBe('dark_blue_Button')\n })\n\n test(`Component theme with sub component that doesn't exist keeps same theme`, () => {\n const parent = new ThemeManager(\n {\n name: 'dark',\n },\n 'root'\n )\n const child = new ThemeManager(\n {\n name: 'red',\n componentName: 'Button',\n },\n parent\n )\n const child2 = new ThemeManager(\n {\n componentName: 'Spacer',\n },\n child\n )\n expect(child2).toBe(child)\n })\n\n test(`Doesn't find invalid parent when only passing component`, () => {\n expect(!!conf.themes['dark_Card']).toBeTruthy()\n\n const parent = new ThemeManager(\n {\n name: 'dark_red',\n },\n 'root'\n )\n\n const child = new ThemeManager(\n {\n componentName: 'Card',\n },\n parent\n )\n\n // dont find dark_Card because dark_red is highest it should climb\n expect(child.state.name).toBe(parent.state.name)\n })\n\n test(`Finds sub-theme when componentName and name are passed but componentName doesn't exist`, () => {\n const parent = new ThemeManager(\n {\n name: 'dark',\n },\n 'root'\n )\n\n const child = new ThemeManager(\n {\n name: 'red',\n componentName: 'Missing',\n },\n parent\n )\n\n // dont find dark_Card because dark_red is highest it should climb\n expect(child.state.name).toBe('dark_red')\n })\n\n test('Uses the full className without the light/dark prefix', () => {\n const parent = new ThemeManager(\n {\n name: 'dark',\n },\n 'root'\n )\n const child = new ThemeManager(\n {\n name: 'red_alt2',\n },\n parent\n )\n expect(child.state.className).toBe('t_red_alt2')\n\n const child2 = new ThemeManager(\n {\n name: 'red',\n },\n parent\n )\n const child3 = new ThemeManager(\n {\n name: 'alt2',\n },\n child2\n )\n expect(child3.state.className).toBe('t_red_alt2')\n })\n\n test('Finds component dark_red + Button', () => {\n const parent = new ThemeManager(\n {\n name: 'dark_red',\n },\n 'root'\n )\n const child = new ThemeManager(\n {\n name: 'dark_red',\n componentName: 'Button',\n },\n parent\n )\n expect(child.state.className).toBe('t_red_Button')\n expect(child.state.name).toBe('dark_red_Button')\n })\n\n test('Drops componentName if only regular name found at stronger level', () => {\n const parent = new ThemeManager(\n {\n name: 'dark_red',\n },\n 'root'\n )\n const child = new ThemeManager(\n {\n name: 'alt1',\n componentName: 'Button',\n },\n parent\n )\n expect(child.state.name).toBe('dark_red_alt1')\n })\n\n test('Component name + theme change when nested already', () => {\n const parent = new ThemeManager(\n {\n name: 'dark_red',\n },\n 'root'\n )\n const child = new ThemeManager(\n {\n name: 'yellow',\n componentName: 'Button',\n },\n parent\n )\n expect(child.state.name).toBe('dark_yellow_Button')\n })\n\n test('Component name + name finds one up when component name missing', () => {\n const parent = new ThemeManager(\n {\n name: 'dark_red_alt1',\n },\n 'root'\n )\n const child = new ThemeManager(\n {\n name: 'alt2',\n componentName: 'Missing',\n },\n parent\n )\n expect(child.state.name).toBe('dark_red_alt2')\n })\n})\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var ThemeManagerContext_exports = {};
|
|
20
|
+
__export(ThemeManagerContext_exports, {
|
|
21
|
+
ThemeManagerContext: () => ThemeManagerContext
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(ThemeManagerContext_exports);
|
|
24
|
+
var import_react = require("react");
|
|
25
|
+
const ThemeManagerContext = (0, import_react.createContext)(null);
|
|
26
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
27
|
+
0 && (module.exports = {
|
|
28
|
+
ThemeManagerContext
|
|
29
|
+
});
|
|
30
|
+
//# sourceMappingURL=ThemeManagerContext.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/helpers/ThemeManagerContext.tsx"],
|
|
4
|
+
"sourcesContent": ["import { createContext } from 'react'\n\nimport { ThemeManager } from './ThemeManager'\n\nexport const ThemeManagerContext = createContext<ThemeManager | null>(null)\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA8B;AAIvB,MAAM,0BAAsB,4BAAmC,IAAI;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var createMediaStyle_exports = {};
|
|
20
|
+
__export(createMediaStyle_exports, {
|
|
21
|
+
MEDIA_SEP: () => MEDIA_SEP,
|
|
22
|
+
createMediaStyle: () => createMediaStyle
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(createMediaStyle_exports);
|
|
25
|
+
var import_useMedia = require("../hooks/useMedia");
|
|
26
|
+
const MEDIA_SEP = "_";
|
|
27
|
+
let prefixes = null;
|
|
28
|
+
let selectors = null;
|
|
29
|
+
const createMediaStyle = ({ property, identifier, rules }, mediaKey, mediaQueries, negate) => {
|
|
30
|
+
if (!(prefixes && selectors)) {
|
|
31
|
+
const mediaKeys = Object.keys(mediaQueries);
|
|
32
|
+
prefixes = Object.fromEntries(
|
|
33
|
+
mediaKeys.map((key, index) => [key, new Array(index + 1).fill(":root").join("")])
|
|
34
|
+
);
|
|
35
|
+
selectors = Object.fromEntries(
|
|
36
|
+
mediaKeys.map((key) => [key, (0, import_useMedia.mediaObjectToString)(mediaQueries[key])])
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
const precendencePrefix = prefixes[mediaKey];
|
|
40
|
+
const mediaSelector = selectors[mediaKey];
|
|
41
|
+
const negKey = negate ? "0" : "";
|
|
42
|
+
const ogPrefix = identifier.slice(0, identifier.indexOf("-") + 1);
|
|
43
|
+
const nextIdentifier = `${identifier.replace(
|
|
44
|
+
ogPrefix,
|
|
45
|
+
`${ogPrefix}${MEDIA_SEP}${mediaKey}${negKey}${MEDIA_SEP}`
|
|
46
|
+
)}`;
|
|
47
|
+
const screenStr = negate ? "not all and" : "";
|
|
48
|
+
const mediaQuery = `${screenStr} ${mediaSelector}`;
|
|
49
|
+
const styleInner = rules.map((rule) => rule.replace(identifier, nextIdentifier)).join(";");
|
|
50
|
+
let styleRule = "";
|
|
51
|
+
if (styleInner.includes("@media")) {
|
|
52
|
+
styleRule = styleInner.replace("{", ` and ${mediaQuery} {`);
|
|
53
|
+
} else {
|
|
54
|
+
styleRule = `@media ${mediaQuery} { ${precendencePrefix} ${styleInner} }`;
|
|
55
|
+
}
|
|
56
|
+
return {
|
|
57
|
+
property,
|
|
58
|
+
rules: [styleRule],
|
|
59
|
+
identifier: nextIdentifier
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
63
|
+
0 && (module.exports = {
|
|
64
|
+
MEDIA_SEP,
|
|
65
|
+
createMediaStyle
|
|
66
|
+
});
|
|
67
|
+
//# sourceMappingURL=createMediaStyle.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/helpers/createMediaStyle.ts"],
|
|
4
|
+
"sourcesContent": ["import { StyleObject } from '@tamagui/helpers'\n\nimport { mediaObjectToString } from '../hooks/useMedia'\nimport { MediaQueries } from '../types'\nimport { PartialStyleObject } from './insertStyleRule'\n\n// TODO have this be used by extractMediaStyle in tamagui static\n// not synced to static/constants for now\nexport const MEDIA_SEP = '_'\n\nlet prefixes: Record<string, string> | null = null\nlet selectors: Record<string, string> | null = null\n\nexport const createMediaStyle = (\n { property, identifier, rules }: StyleObject,\n mediaKey: string,\n mediaQueries: MediaQueries,\n negate?: boolean\n): PartialStyleObject => {\n if (!(prefixes && selectors)) {\n // TODO move this into useMedia calc once there and unify w getMediaImportance\n const mediaKeys = Object.keys(mediaQueries)\n prefixes = Object.fromEntries(\n mediaKeys.map((key, index) => [key, new Array(index + 1).fill(':root').join('')])\n )\n selectors = Object.fromEntries(\n mediaKeys.map((key) => [key, mediaObjectToString(mediaQueries[key])])\n )\n }\n const precendencePrefix = prefixes[mediaKey]\n const mediaSelector = selectors[mediaKey]\n const negKey = negate ? '0' : ''\n const ogPrefix = identifier.slice(0, identifier.indexOf('-') + 1)\n const nextIdentifier = `${identifier.replace(\n ogPrefix,\n `${ogPrefix}${MEDIA_SEP}${mediaKey}${negKey}${MEDIA_SEP}`\n )}`\n const screenStr = negate ? 'not all and' : ''\n const mediaQuery = `${screenStr} ${mediaSelector}`\n const styleInner = rules\n .map((rule) => rule.replace(identifier, nextIdentifier))\n .join(';')\n // combines media queries if they already exist\n let styleRule = ''\n if (styleInner.includes('@media')) {\n // combine\n styleRule = styleInner.replace('{', ` and ${mediaQuery} {`)\n } else {\n styleRule = `@media ${mediaQuery} { ${precendencePrefix} ${styleInner} }`\n }\n return {\n property,\n rules: [styleRule],\n identifier: nextIdentifier,\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,sBAAoC;AAM7B,MAAM,YAAY;AAEzB,IAAI,WAA0C;AAC9C,IAAI,YAA2C;AAExC,MAAM,mBAAmB,CAC9B,EAAE,UAAU,YAAY,MAAM,GAC9B,UACA,cACA,WACuB;AACvB,MAAI,EAAE,YAAY,YAAY;AAE5B,UAAM,YAAY,OAAO,KAAK,YAAY;AAC1C,eAAW,OAAO;AAAA,MAChB,UAAU,IAAI,CAAC,KAAK,UAAU,CAAC,KAAK,IAAI,MAAM,QAAQ,CAAC,EAAE,KAAK,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;AAAA,IAClF;AACA,gBAAY,OAAO;AAAA,MACjB,UAAU,IAAI,CAAC,QAAQ,CAAC,SAAK,qCAAoB,aAAa,GAAG,CAAC,CAAC,CAAC;AAAA,IACtE;AAAA,EACF;AACA,QAAM,oBAAoB,SAAS,QAAQ;AAC3C,QAAM,gBAAgB,UAAU,QAAQ;AACxC,QAAM,SAAS,SAAS,MAAM;AAC9B,QAAM,WAAW,WAAW,MAAM,GAAG,WAAW,QAAQ,GAAG,IAAI,CAAC;AAChE,QAAM,iBAAiB,GAAG,WAAW;AAAA,IACnC;AAAA,IACA,GAAG,WAAW,YAAY,WAAW,SAAS;AAAA,EAChD;AACA,QAAM,YAAY,SAAS,gBAAgB;AAC3C,QAAM,aAAa,GAAG,aAAa;AACnC,QAAM,aAAa,MAChB,IAAI,CAAC,SAAS,KAAK,QAAQ,YAAY,cAAc,CAAC,EACtD,KAAK,GAAG;AAEX,MAAI,YAAY;AAChB,MAAI,WAAW,SAAS,QAAQ,GAAG;AAEjC,gBAAY,WAAW,QAAQ,KAAK,QAAQ,cAAc;AAAA,EAC5D,OAAO;AACL,gBAAY,UAAU,gBAAgB,qBAAqB;AAAA,EAC7D;AACA,SAAO;AAAA,IACL;AAAA,IACA,OAAO,CAAC,SAAS;AAAA,IACjB,YAAY;AAAA,EACd;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|