velo-text 1.0.0 → 1.0.2

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 (48) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +6 -6
  3. package/dist/assets/icons/index.d.ts +1 -1
  4. package/dist/assets/icons/index.d.ts.map +1 -1
  5. package/dist/assets/icons/index.js +3 -1
  6. package/dist/assets/icons/index.js.map +1 -1
  7. package/dist/export/layout/text.d.ts +1 -2
  8. package/dist/export/layout/text.d.ts.map +1 -1
  9. package/dist/export/layout/text.js +3 -17
  10. package/dist/export/layout/text.js.map +1 -1
  11. package/dist/export/pdf/assemble.d.ts.map +1 -1
  12. package/dist/export/pdf/assemble.js +3 -2
  13. package/dist/export/pdf/assemble.js.map +1 -1
  14. package/dist/export/pdf/diagnostics.d.ts.map +1 -1
  15. package/dist/export/pdf/diagnostics.js +29 -14
  16. package/dist/export/pdf/diagnostics.js.map +1 -1
  17. package/dist/export/pdf/equation.d.ts +1 -3
  18. package/dist/export/pdf/equation.d.ts.map +1 -1
  19. package/dist/export/pdf/equation.js +15 -10
  20. package/dist/export/pdf/equation.js.map +1 -1
  21. package/dist/export/pdf/latin1.d.ts +3 -0
  22. package/dist/export/pdf/latin1.d.ts.map +1 -0
  23. package/dist/export/pdf/latin1.js +8 -0
  24. package/dist/export/pdf/latin1.js.map +1 -0
  25. package/dist/export/pdf/pdf-model.d.ts +3 -0
  26. package/dist/export/pdf/pdf-model.d.ts.map +1 -1
  27. package/dist/export/pdf/pdf-model.js +33 -12
  28. package/dist/export/pdf/pdf-model.js.map +1 -1
  29. package/dist/export/pdf/ttf-embed.d.ts.map +1 -1
  30. package/dist/export/pdf/ttf-embed.js +7 -3
  31. package/dist/export/pdf/ttf-embed.js.map +1 -1
  32. package/dist/fonts/ttf-metrics.d.ts +3 -2
  33. package/dist/fonts/ttf-metrics.d.ts.map +1 -1
  34. package/dist/fonts/ttf-metrics.js +36 -16
  35. package/dist/fonts/ttf-metrics.js.map +1 -1
  36. package/dist/fonts/win-ansi-cmap.d.ts +3 -0
  37. package/dist/fonts/win-ansi-cmap.d.ts.map +1 -0
  38. package/dist/fonts/win-ansi-cmap.js +37 -0
  39. package/dist/fonts/win-ansi-cmap.js.map +1 -0
  40. package/dist/fonts/win-ansi.d.ts +15 -0
  41. package/dist/fonts/win-ansi.d.ts.map +1 -0
  42. package/dist/fonts/win-ansi.js +96 -0
  43. package/dist/fonts/win-ansi.js.map +1 -0
  44. package/package.json +1 -1
  45. package/skill/editor.md +1 -1
  46. package/skill/themes.md +2 -0
  47. package/themes/components.css +8 -0
  48. package/themes/editor-overlays.css +12 -9
