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,126 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<title>Fonts Demo</title>
|
|
5
|
+
<style>
|
|
6
|
+
body {
|
|
7
|
+
font-family: serif;
|
|
8
|
+
max-width: 800px;
|
|
9
|
+
margin: 40px auto;
|
|
10
|
+
line-height: 1.6;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
@font-face {
|
|
14
|
+
font-family: 'DemoDejaVuSans';
|
|
15
|
+
src: url('../../../assets/fonts/ttf/dejavu/DejaVuSans.ttf') format('truetype');
|
|
16
|
+
font-weight: 400;
|
|
17
|
+
font-style: normal;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
@font-face {
|
|
21
|
+
font-family: 'DemoNotoSans';
|
|
22
|
+
src: url('../../../assets/fonts/ttf/notosans/NotoSans-Regular.ttf') format('truetype');
|
|
23
|
+
font-weight: 400;
|
|
24
|
+
font-style: normal;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
@font-face {
|
|
28
|
+
font-family: 'DemoRobotoRegular';
|
|
29
|
+
src: url('../../../assets/fonts/ttf/roboto/Roboto-Regular.ttf') format('truetype');
|
|
30
|
+
font-weight: 400;
|
|
31
|
+
font-style: normal;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
@font-face {
|
|
35
|
+
font-family: 'DemoRobotoBold';
|
|
36
|
+
src: url('../../../assets/fonts/ttf/roboto/Roboto-Bold.ttf') format('truetype');
|
|
37
|
+
font-weight: 700;
|
|
38
|
+
font-style: normal;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
@font-face {
|
|
42
|
+
font-family: 'DemoRobotoItalic';
|
|
43
|
+
src: url('../../../assets/fonts/ttf/roboto/Roboto-Italic.ttf') format('truetype');
|
|
44
|
+
font-weight: 400;
|
|
45
|
+
font-style: italic;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
@font-face {
|
|
49
|
+
font-family: 'DemoRobotoBoldItalic';
|
|
50
|
+
src: url('../../../assets/fonts/ttf/roboto/Roboto-BoldItalic.ttf') format('truetype');
|
|
51
|
+
font-weight: 700;
|
|
52
|
+
font-style: italic;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
@font-face {
|
|
56
|
+
font-family: 'DemoLato400Normal';
|
|
57
|
+
src: url('../../../assets/fonts/woff2/lato/lato-latin-400-normal.woff2') format('woff2');
|
|
58
|
+
font-weight: 400;
|
|
59
|
+
font-style: normal;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
@font-face {
|
|
63
|
+
font-family: 'DemoLato400Italic';
|
|
64
|
+
src: url('../../../assets/fonts/woff2/lato/lato-latin-400-italic.woff2') format('woff2');
|
|
65
|
+
font-weight: 400;
|
|
66
|
+
font-style: italic;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
@font-face {
|
|
70
|
+
font-family: 'DemoLato700Normal';
|
|
71
|
+
src: url('../../../assets/fonts/woff2/lato/lato-latin-700-normal.woff2') format('woff2');
|
|
72
|
+
font-weight: 700;
|
|
73
|
+
font-style: normal;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
@font-face {
|
|
77
|
+
font-family: 'DemoLato700Italic';
|
|
78
|
+
src: url('../../../assets/fonts/woff2/lato/lato-latin-700-italic.woff2') format('woff2');
|
|
79
|
+
font-weight: 700;
|
|
80
|
+
font-style: italic;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
@font-face {
|
|
84
|
+
font-family: 'DemoCaveatRegular';
|
|
85
|
+
src: url('../../../assets/fonts/woff2/caveat/Caveat-Regular.woff2') format('woff2');
|
|
86
|
+
font-weight: 400;
|
|
87
|
+
font-style: normal;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
@font-face {
|
|
91
|
+
font-family: 'DemoCaveatBold';
|
|
92
|
+
src: url('../../../assets/fonts/woff2/caveat/Caveat-Bold.woff2') format('woff2');
|
|
93
|
+
font-weight: 700;
|
|
94
|
+
font-style: normal;
|
|
95
|
+
}
|
|
96
|
+
</style>
|
|
97
|
+
</head>
|
|
98
|
+
<body>
|
|
99
|
+
<h1>Fonts Demo</h1>
|
|
100
|
+
<p>Simple spans each with one font from /assets/fonts. Pangram: "The quick brown fox jumps over the lazy dog. 123 ABC xyz"</p>
|
|
101
|
+
|
|
102
|
+
<span style="display: block; margin: 20px 0; font-size: 24px; font-family: 'DemoDejaVuSans', serif; font-weight: 400; font-style: normal;">DejaVuSans: The quick brown fox jumps over the lazy dog. 123 ABC xyz</span>
|
|
103
|
+
|
|
104
|
+
<span style="display: block; margin: 20px 0; font-size: 24px; font-family: 'DemoNotoSans', serif; font-weight: 400; font-style: normal;">NotoSans: The quick brown fox jumps over the lazy dog. 123 ABC xyz</span>
|
|
105
|
+
|
|
106
|
+
<span style="display: block; margin: 20px 0; font-size: 24px; font-family: 'DemoRobotoRegular', serif; font-weight: 400; font-style: normal;">Roboto Regular: The quick brown fox jumps over the lazy dog. 123 ABC xyz</span>
|
|
107
|
+
|
|
108
|
+
<span style="display: block; margin: 20px 0; font-size: 24px; font-family: 'DemoRobotoBold', serif; font-weight: 700; font-style: normal;">Roboto Bold: The quick brown fox jumps over the lazy dog. 123 ABC xyz</span>
|
|
109
|
+
|
|
110
|
+
<span style="display: block; margin: 20px 0; font-size: 24px; font-family: 'DemoRobotoItalic', serif; font-weight: 400; font-style: italic;">Roboto Italic: The quick brown fox jumps over the lazy dog. 123 ABC xyz</span>
|
|
111
|
+
|
|
112
|
+
<span style="display: block; margin: 20px 0; font-size: 24px; font-family: 'DemoRobotoBoldItalic', serif; font-weight: 700; font-style: italic;">Roboto Bold Italic: The quick brown fox jumps over the lazy dog. 123 ABC xyz</span>
|
|
113
|
+
|
|
114
|
+
<span style="display: block; margin: 20px 0; font-size: 24px; font-family: 'DemoLato400Normal', serif; font-weight: 400; font-style: normal;">Lato 400 Normal: The quick brown fox jumps over the lazy dog. 123 ABC xyz</span>
|
|
115
|
+
|
|
116
|
+
<span style="display: block; margin: 20px 0; font-size: 24px; font-family: 'DemoLato400Italic', serif; font-weight: 400; font-style: italic;">Lato 400 Italic: The quick brown fox jumps over the lazy dog. 123 ABC xyz</span>
|
|
117
|
+
|
|
118
|
+
<span style="display: block; margin: 20px 0; font-size: 24px; font-family: 'DemoLato700Normal', serif; font-weight: 700; font-style: normal;">Lato 700 Normal: The quick brown fox jumps over the lazy dog. 123 ABC xyz</span>
|
|
119
|
+
|
|
120
|
+
<span style="display: block; margin: 20px 0; font-size: 24px; font-family: 'DemoLato700Italic', serif; font-weight: 700; font-style: italic;">Lato 700 Italic: The quick brown fox jumps over the lazy dog. 123 ABC xyz</span>
|
|
121
|
+
|
|
122
|
+
<span style="display: block; margin: 20px 0; font-size: 24px; font-family: 'DemoCaveatRegular', serif; font-weight: 400; font-style: normal;">Caveat Regular: The quick brown fox jumps over the lazy dog. 123 ABC xyz</span>
|
|
123
|
+
|
|
124
|
+
<span style="display: block; margin: 20px 0; font-size: 24px; font-family: 'DemoCaveatBold', serif; font-weight: 700; font-style: normal;">Caveat Bold: The quick brown fox jumps over the lazy dog. 123 ABC xyz</span>
|
|
125
|
+
</body>
|
|
126
|
+
</html>
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<div style="text-align: center; border-top: 1px solid #ccc; padding-top: 10px; margin-top: 20px; font-size: 12px; color: #666;">
|
|
2
|
+
<p style="margin: 0;">Página {{pageNumber}} de {{totalPages}}</p>
|
|
3
|
+
<p style="margin: 5px 0;">© 2025 Pagyra JS - Exemplo de Footer</p>
|
|
4
|
+
</div>
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="pt-BR">
|
|
3
|
+
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="utf-8" />
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
7
|
+
<title>H1 Isolado - HTML→PDF</title>
|
|
8
|
+
<style>
|
|
9
|
+
:root {
|
|
10
|
+
--fs-hero: clamp(30px, 5vw, 58px);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
* {
|
|
14
|
+
box-sizing: border-box;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
html,
|
|
18
|
+
body {
|
|
19
|
+
height: 100%;
|
|
20
|
+
margin: 0;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
body {
|
|
24
|
+
display: flex;
|
|
25
|
+
align-items: center;
|
|
26
|
+
justify-content: center;
|
|
27
|
+
padding: 20px;
|
|
28
|
+
|
|
29
|
+
background:
|
|
30
|
+
radial-gradient(1200px 500px at 20% -10%, #e0e7ff66, transparent 60%),
|
|
31
|
+
linear-gradient(180deg, #f9fafb 0%, #f1f5f9 100%);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
h1 {
|
|
35
|
+
font-size: var(--fs-hero);
|
|
36
|
+
line-height: 1.05;
|
|
37
|
+
letter-spacing: -0.02em;
|
|
38
|
+
margin: 0;
|
|
39
|
+
text-align: center;
|
|
40
|
+
background: linear-gradient(90deg, #7c3aed 0%, #06b6d4 40%, #22c55e 80%);
|
|
41
|
+
background-clip: text;
|
|
42
|
+
-webkit-background-clip: text;
|
|
43
|
+
color: transparent;
|
|
44
|
+
}
|
|
45
|
+
</style>
|
|
46
|
+
</head>
|
|
47
|
+
|
|
48
|
+
<body>
|
|
49
|
+
|
|
50
|
+
<h1>Texto 1234568910</h1>
|
|
51
|
+
|
|
52
|
+
</body>
|
|
53
|
+
|
|
54
|
+
</html>
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="UTF-8">
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
7
|
+
<title>Grid Gap Demo</title>
|
|
8
|
+
<style>
|
|
9
|
+
body {
|
|
10
|
+
font-family: Arial, sans-serif;
|
|
11
|
+
padding: 20px;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
h1 {
|
|
15
|
+
color: #2c3e50;
|
|
16
|
+
margin-bottom: 30px;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.demo-section {
|
|
20
|
+
margin-bottom: 40px;
|
|
21
|
+
padding: 20px;
|
|
22
|
+
background-color: #f8f9fa;
|
|
23
|
+
border-radius: 8px;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.demo-section h2 {
|
|
27
|
+
color: #34495e;
|
|
28
|
+
margin-top: 0;
|
|
29
|
+
font-size: 18px;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.grid-container {
|
|
33
|
+
display: grid;
|
|
34
|
+
grid-template-columns: repeat(3, 1fr);
|
|
35
|
+
background-color: #f3e5f5;
|
|
36
|
+
padding: 15px;
|
|
37
|
+
border: 2px solid #9c27b0;
|
|
38
|
+
border-radius: 4px;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.grid-item {
|
|
42
|
+
background-color: #00bcd4;
|
|
43
|
+
color: white;
|
|
44
|
+
padding: 30px;
|
|
45
|
+
text-align: center;
|
|
46
|
+
border-radius: 4px;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/* Demo 1: No gap */
|
|
50
|
+
.no-gap {
|
|
51
|
+
column-gap: 0;
|
|
52
|
+
row-gap: 0;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/* Demo 2: Column gap only */
|
|
56
|
+
.column-gap-only {
|
|
57
|
+
column-gap: 15px;
|
|
58
|
+
row-gap: 0;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/* Demo 3: Row gap only */
|
|
62
|
+
.row-gap-only {
|
|
63
|
+
column-gap: 0;
|
|
64
|
+
row-gap: 20px;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/* Demo 4: Both gaps */
|
|
68
|
+
.both-gaps {
|
|
69
|
+
column-gap: 20px;
|
|
70
|
+
row-gap: 20px;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/* Demo 5: Different gaps */
|
|
74
|
+
.different-gaps {
|
|
75
|
+
column-gap: 30px;
|
|
76
|
+
row-gap: 10px;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.description {
|
|
80
|
+
color: #555;
|
|
81
|
+
margin-bottom: 10px;
|
|
82
|
+
font-style: italic;
|
|
83
|
+
}
|
|
84
|
+
</style>
|
|
85
|
+
</head>
|
|
86
|
+
|
|
87
|
+
<body>
|
|
88
|
+
<h1>CSS Grid with Gap - Demo</h1>
|
|
89
|
+
|
|
90
|
+
<div class="demo-section">
|
|
91
|
+
<h2>1. No Gap</h2>
|
|
92
|
+
<p class="description">column-gap: 0, row-gap: 0</p>
|
|
93
|
+
<div class="grid-container no-gap">
|
|
94
|
+
<div class="grid-item">1</div>
|
|
95
|
+
<div class="grid-item">2</div>
|
|
96
|
+
<div class="grid-item">3</div>
|
|
97
|
+
<div class="grid-item">4</div>
|
|
98
|
+
<div class="grid-item">5</div>
|
|
99
|
+
<div class="grid-item">6</div>
|
|
100
|
+
</div>
|
|
101
|
+
</div>
|
|
102
|
+
|
|
103
|
+
<div class="demo-section">
|
|
104
|
+
<h2>2. Column Gap Only</h2>
|
|
105
|
+
<p class="description">column-gap: 15px, row-gap: 0</p>
|
|
106
|
+
<div class="grid-container column-gap-only">
|
|
107
|
+
<div class="grid-item">1</div>
|
|
108
|
+
<div class="grid-item">2</div>
|
|
109
|
+
<div class="grid-item">3</div>
|
|
110
|
+
<div class="grid-item">4</div>
|
|
111
|
+
<div class="grid-item">5</div>
|
|
112
|
+
<div class="grid-item">6</div>
|
|
113
|
+
</div>
|
|
114
|
+
</div>
|
|
115
|
+
|
|
116
|
+
<div class="demo-section">
|
|
117
|
+
<h2>3. Row Gap Only</h2>
|
|
118
|
+
<p class="description">column-gap: 0, row-gap: 20px</p>
|
|
119
|
+
<div class="grid-container row-gap-only">
|
|
120
|
+
<div class="grid-item">1</div>
|
|
121
|
+
<div class="grid-item">2</div>
|
|
122
|
+
<div class="grid-item">3</div>
|
|
123
|
+
<div class="grid-item">4</div>
|
|
124
|
+
<div class="grid-item">5</div>
|
|
125
|
+
<div class="grid-item">6</div>
|
|
126
|
+
</div>
|
|
127
|
+
</div>
|
|
128
|
+
|
|
129
|
+
<div class="demo-section">
|
|
130
|
+
<h2>4. Both Gaps Equal</h2>
|
|
131
|
+
<p class="description">column-gap: 20px, row-gap: 20px</p>
|
|
132
|
+
<div class="grid-container both-gaps">
|
|
133
|
+
<div class="grid-item">1</div>
|
|
134
|
+
<div class="grid-item">2</div>
|
|
135
|
+
<div class="grid-item">3</div>
|
|
136
|
+
<div class="grid-item">4</div>
|
|
137
|
+
<div class="grid-item">5</div>
|
|
138
|
+
<div class="grid-item">6</div>
|
|
139
|
+
</div>
|
|
140
|
+
</div>
|
|
141
|
+
|
|
142
|
+
<div class="demo-section">
|
|
143
|
+
<h2>5. Different Gaps</h2>
|
|
144
|
+
<p class="description">column-gap: 30px, row-gap: 10px</p>
|
|
145
|
+
<div class="grid-container different-gaps">
|
|
146
|
+
<div class="grid-item">1</div>
|
|
147
|
+
<div class="grid-item">2</div>
|
|
148
|
+
<div class="grid-item">3</div>
|
|
149
|
+
<div class="grid-item">4</div>
|
|
150
|
+
<div class="grid-item">5</div>
|
|
151
|
+
<div class="grid-item">6</div>
|
|
152
|
+
</div>
|
|
153
|
+
</div>
|
|
154
|
+
</body>
|
|
155
|
+
|
|
156
|
+
</html>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
<h2>Relatório de Vendas Mensais</h2>
|
|
2
|
+
|
|
3
|
+
<p>Este é um exemplo de relatório que demonstra o uso de cabeçalho e rodapé no Pagyra JS.</p>
|
|
4
|
+
|
|
5
|
+
<h3>Dados do Mês</h3>
|
|
6
|
+
<ul>
|
|
7
|
+
<li>Vendas Totais: R$ 150.000,00</li>
|
|
8
|
+
<li>Clientes Atendidos: 1.250</li>
|
|
9
|
+
<li>Produtos Vendidos: 3.500</li>
|
|
10
|
+
<li>Taxa de Conversão: 85%</li>
|
|
11
|
+
</ul>
|
|
12
|
+
|
|
13
|
+
<h3>Gráfico de Performance</h3>
|
|
14
|
+
<p>Aqui seria inserido um gráfico mostrando a performance mensal.</p>
|
|
15
|
+
|
|
16
|
+
<h3>Conclusões</h3>
|
|
17
|
+
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
|
|
18
|
+
|
|
19
|
+
<p>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
|
|
20
|
+
|
|
21
|
+
<h3>Próximos Passos</h3>
|
|
22
|
+
<p>Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.</p>
|
|
23
|
+
|
|
24
|
+
<p>Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt.</p>
|
|
25
|
+
|
|
26
|
+
<h3>Contato</h3>
|
|
27
|
+
<p>Para mais informações, entre em contato conosco através do email: contato@empresa.com</p>
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>Simple Image Showcase</title>
|
|
7
|
+
</head>
|
|
8
|
+
<body>
|
|
9
|
+
<h1>Simple Image Showcase</h1>
|
|
10
|
+
|
|
11
|
+
<h2>Basic Image</h2>
|
|
12
|
+
<img src="../images/duck.jpg" alt="Basic duck image">
|
|
13
|
+
|
|
14
|
+
<h2>Another Image</h2>
|
|
15
|
+
<img src="../images/duck.jpg" alt="Another duck image">
|
|
16
|
+
|
|
17
|
+
<h2>Image in Table</h2>
|
|
18
|
+
<table>
|
|
19
|
+
<tr>
|
|
20
|
+
<td>Item 1</td>
|
|
21
|
+
<td><img src="../images/duck.jpg" alt="Product 1"></td>
|
|
22
|
+
<td>Description</td>
|
|
23
|
+
</tr>
|
|
24
|
+
</table>
|
|
25
|
+
|
|
26
|
+
<h2>Image Gallery</h2>
|
|
27
|
+
<div>
|
|
28
|
+
<img src="../images/duck.jpg" alt="Gallery image 1">
|
|
29
|
+
<img src="../images/duck.jpg" alt="Gallery image 2">
|
|
30
|
+
<img src="../images/duck.jpg" alt="Gallery image 3">
|
|
31
|
+
</div>
|
|
32
|
+
</body>
|
|
33
|
+
</html>
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<title>Justified Text</title>
|
|
6
|
+
<style>
|
|
7
|
+
p { text-align: justify; }
|
|
8
|
+
</style>
|
|
9
|
+
</head>
|
|
10
|
+
<body>
|
|
11
|
+
<p>
|
|
12
|
+
This short sample demonstrates how justified paragraphs spread the remaining space
|
|
13
|
+
across each line. When rendered as PDF the left and right edges are aligned,
|
|
14
|
+
creating a tidy block of text similar to browsers.
|
|
15
|
+
</p>
|
|
16
|
+
<p>
|
|
17
|
+
Try trimming or extending the text to watch how the spacing adjusts while keeping
|
|
18
|
+
a readable rhythm. The final line stays left aligned so the paragraph retains its
|
|
19
|
+
natural ending.
|
|
20
|
+
</p>
|
|
21
|
+
</body>
|
|
22
|
+
</html>
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<title>Simple Gradient Box with Border</title>
|
|
6
|
+
<style>
|
|
7
|
+
.box {
|
|
8
|
+
width: 300px;
|
|
9
|
+
height: 200px;
|
|
10
|
+
/* Aplica o gradiente como background da div */
|
|
11
|
+
background: linear-gradient(to right, #ff7e5f, #feb47b);
|
|
12
|
+
|
|
13
|
+
/* A BORDA ESTÁ AQUI NA DIV */
|
|
14
|
+
border: 5px solid #0000ff;
|
|
15
|
+
|
|
16
|
+
/* Adicionado para centralizar o span dentro da div (opcional) */
|
|
17
|
+
display: flex;
|
|
18
|
+
justify-content: center;
|
|
19
|
+
align-items: center;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.box-content {
|
|
23
|
+
/* Estilo para o span (apenas para conteúdo legível, sem borda) */
|
|
24
|
+
display: inline-block;
|
|
25
|
+
padding: 10px;
|
|
26
|
+
color: #333;
|
|
27
|
+
background-color: rgba(255, 255, 255, 0.8); /* Fundo branco semi-transparente para leitura */
|
|
28
|
+
font-family: Arial, sans-serif;
|
|
29
|
+
font-weight: bold;
|
|
30
|
+
}
|
|
31
|
+
</style>
|
|
32
|
+
</head>
|
|
33
|
+
<body>
|
|
34
|
+
<div class="box">
|
|
35
|
+
<span class="box-content">Conteúdo dentro da caixa com borda azul e gradiente.</span>
|
|
36
|
+
</div>
|
|
37
|
+
</body>
|
|
38
|
+
</html>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<title>Span Lorem Ipsum Test</title>
|
|
6
|
+
<style>
|
|
7
|
+
body { font: 12pt Arial, sans-serif; }
|
|
8
|
+
span { background-color: #f0f0f0; padding: 2pt; }
|
|
9
|
+
</style>
|
|
10
|
+
</head>
|
|
11
|
+
<body>
|
|
12
|
+
<p><span>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Curabitur vulputate arcu odio, ac facilisis diam sollicitudin sed. Integer in nisi neque. Sed feugiat, sapien vel cursus elementum, sapien magna gravida risus, a odio nulla non justo. Nam sed nibh ut arcu blandit hendrerit. In hac habitasse platea dictumst. Sed porttitor lectus nibh. proin eget tortor risus. Praesent sapien massa, convallis a pellentesque nec, egestas non nisi. Curabitur non nulla sit amet nisi tempus convallis quis ac lectus.</span></p>
|
|
13
|
+
</body>
|
|
14
|
+
</html>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<style>
|
|
5
|
+
.container {
|
|
6
|
+
width: 200px;
|
|
7
|
+
border: 1px solid black;
|
|
8
|
+
}
|
|
9
|
+
.item {
|
|
10
|
+
background-color: lightblue;
|
|
11
|
+
margin-block-start: 20px;
|
|
12
|
+
margin-block-end: 30px;
|
|
13
|
+
}
|
|
14
|
+
</style>
|
|
15
|
+
</head>
|
|
16
|
+
<body>
|
|
17
|
+
<div class="container">
|
|
18
|
+
<div class="item">This item has a 20px top margin and a 30px bottom margin.</div>
|
|
19
|
+
</div>
|
|
20
|
+
</body>
|
|
21
|
+
</html>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<style>
|
|
5
|
+
.container {
|
|
6
|
+
border: 1px solid black;
|
|
7
|
+
padding: 10px;
|
|
8
|
+
}
|
|
9
|
+
.item {
|
|
10
|
+
background-color: lightgreen;
|
|
11
|
+
margin-inline-start: 20px;
|
|
12
|
+
margin-inline-end: 30px;
|
|
13
|
+
}
|
|
14
|
+
</style>
|
|
15
|
+
</head>
|
|
16
|
+
<body>
|
|
17
|
+
<div class="container">
|
|
18
|
+
<div class="item">This item has a 20px left margin and a 30px right margin.</div>
|
|
19
|
+
</div>
|
|
20
|
+
</body>
|
|
21
|
+
</html>
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="pt-BR">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<title>Relatório Básico</title>
|
|
6
|
+
<style>
|
|
7
|
+
body {
|
|
8
|
+
font-family: PagyraDefault, sans-serif;
|
|
9
|
+
font-size: 14pt;
|
|
10
|
+
line-height: 1.5;
|
|
11
|
+
color: #222222;
|
|
12
|
+
}
|
|
13
|
+
h1 {
|
|
14
|
+
font-size: 24pt;
|
|
15
|
+
margin-bottom: 12pt;
|
|
16
|
+
text-align: center;
|
|
17
|
+
}
|
|
18
|
+
p {
|
|
19
|
+
margin: 0 0 10pt 0;
|
|
20
|
+
}
|
|
21
|
+
p.intro {
|
|
22
|
+
font-size: 16pt;
|
|
23
|
+
}
|
|
24
|
+
a {
|
|
25
|
+
color: #1a73e8;
|
|
26
|
+
text-decoration: underline;
|
|
27
|
+
}
|
|
28
|
+
ul {
|
|
29
|
+
margin: 8pt 0 12pt 30pt;
|
|
30
|
+
}
|
|
31
|
+
li {
|
|
32
|
+
margin-bottom: 4pt;
|
|
33
|
+
}
|
|
34
|
+
table {
|
|
35
|
+
width: 100%;
|
|
36
|
+
border-collapse: collapse;
|
|
37
|
+
margin-top: 16pt;
|
|
38
|
+
}
|
|
39
|
+
th {
|
|
40
|
+
background-color: #f0f4ff;
|
|
41
|
+
font-weight: bold;
|
|
42
|
+
text-align: left;
|
|
43
|
+
}
|
|
44
|
+
th, td {
|
|
45
|
+
padding: 6pt 8pt;
|
|
46
|
+
border: 1px solid #d0d6e2;
|
|
47
|
+
}
|
|
48
|
+
.note {
|
|
49
|
+
font-size: 12pt;
|
|
50
|
+
color: #555555;
|
|
51
|
+
}
|
|
52
|
+
</style>
|
|
53
|
+
</head>
|
|
54
|
+
<body>
|
|
55
|
+
<h1>Resumo Mensal</h1>
|
|
56
|
+
<p class="intro">Este documento demonstra o fluxo HTML básico renderizado pelo Pagyra usando o novo conversor HtmlToPdfConverter.</p>
|
|
57
|
+
<p>Você pode combinar <strong>ênfase</strong>, <em>itálico</em> e até mesmo referências externas como <a href="https://pagyra.dev">site oficial</a>.</p>
|
|
58
|
+
|
|
59
|
+
<p>Principais destaques:</p>
|
|
60
|
+
<ul>
|
|
61
|
+
<li>Compatibilidade com estilos inline e CSS embutido</li>
|
|
62
|
+
<li>Suporte a links clicáveis</li>
|
|
63
|
+
<li>Renderização simplificada de tabelas</li>
|
|
64
|
+
</ul>
|
|
65
|
+
|
|
66
|
+
<table>
|
|
67
|
+
<thead>
|
|
68
|
+
<tr>
|
|
69
|
+
<th>Indicador</th>
|
|
70
|
+
<th>Valor</th>
|
|
71
|
+
<th>Variação</th>
|
|
72
|
+
</tr>
|
|
73
|
+
</thead>
|
|
74
|
+
<tbody>
|
|
75
|
+
<tr>
|
|
76
|
+
<td>Receita</td>
|
|
77
|
+
<td>R$ 128.450</td>
|
|
78
|
+
<td style="color: #0a8a0a;">+8,2%</td>
|
|
79
|
+
</tr>
|
|
80
|
+
<tr>
|
|
81
|
+
<td>Novos clientes</td>
|
|
82
|
+
<td>276</td>
|
|
83
|
+
<td style="color: #0a8a0a;">+5,5%</td>
|
|
84
|
+
</tr>
|
|
85
|
+
<tr>
|
|
86
|
+
<td>Tickets</td>
|
|
87
|
+
<td>412</td>
|
|
88
|
+
<td style="color: #c8261b;">-2,1%</td>
|
|
89
|
+
</tr>
|
|
90
|
+
</tbody>
|
|
91
|
+
</table>
|
|
92
|
+
|
|
93
|
+
<p class="note">Observação: os dados acima são fictícios e servem apenas para fins de demonstração.</p>
|
|
94
|
+
</body>
|
|
95
|
+
</html>
|