@bloklabs/cli 1.2.4 → 1.2.6

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 (54) hide show
  1. package/dist/cli.mjs +2 -2
  2. package/dist/{convert-gdocs-BDD1tJ_Q.mjs → convert-gdocs-C7bb5QW_.mjs} +54 -42
  3. package/dist/{convert-gdocs-BvHmiAhV.mjs → convert-gdocs-CBRViTQf.mjs} +54 -42
  4. package/dist/{convert-html-CWU4BKK2.mjs → convert-html-C_XAR-3k.mjs} +1 -1
  5. package/dist/{convert-html-CblPztis.mjs → convert-html-GFOTARll.mjs} +1 -1
  6. package/package.json +1 -1
  7. package/dist/convert-gdocs-BZA8nIXm.mjs +0 -165
  8. package/dist/convert-gdocs-BeTateXm.mjs +0 -168
  9. package/dist/convert-gdocs-BnJm2wSS.mjs +0 -165
  10. package/dist/convert-gdocs-Bw88sUiB.mjs +0 -168
  11. package/dist/convert-gdocs-BxtZIyfN.mjs +0 -168
  12. package/dist/convert-gdocs-C2s8p7mh.mjs +0 -168
  13. package/dist/convert-gdocs-C71xkLGm.mjs +0 -165
  14. package/dist/convert-gdocs-CHHN9rsx.mjs +0 -168
  15. package/dist/convert-gdocs-CKB34RE1.mjs +0 -168
  16. package/dist/convert-gdocs-CP4hP3lh.mjs +0 -165
  17. package/dist/convert-gdocs-CdKyF8Q9.mjs +0 -168
  18. package/dist/convert-gdocs-Ckxs9BwZ.mjs +0 -165
  19. package/dist/convert-gdocs-CwqIzHDl.mjs +0 -165
  20. package/dist/convert-gdocs-D0GC6YDQ.mjs +0 -165
  21. package/dist/convert-gdocs-D2pNV_P2.mjs +0 -165
  22. package/dist/convert-gdocs-DGmfsVqf.mjs +0 -165
  23. package/dist/convert-gdocs-DfDkgIvB.mjs +0 -168
  24. package/dist/convert-gdocs-Dg4BvXJv.mjs +0 -165
  25. package/dist/convert-gdocs-DgEV2uq0.mjs +0 -168
  26. package/dist/convert-gdocs-DxCZJg3f.mjs +0 -168
  27. package/dist/convert-gdocs-Dxv8hZRN.mjs +0 -168
  28. package/dist/convert-gdocs-E0xZ8aMJ.mjs +0 -168
  29. package/dist/convert-gdocs-Gr31yEVO.mjs +0 -168
  30. package/dist/convert-gdocs-qBKpfEIJ.mjs +0 -168
  31. package/dist/convert-html--cLXJ4AY.mjs +0 -13
  32. package/dist/convert-html-2hMWDvO2.mjs +0 -13
  33. package/dist/convert-html-B0G5pVra.mjs +0 -13
  34. package/dist/convert-html-BLSIt9Cz.mjs +0 -13
  35. package/dist/convert-html-BMfw-V_A.mjs +0 -13
  36. package/dist/convert-html-Bi6ervFd.mjs +0 -13
  37. package/dist/convert-html-BwGfSIdd.mjs +0 -13
  38. package/dist/convert-html-C5HKrrnY.mjs +0 -13
  39. package/dist/convert-html-CSFMRW8-.mjs +0 -13
  40. package/dist/convert-html-CUYvaNyX.mjs +0 -13
  41. package/dist/convert-html-D-QH5JkA.mjs +0 -13
  42. package/dist/convert-html-DCWeObhy.mjs +0 -13
  43. package/dist/convert-html-DLCj5_Ti.mjs +0 -13
  44. package/dist/convert-html-DofDta-k.mjs +0 -13
  45. package/dist/convert-html-DtP-Ofru.mjs +0 -13
  46. package/dist/convert-html-JmnpFRtf.mjs +0 -13
  47. package/dist/convert-html-Qy4nomiO.mjs +0 -13
  48. package/dist/convert-html-Y87KeWXA.mjs +0 -13
  49. package/dist/convert-html-dnxmpyLt.mjs +0 -13
  50. package/dist/convert-html-gVS6hEIk.mjs +0 -13
  51. package/dist/convert-html-nZIHLjp5.mjs +0 -13
  52. package/dist/convert-html-pNLuv-6b.mjs +0 -13
  53. package/dist/convert-html-vk0C2MGe.mjs +0 -13
  54. package/dist/convert-html-wpLDZrzb.mjs +0 -13