package/CHANGELOG.md CHANGED
@@ -8,6 +8,14 @@ All notable changes follow [Keep a Changelog](https://keepachangelog.com/) and [
8
8
  - CLI `npx velo-text@beta skill` / `pnpx velo-text@beta skill` installs the agent skill into `.cursor/skills` and `.agents/skills`
9
9
  - Four document faces (Velo Sans / Serif / Mono / Display): same TTF in the editor and PDF FontFile2
10
10
 
11
+ ### Changed
12
+ - Toolbar and table chrome wrap instead of nested horizontal scroll
13
+ - Chrome metrics via `--pde-icon-size` / `--pde-control-size` (default 16px / 28px); hosts override on `[data-pde-theme]`
14
+
15
+
16
+
17
+
18
+
11
19
 
12
20
 
13
21
 
@@ -15,7 +23,15 @@ All notable changes follow [Keep a Changelog](https://keepachangelog.com/) and [
15
23
 
16
24
 
17
25
 
26
+ ## [1.0.2] - 2026-09-02
18
27
 
28
+ ### Added
29
+ -
30
+
31
+ ## [1.0.1] - 2026-08-31
32
+
33
+ ### Added
34
+ -
19
35
 
20
36
  ## [1.0.0] - 2026-08-30
21
37
 
@@ -125,3 +141,5 @@ First public **beta** on npm (`velo-text@beta`). Treat it as a trial API: layout
125
141
  [1.0.0-beta.7]: https://github.com/velo-text/velo-text/releases/tag/v1.0.0-beta.7
126
142
  [1.0.0-beta.8]: https://github.com/velo-text/velo-text/releases/tag/v1.0.0-beta.8
127
143
  [1.0.0]: https://github.com/velo-text/velo-text/releases/tag/v1.0.0
144
+ [1.0.1]: https://github.com/velo-text/velo-text/releases/tag/v1.0.1
145
+ [1.0.2]: https://github.com/velo-text/velo-text/releases/tag/v1.0.2
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # velo-text
2
2
 
3
- **1.0.0** — public beta. APIs and export layout can still change. Install with the `beta` tag, not as if it were a stable 1.0.
3
+ **1.0.2** — public beta. APIs and export layout can still change. Install with the `beta` tag, not as if it were a stable 1.0.
4
4
 
5
5
  Portable document editor with variables `{{name}}`, tables, images, LaTeX equations and deterministic export to **PDF, ODT, and DOCX** — **zero runtime dependencies**, TypeScript strict. LibreOffice/Word CI and full visual parity across Office formats are still open.
6
6
 
@@ -13,10 +13,10 @@ Requires **Node >= 18**. Use **pnpm**.
13
13
  ```bash
14
14
  pnpm add velo-text@beta
15
15
  # exact prerelease
16
- pnpm add velo-text@1.0.0
16
+ pnpm add velo-text@1.0.2
17
17
  ```
18
18
 
19
- Do not run `pnpm add velo-text` expecting a stable `latest` until 1.0.0 is published.
19
+ Do not run `pnpm add velo-text` expecting a stable `latest` until 1.0.2 is published.
20
20
 
21
21
  ### Agent skill (any project)
22
22
 
@@ -38,7 +38,7 @@ import "velo-text/themes/components.css";
38
38
 
39
39
  ## Publish / GitHub Actions
40
40
 
41
- Do **not** put an npm token in the repo. Create GitHub secret **`NPM_TOKEN`**, then push tag `v1.0.0`. CI publishes to npm (`beta`) and opens a GitHub Release. Details: [docs/guide/publish.md](docs/guide/publish.md).
41
+ Do **not** put an npm token in the repo. Create GitHub secret **`NPM_TOKEN`**, then push tag `v1.0.2`. CI publishes to npm (`beta`) and opens a GitHub Release. Details: [docs/guide/publish.md](docs/guide/publish.md).
42
42
 
43
43
  ## Quick start
44
44
 
@@ -107,10 +107,10 @@ pnpm run test:visual # HTML snapshots in tests/visual/snapshots
107
107
  pnpm run fuzz -- --iterations=5000
108
108
  pnpm run build # tsc → dist/
109
109
  pnpm docs:dev # VitePress docs + playground at /playground/
110
- pnpm version:set 1.0.0 # bump version (then tag v1.0.0 and push)
110
+ pnpm version:set 1.0.2 # bump version (then tag v1.0.2 and push)
111
111
  ```
112
112
 
113
- Publish is **GitHub Actions only** (push tag `v1.0.0` after setting secret `NPM_TOKEN`).
113
+ Publish is **GitHub Actions only** (push tag `v1.0.2` after setting secret `NPM_TOKEN`).
114
114
 
115
115
  ## Zero dependencies
116
116
 
@@ -21,5 +21,5 @@ export declare function listIconNames(): IconName[];
21
21
  /**
22
22
  * CSS for icons + selection color — icons inherit color, selection uses theme token.
23
23
  */
24
- export declare const iconCss = "\n.pde-icon {\n display: inline-block;\n vertical-align: middle;\n flex-shrink: 0;\n color: var(--pde-icon-color, currentColor);\n pointer-events: none;\n}\n.pde-root::selection {\n background: var(--pde-color-selection, #cbd7ff);\n}\n.pde-toolbar button:hover .pde-icon,\n.pde-toolbar button[aria-pressed=\"true\"] .pde-icon {\n color: var(--pde-color-primary, #3659e3);\n}\n.pde-toolbar button:disabled .pde-icon {\n color: var(--pde-color-muted, #667085);\n opacity: 0.5;\n}\n";
24
+ export declare const iconCss = "\n.pde-icon {\n display: inline-block;\n vertical-align: middle;\n flex-shrink: 0;\n width: var(--pde-icon-size, 16px);\n height: var(--pde-icon-size, 16px);\n color: var(--pde-icon-color, currentColor);\n pointer-events: none;\n}\n.pde-root::selection {\n background: var(--pde-color-selection, #cbd7ff);\n}\n.pde-toolbar button:hover .pde-icon,\n.pde-toolbar button[aria-pressed=\"true\"] .pde-icon {\n color: var(--pde-color-primary, #3659e3);\n}\n.pde-toolbar button:disabled .pde-icon {\n color: var(--pde-color-muted, #667085);\n opacity: 0.5;\n}\n";
25
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/assets/icons/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,QAAQ,GAChB,MAAM,GACN,QAAQ,GACR,WAAW,GACX,eAAe,GACf,MAAM,GACN,UAAU,GACV,UAAU,GACV,UAAU,GACV,eAAe,GACf,aAAa,GACb,OAAO,GACP,MAAM,GACN,OAAO,GACP,WAAW,GACX,OAAO,GACP,UAAU,GACV,UAAU,GACV,WAAW,GACX,aAAa,GACb,YAAY,GACZ,cAAc,GACd,OAAO,GACP,OAAO,GACP,aAAa,GACb,OAAO,GACP,YAAY,GACZ,cAAc,GACd,MAAM,GACN,OAAO,GACP,aAAa,GACb,aAAa,GACb,cAAc,GACd,SAAS,GACT,UAAU,GACV,SAAS,GACT,MAAM,GACN,MAAM,GACN,UAAU,GACV,OAAO,GACP,eAAe,GACf,gBAAgB,GAChB,gBAAgB,GAChB,gBAAgB,GAChB,WAAW,GACX,WAAW,GACX,aAAa,GACb,YAAY,GACZ,WAAW,GACX,UAAU,GACV,aAAa,GACb,aAAa,GACb,QAAQ,GACR,UAAU,GACV,WAAW,GACX,OAAO,GACP,gBAAgB,GAChB,OAAO,CAAC;AAEZ,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAgED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,GAAE,WAAgB,GAAG,MAAM,CASzE;AAED,wBAAgB,WAAW,CAAC,IAAI,GAAE,WAAgB,GAAG,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAI5E;AAED,wBAAgB,aAAa,IAAI,QAAQ,EAAE,CAE1C;AAED;;GAEG;AACH,eAAO,MAAM,OAAO,6eAmBnB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/assets/icons/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,QAAQ,GAChB,MAAM,GACN,QAAQ,GACR,WAAW,GACX,eAAe,GACf,MAAM,GACN,UAAU,GACV,UAAU,GACV,UAAU,GACV,eAAe,GACf,aAAa,GACb,OAAO,GACP,MAAM,GACN,OAAO,GACP,WAAW,GACX,OAAO,GACP,UAAU,GACV,UAAU,GACV,WAAW,GACX,aAAa,GACb,YAAY,GACZ,cAAc,GACd,OAAO,GACP,OAAO,GACP,aAAa,GACb,OAAO,GACP,YAAY,GACZ,cAAc,GACd,MAAM,GACN,OAAO,GACP,aAAa,GACb,aAAa,GACb,cAAc,GACd,SAAS,GACT,UAAU,GACV,SAAS,GACT,MAAM,GACN,MAAM,GACN,UAAU,GACV,OAAO,GACP,eAAe,GACf,gBAAgB,GAChB,gBAAgB,GAChB,gBAAgB,GAChB,WAAW,GACX,WAAW,GACX,aAAa,GACb,YAAY,GACZ,WAAW,GACX,UAAU,GACV,aAAa,GACb,aAAa,GACb,QAAQ,GACR,UAAU,GACV,WAAW,GACX,OAAO,GACP,gBAAgB,GAChB,OAAO,CAAC;AAEZ,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAgED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,GAAE,WAAgB,GAAG,MAAM,CASzE;AAED,wBAAgB,WAAW,CAAC,IAAI,GAAE,WAAgB,GAAG,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAI5E;AAED,wBAAgB,aAAa,IAAI,QAAQ,EAAE,CAE1C;AAED;;GAEG;AACH,eAAO,MAAM,OAAO,0jBAqBnB,CAAC"}
@@ -71,7 +71,7 @@ export function getIconSvg(name, opts = {}) {
71
71
  const inner = ICONS[name];
72
72
  if (!inner)
73
73
  throw new Error(`Unknown icon: ${name}`);
74
- const size = opts.size ?? 18;
74
+ const size = opts.size ?? 16;
75
75
  const color = opts.color ?? "currentColor";
76
76
  const strokeWidth = opts.strokeWidth ?? 2;
77
77
  const klass = ["pde-icon", `pde-icon--${name}`, opts.className].filter(Boolean).join(" ");
@@ -95,6 +95,8 @@ export const iconCss = `
95
95
  display: inline-block;
96
96
  vertical-align: middle;
97
97
  flex-shrink: 0;
98
+ width: var(--pde-icon-size, 16px);
99
+ height: var(--pde-icon-size, 16px);
98
100
  color: var(--pde-icon-color, currentColor);
99
101
  pointer-events: none;
100
102
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/assets/icons/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/assets/icons/index.ts"],"names":[],"mappings":"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"}
@@ -40,8 +40,7 @@ export declare function breakLines(text: string, opts: LineBreakOptions): Array<
40
40
  */
41
41
  export declare function estimateRunWidth(run: TextRun, maxWidthUm: number): number;
42
42
  /**
43
- * Check for missing glyphs for MVP we consider all BMP characters as present.
44
- * Returns list of code points not in the assumed font coverage.
43
+ * Characters not encodable in PDF WinAnsi (will appear as "?").
45
44
  */
46
45
  export declare function findMissingGlyphs(text: string): string[];
47
46
  //# sourceMappingURL=text.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../src/export/layout/text.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IAEf,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAGD,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,aAAa,SAAK,GAAG,WAAW,CAe5E;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,WAAW,CAAA;CAAE,CAAC,CA8D/H;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAIzE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAcxD"}
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../src/export/layout/text.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IAEf,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAGD,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,aAAa,SAAK,GAAG,WAAW,CAe5E;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,WAAW,CAAA;CAAE,CAAC,CA8D/H;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAIzE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAExD"}
@@ -4,6 +4,7 @@
4
4
  * For v1 we use a deterministic monospace approximation without external font files or DOM measurement,
5
5
  * ensuring backend/frontend parity and determinism. Real font shaping is deferred.
6
6
  */
7
+ import { findUnmappedPdfChars } from "../../fonts/win-ansi.js";
7
8
  // Simple font registry — for MVP we approximate metrics derived from pt size
8
9
  export function getFontMetrics(run, defaultSizePt = 11) {
9
10
  const sizePt = run.fontSizePt ?? defaultSizePt;
@@ -96,24 +97,9 @@ export function estimateRunWidth(run, maxWidthUm) {
96
97
  return lines.length > 0 ? Math.max(...lines.map((l) => l.widthUm)) : 0;
97
98
  }
98
99
  /**
99
- * Check for missing glyphs for MVP we consider all BMP characters as present.
100
- * Returns list of code points not in the assumed font coverage.
100
+ * Characters not encodable in PDF WinAnsi (will appear as "?").
101
101
  */
102
102
  export function findMissingGlyphs(text) {
103
- const missing = [];
104
- for (const ch of text) {
105
- const cp = ch.codePointAt(0) ?? 0;
106
- // Assume font covers Basic Latin + Latin-1 + common punctuation up to 0x4FF (Cyrillic)
107
- // Anything beyond is flagged as missing for diagnostics
108
- if (cp > 0x4ff && cp < 0x1f000) {
109
- // Allow CJK and emoji as fallback (not missing, just fallback)
110
- if (cp >= 0x4e00 && cp <= 0x9fff)
111
- continue;
112
- if (cp >= 0xac00 && cp <= 0xd7af)
113
- continue;
114
- missing.push(ch);
115
- }
116
- }
117
- return [...new Set(missing)];
103
+ return findUnmappedPdfChars(text);
118
104
  }
119
105
  //# sourceMappingURL=text.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../src/export/layout/text.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../src/export/layout/text.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"assemble.d.ts","sourceRoot":"","sources":["../../../src/export/pdf/assemble.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAa,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAsCzD,wBAAgB,WAAW,CACzB,KAAK,EAAE,OAAO,EAAE,EAChB,GAAG,EAAE,gBAAgB,EACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC,EAC3E,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC,EACzC,KAAK,EAAE,KAAK,GACX,UAAU,CAiFZ"}
1
+ {"version":3,"file":"assemble.d.ts","sourceRoot":"","sources":["../../../src/export/pdf/assemble.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,EAAa,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAsCzD,wBAAgB,WAAW,CACzB,KAAK,EAAE,OAAO,EAAE,EAChB,GAAG,EAAE,gBAAgB,EACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC,EAC3E,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC,EACzC,KAAK,EAAE,KAAK,GACX,UAAU,CAiFZ"}
@@ -1,10 +1,11 @@
1
+ import { pdfLatin1 } from "./latin1.js";
1
2
  import { pdfEscape } from "./pdf-model.js";
2
3
  import { collectDocumentFaces } from "./fonts.js";
3
4
  import { pdfTrueTypeObjects } from "./ttf-embed.js";
4
5
  import { pageContentStream } from "./stream.js";
5
- const enc = new TextEncoder();
6
+ const enc = pdfLatin1;
6
7
  function u8(s) {
7
- return enc.encode(s);
8
+ return enc(s);
8
9
  }
9
10
  function concat(parts) {
10
11
  const n = parts.reduce((a, p) => a + p.length, 0);
@@ -1 +1 @@
1
- {"version":3,"file":"assemble.js","sourceRoot":"","sources":["../../../src/export/pdf/assemble.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assemble.js","sourceRoot":"","sources":["../../../src/export/pdf/assemble.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../../src/export/pdf/diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAyB,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAIzF,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,SAAS,GAAG,OAAO,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAyED,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,gBAAgB,EACrB,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE;IAAE,IAAI,CAAC,EAAE,UAAU,CAAA;CAAE,CAAM,GACjD,OAAO,EAAE,CAYX"}
1
+ {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../../src/export/pdf/diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAyB,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAKzF,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,SAAS,GAAG,OAAO,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAsFD,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,gBAAgB,EACrB,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE;IAAE,IAAI,CAAC,EAAE,UAAU,CAAA;CAAE,CAAM,GACjD,OAAO,EAAE,CAaX"}
@@ -1,4 +1,5 @@
1
1
  import { resolveDocumentFont } from "../../fonts/catalog.js";
2
+ import { findUnmappedPdfChars } from "../../fonts/win-ansi.js";
2
3
  import { parseMath } from "./equation.js";
3
4
  function latexGap(latex, path, out) {
4
5
  const box = parseMath(latex, 11);
@@ -12,37 +13,50 @@ function latexGap(latex, path, out) {
12
13
  });
13
14
  }
14
15
  }
15
- function walkInlines(nodes, path, out, marksOnce) {
16
+ function walkInlines(nodes, path, out, marksOnce, unmappedOnce) {
16
17
  for (const n of nodes ?? []) {
17
18
  if (n.type === "inline-image") {
18
19
  out.push({ code: "pdf-skip-inline-image", message: "Inline image is not drawn in PDF", severity: "warning", path: `${path}/${n.id}` });
19
20
  }
20
21
  else if (n.type === "equation")
21
22
  latexGap(n.latex ?? "", `${path}/${n.id}`, out);
22
- else if (n.type === "text" && n.marks?.fontFamily && !marksOnce.n) {
23
- const fam = n.marks?.fontFamily;
24
- if (!resolveDocumentFont(fam)) {
25
- marksOnce.n = true;
23
+ else if (n.type === "text") {
24
+ const text = n.text ?? "";
25
+ const missing = findUnmappedPdfChars(text);
26
+ if (missing.length && !unmappedOnce.n) {
27
+ unmappedOnce.n = true;
28
+ const sample = missing.slice(0, 8).map((c) => `U+${(c.codePointAt(0) ?? 0).toString(16).toUpperCase()}`).join(", ");
26
29
  out.push({
27
- code: "pdf-font-family-ignored",
28
- message: `fontFamily "${fam}" is not a document face; PDF uses Helvetica`,
30
+ code: "pdf-unmapped-char",
31
+ message: `PDF cannot encode ${missing.length} character(s) (shown as ?): ${sample}${missing.length > 8 ? "…" : ""}`,
29
32
  severity: "warning",
30
33
  });
31
34
  }
35
+ if (n.marks?.fontFamily && !marksOnce.n) {
36
+ const fam = n.marks?.fontFamily;
37
+ if (!resolveDocumentFont(fam)) {
38
+ marksOnce.n = true;
39
+ out.push({
40
+ code: "pdf-font-family-ignored",
41
+ message: `fontFamily "${fam}" is not a document face; PDF uses Helvetica`,
42
+ severity: "warning",
43
+ });
44
+ }
45
+ }
32
46
  }
33
47
  else if (n.type === "link")
34
- walkInlines(n.children, `${path}/${n.id}`, out, marksOnce);
48
+ walkInlines(n.children, `${path}/${n.id}`, out, marksOnce, unmappedOnce);
35
49
  }
36
50
  }
37
- function walkBlocks(blocks, path, out, ctx, marksOnce) {
51
+ function walkBlocks(blocks, path, out, ctx, marksOnce, unmappedOnce) {
38
52
  for (const b of blocks ?? []) {
39
53
  const p = `${path}/${b.id}`;
40
54
  if (b.type === "paragraph" || b.type === "heading" || b.type === "quote") {
41
- walkInlines(b.children, p, out, marksOnce);
55
+ walkInlines(b.children, p, out, marksOnce, unmappedOnce);
42
56
  }
43
57
  else if (b.type === "list") {
44
58
  for (const it of b.items) {
45
- walkInlines(it.content, `${p}/${it.id}`, out, marksOnce);
59
+ walkInlines(it.content, `${p}/${it.id}`, out, marksOnce, unmappedOnce);
46
60
  if (it.nested)
47
61
  out.push({ code: "pdf-skip-nested-list", message: "Nested list is not laid out in PDF", severity: "warning", path: `${p}/${it.id}` });
48
62
  }
@@ -55,7 +69,7 @@ function walkBlocks(blocks, path, out, ctx, marksOnce) {
55
69
  out.push({ code: "pdf-cell-block-skipped", message: `Table cell ${inner.type} is not drawn in PDF`, severity: "warning", path: `${p}/${cell.id}/${inner.id}` });
56
70
  }
57
71
  }
58
- walkBlocks(cell.blocks, `${p}/${cell.id}`, out, "cell", marksOnce);
72
+ walkBlocks(cell.blocks, `${p}/${cell.id}`, out, "cell", marksOnce, unmappedOnce);
59
73
  }
60
74
  }
61
75
  }
@@ -66,7 +80,7 @@ function walkBlocks(blocks, path, out, ctx, marksOnce) {
66
80
  out.push({ code: "pdf-column-block-skipped", message: `Column ${inner.type} is not drawn in PDF`, severity: "warning", path: `${p}/${col.id}/${inner.id}` });
67
81
  }
68
82
  }
69
- walkBlocks(col.blocks, `${p}/${col.id}`, out, "column", marksOnce);
83
+ walkBlocks(col.blocks, `${p}/${col.id}`, out, "column", marksOnce, unmappedOnce);
70
84
  }
71
85
  }
72
86
  else if (b.type === "equation-block")
@@ -82,7 +96,8 @@ function walkBlocks(blocks, path, out, ctx, marksOnce) {
82
96
  export function collectPdfDiagnostics(doc, assets = {}) {
83
97
  const out = [];
84
98
  const marksOnce = { n: false };
85
- walkBlocks(doc.root.children, "root", out, "root", marksOnce);
99
+ const unmappedOnce = { n: false };
100
+ walkBlocks(doc.root.children, "root", out, "root", marksOnce, unmappedOnce);
86
101
  for (const b of doc.root.children) {
87
102
  if (b.type !== "image")
88
103
  continue;
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../../src/export/pdf/diagnostics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../../src/export/pdf/diagnostics.ts"],"names":[],"mappings":"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"}
@@ -48,8 +48,6 @@ export declare function mathVisualExtents(math: MathBox): {
48
48
  belowPt: number;
49
49
  innerH: number;
50
50
  };
51
- /**
52
- * PDF literal string bytes from a latin-1 string (for Symbol font glyphs > 127).
53
- */
51
+ /** PDF literal string for Symbol / Type1 fonts (WinAnsi bytes, not UTF-8). */
54
52
  export declare function pdfLiteralString(str: string): string;
55
53
  //# sourceMappingURL=equation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"equation.d.ts","sourceRoot":"","sources":["../../../src/export/pdf/equation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE9C,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;CACpB;AAiBD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAIrE;AAsBD,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,SAAK,GAAG,OAAO,CA6LjE;AAED,qEAAqE;AACrE,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC,eAAO,MAAM,eAAe,IAAI,CAAC;AAEjC,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAmBrG;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CASpD"}
1
+ {"version":3,"file":"equation.d.ts","sourceRoot":"","sources":["../../../src/export/pdf/equation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE9C,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;CACpB;AAiBD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAIrE;AAsBD,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,SAAK,GAAG,OAAO,CA6LjE;AAED,qEAAqE;AACrE,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC,eAAO,MAAM,eAAe,IAAI,CAAC;AAEjC,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAmBrG;AAED,8EAA8E;AAC9E,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAYpD"}
@@ -9,6 +9,7 @@
9
9
  * Output is a MathBox with width/ascent/descent and runs expressed relative to
10
10
  * a baseline (y=0), plus optional filled rules for fraction bars and sqrt overlines.
11
11
  */
12
+ import { mapCharToPdfWinAnsi } from "../../fonts/win-ansi.js";
12
13
  // ── Helvetica AFM widths (per 1000 units) — standard set ──
13
14
  const HW = {
14
15
  " ": 278, "!": 278, '"': 355, "#": 556, "$": 556, "%": 889, "&": 667, "'": 191, "(": 333, ")": 333,
@@ -282,19 +283,23 @@ export function mathVisualExtents(math) {
282
283
  innerH,
283
284
  };
284
285
  }
285
- /**
286
- * PDF literal string bytes from a latin-1 string (for Symbol font glyphs > 127).
287
- */
286
+ /** PDF literal string for Symbol / Type1 fonts (WinAnsi bytes, not UTF-8). */
288
287
  export function pdfLiteralString(str) {
289
288
  let out = "(";
290
- for (const ch of str) {
291
- const c = ch.codePointAt(0);
292
- if (c === 40 || c === 41 || c === 92)
293
- out += "\\" + ch;
294
- else if (c < 128)
295
- out += ch;
289
+ for (const ch of str.normalize("NFC")) {
290
+ const b = mapCharToPdfWinAnsi(ch);
291
+ if (b === null)
292
+ continue;
293
+ if (b === 0x5c)
294
+ out += "\\\\";
295
+ else if (b === 0x28)
296
+ out += "\\(";
297
+ else if (b === 0x29)
298
+ out += "\\)";
299
+ else if (b < 128)
300
+ out += String.fromCharCode(b);
296
301
  else
297
- out += `\\${c.toString(8).padStart(3, "0")}`;
302
+ out += `\\${b.toString(8).padStart(3, "0")}`;
298
303
  }
299
304
  return out + ")";
300
305
  }
@@ -1 +1 @@
1
- {"version":3,"file":"equation.js","sourceRoot":"","sources":["../../../src/export/pdf/equation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"equation.js","sourceRoot":"","sources":["../../../src/export/pdf/equation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ /** Encode PDF syntax strings as Latin-1 bytes (never UTF-8). */
2
+ export declare function pdfLatin1(s: string): Uint8Array;
3
+ //# sourceMappingURL=latin1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"latin1.d.ts","sourceRoot":"","sources":["../../../src/export/pdf/latin1.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,UAAU,CAI/C"}
@@ -0,0 +1,8 @@
1
+ /** Encode PDF syntax strings as Latin-1 bytes (never UTF-8). */
2
+ export function pdfLatin1(s) {
3
+ const out = new Uint8Array(s.length);
4
+ for (let i = 0; i < s.length; i++)
5
+ out[i] = s.charCodeAt(i) & 0xff;
6
+ return out;
7
+ }
8
+ //# sourceMappingURL=latin1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"latin1.js","sourceRoot":"","sources":["../../../src/export/pdf/latin1.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,MAAM,UAAU,SAAS,CAAC,CAAS;IACjC,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACnE,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1,6 +1,9 @@
1
1
  import type { MathBox } from "./equation.js";
2
2
  import type { PdfFace } from "./fonts.js";
3
+ /** Escape PDF literal strings as WinAnsi bytes (not UTF-8 mojibake). */
3
4
  export declare function pdfEscape(str: string): string;
5
+ /** UTF-16BE hex string for Identity-H embedded fonts (Chrome-safe Unicode). */
6
+ export declare function pdfUtf16Hex(str: string): string;
4
7
  export type TextSegment = {
5
8
  kind: "text";
6
9
  text: string;
@@ -1 +1 @@
1
- {"version":3,"file":"pdf-model.d.ts","sourceRoot":"","sources":["../../../src/export/pdf/pdf-model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAQ1C,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAU7C;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,OAAO,GACf,WAAW,GACX;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtC,wBAAgB,WAAW,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAErE;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;IAC/C,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf"}
1
+ {"version":3,"file":"pdf-model.d.ts","sourceRoot":"","sources":["../../../src/export/pdf/pdf-model.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,wEAAwE;AACxE,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAY7C;AAED,+EAA+E;AAC/E,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAY/C;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,OAAO,GACf,WAAW,GACX;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtC,wBAAgB,WAAW,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAErE;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;IAC/C,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf"}
@@ -1,25 +1,46 @@
1
- /** Map Unicode to WinAnsi (Helvetica) octal so bullets are not UTF-8 mojibake. */
2
- const WINANSI = {
3
- 0x2022: 0x95, 0x2013: 0x96, 0x2014: 0x97, 0x2018: 0x91, 0x2019: 0x92,
4
- 0x201c: 0x93, 0x201d: 0x94, 0x2026: 0x85, 0x20ac: 0x80, 0x00a0: 0x20,
5
- };
1
+ import { mapCharToPdfWinAnsi } from "../../fonts/win-ansi.js";
2
+ /** Escape PDF literal strings as WinAnsi bytes (not UTF-8 mojibake). */
6
3
  export function pdfEscape(str) {
7
4
  let out = "";
8
- for (const ch of String(str)) {
9
- if (ch === "\\" || ch === "(" || ch === ")") {
10
- out += `\\${ch}`;
5
+ for (const ch of str.normalize("NFC")) {
6
+ const b = mapCharToPdfWinAnsi(ch);
7
+ if (b === null)
8
+ continue;
9
+ if (b === 0x5c) {
10
+ out += "\\\\";
11
+ continue;
12
+ }
13
+ if (b === 0x28) {
14
+ out += "\\(";
15
+ continue;
16
+ }
17
+ if (b === 0x29) {
18
+ out += "\\)";
11
19
  continue;
12
20
  }
13
- const cp = ch.codePointAt(0) ?? 63;
14
- if (cp < 128) {
15
- out += ch;
21
+ if (b < 128) {
22
+ out += String.fromCharCode(b);
16
23
  continue;
17
24
  }
18
- const b = WINANSI[cp] ?? (cp < 256 ? cp : 0x3f);
19
25
  out += `\\${b.toString(8).padStart(3, "0")}`;
20
26
  }
21
27
  return out;
22
28
  }
29
+ /** UTF-16BE hex string for Identity-H embedded fonts (Chrome-safe Unicode). */
30
+ export function pdfUtf16Hex(str) {
31
+ let hex = "<";
32
+ for (const ch of str.normalize("NFC")) {
33
+ const cp = ch.codePointAt(0) ?? 0x3f;
34
+ if (cp <= 0xffff)
35
+ hex += cp.toString(16).padStart(4, "0");
36
+ else {
37
+ const adj = cp - 0x10000;
38
+ hex += (0xd800 + (adj >> 10)).toString(16).padStart(4, "0");
39
+ hex += (0xdc00 + (adj & 0x3ff)).toString(16).padStart(4, "0");
40
+ }
41
+ }
42
+ return `${hex}>`;
43
+ }
23
44
  export function copyTextSeg(s, text) {
24
45
  return { ...s, text };
25
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pdf-model.js","sourceRoot":"","sources":["../../../src/export/pdf/pdf-model.ts"],"names":[],"mappings":"AAGA,kFAAkF;AAClF,MAAM,OAAO,GAA2B;IACtC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI;IACpE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI;CACrE,CAAC;AAEF,MAAM,UAAU,SAAS,CAAC,GAAW;IACnC,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAAC,GAAG,IAAI,KAAK,EAAE,EAAE,CAAC;YAAC,SAAS;QAAC,CAAC;QAC5E,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,EAAE,GAAG,GAAG,EAAE,CAAC;YAAC,GAAG,IAAI,EAAE,CAAC;YAAC,SAAS;QAAC,CAAC;QACtC,MAAM,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAChD,GAAG,IAAI,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;IAC/C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAkBD,MAAM,UAAU,WAAW,CAAC,CAAc,EAAE,IAAY;IACtD,OAAO,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"pdf-model.js","sourceRoot":"","sources":["../../../src/export/pdf/pdf-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAI9D,wEAAwE;AACxE,MAAM,UAAU,SAAS,CAAC,GAAW;IACnC,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACtC,MAAM,CAAC,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,IAAI;YAAE,SAAS;QACzB,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YAAC,GAAG,IAAI,MAAM,CAAC;YAAC,SAAS;QAAC,CAAC;QAC5C,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YAAC,GAAG,IAAI,KAAK,CAAC;YAAC,SAAS;QAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YAAC,GAAG,IAAI,KAAK,CAAC;YAAC,SAAS;QAAC,CAAC;QAC3C,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;YAAC,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAAC,SAAS;QAAC,CAAC;QACzD,GAAG,IAAI,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;IAC/C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,IAAI,GAAG,GAAG,GAAG,CAAC;IACd,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACtC,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;QACrC,IAAI,EAAE,IAAI,MAAM;YAAE,GAAG,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;aACrD,CAAC;YACJ,MAAM,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC;YACzB,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAC5D,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IACD,OAAO,GAAG,GAAG,GAAG,CAAC;AACnB,CAAC;AAkBD,MAAM,UAAU,WAAW,CAAC,CAAc,EAAE,IAAY;IACtD,OAAO,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC;AACxB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ttf-embed.d.ts","sourceRoot":"","sources":["../../../src/export/pdf/ttf-embed.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,UAAU,EAChB,MAAM,wBAAwB,CAAC;AAIhC,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,UAAU,EAC9B,MAAM,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,UAAU,EACvC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,GAAG,CAAC,UAAU,CAAC,GACpB;IAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAA;CAAE,CA8BtE"}
1
+ {"version":3,"file":"ttf-embed.d.ts","sourceRoot":"","sources":["../../../src/export/pdf/ttf-embed.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,UAAU,EAChB,MAAM,wBAAwB,CAAC;AAKhC,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,UAAU,EAC9B,MAAM,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,UAAU,EACvC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,GAAG,CAAC,UAAU,CAAC,GACpB;IAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAA;CAAE,CAmCtE"}
@@ -1,5 +1,6 @@
1
1
  import { documentFontByFace, pdfBaseFontForFace, weightForFace, } from "../../fonts/catalog.js";
2
2
  import { documentFontBytes } from "../../fonts/index.js";
3
+ import { winAnsiToUnicodeCMapStream } from "../../fonts/win-ansi-cmap.js";
3
4
  import { pdfWidths1000 } from "../../fonts/ttf-metrics.js";
4
5
  export function pdfTrueTypeObjects(enc, concat, firstNum, used) {
5
6
  const bodies = [];
@@ -16,16 +17,19 @@ export function pdfTrueTypeObjects(enc, concat, firstNum, used) {
16
17
  const italic = weight === "italic" || weight === "boldItalic";
17
18
  const fileNum = num;
18
19
  const descNum = num + 1;
19
- const fontNum = num + 2;
20
+ const toUnicodeNum = num + 2;
21
+ const fontNum = num + 3;
22
+ const toUnicode = winAnsiToUnicodeCMapStream();
20
23
  bodies.push(concat([
21
24
  enc(`${fileNum} 0 obj\n<< /Length ${ttf.length} /Length1 ${ttf.length} >>\nstream\n`),
22
25
  ttf,
23
26
  enc("\nendstream\nendobj"),
24
27
  ]));
25
28
  bodies.push(enc(`${descNum} 0 obj\n<< /Type /FontDescriptor /FontName /${baseFont} /Flags ${italic ? 96 : 32} /FontBBox [0 -200 1000 800] /ItalicAngle ${italic ? -12 : 0} /Ascent 800 /Descent -200 /CapHeight 700 /StemV 80 /FontFile2 ${fileNum} 0 R >>\nendobj`));
26
- bodies.push(enc(`${fontNum} 0 obj\n<< /Type /Font /Subtype /TrueType /BaseFont /${baseFont} /Encoding /WinAnsiEncoding /FirstChar 32 /LastChar 126 /Widths [${widths.join(" ")}] /FontDescriptor ${descNum} 0 R >>\nendobj`));
29
+ bodies.push(enc(`${toUnicodeNum} 0 obj\n<< /Length ${toUnicode.length} >>\nstream\n${toUnicode}\nendstream\nendobj`));
30
+ bodies.push(enc(`${fontNum} 0 obj\n<< /Type /Font /Subtype /TrueType /BaseFont /${baseFont} /Encoding /WinAnsiEncoding /FirstChar 32 /LastChar 255 /Widths [${widths.join(" ")}] /FontDescriptor ${descNum} 0 R /ToUnicode ${toUnicodeNum} 0 R >>\nendobj`));
27
31
  faces[face] = fontNum;
28
- num += 3;
32
+ num += 4;
29
33
  }
30
34
  return { bodies, faces };
31
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ttf-embed.js","sourceRoot":"","sources":["../../../src/export/pdf/ttf-embed.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,GAEd,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,MAAM,UAAU,kBAAkB,CAChC,GAA8B,EAC9B,MAAuC,EACvC,QAAgB,EAChB,IAAqB;IAErB,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,MAAM,KAAK,GAAwC,EAAE,CAAC;IACtD,IAAI,GAAG,GAAG,QAAQ,CAAC;IACnB,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ;YAAE,SAAS;QACrC,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,GAAG,GAAG,iBAAiB,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,YAAY,CAAC;QAC9D,MAAM,OAAO,GAAG,GAAG,CAAC;QACpB,MAAM,OAAO,GAAG,GAAG,GAAG,CAAC,CAAC;QACxB,MAAM,OAAO,GAAG,GAAG,GAAG,CAAC,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;YACjB,GAAG,CAAC,GAAG,OAAO,sBAAsB,GAAG,CAAC,MAAM,aAAa,GAAG,CAAC,MAAM,eAAe,CAAC;YACrF,GAAG;YACH,GAAG,CAAC,qBAAqB,CAAC;SAC3B,CAAC,CAAC,CAAC;QACJ,MAAM,CAAC,IAAI,CAAC,GAAG,CACb,GAAG,OAAO,+CAA+C,QAAQ,WAAW,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,6CAA6C,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,kEAAkE,OAAO,iBAAiB,CACpP,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,GAAG,CACb,GAAG,OAAO,wDAAwD,QAAQ,oEAAoE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAqB,OAAO,iBAAiB,CAC5M,CAAC,CAAC;QACH,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;QACtB,GAAG,IAAI,CAAC,CAAC;IACX,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"ttf-embed.js","sourceRoot":"","sources":["../../../src/export/pdf/ttf-embed.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,GAEd,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,MAAM,UAAU,kBAAkB,CAChC,GAA8B,EAC9B,MAAuC,EACvC,QAAgB,EAChB,IAAqB;IAErB,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,MAAM,KAAK,GAAwC,EAAE,CAAC;IACtD,IAAI,GAAG,GAAG,QAAQ,CAAC;IACnB,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ;YAAE,SAAS;QACrC,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,GAAG,GAAG,iBAAiB,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,YAAY,CAAC;QAC9D,MAAM,OAAO,GAAG,GAAG,CAAC;QACpB,MAAM,OAAO,GAAG,GAAG,GAAG,CAAC,CAAC;QACxB,MAAM,YAAY,GAAG,GAAG,GAAG,CAAC,CAAC;QAC7B,MAAM,OAAO,GAAG,GAAG,GAAG,CAAC,CAAC;QACxB,MAAM,SAAS,GAAG,0BAA0B,EAAE,CAAC;QAC/C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;YACjB,GAAG,CAAC,GAAG,OAAO,sBAAsB,GAAG,CAAC,MAAM,aAAa,GAAG,CAAC,MAAM,eAAe,CAAC;YACrF,GAAG;YACH,GAAG,CAAC,qBAAqB,CAAC;SAC3B,CAAC,CAAC,CAAC;QACJ,MAAM,CAAC,IAAI,CAAC,GAAG,CACb,GAAG,OAAO,+CAA+C,QAAQ,WAAW,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,6CAA6C,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,kEAAkE,OAAO,iBAAiB,CACpP,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,GAAG,CACb,GAAG,YAAY,sBAAsB,SAAS,CAAC,MAAM,gBAAgB,SAAS,qBAAqB,CACpG,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,GAAG,CACb,GAAG,OAAO,wDAAwD,QAAQ,oEAAoE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAqB,OAAO,mBAAmB,YAAY,iBAAiB,CAC3O,CAAC,CAAC;QACH,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;QACtB,GAAG,IAAI,CAAC,CAAC;IACX,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAC3B,CAAC"}
@@ -1,12 +1,13 @@
1
- /** Minimal TTF cmap format-4 + hmtx parser for WinAnsi widths (32–126). */
2
1
  export interface TtfMetrics {
3
- /** advance widths per WinAnsi char code 32–126 */
2
+ /** advance widths per WinAnsi char code 32–255 */
4
3
  widths: number[];
5
4
  unitsPerEm: number;
6
5
  }
7
6
  export declare function parseTtfMetrics(buf: Uint8Array): TtfMetrics;
8
7
  export declare function ttfCharWidth(buf: Uint8Array, ch: string, sizePt: number): number;
9
8
  export declare function ttfTextWidth(buf: Uint8Array, text: string, sizePt: number): number;
9
+ /** PDF CIDFont /W array for Identity-H (ASCII + Latin-1). */
10
+ export declare function pdfCidWArray(buf: Uint8Array): string;
10
11
  /** PDF TrueType /Widths entries are in thousandths of the text space (not font units). */
11
12
  export declare function pdfWidths1000(buf: Uint8Array): number[];
12
13
  //# sourceMappingURL=ttf-metrics.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ttf-metrics.d.ts","sourceRoot":"","sources":["../../src/fonts/ttf-metrics.ts"],"names":[],"mappings":"AAAA,2EAA2E;AA6D3E,MAAM,WAAW,UAAU;IACzB,kDAAkD;IAClD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAID,wBAAgB,eAAe,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,CAqB3D;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAMhF;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAIlF;AAED,0FAA0F;AAC1F,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,EAAE,CAGvD"}
1
+ {"version":3,"file":"ttf-metrics.d.ts","sourceRoot":"","sources":["../../src/fonts/ttf-metrics.ts"],"names":[],"mappings":"AAoFA,MAAM,WAAW,UAAU;IACzB,kDAAkD;IAClD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAID,wBAAgB,eAAe,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,CAY3D;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAOhF;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAIlF;AAED,6DAA6D;AAC7D,wBAAgB,YAAY,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,CAQpD;AAED,0FAA0F;AAC1F,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,EAAE,CAGvD"}
@@ -1,4 +1,5 @@
1
- /** Minimal TTF cmap format-4 + hmtx parser for WinAnsi widths (32–126). */
1
+ import { PDF_WINANSI_FIRST, PDF_WINANSI_LAST, mapCharToPdfWinAnsi, winAnsiToUnicode, } from "./win-ansi.js";
2
+ /** Minimal TTF cmap format-4 + hmtx parser for WinAnsi widths (32–255). */
2
3
  function u16(buf, off) {
3
4
  return (buf[off] << 8) | buf[off + 1];
4
5
  }
@@ -67,35 +68,42 @@ function cmapGlyph(buf, cp) {
67
68
  }
68
69
  return 0;
69
70
  }
71
+ function glyphAdvance(buf, cp) {
72
+ const maxp = tableOffset(buf, "maxp");
73
+ const hhea = tableOffset(buf, "hhea");
74
+ const hmtx = tableOffset(buf, "hmtx");
75
+ const numGlyphs = maxp >= 0 ? u16(buf, maxp + 4) : 0;
76
+ const longMetrics = hhea >= 0 ? u16(buf, hhea + 34) : numGlyphs;
77
+ const gid = cmapGlyph(buf, cp);
78
+ if (gid < longMetrics && hmtx >= 0)
79
+ return u16(buf, hmtx + gid * 4);
80
+ if (longMetrics > 0 && hmtx >= 0)
81
+ return u16(buf, hmtx + (longMetrics - 1) * 4);
82
+ return 600;
83
+ }
84
+ function advance1000(buf, cp, unitsPerEm) {
85
+ return Math.round(glyphAdvance(buf, cp) * 1000 / unitsPerEm);
86
+ }
70
87
  const cache = new WeakMap();
71
88
  export function parseTtfMetrics(buf) {
72
89
  let m = cache.get(buf);
73
90
  if (m)
74
91
  return m;
75
- const maxp = tableOffset(buf, "maxp");
76
- const hhea = tableOffset(buf, "hhea");
77
- const hmtx = tableOffset(buf, "hmtx");
78
92
  const head = tableOffset(buf, "head");
79
- const numGlyphs = maxp >= 0 ? u16(buf, maxp + 4) : 0;
80
- const longMetrics = hhea >= 0 ? u16(buf, hhea + 34) : numGlyphs;
81
93
  const unitsPerEm = head >= 0 ? u16(buf, head + 18) : 1000;
82
94
  const widths = [];
83
- for (let cp = 32; cp <= 126; cp++) {
84
- const gid = cmapGlyph(buf, cp);
85
- let adv = 600;
86
- if (gid < longMetrics && hmtx >= 0)
87
- adv = u16(buf, hmtx + gid * 4);
88
- else if (longMetrics > 0 && hmtx >= 0)
89
- adv = u16(buf, hmtx + (longMetrics - 1) * 4);
90
- widths.push(adv);
95
+ for (let byte = PDF_WINANSI_FIRST; byte <= PDF_WINANSI_LAST; byte++) {
96
+ widths.push(glyphAdvance(buf, winAnsiToUnicode(byte)));
91
97
  }
92
98
  m = { widths, unitsPerEm };
93
99
  cache.set(buf, m);
94
100
  return m;
95
101
  }
96
102
  export function ttfCharWidth(buf, ch, sizePt) {
97
- const cp = ch.codePointAt(0) ?? 63;
98
- const idx = cp >= 32 && cp <= 126 ? cp - 32 : -1;
103
+ const byte = mapCharToPdfWinAnsi(ch);
104
+ if (byte === null)
105
+ return 0;
106
+ const idx = byte >= PDF_WINANSI_FIRST && byte <= PDF_WINANSI_LAST ? byte - PDF_WINANSI_FIRST : -1;
99
107
  const { widths, unitsPerEm } = parseTtfMetrics(buf);
100
108
  const adv = idx >= 0 ? widths[idx] : widths[11] ?? 600; // 'I' fallback
101
109
  return adv * sizePt / unitsPerEm;
@@ -106,6 +114,18 @@ export function ttfTextWidth(buf, text, sizePt) {
106
114
  w += ttfCharWidth(buf, ch, sizePt);
107
115
  return w;
108
116
  }
117
+ /** PDF CIDFont /W array for Identity-H (ASCII + Latin-1). */
118
+ export function pdfCidWArray(buf) {
119
+ const head = tableOffset(buf, "head");
120
+ const unitsPerEm = head >= 0 ? u16(buf, head + 18) : 1000;
121
+ const ascii = [];
122
+ for (let cp = 32; cp <= 126; cp++)
123
+ ascii.push(advance1000(buf, cp, unitsPerEm));
124
+ const latin = [];
125
+ for (let cp = 160; cp <= 255; cp++)
126
+ latin.push(advance1000(buf, cp, unitsPerEm));
127
+ return `32 [${ascii.join(" ")}] 160 [${latin.join(" ")}]`;
128
+ }
109
129
  /** PDF TrueType /Widths entries are in thousandths of the text space (not font units). */
110
130
  export function pdfWidths1000(buf) {
111
131
  const { widths, unitsPerEm } = parseTtfMetrics(buf);
@@ -1 +1 @@
1
- {"version":3,"file":"ttf-metrics.js","sourceRoot":"","sources":["../../src/fonts/ttf-metrics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ttf-metrics.js","sourceRoot":"","sources":["../../src/fonts/ttf-metrics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ /** ToUnicode CMap stream for embedded TrueType + WinAnsiEncoding (Chrome-safe). */
2
+ export declare function winAnsiToUnicodeCMapStream(): string;
3
+ //# sourceMappingURL=win-ansi-cmap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"win-ansi-cmap.d.ts","sourceRoot":"","sources":["../../src/fonts/win-ansi-cmap.ts"],"names":[],"mappings":"AAUA,mFAAmF;AACnF,wBAAgB,0BAA0B,IAAI,MAAM,CA+BnD"}
@@ -0,0 +1,37 @@
1
+ import { PDF_WINANSI_FIRST, PDF_WINANSI_LAST, winAnsiToUnicode } from "./win-ansi.js";
2
+ function hexByte(n) {
3
+ return n.toString(16).padStart(2, "0");
4
+ }
5
+ function hexUnicode(n) {
6
+ return n.toString(16).padStart(4, "0");
7
+ }
8
+ /** ToUnicode CMap stream for embedded TrueType + WinAnsiEncoding (Chrome-safe). */
9
+ export function winAnsiToUnicodeCMapStream() {
10
+ const bfchar = [];
11
+ for (let b = 128; b <= 159; b++) {
12
+ const u = winAnsiToUnicode(b);
13
+ if (u >= 32)
14
+ bfchar.push(`<${hexByte(b)}> <${hexUnicode(u)}>`);
15
+ }
16
+ const lines = [
17
+ "/CIDInit /ProcSet findresource begin",
18
+ "12 dict begin",
19
+ "begincmap",
20
+ "/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> def",
21
+ "/CMapName /Adobe-Identity-UCS def",
22
+ "/CMapType 2 def",
23
+ "1 begincodespacerange",
24
+ `<${hexByte(PDF_WINANSI_FIRST)}> <${hexByte(PDF_WINANSI_LAST)}>`,
25
+ "endcodespacerange",
26
+ "2 beginbfrange",
27
+ `<${hexByte(32)}> <${hexByte(126)}> <${hexUnicode(32)}>`,
28
+ `<${hexByte(160)}> <${hexByte(255)}> <${hexUnicode(160)}>`,
29
+ "endbfrange",
30
+ ];
31
+ if (bfchar.length) {
32
+ lines.push(`${bfchar.length} beginbfchar`, ...bfchar, "endbfchar");
33
+ }
34
+ lines.push("endcmap", "CMapName currentdict /CMap defineresource pop", "end", "end");
35
+ return lines.join("\n");
36
+ }
37
+ //# sourceMappingURL=win-ansi-cmap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"win-ansi-cmap.js","sourceRoot":"","sources":["../../src/fonts/win-ansi-cmap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtF,SAAS,OAAO,CAAC,CAAS;IACxB,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,UAAU,CAAC,CAAS;IAC3B,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACzC,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,0BAA0B;IACxC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,MAAM,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,EAAE;YAAE,MAAM,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,MAAM,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACjE,CAAC;IACD,MAAM,KAAK,GAAG;QACZ,sCAAsC;QACtC,eAAe;QACf,WAAW;QACX,0EAA0E;QAC1E,mCAAmC;QACnC,iBAAiB;QACjB,uBAAuB;QACvB,IAAI,OAAO,CAAC,iBAAiB,CAAC,MAAM,OAAO,CAAC,gBAAgB,CAAC,GAAG;QAChE,mBAAmB;QACnB,gBAAgB;QAChB,IAAI,OAAO,CAAC,EAAE,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG;QACxD,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,UAAU,CAAC,GAAG,CAAC,GAAG;QAC1D,YAAY;KACb,CAAC;IACF,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,cAAc,EAAE,GAAG,MAAM,EAAE,WAAW,CAAC,CAAC;IACrE,CAAC;IACD,KAAK,CAAC,IAAI,CACR,SAAS,EACT,+CAA+C,EAC/C,KAAK,EACL,KAAK,CACN,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,15 @@
1
+ export declare const PDF_WINANSI_FIRST = 32;
2
+ export declare const PDF_WINANSI_LAST = 255;
3
+ /** WinAnsi byte → Unicode code point for TTF cmap lookup. */
4
+ export declare function winAnsiToUnicode(byte: number): number;
5
+ /** Unicode code point → WinAnsi byte (0x3f when unmapped). */
6
+ export declare function unicodeToWinAnsi(cp: number): number;
7
+ /** Map one code point for PDF (null = omit from output stream). */
8
+ export declare function mapUnicodeToPdfWinAnsi(cp: number): number | null;
9
+ /** Map a string character to WinAnsi (null = omit). NFC-normalized. */
10
+ export declare function mapCharToPdfWinAnsi(ch: string): number | null;
11
+ /** Map a string character to its WinAnsi byte (NFC-normalized). Strips → space width via 0x20 skip handled in metrics. */
12
+ export declare function charToWinAnsi(ch: string): number;
13
+ /** Characters that would render as "?" in PDF (after fallbacks and strips). */
14
+ export declare function findUnmappedPdfChars(text: string): string[];
15
+ //# sourceMappingURL=win-ansi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"win-ansi.d.ts","sourceRoot":"","sources":["../../src/fonts/win-ansi.ts"],"names":[],"mappings":"AA2CA,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAEpC,6DAA6D;AAC7D,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKrD;AAED,8DAA8D;AAC9D,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAMnD;AAED,mEAAmE;AACnE,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMhE;AAED,uEAAuE;AACvE,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG7D;AAED,0HAA0H;AAC1H,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,+EAA+E;AAC/E,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAS3D"}
@@ -0,0 +1,96 @@
1
+ /** PDF WinAnsiEncoding (ISO 32000 Table D.2): bytes 128–159 → Unicode. */
2
+ const WINANSI_HIGH = [
3
+ 0x20ac, null, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021,
4
+ 0x02c6, 0x2030, 0x0160, 0x2039, 0x0152, null, 0x017d, null,
5
+ null, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014,
6
+ 0x02dc, 0x2122, 0x0161, 0x203a, 0x0153, null, 0x017e, 0x0178,
7
+ ];
8
+ /** Unicode → WinAnsi for chars outside ASCII (bullets, dashes, Latin-1, etc.). */
9
+ const UNICODE_TO_WINANSI = {
10
+ 0x20ac: 0x80, 0x201a: 0x82, 0x0192: 0x83, 0x201e: 0x84, 0x2026: 0x85,
11
+ 0x2020: 0x86, 0x2021: 0x87, 0x02c6: 0x88, 0x2030: 0x89, 0x0160: 0x8a,
12
+ 0x2039: 0x8b, 0x0152: 0x8c, 0x017d: 0x8e, 0x2018: 0x91, 0x2019: 0x92,
13
+ 0x201c: 0x93, 0x201d: 0x94, 0x2022: 0x95, 0x2013: 0x96, 0x2014: 0x97,
14
+ 0x02dc: 0x98, 0x2122: 0x99, 0x0161: 0x9a, 0x203a: 0x9b, 0x0153: 0x9c,
15
+ 0x017e: 0x9e, 0x0178: 0x9f, 0x00a0: 0x20,
16
+ };
17
+ /** Invisible / bidi controls — omit from PDF text (not replacement chars). */
18
+ const PDF_STRIP = new Set([
19
+ 0x000b, 0x000c, 0x000d, 0x00ad, 0x034f, 0x061c, 0x115f, 0x1160, 0x17b4, 0x17b5,
20
+ 0x180e, 0x200b, 0x200c, 0x200d, 0x200e, 0x200f, 0x202a, 0x202b, 0x202c, 0x202d,
21
+ 0x202e, 0x2060, 0x2061, 0x2062, 0x2063, 0x2064, 0xfeff, 0xfff9, 0xfffa, 0xfffb,
22
+ ]);
23
+ /** Common Unicode punctuation → nearest WinAnsi / ASCII equivalent. */
24
+ const PDF_FALLBACK = {
25
+ 0x0009: 0x20,
26
+ 0x2010: 0x2d, 0x2011: 0x2d, 0x2012: 0x96, 0x2015: 0x97, 0x2017: 0x5f,
27
+ 0x2032: 0x27, 0x2033: 0x22, 0x203d: 0x3f, 0x2044: 0x2f,
28
+ 0x2047: 0x3f, 0x2048: 0x3f, 0x2049: 0x3f,
29
+ 0x2212: 0x2d,
30
+ 0x03bc: 0xb5,
31
+ 0x20a1: 0x24, 0x20aa: 0x24, 0x20b1: 0x24, 0x20b9: 0x24,
32
+ 0x2116: 0x4e, 0x2120: 0x53,
33
+ 0xfb00: 0x66, 0xfb01: 0x66, 0xfb02: 0x66, 0xfb03: 0x66, 0xfb04: 0x66, 0xfb05: 0x73, 0xfb06: 0x73,
34
+ };
35
+ for (let i = 0; i < WINANSI_HIGH.length; i++) {
36
+ const cp = WINANSI_HIGH[i];
37
+ if (cp != null && UNICODE_TO_WINANSI[cp] === undefined)
38
+ UNICODE_TO_WINANSI[cp] = 128 + i;
39
+ }
40
+ export const PDF_WINANSI_FIRST = 32;
41
+ export const PDF_WINANSI_LAST = 255;
42
+ /** WinAnsi byte → Unicode code point for TTF cmap lookup. */
43
+ export function winAnsiToUnicode(byte) {
44
+ if (byte >= 32 && byte <= 126)
45
+ return byte;
46
+ if (byte >= 128 && byte <= 159)
47
+ return WINANSI_HIGH[byte - 128] ?? 0x20;
48
+ if (byte >= 160 && byte <= 255)
49
+ return byte;
50
+ return 0x20;
51
+ }
52
+ /** Unicode code point → WinAnsi byte (0x3f when unmapped). */
53
+ export function unicodeToWinAnsi(cp) {
54
+ if (cp >= 32 && cp <= 126)
55
+ return cp;
56
+ const mapped = UNICODE_TO_WINANSI[cp];
57
+ if (mapped !== undefined)
58
+ return mapped;
59
+ if (cp >= 160 && cp <= 255)
60
+ return cp;
61
+ return 0x3f;
62
+ }
63
+ /** Map one code point for PDF (null = omit from output stream). */
64
+ export function mapUnicodeToPdfWinAnsi(cp) {
65
+ if (PDF_STRIP.has(cp))
66
+ return null;
67
+ if (cp >= 0x0300 && cp <= 0x036f)
68
+ return null;
69
+ const fb = PDF_FALLBACK[cp];
70
+ if (fb !== undefined)
71
+ return fb;
72
+ return unicodeToWinAnsi(cp);
73
+ }
74
+ /** Map a string character to WinAnsi (null = omit). NFC-normalized. */
75
+ export function mapCharToPdfWinAnsi(ch) {
76
+ const cp = ch.normalize("NFC").codePointAt(0) ?? 0x3f;
77
+ return mapUnicodeToPdfWinAnsi(cp);
78
+ }
79
+ /** Map a string character to its WinAnsi byte (NFC-normalized). Strips → space width via 0x20 skip handled in metrics. */
80
+ export function charToWinAnsi(ch) {
81
+ return mapCharToPdfWinAnsi(ch) ?? 0x20;
82
+ }
83
+ /** Characters that would render as "?" in PDF (after fallbacks and strips). */
84
+ export function findUnmappedPdfChars(text) {
85
+ const out = [];
86
+ for (const ch of text.normalize("NFC")) {
87
+ const cp = ch.codePointAt(0) ?? 0;
88
+ const b = mapUnicodeToPdfWinAnsi(cp);
89
+ if (b === null)
90
+ continue;
91
+ if (b === 0x3f && ch !== "?")
92
+ out.push(ch);
93
+ }
94
+ return [...new Set(out)];
95
+ }
96
+ //# sourceMappingURL=win-ansi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"win-ansi.js","sourceRoot":"","sources":["../../src/fonts/win-ansi.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,MAAM,YAAY,GAAsB;IACtC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAC5D,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI;IAC1D,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAC5D,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM;CAC7D,CAAC;AAEF,kFAAkF;AAClF,MAAM,kBAAkB,GAA2B;IACjD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI;IACpE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI;IACpE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI;IACpE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI;IACpE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI;IACpE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI;CACzC,CAAC;AAEF,8EAA8E;AAC9E,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC;IACxB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAC9E,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAC9E,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAC/E,CAAC,CAAC;AAEH,uEAAuE;AACvE,MAAM,YAAY,GAA2B;IAC3C,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI;IACpE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI;IACtD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI;IACxC,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI;IACtD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI;IAC1B,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI;CACjG,CAAC;AAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;IAC7C,MAAM,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAI,EAAE,IAAI,IAAI,IAAI,kBAAkB,CAAC,EAAE,CAAC,KAAK,SAAS;QAAE,kBAAkB,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;AAC3F,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AACpC,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAEpC,6DAA6D;AAC7D,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,GAAG;QAAE,OAAO,IAAI,CAAC;IAC3C,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG;QAAE,OAAO,YAAY,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC;IACxE,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG;QAAE,OAAO,IAAI,CAAC;IAC5C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,gBAAgB,CAAC,EAAU;IACzC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG;QAAE,OAAO,EAAE,CAAC;IACrC,MAAM,MAAM,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAC;IACtC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACxC,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG;QAAE,OAAO,EAAE,CAAC;IACtC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,sBAAsB,CAAC,EAAU;IAC/C,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM;QAAE,OAAO,IAAI,CAAC;IAC9C,MAAM,EAAE,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;IAC5B,IAAI,EAAE,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IAChC,OAAO,gBAAgB,CAAC,EAAE,CAAC,CAAC;AAC9B,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,mBAAmB,CAAC,EAAU;IAC5C,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IACtD,OAAO,sBAAsB,CAAC,EAAE,CAAC,CAAC;AACpC,CAAC;AAED,0HAA0H;AAC1H,MAAM,UAAU,aAAa,CAAC,EAAU;IACtC,OAAO,mBAAmB,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;AACzC,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACvC,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,CAAC,GAAG,sBAAsB,CAAC,EAAE,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,IAAI;YAAE,SAAS;QACzB,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE,KAAK,GAAG;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "velo-text",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "Editor documental portable con variables, imágenes y exportación PDF/ODT/DOCX — cero dependencias runtime (beta)",
5
5
  "type": "module",
6
6
  "license": "MIT",
package/skill/editor.md CHANGED
@@ -34,7 +34,7 @@ SSR/Astro: `renderDocumentToHtml` / `renderBlocksToHtml` at build; hydrate edito
34
34
 
35
35
  Document fonts: `DOCUMENT_FONTS` (`Velo Sans`, `Velo Serif`, `Velo Mono`, `Velo Display`). `setFontFamily` writes those names; PDF embeds the same TTF.
36
36
 
37
- Toolbar buttons: `preventDefault` on `mousedown` (keep caret, including in cells).
37
+ Toolbar buttons: `preventDefault` on `mousedown` (keep caret, including in cells). Toolbar and table/column bars wrap; size via `--pde-icon-size` / `--pde-control-size`.
38
38
 
39
39
  ## DOM / input
40
40
 
package/skill/themes.md CHANGED
@@ -7,6 +7,8 @@ Tokens only — no color literals outside theme CSS.
7
7
  --pde-color-bg: #ffffff;
8
8
  --pde-color-primary: /* override */;
9
9
  --pde-icon-color: currentColor;
10
+ --pde-icon-size: 16px;
11
+ --pde-control-size: 28px;
10
12
  }
11
13
  ```
12
14
 
@@ -2,6 +2,12 @@
2
2
  @import "./editor-overlays.css";
3
3
  @import "./editor-columns.css";
4
4
 
5
+ /* Chrome metrics — override on the host (`data-pde-theme` / `.pde-host`). */
6
+ [data-pde-theme] {
7
+ --pde-icon-size: 16px;
8
+ --pde-control-size: 28px;
9
+ }
10
+
5
11
  [data-pde-theme="light-neutral"] {
6
12
  --pde-color-bg: #ffffff;
7
13
  --pde-color-surface: #f7f8fa;
@@ -120,6 +126,8 @@
120
126
  display: inline-block;
121
127
  vertical-align: middle;
122
128
  flex-shrink: 0;
129
+ width: var(--pde-icon-size, 16px);
130
+ height: var(--pde-icon-size, 16px);
123
131
  color: var(--pde-icon-color, currentColor);
124
132
  }
125
133
  .pde-toolbar .pde-icon {
@@ -111,13 +111,13 @@
111
111
  position: absolute;
112
112
  z-index: 28;
113
113
  display: flex;
114
- flex-wrap: nowrap;
114
+ flex-wrap: wrap;
115
115
  align-items: center;
116
116
  gap: 2px;
117
117
  padding: 4px;
118
118
  width: max-content;
119
- max-width: 100%;
120
- overflow-x: auto;
119
+ max-width: min(100%, 28rem);
120
+ overflow: visible;
121
121
  border: 1px solid var(--pde-color-border);
122
122
  background: var(--pde-color-surface);
123
123
  border-radius: var(--pde-radius-md);
@@ -126,8 +126,8 @@
126
126
  font-family: var(--pde-font-ui);
127
127
  }
128
128
  .pde-table-bar button {
129
- min-width: 28px;
130
- height: 28px;
129
+ min-width: var(--pde-control-size, 28px);
130
+ height: var(--pde-control-size, 28px);
131
131
  display: inline-flex;
132
132
  align-items: center;
133
133
  justify-content: center;
@@ -158,6 +158,7 @@
158
158
  padding: 8px;
159
159
  margin: 0 auto 16px;
160
160
  max-width: 860px;
161
+ overflow: visible;
161
162
  background: var(--pde-color-surface);
162
163
  border: 1px solid var(--pde-color-border);
163
164
  border-radius: var(--pde-radius-md);
@@ -165,6 +166,8 @@
165
166
  }
166
167
  .pde-toolbar-group {
167
168
  display: flex;
169
+ flex-wrap: wrap;
170
+ align-items: center;
168
171
  gap: 2px;
169
172
  padding: 0 6px;
170
173
  border-right: 1px solid var(--pde-color-border);
@@ -174,8 +177,8 @@
174
177
  display: inline-flex;
175
178
  align-items: center;
176
179
  justify-content: center;
177
- width: 32px;
178
- height: 32px;
180
+ width: var(--pde-control-size, 28px);
181
+ height: var(--pde-control-size, 28px);
179
182
  border: none;
180
183
  border-radius: var(--pde-radius-sm);
181
184
  background: none;
@@ -280,8 +283,8 @@
280
283
  max-width: min(100%, 360px);
281
284
  }
282
285
  .pde-sel-bubble button {
283
- min-width: 28px;
284
- height: 28px;
286
+ min-width: var(--pde-control-size, 28px);
287
+ height: var(--pde-control-size, 28px);
285
288
  display: inline-flex;
286
289
  align-items: center;
287
290
  justify-content: center;