gitextract_95ou86zy/ ├── .changeset/ │ ├── README.md │ ├── config.json │ ├── dirty-rocks-jam.md │ ├── eighty-taxis-cross.md │ ├── five-rockets-battle.md │ └── pretty-carrots-obey.md ├── .gitattributes ├── .github/ │ ├── CODE_OF_CONDUCT.md │ ├── CONTRIBUTING.md │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ └── feature_request.md │ ├── no-response.yml │ └── workflows/ │ ├── main.yml │ └── release.yml ├── .gitignore ├── .husky/ │ └── pre-commit ├── .nvmrc ├── .prettierignore ├── .prettierrc ├── LICENSE ├── README.md ├── babel.config.js ├── e2e/ │ ├── node-cjs/ │ │ ├── CHANGELOG.md │ │ ├── index.js │ │ └── package.json │ └── node-esm/ │ ├── CHANGELOG.md │ ├── index.js │ └── package.json ├── eslint.config.ts ├── lerna.json ├── package.json ├── packages/ │ ├── examples/ │ │ ├── dev.sh │ │ ├── next-14/ │ │ │ ├── .gitignore │ │ │ ├── CHANGELOG.md │ │ │ ├── README.md │ │ │ ├── app/ │ │ │ │ ├── globals.css │ │ │ │ ├── layout.js │ │ │ │ └── page.js │ │ │ ├── jsconfig.json │ │ │ ├── next.config.mjs │ │ │ ├── package.json │ │ │ ├── postcss.config.mjs │ │ │ └── tailwind.config.js │ │ ├── next-15/ │ │ │ ├── .gitignore │ │ │ ├── CHANGELOG.md │ │ │ ├── README.md │ │ │ ├── app/ │ │ │ │ ├── globals.css │ │ │ │ ├── layout.js │ │ │ │ └── page.js │ │ │ ├── jsconfig.json │ │ │ ├── next.config.mjs │ │ │ ├── package.json │ │ │ ├── postcss.config.mjs │ │ │ └── tailwind.config.js │ │ ├── package.json │ │ └── vite/ │ │ ├── .gitignore │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── declarations.d.ts │ │ ├── package.json │ │ ├── postcss.config.js │ │ ├── src/ │ │ │ ├── examples/ │ │ │ │ ├── duplicated-images/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── ellipsis/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── emoji/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── font-family-fallback/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── font-weight/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── forms/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── fractals/ │ │ │ │ │ ├── Fractal.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── go-to/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── image-stress-test/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── index.ts │ │ │ │ ├── jpg-orientation/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── knobs/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── link/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── media-queries/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── min-presence-ahead/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── multiline-text/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── object-fit/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── page-wrap/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── resume/ │ │ │ │ │ ├── Education.tsx │ │ │ │ │ ├── Experience.tsx │ │ │ │ │ ├── Header.tsx │ │ │ │ │ ├── List.tsx │ │ │ │ │ ├── Skills.tsx │ │ │ │ │ ├── Title.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── soft-hyphens/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── svg/ │ │ │ │ │ ├── Car.tsx │ │ │ │ │ ├── Heart.tsx │ │ │ │ │ ├── Pattern.tsx │ │ │ │ │ ├── Star.tsx │ │ │ │ │ ├── Svg1.tsx │ │ │ │ │ ├── Svg2.tsx │ │ │ │ │ ├── Svg4.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── svg.tsx │ │ │ │ ├── svg-transform/ │ │ │ │ │ └── index.tsx │ │ │ │ └── transform-origin/ │ │ │ │ └── index.tsx │ │ │ ├── index.css │ │ │ ├── index.html │ │ │ └── index.tsx │ │ ├── tailwind.config.js │ │ └── vite.config.js │ ├── fns/ │ │ ├── .gitignore │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── jest.config.js │ │ ├── package.json │ │ ├── rollup.config.js │ │ ├── src/ │ │ │ ├── adjust.ts │ │ │ ├── asyncCompose.ts │ │ │ ├── capitalize.ts │ │ │ ├── castArray.ts │ │ │ ├── compose.ts │ │ │ ├── dropLast.ts │ │ │ ├── evolve.ts │ │ │ ├── get.ts │ │ │ ├── index.ts │ │ │ ├── isNil.ts │ │ │ ├── last.ts │ │ │ ├── mapValues.ts │ │ │ ├── matchPercent.ts │ │ │ ├── omit.ts │ │ │ ├── parseFloat.ts │ │ │ ├── pick.ts │ │ │ ├── repeat.ts │ │ │ ├── reverse.ts │ │ │ ├── upperFirst.ts │ │ │ └── without.ts │ │ ├── tests/ │ │ │ ├── adjust.test.ts │ │ │ ├── asyncCompose.test.ts │ │ │ ├── capitalize.test.ts │ │ │ ├── castArray.test.ts │ │ │ ├── compose.test.ts │ │ │ ├── dropLast.test.ts │ │ │ ├── evolve.test.ts │ │ │ ├── get.test.ts │ │ │ ├── isNil.test.ts │ │ │ ├── last.test.ts │ │ │ ├── mapValues.test.ts │ │ │ ├── matchPercent.test.ts │ │ │ ├── omit.test.ts │ │ │ ├── parseFloat.test.ts │ │ │ ├── pick.test.ts │ │ │ ├── repeat.test.ts │ │ │ ├── reverse.test.ts │ │ │ ├── upperFirst.test.ts │ │ │ └── without.test.ts │ │ └── tsconfig.json │ ├── font/ │ │ ├── .gitignore │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── declarations.d.ts │ │ ├── globals.d.ts │ │ ├── package.json │ │ ├── rollup.config.js │ │ ├── src/ │ │ │ ├── font-family.ts │ │ │ ├── font-source.ts │ │ │ ├── index.ts │ │ │ ├── standard-font.ts │ │ │ └── types.ts │ │ ├── tests/ │ │ │ ├── fallback-weights.test.ts │ │ │ ├── font-store.test.ts │ │ │ └── standard-fonts.test.ts │ │ └── tsconfig.json │ ├── image/ │ │ ├── .gitignore │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── declarations.d.ts │ │ ├── globals.d.ts │ │ ├── package.json │ │ ├── rollup.config.js │ │ ├── src/ │ │ │ ├── cache.ts │ │ │ ├── index.ts │ │ │ ├── jpeg.ts │ │ │ ├── png.ts │ │ │ ├── resolve.ts │ │ │ └── types.ts │ │ ├── tests/ │ │ │ ├── cache.test.ts │ │ │ ├── resolve.test.ts │ │ │ └── types.ts │ │ ├── tsconfig.json │ │ ├── vitest.config.js │ │ └── vitest.setup.js │ ├── layout/ │ │ ├── .gitignore │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── globals.d.ts │ │ ├── jest.config.js │ │ ├── package.json │ │ ├── rollup.config.js │ │ ├── setupTests.js │ │ ├── src/ │ │ │ ├── canvas/ │ │ │ │ └── measureCanvas.ts │ │ │ ├── image/ │ │ │ │ ├── fetchImage.ts │ │ │ │ ├── getRatio.ts │ │ │ │ ├── getSource.ts │ │ │ │ ├── measureImage.ts │ │ │ │ └── resolveSource.ts │ │ │ ├── index.ts │ │ │ ├── node/ │ │ │ │ ├── createInstances.ts │ │ │ │ ├── getBorderWidth.ts │ │ │ │ ├── getDimension.ts │ │ │ │ ├── getMargin.ts │ │ │ │ ├── getOrigin.ts │ │ │ │ ├── getPadding.ts │ │ │ │ ├── getPosition.ts │ │ │ │ ├── getWrap.ts │ │ │ │ ├── isFixed.ts │ │ │ │ ├── removePaddings.ts │ │ │ │ ├── setAlign.ts │ │ │ │ ├── setAlignContent.ts │ │ │ │ ├── setAlignItems.ts │ │ │ │ ├── setAlignSelf.ts │ │ │ │ ├── setAspectRatio.ts │ │ │ │ ├── setBorderWidth.ts │ │ │ │ ├── setDimension.ts │ │ │ │ ├── setDisplay.ts │ │ │ │ ├── setFlexBasis.ts │ │ │ │ ├── setFlexDirection.ts │ │ │ │ ├── setFlexGrow.ts │ │ │ │ ├── setFlexShrink.ts │ │ │ │ ├── setFlexWrap.ts │ │ │ │ ├── setGap.ts │ │ │ │ ├── setJustifyContent.ts │ │ │ │ ├── setMargin.ts │ │ │ │ ├── setOverflow.ts │ │ │ │ ├── setPadding.ts │ │ │ │ ├── setPosition.ts │ │ │ │ ├── setPositionType.ts │ │ │ │ ├── setYogaValue.ts │ │ │ │ ├── shouldBreak.ts │ │ │ │ └── splitNode.ts │ │ │ ├── page/ │ │ │ │ ├── getContentArea.ts │ │ │ │ ├── getOrientation.ts │ │ │ │ ├── getSize.ts │ │ │ │ ├── getWrapArea.ts │ │ │ │ ├── isHeightAuto.ts │ │ │ │ ├── isLandscape.ts │ │ │ │ └── isPortrait.ts │ │ │ ├── steps/ │ │ │ │ ├── resolveAssets.ts │ │ │ │ ├── resolveBookmarks.ts │ │ │ │ ├── resolveDimensions.ts │ │ │ │ ├── resolveInheritance.ts │ │ │ │ ├── resolveLinkSubstitution.ts │ │ │ │ ├── resolveOrigins.ts │ │ │ │ ├── resolvePagePaddings.ts │ │ │ │ ├── resolvePageSizes.ts │ │ │ │ ├── resolvePagination.ts │ │ │ │ ├── resolvePercentHeight.ts │ │ │ │ ├── resolvePercentRadius.ts │ │ │ │ ├── resolveStyles.ts │ │ │ │ ├── resolveSvg.ts │ │ │ │ ├── resolveTextLayout.ts │ │ │ │ ├── resolveYoga.ts │ │ │ │ └── resolveZIndex.ts │ │ │ ├── svg/ │ │ │ │ ├── getContainer.ts │ │ │ │ ├── getDefs.ts │ │ │ │ ├── inheritProps.ts │ │ │ │ ├── layoutText.ts │ │ │ │ ├── measureSvg.ts │ │ │ │ ├── parseAspectRatio.ts │ │ │ │ ├── parseViewbox.ts │ │ │ │ └── replaceDefs.ts │ │ │ ├── text/ │ │ │ │ ├── emoji.ts │ │ │ │ ├── getAttributedString.ts │ │ │ │ ├── heightAtLineIndex.ts │ │ │ │ ├── ignoreChars.ts │ │ │ │ ├── layoutText.ts │ │ │ │ ├── lineIndexAtHeight.ts │ │ │ │ ├── linesHeight.ts │ │ │ │ ├── linesWidth.ts │ │ │ │ ├── measureText.ts │ │ │ │ ├── splitText.ts │ │ │ │ └── transformText.ts │ │ │ ├── types/ │ │ │ │ ├── base.ts │ │ │ │ ├── canvas.ts │ │ │ │ ├── checkbox.ts │ │ │ │ ├── circle.ts │ │ │ │ ├── clip-path.ts │ │ │ │ ├── defs.ts │ │ │ │ ├── document.ts │ │ │ │ ├── ellipse.ts │ │ │ │ ├── field-set.ts │ │ │ │ ├── g.ts │ │ │ │ ├── image.ts │ │ │ │ ├── index.ts │ │ │ │ ├── line.ts │ │ │ │ ├── linear-gradient.ts │ │ │ │ ├── link.ts │ │ │ │ ├── node.ts │ │ │ │ ├── note.ts │ │ │ │ ├── page.ts │ │ │ │ ├── path.ts │ │ │ │ ├── polygon.ts │ │ │ │ ├── polyline.ts │ │ │ │ ├── radial-gradient.ts │ │ │ │ ├── rect.ts │ │ │ │ ├── select.ts │ │ │ │ ├── stop.ts │ │ │ │ ├── svg.ts │ │ │ │ ├── text-input.ts │ │ │ │ ├── text-instance.ts │ │ │ │ ├── text.ts │ │ │ │ ├── tspan.ts │ │ │ │ └── view.ts │ │ │ └── yoga/ │ │ │ └── index.ts │ │ ├── tests/ │ │ │ ├── image/ │ │ │ │ ├── getSource.test.ts │ │ │ │ └── resolveSource.test.ts │ │ │ ├── node/ │ │ │ │ ├── getBorderWidth.test.ts │ │ │ │ ├── getDimension.test.ts │ │ │ │ ├── getMargin.test.ts │ │ │ │ ├── getOrigin.test.ts │ │ │ │ ├── getPadding.test.ts │ │ │ │ ├── getPosition.test.ts │ │ │ │ ├── removePaddings.test.ts │ │ │ │ ├── setAlignContent.test.ts │ │ │ │ ├── setAlignItems.test.ts │ │ │ │ ├── setAlignSelf.test.ts │ │ │ │ ├── setAspectRatio.test.ts │ │ │ │ ├── setBorderWidth.test.ts │ │ │ │ ├── setDimension.test.ts │ │ │ │ ├── setDisplay.test.ts │ │ │ │ ├── setFlexBasis.test.ts │ │ │ │ ├── setFlexDirection.test.ts │ │ │ │ ├── setFlexGrow.test.ts │ │ │ │ ├── setFlexShrink.test.ts │ │ │ │ ├── setFlexWrap.test.ts │ │ │ │ ├── setGap.test.ts │ │ │ │ ├── setJustifyContent.test.ts │ │ │ │ ├── setMargin.test.ts │ │ │ │ ├── setOverflow.test.ts │ │ │ │ ├── setPadding.test.ts │ │ │ │ ├── setPosition.test.ts │ │ │ │ ├── setPositionType.test.ts │ │ │ │ └── shouldBreak.test.ts │ │ │ ├── page/ │ │ │ │ ├── getOrientation.test.ts │ │ │ │ ├── getSize.test.ts │ │ │ │ ├── isHeightAuto.test.ts │ │ │ │ ├── isLandscape.test.ts │ │ │ │ └── isPortrait.test.ts │ │ │ ├── steps/ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ ├── resolveLinkSubstitution.test.ts.snap │ │ │ │ │ ├── resolveOrigins.test.ts.snap │ │ │ │ │ ├── resolvePagePaddings.test.ts.snap │ │ │ │ │ ├── resolvePercentHeight.test.ts.snap │ │ │ │ │ └── resolveStyles.test.ts.snap │ │ │ │ ├── resolveBookmarks.test.ts │ │ │ │ ├── resolveInhritance.test.ts │ │ │ │ ├── resolveLinkSubstitution.test.ts │ │ │ │ ├── resolveOrigins.test.ts │ │ │ │ ├── resolvePagePaddings.test.ts │ │ │ │ ├── resolvePageSizes.test.ts │ │ │ │ ├── resolvePagination.test.ts │ │ │ │ ├── resolvePercentHeight.test.ts │ │ │ │ ├── resolveStyles.test.ts │ │ │ │ ├── resolveSvg.test.ts │ │ │ │ └── resolveTextLayout.test.ts │ │ │ └── text/ │ │ │ ├── heightAtLineIndex.test.ts │ │ │ ├── layoutText.test.ts │ │ │ ├── lineIndexAtHeight.test.ts │ │ │ └── measureText.test.ts │ │ └── tsconfig.json │ ├── pdfkit/ │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── babel.config.js │ │ ├── package.json │ │ ├── rollup.config.js │ │ ├── src/ │ │ │ ├── abstract_reference.js │ │ │ ├── data.js │ │ │ ├── document.js │ │ │ ├── font/ │ │ │ │ ├── afm.js │ │ │ │ ├── data/ │ │ │ │ │ ├── Courier-Bold.afm │ │ │ │ │ ├── Courier-BoldOblique.afm │ │ │ │ │ ├── Courier-Oblique.afm │ │ │ │ │ ├── Courier.afm │ │ │ │ │ ├── Helvetica-Bold.afm │ │ │ │ │ ├── Helvetica-BoldOblique.afm │ │ │ │ │ ├── Helvetica-Oblique.afm │ │ │ │ │ ├── Helvetica.afm │ │ │ │ │ ├── Times-Bold.afm │ │ │ │ │ ├── Times-BoldItalic.afm │ │ │ │ │ ├── Times-Italic.afm │ │ │ │ │ ├── Times-Roman.afm │ │ │ │ │ ├── compressData.js │ │ │ │ │ └── expandData.js │ │ │ │ ├── embedded.js │ │ │ │ └── standard.js │ │ │ ├── font.js │ │ │ ├── font_factory.js │ │ │ ├── gradient.js │ │ │ ├── image/ │ │ │ │ ├── jpeg.js │ │ │ │ └── png.js │ │ │ ├── image.js │ │ │ ├── index.js │ │ │ ├── line_wrapper.js │ │ │ ├── metadata.js │ │ │ ├── mixins/ │ │ │ │ ├── acroform.js │ │ │ │ ├── annotations.js │ │ │ │ ├── attachments.js │ │ │ │ ├── color.js │ │ │ │ ├── fonts.js │ │ │ │ ├── images.js │ │ │ │ ├── markings.js │ │ │ │ ├── metadata.js │ │ │ │ ├── outline.js │ │ │ │ ├── pdfa.js │ │ │ │ ├── pdfua.js │ │ │ │ ├── subsets.js │ │ │ │ ├── text.js │ │ │ │ └── vector.js │ │ │ ├── name_tree.js │ │ │ ├── number_tree.js │ │ │ ├── object.js │ │ │ ├── outline.js │ │ │ ├── page.js │ │ │ ├── path.js │ │ │ ├── pattern.js │ │ │ ├── reference.js │ │ │ ├── security.js │ │ │ ├── spotcolor.js │ │ │ ├── structure_content.js │ │ │ ├── structure_element.js │ │ │ ├── tree.js │ │ │ ├── utils/ │ │ │ │ └── range.js │ │ │ ├── utils.js │ │ │ └── virtual-fs.js │ │ └── tests/ │ │ └── font/ │ │ └── standard.test.ts │ ├── png-js/ │ │ ├── .gitignore │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── babel.config.js │ │ ├── package.json │ │ ├── rollup.config.js │ │ └── src/ │ │ └── index.js │ ├── primitives/ │ │ ├── .gitignore │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── babel.config.js │ │ ├── jest.config.js │ │ ├── package.json │ │ ├── rollup.config.js │ │ ├── src/ │ │ │ └── index.ts │ │ ├── tests/ │ │ │ └── index.test.ts │ │ └── tsconfig.json │ ├── reconciler/ │ │ ├── .gitignore │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── build/ │ │ │ └── trim-reconciler.js │ │ ├── package.json │ │ ├── rollup.config.js │ │ ├── src/ │ │ │ ├── index.ts │ │ │ ├── propsEqual.ts │ │ │ ├── reconciler-23.ts │ │ │ ├── reconciler-31.ts │ │ │ ├── reconciler-33.ts │ │ │ └── types.ts │ │ ├── tests/ │ │ │ └── propsEqual.test.ts │ │ └── tsconfig.json │ ├── render/ │ │ ├── .gitignore │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── globals.d.ts │ │ ├── jest.config.js │ │ ├── package.json │ │ ├── rollup.config.js │ │ ├── src/ │ │ │ ├── index.ts │ │ │ ├── operations/ │ │ │ │ ├── addBookmarks.ts │ │ │ │ ├── clipNode.ts │ │ │ │ ├── embedImage.ts │ │ │ │ ├── setDestination.ts │ │ │ │ ├── setLink.ts │ │ │ │ └── transform.ts │ │ │ ├── primitives/ │ │ │ │ ├── renderBackground.ts │ │ │ │ ├── renderBorders.ts │ │ │ │ ├── renderCanvas.ts │ │ │ │ ├── renderCheckbox.ts │ │ │ │ ├── renderCircle.ts │ │ │ │ ├── renderDebug.ts │ │ │ │ ├── renderEllipse.ts │ │ │ │ ├── renderFieldSet.ts │ │ │ │ ├── renderGlyphs.ts │ │ │ │ ├── renderGroup.ts │ │ │ │ ├── renderImage.ts │ │ │ │ ├── renderLine.ts │ │ │ │ ├── renderList.ts │ │ │ │ ├── renderNode.ts │ │ │ │ ├── renderNote.ts │ │ │ │ ├── renderPage.ts │ │ │ │ ├── renderPath.ts │ │ │ │ ├── renderPolygon.ts │ │ │ │ ├── renderPolyline.ts │ │ │ │ ├── renderRect.ts │ │ │ │ ├── renderSelect.ts │ │ │ │ ├── renderSvg.ts │ │ │ │ ├── renderSvgImage.ts │ │ │ │ ├── renderSvgText.ts │ │ │ │ ├── renderText.ts │ │ │ │ └── renderTextInput.ts │ │ │ ├── svg/ │ │ │ │ ├── getBoundingBox.ts │ │ │ │ └── parsePoints.ts │ │ │ ├── types.ts │ │ │ └── utils/ │ │ │ ├── parseColor.ts │ │ │ ├── parseFormOptions.ts │ │ │ └── resolveObjectFit.ts │ │ ├── tests/ │ │ │ ├── ctx.ts │ │ │ ├── operations/ │ │ │ │ └── setDestination.test.ts │ │ │ ├── primitives/ │ │ │ │ ├── renderBackground.test.ts │ │ │ │ ├── renderCanvas.test.ts │ │ │ │ ├── renderCircle.test.ts │ │ │ │ ├── renderEllipse.test.ts │ │ │ │ └── renderForm.test.ts │ │ │ ├── svg/ │ │ │ │ ├── getBoundingBox.test.ts │ │ │ │ └── parsePoints.test.ts │ │ │ └── utils/ │ │ │ ├── objectFit.test.ts │ │ │ └── parseColor.test.ts │ │ └── tsconfig.json │ ├── renderer/ │ │ ├── .gitignore │ │ ├── .size-limit.cjs │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── babel.config.js │ │ ├── index.d.ts │ │ ├── package.json │ │ ├── rollup.config.js │ │ ├── src/ │ │ │ ├── dom/ │ │ │ │ ├── BlobProvider.js │ │ │ │ ├── PDFDownloadLink.js │ │ │ │ ├── PDFViewer.js │ │ │ │ ├── index.js │ │ │ │ └── usePDF.js │ │ │ ├── index.js │ │ │ ├── node/ │ │ │ │ ├── index.js │ │ │ │ └── renderTo.js │ │ │ ├── renderer.js │ │ │ └── utils.js │ │ ├── tests/ │ │ │ ├── components.test.jsx │ │ │ ├── debug.test.jsx │ │ │ ├── dom.test.jsx │ │ │ ├── emoji.test.jsx │ │ │ ├── environment/ │ │ │ │ └── jsdom.js │ │ │ ├── flex.test.jsx │ │ │ ├── gap.test.jsx │ │ │ ├── images.test.jsx │ │ │ ├── link.test.jsx │ │ │ ├── namedDestinations.test.jsx │ │ │ ├── node.test.jsx │ │ │ ├── orphanTexts.test.jsx │ │ │ ├── pageWrap.test.jsx │ │ │ ├── renderComponent.js │ │ │ ├── resume.test.jsx │ │ │ ├── svg.test.jsx │ │ │ ├── svgs.jsx │ │ │ ├── text.test.jsx │ │ │ ├── transform.test.jsx │ │ │ └── usePDF.test.jsx │ │ ├── vitest.browser.config.js │ │ ├── vitest.config.js │ │ └── vitest.setup.js │ ├── stylesheet/ │ │ ├── .gitignore │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── globals.d.ts │ │ ├── jest.config.js │ │ ├── package.json │ │ ├── rollup.config.js │ │ ├── src/ │ │ │ ├── flatten/ │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ ├── mediaQueries/ │ │ │ │ └── index.ts │ │ │ ├── resolve/ │ │ │ │ ├── borders.ts │ │ │ │ ├── boxModel.ts │ │ │ │ ├── colors.ts │ │ │ │ ├── dimensions.ts │ │ │ │ ├── flex.ts │ │ │ │ ├── gap.ts │ │ │ │ ├── index.ts │ │ │ │ ├── layout.ts │ │ │ │ ├── margins.ts │ │ │ │ ├── paddings.ts │ │ │ │ ├── positioning.ts │ │ │ │ ├── svg.ts │ │ │ │ ├── text.ts │ │ │ │ ├── transform.ts │ │ │ │ └── utils.ts │ │ │ ├── types.ts │ │ │ └── utils/ │ │ │ ├── castFloat.ts │ │ │ ├── castInt.ts │ │ │ ├── colors.ts │ │ │ ├── offsetKeyword.ts │ │ │ └── units.ts │ │ ├── tests/ │ │ │ ├── borders.test.ts │ │ │ ├── colors.test.ts │ │ │ ├── dimensions.test.ts │ │ │ ├── flatten.test.ts │ │ │ ├── flex.test.ts │ │ │ ├── gap.test.ts │ │ │ ├── layout.test.ts │ │ │ ├── margins.test.ts │ │ │ ├── mediaQueries.test.ts │ │ │ ├── paddings.test.ts │ │ │ ├── positioning.test.ts │ │ │ ├── resolve.test.ts │ │ │ ├── text.test.ts │ │ │ └── transform.test.ts │ │ └── tsconfig.json │ ├── textkit/ │ │ ├── .gitignore │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── rollup.config.js │ │ ├── src/ │ │ │ ├── attributedString/ │ │ │ │ ├── advanceWidth.ts │ │ │ │ ├── advanceWidthBetween.ts │ │ │ │ ├── append.ts │ │ │ │ ├── ascent.ts │ │ │ │ ├── descent.ts │ │ │ │ ├── dropLast.ts │ │ │ │ ├── empty.ts │ │ │ │ ├── end.ts │ │ │ │ ├── fromFragments.ts │ │ │ │ ├── glyphWidthAt.ts │ │ │ │ ├── height.ts │ │ │ │ ├── indexAtOffset.ts │ │ │ │ ├── insertGlyph.ts │ │ │ │ ├── leadingOffset.ts │ │ │ │ ├── length.ts │ │ │ │ ├── prepend.ts │ │ │ │ ├── runAt.ts │ │ │ │ ├── runIndexAt.ts │ │ │ │ ├── slice.ts │ │ │ │ ├── sliceAtOffset.ts │ │ │ │ ├── start.ts │ │ │ │ ├── trailingOffset.ts │ │ │ │ └── trim.ts │ │ │ ├── engines/ │ │ │ │ ├── bidi/ │ │ │ │ │ └── index.ts │ │ │ │ ├── fontSubstitution/ │ │ │ │ │ └── index.ts │ │ │ │ ├── index.ts │ │ │ │ ├── justification/ │ │ │ │ │ ├── getDistances.ts │ │ │ │ │ ├── getFactors.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── linebreaker/ │ │ │ │ │ ├── bestFit.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── knuthPlass.ts │ │ │ │ │ ├── linkedList.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── scriptItemizer/ │ │ │ │ │ └── index.ts │ │ │ │ ├── textDecoration/ │ │ │ │ │ └── index.ts │ │ │ │ └── wordHyphenation/ │ │ │ │ └── index.ts │ │ │ ├── glyph/ │ │ │ │ ├── fromCodePoint.ts │ │ │ │ ├── isWhiteSpace.ts │ │ │ │ └── slice.ts │ │ │ ├── index.ts │ │ │ ├── indices/ │ │ │ │ ├── append.ts │ │ │ │ ├── normalize.ts │ │ │ │ ├── prepend.ts │ │ │ │ └── resolve.ts │ │ │ ├── layout/ │ │ │ │ ├── applyDefaultStyles.ts │ │ │ │ ├── bidiMirroring.ts │ │ │ │ ├── bidiReordering.ts │ │ │ │ ├── finalizeFragments.ts │ │ │ │ ├── generateGlyphs.ts │ │ │ │ ├── generateLineRects.ts │ │ │ │ ├── index.ts │ │ │ │ ├── layoutParagraph.ts │ │ │ │ ├── preprocessRuns.ts │ │ │ │ ├── resolveAttachments.ts │ │ │ │ ├── resolveYOffset.ts │ │ │ │ ├── splitParagraphs.ts │ │ │ │ ├── typesetter.ts │ │ │ │ ├── verticalAlign.ts │ │ │ │ └── wrapWords.ts │ │ │ ├── paragraph/ │ │ │ │ ├── height.ts │ │ │ │ ├── sliceAtHeight.ts │ │ │ │ └── truncate.ts │ │ │ ├── positions/ │ │ │ │ └── advanceWidth.ts │ │ │ ├── rect/ │ │ │ │ ├── area.ts │ │ │ │ ├── bottomLeft.ts │ │ │ │ ├── bottomRight.ts │ │ │ │ ├── copy.ts │ │ │ │ ├── crop.ts │ │ │ │ ├── empty.ts │ │ │ │ ├── equals.ts │ │ │ │ ├── intersects.ts │ │ │ │ ├── maxX.ts │ │ │ │ ├── maxY.ts │ │ │ │ └── partition.ts │ │ │ ├── run/ │ │ │ │ ├── add.ts │ │ │ │ ├── advanceWidth.ts │ │ │ │ ├── advanceWidthBetween.ts │ │ │ │ ├── append.ts │ │ │ │ ├── ascent.ts │ │ │ │ ├── concat.ts │ │ │ │ ├── descent.ts │ │ │ │ ├── dropLast.ts │ │ │ │ ├── empty.ts │ │ │ │ ├── filter.ts │ │ │ │ ├── flatten.ts │ │ │ │ ├── getFont.ts │ │ │ │ ├── glyphIndexAt.ts │ │ │ │ ├── height.ts │ │ │ │ ├── indexAtOffset.ts │ │ │ │ ├── insert.ts │ │ │ │ ├── isEmpty.ts │ │ │ │ ├── isWhiteSpace.ts │ │ │ │ ├── leadingOffset.ts │ │ │ │ ├── length.ts │ │ │ │ ├── lineGap.ts │ │ │ │ ├── offset.ts │ │ │ │ ├── omit.ts │ │ │ │ ├── prepend.ts │ │ │ │ ├── runIndexAt.ts │ │ │ │ ├── scale.ts │ │ │ │ ├── slice.ts │ │ │ │ ├── sort.ts │ │ │ │ ├── subtract.ts │ │ │ │ └── trailingOffset.ts │ │ │ ├── types.ts │ │ │ └── utils/ │ │ │ ├── isNumber.ts │ │ │ └── stringFromCodePoints.ts │ │ ├── tests/ │ │ │ ├── attributedString/ │ │ │ │ ├── advanceWidth.test.ts │ │ │ │ ├── advanceWidthBetween.test.ts │ │ │ │ ├── append.test.ts │ │ │ │ ├── ascent.test.ts │ │ │ │ ├── descent.test.ts │ │ │ │ ├── dropLast.test.ts │ │ │ │ ├── empty.test.ts │ │ │ │ ├── end.test.ts │ │ │ │ ├── fromFragments.test.ts │ │ │ │ ├── height.test.ts │ │ │ │ ├── indexAtOffset.test.ts │ │ │ │ ├── insertGlyph.test.ts │ │ │ │ ├── leadingOffset.test.ts │ │ │ │ ├── length.test.ts │ │ │ │ ├── prepend.test.ts │ │ │ │ ├── runAt.test.ts │ │ │ │ ├── runIndexAt.test.ts │ │ │ │ ├── slice.test.ts │ │ │ │ ├── sliceAtOffset.test.ts │ │ │ │ ├── start.test.ts │ │ │ │ ├── trailingOffset.test.ts │ │ │ │ └── trim.test.ts │ │ │ ├── engines/ │ │ │ │ ├── bidi.test.ts │ │ │ │ ├── fontSubstitution.test.ts │ │ │ │ ├── linebreaker.test.ts │ │ │ │ ├── scriptItemizer.test.ts │ │ │ │ └── wordHyphenation.test.ts │ │ │ ├── glyph/ │ │ │ │ ├── fromCodePoint.test.ts │ │ │ │ ├── isWhiteSpace.test.ts │ │ │ │ └── slice.test.ts │ │ │ ├── indices/ │ │ │ │ ├── append.test.ts │ │ │ │ ├── normalize.test.ts │ │ │ │ ├── prepend.test.ts │ │ │ │ └── resolve.test.ts │ │ │ ├── internal/ │ │ │ │ ├── bidiEngine.ts │ │ │ │ ├── font.ts │ │ │ │ ├── fontSubstitutionEngine.ts │ │ │ │ ├── pluck.ts │ │ │ │ └── scriptItemizer.ts │ │ │ ├── layout/ │ │ │ │ ├── applyDefaultStyles.test.ts │ │ │ │ ├── bidiMirroring.test.ts │ │ │ │ ├── bidiReordering.test.ts │ │ │ │ ├── generateGlyphs.test.ts │ │ │ │ ├── layoutParagraph.test.ts │ │ │ │ ├── preprocessRuns.test.ts │ │ │ │ ├── resolveAttachments.test.ts │ │ │ │ ├── resolveYOffset.test.ts │ │ │ │ ├── splitParagraphs.test.ts │ │ │ │ ├── verticalAlign.test.ts │ │ │ │ └── wrapWords.test.ts │ │ │ ├── rect/ │ │ │ │ ├── area.test.ts │ │ │ │ ├── bottomLeft.test.ts │ │ │ │ ├── bottomRight.test.ts │ │ │ │ ├── copy.test.ts │ │ │ │ ├── crop.test.ts │ │ │ │ ├── empty.test.ts │ │ │ │ ├── equals.test.ts │ │ │ │ ├── intersects.test.ts │ │ │ │ ├── maxX.test.ts │ │ │ │ ├── maxY.test.ts │ │ │ │ └── partition.test.ts │ │ │ ├── run/ │ │ │ │ ├── add.test.ts │ │ │ │ ├── advanceWidth.test.ts │ │ │ │ ├── advanceWidthBetween.test.ts │ │ │ │ ├── append.test.ts │ │ │ │ ├── ascent.test.ts │ │ │ │ ├── concat.test.ts │ │ │ │ ├── descent.test.ts │ │ │ │ ├── dropLast.test.ts │ │ │ │ ├── empty.test.ts │ │ │ │ ├── filter.test.ts │ │ │ │ ├── flatten.test.ts │ │ │ │ ├── getFont.test.ts │ │ │ │ ├── glyphIndexAt.test.ts │ │ │ │ ├── height.test.ts │ │ │ │ ├── indexAtOffset.test.ts │ │ │ │ ├── insert.test.ts │ │ │ │ ├── isEmpty.test.ts │ │ │ │ ├── leadingOffset.test.ts │ │ │ │ ├── length.test.ts │ │ │ │ ├── lineGap.test.ts │ │ │ │ ├── offset.test.ts │ │ │ │ ├── omit.test.ts │ │ │ │ ├── prepend.test.ts │ │ │ │ ├── runIndexAt.test.ts │ │ │ │ ├── scale.test.ts │ │ │ │ ├── slice.test.ts │ │ │ │ ├── sort.test.ts │ │ │ │ ├── subtract.test.ts │ │ │ │ └── trailingOffset.test.ts │ │ │ └── utils/ │ │ │ ├── isNumber.test.ts │ │ │ └── stringFromCodePoints.test.ts │ │ └── tsconfig.json │ └── types/ │ ├── CHANGELOG.md │ ├── README.md │ ├── bookmark.d.ts │ ├── context.d.ts │ ├── font.d.ts │ ├── image.d.ts │ ├── index.d.ts │ ├── node.d.ts │ ├── package.json │ ├── page.d.ts │ ├── pdf.d.ts │ ├── primitive.d.ts │ ├── style.d.ts │ └── svg.d.ts ├── vitest.config.js └── vitest.workspace.js