@shopify/react-native-skia 1.8.0 → 1.8.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (364) hide show
  1. package/cpp/api/JsiSkPaint.h +8 -1
  2. package/lib/commonjs/dom/types/Common.d.ts +6 -4
  3. package/lib/commonjs/dom/types/Common.js.map +1 -1
  4. package/lib/commonjs/dom/types/ImageFilters.d.ts +1 -1
  5. package/lib/commonjs/dom/types/ImageFilters.js.map +1 -1
  6. package/lib/commonjs/dom/types/Node.d.ts +0 -2
  7. package/lib/commonjs/dom/types/Node.js.map +1 -1
  8. package/lib/commonjs/external/reanimated/index.d.ts +0 -1
  9. package/lib/commonjs/external/reanimated/index.js +0 -11
  10. package/lib/commonjs/external/reanimated/index.js.map +1 -1
  11. package/lib/commonjs/external/reanimated/renderHelpers.d.ts +0 -1
  12. package/lib/commonjs/external/reanimated/renderHelpers.js +5 -43
  13. package/lib/commonjs/external/reanimated/renderHelpers.js.map +1 -1
  14. package/lib/commonjs/skia/types/Paint/Paint.d.ts +1 -0
  15. package/lib/commonjs/skia/types/Paint/Paint.js.map +1 -1
  16. package/lib/commonjs/skia/web/JsiSkPaint.d.ts +1 -0
  17. package/lib/commonjs/skia/web/JsiSkPaint.js +3 -0
  18. package/lib/commonjs/skia/web/JsiSkPaint.js.map +1 -1
  19. package/lib/commonjs/sksg/Container.d.ts +3 -2
  20. package/lib/commonjs/sksg/Container.js +32 -26
  21. package/lib/commonjs/sksg/Container.js.map +1 -1
  22. package/lib/commonjs/sksg/HostConfig.d.ts +2 -2
  23. package/lib/commonjs/sksg/HostConfig.js +7 -25
  24. package/lib/commonjs/sksg/HostConfig.js.map +1 -1
  25. package/lib/commonjs/sksg/Node.d.ts +19 -0
  26. package/lib/commonjs/sksg/Node.js +78 -0
  27. package/lib/commonjs/sksg/Node.js.map +1 -0
  28. package/lib/commonjs/sksg/Reconciler.d.ts +1 -1
  29. package/lib/commonjs/sksg/Recorder/Core.d.ts +79 -0
  30. package/lib/commonjs/sksg/Recorder/Core.js +110 -0
  31. package/lib/commonjs/sksg/Recorder/Core.js.map +1 -0
  32. package/lib/commonjs/sksg/Recorder/DrawingContext.d.ts +18 -0
  33. package/lib/commonjs/sksg/Recorder/DrawingContext.js +105 -0
  34. package/lib/commonjs/sksg/Recorder/DrawingContext.js.map +1 -0
  35. package/lib/commonjs/sksg/Recorder/Player.d.ts +3 -0
  36. package/lib/commonjs/sksg/Recorder/Player.js +127 -0
  37. package/lib/commonjs/sksg/Recorder/Player.js.map +1 -0
  38. package/lib/commonjs/sksg/Recorder/Recorder.d.ts +50 -0
  39. package/lib/commonjs/sksg/Recorder/Recorder.js +288 -0
  40. package/lib/commonjs/sksg/Recorder/Recorder.js.map +1 -0
  41. package/lib/commonjs/sksg/Recorder/Recording.d.ts +7 -0
  42. package/lib/commonjs/sksg/Recorder/Recording.js +12 -0
  43. package/lib/commonjs/sksg/Recorder/Recording.js.map +1 -0
  44. package/lib/commonjs/sksg/Recorder/Visitor.d.ts +5 -0
  45. package/lib/commonjs/sksg/Recorder/Visitor.js +293 -0
  46. package/lib/commonjs/sksg/Recorder/Visitor.js.map +1 -0
  47. package/lib/commonjs/sksg/Recorder/commands/Box.d.ts +13 -0
  48. package/lib/commonjs/sksg/Recorder/commands/Box.js +71 -0
  49. package/lib/commonjs/sksg/Recorder/commands/Box.js.map +1 -0
  50. package/lib/commonjs/sksg/Recorder/commands/CTM.d.ts +3 -0
  51. package/lib/commonjs/sksg/Recorder/commands/CTM.js +79 -0
  52. package/lib/commonjs/sksg/Recorder/commands/CTM.js.map +1 -0
  53. package/lib/commonjs/sksg/Recorder/commands/ColorFilters.d.ts +6 -0
  54. package/lib/commonjs/sksg/Recorder/commands/ColorFilters.js +76 -0
  55. package/lib/commonjs/sksg/Recorder/commands/ColorFilters.js.map +1 -0
  56. package/lib/commonjs/sksg/Recorder/commands/Drawing.d.ts +24 -0
  57. package/lib/commonjs/sksg/{nodes/drawings.js → Recorder/commands/Drawing.js} +5 -5
  58. package/lib/commonjs/sksg/Recorder/commands/Drawing.js.map +1 -0
  59. package/lib/commonjs/sksg/Recorder/commands/ImageFilters.d.ts +12 -0
  60. package/lib/commonjs/sksg/Recorder/commands/ImageFilters.js +183 -0
  61. package/lib/commonjs/sksg/Recorder/commands/ImageFilters.js.map +1 -0
  62. package/lib/commonjs/sksg/Recorder/commands/Paint.d.ts +4 -0
  63. package/lib/commonjs/sksg/Recorder/commands/Paint.js +70 -0
  64. package/lib/commonjs/sksg/Recorder/commands/Paint.js.map +1 -0
  65. package/lib/commonjs/sksg/Recorder/commands/PathEffects.d.ts +6 -0
  66. package/lib/commonjs/sksg/Recorder/commands/PathEffects.js +137 -0
  67. package/lib/commonjs/sksg/Recorder/commands/PathEffects.js.map +1 -0
  68. package/lib/commonjs/sksg/Recorder/commands/Shaders.d.ts +5 -0
  69. package/lib/commonjs/sksg/{nodes/shaders.js → Recorder/commands/Shaders.js} +58 -15
  70. package/lib/commonjs/sksg/Recorder/commands/Shaders.js.map +1 -0
  71. package/lib/commonjs/sksg/{nodes/utils.d.ts → utils.d.ts} +3 -0
  72. package/lib/commonjs/sksg/{nodes/utils.js → utils.js} +12 -2
  73. package/lib/commonjs/sksg/utils.js.map +1 -0
  74. package/lib/module/dom/types/Common.d.ts +6 -4
  75. package/lib/module/dom/types/Common.js.map +1 -1
  76. package/lib/module/dom/types/ImageFilters.d.ts +1 -1
  77. package/lib/module/dom/types/ImageFilters.js.map +1 -1
  78. package/lib/module/dom/types/Node.d.ts +0 -2
  79. package/lib/module/dom/types/Node.js.map +1 -1
  80. package/lib/module/external/reanimated/index.d.ts +0 -1
  81. package/lib/module/external/reanimated/index.js +0 -1
  82. package/lib/module/external/reanimated/index.js.map +1 -1
  83. package/lib/module/external/reanimated/renderHelpers.d.ts +0 -1
  84. package/lib/module/external/reanimated/renderHelpers.js +4 -42
  85. package/lib/module/external/reanimated/renderHelpers.js.map +1 -1
  86. package/lib/module/skia/types/Paint/Paint.d.ts +1 -0
  87. package/lib/module/skia/types/Paint/Paint.js.map +1 -1
  88. package/lib/module/skia/web/JsiSkPaint.d.ts +1 -0
  89. package/lib/module/skia/web/JsiSkPaint.js +3 -0
  90. package/lib/module/skia/web/JsiSkPaint.js.map +1 -1
  91. package/lib/module/sksg/Container.d.ts +3 -2
  92. package/lib/module/sksg/Container.js +30 -24
  93. package/lib/module/sksg/Container.js.map +1 -1
  94. package/lib/module/sksg/HostConfig.d.ts +2 -2
  95. package/lib/module/sksg/HostConfig.js +7 -25
  96. package/lib/module/sksg/HostConfig.js.map +1 -1
  97. package/lib/module/sksg/Node.d.ts +19 -0
  98. package/lib/module/sksg/Node.js +67 -0
  99. package/lib/module/sksg/Node.js.map +1 -0
  100. package/lib/module/sksg/Reconciler.d.ts +1 -1
  101. package/lib/module/sksg/Recorder/Core.d.ts +79 -0
  102. package/lib/module/sksg/Recorder/Core.js +101 -0
  103. package/lib/module/sksg/Recorder/Core.js.map +1 -0
  104. package/lib/module/sksg/Recorder/DrawingContext.d.ts +18 -0
  105. package/lib/module/sksg/Recorder/DrawingContext.js +98 -0
  106. package/lib/module/sksg/Recorder/DrawingContext.js.map +1 -0
  107. package/lib/module/sksg/Recorder/Player.d.ts +3 -0
  108. package/lib/module/sksg/Recorder/Player.js +120 -0
  109. package/lib/module/sksg/Recorder/Player.js.map +1 -0
  110. package/lib/module/sksg/Recorder/Recorder.d.ts +50 -0
  111. package/lib/module/sksg/Recorder/Recorder.js +281 -0
  112. package/lib/module/sksg/Recorder/Recorder.js.map +1 -0
  113. package/lib/module/sksg/Recorder/Recording.d.ts +7 -0
  114. package/lib/module/sksg/Recorder/Recording.js +5 -0
  115. package/lib/module/sksg/Recorder/Recording.js.map +1 -0
  116. package/lib/module/sksg/Recorder/Visitor.d.ts +5 -0
  117. package/lib/module/sksg/Recorder/Visitor.js +285 -0
  118. package/lib/module/sksg/Recorder/Visitor.js.map +1 -0
  119. package/lib/module/sksg/Recorder/commands/Box.d.ts +13 -0
  120. package/lib/module/sksg/Recorder/commands/Box.js +63 -0
  121. package/lib/module/sksg/Recorder/commands/Box.js.map +1 -0
  122. package/lib/module/sksg/Recorder/commands/CTM.d.ts +3 -0
  123. package/lib/module/sksg/Recorder/commands/CTM.js +72 -0
  124. package/lib/module/sksg/Recorder/commands/CTM.js.map +1 -0
  125. package/lib/module/sksg/Recorder/commands/ColorFilters.d.ts +6 -0
  126. package/lib/module/sksg/Recorder/commands/ColorFilters.js +67 -0
  127. package/lib/module/sksg/Recorder/commands/ColorFilters.js.map +1 -0
  128. package/lib/module/sksg/Recorder/commands/Drawing.d.ts +24 -0
  129. package/lib/module/sksg/{nodes/drawings.js → Recorder/commands/Drawing.js} +5 -5
  130. package/lib/module/sksg/Recorder/commands/Drawing.js.map +1 -0
  131. package/lib/module/sksg/Recorder/commands/ImageFilters.d.ts +12 -0
  132. package/lib/module/sksg/{nodes/imageFilters.js → Recorder/commands/ImageFilters.js} +87 -95
  133. package/lib/module/sksg/Recorder/commands/ImageFilters.js.map +1 -0
  134. package/lib/module/sksg/Recorder/commands/Paint.d.ts +4 -0
  135. package/lib/module/sksg/Recorder/commands/Paint.js +62 -0
  136. package/lib/module/sksg/Recorder/commands/Paint.js.map +1 -0
  137. package/lib/module/sksg/Recorder/commands/PathEffects.d.ts +6 -0
  138. package/lib/module/sksg/Recorder/commands/PathEffects.js +128 -0
  139. package/lib/module/sksg/Recorder/commands/PathEffects.js.map +1 -0
  140. package/lib/module/sksg/Recorder/commands/Shaders.d.ts +5 -0
  141. package/lib/module/sksg/{nodes/shaders.js → Recorder/commands/Shaders.js} +63 -13
  142. package/lib/module/sksg/Recorder/commands/Shaders.js.map +1 -0
  143. package/lib/module/sksg/{nodes/utils.d.ts → utils.d.ts} +3 -0
  144. package/lib/module/sksg/{nodes/utils.js → utils.js} +10 -1
  145. package/lib/module/sksg/utils.js.map +1 -0
  146. package/lib/typescript/lib/commonjs/external/reanimated/renderHelpers.d.ts +0 -1
  147. package/lib/typescript/lib/commonjs/skia/web/JsiSkPaint.d.ts +1 -0
  148. package/lib/typescript/lib/commonjs/sksg/Container.d.ts +4 -0
  149. package/lib/typescript/lib/commonjs/sksg/HostConfig.d.ts +1 -3
  150. package/lib/typescript/lib/commonjs/sksg/Node.d.ts +14 -0
  151. package/lib/typescript/lib/commonjs/sksg/Recorder/Core.d.ts +5 -0
  152. package/lib/typescript/lib/commonjs/sksg/Recorder/DrawingContext.d.ts +17 -0
  153. package/lib/typescript/lib/commonjs/sksg/Recorder/Player.d.ts +2 -0
  154. package/lib/typescript/lib/commonjs/sksg/Recorder/Recorder.d.ts +45 -0
  155. package/lib/typescript/lib/commonjs/sksg/Recorder/Recording.d.ts +5 -0
  156. package/lib/typescript/lib/commonjs/sksg/Recorder/Visitor.d.ts +27 -0
  157. package/lib/typescript/lib/commonjs/sksg/Recorder/commands/Box.d.ts +3 -0
  158. package/lib/typescript/lib/commonjs/sksg/Recorder/commands/CTM.d.ts +2 -0
  159. package/lib/typescript/lib/commonjs/sksg/Recorder/commands/ColorFilters.d.ts +4 -0
  160. package/lib/typescript/lib/commonjs/sksg/Recorder/commands/ImageFilters.d.ts +6 -0
  161. package/lib/typescript/lib/commonjs/sksg/Recorder/commands/Paint.d.ts +14 -0
  162. package/lib/typescript/lib/commonjs/sksg/Recorder/commands/PathEffects.d.ts +4 -0
  163. package/lib/typescript/lib/commonjs/sksg/Recorder/commands/Shaders.d.ts +3 -0
  164. package/lib/typescript/lib/commonjs/sksg/{nodes/utils.d.ts → utils.d.ts} +1 -0
  165. package/lib/typescript/lib/module/external/reanimated/index.d.ts +0 -1
  166. package/lib/typescript/lib/module/external/reanimated/renderHelpers.d.ts +0 -1
  167. package/lib/typescript/lib/module/skia/web/JsiSkPaint.d.ts +1 -0
  168. package/lib/typescript/lib/module/sksg/Container.d.ts +4 -0
  169. package/lib/typescript/lib/module/sksg/HostConfig.d.ts +1 -3
  170. package/lib/typescript/lib/module/sksg/Node.d.ts +13 -0
  171. package/lib/typescript/lib/module/sksg/Recorder/Core.d.ts +4 -0
  172. package/lib/typescript/lib/module/sksg/Recorder/DrawingContext.d.ts +16 -0
  173. package/lib/typescript/lib/module/sksg/Recorder/Player.d.ts +1 -0
  174. package/lib/typescript/lib/module/sksg/Recorder/Recorder.d.ts +44 -0
  175. package/lib/typescript/lib/module/sksg/Recorder/Recording.d.ts +4 -0
  176. package/lib/typescript/lib/module/sksg/Recorder/Visitor.d.ts +26 -0
  177. package/lib/typescript/lib/module/sksg/Recorder/commands/Box.d.ts +2 -0
  178. package/lib/typescript/lib/module/sksg/Recorder/commands/CTM.d.ts +1 -0
  179. package/lib/typescript/lib/module/sksg/Recorder/commands/ColorFilters.d.ts +3 -0
  180. package/lib/typescript/lib/module/sksg/Recorder/commands/ImageFilters.d.ts +5 -0
  181. package/lib/typescript/lib/module/sksg/Recorder/commands/Paint.d.ts +13 -0
  182. package/lib/typescript/lib/module/sksg/Recorder/commands/PathEffects.d.ts +3 -0
  183. package/lib/typescript/lib/module/sksg/Recorder/commands/Shaders.d.ts +2 -0
  184. package/lib/typescript/lib/module/sksg/{nodes/utils.d.ts → utils.d.ts} +1 -0
  185. package/lib/typescript/src/dom/types/Common.d.ts +6 -4
  186. package/lib/typescript/src/dom/types/ImageFilters.d.ts +1 -1
  187. package/lib/typescript/src/dom/types/Node.d.ts +0 -2
  188. package/lib/typescript/src/external/reanimated/index.d.ts +0 -1
  189. package/lib/typescript/src/external/reanimated/renderHelpers.d.ts +0 -1
  190. package/lib/typescript/src/skia/types/Paint/Paint.d.ts +1 -0
  191. package/lib/typescript/src/skia/web/JsiSkPaint.d.ts +1 -0
  192. package/lib/typescript/src/sksg/Container.d.ts +3 -2
  193. package/lib/typescript/src/sksg/HostConfig.d.ts +2 -2
  194. package/lib/typescript/src/sksg/Node.d.ts +19 -0
  195. package/lib/typescript/src/sksg/Reconciler.d.ts +1 -1
  196. package/lib/typescript/src/sksg/Recorder/Core.d.ts +79 -0
  197. package/lib/typescript/src/sksg/Recorder/DrawingContext.d.ts +18 -0
  198. package/lib/typescript/src/sksg/Recorder/Player.d.ts +3 -0
  199. package/lib/typescript/src/sksg/Recorder/Recorder.d.ts +50 -0
  200. package/lib/typescript/src/sksg/Recorder/Recording.d.ts +7 -0
  201. package/lib/typescript/src/sksg/Recorder/Visitor.d.ts +5 -0
  202. package/lib/typescript/src/sksg/Recorder/commands/Box.d.ts +13 -0
  203. package/lib/typescript/src/sksg/Recorder/commands/CTM.d.ts +3 -0
  204. package/lib/typescript/src/sksg/Recorder/commands/ColorFilters.d.ts +6 -0
  205. package/lib/typescript/src/sksg/Recorder/commands/Drawing.d.ts +24 -0
  206. package/lib/typescript/src/sksg/Recorder/commands/ImageFilters.d.ts +12 -0
  207. package/lib/typescript/src/sksg/Recorder/commands/Paint.d.ts +4 -0
  208. package/lib/typescript/src/sksg/Recorder/commands/PathEffects.d.ts +6 -0
  209. package/lib/typescript/src/sksg/Recorder/commands/Shaders.d.ts +5 -0
  210. package/lib/typescript/src/sksg/{nodes/utils.d.ts → utils.d.ts} +3 -0
  211. package/package.json +1 -1
  212. package/src/__tests__/snapshots/image-filter/test-shadow.png +0 -0
  213. package/src/dom/types/Common.ts +7 -5
  214. package/src/dom/types/ImageFilters.ts +2 -1
  215. package/src/dom/types/Node.ts +0 -4
  216. package/src/external/reanimated/index.ts +0 -1
  217. package/src/external/reanimated/renderHelpers.ts +4 -44
  218. package/src/renderer/__tests__/e2e/ColorFilters.spec.tsx +15 -0
  219. package/src/renderer/__tests__/e2e/Composition/ColorFilterComposition.spec.tsx +23 -2
  220. package/src/renderer/__tests__/e2e/ImageFilters.spec.tsx +91 -2
  221. package/src/renderer/__tests__/setup.tsx +1 -1
  222. package/src/skia/types/Paint/Paint.ts +2 -0
  223. package/src/skia/web/JsiSkPaint.ts +4 -0
  224. package/src/sksg/Container.ts +35 -29
  225. package/src/sksg/HostConfig.ts +5 -50
  226. package/src/sksg/Node.ts +105 -0
  227. package/src/sksg/Recorder/Core.ts +171 -0
  228. package/src/sksg/Recorder/DrawingContext.ts +130 -0
  229. package/src/sksg/Recorder/Player.ts +160 -0
  230. package/src/sksg/Recorder/Recorder.ts +259 -0
  231. package/src/sksg/Recorder/Recording.ts +13 -0
  232. package/src/sksg/Recorder/Visitor.ts +324 -0
  233. package/src/sksg/Recorder/commands/Box.ts +63 -0
  234. package/src/sksg/Recorder/commands/CTM.ts +72 -0
  235. package/src/sksg/Recorder/commands/ColorFilters.ts +87 -0
  236. package/src/sksg/{nodes/drawings.ts → Recorder/commands/Drawing.ts} +29 -65
  237. package/src/sksg/Recorder/commands/ImageFilters.ts +255 -0
  238. package/src/sksg/Recorder/commands/Paint.ts +77 -0
  239. package/src/sksg/Recorder/commands/PathEffects.ts +169 -0
  240. package/src/sksg/{nodes/shaders.ts → Recorder/commands/Shaders.ts} +100 -26
  241. package/src/sksg/{nodes/utils.ts → utils.ts} +14 -1
  242. package/lib/commonjs/external/reanimated/useDerivedValueOnJS.d.ts +0 -1
  243. package/lib/commonjs/external/reanimated/useDerivedValueOnJS.js +0 -24
  244. package/lib/commonjs/external/reanimated/useDerivedValueOnJS.js.map +0 -1
  245. package/lib/commonjs/sksg/DeclarationContext.d.ts +0 -56
  246. package/lib/commonjs/sksg/DeclarationContext.js +0 -77
  247. package/lib/commonjs/sksg/DeclarationContext.js.map +0 -1
  248. package/lib/commonjs/sksg/DrawingContext.d.ts +0 -13
  249. package/lib/commonjs/sksg/DrawingContext.js +0 -172
  250. package/lib/commonjs/sksg/DrawingContext.js.map +0 -1
  251. package/lib/commonjs/sksg/__tests__/Declarations.spec.d.ts +0 -1
  252. package/lib/commonjs/sksg/__tests__/MockDeclaration.d.ts +0 -57
  253. package/lib/commonjs/sksg/nodes/Node.d.ts +0 -7
  254. package/lib/commonjs/sksg/nodes/Node.js +0 -6
  255. package/lib/commonjs/sksg/nodes/Node.js.map +0 -1
  256. package/lib/commonjs/sksg/nodes/colorFilters.d.ts +0 -10
  257. package/lib/commonjs/sksg/nodes/colorFilters.js +0 -79
  258. package/lib/commonjs/sksg/nodes/colorFilters.js.map +0 -1
  259. package/lib/commonjs/sksg/nodes/context.d.ts +0 -3
  260. package/lib/commonjs/sksg/nodes/context.js +0 -394
  261. package/lib/commonjs/sksg/nodes/context.js.map +0 -1
  262. package/lib/commonjs/sksg/nodes/drawings.d.ts +0 -30
  263. package/lib/commonjs/sksg/nodes/drawings.js.map +0 -1
  264. package/lib/commonjs/sksg/nodes/imageFilters.d.ts +0 -17
  265. package/lib/commonjs/sksg/nodes/imageFilters.js +0 -197
  266. package/lib/commonjs/sksg/nodes/imageFilters.js.map +0 -1
  267. package/lib/commonjs/sksg/nodes/index.d.ts +0 -3
  268. package/lib/commonjs/sksg/nodes/index.js +0 -39
  269. package/lib/commonjs/sksg/nodes/index.js.map +0 -1
  270. package/lib/commonjs/sksg/nodes/paint.d.ts +0 -3
  271. package/lib/commonjs/sksg/nodes/paint.js +0 -81
  272. package/lib/commonjs/sksg/nodes/paint.js.map +0 -1
  273. package/lib/commonjs/sksg/nodes/pathEffects.d.ts +0 -11
  274. package/lib/commonjs/sksg/nodes/pathEffects.js +0 -111
  275. package/lib/commonjs/sksg/nodes/pathEffects.js.map +0 -1
  276. package/lib/commonjs/sksg/nodes/shaders.d.ts +0 -11
  277. package/lib/commonjs/sksg/nodes/shaders.js.map +0 -1
  278. package/lib/commonjs/sksg/nodes/utils.js.map +0 -1
  279. package/lib/module/external/reanimated/useDerivedValueOnJS.d.ts +0 -1
  280. package/lib/module/external/reanimated/useDerivedValueOnJS.js +0 -16
  281. package/lib/module/external/reanimated/useDerivedValueOnJS.js.map +0 -1
  282. package/lib/module/sksg/DeclarationContext.d.ts +0 -56
  283. package/lib/module/sksg/DeclarationContext.js +0 -69
  284. package/lib/module/sksg/DeclarationContext.js.map +0 -1
  285. package/lib/module/sksg/DrawingContext.d.ts +0 -13
  286. package/lib/module/sksg/DrawingContext.js +0 -165
  287. package/lib/module/sksg/DrawingContext.js.map +0 -1
  288. package/lib/module/sksg/__tests__/Declarations.spec.d.ts +0 -1
  289. package/lib/module/sksg/__tests__/MockDeclaration.d.ts +0 -57
  290. package/lib/module/sksg/nodes/Node.d.ts +0 -7
  291. package/lib/module/sksg/nodes/Node.js +0 -2
  292. package/lib/module/sksg/nodes/Node.js.map +0 -1
  293. package/lib/module/sksg/nodes/colorFilters.d.ts +0 -10
  294. package/lib/module/sksg/nodes/colorFilters.js +0 -66
  295. package/lib/module/sksg/nodes/colorFilters.js.map +0 -1
  296. package/lib/module/sksg/nodes/context.d.ts +0 -3
  297. package/lib/module/sksg/nodes/context.js +0 -387
  298. package/lib/module/sksg/nodes/context.js.map +0 -1
  299. package/lib/module/sksg/nodes/drawings.d.ts +0 -30
  300. package/lib/module/sksg/nodes/drawings.js.map +0 -1
  301. package/lib/module/sksg/nodes/imageFilters.d.ts +0 -17
  302. package/lib/module/sksg/nodes/imageFilters.js.map +0 -1
  303. package/lib/module/sksg/nodes/index.d.ts +0 -3
  304. package/lib/module/sksg/nodes/index.js +0 -4
  305. package/lib/module/sksg/nodes/index.js.map +0 -1
  306. package/lib/module/sksg/nodes/paint.d.ts +0 -3
  307. package/lib/module/sksg/nodes/paint.js +0 -74
  308. package/lib/module/sksg/nodes/paint.js.map +0 -1
  309. package/lib/module/sksg/nodes/pathEffects.d.ts +0 -11
  310. package/lib/module/sksg/nodes/pathEffects.js +0 -97
  311. package/lib/module/sksg/nodes/pathEffects.js.map +0 -1
  312. package/lib/module/sksg/nodes/shaders.d.ts +0 -11
  313. package/lib/module/sksg/nodes/shaders.js.map +0 -1
  314. package/lib/module/sksg/nodes/utils.js.map +0 -1
  315. package/lib/typescript/lib/commonjs/external/reanimated/useDerivedValueOnJS.d.ts +0 -2
  316. package/lib/typescript/lib/commonjs/sksg/DeclarationContext.d.ts +0 -53
  317. package/lib/typescript/lib/commonjs/sksg/DrawingContext.d.ts +0 -22
  318. package/lib/typescript/lib/commonjs/sksg/nodes/Node.d.ts +0 -1
  319. package/lib/typescript/lib/commonjs/sksg/nodes/colorFilters.d.ts +0 -8
  320. package/lib/typescript/lib/commonjs/sksg/nodes/context.d.ts +0 -2
  321. package/lib/typescript/lib/commonjs/sksg/nodes/imageFilters.d.ts +0 -12
  322. package/lib/typescript/lib/commonjs/sksg/nodes/index.d.ts +0 -1
  323. package/lib/typescript/lib/commonjs/sksg/nodes/paint.d.ts +0 -2
  324. package/lib/typescript/lib/commonjs/sksg/nodes/pathEffects.d.ts +0 -9
  325. package/lib/typescript/lib/commonjs/sksg/nodes/shaders.d.ts +0 -10
  326. package/lib/typescript/lib/module/external/reanimated/useDerivedValueOnJS.d.ts +0 -1
  327. package/lib/typescript/lib/module/sksg/DeclarationContext.d.ts +0 -52
  328. package/lib/typescript/lib/module/sksg/DrawingContext.d.ts +0 -21
  329. package/lib/typescript/lib/module/sksg/nodes/Node.d.ts +0 -1
  330. package/lib/typescript/lib/module/sksg/nodes/colorFilters.d.ts +0 -7
  331. package/lib/typescript/lib/module/sksg/nodes/context.d.ts +0 -1
  332. package/lib/typescript/lib/module/sksg/nodes/imageFilters.d.ts +0 -11
  333. package/lib/typescript/lib/module/sksg/nodes/index.d.ts +0 -3
  334. package/lib/typescript/lib/module/sksg/nodes/paint.d.ts +0 -1
  335. package/lib/typescript/lib/module/sksg/nodes/pathEffects.d.ts +0 -8
  336. package/lib/typescript/lib/module/sksg/nodes/shaders.d.ts +0 -9
  337. package/lib/typescript/src/external/reanimated/useDerivedValueOnJS.d.ts +0 -1
  338. package/lib/typescript/src/sksg/DeclarationContext.d.ts +0 -56
  339. package/lib/typescript/src/sksg/DrawingContext.d.ts +0 -13
  340. package/lib/typescript/src/sksg/__tests__/Declarations.spec.d.ts +0 -1
  341. package/lib/typescript/src/sksg/__tests__/MockDeclaration.d.ts +0 -57
  342. package/lib/typescript/src/sksg/nodes/Node.d.ts +0 -7
  343. package/lib/typescript/src/sksg/nodes/colorFilters.d.ts +0 -10
  344. package/lib/typescript/src/sksg/nodes/context.d.ts +0 -3
  345. package/lib/typescript/src/sksg/nodes/drawings.d.ts +0 -30
  346. package/lib/typescript/src/sksg/nodes/imageFilters.d.ts +0 -17
  347. package/lib/typescript/src/sksg/nodes/index.d.ts +0 -3
  348. package/lib/typescript/src/sksg/nodes/paint.d.ts +0 -3
  349. package/lib/typescript/src/sksg/nodes/pathEffects.d.ts +0 -11
  350. package/lib/typescript/src/sksg/nodes/shaders.d.ts +0 -11
  351. package/src/external/reanimated/useDerivedValueOnJS.ts +0 -20
  352. package/src/sksg/DeclarationContext.ts +0 -85
  353. package/src/sksg/DrawingContext.ts +0 -226
  354. package/src/sksg/__tests__/Declarations.spec.tsx +0 -235
  355. package/src/sksg/__tests__/MockDeclaration.ts +0 -138
  356. package/src/sksg/nodes/Node.ts +0 -8
  357. package/src/sksg/nodes/colorFilters.ts +0 -79
  358. package/src/sksg/nodes/context.ts +0 -412
  359. package/src/sksg/nodes/imageFilters.ts +0 -235
  360. package/src/sksg/nodes/index.ts +0 -3
  361. package/src/sksg/nodes/paint.ts +0 -75
  362. package/src/sksg/nodes/pathEffects.ts +0 -118
  363. /package/lib/typescript/lib/commonjs/sksg/{nodes/drawings.d.ts → Recorder/commands/Drawing.d.ts} +0 -0
  364. /package/lib/typescript/lib/module/sksg/{nodes/drawings.d.ts → Recorder/commands/Drawing.d.ts} +0 -0
