@lynx-js/react 0.105.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 (337) hide show
  1. package/CHANGELOG.md +250 -0
  2. package/LICENSE +202 -0
  3. package/README.md +20 -0
  4. package/components/lib/Page.d.ts +3 -0
  5. package/components/lib/Page.js +56 -0
  6. package/components/lib/Page.js.map +1 -0
  7. package/components/lib/index.d.ts +1 -0
  8. package/components/lib/index.js +5 -0
  9. package/components/lib/index.js.map +1 -0
  10. package/components/src/Page.ts +75 -0
  11. package/components/src/index.ts +5 -0
  12. package/package.json +162 -0
  13. package/refresh/.gitignore +1 -0
  14. package/refresh/.npmignore +3 -0
  15. package/refresh/.turbo/turbo-build.log +8 -0
  16. package/refresh/dist/index.js +311 -0
  17. package/refresh/package.json +21 -0
  18. package/refresh/src/index.ts +6 -0
  19. package/refresh/src/prefresh.d.ts +11 -0
  20. package/refresh/tsconfig.json +4 -0
  21. package/refresh/turbo.json +15 -0
  22. package/runtime/jsx-dev-runtime/index.d.ts +5 -0
  23. package/runtime/jsx-dev-runtime/index.js +4 -0
  24. package/runtime/jsx-runtime/index.d.ts +4 -0
  25. package/runtime/jsx-runtime/index.js +4 -0
  26. package/runtime/lazy/import.d.ts +1 -0
  27. package/runtime/lazy/import.js +55 -0
  28. package/runtime/lazy/internal.js +39 -0
  29. package/runtime/lazy/jsx-dev-runtime.js +12 -0
  30. package/runtime/lazy/jsx-runtime.js +12 -0
  31. package/runtime/lazy/legacy-react-runtime.js +20 -0
  32. package/runtime/lazy/react-lepus.js +9 -0
  33. package/runtime/lazy/react.js +46 -0
  34. package/runtime/lazy/target.js +11 -0
  35. package/runtime/lepus/index.d.ts +4 -0
  36. package/runtime/lepus/index.js +43 -0
  37. package/runtime/lepus/jsx-dev-runtime/index.js +4 -0
  38. package/runtime/lepus/jsx-runtime/index.js +66 -0
  39. package/runtime/lib/backgroundSnapshot.d.ts +23 -0
  40. package/runtime/lib/backgroundSnapshot.js +348 -0
  41. package/runtime/lib/backgroundSnapshot.js.map +1 -0
  42. package/runtime/lib/compat/componentIs.d.ts +4 -0
  43. package/runtime/lib/compat/componentIs.js +20 -0
  44. package/runtime/lib/compat/componentIs.js.map +1 -0
  45. package/runtime/lib/compat/initData.d.ts +43 -0
  46. package/runtime/lib/compat/initData.js +93 -0
  47. package/runtime/lib/compat/initData.js.map +1 -0
  48. package/runtime/lib/compat/lynxComponent.d.ts +5 -0
  49. package/runtime/lib/compat/lynxComponent.js +71 -0
  50. package/runtime/lib/compat/lynxComponent.js.map +1 -0
  51. package/runtime/lib/debug/debug.d.ts +2 -0
  52. package/runtime/lib/debug/debug.js +9 -0
  53. package/runtime/lib/debug/debug.js.map +1 -0
  54. package/runtime/lib/debug/printSnapshot.d.ts +3 -0
  55. package/runtime/lib/debug/printSnapshot.js +21 -0
  56. package/runtime/lib/debug/printSnapshot.js.map +1 -0
  57. package/runtime/lib/debug/profile.d.ts +1 -0
  58. package/runtime/lib/debug/profile.js +51 -0
  59. package/runtime/lib/debug/profile.js.map +1 -0
  60. package/runtime/lib/document.d.ts +4 -0
  61. package/runtime/lib/document.js +49 -0
  62. package/runtime/lib/document.js.map +1 -0
  63. package/runtime/lib/gesture/processGesture.d.ts +4 -0
  64. package/runtime/lib/gesture/processGesture.js +48 -0
  65. package/runtime/lib/gesture/processGesture.js.map +1 -0
  66. package/runtime/lib/gesture/processGestureBagkround.d.ts +2 -0
  67. package/runtime/lib/gesture/processGestureBagkround.js +16 -0
  68. package/runtime/lib/gesture/processGestureBagkround.js.map +1 -0
  69. package/runtime/lib/gesture/types.d.ts +34 -0
  70. package/runtime/lib/gesture/types.js +13 -0
  71. package/runtime/lib/gesture/types.js.map +1 -0
  72. package/runtime/lib/hooks/react.d.ts +26 -0
  73. package/runtime/lib/hooks/react.js +35 -0
  74. package/runtime/lib/hooks/react.js.map +1 -0
  75. package/runtime/lib/hooks/useLynxGlobalEventListener.d.ts +29 -0
  76. package/runtime/lib/hooks/useLynxGlobalEventListener.js +53 -0
  77. package/runtime/lib/hooks/useLynxGlobalEventListener.js.map +1 -0
  78. package/runtime/lib/hydrate.d.ts +18 -0
  79. package/runtime/lib/hydrate.js +271 -0
  80. package/runtime/lib/hydrate.js.map +1 -0
  81. package/runtime/lib/index.d.ts +9 -0
  82. package/runtime/lib/index.js +46 -0
  83. package/runtime/lib/index.js.map +1 -0
  84. package/runtime/lib/internal.d.ts +26 -0
  85. package/runtime/lib/internal.js +41 -0
  86. package/runtime/lib/internal.js.map +1 -0
  87. package/runtime/lib/legacy-react-runtime/index.d.ts +7 -0
  88. package/runtime/lib/legacy-react-runtime/index.js +34 -0
  89. package/runtime/lib/legacy-react-runtime/index.js.map +1 -0
  90. package/runtime/lib/lifecycle/delayUnmount.d.ts +8 -0
  91. package/runtime/lib/lifecycle/delayUnmount.js +68 -0
  92. package/runtime/lib/lifecycle/delayUnmount.js.map +1 -0
  93. package/runtime/lib/lifecycle/destroy.d.ts +2 -0
  94. package/runtime/lib/lifecycle/destroy.js +21 -0
  95. package/runtime/lib/lifecycle/destroy.js.map +1 -0
  96. package/runtime/lib/lifecycle/pass.d.ts +3 -0
  97. package/runtime/lib/lifecycle/pass.js +12 -0
  98. package/runtime/lib/lifecycle/pass.js.map +1 -0
  99. package/runtime/lib/lifecycle/patchUpdate.d.ts +23 -0
  100. package/runtime/lib/lifecycle/patchUpdate.js +179 -0
  101. package/runtime/lib/lifecycle/patchUpdate.js.map +1 -0
  102. package/runtime/lib/lifecycle/reload.d.ts +3 -0
  103. package/runtime/lib/lifecycle/reload.js +63 -0
  104. package/runtime/lib/lifecycle/reload.js.map +1 -0
  105. package/runtime/lib/lifecycle/render.d.ts +2 -0
  106. package/runtime/lib/lifecycle/render.js +44 -0
  107. package/runtime/lib/lifecycle/render.js.map +1 -0
  108. package/runtime/lib/lifecycleConstant.d.ts +12 -0
  109. package/runtime/lib/lifecycleConstant.js +17 -0
  110. package/runtime/lib/lifecycleConstant.js.map +1 -0
  111. package/runtime/lib/list.d.ts +40 -0
  112. package/runtime/lib/list.js +305 -0
  113. package/runtime/lib/list.js.map +1 -0
  114. package/runtime/lib/lynx/calledByNative.d.ts +2 -0
  115. package/runtime/lib/lynx/calledByNative.js +113 -0
  116. package/runtime/lib/lynx/calledByNative.js.map +1 -0
  117. package/runtime/lib/lynx/component.d.ts +1 -0
  118. package/runtime/lib/lynx/component.js +69 -0
  119. package/runtime/lib/lynx/component.js.map +1 -0
  120. package/runtime/lib/lynx/dynamic-js.d.ts +2 -0
  121. package/runtime/lib/lynx/dynamic-js.js +31 -0
  122. package/runtime/lib/lynx/dynamic-js.js.map +1 -0
  123. package/runtime/lib/lynx/env.d.ts +1 -0
  124. package/runtime/lib/lynx/env.js +92 -0
  125. package/runtime/lib/lynx/env.js.map +1 -0
  126. package/runtime/lib/lynx/injectLepusMethods.d.ts +2 -0
  127. package/runtime/lib/lynx/injectLepusMethods.js +50 -0
  128. package/runtime/lib/lynx/injectLepusMethods.js.map +1 -0
  129. package/runtime/lib/lynx/lazy-bundle.d.ts +9 -0
  130. package/runtime/lib/lynx/lazy-bundle.js +119 -0
  131. package/runtime/lib/lynx/lazy-bundle.js.map +1 -0
  132. package/runtime/lib/lynx/performance.d.ts +29 -0
  133. package/runtime/lib/lynx/performance.js +100 -0
  134. package/runtime/lib/lynx/performance.js.map +1 -0
  135. package/runtime/lib/lynx/tt.d.ts +4 -0
  136. package/runtime/lib/lynx/tt.js +193 -0
  137. package/runtime/lib/lynx/tt.js.map +1 -0
  138. package/runtime/lib/lynx-api.d.ts +311 -0
  139. package/runtime/lib/lynx-api.js +116 -0
  140. package/runtime/lib/lynx-api.js.map +1 -0
  141. package/runtime/lib/lynx.d.ts +2 -0
  142. package/runtime/lib/lynx.js +91 -0
  143. package/runtime/lib/lynx.js.map +1 -0
  144. package/runtime/lib/opcodes.d.ts +2 -0
  145. package/runtime/lib/opcodes.js +59 -0
  146. package/runtime/lib/opcodes.js.map +1 -0
  147. package/runtime/lib/renderToOpcodes/constants.d.ts +17 -0
  148. package/runtime/lib/renderToOpcodes/constants.js +23 -0
  149. package/runtime/lib/renderToOpcodes/constants.js.map +1 -0
  150. package/runtime/lib/renderToOpcodes/index.d.ts +13 -0
  151. package/runtime/lib/renderToOpcodes/index.js +227 -0
  152. package/runtime/lib/renderToOpcodes/index.js.map +1 -0
  153. package/runtime/lib/root.d.ts +7 -0
  154. package/runtime/lib/root.js +17 -0
  155. package/runtime/lib/root.js.map +1 -0
  156. package/runtime/lib/snapshot/event.d.ts +3 -0
  157. package/runtime/lib/snapshot/event.js +24 -0
  158. package/runtime/lib/snapshot/event.js.map +1 -0
  159. package/runtime/lib/snapshot/gesture.d.ts +2 -0
  160. package/runtime/lib/snapshot/gesture.js +18 -0
  161. package/runtime/lib/snapshot/gesture.js.map +1 -0
  162. package/runtime/lib/snapshot/platformInfo.d.ts +4 -0
  163. package/runtime/lib/snapshot/platformInfo.js +35 -0
  164. package/runtime/lib/snapshot/platformInfo.js.map +1 -0
  165. package/runtime/lib/snapshot/ref.d.ts +10 -0
  166. package/runtime/lib/snapshot/ref.js +119 -0
  167. package/runtime/lib/snapshot/ref.js.map +1 -0
  168. package/runtime/lib/snapshot/spread.d.ts +5 -0
  169. package/runtime/lib/snapshot/spread.js +289 -0
  170. package/runtime/lib/snapshot/spread.js.map +1 -0
  171. package/runtime/lib/snapshot/workletEvent.d.ts +3 -0
  172. package/runtime/lib/snapshot/workletEvent.js +22 -0
  173. package/runtime/lib/snapshot/workletEvent.js.map +1 -0
  174. package/runtime/lib/snapshot/workletRef.d.ts +5 -0
  175. package/runtime/lib/snapshot/workletRef.js +52 -0
  176. package/runtime/lib/snapshot/workletRef.js.map +1 -0
  177. package/runtime/lib/snapshot.d.ts +81 -0
  178. package/runtime/lib/snapshot.js +477 -0
  179. package/runtime/lib/snapshot.js.map +1 -0
  180. package/runtime/lib/snapshotPatch.d.ts +14 -0
  181. package/runtime/lib/snapshotPatch.js +31 -0
  182. package/runtime/lib/snapshotPatch.js.map +1 -0
  183. package/runtime/lib/snapshotPatchApply.d.ts +2 -0
  184. package/runtime/lib/snapshotPatchApply.js +110 -0
  185. package/runtime/lib/snapshotPatchApply.js.map +1 -0
  186. package/runtime/lib/utils.d.ts +4 -0
  187. package/runtime/lib/utils.js +32 -0
  188. package/runtime/lib/utils.js.map +1 -0
  189. package/runtime/lib/worklet/ctx.d.ts +1 -0
  190. package/runtime/lib/worklet/ctx.js +17 -0
  191. package/runtime/lib/worklet/ctx.js.map +1 -0
  192. package/runtime/lib/worklet/execMap.d.ts +1 -0
  193. package/runtime/lib/worklet/execMap.js +42 -0
  194. package/runtime/lib/worklet/execMap.js.map +1 -0
  195. package/runtime/lib/worklet/functionality.d.ts +1 -0
  196. package/runtime/lib/worklet/functionality.js +11 -0
  197. package/runtime/lib/worklet/functionality.js.map +1 -0
  198. package/runtime/lib/worklet/hmr.d.ts +1 -0
  199. package/runtime/lib/worklet/hmr.js +21 -0
  200. package/runtime/lib/worklet/hmr.js.map +1 -0
  201. package/runtime/lib/worklet/indexMap.d.ts +8 -0
  202. package/runtime/lib/worklet/indexMap.js +17 -0
  203. package/runtime/lib/worklet/indexMap.js.map +1 -0
  204. package/runtime/lib/worklet/jsImpl.d.ts +11 -0
  205. package/runtime/lib/worklet/jsImpl.js +68 -0
  206. package/runtime/lib/worklet/jsImpl.js.map +1 -0
  207. package/runtime/lib/worklet/runWorklet.d.ts +14 -0
  208. package/runtime/lib/worklet/runWorklet.js +82 -0
  209. package/runtime/lib/worklet/runWorklet.js.map +1 -0
  210. package/runtime/lib/worklet/workletRef.d.ts +131 -0
  211. package/runtime/lib/worklet/workletRef.js +96 -0
  212. package/runtime/lib/worklet/workletRef.js.map +1 -0
  213. package/runtime/lib/worklet/workletRefPool.d.ts +2 -0
  214. package/runtime/lib/worklet/workletRefPool.js +22 -0
  215. package/runtime/lib/worklet/workletRefPool.js.map +1 -0
  216. package/runtime/src/backgroundSnapshot.ts +452 -0
  217. package/runtime/src/compat/componentIs.ts +30 -0
  218. package/runtime/src/compat/initData.ts +140 -0
  219. package/runtime/src/compat/lynxComponent.ts +80 -0
  220. package/runtime/src/debug/debug.ts +9 -0
  221. package/runtime/src/debug/printSnapshot.ts +28 -0
  222. package/runtime/src/debug/profile.ts +54 -0
  223. package/runtime/src/document.ts +53 -0
  224. package/runtime/src/gesture/processGesture.ts +77 -0
  225. package/runtime/src/gesture/processGestureBagkround.ts +15 -0
  226. package/runtime/src/gesture/types.ts +39 -0
  227. package/runtime/src/hooks/react.ts +62 -0
  228. package/runtime/src/hooks/useLynxGlobalEventListener.ts +59 -0
  229. package/runtime/src/hydrate.ts +364 -0
  230. package/runtime/src/index.ts +89 -0
  231. package/runtime/src/internal.ts +60 -0
  232. package/runtime/src/legacy-react-runtime/index.ts +40 -0
  233. package/runtime/src/lifecycle/delayUnmount.ts +77 -0
  234. package/runtime/src/lifecycle/destroy.ts +26 -0
  235. package/runtime/src/lifecycle/pass.ts +14 -0
  236. package/runtime/src/lifecycle/patchUpdate.ts +240 -0
  237. package/runtime/src/lifecycle/reload.ts +79 -0
  238. package/runtime/src/lifecycle/render.ts +46 -0
  239. package/runtime/src/lifecycleConstant.ts +16 -0
  240. package/runtime/src/list.ts +375 -0
  241. package/runtime/src/lynx/calledByNative.ts +132 -0
  242. package/runtime/src/lynx/component.ts +116 -0
  243. package/runtime/src/lynx/dynamic-js.ts +33 -0
  244. package/runtime/src/lynx/env.ts +110 -0
  245. package/runtime/src/lynx/injectLepusMethods.ts +53 -0
  246. package/runtime/src/lynx/lazy-bundle.ts +126 -0
  247. package/runtime/src/lynx/performance.ts +117 -0
  248. package/runtime/src/lynx/tt.ts +212 -0
  249. package/runtime/src/lynx-api.ts +374 -0
  250. package/runtime/src/lynx.ts +105 -0
  251. package/runtime/src/opcodes.ts +64 -0
  252. package/runtime/src/renderToOpcodes/constants.ts +24 -0
  253. package/runtime/src/renderToOpcodes/index.ts +301 -0
  254. package/runtime/src/root.ts +19 -0
  255. package/runtime/src/snapshot/event.ts +33 -0
  256. package/runtime/src/snapshot/gesture.ts +25 -0
  257. package/runtime/src/snapshot/platformInfo.ts +48 -0
  258. package/runtime/src/snapshot/ref.ts +151 -0
  259. package/runtime/src/snapshot/spread.ts +287 -0
  260. package/runtime/src/snapshot/workletEvent.ts +33 -0
  261. package/runtime/src/snapshot/workletRef.ts +63 -0
  262. package/runtime/src/snapshot.ts +576 -0
  263. package/runtime/src/snapshotPatch.ts +56 -0
  264. package/runtime/src/snapshotPatchApply.ts +117 -0
  265. package/runtime/src/utils.ts +35 -0
  266. package/runtime/src/worklet/ctx.ts +22 -0
  267. package/runtime/src/worklet/execMap.ts +50 -0
  268. package/runtime/src/worklet/functionality.ts +12 -0
  269. package/runtime/src/worklet/hmr.ts +26 -0
  270. package/runtime/src/worklet/indexMap.ts +20 -0
  271. package/runtime/src/worklet/jsImpl.ts +86 -0
  272. package/runtime/src/worklet/runWorklet.ts +88 -0
  273. package/runtime/src/worklet/workletRef.ts +229 -0
  274. package/runtime/src/worklet/workletRefPool.ts +25 -0
  275. package/transform/cjs/main.cjs +6 -0
  276. package/transform/cjs/main.d.cts +3 -0
  277. package/transform/cjs/package.json +3 -0
  278. package/transform/dist/wasm.cjs +8478 -0
  279. package/transform/index.d.ts +187 -0
  280. package/transform/main.js +15 -0
  281. package/types/react.d.ts +147 -0
  282. package/types/react.docs.d.ts +74 -0
  283. package/worklet-runtime/dist/dev.js +414 -0
  284. package/worklet-runtime/dist/dev.js.map +8 -0
  285. package/worklet-runtime/dist/main.js +414 -0
  286. package/worklet-runtime/dist/main.js.map +8 -0
  287. package/worklet-runtime/lib/api/element.d.ts +14 -0
  288. package/worklet-runtime/lib/api/element.js +71 -0
  289. package/worklet-runtime/lib/api/element.js.map +1 -0
  290. package/worklet-runtime/lib/api/lepusQuerySelector.d.ts +3 -0
  291. package/worklet-runtime/lib/api/lepusQuerySelector.js +23 -0
  292. package/worklet-runtime/lib/api/lepusQuerySelector.js.map +1 -0
  293. package/worklet-runtime/lib/api/lynxApi.d.ts +2 -0
  294. package/worklet-runtime/lib/api/lynxApi.js +35 -0
  295. package/worklet-runtime/lib/api/lynxApi.js.map +1 -0
  296. package/worklet-runtime/lib/bindings/bindings.d.ts +14 -0
  297. package/worklet-runtime/lib/bindings/bindings.js +61 -0
  298. package/worklet-runtime/lib/bindings/bindings.js.map +1 -0
  299. package/worklet-runtime/lib/bindings/events.d.ts +7 -0
  300. package/worklet-runtime/lib/bindings/events.js +9 -0
  301. package/worklet-runtime/lib/bindings/events.js.map +1 -0
  302. package/worklet-runtime/lib/bindings/index.d.ts +4 -0
  303. package/worklet-runtime/lib/bindings/index.js +7 -0
  304. package/worklet-runtime/lib/bindings/index.js.map +1 -0
  305. package/worklet-runtime/lib/bindings/loadRuntime.d.ts +8 -0
  306. package/worklet-runtime/lib/bindings/loadRuntime.js +25 -0
  307. package/worklet-runtime/lib/bindings/loadRuntime.js.map +1 -0
  308. package/worklet-runtime/lib/bindings/types.d.ts +35 -0
  309. package/worklet-runtime/lib/bindings/types.js +2 -0
  310. package/worklet-runtime/lib/bindings/types.js.map +1 -0
  311. package/worklet-runtime/lib/delayWorkletEvent.d.ts +11 -0
  312. package/worklet-runtime/lib/delayWorkletEvent.js +49 -0
  313. package/worklet-runtime/lib/delayWorkletEvent.js.map +1 -0
  314. package/worklet-runtime/lib/global.d.ts +15 -0
  315. package/worklet-runtime/lib/global.js +2 -0
  316. package/worklet-runtime/lib/global.js.map +1 -0
  317. package/worklet-runtime/lib/index.d.ts +1 -0
  318. package/worklet-runtime/lib/index.js +12 -0
  319. package/worklet-runtime/lib/index.js.map +1 -0
  320. package/worklet-runtime/lib/jsFunctionLifecycle.d.ts +18 -0
  321. package/worklet-runtime/lib/jsFunctionLifecycle.js +55 -0
  322. package/worklet-runtime/lib/jsFunctionLifecycle.js.map +1 -0
  323. package/worklet-runtime/lib/listeners.d.ts +2 -0
  324. package/worklet-runtime/lib/listeners.js +17 -0
  325. package/worklet-runtime/lib/listeners.js.map +1 -0
  326. package/worklet-runtime/lib/utils/profile.d.ts +1 -0
  327. package/worklet-runtime/lib/utils/profile.js +20 -0
  328. package/worklet-runtime/lib/utils/profile.js.map +1 -0
  329. package/worklet-runtime/lib/utils/version.d.ts +1 -0
  330. package/worklet-runtime/lib/utils/version.js +10 -0
  331. package/worklet-runtime/lib/utils/version.js.map +1 -0
  332. package/worklet-runtime/lib/workletRef.d.ts +12 -0
  333. package/worklet-runtime/lib/workletRef.js +50 -0
  334. package/worklet-runtime/lib/workletRef.js.map +1 -0
  335. package/worklet-runtime/lib/workletRuntime.d.ts +2 -0
  336. package/worklet-runtime/lib/workletRuntime.js +128 -0
  337. package/worklet-runtime/lib/workletRuntime.js.map +1 -0
