ranger-compiler 3.5.1 → 3.5.2

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 (338) hide show
  1. package/CHANGELOG.md +1064 -20
  2. package/LICENSE +3 -1
  3. package/README.md +123 -28
  4. package/dist/Lang.rgr +1188 -290
  5. package/dist/api.d.ts +2343 -879
  6. package/dist/api.js +79923 -56921
  7. package/dist/lib/JSON.rgr +102 -91
  8. package/dist/lib/Shell.rgr +4 -4
  9. package/dist/lib/apple/AppleToolchain.rgr +4 -4
  10. package/dist/lib/apple/README.md +5 -4
  11. package/dist/lib/apple/apple_test.rgr +1 -1
  12. package/dist/lib/core/README.md +1 -1
  13. package/dist/lib/evg/EVG.rgr +12 -0
  14. package/dist/lib/evg/EVGA11yFromTree.rgr +302 -0
  15. package/dist/lib/evg/EVGA11yTree.rgr +894 -0
  16. package/dist/lib/evg/EVGBox.rgr +267 -0
  17. package/dist/lib/evg/EVGBoxShorthandTest.rgr +220 -0
  18. package/dist/lib/evg/EVGCodepoint.rgr +316 -0
  19. package/dist/lib/evg/EVGColor.rgr +700 -0
  20. package/dist/lib/evg/EVGCommands.rgr +177 -0
  21. package/dist/lib/evg/EVGComponent.rgr +331 -0
  22. package/dist/lib/evg/EVGComponentTest.rgr +387 -0
  23. package/dist/lib/evg/EVGConnector.rgr +541 -0
  24. package/dist/lib/evg/EVGConnectorTest.rgr +306 -0
  25. package/dist/lib/evg/EVGDisplayList.rgr +4186 -0
  26. package/dist/lib/evg/EVGEasing.rgr +370 -0
  27. package/dist/lib/evg/EVGEffectTest.rgr +253 -0
  28. package/dist/lib/evg/EVGElement.rgr +4914 -0
  29. package/dist/lib/evg/EVGFixedTest.rgr +289 -0
  30. package/dist/lib/evg/EVGFlexRulesTest.rgr +317 -0
  31. package/dist/lib/evg/EVGFlexWrapTest.rgr +246 -0
  32. package/dist/lib/evg/EVGFling.rgr +244 -0
  33. package/dist/lib/evg/EVGFocus.rgr +400 -0
  34. package/dist/lib/evg/EVGFocusTest.rgr +399 -0
  35. package/dist/lib/evg/EVGGradient.rgr +322 -0
  36. package/dist/lib/evg/EVGGrapheme.rgr +190 -0
  37. package/dist/lib/evg/EVGGrid.rgr +975 -0
  38. package/dist/lib/evg/EVGHitTest.rgr +208 -0
  39. package/dist/lib/evg/EVGHoles.rgr +294 -0
  40. package/dist/lib/evg/EVGHostMeasurerTest.rgr +281 -0
  41. package/dist/lib/evg/EVGHostTextMeasurer.rgr +331 -0
  42. package/dist/lib/evg/EVGHostTree.rgr +834 -0
  43. package/dist/lib/evg/EVGHostTreeTest.rgr +447 -0
  44. package/dist/lib/evg/EVGImageDecode.rgr +117 -0
  45. package/dist/lib/evg/EVGImageMeasurer.rgr +86 -0
  46. package/dist/lib/evg/EVGInspect.rgr +883 -0
  47. package/dist/lib/evg/EVGInvalidateTest.rgr +432 -0
  48. package/dist/lib/evg/EVGJsonTest.rgr +535 -0
  49. package/dist/lib/evg/EVGLayout.rgr +4220 -0
  50. package/dist/lib/evg/EVGMeasure.rgr +1267 -0
  51. package/dist/lib/evg/EVGOverlayTest.rgr +626 -0
  52. package/dist/lib/evg/EVGPatch.rgr +1721 -0
  53. package/dist/lib/evg/EVGPatchTest.rgr +692 -0
  54. package/dist/lib/evg/EVGPopoverTest.rgr +395 -0
  55. package/dist/lib/evg/EVGReconcile.rgr +226 -0
  56. package/dist/lib/evg/EVGReconcileTest.rgr +421 -0
  57. package/dist/lib/evg/EVGReject.rgr +126 -0
  58. package/dist/lib/evg/EVGRelayoutTest.rgr +375 -0
  59. package/dist/lib/evg/EVGRtlLayoutTest.rgr +319 -0
  60. package/dist/lib/evg/EVGRuler.rgr +232 -0
  61. package/dist/lib/evg/EVGRulerTest.rgr +172 -0
  62. package/dist/lib/evg/EVGSelectChrome.rgr +178 -0
  63. package/dist/lib/evg/EVGStyleCacheTest.rgr +419 -0
  64. package/dist/lib/evg/EVGStyleSheet.rgr +2148 -0
  65. package/dist/lib/evg/EVGStyleStateTest.rgr +407 -0
  66. package/dist/lib/evg/EVGStyleVarTest.rgr +471 -0
  67. package/dist/lib/evg/EVGText.rgr +105 -0
  68. package/dist/lib/evg/EVGTextEngine.rgr +536 -0
  69. package/dist/lib/evg/EVGTextMeasurer.rgr +720 -0
  70. package/dist/lib/evg/EVGTimingTest.rgr +1417 -0
  71. package/dist/lib/evg/EVGToolbar.rgr +1369 -0
  72. package/dist/lib/evg/EVGTransition.rgr +728 -0
  73. package/dist/lib/evg/EVGTreeJson.rgr +721 -0
  74. package/dist/lib/evg/EVGUnit.rgr +554 -0
  75. package/dist/lib/evg/EVGViewportUnitTest.rgr +236 -0
  76. package/dist/lib/evg/EvgApp.rgr +189 -0
  77. package/dist/lib/evg/EvgBitmapTracer.rgr +4277 -0
  78. package/dist/lib/evg/EvgBitmapTracerTest.rgr +2119 -0
  79. package/dist/lib/evg/EvgHost.rgr +451 -0
  80. package/dist/lib/evg/EvgTest.rgr +91 -0
  81. package/dist/lib/evg/EvgTraceColor.rgr +236 -0
  82. package/dist/lib/evg/EvgTraceCurve.rgr +648 -0
  83. package/dist/lib/evg/EvgTraceFit.rgr +767 -0
  84. package/dist/lib/evg/EvgTracePath.rgr +435 -0
  85. package/dist/lib/evg/EvgTraceTypes.rgr +559 -0
  86. package/dist/lib/evg/EvgViewport.rgr +313 -0
  87. package/dist/lib/evg/FxDemoDoc.rgr +185 -0
  88. package/dist/lib/evg/HOSTS.md +227 -0
  89. package/dist/lib/evg/ISSUES.md +835 -0
  90. package/dist/lib/evg/PLAN_ACCESSIBILITY.md +650 -0
  91. package/dist/lib/evg/PLAN_CSS_LAYOUT_AND_FONTS.md +1124 -0
  92. package/dist/lib/evg/PLAN_EFFECTS.md +431 -0
  93. package/dist/lib/evg/PLAN_EVG.md +518 -0
  94. package/dist/lib/evg/PLAN_EVG_RENDERER.md +1674 -0
  95. package/dist/lib/evg/PLAN_INSPECTOR.md +788 -0
  96. package/dist/lib/evg/PLAN_LINKS_AND_FORMS.md +157 -0
  97. package/dist/lib/evg/PLAN_NATIVE_HOSTS.md +671 -0
  98. package/dist/lib/evg/PLAN_VECTOR_IR.md +664 -0
  99. package/dist/lib/evg/PLAN_VIEW_TRANSFORM.md +322 -0
  100. package/dist/lib/evg/PathBuilder.rgr +333 -0
  101. package/dist/lib/evg/README.md +1236 -0
  102. package/dist/lib/evg/SPEC.md +1252 -0
  103. package/dist/lib/evg/SVGPathParser.rgr +1199 -0
  104. package/dist/lib/evg/SvgParser.rgr +1736 -0
  105. package/dist/lib/evg/TODO_EVG_RENDERER.md +595 -0
  106. package/dist/lib/evg/VectorShapes.rgr +331 -0
  107. package/dist/lib/evg/VectorStroke.rgr +107 -0
  108. package/dist/lib/evg/VectorViewBox.rgr +380 -0
  109. package/dist/lib/evg/agent/README.md +290 -0
  110. package/dist/lib/evg/agent/evg_agent.rgr +899 -0
  111. package/dist/lib/evg/agent/fixtures/broken.evg.json +7 -0
  112. package/dist/lib/evg/agent/fixtures/card.evg.json +9 -0
  113. package/dist/lib/evg/agent/fixtures/connector.css +63 -0
  114. package/dist/lib/evg/agent/fixtures/connector.evg.json +14 -0
  115. package/dist/lib/evg/agent/fixtures/drawn.evg.json +129 -0
  116. package/dist/lib/evg/agent/fixtures/gradient.evg.json +4 -0
  117. package/dist/lib/evg/agent/fixtures/popover.css +99 -0
  118. package/dist/lib/evg/agent/fixtures/popover.evg.json +30 -0
  119. package/dist/lib/evg/agent/roundtrip.sh +74 -0
  120. package/dist/lib/evg/agent/smoke.sh +230 -0
  121. package/dist/lib/evg/android/README.md +97 -0
  122. package/dist/lib/evg/android/androidstubs/AndroidStubs.kt +175 -0
  123. package/dist/lib/evg/android/androidstubs/Annotation.kt +10 -0
  124. package/dist/lib/evg/android/androidstubs/App.kt +30 -0
  125. package/dist/lib/evg/android/androidstubs/Content.kt +41 -0
  126. package/dist/lib/evg/android/androidstubs/ContentRes.kt +12 -0
  127. package/dist/lib/evg/android/androidstubs/InputMethod.kt +46 -0
  128. package/dist/lib/evg/android/androidstubs/Net.kt +6 -0
  129. package/dist/lib/evg/android/androidstubs/Os.kt +30 -0
  130. package/dist/lib/evg/android/androidstubs/Util.kt +15 -0
  131. package/dist/lib/evg/android/androidstubs/View.kt +113 -0
  132. package/dist/lib/evg/android/androidstubs/Widget.kt +16 -0
  133. package/dist/lib/evg/android/src/android/kotlin/fi/ranger/evg/AndroidEvgSurface.kt +323 -0
  134. package/dist/lib/evg/android/src/android/kotlin/fi/ranger/evg/AndroidTextMeasurer.kt +56 -0
  135. package/dist/lib/evg/android/src/android/kotlin/fi/ranger/evg/RippleEffect.kt +262 -0
  136. package/dist/lib/evg/android/src/awt/kotlin/fi/ranger/evg/AwtEvgSurface.kt +238 -0
  137. package/dist/lib/evg/android/src/awt/kotlin/fi/ranger/evg/AwtTextMeasurer.kt +85 -0
  138. package/dist/lib/evg/android/src/main/kotlin/fi/ranger/evg/EvgEngineThread.kt +115 -0
  139. package/dist/lib/evg/android/src/main/kotlin/fi/ranger/evg/EvgPainter.kt +231 -0
  140. package/dist/lib/evg/android/src/main/kotlin/fi/ranger/evg/EvgSurface.kt +117 -0
  141. package/dist/lib/evg/android/src/main/kotlin/fi/ranger/evg/RecordingSurface.kt +94 -0
  142. package/dist/lib/evg/apple/README.md +128 -0
  143. package/dist/lib/evg/apple/Sources/CoreGraphicsEvgSurface.swift +329 -0
  144. package/dist/lib/evg/apple/Sources/CoreTextMeasurer.swift +70 -0
  145. package/dist/lib/evg/apple/Sources/EvgEngineQueue.swift +105 -0
  146. package/dist/lib/evg/apple/Sources/EvgPainter.swift +225 -0
  147. package/dist/lib/evg/apple/Sources/EvgSurface.swift +163 -0
  148. package/dist/lib/evg/apple/Sources/RecordingSurface.swift +110 -0
  149. package/dist/lib/evg/bench/EvgLayoutBench.rgr +34 -0
  150. package/dist/lib/evg/bench/README.md +64 -0
  151. package/dist/lib/evg/bench/layout-bench.mjs +316 -0
  152. package/dist/lib/evg/bench/layout-cases.mjs +510 -0
  153. package/dist/lib/evg/bench/layout-conformance.mjs +254 -0
  154. package/dist/lib/evg/bin/.gitignore +17 -0
  155. package/dist/lib/evg/evg_test.rgr +313 -0
  156. package/dist/lib/evg/gl/README.md +198 -0
  157. package/dist/lib/evg/gl/a11y-paint-check.mjs +73 -0
  158. package/dist/lib/evg/gl/blur-check.mjs +399 -0
  159. package/dist/lib/evg/gl/boxmodel.json +1 -0
  160. package/dist/lib/evg/gl/demo.html +46 -0
  161. package/dist/lib/evg/gl/effect-presets.css +285 -0
  162. package/dist/lib/evg/gl/effect-presets.js +63 -0
  163. package/dist/lib/evg/gl/effect-shots.mjs +135 -0
  164. package/dist/lib/evg/gl/evg-a11y.js +566 -0
  165. package/dist/lib/evg/gl/evg-binary.js +160 -0
  166. package/dist/lib/evg/gl/evg-engine.js +296 -0
  167. package/dist/lib/evg/gl/evg-fx.js +237 -0
  168. package/dist/lib/evg/gl/evg-gestures.js +209 -0
  169. package/dist/lib/evg/gl/evg-list.js +167 -0
  170. package/dist/lib/evg/gl/evg-measure.js +186 -0
  171. package/dist/lib/evg/gl/evg-textinput.js +303 -0
  172. package/dist/lib/evg/gl/evg-view.js +144 -0
  173. package/dist/lib/evg/gl/evg-webgl.js +3942 -0
  174. package/dist/lib/evg/gl/fx-check.mjs +998 -0
  175. package/dist/lib/evg/gl/fx-demo.html +166 -0
  176. package/dist/lib/evg/gl/fx-demo.js +2 -0
  177. package/dist/lib/evg/gl/fx-serve.mjs +47 -0
  178. package/dist/lib/evg/gl/gestures-check.mjs +189 -0
  179. package/dist/lib/evg/gl/list-binary-check.mjs +152 -0
  180. package/dist/lib/evg/gl/measure-check.mjs +135 -0
  181. package/dist/lib/evg/gl/rotation-check.mjs +207 -0
  182. package/dist/lib/evg/gl/shift-check.mjs +113 -0
  183. package/dist/lib/evg/gl/stroke-check.mjs +168 -0
  184. package/dist/lib/evg/gl/text-snap-check.mjs +139 -0
  185. package/dist/lib/evg/gl/view-check.mjs +343 -0
  186. package/dist/lib/evg/gl/view-policy-check.mjs +184 -0
  187. package/dist/lib/evg/html/evg-dom.js +318 -0
  188. package/dist/lib/evg/html/evg-html.js +600 -0
  189. package/dist/lib/evg/inspect/README.md +415 -0
  190. package/dist/lib/evg/inspect/browser-smoke.mjs +115 -0
  191. package/dist/lib/evg/inspect/evg-inspect.js +947 -0
  192. package/dist/lib/evg/inspect/shots/css.png +0 -0
  193. package/dist/lib/evg/inspect/shots/dashboard.png +0 -0
  194. package/dist/lib/evg/inspect/shots/pptx-slide.png +0 -0
  195. package/dist/lib/evg/inspect/shots/state.png +0 -0
  196. package/dist/lib/evg/inspect/shots.mjs +226 -0
  197. package/dist/lib/evg/oracle/css-blur.json +576 -0
  198. package/dist/lib/evg/oracle/css-box.json +157 -0
  199. package/dist/lib/evg/oracle/css-timing.json +709 -0
  200. package/dist/lib/evg/oracle/css_blur_oracle.mjs +529 -0
  201. package/dist/lib/evg/oracle/css_box_oracle.mjs +106 -0
  202. package/dist/lib/evg/oracle/css_timing_oracle.mjs +389 -0
  203. package/dist/lib/evg/original/EVGColor.clj +310 -0
  204. package/dist/lib/evg/original/EVGColorContext.rgr +178 -0
  205. package/dist/lib/evg/original/SVGPath.rgr +627 -0
  206. package/dist/lib/evg/original/Vec2.crgr +103 -0
  207. package/dist/lib/evg/ranger.json +9 -0
  208. package/dist/lib/evg/showcase/README.md +246 -0
  209. package/dist/lib/evg/showcase/assets/emblem.svg +30 -0
  210. package/dist/lib/evg/showcase/assets/rosette.svg +22 -0
  211. package/dist/lib/evg/showcase/build.mjs +651 -0
  212. package/dist/lib/evg/showcase/pages/album.tsx +30 -0
  213. package/dist/lib/evg/showcase/pages/boxmodel.tsx +37 -0
  214. package/dist/lib/evg/showcase/pages/cards.tsx +41 -0
  215. package/dist/lib/evg/showcase/pages/chart_api.tsx +170 -0
  216. package/dist/lib/evg/showcase/pages/charts.tsx +219 -0
  217. package/dist/lib/evg/showcase/pages/drawing.tsx +160 -0
  218. package/dist/lib/evg/showcase/pages/emoji.tsx +91 -0
  219. package/dist/lib/evg/showcase/pages/flex.tsx +46 -0
  220. package/dist/lib/evg/showcase/pages/more.tsx +332 -0
  221. package/dist/lib/evg/showcase/pages/plots.tsx +262 -0
  222. package/dist/lib/evg/showcase/pages/svg.tsx +63 -0
  223. package/dist/lib/evg/showcase/pages/tables.tsx +209 -0
  224. package/dist/lib/evg/showcase/pages/typography.tsx +43 -0
  225. package/dist/lib/evg/showcase/pages/units.tsx +35 -0
  226. package/dist/lib/evg/showcase/pages/variants.tsx +233 -0
  227. package/dist/lib/evg/showcase/pages/vector.tsx +75 -0
  228. package/dist/lib/evg/showcase/pages/views.tsx +223 -0
  229. package/dist/lib/evg/showcase/tests/chart_api_smoke.mjs +339 -0
  230. package/dist/lib/evg/showcase/tests/gl_smoke.mjs +125 -0
  231. package/dist/lib/evg/showcase/themes/chart_api-default.css +15 -0
  232. package/dist/lib/evg/showcase/themes/charts-default.css +29 -0
  233. package/dist/lib/evg/showcase/themes/drawing-default.css +35 -0
  234. package/dist/lib/evg/showcase/themes/more-default.css +128 -0
  235. package/dist/lib/evg/showcase/themes/plots-default.css +18 -0
  236. package/dist/lib/evg/showcase/themes/showcase.css +508 -0
  237. package/dist/lib/evg/showcase/themes/tables-default.css +123 -0
  238. package/dist/lib/evg/showcase/themes/variants-default.css +15 -0
  239. package/dist/lib/evg/showcase/themes/views-default.css +15 -0
  240. package/dist/lib/evg/tools/bench_vs_potrace.mjs +290 -0
  241. package/dist/lib/evg/tools/evg_image_tool.rgr +488 -0
  242. package/dist/lib/evg/tools/evg_trace_bench.rgr +114 -0
  243. package/dist/lib/evg/tools/evg_trace_cli.rgr +662 -0
  244. package/dist/lib/evg/tools/evg_trace_cpp_bench.rgr +83 -0
  245. package/dist/lib/evg/tools/run_trace_bench.sh +74 -0
  246. package/dist/lib/evg/tools/run_trace_cli_smoke.sh +128 -0
  247. package/dist/lib/evg/web/responsive/EvgResponsiveCheck.rgr +271 -0
  248. package/dist/lib/evg/web/responsive/EvgResponsiveDemo.rgr +531 -0
  249. package/dist/lib/evg/web/responsive/README.md +97 -0
  250. package/dist/lib/evg/web/responsive/build.mjs +90 -0
  251. package/dist/lib/evg/web/responsive/dom-check.mjs +169 -0
  252. package/dist/lib/evg/web/responsive/index.html +177 -0
  253. package/dist/lib/evg/web/responsive/smoke.mjs +221 -0
  254. package/dist/lib/evg/web/tools/assets-client.mjs +95 -0
  255. package/dist/lib/evg/web/tools/boot-bench.mjs +189 -0
  256. package/dist/lib/evg/web/tools/inline-assets.mjs +119 -0
  257. package/dist/lib/evg/web/tools/minify.mjs +60 -0
  258. package/dist/lib/evg/web/tracer/build.mjs +87 -0
  259. package/dist/lib/evg/web/tracer/index.html +2805 -0
  260. package/dist/lib/evg/web/tracer/sample.png +0 -0
  261. package/dist/lib/evg/web/tracer/smoke.mjs +1162 -0
  262. package/dist/lib/evgr/Cargo.lock +21 -0
  263. package/dist/lib/evgr/Cargo.toml +19 -0
  264. package/dist/lib/evgr/README.md +140 -0
  265. package/dist/lib/evgr/bench/NativeBench.rgr +246 -0
  266. package/dist/lib/evgr/bench/compare.mjs +252 -0
  267. package/dist/lib/evgr/bench/speed.mjs +277 -0
  268. package/dist/lib/evgr/bin/.gitignore +3 -0
  269. package/dist/lib/evgr/src/bin/bench.rs +106 -0
  270. package/dist/lib/evgr/src/bin/smoke.rs +13 -0
  271. package/dist/lib/evgr/src/grid.rs +730 -0
  272. package/dist/lib/evgr/src/lib.rs +1003 -0
  273. package/dist/lib/evgr/src/style.rs +468 -0
  274. package/dist/lib/evgr/src/text.rs +83 -0
  275. package/dist/lib/image/BitReader.rgr +171 -0
  276. package/dist/lib/image/Buffer.rgr +173 -0
  277. package/dist/lib/image/DCT.rgr +283 -0
  278. package/dist/lib/image/Deflate.rgr +339 -0
  279. package/dist/lib/image/HuffmanDecoder.rgr +181 -0
  280. package/dist/lib/image/ImageBuffer.rgr +706 -0
  281. package/dist/lib/image/JPEGDecoder.rgr +808 -0
  282. package/dist/lib/image/PNGDecoder.rgr +544 -0
  283. package/dist/lib/image/PNGEncoder.rgr +388 -0
  284. package/dist/lib/image/PPMImage.rgr +224 -0
  285. package/dist/lib/image/ProgressiveJPEGDecoder.rgr +1154 -0
  286. package/dist/lib/image/README.md +33 -0
  287. package/dist/lib/image/RasterBuffer.rgr +294 -0
  288. package/dist/lib/image/VP8BoolDecoder.rgr +163 -0
  289. package/dist/lib/image/WebPDecoder.rgr +433 -0
  290. package/dist/lib/image/WebPLossless.rgr +1035 -0
  291. package/dist/lib/image/WebPLossy.rgr +1929 -0
  292. package/dist/lib/image/ranger.json +9 -0
  293. package/dist/lib/image/testdata/webp/anim_2f_24x16.webp +0 -0
  294. package/dist/lib/image/testdata/webp/fixtures.txt +33 -0
  295. package/dist/lib/image/testdata/webp/gen_fixtures.py +261 -0
  296. package/dist/lib/image/testdata/webp/ll_1x1.webp +0 -0
  297. package/dist/lib/image/testdata/webp/ll_alpha_29x21.webp +0 -0
  298. package/dist/lib/image/testdata/webp/ll_gradient_64x64.webp +0 -0
  299. package/dist/lib/image/testdata/webp/ll_meta_32x32.webp +0 -0
  300. package/dist/lib/image/testdata/webp/ll_noise_17x9.webp +0 -0
  301. package/dist/lib/image/testdata/webp/ll_pal11_23x11.webp +0 -0
  302. package/dist/lib/image/testdata/webp/ll_pal2_19x7.webp +0 -0
  303. package/dist/lib/image/testdata/webp/ll_pal40_16x16.webp +0 -0
  304. package/dist/lib/image/testdata/webp/ll_pal4_13x5.webp +0 -0
  305. package/dist/lib/image/testdata/webp/ll_photo_40x30.webp +0 -0
  306. package/dist/lib/image/testdata/webp/ll_predictors_64x32.webp +0 -0
  307. package/dist/lib/image/testdata/webp/ly_1x1.webp +0 -0
  308. package/dist/lib/image/testdata/webp/ly_alph_raw_f0_21x13.webp +0 -0
  309. package/dist/lib/image/testdata/webp/ly_alph_raw_f1_21x13.webp +0 -0
  310. package/dist/lib/image/testdata/webp/ly_alph_raw_f2_21x13.webp +0 -0
  311. package/dist/lib/image/testdata/webp/ly_alph_raw_f3_21x13.webp +0 -0
  312. package/dist/lib/image/testdata/webp/ly_alph_vp8l_f0_21x13.webp +0 -0
  313. package/dist/lib/image/testdata/webp/ly_alph_vp8l_f1_21x13.webp +0 -0
  314. package/dist/lib/image/testdata/webp/ly_alph_vp8l_f2_21x13.webp +0 -0
  315. package/dist/lib/image/testdata/webp/ly_alph_vp8l_f3_21x13.webp +0 -0
  316. package/dist/lib/image/testdata/webp/ly_alpha_33x17.webp +0 -0
  317. package/dist/lib/image/testdata/webp/ly_exif_15x11.webp +0 -0
  318. package/dist/lib/image/testdata/webp/ly_i16_96x80.webp +0 -0
  319. package/dist/lib/image/testdata/webp/ly_nofilter_24x20.webp +0 -0
  320. package/dist/lib/image/testdata/webp/ly_odd_17x9.webp +0 -0
  321. package/dist/lib/image/testdata/webp/ly_photo_48x40.webp +0 -0
  322. package/dist/lib/image/testdata/webp/ly_q100_20x18.webp +0 -0
  323. package/dist/lib/image/testdata/webp/ly_sharp_40x36.webp +0 -0
  324. package/dist/lib/image/testdata/webp/ly_simple_filter_33x31.webp +0 -0
  325. package/dist/lib/image/testdata/webp/ly_vpx_parts8_37x45.webp +0 -0
  326. package/dist/lib/image/testdata/webp/ly_vpx_skip_96x80.webp +0 -0
  327. package/dist/lib/image/tests/WebPDecodeTool.rgr +81 -0
  328. package/dist/lib/image/tests/WebPDecoderTest.rgr +1162 -0
  329. package/dist/lib/image/tests/run_webp_tests.sh +39 -0
  330. package/dist/lib/rust/RsJson.rgr +468 -0
  331. package/dist/lib/rust/RsPrelude.rgr +1663 -0
  332. package/dist/lib/shell_test.rgr +7 -7
  333. package/dist/lib/stdlib.rgr +21 -5
  334. package/dist/lib/zip/ranger.json +6 -0
  335. package/dist/rgrc.js +87318 -67610
  336. package/package.json +1010 -1040
  337. package/dist/README.md +0 -117
  338. package/dist/package.json +0 -47