package/dist/cli.mjs CHANGED
@@ -41,14 +41,14 @@ var t = "# Migrating from EditorJS to Blok\n\nThis guide covers the breaking cha
41
41
  case "convert-html": {
42
42
  let e = new (await (import("jsdom"))).JSDOM("");
43
43
  globalThis.DOMParser = e.window.DOMParser, globalThis.Node = e.window.Node;
44
- let { convertHtml: t } = await import("./convert-html-Qy4nomiO.mjs");
44
+ let { convertHtml: t } = await import("./convert-html-C_XAR-3k.mjs");
45
45
  r(t((await import("node:fs")).readFileSync("/dev/stdin", "utf-8")), s);
46
46
  break;
47
47
  }
48
48
  case "convert-gdocs": {
49
49
  let e = new (await (import("jsdom"))).JSDOM("");
50
50
  globalThis.DOMParser = e.window.DOMParser, globalThis.Node = e.window.Node, globalThis.document = e.window.document;
51
- let { convertGdocs: t } = await import("./convert-gdocs-BxtZIyfN.mjs");
51
+ let { convertGdocs: t } = await import("./convert-gdocs-CBRViTQf.mjs");
52
52
  r(t((await import("node:fs")).readFileSync("/dev/stdin", "utf-8")), s);
53
53
  break;
54
54
  }
@@ -1,16 +1,19 @@
1
1
  import { a as e, i as t, n, o as r, r as i, t as a } from "./block-builder-B_eFe3eS.mjs";
2
+ //#region src/components/modules/paste/constants.ts
3
+ var o = "data-blok-columns-candidate";
4
+ //#endregion
2
5
  //#region src/components/modules/paste/google-docs-preprocessor.ts
