@shopify/react-native-skia 0.1.124 → 0.1.125

Sign up to get free protection for your applications and to get access to all the features.
Files changed (388) hide show
  1. package/android/CMakeLists.txt +3 -0
  2. package/android/build.gradle +1 -1
  3. package/cpp/api/JsiSkApi.h +3 -1
  4. package/cpp/api/JsiSkCanvas.h +1 -1
  5. package/cpp/api/JsiSkColor.h +41 -7
  6. package/cpp/api/JsiSkColorFilterFactory.h +2 -1
  7. package/cpp/api/JsiSkImageFilter.h +0 -2
  8. package/cpp/api/JsiSkImageFilterFactory.h +37 -17
  9. package/cpp/api/JsiSkMatrix.h +44 -2
  10. package/cpp/api/JsiSkPaint.h +4 -7
  11. package/cpp/api/JsiSkRuntimeEffect.h +7 -0
  12. package/cpp/api/JsiSkRuntimeEffectFactory.h +3 -2
  13. package/cpp/api/JsiSkRuntimeShaderBuilder.h +70 -0
  14. package/cpp/api/JsiSkShaderFactory.h +2 -2
  15. package/cpp/api/JsiSkVertices.h +1 -1
  16. package/cpp/api/third_party/CSSColorParser.cpp +194 -0
  17. package/cpp/api/third_party/CSSColorParser.h +1 -191
  18. package/cpp/jsi/JsiSimpleValueWrapper.h +98 -0
  19. package/cpp/rnskia/values/RNSkReadonlyValue.h +13 -12
  20. package/ios/RNSkia-iOS/PlatformContext.h +30 -4
  21. package/ios/RNSkia-iOS/SkiaDrawView.mm +9 -12
  22. package/lib/commonjs/{values/animation → animation}/decay/decay.js +0 -0
  23. package/lib/commonjs/{values/animation → animation}/decay/decay.js.map +0 -0
  24. package/lib/commonjs/{values/animation → animation}/decay/index.js +0 -0
  25. package/lib/commonjs/{values/animation → animation}/decay/index.js.map +0 -0
  26. package/lib/commonjs/{values/animation → animation}/decay/runDecay.js +1 -1
  27. package/lib/commonjs/animation/decay/runDecay.js.map +1 -0
  28. package/lib/commonjs/{values/animation → animation}/decay/types.js +0 -0
  29. package/lib/commonjs/{values/animation → animation}/decay/types.js.map +0 -0
  30. package/lib/commonjs/{values/animation → animation}/functions/index.js +0 -0
  31. package/lib/commonjs/{values/animation → animation}/functions/index.js.map +0 -0
  32. package/lib/commonjs/animation/functions/interpolate.js +141 -0
  33. package/lib/commonjs/animation/functions/interpolate.js.map +1 -0
  34. package/lib/commonjs/animation/functions/interpolateColors.js +39 -0
  35. package/lib/commonjs/animation/functions/interpolateColors.js.map +1 -0
  36. package/lib/commonjs/{values/animation → animation}/index.js +0 -0
  37. package/lib/commonjs/{values/animation → animation}/index.js.map +0 -0
  38. package/lib/commonjs/{values/animation → animation}/spring/Spring.js +0 -0
  39. package/lib/commonjs/{values/animation → animation}/spring/Spring.js.map +0 -0
  40. package/lib/commonjs/{values/animation → animation}/spring/functions/index.js +0 -0
  41. package/lib/commonjs/{values/animation → animation}/spring/functions/index.js.map +0 -0
  42. package/lib/commonjs/{values/animation → animation}/spring/functions/spring.js +0 -0
  43. package/lib/commonjs/{values/animation → animation}/spring/functions/spring.js.map +0 -0
  44. package/lib/commonjs/{values/animation → animation}/spring/index.js +0 -0
  45. package/lib/commonjs/{values/animation → animation}/spring/index.js.map +0 -0
  46. package/lib/commonjs/{values/animation → animation}/spring/runSpring.js +0 -0
  47. package/lib/commonjs/animation/spring/runSpring.js.map +1 -0
  48. package/lib/commonjs/{values/animation → animation}/spring/types.js +0 -0
  49. package/lib/commonjs/{values/animation → animation}/spring/types.js.map +0 -0
  50. package/lib/commonjs/{values/animation → animation}/spring/useSpring.js +0 -0
  51. package/lib/commonjs/animation/spring/useSpring.js.map +1 -0
  52. package/lib/commonjs/{values/animation → animation}/timing/Easing.js +0 -0
  53. package/lib/commonjs/{values/animation → animation}/timing/Easing.js.map +0 -0
  54. package/lib/commonjs/{values/animation → animation}/timing/createTiming.js +1 -1
  55. package/lib/commonjs/animation/timing/createTiming.js.map +1 -0
  56. package/lib/commonjs/{values/animation → animation}/timing/functions/bezier.js +0 -0
  57. package/lib/commonjs/{values/animation → animation}/timing/functions/bezier.js.map +0 -0
  58. package/lib/commonjs/{values/animation → animation}/timing/functions/getResolvedParams.js +0 -0
  59. package/lib/commonjs/{values/animation → animation}/timing/functions/getResolvedParams.js.map +0 -0
  60. package/lib/commonjs/{values/animation → animation}/timing/functions/index.js +0 -0
  61. package/lib/commonjs/{values/animation → animation}/timing/functions/index.js.map +0 -0
  62. package/lib/commonjs/{values/animation → animation}/timing/functions/timing.js +0 -0
  63. package/lib/commonjs/{values/animation → animation}/timing/functions/timing.js.map +1 -1
  64. package/lib/commonjs/{values/animation → animation}/timing/functions/types.js +0 -0
  65. package/lib/commonjs/{values/animation → animation}/timing/functions/types.js.map +0 -0
  66. package/lib/commonjs/{values/animation → animation}/timing/index.js +0 -0
  67. package/lib/commonjs/{values/animation → animation}/timing/index.js.map +0 -0
  68. package/lib/commonjs/{values/animation → animation}/timing/runTiming.js +0 -0
  69. package/lib/commonjs/animation/timing/runTiming.js.map +1 -0
  70. package/lib/commonjs/{values/animation → animation}/timing/useLoop.js +0 -0
  71. package/lib/commonjs/{values/animation → animation}/timing/useLoop.js.map +0 -0
  72. package/lib/commonjs/{values/animation → animation}/timing/useTiming.js +1 -1
  73. package/lib/commonjs/animation/timing/useTiming.js.map +1 -0
  74. package/lib/commonjs/{values/animation → animation}/types.js +0 -0
  75. package/lib/commonjs/{values/animation → animation}/types.js.map +0 -0
  76. package/lib/commonjs/index.js +13 -0
  77. package/lib/commonjs/index.js.map +1 -1
  78. package/lib/commonjs/renderer/components/colorFilters/BlendColor.js.map +1 -1
  79. package/lib/commonjs/renderer/components/imageFilters/InnerShadow.js +4 -2
  80. package/lib/commonjs/renderer/components/imageFilters/InnerShadow.js.map +1 -1
  81. package/lib/commonjs/renderer/components/imageFilters/RuntimeShader.js +37 -0
  82. package/lib/commonjs/renderer/components/imageFilters/RuntimeShader.js.map +1 -0
  83. package/lib/commonjs/renderer/components/imageFilters/index.js +13 -0
  84. package/lib/commonjs/renderer/components/imageFilters/index.js.map +1 -1
  85. package/lib/commonjs/renderer/components/shaders/Gradient.js +1 -1
  86. package/lib/commonjs/renderer/components/shaders/Gradient.js.map +1 -1
  87. package/lib/commonjs/renderer/components/shaders/Shader.js.map +1 -1
  88. package/lib/commonjs/renderer/processors/Rects.js +5 -15
  89. package/lib/commonjs/renderer/processors/Rects.js.map +1 -1
  90. package/lib/commonjs/renderer/processors/math/Matrix3.js +42 -63
  91. package/lib/commonjs/renderer/processors/math/Matrix3.js.map +1 -1
  92. package/lib/commonjs/renderer/processors/math/Vector.js +4 -5
  93. package/lib/commonjs/renderer/processors/math/Vector.js.map +1 -1
  94. package/lib/commonjs/skia/Color.js +14 -38
  95. package/lib/commonjs/skia/Color.js.map +1 -1
  96. package/lib/commonjs/skia/ImageFilter/ImageFilterFactory.js.map +1 -1
  97. package/lib/commonjs/skia/Matrix.js.map +1 -1
  98. package/lib/commonjs/skia/Shader/useShader.js +4 -1
  99. package/lib/commonjs/skia/Shader/useShader.js.map +1 -1
  100. package/lib/commonjs/skia/Skia.js +3 -45
  101. package/lib/commonjs/skia/Skia.js.map +1 -1
  102. package/lib/commonjs/skia/SkiaApi.js +4 -0
  103. package/lib/commonjs/skia/SkiaApi.js.map +1 -0
  104. package/lib/commonjs/values/api.js +4 -6
  105. package/lib/commonjs/values/api.js.map +1 -1
  106. package/lib/commonjs/values/api.web.js +18 -0
  107. package/lib/commonjs/values/api.web.js.map +1 -0
  108. package/lib/commonjs/values/index.js +0 -13
  109. package/lib/commonjs/values/index.js.map +1 -1
  110. package/lib/commonjs/values/web/RNSkAnimation.js +46 -0
  111. package/lib/commonjs/values/web/RNSkAnimation.js.map +1 -0
  112. package/lib/commonjs/values/web/RNSkClockValue.js +75 -0
  113. package/lib/commonjs/values/web/RNSkClockValue.js.map +1 -0
  114. package/lib/commonjs/values/web/RNSkDerivedValue.js +51 -0
  115. package/lib/commonjs/values/web/RNSkDerivedValue.js.map +1 -0
  116. package/lib/commonjs/values/web/RNSkReadonlyValue.js +45 -0
  117. package/lib/commonjs/values/web/RNSkReadonlyValue.js.map +1 -0
  118. package/lib/commonjs/values/web/RNSkValue.js +73 -0
  119. package/lib/commonjs/values/web/RNSkValue.js.map +1 -0
  120. package/lib/commonjs/values/web/api.js +31 -0
  121. package/lib/commonjs/values/web/api.js.map +1 -0
  122. package/lib/commonjs/values/web/index.js +19 -0
  123. package/lib/commonjs/values/web/index.js.map +1 -0
  124. package/lib/commonjs/views/SkiaView.js +13 -10
  125. package/lib/commonjs/views/SkiaView.js.map +1 -1
  126. package/lib/commonjs/views/api.js +11 -0
  127. package/lib/commonjs/views/api.js.map +1 -0
  128. package/lib/commonjs/views/types.js.map +1 -1
  129. package/lib/module/{values/animation → animation}/decay/decay.js +0 -0
  130. package/lib/module/{values/animation → animation}/decay/decay.js.map +0 -0
  131. package/lib/module/{values/animation → animation}/decay/index.js +0 -0
  132. package/lib/module/{values/animation → animation}/decay/index.js.map +0 -0
  133. package/lib/module/{values/animation → animation}/decay/runDecay.js +1 -1
  134. package/lib/module/animation/decay/runDecay.js.map +1 -0
  135. package/lib/module/{values/animation → animation}/decay/types.js +0 -0
  136. package/lib/module/{values/animation → animation}/decay/types.js.map +0 -0
  137. package/lib/module/{values/animation → animation}/functions/index.js +0 -0
  138. package/lib/module/{values/animation → animation}/functions/index.js.map +0 -0
  139. package/lib/module/animation/functions/interpolate.js +132 -0
  140. package/lib/module/animation/functions/interpolate.js.map +1 -0
  141. package/lib/module/animation/functions/interpolateColors.js +23 -0
  142. package/lib/module/animation/functions/interpolateColors.js.map +1 -0
  143. package/lib/module/{values/animation → animation}/index.js +0 -0
  144. package/lib/module/{values/animation → animation}/index.js.map +0 -0
  145. package/lib/module/{values/animation → animation}/spring/Spring.js +0 -0
  146. package/lib/module/{values/animation → animation}/spring/Spring.js.map +0 -0
  147. package/lib/module/{values/animation → animation}/spring/functions/index.js +0 -0
  148. package/lib/module/{values/animation → animation}/spring/functions/index.js.map +0 -0
  149. package/lib/module/{values/animation → animation}/spring/functions/spring.js +0 -0
  150. package/lib/module/{values/animation → animation}/spring/functions/spring.js.map +0 -0
  151. package/lib/module/{values/animation → animation}/spring/index.js +0 -0
  152. package/lib/module/{values/animation → animation}/spring/index.js.map +0 -0
  153. package/lib/module/{values/animation → animation}/spring/runSpring.js +0 -0
  154. package/lib/module/animation/spring/runSpring.js.map +1 -0
  155. package/lib/module/{values/animation → animation}/spring/types.js +0 -0
  156. package/lib/module/{values/animation → animation}/spring/types.js.map +0 -0
  157. package/lib/module/{values/animation → animation}/spring/useSpring.js +0 -0
  158. package/lib/module/animation/spring/useSpring.js.map +1 -0
  159. package/lib/module/{values/animation → animation}/timing/Easing.js +0 -0
  160. package/lib/module/{values/animation → animation}/timing/Easing.js.map +0 -0
  161. package/lib/module/{values/animation → animation}/timing/createTiming.js +1 -1
  162. package/lib/module/animation/timing/createTiming.js.map +1 -0
  163. package/lib/module/{values/animation → animation}/timing/functions/bezier.js +0 -0
  164. package/lib/module/{values/animation → animation}/timing/functions/bezier.js.map +0 -0
  165. package/lib/module/{values/animation → animation}/timing/functions/getResolvedParams.js +0 -0
  166. package/lib/module/{values/animation → animation}/timing/functions/getResolvedParams.js.map +0 -0
  167. package/lib/module/{values/animation → animation}/timing/functions/index.js +0 -0
  168. package/lib/module/{values/animation → animation}/timing/functions/index.js.map +0 -0
  169. package/lib/module/{values/animation → animation}/timing/functions/timing.js +0 -0
  170. package/lib/module/{values/animation → animation}/timing/functions/timing.js.map +1 -1
  171. package/lib/module/{values/animation → animation}/timing/functions/types.js +0 -0
  172. package/lib/module/{values/animation → animation}/timing/functions/types.js.map +0 -0
  173. package/lib/module/{values/animation → animation}/timing/index.js +0 -0
  174. package/lib/module/{values/animation → animation}/timing/index.js.map +0 -0
  175. package/lib/module/{values/animation → animation}/timing/runTiming.js +0 -0
  176. package/lib/module/animation/timing/runTiming.js.map +1 -0
  177. package/lib/module/{values/animation → animation}/timing/useLoop.js +0 -0
  178. package/lib/module/{values/animation → animation}/timing/useLoop.js.map +0 -0
  179. package/lib/module/{values/animation → animation}/timing/useTiming.js +1 -1
  180. package/lib/module/animation/timing/useTiming.js.map +1 -0
  181. package/lib/module/{values/animation → animation}/types.js +0 -0
  182. package/lib/module/{values/animation → animation}/types.js.map +0 -0
  183. package/lib/module/index.js +1 -0
  184. package/lib/module/index.js.map +1 -1
  185. package/lib/module/renderer/components/colorFilters/BlendColor.js.map +1 -1
  186. package/lib/module/renderer/components/imageFilters/InnerShadow.js +3 -2
  187. package/lib/module/renderer/components/imageFilters/InnerShadow.js.map +1 -1
  188. package/lib/module/renderer/components/imageFilters/RuntimeShader.js +19 -0
  189. package/lib/module/renderer/components/imageFilters/RuntimeShader.js.map +1 -0
  190. package/lib/module/renderer/components/imageFilters/index.js +1 -0
  191. package/lib/module/renderer/components/imageFilters/index.js.map +1 -1
  192. package/lib/module/renderer/components/shaders/Gradient.js +2 -2
  193. package/lib/module/renderer/components/shaders/Gradient.js.map +1 -1
  194. package/lib/module/renderer/components/shaders/Shader.js.map +1 -1
  195. package/lib/module/renderer/processors/Rects.js +4 -15
  196. package/lib/module/renderer/processors/Rects.js.map +1 -1
  197. package/lib/module/renderer/processors/math/Matrix3.js +52 -72
  198. package/lib/module/renderer/processors/math/Matrix3.js.map +1 -1
  199. package/lib/module/renderer/processors/math/Vector.js +3 -5
  200. package/lib/module/renderer/processors/math/Vector.js.map +1 -1
  201. package/lib/module/skia/Color.js +9 -25
  202. package/lib/module/skia/Color.js.map +1 -1
  203. package/lib/module/skia/ImageFilter/ImageFilterFactory.js.map +1 -1
  204. package/lib/module/skia/Matrix.js.map +1 -1
  205. package/lib/module/skia/Shader/useShader.js +4 -1
  206. package/lib/module/skia/Shader/useShader.js.map +1 -1
  207. package/lib/module/skia/Skia.js +2 -46
  208. package/lib/module/skia/Skia.js.map +1 -1
  209. package/lib/module/skia/SkiaApi.js +2 -0
  210. package/lib/module/skia/SkiaApi.js.map +1 -0
  211. package/lib/module/values/api.js +4 -6
  212. package/lib/module/values/api.js.map +1 -1
  213. package/lib/module/values/api.web.js +7 -0
  214. package/lib/module/values/api.web.js.map +1 -0
  215. package/lib/module/values/index.js +0 -1
  216. package/lib/module/values/index.js.map +1 -1
  217. package/lib/module/values/web/RNSkAnimation.js +36 -0
  218. package/lib/module/values/web/RNSkAnimation.js.map +1 -0
  219. package/lib/module/values/web/RNSkClockValue.js +65 -0
  220. package/lib/module/values/web/RNSkClockValue.js.map +1 -0
  221. package/lib/module/values/web/RNSkDerivedValue.js +41 -0
  222. package/lib/module/values/web/RNSkDerivedValue.js.map +1 -0
  223. package/lib/module/values/web/RNSkReadonlyValue.js +36 -0
  224. package/lib/module/values/web/RNSkReadonlyValue.js.map +1 -0
  225. package/lib/module/values/web/RNSkValue.js +63 -0
  226. package/lib/module/values/web/RNSkValue.js.map +1 -0
  227. package/lib/module/values/web/api.js +19 -0
  228. package/lib/module/values/web/api.js.map +1 -0
  229. package/lib/module/values/web/index.js +2 -0
  230. package/lib/module/values/web/index.js.map +1 -0
  231. package/lib/module/views/SkiaView.js +1 -3
  232. package/lib/module/views/SkiaView.js.map +1 -1
  233. package/lib/module/views/api.js +4 -0
  234. package/lib/module/views/api.js.map +1 -0
  235. package/lib/module/views/types.js.map +1 -1
  236. package/lib/typescript/src/{values/animation → animation}/decay/decay.d.ts +0 -0
  237. package/lib/typescript/src/{values/animation → animation}/decay/index.d.ts +0 -0
  238. package/lib/typescript/src/{values/animation → animation}/decay/runDecay.d.ts +2 -2
  239. package/lib/typescript/src/{values/animation → animation}/decay/types.d.ts +1 -1
  240. package/lib/typescript/src/{values/animation → animation}/functions/index.d.ts +0 -0
  241. package/lib/typescript/src/animation/functions/interpolate.d.ts +11 -0
  242. package/lib/typescript/src/animation/functions/interpolateColors.d.ts +3 -0
  243. package/lib/typescript/src/{values/animation → animation}/index.d.ts +0 -0
  244. package/lib/typescript/src/{values/animation → animation}/spring/Spring.d.ts +0 -0
  245. package/lib/typescript/src/{values/animation → animation}/spring/functions/index.d.ts +0 -0
  246. package/lib/typescript/src/{values/animation → animation}/spring/functions/spring.d.ts +0 -0
  247. package/lib/typescript/src/{values/animation → animation}/spring/index.d.ts +0 -0
  248. package/lib/typescript/src/{values/animation → animation}/spring/runSpring.d.ts +1 -1
  249. package/lib/typescript/src/{values/animation → animation}/spring/types.d.ts +0 -0
  250. package/lib/typescript/src/{values/animation → animation}/spring/useSpring.d.ts +1 -1
  251. package/lib/typescript/src/{values/animation → animation}/timing/Easing.d.ts +0 -0
  252. package/lib/typescript/src/{values/animation → animation}/timing/createTiming.d.ts +2 -2
  253. package/lib/typescript/src/{values/animation → animation}/timing/functions/bezier.d.ts +0 -0
  254. package/lib/typescript/src/{values/animation → animation}/timing/functions/getResolvedParams.d.ts +0 -0
  255. package/lib/typescript/src/{values/animation → animation}/timing/functions/index.d.ts +0 -0
  256. package/lib/typescript/src/{values/animation → animation}/timing/functions/timing.d.ts +1 -1
  257. package/lib/typescript/src/{values/animation → animation}/timing/functions/types.d.ts +0 -0
  258. package/lib/typescript/src/{values/animation → animation}/timing/index.d.ts +0 -0
  259. package/lib/typescript/src/{values/animation → animation}/timing/runTiming.d.ts +1 -1
  260. package/lib/typescript/src/{values/animation → animation}/timing/useLoop.d.ts +0 -0
  261. package/lib/typescript/src/{values/animation → animation}/timing/useTiming.d.ts +1 -1
  262. package/lib/typescript/src/{values/animation → animation}/types.d.ts +0 -0
  263. package/lib/typescript/src/index.d.ts +1 -0
  264. package/lib/typescript/src/renderer/components/colorFilters/BlendColor.d.ts +1 -1
  265. package/lib/typescript/src/renderer/components/imageFilters/RuntimeShader.d.ts +7 -0
  266. package/lib/typescript/src/renderer/components/imageFilters/index.d.ts +1 -0
  267. package/lib/typescript/src/renderer/components/shaders/Gradient.d.ts +1 -1
  268. package/lib/typescript/src/renderer/components/shaders/Shader.d.ts +2 -2
  269. package/lib/typescript/src/renderer/components/shapes/Circle.d.ts +1 -4
  270. package/lib/typescript/src/renderer/processors/Rects.d.ts +9 -41
  271. package/lib/typescript/src/renderer/processors/math/Matrix3.d.ts +1 -5
  272. package/lib/typescript/src/renderer/processors/math/Vector.d.ts +5 -17
  273. package/lib/typescript/src/skia/Color.d.ts +8 -9
  274. package/lib/typescript/src/skia/ImageFilter/ImageFilterFactory.d.ts +16 -0
  275. package/lib/typescript/src/skia/Matrix.d.ts +7 -1
  276. package/lib/typescript/src/skia/RuntimeEffect/RuntimeEffect.d.ts +2 -1
  277. package/lib/typescript/src/skia/RuntimeEffect/RuntimeEffectFactory.d.ts +2 -2
  278. package/lib/typescript/src/skia/Shader/useShader.d.ts +1 -1
  279. package/lib/typescript/src/skia/Skia.d.ts +28 -95
  280. package/lib/typescript/src/skia/SkiaApi.d.ts +71 -0
  281. package/lib/typescript/src/skia/Surface/Surface.d.ts +1 -1
  282. package/lib/typescript/src/skia/Surface/SurfaceFactory.d.ts +2 -2
  283. package/lib/typescript/src/values/api.d.ts +2 -25
  284. package/lib/typescript/src/values/api.web.d.ts +2 -0
  285. package/lib/typescript/src/values/index.d.ts +0 -1
  286. package/lib/typescript/src/values/types.d.ts +24 -1
  287. package/lib/typescript/src/values/web/RNSkAnimation.d.ts +9 -0
  288. package/lib/typescript/src/values/web/RNSkClockValue.d.ts +13 -0
  289. package/lib/typescript/src/values/web/RNSkDerivedValue.d.ts +9 -0
  290. package/lib/typescript/src/values/web/RNSkReadonlyValue.d.ts +11 -0
  291. package/lib/typescript/src/values/web/RNSkValue.d.ts +14 -0
  292. package/lib/typescript/src/values/web/api.d.ts +2 -0
  293. package/lib/typescript/src/values/web/index.d.ts +1 -0
  294. package/lib/typescript/src/views/SkiaView.d.ts +3 -36
  295. package/lib/typescript/src/views/api.d.ts +5 -0
  296. package/lib/typescript/src/views/types.d.ts +32 -0
  297. package/package.json +2 -2
  298. package/src/{values/animation → animation}/decay/decay.ts +0 -0
  299. package/src/{values/animation → animation}/decay/index.ts +0 -0
  300. package/src/{values/animation → animation}/decay/runDecay.ts +2 -2
  301. package/src/{values/animation → animation}/decay/types.ts +1 -1
  302. package/src/{values/animation → animation}/functions/index.ts +0 -0
  303. package/src/animation/functions/interpolate.ts +182 -0
  304. package/src/animation/functions/interpolateColors.ts +58 -0
  305. package/src/{values/animation → animation}/index.ts +0 -0
  306. package/src/{values/animation → animation}/spring/Spring.ts +0 -0
  307. package/src/{values/animation → animation}/spring/functions/index.ts +0 -0
  308. package/src/{values/animation → animation}/spring/functions/spring.ts +0 -0
  309. package/src/{values/animation → animation}/spring/index.ts +0 -0
  310. package/src/{values/animation → animation}/spring/runSpring.ts +1 -1
  311. package/src/{values/animation → animation}/spring/types.ts +0 -0
  312. package/src/{values/animation → animation}/spring/useSpring.ts +1 -1
  313. package/src/{values/animation → animation}/timing/Easing.ts +0 -0
  314. package/src/{values/animation → animation}/timing/createTiming.ts +2 -2
  315. package/src/{values/animation → animation}/timing/functions/__tests__/timing.spec.ts +0 -0
  316. package/src/{values/animation → animation}/timing/functions/bezier.ts +0 -0
  317. package/src/{values/animation → animation}/timing/functions/getResolvedParams.ts +0 -0
  318. package/src/{values/animation → animation}/timing/functions/index.ts +0 -0
  319. package/src/{values/animation → animation}/timing/functions/timing.ts +1 -1
  320. package/src/{values/animation → animation}/timing/functions/types.ts +0 -0
  321. package/src/{values/animation → animation}/timing/index.ts +0 -0
  322. package/src/{values/animation → animation}/timing/runTiming.ts +1 -1
  323. package/src/{values/animation → animation}/timing/useLoop.ts +0 -0
  324. package/src/{values/animation → animation}/timing/useTiming.ts +2 -2
  325. package/src/{values/animation → animation}/types.ts +0 -0
  326. package/src/index.ts +1 -0
  327. package/src/renderer/components/colorFilters/BlendColor.tsx +1 -1
  328. package/src/renderer/components/imageFilters/InnerShadow.tsx +4 -2
  329. package/src/renderer/components/imageFilters/RuntimeShader.tsx +23 -0
  330. package/src/renderer/components/imageFilters/index.ts +1 -0
  331. package/src/renderer/components/shaders/Gradient.ts +2 -4
  332. package/src/renderer/components/shaders/Shader.tsx +2 -2
  333. package/src/renderer/processors/Rects.ts +6 -12
  334. package/src/renderer/processors/math/Matrix3.ts +24 -105
  335. package/src/renderer/processors/math/Vector.ts +3 -2
  336. package/src/skia/Color.ts +13 -27
  337. package/src/skia/ImageFilter/ImageFilterFactory.ts +20 -0
  338. package/src/skia/Matrix.ts +8 -1
  339. package/src/skia/RuntimeEffect/RuntimeEffect.ts +3 -1
  340. package/src/skia/RuntimeEffect/RuntimeEffectFactory.ts +2 -2
  341. package/src/skia/Shader/useShader.ts +4 -1
  342. package/src/skia/Skia.ts +4 -126
  343. package/src/skia/SkiaApi.ts +86 -0
  344. package/src/skia/Surface/Surface.ts +1 -1
  345. package/src/skia/Surface/SurfaceFactory.ts +2 -2
  346. package/src/values/api.ts +3 -42
  347. package/src/values/api.web.ts +5 -0
  348. package/src/values/index.ts +0 -1
  349. package/src/values/types.ts +30 -1
  350. package/src/values/web/RNSkAnimation.ts +33 -0
  351. package/src/values/web/RNSkClockValue.ts +58 -0
  352. package/src/values/web/RNSkDerivedValue.ts +38 -0
  353. package/src/values/web/RNSkReadonlyValue.ts +32 -0
  354. package/src/values/web/RNSkValue.ts +57 -0
  355. package/src/values/web/__tests__/RNSkAnimation.spec.ts +21 -0
  356. package/src/values/web/__tests__/RNSkDerivedValue.spec.ts +15 -0
  357. package/src/values/web/__tests__/RNSkReadonlyValue.spec.ts +8 -0
  358. package/src/values/web/__tests__/RNSkValue.spec.ts +11 -0
  359. package/src/values/web/api.ts +33 -0
  360. package/src/values/web/index.ts +1 -0
  361. package/src/views/SkiaView.tsx +3 -49
  362. package/src/views/api.ts +7 -0
  363. package/src/views/types.ts +40 -0
  364. package/lib/commonjs/values/animation/decay/runDecay.js.map +0 -1
  365. package/lib/commonjs/values/animation/functions/interpolate.js +0 -139
  366. package/lib/commonjs/values/animation/functions/interpolate.js.map +0 -1
  367. package/lib/commonjs/values/animation/functions/interpolateColors.js +0 -47
  368. package/lib/commonjs/values/animation/functions/interpolateColors.js.map +0 -1
  369. package/lib/commonjs/values/animation/spring/runSpring.js.map +0 -1
  370. package/lib/commonjs/values/animation/spring/useSpring.js.map +0 -1
  371. package/lib/commonjs/values/animation/timing/createTiming.js.map +0 -1
  372. package/lib/commonjs/values/animation/timing/runTiming.js.map +0 -1
  373. package/lib/commonjs/values/animation/timing/useTiming.js.map +0 -1
  374. package/lib/module/values/animation/decay/runDecay.js.map +0 -1
  375. package/lib/module/values/animation/functions/interpolate.js +0 -132
  376. package/lib/module/values/animation/functions/interpolate.js.map +0 -1
  377. package/lib/module/values/animation/functions/interpolateColors.js +0 -32
  378. package/lib/module/values/animation/functions/interpolateColors.js.map +0 -1
  379. package/lib/module/values/animation/spring/runSpring.js.map +0 -1
  380. package/lib/module/values/animation/spring/useSpring.js.map +0 -1
  381. package/lib/module/values/animation/timing/createTiming.js.map +0 -1
  382. package/lib/module/values/animation/timing/runTiming.js.map +0 -1
  383. package/lib/module/values/animation/timing/useTiming.js.map +0 -1
  384. package/lib/typescript/scripts/install-npm.d.ts +0 -1
  385. package/lib/typescript/src/values/animation/functions/interpolate.d.ts +0 -7
  386. package/lib/typescript/src/values/animation/functions/interpolateColors.d.ts +0 -3
  387. package/src/values/animation/functions/interpolate.ts +0 -169
  388. package/src/values/animation/functions/interpolateColors.ts +0 -62
