@tamagui/core 1.0.0-alpha.37 → 1.0.0-alpha.38

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 (331) hide show
  1. package/dist/constants/constants.js +32 -0
  2. package/dist/constants/constants.js.map +7 -0
  3. package/dist/{esm/constants → constants}/platform.js +2 -3
  4. package/dist/constants/platform.js.map +7 -0
  5. package/dist/constants/rnw.js +10 -0
  6. package/dist/constants/rnw.js.map +7 -0
  7. package/dist/constants/styleConstants.js +59 -0
  8. package/dist/constants/styleConstants.js.map +7 -0
  9. package/dist/createComponent.js +395 -0
  10. package/dist/createComponent.js.map +7 -0
  11. package/dist/{esm/createShorthands.js → createShorthands.js} +0 -0
  12. package/dist/createShorthands.js.map +7 -0
  13. package/dist/createTamagui.js +107 -0
  14. package/dist/createTamagui.js.map +7 -0
  15. package/dist/{esm/createTokens.js → createTokens.js} +0 -4
  16. package/dist/createTokens.js.map +7 -0
  17. package/dist/{esm/createVariable.js → createVariable.js} +2 -6
  18. package/dist/createVariable.js.map +7 -0
  19. package/dist/helpers/addStylesUsingClassname.js +28 -0
  20. package/dist/helpers/addStylesUsingClassname.js.map +7 -0
  21. package/dist/{esm/helpers → helpers}/createMediaStyle.js +0 -0
  22. package/dist/{esm/helpers → helpers}/createMediaStyle.js.map +1 -1
  23. package/dist/{esm/helpers → helpers}/createTamaguiProvider.js +20 -2
  24. package/dist/helpers/createTamaguiProvider.js.map +7 -0
  25. package/dist/helpers/extendStaticConfig.js +158 -0
  26. package/dist/helpers/extendStaticConfig.js.map +7 -0
  27. package/dist/helpers/fixNativeShadow.js +38 -0
  28. package/dist/helpers/fixNativeShadow.js.map +7 -0
  29. package/dist/{esm/helpers → helpers}/getSplitStyles.js +40 -43
  30. package/dist/helpers/getSplitStyles.js.map +7 -0
  31. package/dist/{esm/helpers → helpers}/insertStyleRule.js +0 -7
  32. package/dist/helpers/insertStyleRule.js.map +7 -0
  33. package/dist/{esm/helpers → helpers}/matchMedia.js +0 -3
  34. package/dist/helpers/matchMedia.js.map +7 -0
  35. package/dist/{esm/helpers → helpers}/matchMedia.native.js +0 -1
  36. package/dist/{esm/helpers → helpers}/matchMedia.native.js.map +3 -3
  37. package/dist/helpers/setIfChanged.js +17 -0
  38. package/dist/helpers/setIfChanged.js.map +7 -0
  39. package/dist/{esm/helpers → helpers}/themeable.js +1 -1
  40. package/dist/{esm/helpers → helpers}/themeable.js.map +3 -3
  41. package/dist/{esm/hooks → hooks}/useConstant.js +0 -0
  42. package/dist/{esm/hooks → hooks}/useConstant.js.map +1 -1
  43. package/dist/{esm/hooks → hooks}/useFeatures.js +51 -39
  44. package/dist/hooks/useFeatures.js.map +7 -0
  45. package/dist/hooks/useForceUpdate.js +28 -0
  46. package/dist/hooks/useForceUpdate.js.map +7 -0
  47. package/dist/{esm/hooks → hooks}/useMedia.js +18 -20
  48. package/dist/hooks/useMedia.js.map +7 -0
  49. package/dist/{esm/hooks → hooks}/usePressable.js +1 -2
  50. package/dist/{esm/hooks → hooks}/usePressable.js.map +2 -2
  51. package/dist/{esm/hooks → hooks}/useTheme.js +25 -28
  52. package/dist/hooks/useTheme.js.map +7 -0
  53. package/dist/index.cjs +1837 -0
  54. package/dist/index.cjs.map +7 -0
  55. package/dist/{esm/index.js → index.js} +4 -6
  56. package/dist/index.js.map +7 -0
  57. package/dist/{esm/static → static}/postProcessStyles.js +3 -3
  58. package/dist/static/postProcessStyles.js.map +7 -0
  59. package/dist/{esm/static.js → static.js} +1 -6
  60. package/dist/static.js.map +7 -0
  61. package/dist/styled.js +28 -0
  62. package/dist/styled.js.map +7 -0
  63. package/dist/testtypes.js +1 -0
  64. package/dist/{esm/types.js.map → testtypes.js.map} +0 -0
  65. package/dist/{esm/types.js → types.js} +0 -0
  66. package/dist/types.js.map +7 -0
  67. package/dist/{esm/views → views}/Animated.js +0 -0
  68. package/dist/{esm/views → views}/Animated.js.map +3 -3
  69. package/dist/{esm/views → views}/Stack.js +1 -1
  70. package/dist/views/Stack.js.map +7 -0
  71. package/dist/views/Text.js +36 -0
  72. package/dist/views/Text.js.map +7 -0
  73. package/dist/views/TextAncestorContext.js +18 -0
  74. package/dist/views/TextAncestorContext.js.map +7 -0
  75. package/dist/{esm/views → views}/Theme.js +23 -29
  76. package/dist/views/Theme.js.map +7 -0
  77. package/dist/{esm/views → views}/ThemeContext.js +0 -0
  78. package/dist/{esm/views → views}/ThemeContext.js.map +1 -1
  79. package/dist/{esm/views → views}/ThemeInverse.js +1 -0
  80. package/dist/{esm/views → views}/ThemeInverse.js.map +3 -3
  81. package/dist/{esm/views → views}/ThemeManagerContext.js +6 -13
  82. package/dist/views/ThemeManagerContext.js.map +7 -0
  83. package/dist/{esm/views → views}/ThemeProvider.js +10 -10
  84. package/dist/views/ThemeProvider.js.map +7 -0
  85. package/package.json +6 -9
  86. package/dist/cjs/constants/constants.js +0 -50
  87. package/dist/cjs/constants/constants.js.map +0 -7
  88. package/dist/cjs/constants/platform.js +0 -43
  89. package/dist/cjs/constants/platform.js.map +0 -7
  90. package/dist/cjs/constants/pseudos.js +0 -25
  91. package/dist/cjs/constants/pseudos.js.map +0 -7
  92. package/dist/cjs/constants/rnw.js +0 -28
  93. package/dist/cjs/constants/rnw.js.map +0 -7
  94. package/dist/cjs/createComponent.js +0 -529
  95. package/dist/cjs/createComponent.js.map +0 -7
  96. package/dist/cjs/createFont.js +0 -50
  97. package/dist/cjs/createFont.js.map +0 -7
  98. package/dist/cjs/createShorthands.js +0 -16
  99. package/dist/cjs/createShorthands.js.map +0 -7
  100. package/dist/cjs/createTamagui.js +0 -223
  101. package/dist/cjs/createTamagui.js.map +0 -7
  102. package/dist/cjs/createTheme.js +0 -13
  103. package/dist/cjs/createTheme.js.map +0 -7
  104. package/dist/cjs/createTokens.js +0 -55
  105. package/dist/cjs/createTokens.js.map +0 -7
  106. package/dist/cjs/createVariable.js +0 -47
  107. package/dist/cjs/createVariable.js.map +0 -7
  108. package/dist/cjs/helpers/addStylesUsingClassname.js +0 -79
  109. package/dist/cjs/helpers/addStylesUsingClassname.js.map +0 -7
  110. package/dist/cjs/helpers/createMediaStyle.js +0 -56
  111. package/dist/cjs/helpers/createMediaStyle.js.map +0 -7
  112. package/dist/cjs/helpers/createPropMapper.js +0 -197
  113. package/dist/cjs/helpers/createPropMapper.js.map +0 -7
  114. package/dist/cjs/helpers/createTamaguiProvider.js +0 -74
  115. package/dist/cjs/helpers/createTamaguiProvider.js.map +0 -7
  116. package/dist/cjs/helpers/extendStaticConfig.js +0 -82
  117. package/dist/cjs/helpers/extendStaticConfig.js.map +0 -7
  118. package/dist/cjs/helpers/fixNativeShadow.js +0 -14
  119. package/dist/cjs/helpers/fixNativeShadow.js.map +0 -7
  120. package/dist/cjs/helpers/fixNativeShadow.native.js +0 -40
  121. package/dist/cjs/helpers/fixNativeShadow.native.js.map +0 -7
  122. package/dist/cjs/helpers/getSplitStyles.js +0 -180
  123. package/dist/cjs/helpers/getSplitStyles.js.map +0 -7
  124. package/dist/cjs/helpers/getStylesAtomic.js +0 -117
  125. package/dist/cjs/helpers/getStylesAtomic.js.map +0 -7
  126. package/dist/cjs/helpers/getStylesAtomic.native.js +0 -16
  127. package/dist/cjs/helpers/getStylesAtomic.native.js.map +0 -7
  128. package/dist/cjs/helpers/insertStyleRule.js +0 -46
  129. package/dist/cjs/helpers/insertStyleRule.js.map +0 -7
  130. package/dist/cjs/helpers/isObj.js +0 -13
  131. package/dist/cjs/helpers/isObj.js.map +0 -7
  132. package/dist/cjs/helpers/isTamaguiElement.js +0 -33
  133. package/dist/cjs/helpers/isTamaguiElement.js.map +0 -7
  134. package/dist/cjs/helpers/matchMedia.js +0 -24
  135. package/dist/cjs/helpers/matchMedia.js.map +0 -7
  136. package/dist/cjs/helpers/matchMedia.native.js +0 -31
  137. package/dist/cjs/helpers/matchMedia.native.js.map +0 -7
  138. package/dist/cjs/helpers/themeable.js +0 -78
  139. package/dist/cjs/helpers/themeable.js.map +0 -7
  140. package/dist/cjs/helpers/validate.js +0 -82
  141. package/dist/cjs/helpers/validate.js.map +0 -7
  142. package/dist/cjs/hooks/useConstant.js +0 -37
  143. package/dist/cjs/hooks/useConstant.js.map +0 -7
  144. package/dist/cjs/hooks/useFeatures.js +0 -100
  145. package/dist/cjs/hooks/useFeatures.js.map +0 -7
  146. package/dist/cjs/hooks/useMedia.js +0 -207
  147. package/dist/cjs/hooks/useMedia.js.map +0 -7
  148. package/dist/cjs/hooks/usePressable.js +0 -50
  149. package/dist/cjs/hooks/usePressable.js.map +0 -7
  150. package/dist/cjs/hooks/useTheme.js +0 -118
  151. package/dist/cjs/hooks/useTheme.js.map +0 -7
  152. package/dist/cjs/index.js +0 -55
  153. package/dist/cjs/index.js.map +0 -7
  154. package/dist/cjs/static/postProcessStyles.js +0 -40
  155. package/dist/cjs/static/postProcessStyles.js.map +0 -7
  156. package/dist/cjs/static.js +0 -34
  157. package/dist/cjs/static.js.map +0 -7
  158. package/dist/cjs/styled.js +0 -72
  159. package/dist/cjs/styled.js.map +0 -7
  160. package/dist/cjs/types.js +0 -4
  161. package/dist/cjs/types.js.map +0 -7
  162. package/dist/cjs/views/Animated.js +0 -129
  163. package/dist/cjs/views/Animated.js.map +0 -7
  164. package/dist/cjs/views/Stack.js +0 -51
  165. package/dist/cjs/views/Stack.js.map +0 -7
  166. package/dist/cjs/views/Text.js +0 -93
  167. package/dist/cjs/views/Text.js.map +0 -7
  168. package/dist/cjs/views/TextAncestorContext.js +0 -40
  169. package/dist/cjs/views/TextAncestorContext.js.map +0 -7
  170. package/dist/cjs/views/Theme.js +0 -91
  171. package/dist/cjs/views/Theme.js.map +0 -7
  172. package/dist/cjs/views/ThemeContext.js +0 -29
  173. package/dist/cjs/views/ThemeContext.js.map +0 -7
  174. package/dist/cjs/views/ThemeInverse.js +0 -48
  175. package/dist/cjs/views/ThemeInverse.js.map +0 -7
  176. package/dist/cjs/views/ThemeManagerContext.js +0 -84
  177. package/dist/cjs/views/ThemeManagerContext.js.map +0 -7
  178. package/dist/cjs/views/ThemeProvider.js +0 -67
  179. package/dist/cjs/views/ThemeProvider.js.map +0 -7
  180. package/dist/esm/constants/constants.js +0 -14
  181. package/dist/esm/constants/constants.js.map +0 -7
  182. package/dist/esm/constants/platform.js.map +0 -7
  183. package/dist/esm/constants/pseudos.js +0 -18
  184. package/dist/esm/constants/pseudos.js.map +0 -7
  185. package/dist/esm/constants/rnw.js +0 -22
  186. package/dist/esm/constants/rnw.js.map +0 -7
  187. package/dist/esm/createComponent.js +0 -465
  188. package/dist/esm/createComponent.js.map +0 -7
  189. package/dist/esm/createFont.js +0 -28
  190. package/dist/esm/createFont.js.map +0 -7
  191. package/dist/esm/createShorthands.js.map +0 -7
  192. package/dist/esm/createTamagui.js +0 -185
  193. package/dist/esm/createTamagui.js.map +0 -7
  194. package/dist/esm/createTheme.js +0 -7
  195. package/dist/esm/createTheme.js.map +0 -7
  196. package/dist/esm/createTokens.js.map +0 -7
  197. package/dist/esm/createVariable.js.map +0 -7
  198. package/dist/esm/helpers/addStylesUsingClassname.js +0 -57
  199. package/dist/esm/helpers/addStylesUsingClassname.js.map +0 -7
  200. package/dist/esm/helpers/createPropMapper.js +0 -162
  201. package/dist/esm/helpers/createPropMapper.js.map +0 -7
  202. package/dist/esm/helpers/createTamaguiProvider.js.map +0 -7
  203. package/dist/esm/helpers/extendStaticConfig.js +0 -60
  204. package/dist/esm/helpers/extendStaticConfig.js.map +0 -7
  205. package/dist/esm/helpers/fixNativeShadow.js +0 -8
  206. package/dist/esm/helpers/fixNativeShadow.js.map +0 -7
  207. package/dist/esm/helpers/fixNativeShadow.native.js +0 -34
  208. package/dist/esm/helpers/fixNativeShadow.native.js.map +0 -7
  209. package/dist/esm/helpers/getSplitStyles.js.map +0 -7
  210. package/dist/esm/helpers/getStylesAtomic.js +0 -84
  211. package/dist/esm/helpers/getStylesAtomic.js.map +0 -7
  212. package/dist/esm/helpers/getStylesAtomic.native.js +0 -10
  213. package/dist/esm/helpers/getStylesAtomic.native.js.map +0 -7
  214. package/dist/esm/helpers/insertStyleRule.js.map +0 -7
  215. package/dist/esm/helpers/isObj.js +0 -7
  216. package/dist/esm/helpers/isObj.js.map +0 -7
  217. package/dist/esm/helpers/isTamaguiElement.js +0 -11
  218. package/dist/esm/helpers/isTamaguiElement.js.map +0 -7
  219. package/dist/esm/helpers/matchMedia.js.map +0 -7
  220. package/dist/esm/helpers/validate.js +0 -60
  221. package/dist/esm/helpers/validate.js.map +0 -7
  222. package/dist/esm/hooks/useFeatures.js.map +0 -7
  223. package/dist/esm/hooks/useMedia.js.map +0 -7
  224. package/dist/esm/hooks/useTheme.js.map +0 -7
  225. package/dist/esm/index.js.map +0 -7
  226. package/dist/esm/static/postProcessStyles.js.map +0 -7
  227. package/dist/esm/static.js.map +0 -7
  228. package/dist/esm/styled.js +0 -21
  229. package/dist/esm/styled.js.map +0 -7
  230. package/dist/esm/views/Stack.js.map +0 -7
  231. package/dist/esm/views/Text.js +0 -60
  232. package/dist/esm/views/Text.js.map +0 -7
  233. package/dist/esm/views/TextAncestorContext.js +0 -18
  234. package/dist/esm/views/TextAncestorContext.js.map +0 -7
  235. package/dist/esm/views/Theme.js.map +0 -7
  236. package/dist/esm/views/ThemeManagerContext.js.map +0 -7
  237. package/dist/esm/views/ThemeProvider.js.map +0 -7
  238. package/dist/jsx/constants/constants.js +0 -13
  239. package/dist/jsx/constants/platform.js +0 -19
  240. package/dist/jsx/constants/pseudos.js +0 -17
  241. package/dist/jsx/constants/rnw.js +0 -21
  242. package/dist/jsx/createComponent.js +0 -459
  243. package/dist/jsx/createFont.js +0 -27
  244. package/dist/jsx/createShorthands.js +0 -9
  245. package/dist/jsx/createTamagui.js +0 -184
  246. package/dist/jsx/createTheme.js +0 -6
  247. package/dist/jsx/createTokens.js +0 -32
  248. package/dist/jsx/createVariable.js +0 -24
  249. package/dist/jsx/helpers/addStylesUsingClassname.js +0 -56
  250. package/dist/jsx/helpers/createMediaStyle.js +0 -33
  251. package/dist/jsx/helpers/createPropMapper.js +0 -161
  252. package/dist/jsx/helpers/createTamaguiProvider.js +0 -19
  253. package/dist/jsx/helpers/extendStaticConfig.js +0 -59
  254. package/dist/jsx/helpers/fixNativeShadow.js +0 -7
  255. package/dist/jsx/helpers/fixNativeShadow.native.js +0 -33
  256. package/dist/jsx/helpers/getSplitStyles.js +0 -149
  257. package/dist/jsx/helpers/getStylesAtomic.js +0 -83
  258. package/dist/jsx/helpers/getStylesAtomic.native.js +0 -9
  259. package/dist/jsx/helpers/insertStyleRule.js +0 -23
  260. package/dist/jsx/helpers/isObj.js +0 -6
  261. package/dist/jsx/helpers/isTamaguiElement.js +0 -10
  262. package/dist/jsx/helpers/matchMedia.js +0 -17
  263. package/dist/jsx/helpers/matchMedia.native.js +0 -8
  264. package/dist/jsx/helpers/themeable.js +0 -23
  265. package/dist/jsx/helpers/validate.js +0 -59
  266. package/dist/jsx/hooks/useConstant.js +0 -14
  267. package/dist/jsx/hooks/useFeatures.js +0 -57
  268. package/dist/jsx/hooks/useMedia.js +0 -174
  269. package/dist/jsx/hooks/usePressable.js +0 -13
  270. package/dist/jsx/hooks/useTheme.js +0 -96
  271. package/dist/jsx/index.js +0 -31
  272. package/dist/jsx/static/postProcessStyles.js +0 -17
  273. package/dist/jsx/static.js +0 -14
  274. package/dist/jsx/styled.js +0 -20
  275. package/dist/jsx/types.js +0 -0
  276. package/dist/jsx/views/Animated.js +0 -74
  277. package/dist/jsx/views/Stack.js +0 -11
  278. package/dist/jsx/views/Text.js +0 -59
  279. package/dist/jsx/views/TextAncestorContext.js +0 -15
  280. package/dist/jsx/views/Theme.js +0 -63
  281. package/dist/jsx/views/ThemeContext.js +0 -5
  282. package/dist/jsx/views/ThemeInverse.js +0 -22
  283. package/dist/jsx/views/ThemeManagerContext.js +0 -61
  284. package/dist/jsx/views/ThemeProvider.js +0 -39
  285. package/types/constants/constants.d.ts.map +0 -1
  286. package/types/constants/platform.d.ts.map +0 -1
  287. package/types/constants/pseudos.d.ts.map +0 -1
  288. package/types/constants/rnw.d.ts.map +0 -1
  289. package/types/createComponent.d.ts.map +0 -1
  290. package/types/createFont.d.ts.map +0 -1
  291. package/types/createShorthands.d.ts.map +0 -1
  292. package/types/createTamagui.d.ts.map +0 -1
  293. package/types/createTheme.d.ts.map +0 -1
  294. package/types/createTokens.d.ts.map +0 -1
  295. package/types/createVariable.d.ts.map +0 -1
  296. package/types/helpers/addStylesUsingClassname.d.ts.map +0 -1
  297. package/types/helpers/createMediaStyle.d.ts.map +0 -1
  298. package/types/helpers/createPropMapper.d.ts.map +0 -1
  299. package/types/helpers/createTamaguiProvider.d.ts.map +0 -1
  300. package/types/helpers/extendStaticConfig.d.ts.map +0 -1
  301. package/types/helpers/fixNativeShadow.d.ts.map +0 -1
  302. package/types/helpers/fixNativeShadow.native.d.ts.map +0 -1
  303. package/types/helpers/getSplitStyles.d.ts.map +0 -1
  304. package/types/helpers/getStylesAtomic.d.ts.map +0 -1
  305. package/types/helpers/getStylesAtomic.native.d.ts.map +0 -1
  306. package/types/helpers/insertStyleRule.d.ts.map +0 -1
  307. package/types/helpers/isObj.d.ts.map +0 -1
  308. package/types/helpers/isTamaguiElement.d.ts.map +0 -1
  309. package/types/helpers/matchMedia.d.ts.map +0 -1
  310. package/types/helpers/matchMedia.native.d.ts.map +0 -1
  311. package/types/helpers/themeable.d.ts.map +0 -1
  312. package/types/helpers/validate.d.ts.map +0 -1
  313. package/types/hooks/useConstant.d.ts.map +0 -1
  314. package/types/hooks/useFeatures.d.ts.map +0 -1
  315. package/types/hooks/useMedia.d.ts.map +0 -1
  316. package/types/hooks/usePressable.d.ts.map +0 -1
  317. package/types/hooks/useTheme.d.ts.map +0 -1
  318. package/types/index.d.ts.map +0 -1
  319. package/types/static/postProcessStyles.d.ts.map +0 -1
  320. package/types/static.d.ts.map +0 -1
  321. package/types/styled.d.ts.map +0 -1
  322. package/types/types.d.ts.map +0 -1
  323. package/types/views/Animated.d.ts.map +0 -1
  324. package/types/views/Stack.d.ts.map +0 -1
  325. package/types/views/Text.d.ts.map +0 -1
  326. package/types/views/TextAncestorContext.d.ts.map +0 -1
  327. package/types/views/Theme.d.ts.map +0 -1
  328. package/types/views/ThemeContext.d.ts.map +0 -1
  329. package/types/views/ThemeInverse.d.ts.map +0 -1
  330. package/types/views/ThemeManagerContext.d.ts.map +0 -1
  331. package/types/views/ThemeProvider.d.ts.map +0 -1
