@tamagui/web 1.74.3 → 1.74.4

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 (213) hide show
  1. package/dist/cjs/helpers/getAnimationDriver.js +28 -0
  2. package/dist/cjs/helpers/getAnimationDriver.js.map +6 -0
  3. package/dist/cjs/helpers/getAnimationDriver.native.js +29 -0
  4. package/dist/cjs/helpers/getAnimationDriver.native.js.map +6 -0
  5. package/dist/cjs/helpers/propMapper.js +24 -19
  6. package/dist/cjs/helpers/propMapper.js.map +1 -1
  7. package/dist/cjs/helpers/propMapper.native.js +24 -19
  8. package/dist/cjs/helpers/propMapper.native.js.map +1 -1
  9. package/dist/cjs/hooks/useAnimationDriver.js +26 -0
  10. package/dist/cjs/hooks/useAnimationDriver.js.map +6 -0
  11. package/dist/cjs/hooks/useAnimationDriver.native.js +27 -0
  12. package/dist/cjs/hooks/useAnimationDriver.native.js.map +6 -0
  13. package/dist/cjs/hooks/useStyle.js +47 -0
  14. package/dist/cjs/hooks/useStyle.js.map +6 -0
  15. package/dist/cjs/hooks/useStyle.native.js +48 -0
  16. package/dist/cjs/hooks/useStyle.native.js.map +6 -0
  17. package/dist/cjs/hooks/useTheme.js +1 -1
  18. package/dist/cjs/hooks/useTheme.js.map +1 -1
  19. package/dist/cjs/hooks/useTheme.native.js +2 -2
  20. package/dist/cjs/hooks/useTheme.native.js.map +1 -1
  21. package/dist/cjs/views/AnimationDriverProvider.js +26 -0
  22. package/dist/cjs/views/AnimationDriverProvider.js.map +6 -0
  23. package/dist/cjs/views/AnimationDriverProvider.native.js +27 -0
  24. package/dist/cjs/views/AnimationDriverProvider.native.js.map +6 -0
  25. package/dist/esm/Tamagui.native.js +36 -0
  26. package/dist/esm/Tamagui.native.js.map +6 -0
  27. package/dist/esm/config.native.js +62 -0
  28. package/dist/esm/config.native.js.map +6 -0
  29. package/dist/esm/constants/accessibilityDirectMap.native.js +59 -0
  30. package/dist/esm/constants/accessibilityDirectMap.native.js.map +6 -0
  31. package/dist/esm/constants/constants.native.js +9 -0
  32. package/dist/esm/constants/constants.native.js.map +6 -0
  33. package/dist/esm/constants/isDevTools.native.js +12 -0
  34. package/dist/esm/constants/isDevTools.native.js.map +6 -0
  35. package/dist/esm/contexts/ComponentContext.native.js +22 -0
  36. package/dist/esm/contexts/ComponentContext.native.js.map +6 -0
  37. package/dist/esm/createComponent.native.js +683 -0
  38. package/dist/esm/createComponent.native.js.map +6 -0
  39. package/dist/esm/createFont.native.js +38 -0
  40. package/dist/esm/createFont.native.js.map +6 -0
  41. package/dist/esm/createShorthands.native.js +7 -0
  42. package/dist/esm/createShorthands.native.js.map +6 -0
  43. package/dist/esm/createTamagui.native.js +181 -0
  44. package/dist/esm/createTamagui.native.js.map +6 -0
  45. package/dist/esm/createTheme.native.js +5 -0
  46. package/dist/esm/createTheme.native.js.map +6 -0
  47. package/dist/esm/createTokens.native.js +8 -0
  48. package/dist/esm/createTokens.native.js.map +6 -0
  49. package/dist/esm/createVariable.native.js +57 -0
  50. package/dist/esm/createVariable.native.js.map +6 -0
  51. package/dist/esm/createVariables.native.js +34 -0
  52. package/dist/esm/createVariables.native.js.map +6 -0
  53. package/dist/esm/defaultComponentState.native.js +19 -0
  54. package/dist/esm/defaultComponentState.native.js.map +6 -0
  55. package/dist/esm/helpers/ThemeManager.native.js +157 -0
  56. package/dist/esm/helpers/ThemeManager.native.js.map +6 -0
  57. package/dist/esm/helpers/ThemeManagerContext.native.js +6 -0
  58. package/dist/esm/helpers/ThemeManagerContext.native.js.map +6 -0
  59. package/dist/esm/helpers/createChainedWeakCache.native.js +33 -0
  60. package/dist/esm/helpers/createChainedWeakCache.native.js.map +6 -0
  61. package/dist/esm/helpers/createMediaStyle.native.js +52 -0
  62. package/dist/esm/helpers/createMediaStyle.native.js.map +6 -0
  63. package/dist/esm/helpers/createProxy.native.js +14 -0
  64. package/dist/esm/helpers/createProxy.native.js.map +6 -0
  65. package/dist/esm/helpers/createShallowSetState.native.js +14 -0
  66. package/dist/esm/helpers/createShallowSetState.native.js.map +6 -0
  67. package/dist/esm/helpers/createStyledContext.native.js +30 -0
  68. package/dist/esm/helpers/createStyledContext.native.js.map +6 -0
  69. package/dist/esm/helpers/defaultOffset.native.js +5 -0
  70. package/dist/esm/helpers/defaultOffset.native.js.map +6 -0
  71. package/dist/esm/helpers/expandStyle.native.js +43 -0
  72. package/dist/esm/helpers/expandStyle.native.js.map +6 -0
  73. package/dist/esm/helpers/expandStyles.native.js +37 -0
  74. package/dist/esm/helpers/expandStyles.native.js.map +6 -0
  75. package/dist/esm/helpers/getAnimationDriver.js +8 -0
  76. package/dist/esm/helpers/getAnimationDriver.js.map +6 -0
  77. package/dist/esm/helpers/getExpandedShorthands.native.js +14 -0
  78. package/dist/esm/helpers/getExpandedShorthands.native.js.map +6 -0
  79. package/dist/esm/helpers/getFontLanguage.native.js +5 -0
  80. package/dist/esm/helpers/getFontLanguage.native.js.map +6 -0
  81. package/dist/esm/helpers/getGroupPropParts.native.js +11 -0
  82. package/dist/esm/helpers/getGroupPropParts.native.js.map +6 -0
  83. package/dist/esm/helpers/getSplitStyles.native.js +539 -0
  84. package/dist/esm/helpers/getSplitStyles.native.js.map +6 -0
  85. package/dist/esm/helpers/getStylesAtomic.native.js +10 -0
  86. package/dist/esm/helpers/getStylesAtomic.native.js.map +6 -0
  87. package/dist/esm/helpers/getThemeCSSRules.native.js +7 -0
  88. package/dist/esm/helpers/getThemeCSSRules.native.js.map +6 -0
  89. package/dist/esm/helpers/getVariantExtras.native.js +51 -0
  90. package/dist/esm/helpers/getVariantExtras.native.js.map +6 -0
  91. package/dist/esm/helpers/insertStyleRule.native.js +195 -0
  92. package/dist/esm/helpers/insertStyleRule.native.js.map +6 -0
  93. package/dist/esm/helpers/isObj.native.js +5 -0
  94. package/dist/esm/helpers/isObj.native.js.map +6 -0
  95. package/dist/esm/helpers/isTamaguiComponent.native.js +8 -0
  96. package/dist/esm/helpers/isTamaguiComponent.native.js.map +6 -0
  97. package/dist/esm/helpers/isTamaguiElement.native.js +7 -0
  98. package/dist/esm/helpers/isTamaguiElement.native.js.map +6 -0
  99. package/dist/esm/helpers/matchMedia.native.js +20 -0
  100. package/dist/esm/helpers/matchMedia.native.js.map +6 -0
  101. package/dist/esm/helpers/mergeProps.native.js +28 -0
  102. package/dist/esm/helpers/mergeProps.native.js.map +6 -0
  103. package/dist/esm/helpers/mergeVariants.native.js +35 -0
  104. package/dist/esm/helpers/mergeVariants.native.js.map +6 -0
  105. package/dist/esm/helpers/normalizeColor.native.js +20 -0
  106. package/dist/esm/helpers/normalizeColor.native.js.map +6 -0
  107. package/dist/esm/helpers/normalizeShadow.native.js +28 -0
  108. package/dist/esm/helpers/normalizeShadow.native.js.map +6 -0
  109. package/dist/esm/helpers/normalizeStylePropKeys.native.js +16 -0
  110. package/dist/esm/helpers/normalizeStylePropKeys.native.js.map +6 -0
  111. package/dist/esm/helpers/normalizeValueWithProperty.native.js +40 -0
  112. package/dist/esm/helpers/normalizeValueWithProperty.native.js.map +6 -0
  113. package/dist/esm/helpers/objectIdentityKey.native.js +22 -0
  114. package/dist/esm/helpers/objectIdentityKey.native.js.map +6 -0
  115. package/dist/esm/helpers/propMapper.js +24 -19
  116. package/dist/esm/helpers/propMapper.js.map +1 -1
  117. package/dist/esm/helpers/propMapper.native.js +213 -0
  118. package/dist/esm/helpers/propMapper.native.js.map +6 -0
  119. package/dist/esm/helpers/proxyThemeToParents.native.js +40 -0
  120. package/dist/esm/helpers/proxyThemeToParents.native.js.map +6 -0
  121. package/dist/esm/helpers/proxyThemeVariables.native.js +16 -0
  122. package/dist/esm/helpers/proxyThemeVariables.native.js.map +6 -0
  123. package/dist/esm/helpers/pseudoDescriptors.native.js +37 -0
  124. package/dist/esm/helpers/pseudoDescriptors.native.js.map +6 -0
  125. package/dist/esm/helpers/registerCSSVariable.native.js +10 -0
  126. package/dist/esm/helpers/registerCSSVariable.native.js.map +6 -0
  127. package/dist/esm/helpers/themeable.native.js +29 -0
  128. package/dist/esm/helpers/themeable.native.js.map +6 -0
  129. package/dist/esm/helpers/themes.native.js +17 -0
  130. package/dist/esm/helpers/themes.native.js.map +6 -0
  131. package/dist/esm/helpers/timer.native.js +11 -0
  132. package/dist/esm/helpers/timer.native.js.map +6 -0
  133. package/dist/esm/helpers/withStaticProperties.native.js +20 -0
  134. package/dist/esm/helpers/withStaticProperties.native.js.map +6 -0
  135. package/dist/esm/hooks/getThemeUnwrapped.native.js +6 -0
  136. package/dist/esm/hooks/getThemeUnwrapped.native.js.map +6 -0
  137. package/dist/esm/hooks/useAnimationDriver.js +8 -0
  138. package/dist/esm/hooks/useAnimationDriver.js.map +6 -0
  139. package/dist/esm/hooks/useConfiguration.native.js +15 -0
  140. package/dist/esm/hooks/useConfiguration.native.js.map +6 -0
  141. package/dist/esm/hooks/useDisableSSR.native.js +15 -0
  142. package/dist/esm/hooks/useDisableSSR.native.js.map +6 -0
  143. package/dist/esm/hooks/useId.native.js +5 -0
  144. package/dist/esm/hooks/useId.native.js.map +6 -0
  145. package/dist/esm/hooks/useIsTouchDevice.native.js +7 -0
  146. package/dist/esm/hooks/useIsTouchDevice.native.js.map +6 -0
  147. package/dist/esm/hooks/useMedia.native.js +155 -0
  148. package/dist/esm/hooks/useMedia.native.js.map +6 -0
  149. package/dist/esm/hooks/useMemoDebug.native.js +10 -0
  150. package/dist/esm/hooks/useMemoDebug.native.js.map +6 -0
  151. package/dist/esm/hooks/useProps.native.js +49 -0
  152. package/dist/esm/hooks/useProps.native.js.map +6 -0
  153. package/dist/esm/hooks/useStyle.js +32 -0
  154. package/dist/esm/hooks/useStyle.js.map +6 -0
  155. package/dist/esm/hooks/useTheme.js +1 -1
  156. package/dist/esm/hooks/useTheme.js.map +1 -1
  157. package/dist/esm/hooks/useTheme.native.js +224 -0
  158. package/dist/esm/hooks/useTheme.native.js.map +6 -0
  159. package/dist/esm/hooks/useThemeName.native.js +17 -0
  160. package/dist/esm/hooks/useThemeName.native.js.map +6 -0
  161. package/dist/esm/index.native.js +90 -0
  162. package/dist/esm/index.native.js.map +6 -0
  163. package/dist/esm/inject-styles.native.js +12 -0
  164. package/dist/esm/inject-styles.native.js.map +6 -0
  165. package/dist/esm/insertFont.native.js +48 -0
  166. package/dist/esm/insertFont.native.js.map +6 -0
  167. package/dist/esm/interfaces/CSSColorNames.native.js +1 -0
  168. package/dist/esm/interfaces/CSSColorNames.native.js.map +6 -0
  169. package/dist/esm/interfaces/GetRef.native.js +1 -0
  170. package/dist/esm/interfaces/GetRef.native.js.map +6 -0
  171. package/dist/esm/interfaces/Role.native.js +1 -0
  172. package/dist/esm/interfaces/Role.native.js.map +6 -0
  173. package/dist/esm/setupHooks.native.js +9 -0
  174. package/dist/esm/setupHooks.native.js.map +6 -0
  175. package/dist/esm/setupReactNative.native.js +30 -0
  176. package/dist/esm/setupReactNative.native.js.map +6 -0
  177. package/dist/esm/styled.native.js +56 -0
  178. package/dist/esm/styled.native.js.map +6 -0
  179. package/dist/esm/types.native.js +1 -0
  180. package/dist/esm/types.native.js.map +6 -0
  181. package/dist/esm/views/AnimationDriverProvider.js +7 -0
  182. package/dist/esm/views/AnimationDriverProvider.js.map +6 -0
  183. package/dist/esm/views/Configuration.native.js +7 -0
  184. package/dist/esm/views/Configuration.native.js.map +6 -0
  185. package/dist/esm/views/FontLanguage.native.js +11 -0
  186. package/dist/esm/views/FontLanguage.native.js.map +6 -0
  187. package/dist/esm/views/FontLanguage.types.native.js +1 -0
  188. package/dist/esm/views/FontLanguage.types.native.js.map +6 -0
  189. package/dist/esm/views/Slot.native.js +40 -0
  190. package/dist/esm/views/Slot.native.js.map +6 -0
  191. package/dist/esm/views/Stack.native.js +12 -0
  192. package/dist/esm/views/Stack.native.js.map +6 -0
  193. package/dist/esm/views/TamaguiProvider.native.js +34 -0
  194. package/dist/esm/views/TamaguiProvider.native.js.map +6 -0
  195. package/dist/esm/views/Text.native.js +32 -0
  196. package/dist/esm/views/Text.native.js.map +6 -0
  197. package/dist/esm/views/Theme.native.js +85 -0
  198. package/dist/esm/views/Theme.native.js.map +6 -0
  199. package/dist/esm/views/ThemeDebug.native.js +11 -0
  200. package/dist/esm/views/ThemeDebug.native.js.map +6 -0
  201. package/dist/esm/views/ThemeProvider.native.js +26 -0
  202. package/dist/esm/views/ThemeProvider.native.js.map +6 -0
  203. package/dist/esm/views/View.native.js +13 -0
  204. package/dist/esm/views/View.native.js.map +6 -0
  205. package/package.json +9 -9
  206. package/src/helpers/propMapper.ts +36 -25
  207. package/src/hooks/useTheme.tsx +20 -3
  208. package/src/types.tsx +1 -1
  209. package/types/helpers/propMapper.d.ts.map +1 -1
  210. package/types/hooks/useTheme.d.ts +11 -1
  211. package/types/hooks/useTheme.d.ts.map +1 -1
  212. package/types/types.d.ts +1 -1
  213. package/types/types.d.ts.map +1 -1
