blitz-pdf 0.0.0-stage → 0.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 (370) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +355 -2
  3. package/THIRD_PARTY_NOTICES.md +25 -0
  4. package/assets/icon.svg +4 -0
  5. package/dist/api.d.ts +7 -0
  6. package/dist/api.d.ts.map +1 -0
  7. package/dist/api.js +46 -0
  8. package/dist/api.js.map +1 -0
  9. package/dist/assets.d.ts +7 -0
  10. package/dist/assets.d.ts.map +1 -0
  11. package/dist/assets.js +52 -0
  12. package/dist/assets.js.map +1 -0
  13. package/dist/browser.d.ts +3 -0
  14. package/dist/browser.d.ts.map +1 -0
  15. package/dist/browser.js +3 -0
  16. package/dist/browser.js.map +1 -0
  17. package/dist/node.d.ts +3 -0
  18. package/dist/node.d.ts.map +1 -0
  19. package/dist/node.js +10 -0
  20. package/dist/node.js.map +1 -0
  21. package/dist/options.d.ts +24 -0
  22. package/dist/options.d.ts.map +1 -0
  23. package/dist/options.js +135 -0
  24. package/dist/options.js.map +1 -0
  25. package/dist/types.d.ts +51 -0
  26. package/dist/types.d.ts.map +1 -0
  27. package/dist/types.js +2 -0
  28. package/dist/types.js.map +1 -0
  29. package/examples/bun.ts +8 -0
  30. package/examples/german-invoice/README.md +70 -0
  31. package/examples/german-invoice/data.mjs +83 -0
  32. package/examples/german-invoice/invoice.css +59 -0
  33. package/examples/german-invoice/template.mjs +49 -0
  34. package/examples/german-invoice.mjs +20 -0
  35. package/examples/invoice.html +29 -0
  36. package/examples/node.mjs +8 -0
  37. package/examples/pagination.html +40 -0
  38. package/examples/pagination.mjs +8 -0
  39. package/licenses/DejaVu.txt +187 -0
  40. package/licenses/RUST_DEPENDENCIES.txt +11577 -0
  41. package/package.json +89 -4
  42. package/src/api.ts +44 -0
  43. package/src/assets.ts +43 -0
  44. package/src/browser.ts +6 -0
  45. package/src/node.ts +12 -0
  46. package/src/options.ts +101 -0
  47. package/src/types.ts +49 -0
  48. package/vendor/README.md +17 -0
  49. package/vendor/stylo/.cargo-ok +1 -0
  50. package/vendor/stylo/.cargo_vcs_info.json +6 -0
  51. package/vendor/stylo/Cargo.lock +1485 -0
  52. package/vendor/stylo/Cargo.toml +274 -0
  53. package/vendor/stylo/LICENSE +373 -0
  54. package/vendor/stylo/README.md +6 -0
  55. package/vendor/stylo/applicable_declarations.rs +328 -0
  56. package/vendor/stylo/author_styles.rs +79 -0
  57. package/vendor/stylo/bezier.rs +176 -0
  58. package/vendor/stylo/bloom.rs +414 -0
  59. package/vendor/stylo/build.rs +91 -0
  60. package/vendor/stylo/build_gecko.rs +393 -0
  61. package/vendor/stylo/color/color_function.rs +601 -0
  62. package/vendor/stylo/color/component.rs +207 -0
  63. package/vendor/stylo/color/convert.rs +935 -0
  64. package/vendor/stylo/color/gamut/raytrace.rs +265 -0
  65. package/vendor/stylo/color/gamut.rs +227 -0
  66. package/vendor/stylo/color/mix.rs +645 -0
  67. package/vendor/stylo/color/mod.rs +750 -0
  68. package/vendor/stylo/color/parsing.rs +770 -0
  69. package/vendor/stylo/color/to_css.rs +297 -0
  70. package/vendor/stylo/context.rs +716 -0
  71. package/vendor/stylo/counter_style/mod.rs +754 -0
  72. package/vendor/stylo/counter_style/predefined.rs +61 -0
  73. package/vendor/stylo/counter_style/update_predefined.py +35 -0
  74. package/vendor/stylo/custom_properties.rs +2023 -0
  75. package/vendor/stylo/custom_properties_map.rs +220 -0
  76. package/vendor/stylo/data.rs +693 -0
  77. package/vendor/stylo/device/gecko.rs +486 -0
  78. package/vendor/stylo/device/mod.rs +304 -0
  79. package/vendor/stylo/device/servo.rs +507 -0
  80. package/vendor/stylo/dom.rs +1164 -0
  81. package/vendor/stylo/dom_apis.rs +937 -0
  82. package/vendor/stylo/driver.rs +172 -0
  83. package/vendor/stylo/error_reporting.rs +484 -0
  84. package/vendor/stylo/font_face.rs +558 -0
  85. package/vendor/stylo/font_metrics.rs +124 -0
  86. package/vendor/stylo/gecko/anon_boxes.toml +113 -0
  87. package/vendor/stylo/gecko/arc_types.rs +211 -0
  88. package/vendor/stylo/gecko/conversions.rs +59 -0
  89. package/vendor/stylo/gecko/data.rs +222 -0
  90. package/vendor/stylo/gecko/media_features.rs +971 -0
  91. package/vendor/stylo/gecko/mod.rs +20 -0
  92. package/vendor/stylo/gecko/non_ts_pseudo_class_list.rs +119 -0
  93. package/vendor/stylo/gecko/pseudo_element.rs +640 -0
  94. package/vendor/stylo/gecko/pseudo_element_definition.mako.rs +298 -0
  95. package/vendor/stylo/gecko/pseudo_elements.py +137 -0
  96. package/vendor/stylo/gecko/pseudo_elements.toml +197 -0
  97. package/vendor/stylo/gecko/regen_pseudo_elements.py +33 -0
  98. package/vendor/stylo/gecko/restyle_damage.rs +127 -0
  99. package/vendor/stylo/gecko/selector_parser.rs +627 -0
  100. package/vendor/stylo/gecko/snapshot.rs +202 -0
  101. package/vendor/stylo/gecko/snapshot_helpers.rs +334 -0
  102. package/vendor/stylo/gecko/traversal.rs +52 -0
  103. package/vendor/stylo/gecko/wrapper.rs +2258 -0
  104. package/vendor/stylo/gecko_bindings/mod.rs +34 -0
  105. package/vendor/stylo/gecko_bindings/sugar/mod.rs +12 -0
  106. package/vendor/stylo/gecko_bindings/sugar/ns_com_ptr.rs +15 -0
  107. package/vendor/stylo/gecko_bindings/sugar/ns_compatibility.rs +19 -0
  108. package/vendor/stylo/gecko_bindings/sugar/ns_style_auto_array.rs +111 -0
  109. package/vendor/stylo/gecko_bindings/sugar/origin_flags.rs +31 -0
  110. package/vendor/stylo/gecko_bindings/sugar/ownership.rs +70 -0
  111. package/vendor/stylo/gecko_bindings/sugar/refptr.rs +299 -0
  112. package/vendor/stylo/gecko_string_cache/mod.rs +543 -0
  113. package/vendor/stylo/gecko_string_cache/namespace.rs +106 -0
  114. package/vendor/stylo/global_style_data.rs +224 -0
  115. package/vendor/stylo/invalidation/element/document_state.rs +156 -0
  116. package/vendor/stylo/invalidation/element/element_wrapper.rs +432 -0
  117. package/vendor/stylo/invalidation/element/invalidation_map.rs +1631 -0
  118. package/vendor/stylo/invalidation/element/invalidator.rs +1470 -0
  119. package/vendor/stylo/invalidation/element/mod.rs +13 -0
  120. package/vendor/stylo/invalidation/element/relative_selector.rs +1399 -0
  121. package/vendor/stylo/invalidation/element/restyle_hints.rs +226 -0
  122. package/vendor/stylo/invalidation/element/state_and_attributes.rs +756 -0
  123. package/vendor/stylo/invalidation/media_queries.rs +144 -0
  124. package/vendor/stylo/invalidation/mod.rs +10 -0
  125. package/vendor/stylo/invalidation/stylesheets.rs +745 -0
  126. package/vendor/stylo/invalidation/viewport_units.rs +71 -0
  127. package/vendor/stylo/lib.rs +336 -0
  128. package/vendor/stylo/logical_geometry.rs +1684 -0
  129. package/vendor/stylo/macros.rs +70 -0
  130. package/vendor/stylo/matching.rs +1226 -0
  131. package/vendor/stylo/media_queries/media_list.rs +168 -0
  132. package/vendor/stylo/media_queries/media_query.rs +190 -0
  133. package/vendor/stylo/media_queries/mod.rs +13 -0
  134. package/vendor/stylo/parallel.rs +205 -0
  135. package/vendor/stylo/parser.rs +276 -0
  136. package/vendor/stylo/piecewise_linear.rs +282 -0
  137. package/vendor/stylo/prefs.rs +33 -0
  138. package/vendor/stylo/properties/build.py +119 -0
  139. package/vendor/stylo/properties/cascade.rs +2704 -0
  140. package/vendor/stylo/properties/computed_value_flags.rs +206 -0
  141. package/vendor/stylo/properties/counted_unknown_properties.py +104 -0
  142. package/vendor/stylo/properties/counter_style_descriptors.toml +45 -0
  143. package/vendor/stylo/properties/data.py +1375 -0
  144. package/vendor/stylo/properties/declaration_block.rs +1788 -0
  145. package/vendor/stylo/properties/font_face_descriptors.toml +50 -0
  146. package/vendor/stylo/properties/gecko.mako.rs +1555 -0
  147. package/vendor/stylo/properties/helpers/animated_properties.mako.rs +800 -0
  148. package/vendor/stylo/properties/helpers.mako.rs +812 -0
  149. package/vendor/stylo/properties/longhands.toml +4305 -0
  150. package/vendor/stylo/properties/mod.rs +1857 -0
  151. package/vendor/stylo/properties/properties.html.mako +31 -0
  152. package/vendor/stylo/properties/properties.mako.rs +3103 -0
  153. package/vendor/stylo/properties/property_descriptors.toml +18 -0
  154. package/vendor/stylo/properties/shorthands.rs +4241 -0
  155. package/vendor/stylo/properties/shorthands.toml +575 -0
  156. package/vendor/stylo/properties/vendored_python/mako-1.3.10-py3-none-any.whl +0 -0
  157. package/vendor/stylo/properties/vendored_python/markupsafe/LICENSE.txt +28 -0
  158. package/vendor/stylo/properties/vendored_python/markupsafe/__init__.py +384 -0
  159. package/vendor/stylo/properties/vendored_python/toml-0.10.2-py2.py3-none-any.whl +0 -0
  160. package/vendor/stylo/properties/view_transition_descriptors.toml +11 -0
  161. package/vendor/stylo/properties_and_values/mod.rs +12 -0
  162. package/vendor/stylo/properties_and_values/registry.rs +65 -0
  163. package/vendor/stylo/properties_and_values/rule.rs +331 -0
  164. package/vendor/stylo/properties_and_values/syntax/ascii.rs +60 -0
  165. package/vendor/stylo/properties_and_values/syntax/data_type.rs +146 -0
  166. package/vendor/stylo/properties_and_values/syntax/mod.rs +437 -0
  167. package/vendor/stylo/properties_and_values/value.rs +758 -0
  168. package/vendor/stylo/queries/condition.rs +996 -0
  169. package/vendor/stylo/queries/feature.rs +199 -0
  170. package/vendor/stylo/queries/feature_expression.rs +1170 -0
  171. package/vendor/stylo/queries/mod.rs +19 -0
  172. package/vendor/stylo/queries/values.rs +46 -0
  173. package/vendor/stylo/rule_cache.rs +267 -0
  174. package/vendor/stylo/rule_collector.rs +554 -0
  175. package/vendor/stylo/rule_tree/core.rs +787 -0
  176. package/vendor/stylo/rule_tree/level.rs +396 -0
  177. package/vendor/stylo/rule_tree/map.rs +201 -0
  178. package/vendor/stylo/rule_tree/mod.rs +427 -0
  179. package/vendor/stylo/rule_tree/source.rs +80 -0
  180. package/vendor/stylo/rule_tree/unsafe_box.rs +78 -0
  181. package/vendor/stylo/scoped_tls.rs +80 -0
  182. package/vendor/stylo/selector_map.rs +1050 -0
  183. package/vendor/stylo/selector_parser.rs +305 -0
  184. package/vendor/stylo/servo/animation.rs +1922 -0
  185. package/vendor/stylo/servo/attr.rs +714 -0
  186. package/vendor/stylo/servo/encoding_support.rs +81 -0
  187. package/vendor/stylo/servo/media_features.rs +254 -0
  188. package/vendor/stylo/servo/mod.rs +16 -0
  189. package/vendor/stylo/servo/restyle_damage.rs +215 -0
  190. package/vendor/stylo/servo/selector_parser.rs +1036 -0
  191. package/vendor/stylo/servo/shadow_parts.rs +207 -0
  192. package/vendor/stylo/shared_lock.rs +271 -0
  193. package/vendor/stylo/sharing/checks.rs +281 -0
  194. package/vendor/stylo/sharing/mod.rs +1000 -0
  195. package/vendor/stylo/simple_buckets_map.rs +52 -0
  196. package/vendor/stylo/str.rs +168 -0
  197. package/vendor/stylo/style_adjuster.rs +1086 -0
  198. package/vendor/stylo/style_resolver.rs +658 -0
  199. package/vendor/stylo/stylesheet_set.rs +658 -0
  200. package/vendor/stylo/stylesheets/appearance_base_rule.rs +51 -0
  201. package/vendor/stylo/stylesheets/container_rule.rs +769 -0
  202. package/vendor/stylo/stylesheets/counter_style_rule.rs +7 -0
  203. package/vendor/stylo/stylesheets/document_rule.rs +272 -0
  204. package/vendor/stylo/stylesheets/font_face_rule.rs +7 -0
  205. package/vendor/stylo/stylesheets/font_feature_values_rule.rs +481 -0
  206. package/vendor/stylo/stylesheets/font_palette_values_rule.rs +304 -0
  207. package/vendor/stylo/stylesheets/import_rule.rs +259 -0
  208. package/vendor/stylo/stylesheets/keyframes_rule.rs +733 -0
  209. package/vendor/stylo/stylesheets/layer_rule.rs +221 -0
  210. package/vendor/stylo/stylesheets/loader.rs +29 -0
  211. package/vendor/stylo/stylesheets/margin_rule.rs +190 -0
  212. package/vendor/stylo/stylesheets/media_rule.rs +191 -0
  213. package/vendor/stylo/stylesheets/mod.rs +918 -0
  214. package/vendor/stylo/stylesheets/namespace_rule.rs +43 -0
  215. package/vendor/stylo/stylesheets/nested_declarations_rule.rs +51 -0
  216. package/vendor/stylo/stylesheets/origin.rs +249 -0
  217. package/vendor/stylo/stylesheets/page_rule.rs +354 -0
  218. package/vendor/stylo/stylesheets/position_try_rule.rs +68 -0
  219. package/vendor/stylo/stylesheets/property_rule.rs +5 -0
  220. package/vendor/stylo/stylesheets/rule_list.rs +167 -0
  221. package/vendor/stylo/stylesheets/rule_parser.rs +1189 -0
  222. package/vendor/stylo/stylesheets/rules_iterator.rs +397 -0
  223. package/vendor/stylo/stylesheets/scope_rule.rs +511 -0
  224. package/vendor/stylo/stylesheets/starting_style_rule.rs +54 -0
  225. package/vendor/stylo/stylesheets/style_rule.rs +80 -0
  226. package/vendor/stylo/stylesheets/stylesheet.rs +570 -0
  227. package/vendor/stylo/stylesheets/supports_rule.rs +486 -0
  228. package/vendor/stylo/stylesheets/view_transition_rule.rs +81 -0
  229. package/vendor/stylo/stylist.rs +5076 -0
  230. package/vendor/stylo/thread_state.rs +87 -0
  231. package/vendor/stylo/traversal.rs +765 -0
  232. package/vendor/stylo/traversal_flags.rs +68 -0
  233. package/vendor/stylo/typed_om/mod.rs +981 -0
  234. package/vendor/stylo/typed_om/numeric.rs +128 -0
  235. package/vendor/stylo/typed_om/numeric_declaration.rs +93 -0
  236. package/vendor/stylo/typed_om/numeric_type.rs +640 -0
  237. package/vendor/stylo/typed_om/sum_value.rs +426 -0
  238. package/vendor/stylo/url/gecko.rs +367 -0
  239. package/vendor/stylo/url/mod.rs +71 -0
  240. package/vendor/stylo/url/servo.rs +239 -0
  241. package/vendor/stylo/use_counters/mod.rs +137 -0
  242. package/vendor/stylo/values/animated/color.rs +103 -0
  243. package/vendor/stylo/values/animated/effects.rs +26 -0
  244. package/vendor/stylo/values/animated/font.rs +37 -0
  245. package/vendor/stylo/values/animated/grid.rs +161 -0
  246. package/vendor/stylo/values/animated/lists.rs +141 -0
  247. package/vendor/stylo/values/animated/mod.rs +550 -0
  248. package/vendor/stylo/values/animated/svg.rs +46 -0
  249. package/vendor/stylo/values/animated/text.rs +58 -0
  250. package/vendor/stylo/values/animated/transform.rs +1592 -0
  251. package/vendor/stylo/values/computed/align.rs +90 -0
  252. package/vendor/stylo/values/computed/angle.rs +130 -0
  253. package/vendor/stylo/values/computed/animation.rs +124 -0
  254. package/vendor/stylo/values/computed/background.rs +13 -0
  255. package/vendor/stylo/values/computed/basic_shape.rs +267 -0
  256. package/vendor/stylo/values/computed/border.rs +163 -0
  257. package/vendor/stylo/values/computed/box.rs +267 -0
  258. package/vendor/stylo/values/computed/calc.rs +334 -0
  259. package/vendor/stylo/values/computed/color.rs +161 -0
  260. package/vendor/stylo/values/computed/column.rs +11 -0
  261. package/vendor/stylo/values/computed/corner_shape.rs +155 -0
  262. package/vendor/stylo/values/computed/counters.rs +26 -0
  263. package/vendor/stylo/values/computed/easing.rs +109 -0
  264. package/vendor/stylo/values/computed/effects.rs +30 -0
  265. package/vendor/stylo/values/computed/flex.rs +19 -0
  266. package/vendor/stylo/values/computed/font.rs +1517 -0
  267. package/vendor/stylo/values/computed/image.rs +273 -0
  268. package/vendor/stylo/values/computed/length.rs +576 -0
  269. package/vendor/stylo/values/computed/length_percentage.rs +1055 -0
  270. package/vendor/stylo/values/computed/list.rs +16 -0
  271. package/vendor/stylo/values/computed/mod.rs +1141 -0
  272. package/vendor/stylo/values/computed/motion.rs +73 -0
  273. package/vendor/stylo/values/computed/outline.rs +7 -0
  274. package/vendor/stylo/values/computed/page.rs +77 -0
  275. package/vendor/stylo/values/computed/param.rs +9 -0
  276. package/vendor/stylo/values/computed/percentage.rs +143 -0
  277. package/vendor/stylo/values/computed/position.rs +273 -0
  278. package/vendor/stylo/values/computed/ratio.rs +88 -0
  279. package/vendor/stylo/values/computed/rect.rs +19 -0
  280. package/vendor/stylo/values/computed/resolution.rs +76 -0
  281. package/vendor/stylo/values/computed/svg.rs +66 -0
  282. package/vendor/stylo/values/computed/table.rs +7 -0
  283. package/vendor/stylo/values/computed/text.rs +199 -0
  284. package/vendor/stylo/values/computed/time.rs +83 -0
  285. package/vendor/stylo/values/computed/transform.rs +559 -0
  286. package/vendor/stylo/values/computed/tree_counting.rs +30 -0
  287. package/vendor/stylo/values/computed/ui.rs +23 -0
  288. package/vendor/stylo/values/computed/url.rs +12 -0
  289. package/vendor/stylo/values/distance.rs +139 -0
  290. package/vendor/stylo/values/generics/animation.rs +363 -0
  291. package/vendor/stylo/values/generics/background.rs +65 -0
  292. package/vendor/stylo/values/generics/basic_shape.rs +1389 -0
  293. package/vendor/stylo/values/generics/border.rs +303 -0
  294. package/vendor/stylo/values/generics/box.rs +552 -0
  295. package/vendor/stylo/values/generics/calc.rs +2986 -0
  296. package/vendor/stylo/values/generics/color.rs +318 -0
  297. package/vendor/stylo/values/generics/column.rs +44 -0
  298. package/vendor/stylo/values/generics/counters.rs +320 -0
  299. package/vendor/stylo/values/generics/easing.rs +132 -0
  300. package/vendor/stylo/values/generics/effects.rs +131 -0
  301. package/vendor/stylo/values/generics/flex.rs +34 -0
  302. package/vendor/stylo/values/generics/font.rs +376 -0
  303. package/vendor/stylo/values/generics/grid.rs +962 -0
  304. package/vendor/stylo/values/generics/image.rs +653 -0
  305. package/vendor/stylo/values/generics/length.rs +656 -0
  306. package/vendor/stylo/values/generics/mod.rs +303 -0
  307. package/vendor/stylo/values/generics/motion.rs +274 -0
  308. package/vendor/stylo/values/generics/page.rs +167 -0
  309. package/vendor/stylo/values/generics/position.rs +669 -0
  310. package/vendor/stylo/values/generics/ratio.rs +88 -0
  311. package/vendor/stylo/values/generics/rect.rs +147 -0
  312. package/vendor/stylo/values/generics/size.rs +102 -0
  313. package/vendor/stylo/values/generics/svg.rs +226 -0
  314. package/vendor/stylo/values/generics/text.rs +268 -0
  315. package/vendor/stylo/values/generics/transform.rs +1157 -0
  316. package/vendor/stylo/values/generics/ui.rs +147 -0
  317. package/vendor/stylo/values/generics/url.rs +51 -0
  318. package/vendor/stylo/values/mod.rs +820 -0
  319. package/vendor/stylo/values/resolved/animation.rs +33 -0
  320. package/vendor/stylo/values/resolved/color.rs +53 -0
  321. package/vendor/stylo/values/resolved/counters.rs +45 -0
  322. package/vendor/stylo/values/resolved/mod.rs +316 -0
  323. package/vendor/stylo/values/specified/align.rs +711 -0
  324. package/vendor/stylo/values/specified/angle.rs +407 -0
  325. package/vendor/stylo/values/specified/animation.rs +921 -0
  326. package/vendor/stylo/values/specified/background.rs +270 -0
  327. package/vendor/stylo/values/specified/basic_shape.rs +986 -0
  328. package/vendor/stylo/values/specified/border.rs +430 -0
  329. package/vendor/stylo/values/specified/box.rs +2231 -0
  330. package/vendor/stylo/values/specified/calc.rs +1657 -0
  331. package/vendor/stylo/values/specified/color.rs +1210 -0
  332. package/vendor/stylo/values/specified/column.rs +11 -0
  333. package/vendor/stylo/values/specified/corner_shape.rs +152 -0
  334. package/vendor/stylo/values/specified/counters.rs +242 -0
  335. package/vendor/stylo/values/specified/easing.rs +225 -0
  336. package/vendor/stylo/values/specified/effects.rs +421 -0
  337. package/vendor/stylo/values/specified/flex.rs +42 -0
  338. package/vendor/stylo/values/specified/font.rs +2103 -0
  339. package/vendor/stylo/values/specified/frequency.rs +39 -0
  340. package/vendor/stylo/values/specified/grid.rs +407 -0
  341. package/vendor/stylo/values/specified/image.rs +1385 -0
  342. package/vendor/stylo/values/specified/intersection_observer.rs +80 -0
  343. package/vendor/stylo/values/specified/length.rs +2024 -0
  344. package/vendor/stylo/values/specified/list.rs +190 -0
  345. package/vendor/stylo/values/specified/mod.rs +531 -0
  346. package/vendor/stylo/values/specified/motion.rs +316 -0
  347. package/vendor/stylo/values/specified/number.rs +603 -0
  348. package/vendor/stylo/values/specified/outline.rs +69 -0
  349. package/vendor/stylo/values/specified/page.rs +94 -0
  350. package/vendor/stylo/values/specified/param.rs +121 -0
  351. package/vendor/stylo/values/specified/percentage.rs +364 -0
  352. package/vendor/stylo/values/specified/position.rs +2247 -0
  353. package/vendor/stylo/values/specified/ratio.rs +29 -0
  354. package/vendor/stylo/values/specified/rect.rs +28 -0
  355. package/vendor/stylo/values/specified/resolution.rs +237 -0
  356. package/vendor/stylo/values/specified/source_size_list.rs +135 -0
  357. package/vendor/stylo/values/specified/svg.rs +427 -0
  358. package/vendor/stylo/values/specified/svg_path.rs +1115 -0
  359. package/vendor/stylo/values/specified/table.rs +38 -0
  360. package/vendor/stylo/values/specified/text.rs +1561 -0
  361. package/vendor/stylo/values/specified/time.rs +313 -0
  362. package/vendor/stylo/values/specified/transform.rs +599 -0
  363. package/vendor/stylo/values/specified/tree_counting.rs +32 -0
  364. package/vendor/stylo/values/specified/ui.rs +344 -0
  365. package/vendor/stylo/values/specified/url.rs +12 -0
  366. package/vendor/stylo/values/tagged_numeric.rs +253 -0
  367. package/wasm/blitz_pdf.d.ts +67 -0
  368. package/wasm/blitz_pdf.js +699 -0
  369. package/wasm/blitz_pdf_bg.wasm +0 -0
  370. package/wasm/blitz_pdf_bg.wasm.d.ts +20 -0
