postext 0.1.10 → 0.1.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/dist/__tests__/exports.test.js +5 -0
  2. package/dist/__tests__/exports.test.js.map +1 -1
  3. package/dist/canvas-backend.d.ts.map +1 -1
  4. package/dist/canvas-backend.js +30 -2
  5. package/dist/canvas-backend.js.map +1 -1
  6. package/dist/defaults/bodyText.d.ts +7 -0
  7. package/dist/defaults/bodyText.d.ts.map +1 -0
  8. package/dist/defaults/bodyText.js +120 -0
  9. package/dist/defaults/bodyText.js.map +1 -0
  10. package/dist/defaults/debug.d.ts +5 -0
  11. package/dist/defaults/debug.d.ts.map +1 -0
  12. package/dist/defaults/debug.js +78 -0
  13. package/dist/defaults/debug.js.map +1 -0
  14. package/dist/defaults/headings.d.ts +5 -0
  15. package/dist/defaults/headings.d.ts.map +1 -0
  16. package/dist/defaults/headings.js +142 -0
  17. package/dist/defaults/headings.js.map +1 -0
  18. package/dist/defaults/index.d.ts +11 -0
  19. package/dist/defaults/index.d.ts.map +1 -0
  20. package/dist/defaults/index.js +69 -0
  21. package/dist/defaults/index.js.map +1 -0
  22. package/dist/defaults/layout.d.ts +16 -0
  23. package/dist/defaults/layout.d.ts.map +1 -0
  24. package/dist/defaults/layout.js +68 -0
  25. package/dist/defaults/layout.js.map +1 -0
  26. package/dist/defaults/lists-shared.d.ts +15 -0
  27. package/dist/defaults/lists-shared.d.ts.map +1 -0
  28. package/dist/defaults/lists-shared.js +14 -0
  29. package/dist/defaults/lists-shared.js.map +1 -0
  30. package/dist/defaults/orderedLists.d.ts +18 -0
  31. package/dist/defaults/orderedLists.d.ts.map +1 -0
  32. package/dist/defaults/orderedLists.js +174 -0
  33. package/dist/defaults/orderedLists.js.map +1 -0
  34. package/dist/defaults/page.d.ts +32 -0
  35. package/dist/defaults/page.d.ts.map +1 -0
  36. package/dist/defaults/page.js +147 -0
  37. package/dist/defaults/page.js.map +1 -0
  38. package/dist/defaults/shared.d.ts +7 -0
  39. package/dist/defaults/shared.d.ts.map +1 -0
  40. package/dist/defaults/shared.js +97 -0
  41. package/dist/defaults/shared.js.map +1 -0
  42. package/dist/defaults/unorderedLists.d.ts +21 -0
  43. package/dist/defaults/unorderedLists.d.ts.map +1 -0
  44. package/dist/defaults/unorderedLists.js +188 -0
  45. package/dist/defaults/unorderedLists.js.map +1 -0
  46. package/dist/index.d.ts +3 -3
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +1 -1
  49. package/dist/index.js.map +1 -1
  50. package/dist/measure.d.ts.map +1 -1
  51. package/dist/measure.js +112 -12
  52. package/dist/measure.js.map +1 -1
  53. package/dist/parse.d.ts +7 -0
  54. package/dist/parse.d.ts.map +1 -1
  55. package/dist/parse.js +53 -17
  56. package/dist/parse.js.map +1 -1
  57. package/dist/pipeline/build.d.ts +4 -0
  58. package/dist/pipeline/build.d.ts.map +1 -0
  59. package/dist/{pipeline.js → pipeline/build.js} +52 -246
  60. package/dist/pipeline/build.js.map +1 -0
  61. package/dist/pipeline/config.d.ts +6 -0
  62. package/dist/pipeline/config.d.ts.map +1 -0
  63. package/dist/pipeline/config.js +48 -0
  64. package/dist/pipeline/config.js.map +1 -0
  65. package/dist/pipeline/index.d.ts +2 -0
  66. package/dist/pipeline/index.d.ts.map +1 -0
  67. package/dist/pipeline/index.js +2 -0
  68. package/dist/pipeline/index.js.map +1 -0
  69. package/dist/pipeline/lists.d.ts +54 -0
  70. package/dist/pipeline/lists.d.ts.map +1 -0
  71. package/dist/pipeline/lists.js +298 -0
  72. package/dist/pipeline/lists.js.map +1 -0
  73. package/dist/pipeline/placement.d.ts +11 -0
  74. package/dist/pipeline/placement.d.ts.map +1 -0
  75. package/dist/pipeline/placement.js +48 -0
  76. package/dist/pipeline/placement.js.map +1 -0
  77. package/dist/pipeline/styles.d.ts +23 -0
  78. package/dist/pipeline/styles.d.ts.map +1 -0
  79. package/dist/pipeline/styles.js +62 -0
  80. package/dist/pipeline/styles.js.map +1 -0
  81. package/dist/types.d.ts +103 -0
  82. package/dist/types.d.ts.map +1 -1
  83. package/dist/vdt.d.ts +11 -1
  84. package/dist/vdt.d.ts.map +1 -1
  85. package/dist/vdt.js.map +1 -1
  86. package/package.json +2 -2
  87. package/dist/defaults.d.ts +0 -76
  88. package/dist/defaults.d.ts.map +0 -1
  89. package/dist/defaults.js +0 -719
  90. package/dist/defaults.js.map +0 -1
  91. package/dist/pipeline.d.ts +0 -4
  92. package/dist/pipeline.d.ts.map +0 -1
  93. package/dist/pipeline.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/pipeline/build.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { PostextConfig } from '../types';
