react-native-unistyles 3.4.0 → 3.5.0

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 (185) hide show
  1. package/README.md +23 -7
  2. package/android/build.gradle +12 -1
  3. package/android/src/main/cxx/NativeUnistylesModule.cpp +8 -4
  4. package/android/src/main/cxx/NativeUnistylesModule.h +5 -1
  5. package/components/native/ActivityIndicator/package.json +1 -1
  6. package/cxx/common/UnistylesConstants.h +1 -0
  7. package/cxx/converters/TransformOriginConverter.cpp +106 -0
  8. package/cxx/core/StyleSheetRegistry.cpp +9 -9
  9. package/cxx/core/StyleSheetRegistry.h +3 -3
  10. package/cxx/core/UnistyleWrapper.h +13 -1
  11. package/cxx/core/UnistylesRegistry.cpp +102 -18
  12. package/cxx/core/UnistylesRegistry.h +42 -5
  13. package/cxx/hybridObjects/HybridShadowRegistry.cpp +124 -4
  14. package/cxx/hybridObjects/HybridShadowRegistry.h +20 -0
  15. package/cxx/hybridObjects/HybridStyleSheet.cpp +20 -12
  16. package/cxx/hybridObjects/HybridUnistylesRuntime.cpp +11 -1
  17. package/cxx/hybridObjects/HybridUnistylesRuntime.h +4 -2
  18. package/cxx/parser/Parser.cpp +29 -1
  19. package/cxx/parser/Parser.h +1 -0
  20. package/cxx/shadowTree/NativeProps.h +46 -2
  21. package/cxx/shadowTree/ShadowTrafficController.h +4 -0
  22. package/cxx/shadowTree/ShadowTreeDiagnostics.cpp +339 -0
  23. package/cxx/shadowTree/ShadowTreeDiagnostics.h +18 -0
  24. package/cxx/shadowTree/ShadowTreeManager.cpp +7 -1
  25. package/cxx/shadowTree/ShadowTreeManager.h +1 -1
  26. package/diagnostics/package.json +6 -0
  27. package/ios/UnistylesModuleOnLoad.mm +9 -3
  28. package/lib/commonjs/components/native/ActivityIndicator.native.js +10 -0
  29. package/lib/commonjs/components/native/ActivityIndicator.native.js.map +1 -0
  30. package/lib/commonjs/components/native/NativeText.js +6 -0
  31. package/lib/commonjs/components/native/NativeText.js.map +1 -1
  32. package/lib/commonjs/components/native/NativeText.native.js +17 -1
  33. package/lib/commonjs/components/native/NativeText.native.js.map +1 -1
  34. package/lib/commonjs/components/native/NativeView.js +6 -0
  35. package/lib/commonjs/components/native/NativeView.js.map +1 -1
  36. package/lib/commonjs/components/native/NativeView.native.js +22 -3
  37. package/lib/commonjs/components/native/NativeView.native.js.map +1 -1
  38. package/lib/commonjs/components/native/Pressable.js +7 -3
  39. package/lib/commonjs/components/native/Pressable.js.map +1 -1
  40. package/lib/commonjs/components/native/TouchableHighlight.native.js +10 -0
  41. package/lib/commonjs/components/native/TouchableHighlight.native.js.map +1 -0
  42. package/lib/commonjs/core/createUnistylesActivityIndicator.js +41 -0
  43. package/lib/commonjs/core/createUnistylesActivityIndicator.js.map +1 -0
  44. package/lib/commonjs/core/createUnistylesElement.js +59 -14
  45. package/lib/commonjs/core/createUnistylesElement.js.map +1 -1
  46. package/lib/commonjs/core/createUnistylesTouchableHighlight.js +58 -0
  47. package/lib/commonjs/core/createUnistylesTouchableHighlight.js.map +1 -0
  48. package/lib/commonjs/core/index.js +14 -0
  49. package/lib/commonjs/core/index.js.map +1 -1
  50. package/lib/commonjs/diagnostics/index.js +13 -0
  51. package/lib/commonjs/diagnostics/index.js.map +1 -0
  52. package/lib/commonjs/diagnostics/types.js +2 -0
  53. package/lib/commonjs/diagnostics/types.js.map +1 -0
  54. package/lib/commonjs/diagnostics/verify.js +19 -0
  55. package/lib/commonjs/diagnostics/verify.js.map +1 -0
  56. package/lib/commonjs/diagnostics/verify.native.js +12 -0
  57. package/lib/commonjs/diagnostics/verify.native.js.map +1 -0
  58. package/lib/commonjs/index.js +38 -0
  59. package/lib/commonjs/index.js.map +1 -1
  60. package/lib/commonjs/mocks.js +41 -0
  61. package/lib/commonjs/mocks.js.map +1 -1
  62. package/lib/commonjs/reanimated/variant/useUpdateVariantColor.native.js +8 -0
  63. package/lib/commonjs/reanimated/variant/useUpdateVariantColor.native.js.map +1 -1
  64. package/lib/commonjs/specs/ShadowRegistry/index.js +97 -1
  65. package/lib/commonjs/specs/ShadowRegistry/index.js.map +1 -1
  66. package/lib/commonjs/specs/StyleSheet/index.js +5 -1
  67. package/lib/commonjs/specs/StyleSheet/index.js.map +1 -1
  68. package/lib/commonjs/specs/UnistylesRuntime/index.js.map +1 -1
  69. package/lib/commonjs/web/registry.js +3 -0
  70. package/lib/commonjs/web/registry.js.map +1 -1
  71. package/lib/module/components/native/ActivityIndicator.native.js +6 -0
  72. package/lib/module/components/native/ActivityIndicator.native.js.map +1 -0
  73. package/lib/module/components/native/NativeText.js +1 -1
  74. package/lib/module/components/native/NativeText.js.map +1 -1
  75. package/lib/module/components/native/NativeText.native.js +15 -1
  76. package/lib/module/components/native/NativeText.native.js.map +1 -1
  77. package/lib/module/components/native/NativeView.js +1 -0
  78. package/lib/module/components/native/NativeView.js.map +1 -1
  79. package/lib/module/components/native/NativeView.native.js +19 -2
  80. package/lib/module/components/native/NativeView.native.js.map +1 -1
  81. package/lib/module/components/native/Pressable.js +7 -3
  82. package/lib/module/components/native/Pressable.js.map +1 -1
  83. package/lib/module/components/native/TouchableHighlight.native.js +6 -0
  84. package/lib/module/components/native/TouchableHighlight.native.js.map +1 -0
  85. package/lib/module/core/createUnistylesActivityIndicator.js +35 -0
  86. package/lib/module/core/createUnistylesActivityIndicator.js.map +1 -0
  87. package/lib/module/core/createUnistylesElement.js +58 -13
  88. package/lib/module/core/createUnistylesElement.js.map +1 -1
  89. package/lib/module/core/createUnistylesTouchableHighlight.js +52 -0
  90. package/lib/module/core/createUnistylesTouchableHighlight.js.map +1 -0
  91. package/lib/module/core/index.js +2 -0
  92. package/lib/module/core/index.js.map +1 -1
  93. package/lib/module/diagnostics/index.js +5 -0
  94. package/lib/module/diagnostics/index.js.map +1 -0
  95. package/lib/module/diagnostics/types.js +2 -0
  96. package/lib/module/diagnostics/types.js.map +1 -0
  97. package/lib/module/diagnostics/verify.js +14 -0
  98. package/lib/module/diagnostics/verify.js.map +1 -0
  99. package/lib/module/diagnostics/verify.native.js +8 -0
  100. package/lib/module/diagnostics/verify.native.js.map +1 -0
  101. package/lib/module/index.js +2 -0
  102. package/lib/module/index.js.map +1 -1
  103. package/lib/module/mocks.js +41 -0
  104. package/lib/module/mocks.js.map +1 -1
  105. package/lib/module/reanimated/variant/useUpdateVariantColor.native.js +9 -1
  106. package/lib/module/reanimated/variant/useUpdateVariantColor.native.js.map +1 -1
  107. package/lib/module/specs/ShadowRegistry/index.js +97 -1
  108. package/lib/module/specs/ShadowRegistry/index.js.map +1 -1
  109. package/lib/module/specs/StyleSheet/index.js +6 -1
  110. package/lib/module/specs/StyleSheet/index.js.map +1 -1
  111. package/lib/module/specs/UnistylesRuntime/index.js.map +1 -1
  112. package/lib/module/web/registry.js +3 -0
  113. package/lib/module/web/registry.js.map +1 -1
  114. package/lib/typescript/src/components/native/ActivityIndicator.native.d.ts +2 -0
  115. package/lib/typescript/src/components/native/ActivityIndicator.native.d.ts.map +1 -0
  116. package/lib/typescript/src/components/native/NativeText.d.ts +1 -1
  117. package/lib/typescript/src/components/native/NativeText.d.ts.map +1 -1
  118. package/lib/typescript/src/components/native/NativeText.native.d.ts.map +1 -1
  119. package/lib/typescript/src/components/native/NativeView.d.ts +1 -0
  120. package/lib/typescript/src/components/native/NativeView.d.ts.map +1 -1
  121. package/lib/typescript/src/components/native/NativeView.native.d.ts +2 -2
  122. package/lib/typescript/src/components/native/NativeView.native.d.ts.map +1 -1
  123. package/lib/typescript/src/components/native/Pressable.d.ts.map +1 -1
  124. package/lib/typescript/src/components/native/TouchableHighlight.native.d.ts +2 -0
  125. package/lib/typescript/src/components/native/TouchableHighlight.native.d.ts.map +1 -0
  126. package/lib/typescript/src/core/createUnistylesActivityIndicator.d.ts +3 -0
  127. package/lib/typescript/src/core/createUnistylesActivityIndicator.d.ts.map +1 -0
  128. package/lib/typescript/src/core/createUnistylesElement.d.ts.map +1 -1
  129. package/lib/typescript/src/core/createUnistylesTouchableHighlight.d.ts +3 -0
  130. package/lib/typescript/src/core/createUnistylesTouchableHighlight.d.ts.map +1 -0
  131. package/lib/typescript/src/core/index.d.ts +2 -0
  132. package/lib/typescript/src/core/index.d.ts.map +1 -1
  133. package/lib/typescript/src/core/useUnistyles.d.ts +1 -1
  134. package/lib/typescript/src/diagnostics/index.d.ts +3 -0
  135. package/lib/typescript/src/diagnostics/index.d.ts.map +1 -0
  136. package/lib/typescript/src/diagnostics/types.d.ts +19 -0
  137. package/lib/typescript/src/diagnostics/types.d.ts.map +1 -0
  138. package/lib/typescript/src/diagnostics/verify.d.ts +3 -0
  139. package/lib/typescript/src/diagnostics/verify.d.ts.map +1 -0
  140. package/lib/typescript/src/diagnostics/verify.native.d.ts +3 -0
  141. package/lib/typescript/src/diagnostics/verify.native.d.ts.map +1 -0
  142. package/lib/typescript/src/index.d.ts +4 -1
  143. package/lib/typescript/src/index.d.ts.map +1 -1
  144. package/lib/typescript/src/reanimated/variant/useUpdateVariantColor.native.d.ts.map +1 -1
  145. package/lib/typescript/src/specs/ShadowRegistry/index.d.ts +5 -1
  146. package/lib/typescript/src/specs/ShadowRegistry/index.d.ts.map +1 -1
  147. package/lib/typescript/src/specs/ShadowRegistry/types.d.ts +3 -0
  148. package/lib/typescript/src/specs/ShadowRegistry/types.d.ts.map +1 -1
  149. package/lib/typescript/src/specs/StyleSheet/index.d.ts +4 -1
  150. package/lib/typescript/src/specs/StyleSheet/index.d.ts.map +1 -1
  151. package/lib/typescript/src/specs/UnistylesRuntime/index.d.ts +2 -2
  152. package/lib/typescript/src/specs/UnistylesRuntime/index.d.ts.map +1 -1
  153. package/lib/typescript/src/types/breakpoints.d.ts +1 -1
  154. package/lib/typescript/src/types/breakpoints.d.ts.map +1 -1
  155. package/lib/typescript/src/types/stylesheet.d.ts +3 -3
  156. package/lib/typescript/src/types/stylesheet.d.ts.map +1 -1
  157. package/lib/typescript/src/web/registry.d.ts.map +1 -1
  158. package/package.json +9 -1
  159. package/plugin/index.d.ts +4 -4
  160. package/plugin/index.js +21 -5
  161. package/src/components/native/ActivityIndicator.native.tsx +5 -0
  162. package/src/components/native/NativeText.native.tsx +18 -1
  163. package/src/components/native/NativeText.tsx +1 -1
  164. package/src/components/native/NativeView.native.tsx +22 -2
  165. package/src/components/native/NativeView.tsx +2 -0
  166. package/src/components/native/Pressable.tsx +8 -3
  167. package/src/components/native/TouchableHighlight.native.tsx +5 -0
  168. package/src/core/createUnistylesActivityIndicator.tsx +47 -0
  169. package/src/core/createUnistylesElement.tsx +45 -14
  170. package/src/core/createUnistylesTouchableHighlight.tsx +69 -0
  171. package/src/core/index.ts +2 -0
  172. package/src/diagnostics/index.ts +3 -0
  173. package/src/diagnostics/types.ts +25 -0
  174. package/src/diagnostics/verify.native.ts +7 -0
  175. package/src/diagnostics/verify.ts +13 -0
  176. package/src/index.ts +4 -1
  177. package/src/mocks.ts +41 -0
  178. package/src/reanimated/variant/useUpdateVariantColor.native.ts +7 -1
  179. package/src/specs/ShadowRegistry/index.ts +128 -1
  180. package/src/specs/ShadowRegistry/types.ts +3 -0
  181. package/src/specs/StyleSheet/index.ts +10 -2
  182. package/src/specs/UnistylesRuntime/index.ts +7 -2
  183. package/src/types/breakpoints.ts +5 -3
  184. package/src/types/stylesheet.ts +3 -3
  185. package/src/web/registry.ts +3 -0
