@nowline/export 0.0.0-dev.20260603150914.g70caedb → 0.0.0-dev.20260605224805.g7df792d

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.
package/dist/index.d.ts CHANGED
@@ -2,6 +2,7 @@ import type { ResolvedFontPair } from '@nowline/export-core';
2
2
  import { type ThemeName } from '@nowline/layout';
3
3
  export type { PdfOrientation, ResolvedFontPair } from '@nowline/export-core';
4
4
  export type { ThemeName } from '@nowline/layout';
5
+ export { civilDateInZone, type NormalizedZone, normalizeZone, type ResolveTodayOptions, resolveToday, TimezoneError, } from '@nowline/layout';
5
6
  /** The eight canonical export formats. Every surface produces exactly these. */
6
7
  export type ExportFormat = 'svg' | 'png' | 'pdf' | 'html' | 'mermaid' | 'xlsx' | 'msproj' | 'json';
7
8
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAgB,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAKhE,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7E,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,gFAAgF;AAChF,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEnG;;;;;;GAMG;AACH,MAAM,WAAW,OAAO;IACpB,uFAAuF;IACvF,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1C,oEAAoE;IACpE,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7C,gEAAgE;IAChE,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;CACpC;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IACzB;;;;;OAKG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,yGAAyG;IACzG,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,kFAAkF;IAClF,MAAM,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,KAAK,EAAE,SAAS,CAAC;IACjB;;;;OAIG;IACH,KAAK,CAAC,EAAE,gBAAgB,CAAC;IAGzB,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kEAAkE;IAClE,MAAM,CAAC,EAAE,OAAO,CAAC;IAGjB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uBAAuB;IACvB,WAAW,CAAC,EAAE,OAAO,sBAAsB,EAAE,cAAc,CAAC;IAC5D,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAiND;;;;;;;;;;;;GAYG;AACH,wBAAsB,cAAc,CAChC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,OAAO,GACd,OAAO,CAAC,UAAU,CAAC,CAqFrB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAgB,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAKhE,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7E,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EACH,eAAe,EACf,KAAK,cAAc,EACnB,aAAa,EACb,KAAK,mBAAmB,EACxB,YAAY,EACZ,aAAa,GAChB,MAAM,iBAAiB,CAAC;AAEzB,gFAAgF;AAChF,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEnG;;;;;;GAMG;AACH,MAAM,WAAW,OAAO;IACpB,uFAAuF;IACvF,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1C,oEAAoE;IACpE,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7C,gEAAgE;IAChE,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;CACpC;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IACzB;;;;;OAKG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,yGAAyG;IACzG,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,kFAAkF;IAClF,MAAM,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,KAAK,EAAE,SAAS,CAAC;IACjB;;;;OAIG;IACH,KAAK,CAAC,EAAE,gBAAgB,CAAC;IAGzB,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kEAAkE;IAClE,MAAM,CAAC,EAAE,OAAO,CAAC;IAGjB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uBAAuB;IACvB,WAAW,CAAC,EAAE,OAAO,sBAAsB,EAAE,cAAc,CAAC;IAC5D,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AA2OD;;;;;;;;;;;;GAYG;AACH,wBAAsB,cAAc,CAChC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,OAAO,GACd,OAAO,CAAC,UAAU,CAAC,CA2FrB"}
package/dist/index.js CHANGED
@@ -16,6 +16,7 @@ import { collectDocumentDiagnostics, createNowlineServices, resolveIncludes, } f
16
16
  import { layoutRoadmap } from '@nowline/layout';
17
17
  import { renderSvg } from '@nowline/renderer';
18
18
  import { URI } from 'langium';
19
+ export { civilDateInZone, normalizeZone, resolveToday, TimezoneError, } from '@nowline/layout';
19
20
  let cachedServices;
20
21
  let docCounter = 0;
