@usejunior/docx-core
Advanced tools
@@ -11,4 +11,3 @@ /** | ||
| export { checkGeneratedPackage, type StructuralCheckResult, type StructuralIssue } from './structural-checks.js'; | ||
| export { coverTermsTable, signatureBlock, type CoverTermsOptions, type SignatureBlockOptions } from './recipes.js'; | ||
| export type { BlockSpec, BorderSpec, BreakSpec, DocumentMetaSpec, DocumentSpec, DraftingNoteSpec, FieldSpec, HeaderFooterSet, HeaderFooterSpec, InlineSpec, NumberingSpec, ParagraphSpec, RunProps, RunSpec, SectionSpec, StyleSpec, TableBorders, TableCellSpec, TableRowSpec, TableSpec, TabSpec, } from './types.js'; | ||
| //# sourceMappingURL=index.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generation/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,KAAK,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACzG,OAAO,EAAE,qBAAqB,EAAE,KAAK,qBAAqB,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACjH,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,KAAK,iBAAiB,EAAE,KAAK,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACnH,YAAY,EACV,SAAS,EACT,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,aAAa,EACb,QAAQ,EACR,OAAO,EACP,WAAW,EACX,SAAS,EACT,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,SAAS,EACT,OAAO,GACR,MAAM,YAAY,CAAC"} | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generation/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,KAAK,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACzG,OAAO,EAAE,qBAAqB,EAAE,KAAK,qBAAqB,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACjH,YAAY,EACV,SAAS,EACT,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,aAAa,EACb,QAAQ,EACR,OAAO,EACP,WAAW,EACX,SAAS,EACT,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,SAAS,EACT,OAAO,GACR,MAAM,YAAY,CAAC"} |
@@ -11,3 +11,2 @@ /** | ||
| export { checkGeneratedPackage } from './structural-checks.js'; | ||
| export { coverTermsTable, signatureBlock } from './recipes.js'; | ||
| //# sourceMappingURL=index.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generation/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAA4B,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAgC,MAAM,aAAa,CAAC;AACzG,OAAO,EAAE,qBAAqB,EAAoD,MAAM,wBAAwB,CAAC;AACjH,OAAO,EAAE,eAAe,EAAE,cAAc,EAAsD,MAAM,cAAc,CAAC"} | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generation/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAA4B,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAgC,MAAM,aAAa,CAAC;AACzG,OAAO,EAAE,qBAAqB,EAAoD,MAAM,wBAAwB,CAAC"} |
+1
-1
@@ -34,4 +34,4 @@ /** | ||
| export { buildSyntheticDocx, buildDocxFromParts, type SyntheticDocxOptions, type DocxPartsOptions, } from './integration/synthetic-docx-fixture.js'; | ||
| export { generateDocx, type GenerateDocxOptions, GenerationSpecError, GenerationInternalError, type GenerationSpecErrorCode, checkGeneratedPackage, type StructuralCheckResult, type StructuralIssue, coverTermsTable, signatureBlock, type CoverTermsOptions, type SignatureBlockOptions, } from './generation/index.js'; | ||
| export { generateDocx, type GenerateDocxOptions, GenerationSpecError, GenerationInternalError, type GenerationSpecErrorCode, checkGeneratedPackage, type StructuralCheckResult, type StructuralIssue, } from './generation/index.js'; | ||
| export type { BlockSpec, BorderSpec, BreakSpec, DocumentMetaSpec, DocumentSpec, DraftingNoteSpec, FieldSpec, HeaderFooterSet, HeaderFooterSpec, InlineSpec, NumberingSpec, ParagraphSpec, RunProps, RunSpec, SectionSpec, StyleSpec, TableBorders, TableCellSpec, TableRowSpec, TableSpec, TabSpec, } from './generation/index.js'; | ||
| //# sourceMappingURL=index.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExE,YAAY,EACV,cAAc,EACd,aAAa,EACb,YAAY,EACZ,gCAAgC,EAChC,qCAAqC,EACrC,qCAAqC,EACrC,iCAAiC,EACjC,4BAA4B,EAC5B,qBAAqB,EACrB,4BAA4B,EAC5B,kBAAkB,EAClB,6BAA6B,EAC7B,0BAA0B,EAC1B,kCAAkC,EAClC,kCAAkC,EAClC,iCAAiC,EACjC,iCAAiC,GAClC,MAAM,oBAAoB,CAAC;AAE5B;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,aAAa,CAAC,CA0BxB;AAGD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AAGxC,cAAc,iBAAiB,CAAC;AAGhC,cAAc,eAAe,CAAC;AAG9B,cAAc,qBAAqB,CAAC;AAGpC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,4CAA4C,CAAC;AAG3D,cAAc,gBAAgB,CAAC;AAG/B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,uBAAuB,CAAC;AACtC,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,EACrB,aAAa,EACb,UAAU,EACV,yBAAyB,EACzB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,uCAAuC,CAAC;AAC/C,YAAY,EACV,eAAe,EACf,sBAAsB,EACtB,eAAe,GAChB,MAAM,uCAAuC,CAAC;AAK/C,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,KAAK,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAK/H,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,GACtB,MAAM,yCAAyC,CAAC;AAKjD,OAAO,EACL,YAAY,EACZ,KAAK,mBAAmB,EACxB,mBAAmB,EACnB,uBAAuB,EACvB,KAAK,uBAAuB,EAC5B,qBAAqB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,eAAe,EACf,cAAc,EACd,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,GAC3B,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,SAAS,EACT,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,aAAa,EACb,QAAQ,EACR,OAAO,EACP,WAAW,EACX,SAAS,EACT,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,SAAS,EACT,OAAO,GACR,MAAM,uBAAuB,CAAC"} | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExE,YAAY,EACV,cAAc,EACd,aAAa,EACb,YAAY,EACZ,gCAAgC,EAChC,qCAAqC,EACrC,qCAAqC,EACrC,iCAAiC,EACjC,4BAA4B,EAC5B,qBAAqB,EACrB,4BAA4B,EAC5B,kBAAkB,EAClB,6BAA6B,EAC7B,0BAA0B,EAC1B,kCAAkC,EAClC,kCAAkC,EAClC,iCAAiC,EACjC,iCAAiC,GAClC,MAAM,oBAAoB,CAAC;AAE5B;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,aAAa,CAAC,CA0BxB;AAGD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AAGxC,cAAc,iBAAiB,CAAC;AAGhC,cAAc,eAAe,CAAC;AAG9B,cAAc,qBAAqB,CAAC;AAGpC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,4CAA4C,CAAC;AAG3D,cAAc,gBAAgB,CAAC;AAG/B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,uBAAuB,CAAC;AACtC,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,EACrB,aAAa,EACb,UAAU,EACV,yBAAyB,EACzB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,uCAAuC,CAAC;AAC/C,YAAY,EACV,eAAe,EACf,sBAAsB,EACtB,eAAe,GAChB,MAAM,uCAAuC,CAAC;AAK/C,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,KAAK,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAK/H,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,GACtB,MAAM,yCAAyC,CAAC;AAKjD,OAAO,EACL,YAAY,EACZ,KAAK,mBAAmB,EACxB,mBAAmB,EACnB,uBAAuB,EACvB,KAAK,uBAAuB,EAC5B,qBAAqB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,GACrB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,SAAS,EACT,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,aAAa,EACb,QAAQ,EACR,OAAO,EACP,WAAW,EACX,SAAS,EACT,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,SAAS,EACT,OAAO,GACR,MAAM,uBAAuB,CAAC"} |
+1
-1
@@ -69,3 +69,3 @@ /** | ||
| // scenario coverage enforced strictly in CI. | ||
| export { generateDocx, GenerationSpecError, GenerationInternalError, checkGeneratedPackage, coverTermsTable, signatureBlock, } from './generation/index.js'; | ||
| export { generateDocx, GenerationSpecError, GenerationInternalError, checkGeneratedPackage, } from './generation/index.js'; | ||
| //# sourceMappingURL=index.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAuB5E;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAAgB,EAChB,OAAe,EACf,UAA0B,EAAE;IAE5B,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IAEpF,+CAA+C;IAC/C,IAAK,MAAiB,KAAK,WAAW,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CACb,+DAA+D;YAC/D,iDAAiD,CAClD,CAAC;IACJ,CAAC;IAED,sEAAsE;IACtE,IAAI,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QAC/C,OAAO,wBAAwB,CAAC,QAAQ,EAAE,OAAO,EAAE;YACjD,MAAM;YACN,IAAI;YACJ,kBAAkB;YAClB,YAAY;SACb,CAAC,CAAC;IACL,CAAC;IAED,6DAA6D;IAC7D,MAAM,IAAI,KAAK,CACb,kEAAkE;QAClE,2DAA2D,CAC5D,CAAC;AACJ,CAAC;AAED,6BAA6B;AAC7B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AAExC,mCAAmC;AACnC,cAAc,iBAAiB,CAAC;AAEhC,+BAA+B;AAC/B,cAAc,eAAe,CAAC;AAE9B,2BAA2B;AAC3B,cAAc,qBAAqB,CAAC;AAEpC,6BAA6B;AAC7B,cAAc,uBAAuB,CAAC;AAEtC,qDAAqD;AACrD,cAAc,4CAA4C,CAAC;AAE3D,gCAAgC;AAChC,cAAc,gBAAgB,CAAC;AAE/B,+BAA+B;AAC/B,cAAc,gBAAgB,CAAC;AAE/B,mEAAmE;AACnE,cAAc,uBAAuB,CAAC;AACtC,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,EACrB,aAAa,EACb,UAAU,EACV,yBAAyB,EACzB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,uCAAuC,CAAC;AAO/C,2FAA2F;AAC3F,2FAA2F;AAC3F,oGAAoG;AACpG,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,oBAAoB,EAAkB,MAAM,qCAAqC,CAAC;AAE/H,mFAAmF;AACnF,wFAAwF;AACxF,8EAA8E;AAC9E,OAAO,EACL,kBAAkB,EAClB,kBAAkB,GAGnB,MAAM,yCAAyC,CAAC;AAEjD,+EAA+E;AAC/E,6EAA6E;AAC7E,6CAA6C;AAC7C,OAAO,EACL,YAAY,EAEZ,mBAAmB,EACnB,uBAAuB,EAEvB,qBAAqB,EAGrB,eAAe,EACf,cAAc,GAGf,MAAM,uBAAuB,CAAC"} | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAuB5E;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAAgB,EAChB,OAAe,EACf,UAA0B,EAAE;IAE5B,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IAEpF,+CAA+C;IAC/C,IAAK,MAAiB,KAAK,WAAW,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CACb,+DAA+D;YAC/D,iDAAiD,CAClD,CAAC;IACJ,CAAC;IAED,sEAAsE;IACtE,IAAI,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QAC/C,OAAO,wBAAwB,CAAC,QAAQ,EAAE,OAAO,EAAE;YACjD,MAAM;YACN,IAAI;YACJ,kBAAkB;YAClB,YAAY;SACb,CAAC,CAAC;IACL,CAAC;IAED,6DAA6D;IAC7D,MAAM,IAAI,KAAK,CACb,kEAAkE;QAClE,2DAA2D,CAC5D,CAAC;AACJ,CAAC;AAED,6BAA6B;AAC7B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AAExC,mCAAmC;AACnC,cAAc,iBAAiB,CAAC;AAEhC,+BAA+B;AAC/B,cAAc,eAAe,CAAC;AAE9B,2BAA2B;AAC3B,cAAc,qBAAqB,CAAC;AAEpC,6BAA6B;AAC7B,cAAc,uBAAuB,CAAC;AAEtC,qDAAqD;AACrD,cAAc,4CAA4C,CAAC;AAE3D,gCAAgC;AAChC,cAAc,gBAAgB,CAAC;AAE/B,+BAA+B;AAC/B,cAAc,gBAAgB,CAAC;AAE/B,mEAAmE;AACnE,cAAc,uBAAuB,CAAC;AACtC,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,EACrB,aAAa,EACb,UAAU,EACV,yBAAyB,EACzB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,uCAAuC,CAAC;AAO/C,2FAA2F;AAC3F,2FAA2F;AAC3F,oGAAoG;AACpG,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,oBAAoB,EAAkB,MAAM,qCAAqC,CAAC;AAE/H,mFAAmF;AACnF,wFAAwF;AACxF,8EAA8E;AAC9E,OAAO,EACL,kBAAkB,EAClB,kBAAkB,GAGnB,MAAM,yCAAyC,CAAC;AAEjD,+EAA+E;AAC/E,6EAA6E;AAC7E,6CAA6C;AAC7C,OAAO,EACL,YAAY,EAEZ,mBAAmB,EACnB,uBAAuB,EAEvB,qBAAqB,GAGtB,MAAM,uBAAuB,CAAC"} |
+5
-2
| { | ||
| "name": "@usejunior/docx-core", | ||
| "version": "0.14.0", | ||
| "version": "0.15.0", | ||
| "description": "OOXML (.docx) core library: primitives, comparison, and track changes", | ||
@@ -16,3 +16,6 @@ "type": "module", | ||
| "test:coverage": "node ../../node_modules/vitest/vitest.mjs run --coverage --coverage.reporter=text-summary --coverage.reporter=json-summary --coverage.reporter=lcov", | ||
| "check:spec-coverage": "node scripts/validate_openspec_coverage.mjs && node scripts/validate_primitives_openspec_coverage.mjs", | ||
| "check:spec-coverage": "npm run check:spec-coverage:openspec && npm run check:spec-coverage:primitives -- --strict && npm run check:spec-coverage:tag-density", | ||
| "check:spec-coverage:openspec": "node scripts/validate_openspec_coverage.mjs", | ||
| "check:spec-coverage:primitives": "node scripts/validate_primitives_openspec_coverage.mjs", | ||
| "check:spec-coverage:tag-density": "node scripts/validate_openspec_tag_density.mjs", | ||
| "check:spec-coverage-generation": "node scripts/validate_generation_openspec_coverage.mjs", | ||
@@ -19,0 +22,0 @@ "lint": "tsc --noEmit", |
| /** | ||
| * Legal-document recipes. | ||
| * | ||
| * Pure functions producing spec nodes from options — no own OOXML | ||
| * representation, no compiler hooks. Everything a recipe returns is built | ||
| * from the paragraph/table grammar, so its output is inlineable anywhere a | ||
| * BlockSpec is accepted and serializes through exactly the emitters the | ||
| * rest of the document uses. Signature lines are bottom-bordered cells, not | ||
| * VML shapes: Pages and Google Docs mangle VML, borders survive everywhere. | ||
| */ | ||
| import type { BlockSpec, HighlightColor, TableSpec } from './types.js'; | ||
| /** A value cell that can be flagged as an unfilled fillable placeholder. */ | ||
| type FillableValue = { | ||
| fillable?: boolean; | ||
| }; | ||
| export type CoverTermRow = { | ||
| label: string; | ||
| value: string; | ||
| } & FillableValue; | ||
| export type CoverTermGroupRow = { | ||
| group: string; | ||
| }; | ||
| export type CoverTermSubrow = { | ||
| label: string; | ||
| value: string; | ||
| subrow: true; | ||
| } & FillableValue; | ||
| export type CoverTermEntry = CoverTermRow | CoverTermGroupRow | CoverTermSubrow; | ||
| export type CoverTermsOptions = { | ||
| /** Plain rows, group headers, and subrows rendered in declaration order. */ | ||
| terms: CoverTermEntry[]; | ||
| /** Two-column widths in twips; defaults to a 2880/6480 split of a 6.5" body. */ | ||
| columnWidthsTwips?: [number, number]; | ||
| /** Heading text for a shaded full-width header row; omitted when absent. */ | ||
| title?: string; | ||
| /** Table border style; defaults to the historical full grid. */ | ||
| borderMode?: 'grid' | 'horizontal-rules'; | ||
| /** Optional minimum row height applied to term/group/sub rows, not the title row. */ | ||
| rowHeightTwips?: number; | ||
| /** Optional uniform cell padding applied to every cover-terms cell. */ | ||
| cellPaddingTwips?: number; | ||
| /** | ||
| * Optional non-uniform cell margins. When set it supersedes `cellPaddingTwips` | ||
| * for every cover-terms cell (the subrow label indent is still added on top of | ||
| * the resulting `left`). | ||
| */ | ||
| cellMarginsTwips?: { | ||
| top?: number; | ||
| right?: number; | ||
| bottom?: number; | ||
| left?: number; | ||
| }; | ||
| /** Body font applied to every label/value/group run; default inherits Normal. */ | ||
| fontFamily?: string; | ||
| /** Point size for plain-row and group runs; default inherits Normal. */ | ||
| sizePt?: number; | ||
| /** Point size for subrow runs; defaults to `sizePt`. */ | ||
| subrowSizePt?: number; | ||
| /** Text color for plain-row labels/values (six-hex, no '#'); default unset. */ | ||
| textColorHex?: string; | ||
| /** Text color for group-row labels; defaults to `textColorHex`. */ | ||
| groupColorHex?: string; | ||
| /** Text color for subrow labels and values; defaults to mid-gray. */ | ||
| subrowColorHex?: string; | ||
| /** Highlight applied to a value flagged `fillable`; defaults to `yellow`. */ | ||
| fillableHighlight?: HighlightColor; | ||
| /** | ||
| * Extra left indent on subrow label cells, added on top of `cellPaddingTwips` | ||
| * (so the label sits further right than a normal row). Defaults to 240 twips. | ||
| */ | ||
| subrowLabelIndentTwips?: number; | ||
| /** Color (six-hex, no '#') for the table's single-style borders. Default 'auto'. */ | ||
| ruleColorHex?: string; | ||
| /** Weight in eighths of a point for the single-style borders. Default 4 (0.5pt). */ | ||
| ruleSizeEighthPt?: number; | ||
| }; | ||
| /** | ||
| * A fixed-layout two-column label/value table for cover-terms blocks | ||
| * (scenario SDX-GEN-070), with optional house-style grouped/sub rows | ||
| * (SDX-GEN-106) and run styling + fillable placeholders (SDX-GEN-110). | ||
| */ | ||
| export declare function coverTermsTable(options: CoverTermsOptions): TableSpec; | ||
| export type SignatureBlockOptions = { | ||
| parties: Array<{ | ||
| /** Party heading above the signature line, e.g. the company name. */ | ||
| party: string; | ||
| /** Signatory name printed under the line. */ | ||
| name: string; | ||
| title?: string; | ||
| /** Label for the date row; defaults to 'Date:'. */ | ||
| dateLabel?: string; | ||
| /** Override block `fillable` for this party's Print Name (oa-stacked-ruled). Default: `fillable`. */ | ||
| nameFillable?: boolean; | ||
| /** Override block `fillable` for this party's Title (oa-stacked-ruled). Default: `fillable`. */ | ||
| titleFillable?: boolean; | ||
| }>; | ||
| /** Signature-line column width in twips; defaults to 4320 (3"). Single-column only. */ | ||
| lineWidthTwips?: number; | ||
| /** Layout selector. Defaults to 'single-column' (the historical behavior). */ | ||
| layout?: 'single-column' | 'two-column' | 'oa-stacked-ruled'; | ||
| /** Total grid width in twips, split across the two signer columns. Defaults to 9360 (6.5" body). */ | ||
| totalWidthTwips?: number; | ||
| /** Center gutter column width between the two signer cells. Defaults to 360 (0.25"). */ | ||
| gutterTwips?: number; | ||
| /** Color for the muted party header and field captions. Defaults to '595959'. */ | ||
| headerColorHex?: string; | ||
| /** Captions for the four ruled lines. Defaults to ['Signature', 'Print Name', 'Title', 'Date']. */ | ||
| ruledLineLabels?: [string, string, string, string]; | ||
| /** Width of the left label column in twips. Defaults to 1800 (1.25"). */ | ||
| labelColumnTwips?: number; | ||
| /** Minimum signing-row height in twips (room to sign). Defaults to 620. */ | ||
| ruledRowHeightTwips?: number; | ||
| /** Which fields render, in order. Defaults to all four. */ | ||
| fields?: Array<'signature' | 'printName' | 'title' | 'date'>; | ||
| /** Body font for the OA signature header + labels + values. */ | ||
| fontFamily?: string; | ||
| /** Mark pre-filled values (printName/title) as fillable -> highlight + bold. */ | ||
| fillable?: boolean; | ||
| /** Highlight for fillable values; defaults to `yellow`. */ | ||
| fillableHighlight?: HighlightColor; | ||
| /** Bold the centered party header (oa-stacked-ruled). Default false. */ | ||
| headerBold?: boolean; | ||
| /** Party-header point size (oa-stacked-ruled). Default: inherit Normal. */ | ||
| headerSizePt?: number; | ||
| /** Color (six-hex) for the ruled signing line (oa-stacked-ruled). Default 'auto'. */ | ||
| lineColorHex?: string; | ||
| /** Ruled signing-line weight in eighths of a point (oa-stacked-ruled). Default 4. */ | ||
| lineSizeEighthPt?: number; | ||
| }; | ||
| /** | ||
| * Signature blocks rendered as borderless tables whose content cells carry | ||
| * only bottom borders — the signature lines. No VML, no images. | ||
| * | ||
| * - `single-column` (default): the historical stacked block — one table per | ||
| * party, a bottom-bordered line then name/title/date rows (SDX-GEN-071). | ||
| * - `two-column`: a paired signing grid, two signers per row, each a centered | ||
| * muted header over ruled Signature/Print Name/Title/Date lines with captions | ||
| * beneath (SDX-GEN-109). | ||
| * - `oa-stacked-ruled`: per party, a centered muted-caps header over a | ||
| * label-column / ruled-line table with tall signing rows (SDX-GEN-111). | ||
| */ | ||
| export declare function signatureBlock(options: SignatureBlockOptions): BlockSpec[]; | ||
| export {}; | ||
| //# sourceMappingURL=recipes.d.ts.map |
| {"version":3,"file":"recipes.d.ts","sourceRoot":"","sources":["../../src/generation/recipes.ts"],"names":[],"mappings":"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"} |
| /** | ||
| * Legal-document recipes. | ||
| * | ||
| * Pure functions producing spec nodes from options — no own OOXML | ||
| * representation, no compiler hooks. Everything a recipe returns is built | ||
| * from the paragraph/table grammar, so its output is inlineable anywhere a | ||
| * BlockSpec is accepted and serializes through exactly the emitters the | ||
| * rest of the document uses. Signature lines are bottom-bordered cells, not | ||
| * VML shapes: Pages and Google Docs mangle VML, borders survive everywhere. | ||
| */ | ||
| const SINGLE = { style: 'single' }; | ||
| const NONE = { style: 'none' }; | ||
| const DEFAULT_SUBROW_COLOR_HEX = '595959'; | ||
| const DEFAULT_SUBROW_LABEL_INDENT_TWIPS = 240; | ||
| const DEFAULT_FILLABLE_HIGHLIGHT = 'yellow'; | ||
| /** | ||
| * A fixed-layout two-column label/value table for cover-terms blocks | ||
| * (scenario SDX-GEN-070), with optional house-style grouped/sub rows | ||
| * (SDX-GEN-106) and run styling + fillable placeholders (SDX-GEN-110). | ||
| */ | ||
| export function coverTermsTable(options) { | ||
| const [labelWidth, valueWidth] = options.columnWidthsTwips ?? [2880, 6480]; | ||
| // The single-style borders honor an optional house-style color/weight; omitting | ||
| // both yields the bare `{ style: 'single' }` (w:sz="4" w:color="auto") as before. | ||
| const rule = { | ||
| style: 'single', | ||
| ...(options.ruleSizeEighthPt !== undefined ? { sizeEighthPt: options.ruleSizeEighthPt } : {}), | ||
| ...(options.ruleColorHex !== undefined ? { colorHex: options.ruleColorHex } : {}), | ||
| }; | ||
| const borders = options.borderMode === 'horizontal-rules' | ||
| ? { top: rule, bottom: rule, left: NONE, right: NONE, insideH: rule, insideV: NONE } | ||
| : { top: rule, bottom: rule, left: rule, right: rule, insideH: rule, insideV: rule }; | ||
| const rowRhythm = rowRhythmProps(options); | ||
| const font = options.fontFamily; | ||
| const plainSize = options.sizePt; | ||
| const subSize = options.subrowSizePt ?? options.sizePt; | ||
| const fillHighlight = options.fillableHighlight ?? DEFAULT_FILLABLE_HIGHLIGHT; | ||
| const rows = []; | ||
| if (options.title !== undefined) { | ||
| rows.push({ | ||
| header: true, | ||
| cells: [ | ||
| { | ||
| gridSpan: 2, | ||
| shadingHex: 'D9D9D9', | ||
| vAlign: 'center', | ||
| ...cellMarginProps(options), | ||
| blocks: [paragraph(options.title, { bold: true, alignment: 'center', font, sizePt: plainSize })], | ||
| }, | ||
| ], | ||
| }); | ||
| } | ||
| for (const term of options.terms) { | ||
| if ('group' in term) { | ||
| rows.push({ | ||
| ...rowRhythm, | ||
| cells: [ | ||
| { | ||
| gridSpan: 2, | ||
| vAlign: 'center', | ||
| ...cellMarginProps(options), | ||
| blocks: [ | ||
| paragraph(term.group, { | ||
| bold: true, | ||
| font, | ||
| sizePt: plainSize, | ||
| colorHex: options.groupColorHex ?? options.textColorHex, | ||
| }), | ||
| ], | ||
| }, | ||
| ], | ||
| }); | ||
| continue; | ||
| } | ||
| const subrow = 'subrow' in term && term.subrow === true; | ||
| const size = subrow ? subSize : plainSize; | ||
| const labelColor = subrow ? (options.subrowColorHex ?? DEFAULT_SUBROW_COLOR_HEX) : options.textColorHex; | ||
| const valueColor = subrow ? (options.subrowColorHex ?? DEFAULT_SUBROW_COLOR_HEX) : options.textColorHex; | ||
| const subrowIndent = (uniformLeft(options)) + (options.subrowLabelIndentTwips ?? DEFAULT_SUBROW_LABEL_INDENT_TWIPS); | ||
| rows.push({ | ||
| ...rowRhythm, | ||
| cells: [ | ||
| { | ||
| ...cellMarginProps(options, subrow ? { left: subrowIndent } : undefined), | ||
| blocks: [paragraph(term.label, { bold: !subrow, italic: subrow, colorHex: labelColor, font, sizePt: size })], | ||
| }, | ||
| { | ||
| ...cellMarginProps(options), | ||
| blocks: [ | ||
| paragraph(term.value, { | ||
| italic: subrow, | ||
| colorHex: valueColor, | ||
| font, | ||
| sizePt: size, | ||
| ...(term.fillable ? { bold: true, highlight: fillHighlight } : {}), | ||
| }), | ||
| ], | ||
| }, | ||
| ], | ||
| }); | ||
| } | ||
| return { | ||
| kind: 'table', | ||
| layout: 'fixed', | ||
| columnWidthsTwips: [labelWidth, valueWidth], | ||
| borders, | ||
| rows, | ||
| }; | ||
| } | ||
| /** | ||
| * Signature blocks rendered as borderless tables whose content cells carry | ||
| * only bottom borders — the signature lines. No VML, no images. | ||
| * | ||
| * - `single-column` (default): the historical stacked block — one table per | ||
| * party, a bottom-bordered line then name/title/date rows (SDX-GEN-071). | ||
| * - `two-column`: a paired signing grid, two signers per row, each a centered | ||
| * muted header over ruled Signature/Print Name/Title/Date lines with captions | ||
| * beneath (SDX-GEN-109). | ||
| * - `oa-stacked-ruled`: per party, a centered muted-caps header over a | ||
| * label-column / ruled-line table with tall signing rows (SDX-GEN-111). | ||
| */ | ||
| export function signatureBlock(options) { | ||
| const layout = options.layout ?? 'single-column'; | ||
| if (layout === 'two-column') | ||
| return [twoColumnSignatureGrid(options)]; | ||
| if (layout === 'oa-stacked-ruled') | ||
| return oaStackedRuledSignatures(options); | ||
| const width = options.lineWidthTwips ?? 4320; | ||
| const blocks = []; | ||
| options.parties.forEach((party, index) => { | ||
| if (index > 0) | ||
| blocks.push(paragraph('')); | ||
| blocks.push(paragraph(party.party, { bold: true })); | ||
| const rows = [ | ||
| { cells: [{ borders: { bottom: SINGLE }, blocks: [paragraph('')] }] }, | ||
| { cells: [{ blocks: [paragraph(`Name: ${party.name}`)] }] }, | ||
| ]; | ||
| if (party.title !== undefined) { | ||
| rows.push({ cells: [{ blocks: [paragraph(`Title: ${party.title}`)] }] }); | ||
| } | ||
| rows.push({ cells: [{ blocks: [paragraph(party.dateLabel ?? 'Date:')] }] }); | ||
| blocks.push({ | ||
| kind: 'table', | ||
| layout: 'fixed', | ||
| columnWidthsTwips: [width], | ||
| rows, | ||
| }); | ||
| }); | ||
| return blocks; | ||
| } | ||
| function paragraph(text, opts) { | ||
| return { | ||
| kind: 'paragraph', | ||
| ...(opts?.alignment !== undefined ? { alignment: opts.alignment } : {}), | ||
| runs: [ | ||
| { | ||
| kind: 'text', | ||
| text, | ||
| ...(opts?.bold ? { bold: true } : {}), | ||
| ...(opts?.italic ? { italic: true } : {}), | ||
| ...(opts?.caps ? { caps: true } : {}), | ||
| ...(opts?.colorHex !== undefined ? { colorHex: opts.colorHex } : {}), | ||
| ...(opts?.font !== undefined ? { font: opts.font } : {}), | ||
| ...(opts?.sizePt !== undefined ? { sizePt: opts.sizePt } : {}), | ||
| ...(opts?.highlight !== undefined ? { highlight: opts.highlight } : {}), | ||
| }, | ||
| ], | ||
| }; | ||
| } | ||
| /** | ||
| * OA stacked-ruled signatures: per party a centered uppercase muted header over | ||
| * a borderless `[label | ruled line]` two-column table with tall signing rows. | ||
| * Print Name / Title are pre-filled from the party data and optionally rendered | ||
| * as fillable (highlight + bold) placeholders. | ||
| */ | ||
| function oaStackedRuledSignatures(options) { | ||
| const total = options.totalWidthTwips ?? 9360; | ||
| const labelWidth = options.labelColumnTwips ?? 1800; | ||
| const lineWidth = Math.max(1, total - labelWidth); | ||
| const rowHeight = options.ruledRowHeightTwips ?? 620; | ||
| const muted = options.headerColorHex ?? DEFAULT_SUBROW_COLOR_HEX; | ||
| const font = options.fontFamily; | ||
| const fields = options.fields ?? ['signature', 'printName', 'title', 'date']; | ||
| // Caption overrides honor the same `ruledLineLabels` tuple as the two-column | ||
| // path ([Signature, Print Name, Title, Date]); the Date caption additionally | ||
| // honors a per-party `dateLabel`, matching single-column / two-column behavior. | ||
| const labels = options.ruledLineLabels ?? ['Signature', 'Print Name', 'Title', 'Date']; | ||
| const captionFor = (field, party) => { | ||
| switch (field) { | ||
| case 'signature': | ||
| return labels[0]; | ||
| case 'printName': | ||
| return labels[1]; | ||
| case 'title': | ||
| return labels[2]; | ||
| case 'date': | ||
| return party.dateLabel ?? labels[3]; | ||
| } | ||
| }; | ||
| const fillHighlight = options.fillableHighlight ?? DEFAULT_FILLABLE_HIGHLIGHT; | ||
| const noBorders = { top: NONE, bottom: NONE, left: NONE, right: NONE, insideH: NONE, insideV: NONE }; | ||
| // The ruled signing line honors an optional house-style color/weight; omitting | ||
| // both yields the bare `{ style: 'single' }` bottom border as before. | ||
| const lineBorder = { | ||
| style: 'single', | ||
| ...(options.lineSizeEighthPt !== undefined ? { sizeEighthPt: options.lineSizeEighthPt } : {}), | ||
| ...(options.lineColorHex !== undefined ? { colorHex: options.lineColorHex } : {}), | ||
| }; | ||
| const blocks = []; | ||
| for (const party of options.parties) { | ||
| blocks.push(paragraph(party.party, { | ||
| alignment: 'center', | ||
| caps: true, | ||
| colorHex: muted, | ||
| font, | ||
| ...(options.headerBold ? { bold: true } : {}), | ||
| ...(options.headerSizePt !== undefined ? { sizePt: options.headerSizePt } : {}), | ||
| })); | ||
| const rows = fields.map((field) => { | ||
| const value = field === 'printName' ? party.name : field === 'title' ? (party.title ?? '') : ''; | ||
| // Print Name / Title resolve their fillable flag per party, falling back to | ||
| // the block-level `fillable`; Signature / Date are never fillable. This lets | ||
| // a filled assignment stay un-highlighted while an unfilled placeholder is. | ||
| const fieldFillable = field === 'printName' | ||
| ? (party.nameFillable ?? options.fillable) | ||
| : field === 'title' | ||
| ? (party.titleFillable ?? options.fillable) | ||
| : false; | ||
| const fillableValue = fieldFillable === true && value !== ''; | ||
| return { | ||
| heightTwips: rowHeight, | ||
| heightRule: 'atLeast', | ||
| cells: [ | ||
| { | ||
| vAlign: 'bottom', | ||
| borders: noBorders, | ||
| blocks: [paragraph(captionFor(field, party), { bold: true, font })], | ||
| }, | ||
| { | ||
| vAlign: 'bottom', | ||
| borders: { bottom: lineBorder }, | ||
| blocks: [ | ||
| paragraph(value, { | ||
| font, | ||
| ...(fillableValue ? { bold: true, highlight: fillHighlight } : {}), | ||
| }), | ||
| ], | ||
| }, | ||
| ], | ||
| }; | ||
| }); | ||
| blocks.push({ | ||
| kind: 'table', | ||
| layout: 'fixed', | ||
| columnWidthsTwips: [labelWidth, lineWidth], | ||
| borders: noBorders, | ||
| rows, | ||
| }); | ||
| } | ||
| return blocks; | ||
| } | ||
| /** | ||
| * Two-column signing grid: parties chunked into pairs across a 3-column table | ||
| * `[signer, gutter, signer]`, with an empty padding cell for an odd final | ||
| * signer. Each signer cell stacks a centered uppercase muted header over a | ||
| * nested one-column table of four ruled fields (Signature / Print Name / Title | ||
| * / Date), reusing the bottom-bordered-cell rule from the single-column path. | ||
| */ | ||
| function twoColumnSignatureGrid(options) { | ||
| const total = options.totalWidthTwips ?? 9360; | ||
| const gutter = options.gutterTwips ?? 360; | ||
| const signer = Math.max(1, Math.floor((total - gutter) / 2)); | ||
| const mutedColor = options.headerColorHex ?? DEFAULT_SUBROW_COLOR_HEX; | ||
| const labels = options.ruledLineLabels ?? ['Signature', 'Print Name', 'Title', 'Date']; | ||
| const gutterCell = { | ||
| borders: { top: NONE, bottom: NONE, left: NONE, right: NONE }, | ||
| blocks: [paragraph('')], | ||
| }; | ||
| const paddingCell = { | ||
| borders: { top: NONE, bottom: NONE, left: NONE, right: NONE }, | ||
| blocks: [paragraph('')], | ||
| }; | ||
| const rows = []; | ||
| for (let i = 0; i < options.parties.length; i += 2) { | ||
| const left = options.parties[i]; | ||
| if (left === undefined) | ||
| continue; | ||
| const right = options.parties[i + 1]; | ||
| rows.push({ | ||
| cells: [ | ||
| signerCell(left, labels, mutedColor), | ||
| gutterCell, | ||
| right === undefined ? paddingCell : signerCell(right, labels, mutedColor), | ||
| ], | ||
| }); | ||
| } | ||
| return { | ||
| kind: 'table', | ||
| layout: 'fixed', | ||
| columnWidthsTwips: [signer, gutter, signer], | ||
| borders: { top: NONE, bottom: NONE, left: NONE, right: NONE, insideH: NONE, insideV: NONE }, | ||
| rows, | ||
| }; | ||
| } | ||
| function signerCell(party, labels, mutedColor) { | ||
| // Pre-fill Print Name / Title from the party data; Signature / Date stay blank. | ||
| const fields = [ | ||
| ['', labels[0]], | ||
| [party.name, labels[1]], | ||
| [party.title ?? '', labels[2]], | ||
| ['', party.dateLabel ?? labels[3]], | ||
| ]; | ||
| return { | ||
| vAlign: 'top', | ||
| blocks: [ | ||
| paragraph(party.party, { alignment: 'center', caps: true, colorHex: mutedColor }), | ||
| { | ||
| kind: 'table', | ||
| layout: 'fixed', | ||
| columnWidthsTwips: [4320], | ||
| borders: { top: NONE, bottom: NONE, left: NONE, right: NONE, insideH: NONE, insideV: NONE }, | ||
| rows: fields.flatMap(([value, caption]) => ruledFieldRows(value, caption, mutedColor)), | ||
| }, | ||
| ], | ||
| }; | ||
| } | ||
| /** A ruled field = the bottom-bordered value line, then its muted caption beneath. */ | ||
| function ruledFieldRows(value, caption, mutedColor) { | ||
| return [ | ||
| { cells: [{ borders: { bottom: SINGLE }, blocks: [paragraph(value)] }] }, | ||
| { cells: [{ blocks: [paragraph(caption, { colorHex: mutedColor })] }] }, | ||
| ]; | ||
| } | ||
| function rowRhythmProps(options) { | ||
| return options.rowHeightTwips === undefined ? {} : { heightTwips: options.rowHeightTwips, heightRule: 'atLeast' }; | ||
| } | ||
| /** The effective uniform left margin (non-uniform margins win over uniform padding). */ | ||
| function uniformLeft(options) { | ||
| if (options.cellMarginsTwips !== undefined) | ||
| return options.cellMarginsTwips.left ?? 0; | ||
| return options.cellPaddingTwips ?? 0; | ||
| } | ||
| function cellMarginProps(options, overrides) { | ||
| const base = options.cellMarginsTwips | ||
| ? { ...options.cellMarginsTwips } | ||
| : options.cellPaddingTwips !== undefined | ||
| ? { | ||
| top: options.cellPaddingTwips, | ||
| right: options.cellPaddingTwips, | ||
| bottom: options.cellPaddingTwips, | ||
| left: options.cellPaddingTwips, | ||
| } | ||
| : undefined; | ||
| if (base === undefined && overrides === undefined) | ||
| return {}; | ||
| return { marginsTwips: { ...(base ?? {}), ...(overrides ?? {}) } }; | ||
| } | ||
| //# sourceMappingURL=recipes.js.map |
| {"version":3,"file":"recipes.js","sourceRoot":"","sources":["../../src/generation/recipes.ts"],"names":[],"mappings":"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"} |
Sorry, the diff of this file is not supported yet
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
2476970
-1.52%465
-0.85%33782
-1.47%