@tamagui/web 1.129.12 → 1.129.13

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 (184) hide show
  1. package/dist/cjs/contexts/ComponentContext.cjs +1 -6
  2. package/dist/cjs/contexts/ComponentContext.js +1 -6
  3. package/dist/cjs/contexts/ComponentContext.js.map +1 -1
  4. package/dist/cjs/contexts/ComponentContext.native.js +1 -6
  5. package/dist/cjs/contexts/ComponentContext.native.js.map +2 -2
  6. package/dist/cjs/contexts/GroupContext.cjs +27 -0
  7. package/dist/cjs/contexts/GroupContext.js +22 -0
  8. package/dist/cjs/contexts/GroupContext.js.map +6 -0
  9. package/dist/cjs/contexts/GroupContext.native.js +26 -0
  10. package/dist/cjs/contexts/GroupContext.native.js.map +6 -0
  11. package/dist/cjs/createComponent.cjs +131 -90
  12. package/dist/cjs/createComponent.js +139 -94
  13. package/dist/cjs/createComponent.js.map +2 -2
  14. package/dist/cjs/createComponent.native.js +156 -106
  15. package/dist/cjs/createComponent.native.js.map +2 -2
  16. package/dist/cjs/helpers/createStyledContext.js.map +1 -1
  17. package/dist/cjs/helpers/createStyledContext.native.js.map +1 -1
  18. package/dist/cjs/helpers/getSplitStyles.cjs +68 -49
  19. package/dist/cjs/helpers/getSplitStyles.js +64 -55
  20. package/dist/cjs/helpers/getSplitStyles.js.map +2 -2
  21. package/dist/cjs/helpers/getSplitStyles.native.js +82 -63
  22. package/dist/cjs/helpers/getSplitStyles.native.js.map +2 -2
  23. package/dist/cjs/helpers/pseudoDescriptors.cjs +12 -12
  24. package/dist/cjs/helpers/pseudoDescriptors.js +12 -12
  25. package/dist/cjs/helpers/pseudoDescriptors.js.map +1 -1
  26. package/dist/cjs/helpers/pseudoDescriptors.native.js +12 -12
  27. package/dist/cjs/helpers/pseudoDescriptors.native.js.map +1 -1
  28. package/dist/cjs/helpers/subscribeToContextGroup.cjs +48 -31
  29. package/dist/cjs/helpers/subscribeToContextGroup.js +36 -20
  30. package/dist/cjs/helpers/subscribeToContextGroup.js.map +1 -1
  31. package/dist/cjs/helpers/subscribeToContextGroup.native.js +48 -20
  32. package/dist/cjs/helpers/subscribeToContextGroup.native.js.map +2 -2
  33. package/dist/cjs/hooks/useComponentState.cjs +2 -40
  34. package/dist/cjs/hooks/useComponentState.js +2 -30
  35. package/dist/cjs/hooks/useComponentState.js.map +2 -2
  36. package/dist/cjs/hooks/useComponentState.native.js +3 -43
  37. package/dist/cjs/hooks/useComponentState.native.js.map +2 -2
  38. package/dist/cjs/hooks/useConfiguration.cjs +1 -17
  39. package/dist/cjs/hooks/useConfiguration.js +2 -9
  40. package/dist/cjs/hooks/useConfiguration.js.map +1 -1
  41. package/dist/cjs/hooks/useConfiguration.native.js +2 -7
  42. package/dist/cjs/hooks/useConfiguration.native.js.map +2 -2
  43. package/dist/cjs/hooks/useMedia.cjs +4 -3
  44. package/dist/cjs/hooks/useMedia.js +3 -3
  45. package/dist/cjs/hooks/useMedia.js.map +1 -1
  46. package/dist/cjs/hooks/useMedia.native.js +3 -3
  47. package/dist/cjs/hooks/useMedia.native.js.map +2 -2
  48. package/dist/cjs/hooks/useProps.cjs +7 -6
  49. package/dist/cjs/hooks/useProps.js +13 -11
  50. package/dist/cjs/hooks/useProps.js.map +1 -1
  51. package/dist/cjs/hooks/useProps.native.js +11 -10
  52. package/dist/cjs/hooks/useProps.native.js.map +2 -2
  53. package/dist/cjs/hooks/useThemeState.cjs +2 -2
  54. package/dist/cjs/hooks/useThemeState.js +2 -2
  55. package/dist/cjs/hooks/useThemeState.js.map +1 -1
  56. package/dist/cjs/hooks/useThemeState.native.js +2 -2
  57. package/dist/cjs/hooks/useThemeState.native.js.map +1 -1
  58. package/dist/cjs/index.cjs +1 -0
  59. package/dist/cjs/index.js +1 -0
  60. package/dist/cjs/index.js.map +1 -1
  61. package/dist/cjs/index.native.js +2 -0
  62. package/dist/cjs/index.native.js.map +1 -1
  63. package/dist/cjs/views/TamaguiProvider.js.map +1 -1
  64. package/dist/cjs/views/TamaguiProvider.native.js.map +1 -1
  65. package/dist/esm/contexts/ComponentContext.js +1 -6
  66. package/dist/esm/contexts/ComponentContext.js.map +1 -1
  67. package/dist/esm/contexts/ComponentContext.mjs +1 -6
  68. package/dist/esm/contexts/ComponentContext.mjs.map +1 -1
  69. package/dist/esm/contexts/ComponentContext.native.js +1 -6
  70. package/dist/esm/contexts/ComponentContext.native.js.map +1 -1
  71. package/dist/esm/contexts/GroupContext.js +6 -0
  72. package/dist/esm/contexts/GroupContext.js.map +6 -0
  73. package/dist/esm/contexts/GroupContext.mjs +4 -0
  74. package/dist/esm/contexts/GroupContext.mjs.map +1 -0
  75. package/dist/esm/contexts/GroupContext.native.js +4 -0
  76. package/dist/esm/contexts/GroupContext.native.js.map +1 -0
  77. package/dist/esm/createComponent.js +141 -94
  78. package/dist/esm/createComponent.js.map +2 -2
  79. package/dist/esm/createComponent.mjs +132 -91
  80. package/dist/esm/createComponent.mjs.map +1 -1
  81. package/dist/esm/createComponent.native.js +152 -102
  82. package/dist/esm/createComponent.native.js.map +1 -1
  83. package/dist/esm/helpers/createStyledContext.js.map +1 -1
  84. package/dist/esm/helpers/createStyledContext.mjs.map +1 -1
  85. package/dist/esm/helpers/createStyledContext.native.js.map +1 -1
  86. package/dist/esm/helpers/getSplitStyles.js +68 -56
  87. package/dist/esm/helpers/getSplitStyles.js.map +2 -2
  88. package/dist/esm/helpers/getSplitStyles.mjs +68 -49
  89. package/dist/esm/helpers/getSplitStyles.mjs.map +1 -1
  90. package/dist/esm/helpers/getSplitStyles.native.js +72 -53
  91. package/dist/esm/helpers/getSplitStyles.native.js.map +1 -1
  92. package/dist/esm/helpers/pseudoDescriptors.js +12 -12
  93. package/dist/esm/helpers/pseudoDescriptors.js.map +1 -1
  94. package/dist/esm/helpers/pseudoDescriptors.mjs +12 -12
  95. package/dist/esm/helpers/pseudoDescriptors.mjs.map +1 -1
  96. package/dist/esm/helpers/pseudoDescriptors.native.js +12 -12
  97. package/dist/esm/helpers/pseudoDescriptors.native.js.map +1 -1
  98. package/dist/esm/helpers/subscribeToContextGroup.js +36 -20
  99. package/dist/esm/helpers/subscribeToContextGroup.js.map +1 -1
  100. package/dist/esm/helpers/subscribeToContextGroup.mjs +47 -30
  101. package/dist/esm/helpers/subscribeToContextGroup.mjs.map +1 -1
  102. package/dist/esm/helpers/subscribeToContextGroup.native.js +64 -36
  103. package/dist/esm/helpers/subscribeToContextGroup.native.js.map +1 -1
  104. package/dist/esm/hooks/useComponentState.js +2 -30
  105. package/dist/esm/hooks/useComponentState.js.map +2 -2
  106. package/dist/esm/hooks/useComponentState.mjs +2 -40
  107. package/dist/esm/hooks/useComponentState.mjs.map +1 -1
  108. package/dist/esm/hooks/useComponentState.native.js +3 -46
  109. package/dist/esm/hooks/useComponentState.native.js.map +1 -1
  110. package/dist/esm/hooks/useConfiguration.js +1 -9
  111. package/dist/esm/hooks/useConfiguration.js.map +1 -1
  112. package/dist/esm/hooks/useConfiguration.mjs +1 -17
  113. package/dist/esm/hooks/useConfiguration.mjs.map +1 -1
  114. package/dist/esm/hooks/useConfiguration.native.js +1 -15
  115. package/dist/esm/hooks/useConfiguration.native.js.map +1 -1
  116. package/dist/esm/hooks/useMedia.js +3 -3
  117. package/dist/esm/hooks/useMedia.js.map +1 -1
  118. package/dist/esm/hooks/useMedia.mjs +4 -3
  119. package/dist/esm/hooks/useMedia.mjs.map +1 -1
  120. package/dist/esm/hooks/useMedia.native.js +4 -3
  121. package/dist/esm/hooks/useMedia.native.js.map +1 -1
  122. package/dist/esm/hooks/useProps.js +13 -10
  123. package/dist/esm/hooks/useProps.js.map +1 -1
  124. package/dist/esm/hooks/useProps.mjs +7 -6
  125. package/dist/esm/hooks/useProps.mjs.map +1 -1
  126. package/dist/esm/hooks/useProps.native.js +7 -6
  127. package/dist/esm/hooks/useProps.native.js.map +1 -1
  128. package/dist/esm/hooks/useThemeState.js +2 -2
  129. package/dist/esm/hooks/useThemeState.js.map +1 -1
  130. package/dist/esm/hooks/useThemeState.mjs +2 -2
  131. package/dist/esm/hooks/useThemeState.mjs.map +1 -1
  132. package/dist/esm/hooks/useThemeState.native.js +2 -2
  133. package/dist/esm/hooks/useThemeState.native.js.map +1 -1
  134. package/dist/esm/index.js +1 -0
  135. package/dist/esm/index.js.map +1 -1
  136. package/dist/esm/index.mjs +1 -0
  137. package/dist/esm/index.mjs.map +1 -1
  138. package/dist/esm/index.native.js +1 -0
  139. package/dist/esm/index.native.js.map +1 -1
  140. package/dist/esm/views/TamaguiProvider.js.map +1 -1
  141. package/dist/esm/views/TamaguiProvider.mjs.map +1 -1
  142. package/dist/esm/views/TamaguiProvider.native.js.map +1 -1
  143. package/package.json +12 -12
  144. package/src/contexts/ComponentContext.tsx +0 -5
  145. package/src/contexts/GroupContext.tsx +4 -0
  146. package/src/createComponent.tsx +251 -107
  147. package/src/helpers/createStyledContext.tsx +1 -1
  148. package/src/helpers/getSplitStyles.tsx +77 -56
  149. package/src/helpers/pseudoDescriptors.ts +15 -19
  150. package/src/helpers/subscribeToContextGroup.tsx +70 -34
  151. package/src/hooks/useComponentState.ts +2 -46
  152. package/src/hooks/useConfiguration.tsx +1 -9
  153. package/src/hooks/useMedia.tsx +4 -2
  154. package/src/hooks/useProps.tsx +15 -10
  155. package/src/hooks/useThemeState.ts +2 -2
  156. package/src/index.ts +1 -0
  157. package/src/interfaces/TamaguiComponentState.tsx +4 -3
  158. package/src/types.tsx +33 -36
  159. package/src/views/TamaguiProvider.tsx +1 -0
  160. package/types/contexts/ComponentContext.d.ts.map +1 -1
  161. package/types/contexts/GroupContext.d.ts +3 -0
  162. package/types/contexts/GroupContext.d.ts.map +1 -0
  163. package/types/createComponent.d.ts +1 -1
  164. package/types/createComponent.d.ts.map +1 -1
  165. package/types/helpers/getSplitStyles.d.ts +2 -2
  166. package/types/helpers/getSplitStyles.d.ts.map +1 -1
  167. package/types/helpers/pseudoDescriptors.d.ts +14 -13
  168. package/types/helpers/pseudoDescriptors.d.ts.map +1 -1
  169. package/types/helpers/subscribeToContextGroup.d.ts +7 -6
  170. package/types/helpers/subscribeToContextGroup.d.ts.map +1 -1
  171. package/types/hooks/useComponentState.d.ts +3 -3
  172. package/types/hooks/useComponentState.d.ts.map +1 -1
  173. package/types/hooks/useConfiguration.d.ts +1 -121
  174. package/types/hooks/useConfiguration.d.ts.map +1 -1
  175. package/types/hooks/useMedia.d.ts +2 -2
  176. package/types/hooks/useMedia.d.ts.map +1 -1
  177. package/types/hooks/useProps.d.ts.map +1 -1
  178. package/types/index.d.ts +1 -0
  179. package/types/index.d.ts.map +1 -1
  180. package/types/interfaces/TamaguiComponentState.d.ts +2 -2
  181. package/types/interfaces/TamaguiComponentState.d.ts.map +1 -1
  182. package/types/types.d.ts +22 -33
  183. package/types/types.d.ts.map +1 -1
  184. package/types/views/TamaguiProvider.d.ts.map +1 -1
