@tamagui/core 1.0.1-beta.135 → 1.0.1-beta.138

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.
Files changed (113) hide show
  1. package/dist/cjs/addTheme.js +74 -0
  2. package/dist/cjs/addTheme.js.map +7 -0
  3. package/dist/cjs/contexts/TextAncestorContext.js +44 -0
  4. package/dist/cjs/contexts/TextAncestorContext.js.map +7 -0
  5. package/dist/cjs/contexts/ThemeContext.js +30 -0
  6. package/dist/cjs/contexts/ThemeContext.js.map +7 -0
  7. package/dist/cjs/createComponent.js +2 -2
  8. package/dist/cjs/createComponent.js.map +2 -2
  9. package/dist/cjs/createTamagui.js +18 -118
  10. package/dist/cjs/createTamagui.js.map +2 -2
  11. package/dist/cjs/createTheme.js +2 -5
  12. package/dist/cjs/createTheme.js.map +2 -2
  13. package/dist/cjs/ensureThemeVariable.js +152 -0
  14. package/dist/cjs/ensureThemeVariable.js.map +7 -0
  15. package/dist/cjs/helpers/ThemeManager.js +209 -0
  16. package/dist/cjs/helpers/ThemeManager.js.map +7 -0
  17. package/dist/cjs/helpers/createTamaguiProvider.js +1 -1
  18. package/dist/cjs/helpers/createTamaguiProvider.js.map +2 -2
  19. package/dist/cjs/helpers/ensureThemeVariable.js +152 -0
  20. package/dist/cjs/helpers/ensureThemeVariable.js.map +7 -0
  21. package/dist/cjs/helpers/getThemeCSSRules.js +98 -0
  22. package/dist/cjs/helpers/getThemeCSSRules.js.map +7 -0
  23. package/dist/cjs/helpers/getThemeCSSRules.native.js +31 -0
  24. package/dist/cjs/helpers/getThemeCSSRules.native.js.map +7 -0
  25. package/dist/cjs/helpers/themes.js +79 -0
  26. package/dist/cjs/helpers/themes.js.map +7 -0
  27. package/dist/cjs/hooks/useTheme.js +20 -11
  28. package/dist/cjs/hooks/useTheme.js.map +2 -2
  29. package/dist/cjs/index.js +3 -1
  30. package/dist/cjs/index.js.map +2 -2
  31. package/dist/cjs/loadTheme.js +64 -0
  32. package/dist/cjs/loadTheme.js.map +7 -0
  33. package/dist/cjs/updateTheme.js +44 -0
  34. package/dist/cjs/updateTheme.js.map +7 -0
  35. package/dist/cjs/vendor/Pressability.js +32 -0
  36. package/dist/cjs/vendor/Pressability.js.map +7 -0
  37. package/dist/cjs/vendor/Pressability.native.js +32 -0
  38. package/dist/cjs/vendor/Pressability.native.js.map +7 -0
  39. package/dist/cjs/views/Theme.js +1 -1
  40. package/dist/cjs/views/Theme.js.map +2 -2
  41. package/dist/cjs/views/ThemeInverse.js +8 -12
  42. package/dist/cjs/views/ThemeInverse.js.map +2 -2
  43. package/dist/cjs/views/ThemeProvider.js +1 -1
  44. package/dist/cjs/views/ThemeProvider.js.map +1 -1
  45. package/dist/cjs/views/ThemeReset.js +1 -1
  46. package/dist/cjs/views/ThemeReset.js.map +1 -1
  47. package/dist/esm/addTheme.js +50 -0
  48. package/dist/esm/addTheme.js.map +7 -0
  49. package/dist/esm/contexts/TextAncestorContext.js +15 -0
  50. package/dist/esm/contexts/TextAncestorContext.js.map +7 -0
  51. package/dist/esm/contexts/ThemeContext.js +6 -0
  52. package/dist/esm/contexts/ThemeContext.js.map +7 -0
  53. package/dist/esm/createComponent.js +2 -2
  54. package/dist/esm/createComponent.js.map +1 -1
  55. package/dist/esm/createTamagui.js +17 -117
  56. package/dist/esm/createTamagui.js.map +2 -2
  57. package/dist/esm/createTheme.js +1 -3
  58. package/dist/esm/createTheme.js.map +2 -2
  59. package/dist/esm/ensureThemeVariable.js +125 -0
  60. package/dist/esm/ensureThemeVariable.js.map +7 -0
  61. package/dist/esm/helpers/ThemeManager.js +183 -0
  62. package/dist/esm/helpers/ThemeManager.js.map +7 -0
  63. package/dist/esm/helpers/createTamaguiProvider.js +1 -1
  64. package/dist/esm/helpers/createTamaguiProvider.js.map +2 -2
  65. package/dist/esm/helpers/ensureThemeVariable.js +125 -0
  66. package/dist/esm/helpers/ensureThemeVariable.js.map +7 -0
  67. package/dist/esm/helpers/getThemeCSSRules.js +74 -0
  68. package/dist/esm/helpers/getThemeCSSRules.js.map +7 -0
  69. package/dist/esm/helpers/getThemeCSSRules.native.js +7 -0
  70. package/dist/esm/helpers/getThemeCSSRules.native.js.map +7 -0
  71. package/dist/esm/helpers/themes.js +54 -0
  72. package/dist/esm/helpers/themes.js.map +7 -0
  73. package/dist/esm/hooks/useTheme.js +23 -11
  74. package/dist/esm/hooks/useTheme.js.map +2 -2
  75. package/dist/esm/index.js +3 -1
  76. package/dist/esm/index.js.map +2 -2
  77. package/dist/esm/loadTheme.js +40 -0
  78. package/dist/esm/loadTheme.js.map +7 -0
  79. package/dist/esm/updateTheme.js +20 -0
  80. package/dist/esm/updateTheme.js.map +7 -0
  81. package/dist/esm/vendor/Pressability.js +7 -0
  82. package/dist/esm/vendor/Pressability.js.map +7 -0
  83. package/dist/esm/vendor/Pressability.native.js +7 -0
  84. package/dist/esm/vendor/Pressability.native.js.map +7 -0
  85. package/dist/esm/views/Theme.js +1 -1
  86. package/dist/esm/views/Theme.js.map +1 -1
  87. package/dist/esm/views/ThemeInverse.js +7 -10
  88. package/dist/esm/views/ThemeInverse.js.map +2 -2
  89. package/dist/esm/views/ThemeProvider.js +1 -1
  90. package/dist/esm/views/ThemeProvider.js.map +1 -1
  91. package/dist/esm/views/ThemeReset.js +1 -1
  92. package/dist/esm/views/ThemeReset.js.map +1 -1
  93. package/package.json +8 -8
  94. package/types/addTheme.d.ts +11 -0
  95. package/types/{views → contexts}/TextAncestorContext.d.ts +0 -0
  96. package/types/{ThemeContext.d.ts → contexts/ThemeContext.d.ts} +1 -1
  97. package/types/createTheme.d.ts +0 -1
  98. package/types/{ThemeManager.d.ts → helpers/ThemeManager.d.ts} +5 -5
  99. package/types/helpers/createTamaguiProvider.d.ts +1 -0
  100. package/types/helpers/getThemeCSSRules.d.ts +8 -0
  101. package/types/helpers/getThemeCSSRules.native.d.ts +2 -0
  102. package/types/helpers/themes.d.ts +4 -0
  103. package/types/hooks/useTheme.d.ts +2 -1
  104. package/types/index.d.ts +3 -1
  105. package/types/updateTheme.d.ts +9 -0
  106. package/types/{Pressability.d.ts → vendor/Pressability.d.ts} +0 -0
  107. package/types/{Pressability.native.d.ts → vendor/Pressability.native.d.ts} +0 -0
  108. package/types/views/FontLanguage.d.ts +1 -0
  109. package/types/views/FontLanguage.native.d.ts +1 -0
  110. package/types/views/Theme.d.ts +1 -1
  111. package/types/views/ThemeInverse.d.ts +0 -5
  112. package/types/views/ThemeProvider.d.ts +1 -0
  113. package/types/defaultComponentState.d.ts +0 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/views/ThemeReset.tsx"],