@@ -0,0 +1,12 @@
1
+ // Copyright 2024 The Lynx Authors. All rights reserved.
2
+ // Licensed under the Apache License Version 2.0 that can be found in the
3
+ // LICENSE file in the root directory of this source tree.
4
+
5
+ import { sExportsJSXDevRuntime, target } from './target';
6
+
7
+ export const {
8
+ Fragment,
9
+ jsx,
10
+ jsxDEV,
11
+ jsxs,
12
+ } = target[sExportsJSXDevRuntime];
@@ -0,0 +1,12 @@
1
+ // Copyright 2024 The Lynx Authors. All rights reserved.
2
+ // Licensed under the Apache License Version 2.0 that can be found in the
3
+ // LICENSE file in the root directory of this source tree.
4
+
5
+ import { sExportsJSXRuntime, target } from './target';
6
+
7
+ export const {
8
+ Fragment,
9
+ jsx,
10
+ jsxDEV,
11
+ jsxs,
12
+ } = target[sExportsJSXRuntime];
@@ -0,0 +1,20 @@
1
+ // Copyright 2024 The Lynx Authors. All rights reserved.
2
+ // Licensed under the Apache License Version 2.0 that can be found in the
3
+ // LICENSE file in the root directory of this source tree.
4
+
5
+ import { sExportsLegacyReactRuntime, target } from './target';
6
+
7
+ export const {
8
+ Component,
9
+ PureComponent,
10
+ __runInJS,
11
+ createContext,
12
+ lazy,
13
+ useCallback,
14
+ useEffect,
15
+ useMemo,
16
+ useReducer,
17
+ useState,
18
+ } = target[sExportsLegacyReactRuntime];
19
+
20
+ export default target[sExportsLegacyReactRuntime]['default'];
@@ -0,0 +1,9 @@
1
+ // Copyright 2024 The Lynx Authors. All rights reserved.
2
+ // Licensed under the Apache License Version 2.0 that can be found in the
3
+ // LICENSE file in the root directory of this source tree.
4
+
5
+ import { sExportsReactLepus, target } from './target';
6
+
7
+ export const {
8
+ createElement,
9
+ } = target[sExportsReactLepus];
@@ -0,0 +1,46 @@
1
+ // Copyright 2024 The Lynx Authors. All rights reserved.
2
+ // Licensed under the Apache License Version 2.0 that can be found in the
3
+ // LICENSE file in the root directory of this source tree.
4
+
5
+ import { sExportsReact, target } from './target';
6
+
7
+ export const {
8
+ Children,
9
+ Component,
10
+ Fragment,
11
+ InitDataConsumer,
12
+ InitDataProvider,
13
+ MainThreadRef,
14
+ PureComponent,
15
+ Suspense,
16
+ createContext,
17
+ createElement,
18
+ createRef,
19
+ forwardRef,
20
+ isValidElement,
21
+ lazy,
22
+ memo,
23
+ root,
24
+ runOnBackground,
25
+ runOnMainThread,
26
+ useCallback,
27
+ useContext,
28
+ useDebugValue,
29
+ useEffect,
30
+ useErrorBoundary,
31
+ useId,
32
+ useImperativeHandle,
33
+ useInitData,
34
+ useInitDataChanged,
35
+ useLynxGlobalEventListener,
36
+ useLayoutEffect,
37
+ useMainThreadRef,
38
+ useMemo,
39
+ useReducer,
40
+ useRef,
41
+ useState,
42
+ useSyncExternalStore,
43
+ withInitDataInState,
44
+ } = target[sExportsReact];
45
+
46
+ export default target[sExportsReact]['default'];
@@ -0,0 +1,11 @@
1
+ // Copyright 2024 The Lynx Authors. All rights reserved.
2
+ // Licensed under the Apache License Version 2.0 that can be found in the
3
+ // LICENSE file in the root directory of this source tree.
4
+ export const target = __LEPUS__ ? globalThis : lynx;
5
+
6
+ export const sExportsReact = Symbol.for('__REACT_LYNX_EXPORTS__(@lynx-js/react)');
7
+ export const sExportsReactLepus = Symbol.for('__REACT_LYNX_EXPORTS__(@lynx-js/react/lepus)');
8
+ export const sExportsReactInternal = Symbol.for('__REACT_LYNX_EXPORTS__(@lynx-js/react/internal)');
9
+ export const sExportsJSXRuntime = Symbol.for('__REACT_LYNX_EXPORTS__(@lynx-js/react/jsx-runtime)');
10
+ export const sExportsJSXDevRuntime = Symbol.for('__REACT_LYNX_EXPORTS__(@lynx-js/react/jsx-dev-runtime)');
11
+ export const sExportsLegacyReactRuntime = Symbol.for('__REACT_LYNX_EXPORTS__(@lynx-js/react/legacy-react-runtime)');
@@ -0,0 +1,4 @@
1
+ // Copyright 2024 The Lynx Authors. All rights reserved.
2
+ // Licensed under the Apache License Version 2.0 that can be found in the
3
+ // LICENSE file in the root directory of this source tree.
4
+ export { createElement } from 'react';
@@ -0,0 +1,43 @@
1
+ // Copyright 2024 The Lynx Authors. All rights reserved.
2
+ // Licensed under the Apache License Version 2.0 that can be found in the
3
+ // LICENSE file in the root directory of this source tree.
4
+ import { jsx as createVNode } from './jsx-runtime';
5
+
6
+ const slice = /* @__PURE__ */ [].slice;
7
+
8
+ /**
9
+ * Create an virtual node (used for JSX)
10
+ * @param {VNode["type"]} type The node name or Component constructor for this
11
+ * virtual node
12
+ * @param {object | null | undefined} [props] The properties of the virtual node
13
+ * @param {Array<import('.').ComponentChildren>} [children] The children of the
14
+ * virtual node
15
+ * @returns {VNode}
16
+ */
17
+ export function createElement(type, props, children) {
18
+ let normalizedProps = {},
19
+ key,
20
+ ref,
21
+ i;
22
+ for (i in props) {
23
+ if (i == 'key') key = props[i];
24
+ else if (i == 'ref') ref = props[i];
25
+ else normalizedProps[i] = props[i];
26
+ }
27
+
28
+ if (arguments.length > 2) {
29
+ normalizedProps.children = arguments.length > 3 ? slice.call(arguments, 2) : children;
30
+ }
31
+
32
+ // If a Component VNode, check for and apply defaultProps
33
+ // Note: type may be undefined in development, must never error here.
34
+ if (typeof type == 'function' && type.defaultProps != null) {
35
+ for (i in type.defaultProps) {
36
+ if (normalizedProps[i] === undefined) {
37
+ normalizedProps[i] = type.defaultProps[i];
38
+ }
39
+ }
40
+ }
41
+
42
+ return createVNode(type, normalizedProps, key, ref, null);
43
+ }
@@ -0,0 +1,4 @@
1
+ // Copyright 2024 The Lynx Authors. All rights reserved.
2
+ // Licensed under the Apache License Version 2.0 that can be found in the
3
+ // LICENSE file in the root directory of this source tree.
4
+ export * from '../jsx-runtime';
@@ -0,0 +1,66 @@
1
+ // Copyright 2024 The Lynx Authors. All rights reserved.
2
+ // Licensed under the Apache License Version 2.0 that can be found in the
3
+ // LICENSE file in the root directory of this source tree.
4
+ import { SnapshotInstance } from '@lynx-js/react/internal';
5
+
6
+ function createVNode(type, props, _key) {
7
+ if (typeof type === 'string') {
8
+ const r = new SnapshotInstance(type);
9
+
10
+ r.props = props;
11
+
12
+ r.__k = null;
13
+ r.__ = null;
14
+ r.__b = 0;
15
+ r.__e = null;
16
+ r.__d = undefined;
17
+ r.__c = null;
18
+ // r.__v = --vnodeId;
19
+ r.__i = -1;
20
+ r.__u = 0;
21
+
22
+ return r;
23
+ } else if (typeof type === 'function') {
24
+ let normalizedProps = props;
25
+
26
+ // let ref;
27
+ if ('ref' in normalizedProps) {
28
+ normalizedProps = {};
29
+ for (let i in props) {
30
+ if (i == 'ref') {
31
+ // ref = props[i];
32
+ } else {
33
+ normalizedProps[i] = props[i];
34
+ }
35
+ }
36
+ }
37
+
38
+ let defaultProps;
39
+ if ((defaultProps = type.defaultProps)) {
40
+ for (let i in defaultProps) {
41
+ if (typeof normalizedProps[i] === 'undefined') {
42
+ normalizedProps[i] = defaultProps[i];
43
+ }
44
+ }
45
+ }
46
+
47
+ return {
48
+ type,
49
+ props: normalizedProps,
50
+
51
+ __k: null,
52
+ __: null,
53
+ __b: 0,
54
+ __e: null,
55
+ __d: void 0,
56
+ __c: null,
57
+ constructor: void 0,
58
+ // __v: --vnodeId,
59
+ __i: -1,
60
+ __u: 0,
61
+ };
62
+ }
63
+ }
64
+
65
+ export { createVNode as jsx, createVNode as jsxs, createVNode as jsxDEV };
66
+ export { Fragment } from 'preact';
@@ -0,0 +1,23 @@
1
+ import type { SerializedSnapshotInstance } from './snapshot.js';
2
+ import type { SnapshotPatch } from './snapshotPatch.js';
3
+ export declare class BackgroundSnapshotInstance {
4
+ type: string;
5
+ constructor(type: string);
6
+ __id: number;
7
+ __values: any[] | undefined;
8
+ private __parent;
9
+ private __firstChild;
10
+ private __lastChild;
11
+ private __previousSibling;
12
+ private __nextSibling;
13
+ get parentNode(): BackgroundSnapshotInstance | null;
14
+ get nextSibling(): BackgroundSnapshotInstance | null;
15
+ contains(child: BackgroundSnapshotInstance): boolean;
16
+ appendChild(child: BackgroundSnapshotInstance): void;
17
+ insertBefore(node: BackgroundSnapshotInstance, beforeNode?: BackgroundSnapshotInstance): void;
18
+ removeChild(node: BackgroundSnapshotInstance): void;
19
+ get childNodes(): BackgroundSnapshotInstance[];
20
+ setAttribute(key: string | number, value: any): void;
21
+ private setAttributeImpl;
22
+ }
23
+ export declare function hydrate(before: SerializedSnapshotInstance, after: BackgroundSnapshotInstance): SnapshotPatch;
@@ -0,0 +1,348 @@
1
+ import { diffArrayAction, diffArrayLepus } from './hydrate.js';
2
+ import { globalBackgroundSnapshotInstancesToRemove } from './lifecycle/patchUpdate.js';
3
+ import { markRefToRemove } from './snapshot/ref.js';
4
+ import { transformSpread } from './snapshot/spread.js';
5
+ import { DynamicPartType, backgroundSnapshotInstanceManager, snapshotManager, traverseSnapshotInstance, } from './snapshot.js';
6
+ import { SnapshotOperation, __globalSnapshotPatch, initGlobalSnapshotPatch, takeGlobalSnapshotPatch, } from './snapshotPatch.js';
7
+ import { isDirectOrDeepEqual } from './utils.js';
8
+ import { onPostWorkletCtx } from './worklet/ctx.js';
9
+ import { processGestureBackground } from './gesture/processGestureBagkround.js';
10
+ import { globalPipelineOptions } from './lynx/performance.js';
11
+ export class BackgroundSnapshotInstance {
12
+ type;
13
+ constructor(type) {
14
+ this.type = type;
15
+ let id;
16
+ id = this.__id = backgroundSnapshotInstanceManager.nextId += 1;
17
+ backgroundSnapshotInstanceManager.values.set(id, this);
18
+ __globalSnapshotPatch?.push(SnapshotOperation.CreateElement, type, id);
19
+ }
20
+ __id;
21
+ __values;
22
+ __parent = null;
23
+ __firstChild = null;
24
+ __lastChild = null;
25
+ __previousSibling = null;
26
+ __nextSibling = null;
27
+ get parentNode() {
28
+ return this.__parent;
29
+ }
30
+ get nextSibling() {
31
+ return this.__nextSibling;
32
+ }
33
+ // get isConnected() {
34
+ // return !!this.__parent;
35
+ // }
36
+ contains(child) {
37
+ return child.parentNode === this;
38
+ }
39
+ // TODO: write tests for this
40
+ // This will be called in `lazy`/`Suspense`.
41
+ // We currently ignore this since we did not find a way to test.
42
+ /* v8 ignore start */
43
+ appendChild(child) {
44
+ return this.insertBefore(child);
45
+ }
46
+ /* v8 ignore stop */
47
+ insertBefore(node, beforeNode) {
48
+ __globalSnapshotPatch?.push(SnapshotOperation.InsertBefore, this.__id, node.__id, beforeNode?.__id);
49
+ // If the node already has a parent, remove it from its current parent
50
+ const p = node.__parent;
51
+ if (p) {
52
+ if (node.__previousSibling) {
53
+ node.__previousSibling.__nextSibling = node.__nextSibling;
54
+ }
55
+ else {
56
+ p.__firstChild = node.__nextSibling;
57
+ }
58
+ if (node.__nextSibling) {
59
+ node.__nextSibling.__previousSibling = node.__previousSibling;
60
+ }
61
+ else {
62
+ p.__lastChild = node.__previousSibling;
63
+ }
64
+ }
65
+ // If beforeNode is not provided, add the new node as the last child
66
+ if (beforeNode) {
67
+ // If beforeNode is provided, insert the new node before beforeNode
68
+ if (beforeNode.__previousSibling) {
69
+ beforeNode.__previousSibling.__nextSibling = node;
70
+ node.__previousSibling = beforeNode.__previousSibling;
71
+ }
72
+ else {
73
+ this.__firstChild = node;
74
+ node.__previousSibling = null;
75
+ }
76
+ beforeNode.__previousSibling = node;
77
+ node.__nextSibling = beforeNode;
78
+ node.__parent = this;
79
+ }
80
+ else {
81
+ if (this.__lastChild) {
82
+ this.__lastChild.__nextSibling = node;
83
+ node.__previousSibling = this.__lastChild;
84
+ }
85
+ else {
86
+ this.__firstChild = node;
87
+ node.__previousSibling = null;
88
+ }
89
+ this.__lastChild = node;
90
+ node.__parent = this;
91
+ node.__nextSibling = null;
92
+ }
93
+ }
94
+ removeChild(node) {
95
+ __globalSnapshotPatch?.push(SnapshotOperation.RemoveChild, this.__id, node.__id);
96
+ if (node.__parent !== this) {
97
+ throw new Error('The node to be removed is not a child of this node.');
98
+ }
99
+ if (node.__previousSibling) {
100
+ node.__previousSibling.__nextSibling = node.__nextSibling;
101
+ }
102
+ else {
103
+ this.__firstChild = node.__nextSibling;
104
+ }
105
+ if (node.__nextSibling) {
106
+ node.__nextSibling.__previousSibling = node.__previousSibling;
107
+ }
108
+ else {
109
+ this.__lastChild = node.__previousSibling;
110
+ }
111
+ node.__parent = null;
112
+ node.__previousSibling = null;
113
+ node.__nextSibling = null;
114
+ traverseSnapshotInstance(node, v => {
115
+ v.__parent = null;
116
+ globalBackgroundSnapshotInstancesToRemove.push(v.__id);
117
+ });
118
+ }
119
+ get childNodes() {
120
+ const nodes = [];
121
+ let node = this.__firstChild;
122
+ while (node) {
123
+ nodes.push(node);
124
+ if (node === this.__lastChild) {
125
+ break;
126
+ }
127
+ node = node.__nextSibling;
128
+ }
129
+ return nodes;
130
+ }
131
+ setAttribute(key, value) {
132
+ if (__PROFILE__) {
133
+ console.profile('setAttribute');
134
+ }
135
+ if (key === 'values') {
136
+ if (__globalSnapshotPatch) {
137
+ const oldValues = this.__values;
138
+ if (oldValues) {
139
+ for (let index = 0; index < value.length; index++) {
140
+ const { needUpdate, valueToCommit } = this.setAttributeImpl(value[index], oldValues[index], index);
141
+ if (needUpdate) {
142
+ __globalSnapshotPatch?.push(SnapshotOperation.SetAttribute, this.__id, index, valueToCommit);
143
+ }
144
+ }
145
+ }
146
+ else {
147
+ const patch = [];
148
+ const length = value.length;
149
+ for (let index = 0; index < length; ++index) {
150
+ const { valueToCommit } = this.setAttributeImpl(value[index], null, index);
151
+ patch[index] = valueToCommit;
152
+ }
153
+ __globalSnapshotPatch?.push(SnapshotOperation.SetAttributes, this.__id, patch);
154
+ }
155
+ }
156
+ this.__values = value;
157
+ if (__PROFILE__) {
158
+ console.profileEnd();
159
+ }
160
+ return;
161
+ }
162
+ // old path (`<__snapshot_xxxx_xxxx __0={} __1={} />` or `this.setAttribute(0, xxx)`)
163
+ // is reserved as slow path
164
+ const index = typeof key === 'string' ? Number(key.slice(2)) : key;
165
+ (this.__values ??= [])[index] = value;
166
+ __globalSnapshotPatch?.push(SnapshotOperation.SetAttribute, this.__id, index, value);
167
+ if (__PROFILE__) {
168
+ console.profileEnd();
169
+ }
170
+ }
171
+ setAttributeImpl(newValue, oldValue, index) {
172
+ if (!newValue) {
173
+ if (oldValue && oldValue.__ref) {
174
+ markRefToRemove(`${this.__id}:${index}:`, oldValue);
175
+ }
176
+ return { needUpdate: oldValue !== newValue, valueToCommit: newValue };
177
+ }
178
+ const newType = typeof newValue;
179
+ if (newType === 'object') {
180
+ if (newValue.__spread) {
181
+ const oldSpread = oldValue ? oldValue.__spread : oldValue;
182
+ const newSpread = transformSpread(this, index, newValue);
183
+ const needUpdate = !isDirectOrDeepEqual(oldSpread, newSpread);
184
+ // use __spread to cache the transform result for next diff
185
+ newValue.__spread = newSpread;
186
+ if (needUpdate) {
187
+ if (oldSpread && oldSpread.ref) {
188
+ markRefToRemove(`${this.__id}:${index}:ref`, oldValue.ref);
189
+ }
190
+ for (let key in newSpread) {
191
+ const newSpreadValue = newSpread[key];
192
+ if (!newSpreadValue) {
193
+ continue;
194
+ }
195
+ if (newSpreadValue._wkltId) {
196
+ newSpread[key] = onPostWorkletCtx(newSpreadValue);
197
+ }
198
+ else if (newSpreadValue.__isGesture) {
199
+ processGestureBackground(newSpreadValue);
200
+ }
201
+ else if (key == '__lynx_timing_flag' && oldSpread?.[key] != newSpreadValue) {
202
+ if (globalPipelineOptions) {
203
+ globalPipelineOptions.needTimestamps = true;
204
+ }
205
+ }
206
+ }
207
+ }
208
+ return { needUpdate, valueToCommit: newSpread };
209
+ }
210
+ if (newValue.__ref) {
211
+ // force update to update ref value
212
+ // TODO: ref: optimize this. The ref update maybe can be done on the background thread to reduce updating.
213
+ // The old ref must have a place to be stored because it needs to be cleared when the main thread returns.
214
+ markRefToRemove(`${this.__id}:${index}:`, oldValue);
215
+ // update ref. On the main thread, the ref id will be replaced with value's sign when updating.
216
+ return { needUpdate: true, valueToCommit: newValue.__ref };
217
+ }
218
+ if (newValue._wkltId) {
219
+ return { needUpdate: true, valueToCommit: onPostWorkletCtx(newValue) };
220
+ }
221
+ if (newValue.__isGesture) {
222
+ processGestureBackground(newValue);
223
+ return { needUpdate: true, valueToCommit: newValue };
224
+ }
225
+ if (newValue.__ltf) {
226
+ // __lynx_timing_flag
227
+ if (globalPipelineOptions && oldValue?.__ltf != newValue.__ltf) {
228
+ globalPipelineOptions.needTimestamps = true;
229
+ return { needUpdate: true, valueToCommit: newValue };
230
+ }
231
+ return { needUpdate: false, valueToCommit: newValue };
232
+ }
233
+ return { needUpdate: !isDirectOrDeepEqual(oldValue, newValue), valueToCommit: newValue };
234
+ }
235
+ if (newType === 'function') {
236
+ if (newValue.__ref) {
237
+ markRefToRemove(`${this.__id}:${index}:`, oldValue);
238
+ return { needUpdate: true, valueToCommit: newValue.__ref };
239
+ }
240
+ /* event */
241
+ return { needUpdate: !oldValue, valueToCommit: 1 };
242
+ }
243
+ return { needUpdate: oldValue !== newValue, valueToCommit: newValue };
244
+ }
245
+ }
246
+ export function hydrate(before, after) {
247
+ initGlobalSnapshotPatch();
248
+ const helper2 = (afters, parentId) => {
249
+ for (const child of afters) {
250
+ const id = child.__id;
251
+ __globalSnapshotPatch.push(SnapshotOperation.CreateElement, child.type, id);
252
+ const values = child.__values;
253
+ if (values) {
254
+ child.__values = undefined;
255
+ child.setAttribute('values', values);
256
+ }
257
+ helper2(child.childNodes, id);
258
+ __globalSnapshotPatch.push(SnapshotOperation.InsertBefore, parentId, id, undefined);
259
+ }
260
+ };
261
+ const helper = (before, after) => {
262
+ backgroundSnapshotInstanceManager.updateId(after.__id, before.id);
263
+ after.__values?.forEach((value, index) => {
264
+ const old = before.values[index];
265
+ if (value) {
266
+ if (value.__spread) {
267
+ // `value.__spread` my contain event ids using snapshot ids before hydration. Remove it.
268
+ delete value.__spread;
269
+ value = transformSpread(after, index, value);
270
+ for (let key in value) {
271
+ if (value[key] && value[key]._wkltId) {
272
+ onPostWorkletCtx(value[key]);
273
+ }
274
+ else if (value[key] && value[key].__isGesture) {
275
+ processGestureBackground(value[key]);
276
+ }
277
+ }
278
+ after.__values[index].__spread = value;
279
+ }
280
+ else if (value.__ref) {
281
+ if (old) {
282
+ // skip patch
283
+ value = old;
284
+ }
285
+ else {
286
+ value = value.__ref;
287
+ }
288
+ }
289
+ else if (typeof value === 'function') {
290
+ value = `${after.__id}:${index}:`;
291
+ }
292
+ }
293
+ if (value && value._wkltId) {
294
+ onPostWorkletCtx(value);
295
+ }
296
+ else if (value && value.__isGesture) {
297
+ processGestureBackground(value);
298
+ }
299
+ if (!isDirectOrDeepEqual(value, old)) {
300
+ __globalSnapshotPatch.push(SnapshotOperation.SetAttribute, after.__id, index, value);
301
+ }
302
+ });
303
+ const { slot } = snapshotManager.values.get(after.type);
304
+ const beforeChildNodes = before.children || [];
305
+ const afterChildNodes = after.childNodes;
306
+ if (!slot) {
307
+ return;
308
+ }
309
+ slot.forEach(([type], index) => {
310
+ switch (type) {
311
+ case DynamicPartType.Slot:
312
+ case DynamicPartType.MultiChildren: {
313
+ // TODO: the following null assertions are not 100% safe
314
+ const v1 = beforeChildNodes[index];
315
+ const v2 = afterChildNodes[index];
316
+ helper(v1, v2);
317
+ break;
318
+ }
319
+ case DynamicPartType.Children:
320
+ case DynamicPartType.ListChildren: {
321
+ const diffResult = diffArrayLepus(beforeChildNodes, afterChildNodes, (a, b) => a.type === b.type, (a, b) => {
322
+ helper(a, b);
323
+ });
324
+ diffArrayAction(beforeChildNodes, diffResult, (node, target) => {
325
+ __globalSnapshotPatch.push(SnapshotOperation.CreateElement, node.type, node.__id);
326
+ helper2(node.childNodes, node.__id);
327
+ const values = node.__values;
328
+ if (values) {
329
+ node.__values = undefined;
330
+ node.setAttribute('values', values);
331
+ }
332
+ __globalSnapshotPatch.push(SnapshotOperation.InsertBefore, before.id, node.__id, target?.id);
333
+ return undefined;
334
+ }, node => {
335
+ __globalSnapshotPatch.push(SnapshotOperation.RemoveChild, before.id, node.id);
336
+ }, (node, target) => {
337
+ // changedList.push([SnapshotOperation.RemoveChild, before.id, node.id]);
338
+ __globalSnapshotPatch.push(SnapshotOperation.InsertBefore, before.id, node.id, target?.id);
339
+ });
340
+ break;
341
+ }
342
+ }
343
+ });
344
+ };
345
+ helper(before, after);
346
+ return takeGlobalSnapshotPatch();
347
+ }
348
+ //# sourceMappingURL=backgroundSnapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backgroundSnapshot.js","sourceRoot":"","sources":["../src/backgroundSnapshot.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { FC } from 'react';
2
+ export declare function factory({ createElement, useMemo, Suspense, lazy }: typeof import('react'), loadLazyBundle: any): FC<{
3
+ is: string;
4
+ }>;
@@ -0,0 +1,20 @@
1
+ // Copyright 2024 The Lynx Authors. All rights reserved.
2
+ // Licensed under the Apache License Version 2.0 that can be found in the
3
+ // LICENSE file in the root directory of this source tree.
4
+ // for better reuse if runtime is changed
5
+ export function factory({ createElement, useMemo, Suspense, lazy }, loadLazyBundle) {
6
+ /**
7
+ * @internal a polyfill for <component is=? />
8
+ */
9
+ const __ComponentIsPolyfill = ({ is, ...props }) => {
10
+ if (typeof is !== 'string') {
11
+ lynx.reportError(new Error('You must provide a string to props `is` when using syntax `<component is=? />`.'));
12
+ return null;
13
+ }
14
+ // @ts-ignore
15
+ const D = useMemo(() => lazy(() => loadLazyBundle(is)), [is]);
16
+ return createElement(Suspense, { key: is }, createElement(D, props));
17
+ };
18
+ return __ComponentIsPolyfill;
19
+ }
20
+ //# sourceMappingURL=componentIs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"componentIs.js","sourceRoot":"","sources":["../../src/compat/componentIs.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAI1D,yCAAyC;AACzC,MAAM,UAAU,OAAO,CACrB,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAA0B,EAClE,cAAmB;IAEnB;;OAEG;IACH,MAAM,qBAAqB,GAAuB,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;QACrE,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;YAC3B,IAAI,CAAC,WAAW,CACd,IAAI,KAAK,CACP,iFAAiF,CAClF,CACF,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,aAAa;QACb,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9D,OAAO,aAAa,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,aAAa,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IACvE,CAAC,CAAC;IAEF,OAAO,qBAAqB,CAAC;AAC/B,CAAC"}