@usejunior/docx-core 0.14.0 → 0.16.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.
Files changed (154) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/generation/index.d.ts +0 -1
  3. package/dist/generation/index.d.ts.map +1 -1
  4. package/dist/generation/index.js +0 -1
  5. package/dist/generation/index.js.map +1 -1
  6. package/dist/index.d.ts +7 -25
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +7 -47
  9. package/dist/index.js.map +1 -1
  10. package/dist/primitives/accept_ai_edits.d.ts +87 -0
  11. package/dist/primitives/accept_ai_edits.d.ts.map +1 -0
  12. package/dist/primitives/accept_ai_edits.js +253 -0
  13. package/dist/primitives/accept_ai_edits.js.map +1 -0
  14. package/dist/primitives/accept_changes.d.ts +13 -1
  15. package/dist/primitives/accept_changes.d.ts.map +1 -1
  16. package/dist/primitives/accept_changes.js +44 -29
  17. package/dist/primitives/accept_changes.js.map +1 -1
  18. package/dist/primitives/document.d.ts +51 -0
  19. package/dist/primitives/document.d.ts.map +1 -1
  20. package/dist/primitives/document.js +144 -1
  21. package/dist/primitives/document.js.map +1 -1
  22. package/dist/primitives/index.d.ts +1 -0
  23. package/dist/primitives/index.d.ts.map +1 -1
  24. package/dist/primitives/index.js +1 -0
  25. package/dist/primitives/index.js.map +1 -1
  26. package/dist/primitives/reject_changes.d.ts +4 -1
  27. package/dist/primitives/reject_changes.d.ts.map +1 -1
  28. package/dist/primitives/reject_changes.js +54 -30
  29. package/dist/primitives/reject_changes.js.map +1 -1
  30. package/dist/primitives/relationships.d.ts +33 -0
  31. package/dist/primitives/relationships.d.ts.map +1 -1
  32. package/dist/primitives/relationships.js +84 -1
  33. package/dist/primitives/relationships.js.map +1 -1
  34. package/package.json +8 -9
  35. package/dist/atomizer.d.ts +0 -273
  36. package/dist/atomizer.d.ts.map +0 -1
  37. package/dist/atomizer.js +0 -1002
  38. package/dist/atomizer.js.map +0 -1
  39. package/dist/baselines/atomizer/atomLcs.d.ts +0 -82
  40. package/dist/baselines/atomizer/atomLcs.d.ts.map +0 -1
  41. package/dist/baselines/atomizer/atomLcs.js +0 -376
  42. package/dist/baselines/atomizer/atomLcs.js.map +0 -1
  43. package/dist/baselines/atomizer/auxiliaryIdCollision.d.ts +0 -99
  44. package/dist/baselines/atomizer/auxiliaryIdCollision.d.ts.map +0 -1
  45. package/dist/baselines/atomizer/auxiliaryIdCollision.js +0 -415
  46. package/dist/baselines/atomizer/auxiliaryIdCollision.js.map +0 -1
  47. package/dist/baselines/atomizer/consumerCompatibility.d.ts +0 -2
  48. package/dist/baselines/atomizer/consumerCompatibility.d.ts.map +0 -1
  49. package/dist/baselines/atomizer/consumerCompatibility.js +0 -188
  50. package/dist/baselines/atomizer/consumerCompatibility.js.map +0 -1
  51. package/dist/baselines/atomizer/debug.d.ts +0 -41
  52. package/dist/baselines/atomizer/debug.d.ts.map +0 -1
  53. package/dist/baselines/atomizer/debug.js +0 -85
  54. package/dist/baselines/atomizer/debug.js.map +0 -1
  55. package/dist/baselines/atomizer/documentReconstructor.d.ts +0 -75
  56. package/dist/baselines/atomizer/documentReconstructor.d.ts.map +0 -1
  57. package/dist/baselines/atomizer/documentReconstructor.js +0 -1449
  58. package/dist/baselines/atomizer/documentReconstructor.js.map +0 -1
  59. package/dist/baselines/atomizer/formattingFidelity.d.ts +0 -99
  60. package/dist/baselines/atomizer/formattingFidelity.d.ts.map +0 -1
  61. package/dist/baselines/atomizer/formattingFidelity.js +0 -449
  62. package/dist/baselines/atomizer/formattingFidelity.js.map +0 -1
  63. package/dist/baselines/atomizer/hierarchicalLcs.d.ts +0 -121
  64. package/dist/baselines/atomizer/hierarchicalLcs.d.ts.map +0 -1
  65. package/dist/baselines/atomizer/hierarchicalLcs.js +0 -753
  66. package/dist/baselines/atomizer/hierarchicalLcs.js.map +0 -1
  67. package/dist/baselines/atomizer/inPlaceModifier-bookmarks.d.ts +0 -37
  68. package/dist/baselines/atomizer/inPlaceModifier-bookmarks.d.ts.map +0 -1
  69. package/dist/baselines/atomizer/inPlaceModifier-bookmarks.js +0 -189
  70. package/dist/baselines/atomizer/inPlaceModifier-bookmarks.js.map +0 -1
  71. package/dist/baselines/atomizer/inPlaceModifier-containers.d.ts +0 -74
  72. package/dist/baselines/atomizer/inPlaceModifier-containers.d.ts.map +0 -1
  73. package/dist/baselines/atomizer/inPlaceModifier-containers.js +0 -171
  74. package/dist/baselines/atomizer/inPlaceModifier-containers.js.map +0 -1
  75. package/dist/baselines/atomizer/inPlaceModifier-deletion.d.ts +0 -88
  76. package/dist/baselines/atomizer/inPlaceModifier-deletion.d.ts.map +0 -1
  77. package/dist/baselines/atomizer/inPlaceModifier-deletion.js +0 -326
  78. package/dist/baselines/atomizer/inPlaceModifier-deletion.js.map +0 -1
  79. package/dist/baselines/atomizer/inPlaceModifier-postprocess.d.ts +0 -85
  80. package/dist/baselines/atomizer/inPlaceModifier-postprocess.d.ts.map +0 -1
  81. package/dist/baselines/atomizer/inPlaceModifier-postprocess.js +0 -402
  82. package/dist/baselines/atomizer/inPlaceModifier-postprocess.js.map +0 -1
  83. package/dist/baselines/atomizer/inPlaceModifier-presplit.d.ts +0 -39
  84. package/dist/baselines/atomizer/inPlaceModifier-presplit.d.ts.map +0 -1
  85. package/dist/baselines/atomizer/inPlaceModifier-presplit.js +0 -265
  86. package/dist/baselines/atomizer/inPlaceModifier-presplit.js.map +0 -1
  87. package/dist/baselines/atomizer/inPlaceModifier-shared.d.ts +0 -62
  88. package/dist/baselines/atomizer/inPlaceModifier-shared.d.ts.map +0 -1
  89. package/dist/baselines/atomizer/inPlaceModifier-shared.js +0 -139
  90. package/dist/baselines/atomizer/inPlaceModifier-shared.js.map +0 -1
  91. package/dist/baselines/atomizer/inPlaceModifier-wrappers.d.ts +0 -198
  92. package/dist/baselines/atomizer/inPlaceModifier-wrappers.d.ts.map +0 -1
  93. package/dist/baselines/atomizer/inPlaceModifier-wrappers.js +0 -475
  94. package/dist/baselines/atomizer/inPlaceModifier-wrappers.js.map +0 -1
  95. package/dist/baselines/atomizer/inPlaceModifier.d.ts +0 -27
  96. package/dist/baselines/atomizer/inPlaceModifier.d.ts.map +0 -1
  97. package/dist/baselines/atomizer/inPlaceModifier.js +0 -648
  98. package/dist/baselines/atomizer/inPlaceModifier.js.map +0 -1
  99. package/dist/baselines/atomizer/numberingIntegration.d.ts +0 -59
  100. package/dist/baselines/atomizer/numberingIntegration.d.ts.map +0 -1
  101. package/dist/baselines/atomizer/numberingIntegration.js +0 -209
  102. package/dist/baselines/atomizer/numberingIntegration.js.map +0 -1
  103. package/dist/baselines/atomizer/pipeline.d.ts +0 -103
  104. package/dist/baselines/atomizer/pipeline.d.ts.map +0 -1
  105. package/dist/baselines/atomizer/pipeline.js +0 -1160
  106. package/dist/baselines/atomizer/pipeline.js.map +0 -1
  107. package/dist/baselines/atomizer/premergeRuns.d.ts +0 -26
  108. package/dist/baselines/atomizer/premergeRuns.d.ts.map +0 -1
  109. package/dist/baselines/atomizer/premergeRuns.js +0 -153
  110. package/dist/baselines/atomizer/premergeRuns.js.map +0 -1
  111. package/dist/baselines/atomizer/trackChangesAcceptor.d.ts +0 -63
  112. package/dist/baselines/atomizer/trackChangesAcceptor.d.ts.map +0 -1
  113. package/dist/baselines/atomizer/trackChangesAcceptor.js +0 -254
  114. package/dist/baselines/atomizer/trackChangesAcceptor.js.map +0 -1
  115. package/dist/baselines/atomizer/trackChangesAcceptorAst.d.ts +0 -64
  116. package/dist/baselines/atomizer/trackChangesAcceptorAst.d.ts.map +0 -1
  117. package/dist/baselines/atomizer/trackChangesAcceptorAst.js +0 -642
  118. package/dist/baselines/atomizer/trackChangesAcceptorAst.js.map +0 -1
  119. package/dist/baselines/atomizer/xmlToWmlElement.d.ts +0 -65
  120. package/dist/baselines/atomizer/xmlToWmlElement.d.ts.map +0 -1
  121. package/dist/baselines/atomizer/xmlToWmlElement.js +0 -96
  122. package/dist/baselines/atomizer/xmlToWmlElement.js.map +0 -1
  123. package/dist/baselines/wmlcomparer/DocxodusWasm.d.ts +0 -51
  124. package/dist/baselines/wmlcomparer/DocxodusWasm.d.ts.map +0 -1
  125. package/dist/baselines/wmlcomparer/DocxodusWasm.js +0 -83
  126. package/dist/baselines/wmlcomparer/DocxodusWasm.js.map +0 -1
  127. package/dist/baselines/wmlcomparer/DotnetCli.d.ts +0 -40
  128. package/dist/baselines/wmlcomparer/DotnetCli.d.ts.map +0 -1
  129. package/dist/baselines/wmlcomparer/DotnetCli.js +0 -142
  130. package/dist/baselines/wmlcomparer/DotnetCli.js.map +0 -1
  131. package/dist/cli/compare-two.d.ts +0 -28
  132. package/dist/cli/compare-two.d.ts.map +0 -1
  133. package/dist/cli/compare-two.js +0 -112
  134. package/dist/cli/compare-two.js.map +0 -1
  135. package/dist/cli/index.d.ts +0 -3
  136. package/dist/cli/index.d.ts.map +0 -1
  137. package/dist/cli/index.js +0 -25
  138. package/dist/cli/index.js.map +0 -1
  139. package/dist/compare-types.d.ts +0 -197
  140. package/dist/compare-types.d.ts.map +0 -1
  141. package/dist/compare-types.js +0 -2
  142. package/dist/compare-types.js.map +0 -1
  143. package/dist/format-detection.d.ts +0 -120
  144. package/dist/format-detection.d.ts.map +0 -1
  145. package/dist/format-detection.js +0 -339
  146. package/dist/format-detection.js.map +0 -1
  147. package/dist/generation/recipes.d.ts +0 -144
  148. package/dist/generation/recipes.d.ts.map +0 -1
  149. package/dist/generation/recipes.js +0 -358
  150. package/dist/generation/recipes.js.map +0 -1
  151. package/dist/move-detection.d.ts +0 -211
  152. package/dist/move-detection.d.ts.map +0 -1
  153. package/dist/move-detection.js +0 -390
  154. package/dist/move-detection.js.map +0 -1
