@tamagui/web 3.0.0-beta.831.1 → 3.0.0-beta.889.1
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/createComponent.cjs +12 -1
- package/dist/cjs/createComponent.native.cjs +12 -1
- package/dist/cjs/createComponent.native.js +12 -1
- package/dist/cjs/createComponent.native.js.map +1 -1
- package/dist/cjs/createStyledHOC.cjs +1 -1
- package/dist/cjs/createStyledHOC.native.cjs +1 -1
- package/dist/cjs/createStyledHOC.native.js +1 -1
- package/dist/cjs/createStyledHOC.native.js.map +1 -1
- package/dist/cjs/createVariable.cjs +0 -10
- package/dist/cjs/createVariable.native.cjs +0 -10
- package/dist/cjs/createVariable.native.js +0 -10
- package/dist/cjs/createVariable.native.js.map +1 -1
- package/dist/cjs/helpers/borderComponents.cjs +62 -0
- package/dist/cjs/helpers/borderComponents.native.cjs +82 -0
- package/dist/cjs/helpers/borderComponents.native.js +84 -0
- package/dist/cjs/helpers/borderComponents.native.js.map +1 -0
- package/dist/cjs/helpers/createDesignSystem.cjs +0 -2
- package/dist/cjs/helpers/createStyledContext.cjs +10 -18
- package/dist/cjs/helpers/createStyledContext.native.cjs +14 -18
- package/dist/cjs/helpers/createStyledContext.native.js +14 -18
- package/dist/cjs/helpers/createStyledContext.native.js.map +1 -1
- package/dist/cjs/helpers/formatDiagnostic.cjs +6 -6
- package/dist/cjs/helpers/formatDiagnostic.native.cjs +6 -6
- package/dist/cjs/helpers/formatDiagnostic.native.js +6 -6
- package/dist/cjs/helpers/formatDiagnostic.native.js.map +1 -1
- package/dist/cjs/helpers/getCSSStylesAtomic.cjs +128 -109
- package/dist/cjs/helpers/getCSSStylesAtomic.native.cjs +11 -3
- package/dist/cjs/helpers/getCSSStylesAtomic.native.js +11 -3
- package/dist/cjs/helpers/getCSSStylesAtomic.native.js.map +1 -1
- package/dist/cjs/helpers/getCSSStylesAtomicCompiled.cjs +13 -1
- package/dist/cjs/helpers/getCSSStylesAtomicCompiled.native.cjs +15 -1
- package/dist/cjs/helpers/getCSSStylesAtomicCompiled.native.js +15 -1
- package/dist/cjs/helpers/getCSSStylesAtomicCompiled.native.js.map +1 -1
- package/dist/cjs/helpers/getDynamicVal.cjs +5 -1
- package/dist/cjs/helpers/getDynamicVal.native.cjs +5 -1
- package/dist/cjs/helpers/getDynamicVal.native.js +5 -1
- package/dist/cjs/helpers/getDynamicVal.native.js.map +1 -1
- package/dist/cjs/helpers/getSplitStyles.cjs +1042 -1715
- package/dist/cjs/helpers/getSplitStyles.native.cjs +1081 -1887
- package/dist/cjs/helpers/getSplitStyles.native.js +1081 -1887
- package/dist/cjs/helpers/getSplitStyles.native.js.map +1 -1
- package/dist/cjs/helpers/grammarConfig.cjs +163 -1
- package/dist/cjs/helpers/grammarConfig.native.cjs +186 -1
- package/dist/cjs/helpers/grammarConfig.native.js +186 -1
- package/dist/cjs/helpers/grammarConfig.native.js.map +1 -1
- package/dist/cjs/helpers/insertStyleRule.cjs +5 -1
- package/dist/cjs/helpers/insertStyleRule.native.cjs +7 -1
- package/dist/cjs/helpers/insertStyleRule.native.js +7 -1
- package/dist/cjs/helpers/insertStyleRule.native.js.map +1 -1
- package/dist/cjs/helpers/log.cjs +9 -8
- package/dist/cjs/helpers/log.native.cjs +9 -8
- package/dist/cjs/helpers/log.native.js +9 -8
- package/dist/cjs/helpers/log.native.js.map +1 -1
- package/dist/cjs/helpers/mergeVariants.cjs +44 -13
- package/dist/cjs/helpers/mergeVariants.native.cjs +79 -14
- package/dist/cjs/helpers/mergeVariants.native.js +79 -14
- package/dist/cjs/helpers/mergeVariants.native.js.map +1 -1
- package/dist/cjs/helpers/nativeOnlyProps.cjs +0 -1
- package/dist/cjs/helpers/nativeOnlyProps.native.cjs +0 -1
- package/dist/cjs/helpers/nativeOnlyProps.native.js +0 -1
- package/dist/cjs/helpers/nativeOnlyProps.native.js.map +1 -1
- package/dist/cjs/helpers/nativeStyleEngine.cjs +34 -14
- package/dist/cjs/helpers/nativeStyleEngine.native.cjs +36 -14
- package/dist/cjs/helpers/nativeStyleEngine.native.js +36 -14
- package/dist/cjs/helpers/nativeStyleEngine.native.js.map +1 -1
- package/dist/cjs/helpers/normalizeValueWithProperty.cjs +7 -8
- package/dist/cjs/helpers/normalizeValueWithProperty.native.cjs +9 -8
- package/dist/cjs/helpers/normalizeValueWithProperty.native.js +9 -8
- package/dist/cjs/helpers/normalizeValueWithProperty.native.js.map +1 -1
- package/dist/cjs/helpers/parseBorderShorthand.native.cjs +25 -56
- package/dist/cjs/helpers/parseBorderShorthand.native.js +25 -56
- package/dist/cjs/helpers/parseBorderShorthand.native.js.map +1 -1
- package/dist/cjs/helpers/parseOutlineShorthand.native.cjs +9 -49
- package/dist/cjs/helpers/parseOutlineShorthand.native.js +9 -49
- package/dist/cjs/helpers/parseOutlineShorthand.native.js.map +1 -1
- package/dist/cjs/helpers/resolveSafeArea.cjs +35 -100
- package/dist/cjs/helpers/resolveVariantStyle.cjs +57 -0
- package/dist/cjs/helpers/resolveVariantStyle.native.cjs +67 -0
- package/dist/cjs/helpers/resolveVariantStyle.native.js +69 -0
- package/dist/cjs/helpers/resolveVariantStyle.native.js.map +1 -0
- package/dist/cjs/helpers/styleStaticConfig.cjs +1 -50
- package/dist/cjs/helpers/styleStaticConfig.native.cjs +1 -51
- package/dist/cjs/helpers/styleStaticConfig.native.js +1 -51
- package/dist/cjs/helpers/styleStaticConfig.native.js.map +1 -1
- package/dist/cjs/helpers/styleStaticConfigCore.cjs +107 -0
- package/dist/cjs/helpers/styleStaticConfigCore.native.cjs +127 -0
- package/dist/cjs/helpers/styleStaticConfigCore.native.js +129 -0
- package/dist/cjs/helpers/styleStaticConfigCore.native.js.map +1 -0
- package/dist/cjs/helpers/styledDynamic.cjs +160 -0
- package/dist/cjs/helpers/styledDynamic.native.cjs +195 -0
- package/dist/cjs/helpers/styledDynamic.native.js +197 -0
- package/dist/cjs/helpers/styledDynamic.native.js.map +1 -0
- package/dist/cjs/helpers/tokenCategories.cjs +15 -38
- package/dist/cjs/helpers/tokenCategories.native.cjs +15 -40
- package/dist/cjs/helpers/tokenCategories.native.js +15 -40
- package/dist/cjs/helpers/tokenCategories.native.js.map +1 -1
- package/dist/cjs/helpers/variableValue.cjs +17 -12
- package/dist/cjs/helpers/variableValue.native.cjs +46 -23
- package/dist/cjs/helpers/variableValue.native.js +46 -23
- package/dist/cjs/helpers/variableValue.native.js.map +1 -1
- package/dist/cjs/helpers/warnOnce.cjs +5 -4
- package/dist/cjs/helpers/warnOnce.native.cjs +6 -4
- package/dist/cjs/helpers/warnOnce.native.js +6 -4
- package/dist/cjs/helpers/warnOnce.native.js.map +1 -1
- package/dist/cjs/hooks/useAnimationDriver.cjs +2 -2
- package/dist/cjs/hooks/useAnimationDriver.native.cjs +2 -2
- package/dist/cjs/hooks/useAnimationDriver.native.js +2 -2
- package/dist/cjs/hooks/useAnimationDriver.native.js.map +1 -1
- package/dist/cjs/hooks/useComponentState.cjs +41 -82
- package/dist/cjs/hooks/useComponentState.native.cjs +45 -84
- package/dist/cjs/hooks/useComponentState.native.js +45 -84
- package/dist/cjs/hooks/useComponentState.native.js.map +1 -1
- package/dist/cjs/hooks/useMedia.cjs +2 -2
- package/dist/cjs/hooks/useMedia.native.cjs +2 -2
- package/dist/cjs/hooks/useMedia.native.js +2 -2
- package/dist/cjs/hooks/useMedia.native.js.map +1 -1
- package/dist/cjs/{helpers/directStyleCSS.native.js → hooks/useStyle.cjs} +16 -8
- package/dist/cjs/{helpers/directStyleCSS.native.cjs → hooks/useStyle.native.cjs} +16 -4
- package/dist/cjs/hooks/useStyle.native.js +34 -0
- package/dist/cjs/hooks/useStyle.native.js.map +1 -0
- package/dist/cjs/hooks/useThemeState.cjs +25 -90
- package/dist/cjs/hooks/useThemeState.native.cjs +34 -94
- package/dist/cjs/hooks/useThemeState.native.js +34 -94
- package/dist/cjs/hooks/useThemeState.native.js.map +1 -1
- package/dist/cjs/index.cjs +6 -3
- package/dist/cjs/index.native.cjs +6 -3
- package/dist/cjs/index.native.js +6 -3
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/static-resolve.cjs +2 -2
- package/dist/cjs/static-resolve.native.cjs +2 -2
- package/dist/cjs/static-resolve.native.js +2 -2
- package/dist/cjs/static-resolve.native.js.map +1 -1
- package/dist/cjs/style.cjs +91 -0
- package/dist/cjs/style.native.cjs +98 -0
- package/dist/cjs/style.native.js +100 -0
- package/dist/cjs/style.native.js.map +1 -0
- package/dist/cjs/styled.cjs +11 -6
- package/dist/cjs/styled.native.cjs +11 -6
- package/dist/cjs/styled.native.js +11 -6
- package/dist/cjs/styled.native.js.map +1 -1
- package/dist/cjs/types.cjs +6 -4
- package/dist/cjs/types.native.cjs +6 -4
- package/dist/cjs/types.native.js +6 -4
- package/dist/cjs/types.native.js.map +1 -1
- package/dist/cjs/views/TamaguiProvider.cjs +1 -2
- package/dist/cjs/views/TamaguiProvider.native.cjs +1 -2
- package/dist/cjs/views/TamaguiProvider.native.js +1 -2
- package/dist/cjs/views/TamaguiProvider.native.js.map +1 -1
- package/dist/cjs/views/Text.cjs +17 -12
- package/dist/cjs/views/Text.native.cjs +1 -0
- package/dist/cjs/views/Text.native.js +1 -0
- package/dist/cjs/views/Text.native.js.map +1 -1
- package/dist/cjs/views/Theme.cjs +3 -3
- package/dist/cjs/views/Theme.native.cjs +3 -3
- package/dist/cjs/views/Theme.native.js +3 -3
- package/dist/cjs/views/Theme.native.js.map +1 -1
- package/dist/cjs/views/ThemeDebug.cjs +1 -4
- package/dist/esm/createComponent.mjs +12 -1
- package/dist/esm/createComponent.mjs.map +1 -1
- package/dist/esm/createComponent.native.js +12 -1
- package/dist/esm/createComponent.native.js.map +1 -1
- package/dist/esm/createStyledHOC.mjs +1 -1
- package/dist/esm/createStyledHOC.mjs.map +1 -1
- package/dist/esm/createStyledHOC.native.js +1 -1
- package/dist/esm/createStyledHOC.native.js.map +1 -1
- package/dist/esm/createVariable.mjs +1 -9
- package/dist/esm/createVariable.mjs.map +1 -1
- package/dist/esm/createVariable.native.js +1 -9
- package/dist/esm/createVariable.native.js.map +1 -1
- package/dist/esm/helpers/borderComponents.mjs +37 -0
- package/dist/esm/helpers/borderComponents.mjs.map +1 -0
- package/dist/esm/helpers/borderComponents.native.js +55 -0
- package/dist/esm/helpers/borderComponents.native.js.map +1 -0
- package/dist/esm/helpers/createDesignSystem.mjs +0 -2
- package/dist/esm/helpers/createDesignSystem.mjs.map +1 -1
- package/dist/esm/helpers/createStyledContext.mjs +10 -18
- package/dist/esm/helpers/createStyledContext.mjs.map +1 -1
- package/dist/esm/helpers/createStyledContext.native.js +14 -18
- package/dist/esm/helpers/createStyledContext.native.js.map +1 -1
- package/dist/esm/helpers/formatDiagnostic.mjs +6 -6
- package/dist/esm/helpers/formatDiagnostic.mjs.map +1 -1
- package/dist/esm/helpers/formatDiagnostic.native.js +6 -6
- package/dist/esm/helpers/formatDiagnostic.native.js.map +1 -1
- package/dist/esm/helpers/getCSSStylesAtomic.mjs +126 -109
- package/dist/esm/helpers/getCSSStylesAtomic.mjs.map +1 -1
- package/dist/esm/helpers/getCSSStylesAtomic.native.js +7 -4
- package/dist/esm/helpers/getCSSStylesAtomic.native.js.map +1 -1
- package/dist/esm/helpers/getCSSStylesAtomicCompiled.mjs +8 -1
- package/dist/esm/helpers/getCSSStylesAtomicCompiled.mjs.map +1 -1
- package/dist/esm/helpers/getCSSStylesAtomicCompiled.native.js +10 -1
- package/dist/esm/helpers/getCSSStylesAtomicCompiled.native.js.map +1 -1
- package/dist/esm/helpers/getDynamicVal.mjs +5 -1
- package/dist/esm/helpers/getDynamicVal.mjs.map +1 -1
- package/dist/esm/helpers/getDynamicVal.native.js +5 -1
- package/dist/esm/helpers/getDynamicVal.native.js.map +1 -1
- package/dist/esm/helpers/getSplitStyles.mjs +1034 -1705
- package/dist/esm/helpers/getSplitStyles.mjs.map +1 -1
- package/dist/esm/helpers/getSplitStyles.native.js +1071 -1871
- package/dist/esm/helpers/getSplitStyles.native.js.map +1 -1
- package/dist/esm/helpers/grammarConfig.mjs +164 -2
- package/dist/esm/helpers/grammarConfig.mjs.map +1 -1
- package/dist/esm/helpers/grammarConfig.native.js +187 -2
- package/dist/esm/helpers/grammarConfig.native.js.map +1 -1
- package/dist/esm/helpers/insertStyleRule.mjs +5 -2
- package/dist/esm/helpers/insertStyleRule.mjs.map +1 -1
- package/dist/esm/helpers/insertStyleRule.native.js +7 -2
- package/dist/esm/helpers/insertStyleRule.native.js.map +1 -1
- package/dist/esm/helpers/log.mjs +9 -8
- package/dist/esm/helpers/log.mjs.map +1 -1
- package/dist/esm/helpers/log.native.js +9 -8
- package/dist/esm/helpers/log.native.js.map +1 -1
- package/dist/esm/helpers/mergeVariants.mjs +44 -13
- package/dist/esm/helpers/mergeVariants.mjs.map +1 -1
- package/dist/esm/helpers/mergeVariants.native.js +79 -14
- package/dist/esm/helpers/mergeVariants.native.js.map +1 -1
- package/dist/esm/helpers/nativeOnlyProps.mjs +0 -1
- package/dist/esm/helpers/nativeOnlyProps.mjs.map +1 -1
- package/dist/esm/helpers/nativeOnlyProps.native.js +0 -1
- package/dist/esm/helpers/nativeOnlyProps.native.js.map +1 -1
- package/dist/esm/helpers/nativeStyleEngine.mjs +34 -15
- package/dist/esm/helpers/nativeStyleEngine.mjs.map +1 -1
- package/dist/esm/helpers/nativeStyleEngine.native.js +36 -15
- package/dist/esm/helpers/nativeStyleEngine.native.js.map +1 -1
- package/dist/esm/helpers/normalizeValueWithProperty.mjs +7 -8
- package/dist/esm/helpers/normalizeValueWithProperty.mjs.map +1 -1
- package/dist/esm/helpers/normalizeValueWithProperty.native.js +9 -8
- package/dist/esm/helpers/normalizeValueWithProperty.native.js.map +1 -1
- package/dist/esm/helpers/parseBorderShorthand.native.js +23 -56
- package/dist/esm/helpers/parseBorderShorthand.native.js.map +1 -1
- package/dist/esm/helpers/parseOutlineShorthand.native.js +10 -49
- package/dist/esm/helpers/parseOutlineShorthand.native.js.map +1 -1
- package/dist/esm/helpers/resolveSafeArea.mjs +35 -97
- package/dist/esm/helpers/resolveSafeArea.mjs.map +1 -1
- package/dist/esm/helpers/resolveVariantStyle.mjs +38 -0
- package/dist/esm/helpers/resolveVariantStyle.mjs.map +1 -0
- package/dist/esm/helpers/resolveVariantStyle.native.js +46 -0
- package/dist/esm/helpers/resolveVariantStyle.native.js.map +1 -0
- package/dist/esm/helpers/styleStaticConfig.mjs +1 -50
- package/dist/esm/helpers/styleStaticConfig.mjs.map +1 -1
- package/dist/esm/helpers/styleStaticConfig.native.js +1 -51
- package/dist/esm/helpers/styleStaticConfig.native.js.map +1 -1
- package/dist/esm/helpers/styleStaticConfigCore.mjs +88 -0
- package/dist/esm/helpers/styleStaticConfigCore.mjs.map +1 -0
- package/dist/esm/helpers/styleStaticConfigCore.native.js +106 -0
- package/dist/esm/helpers/styleStaticConfigCore.native.js.map +1 -0
- package/dist/esm/helpers/styledDynamic.mjs +136 -0
- package/dist/esm/helpers/styledDynamic.mjs.map +1 -0
- package/dist/esm/helpers/styledDynamic.native.js +169 -0
- package/dist/esm/helpers/styledDynamic.native.js.map +1 -0
- package/dist/esm/helpers/tokenCategories.mjs +15 -36
- package/dist/esm/helpers/tokenCategories.mjs.map +1 -1
- package/dist/esm/helpers/tokenCategories.native.js +15 -38
- package/dist/esm/helpers/tokenCategories.native.js.map +1 -1
- package/dist/esm/helpers/variableValue.mjs +17 -12
- package/dist/esm/helpers/variableValue.mjs.map +1 -1
- package/dist/esm/helpers/variableValue.native.js +46 -23
- package/dist/esm/helpers/variableValue.native.js.map +1 -1
- package/dist/esm/helpers/warnOnce.mjs +5 -4
- package/dist/esm/helpers/warnOnce.mjs.map +1 -1
- package/dist/esm/helpers/warnOnce.native.js +6 -4
- package/dist/esm/helpers/warnOnce.native.js.map +1 -1
- package/dist/esm/hooks/useAnimationDriver.mjs +2 -2
- package/dist/esm/hooks/useAnimationDriver.mjs.map +1 -1
- package/dist/esm/hooks/useAnimationDriver.native.js +2 -2
- package/dist/esm/hooks/useAnimationDriver.native.js.map +1 -1
- package/dist/esm/hooks/useComponentState.mjs +41 -82
- package/dist/esm/hooks/useComponentState.mjs.map +1 -1
- package/dist/esm/hooks/useComponentState.native.js +45 -84
- package/dist/esm/hooks/useComponentState.native.js.map +1 -1
- package/dist/esm/hooks/useMedia.mjs +2 -2
- package/dist/esm/hooks/useMedia.mjs.map +1 -1
- package/dist/esm/hooks/useMedia.native.js +2 -2
- package/dist/esm/hooks/useMedia.native.js.map +1 -1
- package/dist/esm/hooks/useStyle.mjs +11 -0
- package/dist/esm/hooks/useStyle.mjs.map +1 -0
- package/dist/esm/hooks/useStyle.native.js +11 -0
- package/dist/esm/hooks/useStyle.native.js.map +1 -0
- package/dist/esm/hooks/useThemeState.mjs +25 -90
- package/dist/esm/hooks/useThemeState.mjs.map +1 -1
- package/dist/esm/hooks/useThemeState.native.js +34 -94
- package/dist/esm/hooks/useThemeState.native.js.map +1 -1
- package/dist/esm/index.js +6 -4
- package/dist/esm/index.mjs +6 -4
- package/dist/esm/index.native.js +6 -4
- package/dist/esm/static-resolve.mjs +3 -3
- package/dist/esm/static-resolve.mjs.map +1 -1
- package/dist/esm/static-resolve.native.js +3 -3
- package/dist/esm/static-resolve.native.js.map +1 -1
- package/dist/esm/style.mjs +58 -0
- package/dist/esm/style.mjs.map +1 -0
- package/dist/esm/style.native.js +63 -0
- package/dist/esm/style.native.js.map +1 -0
- package/dist/esm/styled.mjs +12 -6
- package/dist/esm/styled.mjs.map +1 -1
- package/dist/esm/styled.native.js +12 -6
- package/dist/esm/styled.native.js.map +1 -1
- package/dist/esm/types.mjs +3 -4
- package/dist/esm/types.mjs.map +1 -1
- package/dist/esm/types.native.js +3 -4
- package/dist/esm/types.native.js.map +1 -1
- package/dist/esm/views/TamaguiProvider.mjs +1 -2
- package/dist/esm/views/TamaguiProvider.mjs.map +1 -1
- package/dist/esm/views/TamaguiProvider.native.js +1 -2
- package/dist/esm/views/TamaguiProvider.native.js.map +1 -1
- package/dist/esm/views/Text.mjs +17 -12
- package/dist/esm/views/Text.mjs.map +1 -1
- package/dist/esm/views/Theme.mjs +3 -3
- package/dist/esm/views/Theme.mjs.map +1 -1
- package/dist/esm/views/Theme.native.js +3 -3
- package/dist/esm/views/Theme.native.js.map +1 -1
- package/dist/esm/views/ThemeDebug.mjs +1 -4
- package/dist/esm/views/ThemeDebug.mjs.map +1 -1
- package/package.json +15 -15
- package/src/createComponent.tsx +21 -1
- package/src/createStyledHOC.tsx +4 -2
- package/src/createVariable.ts +0 -10
- package/src/helpers/borderComponents.ts +62 -0
- package/src/helpers/createDesignSystem.ts +0 -2
- package/src/helpers/createStyledContext.tsx +15 -53
- package/src/helpers/formatDiagnostic.ts +9 -9
- package/src/helpers/getCSSStylesAtomic.native.ts +6 -3
- package/src/helpers/getCSSStylesAtomic.ts +192 -207
- package/src/helpers/getCSSStylesAtomicCompiled.ts +13 -1
- package/src/helpers/getDynamicVal.ts +4 -0
- package/src/helpers/getSplitStyles.tsx +2080 -3270
- package/src/helpers/grammarConfig.ts +218 -1
- package/src/helpers/insertStyleRule.tsx +4 -2
- package/src/helpers/log.ts +12 -11
- package/src/helpers/mergeVariants.ts +55 -18
- package/src/helpers/nativeOnlyProps.ts +0 -1
- package/src/helpers/nativeStyleEngine.ts +55 -14
- package/src/helpers/normalizeValueWithProperty.ts +10 -12
- package/src/helpers/parseBorderShorthand.native.ts +23 -45
- package/src/helpers/parseOutlineShorthand.native.ts +9 -40
- package/src/helpers/resolveSafeArea.ts +34 -101
- package/src/helpers/resolveVariantStyle.ts +77 -0
- package/src/helpers/styleFrontend.ts +8 -5
- package/src/helpers/styleStaticConfig.ts +5 -72
- package/src/helpers/styleStaticConfigCore.ts +110 -0
- package/src/helpers/styledDynamic.ts +191 -0
- package/src/helpers/tokenCategories.ts +40 -65
- package/src/helpers/variableValue.ts +20 -15
- package/src/helpers/warnOnce.ts +5 -4
- package/src/hooks/useAnimationDriver.ts +6 -2
- package/src/hooks/useComponentState.ts +55 -183
- package/src/hooks/useMedia.tsx +10 -8
- package/src/hooks/useStyle.ts +10 -0
- package/src/hooks/useThemeState.ts +51 -264
- package/src/index.ts +6 -6
- package/src/internalRuntimeTypes.ts +1 -0
- package/src/static-resolve.ts +7 -4
- package/src/style.ts +97 -0
- package/src/styled.tsx +39 -68
- package/src/types.tsx +105 -169
- package/src/views/TamaguiProvider.tsx +0 -2
- package/src/views/Text.tsx +20 -14
- package/src/views/Theme.tsx +13 -9
- package/src/views/ThemeDebug.tsx +0 -1
- package/types/createComponent.d.ts.map +1 -1
- package/types/createStyledHOC.d.ts +1 -1
- package/types/createStyledHOC.d.ts.map +1 -1
- package/types/createVariable.d.ts +0 -2
- package/types/createVariable.d.ts.map +1 -1
- package/types/helpers/borderComponents.d.ts +10 -0
- package/types/helpers/borderComponents.d.ts.map +1 -0
- package/types/helpers/createDesignSystem.d.ts.map +1 -1
- package/types/helpers/createStyledContext.d.ts.map +1 -1
- package/types/helpers/getCSSStylesAtomic.d.ts +20 -19
- package/types/helpers/getCSSStylesAtomic.d.ts.map +1 -1
- package/types/helpers/getCSSStylesAtomic.native.d.ts +5 -0
- package/types/helpers/getCSSStylesAtomic.native.d.ts.map +1 -1
- package/types/helpers/getCSSStylesAtomicCompiled.d.ts +6 -1
- package/types/helpers/getCSSStylesAtomicCompiled.d.ts.map +1 -1
- package/types/helpers/getDynamicVal.d.ts.map +1 -1
- package/types/helpers/getSplitStyles.d.ts +3 -5
- package/types/helpers/getSplitStyles.d.ts.map +1 -1
- package/types/helpers/grammarConfig.d.ts +25 -2
- package/types/helpers/grammarConfig.d.ts.map +1 -1
- package/types/helpers/insertStyleRule.d.ts +1 -0
- package/types/helpers/insertStyleRule.d.ts.map +1 -1
- package/types/helpers/log.d.ts.map +1 -1
- package/types/helpers/mergeVariants.d.ts.map +1 -1
- package/types/helpers/nativeOnlyProps.d.ts +0 -1
- package/types/helpers/nativeOnlyProps.d.ts.map +1 -1
- package/types/helpers/nativeStyleEngine.d.ts +6 -0
- package/types/helpers/nativeStyleEngine.d.ts.map +1 -1
- package/types/helpers/normalizeValueWithProperty.d.ts.map +1 -1
- package/types/helpers/parseBorderShorthand.native.d.ts +1 -0
- package/types/helpers/parseBorderShorthand.native.d.ts.map +1 -1
- package/types/helpers/parseOutlineShorthand.native.d.ts.map +1 -1
- package/types/helpers/resolveSafeArea.d.ts +0 -1
- package/types/helpers/resolveSafeArea.d.ts.map +1 -1
- package/types/helpers/resolveVariantStyle.d.ts +3 -0
- package/types/helpers/resolveVariantStyle.d.ts.map +1 -0
- package/types/helpers/styleFrontend.d.ts +3 -5
- package/types/helpers/styleFrontend.d.ts.map +1 -1
- package/types/helpers/styleStaticConfig.d.ts +4 -9
- package/types/helpers/styleStaticConfig.d.ts.map +1 -1
- package/types/helpers/styleStaticConfigCore.d.ts +4 -0
- package/types/helpers/styleStaticConfigCore.d.ts.map +1 -0
- package/types/helpers/styledDynamic.d.ts +18 -0
- package/types/helpers/styledDynamic.d.ts.map +1 -0
- package/types/helpers/tokenCategories.d.ts +0 -1
- package/types/helpers/tokenCategories.d.ts.map +1 -1
- package/types/helpers/variableValue.d.ts.map +1 -1
- package/types/helpers/warnOnce.d.ts.map +1 -1
- package/types/helpers/webPropsToSkip.native.d.ts +68 -68
- package/types/hooks/useAnimationDriver.d.ts.map +1 -1
- package/types/hooks/useComponentState.d.ts.map +1 -1
- package/types/hooks/useMedia.d.ts.map +1 -1
- package/types/hooks/useStyle.d.ts +4 -0
- package/types/hooks/useStyle.d.ts.map +1 -0
- package/types/hooks/useThemeState.d.ts +1 -11
- package/types/hooks/useThemeState.d.ts.map +1 -1
- package/types/index.d.ts +6 -4
- package/types/index.d.ts.map +1 -1
- package/types/internalRuntimeTypes.d.ts +1 -1
- package/types/internalRuntimeTypes.d.ts.map +1 -1
- package/types/static-resolve.d.ts.map +1 -1
- package/types/style.d.ts +18 -0
- package/types/style.d.ts.map +1 -0
- package/types/styled.d.ts +10 -10
- package/types/styled.d.ts.map +1 -1
- package/types/types.d.ts +74 -49
- package/types/types.d.ts.map +1 -1
- package/types/views/TamaguiProvider.d.ts +1 -1
- package/types/views/TamaguiProvider.d.ts.map +1 -1
- package/types/views/Text.d.ts.map +1 -1
- package/types/views/Theme.d.ts.map +1 -1
- package/types/views/ThemeDebug.d.ts.map +1 -1
- package/dist/cjs/helpers/directStyleCSS.cjs +0 -345
- package/dist/cjs/helpers/directStyleCSS.native.js.map +0 -1
- package/dist/cjs/helpers/directStyleCSSCompiled.cjs +0 -40
- package/dist/cjs/helpers/directStyleCSSCompiled.native.cjs +0 -46
- package/dist/cjs/helpers/directStyleCSSCompiled.native.js +0 -48
- package/dist/cjs/helpers/directStyleCSSCompiled.native.js.map +0 -1
- package/dist/cjs/helpers/getVariantExtras.cjs +0 -91
- package/dist/cjs/helpers/getVariantExtras.native.cjs +0 -94
- package/dist/cjs/helpers/getVariantExtras.native.js +0 -96
- package/dist/cjs/helpers/getVariantExtras.native.js.map +0 -1
- package/dist/cjs/helpers/variantResolvers.cjs +0 -87
- package/dist/cjs/helpers/variantResolvers.native.cjs +0 -140
- package/dist/cjs/helpers/variantResolvers.native.js +0 -142
- package/dist/cjs/helpers/variantResolvers.native.js.map +0 -1
- package/dist/esm/helpers/directStyleCSS.mjs +0 -317
- package/dist/esm/helpers/directStyleCSS.mjs.map +0 -1
- package/dist/esm/helpers/directStyleCSS.native.js +0 -1
- package/dist/esm/helpers/directStyleCSSCompiled.mjs +0 -11
- package/dist/esm/helpers/directStyleCSSCompiled.mjs.map +0 -1
- package/dist/esm/helpers/directStyleCSSCompiled.native.js +0 -15
- package/dist/esm/helpers/directStyleCSSCompiled.native.js.map +0 -1
- package/dist/esm/helpers/getVariantExtras.mjs +0 -69
- package/dist/esm/helpers/getVariantExtras.mjs.map +0 -1
- package/dist/esm/helpers/getVariantExtras.native.js +0 -70
- package/dist/esm/helpers/getVariantExtras.native.js.map +0 -1
- package/dist/esm/helpers/variantResolvers.mjs +0 -65
- package/dist/esm/helpers/variantResolvers.mjs.map +0 -1
- package/dist/esm/helpers/variantResolvers.native.js +0 -116
- package/dist/esm/helpers/variantResolvers.native.js.map +0 -1
- package/src/helpers/directStyleCSS.native.ts +0 -1
- package/src/helpers/directStyleCSS.ts +0 -513
- package/src/helpers/directStyleCSSCompiled.ts +0 -32
- package/src/helpers/getVariantExtras.tsx +0 -95
- package/src/helpers/variantResolvers.ts +0 -121
- package/types/helpers/directStyleCSS.d.ts +0 -28
- package/types/helpers/directStyleCSS.d.ts.map +0 -1
- package/types/helpers/directStyleCSS.native.d.ts +0 -2
- package/types/helpers/directStyleCSS.native.d.ts.map +0 -1
- package/types/helpers/directStyleCSSCompiled.d.ts +0 -10
- package/types/helpers/directStyleCSSCompiled.d.ts.map +0 -1
- package/types/helpers/getVariantExtras.d.ts +0 -4
- package/types/helpers/getVariantExtras.d.ts.map +0 -1
- package/types/helpers/variantResolvers.d.ts +0 -9
- package/types/helpers/variantResolvers.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMedia.js","names":[],"sources":["esm/hooks/useMedia.js"],"sourcesContent":["import { isServer, isWeb, useIsomorphicLayoutEffect } from \"@tamagui/constants\";\nimport { useEffect, useReducer, useRef } from \"react\";\nimport { getSetting } from \"../config\";\nimport { formatDiagnostic } from \"../helpers/formatDiagnostic\";\nimport { isOptimizedForFirstRender } from \"./isOptimizedForFirstRender\";\nimport { matchMedia } from \"../helpers/matchMedia\";\nimport { mediaObjectToString } from \"../helpers/mediaObjectToString\";\nimport {\n getMedia,\n mediaKeyMatch,\n mediaKeys,\n mediaQueryConfig,\n setMediaState\n} from \"../helpers/mediaState\";\nimport { mediaKeyMatch as mediaKeyMatch2 } from \"../helpers/mediaState\";\nlet initState;\nconst dispose = /* @__PURE__ */ new Set();\nlet mediaVersion = 0;\nconst configureMedia = (config) => {\n const { media } = config;\n const mediaQueryDefaultActive = getSetting(\"mediaQueryDefaultActive\");\n if (!media) return;\n mediaVersion++;\n resetMediaTouchTracker();\n publishedState = null;\n for (const key in media) {\n getMedia()[key] = mediaQueryDefaultActive?.[key] || false;\n mediaKeys.add(key);\n }\n Object.assign(mediaQueryConfig, media);\n initState = { ...getMedia() };\n setupMediaListeners();\n};\nfunction unlisten() {\n dispose.forEach((cb) => cb());\n dispose.clear();\n}\nlet setupVersion = -1;\nfunction setupMediaListeners() {\n if (isWeb && isServer) return;\n if (process.env.IS_STATIC) return;\n if (setupVersion === mediaVersion) return;\n setupVersion = mediaVersion;\n unlisten();\n for (const key in mediaQueryConfig) {\n let update = function() {\n const next = !!getMatch().matches;\n if (next === getMedia()[key]) return;\n setMediaState({ ...getMedia(), [key]: next });\n updateMediaListeners();\n };\n const str = mediaObjectToString(mediaQueryConfig[key]);\n const getMatch = () => matchMedia(str);\n const match = getMatch();\n if (!match) {\n throw new Error(\n formatDiagnostic(\n \"TAMAGUI_MEDIA_MATCH\",\n \"useMedia\",\n \"matchMedia returned no MediaQueryList\",\n \"Provide a matchMedia implementation that returns a MediaQueryList\",\n \"key,query,platform\",\n { key, query: str, platform: isWeb ? \"web\" : \"native\" }\n )\n );\n }\n match.addListener(update);\n dispose.add(() => {\n match.removeListener(update);\n });\n update();\n }\n}\nconst listenersByKey = /* @__PURE__ */ new Map();\nconst globalListeners = /* @__PURE__ */ new Set();\nlet publishedState = null;\nconst _mediaListenerStats = {\n publishes: 0,\n notified: 0\n};\nfunction updateMediaListeners() {\n _mediaListenerStats.publishes++;\n const media = getMedia();\n const prev = publishedState;\n publishedState = media;\n if (listenersByKey.size) {\n const woken = /* @__PURE__ */ new Set();\n for (const key of mediaKeys) {\n if (prev !== null && media[key] === prev[key]) continue;\n const bucket = listenersByKey.get(key);\n if (bucket) {\n for (const cb of bucket) woken.add(cb);\n }\n }\n for (const cb of woken) {\n _mediaListenerStats.notified++;\n cb(media);\n }\n }\n globalListeners.forEach((cb) => {\n _mediaListenerStats.notified++;\n cb(media);\n });\n}\nconst States = /* @__PURE__ */ new WeakMap();\nlet touchTrackerProto = null;\nconst refSlot = /* @__PURE__ */ Symbol(\"mediaRefSlot\");\nfunction buildTouchTrackerProto() {\n const proto = {};\n for (const key of mediaKeys) {\n proto[key] = {\n enumerable: true,\n configurable: true,\n get() {\n const slot = this[refSlot];\n if (!disableMediaTouch) {\n slot.keys.add(key);\n }\n return slot.proxyTarget[key];\n }\n };\n }\n return Object.create(null, proto);\n}\nfunction getTouchTrackerProto() {\n if (!touchTrackerProto) touchTrackerProto = buildTouchTrackerProto();\n return touchTrackerProto;\n}\nfunction resetMediaTouchTracker() {\n touchTrackerProto = null;\n}\nfunction setMediaShouldUpdate(ref, enabled, keys, optimizeForFirstRender = false) {\n if (optimizeForFirstRender) return;\n const cur = States.get(ref);\n if (!cur || cur.enabled !== enabled || keys) {\n States.set(ref, {\n ...cur,\n enabled,\n keys\n });\n }\n}\nfunction mediaListenKeys(ref) {\n if (ref.optimizeForFirstRender) return null;\n return (ref.uid ? States.get(ref.uid)?.keys : void 0) || ref.keys;\n}\nfunction indexMediaListener(ref) {\n const keys = mediaListenKeys(ref);\n const cur = ref.listeningTo;\n if (cur !== void 0 && sameMediaKeys(cur, keys)) return;\n unindexMediaListener(ref);\n const cb = ref.onChange;\n if (keys === null) {\n globalListeners.add(cb);\n ref.listeningTo = null;\n return;\n }\n ref.listeningTo = new Set(keys);\n for (const key of keys) {\n let bucket = listenersByKey.get(key);\n if (!bucket) {\n bucket = /* @__PURE__ */ new Set();\n listenersByKey.set(key, bucket);\n }\n bucket.add(cb);\n }\n}\nfunction unindexMediaListener(ref) {\n const keys = ref.listeningTo;\n if (keys === void 0) return;\n ref.listeningTo = void 0;\n const cb = ref.onChange;\n if (keys === null) {\n globalListeners.delete(cb);\n return;\n }\n for (const key of keys) {\n const bucket = listenersByKey.get(key);\n if (!bucket) continue;\n bucket.delete(cb);\n if (!bucket.size) listenersByKey.delete(key);\n }\n}\nfunction sameMediaKeys(a, b) {\n if (a === null || b === null) return a === b;\n if (a.size !== b.size) return false;\n for (const key of b) {\n if (!a.has(key)) return false;\n }\n return true;\n}\nfunction useMedia(componentContext, debug, uid) {\n \"use no memo\";\n const internalRef = useRef(null);\n if (!internalRef.current) {\n const initial = isWeb && !isServer && !getSetting(\"disableSSR\") ? initState : getMedia();\n const optimizeForFirstRender = isOptimizedForFirstRender();\n const r = {\n keys: optimizeForFirstRender ? null : /* @__PURE__ */ new Set(),\n lastState: initial,\n renderVersion: 0,\n proxyTarget: initial,\n proxy: void 0,\n getSnapshot: void 0,\n componentContext,\n uid,\n debug,\n optimizeForFirstRender\n };\n if (optimizeForFirstRender) {\n r.proxy = initial;\n } else {\n const tracker = Object.create(getTouchTrackerProto());\n tracker[refSlot] = {\n proxyTarget: initial,\n keys: r.keys\n };\n r.proxy = tracker;\n }\n r.getSnapshot = () => {\n if (r.optimizeForFirstRender) {\n const ms2 = getMedia();\n if (ms2 === r.lastState) {\n return r.lastState;\n }\n if (r.componentContext?.mediaEmit) {\n r.componentContext.mediaEmit(ms2);\n r.pendingState = ms2;\n return r.lastState;\n }\n r.lastState = ms2;\n return ms2;\n }\n const curKeys = mediaListenKeys(r);\n const { lastState, pendingState } = r;\n if (!curKeys.size) {\n return lastState;\n }\n const ms = getMedia();\n for (const key of curKeys) {\n if (ms[key] !== (pendingState || lastState)[key]) {\n if (process.env.NODE_ENV === \"development\" && r.debug) {\n console.warn(`useMedia() \\u270D\\uFE0F`, key, lastState[key], \"=>\", ms[key]);\n }\n if (r.componentContext?.mediaEmit) {\n r.componentContext.mediaEmit(ms);\n r.pendingState = ms;\n return lastState;\n }\n r.lastState = ms;\n return ms;\n }\n }\n return lastState;\n };\n internalRef.current = r;\n } else {\n internalRef.current.componentContext = componentContext;\n internalRef.current.uid = uid;\n internalRef.current.debug = debug;\n }\n const ref = internalRef.current;\n ref.renderVersion++;\n if (ref.pendingState) {\n ref.lastState = ref.pendingState;\n ref.pendingState = void 0;\n }\n if (ref.keys?.size) {\n ref.keys.clear();\n }\n const [, forceUpdate] = useReducer(incReducer, 0);\n const state = isServer ? initState : ref.optimizeForFirstRender && ref.renderVersion === 1 ? ref.lastState : ref.getSnapshot();\n ref.proxyTarget = state;\n if (!ref.optimizeForFirstRender) {\n ;\n ref.proxy[refSlot].proxyTarget = state;\n }\n useIsomorphicLayoutEffect(() => {\n const synced = ref.getSnapshot();\n if (synced !== ref.proxyTarget) {\n ref.proxyTarget = synced;\n if (!ref.optimizeForFirstRender) {\n ;\n ref.proxy[refSlot].proxyTarget = synced;\n }\n forceUpdate();\n }\n }, []);\n useEffect(() => {\n const renderVersion = ref.renderVersion;\n const shouldSubscribe = ref.optimizeForFirstRender || !ref.uid || !!States.get(ref.uid)?.enabled;\n if (shouldSubscribe) {\n ref.onChange ||= () => {\n const next = ref.getSnapshot();\n if (next !== ref.proxyTarget) {\n ref.proxyTarget = next;\n if (!ref.optimizeForFirstRender) {\n ;\n ref.proxy[refSlot].proxyTarget = next;\n }\n if (ref.uid?.nativeMediaUpdate?.(forceUpdate)) return;\n forceUpdate();\n }\n };\n indexMediaListener(ref);\n } else {\n unindexMediaListener(ref);\n }\n return () => {\n if (ref.renderVersion === renderVersion) {\n unindexMediaListener(ref);\n }\n };\n });\n return ref.optimizeForFirstRender ? state : ref.proxy;\n}\nconst incReducer = (c) => c + 1;\nlet disableMediaTouch = false;\nfunction _disableMediaTouch(val) {\n disableMediaTouch = val;\n}\nfunction getMediaState(mediaGroups, layout) {\n disableMediaTouch = true;\n let res;\n try {\n res = Object.fromEntries(\n [...mediaGroups].map((mediaKey) => {\n return [mediaKey, mediaKeyMatch(mediaKey, layout)];\n })\n );\n } finally {\n disableMediaTouch = false;\n }\n return res;\n}\nconst cachedMediaKeyToQuery = {};\nfunction mediaKeyToQuery(key) {\n return cachedMediaKeyToQuery[key] || (cachedMediaKeyToQuery[key] = mediaObjectToString(mediaQueryConfig[key]));\n}\nexport {\n _disableMediaTouch,\n _mediaListenerStats,\n configureMedia,\n getMediaState,\n mediaKeyMatch2 as mediaKeyMatch,\n mediaKeyToQuery,\n setMediaShouldUpdate,\n setupMediaListeners,\n updateMediaListeners,\n useMedia\n};\n//# sourceMappingURL=useMedia.js.map\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useMedia.js","names":[],"sources":["esm/hooks/useMedia.js"],"sourcesContent":["import { isServer, isWeb, useIsomorphicLayoutEffect } from \"@tamagui/constants\";\nimport { useEffect, useReducer, useRef } from \"react\";\nimport { getSetting } from \"../config\";\nimport { formatDiagnostic } from \"../helpers/formatDiagnostic\";\nimport { isOptimizedForFirstRender } from \"./isOptimizedForFirstRender\";\nimport { matchMedia } from \"../helpers/matchMedia\";\nimport { mediaObjectToString } from \"../helpers/mediaObjectToString\";\nimport {\n getMedia,\n mediaKeyMatch,\n mediaKeys,\n mediaQueryConfig,\n setMediaState\n} from \"../helpers/mediaState\";\nimport { mediaKeyMatch as mediaKeyMatch2 } from \"../helpers/mediaState\";\nlet initState;\nconst dispose = /* @__PURE__ */ new Set();\nlet mediaVersion = 0;\nconst configureMedia = (config) => {\n const { media } = config;\n const mediaQueryDefaultActive = getSetting(\"mediaQueryDefaultActive\");\n if (!media) return;\n mediaVersion++;\n resetMediaTouchTracker();\n publishedState = null;\n for (const key in media) {\n getMedia()[key] = mediaQueryDefaultActive?.[key] || false;\n mediaKeys.add(key);\n }\n Object.assign(mediaQueryConfig, media);\n initState = { ...getMedia() };\n setupMediaListeners();\n};\nfunction unlisten() {\n dispose.forEach((cb) => cb());\n dispose.clear();\n}\nlet setupVersion = -1;\nfunction setupMediaListeners() {\n if (isWeb && isServer) return;\n if (process.env.IS_STATIC) return;\n if (setupVersion === mediaVersion) return;\n setupVersion = mediaVersion;\n unlisten();\n for (const key in mediaQueryConfig) {\n let update = function() {\n const next = !!getMatch().matches;\n if (next === getMedia()[key]) return;\n setMediaState({ ...getMedia(), [key]: next });\n updateMediaListeners();\n };\n const str = mediaObjectToString(mediaQueryConfig[key]);\n const getMatch = () => matchMedia(str);\n const match = getMatch();\n if (!match) {\n throw new Error(\n process.env.NODE_ENV !== \"production\" ? formatDiagnostic(\n \"TAMAGUI_MEDIA_MATCH\",\n \"useMedia\",\n \"matchMedia returned no MediaQueryList\",\n \"Provide a matchMedia implementation that returns a MediaQueryList\",\n \"key,query,platform\",\n { key, query: str, platform: isWeb ? \"web\" : \"native\" }\n ) : \"\\u274C Error 013\"\n );\n }\n match.addListener(update);\n dispose.add(() => {\n match.removeListener(update);\n });\n update();\n }\n}\nconst listenersByKey = /* @__PURE__ */ new Map();\nconst globalListeners = /* @__PURE__ */ new Set();\nlet publishedState = null;\nconst _mediaListenerStats = {\n publishes: 0,\n notified: 0\n};\nfunction updateMediaListeners() {\n _mediaListenerStats.publishes++;\n const media = getMedia();\n const prev = publishedState;\n publishedState = media;\n if (listenersByKey.size) {\n const woken = /* @__PURE__ */ new Set();\n for (const key of mediaKeys) {\n if (prev !== null && media[key] === prev[key]) continue;\n const bucket = listenersByKey.get(key);\n if (bucket) {\n for (const cb of bucket) woken.add(cb);\n }\n }\n for (const cb of woken) {\n _mediaListenerStats.notified++;\n cb(media);\n }\n }\n globalListeners.forEach((cb) => {\n _mediaListenerStats.notified++;\n cb(media);\n });\n}\nconst States = /* @__PURE__ */ new WeakMap();\nlet touchTrackerProto = null;\nconst refSlot = /* @__PURE__ */ Symbol(\"mediaRefSlot\");\nfunction buildTouchTrackerProto() {\n const proto = {};\n for (const key of mediaKeys) {\n proto[key] = {\n enumerable: true,\n configurable: true,\n get() {\n const slot = this[refSlot];\n if (!disableMediaTouch) {\n slot.keys.add(key);\n }\n return slot.proxyTarget[key];\n }\n };\n }\n return Object.create(null, proto);\n}\nfunction getTouchTrackerProto() {\n if (!touchTrackerProto) touchTrackerProto = buildTouchTrackerProto();\n return touchTrackerProto;\n}\nfunction resetMediaTouchTracker() {\n touchTrackerProto = null;\n}\nfunction setMediaShouldUpdate(ref, enabled, keys, optimizeForFirstRender = false) {\n if (optimizeForFirstRender) return;\n const cur = States.get(ref);\n if (!cur || cur.enabled !== enabled || keys) {\n States.set(ref, {\n ...cur,\n enabled,\n keys\n });\n }\n}\nfunction mediaListenKeys(ref) {\n if (ref.optimizeForFirstRender) return null;\n return (ref.uid ? States.get(ref.uid)?.keys : void 0) || ref.keys;\n}\nfunction indexMediaListener(ref) {\n const keys = mediaListenKeys(ref);\n const cur = ref.listeningTo;\n if (cur !== void 0 && sameMediaKeys(cur, keys)) return;\n unindexMediaListener(ref);\n const cb = ref.onChange;\n if (keys === null) {\n globalListeners.add(cb);\n ref.listeningTo = null;\n return;\n }\n ref.listeningTo = new Set(keys);\n for (const key of keys) {\n let bucket = listenersByKey.get(key);\n if (!bucket) {\n bucket = /* @__PURE__ */ new Set();\n listenersByKey.set(key, bucket);\n }\n bucket.add(cb);\n }\n}\nfunction unindexMediaListener(ref) {\n const keys = ref.listeningTo;\n if (keys === void 0) return;\n ref.listeningTo = void 0;\n const cb = ref.onChange;\n if (keys === null) {\n globalListeners.delete(cb);\n return;\n }\n for (const key of keys) {\n const bucket = listenersByKey.get(key);\n if (!bucket) continue;\n bucket.delete(cb);\n if (!bucket.size) listenersByKey.delete(key);\n }\n}\nfunction sameMediaKeys(a, b) {\n if (a === null || b === null) return a === b;\n if (a.size !== b.size) return false;\n for (const key of b) {\n if (!a.has(key)) return false;\n }\n return true;\n}\nfunction useMedia(componentContext, debug, uid) {\n \"use no memo\";\n const internalRef = useRef(null);\n if (!internalRef.current) {\n const initial = isWeb && !isServer && !getSetting(\"disableSSR\") ? initState : getMedia();\n const optimizeForFirstRender = isOptimizedForFirstRender();\n const r = {\n keys: optimizeForFirstRender ? null : /* @__PURE__ */ new Set(),\n lastState: initial,\n renderVersion: 0,\n proxyTarget: initial,\n proxy: void 0,\n getSnapshot: void 0,\n componentContext,\n uid,\n debug,\n optimizeForFirstRender\n };\n if (optimizeForFirstRender) {\n r.proxy = initial;\n } else {\n const tracker = Object.create(getTouchTrackerProto());\n tracker[refSlot] = {\n proxyTarget: initial,\n keys: r.keys\n };\n r.proxy = tracker;\n }\n r.getSnapshot = () => {\n if (r.optimizeForFirstRender) {\n const ms2 = getMedia();\n if (ms2 === r.lastState) {\n return r.lastState;\n }\n if (r.componentContext?.mediaEmit) {\n r.componentContext.mediaEmit(ms2);\n r.pendingState = ms2;\n return r.lastState;\n }\n r.lastState = ms2;\n return ms2;\n }\n const curKeys = mediaListenKeys(r);\n const { lastState, pendingState } = r;\n if (!curKeys.size) {\n return lastState;\n }\n const ms = getMedia();\n for (const key of curKeys) {\n if (ms[key] !== (pendingState || lastState)[key]) {\n if (process.env.NODE_ENV === \"development\" && r.debug) {\n console.warn(`useMedia() \\u270D\\uFE0F`, key, lastState[key], \"=>\", ms[key]);\n }\n if (r.componentContext?.mediaEmit) {\n r.componentContext.mediaEmit(ms);\n r.pendingState = ms;\n return lastState;\n }\n r.lastState = ms;\n return ms;\n }\n }\n return lastState;\n };\n internalRef.current = r;\n } else {\n internalRef.current.componentContext = componentContext;\n internalRef.current.uid = uid;\n internalRef.current.debug = debug;\n }\n const ref = internalRef.current;\n ref.renderVersion++;\n if (ref.pendingState) {\n ref.lastState = ref.pendingState;\n ref.pendingState = void 0;\n }\n if (ref.keys?.size) {\n ref.keys.clear();\n }\n const [, forceUpdate] = useReducer(incReducer, 0);\n const state = isServer ? initState : ref.optimizeForFirstRender && ref.renderVersion === 1 ? ref.lastState : ref.getSnapshot();\n ref.proxyTarget = state;\n if (!ref.optimizeForFirstRender) {\n ;\n ref.proxy[refSlot].proxyTarget = state;\n }\n useIsomorphicLayoutEffect(() => {\n const synced = ref.getSnapshot();\n if (synced !== ref.proxyTarget) {\n ref.proxyTarget = synced;\n if (!ref.optimizeForFirstRender) {\n ;\n ref.proxy[refSlot].proxyTarget = synced;\n }\n forceUpdate();\n }\n }, []);\n useEffect(() => {\n const renderVersion = ref.renderVersion;\n const shouldSubscribe = ref.optimizeForFirstRender || !ref.uid || !!States.get(ref.uid)?.enabled;\n if (shouldSubscribe) {\n ref.onChange ||= () => {\n const next = ref.getSnapshot();\n if (next !== ref.proxyTarget) {\n ref.proxyTarget = next;\n if (!ref.optimizeForFirstRender) {\n ;\n ref.proxy[refSlot].proxyTarget = next;\n }\n if (ref.uid?.nativeMediaUpdate?.(forceUpdate)) return;\n forceUpdate();\n }\n };\n indexMediaListener(ref);\n } else {\n unindexMediaListener(ref);\n }\n return () => {\n if (ref.renderVersion === renderVersion) {\n unindexMediaListener(ref);\n }\n };\n });\n return ref.optimizeForFirstRender ? state : ref.proxy;\n}\nconst incReducer = (c) => c + 1;\nlet disableMediaTouch = false;\nfunction _disableMediaTouch(val) {\n disableMediaTouch = val;\n}\nfunction getMediaState(mediaGroups, layout) {\n disableMediaTouch = true;\n let res;\n try {\n res = Object.fromEntries(\n [...mediaGroups].map((mediaKey) => {\n return [mediaKey, mediaKeyMatch(mediaKey, layout)];\n })\n );\n } finally {\n disableMediaTouch = false;\n }\n return res;\n}\nconst cachedMediaKeyToQuery = {};\nfunction mediaKeyToQuery(key) {\n return cachedMediaKeyToQuery[key] || (cachedMediaKeyToQuery[key] = mediaObjectToString(mediaQueryConfig[key]));\n}\nexport {\n _disableMediaTouch,\n _mediaListenerStats,\n configureMedia,\n getMediaState,\n mediaKeyMatch2 as mediaKeyMatch,\n mediaKeyToQuery,\n setMediaShouldUpdate,\n setupMediaListeners,\n updateMediaListeners,\n useMedia\n};\n//# sourceMappingURL=useMedia.js.map\n"],"mappings":"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"}
|
|
@@ -40,11 +40,11 @@ function setupMediaListeners() {
|
|
|
40
40
|
};
|
|
41
41
|
var match = getMatch();
|
|
42
42
|
if (!match) {
|
|
43
|
-
throw new Error(formatDiagnostic("TAMAGUI_MEDIA_MATCH", "useMedia", "matchMedia returned no MediaQueryList", "Provide a matchMedia implementation that returns a MediaQueryList", "key,query,platform", {
|
|
43
|
+
throw new Error(process.env.NODE_ENV !== "production" ? formatDiagnostic("TAMAGUI_MEDIA_MATCH", "useMedia", "matchMedia returned no MediaQueryList", "Provide a matchMedia implementation that returns a MediaQueryList", "key,query,platform", {
|
|
44
44
|
key: key2,
|
|
45
45
|
query: str,
|
|
46
46
|
platform: isWeb ? "web" : "native"
|
|
47
|
-
}));
|
|
47
|
+
}) : "❌ Error 013");
|
|
48
48
|
}
|
|
49
49
|
match.addListener(update);
|
|
50
50
|
dispose.add(function() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMedia.native.js","names":[],"sources":["esm/hooks/useMedia.native.js"],"sourcesContent":["import { isServer, isWeb, useIsomorphicLayoutEffect } from \"@tamagui/constants\";\nimport { useEffect, useReducer, useRef } from \"react\";\nimport { getSetting } from \"../config\";\nimport { formatDiagnostic } from \"../helpers/formatDiagnostic\";\nimport { isOptimizedForFirstRender } from \"./isOptimizedForFirstRender\";\nimport { matchMedia } from \"../helpers/matchMedia\";\nimport { mediaObjectToString } from \"../helpers/mediaObjectToString\";\nimport { getMedia, mediaKeyMatch, mediaKeys, mediaQueryConfig, setMediaState } from \"../helpers/mediaState\";\nimport { mediaKeyMatch as mediaKeyMatch2 } from \"../helpers/mediaState\";\nvar initState;\nvar dispose = /* @__PURE__ */ new Set();\nvar mediaVersion = 0;\nvar configureMedia = function(config) {\n var { media } = config;\n var mediaQueryDefaultActive = getSetting(\"mediaQueryDefaultActive\");\n if (!media) return;\n mediaVersion++;\n resetMediaTouchTracker();\n publishedState = null;\n for (var key in media) {\n getMedia()[key] = (mediaQueryDefaultActive === null || mediaQueryDefaultActive === void 0 ? void 0 : mediaQueryDefaultActive[key]) || false;\n mediaKeys.add(key);\n }\n Object.assign(mediaQueryConfig, media);\n initState = {\n ...getMedia()\n };\n setupMediaListeners();\n};\nfunction unlisten() {\n dispose.forEach(function(cb) {\n return cb();\n });\n dispose.clear();\n}\nvar setupVersion = -1;\nfunction setupMediaListeners() {\n var _loop = function(key2) {\n var str = mediaObjectToString(mediaQueryConfig[key2]);\n var getMatch = function() {\n return matchMedia(str);\n };\n var match = getMatch();\n if (!match) {\n throw new Error(formatDiagnostic(\"TAMAGUI_MEDIA_MATCH\", \"useMedia\", \"matchMedia returned no MediaQueryList\", \"Provide a matchMedia implementation that returns a MediaQueryList\", \"key,query,platform\", {\n key: key2,\n query: str,\n platform: isWeb ? \"web\" : \"native\"\n }));\n }\n match.addListener(update);\n dispose.add(function() {\n match.removeListener(update);\n });\n function update() {\n var next = !!getMatch().matches;\n if (next === getMedia()[key2]) return;\n setMediaState({\n ...getMedia(),\n [key2]: next\n });\n updateMediaListeners();\n }\n update();\n };\n if (isWeb && isServer) return;\n if (process.env.IS_STATIC) return;\n if (setupVersion === mediaVersion) return;\n setupVersion = mediaVersion;\n unlisten();\n for (var key in mediaQueryConfig) _loop(key);\n}\nvar listenersByKey = /* @__PURE__ */ new Map();\nvar globalListeners = /* @__PURE__ */ new Set();\nvar publishedState = null;\nvar _mediaListenerStats = {\n publishes: 0,\n notified: 0\n};\nfunction updateMediaListeners() {\n _mediaListenerStats.publishes++;\n var media = getMedia();\n var prev = publishedState;\n publishedState = media;\n if (listenersByKey.size) {\n var woken = /* @__PURE__ */ new Set();\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = mediaKeys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n if (prev !== null && media[key] === prev[key]) continue;\n var bucket = listenersByKey.get(key);\n if (bucket) {\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = bucket[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var cb = _step1.value;\n woken.add(cb);\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;\n try {\n for (var _iterator2 = woken[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var cb1 = _step2.value;\n _mediaListenerStats.notified++;\n cb1(media);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n globalListeners.forEach(function(cb2) {\n _mediaListenerStats.notified++;\n cb2(media);\n });\n}\nvar States = /* @__PURE__ */ new WeakMap();\nvar touchTrackerProto = null;\nvar refSlot = /* @__PURE__ */ Symbol(\"mediaRefSlot\");\nfunction buildTouchTrackerProto() {\n var proto = {};\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n var _loop = function() {\n var key = _step.value;\n proto[key] = {\n enumerable: true,\n configurable: true,\n get() {\n var slot = this[refSlot];\n if (!disableMediaTouch) {\n slot.keys.add(key);\n }\n return slot.proxyTarget[key];\n }\n };\n };\n for (var _iterator = mediaKeys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) _loop();\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return Object.create(null, proto);\n}\nfunction getTouchTrackerProto() {\n if (!touchTrackerProto) touchTrackerProto = buildTouchTrackerProto();\n return touchTrackerProto;\n}\nfunction resetMediaTouchTracker() {\n touchTrackerProto = null;\n}\nfunction setMediaShouldUpdate(ref, enabled, keys) {\n var optimizeForFirstRender = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false;\n if (optimizeForFirstRender) return;\n var cur = States.get(ref);\n if (!cur || cur.enabled !== enabled || keys) {\n States.set(ref, {\n ...cur,\n enabled,\n keys\n });\n }\n}\nfunction mediaListenKeys(ref) {\n var _States_get;\n if (ref.optimizeForFirstRender) return null;\n return (ref.uid ? (_States_get = States.get(ref.uid)) === null || _States_get === void 0 ? void 0 : _States_get.keys : void 0) || ref.keys;\n}\nfunction indexMediaListener(ref) {\n var keys = mediaListenKeys(ref);\n var cur = ref.listeningTo;\n if (cur !== void 0 && sameMediaKeys(cur, keys)) return;\n unindexMediaListener(ref);\n var cb = ref.onChange;\n if (keys === null) {\n globalListeners.add(cb);\n ref.listeningTo = null;\n return;\n }\n ref.listeningTo = new Set(keys);\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = keys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n var bucket = listenersByKey.get(key);\n if (!bucket) {\n bucket = /* @__PURE__ */ new Set();\n listenersByKey.set(key, bucket);\n }\n bucket.add(cb);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n}\nfunction unindexMediaListener(ref) {\n var keys = ref.listeningTo;\n if (keys === void 0) return;\n ref.listeningTo = void 0;\n var cb = ref.onChange;\n if (keys === null) {\n globalListeners.delete(cb);\n return;\n }\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = keys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n var bucket = listenersByKey.get(key);\n if (!bucket) continue;\n bucket.delete(cb);\n if (!bucket.size) listenersByKey.delete(key);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n}\nfunction sameMediaKeys(a, b) {\n if (a === null || b === null) return a === b;\n if (a.size !== b.size) return false;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = b[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n if (!a.has(key)) return false;\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return true;\n}\nfunction useMedia(componentContext, debug, uid) {\n \"use no memo\";\n var _ref_keys;\n var internalRef = useRef(null);\n if (!internalRef.current) {\n var initial = isWeb && !isServer && !getSetting(\"disableSSR\") ? initState : getMedia();\n var optimizeForFirstRender = isOptimizedForFirstRender();\n var r = {\n keys: optimizeForFirstRender ? null : /* @__PURE__ */ new Set(),\n lastState: initial,\n renderVersion: 0,\n proxyTarget: initial,\n proxy: void 0,\n getSnapshot: void 0,\n componentContext,\n uid,\n debug,\n optimizeForFirstRender\n };\n if (optimizeForFirstRender) {\n r.proxy = initial;\n } else {\n var tracker = Object.create(getTouchTrackerProto());\n tracker[refSlot] = {\n proxyTarget: initial,\n keys: r.keys\n };\n r.proxy = tracker;\n }\n r.getSnapshot = function() {\n if (r.optimizeForFirstRender) {\n var _r_componentContext;\n var ms = getMedia();\n if (ms === r.lastState) {\n return r.lastState;\n }\n if ((_r_componentContext = r.componentContext) === null || _r_componentContext === void 0 ? void 0 : _r_componentContext.mediaEmit) {\n r.componentContext.mediaEmit(ms);\n r.pendingState = ms;\n return r.lastState;\n }\n r.lastState = ms;\n return ms;\n }\n var curKeys = mediaListenKeys(r);\n var { lastState, pendingState } = r;\n if (!curKeys.size) {\n return lastState;\n }\n var ms1 = getMedia();\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = curKeys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n if (ms1[key] !== (pendingState || lastState)[key]) {\n var _r_componentContext1;\n if (process.env.NODE_ENV === \"development\" && r.debug) {\n console.warn(`useMedia() \\u270D\\uFE0F`, key, lastState[key], \"=>\", ms1[key]);\n }\n if ((_r_componentContext1 = r.componentContext) === null || _r_componentContext1 === void 0 ? void 0 : _r_componentContext1.mediaEmit) {\n r.componentContext.mediaEmit(ms1);\n r.pendingState = ms1;\n return lastState;\n }\n r.lastState = ms1;\n return ms1;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return lastState;\n };\n internalRef.current = r;\n } else {\n internalRef.current.componentContext = componentContext;\n internalRef.current.uid = uid;\n internalRef.current.debug = debug;\n }\n var ref = internalRef.current;\n ref.renderVersion++;\n if (ref.pendingState) {\n ref.lastState = ref.pendingState;\n ref.pendingState = void 0;\n }\n if ((_ref_keys = ref.keys) === null || _ref_keys === void 0 ? void 0 : _ref_keys.size) {\n ref.keys.clear();\n }\n var [, forceUpdate] = useReducer(incReducer, 0);\n var state = isServer ? initState : ref.optimizeForFirstRender && ref.renderVersion === 1 ? ref.lastState : ref.getSnapshot();\n ref.proxyTarget = state;\n if (!ref.optimizeForFirstRender) {\n ;\n ref.proxy[refSlot].proxyTarget = state;\n }\n useIsomorphicLayoutEffect(function() {\n var synced = ref.getSnapshot();\n if (synced !== ref.proxyTarget) {\n ref.proxyTarget = synced;\n if (!ref.optimizeForFirstRender) {\n ;\n ref.proxy[refSlot].proxyTarget = synced;\n }\n forceUpdate();\n }\n }, []);\n useEffect(function() {\n var _States_get;\n var renderVersion = ref.renderVersion;\n var shouldSubscribe = ref.optimizeForFirstRender || !ref.uid || !!((_States_get = States.get(ref.uid)) === null || _States_get === void 0 ? void 0 : _States_get.enabled);\n if (shouldSubscribe) {\n var _ref;\n (_ref = ref).onChange || (_ref.onChange = function() {\n var next = ref.getSnapshot();\n if (next !== ref.proxyTarget) {\n var _ref_uid_nativeMediaUpdate, _ref_uid;\n ref.proxyTarget = next;\n if (!ref.optimizeForFirstRender) {\n ;\n ref.proxy[refSlot].proxyTarget = next;\n }\n if ((_ref_uid = ref.uid) === null || _ref_uid === void 0 ? void 0 : (_ref_uid_nativeMediaUpdate = _ref_uid.nativeMediaUpdate) === null || _ref_uid_nativeMediaUpdate === void 0 ? void 0 : _ref_uid_nativeMediaUpdate.call(_ref_uid, forceUpdate)) return;\n forceUpdate();\n }\n });\n indexMediaListener(ref);\n } else {\n unindexMediaListener(ref);\n }\n return function() {\n if (ref.renderVersion === renderVersion) {\n unindexMediaListener(ref);\n }\n };\n });\n return ref.optimizeForFirstRender ? state : ref.proxy;\n}\nvar incReducer = function(c) {\n return c + 1;\n};\nvar disableMediaTouch = false;\nfunction _disableMediaTouch(val) {\n disableMediaTouch = val;\n}\nfunction getMediaState(mediaGroups, layout) {\n disableMediaTouch = true;\n var res;\n try {\n res = Object.fromEntries([\n ...mediaGroups\n ].map(function(mediaKey) {\n return [\n mediaKey,\n mediaKeyMatch(mediaKey, layout)\n ];\n }));\n } finally {\n disableMediaTouch = false;\n }\n return res;\n}\nvar cachedMediaKeyToQuery = {};\nfunction mediaKeyToQuery(key) {\n return cachedMediaKeyToQuery[key] || (cachedMediaKeyToQuery[key] = mediaObjectToString(mediaQueryConfig[key]));\n}\nexport {\n _disableMediaTouch,\n _mediaListenerStats,\n configureMedia,\n getMediaState,\n mediaKeyMatch2 as mediaKeyMatch,\n mediaKeyToQuery,\n setMediaShouldUpdate,\n setupMediaListeners,\n updateMediaListeners,\n useMedia\n};\n//# sourceMappingURL=useMedia.js.map\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useMedia.native.js","names":[],"sources":["esm/hooks/useMedia.native.js"],"sourcesContent":["import { isServer, isWeb, useIsomorphicLayoutEffect } from \"@tamagui/constants\";\nimport { useEffect, useReducer, useRef } from \"react\";\nimport { getSetting } from \"../config\";\nimport { formatDiagnostic } from \"../helpers/formatDiagnostic\";\nimport { isOptimizedForFirstRender } from \"./isOptimizedForFirstRender\";\nimport { matchMedia } from \"../helpers/matchMedia\";\nimport { mediaObjectToString } from \"../helpers/mediaObjectToString\";\nimport { getMedia, mediaKeyMatch, mediaKeys, mediaQueryConfig, setMediaState } from \"../helpers/mediaState\";\nimport { mediaKeyMatch as mediaKeyMatch2 } from \"../helpers/mediaState\";\nvar initState;\nvar dispose = /* @__PURE__ */ new Set();\nvar mediaVersion = 0;\nvar configureMedia = function(config) {\n var { media } = config;\n var mediaQueryDefaultActive = getSetting(\"mediaQueryDefaultActive\");\n if (!media) return;\n mediaVersion++;\n resetMediaTouchTracker();\n publishedState = null;\n for (var key in media) {\n getMedia()[key] = (mediaQueryDefaultActive === null || mediaQueryDefaultActive === void 0 ? void 0 : mediaQueryDefaultActive[key]) || false;\n mediaKeys.add(key);\n }\n Object.assign(mediaQueryConfig, media);\n initState = {\n ...getMedia()\n };\n setupMediaListeners();\n};\nfunction unlisten() {\n dispose.forEach(function(cb) {\n return cb();\n });\n dispose.clear();\n}\nvar setupVersion = -1;\nfunction setupMediaListeners() {\n var _loop = function(key2) {\n var str = mediaObjectToString(mediaQueryConfig[key2]);\n var getMatch = function() {\n return matchMedia(str);\n };\n var match = getMatch();\n if (!match) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? formatDiagnostic(\"TAMAGUI_MEDIA_MATCH\", \"useMedia\", \"matchMedia returned no MediaQueryList\", \"Provide a matchMedia implementation that returns a MediaQueryList\", \"key,query,platform\", {\n key: key2,\n query: str,\n platform: isWeb ? \"web\" : \"native\"\n }) : \"\\u274C Error 013\");\n }\n match.addListener(update);\n dispose.add(function() {\n match.removeListener(update);\n });\n function update() {\n var next = !!getMatch().matches;\n if (next === getMedia()[key2]) return;\n setMediaState({\n ...getMedia(),\n [key2]: next\n });\n updateMediaListeners();\n }\n update();\n };\n if (isWeb && isServer) return;\n if (process.env.IS_STATIC) return;\n if (setupVersion === mediaVersion) return;\n setupVersion = mediaVersion;\n unlisten();\n for (var key in mediaQueryConfig) _loop(key);\n}\nvar listenersByKey = /* @__PURE__ */ new Map();\nvar globalListeners = /* @__PURE__ */ new Set();\nvar publishedState = null;\nvar _mediaListenerStats = {\n publishes: 0,\n notified: 0\n};\nfunction updateMediaListeners() {\n _mediaListenerStats.publishes++;\n var media = getMedia();\n var prev = publishedState;\n publishedState = media;\n if (listenersByKey.size) {\n var woken = /* @__PURE__ */ new Set();\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = mediaKeys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n if (prev !== null && media[key] === prev[key]) continue;\n var bucket = listenersByKey.get(key);\n if (bucket) {\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = bucket[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var cb = _step1.value;\n woken.add(cb);\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;\n try {\n for (var _iterator2 = woken[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var cb1 = _step2.value;\n _mediaListenerStats.notified++;\n cb1(media);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n globalListeners.forEach(function(cb2) {\n _mediaListenerStats.notified++;\n cb2(media);\n });\n}\nvar States = /* @__PURE__ */ new WeakMap();\nvar touchTrackerProto = null;\nvar refSlot = /* @__PURE__ */ Symbol(\"mediaRefSlot\");\nfunction buildTouchTrackerProto() {\n var proto = {};\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n var _loop = function() {\n var key = _step.value;\n proto[key] = {\n enumerable: true,\n configurable: true,\n get() {\n var slot = this[refSlot];\n if (!disableMediaTouch) {\n slot.keys.add(key);\n }\n return slot.proxyTarget[key];\n }\n };\n };\n for (var _iterator = mediaKeys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) _loop();\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return Object.create(null, proto);\n}\nfunction getTouchTrackerProto() {\n if (!touchTrackerProto) touchTrackerProto = buildTouchTrackerProto();\n return touchTrackerProto;\n}\nfunction resetMediaTouchTracker() {\n touchTrackerProto = null;\n}\nfunction setMediaShouldUpdate(ref, enabled, keys) {\n var optimizeForFirstRender = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false;\n if (optimizeForFirstRender) return;\n var cur = States.get(ref);\n if (!cur || cur.enabled !== enabled || keys) {\n States.set(ref, {\n ...cur,\n enabled,\n keys\n });\n }\n}\nfunction mediaListenKeys(ref) {\n var _States_get;\n if (ref.optimizeForFirstRender) return null;\n return (ref.uid ? (_States_get = States.get(ref.uid)) === null || _States_get === void 0 ? void 0 : _States_get.keys : void 0) || ref.keys;\n}\nfunction indexMediaListener(ref) {\n var keys = mediaListenKeys(ref);\n var cur = ref.listeningTo;\n if (cur !== void 0 && sameMediaKeys(cur, keys)) return;\n unindexMediaListener(ref);\n var cb = ref.onChange;\n if (keys === null) {\n globalListeners.add(cb);\n ref.listeningTo = null;\n return;\n }\n ref.listeningTo = new Set(keys);\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = keys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n var bucket = listenersByKey.get(key);\n if (!bucket) {\n bucket = /* @__PURE__ */ new Set();\n listenersByKey.set(key, bucket);\n }\n bucket.add(cb);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n}\nfunction unindexMediaListener(ref) {\n var keys = ref.listeningTo;\n if (keys === void 0) return;\n ref.listeningTo = void 0;\n var cb = ref.onChange;\n if (keys === null) {\n globalListeners.delete(cb);\n return;\n }\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = keys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n var bucket = listenersByKey.get(key);\n if (!bucket) continue;\n bucket.delete(cb);\n if (!bucket.size) listenersByKey.delete(key);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n}\nfunction sameMediaKeys(a, b) {\n if (a === null || b === null) return a === b;\n if (a.size !== b.size) return false;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = b[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n if (!a.has(key)) return false;\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return true;\n}\nfunction useMedia(componentContext, debug, uid) {\n \"use no memo\";\n var _ref_keys;\n var internalRef = useRef(null);\n if (!internalRef.current) {\n var initial = isWeb && !isServer && !getSetting(\"disableSSR\") ? initState : getMedia();\n var optimizeForFirstRender = isOptimizedForFirstRender();\n var r = {\n keys: optimizeForFirstRender ? null : /* @__PURE__ */ new Set(),\n lastState: initial,\n renderVersion: 0,\n proxyTarget: initial,\n proxy: void 0,\n getSnapshot: void 0,\n componentContext,\n uid,\n debug,\n optimizeForFirstRender\n };\n if (optimizeForFirstRender) {\n r.proxy = initial;\n } else {\n var tracker = Object.create(getTouchTrackerProto());\n tracker[refSlot] = {\n proxyTarget: initial,\n keys: r.keys\n };\n r.proxy = tracker;\n }\n r.getSnapshot = function() {\n if (r.optimizeForFirstRender) {\n var _r_componentContext;\n var ms = getMedia();\n if (ms === r.lastState) {\n return r.lastState;\n }\n if ((_r_componentContext = r.componentContext) === null || _r_componentContext === void 0 ? void 0 : _r_componentContext.mediaEmit) {\n r.componentContext.mediaEmit(ms);\n r.pendingState = ms;\n return r.lastState;\n }\n r.lastState = ms;\n return ms;\n }\n var curKeys = mediaListenKeys(r);\n var { lastState, pendingState } = r;\n if (!curKeys.size) {\n return lastState;\n }\n var ms1 = getMedia();\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = curKeys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n if (ms1[key] !== (pendingState || lastState)[key]) {\n var _r_componentContext1;\n if (process.env.NODE_ENV === \"development\" && r.debug) {\n console.warn(`useMedia() \\u270D\\uFE0F`, key, lastState[key], \"=>\", ms1[key]);\n }\n if ((_r_componentContext1 = r.componentContext) === null || _r_componentContext1 === void 0 ? void 0 : _r_componentContext1.mediaEmit) {\n r.componentContext.mediaEmit(ms1);\n r.pendingState = ms1;\n return lastState;\n }\n r.lastState = ms1;\n return ms1;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return lastState;\n };\n internalRef.current = r;\n } else {\n internalRef.current.componentContext = componentContext;\n internalRef.current.uid = uid;\n internalRef.current.debug = debug;\n }\n var ref = internalRef.current;\n ref.renderVersion++;\n if (ref.pendingState) {\n ref.lastState = ref.pendingState;\n ref.pendingState = void 0;\n }\n if ((_ref_keys = ref.keys) === null || _ref_keys === void 0 ? void 0 : _ref_keys.size) {\n ref.keys.clear();\n }\n var [, forceUpdate] = useReducer(incReducer, 0);\n var state = isServer ? initState : ref.optimizeForFirstRender && ref.renderVersion === 1 ? ref.lastState : ref.getSnapshot();\n ref.proxyTarget = state;\n if (!ref.optimizeForFirstRender) {\n ;\n ref.proxy[refSlot].proxyTarget = state;\n }\n useIsomorphicLayoutEffect(function() {\n var synced = ref.getSnapshot();\n if (synced !== ref.proxyTarget) {\n ref.proxyTarget = synced;\n if (!ref.optimizeForFirstRender) {\n ;\n ref.proxy[refSlot].proxyTarget = synced;\n }\n forceUpdate();\n }\n }, []);\n useEffect(function() {\n var _States_get;\n var renderVersion = ref.renderVersion;\n var shouldSubscribe = ref.optimizeForFirstRender || !ref.uid || !!((_States_get = States.get(ref.uid)) === null || _States_get === void 0 ? void 0 : _States_get.enabled);\n if (shouldSubscribe) {\n var _ref;\n (_ref = ref).onChange || (_ref.onChange = function() {\n var next = ref.getSnapshot();\n if (next !== ref.proxyTarget) {\n var _ref_uid_nativeMediaUpdate, _ref_uid;\n ref.proxyTarget = next;\n if (!ref.optimizeForFirstRender) {\n ;\n ref.proxy[refSlot].proxyTarget = next;\n }\n if ((_ref_uid = ref.uid) === null || _ref_uid === void 0 ? void 0 : (_ref_uid_nativeMediaUpdate = _ref_uid.nativeMediaUpdate) === null || _ref_uid_nativeMediaUpdate === void 0 ? void 0 : _ref_uid_nativeMediaUpdate.call(_ref_uid, forceUpdate)) return;\n forceUpdate();\n }\n });\n indexMediaListener(ref);\n } else {\n unindexMediaListener(ref);\n }\n return function() {\n if (ref.renderVersion === renderVersion) {\n unindexMediaListener(ref);\n }\n };\n });\n return ref.optimizeForFirstRender ? state : ref.proxy;\n}\nvar incReducer = function(c) {\n return c + 1;\n};\nvar disableMediaTouch = false;\nfunction _disableMediaTouch(val) {\n disableMediaTouch = val;\n}\nfunction getMediaState(mediaGroups, layout) {\n disableMediaTouch = true;\n var res;\n try {\n res = Object.fromEntries([\n ...mediaGroups\n ].map(function(mediaKey) {\n return [\n mediaKey,\n mediaKeyMatch(mediaKey, layout)\n ];\n }));\n } finally {\n disableMediaTouch = false;\n }\n return res;\n}\nvar cachedMediaKeyToQuery = {};\nfunction mediaKeyToQuery(key) {\n return cachedMediaKeyToQuery[key] || (cachedMediaKeyToQuery[key] = mediaObjectToString(mediaQueryConfig[key]));\n}\nexport {\n _disableMediaTouch,\n _mediaListenerStats,\n configureMedia,\n getMediaState,\n mediaKeyMatch2 as mediaKeyMatch,\n mediaKeyToQuery,\n setMediaShouldUpdate,\n setupMediaListeners,\n updateMediaListeners,\n useMedia\n};\n//# sourceMappingURL=useMedia.js.map\n"],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { resolveStylePieceForTheme } from "../style.mjs";
|
|
2
|
+
import { useThemeWithState } from "./useTheme.mjs";
|
|
3
|
+
|
|
4
|
+
function useStyle(piece) {
|
|
5
|
+
const [, themeState] = useThemeWithState({});
|
|
6
|
+
if (!piece) return;
|
|
7
|
+
return resolveStylePieceForTheme(piece, themeState.theme, themeState.name);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export { useStyle };
|
|
11
|
+
//# sourceMappingURL=useStyle.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useStyle.js","names":[],"sources":["esm/hooks/useStyle.js"],"sourcesContent":["import { resolveStylePieceForTheme } from \"../style\";\nimport { useThemeWithState } from \"./useTheme\";\nfunction useStyle(piece) {\n const [, themeState] = useThemeWithState({});\n if (!piece) return;\n return resolveStylePieceForTheme(piece, themeState.theme, themeState.name);\n}\nexport {\n useStyle\n};\n//# sourceMappingURL=useStyle.js.map\n"],"mappings":";;;;AAEA,SAAS,SAAS,OAAO;CACvB,MAAM,GAAG,cAAc,kBAAkB,CAAC,CAAC;CAC3C,IAAI,CAAC,OAAO;CACZ,OAAO,0BAA0B,OAAO,WAAW,OAAO,WAAW,IAAI;AAC3E"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { resolveStylePieceForTheme } from "../style.native.js";
|
|
2
|
+
import { useThemeWithState } from "./useTheme.native.js";
|
|
3
|
+
|
|
4
|
+
function useStyle(piece) {
|
|
5
|
+
var [, themeState] = useThemeWithState({});
|
|
6
|
+
if (!piece) return;
|
|
7
|
+
return resolveStylePieceForTheme(piece, themeState.theme, themeState.name);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export { useStyle };
|
|
11
|
+
//# sourceMappingURL=useStyle.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useStyle.native.js","names":[],"sources":["esm/hooks/useStyle.native.js"],"sourcesContent":["import { resolveStylePieceForTheme } from \"../style\";\nimport { useThemeWithState } from \"./useTheme\";\nfunction useStyle(piece) {\n var [, themeState] = useThemeWithState({});\n if (!piece) return;\n return resolveStylePieceForTheme(piece, themeState.theme, themeState.name);\n}\nexport {\n useStyle\n};\n//# sourceMappingURL=useStyle.js.map\n"],"mappings":";;;;AAEA,SAAS,SAAS,OAAO;CACvB,IAAI,GAAG,cAAc,kBAAkB,CAAC,CAAC;CACzC,IAAI,CAAC,OAAO;CACZ,OAAO,0BAA0B,OAAO,WAAW,OAAO,WAAW,IAAI;AAC3E"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { useIsomorphicLayoutEffect } from "@tamagui/constants";
|
|
2
2
|
import { createContext, useContext, useEffect, useId, useReducer, useRef } from "react";
|
|
3
3
|
import { getConfig } from "../config.mjs";
|
|
4
|
-
import { formatDiagnostic } from "../helpers/formatDiagnostic.mjs";
|
|
5
4
|
import { MISSING_THEME_MESSAGE } from "../constants/constants.mjs";
|
|
6
5
|
|
|
7
6
|
const ThemeStateContext = createContext("");
|
|
@@ -56,7 +55,7 @@ Looked for theme${props.name ? ` "${props.name}"` : ""}, but no parent theme con
|
|
|
56
55
|
const propsKey = getPropsKey(props);
|
|
57
56
|
if (cascadeOnChange) registerThemeProviderChain(id, parentId, props);
|
|
58
57
|
const ref = useRef(null);
|
|
59
|
-
|
|
58
|
+
const r = ref.current ||= {
|
|
60
59
|
id,
|
|
61
60
|
parentId,
|
|
62
61
|
props,
|
|
@@ -67,21 +66,17 @@ Looked for theme${props.name ? ` "${props.name}"` : ""}, but no parent theme con
|
|
|
67
66
|
optimizeForFirstRender,
|
|
68
67
|
renderVersion: 0
|
|
69
68
|
};
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
}
|
|
78
|
-
ref.current.renderVersion++;
|
|
79
|
-
if (process.env.NODE_ENV === "development" && globalThis.time) globalThis.time`theme-prep-uses`;
|
|
69
|
+
r.props = props;
|
|
70
|
+
r.propsKey = propsKey;
|
|
71
|
+
r.isRoot = isRoot;
|
|
72
|
+
r.keys = keys;
|
|
73
|
+
r.schemeKeys = schemeKeys;
|
|
74
|
+
r.parentId = parentId;
|
|
75
|
+
r.renderVersion++;
|
|
80
76
|
const [, forceUpdate] = useReducer(incReducer, 0);
|
|
81
|
-
const state = getSnapshotImpl(
|
|
82
|
-
|
|
77
|
+
const state = getSnapshotImpl(r);
|
|
78
|
+
r.lastSnap = state;
|
|
83
79
|
useEffect(() => {
|
|
84
|
-
const r = ref.current;
|
|
85
80
|
const renderVersion = r.renderVersion;
|
|
86
81
|
if (r.lastSnap && !states.has(r.id)) {
|
|
87
82
|
states.set(r.id, r.lastSnap);
|
|
@@ -101,8 +96,7 @@ Looked for theme${props.name ? ` "${props.name}"` : ""}, but no parent theme con
|
|
|
101
96
|
forceUpdate();
|
|
102
97
|
}
|
|
103
98
|
};
|
|
104
|
-
listenersByParent[pid]
|
|
105
|
-
listenersByParent[pid].add(sid);
|
|
99
|
+
(listenersByParent[pid] ||= /* @__PURE__ */ new Set()).add(sid);
|
|
106
100
|
allListeners.set(sid, () => {
|
|
107
101
|
const forced = shouldForce;
|
|
108
102
|
PendingUpdate.set(sid, forced ? "force" : true);
|
|
@@ -134,13 +128,12 @@ Looked for theme${props.name ? ` "${props.name}"` : ""}, but no parent theme con
|
|
|
134
128
|
HadTheme.set(keys, false);
|
|
135
129
|
return;
|
|
136
130
|
}
|
|
137
|
-
if (process.env.NODE_ENV === "development" && props.debug === "verbose") console.warn(` \xB7 useTheme(${id}) scheduleUpdate`, propsKey, states.get(id)?.name);
|
|
138
131
|
scheduleUpdate(id);
|
|
139
132
|
HadTheme.set(keys, true);
|
|
140
133
|
}, [keys, propsKey]);
|
|
141
134
|
return state;
|
|
142
135
|
};
|
|
143
|
-
const shouldSubscribeToTheme = (r, cascadeOnChange) => r.optimizeForFirstRender || r.isRoot || cascadeOnChange || hasThemeUpdatingProps(r.props) ||
|
|
136
|
+
const shouldSubscribeToTheme = (r, cascadeOnChange) => Boolean(r.optimizeForFirstRender || r.isRoot || cascadeOnChange || hasThemeUpdatingProps(r.props) || r.keys.current?.size || r.props.needsUpdate?.());
|
|
144
137
|
function cleanupThemeSubscription(r) {
|
|
145
138
|
r.unsubscribe?.();
|
|
146
139
|
}
|
|
@@ -162,12 +155,8 @@ const getSnapshotImpl = (r) => {
|
|
|
162
155
|
if (parentState && local._parentName === parentState.name && local._propsKey === propsKey) return local;
|
|
163
156
|
}
|
|
164
157
|
const isSchemeOnlyChange = !optimizeForFirstRender && false;
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
const keysSize = keys.current?.size ?? 0;
|
|
168
|
-
allKeysSchemeOptimized = (schemeKeys?.current?.size ?? 0) === keysSize && keysSize > 0;
|
|
169
|
-
}
|
|
170
|
-
const canSkipForSchemeChange = !!isSchemeOnlyChange && allKeysSchemeOptimized;
|
|
158
|
+
const allKeysSchemeOptimized = !optimizeForFirstRender && Boolean(keys.current?.size && schemeKeys?.current?.size === keys.current.size);
|
|
159
|
+
const canSkipForSchemeChange = Boolean(isSchemeOnlyChange && allKeysSchemeOptimized);
|
|
171
160
|
const needsUpdate = props.passThrough ? false : optimizeForFirstRender ? true : isRoot || props.name === "light" || props.name === "dark" || props.name === null ? true : !HasRenderedOnce.get(keys) ? true : canSkipForSchemeChange ? false : keys?.current?.size ? true : props.needsUpdate?.();
|
|
172
161
|
const [rerender, nextRaw] = getNextState(local, props, propsKey, isRoot, id, parentId, needsUpdate, PendingUpdate.get(id));
|
|
173
162
|
let next = nextRaw;
|
|
@@ -184,22 +173,6 @@ const getSnapshotImpl = (r) => {
|
|
|
184
173
|
local = { ...next };
|
|
185
174
|
localStates.set(id, local);
|
|
186
175
|
}
|
|
187
|
-
if (process.env.NODE_ENV === "development" && props.debug === "verbose") {
|
|
188
|
-
console.groupCollapsed(` ${id} getSnapshot ${rerender}`, local.name, ">", next.name);
|
|
189
|
-
console.info({
|
|
190
|
-
props,
|
|
191
|
-
propsKey,
|
|
192
|
-
isRoot,
|
|
193
|
-
parentId,
|
|
194
|
-
local,
|
|
195
|
-
next,
|
|
196
|
-
needsUpdate,
|
|
197
|
-
isSchemeOnlyChange,
|
|
198
|
-
allKeysSchemeOptimized,
|
|
199
|
-
canSkipForSchemeChange
|
|
200
|
-
});
|
|
201
|
-
console.groupEnd();
|
|
202
|
-
}
|
|
203
176
|
if (next !== local) {
|
|
204
177
|
Object.assign(local, next);
|
|
205
178
|
local.id = id;
|
|
@@ -210,27 +183,12 @@ const getSnapshotImpl = (r) => {
|
|
|
210
183
|
return local;
|
|
211
184
|
};
|
|
212
185
|
const getNextState = (lastState, props, propsKey, isRoot = false, id, parentId, needsUpdate, pendingUpdate) => {
|
|
213
|
-
const { debug } = props;
|
|
214
186
|
const parentState = states.get(parentId);
|
|
215
187
|
if (props.passThrough) return [false, lastState || parentState || { name: "" }];
|
|
216
|
-
|
|
217
|
-
const name = !propsKey && (!lastState || !lastState
|
|
218
|
-
const isSameAsParent = parentState && (!name || name === parentState.name);
|
|
188
|
+
themes ||= getConfig().themes;
|
|
189
|
+
const name = !propsKey && (!lastState || !lastState.isNew) ? null : getNewThemeName(parentState?.name, props, pendingUpdate === "force" ? true : !!needsUpdate);
|
|
190
|
+
const isSameAsParent = Boolean(parentState && (!name || name === parentState.name));
|
|
219
191
|
const shouldRerender = Boolean(pendingUpdate === "force" || needsUpdate && (pendingUpdate || lastState?.name !== parentState?.name));
|
|
220
|
-
if (process.env.NODE_ENV === "development" && debug === "verbose") {
|
|
221
|
-
const message = ` \xB7 useTheme(${id}) getNextState => ${name} needsUpdate ${needsUpdate} shouldRerender ${shouldRerender}`;
|
|
222
|
-
console.groupCollapsed(message);
|
|
223
|
-
console.trace({
|
|
224
|
-
name,
|
|
225
|
-
lastState,
|
|
226
|
-
parentState,
|
|
227
|
-
props,
|
|
228
|
-
propsKey,
|
|
229
|
-
id,
|
|
230
|
-
isSameAsParent
|
|
231
|
-
});
|
|
232
|
-
console.groupEnd();
|
|
233
|
-
}
|
|
234
192
|
if (isSameAsParent) {
|
|
235
193
|
if (!shouldRerender && lastState && lastState.name === parentState.name) return [false, lastState];
|
|
236
194
|
return [shouldRerender, {
|
|
@@ -249,7 +207,7 @@ const getNextState = (lastState, props, propsKey, isRoot = false, id, parentId,
|
|
|
249
207
|
}
|
|
250
208
|
const scheme = getScheme(name);
|
|
251
209
|
const parentInverses = parentState?.inverses ?? 0;
|
|
252
|
-
const isInverse = parentState && scheme !== parentState.scheme;
|
|
210
|
+
const isInverse = Boolean(parentState && scheme !== parentState.scheme);
|
|
253
211
|
const inverses = parentInverses + (isInverse ? 1 : 0);
|
|
254
212
|
const nextState = {
|
|
255
213
|
id,
|
|
@@ -264,19 +222,7 @@ const getNextState = (lastState, props, propsKey, isRoot = false, id, parentId,
|
|
|
264
222
|
};
|
|
265
223
|
if (isRoot) rootThemeState = nextState;
|
|
266
224
|
if (pendingUpdate !== "force" && lastState && lastState.name === name) return [false, nextState];
|
|
267
|
-
|
|
268
|
-
if (process.env.NODE_ENV === "development" && debug === "verbose") {
|
|
269
|
-
console.groupCollapsed(` \xB7 useTheme(${id}) \u23ED\uFE0F ${name} shouldAvoidRerender: ${shouldAvoidRerender}`);
|
|
270
|
-
console.info({
|
|
271
|
-
lastState,
|
|
272
|
-
needsUpdate,
|
|
273
|
-
nextState,
|
|
274
|
-
pendingUpdate
|
|
275
|
-
});
|
|
276
|
-
console.groupEnd();
|
|
277
|
-
}
|
|
278
|
-
if (shouldAvoidRerender) return [false, nextState];
|
|
279
|
-
return [true, nextState];
|
|
225
|
+
return [!(pendingUpdate !== "force" && lastState && !needsUpdate && nextState.name === lastState.name), nextState];
|
|
280
226
|
};
|
|
281
227
|
function scheduleUpdate(id) {
|
|
282
228
|
const queue = [id];
|
|
@@ -302,12 +248,8 @@ function getScheme(name) {
|
|
|
302
248
|
return validSchemes[name.split("_")[0]];
|
|
303
249
|
}
|
|
304
250
|
function getNewThemeName(parentName = "", props, forceUpdate = false) {
|
|
305
|
-
const { name
|
|
306
|
-
|
|
307
|
-
name,
|
|
308
|
-
reset
|
|
309
|
-
}));
|
|
310
|
-
const cacheKey = `${parentName}|${name || ""}|${reset ? 1 : 0}|${forceUpdate ? 1 : 0}`;
|
|
251
|
+
const { name } = props;
|
|
252
|
+
const cacheKey = `${parentName}|${name || ""}|${forceUpdate ? 1 : 0}`;
|
|
311
253
|
if (themeNameCacheVer !== cacheVersion) {
|
|
312
254
|
themeNameCache.clear();
|
|
313
255
|
themeNameCacheVer = cacheVersion;
|
|
@@ -315,20 +257,13 @@ function getNewThemeName(parentName = "", props, forceUpdate = false) {
|
|
|
315
257
|
const cached = themeNameCache.get(cacheKey);
|
|
316
258
|
if (cached !== void 0) return cached;
|
|
317
259
|
}
|
|
318
|
-
const result = resolveThemeName(parentName, name ?? void 0,
|
|
260
|
+
const result = resolveThemeName(parentName, name ?? void 0, getConfig().themes, forceUpdate);
|
|
319
261
|
if (themeNameCache.size >= 1e4) themeNameCache.clear();
|
|
320
262
|
themeNameCache.set(cacheKey, result);
|
|
321
263
|
return result;
|
|
322
264
|
}
|
|
323
265
|
const getThemeNameCacheSize = () => themeNameCache.size;
|
|
324
|
-
function resolveThemeName(parentName, name,
|
|
325
|
-
if (reset) {
|
|
326
|
-
if (parentName === "light" || parentName === "dark") return parentName === "light" ? "dark" : "light";
|
|
327
|
-
const lastPartIndex = parentName.lastIndexOf("_");
|
|
328
|
-
const resetName = lastPartIndex <= 0 ? parentName : parentName.slice(lastPartIndex);
|
|
329
|
-
const scheme = parentName.slice(0, lastPartIndex);
|
|
330
|
-
return themes2[resetName] ? resetName : scheme;
|
|
331
|
-
}
|
|
266
|
+
function resolveThemeName(parentName, name, themes2, forceUpdate = false) {
|
|
332
267
|
const parentParts = parentName ? parentName.split("_") : [];
|
|
333
268
|
let found = null;
|
|
334
269
|
if (name) {
|
|
@@ -346,8 +281,8 @@ function resolveThemeName(parentName, name, reset, themes2, forceUpdate = false)
|
|
|
346
281
|
if (!forceUpdate && found === parentName && !validSchemes[found]) return null;
|
|
347
282
|
return found;
|
|
348
283
|
}
|
|
349
|
-
const getPropsKey = ({ name,
|
|
350
|
-
const hasThemeUpdatingProps = (props) => "name" in props || "
|
|
284
|
+
const getPropsKey = ({ name, forceClassName, _themeUpdate }) => `${name || ""}${forceClassName || ""}${_themeUpdate?.key || ""}`;
|
|
285
|
+
const hasThemeUpdatingProps = (props) => "name" in props || "forceClassName" in props || "_themeUpdate" in props;
|
|
351
286
|
|
|
352
287
|
export { ThemeStateContext, forceUpdateThemes, getNewThemeName, getRootThemeState, getThemeNameCacheSize, getThemeProviderChainSizes, getThemeProviderParent, getThemeState, getThemeUpdateLayer, hasThemeUpdatingProps, resolveThemeName, useThemeState };
|
|
353
288
|
//# sourceMappingURL=useThemeState.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useThemeState.js","names":[],"sources":["esm/hooks/useThemeState.js"],"sourcesContent":["import { useIsomorphicLayoutEffect } from \"@tamagui/constants\";\nimport { createContext, useContext, useEffect, useId, useReducer, useRef } from \"react\";\nimport { getConfig } from \"../config\";\nimport { formatDiagnostic } from \"../helpers/formatDiagnostic\";\nimport { MISSING_THEME_MESSAGE } from \"../constants/constants\";\n\nconst ThemeStateContext = createContext(\"\");\nconst allListeners = /* @__PURE__ */ new Map();\nconst listenersByParent = {};\nconst HasRenderedOnce = /* @__PURE__ */ new WeakMap();\nconst HadTheme = /* @__PURE__ */ new WeakMap();\nconst PendingUpdate = /* @__PURE__ */ new Map();\nconst states = /* @__PURE__ */ new Map();\nconst localStates = /* @__PURE__ */ new Map();\nlet shouldForce = false;\nconst forceUpdateThemes = () => {\n\tcacheVersion++;\n\tshouldForce = true;\n\tallListeners.forEach((cb) => cb());\n\tshouldForce = false;\n};\nconst getThemeState = (id) => states.get(id);\nconst themeUpdateLayers = /* @__PURE__ */ new Map();\nconst themeProviderParents = /* @__PURE__ */ new Map();\nconst getThemeUpdateLayer = (id) => themeUpdateLayers.get(id);\nconst getThemeProviderParent = (id) => themeProviderParents.get(id);\nconst getThemeProviderChainSizes = () => ({\n\tlayers: themeUpdateLayers.size,\n\tparents: themeProviderParents.size\n});\nconst registerThemeProviderChain = (id, parentId, props) => {\n\tthemeProviderParents.set(id, parentId);\n\tif (props._themeUpdate) themeUpdateLayers.set(id, props._themeUpdate);\n\telse themeUpdateLayers.delete(id);\n};\nlet cacheVersion = 0;\nconst themeNameCache = /* @__PURE__ */ new Map();\nlet themeNameCacheVer = -1;\nlet themes = null;\nlet rootThemeState = null;\nconst getRootThemeState = () => rootThemeState;\nconst incReducer = (c) => c + 1;\nconst useThemeState = (props, isRoot = false, keys, schemeKeys, cascadeOnChange = false, optimizeForFirstRender = false) => {\n\t\"use no memo\";\n\tconst { disable } = props;\n\tconst parentId = useContext(ThemeStateContext);\n\tif (!parentId && !isRoot) throw new Error(process.env.NODE_ENV === \"development\" ? `${MISSING_THEME_MESSAGE}\n\nLooked for theme${props.name ? ` \"${props.name}\"` : \"\"}, but no parent theme context was found (parentId: ${parentId}).` : MISSING_THEME_MESSAGE);\n\tif (disable) return states.get(parentId) || {\n\t\tid: \"\",\n\t\tname: \"light\",\n\t\ttheme: getConfig().themes.light\n\t};\n\tconst id = useId();\n\tconst propsKey = getPropsKey(props);\n\tif (cascadeOnChange) registerThemeProviderChain(id, parentId, props);\n\tconst ref = useRef(null);\n\tif (!ref.current) ref.current = {\n\t\tid,\n\t\tparentId,\n\t\tprops,\n\t\tpropsKey,\n\t\tisRoot,\n\t\tkeys,\n\t\tschemeKeys,\n\t\toptimizeForFirstRender,\n\t\trenderVersion: 0\n\t};\n\telse {\n\t\tref.current.props = props;\n\t\tref.current.propsKey = propsKey;\n\t\tref.current.isRoot = isRoot;\n\t\tref.current.keys = keys;\n\t\tref.current.schemeKeys = schemeKeys;\n\t\tref.current.parentId = parentId;\n\t}\n\tref.current.renderVersion++;\n\tif (process.env.NODE_ENV === \"development\" && globalThis.time) globalThis.time`theme-prep-uses`;\n\tconst [, forceUpdate] = useReducer(incReducer, 0);\n\tconst state = getSnapshotImpl(ref.current);\n\tref.current.lastSnap = state;\n\tuseEffect(() => {\n\t\tconst r = ref.current;\n\t\tconst renderVersion = r.renderVersion;\n\t\tif (r.lastSnap && !states.has(r.id)) {\n\t\t\tstates.set(r.id, r.lastSnap);\n\t\t\tlocalStates.set(r.id, r.lastSnap);\n\t\t}\n\t\tif (cascadeOnChange && !themeProviderParents.has(r.id)) registerThemeProviderChain(r.id, r.parentId, r.props);\n\t\tif (r.unsubscribe && r.subscribedParentId !== r.parentId) cleanupThemeSubscription(r);\n\t\tif (shouldSubscribeToTheme(r, cascadeOnChange)) {\n\t\t\tif (!r.unsubscribe) {\n\t\t\t\tconst pid = r.parentId;\n\t\t\t\tconst sid = r.id;\n\t\t\t\tconst cb = (forced) => {\n\t\t\t\t\tconst next = getSnapshotImpl(r);\n\t\t\t\t\tif (next !== r.lastSnap) {\n\t\t\t\t\t\tr.lastSnap = next;\n\t\t\t\t\t\tif (!forced && r.props.nativeUpdate?.(next)) return;\n\t\t\t\t\t\tforceUpdate();\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tlistenersByParent[pid] = listenersByParent[pid] || /* @__PURE__ */ new Set();\n\t\t\t\tlistenersByParent[pid].add(sid);\n\t\t\t\tallListeners.set(sid, () => {\n\t\t\t\t\tconst forced = shouldForce;\n\t\t\t\t\tPendingUpdate.set(sid, forced ? \"force\" : true);\n\t\t\t\t\tcb(forced);\n\t\t\t\t});\n\t\t\t\tr.subscribedParentId = pid;\n\t\t\t\tr.unsubscribe = () => {\n\t\t\t\t\tallListeners.delete(sid);\n\t\t\t\t\tlistenersByParent[pid]?.delete(sid);\n\t\t\t\t\tlocalStates.delete(sid);\n\t\t\t\t\tstates.delete(sid);\n\t\t\t\t\tPendingUpdate.delete(sid);\n\t\t\t\t\tr.unsubscribe = void 0;\n\t\t\t\t\tr.subscribedParentId = void 0;\n\t\t\t\t};\n\t\t\t}\n\t\t} else if (r.unsubscribe) cleanupThemeSubscription(r);\n\t\treturn () => {\n\t\t\tif (r.renderVersion === renderVersion) cleanupThemeState(r);\n\t\t};\n\t});\n\tif (cascadeOnChange) useIsomorphicLayoutEffect(() => {\n\t\tif (!HasRenderedOnce.get(keys)) {\n\t\t\tHasRenderedOnce.set(keys, true);\n\t\t\treturn;\n\t\t}\n\t\tif (!propsKey) {\n\t\t\tif (HadTheme.get(keys)) scheduleUpdate(id);\n\t\t\tHadTheme.set(keys, false);\n\t\t\treturn;\n\t\t}\n\t\tif (process.env.NODE_ENV === \"development\" && props.debug === \"verbose\") console.warn(` \\xB7 useTheme(${id}) scheduleUpdate`, propsKey, states.get(id)?.name);\n\t\tscheduleUpdate(id);\n\t\tHadTheme.set(keys, true);\n\t}, [keys, propsKey]);\n\treturn state;\n};\nconst shouldSubscribeToTheme = (r, cascadeOnChange) => r.optimizeForFirstRender || r.isRoot || cascadeOnChange || hasThemeUpdatingProps(r.props) || !!r.keys.current?.size || !!r.props.needsUpdate?.();\nfunction cleanupThemeSubscription(r) {\n\tr.unsubscribe?.();\n}\nfunction cleanupThemeState(r) {\n\tif (r.unsubscribe) cleanupThemeSubscription(r);\n\telse {\n\t\tlocalStates.delete(r.id);\n\t\tstates.delete(r.id);\n\t\tPendingUpdate.delete(r.id);\n\t}\n\tthemeUpdateLayers.delete(r.id);\n\tthemeProviderParents.delete(r.id);\n}\nconst getSnapshotImpl = (r) => {\n\tconst { id, parentId, props, propsKey, isRoot, keys, schemeKeys, optimizeForFirstRender } = r;\n\tlet local = localStates.get(id);\n\tconst parentState = states.get(parentId);\n\tif (local && !PendingUpdate.has(id)) {\n\t\tif (parentState && local._parentName === parentState.name && local._propsKey === propsKey) return local;\n\t}\n\tconst isSchemeOnlyChange = !optimizeForFirstRender && false;\n\tlet allKeysSchemeOptimized = false;\n\tif (!optimizeForFirstRender) {\n\t\tconst keysSize = keys.current?.size ?? 0;\n\t\tallKeysSchemeOptimized = (schemeKeys?.current?.size ?? 0) === keysSize && keysSize > 0;\n\t}\n\tconst canSkipForSchemeChange = !!isSchemeOnlyChange && allKeysSchemeOptimized;\n\tconst needsUpdate = props.passThrough ? false : optimizeForFirstRender ? true : isRoot || props.name === \"light\" || props.name === \"dark\" || props.name === null ? true : !HasRenderedOnce.get(keys) ? true : canSkipForSchemeChange ? false : keys?.current?.size ? true : props.needsUpdate?.();\n\tconst [rerender, nextRaw] = getNextState(local, props, propsKey, isRoot, id, parentId, needsUpdate, PendingUpdate.get(id));\n\tlet next = nextRaw;\n\tif (props._themeUpdate && nextRaw?.theme) {\n\t\tconst parentTheme = states.get(parentId)?.theme || nextRaw.theme;\n\t\tconst merged = props._themeUpdate.getTheme(parentTheme, nextRaw.name, getConfig());\n\t\tif (merged !== nextRaw.theme) next = {\n\t\t\t...nextRaw,\n\t\t\ttheme: merged\n\t\t};\n\t}\n\tPendingUpdate.delete(id);\n\tif (!local || rerender) {\n\t\tlocal = { ...next };\n\t\tlocalStates.set(id, local);\n\t}\n\tif (process.env.NODE_ENV === \"development\" && props.debug === \"verbose\") {\n\t\tconsole.groupCollapsed(` ${id} getSnapshot ${rerender}`, local.name, \">\", next.name);\n\t\tconsole.info({\n\t\t\tprops,\n\t\t\tpropsKey,\n\t\t\tisRoot,\n\t\t\tparentId,\n\t\t\tlocal,\n\t\t\tnext,\n\t\t\tneedsUpdate,\n\t\t\tisSchemeOnlyChange,\n\t\t\tallKeysSchemeOptimized,\n\t\t\tcanSkipForSchemeChange\n\t\t});\n\t\tconsole.groupEnd();\n\t}\n\tif (next !== local) {\n\t\tObject.assign(local, next);\n\t\tlocal.id = id;\n\t}\n\tlocal._parentName = parentState?.name;\n\tlocal._propsKey = propsKey;\n\tstates.set(id, next);\n\treturn local;\n};\nconst getNextState = (lastState, props, propsKey, isRoot = false, id, parentId, needsUpdate, pendingUpdate) => {\n\tconst { debug } = props;\n\tconst parentState = states.get(parentId);\n\tif (props.passThrough) return [false, lastState || parentState || { name: \"\" }];\n\tif (!themes) themes = getConfig().themes;\n\tconst name = !propsKey && (!lastState || !lastState?.isNew) ? null : getNewThemeName(parentState?.name, props, pendingUpdate === \"force\" ? true : !!needsUpdate);\n\tconst isSameAsParent = parentState && (!name || name === parentState.name);\n\tconst shouldRerender = Boolean(pendingUpdate === \"force\" || needsUpdate && (pendingUpdate || lastState?.name !== parentState?.name));\n\tif (process.env.NODE_ENV === \"development\" && debug === \"verbose\") {\n\t\tconst message = ` \\xB7 useTheme(${id}) getNextState => ${name} needsUpdate ${needsUpdate} shouldRerender ${shouldRerender}`;\n\t\tconsole.groupCollapsed(message);\n\t\tconsole.trace({\n\t\t\tname,\n\t\t\tlastState,\n\t\t\tparentState,\n\t\t\tprops,\n\t\t\tpropsKey,\n\t\t\tid,\n\t\t\tisSameAsParent\n\t\t});\n\t\tconsole.groupEnd();\n\t}\n\tif (isSameAsParent) {\n\t\tif (!shouldRerender && lastState && lastState.name === parentState.name) return [false, lastState];\n\t\treturn [shouldRerender, {\n\t\t\t...parentState,\n\t\t\tisNew: false\n\t\t}];\n\t}\n\tif (!name) {\n\t\tconst next = lastState ?? parentState ?? rootThemeState ?? {\n\t\t\tid,\n\t\t\tname: \"light\",\n\t\t\ttheme: getConfig().themes.light\n\t\t};\n\t\tif (shouldRerender) return [true, { ...parentState || lastState || next }];\n\t\treturn [false, next];\n\t}\n\tconst scheme = getScheme(name);\n\tconst parentInverses = parentState?.inverses ?? 0;\n\tconst isInverse = parentState && scheme !== parentState.scheme;\n\tconst inverses = parentInverses + (isInverse ? 1 : 0);\n\tconst nextState = {\n\t\tid,\n\t\tname,\n\t\ttheme: themes[name],\n\t\tscheme,\n\t\tparentId,\n\t\tparentName: parentState?.name,\n\t\tinverses,\n\t\tisInverse,\n\t\tisNew: true\n\t};\n\tif (isRoot) rootThemeState = nextState;\n\tif (pendingUpdate !== \"force\" && lastState && lastState.name === name) return [false, nextState];\n\tconst shouldAvoidRerender = pendingUpdate !== \"force\" && lastState && !needsUpdate && nextState.name === lastState.name;\n\tif (process.env.NODE_ENV === \"development\" && debug === \"verbose\") {\n\t\tconsole.groupCollapsed(` \\xB7 useTheme(${id}) \\u23ED\\uFE0F ${name} shouldAvoidRerender: ${shouldAvoidRerender}`);\n\t\tconsole.info({\n\t\t\tlastState,\n\t\t\tneedsUpdate,\n\t\t\tnextState,\n\t\t\tpendingUpdate\n\t\t});\n\t\tconsole.groupEnd();\n\t}\n\tif (shouldAvoidRerender) return [false, nextState];\n\treturn [true, nextState];\n};\nfunction scheduleUpdate(id) {\n\tconst queue = [id];\n\tconst visited = /* @__PURE__ */ new Set();\n\twhile (queue.length) {\n\t\tconst children = listenersByParent[queue.shift()];\n\t\tif (children) {\n\t\t\tfor (const childId of children) if (!visited.has(childId)) {\n\t\t\t\tvisited.add(childId);\n\t\t\t\tqueue.push(childId);\n\t\t\t}\n\t\t}\n\t}\n\tvisited.forEach((childId) => {\n\t\tallListeners.get(childId)?.();\n\t});\n}\nconst validSchemes = {\n\tlight: \"light\",\n\tdark: \"dark\"\n};\nfunction getScheme(name) {\n\treturn validSchemes[name.split(\"_\")[0]];\n}\nfunction getNewThemeName(parentName = \"\", props, forceUpdate = false) {\n\tconst { name, reset } = props;\n\tif (name && reset) throw new Error(formatDiagnostic(\"❌004\", \"Theme\", \"props name and reset are mutually exclusive\", \"Pass either name or reset, not both\", \"name,reset\", {\n\t\tname,\n\t\treset\n\t}));\n\tconst cacheKey = `${parentName}|${name || \"\"}|${reset ? 1 : 0}|${forceUpdate ? 1 : 0}`;\n\tif (themeNameCacheVer !== cacheVersion) {\n\t\tthemeNameCache.clear();\n\t\tthemeNameCacheVer = cacheVersion;\n\t} else {\n\t\tconst cached = themeNameCache.get(cacheKey);\n\t\tif (cached !== void 0) return cached;\n\t}\n\tconst result = resolveThemeName(parentName, name ?? void 0, reset, getConfig().themes, forceUpdate);\n\tif (themeNameCache.size >= 1e4) themeNameCache.clear();\n\tthemeNameCache.set(cacheKey, result);\n\treturn result;\n}\nconst getThemeNameCacheSize = () => themeNameCache.size;\nfunction resolveThemeName(parentName, name, reset, themes2, forceUpdate = false) {\n\tif (reset) {\n\t\tif (parentName === \"light\" || parentName === \"dark\") return parentName === \"light\" ? \"dark\" : \"light\";\n\t\tconst lastPartIndex = parentName.lastIndexOf(\"_\");\n\t\tconst resetName = lastPartIndex <= 0 ? parentName : parentName.slice(lastPartIndex);\n\t\tconst scheme = parentName.slice(0, lastPartIndex);\n\t\treturn themes2[resetName] ? resetName : scheme;\n\t}\n\tconst parentParts = parentName ? parentName.split(\"_\") : [];\n\tlet found = null;\n\tif (name) {\n\t\tconst nameHasScheme = getScheme(name);\n\t\tif (nameHasScheme && name in themes2) found = name;\n\t\tif (!found && !nameHasScheme) for (let i = parentParts.length; i >= 0; i--) {\n\t\t\tconst base = parentParts.slice(0, i).join(\"_\");\n\t\t\tconst potential = base ? `${base}_${name}` : name;\n\t\t\tif (potential in themes2) {\n\t\t\t\tfound = potential;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tif (!forceUpdate && found === parentName && !validSchemes[found]) return null;\n\treturn found;\n}\nconst getPropsKey = ({ name, reset, forceClassName, _themeUpdate }) => `${name || \"\"}${reset || \"\"}${forceClassName || \"\"}${_themeUpdate?.key || \"\"}`;\nconst hasThemeUpdatingProps = (props) => \"name\" in props || \"reset\" in props || \"forceClassName\" in props || \"_themeUpdate\" in props;\n\nexport { ThemeStateContext, forceUpdateThemes, getNewThemeName, getRootThemeState, getThemeNameCacheSize, getThemeProviderChainSizes, getThemeProviderParent, getThemeState, getThemeUpdateLayer, hasThemeUpdatingProps, resolveThemeName, useThemeState };"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useThemeState.js","names":[],"sources":["esm/hooks/useThemeState.js"],"sourcesContent":["import { useIsomorphicLayoutEffect } from \"@tamagui/constants\";\nimport { createContext, useContext, useEffect, useId, useReducer, useRef } from \"react\";\nimport { getConfig } from \"../config\";\nimport { MISSING_THEME_MESSAGE } from \"../constants/constants\";\n\nconst ThemeStateContext = createContext(\"\");\nconst allListeners = /* @__PURE__ */ new Map();\nconst listenersByParent = {};\nconst HasRenderedOnce = /* @__PURE__ */ new WeakMap();\nconst HadTheme = /* @__PURE__ */ new WeakMap();\nconst PendingUpdate = /* @__PURE__ */ new Map();\nconst states = /* @__PURE__ */ new Map();\nconst localStates = /* @__PURE__ */ new Map();\nlet shouldForce = false;\nconst forceUpdateThemes = () => {\n\tcacheVersion++;\n\tshouldForce = true;\n\tallListeners.forEach((cb) => cb());\n\tshouldForce = false;\n};\nconst getThemeState = (id) => states.get(id);\nconst themeUpdateLayers = /* @__PURE__ */ new Map();\nconst themeProviderParents = /* @__PURE__ */ new Map();\nconst getThemeUpdateLayer = (id) => themeUpdateLayers.get(id);\nconst getThemeProviderParent = (id) => themeProviderParents.get(id);\nconst getThemeProviderChainSizes = () => ({\n\tlayers: themeUpdateLayers.size,\n\tparents: themeProviderParents.size\n});\nconst registerThemeProviderChain = (id, parentId, props) => {\n\tthemeProviderParents.set(id, parentId);\n\tif (props._themeUpdate) themeUpdateLayers.set(id, props._themeUpdate);\n\telse themeUpdateLayers.delete(id);\n};\nlet cacheVersion = 0;\nconst themeNameCache = /* @__PURE__ */ new Map();\nlet themeNameCacheVer = -1;\nlet themes = null;\nlet rootThemeState = null;\nconst getRootThemeState = () => rootThemeState;\nconst incReducer = (c) => c + 1;\nconst useThemeState = (props, isRoot = false, keys, schemeKeys, cascadeOnChange = false, optimizeForFirstRender = false) => {\n\t\"use no memo\";\n\tconst { disable } = props;\n\tconst parentId = useContext(ThemeStateContext);\n\tif (!parentId && !isRoot) throw new Error(process.env.NODE_ENV === \"development\" ? `${MISSING_THEME_MESSAGE}\n\nLooked for theme${props.name ? ` \"${props.name}\"` : \"\"}, but no parent theme context was found (parentId: ${parentId}).` : MISSING_THEME_MESSAGE);\n\tif (disable) return states.get(parentId) || {\n\t\tid: \"\",\n\t\tname: \"light\",\n\t\ttheme: getConfig().themes.light\n\t};\n\tconst id = useId();\n\tconst propsKey = getPropsKey(props);\n\tif (cascadeOnChange) registerThemeProviderChain(id, parentId, props);\n\tconst ref = useRef(null);\n\tconst r = ref.current ||= {\n\t\tid,\n\t\tparentId,\n\t\tprops,\n\t\tpropsKey,\n\t\tisRoot,\n\t\tkeys,\n\t\tschemeKeys,\n\t\toptimizeForFirstRender,\n\t\trenderVersion: 0\n\t};\n\tr.props = props;\n\tr.propsKey = propsKey;\n\tr.isRoot = isRoot;\n\tr.keys = keys;\n\tr.schemeKeys = schemeKeys;\n\tr.parentId = parentId;\n\tr.renderVersion++;\n\tconst [, forceUpdate] = useReducer(incReducer, 0);\n\tconst state = getSnapshotImpl(r);\n\tr.lastSnap = state;\n\tuseEffect(() => {\n\t\tconst renderVersion = r.renderVersion;\n\t\tif (r.lastSnap && !states.has(r.id)) {\n\t\t\tstates.set(r.id, r.lastSnap);\n\t\t\tlocalStates.set(r.id, r.lastSnap);\n\t\t}\n\t\tif (cascadeOnChange && !themeProviderParents.has(r.id)) registerThemeProviderChain(r.id, r.parentId, r.props);\n\t\tif (r.unsubscribe && r.subscribedParentId !== r.parentId) cleanupThemeSubscription(r);\n\t\tif (shouldSubscribeToTheme(r, cascadeOnChange)) {\n\t\t\tif (!r.unsubscribe) {\n\t\t\t\tconst pid = r.parentId;\n\t\t\t\tconst sid = r.id;\n\t\t\t\tconst cb = (forced) => {\n\t\t\t\t\tconst next = getSnapshotImpl(r);\n\t\t\t\t\tif (next !== r.lastSnap) {\n\t\t\t\t\t\tr.lastSnap = next;\n\t\t\t\t\t\tif (!forced && r.props.nativeUpdate?.(next)) return;\n\t\t\t\t\t\tforceUpdate();\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\t(listenersByParent[pid] ||= /* @__PURE__ */ new Set()).add(sid);\n\t\t\t\tallListeners.set(sid, () => {\n\t\t\t\t\tconst forced = shouldForce;\n\t\t\t\t\tPendingUpdate.set(sid, forced ? \"force\" : true);\n\t\t\t\t\tcb(forced);\n\t\t\t\t});\n\t\t\t\tr.subscribedParentId = pid;\n\t\t\t\tr.unsubscribe = () => {\n\t\t\t\t\tallListeners.delete(sid);\n\t\t\t\t\tlistenersByParent[pid]?.delete(sid);\n\t\t\t\t\tlocalStates.delete(sid);\n\t\t\t\t\tstates.delete(sid);\n\t\t\t\t\tPendingUpdate.delete(sid);\n\t\t\t\t\tr.unsubscribe = void 0;\n\t\t\t\t\tr.subscribedParentId = void 0;\n\t\t\t\t};\n\t\t\t}\n\t\t} else if (r.unsubscribe) cleanupThemeSubscription(r);\n\t\treturn () => {\n\t\t\tif (r.renderVersion === renderVersion) cleanupThemeState(r);\n\t\t};\n\t});\n\tif (cascadeOnChange) useIsomorphicLayoutEffect(() => {\n\t\tif (!HasRenderedOnce.get(keys)) {\n\t\t\tHasRenderedOnce.set(keys, true);\n\t\t\treturn;\n\t\t}\n\t\tif (!propsKey) {\n\t\t\tif (HadTheme.get(keys)) scheduleUpdate(id);\n\t\t\tHadTheme.set(keys, false);\n\t\t\treturn;\n\t\t}\n\t\tscheduleUpdate(id);\n\t\tHadTheme.set(keys, true);\n\t}, [keys, propsKey]);\n\treturn state;\n};\nconst shouldSubscribeToTheme = (r, cascadeOnChange) => Boolean(r.optimizeForFirstRender || r.isRoot || cascadeOnChange || hasThemeUpdatingProps(r.props) || r.keys.current?.size || r.props.needsUpdate?.());\nfunction cleanupThemeSubscription(r) {\n\tr.unsubscribe?.();\n}\nfunction cleanupThemeState(r) {\n\tif (r.unsubscribe) cleanupThemeSubscription(r);\n\telse {\n\t\tlocalStates.delete(r.id);\n\t\tstates.delete(r.id);\n\t\tPendingUpdate.delete(r.id);\n\t}\n\tthemeUpdateLayers.delete(r.id);\n\tthemeProviderParents.delete(r.id);\n}\nconst getSnapshotImpl = (r) => {\n\tconst { id, parentId, props, propsKey, isRoot, keys, schemeKeys, optimizeForFirstRender } = r;\n\tlet local = localStates.get(id);\n\tconst parentState = states.get(parentId);\n\tif (local && !PendingUpdate.has(id)) {\n\t\tif (parentState && local._parentName === parentState.name && local._propsKey === propsKey) return local;\n\t}\n\tconst isSchemeOnlyChange = !optimizeForFirstRender && false;\n\tconst allKeysSchemeOptimized = !optimizeForFirstRender && Boolean(keys.current?.size && schemeKeys?.current?.size === keys.current.size);\n\tconst canSkipForSchemeChange = Boolean(isSchemeOnlyChange && allKeysSchemeOptimized);\n\tconst needsUpdate = props.passThrough ? false : optimizeForFirstRender ? true : isRoot || props.name === \"light\" || props.name === \"dark\" || props.name === null ? true : !HasRenderedOnce.get(keys) ? true : canSkipForSchemeChange ? false : keys?.current?.size ? true : props.needsUpdate?.();\n\tconst [rerender, nextRaw] = getNextState(local, props, propsKey, isRoot, id, parentId, needsUpdate, PendingUpdate.get(id));\n\tlet next = nextRaw;\n\tif (props._themeUpdate && nextRaw?.theme) {\n\t\tconst parentTheme = states.get(parentId)?.theme || nextRaw.theme;\n\t\tconst merged = props._themeUpdate.getTheme(parentTheme, nextRaw.name, getConfig());\n\t\tif (merged !== nextRaw.theme) next = {\n\t\t\t...nextRaw,\n\t\t\ttheme: merged\n\t\t};\n\t}\n\tPendingUpdate.delete(id);\n\tif (!local || rerender) {\n\t\tlocal = { ...next };\n\t\tlocalStates.set(id, local);\n\t}\n\tif (next !== local) {\n\t\tObject.assign(local, next);\n\t\tlocal.id = id;\n\t}\n\tlocal._parentName = parentState?.name;\n\tlocal._propsKey = propsKey;\n\tstates.set(id, next);\n\treturn local;\n};\nconst getNextState = (lastState, props, propsKey, isRoot = false, id, parentId, needsUpdate, pendingUpdate) => {\n\tconst parentState = states.get(parentId);\n\tif (props.passThrough) return [false, lastState || parentState || { name: \"\" }];\n\tthemes ||= getConfig().themes;\n\tconst name = !propsKey && (!lastState || !lastState.isNew) ? null : getNewThemeName(parentState?.name, props, pendingUpdate === \"force\" ? true : !!needsUpdate);\n\tconst isSameAsParent = Boolean(parentState && (!name || name === parentState.name));\n\tconst shouldRerender = Boolean(pendingUpdate === \"force\" || needsUpdate && (pendingUpdate || lastState?.name !== parentState?.name));\n\tif (isSameAsParent) {\n\t\tif (!shouldRerender && lastState && lastState.name === parentState.name) return [false, lastState];\n\t\treturn [shouldRerender, {\n\t\t\t...parentState,\n\t\t\tisNew: false\n\t\t}];\n\t}\n\tif (!name) {\n\t\tconst next = lastState ?? parentState ?? rootThemeState ?? {\n\t\t\tid,\n\t\t\tname: \"light\",\n\t\t\ttheme: getConfig().themes.light\n\t\t};\n\t\tif (shouldRerender) return [true, { ...parentState || lastState || next }];\n\t\treturn [false, next];\n\t}\n\tconst scheme = getScheme(name);\n\tconst parentInverses = parentState?.inverses ?? 0;\n\tconst isInverse = Boolean(parentState && scheme !== parentState.scheme);\n\tconst inverses = parentInverses + (isInverse ? 1 : 0);\n\tconst nextState = {\n\t\tid,\n\t\tname,\n\t\ttheme: themes[name],\n\t\tscheme,\n\t\tparentId,\n\t\tparentName: parentState?.name,\n\t\tinverses,\n\t\tisInverse,\n\t\tisNew: true\n\t};\n\tif (isRoot) rootThemeState = nextState;\n\tif (pendingUpdate !== \"force\" && lastState && lastState.name === name) return [false, nextState];\n\treturn [!(pendingUpdate !== \"force\" && lastState && !needsUpdate && nextState.name === lastState.name), nextState];\n};\nfunction scheduleUpdate(id) {\n\tconst queue = [id];\n\tconst visited = /* @__PURE__ */ new Set();\n\twhile (queue.length) {\n\t\tconst children = listenersByParent[queue.shift()];\n\t\tif (children) {\n\t\t\tfor (const childId of children) if (!visited.has(childId)) {\n\t\t\t\tvisited.add(childId);\n\t\t\t\tqueue.push(childId);\n\t\t\t}\n\t\t}\n\t}\n\tvisited.forEach((childId) => {\n\t\tallListeners.get(childId)?.();\n\t});\n}\nconst validSchemes = {\n\tlight: \"light\",\n\tdark: \"dark\"\n};\nfunction getScheme(name) {\n\treturn validSchemes[name.split(\"_\")[0]];\n}\nfunction getNewThemeName(parentName = \"\", props, forceUpdate = false) {\n\tconst { name } = props;\n\tconst cacheKey = `${parentName}|${name || \"\"}|${forceUpdate ? 1 : 0}`;\n\tif (themeNameCacheVer !== cacheVersion) {\n\t\tthemeNameCache.clear();\n\t\tthemeNameCacheVer = cacheVersion;\n\t} else {\n\t\tconst cached = themeNameCache.get(cacheKey);\n\t\tif (cached !== void 0) return cached;\n\t}\n\tconst result = resolveThemeName(parentName, name ?? void 0, getConfig().themes, forceUpdate);\n\tif (themeNameCache.size >= 1e4) themeNameCache.clear();\n\tthemeNameCache.set(cacheKey, result);\n\treturn result;\n}\nconst getThemeNameCacheSize = () => themeNameCache.size;\nfunction resolveThemeName(parentName, name, themes2, forceUpdate = false) {\n\tconst parentParts = parentName ? parentName.split(\"_\") : [];\n\tlet found = null;\n\tif (name) {\n\t\tconst nameHasScheme = getScheme(name);\n\t\tif (nameHasScheme && name in themes2) found = name;\n\t\tif (!found && !nameHasScheme) for (let i = parentParts.length; i >= 0; i--) {\n\t\t\tconst base = parentParts.slice(0, i).join(\"_\");\n\t\t\tconst potential = base ? `${base}_${name}` : name;\n\t\t\tif (potential in themes2) {\n\t\t\t\tfound = potential;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tif (!forceUpdate && found === parentName && !validSchemes[found]) return null;\n\treturn found;\n}\nconst getPropsKey = ({ name, forceClassName, _themeUpdate }) => `${name || \"\"}${forceClassName || \"\"}${_themeUpdate?.key || \"\"}`;\nconst hasThemeUpdatingProps = (props) => \"name\" in props || \"forceClassName\" in props || \"_themeUpdate\" in props;\n\nexport { ThemeStateContext, forceUpdateThemes, getNewThemeName, getRootThemeState, getThemeNameCacheSize, getThemeProviderChainSizes, getThemeProviderParent, getThemeState, getThemeUpdateLayer, hasThemeUpdatingProps, resolveThemeName, useThemeState };"],"mappings":"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"}
|