@@ -5,7 +5,9 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.UnistylesShadowRegistry = void 0;
7
7
  var _reactNativeNitroModules = require("react-native-nitro-modules");
8
+ var _StyleSheet = require("../StyleSheet");
8
9
  const HybridShadowRegistry = _reactNativeNitroModules.NitroModules.createHybridObject('UnistylesShadowRegistry');
10
+ const HOST_COMPONENT_TAG = 5;
9
11
  const SUSPENSE_TAG = 13;
10
12
  const OFFSCREEN_TAG = 22;
11
13
  const isInsideSuspendedBoundary = fiber => {
@@ -30,6 +32,98 @@ const findShadowNodeForHandle = handle => {
30
32
  }
31
33
  return node;
32
34
  };
35
+ const getNativeTag = handle => findFiberForHandle(handle)?.stateNode?.canonical?.nativeTag;
36
+
37
+ // by native tag, weak: views unmounted while frozen never unlink, their dead refs are dropped when the map doubles
38
+ const linkedHandles = new Map();
39
+ const MIN_SWEEP_SIZE = 256;
40
+ let sweepSize = MIN_SWEEP_SIZE;
41
+ const sweepUnmountedHandles = () => {
42
+ linkedHandles.forEach((ref, tag) => {
43
+ if (!ref.deref()) {
44
+ linkedHandles.delete(tag);
45
+ }
46
+ });
47
+ sweepSize = Math.max(MIN_SWEEP_SIZE, linkedHandles.size * 2);
48
+ };
49
+ const trackHandle = handle => {
50
+ const tag = getNativeTag(handle);
51
+
52
+ // views re-link on every render
53
+ if (tag === undefined || linkedHandles.get(tag)?.deref() === handle) {
54
+ return;
55
+ }
56
+ linkedHandles.set(tag, new WeakRef(handle));
57
+ if (linkedHandles.size >= sweepSize) {
58
+ sweepUnmountedHandles();
59
+ }
60
+ };
61
+ const untrackHandle = handle => {
62
+ const tag = getNativeTag(handle);
63
+ if (tag !== undefined && linkedHandles.get(tag)?.deref() === handle) {
64
+ linkedHandles.delete(tag);
65
+ }
66
+ };
67
+
68
+ // React re-attaches an untouched subtree through its root's node and only follows clones made on the JS thread.
69
+ // Once a node was cloned elsewhere (state updates, Reanimated), React would commit a subtree from before a Unistyles
70
+ // update, so after a Unistyles commit the committed nodes and their host ancestors must point at the committed tree
71
+ const refreshReactNodes = () => {
72
+ const tags = HybridShadowRegistry.takeCommittedTags();
73
+ if (tags.length === 0) {
74
+ return;
75
+ }
76
+ const nodes = new Set();
77
+ const visited = new Set();
78
+ for (const tag of tags) {
79
+ const handle = linkedHandles.get(tag)?.deref();
80
+ if (!handle) {
81
+ continue;
82
+ }
83
+ const fiber = findFiberForHandle(handle);
84
+
85
+ // hidden by Suspense or a frozen screen
86
+ if (!fiber || isInsideSuspendedBoundary(fiber)) {
87
+ continue;
88
+ }
89
+ for (let current = fiber; current && !visited.has(current); current = current.return) {
90
+ visited.add(current);
91
+ if (current.alternate) {
92
+ visited.add(current.alternate);
93
+ }
94
+ if (current.tag !== HOST_COMPONENT_TAG) {
95
+ continue;
96
+ }
97
+ for (const target of [current, current.alternate]) {
98
+ const node = target?.stateNode?.node;
99
+ if (node) {
100
+ nodes.add(node);
101
+ }
102
+ }
103
+ }
104
+ }
105
+ if (nodes.size > 0) {
106
+ HybridShadowRegistry.refreshReactNodes(Array.from(nodes));
107
+ }
108
+ };
109
+ _StyleSheet.StyleSheet.addChangeListener(refreshReactNodes);
110
+
111
+ // runs for every style on every link, so it allocates only for the rare merged style (eg. flattened by Animated)
112
+ const splitMergedUnistyles = style => {
113
+ let hasUnistyle = false;
114
+ for (const key in style) {
115
+ if (!key.startsWith('unistyles_') || !Object.prototype.hasOwnProperty.call(style, key)) {
116
+ continue;
117
+ }
118
+ if (hasUnistyle) {
119
+ return Object.keys(style).filter(unistyleKey => unistyleKey.startsWith('unistyles_')).map(unistyleKey => ({
120
+ [unistyleKey]: style[unistyleKey]
121
+ }));
122
+ }
123
+ hasUnistyle = true;
124
+ }
125
+ return style;
126
+ };
33
127
  HybridShadowRegistry.add = (handle, styles) => {
34
128
  // virtualized nodes can be null
35
129
  if (!handle || !styles) {
@@ -38,13 +132,14 @@ HybridShadowRegistry.add = (handle, styles) => {
38
132
  const stylesArray = Array.isArray(styles) ? styles.flat() : [styles];
39
133
 
40
134
  // filter styles that are undefined or with no keys
41
- const filteredStyles = stylesArray.filter(style => style && Object.keys(style).length > 0).flat().filter(Boolean);
135
+ const filteredStyles = stylesArray.filter(style => style && Object.keys(style).length > 0).flat().filter(Boolean).flatMap(splitMergedUnistyles);
42
136
  if (filteredStyles.length > 0) {
43
137
  const node = findShadowNodeForHandle(handle);
44
138
  if (!node) {
45
139
  throw new Error(`Unistyles: Could not find shadow node for one of your components of type ${handle?.constructor?.name ?? 'unknown'}`);
46
140
  }
47
141
  HybridShadowRegistry.link(node, filteredStyles);
142
+ trackHandle(handle);
48
143
  }
49
144
  };
50
145
  HybridShadowRegistry.remove = handle => {
@@ -58,6 +153,7 @@ HybridShadowRegistry.remove = handle => {
58
153
  HybridShadowRegistry.suspend(maybeNode);
59
154
  } else {
60
155
  HybridShadowRegistry.unlink(maybeNode);
156
+ untrackHandle(handle);
61
157
  }
62
158
  }
63
159
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeNitroModules","require","HybridShadowRegistry","NitroModules","createHybridObject","SUSPENSE_TAG","OFFSCREEN_TAG","isInsideSuspendedBoundary","fiber","current","return","tag","memoizedState","findFiberForHandle","handle","__internalInstanceHandle","getScrollResponder","getNativeScrollRef","_viewRef","viewRef","_nativeRef","findShadowNodeForHandle","node","stateNode","props","horizontal","constructor","name","Error","add","styles","stylesArray","Array","isArray","flat","filteredStyles","filter","style","Object","keys","length","Boolean","link","remove","maybeNode","suspend","unlink","UnistylesShadowRegistry","exports"],"sourceRoot":"../../../../src","sources":["specs/ShadowRegistry/index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNativeNitroModules","require","_StyleSheet","HybridShadowRegistry","NitroModules","createHybridObject","HOST_COMPONENT_TAG","SUSPENSE_TAG","OFFSCREEN_TAG","isInsideSuspendedBoundary","fiber","current","return","tag","memoizedState","findFiberForHandle","handle","__internalInstanceHandle","getScrollResponder","getNativeScrollRef","_viewRef","viewRef","_nativeRef","findShadowNodeForHandle","node","stateNode","props","horizontal","constructor","name","Error","getNativeTag","canonical","nativeTag","linkedHandles","Map","MIN_SWEEP_SIZE","sweepSize","sweepUnmountedHandles","forEach","ref","deref","delete","Math","max","size","trackHandle","undefined","get","set","WeakRef","untrackHandle","refreshReactNodes","tags","takeCommittedTags","length","nodes","Set","visited","has","add","alternate","target","Array","from","StyleSheet","addChangeListener","splitMergedUnistyles","style","hasUnistyle","key","startsWith","Object","prototype","hasOwnProperty","call","keys","filter","unistyleKey","map","styles","stylesArray","isArray","flat","filteredStyles","Boolean","flatMap","link","remove","maybeNode","suspend","unlink","UnistylesShadowRegistry","exports"],"sourceRoot":"../../../../src","sources":["specs/ShadowRegistry/index.ts"],"mappings":"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","ignoreList":[]}
@@ -7,8 +7,12 @@ exports.StyleSheet = void 0;
7
7
  var _reactNative = require("react-native");
8
8
  var _reactNativeNitroModules = require("react-native-nitro-modules");
9
9
  var _parseBoxShadow = require("../../core/parseBoxShadow");
10
+ // React Native 0.85 dropped `absoluteFillObject`, where `absoluteFill` is already a plain
11
+ // style object. Older versions still expose both, so the descriptor is read from React Native
12
+ // instead of being duplicated here.
13
+
10
14
  const HybridUnistylesStyleSheet = _reactNativeNitroModules.NitroModules.createHybridObject('UnistylesStyleSheet');
11
- HybridUnistylesStyleSheet.absoluteFillObject = _reactNative.StyleSheet.absoluteFill;
15
+ HybridUnistylesStyleSheet.absoluteFillObject = _reactNative.StyleSheet.absoluteFillObject ?? _reactNative.StyleSheet.absoluteFill;
12
16
  HybridUnistylesStyleSheet.absoluteFill = _reactNative.StyleSheet.absoluteFill;
13
17
  HybridUnistylesStyleSheet.flatten = _reactNative.StyleSheet.flatten;
14
18
  HybridUnistylesStyleSheet.compose = _reactNative.StyleSheet.compose;
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_reactNativeNitroModules","_parseBoxShadow","HybridUnistylesStyleSheet","NitroModules","createHybridObject","absoluteFillObject","NativeStyleSheet","absoluteFill","flatten","compose","jsMethods","processColor","parseBoxShadowString","init","StyleSheet","exports"],"sourceRoot":"../../../../src","sources":["specs/StyleSheet/index.ts"],"mappings":";;;;;;AAEA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,wBAAA,GAAAD,OAAA;AAMA,IAAAE,eAAA,GAAAF,OAAA;AA2CA,MAAMG,yBAAyB,GAAGC,qCAAY,CAACC,kBAAkB,CAAsB,qBAAqB,CAAC;AAE7GF,yBAAyB,CAACG,kBAAkB,GAAGC,uBAAgB,CAACC,YAAY;AAC5EL,yBAAyB,CAACK,YAAY,GAAGD,uBAAgB,CAACC,YAAY;AACtEL,yBAAyB,CAACM,OAAO,GAAGF,uBAAgB,CAACE,OAAO;AAC5DN,yBAAyB,CAACO,OAAO,GAAGH,uBAAgB,CAACG,OAAO;AAC5DP,yBAAyB,CAACQ,SAAS,GAAG;EAClCC,YAAY,EAAZA,yBAAY;EACZC,oBAAoB,EAApBA;AACJ,CAAC;AAEDV,yBAAyB,CAACW,IAAI,CAAC,CAAC;AAIzB,MAAMC,UAAU,GAAAC,OAAA,CAAAD,UAAA,GAAGZ,yBAAsE","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_reactNativeNitroModules","_parseBoxShadow","HybridUnistylesStyleSheet","NitroModules","createHybridObject","absoluteFillObject","NativeStyleSheet","absoluteFill","flatten","compose","jsMethods","processColor","parseBoxShadowString","init","StyleSheet","exports"],"sourceRoot":"../../../../src","sources":["specs/StyleSheet/index.ts"],"mappings":";;;;;;AAEA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,wBAAA,GAAAD,OAAA;AAMA,IAAAE,eAAA,GAAAF,OAAA;AA2BA;AACA;AACA;;AAqBA,MAAMG,yBAAyB,GAAGC,qCAAY,CAACC,kBAAkB,CAAsB,qBAAqB,CAAC;AAE7GF,yBAAyB,CAACG,kBAAkB,GAAKC,uBAAgB,CAA6BD,kBAAkB,IAC5GC,uBAAgB,CAACC,YAAmC;AACxDL,yBAAyB,CAACK,YAAY,GAAGD,uBAAgB,CAACC,YAAY;AACtEL,yBAAyB,CAACM,OAAO,GAAGF,uBAAgB,CAACE,OAAO;AAC5DN,yBAAyB,CAACO,OAAO,GAAGH,uBAAgB,CAACG,OAAO;AAC5DP,yBAAyB,CAACQ,SAAS,GAAG;EAClCC,YAAY,EAAZA,yBAAY;EACZC,oBAAoB,EAApBA;AACJ,CAAC;AAEDV,yBAAyB,CAACW,IAAI,CAAC,CAAC;AAIzB,MAAMC,UAAU,GAAAC,OAAA,CAAAD,UAAA,GAAGZ,yBAAsE","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_reactNativeNitroModules","_common","_StatusBar","HybridUnistylesRuntime","NitroModules","createHybridObject","statusBar","createHybridStatusBar","navigationBar","createHybridNavigationBar","setRootViewBackgroundColor","color","parsedColor","processColor","nativeSetRootViewBackgroundColor","isIOS","setImmersiveMode","isEnabled","setHidden","isAndroid","setImmersiveModeNative","attachStatusBarJSMethods","Runtime","exports"],"sourceRoot":"../../../../src","sources":["specs/UnistylesRuntime/index.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,wBAAA,GAAAD,OAAA;AAQA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AAmCA,MAAMI,sBAAsB,GAAGC,qCAAY,CAACC,kBAAkB,CAA0B,kBAAkB,CAAC;AAE3GF,sBAAsB,CAACG,SAAS,GAAGH,sBAAsB,CAACI,qBAAqB,CAAC,CAAC;AACjFJ,sBAAsB,CAACK,aAAa,GAAGL,sBAAsB,CAACM,yBAAyB,CAAC,CAAC;AAEzFN,sBAAsB,CAACO,0BAA0B,GAAIC,KAAc,IAAK;EACpE,MAAMC,WAAW,GAAG,IAAAC,yBAAY,EAACF,KAAK,CAAC,IAAI,CAAC;EAE5CR,sBAAsB,CAACW,gCAAgC,CAACF,WAAW,CAAC;AACxE,CAAC;AAED,IAAIG,aAAK,EAAE;EACPZ,sBAAsB,CAACa,gBAAgB,GAAIC,SAAkB,IACzDd,sBAAsB,CAACG,SAAS,CAACY,SAAS,CAACD,SAAS,EAAE,MAAM,CAAC;AACrE;AAEA,IAAIE,iBAAS,EAAE;EACXhB,sBAAsB,CAACa,gBAAgB,GAAGb,sBAAsB,CAACiB,sBAAsB;AAC3F;AAEA,IAAAC,mCAAwB,EAAClB,sBAAsB,CAACG,SAAS,CAAC;AAEnD,MAAMgB,OAAO,GAAAC,OAAA,CAAAD,OAAA,GAAGnB,sBAA0C","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_reactNativeNitroModules","_common","_StatusBar","HybridUnistylesRuntime","NitroModules","createHybridObject","statusBar","createHybridStatusBar","navigationBar","createHybridNavigationBar","setRootViewBackgroundColor","color","parsedColor","processColor","nativeSetRootViewBackgroundColor","isIOS","setImmersiveMode","isEnabled","setHidden","isAndroid","setImmersiveModeNative","attachStatusBarJSMethods","Runtime","exports"],"sourceRoot":"../../../../src","sources":["specs/UnistylesRuntime/index.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,wBAAA,GAAAD,OAAA;AAaA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AAmCA,MAAMI,sBAAsB,GAAGC,qCAAY,CAACC,kBAAkB,CAA0B,kBAAkB,CAAC;AAE3GF,sBAAsB,CAACG,SAAS,GAAGH,sBAAsB,CAACI,qBAAqB,CAAC,CAAC;AACjFJ,sBAAsB,CAACK,aAAa,GAAGL,sBAAsB,CAACM,yBAAyB,CAAC,CAAC;AAEzFN,sBAAsB,CAACO,0BAA0B,GAAIC,KAAc,IAAK;EACpE,MAAMC,WAAW,GAAG,IAAAC,yBAAY,EAACF,KAAK,CAAC,IAAI,CAAC;EAE5CR,sBAAsB,CAACW,gCAAgC,CAACF,WAAW,CAAC;AACxE,CAAC;AAED,IAAIG,aAAK,EAAE;EACPZ,sBAAsB,CAACa,gBAAgB,GAAIC,SAAkB,IACzDd,sBAAsB,CAACG,SAAS,CAACY,SAAS,CAACD,SAAS,EAAE,MAAM,CAAC;AACrE;AAEA,IAAIE,iBAAS,EAAE;EACXhB,sBAAsB,CAACa,gBAAgB,GAAGb,sBAAsB,CAACiB,sBAAsB;AAC3F;AAEA,IAAAC,mCAAwB,EAAClB,sBAAsB,CAACG,SAAS,CAAC;AAEnD,MAAMgB,OAAO,GAAAC,OAAA,CAAAD,OAAA,GAAGnB,sBAA0C","ignoreList":[]}
@@ -58,6 +58,9 @@ class UnistylesRegistry {
58
58
  const stylesCounter = this.stylesCounter.get(hash) ?? new Set();
59
59
  stylesCounter.delete(ref);
60
60
  if (stylesCounter.size === 0) {
61
+ // Safe to drop now: connect creates a new Set and the cleanup below only checks the DOM
62
+ this.stylesCounter.delete(hash);
63
+
61
64
  // Move this to the end of the event loop so the element is removed from the DOM
62
65
  return Promise.resolve().then(() => {
63
66
  // Check if element is still in the DOM
@@ -1 +1 @@
1
- {"version":3,"names":["_css","require","_utils","UnistylesRegistry","stylesheets","Map","stylesCache","Set","stylesCounter","disposeListenersMap","dependenciesMap","constructor","services","css","CSSState","getComputedStylesheet","stylesheet","scopedThemeName","scopedTheme","runtime","getTheme","error","miniRuntime","computedStylesheet","get","currentTheme","themeName","state","CSSVars","createdStylesheet","dependencies","Object","values","flatMap","value","extractUnistyleDependencies","addDependenciesToStylesheet","set","forEach","dependency","add","dispose","listener","addStylesheetListeners","Array","from","newComputedStylesheet","connect","ref","hash","remove","delete","size","Promise","resolve","then","document","querySelector","forChild","generatedHash","generateHash","has","applyStyles","existingHash","reset","clear","exports"],"sourceRoot":"../../../src","sources":["web/registry.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_css","require","_utils","UnistylesRegistry","stylesheets","Map","stylesCache","Set","stylesCounter","disposeListenersMap","dependenciesMap","constructor","services","css","CSSState","getComputedStylesheet","stylesheet","scopedThemeName","scopedTheme","runtime","getTheme","error","miniRuntime","computedStylesheet","get","currentTheme","themeName","state","CSSVars","createdStylesheet","dependencies","Object","values","flatMap","value","extractUnistyleDependencies","addDependenciesToStylesheet","set","forEach","dependency","add","dispose","listener","addStylesheetListeners","Array","from","newComputedStylesheet","connect","ref","hash","remove","delete","size","Promise","resolve","then","document","querySelector","forChild","generatedHash","generateHash","has","applyStyles","existingHash","reset","clear","exports"],"sourceRoot":"../../../src","sources":["web/registry.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ import { ActivityIndicator as NativeActivityIndicator } from 'react-native';
4
+ import { createUnistylesActivityIndicator } from '../../core';
5
+ export const ActivityIndicator = createUnistylesActivityIndicator(NativeActivityIndicator);
6
+ //# sourceMappingURL=ActivityIndicator.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ActivityIndicator","NativeActivityIndicator","createUnistylesActivityIndicator"],"sourceRoot":"../../../../src","sources":["components/native/ActivityIndicator.native.tsx"],"mappings":";;AAAA,SAASA,iBAAiB,IAAIC,uBAAuB,QAAQ,cAAc;AAE3E,SAASC,gCAAgC,QAAQ,YAAY;AAE7D,OAAO,MAAMF,iBAAiB,GAAGE,gCAAgC,CAACD,uBAAuB,CAAC","ignoreList":[]}
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
 
3
- export { Text } from './Text';
3
+ export { Text, Text as NativeText } from './Text';
4
4
  //# sourceMappingURL=NativeText.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Text"],"sourceRoot":"../../../../src","sources":["components/native/NativeText.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,QAAQ","ignoreList":[]}
1
+ {"version":3,"names":["Text","NativeText"],"sourceRoot":"../../../../src","sources":["components/native/NativeText.tsx"],"mappings":";;AAAA,SAASA,IAAI,EAAEA,IAAI,IAAIC,UAAU,QAAQ,QAAQ","ignoreList":[]}
@@ -1,11 +1,25 @@
1
1
  "use strict";
2
2
 
3
3
  import { createElement, forwardRef } from 'react';
4
+ import * as ReactNative from 'react-native';
4
5
  import { createUnistylesElement } from '../../core';
6
+ const RN = ReactNative;
7
+ const resolveRCTText = () => {
8
+ // RN 0.83+ re-exports the host component, which at runtime is the 'RCTText' string itself
9
+ if (typeof RN.unstable_NativeText === 'string') {
10
+ return RN.unstable_NativeText;
11
+ }
12
+
13
+ // older RN has no public handle on it, but reading Text evaluates the very same module
14
+ if (!RN.Text) {
15
+ throw new Error('Unistyles 🦄: react-native did not expose Text, unable to render NativeText');
16
+ }
17
+ return 'RCTText';
18
+ };
5
19
 
6
20
  // credits to @hirbod
7
21
  const LeanText = /*#__PURE__*/forwardRef((props, ref) => {
8
- return /*#__PURE__*/createElement('RCTText', {
22
+ return /*#__PURE__*/createElement(resolveRCTText(), {
9
23
  ...props,
10
24
  ref
11
25
  });
@@ -1 +1 @@
1
- {"version":3,"names":["createElement","forwardRef","createUnistylesElement","LeanText","props","ref","displayName","NativeText"],"sourceRoot":"../../../../src","sources":["components/native/NativeText.native.tsx"],"mappings":";;AAEA,SAA6BA,aAAa,EAAEC,UAAU,QAAQ,OAAO;AAErE,SAASC,sBAAsB,QAAQ,YAAY;;AAEnD;AACA,MAAMC,QAAQ,gBAAGF,UAAU,CAAC,CAACG,KAAK,EAAEC,GAAG,KAAK;EACxC,oBAAOL,aAAa,CAAC,SAAS,EAAE;IAAE,GAAGI,KAAK;IAAEC;EAAI,CAAC,CAAC;AACtD,CAAC,CAA6B;AAE9BF,QAAQ,CAACG,WAAW,GAAG,SAAS;AAEhC,OAAO,MAAMC,UAAU,GAAGL,sBAAsB,CAACC,QAAQ,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createElement","forwardRef","ReactNative","createUnistylesElement","RN","resolveRCTText","unstable_NativeText","Text","Error","LeanText","props","ref","displayName","NativeText"],"sourceRoot":"../../../../src","sources":["components/native/NativeText.native.tsx"],"mappings":";;AAEA,SAA6BA,aAAa,EAAEC,UAAU,QAAQ,OAAO;AACrE,OAAO,KAAKC,WAAW,MAAM,cAAc;AAE3C,SAASC,sBAAsB,QAAQ,YAAY;AAEnD,MAAMC,EAAE,GAAGF,WAAqE;AAEhF,MAAMG,cAAc,GAAGA,CAAA,KAAM;EACzB;EACA,IAAI,OAAOD,EAAE,CAACE,mBAAmB,KAAK,QAAQ,EAAE;IAC5C,OAAOF,EAAE,CAACE,mBAAmB;EACjC;;EAEA;EACA,IAAI,CAACF,EAAE,CAACG,IAAI,EAAE;IACV,MAAM,IAAIC,KAAK,CAAC,6EAA6E,CAAC;EAClG;EAEA,OAAO,SAAS;AACpB,CAAC;;AAED;AACA,MAAMC,QAAQ,gBAAGR,UAAU,CAAC,CAACS,KAAK,EAAEC,GAAG,KAAK;EACxC,oBAAOX,aAAa,CAACK,cAAc,CAAC,CAAC,EAAE;IAAE,GAAGK,KAAK;IAAEC;EAAI,CAAC,CAAC;AAC7D,CAAC,CAA6B;AAE9BF,QAAQ,CAACG,WAAW,GAAG,SAAS;AAEhC,OAAO,MAAMC,UAAU,GAAGV,sBAAsB,CAACM,QAAQ,CAAC","ignoreList":[]}
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  import { View } from './View';
4
+ export { View as NativeView };
4
5
  export default View;
5
6
  //# sourceMappingURL=NativeView.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["View"],"sourceRoot":"../../../../src","sources":["components/native/NativeView.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,QAAQ;AAE7B,eAAeA,IAAI","ignoreList":[]}
1
+ {"version":3,"names":["View","NativeView"],"sourceRoot":"../../../../src","sources":["components/native/NativeView.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,QAAQ;AAE7B,SAASA,IAAI,IAAIC,UAAU;AAE3B,eAAeD,IAAI","ignoreList":[]}
@@ -1,17 +1,34 @@
1
1
  "use strict";
2
2
 
3
3
  import { createElement, forwardRef } from 'react';
4
+ import * as ReactNative from 'react-native';
4
5
  import { createUnistylesElement } from '../../core';
6
+ const RN = ReactNative;
7
+ const resolveRCTView = () => {
8
+ // RN 0.83+ re-exports the host component, which at runtime is the 'RCTView' string itself
9
+ if (typeof RN.unstable_NativeView === 'string') {
10
+ return RN.unstable_NativeView;
11
+ }
12
+
13
+ // older RN has no public handle on it, but reading View evaluates the very same module
14
+ if (!RN.View) {
15
+ throw new Error('Unistyles 🦄: react-native did not expose View, unable to render NativeView');
16
+ }
17
+ return 'RCTView';
18
+ };
5
19
 
6
20
  // credits to @hirbod
7
21
  const LeanView = /*#__PURE__*/forwardRef((props, ref) => {
8
- return /*#__PURE__*/createElement('RCTView', {
22
+ return /*#__PURE__*/createElement(resolveRCTView(), {
9
23
  ...props,
10
24
  ref
11
25
  });
12
26
  });
13
27
  LeanView.displayName = 'RCTView';
14
28
 
29
+ // named export matches unstable_NativeView from react-native
30
+ export const NativeView = createUnistylesElement(LeanView);
31
+
15
32
  // this will match default export from react-native
16
- export default createUnistylesElement(LeanView);
33
+ export default NativeView;
17
34
  //# sourceMappingURL=NativeView.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createElement","forwardRef","createUnistylesElement","LeanView","props","ref","displayName"],"sourceRoot":"../../../../src","sources":["components/native/NativeView.native.tsx"],"mappings":";;AAEA,SAA6BA,aAAa,EAAEC,UAAU,QAAQ,OAAO;AAErE,SAASC,sBAAsB,QAAQ,YAAY;;AAEnD;AACA,MAAMC,QAAQ,gBAAGF,UAAU,CAAC,CAACG,KAAK,EAAEC,GAAG,KAAK;EACxC,oBAAOL,aAAa,CAAC,SAAS,EAAE;IAAE,GAAGI,KAAK;IAAEC;EAAI,CAAC,CAAC;AACtD,CAAC,CAA6B;AAE9BF,QAAQ,CAACG,WAAW,GAAG,SAAS;;AAEhC;AACA,eAAeJ,sBAAsB,CAACC,QAAQ,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createElement","forwardRef","ReactNative","createUnistylesElement","RN","resolveRCTView","unstable_NativeView","View","Error","LeanView","props","ref","displayName","NativeView"],"sourceRoot":"../../../../src","sources":["components/native/NativeView.native.tsx"],"mappings":";;AAEA,SAA6BA,aAAa,EAAEC,UAAU,QAAQ,OAAO;AACrE,OAAO,KAAKC,WAAW,MAAM,cAAc;AAE3C,SAASC,sBAAsB,QAAQ,YAAY;AAEnD,MAAMC,EAAE,GAAGF,WAAqE;AAEhF,MAAMG,cAAc,GAAGA,CAAA,KAAM;EACzB;EACA,IAAI,OAAOD,EAAE,CAACE,mBAAmB,KAAK,QAAQ,EAAE;IAC5C,OAAOF,EAAE,CAACE,mBAAmB;EACjC;;EAEA;EACA,IAAI,CAACF,EAAE,CAACG,IAAI,EAAE;IACV,MAAM,IAAIC,KAAK,CAAC,6EAA6E,CAAC;EAClG;EAEA,OAAO,SAAS;AACpB,CAAC;;AAED;AACA,MAAMC,QAAQ,gBAAGR,UAAU,CAAC,CAACS,KAAK,EAAEC,GAAG,KAAK;EACxC,oBAAOX,aAAa,CAACK,cAAc,CAAC,CAAC,EAAE;IAAE,GAAGK,KAAK;IAAEC;EAAI,CAAC,CAAC;AAC7D,CAAC,CAA6B;AAE9BF,QAAQ,CAACG,WAAW,GAAG,SAAS;;AAEhC;AACA,OAAO,MAAMC,UAAU,GAAGV,sBAAsB,CAACM,QAAQ,CAAC;;AAE1D;AACA,eAAeI,UAAU","ignoreList":[]}
@@ -18,9 +18,13 @@ export const Pressable = /*#__PURE__*/forwardRef(({
18
18
  return /*#__PURE__*/_jsx(NativePressableReactNative, {
19
19
  ...props,
20
20
  ref: isServer() ? undefined : ref => {
21
+ if (!ref) {
22
+ // @ts-expect-error hidden from TS
23
+ UnistylesShadowRegistry.remove(storedRef, classNames?.[0].hash);
24
+ }
21
25
  storedRef = ref;
22
26
  // @ts-expect-error hidden from TS
23
- UnistylesShadowRegistry.add(storedRef, classNames?.hash);
27
+ UnistylesShadowRegistry.add(storedRef, classNames?.[0].hash);
24
28
  if (typeof forwardedRef === 'function') {
25
29
  return forwardedRef(ref);
26
30
  }
@@ -34,10 +38,10 @@ export const Pressable = /*#__PURE__*/forwardRef(({
34
38
  UnistylesShadowRegistry.setScopedTheme(scopedTheme);
35
39
 
36
40
  // @ts-expect-error hidden from TS
37
- UnistylesShadowRegistry.remove(storedRef, classNames?.hash);
41
+ UnistylesShadowRegistry.remove(storedRef, classNames?.[0].hash);
38
42
  classNames = getClassName(styleResult);
39
43
  // @ts-expect-error hidden from TS
40
- UnistylesShadowRegistry.add(storedRef, classNames?.hash);
44
+ UnistylesShadowRegistry.add(storedRef, classNames?.[0].hash);
41
45
  UnistylesShadowRegistry.setScopedTheme(previousScopedTheme);
42
46
  return classNames;
43
47
  }
@@ -1 +1 @@
1
- {"version":3,"names":["React","forwardRef","Pressable","NativePressableReactNative","getClassName","UnistylesShadowRegistry","isServer","jsx","_jsx","style","props","forwardedRef","scopedTheme","getScopedTheme","storedRef","classNames","undefined","ref","add","hash","current","state","styleResult","previousScopedTheme","setScopedTheme","remove"],"sourceRoot":"../../../../src","sources":["components/native/Pressable.tsx"],"mappings":";;AAEA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,SAASC,SAAS,IAAIC,0BAA0B,QAAQ,cAAc;AAItE,SAASC,YAAY,QAAQ,YAAY;AACzC,SAASC,uBAAuB,QAAQ,aAAa;AACrD,SAASC,QAAQ,QAAQ,iBAAiB;;AAW1C;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAQA,OAAO,MAAMN,SAAyF,gBAAGD,UAAU,CAGjH,CAAC;EAAEQ,KAAK;EAAE,GAAGC;AAAM,CAAC,EAAEC,YAAY,KAAK;EACrC,MAAMC,WAAW,GAAGP,uBAAuB,CAACQ,cAAc,CAAC,CAAC;EAC5D,IAAIC,SAA6B,GAAG,IAAI;EACxC,IAAIC,UAAuD,GAAGC,SAAS;EAEvE,oBACIR,IAAA,CAACL,0BAA0B;IAAA,GACnBO,KAAK;IACTO,GAAG,EACCX,QAAQ,CAAC,CAAC,GACJU,SAAS,GACRC,GAAG,IAAK;MACLH,SAAS,GAAGG,GAA6B;MACzC;MACAZ,uBAAuB,CAACa,GAAG,CAACJ,SAAS,EAAEC,UAAU,EAAEI,IAAI,CAAC;MAExD,IAAI,OAAOR,YAAY,KAAK,UAAU,EAAE;QACpC,OAAOA,YAAY,CAACM,GAAG,CAAC;MAC5B;MAEA,IAAIN,YAAY,EAAE;QACdA,YAAY,CAACS,OAAO,GAAGH,GAAG;MAC9B;IACJ,CACT;IACDR,KAAK,EAAGY,KAAK,IAAK;MACd,MAAMC,WAAW,GAAG,OAAOb,KAAK,KAAK,UAAU,GAAGA,KAAK,CAACY,KAA0B,CAAC,GAAGZ,KAAK;MAC3F,MAAMc,mBAAmB,GAAGlB,uBAAuB,CAACQ,cAAc,CAAC,CAAC;MAEpER,uBAAuB,CAACmB,cAAc,CAACZ,WAAW,CAAC;;MAEnD;MACAP,uBAAuB,CAACoB,MAAM,CAACX,SAAS,EAAEC,UAAU,EAAEI,IAAI,CAAC;MAC3DJ,UAAU,GAAGX,YAAY,CAACkB,WAA8B,CAAC;MACzD;MACAjB,uBAAuB,CAACa,GAAG,CAACJ,SAAS,EAAEC,UAAU,EAAEI,IAAI,CAAC;MAExDd,uBAAuB,CAACmB,cAAc,CAACD,mBAAmB,CAAC;MAE3D,OAAOR,UAAU;IACrB;EAAE,CACL,CAAC;AAEV,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","forwardRef","Pressable","NativePressableReactNative","getClassName","UnistylesShadowRegistry","isServer","jsx","_jsx","style","props","forwardedRef","scopedTheme","getScopedTheme","storedRef","classNames","undefined","ref","remove","hash","add","current","state","styleResult","previousScopedTheme","setScopedTheme"],"sourceRoot":"../../../../src","sources":["components/native/Pressable.tsx"],"mappings":";;AAEA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,SAASC,SAAS,IAAIC,0BAA0B,QAAQ,cAAc;AAItE,SAASC,YAAY,QAAQ,YAAY;AACzC,SAASC,uBAAuB,QAAQ,aAAa;AACrD,SAASC,QAAQ,QAAQ,iBAAiB;;AAW1C;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAQA,OAAO,MAAMN,SAAyF,gBAAGD,UAAU,CAGjH,CAAC;EAAEQ,KAAK;EAAE,GAAGC;AAAM,CAAC,EAAEC,YAAY,KAAK;EACrC,MAAMC,WAAW,GAAGP,uBAAuB,CAACQ,cAAc,CAAC,CAAC;EAC5D,IAAIC,SAA6B,GAAG,IAAI;EACxC,IAAIC,UAAuD,GAAGC,SAAS;EAEvE,oBACIR,IAAA,CAACL,0BAA0B;IAAA,GACnBO,KAAK;IACTO,GAAG,EACCX,QAAQ,CAAC,CAAC,GACJU,SAAS,GACRC,GAAG,IAAK;MACL,IAAI,CAACA,GAAG,EAAE;QACN;QACAZ,uBAAuB,CAACa,MAAM,CAACJ,SAAS,EAAEC,UAAU,GAAG,CAAC,CAAC,CAACI,IAAI,CAAC;MACnE;MAEAL,SAAS,GAAGG,GAA6B;MACzC;MACAZ,uBAAuB,CAACe,GAAG,CAACN,SAAS,EAAEC,UAAU,GAAG,CAAC,CAAC,CAACI,IAAI,CAAC;MAE5D,IAAI,OAAOR,YAAY,KAAK,UAAU,EAAE;QACpC,OAAOA,YAAY,CAACM,GAAG,CAAC;MAC5B;MAEA,IAAIN,YAAY,EAAE;QACdA,YAAY,CAACU,OAAO,GAAGJ,GAAG;MAC9B;IACJ,CACT;IACDR,KAAK,EAAGa,KAAK,IAAK;MACd,MAAMC,WAAW,GAAG,OAAOd,KAAK,KAAK,UAAU,GAAGA,KAAK,CAACa,KAA0B,CAAC,GAAGb,KAAK;MAC3F,MAAMe,mBAAmB,GAAGnB,uBAAuB,CAACQ,cAAc,CAAC,CAAC;MAEpER,uBAAuB,CAACoB,cAAc,CAACb,WAAW,CAAC;;MAEnD;MACAP,uBAAuB,CAACa,MAAM,CAACJ,SAAS,EAAEC,UAAU,GAAG,CAAC,CAAC,CAACI,IAAI,CAAC;MAC/DJ,UAAU,GAAGX,YAAY,CAACmB,WAA8B,CAAC;MACzD;MACAlB,uBAAuB,CAACe,GAAG,CAACN,SAAS,EAAEC,UAAU,GAAG,CAAC,CAAC,CAACI,IAAI,CAAC;MAE5Dd,uBAAuB,CAACoB,cAAc,CAACD,mBAAmB,CAAC;MAE3D,OAAOT,UAAU;IACrB;EAAE,CACL,CAAC;AAEV,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ import { TouchableHighlight as NativeTouchableHighlight } from 'react-native';
4
+ import { createUnistylesTouchableHighlight } from '../../core';
5
+ export const TouchableHighlight = createUnistylesTouchableHighlight(NativeTouchableHighlight);
6
+ //# sourceMappingURL=TouchableHighlight.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["TouchableHighlight","NativeTouchableHighlight","createUnistylesTouchableHighlight"],"sourceRoot":"../../../../src","sources":["components/native/TouchableHighlight.native.tsx"],"mappings":";;AAAA,SAASA,kBAAkB,IAAIC,wBAAwB,QAAQ,cAAc;AAE7E,SAASC,iCAAiC,QAAQ,YAAY;AAE9D,OAAO,MAAMF,kBAAkB,GAAGE,iCAAiC,CAACD,wBAAwB,CAAC","ignoreList":[]}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import { isAndroid } from '../common';
5
+ import { UnistylesShadowRegistry } from '../specs';
6
+ import { copyComponentProperties } from '../utils';
7
+ import { passForwardedRef } from './passForwardRef';
8
+ import { maybeWarnAboutMultipleUnistyles } from './warn';
9
+ import { jsx as _jsx } from "react/jsx-runtime";
10
+ const getWrapperHandle = ref => {
11
+ const spinner = ref?.__internalInstanceHandle;
12
+ return {
13
+ __internalInstanceHandle: isAndroid ? spinner?.return?.return : spinner?.return
14
+ };
15
+ };
16
+ export const createUnistylesActivityIndicator = Component => {
17
+ const UnistylesActivityIndicator = props => {
18
+ return /*#__PURE__*/_jsx(Component, {
19
+ ...props,
20
+ ref: ref => {
21
+ maybeWarnAboutMultipleUnistyles(props.style, 'ActivityIndicator');
22
+ const wrapperHandle = getWrapperHandle(ref);
23
+ return passForwardedRef(ref, props.ref, () => {
24
+ // @ts-ignore this is hidden from TS
25
+ UnistylesShadowRegistry.add(wrapperHandle, props.style);
26
+ }, () => {
27
+ // @ts-ignore this is hidden from TS
28
+ UnistylesShadowRegistry.remove(wrapperHandle);
29
+ });
30
+ }
31
+ });
32
+ };
33
+ return copyComponentProperties(Component, UnistylesActivityIndicator);
34
+ };
35
+ //# sourceMappingURL=createUnistylesActivityIndicator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","isAndroid","UnistylesShadowRegistry","copyComponentProperties","passForwardedRef","maybeWarnAboutMultipleUnistyles","jsx","_jsx","getWrapperHandle","ref","spinner","__internalInstanceHandle","return","createUnistylesActivityIndicator","Component","UnistylesActivityIndicator","props","style","wrapperHandle","add","remove"],"sourceRoot":"../../../src","sources":["core/createUnistylesActivityIndicator.tsx"],"mappings":";;AAEA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,SAAS,QAAQ,WAAW;AACrC,SAASC,uBAAuB,QAAQ,UAAU;AAClD,SAASC,uBAAuB,QAAQ,UAAU;AAClD,SAASC,gBAAgB,QAAQ,kBAAkB;AACnD,SAASC,+BAA+B,QAAQ,QAAQ;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAExD,MAAMC,gBAAgB,GAAIC,GAAQ,IAAK;EACnC,MAAMC,OAAO,GAAGD,GAAG,EAAEE,wBAAwB;EAE7C,OAAO;IACHA,wBAAwB,EAAEV,SAAS,GAAGS,OAAO,EAAEE,MAAM,EAAEA,MAAM,GAAGF,OAAO,EAAEE;EAC7E,CAAC;AACL,CAAC;AAED,OAAO,MAAMC,gCAAgC,GAAIC,SAAmC,IAAK;EACrF,MAAMC,0BAA0B,GAAIC,KAAU,IAAK;IAC/C,oBACIT,IAAA,CAACO,SAAS;MAAA,GACFE,KAAK;MACTP,GAAG,EAAGA,GAAY,IAAK;QACnBJ,+BAA+B,CAACW,KAAK,CAACC,KAAK,EAAE,mBAAmB,CAAC;QAEjE,MAAMC,aAAa,GAAGV,gBAAgB,CAACC,GAAG,CAAC;QAE3C,OAAOL,gBAAgB,CACnBK,GAAG,EACHO,KAAK,CAACP,GAAG,EACT,MAAM;UACF;UACAP,uBAAuB,CAACiB,GAAG,CAACD,aAAa,EAAEF,KAAK,CAACC,KAAK,CAAC;QAC3D,CAAC,EACD,MAAM;UACF;UACAf,uBAAuB,CAACkB,MAAM,CAACF,aAAa,CAAC;QACjD,CACJ,CAAC;MACL;IAAE,CACL,CAAC;EAEV,CAAC;EAED,OAAOf,uBAAuB,CAACW,SAAS,EAAEC,0BAA0B,CAAC;AACzE,CAAC","ignoreList":[]}
@@ -1,32 +1,77 @@
1
1
  "use strict";
2
2
 
3
- import React from 'react';
3
+ import React, { useCallback, useLayoutEffect, useRef } from 'react';
4
4
  import { copyComponentProperties } from '../utils';
5
+ import * as unistyles from '../web/services';
5
6
  import { isServer } from '../web/utils';
6
- import { createUnistylesRef } from '../web/utils/createUnistylesRef';
7
7
  import { getClassName } from './getClassname';
8
8
  import { maybeWarnAboutMultipleUnistyles } from './warn';
9
9
  import { jsx as _jsx } from "react/jsx-runtime";
10
10
  const STYLE_PROPS = ['contentContainerStyle', 'columnWrapperStyle'];
11
- const buildUnistylesProps = (Component, props, forwardedRef) => {
11
+ const buildUnistylesProps = (Component, props) => {
12
12
  const componentStyleProps = ['style', ...STYLE_PROPS.filter(styleProp => styleProp in props)];
13
- const classNames = Object.fromEntries(componentStyleProps.map(styleProp => [styleProp, getClassName(props[styleProp])]));
14
- const refs = componentStyleProps.map(styleProp => {
15
- return createUnistylesRef(classNames[styleProp], styleProp === 'style' ? forwardedRef : undefined);
16
- });
17
13
  componentStyleProps.forEach(styleProp => {
18
14
  maybeWarnAboutMultipleUnistyles(props[styleProp], Component.displayName);
19
15
  });
20
- return {
21
- ...classNames,
22
- ref: isServer() ? undefined : componentRef => refs.forEach(ref => ref?.(componentRef))
23
- };
16
+ return Object.fromEntries(componentStyleProps.map(styleProp => [styleProp, getClassName(props[styleProp])]));
17
+ };
18
+ const assignRef = (ref, value) => {
19
+ if (typeof ref === 'function') {
20
+ ref(value);
21
+ } else if (ref) {
22
+ ref.current = value;
23
+ }
24
24
  };
25
25
  export const createUnistylesElement = Component => {
26
- const UnistylesComponent = props => {
26
+ const UnistylesComponent = ({
27
+ ref,
28
+ ...props
29
+ }) => {
30
+ const classNames = buildUnistylesProps(Component, props);
31
+ const hashes = Object.values(classNames).map(className => className?.[0].hash);
32
+ const stored = useRef({
33
+ node: null,
34
+ hashes,
35
+ ref
36
+ });
37
+ // Stable for the component lifetime, as some components (e.g. ScrollView) call only the latest ref on unmount
38
+ const unistylesRef = useCallback(node => {
39
+ const {
40
+ shadowRegistry
41
+ } = unistyles.services;
42
+ stored.current.hashes.forEach(hash => node ? shadowRegistry.add(node, hash) : shadowRegistry.remove(stored.current.node, hash));
43
+ stored.current.node = node;
44
+ assignRef(stored.current.ref, node);
45
+ }, []);
46
+
47
+ // React won't call a stable ref again, so apply style and ref changes after commit
48
+ useLayoutEffect(() => {
49
+ const {
50
+ shadowRegistry
51
+ } = unistyles.services;
52
+ const {
53
+ node,
54
+ hashes: previousHashes,
55
+ ref: previousRef
56
+ } = stored.current;
57
+ if (previousHashes.join() !== hashes.join()) {
58
+ previousHashes.forEach(hash => shadowRegistry.remove(node, hash));
59
+ hashes.forEach(hash => shadowRegistry.add(node, hash));
60
+ }
61
+ if (previousRef !== ref) {
62
+ assignRef(previousRef, null);
63
+ assignRef(ref, node);
64
+ }
65
+ stored.current = {
66
+ node,
67
+ hashes,
68
+ ref
69
+ };
70
+ });
27
71
  return /*#__PURE__*/_jsx(Component, {
28
72
  ...props,
29
- ...buildUnistylesProps(Component, props, props.ref)
73
+ ...classNames,
74
+ ref: isServer() ? undefined : unistylesRef
30
75
  });
31
76
  };
32
77
  return copyComponentProperties(Component, UnistylesComponent);
@@ -1 +1 @@
1
- {"version":3,"names":["React","copyComponentProperties","isServer","createUnistylesRef","getClassName","maybeWarnAboutMultipleUnistyles","jsx","_jsx","STYLE_PROPS","buildUnistylesProps","Component","props","forwardedRef","componentStyleProps","filter","styleProp","classNames","Object","fromEntries","map","refs","undefined","forEach","displayName","ref","componentRef","createUnistylesElement","UnistylesComponent"],"sourceRoot":"../../../src","sources":["core/createUnistylesElement.tsx"],"mappings":";;AAEA,OAAOA,KAAK,MAAM,OAAO;AAIzB,SAASC,uBAAuB,QAAQ,UAAU;AAClD,SAASC,QAAQ,QAAQ,cAAc;AACvC,SAASC,kBAAkB,QAAQ,iCAAiC;AACpE,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SAASC,+BAA+B,QAAQ,QAAQ;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAExD,MAAMC,WAAW,GAAG,CAAC,uBAAuB,EAAE,oBAAoB,CAAU;AAQ5E,MAAMC,mBAAmB,GAAGA,CAACC,SAAc,EAAEC,KAAqB,EAAEC,YAAyC,KAAK;EAC9G,MAAMC,mBAAmB,GAAG,CAAC,OAAO,EAAW,GAAGL,WAAW,CAACM,MAAM,CAAEC,SAAS,IAAKA,SAAS,IAAIJ,KAAK,CAAC,CAAC;EACxG,MAAMK,UAAU,GAAGC,MAAM,CAACC,WAAW,CACjCL,mBAAmB,CAACM,GAAG,CAAEJ,SAAS,IAAK,CAACA,SAAS,EAAEX,YAAY,CAACO,KAAK,CAACI,SAAS,CAAC,CAAC,CAAC,CACtF,CAAC;EACD,MAAMK,IAAI,GAAGP,mBAAmB,CAACM,GAAG,CAAEJ,SAAS,IAAK;IAChD,OAAOZ,kBAAkB,CAACa,UAAU,CAACD,SAAS,CAAC,EAAEA,SAAS,KAAK,OAAO,GAAGH,YAAY,GAAGS,SAAS,CAAC;EACtG,CAAC,CAAC;EAEFR,mBAAmB,CAACS,OAAO,CAAEP,SAAS,IAAK;IACvCV,+BAA+B,CAACM,KAAK,CAACI,SAAS,CAAC,EAAeL,SAAS,CAACa,WAAW,CAAC;EACzF,CAAC,CAAC;EAEF,OAAO;IACH,GAAGP,UAAU;IACbQ,GAAG,EAAEtB,QAAQ,CAAC,CAAC,GAAGmB,SAAS,GAAII,YAAiB,IAAKL,IAAI,CAACE,OAAO,CAAEE,GAAG,IAAKA,GAAG,GAAGC,YAAY,CAAC;EAClG,CAAC;AACL,CAAC;AAED,OAAO,MAAMC,sBAAsB,GAAIhB,SAAc,IAAK;EACtD,MAAMiB,kBAAkB,GAAIhB,KAAU,IAAK;IACvC,oBAAOJ,IAAA,CAACG,SAAS;MAAA,GAAKC,KAAK;MAAA,GAAMF,mBAAmB,CAACC,SAAS,EAAEC,KAAK,EAAEA,KAAK,CAACa,GAAG;IAAC,CAAG,CAAC;EACzF,CAAC;EAED,OAAOvB,uBAAuB,CAACS,SAAS,EAAEiB,kBAAkB,CAAC;AACjE,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useLayoutEffect","useRef","copyComponentProperties","unistyles","isServer","getClassName","maybeWarnAboutMultipleUnistyles","jsx","_jsx","STYLE_PROPS","buildUnistylesProps","Component","props","componentStyleProps","filter","styleProp","forEach","displayName","Object","fromEntries","map","assignRef","ref","value","current","createUnistylesElement","UnistylesComponent","classNames","hashes","values","className","hash","stored","node","unistylesRef","shadowRegistry","services","add","remove","previousHashes","previousRef","join","undefined"],"sourceRoot":"../../../src","sources":["core/createUnistylesElement.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ import React, { useCallback, useLayoutEffect, useRef, useState } from 'react';
4
+ import { UnistylesShadowRegistry } from '../specs';
5
+ import { copyComponentProperties } from '../utils';
6
+ import { passForwardedRef } from './passForwardRef';
7
+ import { maybeWarnAboutMultipleUnistyles } from './warn';
8
+ import { jsx as _jsx } from "react/jsx-runtime";
9
+ export const createUnistylesTouchableHighlight = Component => {
10
+ const UnistylesTouchableHighlight = props => {
11
+ const relinkRef = useRef(undefined);
12
+ const [hiddenUnderlays, setHiddenUnderlays] = useState(0);
13
+ useLayoutEffect(() => {
14
+ if (hiddenUnderlays > 0) {
15
+ relinkRef.current?.();
16
+ }
17
+ }, [hiddenUnderlays]);
18
+
19
+ // new props come with a parent render, re-renders for the underlay keep the ref and the scoped theme it captured
20
+ const ref = useCallback(ref => {
21
+ maybeWarnAboutMultipleUnistyles(props.style, 'TouchableHighlight');
22
+ const scopedTheme = UnistylesShadowRegistry.getScopedTheme();
23
+ relinkRef.current = () => {
24
+ const previousScopedTheme = UnistylesShadowRegistry.getScopedTheme();
25
+ UnistylesShadowRegistry.setScopedTheme(scopedTheme);
26
+ // @ts-ignore this is hidden from TS
27
+ UnistylesShadowRegistry.remove(ref);
28
+ // @ts-ignore this is hidden from TS
29
+ UnistylesShadowRegistry.add(ref, props.style);
30
+ UnistylesShadowRegistry.setScopedTheme(previousScopedTheme);
31
+ };
32
+ return passForwardedRef(ref, props.ref, () => {
33
+ // @ts-ignore this is hidden from TS
34
+ UnistylesShadowRegistry.add(ref, props.style);
35
+ }, () => {
36
+ relinkRef.current = undefined;
37
+ // @ts-ignore this is hidden from TS
38
+ UnistylesShadowRegistry.remove(ref);
39
+ });
40
+ }, [props]);
41
+ return /*#__PURE__*/_jsx(Component, {
42
+ ...props,
43
+ ref: ref,
44
+ onHideUnderlay: () => {
45
+ setHiddenUnderlays(count => count + 1);
46
+ props.onHideUnderlay?.();
47
+ }
48
+ });
49
+ };
50
+ return copyComponentProperties(Component, UnistylesTouchableHighlight);
51
+ };
52
+ //# sourceMappingURL=createUnistylesTouchableHighlight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useCallback","useLayoutEffect","useRef","useState","UnistylesShadowRegistry","copyComponentProperties","passForwardedRef","maybeWarnAboutMultipleUnistyles","jsx","_jsx","createUnistylesTouchableHighlight","Component","UnistylesTouchableHighlight","props","relinkRef","undefined","hiddenUnderlays","setHiddenUnderlays","current","ref","style","scopedTheme","getScopedTheme","previousScopedTheme","setScopedTheme","remove","add","onHideUnderlay","count"],"sourceRoot":"../../../src","sources":["core/createUnistylesTouchableHighlight.tsx"],"mappings":";;AAEA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,eAAe,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAE7E,SAASC,uBAAuB,QAAQ,UAAU;AAClD,SAASC,uBAAuB,QAAQ,UAAU;AAClD,SAASC,gBAAgB,QAAQ,kBAAkB;AACnD,SAASC,+BAA+B,QAAQ,QAAQ;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAExD,OAAO,MAAMC,iCAAiC,GAAIC,SAAoC,IAAK;EACvF,MAAMC,2BAA2B,GAAIC,KAAU,IAAK;IAChD,MAAMC,SAAS,GAAGZ,MAAM,CAAaa,SAAS,CAAC;IAC/C,MAAM,CAACC,eAAe,EAAEC,kBAAkB,CAAC,GAAGd,QAAQ,CAAC,CAAC,CAAC;IAEzDF,eAAe,CAAC,MAAM;MAClB,IAAIe,eAAe,GAAG,CAAC,EAAE;QACrBF,SAAS,CAACI,OAAO,GAAG,CAAC;MACzB;IACJ,CAAC,EAAE,CAACF,eAAe,CAAC,CAAC;;IAErB;IACA,MAAMG,GAAG,GAAGnB,WAAW,CAClBmB,GAAY,IAAK;MACdZ,+BAA+B,CAACM,KAAK,CAACO,KAAK,EAAE,oBAAoB,CAAC;MAElE,MAAMC,WAAW,GAAGjB,uBAAuB,CAACkB,cAAc,CAAC,CAAC;MAE5DR,SAAS,CAACI,OAAO,GAAG,MAAM;QACtB,MAAMK,mBAAmB,GAAGnB,uBAAuB,CAACkB,cAAc,CAAC,CAAC;QAEpElB,uBAAuB,CAACoB,cAAc,CAACH,WAAW,CAAC;QACnD;QACAjB,uBAAuB,CAACqB,MAAM,CAACN,GAAG,CAAC;QACnC;QACAf,uBAAuB,CAACsB,GAAG,CAACP,GAAG,EAAEN,KAAK,CAACO,KAAK,CAAC;QAC7ChB,uBAAuB,CAACoB,cAAc,CAACD,mBAAmB,CAAC;MAC/D,CAAC;MAED,OAAOjB,gBAAgB,CACnBa,GAAG,EACHN,KAAK,CAACM,GAAG,EACT,MAAM;QACF;QACAf,uBAAuB,CAACsB,GAAG,CAACP,GAAG,EAAEN,KAAK,CAACO,KAAK,CAAC;MACjD,CAAC,EACD,MAAM;QACFN,SAAS,CAACI,OAAO,GAAGH,SAAS;QAC7B;QACAX,uBAAuB,CAACqB,MAAM,CAACN,GAAG,CAAC;MACvC,CACJ,CAAC;IACL,CAAC,EACD,CAACN,KAAK,CACV,CAAC;IAED,oBACIJ,IAAA,CAACE,SAAS;MAAA,GACFE,KAAK;MACTM,GAAG,EAAEA,GAAI;MACTQ,cAAc,EAAEA,CAAA,KAAM;QAClBV,kBAAkB,CAAEW,KAAK,IAAKA,KAAK,GAAG,CAAC,CAAC;QACxCf,KAAK,CAACc,cAAc,GAAG,CAAC;MAC5B;IAAE,CACL,CAAC;EAEV,CAAC;EAED,OAAOtB,uBAAuB,CAACM,SAAS,EAAEC,2BAA2B,CAAC;AAC1E,CAAC","ignoreList":[]}