@tamagui/core 1.0.0-alpha.1 → 1.0.0-alpha.6

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 (126) hide show
  1. package/LICENSE +21 -0
  2. package/dist/createComponent.js +43 -29
  3. package/dist/createComponent.js.map +2 -2
  4. package/dist/createVariable.js +3 -0
  5. package/dist/createVariable.js.map +2 -2
  6. package/dist/helpers/getSplitStyles.js +1 -13
  7. package/dist/helpers/getSplitStyles.js.map +2 -2
  8. package/dist/helpers/isComponent.js +10 -0
  9. package/dist/helpers/isComponent.js.map +7 -0
  10. package/dist/helpers/isTamaguiComponent.js +10 -0
  11. package/dist/helpers/isTamaguiComponent.js.map +7 -0
  12. package/dist/helpers/isTamaguiElement.js +10 -0
  13. package/dist/helpers/isTamaguiElement.js.map +7 -0
  14. package/dist/hooks/useMedia.js +1 -1
  15. package/dist/hooks/useMedia.js.map +2 -2
  16. package/dist/hooks/useTheme.js +1 -1
  17. package/dist/hooks/useTheme.js.map +2 -2
  18. package/dist/index.cjs +145 -133
  19. package/dist/index.cjs.map +3 -3
  20. package/dist/index.js +1 -2
  21. package/dist/index.js.map +2 -2
  22. package/dist/views/Theme.js +11 -4
  23. package/dist/views/Theme.js.map +2 -2
  24. package/dist/views/ThemeInverse.js +0 -1
  25. package/dist/views/ThemeInverse.js.map +2 -2
  26. package/package.json +13 -6
  27. package/src/createComponent.tsx +50 -38
  28. package/src/createVariable.ts +4 -0
  29. package/src/helpers/getSplitStyles.tsx +3 -16
  30. package/src/helpers/isTamaguiElement.tsx +5 -0
  31. package/src/hooks/useMedia.tsx +1 -1
  32. package/src/hooks/useTheme.tsx +1 -1
  33. package/src/index.ts +1 -2
  34. package/src/views/Theme.tsx +12 -5
  35. package/src/views/ThemeInverse.tsx +0 -1
  36. package/types.d.ts +2 -5
  37. package/.ultra.cache.json +0 -1
  38. package/_/constants/constants.js +0 -14
  39. package/_/constants/constants.js.map +0 -7
  40. package/_/constants/platform.js +0 -20
  41. package/_/constants/platform.js.map +0 -7
  42. package/_/constants/pseudos.js +0 -18
  43. package/_/constants/pseudos.js.map +0 -7
  44. package/_/constants/rnw.js +0 -22
  45. package/_/constants/rnw.js.map +0 -7
  46. package/_/createComponent.js +0 -427
  47. package/_/createComponent.js.map +0 -7
  48. package/_/createShorthands.js +0 -10
  49. package/_/createShorthands.js.map +0 -7
  50. package/_/createTamagui.js +0 -122
  51. package/_/createTamagui.js.map +0 -7
  52. package/_/createTheme.js +0 -20
  53. package/_/createTheme.js.map +0 -7
  54. package/_/createTokens.js +0 -29
  55. package/_/createTokens.js.map +0 -7
  56. package/_/createVariable.js +0 -22
  57. package/_/createVariable.js.map +0 -7
  58. package/_/helpers/addStylesUsingClassname.js +0 -32
  59. package/_/helpers/addStylesUsingClassname.js.map +0 -7
  60. package/_/helpers/createMediaStyle.js +0 -34
  61. package/_/helpers/createMediaStyle.js.map +0 -7
  62. package/_/helpers/createTamaguiProvider.js +0 -42
  63. package/_/helpers/createTamaguiProvider.js.map +0 -7
  64. package/_/helpers/extendStaticConfig.js +0 -176
  65. package/_/helpers/extendStaticConfig.js.map +0 -7
  66. package/_/helpers/fixNativeShadow.js +0 -8
  67. package/_/helpers/fixNativeShadow.js.map +0 -7
  68. package/_/helpers/fixNativeShadow.native.js +0 -30
  69. package/_/helpers/fixNativeShadow.native.js.map +0 -7
  70. package/_/helpers/getSplitStyles.js +0 -160
  71. package/_/helpers/getSplitStyles.js.map +0 -7
  72. package/_/helpers/getStylesAtomic.js +0 -84
  73. package/_/helpers/getStylesAtomic.js.map +0 -7
  74. package/_/helpers/getStylesAtomic.native.js +0 -10
  75. package/_/helpers/getStylesAtomic.native.js.map +0 -7
  76. package/_/helpers/insertStyleRule.js +0 -24
  77. package/_/helpers/insertStyleRule.js.map +0 -7
  78. package/_/helpers/matchMedia.js +0 -15
  79. package/_/helpers/matchMedia.js.map +0 -7
  80. package/_/helpers/matchMedia.native.js +0 -8
  81. package/_/helpers/matchMedia.native.js.map +0 -7
  82. package/_/helpers/themeable.js +0 -26
  83. package/_/helpers/themeable.js.map +0 -7
  84. package/_/hooks/useConstant.js +0 -15
  85. package/_/hooks/useConstant.js.map +0 -7
  86. package/_/hooks/useFeatures.js +0 -75
  87. package/_/hooks/useFeatures.js.map +0 -7
  88. package/_/hooks/useForceUpdate.js +0 -28
  89. package/_/hooks/useForceUpdate.js.map +0 -7
  90. package/_/hooks/useMedia.js +0 -173
  91. package/_/hooks/useMedia.js.map +0 -7
  92. package/_/hooks/usePressable.js +0 -14
  93. package/_/hooks/usePressable.js.map +0 -7
  94. package/_/hooks/useTheme.js +0 -94
  95. package/_/hooks/useTheme.js.map +0 -7
  96. package/_/index.js +0 -30
  97. package/_/index.js.map +0 -7
  98. package/_/static/postProcessStyles.js +0 -18
  99. package/_/static/postProcessStyles.js.map +0 -7
  100. package/_/static.js +0 -12
  101. package/_/static.js.map +0 -7
  102. package/_/styled.js +0 -21
  103. package/_/styled.js.map +0 -7
  104. package/_/types.js +0 -1
  105. package/_/types.js.map +0 -7
  106. package/_/views/Animated.js +0 -79
  107. package/_/views/Animated.js.map +0 -7
  108. package/_/views/Stack.js +0 -12
  109. package/_/views/Stack.js.map +0 -7
  110. package/_/views/Text.js +0 -60
  111. package/_/views/Text.js.map +0 -7
  112. package/_/views/TextAncestorContext.js +0 -19
  113. package/_/views/TextAncestorContext.js.map +0 -7
  114. package/_/views/Theme.js +0 -57
  115. package/_/views/Theme.js.map +0 -7
  116. package/_/views/ThemeContext.js +0 -6
  117. package/_/views/ThemeContext.js.map +0 -7
  118. package/_/views/ThemeInverse.js +0 -27
  119. package/_/views/ThemeInverse.js.map +0 -7
  120. package/_/views/ThemeManagerContext.js +0 -56
  121. package/_/views/ThemeManagerContext.js.map +0 -7
  122. package/_/views/ThemeProvider.js +0 -45
  123. package/_/views/ThemeProvider.js.map +0 -7
  124. package/src/hooks/useForceUpdate.tsx +0 -26
  125. package/src/views/SafeAreaProvider.tsx +0 -33
  126. package/tsconfig.json +0 -8