@@ -1,339 +0,0 @@
1
- /**
2
- * Format Change Detection Module
3
- *
4
- * Detects formatting changes (bold, italic, font size, etc.) between
5
- * documents after LCS comparison. Runs on atoms marked as Equal to
6
- * identify text that matches but has different formatting.
7
- *
8
- * Pipeline position:
9
- * LCS() → FlattenToAtomList() → detectMovesInAtomList() → detectFormatChangesInAtomList() → CoalesceRecurse()
10
- *
11
- * @see design.md Decision 10: Format Change Detection as Post-LCS Phase
12
- */
13
- import { CorrelationStatus, DEFAULT_FORMAT_DETECTION_SETTINGS, RUN_PROPERTY_FRIENDLY_NAMES, } from './core-types.js';
14
- import { getLeafText, childElements } from './primitives/index.js';
15
- import { parseXml } from './primitives/xml.js';
16
- // =============================================================================
17
- // Run Property Extraction
18
- // =============================================================================
19
- /**
20
- * Extract run properties (w:rPr) from an atom's ancestor elements.
21
- *
22
- * Finds the w:r (run) element in ancestors and extracts its w:rPr child.
23
- *
24
- * @param atom - The atom to extract properties from
25
- * @returns The w:rPr element, or null if not found
26
- *
27
- * @example
28
- * // For an atom inside <w:r><w:rPr><w:b/></w:rPr><w:t>text</w:t></w:r>
29
- * // Returns the <w:rPr><w:b/></w:rPr> element
30
- */
31
- export function getRunPropertiesFromAtom(atom) {
32
- // Find the w:r ancestor element
33
- const runElement = atom.ancestorElements?.find((a) => a.tagName === 'w:r');
34
- if (!runElement) {
35
- return null;
36
- }
37
- // Get the rPr child element
38
- for (const child of childElements(runElement)) {
39
- if (child.tagName === 'w:rPr')
40
- return child;
41
- }
42
- return null;
43
- }
44
- function extractNormalizedProperties(rPr) {
45
- if (!rPr) {
46
- return { children: [] };
47
- }
48
- const normalizedChildren = childElements(rPr)
49
- // Remove revision tracking elements
50
- .filter((e) => e.tagName !== 'w:rPrChange')
51
- // Sort by tag name for deterministic comparison
52
- .sort((a, b) => a.tagName.localeCompare(b.tagName))
53
- // Normalize each child
54
- .map((e) => {
55
- const attrs = [];
56
- for (let i = 0; i < e.attributes.length; i++) {
57
- const attr = e.attributes[i];
58
- attrs.push([attr.name, attr.value]);
59
- }
60
- attrs.sort(([a], [b]) => a.localeCompare(b));
61
- const text = getLeafText(e);
62
- const prop = { tagName: e.tagName, attrs };
63
- if (text !== undefined)
64
- prop.text = text;
65
- return prop;
66
- });
67
- return { children: normalizedChildren };
68
- }
69
- // =============================================================================
70
- // Run Property Comparison
71
- // =============================================================================
72
- /**
73
- * Serialize normalized properties to a string for comparison.
74
- */
75
- function serializeNormalizedProperties(rPr) {
76
- const parts = [];
77
- for (const child of rPr.children) {
78
- const attrs = child.attrs
79
- .map(([k, v]) => `${k}="${v}"`)
80
- .join(' ');
81
- const textPart = child.text ? `|${child.text}` : '';
82
- parts.push(`<${child.tagName} ${attrs}${textPart}/>`);
83
- }
84
- return parts.join('');
85
- }
86
- /**
87
- * Check if two run properties are equal after normalization.
88
- */
89
- export function areRunPropertiesEqual(rPr1, rPr2) {
90
- const norm1 = extractNormalizedProperties(rPr1);
91
- const norm2 = extractNormalizedProperties(rPr2);
92
- return serializeNormalizedProperties(norm1) === serializeNormalizedProperties(norm2);
93
- }
94
- // Keep legacy overload for callers that pass WmlElement (= Element)
95
- export { areRunPropertiesEqual as areNormalizedRunPropertiesEqual };
96
- // =============================================================================
97
- // Changed Property Detection
98
- // =============================================================================
99
- /**
100
- * Get the set of property tag names from a normalized rPr.
101
- */
102
- function getPropertyTagNames(rPr) {
103
- return new Set(rPr.children.map((c) => c.tagName));
104
- }
105
- /**
106
- * Find a property element by tag name in a normalized rPr.
107
- */
108
- function findPropertyByTag(rPr, tagName) {
109
- return rPr.children.find((c) => c.tagName === tagName);
110
- }
111
- /**
112
- * Check if two property elements have the same value.
113
- */
114
- function arePropertiesValueEqual(prop1, prop2) {
115
- if (!prop1 && !prop2)
116
- return true;
117
- if (!prop1 || !prop2)
118
- return false;
119
- const str1 = serializeNormalizedProperties({ children: [prop1] });
120
- const str2 = serializeNormalizedProperties({ children: [prop2] });
121
- return str1 === str2;
122
- }
123
- /**
124
- * Get the list of property names that changed between two run properties.
125
- *
126
- * Returns friendly names (e.g., "bold", "italic") when available,
127
- * otherwise returns the OOXML tag name.
128
- *
129
- * @param oldRPr - Old run properties element (or null)
130
- * @param newRPr - New run properties element (or null)
131
- * @returns Array of changed property names
132
- */
133
- export function getChangedPropertyNames(oldRPr, newRPr) {
134
- const changed = [];
135
- const normalizedOld = extractNormalizedProperties(oldRPr);
136
- const normalizedNew = extractNormalizedProperties(newRPr);
137
- const oldTags = getPropertyTagNames(normalizedOld);
138
- const newTags = getPropertyTagNames(normalizedNew);
139
- // All unique tags from both
140
- const allTags = new Set([...oldTags, ...newTags]);
141
- for (const tag of allTags) {
142
- const oldProp = findPropertyByTag(normalizedOld, tag);
143
- const newProp = findPropertyByTag(normalizedNew, tag);
144
- if (!arePropertiesValueEqual(oldProp, newProp)) {
145
- // Use friendly name if available
146
- const friendlyName = RUN_PROPERTY_FRIENDLY_NAMES[tag] ?? tag;
147
- changed.push(friendlyName);
148
- }
149
- }
150
- return changed.sort();
151
- }
152
- /**
153
- * Categorize changed properties into added, removed, and modified.
154
- *
155
- * @param oldRPr - Old run properties element (or null)
156
- * @param newRPr - New run properties element (or null)
157
- * @returns Object with added, removed, and changed arrays
158
- */
159
- export function categorizePropertyChanges(oldRPr, newRPr) {
160
- const added = [];
161
- const removed = [];
162
- const changed = [];
163
- const normalizedOld = extractNormalizedProperties(oldRPr);
164
- const normalizedNew = extractNormalizedProperties(newRPr);
165
- const oldTags = getPropertyTagNames(normalizedOld);
166
- const newTags = getPropertyTagNames(normalizedNew);
167
- // Check for added properties (in new but not old)
168
- for (const tag of newTags) {
169
- if (!oldTags.has(tag)) {
170
- const friendlyName = RUN_PROPERTY_FRIENDLY_NAMES[tag] ?? tag;
171
- added.push(friendlyName);
172
- }
173
- }
174
- // Check for removed properties (in old but not new)
175
- for (const tag of oldTags) {
176
- if (!newTags.has(tag)) {
177
- const friendlyName = RUN_PROPERTY_FRIENDLY_NAMES[tag] ?? tag;
178
- removed.push(friendlyName);
179
- }
180
- }
181
- // Check for changed properties (in both but different value)
182
- for (const tag of oldTags) {
183
- if (newTags.has(tag)) {
184
- const oldProp = findPropertyByTag(normalizedOld, tag);
185
- const newProp = findPropertyByTag(normalizedNew, tag);
186
- if (!arePropertiesValueEqual(oldProp, newProp)) {
187
- const friendlyName = RUN_PROPERTY_FRIENDLY_NAMES[tag] ?? tag;
188
- changed.push(friendlyName);
189
- }
190
- }
191
- }
192
- return {
193
- added: added.sort(),
194
- removed: removed.sort(),
195
- changed: changed.sort(),
196
- };
197
- }
198
- // =============================================================================
199
- // Main Algorithm
200
- // =============================================================================
201
- /**
202
- * Detect format changes in a flat list of atoms.
203
- *
204
- * Runs after LCS and move detection to identify Equal atoms where the text
205
- * matches but formatting differs. Updates atoms in place with format change status.
206
- *
207
- * @param atoms - The atom list to process (modified in place)
208
- * @param settings - Format detection settings (optional, uses defaults)
209
- */
210
- export function detectFormatChangesInAtomList(atoms, settings = DEFAULT_FORMAT_DETECTION_SETTINGS) {
211
- if (!settings.detectFormatChanges) {
212
- return;
213
- }
214
- for (const atom of atoms) {
215
- // Only check Equal atoms that have a "before" reference
216
- if (atom.correlationStatus !== CorrelationStatus.Equal) {
217
- continue;
218
- }
219
- if (!atom.comparisonUnitAtomBefore) {
220
- continue;
221
- }
222
- // Extract rPr from both documents
223
- const oldRPr = getRunPropertiesFromAtom(atom.comparisonUnitAtomBefore);
224
- const newRPr = getRunPropertiesFromAtom(atom);
225
- // Compare run properties
226
- if (!areRunPropertiesEqual(oldRPr, newRPr)) {
227
- atom.correlationStatus = CorrelationStatus.FormatChanged;
228
- atom.formatChange = {
229
- oldRunProperties: oldRPr,
230
- newRunProperties: newRPr,
231
- changedProperties: getChangedPropertyNames(oldRPr, newRPr),
232
- };
233
- }
234
- }
235
- }
236
- /**
237
- * Merge format change markup into a run's existing rPr element.
238
- *
239
- * Adds the w:rPrChange element as the last child of w:rPr.
240
- *
241
- * @param runElement - The w:r element to modify
242
- * @param rPrChange - The w:rPrChange element to insert
243
- */
244
- export function mergeFormatChangeIntoRun(runElement, rPrChange) {
245
- if (runElement.tagName !== 'w:r') {
246
- return;
247
- }
248
- // Find existing rPr
249
- let rPr = null;
250
- for (const child of childElements(runElement)) {
251
- if (child.tagName === 'w:rPr') {
252
- rPr = child;
253
- break;
254
- }
255
- }
256
- if (!rPr) {
257
- // Create rPr as first child
258
- const doc = runElement.ownerDocument;
259
- rPr = doc.createElementNS('http://schemas.openxmlformats.org/wordprocessingml/2006/main', 'w:rPr');
260
- runElement.insertBefore(rPr, runElement.firstChild);
261
- }
262
- // Add rPrChange as last child of rPr
263
- rPr.appendChild(rPrChange);
264
- }
265
- // =============================================================================
266
- // Paragraph Property Change Support (Future Enhancement)
267
- // =============================================================================
268
- /**
269
- * Extract paragraph properties (w:pPr) from an element.
270
- *
271
- * @param paragraphElement - The w:p element
272
- * @returns The w:pPr element, or null if not found
273
- */
274
- export function getParagraphProperties(paragraphElement) {
275
- if (paragraphElement.tagName !== 'w:p') {
276
- return null;
277
- }
278
- for (const child of childElements(paragraphElement)) {
279
- if (child.tagName === 'w:pPr')
280
- return child;
281
- }
282
- return null;
283
- }
284
- /**
285
- * Paragraph property friendly names.
286
- */
287
- export const PARAGRAPH_PROPERTY_FRIENDLY_NAMES = {
288
- 'w:jc': 'alignment',
289
- 'w:ind': 'indentation',
290
- 'w:spacing': 'spacing',
291
- 'w:pStyle': 'style',
292
- 'w:numPr': 'numbering',
293
- 'w:pBdr': 'borders',
294
- 'w:shd': 'shading',
295
- 'w:tabs': 'tabs',
296
- 'w:keepNext': 'keepWithNext',
297
- 'w:keepLines': 'keepLinesTogether',
298
- 'w:pageBreakBefore': 'pageBreakBefore',
299
- 'w:widowControl': 'widowControl',
300
- 'w:outlineLvl': 'outlineLevel',
301
- };
302
- // =============================================================================
303
- // Legacy API — kept for backward compatibility during migration
304
- // =============================================================================
305
- /**
306
- * @deprecated Use areRunPropertiesEqual directly with Element params
307
- */
308
- export function normalizeRunProperties(rPr) {
309
- return extractNormalizedProperties(rPr);
310
- }
311
- /**
312
- * @deprecated Use getParagraphProperties directly
313
- */
314
- export function normalizeParagraphProperties(pPr) {
315
- return extractNormalizedProperties(pPr);
316
- }
317
- /**
318
- * @deprecated Removed — use generateFormatChangeMarkup with DOM approach
319
- */
320
- export function generateFormatChangeMarkup(formatChange, options) {
321
- const doc = parseXml('<root/>');
322
- const dateStr = options.dateTime.toISOString();
323
- const W_NS = 'http://schemas.openxmlformats.org/wordprocessingml/2006/main';
324
- const rPrChange = doc.createElementNS(W_NS, 'w:rPrChange');
325
- rPrChange.setAttribute('w:id', options.id.toString());
326
- rPrChange.setAttribute('w:author', options.author);
327
- rPrChange.setAttribute('w:date', dateStr);
328
- const rPr = doc.createElementNS(W_NS, 'w:rPr');
329
- rPrChange.appendChild(rPr);
330
- if (formatChange.oldRunProperties) {
331
- for (const child of childElements(formatChange.oldRunProperties)) {
332
- if (child.tagName === 'w:rPrChange')
333
- continue;
334
- rPr.appendChild(child.cloneNode(true));
335
- }
336
- }
337
- return rPrChange;
338
- }
339
- //# sourceMappingURL=format-detection.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"format-detection.js","sourceRoot":"","sources":["../src/format-detection.ts"],"names":[],"mappings":"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"}
@@ -1,144 +0,0 @@
1
- /**
2
- * Legal-document recipes.
3
- *
4
- * Pure functions producing spec nodes from options — no own OOXML
5
- * representation, no compiler hooks. Everything a recipe returns is built
6
- * from the paragraph/table grammar, so its output is inlineable anywhere a
7
- * BlockSpec is accepted and serializes through exactly the emitters the
8
- * rest of the document uses. Signature lines are bottom-bordered cells, not
9
- * VML shapes: Pages and Google Docs mangle VML, borders survive everywhere.
10
- */
11
- import type { BlockSpec, HighlightColor, TableSpec } from './types.js';
12
- /** A value cell that can be flagged as an unfilled fillable placeholder. */
13
- type FillableValue = {
14
- fillable?: boolean;
15
- };
16
- export type CoverTermRow = {
17
- label: string;
18
- value: string;
19
- } & FillableValue;
20
- export type CoverTermGroupRow = {
21
- group: string;
22
- };
23
- export type CoverTermSubrow = {
24
- label: string;
25
- value: string;
26
- subrow: true;
27
- } & FillableValue;
28
- export type CoverTermEntry = CoverTermRow | CoverTermGroupRow | CoverTermSubrow;
29
- export type CoverTermsOptions = {
30
- /** Plain rows, group headers, and subrows rendered in declaration order. */
31
- terms: CoverTermEntry[];
32
- /** Two-column widths in twips; defaults to a 2880/6480 split of a 6.5" body. */
33
- columnWidthsTwips?: [number, number];
34
- /** Heading text for a shaded full-width header row; omitted when absent. */
35
- title?: string;
36
- /** Table border style; defaults to the historical full grid. */
37
- borderMode?: 'grid' | 'horizontal-rules';
38
- /** Optional minimum row height applied to term/group/sub rows, not the title row. */
39
- rowHeightTwips?: number;
40
- /** Optional uniform cell padding applied to every cover-terms cell. */
41
- cellPaddingTwips?: number;
42
- /**
43
- * Optional non-uniform cell margins. When set it supersedes `cellPaddingTwips`
44
- * for every cover-terms cell (the subrow label indent is still added on top of
45
- * the resulting `left`).
46
- */
47
- cellMarginsTwips?: {
48
- top?: number;
49
- right?: number;
50
- bottom?: number;
51
- left?: number;
52
- };
53
- /** Body font applied to every label/value/group run; default inherits Normal. */
54
- fontFamily?: string;
55
- /** Point size for plain-row and group runs; default inherits Normal. */
56
- sizePt?: number;
57
- /** Point size for subrow runs; defaults to `sizePt`. */
58
- subrowSizePt?: number;
59
- /** Text color for plain-row labels/values (six-hex, no '#'); default unset. */
60
- textColorHex?: string;
61
- /** Text color for group-row labels; defaults to `textColorHex`. */
62
- groupColorHex?: string;
63
- /** Text color for subrow labels and values; defaults to mid-gray. */
64
- subrowColorHex?: string;
65
- /** Highlight applied to a value flagged `fillable`; defaults to `yellow`. */
66
- fillableHighlight?: HighlightColor;
67
- /**
68
- * Extra left indent on subrow label cells, added on top of `cellPaddingTwips`
69
- * (so the label sits further right than a normal row). Defaults to 240 twips.
70
- */
71
- subrowLabelIndentTwips?: number;
72
- /** Color (six-hex, no '#') for the table's single-style borders. Default 'auto'. */
73
- ruleColorHex?: string;
74
- /** Weight in eighths of a point for the single-style borders. Default 4 (0.5pt). */
75
- ruleSizeEighthPt?: number;
76
- };
77
- /**
78
- * A fixed-layout two-column label/value table for cover-terms blocks
79
- * (scenario SDX-GEN-070), with optional house-style grouped/sub rows
80
- * (SDX-GEN-106) and run styling + fillable placeholders (SDX-GEN-110).
81
- */
82
- export declare function coverTermsTable(options: CoverTermsOptions): TableSpec;
83
- export type SignatureBlockOptions = {
84
- parties: Array<{
85
- /** Party heading above the signature line, e.g. the company name. */
86
- party: string;
87
- /** Signatory name printed under the line. */
88
- name: string;
89
- title?: string;
90
- /** Label for the date row; defaults to 'Date:'. */
91
- dateLabel?: string;
92
- /** Override block `fillable` for this party's Print Name (oa-stacked-ruled). Default: `fillable`. */
93
- nameFillable?: boolean;
94
- /** Override block `fillable` for this party's Title (oa-stacked-ruled). Default: `fillable`. */
95
- titleFillable?: boolean;
96
- }>;
97
- /** Signature-line column width in twips; defaults to 4320 (3"). Single-column only. */
98
- lineWidthTwips?: number;
99
- /** Layout selector. Defaults to 'single-column' (the historical behavior). */
100
- layout?: 'single-column' | 'two-column' | 'oa-stacked-ruled';
101
- /** Total grid width in twips, split across the two signer columns. Defaults to 9360 (6.5" body). */
102
- totalWidthTwips?: number;
103
- /** Center gutter column width between the two signer cells. Defaults to 360 (0.25"). */
104
- gutterTwips?: number;
105
- /** Color for the muted party header and field captions. Defaults to '595959'. */
106
- headerColorHex?: string;
107
- /** Captions for the four ruled lines. Defaults to ['Signature', 'Print Name', 'Title', 'Date']. */
108
- ruledLineLabels?: [string, string, string, string];
109
- /** Width of the left label column in twips. Defaults to 1800 (1.25"). */
110
- labelColumnTwips?: number;
111
- /** Minimum signing-row height in twips (room to sign). Defaults to 620. */
112
- ruledRowHeightTwips?: number;
113
- /** Which fields render, in order. Defaults to all four. */
114
- fields?: Array<'signature' | 'printName' | 'title' | 'date'>;
115
- /** Body font for the OA signature header + labels + values. */
116
- fontFamily?: string;
117
- /** Mark pre-filled values (printName/title) as fillable -> highlight + bold. */
118
- fillable?: boolean;
119
- /** Highlight for fillable values; defaults to `yellow`. */
120
- fillableHighlight?: HighlightColor;
121
- /** Bold the centered party header (oa-stacked-ruled). Default false. */
122
- headerBold?: boolean;
123
- /** Party-header point size (oa-stacked-ruled). Default: inherit Normal. */
124
- headerSizePt?: number;
125
- /** Color (six-hex) for the ruled signing line (oa-stacked-ruled). Default 'auto'. */
126
- lineColorHex?: string;
127
- /** Ruled signing-line weight in eighths of a point (oa-stacked-ruled). Default 4. */
128
- lineSizeEighthPt?: number;
129
- };
130
- /**
131
- * Signature blocks rendered as borderless tables whose content cells carry
132
- * only bottom borders — the signature lines. No VML, no images.
133
- *
134
- * - `single-column` (default): the historical stacked block — one table per
135
- * party, a bottom-bordered line then name/title/date rows (SDX-GEN-071).
136
- * - `two-column`: a paired signing grid, two signers per row, each a centered
137
- * muted header over ruled Signature/Print Name/Title/Date lines with captions
138
- * beneath (SDX-GEN-109).
139
- * - `oa-stacked-ruled`: per party, a centered muted-caps header over a
140
- * label-column / ruled-line table with tall signing rows (SDX-GEN-111).
141
- */
142
- export declare function signatureBlock(options: SignatureBlockOptions): BlockSpec[];
143
- export {};
144
- //# sourceMappingURL=recipes.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"recipes.d.ts","sourceRoot":"","sources":["../../src/generation/recipes.ts"],"names":[],"mappings":"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"}