@@ -0,0 +1,33 @@
1
+ /* This Source Code Form is subject to the terms of the Mozilla Public
2
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
3
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
+
5
+ //! Resolved animation values.
6
+
7
+ use super::{Context, ToResolvedValue};
8
+
9
+ use crate::values::computed::time::Time;
10
+ use crate::values::computed::AnimationDuration;
11
+
12
+ impl ToResolvedValue for AnimationDuration {
13
+ type ResolvedValue = Self;
14
+
15
+ fn to_resolved_value(self, context: &Context) -> Self::ResolvedValue {
16
+ match self {
17
+ // For backwards-compatibility with Level 1, when the computed value of
18
+ // animation-timeline is auto (i.e. only one list value, and that value being auto),
19
+ // the resolved value of auto for animation-duration is 0s whenever its used value
20
+ // would also be 0s.
21
+ // https://drafts.csswg.org/css-animations-2/#animation-duration
22
+ Self::Auto if context.style.get_ui().has_initial_animation_timeline() => {
23
+ Self::Time(Time::from_seconds(0.0f32))
24
+ },
25
+ _ => self,
26
+ }
27
+ }
28
+
29
+ #[inline]
30
+ fn from_resolved_value(value: Self::ResolvedValue) -> Self {
31
+ value
32
+ }
33
+ }
@@ -0,0 +1,53 @@
1
+ /* This Source Code Form is subject to the terms of the Mozilla Public
2
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
3
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
+
5
+ //! Resolved color values.
6
+
7
+ use super::{Context, ToResolvedValue};
8
+
9
+ use crate::properties::{PropertyId, ShorthandId};
10
+ use crate::values::computed::color as computed;
11
+ use crate::values::generics::color as generics;
12
+
13
+ impl ToResolvedValue for computed::Color {
14
+ // A resolved color value is (almost always) a rgba color, with currentcolor resolved.
15
+ type ResolvedValue = Self;
16
+
17
+ #[inline]
18
+ fn to_resolved_value(self, context: &Context) -> Self::ResolvedValue {
19
+ if context.for_property == PropertyId::NonCustom(ShorthandId::TextDecoration.into())
20
+ && matches!(self, Self::CurrentColor)
21
+ {
22
+ return self;
23
+ }
24
+ generics::Color::Absolute(context.style.resolve_color(&self))
25
+ }
26
+
27
+ #[inline]
28
+ fn from_resolved_value(resolved: Self::ResolvedValue) -> Self {
29
+ resolved
30
+ }
31
+ }
32
+
33
+ impl ToResolvedValue for computed::CaretColor {
34
+ // A resolved caret-color value is an rgba color, with auto resolving to
35
+ // currentcolor.
36
+ type ResolvedValue = computed::Color;
37
+
38
+ #[inline]
39
+ fn to_resolved_value(self, context: &Context) -> Self::ResolvedValue {
40
+ let color = match self.0 {
41
+ generics::ColorOrAuto::Color(color) => color,
42
+ generics::ColorOrAuto::Auto => generics::Color::currentcolor(),
43
+ };
44
+ color.to_resolved_value(context)
45
+ }
46
+
47
+ #[inline]
48
+ fn from_resolved_value(resolved: Self::ResolvedValue) -> Self {
49
+ generics::CaretColor(generics::ColorOrAuto::Color(
50
+ computed::Color::from_resolved_value(resolved),
51
+ ))
52
+ }
53
+ }
@@ -0,0 +1,45 @@
1
+ /* This Source Code Form is subject to the terms of the Mozilla Public
2
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
3
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
+
5
+ //! Resolved values for counter properties
6
+
7
+ use super::{Context, ToResolvedValue};
8
+ use crate::values::computed;
9
+ #[cfg(feature = "gecko")]
10
+ use selectors::parser::PseudoElement;
11
+
12
+ /// https://drafts.csswg.org/css-content/#content-property
13
+ ///
14
+ /// We implement this at resolved value time because otherwise it causes us to allocate a bunch of
15
+ /// useless initial structs for all ::before / ::after, which is a bit unfortunate.
16
+ ///
17
+ /// Though these should be temporary, mostly, so if this causes complexity in
18
+ /// other places, it should be fine to move to `StyleAdjuster`.
19
+ ///
20
+ /// See https://github.com/w3c/csswg-drafts/issues/4632 for where some related
21
+ /// issues are being discussed.
22
+ impl ToResolvedValue for computed::Content {
23
+ type ResolvedValue = Self;
24
+
25
+ #[inline]
26
+ fn to_resolved_value(self, context: &Context) -> Self {
27
+ let (is_before_or_after, is_marker) = match context.style.pseudo() {
28
+ Some(ref pseudo) => (pseudo.is_before_or_after(), pseudo.is_marker()),
29
+ None => (false, false),
30
+ };
31
+ match self {
32
+ Self::Normal if is_before_or_after => Self::None,
33
+ // For now, make `content: none` resolve to `normal` for pseudos
34
+ // other than ::before, ::after and ::marker, as we don't respect it.
35
+ // https://github.com/w3c/csswg-drafts/issues/6124
36
+ Self::None if !is_before_or_after && !is_marker => Self::Normal,
37
+ other => other,
38
+ }
39
+ }
40
+
41
+ #[inline]
42
+ fn from_resolved_value(resolved: Self) -> Self {
43
+ resolved
44
+ }
45
+ }
@@ -0,0 +1,316 @@
1
+ /* This Source Code Form is subject to the terms of the Mozilla Public
2
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
3
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
+
5
+ //! Resolved values. These are almost always computed values, but in some cases
6
+ //! there are used values.
7
+
8
+ #[cfg(feature = "gecko")]
9
+ use crate::device::Device;
10
+ use crate::properties::{ComputedValues, LonghandId, PropertyId};
11
+ use crate::ArcSlice;
12
+ use app_units::Au;
13
+ use servo_arc::Arc;
14
+ use smallvec::SmallVec;
15
+
16
+ mod animation;
17
+ mod color;
18
+ mod counters;
19
+
20
+ use crate::values::computed::{self, Length};
21
+
22
+ /// Element-specific information needed to resolve property values.
23
+ #[cfg(feature = "gecko")]
24
+ pub struct ResolvedElementInfo<'a> {
25
+ /// Element we're resolving line-height against.
26
+ pub element: crate::gecko::wrapper::GeckoElement<'a>,
27
+ }
28
+
29
+ /// Information needed to resolve a given value.
30
+ pub struct Context<'a> {
31
+ /// The style we're resolving for. This is useful to resolve currentColor.
32
+ pub style: &'a ComputedValues,
33
+ /// The device / document we're resolving style for. Useful to do font metrics stuff needed for
34
+ /// line-height.
35
+ #[cfg(feature = "gecko")]
36
+ pub device: &'a Device,
37
+ /// The element-specific information to resolve the value.
38
+ #[cfg(feature = "gecko")]
39
+ pub element_info: ResolvedElementInfo<'a>,
40
+ /// The property we're resolving the value for over-all (might be a shorthand, or a custom property).
41
+ pub for_property: PropertyId,
42
+ /// The current (physical) longhand we're resolving the value for. Guaranteed to be `Some()`
43
+ /// inside `ToResolvedValue` implementations.
44
+ pub current_longhand: Option<LonghandId>,
45
+ }
46
+
47
+ /// A trait to represent the conversion between resolved and resolved values.
48
+ ///
49
+ /// This trait is derivable with `#[derive(ToResolvedValue)]`.
50
+ ///
51
+ /// The deriving code assumes that if the type isn't generic, then the trait can
52
+ /// be implemented as simple move. This means that a manual implementation with
53
+ /// `ResolvedValue = Self` is bogus if it returns anything else than a clone.
54
+ pub trait ToResolvedValue {
55
+ /// The resolved value type we're going to be converted to.
56
+ type ResolvedValue;
57
+
58
+ /// Convert a resolved value to a resolved value.
59
+ fn to_resolved_value(self, context: &Context) -> Self::ResolvedValue;
60
+
61
+ /// Convert a resolved value to resolved value form.
62
+ fn from_resolved_value(resolved: Self::ResolvedValue) -> Self;
63
+ }
64
+
65
+ macro_rules! trivial_to_resolved_value {
66
+ ($ty:ty) => {
67
+ impl $crate::values::resolved::ToResolvedValue for $ty {
68
+ type ResolvedValue = Self;
69
+
70
+ #[inline]
71
+ fn to_resolved_value(self, _: &Context) -> Self {
72
+ self
73
+ }
74
+
75
+ #[inline]
76
+ fn from_resolved_value(resolved: Self::ResolvedValue) -> Self {
77
+ resolved
78
+ }
79
+ }
80
+ };
81
+ }
82
+
83
+ trivial_to_resolved_value!(());
84
+ trivial_to_resolved_value!(bool);
85
+ trivial_to_resolved_value!(f32);
86
+ trivial_to_resolved_value!(u8);
87
+ trivial_to_resolved_value!(i8);
88
+ trivial_to_resolved_value!(u16);
89
+ trivial_to_resolved_value!(i16);
90
+ trivial_to_resolved_value!(u32);
91
+ trivial_to_resolved_value!(i32);
92
+ trivial_to_resolved_value!(usize);
93
+ trivial_to_resolved_value!(String);
94
+ trivial_to_resolved_value!(Box<str>);
95
+ trivial_to_resolved_value!(crate::OwnedStr);
96
+ trivial_to_resolved_value!(crate::color::AbsoluteColor);
97
+ trivial_to_resolved_value!(crate::values::generics::color::ColorMixFlags);
98
+ trivial_to_resolved_value!(crate::Atom);
99
+ trivial_to_resolved_value!(crate::values::AtomIdent);
100
+ trivial_to_resolved_value!(crate::custom_properties::VariableValue);
101
+ trivial_to_resolved_value!(crate::stylesheets::UrlExtraData);
102
+ trivial_to_resolved_value!(computed::url::ComputedUrl);
103
+ #[cfg(feature = "servo")]
104
+ trivial_to_resolved_value!(crate::Namespace);
105
+ #[cfg(feature = "servo")]
106
+ trivial_to_resolved_value!(crate::Prefix);
107
+ trivial_to_resolved_value!(style_traits::values::specified::AllowedNumericType);
108
+ trivial_to_resolved_value!(computed::TimingFunction);
109
+
110
+ impl ToResolvedValue for Au {
111
+ type ResolvedValue = Length;
112
+
113
+ #[inline]
114
+ fn to_resolved_value(self, context: &Context) -> Self::ResolvedValue {
115
+ Length::new(self.to_f32_px()).to_resolved_value(context)
116
+ }
117
+
118
+ #[inline]
119
+ fn from_resolved_value(resolved: Self::ResolvedValue) -> Self {
120
+ Au::from_f32_px(Length::from_resolved_value(resolved).px())
121
+ }
122
+ }
123
+
124
+ impl<A, B> ToResolvedValue for (A, B)
125
+ where
126
+ A: ToResolvedValue,
127
+ B: ToResolvedValue,
128
+ {
129
+ type ResolvedValue = (
130
+ <A as ToResolvedValue>::ResolvedValue,
131
+ <B as ToResolvedValue>::ResolvedValue,
132
+ );
133
+
134
+ #[inline]
135
+ fn to_resolved_value(self, context: &Context) -> Self::ResolvedValue {
136
+ (
137
+ self.0.to_resolved_value(context),
138
+ self.1.to_resolved_value(context),
139
+ )
140
+ }
141
+
142
+ #[inline]
143
+ fn from_resolved_value(resolved: Self::ResolvedValue) -> Self {
144
+ (
145
+ A::from_resolved_value(resolved.0),
146
+ B::from_resolved_value(resolved.1),
147
+ )
148
+ }
149
+ }
150
+
151
+ impl<T> ToResolvedValue for Option<T>
152
+ where
153
+ T: ToResolvedValue,
154
+ {
155
+ type ResolvedValue = Option<<T as ToResolvedValue>::ResolvedValue>;
156
+
157
+ #[inline]
158
+ fn to_resolved_value(self, context: &Context) -> Self::ResolvedValue {
159
+ self.map(|item| item.to_resolved_value(context))
160
+ }
161
+
162
+ #[inline]
163
+ fn from_resolved_value(resolved: Self::ResolvedValue) -> Self {
164
+ resolved.map(T::from_resolved_value)
165
+ }
166
+ }
167
+
168
+ impl<T> ToResolvedValue for SmallVec<[T; 1]>
169
+ where
170
+ T: ToResolvedValue,
171
+ {
172
+ type ResolvedValue = SmallVec<[<T as ToResolvedValue>::ResolvedValue; 1]>;
173
+
174
+ #[inline]
175
+ fn to_resolved_value(self, context: &Context) -> Self::ResolvedValue {
176
+ self.into_iter()
177
+ .map(|item| item.to_resolved_value(context))
178
+ .collect()
179
+ }
180
+
181
+ #[inline]
182
+ fn from_resolved_value(resolved: Self::ResolvedValue) -> Self {
183
+ resolved.into_iter().map(T::from_resolved_value).collect()
184
+ }
185
+ }
186
+
187
+ impl<T> ToResolvedValue for Vec<T>
188
+ where
189
+ T: ToResolvedValue,
190
+ {
191
+ type ResolvedValue = Vec<<T as ToResolvedValue>::ResolvedValue>;
192
+
193
+ #[inline]
194
+ fn to_resolved_value(self, context: &Context) -> Self::ResolvedValue {
195
+ self.into_iter()
196
+ .map(|item| item.to_resolved_value(context))
197
+ .collect()
198
+ }
199
+
200
+ #[inline]
201
+ fn from_resolved_value(resolved: Self::ResolvedValue) -> Self {
202
+ resolved.into_iter().map(T::from_resolved_value).collect()
203
+ }
204
+ }
205
+
206
+ impl<T> ToResolvedValue for thin_vec::ThinVec<T>
207
+ where
208
+ T: ToResolvedValue,
209
+ {
210
+ type ResolvedValue = thin_vec::ThinVec<<T as ToResolvedValue>::ResolvedValue>;
211
+
212
+ #[inline]
213
+ fn to_resolved_value(self, context: &Context) -> Self::ResolvedValue {
214
+ self.into_iter()
215
+ .map(|item| item.to_resolved_value(context))
216
+ .collect()
217
+ }
218
+
219
+ #[inline]
220
+ fn from_resolved_value(resolved: Self::ResolvedValue) -> Self {
221
+ resolved.into_iter().map(T::from_resolved_value).collect()
222
+ }
223
+ }
224
+
225
+ impl<T> ToResolvedValue for Box<T>
226
+ where
227
+ T: ToResolvedValue,
228
+ {
229
+ type ResolvedValue = Box<<T as ToResolvedValue>::ResolvedValue>;
230
+
231
+ #[inline]
232
+ fn to_resolved_value(self, context: &Context) -> Self::ResolvedValue {
233
+ Box::new(T::to_resolved_value(*self, context))
234
+ }
235
+
236
+ #[inline]
237
+ fn from_resolved_value(resolved: Self::ResolvedValue) -> Self {
238
+ Box::new(T::from_resolved_value(*resolved))
239
+ }
240
+ }
241
+
242
+ impl<T> ToResolvedValue for Box<[T]>
243
+ where
244
+ T: ToResolvedValue,
245
+ {
246
+ type ResolvedValue = Box<[<T as ToResolvedValue>::ResolvedValue]>;
247
+
248
+ #[inline]
249
+ fn to_resolved_value(self, context: &Context) -> Self::ResolvedValue {
250
+ Vec::from(self)
251
+ .to_resolved_value(context)
252
+ .into_boxed_slice()
253
+ }
254
+
255
+ #[inline]
256
+ fn from_resolved_value(resolved: Self::ResolvedValue) -> Self {
257
+ Vec::from_resolved_value(Vec::from(resolved)).into_boxed_slice()
258
+ }
259
+ }
260
+
261
+ impl<T> ToResolvedValue for crate::OwnedSlice<T>
262
+ where
263
+ T: ToResolvedValue,
264
+ {
265
+ type ResolvedValue = crate::OwnedSlice<<T as ToResolvedValue>::ResolvedValue>;
266
+
267
+ #[inline]
268
+ fn to_resolved_value(self, context: &Context) -> Self::ResolvedValue {
269
+ self.into_box().to_resolved_value(context).into()
270
+ }
271
+
272
+ #[inline]
273
+ fn from_resolved_value(resolved: Self::ResolvedValue) -> Self {
274
+ Self::from(Box::from_resolved_value(resolved.into_box()))
275
+ }
276
+ }
277
+
278
+ // NOTE(emilio): This is implementable more generically, but it's unlikely what
279
+ // you want there, as it forces you to have an extra allocation.
280
+ //
281
+ // We could do that if needed, ideally with specialization for the case where
282
+ // ResolvedValue = T. But we don't need it for now.
283
+ impl<T> ToResolvedValue for Arc<T>
284
+ where
285
+ T: ToResolvedValue<ResolvedValue = T>,
286
+ {
287
+ type ResolvedValue = Self;
288
+
289
+ #[inline]
290
+ fn to_resolved_value(self, _: &Context) -> Self {
291
+ self
292
+ }
293
+
294
+ #[inline]
295
+ fn from_resolved_value(resolved: Self) -> Self {
296
+ resolved
297
+ }
298
+ }
299
+
300
+ // Same caveat as above applies.
301
+ impl<T> ToResolvedValue for ArcSlice<T>
302
+ where
303
+ T: ToResolvedValue<ResolvedValue = T>,
304
+ {
305
+ type ResolvedValue = Self;
306
+
307
+ #[inline]
308
+ fn to_resolved_value(self, _: &Context) -> Self {
309
+ self
310
+ }
311
+
312
+ #[inline]
313
+ fn from_resolved_value(resolved: Self) -> Self {
314
+ resolved
315
+ }
316
+ }