@@ -1,56 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
- import { createContext } from "react";
4
- class ThemeManager {
5
- constructor() {
6
- this.name = "light";
7
- this.keys = new Map();
8
- this.listeners = new Map();
9
- this.callbacks = new Set();
10
- this.theme = null;
11
- }
12
- setActiveTheme(name, theme) {
13
- if (name === this.name)
14
- return;
15
- this.name = name;
16
- this.theme = theme;
17
- this.update();
18
- }
19
- track(uuid, keys) {
20
- if (!this.name)
21
- return;
22
- this.keys.set(uuid, keys);
23
- }
24
- update() {
25
- var _a;
26
- if (!this.name) {
27
- this.keys.clear();
28
- }
29
- for (const [uuid, keys] of this.keys.entries()) {
30
- if (keys.size) {
31
- (_a = this.listeners.get(uuid)) == null ? void 0 : _a();
32
- }
33
- }
34
- this.callbacks.forEach((cb) => cb(this.name));
35
- }
36
- onChangeTheme(cb) {
37
- this.callbacks.add(cb);
38
- return () => {
39
- this.callbacks.delete(cb);
40
- };
41
- }
42
- onUpdate(uuid, cb) {
43
- this.listeners.set(uuid, cb);
44
- return () => {
45
- this.listeners.delete(uuid);
46
- this.keys.delete(uuid);
47
- };
48
- }
49
- }
50
- __name(ThemeManager, "ThemeManager");
51
- const ThemeManagerContext = createContext(new ThemeManager());
52
- export {
53
- ThemeManager,
54
- ThemeManagerContext
55
- };
56
- //# sourceMappingURL=ThemeManagerContext.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/views/ThemeManagerContext.tsx"],
4
- "sourcesContent": ["import { createContext } from 'react'\n\nexport class ThemeManager {\n name: string | null = 'light'\n keys = new Map<any, Set<string>>()\n listeners = new Map<any, Function>()\n callbacks = new Set<Function>()\n theme = null\n\n setActiveTheme(name: string | null, theme?: any) {\n if (name === this.name) return\n this.name = name\n this.theme = theme\n this.update()\n }\n\n track(uuid: any, keys: Set<string>) {\n if (!this.name) return\n this.keys.set(uuid, keys)\n }\n\n update() {\n if (!this.name) {\n this.keys.clear()\n }\n for (const [uuid, keys] of this.keys.entries()) {\n if (keys.size) {\n this.listeners.get(uuid)?.()\n }\n }\n this.callbacks.forEach((cb) => cb(this.name))\n }\n\n onChangeTheme(cb: (name: string | null) => void) {\n this.callbacks.add(cb)\n return () => {\n this.callbacks.delete(cb)\n }\n }\n\n onUpdate(uuid: any, cb: Function) {\n this.listeners.set(uuid, cb)\n return () => {\n this.listeners.delete(uuid)\n this.keys.delete(uuid)\n }\n }\n}\n\nexport const ThemeManagerContext = createContext<ThemeManager>(new ThemeManager())\n"],
5
- "mappings": ";;AAAA;AAEO,mBAAmB;AAAA,EAAnB,cAFP;AAGE,gBAAsB;AACtB,gBAAO,IAAI;AACX,qBAAY,IAAI;AAChB,qBAAY,IAAI;AAChB,iBAAQ;AAAA;AAAA,EAER,eAAe,MAAqB,OAAa;AAC/C,QAAI,SAAS,KAAK;AAAM;AACxB,SAAK,OAAO;AACZ,SAAK,QAAQ;AACb,SAAK;AAAA;AAAA,EAGP,MAAM,MAAW,MAAmB;AAClC,QAAI,CAAC,KAAK;AAAM;AAChB,SAAK,KAAK,IAAI,MAAM;AAAA;AAAA,EAGtB,SAAS;AArBX;AAsBI,QAAI,CAAC,KAAK,MAAM;AACd,WAAK,KAAK;AAAA;AAEZ,eAAW,CAAC,MAAM,SAAS,KAAK,KAAK,WAAW;AAC9C,UAAI,KAAK,MAAM;AACb,mBAAK,UAAU,IAAI,UAAnB;AAAA;AAAA;AAGJ,SAAK,UAAU,QAAQ,CAAC,OAAO,GAAG,KAAK;AAAA;AAAA,EAGzC,cAAc,IAAmC;AAC/C,SAAK,UAAU,IAAI;AACnB,WAAO,MAAM;AACX,WAAK,UAAU,OAAO;AAAA;AAAA;AAAA,EAI1B,SAAS,MAAW,IAAc;AAChC,SAAK,UAAU,IAAI,MAAM;AACzB,WAAO,MAAM;AACX,WAAK,UAAU,OAAO;AACtB,WAAK,KAAK,OAAO;AAAA;AAAA;AAAA;AA1ChB;AA+CA,MAAM,sBAAsB,cAA4B,IAAI;",
6
- "names": []
7
- }
@@ -1,45 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
- import React, { useMemo } from "react";
4
- import { useIsomorphicLayoutEffect } from "../constants/platform";
5
- import { getHasConfigured, getThemeParentClassName } from "../createTamagui";
6
- import { Theme } from "./Theme";
7
- import { ThemeContext } from "./ThemeContext";
8
- const GET_DEFAULT_THEME = "___TGUI";
9
- const ThemeProvider = /* @__PURE__ */ __name((props) => {
10
- if (!getHasConfigured()) {
11
- throw new Error(`Missing configureThemes() call, add to your root file`);
12
- }
13
- useIsomorphicLayoutEffect(() => {
14
- if (props.disableRootThemeClass) {
15
- return;
16
- }
17
- if (typeof document !== "undefined") {
18
- const cns = getThemeParentClassName(`${props.defaultTheme}`).split(" ");
19
- cns.forEach((cn) => document.body.classList.add(cn));
20
- return () => {
21
- cns.forEach((cn) => document.body.classList.remove(cn));
22
- };
23
- }
24
- }, []);
25
- const themeContext = useMemo(() => {
26
- return new Proxy(props.themes, {
27
- get(target, key) {
28
- if (key === GET_DEFAULT_THEME)
29
- return props.defaultTheme;
30
- return Reflect.get(target, key);
31
- }
32
- });
33
- }, [props.themes]);
34
- return /* @__PURE__ */ React.createElement(ThemeContext.Provider, {
35
- value: themeContext
36
- }, /* @__PURE__ */ React.createElement(Theme, {
37
- name: props.defaultTheme,
38
- disableThemeClass: props.disableRootThemeClass
39
- }, props.children));
40
- }, "ThemeProvider");
41
- export {
42
- GET_DEFAULT_THEME,
43
- ThemeProvider
44
- };
45
- //# sourceMappingURL=ThemeProvider.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/views/ThemeProvider.tsx"],
4
- "sourcesContent": ["import React, { useMemo } from 'react'\n\nimport { useIsomorphicLayoutEffect } from '../constants/platform'\nimport { getHasConfigured, getThemeParentClassName } from '../createTamagui'\nimport { Theme } from './Theme'\nimport { ThemeContext } from './ThemeContext'\n\nexport type ThemeProviderProps = {\n themes: any\n defaultTheme: string\n disableRootThemeClass?: boolean\n children?: any\n}\n\nexport const GET_DEFAULT_THEME = '___TGUI'\n\nexport const ThemeProvider = (props: ThemeProviderProps) => {\n if (!getHasConfigured()) {\n throw new Error(`Missing configureThemes() call, add to your root file`)\n }\n\n // ensure theme is attached to root body node as well to work with modals by default\n useIsomorphicLayoutEffect(() => {\n if (props.disableRootThemeClass) {\n return\n }\n if (typeof document !== 'undefined') {\n const cns = getThemeParentClassName(`${props.defaultTheme}`).split(' ')\n cns.forEach((cn) => document.body.classList.add(cn))\n return () => {\n cns.forEach((cn) => document.body.classList.remove(cn))\n }\n }\n }, [])\n\n const themeContext = useMemo(() => {\n return new Proxy(props.themes, {\n get(target, key) {\n if (key === GET_DEFAULT_THEME) return props.defaultTheme\n return Reflect.get(target, key)\n },\n })\n }, [props.themes])\n\n return (\n <ThemeContext.Provider value={themeContext}>\n <Theme name={props.defaultTheme} disableThemeClass={props.disableRootThemeClass}>\n {props.children}\n </Theme>\n </ThemeContext.Provider>\n )\n}\n"],
5
- "mappings": ";;AAAA;AAEA;AACA;AACA;AACA;AASO,MAAM,oBAAoB;AAE1B,MAAM,gBAAgB,wBAAC,UAA8B;AAC1D,MAAI,CAAC,oBAAoB;AACvB,UAAM,IAAI,MAAM;AAAA;AAIlB,4BAA0B,MAAM;AAC9B,QAAI,MAAM,uBAAuB;AAC/B;AAAA;AAEF,QAAI,OAAO,aAAa,aAAa;AACnC,YAAM,MAAM,wBAAwB,GAAG,MAAM,gBAAgB,MAAM;AACnE,UAAI,QAAQ,CAAC,OAAO,SAAS,KAAK,UAAU,IAAI;AAChD,aAAO,MAAM;AACX,YAAI,QAAQ,CAAC,OAAO,SAAS,KAAK,UAAU,OAAO;AAAA;AAAA;AAAA,KAGtD;AAEH,QAAM,eAAe,QAAQ,MAAM;AACjC,WAAO,IAAI,MAAM,MAAM,QAAQ;AAAA,MAC7B,IAAI,QAAQ,KAAK;AACf,YAAI,QAAQ;AAAmB,iBAAO,MAAM;AAC5C,eAAO,QAAQ,IAAI,QAAQ;AAAA;AAAA;AAAA,KAG9B,CAAC,MAAM;AAEV,SACE,oCAAC,aAAa,UAAd;AAAA,IAAuB,OAAO;AAAA,KAC5B,oCAAC,OAAD;AAAA,IAAO,MAAM,MAAM;AAAA,IAAc,mBAAmB,MAAM;AAAA,KACvD,MAAM;AAAA,GA/Bc;",
6
- "names": []
7
- }
@@ -1,26 +0,0 @@
1
- import { useEffect, useRef, useState } from 'react'
2
-
3
- // ensures no updates after unmount
4
-
5
- export function useForceUpdate() {
6
- const setState = useState(0)[1]
7
- const internal = useRef<{ update: Function; isMounted: boolean }>()
8
- if (!internal.current) {
9
- internal.current = {
10
- isMounted: true,
11
- update: () => {
12
- if (internal.current!.isMounted) {
13
- setState(Math.random())
14
- }
15
- },
16
- }
17
- }
18
-
19
- useEffect(() => {
20
- return () => {
21
- internal.current!.isMounted = false
22
- }
23
- }, [])
24
-
25
- return internal.current.update
26
- }
@@ -1,33 +0,0 @@
1
- import React from 'react'
2
- import { Platform } from 'react-native'
3
- import {
4
- Metrics,
5
- SafeAreaProvider as RNSafeAreaProvider,
6
- initialWindowMetrics as defaultInitialWindowMetrics,
7
- } from 'react-native-safe-area-context'
8
-
9
- let defaultMetrics: Metrics | null = null
10
-
11
- export const SafeAreaProvider = ({
12
- initialWindowMetrics,
13
- children,
14
- }: {
15
- children?: any
16
- initialWindowMetrics?: any
17
- }) => {
18
- if (!initialWindowMetrics && !defaultMetrics) {
19
- defaultMetrics = Platform.select({
20
- web: {
21
- frame: { x: 0, y: 0, width: 0, height: 0 },
22
- insets: { top: 0, left: 0, right: 0, bottom: 0 },
23
- },
24
- default: defaultInitialWindowMetrics,
25
- })
26
- }
27
-
28
- return (
29
- <RNSafeAreaProvider initialMetrics={initialWindowMetrics ?? defaultMetrics}>
30
- {children}
31
- </RNSafeAreaProvider>
32
- )
33
- }
package/tsconfig.json DELETED
@@ -1,8 +0,0 @@
1
- {
2
- "extends": "../../tsconfig",
3
- "compilerOptions": {
4
- "rootDir": "../..",
5
- "jsx": "preserve"
6
- },
7
- "include": ["src"]
8
- }