@usejunior/docx-core 0.22.1 → 0.23.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/integration/generation-probes.d.ts.map +1 -1
  3. package/dist/integration/generation-probes.js +26 -21
  4. package/dist/integration/generation-probes.js.map +1 -1
  5. package/dist/integration/libreoffice-oracle.d.ts +6 -1
  6. package/dist/integration/libreoffice-oracle.d.ts.map +1 -1
  7. package/dist/integration/libreoffice-oracle.js +113 -44
  8. package/dist/integration/libreoffice-oracle.js.map +1 -1
  9. package/dist/integration/soffice-lock.d.ts +30 -0
  10. package/dist/integration/soffice-lock.d.ts.map +1 -0
  11. package/dist/integration/soffice-lock.js +308 -0
  12. package/dist/integration/soffice-lock.js.map +1 -0
  13. package/dist/primitives/accept_changes.d.ts +27 -1
  14. package/dist/primitives/accept_changes.d.ts.map +1 -1
  15. package/dist/primitives/accept_changes.js +57 -2
  16. package/dist/primitives/accept_changes.js.map +1 -1
  17. package/dist/primitives/comments.d.ts.map +1 -1
  18. package/dist/primitives/comments.js +2 -2
  19. package/dist/primitives/comments.js.map +1 -1
  20. package/dist/primitives/document_view-headings.d.ts.map +1 -1
  21. package/dist/primitives/document_view-headings.js +16 -6
  22. package/dist/primitives/document_view-headings.js.map +1 -1
  23. package/dist/primitives/footnotes.js +2 -2
  24. package/dist/primitives/footnotes.js.map +1 -1
  25. package/dist/primitives/formatting_tags.d.ts +6 -3
  26. package/dist/primitives/formatting_tags.d.ts.map +1 -1
  27. package/dist/primitives/formatting_tags.js +50 -44
  28. package/dist/primitives/formatting_tags.js.map +1 -1
  29. package/dist/primitives/index.d.ts +1 -0
  30. package/dist/primitives/index.d.ts.map +1 -1
  31. package/dist/primitives/index.js +1 -0
  32. package/dist/primitives/index.js.map +1 -1
  33. package/dist/primitives/paragraph-index.d.ts +28 -2
  34. package/dist/primitives/paragraph-index.d.ts.map +1 -1
  35. package/dist/primitives/paragraph-index.js +25 -6
  36. package/dist/primitives/paragraph-index.js.map +1 -1
  37. package/dist/primitives/structural_validation.d.ts +54 -0
  38. package/dist/primitives/structural_validation.d.ts.map +1 -0
  39. package/dist/primitives/structural_validation.js +301 -0
  40. package/dist/primitives/structural_validation.js.map +1 -0
  41. package/dist/primitives/styles.d.ts +110 -20
  42. package/dist/primitives/styles.d.ts.map +1 -1
  43. package/dist/primitives/styles.js +535 -45
  44. package/dist/primitives/styles.js.map +1 -1
  45. package/dist/primitives/zip.d.ts +6 -0
  46. package/dist/primitives/zip.d.ts.map +1 -1
  47. package/dist/primitives/zip.js +7 -1
  48. package/dist/primitives/zip.js.map +1 -1
  49. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"paragraph-index.js","sourceRoot":"","sources":["../../src/primitives/paragraph-index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"paragraph-index.js","sourceRoot":"","sources":["../../src/primitives/paragraph-index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAgEpD,SAAS,QAAQ,CAAC,OAAgB,EAAE,SAAiB;IACnD,OAAO,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,MAAM,CAAC,OAAgB;IAC9B,IAAI,OAAO,CAAC,YAAY,KAAK,KAAK,CAAC,IAAI;QAAE,OAAO,OAAO,CAAC;IACxD,QAAQ,OAAO,CAAC,SAAS,EAAE,CAAC;QAC1B,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC;QACvB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC;QACxB,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,CAAC;QACzB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,OAAO,CAAC;QAC1B,KAAK,CAAC,CAAC,iBAAiB,CAAC,CAAC,OAAO,qBAAqB,CAAC;QACvD,KAAK,CAAC,CAAC,eAAe,CAAC,CAAC,OAAO,mBAAmB,CAAC;QACnD,KAAK,CAAC,CAAC,gBAAgB,CAAC,CAAC,OAAO,mBAAmB,CAAC;QACpD,KAAK,CAAC,CAAC,iBAAiB,CAAC,CAAC,OAAO,oBAAoB,CAAC;QACtD,KAAK,CAAC,CAAC,gBAAgB,CAAC,CAAC,OAAO,mBAAmB,CAAC;QACpD,KAAK,CAAC,CAAC,OAAO,CAAC;QACf,KAAK,CAAC,CAAC,SAAS,CAAC;QACjB,KAAK,cAAc,CAAC,CAAC,OAAO,YAAY,CAAC;QACzC,KAAK,eAAe,CAAC;QACrB,KAAK,aAAa,CAAC,CAAC,OAAO,UAAU,CAAC;QACtC,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC;IAC1B,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,mBAAmB,CAAC,SAAkB,EAAE,UAAsC,EAAE;IAC9F,MAAM,KAAK,GAA2B,EAAE,CAAC;IACzC,MAAM,IAAI,GAA2B,EAAE,CAAC;IACxC,MAAM,UAAU,GAAiB,EAAE,CAAC;IACpC,MAAM,MAAM,GAAmB,EAAE,CAAC;IAClC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC/C,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC;IAElB,MAAM,eAAe,GAAG,GAAkB,EAAE;QAC1C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,aAAa,CAAC;YAAE,OAAO,IAAI,CAAC;QACtG,OAAO,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC;IAC/B,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,CAAC,OAAgB,EAAE,aAA0C,EAAQ,EAAE;QACnF,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,YAAY,KAAK,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC;YAAE,OAAO;QACtG,IAAI,OAAO,CAAC,oBAAoB,IAAI,OAAO,CAAC,YAAY,KAAK,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC,SAAS,KAAK,CAAC,CAAC,GAAG;YAAE,OAAO;QAC/G,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,KAAK,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/E,IAAI,SAAS,GAAG,aAAa,CAAC;QAC9B,IAAI,KAAK,EAAE,CAAC;YACV,QAAQ,IAAI,CAAC,CAAC;YACd,SAAS,GAAG;gBACV,OAAO;gBACP,eAAe,EAAE,eAAe,EAAE;gBAClC,QAAQ;gBACR,gBAAgB,EAAE,CAAC;gBACnB,YAAY,EAAE,aAAa;gBAC3B,UAAU,EAAE,aAAa;gBACzB,IAAI,EAAE,KAAK;gBACX,WAAW,EAAE,EAAE;gBACf,aAAa,EAAE,KAAK;gBACpB,aAAa,EAAE,IAAI;gBACnB,gBAAgB,EAAE,IAAI;aACvB,CAAC;YACF,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvB,CAAC;aAAM,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,IAAI,GAAyB;gBACjC,OAAO;gBACP,eAAe,EAAE,eAAe,EAAE;gBAClC,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI,IAAI;gBACrC,gBAAgB,EAAE,SAAS,CAAC,CAAC,CAAC,aAAa,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACxE,YAAY,EAAE,aAAa;gBAC3B,UAAU,EAAE,aAAa;gBACzB,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC;gBACrB,WAAW,EAAE,EAAE;gBACf,aAAa,EAAE,KAAK;gBACpB,aAAa,EAAE,IAAI;gBACnB,gBAAgB,EAAE,IAAI;aACvB,CAAC;YACF,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEjB,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,OAAO,CAAC,SAAS,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;gBAClE,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC;gBACpD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;oBACrB,MAAM,KAAK,GAAiB,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;oBAC7G,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACnB,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;gBAClF,CAAC;qBAAM,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;oBAC/B,MAAM,KAAK,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBAChC,IAAI,KAAK,EAAE,CAAC;wBACV,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC;wBACvB,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;wBAC7B,KAAK,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;wBACnD,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;oBACvD,CAAC;gBACH,CAAC;qBAAM,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;oBAC1B,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;oBAC/B,IAAI,KAAK,EAAE,CAAC;wBACV,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC;wBACvB,KAAK,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;oBACrD,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,gBAAgB,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,aAAa,CAAC,CAAC;gBAClG,IAAI,gBAAgB,IAAI,CAAC,OAAO,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,KAAK,cAAc,CAAC,EAAE,CAAC;oBACpG,gBAAgB,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;gBAC5D,CAAC;qBAAM,IAAI,SAAS,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE,CAAC;oBACpH,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;oBACpG,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;oBACnC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;oBACxB,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC;oBAC/B,IAAI,CAAC,aAAa,GAAG,QAAQ,KAAK,IAAI,CAAC;oBACvC,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;oBAC9B,aAAa,IAAI,IAAI,CAAC,MAAM,CAAC;oBAC7B,IAAI,SAAS,EAAE,CAAC;wBACd,SAAS,CAAC,WAAW,IAAI,IAAI,CAAC;wBAC9B,SAAS,CAAC,UAAU,GAAG,aAAa,CAAC;wBACrC,SAAS,CAAC,aAAa,KAAK,QAAQ,KAAK,IAAI,CAAC;wBAC9C,IAAI,SAAS,CAAC,WAAW,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;4BAAE,SAAS,CAAC,aAAa,GAAG,QAAQ,CAAC;6BAChF,IAAI,SAAS,CAAC,aAAa,KAAK,QAAQ;4BAAE,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC;oBAChF,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,KAAK,IAAI,SAAS,EAAE,CAAC;YACxB,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;gBACnD,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC;oBAAE,KAAK,CAAC,KAAgB,EAAE,SAAS,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACvB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI;YAAE,IAAI,CAAC,gBAAgB,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC;IACxG,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,UAAU;QAAE,KAAK,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IACnF,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC/F,CAAC"}
@@ -0,0 +1,54 @@
1
+ import type { DocumentViewNode } from './document_view-types.js';
2
+ export type StructuralDiagnosticSeverity = 'warning' | 'error';
3
+ export type StructuralDiagnosticEvidence = {
4
+ anchor_level: number | null;
5
+ intended_level: number | null;
6
+ first_descendant_id?: string;
7
+ first_descendant_level?: number;
8
+ style_source_id?: string;
9
+ anchor_num_id?: string;
10
+ style_source_num_id?: string;
11
+ bonded_heading_style?: string;
12
+ bonded_body_style?: string;
13
+ bonded_body_style_candidates?: string[];
14
+ };
15
+ export type StructuralDiagnostic = {
16
+ code: 'PARENT_CHILD_SLICE' | 'LIST_LEVEL_MISMATCH' | 'MID_LIST_RENUMBERING' | 'BONDED_PARAGRAPH_PAIR_REQUIRED' | 'RUN_IN_PAIR_ORDER' | 'BONDED_PARAGRAPH_PAIR_AMBIGUOUS';
17
+ severity: StructuralDiagnosticSeverity;
18
+ operation_id: string;
19
+ anchor_id: string;
20
+ message: string;
21
+ evidence: StructuralDiagnosticEvidence;
22
+ suggested_anchor_id?: string;
23
+ /** Position to use with `suggested_anchor_id`; omitted when it matches the original position. */
24
+ suggested_position?: 'BEFORE' | 'AFTER';
25
+ };
26
+ /**
27
+ * Source evidence the node view does not carry. `runInHeadingIds` names
28
+ * paragraphs whose paragraph mark is a Word style separator (`w:specVanish`),
29
+ * so the heading renders run-in with the following paragraph. Only those
30
+ * paragraphs can anchor a bonded heading/body pair; a repeated
31
+ * `Heading1 → Normal` transition by itself is ordinary section structure.
32
+ */
33
+ export type StructuralValidationOptions = {
34
+ runInHeadingIds?: ReadonlySet<string>;
35
+ };
36
+ export type ResolvedInsertionContext = {
37
+ operationId: string;
38
+ position: 'BEFORE' | 'AFTER';
39
+ anchorId: string;
40
+ styleSourceId?: string;
41
+ };
42
+ export type StructuralValidator = (nodes: readonly DocumentViewNode[], context: ResolvedInsertionContext) => StructuralDiagnostic[];
43
+ export declare const structuralValidators: readonly StructuralValidator[];
44
+ export declare function validateStructuralInsertion(nodes: readonly DocumentViewNode[], context: ResolvedInsertionContext): StructuralDiagnostic[];
45
+ export declare function validateStructuralInsertions(nodes: readonly DocumentViewNode[], contexts: readonly ResolvedInsertionContext[], options?: StructuralValidationOptions): StructuralDiagnostic[];
46
+ /**
47
+ * Paragraph ids whose paragraph mark carries `w:specVanish` (Word's style
48
+ * separator), i.e. headings that render run-in with the next paragraph.
49
+ */
50
+ export declare function collectRunInHeadingIds(paragraphs: Iterable<Element>): Set<string>;
51
+ export declare function isRunInHeadingParagraph(paragraph: Element): boolean;
52
+ /** True only for the explicit two-operation form of a source-proven bonded pair. */
53
+ export declare function isRecognizedBondedInsertionPair(nodes: readonly DocumentViewNode[], contexts: readonly ResolvedInsertionContext[], options?: StructuralValidationOptions): boolean;
54
+ //# sourceMappingURL=structural_validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structural_validation.d.ts","sourceRoot":"","sources":["../../src/primitives/structural_validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAIjE,MAAM,MAAM,4BAA4B,GAAG,SAAS,GAAG,OAAO,CAAC;AAE/D,MAAM,MAAM,4BAA4B,GAAG;IACzC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,4BAA4B,CAAC,EAAE,MAAM,EAAE,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,oBAAoB,GAAG,qBAAqB,GAAG,sBAAsB,GACvE,gCAAgC,GAAG,mBAAmB,GACtD,iCAAiC,CAAC;IACtC,QAAQ,EAAE,4BAA4B,CAAC;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,4BAA4B,CAAC;IACvC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,iGAAiG;IACjG,kBAAkB,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;CACzC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,2BAA2B,GAAG;IACxC,eAAe,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,CAChC,KAAK,EAAE,SAAS,gBAAgB,EAAE,EAClC,OAAO,EAAE,wBAAwB,KAC9B,oBAAoB,EAAE,CAAC;AAiH5B,eAAO,MAAM,oBAAoB,EAAE,SAAS,mBAAmB,EAI9D,CAAC;AAEF,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,SAAS,gBAAgB,EAAE,EAClC,OAAO,EAAE,wBAAwB,GAChC,oBAAoB,EAAE,CAExB;AAED,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,SAAS,gBAAgB,EAAE,EAClC,QAAQ,EAAE,SAAS,wBAAwB,EAAE,EAC7C,OAAO,GAAE,2BAAgC,GACxC,oBAAoB,EAAE,CAIxB;AA4HD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAQjF;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAOnE;AAED,oFAAoF;AACpF,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,SAAS,gBAAgB,EAAE,EAClC,QAAQ,EAAE,SAAS,wBAAwB,EAAE,EAC7C,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAgBT"}
@@ -0,0 +1,301 @@
1
+ import { getParagraphBookmarkId } from './bookmarks.js';
2
+ import { getDirectChildrenByName } from './dom-helpers.js';
3
+ function hierarchyLevel(node) {
4
+ if (!node)
5
+ return null;
6
+ if (node.heading?.level != null && (node.heading.source === 'word_style'
7
+ || node.heading.source === 'list_metadata'
8
+ || node.heading.source === 'outline_level'))
9
+ return node.heading.level;
10
+ if (node.numbering.is_auto_numbered && node.numbering.ilvl != null)
11
+ return node.numbering.ilvl + 1;
12
+ return null;
13
+ }
14
+ function structuralStyle(node) {
15
+ return node?.paragraph_style_id ?? node?.style ?? '';
16
+ }
17
+ const parentChildSlicing = (nodes, context) => {
18
+ const anchorIndex = nodes.findIndex((node) => node.id === context.anchorId);
19
+ const source = nodes.find((node) => node.id === (context.styleSourceId ?? context.anchorId));
20
+ if (anchorIndex < 0 || !source)
21
+ return [];
22
+ const intendedLevel = hierarchyLevel(source);
23
+ if (intendedLevel == null)
24
+ return [];
25
+ // The insertion lands in the gap between `gapIndex` and `gapIndex + 1`.
26
+ const gapIndex = context.position === 'AFTER' ? anchorIndex : anchorIndex - 1;
27
+ // The run the new paragraph would capture: every following paragraph until
28
+ // one at or above the intended level.
29
+ let firstCaptured;
30
+ let lastCapturedId;
31
+ for (let index = gapIndex + 1; index < nodes.length; index += 1) {
32
+ const level = hierarchyLevel(nodes[index]);
33
+ if (level != null && level <= intendedLevel)
34
+ break;
35
+ if (level != null && !firstCaptured)
36
+ firstCaptured = { id: nodes[index].id, level };
37
+ lastCapturedId = nodes[index].id;
38
+ }
39
+ if (!firstCaptured)
40
+ return [];
41
+ // Slicing only happens when the captured paragraph already has a parent
42
+ // before the gap: the insertion would steal it from that parent.
43
+ let hasExistingParent = false;
44
+ for (let index = gapIndex; index >= 0; index -= 1) {
45
+ const level = hierarchyLevel(nodes[index]);
46
+ if (level != null && level < firstCaptured.level) {
47
+ hasExistingParent = true;
48
+ break;
49
+ }
50
+ }
51
+ if (!hasExistingParent)
52
+ return [];
53
+ const suggestedAnchorId = lastCapturedId;
54
+ return [{
55
+ code: 'PARENT_CHILD_SLICE',
56
+ severity: 'error',
57
+ operation_id: context.operationId,
58
+ anchor_id: context.anchorId,
59
+ message: `Insertion ${context.operationId} would separate ${firstCaptured.id} from its existing parent; insert after ${suggestedAnchorId} instead.`,
60
+ evidence: {
61
+ anchor_level: hierarchyLevel(nodes[anchorIndex]),
62
+ intended_level: intendedLevel,
63
+ first_descendant_id: firstCaptured.id,
64
+ first_descendant_level: firstCaptured.level,
65
+ style_source_id: context.styleSourceId,
66
+ },
67
+ suggested_anchor_id: suggestedAnchorId,
68
+ suggested_position: 'AFTER',
69
+ }];
70
+ };
71
+ const listLevelMismatch = (nodes, context) => {
72
+ const anchor = nodes.find((node) => node.id === context.anchorId);
73
+ const source = nodes.find((node) => node.id === (context.styleSourceId ?? context.anchorId));
74
+ if (!anchor?.numbering.is_auto_numbered || !source?.numbering.is_auto_numbered)
75
+ return [];
76
+ if (anchor.numbering.ilvl == null || source.numbering.ilvl == null || anchor.numbering.ilvl === source.numbering.ilvl)
77
+ return [];
78
+ return [{
79
+ code: 'LIST_LEVEL_MISMATCH',
80
+ severity: 'warning',
81
+ operation_id: context.operationId,
82
+ anchor_id: context.anchorId,
83
+ message: `Insertion ${context.operationId} uses list level ${source.numbering.ilvl} beside level ${anchor.numbering.ilvl}; confirm that nesting is intentional.`,
84
+ evidence: {
85
+ anchor_level: anchor.numbering.ilvl + 1,
86
+ intended_level: source.numbering.ilvl + 1,
87
+ style_source_id: context.styleSourceId,
88
+ anchor_num_id: anchor.numbering.num_id ?? undefined,
89
+ style_source_num_id: source.numbering.num_id ?? undefined,
90
+ },
91
+ }];
92
+ };
93
+ const midListRenumbering = (nodes, context) => {
94
+ const anchorIndex = nodes.findIndex((node) => node.id === context.anchorId);
95
+ const source = nodes.find((node) => node.id === (context.styleSourceId ?? context.anchorId));
96
+ if (anchorIndex < 0 || !source?.numbering.is_auto_numbered)
97
+ return [];
98
+ const anchor = nodes[anchorIndex];
99
+ const neighbor = context.position === 'AFTER' ? nodes[anchorIndex + 1] : nodes[anchorIndex - 1];
100
+ if (!anchor.numbering.is_auto_numbered || !neighbor?.numbering.is_auto_numbered)
101
+ return [];
102
+ const sameListWindow = anchor.numbering.num_id != null
103
+ && anchor.numbering.num_id === neighbor.numbering.num_id
104
+ && anchor.numbering.ilvl === neighbor.numbering.ilvl;
105
+ if (!sameListWindow || source.numbering.num_id == null || source.numbering.num_id === anchor.numbering.num_id)
106
+ return [];
107
+ return [{
108
+ code: 'MID_LIST_RENUMBERING',
109
+ severity: 'error',
110
+ operation_id: context.operationId,
111
+ anchor_id: context.anchorId,
112
+ message: `Insertion ${context.operationId} would introduce numbering ${source.numbering.num_id} inside list ${anchor.numbering.num_id}; use a peer from the surrounding list.`,
113
+ evidence: {
114
+ anchor_level: hierarchyLevel(anchor),
115
+ intended_level: hierarchyLevel(source),
116
+ style_source_id: context.styleSourceId,
117
+ anchor_num_id: anchor.numbering.num_id ?? undefined,
118
+ style_source_num_id: source.numbering.num_id ?? undefined,
119
+ },
120
+ suggested_anchor_id: anchor.id,
121
+ }];
122
+ };
123
+ export const structuralValidators = [
124
+ parentChildSlicing,
125
+ listLevelMismatch,
126
+ midListRenumbering,
127
+ ];
128
+ export function validateStructuralInsertion(nodes, context) {
129
+ return structuralValidators.flatMap((validator) => validator(nodes, context));
130
+ }
131
+ export function validateStructuralInsertions(nodes, contexts, options = {}) {
132
+ const diagnostics = contexts.flatMap((context) => validateStructuralInsertion(nodes, context));
133
+ diagnostics.push(...validateBondedPairs(nodes, contexts, options));
134
+ return diagnostics;
135
+ }
136
+ function sourceNode(nodes, context) {
137
+ return nodes.find((node) => node.id === (context.styleSourceId ?? context.anchorId));
138
+ }
139
+ /**
140
+ * A heading style is bonded to a follower style only when the source shows the
141
+ * Word run-in construction (a style-separator paragraph mark on the heading)
142
+ * followed by the same follower style at the same indent, at least twice.
143
+ * Title casing and punctuation are not structural authorities.
144
+ */
145
+ function bondedTransitions(nodes, options) {
146
+ const runInHeadingIds = options.runInHeadingIds;
147
+ if (!runInHeadingIds || runInHeadingIds.size === 0)
148
+ return [];
149
+ const transitions = new Map();
150
+ for (let index = 0; index < nodes.length - 1; index += 1) {
151
+ const heading = nodes[index];
152
+ const body = nodes[index + 1];
153
+ if (!runInHeadingIds.has(heading.id))
154
+ continue;
155
+ if (hierarchyLevel(heading) == null || hierarchyLevel(body) != null)
156
+ continue;
157
+ if (Math.abs(heading.paragraph_indents_pt.left - body.paragraph_indents_pt.left) > 0.5)
158
+ continue;
159
+ const headingStyle = structuralStyle(heading);
160
+ const bodyStyle = structuralStyle(body);
161
+ if (!headingStyle || !bodyStyle || headingStyle === bodyStyle)
162
+ continue;
163
+ const key = `${headingStyle}\u0000${bodyStyle}`;
164
+ const current = transitions.get(key);
165
+ transitions.set(key, { headingStyle, bodyStyle, count: (current?.count ?? 0) + 1 });
166
+ }
167
+ return [...transitions.values()].filter((transition) => transition.count >= 2);
168
+ }
169
+ function validateBondedPairs(nodes, contexts, options) {
170
+ const bonded = bondedTransitions(nodes, options);
171
+ if (bonded.length === 0)
172
+ return [];
173
+ const diagnostics = [];
174
+ // Group operations by insertion slot. Repeated AFTER insertion lands each
175
+ // new paragraph directly after the anchor, so the slot's document order is
176
+ // the reverse of operation order; repeated BEFORE preserves operation order.
177
+ const slots = new Map();
178
+ contexts.forEach((context, index) => {
179
+ const key = `${context.anchorId}\u0000${context.position}`;
180
+ slots.set(key, [...(slots.get(key) ?? []), index]);
181
+ });
182
+ for (const operationIndexes of slots.values()) {
183
+ const position = contexts[operationIndexes[0]].position;
184
+ const documentOrder = position === 'AFTER' ? [...operationIndexes].reverse() : operationIndexes;
185
+ const styleOf = (operationIndex) => structuralStyle(sourceNode(nodes, contexts[operationIndex]));
186
+ const consumedBodies = new Set();
187
+ const unpaired = [];
188
+ documentOrder.forEach((operationIndex, slotIndex) => {
189
+ // Only a run-in heading source binds a body; an ordinary paragraph that
190
+ // happens to share the run-in style (e.g. a Heading2 with Heading3
191
+ // children) does not.
192
+ const headingSource = sourceNode(nodes, contexts[operationIndex]);
193
+ if (!headingSource || !options.runInHeadingIds?.has(headingSource.id))
194
+ return;
195
+ const candidatePairs = bonded.filter((transition) => transition.headingStyle === styleOf(operationIndex));
196
+ if (candidatePairs.length === 0)
197
+ return;
198
+ const next = documentOrder[slotIndex + 1];
199
+ const nextStyle = next == null ? undefined : styleOf(next);
200
+ const adjacentPair = candidatePairs.find((pair) => pair.bodyStyle === nextStyle);
201
+ if (next != null && adjacentPair && !consumedBodies.has(next)) {
202
+ consumedBodies.add(next);
203
+ return;
204
+ }
205
+ unpaired.push({ operationIndex, candidatePairs });
206
+ });
207
+ for (const { operationIndex, candidatePairs } of unpaired) {
208
+ const context = contexts[operationIndex];
209
+ const source = sourceNode(nodes, context);
210
+ const availableBodyStyles = new Set(operationIndexes
211
+ .filter((index) => !consumedBodies.has(index))
212
+ .map(styleOf));
213
+ const matchingPairs = candidatePairs.filter((pair) => availableBodyStyles.has(pair.bodyStyle));
214
+ const baseEvidence = {
215
+ anchor_level: hierarchyLevel(nodes.find((node) => node.id === context.anchorId)),
216
+ intended_level: hierarchyLevel(source),
217
+ style_source_id: context.styleSourceId,
218
+ };
219
+ if (candidatePairs.length > 1 && matchingPairs.length !== 1) {
220
+ const candidates = candidatePairs.map((pair) => pair.bodyStyle).sort();
221
+ diagnostics.push({
222
+ code: 'BONDED_PARAGRAPH_PAIR_AMBIGUOUS', severity: 'error', operation_id: context.operationId,
223
+ anchor_id: context.anchorId,
224
+ message: `Style ${structuralStyle(source)} has multiple repeated run-in body followers (${candidates.join(', ')}); supply exactly one matching body peer immediately after the heading in this insertion slot.`,
225
+ evidence: { ...baseEvidence, bonded_heading_style: structuralStyle(source), bonded_body_style_candidates: candidates },
226
+ });
227
+ continue;
228
+ }
229
+ const pair = matchingPairs[0] ?? candidatePairs[0];
230
+ const evidence = { ...baseEvidence, bonded_heading_style: pair.headingStyle, bonded_body_style: pair.bodyStyle };
231
+ if (matchingPairs.length === 0) {
232
+ diagnostics.push({
233
+ code: 'BONDED_PARAGRAPH_PAIR_REQUIRED', severity: 'error', operation_id: context.operationId,
234
+ anchor_id: context.anchorId,
235
+ message: `Style ${pair.headingStyle} is a run-in heading repeatedly followed by ${pair.bodyStyle}; insert both paragraphs with distinct structural peers.`,
236
+ evidence,
237
+ });
238
+ continue;
239
+ }
240
+ const requiredOrder = position === 'AFTER'
241
+ ? `${pair.bodyStyle} immediately before ${pair.headingStyle}`
242
+ : `${pair.headingStyle} immediately before ${pair.bodyStyle}`;
243
+ diagnostics.push({
244
+ code: 'RUN_IN_PAIR_ORDER', severity: 'error', operation_id: context.operationId,
245
+ anchor_id: context.anchorId,
246
+ message: `For repeated ${position} insertion, order operations ${requiredOrder} so the document yields each heading directly followed by its body.`,
247
+ evidence,
248
+ });
249
+ }
250
+ }
251
+ return diagnostics;
252
+ }
253
+ /**
254
+ * Paragraph ids whose paragraph mark carries `w:specVanish` (Word's style
255
+ * separator), i.e. headings that render run-in with the next paragraph.
256
+ */
257
+ export function collectRunInHeadingIds(paragraphs) {
258
+ const ids = new Set();
259
+ for (const paragraph of paragraphs) {
260
+ if (!isRunInHeadingParagraph(paragraph))
261
+ continue;
262
+ const id = getParagraphBookmarkId(paragraph);
263
+ if (id)
264
+ ids.add(id);
265
+ }
266
+ return ids;
267
+ }
268
+ export function isRunInHeadingParagraph(paragraph) {
269
+ const pPr = getDirectChildrenByName(paragraph, 'pPr')[0];
270
+ const markRPr = pPr ? getDirectChildrenByName(pPr, 'rPr')[0] : undefined;
271
+ const specVanish = markRPr ? getDirectChildrenByName(markRPr, 'specVanish')[0] : undefined;
272
+ if (!specVanish)
273
+ return false;
274
+ const value = (specVanish.getAttribute('w:val') ?? '').trim().toLowerCase();
275
+ return value !== '0' && value !== 'false' && value !== 'off';
276
+ }
277
+ /** True only for the explicit two-operation form of a source-proven bonded pair. */
278
+ export function isRecognizedBondedInsertionPair(nodes, contexts, options = {}) {
279
+ if (contexts.length !== 2)
280
+ return false;
281
+ const [first, second] = contexts;
282
+ if (!first || !second || first.anchorId !== second.anchorId || first.position !== second.position)
283
+ return false;
284
+ const sources = contexts.map((context) => sourceNode(nodes, context));
285
+ if (!sources[0] || !sources[1] || structuralStyle(sources[0]) === structuralStyle(sources[1]))
286
+ return false;
287
+ const headingIndex = sources.findIndex((source) => hierarchyLevel(source) != null);
288
+ const bodyIndex = sources.findIndex((source) => hierarchyLevel(source) == null);
289
+ if (headingIndex < 0 || bodyIndex < 0)
290
+ return false;
291
+ if (!options.runInHeadingIds?.has(sources[headingIndex].id))
292
+ return false;
293
+ const headingStyle = structuralStyle(sources[headingIndex]);
294
+ const bodyStyle = structuralStyle(sources[bodyIndex]);
295
+ const proven = bondedTransitions(nodes, options)
296
+ .some((transition) => transition.headingStyle === headingStyle && transition.bodyStyle === bodyStyle);
297
+ if (!proven)
298
+ return false;
299
+ return !validateBondedPairs(nodes, contexts, options).length;
300
+ }
301
+ //# sourceMappingURL=structural_validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structural_validation.js","sourceRoot":"","sources":["../../src/primitives/structural_validation.ts"],"names":[],"mappings":"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"}
@@ -5,9 +5,39 @@ export type StyleDef = {
5
5
  basedOn: string | null;
6
6
  pPr: Element | null;
7
7
  rPr: Element | null;
8
+ /**
9
+ * Table styles only: the style's own `w:tblPr` (read for
10
+ * `w:tblStyleRowBandSize` / `w:tblStyleColBandSize`), and the `w:rPr` of
11
+ * each conditional `w:tblStylePr`, keyed by its `w:type`. Optional so
12
+ * hand-built models remain source-compatible.
13
+ */
14
+ tblPr?: Element | null;
15
+ conditionalRPrs?: Map<string, Element>;
8
16
  };
9
17
  export type StylesModel = {
10
18
  byId: Map<string, StyleDef>;
19
+ /**
20
+ * `w:docDefaults/w:rPrDefault/w:rPr`, when the styles part declares one.
21
+ * {@link extractEffectiveRunFormatting} reads it as the lowest-precedence
22
+ * run-property layer (#753). Optional so callers that build the `{ byId }`
23
+ * shape by hand remain source-compatible; such a model has no document
24
+ * defaults.
25
+ */
26
+ docDefaultsRPr?: Element | null;
27
+ /**
28
+ * The `w:styleId` of the default table style (`w:type="table"` with
29
+ * `w:default="1"`), which applies to a table that names no `w:tblStyle`.
30
+ */
31
+ defaultTableStyleId?: string | null;
32
+ /**
33
+ * Every `w:rPr` carried by a table style, including the conditional
34
+ * `w:tblStylePr/w:rPr` blocks.
35
+ *
36
+ * @deprecated No longer read: {@link extractEffectiveRunFormatting} resolves
37
+ * table styles from the run's table context since #1159. Still populated so
38
+ * existing readers keep compiling.
39
+ */
40
+ tableStyleRPrs?: Element[];
11
41
  };
12
42
  export type ThemeModel = {
13
43
  fonts: Map<string, string>;
@@ -34,22 +64,41 @@ export type ParagraphFormatting = {
34
64
  outlineLevel: number | null;
35
65
  };
36
66
  export declare function extractParagraphFormatting(pPr: Element | null, styles: StylesModel): ParagraphFormatting;
67
+ /**
68
+ * Effective run formatting. `null` means the resolver could not establish the
69
+ * property, and never stands in for a rendered default. That happens when:
70
+ * - the nearest layer that declares it does so through a theme colour or
71
+ * theme font reference that cannot be resolved (no theme, or no matching
72
+ * theme entry, and no explicit fallback value); or
73
+ * - it has no OOXML default (`fontName`, `fontSizePt`) and no consulted layer,
74
+ * `w:docDefaults` included, declares it.
75
+ *
76
+ * A property declared nowhere in the document resolves to its OOXML default:
77
+ * `false` for toggles and `underline`, `false` for `highlightVal` (no
78
+ * highlight), and `'auto'` for `colorHex`. Explicit "off" declarations
79
+ * (`w:b w:val="0"`, `w:u w:val="none"`, `w:highlight w:val="none"`,
80
+ * `w:color w:val="auto"`) resolve to the same values, and like any other
81
+ * declaration they stop inheritance: `w:color w:val="auto"` on a run hides a
82
+ * character style's red, and `w:highlight w:val="none"` hides its highlight.
83
+ *
84
+ * @see https://github.com/UseJunior/safe-docx/issues/752
85
+ */
37
86
  export type RunFormatting = {
38
- bold: boolean;
39
- italic: boolean;
40
- caps: boolean;
41
- smallCaps: boolean;
42
- strike: boolean;
43
- emboss: boolean;
44
- imprint: boolean;
45
- outline: boolean;
46
- shadow: boolean;
47
- vanish: boolean;
48
- underline: boolean;
49
- highlightVal: string | null;
50
- fontName: string;
51
- fontSizePt: number;
52
- colorHex: string | null;
87
+ bold: boolean | null;
88
+ italic: boolean | null;
89
+ caps: boolean | null;
90
+ smallCaps: boolean | null;
91
+ strike: boolean | null;
92
+ emboss: boolean | null;
93
+ imprint: boolean | null;
94
+ outline: boolean | null;
95
+ shadow: boolean | null;
96
+ vanish: boolean | null;
97
+ underline: boolean | null;
98
+ highlightVal: string | false | null;
99
+ fontName: string | null;
100
+ fontSizePt: number | null;
101
+ colorHex: string | 'auto' | null;
53
102
  };
54
103
  /**
55
104
  * Tri-state run formatting resolved from a named style's `basedOn` chain: `null` means no
@@ -71,8 +120,9 @@ export declare function extractStyleRunFormatting(styles: StylesModel, styleId:
71
120
  * the run declares. Ordinary properties are taken from the first layer that
72
121
  * specifies them: direct `w:rPr` on the run, then the `w:rStyle`
73
122
  * character-style `basedOn` chain, then the paragraph mark's `w:rPr` inside
74
- * `pPr`, then the paragraph style's `basedOn` chain. A property specified
75
- * nowhere resolves to the neutral value (`false`, `''`, `0`, or `null`).
123
+ * `pPr`, then the paragraph style's `basedOn` chain, then — for a run inside
124
+ * a table — the table style, and finally the document defaults
125
+ * (`w:docDefaults/w:rPrDefault/w:rPr`).
76
126
  *
77
127
  * Each property is resolved independently down the chain — a style that
78
128
  * specifies only color does not mask an ancestor's bold.
@@ -84,9 +134,24 @@ export declare function extractStyleRunFormatting(styles: StylesModel, styleId:
84
134
  * `w:caps`, `w:smallCaps`, `w:strike`, `w:emboss`, `w:imprint`, `w:outline`,
85
135
  * `w:shadow`, and `w:vanish`.
86
136
  *
87
- * Not resolved: `w:docDefaults`, table-style run properties, and
88
- * numbering-level `rPr`. A formatting change confined to one of those layers
89
- * is invisible to this resolver.
137
+ * Document defaults seed toggle evaluation as an absolute base value rather
138
+ * than acting as another parity level (see {@link resolveToggleProperty}).
139
+ *
140
+ * Table styles (#1159): the table context is read from the run's ancestors —
141
+ * the innermost `w:tbl`, its `w:tblStyle` (or the default table style), the
142
+ * `basedOn` chain, `w:tblLook`, and the cell's row and column. The style's
143
+ * `w:rPr` and every conditional `w:tblStylePr/w:rPr` that applies to the
144
+ * cell merge into one layer between the document defaults and the paragraph
145
+ * style (see {@link tableStyleLayers} for the order). For toggles the
146
+ * merged layer's nearest declaration resets the value rather than toggling
147
+ * it: the standard says a table style toggles like any other style, but Word
148
+ * assigns the declared value (MS-OI29500 note on § 17.7.6), and this follows
149
+ * Word.
150
+ *
151
+ * @see https://learn.microsoft.com/en-us/openspecs/office_standards/ms-oi29500/14452bbe-be4d-4dbb-90e6-3d23ae9361bc
152
+ *
153
+ * Numbering-level `rPr` formats only the list label (`w:lvlText`), never the
154
+ * paragraph's runs, so it is out of scope.
90
155
  *
91
156
  * Part of docx-core's public surface (see `src/index.ts`) so external
92
157
  * diagnostics — `scripts/check_docx_formatting_loss.mjs` today, the planned
@@ -101,8 +166,14 @@ export declare function extractStyleRunFormatting(styles: StylesModel, styleId:
101
166
  * @param params.theme the model produced by {@link parseThemeXml}; when
102
167
  * omitted, direct font/color fallbacks retain their previous behavior
103
168
  *
169
+ * @conformance ECMA-376 edition 5, Part 1 § 17.7.2
104
170
  * @conformance ECMA-376 edition 5, Part 1 § 17.7.3
171
+ * @conformance ECMA-376 edition 5, Part 1 § 17.7.5.1
172
+ * @conformance ECMA-376 edition 5, Part 1 § 17.7.6
105
173
  * @see https://github.com/UseJunior/safe-docx/issues/737
174
+ * @see https://github.com/UseJunior/safe-docx/issues/752
175
+ * @see https://github.com/UseJunior/safe-docx/issues/753
176
+ * @see https://github.com/UseJunior/safe-docx/issues/1159
106
177
  */
107
178
  export declare function extractEffectiveRunFormatting(params: {
108
179
  run: Element;
@@ -111,4 +182,23 @@ export declare function extractEffectiveRunFormatting(params: {
111
182
  styles: StylesModel;
112
183
  theme?: ThemeModel | null;
113
184
  }): RunFormatting;
185
+ /**
186
+ * Effective run formatting for annotation bodies (comments, footnotes), whose
187
+ * `tagged_text` is emitted in `full` mode and read back by docx-markdoc.
188
+ * Toggles, underline and highlight resolve through every layer, document
189
+ * defaults included. Colour, size and font are reported only when a layer
190
+ * above `w:docDefaults` declares them, otherwise as not declared (`'auto'` /
191
+ * `null`), so the inherited document font is not tagged as `face` on every run
192
+ * and a direct value that restates the document default is still emitted
193
+ * over a character style that would otherwise show through on import.
194
+ *
195
+ * @see https://github.com/UseJunior/safe-docx/issues/753
196
+ */
197
+ export declare function extractAnnotationRunFormatting(params: {
198
+ run: Element;
199
+ paragraphPPr: Element | null;
200
+ paragraphStyleId: string | null;
201
+ styles: StylesModel;
202
+ theme?: ThemeModel | null;
203
+ }): RunFormatting;
114
204
  //# sourceMappingURL=styles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/primitives/styles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/primitives/styles.ts"],"names":[],"mappings":"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"}