@forevka/wordcanvas 0.7.1 → 0.7.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 (59) hide show
  1. package/dist-lib/assets/{worker-D8rUOKfg.js → worker-4HYrkNrG.js} +10873 -10730
  2. package/dist-lib/assets/worker-CJpwUzKh.js +2403 -0
  3. package/dist-lib/blockFactory-B_CLnkUh.js +106 -0
  4. package/dist-lib/browser-p_rkUcqE.js +1339 -0
  5. package/dist-lib/builder.js +14 -13
  6. package/dist-lib/editorApp-mTD0YNv-.js +9863 -0
  7. package/dist-lib/export.js +4507 -4456
  8. package/dist-lib/generate-toc.js +5 -5
  9. package/dist-lib/import.js +2 -2
  10. package/dist-lib/measure.js +2 -2
  11. package/dist-lib/{measureHost-CMiJKdlk.js → measureHost-B2aKX7lF.js} +1 -1
  12. package/dist-lib/metrics-BUMIC9Mv.js +164 -0
  13. package/dist-lib/pipeline-DD0nxAYM.js +1850 -0
  14. package/dist-lib/recalc-docx.js +2 -2
  15. package/dist-lib/recalcToc-CFCGCgij.js +3985 -0
  16. package/dist-lib/styleProps-DhqDEfvc.js +149 -0
  17. package/dist-lib/stylesheet-B6oczA-L.js +141 -0
  18. package/dist-lib/{toc-B6VpkJge.js → toc-Dj57zdz-.js} +5 -5
  19. package/dist-lib/{webmcp-6WxRNKCc.js → webmcp-CXghUon_.js} +2 -2
  20. package/dist-lib/{wordcanvas-CFqpDK0k.js → wordcanvas-D5DI9ZR1.js} +49 -23
  21. package/dist-lib/wordcanvas.js +1 -1
  22. package/dist-node/{chunk-22JHAERT.js → chunk-57L5XMCL.js} +235 -39
  23. package/dist-node/chunk-57L5XMCL.js.map +7 -0
  24. package/dist-node/{chunk-4PDVRJF6.js → chunk-EMY2P524.js} +32 -2
  25. package/dist-node/chunk-EMY2P524.js.map +7 -0
  26. package/dist-node/{chunk-6AJJMHKY.js → chunk-KJV7GJ3H.js} +1 -1
  27. package/dist-node/chunk-KJV7GJ3H.js.map +7 -0
  28. package/dist-node/{chunk-CDN6WU2P.js → chunk-PIMVQULL.js} +7 -1
  29. package/dist-node/chunk-PIMVQULL.js.map +7 -0
  30. package/dist-node/{chunk-BRAPV465.js → chunk-SA26UVIJ.js} +2 -2
  31. package/dist-node/{chunk-RNB336F3.js → chunk-T3253N22.js} +92 -14
  32. package/dist-node/{chunk-RNB336F3.js.map → chunk-T3253N22.js.map} +2 -2
  33. package/dist-node/{chunk-4ICCHZX4.js → chunk-U27EBKBG.js} +37 -1
  34. package/dist-node/chunk-U27EBKBG.js.map +7 -0
  35. package/dist-node/{engine-5FGDJD2H.js → engine-5F7DUU4W.js} +4 -4
  36. package/dist-node/export.js +89 -24
  37. package/dist-node/export.js.map +2 -2
  38. package/dist-node/generate-toc.js +6 -6
  39. package/dist-node/import.js +3 -3
  40. package/dist-node/measure.js +2 -2
  41. package/dist-node/recalc-docx.js +4 -4
  42. package/package.json +1 -1
  43. package/types/model.d.ts +46 -0
  44. package/types/wordcanvas.d.ts +212 -157
  45. package/dist-lib/assets/worker-wXuuyshQ.js +0 -2258
  46. package/dist-lib/blockFactory-CUI4Rqiq.js +0 -186
  47. package/dist-lib/browser-DkKxreJM.js +0 -1305
  48. package/dist-lib/editorApp-DLXMmtu5.js +0 -8023
  49. package/dist-lib/metrics-CkAo4zh8.js +0 -143
  50. package/dist-lib/pipeline-CbxmCE84.js +0 -1705
  51. package/dist-lib/recalcToc-g1hFKSNs.js +0 -3935
  52. package/dist-lib/styleProps-Db5pEkG8.js +0 -127
  53. package/dist-node/chunk-22JHAERT.js.map +0 -7
  54. package/dist-node/chunk-4ICCHZX4.js.map +0 -7
  55. package/dist-node/chunk-4PDVRJF6.js.map +0 -7
  56. package/dist-node/chunk-6AJJMHKY.js.map +0 -7
  57. package/dist-node/chunk-CDN6WU2P.js.map +0 -7
  58. /package/dist-node/{chunk-BRAPV465.js.map → chunk-SA26UVIJ.js.map} +0 -0
  59. /package/dist-node/{engine-5FGDJD2H.js.map → engine-5F7DUU4W.js.map} +0 -0
