@tamagui/core 1.0.0-alpha.31 → 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 (333) 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 -2
  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/{esm/createComponent.js → createComponent.js} +125 -191
  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 +0 -0
  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 +16 -16
  48. package/dist/hooks/useMedia.js.map +7 -0
  49. package/dist/{esm/hooks → hooks}/usePressable.js +0 -0
  50. package/dist/{esm/hooks → hooks}/usePressable.js.map +1 -1
  51. package/dist/{esm/hooks → hooks}/useTheme.js +24 -26
  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/{esm/views → views}/TextAncestorContext.js +8 -7
  74. package/dist/views/TextAncestorContext.js.map +7 -0
  75. package/dist/{esm/views → views}/Theme.js +23 -28
  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 +5 -11
  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/types/createTheme.d.ts +1 -1
  87. package/types/helpers/fixNativeShadow.native.d.ts +1 -1
  88. package/types/styled.d.ts +1 -1
  89. package/types/types.d.ts +1 -1
  90. package/dist/cjs/constants/constants.js +0 -50
  91. package/dist/cjs/constants/constants.js.map +0 -7
  92. package/dist/cjs/constants/platform.js +0 -43
  93. package/dist/cjs/constants/platform.js.map +0 -7
  94. package/dist/cjs/constants/pseudos.js +0 -25
  95. package/dist/cjs/constants/pseudos.js.map +0 -7
  96. package/dist/cjs/constants/rnw.js +0 -28
  97. package/dist/cjs/constants/rnw.js.map +0 -7
  98. package/dist/cjs/createComponent.js +0 -529
  99. package/dist/cjs/createComponent.js.map +0 -7
  100. package/dist/cjs/createFont.js +0 -50
  101. package/dist/cjs/createFont.js.map +0 -7
  102. package/dist/cjs/createShorthands.js +0 -16
  103. package/dist/cjs/createShorthands.js.map +0 -7
  104. package/dist/cjs/createTamagui.js +0 -223
  105. package/dist/cjs/createTamagui.js.map +0 -7
  106. package/dist/cjs/createTheme.js +0 -13
  107. package/dist/cjs/createTheme.js.map +0 -7
  108. package/dist/cjs/createTokens.js +0 -55
  109. package/dist/cjs/createTokens.js.map +0 -7
  110. package/dist/cjs/createVariable.js +0 -47
  111. package/dist/cjs/createVariable.js.map +0 -7
  112. package/dist/cjs/helpers/addStylesUsingClassname.js +0 -79
  113. package/dist/cjs/helpers/addStylesUsingClassname.js.map +0 -7
  114. package/dist/cjs/helpers/createMediaStyle.js +0 -56
  115. package/dist/cjs/helpers/createMediaStyle.js.map +0 -7
  116. package/dist/cjs/helpers/createPropMapper.js +0 -197
  117. package/dist/cjs/helpers/createPropMapper.js.map +0 -7
  118. package/dist/cjs/helpers/createTamaguiProvider.js +0 -74
  119. package/dist/cjs/helpers/createTamaguiProvider.js.map +0 -7
  120. package/dist/cjs/helpers/extendStaticConfig.js +0 -82
  121. package/dist/cjs/helpers/extendStaticConfig.js.map +0 -7
  122. package/dist/cjs/helpers/fixNativeShadow.js +0 -14
  123. package/dist/cjs/helpers/fixNativeShadow.js.map +0 -7
  124. package/dist/cjs/helpers/fixNativeShadow.native.js +0 -36
  125. package/dist/cjs/helpers/fixNativeShadow.native.js.map +0 -7
  126. package/dist/cjs/helpers/getSplitStyles.js +0 -180
  127. package/dist/cjs/helpers/getSplitStyles.js.map +0 -7
  128. package/dist/cjs/helpers/getStylesAtomic.js +0 -117
  129. package/dist/cjs/helpers/getStylesAtomic.js.map +0 -7
  130. package/dist/cjs/helpers/getStylesAtomic.native.js +0 -16
  131. package/dist/cjs/helpers/getStylesAtomic.native.js.map +0 -7
  132. package/dist/cjs/helpers/insertStyleRule.js +0 -46
  133. package/dist/cjs/helpers/insertStyleRule.js.map +0 -7
  134. package/dist/cjs/helpers/isObj.js +0 -13
  135. package/dist/cjs/helpers/isObj.js.map +0 -7
  136. package/dist/cjs/helpers/isTamaguiElement.js +0 -33
  137. package/dist/cjs/helpers/isTamaguiElement.js.map +0 -7
  138. package/dist/cjs/helpers/matchMedia.js +0 -24
  139. package/dist/cjs/helpers/matchMedia.js.map +0 -7
  140. package/dist/cjs/helpers/matchMedia.native.js +0 -31
  141. package/dist/cjs/helpers/matchMedia.native.js.map +0 -7
  142. package/dist/cjs/helpers/themeable.js +0 -78
  143. package/dist/cjs/helpers/themeable.js.map +0 -7
  144. package/dist/cjs/helpers/validate.js +0 -82
  145. package/dist/cjs/helpers/validate.js.map +0 -7
  146. package/dist/cjs/hooks/useConstant.js +0 -37
  147. package/dist/cjs/hooks/useConstant.js.map +0 -7
  148. package/dist/cjs/hooks/useFeatures.js +0 -100
  149. package/dist/cjs/hooks/useFeatures.js.map +0 -7
  150. package/dist/cjs/hooks/useMedia.js +0 -207
  151. package/dist/cjs/hooks/useMedia.js.map +0 -7
  152. package/dist/cjs/hooks/usePressable.js +0 -50
  153. package/dist/cjs/hooks/usePressable.js.map +0 -7
  154. package/dist/cjs/hooks/useTheme.js +0 -118
  155. package/dist/cjs/hooks/useTheme.js.map +0 -7
  156. package/dist/cjs/index.js +0 -55
  157. package/dist/cjs/index.js.map +0 -7
  158. package/dist/cjs/static/postProcessStyles.js +0 -40
  159. package/dist/cjs/static/postProcessStyles.js.map +0 -7
  160. package/dist/cjs/static.js +0 -34
  161. package/dist/cjs/static.js.map +0 -7
  162. package/dist/cjs/styled.js +0 -72
  163. package/dist/cjs/styled.js.map +0 -7
  164. package/dist/cjs/types.js +0 -4
  165. package/dist/cjs/types.js.map +0 -7
  166. package/dist/cjs/views/Animated.js +0 -129
  167. package/dist/cjs/views/Animated.js.map +0 -7
  168. package/dist/cjs/views/Stack.js +0 -51
  169. package/dist/cjs/views/Stack.js.map +0 -7
  170. package/dist/cjs/views/Text.js +0 -93
  171. package/dist/cjs/views/Text.js.map +0 -7
  172. package/dist/cjs/views/TextAncestorContext.js +0 -40
  173. package/dist/cjs/views/TextAncestorContext.js.map +0 -7
  174. package/dist/cjs/views/Theme.js +0 -91
  175. package/dist/cjs/views/Theme.js.map +0 -7
  176. package/dist/cjs/views/ThemeContext.js +0 -29
  177. package/dist/cjs/views/ThemeContext.js.map +0 -7
  178. package/dist/cjs/views/ThemeInverse.js +0 -48
  179. package/dist/cjs/views/ThemeInverse.js.map +0 -7
  180. package/dist/cjs/views/ThemeManagerContext.js +0 -84
  181. package/dist/cjs/views/ThemeManagerContext.js.map +0 -7
  182. package/dist/cjs/views/ThemeProvider.js +0 -67
  183. package/dist/cjs/views/ThemeProvider.js.map +0 -7
  184. package/dist/esm/constants/constants.js +0 -14
  185. package/dist/esm/constants/constants.js.map +0 -7
  186. package/dist/esm/constants/platform.js.map +0 -7
  187. package/dist/esm/constants/pseudos.js +0 -18
  188. package/dist/esm/constants/pseudos.js.map +0 -7
  189. package/dist/esm/constants/rnw.js +0 -22
  190. package/dist/esm/constants/rnw.js.map +0 -7
  191. package/dist/esm/createComponent.js.map +0 -7
  192. package/dist/esm/createFont.js +0 -28
  193. package/dist/esm/createFont.js.map +0 -7
  194. package/dist/esm/createShorthands.js.map +0 -7
  195. package/dist/esm/createTamagui.js +0 -184
  196. package/dist/esm/createTamagui.js.map +0 -7
  197. package/dist/esm/createTheme.js +0 -7
  198. package/dist/esm/createTheme.js.map +0 -7
  199. package/dist/esm/createTokens.js.map +0 -7
  200. package/dist/esm/createVariable.js.map +0 -7
  201. package/dist/esm/helpers/addStylesUsingClassname.js +0 -57
  202. package/dist/esm/helpers/addStylesUsingClassname.js.map +0 -7
  203. package/dist/esm/helpers/createPropMapper.js +0 -160
  204. package/dist/esm/helpers/createPropMapper.js.map +0 -7
  205. package/dist/esm/helpers/createTamaguiProvider.js.map +0 -7
  206. package/dist/esm/helpers/extendStaticConfig.js +0 -59
  207. package/dist/esm/helpers/extendStaticConfig.js.map +0 -7
  208. package/dist/esm/helpers/fixNativeShadow.js +0 -8
  209. package/dist/esm/helpers/fixNativeShadow.js.map +0 -7
  210. package/dist/esm/helpers/fixNativeShadow.native.js +0 -30
  211. package/dist/esm/helpers/fixNativeShadow.native.js.map +0 -7
  212. package/dist/esm/helpers/getSplitStyles.js.map +0 -7
  213. package/dist/esm/helpers/getStylesAtomic.js +0 -83
  214. package/dist/esm/helpers/getStylesAtomic.js.map +0 -7
  215. package/dist/esm/helpers/getStylesAtomic.native.js +0 -10
  216. package/dist/esm/helpers/getStylesAtomic.native.js.map +0 -7
  217. package/dist/esm/helpers/insertStyleRule.js.map +0 -7
  218. package/dist/esm/helpers/isObj.js +0 -7
  219. package/dist/esm/helpers/isObj.js.map +0 -7
  220. package/dist/esm/helpers/isTamaguiElement.js +0 -10
  221. package/dist/esm/helpers/isTamaguiElement.js.map +0 -7
  222. package/dist/esm/helpers/matchMedia.js.map +0 -7
  223. package/dist/esm/helpers/validate.js +0 -60
  224. package/dist/esm/helpers/validate.js.map +0 -7
  225. package/dist/esm/hooks/useFeatures.js.map +0 -7
  226. package/dist/esm/hooks/useMedia.js.map +0 -7
  227. package/dist/esm/hooks/useTheme.js.map +0 -7
  228. package/dist/esm/index.js.map +0 -7
  229. package/dist/esm/static/postProcessStyles.js.map +0 -7
  230. package/dist/esm/static.js.map +0 -7
  231. package/dist/esm/styled.js +0 -21
  232. package/dist/esm/styled.js.map +0 -7
  233. package/dist/esm/views/Stack.js.map +0 -7
  234. package/dist/esm/views/Text.js +0 -60
  235. package/dist/esm/views/Text.js.map +0 -7
  236. package/dist/esm/views/TextAncestorContext.js.map +0 -7
  237. package/dist/esm/views/Theme.js.map +0 -7
  238. package/dist/esm/views/ThemeManagerContext.js.map +0 -7
  239. package/dist/esm/views/ThemeProvider.js.map +0 -7
  240. package/dist/jsx/constants/constants.js +0 -13
  241. package/dist/jsx/constants/platform.js +0 -18
  242. package/dist/jsx/constants/pseudos.js +0 -17
  243. package/dist/jsx/constants/rnw.js +0 -21
  244. package/dist/jsx/createComponent.js +0 -455
  245. package/dist/jsx/createFont.js +0 -27
  246. package/dist/jsx/createShorthands.js +0 -9
  247. package/dist/jsx/createTamagui.js +0 -183
  248. package/dist/jsx/createTheme.js +0 -6
  249. package/dist/jsx/createTokens.js +0 -32
  250. package/dist/jsx/createVariable.js +0 -24
  251. package/dist/jsx/helpers/addStylesUsingClassname.js +0 -56
  252. package/dist/jsx/helpers/createMediaStyle.js +0 -33
  253. package/dist/jsx/helpers/createPropMapper.js +0 -159
  254. package/dist/jsx/helpers/createTamaguiProvider.js +0 -19
  255. package/dist/jsx/helpers/extendStaticConfig.js +0 -58
  256. package/dist/jsx/helpers/fixNativeShadow.js +0 -7
  257. package/dist/jsx/helpers/fixNativeShadow.native.js +0 -29
  258. package/dist/jsx/helpers/getSplitStyles.js +0 -149
  259. package/dist/jsx/helpers/getStylesAtomic.js +0 -82
  260. package/dist/jsx/helpers/getStylesAtomic.native.js +0 -9
  261. package/dist/jsx/helpers/insertStyleRule.js +0 -23
  262. package/dist/jsx/helpers/isObj.js +0 -6
  263. package/dist/jsx/helpers/isTamaguiElement.js +0 -9
  264. package/dist/jsx/helpers/matchMedia.js +0 -17
  265. package/dist/jsx/helpers/matchMedia.native.js +0 -8
  266. package/dist/jsx/helpers/themeable.js +0 -23
  267. package/dist/jsx/helpers/validate.js +0 -59
  268. package/dist/jsx/hooks/useConstant.js +0 -14
  269. package/dist/jsx/hooks/useFeatures.js +0 -57
  270. package/dist/jsx/hooks/useMedia.js +0 -172
  271. package/dist/jsx/hooks/usePressable.js +0 -12
  272. package/dist/jsx/hooks/useTheme.js +0 -95
  273. package/dist/jsx/index.js +0 -31
  274. package/dist/jsx/static/postProcessStyles.js +0 -17
  275. package/dist/jsx/static.js +0 -14
  276. package/dist/jsx/styled.js +0 -20
  277. package/dist/jsx/types.js +0 -0
  278. package/dist/jsx/views/Animated.js +0 -74
  279. package/dist/jsx/views/Stack.js +0 -11
  280. package/dist/jsx/views/Text.js +0 -59
  281. package/dist/jsx/views/TextAncestorContext.js +0 -14
  282. package/dist/jsx/views/Theme.js +0 -62
  283. package/dist/jsx/views/ThemeContext.js +0 -5
  284. package/dist/jsx/views/ThemeInverse.js +0 -22
  285. package/dist/jsx/views/ThemeManagerContext.js +0 -60
  286. package/dist/jsx/views/ThemeProvider.js +0 -39
  287. package/types/constants/constants.d.ts.map +0 -1
  288. package/types/constants/platform.d.ts.map +0 -1
  289. package/types/constants/pseudos.d.ts.map +0 -1
  290. package/types/constants/rnw.d.ts.map +0 -1
  291. package/types/createComponent.d.ts.map +0 -1
  292. package/types/createFont.d.ts.map +0 -1
  293. package/types/createShorthands.d.ts.map +0 -1
  294. package/types/createTamagui.d.ts.map +0 -1
  295. package/types/createTheme.d.ts.map +0 -1
  296. package/types/createTokens.d.ts.map +0 -1
  297. package/types/createVariable.d.ts.map +0 -1
  298. package/types/helpers/addStylesUsingClassname.d.ts.map +0 -1
  299. package/types/helpers/createMediaStyle.d.ts.map +0 -1
  300. package/types/helpers/createPropMapper.d.ts.map +0 -1
  301. package/types/helpers/createTamaguiProvider.d.ts.map +0 -1
  302. package/types/helpers/extendStaticConfig.d.ts.map +0 -1
  303. package/types/helpers/fixNativeShadow.d.ts.map +0 -1
  304. package/types/helpers/fixNativeShadow.native.d.ts.map +0 -1
  305. package/types/helpers/getSplitStyles.d.ts.map +0 -1
  306. package/types/helpers/getStylesAtomic.d.ts.map +0 -1
  307. package/types/helpers/getStylesAtomic.native.d.ts.map +0 -1
  308. package/types/helpers/insertStyleRule.d.ts.map +0 -1
  309. package/types/helpers/isObj.d.ts.map +0 -1
  310. package/types/helpers/isTamaguiElement.d.ts.map +0 -1
  311. package/types/helpers/matchMedia.d.ts.map +0 -1
  312. package/types/helpers/matchMedia.native.d.ts.map +0 -1
  313. package/types/helpers/themeable.d.ts.map +0 -1
  314. package/types/helpers/validate.d.ts.map +0 -1
  315. package/types/hooks/useConstant.d.ts.map +0 -1
  316. package/types/hooks/useFeatures.d.ts.map +0 -1
  317. package/types/hooks/useMedia.d.ts.map +0 -1
  318. package/types/hooks/usePressable.d.ts.map +0 -1
  319. package/types/hooks/useTheme.d.ts.map +0 -1
  320. package/types/index.d.ts.map +0 -1
  321. package/types/static/postProcessStyles.d.ts.map +0 -1
  322. package/types/static.d.ts.map +0 -1
  323. package/types/styled.d.ts.map +0 -1
  324. package/types/types.d.ts.map +0 -1
  325. package/types/views/Animated.d.ts.map +0 -1
  326. package/types/views/Stack.d.ts.map +0 -1
  327. package/types/views/Text.d.ts.map +0 -1
  328. package/types/views/TextAncestorContext.d.ts.map +0 -1
  329. package/types/views/Theme.d.ts.map +0 -1
  330. package/types/views/ThemeContext.d.ts.map +0 -1
  331. package/types/views/ThemeInverse.d.ts.map +0 -1
  332. package/types/views/ThemeManagerContext.d.ts.map +0 -1
  333. 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?.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";
@@ -46,8 +40,7 @@ const useTheme = /* @__PURE__ */ __name(() => {
46
40
  useIsomorphicLayoutEffect(() => {
47
41
  const st = state.current;
48
42
  st.isRendering = false;
49
- const cur = manager.keys.get(st.uuid);
50
- if (!cur || !areEqualSets(st.keys, cur)) {
43
+ if (!isEqual(st.keys, manager.keys.get(st.uuid))) {
51
44
  manager.track(st.uuid, st.keys);
52
45
  }
53
46
  });
@@ -70,15 +63,20 @@ const useTheme = /* @__PURE__ */ __name(() => {
70
63
  const val = activeTheme[key];
71
64
  if (process.env.NODE_ENV === "development") {
72
65
  if (typeof val === "undefined") {
73
- console.warn(`No theme value "${String(key)}" in`, activeTheme, themes);
74
- return null;
75
- }
76
- if (!(val instanceof Variable)) {
77
- console.warn("Non variable!", val);
78
- }
79
- if (val.name !== key) {
80
- 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
+ }
81
78
  }
79
+ return Reflect.get(_, key);
82
80
  }
83
81
  if (state.current.isRendering) {
84
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
+ }