html2canvas-pro 1.4.3

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 (394) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +36 -0
  3. package/dist/html2canvas-pro.esm.js +7943 -0
  4. package/dist/html2canvas-pro.esm.js.map +1 -0
  5. package/dist/html2canvas-pro.js +7951 -0
  6. package/dist/html2canvas-pro.js.map +1 -0
  7. package/dist/html2canvas-pro.min.js +20 -0
  8. package/dist/lib/__tests__/index.js +144 -0
  9. package/dist/lib/__tests__/index.js.map +1 -0
  10. package/dist/lib/core/__mocks__/cache-storage.js +10 -0
  11. package/dist/lib/core/__mocks__/cache-storage.js.map +1 -0
  12. package/dist/lib/core/__mocks__/context.js +22 -0
  13. package/dist/lib/core/__mocks__/context.js.map +1 -0
  14. package/dist/lib/core/__mocks__/features.js +12 -0
  15. package/dist/lib/core/__mocks__/features.js.map +1 -0
  16. package/dist/lib/core/__mocks__/logger.js +24 -0
  17. package/dist/lib/core/__mocks__/logger.js.map +1 -0
  18. package/dist/lib/core/__tests__/cache-storage.js +420 -0
  19. package/dist/lib/core/__tests__/cache-storage.js.map +1 -0
  20. package/dist/lib/core/__tests__/logger.js +28 -0
  21. package/dist/lib/core/__tests__/logger.js.map +1 -0
  22. package/dist/lib/core/bitwise.js +6 -0
  23. package/dist/lib/core/bitwise.js.map +1 -0
  24. package/dist/lib/core/cache-storage.js +198 -0
  25. package/dist/lib/core/cache-storage.js.map +1 -0
  26. package/dist/lib/core/context.js +18 -0
  27. package/dist/lib/core/context.js.map +1 -0
  28. package/dist/lib/core/debugger.js +25 -0
  29. package/dist/lib/core/debugger.js.map +1 -0
  30. package/dist/lib/core/features.js +193 -0
  31. package/dist/lib/core/features.js.map +1 -0
  32. package/dist/lib/core/logger.js +88 -0
  33. package/dist/lib/core/logger.js.map +1 -0
  34. package/dist/lib/core/util.js +5 -0
  35. package/dist/lib/core/util.js.map +1 -0
  36. package/dist/lib/css/IPropertyDescriptor.js +3 -0
  37. package/dist/lib/css/IPropertyDescriptor.js.map +1 -0
  38. package/dist/lib/css/ITypeDescriptor.js +3 -0
  39. package/dist/lib/css/ITypeDescriptor.js.map +1 -0
  40. package/dist/lib/css/index.js +218 -0
  41. package/dist/lib/css/index.js.map +1 -0
  42. package/dist/lib/css/layout/__mocks__/bounds.js +9 -0
  43. package/dist/lib/css/layout/__mocks__/bounds.js.map +1 -0
  44. package/dist/lib/css/layout/bounds.js +42 -0
  45. package/dist/lib/css/layout/bounds.js.map +1 -0
  46. package/dist/lib/css/layout/text.js +137 -0
  47. package/dist/lib/css/layout/text.js.map +1 -0
  48. package/dist/lib/css/property-descriptors/__tests__/background-tests.js +48 -0
  49. package/dist/lib/css/property-descriptors/__tests__/background-tests.js.map +1 -0
  50. package/dist/lib/css/property-descriptors/__tests__/font-family.js +25 -0
  51. package/dist/lib/css/property-descriptors/__tests__/font-family.js.map +1 -0
  52. package/dist/lib/css/property-descriptors/__tests__/paint-order.js +88 -0
  53. package/dist/lib/css/property-descriptors/__tests__/paint-order.js.map +1 -0
  54. package/dist/lib/css/property-descriptors/__tests__/text-shadow.js +94 -0
  55. package/dist/lib/css/property-descriptors/__tests__/text-shadow.js.map +1 -0
  56. package/dist/lib/css/property-descriptors/__tests__/transform-tests.js +18 -0
  57. package/dist/lib/css/property-descriptors/__tests__/transform-tests.js.map +1 -0
  58. package/dist/lib/css/property-descriptors/background-clip.js +24 -0
  59. package/dist/lib/css/property-descriptors/background-clip.js.map +1 -0
  60. package/dist/lib/css/property-descriptors/background-color.js +11 -0
  61. package/dist/lib/css/property-descriptors/background-color.js.map +1 -0
  62. package/dist/lib/css/property-descriptors/background-image.js +24 -0
  63. package/dist/lib/css/property-descriptors/background-image.js.map +1 -0
  64. package/dist/lib/css/property-descriptors/background-origin.js +24 -0
  65. package/dist/lib/css/property-descriptors/background-origin.js.map +1 -0
  66. package/dist/lib/css/property-descriptors/background-position.js +17 -0
  67. package/dist/lib/css/property-descriptors/background-position.js.map +1 -0
  68. package/dist/lib/css/property-descriptors/background-repeat.js +36 -0
  69. package/dist/lib/css/property-descriptors/background-repeat.js.map +1 -0
  70. package/dist/lib/css/property-descriptors/background-size.js +24 -0
  71. package/dist/lib/css/property-descriptors/background-size.js.map +1 -0
  72. package/dist/lib/css/property-descriptors/border-color.js +15 -0
  73. package/dist/lib/css/property-descriptors/border-color.js.map +1 -0
  74. package/dist/lib/css/property-descriptors/border-radius.js +18 -0
  75. package/dist/lib/css/property-descriptors/border-radius.js.map +1 -0
  76. package/dist/lib/css/property-descriptors/border-style.js +27 -0
  77. package/dist/lib/css/property-descriptors/border-style.js.map +1 -0
  78. package/dist/lib/css/property-descriptors/border-width.js +21 -0
  79. package/dist/lib/css/property-descriptors/border-width.js.map +1 -0
  80. package/dist/lib/css/property-descriptors/box-shadow.js +55 -0
  81. package/dist/lib/css/property-descriptors/box-shadow.js.map +1 -0
  82. package/dist/lib/css/property-descriptors/color.js +11 -0
  83. package/dist/lib/css/property-descriptors/color.js.map +1 -0
  84. package/dist/lib/css/property-descriptors/content.js +20 -0
  85. package/dist/lib/css/property-descriptors/content.js.map +1 -0
  86. package/dist/lib/css/property-descriptors/counter-increment.js +31 -0
  87. package/dist/lib/css/property-descriptors/counter-increment.js.map +1 -0
  88. package/dist/lib/css/property-descriptors/counter-reset.js +27 -0
  89. package/dist/lib/css/property-descriptors/counter-reset.js.map +1 -0
  90. package/dist/lib/css/property-descriptors/direction.js +19 -0
  91. package/dist/lib/css/property-descriptors/direction.js.map +1 -0
  92. package/dist/lib/css/property-descriptors/display.js +82 -0
  93. package/dist/lib/css/property-descriptors/display.js.map +1 -0
  94. package/dist/lib/css/property-descriptors/duration.js +15 -0
  95. package/dist/lib/css/property-descriptors/duration.js.map +1 -0
  96. package/dist/lib/css/property-descriptors/float.js +23 -0
  97. package/dist/lib/css/property-descriptors/float.js.map +1 -0
  98. package/dist/lib/css/property-descriptors/font-family.js +33 -0
  99. package/dist/lib/css/property-descriptors/font-family.js.map +1 -0
  100. package/dist/lib/css/property-descriptors/font-size.js +11 -0
  101. package/dist/lib/css/property-descriptors/font-size.js.map +1 -0
  102. package/dist/lib/css/property-descriptors/font-style.js +21 -0
  103. package/dist/lib/css/property-descriptors/font-style.js.map +1 -0
  104. package/dist/lib/css/property-descriptors/font-variant.js +14 -0
  105. package/dist/lib/css/property-descriptors/font-variant.js.map +1 -0
  106. package/dist/lib/css/property-descriptors/font-weight.js +26 -0
  107. package/dist/lib/css/property-descriptors/font-weight.js.map +1 -0
  108. package/dist/lib/css/property-descriptors/letter-spacing.js +22 -0
  109. package/dist/lib/css/property-descriptors/letter-spacing.js.map +1 -0
  110. package/dist/lib/css/property-descriptors/line-break.js +24 -0
  111. package/dist/lib/css/property-descriptors/line-break.js.map +1 -0
  112. package/dist/lib/css/property-descriptors/line-height.js +25 -0
  113. package/dist/lib/css/property-descriptors/line-height.js.map +1 -0
  114. package/dist/lib/css/property-descriptors/list-style-image.js +17 -0
  115. package/dist/lib/css/property-descriptors/list-style-image.js.map +1 -0
  116. package/dist/lib/css/property-descriptors/list-style-position.js +19 -0
  117. package/dist/lib/css/property-descriptors/list-style-position.js.map +1 -0
  118. package/dist/lib/css/property-descriptors/list-style-type.js +123 -0
  119. package/dist/lib/css/property-descriptors/list-style-type.js.map +1 -0
  120. package/dist/lib/css/property-descriptors/margin.js +14 -0
  121. package/dist/lib/css/property-descriptors/margin.js.map +1 -0
  122. package/dist/lib/css/property-descriptors/object-fit.js +29 -0
  123. package/dist/lib/css/property-descriptors/object-fit.js.map +1 -0
  124. package/dist/lib/css/property-descriptors/opacity.js +17 -0
  125. package/dist/lib/css/property-descriptors/opacity.js.map +1 -0
  126. package/dist/lib/css/property-descriptors/overflow-wrap.js +19 -0
  127. package/dist/lib/css/property-descriptors/overflow-wrap.js.map +1 -0
  128. package/dist/lib/css/property-descriptors/overflow.js +28 -0
  129. package/dist/lib/css/property-descriptors/overflow.js.map +1 -0
  130. package/dist/lib/css/property-descriptors/padding.js +15 -0
  131. package/dist/lib/css/property-descriptors/padding.js.map +1 -0
  132. package/dist/lib/css/property-descriptors/paint-order.js +34 -0
  133. package/dist/lib/css/property-descriptors/paint-order.js.map +1 -0
  134. package/dist/lib/css/property-descriptors/position.js +23 -0
  135. package/dist/lib/css/property-descriptors/position.js.map +1 -0
  136. package/dist/lib/css/property-descriptors/quotes.js +42 -0
  137. package/dist/lib/css/property-descriptors/quotes.js.map +1 -0
  138. package/dist/lib/css/property-descriptors/text-align.js +22 -0
  139. package/dist/lib/css/property-descriptors/text-align.js.map +1 -0
  140. package/dist/lib/css/property-descriptors/text-decoration-color.js +11 -0
  141. package/dist/lib/css/property-descriptors/text-decoration-color.js.map +1 -0
  142. package/dist/lib/css/property-descriptors/text-decoration-line.js +29 -0
  143. package/dist/lib/css/property-descriptors/text-decoration-line.js.map +1 -0
  144. package/dist/lib/css/property-descriptors/text-shadow.js +47 -0
  145. package/dist/lib/css/property-descriptors/text-shadow.js.map +1 -0
  146. package/dist/lib/css/property-descriptors/text-transform.js +21 -0
  147. package/dist/lib/css/property-descriptors/text-transform.js.map +1 -0
  148. package/dist/lib/css/property-descriptors/transform-origin.js +25 -0
  149. package/dist/lib/css/property-descriptors/transform-origin.js.map +1 -0
  150. package/dist/lib/css/property-descriptors/transform.js +37 -0
  151. package/dist/lib/css/property-descriptors/transform.js.map +1 -0
  152. package/dist/lib/css/property-descriptors/visibility.js +21 -0
  153. package/dist/lib/css/property-descriptors/visibility.js.map +1 -0
  154. package/dist/lib/css/property-descriptors/webkit-text-stroke-color.js +11 -0
  155. package/dist/lib/css/property-descriptors/webkit-text-stroke-color.js.map +1 -0
  156. package/dist/lib/css/property-descriptors/webkit-text-stroke-width.js +17 -0
  157. package/dist/lib/css/property-descriptors/webkit-text-stroke-width.js.map +1 -0
  158. package/dist/lib/css/property-descriptors/word-break.js +27 -0
  159. package/dist/lib/css/property-descriptors/word-break.js.map +1 -0
  160. package/dist/lib/css/property-descriptors/z-index.js +20 -0
  161. package/dist/lib/css/property-descriptors/z-index.js.map +1 -0
  162. package/dist/lib/css/syntax/__tests__/tokernizer-tests.js +34 -0
  163. package/dist/lib/css/syntax/__tests__/tokernizer-tests.js.map +1 -0
  164. package/dist/lib/css/syntax/parser.js +147 -0
  165. package/dist/lib/css/syntax/parser.js.map +1 -0
  166. package/dist/lib/css/syntax/tokenizer.js +630 -0
  167. package/dist/lib/css/syntax/tokenizer.js.map +1 -0
  168. package/dist/lib/css/types/__tests__/color-tests.js +66 -0
  169. package/dist/lib/css/types/__tests__/color-tests.js.map +1 -0
  170. package/dist/lib/css/types/__tests__/image-tests.js +233 -0
  171. package/dist/lib/css/types/__tests__/image-tests.js.map +1 -0
  172. package/dist/lib/css/types/angle.js +81 -0
  173. package/dist/lib/css/types/angle.js.map +1 -0
  174. package/dist/lib/css/types/color.js +307 -0
  175. package/dist/lib/css/types/color.js.map +1 -0
  176. package/dist/lib/css/types/functions/-prefix-linear-gradient.js +33 -0
  177. package/dist/lib/css/types/functions/-prefix-linear-gradient.js.map +1 -0
  178. package/dist/lib/css/types/functions/-prefix-radial-gradient.js +84 -0
  179. package/dist/lib/css/types/functions/-prefix-radial-gradient.js.map +1 -0
  180. package/dist/lib/css/types/functions/-webkit-gradient.js +60 -0
  181. package/dist/lib/css/types/functions/-webkit-gradient.js.map +1 -0
  182. package/dist/lib/css/types/functions/__tests__/radial-gradient.js +68 -0
  183. package/dist/lib/css/types/functions/__tests__/radial-gradient.js.map +1 -0
  184. package/dist/lib/css/types/functions/counter.js +374 -0
  185. package/dist/lib/css/types/functions/counter.js.map +1 -0
  186. package/dist/lib/css/types/functions/gradient.js +165 -0
  187. package/dist/lib/css/types/functions/gradient.js.map +1 -0
  188. package/dist/lib/css/types/functions/linear-gradient.js +28 -0
  189. package/dist/lib/css/types/functions/linear-gradient.js.map +1 -0
  190. package/dist/lib/css/types/functions/radial-gradient.js +91 -0
  191. package/dist/lib/css/types/functions/radial-gradient.js.map +1 -0
  192. package/dist/lib/css/types/image.js +53 -0
  193. package/dist/lib/css/types/image.js.map +1 -0
  194. package/dist/lib/css/types/index.js +3 -0
  195. package/dist/lib/css/types/index.js.map +1 -0
  196. package/dist/lib/css/types/length-percentage.js +52 -0
  197. package/dist/lib/css/types/length-percentage.js.map +1 -0
  198. package/dist/lib/css/types/length.js +8 -0
  199. package/dist/lib/css/types/length.js.map +1 -0
  200. package/dist/lib/css/types/time.js +18 -0
  201. package/dist/lib/css/types/time.js.map +1 -0
  202. package/dist/lib/dom/__mocks__/document-cloner.js +24 -0
  203. package/dist/lib/dom/__mocks__/document-cloner.js.map +1 -0
  204. package/dist/lib/dom/document-cloner.js +530 -0
  205. package/dist/lib/dom/document-cloner.js.map +1 -0
  206. package/dist/lib/dom/element-container.js +35 -0
  207. package/dist/lib/dom/element-container.js.map +1 -0
  208. package/dist/lib/dom/elements/li-element-container.js +30 -0
  209. package/dist/lib/dom/elements/li-element-container.js.map +1 -0
  210. package/dist/lib/dom/elements/ol-element-container.js +31 -0
  211. package/dist/lib/dom/elements/ol-element-container.js.map +1 -0
  212. package/dist/lib/dom/elements/select-element-container.js +31 -0
  213. package/dist/lib/dom/elements/select-element-container.js.map +1 -0
  214. package/dist/lib/dom/elements/textarea-element-container.js +30 -0
  215. package/dist/lib/dom/elements/textarea-element-container.js.map +1 -0
  216. package/dist/lib/dom/node-parser.js +142 -0
  217. package/dist/lib/dom/node-parser.js.map +1 -0
  218. package/dist/lib/dom/replaced-elements/canvas-element-container.js +32 -0
  219. package/dist/lib/dom/replaced-elements/canvas-element-container.js.map +1 -0
  220. package/dist/lib/dom/replaced-elements/iframe-element-container.js +55 -0
  221. package/dist/lib/dom/replaced-elements/iframe-element-container.js.map +1 -0
  222. package/dist/lib/dom/replaced-elements/image-element-container.js +33 -0
  223. package/dist/lib/dom/replaced-elements/image-element-container.js.map +1 -0
  224. package/dist/lib/dom/replaced-elements/index.js +3 -0
  225. package/dist/lib/dom/replaced-elements/index.js.map +1 -0
  226. package/dist/lib/dom/replaced-elements/input-element-container.js +102 -0
  227. package/dist/lib/dom/replaced-elements/input-element-container.js.map +1 -0
  228. package/dist/lib/dom/replaced-elements/pseudo-elements.js +1 -0
  229. package/dist/lib/dom/replaced-elements/pseudo-elements.js.map +1 -0
  230. package/dist/lib/dom/replaced-elements/svg-element-container.js +38 -0
  231. package/dist/lib/dom/replaced-elements/svg-element-container.js.map +1 -0
  232. package/dist/lib/dom/text-container.js +32 -0
  233. package/dist/lib/dom/text-container.js.map +1 -0
  234. package/dist/lib/index.js +181 -0
  235. package/dist/lib/index.js.map +1 -0
  236. package/dist/lib/invariant.js +10 -0
  237. package/dist/lib/invariant.js.map +1 -0
  238. package/dist/lib/render/background.js +187 -0
  239. package/dist/lib/render/background.js.map +1 -0
  240. package/dist/lib/render/bezier-curve.js +36 -0
  241. package/dist/lib/render/bezier-curve.js.map +1 -0
  242. package/dist/lib/render/border.js +105 -0
  243. package/dist/lib/render/border.js.map +1 -0
  244. package/dist/lib/render/bound-curves.js +190 -0
  245. package/dist/lib/render/bound-curves.js.map +1 -0
  246. package/dist/lib/render/box-sizing.js +21 -0
  247. package/dist/lib/render/box-sizing.js.map +1 -0
  248. package/dist/lib/render/canvas/canvas-renderer.js +1106 -0
  249. package/dist/lib/render/canvas/canvas-renderer.js.map +1 -0
  250. package/dist/lib/render/canvas/foreignobject-renderer.js +108 -0
  251. package/dist/lib/render/canvas/foreignobject-renderer.js.map +1 -0
  252. package/dist/lib/render/effects.js +41 -0
  253. package/dist/lib/render/effects.js.map +1 -0
  254. package/dist/lib/render/font-metrics.js +55 -0
  255. package/dist/lib/render/font-metrics.js.map +1 -0
  256. package/dist/lib/render/path.js +27 -0
  257. package/dist/lib/render/path.js.map +1 -0
  258. package/dist/lib/render/renderer.js +12 -0
  259. package/dist/lib/render/renderer.js.map +1 -0
  260. package/dist/lib/render/stacking-context.js +172 -0
  261. package/dist/lib/render/stacking-context.js.map +1 -0
  262. package/dist/lib/render/vector.js +18 -0
  263. package/dist/lib/render/vector.js.map +1 -0
  264. package/dist/types/__tests__/index.d.ts +1 -0
  265. package/dist/types/core/__mocks__/cache-storage.d.ts +2 -0
  266. package/dist/types/core/__mocks__/context.d.ts +9 -0
  267. package/dist/types/core/__mocks__/features.d.ts +8 -0
  268. package/dist/types/core/__mocks__/logger.d.ts +9 -0
  269. package/dist/types/core/__tests__/cache-storage.d.ts +1 -0
  270. package/dist/types/core/__tests__/logger.d.ts +1 -0
  271. package/dist/types/core/bitwise.d.ts +1 -0
  272. package/dist/types/core/cache-storage.d.ts +26 -0
  273. package/dist/types/core/context.d.ts +15 -0
  274. package/dist/types/core/debugger.d.ts +8 -0
  275. package/dist/types/core/features.d.ts +12 -0
  276. package/dist/types/core/logger.d.ts +18 -0
  277. package/dist/types/core/util.d.ts +1 -0
  278. package/dist/types/css/IPropertyDescriptor.d.ts +36 -0
  279. package/dist/types/css/ITypeDescriptor.d.ts +6 -0
  280. package/dist/types/css/index.d.ts +134 -0
  281. package/dist/types/css/layout/__mocks__/bounds.d.ts +2 -0
  282. package/dist/types/css/layout/bounds.d.ts +14 -0
  283. package/dist/types/css/layout/text.d.ts +10 -0
  284. package/dist/types/css/property-descriptors/__tests__/background-tests.d.ts +1 -0
  285. package/dist/types/css/property-descriptors/__tests__/font-family.d.ts +1 -0
  286. package/dist/types/css/property-descriptors/__tests__/paint-order.d.ts +1 -0
  287. package/dist/types/css/property-descriptors/__tests__/text-shadow.d.ts +1 -0
  288. package/dist/types/css/property-descriptors/__tests__/transform-tests.d.ts +1 -0
  289. package/dist/types/css/property-descriptors/background-clip.d.ts +8 -0
  290. package/dist/types/css/property-descriptors/background-color.d.ts +2 -0
  291. package/dist/types/css/property-descriptors/background-image.d.ts +3 -0
  292. package/dist/types/css/property-descriptors/background-origin.d.ts +8 -0
  293. package/dist/types/css/property-descriptors/background-position.d.ts +5 -0
  294. package/dist/types/css/property-descriptors/background-repeat.d.ts +9 -0
  295. package/dist/types/css/property-descriptors/background-size.d.ts +11 -0
  296. package/dist/types/css/property-descriptors/border-color.d.ts +5 -0
  297. package/dist/types/css/property-descriptors/border-radius.d.ts +7 -0
  298. package/dist/types/css/property-descriptors/border-style.d.ts +12 -0
  299. package/dist/types/css/property-descriptors/border-width.d.ts +5 -0
  300. package/dist/types/css/property-descriptors/box-shadow.d.ts +14 -0
  301. package/dist/types/css/property-descriptors/color.d.ts +2 -0
  302. package/dist/types/css/property-descriptors/content.d.ts +4 -0
  303. package/dist/types/css/property-descriptors/counter-increment.d.ts +7 -0
  304. package/dist/types/css/property-descriptors/counter-reset.d.ts +7 -0
  305. package/dist/types/css/property-descriptors/direction.d.ts +6 -0
  306. package/dist/types/css/property-descriptors/display.d.ts +35 -0
  307. package/dist/types/css/property-descriptors/duration.d.ts +2 -0
  308. package/dist/types/css/property-descriptors/float.d.ts +9 -0
  309. package/dist/types/css/property-descriptors/font-family.d.ts +4 -0
  310. package/dist/types/css/property-descriptors/font-size.d.ts +2 -0
  311. package/dist/types/css/property-descriptors/font-style.d.ts +7 -0
  312. package/dist/types/css/property-descriptors/font-variant.d.ts +2 -0
  313. package/dist/types/css/property-descriptors/font-weight.d.ts +2 -0
  314. package/dist/types/css/property-descriptors/letter-spacing.d.ts +2 -0
  315. package/dist/types/css/property-descriptors/line-break.d.ts +6 -0
  316. package/dist/types/css/property-descriptors/line-height.d.ts +4 -0
  317. package/dist/types/css/property-descriptors/list-style-image.d.ts +3 -0
  318. package/dist/types/css/property-descriptors/list-style-position.d.ts +6 -0
  319. package/dist/types/css/property-descriptors/list-style-type.d.ts +58 -0
  320. package/dist/types/css/property-descriptors/margin.d.ts +5 -0
  321. package/dist/types/css/property-descriptors/object-fit.d.ts +10 -0
  322. package/dist/types/css/property-descriptors/opacity.d.ts +2 -0
  323. package/dist/types/css/property-descriptors/overflow-wrap.d.ts +6 -0
  324. package/dist/types/css/property-descriptors/overflow.d.ts +9 -0
  325. package/dist/types/css/property-descriptors/padding.d.ts +5 -0
  326. package/dist/types/css/property-descriptors/paint-order.d.ts +8 -0
  327. package/dist/types/css/property-descriptors/position.d.ts +9 -0
  328. package/dist/types/css/property-descriptors/quotes.d.ts +8 -0
  329. package/dist/types/css/property-descriptors/text-align.d.ts +7 -0
  330. package/dist/types/css/property-descriptors/text-decoration-color.d.ts +2 -0
  331. package/dist/types/css/property-descriptors/text-decoration-line.d.ts +10 -0
  332. package/dist/types/css/property-descriptors/text-shadow.d.ts +12 -0
  333. package/dist/types/css/property-descriptors/text-transform.d.ts +8 -0
  334. package/dist/types/css/property-descriptors/transform-origin.d.ts +4 -0
  335. package/dist/types/css/property-descriptors/transform.d.ts +4 -0
  336. package/dist/types/css/property-descriptors/visibility.d.ts +7 -0
  337. package/dist/types/css/property-descriptors/webkit-text-stroke-color.d.ts +2 -0
  338. package/dist/types/css/property-descriptors/webkit-text-stroke-width.d.ts +2 -0
  339. package/dist/types/css/property-descriptors/word-break.d.ts +7 -0
  340. package/dist/types/css/property-descriptors/z-index.d.ts +7 -0
  341. package/dist/types/css/syntax/__tests__/tokernizer-tests.d.ts +1 -0
  342. package/dist/types/css/syntax/parser.d.ts +34 -0
  343. package/dist/types/css/syntax/tokenizer.d.ts +94 -0
  344. package/dist/types/css/types/__tests__/color-tests.d.ts +1 -0
  345. package/dist/types/css/types/__tests__/image-tests.d.ts +1 -0
  346. package/dist/types/css/types/angle.d.ts +7 -0
  347. package/dist/types/css/types/color.d.ts +11 -0
  348. package/dist/types/css/types/functions/-prefix-linear-gradient.d.ts +4 -0
  349. package/dist/types/css/types/functions/-prefix-radial-gradient.d.ts +4 -0
  350. package/dist/types/css/types/functions/-webkit-gradient.d.ts +4 -0
  351. package/dist/types/css/types/functions/__tests__/radial-gradient.d.ts +1 -0
  352. package/dist/types/css/types/functions/counter.d.ts +10 -0
  353. package/dist/types/css/types/functions/gradient.d.ts +7 -0
  354. package/dist/types/css/types/functions/linear-gradient.d.ts +4 -0
  355. package/dist/types/css/types/functions/radial-gradient.d.ts +12 -0
  356. package/dist/types/css/types/image.d.ts +54 -0
  357. package/dist/types/css/types/index.d.ts +1 -0
  358. package/dist/types/css/types/length-percentage.d.ts +11 -0
  359. package/dist/types/css/types/length.d.ts +4 -0
  360. package/dist/types/css/types/time.d.ts +2 -0
  361. package/dist/types/dom/__mocks__/document-cloner.d.ts +6 -0
  362. package/dist/types/dom/document-cloner.d.ts +45 -0
  363. package/dist/types/dom/element-container.d.ts +19 -0
  364. package/dist/types/dom/elements/li-element-container.d.ts +6 -0
  365. package/dist/types/dom/elements/ol-element-container.d.ts +7 -0
  366. package/dist/types/dom/elements/select-element-container.d.ts +6 -0
  367. package/dist/types/dom/elements/textarea-element-container.d.ts +6 -0
  368. package/dist/types/dom/node-parser.d.ts +23 -0
  369. package/dist/types/dom/replaced-elements/canvas-element-container.d.ts +8 -0
  370. package/dist/types/dom/replaced-elements/iframe-element-container.d.ts +11 -0
  371. package/dist/types/dom/replaced-elements/image-element-container.d.ts +8 -0
  372. package/dist/types/dom/replaced-elements/index.d.ts +4 -0
  373. package/dist/types/dom/replaced-elements/input-element-container.d.ts +12 -0
  374. package/dist/types/dom/replaced-elements/pseudo-elements.d.ts +0 -0
  375. package/dist/types/dom/replaced-elements/svg-element-container.d.ts +8 -0
  376. package/dist/types/dom/text-container.d.ts +8 -0
  377. package/dist/types/index.d.ts +10 -0
  378. package/dist/types/invariant.d.ts +1 -0
  379. package/dist/types/render/background.d.ts +16 -0
  380. package/dist/types/render/bezier-curve.d.ts +14 -0
  381. package/dist/types/render/border.d.ts +6 -0
  382. package/dist/types/render/bound-curves.d.ts +32 -0
  383. package/dist/types/render/box-sizing.d.ts +4 -0
  384. package/dist/types/render/canvas/canvas-renderer.d.ts +53 -0
  385. package/dist/types/render/canvas/foreignobject-renderer.d.ts +11 -0
  386. package/dist/types/render/effects.d.ts +38 -0
  387. package/dist/types/render/font-metrics.d.ts +11 -0
  388. package/dist/types/render/path.d.ts +13 -0
  389. package/dist/types/render/renderer.d.ts +7 -0
  390. package/dist/types/render/stacking-context.d.ts +24 -0
  391. package/dist/types/render/vector.d.ts +9 -0
  392. package/package.json +124 -0
  393. package/publish.sh +8 -0
  394. package/tsconfig.json +21 -0
