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.
- package/CHANGELOG.md +18 -0
- package/README.md +6 -6
- package/dist/assets/icons/index.d.ts +1 -1
- package/dist/assets/icons/index.d.ts.map +1 -1
- package/dist/assets/icons/index.js +3 -1
- package/dist/assets/icons/index.js.map +1 -1
- package/dist/export/layout/text.d.ts +1 -2
- package/dist/export/layout/text.d.ts.map +1 -1
- package/dist/export/layout/text.js +3 -17
- package/dist/export/layout/text.js.map +1 -1
- package/dist/export/pdf/assemble.d.ts.map +1 -1
- package/dist/export/pdf/assemble.js +3 -2
- package/dist/export/pdf/assemble.js.map +1 -1
- package/dist/export/pdf/diagnostics.d.ts.map +1 -1
- package/dist/export/pdf/diagnostics.js +29 -14
- package/dist/export/pdf/diagnostics.js.map +1 -1
- package/dist/export/pdf/equation.d.ts +1 -3
- package/dist/export/pdf/equation.d.ts.map +1 -1
- package/dist/export/pdf/equation.js +15 -10
- package/dist/export/pdf/equation.js.map +1 -1
- package/dist/export/pdf/latin1.d.ts +3 -0
- package/dist/export/pdf/latin1.d.ts.map +1 -0
- package/dist/export/pdf/latin1.js +8 -0
- package/dist/export/pdf/latin1.js.map +1 -0
- package/dist/export/pdf/pdf-model.d.ts +3 -0
- package/dist/export/pdf/pdf-model.d.ts.map +1 -1
- package/dist/export/pdf/pdf-model.js +33 -12
- package/dist/export/pdf/pdf-model.js.map +1 -1
- package/dist/export/pdf/ttf-embed.d.ts.map +1 -1
- package/dist/export/pdf/ttf-embed.js +7 -3
- package/dist/export/pdf/ttf-embed.js.map +1 -1
- package/dist/fonts/ttf-metrics.d.ts +3 -2
- package/dist/fonts/ttf-metrics.d.ts.map +1 -1
- package/dist/fonts/ttf-metrics.js +36 -16
- package/dist/fonts/ttf-metrics.js.map +1 -1
- package/dist/fonts/win-ansi-cmap.d.ts +3 -0
- package/dist/fonts/win-ansi-cmap.d.ts.map +1 -0
- package/dist/fonts/win-ansi-cmap.js +37 -0
- package/dist/fonts/win-ansi-cmap.js.map +1 -0
- package/dist/fonts/win-ansi.d.ts +15 -0
- package/dist/fonts/win-ansi.d.ts.map +1 -0
- package/dist/fonts/win-ansi.js +96 -0
- package/dist/fonts/win-ansi.js.map +1 -0
- package/package.json +1 -1
- package/skill/editor.md +1 -1
- package/skill/themes.md +2 -0
- package/themes/components.css +8 -0
- 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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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,
|
|
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 ??
|
|
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":"AAAA;;;;GAIG;AAqEH,MAAM,KAAK,GAA6B;IACtC,IAAI,EAAE,0EAA0E;IAChF,MAAM,EAAE,kHAAkH;IAC1H,SAAS,EAAE,2EAA2E;IACtF,aAAa,EAAE,8GAA8G;IAC7H,IAAI,EAAE,yEAAyE;IAC/E,QAAQ,EAAE,oFAAoF;IAC9F,QAAQ,EAAE,6GAA6G;IACvH,QAAQ,EAAE,kLAAkL;IAC5L,aAAa,EAAE,wOAAwO;IACvP,WAAW,EAAE,sMAAsM;IACnN,KAAK,EAAE,oSAAoS;IAC3S,IAAI,EAAE,iJAAiJ;IACvJ,KAAK,EAAE,kIAAkI;IACzI,SAAS,EAAE,wMAAwM;IACnN,KAAK,EAAE,8GAA8G;IACrH,QAAQ,EAAE,oLAAoL;IAC9L,QAAQ,EAAE,wHAAwH;IAClI,SAAS,EAAE,kHAAkH;IAC7H,WAAW,EAAE,kHAAkH;IAC/H,UAAU,EAAE,kHAAkH;IAC9H,YAAY,EAAE,kHAAkH;IAChI,KAAK,EAAE,+FAA+F;IACtG,KAAK,EAAE,8FAA8F;IACrG,WAAW,EAAE,8GAA8G;IAC3H,KAAK,EAAE,kcAAkc;IACzc,UAAU,EAAE,2FAA2F;IACvG,YAAY,EAAE,uLAAuL;IACrM,IAAI,EAAE,0CAA0C;IAChD,KAAK,EAAE,kMAAkM;IACzM,WAAW,EAAE,0BAA0B;IACvC,WAAW,EAAE,4BAA4B;IACzC,YAAY,EAAE,2BAA2B;IACzC,OAAO,EAAE,kcAAkc;IAC3c,QAAQ,EAAE,kIAAkI;IAC5I,OAAO,EAAE,qVAAqV;IAC9V,IAAI,EAAE,6HAA6H;IACnI,IAAI,EAAE,4NAA4N;IAClO,QAAQ,EAAE,0FAA0F;IACpG,KAAK,EAAE,0FAA0F;IACjG,aAAa,EAAE,sIAAsI;IACrJ,cAAc,EAAE,oIAAoI;IACpJ,cAAc,EAAE,sIAAsI;IACtJ,cAAc,EAAE,oIAAoI;IACpJ,SAAS,EAAE,2GAA2G;IACtH,SAAS,EAAE,2GAA2G;IACtH,WAAW,EAAE,4JAA4J;IACzK,UAAU,EAAE,4JAA4J;IACxK,SAAS,EAAE,uGAAuG;IAClH,QAAQ,EAAE,sIAAsI;IAChJ,WAAW,EAAE,wIAAwI;IACrJ,WAAW,EAAE,sIAAsI;IACnJ,MAAM,EAAE,2IAA2I;IACnJ,QAAQ,EAAE,uLAAuL;IACjM,SAAS,EAAE,sEAAsE;IACjF,KAAK,EAAE,yCAAyC;IAChD,cAAc,EAAE,8FAA8F;IAC9G,KAAK,EAAE,wCAAwC;CAChD,CAAC;AAEF,MAAM,OAAO,GAAG,WAAW,CAAC;AAE5B;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,IAAc,EAAE,OAAoB,EAAE;IAC/D,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,cAAc,CAAC;IAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,CAAC,UAAU,EAAE,aAAa,IAAI,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1F,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3E,OAAO,kDAAkD,IAAI,aAAa,IAAI,cAAc,OAAO,6BAA6B,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,YAAY,KAAK,kBAAkB,UAAU,CAAC,KAAK,CAAC,qDAAqD,WAAW,oDAAoD,KAAK,GAAG,KAAK,QAAQ,CAAC;AAC7V,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAoB,EAAE;IAChD,MAAM,GAAG,GAAG,EAA8B,CAAC;IAC3C,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAe;QAAE,GAAG,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACxF,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAe,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG
|
|
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
|
-
*
|
|
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;
|
|
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
|
-
*
|
|
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
|
-
|
|
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":"AAAA;;;;;GAKG;
|
|
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;
|
|
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 =
|
|
6
|
+
const enc = pdfLatin1;
|
|
6
7
|
function u8(s) {
|
|
7
|
-
return enc
|
|
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":"AAEA,OAAO,EAAE,SAAS,EAAgB,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,GAAG,GAAG,
|
|
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;
|
|
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"
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
|
|
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-
|
|
28
|
-
message: `
|
|
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
|
-
|
|
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":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAS1C,SAAS,QAAQ,CAAC,KAAa,EAAE,IAAY,EAAE,GAAc;IAC3D,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACjC,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjD,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACvB,GAAG,CAAC,IAAI,CAAC;YACP,IAAI,EAAE,oBAAoB;YAC1B,OAAO,EAAE,sCAAsC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;YACnE,QAAQ,EAAE,SAAS;YACnB,IAAI;SACL,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,KAA+B,EAAE,IAAY,EAAE,GAAc,EAAE,SAAyB;
|
|
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;
|
|
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
|
|
292
|
-
if (
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
out +=
|
|
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 += `\\${
|
|
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 @@
|
|
|
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 @@
|
|
|
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":"
|
|
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
|
-
|
|
2
|
-
|
|
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
|
|
9
|
-
|
|
10
|
-
|
|
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
|
-
|
|
14
|
-
|
|
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":"
|
|
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;
|
|
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
|
|
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(`${
|
|
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 +=
|
|
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,
|
|
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–
|
|
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":"
|
|
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
|
-
|
|
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
|
|
84
|
-
|
|
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
|
|
98
|
-
|
|
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 @@
|
|
|
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":"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"}
|
package/package.json
CHANGED
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
package/themes/components.css
CHANGED
|
@@ -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:
|
|
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
|
|
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:
|
|
178
|
-
height:
|
|
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;
|