@tamagui/web 1.116.1 → 1.116.2

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 (237) hide show
  1. package/dist/cjs/Tamagui.js +63 -0
  2. package/dist/cjs/_withStableStyle.js +33 -0
  3. package/dist/cjs/config.js +97 -0
  4. package/dist/cjs/constants/accessibilityDirectMap.js +70 -0
  5. package/dist/cjs/constants/constants.js +36 -0
  6. package/dist/cjs/constants/isDevTools.js +28 -0
  7. package/dist/cjs/constants/webToNativeProps.js +22 -0
  8. package/dist/cjs/contexts/ComponentContext.js +32 -0
  9. package/dist/cjs/createComponent.js +670 -0
  10. package/dist/cjs/createFont.js +53 -0
  11. package/dist/cjs/createShorthands.js +23 -0
  12. package/dist/cjs/createTamagui.js +189 -0
  13. package/dist/cjs/createTheme.js +21 -0
  14. package/dist/cjs/createTokens.js +24 -0
  15. package/dist/cjs/createVariable.js +82 -0
  16. package/dist/cjs/createVariables.js +47 -0
  17. package/dist/cjs/defaultComponentState.js +33 -0
  18. package/dist/cjs/helpers/ThemeManager.js +166 -0
  19. package/dist/cjs/helpers/ThemeManagerContext.js +30 -0
  20. package/dist/cjs/helpers/createMediaStyle.js +74 -0
  21. package/dist/cjs/helpers/createShallowSetState.js +44 -0
  22. package/dist/cjs/helpers/createStyledContext.js +53 -0
  23. package/dist/cjs/helpers/defaultOffset.js +21 -0
  24. package/dist/cjs/helpers/expandStyle.js +73 -0
  25. package/dist/cjs/helpers/expandStyles.js +34 -0
  26. package/dist/cjs/helpers/getExpandedShorthands.js +29 -0
  27. package/dist/cjs/helpers/getFontLanguage.js +21 -0
  28. package/dist/cjs/helpers/getGroupPropParts.js +27 -0
  29. package/dist/cjs/helpers/getSplitStyles.js +685 -0
  30. package/dist/cjs/helpers/getStylesAtomic.js +152 -0
  31. package/dist/cjs/helpers/getThemeCSSRules.js +89 -0
  32. package/dist/cjs/helpers/getVariantExtras.js +58 -0
  33. package/dist/cjs/helpers/insertStyleRule.js +231 -0
  34. package/dist/cjs/helpers/isActivePlatform.js +31 -0
  35. package/dist/cjs/helpers/isActiveTheme.js +24 -0
  36. package/dist/cjs/helpers/isObj.js +21 -0
  37. package/dist/cjs/helpers/isTamaguiComponent.js +24 -0
  38. package/dist/cjs/helpers/isTamaguiElement.js +30 -0
  39. package/dist/cjs/helpers/log.js +31 -0
  40. package/dist/cjs/helpers/matchMedia.js +34 -0
  41. package/dist/cjs/helpers/matchMedia.native.js +2 -2
  42. package/dist/cjs/helpers/matchMedia.native.js.map +2 -2
  43. package/dist/cjs/helpers/mergeProps.js +41 -0
  44. package/dist/cjs/helpers/mergeVariants.js +38 -0
  45. package/dist/cjs/helpers/normalizeColor.js +43 -0
  46. package/dist/cjs/helpers/normalizeShadow.js +38 -0
  47. package/dist/cjs/helpers/normalizeStyle.js +36 -0
  48. package/dist/cjs/helpers/normalizeStylePropKeys.js +21 -0
  49. package/dist/cjs/helpers/normalizeValueWithProperty.js +54 -0
  50. package/dist/cjs/helpers/objectIdentityKey.js +38 -0
  51. package/dist/cjs/helpers/propMapper.js +238 -0
  52. package/dist/cjs/helpers/proxyThemeToParents.js +52 -0
  53. package/dist/cjs/helpers/proxyThemeVariables.js +31 -0
  54. package/dist/cjs/helpers/pseudoDescriptors.js +65 -0
  55. package/dist/cjs/helpers/registerCSSVariable.js +29 -0
  56. package/dist/cjs/helpers/setElementProps.js +24 -0
  57. package/dist/cjs/helpers/skipProps.js +68 -0
  58. package/dist/cjs/helpers/sortString.js +21 -0
  59. package/dist/cjs/helpers/subscribeToContextGroup.js +53 -0
  60. package/dist/cjs/helpers/themeable.js +55 -0
  61. package/dist/cjs/helpers/themes.js +33 -0
  62. package/dist/cjs/helpers/timer.js +27 -0
  63. package/dist/cjs/helpers/transformsToString.js +32 -0
  64. package/dist/cjs/helpers/webPropsToSkip.js +21 -0
  65. package/dist/cjs/helpers/wrapStyleTags.js +39 -0
  66. package/dist/cjs/hooks/useComponentState.js +115 -0
  67. package/dist/cjs/hooks/useConfiguration.js +37 -0
  68. package/dist/cjs/hooks/useDisableSSR.js +24 -0
  69. package/dist/cjs/hooks/useIsTouchDevice.js +22 -0
  70. package/dist/cjs/hooks/useMedia.cjs +1 -1
  71. package/dist/cjs/hooks/useMedia.js +207 -0
  72. package/dist/cjs/hooks/useMedia.js.map +6 -0
  73. package/dist/cjs/hooks/useMedia.native.js +1 -1
  74. package/dist/cjs/hooks/useMedia.native.js.map +2 -2
  75. package/dist/cjs/hooks/useProps.js +95 -0
  76. package/dist/cjs/hooks/useTheme.js +263 -0
  77. package/dist/cjs/hooks/useThemeName.js +39 -0
  78. package/dist/cjs/index.js +100 -0
  79. package/dist/cjs/inject-styles.js +28 -0
  80. package/dist/cjs/insertFont.js +65 -0
  81. package/dist/cjs/interfaces/CSSColorNames.js +14 -0
  82. package/dist/cjs/interfaces/GetRef.js +14 -0
  83. package/dist/cjs/interfaces/KeyTypes.js +14 -0
  84. package/dist/cjs/interfaces/RNExclusiveTypes.js +14 -0
  85. package/dist/cjs/interfaces/Role.js +14 -0
  86. package/dist/cjs/interfaces/TamaguiComponentEvents.js +14 -0
  87. package/dist/cjs/interfaces/TamaguiComponentPropsBaseBase.js +14 -0
  88. package/dist/cjs/interfaces/TamaguiComponentState.js +14 -0
  89. package/dist/cjs/interfaces/WebOnlyPressEvents.js +14 -0
  90. package/dist/cjs/setupHooks.js +25 -0
  91. package/dist/cjs/setupReactNative.js +46 -0
  92. package/dist/cjs/styled.js +74 -0
  93. package/dist/cjs/type-utils.js +14 -0
  94. package/dist/cjs/types.js +16 -0
  95. package/dist/cjs/views/Configuration.js +34 -0
  96. package/dist/cjs/views/FontLanguage.js +32 -0
  97. package/dist/cjs/views/FontLanguage.types.js +14 -0
  98. package/dist/cjs/views/Slot.js +59 -0
  99. package/dist/cjs/views/Stack.js +27 -0
  100. package/dist/cjs/views/TamaguiProvider.js +76 -0
  101. package/dist/cjs/views/Text.js +77 -0
  102. package/dist/cjs/views/Theme.js +103 -0
  103. package/dist/cjs/views/ThemeDebug.js +94 -0
  104. package/dist/cjs/views/ThemeProvider.js +45 -0
  105. package/dist/cjs/views/View.js +26 -0
  106. package/dist/esm/helpers/matchMedia.native.js +2 -2
  107. package/dist/esm/helpers/matchMedia.native.js.map +2 -2
  108. package/dist/esm/hooks/useMedia.js +1 -1
  109. package/dist/esm/hooks/useMedia.js.map +1 -1
  110. package/dist/esm/hooks/useMedia.mjs +1 -1
  111. package/dist/esm/hooks/useMedia.mjs.map +1 -1
  112. package/dist/esm/hooks/useMedia.native.js +1 -1
  113. package/dist/esm/hooks/useMedia.native.js.map +2 -2
  114. package/package.json +11 -11
  115. package/src/helpers/matchMedia.native.ts +12 -1
  116. package/src/hooks/useMedia.tsx +1 -0
  117. package/types/helpers/matchMedia.native.d.ts.map +1 -1
  118. package/types/hooks/useMedia.d.ts.map +1 -1
  119. package/dist/cjs/constants/accessibilityDirectMap.native.cjs +0 -34
  120. package/dist/cjs/constants/accessibilityDirectMap.native.cjs.map +0 -6
  121. package/dist/cjs/constants/webToNativeProps.native.cjs +0 -102
  122. package/dist/cjs/constants/webToNativeProps.native.cjs.map +0 -6
  123. package/dist/cjs/helpers/getStylesAtomic.native.cjs +0 -33
  124. package/dist/cjs/helpers/getStylesAtomic.native.cjs.map +0 -6
  125. package/dist/cjs/helpers/getThemeCSSRules.native.cjs +0 -28
  126. package/dist/cjs/helpers/getThemeCSSRules.native.cjs.map +0 -6
  127. package/dist/cjs/helpers/matchMedia.native.cjs +0 -39
  128. package/dist/cjs/helpers/matchMedia.native.cjs.map +0 -6
  129. package/dist/cjs/helpers/normalizeStylePropKeys.native.cjs +0 -37
  130. package/dist/cjs/helpers/normalizeStylePropKeys.native.cjs.map +0 -6
  131. package/dist/cjs/helpers/setElementProps.native.cjs +0 -30
  132. package/dist/cjs/helpers/setElementProps.native.cjs.map +0 -6
  133. package/dist/cjs/helpers/webPropsToSkip.native.cjs +0 -79
  134. package/dist/cjs/helpers/webPropsToSkip.native.cjs.map +0 -6
  135. package/dist/cjs/hooks/useMedia.cjs.map +0 -6
  136. package/dist/cjs/views/FontLanguage.native.cjs +0 -50
  137. package/dist/cjs/views/FontLanguage.native.cjs.map +0 -6
  138. package/dist/cjs/views/ThemeDebug.native.cjs +0 -33
  139. package/dist/cjs/views/ThemeDebug.native.cjs.map +0 -6
  140. /package/dist/cjs/{Tamagui.cjs.map → Tamagui.js.map} +0 -0
  141. /package/dist/cjs/{_withStableStyle.cjs.map → _withStableStyle.js.map} +0 -0
  142. /package/dist/cjs/{config.cjs.map → config.js.map} +0 -0
  143. /package/dist/cjs/constants/{accessibilityDirectMap.cjs.map → accessibilityDirectMap.js.map} +0 -0
  144. /package/dist/cjs/constants/{constants.cjs.map → constants.js.map} +0 -0
  145. /package/dist/cjs/constants/{isDevTools.cjs.map → isDevTools.js.map} +0 -0
  146. /package/dist/cjs/constants/{webToNativeProps.cjs.map → webToNativeProps.js.map} +0 -0
  147. /package/dist/cjs/contexts/{ComponentContext.cjs.map → ComponentContext.js.map} +0 -0
  148. /package/dist/cjs/{createComponent.cjs.map → createComponent.js.map} +0 -0
  149. /package/dist/cjs/{createFont.cjs.map → createFont.js.map} +0 -0
  150. /package/dist/cjs/{createShorthands.cjs.map → createShorthands.js.map} +0 -0
  151. /package/dist/cjs/{createTamagui.cjs.map → createTamagui.js.map} +0 -0
  152. /package/dist/cjs/{createTheme.cjs.map → createTheme.js.map} +0 -0
  153. /package/dist/cjs/{createTokens.cjs.map → createTokens.js.map} +0 -0
  154. /package/dist/cjs/{createVariable.cjs.map → createVariable.js.map} +0 -0
  155. /package/dist/cjs/{createVariables.cjs.map → createVariables.js.map} +0 -0
  156. /package/dist/cjs/{defaultComponentState.cjs.map → defaultComponentState.js.map} +0 -0
  157. /package/dist/cjs/helpers/{ThemeManager.cjs.map → ThemeManager.js.map} +0 -0
  158. /package/dist/cjs/helpers/{ThemeManagerContext.cjs.map → ThemeManagerContext.js.map} +0 -0
  159. /package/dist/cjs/helpers/{createMediaStyle.cjs.map → createMediaStyle.js.map} +0 -0
  160. /package/dist/cjs/helpers/{createShallowSetState.cjs.map → createShallowSetState.js.map} +0 -0
  161. /package/dist/cjs/helpers/{createStyledContext.cjs.map → createStyledContext.js.map} +0 -0
  162. /package/dist/cjs/helpers/{defaultOffset.cjs.map → defaultOffset.js.map} +0 -0
  163. /package/dist/cjs/helpers/{expandStyle.cjs.map → expandStyle.js.map} +0 -0
  164. /package/dist/cjs/helpers/{expandStyles.cjs.map → expandStyles.js.map} +0 -0
  165. /package/dist/cjs/helpers/{getExpandedShorthands.cjs.map → getExpandedShorthands.js.map} +0 -0
  166. /package/dist/cjs/helpers/{getFontLanguage.cjs.map → getFontLanguage.js.map} +0 -0
  167. /package/dist/cjs/helpers/{getGroupPropParts.cjs.map → getGroupPropParts.js.map} +0 -0
  168. /package/dist/cjs/helpers/{getSplitStyles.cjs.map → getSplitStyles.js.map} +0 -0
  169. /package/dist/cjs/helpers/{getStylesAtomic.cjs.map → getStylesAtomic.js.map} +0 -0
  170. /package/dist/cjs/helpers/{getThemeCSSRules.cjs.map → getThemeCSSRules.js.map} +0 -0
  171. /package/dist/cjs/helpers/{getVariantExtras.cjs.map → getVariantExtras.js.map} +0 -0
  172. /package/dist/cjs/helpers/{insertStyleRule.cjs.map → insertStyleRule.js.map} +0 -0
  173. /package/dist/cjs/helpers/{isActivePlatform.cjs.map → isActivePlatform.js.map} +0 -0
  174. /package/dist/cjs/helpers/{isActiveTheme.cjs.map → isActiveTheme.js.map} +0 -0
  175. /package/dist/cjs/helpers/{isObj.cjs.map → isObj.js.map} +0 -0
  176. /package/dist/cjs/helpers/{isTamaguiComponent.cjs.map → isTamaguiComponent.js.map} +0 -0
  177. /package/dist/cjs/helpers/{isTamaguiElement.cjs.map → isTamaguiElement.js.map} +0 -0
  178. /package/dist/cjs/helpers/{log.cjs.map → log.js.map} +0 -0
  179. /package/dist/cjs/helpers/{matchMedia.cjs.map → matchMedia.js.map} +0 -0
  180. /package/dist/cjs/helpers/{mergeProps.cjs.map → mergeProps.js.map} +0 -0
  181. /package/dist/cjs/helpers/{mergeVariants.cjs.map → mergeVariants.js.map} +0 -0
  182. /package/dist/cjs/helpers/{normalizeColor.cjs.map → normalizeColor.js.map} +0 -0
  183. /package/dist/cjs/helpers/{normalizeShadow.cjs.map → normalizeShadow.js.map} +0 -0
  184. /package/dist/cjs/helpers/{normalizeStyle.cjs.map → normalizeStyle.js.map} +0 -0
  185. /package/dist/cjs/helpers/{normalizeStylePropKeys.cjs.map → normalizeStylePropKeys.js.map} +0 -0
  186. /package/dist/cjs/helpers/{normalizeValueWithProperty.cjs.map → normalizeValueWithProperty.js.map} +0 -0
  187. /package/dist/cjs/helpers/{objectIdentityKey.cjs.map → objectIdentityKey.js.map} +0 -0
  188. /package/dist/cjs/helpers/{propMapper.cjs.map → propMapper.js.map} +0 -0
  189. /package/dist/cjs/helpers/{proxyThemeToParents.cjs.map → proxyThemeToParents.js.map} +0 -0
  190. /package/dist/cjs/helpers/{proxyThemeVariables.cjs.map → proxyThemeVariables.js.map} +0 -0
  191. /package/dist/cjs/helpers/{pseudoDescriptors.cjs.map → pseudoDescriptors.js.map} +0 -0
  192. /package/dist/cjs/helpers/{registerCSSVariable.cjs.map → registerCSSVariable.js.map} +0 -0
  193. /package/dist/cjs/helpers/{setElementProps.cjs.map → setElementProps.js.map} +0 -0
  194. /package/dist/cjs/helpers/{skipProps.cjs.map → skipProps.js.map} +0 -0
  195. /package/dist/cjs/helpers/{sortString.cjs.map → sortString.js.map} +0 -0
  196. /package/dist/cjs/helpers/{subscribeToContextGroup.cjs.map → subscribeToContextGroup.js.map} +0 -0
  197. /package/dist/cjs/helpers/{themeable.cjs.map → themeable.js.map} +0 -0
  198. /package/dist/cjs/helpers/{themes.cjs.map → themes.js.map} +0 -0
  199. /package/dist/cjs/helpers/{timer.cjs.map → timer.js.map} +0 -0
  200. /package/dist/cjs/helpers/{transformsToString.cjs.map → transformsToString.js.map} +0 -0
  201. /package/dist/cjs/helpers/{webPropsToSkip.cjs.map → webPropsToSkip.js.map} +0 -0
  202. /package/dist/cjs/helpers/{wrapStyleTags.cjs.map → wrapStyleTags.js.map} +0 -0
  203. /package/dist/cjs/hooks/{useComponentState.cjs.map → useComponentState.js.map} +0 -0
  204. /package/dist/cjs/hooks/{useConfiguration.cjs.map → useConfiguration.js.map} +0 -0
  205. /package/dist/cjs/hooks/{useDisableSSR.cjs.map → useDisableSSR.js.map} +0 -0
  206. /package/dist/cjs/hooks/{useIsTouchDevice.cjs.map → useIsTouchDevice.js.map} +0 -0
  207. /package/dist/cjs/hooks/{useProps.cjs.map → useProps.js.map} +0 -0
  208. /package/dist/cjs/hooks/{useTheme.cjs.map → useTheme.js.map} +0 -0
  209. /package/dist/cjs/hooks/{useThemeName.cjs.map → useThemeName.js.map} +0 -0
  210. /package/dist/cjs/{index.cjs.map → index.js.map} +0 -0
  211. /package/dist/cjs/{inject-styles.cjs.map → inject-styles.js.map} +0 -0
  212. /package/dist/cjs/{insertFont.cjs.map → insertFont.js.map} +0 -0
  213. /package/dist/cjs/interfaces/{CSSColorNames.cjs.map → CSSColorNames.js.map} +0 -0
  214. /package/dist/cjs/interfaces/{GetRef.cjs.map → GetRef.js.map} +0 -0
  215. /package/dist/cjs/interfaces/{KeyTypes.cjs.map → KeyTypes.js.map} +0 -0
  216. /package/dist/cjs/interfaces/{RNExclusiveTypes.cjs.map → RNExclusiveTypes.js.map} +0 -0
  217. /package/dist/cjs/interfaces/{Role.cjs.map → Role.js.map} +0 -0
  218. /package/dist/cjs/interfaces/{TamaguiComponentEvents.cjs.map → TamaguiComponentEvents.js.map} +0 -0
  219. /package/dist/cjs/interfaces/{TamaguiComponentPropsBaseBase.cjs.map → TamaguiComponentPropsBaseBase.js.map} +0 -0
  220. /package/dist/cjs/interfaces/{TamaguiComponentState.cjs.map → TamaguiComponentState.js.map} +0 -0
  221. /package/dist/cjs/interfaces/{WebOnlyPressEvents.cjs.map → WebOnlyPressEvents.js.map} +0 -0
  222. /package/dist/cjs/{setupHooks.cjs.map → setupHooks.js.map} +0 -0
  223. /package/dist/cjs/{setupReactNative.cjs.map → setupReactNative.js.map} +0 -0
  224. /package/dist/cjs/{styled.cjs.map → styled.js.map} +0 -0
  225. /package/dist/cjs/{type-utils.cjs.map → type-utils.js.map} +0 -0
  226. /package/dist/cjs/{types.cjs.map → types.js.map} +0 -0
  227. /package/dist/cjs/views/{Configuration.cjs.map → Configuration.js.map} +0 -0
  228. /package/dist/cjs/views/{FontLanguage.cjs.map → FontLanguage.js.map} +0 -0
  229. /package/dist/cjs/views/{FontLanguage.types.cjs.map → FontLanguage.types.js.map} +0 -0
  230. /package/dist/cjs/views/{Slot.cjs.map → Slot.js.map} +0 -0
  231. /package/dist/cjs/views/{Stack.cjs.map → Stack.js.map} +0 -0
  232. /package/dist/cjs/views/{TamaguiProvider.cjs.map → TamaguiProvider.js.map} +0 -0
  233. /package/dist/cjs/views/{Text.cjs.map → Text.js.map} +0 -0
  234. /package/dist/cjs/views/{Theme.cjs.map → Theme.js.map} +0 -0
  235. /package/dist/cjs/views/{ThemeDebug.cjs.map → ThemeDebug.js.map} +0 -0
  236. /package/dist/cjs/views/{ThemeProvider.cjs.map → ThemeProvider.js.map} +0 -0
  237. /package/dist/cjs/views/{View.cjs.map → View.js.map} +0 -0
