@shopify/react-native-skia 1.8.0 → 1.8.1

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 (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>;