@tamagui/core 1.0.1-beta.192 → 1.0.1-beta.194

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 (232) hide show
  1. package/dist/cjs/Tamagui.js +4 -2
  2. package/dist/cjs/Tamagui.js.map +2 -2
  3. package/dist/cjs/config.js +1 -2
  4. package/dist/cjs/config.js.map +2 -2
  5. package/dist/cjs/constants/constants.js +13 -8
  6. package/dist/cjs/constants/constants.js.map +2 -2
  7. package/dist/cjs/contexts/TextAncestorContext.js +3 -16
  8. package/dist/cjs/contexts/TextAncestorContext.js.map +3 -3
  9. package/dist/cjs/createComponent.js +196 -284
  10. package/dist/cjs/createComponent.js.map +2 -2
  11. package/dist/cjs/createTamagui.js +15 -16
  12. package/dist/cjs/createTamagui.js.map +3 -3
  13. package/dist/cjs/createVariable.js +1 -2
  14. package/dist/cjs/createVariable.js.map +2 -2
  15. package/dist/cjs/helpers/ThemeManager.js +7 -14
  16. package/dist/cjs/helpers/ThemeManager.js.map +2 -2
  17. package/dist/cjs/helpers/{createShallowUpdate.js → cache.js} +20 -21
  18. package/dist/cjs/helpers/cache.js.map +7 -0
  19. package/dist/cjs/helpers/createMediaStyle.js +14 -8
  20. package/dist/cjs/helpers/createMediaStyle.js.map +2 -2
  21. package/dist/cjs/helpers/extendStaticConfig.js +0 -1
  22. package/dist/cjs/helpers/extendStaticConfig.js.map +2 -2
  23. package/dist/cjs/helpers/getSplitStyles.js +214 -94
  24. package/dist/cjs/helpers/getSplitStyles.js.map +3 -3
  25. package/dist/cjs/helpers/getStylesAtomic.js +16 -36
  26. package/dist/cjs/helpers/getStylesAtomic.js.map +3 -3
  27. package/dist/cjs/helpers/getVariantExtras.js +2 -1
  28. package/dist/cjs/helpers/getVariantExtras.js.map +2 -2
  29. package/dist/cjs/helpers/insertStyleRule.js +14 -6
  30. package/dist/cjs/helpers/insertStyleRule.js.map +2 -2
  31. package/dist/cjs/helpers/matchMedia.js.map +2 -2
  32. package/dist/cjs/helpers/mergeTransform.js.map +1 -1
  33. package/dist/cjs/helpers/normalizeValueWithProperty.js +32 -2
  34. package/dist/cjs/helpers/normalizeValueWithProperty.js.map +2 -2
  35. package/dist/cjs/helpers/proxyThemeVariables.js +2 -7
  36. package/dist/cjs/helpers/proxyThemeVariables.js.map +2 -2
  37. package/dist/cjs/helpers/useShallowSetState.js.map +2 -2
  38. package/dist/cjs/hooks/getThemeUnwrapped.js +1 -3
  39. package/dist/cjs/hooks/getThemeUnwrapped.js.map +2 -2
  40. package/dist/cjs/hooks/useElementLayout.js +92 -0
  41. package/dist/cjs/hooks/useElementLayout.js.map +7 -0
  42. package/dist/cjs/hooks/useIsTouchDevice.js +2 -10
  43. package/dist/cjs/hooks/useIsTouchDevice.js.map +2 -2
  44. package/dist/cjs/hooks/useMedia.js +79 -85
  45. package/dist/cjs/hooks/useMedia.js.map +2 -2
  46. package/dist/cjs/hooks/useMedia.test.js +2 -0
  47. package/dist/cjs/{helpers/validate.js.map → hooks/useMedia.test.js.map} +0 -0
  48. package/dist/cjs/hooks/usePressablePressResponder.js +370 -0
  49. package/dist/cjs/hooks/usePressablePressResponder.js.map +7 -0
  50. package/dist/cjs/hooks/useSafeRef.js +13 -15
  51. package/dist/cjs/hooks/useSafeRef.js.map +2 -2
  52. package/dist/cjs/hooks/useTheme.js +5 -5
  53. package/dist/cjs/hooks/useTheme.js.map +2 -2
  54. package/dist/cjs/index.js +1 -17
  55. package/dist/cjs/index.js.map +2 -2
  56. package/dist/cjs/static.js +0 -20
  57. package/dist/cjs/static.js.map +2 -2
  58. package/dist/cjs/styled.js +4 -22
  59. package/dist/cjs/styled.js.map +2 -2
  60. package/dist/cjs/types.js.map +1 -1
  61. package/dist/cjs/{hooks/useIsSSR.js → views/AbsoluteFill.js} +18 -23
  62. package/dist/cjs/views/AbsoluteFill.js.map +7 -0
  63. package/dist/cjs/views/AbsoluteFill.native.js +45 -0
  64. package/dist/cjs/views/AbsoluteFill.native.js.map +7 -0
  65. package/dist/cjs/views/FontLanguage.native.js.map +2 -2
  66. package/dist/cjs/views/Stack.js.map +1 -1
  67. package/dist/cjs/views/TamaguiProvider.js +3 -2
  68. package/dist/cjs/views/TamaguiProvider.js.map +2 -2
  69. package/dist/cjs/views/Text.js.map +1 -1
  70. package/dist/cjs/views/ThemeReset.js +10 -10
  71. package/dist/cjs/views/ThemeReset.js.map +2 -2
  72. package/dist/esm/Tamagui.js +4 -2
  73. package/dist/esm/Tamagui.js.map +2 -2
  74. package/dist/esm/config.js +1 -2
  75. package/dist/esm/config.js.map +2 -2
  76. package/dist/esm/constants/constants.js +11 -7
  77. package/dist/esm/constants/constants.js.map +2 -2
  78. package/dist/esm/contexts/TextAncestorContext.js +2 -13
  79. package/dist/esm/contexts/TextAncestorContext.js.map +2 -2
  80. package/dist/esm/createComponent.js +195 -286
  81. package/dist/esm/createComponent.js.map +2 -2
  82. package/dist/esm/createTamagui.js +15 -16
  83. package/dist/esm/createTamagui.js.map +3 -3
  84. package/dist/esm/createVariable.js +1 -2
  85. package/dist/esm/createVariable.js.map +2 -2
  86. package/dist/esm/helpers/ThemeManager.js +7 -14
  87. package/dist/esm/helpers/ThemeManager.js.map +2 -2
  88. package/dist/esm/helpers/cache.js +18 -0
  89. package/dist/esm/helpers/cache.js.map +7 -0
  90. package/dist/esm/helpers/createMediaStyle.js +14 -8
  91. package/dist/esm/helpers/createMediaStyle.js.map +2 -2
  92. package/dist/esm/helpers/extendStaticConfig.js +0 -1
  93. package/dist/esm/helpers/extendStaticConfig.js.map +2 -2
  94. package/dist/esm/helpers/getSplitStyles.js +223 -95
  95. package/dist/esm/helpers/getSplitStyles.js.map +3 -3
  96. package/dist/esm/helpers/getStylesAtomic.js +13 -26
  97. package/dist/esm/helpers/getStylesAtomic.js.map +2 -2
  98. package/dist/esm/helpers/getVariantExtras.js +2 -1
  99. package/dist/esm/helpers/getVariantExtras.js.map +2 -2
  100. package/dist/esm/helpers/insertStyleRule.js +14 -6
  101. package/dist/esm/helpers/insertStyleRule.js.map +2 -2
  102. package/dist/esm/helpers/matchMedia.js.map +2 -2
  103. package/dist/esm/helpers/mergeTransform.js.map +1 -1
  104. package/dist/esm/helpers/normalizeValueWithProperty.js +30 -1
  105. package/dist/esm/helpers/normalizeValueWithProperty.js.map +2 -2
  106. package/dist/esm/helpers/proxyThemeVariables.js +2 -7
  107. package/dist/esm/helpers/proxyThemeVariables.js.map +2 -2
  108. package/dist/esm/helpers/useShallowSetState.js.map +2 -2
  109. package/dist/esm/hooks/getThemeUnwrapped.js +1 -3
  110. package/dist/esm/hooks/getThemeUnwrapped.js.map +2 -2
  111. package/dist/esm/hooks/useElementLayout.js +66 -0
  112. package/dist/esm/hooks/useElementLayout.js.map +7 -0
  113. package/dist/esm/hooks/useIsTouchDevice.js +3 -11
  114. package/dist/esm/hooks/useIsTouchDevice.js.map +2 -2
  115. package/dist/esm/hooks/useMedia.js +76 -84
  116. package/dist/esm/hooks/useMedia.js.map +2 -2
  117. package/dist/esm/hooks/useMedia.test.js +1 -0
  118. package/dist/esm/{helpers/validate.js.map → hooks/useMedia.test.js.map} +0 -0
  119. package/dist/esm/hooks/usePressablePressResponder.js +346 -0
  120. package/dist/esm/hooks/usePressablePressResponder.js.map +7 -0
  121. package/dist/esm/hooks/useSafeRef.js +13 -15
  122. package/dist/esm/hooks/useSafeRef.js.map +2 -2
  123. package/dist/esm/hooks/useTheme.js +5 -5
  124. package/dist/esm/hooks/useTheme.js.map +2 -2
  125. package/dist/esm/index.js +1 -14
  126. package/dist/esm/index.js.map +2 -2
  127. package/dist/esm/static.js +0 -14
  128. package/dist/esm/static.js.map +2 -2
  129. package/dist/esm/styled.js +4 -22
  130. package/dist/esm/styled.js.map +2 -2
  131. package/dist/esm/views/AbsoluteFill.js +17 -0
  132. package/dist/esm/views/AbsoluteFill.js.map +7 -0
  133. package/dist/esm/views/AbsoluteFill.native.js +21 -0
  134. package/dist/esm/views/AbsoluteFill.native.js.map +7 -0
  135. package/dist/esm/views/FontLanguage.native.js.map +2 -2
  136. package/dist/esm/views/Stack.js.map +1 -1
  137. package/dist/esm/views/TamaguiProvider.js +5 -4
  138. package/dist/esm/views/TamaguiProvider.js.map +2 -2
  139. package/dist/esm/views/Text.js.map +1 -1
  140. package/dist/esm/views/ThemeReset.js +10 -10
  141. package/dist/esm/views/ThemeReset.js.map +2 -2
  142. package/package.json +14 -14
  143. package/src/Tamagui.ts +7 -3
  144. package/src/config.ts +2 -3
  145. package/src/constants/constants.ts +10 -6
  146. package/src/contexts/TextAncestorContext.tsx +1 -8
  147. package/src/createComponent.tsx +250 -412
  148. package/src/createTamagui.ts +16 -19
  149. package/src/createVariable.ts +1 -3
  150. package/src/helpers/ThemeManager.tsx +7 -15
  151. package/src/helpers/cache.ts +18 -0
  152. package/src/helpers/createMediaStyle.ts +16 -9
  153. package/src/helpers/createProxy.ts +16 -0
  154. package/src/helpers/extendStaticConfig.ts +0 -1
  155. package/src/helpers/getSplitStyles.tsx +259 -152
  156. package/src/helpers/getStylesAtomic.ts +14 -34
  157. package/src/helpers/getVariantExtras.tsx +2 -1
  158. package/src/helpers/insertStyleRule.tsx +16 -8
  159. package/src/helpers/matchMedia.ts +1 -0
  160. package/src/helpers/mergeTransform.ts +1 -1
  161. package/src/helpers/normalizeValueWithProperty.ts +30 -0
  162. package/src/helpers/proxyThemeVariables.tsx +3 -8
  163. package/src/helpers/useShallowSetState.tsx +0 -1
  164. package/src/hooks/getThemeUnwrapped.tsx +1 -2
  165. package/src/hooks/useElementLayout.tsx +90 -0
  166. package/src/hooks/useIsTouchDevice.tsx +3 -17
  167. package/src/hooks/useMedia.tsx +82 -88
  168. package/src/hooks/useSafeRef.ts +17 -18
  169. package/src/hooks/useTheme.tsx +6 -5
  170. package/src/index.ts +1 -11
  171. package/src/static.ts +0 -10
  172. package/src/styled.tsx +15 -33
  173. package/src/types.tsx +58 -55
  174. package/src/views/FontLanguage.native.tsx +1 -0
  175. package/src/views/Stack.tsx +1 -1
  176. package/src/views/TamaguiProvider.tsx +5 -5
  177. package/src/views/Text.tsx +1 -1
  178. package/src/views/ThemeReset.tsx +11 -11
  179. package/types/Tamagui.d.ts +6 -4
  180. package/types/constants/constants.d.ts +14 -3
  181. package/types/contexts/TextAncestorContext.d.ts +1 -3
  182. package/types/createComponent.d.ts +0 -15
  183. package/types/helpers/ThemeManager.d.ts +2 -3
  184. package/types/helpers/cache.d.ts +12 -0
  185. package/types/helpers/calc.d.ts +0 -16
  186. package/types/helpers/createMediaStyle.d.ts +1 -1
  187. package/types/helpers/createProxy.d.ts +2 -0
  188. package/types/helpers/getSplitStyles.d.ts +6 -10
  189. package/types/helpers/getStylesAtomic.d.ts +1 -5
  190. package/types/helpers/insertStyleRule.d.ts +2 -2
  191. package/types/helpers/mergeTransform.d.ts +1 -1
  192. package/types/helpers/normalizeValueWithProperty.d.ts +1 -0
  193. package/types/hooks/useElementLayout.d.ts +27 -0
  194. package/types/hooks/useMedia.d.ts +3 -1
  195. package/types/hooks/useMedia.test.d.ts +1 -0
  196. package/types/hooks/usePressablePressResponder.d.ts +84 -0
  197. package/types/index.d.ts +1 -11
  198. package/types/static.d.ts +0 -1
  199. package/types/types.d.ts +42 -44
  200. package/types/views/AbsoluteFill.d.ts +5 -0
  201. package/types/views/AbsoluteFill.native.d.ts +3 -0
  202. package/types/views/Stack.d.ts +1 -1
  203. package/types/views/Text.d.ts +1 -1
  204. package/dist/cjs/constants/platform.js +0 -74
  205. package/dist/cjs/constants/platform.js.map +0 -7
  206. package/dist/cjs/constants/platform.native.js +0 -62
  207. package/dist/cjs/constants/platform.native.js.map +0 -7
  208. package/dist/cjs/helpers/createShallowUpdate.js.map +0 -7
  209. package/dist/cjs/helpers/validate.js +0 -2
  210. package/dist/cjs/hooks/useDidFinishSSR.js +0 -60
  211. package/dist/cjs/hooks/useDidFinishSSR.js.map +0 -7
  212. package/dist/cjs/hooks/useIsSSR.js.map +0 -7
  213. package/dist/esm/constants/platform.js +0 -39
  214. package/dist/esm/constants/platform.js.map +0 -7
  215. package/dist/esm/constants/platform.native.js +0 -28
  216. package/dist/esm/constants/platform.native.js.map +0 -7
  217. package/dist/esm/helpers/createShallowUpdate.js +0 -20
  218. package/dist/esm/helpers/createShallowUpdate.js.map +0 -7
  219. package/dist/esm/helpers/validate.js +0 -1
  220. package/dist/esm/hooks/useDidFinishSSR.js +0 -35
  221. package/dist/esm/hooks/useDidFinishSSR.js.map +0 -7
  222. package/dist/esm/hooks/useIsSSR.js +0 -22
  223. package/dist/esm/hooks/useIsSSR.js.map +0 -7
  224. package/src/helpers/assignNativePropsToWeb.tsx +0 -178
  225. package/src/helpers/calc.ts +0 -68
  226. package/src/helpers/getFont.tsx +0 -43
  227. package/src/helpers/getStackSize.ts +0 -22
  228. package/src/helpers/startTransition.ts +0 -4
  229. package/src/hooks/useConstant.tsx +0 -19
  230. package/src/hooks/useIsMounted.ts +0 -16
  231. package/src/hooks/usePressable.tsx +0 -9
  232. package/src/hooks/useUnmountEffect.ts +0 -5