@@ -0,0 +1,169 @@
1
+ import { enumKey, processPath } from "../../../dom/nodes";
2
+ import { NodeType } from "../../../dom/types";
3
+ import type {
4
+ CornerPathEffectProps,
5
+ DashPathEffectProps,
6
+ DiscretePathEffectProps,
7
+ Line2DPathEffectProps,
8
+ Path1DPathEffectProps,
9
+ Path2DPathEffectProps,
10
+ } from "../../../dom/types";
11
+ import { Path1DEffectStyle } from "../../../skia/types";
12
+ import { composeDeclarations } from "../../utils";
13
+ import type { Command } from "../Core";
14
+ import { CommandType } from "../Core";
15
+ import type { DrawingContext } from "../DrawingContext";
16
+
17
+ const declareDiscretePathEffect = (
18
+ ctx: DrawingContext,
19
+ props: DiscretePathEffectProps
20
+ ) => {
21
+ "worklet";
22
+ const { length, deviation, seed } = props;
23
+ const pe = ctx.Skia.PathEffect.MakeDiscrete(length, deviation, seed);
24
+ ctx.pathEffects.push(pe);
25
+ };
26
+
27
+ const declarePath2DPathEffect = (
28
+ ctx: DrawingContext,
29
+ props: Path2DPathEffectProps
30
+ ) => {
31
+ "worklet";
32
+ const { matrix } = props;
33
+ const path = processPath(ctx.Skia, props.path);
34
+ const pe = ctx.Skia.PathEffect.MakePath2D(matrix, path);
35
+ if (pe === null) {
36
+ throw new Error("Path2DPathEffect: invalid path");
37
+ }
38
+ ctx.pathEffects.push(pe);
39
+ };
40
+
41
+ const declareDashPathEffect = (
42
+ ctx: DrawingContext,
43
+ props: DashPathEffectProps
44
+ ) => {
45
+ "worklet";
46
+ const { intervals, phase } = props;
47
+ const pe = ctx.Skia.PathEffect.MakeDash(intervals, phase);
48
+ ctx.pathEffects.push(pe);
49
+ };
50
+
51
+ const declareCornerPathEffect = (
52
+ ctx: DrawingContext,
53
+ props: CornerPathEffectProps
54
+ ) => {
55
+ "worklet";
56
+ const { r } = props;
57
+ const pe = ctx.Skia.PathEffect.MakeCorner(r);
58
+ if (pe === null) {
59
+ throw new Error("CornerPathEffect: couldn't create path effect");
60
+ }
61
+ ctx.pathEffects.push(pe);
62
+ };
63
+
64
+ const declareSumPathEffect = (ctx: DrawingContext) => {
65
+ "worklet";
66
+ // Note: decorateChildren functionality needs to be handled differently
67
+ const pes = ctx.pathEffects.splice(0, ctx.pathEffects.length);
68
+ const pe = composeDeclarations(
69
+ pes,
70
+ ctx.Skia.PathEffect.MakeSum.bind(ctx.Skia.PathEffect)
71
+ );
72
+ ctx.pathEffects.push(pe);
73
+ };
74
+
75
+ const declareLine2DPathEffect = (
76
+ ctx: DrawingContext,
77
+ props: Line2DPathEffectProps
78
+ ) => {
79
+ "worklet";
80
+ const { width, matrix } = props;
81
+ const pe = ctx.Skia.PathEffect.MakeLine2D(width, matrix);
82
+ if (pe === null) {
83
+ throw new Error("Line2DPathEffect: could not create path effect");
84
+ }
85
+ ctx.pathEffects.push(pe);
86
+ };
87
+
88
+ const declarePath1DPathEffect = (
89
+ ctx: DrawingContext,
90
+ props: Path1DPathEffectProps
91
+ ) => {
92
+ "worklet";
93
+ const { advance, phase, style } = props;
94
+ const path = processPath(ctx.Skia, props.path);
95
+ const pe = ctx.Skia.PathEffect.MakePath1D(
96
+ path,
97
+ advance,
98
+ phase,
99
+ Path1DEffectStyle[enumKey(style)]
100
+ );
101
+ if (pe === null) {
102
+ throw new Error("Path1DPathEffect: could not create path effect");
103
+ }
104
+ ctx.pathEffects.push(pe);
105
+ };
106
+
107
+ export const isPushPathEffect = (
108
+ command: Command
109
+ ): command is Command<CommandType.PushPathEffect> => {
110
+ "worklet";
111
+ return command.type === CommandType.PushPathEffect;
112
+ };
113
+
114
+ type Props = {
115
+ [NodeType.DiscretePathEffect]: DiscretePathEffectProps;
116
+ [NodeType.DashPathEffect]: DashPathEffectProps;
117
+ [NodeType.Path1DPathEffect]: Path1DPathEffectProps;
118
+ [NodeType.Path2DPathEffect]: Path2DPathEffectProps;
119
+ [NodeType.CornerPathEffect]: CornerPathEffectProps;
120
+ [NodeType.SumPathEffect]: Record<string, never>;
121
+ [NodeType.Line2DPathEffect]: Line2DPathEffectProps;
122
+ };
123
+
124
+ interface PushPathEffect<T extends keyof Props>
125
+ extends Command<CommandType.PushPathEffect> {
126
+ pathEffectType: T;
127
+ props: Props[T];
128
+ }
129
+
130
+ const isPathEffect = <T extends keyof Props>(
131
+ command: Command<CommandType.PushPathEffect>,
132
+ type: T
133
+ ): command is PushPathEffect<T> => {
134
+ "worklet";
135
+ return command.pathEffectType === type;
136
+ };
137
+
138
+ export const composePathEffects = (ctx: DrawingContext) => {
139
+ "worklet";
140
+ if (ctx.pathEffects.length > 1) {
141
+ const outer = ctx.pathEffects.pop()!;
142
+ const inner = ctx.pathEffects.pop()!;
143
+ ctx.pathEffects.push(ctx.Skia.PathEffect.MakeCompose(outer, inner));
144
+ }
145
+ };
146
+
147
+ export const pushPathEffect = (
148
+ ctx: DrawingContext,
149
+ command: Command<CommandType.PushPathEffect>
150
+ ) => {
151
+ "worklet";
152
+ if (isPathEffect(command, NodeType.DiscretePathEffect)) {
153
+ declareDiscretePathEffect(ctx, command.props);
154
+ } else if (isPathEffect(command, NodeType.DashPathEffect)) {
155
+ declareDashPathEffect(ctx, command.props);
156
+ } else if (isPathEffect(command, NodeType.Path1DPathEffect)) {
157
+ declarePath1DPathEffect(ctx, command.props);
158
+ } else if (isPathEffect(command, NodeType.Path2DPathEffect)) {
159
+ declarePath2DPathEffect(ctx, command.props);
160
+ } else if (isPathEffect(command, NodeType.CornerPathEffect)) {
161
+ declareCornerPathEffect(ctx, command.props);
162
+ } else if (isPathEffect(command, NodeType.SumPathEffect)) {
163
+ declareSumPathEffect(ctx);
164
+ } else if (isPathEffect(command, NodeType.Line2DPathEffect)) {
165
+ declareLine2DPathEffect(ctx, command.props);
166
+ } else {
167
+ throw new Error("Invalid image filter type: " + command.imageFilterType);
168
+ }
169
+ };
@@ -5,8 +5,10 @@ import {
5
5
  processGradientProps,
6
6
  processTransformProps,
7
7
  rect2rect,
8
- } from "../../dom/nodes";
8
+ } from "../../../dom/nodes";
9
+ import { NodeType } from "../../../dom/types";
9
10
  import type {
11
+ BlendProps,
10
12
  ColorProps,
11
13
  FractalNoiseProps,
12
14
  ImageShaderProps,
@@ -16,40 +18,41 @@ import type {
16
18
  SweepGradientProps,
17
19
  TurbulenceProps,
18
20
  TwoPointConicalGradientProps,
19
- } from "../../dom/types";
21
+ } from "../../../dom/types";
20
22
  import {
23
+ BlendMode,
21
24
  FilterMode,
22
25
  MipmapMode,
23
26
  processUniforms,
24
27
  TileMode,
25
- } from "../../skia/types";
26
- import type { DeclarationContext } from "../DeclarationContext";
28
+ } from "../../../skia/types";
29
+ import { composeDeclarations } from "../../utils";
30
+ import type { Command } from "../Core";
31
+ import { CommandType } from "../Core";
32
+ import type { DrawingContext } from "../DrawingContext";
27
33
 