@@ -1,28 +1,22 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
- import { useForceUpdate } from "@tamagui/use-force-update";
3
+ import { isEqual } from "@dish/fast-compare";
4
4
  import { useContext, useEffect, useMemo, useRef, useState } from "react";
5
5
  import { useIsomorphicLayoutEffect } from "../constants/platform";
6
- import { Variable } from "../createVariable";
7
6
  import { ThemeContext } from "../views/ThemeContext";
8
7
  import { ThemeManagerContext } from "../views/ThemeManagerContext";
9
8
  import { GET_DEFAULT_THEME } from "../views/ThemeProvider";
10
- const areEqualSets = /* @__PURE__ */ __name((a, b) => {
11
- if (a.size !== b.size)
12
- return false;
13
- for (const val in a) {
14
- if (!b.has(val)) {
15
- return false;
16
- }
17
- }
18
- return true;
19
- }, "areEqualSets");
20
- const useThemeName = /* @__PURE__ */ __name((opts) => {
9
+ import { useForceUpdate } from "./useForceUpdate";
10
+ const useThemeName = /* @__PURE__ */ __name(() => {
21
11
  const parent = useContext(ThemeManagerContext);
22
12
  const [name, setName] = useState(parent.name);
23
- useIsomorphicLayoutEffect(() => {
24
- return parent.onChangeTheme((next, manager) => {
25
- setName((opts == null ? void 0 : opts.parent) ? manager.parentName : next);
13
+ useEffect(() => {
14
+ return parent.onChangeTheme((next) => {
15
+ setName((prev) => {
16
+ if (prev === next)
17
+ return prev;
18
+ return next;
19
+ });
26
20
  });
27
21
  }, [parent]);
28
22
  return name || "light";
@@ -31,7 +25,6 @@ const useDefaultThemeName = /* @__PURE__ */ __name(() => {
31
25
  return useContext(ThemeContext)[GET_DEFAULT_THEME];
32
26
  }, "useDefaultThemeName");
33
27
  const useTheme = /* @__PURE__ */ __name(() => {
34
- var _a;
35
28
  const forceUpdate = useForceUpdate();
36
29
  const manager = useContext(ThemeManagerContext);
37
30
  const themes = useContext(ThemeContext);
@@ -47,15 +40,14 @@ const useTheme = /* @__PURE__ */ __name(() => {
47
40
  useIsomorphicLayoutEffect(() => {
48
41
  const st = state.current;
49
42
  st.isRendering = false;
50
- const cur = manager.keys.get(st.uuid);
51
- if (!cur || !areEqualSets(st.keys, cur)) {
43
+ if (!isEqual(st.keys, manager.keys.get(st.uuid))) {
52
44
  manager.track(st.uuid, st.keys);
53
45
  }
54
46
  });
55
47
  useEffect(() => {
56
48
  return manager.onUpdate(state.current.uuid, forceUpdate);
57
49
  }, []);
58
- const theme = (_a = manager.name ? themes[manager.name] : themes.light) != null ? _a : themes.light;
50
+ const theme = (manager.name ? themes[manager.name] : themes.light) ?? themes.light;
59
51
  return useMemo(() => {
60
52
  return new Proxy(theme, {
61
53
  get(_, key) {
@@ -71,15 +63,20 @@ const useTheme = /* @__PURE__ */ __name(() => {
71
63
  const val = activeTheme[key];
72
64
  if (process.env.NODE_ENV === "development") {
73
65
  if (typeof val === "undefined") {
74
- console.warn(`No theme value "${String(key)}" in`, activeTheme, themes);
75
- return null;
76
- }
77
- if (!(val instanceof Variable)) {
78
- console.warn("Non variable!", val);
79
- }
80
- if (val.name !== key) {
81
- console.warn("Non-matching name for variable to key", key, val.name);
66
+ if (typeof key === "string") {
67
+ try {
68
+ if (!activeTheme) {
69
+ throw new Error(`No theme! ${name} in ${Object.keys(themes)}`);
70
+ }
71
+ if (!val) {
72
+ throw new Error(`No theme value "${String(key)}" in: ${Object.keys(activeTheme)}`);
73
+ }
74
+ } catch (err) {
75
+ console.error(err.message, err.stack);
76
+ }
77
+ }
82
78
  }
79
+ return Reflect.get(_, key);
83
80
  }
84
81
  if (state.current.isRendering) {
85
82
  state.current.keys.add(key);
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/hooks/useTheme.tsx"],
4
+ "sourcesContent": ["import { isEqual } from '@dish/fast-compare'\nimport React, { useContext, useEffect, useMemo, useRef, useState } from 'react'\n\nimport { useIsomorphicLayoutEffect } from '../constants/platform'\nimport { ThemeName } from '../types'\nimport { ThemeContext } from '../views/ThemeContext'\nimport { ThemeManagerContext } from '../views/ThemeManagerContext'\nimport { GET_DEFAULT_THEME } from '../views/ThemeProvider'\nimport { useForceUpdate } from './useForceUpdate'\n\ntype UseThemeState = {\n uuid: Object\n keys: Set<string>\n isRendering: boolean\n}\n\nexport const useThemeName = () => {\n const parent = useContext(ThemeManagerContext)\n const [name, setName] = useState(parent.name)\n useEffect(() => {\n return parent.onChangeTheme((next) => {\n setName((prev) => {\n if (prev === next) return prev\n return next\n })\n })\n }, [parent])\n return name || 'light'\n}\n\nexport const useDefaultThemeName = () => {\n return useContext(ThemeContext)[GET_DEFAULT_THEME] as any as ThemeName\n}\n\nexport const useTheme = () => {\n const forceUpdate = useForceUpdate()\n const manager = useContext(ThemeManagerContext)\n const themes = useContext(ThemeContext)\n const state = useRef() as React.MutableRefObject<UseThemeState>\n if (!state.current) {\n state.current = {\n uuid: {},\n keys: new Set(),\n isRendering: true,\n }\n }\n state.current.isRendering = true\n\n // track usage\n useIsomorphicLayoutEffect(() => {\n const st = state.current\n st.isRendering = false\n if (!isEqual(st.keys, manager.keys.get(st.uuid))) {\n manager.track(st.uuid, st.keys)\n }\n })\n\n useEffect(() => {\n return manager.onUpdate(state.current.uuid, forceUpdate)\n }, [])\n\n const theme = (manager.name ? themes[manager.name] : themes.light) ?? themes.light\n\n return useMemo(\n () => {\n return new Proxy(theme, {\n get(_, key: string) {\n const name = manager.name\n if (!name) {\n return Reflect.get(_, key)\n }\n let activeTheme = themes[name]\n if (!activeTheme) {\n console.error('No theme by name', name, 'only:', themes, 'keeping current theme')\n activeTheme = theme\n }\n const val = activeTheme[key]\n if (process.env.NODE_ENV === 'development') {\n if (typeof val === 'undefined') {\n if (typeof key === 'string') {\n try {\n if (!activeTheme) {\n throw new Error(`No theme! ${name} in ${Object.keys(themes)}`)\n }\n if (!val) {\n throw new Error(\n `No theme value \"${String(key)}\" in: ${Object.keys(activeTheme)}`\n )\n }\n } catch (err: any) {\n // no need to destroy rendering ever\n console.error(err.message, err.stack)\n }\n }\n }\n return Reflect.get(_, key)\n }\n if (state.current.isRendering) {\n state.current.keys.add(key)\n }\n return val\n },\n })\n },\n [\n /* if concurrent mode wanted put manager.name here */\n ]\n )\n}\n"],
5
+ "mappings": ";;AAAA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAQO,MAAM,eAAe,6BAAM;AAChC,QAAM,SAAS,WAAW;AAC1B,QAAM,CAAC,MAAM,WAAW,SAAS,OAAO;AACxC,YAAU,MAAM;AACd,WAAO,OAAO,cAAc,CAAC,SAAS;AACpC,cAAQ,CAAC,SAAS;AAChB,YAAI,SAAS;AAAM,iBAAO;AAC1B,eAAO;AAAA;AAAA;AAAA,KAGV,CAAC;AACJ,SAAO,QAAQ;AAAA,GAXW;AAcrB,MAAM,sBAAsB,6BAAM;AACvC,SAAO,WAAW,cAAc;AAAA,GADC;AAI5B,MAAM,WAAW,6BAAM;AAC5B,QAAM,cAAc;AACpB,QAAM,UAAU,WAAW;AAC3B,QAAM,SAAS,WAAW;AAC1B,QAAM,QAAQ;AACd,MAAI,CAAC,MAAM,SAAS;AAClB,UAAM,UAAU;AAAA,MACd,MAAM;AAAA,MACN,MAAM,IAAI;AAAA,MACV,aAAa;AAAA;AAAA;AAGjB,QAAM,QAAQ,cAAc;AAG5B,4BAA0B,MAAM;AAC9B,UAAM,KAAK,MAAM;AACjB,OAAG,cAAc;AACjB,QAAI,CAAC,QAAQ,GAAG,MAAM,QAAQ,KAAK,IAAI,GAAG,QAAQ;AAChD,cAAQ,MAAM,GAAG,MAAM,GAAG;AAAA;AAAA;AAI9B,YAAU,MAAM;AACd,WAAO,QAAQ,SAAS,MAAM,QAAQ,MAAM;AAAA,KAC3C;AAEH,QAAM,QAAS,SAAQ,OAAO,OAAO,QAAQ,QAAQ,OAAO,UAAU,OAAO;AAE7E,SAAO,QACL,MAAM;AACJ,WAAO,IAAI,MAAM,OAAO;AAAA,MACtB,IAAI,GAAG,KAAa;AAClB,cAAM,OAAO,QAAQ;AACrB,YAAI,CAAC,MAAM;AACT,iBAAO,QAAQ,IAAI,GAAG;AAAA;AAExB,YAAI,cAAc,OAAO;AACzB,YAAI,CAAC,aAAa;AAChB,kBAAQ,MAAM,oBAAoB,MAAM,SAAS,QAAQ;AACzD,wBAAc;AAAA;AAEhB,cAAM,MAAM,YAAY;AACxB,YAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,cAAI,OAAO,QAAQ,aAAa;AAC9B,gBAAI,OAAO,QAAQ,UAAU;AAC3B,kBAAI;AACF,oBAAI,CAAC,aAAa;AAChB,wBAAM,IAAI,MAAM,aAAa,WAAW,OAAO,KAAK;AAAA;AAEtD,oBAAI,CAAC,KAAK;AACR,wBAAM,IAAI,MACR,mBAAmB,OAAO,aAAa,OAAO,KAAK;AAAA;AAAA,uBAGhD,KAAP;AAEA,wBAAQ,MAAM,IAAI,SAAS,IAAI;AAAA;AAAA;AAAA;AAIrC,iBAAO,QAAQ,IAAI,GAAG;AAAA;AAExB,YAAI,MAAM,QAAQ,aAAa;AAC7B,gBAAM,QAAQ,KAAK,IAAI;AAAA;AAEzB,eAAO;AAAA;AAAA;AAAA,KAIb;AAAA,GAtEoB;",
6
+ "names": []
7
+ }