21
22
  function getExportServices() {
@@ -101,6 +102,16 @@ function guessMime(ref) {
101
102
  return 'image/webp';
102
103
  return 'application/octet-stream';
103
104
  }
105
+ /**
106
+ * Pin the renderer's per-role families to the resolved fonts' real family
107
+ * names so raster/preview SVG names exactly the bundled face. `serif` maps to
108
+ * the sans family: the resolver has no serif role and raster already falls
109
+ * back serif->sans (resvg has no serif face loaded), so this is behavior-
110
+ * preserving while making the SVG explicit.
111
+ */
112
+ function pinnedFamilies(fonts) {
113
+ return { sans: fonts.sans.name, serif: fonts.sans.name, mono: fonts.mono.name };
114
+ }
104
115
  async function stageDocument(source, inputs, host) {
105
116
  const services = getExportServices();
106
117
  const uri = freshUri();
@@ -141,18 +152,25 @@ async function stageDocument(source, inputs, host) {
141
152
  const bytes = await host.readAsset(ref);
142
153
  return { bytes, mime: guessMime(ref) };
143
154
  };
144
- const warnings = [];
145
- const svg = await renderSvg(model, {
146
- assetResolver,
147
- noLinks: inputs.noLinks ?? false,
148
- strict: inputs.strict ?? false,
149
- warn: (msg) => warnings.push(msg),
150
- });
151
- if (inputs.strict && warnings.length > 0) {
152
- throw new Error(`@nowline/export: render warnings (--strict): ${warnings.join('; ')}`);
153
- }
155
+ const renderWith = async (fontFamilies) => {
156
+ const warnings = [];
157
+ const svg = await renderSvg(model, {
158
+ assetResolver,
159
+ noLinks: inputs.noLinks ?? false,
160
+ strict: inputs.strict ?? false,
161
+ warn: (msg) => warnings.push(msg),
162
+ fontFamilies,
163
+ });
164
+ if (inputs.strict && warnings.length > 0) {
165
+ throw new Error(`@nowline/export: render warnings (--strict): ${warnings.join('; ')}`);
166
+ }
167
+ return svg;
168
+ };
169
+ // Portable render (FONT_STACK) for the svg/html file exports.
170
+ const svg = await renderWith();
154
171
  return {
155
172
  svg,
173
+ renderWith: (fontFamilies) => renderWith(fontFamilies),
156
174
  exportInputs: {
157
175
  model,
158
176
  ast,
@@ -234,7 +252,10 @@ export async function exportDocument(source, format, inputs, host) {
234
252
  const wasmBytes = await host.loadWasm();
235
253
  const pngMod = await import('@nowline/export-png');
236
254
  await pngMod.initPngWasm(wasmBytes);
237
- const bytes = await pngMod.exportPng(stage.exportInputs, stage.svg, {
255
+ // Raster with the pinned bundled family so the SVG resvg rasterizes
256
+ // names exactly the embedded font (matches the live preview).
257
+ const rasterSvg = await stage.renderWith(pinnedFamilies(inputs.fonts));
258
+ const bytes = await pngMod.exportPng(stage.exportInputs, rasterSvg, {
238
259
  scale: inputs.pngScale ?? 2,
239
260
  fonts: inputs.fonts,
240
261
  });
@@ -245,7 +266,10 @@ export async function exportDocument(source, format, inputs, host) {
245
266
  throw new TypeError('@nowline/export: inputs.fonts is required for pdf format.');
246
267
  }
247
268
  const mod = await import('@nowline/export-pdf');
248
- const bytes = await mod.exportPdf(stage.exportInputs, stage.svg, {
269
+ // Same pinned-family raster SVG as PNG so PDF text names the embedded
270
+ // font explicitly and stays consistent with preview + PNG.
271
+ const rasterSvg = await stage.renderWith(pinnedFamilies(inputs.fonts));
272
+ const bytes = await mod.exportPdf(stage.exportInputs, rasterSvg, {
249
273
  pageSize: inputs.pageSize,
250
274
  orientation: inputs.orientation,
251
275
  marginPt: inputs.marginPt,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nowline/export",
3
- "version": "0.0.0-dev.20260603150914.g70caedb",
3
+ "version": "0.0.0-dev.20260605224805.g7df792d",
4
4
  "description": "Nowline export kernel — the single parse→resolve→layout→renderSvg→format code path shared by every surface for byte-identical export output",
5
5
  "license": "Apache-2.0",
6
6
  "engines": {
@@ -21,16 +21,16 @@
21
21
  "src/"
22
22
  ],
23
23
  "dependencies": {
24
- "@nowline/core": "0.0.0-dev.20260603150914.g70caedb",
25
- "@nowline/export-core": "0.0.0-dev.20260603150914.g70caedb",
26
- "@nowline/export-mermaid": "0.0.0-dev.20260603150914.g70caedb",
27
- "@nowline/export-html": "0.0.0-dev.20260603150914.g70caedb",
28
- "@nowline/export-msproj": "0.0.0-dev.20260603150914.g70caedb",
29
- "@nowline/export-pdf": "0.0.0-dev.20260603150914.g70caedb",
30
- "@nowline/export-png": "0.0.0-dev.20260603150914.g70caedb",
31
- "@nowline/export-xlsx": "0.0.0-dev.20260603150914.g70caedb",
32
- "@nowline/renderer": "0.0.0-dev.20260603150914.g70caedb",
33
- "@nowline/layout": "0.0.0-dev.20260603150914.g70caedb"
24
+ "@nowline/core": "0.0.0-dev.20260605224805.g7df792d",
25
+ "@nowline/export-core": "0.0.0-dev.20260605224805.g7df792d",
26
+ "@nowline/export-html": "0.0.0-dev.20260605224805.g7df792d",
27
+ "@nowline/export-pdf": "0.0.0-dev.20260605224805.g7df792d",
28
+ "@nowline/export-msproj": "0.0.0-dev.20260605224805.g7df792d",
29
+ "@nowline/export-mermaid": "0.0.0-dev.20260605224805.g7df792d",
30
+ "@nowline/export-png": "0.0.0-dev.20260605224805.g7df792d",
31
+ "@nowline/export-xlsx": "0.0.0-dev.20260605224805.g7df792d",
32
+ "@nowline/layout": "0.0.0-dev.20260605224805.g7df792d",
33
+ "@nowline/renderer": "0.0.0-dev.20260605224805.g7df792d"
34
34
  },
35
35
  "peerDependencies": {
36
36
  "langium": "~4.2.4"
package/src/index.ts CHANGED
@@ -22,12 +22,20 @@ import {
22
22
  } from '@nowline/core';
23
23
  import type { ExportInputs, ResolvedFontPair } from '@nowline/export-core';
24
24
  import { layoutRoadmap, type ThemeName } from '@nowline/layout';
25
- import { type AssetResolver, renderSvg } from '@nowline/renderer';
25
+ import { type AssetResolver, type FontFamilies, renderSvg } from '@nowline/renderer';
26
26
  import type { AstNode, LangiumDocument } from 'langium';
27
27
  import { URI } from 'langium';
28
28
 
29
29
  export type { PdfOrientation, ResolvedFontPair } from '@nowline/export-core';
30
30
  export type { ThemeName } from '@nowline/layout';
31
+ export {
32
+ civilDateInZone,
33
+ type NormalizedZone,
34
+ normalizeZone,
35
+ type ResolveTodayOptions,
36
+ resolveToday,
37
+ TimezoneError,
38
+ } from '@nowline/layout';
31
39
 
32
40
  /** The eight canonical export formats. Every surface produces exactly these. */
33
41
  export type ExportFormat = 'svg' | 'png' | 'pdf' | 'html' | 'mermaid' | 'xlsx' | 'msproj' | 'json';
@@ -205,12 +213,31 @@ function guessMime(ref: string): string {
205
213
  // ---- Staged pipeline ---------------------------------------------------------
206
214
 
207
215
  interface StageResult {
216
+ /** SVG rendered with the portable FONT_STACK (for `svg` / `html` exports). */
208
217
  svg: string;
218
+ /**
219
+ * Re-render the already-laid-out model with a pinned `font-family` map.
220
+ * Used by the raster paths (png/pdf) so the exported pixels name exactly
221
+ * the bundled font and match the live preview (WYSIWYG). Reuses the same
222
+ * asset resolver and strict/warn handling as the portable render.
223
+ */
224
+ renderWith: (fontFamilies: FontFamilies) => Promise<string>;
209
225
  exportInputs: ExportInputs;
210
226
  document: LangiumDocument<NowlineFile>;
211
227
  source: string;
212
228
  }
213
229
 
230
+ /**
231
+ * Pin the renderer's per-role families to the resolved fonts' real family
232
+ * names so raster/preview SVG names exactly the bundled face. `serif` maps to
233
+ * the sans family: the resolver has no serif role and raster already falls
234
+ * back serif->sans (resvg has no serif face loaded), so this is behavior-
235
+ * preserving while making the SVG explicit.
236
+ */
237
+ function pinnedFamilies(fonts: ResolvedFontPair): FontFamilies {
238
+ return { sans: fonts.sans.name, serif: fonts.sans.name, mono: fonts.mono.name };
239
+ }
240
+
214
241
  async function stageDocument(
215
242
  source: string,
216
243
  inputs: RenderInputs,
@@ -267,20 +294,27 @@ async function stageDocument(
267
294
  return { bytes, mime: guessMime(ref) };
268
295
  };
269
296
 
270
- const warnings: string[] = [];
271
- const svg = await renderSvg(model, {
272
- assetResolver,
273
- noLinks: inputs.noLinks ?? false,
274
- strict: inputs.strict ?? false,
275
- warn: (msg) => warnings.push(msg),
276
- });
297
+ const renderWith = async (fontFamilies?: FontFamilies): Promise<string> => {
298
+ const warnings: string[] = [];
299
+ const svg = await renderSvg(model, {
300
+ assetResolver,
301
+ noLinks: inputs.noLinks ?? false,
302
+ strict: inputs.strict ?? false,
303
+ warn: (msg) => warnings.push(msg),
304
+ fontFamilies,
305
+ });
306
+ if (inputs.strict && warnings.length > 0) {
307
+ throw new Error(`@nowline/export: render warnings (--strict): ${warnings.join('; ')}`);
308
+ }
309
+ return svg;
310
+ };
277
311
 
278
- if (inputs.strict && warnings.length > 0) {
279
- throw new Error(`@nowline/export: render warnings (--strict): ${warnings.join('; ')}`);
280
- }
312
+ // Portable render (FONT_STACK) for the svg/html file exports.
313
+ const svg = await renderWith();
281
314
 
282
315
  return {
283
316
  svg,
317
+ renderWith: (fontFamilies: FontFamilies) => renderWith(fontFamilies),
284
318
  exportInputs: {
285
319
  model,
286
320
  ast,
@@ -384,7 +418,10 @@ export async function exportDocument(
384
418
  const wasmBytes = await host.loadWasm();
385
419
  const pngMod = await import('@nowline/export-png');
386
420
  await pngMod.initPngWasm(wasmBytes);
387
- const bytes = await pngMod.exportPng(stage.exportInputs, stage.svg, {
421
+ // Raster with the pinned bundled family so the SVG resvg rasterizes
422
+ // names exactly the embedded font (matches the live preview).
423
+ const rasterSvg = await stage.renderWith(pinnedFamilies(inputs.fonts));
424
+ const bytes = await pngMod.exportPng(stage.exportInputs, rasterSvg, {
388
425
  scale: inputs.pngScale ?? 2,
389
426
  fonts: inputs.fonts,
390
427
  });
@@ -396,7 +433,10 @@ export async function exportDocument(
396
433
  throw new TypeError('@nowline/export: inputs.fonts is required for pdf format.');
397
434
  }
398
435
  const mod = await import('@nowline/export-pdf');
399
- const bytes = await mod.exportPdf(stage.exportInputs, stage.svg, {
436
+ // Same pinned-family raster SVG as PNG so PDF text names the embedded
437
+ // font explicitly and stays consistent with preview + PNG.
438
+ const rasterSvg = await stage.renderWith(pinnedFamilies(inputs.fonts));
439
+ const bytes = await mod.exportPdf(stage.exportInputs, rasterSvg, {
400
440
  pageSize: inputs.pageSize,
401
441
  orientation: inputs.orientation,
402
442
  marginPt: inputs.marginPt,