@@ -0,0 +1,670 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: !0 });
9
+ }, __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from == "object" || typeof from == "function")
11
+ for (let key of __getOwnPropNames(from))
12
+ !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
13
+ return to;
14
+ };
15
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
16
+ // If the importer is in node compatibility mode or this is not an ESM
17
+ // file that has been converted to a CommonJS file using a Babel-
18
+ // compatible transform (i.e. "__esModule" has not been set), then set
19
+ // "default" to the CommonJS "module.exports" for node compatibility.
20
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target,
21
+ mod
22
+ )), __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
23
+ var createComponent_exports = {};
24
+ __export(createComponent_exports, {
25
+ Spacer: () => Spacer,
26
+ Unspaced: () => Unspaced,
27
+ componentSetStates: () => componentSetStates,
28
+ createComponent: () => createComponent,
29
+ spacedChildren: () => spacedChildren
30
+ });
31
+ module.exports = __toCommonJS(createComponent_exports);
32
+ var import_compose_refs = require("@tamagui/compose-refs"), import_constants = require("@tamagui/constants"), import_helpers = require("@tamagui/helpers"), import_react = __toESM(require("react")), import_config = require("./config"), import_constants2 = require("./constants/constants"), import_isDevTools = require("./constants/isDevTools"), import_ComponentContext = require("./contexts/ComponentContext"), import_createVariable = require("./createVariable"), import_defaultComponentState = require("./defaultComponentState"), import_getSplitStyles = require("./helpers/getSplitStyles"), import_log = require("./helpers/log"), import_mergeProps = require("./helpers/mergeProps"), import_setElementProps = require("./helpers/setElementProps"), import_subscribeToContextGroup = require("./helpers/subscribeToContextGroup"), import_themeable = require("./helpers/themeable"), import_wrapStyleTags = require("./helpers/wrapStyleTags"), import_useComponentState = require("./hooks/useComponentState"), import_useMedia = require("./hooks/useMedia"), import_useTheme = require("./hooks/useTheme"), import_setupHooks = require("./setupHooks"), import_Slot = require("./views/Slot"), import_Theme = require("./views/Theme"), import_ThemeDebug = require("./views/ThemeDebug"), import_jsx_runtime = require("react/jsx-runtime");
33
+ let tamaguiConfig, time, debugKeyListeners, startVisualizer;
34
+ const componentSetStates = /* @__PURE__ */ new Set();
35
+ if (typeof document < "u") {
36
+ const cancelTouches = () => {
37
+ componentSetStates.forEach(
38
+ (setState) => setState((prev) => prev.press || prev.pressIn ? {
39
+ ...prev,
40
+ press: !1,
41
+ pressIn: !1
42
+ } : prev)
43
+ ), componentSetStates.clear();
44
+ };
45
+ addEventListener("mouseup", cancelTouches), addEventListener("touchend", cancelTouches), addEventListener("touchcancel", cancelTouches), process.env.NODE_ENV === "development" && (startVisualizer = () => {
46
+ const devVisualizerConfig = import_config.devConfig?.visualizer;
47
+ if (devVisualizerConfig) {
48
+ debugKeyListeners = /* @__PURE__ */ new Set();
49
+ let tm, isShowing = !1;
50
+ const options = {
51
+ key: "Alt",
52
+ delay: 800,
53
+ ...typeof devVisualizerConfig == "object" ? devVisualizerConfig : {}
54
+ };
55
+ document.addEventListener("blur", () => {
56
+ clearTimeout(tm);
57
+ }), document.addEventListener("keydown", ({ key, defaultPrevented }) => {
58
+ defaultPrevented || (clearTimeout(tm), key === options.key && (tm = setTimeout(() => {
59
+ isShowing = !0, debugKeyListeners?.forEach((l) => l(!0));
60
+ }, options.delay)));
61
+ }), document.addEventListener("keyup", ({ key, defaultPrevented }) => {
62
+ defaultPrevented || key === options.key && (clearTimeout(tm), isShowing && debugKeyListeners?.forEach((l) => l(!1)));
63
+ });
64
+ }
65
+ });
66
+ }
67
+ let BaseText, BaseView;
68
+ const lastInteractionWasKeyboard = { value: !1 };
69
+ import_constants.isWeb && globalThis.document && (document.addEventListener("keydown", () => {
70
+ lastInteractionWasKeyboard.value = !0;
71
+ }), document.addEventListener("mousedown", () => {
72
+ lastInteractionWasKeyboard.value = !1;
73
+ }), document.addEventListener("mousemove", () => {
74
+ lastInteractionWasKeyboard.value = !1;
75
+ }));
76
+ function createComponent(staticConfig) {
77
+ const { componentName } = staticConfig;
78
+ let config = null, defaultProps = staticConfig.defaultProps;
79
+ (0, import_config.onConfiguredOnce)((conf) => {
80
+ if (config = conf, componentName) {
81
+ const defaultForComponent = conf.defaultProps?.[componentName];
82
+ defaultForComponent && (defaultProps = { ...defaultForComponent, ...defaultProps });
83
+ }
84
+ });
85
+ const { Component, isText, isZStack, isHOC } = staticConfig;
86
+ process.env.NODE_ENV === "development" && staticConfig.defaultProps?.debug && process.env.IS_STATIC !== "is_static" && (0, import_log.log)(`\u{1F41B} [${componentName || "Component"}]`, {
87
+ staticConfig,
88
+ defaultProps,
89
+ defaultPropsKeyOrder: defaultProps ? Object.keys(defaultProps) : []
90
+ });
91
+ const component = import_react.default.forwardRef((propsIn, forwardedRef) => {
92
+ const internalID = process.env.NODE_ENV === "development" ? import_react.default.useId() : "";
93
+ process.env.NODE_ENV === "development" && startVisualizer && (startVisualizer(), startVisualizer = void 0), process.env.NODE_ENV === "test" && propsIn["data-test-renders"] && (propsIn["data-test-renders"].current ??= 0, propsIn["data-test-renders"].current += 1);
94
+ const componentContext = import_react.default.useContext(import_ComponentContext.ComponentContext);
95
+ let styledContextProps, overriddenContextProps, contextValue;
96
+ const { context, isReactNative } = staticConfig;
97
+ if (context && (contextValue = import_react.default.useContext(context), contextValue)) {
98
+ process.env.NODE_ENV === "development" && (propsIn.debug || defaultProps?.debug) && (0, import_log.log)(" \u{1F447} contextValue", contextValue);
99
+ for (const key in context.props) {
100
+ const propVal = propsIn[key];
101
+ if (propVal === void 0) {
102
+ const val = contextValue?.[key];
103
+ val !== void 0 && (styledContextProps ||= {}, styledContextProps[key] = val);
104
+ }
105
+ const finalVal = propVal ?? defaultProps?.[key];
106
+ finalVal !== void 0 && (overriddenContextProps ||= {}, overriddenContextProps[key] = finalVal);
107
+ }
108
+ }
109
+ const curDefaultProps = styledContextProps ? { ...defaultProps, ...styledContextProps } : defaultProps;
110
+ let props = propsIn;
111
+ curDefaultProps && (props = (0, import_mergeProps.mergeProps)(curDefaultProps, propsIn));
112
+ const debugProp = props.debug, componentName2 = props.componentName || staticConfig.componentName;
113
+ process.env.NODE_ENV === "development" && import_constants.isClient && import_react.default.useEffect(() => {
114
+ let overlay = null;
115
+ const debugVisualizerHandler = (show = !1) => {
116
+ const node = curStateRef.host;
117
+ if (node)
118
+ if (show) {
119
+ overlay = document.createElement("span"), overlay.style.inset = "0px", overlay.style.zIndex = "1000000", overlay.style.position = "absolute", overlay.style.borderColor = "red", overlay.style.borderWidth = "1px", overlay.style.borderStyle = "dotted";
120
+ const dataAt = node.getAttribute("data-at") || "", dataIn = node.getAttribute("data-in") || "", tooltip = document.createElement("span");
121
+ tooltip.style.position = "absolute", tooltip.style.top = "0px", tooltip.style.left = "0px", tooltip.style.padding = "3px", tooltip.style.background = "rgba(0,0,0,0.75)", tooltip.style.color = "rgba(255,255,255,1)", tooltip.style.fontSize = "12px", tooltip.style.lineHeight = "12px", tooltip.style.fontFamily = "monospace", tooltip.style.webkitFontSmoothing = "none", tooltip.innerText = `${componentName2 || ""} ${dataAt} ${dataIn}`.trim(), overlay.appendChild(tooltip), node.appendChild(overlay);
122
+ } else
123
+ overlay && node.removeChild(overlay);
124
+ };
125
+ return debugKeyListeners ||= /* @__PURE__ */ new Set(), debugKeyListeners.add(debugVisualizerHandler), () => {
126
+ debugKeyListeners?.delete(debugVisualizerHandler);
127
+ };
128
+ }, [componentName2]), !process.env.TAMAGUI_IS_CORE_NODE && process.env.NODE_ENV === "development" && debugProp === "profile" && !time && (time = require("@tamagui/timer").timer().start()), process.env.NODE_ENV === "development" && time && time`start (ignore)`, process.env.NODE_ENV === "development" && time && time`did-finish-ssr`, process.env.NODE_ENV === "development" && time && time`stateref`;
129
+ const animationDriver = componentContext.animationDriver, useAnimations = animationDriver?.useAnimations, {
130
+ curStateRef,
131
+ disabled,
132
+ groupName,
133
+ hasAnimationProp,
134
+ hasEnterStyle,
135
+ isAnimated,
136
+ isExiting,
137
+ isHydrated,
138
+ presence,
139
+ presenceState,
140
+ setState,
141
+ setStateShallow,
142
+ noClass,
143
+ state,
144
+ stateRef,
145
+ supportsCSSVars,
146
+ willBeAnimated,
147
+ willBeAnimatedClient
148
+ } = (0, import_useComponentState.useComponentState)(props, componentContext, staticConfig, config);
149
+ process.env.NODE_ENV === "development" && time && time`use-state`;
150
+ const hasTextAncestor = !!(import_constants.isWeb && isText && componentContext.inText);
151
+ process.env.NODE_ENV === "development" && time && time`use-context`;
152
+ const isTaggable = !Component || typeof Component == "string", tagProp = props.tag, element = import_constants.isWeb && isTaggable && tagProp || Component;
153
+ let elementType = isText ? BaseText || element || "span" : BaseView || element || (hasTextAncestor ? "span" : "div");
154
+ animationDriver && isAnimated && (elementType = animationDriver[isText ? "Text" : "View"] || elementType);
155
+ const disableTheme = props["data-disable-theme"] || isHOC;
156
+ process.env.NODE_ENV === "development" && time && time`theme-props`, props.themeShallow && (curStateRef.themeShallow = !0);
157
+ const themeStateProps = {
158
+ componentName: componentName2,
159
+ disable: disableTheme,
160
+ shallow: curStateRef.themeShallow,
161
+ debug: debugProp
162
+ };
163
+ if ("themeInverse" in props && (themeStateProps.inverse = props.themeInverse), "theme" in props && (themeStateProps.name = props.theme), typeof curStateRef.isListeningToTheme == "boolean" && (themeStateProps.shouldUpdate = () => stateRef.current.isListeningToTheme), process.env.NODE_ENV === "development" && debugProp && debugProp !== "profile") {
164
+ const name = `${componentName2 || Component?.displayName || Component?.name || "[Unnamed Component]"}`, type = (hasEnterStyle ? "(hasEnter)" : " ") + (isAnimated ? "(animated)" : " ") + (isReactNative ? "(rnw)" : " ") + (noClass ? "(noClass)" : " ") + (state.press || state.pressIn ? "(PRESSED)" : " ") + (state.hover ? "(HOVERED)" : " ") + (state.focus ? "(FOCUSED)" : " ") + (presenceState?.isPresent === !1 ? "(EXIT)" : ""), dataIs = propsIn["data-is"] || "", banner = `${internalID} ${name}${dataIs ? ` ${dataIs}` : ""} ${type}`;
165
+ if (console.info(
166
+ `%c ${banner} (hydrated: ${isHydrated}) (unmounted: ${state.unmounted})`,
167
+ "background: green; color: white;"
168
+ ), import_constants.isServer)
169
+ (0, import_log.log)({ noClass, isAnimated, isWeb: import_constants.isWeb, supportsCSSVars });
170
+ else {
171
+ console.groupEnd();
172
+ const ch = propsIn.children;
173
+ let childLog = typeof ch == "string" ? ch.length > 4 ? ch.slice(0, 4) + "..." : ch : "";
174
+ childLog.length && (childLog = `(children: ${childLog})`), console.groupCollapsed(`${childLog} Props:`), (0, import_log.log)("props in:", propsIn), (0, import_log.log)("final props:", props), (0, import_log.log)({ state, staticConfig, elementType, themeStateProps }), (0, import_log.log)({ contextProps: styledContextProps, overriddenContextProps }), (0, import_log.log)({ presence, isAnimated, isHOC, hasAnimationProp, useAnimations }), console.groupEnd();
175
+ }
176
+ }
177
+ process.env.NODE_ENV === "development" && time && time`pre-theme-media`;
178
+ const [themeState, theme] = (0, import_useTheme.useThemeWithState)(themeStateProps);
179
+ elementType = Component || elementType;
180
+ const isStringElement = typeof elementType == "string";
181
+ process.env.NODE_ENV === "development" && time && time`theme`;
182
+ const mediaState = (0, import_useMedia.useMedia)(componentContext, debugProp);
183
+ (0, import_createVariable.setDidGetVariableValue)(!1), process.env.NODE_ENV === "development" && time && time`media`;
184
+ const resolveValues = (
185
+ // if HOC + mounted + has animation prop, resolve as value so it passes non-variable to child
186
+ isAnimated && !supportsCSSVars || isHOC && state.unmounted == !1 && hasAnimationProp ? "value" : "auto"
187
+ ), styleProps = {
188
+ mediaState,
189
+ noClass,
190
+ resolveValues,
191
+ isExiting,
192
+ isAnimated,
193
+ willBeAnimated,
194
+ styledContextProps
195
+ }, splitStyles = (0, import_getSplitStyles.useSplitStyles)(
196
+ props,
197
+ staticConfig,
198
+ theme,
199
+ themeState?.state?.name || "",
200
+ state,
201
+ styleProps,
202
+ null,
203
+ componentContext,
204
+ elementType,
205
+ debugProp
206
+ );
207
+ props.group && props.untilMeasured === "hide" && !curStateRef.hasMeasured && (splitStyles.style ||= {}, splitStyles.style.opacity = 0), process.env.NODE_ENV === "development" && time && time`split-styles`, curStateRef.isListeningToTheme = splitStyles.dynamicThemeAccess;
208
+ const hasRuntimeMediaKeys = splitStyles.hasMedia && splitStyles.hasMedia !== !0, shouldListenForMedia = (0, import_createVariable.didGetVariableValue)() || hasRuntimeMediaKeys || noClass && splitStyles.hasMedia === !0, mediaListeningKeys = hasRuntimeMediaKeys ? splitStyles.hasMedia : null;
209
+ process.env.NODE_ENV === "development" && debugProp === "verbose" && console.info("useMedia() createComponent", shouldListenForMedia, mediaListeningKeys), (0, import_useMedia.setMediaShouldUpdate)(stateRef, shouldListenForMedia, mediaListeningKeys);
210
+ const {
211
+ viewProps: viewPropsIn,
212
+ pseudos,
213
+ style: splitStylesStyle,
214
+ classNames,
215
+ space
216
+ } = splitStyles, propsWithAnimation = props, {
217
+ asChild,
218
+ children,
219
+ themeShallow,
220
+ spaceDirection: _spaceDirection,
221
+ onPress,
222
+ onLongPress,
223
+ onPressIn,
224
+ onPressOut,
225
+ onHoverIn,
226
+ onHoverOut,
227
+ onMouseUp,
228
+ onMouseDown,
229
+ onMouseEnter,
230
+ onMouseLeave,
231
+ onFocus,
232
+ onBlur,
233
+ separator,
234
+ // ignore from here on out
235
+ forceStyle: _forceStyle,
236
+ // @ts-ignore for next/link compat etc
237
+ onClick,
238
+ theme: _themeProp,
239
+ ...nonTamaguiProps
240
+ } = viewPropsIn;
241
+ let viewProps = nonTamaguiProps;
242
+ !isTaggable && props.forceStyle && (viewProps.forceStyle = props.forceStyle), isHOC && _themeProp && (viewProps.theme = _themeProp), tagProp && elementType.acceptTagProp && (viewProps.tag = tagProp);
243
+ let animationStyles;
244
+ if (
245
+ // if it supports css vars we run it on server too to get matching initial style
246
+ (supportsCSSVars ? willBeAnimatedClient : willBeAnimated) && useAnimations && !isHOC
247
+ ) {
248
+ const animations = useAnimations({
249
+ props: propsWithAnimation,
250
+ // if hydrating, send empty style
251
+ style: splitStylesStyle || {},
252
+ presence,
253
+ componentState: state,
254
+ styleProps,
255
+ theme: themeState.state?.theme,
256
+ pseudos: pseudos || null,
257
+ staticConfig,
258
+ stateRef
259
+ });
260
+ (isAnimated || supportsCSSVars) && animations && (animationStyles = animations.style, viewProps.style = animationStyles, animations.className && (viewProps.className = `${state.unmounted === "should-enter" ? "t_unmounted " : ""}${viewProps.className || ""} ${animations.className}`)), process.env.NODE_ENV === "development" && time && time`animations`;
261
+ }
262
+ process.env.NODE_ENV === "development" && props.untilMeasured && !props.group && console.warn(
263
+ `You set the untilMeasured prop without setting group. This doesn't work, be sure to set untilMeasured on the parent that sets group, not the children that use the $group- prop.
264
+
265
+ If you meant to do this, you can disable this warning - either change untilMeasured and group at the same time, or do group={conditional ? 'name' : undefined}`
266
+ ), process.env.NODE_ENV === "development" && time && time`destructure`, groupName && (nonTamaguiProps.onLayout = (0, import_helpers.composeEventHandlers)(
267
+ nonTamaguiProps.onLayout,
268
+ (e) => {
269
+ stateRef.current.group.emit(groupName, {
270
+ layout: e.nativeEvent.layout
271
+ }), !stateRef.current.hasMeasured && props.untilMeasured === "hide" && setState((prev) => ({ ...prev })), stateRef.current.hasMeasured = !0;
272
+ }
273
+ )), viewProps = import_setupHooks.hooks.usePropsTransform?.(
274
+ elementType,
275
+ nonTamaguiProps,
276
+ stateRef,
277
+ curStateRef.willHydrate
278
+ ) || nonTamaguiProps, curStateRef.composedRef || (curStateRef.composedRef = (0, import_compose_refs.composeRefs)(
279
+ (x) => stateRef.current.host = x,
280
+ forwardedRef,
281
+ import_setElementProps.setElementProps
282
+ )), viewProps.ref = curStateRef.composedRef, process.env.NODE_ENV === "development" && !isReactNative && !isText && import_constants.isWeb && !isHOC && import_react.default.Children.toArray(props.children).forEach((item) => {
283
+ typeof item == "string" && item !== `
284
+ ` && console.error(
285
+ `Unexpected text node: ${item}. A text node cannot be a child of a <View>.`
286
+ );
287
+ }), process.env.NODE_ENV === "development" && time && time`events-hooks`;
288
+ const { pseudoGroups, mediaGroups } = splitStyles, unPress = () => setStateShallow({ press: !1, pressIn: !1 });
289
+ process.env.NODE_ENV === "development" && import_constants.isWeb && (0, import_constants.useIsomorphicLayoutEffect)(() => {
290
+ if (debugProp === "verbose") {
291
+ const computed = function(style) {
292
+ const styleObject = {};
293
+ for (let i = 0; i < style.length; i++) {
294
+ let prop = style[i];
295
+ styleObject[prop] = style.getPropertyValue(prop);
296
+ }
297
+ return styleObject;
298
+ }(
299
+ getComputedStyle(stateRef.current.host)
300
+ );
301
+ console.groupCollapsed(`Rendered > (opacity: ${computed.opacity})`), console.warn(stateRef.current.host), console.warn(computed), console.groupEnd();
302
+ }
303
+ }), import_react.default.useEffect(() => {
304
+ if (disabled)
305
+ return;
306
+ let tm;
307
+ if (state.unmounted === !0 && hasEnterStyle) {
308
+ setStateShallow({ unmounted: "should-enter" });
309
+ return;
310
+ }
311
+ if (state.unmounted)
312
+ return tm = setTimeout(() => {
313
+ setStateShallow({ unmounted: !1 });
314
+ }), () => clearTimeout(tm);
315
+ const dispose = (0, import_subscribeToContextGroup.subscribeToContextGroup)({
316
+ disabled,
317
+ componentContext,
318
+ setStateShallow,
319
+ state,
320
+ mediaGroups,
321
+ pseudoGroups
322
+ });
323
+ return () => {
324
+ clearTimeout(tm), dispose?.(), componentSetStates.delete(setState);
325
+ };
326
+ }, [
327
+ state.unmounted,
328
+ disabled,
329
+ pseudoGroups ? Object.keys([...pseudoGroups]).join("") : 0,
330
+ mediaGroups ? Object.keys([...mediaGroups]).join("") : 0
331
+ ]);
332
+ const runtimePressStyle = !disabled && noClass && pseudos?.pressStyle, runtimeFocusStyle = !disabled && noClass && pseudos?.focusStyle, runtimeFocusVisibleStyle = !disabled && noClass && pseudos?.focusVisibleStyle, attachFocus = !!(runtimePressStyle || runtimeFocusStyle || runtimeFocusVisibleStyle || onFocus || onBlur), attachPress = !!(groupName || runtimePressStyle || onPress || onPressOut || onPressIn || onMouseDown || onMouseUp || onLongPress || onClick || pseudos?.focusVisibleStyle), runtimeHoverStyle = !disabled && noClass && pseudos?.hoverStyle, needsHoverState = !!(groupName || runtimeHoverStyle || onHoverIn || onHoverOut), attachHover = import_constants.isWeb && !!(groupName || needsHoverState || onMouseEnter || onMouseLeave), shouldAttach = !disabled && !props.asChild && !!(attachFocus || attachPress || attachHover || runtimePressStyle || runtimeHoverStyle || runtimeFocusStyle), needsPressState = !!(groupName || runtimePressStyle);
333
+ process.env.NODE_ENV === "development" && time && time`events-setup`, process.env.NODE_ENV === "development" && debugProp === "verbose" && (0, import_log.log)("\u{1FAA9} events()", {
334
+ runtimeFocusStyle,
335
+ runtimePressStyle,
336
+ runtimeHoverStyle,
337
+ runtimeFocusVisibleStyle,
338
+ attachPress,
339
+ attachFocus,
340
+ attachHover,
341
+ shouldAttach,
342
+ needsHoverState
343
+ });
344
+ const events = shouldAttach ? {
345
+ onPressOut: attachPress ? (e) => {
346
+ unPress(), onPressOut?.(e), onMouseUp?.(e);
347
+ } : void 0,
348
+ ...(attachHover || attachPress) && {
349
+ onMouseEnter: (e) => {
350
+ const next = {};
351
+ needsHoverState && (next.hover = !0), needsPressState && state.pressIn && (next.press = !0), setStateShallow(next), onHoverIn?.(e), onMouseEnter?.(e);
352
+ },
353
+ onMouseLeave: (e) => {
354
+ const next = {};
355
+ needsHoverState && (next.hover = !1), needsPressState && state.pressIn && (next.press = !1, next.pressIn = !1), setStateShallow(next), onHoverOut?.(e), onMouseLeave?.(e);
356
+ }
357
+ },
358
+ onPressIn: attachPress ? (e) => {
359
+ (runtimePressStyle || groupName) && setStateShallow({
360
+ press: !0,
361
+ pressIn: !0
362
+ }), onPressIn?.(e), onMouseDown?.(e), import_constants.isWeb && componentSetStates.add(setState);
363
+ } : void 0,
364
+ onPress: attachPress ? (e) => {
365
+ unPress(), import_constants.isWeb && onClick?.(e), onPress?.(e), onLongPress?.(e);
366
+ } : void 0,
367
+ ...attachFocus && {
368
+ onFocus: (e) => {
369
+ pseudos?.focusVisibleStyle ? setTimeout(() => {
370
+ setStateShallow({
371
+ focus: !0,
372
+ focusVisible: !!lastInteractionWasKeyboard.value
373
+ });
374
+ }, 0) : setStateShallow({
375
+ focus: !0,
376
+ focusVisible: !1
377
+ }), onFocus?.(e);
378
+ },
379
+ onBlur: (e) => {
380
+ setStateShallow({
381
+ focus: !1,
382
+ focusVisible: !1
383
+ }), onBlur?.(e);
384
+ }
385
+ }
386
+ } : null;
387
+ events && !isReactNative && Object.assign(viewProps, getWebEvents(events)), process.env.NODE_ENV === "development" && time && time`events`, process.env.NODE_ENV === "development" && debugProp === "verbose" && (0, import_log.log)("events", { events, attachHover, attachPress }), import_setupHooks.hooks.useEvents?.(viewProps, events, splitStyles, setStateShallow, staticConfig);
388
+ const direction = props.spaceDirection || "both";
389
+ process.env.NODE_ENV === "development" && time && time`hooks`;
390
+ let content = !children || asChild ? children : spacedChildren({
391
+ separator,
392
+ children,
393
+ space,
394
+ direction,
395
+ isZStack,
396
+ debug: debugProp
397
+ });
398
+ if (asChild) {
399
+ elementType = import_Slot.Slot;
400
+ {
401
+ const passEvents = getWebEvents(
402
+ {
403
+ onPress,
404
+ onLongPress,
405
+ onPressIn,
406
+ onPressOut,
407
+ onMouseUp,
408
+ onMouseDown,
409
+ onMouseEnter,
410
+ onMouseLeave
411
+ },
412
+ asChild === "web" || asChild === "except-style-web"
413
+ );
414
+ Object.assign(viewProps, passEvents);
415
+ }
416
+ }
417
+ process.env.NODE_ENV === "development" && time && time`spaced-as-child`;
418
+ let useChildrenResult;
419
+ import_setupHooks.hooks.useChildren && (useChildrenResult = import_setupHooks.hooks.useChildren(
420
+ elementType,
421
+ content,
422
+ viewProps,
423
+ events,
424
+ staticConfig
425
+ )), useChildrenResult ? content = useChildrenResult : content = import_react.default.createElement(elementType, viewProps, content);
426
+ const ResetPresence = config?.animations?.ResetPresence;
427
+ ResetPresence && willBeAnimated && (hasEnterStyle || presenceState) && content && typeof content != "string" && (content = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ResetPresence, { children: content })), process.env.NODE_ENV === "development" && time && time`create-element`;
428
+ const groupState = curStateRef.group, subGroupContext = import_react.default.useMemo(() => {
429
+ if (!(!groupState || !groupName))
430
+ return groupState.listeners.clear(), {
431
+ ...componentContext.groups,
432
+ // change reference so as we mutate it doesn't affect siblings etc
433
+ state: {
434
+ ...componentContext.groups.state,
435
+ [groupName]: {
436
+ pseudo: import_defaultComponentState.defaultComponentStateMounted,
437
+ // capture just initial width and height if they exist
438
+ // will have top, left, width, height (not x, y)
439
+ layout: {
440
+ width: fromPx(splitStyles.style?.width),
441
+ height: fromPx(splitStyles.style?.height)
442
+ }
443
+ }
444
+ },
445
+ emit: groupState.emit,
446
+ subscribe: groupState.subscribe
447
+ };
448
+ }, [groupName]);
449
+ if (groupName && subGroupContext && (content = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ComponentContext.ComponentContext.Provider, { ...componentContext, groups: subGroupContext, children: content })), process.env.NODE_ENV === "development" && time && time`group-context`, content = disableTheme ? content : (0, import_Theme.getThemedChildren)(themeState, content, themeStateProps, !1, stateRef), process.env.NODE_ENV === "development" && time && time`themed-children`, process.env.NODE_ENV === "development" && props.debug === "visualize" && (content = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ThemeDebug.ThemeDebug, { themeState, themeProps: props, children: content })), isReactNative && !asChild && (content = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
450
+ "span",
451
+ {
452
+ className: "_dsp_contents",
453
+ ...isHydrated && events && getWebEvents(events),
454
+ children: content
455
+ }
456
+ )), staticConfig.context) {
457
+ const contextProps = staticConfig.context.props;
458
+ for (const key in contextProps)
459
+ (viewProps.style && key in viewProps.style || key in viewProps) && (overriddenContextProps ||= {}, overriddenContextProps[key] = viewProps.style?.[key] ?? viewProps[key]);
460
+ }
461
+ if (overriddenContextProps) {
462
+ const Provider = staticConfig.context.Provider;
463
+ content = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Provider, { ...contextValue, ...overriddenContextProps, children: content });
464
+ }
465
+ const { rulesToInsert } = splitStyles;
466
+ if (process.env.TAMAGUI_REACT_19 && (content = (0, import_wrapStyleTags.wrapStyleTags)(Object.values(rulesToInsert), content)), process.env.NODE_ENV === "development" && debugProp && debugProp !== "profile") {
467
+ const title = `render <${typeof elementType == "string" ? elementType : "Component"} /> (${internalID}) with props`;
468
+ if (import_constants.isWeb) {
469
+ console.groupCollapsed(title);
470
+ try {
471
+ (0, import_log.log)("viewProps", viewProps), (0, import_log.log)("children", content), typeof window < "u" && (0, import_log.log)({
472
+ propsIn,
473
+ props,
474
+ animationStyles,
475
+ classNames,
476
+ content,
477
+ defaultProps,
478
+ elementType,
479
+ events,
480
+ isAnimated,
481
+ hasRuntimeMediaKeys,
482
+ isStringElement,
483
+ mediaListeningKeys,
484
+ pseudos,
485
+ shouldAttach,
486
+ noClass,
487
+ shouldListenForMedia,
488
+ splitStyles,
489
+ splitStylesStyle,
490
+ state,
491
+ stateRef,
492
+ staticConfig,
493
+ styleProps,
494
+ tamaguiConfig,
495
+ themeState,
496
+ viewProps,
497
+ willBeAnimated
498
+ });
499
+ } catch {
500
+ } finally {
501
+ console.groupEnd();
502
+ }
503
+ } else {
504
+ (0, import_log.log)(title), (0, import_log.log)("state: ", state), import_isDevTools.isDevTools && (0, import_log.log)("viewProps", viewProps), (0, import_log.log)("final styles:");
505
+ for (const key in splitStylesStyle)
506
+ (0, import_log.log)(key, splitStylesStyle[key]);
507
+ }
508
+ if (debugProp === "break")
509
+ debugger;
510
+ }
511
+ return process.env.NODE_ENV === "development" && time && (time`rest`, globalThis.willPrint || (globalThis.willPrint = !0, setTimeout(() => {
512
+ delete globalThis.willPrint, time.print(), time = null;
513
+ }, 50))), content;
514
+ });
515
+ staticConfig.componentName && (component.displayName = staticConfig.componentName);
516
+ let res = component;
517
+ (process.env.TAMAGUI_FORCE_MEMO || staticConfig.memo) && (res = import_react.default.memo(res)), res.staticConfig = staticConfig;
518
+ function extendStyledConfig(extended) {
519
+ return {
520
+ ...staticConfig,
521
+ ...extended,
522
+ neverFlatten: !0,
523
+ isHOC: !0,
524
+ isStyledHOC: !1
525
+ };
526
+ }
527
+ function extractable(Component2, extended) {
528
+ return Component2.staticConfig = extendStyledConfig(extended), Component2.styleable = styleable, Component2;
529
+ }
530
+ function styleable(Component2, options) {
531
+ let out = Component2.render?.length === 2 ? Component2 : import_react.default.forwardRef(Component2);
532
+ const extendedConfig = extendStyledConfig(options?.staticConfig);
533
+ return out = options?.disableTheme ? out : (0, import_themeable.themeable)(out, extendedConfig), process.env.TAMAGUI_MEMOIZE_STYLEABLE && (out = import_react.default.memo(out)), out.staticConfig = extendedConfig, out.styleable = styleable, out;
534
+ }
535
+ return res.extractable = extractable, res.styleable = styleable, res;
536
+ }
537
+ function getWebEvents(events, webStyle = !0) {
538
+ return {
539
+ onMouseEnter: events.onMouseEnter,
540
+ onMouseLeave: events.onMouseLeave,
541
+ [webStyle ? "onClick" : "onPress"]: events.onPress,
542
+ onMouseDown: events.onPressIn,
543
+ onMouseUp: events.onPressOut,
544
+ onTouchStart: events.onPressIn,
545
+ onTouchEnd: events.onPressOut,
546
+ onFocus: events.onFocus,
547
+ onBlur: events.onBlur
548
+ };
549
+ }
550
+ function Unspaced(props) {
551
+ return props.children;
552
+ }
553
+ Unspaced.isUnspaced = !0;
554
+ const getSpacerSize = (size, { tokens }) => {
555
+ size = size === !0 ? "$true" : size;
556
+ const sizePx = tokens.space[size] ?? size;
557
+ return {
558
+ width: sizePx,
559
+ height: sizePx,
560
+ minWidth: sizePx,
561
+ minHeight: sizePx
562
+ };
563
+ }, Spacer = createComponent({
564
+ acceptsClassName: !0,
565
+ memo: !0,
566
+ componentName: "Spacer",
567
+ validStyles: import_helpers.validStyles,
568
+ defaultProps: {
569
+ ...import_constants2.stackDefaultStyles,
570
+ // avoid nesting issues
571
+ tag: "span",
572
+ size: !0,
573
+ pointerEvents: "none"
574
+ },
575
+ variants: {
576
+ size: {
577
+ "...": getSpacerSize
578
+ },
579
+ flex: {
580
+ true: {
581
+ flexGrow: 1
582
+ }
583
+ },
584
+ direction: {
585
+ horizontal: {
586
+ height: 0,
587
+ minHeight: 0
588
+ },
589
+ vertical: {
590
+ width: 0,
591
+ minWidth: 0
592
+ },
593
+ both: {}
594
+ }
595
+ }
596
+ });
597
+ function spacedChildren(props) {
598
+ const { isZStack, children, space, direction, spaceFlex, separator, ensureKeys } = props, hasSpace = !!(space || spaceFlex), hasSeparator = separator != null, areChildrenArray = Array.isArray(children);
599
+ if (!ensureKeys && !(hasSpace || hasSeparator || isZStack))
600
+ return children;
601
+ const childrenList = areChildrenArray ? children : import_react.default.Children.toArray(children);
602
+ if (childrenList.length <= 1 && !isZStack && !childrenList[0]?.type?.shouldForwardSpace)
603
+ return children;
604
+ const final = [];
605
+ for (let [index, child] of childrenList.entries()) {
606
+ const isEmpty = child == null || Array.isArray(child) && child.length === 0;
607
+ if (!isEmpty && import_react.default.isValidElement(child) && child.type?.shouldForwardSpace && (child = import_react.default.cloneElement(child, {
608
+ space,
609
+ spaceFlex,
610
+ separator,
611
+ key: child.key
612
+ })), isEmpty || !child || child.key && !isZStack ? final.push(child) : final.push(
613
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react.default.Fragment, { children: isZStack ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AbsoluteFill, { children: child }) : child }, `${index}0t`)
614
+ ), isUnspaced(child) && index === 0 || isZStack) continue;
615
+ const next = childrenList[index + 1];
616
+ next && !isEmpty && !isUnspaced(next) && (separator ? (hasSpace && final.push(
617
+ createSpacer({
618
+ key: `_${index}_00t`,
619
+ direction,
620
+ space,
621
+ spaceFlex
622
+ })
623
+ ), final.push(/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react.default.Fragment, { children: separator }, `${index}03t`)), hasSpace && final.push(
624
+ createSpacer({
625
+ key: `_${index}01t`,
626
+ direction,
627
+ space,
628
+ spaceFlex
629
+ })
630
+ )) : final.push(
631
+ createSpacer({
632
+ key: `_${index}02t`,
633
+ direction,
634
+ space,
635
+ spaceFlex
636
+ })
637
+ ));
638
+ }
639
+ return process.env.NODE_ENV === "development" && props.debug && (0, import_log.log)(" Spaced children", final, props), final;
640
+ }
641
+ function createSpacer({ key, direction, space, spaceFlex }) {
642
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
643
+ Spacer,
644
+ {
645
+ size: space,
646
+ direction,
647
+ ...typeof spaceFlex < "u" && {
648
+ flex: spaceFlex === !0 ? 1 : spaceFlex === !1 ? 0 : spaceFlex
649
+ }
650
+ },
651
+ key
652
+ );
653
+ }
654
+ function isUnspaced(child) {
655
+ const t = child?.type;
656
+ return t?.isVisuallyHidden || t?.isUnspaced;
657
+ }
658
+ const AbsoluteFill = createComponent({
659
+ defaultProps: {
660
+ ...import_constants2.stackDefaultStyles,
661
+ flexDirection: "column",
662
+ position: "absolute",
663
+ top: 0,
664
+ right: 0,
665
+ bottom: 0,
666
+ left: 0,
667
+ pointerEvents: "box-none"
668
+ }
669
+ }), fromPx = (val) => typeof val != "string" ? val : +val.replace("px", "");
670
+ //# sourceMappingURL=createComponent.js.map