@@ -1,4 +1,4 @@
1
- import { ValueApi } from "../../api";
1
+ import { ValueApi } from "../../values/api";
2
2
  import { timing } from "./functions";
3
3
  /**
4
4
  * Creates an animation that is driven by a clock value.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["createTiming.ts"],"names":["ValueApi","timing","createTiming","params","value","callback","resolvedParams","from","current","animationFunction","t","state","nextState","duration","easing","loop","yoyo","finished","to","createAnimation"],"mappings":"AAMA,SAASA,QAAT,QAAyB,kBAAzB;AAEA,SAASC,MAAT,QAAuB,aAAvB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,MAAMC,YAAY,GAAG,CAC1BC,MAD0B,EAE1BC,KAF0B,EAG1BC,QAH0B,KAIvB;AAAA;;AACH;AACA;AACA,QAAMC,cAAc,GAAG,EACrB,GAAGH,MADkB;AAErBI,IAAAA,IAAI,0BAAEJ,MAAM,CAACI,IAAT,uDAAiBH,KAAjB,aAAiBA,KAAjB,uBAAiBA,KAAK,CAAEI,OAAxB,uCAAmC;AAFlB,GAAvB,CAHG,CAQH;;AACA,QAAMC,iBAAiB,GAAG,CAACC,CAAD,EAAYC,KAAZ,KAAkD;AAAA;;AAC1E;AACA,UAAMC,SAAS,GAAGX,MAAM,CACtBS,CADsB,EAEtBP,MAAM,CAACU,QAFe,EAGtBV,MAAM,CAACW,MAHe,kBAItBX,MAAM,CAACY,IAJe,uDAIP,KAJO,kBAKtBZ,MAAM,CAACa,IALe,uDAKP,KALO,EAMtBL,KANsB,aAMtBA,KANsB,cAMtBA,KANsB,GAMb;AAAEH,MAAAA,OAAO,EAAEL,MAAM,CAACI,IAAlB;AAAyBU,MAAAA,QAAQ,EAAE;AAAnC,KANa,CAAxB;AAQA,UAAMT,OAAO,GACXI,SAAS,CAACJ,OAAV,IAAqBF,cAAc,CAACY,EAAf,GAAoBZ,cAAc,CAACC,IAAxD,IACAD,cAAc,CAACC,IAFjB;;AAGA,QAAIF,QAAQ,IAAIO,SAAS,CAACK,QAAV,KAAuB,IAAvC,EAA6C;AAC3CZ,MAAAA,QAAQ,CAACG,OAAD,CAAR;AACD;;AACD,WAAO,EACL,GAAGI,SADE;AAELJ,MAAAA;AAFK,KAAP;AAID,GApBD,CATG,CA+BH;;;AACA,SAAOR,QAAQ,CAACmB,eAAT,CAAyBV,iBAAzB,CAAP;AACD,CArCM","sourcesContent":["import type {\n TimingConfig,\n RequiredAnimationParams,\n AnimationCallback,\n} from \"../types\";\nimport type { AnimationState, SkiaValue } from \"../../values/types\";\nimport { ValueApi } from \"../../values/api\";\n\nimport { timing } from \"./functions\";\n\n/**\n * Creates an animation that is driven by a clock value.\n * The value will be run from / to the value in params and modified\n * by the provided easing curve for the length of the duration. When\n * the value has reached its desired \"to\" value the animation\n * will be stopped. If loop is set to true, the animation will continue\n * to run until stopped.\n *\n * @param params Animation parameters\n * @param config Spring or timing configuration\n * @param value Optional value that the animation will update\n * @params an animation value that can be used to start/stop\n * the animation.\n */\nexport const createTiming = (\n params: RequiredAnimationParams & Required<TimingConfig>,\n value?: SkiaValue<number>,\n callback?: AnimationCallback\n) => {\n // Update from to be either the declared from value,\n // the current value of the value or zero\n const resolvedParams = {\n ...params,\n from: params.from ?? value?.current ?? 0,\n };\n\n // Update function for the animation value\n const animationFunction = (t: number, state: AnimationState | undefined) => {\n // Update the input value using the provided update function\n const nextState = timing(\n t,\n params.duration,\n params.easing,\n params.loop ?? false,\n params.yoyo ?? false,\n state ?? { current: params.from!, finished: false }\n );\n const current =\n nextState.current * (resolvedParams.to - resolvedParams.from!) +\n resolvedParams.from!;\n if (callback && nextState.finished === true) {\n callback(current);\n }\n return {\n ...nextState,\n current,\n };\n };\n\n // Create animation value\n return ValueApi.createAnimation(animationFunction);\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["timing.ts"],"names":["timing","t","duration","easing","loop","yoyo","state","current","finished","n","Math","max","min"],"mappings":"AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,MAAM,GAAG,CACpBC,CADoB,EAEpBC,QAFoB,EAGpBC,MAHoB,EAIpBC,IAJoB,EAKpBC,IALoB,EAMpBC,KANoB,KAOjB;AACH,MAAIC,OAAO,GAAGN,CAAC,GAAGC,QAAlB;AACA,MAAI;AAAEM,IAAAA;AAAF,MAAeF,KAAnB,CAFG,CAGH;;AACA,MAAIC,OAAO,IAAI,GAAX,IAAkB,CAACH,IAAvB,EAA6B;AAC3BI,IAAAA,QAAQ,GAAG,IAAX;AACAD,IAAAA,OAAO,GAAG,GAAV;AACD,GAPE,CAQH;;;AACA,MAAIE,CAAC,GAAGF,OAAO,GAAG,CAAlB;;AACA,MAAIF,IAAJ,EAAU;AACRI,IAAAA,CAAC,GAAGF,OAAO,GAAG,GAAV,IAAiB,GAAjB,GAAuB,IAAKA,OAAO,GAAG,CAAtC,GAA2CA,OAAO,GAAG,CAAzD;AACD,GAFD,MAEO,IAAI,CAACH,IAAL,EAAW;AAChB,QAAIG,OAAO,IAAI,GAAf,EAAoB;AAClBE,MAAAA,CAAC,GAAG,GAAJ;AACD;AACF;;AACDF,EAAAA,OAAO,GAAGJ,MAAM,CAACO,IAAI,CAACC,GAAL,CAAS,CAAT,EAAYD,IAAI,CAACE,GAAL,CAAS,CAAT,EAAYH,CAAZ,CAAZ,CAAD,CAAhB;AACA,SAAO;AACLF,IAAAA,OADK;AAELC,IAAAA;AAFK,GAAP;AAID,CA7BM","sourcesContent":["import type { AnimationState } from \"../../../types\";\n\n/**\n * Calculates and returns a timing value based on the\n * input parameters. The timing value is a number between\n * 0 and 1.\n * @param t\n * @param duration\n * @param easing\n * @param loop\n * @param yoyo\n * @param onStop\n * @returns\n */\nexport const timing = (\n t: number,\n duration: number,\n easing: (t: number) => number,\n loop: boolean,\n yoyo: boolean,\n state: AnimationState\n) => {\n let current = t / duration;\n let { finished } = state;\n // Side effect to stop animation when duration is reached (if loop is false)\n if (current >= 1.0 && !loop) {\n finished = true;\n current = 1.0;\n }\n // calculate return value\n let n = current % 1;\n if (yoyo) {\n n = current % 2.0 >= 1.0 ? 1 - (current % 1) : current % 1;\n } else if (!loop) {\n if (current >= 1.0) {\n n = 1.0;\n }\n }\n current = easing(Math.max(0, Math.min(1, n)));\n return {\n current,\n finished,\n };\n};\n"]}
1
+ {"version":3,"sources":["timing.ts"],"names":["timing","t","duration","easing","loop","yoyo","state","current","finished","n","Math","max","min"],"mappings":"AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,MAAM,GAAG,CACpBC,CADoB,EAEpBC,QAFoB,EAGpBC,MAHoB,EAIpBC,IAJoB,EAKpBC,IALoB,EAMpBC,KANoB,KAOjB;AACH,MAAIC,OAAO,GAAGN,CAAC,GAAGC,QAAlB;AACA,MAAI;AAAEM,IAAAA;AAAF,MAAeF,KAAnB,CAFG,CAGH;;AACA,MAAIC,OAAO,IAAI,GAAX,IAAkB,CAACH,IAAvB,EAA6B;AAC3BI,IAAAA,QAAQ,GAAG,IAAX;AACAD,IAAAA,OAAO,GAAG,GAAV;AACD,GAPE,CAQH;;;AACA,MAAIE,CAAC,GAAGF,OAAO,GAAG,CAAlB;;AACA,MAAIF,IAAJ,EAAU;AACRI,IAAAA,CAAC,GAAGF,OAAO,GAAG,GAAV,IAAiB,GAAjB,GAAuB,IAAKA,OAAO,GAAG,CAAtC,GAA2CA,OAAO,GAAG,CAAzD;AACD,GAFD,MAEO,IAAI,CAACH,IAAL,EAAW;AAChB,QAAIG,OAAO,IAAI,GAAf,EAAoB;AAClBE,MAAAA,CAAC,GAAG,GAAJ;AACD;AACF;;AACDF,EAAAA,OAAO,GAAGJ,MAAM,CAACO,IAAI,CAACC,GAAL,CAAS,CAAT,EAAYD,IAAI,CAACE,GAAL,CAAS,CAAT,EAAYH,CAAZ,CAAZ,CAAD,CAAhB;AACA,SAAO;AACLF,IAAAA,OADK;AAELC,IAAAA;AAFK,GAAP;AAID,CA7BM","sourcesContent":["import type { AnimationState } from \"../../../values/types\";\n\n/**\n * Calculates and returns a timing value based on the\n * input parameters. The timing value is a number between\n * 0 and 1.\n * @param t\n * @param duration\n * @param easing\n * @param loop\n * @param yoyo\n * @param onStop\n * @returns\n */\nexport const timing = (\n t: number,\n duration: number,\n easing: (t: number) => number,\n loop: boolean,\n yoyo: boolean,\n state: AnimationState\n) => {\n let current = t / duration;\n let { finished } = state;\n // Side effect to stop animation when duration is reached (if loop is false)\n if (current >= 1.0 && !loop) {\n finished = true;\n current = 1.0;\n }\n // calculate return value\n let n = current % 1;\n if (yoyo) {\n n = current % 2.0 >= 1.0 ? 1 - (current % 1) : current % 1;\n } else if (!loop) {\n if (current >= 1.0) {\n n = 1.0;\n }\n }\n current = easing(Math.max(0, Math.min(1, n)));\n return {\n current,\n finished,\n };\n};\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["runTiming.ts"],"names":["getResolvedParams","createTiming","runTiming","value","toOrParams","config","callback","resolvedParameters","animation"],"mappings":"AAOA,SAASA,iBAAT,QAAkC,aAAlC;AACA,SAASC,YAAT,QAA6B,gBAA7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,MAAMC,SAAS,GAAG,CACvBC,KADuB,EAEvBC,UAFuB,EAGvBC,MAHuB,EAIvBC,QAJuB,KAKL;AAClB,QAAMC,kBAAkB,GAAGP,iBAAiB,CAACI,UAAD,EAAaC,MAAb,CAA5C;AACA,QAAMG,SAAS,GAAGP,YAAY,CAACM,kBAAD,EAAqBJ,KAArB,EAA4BG,QAA5B,CAA9B;AACAH,EAAAA,KAAK,CAACK,SAAN,GAAkBA,SAAlB;AACA,SAAOA,SAAP;AACD,CAVM","sourcesContent":["import type { SkiaValue, SkiaAnimation } from \"../../values/types\";\nimport type {\n AnimationParams,\n TimingConfig,\n AnimationCallback,\n} from \"../types\";\n\nimport { getResolvedParams } from \"./functions\";\nimport { createTiming } from \"./createTiming\";\n/**\n * Creates a new animation on an existing value that will be driven by\n * an animation value. The value will be run from / to the value in\n * params and modified by the provided easing curve for the length of\n * the duration. When the value has reached its desired \"to\" value the\n * animation will be stopped.\n *\n * @param value The value to animate\n * @param toOrParams To value or Animation parameters\n * @param config Spring or timing configuration\n * @returns an animation value that can be used to start/stop\n * the animation.\n */\nexport const runTiming = (\n value: SkiaValue<number>,\n toOrParams: number | AnimationParams,\n config?: TimingConfig,\n callback?: AnimationCallback\n): SkiaAnimation => {\n const resolvedParameters = getResolvedParams(toOrParams, config);\n const animation = createTiming(resolvedParameters, value, callback);\n value.animation = animation;\n return animation;\n};\n"]}
@@ -1,5 +1,5 @@
1
1
  import { useEffect, useMemo, useRef } from "react";
2
- import { useValue } from "../../hooks/useValue";
2
+ import { useValue } from "../../values/hooks/useValue";
3
3
  import { getResolvedParams } from "./functions";
4
4
  import { createTiming } from "./createTiming";
5
5
  /**
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["useTiming.ts"],"names":["useEffect","useMemo","useRef","useValue","getResolvedParams","createTiming","useTiming","toOrParams","config","callback","prevCfgRef","resolvedParameters","nextParams","equals","current","value","from","prevAnimationRef","prevParamsRef","animation","undefined","a","b","JSON","stringify"],"mappings":"AAAA,SAASA,SAAT,EAAoBC,OAApB,EAA6BC,MAA7B,QAA2C,OAA3C;AAQA,SAASC,QAAT,QAAyB,6BAAzB;AAEA,SAASC,iBAAT,QAAkC,aAAlC;AACA,SAASC,YAAT,QAA6B,gBAA7B;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,MAAMC,SAAS,GAAG,CACvBC,UADuB,EAEvBC,MAFuB,EAGvBC,QAHuB,KAIO;AAAA;;AAC9B;AACA;AACA,QAAMC,UAAU,GAAGR,MAAM,EAAzB;AACA,QAAMS,kBAAkB,GAAGV,OAAO,CAAC,MAAM;AACvC,UAAMW,UAAU,GAAGR,iBAAiB,CAACG,UAAD,EAAaC,MAAb,CAApC;;AACA,QAAI,CAACK,MAAM,CAACH,UAAU,CAACI,OAAZ,EAAqBF,UAArB,CAAX,EAA6C;AAC3CF,MAAAA,UAAU,CAACI,OAAX,GAAqBF,UAArB;AACD;;AACD,WAAOF,UAAU,CAACI,OAAlB;AACD,GANiC,EAM/B,CAACN,MAAD,EAASD,UAAT,CAN+B,CAAlC,CAJ8B,CAY9B;;AACA,QAAMQ,KAAK,GAAGZ,QAAQ,0BAACQ,kBAAkB,CAACK,IAApB,yEAA4B,CAA5B,CAAtB,CAb8B,CAe9B;AACA;;AACA,QAAMC,gBAAgB,GAAGf,MAAM,EAA/B;AACA,QAAMgB,aAAa,GAAGhB,MAAM,EAA5B;AACA,QAAMiB,SAAS,GAAGlB,OAAO,CAAC,MAAM;AAC9B,QAAI,CAACY,MAAM,CAACK,aAAa,CAACJ,OAAf,EAAwBH,kBAAxB,CAAX,EAAwD;AACtDO,MAAAA,aAAa,CAACJ,OAAd,GAAwBH,kBAAxB;AACAM,MAAAA,gBAAgB,CAACH,OAAjB,GAA2BT,YAAY,CACrCM,kBADqC,EAErCI,KAFqC,EAGrCN,QAHqC,CAAvC;AAKD;;AACD,WAAOQ,gBAAgB,CAACH,OAAxB;AACD,GAVwB,EAUtB,CAACL,QAAD,EAAWE,kBAAX,EAA+BI,KAA/B,CAVsB,CAAzB,CAnB8B,CA+B9B;;AACAf,EAAAA,SAAS,CAAC,MAAM;AACde,IAAAA,KAAK,CAACI,SAAN,GAAkBA,SAAlB;AACA,WAAO,MAAOJ,KAAK,CAACI,SAAN,GAAkBC,SAAhC;AACD,GAHQ,EAGN,CAACD,SAAD,EAAYJ,KAAZ,CAHM,CAAT,CAhC8B,CAqC9B;;AACA,SAAOA,KAAP;AACD,CA3CM;;AA6CP,MAAMF,MAAM,GAAG,CAASQ,CAAT,EAAgBC,CAAhB,KAA0B;AACvC,SAAOC,IAAI,CAACC,SAAL,CAAeH,CAAf,MAAsBE,IAAI,CAACC,SAAL,CAAeF,CAAf,CAA7B;AACD,CAFD","sourcesContent":["import { useEffect, useMemo, useRef } from \"react\";\n\nimport type { SkiaReadonlyValue, SkiaAnimation } from \"../../values/types\";\nimport type {\n AnimationParams,\n TimingConfig,\n AnimationCallback,\n} from \"../types\";\nimport { useValue } from \"../../values/hooks/useValue\";\n\nimport { getResolvedParams } from \"./functions\";\nimport { createTiming } from \"./createTiming\";\n\n/**\n * Creats an animation value that will run whenever\n * the animation parameters change. The animation start immediately.\n * @param toOrParams\n * @param config\n * @returns A value that is animated\n */\nexport const useTiming = (\n toOrParams: number | AnimationParams,\n config?: TimingConfig,\n callback?: AnimationCallback\n): SkiaReadonlyValue<number> => {\n // Resolve parameters - keep a cached version to avoid\n // unnecesary re-renders.\n const prevCfgRef = useRef<ReturnType<typeof getResolvedParams>>();\n const resolvedParameters = useMemo(() => {\n const nextParams = getResolvedParams(toOrParams, config);\n if (!equals(prevCfgRef.current, nextParams)) {\n prevCfgRef.current = nextParams;\n }\n return prevCfgRef.current!;\n }, [config, toOrParams]);\n\n // Create value\n const value = useValue(resolvedParameters.from ?? 0);\n\n // Create timing animation - keep a cached version to avoid\n // uneccessary recreation of animations\n const prevAnimationRef = useRef<SkiaAnimation>();\n const prevParamsRef = useRef<typeof resolvedParameters>();\n const animation = useMemo(() => {\n if (!equals(prevParamsRef.current, resolvedParameters)) {\n prevParamsRef.current = resolvedParameters;\n prevAnimationRef.current = createTiming(\n resolvedParameters,\n value,\n callback\n );\n }\n return prevAnimationRef.current!;\n }, [callback, resolvedParameters, value]);\n\n // Run animation on the value - and stop it on unmount\n useEffect(() => {\n value.animation = animation;\n return () => (value.animation = undefined);\n }, [animation, value]);\n\n // Return the value that is animated\n return value;\n};\n\nconst equals = <T1, T2>(a: T1, b: T2) => {\n return JSON.stringify(a) === JSON.stringify(b);\n};\n"]}
@@ -4,4 +4,5 @@ export * from "./views";
4
4
  export * from "./skia";
5
5
  export * from "./external";
6
6
  export * from "./values";
7
+ export * from "./animation";
7
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAP;AAEA,cAAc,YAAd;AACA,cAAc,SAAd;AACA,cAAc,QAAd;AACA,cAAc,YAAd;AACA,cAAc,UAAd","sourcesContent":["import \"./skia/NativeSetup\";\n\nexport * from \"./renderer\";\nexport * from \"./views\";\nexport * from \"./skia\";\nexport * from \"./external\";\nexport * from \"./values\";\n"]}
1
+ {"version":3,"sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAP;AAEA,cAAc,YAAd;AACA,cAAc,SAAd;AACA,cAAc,QAAd;AACA,cAAc,YAAd;AACA,cAAc,UAAd;AACA,cAAc,aAAd","sourcesContent":["import \"./skia/NativeSetup\";\n\nexport * from \"./renderer\";\nexport * from \"./views\";\nexport * from \"./skia\";\nexport * from \"./external\";\nexport * from \"./values\";\nexport * from \"./animation\";\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["BlendColor.tsx"],"names":["React","BlendMode","Skia","createDeclaration","enumKey","composeColorFilter","onDeclare","children","mode","color","cf","ColorFilter","MakeBlend","Color","BlendColor","props"],"mappings":";;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AAGA,SAASC,SAAT,EAAoBC,IAApB,QAAgC,eAAhC;AACA,SAASC,iBAAT,QAAkC,aAAlC;AAEA,SAASC,OAAT,QAAwB,kBAAxB;AAGA,SAASC,kBAAT,QAAmC,WAAnC;AAQA,MAAMC,SAAS,GAAGH,iBAAiB,CACjC,OAAkBI,QAAlB,KAA+B;AAAA,MAA9B;AAAEC,IAAAA,IAAF;AAAQC,IAAAA;AAAR,GAA8B;AAC7B,QAAMC,EAAE,GAAGR,IAAI,CAACS,WAAL,CAAiBC,SAAjB,CACTV,IAAI,CAACW,KAAL,CAAWJ,KAAX,CADS,EAETR,SAAS,CAACG,OAAO,CAACI,IAAD,CAAR,CAFA,CAAX;AAIA,SAAOH,kBAAkB,CAACK,EAAD,EAAKH,QAAL,CAAzB;AACD,CAPgC,CAAnC;AAUA,OAAO,MAAMO,UAAU,GAAIC,KAAD,IAA2C;AACnE,sBAAO;AAAe,IAAA,SAAS,EAAET;AAA1B,KAAyCS,KAAzC,EAAP;AACD,CAFM","sourcesContent":["import React from \"react\";\nimport type { ReactNode } from \"react\";\n\nimport { BlendMode, Skia } from \"../../../skia\";\nimport { createDeclaration } from \"../../nodes\";\nimport type { SkEnum, AnimatedProps } from \"../../processors\";\nimport { enumKey } from \"../../processors\";\nimport type { Color } from \"../../../skia\";\n\nimport { composeColorFilter } from \"./Compose\";\n\nexport interface BlendColorProps {\n mode: SkEnum<typeof BlendMode>;\n color: Color;\n children?: ReactNode | ReactNode[];\n}\n\nconst onDeclare = createDeclaration<BlendColorProps>(\n ({ mode, color }, children) => {\n const cf = Skia.ColorFilter.MakeBlend(\n Skia.Color(color),\n BlendMode[enumKey(mode)]\n );\n return composeColorFilter(cf, children);\n }\n);\n\nexport const BlendColor = (props: AnimatedProps<BlendColorProps>) => {\n return <skDeclaration onDeclare={onDeclare} {...props} />;\n};\n"]}
1
+ {"version":3,"sources":["BlendColor.tsx"],"names":["React","BlendMode","Skia","createDeclaration","enumKey","composeColorFilter","onDeclare","children","mode","color","cf","ColorFilter","MakeBlend","Color","BlendColor","props"],"mappings":";;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AAIA,SAASC,SAAT,EAAoBC,IAApB,QAAgC,eAAhC;AACA,SAASC,iBAAT,QAAkC,aAAlC;AAEA,SAASC,OAAT,QAAwB,kBAAxB;AAEA,SAASC,kBAAT,QAAmC,WAAnC;AAQA,MAAMC,SAAS,GAAGH,iBAAiB,CACjC,OAAkBI,QAAlB,KAA+B;AAAA,MAA9B;AAAEC,IAAAA,IAAF;AAAQC,IAAAA;AAAR,GAA8B;AAC7B,QAAMC,EAAE,GAAGR,IAAI,CAACS,WAAL,CAAiBC,SAAjB,CACTV,IAAI,CAACW,KAAL,CAAWJ,KAAX,CADS,EAETR,SAAS,CAACG,OAAO,CAACI,IAAD,CAAR,CAFA,CAAX;AAIA,SAAOH,kBAAkB,CAACK,EAAD,EAAKH,QAAL,CAAzB;AACD,CAPgC,CAAnC;AAUA,OAAO,MAAMO,UAAU,GAAIC,KAAD,IAA2C;AACnE,sBAAO;AAAe,IAAA,SAAS,EAAET;AAA1B,KAAyCS,KAAzC,EAAP;AACD,CAFM","sourcesContent":["import React from \"react\";\nimport type { ReactNode } from \"react\";\n\nimport type { Color } from \"../../../skia\";\nimport { BlendMode, Skia } from \"../../../skia\";\nimport { createDeclaration } from \"../../nodes\";\nimport type { SkEnum, AnimatedProps } from \"../../processors\";\nimport { enumKey } from \"../../processors\";\n\nimport { composeColorFilter } from \"./Compose\";\n\nexport interface BlendColorProps {\n mode: SkEnum<typeof BlendMode>;\n color: Color;\n children?: ReactNode | ReactNode[];\n}\n\nconst onDeclare = createDeclaration<BlendColorProps>(\n ({ mode, color }, children) => {\n const cf = Skia.ColorFilter.MakeBlend(\n Skia.Color(color),\n BlendMode[enumKey(mode)]\n );\n return composeColorFilter(cf, children);\n }\n);\n\nexport const BlendColor = (props: AnimatedProps<BlendColorProps>) => {\n return <skDeclaration onDeclare={onDeclare} {...props} />;\n};\n"]}
@@ -1,7 +1,8 @@
1
1
  import { BlendMode, Skia, TileMode } from "../../../skia";
