@bloklabs/cli 1.8.0 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/dist/cli.mjs +2 -2
  2. package/dist/{convert-gdocs-CuJPQDXZ.mjs → convert-gdocs-aFuepVmO.mjs} +1 -1
  3. package/dist/{convert-gdocs-DTOupd5x.mjs → convert-gdocs-tLm59QcA.mjs} +1 -1
  4. package/dist/{convert-html-BM5cG4wR.mjs → convert-html-BJmjy5WC.mjs} +1 -1
  5. package/dist/{convert-html-2MRXCAV7.mjs → convert-html-HPcZYDNv.mjs} +1 -1
  6. package/package.json +1 -1
  7. package/dist/block-builder-B_eFe3eS.mjs +0 -673
  8. package/dist/block-builder-BhbHyKmd.mjs +0 -673
  9. package/dist/block-builder-Cp5f8JCh.mjs +0 -779
  10. package/dist/convert-gdocs-4swiirRR.mjs +0 -198
  11. package/dist/convert-gdocs-6yY_wt82.mjs +0 -182
  12. package/dist/convert-gdocs-BDD1tJ_Q.mjs +0 -168
  13. package/dist/convert-gdocs-BLvHjlsM.mjs +0 -198
  14. package/dist/convert-gdocs-BVnty-_F.mjs +0 -186
  15. package/dist/convert-gdocs-BZA8nIXm.mjs +0 -165
  16. package/dist/convert-gdocs-BeTateXm.mjs +0 -168
  17. package/dist/convert-gdocs-BhHRt3Cx.mjs +0 -168
  18. package/dist/convert-gdocs-BnJm2wSS.mjs +0 -165
  19. package/dist/convert-gdocs-Bp3j6l4q.mjs +0 -182
  20. package/dist/convert-gdocs-BvHmiAhV.mjs +0 -168
  21. package/dist/convert-gdocs-Bw88sUiB.mjs +0 -168
  22. package/dist/convert-gdocs-BxtZIyfN.mjs +0 -168
  23. package/dist/convert-gdocs-C2s8p7mh.mjs +0 -168
  24. package/dist/convert-gdocs-C71xkLGm.mjs +0 -165
  25. package/dist/convert-gdocs-CBRViTQf.mjs +0 -180
  26. package/dist/convert-gdocs-CHHN9rsx.mjs +0 -168
  27. package/dist/convert-gdocs-CKB34RE1.mjs +0 -168
  28. package/dist/convert-gdocs-CP4hP3lh.mjs +0 -165
  29. package/dist/convert-gdocs-CdKyF8Q9.mjs +0 -168
  30. package/dist/convert-gdocs-Ckxs9BwZ.mjs +0 -165
  31. package/dist/convert-gdocs-CwqIzHDl.mjs +0 -165
  32. package/dist/convert-gdocs-D0GC6YDQ.mjs +0 -165
  33. package/dist/convert-gdocs-D2pNV_P2.mjs +0 -165
  34. package/dist/convert-gdocs-DGmfsVqf.mjs +0 -165
  35. package/dist/convert-gdocs-DLaumLJ0.mjs +0 -182
  36. package/dist/convert-gdocs-DfDkgIvB.mjs +0 -168
  37. package/dist/convert-gdocs-Dg4BvXJv.mjs +0 -165
  38. package/dist/convert-gdocs-DgEV2uq0.mjs +0 -168
  39. package/dist/convert-gdocs-DhqPnu2C.mjs +0 -182
  40. package/dist/convert-gdocs-DxCZJg3f.mjs +0 -168
  41. package/dist/convert-gdocs-Dxv8hZRN.mjs +0 -168
  42. package/dist/convert-gdocs-Dy45OFlW.mjs +0 -198
  43. package/dist/convert-gdocs-E0xZ8aMJ.mjs +0 -168
  44. package/dist/convert-gdocs-Gr31yEVO.mjs +0 -168
  45. package/dist/convert-gdocs-Y3Psy87D.mjs +0 -186
  46. package/dist/convert-gdocs-qBKpfEIJ.mjs +0 -168
  47. package/dist/convert-gdocs-xm_P1jci.mjs +0 -186
  48. package/dist/convert-gdocs-yWEz40tc.mjs +0 -198
  49. package/dist/convert-html--cLXJ4AY.mjs +0 -13
  50. package/dist/convert-html-2hMWDvO2.mjs +0 -13
  51. package/dist/convert-html-8dOFToww.mjs +0 -13
  52. package/dist/convert-html-B0G5pVra.mjs +0 -13
  53. package/dist/convert-html-BE95-_tJ.mjs +0 -13
  54. package/dist/convert-html-BLSIt9Cz.mjs +0 -13
  55. package/dist/convert-html-BMfw-V_A.mjs +0 -13
  56. package/dist/convert-html-Bi6ervFd.mjs +0 -13
  57. package/dist/convert-html-BkMfT06o.mjs +0 -13
  58. package/dist/convert-html-BwGfSIdd.mjs +0 -13
  59. package/dist/convert-html-BxOQfxMe.mjs +0 -13
  60. package/dist/convert-html-C1hIHsG2.mjs +0 -13
  61. package/dist/convert-html-C5HKrrnY.mjs +0 -13
  62. package/dist/convert-html-CMgcEfdF.mjs +0 -13
  63. package/dist/convert-html-CSFMRW8-.mjs +0 -13
  64. package/dist/convert-html-CUYvaNyX.mjs +0 -13
  65. package/dist/convert-html-CWU4BKK2.mjs +0 -13
  66. package/dist/convert-html-C_XAR-3k.mjs +0 -13
  67. package/dist/convert-html-CblPztis.mjs +0 -13
  68. package/dist/convert-html-CtLOMx8H.mjs +0 -13
  69. package/dist/convert-html-D-QH5JkA.mjs +0 -13
  70. package/dist/convert-html-DCWeObhy.mjs +0 -13
  71. package/dist/convert-html-DLCj5_Ti.mjs +0 -13
  72. package/dist/convert-html-DNyat7Li.mjs +0 -13
  73. package/dist/convert-html-DofDta-k.mjs +0 -13
  74. package/dist/convert-html-Dr2a_D0l.mjs +0 -13
  75. package/dist/convert-html-DsfU0_R9.mjs +0 -13
  76. package/dist/convert-html-DtP-Ofru.mjs +0 -13
  77. package/dist/convert-html-GFOTARll.mjs +0 -13
  78. package/dist/convert-html-JmnpFRtf.mjs +0 -13
  79. package/dist/convert-html-Qy4nomiO.mjs +0 -13
  80. package/dist/convert-html-XLlIOrad.mjs +0 -13
  81. package/dist/convert-html-Y87KeWXA.mjs +0 -13
  82. package/dist/convert-html-dnxmpyLt.mjs +0 -13
  83. package/dist/convert-html-gVS6hEIk.mjs +0 -13
  84. package/dist/convert-html-nZIHLjp5.mjs +0 -13
  85. package/dist/convert-html-pNLuv-6b.mjs +0 -13
  86. package/dist/convert-html-vk0C2MGe.mjs +0 -13
  87. package/dist/convert-html-wpLDZrzb.mjs +0 -13