@@ -1,9 +1,9 @@
1
- import { u as G, a as C, t as H, s as R, z as M } from "./browser-DkKxreJM.js";
2
- import { p as K, d as q, i as J, t as Q } from "./toc-B6VpkJge.js";
1
+ import { u as G, a as C, t as H, s as R, z as M } from "./browser-p_rkUcqE.js";
2
+ import { p as K, d as q, i as J, t as Q } from "./toc-Dj57zdz-.js";
3
3
  import { f as V } from "./contentTypes-f7VddqoF.js";
4
- import { r as N } from "./pipeline-CbxmCE84.js";
5
- import { p as Y, c as Z } from "./recalcToc-g1hFKSNs.js";
6
- import { e as d, r as tt, b as et, t as T, a as nt } from "./styleProps-Db5pEkG8.js";
4
+ import { r as N } from "./pipeline-DD0nxAYM.js";
5
+ import { p as Y, c as Z } from "./recalcToc-CFCGCgij.js";
6
+ import { e as d, r as tt, b as et, t as T, a as nt } from "./styleProps-DhqDEfvc.js";
7
7
  const b = (t) => d("w:r", void 0, d("w:fldChar", { "w:fldCharType": t })), j = (t) => d("w:r", void 0, d("w:instrText", { "xml:space": "preserve" }, nt(t)));