2
+ const Black = Skia.Color("black");
2
3
  export const MakeInnerShadow = (shadowOnly, dx, dy, sigmaX, sigmaY, color, input) => {
3
- const sourceGraphic = Skia.ImageFilter.MakeColorFilter(Skia.ColorFilter.MakeBlend(0xff000000, BlendMode.Dst), null);
4
- const sourceAlpha = Skia.ImageFilter.MakeColorFilter(Skia.ColorFilter.MakeBlend(0xff000000, BlendMode.SrcIn), null);
4
+ const sourceGraphic = Skia.ImageFilter.MakeColorFilter(Skia.ColorFilter.MakeBlend(Black, BlendMode.Dst), null);
5
+ const sourceAlpha = Skia.ImageFilter.MakeColorFilter(Skia.ColorFilter.MakeBlend(Black, BlendMode.SrcIn), null);
5
6
  const f1 = Skia.ImageFilter.MakeColorFilter(Skia.ColorFilter.MakeBlend(color, BlendMode.SrcOut), null);
6
7
  const f2 = Skia.ImageFilter.MakeOffset(dx, dy, f1);
7
8
  const f3 = Skia.ImageFilter.MakeBlur(sigmaX, sigmaY, TileMode.Decal, f2);
@@ -1 +1 @@
1
- {"version":3,"sources":["InnerShadow.tsx"],"names":["BlendMode","Skia","TileMode","MakeInnerShadow","shadowOnly","dx","dy","sigmaX","sigmaY","color","input","sourceGraphic","ImageFilter","MakeColorFilter","ColorFilter","MakeBlend","Dst","sourceAlpha","SrcIn","f1","SrcOut","f2","MakeOffset","f3","MakeBlur","Decal","f4","MakeCompose","SrcOver"],"mappings":"AACA,SAASA,SAAT,EAAoBC,IAApB,EAA0BC,QAA1B,QAA0C,eAA1C;AAGA,OAAO,MAAMC,eAAe,GAAG,CAC7BC,UAD6B,EAE7BC,EAF6B,EAG7BC,EAH6B,EAI7BC,MAJ6B,EAK7BC,MAL6B,EAM7BC,KAN6B,EAO7BC,KAP6B,KAQ1B;AACH,QAAMC,aAAa,GAAGV,IAAI,CAACW,WAAL,CAAiBC,eAAjB,CACpBZ,IAAI,CAACa,WAAL,CAAiBC,SAAjB,CAA2B,UAA3B,EAAuCf,SAAS,CAACgB,GAAjD,CADoB,EAEpB,IAFoB,CAAtB;AAIA,QAAMC,WAAW,GAAGhB,IAAI,CAACW,WAAL,CAAiBC,eAAjB,CAClBZ,IAAI,CAACa,WAAL,CAAiBC,SAAjB,CAA2B,UAA3B,EAAuCf,SAAS,CAACkB,KAAjD,CADkB,EAElB,IAFkB,CAApB;AAIA,QAAMC,EAAE,GAAGlB,IAAI,CAACW,WAAL,CAAiBC,eAAjB,CACTZ,IAAI,CAACa,WAAL,CAAiBC,SAAjB,CAA2BN,KAA3B,EAAkCT,SAAS,CAACoB,MAA5C,CADS,EAET,IAFS,CAAX;AAIA,QAAMC,EAAE,GAAGpB,IAAI,CAACW,WAAL,CAAiBU,UAAjB,CAA4BjB,EAA5B,EAAgCC,EAAhC,EAAoCa,EAApC,CAAX;AACA,QAAMI,EAAE,GAAGtB,IAAI,CAACW,WAAL,CAAiBY,QAAjB,CAA0BjB,MAA1B,EAAkCC,MAAlC,EAA0CN,QAAQ,CAACuB,KAAnD,EAA0DJ,EAA1D,CAAX;AACA,QAAMK,EAAE,GAAGzB,IAAI,CAACW,WAAL,CAAiBG,SAAjB,CAA2Bf,SAAS,CAACkB,KAArC,EAA4CD,WAA5C,EAAyDM,EAAzD,CAAX;;AACA,MAAInB,UAAJ,EAAgB;AACd,WAAOsB,EAAP;AACD;;AACD,SAAOzB,IAAI,CAACW,WAAL,CAAiBe,WAAjB,CACLjB,KADK,EAELT,IAAI,CAACW,WAAL,CAAiBG,SAAjB,CAA2Bf,SAAS,CAAC4B,OAArC,EAA8CjB,aAA9C,EAA6De,EAA7D,CAFK,CAAP;AAID,CA/BM","sourcesContent":["import type { SkColor } from \"../../../skia\";\nimport { BlendMode, Skia, TileMode } from \"../../../skia\";\nimport type { SkImageFilter } from \"../../../skia/ImageFilter/ImageFilter\";\n\nexport const MakeInnerShadow = (\n shadowOnly: boolean | undefined,\n dx: number,\n dy: number,\n sigmaX: number,\n sigmaY: number,\n color: SkColor,\n input: SkImageFilter | null\n) => {\n const sourceGraphic = Skia.ImageFilter.MakeColorFilter(\n Skia.ColorFilter.MakeBlend(0xff000000, BlendMode.Dst),\n null\n );\n const sourceAlpha = Skia.ImageFilter.MakeColorFilter(\n Skia.ColorFilter.MakeBlend(0xff000000, BlendMode.SrcIn),\n null\n );\n const f1 = Skia.ImageFilter.MakeColorFilter(\n Skia.ColorFilter.MakeBlend(color, BlendMode.SrcOut),\n null\n );\n const f2 = Skia.ImageFilter.MakeOffset(dx, dy, f1);\n const f3 = Skia.ImageFilter.MakeBlur(sigmaX, sigmaY, TileMode.Decal, f2);\n const f4 = Skia.ImageFilter.MakeBlend(BlendMode.SrcIn, sourceAlpha, f3);\n if (shadowOnly) {\n return f4;\n }\n return Skia.ImageFilter.MakeCompose(\n input,\n Skia.ImageFilter.MakeBlend(BlendMode.SrcOver, sourceGraphic, f4)\n );\n};\n"]}
1
+ {"version":3,"sources":["InnerShadow.tsx"],"names":["BlendMode","Skia","TileMode","Black","Color","MakeInnerShadow","shadowOnly","dx","dy","sigmaX","sigmaY","color","input","sourceGraphic","ImageFilter","MakeColorFilter","ColorFilter","MakeBlend","Dst","sourceAlpha","SrcIn","f1","SrcOut","f2","MakeOffset","f3","MakeBlur","Decal","f4","MakeCompose","SrcOver"],"mappings":"AACA,SAASA,SAAT,EAAoBC,IAApB,EAA0BC,QAA1B,QAA0C,eAA1C;AAGA,MAAMC,KAAK,GAAGF,IAAI,CAACG,KAAL,CAAW,OAAX,CAAd;AAEA,OAAO,MAAMC,eAAe,GAAG,CAC7BC,UAD6B,EAE7BC,EAF6B,EAG7BC,EAH6B,EAI7BC,MAJ6B,EAK7BC,MAL6B,EAM7BC,KAN6B,EAO7BC,KAP6B,KAQ1B;AACH,QAAMC,aAAa,GAAGZ,IAAI,CAACa,WAAL,CAAiBC,eAAjB,CACpBd,IAAI,CAACe,WAAL,CAAiBC,SAAjB,CAA2Bd,KAA3B,EAAkCH,SAAS,CAACkB,GAA5C,CADoB,EAEpB,IAFoB,CAAtB;AAIA,QAAMC,WAAW,GAAGlB,IAAI,CAACa,WAAL,CAAiBC,eAAjB,CAClBd,IAAI,CAACe,WAAL,CAAiBC,SAAjB,CAA2Bd,KAA3B,EAAkCH,SAAS,CAACoB,KAA5C,CADkB,EAElB,IAFkB,CAApB;AAIA,QAAMC,EAAE,GAAGpB,IAAI,CAACa,WAAL,CAAiBC,eAAjB,CACTd,IAAI,CAACe,WAAL,CAAiBC,SAAjB,CAA2BN,KAA3B,EAAkCX,SAAS,CAACsB,MAA5C,CADS,EAET,IAFS,CAAX;AAIA,QAAMC,EAAE,GAAGtB,IAAI,CAACa,WAAL,CAAiBU,UAAjB,CAA4BjB,EAA5B,EAAgCC,EAAhC,EAAoCa,EAApC,CAAX;AACA,QAAMI,EAAE,GAAGxB,IAAI,CAACa,WAAL,CAAiBY,QAAjB,CAA0BjB,MAA1B,EAAkCC,MAAlC,EAA0CR,QAAQ,CAACyB,KAAnD,EAA0DJ,EAA1D,CAAX;AACA,QAAMK,EAAE,GAAG3B,IAAI,CAACa,WAAL,CAAiBG,SAAjB,CAA2BjB,SAAS,CAACoB,KAArC,EAA4CD,WAA5C,EAAyDM,EAAzD,CAAX;;AACA,MAAInB,UAAJ,EAAgB;AACd,WAAOsB,EAAP;AACD;;AACD,SAAO3B,IAAI,CAACa,WAAL,CAAiBe,WAAjB,CACLjB,KADK,EAELX,IAAI,CAACa,WAAL,CAAiBG,SAAjB,CAA2BjB,SAAS,CAAC8B,OAArC,EAA8CjB,aAA9C,EAA6De,EAA7D,CAFK,CAAP;AAID,CA/BM","sourcesContent":["import type { SkColor } from \"../../../skia\";\nimport { BlendMode, Skia, TileMode } from \"../../../skia\";\nimport type { SkImageFilter } from \"../../../skia/ImageFilter/ImageFilter\";\n\nconst Black = Skia.Color(\"black\");\n\nexport const MakeInnerShadow = (\n shadowOnly: boolean | undefined,\n dx: number,\n dy: number,\n sigmaX: number,\n sigmaY: number,\n color: SkColor,\n input: SkImageFilter | null\n) => {\n const sourceGraphic = Skia.ImageFilter.MakeColorFilter(\n Skia.ColorFilter.MakeBlend(Black, BlendMode.Dst),\n null\n );\n const sourceAlpha = Skia.ImageFilter.MakeColorFilter(\n Skia.ColorFilter.MakeBlend(Black, BlendMode.SrcIn),\n null\n );\n const f1 = Skia.ImageFilter.MakeColorFilter(\n Skia.ColorFilter.MakeBlend(color, BlendMode.SrcOut),\n null\n );\n const f2 = Skia.ImageFilter.MakeOffset(dx, dy, f1);\n const f3 = Skia.ImageFilter.MakeBlur(sigmaX, sigmaY, TileMode.Decal, f2);\n const f4 = Skia.ImageFilter.MakeBlend(BlendMode.SrcIn, sourceAlpha, f3);\n if (shadowOnly) {\n return f4;\n }\n return Skia.ImageFilter.MakeCompose(\n input,\n Skia.ImageFilter.MakeBlend(BlendMode.SrcOver, sourceGraphic, f4)\n );\n};\n"]}
@@ -0,0 +1,19 @@
1
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+
3
+ import React from "react";
4
+ import { Skia } from "../../../skia";
5
+ import { createDeclaration } from "../../nodes/Declaration";
6
+ import { getInput } from "./getInput";
7
+ const onDeclare = createDeclaration((_ref, children) => {
8
+ let {
9
+ source
10
+ } = _ref;
11
+ const rtb = Skia.RuntimeShaderBuilder(source);
12
+ return Skia.ImageFilter.MakeRuntimeShader(rtb, null, getInput(children));
13
+ });
14
+ export const RuntimeShader = props => {
15
+ return /*#__PURE__*/React.createElement("skDeclaration", _extends({
16
+ onDeclare: onDeclare
17
+ }, props));
18
+ };
19
+ //# sourceMappingURL=RuntimeShader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["RuntimeShader.tsx"],"names":["React","Skia","createDeclaration","getInput","onDeclare","children","source","rtb","RuntimeShaderBuilder","ImageFilter","MakeRuntimeShader","RuntimeShader","props"],"mappings":";;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AAEA,SAASC,IAAT,QAAqB,eAArB;AACA,SAASC,iBAAT,QAAkC,yBAAlC;AAIA,SAASC,QAAT,QAAyB,YAAzB;AAMA,MAAMC,SAAS,GAAGF,iBAAiB,CACjC,OAAaG,QAAb,KAA0B;AAAA,MAAzB;AAAEC,IAAAA;AAAF,GAAyB;AACxB,QAAMC,GAAG,GAAGN,IAAI,CAACO,oBAAL,CAA0BF,MAA1B,CAAZ;AACA,SAAOL,IAAI,CAACQ,WAAL,CAAiBC,iBAAjB,CAAmCH,GAAnC,EAAwC,IAAxC,EAA8CJ,QAAQ,CAACE,QAAD,CAAtD,CAAP;AACD,CAJgC,CAAnC;AAOA,OAAO,MAAMM,aAAa,GAAIC,KAAD,IAA8C;AACzE,sBAAO;AAAe,IAAA,SAAS,EAAER;AAA1B,KAAyCQ,KAAzC,EAAP;AACD,CAFM","sourcesContent":["import React from \"react\";\n\nimport { Skia } from \"../../../skia\";\nimport { createDeclaration } from \"../../nodes/Declaration\";\nimport type { AnimatedProps } from \"../../processors/Animations/Animations\";\nimport type { SkRuntimeEffect } from \"../../../skia/RuntimeEffect/RuntimeEffect\";\n\nimport { getInput } from \"./getInput\";\n\nexport interface RuntimeShaderProps {\n source: SkRuntimeEffect;\n}\n\nconst onDeclare = createDeclaration<RuntimeShaderProps>(\n ({ source }, children) => {\n const rtb = Skia.RuntimeShaderBuilder(source);\n return Skia.ImageFilter.MakeRuntimeShader(rtb, null, getInput(children));\n }\n);\n\nexport const RuntimeShader = (props: AnimatedProps<RuntimeShaderProps>) => {\n return <skDeclaration onDeclare={onDeclare} {...props} />;\n};\n"]}
@@ -3,4 +3,5 @@ export * from "./Offset";
3
3
  export * from "./DisplacementMap";
4
4
  export * from "./Shadow";
5
5
  export * from "./Morphology";
6
+ export * from "./RuntimeShader";
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAd;AACA,cAAc,UAAd;AACA,cAAc,mBAAd;AACA,cAAc,UAAd;AACA,cAAc,cAAd","sourcesContent":["export * from \"./Blur\";\nexport * from \"./Offset\";\nexport * from \"./DisplacementMap\";\nexport * from \"./Shadow\";\nexport * from \"./Morphology\";\n"]}
1
+ {"version":3,"sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAd;AACA,cAAc,UAAd;AACA,cAAc,mBAAd;AACA,cAAc,UAAd;AACA,cAAc,cAAd;AACA,cAAc,iBAAd","sourcesContent":["export * from \"./Blur\";\nexport * from \"./Offset\";\nexport * from \"./DisplacementMap\";\nexport * from \"./Shadow\";\nexport * from \"./Morphology\";\nexport * from \"./RuntimeShader\";\n"]}
@@ -1,4 +1,4 @@
1
- import { TileMode, Skia } from "../../../skia";
1
+ import { Skia, TileMode } from "../../../skia";
2
2
  import { enumKey } from "../../processors/Paint";
