@json-to-office/core-docx 0.8.0 → 0.12.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.
@@ -1 +1 @@
1
- {"version":3,"file":"heading.d.ts","sourceRoot":"","sources":["../../src/components/heading.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAsB,MAAM,UAAU,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAIxC;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,mBAAmB,EAC9B,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,MAAM,GAChB,SAAS,EAAE,CAuCb"}
1
+ {"version":3,"file":"heading.d.ts","sourceRoot":"","sources":["../../src/components/heading.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAsB,MAAM,UAAU,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAIxC;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,mBAAmB,EAC9B,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,MAAM,GAChB,SAAS,EAAE,CAyCb"}
@@ -1 +1 @@
1
- {"version":3,"file":"highcharts.d.ts","sourceRoot":"","sources":["../../src/components/highcharts.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EACL,mBAAmB,EACnB,aAAa,EAEd,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AASxC,YAAY,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAuED;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,SAAS,EAAE,mBAAmB,EAC9B,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC,EAAE,CAAC,CA+BhC"}
1
+ {"version":3,"file":"highcharts.d.ts","sourceRoot":"","sources":["../../src/components/highcharts.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EACL,mBAAmB,EACnB,aAAa,EAEd,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AASxC,YAAY,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AA4ED;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,SAAS,EAAE,mBAAmB,EAC9B,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC,EAAE,CAAC,CA+BhC"}
@@ -1 +1 @@
1
- {"version":3,"file":"paragraph.d.ts","sourceRoot":"","sources":["../../src/components/paragraph.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAwB,MAAM,UAAU,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AA6DxC;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,mBAAmB,EAC9B,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,MAAM,GAChB,SAAS,EAAE,CAiIb"}
1
+ {"version":3,"file":"paragraph.d.ts","sourceRoot":"","sources":["../../src/components/paragraph.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAwB,MAAM,UAAU,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AA6DxC;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,mBAAmB,EAC9B,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,MAAM,GAChB,SAAS,EAAE,CAmIb"}
@@ -22,6 +22,12 @@ export interface TextOptions {
22
22
  fontSize?: number;
23
23
  fontColor?: string;
24
24
  bold?: boolean;
25
+ /**
26
+ * Per-run weight (100–900). Renderer picks the closest embedded variant
27
+ * via the font-alias registry and emits the run under a synthetic family
28
+ * (e.g. "Inter Light" for 300). Overrides `bold` when set.
29
+ */
30
+ fontWeight?: number;
25
31
  italic?: boolean;
26
32
  underline?: boolean;
27
33
  prependChildren?: any[];
@@ -148,6 +154,7 @@ type TableFontConfig = {
148
154
  family?: string;
149
155
  size?: number;
150
156
  bold?: boolean;
157
+ fontWeight?: number;
151
158
  italic?: boolean;
152
159
  underline?: boolean;
153
160
  };
@@ -1 +1 @@
1
- {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../src/core/content.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../src/core/content.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Shared font-resolution helper used by BOTH entry paths into renderDocument:
3
+ *
4
+ * - generator.ts → generateDocumentWithCustomThemes (non-plugin)
5
+ * - plugin/createDocumentGenerator.ts → generate (plugin-aware)
6
+ *
7
+ * Keeping it in one place ensures the two paths behave identically around
8
+ * validation, SAFE_FONTS awareness, Google Fonts materialization, and the
9
+ * `onResolved` side-channel consumed by the LibreOffice preview font stager.
10
+ */
11
+ import type { FontRuntimeOpts, ResolvedFont, GenerationWarning } from '@json-to-office/shared';
12
+ import type { ThemeConfig } from '../styles';
13
+ import type { ReportComponentDefinition } from '../types';
14
+ export declare function resolveDocumentFonts(document: ReportComponentDefinition, theme: ThemeConfig, fonts?: FontRuntimeOpts, warnings?: GenerationWarning[]): Promise<ResolvedFont[]>;
15
+ //# sourceMappingURL=fontResolution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fontResolution.d.ts","sourceRoot":"","sources":["../../src/core/fontResolution.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAWhC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAE1D,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,yBAAyB,EACnC,KAAK,EAAE,WAAW,EAClB,KAAK,CAAC,EAAE,eAAe,EACvB,QAAQ,CAAC,EAAE,iBAAiB,EAAE,GAC7B,OAAO,CAAC,YAAY,EAAE,CAAC,CAmEzB"}
@@ -6,8 +6,9 @@
6
6
  import { Document } from 'docx';
7
7
  import { ComponentDefinition, ReportProps, ReportComponentDefinition } from '../types';
8
8
  import { ThemeConfig } from '../styles';
9
- import type { ServicesConfig } from '@json-to-office/shared';
9
+ import type { ServicesConfig, FontRuntimeOpts } from '@json-to-office/shared';
10
10
  import { DocumentValidationResult } from '@json-to-office/shared-docx';
11
+ import type { GenerationWarning } from '@json-to-office/shared';
11
12
  export interface JsonGenerationOptions {
12
13
  outputPath?: string;
13
14
  validation?: {
@@ -18,6 +19,13 @@ export interface JsonGenerationOptions {
18
19
  [key: string]: ThemeConfig;
19
20
  };
20
21
  services?: ServicesConfig;
22
+ fonts?: FontRuntimeOpts;
23
+ /**
24
+ * Optional collector for structured warnings (font resolution, etc.).
25
+ * When provided, mirrors the plugin path's warning semantics; when absent,
26
+ * warnings fall back to `console.warn` as before.
27
+ */
28
+ warnings?: GenerationWarning[];
21
29
  }
22
30
  /**
23
31
  * Type guard to check if input is a report component definition
@@ -27,12 +35,12 @@ export declare function isReportComponentDefinition(definition: unknown): defini
27
35
  * Generate a Word document from a report component definition
28
36
  * This is the main entry point for document generation
29
37
  */
30
- export declare function generateDocument(document: ReportComponentDefinition): Promise<Document>;
38
+ export declare function generateDocument(document: ReportComponentDefinition, options?: JsonGenerationOptions): Promise<Document>;
31
39
  /**
32
40
  * Generate document from report props and components
33
41
  * Convenience function that constructs the report component
34
42
  */
35
- export declare function generateFromConfig(props: ReportProps, components: ComponentDefinition[]): Promise<Document>;
43
+ export declare function generateFromConfig(props: ReportProps, components: ComponentDefinition[], options?: JsonGenerationOptions): Promise<Document>;
36
44
  /**
37
45
  * Generate a Word document from JSON report definition
38
46
  * Handles parsing, validation, and conversion to internal components
@@ -1 +1 @@
1
- {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/core/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/core/generator.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -4107,9 +4107,22 @@ var globalBookmarkRegistry = new BookmarkRegistry();
4107
4107
 
4108
4108
  // src/core/content.ts
4109
4109
  init_styleHelpers();
4110
+ import { synthesizeFamilyName } from "@json-to-office/shared";
4110
4111
  init_colorUtils();
4111
4112
  init_styleHelpers();
4112
4113
  init_widthUtils();
4114
+ function applyFontWeightAlias(opts) {
4115
+ if (!opts.fontFamily) {
4116
+ return { font: void 0, bold: opts.bold, italics: opts.italic };
4117
+ }
4118
+ const weight = opts.fontWeight ?? (opts.bold === true ? 700 : void 0);
4119
+ const synth = synthesizeFamilyName(
4120
+ opts.fontFamily,
4121
+ weight,
4122
+ opts.italic === true
4123
+ );
4124
+ return { font: synth.family, bold: synth.bold, italics: synth.italic };
4125
+ }
4113
4126
  function createText(content, theme, themeName, options = {}) {
4114
4127
  const normalizedContent = normalizeUnicodeText(content);
4115
4128
  const style = options.style || "Normal";
@@ -4129,15 +4142,27 @@ function createText(content, theme, themeName, options = {}) {
4129
4142
  if (options.columnBreak) {
4130
4143
  children.push(new ColumnBreak());
4131
4144
  }
4145
+ const hasWeightRequest = options.fontWeight != null || options.bold === true;
4146
+ const effectiveFamily = options.fontFamily ?? (hasWeightRequest ? resolveFontFamily(theme, "body") : void 0);
4147
+ const weighted = applyFontWeightAlias({
4148
+ fontFamily: effectiveFamily,
4149
+ bold: options.bold,
4150
+ italic: options.italic,
4151
+ fontWeight: options.fontWeight
4152
+ });
4132
4153
  const baseTextStyle = {
4133
- ...options.fontFamily && { font: options.fontFamily },
4154
+ // Only emit `font` when it came from the caller or from an alias —
4155
+ // emitting the theme body family on every run would be a behavior change.
4156
+ ...(options.fontFamily || weighted.font && weighted.font !== effectiveFamily) && {
4157
+ font: weighted.font
4158
+ },
4134
4159
  ...options.fontSize && { size: options.fontSize * 2 },
4135
4160
  // Convert points to half-points
4136
4161
  ...options.fontColor && {
4137
4162
  color: resolveColor(options.fontColor, theme)
4138
4163
  },
4139
- ...options.bold !== void 0 && { bold: options.bold },
4140
- ...options.italic !== void 0 && { italics: options.italic },
4164
+ ...weighted.bold !== void 0 && { bold: weighted.bold },
4165
+ ...weighted.italics !== void 0 && { italics: weighted.italics },
4141
4166
  ...options.underline !== void 0 && {
4142
4167
  underline: options.underline ? { type: "single" } : void 0
4143
4168
  }
@@ -4257,13 +4282,25 @@ function createHeading(text, level, theme, _themeName, options = {}) {
4257
4282
  children.push(new ColumnBreak());
4258
4283
  }
4259
4284
  const hasDecorators = /(\*\*\*|___|(\*\*|__)|(\*|_))/.test(normalizedText);
4285
+ const headingHasWeightRequest = options.fontWeight != null || options.bold === true;
4286
+ const headingEffectiveFamily = options.fontFamily ?? (headingHasWeightRequest ? resolveFontFamily(theme, "heading") : void 0);
4287
+ const headingWeighted = applyFontWeightAlias({
4288
+ fontFamily: headingEffectiveFamily,
4289
+ bold: options.bold,
4290
+ italic: options.italic,
4291
+ fontWeight: options.fontWeight
4292
+ });
4260
4293
  const baseTextStyle = {
4261
- ...options.fontFamily && { font: options.fontFamily },
4294
+ ...(options.fontFamily || headingWeighted.font && headingWeighted.font !== headingEffectiveFamily) && {
4295
+ font: headingWeighted.font
4296
+ },
4262
4297
  ...options.fontSize && { size: options.fontSize * 2 },
4263
4298
  // points to half-points
4264
4299
  ...options.fontColor && { color: resolveColor(options.fontColor, theme) },
4265
- ...options.bold !== void 0 && { bold: options.bold },
4266
- ...options.italic !== void 0 && { italics: options.italic },
4300
+ ...headingWeighted.bold !== void 0 && { bold: headingWeighted.bold },
4301
+ ...headingWeighted.italics !== void 0 && {
4302
+ italics: headingWeighted.italics
4303
+ },
4267
4304
  ...options.underline !== void 0 && {
4268
4305
  underline: options.underline ? { type: "single" } : void 0
4269
4306
  }
@@ -4775,12 +4812,18 @@ async function createTable(columns, tableConfig, theme, themeName, _options = {}
4775
4812
  if (!cell) {
4776
4813
  return cellChildren;
4777
4814
  }
4815
+ const cellWeighted = applyFontWeightAlias({
4816
+ fontFamily: cellDefaults.font?.family || baseCellStyle.font,
4817
+ bold: cellDefaults.font?.bold ?? false,
4818
+ italic: cellDefaults.font?.italic ?? false,
4819
+ fontWeight: cellDefaults.font?.fontWeight
4820
+ });
4778
4821
  const mergedStyle = {
4779
- font: cellDefaults.font?.family || baseCellStyle.font,
4822
+ font: cellWeighted.font,
4780
4823
  size: cellDefaults.font?.size ? cellDefaults.font.size * 2 : baseCellStyle.size,
4781
4824
  // Convert to half-points
4782
- bold: cellDefaults.font?.bold ?? false,
4783
- italics: cellDefaults.font?.italic ?? false,
4825
+ bold: cellWeighted.bold ?? false,
4826
+ italics: cellWeighted.italics ?? false,
4784
4827
  underline: cellDefaults.font?.underline ? { type: "single" } : void 0,
4785
4828
  color: cellDefaults.color || baseCellStyle.color
4786
4829
  };
@@ -4788,15 +4831,21 @@ async function createTable(columns, tableConfig, theme, themeName, _options = {}
4788
4831
  if (isParagraphComponent(cell)) {
4789
4832
  const textComp = cell;
4790
4833
  const paragraphFont = textComp.props.font;
4834
+ const paraWeighted = applyFontWeightAlias({
4835
+ fontFamily: paragraphFont?.family ?? mergedStyle.font,
4836
+ bold: paragraphFont?.bold,
4837
+ italic: paragraphFont?.italic,
4838
+ fontWeight: paragraphFont?.fontWeight
4839
+ });
4791
4840
  const paragraphStyle = {
4792
4841
  ...mergedStyle,
4793
- ...paragraphFont?.family && { font: paragraphFont.family },
4842
+ ...paraWeighted.font && { font: paraWeighted.font },
4794
4843
  ...paragraphFont?.size && { size: paragraphFont.size * 2 },
4795
- ...paragraphFont?.bold !== void 0 && {
4796
- bold: paragraphFont.bold
4844
+ ...paraWeighted.bold !== void 0 && {
4845
+ bold: paraWeighted.bold
4797
4846
  },
4798
- ...paragraphFont?.italic !== void 0 && {
4799
- italics: paragraphFont.italic
4847
+ ...paraWeighted.italics !== void 0 && {
4848
+ italics: paraWeighted.italics
4800
4849
  },
4801
4850
  ...paragraphFont?.underline !== void 0 && {
4802
4851
  underline: paragraphFont.underline ? { type: "single" } : void 0
@@ -5244,6 +5293,7 @@ function renderHeadingComponent(component, theme, themeName) {
5244
5293
  fontSize: config.font?.size,
5245
5294
  fontColor: config.font?.color,
5246
5295
  bold: config.font?.bold,
5296
+ fontWeight: config.font?.fontWeight,
5247
5297
  italic: config.font?.italic,
5248
5298
  underline: config.font?.underline,
5249
5299
  // Pagination control
@@ -5359,6 +5409,7 @@ function renderParagraphComponent(component, theme, themeName) {
5359
5409
  fontSize: resolvedConfig.font?.size,
5360
5410
  fontColor: resolvedConfig.font?.color,
5361
5411
  bold: resolvedConfig.font?.bold,
5412
+ fontWeight: resolvedConfig.font?.fontWeight,
5362
5413
  italic: resolvedConfig.font?.italic,
5363
5414
  underline: resolvedConfig.font?.underline,
5364
5415
  // Pass outline level for TOC support
@@ -6164,9 +6215,10 @@ async function generateChart(config, servicesConfig) {
6164
6215
  b64: true,
6165
6216
  scale: config.scale
6166
6217
  };
6218
+ const resolvedHeaders = typeof servicesConfig?.headers === "function" ? await servicesConfig.headers(requestBody) : servicesConfig?.headers;
6167
6219
  const headers = {
6168
6220
  "Content-Type": "application/json",
6169
- ...servicesConfig?.headers
6221
+ ...resolvedHeaders
6170
6222
  };
6171
6223
  const response = await fetch(`${serverUrl}/export`, {
6172
6224
  method: "POST",
@@ -6630,6 +6682,69 @@ async function renderComponent(component, theme, themeName, context) {
6630
6682
  );
6631
6683
  }
6632
6684
 
6685
+ // src/core/fontResolution.ts
6686
+ import {
6687
+ collectFontNamesFromDocx,
6688
+ validateFontReferences,
6689
+ FontRegistry
6690
+ } from "@json-to-office/shared";
6691
+ import {
6692
+ loadFileFontSource,
6693
+ FontDiskCache,
6694
+ fetchVariableFontSource
6695
+ } from "@json-to-office/shared/fonts/node";
6696
+ async function resolveDocumentFonts(document, theme, fonts, warnings) {
6697
+ const emit = (code, message) => {
6698
+ if (warnings) {
6699
+ warnings.push({
6700
+ component: "fontRegistry",
6701
+ message,
6702
+ severity: "warning",
6703
+ context: { code }
6704
+ });
6705
+ } else {
6706
+ console.warn(`[json-to-docx] ${code}: ${message}`);
6707
+ }
6708
+ };
6709
+ const names = /* @__PURE__ */ new Set();
6710
+ for (const n of collectFontNamesFromDocx(document)) names.add(n);
6711
+ for (const n of collectFontNamesFromDocx(theme)) names.add(n);
6712
+ if (names.size === 0) return [];
6713
+ const validation = validateFontReferences({
6714
+ referencedNames: names,
6715
+ registeredEntries: fonts?.extraEntries
6716
+ });
6717
+ if (validation.warnings.length > 0) {
6718
+ if (fonts?.strict) {
6719
+ throw new Error(
6720
+ `Unresolved font references (strict mode):
6721
+ ` + validation.warnings.map((w) => ` - ${w.message}`).join("\n")
6722
+ );
6723
+ }
6724
+ for (const w of validation.warnings) {
6725
+ emit(w.code, w.message);
6726
+ }
6727
+ }
6728
+ if (!fonts?.onResolved) return [];
6729
+ const registry = new FontRegistry({
6730
+ opts: fonts,
6731
+ fileLoader: loadFileFontSource,
6732
+ variableLoader: fetchVariableFontSource,
6733
+ diskCache: fonts?.googleFonts?.cacheDir ? new FontDiskCache(fonts.googleFonts.cacheDir) : void 0
6734
+ });
6735
+ const resolved = await registry.resolveMany(names);
6736
+ for (const r of resolved) {
6737
+ for (const msg of r.warnings) {
6738
+ emit("FONT_UNRESOLVED", msg);
6739
+ }
6740
+ }
6741
+ fonts.onResolved(resolved);
6742
+ return resolved;
6743
+ }
6744
+
6745
+ // src/core/generator.ts
6746
+ import { applyExportMode, scopedThemeName } from "@json-to-office/shared";
6747
+
6633
6748
  // src/json/parser.ts
6634
6749
  import {
6635
6750
  JsonDocumentParser,
@@ -6789,33 +6904,32 @@ function isReportComponentDefinition(definition) {
6789
6904
  const def = definition;
6790
6905
  return def.name === "docx" && "props" in def;
6791
6906
  }
6792
- async function generateDocument(document) {
6907
+ async function generateDocument(document, options) {
6793
6908
  if (!document || document.name !== "docx") {
6794
6909
  throw new Error("Top-level component must be a docx component");
6795
6910
  }
6796
6911
  if ("$schema" in document) {
6797
- return await generateDocumentFromJson(document);
6912
+ return await generateDocumentFromJson(document, options);
6798
6913
  }
6799
- const themeName = document.props.theme || "minimal";
6800
- const theme = getThemeWithFallback(themeName);
6801
- const structure = await processDocument(document, theme, themeName);
6802
- const layout = applyLayout(structure.sections, theme, themeName);
6803
- const renderedDocument = await renderDocument(structure, layout, {
6804
- bypassCache: false
6805
- // Enable component caching
6806
- });
6807
- return renderedDocument;
6914
+ return await generateDocumentWithCustomThemes(
6915
+ document,
6916
+ options?.customThemes,
6917
+ options?.services,
6918
+ options?.fonts,
6919
+ options?.warnings
6920
+ );
6808
6921
  }
6809
- async function generateFromConfig(props, components) {
6922
+ async function generateFromConfig(props, components, options) {
6810
6923
  const reportComponent = {
6811
6924
  name: "docx",
6812
6925
  props,
6813
6926
  children: components
6814
6927
  };
6815
- return await generateDocument(reportComponent);
6928
+ return await generateDocument(reportComponent, options);
6816
6929
  }
6817
- async function generateDocumentWithCustomThemes(document, customThemes, services) {
6818
- const themeName = document.props.theme || "minimal";
6930
+ async function generateDocumentWithCustomThemes(documentIn, customThemes, services, fonts, warnings) {
6931
+ let document = documentIn;
6932
+ let themeName = document.props.theme || "minimal";
6819
6933
  let theme;
6820
6934
  if (customThemes) {
6821
6935
  if (customThemes[themeName]) {
@@ -6834,6 +6948,23 @@ async function generateDocumentWithCustomThemes(document, customThemes, services
6834
6948
  } else {
6835
6949
  theme = getThemeWithFallback(themeName);
6836
6950
  }
6951
+ const mode = applyExportMode({ doc: document, theme, fonts });
6952
+ document = mode.doc;
6953
+ theme = mode.theme;
6954
+ themeName = scopedThemeName(themeName, fonts?.mode);
6955
+ for (const w of mode.warnings) {
6956
+ if (warnings) {
6957
+ warnings.push({
6958
+ component: "fontRegistry",
6959
+ message: w.message,
6960
+ severity: "warning",
6961
+ context: { code: w.code }
6962
+ });
6963
+ } else {
6964
+ console.warn(`[json-to-docx] [${w.code}] ${w.message}`);
6965
+ }
6966
+ }
6967
+ await resolveDocumentFonts(document, theme, fonts, warnings);
6837
6968
  const structure = await processDocument(document, theme, themeName);
6838
6969
  const layout = applyLayout(structure.sections, theme, themeName);
6839
6970
  const renderedDocument = await renderDocument(structure, layout, {
@@ -6857,7 +6988,9 @@ async function generateDocumentFromJson(jsonConfig, options) {
6857
6988
  return await generateDocumentWithCustomThemes(
6858
6989
  reportComponent,
6859
6990
  options?.customThemes,
6860
- options?.services
6991
+ options?.services,
6992
+ options?.fonts,
6993
+ options?.warnings
6861
6994
  );
6862
6995
  }
6863
6996
  function validateJsonSchema(jsonConfig) {
@@ -7120,6 +7253,7 @@ async function runExample(example, options = {}) {
7120
7253
  // src/plugin/createDocumentGenerator.ts
7121
7254
  init_styles();
7122
7255
  import { Packer as Packer2 } from "docx";
7256
+ import { applyExportMode as applyExportMode2, scopedThemeName as scopedThemeName2 } from "@json-to-office/shared";
7123
7257
 
7124
7258
  // src/plugin/version-resolver.ts
7125
7259
  import { resolveComponentVersion } from "@json-to-office/shared/plugin";
@@ -7488,7 +7622,8 @@ function createBuilderImpl(state) {
7488
7622
  customThemes: state.customThemes,
7489
7623
  debug: state.debug,
7490
7624
  enableCache: state.enableCache,
7491
- services: state.services
7625
+ services: state.services,
7626
+ fonts: state.fonts
7492
7627
  };
7493
7628
  return createBuilderImpl(
7494
7629
  newState
@@ -7501,25 +7636,37 @@ function createBuilderImpl(state) {
7501
7636
  internalDocument,
7502
7637
  state.components
7503
7638
  );
7504
- const themeName = internalDocument.props.theme || "minimal";
7505
- const docTheme = resolveDocumentTheme(themeName);
7639
+ const baseThemeName = internalDocument.props.theme || "minimal";
7640
+ const docTheme = resolveDocumentTheme(baseThemeName);
7506
7641
  const warnings = [];
7642
+ const mode = applyExportMode2({
7643
+ doc: internalDocument,
7644
+ theme: docTheme,
7645
+ fonts: state.fonts
7646
+ });
7647
+ const modedTheme = mode.theme;
7648
+ const themeName = scopedThemeName2(baseThemeName, state.fonts?.mode);
7649
+ for (const w of mode.warnings) {
7650
+ warnings.push({
7651
+ component: "fontRegistry",
7652
+ message: w.message,
7653
+ severity: "warning",
7654
+ context: { code: w.code }
7655
+ });
7656
+ }
7507
7657
  const processedComponents = await processDocumentComponents(
7508
- internalDocument.children || [],
7658
+ mode.doc.children || [],
7509
7659
  warnings,
7510
- docTheme
7660
+ modedTheme
7511
7661
  );
7512
7662
  const processedDocument = {
7513
- ...internalDocument,
7663
+ ...mode.doc,
7514
7664
  children: processedComponents
7515
7665
  };
7516
- const [finalReportComponent] = normalizeDocument(processedDocument);
7517
- const structure = await processDocument(
7518
- finalReportComponent,
7519
- docTheme,
7520
- themeName
7521
- );
7522
- const layout = applyLayout(structure.sections, docTheme, themeName);
7666
+ const [modedDoc] = normalizeDocument(processedDocument);
7667
+ await resolveDocumentFonts(modedDoc, modedTheme, state.fonts, warnings);
7668
+ const structure = await processDocument(modedDoc, modedTheme, themeName);
7669
+ const layout = applyLayout(structure.sections, modedTheme, themeName);
7523
7670
  const generatedDocument = await renderDocument(structure, layout, {
7524
7671
  services: state.services
7525
7672
  });
@@ -7600,13 +7747,19 @@ function createBuilderImpl(state) {
7600
7747
  const themeName = internalDocument.props.theme || "minimal";
7601
7748
  const docTheme = resolveDocumentTheme(themeName);
7602
7749
  const warnings = [];
7750
+ const mode = applyExportMode2({
7751
+ doc: internalDocument,
7752
+ theme: docTheme,
7753
+ fonts: state.fonts
7754
+ });
7755
+ const modedTheme = mode.theme;
7603
7756
  const processedComponents = await processDocumentComponents(
7604
- internalDocument.children || [],
7757
+ mode.doc.children || [],
7605
7758
  warnings,
7606
- docTheme
7759
+ modedTheme
7607
7760
  );
7608
7761
  const processedDocument = {
7609
- ...internalDocument,
7762
+ ...mode.doc,
7610
7763
  children: processedComponents
7611
7764
  };
7612
7765
  const [finalReportComponent] = normalizeDocument(processedDocument);
@@ -7638,7 +7791,8 @@ function createDocumentGenerator(options) {
7638
7791
  customThemes: options.customThemes,
7639
7792
  debug: options.debug ?? false,
7640
7793
  enableCache: options.enableCache ?? false,
7641
- services: options.services
7794
+ services: options.services,
7795
+ fonts: options.fonts
7642
7796
  };
7643
7797
  return createBuilderImpl(initialState);
7644
7798
  }