@@ -22,7 +22,6 @@ __export(getSplitStyles_exports, {
22
22
  getSplitStyles: () => getSplitStyles,
23
23
  getSubStyle: () => getSubStyle,
24
24
  insertSplitStyles: () => insertSplitStyles,
25
- pseudoCNInverse: () => pseudoCNInverse,
26
25
  useSplitStyles: () => useSplitStyles
27
26
  });
28
27
  module.exports = __toCommonJS(getSplitStyles_exports);
@@ -34,6 +33,7 @@ var import_isDevTools = require("../constants/isDevTools");
34
33
  var import_useMedia = require("../hooks/useMedia");
35
34
  var import_createMediaStyle = require("./createMediaStyle");
36
35
  var import_createPropMapper = require("./createPropMapper");
36
+ var import_createProxy = require("./createProxy");
37
37
  var import_expandStyles = require("./expandStyles");
38
38
  var import_getStylesAtomic = require("./getStylesAtomic");
39
39
  var import_insertStyleRule = require("./insertStyleRule");
@@ -44,11 +44,12 @@ const skipProps = {
44
44
  animation: true,
45
45
  animateOnly: true,
46
46
  debug: true,
47
- componentName: true
47
+ componentName: true,
48
+ role: true,
49
+ tag: true
48
50
  };