@@ -0,0 +1,155 @@
1
+ import { useIsomorphicLayoutEffect } from "@tamagui/constants";
2
+ import { useRef, useSyncExternalStore } from "react";
3
+ import { getConfig } from "../config";
4
+ import { createProxy } from "../helpers/createProxy";
5
+ import { matchMedia } from "../helpers/matchMedia";
6
+ import { pseudoDescriptors } from "../helpers/pseudoDescriptors";
7
+ import { getDisableSSR, useDisableSSR } from "./useDisableSSR";
8
+ let mediaState = (
9
+ // development only safeguard
10
+ process.env.NODE_ENV === "development" ? createProxy(
11
+ {},
12
+ {
13
+ get(target, key) {
14
+ if (typeof key == "string" && key[0] === "$" && // dont error on $$typeof
15
+ key[1] !== "$")
16
+ throw new Error(`Access mediaState should not use "$": ${key}`);
17
+ return Reflect.get(target, key);
18
+ }
19
+ }
20
+ ) : {}
21
+ );
22
+ const mediaQueryConfig = {}, getMedia = () => mediaState, mediaKeys = /* @__PURE__ */ new Set(), isMediaKey = (key) => mediaKeys.has(key) || key[0] === "$" && (key.startsWith("$platform-") || key.startsWith("$theme-") || key.startsWith("$group-"));
23
+ let initState;
24
+ const defaultMediaImportance = Object.keys(pseudoDescriptors).length;
25
+ let mediaKeysOrdered;
26
+ const getMediaKeyImportance = (key) => {
27
+ if (process.env.NODE_ENV === "development" && key[0] === "$")
28
+ throw new Error("use short key");
29
+ return getConfig().settings.mediaPropOrder ? defaultMediaImportance : mediaKeysOrdered.indexOf(key) + 100;
30
+ }, dispose = /* @__PURE__ */ new Set();
31
+ let mediaVersion = 0;
32
+ const configureMedia = (config) => {
33
+ const { media, mediaQueryDefaultActive } = config;
34
+ if (media) {
35
+ mediaVersion++;
36
+ for (const key in media)
37
+ mediaState[key] = mediaQueryDefaultActive?.[key] || !1, mediaKeys.add(`$${key}`);
38
+ Object.assign(mediaQueryConfig, media), initState = { ...mediaState }, mediaKeysOrdered = Object.keys(media), config.disableSSR ? setupMediaListeners() : updateCurrentState();
39
+ }
40
+ };
41
+ function unlisten() {
42
+ dispose.forEach((cb) => cb()), dispose.clear();
43
+ }
44
+ let setupVersion = -1;
45
+ function setupMediaListeners() {
46
+ if (setupVersion !== mediaVersion) {
47
+ setupVersion = mediaVersion, unlisten();
48
+ for (const key in mediaQueryConfig) {
49
+ let update2 = function() {
50
+ const next = !!getMatch().matches;
51
+ next !== mediaState[key] && (mediaState = { ...mediaState, [key]: next }, updateCurrentState());
52
+ };
53
+ var update = update2;
54
+ const str = mediaObjectToString(mediaQueryConfig[key], key), getMatch = () => matchMedia(str), match = getMatch();
55
+ if (!match)
56
+ throw new Error("\u26A0\uFE0F No match");
57
+ match.addListener(update2), dispose.add(() => {
58
+ match.removeListener(update2);
59
+ }), update2();
60
+ }
61
+ }
62
+ }
63
+ function useMediaListeners(config) {
64
+ config.disableSSR || useIsomorphicLayoutEffect(() => {
65
+ setupMediaListeners();
66
+ }, []);
67
+ }
68
+ const listeners = /* @__PURE__ */ new Set();
69
+ let flushing = !1, flushVersion = -1;
70
+ function updateCurrentState() {
71
+ flushing && flushVersion === mediaVersion || (flushVersion = mediaVersion, flushing = !0, Promise.resolve().then(() => {
72
+ flushing = !1, listeners.forEach((cb) => cb(mediaState));
73
+ }));
74
+ }
75
+ const shouldUpdate = /* @__PURE__ */ new WeakMap();
76
+ function setMediaShouldUpdate(ref, props) {
77
+ return shouldUpdate.set(ref, props);
78
+ }
79
+ function subscribe(subscriber) {
80
+ return listeners.add(subscriber), () => listeners.delete(subscriber);
81
+ }
82
+ function useMedia(uid, componentContext) {
83
+ const internal = useRef(), initialState = ((componentContext ? getDisableSSR(componentContext) : useDisableSSR()) ? mediaState : initState) || {}, state = useSyncExternalStore(
84
+ subscribe,
85
+ () => {
86
+ if (!internal.current)
87
+ return initialState;
88
+ const { touched, prev } = internal.current, componentState = uid ? shouldUpdate.get(uid) : void 0;
89
+ if (componentState && componentState.enabled === !1)
90
+ return prev;
91
+ const testKeys = componentState?.keys ?? ((!componentState || componentState.enabled) && touched ? [...touched] : null);
92
+ return !testKeys || testKeys?.every((key) => mediaState[key] === prev[key]) ? prev : (internal.current.prev = mediaState, mediaState);
93
+ },
94
+ () => initialState
95
+ );
96
+ return new Proxy(state, {
97
+ get(_, key) {
98
+ return typeof key == "string" && (internal.current ||= { prev: initialState }, internal.current.touched ||= /* @__PURE__ */ new Set(), internal.current.touched.add(key)), Reflect.get(state, key);
99
+ }
100
+ });
101
+ }
102
+ const getMediaImportanceIfMoreImportant = (mediaKey, key, importancesUsed, isSizeMedia) => {
103
+ const conf = getConfig(), importance = isSizeMedia && !conf.settings.mediaPropOrder ? getMediaKeyImportance(mediaKey) : defaultMediaImportance;
104
+ return !importancesUsed[key] || importance > importancesUsed[key] ? importance : null;
105
+ };
106
+ function mergeMediaByImportance(onto, mediaKey, key, value, importancesUsed, isSizeMedia, importanceBump) {
107
+ let importance = getMediaImportanceIfMoreImportant(
108
+ mediaKey,
109
+ key,
110
+ importancesUsed,
111
+ isSizeMedia
112
+ );
113
+ return importanceBump && (importance = (importance || 0) + importanceBump), importance === null ? !1 : (importancesUsed[key] = importance, onto[key] = value, !0);
114
+ }
115
+ function camelToHyphen(str) {
116
+ return str.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`).toLowerCase();
117
+ }
118
+ const cache = /* @__PURE__ */ new WeakMap(), cachedMediaKeyToQuery = {};
119
+ function mediaObjectToString(query, key) {
120
+ if (typeof query == "string")
121
+ return query;
122
+ if (cache.has(query))
123
+ return cache.get(query);
124
+ 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 ");
125
+ return key && (cachedMediaKeyToQuery[key] = res), cache.set(query, res), res;
126
+ }
127
+ function mediaKeyToQuery(key) {
128
+ return cachedMediaKeyToQuery[key] || mediaObjectToString(mediaQueryConfig[key], key);
129
+ }
130
+ function mediaKeyMatch(key, dimensions) {
131
+ const mediaQueries = mediaQueryConfig[key];
132
+ return Object.keys(mediaQueries).every((query) => {
133
+ const expectedVal = +mediaQueries[query], isMax = query.startsWith("max"), isWidth = query.endsWith("Width"), givenVal = dimensions[isWidth ? "width" : "height"];
134
+ return isMax ? givenVal < expectedVal : givenVal > expectedVal;
135
+ });
136
+ }
137
+ export {
138
+ configureMedia,
139
+ getMedia,
140
+ getMediaImportanceIfMoreImportant,
141
+ getMediaKeyImportance,
142
+ isMediaKey,
143
+ mediaKeyMatch,
144
+ mediaKeyToQuery,
145
+ mediaKeys,
146
+ mediaObjectToString,
147
+ mediaQueryConfig,
148
+ mediaState,
149
+ mergeMediaByImportance,
150
+ setMediaShouldUpdate,
151
+ setupMediaListeners,
152
+ useMedia,
153
+ useMediaListeners
154
+ };
155
+ //# sourceMappingURL=useMedia.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/hooks/useMedia.tsx"],
4
+ "mappings": "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",
5
+ "names": ["update"]
6
+ }
@@ -0,0 +1,10 @@
1
+ import { useMemo } from "react";
2
+ const useMemoDebug = (fn, args) => {
3
+ let run = 1;
4
+ const res = useMemo(() => (run = 0, fn()), args);
5
+ return run === 1 && console.log("saved a run"), res;
6
+ };
7
+ export {
8
+ useMemoDebug
9
+ };
10
+ //# sourceMappingURL=useMemoDebug.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/hooks/useMemoDebug.tsx"],
4
+ "mappings": "AAEA,SAAS,eAAe;AAEjB,MAAM,eAA+B,CAAC,IAAI,SAAS;AACxD,MAAI,MAAM;AAEV,QAAM,MAAM,QAAQ,OAClB,MAAM,GACC,GAAG,IACT,IAAI;AAEP,SAAI,QAAQ,KAEV,QAAQ,IAAI,aAAa,GAGpB;AACT;",
5
+ "names": []
6
+ }
@@ -0,0 +1,49 @@
1
+ import { useContext } from "react";
2
+ import { ComponentContext } from "../contexts/ComponentContext";
3
+ import { defaultComponentStateMounted } from "../defaultComponentState";
4
+ import { useSplitStyles } from "../helpers/getSplitStyles";
5
+ import { Stack } from "../views/Stack";
6
+ import { useMedia } from "./useMedia";
7
+ import { useThemeWithState } from "./useTheme";
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, [themeState, theme] = useThemeWithState({
25
+ componentName: staticConfig.componentName
26
+ }), componentContext = useContext(ComponentContext), media = useMedia(), splitStyles = useSplitStyles(
27
+ props,
28
+ staticConfig,
29
+ theme,
30
+ themeState.state?.name || "",
31
+ defaultComponentStateMounted,
32
+ {
33
+ isAnimated: !1,
34
+ mediaState: media,
35
+ noSkip: !0,
36
+ noClassNames: !0,
37
+ ...opts
38
+ },
39
+ null,
40
+ componentContext
41
+ );
42
+ return [splitStyles.viewProps, splitStyles.style, theme, media];
43
+ }
44
+ export {
45
+ useProps,
46
+ usePropsAndStyle,
47
+ useStyle
48
+ };
49
+ //# sourceMappingURL=useProps.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/hooks/useProps.tsx"],
4
+ "mappings": "AAAA,SAAS,kBAAkB;AAE3B,SAAS,wBAAwB;AACjC,SAAS,oCAAoC;AAC7C,SAAS,sBAAsB;AAE/B,SAAS,aAAa;AACtB,SAAS,gBAAgB;AACzB,SAAS,yBAAyB;AAqB3B,SAAS,SACd,OACA,MACmB;AACnB,QAAM,CAAC,UAAU,QAAQ,IAAI,iBAAiB,OAAO;AAAA,IACnD,GAAG;AAAA,IACH,UAAU;AAAA,IACV,aAAa;AAAA,IACb,eAAe;AAAA,EACjB,CAAC;AACD,SAAO;AAAA,IACL,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AACF;AAQO,SAAS,SACd,OACA,MACmB;AACnB,SAAO,iBAAiB,OAAO,IAAI,EAAE,CAAC;AACxC;AAQO,SAAS,iBACd,OACA,MACoE;AACpE,QAAM,eAAe,MAAM,cAAc,gBAAgB,MAAM,cACzD,CAAC,YAAY,KAAK,IAAI,kBAAkB;AAAA,IAC5C,eAAe,aAAa;AAAA,EAC9B,CAAC,GACK,mBAAmB,WAAW,gBAAgB,GAC9C,QAAQ,SAAS,GACjB,cAAc;AAAA,IAClB;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW,OAAO,QAAQ;AAAA,IAC1B;AAAA,IACA;AAAA,MACE,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,cAAc;AAAA,MACd,GAAG;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA,SAAO,CAAC,YAAY,WAAW,YAAY,OAAO,OAAO,KAAK;AAChE;",
5
+ "names": []
6
+ }
@@ -0,0 +1,32 @@
1
+ import { useContext } from "react";
2
+ import { ComponentContext } from "../contexts/ComponentContext";
3
+ import { defaultComponentState } from "../createComponent";
4
+ import { useSplitStyles } from "../helpers/getSplitStyles";
5
+ import { useMedia } from "./useMedia";
6
+ import { useThemeWithState } from "./useTheme";
7
+ function useStyle(base, style, options) {
8
+ const isText = base.staticConfig.isText, componentContext = useContext(ComponentContext), [themeState] = useThemeWithState({}), media = useMedia(), out = useSplitStyles(
9
+ style,
10
+ base.staticConfig,
11
+ themeState.state.theme,
12
+ themeState.state.name,
13
+ defaultComponentState,
14
+ {
15
+ ...options,
16
+ mediaState: media,
17
+ resolveVariablesAs: "auto"
18
+ },
19
+ null,
20
+ componentContext,
21
+ isText ? "span" : "div",
22
+ options?.debug
23
+ );
24
+ return {
25
+ style: Object.keys(out.style).length ? out.style : null,
26
+ classNames: out.classNames
27
+ };
28
+ }
29
+ export {
30
+ useStyle
31
+ };
32
+ //# sourceMappingURL=useStyle.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/hooks/useStyle.tsx"],
4
+ "mappings": "AAAA,SAAS,kBAAkB;AAE3B,SAAS,wBAAwB;AACjC,SAAS,6BAA6B;AACtC,SAAS,sBAAsB;AAQ/B,SAAS,gBAAgB;AACzB,SAAS,yBAAyB;AAE3B,SAAS,SAId,MACA,OACA,SACA;AACA,QAAM,SAAS,KAAK,aAAa,QAC3B,mBAAmB,WAAW,gBAAgB,GAC9C,CAAC,UAAU,IAAI,kBAAkB,CAAC,CAAC,GACnC,QAAQ,SAAS,GACjB,MAAM;AAAA,IACV;AAAA,IACA,KAAK;AAAA,IACL,WAAW,MAAM;AAAA,IACjB,WAAW,MAAM;AAAA,IACjB;AAAA,IACA;AAAA,MACE,GAAI;AAAA,MACJ,YAAY;AAAA,MACZ,oBAAoB;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS,SAAS;AAAA,IAClB,SAAS;AAAA,EACX;AACA,SAAO;AAAA,IACL,OAAO,OAAO,KAAK,IAAI,KAAK,EAAE,SAAS,IAAI,QAAQ;AAAA,IACnD,YAAY,IAAI;AAAA,EAClB;AACF;",
5
+ "names": []
6
+ }
@@ -74,7 +74,7 @@ function getThemeProxied({ theme, name }, deopt = !1, themeManager, keys, debug)
74
74
  if (subkey === "val")
75
75
  track(keyString);
76
76
  else if (subkey === "get")
77
- return () => getVariable(val);
77
+ return (platform) => getVariable(val);
78
78
  return Reflect.get(val, subkey);
79
79
  }
80
80
  });
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/hooks/useTheme.tsx"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["_", "themeManager", "state", "isNewTheme", "mounted"]
6
6
  }
@@ -0,0 +1,224 @@
1
+ import { isClient, isIos, isServer } from "@tamagui/constants";
2
+ import { useContext, useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
3
+ import { getConfig } from "../config";
4
+ import { getVariable } from "../createVariable";
5
+ import { createProxy } from "../helpers/createProxy";
6
+ import {
7
+ ThemeManager,
8
+ getHasThemeUpdatingProps
9
+ } from "../helpers/ThemeManager";
10
+ import { ThemeManagerContext } from "../helpers/ThemeManagerContext";
11
+ import { GetThemeUnwrapped } from "./getThemeUnwrapped";
12
+ const emptyProps = { name: null };
13
+ let cached;
14
+ function getDefaultThemeProxied() {
15
+ if (cached)
16
+ return cached;
17
+ const config = getConfig(), name = config.themes.light ? "light" : Object.keys(config.themes)[0], defaultTheme = config.themes[name];
18
+ return cached = getThemeProxied({ theme: defaultTheme, name }), cached;
19
+ }
20
+ const useTheme = (props = emptyProps) => {
21
+ const [_, theme] = useThemeWithState(props);
22
+ return theme || getDefaultThemeProxied();
23
+ }, useThemeWithState = (props) => {
24
+ const keys = useRef([]), changedThemeState = useChangeThemeEffect(
25
+ props,
26
+ !1,
27
+ keys.current,
28
+ isServer ? void 0 : () => {
29
+ const next = props.shouldUpdate?.() ?? (keys.current.length > 0 ? !0 : void 0);
30
+ return process.env.NODE_ENV === "development" && props.debug && props.debug !== "profile" && console.log(" \u{1F3A8} useTheme() shouldUpdate?", next, {
31
+ shouldUpdateProp: props.shouldUpdate?.(),
32
+ keys: [...keys.current]
33
+ }), next;
34
+ }
35
+ ), { themeManager, state } = changedThemeState;
36
+ state?.theme || process.env.NODE_ENV === "development" && process.env.TAMAGUI_DISABLE_NO_THEME_WARNING !== "1" && console.warn(
37
+ `[tamagui] No theme found, this could be due to an invalid theme name (given theme props ${JSON.stringify(
38
+ props
39
+ )}).
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
+ );
43
+ const themeProxied = useMemo(() => !themeManager || !state?.theme ? {} : getThemeProxied(state, props.deopt, themeManager, keys.current, props.debug), [state, themeManager, props.deopt, props.debug]);
44
+ return process.env.NODE_ENV === "development" && props.debug === "verbose" && (console.groupCollapsed(" \u{1F539} useTheme =>", state?.name), console.log("returning state", changedThemeState, "from props", props), console.groupEnd()), [changedThemeState, themeProxied];
45
+ };
46
+ function getThemeProxied({ theme, name }, deopt = !1, themeManager, keys, debug) {
47
+ if (!theme)
48
+ return {};
49
+ const config = getConfig();
50
+ function track(key) {
51
+ keys && !keys.includes(key) && (keys.push(key), process.env.NODE_ENV === "development" && debug && console.log(` \u{1F3A8} useTheme() tracking new key: ${key}`));
52
+ }
53
+ return createProxy(theme, {
54
+ has(_, key) {
55
+ if (Reflect.has(theme, key))
56
+ return !0;
57
+ if (typeof key == "string")
58
+ return key[0] === "$" && (key = key.slice(1)), themeManager?.allKeys.has(key);
59
+ },
60
+ get(_, key) {
61
+ if (key === GetThemeUnwrapped)
62
+ return theme;
63
+ if (
64
+ // dont ask me, idk why but on hermes you can see that useTheme()[undefined] passes in STRING undefined to proxy
65
+ // if someone is crazy enough to use "undefined" as a theme key then this not working is on them
66
+ key !== "undefined" && typeof key == "string"
67
+ ) {
68
+ const keyString = key[0] === "$" ? key.slice(1) : key, val = theme[keyString];
69
+ if (val && typeof val == "object")
70
+ return new Proxy(val, {
71
+ // when they touch the actual value we only track it
72
+ // if its a variable (web), its ignored!
73
+ get(_2, subkey) {
74
+ if (subkey === "val")
75
+ track(keyString);
76
+ else if (subkey === "get")
77
+ return (platform) => {
78
+ const outVal = getVariable(val);
79
+ if (platform !== "web" && isIos && !deopt && config.settings.fastSchemeChange) {
80
+ const isDark = name.startsWith("dark"), isLight = !isDark && name.startsWith("light");
81
+ if (isDark || isLight) {
82
+ const oppositeThemeName = name.replace(
83
+ isDark ? "dark" : "light",
84
+ isDark ? "light" : "dark"
85
+ ), oppositeTheme = config.themes[oppositeThemeName], oppositeVal = getVariable(oppositeTheme?.[keyString]);
86
+ if (oppositeVal)
87
+ return {
88
+ dynamic: {
89
+ dark: isDark ? outVal : oppositeVal,
90
+ light: isLight ? outVal : oppositeVal
91
+ }
92
+ };
93
+ }
94
+ }
95
+ return track(keyString), outVal;
96
+ };
97
+ return Reflect.get(val, subkey);
98
+ }
99
+ });
100
+ }
101
+ return Reflect.get(_, key);
102
+ }
103
+ });
104
+ }
105
+ const activeThemeManagers = /* @__PURE__ */ new Set(), useChangeThemeEffect = (props, isRoot = !1, keys, shouldUpdate) => {
106
+ const { disable } = props, parentManager = useContext(ThemeManagerContext);
107
+ if (!isRoot && !parentManager || disable)
108
+ return {
109
+ isNewTheme: !1,
110
+ state: parentManager?.state,
111
+ themeManager: parentManager
112
+ };
113
+ const [themeState, setThemeState] = useState(createState), { state, mounted, isNewTheme, themeManager } = themeState, isInversingOnMount = !!(!themeState.mounted && props.inverse);
114
+ function getShouldUpdateTheme(manager = themeManager, nextState, prevState = state, forceShouldChange = !1) {
115
+ const forceUpdate = shouldUpdate?.();
116
+ if (!manager || !forceShouldChange && forceUpdate === !1)
117
+ return;
118
+ const next = nextState || manager.getState(props, parentManager);
119
+ if (forceShouldChange)
120
+ return next;
121
+ if (next && !(forceUpdate !== !0 && !manager.getStateShouldChange(next, prevState)))
122
+ return next;
123
+ }
124
+ if (isServer || (useLayoutEffect(() => {
125
+ if (!themeManager)
126
+ return;
127
+ if (props.inverse && !mounted) {
128
+ setThemeState({ ...themeState, mounted: !0 });
129
+ return;
130
+ }
131
+ isNewTheme && themeManager && activeThemeManagers.add(themeManager), (isNewTheme || getShouldUpdateTheme(themeManager)) && setThemeState(createState);
132
+ const selfListenerDispose = themeManager.onChangeTheme((_a, _b, forced) => {
133
+ forced && setThemeState((prev) => createState(prev, !0));
134
+ }), disposeChangeListener = parentManager?.onChangeTheme((name, manager) => {
135
+ const force = shouldUpdate?.() || props.deopt || props["disable-child-theme"], shouldTryUpdate = force ?? !!(keys?.length || isNewTheme);
136
+ process.env.NODE_ENV === "development" && props.debug && console.log(" \u{1F538} onChange", themeManager.id, {
137
+ force,
138
+ shouldTryUpdate,
139
+ props,
140
+ name,
141
+ manager,
142
+ keys
143
+ }), shouldTryUpdate && setThemeState(createState);
144
+ }, themeManager.id);
145
+ return () => {
146
+ selfListenerDispose(), disposeChangeListener?.(), activeThemeManagers.delete(themeManager);
147
+ };
148
+ }, [
149
+ themeManager,
150
+ parentManager,
151
+ isNewTheme,
152
+ props.componentName,
153
+ props.inverse,
154
+ props.name,
155
+ props.reset,
156
+ mounted
157
+ ]), process.env.NODE_ENV === "development" && props.debug !== "profile" && useEffect(() => (globalThis.TamaguiThemeManagers ??= /* @__PURE__ */ new Set(), globalThis.TamaguiThemeManagers.add(themeManager), () => {
158
+ globalThis.TamaguiThemeManagers.delete(themeManager);
159
+ }), [themeManager])), isInversingOnMount)
160
+ return {
161
+ isNewTheme: !1,
162
+ themeManager: parentManager,
163
+ state: {
164
+ name: "",
165
+ ...parentManager?.state,
166
+ className: ""
167
+ }
168
+ };
169
+ return {
170
+ state,
171
+ isNewTheme,
172
+ themeManager
173
+ };
174
+ function createState(prev, force = !1) {
175
+ if (prev && shouldUpdate?.() === !1)
176
+ return prev;
177
+ let themeManager2 = parentManager, state2;
178
+ if (getHasThemeUpdatingProps(props)) {
179
+ const getNewThemeManager = () => new ThemeManager(props, isRoot ? "root" : parentManager);
180
+ if (prev?.themeManager) {
181
+ themeManager2 = prev.themeManager;
182
+ const forceChange = !!keys?.length, next = themeManager2.getState(props, parentManager), nextState = getShouldUpdateTheme(
183
+ themeManager2,
184
+ next,
185
+ prev.state,
186
+ forceChange
187
+ );
188
+ nextState ? (state2 = nextState, prev.isNewTheme ? themeManager2.updateState(nextState) : themeManager2 = getNewThemeManager()) : prev.isNewTheme && parentManager && !next && (themeManager2 = parentManager);
189
+ } else
190
+ themeManager2 = getNewThemeManager(), state2 = { ...themeManager2.state };
191
+ }
192
+ const isNewTheme2 = !!(themeManager2 !== parentManager || props.inverse), mounted2 = props.inverse ? isRoot || prev?.mounted : !0;
193
+ if (state2 || (isNewTheme2 ? state2 = themeManager2.state : (state2 = parentManager.state, themeManager2 = parentManager)), !force && state2?.name === prev?.state?.name)
194
+ return prev;
195
+ const response = {
196
+ state: state2,
197
+ themeManager: themeManager2,
198
+ isNewTheme: isNewTheme2,
199
+ mounted: mounted2
200
+ };
201
+ if (process.env.NODE_ENV === "development" && props.debug && isClient) {
202
+ console.groupCollapsed(` \u{1F537} ${themeManager2.id} useChangeThemeEffect createState`);
203
+ const parentState = { ...parentManager?.state }, parentId = parentManager?.id, themeManagerState = { ...themeManager2.state };
204
+ console.log({
205
+ props,
206
+ parentState,
207
+ parentId,
208
+ themeManager: themeManager2,
209
+ prev,
210
+ response,
211
+ themeManagerState
212
+ }), console.groupEnd();
213
+ }
214
+ return response;
215
+ }
216
+ };
217
+ export {
218
+ activeThemeManagers,
219
+ getThemeProxied,
220
+ useChangeThemeEffect,
221
+ useTheme,
222
+ useThemeWithState
223
+ };
224
+ //# sourceMappingURL=useTheme.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/hooks/useTheme.tsx"],
4
+ "mappings": "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",
5
+ "names": ["_", "themeManager", "state", "isNewTheme", "mounted"]
6
+ }
@@ -0,0 +1,17 @@
1
+ import { useIsomorphicLayoutEffect } from "@tamagui/constants";
2
+ import { useContext, useState } from "react";
3
+ import { ThemeManagerContext } from "../helpers/ThemeManagerContext";
4
+ function useThemeName(opts) {
5
+ const manager = useContext(ThemeManagerContext), [name, setName] = useState(manager?.state.name || "");
6
+ return useIsomorphicLayoutEffect(() => {
7
+ if (manager)
8
+ return setName(manager.state.name), manager.onChangeTheme((next, manager2) => {
9
+ const name2 = opts?.parent && manager2.state.parentName || next;
10
+ name2 && setName(name2);
11
+ });
12
+ }, [manager?.state.name]), name;
13
+ }
14
+ export {
15
+ useThemeName
16
+ };
17
+ //# sourceMappingURL=useThemeName.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/hooks/useThemeName.tsx"],
4
+ "mappings": "AAAA,SAAS,iCAAiC;AAC1C,SAAS,YAAY,gBAAgB;AAErC,SAAS,2BAA2B;AAG7B,SAAS,aAAa,MAAqC;AAChE,QAAM,UAAU,WAAW,mBAAmB,GACxC,CAAC,MAAM,OAAO,IAAI,SAAS,SAAS,MAAM,QAAQ,EAAE;AAE1D,mCAA0B,MAAM;AAC9B,QAAK;AACL,qBAAQ,QAAQ,MAAM,IAAI,GACnB,QAAQ,cAAc,CAAC,MAAMA,aAAY;AAC9C,cAAMC,QAAO,MAAM,UAASD,SAAQ,MAAM,cAAc;AACxD,QAAKC,SACL,QAAQA,KAAI;AAAA,MACd,CAAC;AAAA,EACH,GAAG,CAAC,SAAS,MAAM,IAAI,CAAC,GAEjB;AACT;",
5
+ "names": ["manager", "name"]
6
+ }