@@ -0,0 +1,5 @@
1
+ import { IPropertyTokenValueDescriptor } from '../IPropertyDescriptor';
2
+ export declare const marginTop: IPropertyTokenValueDescriptor;
3
+ export declare const marginRight: IPropertyTokenValueDescriptor;
4
+ export declare const marginBottom: IPropertyTokenValueDescriptor;
5
+ export declare const marginLeft: IPropertyTokenValueDescriptor;
@@ -0,0 +1,10 @@
1
+ import { IPropertyListDescriptor } from '../IPropertyDescriptor';
2
+ export declare const enum OBJECT_FIT {
3
+ FILL = 0,
4
+ CONTAIN = 2,
5
+ COVER = 4,
6
+ NONE = 8,
7
+ SCALE_DOWN = 16
8
+ }
9
+ export declare type ObjectFit = number;
10
+ export declare const objectFit: IPropertyListDescriptor<ObjectFit>;
@@ -0,0 +1,2 @@
1
+ import { IPropertyValueDescriptor } from '../IPropertyDescriptor';
2
+ export declare const opacity: IPropertyValueDescriptor<number>;
@@ -0,0 +1,6 @@
1
+ import { IPropertyIdentValueDescriptor } from '../IPropertyDescriptor';
2
+ export declare const enum OVERFLOW_WRAP {
3
+ NORMAL = "normal",
4
+ BREAK_WORD = "break-word"
5
+ }
6
+ export declare const overflowWrap: IPropertyIdentValueDescriptor<OVERFLOW_WRAP>;
@@ -0,0 +1,9 @@
1
+ import { IPropertyListDescriptor } from '../IPropertyDescriptor';
2
+ export declare const enum OVERFLOW {
3
+ VISIBLE = 0,
4
+ HIDDEN = 1,
5
+ SCROLL = 2,
6
+ CLIP = 3,
7
+ AUTO = 4
8
+ }
9
+ export declare const overflow: IPropertyListDescriptor<OVERFLOW[]>;
@@ -0,0 +1,5 @@
1
+ import { IPropertyTypeValueDescriptor } from '../IPropertyDescriptor';
2
+ export declare const paddingTop: IPropertyTypeValueDescriptor;
3
+ export declare const paddingRight: IPropertyTypeValueDescriptor;
4
+ export declare const paddingBottom: IPropertyTypeValueDescriptor;
5
+ export declare const paddingLeft: IPropertyTypeValueDescriptor;
@@ -0,0 +1,8 @@
1
+ import { IPropertyListDescriptor } from '../IPropertyDescriptor';
2
+ export declare const enum PAINT_ORDER_LAYER {
3
+ FILL = 0,
4
+ STROKE = 1,
5
+ MARKERS = 2
6
+ }
7
+ export declare type PaintOrder = PAINT_ORDER_LAYER[];
8
+ export declare const paintOrder: IPropertyListDescriptor<PaintOrder>;
@@ -0,0 +1,9 @@
1
+ import { IPropertyIdentValueDescriptor } from '../IPropertyDescriptor';
2
+ export declare const enum POSITION {
3
+ STATIC = 0,
4
+ RELATIVE = 1,
5
+ ABSOLUTE = 2,
6
+ FIXED = 3,
7
+ STICKY = 4
8
+ }
9
+ export declare const position: IPropertyIdentValueDescriptor<POSITION>;
@@ -0,0 +1,8 @@
1
+ import { IPropertyListDescriptor } from '../IPropertyDescriptor';
2
+ export interface QUOTE {
3
+ open: string;
4
+ close: string;
5
+ }
6
+ export declare type Quotes = QUOTE[] | null;
7
+ export declare const quotes: IPropertyListDescriptor<Quotes>;
8
+ export declare const getQuote: (quotes: Quotes, depth: number, open: boolean) => string;
@@ -0,0 +1,7 @@
1
+ import { IPropertyIdentValueDescriptor } from '../IPropertyDescriptor';
2
+ export declare const enum TEXT_ALIGN {
3
+ LEFT = 0,
4
+ CENTER = 1,
5
+ RIGHT = 2
6
+ }
7
+ export declare const textAlign: IPropertyIdentValueDescriptor<TEXT_ALIGN>;
@@ -0,0 +1,2 @@
1
+ import { IPropertyTypeValueDescriptor } from '../IPropertyDescriptor';
2
+ export declare const textDecorationColor: IPropertyTypeValueDescriptor;
@@ -0,0 +1,10 @@
1
+ import { IPropertyListDescriptor } from '../IPropertyDescriptor';
2
+ export declare const enum TEXT_DECORATION_LINE {
3
+ NONE = 0,
4
+ UNDERLINE = 1,
5
+ OVERLINE = 2,
6
+ LINE_THROUGH = 3,
7
+ BLINK = 4
8
+ }
9
+ export declare type TextDecorationLine = TEXT_DECORATION_LINE[];
10
+ export declare const textDecorationLine: IPropertyListDescriptor<TextDecorationLine>;
@@ -0,0 +1,12 @@
1
+ import { IPropertyListDescriptor } from '../IPropertyDescriptor';
2
+ import { Color } from '../types/color';
3
+ import { Length } from '../types/length';
4
+ export declare type TextShadow = TextShadowItem[];
5
+ interface TextShadowItem {
6
+ color: Color;
7
+ offsetX: Length;
8
+ offsetY: Length;
9
+ blur: Length;
10
+ }
11
+ export declare const textShadow: IPropertyListDescriptor<TextShadow>;
12
+ export {};
@@ -0,0 +1,8 @@
1
+ import { IPropertyIdentValueDescriptor } from '../IPropertyDescriptor';
2
+ export declare const enum TEXT_TRANSFORM {
3
+ NONE = 0,
4
+ LOWERCASE = 1,
5
+ UPPERCASE = 2,
6
+ CAPITALIZE = 3
7
+ }
8
+ export declare const textTransform: IPropertyIdentValueDescriptor<TEXT_TRANSFORM>;
@@ -0,0 +1,4 @@
1
+ import { IPropertyListDescriptor } from '../IPropertyDescriptor';
2
+ import { LengthPercentage } from '../types/length-percentage';
3
+ export declare type TransformOrigin = [LengthPercentage, LengthPercentage];
4
+ export declare const transformOrigin: IPropertyListDescriptor<TransformOrigin>;
@@ -0,0 +1,4 @@
1
+ import { IPropertyValueDescriptor } from '../IPropertyDescriptor';
2
+ export declare type Matrix = [number, number, number, number, number, number];
3
+ export declare type Transform = Matrix | null;
4
+ export declare const transform: IPropertyValueDescriptor<Transform>;
@@ -0,0 +1,7 @@
1
+ import { IPropertyIdentValueDescriptor } from '../IPropertyDescriptor';
2
+ export declare const enum VISIBILITY {
3
+ VISIBLE = 0,
4
+ HIDDEN = 1,
5
+ COLLAPSE = 2
6
+ }
7
+ export declare const visibility: IPropertyIdentValueDescriptor<VISIBILITY>;
@@ -0,0 +1,2 @@
1
+ import { IPropertyTypeValueDescriptor } from '../IPropertyDescriptor';
2
+ export declare const webkitTextStrokeColor: IPropertyTypeValueDescriptor;
@@ -0,0 +1,2 @@
1
+ import { IPropertyValueDescriptor } from '../IPropertyDescriptor';
2
+ export declare const webkitTextStrokeWidth: IPropertyValueDescriptor<number>;
@@ -0,0 +1,7 @@
1
+ import { IPropertyIdentValueDescriptor } from '../IPropertyDescriptor';
2
+ export declare enum WORD_BREAK {
3
+ NORMAL = "normal",
4
+ BREAK_ALL = "break-all",
5
+ KEEP_ALL = "keep-all"
6
+ }
7
+ export declare const wordBreak: IPropertyIdentValueDescriptor<WORD_BREAK>;
@@ -0,0 +1,7 @@
1
+ import { IPropertyValueDescriptor } from '../IPropertyDescriptor';
2
+ interface zIndex {
3
+ order: number;
4
+ auto: boolean;
5
+ }
6
+ export declare const zIndex: IPropertyValueDescriptor<zIndex>;
7
+ export {};
@@ -0,0 +1,34 @@
1
+ import { CSSToken, DimensionToken, NumberValueToken, StringValueToken, TokenType } from './tokenizer';
2
+ export declare type CSSBlockType = TokenType.LEFT_PARENTHESIS_TOKEN | TokenType.LEFT_SQUARE_BRACKET_TOKEN | TokenType.LEFT_CURLY_BRACKET_TOKEN;
3
+ export interface CSSBlock {
4
+ type: CSSBlockType;
5
+ values: CSSValue[];
6
+ }
7
+ export interface CSSFunction {
8
+ type: TokenType.FUNCTION;
9
+ name: string;
10
+ values: CSSValue[];
11
+ }
12
+ export declare type CSSValue = CSSFunction | CSSToken | CSSBlock;
13
+ export declare class Parser {
14
+ private _tokens;
15
+ constructor(tokens: CSSToken[]);
16
+ static create(value: string): Parser;
17
+ static parseValue(value: string): CSSValue;
18
+ static parseValues(value: string): CSSValue[];
19
+ parseComponentValue(): CSSValue;
20
+ parseComponentValues(): CSSValue[];
21
+ private consumeComponentValue;
22
+ private consumeSimpleBlock;
23
+ private consumeFunction;
24
+ private consumeToken;
25
+ private reconsumeToken;
26
+ }
27
+ export declare const isDimensionToken: (token: CSSValue) => token is DimensionToken;
28
+ export declare const isNumberToken: (token: CSSValue) => token is NumberValueToken;
29
+ export declare const isIdentToken: (token: CSSValue) => token is StringValueToken;
30
+ export declare const isStringToken: (token: CSSValue) => token is StringValueToken;
31
+ export declare const isIdentWithValue: (token: CSSValue, value: string) => boolean;
32
+ export declare const nonWhiteSpace: (token: CSSValue) => boolean;
33
+ export declare const nonFunctionArgSeparator: (token: CSSValue) => boolean;
34
+ export declare const parseFunctionArgs: (tokens: CSSValue[]) => CSSValue[][];
@@ -0,0 +1,94 @@
1
+ export declare const enum TokenType {
2
+ STRING_TOKEN = 0,
3
+ BAD_STRING_TOKEN = 1,
4
+ LEFT_PARENTHESIS_TOKEN = 2,
5
+ RIGHT_PARENTHESIS_TOKEN = 3,
6
+ COMMA_TOKEN = 4,
7
+ HASH_TOKEN = 5,
8
+ DELIM_TOKEN = 6,
9
+ AT_KEYWORD_TOKEN = 7,
10
+ PREFIX_MATCH_TOKEN = 8,
11
+ DASH_MATCH_TOKEN = 9,
12
+ INCLUDE_MATCH_TOKEN = 10,
13
+ LEFT_CURLY_BRACKET_TOKEN = 11,
14
+ RIGHT_CURLY_BRACKET_TOKEN = 12,
15
+ SUFFIX_MATCH_TOKEN = 13,
16
+ SUBSTRING_MATCH_TOKEN = 14,
17
+ DIMENSION_TOKEN = 15,
18
+ PERCENTAGE_TOKEN = 16,
19
+ NUMBER_TOKEN = 17,
20
+ FUNCTION = 18,
21
+ FUNCTION_TOKEN = 19,
22
+ IDENT_TOKEN = 20,
23
+ COLUMN_TOKEN = 21,
24
+ URL_TOKEN = 22,
25
+ BAD_URL_TOKEN = 23,
26
+ CDC_TOKEN = 24,
27
+ CDO_TOKEN = 25,
28
+ COLON_TOKEN = 26,
29
+ SEMICOLON_TOKEN = 27,
30
+ LEFT_SQUARE_BRACKET_TOKEN = 28,
31
+ RIGHT_SQUARE_BRACKET_TOKEN = 29,
32
+ UNICODE_RANGE_TOKEN = 30,
33
+ WHITESPACE_TOKEN = 31,
34
+ EOF_TOKEN = 32
35
+ }
36
+ interface IToken {
37
+ type: TokenType;
38
+ }
39
+ export interface Token extends IToken {
40
+ type: TokenType.BAD_URL_TOKEN | TokenType.BAD_STRING_TOKEN | TokenType.LEFT_PARENTHESIS_TOKEN | TokenType.RIGHT_PARENTHESIS_TOKEN | TokenType.COMMA_TOKEN | TokenType.SUBSTRING_MATCH_TOKEN | TokenType.PREFIX_MATCH_TOKEN | TokenType.SUFFIX_MATCH_TOKEN | TokenType.COLON_TOKEN | TokenType.SEMICOLON_TOKEN | TokenType.LEFT_SQUARE_BRACKET_TOKEN | TokenType.RIGHT_SQUARE_BRACKET_TOKEN | TokenType.LEFT_CURLY_BRACKET_TOKEN | TokenType.RIGHT_CURLY_BRACKET_TOKEN | TokenType.DASH_MATCH_TOKEN | TokenType.INCLUDE_MATCH_TOKEN | TokenType.COLUMN_TOKEN | TokenType.WHITESPACE_TOKEN | TokenType.CDC_TOKEN | TokenType.CDO_TOKEN | TokenType.EOF_TOKEN;
41
+ }
42
+ export interface StringValueToken extends IToken {
43
+ type: TokenType.STRING_TOKEN | TokenType.DELIM_TOKEN | TokenType.FUNCTION_TOKEN | TokenType.IDENT_TOKEN | TokenType.URL_TOKEN | TokenType.AT_KEYWORD_TOKEN;
44
+ value: string;
45
+ }
46
+ export interface HashToken extends IToken {
47
+ type: TokenType.HASH_TOKEN;
48
+ flags: number;
49
+ value: string;
50
+ }
51
+ export interface NumberValueToken extends IToken {
52
+ type: TokenType.PERCENTAGE_TOKEN | TokenType.NUMBER_TOKEN;
53
+ flags: number;
54
+ number: number;
55
+ }
56
+ export interface DimensionToken extends IToken {
57
+ type: TokenType.DIMENSION_TOKEN;
58
+ flags: number;
59
+ unit: string;
60
+ number: number;
61
+ }
62
+ export interface UnicodeRangeToken extends IToken {
63
+ type: TokenType.UNICODE_RANGE_TOKEN;
64
+ start: number;
65
+ end: number;
66
+ }
67
+ export declare type CSSToken = Token | StringValueToken | NumberValueToken | DimensionToken | UnicodeRangeToken | HashToken;
68
+ export declare const FLAG_UNRESTRICTED: number;
69
+ export declare const FLAG_ID: number;
70
+ export declare const FLAG_INTEGER: number;
71
+ export declare const FLAG_NUMBER: number;
72
+ export declare const EOF_TOKEN: Token;
73
+ export declare class Tokenizer {
74
+ private _value;
75
+ constructor();
76
+ write(chunk: string): void;
77
+ read(): CSSToken[];
78
+ private consumeToken;
79
+ private consumeCodePoint;
80
+ private reconsumeCodePoint;
81
+ private peekCodePoint;
82
+ private consumeUnicodeRangeToken;
83
+ private consumeIdentLikeToken;
84
+ private consumeUrlToken;
85
+ private consumeWhiteSpace;
86
+ private consumeBadUrlRemnants;
87
+ private consumeStringSlice;
88
+ private consumeStringToken;
89
+ private consumeNumber;
90
+ private consumeNumericToken;
91
+ private consumeEscapedCodePoint;
92
+ private consumeName;
93
+ }
94
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,7 @@
1
+ import { CSSValue } from '../syntax/parser';
2
+ import { ITypeDescriptor } from '../ITypeDescriptor';
3
+ import { GradientCorner } from './image';
4
+ export declare const angle: ITypeDescriptor<number>;
5
+ export declare const isAngle: (value: CSSValue) => boolean;
6
+ export declare const parseNamedSide: (tokens: CSSValue[]) => number | GradientCorner;
7
+ export declare const deg: (deg: number) => number;
@@ -0,0 +1,11 @@
1
+ import { ITypeDescriptor } from '../ITypeDescriptor';
2
+ import { Context } from '../../core/context';
3
+ export declare type Color = number;
4
+ export declare const color: ITypeDescriptor<Color>;
5
+ export declare const isTransparent: (color: Color) => boolean;
6
+ export declare const asString: (color: Color) => string;
7
+ export declare const pack: (r: number, g: number, b: number, a: number) => Color;
8
+ export declare const parseColor: (context: Context, value: string) => Color;
9
+ export declare const COLORS: {
10
+ [key: string]: Color;
11
+ };
@@ -0,0 +1,4 @@
1
+ import { CSSValue } from '../../syntax/parser';
2
+ import { CSSLinearGradientImage } from '../image';
3
+ import { Context } from '../../../core/context';
4
+ export declare const prefixLinearGradient: (context: Context, tokens: CSSValue[]) => CSSLinearGradientImage;
@@ -0,0 +1,4 @@
1
+ import { CSSValue } from '../../syntax/parser';
2
+ import { CSSRadialGradientImage } from '../image';
3
+ import { Context } from '../../../core/context';
4
+ export declare const prefixRadialGradient: (context: Context, tokens: CSSValue[]) => CSSRadialGradientImage;
@@ -0,0 +1,4 @@
1
+ import { CSSValue } from '../../syntax/parser';
2
+ import { CSSLinearGradientImage, CSSRadialGradientImage } from '../image';
3
+ import { Context } from '../../../core/context';
4
+ export declare const webkitGradient: (context: Context, tokens: CSSValue[]) => CSSLinearGradientImage | CSSRadialGradientImage;
@@ -0,0 +1,10 @@
1
+ import { LIST_STYLE_TYPE } from '../../property-descriptors/list-style-type';
2
+ import { CSSParsedCounterDeclaration } from '../../index';
3
+ export declare class CounterState {
4
+ private readonly counters;
5
+ getCounterValue(name: string): number;
6
+ getCounterValues(name: string): readonly number[];
7
+ pop(counters: string[]): void;
8
+ parse(style: CSSParsedCounterDeclaration): string[];
9
+ }
10
+ export declare const createCounterText: (value: number, type: LIST_STYLE_TYPE, appendSuffix: boolean) => string;
@@ -0,0 +1,7 @@
1
+ import { CSSValue } from '../../syntax/parser';
2
+ import { CSSRadialGradientImage, GradientColorStop, GradientCorner, UnprocessedGradientColorStop } from '../image';
3
+ import { Context } from '../../../core/context';
4
+ export declare const parseColorStop: (context: Context, args: CSSValue[]) => UnprocessedGradientColorStop;
5
+ export declare const processColorStops: (stops: UnprocessedGradientColorStop[], lineLength: number) => GradientColorStop[];
6
+ export declare const calculateGradientDirection: (angle: number | GradientCorner, width: number, height: number) => [number, number, number, number, number];
7
+ export declare const calculateRadius: (gradient: CSSRadialGradientImage, x: number, y: number, width: number, height: number) => [number, number];
@@ -0,0 +1,4 @@
1
+ import { CSSValue } from '../../syntax/parser';
2
+ import { CSSLinearGradientImage } from '../image';
3
+ import { Context } from '../../../core/context';
4
+ export declare const linearGradient: (context: Context, tokens: CSSValue[]) => CSSLinearGradientImage;
@@ -0,0 +1,12 @@
1
+ import { CSSValue } from '../../syntax/parser';
2
+ import { CSSRadialGradientImage } from '../image';
3
+ import { Context } from '../../../core/context';
4
+ export declare const CLOSEST_SIDE = "closest-side";
5
+ export declare const FARTHEST_SIDE = "farthest-side";
6
+ export declare const CLOSEST_CORNER = "closest-corner";
7
+ export declare const FARTHEST_CORNER = "farthest-corner";
8
+ export declare const CIRCLE = "circle";
9
+ export declare const ELLIPSE = "ellipse";
10
+ export declare const COVER = "cover";
11
+ export declare const CONTAIN = "contain";
12
+ export declare const radialGradient: (context: Context, tokens: CSSValue[]) => CSSRadialGradientImage;
@@ -0,0 +1,54 @@
1
+ import { CSSValue } from '../syntax/parser';
2
+ import { Color } from './color';
3
+ import { ITypeDescriptor } from '../ITypeDescriptor';
4
+ import { LengthPercentage } from './length-percentage';
5
+ export declare const enum CSSImageType {
6
+ URL = 0,
7
+ LINEAR_GRADIENT = 1,
8
+ RADIAL_GRADIENT = 2
9
+ }
10
+ export declare const isLinearGradient: (background: ICSSImage) => background is CSSLinearGradientImage;
11
+ export declare const isRadialGradient: (background: ICSSImage) => background is CSSRadialGradientImage;
12
+ export interface UnprocessedGradientColorStop {
13
+ color: Color;
14
+ stop: LengthPercentage | null;
15
+ }
16
+ export interface GradientColorStop {
17
+ color: Color;
18
+ stop: number;
19
+ }
20
+ export interface ICSSImage {
21
+ type: CSSImageType;
22
+ }
23
+ export interface CSSURLImage extends ICSSImage {
24
+ url: string;
25
+ type: CSSImageType.URL;
26
+ }
27
+ export declare type GradientCorner = [LengthPercentage, LengthPercentage];
28
+ interface ICSSGradientImage extends ICSSImage {
29
+ stops: UnprocessedGradientColorStop[];
30
+ }
31
+ export interface CSSLinearGradientImage extends ICSSGradientImage {
32
+ angle: number | GradientCorner;
33
+ type: CSSImageType.LINEAR_GRADIENT;
34
+ }
35
+ export declare const enum CSSRadialShape {
36
+ CIRCLE = 0,
37
+ ELLIPSE = 1
38
+ }
39
+ export declare const enum CSSRadialExtent {
40
+ CLOSEST_SIDE = 0,
41
+ FARTHEST_SIDE = 1,
42
+ CLOSEST_CORNER = 2,
43
+ FARTHEST_CORNER = 3
44
+ }
45
+ export declare type CSSRadialSize = CSSRadialExtent | LengthPercentage[];
46
+ export interface CSSRadialGradientImage extends ICSSGradientImage {
47
+ type: CSSImageType.RADIAL_GRADIENT;
48
+ shape: CSSRadialShape;
49
+ size: CSSRadialSize;
50
+ position: LengthPercentage[];
51
+ }
52
+ export declare const image: ITypeDescriptor<ICSSImage>;
53
+ export declare function isSupportedImage(value: CSSValue): boolean;
54
+ export {};
@@ -0,0 +1 @@
1
+ export declare type CSSTypes = 'angle' | 'color' | 'image' | 'length' | 'length-percentage' | 'time';
@@ -0,0 +1,11 @@
1
+ import { DimensionToken, NumberValueToken } from '../syntax/tokenizer';
2
+ import { CSSValue } from '../syntax/parser';
3
+ export declare type LengthPercentage = DimensionToken | NumberValueToken;
4
+ export declare type LengthPercentageTuple = [LengthPercentage] | [LengthPercentage, LengthPercentage];
5
+ export declare const isLengthPercentage: (token: CSSValue) => token is LengthPercentage;
6
+ export declare const parseLengthPercentageTuple: (tokens: LengthPercentage[]) => LengthPercentageTuple;
7
+ export declare const ZERO_LENGTH: NumberValueToken;
8
+ export declare const FIFTY_PERCENT: NumberValueToken;
9
+ export declare const HUNDRED_PERCENT: NumberValueToken;
10
+ export declare const getAbsoluteValueForTuple: (tuple: LengthPercentageTuple, width: number, height: number) => [number, number];
11
+ export declare const getAbsoluteValue: (token: LengthPercentage, parent: number) => number;
@@ -0,0 +1,4 @@
1
+ import { CSSValue } from '../syntax/parser';
2
+ import { DimensionToken, NumberValueToken } from '../syntax/tokenizer';
3
+ export declare type Length = DimensionToken | NumberValueToken;
4
+ export declare const isLength: (token: CSSValue) => token is Length;
@@ -0,0 +1,2 @@
1
+ import { ITypeDescriptor } from '../ITypeDescriptor';
2
+ export declare const time: ITypeDescriptor<number>;
@@ -0,0 +1,6 @@
1
+ export declare class DocumentCloner {
2
+ clonedReferenceElement?: HTMLElement;
3
+ constructor();
4
+ toIFrame(): Promise<HTMLIFrameElement>;
5
+ static destroy(): boolean;
6
+ }
@@ -0,0 +1,45 @@
1
+ import { Bounds } from '../css/layout/bounds';
2
+ import { Context } from '../core/context';
3
+ export interface CloneOptions {
4
+ ignoreElements?: (element: Element) => boolean;
5
+ onclone?: (document: Document, element: HTMLElement) => void;
6
+ allowTaint?: boolean;
7
+ }
8
+ export interface WindowOptions {
9
+ scrollX: number;
10
+ scrollY: number;
11
+ windowWidth: number;
12
+ windowHeight: number;
13
+ }
14
+ export declare type CloneConfigurations = CloneOptions & {
15
+ inlineImages: boolean;
16
+ copyStyles: boolean;
17
+ };
18
+ export declare class DocumentCloner {
19
+ private readonly context;
20
+ private readonly options;
21
+ private readonly scrolledElements;
22
+ private readonly referenceElement;
23
+ clonedReferenceElement?: HTMLElement;
24
+ private readonly documentElement;
25
+ private readonly counters;
26
+ private quoteDepth;
27
+ constructor(context: Context, element: HTMLElement, options: CloneConfigurations);
28
+ toIFrame(ownerDocument: Document, windowSize: Bounds): Promise<HTMLIFrameElement>;
29
+ createElementClone<T extends HTMLElement | SVGElement>(node: T): HTMLElement | SVGElement;
30
+ createCustomElementClone(node: HTMLElement): HTMLElement;
31
+ createStyleClone(node: HTMLStyleElement): HTMLStyleElement;
32
+ createCanvasClone(canvas: HTMLCanvasElement): HTMLImageElement | HTMLCanvasElement;
33
+ createVideoClone(video: HTMLVideoElement): HTMLCanvasElement;
34
+ appendChildNode(clone: HTMLElement | SVGElement, child: Node, copyStyles: boolean): void;
35
+ cloneChildNodes(node: Element, clone: HTMLElement | SVGElement, copyStyles: boolean): void;
36
+ cloneNode(node: Node, copyStyles: boolean): Node;
37
+ resolvePseudoContent(node: Element, clone: Element, style: CSSStyleDeclaration, pseudoElt: PseudoElementType): HTMLElement | void;
38
+ static destroy(container: HTMLIFrameElement): boolean;
39
+ }
40
+ declare enum PseudoElementType {
41
+ BEFORE = 0,
42
+ AFTER = 1
43
+ }
44
+ export declare const copyCSSStyles: <T extends HTMLElement | SVGElement>(style: CSSStyleDeclaration, target: T) => T;
45
+ export {};
@@ -0,0 +1,19 @@
1
+ import { CSSParsedDeclaration } from '../css/index';
2
+ import { TextContainer } from './text-container';
3
+ import { Bounds } from '../css/layout/bounds';
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
+ export declare class ElementContainer {
12
+ protected readonly context: Context;
13
+ readonly styles: CSSParsedDeclaration;
14
+ readonly textNodes: TextContainer[];
15
+ readonly elements: ElementContainer[];
16
+ bounds: Bounds;
17
+ flags: number;
18
+ constructor(context: Context, element: Element);
19
+ }
@@ -0,0 +1,6 @@
1
+ import { ElementContainer } from '../element-container';
2
+ import { Context } from '../../core/context';
3
+ export declare class LIElementContainer extends ElementContainer {
4
+ readonly value: number;
5
+ constructor(context: Context, element: HTMLLIElement);
6
+ }
@@ -0,0 +1,7 @@
1
+ import { ElementContainer } from '../element-container';
2
+ import { Context } from '../../core/context';
3
+ export declare class OLElementContainer extends ElementContainer {
4
+ readonly start: number;
5
+ readonly reversed: boolean;
6
+ constructor(context: Context, element: HTMLOListElement);
7
+ }
@@ -0,0 +1,6 @@
1
+ import { ElementContainer } from '../element-container';
2
+ import { Context } from '../../core/context';
3
+ export declare class SelectElementContainer extends ElementContainer {
4
+ readonly value: string;
5
+ constructor(context: Context, element: HTMLSelectElement);
6
+ }
@@ -0,0 +1,6 @@
1
+ import { ElementContainer } from '../element-container';
2
+ import { Context } from '../../core/context';
3
+ export declare class TextareaElementContainer extends ElementContainer {
4
+ readonly value: string;
5
+ constructor(context: Context, element: HTMLTextAreaElement);
6
+ }
@@ -0,0 +1,23 @@
1
+ import { ElementContainer } from './element-container';
2
+ import { Context } from '../core/context';
3
+ export declare const parseTree: (context: Context, element: HTMLElement) => ElementContainer;
4
+ export declare const isTextNode: (node: Node) => node is Text;
5
+ export declare const isElementNode: (node: Node) => node is Element;
6
+ export declare const isHTMLElementNode: (node: Node) => node is HTMLElement;
7
+ export declare const isSVGElementNode: (element: Element) => element is SVGElement;
8
+ export declare const isLIElement: (node: Element) => node is HTMLLIElement;
9
+ export declare const isOLElement: (node: Element) => node is HTMLOListElement;
10
+ export declare const isInputElement: (node: Element) => node is HTMLInputElement;
11
+ export declare const isHTMLElement: (node: Element) => node is HTMLHtmlElement;
12
+ export declare const isSVGElement: (node: Element) => node is SVGSVGElement;
13
+ export declare const isBodyElement: (node: Element) => node is HTMLBodyElement;
14
+ export declare const isCanvasElement: (node: Element) => node is HTMLCanvasElement;
15
+ export declare const isVideoElement: (node: Element) => node is HTMLVideoElement;
16
+ export declare const isImageElement: (node: Element) => node is HTMLImageElement;
17
+ export declare const isIFrameElement: (node: Element) => node is HTMLIFrameElement;
18
+ export declare const isStyleElement: (node: Element) => node is HTMLStyleElement;
19
+ export declare const isScriptElement: (node: Element) => node is HTMLScriptElement;
20
+ export declare const isTextareaElement: (node: Element) => node is HTMLTextAreaElement;
21
+ export declare const isSelectElement: (node: Element) => node is HTMLSelectElement;
22
+ export declare const isSlotElement: (node: Element) => node is HTMLSlotElement;
23
+ export declare const isCustomElement: (node: Element) => node is HTMLElement;
@@ -0,0 +1,8 @@
1
+ import { ElementContainer } from '../element-container';
2
+ import { Context } from '../../core/context';
3
+ export declare class CanvasElementContainer extends ElementContainer {
4
+ canvas: HTMLCanvasElement;
5
+ intrinsicWidth: number;
6
+ intrinsicHeight: number;
7
+ constructor(context: Context, canvas: HTMLCanvasElement);
8
+ }
@@ -0,0 +1,11 @@
1
+ import { ElementContainer } from '../element-container';
2
+ import { Color } from '../../css/types/color';
3
+ import { Context } from '../../core/context';
4
+ export declare class IFrameElementContainer extends ElementContainer {
5
+ src: string;
6
+ width: number;
7
+ height: number;
8
+ tree?: ElementContainer;
9
+ backgroundColor: Color;
10
+ constructor(context: Context, iframe: HTMLIFrameElement);
11
+ }