@@ -0,0 +1,160 @@
1
+ // GENERATED by gallery/vela/tools/vela_evg.rgr — do not edit by hand.
2
+ //
3
+ // Each chart below is an unmodified Vega specification, compiled from a
4
+ // Vega-Lite example, run through the Vela runtime and drawn with the EVG
5
+ // vector layer: every gridline, bar, wedge and label is path data and text
6
+ // this repository computed, in all three targets.
7
+ //
8
+ // Regenerate with: npm run vela:showcase
9
+
10
+ import { View, Label, Path } from "./evg_types";
11
+
12
+ function render() {
13
+ return (
14
+ <View className="page">
15
+ <Label className="title">Piirto</Label>
16
+ <View className="rule" />
17
+ <View className="row chartRow">
18
+ <View className="chartCell">
19
+ <View className="chartBox">
20
+ <View className="chart" position="relative" width="343.5px" height="147px">
21
+ <Path className="chartTick" position="absolute" left="0px" top="0px" width="343.5px" height="147px" viewBox="0 0 343.5 147" fill="none" strokeWidth="1" d="M46.5,59.5 L46.5,64.5 M71.5,59.5 L71.5,64.5 M96.5,59.5 L96.5,64.5 M121.5,59.5 L121.5,64.5 M146.5,59.5 L146.5,64.5 M171.5,59.5 L171.5,64.5 M196.5,59.5 L196.5,64.5 M221.5,59.5 L221.5,64.5 M246.5,59.5 L246.5,64.5 M271.5,59.5 L271.5,64.5 M296.5,59.5 L296.5,64.5 M321.5,59.5 L321.5,64.5" />
22
+ <Label className="chartLabel" position="absolute" left="23.5px" top="60.5px" width="45px" textAlign="center" fontSize="10px" rotate="-40">circle</Label>
23
+ <Label className="chartLabel" position="absolute" left="48.5px" top="60.5px" width="45px" textAlign="center" fontSize="10px" rotate="-40">square</Label>
24
+ <Label className="chartLabel" position="absolute" left="76.75px" top="60.5px" width="38.5px" textAlign="center" fontSize="10px" rotate="-40">cross</Label>
25
+ <Label className="chartLabel" position="absolute" left="95.25px" top="60.5px" width="51.5px" textAlign="center" fontSize="10px" rotate="-40">diamond</Label>
26
+ <Label className="chartLabel" position="absolute" left="108.625px" top="60.5px" width="74.75px" textAlign="center" fontSize="10px" rotate="-40">triangle-up</Label>
27
+ <Label className="chartLabel" position="absolute" left="127.125px" top="60.5px" width="87.75px" textAlign="center" fontSize="10px" rotate="-40">triangle-down</Label>
28
+ <Label className="chartLabel" position="absolute" left="148.875px" top="60.5px" width="94.25px" textAlign="center" fontSize="10px" rotate="-40">triangle-right</Label>
29
+ <Label className="chartLabel" position="absolute" left="177.125px" top="60.5px" width="87.75px" textAlign="center" fontSize="10px" rotate="-40">triangle-left</Label>
30
+ <Label className="chartLabel" position="absolute" left="217px" top="60.5px" width="58px" textAlign="center" fontSize="10px" rotate="-40">triangle</Label>
31
+ <Label className="chartLabel" position="absolute" left="251.75px" top="60.5px" width="38.5px" textAlign="center" fontSize="10px" rotate="-40">wedge</Label>
32
+ <Label className="chartLabel" position="absolute" left="276.75px" top="60.5px" width="38.5px" textAlign="center" fontSize="10px" rotate="-40">arrow</Label>
33
+ <Label className="chartLabel" position="absolute" left="298.5px" top="60.5px" width="45px" textAlign="center" fontSize="10px" rotate="-40">stroke</Label>
34
+ <Path className="chartDomain" position="absolute" left="0px" top="0px" width="343.5px" height="147px" viewBox="0 0 343.5 147" fill="none" strokeWidth="1" d="M33.5,59.5 L333.5,59.5" />
35
+ <Path className="chartFill0 chartStroke1" position="absolute" left="0px" top="0px" width="343.5px" height="147px" viewBox="0 0 343.5 147" stroke="none" opacity="0.55" d="M52.5711,32 C52.5711,35.9052 49.4052,39.0711 45.5,39.0711 C41.5948,39.0711 38.4289,35.9052 38.4289,32 C38.4289,28.0948 41.5948,24.9289 45.5,24.9289 C49.4052,24.9289 52.5711,28.0948 52.5711,32 Z M63.4289,24.9289 L77.5711,24.9289 L77.5711,39.0711 L63.4289,39.0711 Z M88.4289,29.1716 L88.4289,34.8284 L92.6716,34.8284 L92.6716,39.0711 L98.3284,39.0711 L98.3284,34.8284 L102.5711,34.8284 L102.5711,29.1716 L98.3284,29.1716 L98.3284,24.9289 L92.6716,24.9289 L92.6716,29.1716 Z M113.4289,32 L120.5,24.9289 L127.5711,32 L120.5,39.0711 Z M145.5,25.8763 L138.4289,38.1237 L152.5711,38.1237 Z M170.5,38.1237 L163.4289,25.8763 L177.5711,25.8763 Z M201.6237,32 L189.3763,24.9289 L189.3763,39.0711 Z M214.3763,32 L226.6237,24.9289 L226.6237,39.0711 Z M245.5,23.835 L238.4289,36.0825 L252.5711,36.0825 Z M270.5,23.835 L268.7322,36.0825 L272.2678,36.0825 Z M294.4898,39.0711 L296.5102,39.0711 L296.5102,31.1161 L298.3284,31.1161 L295.5,24.9289 L292.6716,31.1161 L294.4898,31.1161 Z M313.4289,32 L327.5711,32" />
36
+ <Path className="chartFill0 chartStroke1" position="absolute" left="0px" top="0px" width="343.5px" height="147px" viewBox="0 0 343.5 147" fill="none" strokeWidth="1.5" opacity="0.9" d="M52.5711,32 C52.5711,35.9052 49.4052,39.0711 45.5,39.0711 C41.5948,39.0711 38.4289,35.9052 38.4289,32 C38.4289,28.0948 41.5948,24.9289 45.5,24.9289 C49.4052,24.9289 52.5711,28.0948 52.5711,32 Z M63.4289,24.9289 L77.5711,24.9289 L77.5711,39.0711 L63.4289,39.0711 Z M88.4289,29.1716 L88.4289,34.8284 L92.6716,34.8284 L92.6716,39.0711 L98.3284,39.0711 L98.3284,34.8284 L102.5711,34.8284 L102.5711,29.1716 L98.3284,29.1716 L98.3284,24.9289 L92.6716,24.9289 L92.6716,29.1716 Z M113.4289,32 L120.5,24.9289 L127.5711,32 L120.5,39.0711 Z M145.5,25.8763 L138.4289,38.1237 L152.5711,38.1237 Z M170.5,38.1237 L163.4289,25.8763 L177.5711,25.8763 Z M201.6237,32 L189.3763,24.9289 L189.3763,39.0711 Z M214.3763,32 L226.6237,24.9289 L226.6237,39.0711 Z M245.5,23.835 L238.4289,36.0825 L252.5711,36.0825 Z M270.5,23.835 L268.7322,36.0825 L272.2678,36.0825 Z M294.4898,39.0711 L296.5102,39.0711 L296.5102,31.1161 L298.3284,31.1161 L295.5,24.9289 L292.6716,31.1161 L294.4898,31.1161 Z M313.4289,32 L327.5711,32" />
37
+ </View>
38
+ </View>
39
+ <Label className="caption">Kaikki merkkimuodot · 41 komentoa</Label>
40
+ </View>
41
+ <View className="chartCell">
42
+ <View className="chartBox">
43
+ <View className="chart" position="relative" width="356px" height="146px">
44
+ <Path className="chartTick" position="absolute" left="0px" top="0px" width="356px" height="146px" viewBox="0 0 356 146" fill="none" strokeWidth="1" d="M36.5,114.5 L36.5,119.5 M63.5,114.5 L63.5,119.5 M90.5,114.5 L90.5,119.5 M117.5,114.5 L117.5,119.5 M145.5,114.5 L145.5,119.5 M172.5,114.5 L172.5,119.5 M199.5,114.5 L199.5,119.5 M226.5,114.5 L226.5,119.5" />
45
+ <Label className="chartLabel" position="absolute" left="30.188px" top="121.5px" width="12.625px" textAlign="center" fontSize="10px">0</Label>
46
+ <Label className="chartLabel" position="absolute" left="57.33px" top="121.5px" width="12.625px" textAlign="center" fontSize="10px">1</Label>
47
+ <Label className="chartLabel" position="absolute" left="84.473px" top="121.5px" width="12.625px" textAlign="center" fontSize="10px">2</Label>
48
+ <Label className="chartLabel" position="absolute" left="111.616px" top="121.5px" width="12.625px" textAlign="center" fontSize="10px">3</Label>
49
+ <Label className="chartLabel" position="absolute" left="138.759px" top="121.5px" width="12.625px" textAlign="center" fontSize="10px">4</Label>
50
+ <Label className="chartLabel" position="absolute" left="165.902px" top="121.5px" width="12.625px" textAlign="center" fontSize="10px">5</Label>
51
+ <Label className="chartLabel" position="absolute" left="193.045px" top="121.5px" width="12.625px" textAlign="center" fontSize="10px">6</Label>
52
+ <Label className="chartLabel" position="absolute" left="220.188px" top="121.5px" width="12.625px" textAlign="center" fontSize="10px">7</Label>
53
+ <Path className="chartDomain" position="absolute" left="0px" top="0px" width="356px" height="146px" viewBox="0 0 356 146" fill="none" strokeWidth="1" d="M36.5,114.5 L226.5,114.5" />
54
+ <Path className="chartGrid" position="absolute" left="0px" top="0px" width="356px" height="146px" viewBox="0 0 356 146" fill="none" strokeWidth="1" d="M36.5,114.5 L226.5,114.5 M36.5,104.5 L226.5,104.5 M36.5,93.5 L226.5,93.5 M36.5,83.5 L226.5,83.5 M36.5,72.5 L226.5,72.5 M36.5,62.5 L226.5,62.5 M36.5,52.5 L226.5,52.5 M36.5,41.5 L226.5,41.5 M36.5,31.5 L226.5,31.5 M36.5,20.5 L226.5,20.5 M36.5,10.5 L226.5,10.5" />
55
+ <Path className="chartTick" position="absolute" left="0px" top="0px" width="356px" height="146px" viewBox="0 0 356 146" fill="none" strokeWidth="1" d="M36.5,114.5 L31.5,114.5 M36.5,104.5 L31.5,104.5 M36.5,93.5 L31.5,93.5 M36.5,83.5 L31.5,83.5 M36.5,72.5 L31.5,72.5 M36.5,62.5 L31.5,62.5 M36.5,52.5 L31.5,52.5 M36.5,41.5 L31.5,41.5 M36.5,31.5 L31.5,31.5 M36.5,20.5 L31.5,20.5 M36.5,10.5 L31.5,10.5" />
56
+ <Label className="chartLabel" position="absolute" left="16.875px" top="109.5px" width="12.625px" textAlign="right" fontSize="10px">0</Label>
57
+ <Label className="chartLabel" position="absolute" left="10.25px" top="99.1px" width="19.25px" textAlign="right" fontSize="10px">10</Label>
58
+ <Label className="chartLabel" position="absolute" left="10.25px" top="88.7px" width="19.25px" textAlign="right" fontSize="10px">20</Label>
59
+ <Label className="chartLabel" position="absolute" left="10.25px" top="78.3px" width="19.25px" textAlign="right" fontSize="10px">30</Label>
60
+ <Label className="chartLabel" position="absolute" left="10.25px" top="67.9px" width="19.25px" textAlign="right" fontSize="10px">40</Label>
61
+ <Label className="chartLabel" position="absolute" left="10.25px" top="57.5px" width="19.25px" textAlign="right" fontSize="10px">50</Label>
62
+ <Label className="chartLabel" position="absolute" left="10.25px" top="47.1px" width="19.25px" textAlign="right" fontSize="10px">60</Label>
63
+ <Label className="chartLabel" position="absolute" left="10.25px" top="36.7px" width="19.25px" textAlign="right" fontSize="10px">70</Label>
64
+ <Label className="chartLabel" position="absolute" left="10.25px" top="26.3px" width="19.25px" textAlign="right" fontSize="10px">80</Label>
65
+ <Label className="chartLabel" position="absolute" left="10.25px" top="15.9px" width="19.25px" textAlign="right" fontSize="10px">90</Label>
66
+ <Label className="chartLabel" position="absolute" left="3.625px" top="5.5px" width="25.875px" textAlign="right" fontSize="10px">100</Label>
67
+ <Path className="chartDomain" position="absolute" left="0px" top="0px" width="356px" height="146px" viewBox="0 0 356 146" fill="none" strokeWidth="1" d="M36.5,114.5 L36.5,10.5" />
68
+ <Path className="chartStroke0" position="absolute" left="0px" top="0px" width="356px" height="146px" viewBox="0 0 356 146" fill="none" strokeWidth="1.5" opacity="0.85" d="M36,84.88 L63.1429,56.8 L90.2857,69.28 L117.4286,19.36 L144.5714,29.76 L171.7143,58.88 L198.8571,94.24 L226,23.52" />
69
+ <Path className="chartStroke2" position="absolute" left="0px" top="0px" width="356px" height="146px" viewBox="0 0 356 146" fill="none" strokeWidth="1.5" opacity="0.85" d="M36,84.88 L40.5238,80.2 C45.0476,75.52 54.0952,66.16 63.1429,63.56 C72.1905,60.96 81.2381,65.12 90.2857,58.88 C99.3333,52.64 108.381,36 117.4286,29.4133 C126.4762,22.8267 135.5238,26.2933 144.5714,32.88 C153.619,39.4667 162.6667,49.1733 171.7143,59.92 C180.7619,70.6667 189.8095,82.4533 198.8571,76.56 C207.9048,70.6667 216.9524,47.0933 221.4762,35.3067 L226,23.52" />
70
+ <Path className="chartStroke3" position="absolute" left="0px" top="0px" width="356px" height="146px" viewBox="0 0 356 146" fill="none" strokeWidth="1.5" opacity="0.85" d="M36,84.88 C36,84.88 54.0952,59.4 63.1429,56.8 C72.1905,54.2 81.2381,75.52 90.2857,69.28 C99.3333,63.04 108.381,25.9467 117.4286,19.36 C126.4762,12.7733 135.5238,23.1733 144.5714,29.76 C153.619,36.3467 162.6667,48.1333 171.7143,58.88 C180.7619,69.6267 189.8095,100.1333 198.8571,94.24 C207.9048,88.3467 226,23.52 226,23.52" />
71
+ <Path className="chartStroke4" position="absolute" left="0px" top="0px" width="356px" height="146px" viewBox="0 0 356 146" fill="none" strokeWidth="1.5" opacity="0.85" d="M36,84.88 C36,84.88 53.4033,58.6297 63.1429,56.8 C71.6612,55.1997 82.2835,71.9399 90.2857,69.28 C101.3218,65.6116 106.2807,23.4728 117.4286,19.36 C125.4018,16.4184 136.1304,24.0689 144.5714,29.76 C154.4498,36.4202 162.9084,48.4777 171.7143,58.88 C181.0326,69.8877 190.7242,95.4202 198.8571,94.24 C209.4591,92.7015 226,23.52 226,23.52" />
72
+ <Path className="chartStroke5" position="absolute" left="0px" top="0px" width="356px" height="146px" viewBox="0 0 356 146" fill="none" strokeWidth="1.5" opacity="0.85" d="M36,84.88 C45.0476,70.84 54.0952,56.8 63.1429,56.8 C72.1905,56.8 81.2381,69.28 90.2857,69.28 C99.3333,69.28 108.381,19.36 117.4286,19.36 C126.4762,19.36 135.5238,23.1733 144.5714,29.76 C153.619,36.3467 162.6667,48.1333 171.7143,58.88 C180.7619,69.6267 189.8095,94.24 198.8571,94.24 C207.9048,94.24 216.9524,58.88 226,23.52" />
73
+ <Path className="chartStroke6" position="absolute" left="0px" top="0px" width="356px" height="146px" viewBox="0 0 356 146" fill="none" strokeWidth="1.5" opacity="0.85" d="M36,84.88 C45.0476,70.0343 54.0952,55.1886 63.1429,56.8 C72.1905,58.4114 81.2381,76.4799 90.2857,69.28 C99.3333,62.0801 108.381,29.612 117.4286,19.36 C126.4762,9.108 135.5238,21.0723 144.5714,29.76 C153.619,38.4477 162.6667,43.859 171.7143,58.88 C180.7619,73.901 189.8095,98.5317 198.8571,94.24 C207.9048,89.9483 216.9524,56.7341 226,23.52" />
74
+ <Path className="chartStroke7" position="absolute" left="0px" top="0px" width="356px" height="146px" viewBox="0 0 356 146" fill="none" strokeWidth="1.5" opacity="0.85" d="M36,84.88 L49.5714,84.88 L49.5714,56.8 L63.1429,56.8 L76.7143,56.8 L76.7143,69.28 L90.2857,69.28 L103.8571,69.28 L103.8571,19.36 L117.4286,19.36 L131,19.36 L131,29.76 L144.5714,29.76 L158.1429,29.76 L158.1429,58.88 L171.7143,58.88 L185.2857,58.88 L185.2857,94.24 L198.8571,94.24 L212.4286,94.24 L212.4286,23.52 L226,23.52" />
75
+ <Path className="chartStroke8" position="absolute" left="0px" top="0px" width="356px" height="146px" viewBox="0 0 356 146" fill="none" strokeWidth="1.5" opacity="0.85" d="M36,84.88 L36,56.8 L63.1429,56.8 L63.1429,69.28 L90.2857,69.28 L90.2857,19.36 L117.4286,19.36 L117.4286,29.76 L144.5714,29.76 L144.5714,58.88 L171.7143,58.88 L171.7143,94.24 L198.8571,94.24 L198.8571,23.52 L226,23.52" />
76
+ <Path className="chartStroke9" position="absolute" left="0px" top="0px" width="356px" height="146px" viewBox="0 0 356 146" fill="none" strokeWidth="1.5" opacity="0.85" d="M36,84.88 L63.1429,84.88 L63.1429,56.8 L90.2857,56.8 L90.2857,69.28 L117.4286,69.28 L117.4286,19.36 L144.5714,19.36 L144.5714,29.76 L171.7143,29.76 L171.7143,58.88 L198.8571,58.88 L198.8571,94.24 L226,94.24 L226,23.52" />
77
+ <Path className="chartStroke0" position="absolute" left="0px" top="0px" width="356px" height="146px" viewBox="0 0 356 146" fill="none" strokeWidth="1.5" d="M248,32 L258,32" />
78
+ <Label className="chartLabel" position="absolute" left="263px" top="27px" width="45px" textAlign="left" fontSize="10px">linear</Label>
79
+ <Path className="chartStroke2" position="absolute" left="0px" top="0px" width="356px" height="146px" viewBox="0 0 356 146" fill="none" strokeWidth="1.5" d="M248,45 L258,45" />
80
+ <Label className="chartLabel" position="absolute" left="263px" top="40px" width="38.5px" textAlign="left" fontSize="10px">basis</Label>
81
+ <Path className="chartStroke3" position="absolute" left="0px" top="0px" width="356px" height="146px" viewBox="0 0 356 146" fill="none" strokeWidth="1.5" d="M248,58 L258,58" />
82
+ <Label className="chartLabel" position="absolute" left="263px" top="53px" width="58px" textAlign="left" fontSize="10px">cardinal</Label>
83
+ <Path className="chartStroke4" position="absolute" left="0px" top="0px" width="356px" height="146px" viewBox="0 0 356 146" fill="none" strokeWidth="1.5" d="M248,71 L258,71" />
84
+ <Label className="chartLabel" position="absolute" left="263px" top="66px" width="74.75px" textAlign="left" fontSize="10px">catmull-rom</Label>
85
+ <Path className="chartStroke5" position="absolute" left="0px" top="0px" width="356px" height="146px" viewBox="0 0 356 146" fill="none" strokeWidth="1.5" d="M248,84 L258,84" />
86
+ <Label className="chartLabel" position="absolute" left="263px" top="79px" width="58px" textAlign="left" fontSize="10px">monotone</Label>
87
+ <Path className="chartStroke6" position="absolute" left="0px" top="0px" width="356px" height="146px" viewBox="0 0 356 146" fill="none" strokeWidth="1.5" d="M248,97 L258,97" />
88
+ <Label className="chartLabel" position="absolute" left="263px" top="92px" width="51.5px" textAlign="left" fontSize="10px">natural</Label>
89
+ <Path className="chartStroke7" position="absolute" left="0px" top="0px" width="356px" height="146px" viewBox="0 0 356 146" fill="none" strokeWidth="1.5" d="M248,110 L258,110" />
90
+ <Label className="chartLabel" position="absolute" left="263px" top="105px" width="32px" textAlign="left" fontSize="10px">step</Label>
91
+ <Path className="chartStroke8" position="absolute" left="0px" top="0px" width="356px" height="146px" viewBox="0 0 356 146" fill="none" strokeWidth="1.5" d="M248,123 L258,123" />
92
+ <Label className="chartLabel" position="absolute" left="263px" top="118px" width="74.75px" textAlign="left" fontSize="10px">step-before</Label>
93
+ <Path className="chartStroke9" position="absolute" left="0px" top="0px" width="356px" height="146px" viewBox="0 0 356 146" fill="none" strokeWidth="1.5" d="M248,136 L258,136" />
94
+ <Label className="chartLabel" position="absolute" left="263px" top="131px" width="68.25px" textAlign="left" fontSize="10px">step-after</Label>
95
+ <Label className="chartTitle" position="absolute" left="247px" top="10px" width="84.65px" textAlign="left" fontSize="11px" fontWeight="bold">interpolate</Label>
96
+ </View>
97
+ </View>
98
+ <Label className="caption">Interpolaatiot · 125 komentoa</Label>
99
+ </View>
100
+ </View>
101
+ <View className="row chartRow">
102
+ <View className="chartCell">
103
+ <View className="chartBox">
104
+ <View className="chart" position="relative" width="231px" height="136px">
105
+ <Path className="chartTick" position="absolute" left="0px" top="0px" width="231px" height="136px" viewBox="0 0 231 136" fill="none" strokeWidth="1" d="M63.5,114.5 L63.5,119.5 M108.5,114.5 L108.5,119.5 M153.5,114.5 L153.5,119.5 M198.5,114.5 L198.5,119.5" />
106
+ <Label className="chartLabel" position="absolute" left="56.08px" top="121.5px" width="14.125px" textAlign="center" fontSize="10px">A</Label>
107
+ <Label className="chartLabel" position="absolute" left="101.318px" top="121.5px" width="14.125px" textAlign="center" fontSize="10px">B</Label>
108
+ <Label className="chartLabel" position="absolute" left="146.557px" top="121.5px" width="14.125px" textAlign="center" fontSize="10px">C</Label>
109
+ <Label className="chartLabel" position="absolute" left="191.795px" top="121.5px" width="14.125px" textAlign="center" fontSize="10px">D</Label>
110
+ <Path className="chartDomain" position="absolute" left="0px" top="0px" width="231px" height="136px" viewBox="0 0 231 136" fill="none" strokeWidth="1" d="M36.5,114.5 L226.5,114.5" />
111
+ <Path className="chartGrid" position="absolute" left="0px" top="0px" width="231px" height="136px" viewBox="0 0 231 136" fill="none" strokeWidth="1" strokeDasharray="4,3" d="M36.5,114.5 L226.5,114.5 M36.5,104.5 L226.5,104.5 M36.5,93.5 L226.5,93.5 M36.5,83.5 L226.5,83.5 M36.5,72.5 L226.5,72.5 M36.5,62.5 L226.5,62.5 M36.5,52.5 L226.5,52.5 M36.5,41.5 L226.5,41.5 M36.5,31.5 L226.5,31.5 M36.5,20.5 L226.5,20.5 M36.5,10.5 L226.5,10.5" />
112
+ <Path className="chartTick" position="absolute" left="0px" top="0px" width="231px" height="136px" viewBox="0 0 231 136" fill="none" strokeWidth="1" d="M36.5,114.5 L31.5,114.5 M36.5,104.5 L31.5,104.5 M36.5,93.5 L31.5,93.5 M36.5,83.5 L31.5,83.5 M36.5,72.5 L31.5,72.5 M36.5,62.5 L31.5,62.5 M36.5,52.5 L31.5,52.5 M36.5,41.5 L31.5,41.5 M36.5,31.5 L31.5,31.5 M36.5,20.5 L31.5,20.5 M36.5,10.5 L31.5,10.5" />
113
+ <Label className="chartLabel" position="absolute" left="16.875px" top="109.5px" width="12.625px" textAlign="right" fontSize="10px">0</Label>
114
+ <Label className="chartLabel" position="absolute" left="10.25px" top="99.1px" width="19.25px" textAlign="right" fontSize="10px">10</Label>
115
+ <Label className="chartLabel" position="absolute" left="10.25px" top="88.7px" width="19.25px" textAlign="right" fontSize="10px">20</Label>
116
+ <Label className="chartLabel" position="absolute" left="10.25px" top="78.3px" width="19.25px" textAlign="right" fontSize="10px">30</Label>
117
+ <Label className="chartLabel" position="absolute" left="10.25px" top="67.9px" width="19.25px" textAlign="right" fontSize="10px">40</Label>
118
+ <Label className="chartLabel" position="absolute" left="10.25px" top="57.5px" width="19.25px" textAlign="right" fontSize="10px">50</Label>
119
+ <Label className="chartLabel" position="absolute" left="10.25px" top="47.1px" width="19.25px" textAlign="right" fontSize="10px">60</Label>
120
+ <Label className="chartLabel" position="absolute" left="10.25px" top="36.7px" width="19.25px" textAlign="right" fontSize="10px">70</Label>
121
+ <Label className="chartLabel" position="absolute" left="10.25px" top="26.3px" width="19.25px" textAlign="right" fontSize="10px">80</Label>
122
+ <Label className="chartLabel" position="absolute" left="10.25px" top="15.9px" width="19.25px" textAlign="right" fontSize="10px">90</Label>
123
+ <Label className="chartLabel" position="absolute" left="3.625px" top="5.5px" width="25.875px" textAlign="right" fontSize="10px">100</Label>
124
+ <Path className="chartDomain" position="absolute" left="0px" top="0px" width="231px" height="136px" viewBox="0 0 231 136" fill="none" strokeWidth="1" d="M36.5,114.5 L36.5,10.5" />
125
+ <Path className="chartFill5 chartStroke10" position="absolute" left="0px" top="0px" width="231px" height="136px" viewBox="0 0 231 136" stroke="none" opacity="0.45" d="M45.0476,49.52 L81.2381,49.52 L81.2381,114 L45.0476,114 Z" />
126
+ <Path className="chartFill5 chartStroke10" position="absolute" left="0px" top="0px" width="231px" height="136px" viewBox="0 0 231 136" fill="none" strokeWidth="2" opacity="0.9" d="M45.0476,49.52 L81.2381,49.52 L81.2381,114 L45.0476,114 Z" />
127
+ <Path className="chartFill5 chartStroke10" position="absolute" left="0px" top="0px" width="231px" height="136px" viewBox="0 0 231 136" stroke="none" opacity="0.45" d="M94.2857,22.48 L122.4762,22.48 C124.6839,22.48 126.4762,24.2723 126.4762,26.48 L126.4762,110 C126.4762,112.2077 124.6839,114 122.4762,114 L94.2857,114 C92.0781,114 90.2857,112.2077 90.2857,110 L90.2857,26.48 C90.2857,24.2723 92.0781,22.48 94.2857,22.48 Z" />
128
+ <Path className="chartFill5 chartStroke10" position="absolute" left="0px" top="0px" width="231px" height="136px" viewBox="0 0 231 136" fill="none" strokeWidth="2" opacity="0.9" d="M94.2857,22.48 L122.4762,22.48 C124.6839,22.48 126.4762,24.2723 126.4762,26.48 L126.4762,110 C126.4762,112.2077 124.6839,114 122.4762,114 L94.2857,114 C92.0781,114 90.2857,112.2077 90.2857,110 L90.2857,26.48 C90.2857,24.2723 92.0781,22.48 94.2857,22.48 Z" />
129
+ <Path className="chartFill5 chartStroke10" position="absolute" left="0px" top="0px" width="231px" height="136px" viewBox="0 0 231 136" stroke="none" opacity="0.45" d="M143.5238,71.36 L163.7143,71.36 C168.1296,71.36 171.7143,74.9447 171.7143,79.36 L171.7143,106 C171.7143,110.4153 168.1296,114 163.7143,114 L143.5238,114 C139.1085,114 135.5238,110.4153 135.5238,106 L135.5238,79.36 C135.5238,74.9447 139.1085,71.36 143.5238,71.36 Z" />
130
+ <Path className="chartFill5 chartStroke10" position="absolute" left="0px" top="0px" width="231px" height="136px" viewBox="0 0 231 136" fill="none" strokeWidth="2" opacity="0.9" d="M143.5238,71.36 L163.7143,71.36 C168.1296,71.36 171.7143,74.9447 171.7143,79.36 L171.7143,106 C171.7143,110.4153 168.1296,114 163.7143,114 L143.5238,114 C139.1085,114 135.5238,110.4153 135.5238,106 L135.5238,79.36 C135.5238,74.9447 139.1085,71.36 143.5238,71.36 Z" />
131
+ <Path className="chartFill5 chartStroke10" position="absolute" left="0px" top="0px" width="231px" height="136px" viewBox="0 0 231 136" stroke="none" opacity="0.45" d="M192.7619,37.04 L204.9524,37.04 C211.5754,37.04 216.9524,42.417 216.9524,49.04 L216.9524,102 C216.9524,108.623 211.5754,114 204.9524,114 L192.7619,114 C186.1389,114 180.7619,108.623 180.7619,102 L180.7619,49.04 C180.7619,42.417 186.1389,37.04 192.7619,37.04 Z" />
132
+ <Path className="chartFill5 chartStroke10" position="absolute" left="0px" top="0px" width="231px" height="136px" viewBox="0 0 231 136" fill="none" strokeWidth="2" opacity="0.9" d="M192.7619,37.04 L204.9524,37.04 C211.5754,37.04 216.9524,42.417 216.9524,49.04 L216.9524,102 C216.9524,108.623 211.5754,114 204.9524,114 L192.7619,114 C186.1389,114 180.7619,108.623 180.7619,102 L180.7619,49.04 C180.7619,42.417 186.1389,37.04 192.7619,37.04 Z" />
133
+ <Path className="chartStroke11" position="absolute" left="0px" top="0px" width="231px" height="136px" viewBox="0 0 231 136" fill="none" strokeWidth="3" strokeDasharray="6,4" d="M50.4762,49.52 L75.8095,49.52 M95.7143,22.48 L121.0476,22.48 M140.9524,71.36 L166.2857,71.36 M186.1905,37.04 L211.5238,37.04" />
134
+ </View>
135
+ </View>
136
+ <Label className="caption">Katkoviiva, pyöristys, läpinäkyvyys · 57 komentoa</Label>
137
+ </View>
138
+ <View className="chartCell">
139
+ <View className="chartBox">
140
+ <View className="chart" position="relative" width="250.7px" height="190px">
141
+ <Path className="chartFill11" position="absolute" left="0px" top="0px" width="250.7px" height="190px" viewBox="0 0 250.7 190" stroke="none" d="M20.225,21 C20.225,22.1046 19.3296,23 18.225,23 C17.1204,23 16.225,22.1046 16.225,21 C16.225,19.8954 17.1204,19 18.225,19 C19.3296,19 20.225,19.8954 20.225,21 Z M117.225,21 C117.225,22.1046 116.3296,23 115.225,23 C114.1204,23 113.225,22.1046 113.225,21 C113.225,19.8954 114.1204,19 115.225,19 C116.3296,19 117.225,19.8954 117.225,21 Z M214.225,21 C214.225,22.1046 213.3296,23 212.225,23 C211.1204,23 210.225,22.1046 210.225,21 C210.225,19.8954 211.1204,19 212.225,19 C213.3296,19 214.225,19.8954 214.225,21 Z M20.225,57 C20.225,58.1046 19.3296,59 18.225,59 C17.1204,59 16.225,58.1046 16.225,57 C16.225,55.8954 17.1204,55 18.225,55 C19.3296,55 20.225,55.8954 20.225,57 Z M117.225,57 C117.225,58.1046 116.3296,59 115.225,59 C114.1204,59 113.225,58.1046 113.225,57 C113.225,55.8954 114.1204,55 115.225,55 C116.3296,55 117.225,55.8954 117.225,57 Z M214.225,57 C214.225,58.1046 213.3296,59 212.225,59 C211.1204,59 210.225,58.1046 210.225,57 C210.225,55.8954 211.1204,55 212.225,55 C213.3296,55 214.225,55.8954 214.225,57 Z M38.225,109 C38.225,110.1046 37.3296,111 36.225,111 C35.1204,111 34.225,110.1046 34.225,109 C34.225,107.8954 35.1204,107 36.225,107 C37.3296,107 38.225,107.8954 38.225,109 Z M117.225,109 C117.225,110.1046 116.3296,111 115.225,111 C114.1204,111 113.225,110.1046 113.225,109 C113.225,107.8954 114.1204,107 115.225,107 C116.3296,107 117.225,107.8954 117.225,109 Z M208.225,109 C208.225,110.1046 207.3296,111 206.225,111 C205.1204,111 204.225,110.1046 204.225,109 C204.225,107.8954 205.1204,107 206.225,107 C207.3296,107 208.225,107.8954 208.225,109 Z" />
142
+ <Label className="chartText1" position="absolute" left="18.225px" top="11.4px" width="84px" textAlign="left" fontSize="12px">alphabetic</Label>
143
+ <Label className="chartText1" position="absolute" left="100.525px" top="21px" width="29.4px" textAlign="center" fontSize="12px">top</Label>
144
+ <Label className="chartText1" position="absolute" left="159.425px" top="15px" width="52.8px" textAlign="right" fontSize="12px">middle</Label>
145
+ <Label className="chartText1" position="absolute" left="18.225px" top="45px" width="52.8px" textAlign="left" fontSize="12px">bottom</Label>
146
+ <Label className="chartText1" position="absolute" left="88.825px" top="51px" width="52.8px" textAlign="center" fontSize="12px">nudged</Label>
147
+ <Label className="chartText1" position="absolute" left="173.75px" top="49.8px" width="76.95px" textAlign="center" fontSize="12px" rotate="-90">turned -90</Label>
148
+ <Label className="chartText1" position="absolute" left="0px" top="101.8px" width="72.45px" textAlign="center" fontSize="12px" rotate="90">turned 90</Label>
149
+ <Label className="chartText1" position="absolute" left="83.95px" top="101.8px" width="76.95px" textAlign="center" fontSize="12px" rotate="-45">turned -45</Label>
150
+ <Label className="chartText1" position="absolute" left="158.825px" top="101.8px" width="80.4px" textAlign="center" fontSize="12px" rotate="270">turned 270</Label>
151
+ </View>
152
+ </View>
153
+ <Label className="caption">Tekstin ankkurointi · 20 komentoa</Label>
154
+ </View>
155
+ </View>
156
+ </View>
157
+ );
158
+ }
159
+
160
+ export default render;
@@ -0,0 +1,91 @@
1
+ import { View, Label } from "./evg_types";
2
+
3
+ /**
4
+ * Emoji: clusters, shaping, and a colour of their own.
5
+ *
6
+ * Everything here is set from `Noto_Emoji/NotoEmoji-Regular.ttf` — the same
7
+ * file on every target. The PDF embeds a subset of it as a Type0/Identity-H
8
+ * font, the PNG fills its outlines with the engine's own rasterizer, and the
9
+ * standalone HTML loads the same TTF through @font-face so the browser
10
+ * measures what EVG measured.
11
+ *
12
+ * The sequences below are the point. Each one is several codepoints and one
13
+ * glyph, and it only becomes that glyph if the whole cluster reaches the
14
+ * shaper together — which is why the face is chosen per cluster and not per
15
+ * codepoint. The keycap is the case that proves it: its base is a digit, so a
16
+ * per-codepoint decision left the "1" in the text face and sent only the box
17
+ * to the emoji face, and the ligature never saw all three parts.
18
+ *
19
+ * The tinted rows use `emoji-color`, which exists because there are no inline
20
+ * spans here to hang a second colour on.
21
+ */
22
+ function render() {
23
+ return (
24
+ <View className="page">
25
+ <Label className="eyebrow">EVG — one engine, three targets</Label>
26
+ <Label className="title">Emoji</Label>
27
+ <View className="rule" />
28
+
29
+ <Label className="subhead">One cluster, one glyph</Label>
30
+ <View className="seqRow">
31
+ <Label className="seqGlyph">👨‍👩‍👧</Label>
32
+ <View className="seqText">
33
+ <Label className="seqName">Joined family</Label>
34
+ <Label className="seqNote">
35
+ Five codepoints joined by U+200D. GSUB substitutes one ligature for
36
+ all five, so it measures one advance and draws one glyph.
37
+ </Label>
38
+ </View>
39
+ </View>
40
+ <View className="seqRow">
41
+ <Label className="seqGlyph">🇫🇮</Label>
42
+ <View className="seqText">
43
+ <Label className="seqName">Flag</Label>
44
+ <Label className="seqNote">
45
+ A pair of regional indicators — and exactly a pair, or two flags in
46
+ a row would fuse into one cluster and neither would resolve.
47
+ </Label>
48
+ </View>
49
+ </View>
50
+ <View className="seqRow">
51
+ <Label className="seqGlyph">1️⃣</Label>
52
+ <View className="seqText">
53
+ <Label className="seqName">Keycap</Label>
54
+ <Label className="seqNote">
55
+ Digit, variation selector, enclosing keycap. The base character is
56
+ in the text face, which is why the face has to be chosen for the
57
+ whole cluster rather than per codepoint.
58
+ </Label>
59
+ </View>
60
+ </View>
61
+ <View className="seqRow">
62
+ <Label className="seqGlyph">👍🏽</Label>
63
+ <View className="seqText">
64
+ <Label className="seqName">Skin tone</Label>
65
+ <Label className="seqNote">
66
+ A modifier attaches to the emoji before it. This face is
67
+ monochrome, so it resolves to the base glyph — one glyph either way.
68
+ </Label>
69
+ </View>
70
+ </View>
71
+
72
+ <Label className="subhead">A colour of their own</Label>
73
+ <Label className="tintRose">Rose emoji, dark text 🎉 🚀 ⚠</Label>
74
+ <Label className="tintBlue">Blue emoji, dark text 🎉 🚀 ⚠</Label>
75
+ <Label className="tintGreen">Green emoji, dark text 🎉 🚀 ⚠</Label>
76
+ <Label className="body">
77
+ A monochrome face is outlines, so it takes whatever colour it is filled
78
+ with. The emoji-color property is inherited the way color is, and unset
79
+ it is the text colour — so a page that does not ask for one renders
80
+ byte-identically to before it existed.
81
+ </Label>
82
+
83
+ <Label className="subhead">In a sentence</Label>
84
+ <Label className="body">
85
+ Text and emoji share a line and a baseline 😀, the run is cut only where
86
+ the face has to change 🎉, and the PDF still extracts every one of them
87
+ as the codepoints they were written with 🚀.
88
+ </Label>
89
+ </View>
90
+ );
91
+ }
@@ -0,0 +1,46 @@
1
+ import { View, Label } from "./evg_types";
2
+
3
+ /**
4
+ * Flex: grow, shrink and basis; wrapping; and how a row distributes what is
5
+ * left over. Every arrangement here is a class in the stylesheet, so the same
6
+ * tree lays out differently under each theme.
7
+ */
8
+ function render() {
9
+ return (
10
+ <View className="page">
11
+ <Label className="title">Flex</Label>
12
+ <View className="rule" />
13
+
14
+ <Label className="subhead">flex: 1 / 2 / 1</Label>
15
+ <View className="row">
16
+ <View className="box grow1"><Label className="boxLabel">1</Label></View>
17
+ <View className="box grow2"><Label className="boxLabel">2</Label></View>
18
+ <View className="box grow1"><Label className="boxLabel">1</Label></View>
19
+ </View>
20
+
21
+ <Label className="subhead">flex-shrink: 0 pitää mittansa</Label>
22
+ <View className="row">
23
+ <View className="box noshrink"><Label className="boxLabel">kiinteä</Label></View>
24
+ <View className="box grow1"><Label className="boxLabel">joustaa</Label></View>
25
+ <View className="box grow1"><Label className="boxLabel">joustaa</Label></View>
26
+ </View>
27
+
28
+ <Label className="subhead">justify-content: space-between</Label>
29
+ <View className="row between">
30
+ <View className="chip"><Label className="boxLabel">yksi</Label></View>
31
+ <View className="chip"><Label className="boxLabel">kaksi</Label></View>
32
+ <View className="chip"><Label className="boxLabel">kolme</Label></View>
33
+ </View>
34
+
35
+ <Label className="subhead">flex-wrap: wrap</Label>
36
+ <View className="row wrapping">
37
+ <View className="tile"><Label className="boxLabel">1</Label></View>
38
+ <View className="tile"><Label className="boxLabel">2</Label></View>
39
+ <View className="tile"><Label className="boxLabel">3</Label></View>
40
+ <View className="tile"><Label className="boxLabel">4</Label></View>
41
+ <View className="tile"><Label className="boxLabel">5</Label></View>
42
+ <View className="tile"><Label className="boxLabel">6</Label></View>
43
+ </View>
44
+ </View>
45
+ );
46
+ }