4
- "sourcesContent": ["import React, { useContext, useLayoutEffect, useState } from 'react'\n\nimport { isWeb } from '../constants/platform'\nimport { ThemeManagerContext } from '../ThemeManager'\nimport { Theme } from './Theme'\n\n// bugfix esbuild strips react jsx: 'preserve'\nReact['createElement']\n\n// resets the theme to the parent theme\nexport const ThemeReset = (props: { children?: any }) => {\n const themeManager = useContext(ThemeManagerContext)\n const [name, setName] = useState<string | null>(null)\n\n // this component doesn't work with SSR, so must run only client side\n // we could at least prevent more flickering by having the ssr head script\n // that changes to dark initially also go through and change all of these\n if (!isWeb || typeof document !== 'undefined') {\n useLayoutEffect(() => {\n if (!themeManager) return\n if (name !== themeManager.parentName) {\n setName(themeManager.parentName)\n }\n }, [themeManager?.parentName])\n\n useLayoutEffect(() => {\n if (!themeManager) return\n return themeManager.onChangeTheme(() => {\n setName(themeManager.parentName)\n })\n }, [])\n }\n\n if (!themeManager || !props.children) {\n return props.children || null\n }\n\n return (\n <Theme className=\"tui-theme-reset\" reset name={name}>\n {props.children}\n </Theme>\n )\n}\n"],
4
+ "sourcesContent": ["import React, { useContext, useLayoutEffect, useState } from 'react'\n\nimport { isWeb } from '../constants/platform'\nimport { ThemeManagerContext } from '../helpers/ThemeManager'\nimport { Theme } from './Theme'\n\n// bugfix esbuild strips react jsx: 'preserve'\nReact['createElement']\n\n// resets the theme to the parent theme\nexport const ThemeReset = (props: { children?: any }) => {\n const themeManager = useContext(ThemeManagerContext)\n const [name, setName] = useState<string | null>(null)\n\n // this component doesn't work with SSR, so must run only client side\n // we could at least prevent more flickering by having the ssr head script\n // that changes to dark initially also go through and change all of these\n if (!isWeb || typeof document !== 'undefined') {\n useLayoutEffect(() => {\n if (!themeManager) return\n if (name !== themeManager.parentName) {\n setName(themeManager.parentName)\n }\n }, [themeManager?.parentName])\n\n useLayoutEffect(() => {\n if (!themeManager) return\n return themeManager.onChangeTheme(() => {\n setName(themeManager.parentName)\n })\n }, [])\n }\n\n if (!themeManager || !props.children) {\n return props.children || null\n }\n\n return (\n <Theme className=\"tui-theme-reset\" reset name={name}>\n {props.children}\n </Theme>\n )\n}\n"],
5
5
  "mappings": "AAAA;AAEA;AACA;AACA;AAGA,MAAM;AAGC,MAAM,aAAa,CAAC,UAA8B;AACvD,QAAM,eAAe,WAAW,mBAAmB;AACnD,QAAM,CAAC,MAAM,WAAW,SAAwB,IAAI;AAKpD,MAAI,CAAC,SAAS,OAAO,aAAa,aAAa;AAC7C,oBAAgB,MAAM;AACpB,UAAI,CAAC;AAAc;AACnB,UAAI,SAAS,aAAa,YAAY;AACpC,gBAAQ,aAAa,UAAU;AAAA,MACjC;AAAA,IACF,GAAG,CAAC,6CAAc,UAAU,CAAC;AAE7B,oBAAgB,MAAM;AACpB,UAAI,CAAC;AAAc;AACnB,aAAO,aAAa,cAAc,MAAM;AACtC,gBAAQ,aAAa,UAAU;AAAA,MACjC,CAAC;AAAA,IACH,GAAG,CAAC,CAAC;AAAA,EACP;AAEA,MAAI,CAAC,gBAAgB,CAAC,MAAM,UAAU;AACpC,WAAO,MAAM,YAAY;AAAA,EAC3B;AAEA,SACE,oCAAC;AAAA,IAAM,WAAU;AAAA,IAAkB,OAAK;AAAA,IAAC;AAAA,KACtC,MAAM,QACT;AAEJ;",