28
- export const declareShader = (ctx: DeclarationContext, props: ShaderProps) => {
34
+ const declareShader = (ctx: DrawingContext, props: ShaderProps) => {
29
35
  "worklet";
30
36
  const { source, uniforms, ...transform } = props;
31
37
  const m3 = ctx.Skia.Matrix();
32
38
  processTransformProps(m3, transform);
33
39
  const shader = source.makeShaderWithChildren(
34
40
  processUniforms(source, uniforms),
35
- ctx.shaders.popAll(),
41
+ ctx.shaders.splice(0, ctx.shaders.length),
36
42
  m3
37
43
  );
38
44
  ctx.shaders.push(shader);
39
45
  };
40
46
 
41
- export const declareColorShader = (
42
- ctx: DeclarationContext,
43
- props: ColorProps
44
- ) => {
47
+ const declareColorShader = (ctx: DrawingContext, props: ColorProps) => {
45
48
  "worklet";
46
49
  const { color } = props;
47
50
  const shader = ctx.Skia.Shader.MakeColor(ctx.Skia.Color(color));
48
51
  ctx.shaders.push(shader);
49
52
  };
50
53
 
51
- export const declareFractalNoiseShader = (
52
- ctx: DeclarationContext,
54
+ const declareFractalNoiseShader = (
55
+ ctx: DrawingContext,
53
56
  props: FractalNoiseProps
54
57
  ) => {
55
58
  "worklet";
@@ -65,8 +68,8 @@ export const declareFractalNoiseShader = (
65
68
  ctx.shaders.push(shader);
66
69
  };
67
70
 
68
- export const declareTwoPointConicalGradientShader = (
69
- ctx: DeclarationContext,
71
+ const declareTwoPointConicalGradientShader = (
72
+ ctx: DrawingContext,
70
73
  props: TwoPointConicalGradientProps
71
74
  ) => {
72
75
  "worklet";
@@ -89,8 +92,8 @@ export const declareTwoPointConicalGradientShader = (
89
92
  ctx.shaders.push(shader);
90
93
  };
91
94
 
92
- export const declareRadialGradientShader = (
93
- ctx: DeclarationContext,
95
+ const declareRadialGradientShader = (
96
+ ctx: DrawingContext,
94
97
  props: RadialGradientProps
95
98
  ) => {
96
99
  "worklet";
@@ -111,8 +114,8 @@ export const declareRadialGradientShader = (
111
114
  ctx.shaders.push(shader);
112
115
  };
113
116
 
114
- export const declareSweepGradientShader = (
115
- ctx: DeclarationContext,
117
+ const declareSweepGradientShader = (
118
+ ctx: DrawingContext,
116
119
  props: SweepGradientProps
117
120
  ) => {
118
121
  "worklet";
@@ -135,8 +138,8 @@ export const declareSweepGradientShader = (
135
138
  ctx.shaders.push(shader);
136
139
  };
137
140
 
138
- export const declareLinearGradientShader = (
139
- ctx: DeclarationContext,
141
+ const declareLinearGradientShader = (
142
+ ctx: DrawingContext,
140
143
  props: LinearGradientProps
141
144
  ) => {
142
145
  "worklet";
@@ -157,8 +160,8 @@ export const declareLinearGradientShader = (
157
160
  ctx.shaders.push(shader);
158
161
  };
159
162
 
160
- export const declareTurbulenceShader = (
161
- ctx: DeclarationContext,
163
+ const declareTurbulenceShader = (
164
+ ctx: DrawingContext,
162
165
  props: TurbulenceProps
163
166
  ) => {
164
167
  "worklet";
@@ -174,10 +177,7 @@ export const declareTurbulenceShader = (
174
177
  ctx.shaders.push(shader);
175
178
  };
176
179
 
177
- export const declareImageShader = (
178
- ctx: DeclarationContext,
179
- props: ImageShaderProps
180
- ) => {
180
+ const declareImageShader = (ctx: DrawingContext, props: ImageShaderProps) => {
181
181
  "worklet";
182
182
  const { fit, image, tx, ty, fm, mm, ...imageShaderProps } = props;
183
183
  if (!image) {
@@ -208,3 +208,77 @@ export const declareImageShader = (
208
208
  );
209
209
  ctx.shaders.push(shader);
210
210
  };
211
+
212
+ const declareBlend = (ctx: DrawingContext, props: BlendProps) => {
213
+ "worklet";
214
+ const blend = BlendMode[enumKey(props.mode as BlendProps["mode"])];
215
+ const shaders = ctx.shaders.splice(0, ctx.shaders.length);
216
+ if (shaders.length > 0) {
217
+ const composer = ctx.Skia.Shader.MakeBlend.bind(ctx.Skia.Shader, blend);
218
+ ctx.shaders.push(composeDeclarations(shaders, composer));
219
+ }
220
+ };
221
+
222
+ export const isPushShader = (
223
+ command: Command
224
+ ): command is Command<CommandType.PushShader> => {
225
+ "worklet";
226
+ return command.type === CommandType.PushShader;
227
+ };
228
+
229
+ type Props = {
230
+ [NodeType.Shader]: ShaderProps;
231
+ [NodeType.ImageShader]: ImageShaderProps;
232
+ [NodeType.ColorShader]: ColorProps;
233
+ [NodeType.Turbulence]: TurbulenceProps;
234
+ [NodeType.FractalNoise]: FractalNoiseProps;
235
+ [NodeType.LinearGradient]: LinearGradientProps;
236
+ [NodeType.RadialGradient]: RadialGradientProps;
237
+ [NodeType.SweepGradient]: SweepGradientProps;
238
+ [NodeType.TwoPointConicalGradient]: TwoPointConicalGradientProps;
239
+ [NodeType.Blend]: BlendProps;
240
+ };
241
+
242
+ interface PushShader<T extends keyof Props>
243
+ extends Command<CommandType.PushShader> {
244
+ shaderType: T;
245
+ props: Props[T];
246
+ }
247
+
248
+ const isShader = <T extends keyof Props>(
249
+ command: Command<CommandType.PushShader>,
250
+ type: T
251
+ ): command is PushShader<T> => {
252
+ "worklet";
253
+ return command.shaderType === type;
254
+ };
255
+
256
+ export const pushShader = (
257
+ ctx: DrawingContext,
258
+ command: Command<CommandType.PushShader>
259
+ ) => {
260
+ "worklet";
261
+ if (isShader(command, NodeType.Shader)) {
262
+ declareShader(ctx, command.props);
263
+ } else if (isShader(command, NodeType.ImageShader)) {
264
+ declareImageShader(ctx, command.props);
265
+ } else if (isShader(command, NodeType.ColorShader)) {
266
+ declareColorShader(ctx, command.props);
267
+ } else if (isShader(command, NodeType.Turbulence)) {
268
+ declareTurbulenceShader(ctx, command.props);
269
+ } else if (isShader(command, NodeType.FractalNoise)) {
270
+ declareFractalNoiseShader(ctx, command.props);
271
+ } else if (isShader(command, NodeType.LinearGradient)) {
272
+ declareLinearGradientShader(ctx, command.props);
273
+ } else if (isShader(command, NodeType.RadialGradient)) {
274
+ declareRadialGradientShader(ctx, command.props);
275
+ } else if (isShader(command, NodeType.SweepGradient)) {
276
+ declareSweepGradientShader(ctx, command.props);
277
+ } else if (isShader(command, NodeType.TwoPointConicalGradient)) {
278
+ declareTwoPointConicalGradientShader(ctx, command.props);
279
+ } else if (isShader(command, NodeType.Blend)) {
280
+ declareBlend(ctx, command.props);
281
+ } else {
282
+ throw new Error(`Unknown shader type: ${command.shaderType}`);
283
+ }
284
+ };
@@ -1,6 +1,6 @@
1
1
  import type { SharedValue } from "react-native-reanimated";
2
2
 
3
- import { mapKeys } from "../../renderer/typeddash";
3
+ import { mapKeys } from "../renderer/typeddash";
4
4
 
5
5
  export const isSharedValue = <T = unknown>(
6
6
  value: unknown
@@ -21,3 +21,16 @@ export const materialize = <T extends object>(props: T) => {
21
21
  });
22
22
  return result;
23
23
  };
24
+
25
+ type Composer<T> = (outer: T, inner: T) => T;
26
+
27
+ export const composeDeclarations = <T>(filters: T[], composer: Composer<T>) => {
28
+ "worklet";
29
+ const len = filters.length;
30
+ if (len <= 1) {
31
+ return filters[0];
32
+ }
33
+ return filters.reduceRight((inner, outer) =>
34
+ inner ? composer(outer, inner) : outer
35
+ );
36
+ };
@@ -1 +0,0 @@
1
- export declare const useDerivedValueOnJS: (fn: () => any, deps: unknown[]) => import("react-native-reanimated").SharedValue<any>;
@@ -1,24 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.useDerivedValueOnJS = void 0;
7
- var _react = require("react");
8
- var _ReanimatedProxy = _interopRequireDefault(require("./ReanimatedProxy"));
9
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
- const useDerivedValueOnJS = (fn, deps) => {
11
- const init = (0, _react.useMemo)(() => fn(), [fn]);
12
- const value = _ReanimatedProxy.default.useSharedValue(init);
13
- (0, _react.useEffect)(() => {
14
- const mapperId = _ReanimatedProxy.default.startMapper(() => {
15
- "worklet";
16
-
17
- _ReanimatedProxy.default.runOnJS(fn)();
18
- }, deps);
19
- return () => _ReanimatedProxy.default.stopMapper(mapperId);
20
- }, [deps, fn]);
21
- return value;
22
- };
23
- exports.useDerivedValueOnJS = useDerivedValueOnJS;
24
- //# sourceMappingURL=useDerivedValueOnJS.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","require","_ReanimatedProxy","_interopRequireDefault","e","__esModule","default","useDerivedValueOnJS","fn","deps","init","useMemo","value","Rea","useSharedValue","useEffect","mapperId","startMapper","runOnJS","stopMapper","exports"],"sources":["useDerivedValueOnJS.ts"],"sourcesContent":["import { useEffect, useMemo } from \"react\";\n\nimport Rea from \"./ReanimatedProxy\";\n\nexport const useDerivedValueOnJS = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fn: () => any,\n deps: unknown[]\n) => {\n const init = useMemo(() => fn(), [fn]);\n const value = Rea.useSharedValue(init);\n useEffect(() => {\n const mapperId = Rea.startMapper(() => {\n \"worklet\";\n Rea.runOnJS(fn)();\n }, deps);\n return () => Rea.stopMapper(mapperId);\n }, [deps, fn]);\n return value;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,gBAAA,GAAAC,sBAAA,CAAAF,OAAA;AAAoC,SAAAE,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE7B,MAAMG,mBAAmB,GAAGA,CAEjCC,EAAa,EACbC,IAAe,KACZ;EACH,MAAMC,IAAI,GAAG,IAAAC,cAAO,EAAC,MAAMH,EAAE,CAAC,CAAC,EAAE,CAACA,EAAE,CAAC,CAAC;EACtC,MAAMI,KAAK,GAAGC,wBAAG,CAACC,cAAc,CAACJ,IAAI,CAAC;EACtC,IAAAK,gBAAS,EAAC,MAAM;IACd,MAAMC,QAAQ,GAAGH,wBAAG,CAACI,WAAW,CAAC,MAAM;MACrC,SAAS;;MACTJ,wBAAG,CAACK,OAAO,CAACV,EAAE,CAAC,CAAC,CAAC;IACnB,CAAC,EAAEC,IAAI,CAAC;IACR,OAAO,MAAMI,wBAAG,CAACM,UAAU,CAACH,QAAQ,CAAC;EACvC,CAAC,EAAE,CAACP,IAAI,EAAED,EAAE,CAAC,CAAC;EACd,OAAOI,KAAK;AACd,CAAC;AAACQ,OAAA,CAAAb,mBAAA,GAAAA,mBAAA","ignoreList":[]}
@@ -1,56 +0,0 @@
1
- import type { SkShader, SkPaint, SkImageFilter, SkMaskFilter, SkPathEffect, Skia, SkColorFilter } from "../skia/types";
2
- type Composer<T> = (outer: T, inner: T) => T;
3
- export declare const composeDeclarations: <T>(filters: T[], composer: Composer<T>) => T;
4
- export declare const createDeclarationContext: (Skia: Skia) => {
5
- Skia: Skia;
6
- paints: {
7
- save: () => void;
8
- restore: () => void;
9
- pop: () => SkPaint | undefined;
10
- push: (decl: SkPaint) => void;
11
- popAll: () => SkPaint[];
12
- popAllAsOne: () => SkPaint | undefined;
13
- };
14
- maskFilters: {
15
- save: () => void;
16
- restore: () => void;
17
- pop: () => SkMaskFilter | undefined;
18
- push: (decl: SkMaskFilter) => void;
19
- popAll: () => SkMaskFilter[];
20
- popAllAsOne: () => SkMaskFilter | undefined;
21
- };
22
- shaders: {
23
- save: () => void;
24
- restore: () => void;
25
- pop: () => SkShader | undefined;
26
- push: (decl: SkShader) => void;
27
- popAll: () => SkShader[];
28
- popAllAsOne: () => SkShader | undefined;
29
- };
30
- pathEffects: {
31
- save: () => void;
32
- restore: () => void;
33
- pop: () => SkPathEffect | undefined;
34
- push: (decl: SkPathEffect) => void;
35
- popAll: () => SkPathEffect[];
36
- popAllAsOne: () => SkPathEffect | undefined;
37
- };
38
- imageFilters: {
39
- save: () => void;
40
- restore: () => void;
41
- pop: () => SkImageFilter | undefined;
42
- push: (decl: SkImageFilter) => void;
43
- popAll: () => SkImageFilter[];
44
- popAllAsOne: () => SkImageFilter | undefined;
45
- };
46
- colorFilters: {
47
- save: () => void;
48
- restore: () => void;
49
- pop: () => SkColorFilter | undefined;
50
- push: (decl: SkColorFilter) => void;
51
- popAll: () => SkColorFilter[];
52
- popAllAsOne: () => SkColorFilter | undefined;
53
- };
54
- };
55
- export type DeclarationContext = ReturnType<typeof createDeclarationContext>;
56
- export {};
@@ -1,77 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.createDeclarationContext = exports.composeDeclarations = void 0;
7
- const composeDeclarations = (filters, composer) => {
8
- "worklet";
9
-
10
- const len = filters.length;
11
- if (len <= 1) {
12
- return filters[0];
13
- }
14
- return filters.reduceRight((inner, outer) => inner ? composer(outer, inner) : outer);
15
- };
16
- exports.composeDeclarations = composeDeclarations;
17
- const createDeclaration = composer => {
18
- "worklet";
19
-
20
- const state = {
21
- decls: [],
22
- indexes: [0]
23
- };
24
- return {
25
- save: () => {
26
- state.indexes.push(state.decls.length);
27
- },
28
- restore: () => {
29
- state.indexes.pop();
30
- },
31
- pop: () => state.decls.pop(),
32
- push: decl => {
33
- state.decls.push(decl);
34
- },
35
- popAll: () => {
36
- const idx = state.indexes[state.indexes.length - 1];
37
- return state.decls.splice(idx, state.decls.length - idx);
38
- },
39
- popAllAsOne: () => {
40
- if (state.decls.length === 0) {
41
- return undefined;
42
- }
43
- if (!composer) {
44
- throw new Error("No composer for this type of declaration");
45
- }
46
- if (!state.decls.length) {
47
- return undefined;
48
- }
49
- if (!composer) {
50
- throw new Error("No composer for this type of declaration");
51
- }
52
- const idx = state.indexes[state.indexes.length - 1];
53
- const decls = state.decls.splice(idx, state.decls.length - idx);
54
- return composeDeclarations(decls, composer);
55
- }
56
- };
57
- };
58
- const createDeclarationContext = Skia => {
59
- "worklet";
60
-
61
- const composers = {
62
- pathEffect: Skia.PathEffect.MakeCompose.bind(Skia.PathEffect),
63
- imageFilter: Skia.ImageFilter.MakeCompose.bind(Skia.ImageFilter),
64
- colorFilter: Skia.ColorFilter.MakeCompose.bind(Skia.ColorFilter)
65
- };
66
- return {
67
- Skia,
68
- paints: createDeclaration(),
69
- maskFilters: createDeclaration(),
70
- shaders: createDeclaration(),
71
- pathEffects: createDeclaration(composers.pathEffect),
72
- imageFilters: createDeclaration(composers.imageFilter),
73
- colorFilters: createDeclaration(composers.colorFilter)
74
- };
75
- };
76
- exports.createDeclarationContext = createDeclarationContext;
77
- //# sourceMappingURL=DeclarationContext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["composeDeclarations","filters","composer","len","length","reduceRight","inner","outer","exports","createDeclaration","state","decls","indexes","save","push","restore","pop","decl","popAll","idx","splice","popAllAsOne","undefined","Error","createDeclarationContext","Skia","composers","pathEffect","PathEffect","MakeCompose","bind","imageFilter","ImageFilter","colorFilter","ColorFilter","paints","maskFilters","shaders","pathEffects","imageFilters","colorFilters"],"sources":["DeclarationContext.ts"],"sourcesContent":["import type {\n SkShader,\n SkPaint,\n SkImageFilter,\n SkMaskFilter,\n SkPathEffect,\n Skia,\n SkColorFilter,\n} from \"../skia/types\";\n\ntype Composer<T> = (outer: T, inner: T) => T;\n\nexport const composeDeclarations = <T>(filters: T[], composer: Composer<T>) => {\n \"worklet\";\n const len = filters.length;\n if (len <= 1) {\n return filters[0];\n }\n return filters.reduceRight((inner, outer) =>\n inner ? composer(outer, inner) : outer\n );\n};\n\nconst createDeclaration = <T>(composer?: Composer<T>) => {\n \"worklet\";\n const state = {\n decls: [] as T[],\n indexes: [0],\n };\n\n return {\n save: () => {\n state.indexes.push(state.decls.length);\n },\n restore: () => {\n state.indexes.pop();\n },\n pop: () => state.decls.pop(),\n push: (decl: T) => {\n state.decls.push(decl);\n },\n popAll: () => {\n const idx = state.indexes[state.indexes.length - 1];\n return state.decls.splice(idx, state.decls.length - idx);\n },\n popAllAsOne: () => {\n if (state.decls.length === 0) {\n return undefined;\n }\n if (!composer) {\n throw new Error(\"No composer for this type of declaration\");\n }\n if (!state.decls.length) {\n return undefined;\n }\n if (!composer) {\n throw new Error(\"No composer for this type of declaration\");\n }\n\n const idx = state.indexes[state.indexes.length - 1];\n const decls = state.decls.splice(idx, state.decls.length - idx);\n return composeDeclarations(decls, composer);\n },\n };\n};\n\nexport const createDeclarationContext = (Skia: Skia) => {\n \"worklet\";\n const composers = {\n pathEffect: Skia.PathEffect.MakeCompose.bind(Skia.PathEffect),\n imageFilter: Skia.ImageFilter.MakeCompose.bind(Skia.ImageFilter),\n colorFilter: Skia.ColorFilter.MakeCompose.bind(Skia.ColorFilter),\n };\n return {\n Skia,\n paints: createDeclaration<SkPaint>(),\n maskFilters: createDeclaration<SkMaskFilter>(),\n shaders: createDeclaration<SkShader>(),\n pathEffects: createDeclaration<SkPathEffect>(composers.pathEffect),\n imageFilters: createDeclaration<SkImageFilter>(composers.imageFilter),\n colorFilters: createDeclaration<SkColorFilter>(composers.colorFilter),\n };\n};\n\nexport type DeclarationContext = ReturnType<typeof createDeclarationContext>;\n"],"mappings":"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","ignoreList":[]}
@@ -1,13 +0,0 @@
1
- import type { DrawingNodeProps, GroupProps } from "../dom/types";
2
- import type { SkCanvas, Skia, SkPaint } from "../skia/types";
3
- import type { DeclarationContext } from "./DeclarationContext";
4
- export declare const createDrawingContext: (Skia: Skia, canvas: SkCanvas) => {
5
- Skia: Skia;
6
- canvas: SkCanvas;
7
- save: () => number;
8
- restore: () => SkPaint | undefined;
9
- getPaint: () => SkPaint;
10
- processPaint: ({ opacity, color, strokeWidth, blendMode, style, strokeJoin, strokeCap, strokeMiter, antiAlias, dither, paint: paintProp, }: DrawingNodeProps, declCtx: DeclarationContext) => boolean;
11
- processMatrixAndClipping: (props: GroupProps, layer?: boolean | SkPaint) => boolean;
12
- };
13
- export type DrawingContext = ReturnType<typeof createDrawingContext>;