3
- function o(e) {
6
+ function s(e) {
4
7
  let t = document.createElement("div");
5
8
  t.innerHTML = e;
6
- let n = p(t);
7
- return T(t, n), n && (D(t), f(t)), t.innerHTML;
9
+ let n = m(t);
10
+ return E(t, n), n && (O(t), k(t), p(t)), t.innerHTML;
8
11
  }
9
- function s(e, t) {
12
+ function c(e, t) {
10
13
  let n = e.parentElement;
11
- return n === null ? null : n === t ? e : s(n, t);
14
+ return n === null ? null : n === t ? e : c(n, t);
12
15
  }
13
- function c(e, t, n) {
16
+ function l(e, t, n) {
14
17
  let r = e.cloneNode(!1), i = [];
15
18
  for (let n of Array.from(e.childNodes)) {
16
19
  if (n === t) break;
@@ -18,11 +21,11 @@ function c(e, t, n) {
18
21
  }
19
22
  return i.forEach((e) => r.appendChild(e)), n !== null && r.appendChild(n), r.childNodes.length > 0 ? r : null;
20
23
  }
21
- function l(e, t, n) {
24
+ function u(e, t, n) {
22
25
  let r = e.cloneNode(!1), i = Array.from(e.childNodes), a = i.findIndex((e) => e === t), o = i.slice(a + 1);
23
26
  return n !== null && r.appendChild(n), o.forEach((e) => r.appendChild(e)), r.childNodes.length > 0 ? r : null;
24
27
  }
25
- function u(e, t) {
28
+ function d(e, t) {
26
29
  let n = (e, r, i) => {
27
30
  if (e === t) return {
28
31
  before: r,
@@ -32,44 +35,44 @@ function u(e, t) {
32
35
  return a === null ? {
33
36
  before: r,
34
37
  after: i
35
- } : n(a, c(a, e, r), l(a, e, i));
38
+ } : n(a, l(a, e, r), u(a, e, i));
36
39
  };
37
40
  return n(e, null, null);
38
41
  }
39
- function d(e, t) {
42
+ function f(e, t) {
40
43
  let n = e.parentElement;
41
- return n === null || n === t ? !1 : n.tagName === "TABLE" ? !0 : d(n, t);
44
+ return n === null || n === t ? !1 : n.tagName === "TABLE" ? !0 : f(n, t);
42
45
  }
43
- function f(e) {
46
+ function p(e) {
44
47
  let t = Array.from(e.querySelectorAll("img"));
45
48
  for (let n of t) {
46
- if (d(n, e)) continue;
47
- let t = s(n, e);
49
+ if (f(n, e)) continue;
50
+ let t = c(n, e);
48
51
  if (!t) continue;
49
- let { before: r, after: i } = u(n, t), a = document.createDocumentFragment();
52
+ let { before: r, after: i } = d(n, t), a = document.createDocumentFragment();
50
53
  r && a.appendChild(r), a.appendChild(n), i && a.appendChild(i), t.replaceWith(a);
51
54
  }
52
55
  }
53
- function p(e) {
56
+ function m(e) {
54
57
  let t = e.querySelector("b[id^=\"docs-internal-guid-\"]");
55
58
  if (!t) return !1;
56
59
  let n = document.createDocumentFragment();
57
60
  for (; t.firstChild;) n.appendChild(t.firstChild);
58
61
  return t.replaceWith(n), !0;
59
62
  }
60
- function m(e, t, n) {
63
+ function h(e, t, n) {
61
64
  return e ? `background-color: ${n}` : t ? "background-color: transparent" : "";
62
65
  }
63
- function h(e) {
66
+ function g(e) {
64
67
  let t = e.replace(/\s/g, "");
65
68
  return t === "rgb(0,0,0)" || t === "#000000";
66
69
  }
67
- function g(e) {
70
+ function _(e) {
68
71
  if (e.closest("a") !== null) return !0;
69
72
  let t = e.querySelector("a");
70
73
  return t !== null && t.textContent?.trim() === e.textContent?.trim();
71
74
  }
72
- function _(e) {
75
+ function v(e) {
73
76
  let t = e.replace(/\s/g, "").toLowerCase(), n = /^rgba?\((\d+),(\d+),(\d+)(?:,[\d.]+)?\)$/.exec(t);
74
77
  if (n) {
75
78
  let e = parseInt(n[1], 10) / 255, t = parseInt(n[2], 10) / 255, r = parseInt(n[3], 10) / 255;
@@ -100,17 +103,17 @@ function _(e) {
100
103
  }
101
104
  return -1;
102
105
  }
103
- var v = r, y = e;
104
- function b(e) {
105
- let t = _(e);
106
+ var y = r, b = e;
107
+ function x(e) {
108
+ let t = v(e);
106
109
  return t >= 0 && t > .75;
107
110
  }
108
- function x(e, n, r, i, a) {
111
+ function S(e, n, r, i, a) {
109
112
  if (!n && !r) return e;
110
- let o = n && i !== void 0 ? t(i, "text") : "", s = r && a !== void 0 ? t(a, "bg") : "", c = [n ? `color: ${o}` : "", m(r, n, s)].filter(Boolean).join("; ");
113
+ let o = n && i !== void 0 ? t(i, "text") : "", s = r && a !== void 0 ? t(a, "bg") : "", c = [n ? `color: ${o}` : "", h(r, n, s)].filter(Boolean).join("; ");
111
114
  return c ? `<mark style="${c};">${e}</mark>` : e;
112
115
  }
113
- var S = new Set([
116
+ var C = new Set([
114
117
  "H1",
115
118
  "H2",
116
119
  "H3",
@@ -118,30 +121,39 @@ var S = new Set([
118
121
  "H5",
119
122
  "H6"
120
123
  ]);
121
- function C(e) {
124
+ function w(e) {
122
125
  let t = e.parentElement;
123
- return t === null ? !1 : S.has(t.tagName) ? !0 : C(t);
126
+ return t === null ? !1 : C.has(t.tagName) ? !0 : w(t);
124
127
  }
125
- function w(e, t) {
126
- let n = e.getAttribute("style") ?? "", r = /font-weight\s*:\s*(700|bold)/i.test(n) && !C(e), i = /font-style\s*:\s*italic/i.test(n), a = /(?<![a-z-])color\s*:\s*([^;]+)/i.exec(n), o = /background-color\s*:\s*([^;]+)/i.exec(n), s = a?.[1]?.trim(), c = o?.[1]?.trim(), l = !(s !== void 0 && g(e)) && (t ? s !== void 0 && !h(s) : s !== void 0 && !h(s) && !b(s)), u = c !== void 0 && c !== "transparent" && !v(c) && !y(c);
128
+ function T(e, t) {
129
+ let n = e.getAttribute("style") ?? "", r = /font-weight\s*:\s*(700|bold)/i.test(n) && !w(e), i = /font-style\s*:\s*italic/i.test(n), a = /(?<![a-z-])color\s*:\s*([^;]+)/i.exec(n), o = /background-color\s*:\s*([^;]+)/i.exec(n), s = a?.[1]?.trim(), c = o?.[1]?.trim(), l = !(s !== void 0 && _(e)) && (t ? s !== void 0 && !g(s) : s !== void 0 && !g(s) && !x(s)), u = c !== void 0 && c !== "transparent" && !y(c) && !b(c);
127
130
  if (!r && !i && !l && !u) return null;
128
- let d = x(e.innerHTML, l, u, s, c), f = i ? `<i>${d}</i>` : d;
131
+ let d = S(e.innerHTML, l, u, s, c), f = i ? `<i>${d}</i>` : d;
129
132
  return r ? `<b>${f}</b>` : f;
130
133
  }
131
- function T(e, t) {
134
+ function E(e, t) {
132
135
  for (let n of Array.from(e.querySelectorAll("span[style]"))) {
133
- let e = w(n, t);
136
+ let e = T(n, t);
134
137
  e !== null && n.replaceWith(document.createRange().createContextualFragment(e));
135
138
  }
136
- t && E(e);
139
+ t && D(e);
137
140
  }
138
- function E(e) {
141
+ function D(e) {
139
142
  for (let n of Array.from(e.querySelectorAll("a[style]"))) {
140
143
  let e = n.getAttribute("style") ?? "", r = /background-color\s*:\s*([^;]+)/i.exec(e)?.[1]?.trim(), i = r !== void 0 && r !== "transparent" && r !== "inherit", a = n;
141
144
  a.style.removeProperty("color"), i && (a.innerHTML = `<mark style="background-color: ${t(r, "bg")};">${a.innerHTML}</mark>`, a.style.removeProperty("background-color"));
142
145
  }
143
146
  }
144
- function D(e) {
147
+ function O(e) {
148
+ if (e.querySelector("google-sheets-html-origin") === null) for (let t of Array.from(e.querySelectorAll("table"))) {
149
+ if (t.parentElement?.closest("table") !== null) continue;
150
+ let e = Array.from(t.querySelectorAll("tr")).filter((e) => e.closest("table") === t);
151
+ if (e.length === 0) continue;
152
+ let n = e.map((e) => Array.from(e.children).filter((e) => e.tagName === "TD" || e.tagName === "TH").length), r = n[0];
153
+ n.every((e) => e === r) && (r === 2 || r === 3) && t.setAttribute(o, "");
154
+ }
155
+ }
156
+ function k(e) {
145
157
  for (let t of Array.from(e.querySelectorAll("td, th"))) {
146
158
  let e = t.querySelectorAll("p");
147
159
  if (e.length !== 0) {
@@ -155,14 +167,14 @@ function D(e) {
155
167
  }
156
168
  //#endregion
157
169
  //#region src/cli/commands/convert-gdocs/index.ts
158
- function O(e) {
159
- let t = o(e), r = new DOMParser().parseFromString(t, "text/html").body;
170
+ function A(e) {
171
+ let t = s(e), r = new DOMParser().parseFromString(t, "text/html").body;
160
172
  i(r), n(r);
161
- let s = {
162
- version: "9.9.9-test.0",
173
+ let o = {
174
+ version: "1.2.5",
163
175
  blocks: a(r)
164
176
  };
165
- return JSON.stringify(s);
177
+ return JSON.stringify(o);
166
178
  }
167
179
  //#endregion
168
- export { O as convertGdocs };
180
+ export { A as convertGdocs };
@@ -1,16 +1,19 @@
1
1
  import { a as e, i as t, n, o as r, r as i, t as a } from "./block-builder-B_eFe3eS.mjs";
2
+ //#region src/components/modules/paste/constants.ts
3
+ var o = "data-blok-columns-candidate";
4
+ //#endregion
2
5
  //#region src/components/modules/paste/google-docs-preprocessor.ts
3
- function o(e) {
6
+ function s(e) {
4
7
  let t = document.createElement("div");
5
8
  t.innerHTML = e;
6
- let n = p(t);
7
- return T(t, n), n && (D(t), f(t)), t.innerHTML;
9
+ let n = m(t);
10
+ return E(t, n), n && (O(t), k(t), p(t)), t.innerHTML;
8
11
  }
9
- function s(e, t) {
12
+ function c(e, t) {
10
13
  let n = e.parentElement;
11
- return n === null ? null : n === t ? e : s(n, t);
14
+ return n === null ? null : n === t ? e : c(n, t);
12
15
  }
13
- function c(e, t, n) {
16
+ function l(e, t, n) {
14
17
  let r = e.cloneNode(!1), i = [];
15
18
  for (let n of Array.from(e.childNodes)) {
16
19
  if (n === t) break;
@@ -18,11 +21,11 @@ function c(e, t, n) {
18
21
  }
19
22
  return i.forEach((e) => r.appendChild(e)), n !== null && r.appendChild(n), r.childNodes.length > 0 ? r : null;
20
23
  }
21
- function l(e, t, n) {
24
+ function u(e, t, n) {
22
25
  let r = e.cloneNode(!1), i = Array.from(e.childNodes), a = i.findIndex((e) => e === t), o = i.slice(a + 1);
23
26
  return n !== null && r.appendChild(n), o.forEach((e) => r.appendChild(e)), r.childNodes.length > 0 ? r : null;
24
27
  }
25
- function u(e, t) {
28
+ function d(e, t) {
26
29
  let n = (e, r, i) => {
27
30
  if (e === t) return {
28
31
  before: r,
@@ -32,44 +35,44 @@ function u(e, t) {
32
35
  return a === null ? {
33
36
  before: r,
34
37
  after: i
35
- } : n(a, c(a, e, r), l(a, e, i));
38
+ } : n(a, l(a, e, r), u(a, e, i));
36
39
  };
37
40
  return n(e, null, null);
38
41
  }
39
- function d(e, t) {
42
+ function f(e, t) {
40
43
  let n = e.parentElement;
41
- return n === null || n === t ? !1 : n.tagName === "TABLE" ? !0 : d(n, t);
44
+ return n === null || n === t ? !1 : n.tagName === "TABLE" ? !0 : f(n, t);
42
45
  }
43
- function f(e) {
46
+ function p(e) {
44
47
  let t = Array.from(e.querySelectorAll("img"));
45
48
  for (let n of t) {
46
- if (d(n, e)) continue;
47
- let t = s(n, e);
49
+ if (f(n, e)) continue;
50
+ let t = c(n, e);
48
51
  if (!t) continue;
49
- let { before: r, after: i } = u(n, t), a = document.createDocumentFragment();
52
+ let { before: r, after: i } = d(n, t), a = document.createDocumentFragment();
50
53
  r && a.appendChild(r), a.appendChild(n), i && a.appendChild(i), t.replaceWith(a);
51
54
  }
52
55
  }
53
- function p(e) {
56
+ function m(e) {
54
57
  let t = e.querySelector("b[id^=\"docs-internal-guid-\"]");
55
58
  if (!t) return !1;
56
59
  let n = document.createDocumentFragment();
57
60
  for (; t.firstChild;) n.appendChild(t.firstChild);
58
61
  return t.replaceWith(n), !0;
59
62
  }
60
- function m(e, t, n) {
63
+ function h(e, t, n) {
61
64
  return e ? `background-color: ${n}` : t ? "background-color: transparent" : "";
62
65
  }
63
- function h(e) {
66
+ function g(e) {
64
67
  let t = e.replace(/\s/g, "");
65
68
  return t === "rgb(0,0,0)" || t === "#000000";
66
69
  }
67
- function g(e) {
70
+ function _(e) {
68
71
  if (e.closest("a") !== null) return !0;
69
72
  let t = e.querySelector("a");
70
73
  return t !== null && t.textContent?.trim() === e.textContent?.trim();
71
74
  }
72
- function _(e) {
75
+ function v(e) {
73
76
  let t = e.replace(/\s/g, "").toLowerCase(), n = /^rgba?\((\d+),(\d+),(\d+)(?:,[\d.]+)?\)$/.exec(t);
74
77
  if (n) {
75
78
  let e = parseInt(n[1], 10) / 255, t = parseInt(n[2], 10) / 255, r = parseInt(n[3], 10) / 255;
@@ -100,17 +103,17 @@ function _(e) {
100
103
  }
101
104
  return -1;
102
105
  }
103
- var v = r, y = e;
104
- function b(e) {
105
- let t = _(e);
106
+ var y = r, b = e;
107
+ function x(e) {
108
+ let t = v(e);
106
109
  return t >= 0 && t > .75;
107
110
  }
108
- function x(e, n, r, i, a) {
111
+ function S(e, n, r, i, a) {
109
112
  if (!n && !r) return e;
110
- let o = n && i !== void 0 ? t(i, "text") : "", s = r && a !== void 0 ? t(a, "bg") : "", c = [n ? `color: ${o}` : "", m(r, n, s)].filter(Boolean).join("; ");
113
+ let o = n && i !== void 0 ? t(i, "text") : "", s = r && a !== void 0 ? t(a, "bg") : "", c = [n ? `color: ${o}` : "", h(r, n, s)].filter(Boolean).join("; ");
111
114
  return c ? `<mark style="${c};">${e}</mark>` : e;
112
115
  }
113
- var S = new Set([
116
+ var C = new Set([
114
117
  "H1",
115
118
  "H2",
116
119
  "H3",
@@ -118,30 +121,39 @@ var S = new Set([
118
121
  "H5",
119
122
  "H6"
120
123
  ]);
121
- function C(e) {
124
+ function w(e) {
122
125
  let t = e.parentElement;
123
- return t === null ? !1 : S.has(t.tagName) ? !0 : C(t);
126
+ return t === null ? !1 : C.has(t.tagName) ? !0 : w(t);
124
127
  }
125
- function w(e, t) {
126
- let n = e.getAttribute("style") ?? "", r = /font-weight\s*:\s*(700|bold)/i.test(n) && !C(e), i = /font-style\s*:\s*italic/i.test(n), a = /(?<![a-z-])color\s*:\s*([^;]+)/i.exec(n), o = /background-color\s*:\s*([^;]+)/i.exec(n), s = a?.[1]?.trim(), c = o?.[1]?.trim(), l = !(s !== void 0 && g(e)) && (t ? s !== void 0 && !h(s) : s !== void 0 && !h(s) && !b(s)), u = c !== void 0 && c !== "transparent" && !v(c) && !y(c);
128
+ function T(e, t) {
129
+ let n = e.getAttribute("style") ?? "", r = /font-weight\s*:\s*(700|bold)/i.test(n) && !w(e), i = /font-style\s*:\s*italic/i.test(n), a = /(?<![a-z-])color\s*:\s*([^;]+)/i.exec(n), o = /background-color\s*:\s*([^;]+)/i.exec(n), s = a?.[1]?.trim(), c = o?.[1]?.trim(), l = !(s !== void 0 && _(e)) && (t ? s !== void 0 && !g(s) : s !== void 0 && !g(s) && !x(s)), u = c !== void 0 && c !== "transparent" && !y(c) && !b(c);
127
130
  if (!r && !i && !l && !u) return null;
128
- let d = x(e.innerHTML, l, u, s, c), f = i ? `<i>${d}</i>` : d;
131
+ let d = S(e.innerHTML, l, u, s, c), f = i ? `<i>${d}</i>` : d;
129
132
  return r ? `<b>${f}</b>` : f;
130
133
  }
131
- function T(e, t) {
134
+ function E(e, t) {
132
135
  for (let n of Array.from(e.querySelectorAll("span[style]"))) {
133
- let e = w(n, t);
136
+ let e = T(n, t);
134
137
  e !== null && n.replaceWith(document.createRange().createContextualFragment(e));
135
138
  }
136
- t && E(e);
139
+ t && D(e);
137
140
  }
138
- function E(e) {
141
+ function D(e) {
139
142
  for (let n of Array.from(e.querySelectorAll("a[style]"))) {
140
143
  let e = n.getAttribute("style") ?? "", r = /background-color\s*:\s*([^;]+)/i.exec(e)?.[1]?.trim(), i = r !== void 0 && r !== "transparent" && r !== "inherit", a = n;
141
144
  a.style.removeProperty("color"), i && (a.innerHTML = `<mark style="background-color: ${t(r, "bg")};">${a.innerHTML}</mark>`, a.style.removeProperty("background-color"));
142
145
  }
143
146
  }
144
- function D(e) {
147
+ function O(e) {
148
+ if (e.querySelector("google-sheets-html-origin") === null) for (let t of Array.from(e.querySelectorAll("table"))) {
149
+ if (t.parentElement?.closest("table") !== null) continue;
150
+ let e = Array.from(t.querySelectorAll("tr")).filter((e) => e.closest("table") === t);
151
+ if (e.length === 0) continue;
152
+ let n = e.map((e) => Array.from(e.children).filter((e) => e.tagName === "TD" || e.tagName === "TH").length), r = n[0];
153
+ n.every((e) => e === r) && (r === 2 || r === 3) && t.setAttribute(o, "");
154
+ }
155
+ }
156
+ function k(e) {
145
157
  for (let t of Array.from(e.querySelectorAll("td, th"))) {
146
158
  let e = t.querySelectorAll("p");
147
159
  if (e.length !== 0) {
@@ -155,14 +167,14 @@ function D(e) {
155
167
  }
156
168
  //#endregion
157
169
  //#region src/cli/commands/convert-gdocs/index.ts
158
- function O(e) {
159
- let t = o(e), r = new DOMParser().parseFromString(t, "text/html").body;
170
+ function A(e) {
171
+ let t = s(e), r = new DOMParser().parseFromString(t, "text/html").body;
160
172
  i(r), n(r);
161
- let s = {
162
- version: "1.2.3",
173
+ let o = {
174
+ version: "1.2.6",
163
175
  blocks: a(r)
164
176
  };
165
- return JSON.stringify(s);
177
+ return JSON.stringify(o);
166
178
  }
167
179
  //#endregion
168
- export { O as convertGdocs };
180
+ export { A as convertGdocs };
@@ -4,7 +4,7 @@ function r(r) {
4
4
  let i = new DOMParser().parseFromString(r, "text/html").body;
5
5
  t(i), e(i);
6
6
  let a = {
7
- version: "1.2.3",
7
+ version: "1.2.6",
8
8
  blocks: n(i)
9
9
  };
10
10
  return JSON.stringify(a);
@@ -4,7 +4,7 @@ function r(r) {
4
4
  let i = new DOMParser().parseFromString(r, "text/html").body;
5
5
  t(i), e(i);
6
6
  let a = {
7
- version: "1.1.0",
7
+ version: "1.2.5",
8
8
  blocks: n(i)
9
9
  };
10
10
  return JSON.stringify(a);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bloklabs/cli",
3
- "version": "1.2.4",
3
+ "version": "1.2.6",
4
4
  "description": "CLI tools for Blok — convert HTML to Blok JSON, generate migration guides",
5
5
  "bin": {
6
6
  "blok-cli": "bin/blok-cli.mjs"
@@ -1,165 +0,0 @@
1
- import { a as e, i as t, n, o as r, r as i, t as a } from "./block-builder-B_eFe3eS.mjs";
2
- //#region src/components/modules/paste/google-docs-preprocessor.ts
3
- function o(e) {
4
- let t = document.createElement("div");
5
- t.innerHTML = e;
6
- let n = p(t);
7
- return w(t, n), n && (E(t), f(t)), t.innerHTML;
8
- }
9
- function s(e, t) {
10
- let n = e.parentElement;
11
- return n === null ? null : n === t ? e : s(n, t);
12
- }
13
- function c(e, t, n) {
14
- let r = e.cloneNode(!1), i = [];
15
- for (let n of Array.from(e.childNodes)) {
16
- if (n === t) break;
17
- i.push(n);
18
- }
19
- return i.forEach((e) => r.appendChild(e)), n !== null && r.appendChild(n), r.childNodes.length > 0 ? r : null;
20
- }
21
- function l(e, t, n) {
22
- let r = e.cloneNode(!1), i = Array.from(e.childNodes), a = i.findIndex((e) => e === t), o = i.slice(a + 1);
23
- return n !== null && r.appendChild(n), o.forEach((e) => r.appendChild(e)), r.childNodes.length > 0 ? r : null;
24
- }
25
- function u(e, t) {
26
- let n = (e, r, i) => {
27
- if (e === t) return {
28
- before: r,
29
- after: i
30
- };
31
- let a = e.parentElement;
32
- return a === null ? {
33
- before: r,
34
- after: i
35
- } : n(a, c(a, e, r), l(a, e, i));
36
- };
37
- return n(e, null, null);
38
- }
39
- function d(e, t) {
40
- let n = e.parentElement;
41
- return n === null || n === t ? !1 : n.tagName === "TABLE" ? !0 : d(n, t);
42
- }
43
- function f(e) {
44
- let t = Array.from(e.querySelectorAll("img"));
45
- for (let n of t) {
46
- if (d(n, e)) continue;
47
- let t = s(n, e);
48
- if (!t) continue;
49
- let { before: r, after: i } = u(n, t), a = document.createDocumentFragment();
50
- r && a.appendChild(r), a.appendChild(n), i && a.appendChild(i), t.replaceWith(a);
51
- }
52
- }
53
- function p(e) {
54
- let t = e.querySelector("b[id^=\"docs-internal-guid-\"]");
55
- if (!t) return !1;
56
- let n = document.createDocumentFragment();
57
- for (; t.firstChild;) n.appendChild(t.firstChild);
58
- return t.replaceWith(n), !0;
59
- }
60
- function m(e, t, n) {
61
- return e ? `background-color: ${n}` : t ? "background-color: transparent" : "";
62
- }
63
- function h(e) {
64
- let t = e.replace(/\s/g, "");
65
- return t === "rgb(0,0,0)" || t === "#000000";
66
- }
67
- function g(e) {
68
- let t = e.replace(/\s/g, "").toLowerCase(), n = /^rgba?\((\d+),(\d+),(\d+)(?:,[\d.]+)?\)$/.exec(t);
69
- if (n) {
70
- let e = parseInt(n[1], 10) / 255, t = parseInt(n[2], 10) / 255, r = parseInt(n[3], 10) / 255;
71
- return .2126 * e + .7152 * t + .0722 * r;
72
- }
73
- let r = /^hsla?\(([\d.]+),([\d.]+)%,([\d.]+)%(?:,[\d.]+)?\)$/.exec(t);
74
- if (r) {
75
- let e = parseFloat(r[1]) / 360, t = parseFloat(r[2]) / 100, n = parseFloat(r[3]) / 100;
76
- if (t === 0) return .2126 * n + .7152 * n + .0722 * n;
77
- let i = n < .5 ? n * (1 + t) : n + t - n * t, a = 2 * n - i, o = (e) => {
78
- let t = e < 0 ? e + 1 : e > 1 ? e - 1 : e;
79
- return t < 1 / 6 ? a + (i - a) * 6 * t : t < 1 / 2 ? i : t < 2 / 3 ? a + (i - a) * (2 / 3 - t) * 6 : a;
80
- }, s = o(e + 1 / 3), c = o(e), l = o(e - 1 / 3);
81
- return .2126 * s + .7152 * c + .0722 * l;
82
- }
83
- let i = /^#([0-9a-f]{6}|[0-9a-f]{3})$/.exec(t);
84
- if (i) {
85
- let e = i[1], t = e.length === 3 ? [
86
- e[0] + e[0],
87
- e[1] + e[1],
88
- e[2] + e[2]
89
- ] : [
90
- e.substring(0, 2),
91
- e.substring(2, 4),
92
- e.substring(4, 6)
93
- ], n = parseInt(t[0], 16) / 255, r = parseInt(t[1], 16) / 255, a = parseInt(t[2], 16) / 255;
94
- return .2126 * n + .7152 * r + .0722 * a;
95
- }
96
- return -1;
97
- }
98
- var _ = r, v = e;
99
- function y(e) {
100
- let t = g(e);
101
- return t >= 0 && t > .75;
102
- }
103
- function b(e, n, r, i, a) {
104
- if (!n && !r) return e;
105
- let o = n && i !== void 0 ? t(i, "text") : "", s = r && a !== void 0 ? t(a, "bg") : "", c = [n ? `color: ${o}` : "", m(r, n, s)].filter(Boolean).join("; ");
106
- return c ? `<mark style="${c};">${e}</mark>` : e;
107
- }
108
- var x = new Set([
109
- "H1",
110
- "H2",
111
- "H3",
112
- "H4",
113
- "H5",
114
- "H6"
115
- ]);
116
- function S(e) {
117
- let t = e.parentElement;
118
- return t === null ? !1 : x.has(t.tagName) ? !0 : S(t);
119
- }
120
- function C(e, t) {
121
- let n = e.getAttribute("style") ?? "", r = /font-weight\s*:\s*(700|bold)/i.test(n) && !S(e), i = /font-style\s*:\s*italic/i.test(n), a = /(?<![a-z-])color\s*:\s*([^;]+)/i.exec(n), o = /background-color\s*:\s*([^;]+)/i.exec(n), s = a?.[1]?.trim(), c = o?.[1]?.trim(), l = t ? s !== void 0 && !h(s) : s !== void 0 && !h(s) && !y(s), u = c !== void 0 && c !== "transparent" && !_(c) && !v(c);
122
- if (!r && !i && !l && !u) return null;
123
- let d = b(e.innerHTML, l, u, s, c), f = i ? `<i>${d}</i>` : d;
124
- return r ? `<b>${f}</b>` : f;
125
- }
126
- function w(e, t) {
127
- for (let n of Array.from(e.querySelectorAll("span[style]"))) {
128
- let e = C(n, t);
129
- e !== null && n.replaceWith(document.createRange().createContextualFragment(e));
130
- }
131
- t && T(e);
132
- }
133
- function T(e) {
134
- for (let n of Array.from(e.querySelectorAll("a[style]"))) {
135
- let e = n.getAttribute("style") ?? "", r = /(?<![a-z-])color\s*:\s*([^;]+)/i.exec(e), i = /background-color\s*:\s*([^;]+)/i.exec(e), a = r?.[1]?.trim(), o = i?.[1]?.trim(), s = a !== void 0 && !h(a) && a !== "inherit", c = o !== void 0 && o !== "transparent" && o !== "inherit";
136
- if (!s && !c) continue;
137
- let l = s ? t(a, "text") : "", u = c ? t(o, "bg") : "", d = [s ? `color: ${l}` : "", m(c, s, u)].filter(Boolean).join("; "), f = n;
138
- f.innerHTML = `<mark style="${d};">${f.innerHTML}</mark>`, f.style.removeProperty("color"), f.style.removeProperty("background-color");
139
- }
140
- }
141
- function E(e) {
142
- for (let t of Array.from(e.querySelectorAll("td, th"))) {
143
- let e = t.querySelectorAll("p");
144
- if (e.length !== 0) {
145
- for (let t of Array.from(e)) {
146
- let e = document.createRange().createContextualFragment(t.innerHTML + "<br>");
147
- t.replaceWith(e);
148
- }
149
- t.innerHTML = t.innerHTML.replace(/(<br\s*\/?>|\s)+$/i, "");
150
- }
151
- }
152
- }
153
- //#endregion
154
- //#region src/cli/commands/convert-gdocs/index.ts
155
- function D(e) {
156
- let t = o(e), r = new DOMParser().parseFromString(t, "text/html").body;
157
- i(r), n(r);
158
- let s = {
159
- version: "0.23.2",
160
- blocks: a(r)
161
- };
162
- return JSON.stringify(s);
163
- }
164
- //#endregion
165
- export { D as convertGdocs };