6
6
  "names": []
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/core",
3
- "version": "1.0.1-beta.135",
3
+ "version": "1.0.1-beta.138",
4
4
  "source": "src/index.ts",
5
5
  "main": "dist/cjs",
6
6
  "module": "dist/esm",
@@ -22,12 +22,12 @@
22
22
  ],
23
23
  "dependencies": {
24
24
  "@expo/match-media": "^0.3.0",
25
- "@tamagui/compose-refs": "^1.0.1-beta.135",
26
- "@tamagui/helpers": "^1.0.1-beta.135",
27
- "@tamagui/rnw": "^1.0.1-beta.135",
28
- "@tamagui/use-debounce": "^1.0.1-beta.135",
29
- "@tamagui/use-event": "^1.0.1-beta.135",
30
- "@tamagui/use-force-update": "^1.0.1-beta.135",
25
+ "@tamagui/compose-refs": "^1.0.1-beta.138",
26
+ "@tamagui/helpers": "^1.0.1-beta.138",
27
+ "@tamagui/rnw": "^1.0.1-beta.138",
28
+ "@tamagui/use-debounce": "^1.0.1-beta.138",
29
+ "@tamagui/use-event": "^1.0.1-beta.138",
30
+ "@tamagui/use-force-update": "^1.0.1-beta.138",
31
31
  "expo-screen-orientation": "^4.3.0",
32
32
  "hyphenate-style-name": "^1.0.4",
33
33
  "normalize-css-color": "^1.0.2",
@@ -38,7 +38,7 @@
38
38
  "react-native-web": "*"
39
39
  },