3
3
  import { localMatrix } from "../../processors/Transform";
4
4
  export const processGradientProps = _ref => {
@@ -10,7 +10,7 @@ export const processGradientProps = _ref => {
10
10
  ...transform
11
11
  } = _ref;
12
12
  return {
13
- colors: colors.map(color => typeof color === "string" ? Skia.Color(color) : color),
13
+ colors: colors.map(color => Skia.Color(color)),
14
14
  positions: positions !== null && positions !== void 0 ? positions : null,
15
15
  mode: TileMode[enumKey(mode !== null && mode !== void 0 ? mode : "clamp")],
16
16
  flags,
@@ -1 +1 @@
1
- {"version":3,"sources":["Gradient.ts"],"names":["TileMode","Skia","enumKey","localMatrix","processGradientProps","colors","positions","mode","flags","transform","map","color","Color"],"mappings":"AAAA,SAASA,QAAT,EAAmBC,IAAnB,QAA+B,eAA/B;AAGA,SAASC,OAAT,QAAwB,wBAAxB;AACA,SAASC,WAAT,QAA4B,4BAA5B;AAUA,OAAO,MAAMC,oBAAoB,GAAG;AAAA,MAAC;AACnCC,IAAAA,MADmC;AAEnCC,IAAAA,SAFmC;AAGnCC,IAAAA,IAHmC;AAInCC,IAAAA,KAJmC;AAKnC,OAAGC;AALgC,GAAD;AAAA,SAMd;AACpBJ,IAAAA,MAAM,EAAEA,MAAM,CAACK,GAAP,CAAYC,KAAD,IACjB,OAAOA,KAAP,KAAiB,QAAjB,GAA4BV,IAAI,CAACW,KAAL,CAAWD,KAAX,CAA5B,GAAgDA,KAD1C,CADY;AAIpBL,IAAAA,SAAS,EAAEA,SAAF,aAAEA,SAAF,cAAEA,SAAF,GAAe,IAJJ;AAKpBC,IAAAA,IAAI,EAAEP,QAAQ,CAACE,OAAO,CAACK,IAAD,aAACA,IAAD,cAACA,IAAD,GAAS,OAAT,CAAR,CALM;AAMpBC,IAAAA,KANoB;AAOpBL,IAAAA,WAAW,EAAEA,WAAW,CAACM,SAAD;AAPJ,GANc;AAAA,CAA7B","sourcesContent":["import { TileMode, Skia } from \"../../../skia\";\nimport type { SkEnum } from \"../../processors/Paint\";\nimport type { TransformProps } from \"../../processors/Transform\";\nimport { enumKey } from \"../../processors/Paint\";\nimport { localMatrix } from \"../../processors/Transform\";\nimport type { Color } from \"../../../skia/Color\";\n\nexport interface GradientProps extends TransformProps {\n colors: Color[];\n positions?: number[];\n mode?: SkEnum<typeof TileMode>;\n flags?: number;\n}\n\nexport const processGradientProps = ({\n colors,\n positions,\n mode,\n flags,\n ...transform\n}: GradientProps) => ({\n colors: colors.map((color) =>\n typeof color === \"string\" ? Skia.Color(color) : color\n ),\n positions: positions ?? null,\n mode: TileMode[enumKey(mode ?? \"clamp\")],\n flags,\n localMatrix: localMatrix(transform),\n});\n"]}
1
+ {"version":3,"sources":["Gradient.ts"],"names":["Skia","TileMode","enumKey","localMatrix","processGradientProps","colors","positions","mode","flags","transform","map","color","Color"],"mappings":"AAAA,SAASA,IAAT,EAAeC,QAAf,QAA+B,eAA/B;AAGA,SAASC,OAAT,QAAwB,wBAAxB;AACA,SAASC,WAAT,QAA4B,4BAA5B;AAUA,OAAO,MAAMC,oBAAoB,GAAG;AAAA,MAAC;AACnCC,IAAAA,MADmC;AAEnCC,IAAAA,SAFmC;AAGnCC,IAAAA,IAHmC;AAInCC,IAAAA,KAJmC;AAKnC,OAAGC;AALgC,GAAD;AAAA,SAMd;AACpBJ,IAAAA,MAAM,EAAEA,MAAM,CAACK,GAAP,CAAYC,KAAD,IAAWX,IAAI,CAACY,KAAL,CAAWD,KAAX,CAAtB,CADY;AAEpBL,IAAAA,SAAS,EAAEA,SAAF,aAAEA,SAAF,cAAEA,SAAF,GAAe,IAFJ;AAGpBC,IAAAA,IAAI,EAAEN,QAAQ,CAACC,OAAO,CAACK,IAAD,aAACA,IAAD,cAACA,IAAD,GAAS,OAAT,CAAR,CAHM;AAIpBC,IAAAA,KAJoB;AAKpBL,IAAAA,WAAW,EAAEA,WAAW,CAACM,SAAD;AALJ,GANc;AAAA,CAA7B","sourcesContent":["import { Skia, TileMode } from \"../../../skia\";\nimport type { SkEnum } from \"../../processors/Paint\";\nimport type { TransformProps } from \"../../processors/Transform\";\nimport { enumKey } from \"../../processors/Paint\";\nimport { localMatrix } from \"../../processors/Transform\";\nimport type { Color } from \"../../../skia/Color\";\n\nexport interface GradientProps extends TransformProps {\n colors: Color[];\n positions?: number[];\n mode?: SkEnum<typeof TileMode>;\n flags?: number;\n}\n\nexport const processGradientProps = ({\n colors,\n positions,\n mode,\n flags,\n ...transform\n}: GradientProps) => ({\n colors: colors.map((color) => Skia.Color(color)),\n positions: positions ?? null,\n mode: TileMode[enumKey(mode ?? \"clamp\")],\n flags,\n localMatrix: localMatrix(transform),\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["Shader.tsx"],"names":["React","isShader","createDeclaration","localMatrix","isVector","obj","x","undefined","y","processValue","value","onDeclare","children","uniforms","source","opaque","transform","processedUniforms","Array","getUniformCount","fill","flatMap","_","i","name","getUniformName","Error","isArray","names","Object","keys","length","usedUniforms","map","unusedUniform","indexOf","filter","n","console","warn","join","makeShaderWithChildren","Shader","props","defaultProps"],"mappings":";;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AAGA,SAASC,QAAT,QAAyB,eAAzB;AAGA,SAASC,iBAAT,QAAkC,yBAAlC;AACA,SAASC,WAAT,QAA4B,kBAA5B;;AAEA,MAAMC,QAAQ,GAAIC,GAAD,IACf;AACA;AACCA,GAAD,CAAaC,CAAb,KAAmBC,SAAnB,IAAiCF,GAAD,CAAaG,CAAb,KAAmBD,SAHrD;;AAaA,MAAME,YAAY,GAAIC,KAAD,IAAqD;AACxE,MAAIN,QAAQ,CAACM,KAAD,CAAZ,EAAqB;AACnB,WAAO,CAACA,KAAK,CAACJ,CAAP,EAAUI,KAAK,CAACF,CAAhB,CAAP;AACD;;AACD,SAAOE,KAAP;AACD,CALD;;AAcA,MAAMC,SAAS,GAAGT,iBAAiB,CACjC,OAA6CU,QAA7C,KAA0D;AAAA,MAAzD;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,MAAZ;AAAoBC,IAAAA,MAApB;AAA4B,OAAGC;AAA/B,GAAyD;AACxD,QAAMC,iBAAiB,GAAG,IAAIC,KAAJ,CAAUJ,MAAM,CAACK,eAAP,EAAV,EACvBC,IADuB,CAClB,CADkB,EAEvBC,OAFuB,CAEf,CAACC,CAAD,EAAIC,CAAJ,KAAU;AACjB,UAAMC,IAAI,GAAGV,MAAM,CAACW,cAAP,CAAsBF,CAAtB,CAAb;AACA,UAAMb,KAAK,GAAGG,QAAQ,CAACW,IAAD,CAAtB;;AACA,QAAId,KAAK,KAAKH,SAAd,EAAyB;AACvB,YAAM,IAAImB,KAAJ,CAAW,kCAAiCF,IAAK,EAAjD,CAAN;AACD;;AACD,QAAIN,KAAK,CAACS,OAAN,CAAcjB,KAAd,CAAJ,EAA0B;AACxB,aAAOA,KAAK,CAACW,OAAN,CAAcZ,YAAd,CAAP;AACD;;AACD,WAAOA,YAAY,CAACC,KAAD,CAAnB;AACD,GAZuB,CAA1B;AAaA,QAAMkB,KAAK,GAAGC,MAAM,CAACC,IAAP,CAAYjB,QAAZ,CAAd;;AACA,MAAIe,KAAK,CAACG,MAAN,GAAejB,MAAM,CAACK,eAAP,EAAnB,EAA6C;AAC3C,UAAMa,YAAY,GAAG,IAAId,KAAJ,CAAUJ,MAAM,CAACK,eAAP,EAAV,EAClBC,IADkB,CACb,CADa,EAElBa,GAFkB,CAEd,CAACX,CAAD,EAAIC,CAAJ,KAAUT,MAAM,CAACW,cAAP,CAAsBF,CAAtB,CAFI,CAArB;AAGA,UAAMW,aAAa,GAAGN,KAAK,CACxBK,GADmB,CACdT,IAAD,IAAU;AACb,UAAIQ,YAAY,CAACG,OAAb,CAAqBX,IAArB,MAA+B,CAAC,CAApC,EAAuC;AACrC,eAAOA,IAAP;AACD;;AACD,aAAO,IAAP;AACD,KANmB,EAOnBY,MAPmB,CAOXC,CAAD,IAAOA,CAAC,KAAK,IAPD,CAAtB;AAQAC,IAAAA,OAAO,CAACC,IAAR,CACE,oCAAoCL,aAAa,CAACM,IAAd,CAAmB,IAAnB,CADtC;AAGD;;AACD,SAAO1B,MAAM,CAAC2B,sBAAP,CACLxB,iBADK,EAELF,MAFK,EAGLH,QAAQ,CAACwB,MAAT,CAAgBnC,QAAhB,CAHK,EAILE,WAAW,CAACa,SAAD,CAJN,CAAP;AAMD,CAtCgC,CAAnC;AAyCA,OAAO,MAAM0B,MAAM,GAAIC,KAAD,IAAuC;AAC3D,sBAAO;AAAe,IAAA,SAAS,EAAEhC;AAA1B,KAAyCgC,KAAzC,EAAP;AACD,CAFM;AAIPD,MAAM,CAACE,YAAP,GAAsB;AACpB/B,EAAAA,QAAQ,EAAE;AADU,CAAtB","sourcesContent":["import React from \"react\";\nimport type { ReactNode } from \"react\";\n\nimport { isShader } from \"../../../skia\";\nimport type { IRuntimeEffect } from \"../../../skia\";\nimport type { Vector, AnimatedProps, TransformProps } from \"../../processors\";\nimport { createDeclaration } from \"../../nodes/Declaration\";\nimport { localMatrix } from \"../../processors\";\n\nconst isVector = (obj: unknown): obj is Vector =>\n // We have an issue to check property existence on JSI backed instances\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (obj as any).x !== undefined && (obj as any).y !== undefined;\n\ntype UniformValue = number | Vector | readonly number[];\n\ntype Uniform = UniformValue | readonly UniformValue[];\n\ninterface Uniforms {\n [name: string]: Uniform;\n}\n\nconst processValue = (value: UniformValue): number | readonly number[] => {\n if (isVector(value)) {\n return [value.x, value.y];\n }\n return value;\n};\n\nexport interface ShaderProps extends TransformProps {\n source: IRuntimeEffect;\n uniforms: Uniforms;\n opaque?: boolean;\n children?: ReactNode | ReactNode[];\n}\n\nconst onDeclare = createDeclaration<ShaderProps>(\n ({ uniforms, source, opaque, ...transform }, children) => {\n const processedUniforms = new Array(source.getUniformCount())\n .fill(0)\n .flatMap((_, i) => {\n const name = source.getUniformName(i);\n const value = uniforms[name];\n if (value === undefined) {\n throw new Error(`No value specified for uniform ${name}`);\n }\n if (Array.isArray(value)) {\n return value.flatMap(processValue);\n }\n return processValue(value as UniformValue);\n });\n const names = Object.keys(uniforms);\n if (names.length > source.getUniformCount()) {\n const usedUniforms = new Array(source.getUniformCount())\n .fill(0)\n .map((_, i) => source.getUniformName(i));\n const unusedUniform = names\n .map((name) => {\n if (usedUniforms.indexOf(name) === -1) {\n return name;\n }\n return null;\n })\n .filter((n) => n !== null);\n console.warn(\n \"Unused uniforms were provided: \" + unusedUniform.join(\", \")\n );\n }\n return source.makeShaderWithChildren(\n processedUniforms,\n opaque,\n children.filter(isShader),\n localMatrix(transform)\n );\n }\n);\n\nexport const Shader = (props: AnimatedProps<ShaderProps>) => {\n return <skDeclaration onDeclare={onDeclare} {...props} />;\n};\n\nShader.defaultProps = {\n uniforms: [],\n};\n"]}
1
+ {"version":3,"sources":["Shader.tsx"],"names":["React","isShader","createDeclaration","localMatrix","isVector","obj","x","undefined","y","processValue","value","onDeclare","children","uniforms","source","opaque","transform","processedUniforms","Array","getUniformCount","fill","flatMap","_","i","name","getUniformName","Error","isArray","names","Object","keys","length","usedUniforms","map","unusedUniform","indexOf","filter","n","console","warn","join","makeShaderWithChildren","Shader","props","defaultProps"],"mappings":";;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AAGA,SAASC,QAAT,QAAyB,eAAzB;AAGA,SAASC,iBAAT,QAAkC,yBAAlC;AACA,SAASC,WAAT,QAA4B,kBAA5B;;AAEA,MAAMC,QAAQ,GAAIC,GAAD,IACf;AACA;AACCA,GAAD,CAAaC,CAAb,KAAmBC,SAAnB,IAAiCF,GAAD,CAAaG,CAAb,KAAmBD,SAHrD;;AAaA,MAAME,YAAY,GAAIC,KAAD,IAAqD;AACxE,MAAIN,QAAQ,CAACM,KAAD,CAAZ,EAAqB;AACnB,WAAO,CAACA,KAAK,CAACJ,CAAP,EAAUI,KAAK,CAACF,CAAhB,CAAP;AACD;;AACD,SAAOE,KAAP;AACD,CALD;;AAcA,MAAMC,SAAS,GAAGT,iBAAiB,CACjC,OAA6CU,QAA7C,KAA0D;AAAA,MAAzD;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,MAAZ;AAAoBC,IAAAA,MAApB;AAA4B,OAAGC;AAA/B,GAAyD;AACxD,QAAMC,iBAAiB,GAAG,IAAIC,KAAJ,CAAUJ,MAAM,CAACK,eAAP,EAAV,EACvBC,IADuB,CAClB,CADkB,EAEvBC,OAFuB,CAEf,CAACC,CAAD,EAAIC,CAAJ,KAAU;AACjB,UAAMC,IAAI,GAAGV,MAAM,CAACW,cAAP,CAAsBF,CAAtB,CAAb;AACA,UAAMb,KAAK,GAAGG,QAAQ,CAACW,IAAD,CAAtB;;AACA,QAAId,KAAK,KAAKH,SAAd,EAAyB;AACvB,YAAM,IAAImB,KAAJ,CAAW,kCAAiCF,IAAK,EAAjD,CAAN;AACD;;AACD,QAAIN,KAAK,CAACS,OAAN,CAAcjB,KAAd,CAAJ,EAA0B;AACxB,aAAOA,KAAK,CAACW,OAAN,CAAcZ,YAAd,CAAP;AACD;;AACD,WAAOA,YAAY,CAACC,KAAD,CAAnB;AACD,GAZuB,CAA1B;AAaA,QAAMkB,KAAK,GAAGC,MAAM,CAACC,IAAP,CAAYjB,QAAZ,CAAd;;AACA,MAAIe,KAAK,CAACG,MAAN,GAAejB,MAAM,CAACK,eAAP,EAAnB,EAA6C;AAC3C,UAAMa,YAAY,GAAG,IAAId,KAAJ,CAAUJ,MAAM,CAACK,eAAP,EAAV,EAClBC,IADkB,CACb,CADa,EAElBa,GAFkB,CAEd,CAACX,CAAD,EAAIC,CAAJ,KAAUT,MAAM,CAACW,cAAP,CAAsBF,CAAtB,CAFI,CAArB;AAGA,UAAMW,aAAa,GAAGN,KAAK,CACxBK,GADmB,CACdT,IAAD,IAAU;AACb,UAAIQ,YAAY,CAACG,OAAb,CAAqBX,IAArB,MAA+B,CAAC,CAApC,EAAuC;AACrC,eAAOA,IAAP;AACD;;AACD,aAAO,IAAP;AACD,KANmB,EAOnBY,MAPmB,CAOXC,CAAD,IAAOA,CAAC,KAAK,IAPD,CAAtB;AAQAC,IAAAA,OAAO,CAACC,IAAR,CACE,oCAAoCL,aAAa,CAACM,IAAd,CAAmB,IAAnB,CADtC;AAGD;;AACD,SAAO1B,MAAM,CAAC2B,sBAAP,CACLxB,iBADK,EAELF,MAFK,EAGLH,QAAQ,CAACwB,MAAT,CAAgBnC,QAAhB,CAHK,EAILE,WAAW,CAACa,SAAD,CAJN,CAAP;AAMD,CAtCgC,CAAnC;AAyCA,OAAO,MAAM0B,MAAM,GAAIC,KAAD,IAAuC;AAC3D,sBAAO;AAAe,IAAA,SAAS,EAAEhC;AAA1B,KAAyCgC,KAAzC,EAAP;AACD,CAFM;AAIPD,MAAM,CAACE,YAAP,GAAsB;AACpB/B,EAAAA,QAAQ,EAAE;AADU,CAAtB","sourcesContent":["import React from \"react\";\nimport type { ReactNode } from \"react\";\n\nimport { isShader } from \"../../../skia\";\nimport type { SkRuntimeEffect } from \"../../../skia\";\nimport type { Vector, AnimatedProps, TransformProps } from \"../../processors\";\nimport { createDeclaration } from \"../../nodes/Declaration\";\nimport { localMatrix } from \"../../processors\";\n\nconst isVector = (obj: unknown): obj is Vector =>\n // We have an issue to check property existence on JSI backed instances\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (obj as any).x !== undefined && (obj as any).y !== undefined;\n\ntype UniformValue = number | Vector | readonly number[];\n\ntype Uniform = UniformValue | readonly UniformValue[];\n\ninterface Uniforms {\n [name: string]: Uniform;\n}\n\nconst processValue = (value: UniformValue): number | readonly number[] => {\n if (isVector(value)) {\n return [value.x, value.y];\n }\n return value;\n};\n\nexport interface ShaderProps extends TransformProps {\n source: SkRuntimeEffect;\n uniforms: Uniforms;\n opaque?: boolean;\n children?: ReactNode | ReactNode[];\n}\n\nconst onDeclare = createDeclaration<ShaderProps>(\n ({ uniforms, source, opaque, ...transform }, children) => {\n const processedUniforms = new Array(source.getUniformCount())\n .fill(0)\n .flatMap((_, i) => {\n const name = source.getUniformName(i);\n const value = uniforms[name];\n if (value === undefined) {\n throw new Error(`No value specified for uniform ${name}`);\n }\n if (Array.isArray(value)) {\n return value.flatMap(processValue);\n }\n return processValue(value as UniformValue);\n });\n const names = Object.keys(uniforms);\n if (names.length > source.getUniformCount()) {\n const usedUniforms = new Array(source.getUniformCount())\n .fill(0)\n .map((_, i) => source.getUniformName(i));\n const unusedUniform = names\n .map((name) => {\n if (usedUniforms.indexOf(name) === -1) {\n return name;\n }\n return null;\n })\n .filter((n) => n !== null);\n console.warn(\n \"Unused uniforms were provided: \" + unusedUniform.join(\", \")\n );\n }\n return source.makeShaderWithChildren(\n processedUniforms,\n opaque,\n children.filter(isShader),\n localMatrix(transform)\n );\n }\n);\n\nexport const Shader = (props: AnimatedProps<ShaderProps>) => {\n return <skDeclaration onDeclare={onDeclare} {...props} />;\n};\n\nShader.defaultProps = {\n uniforms: [],\n};\n"]}
@@ -1,21 +1,10 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { Skia } from "../../skia";
2
3
  import { vec } from "./math/Vector";
3
4
  import { processRadius } from "./Radius";
4
- export const point = (x, y) => ({
5
- x,
6
- y
7
- });
8
- export const rect = (x, y, width, height) => ({
9
- x,
10
- y,
11
- width,
12
- height
13
- });
14
- export const rrect = (r, rx, ry) => ({
15
- rect: r,
16
- rx,
17
- ry
18
- });
5
+ export const point = (x, y) => Skia.Point(x, y);
6
+ export const rect = (x, y, width, height) => Skia.XYWHRect(x, y, width, height);
7
+ export const rrect = (r, rx, ry) => Skia.RRectXY(r, rx, ry);
19
8
  export const bounds = rects => {
20
9
  const x = Math.min(...rects.map(r => r.x));
21
10
  const y = Math.min(...rects.map(r => r.y));
@@ -1 +1 @@
1
- {"version":3,"sources":["Rects.ts"],"names":["vec","processRadius","point","x","y","rect","width","height","rrect","r","rx","ry","bounds","rects","Math","min","map","max","topLeft","isRRect","topRight","bottomLeft","bottomRight","center","isRRectCtor","def","undefined","isRectCtor","processRect","processRRect"],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { SkRect, SkRRect } from \"../../skia\";\n\nimport { vec } from \"./math/Vector\";\nimport type { Radius } from \"./Radius\";\nimport { processRadius } from \"./Radius\";\n\nexport const point = (x: number, y: number) => ({ x, y });\n\nexport const rect = (x: number, y: number, width: number, height: number) => ({\n x,\n y,\n width,\n height,\n});\n\nexport const rrect = (r: SkRect, rx: number, ry: number) => ({\n rect: r,\n rx,\n ry,\n});\n\nexport const bounds = (rects: SkRect[]) => {\n const x = Math.min(...rects.map((r) => r.x));\n const y = Math.min(...rects.map((r) => r.y));\n const width = Math.max(...rects.map((r) => r.x + r.width));\n const height = Math.max(...rects.map((r) => r.y + r.height));\n return rect(x, y, width, height);\n};\n\nexport const topLeft = (r: SkRect | SkRRect) =>\n isRRect(r) ? vec(r.rect.x, r.rect.y) : vec(r.x, r.y);\nexport const topRight = (r: SkRect | SkRRect) =>\n isRRect(r) ? vec(r.rect.x + r.rect.width, r.rect.y) : vec(r.x + r.width, r.y);\nexport const bottomLeft = (r: SkRect | SkRRect) =>\n isRRect(r)\n ? vec(r.rect.x, r.rect.y + r.rect.height)\n : vec(r.x, r.y + r.height);\nexport const bottomRight = (r: SkRect | SkRRect) =>\n isRRect(r)\n ? vec(r.rect.x + r.rect.width, r.rect.y + r.rect.height)\n : vec(r.x + r.width, r.y + r.height);\nexport const center = (r: SkRect | SkRRect) =>\n isRRect(r)\n ? vec(r.rect.x + r.rect.width / 2, r.rect.y + r.rect.height / 2)\n : vec(r.x + r.width / 2, r.y + r.height / 2);\n\n// We have an issue to check property existence on JSI backed instances\nconst isRRectCtor = (def: RRectDef): def is RRectCtor =>\n (def as any).rect === undefined;\n// We have an issue to check property existence on JSI backed instances\nconst isRectCtor = (def: RectDef): def is RectCtor =>\n (def as any).rect === undefined;\n// We have an issue to check property existence on JSI backed instances\nexport const isRRect = (def: SkRect | SkRRect): def is SkRRect =>\n (def as any).rect !== undefined;\n\nexport interface RectCtor {\n x: number;\n y: number;\n width: number;\n height: number;\n}\n\nexport interface RRectCtor extends RectCtor {\n r: Radius;\n}\n\nexport type RectDef = RectCtor | { rect: SkRect };\nexport type RRectDef = RRectCtor | { rect: SkRRect };\n\nexport const processRect = (def: RectDef) => {\n if (isRectCtor(def)) {\n return rect(def.x, def.y, def.width, def.height);\n } else {\n return def.rect;\n }\n};\n\nexport const processRRect = (def: RRectDef) => {\n if (isRRectCtor(def)) {\n const r = processRadius(def.r);\n return rrect(rect(def.x, def.y, def.width, def.height), r.x, r.y);\n } else {\n return def.rect;\n }\n};\n"]}
1
+ {"version":3,"sources":["Rects.ts"],"names":["Skia","vec","processRadius","point","x","y","Point","rect","width","height","XYWHRect","rrect","r","rx","ry","RRectXY","bounds","rects","Math","min","map","max","topLeft","isRRect","topRight","bottomLeft","bottomRight","center","isRRectCtor","def","undefined","isRectCtor","processRect","processRRect"],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { SkRect, SkRRect } from \"../../skia\";\nimport { Skia } from \"../../skia\";\n\nimport { vec } from \"./math/Vector\";\nimport type { Radius } from \"./Radius\";\nimport { processRadius } from \"./Radius\";\n\nexport const point = (x: number, y: number) => Skia.Point(x, y);\n\nexport const rect = (x: number, y: number, width: number, height: number) =>\n Skia.XYWHRect(x, y, width, height);\n\nexport const rrect = (r: SkRect, rx: number, ry: number) =>\n Skia.RRectXY(r, rx, ry);\n\nexport const bounds = (rects: SkRect[]) => {\n const x = Math.min(...rects.map((r) => r.x));\n const y = Math.min(...rects.map((r) => r.y));\n const width = Math.max(...rects.map((r) => r.x + r.width));\n const height = Math.max(...rects.map((r) => r.y + r.height));\n return rect(x, y, width, height);\n};\n\nexport const topLeft = (r: SkRect | SkRRect) =>\n isRRect(r) ? vec(r.rect.x, r.rect.y) : vec(r.x, r.y);\nexport const topRight = (r: SkRect | SkRRect) =>\n isRRect(r) ? vec(r.rect.x + r.rect.width, r.rect.y) : vec(r.x + r.width, r.y);\nexport const bottomLeft = (r: SkRect | SkRRect) =>\n isRRect(r)\n ? vec(r.rect.x, r.rect.y + r.rect.height)\n : vec(r.x, r.y + r.height);\nexport const bottomRight = (r: SkRect | SkRRect) =>\n isRRect(r)\n ? vec(r.rect.x + r.rect.width, r.rect.y + r.rect.height)\n : vec(r.x + r.width, r.y + r.height);\nexport const center = (r: SkRect | SkRRect) =>\n isRRect(r)\n ? vec(r.rect.x + r.rect.width / 2, r.rect.y + r.rect.height / 2)\n : vec(r.x + r.width / 2, r.y + r.height / 2);\n\n// We have an issue to check property existence on JSI backed instances\nconst isRRectCtor = (def: RRectDef): def is RRectCtor =>\n (def as any).rect === undefined;\n// We have an issue to check property existence on JSI backed instances\nconst isRectCtor = (def: RectDef): def is RectCtor =>\n (def as any).rect === undefined;\n// We have an issue to check property existence on JSI backed instances\nexport const isRRect = (def: SkRect | SkRRect): def is SkRRect =>\n (def as any).rect !== undefined;\n\nexport interface RectCtor {\n x: number;\n y: number;\n width: number;\n height: number;\n}\n\nexport interface RRectCtor extends RectCtor {\n r: Radius;\n}\n\nexport type RectDef = RectCtor | { rect: SkRect };\nexport type RRectDef = RRectCtor | { rect: SkRRect };\n\nexport const processRect = (def: RectDef) => {\n if (isRectCtor(def)) {\n return rect(def.x, def.y, def.width, def.height);\n } else {\n return def.rect;\n }\n};\n\nexport const processRRect = (def: RRectDef) => {\n if (isRRectCtor(def)) {\n const r = processRadius(def.r);\n return rrect(rect(def.x, def.y, def.width, def.height), r.x, r.y);\n } else {\n return def.rect;\n }\n};\n"]}
@@ -1,75 +1,55 @@
1
1
  import { exhaustiveCheck } from "../../typeddash";
2
- const identityMatrix = [[1, 0, 0], [0, 1, 0], [0, 0, 1]];
3
-
4
- const translateXMatrix = x => [[1, 0, x], [0, 1, 0], [0, 0, 1]];
5
-
6
- const translateYMatrix = y => [[1, 0, 0], [0, 1, y], [0, 0, 1]];
7
-
8
- const scaleMatrix = s => [[s, 0, 0], [0, s, 0], [0, 0, 1]];
9
-
10
- const scaleXMatrix = s => [[s, 0, 0], [0, 1, 0], [0, 0, 1]];
11
-
12
- const scaleYMatrix = s => [[1, 0, 0], [0, s, 0], [0, 0, 1]];
13
-
14
- const skewXMatrix = s => [[1, Math.tan(s), 0], [0, 1, 0], [0, 0, 1]];
15
-
16
- const skewYMatrix = s => [[1, 0, 0], [Math.tan(s), 1, 0], [0, 0, 1]];
17
-
18
- const rotateZMatrix = r => [[Math.cos(r), -1 * Math.sin(r), 0], [Math.sin(r), Math.cos(r), 0], [0, 0, 1]];
19
-
20
- const dot3 = (row, col) => row[0] * col[0] + row[1] * col[1] + row[2] * col[2];
21
-
22
- const multiply3 = (m1, m2) => {
23
- const col0 = [m2[0][0], m2[1][0], m2[2][0]];
24
- const col1 = [m2[0][1], m2[1][1], m2[2][1]];
25
- const col2 = [m2[0][2], m2[1][2], m2[2][2]];
26
- return [[dot3(m1[0], col0), dot3(m1[0], col1), dot3(m1[0], col2)], [dot3(m1[1], col0), dot3(m1[1], col1), dot3(m1[1], col2)], [dot3(m1[2], col0), dot3(m1[2], col1), dot3(m1[2], col2)]];
27
- };
28
-
29
- export const matrixVecMul3 = (m, v) => [dot3(m[0], v), dot3(m[1], v), dot3(m[2], v)];
30
-
31
- const skiaMatrix3 = m => {
32
- return [m[0][0], m[0][1], m[0][2], m[1][0], m[1][1], m[1][2], m[2][0], m[2][1], m[2][2]];
2
+ import { Skia } from "../../../skia";
3
+ export const processTransform2d = transforms => {
4
+ const m = Skia.Matrix();
5
+
6
+ for (const transform of transforms) {
7
+ const key = Object.keys(transform)[0];
8
+ const value = transform[key];
9
+
10
+ if (key === "translateX") {
11
+ m.preTranslate(value, 0);
12
+ continue;
13
+ }
14
+
15
+ if (key === "translateY") {
16
+ m.preTranslate(0, value);
17
+ continue;
18
+ }
19
+
20
+ if (key === "scale") {
21
+ m.preScale(value, value);
22
+ continue;
23
+ }
24
+
25
+ if (key === "scaleX") {
26
+ m.preScale(value, 0);
27
+ continue;
28
+ }
29
+
30
+ if (key === "scaleY") {
31
+ m.preScale(0, value);
32
+ continue;
33
+ }
34
+
35
+ if (key === "skewX") {
36
+ m.preSkew(value, 0);
37
+ continue;
38
+ }
39
+
40
+ if (key === "skewY") {
41
+ m.preSkew(0, value);
42
+ continue;
43
+ }
44
+
45
+ if (key === "rotate" || key === "rotateZ") {
46
+ m.preRotate(value * 180 / Math.PI);
47
+ continue;
48
+ }
49
+
50
+ exhaustiveCheck(key);
51
+ }
52
+
53
+ return m;
33
54
  };
34
-
35
- export const processTransform2d = transforms => skiaMatrix3(processTransform(transforms));
36
-
37
- const processTransform = transforms => transforms.reduce((acc, transform) => {
38
- const key = Object.keys(transform)[0];
39
- const value = transform[key];
40
-
41
- if (key === "translateX") {
42
- return multiply3(acc, translateXMatrix(value));
43
- }
44
-
45
- if (key === "translateY") {
46
- return multiply3(acc, translateYMatrix(value));
47
- }
48
-
49
- if (key === "scale") {
50
- return multiply3(acc, scaleMatrix(value));
51
- }
52
-
53
- if (key === "scaleX") {
54
- return multiply3(acc, scaleXMatrix(value));
55
- }
56
-
57
- if (key === "scaleY") {
58
- return multiply3(acc, scaleYMatrix(value));
59
- }
60
-
61
- if (key === "skewX") {
62
- return multiply3(acc, skewXMatrix(value));
63
- }
64
-
65
- if (key === "skewY") {
66
- return multiply3(acc, skewYMatrix(value));
67
- }
68
-
69
- if (key === "rotate" || key === "rotateZ") {
70
- return multiply3(acc, rotateZMatrix(value));
71
- }
72
-
73
- return exhaustiveCheck(key);
74
- }, identityMatrix);
75
55
  //# sourceMappingURL=Matrix3.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["Matrix3.ts"],"names":["exhaustiveCheck","identityMatrix","translateXMatrix","x","translateYMatrix","y","scaleMatrix","s","scaleXMatrix","scaleYMatrix","skewXMatrix","Math","tan","skewYMatrix","rotateZMatrix","r","cos","sin","dot3","row","col","multiply3","m1","m2","col0","col1","col2","matrixVecMul3","m","v","skiaMatrix3","processTransform2d","transforms","processTransform","reduce","acc","transform","key","Object","keys","value"],"mappings":"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","sourcesContent":["import { exhaustiveCheck } from \"../../typeddash\";\nimport type { SkMatrix } from \"../../../skia/Matrix\";\n\nexport type Vec3 = readonly [number, number, number];\n\nexport type Matrix3 = readonly [Vec3, Vec3, Vec3];\n\ntype Transform2dName =\n | \"translateX\"\n | \"translateY\"\n | \"scale\"\n | \"skewX\"\n | \"skewY\"\n | \"scaleX\"\n | \"scaleY\"\n | \"rotateZ\"\n | \"rotate\";\n\nexport interface TransformProp {\n transform?: Transforms2d;\n}\n\ntype Transformations = {\n readonly [Name in Transform2dName]: number;\n};\nexport type Transforms2d = readonly (\n | Pick<Transformations, \"translateX\">\n | Pick<Transformations, \"translateY\">\n | Pick<Transformations, \"scale\">\n | Pick<Transformations, \"scaleX\">\n | Pick<Transformations, \"scaleY\">\n | Pick<Transformations, \"skewX\">\n | Pick<Transformations, \"skewY\">\n | Pick<Transformations, \"rotate\">\n)[];\n\nconst identityMatrix: Matrix3 = [\n [1, 0, 0],\n [0, 1, 0],\n [0, 0, 1],\n];\n\nconst translateXMatrix = (x: number): Matrix3 => [\n [1, 0, x],\n [0, 1, 0],\n [0, 0, 1],\n];\n\nconst translateYMatrix = (y: number): Matrix3 => [\n [1, 0, 0],\n [0, 1, y],\n [0, 0, 1],\n];\n\nconst scaleMatrix = (s: number): Matrix3 => [\n [s, 0, 0],\n [0, s, 0],\n [0, 0, 1],\n];\n\nconst scaleXMatrix = (s: number): Matrix3 => [\n [s, 0, 0],\n [0, 1, 0],\n [0, 0, 1],\n];\n\nconst scaleYMatrix = (s: number): Matrix3 => [\n [1, 0, 0],\n [0, s, 0],\n [0, 0, 1],\n];\n\nconst skewXMatrix = (s: number): Matrix3 => [\n [1, Math.tan(s), 0],\n [0, 1, 0],\n [0, 0, 1],\n];\n\nconst skewYMatrix = (s: number): Matrix3 => [\n [1, 0, 0],\n [Math.tan(s), 1, 0],\n [0, 0, 1],\n];\n\nconst rotateZMatrix = (r: number): Matrix3 => [\n [Math.cos(r), -1 * Math.sin(r), 0],\n [Math.sin(r), Math.cos(r), 0],\n [0, 0, 1],\n];\n\nconst dot3 = (row: Vec3, col: Vec3) =>\n row[0] * col[0] + row[1] * col[1] + row[2] * col[2];\n\nconst multiply3 = (m1: Matrix3, m2: Matrix3) => {\n const col0 = [m2[0][0], m2[1][0], m2[2][0]] as const;\n const col1 = [m2[0][1], m2[1][1], m2[2][1]] as const;\n const col2 = [m2[0][2], m2[1][2], m2[2][2]] as const;\n return [\n [dot3(m1[0], col0), dot3(m1[0], col1), dot3(m1[0], col2)],\n [dot3(m1[1], col0), dot3(m1[1], col1), dot3(m1[1], col2)],\n [dot3(m1[2], col0), dot3(m1[2], col1), dot3(m1[2], col2)],\n ] as const;\n};\n\nexport const matrixVecMul3 = (m: Matrix3, v: Vec3) =>\n [dot3(m[0], v), dot3(m[1], v), dot3(m[2], v)] as const;\n\nconst skiaMatrix3 = (m: Matrix3): SkMatrix => {\n return [\n m[0][0],\n m[0][1],\n m[0][2],\n m[1][0],\n m[1][1],\n m[1][2],\n m[2][0],\n m[2][1],\n m[2][2],\n ];\n};\n\nexport const processTransform2d = (transforms: Transforms2d) =>\n skiaMatrix3(processTransform(transforms));\n\nconst processTransform = (transforms: Transforms2d) =>\n transforms.reduce((acc, transform) => {\n const key = Object.keys(transform)[0] as Transform2dName;\n const value = (transform as Pick<Transformations, typeof key>)[key];\n if (key === \"translateX\") {\n return multiply3(acc, translateXMatrix(value));\n }\n if (key === \"translateY\") {\n return multiply3(acc, translateYMatrix(value));\n }\n if (key === \"scale\") {\n return multiply3(acc, scaleMatrix(value));\n }\n if (key === \"scaleX\") {\n return multiply3(acc, scaleXMatrix(value));\n }\n if (key === \"scaleY\") {\n return multiply3(acc, scaleYMatrix(value));\n }\n if (key === \"skewX\") {\n return multiply3(acc, skewXMatrix(value));\n }\n if (key === \"skewY\") {\n return multiply3(acc, skewYMatrix(value));\n }\n if (key === \"rotate\" || key === \"rotateZ\") {\n return multiply3(acc, rotateZMatrix(value));\n }\n return exhaustiveCheck(key);\n }, identityMatrix);\n"]}
1
+ {"version":3,"sources":["Matrix3.ts"],"names":["exhaustiveCheck","Skia","processTransform2d","transforms","m","Matrix","transform","key","Object","keys","value","preTranslate","preScale","preSkew","preRotate","Math","PI"],"mappings":"AAAA,SAASA,eAAT,QAAgC,iBAAhC;AACA,SAASC,IAAT,QAAqB,eAArB;AA+BA,OAAO,MAAMC,kBAAkB,GAAIC,UAAD,IAA8B;AAC9D,QAAMC,CAAC,GAAGH,IAAI,CAACI,MAAL,EAAV;;AACA,OAAK,MAAMC,SAAX,IAAwBH,UAAxB,EAAoC;AAClC,UAAMI,GAAG,GAAGC,MAAM,CAACC,IAAP,CAAYH,SAAZ,EAAuB,CAAvB,CAAZ;AACA,UAAMI,KAAK,GAAIJ,SAAD,CAAiDC,GAAjD,CAAd;;AACA,QAAIA,GAAG,KAAK,YAAZ,EAA0B;AACxBH,MAAAA,CAAC,CAACO,YAAF,CAAeD,KAAf,EAAsB,CAAtB;AACA;AACD;;AACD,QAAIH,GAAG,KAAK,YAAZ,EAA0B;AACxBH,MAAAA,CAAC,CAACO,YAAF,CAAe,CAAf,EAAkBD,KAAlB;AACA;AACD;;AACD,QAAIH,GAAG,KAAK,OAAZ,EAAqB;AACnBH,MAAAA,CAAC,CAACQ,QAAF,CAAWF,KAAX,EAAkBA,KAAlB;AACA;AACD;;AACD,QAAIH,GAAG,KAAK,QAAZ,EAAsB;AACpBH,MAAAA,CAAC,CAACQ,QAAF,CAAWF,KAAX,EAAkB,CAAlB;AACA;AACD;;AACD,QAAIH,GAAG,KAAK,QAAZ,EAAsB;AACpBH,MAAAA,CAAC,CAACQ,QAAF,CAAW,CAAX,EAAcF,KAAd;AACA;AACD;;AACD,QAAIH,GAAG,KAAK,OAAZ,EAAqB;AACnBH,MAAAA,CAAC,CAACS,OAAF,CAAUH,KAAV,EAAiB,CAAjB;AACA;AACD;;AACD,QAAIH,GAAG,KAAK,OAAZ,EAAqB;AACnBH,MAAAA,CAAC,CAACS,OAAF,CAAU,CAAV,EAAaH,KAAb;AACA;AACD;;AACD,QAAIH,GAAG,KAAK,QAAR,IAAoBA,GAAG,KAAK,SAAhC,EAA2C;AACzCH,MAAAA,CAAC,CAACU,SAAF,CAAaJ,KAAK,GAAG,GAAT,GAAgBK,IAAI,CAACC,EAAjC;AACA;AACD;;AACDhB,IAAAA,eAAe,CAACO,GAAD,CAAf;AACD;;AACD,SAAOH,CAAP;AACD,CAxCM","sourcesContent":["import { exhaustiveCheck } from \"../../typeddash\";\nimport { Skia } from \"../../../skia\";\n\ntype Transform2dName =\n | \"translateX\"\n | \"translateY\"\n | \"scale\"\n | \"skewX\"\n | \"skewY\"\n | \"scaleX\"\n | \"scaleY\"\n | \"rotateZ\"\n | \"rotate\";\n\nexport interface TransformProp {\n transform?: Transforms2d;\n}\n\ntype Transformations = {\n readonly [Name in Transform2dName]: number;\n};\nexport type Transforms2d = readonly (\n | Pick<Transformations, \"translateX\">\n | Pick<Transformations, \"translateY\">\n | Pick<Transformations, \"scale\">\n | Pick<Transformations, \"scaleX\">\n | Pick<Transformations, \"scaleY\">\n | Pick<Transformations, \"skewX\">\n | Pick<Transformations, \"skewY\">\n | Pick<Transformations, \"rotate\">\n)[];\n\nexport const processTransform2d = (transforms: Transforms2d) => {\n const m = Skia.Matrix();\n for (const transform of transforms) {\n const key = Object.keys(transform)[0] as Transform2dName;\n const value = (transform as Pick<Transformations, typeof key>)[key];\n if (key === \"translateX\") {\n m.preTranslate(value, 0);\n continue;\n }\n if (key === \"translateY\") {\n m.preTranslate(0, value);\n continue;\n }\n if (key === \"scale\") {\n m.preScale(value, value);\n continue;\n }\n if (key === \"scaleX\") {\n m.preScale(value, 0);\n continue;\n }\n if (key === \"scaleY\") {\n m.preScale(0, value);\n continue;\n }\n if (key === \"skewX\") {\n m.preSkew(value, 0);\n continue;\n }\n if (key === \"skewY\") {\n m.preSkew(0, value);\n continue;\n }\n if (key === \"rotate\" || key === \"rotateZ\") {\n m.preRotate((value * 180) / Math.PI);\n continue;\n }\n exhaustiveCheck(key);\n }\n return m;\n};\n"]}
@@ -1,11 +1,9 @@
1
- import { interpolate } from "../../../values/animation/functions/interpolate";
1
+ import { interpolate } from "../../../animation/functions/interpolate";
2
+ import { Skia } from "../../../skia";
2
3
  export const vec = function () {
3
4
  let x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
4
5
  let y = arguments.length > 1 ? arguments[1] : undefined;
5
- return {
6
- x,
7
- y: y !== null && y !== void 0 ? y : x
8
- };
6
+ return Skia.Point(x, y !== null && y !== void 0 ? y : x);
9
7
  };
10
8
  export const neg = a => vec(-a.x, -a.y);
11
9
  export const add = (a, b) => vec(a.x + b.x, a.y + b.y);
@@ -1 +1 @@
1
- {"version":3,"sources":["Vector.ts"],"names":["interpolate","vec","x","y","neg","a","add","b","sub","dist","Math","hypot","translate","translateX","translateY","interpolateVector","value","inputRange","outputRange","options","map","v","mixVector","from","to"],"mappings":"AAAA,SAASA,WAAT,QAA4B,iDAA5B;AAOA,OAAO,MAAMC,GAAG,GAAG;AAAA,MAACC,CAAD,uEAAK,CAAL;AAAA,MAAQC,CAAR;AAAA,SAAwB;AAAED,IAAAA,CAAF;AAAKC,IAAAA,CAAC,EAAEA,CAAF,aAAEA,CAAF,cAAEA,CAAF,GAAOD;AAAb,GAAxB;AAAA,CAAZ;AACP,OAAO,MAAME,GAAG,GAAIC,CAAD,IAAeJ,GAAG,CAAC,CAACI,CAAC,CAACH,CAAJ,EAAO,CAACG,CAAC,CAACF,CAAV,CAA9B;AACP,OAAO,MAAMG,GAAG,GAAG,CAACD,CAAD,EAAYE,CAAZ,KAA0BN,GAAG,CAACI,CAAC,CAACH,CAAF,GAAMK,CAAC,CAACL,CAAT,EAAYG,CAAC,CAACF,CAAF,GAAMI,CAAC,CAACJ,CAApB,CAAzC;AACP,OAAO,MAAMK,GAAG,GAAG,CAACH,CAAD,EAAYE,CAAZ,KAA0BN,GAAG,CAACI,CAAC,CAACH,CAAF,GAAMK,CAAC,CAACL,CAAT,EAAYG,CAAC,CAACF,CAAF,GAAMI,CAAC,CAACJ,CAApB,CAAzC;AACP,OAAO,MAAMM,IAAI,GAAG,CAACJ,CAAD,EAAYE,CAAZ,KAA0BG,IAAI,CAACC,KAAL,CAAWN,CAAC,CAACH,CAAF,GAAMK,CAAC,CAACL,CAAnB,EAAsBG,CAAC,CAACF,CAAF,GAAMI,CAAC,CAACJ,CAA9B,CAAvC;AACP,OAAO,MAAMS,SAAS,GAAG;AAAA,MAAC;AAAEV,IAAAA,CAAF;AAAKC,IAAAA;AAAL,GAAD;AAAA,SACvB,CAAC;AAAEU,IAAAA,UAAU,EAAEX;AAAd,GAAD,EAAoB;AAAEY,IAAAA,UAAU,EAAEX;AAAd,GAApB,CADuB;AAAA,CAAlB;AAGP,OAAO,MAAMY,iBAAiB,GAAG,CAC/BC,KAD+B,EAE/BC,UAF+B,EAG/BC,WAH+B,EAI/BC,OAJ+B,MAK3B;AACJjB,EAAAA,CAAC,EAAEF,WAAW,CACZgB,KADY,EAEZC,UAFY,EAGZC,WAAW,CAACE,GAAZ,CAAiBC,CAAD,IAAOA,CAAC,CAACnB,CAAzB,CAHY,EAIZiB,OAJY,CADV;AAOJhB,EAAAA,CAAC,EAAEH,WAAW,CACZgB,KADY,EAEZC,UAFY,EAGZC,WAAW,CAACE,GAAZ,CAAiBC,CAAD,IAAOA,CAAC,CAAClB,CAAzB,CAHY,EAIZgB,OAJY;AAPV,CAL2B,CAA1B;AAoBP,OAAO,MAAMG,SAAS,GAAG,CAACN,KAAD,EAAgBO,IAAhB,EAA8BC,EAA9B,KACvBT,iBAAiB,CAACC,KAAD,EAAQ,CAAC,CAAD,EAAI,CAAJ,CAAR,EAAgB,CAACO,IAAD,EAAOC,EAAP,CAAhB,CADZ","sourcesContent":["import { interpolate } from \"../../../values/animation/functions/interpolate\";\n\nexport interface Vector {\n x: number;\n y: number;\n}\n\nexport const vec = (x = 0, y?: number) => ({ x, y: y ?? x });\nexport const neg = (a: Vector) => vec(-a.x, -a.y);\nexport const add = (a: Vector, b: Vector) => vec(a.x + b.x, a.y + b.y);\nexport const sub = (a: Vector, b: Vector) => vec(a.x - b.x, a.y - b.y);\nexport const dist = (a: Vector, b: Vector) => Math.hypot(a.x - b.x, a.y - b.y);\nexport const translate = ({ x, y }: Vector) =>\n [{ translateX: x }, { translateY: y }] as const;\n\nexport const interpolateVector = (\n value: number,\n inputRange: readonly number[],\n outputRange: readonly Vector[],\n options?: Parameters<typeof interpolate>[3]\n) => ({\n x: interpolate(\n value,\n inputRange,\n outputRange.map((v) => v.x),\n options\n ),\n y: interpolate(\n value,\n inputRange,\n outputRange.map((v) => v.y),\n options\n ),\n});\n\nexport const mixVector = (value: number, from: Vector, to: Vector) =>\n interpolateVector(value, [0, 1], [from, to]);\n"]}
1
+ {"version":3,"sources":["Vector.ts"],"names":["interpolate","Skia","vec","x","y","Point","neg","a","add","b","sub","dist","Math","hypot","translate","translateX","translateY","interpolateVector","value","inputRange","outputRange","options","map","v","mixVector","from","to"],"mappings":"AAAA,SAASA,WAAT,QAA4B,0CAA5B;AACA,SAASC,IAAT,QAAqB,eAArB;AAOA,OAAO,MAAMC,GAAG,GAAG;AAAA,MAACC,CAAD,uEAAK,CAAL;AAAA,MAAQC,CAAR;AAAA,SAAuBH,IAAI,CAACI,KAAL,CAAWF,CAAX,EAAcC,CAAd,aAAcA,CAAd,cAAcA,CAAd,GAAmBD,CAAnB,CAAvB;AAAA,CAAZ;AACP,OAAO,MAAMG,GAAG,GAAIC,CAAD,IAAeL,GAAG,CAAC,CAACK,CAAC,CAACJ,CAAJ,EAAO,CAACI,CAAC,CAACH,CAAV,CAA9B;AACP,OAAO,MAAMI,GAAG,GAAG,CAACD,CAAD,EAAYE,CAAZ,KAA0BP,GAAG,CAACK,CAAC,CAACJ,CAAF,GAAMM,CAAC,CAACN,CAAT,EAAYI,CAAC,CAACH,CAAF,GAAMK,CAAC,CAACL,CAApB,CAAzC;AACP,OAAO,MAAMM,GAAG,GAAG,CAACH,CAAD,EAAYE,CAAZ,KAA0BP,GAAG,CAACK,CAAC,CAACJ,CAAF,GAAMM,CAAC,CAACN,CAAT,EAAYI,CAAC,CAACH,CAAF,GAAMK,CAAC,CAACL,CAApB,CAAzC;AACP,OAAO,MAAMO,IAAI,GAAG,CAACJ,CAAD,EAAYE,CAAZ,KAA0BG,IAAI,CAACC,KAAL,CAAWN,CAAC,CAACJ,CAAF,GAAMM,CAAC,CAACN,CAAnB,EAAsBI,CAAC,CAACH,CAAF,GAAMK,CAAC,CAACL,CAA9B,CAAvC;AACP,OAAO,MAAMU,SAAS,GAAG;AAAA,MAAC;AAAEX,IAAAA,CAAF;AAAKC,IAAAA;AAAL,GAAD;AAAA,SACvB,CAAC;AAAEW,IAAAA,UAAU,EAAEZ;AAAd,GAAD,EAAoB;AAAEa,IAAAA,UAAU,EAAEZ;AAAd,GAApB,CADuB;AAAA,CAAlB;AAGP,OAAO,MAAMa,iBAAiB,GAAG,CAC/BC,KAD+B,EAE/BC,UAF+B,EAG/BC,WAH+B,EAI/BC,OAJ+B,MAK3B;AACJlB,EAAAA,CAAC,EAAEH,WAAW,CACZkB,KADY,EAEZC,UAFY,EAGZC,WAAW,CAACE,GAAZ,CAAiBC,CAAD,IAAOA,CAAC,CAACpB,CAAzB,CAHY,EAIZkB,OAJY,CADV;AAOJjB,EAAAA,CAAC,EAAEJ,WAAW,CACZkB,KADY,EAEZC,UAFY,EAGZC,WAAW,CAACE,GAAZ,CAAiBC,CAAD,IAAOA,CAAC,CAACnB,CAAzB,CAHY,EAIZiB,OAJY;AAPV,CAL2B,CAA1B;AAoBP,OAAO,MAAMG,SAAS,GAAG,CAACN,KAAD,EAAgBO,IAAhB,EAA8BC,EAA9B,KACvBT,iBAAiB,CAACC,KAAD,EAAQ,CAAC,CAAD,EAAI,CAAJ,CAAR,EAAgB,CAACO,IAAD,EAAOC,EAAP,CAAhB,CADZ","sourcesContent":["import { interpolate } from \"../../../animation/functions/interpolate\";\nimport { Skia } from \"../../../skia\";\n\nexport interface Vector {\n x: number;\n y: number;\n}\n\nexport const vec = (x = 0, y?: number) => Skia.Point(x, y ?? x);\nexport const neg = (a: Vector) => vec(-a.x, -a.y);\nexport const add = (a: Vector, b: Vector) => vec(a.x + b.x, a.y + b.y);\nexport const sub = (a: Vector, b: Vector) => vec(a.x - b.x, a.y - b.y);\nexport const dist = (a: Vector, b: Vector) => Math.hypot(a.x - b.x, a.y - b.y);\nexport const translate = ({ x, y }: Vector) =>\n [{ translateX: x }, { translateY: y }] as const;\n\nexport const interpolateVector = (\n value: number,\n inputRange: readonly number[],\n outputRange: readonly Vector[],\n options?: Parameters<typeof interpolate>[3]\n) => ({\n x: interpolate(\n value,\n inputRange,\n outputRange.map((v) => v.x),\n options\n ),\n y: interpolate(\n value,\n inputRange,\n outputRange.map((v) => v.y),\n options\n ),\n});\n\nexport const mixVector = (value: number, from: Vector, to: Vector) =>\n interpolateVector(value, [0, 1], [from, to]);\n"]}
@@ -1,29 +1,13 @@
1
- import { Skia } from "./Skia"; // This is the JSI color. Currently a number. This may change.
2
-
3
- export const alphaf = c => (c >> 24 & 255) / 255;
4
- export const red = c => c >> 16 & 255;
5
- export const green = c => c >> 8 & 255;
6
- export const blue = c => c & 255;
7
- export const rgbaColor = (r, g, b, af) => {
8
- const a = Math.round(af * 255);
9
- return (a << 24 | r << 16 | g << 8 | b) >>> 0;
10
- };
11
-
12
- const processColorAsArray = cl => {
13
- const icl = typeof cl === "string" ? Skia.Color(cl) : cl;
14
- const r = red(icl);
15
- const g = green(icl);
16
- const b = blue(icl);
17
- const a = alphaf(icl);
18
- return [r, g, b, a];
19
- };
1
+ import { Skia } from "./Skia"; // This is the JSI color
20
2
 
3
+ export const RED = 0;
4
+ export const GREEN = 1;
5
+ export const BLUE = 2;
6
+ export const ALPHA = 3;
7
+ export const rgbaColor = (r, g, b, a) => new Float32Array([r, g, b, a]);
21
8
  export const processColor = (cl, currentOpacity) => {
22
- const [r, g, b, a] = processColorAsArray(cl);
23
- return rgbaColor(r, g, b, a * currentOpacity);
24
- };
25
- export const processColorAsUnitArray = (cl, currentOpacity) => {
26
- const [r, g, b, a] = processColorAsArray(cl);
27
- return [r / 255, g / 255, b / 255, a * currentOpacity];
9
+ const color = Skia.Color(cl);
10
+ color[ALPHA] *= currentOpacity;
11
+ return color;
28
12
  };
29
13
  //# sourceMappingURL=Color.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["Color.ts"],"names":["Skia","alphaf","c","red","green","blue","rgbaColor","r","g","b","af","a","Math","round","processColorAsArray","cl","icl","Color","processColor","currentOpacity","processColorAsUnitArray"],"mappings":"AAAA,SAASA,IAAT,QAAqB,QAArB,C,CAEA;;AAKA,OAAO,MAAMC,MAAM,GAAIC,CAAD,IAAe,CAAEA,CAAC,IAAI,EAAN,GAAY,GAAb,IAAoB,GAAlD;AACP,OAAO,MAAMC,GAAG,GAAID,CAAD,IAAgBA,CAAC,IAAI,EAAN,GAAY,GAAvC;AACP,OAAO,MAAME,KAAK,GAAIF,CAAD,IAAgBA,CAAC,IAAI,CAAN,GAAW,GAAxC;AACP,OAAO,MAAMG,IAAI,GAAIH,CAAD,IAAeA,CAAC,GAAG,GAAhC;AACP,OAAO,MAAMI,SAAS,GAAG,CAACC,CAAD,EAAYC,CAAZ,EAAuBC,CAAvB,EAAkCC,EAAlC,KAAiD;AACxE,QAAMC,CAAC,GAAGC,IAAI,CAACC,KAAL,CAAWH,EAAE,GAAG,GAAhB,CAAV;AACA,SAAO,CAAEC,CAAC,IAAI,EAAN,GAAaJ,CAAC,IAAI,EAAlB,GAAyBC,CAAC,IAAI,CAA9B,GAAmCC,CAApC,MAA2C,CAAlD;AACD,CAHM;;AAKP,MAAMK,mBAAmB,GAAIC,EAAD,IAAe;AACzC,QAAMC,GAAG,GAAG,OAAOD,EAAP,KAAc,QAAd,GAAyBf,IAAI,CAACiB,KAAL,CAAWF,EAAX,CAAzB,GAA0CA,EAAtD;AACA,QAAMR,CAAC,GAAGJ,GAAG,CAACa,GAAD,CAAb;AACA,QAAMR,CAAC,GAAGJ,KAAK,CAACY,GAAD,CAAf;AACA,QAAMP,CAAC,GAAGJ,IAAI,CAACW,GAAD,CAAd;AACA,QAAML,CAAC,GAAGV,MAAM,CAACe,GAAD,CAAhB;AACA,SAAO,CAACT,CAAD,EAAIC,CAAJ,EAAOC,CAAP,EAAUE,CAAV,CAAP;AACD,CAPD;;AASA,OAAO,MAAMO,YAAY,GAAG,CAACH,EAAD,EAAYI,cAAZ,KAAuC;AACjE,QAAM,CAACZ,CAAD,EAAIC,CAAJ,EAAOC,CAAP,EAAUE,CAAV,IAAeG,mBAAmB,CAACC,EAAD,CAAxC;AACA,SAAOT,SAAS,CAACC,CAAD,EAAIC,CAAJ,EAAOC,CAAP,EAAUE,CAAC,GAAGQ,cAAd,CAAhB;AACD,CAHM;AAKP,OAAO,MAAMC,uBAAuB,GAAG,CAACL,EAAD,EAAYI,cAAZ,KAAuC;AAC5E,QAAM,CAACZ,CAAD,EAAIC,CAAJ,EAAOC,CAAP,EAAUE,CAAV,IAAeG,mBAAmB,CAACC,EAAD,CAAxC;AACA,SAAO,CAACR,CAAC,GAAG,GAAL,EAAUC,CAAC,GAAG,GAAd,EAAmBC,CAAC,GAAG,GAAvB,EAA4BE,CAAC,GAAGQ,cAAhC,CAAP;AACD,CAHM","sourcesContent":["import { Skia } from \"./Skia\";\n\n// This is the JSI color. Currently a number. This may change.\nexport type SkColor = number;\n// Input colors can be string or number\nexport type Color = string | number;\n\nexport const alphaf = (c: number) => ((c >> 24) & 255) / 255;\nexport const red = (c: number) => (c >> 16) & 255;\nexport const green = (c: number) => (c >> 8) & 255;\nexport const blue = (c: number) => c & 255;\nexport const rgbaColor = (r: number, g: number, b: number, af: number) => {\n const a = Math.round(af * 255);\n return ((a << 24) | (r << 16) | (g << 8) | b) >>> 0;\n};\n\nconst processColorAsArray = (cl: Color) => {\n const icl = typeof cl === \"string\" ? Skia.Color(cl) : cl;\n const r = red(icl);\n const g = green(icl);\n const b = blue(icl);\n const a = alphaf(icl);\n return [r, g, b, a] as const;\n};\n\nexport const processColor = (cl: Color, currentOpacity: number) => {\n const [r, g, b, a] = processColorAsArray(cl);\n return rgbaColor(r, g, b, a * currentOpacity);\n};\n\nexport const processColorAsUnitArray = (cl: Color, currentOpacity: number) => {\n const [r, g, b, a] = processColorAsArray(cl);\n return [r / 255, g / 255, b / 255, a * currentOpacity] as const;\n};\n"]}
1
+ {"version":3,"sources":["Color.ts"],"names":["Skia","RED","GREEN","BLUE","ALPHA","rgbaColor","r","g","b","a","Float32Array","processColor","cl","currentOpacity","color","Color"],"mappings":"AAAA,SAASA,IAAT,QAAqB,QAArB,C,CAEA;;AAKA,OAAO,MAAMC,GAAG,GAAG,CAAZ;AACP,OAAO,MAAMC,KAAK,GAAG,CAAd;AACP,OAAO,MAAMC,IAAI,GAAG,CAAb;AACP,OAAO,MAAMC,KAAK,GAAG,CAAd;AAEP,OAAO,MAAMC,SAAS,GAAG,CAACC,CAAD,EAAYC,CAAZ,EAAuBC,CAAvB,EAAkCC,CAAlC,KACvB,IAAIC,YAAJ,CAAiB,CAACJ,CAAD,EAAIC,CAAJ,EAAOC,CAAP,EAAUC,CAAV,CAAjB,CADK;AAGP,OAAO,MAAME,YAAY,GAAG,CAACC,EAAD,EAAYC,cAAZ,KAAuC;AACjE,QAAMC,KAAK,GAAGd,IAAI,CAACe,KAAL,CAAWH,EAAX,CAAd;AACAE,EAAAA,KAAK,CAACV,KAAD,CAAL,IAAgBS,cAAhB;AACA,SAAOC,KAAP;AACD,CAJM","sourcesContent":["import { Skia } from \"./Skia\";\n\n// This is the JSI color\nexport type SkColor = Float32Array;\n// Input colors can be string, number or Float32Array\nexport type Color = string | Float32Array | number;\n\nexport const RED = 0;\nexport const GREEN = 1;\nexport const BLUE = 2;\nexport const ALPHA = 3;\n\nexport const rgbaColor = (r: number, g: number, b: number, a: number) =>\n new Float32Array([r, g, b, a]);\n\nexport const processColor = (cl: Color, currentOpacity: number) => {\n const color = Skia.Color(cl);\n color[ALPHA] *= currentOpacity;\n return color;\n};\n"]}