pagyra-js 0.0.1
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.
- package/.eslintrc.json +30 -0
- package/CHANGELOG.md +13 -0
- package/README.md +275 -0
- package/UA_Styles_Chromium.md +93 -0
- package/_ext/woff2_conversion/brotli-decode.d.ts +139 -0
- package/_ext/woff2_conversion/brotli-encode.d.ts +129 -0
- package/_ext/woff2_conversion/brotli-port.d.ts +12 -0
- package/_ext/woff2_conversion/brotli-shared-dictionary.d.ts +25 -0
- package/_ext/woff2_conversion/brotli-types.d.ts +15 -0
- package/_ext/woff2_conversion/woff2-common.d.ts +37 -0
- package/_ext/woff2_conversion/woff2-decode.d.ts +32 -0
- package/_ext/woff2_conversion/woff2-encode.d.ts +31 -0
- package/_ext/woff2_conversion/woff2-output.d.ts +39 -0
- package/_ext/woff2_original_cpp/brotli/brotli.c +1559 -0
- package/_ext/woff2_original_cpp/brotli/brotli.md +116 -0
- package/_ext/woff2_original_cpp/brotli/decode.h +409 -0
- package/_ext/woff2_original_cpp/brotli/encode.h +505 -0
- package/_ext/woff2_original_cpp/brotli/port.h +302 -0
- package/_ext/woff2_original_cpp/brotli/shared_dictionary.h +100 -0
- package/_ext/woff2_original_cpp/brotli/types.h +83 -0
- package/_ext/woff2_original_cpp/cmake/FindBrotliDec.cmake +35 -0
- package/_ext/woff2_original_cpp/cmake/FindBrotliEnc.cmake +35 -0
- package/_ext/woff2_original_cpp/include/woff2/decode.h +36 -0
- package/_ext/woff2_original_cpp/include/woff2/encode.h +43 -0
- package/_ext/woff2_original_cpp/include/woff2/output.h +86 -0
- package/_ext/woff2_original_cpp/src/buffer.h +164 -0
- package/_ext/woff2_original_cpp/src/convert_woff2ttf_fuzzer.cc +13 -0
- package/_ext/woff2_original_cpp/src/convert_woff2ttf_fuzzer_new_entry.cc +12 -0
- package/_ext/woff2_original_cpp/src/file.h +30 -0
- package/_ext/woff2_original_cpp/src/font.cc +400 -0
- package/_ext/woff2_original_cpp/src/font.h +105 -0
- package/_ext/woff2_original_cpp/src/glyph.cc +383 -0
- package/_ext/woff2_original_cpp/src/glyph.h +71 -0
- package/_ext/woff2_original_cpp/src/normalize.cc +314 -0
- package/_ext/woff2_original_cpp/src/normalize.h +39 -0
- package/_ext/woff2_original_cpp/src/port.h +66 -0
- package/_ext/woff2_original_cpp/src/round.h +27 -0
- package/_ext/woff2_original_cpp/src/store_bytes.h +55 -0
- package/_ext/woff2_original_cpp/src/table_tags.cc +82 -0
- package/_ext/woff2_original_cpp/src/table_tags.h +30 -0
- package/_ext/woff2_original_cpp/src/transform.cc +430 -0
- package/_ext/woff2_original_cpp/src/transform.h +26 -0
- package/_ext/woff2_original_cpp/src/variable_length.cc +129 -0
- package/_ext/woff2_original_cpp/src/variable_length.h +30 -0
- package/_ext/woff2_original_cpp/src/woff2_common.cc +50 -0
- package/_ext/woff2_original_cpp/src/woff2_common.h +64 -0
- package/_ext/woff2_original_cpp/src/woff2_compress.cc +43 -0
- package/_ext/woff2_original_cpp/src/woff2_dec.cc +1398 -0
- package/_ext/woff2_original_cpp/src/woff2_decompress.cc +41 -0
- package/_ext/woff2_original_cpp/src/woff2_enc.cc +458 -0
- package/_ext/woff2_original_cpp/src/woff2_info.cc +142 -0
- package/_ext/woff2_original_cpp/src/woff2_out.cc +63 -0
- package/assets/fonts/ttf/arimo/Arimo-Bold.ttf +0 -0
- package/assets/fonts/ttf/arimo/Arimo-BoldItalic.ttf +0 -0
- package/assets/fonts/ttf/arimo/Arimo-Italic.ttf +0 -0
- package/assets/fonts/ttf/arimo/Arimo-Regular.ttf +0 -0
- package/assets/fonts/ttf/cinzeldecorative/CinzelDecorative-Black.ttf +0 -0
- package/assets/fonts/ttf/cinzeldecorative/CinzelDecorative-Bold.ttf +0 -0
- package/assets/fonts/ttf/cinzeldecorative/CinzelDecorative-Regular.ttf +0 -0
- package/assets/fonts/ttf/dejavu/DejaVuSans.ttf +0 -0
- package/assets/fonts/ttf/firecode/FiraCode-Bold.ttf +0 -0
- package/assets/fonts/ttf/firecode/FiraCode-Light.ttf +0 -0
- package/assets/fonts/ttf/firecode/FiraCode-Medium.ttf +0 -0
- package/assets/fonts/ttf/firecode/FiraCode-Regular.ttf +0 -0
- package/assets/fonts/ttf/firecode/FiraCode-SemiBold.ttf +0 -0
- package/assets/fonts/ttf/notoemoji/NotoEmoji-Bold.ttf +0 -0
- package/assets/fonts/ttf/notoemoji/NotoEmoji-Light.ttf +0 -0
- package/assets/fonts/ttf/notoemoji/NotoEmoji-Medium.ttf +0 -0
- package/assets/fonts/ttf/notoemoji/NotoEmoji-Regular.ttf +0 -0
- package/assets/fonts/ttf/notoemoji/NotoEmoji-SemiBold.ttf +0 -0
- package/assets/fonts/ttf/notosans/NotoSans-Regular.ttf +0 -0
- package/assets/fonts/ttf/roboto/Roboto-Bold.ttf +0 -0
- package/assets/fonts/ttf/roboto/Roboto-BoldItalic.ttf +0 -0
- package/assets/fonts/ttf/roboto/Roboto-Italic.ttf +0 -0
- package/assets/fonts/ttf/roboto/Roboto-Regular.ttf +0 -0
- package/assets/fonts/ttf/stixtwomath/STIXTwoMath-Regular.ttf +0 -0
- package/assets/fonts/ttf/tinos/Tinos-Bold.ttf +0 -0
- package/assets/fonts/ttf/tinos/Tinos-BoldItalic.ttf +0 -0
- package/assets/fonts/ttf/tinos/Tinos-Italic.ttf +0 -0
- package/assets/fonts/ttf/tinos/Tinos-Regular.ttf +0 -0
- package/assets/fonts/woff/lato/lato-latin-400-italic.woff +0 -0
- package/assets/fonts/woff/lato/lato-latin-400-normal.woff +0 -0
- package/assets/fonts/woff/lato/lato-latin-700-italic.woff +0 -0
- package/assets/fonts/woff/lato/lato-latin-700-normal.woff +0 -0
- package/assets/fonts/woff2/caveat/Caveat-Bold.woff2 +0 -0
- package/assets/fonts/woff2/caveat/Caveat-Regular.woff2 +0 -0
- package/assets/fonts/woff2/lato/lato-latin-400-italic.woff2 +0 -0
- package/assets/fonts/woff2/lato/lato-latin-400-normal.woff2 +0 -0
- package/assets/fonts/woff2/lato/lato-latin-700-italic.woff2 +0 -0
- package/assets/fonts/woff2/lato/lato-latin-700-normal.woff2 +0 -0
- package/docs/AGENTS.md +288 -0
- package/docs/BACKGROUND-REPEAT-IMPLEMENTATION.md +127 -0
- package/docs/BACKGROUND-REPEAT-REFERENCE.md +127 -0
- package/docs/BACKGROUND-REPEAT-SPACE-ROUND.md +164 -0
- package/docs/css-properties-support.md +256 -0
- package/docs/src_modules_table.md +172 -0
- package/docs/text-overlap-fix.md +85 -0
- package/docs/text-overlap-investigation.md +27 -0
- package/eslint.config.js +36 -0
- package/glyph_measure.htm +1458 -0
- package/package.json +50 -0
- package/playground/browser-entry.ts +2 -0
- package/playground/exports/background-text-debug.pdf +0 -0
- package/playground/public/app.js +875 -0
- package/playground/public/assets/1.webp +0 -0
- package/playground/public/examples/accents-test.html +24 -0
- package/playground/public/examples/advanced-selectors-demo.html +118 -0
- package/playground/public/examples/background-advanced-showcase.html +82 -0
- package/playground/public/examples/background-clip-text.html +36 -0
- package/playground/public/examples/background-origin-showcase.html +137 -0
- package/playground/public/examples/background-position-showcase.html +83 -0
- package/playground/public/examples/background-repeat-showcase.html +83 -0
- package/playground/public/examples/background-repeat-space-round.html +348 -0
- package/playground/public/examples/background-size-showcase.html +82 -0
- package/playground/public/examples/background-text-debug.html +18 -0
- package/playground/public/examples/baseline-test.html +24 -0
- package/playground/public/examples/bold-showcase.html +150 -0
- package/playground/public/examples/bold-strike-example.html +12 -0
- package/playground/public/examples/border-collapse-test.html +23 -0
- package/playground/public/examples/centered-shadow-div.html +72 -0
- package/playground/public/examples/css-variables.html +50 -0
- package/playground/public/examples/debug-accents.html +11 -0
- package/playground/public/examples/debug-text-overlap.html +46 -0
- package/playground/public/examples/flex-gap-column.html +130 -0
- package/playground/public/examples/flex-gap-row.html +137 -0
- package/playground/public/examples/flex-padding-test.html +29 -0
- package/playground/public/examples/flexbox-text-test.html +193 -0
- package/playground/public/examples/fonts-demo.html +126 -0
- package/playground/public/examples/footer-example.html +4 -0
- package/playground/public/examples/gradient-text.html +54 -0
- package/playground/public/examples/grid-gap-demo.html +156 -0
- package/playground/public/examples/header-example.html +4 -0
- package/playground/public/examples/header-footer-example.html +27 -0
- package/playground/public/examples/image-showcase.html +33 -0
- package/playground/public/examples/justify-text.html +22 -0
- package/playground/public/examples/linear-gradient-example.html +38 -0
- package/playground/public/examples/lorem-span.html +14 -0
- package/playground/public/examples/margin-block-showcase.html +21 -0
- package/playground/public/examples/margin-inline-showcase.html +21 -0
- package/playground/public/examples/monthly-summary.html +95 -0
- package/playground/public/examples/multi-page-lorem.html +190 -0
- package/playground/public/examples/opacity-debug.html +39 -0
- package/playground/public/examples/opacity-example.html +70 -0
- package/playground/public/examples/png-image-example.html +13 -0
- package/playground/public/examples/red-rectangle.html +18 -0
- package/playground/public/examples/repro.html +24 -0
- package/playground/public/examples/rounded-borders-test.html +24 -0
- package/playground/public/examples/simple-list.html +89 -0
- package/playground/public/examples/simple-svg.html +37 -0
- package/playground/public/examples/simple-table.html +52 -0
- package/playground/public/examples/skew-div.html +138 -0
- package/playground/public/examples/skew-text.html +21 -0
- package/playground/public/examples/starter-report.css +51 -0
- package/playground/public/examples/starter-report.html +23 -0
- package/playground/public/examples/svg-aspect-ratio-showcase.html +116 -0
- package/playground/public/examples/svg-gradients-linear.html +28 -0
- package/playground/public/examples/svg-gradients-radial.html +29 -0
- package/playground/public/examples/svg-gradients-showcase.html +66 -0
- package/playground/public/examples/svg-image-path-test.html +43 -0
- package/playground/public/examples/svg-images-clipping.html +27 -0
- package/playground/public/examples/svg-path-gallery.html +118 -0
- package/playground/public/examples/svg-radial-transform-demo.html +78 -0
- package/playground/public/examples/svg-transform-stack.html +103 -0
- package/playground/public/examples/svg-transforms-demo.html +127 -0
- package/playground/public/examples/table-merge-test.html +34 -0
- package/playground/public/examples/text-decoration-showcase.html +138 -0
- package/playground/public/examples/text-indent-showcase.html +137 -0
- package/playground/public/examples/text-shadow-example.html +29 -0
- package/playground/public/examples/very-complex-css.html +293 -0
- package/playground/public/examples/webp-example.html +13 -0
- package/playground/public/examples/z-index-demo.html +93 -0
- package/playground/public/examples.json +240 -0
- package/playground/public/images/dice.png +0 -0
- package/playground/public/images/duck.jpg +0 -0
- package/playground/public/index.html +149 -0
- package/playground/public/mode.js +1 -0
- package/playground/public/styles.css +382 -0
- package/playground/public/tmp-h2-debug.html +33 -0
- package/playground/public/tmp-italic-debug.html +32 -0
- package/playground/public/vendor/codemirror/codemirror.min.css +1 -0
- package/playground/public/vendor/codemirror/codemirror.min.js +1 -0
- package/playground/public/vendor/codemirror/css.min.js +1 -0
- package/playground/public/vendor/codemirror/darcula.min.css +1 -0
- package/playground/public/vendor/codemirror/htmlmixed.min.js +1 -0
- package/playground/public/vendor/codemirror/javascript.min.js +1 -0
- package/playground/public/vendor/codemirror/xml.min.js +1 -0
- package/playground/public/vendor/pagyra-playground-browser.js +165966 -0
- package/playground/public/vendor/pagyra-playground-browser.js.map +7 -0
- package/playground/server.d.ts +1 -0
- package/playground/server.js +68 -0
- package/playground/server.ts +128 -0
- package/scripts/browser-build.ts +101 -0
- package/scripts/build-browser-bundle.ts +52 -0
- package/scripts/glyph-comparison/simulate.ts +744 -0
- package/scripts/playground-browser-server.ts +57 -0
- package/scripts/probe-roboto.ts +6 -0
- package/scripts/render-playground-example.ts +121 -0
- package/scripts/run-glyph-atlas-tuner-runner.mjs +113 -0
- package/scripts/run-glyph-atlas-tuner.ts +141 -0
- package/scripts/top-ts-files.ps1 +39 -0
- package/scripts/top-ts-files.sh +37 -0
- package/scripts/woff2_info.ps1 +132 -0
- package/src/browser-entry.ts +14 -0
- package/src/compression/adler32.ts +45 -0
- package/src/compression/brotli/brotli.ts +463 -0
- package/src/compression/brotli/index.ts +15 -0
- package/src/compression/brotli/transform.ts +184 -0
- package/src/compression/brotli/types.ts +58 -0
- package/src/compression/brotli/utils.ts +157 -0
- package/src/compression/brotli/vendor/bit_reader.js +124 -0
- package/src/compression/brotli/vendor/context.js +250 -0
- package/src/compression/brotli/vendor/decode.d.ts +2 -0
- package/src/compression/brotli/vendor/decode.js +938 -0
- package/src/compression/brotli/vendor/dictionary-data.js +9469 -0
- package/src/compression/brotli/vendor/dictionary.js +36 -0
- package/src/compression/brotli/vendor/huffman.js +123 -0
- package/src/compression/brotli/vendor/package.json +3 -0
- package/src/compression/brotli/vendor/prefix.js +60 -0
- package/src/compression/brotli/vendor/streams.js +31 -0
- package/src/compression/brotli/vendor/transform.js +247 -0
- package/src/compression/brotli/vendor-decode.d.ts +4 -0
- package/src/compression/brotli/woff2-glyf-transform.ts +623 -0
- package/src/compression/decompress.ts +16 -0
- package/src/compression/deflate.ts +295 -0
- package/src/compression/index.ts +4 -0
- package/src/compression/types.ts +26 -0
- package/src/compression/utils.ts +107 -0
- package/src/core.ts +18 -0
- package/src/css/apply-declarations.ts +86 -0
- package/src/css/background-types.ts +65 -0
- package/src/css/browser-defaults.ts +16 -0
- package/src/css/clip-path-types.ts +13 -0
- package/src/css/compute-style.ts +494 -0
- package/src/css/css-unit-resolver.ts +65 -0
- package/src/css/custom-properties.ts +215 -0
- package/src/css/enums.ts +127 -0
- package/src/css/font-face-parser.ts +233 -0
- package/src/css/font-weight.ts +65 -0
- package/src/css/inline-style-parser.ts +27 -0
- package/src/css/layout-property-resolver.ts +75 -0
- package/src/css/length.ts +141 -0
- package/src/css/line-height.ts +96 -0
- package/src/css/named-colors.ts +150 -0
- package/src/css/parsers/background-parser-extended.ts +111 -0
- package/src/css/parsers/background-parser.ts +456 -0
- package/src/css/parsers/border-block-parser.ts +26 -0
- package/src/css/parsers/border-inline-parser.ts +26 -0
- package/src/css/parsers/border-parser-extended.ts +256 -0
- package/src/css/parsers/border-parser.ts +175 -0
- package/src/css/parsers/box-shadow-parser.ts +106 -0
- package/src/css/parsers/clip-path-parser.ts +92 -0
- package/src/css/parsers/color-parser.ts +14 -0
- package/src/css/parsers/dimension-parser.ts +117 -0
- package/src/css/parsers/display-flex-parser.ts +59 -0
- package/src/css/parsers/flex-parser.ts +144 -0
- package/src/css/parsers/font-parser.ts +40 -0
- package/src/css/parsers/gradient-parser.ts +366 -0
- package/src/css/parsers/grid-parser-extended.ts +55 -0
- package/src/css/parsers/grid-parser.ts +218 -0
- package/src/css/parsers/length-parser.ts +95 -0
- package/src/css/parsers/list-style-parser.ts +39 -0
- package/src/css/parsers/margin-block-parser.ts +12 -0
- package/src/css/parsers/margin-inline-parser.ts +12 -0
- package/src/css/parsers/margin-parser.ts +30 -0
- package/src/css/parsers/opacity-parser.ts +32 -0
- package/src/css/parsers/overflow-wrap-parser.ts +38 -0
- package/src/css/parsers/padding-block-parser.ts +12 -0
- package/src/css/parsers/padding-inline-parser.ts +12 -0
- package/src/css/parsers/padding-parser.ts +30 -0
- package/src/css/parsers/position-parser.ts +75 -0
- package/src/css/parsers/register-parsers.ts +302 -0
- package/src/css/parsers/registry.ts +18 -0
- package/src/css/parsers/text-parser-extended.ts +144 -0
- package/src/css/parsers/text-parser.ts +25 -0
- package/src/css/parsers/text-shadow-parser.ts +94 -0
- package/src/css/properties/box-model.ts +82 -0
- package/src/css/properties/flexbox.ts +44 -0
- package/src/css/properties/gap.ts +14 -0
- package/src/css/properties/grid.ts +94 -0
- package/src/css/properties/layout.ts +59 -0
- package/src/css/properties/misc.ts +44 -0
- package/src/css/properties/typography.ts +71 -0
- package/src/css/properties/visual.ts +68 -0
- package/src/css/selectors/matcher.ts +219 -0
- package/src/css/selectors/parser.ts +163 -0
- package/src/css/selectors/simple-key.ts +31 -0
- package/src/css/selectors/specificity.ts +41 -0
- package/src/css/selectors/types.ts +31 -0
- package/src/css/shorthands/border-shorthand.ts +68 -0
- package/src/css/shorthands/box-shorthand.ts +33 -0
- package/src/css/style-inheritance.ts +50 -0
- package/src/css/style.ts +402 -0
- package/src/css/ua-defaults/base-defaults.ts +266 -0
- package/src/css/ua-defaults/browser-defaults.ts +134 -0
- package/src/css/ua-defaults/element-defaults.ts +374 -0
- package/src/css/ua-defaults/types.ts +43 -0
- package/src/css/unit-conversion.ts +24 -0
- package/src/css/utils.ts +108 -0
- package/src/css/viewport.ts +17 -0
- package/src/debug/audit.ts +20 -0
- package/src/debug/ids.ts +13 -0
- package/src/debug/log.js +28 -0
- package/src/debug/log.ts +52 -0
- package/src/debug/tree.ts +57 -0
- package/src/dom/node.ts +133 -0
- package/src/environment/browser-environment.ts +78 -0
- package/src/environment/environment.ts +35 -0
- package/src/environment/global.ts +13 -0
- package/src/environment/node-environment.browser.ts +28 -0
- package/src/environment/node-environment.ts +64 -0
- package/src/fonts/detector.ts +28 -0
- package/src/fonts/engines/ttf-engine.ts +28 -0
- package/src/fonts/engines/woff-engine.ts +38 -0
- package/src/fonts/engines/woff2-engine.ts +41 -0
- package/src/fonts/extractors/metrics-extractor.ts +362 -0
- package/src/fonts/font-registry-resolver.ts +132 -0
- package/src/fonts/index.ts +3 -0
- package/src/fonts/orchestrator.ts +92 -0
- package/src/fonts/parsers/base-parser.ts +23 -0
- package/src/fonts/types.ts +85 -0
- package/src/fonts/utils/ttf-reconstructor.ts +120 -0
- package/src/fonts/woff/decoder.ts +105 -0
- package/src/fonts/woff2/buffer.ts +106 -0
- package/src/fonts/woff2/decoder.ts +981 -0
- package/src/geometry/box.ts +48 -0
- package/src/geometry/matrix.ts +59 -0
- package/src/html/css/parse-css.ts +85 -0
- package/src/html/dom-converter.ts +433 -0
- package/src/html/image-converter.ts +200 -0
- package/src/html-to-pdf.ts +410 -0
- package/src/image/base-decoder.ts +149 -0
- package/src/image/image-service.ts +188 -0
- package/src/image/jpeg-decoder.ts +73 -0
- package/src/image/png-decoder.ts +550 -0
- package/src/image/types.ts +20 -0
- package/src/image/webp-decoder.ts +242 -0
- package/src/image/webp-huffman.ts +218 -0
- package/src/image/webp-riff-parser.ts +54 -0
- package/src/image/webp-vp8l-decoder.ts +199 -0
- package/src/index.ts +35 -0
- package/src/layout/context/float-context.ts +62 -0
- package/src/layout/context/layout-environment.ts +29 -0
- package/src/layout/debug.ts +18 -0
- package/src/layout/inline/bounding-box-calculator.ts +132 -0
- package/src/layout/inline/font-baseline-calculator.ts +76 -0
- package/src/layout/inline/inline-utils.ts +94 -0
- package/src/layout/inline/layout.ts +285 -0
- package/src/layout/inline/line_breaker.ts +109 -0
- package/src/layout/inline/measurement.ts +144 -0
- package/src/layout/inline/run-placer.ts +139 -0
- package/src/layout/inline/text-alignment.ts +70 -0
- package/src/layout/inline/tokenizer.ts +195 -0
- package/src/layout/inline/types.ts +76 -0
- package/src/layout/pipeline/context-factory.ts +16 -0
- package/src/layout/pipeline/default-engine.ts +24 -0
- package/src/layout/pipeline/engine.ts +59 -0
- package/src/layout/pipeline/layout-tree.ts +13 -0
- package/src/layout/pipeline/out-of-flow-manager.ts +73 -0
- package/src/layout/pipeline/strategy.ts +12 -0
- package/src/layout/pipeline/text-metrics-initializer.ts +13 -0
- package/src/layout/strategies/block.ts +236 -0
- package/src/layout/strategies/display-none.ts +14 -0
- package/src/layout/strategies/fallback.ts +15 -0
- package/src/layout/strategies/flex.ts +477 -0
- package/src/layout/strategies/fragmentation.ts +17 -0
- package/src/layout/strategies/grid.ts +247 -0
- package/src/layout/strategies/image.ts +342 -0
- package/src/layout/strategies/inline.ts +128 -0
- package/src/layout/strategies/table.ts +595 -0
- package/src/layout/table/cell_layout.ts +31 -0
- package/src/layout/table/diagnostics.ts +19 -0
- package/src/layout/text-run.ts +42 -0
- package/src/layout/utils/content-measurer.ts +117 -0
- package/src/layout/utils/display-utils.ts +24 -0
- package/src/layout/utils/floats.ts +98 -0
- package/src/layout/utils/gap-calculator.ts +167 -0
- package/src/layout/utils/inline-formatter.ts +31 -0
- package/src/layout/utils/inline-formatting.ts +9 -0
- package/src/layout/utils/margin.ts +140 -0
- package/src/layout/utils/node-math.ts +237 -0
- package/src/layout/utils/overflow.ts +14 -0
- package/src/layout/utils/sizing.ts +12 -0
- package/src/layout/utils/text-metrics.ts +361 -0
- package/src/logging/debug.ts +58 -0
- package/src/pdf/font/base14/widths-courier-bold.ts +159 -0
- package/src/pdf/font/base14/widths-courier.ts +159 -0
- package/src/pdf/font/base14/widths-helvetica-bold.ts +158 -0
- package/src/pdf/font/base14/widths-helvetica.ts +158 -0
- package/src/pdf/font/base14/widths-times-bold.ts +158 -0
- package/src/pdf/font/base14/widths-times-roman.ts +158 -0
- package/src/pdf/font/base14/widths-types.ts +25 -0
- package/src/pdf/font/base14-widths.ts +32 -0
- package/src/pdf/font/blur.ts +81 -0
- package/src/pdf/font/builtin-fonts.browser.ts +262 -0
- package/src/pdf/font/builtin-fonts.ts +126 -0
- package/src/pdf/font/composite-glyph-parser.ts +242 -0
- package/src/pdf/font/embedder.ts +395 -0
- package/src/pdf/font/font-config.ts +190 -0
- package/src/pdf/font/font-registry.ts +263 -0
- package/src/pdf/font/font-subset.ts +258 -0
- package/src/pdf/font/glyph-atlas-maxrects.ts +305 -0
- package/src/pdf/font/glyph-atlas-tuner.ts +98 -0
- package/src/pdf/font/glyph-atlas.ts +226 -0
- package/src/pdf/font/glyph-cache.ts +127 -0
- package/src/pdf/font/loca-reader.ts +109 -0
- package/src/pdf/font/managers/font-resource-manager.ts +73 -0
- package/src/pdf/font/managers/subset-resource-manager.ts +164 -0
- package/src/pdf/font/rasterizer.ts +270 -0
- package/src/pdf/font/resolvers/base-font-mapper.ts +77 -0
- package/src/pdf/font/resolvers/family-resolver.ts +33 -0
- package/src/pdf/font/resolvers/weight-style-applicator.ts +63 -0
- package/src/pdf/font/simple-glyph-parser.ts +289 -0
- package/src/pdf/font/to-unicode.ts +109 -0
- package/src/pdf/font/transformation-matrix.ts +136 -0
- package/src/pdf/font/ttf-cmap.ts +180 -0
- package/src/pdf/font/ttf-global-metrics.ts +58 -0
- package/src/pdf/font/ttf-glyf.ts +125 -0
- package/src/pdf/font/ttf-glyph-metrics.ts +43 -0
- package/src/pdf/font/ttf-lite.ts +269 -0
- package/src/pdf/font/ttf-table-parser.ts +132 -0
- package/src/pdf/font/ttf-table-provider.ts +61 -0
- package/src/pdf/font/widths.ts +79 -0
- package/src/pdf/font-subset/font-registry.ts +127 -0
- package/src/pdf/header-footer-layout.ts +153 -0
- package/src/pdf/header-footer-painter.ts +209 -0
- package/src/pdf/header-footer-renderer.ts +357 -0
- package/src/pdf/header-footer-tokens.ts +55 -0
- package/src/pdf/header-footer.ts +25 -0
- package/src/pdf/layout-tree-builder.ts +261 -0
- package/src/pdf/page-painter.ts +241 -0
- package/src/pdf/pagination.ts +155 -0
- package/src/pdf/primitives/pdf-builder.ts +378 -0
- package/src/pdf/primitives/pdf-bytes.ts +40 -0
- package/src/pdf/primitives/pdf-document.ts +108 -0
- package/src/pdf/primitives/pdf-reference-manager.ts +47 -0
- package/src/pdf/primitives/pdf-resource-registries.ts +255 -0
- package/src/pdf/primitives/pdf-serializers.ts +194 -0
- package/src/pdf/primitives/pdf-types.ts +73 -0
- package/src/pdf/render.ts +210 -0
- package/src/pdf/renderer/box-painter.ts +236 -0
- package/src/pdf/renderer/page-paint.ts +102 -0
- package/src/pdf/renderer/paint-box-shadows.ts +218 -0
- package/src/pdf/renderer/radius.ts +58 -0
- package/src/pdf/renderers/graphics-state-manager.ts +40 -0
- package/src/pdf/renderers/image-renderer.ts +127 -0
- package/src/pdf/renderers/radius-utils.ts +80 -0
- package/src/pdf/renderers/rectangle-renderer.ts +129 -0
- package/src/pdf/renderers/rounded-rect-path.ts +120 -0
- package/src/pdf/renderers/shape-renderer.ts +563 -0
- package/src/pdf/renderers/shape-utils.ts +194 -0
- package/src/pdf/renderers/text-decoration-renderer.ts +313 -0
- package/src/pdf/renderers/text-encoder.ts +41 -0
- package/src/pdf/renderers/text-font-resolver.ts +75 -0
- package/src/pdf/renderers/text-renderer-utils.ts +28 -0
- package/src/pdf/renderers/text-renderer.ts +391 -0
- package/src/pdf/renderers/text-shadow-renderer.ts +300 -0
- package/src/pdf/shading/gradient-service.ts +525 -0
- package/src/pdf/shading/index.ts +1 -0
- package/src/pdf/stacking/build-stacking-contexts.ts +93 -0
- package/src/pdf/stacking/resolve-paint-order.ts +157 -0
- package/src/pdf/stacking/types.ts +40 -0
- package/src/pdf/svg/aspect-ratio.ts +81 -0
- package/src/pdf/svg/coordinate-mapper.ts +81 -0
- package/src/pdf/svg/geometry-builder.ts +45 -0
- package/src/pdf/svg/render-svg.ts +296 -0
- package/src/pdf/svg/shape-renderer.ts +463 -0
- package/src/pdf/svg/style-computer.ts +246 -0
- package/src/pdf/transform-adapter.ts +26 -0
- package/src/pdf/types.ts +377 -0
- package/src/pdf/utils/background-layer-resolver.ts +439 -0
- package/src/pdf/utils/background-tiles.ts +192 -0
- package/src/pdf/utils/border-dashes.ts +109 -0
- package/src/pdf/utils/border-radius-utils.ts +86 -0
- package/src/pdf/utils/box-dimensions-utils.ts +47 -0
- package/src/pdf/utils/clip-path-resolver.ts +50 -0
- package/src/pdf/utils/clipping-path-builder.ts +190 -0
- package/src/pdf/utils/color-utils.ts +102 -0
- package/src/pdf/utils/coordinate-transformer.ts +30 -0
- package/src/pdf/utils/drop-shadow-raster.ts +233 -0
- package/src/pdf/utils/encoding.ts +98 -0
- package/src/pdf/utils/glyph-atlas-registrar.ts +13 -0
- package/src/pdf/utils/glyph-run-renderer.ts +129 -0
- package/src/pdf/utils/image-command-partitioner.ts +28 -0
- package/src/pdf/utils/image-matrix-builder.ts +31 -0
- package/src/pdf/utils/image-utils.ts +26 -0
- package/src/pdf/utils/list-utils.ts +194 -0
- package/src/pdf/utils/node-text-run-factory.ts +202 -0
- package/src/pdf/utils/page-resource-registrar.ts +46 -0
- package/src/pdf/utils/result-combiner.ts +102 -0
- package/src/pdf/utils/shadow-utils.ts +127 -0
- package/src/pdf/utils/text-alignment-resolver.ts +76 -0
- package/src/pdf/utils/text-decoration-utils.ts +64 -0
- package/src/pdf/utils/text-layout-adjuster.ts +185 -0
- package/src/pdf/utils/text-utils.ts +193 -0
- package/src/pdf/utils/transform-scope-manager.ts +69 -0
- package/src/render/offset.ts +170 -0
- package/src/shim/empty.ts +2 -0
- package/src/shim/fs-empty.ts +5 -0
- package/src/shim/url-empty.ts +7 -0
- package/src/shim/zlib-empty.ts +9 -0
- package/src/style/shorthands/index.ts +19 -0
- package/src/style/ua/defaults.ts +69 -0
- package/src/svg/index.ts +4 -0
- package/src/svg/parser-registry.ts +71 -0
- package/src/svg/parser.ts +486 -0
- package/src/svg/path-data.ts +515 -0
- package/src/svg/types.ts +194 -0
- package/src/text/line-breaker.ts +321 -0
- package/src/text/text-transform.ts +43 -0
- package/src/text/text.ts +33 -0
- package/src/transform/css-parser.ts +95 -0
- package/src/types/fonts.ts +62 -0
- package/src/types/public.ts +19 -0
- package/src/units/page-utils.ts +58 -0
- package/src/units/units.ts +50 -0
- package/src/utils/base64.ts +24 -0
- package/test-output.txt +79 -0
- package/tests/css/background-parser.spec.ts +14 -0
- package/tests/css/clip-path-parser.spec.ts +66 -0
- package/tests/environment/path-resolution.spec.ts +104 -0
- package/tests/helpers/ai-layout-diagnostics.ts +141 -0
- package/tests/helpers/render-utils.ts +52 -0
- package/tests/helpers/text-geometry.ts +56 -0
- package/tests/layout/custom-properties.test.ts +38 -0
- package/tests/layout/gap-calculator.spec.ts +196 -0
- package/tests/layout/inline-background-alignment.spec.ts +93 -0
- package/tests/layout/inline-fragments.spec.ts +26 -0
- package/tests/layout/run-placer-baseline.spec.ts +108 -0
- package/tests/pdf/alignments.spec.ts +26 -0
- package/tests/pdf/background-clip.spec.ts +57 -0
- package/tests/pdf/background-repeat-space-round.spec.ts +35 -0
- package/tests/pdf/background-repeat.spec.ts +137 -0
- package/tests/pdf/border-radius.spec.ts +151 -0
- package/tests/pdf/clip-path.spec.ts +92 -0
- package/tests/pdf/radial-gradient.spec.ts +50 -0
- package/tests/pdf/svg-stroke-dash.spec.ts +81 -0
- package/tests/pdf/text-transform-matrix.spec.ts +43 -0
- package/tsconfig.json +17 -0
- package/types/fonts.js +10 -0
- package/vitest.config.ts +9 -0
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
# Background-Repeat Space & Round Implementation
|
|
2
|
+
|
|
3
|
+
## Challenge Completed! ✅
|
|
4
|
+
|
|
5
|
+
Successfully implemented **full support** for CSS `background-repeat: space` and `background-repeat: round` modes in the pagyra-js HTML-to-PDF converter.
|
|
6
|
+
|
|
7
|
+
## What Was Implemented
|
|
8
|
+
|
|
9
|
+
### 1. **Space Mode** (`background-repeat: space`)
|
|
10
|
+
- Tiles repeat as many times as they fit without clipping
|
|
11
|
+
- Even spacing is distributed between tiles
|
|
12
|
+
- First and last tiles touch the container edges
|
|
13
|
+
- Original tile dimensions are preserved
|
|
14
|
+
|
|
15
|
+
**Algorithm:**
|
|
16
|
+
```typescript
|
|
17
|
+
- Calculate how many tiles fit: Math.floor(containerSize / tileSize)
|
|
18
|
+
- Calculate spacing: (containerSize - (tiles × tileSize)) / (tiles - 1)
|
|
19
|
+
- Position tiles with consistent spacing between them
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
### 2. **Round Mode** (`background-repeat: round`)
|
|
23
|
+
- Tiles repeat and scale to fit perfectly
|
|
24
|
+
- No gaps or clipping
|
|
25
|
+
- Tiles are stretched or shrunk as needed
|
|
26
|
+
|
|
27
|
+
**Algorithm:**
|
|
28
|
+
```typescript
|
|
29
|
+
- Calculate tile count: Math.round(containerSize / tileSize)
|
|
30
|
+
- Calculate scaled size: containerSize / tileCount
|
|
31
|
+
- Render tiles at scaled dimensions
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Files Modified
|
|
35
|
+
|
|
36
|
+
1. **`src/pdf/utils/background-tiles.ts`**
|
|
37
|
+
- Added `computeSpacedTiles()` function
|
|
38
|
+
- Added `computeRoundedTiles()` function
|
|
39
|
+
- Enhanced `computeBackgroundTileRects()` to route to appropriate algorithm
|
|
40
|
+
- Fixed bug in standard repeat mode bounds checking
|
|
41
|
+
|
|
42
|
+
2. **`src/pdf/renderer/box-painter.ts`**
|
|
43
|
+
- Removed warning messages for space and round modes
|
|
44
|
+
- Now fully supports all repeat modes without warnings
|
|
45
|
+
|
|
46
|
+
3. **`tests/pdf/background-repeat-space-round.spec.ts`** (NEW)
|
|
47
|
+
- Tests for space mode functionality
|
|
48
|
+
- Tests for round mode scaling
|
|
49
|
+
- Validation of tile dimensions and positioning
|
|
50
|
+
|
|
51
|
+
4. **`playground/public/examples/background-repeat-space-round.html`** (NEW)
|
|
52
|
+
- Comprehensive visual showcase
|
|
53
|
+
- Side-by-side comparisons
|
|
54
|
+
- Multiple examples demonstrating different scenarios
|
|
55
|
+
|
|
56
|
+
5. **`playground/public/examples.json`**
|
|
57
|
+
- Added new showcase to playground menu
|
|
58
|
+
|
|
59
|
+
## Test Results
|
|
60
|
+
|
|
61
|
+
✅ **All 22 tests passing** (19 existing + 3 new)
|
|
62
|
+
```
|
|
63
|
+
✓ background-repeat-space-round.spec.ts (3 tests)
|
|
64
|
+
✓ background-repeat.spec.ts (11 tests - longhand property)
|
|
65
|
+
✓ All other existing tests still passing
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Visual Examples
|
|
69
|
+
|
|
70
|
+
The new showcase HTML file demonstrates:
|
|
71
|
+
- **Space mode** with 60px, 40px, and 80px tiles
|
|
72
|
+
- **Round mode** with 70px, 45px, and 90px tiles
|
|
73
|
+
- Side-by-side comparison of all three modes
|
|
74
|
+
- Gradient patterns with space and round
|
|
75
|
+
- Detailed comparison table
|
|
76
|
+
|
|
77
|
+
## Usage Examples
|
|
78
|
+
|
|
79
|
+
### Space Mode
|
|
80
|
+
```html
|
|
81
|
+
<div style="
|
|
82
|
+
background-image: url(pattern.png);
|
|
83
|
+
background-size: 60px 60px;
|
|
84
|
+
background-repeat: space;
|
|
85
|
+
">
|
|
86
|
+
Evenly spaced tiles
|
|
87
|
+
</div>
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Round Mode
|
|
91
|
+
```html
|
|
92
|
+
<div style="
|
|
93
|
+
background-image: url(pattern.png);
|
|
94
|
+
background-size: 70px 70px;
|
|
95
|
+
background-repeat: round;
|
|
96
|
+
">
|
|
97
|
+
Scaled tiles, perfect fit
|
|
98
|
+
</div>
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### With Gradients
|
|
102
|
+
```css
|
|
103
|
+
.pattern {
|
|
104
|
+
background-image: linear-gradient(45deg, #3498db 25%, #2ecc71 25%);
|
|
105
|
+
background-size: 40px 40px;
|
|
106
|
+
background-repeat: space; /* or round */
|
|
107
|
+
}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Technical Details
|
|
111
|
+
|
|
112
|
+
### Space Mode Behavior
|
|
113
|
+
- Preserves original tile dimensions
|
|
114
|
+
- Adds spacing between tiles to fill container
|
|
115
|
+
- If only one tile fits, centers it with no repetition
|
|
116
|
+
- Spacing is calculated to distribute tiles evenly
|
|
117
|
+
|
|
118
|
+
### Round Mode Behavior
|
|
119
|
+
- Scales tiles uniformly in both directions
|
|
120
|
+
- Rounds tile count to nearest integer
|
|
121
|
+
- No fractional tiles or gaps
|
|
122
|
+
- Perfect edge-to-edge coverage
|
|
123
|
+
|
|
124
|
+
## Compatibility Matrix
|
|
125
|
+
|
|
126
|
+
| Mode | Tile Size | Edge Behavior | Scaling | Best Use Case |
|
|
127
|
+
|------|-----------|---------------|---------|---------------|
|
|
128
|
+
| `repeat` | Original | May clip | None | Seamless patterns |
|
|
129
|
+
| `repeat-x` | Original | Horizontal clip | None | Horizontal bands |
|
|
130
|
+
| `repeat-y` | Original | Vertical clip | None | Vertical strips |
|
|
131
|
+
| `no-repeat` | Original | No clip | None | Single positioned image |
|
|
132
|
+
| **`space`** | **Original** | **No clip** | **None** | **Distinct elements with spacing** |
|
|
133
|
+
| **`round`** | **Scaled** | **Perfect fit** | **Yes** | **Flexible tile patterns** |
|
|
134
|
+
|
|
135
|
+
## Performance Considerations
|
|
136
|
+
|
|
137
|
+
- Both modes calculate tiles once per background layer
|
|
138
|
+
- Space mode: O(n) where n = number of tiles that fit
|
|
139
|
+
- Round mode: O(n) where n = rounded tile count
|
|
140
|
+
- No significant performance impact vs. standard repeat modes
|
|
141
|
+
|
|
142
|
+
## Browser Compatibility Notes
|
|
143
|
+
|
|
144
|
+
These implementations follow the CSS3 Background specification:
|
|
145
|
+
- `space`: Tiles with spacing (CSS3 standard)
|
|
146
|
+
- `round`: Scaled tiles (CSS3 standard)
|
|
147
|
+
- Behavior matches modern browser implementations
|
|
148
|
+
|
|
149
|
+
## Demo Available
|
|
150
|
+
|
|
151
|
+
Access the playground at `http://localhost:5177` and select:
|
|
152
|
+
- **"Background Repeat: Space & Round"** from the examples dropdown
|
|
153
|
+
|
|
154
|
+
## Summary
|
|
155
|
+
|
|
156
|
+
The implementation is **complete and production-ready**:
|
|
157
|
+
- ✅ Full algorithmic implementation
|
|
158
|
+
- ✅ Comprehensive testing
|
|
159
|
+
- ✅ Visual showcase and documentation
|
|
160
|
+
- ✅ No warnings or deprecation notices
|
|
161
|
+
- ✅ Spec-compliant behavior
|
|
162
|
+
- ✅ Works with images and gradients
|
|
163
|
+
|
|
164
|
+
Both `space` and `round` modes are now first-class citizens in the pagyra-js background-repeat implementation!
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
# CSS Properties Support for Pagyra-JS PDF Output
|
|
2
|
+
|
|
3
|
+
This document lists the CSS properties supported by Pagyra-JS for static PDF generation.
|
|
4
|
+
|
|
5
|
+
## 1. LAYOUT & BOX MODEL
|
|
6
|
+
|
|
7
|
+
| Property | Description | Is possible on PDF? | Is implemented? |
|
|
8
|
+
|----------|-------------|----------------------|----------------|
|
|
9
|
+
aspect-ratio | Sets preferred width/height ratio. | ✅ Yes | ❌ No
|
|
10
|
+
block-size | Logical height (block axis). | ✅ Yes | ❌ No
|
|
11
|
+
box-sizing | Calculates size (content-box vs border-box). | ✅ Yes | ❌ No
|
|
12
|
+
display | Defines rendering box type (block, inline, flex, etc.). | ✅ Yes | ✅ Yes
|
|
13
|
+
float | Moves element to left/right of flow. | ✅ Yes | ✅ Yes
|
|
14
|
+
clear | Specifies side where floating elements are not allowed. | ✅ Yes | ❌ No
|
|
15
|
+
height | Sets height of the element. | ✅ Yes | ✅ Yes
|
|
16
|
+
inline-size | Logical width (inline axis). | ✅ Yes | ❌ No
|
|
17
|
+
margin | Shorthand for outer spacing. | ✅ Yes | ✅ Yes
|
|
18
|
+
margin-block | Shorthand for logical vertical margins. | ✅ Yes | ❌ No
|
|
19
|
+
margin-inline | Shorthand for logical horizontal margins. | ✅ Yes | ❌ No
|
|
20
|
+
margin-top / right / bottom / left | Individual outer spacing. | ✅ Yes | ✅ Yes
|
|
21
|
+
max-height | Sets maximum height. | ✅ Yes | ✅ Yes
|
|
22
|
+
max-width | Sets maximum width. | ✅ Yes | ✅ Yes
|
|
23
|
+
min-height | Sets minimum height. | ✅ Yes | ✅ Yes
|
|
24
|
+
min-width | Sets minimum width. | ✅ Yes | ✅ Yes
|
|
25
|
+
padding | Shorthand for inner spacing. | ✅ Yes | ✅ Yes
|
|
26
|
+
padding-block | Shorthand for logical vertical padding. | ✅ Yes | ❌ No
|
|
27
|
+
padding-inline | Shorthand for logical horizontal padding. | ✅ Yes | ❌ No
|
|
28
|
+
padding-top / right / bottom / left | Individual inner spacing. | ✅ Yes | ✅ Yes
|
|
29
|
+
vertical-align | Vertical alignment of inline/table-cell boxes. | ✅ Yes | ❌ No
|
|
30
|
+
visibility | Hides element but reserves space. | ✅ Yes | ❌ No
|
|
31
|
+
width | Sets width of the element. | ✅ Yes | ✅ Yes
|
|
32
|
+
|
|
33
|
+
## 2. FLEXBOX & GRID
|
|
34
|
+
|
|
35
|
+
| Property | Description | Is possible on PDF? | Is implemented? |
|
|
36
|
+
|----------|-------------|----------------------|----------------|
|
|
37
|
+
align-content | Aligns rows/grid tracks (cross-axis). | ✅ Yes | ✅ Yes
|
|
38
|
+
align-items | Aligns items inside container (cross-axis). | ✅ Yes | ✅ Yes
|
|
39
|
+
align-self | Aligns individual item (overrides align-items). | ✅ Yes | ✅ Yes
|
|
40
|
+
column-gap | Space between columns. | ✅ Yes | ✅ Yes
|
|
41
|
+
flex | Shorthand for grow, shrink, and basis. | ✅ Yes | ❌ No
|
|
42
|
+
flex-basis | Initial size of flex item. | ✅ Yes | ❌ No
|
|
43
|
+
flex-direction | Direction of flex items (row/column). | ✅ Yes | ✅ Yes
|
|
44
|
+
flex-flow | Shorthand for flex-direction and flex-wrap. | ✅ Yes | ❌ No
|
|
45
|
+
flex-grow | Factor for item to grow. | ✅ Yes | ❌ No
|
|
46
|
+
flex-shrink | Factor for item to shrink. | ✅ Yes | ❌ No
|
|
47
|
+
flex-wrap | Whether items wrap to next line. | ✅ Yes | ✅ Yes
|
|
48
|
+
gap | Shorthand for row and column gaps. | ✅ Yes | ✅ Yes
|
|
49
|
+
grid | Shorthand for all explicit/implicit grid properties. | ✅ Yes | ❌ No
|
|
50
|
+
grid-area | Assigns item to named area or start/end lines. | ✅ Yes | ❌ No
|
|
51
|
+
grid-auto-columns | Default size of implicit columns. | ✅ Yes | ❌ No
|
|
52
|
+
grid-auto-flow | Algorithm for auto-placing items. | ✅ Yes | ✅ Yes
|
|
53
|
+
grid-auto-rows | Default size of implicit rows. | ✅ Yes | ❌ No
|
|
54
|
+
grid-column | Shorthand for column start/end. | ✅ Yes | ❌ No
|
|
55
|
+
grid-row | Shorthand for row start/end. | ✅ Yes | ❌ No
|
|
56
|
+
grid-template | Shorthand for rows, columns, and areas. | ✅ Yes | ❌ No
|
|
57
|
+
grid-template-areas | Defines named grid areas. | ✅ Yes | ❌ No
|
|
58
|
+
grid-template-columns | Defines explicit column sizes. | ✅ Yes | ✅ Yes
|
|
59
|
+
grid-template-rows | Defines explicit row sizes. | ✅ Yes | ✅ Yes
|
|
60
|
+
justify-content | Aligns items along main axis. | ✅ Yes | ✅ Yes
|
|
61
|
+
justify-items | Aligns items inside their grid cells (inline axis). | ✅ Yes | ❌ No
|
|
62
|
+
justify-self | Aligns individual item inside its cell. | ✅ Yes | ❌ No
|
|
63
|
+
order | Controls visual order of items. | ✅ Yes | ❌ No
|
|
64
|
+
place-content | Shorthand for align-content and justify-content. | ✅ Yes | ❌ No
|
|
65
|
+
place-items | Shorthand for align-items and justify-items. | ✅ Yes | ❌ No
|
|
66
|
+
place-self | Shorthand for align-self and justify-self. | ✅ Yes | ❌ No
|
|
67
|
+
row-gap | Space between rows. | ✅ Yes | ✅ Yes
|
|
68
|
+
|
|
69
|
+
## 3. TYPOGRAPHY & TEXT
|
|
70
|
+
|
|
71
|
+
| Property | Description | Is possible on PDF? | Is implemented? |
|
|
72
|
+
|----------|-------------|----------------------|----------------|
|
|
73
|
+
color | Foreground text color. | ✅ Yes | ✅ Yes
|
|
74
|
+
direction | Writing direction (LTR / RTL). | ✅ Yes | ❌ No
|
|
75
|
+
font | Shorthand for font style, weight, size, family. | ✅ Yes | ❌ No
|
|
76
|
+
font-family | Specifies typeface (Arial, Times, etc.). | ✅ Yes | ✅ Yes
|
|
77
|
+
font-feature-settings | Advanced OpenType features control. | ✅ Yes | ❌ No
|
|
78
|
+
font-kerning | Controls kerning information usage. | ✅ Yes | ❌ No
|
|
79
|
+
font-optical-sizing | Toggles optical sizing for variable fonts. | ✅ Yes | ❌ No
|
|
80
|
+
font-size | Size of the font (px, rem, pt). | ✅ Yes | ✅ Yes
|
|
81
|
+
font-size-adjust | Preserves aspect ratio (x-height) of font. | ✅ Yes | ❌ No
|
|
82
|
+
font-stretch | Selects normal, condensed, or expanded face. | ✅ Yes | ❌ No
|
|
83
|
+
font-style | Font style (normal, italic, oblique). | ✅ Yes | ✅ Yes
|
|
84
|
+
font-synthesis | Controls synthesis of missing font weights/styles. | ✅ Yes | ❌ No
|
|
85
|
+
font-variant | Controls small-caps and other variants. | ✅ Yes | ✅ Yes
|
|
86
|
+
font-weight | Thickness of characters (bold, 100-900). | ✅ Yes | ✅ Yes
|
|
87
|
+
hyphens | Controls hyphenation of words at line breaks. | ✅ Yes | ❌ No
|
|
88
|
+
letter-spacing | Spacing between characters (tracking). | ✅ Yes | ✅ Yes
|
|
89
|
+
line-break | Strictness of line-breaking rules. | ✅ Yes | ❌ No
|
|
90
|
+
line-height | Height of a line box (leading). | ✅ Yes | ✅ Yes
|
|
91
|
+
overflow-wrap | Specifies if browser can break lines within words. | ✅ Yes | ✅ Yes
|
|
92
|
+
quotes | Defines quotation marks for generated content. | ✅ Yes | ❌ No
|
|
93
|
+
tab-size | Width of tab character. | ✅ Yes | ❌ No
|
|
94
|
+
text-align | Horizontal alignment (left, center, justify). | ✅ Yes | ✅ Yes
|
|
95
|
+
text-align-last | Alignment of the last line of a block. | ✅ Yes | ❌ No
|
|
96
|
+
text-decoration | Shorthand for underline, overline, line-through. | ✅ Yes | ✅ Yes
|
|
97
|
+
text-decoration-color | Color of text decoration. | ✅ Yes | ✅ Yes
|
|
98
|
+
text-decoration-line | Type of decoration (underline, etc.). | ✅ Yes | ✅ Yes
|
|
99
|
+
text-decoration-style | Style of decoration (solid, wavy, dotted). | ✅ Yes | ✅ Yes
|
|
100
|
+
text-indent | Indentation of the first line of text. | ✅ Yes | ✅ Yes
|
|
101
|
+
text-justify | Justification method for text. | ✅ Yes | ❌ No
|
|
102
|
+
text-orientation | Orientation of text characters in a line. | ✅ Yes | ❌ No
|
|
103
|
+
text-overflow | How to signal clipped content (ellipsis). | ✅ Yes | ❌ No
|
|
104
|
+
text-shadow | Adds shadow to text. | ✅ Yes | ✅ Yes
|
|
105
|
+
text-transform | Controls capitalization (uppercase, lowercase). | ✅ Yes | ✅ Yes
|
|
106
|
+
white-space | Handling of white space and line breaks. | ✅ Yes | ❌ No
|
|
107
|
+
word-break | Rules for breaking lines within words. | ✅ Yes | ❌ No
|
|
108
|
+
word-spacing | Spacing between words. | ✅ Yes | ❌ No
|
|
109
|
+
writing-mode | Horizontal or vertical layout of text. | ✅ Yes | ❌ No
|
|
110
|
+
|
|
111
|
+
## 4. BACKGROUNDS & BORDERS
|
|
112
|
+
|
|
113
|
+
| Property | Description | Is possible on PDF? | Is implemented? |
|
|
114
|
+
|----------|-------------|----------------------|----------------|
|
|
115
|
+
background | Shorthand for all background properties. | ✅ Yes | ✅ Yes
|
|
116
|
+
background-attachment | Whether background scrolls or is fixed. | ✅ Yes (Fixed works as static) | ❌ No
|
|
117
|
+
background-blend-mode | Blending mode of background layers. | ✅ Yes | ❌ No
|
|
118
|
+
background-clip | Painting area of the background (text clip fills glyphs). | ✅ Yes | ✅ Yes (text clipping for gradients)
|
|
119
|
+
background-color | Background color of element. | ✅ Yes | ✅ Yes
|
|
120
|
+
background-image | Background image(s). | ✅ Yes | ✅ Yes
|
|
121
|
+
background-origin | Positioning area of background images. | ✅ Yes | ✅ Yes
|
|
122
|
+
background-position | Initial position of background image. | ✅ Yes | ✅ Yes
|
|
123
|
+
background-repeat | How background image is repeated. | ✅ Yes | ✅ Yes (repeat / repeat-x / repeat-y; space/round treated as repeat)
|
|
124
|
+
background-size | Size of background image. | ✅ Yes | ✅ Yes
|
|
125
|
+
border | Shorthand for width, style, and color. | ✅ Yes | ✅ Yes
|
|
126
|
+
border-collapse | Whether table borders are separated or collapsed. | ✅ Yes | ✅ Yes
|
|
127
|
+
border-color | Color of the border. | ✅ Yes | ✅ Yes
|
|
128
|
+
border-image | Shorthand for using image as border. | ✅ Yes | ❌ No
|
|
129
|
+
border-radius | Rounds the corners of an element's outer border edge. | ✅ Yes | ✅ Yes
|
|
130
|
+
border-spacing | Distance between borders of adjacent cells. | ✅ Yes | ❌ No
|
|
131
|
+
border-style | Style of border (solid, dashed, dotted). | ✅ Yes | ✅ Yes
|
|
132
|
+
border-width | Width of border. | ✅ Yes | ✅ Yes
|
|
133
|
+
box-shadow | Adds shadow effects around an element's frame. | ✅ Yes | ✅ Yes
|
|
134
|
+
object-fit | How content (img/video) fits its container. | ✅ Yes | ✅ Yes
|
|
135
|
+
object-position | Alignment of content within container. | ✅ Yes | ❌ No
|
|
136
|
+
opacity | Transparency level (0.0 to 1.0). | ✅ Yes | ✅ Yes
|
|
137
|
+
|
|
138
|
+
## 5. PRINT & FRAGMENTATION
|
|
139
|
+
|
|
140
|
+
| Property | Description | Is possible on PDF? | Is implemented? |
|
|
141
|
+
|----------|-------------|----------------------|----------------|
|
|
142
|
+
box-decoration-break | How box decorations render at breaks. | 📄 Print-Specific | ❌ No
|
|
143
|
+
break-after | Force/forbid break after element. | 📄 Print-Specific | ❌ No
|
|
144
|
+
break-before | Force/forbid break before element. | 📄 Print-Specific | ❌ No
|
|
145
|
+
break-inside | Force/forbid break inside element. | 📄 Print-Specific | ❌ No
|
|
146
|
+
column-count | Splits text into specific number of columns. | ✅ Yes | ❌ No
|
|
147
|
+
column-fill | How content fills columns (balance/auto). | ✅ Yes | ❌ No
|
|
148
|
+
column-span | Element spans across all columns. | ✅ Yes | ❌ No
|
|
149
|
+
column-rule | Line drawn between columns. | ✅ Yes | ❌ No
|
|
150
|
+
column-width | Ideal width of columns. | ✅ Yes | ❌ No
|
|
151
|
+
orphans | Min lines left at bottom of page. | 📄 Print-Specific | ❌ No
|
|
152
|
+
page | Named page type for @page rules. | 📄 Print-Specific | ❌ No
|
|
153
|
+
page-break-after | Legacy (use break-after). | 📄 Print-Specific | ❌ No
|
|
154
|
+
page-break-before | Legacy (use break-before). | 📄 Print-Specific | ❌ No
|
|
155
|
+
page-break-inside | Legacy (use break-inside). | 📄 Print-Specific | ❌ No
|
|
156
|
+
widows | Min lines at top of new page. | 📄 Print-Specific | ❌ No
|
|
157
|
+
|
|
158
|
+
## 6. POSITIONING & TRANSFORMS
|
|
159
|
+
|
|
160
|
+
| Property | Description | Is possible on PDF? | Is implemented? |
|
|
161
|
+
|----------|-------------|----------------------|----------------|
|
|
162
|
+
bottom | Distance from bottom edge. | ✅ Yes | ✅ Yes
|
|
163
|
+
inset | Shorthand for top/right/bottom/left. | ✅ Yes | ❌ No
|
|
164
|
+
left | Distance from left edge. | ✅ Yes | ✅ Yes
|
|
165
|
+
position | Positioning method (static, relative, absolute, fixed). | ✅ Yes | ✅ Yes
|
|
166
|
+
right | Distance from right edge. | ✅ Yes | ✅ Yes
|
|
167
|
+
top | Distance from top edge. | ✅ Yes | ✅ Yes
|
|
168
|
+
z-index | Stack order of positioned elements. | ✅ Yes | ✅ Yes
|
|
169
|
+
backface-visibility | Whether back face is visible when turned. | ✅ Yes (Snapshot) | ❌ No
|
|
170
|
+
perspective | Distance from viewer to z=0 plane. | ✅ Yes | ❌ No
|
|
171
|
+
perspective-origin | Position of the viewer. | ✅ Yes | ❌ No
|
|
172
|
+
rotate | Individual rotation transform. | ✅ Yes | ❌ No
|
|
173
|
+
scale | Individual scale transform. | ✅ Yes | ❌ No
|
|
174
|
+
transform | 2D/3D transformations (matrix, skew, etc.). | ✅ Yes | ✅ Yes
|
|
175
|
+
transform-box | Layout box that transform relates to. | ✅ Yes | ❌ No
|
|
176
|
+
transform-origin | Origin point for transformations. | ✅ Yes | ❌ No
|
|
177
|
+
transform-style | Whether children preserve 3D position. | ✅ Yes | ❌ No
|
|
178
|
+
translate | Individual translation transform. | ✅ Yes | ❌ No
|
|
179
|
+
|
|
180
|
+
## 7. ANIMATION & TRANSITION
|
|
181
|
+
|
|
182
|
+
| Property | Description | Is possible on PDF? | Is implemented? |
|
|
183
|
+
|----------|-------------|----------------------|----------------|
|
|
184
|
+
animation | Shorthand for animation properties. | ❌ No (Static) | ❌ No
|
|
185
|
+
animation-delay | Time before animation starts. | ❌ No | ❌ No
|
|
186
|
+
animation-direction | Forward, backward, or alternate. | ❌ No | ❌ No
|
|
187
|
+
animation-duration | How long animation takes. | ❌ No | ❌ No
|
|
188
|
+
animation-fill-mode | Styles applied before/after execution. | ❌ No | ❌ No
|
|
189
|
+
animation-iteration-count | Number of times to play. | ❌ No | ❌ No
|
|
190
|
+
animation-name | Name of @keyframes. | ❌ No | ❌ No
|
|
191
|
+
animation-play-state | Running or paused. | ❌ No | ❌ No
|
|
192
|
+
animation-timing-function | Speed curve of animation. | ❌ No | ❌ No
|
|
193
|
+
offset | Motion path shorthand. | ❌ No (Static) | ❌ No
|
|
194
|
+
transition | Shorthand for transitions. | ❌ No | ❌ No
|
|
195
|
+
transition-delay | Delay before transition. | ❌ No | ❌ No
|
|
196
|
+
transition-duration | Time transition takes. | ❌ No | ❌ No
|
|
197
|
+
transition-property | Properties to transition. | ❌ No | ❌ No
|
|
198
|
+
transition-timing-function | Speed curve of transition. | ❌ No | ❌ No
|
|
199
|
+
will-change | Hints to browser for optimization. | ❌ No (Irrelevant) | ❌ No
|
|
200
|
+
|
|
201
|
+
## 8. SVG & MASKING
|
|
202
|
+
|
|
203
|
+
| Property | Description | Is possible on PDF? | Is implemented? |
|
|
204
|
+
|----------|-------------|----------------------|----------------|
|
|
205
|
+
clip-path | Clipping region (shape/SVG). | ✅ Yes | ❌ No
|
|
206
|
+
clip-rule | How to determine inside of shape. | ✅ Yes | ❌ No
|
|
207
|
+
fill | Color of SVG shape. | ✅ Yes | ❌ No
|
|
208
|
+
fill-opacity | Opacity of fill. | ✅ Yes | ❌ No
|
|
209
|
+
fill-rule | Algorithm for filling shapes. | ✅ Yes | ❌ No
|
|
210
|
+
filter | Graphical effects (blur, brightness). | ✅ Yes | ❌ No
|
|
211
|
+
mask | Shorthand for mask properties. | ✅ Yes | ❌ No
|
|
212
|
+
mask-clip | Area affected by mask. | ✅ Yes | ❌ No
|
|
213
|
+
mask-image | Image used as mask. | ✅ Yes | ❌ No
|
|
214
|
+
mask-mode | Alpha or luminance masking. | ✅ Yes | ❌ No
|
|
215
|
+
shape-outside | Shape for content to wrap around. | ✅ Yes | ❌ No
|
|
216
|
+
stop-color | Color of gradient stop. | ✅ Yes | ❌ No
|
|
217
|
+
stroke | Color of SVG stroke. | ✅ Yes | ❌ No
|
|
218
|
+
stroke-dasharray | Pattern of dashes/gaps. | ✅ Yes | ❌ No
|
|
219
|
+
stroke-linecap | Shape of endpoints of line. | ✅ Yes | ❌ No
|
|
220
|
+
stroke-width | Width of stroke. | ✅ Yes | ❌ No
|
|
221
|
+
|
|
222
|
+
## 9. UI, INTERACTION & SCROLL
|
|
223
|
+
|
|
224
|
+
| Property | Description | Is possible on PDF? | Is implemented? |
|
|
225
|
+
|----------|-------------|----------------------|----------------|
|
|
226
|
+
accent-color | Color for UI controls (checkboxes). | ✅ Yes (Visual) | ❌ No
|
|
227
|
+
appearance | Native OS UI styling. | ✅ Yes (Static) | ❌ No
|
|
228
|
+
caret-color | Color of text insertion cursor. | ❌ No | ❌ No
|
|
229
|
+
cursor | Mouse cursor icon. | ❌ No | ❌ No
|
|
230
|
+
outline | Drawn line outside border (doesn't take space). | ✅ Yes | ❌ No
|
|
231
|
+
outline-offset | Space between border and outline. | ✅ Yes | ❌ No
|
|
232
|
+
overflow | Handling of content spill (scroll/hidden). | ✅ Yes | ❌ No
|
|
233
|
+
overscroll-behavior | Scroll chaining behavior. | ❌ No | ❌ No
|
|
234
|
+
pointer-events | Reaction to pointer events. | ❌ No | ❌ No
|
|
235
|
+
resize | User resizability. | ❌ No | ❌ No
|
|
236
|
+
scroll-behavior | Smooth scrolling. | ❌ No | ❌ No
|
|
237
|
+
scroll-margin | Scroll snap margin. | ❌ No | ❌ No
|
|
238
|
+
scroll-padding | Scroll snap padding. | ❌ No | ❌ No
|
|
239
|
+
scroll-snap-align | Snap alignment. | ❌ No | ❌ No
|
|
240
|
+
scroll-snap-type | Snap physics. | ❌ No | ❌ No
|
|
241
|
+
scrollbar-color | Color of scrollbars. | ✅ Yes (If visible) | ❌ No
|
|
242
|
+
scrollbar-width | Width of scrollbars. | ✅ Yes (If visible) | ❌ No
|
|
243
|
+
touch-action | Touch gesture handling. | ❌ No | ❌ No
|
|
244
|
+
user-select | Text selection control. | ❌ No | ❌ No
|
|
245
|
+
|
|
246
|
+
## 10. LOGIC & GLOBAL
|
|
247
|
+
|
|
248
|
+
| Property | Description | Is possible on PDF? | Is implemented? |
|
|
249
|
+
|----------|-------------|----------------------|----------------|
|
|
250
|
+
all | Resets all properties. | ✅ Yes | ❌ No
|
|
251
|
+
contain | Performance isolation. | ✅ Yes | ❌ No
|
|
252
|
+
content | Generated content (::before/::after). | ✅ Yes | ❌ No
|
|
253
|
+
counter-increment | Increment CSS counter. | ✅ Yes | ❌ No
|
|
254
|
+
counter-reset | Reset CSS counter. | ✅ Yes | ❌ No
|
|
255
|
+
mix-blend-mode | How element blends with parent. | ✅ Yes | ❌ No
|
|
256
|
+
isolation | New stacking context for blending. | ✅ Yes | ❌ No
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
# Source Modules Table
|
|
2
|
+
|
|
3
|
+
This table lists all modules in the src folder with a brief summary of each module's purpose.
|
|
4
|
+
|
|
5
|
+
| Module Path | Summary |
|
|
6
|
+
|-------------|---------|
|
|
7
|
+
| core.ts | Core functionality and main entry point for the library, exports key types and classes for layout, styling, geometry, and PDF rendering |
|
|
8
|
+
| html-to-pdf.ts | Module for converting HTML content to PDF format, including parsing HTML/CSS, handling resources, and generating PDF output |
|
|
9
|
+
| index.ts | Main entry point/export file for the library, exports core functionality and provides a demo layout function |
|
|
10
|
+
| assets/fonts/ | Directory containing font assets |
|
|
11
|
+
| assets/images/ | Directory containing image assets |
|
|
12
|
+
| compression/adler32.ts | Calculates Adler-32 checksum as required by zlib format, used in WOFF 1.0 for data integrity verification |
|
|
13
|
+
| compression/deflate.ts | DEFLATE compression/decompression module for WOFF 1.0, implementing zlib format with header and Adler-32 checksum |
|
|
14
|
+
| compression/index.ts | Entry point for compression module exports |
|
|
15
|
+
| compression/types.ts | Type definitions for compression functionality |
|
|
16
|
+
| compression/utils.ts | Utility functions for compression operations |
|
|
17
|
+
| css/apply-declarations.ts | Applies CSS declarations to style accumulator, handles property parsing and shorthand expansion |
|
|
18
|
+
| css/background-types.ts | Type definitions for CSS background properties |
|
|
19
|
+
| css/browser-defaults.ts | Browser-like User Agent (UA) defaults for PDF conversion, acts as a façade re-exporting focused UA defaults modules |
|
|
20
|
+
| css/compute-style.ts | Computes styles for DOM elements by applying CSS rules, inline styles, and inheritance logic |
|
|
21
|
+
| css/css-unit-resolver.ts | Resolves CSS units to absolute values using font size context |
|
|
22
|
+
| css/enums.ts | Enumerations for CSS properties like display, position, float, overflow, white-space, align-items, etc. |
|
|
23
|
+
| css/font-face-parser.ts | Parser for CSS @font-face rules |
|
|
24
|
+
| css/font-weight.ts | Font weight handling and utilities |
|
|
25
|
+
| css/inline-style-parser.ts | Parser for inline CSS styles |
|
|
26
|
+
| css/layout-property-resolver.ts | Resolves CSS layout properties like grid tracks to absolute values |
|
|
27
|
+
| css/length.ts | CSS length unit handling and conversion utilities |
|
|
28
|
+
| css/line-height.ts | Line height calculation and handling utilities |
|
|
29
|
+
| css/named-colors.ts | Definitions for named CSS colors |
|
|
30
|
+
| css/style-inheritance.ts | CSS style inheritance logic |
|
|
31
|
+
| css/style.ts | Complete CSS style properties and ComputedStyle class implementation |
|
|
32
|
+
| css/unit-conversion.ts | Unit conversion utilities for CSS |
|
|
33
|
+
| css/utils.ts | General CSS utility functions |
|
|
34
|
+
| css/viewport.ts | Viewport-related CSS functionality |
|
|
35
|
+
| css/cascade/ | Directory for CSS cascade implementation |
|
|
36
|
+
| css/declarations/ | Directory for CSS declaration handling |
|
|
37
|
+
| css/parsers/background-parser-extended.ts | Extended parser for CSS background properties |
|
|
38
|
+
| css/parsers/background-parser.ts | Parser for CSS background properties |
|
|
39
|
+
| css/parsers/border-block-parser.ts | Parser for CSS border-block properties |
|
|
40
|
+
| css/parsers/border-inline-parser.ts | Parser for CSS border-inline properties |
|
|
41
|
+
| css/parsers/border-parser-extended.ts | Extended parser for CSS border properties |
|
|
42
|
+
| css/parsers/border-parser.ts | Parser for CSS border properties |
|
|
43
|
+
| css/parsers/box-shadow-parser.ts | Parser for CSS box-shadow properties |
|
|
44
|
+
| css/parsers/color-parser.ts | Parser for CSS color values |
|
|
45
|
+
| css/parsers/dimension-parser.ts | Parser for CSS dimension values |
|
|
46
|
+
| css/parsers/display-flex-parser.ts | Parser for CSS flex display properties |
|
|
47
|
+
| css/parsers/flex-parser.ts | Parser for CSS flex properties |
|
|
48
|
+
| css/parsers/font-parser.ts | Parser for CSS font properties |
|
|
49
|
+
| css/parsers/gradient-parser.ts | Parser for CSS gradient values |
|
|
50
|
+
| css/parsers/grid-parser-extended.ts | Extended parser for CSS grid properties |
|
|
51
|
+
| css/parsers/grid-parser.ts | Parser for CSS grid properties |
|
|
52
|
+
| css/parsers/length-parser.ts | Parser for CSS length values |
|
|
53
|
+
| css/parsers/list-style-parser.ts | Parser for CSS list-style properties |
|
|
54
|
+
| css/parsers/margin-block-parser.ts | Parser for CSS margin-block properties |
|
|
55
|
+
| css/parsers/margin-inline-parser.ts | Parser for CSS margin-inline properties |
|
|
56
|
+
| css/parsers/margin-parser.ts | Parser for CSS margin properties |
|
|
57
|
+
| css/parsers/opacity-parser.ts | Parser for CSS opacity values |
|
|
58
|
+
| css/parsers/overflow-wrap-parser.ts | Parser for CSS overflow-wrap properties |
|
|
59
|
+
| css/parsers/padding-block-parser.ts | Parser for CSS padding-block properties |
|
|
60
|
+
| css/parsers/padding-inline-parser.ts | Parser for CSS padding-inline properties |
|
|
61
|
+
| css/parsers/padding-parser.ts | Parser for CSS padding properties |
|
|
62
|
+
| css/parsers/position-parser.ts | Parser for CSS position properties |
|
|
63
|
+
| css/parsers/register-parsers.ts | Module for registering CSS parsers |
|
|
64
|
+
| css/parsers/registry.ts | Registry for CSS property parsers |
|
|
65
|
+
| css/parsers/text-parser-extended.ts | Extended parser for CSS text properties |
|
|
66
|
+
| css/parsers/text-parser.ts | Parser for CSS text properties |
|
|
67
|
+
| css/parsers/text-shadow-parser.ts | Parser for CSS text-shadow properties |
|
|
68
|
+
| css/properties/box-model.ts | CSS box model property handling |
|
|
69
|
+
| css/properties/flexbox.ts | CSS flexbox property handling |
|
|
70
|
+
| css/properties/grid.ts | CSS grid property handling |
|
|
71
|
+
| css/properties/layout.ts | CSS layout property handling |
|
|
72
|
+
| css/properties/misc.ts | Miscellaneous CSS property handling |
|
|
73
|
+
| css/properties/typography.ts | CSS typography property handling |
|
|
74
|
+
| css/properties/visual.ts | CSS visual property handling |
|
|
75
|
+
| css/selectors/matcher.ts | CSS selector matching functionality |
|
|
76
|
+
| css/selectors/parser.ts | CSS selector parser |
|
|
77
|
+
| css/selectors/simple-key.ts | Simple key implementation for selectors |
|
|
78
|
+
| css/selectors/specificity.ts | CSS selector specificity calculation |
|
|
79
|
+
| css/selectors/types.ts | Type definitions for CSS selectors |
|
|
80
|
+
| css/shorthands/border-shorthand.ts | CSS border shorthand property handling |
|
|
81
|
+
| css/shorthands/box-shorthand.ts | CSS box shorthand property handling |
|
|
82
|
+
| css/ua-defaults/base-defaults.ts | Base user agent default styles |
|
|
83
|
+
| css/ua-defaults/browser-defaults.ts | Browser-specific default styles |
|
|
84
|
+
| css/ua-defaults/element-defaults.ts | Element-specific default styles |
|
|
85
|
+
| css/ua-defaults/types.ts | Type definitions for user agent defaults |
|
|
86
|
+
| debug/audit.ts | Audit functionality for line runs, including text reconstruction and font face switching analysis |
|
|
87
|
+
| debug/ids.ts | ID management for debugging purposes |
|
|
88
|
+
| debug/log.js | JavaScript logging functionality for debugging |
|
|
89
|
+
| debug/log.ts | TypeScript logging functionality for debugging (deprecated, forwards to src/logging/debug.ts) |
|
|
90
|
+
| debug/tree.ts | Tree structure debugging utilities |
|
|
91
|
+
| dom/node.ts | LayoutNode class representing DOM nodes with computed styles, box model, and tree structure |
|
|
92
|
+
| fonts/detector.ts | Font format detection utility that identifies font formats from binary data |
|
|
93
|
+
| fonts/font-registry-resolver.ts | Adapter implementing FontResolver using FontRegistry, allowing layout system to resolve fonts during render tree building |
|
|
94
|
+
| fonts/index.ts | Entry point for font module exports |
|
|
95
|
+
| fonts/orchestrator.ts | Font handling orchestration |
|
|
96
|
+
| fonts/types.ts | Type definitions for font functionality including font metrics, programs, and loading |
|
|
97
|
+
| fonts/embedders/ | Directory for font embedding functionality |
|
|
98
|
+
| fonts/engines/ttf-engine.ts | TTF font engine implementation |
|
|
99
|
+
| fonts/engines/woff-engine.ts | WOFF font engine implementation |
|
|
100
|
+
| fonts/engines/woff2-engine.ts | WOFF2 font engine implementation |
|
|
101
|
+
| fonts/extractors/metrics-extractor.ts | Font metrics extraction utilities |
|
|
102
|
+
| fonts/parsers/ | Directory for font parsing functionality |
|
|
103
|
+
| fonts/utils/ | Directory for font utility functions |
|
|
104
|
+
| geometry/box.ts | Box class for geometric representations and viewport/containing block interfaces |
|
|
105
|
+
| geometry/matrix.ts | Matrix operations for geometric transformations |
|
|
106
|
+
| html/dom-converter.ts | Converts HTML DOM nodes to layout nodes, applying computed styles and handling different element types |
|
|
107
|
+
| html/image-converter.ts | Converts HTML image elements to layout nodes with proper sizing and resource handling |
|
|
108
|
+
| html/css/ | Directory for HTML-CSS integration |
|
|
109
|
+
| html/parse/ | Directory for HTML parsing functionality |
|
|
110
|
+
| image/base-decoder.ts | Base class for image decoders with common functionality |
|
|
111
|
+
| image/image-service.ts | Image service following SOLID principles, handles loading and decoding of various image formats |
|
|
112
|
+
| image/jpeg-decoder.ts | JPEG decoder that extracts metadata and intrinsic dimensions from SOF0 marker |
|
|
113
|
+
| image/png-decoder.ts | PNG image decoder implementation |
|
|
114
|
+
| image/types.ts | Type definitions for image processing |
|
|
115
|
+
| image/webp-decoder.ts | WebP image decoding implementation |
|
|
116
|
+
| image/webp-huffman.ts | WebP Huffman decoding utilities |
|
|
117
|
+
| image/webp-riff-parser.ts | WebP RIFF format parser |
|
|
118
|
+
| image/webp-vp8l-decoder.ts | WebP VP8L decoding implementation |
|
|
119
|
+
| layout/text-run.ts | GlyphRun interface representing sequences of glyphs for rendering with precise font information |
|
|
120
|
+
| layout/context/ | Directory for layout context management |
|
|
121
|
+
| layout/inline/ | Directory for inline layout implementation |
|
|
122
|
+
| layout/pipeline/engine.ts | Layout engine that orchestrates the layout process using different strategies for different node types |
|
|
123
|
+
| layout/pipeline/ | Directory for layout pipeline processing |
|
|
124
|
+
| layout/strategies/ | Directory for layout strategy implementations |
|
|
125
|
+
| layout/table/ | Directory for table layout implementation |
|
|
126
|
+
| layout/tree/ | Directory for layout tree management |
|
|
127
|
+
| layout/utils/ | Directory for layout utility functions |
|
|
128
|
+
| logging/debug.ts | Debug logging functionality |
|
|
129
|
+
| orchestrator/ | Directory for processing orchestration |
|
|
130
|
+
| pdf/header-footer-layout.ts | PDF header and footer layout |
|
|
131
|
+
| pdf/header-footer-painter.ts | PDF header and footer painting |
|
|
132
|
+
| pdf/header-footer-tokens.ts | PDF header and footer token handling |
|
|
133
|
+
| pdf/header-footer.ts | PDF header and footer functionality |
|
|
134
|
+
| pdf/layout-tree-builder.ts | PDF layout tree construction |
|
|
135
|
+
| pdf/page-painter.ts | PDF page painting implementation |
|
|
136
|
+
| pdf/pagination.ts | PDF pagination functionality |
|
|
137
|
+
| pdf/render.ts | Main PDF rendering implementation that creates PDF documents from layout trees |
|
|
138
|
+
| pdf/transform-adapter.ts | PDF transformation adapter |
|
|
139
|
+
| pdf/types.ts | Type definitions for PDF functionality including render boxes, text runs, and graphics |
|
|
140
|
+
| pdf/font/ | Directory for PDF font handling |
|
|
141
|
+
| pdf/font-subset/ | Directory for PDF font subsetting |
|
|
142
|
+
| pdf/graphics/ | Directory for PDF graphics operations |
|
|
143
|
+
| pdf/primitives/ | Directory for PDF primitive operations |
|
|
144
|
+
| pdf/renderer/ | Directory for PDF rendering implementation |
|
|
145
|
+
| pdf/renderers/ | Directory for PDF renderer implementations |
|
|
146
|
+
| pdf/shading/ | Directory for PDF shading operations |
|
|
147
|
+
| pdf/stacking/ | Directory for PDF stacking context |
|
|
148
|
+
| pdf/svg/ | Directory for PDF-SVG integration |
|
|
149
|
+
| pdf/utils/ | Directory for PDF utility functions |
|
|
150
|
+
| render/offset.ts | Functions for offsetting render tree elements and applying page vertical margins |
|
|
151
|
+
| render/pdf/ | Directory for PDF rendering implementation |
|
|
152
|
+
| render/pipeline/ | Directory for render pipeline processing |
|
|
153
|
+
| render/tree/ | Directory for render tree management |
|
|
154
|
+
| style/inheritance/ | Directory for style inheritance implementation |
|
|
155
|
+
| style/shorthands/ | Directory for CSS shorthand handling |
|
|
156
|
+
| style/ua/ | Directory for user agent style handling |
|
|
157
|
+
| svg/index.ts | SVG module entry point, exports parser and type definitions |
|
|
158
|
+
| svg/parser-registry.ts | Registry for SVG element parsers |
|
|
159
|
+
| svg/parser.ts | SVG parsing implementation |
|
|
160
|
+
| svg/path-data.ts | SVG path data handling |
|
|
161
|
+
| svg/types.ts | Type definitions for SVG functionality |
|
|
162
|
+
| svg/path/ | Directory for SVG path operations |
|
|
163
|
+
| svg/transform/ | Directory for SVG transformation |
|
|
164
|
+
| text/line-breaker.ts | Text line breaking algorithm using Knuth-Plass algorithm for optimal line breaks |
|
|
165
|
+
| text/text-transform.ts | Text transformation functionality for applying CSS text-transform |
|
|
166
|
+
| text/text.ts | Core text processing functionality |
|
|
167
|
+
| transform/css-parser.ts | CSS transformation parser |
|
|
168
|
+
| types/fonts.js | Font type definitions in JavaScript |
|
|
169
|
+
| types/fonts.ts | Font type definitions in TypeScript |
|
|
170
|
+
| types/public.ts | Public API type definitions |
|
|
171
|
+
| units/page-utils.ts | Page unit utilities |
|
|
172
|
+
| units/units.ts | Unit conversion and handling utilities for CSS units |
|