49
51
  if (process.env.TAMAGUI_TARGET === "native") {
50
52
  Object.assign(skipProps, {
51
- tag: true,
52
53
  whiteSpace: true,
53
54
  wordWrap: true,
54
55
  textOverflow: true,
@@ -61,15 +62,67 @@ if (process.env.TAMAGUI_TARGET === "native") {
61
62
  boxShadow: true
62
63
  });
63
64
  }
65
+ const accessibilityDirectMap = {};
66
+ if (process.env.TAMAGUI_TARGET === "web") {
67
+ const items = {
68
+ Hidden: true,
69
+ ActiveDescendant: true,
70
+ Atomic: true,
71
+ AutoComplete: true,
72
+ Busy: true,
73
+ Checked: true,
74
+ ColumnCount: "colcount",
75
+ ColumnIndex: "colindex",
76
+ ColumnSpan: "colspan",
77
+ Current: true,
78
+ Details: true,
79
+ ErrorMessage: true,
80
+ Expanded: true,
81
+ HasPopup: true,
82
+ Invalid: true,
83
+ Label: true,
84
+ Level: true,
85
+ Modal: true,
86
+ Multiline: true,
87
+ MultiSelectable: true,
88
+ Orientation: true,
89
+ Owns: true,
90
+ Placeholder: true,
91
+ PosInSet: true,
92
+ Pressed: true,
93
+ RoleDescription: true,
94
+ RowCount: true,
95
+ RowIndex: true,
96
+ RowSpan: true,
97
+ Selected: true,
98
+ SetSize: true,
99
+ Sort: true,
100
+ ValueMax: true,
101
+ ValueMin: true,
102
+ ValueNow: true,
103
+ ValueText: true
104
+ };
105
+ for (const key in items) {
106
+ let val = items[key];
107
+ if (val === true) {
108
+ val = key.toLowerCase();
109
+ }
110
+ accessibilityDirectMap[`accessibility${key}`] = `aria-${val}`;
111
+ }
112
+ }
64
113
  let conf;
65
114
  const PROP_SPLIT = "-";
66
- const pseudoCNInverse = {
67
- hover: "hoverStyle",
68
- focus: "focusStyle",
69
- press: "pressStyle"
115
+ const accessibilityRoleToWebRole = {
116
+ adjustable: "slider",
117
+ header: "heading",
118
+ image: "img",
119
+ link: "link",
120
+ none: "presentation",
121
+ summary: "region"
70
122
  };
71
- const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, languageContext, debug) => {
72
- var _a, _b;
123
+ const isMediaKey = (key) => Boolean(key[0] === "$" && import_useMedia.mediaQueryConfig[key.slice(1)]);
124
+ const getSplitStyles = (props, staticConfig, theme, state, parentSplitStyles, languageContext, elementType, debug) => {
125
+ var _a, _b, _c, _d, _e;
73
126
  conf = conf || (0, import_config.getConfig)();
74
127
  const validStyleProps = staticConfig.isText ? import_helpers.stylePropsText : import_helpers.validStyles;
75
128
  const mediaKeys = [];
@@ -77,15 +130,12 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, la
77
130
  const pseudos = {};
78
131
  const medias = {};
79
132
  const mediaState = state.mediaState || import_useMedia.mediaState;
80
- const usedKeys = /* @__PURE__ */ new Set();
133
+ const usedKeys = {};
81
134
  const propKeys = Object.keys(props);
82
- const shouldDoClasses = staticConfig.acceptsClassName && (import_constants.isWeb || process.env.IS_STATIC === "is_static") && !state.noClassNames && !props.animation;
135
+ const shouldDoClasses = staticConfig.acceptsClassName && (import_constants.isWeb || process.env.IS_STATIC === "is_static") && !state.noClassNames;
83
136
  const len = propKeys.length;
84
137
  const rulesToInsert = [];
85
138
  const style = {};
86
- if (state.hasTextAncestor) {
87
- style.display = "inline-flex";
88
- }
89
139
  const classNames = {};
90
140
  const transforms = {};
91
141
  let fontFamily;
@@ -96,7 +146,7 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, la
96
146
  if (expandedKey) {
97
147
  keyInit = expandedKey;
98
148
  }
99
- if (usedKeys.has(keyInit))
149
+ if (usedKeys[keyInit])
100
150
  continue;
101
151
  if (skipProps[keyInit])
102
152
  continue;
@@ -105,24 +155,97 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, la
105
155
  if (keyInit === "style" || keyInit.startsWith("_style")) {
106
156
  if (!valInit)
107
157
  continue;
108
- for (const key in valInit) {
109
- if (usedKeys.has(key))
158
+ const styles = Array.isArray(valInit) ? valInit : [valInit];
159
+ const styleLen = styles.length;
160
+ for (let j = styleLen; j >= 0; j--) {
161
+ const cur = styles[j];
162
+ if (!cur)
110
163
  continue;
111
- if (valInit && typeof valInit === "object") {
112
- for (const skey in valInit) {
113
- if (usedKeys.has(skey))
114
- continue;
115
- usedKeys.add(skey);
116
- style[skey] = valInit[skey];
117
- }
118
- } else {
119
- usedKeys.add(key);
120
- style[key] = valInit;
164
+ for (const key in cur) {
165
+ if (usedKeys[key])
166
+ continue;
167
+ usedKeys[key] = 1;
168
+ style[key] = cur[key];
121
169
  }
122
170
  }
123
171
  continue;
124
172
  }
125
173
  if (process.env.TAMAGUI_TARGET === "web") {
174
+ if (keyInit === "disabled" && valInit === true) {
175
+ usedKeys[keyInit] = 1;
176
+ viewProps["aria-disabled"] = true;
177
+ if (elementType === "button" || elementType === "form" || elementType === "input" || elementType === "select" || elementType === "textarea") {
178
+ viewProps.disabled = true;
179
+ }
180
+ continue;
181
+ }
182
+ if (accessibilityDirectMap[keyInit]) {
183
+ viewProps[accessibilityDirectMap[keyInit]] = valInit;
184
+ usedKeys[keyInit] = 1;
185
+ continue;
186
+ }
187
+ let didUseKeyInit = true;
188
+ switch (keyInit) {
189
+ case "nativeID": {
190
+ viewProps.id = valInit;
191
+ break;
192
+ }
193
+ case "accessibilityRole": {
194
+ if (valInit === "none") {
195
+ viewProps.role = "presentation";
196
+ } else {
197
+ viewProps.role = accessibilityRoleToWebRole[valInit] || valInit;
198
+ }
199
+ break;
200
+ }
201
+ case "accessibilityControls": {
202
+ viewProps["aria-controls"] = processIDRefList(valInit);
203
+ break;
204
+ }
205
+ case "accessibilityDescribedBy": {
206
+ viewProps["aria-describedby"] = processIDRefList(valInit);
207
+ break;
208
+ }
209
+ case "accessibilityFlowTo": {
210
+ viewProps["aria-flowto"] = processIDRefList(valInit);
211
+ break;
212
+ }
213
+ case "accessibilityLabelledBy": {
214
+ viewProps["aria-labelledby"] = processIDRefList(valInit);
215
+ break;
216
+ }
217
+ case "accessibilityKeyShortcuts": {
218
+ if (Array.isArray(valInit)) {
219
+ viewProps["aria-keyshortcuts"] = valInit.join(" ");
220
+ }
221
+ break;
222
+ }
223
+ case "accessibilityLiveRegion": {
224
+ viewProps["aria-live"] = valInit === "none" ? "off" : valInit;
225
+ break;
226
+ }
227
+ case "accessibilityReadOnly": {
228
+ viewProps["aria-readonly"] = valInit;
229
+ if (elementType === "input" || elementType === "select" || elementType === "textarea") {
230
+ viewProps.readOnly = true;
231
+ }
232
+ break;
233
+ }
234
+ case "accessibilityRequired": {
235
+ viewProps["aria-required"] = valInit;
236
+ if (elementType === "input" || elementType === "select" || elementType === "textarea") {
237
+ viewProps.required = true;
238
+ }
239
+ break;
240
+ }
241
+ default: {
242
+ didUseKeyInit = false;
243
+ }
244
+ }
245
+ if (didUseKeyInit) {
246
+ usedKeys[keyInit] = 1;
247
+ continue;
248
+ }
126
249
  if (keyInit === "className") {
127
250
  let nonTamaguis = "";
128
251
  if (!valInit)
@@ -132,7 +255,7 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, la
132
255
  const [shorthand, mediaOrPseudo] = cn.slice(1).split("-");
133
256
  const isMedia2 = mediaOrPseudo[0] === "_";
134
257
  const isPseudo2 = mediaOrPseudo[0] === "0";
135
- const isMediaOrPseudo2 = isMedia2 || isPseudo2;
258
+ const isMediaOrPseudo = isMedia2 || isPseudo2;
136
259
  let fullKey = conf.shorthands[shorthand];
137
260
  if (isMedia2) {
138
261
  let mediaShortKey = mediaOrPseudo.slice(1);
@@ -142,24 +265,24 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, la
142
265
  const pseudoShortKey = mediaOrPseudo.slice(1);
143
266
  fullKey += `${PROP_SPLIT}${pseudoShortKey}`;
144
267
  }
145
- usedKeys.add(fullKey);
146
- mergeClassName(transforms, classNames, fullKey, cn, isMediaOrPseudo2);
268
+ usedKeys[fullKey] = 1;
269
+ mergeClassName(transforms, classNames, fullKey, cn, isMediaOrPseudo);
147
270
  } else {
148
271
  nonTamaguis += " " + cn;
149
272
  }
150
273
  }
151
274
  if (nonTamaguis) {
152
- usedKeys.add(keyInit);
275
+ usedKeys[keyInit] = 1;
153
276
  mergeClassName(transforms, classNames, keyInit, nonTamaguis);
154
277
  }
155
278
  continue;
156
279
  }
157
280
  if (valInit && valInit[0] === "_") {
158
281
  const isValidClassName = import_helpers.validStyles[keyInit];
159
- const isMediaOrPseudo2 = !isValidClassName && keyInit.includes(PROP_SPLIT) && import_helpers.validStyles[keyInit.split(PROP_SPLIT)[0]];
160
- if (isValidClassName || isMediaOrPseudo2) {
161
- usedKeys.add(keyInit);
162
- mergeClassName(transforms, classNames, keyInit, valInit, isMediaOrPseudo2);
282
+ const isMediaOrPseudo = !isValidClassName && keyInit.includes(PROP_SPLIT) && import_helpers.validStyles[keyInit.split(PROP_SPLIT)[0]];
283
+ if (isValidClassName || isMediaOrPseudo) {
284
+ usedKeys[keyInit] = 1;
285
+ mergeClassName(transforms, classNames, keyInit, valInit, isMediaOrPseudo);
163
286
  continue;
164
287
  }
165
288
  }
@@ -169,11 +292,10 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, la
169
292
  viewProps[keyInit] = valInit;
170
293
  }
171
294
  }
172
- let isMedia = keyInit[0] === "$";
295
+ let isMedia = isMediaKey(keyInit);
173
296
  let isPseudo = import_helpers.validPseudoKeys[keyInit];
174
- let isMediaOrPseudo = isMedia || isPseudo;
175
297
  if (!isMedia && !isPseudo && !((_a = staticConfig.variants) == null ? void 0 : _a[keyInit]) && !validStyleProps[keyInit] && !conf.shorthands[keyInit]) {
176
- usedKeys.add(keyInit);
298
+ usedKeys[keyInit] = 1;
177
299
  viewProps[keyInit] = valInit;
178
300
  continue;
179
301
  }
@@ -194,25 +316,25 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, la
194
316
  fontFamily = (0, import_createPropMapper.getPropMappedFontFamily)(expanded);
195
317
  }
196
318
  if (process.env.NODE_ENV === "development" && debug === "verbose") {
197
- console.log("expanded", expanded);
198
- console.log("usedKeys", [...usedKeys]);
319
+ if (import_constants.isClient) {
320
+ console.log("expanded", expanded);
321
+ console.log("usedKeys", usedKeys);
322
+ }
199
323
  console.groupEnd();
200
324
  }
201
- if (!expanded) {
325
+ if (!expanded)
202
326
  continue;
203
- }
204
327
  for (const [key, val] of expanded) {
205
328
  if (val === void 0)
206
329
  continue;
207
- isMedia = key[0] === "$";
330
+ isMedia = isMediaKey(key);
208
331
  isPseudo = import_helpers.validPseudoKeys[key];
209
- isMediaOrPseudo = isMedia || isPseudo;
210
- if (!isMediaOrPseudo) {
211
- if (usedKeys.has(key))
212
- continue;
332
+ const isMediaOrPseudo = isMedia || isPseudo;
333
+ if (!isMediaOrPseudo && usedKeys[key]) {
334
+ continue;
213
335
  }
214
- if (staticConfig.deoptProps && staticConfig.deoptProps.has(key) || staticConfig.inlineProps && staticConfig.inlineProps.has(key) || staticConfig.inlineWhenUnflattened && staticConfig.inlineWhenUnflattened.has(key)) {
215
- usedKeys.add(key);
336
+ if (((_b = staticConfig.deoptProps) == null ? void 0 : _b.has(key)) || ((_c = staticConfig.inlineProps) == null ? void 0 : _c.has(key)) || ((_d = staticConfig.inlineWhenUnflattened) == null ? void 0 : _d.has(key))) {
337
+ usedKeys[key] = 1;
216
338
  viewProps[key] = props[key] ?? val;
217
339
  }
218
340
  if (isPseudo) {
@@ -221,7 +343,7 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, la
221
343
  if (key === "enterStyle" && state.mounted) {
222
344
  continue;
223
345
  }
224
- pseudos[key] = pseudos[key] || {};
346
+ pseudos[key] ?? (pseudos[key] = {});
225
347
  const pseudoStyleObject = getSubStyle(
226
348
  key,
227
349
  val,
@@ -237,17 +359,21 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, la
237
359
  ...pseudoStyleObject,
238
360
  ...pseudos[key]
239
361
  };
240
- if (shouldDoClasses && key !== "enterStyle" && key !== "exitStyle") {
362
+ if (key === "enterStyle" || key === "exitStyle") {
363
+ continue;
364
+ }
365
+ if (shouldDoClasses) {
241
366
  const pseudoStyles = (0, import_getStylesAtomic.getAtomicStyle)(pseudoStyleObject, import_pseudoDescriptors.pseudoDescriptors[key]);
242
367
  for (const style2 of pseudoStyles) {
243
- const postfix = ((_b = import_pseudoDescriptors.pseudoDescriptors[key]) == null ? void 0 : _b.name) || key;
368
+ const postfix = ((_e = import_pseudoDescriptors.pseudoDescriptors[key]) == null ? void 0 : _e.name) || key;
244
369
  const fullKey = `${style2.property}${PROP_SPLIT}${postfix}`;
245
- if (!usedKeys.has(fullKey)) {
246
- usedKeys.add(fullKey);
370
+ if (!usedKeys[fullKey]) {
371
+ usedKeys[fullKey] = 1;
247
372
  addStyleToInsertRules(rulesToInsert, style2);
248
373
  mergeClassName(transforms, classNames, fullKey, style2.identifier, isMediaOrPseudo);
249
374
  }
250
375
  }
376
+ } else {
251
377
  }
252
378
  continue;
253
379
  }
@@ -255,18 +381,6 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, la
255
381
  const mediaKey = key;
256
382
  const mediaKeyShort = mediaKey.slice(1);
257
383
  mediaKeys.push(mediaKeyShort);
258
- if (!import_useMedia.mediaQueryConfig[mediaKeyShort]) {
259
- if (process.env.NODE_ENV === "development" && debug) {
260
- console.warn(
261
- `Warning: using a $ prefixed prop that doesn't match to a media query, may be an error`,
262
- key
263
- );
264
- }
265
- if (!usedKeys.has(key)) {
266
- viewProps[key] = val;
267
- }
268
- continue;
269
- }
270
384
  const mediaStyle = getSubStyle(
271
385
  key,
272
386
  val,
@@ -285,34 +399,24 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, la
285
399
  for (const style2 of mediaStyles) {
286
400
  const out = (0, import_createMediaStyle.createMediaStyle)(style2, mediaKeyShort, import_useMedia.mediaQueryConfig);
287
401
  const fullKey = `${style2.property}${PROP_SPLIT}${mediaKeyShort}`;
288
- if (!usedKeys.has(fullKey)) {
289
- usedKeys.add(fullKey);
402
+ if (!usedKeys[fullKey]) {
403
+ usedKeys[fullKey] = 1;
290
404
  addStyleToInsertRules(rulesToInsert, out);
291
405
  mergeClassName(transforms, classNames, fullKey, out.identifier, true);
292
406
  }
293
407
  }
294
- } else {
295
- if (mediaState[mediaKeyShort]) {
296
- if (process.env.NODE_ENV === "development" && debug) {
297
- console.log("apply media style", mediaKey, mediaState);
298
- }
299
- if (shouldDoClasses) {
300
- Object.assign(medias, mediaStyle);
301
- } else {
302
- for (const key2 in mediaStyle) {
303
- usedKeys.add(key2);
304
- style[key2] = mediaStyle[key2];
305
- if (key2 === "fontFamily") {
306
- fontFamily = mediaStyle[key2];
307
- }
308
- }
408
+ } else if (mediaState[mediaKeyShort]) {
409
+ for (const key2 in mediaStyle) {
410
+ const didMerge = (0, import_useMedia.mergeMediaByImportance)(style, key2, mediaStyle[key2], usedKeys);
411
+ if (didMerge && key2 === "fontFamily") {
412
+ fontFamily = mediaStyle[key2];
309
413
  }
310
414
  }
311
415
  }
312
416
  continue;
313
417
  }
314
418
  if (!import_constants.isWeb && key === "pointerEvents") {
315
- usedKeys.add(key);
419
+ usedKeys[key] = 1;
316
420
  viewProps[key] = val;
317
421
  continue;
318
422
  }
@@ -320,7 +424,7 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, la
320
424
  fontFamily = valInit[0] === "$" ? valInit : val;
321
425
  }
322
426
  if (validStyleProps[key]) {
323
- usedKeys.add(key);
427
+ usedKeys[key] = 1;
324
428
  if (val && val[0] === "_") {
325
429
  classNames[key] = val;
326
430
  } else if (key in import_helpers.stylePropsTransform) {
@@ -333,7 +437,7 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, la
333
437
  if (!staticConfig.variants || !(key in staticConfig.variants)) {
334
438
  if (!skipProps[key]) {
335
439
  viewProps[key] = val;
336
- usedKeys.add(key);
440
+ usedKeys[key] = 1;
337
441
  }
338
442
  }
339
443
  }
@@ -342,10 +446,26 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, la
342
446
  if (import_constants.isWeb) {
343
447
  (0, import_getStylesAtomic.styleToCSS)(style);
344
448
  }
345
- if (defaultClassNames) {
346
- for (const key in defaultClassNames) {
347
- if (!(key in classNames)) {
348
- classNames[key] = defaultClassNames[key];
449
+ if (parentSplitStyles) {
450
+ if (process.env.TAMAGUI_TARGET === "web") {
451
+ for (const key in parentSplitStyles.classNames) {
452
+ if (key in classNames)
453
+ continue;
454
+ if (key in style)
455
+ continue;
456
+ const val = parentSplitStyles.classNames[key];
457
+ if (!shouldDoClasses) {
458
+ style[key] = (0, import_normalizeValueWithProperty.reverseMapClassNameToValue)(key, val);
459
+ } else {
460
+ classNames[key] = val;
461
+ }
462
+ }
463
+ }
464
+ if (!shouldDoClasses) {
465
+ for (const key in parentSplitStyles.style) {
466
+ if (key in style)
467
+ continue;
468
+ style[key] = parentSplitStyles.style[key];
349
469
  }
350
470
  }
351
471
  }
@@ -358,8 +478,6 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, la
358
478
  mergeClassName(transforms, classNames, key, atomicStyle.identifier);
359
479
  }
360
480
  }
361
- }
362
- if (process.env.TAMAGUI_TARGET === "web") {
363
481
  if (transforms) {
364
482
  for (const namespace in transforms) {
365
483
  if (!transforms[namespace]) {
@@ -447,7 +565,7 @@ function getSubStyleProxiedProps(defaultProps, baseProps, specificProps) {
447
565
  if (propProxies.has(specificProps)) {
448
566
  return propProxies.get(specificProps);
449
567
  }
450
- const next = new Proxy(specificProps, {
568
+ const next = (0, import_createProxy.createProxy)(specificProps, {
451
569
  has(_, key) {
452
570
  return key in defaultProps || key in specificProps || key in baseProps;
453
571
  },
@@ -510,13 +628,15 @@ function addStyleToInsertRules(rulesToInsert, styleObject) {
510
628
  rulesToInsert.push(styleObject);
511
629
  }
512
630
  }
631
+ function processIDRefList(idRefList) {
632
+ return Array.isArray(idRefList) ? idRefList.join(" ") : idRefList;
633
+ }
513
634
  // Annotate the CommonJS export names for ESM import in node:
514
635
  0 && (module.exports = {
515
636
  PROP_SPLIT,
516
637
  getSplitStyles,
517
638
  getSubStyle,
518
639
  insertSplitStyles,
519
- pseudoCNInverse,
520
640
  useSplitStyles
521
641
  });
522
642
  //# sourceMappingURL=getSplitStyles.js.map