@@ -1,673 +0,0 @@
1
- //#region src/components/shared/color-presets.ts
2
- var e = [
3
- {
4
- name: "gray",
5
- text: "#787774",
6
- bg: "#f1f1ef"
7
- },
8
- {
9
- name: "brown",
10
- text: "#9f6b53",
11
- bg: "#f4eeee"
12
- },
13
- {
14
- name: "orange",
15
- text: "#d9730d",
16
- bg: "#fbecdd"
17
- },
18
- {
19
- name: "yellow",
20
- text: "#cb9b00",
21
- bg: "#fbf3db"
22
- },
23
- {
24
- name: "green",
25
- text: "#448361",
26
- bg: "#edf3ec"
27
- },
28
- {
29
- name: "blue",
30
- text: "#337ea9",
31
- bg: "#e7f3f8"
32
- },
33
- {
34
- name: "purple",
35
- text: "#9065b0",
36
- bg: "#f6f3f9"
37
- },
38
- {
39
- name: "pink",
40
- text: "#c14c8a",
41
- bg: "#f9f0f5"
42
- },
43
- {
44
- name: "red",
45
- text: "#d44c47",
46
- bg: "#fdebec"
47
- }
48
- ], t = [
49
- {
50
- name: "gray",
51
- text: "#9b9b9b",
52
- bg: "#2f2f2f"
53
- },
54
- {
55
- name: "brown",
56
- text: "#c59177",
57
- bg: "#452a1c"
58
- },
59
- {
60
- name: "orange",
61
- text: "#dc8c47",
62
- bg: "#4d2f14"
63
- },
64
- {
65
- name: "yellow",
66
- text: "#d4ab49",
67
- bg: "#544012"
68
- },
69
- {
70
- name: "green",
71
- text: "#5db184",
72
- bg: "#1e432f"
73
- },
74
- {
75
- name: "blue",
76
- text: "#5c9fcc",
77
- bg: "#123a54"
78
- },
79
- {
80
- name: "purple",
81
- text: "#a67dca",
82
- bg: "#341d49"
83
- },
84
- {
85
- name: "pink",
86
- text: "#d45e99",
87
- bg: "#4b1b33"
88
- },
89
- {
90
- name: "red",
91
- text: "#dd5e5a",
92
- bg: "#4e1a18"
93
- }
94
- ];
95
- //#endregion
96
- //#region src/components/utils/default-page-colors.ts
97
- function n(e) {
98
- let t = e.replace(/\s/g, "").toLowerCase();
99
- return t === "rgb(255,255,255)" || t === "#ffffff" || t === "#fff" || t === "white";
100
- }
101
- function r(e) {
102
- let t = e.replace(/\s/g, "").toLowerCase(), n = /^rgba?\((\d+),(\d+),(\d+)(?:,[\d.]+)?\)$/.exec(t);
103
- if (n) {
104
- let e = parseInt(n[1], 10) / 255, t = parseInt(n[2], 10) / 255, r = parseInt(n[3], 10) / 255;
105
- return .2126 * e + .7152 * t + .0722 * r;
106
- }
107
- let r = /^hsla?\(([\d.]+),([\d.]+)%,([\d.]+)%(?:,[\d.]+)?\)$/.exec(t);
108
- if (r) {
109
- let e = parseFloat(r[1]) / 360, t = parseFloat(r[2]) / 100, n = parseFloat(r[3]) / 100;
110
- if (t === 0) return .2126 * n + .7152 * n + .0722 * n;
111
- let i = n < .5 ? n * (1 + t) : n + t - n * t, a = 2 * n - i, o = (e) => e < 0 ? e + 1 : e > 1 ? e - 1 : e, s = (e) => {
112
- let t = o(e);
113
- return t < 1 / 6 ? a + (i - a) * 6 * t : t < 1 / 2 ? i : t < 2 / 3 ? a + (i - a) * (2 / 3 - t) * 6 : a;
114
- }, c = s(e + 1 / 3), l = s(e), u = s(e - 1 / 3);
115
- return .2126 * c + .7152 * l + .0722 * u;
116
- }
117
- let i = /^#([0-9a-f]{6}|[0-9a-f]{3})$/.exec(t);
118
- if (i) {
119
- let e = i[1], t = e.length === 3 ? [
120
- e[0] + e[0],
121
- e[1] + e[1],
122
- e[2] + e[2]
123
- ] : [
124
- e.substring(0, 2),
125
- e.substring(2, 4),
126
- e.substring(4, 6)
127
- ], n = parseInt(t[0], 16) / 255, r = parseInt(t[1], 16) / 255, a = parseInt(t[2], 16) / 255;
128
- return .2126 * n + .7152 * r + .0722 * a;
129
- }
130
- return -1;
131
- }
132
- function i(e) {
133
- let t = r(e);
134
- return t >= 0 && t < .12;
135
- }
136
- //#endregion
137
- //#region src/components/utils/color-mapping.ts
138
- function a(e, t, n) {
139
- let r = t / 100, i = n / 100;
140
- if (r === 0) {
141
- let e = Math.round(i * 255);
142
- return [
143
- e,
144
- e,
145
- e
146
- ];
147
- }
148
- let a = (e) => e < 0 ? e + 1 : e > 1 ? e - 1 : e, o = (e, t, n) => {
149
- let r = a(n);
150
- return r < 1 / 6 ? e + (t - e) * 6 * r : r < 1 / 2 ? t : r < 2 / 3 ? e + (t - e) * (2 / 3 - r) * 6 : e;
151
- }, s = i < .5 ? i * (1 + r) : i + r - i * r, c = 2 * i - s, l = e / 360;
152
- return [
153
- Math.round(o(c, s, l + 1 / 3) * 255),
154
- Math.round(o(c, s, l) * 255),
155
- Math.round(o(c, s, l - 1 / 3) * 255)
156
- ];
157
- }
158
- function o(e) {
159
- let t = /^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i.exec(e);
160
- if (t) return [
161
- parseInt(t[1], 16),
162
- parseInt(t[2], 16),
163
- parseInt(t[3], 16)
164
- ];
165
- let n = /^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})[0-9a-f]{2}$/i.exec(e);
166
- if (n) return [
167
- parseInt(n[1], 16),
168
- parseInt(n[2], 16),
169
- parseInt(n[3], 16)
170
- ];
171
- let r = /^#([0-9a-f])([0-9a-f])([0-9a-f])$/i.exec(e);
172
- if (r) return [
173
- parseInt(r[1] + r[1], 16),
174
- parseInt(r[2] + r[2], 16),
175
- parseInt(r[3] + r[3], 16)
176
- ];
177
- let i = /^#([0-9a-f])([0-9a-f])([0-9a-f])[0-9a-f]$/i.exec(e);
178
- if (i) return [
179
- parseInt(i[1] + i[1], 16),
180
- parseInt(i[2] + i[2], 16),
181
- parseInt(i[3] + i[3], 16)
182
- ];
183
- let o = /^rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*[\d.]+\s*)?\)$/i.exec(e);
184
- if (o) return [
185
- Number(o[1]),
186
- Number(o[2]),
187
- Number(o[3])
188
- ];
189
- let s = /^hsla?\(\s*([\d.]+)\s*,\s*([\d.]+)%\s*,\s*([\d.]+)%\s*(?:,\s*[\d.]+\s*)?\)$/i.exec(e);
190
- return s ? a(Number(s[1]), Number(s[2]), Number(s[3])) : null;
191
- }
192
- var s = .1;
193
- function c(e) {
194
- let t = e[0] / 255, n = e[1] / 255, r = e[2] / 255, i = Math.max(t, n, r), a = Math.min(t, n, r), o = (i + a) / 2;
195
- if (i === a) return [
196
- 0,
197
- 0,
198
- o
199
- ];
200
- let s = i - a, c = o > .5 ? s / (2 - i - a) : s / (i + a);
201
- return [
202
- ((e) => e === t ? ((n - r) / s + (n < r ? 6 : 0)) / 6 : e === n ? ((r - t) / s + 2) / 6 : ((t - n) / s + 4) / 6)(i) * 360,
203
- c,
204
- o
205
- ];
206
- }
207
- function l(e, t) {
208
- let n = e[1] < s, r = t[1] < s;
209
- if (n && r) {
210
- let n = Math.abs(e[2] - t[2]);
211
- return n * n;
212
- }
213
- if (n !== r) return 1e3;
214
- let i = Math.abs(e[0] - t[0]), a = Math.min(i, 360 - i) / 180, o = Math.abs(e[1] - t[1]), c = Math.abs(e[2] - t[2]);
215
- return 8 * a * a + 1 * o * o + 1 * c * c;
216
- }
217
- function u(t, r) {
218
- if (r === "bg" && (n(t) || i(t))) return t;
219
- let a = o(t);
220
- if (a === null) return t;
221
- let s = c(a);
222
- return e.reduce((e, t) => {
223
- let n = o(t[r]);
224
- if (n === null) return e;
225
- let i = l(s, c(n));
226
- return i < e.distance ? {
227
- color: t[r],
228
- distance: i
229
- } : e;
230
- }, {
231
- color: t,
232
- distance: Infinity
233
- }).color;
234
- }
235
- function d(r, a) {
236
- if (a === "bg" && (n(r) || i(r))) return null;
237
- let s = o(r);
238
- if (s === null) return null;
239
- let u = c(s);
240
- return [...e, ...t].reduce((e, t) => {
241
- let n = o(t[a]);
242
- if (n === null) return e;
243
- let r = l(u, c(n));
244
- return e === null || r < e.distance ? {
245
- name: t.name,
246
- distance: r
247
- } : e;
248
- }, null)?.name ?? null;
249
- }
250
- //#endregion
251
- //#region src/cli/commands/convert-html/preprocessor.ts
252
- function f(e) {
253
- p(e), _(e), x(e), C(e), w(e), E(e);
254
- }
255
- function p(e) {
256
- let t = e.ownerDocument;
257
- for (let n of Array.from(e.querySelectorAll("div[style]"))) {
258
- if (n.closest("table")) continue;
259
- let e = b(n);
260
- if (!e || v(e)) continue;
261
- let r = t.createElement("aside");
262
- r.style.backgroundColor = e, r.append(...Array.from(n.childNodes)), m(r), h(r), n.replaceWith(r);
263
- }
264
- }
265
- function m(e) {
266
- for (;;) {
267
- let t = Array.from(e.querySelectorAll(":scope > div")).filter((e) => !e.getAttribute("style") && !e.getAttribute("class"));
268
- if (t.length === 0) break;
269
- for (let e of t) e.replaceWith(...Array.from(e.childNodes));
270
- }
271
- }
272
- function h(e) {
273
- for (let t of Array.from(e.querySelectorAll("p"))) {
274
- let e = t.lastElementChild;
275
- e?.tagName === "BR" && e.remove();
276
- }
277
- }
278
- var g = 250;
279
- function _(e) {
280
- let t = e.querySelectorAll("[style*=\"background-color\"]");
281
- for (let e of Array.from(t)) v(e.style.backgroundColor) && (e.style.removeProperty("background-color"), e.getAttribute("style")?.trim() === "" && e.removeAttribute("style"), y(e) && e.replaceWith(...Array.from(e.childNodes)));
282
- }
283
- function v(e) {
284
- if (!e) return !1;
285
- let t = e.replace(/\s/g, "").toLowerCase();
286
- if (t === "transparent") return !0;
287
- let n = t.match(/^rgba?\((\d+),(\d+),(\d+)(?:,([^)]+))?\)$/);
288
- if (!n) return !1;
289
- if ((n[4] === void 0 ? 1 : parseFloat(n[4])) === 0) return !0;
290
- let r = parseInt(n[1], 10), i = parseInt(n[2], 10), a = parseInt(n[3], 10);
291
- return r >= g && i >= g && a >= g;
292
- }
293
- function y(e) {
294
- return e.attributes.length > 0 ? !1 : (e.textContent ?? "").replace(/[\s\u00A0]/g, "").length === 0;
295
- }
296
- function b(e) {
297
- if (e.style.backgroundColor) return e.style.backgroundColor;
298
- let t = (e.getAttribute("style") ?? "").match(/background:\s*([^;]+)/i);
299
- if (t) {
300
- let e = t[1].trim().match(/^(rgb[a]?\([^)]+\)|#[0-9a-fA-F]{3,8}|[a-z]+)$/i);
301
- if (e) return e[1];
302
- }
303
- return "";
304
- }
305
- function x(e) {
306
- for (let t of Array.from(e.querySelectorAll("td, th"))) {
307
- let e = t.querySelectorAll("p");
308
- if (e.length !== 0) {
309
- for (let t of Array.from(e)) S(t);
310
- A(t);
311
- }
312
- }
313
- }
314
- function S(e) {
315
- if (e.innerHTML.trim() === "" || e.innerHTML.trim() === "&nbsp;") {
316
- e.remove();
317
- return;
318
- }
319
- let t = e.ownerDocument, n = t.createDocumentFragment();
320
- n.append(...Array.from(e.childNodes)), n.append(t.createElement("br")), e.replaceWith(n);
321
- }
322
- function C(e) {
323
- for (let t of Array.from(e.querySelectorAll("p"))) t.closest("td") || t.closest("th") || (t.textContent ?? "").replace(/[\s\u00A0]/g, "").length === 0 && t.remove();
324
- }
325
- function w(e) {
326
- let t = e.ownerDocument;
327
- for (let n of Array.from(e.querySelectorAll("del, strike"))) {
328
- let e = t.createElement("s");
329
- e.append(...Array.from(n.childNodes)), n.replaceWith(e);
330
- }
331
- }
332
- var T = /^[\u2022\u00B7][\s\u00A0]*|^-\s/;
333
- function E(e) {
334
- let t = e.ownerDocument, n = O(e);
335
- for (let e of n) {
336
- let n = t.createElement("ul");
337
- e[0].before(n);
338
- for (let t of e) D(t, n);
339
- }
340
- }
341
- function D(e, t) {
342
- let n = e.ownerDocument.createElement("li"), r = j(e);
343
- r && (r.textContent = (r.textContent ?? "").replace(T, "")), n.append(...Array.from(e.childNodes)), t.appendChild(n), e.remove();
344
- }
345
- function O(e) {
346
- let t = [], n = Array.from(e.childNodes);
347
- for (let e of n) {
348
- if (e.nodeType !== Node.ELEMENT_NODE) continue;
349
- let n = e;
350
- if (!(n.tagName === "P" && T.test(n.textContent ?? ""))) continue;
351
- let r = t[t.length - 1], i = k(n);
352
- r && i !== null && r[r.length - 1] === i ? r.push(n) : t.push([n]);
353
- }
354
- return t;
355
- }
356
- function k(e) {
357
- let t = e.previousSibling;
358
- return t && t.nodeType === Node.ELEMENT_NODE ? t : null;
359
- }
360
- function A(e) {
361
- for (;;) {
362
- let t = e.lastChild;
363
- if (!t) break;
364
- let n = t.nodeType === Node.ELEMENT_NODE && t.tagName === "BR", r = t.nodeType === Node.TEXT_NODE && t.textContent?.trim() === "";
365
- if (!n && !r) break;
366
- t.remove();
367
- }
368
- }
369
- function j(e) {
370
- if (e.nodeType === Node.TEXT_NODE) return e;
371
- for (let t of Array.from(e.childNodes)) {
372
- let e = j(t);
373
- if (e) return e;
374
- }
375
- return null;
376
- }
377
- //#endregion
378
- //#region src/cli/commands/convert-html/sanitizer.ts
379
- var M = {
380
- B: !0,
381
- STRONG: !0,
382
- I: !0,
383
- EM: !0,
384
- A: new Set(["href"]),
385
- S: !0,
386
- U: !0,
387
- CODE: !0,
388
- MARK: new Set(["style"]),
389
- BR: !0,
390
- P: !0,
391
- H1: !0,
392
- H2: !0,
393
- H3: !0,
394
- H4: !0,
395
- H5: !0,
396
- H6: !0,
397
- UL: !0,
398
- OL: !0,
399
- LI: new Set(["aria-level"]),
400
- TABLE: !0,
401
- THEAD: !0,
402
- TBODY: !0,
403
- TR: !0,
404
- TD: new Set(["style"]),
405
- TH: new Set(["style"]),
406
- BLOCKQUOTE: !0,
407
- PRE: !0,
408
- HR: !0,
409
- ASIDE: new Set(["style"]),
410
- DETAILS: !0,
411
- SUMMARY: !0,
412
- IMG: new Set(["src", "style"])
413
- };
414
- function N(e) {
415
- I(e);
416
- }
417
- function P(e) {
418
- let t = Array.from(e.childNodes);
419
- for (let n of t) e.before(n);
420
- return e.remove(), t.filter((e) => e.nodeType === e.ELEMENT_NODE);
421
- }
422
- function F(e, t) {
423
- for (let n of Array.from(e.attributes)) (t === !0 || !t.has(n.name)) && e.removeAttribute(n.name);
424
- }
425
- function I(e) {
426
- let t = Array.from(e.childNodes);
427
- for (let e of t) {
428
- if (e.nodeType !== e.ELEMENT_NODE) continue;
429
- let n = e, r = M[n.tagName];
430
- if (r === void 0) {
431
- t.push(...P(n));
432
- continue;
433
- }
434
- F(n, r), I(n);
435
- }
436
- }
437
- //#endregion
438
- //#region src/cli/commands/convert-html/id-generator.ts
439
- function L() {
440
- let e = /* @__PURE__ */ new Map();
441
- return (t) => {
442
- let n = (e.get(t) ?? 0) + 1;
443
- return e.set(t, n), `${t}-${n}`;
444
- };
445
- }
446
- //#endregion
447
- //#region src/cli/commands/convert-html/block-builder.ts
448
- function R(e) {
449
- let t = L(), n = [];
450
- for (let r of Array.from(e.childNodes)) z(r, n, t);
451
- return n;
452
- }
453
- function z(e, t, n) {
454
- if (e.nodeType === Node.TEXT_NODE) {
455
- let r = e.textContent?.trim() ?? "";
456
- r && t.push({
457
- id: n("paragraph"),
458
- type: "paragraph",
459
- data: { text: r }
460
- });
461
- return;
462
- }
463
- if (e.nodeType !== Node.ELEMENT_NODE) return;
464
- let r = e, i = r.tagName;
465
- if (i === "P") {
466
- t.push({
467
- id: n("paragraph"),
468
- type: "paragraph",
469
- data: { text: r.innerHTML }
470
- });
471
- return;
472
- }
473
- if (/^H[1-6]$/.test(i)) {
474
- let e = Number(i[1]);
475
- t.push({
476
- id: n("header"),
477
- type: "header",
478
- data: {
479
- text: r.innerHTML,
480
- level: e
481
- }
482
- });
483
- return;
484
- }
485
- if (i === "BLOCKQUOTE") {
486
- t.push({
487
- id: n("quote"),
488
- type: "quote",
489
- data: {
490
- text: r.innerHTML,
491
- size: "default"
492
- }
493
- });
494
- return;
495
- }
496
- if (i === "PRE") {
497
- t.push({
498
- id: n("code"),
499
- type: "code",
500
- data: {
501
- code: r.textContent ?? "",
502
- language: "plain-text"
503
- }
504
- });
505
- return;
506
- }
507
- if (i === "HR") {
508
- t.push({
509
- id: n("divider"),
510
- type: "divider",
511
- data: {}
512
- });
513
- return;
514
- }
515
- if (i === "IMG") {
516
- let e = r.getAttribute("src") ?? "", i = G(r, "width");
517
- t.push({
518
- id: n("image"),
519
- type: "image",
520
- data: { url: e },
521
- stretched: null,
522
- key: null,
523
- width: i
524
- });
525
- return;
526
- }
527
- if (i === "DETAILS") {
528
- let e = r.querySelector("summary"), i = e ? e.innerHTML : r.innerHTML;
529
- t.push({
530
- id: n("toggle"),
531
- type: "toggle",
532
- data: { text: i }
533
- });
534
- return;
535
- }
536
- if (i === "UL" || i === "OL") {
537
- B(r, i === "OL" ? "ordered" : "unordered", 0, t, n);
538
- return;
539
- }
540
- if (i === "TABLE") {
541
- V(r, t, n);
542
- return;
543
- }
544
- if (i === "ASIDE") {
545
- H(r, t, n);
546
- return;
547
- }
548
- t.push({
549
- id: n("paragraph"),
550
- type: "paragraph",
551
- data: { text: r.innerHTML }
552
- });
553
- }
554
- function B(e, t, n, r, i) {
555
- let a = e.getAttribute("start"), o = a ? Number(a) : null, s = Array.from(e.children).filter((e) => e.tagName === "LI");
556
- for (let [e, a] of s.entries()) {
557
- let s = a.cloneNode(!0), c = [];
558
- for (let e of Array.from(s.querySelectorAll("ul, ol"))) c.push(e.cloneNode(!0)), e.remove();
559
- let l = s.innerHTML.trim(), u = a.getAttribute("aria-level"), d = u ? Math.max(0, parseInt(u, 10) - 1) : n;
560
- r.push({
561
- id: i("list"),
562
- type: "list",
563
- data: {
564
- text: l,
565
- style: t,
566
- depth: d === 0 ? null : d,
567
- checked: null,
568
- start: e === 0 && o !== null ? o : null
569
- }
570
- });
571
- for (let e of c) B(e, e.tagName === "OL" ? "ordered" : "unordered", n + 1, r, i);
572
- }
573
- }
574
- function V(e, t, n) {
575
- let r = n("table"), i = Array.from(e.querySelectorAll("tr")), a = [];
576
- for (let e of i) {
577
- let i = Array.from(e.querySelectorAll("td, th")).map((e) => U(e, r, t, n));
578
- a.push(i);
579
- }
580
- let o = i[0] ? Array.from(i[0].querySelectorAll("td, th")) : [], s = o.some((e) => e.tagName === "TH"), c = o.map((e) => {
581
- let t = K(e, "width");
582
- if (t) {
583
- let e = parseInt(t, 10);
584
- return isNaN(e) ? null : e;
585
- }
586
- return null;
587
- }), l = {
588
- id: r,
589
- type: "table",
590
- data: {
591
- withHeadings: s,
592
- withHeadingColumn: !1,
593
- content: a,
594
- ...c.some((e) => e !== null) ? { colWidths: c } : {}
595
- }
596
- }, u = t.findIndex((e) => e.parent === r);
597
- u >= 0 ? t.splice(u, 0, l) : t.push(l);
598
- }
599
- function H(e, t, r) {
600
- let a = r("callout"), o = K(e, "background-color"), s = o && !n(o) && !i(o) ? d(o, "bg") : null, c = [];
601
- for (let n of Array.from(e.childNodes)) {
602
- let e = W(n, a, t, r);
603
- e && c.push(e);
604
- }
605
- let l = t.findIndex((e) => e.parent === a), u = {
606
- id: a,
607
- type: "callout",
608
- data: {
609
- emoji: "💡",
610
- backgroundColor: s
611
- },
612
- content: c
613
- };
614
- l >= 0 ? t.splice(l, 0, u) : t.push(u);
615
- }
616
- function U(e, t, r, a) {
617
- let o = e.innerHTML.trim();
618
- if (!o) return {
619
- blocks: [],
620
- color: null,
621
- textColor: null
622
- };
623
- let s = a("paragraph");
624
- r.push({
625
- id: s,
626
- type: "paragraph",
627
- parent: t,
628
- data: { text: o }
629
- });
630
- let c = K(e, "background-color"), l = K(e, "color"), u = c && !n(c) && !i(c) ? d(c, "bg") : null;
631
- return {
632
- blocks: [s],
633
- color: u,
634
- textColor: l ? d(l, "text") : null
635
- };
636
- }
637
- function W(e, t, n, r) {
638
- if (e.nodeType === Node.ELEMENT_NODE) {
639
- let i = e, a = r("paragraph");
640
- return n.push({
641
- id: a,
642
- type: "paragraph",
643
- parent: t,
644
- data: { text: i.innerHTML }
645
- }), a;
646
- }
647
- if (e.nodeType === Node.TEXT_NODE) {
648
- let i = e.textContent?.trim() ?? "";
649
- if (!i) return null;
650
- let a = r("paragraph");
651
- return n.push({
652
- id: a,
653
- type: "paragraph",
654
- parent: t,
655
- data: { text: i }
656
- }), a;
657
- }
658
- return null;
659
- }
660
- function G(e, t) {
661
- let n = K(e, t);
662
- if (!n) return null;
663
- let r = parseInt(n, 10);
664
- return isNaN(r) ? null : r;
665
- }
666
- function K(e, t) {
667
- let n = e.getAttribute("style");
668
- if (!n) return null;
669
- let r = RegExp(`(?<![\\-a-z])${t}\\s*:\\s*([^;]+)`).exec(n);
670
- return r ? r[1].trim() : null;
671
- }
672
- //#endregion
673
- export { i as a, u as i, N as n, n as o, f as r, R as t };