@tamagui/web 1.13.3 → 1.14.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 +1 -76
- package/dist/cjs/Tamagui.js.map +2 -2
- package/dist/cjs/addTheme.js +2 -77
- package/dist/cjs/addTheme.js.map +2 -2
- package/dist/cjs/config.js +1 -122
- package/dist/cjs/config.js.map +2 -2
- package/dist/cjs/constants/constants.js +1 -48
- package/dist/cjs/constants/constants.js.map +2 -2
- package/dist/cjs/constants/isDevTools.js +1 -36
- package/dist/cjs/constants/isDevTools.js.map +2 -2
- package/dist/cjs/contexts/AnimationDriverContext.js +1 -29
- package/dist/cjs/contexts/AnimationDriverContext.js.map +2 -2
- package/dist/cjs/contexts/ButtonNestingContext.js +1 -29
- package/dist/cjs/contexts/ButtonNestingContext.js.map +2 -2
- package/dist/cjs/contexts/FontLanguageContext.js +1 -29
- package/dist/cjs/contexts/FontLanguageContext.js.map +2 -2
- package/dist/cjs/contexts/TextAncestorContext.js +1 -29
- package/dist/cjs/contexts/TextAncestorContext.js.map +2 -2
- package/dist/cjs/createComponent.js +2 -874
- package/dist/cjs/createComponent.js.map +3 -3
- package/dist/cjs/createFont.js +1 -68
- package/dist/cjs/createFont.js.map +2 -2
- package/dist/cjs/createShorthands.js +1 -30
- package/dist/cjs/createShorthands.js.map +2 -2
- package/dist/cjs/createTamagui.js +5 -202
- package/dist/cjs/createTamagui.js.map +2 -2
- package/dist/cjs/createTheme.js +1 -30
- package/dist/cjs/createTheme.js.map +2 -2
- package/dist/cjs/createTokens.js +1 -38
- package/dist/cjs/createTokens.js.map +2 -2
- package/dist/cjs/createVariable.js +1 -110
- package/dist/cjs/createVariable.js.map +2 -2
- package/dist/cjs/createVariables.js +1 -59
- package/dist/cjs/createVariables.js.map +2 -2
- package/dist/cjs/helpers/ThemeManager.js +1 -236
- package/dist/cjs/helpers/ThemeManager.js.map +3 -3
- package/dist/cjs/helpers/ThemeManagerContext.js +1 -29
- package/dist/cjs/helpers/ThemeManagerContext.js.map +2 -2
- package/dist/cjs/helpers/createMediaStyle.js +1 -66
- package/dist/cjs/helpers/createMediaStyle.js.map +2 -2
- package/dist/cjs/helpers/createPropMapper.js +2 -431
- package/dist/cjs/helpers/createPropMapper.js.map +2 -2
- package/dist/cjs/helpers/createProxy.js +2 -41
- package/dist/cjs/helpers/createProxy.js.map +2 -2
- package/dist/cjs/helpers/defaultOffset.js +1 -28
- package/dist/cjs/helpers/defaultOffset.js.map +2 -2
- package/dist/cjs/helpers/expandStyle.js +1 -85
- package/dist/cjs/helpers/expandStyle.js.map +2 -2
- package/dist/cjs/helpers/expandStyles.js +1 -76
- package/dist/cjs/helpers/expandStyles.js.map +2 -2
- package/dist/cjs/helpers/extendStaticConfig.js +1 -91
- package/dist/cjs/helpers/extendStaticConfig.js.map +2 -2
- package/dist/cjs/helpers/getAnimationDriver.js +1 -31
- package/dist/cjs/helpers/getAnimationDriver.js.map +2 -2
- package/dist/cjs/helpers/getExpandedShorthands.js +1 -38
- package/dist/cjs/helpers/getExpandedShorthands.js.map +2 -2
- package/dist/cjs/helpers/getFontLanguage.js +1 -28
- package/dist/cjs/helpers/getFontLanguage.js.map +2 -2
- package/dist/cjs/helpers/getSplitStyles.js +3 -865
- package/dist/cjs/helpers/getSplitStyles.js.map +3 -3
- package/dist/cjs/helpers/getStylesAtomic.js +1 -226
- package/dist/cjs/helpers/getStylesAtomic.js.map +2 -2
- package/dist/cjs/helpers/getStylesAtomic.native.js +1 -37
- package/dist/cjs/helpers/getStylesAtomic.native.js.map +2 -2
- package/dist/cjs/helpers/getThemeCSSRules.js +4 -126
- package/dist/cjs/helpers/getThemeCSSRules.js.map +2 -2
- package/dist/cjs/helpers/getThemeCSSRules.native.js +1 -30
- package/dist/cjs/helpers/getThemeCSSRules.native.js.map +2 -2
- package/dist/cjs/helpers/getVariantExtras.js +1 -91
- package/dist/cjs/helpers/getVariantExtras.js.map +2 -2
- package/dist/cjs/helpers/insertStyleRule.js +2 -222
- package/dist/cjs/helpers/insertStyleRule.js.map +2 -2
- package/dist/cjs/helpers/isObj.js +1 -28
- package/dist/cjs/helpers/isObj.js.map +2 -2
- package/dist/cjs/helpers/isTamaguiComponent.js +1 -31
- package/dist/cjs/helpers/isTamaguiComponent.js.map +2 -2
- package/dist/cjs/helpers/isTamaguiElement.js +1 -32
- package/dist/cjs/helpers/isTamaguiElement.js.map +2 -2
- package/dist/cjs/helpers/matchMedia.js +1 -41
- package/dist/cjs/helpers/matchMedia.js.map +2 -2
- package/dist/cjs/helpers/matchMedia.native.js +1 -47
- package/dist/cjs/helpers/matchMedia.native.js.map +2 -2
- package/dist/cjs/helpers/mergeProps.js +1 -53
- package/dist/cjs/helpers/mergeProps.js.map +2 -2
- package/dist/cjs/helpers/normalizeColor.js +1 -66
- package/dist/cjs/helpers/normalizeColor.js.map +2 -2
- package/dist/cjs/helpers/normalizeShadow.js +1 -46
- package/dist/cjs/helpers/normalizeShadow.js.map +2 -2
- package/dist/cjs/helpers/normalizeShadow.native.js +1 -54
- package/dist/cjs/helpers/normalizeShadow.native.js.map +2 -2
- package/dist/cjs/helpers/normalizeStylePropKeys.js +1 -28
- package/dist/cjs/helpers/normalizeStylePropKeys.js.map +2 -2
- package/dist/cjs/helpers/normalizeStylePropKeys.native.js +1 -39
- package/dist/cjs/helpers/normalizeStylePropKeys.native.js.map +2 -2
- package/dist/cjs/helpers/normalizeValueWithProperty.js +1 -125
- package/dist/cjs/helpers/normalizeValueWithProperty.js.map +2 -2
- package/dist/cjs/helpers/proxyThemeVariables.js +1 -39
- package/dist/cjs/helpers/proxyThemeVariables.js.map +2 -2
- package/dist/cjs/helpers/pseudoDescriptors.js +1 -52
- package/dist/cjs/helpers/pseudoDescriptors.js.map +2 -2
- package/dist/cjs/helpers/registerCSSVariable.js +1 -39
- package/dist/cjs/helpers/registerCSSVariable.js.map +2 -2
- package/dist/cjs/helpers/themeable.js +1 -61
- package/dist/cjs/helpers/themeable.js.map +2 -2
- package/dist/cjs/helpers/themes.js +1 -75
- package/dist/cjs/helpers/themes.js.map +2 -2
- package/dist/cjs/helpers/timer.js +1 -34
- package/dist/cjs/helpers/timer.js.map +2 -2
- package/dist/cjs/helpers/useShallowSetState.js +1 -58
- package/dist/cjs/helpers/useShallowSetState.js.map +2 -2
- package/dist/cjs/helpers/warnOnce.js +1 -37
- package/dist/cjs/helpers/warnOnce.js.map +2 -2
- package/dist/cjs/helpers/withStaticProperties.js +1 -32
- package/dist/cjs/helpers/withStaticProperties.js.map +2 -2
- package/dist/cjs/hooks/getThemeUnwrapped.js +1 -33
- package/dist/cjs/hooks/getThemeUnwrapped.js.map +2 -2
- package/dist/cjs/hooks/useAnimationDriver.js +1 -33
- package/dist/cjs/hooks/useAnimationDriver.js.map +2 -2
- package/dist/cjs/hooks/useId.js +1 -28
- package/dist/cjs/hooks/useId.js.map +2 -2
- package/dist/cjs/hooks/useIsTouchDevice.js +1 -32
- package/dist/cjs/hooks/useIsTouchDevice.js.map +2 -2
- package/dist/cjs/hooks/useMedia.js +1 -264
- package/dist/cjs/hooks/useMedia.js.map +2 -2
- package/dist/cjs/hooks/useSafeRef.js +1 -58
- package/dist/cjs/hooks/useSafeRef.js.map +2 -2
- package/dist/cjs/hooks/useServerHooks.js +1 -35
- package/dist/cjs/hooks/useServerHooks.js.map +2 -2
- package/dist/cjs/hooks/useStyle.js +1 -60
- package/dist/cjs/hooks/useStyle.js.map +2 -2
- package/dist/cjs/hooks/useTheme.js +1 -229
- package/dist/cjs/hooks/useTheme.js.map +3 -3
- package/dist/cjs/hooks/useThemeName.js +1 -51
- package/dist/cjs/hooks/useThemeName.js.map +2 -2
- package/dist/cjs/index.js +1 -110
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/inject-styles.js +1 -39
- package/dist/cjs/inject-styles.js.map +2 -2
- package/dist/cjs/insertFont.js +1 -92
- package/dist/cjs/insertFont.js.map +2 -2
- package/dist/cjs/setupHooks.js +1 -33
- package/dist/cjs/setupHooks.js.map +2 -2
- package/dist/cjs/setupReactNative.js +1 -50
- package/dist/cjs/setupReactNative.js.map +2 -2
- package/dist/cjs/styled.js +1 -93
- package/dist/cjs/styled.js.map +2 -2
- package/dist/cjs/types.js +1 -16
- package/dist/cjs/types.js.map +3 -3
- package/dist/cjs/updateTheme.js +1 -46
- package/dist/cjs/updateTheme.js.map +2 -2
- package/dist/cjs/views/AnimationDriverProvider.js +1 -32
- package/dist/cjs/views/AnimationDriverProvider.js.map +2 -2
- package/dist/cjs/views/FontLanguage.js +1 -40
- package/dist/cjs/views/FontLanguage.js.map +2 -2
- package/dist/cjs/views/FontLanguage.native.js +1 -34
- package/dist/cjs/views/FontLanguage.native.js.map +2 -2
- package/dist/cjs/views/FontLanguage.types.js +1 -16
- package/dist/cjs/views/FontLanguage.types.js.map +2 -2
- package/dist/cjs/views/Slot.js +1 -91
- package/dist/cjs/views/Slot.js.map +2 -2
- package/dist/cjs/views/Stack.js +1 -37
- package/dist/cjs/views/Stack.js.map +2 -2
- package/dist/cjs/views/TamaguiProvider.js +1 -90
- package/dist/cjs/views/TamaguiProvider.js.map +2 -2
- package/dist/cjs/views/Text.js +1 -95
- package/dist/cjs/views/Text.js.map +2 -2
- package/dist/cjs/views/Theme.js +1 -80
- package/dist/cjs/views/Theme.js.map +3 -3
- package/dist/cjs/views/ThemeProvider.js +1 -69
- package/dist/cjs/views/ThemeProvider.js.map +2 -2
- package/dist/esm/Tamagui.js +1 -44
- package/dist/esm/Tamagui.js.map +2 -2
- package/dist/esm/Tamagui.mjs +1 -44
- package/dist/esm/Tamagui.mjs.map +2 -2
- package/dist/esm/addTheme.js +2 -53
- package/dist/esm/addTheme.js.map +2 -2
- package/dist/esm/addTheme.mjs +2 -53
- package/dist/esm/addTheme.mjs.map +2 -2
- package/dist/esm/config.js +1 -89
- package/dist/esm/config.js.map +2 -2
- package/dist/esm/config.mjs +1 -89
- package/dist/esm/config.mjs.map +2 -2
- package/dist/esm/constants/constants.js +1 -21
- package/dist/esm/constants/constants.js.map +2 -2
- package/dist/esm/constants/constants.mjs +1 -21
- package/dist/esm/constants/constants.mjs.map +2 -2
- package/dist/esm/constants/isDevTools.js +1 -12
- package/dist/esm/constants/isDevTools.js.map +2 -2
- package/dist/esm/constants/isDevTools.mjs +1 -12
- package/dist/esm/constants/isDevTools.mjs.map +2 -2
- package/dist/esm/contexts/AnimationDriverContext.js +1 -5
- package/dist/esm/contexts/AnimationDriverContext.js.map +2 -2
- package/dist/esm/contexts/AnimationDriverContext.mjs +1 -5
- package/dist/esm/contexts/AnimationDriverContext.mjs.map +2 -2
- package/dist/esm/contexts/ButtonNestingContext.js +1 -5
- package/dist/esm/contexts/ButtonNestingContext.js.map +2 -2
- package/dist/esm/contexts/ButtonNestingContext.mjs +1 -5
- package/dist/esm/contexts/ButtonNestingContext.mjs.map +2 -2
- package/dist/esm/contexts/FontLanguageContext.js +1 -5
- package/dist/esm/contexts/FontLanguageContext.js.map +2 -2
- package/dist/esm/contexts/FontLanguageContext.mjs +1 -5
- package/dist/esm/contexts/FontLanguageContext.mjs.map +2 -2
- package/dist/esm/contexts/TextAncestorContext.js +1 -5
- package/dist/esm/contexts/TextAncestorContext.js.map +2 -2
- package/dist/esm/contexts/TextAncestorContext.mjs +1 -5
- package/dist/esm/contexts/TextAncestorContext.mjs.map +2 -2
- package/dist/esm/createComponent.js +2 -846
- package/dist/esm/createComponent.js.map +3 -3
- package/dist/esm/createComponent.mjs +2 -846
- package/dist/esm/createComponent.mjs.map +3 -3
- package/dist/esm/createFont.js +1 -44
- package/dist/esm/createFont.js.map +2 -2
- package/dist/esm/createFont.mjs +1 -44
- package/dist/esm/createFont.mjs.map +2 -2
- package/dist/esm/createShorthands.js +1 -6
- package/dist/esm/createShorthands.js.map +2 -2
- package/dist/esm/createShorthands.mjs +1 -6
- package/dist/esm/createShorthands.mjs.map +2 -2
- package/dist/esm/createTamagui.js +5 -186
- package/dist/esm/createTamagui.js.map +2 -2
- package/dist/esm/createTamagui.mjs +5 -186
- package/dist/esm/createTamagui.mjs.map +2 -2
- package/dist/esm/createTheme.js +1 -6
- package/dist/esm/createTheme.js.map +2 -2
- package/dist/esm/createTheme.mjs +1 -6
- package/dist/esm/createTheme.mjs.map +2 -2
- package/dist/esm/createTokens.js +1 -14
- package/dist/esm/createTokens.js.map +2 -2
- package/dist/esm/createTokens.mjs +1 -14
- package/dist/esm/createTokens.mjs.map +2 -2
- package/dist/esm/createVariable.js +1 -77
- package/dist/esm/createVariable.js.map +2 -2
- package/dist/esm/createVariable.mjs +1 -77
- package/dist/esm/createVariable.mjs.map +2 -2
- package/dist/esm/createVariables.js +1 -34
- package/dist/esm/createVariables.js.map +2 -2
- package/dist/esm/createVariables.mjs +1 -34
- package/dist/esm/createVariables.mjs.map +2 -2
- package/dist/esm/helpers/ThemeManager.js +1 -211
- package/dist/esm/helpers/ThemeManager.js.map +3 -3
- package/dist/esm/helpers/ThemeManager.mjs +1 -211
- package/dist/esm/helpers/ThemeManager.mjs.map +3 -3
- package/dist/esm/helpers/ThemeManagerContext.js +1 -5
- package/dist/esm/helpers/ThemeManagerContext.js.map +2 -2
- package/dist/esm/helpers/ThemeManagerContext.mjs +1 -5
- package/dist/esm/helpers/ThemeManagerContext.mjs.map +2 -2
- package/dist/esm/helpers/createMediaStyle.js +1 -41
- package/dist/esm/helpers/createMediaStyle.js.map +2 -2
- package/dist/esm/helpers/createMediaStyle.mjs +1 -41
- package/dist/esm/helpers/createMediaStyle.mjs.map +2 -2
- package/dist/esm/helpers/createPropMapper.js +2 -404
- package/dist/esm/helpers/createPropMapper.js.map +2 -2
- package/dist/esm/helpers/createPropMapper.mjs +2 -404
- package/dist/esm/helpers/createPropMapper.mjs.map +2 -2
- package/dist/esm/helpers/createProxy.js +2 -17
- package/dist/esm/helpers/createProxy.js.map +2 -2
- package/dist/esm/helpers/createProxy.mjs +2 -17
- package/dist/esm/helpers/createProxy.mjs.map +2 -2
- package/dist/esm/helpers/defaultOffset.js +1 -4
- package/dist/esm/helpers/defaultOffset.js.map +2 -2
- package/dist/esm/helpers/defaultOffset.mjs +1 -4
- package/dist/esm/helpers/defaultOffset.mjs.map +2 -2
- package/dist/esm/helpers/expandStyle.js +1 -61
- package/dist/esm/helpers/expandStyle.js.map +2 -2
- package/dist/esm/helpers/expandStyle.mjs +1 -61
- package/dist/esm/helpers/expandStyle.mjs.map +2 -2
- package/dist/esm/helpers/expandStyles.js +1 -51
- package/dist/esm/helpers/expandStyles.js.map +2 -2
- package/dist/esm/helpers/expandStyles.mjs +1 -51
- package/dist/esm/helpers/expandStyles.mjs.map +2 -2
- package/dist/esm/helpers/extendStaticConfig.js +1 -66
- package/dist/esm/helpers/extendStaticConfig.js.map +2 -2
- package/dist/esm/helpers/extendStaticConfig.mjs +1 -66
- package/dist/esm/helpers/extendStaticConfig.mjs.map +2 -2
- package/dist/esm/helpers/getAnimationDriver.js +1 -7
- package/dist/esm/helpers/getAnimationDriver.js.map +2 -2
- package/dist/esm/helpers/getAnimationDriver.mjs +1 -7
- package/dist/esm/helpers/getAnimationDriver.mjs.map +2 -2
- package/dist/esm/helpers/getExpandedShorthands.js +1 -14
- package/dist/esm/helpers/getExpandedShorthands.js.map +2 -2
- package/dist/esm/helpers/getExpandedShorthands.mjs +1 -14
- package/dist/esm/helpers/getExpandedShorthands.mjs.map +2 -2
- package/dist/esm/helpers/getFontLanguage.js +1 -4
- package/dist/esm/helpers/getFontLanguage.js.map +2 -2
- package/dist/esm/helpers/getFontLanguage.mjs +1 -4
- package/dist/esm/helpers/getFontLanguage.mjs.map +2 -2
- package/dist/esm/helpers/getSplitStyles.js +3 -866
- package/dist/esm/helpers/getSplitStyles.js.map +3 -3
- package/dist/esm/helpers/getSplitStyles.mjs +3 -866
- package/dist/esm/helpers/getSplitStyles.mjs.map +3 -3
- package/dist/esm/helpers/getStylesAtomic.js +1 -200
- package/dist/esm/helpers/getStylesAtomic.js.map +2 -2
- package/dist/esm/helpers/getStylesAtomic.mjs +1 -200
- package/dist/esm/helpers/getStylesAtomic.mjs.map +2 -2
- package/dist/esm/helpers/getStylesAtomic.native.js +1 -11
- package/dist/esm/helpers/getStylesAtomic.native.js.map +2 -2
- package/dist/esm/helpers/getStylesAtomic.native.mjs +1 -11
- package/dist/esm/helpers/getStylesAtomic.native.mjs.map +2 -2
- package/dist/esm/helpers/getThemeCSSRules.js +4 -102
- package/dist/esm/helpers/getThemeCSSRules.js.map +2 -2
- package/dist/esm/helpers/getThemeCSSRules.mjs +4 -102
- package/dist/esm/helpers/getThemeCSSRules.mjs.map +2 -2
- package/dist/esm/helpers/getThemeCSSRules.native.js +1 -6
- package/dist/esm/helpers/getThemeCSSRules.native.js.map +2 -2
- package/dist/esm/helpers/getThemeCSSRules.native.mjs +1 -6
- package/dist/esm/helpers/getThemeCSSRules.native.mjs.map +2 -2
- package/dist/esm/helpers/getVariantExtras.js +1 -66
- package/dist/esm/helpers/getVariantExtras.js.map +2 -2
- package/dist/esm/helpers/getVariantExtras.mjs +1 -66
- package/dist/esm/helpers/getVariantExtras.mjs.map +2 -2
- package/dist/esm/helpers/insertStyleRule.js +2 -190
- package/dist/esm/helpers/insertStyleRule.js.map +2 -2
- package/dist/esm/helpers/insertStyleRule.mjs +2 -190
- package/dist/esm/helpers/insertStyleRule.mjs.map +2 -2
- package/dist/esm/helpers/isObj.js +1 -4
- package/dist/esm/helpers/isObj.js.map +2 -2
- package/dist/esm/helpers/isObj.mjs +1 -4
- package/dist/esm/helpers/isObj.mjs.map +2 -2
- package/dist/esm/helpers/isTamaguiComponent.js +1 -7
- package/dist/esm/helpers/isTamaguiComponent.js.map +2 -2
- package/dist/esm/helpers/isTamaguiComponent.mjs +1 -7
- package/dist/esm/helpers/isTamaguiComponent.mjs.map +2 -2
- package/dist/esm/helpers/isTamaguiElement.js +1 -8
- package/dist/esm/helpers/isTamaguiElement.js.map +2 -2
- package/dist/esm/helpers/isTamaguiElement.mjs +1 -8
- package/dist/esm/helpers/isTamaguiElement.mjs.map +2 -2
- package/dist/esm/helpers/matchMedia.js +1 -16
- package/dist/esm/helpers/matchMedia.js.map +2 -2
- package/dist/esm/helpers/matchMedia.mjs +1 -16
- package/dist/esm/helpers/matchMedia.mjs.map +2 -2
- package/dist/esm/helpers/matchMedia.native.js +1 -22
- package/dist/esm/helpers/matchMedia.native.js.map +2 -2
- package/dist/esm/helpers/matchMedia.native.mjs +1 -22
- package/dist/esm/helpers/matchMedia.native.mjs.map +2 -2
- package/dist/esm/helpers/mergeProps.js +1 -29
- package/dist/esm/helpers/mergeProps.js.map +2 -2
- package/dist/esm/helpers/mergeProps.mjs +1 -29
- package/dist/esm/helpers/mergeProps.mjs.map +2 -2
- package/dist/esm/helpers/normalizeColor.js +1 -30
- package/dist/esm/helpers/normalizeColor.js.map +2 -2
- package/dist/esm/helpers/normalizeColor.mjs +1 -30
- package/dist/esm/helpers/normalizeColor.mjs.map +2 -2
- package/dist/esm/helpers/normalizeShadow.js +1 -22
- package/dist/esm/helpers/normalizeShadow.js.map +2 -2
- package/dist/esm/helpers/normalizeShadow.mjs +1 -22
- package/dist/esm/helpers/normalizeShadow.mjs.map +2 -2
- package/dist/esm/helpers/normalizeShadow.native.js +1 -30
- package/dist/esm/helpers/normalizeShadow.native.js.map +2 -2
- package/dist/esm/helpers/normalizeShadow.native.mjs +1 -30
- package/dist/esm/helpers/normalizeShadow.native.mjs.map +2 -2
- package/dist/esm/helpers/normalizeStylePropKeys.js +1 -4
- package/dist/esm/helpers/normalizeStylePropKeys.js.map +2 -2
- package/dist/esm/helpers/normalizeStylePropKeys.mjs +1 -4
- package/dist/esm/helpers/normalizeStylePropKeys.mjs.map +2 -2
- package/dist/esm/helpers/normalizeStylePropKeys.native.js +1 -15
- package/dist/esm/helpers/normalizeStylePropKeys.native.js.map +2 -2
- package/dist/esm/helpers/normalizeStylePropKeys.native.mjs +1 -15
- package/dist/esm/helpers/normalizeStylePropKeys.native.mjs.map +2 -2
- package/dist/esm/helpers/normalizeValueWithProperty.js +1 -100
- package/dist/esm/helpers/normalizeValueWithProperty.js.map +2 -2
- package/dist/esm/helpers/normalizeValueWithProperty.mjs +1 -100
- package/dist/esm/helpers/normalizeValueWithProperty.mjs.map +2 -2
- package/dist/esm/helpers/proxyThemeVariables.js +1 -15
- package/dist/esm/helpers/proxyThemeVariables.js.map +2 -2
- package/dist/esm/helpers/proxyThemeVariables.mjs +1 -15
- package/dist/esm/helpers/proxyThemeVariables.mjs.map +2 -2
- package/dist/esm/helpers/pseudoDescriptors.js +1 -28
- package/dist/esm/helpers/pseudoDescriptors.js.map +2 -2
- package/dist/esm/helpers/pseudoDescriptors.mjs +1 -28
- package/dist/esm/helpers/pseudoDescriptors.mjs.map +2 -2
- package/dist/esm/helpers/registerCSSVariable.js +1 -13
- package/dist/esm/helpers/registerCSSVariable.js.map +2 -2
- package/dist/esm/helpers/registerCSSVariable.mjs +1 -13
- package/dist/esm/helpers/registerCSSVariable.mjs.map +2 -2
- package/dist/esm/helpers/themeable.js +1 -27
- package/dist/esm/helpers/themeable.js.map +2 -2
- package/dist/esm/helpers/themeable.mjs +1 -27
- package/dist/esm/helpers/themeable.mjs.map +2 -2
- package/dist/esm/helpers/themes.js +1 -50
- package/dist/esm/helpers/themes.js.map +2 -2
- package/dist/esm/helpers/themes.mjs +1 -50
- package/dist/esm/helpers/themes.mjs.map +2 -2
- package/dist/esm/helpers/timer.js +1 -10
- package/dist/esm/helpers/timer.js.map +2 -2
- package/dist/esm/helpers/timer.mjs +1 -10
- package/dist/esm/helpers/timer.mjs.map +2 -2
- package/dist/esm/helpers/useShallowSetState.js +1 -34
- package/dist/esm/helpers/useShallowSetState.js.map +2 -2
- package/dist/esm/helpers/useShallowSetState.mjs +1 -34
- package/dist/esm/helpers/useShallowSetState.mjs.map +2 -2
- package/dist/esm/helpers/warnOnce.js +1 -13
- package/dist/esm/helpers/warnOnce.js.map +2 -2
- package/dist/esm/helpers/warnOnce.mjs +1 -13
- package/dist/esm/helpers/warnOnce.mjs.map +2 -2
- package/dist/esm/helpers/withStaticProperties.js +1 -8
- package/dist/esm/helpers/withStaticProperties.js.map +2 -2
- package/dist/esm/helpers/withStaticProperties.mjs +1 -8
- package/dist/esm/helpers/withStaticProperties.mjs.map +2 -2
- package/dist/esm/hooks/getThemeUnwrapped.js +1 -8
- package/dist/esm/hooks/getThemeUnwrapped.js.map +2 -2
- package/dist/esm/hooks/getThemeUnwrapped.mjs +1 -8
- package/dist/esm/hooks/getThemeUnwrapped.mjs.map +2 -2
- package/dist/esm/hooks/useAnimationDriver.js +1 -9
- package/dist/esm/hooks/useAnimationDriver.js.map +2 -2
- package/dist/esm/hooks/useAnimationDriver.mjs +1 -9
- package/dist/esm/hooks/useAnimationDriver.mjs.map +2 -2
- package/dist/esm/hooks/useId.js +1 -4
- package/dist/esm/hooks/useId.js.map +2 -2
- package/dist/esm/hooks/useId.mjs +1 -4
- package/dist/esm/hooks/useId.mjs.map +2 -2
- package/dist/esm/hooks/useIsTouchDevice.js +1 -8
- package/dist/esm/hooks/useIsTouchDevice.js.map +2 -2
- package/dist/esm/hooks/useIsTouchDevice.mjs +1 -8
- package/dist/esm/hooks/useIsTouchDevice.mjs.map +2 -2
- package/dist/esm/hooks/useMedia.js +1 -225
- package/dist/esm/hooks/useMedia.js.map +2 -2
- package/dist/esm/hooks/useMedia.mjs +1 -225
- package/dist/esm/hooks/useMedia.mjs.map +2 -2
- package/dist/esm/hooks/useSafeRef.js +1 -34
- package/dist/esm/hooks/useSafeRef.js.map +2 -2
- package/dist/esm/hooks/useSafeRef.mjs +1 -34
- package/dist/esm/hooks/useSafeRef.mjs.map +2 -2
- package/dist/esm/hooks/useServerHooks.js +1 -10
- package/dist/esm/hooks/useServerHooks.js.map +2 -2
- package/dist/esm/hooks/useServerHooks.mjs +1 -10
- package/dist/esm/hooks/useServerHooks.mjs.map +2 -2
- package/dist/esm/hooks/useStyle.js +1 -36
- package/dist/esm/hooks/useStyle.js.map +2 -2
- package/dist/esm/hooks/useStyle.mjs +1 -36
- package/dist/esm/hooks/useStyle.mjs.map +2 -2
- package/dist/esm/hooks/useTheme.js +1 -204
- package/dist/esm/hooks/useTheme.js.map +3 -3
- package/dist/esm/hooks/useTheme.mjs +1 -204
- package/dist/esm/hooks/useTheme.mjs.map +3 -3
- package/dist/esm/hooks/useThemeName.js +1 -27
- package/dist/esm/hooks/useThemeName.js.map +2 -2
- package/dist/esm/hooks/useThemeName.mjs +1 -27
- package/dist/esm/hooks/useThemeName.mjs.map +2 -2
- package/dist/esm/index.js +1 -88
- package/dist/esm/index.js.map +2 -2
- package/dist/esm/index.mjs +1 -88
- package/dist/esm/index.mjs.map +2 -2
- package/dist/esm/inject-styles.js +1 -15
- package/dist/esm/inject-styles.js.map +2 -2
- package/dist/esm/inject-styles.mjs +1 -15
- package/dist/esm/inject-styles.mjs.map +2 -2
- package/dist/esm/insertFont.js +1 -66
- package/dist/esm/insertFont.js.map +2 -2
- package/dist/esm/insertFont.mjs +1 -66
- package/dist/esm/insertFont.mjs.map +2 -2
- package/dist/esm/setupHooks.js +1 -8
- package/dist/esm/setupHooks.js.map +2 -2
- package/dist/esm/setupHooks.mjs +1 -8
- package/dist/esm/setupHooks.mjs.map +2 -2
- package/dist/esm/setupReactNative.js +1 -24
- package/dist/esm/setupReactNative.js.map +2 -2
- package/dist/esm/setupReactNative.mjs +1 -24
- package/dist/esm/setupReactNative.mjs.map +2 -2
- package/dist/esm/styled.js +1 -69
- package/dist/esm/styled.js.map +2 -2
- package/dist/esm/styled.mjs +1 -69
- package/dist/esm/styled.mjs.map +2 -2
- package/dist/esm/updateTheme.js +1 -22
- package/dist/esm/updateTheme.js.map +2 -2
- package/dist/esm/updateTheme.mjs +1 -22
- package/dist/esm/updateTheme.mjs.map +2 -2
- package/dist/esm/views/AnimationDriverProvider.js +1 -8
- package/dist/esm/views/AnimationDriverProvider.js.map +2 -2
- package/dist/esm/views/AnimationDriverProvider.mjs +1 -8
- package/dist/esm/views/AnimationDriverProvider.mjs.map +2 -2
- package/dist/esm/views/FontLanguage.js +1 -16
- package/dist/esm/views/FontLanguage.js.map +2 -2
- package/dist/esm/views/FontLanguage.mjs +1 -16
- package/dist/esm/views/FontLanguage.mjs.map +2 -2
- package/dist/esm/views/FontLanguage.native.js +1 -10
- package/dist/esm/views/FontLanguage.native.js.map +2 -2
- package/dist/esm/views/FontLanguage.native.mjs +1 -10
- package/dist/esm/views/FontLanguage.native.mjs.map +2 -2
- package/dist/esm/views/Slot.js +1 -65
- package/dist/esm/views/Slot.js.map +2 -2
- package/dist/esm/views/Slot.mjs +1 -65
- package/dist/esm/views/Slot.mjs.map +2 -2
- package/dist/esm/views/Stack.js +1 -13
- package/dist/esm/views/Stack.js.map +2 -2
- package/dist/esm/views/Stack.mjs +1 -13
- package/dist/esm/views/Stack.mjs.map +2 -2
- package/dist/esm/views/TamaguiProvider.js +1 -56
- package/dist/esm/views/TamaguiProvider.js.map +2 -2
- package/dist/esm/views/TamaguiProvider.mjs +1 -56
- package/dist/esm/views/TamaguiProvider.mjs.map +2 -2
- package/dist/esm/views/Text.js +1 -71
- package/dist/esm/views/Text.js.map +2 -2
- package/dist/esm/views/Text.mjs +1 -71
- package/dist/esm/views/Text.mjs.map +2 -2
- package/dist/esm/views/Theme.js +1 -55
- package/dist/esm/views/Theme.js.map +3 -3
- package/dist/esm/views/Theme.mjs +1 -55
- package/dist/esm/views/Theme.mjs.map +3 -3
- package/dist/esm/views/ThemeProvider.js +1 -44
- package/dist/esm/views/ThemeProvider.js.map +2 -2
- package/dist/esm/views/ThemeProvider.mjs +1 -44
- package/dist/esm/views/ThemeProvider.mjs.map +2 -2
- package/package.json +9 -9
- package/src/createComponent.tsx +38 -5
- package/src/helpers/ThemeManager.tsx +40 -32
- package/src/helpers/getSplitStyles.tsx +0 -8
- package/src/hooks/useTheme.tsx +145 -93
- package/src/types.tsx +2 -2
- package/src/views/Theme.tsx +49 -27
- package/types/createComponent.d.ts.map +1 -1
- package/types/helpers/ThemeManager.d.ts +1 -0
- package/types/helpers/ThemeManager.d.ts.map +1 -1
- package/types/helpers/getSplitStyles.d.ts.map +1 -1
- package/types/hooks/useTheme.d.ts +5 -7
- package/types/hooks/useTheme.d.ts.map +1 -1
- package/types/types.d.ts +2 -2
- package/types/types.d.ts.map +1 -1
- package/types/views/Theme.d.ts.map +1 -1
|
@@ -1,45 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { isClient } from "@tamagui/constants";
|
|
3
|
-
import { createContext, useLayoutEffect, useMemo } from "react";
|
|
4
|
-
import { THEME_CLASSNAME_PREFIX } from "../constants/constants.js";
|
|
5
|
-
import { Theme } from "./Theme.js";
|
|
6
|
-
const ThemeProviderRootContext = createContext(null);
|
|
7
|
-
const ThemeProvider = (props) => {
|
|
8
|
-
if (isClient) {
|
|
9
|
-
useLayoutEffect(() => {
|
|
10
|
-
if (props.disableRootThemeClass)
|
|
11
|
-
return;
|
|
12
|
-
const cn = `${THEME_CLASSNAME_PREFIX}${props.defaultTheme}`;
|
|
13
|
-
const target = props.themeClassNameOnRoot ? document.documentElement : document.body;
|
|
14
|
-
target.classList.add(cn);
|
|
15
|
-
return () => {
|
|
16
|
-
target.classList.remove(cn);
|
|
17
|
-
};
|
|
18
|
-
}, [props.defaultTheme, props.disableRootThemeClass, props.themeClassNameOnRoot]);
|
|
19
|
-
}
|
|
20
|
-
return /* @__PURE__ */ jsx(
|
|
21
|
-
ThemeProviderRootContext.Provider,
|
|
22
|
-
{
|
|
23
|
-
value: useMemo(() => {
|
|
24
|
-
return {
|
|
25
|
-
defaultTheme: props.defaultTheme
|
|
26
|
-
};
|
|
27
|
-
}, []),
|
|
28
|
-
children: /* @__PURE__ */ jsx(
|
|
29
|
-
Theme,
|
|
30
|
-
{
|
|
31
|
-
className: props.className,
|
|
32
|
-
name: props.defaultTheme,
|
|
33
|
-
forceClassName: props.disableRootThemeClass ? false : void 0,
|
|
34
|
-
_isRoot: true,
|
|
35
|
-
children: props.children
|
|
36
|
-
}
|
|
37
|
-
)
|
|
38
|
-
}
|
|
39
|
-
);
|
|
40
|
-
};
|
|
41
|
-
export {
|
|
42
|
-
ThemeProvider,
|
|
43
|
-
ThemeProviderRootContext
|
|
44
|
-
};
|
|
1
|
+
import{jsx as m}from"react/jsx-runtime";import{isClient as a}from"@tamagui/constants";import{createContext as r,useLayoutEffect as l,useMemo as s}from"react";import{THEME_CLASSNAME_PREFIX as n}from"../constants/constants.js";import{Theme as d}from"./Theme.js";const i=r(null),f=e=>(a&&l(()=>{if(e.disableRootThemeClass)return;const t=`${n}${e.defaultTheme}`,o=e.themeClassNameOnRoot?document.documentElement:document.body;return o.classList.add(t),()=>{o.classList.remove(t)}},[e.defaultTheme,e.disableRootThemeClass,e.themeClassNameOnRoot]),m(i.Provider,{value:s(()=>({defaultTheme:e.defaultTheme}),[]),children:m(d,{className:e.className,name:e.defaultTheme,forceClassName:e.disableRootThemeClass?!1:void 0,_isRoot:!0,children:e.children})}));export{f as ThemeProvider,i as ThemeProviderRootContext};
|
|
45
2
|
//# sourceMappingURL=ThemeProvider.mjs.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/views/ThemeProvider.tsx"],
|
|
4
4
|
"sourcesContent": ["import { isClient } from '@tamagui/constants'\nimport { createContext, useLayoutEffect, useMemo } from 'react'\n\nimport { THEME_CLASSNAME_PREFIX } from '../constants/constants.js'\nimport { Theme } from './Theme.js'\n\nexport type ThemeProviderProps = {\n className?: string\n defaultTheme: string\n disableRootThemeClass?: boolean\n themeClassNameOnRoot?: boolean\n children?: any\n reset?: boolean\n}\n\nexport const ThemeProviderRootContext = createContext<Pick<\n ThemeProviderProps,\n 'defaultTheme'\n> | null>(null)\n\nexport const ThemeProvider = (props: ThemeProviderProps) => {\n // ensure theme is attached to root body node as well to work with modals by default\n if (isClient) {\n useLayoutEffect(() => {\n if (props.disableRootThemeClass) return\n const cn = `${THEME_CLASSNAME_PREFIX}${props.defaultTheme}`\n const target = props.themeClassNameOnRoot ? document.documentElement : document.body\n target.classList.add(cn)\n return () => {\n target.classList.remove(cn)\n }\n }, [props.defaultTheme, props.disableRootThemeClass, props.themeClassNameOnRoot])\n }\n\n return (\n <ThemeProviderRootContext.Provider\n value={useMemo(() => {\n return {\n defaultTheme: props.defaultTheme,\n }\n // NOTE DON'T CHANGE THIS ITS ONLY USED BY useThemeName for SSR safety for now...\n }, [])}\n >\n <Theme\n className={props.className}\n name={props.defaultTheme}\n forceClassName={props.disableRootThemeClass ? false : undefined}\n // @ts-expect-error\n _isRoot\n >\n {props.children}\n </Theme>\n </ThemeProviderRootContext.Provider>\n )\n}\n"],
|
|
5
|
-
"mappings": "AA2CM
|
|
6
|
-
"names": []
|
|
5
|
+
"mappings": "AA2CM,cAAAA,MAAA,oBA3CN,OAAS,YAAAC,MAAgB,qBACzB,OAAS,iBAAAC,EAAe,mBAAAC,EAAiB,WAAAC,MAAe,QAExD,OAAS,0BAAAC,MAA8B,4BACvC,OAAS,SAAAC,MAAa,aAWf,MAAMC,EAA2BL,EAG9B,IAAI,EAEDM,EAAiBC,IAExBR,GACFE,EAAgB,IAAM,CACpB,GAAIM,EAAM,sBAAuB,OACjC,MAAMC,EAAK,GAAGL,IAAyBI,EAAM,eACvCE,EAASF,EAAM,qBAAuB,SAAS,gBAAkB,SAAS,KAChF,OAAAE,EAAO,UAAU,IAAID,CAAE,EAChB,IAAM,CACXC,EAAO,UAAU,OAAOD,CAAE,CAC5B,CACF,EAAG,CAACD,EAAM,aAAcA,EAAM,sBAAuBA,EAAM,oBAAoB,CAAC,EAIhFT,EAACO,EAAyB,SAAzB,CACC,MAAOH,EAAQ,KACN,CACL,aAAcK,EAAM,YACtB,GAEC,CAAC,CAAC,EAEL,SAAAT,EAACM,EAAA,CACC,UAAWG,EAAM,UACjB,KAAMA,EAAM,aACZ,eAAgBA,EAAM,sBAAwB,GAAQ,OAEtD,QAAO,GAEN,SAAAA,EAAM,SACT,EACF",
|
|
6
|
+
"names": ["jsx", "isClient", "createContext", "useLayoutEffect", "useMemo", "THEME_CLASSNAME_PREFIX", "Theme", "ThemeProviderRootContext", "ThemeProvider", "props", "cn", "target"]
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/web",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.14.0",
|
|
4
4
|
"source": "src/index.ts",
|
|
5
5
|
"main": "dist/cjs",
|
|
6
6
|
"module": "dist/esm",
|
|
@@ -27,19 +27,19 @@
|
|
|
27
27
|
"reset.css"
|
|
28
28
|
],
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@tamagui/compose-refs": "1.
|
|
31
|
-
"@tamagui/constants": "1.
|
|
32
|
-
"@tamagui/helpers": "1.
|
|
33
|
-
"@tamagui/normalize-css-color": "1.
|
|
34
|
-
"@tamagui/use-did-finish-ssr": "1.
|
|
35
|
-
"@tamagui/use-event": "1.
|
|
36
|
-
"@tamagui/use-force-update": "1.
|
|
30
|
+
"@tamagui/compose-refs": "1.14.0",
|
|
31
|
+
"@tamagui/constants": "1.14.0",
|
|
32
|
+
"@tamagui/helpers": "1.14.0",
|
|
33
|
+
"@tamagui/normalize-css-color": "1.14.0",
|
|
34
|
+
"@tamagui/use-did-finish-ssr": "1.14.0",
|
|
35
|
+
"@tamagui/use-event": "1.14.0",
|
|
36
|
+
"@tamagui/use-force-update": "1.14.0"
|
|
37
37
|
},
|
|
38
38
|
"peerDependencies": {
|
|
39
39
|
"react": "*"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@tamagui/build": "1.
|
|
42
|
+
"@tamagui/build": "1.14.0",
|
|
43
43
|
"@testing-library/react": "^13.4.0",
|
|
44
44
|
"csstype": "^3.0.10",
|
|
45
45
|
"react": "^18.2.0",
|
package/src/createComponent.tsx
CHANGED
|
@@ -12,6 +12,7 @@ import React, {
|
|
|
12
12
|
useEffect,
|
|
13
13
|
useId,
|
|
14
14
|
useRef,
|
|
15
|
+
useState,
|
|
15
16
|
} from 'react'
|
|
16
17
|
|
|
17
18
|
import { onConfiguredOnce } from './config.js'
|
|
@@ -183,7 +184,9 @@ export function createComponent<
|
|
|
183
184
|
didAccessThemeVariableValue?: boolean
|
|
184
185
|
}
|
|
185
186
|
)
|
|
186
|
-
stateRef.current
|
|
187
|
+
stateRef.current ||= {}
|
|
188
|
+
|
|
189
|
+
const hostRef = useServerRef<TamaguiElement>(null)
|
|
187
190
|
|
|
188
191
|
/**
|
|
189
192
|
* Component state for tracking animations, pseudos
|
|
@@ -290,9 +293,10 @@ export function createComponent<
|
|
|
290
293
|
componentName,
|
|
291
294
|
reset: props.reset,
|
|
292
295
|
inverse: props.themeInverse,
|
|
293
|
-
// @ts-
|
|
296
|
+
// @ts-ignore this is internal use only
|
|
294
297
|
disable: props['data-themeable'],
|
|
295
|
-
debug:
|
|
298
|
+
debug:
|
|
299
|
+
process.env.NODE_ENV === 'development' && props.debug ? { hostRef } : undefined,
|
|
296
300
|
shouldUpdate: () => !!stateRef.current.didAccessThemeVariableValue,
|
|
297
301
|
})!
|
|
298
302
|
|
|
@@ -342,8 +346,6 @@ export function createComponent<
|
|
|
342
346
|
keys: noClassNames && isMediaSpaced ? (splitStyles.hasMedia as any) : null,
|
|
343
347
|
})
|
|
344
348
|
|
|
345
|
-
const hostRef = useServerRef<TamaguiElement>(null)
|
|
346
|
-
|
|
347
349
|
// animation setup
|
|
348
350
|
const isAnimatedReactNativeWeb = isAnimated && avoidClassesWhileAnimating
|
|
349
351
|
|
|
@@ -730,6 +732,37 @@ export function createComponent<
|
|
|
730
732
|
// passPropsToChildren: true,
|
|
731
733
|
})
|
|
732
734
|
|
|
735
|
+
if (process.env.NODE_ENV === 'development') {
|
|
736
|
+
if (props['debug'] === 'visualize') {
|
|
737
|
+
const [onChangeCount, setOnChangeCount] = useState(0)
|
|
738
|
+
|
|
739
|
+
useEffect(() => {
|
|
740
|
+
themeState.themeManager?.onChangeTheme((name, manager) => {
|
|
741
|
+
setOnChangeCount((p) => ++p)
|
|
742
|
+
console.warn(`🖤`, name)
|
|
743
|
+
})
|
|
744
|
+
}, [themeState.themeManager])
|
|
745
|
+
|
|
746
|
+
content = (
|
|
747
|
+
<>
|
|
748
|
+
{content}
|
|
749
|
+
<code>
|
|
750
|
+
<pre>
|
|
751
|
+
{JSON.stringify({
|
|
752
|
+
name: themeState.themeManager?.state.name,
|
|
753
|
+
parent: themeState.themeManager?.state.parentName,
|
|
754
|
+
id: themeState.themeManager?.id,
|
|
755
|
+
parentId: themeState.themeManager?.parentManager?.id,
|
|
756
|
+
isNew: themeState.isNewTheme,
|
|
757
|
+
onChangeCount,
|
|
758
|
+
})}
|
|
759
|
+
</pre>
|
|
760
|
+
</code>
|
|
761
|
+
</>
|
|
762
|
+
)
|
|
763
|
+
}
|
|
764
|
+
}
|
|
765
|
+
|
|
733
766
|
if (process.env.TAMAGUI_TARGET === 'web') {
|
|
734
767
|
if (events || isAnimatedReactNativeWeb) {
|
|
735
768
|
content = (
|
|
@@ -26,7 +26,10 @@ export function hasNoThemeUpdatingProps(props: ThemeProps) {
|
|
|
26
26
|
return !(props.name || props.componentName || props.inverse || props.reset)
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
+
let uid = 0
|
|
30
|
+
|
|
29
31
|
export class ThemeManager {
|
|
32
|
+
id = uid++
|
|
30
33
|
themeListeners = new Set<ThemeListener>()
|
|
31
34
|
parentManager: ThemeManager | null = null
|
|
32
35
|
state: ThemeManagerState = emptyState
|
|
@@ -41,26 +44,28 @@ export class ThemeManager {
|
|
|
41
44
|
}
|
|
42
45
|
if (!parentManager) {
|
|
43
46
|
if (process.env.NODE_ENV !== 'production') {
|
|
44
|
-
|
|
45
|
-
|
|
47
|
+
throw new Error(
|
|
48
|
+
`No parent manager given, this is likely due to duplicated Tamagui dependencies. Check your lockfile for mis-matched versions.`
|
|
49
|
+
)
|
|
46
50
|
}
|
|
47
51
|
throw `❌`
|
|
48
52
|
}
|
|
49
|
-
// copy over listeners
|
|
50
|
-
this.themeListeners = parentManager.themeListeners
|
|
51
53
|
|
|
52
54
|
// no change no props
|
|
53
55
|
if (hasNoThemeUpdatingProps(props)) {
|
|
54
56
|
return parentManager
|
|
55
57
|
}
|
|
58
|
+
|
|
56
59
|
if (parentManager) {
|
|
57
60
|
this.parentManager = parentManager
|
|
58
61
|
}
|
|
62
|
+
|
|
59
63
|
const updatedState = this.getStateIfChanged(props)
|
|
60
64
|
if (updatedState) {
|
|
61
65
|
this.state = updatedState
|
|
62
66
|
return
|
|
63
67
|
}
|
|
68
|
+
|
|
64
69
|
return parentManager || this
|
|
65
70
|
}
|
|
66
71
|
|
|
@@ -76,6 +81,7 @@ export class ThemeManager {
|
|
|
76
81
|
}
|
|
77
82
|
const nextState = this.getStateIfChanged(props)
|
|
78
83
|
if (nextState) {
|
|
84
|
+
this.props = props
|
|
79
85
|
this.state = nextState
|
|
80
86
|
return true
|
|
81
87
|
}
|
|
@@ -172,24 +178,20 @@ function getNextThemeClassName(name: string, isInverting = false) {
|
|
|
172
178
|
return next.replace('light_', '').replace('dark_', '')
|
|
173
179
|
}
|
|
174
180
|
|
|
175
|
-
const cache = new WeakMap<ThemeProps, [ThemeManager, ThemeManagerState | null]>()
|
|
176
|
-
|
|
177
181
|
function getState(
|
|
178
182
|
props: ThemeProps,
|
|
179
183
|
parentManager?: ThemeManager | null
|
|
180
184
|
): ThemeManagerState | null {
|
|
181
|
-
const cached = cache.get(props)
|
|
182
|
-
if (cached && cached[0] === parentManager) {
|
|
183
|
-
return cached[1]
|
|
184
|
-
}
|
|
185
|
-
|
|
186
185
|
const themes = getThemes()
|
|
187
186
|
|
|
188
187
|
if (props.name && props.reset) {
|
|
189
188
|
throw new Error('Cannot reset + set new name')
|
|
190
189
|
}
|
|
190
|
+
|
|
191
191
|
if (props.reset && !parentManager?.parentManager) {
|
|
192
|
-
|
|
192
|
+
if (process.env.NODE_ENV === 'development') {
|
|
193
|
+
console.warn('Cannot reset no grandparent exists')
|
|
194
|
+
}
|
|
193
195
|
return null
|
|
194
196
|
}
|
|
195
197
|
|
|
@@ -204,12 +206,12 @@ function getState(
|
|
|
204
206
|
// components look for most specific, fallback upwards
|
|
205
207
|
const base = parentName.split(THEME_NAME_SEPARATOR)
|
|
206
208
|
const lastSegment = base[base.length - 1]
|
|
207
|
-
const
|
|
209
|
+
const isParentComponentTheme =
|
|
208
210
|
parentName && lastSegment[0].toUpperCase() === lastSegment[0]
|
|
209
|
-
if (
|
|
211
|
+
if (isParentComponentTheme) {
|
|
210
212
|
base.pop() // always remove componentName they can't nest
|
|
211
213
|
}
|
|
212
|
-
const parentBaseTheme =
|
|
214
|
+
const parentBaseTheme = isParentComponentTheme
|
|
213
215
|
? base.slice(0, base.length).join(THEME_NAME_SEPARATOR)
|
|
214
216
|
: parentName
|
|
215
217
|
const max = base.length
|
|
@@ -218,9 +220,18 @@ function getState(
|
|
|
218
220
|
? max // component name only don't search upwards
|
|
219
221
|
: 0
|
|
220
222
|
|
|
221
|
-
// prettier-ignore
|
|
222
223
|
// eslint-disable-next-line no-console
|
|
223
|
-
if (process.env.NODE_ENV === 'development' && props.debug === '
|
|
224
|
+
if (process.env.NODE_ENV === 'development' && typeof props.debug === 'string') {
|
|
225
|
+
console.groupCollapsed('ThemeManager.getState()')
|
|
226
|
+
console.log({
|
|
227
|
+
parentName,
|
|
228
|
+
parentBaseTheme,
|
|
229
|
+
base,
|
|
230
|
+
min,
|
|
231
|
+
max,
|
|
232
|
+
isParentComponentTheme,
|
|
233
|
+
})
|
|
234
|
+
}
|
|
224
235
|
|
|
225
236
|
for (let i = max; i >= min; i--) {
|
|
226
237
|
let prefix = base.slice(0, i).join(THEME_NAME_SEPARATOR)
|
|
@@ -243,12 +254,8 @@ function getState(
|
|
|
243
254
|
if (componentName) {
|
|
244
255
|
// components only look for component themes
|
|
245
256
|
if (nextName) {
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
0,
|
|
249
|
-
prefix.indexOf(THEME_NAME_SEPARATOR)
|
|
250
|
-
)}_${nextName}_${componentName}`
|
|
251
|
-
)
|
|
257
|
+
const beforeSeparator = prefix.slice(0, prefix.indexOf(THEME_NAME_SEPARATOR))
|
|
258
|
+
potentials.push(`${beforeSeparator}_${nextName}_${componentName}`)
|
|
252
259
|
}
|
|
253
260
|
potentials.push(`${prefix}_${componentName}`)
|
|
254
261
|
if (nextName) {
|
|
@@ -258,15 +265,11 @@ function getState(
|
|
|
258
265
|
|
|
259
266
|
const found = potentials.find((t) => t in themes)
|
|
260
267
|
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
268
|
+
if (process.env.NODE_ENV === 'development' && typeof props.debug === 'string') {
|
|
269
|
+
console.log(' - ', { found, potentials })
|
|
270
|
+
}
|
|
264
271
|
|
|
265
272
|
if (found) {
|
|
266
|
-
// optimization return null if not changed
|
|
267
|
-
if (found === parentName) {
|
|
268
|
-
break
|
|
269
|
-
}
|
|
270
273
|
result = {
|
|
271
274
|
name: found,
|
|
272
275
|
theme: getThemeUnwrapped(themes[found]),
|
|
@@ -277,8 +280,13 @@ function getState(
|
|
|
277
280
|
}
|
|
278
281
|
}
|
|
279
282
|
|
|
280
|
-
|
|
281
|
-
|
|
283
|
+
// eslint-disable-next-line no-console
|
|
284
|
+
if (process.env.NODE_ENV === 'development' && typeof props.debug === 'string') {
|
|
285
|
+
console.log({
|
|
286
|
+
result,
|
|
287
|
+
})
|
|
288
|
+
console.trace()
|
|
289
|
+
console.groupEnd()
|
|
282
290
|
}
|
|
283
291
|
|
|
284
292
|
return result
|
|
@@ -881,14 +881,6 @@ export const getSplitStyles: StyleSplitter = (
|
|
|
881
881
|
// always do this at the very end to preserve the order strictly (animations, origin)
|
|
882
882
|
// and allow proper merging of all pseudos before applying
|
|
883
883
|
if (flatTransforms) {
|
|
884
|
-
if (process.env.NODE_ENV === 'development' && debug) {
|
|
885
|
-
// eslint-disable-next-line no-console
|
|
886
|
-
console.log(
|
|
887
|
-
'Merging flat transforms, transform before',
|
|
888
|
-
[...(style.transform || [])],
|
|
889
|
-
flatTransforms
|
|
890
|
-
)
|
|
891
|
-
}
|
|
892
884
|
mergeTransforms(style, flatTransforms, true)
|
|
893
885
|
}
|
|
894
886
|
|