@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
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/hooks/useSafeRef.ts"],
|
|
4
4
|
"sourcesContent": ["import { useIsomorphicLayoutEffect } from '@tamagui/constants'\nimport { useRef } from 'react'\n\n// dai-shi \uD83D\uDE4F\n// https://dev.to/uhyo_/a-concurrent-mode-safe-version-of-useref-1325\n// probably can live without it though to save a bit of b\n\ntype Raw<T> = {\n hold: boolean\n next: T\n cur: T\n ref: { current: T }\n}\n\nexport const useSafeRef = <T>(initialValue: T) => {\n const rawRef = useRef<Raw<T>>()\n if (!rawRef.current) {\n rawRef.current = {\n hold: true,\n next: initialValue,\n cur: initialValue,\n ref: {\n get current() {\n return raw.hold ? raw.cur : raw.next\n },\n set current(v) {\n if (!raw.hold) {\n raw.next = v\n }\n raw.cur = v\n },\n },\n }\n }\n\n const raw: Raw<T> = rawRef.current\n raw.hold = true\n raw.cur = raw.next\n useIsomorphicLayoutEffect(() => {\n raw.hold = false\n raw.next = raw.cur\n })\n\n return raw.ref\n}\n"],
|
|
5
|
-
"mappings": "AAAA,
|
|
6
|
-
"names": []
|
|
5
|
+
"mappings": "AAAA,OAAS,6BAAAA,MAAiC,qBAC1C,OAAS,UAAAC,MAAc,QAahB,MAAMC,EAAiBC,GAAoB,CAChD,MAAMC,EAASH,EAAe,EACzBG,EAAO,UACVA,EAAO,QAAU,CACf,KAAM,GACN,KAAMD,EACN,IAAKA,EACL,IAAK,CACH,IAAI,SAAU,CACZ,OAAOE,EAAI,KAAOA,EAAI,IAAMA,EAAI,IAClC,EACA,IAAI,QAAQC,EAAG,CACRD,EAAI,OACPA,EAAI,KAAOC,GAEbD,EAAI,IAAMC,CACZ,CACF,CACF,GAGF,MAAMD,EAAcD,EAAO,QAC3B,OAAAC,EAAI,KAAO,GACXA,EAAI,IAAMA,EAAI,KACdL,EAA0B,IAAM,CAC9BK,EAAI,KAAO,GACXA,EAAI,KAAOA,EAAI,GACjB,CAAC,EAEMA,EAAI,GACb",
|
|
6
|
+
"names": ["useIsomorphicLayoutEffect", "useRef", "useSafeRef", "initialValue", "rawRef", "raw", "v"]
|
|
7
7
|
}
|
|
@@ -1,35 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { useRef } from "react";
|
|
3
|
-
const useSafeRef = (initialValue) => {
|
|
4
|
-
const rawRef = useRef();
|
|
5
|
-
if (!rawRef.current) {
|
|
6
|
-
rawRef.current = {
|
|
7
|
-
hold: true,
|
|
8
|
-
next: initialValue,
|
|
9
|
-
cur: initialValue,
|
|
10
|
-
ref: {
|
|
11
|
-
get current() {
|
|
12
|
-
return raw.hold ? raw.cur : raw.next;
|
|
13
|
-
},
|
|
14
|
-
set current(v) {
|
|
15
|
-
if (!raw.hold) {
|
|
16
|
-
raw.next = v;
|
|
17
|
-
}
|
|
18
|
-
raw.cur = v;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
const raw = rawRef.current;
|
|
24
|
-
raw.hold = true;
|
|
25
|
-
raw.cur = raw.next;
|
|
26
|
-
useIsomorphicLayoutEffect(() => {
|
|
27
|
-
raw.hold = false;
|
|
28
|
-
raw.next = raw.cur;
|
|
29
|
-
});
|
|
30
|
-
return raw.ref;
|
|
31
|
-
};
|
|
32
|
-
export {
|
|
33
|
-
useSafeRef
|
|
34
|
-
};
|
|
1
|
+
import{useIsomorphicLayoutEffect as u}from"@tamagui/constants";import{useRef as c}from"react";const s=t=>{const e=c();e.current||(e.current={hold:!0,next:t,cur:t,ref:{get current(){return r.hold?r.cur:r.next},set current(o){r.hold||(r.next=o),r.cur=o}}});const r=e.current;return r.hold=!0,r.cur=r.next,u(()=>{r.hold=!1,r.next=r.cur}),r.ref};export{s as useSafeRef};
|
|
35
2
|
//# sourceMappingURL=useSafeRef.mjs.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/hooks/useSafeRef.ts"],
|
|
4
4
|
"sourcesContent": ["import { useIsomorphicLayoutEffect } from '@tamagui/constants'\nimport { useRef } from 'react'\n\n// dai-shi \uD83D\uDE4F\n// https://dev.to/uhyo_/a-concurrent-mode-safe-version-of-useref-1325\n// probably can live without it though to save a bit of b\n\ntype Raw<T> = {\n hold: boolean\n next: T\n cur: T\n ref: { current: T }\n}\n\nexport const useSafeRef = <T>(initialValue: T) => {\n const rawRef = useRef<Raw<T>>()\n if (!rawRef.current) {\n rawRef.current = {\n hold: true,\n next: initialValue,\n cur: initialValue,\n ref: {\n get current() {\n return raw.hold ? raw.cur : raw.next\n },\n set current(v) {\n if (!raw.hold) {\n raw.next = v\n }\n raw.cur = v\n },\n },\n }\n }\n\n const raw: Raw<T> = rawRef.current\n raw.hold = true\n raw.cur = raw.next\n useIsomorphicLayoutEffect(() => {\n raw.hold = false\n raw.next = raw.cur\n })\n\n return raw.ref\n}\n"],
|
|
5
|
-
"mappings": "AAAA,
|
|
6
|
-
"names": []
|
|
5
|
+
"mappings": "AAAA,OAAS,6BAAAA,MAAiC,qBAC1C,OAAS,UAAAC,MAAc,QAahB,MAAMC,EAAiBC,GAAoB,CAChD,MAAMC,EAASH,EAAe,EACzBG,EAAO,UACVA,EAAO,QAAU,CACf,KAAM,GACN,KAAMD,EACN,IAAKA,EACL,IAAK,CACH,IAAI,SAAU,CACZ,OAAOE,EAAI,KAAOA,EAAI,IAAMA,EAAI,IAClC,EACA,IAAI,QAAQC,EAAG,CACRD,EAAI,OACPA,EAAI,KAAOC,GAEbD,EAAI,IAAMC,CACZ,CACF,CACF,GAGF,MAAMD,EAAcD,EAAO,QAC3B,OAAAC,EAAI,KAAO,GACXA,EAAI,IAAMA,EAAI,KACdL,EAA0B,IAAM,CAC9BK,EAAI,KAAO,GACXA,EAAI,KAAOA,EAAI,GACjB,CAAC,EAEMA,EAAI,GACb",
|
|
6
|
+
"names": ["useIsomorphicLayoutEffect", "useRef", "useSafeRef", "initialValue", "rawRef", "raw", "v"]
|
|
7
7
|
}
|
|
@@ -1,11 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { useRef, useState } from "react";
|
|
3
|
-
const useServerState = isRSC ? (val) => [val, idFn] : useState;
|
|
4
|
-
const useServerRef = isRSC ? (val) => ({ current: val }) : useRef;
|
|
5
|
-
const idFn = () => {
|
|
6
|
-
};
|
|
7
|
-
export {
|
|
8
|
-
useServerRef,
|
|
9
|
-
useServerState
|
|
10
|
-
};
|
|
1
|
+
import{isRSC as t}from"@tamagui/constants";import{useRef as s,useState as n}from"react";const u=t?e=>[e,o]:n,f=t?e=>({current:e}):s,o=()=>{};export{f as useServerRef,u as useServerState};
|
|
11
2
|
//# sourceMappingURL=useServerHooks.js.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/hooks/useServerHooks.tsx"],
|
|
4
4
|
"sourcesContent": ["import { isRSC } from '@tamagui/constants'\nimport { useRef, useState } from 'react'\n\nexport const useServerState = isRSC\n ? (((val: any) => [val, idFn]) as unknown as typeof useState)\n : useState\n\nexport const useServerRef = isRSC\n ? (((val: any) => ({ current: val })) as unknown as typeof useRef)\n : useRef\n\nconst idFn = () => {}\n"],
|
|
5
|
-
"mappings": "AAAA,
|
|
6
|
-
"names": []
|
|
5
|
+
"mappings": "AAAA,OAAS,SAAAA,MAAa,qBACtB,OAAS,UAAAC,EAAQ,YAAAC,MAAgB,QAE1B,MAAMC,EAAiBH,EACvBI,GAAa,CAACA,EAAKC,CAAI,EAC1BH,EAESI,EAAeN,EACrBI,IAAc,CAAE,QAASA,CAAI,GAChCH,EAEEI,EAAO,IAAM,CAAC",
|
|
6
|
+
"names": ["isRSC", "useRef", "useState", "useServerState", "val", "idFn", "useServerRef"]
|
|
7
7
|
}
|
|
@@ -1,11 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { useRef, useState } from "react";
|
|
3
|
-
const useServerState = isRSC ? (val) => [val, idFn] : useState;
|
|
4
|
-
const useServerRef = isRSC ? (val) => ({ current: val }) : useRef;
|
|
5
|
-
const idFn = () => {
|
|
6
|
-
};
|
|
7
|
-
export {
|
|
8
|
-
useServerRef,
|
|
9
|
-
useServerState
|
|
10
|
-
};
|
|
1
|
+
import{isRSC as t}from"@tamagui/constants";import{useRef as s,useState as n}from"react";const u=t?e=>[e,o]:n,f=t?e=>({current:e}):s,o=()=>{};export{f as useServerRef,u as useServerState};
|
|
11
2
|
//# sourceMappingURL=useServerHooks.mjs.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/hooks/useServerHooks.tsx"],
|
|
4
4
|
"sourcesContent": ["import { isRSC } from '@tamagui/constants'\nimport { useRef, useState } from 'react'\n\nexport const useServerState = isRSC\n ? (((val: any) => [val, idFn]) as unknown as typeof useState)\n : useState\n\nexport const useServerRef = isRSC\n ? (((val: any) => ({ current: val })) as unknown as typeof useRef)\n : useRef\n\nconst idFn = () => {}\n"],
|
|
5
|
-
"mappings": "AAAA,
|
|
6
|
-
"names": []
|
|
5
|
+
"mappings": "AAAA,OAAS,SAAAA,MAAa,qBACtB,OAAS,UAAAC,EAAQ,YAAAC,MAAgB,QAE1B,MAAMC,EAAiBH,EACvBI,GAAa,CAACA,EAAKC,CAAI,EAC1BH,EAESI,EAAeN,EACrBI,IAAc,CAAE,QAASA,CAAI,GAChCH,EAEEI,EAAO,IAAM,CAAC",
|
|
6
|
+
"names": ["isRSC", "useRef", "useState", "useServerState", "val", "idFn", "useServerRef"]
|
|
7
7
|
}
|
|
@@ -1,37 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { useContext } from "react";
|
|
3
|
-
import { FontLanguageContext } from "../contexts/FontLanguageContext.js";
|
|
4
|
-
import { TextAncestorContext } from "../contexts/TextAncestorContext.js";
|
|
5
|
-
import { useSplitStyles } from "../helpers/getSplitStyles.js";
|
|
6
|
-
import { useMedia } from "./useMedia.js";
|
|
7
|
-
import { useTheme } from "./useTheme.js";
|
|
8
|
-
function useStyle(base, style, options) {
|
|
9
|
-
const isText = base.staticConfig.isText;
|
|
10
|
-
const hasTextAncestor = !!(isWeb && isText ? useContext(TextAncestorContext) : false);
|
|
11
|
-
const languageContext = isRSC ? null : useContext(FontLanguageContext);
|
|
12
|
-
const theme = useTheme();
|
|
13
|
-
const media = useMedia();
|
|
14
|
-
const out = useSplitStyles(
|
|
15
|
-
style,
|
|
16
|
-
base.staticConfig,
|
|
17
|
-
theme,
|
|
18
|
-
{
|
|
19
|
-
...options,
|
|
20
|
-
mediaState: media,
|
|
21
|
-
hasTextAncestor,
|
|
22
|
-
resolveVariablesAs: "auto"
|
|
23
|
-
},
|
|
24
|
-
null,
|
|
25
|
-
languageContext || void 0,
|
|
26
|
-
isText ? "span" : "div",
|
|
27
|
-
options == null ? void 0 : options.debug
|
|
28
|
-
);
|
|
29
|
-
return {
|
|
30
|
-
style: Object.keys(out.style).length ? out.style : null,
|
|
31
|
-
classNames: out.classNames
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
export {
|
|
35
|
-
useStyle
|
|
36
|
-
};
|
|
1
|
+
import{isRSC as p,isWeb as u}from"@tamagui/constants";import{useContext as n}from"react";import{FontLanguageContext as y}from"../contexts/FontLanguageContext.js";import{TextAncestorContext as S}from"../contexts/TextAncestorContext.js";import{useSplitStyles as c}from"../helpers/getSplitStyles.js";import{useMedia as f}from"./useMedia.js";import{useTheme as g}from"./useTheme.js";function O(o,r,t){const s=o.staticConfig.isText,a=!!(u&&s&&n(S)),m=p?null:n(y),l=g(),i=f(),e=c(r,o.staticConfig,l,{...t,mediaState:i,hasTextAncestor:a,resolveVariablesAs:"auto"},null,m||void 0,s?"span":"div",t==null?void 0:t.debug);return{style:Object.keys(e.style).length?e.style:null,classNames:e.classNames}}export{O as useStyle};
|
|
37
2
|
//# sourceMappingURL=useStyle.js.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/hooks/useStyle.tsx"],
|
|
4
4
|
"sourcesContent": ["import { isRSC, isWeb } from '@tamagui/constants'\nimport { useContext } from 'react'\n\nimport { FontLanguageContext } from '../contexts/FontLanguageContext.js'\nimport { TextAncestorContext } from '../contexts/TextAncestorContext.js'\nimport { useSplitStyles } from '../helpers/getSplitStyles.js'\nimport {\n DebugProp,\n GetProps,\n SplitStyleState,\n TamaguiComponent,\n TextNonStyleProps,\n} from '../types'\nimport { useMedia } from './useMedia.js'\nimport { useTheme } from './useTheme.js'\n\nexport function useStyle<\n Component extends TamaguiComponent,\n StyleProps = Omit<GetProps<Component>, keyof TextNonStyleProps>\n>(\n base: Component,\n style: StyleProps,\n options?: Partial<SplitStyleState> & { debug?: DebugProp }\n) {\n const isText = base.staticConfig.isText\n const hasTextAncestor = !!(isWeb && isText ? useContext(TextAncestorContext) : false)\n const languageContext = isRSC ? null : useContext(FontLanguageContext)\n const theme = useTheme()\n const media = useMedia()\n const out = useSplitStyles(\n style as any,\n base.staticConfig,\n theme,\n {\n ...(options as any),\n mediaState: media,\n hasTextAncestor,\n resolveVariablesAs: 'auto',\n },\n null,\n languageContext || undefined,\n isText ? 'span' : 'div',\n options?.debug\n )\n return {\n style: Object.keys(out.style).length ? out.style : null,\n classNames: out.classNames,\n }\n}\n"],
|
|
5
|
-
"mappings": "AAAA,
|
|
6
|
-
"names": []
|
|
5
|
+
"mappings": "AAAA,OAAS,SAAAA,EAAO,SAAAC,MAAa,qBAC7B,OAAS,cAAAC,MAAkB,QAE3B,OAAS,uBAAAC,MAA2B,qCACpC,OAAS,uBAAAC,MAA2B,qCACpC,OAAS,kBAAAC,MAAsB,+BAQ/B,OAAS,YAAAC,MAAgB,gBACzB,OAAS,YAAAC,MAAgB,gBAElB,SAASC,EAIdC,EACAC,EACAC,EACA,CACA,MAAMC,EAASH,EAAK,aAAa,OAC3BI,EAAkB,CAAC,EAAEZ,GAASW,GAASV,EAAWE,CAAmB,GACrEU,EAAkBd,EAAQ,KAAOE,EAAWC,CAAmB,EAC/DY,EAAQR,EAAS,EACjBS,EAAQV,EAAS,EACjBW,EAAMZ,EACVK,EACAD,EAAK,aACLM,EACA,CACE,GAAIJ,EACJ,WAAYK,EACZ,gBAAAH,EACA,mBAAoB,MACtB,EACA,KACAC,GAAmB,OACnBF,EAAS,OAAS,MAClBD,GAAA,YAAAA,EAAS,KACX,EACA,MAAO,CACL,MAAO,OAAO,KAAKM,EAAI,KAAK,EAAE,OAASA,EAAI,MAAQ,KACnD,WAAYA,EAAI,UAClB,CACF",
|
|
6
|
+
"names": ["isRSC", "isWeb", "useContext", "FontLanguageContext", "TextAncestorContext", "useSplitStyles", "useMedia", "useTheme", "useStyle", "base", "style", "options", "isText", "hasTextAncestor", "languageContext", "theme", "media", "out"]
|
|
7
7
|
}
|
|
@@ -1,37 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { useContext } from "react";
|
|
3
|
-
import { FontLanguageContext } from "../contexts/FontLanguageContext.js";
|
|
4
|
-
import { TextAncestorContext } from "../contexts/TextAncestorContext.js";
|
|
5
|
-
import { useSplitStyles } from "../helpers/getSplitStyles.js";
|
|
6
|
-
import { useMedia } from "./useMedia.js";
|
|
7
|
-
import { useTheme } from "./useTheme.js";
|
|
8
|
-
function useStyle(base, style, options) {
|
|
9
|
-
const isText = base.staticConfig.isText;
|
|
10
|
-
const hasTextAncestor = !!(isWeb && isText ? useContext(TextAncestorContext) : false);
|
|
11
|
-
const languageContext = isRSC ? null : useContext(FontLanguageContext);
|
|
12
|
-
const theme = useTheme();
|
|
13
|
-
const media = useMedia();
|
|
14
|
-
const out = useSplitStyles(
|
|
15
|
-
style,
|
|
16
|
-
base.staticConfig,
|
|
17
|
-
theme,
|
|
18
|
-
{
|
|
19
|
-
...options,
|
|
20
|
-
mediaState: media,
|
|
21
|
-
hasTextAncestor,
|
|
22
|
-
resolveVariablesAs: "auto"
|
|
23
|
-
},
|
|
24
|
-
null,
|
|
25
|
-
languageContext || void 0,
|
|
26
|
-
isText ? "span" : "div",
|
|
27
|
-
options == null ? void 0 : options.debug
|
|
28
|
-
);
|
|
29
|
-
return {
|
|
30
|
-
style: Object.keys(out.style).length ? out.style : null,
|
|
31
|
-
classNames: out.classNames
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
export {
|
|
35
|
-
useStyle
|
|
36
|
-
};
|
|
1
|
+
import{isRSC as p,isWeb as u}from"@tamagui/constants";import{useContext as n}from"react";import{FontLanguageContext as y}from"../contexts/FontLanguageContext.js";import{TextAncestorContext as S}from"../contexts/TextAncestorContext.js";import{useSplitStyles as c}from"../helpers/getSplitStyles.js";import{useMedia as f}from"./useMedia.js";import{useTheme as g}from"./useTheme.js";function O(o,r,t){const s=o.staticConfig.isText,a=!!(u&&s&&n(S)),m=p?null:n(y),l=g(),i=f(),e=c(r,o.staticConfig,l,{...t,mediaState:i,hasTextAncestor:a,resolveVariablesAs:"auto"},null,m||void 0,s?"span":"div",t==null?void 0:t.debug);return{style:Object.keys(e.style).length?e.style:null,classNames:e.classNames}}export{O as useStyle};
|
|
37
2
|
//# sourceMappingURL=useStyle.mjs.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/hooks/useStyle.tsx"],
|
|
4
4
|
"sourcesContent": ["import { isRSC, isWeb } from '@tamagui/constants'\nimport { useContext } from 'react'\n\nimport { FontLanguageContext } from '../contexts/FontLanguageContext.js'\nimport { TextAncestorContext } from '../contexts/TextAncestorContext.js'\nimport { useSplitStyles } from '../helpers/getSplitStyles.js'\nimport {\n DebugProp,\n GetProps,\n SplitStyleState,\n TamaguiComponent,\n TextNonStyleProps,\n} from '../types'\nimport { useMedia } from './useMedia.js'\nimport { useTheme } from './useTheme.js'\n\nexport function useStyle<\n Component extends TamaguiComponent,\n StyleProps = Omit<GetProps<Component>, keyof TextNonStyleProps>\n>(\n base: Component,\n style: StyleProps,\n options?: Partial<SplitStyleState> & { debug?: DebugProp }\n) {\n const isText = base.staticConfig.isText\n const hasTextAncestor = !!(isWeb && isText ? useContext(TextAncestorContext) : false)\n const languageContext = isRSC ? null : useContext(FontLanguageContext)\n const theme = useTheme()\n const media = useMedia()\n const out = useSplitStyles(\n style as any,\n base.staticConfig,\n theme,\n {\n ...(options as any),\n mediaState: media,\n hasTextAncestor,\n resolveVariablesAs: 'auto',\n },\n null,\n languageContext || undefined,\n isText ? 'span' : 'div',\n options?.debug\n )\n return {\n style: Object.keys(out.style).length ? out.style : null,\n classNames: out.classNames,\n }\n}\n"],
|
|
5
|
-
"mappings": "AAAA,
|
|
6
|
-
"names": []
|
|
5
|
+
"mappings": "AAAA,OAAS,SAAAA,EAAO,SAAAC,MAAa,qBAC7B,OAAS,cAAAC,MAAkB,QAE3B,OAAS,uBAAAC,MAA2B,qCACpC,OAAS,uBAAAC,MAA2B,qCACpC,OAAS,kBAAAC,MAAsB,+BAQ/B,OAAS,YAAAC,MAAgB,gBACzB,OAAS,YAAAC,MAAgB,gBAElB,SAASC,EAIdC,EACAC,EACAC,EACA,CACA,MAAMC,EAASH,EAAK,aAAa,OAC3BI,EAAkB,CAAC,EAAEZ,GAASW,GAASV,EAAWE,CAAmB,GACrEU,EAAkBd,EAAQ,KAAOE,EAAWC,CAAmB,EAC/DY,EAAQR,EAAS,EACjBS,EAAQV,EAAS,EACjBW,EAAMZ,EACVK,EACAD,EAAK,aACLM,EACA,CACE,GAAIJ,EACJ,WAAYK,EACZ,gBAAAH,EACA,mBAAoB,MACtB,EACA,KACAC,GAAmB,OACnBF,EAAS,OAAS,MAClBD,GAAA,YAAAA,EAAS,KACX,EACA,MAAO,CACL,MAAO,OAAO,KAAKM,EAAI,KAAK,EAAE,OAASA,EAAI,MAAQ,KACnD,WAAYA,EAAI,UAClB,CACF",
|
|
6
|
+
"names": ["isRSC", "isWeb", "useContext", "FontLanguageContext", "TextAncestorContext", "useSplitStyles", "useMedia", "useTheme", "useStyle", "base", "style", "options", "isText", "hasTextAncestor", "languageContext", "theme", "media", "out"]
|
|
7
7
|
}
|
|
@@ -1,205 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { useContext, useEffect, useMemo, useState } from "react";
|
|
3
|
-
import { getConfig } from "../config.js";
|
|
4
|
-
import { isDevTools } from "../constants/isDevTools.js";
|
|
5
|
-
import { createProxy } from "../helpers/createProxy.js";
|
|
6
|
-
import {
|
|
7
|
-
ThemeManager,
|
|
8
|
-
hasNoThemeUpdatingProps
|
|
9
|
-
} from "../helpers/ThemeManager.js";
|
|
10
|
-
import { ThemeManagerContext } from "../helpers/ThemeManagerContext.js";
|
|
11
|
-
import { GetThemeUnwrapped } from "./getThemeUnwrapped.js";
|
|
12
|
-
import { useServerRef } from "./useServerHooks.js";
|
|
13
|
-
const emptyProps = { name: null };
|
|
14
|
-
function getDefaultThemeProxied() {
|
|
15
|
-
const config = getConfig();
|
|
16
|
-
const name = Object.keys(config.themes)[0];
|
|
17
|
-
return getThemeProxied({
|
|
18
|
-
theme: config.themes[name],
|
|
19
|
-
name
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
const useTheme = (props = emptyProps) => {
|
|
23
|
-
var _a;
|
|
24
|
-
return (isRSC ? null : (_a = useThemeWithState(props)) == null ? void 0 : _a.theme) || getDefaultThemeProxied();
|
|
25
|
-
};
|
|
26
|
-
const useThemeWithState = (props) => {
|
|
27
|
-
var _a;
|
|
28
|
-
const keys = useServerRef([]);
|
|
29
|
-
const changedTheme = useChangeThemeEffect(
|
|
30
|
-
props,
|
|
31
|
-
false,
|
|
32
|
-
isClient ? () => {
|
|
33
|
-
var _a2;
|
|
34
|
-
return ((_a2 = props.shouldUpdate) == null ? void 0 : _a2.call(props)) ?? keys.current.length === 0;
|
|
35
|
-
} : void 0
|
|
36
|
-
);
|
|
37
|
-
const { themeManager, isNewTheme, theme, name, className } = changedTheme;
|
|
38
|
-
if (process.env.NODE_ENV === "development") {
|
|
39
|
-
if (isWeb && isNewTheme && className === ((_a = themeManager == null ? void 0 : themeManager.parentManager) == null ? void 0 : _a.state.className)) {
|
|
40
|
-
console.error("Should always change, duplicating ThemeMananger bug", themeManager);
|
|
41
|
-
}
|
|
42
|
-
if (props.debug === "verbose") {
|
|
43
|
-
console.groupCollapsed(" \u{1F539} useTheme =>", name);
|
|
44
|
-
const logs = { ...props, name, className, ...isDevTools && { theme } };
|
|
45
|
-
for (const key in logs) {
|
|
46
|
-
console.log(" ", key, logs[key]);
|
|
47
|
-
}
|
|
48
|
-
console.groupEnd();
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
if (!changedTheme.theme) {
|
|
52
|
-
if (process.env.NODE_ENV === "development") {
|
|
53
|
-
console.warn("No theme found", name, props, themeManager);
|
|
54
|
-
}
|
|
55
|
-
return null;
|
|
56
|
-
}
|
|
57
|
-
const proxiedTheme = useMemo(() => {
|
|
58
|
-
return getThemeProxied(changedTheme);
|
|
59
|
-
}, [theme, isNewTheme, name, className, themeManager]);
|
|
60
|
-
return {
|
|
61
|
-
...changedTheme,
|
|
62
|
-
theme: proxiedTheme
|
|
63
|
-
};
|
|
64
|
-
};
|
|
65
|
-
function getThemeProxied({
|
|
66
|
-
theme,
|
|
67
|
-
themeManager,
|
|
68
|
-
keys
|
|
69
|
-
}) {
|
|
70
|
-
return createProxy(theme, {
|
|
71
|
-
has(_, key) {
|
|
72
|
-
if (typeof key === "string") {
|
|
73
|
-
if (key[0] === "$")
|
|
74
|
-
key = key.slice(1);
|
|
75
|
-
return themeManager == null ? void 0 : themeManager.allKeys.has(key);
|
|
76
|
-
}
|
|
77
|
-
return Reflect.has(theme, key);
|
|
78
|
-
},
|
|
79
|
-
get(_, key) {
|
|
80
|
-
if (key === GetThemeUnwrapped) {
|
|
81
|
-
return theme;
|
|
82
|
-
}
|
|
83
|
-
if (key === "undefined" || key === "__proto__" || key === "$typeof" || typeof key !== "string" || !themeManager) {
|
|
84
|
-
return Reflect.get(_, key);
|
|
85
|
-
}
|
|
86
|
-
const keyString = key;
|
|
87
|
-
if (key[0] === "$") {
|
|
88
|
-
key = key.slice(1);
|
|
89
|
-
}
|
|
90
|
-
const val = themeManager.getValue(key);
|
|
91
|
-
const currentKeys = keys == null ? void 0 : keys.current;
|
|
92
|
-
if (val && currentKeys) {
|
|
93
|
-
return new Proxy(val, {
|
|
94
|
-
// when they touch the actual value we only track it
|
|
95
|
-
// if its a variable (web), its ignored!
|
|
96
|
-
get(_2, subkey) {
|
|
97
|
-
if (subkey === "val" && !currentKeys.includes(keyString)) {
|
|
98
|
-
currentKeys.push(keyString);
|
|
99
|
-
}
|
|
100
|
-
return Reflect.get(val, subkey);
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
return val;
|
|
105
|
-
}
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
const activeThemeManagers = /* @__PURE__ */ new Set();
|
|
109
|
-
const useChangeThemeEffect = (props, root = false, disableUpdate) => {
|
|
110
|
-
if (isRSC) {
|
|
111
|
-
return {
|
|
112
|
-
...createState().state,
|
|
113
|
-
themeManager: null
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
const parentManager = useContext(ThemeManagerContext);
|
|
117
|
-
const {
|
|
118
|
-
debug,
|
|
119
|
-
// @ts-expect-error internal use only
|
|
120
|
-
disable
|
|
121
|
-
} = props;
|
|
122
|
-
if (disable) {
|
|
123
|
-
if (!parentManager)
|
|
124
|
-
throw `\u274C`;
|
|
125
|
-
return {
|
|
126
|
-
...parentManager.state,
|
|
127
|
-
isNewTheme: false,
|
|
128
|
-
themeManager: parentManager
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
const [themeState, setThemeState] = useState(createState);
|
|
132
|
-
const { isNewTheme, state, themeManager, mounted } = themeState;
|
|
133
|
-
if (!isServer) {
|
|
134
|
-
useEffect(() => {
|
|
135
|
-
if (disable)
|
|
136
|
-
return;
|
|
137
|
-
if (props.inverse && !mounted) {
|
|
138
|
-
setThemeState({ ...themeState, mounted: true });
|
|
139
|
-
return;
|
|
140
|
-
}
|
|
141
|
-
activeThemeManagers.add(themeManager);
|
|
142
|
-
return () => {
|
|
143
|
-
activeThemeManagers.delete(themeManager);
|
|
144
|
-
};
|
|
145
|
-
}, [disable, state, isNewTheme, debug]);
|
|
146
|
-
}
|
|
147
|
-
const isInversingOnMount = Boolean(!themeState.mounted && props.inverse);
|
|
148
|
-
const shouldReturnParentState = hasNoThemeUpdatingProps(props) || isInversingOnMount;
|
|
149
|
-
if (shouldReturnParentState) {
|
|
150
|
-
if (!parentManager)
|
|
151
|
-
throw "impossible";
|
|
152
|
-
if (process.env.NODE_ENV === "development" && props.debug === "verbose")
|
|
153
|
-
console.log("useTheme hasNoThemeUpdatingProps", parentManager.state.name, "isInversingOnMount", isInversingOnMount);
|
|
154
|
-
return {
|
|
155
|
-
...parentManager.state,
|
|
156
|
-
className: isInversingOnMount ? "" : parentManager.state.className,
|
|
157
|
-
themeManager: parentManager,
|
|
158
|
-
isNewTheme: false
|
|
159
|
-
};
|
|
160
|
-
}
|
|
161
|
-
updateState();
|
|
162
|
-
return {
|
|
163
|
-
...state,
|
|
164
|
-
isNewTheme,
|
|
165
|
-
themeManager
|
|
166
|
-
};
|
|
167
|
-
function createState(prev) {
|
|
168
|
-
if (prev && (disableUpdate == null ? void 0 : disableUpdate())) {
|
|
169
|
-
return prev;
|
|
170
|
-
}
|
|
171
|
-
const _ = new ThemeManager(props, root ? "root" : parentManager);
|
|
172
|
-
const isNewTheme2 = _ !== parentManager;
|
|
173
|
-
const mounted2 = !props.inverse ? true : root || (prev == null ? void 0 : prev.mounted);
|
|
174
|
-
return {
|
|
175
|
-
// ThemeManager returns parentManager if no change
|
|
176
|
-
isNewTheme: isNewTheme2,
|
|
177
|
-
state: { ..._.state },
|
|
178
|
-
themeManager: _,
|
|
179
|
-
mounted: mounted2
|
|
180
|
-
};
|
|
181
|
-
}
|
|
182
|
-
function updateState(updatingManager) {
|
|
183
|
-
if (disableUpdate == null ? void 0 : disableUpdate()) {
|
|
184
|
-
return;
|
|
185
|
-
}
|
|
186
|
-
const manager = updatingManager ?? themeManager;
|
|
187
|
-
const next = manager.getState(props, parentManager);
|
|
188
|
-
const shouldChange = manager.getStateShouldChange(next, isNewTheme ? state : null);
|
|
189
|
-
if (shouldChange) {
|
|
190
|
-
setThemeState(createState);
|
|
191
|
-
} else {
|
|
192
|
-
if (!next && (parentManager == null ? void 0 : parentManager.state.name) !== state.name) {
|
|
193
|
-
setThemeState(createState);
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
};
|
|
198
|
-
export {
|
|
199
|
-
activeThemeManagers,
|
|
200
|
-
getThemeProxied,
|
|
201
|
-
useChangeThemeEffect,
|
|
202
|
-
useTheme,
|
|
203
|
-
useThemeWithState
|
|
204
|
-
};
|
|
1
|
+
import{isClient as V,isRSC as P,isServer as b,isWeb as v}from"@tamagui/constants";import{useContext as $,useEffect as j,useLayoutEffect as B,useMemo as I,useState as W}from"react";import{getConfig as G}from"../config.js";import{isDevTools as K}from"../constants/isDevTools.js";import{createProxy as q}from"../helpers/createProxy.js";import{ThemeManager as z}from"../helpers/ThemeManager.js";import{ThemeManagerContext as A}from"../helpers/ThemeManagerContext.js";import{GetThemeUnwrapped as F}from"./getThemeUnwrapped.js";import{useServerRef as H}from"./useServerHooks.js";const J={name:null};function L(){const t=G(),r=Object.keys(t.themes)[0];return C({theme:t.themes[r],name:r})}const me=(t=J)=>{var r;return(P?null:(r=Q(t))==null?void 0:r.theme)||L()},Q=t=>{const r=H([]),a=X(t,!1,r.current,V?()=>{var m;return((m=t.shouldUpdate)==null?void 0:m.call(t))??r.current.length===0}:void 0),{themeManager:s,theme:e,name:u,className:h}=a;if(process.env.NODE_ENV==="development"&&t.debug==="verbose"){console.groupCollapsed(" \u{1F539} useTheme =>",u);const m={...t,name:u,className:h,...K&&{theme:e}};for(const c in m)console.log(" ",c,m[c]);console.groupEnd()}if(!a.theme)return process.env.NODE_ENV==="development"&&console.warn("No theme found",u,t,s),null;const f=I(()=>C(a,r.current),[e,u,h,s]);return{...a,theme:f}};function C({theme:t,themeManager:r},a){return q(t,{has(s,e){return typeof e=="string"?(e[0]==="$"&&(e=e.slice(1)),r==null?void 0:r.allKeys.has(e)):Reflect.has(t,e)},get(s,e){if(e===F)return t;if(e==="__proto__"||e==="$typeof"||typeof e!="string"||!r)return Reflect.get(s,e);const u=e[0]==="$"?e.slice(1):e,h=r.getValue(u);return h&&a?new Proxy(h,{get(f,m){return m==="val"&&!a.includes(u)&&a.push(u),Reflect.get(h,m)}}):h}})}const E=new Set,X=(t,r=!1,a,s)=>{if(P)return{isNewTheme:!1,...T().state,themeManager:null};const e=$(A),{debug:u,disable:h}=t;if(h){if(!e)throw"\u274C";return{isNewTheme:!1,...e.state,themeManager:e}}const[f,m]=W(T),{state:c,themeManager:i,mounted:_,isNewTheme:l}=f,N=Boolean(!f.mounted&&t.inverse),R=N;function D(n=i){return n.getState(t,e===i?e.parentManager:e)}function x(n=i){const o=D(n);if(o&&(s==null?void 0:s())!==!0&&n.getStateShouldChange(o,c))return o}if(b||(j(()=>{if(t.inverse&&!_){m({...f,mounted:!0});return}if(l&&i)return E.add(i),()=>{E.delete(i)}},[l,i,c,u]),B(()=>{const n=x(i);n&&(l&&i.updateState(n,!0),m(T));const o=e==null?void 0:e.onChangeTheme((g,d)=>{(a!=null&&a.length||l)&&(process.env.NODE_ENV==="development"&&t.debug&&(a!=null&&a.length)&&console.log("onChangeTheme",{props:t,name:g,manager:d,parentManager:e,keys:a}),m(T))});return()=>{o==null||o()}},[e,l,t.componentName,t.inverse,t.name,t.reset])),R){if(!e)throw"impossible";return{isNewTheme:!1,...e.state,className:N?"":e.state.className,themeManager:e}}return{...c,isNewTheme:l,themeManager:i};function T(n){if(n&&(s!=null&&s()))return n;let o,g;const d=()=>new z(t,r?"root":e);if(n!=null&&n.themeManager){o=n.themeManager;const S=x(o);S&&(g=S,!n.isNewTheme||!v?o=d():o.updateState(S,!0))}else o=d();const M=Boolean(o!==e||n&&o.state.name!==n.state.name),O=t.inverse?r||(n==null?void 0:n.mounted):!0;g||(g=M?{...o.state}:{...e.state});const w={state:g,themeManager:o,isNewTheme:M,mounted:O};return process.env.NODE_ENV==="development"&&t.debug&&(console.groupCollapsed(" \u{1F537} useChangeThemeEffect createState"),console.log({props:t,parentManager:e,themeManager:o,prev:n,response:w}),console.groupEnd()),w}};export{E as activeThemeManagers,C as getThemeProxied,X as useChangeThemeEffect,me as useTheme,Q as useThemeWithState};
|
|
205
2
|
//# sourceMappingURL=useTheme.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/hooks/useTheme.tsx"],
|
|
4
|
-
"sourcesContent": ["/* eslint-disable no-console */\nimport { isClient, isRSC, isServer, isWeb } from '@tamagui/constants'\nimport { useContext, useEffect, useMemo, useState } from 'react'\n\nimport { getConfig } from '../config.js'\nimport { isDevTools } from '../constants/isDevTools.js'\nimport { createProxy } from '../helpers/createProxy.js'\nimport {\n ThemeManager,\n ThemeManagerState,\n hasNoThemeUpdatingProps,\n} from '../helpers/ThemeManager.js'\nimport { ThemeManagerContext } from '../helpers/ThemeManagerContext.js'\nimport type { ThemeParsed, ThemeProps } from '../types.js'\nimport { GetThemeUnwrapped } from './getThemeUnwrapped.js'\nimport { useServerRef } from './useServerHooks.js'\n\nexport type ChangedThemeResponse = {\n themeManager: ThemeManager | null\n name: string\n
|
|
5
|
-
"mappings": "AACA,
|
|
6
|
-
"names": ["_a", "_", "
|
|
4
|
+
"sourcesContent": ["/* eslint-disable no-console */\nimport { isClient, isRSC, isServer, isWeb } from '@tamagui/constants'\nimport { useContext, useEffect, useLayoutEffect, useMemo, useState } from 'react'\n\nimport { getConfig } from '../config.js'\nimport { isDevTools } from '../constants/isDevTools.js'\nimport { isVariable } from '../createVariable.js'\nimport { createProxy } from '../helpers/createProxy.js'\nimport {\n ThemeManager,\n ThemeManagerState,\n hasNoThemeUpdatingProps,\n} from '../helpers/ThemeManager.js'\nimport { ThemeManagerContext } from '../helpers/ThemeManagerContext.js'\nimport type { ThemeParsed, ThemeProps } from '../types.js'\nimport { GetThemeUnwrapped } from './getThemeUnwrapped.js'\nimport { useServerRef } from './useServerHooks.js'\n\nexport type ChangedThemeResponse = {\n isNewTheme: boolean\n themeManager: ThemeManager | null\n name: string\n theme?: ThemeParsed | null\n className?: string\n}\n\ntype State = {\n state: ThemeManagerState\n themeManager: ThemeManager\n isNewTheme: boolean\n mounted?: boolean\n}\n\nconst emptyProps = { name: null }\n\nfunction getDefaultThemeProxied() {\n const config = getConfig()\n const name = Object.keys(config.themes)[0]\n return getThemeProxied({\n theme: config.themes[name],\n name,\n })\n}\n\nexport const useTheme = (props: ThemeProps = emptyProps): ThemeParsed => {\n return (isRSC ? null : useThemeWithState(props)?.theme) || getDefaultThemeProxied()\n}\n\nexport const useThemeWithState = (props: ThemeProps) => {\n const keys = useServerRef<string[]>([])\n\n const changedTheme = useChangeThemeEffect(\n props,\n false,\n keys.current,\n isClient\n ? () => {\n return props.shouldUpdate?.() ?? keys.current.length === 0\n }\n : undefined\n )\n\n const { themeManager, theme, name, className } = changedTheme\n\n if (process.env.NODE_ENV === 'development' && props.debug === 'verbose') {\n console.groupCollapsed(' \uD83D\uDD39 useTheme =>', name)\n const logs = { ...props, name, className, ...(isDevTools && { theme }) }\n for (const key in logs) {\n console.log(' ', key, logs[key])\n }\n console.groupEnd()\n }\n\n if (!changedTheme.theme) {\n if (process.env.NODE_ENV === 'development') {\n console.warn('No theme found', name, props, themeManager)\n }\n return null\n }\n\n const proxiedTheme = useMemo(() => {\n return getThemeProxied(changedTheme as any, keys.current)\n }, [theme, name, className, themeManager])\n\n return {\n ...changedTheme,\n theme: proxiedTheme,\n }\n}\n\nexport function getThemeProxied(\n {\n theme,\n themeManager,\n }: Partial<ChangedThemeResponse> & {\n theme: ThemeParsed\n },\n keys?: string[]\n) {\n return createProxy(theme, {\n has(_, key) {\n if (typeof key === 'string') {\n if (key[0] === '$') key = key.slice(1)\n return themeManager?.allKeys.has(key)\n }\n return Reflect.has(theme, key)\n },\n get(_, key) {\n if (key === GetThemeUnwrapped) {\n return theme\n }\n if (\n key === '__proto__' ||\n key === '$typeof' ||\n typeof key !== 'string' ||\n !themeManager\n ) {\n return Reflect.get(_, key)\n }\n\n // auto convert variables to plain\n const keyString = key[0] === '$' ? key.slice(1) : key\n const val = themeManager.getValue(keyString)\n\n if (val && keys) {\n return new Proxy(val as any, {\n // when they touch the actual value we only track it\n // if its a variable (web), its ignored!\n get(_, subkey) {\n if (subkey === 'val' && !keys.includes(keyString)) {\n keys.push(keyString)\n }\n return Reflect.get(val as any, subkey)\n },\n })\n }\n\n return val\n },\n })\n}\n\nexport const activeThemeManagers = new Set<ThemeManager>()\n\nexport const useChangeThemeEffect = (\n props: ThemeProps,\n root = false,\n keys?: string[],\n disableUpdate?: () => boolean\n): ChangedThemeResponse => {\n if (isRSC) {\n // we need context working for this to work well\n return {\n isNewTheme: false,\n ...createState().state,\n themeManager: null,\n }\n }\n const parentManager = useContext(ThemeManagerContext)\n\n const {\n debug,\n // @ts-expect-error internal use only\n disable,\n } = props\n\n if (disable) {\n if (!parentManager) throw `\u274C`\n return {\n isNewTheme: false,\n ...parentManager.state,\n themeManager: parentManager,\n }\n }\n\n const [themeState, setThemeState] = useState<State>(createState)\n const { state, themeManager, mounted, isNewTheme } = themeState\n const isInversingOnMount = Boolean(!themeState.mounted && props.inverse)\n const shouldReturnParentState = isInversingOnMount\n\n function getNextThemeManagerState(manager = themeManager) {\n const next = manager.getState(\n props,\n parentManager === themeManager ? parentManager.parentManager : parentManager\n )\n return next\n }\n\n function getThemeManagerNextStateIfChanged(manager = themeManager) {\n const next = getNextThemeManagerState(manager)\n if (!next) return\n if (disableUpdate?.() === true) return\n if (!manager.getStateShouldChange(next, state)) return\n return next\n }\n\n if (!isServer) {\n useEffect(() => {\n // SSR safe inverse (because server can't know prefers scheme)\n // could be done through fancy selectors like how we do prefers-media\n // but may be a bit of explosion of selectors\n if (props.inverse && !mounted) {\n setThemeState({ ...themeState, mounted: true })\n return\n }\n\n if (!isNewTheme) return\n if (!themeManager) return\n\n activeThemeManagers.add(themeManager)\n\n return () => {\n activeThemeManagers.delete(themeManager)\n }\n }, [isNewTheme, themeManager, state, debug])\n\n // listen for parent change + notify children change\n useLayoutEffect(() => {\n const nextState = getThemeManagerNextStateIfChanged(themeManager)\n\n if (nextState) {\n if (isNewTheme) {\n // if it's a new theme we can just update + publish to children\n themeManager.updateState(nextState, true)\n }\n // if not we will be creating a whole new themeManager\n setThemeState(createState)\n }\n\n const disposeChangeListener = parentManager?.onChangeTheme((name, manager) => {\n if (keys?.length || isNewTheme) {\n if (process.env.NODE_ENV === 'development' && props['debug'] && keys?.length) {\n console.log(`onChangeTheme`, { props, name, manager, parentManager, keys })\n }\n setThemeState(createState)\n }\n })\n\n return () => {\n disposeChangeListener?.()\n }\n }, [\n parentManager,\n isNewTheme,\n props.componentName,\n props.inverse,\n props.name,\n props.reset,\n ])\n }\n\n if (shouldReturnParentState) {\n if (!parentManager) throw 'impossible'\n return {\n isNewTheme: false,\n ...parentManager.state,\n className: isInversingOnMount ? '' : parentManager.state.className,\n themeManager: parentManager,\n }\n }\n\n return {\n ...state,\n isNewTheme,\n themeManager,\n }\n\n function createState(prev?: State): State {\n if (prev && disableUpdate?.()) {\n return prev\n }\n\n // returns previous theme manager if no change\n let themeManager: ThemeManager\n let state: ThemeManagerState | undefined\n\n const getNewThemeManager = () => {\n return new ThemeManager(props, root ? 'root' : parentManager)\n }\n\n if (prev?.themeManager) {\n themeManager = prev.themeManager\n\n const nextState = getThemeManagerNextStateIfChanged(themeManager)\n\n if (nextState) {\n state = nextState\n\n if (!prev.isNewTheme || !isWeb) {\n themeManager = getNewThemeManager()\n } else {\n themeManager.updateState(nextState, true)\n }\n }\n } else {\n themeManager = getNewThemeManager()\n }\n\n const isNewTheme = Boolean(\n themeManager !== parentManager ||\n (prev && themeManager.state.name !== prev.state.name)\n )\n\n // only inverse relies on this for ssr\n const mounted = !props.inverse ? true : root || prev?.mounted\n\n if (!state) {\n state = isNewTheme ? { ...themeManager.state } : { ...parentManager!.state }\n }\n\n const response = {\n state,\n themeManager,\n isNewTheme,\n mounted,\n }\n\n if (process.env.NODE_ENV === 'development' && props['debug']) {\n console.groupCollapsed(` \uD83D\uDD37 useChangeThemeEffect createState`)\n console.log({ props, parentManager, themeManager, prev, response })\n console.groupEnd()\n }\n\n return response\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["isClient", "isRSC", "isServer", "isWeb", "useContext", "useEffect", "useLayoutEffect", "useMemo", "useState", "getConfig", "isDevTools", "createProxy", "ThemeManager", "ThemeManagerContext", "GetThemeUnwrapped", "useServerRef", "emptyProps", "getDefaultThemeProxied", "config", "name", "getThemeProxied", "useTheme", "props", "_a", "useThemeWithState", "keys", "changedTheme", "useChangeThemeEffect", "themeManager", "theme", "className", "logs", "key", "proxiedTheme", "_", "keyString", "val", "subkey", "activeThemeManagers", "root", "disableUpdate", "createState", "parentManager", "debug", "disable", "themeState", "setThemeState", "state", "mounted", "isNewTheme", "isInversingOnMount", "shouldReturnParentState", "getNextThemeManagerState", "manager", "getThemeManagerNextStateIfChanged", "next", "nextState", "disposeChangeListener", "prev", "getNewThemeManager", "response"]
|
|
7
7
|
}
|