40
40
  "devDependencies": {
41
- "@tamagui/build": "^1.0.1-beta.135",
41
+ "@tamagui/build": "^1.0.1-beta.138",
42
42
  "@types/react": "^18.0.15",
43
43
  "csstype": "^3.0.10",
44
44
  "esbuild": "^0.14.49",
@@ -0,0 +1,11 @@
1
+ import { ThemeObject } from './types';
2
+ export declare function addTheme({ name: themeName, theme: themeIn, insertCSS, update, }: {
3
+ name: string;
4
+ theme: ThemeObject;
5
+ insertCSS?: boolean;
6
+ update?: boolean;
7
+ }): {
8
+ theme: any;
9
+ cssRules: string[];
10
+ };
11
+ //# sourceMappingURL=addTheme.d.ts.map
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { ThemeName, Themes } from './types';
2
+ import { ThemeName, Themes } from '../types';
3
3
  export declare const ThemeContext: import("react").Context<{
4
4
  themes: Themes;
5
5
  defaultTheme: ThemeName;
@@ -2,7 +2,6 @@ import { Variable } from './createVariable';
2
2
  declare type GenericTheme = {
3
3
  [key: string]: string | Variable;
4
4
  };
5
- export declare const themeToVariableToValueMap: WeakMap<any, Record<string, string>>;
6
5
  export declare const createTheme: <Theme extends GenericTheme>(theme: Theme) => { [K in keyof Theme]: string | Variable<any> | Theme[K]; };
7
6
  export {};
8
7
  //# sourceMappingURL=createTheme.d.ts.map
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { ThemeObject, Themes } from './types';
2
+ import { ThemeObject, Themes } from '../types';
3
3
  declare type ThemeListener = (name: string | null, themeManager: ThemeManager) => void;
4
4
  export declare type SetActiveThemeProps = {
5
5
  className?: string;
@@ -26,12 +26,12 @@ export declare class ThemeManager {
26
26
  get didChangeTheme(): boolean | null;
27
27
  get parentName(): string | null;
28
28
  get fullName(): string;
29
- getValue(key: string): import("./types").VariableVal | undefined;
30
- update({ name, theme, className }?: SetActiveThemeProps): boolean;
29
+ getValue(key: string): import("../types").VariableVal | undefined;
30
+ update({ name, theme, className }?: SetActiveThemeProps, force?: boolean): boolean;
31
31
  getNextTheme(props?: GetNextThemeProps, debug?: any): {
32
32
  name: string;
33
- theme: (Partial<import("./types").TamaguiBaseTheme> & {
34
- [key: string]: import("./types").VariableVal;
33
+ theme: (Partial<import("../types").TamaguiBaseTheme> & {
34
+ [key: string]: import("../types").VariableVal;
35
35
  }) | null;
36
36
  className?: undefined;
37
37
  } | {
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { TamaguiInternalConfig, TamaguiProviderProps } from '../types';
2
3
  export declare function createTamaguiProvider(config: TamaguiInternalConfig): ({ disableInjectCSS, children, ...themePropsProvider }: TamaguiProviderProps) => JSX.Element;
3
4
  //# sourceMappingURL=createTamaguiProvider.d.ts.map
@@ -0,0 +1,8 @@
1
+ import { CreateTamaguiProps, ThemeObject } from '../types';
2
+ export declare function getThemeCSSRules({ config, themeName, theme, names, }: {
3
+ config: CreateTamaguiProps;
4
+ themeName: string;
5
+ theme: ThemeObject;
6
+ names: string[];
7
+ }): string[];
8
+ //# sourceMappingURL=getThemeCSSRules.d.ts.map
@@ -0,0 +1,2 @@
1
+ export declare function getThemeCSSRules(): never[];
2
+ //# sourceMappingURL=getThemeCSSRules.native.d.ts.map
@@ -0,0 +1,4 @@
1
+ import { CreateTamaguiProps } from '../types';
2
+ export declare function ensureThemeVariable(theme: any, key: string): void;
3
+ export declare function proxyThemeToParents(themeName: string, theme: any, themes: CreateTamaguiProps['themes']): any;
4
+ //# sourceMappingURL=themes.d.ts.map
@@ -1,4 +1,4 @@
1
- import { ThemeManager } from '../ThemeManager';
1
+ import { ThemeManager } from '../helpers/ThemeManager';
2
2
  import { ThemeName, ThemeObject } from '../types';
3
3
  export declare type ThemeProps = {
4
4
  className?: string;
@@ -15,6 +15,7 @@ export declare const useThemeName: (opts?: {
15
15
  parent?: true;
16
16
  }) => string;
17
17
  export declare const useDefaultThemeName: () => ThemeName | undefined;
18
+ export declare const activeThemeManagers: Set<ThemeManager>;
18
19
  export declare const useChangeThemeEffect: (name?: string | null, componentName?: string, props?: ThemeProps, forceUpdateProp?: any) => {
19
20
  themes: {
20
21
  [key: string]: Partial<import("../types").TamaguiBaseTheme> & {
package/types/index.d.ts CHANGED
@@ -8,6 +8,8 @@ export * from './createTokens';
8
8
  export * from './createVariable';
9
9
  export * from './createVariables';
10
10
  export * from './insertFont';
11
+ export * from './addTheme';
12
+ export * from './updateTheme';
11
13
  export * from './styled';
12
14
  export * from './types';
13
15
  export type { RNWTextProps, RNWViewProps } from './types-rnw';
@@ -47,7 +49,7 @@ export * from './hooks/useUnmountEffect';
47
49
  export * from './views/Slot';
48
50
  export * from './views/Stack';
49
51
  export * from './views/Text';
50
- export { TextAncestorProvider, TextAncestorContext } from './views/TextAncestorContext';
52
+ export { TextAncestorProvider, TextAncestorContext } from './contexts/TextAncestorContext';
51
53
  export * from './views/Theme';
52
54
  export * from './views/ThemeInverse';
53
55
  export * from './views/ThemeProvider';
@@ -0,0 +1,9 @@
1
+ import { ThemeObject } from './types';
2
+ export declare function updateTheme({ name, theme }: {
3
+ name: string;
4
+ theme: ThemeObject;
5
+ }): {
6
+ theme: any;
7
+ cssRules: string[];
8
+ };
9
+ //# sourceMappingURL=updateTheme.d.ts.map
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { FontLanguageProps } from './FontLanguage.types';
2
3
  export declare const FontLanguage: ({ children, ...props }: FontLanguageProps) => JSX.Element;
3
4
  //# sourceMappingURL=FontLanguage.d.ts.map
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { FontLanguageProps } from './FontLanguage.types';
2
3
  export declare const FontLanguage: ({ children, ...props }: FontLanguageProps) => JSX.Element;
3
4
  //# sourceMappingURL=FontLanguage.native.d.ts.map
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
+ import { ThemeManager } from '../helpers/ThemeManager';
2
3
  import { ThemeProps } from '../hooks/useTheme';
3
- import { ThemeManager } from '../ThemeManager';
4
4
  export declare const Theme: React.NamedExoticComponent<ThemeProps>;
5
5
  export declare function wrapThemeManagerContext(children: any, themeManager?: ThemeManager | null, shouldSetChildrenThemeToParent?: boolean): any;
6
6
  //# sourceMappingURL=Theme.d.ts.map
@@ -1,11 +1,6 @@
1
1
  import React from 'react';
2
- declare type StringRecord = {
3
- [key: string]: string;
4
- };
5
- export declare function setThemeInversions(next: StringRecord): void;
6
2
  export declare const ThemeInverse: ({ children, disable, }: {
7
3
  children: React.ReactNode;
8
4
  disable?: boolean | undefined;
9
5
  }) => JSX.Element;
10
- export {};
11
6
  //# sourceMappingURL=ThemeInverse.d.ts.map
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  export declare type ThemeProviderProps = {
2
3
  className?: string;
3
4
  themes: any;
@@ -1 +0,0 @@
1
- //# sourceMappingURL=defaultComponentState.d.ts.map