@@ -65,7 +65,7 @@ const PROP_SPLIT = "-";
65
65
  function isValidStyleKey(key, validStyles, accept) {
66
66
  return key in validStyles ? !0 : accept && key in accept;
67
67
  }
68
- const getSplitStyles = (props, staticConfig, theme, themeName, componentState, styleProps, parentSplitStyles, componentContext, elementType, startedUnhydrated, debug) => {
68
+ const getSplitStyles = (props, staticConfig, theme, themeName, componentState, styleProps, parentSplitStyles, componentContext, groupContext, elementType, startedUnhydrated, debug) => {
69
69
  conf = conf || (0, import_config.getConfig)();
70
70
  const animationDriver = componentContext?.animationDriver || conf.animations;
71
71
  import_constants.isWeb && styleProps.isAnimated && animationDriver.isReactNative && !styleProps.noNormalize && (styleProps.noNormalize = "values");
@@ -85,7 +85,6 @@ const getSplitStyles = (props, staticConfig, theme, themeName, componentState, s
85
85
  } = staticConfig,
86
86
  viewProps = {},
87
87
  mediaState = styleProps.mediaState || import_useMedia.mediaState,
88
- usedKeys = {},
89
88
  shouldDoClasses = acceptsClassName && import_constants.isWeb && !styleProps.noClass && !styleProps.isAnimated,
90
89
  rulesToInsert = {},
91
90
  classNames = {};
@@ -108,7 +107,7 @@ const getSplitStyles = (props, staticConfig, theme, themeName, componentState, s
108
107
  staticConfig,
109
108
  style: null,
110
109
  theme,
111
- usedKeys,
110
+ usedKeys: {},
112
111
  viewProps,
113
112
  context: componentContext,
114
113
  debug
@@ -123,7 +122,7 @@ const getSplitStyles = (props, staticConfig, theme, themeName, componentState, s
123
122
  }
124
123
  }));
