html2canvas-pro 2.0.3 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (631) hide show
  1. package/README.md +8 -6
  2. package/dist/html2canvas-pro.esm.js +6754 -6599
  3. package/dist/html2canvas-pro.esm.js.map +1 -1
  4. package/dist/html2canvas-pro.js +6753 -6599
  5. package/dist/html2canvas-pro.js.map +1 -1
  6. package/dist/html2canvas-pro.min.js +5 -5
  7. package/dist/lib/config.js +3 -4
  8. package/dist/lib/core/bitwise.js +0 -1
  9. package/dist/lib/core/cache-storage.js +34 -48
  10. package/dist/lib/core/context.js +0 -1
  11. package/dist/lib/core/debugger.js +0 -1
  12. package/dist/lib/core/features.js +0 -1
  13. package/dist/lib/core/logger.js +0 -1
  14. package/dist/lib/core/origin-checker.js +0 -1
  15. package/dist/lib/core/performance-monitor.js +1 -24
  16. package/dist/lib/core/render-element.js +210 -0
  17. package/dist/lib/core/util.js +0 -1
  18. package/dist/lib/core/validator.js +0 -1
  19. package/dist/lib/css/index.js +150 -89
  20. package/dist/lib/css/layout/bounds.js +0 -1
  21. package/dist/lib/css/layout/text.js +4 -1
  22. package/dist/lib/css/{ITypeDescriptor.js → property-descriptor.js} +0 -1
  23. package/dist/lib/css/property-descriptors/background-clip.js +0 -1
  24. package/dist/lib/css/property-descriptors/background-color.js +0 -1
  25. package/dist/lib/css/property-descriptors/background-image.js +0 -1
  26. package/dist/lib/css/property-descriptors/background-origin.js +0 -1
  27. package/dist/lib/css/property-descriptors/background-position.js +0 -1
  28. package/dist/lib/css/property-descriptors/background-repeat.js +0 -1
  29. package/dist/lib/css/property-descriptors/background-size.js +0 -1
  30. package/dist/lib/css/property-descriptors/border-color.js +0 -1
  31. package/dist/lib/css/property-descriptors/border-radius.js +0 -1
  32. package/dist/lib/css/property-descriptors/border-style.js +0 -1
  33. package/dist/lib/css/property-descriptors/border-width.js +0 -1
  34. package/dist/lib/css/property-descriptors/box-shadow.js +0 -1
  35. package/dist/lib/css/property-descriptors/clip-path.js +0 -1
  36. package/dist/lib/css/property-descriptors/color.js +0 -1
  37. package/dist/lib/css/property-descriptors/content.js +0 -1
  38. package/dist/lib/css/property-descriptors/counter-increment.js +0 -1
  39. package/dist/lib/css/property-descriptors/counter-reset.js +0 -1
  40. package/dist/lib/css/property-descriptors/direction.js +0 -1
  41. package/dist/lib/css/property-descriptors/display.js +0 -1
  42. package/dist/lib/css/property-descriptors/duration.js +0 -1
  43. package/dist/lib/css/property-descriptors/float.js +0 -1
  44. package/dist/lib/css/property-descriptors/font-family.js +0 -1
  45. package/dist/lib/css/property-descriptors/font-size.js +0 -1
  46. package/dist/lib/css/property-descriptors/font-style.js +0 -1
  47. package/dist/lib/css/property-descriptors/font-variant.js +0 -1
  48. package/dist/lib/css/property-descriptors/font-weight.js +0 -1
  49. package/dist/lib/css/property-descriptors/image-rendering.js +0 -1
  50. package/dist/lib/css/property-descriptors/letter-spacing.js +0 -1
  51. package/dist/lib/css/property-descriptors/line-break.js +0 -1
  52. package/dist/lib/css/property-descriptors/line-height.js +0 -1
  53. package/dist/lib/css/property-descriptors/list-style-image.js +0 -1
  54. package/dist/lib/css/property-descriptors/list-style-position.js +0 -1
  55. package/dist/lib/css/property-descriptors/list-style-type.js +0 -1
  56. package/dist/lib/css/property-descriptors/margin.js +0 -1
  57. package/dist/lib/css/property-descriptors/mix-blend-mode.js +31 -0
  58. package/dist/lib/css/property-descriptors/object-fit.js +0 -1
  59. package/dist/lib/css/property-descriptors/opacity.js +0 -1
  60. package/dist/lib/css/property-descriptors/overflow-wrap.js +0 -1
  61. package/dist/lib/css/property-descriptors/overflow.js +0 -1
  62. package/dist/lib/css/property-descriptors/padding.js +0 -1
  63. package/dist/lib/css/property-descriptors/paint-order.js +0 -1
  64. package/dist/lib/css/property-descriptors/position.js +0 -1
  65. package/dist/lib/css/property-descriptors/quotes.js +0 -1
  66. package/dist/lib/css/property-descriptors/rotate.js +0 -1
  67. package/dist/lib/css/property-descriptors/text-align.js +0 -1
  68. package/dist/lib/css/property-descriptors/text-decoration-color.js +0 -1
  69. package/dist/lib/css/property-descriptors/text-decoration-line.js +0 -1
  70. package/dist/lib/css/property-descriptors/text-decoration-style.js +0 -1
  71. package/dist/lib/css/property-descriptors/text-decoration-thickness.js +0 -1
  72. package/dist/lib/css/property-descriptors/text-overflow.js +0 -1
  73. package/dist/lib/css/property-descriptors/text-shadow.js +0 -1
  74. package/dist/lib/css/property-descriptors/text-transform.js +0 -1
  75. package/dist/lib/css/property-descriptors/text-underline-offset.js +0 -1
  76. package/dist/lib/css/property-descriptors/transform-origin.js +0 -1
  77. package/dist/lib/css/property-descriptors/transform.js +0 -1
  78. package/dist/lib/css/property-descriptors/visibility.js +0 -1
  79. package/dist/lib/css/property-descriptors/webkit-line-clamp.js +0 -1
  80. package/dist/lib/css/property-descriptors/webkit-text-stroke-color.js +0 -1
  81. package/dist/lib/css/property-descriptors/webkit-text-stroke-width.js +0 -1
  82. package/dist/lib/css/property-descriptors/word-break.js +0 -1
  83. package/dist/lib/css/property-descriptors/writing-mode.js +28 -0
  84. package/dist/lib/css/property-descriptors/z-index.js +0 -1
  85. package/dist/lib/css/syntax/parser.js +0 -1
  86. package/dist/lib/css/syntax/tokenizer.js +14 -1
  87. package/dist/lib/css/{IPropertyDescriptor.js → type-descriptor.js} +0 -1
  88. package/dist/lib/css/types/angle.js +0 -1
  89. package/dist/lib/css/types/color-math.js +0 -1
  90. package/dist/lib/css/types/color-spaces/a98.js +0 -1
  91. package/dist/lib/css/types/color-spaces/p3.js +0 -1
  92. package/dist/lib/css/types/color-spaces/pro-photo.js +0 -1
  93. package/dist/lib/css/types/color-spaces/rec2020.js +0 -1
  94. package/dist/lib/css/types/color-spaces/srgb.js +0 -1
  95. package/dist/lib/css/types/color-utilities.js +0 -1
  96. package/dist/lib/css/types/color.js +0 -1
  97. package/dist/lib/css/types/functions/-prefix-linear-gradient.js +0 -1
  98. package/dist/lib/css/types/functions/-prefix-radial-gradient.js +0 -1
  99. package/dist/lib/css/types/functions/-webkit-gradient.js +0 -1
  100. package/dist/lib/css/types/functions/counter.js +0 -1
  101. package/dist/lib/css/types/functions/gradient.js +0 -1
  102. package/dist/lib/css/types/functions/linear-gradient.js +0 -1
  103. package/dist/lib/css/types/functions/radial-gradient.js +0 -1
  104. package/dist/lib/css/types/image.js +0 -1
  105. package/dist/lib/css/types/index.js +0 -1
  106. package/dist/lib/css/types/length-percentage.js +0 -1
  107. package/dist/lib/css/types/length.js +0 -1
  108. package/dist/lib/css/types/time.js +0 -1
  109. package/dist/lib/dom/document-cloner.js +27 -22
  110. package/dist/lib/dom/dom-normalizer.js +0 -1
  111. package/dist/lib/dom/element-container.js +7 -6
  112. package/dist/lib/dom/elements/li-element-container.js +0 -1
  113. package/dist/lib/dom/elements/ol-element-container.js +0 -1
  114. package/dist/lib/dom/elements/select-element-container.js +0 -1
  115. package/dist/lib/dom/elements/textarea-element-container.js +0 -1
  116. package/dist/lib/dom/node-parser.js +37 -53
  117. package/dist/lib/dom/node-type-guards.js +62 -25
  118. package/dist/lib/dom/replaced-elements/canvas-element-container.js +0 -1
  119. package/dist/lib/dom/replaced-elements/iframe-element-container.js +0 -1
  120. package/dist/lib/dom/replaced-elements/image-element-container.js +0 -1
  121. package/dist/lib/dom/replaced-elements/index.js +0 -1
  122. package/dist/lib/dom/replaced-elements/input-element-container.js +0 -1
  123. package/dist/lib/dom/replaced-elements/pseudo-elements.js +0 -1
  124. package/dist/lib/dom/replaced-elements/svg-element-container.js +0 -1
  125. package/dist/lib/dom/text-container.js +5 -1
  126. package/dist/lib/index.js +32 -210
  127. package/dist/lib/invariant.js +0 -1
  128. package/dist/lib/options.js +2 -0
  129. package/dist/lib/render/background.js +0 -1
  130. package/dist/lib/render/bezier-curve.js +0 -1
  131. package/dist/lib/render/border.js +0 -1
  132. package/dist/lib/render/bound-curves.js +0 -1
  133. package/dist/lib/render/box-sizing.js +0 -1
  134. package/dist/lib/render/canvas/background-renderer.js +2 -24
  135. package/dist/lib/render/canvas/border-renderer.js +0 -1
  136. package/dist/lib/render/canvas/canvas-path.js +25 -0
  137. package/dist/lib/render/canvas/canvas-renderer.js +25 -98
  138. package/dist/lib/render/canvas/effects-renderer.js +3 -1
  139. package/dist/lib/render/canvas/foreignobject-renderer.js +8 -16
  140. package/dist/lib/render/canvas/text-renderer.js +92 -121
  141. package/dist/lib/render/effects.js +11 -2
  142. package/dist/lib/render/font-metrics.js +0 -1
  143. package/dist/lib/render/object-fit.js +87 -0
  144. package/dist/lib/render/path.js +0 -1
  145. package/dist/lib/render/renderer-interface.js +0 -1
  146. package/dist/lib/render/stacking-context.js +16 -8
  147. package/dist/lib/render/vector.js +0 -1
  148. package/dist/types/core/cache-storage.d.ts +5 -6
  149. package/dist/types/core/performance-monitor.d.ts +0 -11
  150. package/dist/types/core/render-element.d.ts +3 -0
  151. package/dist/types/css/index.d.ts +5 -0
  152. package/dist/types/css/property-descriptors/background-clip.d.ts +1 -1
  153. package/dist/types/css/property-descriptors/background-color.d.ts +1 -1
  154. package/dist/types/css/property-descriptors/background-image.d.ts +1 -1
  155. package/dist/types/css/property-descriptors/background-origin.d.ts +1 -1
  156. package/dist/types/css/property-descriptors/background-position.d.ts +1 -1
  157. package/dist/types/css/property-descriptors/background-repeat.d.ts +1 -1
  158. package/dist/types/css/property-descriptors/background-size.d.ts +1 -1
  159. package/dist/types/css/property-descriptors/border-color.d.ts +1 -1
  160. package/dist/types/css/property-descriptors/border-radius.d.ts +1 -1
  161. package/dist/types/css/property-descriptors/border-style.d.ts +1 -1
  162. package/dist/types/css/property-descriptors/border-width.d.ts +1 -1
  163. package/dist/types/css/property-descriptors/box-shadow.d.ts +1 -1
  164. package/dist/types/css/property-descriptors/clip-path.d.ts +1 -1
  165. package/dist/types/css/property-descriptors/color.d.ts +1 -1
  166. package/dist/types/css/property-descriptors/content.d.ts +1 -1
  167. package/dist/types/css/property-descriptors/counter-increment.d.ts +1 -1
  168. package/dist/types/css/property-descriptors/counter-reset.d.ts +1 -1
  169. package/dist/types/css/property-descriptors/direction.d.ts +1 -1
  170. package/dist/types/css/property-descriptors/display.d.ts +1 -1
  171. package/dist/types/css/property-descriptors/duration.d.ts +1 -1
  172. package/dist/types/css/property-descriptors/float.d.ts +1 -1
  173. package/dist/types/css/property-descriptors/font-family.d.ts +1 -1
  174. package/dist/types/css/property-descriptors/font-size.d.ts +1 -1
  175. package/dist/types/css/property-descriptors/font-style.d.ts +1 -1
  176. package/dist/types/css/property-descriptors/font-variant.d.ts +1 -1
  177. package/dist/types/css/property-descriptors/font-weight.d.ts +1 -1
  178. package/dist/types/css/property-descriptors/image-rendering.d.ts +1 -1
  179. package/dist/types/css/property-descriptors/letter-spacing.d.ts +1 -1
  180. package/dist/types/css/property-descriptors/line-break.d.ts +1 -1
  181. package/dist/types/css/property-descriptors/line-height.d.ts +1 -1
  182. package/dist/types/css/property-descriptors/list-style-image.d.ts +1 -1
  183. package/dist/types/css/property-descriptors/list-style-position.d.ts +1 -1
  184. package/dist/types/css/property-descriptors/list-style-type.d.ts +1 -1
  185. package/dist/types/css/property-descriptors/margin.d.ts +1 -1
  186. package/dist/types/css/property-descriptors/mix-blend-mode.d.ts +21 -0
  187. package/dist/types/css/property-descriptors/object-fit.d.ts +1 -1
  188. package/dist/types/css/property-descriptors/opacity.d.ts +1 -1
  189. package/dist/types/css/property-descriptors/overflow-wrap.d.ts +1 -1
  190. package/dist/types/css/property-descriptors/overflow.d.ts +1 -1
  191. package/dist/types/css/property-descriptors/padding.d.ts +1 -1
  192. package/dist/types/css/property-descriptors/paint-order.d.ts +1 -1
  193. package/dist/types/css/property-descriptors/position.d.ts +1 -1
  194. package/dist/types/css/property-descriptors/quotes.d.ts +1 -1
  195. package/dist/types/css/property-descriptors/rotate.d.ts +1 -1
  196. package/dist/types/css/property-descriptors/text-align.d.ts +1 -1
  197. package/dist/types/css/property-descriptors/text-decoration-color.d.ts +1 -1
  198. package/dist/types/css/property-descriptors/text-decoration-line.d.ts +1 -1
  199. package/dist/types/css/property-descriptors/text-decoration-style.d.ts +1 -1
  200. package/dist/types/css/property-descriptors/text-decoration-thickness.d.ts +1 -1
  201. package/dist/types/css/property-descriptors/text-overflow.d.ts +1 -1
  202. package/dist/types/css/property-descriptors/text-shadow.d.ts +1 -1
  203. package/dist/types/css/property-descriptors/text-transform.d.ts +1 -1
  204. package/dist/types/css/property-descriptors/text-underline-offset.d.ts +1 -1
  205. package/dist/types/css/property-descriptors/transform-origin.d.ts +1 -1
  206. package/dist/types/css/property-descriptors/transform.d.ts +1 -1
  207. package/dist/types/css/property-descriptors/visibility.d.ts +1 -1
  208. package/dist/types/css/property-descriptors/webkit-line-clamp.d.ts +1 -1
  209. package/dist/types/css/property-descriptors/webkit-text-stroke-color.d.ts +1 -1
  210. package/dist/types/css/property-descriptors/webkit-text-stroke-width.d.ts +1 -1
  211. package/dist/types/css/property-descriptors/word-break.d.ts +1 -1
  212. package/dist/types/css/property-descriptors/writing-mode.d.ts +11 -0
  213. package/dist/types/css/property-descriptors/z-index.d.ts +1 -1
  214. package/dist/types/css/syntax/tokenizer.d.ts +5 -0
  215. package/dist/types/css/types/angle.d.ts +1 -1
  216. package/dist/types/css/types/color.d.ts +1 -1
  217. package/dist/types/css/types/image.d.ts +1 -1
  218. package/dist/types/css/types/time.d.ts +1 -1
  219. package/dist/types/dom/element-container.d.ts +4 -11
  220. package/dist/types/dom/node-parser.d.ts +2 -15
  221. package/dist/types/dom/node-type-guards.d.ts +21 -22
  222. package/dist/types/index.d.ts +28 -48
  223. package/dist/types/options.d.ts +51 -0
  224. package/dist/types/render/canvas/background-renderer.d.ts +0 -6
  225. package/dist/types/render/canvas/canvas-path.d.ts +3 -0
  226. package/dist/types/render/canvas/canvas-renderer.d.ts +4 -2
  227. package/dist/types/render/canvas/foreignobject-renderer.d.ts +2 -3
  228. package/dist/types/render/canvas/text-renderer.d.ts +8 -1
  229. package/dist/types/render/effects.d.ts +9 -1
  230. package/dist/types/render/object-fit.d.ts +18 -0
  231. package/package.json +43 -35
  232. package/src/__tests__/index.ts +99 -0
  233. package/src/config.ts +107 -0
  234. package/src/core/__mocks__/cache-storage.ts +1 -0
  235. package/src/core/__mocks__/context.ts +19 -0
  236. package/{dist/lib/core/__mocks__/features.js → src/core/__mocks__/features.ts} +1 -5
  237. package/src/core/__mocks__/logger.ts +17 -0
  238. package/{dist/lib/core/__tests__/cache-storage.test.js → src/core/__tests__/cache-storage.test.ts} +95 -48
  239. package/{dist/lib/core/__tests__/cache-storage.js → src/core/__tests__/cache-storage.ts} +117 -64
  240. package/{dist/lib/core/__tests__/logger.js → src/core/__tests__/logger.ts} +10 -8
  241. package/{dist/lib/core/__tests__/validator.js → src/core/__tests__/validator.ts} +161 -98
  242. package/src/core/bitwise.ts +1 -0
  243. package/src/core/cache-storage.ts +315 -0
  244. package/src/core/context.ts +31 -0
  245. package/src/core/debugger.ts +32 -0
  246. package/src/core/features.ts +222 -0
  247. package/src/core/logger.ts +64 -0
  248. package/src/core/origin-checker.ts +57 -0
  249. package/src/core/performance-monitor.ts +241 -0
  250. package/src/core/render-element.ts +272 -0
  251. package/src/core/util.ts +1 -0
  252. package/src/core/validator.ts +593 -0
  253. package/src/css/index.ts +427 -0
  254. package/src/css/layout/__mocks__/bounds.ts +6 -0
  255. package/src/css/layout/bounds.ts +79 -0
  256. package/src/css/layout/text.ts +161 -0
  257. package/src/css/property-descriptor.ts +49 -0
  258. package/src/css/property-descriptors/__tests__/background-tests.ts +65 -0
  259. package/src/css/property-descriptors/__tests__/clip-path.test.ts +280 -0
  260. package/src/css/property-descriptors/__tests__/font-family.ts +25 -0
  261. package/src/css/property-descriptors/__tests__/image-rendering-integration.test.ts +153 -0
  262. package/{dist/lib/css/property-descriptors/__tests__/image-rendering-performance.test.js → src/css/property-descriptors/__tests__/image-rendering-performance.test.ts} +74 -66
  263. package/src/css/property-descriptors/__tests__/image-rendering.test.ts +72 -0
  264. package/src/css/property-descriptors/__tests__/paint-order.ts +87 -0
  265. package/src/css/property-descriptors/__tests__/text-shadow.ts +94 -0
  266. package/src/css/property-descriptors/__tests__/transform-tests.ts +18 -0
  267. package/src/css/property-descriptors/background-clip.ts +30 -0
  268. package/src/css/property-descriptors/background-color.ts +9 -0
  269. package/src/css/property-descriptors/background-image.ts +27 -0
  270. package/src/css/property-descriptors/background-origin.ts +31 -0
  271. package/src/css/property-descriptors/background-position.ts +38 -0
  272. package/src/css/property-descriptors/background-repeat.ts +44 -0
  273. package/src/css/property-descriptors/background-size.ts +27 -0
  274. package/src/css/property-descriptors/border-color.ts +13 -0
  275. package/src/css/property-descriptors/border-radius.ts +19 -0
  276. package/src/css/property-descriptors/border-style.ts +34 -0
  277. package/src/css/property-descriptors/border-width.ts +20 -0
  278. package/src/css/property-descriptors/box-shadow.ts +60 -0
  279. package/src/css/property-descriptors/clip-path.ts +271 -0
  280. package/src/css/property-descriptors/color.ts +9 -0
  281. package/src/css/property-descriptors/content.ts +26 -0
  282. package/src/css/property-descriptors/counter-increment.ts +43 -0
  283. package/src/css/property-descriptors/counter-reset.ts +36 -0
  284. package/src/css/property-descriptors/direction.ts +23 -0
  285. package/src/css/property-descriptors/display.ts +117 -0
  286. package/src/css/property-descriptors/duration.ts +14 -0
  287. package/src/css/property-descriptors/float.ts +29 -0
  288. package/src/css/property-descriptors/font-family.ts +38 -0
  289. package/src/css/property-descriptors/font-size.ts +9 -0
  290. package/src/css/property-descriptors/font-style.ts +25 -0
  291. package/src/css/property-descriptors/font-variant.ts +12 -0
  292. package/src/css/property-descriptors/font-weight.ts +26 -0
  293. package/src/css/property-descriptors/image-rendering.ts +33 -0
  294. package/src/css/property-descriptors/letter-spacing.ts +25 -0
  295. package/src/css/property-descriptors/line-break.ts +22 -0
  296. package/src/css/property-descriptors/line-height.ts +22 -0
  297. package/src/css/property-descriptors/list-style-image.ts +19 -0
  298. package/src/css/property-descriptors/list-style-position.ts +22 -0
  299. package/src/css/property-descriptors/list-style-type.ts +179 -0
  300. package/src/css/property-descriptors/margin.ts +13 -0
  301. package/src/css/property-descriptors/mix-blend-mode.ts +35 -0
  302. package/src/css/property-descriptors/object-fit.ts +39 -0
  303. package/src/css/property-descriptors/opacity.ts +15 -0
  304. package/src/css/property-descriptors/overflow-wrap.ts +22 -0
  305. package/src/css/property-descriptors/overflow.ts +34 -0
  306. package/src/css/property-descriptors/padding.ts +14 -0
  307. package/src/css/property-descriptors/paint-order.ts +42 -0
  308. package/src/css/property-descriptors/position.ts +30 -0
  309. package/src/css/property-descriptors/quotes.ts +57 -0
  310. package/src/css/property-descriptors/rotate.ts +34 -0
  311. package/src/css/property-descriptors/text-align.ts +26 -0
  312. package/src/css/property-descriptors/text-decoration-color.ts +9 -0
  313. package/src/css/property-descriptors/text-decoration-line.ts +38 -0
  314. package/src/css/property-descriptors/text-decoration-style.ts +32 -0
  315. package/src/css/property-descriptors/text-decoration-thickness.ts +30 -0
  316. package/src/css/property-descriptors/text-overflow.ts +23 -0
  317. package/src/css/property-descriptors/text-shadow.ts +52 -0
  318. package/src/css/property-descriptors/text-transform.ts +27 -0
  319. package/src/css/property-descriptors/text-underline-offset.ts +27 -0
  320. package/src/css/property-descriptors/transform-origin.ts +29 -0
  321. package/src/css/property-descriptors/transform.ts +74 -0
  322. package/src/css/property-descriptors/visibility.ts +25 -0
  323. package/src/css/property-descriptors/webkit-line-clamp.ts +30 -0
  324. package/src/css/property-descriptors/webkit-text-stroke-color.ts +8 -0
  325. package/src/css/property-descriptors/webkit-text-stroke-width.ts +15 -0
  326. package/src/css/property-descriptors/word-break.ts +25 -0
  327. package/src/css/property-descriptors/writing-mode.ts +37 -0
  328. package/src/css/property-descriptors/z-index.ts +27 -0
  329. package/src/css/syntax/__tests__/tokernizer-tests.ts +29 -0
  330. package/src/css/syntax/parser.ts +188 -0
  331. package/src/css/syntax/tokenizer.ts +822 -0
  332. package/src/css/type-descriptor.ts +7 -0
  333. package/src/css/types/__tests__/color-tests.ts +147 -0
  334. package/src/css/types/__tests__/image-tests.ts +239 -0
  335. package/src/css/types/angle.ts +86 -0
  336. package/src/css/types/color-math.ts +22 -0
  337. package/src/css/types/color-spaces/a98.ts +86 -0
  338. package/src/css/types/color-spaces/p3.ts +92 -0
  339. package/src/css/types/color-spaces/pro-photo.ts +87 -0
  340. package/src/css/types/color-spaces/rec2020.ts +90 -0
  341. package/src/css/types/color-spaces/srgb.ts +87 -0
  342. package/src/css/types/color-utilities.ts +452 -0
  343. package/src/css/types/color.ts +485 -0
  344. package/src/css/types/functions/-prefix-linear-gradient.ts +35 -0
  345. package/src/css/types/functions/-prefix-radial-gradient.ts +106 -0
  346. package/src/css/types/functions/-webkit-gradient.ts +69 -0
  347. package/src/css/types/functions/__tests__/radial-gradient.ts +69 -0
  348. package/src/css/types/functions/counter.ts +511 -0
  349. package/src/css/types/functions/gradient.ts +206 -0
  350. package/src/css/types/functions/linear-gradient.ts +28 -0
  351. package/src/css/types/functions/radial-gradient.ts +101 -0
  352. package/src/css/types/image.ts +120 -0
  353. package/src/css/types/index.ts +1 -0
  354. package/src/css/types/length-percentage.ts +137 -0
  355. package/src/css/types/length.ts +7 -0
  356. package/src/css/types/time.ts +20 -0
  357. package/src/dom/__mocks__/document-cloner.ts +22 -0
  358. package/{dist/lib/dom/__tests__/dom-normalizer.test.js → src/dom/__tests__/dom-normalizer.test.ts} +64 -44
  359. package/src/dom/__tests__/element-container.test.ts +129 -0
  360. package/src/dom/document-cloner.ts +929 -0
  361. package/src/dom/dom-normalizer.ts +133 -0
  362. package/src/dom/element-container.ts +75 -0
  363. package/src/dom/elements/li-element-container.ts +10 -0
  364. package/src/dom/elements/ol-element-container.ts +12 -0
  365. package/src/dom/elements/select-element-container.ts +10 -0
  366. package/src/dom/elements/textarea-element-container.ts +9 -0
  367. package/src/dom/node-parser.ts +177 -0
  368. package/src/dom/node-type-guards.ts +70 -0
  369. package/src/dom/replaced-elements/canvas-element-container.ts +15 -0
  370. package/src/dom/replaced-elements/iframe-element-container.ts +55 -0
  371. package/src/dom/replaced-elements/image-element-container.ts +16 -0
  372. package/src/dom/replaced-elements/index.ts +5 -0
  373. package/src/dom/replaced-elements/input-element-container.ts +105 -0
  374. package/src/dom/replaced-elements/pseudo-elements.ts +0 -0
  375. package/src/dom/replaced-elements/svg-element-container.ts +23 -0
  376. package/src/dom/text-container.ts +42 -0
  377. package/src/global.d.ts +19 -0
  378. package/src/index.ts +82 -0
  379. package/src/invariant.ts +5 -0
  380. package/src/options.ts +55 -0
  381. package/src/render/__tests__/object-fit.test.ts +85 -0
  382. package/src/render/background.ts +298 -0
  383. package/src/render/bezier-curve.ts +47 -0
  384. package/src/render/border.ts +165 -0
  385. package/src/render/bound-curves.ts +388 -0
  386. package/src/render/box-sizing.ts +31 -0
  387. package/{dist/lib/render/canvas/__tests__/background-renderer.test.js → src/render/canvas/__tests__/background-renderer.test.ts} +32 -25
  388. package/src/render/canvas/__tests__/border-renderer.test.ts +24 -0
  389. package/src/render/canvas/__tests__/effects-renderer.test.ts +32 -0
  390. package/src/render/canvas/__tests__/text-renderer.test.ts +471 -0
  391. package/src/render/canvas/background-renderer.ts +271 -0
  392. package/src/render/canvas/border-renderer.ts +224 -0
  393. package/src/render/canvas/canvas-path.ts +31 -0
  394. package/src/render/canvas/canvas-renderer.ts +641 -0
  395. package/src/render/canvas/effects-renderer.ts +130 -0
  396. package/src/render/canvas/foreignobject-renderer.ts +53 -0
  397. package/src/render/canvas/text-renderer.ts +700 -0
  398. package/src/render/effects.ts +75 -0
  399. package/src/render/font-metrics.ts +72 -0
  400. package/src/render/object-fit.ts +100 -0
  401. package/src/render/path.ts +37 -0
  402. package/src/render/renderer-interface.ts +28 -0
  403. package/src/render/stacking-context.ts +386 -0
  404. package/src/render/vector.ts +19 -0
  405. package/demo/image-smoothing-demo.html +0 -256
  406. package/demo/refactoring-test.html +0 -602
  407. package/dist/lib/__tests__/index.js +0 -85
  408. package/dist/lib/__tests__/index.js.map +0 -1
  409. package/dist/lib/config.js.map +0 -1
  410. package/dist/lib/core/__mocks__/cache-storage.js +0 -7
  411. package/dist/lib/core/__mocks__/cache-storage.js.map +0 -1
  412. package/dist/lib/core/__mocks__/context.js +0 -19
  413. package/dist/lib/core/__mocks__/context.js.map +0 -1
  414. package/dist/lib/core/__mocks__/features.js.map +0 -1
  415. package/dist/lib/core/__mocks__/logger.js +0 -16
  416. package/dist/lib/core/__mocks__/logger.js.map +0 -1
  417. package/dist/lib/core/__tests__/cache-storage.js.map +0 -1
  418. package/dist/lib/core/__tests__/cache-storage.test.js.map +0 -1
  419. package/dist/lib/core/__tests__/logger.js.map +0 -1
  420. package/dist/lib/core/__tests__/validator.js.map +0 -1
  421. package/dist/lib/core/bitwise.js.map +0 -1
  422. package/dist/lib/core/cache-storage.js.map +0 -1
  423. package/dist/lib/core/context.js.map +0 -1
  424. package/dist/lib/core/debugger.js.map +0 -1
  425. package/dist/lib/core/features.js.map +0 -1
  426. package/dist/lib/core/logger.js.map +0 -1
  427. package/dist/lib/core/origin-checker.js.map +0 -1
  428. package/dist/lib/core/performance-monitor.js.map +0 -1
  429. package/dist/lib/core/util.js.map +0 -1
  430. package/dist/lib/core/validator.js.map +0 -1
  431. package/dist/lib/css/IPropertyDescriptor.js.map +0 -1
  432. package/dist/lib/css/ITypeDescriptor.js.map +0 -1
  433. package/dist/lib/css/index.js.map +0 -1
  434. package/dist/lib/css/layout/__mocks__/bounds.js +0 -9
  435. package/dist/lib/css/layout/__mocks__/bounds.js.map +0 -1
  436. package/dist/lib/css/layout/bounds.js.map +0 -1
  437. package/dist/lib/css/layout/text.js.map +0 -1
  438. package/dist/lib/css/property-descriptors/__tests__/background-tests.js +0 -49
  439. package/dist/lib/css/property-descriptors/__tests__/background-tests.js.map +0 -1
  440. package/dist/lib/css/property-descriptors/__tests__/clip-path.test.js +0 -273
  441. package/dist/lib/css/property-descriptors/__tests__/clip-path.test.js.map +0 -1
  442. package/dist/lib/css/property-descriptors/__tests__/font-family.js +0 -19
  443. package/dist/lib/css/property-descriptors/__tests__/font-family.js.map +0 -1
  444. package/dist/lib/css/property-descriptors/__tests__/image-rendering-integration.test.js +0 -143
  445. package/dist/lib/css/property-descriptors/__tests__/image-rendering-integration.test.js.map +0 -1
  446. package/dist/lib/css/property-descriptors/__tests__/image-rendering-performance.test.js.map +0 -1
  447. package/dist/lib/css/property-descriptors/__tests__/image-rendering.test.js +0 -61
  448. package/dist/lib/css/property-descriptors/__tests__/image-rendering.test.js.map +0 -1
  449. package/dist/lib/css/property-descriptors/__tests__/paint-order.js +0 -66
  450. package/dist/lib/css/property-descriptors/__tests__/paint-order.js.map +0 -1
  451. package/dist/lib/css/property-descriptors/__tests__/text-shadow.js +0 -82
  452. package/dist/lib/css/property-descriptors/__tests__/text-shadow.js.map +0 -1
  453. package/dist/lib/css/property-descriptors/__tests__/transform-tests.js +0 -14
  454. package/dist/lib/css/property-descriptors/__tests__/transform-tests.js.map +0 -1
  455. package/dist/lib/css/property-descriptors/background-clip.js.map +0 -1
  456. package/dist/lib/css/property-descriptors/background-color.js.map +0 -1
  457. package/dist/lib/css/property-descriptors/background-image.js.map +0 -1
  458. package/dist/lib/css/property-descriptors/background-origin.js.map +0 -1
  459. package/dist/lib/css/property-descriptors/background-position.js.map +0 -1
  460. package/dist/lib/css/property-descriptors/background-repeat.js.map +0 -1
  461. package/dist/lib/css/property-descriptors/background-size.js.map +0 -1
  462. package/dist/lib/css/property-descriptors/border-color.js.map +0 -1
  463. package/dist/lib/css/property-descriptors/border-radius.js.map +0 -1
  464. package/dist/lib/css/property-descriptors/border-style.js.map +0 -1
  465. package/dist/lib/css/property-descriptors/border-width.js.map +0 -1
  466. package/dist/lib/css/property-descriptors/box-shadow.js.map +0 -1
  467. package/dist/lib/css/property-descriptors/clip-path.js.map +0 -1
  468. package/dist/lib/css/property-descriptors/color.js.map +0 -1
  469. package/dist/lib/css/property-descriptors/content.js.map +0 -1
  470. package/dist/lib/css/property-descriptors/counter-increment.js.map +0 -1
  471. package/dist/lib/css/property-descriptors/counter-reset.js.map +0 -1
  472. package/dist/lib/css/property-descriptors/direction.js.map +0 -1
  473. package/dist/lib/css/property-descriptors/display.js.map +0 -1
  474. package/dist/lib/css/property-descriptors/duration.js.map +0 -1
  475. package/dist/lib/css/property-descriptors/float.js.map +0 -1
  476. package/dist/lib/css/property-descriptors/font-family.js.map +0 -1
  477. package/dist/lib/css/property-descriptors/font-size.js.map +0 -1
  478. package/dist/lib/css/property-descriptors/font-style.js.map +0 -1
  479. package/dist/lib/css/property-descriptors/font-variant.js.map +0 -1
  480. package/dist/lib/css/property-descriptors/font-weight.js.map +0 -1
  481. package/dist/lib/css/property-descriptors/image-rendering.js.map +0 -1
  482. package/dist/lib/css/property-descriptors/letter-spacing.js.map +0 -1
  483. package/dist/lib/css/property-descriptors/line-break.js.map +0 -1
  484. package/dist/lib/css/property-descriptors/line-height.js.map +0 -1
  485. package/dist/lib/css/property-descriptors/list-style-image.js.map +0 -1
  486. package/dist/lib/css/property-descriptors/list-style-position.js.map +0 -1
  487. package/dist/lib/css/property-descriptors/list-style-type.js.map +0 -1
  488. package/dist/lib/css/property-descriptors/margin.js.map +0 -1
  489. package/dist/lib/css/property-descriptors/object-fit.js.map +0 -1
  490. package/dist/lib/css/property-descriptors/opacity.js.map +0 -1
  491. package/dist/lib/css/property-descriptors/overflow-wrap.js.map +0 -1
  492. package/dist/lib/css/property-descriptors/overflow.js.map +0 -1
  493. package/dist/lib/css/property-descriptors/padding.js.map +0 -1
  494. package/dist/lib/css/property-descriptors/paint-order.js.map +0 -1
  495. package/dist/lib/css/property-descriptors/position.js.map +0 -1
  496. package/dist/lib/css/property-descriptors/quotes.js.map +0 -1
  497. package/dist/lib/css/property-descriptors/rotate.js.map +0 -1
  498. package/dist/lib/css/property-descriptors/text-align.js.map +0 -1
  499. package/dist/lib/css/property-descriptors/text-decoration-color.js.map +0 -1
  500. package/dist/lib/css/property-descriptors/text-decoration-line.js.map +0 -1
  501. package/dist/lib/css/property-descriptors/text-decoration-style.js.map +0 -1
  502. package/dist/lib/css/property-descriptors/text-decoration-thickness.js.map +0 -1
  503. package/dist/lib/css/property-descriptors/text-overflow.js.map +0 -1
  504. package/dist/lib/css/property-descriptors/text-shadow.js.map +0 -1
  505. package/dist/lib/css/property-descriptors/text-transform.js.map +0 -1
  506. package/dist/lib/css/property-descriptors/text-underline-offset.js.map +0 -1
  507. package/dist/lib/css/property-descriptors/transform-origin.js.map +0 -1
  508. package/dist/lib/css/property-descriptors/transform.js.map +0 -1
  509. package/dist/lib/css/property-descriptors/visibility.js.map +0 -1
  510. package/dist/lib/css/property-descriptors/webkit-line-clamp.js.map +0 -1
  511. package/dist/lib/css/property-descriptors/webkit-text-stroke-color.js.map +0 -1
  512. package/dist/lib/css/property-descriptors/webkit-text-stroke-width.js.map +0 -1
  513. package/dist/lib/css/property-descriptors/word-break.js.map +0 -1
  514. package/dist/lib/css/property-descriptors/z-index.js.map +0 -1
  515. package/dist/lib/css/syntax/__tests__/tokernizer-tests.js +0 -26
  516. package/dist/lib/css/syntax/__tests__/tokernizer-tests.js.map +0 -1
  517. package/dist/lib/css/syntax/parser.js.map +0 -1
  518. package/dist/lib/css/syntax/tokenizer.js.map +0 -1
  519. package/dist/lib/css/types/__tests__/color-tests.js +0 -111
  520. package/dist/lib/css/types/__tests__/color-tests.js.map +0 -1
  521. package/dist/lib/css/types/__tests__/image-tests.js +0 -215
  522. package/dist/lib/css/types/__tests__/image-tests.js.map +0 -1
  523. package/dist/lib/css/types/angle.js.map +0 -1
  524. package/dist/lib/css/types/color-math.js.map +0 -1
  525. package/dist/lib/css/types/color-spaces/a98.js.map +0 -1
  526. package/dist/lib/css/types/color-spaces/p3.js.map +0 -1
  527. package/dist/lib/css/types/color-spaces/pro-photo.js.map +0 -1
  528. package/dist/lib/css/types/color-spaces/rec2020.js.map +0 -1
  529. package/dist/lib/css/types/color-spaces/srgb.js.map +0 -1
  530. package/dist/lib/css/types/color-utilities.js.map +0 -1
  531. package/dist/lib/css/types/color.js.map +0 -1
  532. package/dist/lib/css/types/functions/-prefix-linear-gradient.js.map +0 -1
  533. package/dist/lib/css/types/functions/-prefix-radial-gradient.js.map +0 -1
  534. package/dist/lib/css/types/functions/-webkit-gradient.js.map +0 -1
  535. package/dist/lib/css/types/functions/__tests__/radial-gradient.js +0 -63
  536. package/dist/lib/css/types/functions/__tests__/radial-gradient.js.map +0 -1
  537. package/dist/lib/css/types/functions/counter.js.map +0 -1
  538. package/dist/lib/css/types/functions/gradient.js.map +0 -1
  539. package/dist/lib/css/types/functions/linear-gradient.js.map +0 -1
  540. package/dist/lib/css/types/functions/radial-gradient.js.map +0 -1
  541. package/dist/lib/css/types/image.js.map +0 -1
  542. package/dist/lib/css/types/index.js.map +0 -1
  543. package/dist/lib/css/types/length-percentage.js.map +0 -1
  544. package/dist/lib/css/types/length.js.map +0 -1
  545. package/dist/lib/css/types/time.js.map +0 -1
  546. package/dist/lib/dom/__mocks__/document-cloner.js +0 -23
  547. package/dist/lib/dom/__mocks__/document-cloner.js.map +0 -1
  548. package/dist/lib/dom/__tests__/dom-normalizer.test.js.map +0 -1
  549. package/dist/lib/dom/__tests__/element-container.test.js +0 -109
  550. package/dist/lib/dom/__tests__/element-container.test.js.map +0 -1
  551. package/dist/lib/dom/document-cloner.js.map +0 -1
  552. package/dist/lib/dom/dom-normalizer.js.map +0 -1
  553. package/dist/lib/dom/element-container.js.map +0 -1
  554. package/dist/lib/dom/elements/li-element-container.js.map +0 -1
  555. package/dist/lib/dom/elements/ol-element-container.js.map +0 -1
  556. package/dist/lib/dom/elements/select-element-container.js.map +0 -1
  557. package/dist/lib/dom/elements/textarea-element-container.js.map +0 -1
  558. package/dist/lib/dom/node-parser.js.map +0 -1
  559. package/dist/lib/dom/node-type-guards.js.map +0 -1
  560. package/dist/lib/dom/replaced-elements/canvas-element-container.js.map +0 -1
  561. package/dist/lib/dom/replaced-elements/iframe-element-container.js.map +0 -1
  562. package/dist/lib/dom/replaced-elements/image-element-container.js.map +0 -1
  563. package/dist/lib/dom/replaced-elements/index.js.map +0 -1
  564. package/dist/lib/dom/replaced-elements/input-element-container.js.map +0 -1
  565. package/dist/lib/dom/replaced-elements/pseudo-elements.js.map +0 -1
  566. package/dist/lib/dom/replaced-elements/svg-element-container.js.map +0 -1
  567. package/dist/lib/dom/text-container.js.map +0 -1
  568. package/dist/lib/index.js.map +0 -1
  569. package/dist/lib/invariant.js.map +0 -1
  570. package/dist/lib/render/background.js.map +0 -1
  571. package/dist/lib/render/bezier-curve.js.map +0 -1
  572. package/dist/lib/render/border.js.map +0 -1
  573. package/dist/lib/render/bound-curves.js.map +0 -1
  574. package/dist/lib/render/box-sizing.js.map +0 -1
  575. package/dist/lib/render/canvas/__tests__/background-renderer.test.js.map +0 -1
  576. package/dist/lib/render/canvas/__tests__/border-renderer.test.js +0 -23
  577. package/dist/lib/render/canvas/__tests__/border-renderer.test.js.map +0 -1
  578. package/dist/lib/render/canvas/__tests__/effects-renderer.test.js +0 -30
  579. package/dist/lib/render/canvas/__tests__/effects-renderer.test.js.map +0 -1
  580. package/dist/lib/render/canvas/__tests__/text-renderer.test.js +0 -310
  581. package/dist/lib/render/canvas/__tests__/text-renderer.test.js.map +0 -1
  582. package/dist/lib/render/canvas/background-renderer.js.map +0 -1
  583. package/dist/lib/render/canvas/border-renderer.js.map +0 -1
  584. package/dist/lib/render/canvas/canvas-renderer.js.map +0 -1
  585. package/dist/lib/render/canvas/effects-renderer.js.map +0 -1
  586. package/dist/lib/render/canvas/foreignobject-renderer.js.map +0 -1
  587. package/dist/lib/render/canvas/text-renderer.js.map +0 -1
  588. package/dist/lib/render/effects.js.map +0 -1
  589. package/dist/lib/render/font-metrics.js.map +0 -1
  590. package/dist/lib/render/path.js.map +0 -1
  591. package/dist/lib/render/renderer-interface.js.map +0 -1
  592. package/dist/lib/render/renderer.js +0 -11
  593. package/dist/lib/render/renderer.js.map +0 -1
  594. package/dist/lib/render/stacking-context.js.map +0 -1
  595. package/dist/lib/render/vector.js.map +0 -1
  596. package/dist/types/__tests__/index.d.ts +0 -1
  597. package/dist/types/core/__mocks__/cache-storage.d.ts +0 -2
  598. package/dist/types/core/__mocks__/context.d.ts +0 -9
  599. package/dist/types/core/__mocks__/features.d.ts +0 -8
  600. package/dist/types/core/__mocks__/logger.d.ts +0 -9
  601. package/dist/types/core/__tests__/cache-storage.d.ts +0 -1
  602. package/dist/types/core/__tests__/cache-storage.test.d.ts +0 -1
  603. package/dist/types/core/__tests__/logger.d.ts +0 -1
  604. package/dist/types/core/__tests__/validator.d.ts +0 -1
  605. package/dist/types/css/layout/__mocks__/bounds.d.ts +0 -2
  606. package/dist/types/css/property-descriptors/__tests__/background-tests.d.ts +0 -1
  607. package/dist/types/css/property-descriptors/__tests__/clip-path.test.d.ts +0 -1
  608. package/dist/types/css/property-descriptors/__tests__/font-family.d.ts +0 -1
  609. package/dist/types/css/property-descriptors/__tests__/image-rendering-integration.test.d.ts +0 -1
  610. package/dist/types/css/property-descriptors/__tests__/image-rendering-performance.test.d.ts +0 -1
  611. package/dist/types/css/property-descriptors/__tests__/image-rendering.test.d.ts +0 -1
  612. package/dist/types/css/property-descriptors/__tests__/paint-order.d.ts +0 -1
  613. package/dist/types/css/property-descriptors/__tests__/text-shadow.d.ts +0 -1
  614. package/dist/types/css/property-descriptors/__tests__/transform-tests.d.ts +0 -1
  615. package/dist/types/css/syntax/__tests__/tokernizer-tests.d.ts +0 -1
  616. package/dist/types/css/types/__tests__/color-tests.d.ts +0 -1
  617. package/dist/types/css/types/__tests__/image-tests.d.ts +0 -1
  618. package/dist/types/css/types/functions/__tests__/radial-gradient.d.ts +0 -1
  619. package/dist/types/dom/__mocks__/document-cloner.d.ts +0 -6
  620. package/dist/types/dom/__tests__/dom-normalizer.test.d.ts +0 -1
  621. package/dist/types/dom/__tests__/element-container.test.d.ts +0 -1
  622. package/dist/types/render/canvas/__tests__/background-renderer.test.d.ts +0 -1
  623. package/dist/types/render/canvas/__tests__/border-renderer.test.d.ts +0 -1
  624. package/dist/types/render/canvas/__tests__/effects-renderer.test.d.ts +0 -1
  625. package/dist/types/render/canvas/__tests__/text-renderer.test.d.ts +0 -1
  626. package/dist/types/render/renderer.d.ts +0 -7
  627. package/eslint.config.js +0 -35
  628. package/jest.config.cjs +0 -5
  629. package/karma.conf.cjs +0 -300
  630. /package/dist/types/css/{IPropertyDescriptor.d.ts → property-descriptor.d.ts} +0 -0
  631. /package/dist/types/css/{ITypeDescriptor.d.ts → type-descriptor.d.ts} +0 -0