2
+ import { type BoundingBox, type ResolvedConfig } from '../vdt';
3
+ export declare function resolveAllConfig(rawConfig?: PostextConfig): ResolvedConfig;
4
+ export declare function computeBaselineGrid(resolved: ResolvedConfig): number;
5
+ export declare function computeColumnBboxes(contentArea: BoundingBox, resolved: ResolvedConfig): BoundingBox[];
6
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/pipeline/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAW9C,OAAO,EAAqB,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,QAAQ,CAAC;AAElF,wBAAgB,gBAAgB,CAAC,SAAS,CAAC,EAAE,aAAa,GAAG,cAAc,CAW1E;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAUpE;AAED,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,cAAc,GACvB,WAAW,EAAE,CAyBf"}
@@ -0,0 +1,48 @@
1
+ import { resolvePageConfig, resolveLayoutConfig, resolveBodyTextConfig, resolveHeadingsConfig, resolveUnorderedListsConfig, resolveOrderedListsConfig, applyPaletteToConfig, } from '../defaults';
2
+ import { dimensionToPx } from '../units';
3
+ import { createBoundingBox } from '../vdt';
4
+ export function resolveAllConfig(rawConfig) {
5
+ const config = applyPaletteToConfig(rawConfig);
6
+ const bodyText = resolveBodyTextConfig(config?.bodyText);
7
+ return {
8
+ page: resolvePageConfig(config?.page),
9
+ layout: resolveLayoutConfig(config?.layout),
10
+ bodyText,
11
+ headings: resolveHeadingsConfig(config?.headings),
12
+ unorderedLists: resolveUnorderedListsConfig(config?.unorderedLists, bodyText),
13
+ orderedLists: resolveOrderedListsConfig(config?.orderedLists, bodyText),
14
+ };
15
+ }
16
+ export function computeBaselineGrid(resolved) {
17
+ const dpi = resolved.page.dpi;
18
+ const bodyFontSizePx = dimensionToPx(resolved.bodyText.fontSize, dpi);
19
+ const lineHeightDim = resolved.bodyText.lineHeight;
20
+ // em/rem: multiplier of font size; pt/px/cm/etc: absolute
21
+ if (lineHeightDim.unit === 'em' || lineHeightDim.unit === 'rem') {
22
+ return bodyFontSizePx * lineHeightDim.value;
23
+ }
24
+ return dimensionToPx(lineHeightDim, dpi, bodyFontSizePx);
25
+ }
26
+ export function computeColumnBboxes(contentArea, resolved) {
27
+ const { layoutType, gutterWidth, sideColumnPercent } = resolved.layout;
28
+ const dpi = resolved.page.dpi;
29
+ if (layoutType === 'single') {
30
+ return [createBoundingBox(contentArea.x, contentArea.y, contentArea.width, contentArea.height)];
31
+ }
32
+ const gutterPx = dimensionToPx(gutterWidth, dpi);
33
+ if (layoutType === 'double') {
34
+ const colWidth = (contentArea.width - gutterPx) / 2;
35
+ return [
36
+ createBoundingBox(contentArea.x, contentArea.y, colWidth, contentArea.height),
37
+ createBoundingBox(contentArea.x + colWidth + gutterPx, contentArea.y, colWidth, contentArea.height),
38
+ ];
39
+ }
40
+ // oneAndHalf
41
+ const sideWidth = contentArea.width * (sideColumnPercent / 100);
42
+ const mainWidth = contentArea.width - sideWidth - gutterPx;
43
+ return [
44
+ createBoundingBox(contentArea.x, contentArea.y, mainWidth, contentArea.height),
45
+ createBoundingBox(contentArea.x + mainWidth + gutterPx, contentArea.y, sideWidth, contentArea.height),
46
+ ];
47
+ }
48
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/pipeline/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { buildDocument } from './build';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pipeline/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { buildDocument } from './build';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pipeline/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,54 @@
1
+ import type { ContentBlock } from '../parse';
2
+ import type { ResolvedConfig } from '../vdt';
3
+ import type { BlockStyle } from './styles';
4
+ export interface ListBulletStyle {
5
+ indentPx: number;
6
+ bulletText: string;
7
+ bulletFontString: string;
8
+ bulletColor: string;
9
+ bulletWidthPx: number;
10
+ gapPx: number;
11
+ hangingIndent: boolean;
12
+ itemSpacingPx: number;
13
+ textFontSizePx: number;
14
+ verticalOffsetPx: number;
15
+ }
16
+ export interface ListItemResolved {
17
+ text: BlockStyle;
18
+ bullet: ListBulletStyle;
19
+ /** The bullet's left-edge X offset WITHIN the column (for right-aligned ordered numbers). Added to block.bbox.x at finalize time. */
20
+ bulletXOffsetInColumn: number;
21
+ strikethroughText: boolean;
22
+ }
23
+ export interface OrderedRunMetric {
24
+ numberText: string;
25
+ numberWidthPx: number;
26
+ maxNumberWidthPx: number;
27
+ }
28
+ export interface OrderedListMetrics {
29
+ perBlock: Map<number, OrderedRunMetric>;
30
+ maxWidthByDepth: Map<number, number>;
31
+ }
32
+ /**
33
+ * Compute the effective indent in px for each unordered list level.
34
+ * User-overridden `indent` is honored directly. Otherwise level 1 falls back to
35
+ * the general indent, and deeper levels cascade from the previous level's
36
+ * text-start position (prev indent + prev bullet width + gap).
37
+ */
38
+ export declare function computeLevelIndentsPx(resolved: ResolvedConfig, bodyFontSizePx: number): number[];
39
+ /**
40
+ * Same as computeLevelIndentsPx but for ordered lists. The cascade uses the
41
+ * per-depth max number width observed in the document (falling back to a
42
+ * width approximation based on "99." when no runs exist at that depth).
43
+ */
44
+ export declare function computeOrderedLevelIndentsPx(resolved: ResolvedConfig, bodyFontSizePx: number, maxNumberWidthByDepth: Map<number, number>): number[];
45
+ /**
46
+ * Walks content blocks identifying contiguous ordered-list runs per depth,
47
+ * computes each item's formatted number + width, and the max width per run
48
+ * (for right-align). Also tracks the global max per depth (for level-indent
49
+ * cascade in ordered lists).
50
+ */
51
+ export declare function computeOrderedListRunMetrics(contentBlocks: ContentBlock[], resolved: ResolvedConfig, bodyFontSizePx: number): OrderedListMetrics;
52
+ export declare function resolveUnorderedListItemStyle(depth: number, resolved: ResolvedConfig, levelIndentsPx: number[], checked: boolean, isTask: boolean): ListItemResolved;
53
+ export declare function resolveOrderedListItemStyle(depth: number, resolved: ResolvedConfig, levelIndentsPx: number[], metric: OrderedRunMetric): ListItemResolved;
54
+ //# sourceMappingURL=lists.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lists.d.ts","sourceRoot":"","sources":["../../src/pipeline/lists.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAY,MAAM,UAAU,CAAC;AAEvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAE7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAG3C,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,eAAe,CAAC;IACxB,qIAAqI;IACrI,qBAAqB,EAAE,MAAM,CAAC;IAC9B,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACxC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AAQD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE,CA4BhG;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,cAAc,EACxB,cAAc,EAAE,MAAM,EACtB,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACzC,MAAM,EAAE,CA+BV;AAyCD;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,aAAa,EAAE,YAAY,EAAE,EAC7B,QAAQ,EAAE,cAAc,EACxB,cAAc,EAAE,MAAM,GACrB,kBAAkB,CAwFpB;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,cAAc,EACxB,cAAc,EAAE,MAAM,EAAE,EACxB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,OAAO,GACd,gBAAgB,CA4DlB;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,cAAc,EACxB,cAAc,EAAE,MAAM,EAAE,EACxB,MAAM,EAAE,gBAAgB,GACvB,gBAAgB,CAoDlB"}
@@ -0,0 +1,298 @@
1
+ import { dimensionToPx } from '../units';
2
+ import { buildFontString, measureGlyphWidth } from '../measure';
3
+ import { resolveBodyStyle } from './styles';
4
+ /**
5
+ * Compute the effective indent in px for each unordered list level.
6
+ * User-overridden `indent` is honored directly. Otherwise level 1 falls back to
7
+ * the general indent, and deeper levels cascade from the previous level's
8
+ * text-start position (prev indent + prev bullet width + gap).
9
+ */
10
+ export function computeLevelIndentsPx(resolved, bodyFontSizePx) {
11
+ const dpi = resolved.page.dpi;
12
+ const lists = resolved.unorderedLists;
13
+ const gapPx = dimensionToPx(lists.gap, dpi, bodyFontSizePx);
14
+ const generalIndentPx = dimensionToPx(lists.indent, dpi, bodyFontSizePx);
15
+ const result = [];
16
+ for (let i = 0; i < lists.levels.length; i++) {
17
+ const level = lists.levels[i];
18
+ let indentPx;
19
+ if (level.indent !== undefined) {
20
+ indentPx = dimensionToPx(level.indent, dpi, bodyFontSizePx);
21
+ }
22
+ else if (i === 0) {
23
+ indentPx = generalIndentPx;
24
+ }
25
+ else {
26
+ const prev = lists.levels[i - 1];
27
+ const prevFontSizePx = dimensionToPx(prev.fontSize, dpi, bodyFontSizePx);
28
+ const prevFontString = buildFontString(prev.fontFamily, prevFontSizePx, prev.fontWeight.toString(), prev.italic ? 'italic' : 'normal');
29
+ const prevBulletWidthPx = measureGlyphWidth(prev.bulletChar, prevFontString);
30
+ indentPx = result[i - 1] + prevBulletWidthPx + gapPx;
31
+ }
32
+ result.push(indentPx);
33
+ }
34
+ return result;
35
+ }
36
+ /**
37
+ * Same as computeLevelIndentsPx but for ordered lists. The cascade uses the
38
+ * per-depth max number width observed in the document (falling back to a
39
+ * width approximation based on "99." when no runs exist at that depth).
40
+ */
41
+ export function computeOrderedLevelIndentsPx(resolved, bodyFontSizePx, maxNumberWidthByDepth) {
42
+ const dpi = resolved.page.dpi;
43
+ const lists = resolved.orderedLists;
44
+ const gapPx = dimensionToPx(lists.gap, dpi, bodyFontSizePx);
45
+ const generalIndentPx = dimensionToPx(lists.indent, dpi, bodyFontSizePx);
46
+ const result = [];
47
+ for (let i = 0; i < lists.levels.length; i++) {
48
+ const level = lists.levels[i];
49
+ let indentPx;
50
+ if (level.indent !== undefined) {
51
+ indentPx = dimensionToPx(level.indent, dpi, bodyFontSizePx);
52
+ }
53
+ else if (i === 0) {
54
+ indentPx = generalIndentPx;
55
+ }
56
+ else {
57
+ const prevLevel = i; // 1-based depth of previous = i
58
+ const prev = lists.levels[i - 1];
59
+ const prevFontSizePx = dimensionToPx(prev.fontSize, dpi, bodyFontSizePx);
60
+ const prevFontString = buildFontString(prev.fontFamily, prevFontSizePx, prev.fontWeight.toString(), prev.italic ? 'italic' : 'normal');
61
+ const fallbackWidthPx = measureGlyphWidth('99' + prev.separator, prevFontString);
62
+ const observedMax = maxNumberWidthByDepth.get(prevLevel);
63
+ const prevNumberWidthPx = observedMax ?? fallbackWidthPx;
64
+ indentPx = result[i - 1] + prevNumberWidthPx + gapPx;
65
+ }
66
+ result.push(indentPx);
67
+ }
68
+ return result;
69
+ }
70
+ function toRoman(n) {
71
+ if (n <= 0 || n >= 4000)
72
+ return n.toString();
73
+ const pairs = [
74
+ [1000, 'M'], [900, 'CM'], [500, 'D'], [400, 'CD'],
75
+ [100, 'C'], [90, 'XC'], [50, 'L'], [40, 'XL'],
76
+ [10, 'X'], [9, 'IX'], [5, 'V'], [4, 'IV'], [1, 'I'],
77
+ ];
78
+ let out = '';
79
+ for (const [v, s] of pairs) {
80
+ while (n >= v) {
81
+ out += s;
82
+ n -= v;
83
+ }
84
+ }
85
+ return out;
86
+ }
87
+ function toAlpha(n, upper) {
88
+ if (n <= 0)
89
+ return n.toString();
90
+ const base = upper ? 65 : 97;
91
+ let s = '';
92
+ while (n > 0) {
93
+ n -= 1;
94
+ s = String.fromCharCode(base + (n % 26)) + s;
95
+ n = Math.floor(n / 26);
96
+ }
97
+ return s;
98
+ }
99
+ function formatListNumber(n, format) {
100
+ switch (format) {
101
+ case 'arabic': return n.toString();
102
+ case 'lower-alpha': return toAlpha(n, false);
103
+ case 'upper-alpha': return toAlpha(n, true);
104
+ case 'lower-roman': return toRoman(n).toLowerCase();
105
+ case 'upper-roman': return toRoman(n);
106
+ }
107
+ }
108
+ /**
109
+ * Walks content blocks identifying contiguous ordered-list runs per depth,
110
+ * computes each item's formatted number + width, and the max width per run
111
+ * (for right-align). Also tracks the global max per depth (for level-indent
112
+ * cascade in ordered lists).
113
+ */
114
+ export function computeOrderedListRunMetrics(contentBlocks, resolved, bodyFontSizePx) {
115
+ const dpi = resolved.page.dpi;
116
+ const lists = resolved.orderedLists;
117
+ const perBlock = new Map();
118
+ const maxWidthByDepth = new Map();
119
+ const runsByDepth = new Map();
120
+ // Pre-compute per-level font strings (used to measure number widths).
121
+ const levelFontStrings = lists.levels.map((lvl) => {
122
+ const fontSizePx = dimensionToPx(lvl.fontSize, dpi, bodyFontSizePx);
123
+ return buildFontString(lvl.fontFamily, fontSizePx, lvl.fontWeight.toString(), lvl.italic ? 'italic' : 'normal');
124
+ });
125
+ const closeRun = (depth) => {
126
+ const run = runsByDepth.get(depth);
127
+ if (!run || run.kind !== 'ordered' || run.itemIdxs.length === 0) {
128
+ runsByDepth.delete(depth);
129
+ return;
130
+ }
131
+ const levelIdx = Math.max(0, Math.min(levelFontStrings.length - 1, depth - 1));
132
+ const fontString = levelFontStrings[levelIdx];
133
+ let maxWidth = 0;
134
+ const widths = new Map();
135
+ for (const idx of run.itemIdxs) {
136
+ const entry = perBlock.get(idx);
137
+ if (!entry)
138
+ continue;
139
+ const w = measureGlyphWidth(entry.numberText, fontString);
140
+ widths.set(idx, w);
141
+ if (w > maxWidth)
142
+ maxWidth = w;
143
+ }
144
+ for (const idx of run.itemIdxs) {
145
+ const entry = perBlock.get(idx);
146
+ if (!entry)
147
+ continue;
148
+ entry.numberWidthPx = widths.get(idx) ?? 0;
149
+ entry.maxNumberWidthPx = maxWidth;
150
+ }
151
+ const prevDepthMax = maxWidthByDepth.get(depth) ?? 0;
152
+ if (maxWidth > prevDepthMax)
153
+ maxWidthByDepth.set(depth, maxWidth);
154
+ runsByDepth.delete(depth);
155
+ };
156
+ const closeAllRuns = () => {
157
+ for (const depth of Array.from(runsByDepth.keys()))
158
+ closeRun(depth);
159
+ };
160
+ const closeDeeperRuns = (depth) => {
161
+ for (const d of Array.from(runsByDepth.keys())) {
162
+ if (d > depth)
163
+ closeRun(d);
164
+ }
165
+ };
166
+ for (let i = 0; i < contentBlocks.length; i++) {
167
+ const block = contentBlocks[i];
168
+ if (block.type !== 'listItem') {
169
+ closeAllRuns();
170
+ continue;
171
+ }
172
+ const depth = block.depth ?? 1;
173
+ const kind = block.listKind ?? 'unordered';
174
+ closeDeeperRuns(depth);
175
+ const existing = runsByDepth.get(depth);
176
+ if (!existing || existing.kind !== kind) {
177
+ if (existing)
178
+ closeRun(depth);
179
+ runsByDepth.set(depth, { kind, counter: 0, itemIdxs: [] });
180
+ }
181
+ const run = runsByDepth.get(depth);
182
+ if (kind === 'ordered') {
183
+ // Honor the literal MD number for every item — authors can type `1. 2. 10.`
184
+ // to get `1. 2. 10.` in the render. Falls back to an auto-increment when
185
+ // the parser didn't attach a number (defensive; always set in practice).
186
+ const counter = block.startNumber ?? run.counter + 1;
187
+ run.counter = counter;
188
+ run.itemIdxs.push(i);
189
+ const levelIdx = Math.max(0, Math.min(lists.levels.length - 1, depth - 1));
190
+ const levelCfg = lists.levels[levelIdx];
191
+ const numberText = formatListNumber(counter, levelCfg.numberFormat) + levelCfg.separator;
192
+ perBlock.set(i, { numberText, numberWidthPx: 0, maxNumberWidthPx: 0 });
193
+ }
194
+ }
195
+ closeAllRuns();
196
+ return { perBlock, maxWidthByDepth };
197
+ }
198
+ export function resolveUnorderedListItemStyle(depth, resolved, levelIndentsPx, checked, isTask) {
199
+ const dpi = resolved.page.dpi;
200
+ const bodyStyle = resolveBodyStyle(resolved);
201
+ const lists = resolved.unorderedLists;
202
+ const levelIdx = Math.max(0, Math.min(lists.levels.length - 1, depth - 1));
203
+ const levelConfig = lists.levels[levelIdx];
204
+ const bulletFontSizePx = dimensionToPx(levelConfig.fontSize, dpi, bodyStyle.fontSizePx);
205
+ const bulletWeight = levelConfig.fontWeight.toString();
206
+ const bulletStyle = levelConfig.italic ? 'italic' : 'normal';
207
+ const bulletFontString = buildFontString(levelConfig.fontFamily, bulletFontSizePx, bulletWeight, bulletStyle);
208
+ const bulletChar = isTask
209
+ ? checked
210
+ ? lists.taskCheckedChar
211
+ : lists.taskCheckboxChar
212
+ : levelConfig.bulletChar;
213
+ const indentPx = levelIndentsPx[levelIdx] ?? 0;
214
+ const gapPx = dimensionToPx(lists.gap, dpi, bodyStyle.fontSizePx);
215
+ const bulletWidthPx = measureGlyphWidth(bulletChar, bulletFontString);
216
+ const itemSpacingPx = dimensionToPx(lists.itemSpacing, dpi, bodyStyle.fontSizePx);
217
+ const verticalOffsetPx = dimensionToPx(levelConfig.verticalOffset, dpi, bodyStyle.fontSizePx);
218
+ const marginTopPx = dimensionToPx(lists.marginTop, dpi, bodyStyle.fontSizePx);
219
+ const marginBottomPx = dimensionToPx(lists.marginBottom, dpi, bodyStyle.fontSizePx);
220
+ const completedMutedColor = isTask && checked && lists.taskCompletedColor ? lists.taskCompletedColor.hex : undefined;
221
+ const textColor = completedMutedColor ?? bodyStyle.color;
222
+ const text = {
223
+ ...bodyStyle,
224
+ color: textColor,
225
+ boldColor: completedMutedColor ? undefined : bodyStyle.boldColor,
226
+ italicColor: completedMutedColor ? undefined : bodyStyle.italicColor,
227
+ marginTopPx,
228
+ marginBottomPx,
229
+ firstLineIndentPx: 0,
230
+ hangingIndent: false,
231
+ };
232
+ const bullet = {
233
+ indentPx,
234
+ bulletText: bulletChar,
235
+ bulletFontString,
236
+ bulletColor: levelConfig.color.hex,
237
+ bulletWidthPx,
238
+ gapPx,
239
+ hangingIndent: lists.hangingIndent,
240
+ itemSpacingPx,
241
+ textFontSizePx: bodyStyle.fontSizePx,
242
+ verticalOffsetPx,
243
+ };
244
+ return {
245
+ text,
246
+ bullet,
247
+ bulletXOffsetInColumn: indentPx,
248
+ strikethroughText: isTask && checked && lists.taskCompletedStrikethrough,
249
+ };
250
+ }
251
+ export function resolveOrderedListItemStyle(depth, resolved, levelIndentsPx, metric) {
252
+ const dpi = resolved.page.dpi;
253
+ const bodyStyle = resolveBodyStyle(resolved);
254
+ const lists = resolved.orderedLists;
255
+ const levelIdx = Math.max(0, Math.min(lists.levels.length - 1, depth - 1));
256
+ const levelConfig = lists.levels[levelIdx];
257
+ const numberFontSizePx = dimensionToPx(levelConfig.fontSize, dpi, bodyStyle.fontSizePx);
258
+ const numberWeight = levelConfig.fontWeight.toString();
259
+ const numberStyle = levelConfig.italic ? 'italic' : 'normal';
260
+ const numberFontString = buildFontString(levelConfig.fontFamily, numberFontSizePx, numberWeight, numberStyle);
261
+ const indentPx = levelIndentsPx[levelIdx] ?? 0;
262
+ const gapPx = dimensionToPx(lists.gap, dpi, bodyStyle.fontSizePx);
263
+ const itemSpacingPx = dimensionToPx(lists.itemSpacing, dpi, bodyStyle.fontSizePx);
264
+ const verticalOffsetPx = dimensionToPx(levelConfig.verticalOffset, dpi, bodyStyle.fontSizePx);
265
+ const marginTopPx = dimensionToPx(lists.marginTop, dpi, bodyStyle.fontSizePx);
266
+ const marginBottomPx = dimensionToPx(lists.marginBottom, dpi, bodyStyle.fontSizePx);
267
+ // Right-align: reserve max width so text starts after `indent + maxWidth + gap`.
268
+ // The individual number is drawn at `indent + (maxWidth - thisWidth)`.
269
+ const rightAlignOffsetPx = Math.max(0, metric.maxNumberWidthPx - metric.numberWidthPx);
270
+ const text = {
271
+ ...bodyStyle,
272
+ marginTopPx,
273
+ marginBottomPx,
274
+ firstLineIndentPx: 0,
275
+ hangingIndent: false,
276
+ };
277
+ const bullet = {
278
+ indentPx,
279
+ bulletText: metric.numberText,
280
+ bulletFontString: numberFontString,
281
+ bulletColor: levelConfig.color.hex,
282
+ // Report the MAX width so the common text-shift math (`indent + bulletWidth + gap`)
283
+ // still carves out the full numbered column for every item in the run.
284
+ bulletWidthPx: metric.maxNumberWidthPx,
285
+ gapPx,
286
+ hangingIndent: lists.hangingIndent,
287
+ itemSpacingPx,
288
+ textFontSizePx: bodyStyle.fontSizePx,
289
+ verticalOffsetPx,
290
+ };
291
+ return {
292
+ text,
293
+ bullet,
294
+ bulletXOffsetInColumn: indentPx + rightAlignOffsetPx,
295
+ strikethroughText: false,
296
+ };
297
+ }
298
+ //# sourceMappingURL=lists.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lists.js","sourceRoot":"","sources":["../../src/pipeline/lists.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { type BoundingBox, type ResolvedConfig, type VDTDocument, type VDTBlock, type VDTLine, type VDTPage, type VDTColumn } from '../vdt';
2
+ export interface PlacementCursor {
3
+ pageIndex: number;
4
+ columnIndex: number;
5
+ }
6
+ export declare function resetLinePositions(lines: VDTLine[], lineHeightPx: number): VDTLine[];
7
+ export declare function createPageWithColumns(pageIndex: number, resolved: ResolvedConfig, contentArea: BoundingBox, pageWidthPx: number, pageHeightPx: number): VDTPage;
8
+ export declare function currentColumn(doc: VDTDocument, cursor: PlacementCursor): VDTColumn;
9
+ export declare function advanceToNextColumn(doc: VDTDocument, cursor: PlacementCursor, resolved: ResolvedConfig, contentArea: BoundingBox, pageWidthPx: number, pageHeightPx: number): void;
10
+ export declare function placeBlockInColumn(block: VDTBlock, blockHeight: number, col: VDTColumn, cursor: PlacementCursor): void;
11
+ //# sourceMappingURL=placement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"placement.d.ts","sourceRoot":"","sources":["../../src/pipeline/placement.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,SAAS,EACf,MAAM,QAAQ,CAAC;AAGhB,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,OAAO,EAAE,EAChB,YAAY,EAAE,MAAM,GACnB,OAAO,EAAE,CAMX;AAED,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,cAAc,EACxB,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GACnB,OAAO,CAOT;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,GAAG,SAAS,CAElF;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,cAAc,EACxB,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GACnB,IAAI,CAiBN;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,QAAQ,EACf,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,eAAe,GACtB,IAAI,CAeN"}
@@ -0,0 +1,48 @@
1
+ import { createBoundingBox, createVDTPage, createVDTColumn, } from '../vdt';
2
+ import { computeColumnBboxes } from './config';
3
+ export function resetLinePositions(lines, lineHeightPx) {
4
+ return lines.map((line, i) => ({
5
+ ...line,
6
+ bbox: createBoundingBox(line.bbox.x, i * lineHeightPx, line.bbox.width, lineHeightPx),
7
+ baseline: i * lineHeightPx + lineHeightPx * 0.8,
8
+ }));
9
+ }
10
+ export function createPageWithColumns(pageIndex, resolved, contentArea, pageWidthPx, pageHeightPx) {
11
+ const page = createVDTPage(pageIndex, pageWidthPx, pageHeightPx);
12
+ const colBboxes = computeColumnBboxes(contentArea, resolved);
13
+ for (let i = 0; i < colBboxes.length; i++) {
14
+ page.columns.push(createVDTColumn(i, colBboxes[i]));
15
+ }
16
+ return page;
17
+ }
18
+ export function currentColumn(doc, cursor) {
19
+ return doc.pages[cursor.pageIndex].columns[cursor.columnIndex];
20
+ }
21
+ export function advanceToNextColumn(doc, cursor, resolved, contentArea, pageWidthPx, pageHeightPx) {
22
+ const page = doc.pages[cursor.pageIndex];
23
+ if (cursor.columnIndex < page.columns.length - 1) {
24
+ cursor.columnIndex++;
25
+ }
26
+ else {
27
+ // New page
28
+ const newPage = createPageWithColumns(doc.pages.length, resolved, contentArea, pageWidthPx, pageHeightPx);
29
+ doc.pages.push(newPage);
30
+ cursor.pageIndex = newPage.index;
31
+ cursor.columnIndex = 0;
32
+ }
33
+ }
34
+ export function placeBlockInColumn(block, blockHeight, col, cursor) {
35
+ const y = col.bbox.y + (col.bbox.height - col.availableHeight);
36
+ block.bbox = createBoundingBox(col.bbox.x, y, col.bbox.width, blockHeight);
37
+ block.pageIndex = cursor.pageIndex;
38
+ block.columnIndex = cursor.columnIndex;
39
+ // Offset all line bboxes to absolute page coordinates
40
+ for (const line of block.lines) {
41
+ line.bbox.x += col.bbox.x;
42
+ line.bbox.y += y;
43
+ line.baseline += y;
44
+ }
45
+ col.blocks.push(block);
46
+ col.availableHeight -= blockHeight;
47
+ }
48
+ //# sourceMappingURL=placement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"placement.js","sourceRoot":"","sources":["../../src/pipeline/placement.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import type { TextAlign } from '../types';
2
+ import type { ResolvedConfig } from '../vdt';
3
+ export interface BlockStyle {
4
+ fontString: string;
5
+ boldFontString?: string;
6
+ italicFontString?: string;
7
+ boldItalicFontString?: string;
8
+ fontSizePx: number;
9
+ lineHeightPx: number;
10
+ color: string;
11
+ boldColor?: string;
12
+ italicColor?: string;
13
+ textAlign: TextAlign;
14
+ hyphenate: boolean;
15
+ marginTopPx: number;
16
+ marginBottomPx: number;
17
+ firstLineIndentPx: number;
18
+ hangingIndent: boolean;
19
+ }
20
+ export declare function resolveBodyStyle(resolved: ResolvedConfig): BlockStyle;
21
+ export declare function resolveHeadingStyle(level: number, resolved: ResolvedConfig): BlockStyle;
22
+ export declare function resolveBlockquoteStyle(resolved: ResolvedConfig): BlockStyle;
23
+ //# sourceMappingURL=styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/pipeline/styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA8B,SAAS,EAAE,MAAM,UAAU,CAAC;AAEtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAI7C,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,cAAc,GAAG,UAAU,CAgBrE;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,cAAc,GACvB,UAAU,CAyBZ;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,cAAc,GAAG,UAAU,CAgB3E"}