8
8
  function st(t, a, r) {
9
9
  return b("begin") + j(` PAGEREF ${t} \\h `) + b("separate") + d("w:r", void 0, r + (a ? T(a) : "")) + b("end");
@@ -1,6 +1,6 @@
1
- import "./toc-B6VpkJge.js";
1
+ import "./toc-Dj57zdz-.js";
2
2
  import "./contentTypes-f7VddqoF.js";
3
- import { r as t } from "./pipeline-CbxmCE84.js";
3
+ import { r as t } from "./pipeline-DD0nxAYM.js";
4
4
  export {
5
5
  t as runImport
6
6
  };
@@ -1,6 +1,6 @@
1
1
  import "./TimesNewRoman-Regular-DtG34YRm.js";
2
- import { i as s } from "./measureHost-CMiJKdlk.js";
3
- import "./metrics-CkAo4zh8.js";
2
+ import { i as s } from "./measureHost-B2aKX7lF.js";
3
+ import "./metrics-BUMIC9Mv.js";
4
4
  export {
5
5
  s as installMeasureHost
6
6
  };
@@ -1,5 +1,5 @@
1
1
  import { _ as Fn, a as Bn, b as Dn, c as Ln, d as Mn, e as Rn, f as Nn, g as Un, h as Gn, i as Vn, j as zn, k as qn, l as Wn, m as Hn, n as Xn, o as $n, p as jn, q as Zn, r as Yn, s as Kn, t as Jn, u as _n, v as Qn, w as ei } from "./TimesNewRoman-Regular-DtG34YRm.js";
2
- import { i as ti, j as ri, k as si } from "./metrics-CkAo4zh8.js";
2
+ import { i as ti, j as ri, k as si } from "./metrics-BUMIC9Mv.js";
3
3
  import { B as C0 } from "./index-6mKfgpcs.js";
4
4
  var Z1 = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
5
5
  function E0(i) {
@@ -0,0 +1,164 @@
1
+ const S = ["Carlito", "Caladea", "Gelasio", "Arimo", "TimesNewRoman", "Cousine"], b = "Arimo", M = {
2
+ // metric clones of common Office/Windows fonts
3
+ calibri: "Carlito",
4
+ cambria: "Caladea",
5
+ georgia: "Gelasio",
6
+ arial: "Arimo",
7
+ helvetica: "Arimo",
8
+ "helvetica neue": "Arimo",
9
+ "times new roman": "TimesNewRoman",
10
+ times: "TimesNewRoman",
11
+ "courier new": "Cousine",
12
+ courier: "Cousine",
13
+ // reasonable substitutes for fonts we don't ship
14
+ verdana: "Arimo",
15
+ tahoma: "Arimo",
16
+ "segoe ui": "Arimo",
17
+ "trebuchet ms": "Arimo",
18
+ consolas: "Cousine",
19
+ monaco: "Cousine",
20
+ "lucida console": "Cousine",
21
+ garamond: "TimesNewRoman",
22
+ "book antiqua": "Caladea",
23
+ palatino: "Caladea",
24
+ // generic CSS families
25
+ serif: "TimesNewRoman",
26
+ "sans-serif": "Arimo",
27
+ sans: "Arimo",
28
+ monospace: "Cousine",
29
+ mono: "Cousine",
30
+ // identity (already a clone)
31
+ carlito: "Carlito",
32
+ caladea: "Caladea",
33
+ gelasio: "Gelasio",
34
+ arimo: "Arimo",
35
+ timesnewroman: "TimesNewRoman",
36
+ cousine: "Cousine"
37
+ }, P = {
38
+ Carlito: { ascent: 0.9375, descent: 0.25 },
39
+ Caladea: { ascent: 0.9375, descent: 0.25 },
40
+ Gelasio: { ascent: 0.9375, descent: 0.3125 },
41
+ Arimo: { ascent: 0.875, descent: 0.1875 },
42
+ TimesNewRoman: { ascent: 0.875, descent: 0.1875 },
43
+ Cousine: { ascent: 0.625, descent: 0.1875 }
44
+ };
45
+ function N(t) {
46
+ const e = t.trim().toLowerCase().replace(/^["']|["']$/g, ""), a = M[e];
47
+ return a ? { clone: a, substituted: !1 } : { clone: b, substituted: !0 };
48
+ }
49
+ const I = (t) => (t.split(",")[0] ?? "").trim(), v = ["Regular", "Bold", "Italic", "BoldItalic"], $ = S.flatMap(
50
+ (t) => v.map((e) => `${t}-${e}.ttf`)
51
+ ), H = [
52
+ { value: "Calibri, sans-serif", label: "Calibri (Carlito)" },
53
+ { value: "Cambria, serif", label: "Cambria (Caladea)" },
54
+ { value: "Georgia, serif", label: "Georgia (Gelasio)" },
55
+ { value: "Arial, sans-serif", label: "Arial (Arimo)" },
56
+ { value: "Times New Roman, serif", label: "Times New Roman" },
57
+ { value: "Verdana, sans-serif", label: "Verdana (Arimo)" },
58
+ { value: "Consolas, monospace", label: "Consolas (Cousine)" },
59
+ { value: "Courier New, monospace", label: "Courier New (Cousine)" }
60
+ ], K = "#c0c4c9", g = "#0b57d0", w = "#202124", X = "#80868b", y = "#7a8aa0", W = "#9aa0a6", j = "#f1f3f4", F = /* @__PURE__ */ new Set([
61
+ "#0563c1",
62
+ "#0000ff",
63
+ "#0000ee",
64
+ "#0b57d0",
65
+ "#0066cc",
66
+ "#1155cc"
67
+ ]), q = (t) => F.has(t.toLowerCase()) ? w : t, B = 0.65, D = -0.38, k = 0.16;
68
+ function V(t, e) {
69
+ return t === "super" ? D * e : t === "sub" ? k * e : 0;
70
+ }
71
+ const Y = (t) => Math.max(1, t / 14), J = 1.5, Q = (t) => -0.28 * t;
72
+ function Z(t) {
73
+ const e = t.link !== void 0 && t.link.startsWith("#"), a = t.link !== void 0 && !e;
74
+ let o = t.color;
75
+ return a ? o = g : e && F.has(t.color.toLowerCase()) && (o = w), {
76
+ color: o,
77
+ underline: a || !!t.underline && !e,
78
+ strike: !!t.strikethrough,
79
+ externalLink: a
80
+ };
81
+ }
82
+ function tt(t) {
83
+ return t === "dot" ? [1, 3] : t === "dash" ? [4, 3] : [];
84
+ }
85
+ const et = (t) => Math.max(1, t / 14), at = [1, 4], ot = 8, st = 1 / 3, nt = "#c0c4c9", G = 24;
86
+ function it(t, e, a, o) {
87
+ const i = t.offsetFrom === "text", n = (s) => s?.spacePx ?? G, u = i ? o.left - n(t.left) : n(t.left), m = i ? e - o.right + n(t.right) : e - n(t.right), C = i ? o.top - n(t.top) : n(t.top), d = i ? a - o.bottom + n(t.bottom) : a - n(t.bottom), h = [], f = (s, O, l, R, T) => {
88
+ if (!s || s.style === "none") return;
89
+ const c = s.style === "thick" ? Math.max(2, s.widthPx) : Math.max(0.5, s.widthPx), _ = s.color === "auto" ? "#000000" : s.color, p = s.style === "dashed" ? [c * 3, c * 2] : s.style === "dotted" ? [c, c * 1.5] : [];
90
+ if (h.push({ x1: O, y1: l, x2: R, y2: T, widthPx: c, color: _, dash: p }), s.style === "double") {
91
+ const A = c + 1;
92
+ if (l === T) {
93
+ const r = l < a / 2 ? A : -A;
94
+ h.push({ x1: O, y1: l + r, x2: R, y2: T + r, widthPx: c, color: _, dash: [] });
95
+ } else {
96
+ const r = O < e / 2 ? A : -A;
97
+ h.push({ x1: O + r, y1: l, x2: R + r, y2: T, widthPx: c, color: _, dash: [] });
98
+ }
99
+ }
100
+ };
101
+ return f(t.top, u, C, m, C), f(t.bottom, u, d, m, d), f(t.left, u, C, u, d), f(t.right, m, C, m, d), h;
102
+ }
103
+ const ct = (t) => Math.max(0.5, t);
104
+ function lt(t, e) {
105
+ return t === "dashed" ? [e * 3, e * 2] : t === "dotted" ? [e, e * 1.5] : [];
106
+ }
107
+ const rt = (t) => t + 1;
108
+ let E = null, L = null;
109
+ function ut(t) {
110
+ E = t;
111
+ }
112
+ function U() {
113
+ return E || (L || (L = document.createElement("canvas").getContext("2d")), L);
114
+ }
115
+ const x = /* @__PURE__ */ new Map();
116
+ function mt(t) {
117
+ const e = t.italic ? "italic " : "", a = t.bold ? "700" : "400", o = t.verticalAlign ? Math.round(t.fontSizePx * B) : t.fontSizePx, i = N(I(t.fontFamily)).clone;
118
+ return `${e}${a} ${o}px ${i}`;
119
+ }
120
+ function Ct(t, e) {
121
+ const a = U();
122
+ return a.font = e, a.measureText(t).width;
123
+ }
124
+ function dt(t) {
125
+ let e = x.get(t);
126
+ if (!e) {
127
+ const a = /(\d+(?:\.\d+)?)px/.exec(t), o = a ? parseFloat(a[1]) : 16, i = t.slice(t.indexOf("px ") + 3).trim(), n = P[N(i).clone] ?? { ascent: 0.9, descent: 0.25 };
128
+ e = { ascent: Math.round(n.ascent * o), descent: Math.round(n.descent * o) }, x.set(t, e);
129
+ }
130
+ return e;
131
+ }
132
+ export {
133
+ nt as C,
134
+ K as D,
135
+ X as F,
136
+ j as I,
137
+ B as S,
138
+ ot as T,
139
+ J as U,
140
+ W as a,
141
+ at as b,
142
+ tt as c,
143
+ Y as d,
144
+ ct as e,
145
+ lt as f,
146
+ rt as g,
147
+ st as h,
148
+ N as i,
149
+ $ as j,
150
+ ut as k,
151
+ et as l,
152
+ mt as m,
153
+ q as n,
154
+ y as o,
155
+ it as p,
156
+ H as q,
157
+ Z as r,
158
+ Q as s,
159
+ S as t,
160
+ v as u,
161
+ V as v,
162
+ Ct as w,
163
+ dt as x
164
+ };