@@ -1,4 +1,4 @@
1
- import { IPropertyIdentValueDescriptor } from '../IPropertyDescriptor';
1
+ import { IPropertyIdentValueDescriptor } from '../property-descriptor';
2
2
  export declare const enum TEXT_ALIGN {
3
3
  LEFT = 0,
4
4
  CENTER = 1,
@@ -1,2 +1,2 @@
1
- import { IPropertyTypeValueDescriptor } from '../IPropertyDescriptor';
1
+ import { IPropertyTypeValueDescriptor } from '../property-descriptor';
2
2
  export declare const textDecorationColor: IPropertyTypeValueDescriptor;
@@ -1,4 +1,4 @@
1
- import { IPropertyListDescriptor } from '../IPropertyDescriptor';
1
+ import { IPropertyListDescriptor } from '../property-descriptor';
2
2
  export declare const enum TEXT_DECORATION_LINE {
3
3
  NONE = 0,
4
4
  UNDERLINE = 1,
@@ -1,4 +1,4 @@
1
- import { IPropertyIdentValueDescriptor } from '../IPropertyDescriptor';
1
+ import { IPropertyIdentValueDescriptor } from '../property-descriptor';
2
2
  export declare const enum TEXT_DECORATION_STYLE {
3
3
  SOLID = 0,
4
4
  DOUBLE = 1,
@@ -1,3 +1,3 @@
1
- import { IPropertyValueDescriptor } from '../IPropertyDescriptor';
1
+ import { IPropertyValueDescriptor } from '../property-descriptor';
2
2
  export type TextDecorationThickness = number | 'auto' | 'from-font';
3
3
  export declare const textDecorationThickness: IPropertyValueDescriptor<TextDecorationThickness>;
@@ -1,4 +1,4 @@
1
- import { IPropertyIdentValueDescriptor } from '../IPropertyDescriptor';
1
+ import { IPropertyIdentValueDescriptor } from '../property-descriptor';
2
2
  export declare const enum TEXT_OVERFLOW {
3
3
  CLIP = 0,
4
4
  ELLIPSIS = 1
@@ -1,4 +1,4 @@
1
- import { IPropertyListDescriptor } from '../IPropertyDescriptor';
1
+ import { IPropertyListDescriptor } from '../property-descriptor';
2
2
  import { Color } from '../types/color';
3
3
  import { Length } from '../types/length';
4
4
  export type TextShadow = TextShadowItem[];
@@ -1,4 +1,4 @@
1
- import { IPropertyIdentValueDescriptor } from '../IPropertyDescriptor';
1
+ import { IPropertyIdentValueDescriptor } from '../property-descriptor';
2
2
  export declare const enum TEXT_TRANSFORM {
3
3
  NONE = 0,
4
4
  LOWERCASE = 1,
@@ -1,3 +1,3 @@
1
- import { IPropertyValueDescriptor } from '../IPropertyDescriptor';
1
+ import { IPropertyValueDescriptor } from '../property-descriptor';
2
2
  export type TextUnderlineOffset = number | 'auto';
3
3
  export declare const textUnderlineOffset: IPropertyValueDescriptor<TextUnderlineOffset>;
@@ -1,4 +1,4 @@
1
- import { IPropertyListDescriptor } from '../IPropertyDescriptor';
1
+ import { IPropertyListDescriptor } from '../property-descriptor';
2
2
  import { LengthPercentage } from '../types/length-percentage';
3
3
  export type TransformOrigin = [LengthPercentage, LengthPercentage];
4
4
  export declare const transformOrigin: IPropertyListDescriptor<TransformOrigin>;
@@ -1,4 +1,4 @@
1
- import { IPropertyValueDescriptor } from '../IPropertyDescriptor';
1
+ import { IPropertyValueDescriptor } from '../property-descriptor';
2
2
  export type Matrix = [number, number, number, number, number, number];
3
3
  export type Transform = Matrix | null;
4
4
  export declare const transform: IPropertyValueDescriptor<Transform>;
@@ -1,4 +1,4 @@
1
- import { IPropertyIdentValueDescriptor } from '../IPropertyDescriptor';
1
+ import { IPropertyIdentValueDescriptor } from '../property-descriptor';
2
2
  export declare const enum VISIBILITY {
3
3
  VISIBLE = 0,
4
4
  HIDDEN = 1,
@@ -1,4 +1,4 @@
1
- import { IPropertyValueDescriptor } from '../IPropertyDescriptor';
1
+ import { IPropertyValueDescriptor } from '../property-descriptor';
2
2
  /**
3
3
  * -webkit-line-clamp property descriptor
4
4
  * Used with display: -webkit-box and -webkit-box-orient: vertical
@@ -1,2 +1,2 @@
1
- import { IPropertyTypeValueDescriptor } from '../IPropertyDescriptor';
1
+ import { IPropertyTypeValueDescriptor } from '../property-descriptor';
2
2
  export declare const webkitTextStrokeColor: IPropertyTypeValueDescriptor;
@@ -1,2 +1,2 @@
1
- import { IPropertyValueDescriptor } from '../IPropertyDescriptor';
1
+ import { IPropertyValueDescriptor } from '../property-descriptor';
2
2
  export declare const webkitTextStrokeWidth: IPropertyValueDescriptor<number>;
@@ -1,4 +1,4 @@
1
- import { IPropertyIdentValueDescriptor } from '../IPropertyDescriptor';
1
+ import { IPropertyIdentValueDescriptor } from '../property-descriptor';
2
2
  export declare enum WORD_BREAK {
3
3
  NORMAL = "normal",
4
4
  BREAK_ALL = "break-all",
@@ -0,0 +1,11 @@
1
+ import { IPropertyIdentValueDescriptor } from '../property-descriptor';
2
+ export declare const enum WRITING_MODE {
3
+ HORIZONTAL_TB = 0,
4
+ VERTICAL_RL = 1,
5
+ VERTICAL_LR = 2,
6
+ SIDEWAYS_RL = 3,
7
+ SIDEWAYS_LR = 4
8
+ }
9
+ export declare const isVerticalWritingMode: (writingMode: WRITING_MODE) => boolean;
10
+ export declare const isSidewaysWritingMode: (writingMode: WRITING_MODE) => boolean;
11
+ export declare const writingMode: IPropertyIdentValueDescriptor<WRITING_MODE>;
@@ -1,4 +1,4 @@
1
- import { IPropertyValueDescriptor } from '../IPropertyDescriptor';
1
+ import { IPropertyValueDescriptor } from '../property-descriptor';
2
2
  interface zIndex {
3
3
  order: number;
4
4
  auto: boolean;
@@ -71,8 +71,13 @@ export declare const FLAG_INTEGER: number;
71
71
  export declare const FLAG_NUMBER: number;
72
72
  export declare const EOF_TOKEN: Token;
73
73
  export declare class Tokenizer {
74
+ private static _pool;
75
+ private static readonly MAX_POOL_SIZE;
76
+ static get(): Tokenizer;
77
+ static release(tokenizer: Tokenizer): void;
74
78
  private _value;
75
79
  constructor();
80
+ private _reset;
76
81
  write(chunk: string): void;
77
82
  read(): CSSToken[];
78
83
  private consumeToken;
@@ -1,5 +1,5 @@
1
1
  import { CSSValue } from '../syntax/parser';
2
- import { ITypeDescriptor } from '../ITypeDescriptor';
2
+ import { ITypeDescriptor } from '../type-descriptor';
3
3
  import { GradientCorner } from './image';
4
4
  export declare const angle: ITypeDescriptor<number>;
5
5
  export declare const isAngle: (value: CSSValue) => boolean;
@@ -1,4 +1,4 @@
1
- import { ITypeDescriptor } from '../ITypeDescriptor';
1
+ import { ITypeDescriptor } from '../type-descriptor';
2
2
  import { Context } from '../../core/context';
3
3
  export type Color = number;
4
4
  export declare const color: ITypeDescriptor<Color>;
@@ -1,6 +1,6 @@
1
1
  import { CSSValue } from '../syntax/parser';
2
2
  import { Color } from './color';
3
- import { ITypeDescriptor } from '../ITypeDescriptor';
3
+ import { ITypeDescriptor } from '../type-descriptor';
4
4
  import { LengthPercentage } from './length-percentage';
5
5
  export declare const enum CSSImageType {
6
6
  URL = 0,
@@ -1,2 +1,2 @@
1
- import { ITypeDescriptor } from '../ITypeDescriptor';
1
+ import { ITypeDescriptor } from '../type-descriptor';
2
2
  export declare const time: ITypeDescriptor<number>;
@@ -2,17 +2,7 @@ import { CSSParsedDeclaration } from '../css/index';
2
2
  import { TextContainer } from './text-container';
3
3
  import { Bounds } from '../css/layout/bounds';
4
4
  import { Context } from '../core/context';
5
- export declare const enum FLAGS {
6
- CREATES_STACKING_CONTEXT = 2,
7
- CREATES_REAL_STACKING_CONTEXT = 4,
8
- IS_LIST_OWNER = 8,
9
- DEBUG_RENDER = 16
10
- }
11
5
  export interface ElementContainerOptions {
12
- /**
13
- * Whether to normalize DOM (disable animations, reset transforms)
14
- * Default: true for backward compatibility
15
- */
16
6
  normalizeDom?: boolean;
17
7
  }
18
8
  export declare class ElementContainer {
@@ -21,7 +11,10 @@ export declare class ElementContainer {
21
11
  readonly textNodes: TextContainer[];
22
12
  readonly elements: ElementContainer[];
23
13
  bounds: Bounds;
24
- flags: number;
14
+ createsStackingContext: boolean;
15
+ createsRealStackingContext: boolean;
16
+ isListOwner: boolean;
17
+ debugRender: boolean;
25
18
  private originalStyles?;
26
19
  private originalElement?;
27
20
  constructor(context: Context, element: Element, options?: ElementContainerOptions);
@@ -1,18 +1,5 @@
1
1
  import { ElementContainer } from './element-container';
2
2
  import { Context } from '../core/context';
3
- import { isElementNode, isTextNode, isSVGElementNode, isHTMLElementNode, isLIElement, isOLElement, isCustomElement } from './node-type-guards';
4
- export { isElementNode, isTextNode, isSVGElementNode, isHTMLElementNode, isLIElement, isOLElement, isCustomElement };
3
+ import { isBodyElement, isCanvasElement, isCustomElement, isElementNode, isHTMLElement, isHTMLElementNode, isIFrameElement, isImageElement, isInputElement, isLIElement, isOLElement, isScriptElement, isSelectElement, isSlotElement, isStyleElement, isSVGElement, isSVGElementNode, isTextareaElement, isTextNode, isVideoElement } from './node-type-guards';
4
+ export { isBodyElement, isCanvasElement, isCustomElement, isElementNode, isHTMLElement, isHTMLElementNode, isIFrameElement, isImageElement, isInputElement, isLIElement, isOLElement, isScriptElement, isSelectElement, isSlotElement, isStyleElement, isSVGElement, isSVGElementNode, isTextareaElement, isTextNode, isVideoElement };
5
5
  export declare const parseTree: (context: Context, element: HTMLElement) => ElementContainer;
6
- export declare const isInputElement: (node: Element) => node is HTMLInputElement;
7
- export declare const isHTMLElement: (node: Element) => node is HTMLHtmlElement;
8
- export declare const isSVGElement: (node: Element) => node is SVGSVGElement;
9
- export declare const isBodyElement: (node: Element) => node is HTMLBodyElement;
10
- export declare const isCanvasElement: (node: Element) => node is HTMLCanvasElement;
11
- export declare const isVideoElement: (node: Element) => node is HTMLVideoElement;
12
- export declare const isImageElement: (node: Element) => node is HTMLImageElement;
13
- export declare const isIFrameElement: (node: Element) => node is HTMLIFrameElement;
14
- export declare const isStyleElement: (node: Element) => node is HTMLStyleElement;
15
- export declare const isScriptElement: (node: Element) => node is HTMLScriptElement;
16
- export declare const isTextareaElement: (node: Element) => node is HTMLTextAreaElement;
17
- export declare const isSelectElement: (node: Element) => node is HTMLSelectElement;
18
- export declare const isSlotElement: (node: Element) => node is HTMLSlotElement;
@@ -1,33 +1,32 @@
1
1
  /**
2
2
  * DOM Node Type Guards
3
- * Extracted to break circular dependencies
4
- */
5
- /**
6
- * Check if node is an Element
3
+ *
4
+ * All DOM node type guards consolidated here to eliminate duplication
5
+ * and provide a single source of truth for node type checking.
7
6
  */
8
7
  export declare const isElementNode: (node: Node) => node is Element;
9
- /**
10
- * Check if node is a Text node
11
- */
12
8
  export declare const isTextNode: (node: Node) => node is Text;
13
- /**
14
- * Check if element is an SVG element
15
- */
16
9
  export declare const isSVGElementNode: (element: Element) => element is SVGElement;
17
- /**
18
- * Check if node is an HTML element
19
- */
20
10
  export declare const isHTMLElementNode: (node: Node) => node is HTMLElement;
21
- /**
22
- * Check if node is an LI element
23
- */
11
+ export declare const isInputElement: (node: Element) => node is HTMLInputElement;
12
+ export declare const isHTMLElement: (node: Element) => node is HTMLHtmlElement;
13
+ export declare const isSVGElement: (node: Element) => node is SVGSVGElement;
14
+ export declare const isBodyElement: (node: Element) => node is HTMLBodyElement;
15
+ export declare const isCanvasElement: (node: Element) => node is HTMLCanvasElement;
16
+ export declare const isVideoElement: (node: Element) => node is HTMLVideoElement;
17
+ export declare const isImageElement: (node: Element) => node is HTMLImageElement;
18
+ export declare const isIFrameElement: (node: Element) => node is HTMLIFrameElement;
19
+ export declare const isStyleElement: (node: Element) => node is HTMLStyleElement;
20
+ export declare const isScriptElement: (node: Element) => node is HTMLScriptElement;
21
+ export declare const isTextareaElement: (node: Element) => node is HTMLTextAreaElement;
22
+ export declare const isSelectElement: (node: Element) => node is HTMLSelectElement;
23
+ export declare const isSlotElement: (node: Element) => node is HTMLSlotElement;
24
24
  export declare const isLIElement: (node: Element) => node is HTMLLIElement;
25
- /**
26
- * Check if node is an OL element
27
- */
28
25
  export declare const isOLElement: (node: Element) => node is HTMLOListElement;
26
+ export declare const isCustomElement: (element: Element) => element is HTMLElement;
29
27
  /**
30
- * Check if element is a custom element
31
- * Custom elements must have a hyphen and cannot be SVG elements
28
+ * Check if an element can have ::before / ::after pseudo-elements.
29
+ * Per the CSS spec, replaced elements and void elements cannot have pseudo-elements.
30
+ * SVG elements also do not support pseudo-elements.
32
31
  */
33
- export declare const isCustomElement: (element: Element) => element is HTMLElement;
32
+ export declare const canHavePseudoElements: (element: Element) => boolean;
@@ -1,60 +1,40 @@
1
- import { CloneOptions, WindowOptions } from './dom/document-cloner';
2
- import { RenderOptions } from './render/canvas/canvas-renderer';
3
- import { ContextOptions } from './core/context';
4
1
  import { Html2CanvasConfig, ConfigOptions } from './config';
5
2
  import { createDefaultValidator, Validator, ValidationResult } from './core/validator';
6
3
  import { PerformanceMonitor } from './core/performance-monitor';
7
- export type Options = CloneOptions & WindowOptions & RenderOptions & ContextOptions & {
8
- backgroundColor: string | null;
9
- foreignObjectRendering: boolean;
10
- removeContainer?: boolean;
11
- cspNonce?: string;
12
- validator?: Validator;
13
- skipValidation?: boolean;
14
- enablePerformanceMonitoring?: boolean;
15
- /**
16
- * Enable/disable image smoothing (anti-aliasing) globally.
17
- * - `false`: Pixel-perfect rendering for pixel art, sprites, and retro graphics
18
- * - `true`: Smooth rendering for photos and high-quality images
19
- * - CSS `image-rendering` property on individual elements takes precedence
20
- * @default true (browser default)
21
- * @example
22
- * // Pixel art game screenshot
23
- * html2canvas(element, { imageSmoothing: false, scale: 2 });
24
- *
25
- * // High-quality photo
26
- * html2canvas(element, { imageSmoothing: true, imageSmoothingQuality: 'high' });
27
- */
28
- imageSmoothing?: boolean;
29
- /**
30
- * Image smoothing quality level when imageSmoothing is enabled.
31
- * - `'low'`: Faster, lower quality (good for preview)
32
- * - `'medium'`: Balanced (default in most browsers)
33
- * - `'high'`: Slower, best quality (good for final export)
34
- *
35
- * Browser support: Chrome 54+, Firefox 94+, Safari 17+
36
- * Falls back gracefully in older browsers.
37
- * @default browser default (usually 'low' or 'medium')
38
- */
39
- imageSmoothingQuality?: 'low' | 'medium' | 'high';
40
- };
4
+ import type { Options } from './options';
5
+ export type { Options };
41
6
  /**
42
- * Main html2canvas function with improved configuration management
7
+ * Renders an HTML element to a `<canvas>` element.
8
+ *
9
+ * The function clones the target element and its subtree into a hidden iframe,
10
+ * resolves all computed styles, and paints the result onto a canvas —
11
+ * producing a visual snapshot of the DOM as it appears in the browser.
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * import html2canvas from 'html2canvas-pro';
16
+ *
17
+ * const canvas = await html2canvas(document.body, {
18
+ * backgroundColor: '#ffffff',
19
+ * scale: 2,
20
+ * useCORS: true
21
+ * });
22
+ * document.body.appendChild(canvas);
23
+ * ```
43
24
  *
44
- * @param element - Element to render
45
- * @param options - Rendering options
46
- * @param config - Optional configuration (for advanced use cases)
47
- * @returns Promise resolving to rendered canvas
25
+ * @param element - The root HTMLElement to render.
26
+ * @param options - Rendering options.
27
+ * @param config - Advanced configuration. In most cases this is auto-created;
28
+ * only pass it if you need to share a cache across multiple calls.
29
+ * @returns A promise that resolves to the rendered HTMLCanvasElement.
30
+ *
31
+ * @throws {Error} If the element is not attached to a document.
32
+ * @throws {DOMException} If an {@link Options.signal|AbortSignal} was provided and the operation was aborted.
48
33
  */
49
34
  declare const html2canvas: {
50
35
  (element: HTMLElement, options?: Partial<Options>, config?: Html2CanvasConfig): Promise<HTMLCanvasElement>;
51
36
  setCspNonce: (nonce: string) => void;
52
37
  };
53
- /**
54
- * Set CSP nonce for inline styles
55
- * @deprecated Use options.cspNonce instead
56
- */
57
- declare const setCspNonce: (nonce: string) => void;
58
38
  export default html2canvas;
59
- export { html2canvas, setCspNonce, Html2CanvasConfig, ConfigOptions, Validator, ValidationResult, createDefaultValidator, PerformanceMonitor };
39
+ export { html2canvas, Html2CanvasConfig, ConfigOptions, Validator, ValidationResult, createDefaultValidator, PerformanceMonitor };
60
40
  export { IMAGE_RENDERING } from './css/property-descriptors/image-rendering';
@@ -0,0 +1,51 @@
1
+ import { CloneOptions, WindowOptions } from './dom/document-cloner';
2
+ import { RenderOptions } from './render/canvas/canvas-renderer';
3
+ import { ContextOptions } from './core/context';
4
+ import { Validator } from './core/validator';
5
+ /**
6
+ * Options passed to {@link html2canvas}.
7
+ *
8
+ * Combines clone, window, render, and context configuration into a single
9
+ * options object. All properties are optional.
10
+ */
11
+ export type Options = CloneOptions & WindowOptions & RenderOptions & ContextOptions & {
12
+ /** Background color for the resulting canvas. Use `null` for transparent. */
13
+ backgroundColor: string | null;
14
+ /** Use foreignObject rendering (SVG-based) instead of the default Canvas 2D pipeline. */
15
+ foreignObjectRendering: boolean;
16
+ /** Whether to remove the cloned iframe after rendering. @default true */
17
+ removeContainer?: boolean;
18
+ /** CSP nonce for inline style elements. */
19
+ cspNonce?: string;
20
+ /** Custom input validator. */
21
+ validator?: Validator;
22
+ /** Skip pre-render validation of element and options. */
23
+ skipValidation?: boolean;
24
+ /** Enable performance monitoring and log a timing summary. */
25
+ enablePerformanceMonitoring?: boolean;
26
+ /**
27
+ * An AbortSignal that can be used to cancel an in-progress render.
28
+ * When the signal is aborted, the returned promise rejects with an
29
+ * `AbortError` DOMException.
30
+ */
31
+ signal?: AbortSignal;
32
+ /**
33
+ * Enable/disable image smoothing (anti-aliasing) globally.
34
+ * - `false`: Pixel-perfect rendering for pixel art, sprites, and retro graphics
35
+ * - `true`: Smooth rendering for photos and high-quality images
36
+ * - CSS `image-rendering` property on individual elements takes precedence
37
+ * @default true (browser default)
38
+ */
39
+ imageSmoothing?: boolean;
40
+ /**
41
+ * Image smoothing quality level when imageSmoothing is enabled.
42
+ * - `'low'`: Faster, lower quality (good for preview)
43
+ * - `'medium'`: Balanced (default in most browsers)
44
+ * - `'high'`: Slower, best quality (good for final export)
45
+ *
46
+ * Browser support: Chrome 54+, Firefox 94+, Safari 17+
47
+ * Falls back gracefully in older browsers.
48
+ * @default browser default (usually 'low' or 'medium')
49
+ */
50
+ imageSmoothingQuality?: 'low' | 'medium' | 'high';
51
+ };
@@ -78,10 +78,4 @@ export declare class BackgroundRenderer {
78
78
  * @param paths - Array of path points
79
79
  */
80
80
  private path;
81
- /**
82
- * Format path points into canvas path
83
- *
84
- * @param paths - Array of path points
85
- */
86
- private formatPath;
87
81
  }
@@ -0,0 +1,3 @@
1
+ import { Path } from '../path';
2
+ export declare const formatCanvasPath: (ctx: CanvasRenderingContext2D, paths: Path[]) => void;
3
+ export declare const createCanvasPath: (ctx: CanvasRenderingContext2D, paths: Path[]) => void;
@@ -4,10 +4,10 @@ import { ElementContainer } from '../../dom/element-container';
4
4
  import { Path } from '../path';
5
5
  import { BoundCurves } from '../bound-curves';
6
6
  import { ReplacedElementContainer } from '../../dom/replaced-elements';
7
- import { Renderer } from '../renderer';
8
7
  import { Context } from '../../core/context';
9
8
  export type RenderConfigurations = RenderOptions & {
10
9
  backgroundColor: Color | null;
10
+ signal?: AbortSignal;
11
11
  /**
12
12
  * Enable/disable image smoothing (anti-aliasing).
13
13
  * When disabled, images are rendered with pixel-perfect sharpness (no interpolation).
@@ -32,9 +32,11 @@ export interface RenderOptions {
32
32
  width: number;
33
33
  height: number;
34
34
  }
35
- export declare class CanvasRenderer extends Renderer {
35
+ export declare class CanvasRenderer {
36
36
  canvas: HTMLCanvasElement;
37
37
  ctx: CanvasRenderingContext2D;
38
+ private readonly context;
39
+ private readonly options;
38
40
  private readonly fontMetrics;
39
41
  private readonly backgroundRenderer;
40
42
  private readonly borderRenderer;
@@ -1,11 +1,10 @@
1
1
  import { RenderConfigurations } from './canvas-renderer';
2
- import { Renderer } from '../renderer';
3
2
  import { Context } from '../../core/context';
4
- export declare class ForeignObjectRenderer extends Renderer {
3
+ export declare class ForeignObjectRenderer {
5
4
  canvas: HTMLCanvasElement;
6
5
  ctx: CanvasRenderingContext2D;
7
6
  options: RenderConfigurations;
7
+ private readonly context;
8
8
  constructor(context: Context, options: RenderConfigurations);
9
9
  render(element: HTMLElement): Promise<HTMLCanvasElement>;
10
10
  }
11
- export declare const loadSerializedSVG: (svg: Node) => Promise<HTMLImageElement>;
@@ -15,6 +15,7 @@ import { TextContainer } from '../../dom/text-container';
15
15
  import { CSSParsedDeclaration } from '../../css';
16
16
  import { Bounds } from '../../css/layout/bounds';
17
17
  import { TextBounds } from '../../css/layout/text';
18
+ import { WRITING_MODE } from '../../css/property-descriptors/writing-mode';
18
19
  /**
19
20
  * Dependencies required for TextRenderer
20
21
  */
@@ -52,12 +53,18 @@ export declare class TextRenderer {
52
53
  * implementation.
53
54
  */
54
55
  private iterateLettersWithLetterSpacing;
56
+ private iterateVerticalGlyphs;
55
57
  /**
56
58
  * Render text with letter-spacing applied (fill pass).
57
59
  * When letterSpacing is 0 the whole string is drawn in one call; otherwise each
58
60
  * grapheme is drawn individually so spacing and CJK baseline are applied correctly.
59
61
  */
60
- renderTextWithLetterSpacing(text: TextBounds, letterSpacing: number, baseline: number): void;
62
+ renderTextWithLetterSpacing(text: TextBounds, letterSpacing: number, baseline: number, writingMode?: WRITING_MODE): void;
63
+ private canRenderWholeText;
64
+ private renderFillText;
65
+ private renderStrokeText;
66
+ private renderTextStrokeWithStyle;
67
+ private renderTextFillWithShadows;
61
68
  /**
62
69
  * Helper method to render text with paint order support
63
70
  * Reduces code duplication in line-clamp and normal rendering
@@ -4,7 +4,8 @@ export declare const enum EffectType {
4
4
  TRANSFORM = 0,
5
5
  CLIP = 1,
6
6
  OPACITY = 2,
7
- CLIP_PATH = 3
7
+ CLIP_PATH = 3,
8
+ BLEND = 4
8
9
  }
9
10
  export declare const enum EffectTarget {
10
11
  BACKGROUND_BORDERS = 2,
@@ -46,7 +47,14 @@ export declare class ClipPathEffect implements IElementEffect {
46
47
  readonly target: number;
47
48
  constructor(applyClip: (ctx: CanvasRenderingContext2D) => void);
48
49
  }
50
+ export declare class BlendEffect implements IElementEffect {
51
+ readonly compositeOperation: GlobalCompositeOperation;
52
+ readonly type: EffectType;
53
+ readonly target: number;
54
+ constructor(compositeOperation: GlobalCompositeOperation);
55
+ }
49
56
  export declare const isTransformEffect: (effect: IElementEffect) => effect is TransformEffect;
50
57
  export declare const isClipEffect: (effect: IElementEffect) => effect is ClipEffect;
51
58
  export declare const isOpacityEffect: (effect: IElementEffect) => effect is OpacityEffect;
52
59
  export declare const isClipPathEffect: (effect: IElementEffect) => effect is ClipPathEffect;
60
+ export declare const isBlendEffect: (effect: IElementEffect) => effect is BlendEffect;
@@ -0,0 +1,18 @@
1
+ import { ObjectFit } from '../css/property-descriptors/object-fit';
2
+ export interface ObjectFitBox {
3
+ left: number;
4
+ top: number;
5
+ width: number;
6
+ height: number;
7
+ }
8
+ export interface ObjectFitRendering {
9
+ sx: number;
10
+ sy: number;
11
+ sw: number;
12
+ sh: number;
13
+ dx: number;
14
+ dy: number;
15
+ dw: number;
16
+ dh: number;
17
+ }
18
+ export declare const calculateObjectFitRendering: (intrinsicWidth: number, intrinsicHeight: number, box: ObjectFitBox, objectFit: ObjectFit) => ObjectFitRendering;