@tamagui/web 1.88.13 → 1.88.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/cjs/createComponent.js +2 -2
- package/dist/cjs/createComponent.js.map +1 -1
- package/dist/cjs/createComponent.native.js +1 -1
- package/dist/cjs/createComponent.native.js.map +1 -1
- package/dist/cjs/createTamagui.js.map +1 -1
- package/dist/cjs/createTamagui.native.js.map +1 -1
- package/dist/cjs/createVariables.js.map +1 -1
- package/dist/cjs/createVariables.native.js.map +1 -1
- package/dist/cjs/helpers/getSplitStyles.js +15 -19
- package/dist/cjs/helpers/getSplitStyles.js.map +1 -1
- package/dist/cjs/helpers/getSplitStyles.native.js +12 -18
- package/dist/cjs/helpers/getSplitStyles.native.js.map +1 -1
- package/dist/cjs/helpers/getStylesAtomic.js.map +1 -1
- package/dist/cjs/helpers/getThemeCSSRules.js.map +1 -1
- package/dist/cjs/helpers/insertStyleRule.js +3 -3
- package/dist/cjs/helpers/insertStyleRule.js.map +1 -1
- package/dist/cjs/helpers/insertStyleRule.native.js +3 -3
- package/dist/cjs/helpers/insertStyleRule.native.js.map +1 -1
- package/dist/cjs/helpers/propMapper.js.map +1 -1
- package/dist/cjs/helpers/propMapper.native.js.map +1 -1
- package/dist/cjs/helpers/registerCSSVariable.js.map +1 -1
- package/dist/cjs/helpers/registerCSSVariable.native.js.map +1 -1
- package/dist/cjs/hooks/getThemeProxied.js +66 -0
- package/dist/cjs/hooks/getThemeProxied.js.map +6 -0
- package/dist/cjs/hooks/getThemeProxied.native.js +100 -0
- package/dist/cjs/hooks/getThemeProxied.native.js.map +6 -0
- package/dist/cjs/hooks/useTheme.js.map +1 -1
- package/dist/cjs/hooks/useTheme.native.js.map +1 -1
- package/dist/cjs/insertFont.js.map +1 -1
- package/dist/cjs/insertFont.native.js.map +1 -1
- package/dist/cjs/setupHooks.js.map +1 -1
- package/dist/cjs/setupHooks.native.js.map +1 -1
- package/dist/cjs/views/FontLanguage.native.js.map +1 -1
- package/dist/cjs/views/Slot.js.map +1 -1
- package/dist/cjs/views/Slot.native.js.map +1 -1
- package/dist/cjs/views/TamaguiProvider.js +5 -5
- package/dist/cjs/views/TamaguiProvider.js.map +1 -1
- package/dist/cjs/views/TamaguiProvider.native.js +5 -5
- package/dist/cjs/views/TamaguiProvider.native.js.map +1 -1
- package/dist/cjs/views/Theme.js.map +1 -1
- package/dist/cjs/views/Theme.native.js.map +1 -1
- package/dist/esm/Tamagui.mjs +43 -0
- package/dist/esm/config.mjs +51 -0
- package/dist/esm/constants/accessibilityDirectMap.mjs +50 -0
- package/dist/esm/constants/constants.mjs +16 -0
- package/dist/esm/constants/isDevTools.mjs +7 -0
- package/dist/esm/contexts/ComponentContext.mjs +13 -0
- package/dist/esm/createComponent.js +2 -2
- package/dist/esm/createComponent.js.map +1 -1
- package/dist/esm/createComponent.mjs +771 -0
- package/dist/esm/createComponent.native.js +1 -1
- package/dist/esm/createComponent.native.js.map +1 -1
- package/dist/esm/createFont.mjs +18 -0
- package/dist/esm/createShorthands.mjs +4 -0
- package/dist/esm/createTamagui.js.map +1 -1
- package/dist/esm/createTamagui.mjs +206 -0
- package/dist/esm/createTamagui.native.js.map +1 -1
- package/dist/esm/createTheme.mjs +2 -0
- package/dist/esm/createTokens.mjs +5 -0
- package/dist/esm/createVariable.mjs +48 -0
- package/dist/esm/createVariables.js.map +1 -1
- package/dist/esm/createVariables.mjs +35 -0
- package/dist/esm/createVariables.native.js.map +1 -1
- package/dist/esm/defaultComponentState.mjs +16 -0
- package/dist/esm/helpers/ThemeManager.mjs +156 -0
- package/dist/esm/helpers/ThemeManagerContext.mjs +3 -0
- package/dist/esm/helpers/createMediaStyle.mjs +71 -0
- package/dist/esm/helpers/createShallowSetState.mjs +17 -0
- package/dist/esm/helpers/createStyledContext.mjs +35 -0
- package/dist/esm/helpers/defaultOffset.mjs +5 -0
- package/dist/esm/helpers/expandStyle.mjs +38 -0
- package/dist/esm/helpers/expandStyles.mjs +15 -0
- package/dist/esm/helpers/getExpandedShorthands.mjs +9 -0
- package/dist/esm/helpers/getFontLanguage.mjs +2 -0
- package/dist/esm/helpers/getGroupPropParts.mjs +13 -0
- package/dist/esm/helpers/getSplitStyles.js +15 -18
- package/dist/esm/helpers/getSplitStyles.js.map +1 -1
- package/dist/esm/helpers/getSplitStyles.mjs +638 -0
- package/dist/esm/helpers/getSplitStyles.native.js +12 -18
- package/dist/esm/helpers/getSplitStyles.native.js.map +1 -1
- package/dist/esm/helpers/getStylesAtomic.js +1 -4
- package/dist/esm/helpers/getStylesAtomic.js.map +1 -1
- package/dist/esm/helpers/getStylesAtomic.mjs +150 -0
- package/dist/esm/helpers/getThemeCSSRules.js.map +1 -1
- package/dist/esm/helpers/getThemeCSSRules.mjs +87 -0
- package/dist/esm/helpers/getVariantExtras.mjs +43 -0
- package/dist/esm/helpers/insertStyleRule.js +3 -3
- package/dist/esm/helpers/insertStyleRule.js.map +1 -1
- package/dist/esm/helpers/insertStyleRule.mjs +177 -0
- package/dist/esm/helpers/insertStyleRule.native.js +3 -3
- package/dist/esm/helpers/insertStyleRule.native.js.map +1 -1
- package/dist/esm/helpers/isObj.mjs +2 -0
- package/dist/esm/helpers/isTamaguiComponent.mjs +5 -0
- package/dist/esm/helpers/isTamaguiElement.mjs +4 -0
- package/dist/esm/helpers/log.mjs +4 -0
- package/dist/esm/helpers/matchMedia.mjs +11 -0
- package/dist/esm/helpers/mergeProps.mjs +21 -0
- package/dist/esm/helpers/mergeVariants.mjs +16 -0
- package/dist/esm/helpers/normalizeColor.mjs +17 -0
- package/dist/esm/helpers/normalizeShadow.mjs +23 -0
- package/dist/esm/helpers/normalizeStyle.mjs +23 -0
- package/dist/esm/helpers/normalizeStylePropKeys.mjs +2 -0
- package/dist/esm/helpers/normalizeValueWithProperty.mjs +32 -0
- package/dist/esm/helpers/objectIdentityKey.mjs +15 -0
- package/dist/esm/helpers/propMapper.js.map +1 -1
- package/dist/esm/helpers/propMapper.mjs +239 -0
- package/dist/esm/helpers/propMapper.native.js.map +1 -1
- package/dist/esm/helpers/proxyThemeToParents.mjs +36 -0
- package/dist/esm/helpers/proxyThemeVariables.mjs +12 -0
- package/dist/esm/helpers/pseudoDescriptors.mjs +34 -0
- package/dist/esm/helpers/registerCSSVariable.js.map +1 -1
- package/dist/esm/helpers/registerCSSVariable.mjs +7 -0
- package/dist/esm/helpers/registerCSSVariable.native.js.map +1 -1
- package/dist/esm/helpers/themeable.mjs +33 -0
- package/dist/esm/helpers/themes.mjs +14 -0
- package/dist/esm/helpers/timer.mjs +8 -0
- package/dist/esm/hooks/getThemeProxied.js +52 -0
- package/dist/esm/hooks/getThemeProxied.js.map +6 -0
- package/dist/esm/hooks/getThemeProxied.mjs +41 -0
- package/dist/esm/hooks/getThemeProxied.native.js +100 -0
- package/dist/esm/hooks/getThemeProxied.native.js.map +6 -0
- package/dist/esm/hooks/useConfiguration.mjs +20 -0
- package/dist/esm/hooks/useDisableSSR.mjs +5 -0
- package/dist/esm/hooks/useIsTouchDevice.mjs +4 -0
- package/dist/esm/hooks/useMedia.mjs +146 -0
- package/dist/esm/hooks/useProps.mjs +40 -0
- package/dist/esm/hooks/useTheme.js +1 -4
- package/dist/esm/hooks/useTheme.js.map +1 -1
- package/dist/esm/hooks/useTheme.mjs +222 -0
- package/dist/esm/hooks/useTheme.native.js.map +1 -1
- package/dist/esm/hooks/useThemeName.mjs +15 -0
- package/dist/esm/index.mjs +61 -0
- package/dist/esm/inject-styles.mjs +13 -0
- package/dist/esm/insertFont.js.map +1 -1
- package/dist/esm/insertFont.mjs +44 -0
- package/dist/esm/insertFont.native.js.map +1 -1
- package/dist/esm/interfaces/CSSColorNames.mjs +0 -0
- package/dist/esm/interfaces/GetRef.mjs +0 -0
- package/dist/esm/interfaces/KeyTypes.mjs +0 -0
- package/dist/esm/interfaces/RNExclusiveTypes.mjs +0 -0
- package/dist/esm/interfaces/Role.mjs +0 -0
- package/dist/esm/interfaces/TamaguiComponentEvents.mjs +0 -0
- package/dist/esm/interfaces/TamaguiComponentPropsBaseBase.mjs +0 -0
- package/dist/esm/interfaces/TamaguiComponentState.mjs +0 -0
- package/dist/esm/interfaces/WebOnlyPressEvents.mjs +0 -0
- package/dist/esm/internalWithTheme.mjs +14 -0
- package/dist/esm/setupHooks.js.map +1 -1
- package/dist/esm/setupHooks.mjs +5 -0
- package/dist/esm/setupHooks.native.js.map +1 -1
- package/dist/esm/setupReactNative.mjs +24 -0
- package/dist/esm/styled.mjs +56 -0
- package/dist/esm/type-utils.mjs +0 -0
- package/dist/esm/types.mjs +2 -0
- package/dist/esm/views/Configuration.mjs +12 -0
- package/dist/esm/views/FontLanguage.mjs +13 -0
- package/dist/esm/views/FontLanguage.native.js.map +1 -1
- package/dist/esm/views/FontLanguage.types.mjs +0 -0
- package/dist/esm/views/Slot.js.map +1 -1
- package/dist/esm/views/Slot.mjs +53 -0
- package/dist/esm/views/Slot.native.js.map +1 -1
- package/dist/esm/views/Stack.mjs +10 -0
- package/dist/esm/views/TamaguiProvider.js +5 -5
- package/dist/esm/views/TamaguiProvider.js.map +1 -1
- package/dist/esm/views/TamaguiProvider.mjs +32 -0
- package/dist/esm/views/TamaguiProvider.native.js +5 -5
- package/dist/esm/views/TamaguiProvider.native.js.map +1 -1
- package/dist/esm/views/Text.mjs +64 -0
- package/dist/esm/views/Theme.js.map +1 -1
- package/dist/esm/views/Theme.mjs +104 -0
- package/dist/esm/views/Theme.native.js.map +1 -1
- package/dist/esm/views/ThemeDebug.mjs +57 -0
- package/dist/esm/views/ThemeProvider.mjs +20 -0
- package/dist/esm/views/View.mjs +9 -0
- package/package.json +11 -11
- package/src/config.ts +1 -1
- package/src/contexts/ComponentContext.tsx +1 -1
- package/src/createComponent.tsx +7 -5
- package/src/createFont.ts +1 -1
- package/src/createShorthands.ts +1 -1
- package/src/createTamagui.ts +4 -3
- package/src/createTokens.ts +2 -2
- package/src/createVariables.ts +2 -1
- package/src/defaultComponentState.tsx +1 -1
- package/src/helpers/ThemeManager.tsx +1 -1
- package/src/helpers/createShallowSetState.tsx +2 -2
- package/src/helpers/expandStyle.ts +1 -1
- package/src/helpers/getExpandedShorthands.ts +1 -1
- package/src/helpers/getSplitStyles.tsx +33 -26
- package/src/helpers/getStylesAtomic.ts +4 -6
- package/src/helpers/getThemeCSSRules.ts +2 -1
- package/src/helpers/getVariantExtras.tsx +2 -2
- package/src/helpers/insertStyleRule.tsx +8 -3
- package/src/helpers/isTamaguiComponent.tsx +1 -1
- package/src/helpers/isTamaguiElement.tsx +1 -1
- package/src/helpers/matchMedia.native.ts +1 -1
- package/src/helpers/matchMedia.ts +1 -1
- package/src/helpers/propMapper.ts +2 -1
- package/src/helpers/proxyThemeToParents.ts +1 -1
- package/src/helpers/registerCSSVariable.ts +3 -2
- package/src/helpers/themeable.tsx +1 -1
- package/src/hooks/useDisableSSR.tsx +1 -1
- package/src/hooks/useProps.tsx +1 -1
- package/src/hooks/useTheme.tsx +4 -6
- package/src/hooks/useThemeName.tsx +1 -1
- package/src/insertFont.ts +4 -3
- package/src/interfaces/GetRef.tsx +2 -2
- package/src/interfaces/TamaguiComponentPropsBaseBase.tsx +2 -2
- package/src/interfaces/TamaguiComponentState.tsx +1 -1
- package/src/interfaces/WebOnlyPressEvents.tsx +1 -1
- package/src/setupHooks.ts +4 -8
- package/src/setupReactNative.ts +1 -1
- package/src/styled.tsx +1 -1
- package/src/types.tsx +9 -9
- package/src/views/FontLanguage.native.tsx +0 -1
- package/src/views/FontLanguage.types.ts +2 -2
- package/src/views/Slot.tsx +2 -1
- package/src/views/TamaguiProvider.tsx +8 -5
- package/src/views/Text.tsx +1 -1
- package/src/views/Theme.tsx +2 -1
- package/src/views/ThemeDebug.native.tsx +2 -2
- package/src/views/ThemeDebug.tsx +2 -2
- package/types/config.d.ts +1 -1
- package/types/config.d.ts.map +1 -1
- package/types/contexts/ComponentContext.d.ts +1 -1
- package/types/contexts/ComponentContext.d.ts.map +1 -1
- package/types/createComponent.d.ts +1 -1
- package/types/createComponent.d.ts.map +1 -1
- package/types/createFont.d.ts +1 -1
- package/types/createFont.d.ts.map +1 -1
- package/types/createShorthands.d.ts +1 -1
- package/types/createShorthands.d.ts.map +1 -1
- package/types/createTamagui.d.ts +1 -1
- package/types/createTamagui.d.ts.map +1 -1
- package/types/createTokens.d.ts +2 -2
- package/types/createTokens.d.ts.map +1 -1
- package/types/createVariables.d.ts +1 -1
- package/types/createVariables.d.ts.map +1 -1
- package/types/defaultComponentState.d.ts +1 -1
- package/types/defaultComponentState.d.ts.map +1 -1
- package/types/helpers/ThemeManager.d.ts +1 -1
- package/types/helpers/ThemeManager.d.ts.map +1 -1
- package/types/helpers/createShallowSetState.d.ts +2 -2
- package/types/helpers/createShallowSetState.d.ts.map +1 -1
- package/types/helpers/expandStyle.d.ts +1 -1
- package/types/helpers/expandStyle.d.ts.map +1 -1
- package/types/helpers/getExpandedShorthands.d.ts +1 -1
- package/types/helpers/getExpandedShorthands.d.ts.map +1 -1
- package/types/helpers/getSplitStyles.d.ts.map +1 -1
- package/types/helpers/getStylesAtomic.d.ts +2 -2
- package/types/helpers/getStylesAtomic.d.ts.map +1 -1
- package/types/helpers/getThemeCSSRules.d.ts.map +1 -1
- package/types/helpers/getVariantExtras.d.ts +2 -2
- package/types/helpers/getVariantExtras.d.ts.map +1 -1
- package/types/helpers/insertStyleRule.d.ts.map +1 -1
- package/types/helpers/isTamaguiComponent.d.ts +1 -1
- package/types/helpers/isTamaguiComponent.d.ts.map +1 -1
- package/types/helpers/isTamaguiElement.d.ts +1 -1
- package/types/helpers/isTamaguiElement.d.ts.map +1 -1
- package/types/helpers/matchMedia.d.ts +1 -1
- package/types/helpers/matchMedia.d.ts.map +1 -1
- package/types/helpers/matchMedia.native.d.ts +1 -1
- package/types/helpers/matchMedia.native.d.ts.map +1 -1
- package/types/helpers/propMapper.d.ts.map +1 -1
- package/types/helpers/proxyThemeToParents.d.ts +1 -1
- package/types/helpers/proxyThemeToParents.d.ts.map +1 -1
- package/types/helpers/registerCSSVariable.d.ts +2 -2
- package/types/helpers/registerCSSVariable.d.ts.map +1 -1
- package/types/helpers/themeable.d.ts +1 -1
- package/types/helpers/themeable.d.ts.map +1 -1
- package/types/hooks/getThemeProxied.d.ts.map +1 -0
- package/types/hooks/useDisableSSR.d.ts +1 -1
- package/types/hooks/useDisableSSR.d.ts.map +1 -1
- package/types/hooks/useProps.d.ts +1 -1
- package/types/hooks/useProps.d.ts.map +1 -1
- package/types/hooks/useTheme.d.ts +3 -2
- package/types/hooks/useTheme.d.ts.map +1 -1
- package/types/hooks/useThemeName.d.ts +1 -1
- package/types/hooks/useThemeName.d.ts.map +1 -1
- package/types/insertFont.d.ts +2 -2
- package/types/insertFont.d.ts.map +1 -1
- package/types/interfaces/GetRef.d.ts +2 -2
- package/types/interfaces/GetRef.d.ts.map +1 -1
- package/types/interfaces/TamaguiComponentPropsBaseBase.d.ts +2 -2
- package/types/interfaces/TamaguiComponentPropsBaseBase.d.ts.map +1 -1
- package/types/interfaces/TamaguiComponentState.d.ts +1 -1
- package/types/interfaces/TamaguiComponentState.d.ts.map +1 -1
- package/types/interfaces/WebOnlyPressEvents.d.ts +1 -1
- package/types/interfaces/WebOnlyPressEvents.d.ts.map +1 -1
- package/types/setupHooks.d.ts +3 -3
- package/types/setupHooks.d.ts.map +1 -1
- package/types/setupReactNative.d.ts +1 -1
- package/types/setupReactNative.d.ts.map +1 -1
- package/types/styled.d.ts +1 -1
- package/types/styled.d.ts.map +1 -1
- package/types/types.d.ts +9 -9
- package/types/types.d.ts.map +1 -1
- package/types/views/FontLanguage.native.d.ts.map +1 -1
- package/types/views/FontLanguage.types.d.ts +2 -2
- package/types/views/FontLanguage.types.d.ts.map +1 -1
- package/types/views/Slot.d.ts +1 -1
- package/types/views/Slot.d.ts.map +1 -1
- package/types/views/TamaguiProvider.d.ts.map +1 -1
- package/types/views/Text.d.ts +1 -1
- package/types/views/Text.d.ts.map +1 -1
- package/types/views/Theme.d.ts +1 -1
- package/types/views/Theme.d.ts.map +1 -1
- package/types/views/ThemeDebug.d.ts +2 -2
- package/types/views/ThemeDebug.d.ts.map +1 -1
- package/types/views/ThemeDebug.native.d.ts +2 -2
- package/types/views/ThemeDebug.native.d.ts.map +1 -1
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/hooks/getThemeProxied.tsx"],
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAAsB,+BACtB,gBAA0B,sBAC1B,wBAA4B;AAIrB,SAAS,gBACd,EAAE,OAAO,MAAM,OAAO,GACtB,QAAQ,IACR,cACA,MACA,OACgB;AAChB,MAAI,CAAC;AAAO,WAAO,CAAC;AAEpB,QAAM,aAAS,yBAAU;AAEzB,WAAS,MAAM,KAAa;AAC1B,IAAI,QAAQ,CAAC,KAAK,SAAS,GAAG,MAC5B,KAAK,KAAK,GAAG,GACT,QAAQ,IAAI,aAAa,iBAAiB,SAC5C,QAAQ,KAAK,2CAAoC,GAAG,EAAE;AAAA,EAG5D;AAEA,SAAO,IAAI,MAAM,OAAO;AAAA,IACtB,IAAI,GAAG,KAAK;AACV,UAAI,QAAQ,IAAI,OAAO,GAAG;AACxB,eAAO;AAET,UAAI,OAAO,OAAQ;AACjB,eAAI,IAAI,CAAC,MAAM,QAAK,MAAM,IAAI,MAAM,CAAC,IAC9B,6CAAc,QAAQ,IAAI;AAAA,IAErC;AAAA,IACA,IAAI,GAAG,KAAK;AACV;AAAA;AAAA;AAAA,QAGE,QAAQ,eACR,OAAO,OAAQ;AAAA,QACf;AAEA,cAAM,YAAY,IAAI,CAAC,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,KAC5C,MAAM,MAAM,SAAS;AAE3B,YAAI,OAAO,OAAO,OAAQ;AAGxB,iBAAO,IAAI,MAAM,KAAY;AAAA;AAAA;AAAA,YAG3B,IAAIA,IAAG,QAAQ;AACb,kBAAI,WAAW;AAEb,sBAAM,SAAS;AAAA,uBACN,WAAW;AACpB,uBAAO,CAAC,aAAqB;AAC3B,wBAAM,aAAS,mCAAY,GAAG;AAK5B,sBACE,aAAa,SACb,0BACA,CAAC,SACD,OAAO,SAAS,oBAChB,CAAC,qBAAqB,YAAY,KAE9B,QAAQ;AACV,0BAAM,oBAAoB,KAAK;AAAA,sBAC7B,WAAW,SAAS,SAAS;AAAA,sBAC7B,WAAW,SAAS,UAAU;AAAA,oBAChC,GACM,gBAAgB,OAAO,OAAO,iBAAiB,GAC/C,kBAAc,mCAAY,+CAAgB,UAAU;AAC1D,wBAAI;AAOF,6BANmB;AAAA,wBACjB,SAAS;AAAA,0BACP,MAAM,WAAW,SAAS,SAAS;AAAA,0BACnC,OAAO,WAAW,UAAU,SAAS;AAAA,wBACvC;AAAA,sBACF;AAAA,kBAGJ;AAIF,+BAAM,SAAS,GAGV;AAAA,gBACT;AAGF,qBAAO,QAAQ,IAAI,KAAY,MAAM;AAAA,YACvC;AAAA,UACF,CAAC;AAGH,YACE,QAAQ,IAAI,aAAa,iBACzB,QAAQ,IAAI,8CAA8C;AAE1D,gBAAM,IAAI;AAAA,YACR,2BAA2B,GAAG,oBAAoB,IAAI;AAAA,mBAAwB,OAAO;AAAA,cACnF;AAAA,YACF,EAAE,KAAK,IAAI,CAAC;AAAA,UACd;AAAA,MAEJ;AAEA,aAAO,QAAQ,IAAI,GAAG,GAAG;AAAA,IAC3B;AAAA,EACF,CAAC;AACH;AAGA,SAAS,qBAAqB,SAAwB;AACP;AAC3C,QAAI,MAAuC;AAC3C,WAAO,OAAK;AACV,UAAI,CAAC,IAAI;AAAe,eAAO;AAC/B,UAAI,IAAI,cAAc,MAAM,WAAW,IAAI,MAAM;AAAQ,eAAO;AAChE,YAAM,IAAI;AAAA,IACZ;AAAA,EACF;AACA,SAAO;AACT;",
|
|
5
|
+
"names": ["_"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { useContext } from "react";
|
|
2
|
+
import { getConfig } from "../config.mjs";
|
|
3
|
+
import { ComponentContext } from "../contexts/ComponentContext.mjs";
|
|
4
|
+
const useConfiguration = () => {
|
|
5
|
+
const {
|
|
6
|
+
groups,
|
|
7
|
+
animationDriver,
|
|
8
|
+
...restComponentConfig
|
|
9
|
+
} = useContext(ComponentContext),
|
|
10
|
+
{
|
|
11
|
+
animations,
|
|
12
|
+
...restConfig
|
|
13
|
+
} = getConfig();
|
|
14
|
+
return {
|
|
15
|
+
...restConfig,
|
|
16
|
+
...restComponentConfig,
|
|
17
|
+
animationDriver: animationDriver ?? getConfig().animations
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
export { useConfiguration };
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { isServer, isWeb } from "@tamagui/constants";
|
|
2
|
+
import { useRef, useSyncExternalStore } from "react";
|
|
3
|
+
import { getConfig } from "../config.mjs";
|
|
4
|
+
import { matchMedia } from "../helpers/matchMedia.mjs";
|
|
5
|
+
import { pseudoDescriptors } from "../helpers/pseudoDescriptors.mjs";
|
|
6
|
+
import { getDisableSSR } from "./useDisableSSR.mjs";
|
|
7
|
+
let mediaState =
|
|
8
|
+
// development only safeguard
|
|
9
|
+
process.env.NODE_ENV === "development" ? new Proxy({}, {
|
|
10
|
+
get(target, key) {
|
|
11
|
+
if (typeof key == "string" && key[0] === "$" &&
|
|
12
|
+
// dont error on $$typeof
|
|
13
|
+
key[1] !== "$") throw new Error(`Access mediaState should not use "$": ${key}`);
|
|
14
|
+
return Reflect.get(target, key);
|
|
15
|
+
}
|
|
16
|
+
}) : {};
|
|
17
|
+
const mediaQueryConfig = {},
|
|
18
|
+
getMedia = () => mediaState,
|
|
19
|
+
mediaKeys = /* @__PURE__ */new Set(),
|
|
20
|
+
isMediaKey = key => {
|
|
21
|
+
if (mediaKeys.has(key)) return !0;
|
|
22
|
+
if (key[0] === "$") {
|
|
23
|
+
if (key.startsWith("$platform-")) return "platform";
|
|
24
|
+
if (key.startsWith("$theme-")) return "theme";
|
|
25
|
+
if (key.startsWith("$group-")) return "group";
|
|
26
|
+
}
|
|
27
|
+
return !1;
|
|
28
|
+
};
|
|
29
|
+
let initState;
|
|
30
|
+
const defaultMediaImportance = Object.keys(pseudoDescriptors).length;
|
|
31
|
+
let mediaKeysOrdered;
|
|
32
|
+
const getMediaKeyImportance = key => {
|
|
33
|
+
if (process.env.NODE_ENV === "development" && key[0] === "$") throw new Error("use short key");
|
|
34
|
+
return getConfig().settings.mediaPropOrder ? defaultMediaImportance : mediaKeysOrdered.indexOf(key) + 100;
|
|
35
|
+
},
|
|
36
|
+
dispose = /* @__PURE__ */new Set();
|
|
37
|
+
let mediaVersion = 0;
|
|
38
|
+
const configureMedia = config => {
|
|
39
|
+
const {
|
|
40
|
+
media,
|
|
41
|
+
mediaQueryDefaultActive
|
|
42
|
+
} = config;
|
|
43
|
+
if (media) {
|
|
44
|
+
mediaVersion++;
|
|
45
|
+
for (const key in media) mediaState[key] = mediaQueryDefaultActive?.[key] || !1, mediaKeys.add(`$${key}`);
|
|
46
|
+
Object.assign(mediaQueryConfig, media), initState = {
|
|
47
|
+
...mediaState
|
|
48
|
+
}, mediaKeysOrdered = Object.keys(media), config.disableSSR ? setupMediaListeners() : updateCurrentState();
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
function unlisten() {
|
|
52
|
+
dispose.forEach(cb => cb()), dispose.clear();
|
|
53
|
+
}
|
|
54
|
+
let setupVersion = -1;
|
|
55
|
+
function setupMediaListeners() {
|
|
56
|
+
if (!(isWeb && isServer) && setupVersion !== mediaVersion) {
|
|
57
|
+
setupVersion = mediaVersion, unlisten();
|
|
58
|
+
for (const key in mediaQueryConfig) {
|
|
59
|
+
let update = function () {
|
|
60
|
+
const next = !!getMatch().matches;
|
|
61
|
+
next !== mediaState[key] && (mediaState = {
|
|
62
|
+
...mediaState,
|
|
63
|
+
[key]: next
|
|
64
|
+
}, updateCurrentState());
|
|
65
|
+
};
|
|
66
|
+
const str = mediaObjectToString(mediaQueryConfig[key], key),
|
|
67
|
+
getMatch = () => matchMedia(str),
|
|
68
|
+
match = getMatch();
|
|
69
|
+
if (!match) throw new Error("\u26A0\uFE0F No match");
|
|
70
|
+
match.addListener(update), dispose.add(() => {
|
|
71
|
+
match.removeListener(update);
|
|
72
|
+
}), update();
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
const listeners = /* @__PURE__ */new Set();
|
|
77
|
+
let flushing = !1,
|
|
78
|
+
flushVersion = -1;
|
|
79
|
+
function updateCurrentState() {
|
|
80
|
+
flushing && flushVersion === mediaVersion || (flushVersion = mediaVersion, flushing = !0, Promise.resolve().then(() => {
|
|
81
|
+
flushing = !1, listeners.forEach(cb => cb(mediaState));
|
|
82
|
+
}));
|
|
83
|
+
}
|
|
84
|
+
const shouldUpdate = /* @__PURE__ */new WeakMap();
|
|
85
|
+
function setMediaShouldUpdate(ref, props) {
|
|
86
|
+
return shouldUpdate.set(ref, props);
|
|
87
|
+
}
|
|
88
|
+
function subscribe(subscriber) {
|
|
89
|
+
return listeners.add(subscriber), () => listeners.delete(subscriber);
|
|
90
|
+
}
|
|
91
|
+
function useMedia(uid, componentContext) {
|
|
92
|
+
const internal = useRef(),
|
|
93
|
+
initialState = (getDisableSSR(componentContext) || !isWeb ? mediaState : initState) || {},
|
|
94
|
+
state = useSyncExternalStore(subscribe, () => {
|
|
95
|
+
if (!internal.current) return initialState;
|
|
96
|
+
const {
|
|
97
|
+
touched,
|
|
98
|
+
prev
|
|
99
|
+
} = internal.current,
|
|
100
|
+
componentState = uid ? shouldUpdate.get(uid) : void 0;
|
|
101
|
+
if (componentState && componentState.enabled === !1) return prev;
|
|
102
|
+
const testKeys = componentState?.keys ?? ((!componentState || componentState.enabled) && touched ? [...touched] : null);
|
|
103
|
+
return !testKeys || testKeys?.every(key => mediaState[key] === prev[key]) ? prev : (internal.current.prev = mediaState, mediaState);
|
|
104
|
+
}, () => initialState);
|
|
105
|
+
return new Proxy(state, {
|
|
106
|
+
get(_, key) {
|
|
107
|
+
return typeof key == "string" && (internal.current ||= {
|
|
108
|
+
prev: initialState
|
|
109
|
+
}, internal.current.touched ||= /* @__PURE__ */new Set(), internal.current.touched.add(key)), Reflect.get(state, key);
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
const getMediaImportanceIfMoreImportant = (mediaKey, key, importancesUsed, isSizeMedia) => {
|
|
114
|
+
const conf = getConfig(),
|
|
115
|
+
importance = isSizeMedia && !conf.settings.mediaPropOrder ? getMediaKeyImportance(mediaKey) : defaultMediaImportance;
|
|
116
|
+
return !importancesUsed[key] || importance > importancesUsed[key] ? importance : null;
|
|
117
|
+
};
|
|
118
|
+
function mergeMediaByImportance(onto, mediaKey, key, value, importancesUsed, isSizeMedia, importanceBump) {
|
|
119
|
+
let importance = getMediaImportanceIfMoreImportant(mediaKey, key, importancesUsed, isSizeMedia);
|
|
120
|
+
return importanceBump && (importance = (importance || 0) + importanceBump), importance === null ? !1 : (importancesUsed[key] = importance, onto[key] = value, !0);
|
|
121
|
+
}
|
|
122
|
+
function camelToHyphen(str) {
|
|
123
|
+
return str.replace(/[A-Z]/g, m => `-${m.toLowerCase()}`).toLowerCase();
|
|
124
|
+
}
|
|
125
|
+
const cache = /* @__PURE__ */new WeakMap(),
|
|
126
|
+
cachedMediaKeyToQuery = {};
|
|
127
|
+
function mediaObjectToString(query, key) {
|
|
128
|
+
if (typeof query == "string") return query;
|
|
129
|
+
if (cache.has(query)) return cache.get(query);
|
|
130
|
+
const res = Object.entries(query).map(([feature, value]) => (feature = camelToHyphen(feature), typeof value == "string" ? `(${feature}: ${value})` : (typeof value == "number" && /[height|width]$/.test(feature) && (value = `${value}px`), `(${feature}: ${value})`))).join(" and ");
|
|
131
|
+
return key && (cachedMediaKeyToQuery[key] = res), cache.set(query, res), res;
|
|
132
|
+
}
|
|
133
|
+
function mediaKeyToQuery(key) {
|
|
134
|
+
return cachedMediaKeyToQuery[key] || mediaObjectToString(mediaQueryConfig[key], key);
|
|
135
|
+
}
|
|
136
|
+
function mediaKeyMatch(key, dimensions) {
|
|
137
|
+
const mediaQueries = mediaQueryConfig[key];
|
|
138
|
+
return Object.keys(mediaQueries).every(query => {
|
|
139
|
+
const expectedVal = +mediaQueries[query],
|
|
140
|
+
isMax = query.startsWith("max"),
|
|
141
|
+
isWidth = query.endsWith("Width"),
|
|
142
|
+
givenVal = dimensions[isWidth ? "width" : "height"];
|
|
143
|
+
return isMax ? givenVal < expectedVal : givenVal > expectedVal;
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
export { configureMedia, getMedia, getMediaImportanceIfMoreImportant, getMediaKeyImportance, isMediaKey, mediaKeyMatch, mediaKeyToQuery, mediaKeys, mediaObjectToString, mediaQueryConfig, mediaState, mergeMediaByImportance, setMediaShouldUpdate, setupMediaListeners, useMedia };
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { useContext } from "react";
|
|
2
|
+
import { ComponentContext } from "../contexts/ComponentContext.mjs";
|
|
3
|
+
import { defaultComponentStateMounted } from "../defaultComponentState.mjs";
|
|
4
|
+
import { useSplitStyles } from "../helpers/getSplitStyles.mjs";
|
|
5
|
+
import { Stack } from "../views/Stack.mjs";
|
|
6
|
+
import { useMedia } from "./useMedia.mjs";
|
|
7
|
+
import { useThemeWithState } from "./useTheme.mjs";
|
|
8
|
+
function useProps(props, opts) {
|
|
9
|
+
const [propsOut, styleOut] = usePropsAndStyle(props, {
|
|
10
|
+
...opts,
|
|
11
|
+
noExpand: !0,
|
|
12
|
+
noNormalize: !0,
|
|
13
|
+
resolveValues: "none"
|
|
14
|
+
});
|
|
15
|
+
return {
|
|
16
|
+
...propsOut,
|
|
17
|
+
...styleOut
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
function useStyle(props, opts) {
|
|
21
|
+
return usePropsAndStyle(props, opts)[1];
|
|
22
|
+
}
|
|
23
|
+
function usePropsAndStyle(props, opts) {
|
|
24
|
+
const staticConfig = opts?.forComponent?.staticConfig ?? Stack.staticConfig,
|
|
25
|
+
[themeState, theme] = useThemeWithState({
|
|
26
|
+
componentName: staticConfig.componentName
|
|
27
|
+
}),
|
|
28
|
+
componentContext = useContext(ComponentContext),
|
|
29
|
+
media = useMedia(),
|
|
30
|
+
splitStyles = useSplitStyles(props, staticConfig, theme, themeState.state?.name || "", defaultComponentStateMounted, {
|
|
31
|
+
isAnimated: !1,
|
|
32
|
+
mediaState: media,
|
|
33
|
+
noSkip: !0,
|
|
34
|
+
noClassNames: !0,
|
|
35
|
+
resolveValues: "auto",
|
|
36
|
+
...opts
|
|
37
|
+
}, null, componentContext);
|
|
38
|
+
return [splitStyles.viewProps, splitStyles.style, theme, media];
|
|
39
|
+
}
|
|
40
|
+
export { useProps, usePropsAndStyle, useStyle };
|
|
@@ -3,10 +3,7 @@ import { useContext, useEffect, useMemo, useRef, useState } from "react";
|
|
|
3
3
|
import { getConfig } from "../config";
|
|
4
4
|
import { getVariable } from "../createVariable";
|
|
5
5
|
import { isEqualShallow } from "../helpers/createShallowSetState";
|
|
6
|
-
import {
|
|
7
|
-
ThemeManager,
|
|
8
|
-
getHasThemeUpdatingProps
|
|
9
|
-
} from "../helpers/ThemeManager";
|
|
6
|
+
import { ThemeManager, getHasThemeUpdatingProps } from "../helpers/ThemeManager";
|
|
10
7
|
import { ThemeManagerIDContext } from "../helpers/ThemeManagerContext";
|
|
11
8
|
const emptyProps = { name: null };
|
|
12
9
|
let cached;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/hooks/useTheme.tsx"],
|
|
4
|
-
"mappings": "AAAA,SAAS,UAAiB,gBAAgB;AAC1C,SAAS,YAAY,WAAW,SAAS,QAAQ,gBAAgB;AAEjE,SAAS,iBAAiB;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["_", "themeManager", "state", "isNewTheme", "mounted", "inversed"]
|
|
6
6
|
}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
import { isClient, isServer } from "@tamagui/constants";
|
|
2
|
+
import { useContext, useEffect, useMemo, useRef, useState } from "react";
|
|
3
|
+
import { getConfig } from "../config.mjs";
|
|
4
|
+
import { getVariable } from "../createVariable.mjs";
|
|
5
|
+
import { isEqualShallow } from "../helpers/createShallowSetState.mjs";
|
|
6
|
+
import { ThemeManager, getHasThemeUpdatingProps } from "../helpers/ThemeManager.mjs";
|
|
7
|
+
import { ThemeManagerIDContext } from "../helpers/ThemeManagerContext.mjs";
|
|
8
|
+
const emptyProps = {
|
|
9
|
+
name: null
|
|
10
|
+
};
|
|
11
|
+
let cached;
|
|
12
|
+
function getDefaultThemeProxied() {
|
|
13
|
+
if (cached) return cached;
|
|
14
|
+
const config = getConfig(),
|
|
15
|
+
name = config.themes.light ? "light" : Object.keys(config.themes)[0],
|
|
16
|
+
defaultTheme = config.themes[name];
|
|
17
|
+
return cached = getThemeProxied({
|
|
18
|
+
theme: defaultTheme,
|
|
19
|
+
name
|
|
20
|
+
}), cached;
|
|
21
|
+
}
|
|
22
|
+
const useTheme = (props = emptyProps) => {
|
|
23
|
+
const [_, theme] = useThemeWithState(props);
|
|
24
|
+
return theme || getDefaultThemeProxied();
|
|
25
|
+
},
|
|
26
|
+
useThemeWithState = props => {
|
|
27
|
+
const keys = useRef([]),
|
|
28
|
+
changedThemeState = useChangeThemeEffect(props, !1, keys.current, isServer ? void 0 : () => {
|
|
29
|
+
const next = props.shouldUpdate?.() ?? (keys.current.length > 0 ? !0 : void 0);
|
|
30
|
+
return process.env.NODE_ENV === "development" && typeof props.debug == "string" && props.debug !== "profile" && console.info(" \u{1F3A8} useTheme() shouldUpdate?", next, {
|
|
31
|
+
shouldUpdateProp: props.shouldUpdate?.(),
|
|
32
|
+
keys: [...keys.current]
|
|
33
|
+
}), next;
|
|
34
|
+
}),
|
|
35
|
+
{
|
|
36
|
+
themeManager,
|
|
37
|
+
state
|
|
38
|
+
} = changedThemeState;
|
|
39
|
+
process.env.NODE_ENV === "development" && (state?.theme || process.env.TAMAGUI_DISABLE_NO_THEME_WARNING !== "1" && console.warn(`[tamagui] No theme found, this could be due to an invalid theme name (given theme props ${JSON.stringify(props)}).
|
|
40
|
+
|
|
41
|
+
If this is intended and you are using Tamagui without any themes, you can disable this warning by setting the environment variable TAMAGUI_DISABLE_NO_THEME_WARNING=1`));
|
|
42
|
+
const themeProxied = useMemo(() => !themeManager || !state?.theme ? {} : getThemeProxied(state, props.deopt, themeManager, keys.current, props.debug), [state?.theme, themeManager, props.deopt, props.debug]);
|
|
43
|
+
return process.env.NODE_ENV === "development" && props.debug === "verbose" && (console.groupCollapsed(" \u{1F539} useTheme =>", state?.name), console.info("returning state", changedThemeState, "from props", props), console.groupEnd()), [changedThemeState, themeProxied];
|
|
44
|
+
};
|
|
45
|
+
function getThemeProxied({
|
|
46
|
+
theme,
|
|
47
|
+
name,
|
|
48
|
+
scheme
|
|
49
|
+
}, deopt = !1, themeManager, keys, debug) {
|
|
50
|
+
if (!theme) return {};
|
|
51
|
+
const config = getConfig();
|
|
52
|
+
function track(key) {
|
|
53
|
+
keys && !keys.includes(key) && (keys.push(key), process.env.NODE_ENV === "development" && debug && console.info(` \u{1F3A8} useTheme() tracking new key: ${key}`));
|
|
54
|
+
}
|
|
55
|
+
return new Proxy(theme, {
|
|
56
|
+
has(_, key) {
|
|
57
|
+
if (Reflect.has(theme, key)) return !0;
|
|
58
|
+
if (typeof key == "string") return key[0] === "$" && (key = key.slice(1)), themeManager?.allKeys.has(key);
|
|
59
|
+
},
|
|
60
|
+
get(_, key) {
|
|
61
|
+
if (
|
|
62
|
+
// dont ask me, idk why but on hermes you can see that useTheme()[undefined] passes in STRING undefined to proxy
|
|
63
|
+
// if someone is crazy enough to use "undefined" as a theme key then this not working is on them
|
|
64
|
+
key !== "undefined" && typeof key == "string") {
|
|
65
|
+
const keyString = key[0] === "$" ? key.slice(1) : key,
|
|
66
|
+
val = theme[keyString];
|
|
67
|
+
if (val && typeof val == "object") return new Proxy(val, {
|
|
68
|
+
// when they touch the actual value we only track it
|
|
69
|
+
// if its a variable (web), its ignored!
|
|
70
|
+
get(_2, subkey) {
|
|
71
|
+
if (subkey === "val") track(keyString);else if (subkey === "get") return platform => getVariable(val);
|
|
72
|
+
return Reflect.get(val, subkey);
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
if (process.env.NODE_ENV === "development" && process.env.TAMAGUI_FEAT_THROW_ON_MISSING_THEME_VALUE === "1") throw new Error(`[tamagui] No theme key "${key}" found in theme ${name}.
|
|
76
|
+
Keys in theme: ${Object.keys(theme).join(", ")}`);
|
|
77
|
+
}
|
|
78
|
+
return Reflect.get(_, key);
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
const activeThemeManagers = /* @__PURE__ */new Set(),
|
|
83
|
+
_uidToManager = /* @__PURE__ */new WeakMap(),
|
|
84
|
+
_idToUID = {},
|
|
85
|
+
getId = id => _idToUID[id],
|
|
86
|
+
getThemeManager = id => _uidToManager.get(getId(id)),
|
|
87
|
+
registerThemeManager = t => {
|
|
88
|
+
if (!_idToUID[t.id]) {
|
|
89
|
+
const id = _idToUID[t.id] = {};
|
|
90
|
+
_uidToManager.set(id, t);
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
useChangeThemeEffect = (props, isRoot = !1, keys, shouldUpdate) => {
|
|
94
|
+
const {
|
|
95
|
+
disable
|
|
96
|
+
} = props,
|
|
97
|
+
parentManagerId = useContext(ThemeManagerIDContext),
|
|
98
|
+
parentManager = getThemeManager(parentManagerId);
|
|
99
|
+
if (!isRoot && !parentManager || disable) return {
|
|
100
|
+
isNewTheme: !1,
|
|
101
|
+
state: parentManager?.state,
|
|
102
|
+
themeManager: parentManager
|
|
103
|
+
};
|
|
104
|
+
const [themeState, setThemeState] = useState(createState),
|
|
105
|
+
{
|
|
106
|
+
state,
|
|
107
|
+
mounted,
|
|
108
|
+
isNewTheme,
|
|
109
|
+
themeManager,
|
|
110
|
+
inversed
|
|
111
|
+
} = themeState,
|
|
112
|
+
isInversingOnMount = !!(!themeState.mounted && props.inverse);
|
|
113
|
+
function getShouldUpdateTheme(manager = themeManager, nextState, prevState = state, forceShouldChange = !1) {
|
|
114
|
+
const forceUpdate = shouldUpdate?.();
|
|
115
|
+
if (!manager || !forceShouldChange && forceUpdate === !1) return;
|
|
116
|
+
const next = nextState || manager.getState(props, parentManager);
|
|
117
|
+
if (forceShouldChange) return next;
|
|
118
|
+
if (next && !(forceUpdate !== !0 && !manager.getStateShouldChange(next, prevState))) return next;
|
|
119
|
+
}
|
|
120
|
+
if (isServer || (useEffect(() => {
|
|
121
|
+
if (!themeManager) return;
|
|
122
|
+
if (props.inverse && !mounted) {
|
|
123
|
+
setThemeState(prev => createState({
|
|
124
|
+
...prev,
|
|
125
|
+
mounted: !0
|
|
126
|
+
}));
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
(isNewTheme || getShouldUpdateTheme(themeManager)) && (activeThemeManagers.add(themeManager), setThemeState(createState));
|
|
130
|
+
const selfListenerDispose = themeManager.onChangeTheme((_a, _b, forced) => {
|
|
131
|
+
forced && setThemeState(prev => createState(prev, !0));
|
|
132
|
+
}),
|
|
133
|
+
disposeChangeListener = parentManager?.onChangeTheme((name, manager, forced) => {
|
|
134
|
+
const force = forced || shouldUpdate?.() || props.deopt || void 0,
|
|
135
|
+
shouldTryUpdate = force ?? !!(keys?.length || isNewTheme);
|
|
136
|
+
process.env.NODE_ENV === "development" && props.debug === "verbose" && console.info(" \u{1F538} onChange", themeManager.id, {
|
|
137
|
+
force,
|
|
138
|
+
shouldTryUpdate,
|
|
139
|
+
props,
|
|
140
|
+
name,
|
|
141
|
+
manager,
|
|
142
|
+
keys
|
|
143
|
+
}), shouldTryUpdate && setThemeState(prev => createState(prev, force));
|
|
144
|
+
}, themeManager.id);
|
|
145
|
+
return () => {
|
|
146
|
+
selfListenerDispose(), disposeChangeListener?.(), isNewTheme && activeThemeManagers.delete(themeManager);
|
|
147
|
+
};
|
|
148
|
+
}, [themeManager, parentManager, isNewTheme, props.componentName, props.inverse, props.name, props.reset, mounted]), process.env.NODE_ENV === "development" && props.debug !== "profile" && useEffect(() => (globalThis.TamaguiThemeManagers ??= /* @__PURE__ */new Set(), globalThis.TamaguiThemeManagers.add(themeManager), () => {
|
|
149
|
+
globalThis.TamaguiThemeManagers.delete(themeManager);
|
|
150
|
+
}), [themeManager])), isInversingOnMount) return {
|
|
151
|
+
isNewTheme: !1,
|
|
152
|
+
inversed: !1,
|
|
153
|
+
themeManager: parentManager,
|
|
154
|
+
state: {
|
|
155
|
+
name: "",
|
|
156
|
+
...parentManager?.state,
|
|
157
|
+
className: ""
|
|
158
|
+
}
|
|
159
|
+
};
|
|
160
|
+
return {
|
|
161
|
+
state,
|
|
162
|
+
isNewTheme,
|
|
163
|
+
inversed,
|
|
164
|
+
themeManager
|
|
165
|
+
};
|
|
166
|
+
function createState(prev, force = !1) {
|
|
167
|
+
if (prev && shouldUpdate?.() === !1 && !force) return prev;
|
|
168
|
+
let themeManager2 = parentManager,
|
|
169
|
+
state2;
|
|
170
|
+
if (getHasThemeUpdatingProps(props)) {
|
|
171
|
+
const getNewThemeManager = () => new ThemeManager(props, isRoot ? "root" : parentManager);
|
|
172
|
+
if (prev?.themeManager) {
|
|
173
|
+
themeManager2 = prev.themeManager;
|
|
174
|
+
const forceChange = force || !!keys?.length,
|
|
175
|
+
next = themeManager2.getState(props, parentManager),
|
|
176
|
+
nextState = getShouldUpdateTheme(themeManager2, next, prev.state, forceChange);
|
|
177
|
+
nextState ? (state2 = nextState, prev.isNewTheme ? themeManager2.updateState(nextState) : themeManager2 = getNewThemeManager()) : prev.isNewTheme && parentManager && !next && (themeManager2 = parentManager);
|
|
178
|
+
} else themeManager2 = getNewThemeManager(), state2 = {
|
|
179
|
+
...themeManager2.state
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
const isNewTheme2 = !!(themeManager2 !== parentManager || props.inverse);
|
|
183
|
+
isNewTheme2 && registerThemeManager(themeManager2);
|
|
184
|
+
const mounted2 = props.inverse ? isRoot || prev?.mounted : !0;
|
|
185
|
+
state2 || (isNewTheme2 ? state2 = themeManager2.state : (state2 = parentManager.state, themeManager2 = parentManager));
|
|
186
|
+
const wasInversed = prev?.inversed,
|
|
187
|
+
inversed2 = isNewTheme2 && state2.scheme !== parentManager?.state.scheme ? !0 : wasInversed != null ? !1 : null,
|
|
188
|
+
response = {
|
|
189
|
+
themeManager: themeManager2,
|
|
190
|
+
isNewTheme: isNewTheme2,
|
|
191
|
+
mounted: mounted2,
|
|
192
|
+
inversed: inversed2
|
|
193
|
+
},
|
|
194
|
+
shouldReturnPrev = prev && !force &&
|
|
195
|
+
// isEqualShallow uses the second arg as the keys so this should compare without state first...
|
|
196
|
+
isEqualShallow(prev, response) &&
|
|
197
|
+
// ... and then compare just the state, because we make a new state obj but is likely the same
|
|
198
|
+
isEqualShallow(prev.state, state2);
|
|
199
|
+
if (prev && shouldReturnPrev) return prev;
|
|
200
|
+
if (response.state = state2, process.env.NODE_ENV === "development" && props.debug && isClient) {
|
|
201
|
+
console.groupCollapsed(` \u{1F537} ${themeManager2.id} useChangeThemeEffect createState`);
|
|
202
|
+
const parentState = {
|
|
203
|
+
...parentManager?.state
|
|
204
|
+
},
|
|
205
|
+
parentId = parentManager?.id,
|
|
206
|
+
themeManagerState = {
|
|
207
|
+
...themeManager2.state
|
|
208
|
+
};
|
|
209
|
+
console.info({
|
|
210
|
+
props,
|
|
211
|
+
parentState,
|
|
212
|
+
parentId,
|
|
213
|
+
themeManager: themeManager2,
|
|
214
|
+
prev,
|
|
215
|
+
response,
|
|
216
|
+
themeManagerState
|
|
217
|
+
}), console.groupEnd();
|
|
218
|
+
}
|
|
219
|
+
return response;
|
|
220
|
+
}
|
|
221
|
+
};
|
|
222
|
+
export { activeThemeManagers, getThemeManager, getThemeProxied, useChangeThemeEffect, useTheme, useThemeWithState };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/hooks/useTheme.tsx"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAA0C,+BAC1C,eAAiE,kBAEjE,gBAA0B,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["_", "themeManager", "state", "isNewTheme", "mounted", "inversed"]
|
|
6
6
|
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { useIsomorphicLayoutEffect } from "@tamagui/constants";
|
|
2
|
+
import { useContext, useState } from "react";
|
|
3
|
+
import { ThemeManagerIDContext } from "../helpers/ThemeManagerContext.mjs";
|
|
4
|
+
import { getThemeManager } from "./useTheme.mjs";
|
|
5
|
+
function useThemeName(opts) {
|
|
6
|
+
const manager = getThemeManager(useContext(ThemeManagerIDContext)),
|
|
7
|
+
[name, setName] = useState(manager?.state.name || "");
|
|
8
|
+
return useIsomorphicLayoutEffect(() => {
|
|
9
|
+
if (manager) return setName(manager.state.name), manager.onChangeTheme((next, manager2) => {
|
|
10
|
+
const name2 = opts?.parent && manager2.state.parentName || next;
|
|
11
|
+
name2 && setName(name2);
|
|
12
|
+
});
|
|
13
|
+
}, [manager?.state.name]), name;
|
|
14
|
+
}
|
|
15
|
+
export { useThemeName };
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
export * from "./Tamagui.mjs";
|
|
2
|
+
export * from "./createComponent.mjs";
|
|
3
|
+
export * from "./createShorthands.mjs";
|
|
4
|
+
export * from "./createTheme.mjs";
|
|
5
|
+
export * from "./createTamagui.mjs";
|
|
6
|
+
export * from "./createFont.mjs";
|
|
7
|
+
export * from "./createTokens.mjs";
|
|
8
|
+
export * from "./createVariable.mjs";
|
|
9
|
+
export * from "./createVariables.mjs";
|
|
10
|
+
export * from "./insertFont.mjs";
|
|
11
|
+
export * from "./styled.mjs";
|
|
12
|
+
export * from "./setupReactNative.mjs";
|
|
13
|
+
export * from "./interfaces/GetRef.mjs";
|
|
14
|
+
import { setupDev, getConfig, getThemes, getTokens, updateConfig, getToken, getTokenValue } from "./config.mjs";
|
|
15
|
+
export * from "./constants/constants.mjs";
|
|
16
|
+
export * from "./contexts/ComponentContext.mjs";
|
|
17
|
+
export * from "./helpers/createStyledContext.mjs";
|
|
18
|
+
export * from "./helpers/expandStyles.mjs";
|
|
19
|
+
export * from "./helpers/createMediaStyle.mjs";
|
|
20
|
+
export * from "./helpers/normalizeStyle.mjs";
|
|
21
|
+
export * from "./helpers/propMapper.mjs";
|
|
22
|
+
export * from "./helpers/getExpandedShorthands.mjs";
|
|
23
|
+
export * from "./helpers/getSplitStyles.mjs";
|
|
24
|
+
export * from "./helpers/getStylesAtomic.mjs";
|
|
25
|
+
export * from "./helpers/getThemeCSSRules.mjs";
|
|
26
|
+
export * from "./helpers/getVariantExtras.mjs";
|
|
27
|
+
export * from "./helpers/isTamaguiComponent.mjs";
|
|
28
|
+
export * from "./helpers/isTamaguiElement.mjs";
|
|
29
|
+
export * from "./helpers/matchMedia.mjs";
|
|
30
|
+
export * from "./helpers/mergeProps.mjs";
|
|
31
|
+
export * from "./helpers/normalizeColor.mjs";
|
|
32
|
+
export * from "./helpers/proxyThemeVariables.mjs";
|
|
33
|
+
export * from "./helpers/proxyThemeToParents.mjs";
|
|
34
|
+
export * from "./helpers/pseudoDescriptors.mjs";
|
|
35
|
+
export * from "./helpers/themeable.mjs";
|
|
36
|
+
export * from "./helpers/themes.mjs";
|
|
37
|
+
export * from "./helpers/createShallowSetState.mjs";
|
|
38
|
+
export * from "./internalWithTheme.mjs";
|
|
39
|
+
import { configureMedia, mediaState, useMedia, getMedia, mediaObjectToString, mediaQueryConfig } from "./hooks/useMedia.mjs";
|
|
40
|
+
export * from "./hooks/useTheme.mjs";
|
|
41
|
+
export * from "./hooks/useThemeName.mjs";
|
|
42
|
+
export * from "./hooks/useConfiguration.mjs";
|
|
43
|
+
export * from "./hooks/useIsTouchDevice.mjs";
|
|
44
|
+
export * from "./hooks/useProps.mjs";
|
|
45
|
+
export * from "./hooks/useConfiguration.mjs";
|
|
46
|
+
export * from "./views/Slot.mjs";
|
|
47
|
+
export * from "./views/Stack.mjs";
|
|
48
|
+
export * from "./views/View.mjs";
|
|
49
|
+
export * from "./views/Text.mjs";
|
|
50
|
+
export * from "./views/Theme.mjs";
|
|
51
|
+
export * from "./views/ThemeProvider.mjs";
|
|
52
|
+
export * from "./views/FontLanguage.mjs";
|
|
53
|
+
export * from "./views/TamaguiProvider.mjs";
|
|
54
|
+
export * from "./views/Configuration.mjs";
|
|
55
|
+
export * from "@tamagui/use-did-finish-ssr";
|
|
56
|
+
export * from "@tamagui/use-event";
|
|
57
|
+
export * from "@tamagui/compose-refs";
|
|
58
|
+
export * from "@tamagui/helpers";
|
|
59
|
+
export * from "@tamagui/constants";
|
|
60
|
+
export * from "./setupHooks.mjs";
|
|
61
|
+
export { configureMedia, getConfig, getMedia, getThemes, getToken, getTokenValue, getTokens, mediaObjectToString, mediaQueryConfig, mediaState, setupDev, updateConfig, useMedia };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
const stylesheets = {},
|
|
2
|
+
injectStyles = ({
|
|
3
|
+
filePath,
|
|
4
|
+
css
|
|
5
|
+
}) => {
|
|
6
|
+
let stylesheet = stylesheets[filePath];
|
|
7
|
+
if (!stylesheet) {
|
|
8
|
+
const styleEl = document.createElement("style");
|
|
9
|
+
styleEl.setAttribute("data-file", filePath), styleEl.setAttribute("type", "text/css"), stylesheet = stylesheets[filePath] = styleEl, document.head.appendChild(styleEl);
|
|
10
|
+
}
|
|
11
|
+
stylesheet.innerHTML = css;
|
|
12
|
+
};
|
|
13
|
+
export { injectStyles };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/insertFont.ts"],
|
|
4
|
-
"mappings": "AAAA,SAAS,qBAAqB;AAC9B,SAAS,kBAAkB;
|
|
4
|
+
"mappings": "AAAA,SAAS,qBAAqB;AAC9B,SAAS,kBAAkB;AAG3B,SAAS,uBAAuB;AAChC,SAAS,qBAAqB,qBAAqB;AAM5C,SAAS,WACd,MACA,QACuB;AACvB,QAAM,OAAO,WAAW,MAAM,GACxB,UAAU,gBAAgB,MAAM,IAAI,GACpC,SAAS,UAAU,OAAO;AAChC,MAA4C,OAAO,WAAa,KAAa;AAC3E,UAAM,WAAW,sBAAsB,MAAM,GACvC,QAAQ,SAAS,cAAc,OAAO;AAC5C,UAAM,YAAY,eAAe,IAAI,KAAK,SAAS,KAAK,GAAG,CAAC,KAC5D,MAAM,aAAa,qBAAqB,IAAI,GAC5C,SAAS,KAAK,YAAY,KAAK;AAAA,EACjC;AACA,uBAAc,MAAM,SAAS,MAAM,GAC5B;AACT;AAEO,MAAM,aAAa;AAEnB,SAAS,UAAiC,YAAsC;AACrF,QAAM,SAAc,CAAC;AACrB,aAAW,WAAW,YAAY;AAChC,UAAM,OAAO,WAAW,OAAO;AAC/B,QAAI,YAAY,YAAY,YAAY;AACtC,aAAO,OAAO,IAAI;AAAA,SACb;AACL,aAAO,OAAO,IAAI,CAAC;AACnB,iBAAW,OAAO,MAAM;AACtB,YAAI,MAAM,KAAK,GAAG;AAElB,QAAI,IAAI,MAAM,CAAC,MAAM,QACnB,MAAM,IAAI,MAEZ,OAAO,OAAO,EAAE,IAAI,GAAG,EAAE,IAAI;AAAA,MAC/B;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;AAEO,SAAS,sBAAsB,YAAiB;AACrD,QAAM,WAAqB,CAAC;AAE5B,aAAW,QAAQ;AACjB,QAAI,SAAS;AACb,UAAI,SAAS,UAAU;AACrB,cAAM,MAAM,WAAW,IAAI;AAC3B,4BAAoB,GAAG,GACvB,SAAS,KAAK,cAAc,GAAG,CAAC;AAAA,MAClC;AACE,mBAAW,SAAS,WAAW,IAAI;AAEjC,cAAI,OADS,WAAW,IAAI,EAAE,KAAK,KACf,UAEb;AACL,kBAAM,MAAM,WAAW,IAAI,EAAE,KAAK;AAClC,gCAAoB,GAAG,GACvB,SAAS,KAAK,cAAc,GAAG,CAAC;AAAA,UAClC;AAAA;AAIN,SAAO;AACT;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|