125
124
  }
126
- process.env.NODE_ENV === "development" && debug === "profile" && time`style-state`, process.env.NODE_ENV === "development" && debug && debug !== "profile" && import_constants.isClient && (console.groupCollapsed("getSplitStyles (collapsed)"), (0, import_log.log)({
125
+ process.env.NODE_ENV === "development" && debug === "profile" && time`style-state`, process.env.NODE_ENV === "development" && debug && debug !== "profile" && import_constants.isClient && import_isDevTools.isDevTools && (console.groupCollapsed("\u{1F539} getSplitStyles \u{1F447}"), (0, import_log.log)({
127
126
  props,
128
127
  staticConfig,
129
128
  shouldDoClasses,
@@ -134,7 +133,7 @@ const getSplitStyles = (props, staticConfig, theme, themeName, componentState, s
134
133
  theme: {
135
134
  ...theme
136
135
  }
137
- }), console.groupEnd());
136
+ }));
138
137
  const {
139
138
  asChild
140
139
  } = props,
@@ -165,7 +164,7 @@ const getSplitStyles = (props, staticConfig, theme, themeName, componentState, s
165
164
  continue;
166
165
  }
167
166
  }
168
- if (process.env.NODE_ENV, disableExpandShorthands || keyInit in shorthands && (keyInit = shorthands[keyInit]), keyInit === "className" || keyInit in usedKeys || asChild && import_constants2.webViewFlexCompatStyles[keyInit] === valInit) continue;
167
+ if (process.env.NODE_ENV, disableExpandShorthands || keyInit in shorthands && (keyInit = shorthands[keyInit]), keyInit === "className" || asChild && import_constants2.webViewFlexCompatStyles[keyInit] === valInit) continue;
169
168
  if (keyInit in import_skipProps.skipProps && !noSkip && !isHOC) {
170
169
  if (keyInit === "group") {
171
170
  const identifier = `t_group_${valInit}`,
@@ -174,7 +173,6 @@ const getSplitStyles = (props, staticConfig, theme, themeName, componentState, s
174
173
  }
175
174
  continue;
176
175
  }
177
- const valInitType = typeof valInit;
178
176
  let isValidStyleKeyInit = isValidStyleKey(keyInit, validStyles, accept);
179
177
  if (staticConfig.isReactNative && keyInit.startsWith("data-")) {
180
178
  keyInit = keyInit.replace("data-", ""), viewProps.dataSet ||= {}, viewProps.dataSet[keyInit] = valInit;
@@ -251,12 +249,13 @@ const getSplitStyles = (props, staticConfig, theme, themeName, componentState, s
251
249
  isMedia = !isStyleLikeKey && !isPseudo && (0, import_useMedia.isMediaKey)(keyInit),
252
250
  isMediaOrPseudo = !!(isMedia || isPseudo);
253
251
  if (isMediaOrPseudo && keyInit.startsWith("$group-")) {
254
- const parts = keyInit.split("-");
252
+ const parts = keyInit.split("-"),
253
+ plen = parts.length;
255
254
  if (
256
255
  // check if its actually a simple group selector to avoid breaking selectors
257
- parts.length === 2 || parts.length === 3 && import_pseudoDescriptors.pseudoPriorities[parts[parts.length - 1]]) {
256
+ plen === 2 || plen === 3 && import_pseudoDescriptors.pseudoPriorities[parts[parts.length - 1]]) {
258
257
  const name = parts[1];
259
- componentContext?.groups.subscribe && !componentContext?.groups.state[name] && (keyInit = keyInit.replace("$group-", "$group-true-"));
258
+ groupContext && !groupContext?.[name] && (keyInit = keyInit.replace("$group-", "$group-true-"));
260
259
  }
261
260
  }
262
261
  const isStyleProp = isValidStyleKeyInit || isMediaOrPseudo || isVariant && !noExpand;
@@ -276,6 +275,9 @@ const getSplitStyles = (props, staticConfig, theme, themeName, componentState, s
276
275
  variant: variants?.[keyInit],
277
276
  isVariant,
278
277
  isHOCShouldPassThrough,
278
+ usedKeys: {
279
+ ...styleState.usedKeys
280
+ },
279
281
  parentStaticConfig
280
282
  })), shouldPassThrough && (passDownProp(viewProps, keyInit, valInit, isMediaOrPseudo), !isVariant) || !noSkip && keyInit in import_skipProps.skipProps) continue;
