postext 1.4.2 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +76 -202
- package/dist/__tests__/breakOpportunities.test.d.ts +2 -0
- package/dist/__tests__/breakOpportunities.test.d.ts.map +1 -0
- package/dist/__tests__/breakOpportunities.test.js +204 -0
- package/dist/__tests__/breakOpportunities.test.js.map +1 -0
- package/dist/__tests__/bundle.test.js +399 -1
- package/dist/__tests__/bundle.test.js.map +1 -1
- package/dist/__tests__/bundleLocaleAndBytes.test.d.ts +2 -0
- package/dist/__tests__/bundleLocaleAndBytes.test.d.ts.map +1 -0
- package/dist/__tests__/bundleLocaleAndBytes.test.js +177 -0
- package/dist/__tests__/bundleLocaleAndBytes.test.js.map +1 -0
- package/dist/__tests__/colorAlpha.test.d.ts +2 -0
- package/dist/__tests__/colorAlpha.test.d.ts.map +1 -0
- package/dist/__tests__/colorAlpha.test.js +87 -0
- package/dist/__tests__/colorAlpha.test.js.map +1 -0
- package/dist/__tests__/columnBalancing.test.js +88 -0
- package/dist/__tests__/columnBalancing.test.js.map +1 -1
- package/dist/__tests__/columnClip.test.js +20 -0
- package/dist/__tests__/columnClip.test.js.map +1 -1
- package/dist/__tests__/columnRuleBands.test.d.ts +2 -0
- package/dist/__tests__/columnRuleBands.test.d.ts.map +1 -0
- package/dist/__tests__/columnRuleBands.test.js +146 -0
- package/dist/__tests__/columnRuleBands.test.js.map +1 -0
- package/dist/__tests__/contentWarnings.test.d.ts +2 -0
- package/dist/__tests__/contentWarnings.test.d.ts.map +1 -0
- package/dist/__tests__/contentWarnings.test.js +219 -0
- package/dist/__tests__/contentWarnings.test.js.map +1 -0
- package/dist/__tests__/continuation.test.js +2 -1
- package/dist/__tests__/continuation.test.js.map +1 -1
- package/dist/__tests__/createLayout.test.js +18 -1
- package/dist/__tests__/createLayout.test.js.map +1 -1
- package/dist/__tests__/cropMarks.test.d.ts +2 -0
- package/dist/__tests__/cropMarks.test.d.ts.map +1 -0
- package/dist/__tests__/cropMarks.test.js +138 -0
- package/dist/__tests__/cropMarks.test.js.map +1 -0
- package/dist/__tests__/defaults/calloutStyles.test.js +30 -0
- package/dist/__tests__/defaults/calloutStyles.test.js.map +1 -1
- package/dist/__tests__/defaults/headingsBreakBefore.test.d.ts +2 -0
- package/dist/__tests__/defaults/headingsBreakBefore.test.d.ts.map +1 -0
- package/dist/__tests__/defaults/headingsBreakBefore.test.js +78 -0
- package/dist/__tests__/defaults/headingsBreakBefore.test.js.map +1 -0
- package/dist/__tests__/defaults/paragraphStyles.test.js +22 -0
- package/dist/__tests__/defaults/paragraphStyles.test.js.map +1 -1
- package/dist/__tests__/design/bleedClip.test.d.ts +2 -0
- package/dist/__tests__/design/bleedClip.test.d.ts.map +1 -0
- package/dist/__tests__/design/bleedClip.test.js +91 -0
- package/dist/__tests__/design/bleedClip.test.js.map +1 -0
- package/dist/__tests__/design/boxBorderInside.test.d.ts +2 -0
- package/dist/__tests__/design/boxBorderInside.test.d.ts.map +1 -0
- package/dist/__tests__/design/boxBorderInside.test.js +102 -0
- package/dist/__tests__/design/boxBorderInside.test.js.map +1 -0
- package/dist/__tests__/design/designLineHeight.test.d.ts +2 -0
- package/dist/__tests__/design/designLineHeight.test.d.ts.map +1 -0
- package/dist/__tests__/design/designLineHeight.test.js +108 -0
- package/dist/__tests__/design/designLineHeight.test.js.map +1 -0
- package/dist/__tests__/design/designText.test.d.ts +2 -0
- package/dist/__tests__/design/designText.test.d.ts.map +1 -0
- package/dist/__tests__/design/designText.test.js +331 -0
- package/dist/__tests__/design/designText.test.js.map +1 -0
- package/dist/__tests__/design/designTextJustify.test.d.ts +2 -0
- package/dist/__tests__/design/designTextJustify.test.d.ts.map +1 -0
- package/dist/__tests__/design/designTextJustify.test.js +119 -0
- package/dist/__tests__/design/designTextJustify.test.js.map +1 -0
- package/dist/__tests__/design/designTextNegativeTracking.test.d.ts +2 -0
- package/dist/__tests__/design/designTextNegativeTracking.test.d.ts.map +1 -0
- package/dist/__tests__/design/designTextNegativeTracking.test.js +95 -0
- package/dist/__tests__/design/designTextNegativeTracking.test.js.map +1 -0
- package/dist/__tests__/design/designTextRender.test.d.ts +2 -0
- package/dist/__tests__/design/designTextRender.test.d.ts.map +1 -0
- package/dist/__tests__/design/designTextRender.test.js +106 -0
- package/dist/__tests__/design/designTextRender.test.js.map +1 -0
- package/dist/__tests__/design/dropCap.test.d.ts +2 -0
- package/dist/__tests__/design/dropCap.test.d.ts.map +1 -0
- package/dist/__tests__/design/dropCap.test.js +205 -0
- package/dist/__tests__/design/dropCap.test.js.map +1 -0
- package/dist/__tests__/design/ellipsis.test.d.ts +2 -0
- package/dist/__tests__/design/ellipsis.test.d.ts.map +1 -0
- package/dist/__tests__/design/ellipsis.test.js +113 -0
- package/dist/__tests__/design/ellipsis.test.js.map +1 -0
- package/dist/__tests__/design/headingDesignClip.test.d.ts +2 -0
- package/dist/__tests__/design/headingDesignClip.test.d.ts.map +1 -0
- package/dist/__tests__/design/headingDesignClip.test.js +60 -0
- package/dist/__tests__/design/headingDesignClip.test.js.map +1 -0
- package/dist/__tests__/design/headingDesignSideChannel.test.d.ts +2 -0
- package/dist/__tests__/design/headingDesignSideChannel.test.d.ts.map +1 -0
- package/dist/__tests__/design/headingDesignSideChannel.test.js +187 -0
- package/dist/__tests__/design/headingDesignSideChannel.test.js.map +1 -0
- package/dist/__tests__/design/inColumnTitleBreak.test.d.ts +2 -0
- package/dist/__tests__/design/inColumnTitleBreak.test.d.ts.map +1 -0
- package/dist/__tests__/design/inColumnTitleBreak.test.js +60 -0
- package/dist/__tests__/design/inColumnTitleBreak.test.js.map +1 -0
- package/dist/__tests__/design/openerBottomAnchor.test.d.ts +2 -0
- package/dist/__tests__/design/openerBottomAnchor.test.d.ts.map +1 -0
- package/dist/__tests__/design/openerBottomAnchor.test.js +106 -0
- package/dist/__tests__/design/openerBottomAnchor.test.js.map +1 -0
- package/dist/__tests__/design/openerChapterNumber.test.d.ts +2 -0
- package/dist/__tests__/design/openerChapterNumber.test.d.ts.map +1 -0
- package/dist/__tests__/design/openerChapterNumber.test.js +163 -0
- package/dist/__tests__/design/openerChapterNumber.test.js.map +1 -0
- package/dist/__tests__/design/openerImageReserve.test.d.ts +2 -0
- package/dist/__tests__/design/openerImageReserve.test.d.ts.map +1 -0
- package/dist/__tests__/design/openerImageReserve.test.js +83 -0
- package/dist/__tests__/design/openerImageReserve.test.js.map +1 -0
- package/dist/__tests__/design/openerReserve.test.d.ts +2 -0
- package/dist/__tests__/design/openerReserve.test.d.ts.map +1 -0
- package/dist/__tests__/design/openerReserve.test.js +147 -0
- package/dist/__tests__/design/openerReserve.test.js.map +1 -0
- package/dist/__tests__/design/ruleDefaults.test.d.ts +2 -0
- package/dist/__tests__/design/ruleDefaults.test.d.ts.map +1 -0
- package/dist/__tests__/design/ruleDefaults.test.js +59 -0
- package/dist/__tests__/design/ruleDefaults.test.js.map +1 -0
- package/dist/__tests__/design/runningHeads.test.js +4 -2
- package/dist/__tests__/design/runningHeads.test.js.map +1 -1
- package/dist/__tests__/design/titleTextWrapped.test.d.ts +2 -0
- package/dist/__tests__/design/titleTextWrapped.test.d.ts.map +1 -0
- package/dist/__tests__/design/titleTextWrapped.test.js +258 -0
- package/dist/__tests__/design/titleTextWrapped.test.js.map +1 -0
- package/dist/__tests__/design/trackingAlignment.test.d.ts +2 -0
- package/dist/__tests__/design/trackingAlignment.test.d.ts.map +1 -0
- package/dist/__tests__/design/trackingAlignment.test.js +101 -0
- package/dist/__tests__/design/trackingAlignment.test.js.map +1 -0
- package/dist/__tests__/design/verticalAlignOverflow.test.d.ts +2 -0
- package/dist/__tests__/design/verticalAlignOverflow.test.d.ts.map +1 -0
- package/dist/__tests__/design/verticalAlignOverflow.test.js +68 -0
- package/dist/__tests__/design/verticalAlignOverflow.test.js.map +1 -0
- package/dist/__tests__/exports.test.js +24 -0
- package/dist/__tests__/exports.test.js.map +1 -1
- package/dist/__tests__/fontStack.test.d.ts +2 -0
- package/dist/__tests__/fontStack.test.d.ts.map +1 -0
- package/dist/__tests__/fontStack.test.js +100 -0
- package/dist/__tests__/fontStack.test.js.map +1 -0
- package/dist/__tests__/frontmatterValues.test.d.ts +2 -0
- package/dist/__tests__/frontmatterValues.test.d.ts.map +1 -0
- package/dist/__tests__/frontmatterValues.test.js +119 -0
- package/dist/__tests__/frontmatterValues.test.js.map +1 -0
- package/dist/__tests__/gradedRunt.test.d.ts +2 -0
- package/dist/__tests__/gradedRunt.test.d.ts.map +1 -0
- package/dist/__tests__/gradedRunt.test.js +66 -0
- package/dist/__tests__/gradedRunt.test.js.map +1 -0
- package/dist/__tests__/headingAlign.test.d.ts +2 -0
- package/dist/__tests__/headingAlign.test.d.ts.map +1 -0
- package/dist/__tests__/headingAlign.test.js +92 -0
- package/dist/__tests__/headingAlign.test.js.map +1 -0
- package/dist/__tests__/headingInlineMarks.test.d.ts +2 -0
- package/dist/__tests__/headingInlineMarks.test.d.ts.map +1 -0
- package/dist/__tests__/headingInlineMarks.test.js +126 -0
- package/dist/__tests__/headingInlineMarks.test.js.map +1 -0
- package/dist/__tests__/headingLetterSpacing.test.d.ts +2 -0
- package/dist/__tests__/headingLetterSpacing.test.d.ts.map +1 -0
- package/dist/__tests__/headingLetterSpacing.test.js +135 -0
- package/dist/__tests__/headingLetterSpacing.test.js.map +1 -0
- package/dist/__tests__/headingNumberPlaceholders.test.d.ts +2 -0
- package/dist/__tests__/headingNumberPlaceholders.test.d.ts.map +1 -0
- package/dist/__tests__/headingNumberPlaceholders.test.js +104 -0
- package/dist/__tests__/headingNumberPlaceholders.test.js.map +1 -0
- package/dist/__tests__/headingNumberingStyles.test.d.ts +2 -0
- package/dist/__tests__/headingNumberingStyles.test.d.ts.map +1 -0
- package/dist/__tests__/headingNumberingStyles.test.js +151 -0
- package/dist/__tests__/headingNumberingStyles.test.js.map +1 -0
- package/dist/__tests__/headingSourceTitle.test.d.ts +2 -0
- package/dist/__tests__/headingSourceTitle.test.d.ts.map +1 -0
- package/dist/__tests__/headingSourceTitle.test.js +35 -0
- package/dist/__tests__/headingSourceTitle.test.js.map +1 -0
- package/dist/__tests__/headingStyleBreakAfterPagebreak.test.d.ts +2 -0
- package/dist/__tests__/headingStyleBreakAfterPagebreak.test.d.ts.map +1 -0
- package/dist/__tests__/headingStyleBreakAfterPagebreak.test.js +52 -0
- package/dist/__tests__/headingStyleBreakAfterPagebreak.test.js.map +1 -0
- package/dist/__tests__/hiddenHeadings.test.d.ts +2 -0
- package/dist/__tests__/hiddenHeadings.test.d.ts.map +1 -0
- package/dist/__tests__/hiddenHeadings.test.js +137 -0
- package/dist/__tests__/hiddenHeadings.test.js.map +1 -0
- package/dist/__tests__/htmlHostReset.test.d.ts +2 -0
- package/dist/__tests__/htmlHostReset.test.d.ts.map +1 -0
- package/dist/__tests__/htmlHostReset.test.js +63 -0
- package/dist/__tests__/htmlHostReset.test.js.map +1 -0
- package/dist/__tests__/hyphenationLocale.test.d.ts +2 -0
- package/dist/__tests__/hyphenationLocale.test.d.ts.map +1 -0
- package/dist/__tests__/hyphenationLocale.test.js +143 -0
- package/dist/__tests__/hyphenationLocale.test.js.map +1 -0
- package/dist/__tests__/justifyTracking.test.d.ts +2 -0
- package/dist/__tests__/justifyTracking.test.d.ts.map +1 -0
- package/dist/__tests__/justifyTracking.test.js +217 -0
- package/dist/__tests__/justifyTracking.test.js.map +1 -0
- package/dist/__tests__/layoutWorkerClient.test.d.ts +2 -0
- package/dist/__tests__/layoutWorkerClient.test.d.ts.map +1 -0
- package/dist/__tests__/layoutWorkerClient.test.js +140 -0
- package/dist/__tests__/layoutWorkerClient.test.js.map +1 -0
- package/dist/__tests__/links.test.d.ts +2 -0
- package/dist/__tests__/links.test.d.ts.map +1 -0
- package/dist/__tests__/links.test.js +227 -0
- package/dist/__tests__/links.test.js.map +1 -0
- package/dist/__tests__/localisedStrings.test.d.ts +2 -0
- package/dist/__tests__/localisedStrings.test.d.ts.map +1 -0
- package/dist/__tests__/localisedStrings.test.js +118 -0
- package/dist/__tests__/localisedStrings.test.js.map +1 -0
- package/dist/__tests__/looseLines.test.d.ts +2 -0
- package/dist/__tests__/looseLines.test.d.ts.map +1 -0
- package/dist/__tests__/looseLines.test.js +72 -0
- package/dist/__tests__/looseLines.test.js.map +1 -0
- package/dist/__tests__/mainEntryReact.test.d.ts +2 -0
- package/dist/__tests__/mainEntryReact.test.d.ts.map +1 -0
- package/dist/__tests__/mainEntryReact.test.js +13 -0
- package/dist/__tests__/mainEntryReact.test.js.map +1 -0
- package/dist/__tests__/mathBundle.test.d.ts +2 -0
- package/dist/__tests__/mathBundle.test.d.ts.map +1 -0
- package/dist/__tests__/mathBundle.test.js +80 -0
- package/dist/__tests__/mathBundle.test.js.map +1 -0
- package/dist/__tests__/mathEngine.test.d.ts +2 -0
- package/dist/__tests__/mathEngine.test.d.ts.map +1 -0
- package/dist/__tests__/mathEngine.test.js +69 -0
- package/dist/__tests__/mathEngine.test.js.map +1 -0
- package/dist/__tests__/mathEngineInit.test.d.ts +2 -0
- package/dist/__tests__/mathEngineInit.test.d.ts.map +1 -0
- package/dist/__tests__/mathEngineInit.test.js +33 -0
- package/dist/__tests__/mathEngineInit.test.js.map +1 -0
- package/dist/__tests__/mathSize.test.d.ts +2 -0
- package/dist/__tests__/mathSize.test.d.ts.map +1 -0
- package/dist/__tests__/mathSize.test.js +168 -0
- package/dist/__tests__/mathSize.test.js.map +1 -0
- package/dist/__tests__/mathSizeMigration.test.d.ts +2 -0
- package/dist/__tests__/mathSizeMigration.test.d.ts.map +1 -0
- package/dist/__tests__/mathSizeMigration.test.js +188 -0
- package/dist/__tests__/mathSizeMigration.test.js.map +1 -0
- package/dist/__tests__/measureCache.test.js +148 -4
- package/dist/__tests__/measureCache.test.js.map +1 -1
- package/dist/__tests__/measureCacheKeepBreaks.test.d.ts +2 -0
- package/dist/__tests__/measureCacheKeepBreaks.test.d.ts.map +1 -0
- package/dist/__tests__/measureCacheKeepBreaks.test.js +59 -0
- package/dist/__tests__/measureCacheKeepBreaks.test.js.map +1 -0
- package/dist/__tests__/noBreakSpaces.test.d.ts +2 -0
- package/dist/__tests__/noBreakSpaces.test.d.ts.map +1 -0
- package/dist/__tests__/noBreakSpaces.test.js +208 -0
- package/dist/__tests__/noBreakSpaces.test.js.map +1 -0
- package/dist/__tests__/numberFormats.test.d.ts +2 -0
- package/dist/__tests__/numberFormats.test.d.ts.map +1 -0
- package/dist/__tests__/numberFormats.test.js +142 -0
- package/dist/__tests__/numberFormats.test.js.map +1 -0
- package/dist/__tests__/paletteEverywhere.test.d.ts +2 -0
- package/dist/__tests__/paletteEverywhere.test.d.ts.map +1 -0
- package/dist/__tests__/paletteEverywhere.test.js +228 -0
- package/dist/__tests__/paletteEverywhere.test.js.map +1 -0
- package/dist/__tests__/paragraphStyleIndent.test.d.ts +2 -0
- package/dist/__tests__/paragraphStyleIndent.test.d.ts.map +1 -0
- package/dist/__tests__/paragraphStyleIndent.test.js +91 -0
- package/dist/__tests__/paragraphStyleIndent.test.js.map +1 -0
- package/dist/__tests__/parse/attrQuoting.test.d.ts +2 -0
- package/dist/__tests__/parse/attrQuoting.test.d.ts.map +1 -0
- package/dist/__tests__/parse/attrQuoting.test.js +87 -0
- package/dist/__tests__/parse/attrQuoting.test.js.map +1 -0
- package/dist/__tests__/parse/codeSpans.test.d.ts +2 -0
- package/dist/__tests__/parse/codeSpans.test.d.ts.map +1 -0
- package/dist/__tests__/parse/codeSpans.test.js +31 -0
- package/dist/__tests__/parse/codeSpans.test.js.map +1 -0
- package/dist/__tests__/parse/intrawordUnderscore.test.d.ts +2 -0
- package/dist/__tests__/parse/intrawordUnderscore.test.d.ts.map +1 -0
- package/dist/__tests__/parse/intrawordUnderscore.test.js +69 -0
- package/dist/__tests__/parse/intrawordUnderscore.test.js.map +1 -0
- package/dist/__tests__/parse/scripts.test.js +4 -1
- package/dist/__tests__/parse/scripts.test.js.map +1 -1
- package/dist/__tests__/parts.test.js +103 -0
- package/dist/__tests__/parts.test.js.map +1 -1
- package/dist/__tests__/pipeline/balancingRecord.test.d.ts +2 -0
- package/dist/__tests__/pipeline/balancingRecord.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/balancingRecord.test.js +176 -0
- package/dist/__tests__/pipeline/balancingRecord.test.js.map +1 -0
- package/dist/__tests__/pipeline/blockquoteStyle.test.d.ts +2 -0
- package/dist/__tests__/pipeline/blockquoteStyle.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/blockquoteStyle.test.js +99 -0
- package/dist/__tests__/pipeline/blockquoteStyle.test.js.map +1 -0
- package/dist/__tests__/pipeline/calloutContinuation.test.d.ts +2 -0
- package/dist/__tests__/pipeline/calloutContinuation.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/calloutContinuation.test.js +133 -0
- package/dist/__tests__/pipeline/calloutContinuation.test.js.map +1 -0
- package/dist/__tests__/pipeline/calloutContinuationInset.test.d.ts +2 -0
- package/dist/__tests__/pipeline/calloutContinuationInset.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/calloutContinuationInset.test.js +116 -0
- package/dist/__tests__/pipeline/calloutContinuationInset.test.js.map +1 -0
- package/dist/__tests__/pipeline/calloutCornerWideIcon.test.d.ts +2 -0
- package/dist/__tests__/pipeline/calloutCornerWideIcon.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/calloutCornerWideIcon.test.js +69 -0
- package/dist/__tests__/pipeline/calloutCornerWideIcon.test.js.map +1 -0
- package/dist/__tests__/pipeline/calloutFloatMargins.test.d.ts +2 -0
- package/dist/__tests__/pipeline/calloutFloatMargins.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/calloutFloatMargins.test.js +104 -0
- package/dist/__tests__/pipeline/calloutFloatMargins.test.js.map +1 -0
- package/dist/__tests__/pipeline/calloutInlineResourceGap.test.d.ts +2 -0
- package/dist/__tests__/pipeline/calloutInlineResourceGap.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/calloutInlineResourceGap.test.js +148 -0
- package/dist/__tests__/pipeline/calloutInlineResourceGap.test.js.map +1 -0
- package/dist/__tests__/pipeline/calloutListColor.test.d.ts +2 -0
- package/dist/__tests__/pipeline/calloutListColor.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/calloutListColor.test.js +86 -0
- package/dist/__tests__/pipeline/calloutListColor.test.js.map +1 -0
- package/dist/__tests__/pipeline/calloutRaggedLines.test.d.ts +2 -0
- package/dist/__tests__/pipeline/calloutRaggedLines.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/calloutRaggedLines.test.js +65 -0
- package/dist/__tests__/pipeline/calloutRaggedLines.test.js.map +1 -0
- package/dist/__tests__/pipeline/calloutRuntTracking.test.d.ts +2 -0
- package/dist/__tests__/pipeline/calloutRuntTracking.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/calloutRuntTracking.test.js +84 -0
- package/dist/__tests__/pipeline/calloutRuntTracking.test.js.map +1 -0
- package/dist/__tests__/pipeline/calloutSplitMinLinesChild.test.d.ts +2 -0
- package/dist/__tests__/pipeline/calloutSplitMinLinesChild.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/calloutSplitMinLinesChild.test.js +187 -0
- package/dist/__tests__/pipeline/calloutSplitMinLinesChild.test.js.map +1 -0
- package/dist/__tests__/pipeline/calloutStripeRadius.test.d.ts +2 -0
- package/dist/__tests__/pipeline/calloutStripeRadius.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/calloutStripeRadius.test.js +127 -0
- package/dist/__tests__/pipeline/calloutStripeRadius.test.js.map +1 -0
- package/dist/__tests__/pipeline/calloutTitleLineHeight.test.d.ts +2 -0
- package/dist/__tests__/pipeline/calloutTitleLineHeight.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/calloutTitleLineHeight.test.js +81 -0
- package/dist/__tests__/pipeline/calloutTitleLineHeight.test.js.map +1 -0
- package/dist/__tests__/pipeline/calloutTypography.test.d.ts +2 -0
- package/dist/__tests__/pipeline/calloutTypography.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/calloutTypography.test.js +97 -0
- package/dist/__tests__/pipeline/calloutTypography.test.js.map +1 -0
- package/dist/__tests__/pipeline/capUnderHeadFloats.test.d.ts +2 -0
- package/dist/__tests__/pipeline/capUnderHeadFloats.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/capUnderHeadFloats.test.js +68 -0
- package/dist/__tests__/pipeline/capUnderHeadFloats.test.js.map +1 -0
- package/dist/__tests__/pipeline/captionAlign.test.d.ts +2 -0
- package/dist/__tests__/pipeline/captionAlign.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/captionAlign.test.js +99 -0
- package/dist/__tests__/pipeline/captionAlign.test.js.map +1 -0
- package/dist/__tests__/pipeline/chipPalette.test.d.ts +2 -0
- package/dist/__tests__/pipeline/chipPalette.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/chipPalette.test.js +80 -0
- package/dist/__tests__/pipeline/chipPalette.test.js.map +1 -0
- package/dist/__tests__/pipeline/chipVerticalPadding.test.d.ts +2 -0
- package/dist/__tests__/pipeline/chipVerticalPadding.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/chipVerticalPadding.test.js +66 -0
- package/dist/__tests__/pipeline/chipVerticalPadding.test.js.map +1 -0
- package/dist/__tests__/pipeline/chips.test.js +32 -0
- package/dist/__tests__/pipeline/chips.test.js.map +1 -1
- package/dist/__tests__/pipeline/closingBoxLever.test.d.ts +2 -0
- package/dist/__tests__/pipeline/closingBoxLever.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/closingBoxLever.test.js +68 -0
- package/dist/__tests__/pipeline/closingBoxLever.test.js.map +1 -0
- package/dist/__tests__/pipeline/closingBoxOrder.test.d.ts +2 -0
- package/dist/__tests__/pipeline/closingBoxOrder.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/closingBoxOrder.test.js +87 -0
- package/dist/__tests__/pipeline/closingBoxOrder.test.js.map +1 -0
- package/dist/__tests__/pipeline/closingPageAfterFloat.test.d.ts +2 -0
- package/dist/__tests__/pipeline/closingPageAfterFloat.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/closingPageAfterFloat.test.js +159 -0
- package/dist/__tests__/pipeline/closingPageAfterFloat.test.js.map +1 -0
- package/dist/__tests__/pipeline/closingPageAfterFloatPage.test.d.ts +2 -0
- package/dist/__tests__/pipeline/closingPageAfterFloatPage.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/closingPageAfterFloatPage.test.js +90 -0
- package/dist/__tests__/pipeline/closingPageAfterFloatPage.test.js.map +1 -0
- package/dist/__tests__/pipeline/colonBalancing.test.js +19 -15
- package/dist/__tests__/pipeline/colonBalancing.test.js.map +1 -1
- package/dist/__tests__/pipeline/colonListRoom.test.d.ts +2 -0
- package/dist/__tests__/pipeline/colonListRoom.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/colonListRoom.test.js +127 -0
- package/dist/__tests__/pipeline/colonListRoom.test.js.map +1 -0
- package/dist/__tests__/pipeline/columnWidthRebreak.test.d.ts +2 -0
- package/dist/__tests__/pipeline/columnWidthRebreak.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/columnWidthRebreak.test.js +124 -0
- package/dist/__tests__/pipeline/columnWidthRebreak.test.js.map +1 -0
- package/dist/__tests__/pipeline/compoundBreaks.test.d.ts +2 -0
- package/dist/__tests__/pipeline/compoundBreaks.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/compoundBreaks.test.js +368 -0
- package/dist/__tests__/pipeline/compoundBreaks.test.js.map +1 -0
- package/dist/__tests__/pipeline/continuationUnderFloat.test.d.ts +2 -0
- package/dist/__tests__/pipeline/continuationUnderFloat.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/continuationUnderFloat.test.js +64 -0
- package/dist/__tests__/pipeline/continuationUnderFloat.test.js.map +1 -0
- package/dist/__tests__/pipeline/crossChapterRef.test.d.ts +2 -0
- package/dist/__tests__/pipeline/crossChapterRef.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/crossChapterRef.test.js +124 -0
- package/dist/__tests__/pipeline/crossChapterRef.test.js.map +1 -0
- package/dist/__tests__/pipeline/dashBreaks.test.d.ts +2 -0
- package/dist/__tests__/pipeline/dashBreaks.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/dashBreaks.test.js +358 -0
- package/dist/__tests__/pipeline/dashBreaks.test.js.map +1 -0
- package/dist/__tests__/pipeline/defaultOpenerPaint.test.d.ts +2 -0
- package/dist/__tests__/pipeline/defaultOpenerPaint.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/defaultOpenerPaint.test.js +128 -0
- package/dist/__tests__/pipeline/defaultOpenerPaint.test.js.map +1 -0
- package/dist/__tests__/pipeline/displayMathFlow.test.d.ts +2 -0
- package/dist/__tests__/pipeline/displayMathFlow.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/displayMathFlow.test.js +156 -0
- package/dist/__tests__/pipeline/displayMathFlow.test.js.map +1 -0
- package/dist/__tests__/pipeline/emptyResourceTemplate.test.d.ts +2 -0
- package/dist/__tests__/pipeline/emptyResourceTemplate.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/emptyResourceTemplate.test.js +66 -0
- package/dist/__tests__/pipeline/emptyResourceTemplate.test.js.map +1 -0
- package/dist/__tests__/pipeline/figureBodyAlign.test.d.ts +2 -0
- package/dist/__tests__/pipeline/figureBodyAlign.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/figureBodyAlign.test.js +92 -0
- package/dist/__tests__/pipeline/figureBodyAlign.test.js.map +1 -0
- package/dist/__tests__/pipeline/floatAfterCitingLine.test.d.ts +2 -0
- package/dist/__tests__/pipeline/floatAfterCitingLine.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/floatAfterCitingLine.test.js +217 -0
- package/dist/__tests__/pipeline/floatAfterCitingLine.test.js.map +1 -0
- package/dist/__tests__/pipeline/floatFirstSlot.test.js +15 -0
- package/dist/__tests__/pipeline/floatFirstSlot.test.js.map +1 -1
- package/dist/__tests__/pipeline/floatOverInlineResource.test.d.ts +2 -0
- package/dist/__tests__/pipeline/floatOverInlineResource.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/floatOverInlineResource.test.js +75 -0
- package/dist/__tests__/pipeline/floatOverInlineResource.test.js.map +1 -0
- package/dist/__tests__/pipeline/floatPlacementRules.test.d.ts +2 -0
- package/dist/__tests__/pipeline/floatPlacementRules.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/floatPlacementRules.test.js +177 -0
- package/dist/__tests__/pipeline/floatPlacementRules.test.js.map +1 -0
- package/dist/__tests__/pipeline/floatSlots.test.js +35 -1
- package/dist/__tests__/pipeline/floatSlots.test.js.map +1 -1
- package/dist/__tests__/pipeline/hardHyphenBreaks.test.d.ts +2 -0
- package/dist/__tests__/pipeline/hardHyphenBreaks.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/hardHyphenBreaks.test.js +165 -0
- package/dist/__tests__/pipeline/hardHyphenBreaks.test.js.map +1 -0
- package/dist/__tests__/pipeline/headingDesignCuts.test.d.ts +2 -0
- package/dist/__tests__/pipeline/headingDesignCuts.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/headingDesignCuts.test.js +96 -0
- package/dist/__tests__/pipeline/headingDesignCuts.test.js.map +1 -0
- package/dist/__tests__/pipeline/headingSnapPerLevel.test.d.ts +2 -0
- package/dist/__tests__/pipeline/headingSnapPerLevel.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/headingSnapPerLevel.test.js +97 -0
- package/dist/__tests__/pipeline/headingSnapPerLevel.test.js.map +1 -0
- package/dist/__tests__/pipeline/headingSplitOrphans.test.d.ts +2 -0
- package/dist/__tests__/pipeline/headingSplitOrphans.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/headingSplitOrphans.test.js +134 -0
- package/dist/__tests__/pipeline/headingSplitOrphans.test.js.map +1 -0
- package/dist/__tests__/pipeline/hyphenAcrossColumns.test.d.ts +2 -0
- package/dist/__tests__/pipeline/hyphenAcrossColumns.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/hyphenAcrossColumns.test.js +232 -0
- package/dist/__tests__/pipeline/hyphenAcrossColumns.test.js.map +1 -0
- package/dist/__tests__/pipeline/indentAfterOutOfFlow.test.d.ts +2 -0
- package/dist/__tests__/pipeline/indentAfterOutOfFlow.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/indentAfterOutOfFlow.test.js +93 -0
- package/dist/__tests__/pipeline/indentAfterOutOfFlow.test.js.map +1 -0
- package/dist/__tests__/pipeline/inlineFigureSpace.test.d.ts +2 -0
- package/dist/__tests__/pipeline/inlineFigureSpace.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/inlineFigureSpace.test.js +195 -0
- package/dist/__tests__/pipeline/inlineFigureSpace.test.js.map +1 -0
- package/dist/__tests__/pipeline/lineSourceEdges.test.d.ts +2 -0
- package/dist/__tests__/pipeline/lineSourceEdges.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/lineSourceEdges.test.js +143 -0
- package/dist/__tests__/pipeline/lineSourceEdges.test.js.map +1 -0
- package/dist/__tests__/pipeline/lineSourceRanges.test.d.ts +2 -0
- package/dist/__tests__/pipeline/lineSourceRanges.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/lineSourceRanges.test.js +96 -0
- package/dist/__tests__/pipeline/lineSourceRanges.test.js.map +1 -0
- package/dist/__tests__/pipeline/listTopSnap.test.d.ts +2 -0
- package/dist/__tests__/pipeline/listTopSnap.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/listTopSnap.test.js +90 -0
- package/dist/__tests__/pipeline/listTopSnap.test.js.map +1 -0
- package/dist/__tests__/pipeline/looseParagraphLimit.test.d.ts +2 -0
- package/dist/__tests__/pipeline/looseParagraphLimit.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/looseParagraphLimit.test.js +63 -0
- package/dist/__tests__/pipeline/looseParagraphLimit.test.js.map +1 -0
- package/dist/__tests__/pipeline/nestedListSpacing.test.d.ts +2 -0
- package/dist/__tests__/pipeline/nestedListSpacing.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/nestedListSpacing.test.js +62 -0
- package/dist/__tests__/pipeline/nestedListSpacing.test.js.map +1 -0
- package/dist/__tests__/pipeline/openerColumnStarts.test.d.ts +2 -0
- package/dist/__tests__/pipeline/openerColumnStarts.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/openerColumnStarts.test.js +189 -0
- package/dist/__tests__/pipeline/openerColumnStarts.test.js.map +1 -0
- package/dist/__tests__/pipeline/openerFillsPage.test.d.ts +2 -0
- package/dist/__tests__/pipeline/openerFillsPage.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/openerFillsPage.test.js +133 -0
- package/dist/__tests__/pipeline/openerFillsPage.test.js.map +1 -0
- package/dist/__tests__/pipeline/openerTallerThanColumn.test.d.ts +2 -0
- package/dist/__tests__/pipeline/openerTallerThanColumn.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/openerTallerThanColumn.test.js +139 -0
- package/dist/__tests__/pipeline/openerTallerThanColumn.test.js.map +1 -0
- package/dist/__tests__/pipeline/orderedNumberWidth.test.d.ts +2 -0
- package/dist/__tests__/pipeline/orderedNumberWidth.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/orderedNumberWidth.test.js +69 -0
- package/dist/__tests__/pipeline/orderedNumberWidth.test.js.map +1 -0
- package/dist/__tests__/pipeline/pageSpanHeadingWidth.test.d.ts +2 -0
- package/dist/__tests__/pipeline/pageSpanHeadingWidth.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/pageSpanHeadingWidth.test.js +74 -0
- package/dist/__tests__/pipeline/pageSpanHeadingWidth.test.js.map +1 -0
- package/dist/__tests__/pipeline/paragraphContainerTail.test.d.ts +2 -0
- package/dist/__tests__/pipeline/paragraphContainerTail.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/paragraphContainerTail.test.js +218 -0
- package/dist/__tests__/pipeline/paragraphContainerTail.test.js.map +1 -0
- package/dist/__tests__/pipeline/paragraphStyleFaces.test.d.ts +2 -0
- package/dist/__tests__/pipeline/paragraphStyleFaces.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/paragraphStyleFaces.test.js +121 -0
- package/dist/__tests__/pipeline/paragraphStyleFaces.test.js.map +1 -0
- package/dist/__tests__/pipeline/paragraphStyles.test.js +85 -0
- package/dist/__tests__/pipeline/paragraphStyles.test.js.map +1 -1
- package/dist/__tests__/pipeline/raggedOptimal.test.d.ts +2 -0
- package/dist/__tests__/pipeline/raggedOptimal.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/raggedOptimal.test.js +231 -0
- package/dist/__tests__/pipeline/raggedOptimal.test.js.map +1 -0
- package/dist/__tests__/pipeline/resolvedPaletteCopy.test.d.ts +2 -0
- package/dist/__tests__/pipeline/resolvedPaletteCopy.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/resolvedPaletteCopy.test.js +68 -0
- package/dist/__tests__/pipeline/resolvedPaletteCopy.test.js.map +1 -0
- package/dist/__tests__/pipeline/resourceNumberingRules.test.d.ts +2 -0
- package/dist/__tests__/pipeline/resourceNumberingRules.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/resourceNumberingRules.test.js +103 -0
- package/dist/__tests__/pipeline/resourceNumberingRules.test.js.map +1 -0
- package/dist/__tests__/pipeline/sectionPageOwnership.test.d.ts +2 -0
- package/dist/__tests__/pipeline/sectionPageOwnership.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/sectionPageOwnership.test.js +89 -0
- package/dist/__tests__/pipeline/sectionPageOwnership.test.js.map +1 -0
- package/dist/__tests__/pipeline/sectionPaletteSharedBase.test.d.ts +2 -0
- package/dist/__tests__/pipeline/sectionPaletteSharedBase.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/sectionPaletteSharedBase.test.js +278 -0
- package/dist/__tests__/pipeline/sectionPaletteSharedBase.test.js.map +1 -0
- package/dist/__tests__/pipeline/sectionPaletteTables.test.d.ts +2 -0
- package/dist/__tests__/pipeline/sectionPaletteTables.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/sectionPaletteTables.test.js +104 -0
- package/dist/__tests__/pipeline/sectionPaletteTables.test.js.map +1 -0
- package/dist/__tests__/pipeline/sideBoxAtColumnEnd.test.d.ts +2 -0
- package/dist/__tests__/pipeline/sideBoxAtColumnEnd.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/sideBoxAtColumnEnd.test.js +176 -0
- package/dist/__tests__/pipeline/sideBoxAtColumnEnd.test.js.map +1 -0
- package/dist/__tests__/pipeline/sideColumnPercent.test.d.ts +2 -0
- package/dist/__tests__/pipeline/sideColumnPercent.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/sideColumnPercent.test.js +114 -0
- package/dist/__tests__/pipeline/sideColumnPercent.test.js.map +1 -0
- package/dist/__tests__/pipeline/snippetDollarEscape.test.d.ts +2 -0
- package/dist/__tests__/pipeline/snippetDollarEscape.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/snippetDollarEscape.test.js +112 -0
- package/dist/__tests__/pipeline/snippetDollarEscape.test.js.map +1 -0
- package/dist/__tests__/pipeline/snippetLineBreaks.test.d.ts +2 -0
- package/dist/__tests__/pipeline/snippetLineBreaks.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/snippetLineBreaks.test.js +178 -0
- package/dist/__tests__/pipeline/snippetLineBreaks.test.js.map +1 -0
- package/dist/__tests__/pipeline/spanCutUnderColumnFloat.test.d.ts +2 -0
- package/dist/__tests__/pipeline/spanCutUnderColumnFloat.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/spanCutUnderColumnFloat.test.js +90 -0
- package/dist/__tests__/pipeline/spanCutUnderColumnFloat.test.js.map +1 -0
- package/dist/__tests__/pipeline/splitBoxCappedBand.test.d.ts +2 -0
- package/dist/__tests__/pipeline/splitBoxCappedBand.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/splitBoxCappedBand.test.js +64 -0
- package/dist/__tests__/pipeline/splitBoxCappedBand.test.js.map +1 -0
- package/dist/__tests__/pipeline/tableCellNoBreakSpaces.test.d.ts +2 -0
- package/dist/__tests__/pipeline/tableCellNoBreakSpaces.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/tableCellNoBreakSpaces.test.js +97 -0
- package/dist/__tests__/pipeline/tableCellNoBreakSpaces.test.js.map +1 -0
- package/dist/__tests__/pipeline/tableHeaderTracking.test.d.ts +2 -0
- package/dist/__tests__/pipeline/tableHeaderTracking.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/tableHeaderTracking.test.js +139 -0
- package/dist/__tests__/pipeline/tableHeaderTracking.test.js.map +1 -0
- package/dist/__tests__/pipeline/tableSplitTextRoom.test.d.ts +2 -0
- package/dist/__tests__/pipeline/tableSplitTextRoom.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/tableSplitTextRoom.test.js +90 -0
- package/dist/__tests__/pipeline/tableSplitTextRoom.test.js.map +1 -0
- package/dist/__tests__/pipeline/tableStyles.test.js +94 -1
- package/dist/__tests__/pipeline/tableStyles.test.js.map +1 -1
- package/dist/__tests__/pipeline/tallParagraphShortColumn.test.d.ts +2 -0
- package/dist/__tests__/pipeline/tallParagraphShortColumn.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/tallParagraphShortColumn.test.js +79 -0
- package/dist/__tests__/pipeline/tallParagraphShortColumn.test.js.map +1 -0
- package/dist/__tests__/pipeline/textFaces.test.d.ts +2 -0
- package/dist/__tests__/pipeline/textFaces.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/textFaces.test.js +258 -0
- package/dist/__tests__/pipeline/textFaces.test.js.map +1 -0
- package/dist/__tests__/pipeline/trailingBand.test.js +29 -0
- package/dist/__tests__/pipeline/trailingBand.test.js.map +1 -1
- package/dist/__tests__/pipeline/trailingCapHeading.test.d.ts +2 -0
- package/dist/__tests__/pipeline/trailingCapHeading.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/trailingCapHeading.test.js +69 -0
- package/dist/__tests__/pipeline/trailingCapHeading.test.js.map +1 -0
- package/dist/__tests__/pipeline/trailingCapOverflow.test.d.ts +2 -0
- package/dist/__tests__/pipeline/trailingCapOverflow.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline/trailingCapOverflow.test.js +116 -0
- package/dist/__tests__/pipeline/trailingCapOverflow.test.js.map +1 -0
- package/dist/__tests__/placeholders.test.js +100 -2
- package/dist/__tests__/placeholders.test.js.map +1 -1
- package/dist/__tests__/punctuationGlue.test.d.ts +2 -0
- package/dist/__tests__/punctuationGlue.test.d.ts.map +1 -0
- package/dist/__tests__/punctuationGlue.test.js +165 -0
- package/dist/__tests__/punctuationGlue.test.js.map +1 -0
- package/dist/__tests__/raggedHyphenation.test.d.ts +2 -0
- package/dist/__tests__/raggedHyphenation.test.d.ts.map +1 -0
- package/dist/__tests__/raggedHyphenation.test.js +184 -0
- package/dist/__tests__/raggedHyphenation.test.js.map +1 -0
- package/dist/__tests__/renderWarnings.test.d.ts +2 -0
- package/dist/__tests__/renderWarnings.test.d.ts.map +1 -0
- package/dist/__tests__/renderWarnings.test.js +72 -0
- package/dist/__tests__/renderWarnings.test.js.map +1 -0
- package/dist/__tests__/resolvedLocale.test.d.ts +2 -0
- package/dist/__tests__/resolvedLocale.test.d.ts.map +1 -0
- package/dist/__tests__/resolvedLocale.test.js +51 -0
- package/dist/__tests__/resolvedLocale.test.js.map +1 -0
- package/dist/__tests__/runningChapter.test.d.ts +2 -0
- package/dist/__tests__/runningChapter.test.d.ts.map +1 -0
- package/dist/__tests__/runningChapter.test.js +161 -0
- package/dist/__tests__/runningChapter.test.js.map +1 -0
- package/dist/__tests__/runtFixStretchLimit.test.d.ts +2 -0
- package/dist/__tests__/runtFixStretchLimit.test.d.ts.map +1 -0
- package/dist/__tests__/runtFixStretchLimit.test.js +145 -0
- package/dist/__tests__/runtFixStretchLimit.test.js.map +1 -0
- package/dist/__tests__/scriptStacking.test.d.ts +2 -0
- package/dist/__tests__/scriptStacking.test.d.ts.map +1 -0
- package/dist/__tests__/scriptStacking.test.js +331 -0
- package/dist/__tests__/scriptStacking.test.js.map +1 -0
- package/dist/__tests__/sectionPaletteFlow.test.d.ts +2 -0
- package/dist/__tests__/sectionPaletteFlow.test.d.ts.map +1 -0
- package/dist/__tests__/sectionPaletteFlow.test.js +51 -0
- package/dist/__tests__/sectionPaletteFlow.test.js.map +1 -0
- package/dist/__tests__/singleInk.test.js +64 -2
- package/dist/__tests__/singleInk.test.js.map +1 -1
- package/dist/__tests__/singleInkRender.test.d.ts +2 -0
- package/dist/__tests__/singleInkRender.test.d.ts.map +1 -0
- package/dist/__tests__/singleInkRender.test.js +396 -0
- package/dist/__tests__/singleInkRender.test.js.map +1 -0
- package/dist/__tests__/spaceDirective.test.js +75 -0
- package/dist/__tests__/spaceDirective.test.js.map +1 -1
- package/dist/__tests__/table/model.test.js +124 -1
- package/dist/__tests__/table/model.test.js.map +1 -1
- package/dist/__tests__/tableFillSeams.test.d.ts +2 -0
- package/dist/__tests__/tableFillSeams.test.d.ts.map +1 -0
- package/dist/__tests__/tableFillSeams.test.js +180 -0
- package/dist/__tests__/tableFillSeams.test.js.map +1 -0
- package/dist/__tests__/toc.test.js +23 -2
- package/dist/__tests__/toc.test.js.map +1 -1
- package/dist/__tests__/tocLeaderKerning.test.d.ts +2 -0
- package/dist/__tests__/tocLeaderKerning.test.d.ts.map +1 -0
- package/dist/__tests__/tocLeaderKerning.test.js +83 -0
- package/dist/__tests__/tocLeaderKerning.test.js.map +1 -0
- package/dist/__tests__/tocNumberBaseline.test.d.ts +2 -0
- package/dist/__tests__/tocNumberBaseline.test.d.ts.map +1 -0
- package/dist/__tests__/tocNumberBaseline.test.js +90 -0
- package/dist/__tests__/tocNumberBaseline.test.js.map +1 -0
- package/dist/__tests__/tocPartsHeight.test.d.ts +2 -0
- package/dist/__tests__/tocPartsHeight.test.d.ts.map +1 -0
- package/dist/__tests__/tocPartsHeight.test.js +41 -0
- package/dist/__tests__/tocPartsHeight.test.js.map +1 -0
- package/dist/__tests__/trackedLineAlign.test.d.ts +2 -0
- package/dist/__tests__/trackedLineAlign.test.d.ts.map +1 -0
- package/dist/__tests__/trackedLineAlign.test.js +96 -0
- package/dist/__tests__/trackedLineAlign.test.js.map +1 -0
- package/dist/bundle/adapters.d.ts +10 -3
- package/dist/bundle/adapters.d.ts.map +1 -1
- package/dist/bundle/adapters.js +13 -5
- package/dist/bundle/adapters.js.map +1 -1
- package/dist/bundle/api.d.ts +32 -0
- package/dist/bundle/api.d.ts.map +1 -1
- package/dist/bundle/api.js +12 -2
- package/dist/bundle/api.js.map +1 -1
- package/dist/bundle/book.d.ts +6 -1
- package/dist/bundle/book.d.ts.map +1 -1
- package/dist/bundle/book.js +89 -17
- package/dist/bundle/book.js.map +1 -1
- package/dist/bundle/codec.d.ts +87 -3
- package/dist/bundle/codec.d.ts.map +1 -1
- package/dist/bundle/codec.js +193 -13
- package/dist/bundle/codec.js.map +1 -1
- package/dist/bundle/configVersion.d.ts +295 -0
- package/dist/bundle/configVersion.d.ts.map +1 -0
- package/dist/bundle/configVersion.js +788 -0
- package/dist/bundle/configVersion.js.map +1 -0
- package/dist/bundle/index.d.ts +6 -4
- package/dist/bundle/index.d.ts.map +1 -1
- package/dist/bundle/index.js +2 -1
- package/dist/bundle/index.js.map +1 -1
- package/dist/bundle/manifest.d.ts +19 -5
- package/dist/bundle/manifest.d.ts.map +1 -1
- package/dist/bundle/manifest.js +53 -21
- package/dist/bundle/manifest.js.map +1 -1
- package/dist/bundle/types.d.ts +19 -0
- package/dist/bundle/types.d.ts.map +1 -1
- package/dist/bundle/zip.d.ts +14 -1
- package/dist/bundle/zip.d.ts.map +1 -1
- package/dist/bundle/zip.js +13 -2
- package/dist/bundle/zip.js.map +1 -1
- package/dist/canvas-backend/blockRender.d.ts +3 -1
- package/dist/canvas-backend/blockRender.d.ts.map +1 -1
- package/dist/canvas-backend/blockRender.js +27 -17
- package/dist/canvas-backend/blockRender.js.map +1 -1
- package/dist/canvas-backend/decorations.d.ts.map +1 -1
- package/dist/canvas-backend/decorations.js +6 -36
- package/dist/canvas-backend/decorations.js.map +1 -1
- package/dist/canvas-backend/headerFooter.d.ts +3 -1
- package/dist/canvas-backend/headerFooter.d.ts.map +1 -1
- package/dist/canvas-backend/headerFooter.js +85 -22
- package/dist/canvas-backend/headerFooter.js.map +1 -1
- package/dist/canvas-backend/index.d.ts +17 -3
- package/dist/canvas-backend/index.d.ts.map +1 -1
- package/dist/canvas-backend/index.js +75 -14
- package/dist/canvas-backend/index.js.map +1 -1
- package/dist/canvas-backend/renderResourceBlock.d.ts +45 -5
- package/dist/canvas-backend/renderResourceBlock.d.ts.map +1 -1
- package/dist/canvas-backend/renderResourceBlock.js +133 -22
- package/dist/canvas-backend/renderResourceBlock.js.map +1 -1
- package/dist/columnClip.d.ts +13 -2
- package/dist/columnClip.d.ts.map +1 -1
- package/dist/columnClip.js +37 -4
- package/dist/columnClip.js.map +1 -1
- package/dist/columnRule.d.ts +7 -2
- package/dist/columnRule.d.ts.map +1 -1
- package/dist/columnRule.js +27 -2
- package/dist/columnRule.js.map +1 -1
- package/dist/configWarnings.d.ts +26 -0
- package/dist/configWarnings.d.ts.map +1 -0
- package/dist/configWarnings.js +223 -0
- package/dist/configWarnings.js.map +1 -0
- package/dist/createLayout.d.ts +16 -1
- package/dist/createLayout.d.ts.map +1 -1
- package/dist/createLayout.js +25 -22
- package/dist/createLayout.js.map +1 -1
- package/dist/cropMarks.d.ts +28 -0
- package/dist/cropMarks.d.ts.map +1 -0
- package/dist/cropMarks.js +40 -0
- package/dist/cropMarks.js.map +1 -0
- package/dist/defaults/bodyText.d.ts +12 -2
- package/dist/defaults/bodyText.d.ts.map +1 -1
- package/dist/defaults/bodyText.js +132 -7
- package/dist/defaults/bodyText.js.map +1 -1
- package/dist/defaults/calloutStyles.d.ts +13 -2
- package/dist/defaults/calloutStyles.d.ts.map +1 -1
- package/dist/defaults/calloutStyles.js +64 -4
- package/dist/defaults/calloutStyles.js.map +1 -1
- package/dist/defaults/chipStyles.d.ts +4 -3
- package/dist/defaults/chipStyles.d.ts.map +1 -1
- package/dist/defaults/chipStyles.js +11 -3
- package/dist/defaults/chipStyles.js.map +1 -1
- package/dist/defaults/headerFooter.d.ts +11 -1
- package/dist/defaults/headerFooter.d.ts.map +1 -1
- package/dist/defaults/headerFooter.js +52 -4
- package/dist/defaults/headerFooter.js.map +1 -1
- package/dist/defaults/headingStyles.d.ts +7 -3
- package/dist/defaults/headingStyles.d.ts.map +1 -1
- package/dist/defaults/headingStyles.js +34 -6
- package/dist/defaults/headingStyles.js.map +1 -1
- package/dist/defaults/headings.d.ts +10 -2
- package/dist/defaults/headings.d.ts.map +1 -1
- package/dist/defaults/headings.js +79 -16
- package/dist/defaults/headings.js.map +1 -1
- package/dist/defaults/index.d.ts +1 -1
- package/dist/defaults/index.d.ts.map +1 -1
- package/dist/defaults/index.js +1 -1
- package/dist/defaults/index.js.map +1 -1
- package/dist/defaults/layout.d.ts.map +1 -1
- package/dist/defaults/layout.js +27 -0
- package/dist/defaults/layout.js.map +1 -1
- package/dist/defaults/lists-shared.d.ts +2 -0
- package/dist/defaults/lists-shared.d.ts.map +1 -1
- package/dist/defaults/lists-shared.js +2 -0
- package/dist/defaults/lists-shared.js.map +1 -1
- package/dist/defaults/math.d.ts.map +1 -1
- package/dist/defaults/math.js +12 -0
- package/dist/defaults/math.js.map +1 -1
- package/dist/defaults/orderedLists.d.ts +7 -1
- package/dist/defaults/orderedLists.d.ts.map +1 -1
- package/dist/defaults/orderedLists.js +30 -4
- package/dist/defaults/orderedLists.js.map +1 -1
- package/dist/defaults/page.d.ts.map +1 -1
- package/dist/defaults/page.js +7 -2
- package/dist/defaults/page.js.map +1 -1
- package/dist/defaults/paragraphStyles.d.ts +2 -1
- package/dist/defaults/paragraphStyles.d.ts.map +1 -1
- package/dist/defaults/paragraphStyles.js +26 -1
- package/dist/defaults/paragraphStyles.js.map +1 -1
- package/dist/defaults/resourceTypes.d.ts +5 -1
- package/dist/defaults/resourceTypes.d.ts.map +1 -1
- package/dist/defaults/resourceTypes.js +37 -6
- package/dist/defaults/resourceTypes.js.map +1 -1
- package/dist/defaults/shared.d.ts +10 -0
- package/dist/defaults/shared.d.ts.map +1 -1
- package/dist/defaults/shared.js +79 -0
- package/dist/defaults/shared.js.map +1 -1
- package/dist/defaults/tableStyle.d.ts +1 -1
- package/dist/defaults/tableStyle.d.ts.map +1 -1
- package/dist/defaults/tableStyle.js +40 -6
- package/dist/defaults/tableStyle.js.map +1 -1
- package/dist/defaults/toc.d.ts +2 -1
- package/dist/defaults/toc.d.ts.map +1 -1
- package/dist/defaults/toc.js +2 -1
- package/dist/defaults/toc.js.map +1 -1
- package/dist/defaults/unorderedLists.d.ts +1 -0
- package/dist/defaults/unorderedLists.d.ts.map +1 -1
- package/dist/defaults/unorderedLists.js +7 -1
- package/dist/defaults/unorderedLists.js.map +1 -1
- package/dist/design/layout.d.ts +41 -3
- package/dist/design/layout.d.ts.map +1 -1
- package/dist/design/layout.js +322 -90
- package/dist/design/layout.js.map +1 -1
- package/dist/design/placeholders.d.ts +39 -4
- package/dist/design/placeholders.d.ts.map +1 -1
- package/dist/design/placeholders.js +61 -11
- package/dist/design/placeholders.js.map +1 -1
- package/dist/design/richText.d.ts +110 -0
- package/dist/design/richText.d.ts.map +1 -0
- package/dist/design/richText.js +458 -0
- package/dist/design/richText.js.map +1 -0
- package/dist/frontmatter.d.ts +14 -0
- package/dist/frontmatter.d.ts.map +1 -1
- package/dist/frontmatter.js +61 -0
- package/dist/frontmatter.js.map +1 -1
- package/dist/html-backend.d.ts +60 -2
- package/dist/html-backend.d.ts.map +1 -1
- package/dist/html-backend.js +317 -62
- package/dist/html-backend.js.map +1 -1
- package/dist/hyphenate.d.ts +30 -4
- package/dist/hyphenate.d.ts.map +1 -1
- package/dist/hyphenate.js +71 -5
- package/dist/hyphenate.js.map +1 -1
- package/dist/index.d.ts +28 -19
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -11
- package/dist/index.js.map +1 -1
- package/dist/knuthPlass/breakpoints.d.ts +21 -0
- package/dist/knuthPlass/breakpoints.d.ts.map +1 -1
- package/dist/knuthPlass/breakpoints.js +205 -14
- package/dist/knuthPlass/breakpoints.js.map +1 -1
- package/dist/knuthPlass/constants.d.ts +15 -0
- package/dist/knuthPlass/constants.d.ts.map +1 -1
- package/dist/knuthPlass/constants.js +15 -0
- package/dist/knuthPlass/constants.js.map +1 -1
- package/dist/knuthPlass/pretextAdapter.d.ts +23 -2
- package/dist/knuthPlass/pretextAdapter.d.ts.map +1 -1
- package/dist/knuthPlass/pretextAdapter.js +95 -9
- package/dist/knuthPlass/pretextAdapter.js.map +1 -1
- package/dist/knuthPlass/richAdapter.d.ts +26 -2
- package/dist/knuthPlass/richAdapter.d.ts.map +1 -1
- package/dist/knuthPlass/richAdapter.js +79 -18
- package/dist/knuthPlass/richAdapter.js.map +1 -1
- package/dist/knuthPlass/tracking.d.ts +24 -0
- package/dist/knuthPlass/tracking.d.ts.map +1 -0
- package/dist/knuthPlass/tracking.js +77 -0
- package/dist/knuthPlass/tracking.js.map +1 -0
- package/dist/knuthPlass/types.d.ts +66 -4
- package/dist/knuthPlass/types.d.ts.map +1 -1
- package/dist/lineInk.d.ts +12 -0
- package/dist/lineInk.d.ts.map +1 -0
- package/dist/lineInk.js +20 -0
- package/dist/lineInk.js.map +1 -0
- package/dist/locale.d.ts +26 -0
- package/dist/locale.d.ts.map +1 -0
- package/dist/locale.js +63 -0
- package/dist/locale.js.map +1 -0
- package/dist/looseLines.d.ts +44 -0
- package/dist/looseLines.d.ts.map +1 -0
- package/dist/looseLines.js +46 -0
- package/dist/looseLines.js.map +1 -0
- package/dist/math/THIRD_PARTY_LICENSES.txt +221 -0
- package/dist/math/engine.d.ts +24 -0
- package/dist/math/engine.d.ts.map +1 -1
- package/dist/math/engine.js +252 -83
- package/dist/math/engine.js.map +1 -1
- package/dist/math/index.d.ts +1 -1
- package/dist/math/index.d.ts.map +1 -1
- package/dist/math/index.js +1 -1
- package/dist/math/index.js.map +1 -1
- package/dist/math/mathjax.d.ts +20 -0
- package/dist/math/mathjax.d.ts.map +1 -0
- package/dist/math/mathjax.js +29 -0
- package/dist/measure/breakRules.d.ts +50 -0
- package/dist/measure/breakRules.d.ts.map +1 -0
- package/dist/measure/breakRules.js +116 -0
- package/dist/measure/breakRules.js.map +1 -0
- package/dist/measure/cache.d.ts.map +1 -1
- package/dist/measure/cache.js +26 -5
- package/dist/measure/cache.js.map +1 -1
- package/dist/measure/cjk.d.ts +19 -0
- package/dist/measure/cjk.d.ts.map +1 -0
- package/dist/measure/cjk.js +70 -0
- package/dist/measure/cjk.js.map +1 -0
- package/dist/measure/font.d.ts +21 -5
- package/dist/measure/font.d.ts.map +1 -1
- package/dist/measure/font.js +61 -4
- package/dist/measure/font.js.map +1 -1
- package/dist/measure/index.d.ts +16 -2
- package/dist/measure/index.d.ts.map +1 -1
- package/dist/measure/index.js +61 -1
- package/dist/measure/index.js.map +1 -1
- package/dist/measure/links.d.ts +15 -0
- package/dist/measure/links.d.ts.map +1 -0
- package/dist/measure/links.js +115 -0
- package/dist/measure/links.js.map +1 -0
- package/dist/measure/plain.d.ts +10 -2
- package/dist/measure/plain.d.ts.map +1 -1
- package/dist/measure/plain.js +175 -25
- package/dist/measure/plain.js.map +1 -1
- package/dist/measure/rich.d.ts +86 -6
- package/dist/measure/rich.d.ts.map +1 -1
- package/dist/measure/rich.js +808 -131
- package/dist/measure/rich.js.map +1 -1
- package/dist/measure/spaces.d.ts +34 -0
- package/dist/measure/spaces.d.ts.map +1 -0
- package/dist/measure/spaces.js +42 -0
- package/dist/measure/spaces.js.map +1 -0
- package/dist/measure/types.d.ts +99 -0
- package/dist/measure/types.d.ts.map +1 -1
- package/dist/measure/types.js +19 -0
- package/dist/measure/types.js.map +1 -1
- package/dist/numberWords.d.ts +22 -0
- package/dist/numberWords.d.ts.map +1 -0
- package/dist/numberWords.js +155 -0
- package/dist/numberWords.js.map +1 -0
- package/dist/numbering.d.ts +52 -3
- package/dist/numbering.d.ts.map +1 -1
- package/dist/numbering.js +116 -16
- package/dist/numbering.js.map +1 -1
- package/dist/parse/blockParser.d.ts.map +1 -1
- package/dist/parse/blockParser.js +54 -7
- package/dist/parse/blockParser.js.map +1 -1
- package/dist/parse/index.d.ts +1 -1
- package/dist/parse/index.d.ts.map +1 -1
- package/dist/parse/index.js.map +1 -1
- package/dist/parse/injectSpans.d.ts +3 -1
- package/dist/parse/injectSpans.d.ts.map +1 -1
- package/dist/parse/injectSpans.js +8 -4
- package/dist/parse/injectSpans.js.map +1 -1
- package/dist/parse/inlineFormatting.d.ts +50 -2
- package/dist/parse/inlineFormatting.d.ts.map +1 -1
- package/dist/parse/inlineFormatting.js +441 -26
- package/dist/parse/inlineFormatting.js.map +1 -1
- package/dist/parse/inlineSnippet.d.ts +12 -3
- package/dist/parse/inlineSnippet.d.ts.map +1 -1
- package/dist/parse/inlineSnippet.js +10 -3
- package/dist/parse/inlineSnippet.js.map +1 -1
- package/dist/parse/links.d.ts +9 -0
- package/dist/parse/links.d.ts.map +1 -0
- package/dist/parse/links.js +23 -0
- package/dist/parse/links.js.map +1 -0
- package/dist/parse/sourceMapping.d.ts.map +1 -1
- package/dist/parse/sourceMapping.js +68 -7
- package/dist/parse/sourceMapping.js.map +1 -1
- package/dist/parse/types.d.ts +32 -0
- package/dist/parse/types.d.ts.map +1 -1
- package/dist/pipeline/bandCaps.d.ts +26 -5
- package/dist/pipeline/bandCaps.d.ts.map +1 -1
- package/dist/pipeline/bandCaps.js +47 -20
- package/dist/pipeline/bandCaps.js.map +1 -1
- package/dist/pipeline/build.d.ts.map +1 -1
- package/dist/pipeline/build.js +1417 -172
- package/dist/pipeline/build.js.map +1 -1
- package/dist/pipeline/buildBlockKind.d.ts +4 -0
- package/dist/pipeline/buildBlockKind.d.ts.map +1 -1
- package/dist/pipeline/buildBlockKind.js +38 -7
- package/dist/pipeline/buildBlockKind.js.map +1 -1
- package/dist/pipeline/buildHelpers.d.ts +5 -2
- package/dist/pipeline/buildHelpers.d.ts.map +1 -1
- package/dist/pipeline/buildHelpers.js +101 -25
- package/dist/pipeline/buildHelpers.js.map +1 -1
- package/dist/pipeline/buildMeasurement.d.ts.map +1 -1
- package/dist/pipeline/buildMeasurement.js +6 -2
- package/dist/pipeline/buildMeasurement.js.map +1 -1
- package/dist/pipeline/calloutLayout.d.ts +34 -7
- package/dist/pipeline/calloutLayout.d.ts.map +1 -1
- package/dist/pipeline/calloutLayout.js +331 -44
- package/dist/pipeline/calloutLayout.js.map +1 -1
- package/dist/pipeline/chips.d.ts.map +1 -1
- package/dist/pipeline/chips.js +3 -0
- package/dist/pipeline/chips.js.map +1 -1
- package/dist/pipeline/columnBalancing.d.ts +26 -6
- package/dist/pipeline/columnBalancing.d.ts.map +1 -1
- package/dist/pipeline/columnBalancing.js +82 -21
- package/dist/pipeline/columnBalancing.js.map +1 -1
- package/dist/pipeline/config.d.ts +18 -0
- package/dist/pipeline/config.d.ts.map +1 -1
- package/dist/pipeline/config.js +44 -7
- package/dist/pipeline/config.js.map +1 -1
- package/dist/pipeline/contentWarnings.d.ts +50 -0
- package/dist/pipeline/contentWarnings.d.ts.map +1 -0
- package/dist/pipeline/contentWarnings.js +362 -0
- package/dist/pipeline/contentWarnings.js.map +1 -0
- package/dist/pipeline/continuation.d.ts.map +1 -1
- package/dist/pipeline/continuation.js +25 -5
- package/dist/pipeline/continuation.js.map +1 -1
- package/dist/pipeline/floatPlacement.d.ts +16 -7
- package/dist/pipeline/floatPlacement.d.ts.map +1 -1
- package/dist/pipeline/floatPlacement.js +22 -5
- package/dist/pipeline/floatPlacement.js.map +1 -1
- package/dist/pipeline/floatSlots.d.ts +30 -4
- package/dist/pipeline/floatSlots.d.ts.map +1 -1
- package/dist/pipeline/floatSlots.js +42 -7
- package/dist/pipeline/floatSlots.js.map +1 -1
- package/dist/pipeline/headerFooter.d.ts +125 -11
- package/dist/pipeline/headerFooter.d.ts.map +1 -1
- package/dist/pipeline/headerFooter.js +444 -69
- package/dist/pipeline/headerFooter.js.map +1 -1
- package/dist/pipeline/headingDesignCuts.d.ts +40 -0
- package/dist/pipeline/headingDesignCuts.d.ts.map +1 -0
- package/dist/pipeline/headingDesignCuts.js +72 -0
- package/dist/pipeline/headingDesignCuts.js.map +1 -0
- package/dist/pipeline/headingStyles.d.ts +12 -0
- package/dist/pipeline/headingStyles.d.ts.map +1 -1
- package/dist/pipeline/headingStyles.js +45 -1
- package/dist/pipeline/headingStyles.js.map +1 -1
- package/dist/pipeline/lists.d.ts +33 -1
- package/dist/pipeline/lists.d.ts.map +1 -1
- package/dist/pipeline/lists.js +53 -2
- package/dist/pipeline/lists.js.map +1 -1
- package/dist/pipeline/measureContentBlock.d.ts +25 -1
- package/dist/pipeline/measureContentBlock.d.ts.map +1 -1
- package/dist/pipeline/measureContentBlock.js +137 -17
- package/dist/pipeline/measureContentBlock.js.map +1 -1
- package/dist/pipeline/outline.d.ts +10 -5
- package/dist/pipeline/outline.d.ts.map +1 -1
- package/dist/pipeline/outline.js +38 -14
- package/dist/pipeline/outline.js.map +1 -1
- package/dist/pipeline/paragraphContainers.d.ts +13 -4
- package/dist/pipeline/paragraphContainers.d.ts.map +1 -1
- package/dist/pipeline/paragraphContainers.js +4 -3
- package/dist/pipeline/paragraphContainers.js.map +1 -1
- package/dist/pipeline/partPalette.d.ts +49 -3
- package/dist/pipeline/partPalette.d.ts.map +1 -1
- package/dist/pipeline/partPalette.js +414 -46
- package/dist/pipeline/partPalette.js.map +1 -1
- package/dist/pipeline/parts.d.ts +5 -1
- package/dist/pipeline/parts.d.ts.map +1 -1
- package/dist/pipeline/parts.js +16 -0
- package/dist/pipeline/parts.js.map +1 -1
- package/dist/pipeline/placeholders.d.ts +152 -3
- package/dist/pipeline/placeholders.d.ts.map +1 -1
- package/dist/pipeline/placeholders.js +259 -33
- package/dist/pipeline/placeholders.js.map +1 -1
- package/dist/pipeline/placement.d.ts +6 -1
- package/dist/pipeline/placement.d.ts.map +1 -1
- package/dist/pipeline/placement.js +13 -2
- package/dist/pipeline/placement.js.map +1 -1
- package/dist/pipeline/raggedLines.d.ts +5 -0
- package/dist/pipeline/raggedLines.d.ts.map +1 -1
- package/dist/pipeline/raggedLines.js +24 -3
- package/dist/pipeline/raggedLines.js.map +1 -1
- package/dist/pipeline/resourceLayout.d.ts +6 -4
- package/dist/pipeline/resourceLayout.d.ts.map +1 -1
- package/dist/pipeline/resourceLayout.js +137 -36
- package/dist/pipeline/resourceLayout.js.map +1 -1
- package/dist/pipeline/resourceNumbering.d.ts.map +1 -1
- package/dist/pipeline/resourceNumbering.js +5 -15
- package/dist/pipeline/resourceNumbering.js.map +1 -1
- package/dist/pipeline/styles.d.ts +38 -5
- package/dist/pipeline/styles.d.ts.map +1 -1
- package/dist/pipeline/styles.js +99 -46
- package/dist/pipeline/styles.js.map +1 -1
- package/dist/pipeline/toc.d.ts.map +1 -1
- package/dist/pipeline/toc.js +41 -5
- package/dist/pipeline/toc.js.map +1 -1
- package/dist/react/createLayout.d.ts +20 -0
- package/dist/react/createLayout.d.ts.map +1 -0
- package/dist/react/createLayout.js +50 -0
- package/dist/react/createLayout.js.map +1 -0
- package/dist/react/index.d.ts +3 -0
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.js +4 -0
- package/dist/react/index.js.map +1 -0
- package/dist/svg/singleInk.d.ts +46 -1
- package/dist/svg/singleInk.d.ts.map +1 -1
- package/dist/svg/singleInk.js +180 -10
- package/dist/svg/singleInk.js.map +1 -1
- package/dist/table/model.d.ts +36 -1
- package/dist/table/model.d.ts.map +1 -1
- package/dist/table/model.js +163 -20
- package/dist/table/model.js.map +1 -1
- package/dist/types.d.ts +979 -68
- package/dist/types.d.ts.map +1 -1
- package/dist/vdt.d.ts +439 -13
- package/dist/vdt.d.ts.map +1 -1
- package/dist/vdt.js +91 -0
- package/dist/vdt.js.map +1 -1
- package/dist/worker/client.d.ts +15 -1
- package/dist/worker/client.d.ts.map +1 -1
- package/dist/worker/client.js +52 -3
- package/dist/worker/client.js.map +1 -1
- package/dist/worker/entryUrl.d.ts +15 -0
- package/dist/worker/entryUrl.d.ts.map +1 -0
- package/dist/worker/entryUrl.js +33 -0
- package/dist/worker/entryUrl.js.map +1 -0
- package/dist/worker/fonts.d.ts +18 -0
- package/dist/worker/fonts.d.ts.map +1 -0
- package/dist/worker/fonts.js +53 -0
- package/dist/worker/fonts.js.map +1 -0
- package/dist/worker/layout.worker.js +41 -6
- package/dist/worker/layout.worker.js.map +1 -1
- package/dist/worker/protocol.d.ts +4 -0
- package/dist/worker/protocol.d.ts.map +1 -1
- package/package.json +12 -5
package/dist/design/layout.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { dimensionToPx } from '../units';
|
|
2
|
-
import {
|
|
2
|
+
import { resolveDesignLineHeight } from '../defaults/headerFooter';
|
|
3
|
+
import { createBoundingBox, pictureTraits } from '../vdt';
|
|
3
4
|
import { buildFontString, measureTextWidth } from '../measure';
|
|
4
|
-
import { hyphenateText } from '../hyphenate';
|
|
5
|
-
import {
|
|
5
|
+
import { hyphenateText, withoutSlashJoints } from '../hyphenate';
|
|
6
|
+
import { BREAKING_SPACE_RUNS_SPLIT_RE, NO_BREAK_SPACES, isBreakingSpaceRun } from '../measure/spaces';
|
|
7
|
+
import { resolveDesignText, } from './placeholders';
|
|
8
|
+
import { RichMeasurer, ellipsisEndCut, ellipsisMiddleCut, ellipsisStartCut, parseRichDesignText, singleRichLine, wrapRich, } from './richText';
|
|
6
9
|
function pageMatchesParity(pageIndex, parity) {
|
|
7
10
|
if (parity === 'all')
|
|
8
11
|
return true;
|
|
@@ -63,13 +66,20 @@ function overrideBoxStyle(style, overrides) {
|
|
|
63
66
|
};
|
|
64
67
|
}
|
|
65
68
|
/** The element with every palette-linked colour (text colour, rule colour,
|
|
66
|
-
* box background / border) that a `:::part` overrides taking the part's
|
|
69
|
+
* box background / border, outline, drop cap) that a `:::part` overrides taking the part's
|
|
67
70
|
* value — how a section recolours the running heads and opener bands of
|
|
68
71
|
* its pages without a second design. */
|
|
69
72
|
export function applyPaletteOverrides(el, overrides) {
|
|
70
73
|
switch (el.kind) {
|
|
71
74
|
case 'text':
|
|
72
|
-
return {
|
|
75
|
+
return {
|
|
76
|
+
...el,
|
|
77
|
+
color: overrideColor(el.color, overrides) ?? el.color,
|
|
78
|
+
box: overrideBoxStyle(el.box, overrides),
|
|
79
|
+
...(el.stroke ? { stroke: { ...el.stroke, color: overrideColor(el.stroke.color, overrides) } } : {}),
|
|
80
|
+
// The drop cap's own colour follows the palette too (EF-107).
|
|
81
|
+
...(el.dropCap?.color ? { dropCap: { ...el.dropCap, color: overrideColor(el.dropCap.color, overrides) } } : {}),
|
|
82
|
+
};
|
|
73
83
|
case 'rule':
|
|
74
84
|
return { ...el, color: overrideColor(el.color, overrides) ?? el.color };
|
|
75
85
|
case 'box':
|
|
@@ -186,6 +196,26 @@ function resolveElementAnchor(edge, ref) {
|
|
|
186
196
|
return { anchorX: ref.x, anchorY: ref.y, pinX: 'start', pinY: 'start' };
|
|
187
197
|
}
|
|
188
198
|
}
|
|
199
|
+
/** How far a text's lines move down from the top of its content box
|
|
200
|
+
* (`contentHeight` tall) for `verticalAlign`. Lines taller than the box
|
|
201
|
+
* run out on the side the alignment leaves free, as CSS flex alignment
|
|
202
|
+
* does: upwards for `'bottom'`, both ways for `'middle'` (EF-138; up to
|
|
203
|
+
* postext 1.4 they always hung from the top). */
|
|
204
|
+
export function textVerticalOffset(verticalAlign, contentHeight, lines) {
|
|
205
|
+
const linesHeight = lines.reduce((s, l) => Math.max(s, l.topY + l.height), 0);
|
|
206
|
+
if (verticalAlign === 'top')
|
|
207
|
+
return 0;
|
|
208
|
+
if (verticalAlign === 'bottom')
|
|
209
|
+
return contentHeight - linesHeight;
|
|
210
|
+
return (contentHeight - linesHeight) / 2;
|
|
211
|
+
}
|
|
212
|
+
/** The tracking a line's measured width carries after its last glyph: the
|
|
213
|
+
* element's `letterSpacingPx` when the line holds any text. Canvas, CSS and
|
|
214
|
+
* PDF all add it after every character, the last one included; it is
|
|
215
|
+
* advance, not ink, so alignment leaves it out (EF-153). */
|
|
216
|
+
export function trailingTracking(text, letterSpacingPx) {
|
|
217
|
+
return letterSpacingPx !== 0 && text.length > 0 ? letterSpacingPx : 0;
|
|
218
|
+
}
|
|
189
219
|
function ellipsize(text, measure, maxWidth, mode) {
|
|
190
220
|
const ellipsis = '…';
|
|
191
221
|
if (measure(text) <= maxWidth)
|
|
@@ -206,7 +236,8 @@ function ellipsize(text, measure, maxWidth, mode) {
|
|
|
206
236
|
hi = mid - 1;
|
|
207
237
|
}
|
|
208
238
|
}
|
|
209
|
-
|
|
239
|
+
// At a word boundary, without the space before the ellipsis (EF-76).
|
|
240
|
+
return text.slice(0, ellipsisEndCut(text, 0, text.length, lo)) + ellipsis;
|
|
210
241
|
}
|
|
211
242
|
if (mode === 'start') {
|
|
212
243
|
let lo = 0;
|
|
@@ -220,7 +251,7 @@ function ellipsize(text, measure, maxWidth, mode) {
|
|
|
220
251
|
lo = mid + 1;
|
|
221
252
|
}
|
|
222
253
|
}
|
|
223
|
-
return ellipsis + text.slice(lo);
|
|
254
|
+
return ellipsis + text.slice(ellipsisStartCut(text, 0, text.length, lo));
|
|
224
255
|
}
|
|
225
256
|
// middle
|
|
226
257
|
let leftLen = 0;
|
|
@@ -239,14 +270,24 @@ function ellipsize(text, measure, maxWidth, mode) {
|
|
|
239
270
|
if (leftLen + rightLen >= text.length)
|
|
240
271
|
break;
|
|
241
272
|
}
|
|
242
|
-
|
|
273
|
+
const kept = ellipsisMiddleCut(text, 0, text.length, leftLen, rightLen);
|
|
274
|
+
return text.slice(0, kept.left) + ellipsis + text.slice(text.length - kept.right);
|
|
243
275
|
}
|
|
244
276
|
const SOFT_HYPHEN = '\u00AD';
|
|
245
277
|
function breakWordWithHyphenation(word, measure, maxWidth, useHyphenation) {
|
|
246
278
|
// Returns a split of the word where head (with trailing hyphen if hyphenated)
|
|
247
279
|
// fits in maxWidth. Returns undefined if no split is possible.
|
|
280
|
+
// A group glued by no-break spaces ("Fig. 3") parts at the last of them
|
|
281
|
+
// that leaves a head that fits, before any syllable or character (EF-66).
|
|
282
|
+
for (let i = word.length - 2; i >= 1; i--) {
|
|
283
|
+
if (!NO_BREAK_SPACES.includes(word[i]) || NO_BREAK_SPACES.includes(word[i - 1]))
|
|
284
|
+
continue;
|
|
285
|
+
if (measure(word.slice(0, i)) <= maxWidth)
|
|
286
|
+
return { head: word.slice(0, i), tail: word.slice(i + 1) };
|
|
287
|
+
}
|
|
248
288
|
if (useHyphenation) {
|
|
249
|
-
|
|
289
|
+
// Syllables only: the slash joints would ride along into the pieces.
|
|
290
|
+
const hy = withoutSlashJoints(word, hyphenateText(word));
|
|
250
291
|
if (hy.includes(SOFT_HYPHEN)) {
|
|
251
292
|
const parts = hy.split(SOFT_HYPHEN);
|
|
252
293
|
let best;
|
|
@@ -286,11 +327,12 @@ function wrapToWidth(text, measure, maxWidth, hyphenate) {
|
|
|
286
327
|
const paragraphs = text.split('\n');
|
|
287
328
|
const out = [];
|
|
288
329
|
for (const para of paragraphs) {
|
|
289
|
-
|
|
330
|
+
// Words part at breaking spaces only: a no-break space glues (EF-66).
|
|
331
|
+
const words = para.split(BREAKING_SPACE_RUNS_SPLIT_RE);
|
|
290
332
|
let current = '';
|
|
291
333
|
for (const part of words) {
|
|
292
334
|
const test = current + part;
|
|
293
|
-
if (measure(test) <= maxWidth || (current.length === 0 &&
|
|
335
|
+
if (measure(test) <= maxWidth || (current.length === 0 && (part === '' || isBreakingSpaceRun(part)))) {
|
|
294
336
|
current = test;
|
|
295
337
|
}
|
|
296
338
|
else if (current.length === 0) {
|
|
@@ -343,35 +385,27 @@ function wrapToWidth(text, measure, maxWidth, hyphenate) {
|
|
|
343
385
|
}
|
|
344
386
|
return out.length > 0 ? out : [''];
|
|
345
387
|
}
|
|
346
|
-
|
|
388
|
+
/** Lines stacked from the top of the content box, `lineHeightPx` apart. */
|
|
389
|
+
function stackLines(rows, lineHeightPx) {
|
|
390
|
+
return rows.map((r, i) => ({
|
|
391
|
+
text: r.text,
|
|
392
|
+
width: r.width,
|
|
393
|
+
topY: i * lineHeightPx,
|
|
394
|
+
baselineY: i * lineHeightPx + lineHeightPx * 0.8,
|
|
395
|
+
height: lineHeightPx,
|
|
396
|
+
...(r.runs ? { runs: r.runs } : {}),
|
|
397
|
+
}));
|
|
398
|
+
}
|
|
399
|
+
/** Lay out a plain text. A newline always starts a new line; `overflow`
|
|
400
|
+
* decides what happens to a line wider than `maxContentWidth`: wrap onto
|
|
401
|
+
* more lines, or stay one line that is truncated (`ellipsis-*`) or clipped
|
|
402
|
+
* by the renderer (`clip`). */
|
|
403
|
+
function layoutText(text, measure, lineHeightPx, overflow,
|
|
347
404
|
/** When not undefined, constrains text width. Otherwise measure natural. */
|
|
348
405
|
maxContentWidth, hyphenate) {
|
|
349
|
-
|
|
350
|
-
if (maxContentWidth === undefined) {
|
|
351
|
-
// Single natural line.
|
|
352
|
-
const width = measure(text);
|
|
353
|
-
return {
|
|
354
|
-
lines: [{
|
|
355
|
-
text,
|
|
356
|
-
width,
|
|
357
|
-
topY: 0,
|
|
358
|
-
baselineY: lineHeightPx * 0.8,
|
|
359
|
-
height: lineHeightPx,
|
|
360
|
-
}],
|
|
361
|
-
contentWidth: width,
|
|
362
|
-
contentHeight: lineHeightPx,
|
|
363
|
-
needsClip: false,
|
|
364
|
-
};
|
|
365
|
-
}
|
|
366
|
-
if (overflow === 'wrap') {
|
|
406
|
+
if (maxContentWidth !== undefined && overflow === 'wrap') {
|
|
367
407
|
const lines = wrapToWidth(text, measure, maxContentWidth, hyphenate ?? false);
|
|
368
|
-
const wrapped = lines.map((t
|
|
369
|
-
text: t,
|
|
370
|
-
width: measure(t),
|
|
371
|
-
topY: i * lineHeightPx,
|
|
372
|
-
baselineY: i * lineHeightPx + lineHeightPx * 0.8,
|
|
373
|
-
height: lineHeightPx,
|
|
374
|
-
}));
|
|
408
|
+
const wrapped = stackLines(lines.map((t) => ({ text: t, width: measure(t) })), lineHeightPx);
|
|
375
409
|
const w = wrapped.reduce((m, l) => Math.max(m, l.width), 0);
|
|
376
410
|
return {
|
|
377
411
|
lines: wrapped,
|
|
@@ -380,40 +414,56 @@ maxContentWidth, hyphenate) {
|
|
|
380
414
|
needsClip: false,
|
|
381
415
|
};
|
|
382
416
|
}
|
|
383
|
-
|
|
384
|
-
|
|
417
|
+
const rows = text.split('\n');
|
|
418
|
+
if (maxContentWidth === undefined || overflow === 'clip') {
|
|
419
|
+
// Natural lines (clipped to the box by the renderer for `clip`).
|
|
420
|
+
const lines = stackLines(rows.map((t) => ({ text: t, width: measure(t) })), lineHeightPx);
|
|
421
|
+
const natural = lines.reduce((m, l) => Math.max(m, l.width), 0);
|
|
385
422
|
return {
|
|
386
|
-
lines
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
baselineY: lineHeightPx * 0.8,
|
|
391
|
-
height: lineHeightPx,
|
|
392
|
-
}],
|
|
393
|
-
contentWidth: Math.min(natural, maxContentWidth),
|
|
394
|
-
contentHeight: lineHeightPx,
|
|
395
|
-
needsClip: true,
|
|
423
|
+
lines,
|
|
424
|
+
contentWidth: maxContentWidth === undefined ? natural : Math.min(natural, maxContentWidth),
|
|
425
|
+
contentHeight: lines.length * lineHeightPx,
|
|
426
|
+
needsClip: maxContentWidth !== undefined,
|
|
396
427
|
};
|
|
397
428
|
}
|
|
398
429
|
// ellipsis-*
|
|
399
430
|
const mode = overflow === 'ellipsis-start' ? 'start'
|
|
400
431
|
: overflow === 'ellipsis-middle' ? 'middle'
|
|
401
432
|
: 'end';
|
|
402
|
-
const
|
|
403
|
-
|
|
433
|
+
const lines = stackLines(rows.map((t) => {
|
|
434
|
+
const visible = ellipsize(t, measure, maxContentWidth, mode);
|
|
435
|
+
return { text: visible, width: measure(visible) };
|
|
436
|
+
}), lineHeightPx);
|
|
404
437
|
return {
|
|
405
|
-
lines
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
topY: 0,
|
|
409
|
-
baselineY: lineHeightPx * 0.8,
|
|
410
|
-
height: lineHeightPx,
|
|
411
|
-
}],
|
|
412
|
-
contentWidth: width,
|
|
413
|
-
contentHeight: lineHeightPx,
|
|
438
|
+
lines,
|
|
439
|
+
contentWidth: lines.reduce((m, l) => Math.max(m, l.width), 0),
|
|
440
|
+
contentHeight: lines.length * lineHeightPx,
|
|
414
441
|
needsClip: false,
|
|
415
442
|
};
|
|
416
443
|
}
|
|
444
|
+
/** Lay out a text with inline marks: the same rules as `layoutText`, with
|
|
445
|
+
* every line built from runs. */
|
|
446
|
+
function layoutRichText(m, lineHeightPx, overflow, maxContentWidth, hyphenate) {
|
|
447
|
+
const rows = [];
|
|
448
|
+
let start = 0;
|
|
449
|
+
const text = m.rt.text;
|
|
450
|
+
for (const row of text.split('\n')) {
|
|
451
|
+
const end = start + row.length;
|
|
452
|
+
if (overflow === 'wrap')
|
|
453
|
+
rows.push(...wrapRich(m, start, end, () => maxContentWidth, hyphenate ?? false));
|
|
454
|
+
else
|
|
455
|
+
rows.push(singleRichLine(m, start, end, maxContentWidth, overflow));
|
|
456
|
+
start = end + 1;
|
|
457
|
+
}
|
|
458
|
+
const lines = stackLines(rows, lineHeightPx);
|
|
459
|
+
const natural = lines.reduce((mx, l) => Math.max(mx, l.width), 0);
|
|
460
|
+
return {
|
|
461
|
+
lines,
|
|
462
|
+
contentWidth: overflow === 'clip' ? Math.min(natural, maxContentWidth) : natural,
|
|
463
|
+
contentHeight: lines.length * lineHeightPx,
|
|
464
|
+
needsClip: overflow === 'clip',
|
|
465
|
+
};
|
|
466
|
+
}
|
|
417
467
|
// ---------------------------------------------------------------------------
|
|
418
468
|
// Size resolution helpers
|
|
419
469
|
// ---------------------------------------------------------------------------
|
|
@@ -487,11 +537,13 @@ export function layoutDesignSlot(slot, context, pageIndex) {
|
|
|
487
537
|
// Topologically sort (dependencies first) to resolve geometry; paint
|
|
488
538
|
// order is still the array order (first = back), restored below.
|
|
489
539
|
const ordered = topoSort(candidates, issues);
|
|
490
|
-
// Precompute: resolved text contents (placeholder-expanded)
|
|
540
|
+
// Precompute: resolved text contents (placeholder-expanded), with the
|
|
541
|
+
// `\n` escape of the template and of attribute values turned into a
|
|
542
|
+
// newline before any case transform (which would make it `\N`).
|
|
491
543
|
const textContent = new Map();
|
|
492
544
|
for (const el of ordered) {
|
|
493
545
|
if (el.kind === 'text') {
|
|
494
|
-
const
|
|
546
|
+
const text = resolveDesignText(el.content, context.placeholders);
|
|
495
547
|
textContent.set(el.id, el.textTransform === 'uppercase' ? text.toLocaleUpperCase() : text);
|
|
496
548
|
}
|
|
497
549
|
}
|
|
@@ -569,26 +621,54 @@ export function layoutDesignSlot(slot, context, pageIndex) {
|
|
|
569
621
|
primsByElement.set(el, [prim]);
|
|
570
622
|
}
|
|
571
623
|
}
|
|
572
|
-
const primitives =
|
|
624
|
+
const primitives = [];
|
|
625
|
+
const elementIds = [];
|
|
626
|
+
for (const el of candidates) {
|
|
627
|
+
for (const prim of primsByElement.get(el) ?? []) {
|
|
628
|
+
primitives.push(prim);
|
|
629
|
+
elementIds.push(el.id);
|
|
630
|
+
}
|
|
631
|
+
}
|
|
573
632
|
return {
|
|
574
633
|
container: context.container,
|
|
575
634
|
primitives,
|
|
635
|
+
elementIds,
|
|
576
636
|
issues,
|
|
577
637
|
};
|
|
578
638
|
}
|
|
639
|
+
/** A syllable break of `word` whose head, with its hyphen, still fits after
|
|
640
|
+
* `line` in `maxWidth`: the longest such head, or undefined. Used to fill
|
|
641
|
+
* a justified line (EF-109). */
|
|
642
|
+
function syllableFill(line, word, measure, maxWidth) {
|
|
643
|
+
const hy = withoutSlashJoints(word, hyphenateText(word));
|
|
644
|
+
if (!hy.includes(SOFT_HYPHEN) || hy.split(SOFT_HYPHEN).join('') !== word)
|
|
645
|
+
return undefined;
|
|
646
|
+
const parts = hy.split(SOFT_HYPHEN);
|
|
647
|
+
let best;
|
|
648
|
+
for (let k = 1; k < parts.length; k++) {
|
|
649
|
+
const head = `${parts.slice(0, k).join('')}-`;
|
|
650
|
+
if (measure(line + head) > maxWidth)
|
|
651
|
+
break;
|
|
652
|
+
best = { head, tail: parts.slice(k).join('') };
|
|
653
|
+
}
|
|
654
|
+
return best;
|
|
655
|
+
}
|
|
579
656
|
/** Greedy wrap of one paragraph where every line may have its own width
|
|
580
|
-
* (`widthFor(lineIndex)`), preserving existing line breaks.
|
|
581
|
-
|
|
657
|
+
* (`widthFor(lineIndex)`), preserving existing line breaks. With `fill`
|
|
658
|
+
* (a justified text that hyphenates), a word that does not fit the rest
|
|
659
|
+
* of a line is cut at its last syllable break that does. */
|
|
660
|
+
function wrapWithWidths(text, measure, widthFor, hyphenate, startLine = 0, fill = false) {
|
|
582
661
|
const out = [];
|
|
583
662
|
let i = startLine;
|
|
584
663
|
for (const para of text.split('\n')) {
|
|
585
|
-
|
|
664
|
+
// Words part at breaking spaces only: a no-break space glues (EF-66).
|
|
665
|
+
const words = para.split(BREAKING_SPACE_RUNS_SPLIT_RE);
|
|
586
666
|
let current = '';
|
|
587
667
|
let maxWidth = Math.max(1, widthFor(i));
|
|
588
668
|
const flush = () => { out.push(current); current = ''; i++; maxWidth = Math.max(1, widthFor(i)); };
|
|
589
669
|
for (const part of words) {
|
|
590
670
|
const test = current + part;
|
|
591
|
-
if (measure(test) <= maxWidth || (current.length === 0 &&
|
|
671
|
+
if (measure(test) <= maxWidth || (current.length === 0 && (part === '' || isBreakingSpaceRun(part)))) {
|
|
592
672
|
current = test;
|
|
593
673
|
}
|
|
594
674
|
else if (current.length === 0) {
|
|
@@ -609,8 +689,17 @@ function wrapWithWidths(text, measure, widthFor, hyphenate, startLine = 0) {
|
|
|
609
689
|
}
|
|
610
690
|
}
|
|
611
691
|
else {
|
|
612
|
-
|
|
613
|
-
|
|
692
|
+
const word = part.trimStart();
|
|
693
|
+
const cut = fill && hyphenate ? syllableFill(current, word, measure, maxWidth) : undefined;
|
|
694
|
+
if (cut) {
|
|
695
|
+
current += cut.head;
|
|
696
|
+
flush();
|
|
697
|
+
current = cut.tail;
|
|
698
|
+
}
|
|
699
|
+
else {
|
|
700
|
+
flush();
|
|
701
|
+
current = word;
|
|
702
|
+
}
|
|
614
703
|
if (measure(current) > maxWidth) {
|
|
615
704
|
let remaining = current;
|
|
616
705
|
current = '';
|
|
@@ -637,17 +726,102 @@ function wrapWithWidths(text, measure, widthFor, hyphenate, startLine = 0) {
|
|
|
637
726
|
}
|
|
638
727
|
return out;
|
|
639
728
|
}
|
|
640
|
-
|
|
729
|
+
/** The share of a letter's size its capitals take, for a drop cap's
|
|
730
|
+
* default size (the faces' own cap heights are not measured). */
|
|
731
|
+
const CAP_HEIGHT_RATIO = 0.72;
|
|
732
|
+
/** The spaces a justified line stretches: those CSS `word-spacing` widens
|
|
733
|
+
* (U+0020 and the no-break space U+00A0). */
|
|
734
|
+
const STRETCHABLE_SPACE_RE = /[ \u00A0]/g;
|
|
735
|
+
/** A line cut after each run of stretchable spaces. */
|
|
736
|
+
const WORD_WITH_SPACES_RE = /[^ \u00A0]+[ \u00A0]*|[ \u00A0]+/g;
|
|
737
|
+
function stretchableSpaces(text) {
|
|
738
|
+
return text.match(STRETCHABLE_SPACE_RE)?.length ?? 0;
|
|
739
|
+
}
|
|
740
|
+
/**
|
|
741
|
+
* A wrapped line justified to `width` (EF-109): its word spaces stretched
|
|
742
|
+
* by the same amount so the line ends at the right edge of its room. The
|
|
743
|
+
* line is cut into runs after every space, each run's width taking its
|
|
744
|
+
* spaces' share of the stretch, so the canvas and PDF paint it by advancing
|
|
745
|
+
* run by run; `wordSpacingPx` gives the HTML its `word-spacing`. Runs of
|
|
746
|
+
* inline marks are cut the same way, keeping their fonts; a subscript and
|
|
747
|
+
* a superscript set over each other are left whole. A line with no space
|
|
748
|
+
* to stretch, or already as wide as its room, is returned as it is (its
|
|
749
|
+
* trailing spaces dropped).
|
|
750
|
+
*/
|
|
751
|
+
function justifyLine(line, width, measure, measureIn, font) {
|
|
752
|
+
// Trailing spaces (a plain wrapped line may keep them) are not stretched.
|
|
753
|
+
let runs = line.runs;
|
|
754
|
+
let text = line.text;
|
|
755
|
+
let natural = line.width;
|
|
756
|
+
if (!runs && /[ \u00A0]+$/.test(text)) {
|
|
757
|
+
text = text.replace(/[ \u00A0]+$/, '');
|
|
758
|
+
natural = measure(text);
|
|
759
|
+
}
|
|
760
|
+
const pieces = runs ?? [{ text, fontString: font, width: natural }];
|
|
761
|
+
const splittable = (i) => !pieces[i].stacked && !pieces[i - 1]?.stacked;
|
|
762
|
+
let spaces = 0;
|
|
763
|
+
pieces.forEach((r, i) => { if (splittable(i))
|
|
764
|
+
spaces += stretchableSpaces(r.text); });
|
|
765
|
+
const room = width - natural;
|
|
766
|
+
if (spaces === 0 || room <= 0.01)
|
|
767
|
+
return runs ? line : { text, width: natural };
|
|
768
|
+
const extra = room / spaces;
|
|
769
|
+
const out = [];
|
|
770
|
+
pieces.forEach((r, i) => {
|
|
771
|
+
if (!splittable(i)) {
|
|
772
|
+
out.push(r);
|
|
773
|
+
return;
|
|
774
|
+
}
|
|
775
|
+
const words = r.text.match(WORD_WITH_SPACES_RE) ?? [r.text];
|
|
776
|
+
let sum = 0;
|
|
777
|
+
words.forEach((w, k) => {
|
|
778
|
+
// The last piece keeps what kerning across the cuts leaves, so the
|
|
779
|
+
// run as a whole advances as far as it did.
|
|
780
|
+
const own = k < words.length - 1 ? measureIn(w, r.fontString) : r.width - sum;
|
|
781
|
+
sum += own;
|
|
782
|
+
out.push({ ...r, text: w, width: own + extra * stretchableSpaces(w) });
|
|
783
|
+
});
|
|
784
|
+
});
|
|
785
|
+
runs = out;
|
|
786
|
+
return { text, width: natural + room, runs, wordSpacingPx: extra };
|
|
787
|
+
}
|
|
788
|
+
/** Distance between the baselines of a design text: its absolute leading
|
|
789
|
+
* (`lineHeightLength`), else its multiplier times the font size. Read
|
|
790
|
+
* through `resolveDesignLineHeight` as well, so a slot built by hand (not
|
|
791
|
+
* resolved) that carries a {@link Dimension} or a malformed value still
|
|
792
|
+
* lays out — at the default leading when unusable, never NaN. */
|
|
793
|
+
function designLineHeightPx(el, fontSizePx, dpi) {
|
|
794
|
+
const leading = resolveDesignLineHeight(el.lineHeightLength ?? el.lineHeight, el.fontSize);
|
|
795
|
+
const px = leading.lineHeightLength ? dimPx(leading.lineHeightLength, dpi) : fontSizePx * leading.lineHeight;
|
|
796
|
+
return Number.isFinite(px) ? px : 0;
|
|
797
|
+
}
|
|
798
|
+
function layoutTextElement(el, resolvedText, pin, container, dpi, anchoredToElement) {
|
|
799
|
+
let text = resolvedText;
|
|
641
800
|
const fontSizePx = dimPx(el.fontSize, dpi);
|
|
642
801
|
const weight = el.fontWeight === 400 ? 'normal' : String(el.fontWeight);
|
|
643
802
|
const style = el.italic ? 'italic' : 'normal';
|
|
644
803
|
const fontString = buildFontString(el.fontFamily, fontSizePx, weight, style);
|
|
645
804
|
// Tracking advances every character (spaces included) by `letterSpacingPx`,
|
|
646
805
|
// exactly as canvas `letterSpacing` / CSS `letter-spacing` / PDF `Tc` do.
|
|
647
|
-
|
|
648
|
-
|
|
806
|
+
// Negative tracking tightens a display title (EF-82); a width never drops
|
|
807
|
+
// below zero, however tight.
|
|
808
|
+
const trackingPx = dimPx(el.letterSpacing, dpi, fontSizePx);
|
|
809
|
+
const letterSpacingPx = Number.isFinite(trackingPx) ? trackingPx : 0;
|
|
810
|
+
const measure = (t) => Math.max(0, measureTextWidth(t, fontString) + letterSpacingPx * t.length);
|
|
649
811
|
const box = resolveBox(el.box, dpi, fontSizePx);
|
|
650
812
|
const padding = box?.padding ?? { top: 0, right: 0, bottom: 0, left: 0 };
|
|
813
|
+
// Inline marks: a text that carries any is laid out in runs; one that
|
|
814
|
+
// carries none (only escapes) is plain text with its markers resolved.
|
|
815
|
+
const rich = el.inlineMarks
|
|
816
|
+
? parseRichDesignText(text, { family: el.fontFamily, sizePx: fontSizePx, weight: el.fontWeight, italic: el.italic })
|
|
817
|
+
: undefined;
|
|
818
|
+
const richM = rich?.hasMarks ? new RichMeasurer(rich, letterSpacingPx) : undefined;
|
|
819
|
+
if (rich && !rich.hasMarks)
|
|
820
|
+
text = rich.text;
|
|
821
|
+
const strokeWidthPx = el.stroke ? Math.max(0, dimPx(el.stroke.width, dpi, fontSizePx)) : 0;
|
|
822
|
+
const stroke = el.stroke && strokeWidthPx > 0
|
|
823
|
+
? { widthPx: strokeWidthPx, color: colorHex(el.stroke.color ?? el.color), ...(el.stroke.hollow ? { hollow: true } : {}) }
|
|
824
|
+
: undefined;
|
|
651
825
|
const widthSize = resolveFixedSize(el.placement.size?.width, dpi, fontSizePx);
|
|
652
826
|
const heightSize = resolveFixedSize(el.placement.size?.height, dpi, fontSizePx);
|
|
653
827
|
const maxWidthSize = resolveFixedSize(el.placement.size?.maxWidth, dpi, fontSizePx);
|
|
@@ -676,33 +850,65 @@ function layoutTextElement(el, text, pin, container, dpi, anchoredToElement) {
|
|
|
676
850
|
elementWidth = widthSize;
|
|
677
851
|
contentMax = Math.max(0, elementWidth - padding.left - padding.right);
|
|
678
852
|
}
|
|
679
|
-
// Paragraphs (a newline,
|
|
680
|
-
// a first-line indent, and a drop cap on
|
|
681
|
-
|
|
853
|
+
// Paragraphs (a newline, which the `\n` escape of the template or of an
|
|
854
|
+
// attribute value has become) with a first-line indent, and a drop cap on
|
|
855
|
+
// the first: wrapping text only.
|
|
856
|
+
const lineHeightPx = designLineHeightPx(el, fontSizePx, dpi);
|
|
682
857
|
const paraIndentPx = Math.max(0, dimPx(el.paragraphIndent, dpi, fontSizePx));
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
858
|
+
// Paragraph ranges of the text laid out (the plain text of a marked one),
|
|
859
|
+
// each trimmed of surrounding whitespace; empty ones are dropped, so
|
|
860
|
+
// consecutive newlines count as one.
|
|
861
|
+
const source = richM ? richM.rt.text : text;
|
|
862
|
+
const paraRanges = [];
|
|
863
|
+
let rowStart = 0;
|
|
864
|
+
for (const row of source.split('\n')) {
|
|
865
|
+
let a = rowStart;
|
|
866
|
+
let b = rowStart + row.length;
|
|
867
|
+
while (a < b && /\s/.test(source[a]))
|
|
868
|
+
a++;
|
|
869
|
+
while (b > a && /\s/.test(source[b - 1]))
|
|
870
|
+
b--;
|
|
871
|
+
if (b > a)
|
|
872
|
+
paraRanges.push([a, b]);
|
|
873
|
+
rowStart += row.length + 1;
|
|
874
|
+
}
|
|
875
|
+
const paragraphs = paraRanges.map(([a, b]) => source.slice(a, b));
|
|
876
|
+
// A drop cap makes the text wrap whatever its `overflow` (EF-106): the
|
|
877
|
+
// letter spans lines, so a single truncated line cannot hold it.
|
|
878
|
+
const wraps = el.overflow === 'wrap' || el.dropCap !== undefined;
|
|
879
|
+
const justify = el.align === 'justify' && wraps;
|
|
880
|
+
const dropCap = el.dropCap && wraps && contentMax !== undefined && paragraphs.length > 0 && paragraphs[0].length > 1
|
|
686
881
|
? el.dropCap
|
|
687
882
|
: undefined;
|
|
688
883
|
let m;
|
|
689
884
|
let cap;
|
|
690
|
-
if ((dropCap || (paraIndentPx > 0 && paragraphs.length > 1)) &&
|
|
885
|
+
if ((dropCap || justify || (paraIndentPx > 0 && paragraphs.length > 1)) && wraps && contentMax !== undefined) {
|
|
691
886
|
const maxW = contentMax;
|
|
692
887
|
const wrapped = [];
|
|
693
888
|
let capLines = 0;
|
|
694
889
|
let capRoom = 0;
|
|
695
890
|
if (dropCap) {
|
|
696
891
|
capLines = Math.max(1, Math.round(dropCap.lines ?? 2));
|
|
697
|
-
|
|
892
|
+
// The letter stands on the baseline of the last line it spans; by
|
|
893
|
+
// default its capitals reach those of the first line: the text's cap
|
|
894
|
+
// height plus `lines - 1` line spacings, capitals being 0.72 of the
|
|
895
|
+
// size (EF-127).
|
|
896
|
+
const capFontPx = dropCap.fontSize
|
|
897
|
+
? dimPx(dropCap.fontSize, dpi, fontSizePx)
|
|
898
|
+
: fontSizePx + ((capLines - 1) * lineHeightPx) / CAP_HEIGHT_RATIO;
|
|
698
899
|
const capWeight = (dropCap.fontWeight ?? el.fontWeight) === 400 ? 'normal' : String(dropCap.fontWeight ?? el.fontWeight);
|
|
699
900
|
const capFont = buildFontString(dropCap.fontFamily ?? el.fontFamily, capFontPx, capWeight, 'normal');
|
|
700
901
|
const letter = paragraphs[0].slice(0, 1);
|
|
701
902
|
paragraphs[0] = paragraphs[0].slice(1).trimStart();
|
|
903
|
+
paraRanges[0][0] = paraRanges[0][1] - paragraphs[0].length;
|
|
702
904
|
const capW = measureTextWidth(letter, capFont);
|
|
703
905
|
capRoom = capW + Math.max(0, dimPx(dropCap.gap, dpi, fontSizePx));
|
|
704
906
|
cap = { text: letter, font: capFont, fontPx: capFontPx, width: capW, lines: capLines, color: colorHex(dropCap.color ?? el.color) };
|
|
705
907
|
}
|
|
908
|
+
// Justified lines fill their room by stretching their word spaces, and
|
|
909
|
+
// a word that does not fit may be cut at a syllable to fill (EF-109).
|
|
910
|
+
const fill = justify && (el.hyphenate ?? false);
|
|
911
|
+
const measureIn = (t, font) => Math.max(0, measureTextWidth(t, font) + letterSpacingPx * t.length);
|
|
706
912
|
let lineNo = 0;
|
|
707
913
|
paragraphs.forEach((para, p) => {
|
|
708
914
|
const offsetOf = (i) => {
|
|
@@ -712,17 +918,25 @@ function layoutTextElement(el, text, pin, container, dpi, anchoredToElement) {
|
|
|
712
918
|
return paraIndentPx;
|
|
713
919
|
return 0;
|
|
714
920
|
};
|
|
715
|
-
const
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
921
|
+
const lines = richM
|
|
922
|
+
? wrapRich(richM, paraRanges[p][0], paraRanges[p][1], (i) => maxW - offsetOf(i), el.hyphenate ?? false, fill)
|
|
923
|
+
: wrapWithWidths(para, measure, (i) => maxW - offsetOf(i), el.hyphenate ?? false, 0, fill).map((t) => ({ text: t, width: measure(t) }));
|
|
924
|
+
lines.forEach((l, i) => {
|
|
925
|
+
// The last line of a paragraph is set flush left. The others are
|
|
926
|
+
// stretched until their last glyph ends on the edge: the tracking
|
|
927
|
+
// after it runs past (EF-153).
|
|
928
|
+
const line = justify && i < lines.length - 1
|
|
929
|
+
? justifyLine(l, maxW - offsetOf(i) + trailingTracking(l.text.trimEnd(), letterSpacingPx), measure, measureIn, fontString)
|
|
930
|
+
: l;
|
|
719
931
|
wrapped.push({
|
|
720
|
-
text:
|
|
721
|
-
width:
|
|
932
|
+
text: line.text,
|
|
933
|
+
width: line.width,
|
|
722
934
|
xOffset: offsetOf(i),
|
|
723
935
|
topY: lineNo * lineHeightPx,
|
|
724
936
|
baselineY: lineNo * lineHeightPx + lineHeightPx * 0.8,
|
|
725
937
|
height: lineHeightPx,
|
|
938
|
+
...(line.runs ? { runs: line.runs } : {}),
|
|
939
|
+
...(line.wordSpacingPx !== undefined ? { wordSpacingPx: line.wordSpacingPx } : {}),
|
|
726
940
|
});
|
|
727
941
|
lineNo++;
|
|
728
942
|
});
|
|
@@ -730,10 +944,21 @@ function layoutTextElement(el, text, pin, container, dpi, anchoredToElement) {
|
|
|
730
944
|
const w = wrapped.reduce((mx, l) => Math.max(mx, l.width + (l.xOffset ?? 0)), 0);
|
|
731
945
|
m = { lines: wrapped, contentWidth: w, contentHeight: wrapped.length * lineHeightPx, needsClip: false };
|
|
732
946
|
}
|
|
947
|
+
else if (richM && contentMax !== undefined) {
|
|
948
|
+
m = layoutRichText(richM, lineHeightPx, el.overflow, contentMax, el.hyphenate);
|
|
949
|
+
}
|
|
733
950
|
else {
|
|
734
|
-
m = layoutText(text, measure,
|
|
951
|
+
m = layoutText(text, measure, lineHeightPx, el.overflow, contentMax, el.hyphenate);
|
|
952
|
+
}
|
|
953
|
+
// The tracking after a line's last glyph is advance, not ink: a box that
|
|
954
|
+
// shrink-wraps its text leaves it out (EF-153), as the alignment of each
|
|
955
|
+
// line does (`textPrimitiveToBlock`), so a tracked title anchored to a
|
|
956
|
+
// corner or a centre sits where its letters are.
|
|
957
|
+
let contentWidth = m.contentWidth;
|
|
958
|
+
if (letterSpacingPx !== 0) {
|
|
959
|
+
const inkWidth = m.lines.reduce((mx, l) => Math.max(mx, (l.xOffset ?? 0) + Math.max(0, l.width - trailingTracking(l.text, letterSpacingPx))), 0);
|
|
960
|
+
contentWidth = m.needsClip && contentMax !== undefined ? Math.min(inkWidth, contentMax) : inkWidth;
|
|
735
961
|
}
|
|
736
|
-
const contentWidth = m.contentWidth;
|
|
737
962
|
if (elementWidth === undefined)
|
|
738
963
|
elementWidth = contentWidth + padding.left + padding.right;
|
|
739
964
|
if (clampToContainer) {
|
|
@@ -780,18 +1005,21 @@ function layoutTextElement(el, text, pin, container, dpi, anchoredToElement) {
|
|
|
780
1005
|
contentWidth: Math.max(0, elementWidth - padding.left - padding.right),
|
|
781
1006
|
contentHeight: Math.max(0, elementHeight - padding.top - padding.bottom),
|
|
782
1007
|
box,
|
|
1008
|
+
...(stroke ? { stroke } : {}),
|
|
783
1009
|
};
|
|
784
1010
|
if (!cap)
|
|
785
1011
|
return [main];
|
|
786
|
-
// The drop cap: its baseline on the baseline of the last line it spans
|
|
1012
|
+
// The drop cap: its baseline on the baseline of the last line it spans,
|
|
1013
|
+
// wherever `verticalAlign` moves those lines in the box.
|
|
787
1014
|
const capLineH = cap.fontPx * 1.2;
|
|
788
1015
|
const anchorLine = m.lines[Math.min(cap.lines, m.lines.length) - 1];
|
|
789
1016
|
const targetBaseline = anchorLine ? anchorLine.baselineY : lineHeightPx * 0.8;
|
|
1017
|
+
const linesOffset = textVerticalOffset(el.verticalAlign, main.contentHeight, m.lines);
|
|
790
1018
|
const capPrim = {
|
|
791
1019
|
kind: 'text',
|
|
792
1020
|
id: `${el.id}-dropcap`,
|
|
793
1021
|
x: x + padding.left,
|
|
794
|
-
y: y + padding.top + targetBaseline - capLineH * 0.8,
|
|
1022
|
+
y: y + padding.top + linesOffset + targetBaseline - capLineH * 0.8,
|
|
795
1023
|
width: cap.width,
|
|
796
1024
|
height: capLineH,
|
|
797
1025
|
lines: [{ text: cap.text, width: cap.width, topY: 0, baselineY: capLineH * 0.8, height: capLineH }],
|
|
@@ -801,11 +1029,14 @@ function layoutTextElement(el, text, pin, container, dpi, anchoredToElement) {
|
|
|
801
1029
|
align: 'left',
|
|
802
1030
|
verticalAlign: 'top',
|
|
803
1031
|
needsClip: false,
|
|
1032
|
+
dropCap: true,
|
|
804
1033
|
letterSpacingPx: 0,
|
|
805
1034
|
contentX: 0,
|
|
806
1035
|
contentY: 0,
|
|
807
1036
|
contentWidth: cap.width,
|
|
808
1037
|
contentHeight: capLineH,
|
|
1038
|
+
// The outline takes the cap's own colour unless it sets one.
|
|
1039
|
+
...(stroke ? { stroke: { ...stroke, color: el.stroke?.color ? stroke.color : cap.color } } : {}),
|
|
809
1040
|
};
|
|
810
1041
|
return [main, capPrim];
|
|
811
1042
|
}
|
|
@@ -898,6 +1129,7 @@ function layoutImageElement(el, pin, container, dpi, resourceById) {
|
|
|
898
1129
|
height: h,
|
|
899
1130
|
fileId,
|
|
900
1131
|
...(resource?.bitmap?.format ? { format: resource.bitmap.format } : {}),
|
|
1132
|
+
...pictureTraits(resource, fileId),
|
|
901
1133
|
};
|
|
902
1134
|
}
|
|
903
1135
|
function layoutBoxElement(el, pin, container, dpi) {
|