281
283
  (isText || isInput) && valInit && (keyInit === "fontFamily" || keyInit === shorthands.fontFamily) && valInit in conf.fontsParsed && (styleState.fontFamily = valInit);
@@ -286,9 +288,9 @@ const getSplitStyles = (props, staticConfig, theme, themeName, componentState, s
286
288
  viewProps[key] = val;
287
289
  return;
288
290
  }
289
- if (process.env.NODE_ENV === "development" && debug === "verbose" && (console.groupCollapsed(" \u{1F4A0} expanded", keyInit, "=>", key), (0, import_log.log)(val), console.groupEnd()), val == null || key in usedKeys) return;
291
+ if (process.env.NODE_ENV === "development" && debug === "verbose" && (console.groupCollapsed(" \u{1F4A0} expanded", keyInit, "=>", key), (0, import_log.log)(val), console.groupEnd()), val == null) return;
290
292
  if (!isHOC && isValidStyleKey(key, validStyles, accept)) {
291
- mergeStyle(styleState, key, val);
293
+ mergeStyle(styleState, key, val, 1);
292
294
  return;
293
295
  }
294
296
  if (isPseudo = key in import_helpers.validPseudoKeys, isMedia = !isPseudo && (0, import_useMedia.isMediaKey)(key), isMediaOrPseudo = !!(isMedia || isPseudo), isVariant = variants && key in variants, (inlineProps?.has(key) || process.env.IS_STATIC === "is_static" && inlineWhenUnflattened?.has(key)) && (viewProps[key] = props[key] ?? val), styleProps.noExpand && isPseudo || isHOC && (isMediaOrPseudo || parentStaticConfig?.variants?.[keyInit])) {
@@ -316,7 +318,7 @@ const getSplitStyles = (props, staticConfig, theme, themeName, componentState, s
316
318
  process.env.NODE_ENV === "development" && debug === "verbose" && console.info("pseudo:", key, pseudoStyleObject, pseudoStyles);
317
319
  for (const psuedoStyle of pseudoStyles) {
318
320
  const fullKey = `${psuedoStyle[import_helpers.StyleObjectProperty]}${PROP_SPLIT}${descriptor.name}`;
319
- fullKey in usedKeys || (addStyleToInsertRules(rulesToInsert, psuedoStyle), classNames[fullKey] = psuedoStyle[import_helpers.StyleObjectIdentifier]);
321
+ addStyleToInsertRules(rulesToInsert, psuedoStyle), classNames[fullKey] = psuedoStyle[import_helpers.StyleObjectIdentifier];
320
322
  }
321
323
  }
322
324
  if (!shouldDoClasses || isExit || isEnter) {
@@ -334,9 +336,9 @@ const getSplitStyles = (props, staticConfig, theme, themeName, componentState, s
334
336
  for (const pkey in pseudoStyleObject) {
335
337
  const val2 = pseudoStyleObject[pkey];
336
338
  if (isDisabled) applyDefaultStyle(pkey, styleState);else {
337
- const curImportance = usedKeys[pkey] || 0,
339
+ const curImportance = styleState.usedKeys[pkey] || 0,
338
340
  shouldMerge = importance >= curImportance;
339
- shouldMerge && (process.env.IS_STATIC === "is_static" && (pseudos ||= {}, pseudos[key] ||= {}, pseudos[key][pkey] = val2), mergeStyle(styleState, pkey, val2)), process.env.NODE_ENV === "development" && debug === "verbose" && (0, import_log.log)(" subKey", pkey, shouldMerge, {
341
+ shouldMerge && (process.env.IS_STATIC === "is_static" && (pseudos ||= {}, pseudos[key] ||= {}, pseudos[key][pkey] = val2), mergeStyle(styleState, pkey, val2, importance)), process.env.NODE_ENV === "development" && debug === "verbose" && (0, import_log.log)(" subKey", pkey, shouldMerge, {
340
342
  importance,
341
343
  curImportance,
342
344
  pkey,
@@ -346,7 +348,7 @@ const getSplitStyles = (props, staticConfig, theme, themeName, componentState, s
346
348
  }
347
349
  if (!isDisabled) for (const key2 in val) {
348
350
  const k = shorthands[key2] || key2;
349
- usedKeys[k] = Math.max(importance, usedKeys[k] || 0);
351
+ styleState.usedKeys[k] = Math.max(importance, styleState.usedKeys[k] || 0);
350
352
  }
351
353
  }
352
354
  return;
@@ -356,7 +358,7 @@ const getSplitStyles = (props, staticConfig, theme, themeName, componentState, s
356
358
  const hasSpace = val.space,
357
359
  mediaKeyShort = key.slice(isMedia == "theme" ? 7 : 1);
358
360
  if (hasMedia ||= !0, (hasSpace || !shouldDoClasses || styleProps.willBeAnimated) && ((!hasMedia || typeof hasMedia == "boolean") && (hasMedia = /* @__PURE__ */new Set()), hasMedia.add(mediaKeyShort)), isMedia === "platform" && !(0, import_isActivePlatform.isActivePlatform)(key)) return;
359
- if (process.env.NODE_ENV === "development" && debug === "verbose" && (0, import_log.log)(` \u{1F4FA} ${key}`, {
361
+ process.env.NODE_ENV === "development" && debug === "verbose" && (0, import_log.log)(` \u{1F4FA} ${key}`, {
360
362
  key,
361
363
  val,
362
364
  props,
@@ -364,15 +366,15 @@ const getSplitStyles = (props, staticConfig, theme, themeName, componentState, s
364
366
  acceptsClassName,
365
367
  componentState,
366
368
  mediaState
367
- }), shouldDoClasses) {
369
+ });
370
+ const priority = mediaStylesSeen;
371
+ if (mediaStylesSeen += 1, shouldDoClasses) {
368
372
  const mediaStyle = getSubStyle(styleState, key, val, !1);
369
373
  if (hasSpace && (delete mediaStyle.space, mediaState[mediaKeyShort])) {
370
- const importance = (0, import_useMedia.getMediaImportanceIfMoreImportant)(mediaKeyShort, "space", usedKeys, !0);
371
- importance && (space = val.space, usedKeys.space = importance, process.env.NODE_ENV === "development" && debug === "verbose" && (0, import_log.log)(`Found more important space for current media ${mediaKeyShort}: ${val} (importance: ${importance})`));
374
+ const importance = (0, import_useMedia.getMediaImportanceIfMoreImportant)(mediaKeyShort, "space", styleState, !0);
375
+ importance && (space = val.space, styleState.usedKeys.space = importance, process.env.NODE_ENV === "development" && debug === "verbose" && (0, import_log.log)(`Found more important space for current media ${mediaKeyShort}: ${val} (importance: ${importance})`));
372
376
  }
373
- const mediaStyles = (0, import_getCSSStylesAtomic.getCSSStylesAtomic)(mediaStyle),
374
- priority = mediaStylesSeen;
375
- mediaStylesSeen += 1;
377
+ const mediaStyles = (0, import_getCSSStylesAtomic.getCSSStylesAtomic)(mediaStyle);
376
378
  for (const style of mediaStyles) {
377
379
  const property = style[import_helpers.StyleObjectProperty],
378
380
  isSubStyle = property[0] === "$";
@@ -381,11 +383,11 @@ const getSplitStyles = (props, staticConfig, theme, themeName, componentState, s
381
383
  process.env.NODE_ENV === "development" && debug === "verbose" && (0, import_log.log)("\u{1F4FA} media style:", out);
382
384
  const subKey = isSubStyle ? style[2] : "",
383
385
  fullKey = `${style[import_helpers.StyleObjectProperty]}${subKey}${PROP_SPLIT}${mediaKeyShort}${style[import_helpers.StyleObjectPseudo] || ""}`;
384
- fullKey in usedKeys || (addStyleToInsertRules(rulesToInsert, out), classNames[fullKey] = out[import_helpers.StyleObjectIdentifier]);
386
+ addStyleToInsertRules(rulesToInsert, out), classNames[fullKey] = out[import_helpers.StyleObjectIdentifier];
385
387
  }
386
388
  } else {
387
389
  let mergeMediaStyle = function (key2, val2) {
388
- styleState.style ||= {}, mergeMediaByImportance(styleState, mediaKeyShort, key2, val2, usedKeys, mediaState[mediaKeyShort], importanceBump, debug) && key2 === "fontFamily" && (styleState.fontFamily = mediaStyle.fontFamily);
390
+ styleState.style ||= {}, mergeMediaByImportance(styleState, mediaKeyShort, key2, val2, mediaState[mediaKeyShort], importanceBump, debug) && key2 === "fontFamily" && (styleState.fontFamily = mediaStyle.fontFamily);
389
391
  };
390
392
  const isThemeMedia = isMedia === "theme",
391
393
  isGroupMedia = isMedia === "group";
@@ -410,14 +412,14 @@ const getSplitStyles = (props, staticConfig, theme, themeName, componentState, s
410
412
  scheme,
411
413
  val: val2,
412
414
  oppositeVal
413
- }), mergeStyle(styleState, subKey, mediaStyle[subKey]);
415
+ }), mergeStyle(styleState, subKey, mediaStyle[subKey], priority);
414
416
  }
415
417
  } else if (!(themeName === mediaKeyShort || themeName.startsWith(mediaKeyShort))) return;
416
418
  } else if (isGroupMedia) {
417
419
  const groupInfo = (0, import_getGroupPropParts.getGroupPropParts)(mediaKeyShort),
418
420
  groupName = groupInfo.name,
419
- groupContext = componentContext?.groups.state[groupName];
420
- if (!groupContext) {
421
+ groupState = groupContext?.[groupName]?.state;
422
+ if (!groupState) {
421
423
  process.env.NODE_ENV === "development" && debug && (0, import_log.log)(`No parent with group prop, skipping styles: ${groupName}`);
422
424
  return;
423
425
  }
@@ -428,7 +430,12 @@ const getSplitStyles = (props, staticConfig, theme, themeName, componentState, s
428
430
  mediaGroups ||= /* @__PURE__ */new Set(), mediaGroups.add(groupMediaKey);
429
431
  const mediaState2 = componentGroupState?.media;
430
432
  let isActive = mediaState2?.[groupMediaKey];
431
- if (!mediaState2 && groupContext.layout && (isActive = (0, import_useMedia.mediaKeyMatch)(groupMediaKey, groupContext.layout)), process.env.NODE_ENV === "development" && debug === "verbose" && (0, import_log.log)(` \u{1F3D8}\uFE0F GROUP media ${groupMediaKey} active? ${isActive}`), !isActive) {
433
+ if (!mediaState2 && groupState.layout && (isActive = (0, import_useMedia.mediaKeyMatch)(groupMediaKey, groupState.layout)), process.env.NODE_ENV === "development" && debug === "verbose" && (0, import_log.log)(` \u{1F3D8}\uFE0F GROUP media ${groupMediaKey} active? ${isActive}`, {
434
+ ...mediaState2,
435
+ usedKeys: {
436
+ ...styleState.usedKeys
437
+ }
438
+ }), !isActive) {
432
439
  for (const pkey in mediaStyle) applyDefaultStyle(pkey, styleState);
433
440
  return;
434
441
  }
@@ -436,15 +443,23 @@ const getSplitStyles = (props, staticConfig, theme, themeName, componentState, s
436
443
  }
437
444
  if (groupPseudoKey) {
438
445
  pseudoGroups ||= /* @__PURE__ */new Set(), pseudoGroups.add(groupName);
439
- const isActive = (componentGroupState ||
446
+ const componentGroupPseudoState = (componentGroupState ||
440
447
  // fallback to context initially
441
- componentContext.groups.state[groupName]).pseudo?.[groupPseudoKey],
442
- priority = import_pseudoDescriptors.pseudoPriorities[groupPseudoKey];
443
- if (process.env.NODE_ENV === "development" && debug === "verbose" && (0, import_log.log)(` \u{1F3D8}\uFE0F GROUP pseudo ${groupMediaKey} active? ${isActive}, priority ${priority}`), !isActive) {
448
+ groupContext?.[groupName].state)?.pseudo,
449
+ isActive = componentGroupPseudoState?.[groupPseudoKey],
450
+ priority2 = import_pseudoDescriptors.pseudoPriorities[groupPseudoKey];
451
+ if (process.env.NODE_ENV === "development" && debug === "verbose" && (0, import_log.log)(` \u{1F3D8}\uFE0F GROUP pseudo ${groupMediaKey} active? ${isActive}, priority ${priority2}`, {
452
+ componentGroupPseudoState: {
453
+ ...componentGroupPseudoState
454
+ },
455
+ usedKeys: {
456
+ ...styleState.usedKeys
457
+ }
458
+ }), !isActive) {
444
459
  for (const pkey in mediaStyle) applyDefaultStyle(pkey, styleState);
445
460
  return;
446
461
  }
447
- importanceBump = priority;
462
+ importanceBump = priority2;
448
463
  }
449
464
  }
450
465
  for (const subKey in mediaStyle) {
@@ -470,6 +485,8 @@ const getSplitStyles = (props, staticConfig, theme, themeName, componentState, s
470
485
  ...styleState.style
471
486
  }), (0, import_log.log)("viewProps", {
472
487
  ...viewProps
488
+ }), (0, import_log.log)("transforms", {
489
+ ...styleState.flatTransforms
473
490
  });
474
491
  } catch {}
475
492
  console.groupEnd();
@@ -553,8 +570,8 @@ const getSplitStyles = (props, staticConfig, theme, themeName, componentState, s
553
570
  } else finalClassName && (viewProps.className = finalClassName), style && (viewProps.style = style);
554
571
  }
555
572
  }
556
- if (process.env.NODE_ENV === "development" && debug === "verbose" && import_isDevTools.isDevTools) {
557
- console.groupCollapsed("\u{1F539} getSplitStyles ===>");
573
+ if (process.env.NODE_ENV === "development" && debug && debug !== "profile" && import_constants.isClient && import_isDevTools.isDevTools) {
574
+ console.groupEnd(), console.groupCollapsed("\u{1F539} getSplitStyles ===>");
558
575
  try {
559
576
  const logs = {
560
577
  ...result,
@@ -575,16 +592,17 @@ function mergeFlatTransforms(target, flatTransforms) {
575
592
  mergeTransform(target, key, val, !0);
576
593
  });
577
594
  }
578
- function mergeStyle(styleState, key, val, disableNormalize = !1) {
595
+ function mergeStyle(styleState, key, val, importance, disableNormalize = !1) {
579
596
  const {
580
597
  viewProps,
581
598
  styleProps,
582
- staticConfig
599
+ staticConfig,
600
+ usedKeys
583
601
  } = styleState;
584
- if (key in import_helpers.stylePropsTransform) styleState.flatTransforms ||= {}, styleState.flatTransforms[key] = val;else {
602
+ if (!((usedKeys[key] || 0) > importance)) if (key in import_helpers.stylePropsTransform) styleState.flatTransforms ||= {}, usedKeys[key] = importance, styleState.flatTransforms[key] = val;else {
585
603
  const out = import_constants.isWeb && !disableNormalize && !styleProps.noNormalize ? (0, import_normalizeValueWithProperty.normalizeValueWithProperty)(val, key) : val;
586
604
  // accept is for props not styles
587
- staticConfig.accept && key in staticConfig.accept ? viewProps[key] = out : (styleState.style ||= {}, styleState.style[key] =
605
+ staticConfig.accept && key in staticConfig.accept ? viewProps[key] = out : (styleState.style ||= {}, usedKeys[key] = importance, styleState.style[key] =
588
606
  // if you dont do this you'll be passing props.transform arrays directly here and then mutating them
589
607
  // if theres any flatTransforms later, causing issues (mutating props is bad, in strict mode styles get borked)
590
608
  key === "transform" && Array.isArray(out) ? [...out] : out);
@@ -613,8 +631,8 @@ const getSubStyle = (styleState, subKey, styleIn, avoidMergeTransform) => {
613
631
  return styleProps.noNormalize || (0, import_expandStyles.fixStyles)(styleOut), styleOut;
614
632
  },
615
633
  useInsertEffectCompat = import_constants.isWeb ? import_react.default.useInsertionEffect || import_constants.useIsomorphicLayoutEffect : () => {},
616
- useSplitStyles = (a, b, c, d, e, f, g, h, i, j, k) => {
617
- const res = getSplitStyles(a, b, c, d, e, f, g, h, i, j, k);
634
+ useSplitStyles = (a, b, c, d, e, f, g, h, i, j, k, l) => {
635
+ const res = getSplitStyles(a, b, c, d, e, f, g, h, i, j, k, l);
618
636
  return useInsertEffectCompat(() => {
619
637
  (0, import_insertStyleRule.insertStyleRules)(res.rulesToInsert);
620
638
  }, [res.rulesToInsert]), res;
@@ -668,15 +686,16 @@ function passDownProp(viewProps, key, val, shouldMergeObject = !1) {
668
686
  delete viewProps[key], viewProps[key] = next;
669
687
  } else viewProps[key] = val;
670
688
  }
671
- function mergeMediaByImportance(styleState, mediaKey, key, value, importancesUsed, isSizeMedia, importanceBump, debugProp) {
672
- let importance = (0, import_useMedia.getMediaImportanceIfMoreImportant)(mediaKey, key, importancesUsed, isSizeMedia);
673
- if (importanceBump && (importance = (importance || 0) + importanceBump), process.env.NODE_ENV === "development" && debugProp === "verbose" && (0, import_log.log)(`mergeMediaByImportance ${key} importance existing ${importancesUsed[key]} next ${importance}`), importance === null) return !1;
674
- if (importancesUsed[key] = importance, key in import_pseudoDescriptors.pseudoDescriptors) {
689
+ function mergeMediaByImportance(styleState, mediaKey, key, value, isSizeMedia, importanceBump, debugProp) {
690
+ const usedKeys = styleState.usedKeys;
691
+ let importance = (0, import_useMedia.getMediaImportanceIfMoreImportant)(mediaKey, key, styleState, isSizeMedia);
692
+ if (importanceBump && (importance = (importance || 0) + importanceBump), process.env.NODE_ENV === "development" && debugProp === "verbose" && (0, import_log.log)(`mergeMediaByImportance ${key} importance usedKey ${usedKeys[key]} next ${importance}`), importance === null) return !1;
693
+ if (key in import_pseudoDescriptors.pseudoDescriptors) {
675
694
  const descriptor = import_pseudoDescriptors.pseudoDescriptors[key],
676
695
  descriptorKey = descriptor.stateKey || descriptor.name;
677
696
  if (styleState.componentState[descriptorKey] === !1) return !1;
678
- for (const subKey in value) mergeStyle(styleState, subKey, value[subKey]);
679
- } else mergeStyle(styleState, key, value);
697
+ for (const subKey in value) mergeStyle(styleState, subKey, value[subKey], importance);
698
+ } else mergeStyle(styleState, key, value, importance);
680
699
  return !0;
681
700
  }
682
701
  function normalizeStyle(style) {
@@ -689,5 +708,5 @@ function normalizeStyle(style) {
689
708
  }
690
709
  function applyDefaultStyle(pkey, styleState) {
691
710
  const defaultValues = animatableDefaults[pkey];
692
- defaultValues != null && !(pkey in styleState.usedKeys) && (!styleState.style || !(pkey in styleState.style)) && mergeStyle(styleState, pkey, defaultValues);
711
+ defaultValues != null && !(pkey in styleState.usedKeys) && (!styleState.style || !(pkey in styleState.style)) && mergeStyle(styleState, pkey, defaultValues, 1);
693
712
  }