react-text-forge 0.0.1 → 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.
@@ -1,5 +1,9 @@
1
- import ee, { useState as re } from "react";
2
- var T = { exports: {} }, b = {};
1
+ import Q, { useRef as u2, useState as C, useEffect as e2, useMemo as w2, useCallback as K } from "react";
2
+ import { Transforms as u, Node as V, Editor as w, Path as Y, Text as r2, Range as a2, Element as D, createEditor as f2 } from "slate";
3
+ import { withReact as v2, Slate as x2, Editable as b2 } from "slate-react";
4
+ import { withHistory as k2 } from "slate-history";
5
+ import { SketchPicker as C2 } from "react-color";
6
+ var q = { exports: {} }, O = {};
3
7
  /**
4
8
  * @license React
5
9
  * react-jsx-runtime.production.js
@@ -9,29 +13,29 @@ var T = { exports: {} }, b = {};
9
13
  * This source code is licensed under the MIT license found in the
10
14
  * LICENSE file in the root directory of this source tree.
11
15
  */
12
- var $;
13
- function te() {
14
- if ($) return b;
15
- $ = 1;
16
- var c = Symbol.for("react.transitional.element"), f = Symbol.for("react.fragment");
17
- function d(m, a, s) {
18
- var E = null;
19
- if (s !== void 0 && (E = "" + s), a.key !== void 0 && (E = "" + a.key), "key" in a) {
20
- s = {};
21
- for (var R in a)
22
- R !== "key" && (s[R] = a[R]);
23
- } else s = a;
24
- return a = s.ref, {
25
- $$typeof: c,
26
- type: m,
27
- key: E,
28
- ref: a !== void 0 ? a : null,
29
- props: s
16
+ var i2;
17
+ function y2() {
18
+ if (i2) return O;
19
+ i2 = 1;
20
+ var e = Symbol.for("react.transitional.element"), o = Symbol.for("react.fragment");
21
+ function t(s, n, a) {
22
+ var i = null;
23
+ if (a !== void 0 && (i = "" + a), n.key !== void 0 && (i = "" + n.key), "key" in n) {
24
+ a = {};
25
+ for (var d in n)
26
+ d !== "key" && (a[d] = n[d]);
27
+ } else a = n;
28
+ return n = a.ref, {
29
+ $$typeof: e,
30
+ type: s,
31
+ key: i,
32
+ ref: n !== void 0 ? n : null,
33
+ props: a
30
34
  };
31
35
  }
32
- return b.Fragment = f, b.jsx = d, b.jsxs = d, b;
36
+ return O.Fragment = o, O.jsx = t, O.jsxs = t, O;
33
37
  }
34
- var _ = {};
38
+ var G = {};
35
39
  /**
36
40
  * @license React
37
41
  * react-jsx-runtime.development.js
@@ -41,252 +45,1488 @@ var _ = {};
41
45
  * This source code is licensed under the MIT license found in the
42
46
  * LICENSE file in the root directory of this source tree.
43
47
  */
44
- var F;
45
- function ne() {
46
- return F || (F = 1, process.env.NODE_ENV !== "production" && function() {
47
- function c(e) {
48
- if (e == null) return null;
49
- if (typeof e == "function")
50
- return e.$$typeof === Z ? null : e.displayName || e.name || null;
51
- if (typeof e == "string") return e;
52
- switch (e) {
53
- case p:
48
+ var d2;
49
+ function L2() {
50
+ return d2 || (d2 = 1, process.env.NODE_ENV !== "production" && function() {
51
+ function e(l) {
52
+ if (l == null) return null;
53
+ if (typeof l == "function")
54
+ return l.$$typeof === N ? null : l.displayName || l.name || null;
55
+ if (typeof l == "string") return l;
56
+ switch (l) {
57
+ case S:
54
58
  return "Fragment";
55
- case J:
59
+ case E:
56
60
  return "Profiler";
57
- case U:
61
+ case R:
58
62
  return "StrictMode";
59
- case G:
63
+ case H:
60
64
  return "Suspense";
61
- case X:
65
+ case U:
62
66
  return "SuspenseList";
63
- case H:
67
+ case b:
64
68
  return "Activity";
65
69
  }
66
- if (typeof e == "object")
67
- switch (typeof e.tag == "number" && console.error(
70
+ if (typeof l == "object")
71
+ switch (typeof l.tag == "number" && console.error(
68
72
  "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
69
- ), e.$$typeof) {
70
- case W:
73
+ ), l.$$typeof) {
74
+ case f:
71
75
  return "Portal";
72
- case z:
73
- return (e.displayName || "Context") + ".Provider";
74
- case q:
75
- return (e._context.displayName || "Context") + ".Consumer";
76
- case V:
77
- var r = e.render;
78
- return e = e.displayName, e || (e = r.displayName || r.name || "", e = e !== "" ? "ForwardRef(" + e + ")" : "ForwardRef"), e;
79
76
  case B:
80
- return r = e.displayName || null, r !== null ? r : c(e.type) || "Memo";
81
- case h:
82
- r = e._payload, e = e._init;
77
+ return (l.displayName || "Context") + ".Provider";
78
+ case F:
79
+ return (l._context.displayName || "Context") + ".Consumer";
80
+ case T:
81
+ var p = l.render;
82
+ return l = l.displayName, l || (l = p.displayName || p.name || "", l = l !== "" ? "ForwardRef(" + l + ")" : "ForwardRef"), l;
83
+ case $:
84
+ return p = l.displayName || null, p !== null ? p : e(l.type) || "Memo";
85
+ case P:
86
+ p = l._payload, l = l._init;
83
87
  try {
84
- return c(e(r));
88
+ return e(l(p));
85
89
  } catch {
86
90
  }
87
91
  }
88
92
  return null;
89
93
  }
90
- function f(e) {
91
- return "" + e;
94
+ function o(l) {
95
+ return "" + l;
92
96
  }
93
- function d(e) {
97
+ function t(l) {
94
98
  try {
95
- f(e);
96
- var r = !1;
99
+ o(l);
100
+ var p = !1;
97
101
  } catch {
98
- r = !0;
102
+ p = !0;
99
103
  }
100
- if (r) {
101
- r = console;
102
- var t = r.error, n = typeof Symbol == "function" && Symbol.toStringTag && e[Symbol.toStringTag] || e.constructor.name || "Object";
103
- return t.call(
104
- r,
104
+ if (p) {
105
+ p = console;
106
+ var k = p.error, L = typeof Symbol == "function" && Symbol.toStringTag && l[Symbol.toStringTag] || l.constructor.name || "Object";
107
+ return k.call(
108
+ p,
105
109
  "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
106
- n
107
- ), f(e);
110
+ L
111
+ ), o(l);
108
112
  }
109
113
  }
110
- function m(e) {
111
- if (e === p) return "<>";
112
- if (typeof e == "object" && e !== null && e.$$typeof === h)
114
+ function s(l) {
115
+ if (l === S) return "<>";
116
+ if (typeof l == "object" && l !== null && l.$$typeof === P)
113
117
  return "<...>";
114
118
  try {
115
- var r = c(e);
116
- return r ? "<" + r + ">" : "<...>";
119
+ var p = e(l);
120
+ return p ? "<" + p + ">" : "<...>";
117
121
  } catch {
118
122
  return "<...>";
119
123
  }
120
124
  }
121
- function a() {
122
- var e = k.A;
123
- return e === null ? null : e.getOwner();
125
+ function n() {
126
+ var l = I.A;
127
+ return l === null ? null : l.getOwner();
124
128
  }
125
- function s() {
129
+ function a() {
126
130
  return Error("react-stack-top-frame");
127
131
  }
128
- function E(e) {
129
- if (g.call(e, "key")) {
130
- var r = Object.getOwnPropertyDescriptor(e, "key").get;
131
- if (r && r.isReactWarning) return !1;
132
+ function i(l) {
133
+ if (t2.call(l, "key")) {
134
+ var p = Object.getOwnPropertyDescriptor(l, "key").get;
135
+ if (p && p.isReactWarning) return !1;
132
136
  }
133
- return e.key !== void 0;
137
+ return l.key !== void 0;
134
138
  }
135
- function R(e, r) {
136
- function t() {
137
- y || (y = !0, console.error(
139
+ function d(l, p) {
140
+ function k() {
141
+ o2 || (o2 = !0, console.error(
138
142
  "%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",
139
- r
143
+ p
140
144
  ));
141
145
  }
142
- t.isReactWarning = !0, Object.defineProperty(e, "key", {
143
- get: t,
146
+ k.isReactWarning = !0, Object.defineProperty(l, "key", {
147
+ get: k,
144
148
  configurable: !0
145
149
  });
146
150
  }
147
- function L() {
148
- var e = c(this.type);
149
- return N[e] || (N[e] = !0, console.error(
151
+ function g() {
152
+ var l = e(this.type);
153
+ return s2[l] || (s2[l] = !0, console.error(
150
154
  "Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release."
151
- )), e = this.props.ref, e !== void 0 ? e : null;
155
+ )), l = this.props.ref, l !== void 0 ? l : null;
152
156
  }
153
- function M(e, r, t, n, l, u, A, S) {
154
- return t = u.ref, e = {
157
+ function h(l, p, k, L, A, z, J, X) {
158
+ return k = z.ref, l = {
155
159
  $$typeof: x,
156
- type: e,
157
- key: r,
158
- props: u,
159
- _owner: l
160
- }, (t !== void 0 ? t : null) !== null ? Object.defineProperty(e, "ref", {
160
+ type: l,
161
+ key: p,
162
+ props: z,
163
+ _owner: A
164
+ }, (k !== void 0 ? k : null) !== null ? Object.defineProperty(l, "ref", {
161
165
  enumerable: !1,
162
- get: L
163
- }) : Object.defineProperty(e, "ref", { enumerable: !1, value: null }), e._store = {}, Object.defineProperty(e._store, "validated", {
166
+ get: g
167
+ }) : Object.defineProperty(l, "ref", { enumerable: !1, value: null }), l._store = {}, Object.defineProperty(l._store, "validated", {
164
168
  configurable: !1,
165
169
  enumerable: !1,
166
170
  writable: !0,
167
171
  value: 0
168
- }), Object.defineProperty(e, "_debugInfo", {
172
+ }), Object.defineProperty(l, "_debugInfo", {
169
173
  configurable: !1,
170
174
  enumerable: !1,
171
175
  writable: !0,
172
176
  value: null
173
- }), Object.defineProperty(e, "_debugStack", {
177
+ }), Object.defineProperty(l, "_debugStack", {
174
178
  configurable: !1,
175
179
  enumerable: !1,
176
180
  writable: !0,
177
- value: A
178
- }), Object.defineProperty(e, "_debugTask", {
181
+ value: J
182
+ }), Object.defineProperty(l, "_debugTask", {
179
183
  configurable: !1,
180
184
  enumerable: !1,
181
185
  writable: !0,
182
- value: S
183
- }), Object.freeze && (Object.freeze(e.props), Object.freeze(e)), e;
184
- }
185
- function w(e, r, t, n, l, u, A, S) {
186
- var o = r.children;
187
- if (o !== void 0)
188
- if (n)
189
- if (Q(o)) {
190
- for (n = 0; n < o.length; n++)
191
- j(o[n]);
192
- Object.freeze && Object.freeze(o);
186
+ value: X
187
+ }), Object.freeze && (Object.freeze(l.props), Object.freeze(l)), l;
188
+ }
189
+ function r(l, p, k, L, A, z, J, X) {
190
+ var j = p.children;
191
+ if (j !== void 0)
192
+ if (L)
193
+ if (p2(j)) {
194
+ for (L = 0; L < j.length; L++)
195
+ y(j[L]);
196
+ Object.freeze && Object.freeze(j);
193
197
  } else
194
198
  console.error(
195
199
  "React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."
196
200
  );
197
- else j(o);
198
- if (g.call(r, "key")) {
199
- o = c(e);
200
- var i = Object.keys(r).filter(function(K) {
201
- return K !== "key";
201
+ else y(j);
202
+ if (t2.call(p, "key")) {
203
+ j = e(l);
204
+ var _ = Object.keys(p).filter(function(h2) {
205
+ return h2 !== "key";
202
206
  });
203
- n = 0 < i.length ? "{key: someKey, " + i.join(": ..., ") + ": ...}" : "{key: someKey}", I[o + n] || (i = 0 < i.length ? "{" + i.join(": ..., ") + ": ...}" : "{}", console.error(
207
+ L = 0 < _.length ? "{key: someKey, " + _.join(": ..., ") + ": ...}" : "{key: someKey}", l2[j + L] || (_ = 0 < _.length ? "{" + _.join(": ..., ") + ": ...}" : "{}", console.error(
204
208
  `A props object containing a "key" prop is being spread into JSX:
205
209
  let props = %s;
206
210
  <%s {...props} />
207
211
  React keys must be passed directly to JSX without using spread:
208
212
  let props = %s;
209
213
  <%s key={someKey} {...props} />`,
210
- n,
211
- o,
212
- i,
213
- o
214
- ), I[o + n] = !0);
214
+ L,
215
+ j,
216
+ _,
217
+ j
218
+ ), l2[j + L] = !0);
215
219
  }
216
- if (o = null, t !== void 0 && (d(t), o = "" + t), E(r) && (d(r.key), o = "" + r.key), "key" in r) {
217
- t = {};
218
- for (var P in r)
219
- P !== "key" && (t[P] = r[P]);
220
- } else t = r;
221
- return o && R(
222
- t,
223
- typeof e == "function" ? e.displayName || e.name || "Unknown" : e
224
- ), M(
225
- e,
226
- o,
227
- u,
220
+ if (j = null, k !== void 0 && (t(k), j = "" + k), i(p) && (t(p.key), j = "" + p.key), "key" in p) {
221
+ k = {};
222
+ for (var Z in p)
223
+ Z !== "key" && (k[Z] = p[Z]);
224
+ } else k = p;
225
+ return j && d(
226
+ k,
227
+ typeof l == "function" ? l.displayName || l.name || "Unknown" : l
228
+ ), h(
228
229
  l,
229
- a(),
230
- t,
230
+ j,
231
+ z,
231
232
  A,
232
- S
233
+ n(),
234
+ k,
235
+ J,
236
+ X
233
237
  );
234
238
  }
235
- function j(e) {
236
- typeof e == "object" && e !== null && e.$$typeof === x && e._store && (e._store.validated = 1);
239
+ function y(l) {
240
+ typeof l == "object" && l !== null && l.$$typeof === x && l._store && (l._store.validated = 1);
237
241
  }
238
- var v = ee, x = Symbol.for("react.transitional.element"), W = Symbol.for("react.portal"), p = Symbol.for("react.fragment"), U = Symbol.for("react.strict_mode"), J = Symbol.for("react.profiler"), q = Symbol.for("react.consumer"), z = Symbol.for("react.context"), V = Symbol.for("react.forward_ref"), G = Symbol.for("react.suspense"), X = Symbol.for("react.suspense_list"), B = Symbol.for("react.memo"), h = Symbol.for("react.lazy"), H = Symbol.for("react.activity"), Z = Symbol.for("react.client.reference"), k = v.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, g = Object.prototype.hasOwnProperty, Q = Array.isArray, O = console.createTask ? console.createTask : function() {
242
+ var v = Q, x = Symbol.for("react.transitional.element"), f = Symbol.for("react.portal"), S = Symbol.for("react.fragment"), R = Symbol.for("react.strict_mode"), E = Symbol.for("react.profiler"), F = Symbol.for("react.consumer"), B = Symbol.for("react.context"), T = Symbol.for("react.forward_ref"), H = Symbol.for("react.suspense"), U = Symbol.for("react.suspense_list"), $ = Symbol.for("react.memo"), P = Symbol.for("react.lazy"), b = Symbol.for("react.activity"), N = Symbol.for("react.client.reference"), I = v.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, t2 = Object.prototype.hasOwnProperty, p2 = Array.isArray, W = console.createTask ? console.createTask : function() {
239
243
  return null;
240
244
  };
241
245
  v = {
242
- "react-stack-bottom-frame": function(e) {
243
- return e();
246
+ "react-stack-bottom-frame": function(l) {
247
+ return l();
244
248
  }
245
249
  };
246
- var y, N = {}, C = v["react-stack-bottom-frame"].bind(
250
+ var o2, s2 = {}, n2 = v["react-stack-bottom-frame"].bind(
247
251
  v,
248
- s
249
- )(), Y = O(m(s)), I = {};
250
- _.Fragment = p, _.jsx = function(e, r, t, n, l) {
251
- var u = 1e4 > k.recentlyCreatedOwnerStacks++;
252
- return w(
253
- e,
254
- r,
255
- t,
252
+ a
253
+ )(), c2 = W(s(a)), l2 = {};
254
+ G.Fragment = S, G.jsx = function(l, p, k, L, A) {
255
+ var z = 1e4 > I.recentlyCreatedOwnerStacks++;
256
+ return r(
257
+ l,
258
+ p,
259
+ k,
256
260
  !1,
257
- n,
261
+ L,
262
+ A,
263
+ z ? Error("react-stack-top-frame") : n2,
264
+ z ? W(s(l)) : c2
265
+ );
266
+ }, G.jsxs = function(l, p, k, L, A) {
267
+ var z = 1e4 > I.recentlyCreatedOwnerStacks++;
268
+ return r(
258
269
  l,
259
- u ? Error("react-stack-top-frame") : C,
260
- u ? O(m(e)) : Y
270
+ p,
271
+ k,
272
+ !0,
273
+ L,
274
+ A,
275
+ z ? Error("react-stack-top-frame") : n2,
276
+ z ? W(s(l)) : c2
261
277
  );
262
- }, _.jsxs = function(e, r, t, n, l) {
263
- var u = 1e4 > k.recentlyCreatedOwnerStacks++;
264
- return w(
278
+ };
279
+ }()), G;
280
+ }
281
+ var m2;
282
+ function j2() {
283
+ return m2 || (m2 = 1, process.env.NODE_ENV === "production" ? q.exports = y2() : q.exports = L2()), q.exports;
284
+ }
285
+ var c = j2();
286
+ const M2 = ({ attributes: e, children: o, element: t }) => {
287
+ const s = u2(null), n = t.language || "plaintext";
288
+ return /* @__PURE__ */ c.jsx("pre", { ...e, children: /* @__PURE__ */ c.jsx("code", { ref: s, className: `hljs ${n} language-${n}`, children: o }) });
289
+ }, m = {
290
+ /**
291
+ * Permet de définir si le format défini est actif
292
+ * @param {object} editor - éditeur de texte
293
+ * @param {string} format - format défini (ex: gras, italique, etc...)
294
+ * @returns {boolean}
295
+ */
296
+ isMarkActive(e, o) {
297
+ const t = w.marks(e);
298
+ return t ? t[o] === !0 : !1;
299
+ },
300
+ /**
301
+ * Permet de gérer l'application et la désapplication du format défini
302
+ * @param {object} editor - éditeur de texte
303
+ * @param {string} format - format défini (ex: gras, italique, etc...)
304
+ * @returns {void}
305
+ */
306
+ toggleMark(e, o) {
307
+ m.isMarkActive(e, o) ? w.removeMark(e, o) : (w.addMark(e, o, !0), o === "subscript" ? w.removeMark(e, "superscript") : o === "superscript" && w.removeMark(e, "subscript"));
308
+ },
309
+ /**
310
+ * Permet de définir si le bloc défini est actif
311
+ * @param {object} editor - éditeur de texte
312
+ * @param {string} blockType - élément défini (ex: p, h1, h2...)
313
+ * @returns {boolean}
314
+ */
315
+ isBlockActive(e, o) {
316
+ const [t] = w.nodes(e, {
317
+ match: (s) => s.type === o
318
+ });
319
+ return !!t;
320
+ },
321
+ /**
322
+ * Permet de définir si le bloc défini est dans une liste à puces (non-ordonnée ou numérotée)
323
+ * @param {object} editor - éditeur de texte
324
+ * @returns {boolean}
325
+ */
326
+ isSelectionInList(e) {
327
+ const [o] = w.nodes(e, {
328
+ match: (t) => t.type === "bullet-list" || t.type === "numbered-list"
329
+ });
330
+ return !!o;
331
+ },
332
+ /**
333
+ * Permet de gérer l'application et la désapplication du bloc défini
334
+ * @param {object} editor - éditeur de texte
335
+ * @param {string} blockType - format défini (ex: gras, italique, etc...)
336
+ * @param {string} bulletType - puces définies dans
337
+ * @returns {void}
338
+ */
339
+ toggleBlock(e, o, t = null) {
340
+ const s = m.isBlockActive(e, o), n = o === "bullet-list" || o === "numbered-list";
341
+ if ((o === "h1" || o === "h2") && w.removeMark(e, "fontSize"), n && m.isSelectionInList(e) && !t) {
342
+ u.unwrapNodes(e, {
343
+ match: (i) => n && !w.isEditor(i) && D.isElement(i) && (i.type === "bullet-list" || i.type === "numbered-list"),
344
+ split: !0
345
+ }), u.setNodes(e, { type: "paragraph" });
346
+ return;
347
+ }
348
+ if (t) {
349
+ u.setNodes(e, { listStyleType: t });
350
+ const i = w.range(e, e.selection).anchor.path;
351
+ let d = i;
352
+ i.length === 3 ? d = d.slice(0, 1) : i.length === 4 && (d = d.slice(0, 2)), u.setNodes(e, { type: o }, { at: d });
353
+ } else {
354
+ u.unwrapNodes(e, {
355
+ match: (d) => n && !w.isEditor(d) && D.isElement(d) && d.type === o,
356
+ split: !0
357
+ });
358
+ const i = {
359
+ type: s ? "paragraph" : n ? "list-item" : o
360
+ };
361
+ if (u.setNodes(e, i), !s && n) {
362
+ const d = { type: o, children: [] };
363
+ u.wrapNodes(e, d);
364
+ }
365
+ }
366
+ },
367
+ /**
368
+ * Permet de définir si le bloc défini possède un alignement
369
+ * @param {object} editor - éditeur de texte
370
+ * @param {string} align - alignement défini (ex: left, right ou center.)
371
+ * @returns {boolean}
372
+ */
373
+ isAlignActive(e, o) {
374
+ const [t] = w.nodes(e, {
375
+ match: (s) => s.align === o
376
+ });
377
+ return !!t;
378
+ },
379
+ /**
380
+ * Permet de gérer l'alignement du bloc sélectionné
381
+ * @param {object} editor - éditeur de texte
382
+ * @param {string} alignement - alignement défini (ex: left, right ou center)
383
+ * @returns {void}
384
+ */
385
+ toggleAlign(e, o) {
386
+ const t = m.isAlignActive(e, o);
387
+ ["alignLeft", "center", "right"].forEach((s) => {
388
+ u.unsetNodes(e, { align: s });
389
+ }), t || u.setNodes(e, { align: o });
390
+ },
391
+ /**
392
+ * Permet de définir si le bloc sélectionné peut être indenté
393
+ * @param {object} editor - éditeur de texte
394
+ * @param {string} mark - indentation sélectionné
395
+ * @returns {boolean}
396
+ */
397
+ canIndent(e, o) {
398
+ const [t] = w.nodes(e, {
399
+ match: (s) => s.type === "list-item"
400
+ });
401
+ if (t) {
402
+ const [, s] = t;
403
+ if (o === "indent")
404
+ return !(s.length > 2);
405
+ if (s.length > 2)
406
+ return !0;
407
+ }
408
+ return !1;
409
+ },
410
+ /**
411
+ * Permet de gérer l'indentation du bloc sélectionné
412
+ * @param {object} editor - éditeur de texte
413
+ * @returns {void}
414
+ */
415
+ handleIndent(e) {
416
+ const [o] = w.nodes(e, {
417
+ match: (t) => t.type === "list-item"
418
+ });
419
+ if (o) {
420
+ const [, t] = o, s = w.above(e, {
421
+ match: (n) => ["bullet-list", "numbered-list"].includes(n.type)
422
+ })[0].type;
423
+ try {
424
+ const n = Y.parent(Y.parent(t)), a = w.node(e, n);
425
+ if (D.isElement(a[0]) && a[0].type === s)
426
+ return;
427
+ const i = { type: s, children: [] }, d = [t[0], t[1] + 1];
428
+ u.insertNodes(e, i, { at: d });
429
+ const g = { ...w.node(e, t)[0] }, h = [t[0], t[1] + 1, 0];
430
+ u.insertNodes(e, g, { at: h }), u.removeNodes(e, { at: t }), u.setNodes(e, { type: "list-item" }, { at: [t[0], t[1], 0] });
431
+ } catch (n) {
432
+ console.error("Error indenting list item:", n);
433
+ }
434
+ }
435
+ },
436
+ /**
437
+ * Permet de gérer l'désindentation du bloc sélectionné
438
+ * @param {object} editor - éditeur de texte
439
+ * @returns {void}
440
+ */
441
+ handleOutdent(e) {
442
+ const [o] = w.nodes(e, {
443
+ match: (t) => t.type === "list-item"
444
+ });
445
+ if (o) {
446
+ const [, t] = o, s = w.above(e, {
447
+ match: (n) => ["bullet-list", "numbered-list"].includes(n.type)
448
+ })[0].type;
449
+ try {
450
+ const n = Y.parent(t), a = w.node(e, n);
451
+ D.isElement(a) && a.type === s ? u.liftNodes(e, { at: t }) : u.unwrapNodes(e, {
452
+ at: n,
453
+ match: (i) => D.isElement(i) && i.type === s,
454
+ split: !0
455
+ }), u.setNodes(e, { type: "list-item" }, { at: t });
456
+ } catch (n) {
457
+ console.error("Error dedenting list item:", n);
458
+ }
459
+ }
460
+ },
461
+ /**
462
+ * Permet de définir si le bloc sélectionné est un lien
463
+ * @param {object} editor - éditeur de texte
464
+ * @returns {boolean}
465
+ */
466
+ isLinkActive(e) {
467
+ const { selection: o } = e;
468
+ if (!o) return !1;
469
+ const [t] = w.nodes(e, {
470
+ match: (s) => !w.isEditor(s) && V.isNode(s) && s.type === "link"
471
+ });
472
+ return !!t;
473
+ },
474
+ /**
475
+ * Permet de ajouter ou mettre à jour un lien
476
+ * @param {object} editor - éditeur de texte
477
+ * @param {string} url - url défini
478
+ * @param {string} openInNewTab - attribut pour définir si le lien ouvre dans un nouvel onglet
479
+ * @returns {void}
480
+ */
481
+ updateLink(e, o, t) {
482
+ const s = t ? "_blank" : "_self", n = t ? "noopener noreferrer" : "";
483
+ if (m.isLinkActive(e))
484
+ u.setNodes(
265
485
  e,
266
- r,
267
- t,
268
- !0,
269
- n,
270
- l,
271
- u ? Error("react-stack-top-frame") : C,
272
- u ? O(m(e)) : Y
486
+ { href: o, target: s, rel: n },
487
+ { match: (a) => a.type === "link" }
273
488
  );
489
+ else {
490
+ const { selection: a } = e;
491
+ if (!a || a2.isCollapsed(a)) return;
492
+ const i = { text: o };
493
+ a2.isCollapsed(a) ? u.insertNodes(e, {
494
+ type: "link",
495
+ href: o,
496
+ target: s,
497
+ rel: n,
498
+ children: [i]
499
+ }) : u.setNodes(
500
+ e,
501
+ { type: "link", href: o, target: s, rel: n },
502
+ { match: (d) => r2.isText(d), split: !0 }
503
+ ), u.removeNodes(e, {
504
+ match: (d) => d.type === "paragraph" && d.children.length === 0
505
+ });
506
+ }
507
+ },
508
+ /**
509
+ * Permet de supprimer le lien
510
+ * @param {object} editor - éditeur de texte
511
+ * @returns {void}
512
+ */
513
+ removeLink(e) {
514
+ if (e.selection) {
515
+ const { selection: o } = e, [t, s] = w.node(e, o);
516
+ if (t && t.type === "link") {
517
+ const n = t.text, a = Y.parent(s), i = V.get(e, a);
518
+ u.insertNodes(
519
+ e,
520
+ { type: i.type !== "list-item" ? i.type : "paragraph", text: n },
521
+ { at: s, match: (d) => r2.isText(d) }
522
+ ), u.removeNodes(e, { at: s });
523
+ } else
524
+ console.warn("No link found at the current selection.");
525
+ } else
526
+ console.warn("No selection found. Cannot remove link.");
527
+ },
528
+ /**
529
+ * Permet de gérer la couleur de fond du bloc sélectionné
530
+ * @param {object} editor - éditeur de texte
531
+ * @param {string} coulor - couleur définie
532
+ * @returns {void}
533
+ */
534
+ applyTextColor(e, o) {
535
+ const { selection: t } = e;
536
+ t && w.addMark(e, "color", o);
537
+ },
538
+ /**
539
+ * Permet de gérer la couleur de texte du bloc sélectionné
540
+ * @param {object} editor - éditeur de texte
541
+ * @param {string} coulor - couleur définie
542
+ * @returns {void}
543
+ */
544
+ applyBackgroundTextColor(e, o) {
545
+ const { selection: t } = e;
546
+ t && w.addMark(e, "bgColor", o);
547
+ },
548
+ /**
549
+ * Permet de gérer la taille de police bloc sélectionné
550
+ * @param {object} editor - éditeur de texte
551
+ * @param {string} size - taille définie
552
+ * @returns {void}
553
+ */
554
+ applyFontSize(e, o) {
555
+ const { selection: t } = e;
556
+ t && w.addMark(e, "fontSize", o);
557
+ },
558
+ /**
559
+ * Permet de gérer la police d'écriture bloc sélectionné
560
+ * @param {object} editor - éditeur de texte
561
+ * @param {string} fontFamily - police définie
562
+ * @returns {void}
563
+ */
564
+ applyFontFamily(e, o) {
565
+ const { selection: t } = e;
566
+ t && w.addMark(e, "fontFamily", o);
567
+ },
568
+ /**
569
+ * Gère l'ajout, l'édition et la suppression d'un bloc de code
570
+ * @param {object} editor - éditeur de texte
571
+ * @param {string} language - langage défini (ex: cpp(C++), php, etc...)
572
+ * @returns {void}
573
+ */
574
+ handleCode(e, o) {
575
+ const { selection: t } = e;
576
+ if (t) {
577
+ const [s] = w.nodes(e, {
578
+ match: (n) => n.type === "paragraph"
579
+ });
580
+ if (s) {
581
+ const [, n] = s, a = s[0].children.map((d) => d.text).join(""), i = {
582
+ type: "code",
583
+ language: o,
584
+ children: [{ text: a }]
585
+ };
586
+ u.setNodes(e, i, { at: n }), u.select(e, n);
587
+ } else {
588
+ const [n] = w.nodes(e, {
589
+ match: (a) => a.type === "code"
590
+ });
591
+ if (n) {
592
+ const [, a] = n;
593
+ if (o === "init") {
594
+ const d = {
595
+ type: "paragraph",
596
+ children: [{ text: n[0].children.map((g) => g.text).join("") }]
597
+ };
598
+ u.setNodes(e, d, { at: a }), u.unsetNodes(e, "language", { at: a }), u.select(e, a);
599
+ } else
600
+ u.setNodes(e, { language: o }, { at: a }), u.select(e, a);
601
+ }
602
+ }
603
+ }
604
+ },
605
+ /**
606
+ * Permet de gérer les images
607
+ * @param {object} editor - éditeur de texte
608
+ * @param {string} url - url définie
609
+ * @returns {void}
610
+ */
611
+ insertImage(e, o) {
612
+ const t = {
613
+ type: "image",
614
+ url: o,
615
+ children: [{ text: "" }]
616
+ }, s = {
617
+ type: "paragraph",
618
+ children: [{ text: "" }]
619
+ };
620
+ u.insertNodes(e, t), u.insertNodes(e, s);
621
+ },
622
+ /**
623
+ * Permet de gérer l'upload d'un fichier
624
+ * @param {Event} event
625
+ * @param {object} editor - éditeur de texte
626
+ * @returns {void}
627
+ */
628
+ handleFileChange(e, o) {
629
+ if (e.target.files[0]) {
630
+ const s = e.target.files[0];
631
+ if (s) {
632
+ const n = new Image(), a = new FileReader();
633
+ a.onload = (i) => {
634
+ s.type === "image/svg+xml" ? this.insertImage(o, i.target.result) : (n.src = i.target.result, n.onload = () => {
635
+ const g = document.createElement("canvas"), h = g.getContext("2d"), r = 800, y = 600;
636
+ let v = n.width, x = n.height;
637
+ v > x ? v > r && (x *= r / v, v = r) : x > y && (v *= y / x, x = y), g.width = v, g.height = x, h.drawImage(n, 0, 0, v, x);
638
+ const f = g.toDataURL("image/jpeg");
639
+ this.insertImage(o, f);
640
+ }, n.onerror = () => {
641
+ console.error("Failed to load image.");
642
+ });
643
+ }, a.onerror = () => {
644
+ console.error("Failed to read file.");
645
+ }, a.readAsDataURL(s);
646
+ }
647
+ }
648
+ },
649
+ /**
650
+ * Permet de créer un tableau
651
+ * @param {object} editor - éditeur de texte
652
+ * @param {number} rows - nombre de lignes
653
+ * @param {number} columns - nombre de colonnes
654
+ * @returns {void}
655
+ */
656
+ insertTable(e, o, t) {
657
+ const s = {
658
+ type: "table",
659
+ children: Array.from({ length: o }, () => ({
660
+ type: "table-row",
661
+ children: Array.from({ length: t }, () => ({
662
+ type: "table-cell",
663
+ children: [{ text: "" }]
664
+ }))
665
+ }))
274
666
  };
275
- }()), _;
667
+ u.insertNodes(e, s);
668
+ },
669
+ /**
670
+ * Permet de définir si l'élément sélectionné est dans un tableau
671
+ * @param {object} editor - éditeur de texte
672
+ * @returns {boolean}
673
+ */
674
+ isSelectionInTable(e) {
675
+ const [o] = w.nodes(e, {
676
+ match: (t) => t.type === "table"
677
+ });
678
+ return !!o;
679
+ },
680
+ /**
681
+ * Permet d'obtenir le tableau sélectionné
682
+ * @param {object} editor - éditeur de texte
683
+ * @returns {void}
684
+ */
685
+ getTableFromSelection(e) {
686
+ const [o] = w.nodes(e, {
687
+ match: (t) => t.type === "table"
688
+ });
689
+ return o ? o[0] : null;
690
+ },
691
+ /**
692
+ * Permet d'ajouter une ligne au tableau sélectionné
693
+ * @param {object} editor - éditeur de texte
694
+ * @returns {void}
695
+ */
696
+ addRow(e) {
697
+ var t;
698
+ const o = m.getTableFromSelection(e);
699
+ if (o) {
700
+ const s = (t = e.selection) == null ? void 0 : t.anchor.path, n = s[1], a = {
701
+ type: "table-row",
702
+ children: o.children[n].children.map((d) => ({
703
+ ...d,
704
+ children: [{ text: "" }]
705
+ }))
706
+ }, i = [s.slice(0, 1), n + 1];
707
+ u.insertNodes(e, a, { at: i });
708
+ }
709
+ },
710
+ /**
711
+ * Permet d'ajouter une colonne au tableau sélectionné
712
+ * @param {object} editor - éditeur de texte
713
+ * @returns {void}
714
+ */
715
+ addColumn(e) {
716
+ var t;
717
+ const o = m.getTableFromSelection(e);
718
+ if (o) {
719
+ const s = (t = e.selection) == null ? void 0 : t.anchor.path;
720
+ if (V.get(e, s)) {
721
+ const a = s[s.length - 2];
722
+ a !== void 0 ? o.children.forEach((i, d) => {
723
+ const g = {
724
+ type: "table-cell",
725
+ children: [{ text: "" }]
726
+ }, h = [...s.slice(0, 1), d, a + 1];
727
+ h[h.length - 1] <= i.children.length ? u.insertNodes(e, g, { at: h }) : console.warn(`Cannot insert at path ${h}. Row does not have enough cells.`);
728
+ }) : console.error("Column index is undefined, unable to find the selected cell in the row.");
729
+ } else
730
+ console.error("Selected cell not found.");
731
+ }
732
+ },
733
+ /**
734
+ * Permet de supprimer une ligne du tableau sélectionné
735
+ * @param {object} editor - éditeur de texte
736
+ * @returns {void}
737
+ */
738
+ deleteRow(e) {
739
+ var t;
740
+ if (m.getTableFromSelection(e)) {
741
+ const s = (t = e.selection) == null ? void 0 : t.anchor.path, n = s[1];
742
+ if (n !== void 0) {
743
+ const a = [s[0], n];
744
+ u.removeNodes(e, { at: a });
745
+ } else
746
+ console.error("Selected row index is undefined.");
747
+ }
748
+ },
749
+ /**
750
+ * Permet de supprimer une colonne du tableau sélectionné
751
+ * @param {object} editor - éditeur de texte
752
+ * @returns {void}
753
+ */
754
+ deleteColumn(e) {
755
+ var t;
756
+ const o = m.getTableFromSelection(e);
757
+ if (o) {
758
+ const s = (t = e.selection) == null ? void 0 : t.anchor.path, n = V.get(e, s), a = s[s.length - 1];
759
+ let i = -1;
760
+ o.children[a].children.forEach((d, g) => {
761
+ d.children[0] === n && (i = g);
762
+ }), i !== -1 && o.children.forEach((d, g) => {
763
+ if (d.children.length > i) {
764
+ const h = [s[0], g, i];
765
+ V.get(e, h) ? u.removeNodes(e, { at: h }) : console.error(`Invalid path: ${h}`);
766
+ }
767
+ });
768
+ }
769
+ },
770
+ /**
771
+ * Permet de supprimer le tableau sélectionné
772
+ * @param {object} editor - éditeur de texte
773
+ * @returns {void}
774
+ */
775
+ deleteTable(e) {
776
+ var t;
777
+ if (m.getTableFromSelection(e)) {
778
+ const s = (t = e.selection) == null ? void 0 : t.anchor.path.slice(0, 1);
779
+ s.length > 0 ? u.removeNodes(e, { at: s }) : console.error("Table path is invalid.");
780
+ } else
781
+ console.error("No table selected.");
782
+ }
783
+ }, F2 = ({ attributes: e, children: o, element: t }) => {
784
+ const s = { textAlign: t.align || "left" };
785
+ return /* @__PURE__ */ c.jsx("p", { style: s, ...e, children: o });
786
+ }, S2 = ({ attributes: e, children: o, leaf: t }) => {
787
+ let s = [];
788
+ t.bold && s.push("strong"), t.italic && s.push("em"), t.underline && s.push("u"), t.strikethrough && s.push("del"), t.subscript && !t.superscript && s.push("sub"), !t.subscript && t.superscript && s.push("sup"), t.bgColor && s.push("mark");
789
+ const n = {
790
+ color: t.color || void 0,
791
+ fontSize: t.fontSize || void 0,
792
+ backgroundColor: t.bgColor || void 0,
793
+ fontFamily: t.fontFamily || void 0
794
+ }, a = (i) => {
795
+ i.stopPropagation(), t.target === "_blank" ? (window.open(t.href, t.target, t.rel ? { rel: t.rel } : void 0), i.preventDefault()) : window.location.href = t.href;
796
+ };
797
+ return t.href ? /* @__PURE__ */ c.jsx("a", { ...e, href: t.href, target: t.target || "_self", rel: t.rel || "noopener noreferrer", style: n, onClick: a, children: s.length === 0 ? o : s.reduceRight((i, d) => Q.createElement(d, { ...e }, i), o) }) : s.length === 0 ? /* @__PURE__ */ c.jsx("span", { ...e, style: n, children: o }) : s.reduceRight((i, d) => Q.createElement(d, { ...e, style: n }, i), o);
798
+ }, R2 = ({ attributes: e, children: o, element: t }) => {
799
+ const s = {
800
+ textAlign: t.align || "left",
801
+ listStyleType: t.listStyleType || "disc"
802
+ };
803
+ switch (t.type) {
804
+ case "bullet-list":
805
+ return /* @__PURE__ */ c.jsx("ul", { style: s, ...e, children: o });
806
+ case "numbered-list":
807
+ return /* @__PURE__ */ c.jsx("ol", { style: s, ...e, children: o });
808
+ case "list-item":
809
+ return /* @__PURE__ */ c.jsx("li", { style: s, ...e, children: o });
810
+ default:
811
+ return /* @__PURE__ */ c.jsx("p", { style: s, ...e, children: o });
812
+ }
813
+ }, T2 = ({ attributes: e, children: o }) => /* @__PURE__ */ c.jsx("blockquote", { ...e, style: { borderLeft: "4px solid #ccc", paddingLeft: "10px", color: "#666", margin: "20px 0" }, children: o }), N2 = ({ onChange: e, selectedType: o }) => {
814
+ const t = [
815
+ { value: "disc", label: "Disque" },
816
+ { value: "circle", label: "Cercle" },
817
+ { value: "square", label: "Carré" },
818
+ { value: "'✔'", label: "Check" },
819
+ { value: "'✘'", label: "Croix" },
820
+ { value: "'➢'", label: "Petite flèche" },
821
+ { value: "'➔'", label: "Flèche épaisse" }
822
+ ];
823
+ return /* @__PURE__ */ c.jsx("ul", { className: "dropdown-menu", children: t.map((s) => /* @__PURE__ */ c.jsx(
824
+ "li",
825
+ {
826
+ value: s.value,
827
+ onClick: () => e(s.value),
828
+ className: `${o && s.value === o ? "tool--active" : ""}`,
829
+ children: s.label
830
+ },
831
+ s.value
832
+ )) });
833
+ }, z2 = ({ onChange: e, selectedType: o }) => {
834
+ const t = [
835
+ { value: "decimal", label: "Décimal" },
836
+ { value: "upper-roman", label: "Lettres Romaines majuscules" },
837
+ { value: "lower-roman", label: "Lettres Romaines minuscules" },
838
+ { value: "upper-greek", label: "Lettres Grecques majuscules" },
839
+ { value: "lower-greek", label: "Lettres Grecques minuscules" }
840
+ ];
841
+ return /* @__PURE__ */ c.jsx("ul", { className: "dropdown-menu", children: t.map((s) => /* @__PURE__ */ c.jsx(
842
+ "li",
843
+ {
844
+ value: s.value,
845
+ onClick: () => e(s.value),
846
+ className: `${o && s.value === o ? "tool--active" : ""}`,
847
+ children: s.label
848
+ },
849
+ s.value
850
+ )) });
851
+ }, E2 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%20www.svgrepo.com,%20Generator:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3csvg%20width='800px'%20height='800px'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20id='Edit%20/%20Add_Column'%3e%3cpath%20id='Vector'%20d='M5%2017H8M8%2017H11M8%2017V14M8%2017V20M14%2021H15C16.1046%2021%2017%2020.1046%2017%2019V5C17%203.89543%2016.1046%203%2015%203H13C11.8954%203%2011%203.89543%2011%205V11'%20stroke='%23c0c0c0'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/g%3e%3c/svg%3e", A2 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%20www.svgrepo.com,%20Generator:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3csvg%20width='800px'%20height='800px'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20id='Edit%20/%20Add_Column'%3e%3cpath%20id='Vector'%20d='M5%2017H8M8%2017H11M8%2017V14M8%2017V20M14%2021H15C16.1046%2021%2017%2020.1046%2017%2019V5C17%203.89543%2016.1046%203%2015%203H13C11.8954%203%2011%203.89543%2011%205V11'%20stroke='%23000000'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/g%3e%3c/svg%3e", I2 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%20www.svgrepo.com,%20Generator:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3csvg%20width='800px'%20height='800px'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20id='Edit%20/%20Add_Row'%3e%3cpath%20id='Vector'%20d='M3%2014V15C3%2016.1046%203.89543%2017%205%2017L19%2017C20.1046%2017%2021%2016.1046%2021%2015L21%2013C21%2011.8954%2020.1046%2011%2019%2011H13M10%208H7M7%208H4M7%208V5M7%208V11'%20stroke='%23c0c0c0'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/g%3e%3c/svg%3e", _2 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%20www.svgrepo.com,%20Generator:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3csvg%20width='800px'%20height='800px'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20id='Edit%20/%20Add_Row'%3e%3cpath%20id='Vector'%20d='M3%2014V15C3%2016.1046%203.89543%2017%205%2017L19%2017C20.1046%2017%2021%2016.1046%2021%2015L21%2013C21%2011.8954%2020.1046%2011%2019%2011H13M10%208H7M7%208H4M7%208V5M7%208V11'%20stroke='%23000000'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/g%3e%3c/svg%3e", B2 = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20512%20512'%3e%3c!--!Font%20Awesome%20Free%206.7.2%20by%20@fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20Copyright%202025%20Fonticons,%20Inc.--%3e%3cpath%20fill='%23000000'%20d='M86.6%209.4C74.1-3.1%2053.9-3.1%2041.4%209.4s-12.5%2032.8%200%2045.3L122.7%20136%2030.6%20228.1c-37.5%2037.5-37.5%2098.3%200%20135.8L148.1%20481.4c37.5%2037.5%2098.3%2037.5%20135.8%200L474.3%20290.9c28.1-28.1%2028.1-73.7%200-101.8L322.9%2037.7c-28.1-28.1-73.7-28.1-101.8%200L168%2090.7%2086.6%209.4zM168%20181.3l49.4%2049.4c12.5%2012.5%2032.8%2012.5%2045.3%200s12.5-32.8%200-45.3L213.3%20136l53.1-53.1c3.1-3.1%208.2-3.1%2011.3%200L429.1%20234.3c3.1%203.1%203.1%208.2%200%2011.3L386.7%20288%2067.5%20288c1.4-5.4%204.2-10.4%208.4-14.6L168%20181.3z'/%3e%3c/svg%3e", P2 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%20www.svgrepo.com,%20Generator:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3csvg%20width='800px'%20height='800px'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%20fill='none'%3e%3cpath%20fill='%23000000'%20fill-rule='evenodd'%20d='M2%206a3%203%200%200%201%203-3h14a3%203%200%200%201%203%203v12a3%203%200%200%201-3%203H5a3%203%200%200%201-3-3V6zm5%201a1%201%200%200%200%200%202h5a1%201%200%201%200%200-2H7zm8%200a1%201%200%201%200%200%202h2a1%201%200%201%200%200-2h-2zm-8%204a1%201%200%201%200%200%202h1a1%201%200%201%200%200-2H7zm4%200a1%201%200%201%200%200%202h6a1%201%200%201%200%200-2h-6zm-4%204a1%201%200%201%200%200%202h5a1%201%200%201%200%200-2H7zm8%200a1%201%200%201%200%200%202h2a1%201%200%201%200%200-2h-2z'%20clip-rule='evenodd'/%3e%3c/svg%3e", V2 = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20448%20512'%3e%3c!--!Font%20Awesome%20Free%206.7.2%20by%20@fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20Copyright%202025%20Fonticons,%20Inc.--%3e%3cpath%20fill='%23000000'%20d='M448%20296c0%2066.3-53.7%20120-120%20120l-8%200c-17.7%200-32-14.3-32-32s14.3-32%2032-32l8%200c30.9%200%2056-25.1%2056-56l0-8-64%200c-35.3%200-64-28.7-64-64l0-64c0-35.3%2028.7-64%2064-64l64%200c35.3%200%2064%2028.7%2064%2064l0%2032%200%2032%200%2072zm-256%200c0%2066.3-53.7%20120-120%20120l-8%200c-17.7%200-32-14.3-32-32s14.3-32%2032-32l8%200c30.9%200%2056-25.1%2056-56l0-8-64%200c-35.3%200-64-28.7-64-64l0-64c0-35.3%2028.7-64%2064-64l64%200c35.3%200%2064%2028.7%2064%2064l0%2032%200%2032%200%2072z'/%3e%3c/svg%3e", D2 = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20384%20512'%3e%3c!--!Font%20Awesome%20Free%206.7.2%20by%20@fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20Copyright%202025%20Fonticons,%20Inc.--%3e%3cpath%20d='M0%2064C0%2046.3%2014.3%2032%2032%2032l48%200%2016%200%20128%200c70.7%200%20128%2057.3%20128%20128c0%2031.3-11.3%2060.1-30%2082.3c37.1%2022.4%2062%2063.1%2062%20109.7c0%2070.7-57.3%20128-128%20128L96%20480l-16%200-48%200c-17.7%200-32-14.3-32-32s14.3-32%2032-32l16%200%200-160L48%2096%2032%2096C14.3%2096%200%2081.7%200%2064zM224%20224c35.3%200%2064-28.7%2064-64s-28.7-64-64-64L112%2096l0%20128%20112%200zM112%20288l0%20128%20144%200c35.3%200%2064-28.7%2064-64s-28.7-64-64-64l-32%200-112%200z'/%3e%3c/svg%3e", O2 = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20512%20512'%3e%3c!--!Font%20Awesome%20Free%206.7.2%20by%20@fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20Copyright%202025%20Fonticons,%20Inc.--%3e%3cpath%20d='M64%20144a48%2048%200%201%200%200-96%2048%2048%200%201%200%200%2096zM192%2064c-17.7%200-32%2014.3-32%2032s14.3%2032%2032%2032l288%200c17.7%200%2032-14.3%2032-32s-14.3-32-32-32L192%2064zm0%20160c-17.7%200-32%2014.3-32%2032s14.3%2032%2032%2032l288%200c17.7%200%2032-14.3%2032-32s-14.3-32-32-32l-288%200zm0%20160c-17.7%200-32%2014.3-32%2032s14.3%2032%2032%2032l288%200c17.7%200%2032-14.3%2032-32s-14.3-32-32-32l-288%200zM64%20464a48%2048%200%201%200%200-96%2048%2048%200%201%200%200%2096zm48-208a48%2048%200%201%200%20-96%200%2048%2048%200%201%200%2096%200z'/%3e%3c/svg%3e", G2 = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20448%20512'%3e%3c!--!Font%20Awesome%20Free%206.7.2%20by%20@fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20Copyright%202025%20Fonticons,%20Inc.--%3e%3cpath%20d='M352%2064c0-17.7-14.3-32-32-32L128%2032c-17.7%200-32%2014.3-32%2032s14.3%2032%2032%2032l192%200c17.7%200%2032-14.3%2032-32zm96%20128c0-17.7-14.3-32-32-32L32%20160c-17.7%200-32%2014.3-32%2032s14.3%2032%2032%2032l384%200c17.7%200%2032-14.3%2032-32zM0%20448c0%2017.7%2014.3%2032%2032%2032l384%200c17.7%200%2032-14.3%2032-32s-14.3-32-32-32L32%20416c-17.7%200-32%2014.3-32%2032zM352%20320c0-17.7-14.3-32-32-32l-192%200c-17.7%200-32%2014.3-32%2032s14.3%2032%2032%2032l192%200c17.7%200%2032-14.3%2032-32z'/%3e%3c/svg%3e", H2 = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20512%20512'%3e%3c!--!Font%20Awesome%20Free%206.7.2%20by%20@fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20Copyright%202025%20Fonticons,%20Inc.--%3e%3cpath%20fill='%23000000'%20d='M512%20256c0%20.9%200%201.8%200%202.7c-.4%2036.5-33.6%2061.3-70.1%2061.3L344%20320c-26.5%200-48%2021.5-48%2048c0%203.4%20.4%206.7%201%209.9c2.1%2010.2%206.5%2020%2010.8%2029.9c6.1%2013.8%2012.1%2027.5%2012.1%2042c0%2031.8-21.6%2060.7-53.4%2062c-3.5%20.1-7%20.2-10.6%20.2C114.6%20512%200%20397.4%200%20256S114.6%200%20256%200S512%20114.6%20512%20256zM128%20288a32%2032%200%201%200%20-64%200%2032%2032%200%201%200%2064%200zm0-96a32%2032%200%201%200%200-64%2032%2032%200%201%200%200%2064zM288%2096a32%2032%200%201%200%20-64%200%2032%2032%200%201%200%2064%200zm96%2096a32%2032%200%201%200%200-64%2032%2032%200%201%200%200%2064z'/%3e%3c/svg%3e", U2 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%20www.svgrepo.com,%20Generator:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3csvg%20width='800px'%20height='800px'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20id='Edit%20/%20Delete_Column'%3e%3cpath%20id='Vector'%20d='M10%2021H9C7.89543%2021%207%2020.1046%207%2019V5C7%203.89543%207.89543%203%209%203H11C12.1046%203%2013%203.89543%2013%205V11M19%2016H13'%20stroke='%23c0c0c0'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/g%3e%3c/svg%3e", $2 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%20www.svgrepo.com,%20Generator:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3csvg%20width='800px'%20height='800px'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20id='Edit%20/%20Delete_Column'%3e%3cpath%20id='Vector'%20d='M10%2021H9C7.89543%2021%207%2020.1046%207%2019V5C7%203.89543%207.89543%203%209%203H11C12.1046%203%2013%203.89543%2013%205V11M19%2016H13'%20stroke='%23000000'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/g%3e%3c/svg%3e", Y2 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%20www.svgrepo.com,%20Generator:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3csvg%20width='800px'%20height='800px'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20id='Edit%20/%20Delete_Row'%3e%3cpath%20id='Vector'%20d='M14%2016H20M21%2010V9C21%207.89543%2020.1046%207%2019%207H5C3.89543%207%203%207.89543%203%209V11C3%2012.1046%203.89543%2013%205%2013H11'%20stroke='%23c0c0c0'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/g%3e%3c/svg%3e", q2 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%20www.svgrepo.com,%20Generator:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3csvg%20width='800px'%20height='800px'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20id='Edit%20/%20Delete_Row'%3e%3cpath%20id='Vector'%20d='M14%2016H20M21%2010V9C21%207.89543%2020.1046%207%2019%207H5C3.89543%207%203%207.89543%203%209V11C3%2012.1046%203.89543%2013%205%2013H11'%20stroke='%23000000'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/g%3e%3c/svg%3e", W2 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%20www.svgrepo.com,%20Generator:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3csvg%20fill='%23c0c0c0'%20width='800px'%20height='800px'%20viewBox='0%200%201920%201920'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M1800%201740c0%2033-26.88%2060-60%2060H180c-33.12%200-60-27-60-60V180c0-33.12%2026.88-60%2060-60h1560c33.12%200%2060%2026.88%2060%2060v1560ZM1740%200H180C80.76%200%200%2080.76%200%20180v1560c0%2099.24%2080.76%20180%20180%20180h1560c99.24%200%20180-80.76%20180-180V180c0-99.24-80.76-180-180-180Zm-235.08%20245.388L960%20790.308l-544.92-544.92-169.68%20169.68%20544.92%20544.92-544.92%20544.92%20169.68%20169.68L960%201129.668l544.92%20544.92%20169.68-169.68-544.92-544.92%20544.92-544.92-169.68-169.68Z'%20fill-rule='evenodd'/%3e%3c/svg%3e", J2 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%20www.svgrepo.com,%20Generator:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3csvg%20fill='%23000000'%20width='800px'%20height='800px'%20viewBox='0%200%201920%201920'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M1800%201740c0%2033-26.88%2060-60%2060H180c-33.12%200-60-27-60-60V180c0-33.12%2026.88-60%2060-60h1560c33.12%200%2060%2026.88%2060%2060v1560ZM1740%200H180C80.76%200%200%2080.76%200%20180v1560c0%2099.24%2080.76%20180%20180%20180h1560c99.24%200%20180-80.76%20180-180V180c0-99.24-80.76-180-180-180Zm-235.08%20245.388L960%20790.308l-544.92-544.92-169.68%20169.68%20544.92%20544.92-544.92%20544.92%20169.68%20169.68L960%201129.668l544.92%20544.92%20169.68-169.68-544.92-544.92%20544.92-544.92-169.68-169.68Z'%20fill-rule='evenodd'/%3e%3c/svg%3e", X2 = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20448%20512'%3e%3c!--!Font%20Awesome%20Free%206.7.2%20by%20@fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20Copyright%202025%20Fonticons,%20Inc.--%3e%3cpath%20fill='%23000000'%20d='M254%2052.8C249.3%2040.3%20237.3%2032%20224%2032s-25.3%208.3-30%2020.8L57.8%20416%2032%20416c-17.7%200-32%2014.3-32%2032s14.3%2032%2032%2032l96%200c17.7%200%2032-14.3%2032-32s-14.3-32-32-32l-1.8%200%2018-48%20159.6%200%2018%2048-1.8%200c-17.7%200-32%2014.3-32%2032s14.3%2032%2032%2032l96%200c17.7%200%2032-14.3%2032-32s-14.3-32-32-32l-25.8%200L254%2052.8zM279.8%20304l-111.6%200L224%20155.1%20279.8%20304z'/%3e%3c/svg%3e", Z2 = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20640%20512'%3e%3c!--!Font%20Awesome%20Free%206.7.2%20by%20@fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20Copyright%202025%20Fonticons,%20Inc.--%3e%3cpath%20fill='%23000000'%20d='M579.8%20267.7c56.5-56.5%2056.5-148%200-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6%201.1c-14.4%2010.3-17.7%2030.3-7.4%2044.6s30.3%2017.7%2044.6%207.4l1.6-1.1c32.1-22.9%2076-19.3%20103.8%208.6c31.5%2031.5%2031.5%2082.5%200%20114L422.3%20334.8c-31.5%2031.5-82.5%2031.5-114%200c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4%206.9-34.4-7.4-44.6s-34.4-6.9-44.6%207.4l-1.1%201.6C206.5%20251.2%20213%20330%20263%20380c56.5%2056.5%20148%2056.5%20204.5%200L579.8%20267.7zM60.2%20244.3c-56.5%2056.5-56.5%20148%200%20204.5c50%2050%20128.8%2056.5%20186.3%2015.4l1.6-1.1c14.4-10.3%2017.7-30.3%207.4-44.6s-30.3-17.7-44.6-7.4l-1.6%201.1c-32.1%2022.9-76%2019.3-103.8-8.6C74%20372%2074%20321%20105.5%20289.5L217.7%20177.2c31.5-31.5%2082.5-31.5%20114%200c27.9%2027.9%2031.5%2071.8%208.6%20103.9l-1.1%201.6c-10.3%2014.4-6.9%2034.4%207.4%2044.6s34.4%206.9%2044.6-7.4l1.1-1.6C433.5%20260.8%20427%20182%20377%20132c-56.5-56.5-148-56.5-204.5%200L60.2%20244.3z'/%3e%3c/svg%3e", K2 = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20512%20512'%3e%3c!--!Font%20Awesome%20Free%206.7.2%20by%20@fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20Copyright%202025%20Fonticons,%20Inc.--%3e%3cpath%20fill='%23000000'%20d='M0%2096C0%2060.7%2028.7%2032%2064%2032l384%200c35.3%200%2064%2028.7%2064%2064l0%20320c0%2035.3-28.7%2064-64%2064L64%20480c-35.3%200-64-28.7-64-64L0%2096zM323.8%20202.5c-4.5-6.6-11.9-10.5-19.8-10.5s-15.4%203.9-19.8%2010.5l-87%20127.6L170.7%20297c-4.6-5.7-11.5-9-18.7-9s-14.2%203.3-18.7%209l-64%2080c-5.8%207.2-6.9%2017.1-2.9%2025.4s12.4%2013.6%2021.6%2013.6l96%200%2032%200%20208%200c8.9%200%2017.1-4.9%2021.2-12.8s3.6-17.4-1.4-24.7l-120-176zM112%20192a48%2048%200%201%200%200-96%2048%2048%200%201%200%200%2096z'/%3e%3c/svg%3e", Q2 = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20448%20512'%3e%3c!--!Font%20Awesome%20Free%206.7.2%20by%20@fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20Copyright%202025%20Fonticons,%20Inc.--%3e%3cpath%20fill='%23c0c0c0'%20d='M0%2064C0%2046.3%2014.3%2032%2032%2032l384%200c17.7%200%2032%2014.3%2032%2032s-14.3%2032-32%2032L32%2096C14.3%2096%200%2081.7%200%2064zM192%20192c0-17.7%2014.3-32%2032-32l192%200c17.7%200%2032%2014.3%2032%2032s-14.3%2032-32%2032l-192%200c-17.7%200-32-14.3-32-32zm32%2096l192%200c17.7%200%2032%2014.3%2032%2032s-14.3%2032-32%2032l-192%200c-17.7%200-32-14.3-32-32s14.3-32%2032-32zM0%20448c0-17.7%2014.3-32%2032-32l384%200c17.7%200%2032%2014.3%2032%2032s-14.3%2032-32%2032L32%20480c-17.7%200-32-14.3-32-32zM127.8%20268.6L25.8%20347.9C15.3%20356.1%200%20348.6%200%20335.3L0%20176.7c0-13.3%2015.3-20.8%2025.8-12.6l101.9%2079.3c8.2%206.4%208.2%2018.9%200%2025.3z'/%3e%3c/svg%3e", e0 = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20448%20512'%3e%3c!--!Font%20Awesome%20Free%206.7.2%20by%20@fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20Copyright%202025%20Fonticons,%20Inc.--%3e%3cpath%20fill='%23000000'%20d='M0%2064C0%2046.3%2014.3%2032%2032%2032l384%200c17.7%200%2032%2014.3%2032%2032s-14.3%2032-32%2032L32%2096C14.3%2096%200%2081.7%200%2064zM192%20192c0-17.7%2014.3-32%2032-32l192%200c17.7%200%2032%2014.3%2032%2032s-14.3%2032-32%2032l-192%200c-17.7%200-32-14.3-32-32zm32%2096l192%200c17.7%200%2032%2014.3%2032%2032s-14.3%2032-32%2032l-192%200c-17.7%200-32-14.3-32-32s14.3-32%2032-32zM0%20448c0-17.7%2014.3-32%2032-32l384%200c17.7%200%2032%2014.3%2032%2032s-14.3%2032-32%2032L32%20480c-17.7%200-32-14.3-32-32zM127.8%20268.6L25.8%20347.9C15.3%20356.1%200%20348.6%200%20335.3L0%20176.7c0-13.3%2015.3-20.8%2025.8-12.6l101.9%2079.3c8.2%206.4%208.2%2018.9%200%2025.3z'/%3e%3c/svg%3e", t0 = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20384%20512'%3e%3c!--!Font%20Awesome%20Free%206.7.2%20by%20@fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20Copyright%202025%20Fonticons,%20Inc.--%3e%3cpath%20d='M128%2064c0-17.7%2014.3-32%2032-32l192%200c17.7%200%2032%2014.3%2032%2032s-14.3%2032-32%2032l-58.7%200L160%20416l64%200c17.7%200%2032%2014.3%2032%2032s-14.3%2032-32%2032L32%20480c-17.7%200-32-14.3-32-32s14.3-32%2032-32l58.7%200L224%2096l-64%200c-17.7%200-32-14.3-32-32z'/%3e%3c/svg%3e", o0 = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20448%20512'%3e%3c!--!Font%20Awesome%20Free%206.7.2%20by%20@fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20Copyright%202025%20Fonticons,%20Inc.--%3e%3cpath%20d='M288%2064c0%2017.7-14.3%2032-32%2032L32%2096C14.3%2096%200%2081.7%200%2064S14.3%2032%2032%2032l224%200c17.7%200%2032%2014.3%2032%2032zm0%20256c0%2017.7-14.3%2032-32%2032L32%20352c-17.7%200-32-14.3-32-32s14.3-32%2032-32l224%200c17.7%200%2032%2014.3%2032%2032zM0%20192c0-17.7%2014.3-32%2032-32l384%200c17.7%200%2032%2014.3%2032%2032s-14.3%2032-32%2032L32%20224c-17.7%200-32-14.3-32-32zM448%20448c0%2017.7-14.3%2032-32%2032L32%20480c-17.7%200-32-14.3-32-32s14.3-32%2032-32l384%200c17.7%200%2032%2014.3%2032%2032z'/%3e%3c/svg%3e", s0 = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20512%20512'%3e%3c!--!Font%20Awesome%20Free%206.7.2%20by%20@fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20Copyright%202025%20Fonticons,%20Inc.--%3e%3cpath%20d='M24%2056c0-13.3%2010.7-24%2024-24l32%200c13.3%200%2024%2010.7%2024%2024l0%20120%2016%200c13.3%200%2024%2010.7%2024%2024s-10.7%2024-24%2024l-80%200c-13.3%200-24-10.7-24-24s10.7-24%2024-24l16%200%200-96-8%200C34.7%2080%2024%2069.3%2024%2056zM86.7%20341.2c-6.5-7.4-18.3-6.9-24%201.2L51.5%20357.9c-7.7%2010.8-22.7%2013.3-33.5%205.6s-13.3-22.7-5.6-33.5l11.1-15.6c23.7-33.2%2072.3-35.6%2099.2-4.9c21.3%2024.4%2020.8%2060.9-1.1%2084.7L86.8%20432l33.2%200c13.3%200%2024%2010.7%2024%2024s-10.7%2024-24%2024l-88%200c-9.5%200-18.2-5.6-22-14.4s-2.1-18.9%204.3-25.9l72-78c5.3-5.8%205.4-14.6%20.3-20.5zM224%2064l256%200c17.7%200%2032%2014.3%2032%2032s-14.3%2032-32%2032l-256%200c-17.7%200-32-14.3-32-32s14.3-32%2032-32zm0%20160l256%200c17.7%200%2032%2014.3%2032%2032s-14.3%2032-32%2032l-256%200c-17.7%200-32-14.3-32-32s14.3-32%2032-32zm0%20160l256%200c17.7%200%2032%2014.3%2032%2032s-14.3%2032-32%2032l-256%200c-17.7%200-32-14.3-32-32s14.3-32%2032-32z'/%3e%3c/svg%3e", n0 = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20448%20512'%3e%3c!--!Font%20Awesome%20Free%206.7.2%20by%20@fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20Copyright%202025%20Fonticons,%20Inc.--%3e%3cpath%20fill='%23c0c0c0'%20d='M0%2064C0%2046.3%2014.3%2032%2032%2032l384%200c17.7%200%2032%2014.3%2032%2032s-14.3%2032-32%2032L32%2096C14.3%2096%200%2081.7%200%2064zM192%20192c0-17.7%2014.3-32%2032-32l192%200c17.7%200%2032%2014.3%2032%2032s-14.3%2032-32%2032l-192%200c-17.7%200-32-14.3-32-32zm32%2096l192%200c17.7%200%2032%2014.3%2032%2032s-14.3%2032-32%2032l-192%200c-17.7%200-32-14.3-32-32s14.3-32%2032-32zM0%20448c0-17.7%2014.3-32%2032-32l384%200c17.7%200%2032%2014.3%2032%2032s-14.3%2032-32%2032L32%20480c-17.7%200-32-14.3-32-32zM.2%20268.6c-8.2-6.4-8.2-18.9%200-25.3l101.9-79.3c10.5-8.2%2025.8-.7%2025.8%2012.6l0%20158.6c0%2013.3-15.3%2020.8-25.8%2012.6L.2%20268.6z'/%3e%3c/svg%3e", c0 = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20448%20512'%3e%3c!--!Font%20Awesome%20Free%206.7.2%20by%20@fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20Copyright%202025%20Fonticons,%20Inc.--%3e%3cpath%20fill='%23000000'%20d='M0%2064C0%2046.3%2014.3%2032%2032%2032l384%200c17.7%200%2032%2014.3%2032%2032s-14.3%2032-32%2032L32%2096C14.3%2096%200%2081.7%200%2064zM192%20192c0-17.7%2014.3-32%2032-32l192%200c17.7%200%2032%2014.3%2032%2032s-14.3%2032-32%2032l-192%200c-17.7%200-32-14.3-32-32zm32%2096l192%200c17.7%200%2032%2014.3%2032%2032s-14.3%2032-32%2032l-192%200c-17.7%200-32-14.3-32-32s14.3-32%2032-32zM0%20448c0-17.7%2014.3-32%2032-32l384%200c17.7%200%2032%2014.3%2032%2032s-14.3%2032-32%2032L32%20480c-17.7%200-32-14.3-32-32zM.2%20268.6c-8.2-6.4-8.2-18.9%200-25.3l101.9-79.3c10.5-8.2%2025.8-.7%2025.8%2012.6l0%20158.6c0%2013.3-15.3%2020.8-25.8%2012.6L.2%20268.6z'/%3e%3c/svg%3e", l0 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3csvg%20xmlns:dc='http://purl.org/dc/elements/1.1/'%20xmlns:cc='http://creativecommons.org/ns%23'%20xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns%23'%20xmlns:svg='http://www.w3.org/2000/svg'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd'%20xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape'%20inkscape:version='1.0%20(4035a4fb49,%202020-05-01)'%20sodipodi:docname='redo--grey.svg'%20id='svg856'%20version='1.1'%20viewBox='0%200%20512%20512'%3e%3cmetadata%20id='metadata862'%3e%3crdf:RDF%3e%3ccc:Work%20rdf:about=''%3e%3cdc:format%3eimage/svg+xml%3c/dc:format%3e%3cdc:type%20rdf:resource='http://purl.org/dc/dcmitype/StillImage'%20/%3e%3c/cc:Work%3e%3c/rdf:RDF%3e%3c/metadata%3e%3cdefs%20id='defs860'%20/%3e%3csodipodi:namedview%20inkscape:current-layer='svg856'%20inkscape:window-maximized='1'%20inkscape:window-y='-8'%20inkscape:window-x='-8'%20inkscape:cy='262.97976'%20inkscape:cx='209.07679'%20inkscape:zoom='0.71777344'%20showgrid='false'%20id='namedview858'%20inkscape:window-height='961'%20inkscape:window-width='1280'%20inkscape:pageshadow='2'%20inkscape:pageopacity='0'%20guidetolerance='10'%20gridtolerance='10'%20objecttolerance='10'%20borderopacity='1'%20bordercolor='%23666666'%20pagecolor='%23ffffff'%20/%3e%3c!--!Font%20Awesome%20Free%206.7.2%20by%20@fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20Copyright%202025%20Fonticons,%20Inc.--%3e%3cpath%20id='path854'%20d='m%20447.525,224%20h%208.5%20c%2013.3,0%2024,-10.7%2024,-24%20V%2072%20c%200,-9.7%20-5.8,-18.5%20-14.8,-22.2%20-9,-3.7%20-19.3,-1.7%20-26.2,5.2%20l%20-41.6,41.6%20c%20-87.6,-86.5%20-228.7,-86.2%20-315.8,1%20-87.5,87.5%20-87.5,229.3%200,316.8%2087.5,87.5%20229.3,87.5%20316.8,0%2012.5,-12.5%2012.5,-32.8%200,-45.3%20-12.5,-12.5%20-32.8,-12.5%20-45.3,0%20-62.5,62.5%20-163.8,62.5%20-226.3,0%20-62.5,-62.5%20-62.5,-163.8%200,-226.3%2062.2,-62.2%20162.7,-62.5%20225.3,-1%20l%20-41.1,41.2%20c%20-6.9,6.9%20-8.9,17.2%20-5.2,26.2%203.7,9%2012.5,14.8%2022.2,14.8%20z'%20fill='%23c0c0c0'%20/%3e%3c/svg%3e", r0 = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20512%20512'%3e%3c!--!Font%20Awesome%20Free%206.7.2%20by%20@fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20Copyright%202025%20Fonticons,%20Inc.--%3e%3cpath%20d='M463.5%20224l8.5%200c13.3%200%2024-10.7%2024-24l0-128c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2%205.2L413.4%2096.6c-87.6-86.5-228.7-86.2-315.8%201c-87.5%2087.5-87.5%20229.3%200%20316.8s229.3%2087.5%20316.8%200c12.5-12.5%2012.5-32.8%200-45.3s-32.8-12.5-45.3%200c-62.5%2062.5-163.8%2062.5-226.3%200s-62.5-163.8%200-226.3c62.2-62.2%20162.7-62.5%20225.3-1L327%20183c-6.9%206.9-8.9%2017.2-5.2%2026.2s12.5%2014.8%2022.2%2014.8l119.5%200z'/%3e%3c/svg%3e", a0 = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20448%20512'%3e%3c!--!Font%20Awesome%20Free%206.7.2%20by%20@fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20Copyright%202025%20Fonticons,%20Inc.--%3e%3cpath%20d='M448%2064c0%2017.7-14.3%2032-32%2032L192%2096c-17.7%200-32-14.3-32-32s14.3-32%2032-32l224%200c17.7%200%2032%2014.3%2032%2032zm0%20256c0%2017.7-14.3%2032-32%2032l-224%200c-17.7%200-32-14.3-32-32s14.3-32%2032-32l224%200c17.7%200%2032%2014.3%2032%2032zM0%20192c0-17.7%2014.3-32%2032-32l384%200c17.7%200%2032%2014.3%2032%2032s-14.3%2032-32%2032L32%20224c-17.7%200-32-14.3-32-32zM448%20448c0%2017.7-14.3%2032-32%2032L32%20480c-17.7%200-32-14.3-32-32s14.3-32%2032-32l384%200c17.7%200%2032%2014.3%2032%2032z'/%3e%3c/svg%3e", i0 = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20576%20512'%3e%3c!--!Font%20Awesome%20Free%206.7.2%20by%20@fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20Copyright%202025%20Fonticons,%20Inc.--%3e%3cpath%20fill='%23000000'%20d='M64%20128l0-32%2064%200%200%20320-32%200c-17.7%200-32%2014.3-32%2032s14.3%2032%2032%2032l128%200c17.7%200%2032-14.3%2032-32s-14.3-32-32-32l-32%200%200-320%2064%200%200%2032c0%2017.7%2014.3%2032%2032%2032s32-14.3%2032-32l0-48c0-26.5-21.5-48-48-48L160%2032%2048%2032C21.5%2032%200%2053.5%200%2080l0%2048c0%2017.7%2014.3%2032%2032%2032s32-14.3%2032-32zM502.6%2041.4c-12.5-12.5-32.8-12.5-45.3%200l-64%2064c-9.2%209.2-11.9%2022.9-6.9%2034.9s16.6%2019.8%2029.6%2019.8l32%200%200%20192-32%200c-12.9%200-24.6%207.8-29.6%2019.8s-2.2%2025.7%206.9%2034.9l64%2064c12.5%2012.5%2032.8%2012.5%2045.3%200l64-64c9.2-9.2%2011.9-22.9%206.9-34.9s-16.6-19.8-29.6-19.8l-32%200%200-192%2032%200c12.9%200%2024.6-7.8%2029.6-19.8s2.2-25.7-6.9-34.9l-64-64z'/%3e%3c/svg%3e", d0 = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20512%20512'%3e%3c!--!Font%20Awesome%20Free%206.7.2%20by%20@fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20Copyright%202025%20Fonticons,%20Inc.--%3e%3cpath%20d='M161.3%20144c3.2-17.2%2014-30.1%2033.7-38.6c21.1-9%2051.8-12.3%2088.6-6.5c11.9%201.9%2048.8%209.1%2060.1%2012c17.1%204.5%2034.6-5.6%2039.2-22.7s-5.6-34.6-22.7-39.2c-14.3-3.8-53.6-11.4-66.6-13.4c-44.7-7-88.3-4.2-123.7%2010.9c-36.5%2015.6-64.4%2044.8-71.8%2087.3c-.1%20.6-.2%201.1-.2%201.7c-2.8%2023.9%20.5%2045.6%2010.1%2064.6c4.5%209%2010.2%2016.9%2016.7%2023.9L32%20224c-17.7%200-32%2014.3-32%2032s14.3%2032%2032%2032l448%200c17.7%200%2032-14.3%2032-32s-14.3-32-32-32l-209.9%200-.4-.1-1.1-.3c-36-10.8-65.2-19.6-85.2-33.1c-9.3-6.3-15-12.6-18.2-19.1c-3.1-6.1-5.2-14.6-3.8-27.4zM348.9%20337.2c2.7%206.5%204.4%2015.8%201.9%2030.1c-3%2017.6-13.8%2030.8-33.9%2039.4c-21.1%209-51.7%2012.3-88.5%206.5c-18-2.9-49.1-13.5-74.4-22.1c-5.6-1.9-11-3.7-15.9-5.4c-16.8-5.6-34.9%203.5-40.5%2020.3s3.5%2034.9%2020.3%2040.5c3.6%201.2%207.9%202.7%2012.7%204.3c0%200%200%200%200%200s0%200%200%200c24.9%208.5%2063.6%2021.7%2087.6%2025.6c0%200%200%200%200%200l.2%200c44.7%207%2088.3%204.2%20123.7-10.9c36.5-15.6%2064.4-44.8%2071.8-87.3c3.6-21%202.7-40.4-3.1-58.1l-75.7%200c7%205.6%2011.4%2011.2%2013.9%2017.2z'/%3e%3c/svg%3e", m0 = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20512%20512'%3e%3c!--!Font%20Awesome%20Free%206.7.2%20by%20@fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20Copyright%202025%20Fonticons,%20Inc.--%3e%3cpath%20d='M32%2064C14.3%2064%200%2078.3%200%2096s14.3%2032%2032%2032l15.3%200%2089.6%20128L47.3%20384%2032%20384c-17.7%200-32%2014.3-32%2032s14.3%2032%2032%2032l32%200c10.4%200%2020.2-5.1%2026.2-13.6L176%20311.8l85.8%20122.6c6%208.6%2015.8%2013.6%2026.2%2013.6l32%200c17.7%200%2032-14.3%2032-32s-14.3-32-32-32l-15.3%200L215.1%20256l89.6-128%2015.3%200c17.7%200%2032-14.3%2032-32s-14.3-32-32-32l-32%200c-10.4%200-20.2%205.1-26.2%2013.6L176%20200.2%2090.2%2077.6C84.2%2069.1%2074.4%2064%2064%2064L32%2064zM480%20320c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32%2016c-15.8%207.9-22.2%2027.1-14.3%2042.9C393%20361.5%20404.3%20368%20416%20368l0%2080c-17.7%200-32%2014.3-32%2032s14.3%2032%2032%2032l32%200%2032%200c17.7%200%2032-14.3%2032-32s-14.3-32-32-32l0-128z'/%3e%3c/svg%3e", g0 = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20512%20512'%3e%3c!--!Font%20Awesome%20Free%206.7.2%20by%20@fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20Copyright%202025%20Fonticons,%20Inc.--%3e%3cpath%20d='M480%2032c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32%2016c-15.8%207.9-22.2%2027.1-14.3%2042.9C393%2073.5%20404.3%2080%20416%2080l0%2080c-17.7%200-32%2014.3-32%2032s14.3%2032%2032%2032l32%200%2032%200c17.7%200%2032-14.3%2032-32s-14.3-32-32-32l0-128zM32%2064C14.3%2064%200%2078.3%200%2096s14.3%2032%2032%2032l15.3%200%2089.6%20128L47.3%20384%2032%20384c-17.7%200-32%2014.3-32%2032s14.3%2032%2032%2032l32%200c10.4%200%2020.2-5.1%2026.2-13.6L176%20311.8l85.8%20122.6c6%208.6%2015.8%2013.6%2026.2%2013.6l32%200c17.7%200%2032-14.3%2032-32s-14.3-32-32-32l-15.3%200L215.1%20256l89.6-128%2015.3%200c17.7%200%2032-14.3%2032-32s-14.3-32-32-32l-32%200c-10.4%200-20.2%205.1-26.2%2013.6L176%20200.2%2090.2%2077.6C84.2%2069.1%2074.4%2064%2064%2064L32%2064z'/%3e%3c/svg%3e", p0 = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20512%20512'%3e%3c!--!Font%20Awesome%20Free%206.7.2%20by%20@fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20Copyright%202025%20Fonticons,%20Inc.--%3e%3cpath%20fill='%23000000'%20d='M64%20256l0-96%20160%200%200%2096L64%20256zm0%2064l160%200%200%2096L64%20416l0-96zm224%2096l0-96%20160%200%200%2096-160%200zM448%20256l-160%200%200-96%20160%200%200%2096zM64%2032C28.7%2032%200%2060.7%200%2096L0%20416c0%2035.3%2028.7%2064%2064%2064l384%200c35.3%200%2064-28.7%2064-64l0-320c0-35.3-28.7-64-64-64L64%2032z'/%3e%3c/svg%3e", h0 = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20448%20512'%3e%3c!--!Font%20Awesome%20Free%206.7.2%20by%20@fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20Copyright%202025%20Fonticons,%20Inc.--%3e%3cpath%20d='M16%2064c0-17.7%2014.3-32%2032-32l96%200c17.7%200%2032%2014.3%2032%2032s-14.3%2032-32%2032l-16%200%200%20128c0%2053%2043%2096%2096%2096s96-43%2096-96l0-128-16%200c-17.7%200-32-14.3-32-32s14.3-32%2032-32l96%200c17.7%200%2032%2014.3%2032%2032s-14.3%2032-32%2032l-16%200%200%20128c0%2088.4-71.6%20160-160%20160s-160-71.6-160-160L64%2096%2048%2096C30.3%2096%2016%2081.7%2016%2064zM0%20448c0-17.7%2014.3-32%2032-32l384%200c17.7%200%2032%2014.3%2032%2032s-14.3%2032-32%2032L32%20480c-17.7%200-32-14.3-32-32z'/%3e%3c/svg%3e", u0 = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20512%20512'%3e%3c!--!Font%20Awesome%20Free%206.7.2%20by%20@fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20Copyright%202025%20Fonticons,%20Inc.--%3e%3cpath%20fill='%23c0c0c0'%20d='M48.5%20224L40%20224c-13.3%200-24-10.7-24-24L16%2072c0-9.7%205.8-18.5%2014.8-22.2s19.3-1.7%2026.2%205.2L98.6%2096.6c87.6-86.5%20228.7-86.2%20315.8%201c87.5%2087.5%2087.5%20229.3%200%20316.8s-229.3%2087.5-316.8%200c-12.5-12.5-12.5-32.8%200-45.3s32.8-12.5%2045.3%200c62.5%2062.5%20163.8%2062.5%20226.3%200s62.5-163.8%200-226.3c-62.2-62.2-162.7-62.5-225.3-1L185%20183c6.9%206.9%208.9%2017.2%205.2%2026.2s-12.5%2014.8-22.2%2014.8L48.5%20224z'/%3e%3c/svg%3e", w0 = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20512%20512'%3e%3c!--!Font%20Awesome%20Free%206.7.2%20by%20@fontawesome%20-%20https://fontawesome.com%20License%20-%20https://fontawesome.com/license/free%20Copyright%202025%20Fonticons,%20Inc.--%3e%3cpath%20d='M48.5%20224L40%20224c-13.3%200-24-10.7-24-24L16%2072c0-9.7%205.8-18.5%2014.8-22.2s19.3-1.7%2026.2%205.2L98.6%2096.6c87.6-86.5%20228.7-86.2%20315.8%201c87.5%2087.5%2087.5%20229.3%200%20316.8s-229.3%2087.5-316.8%200c-12.5-12.5-12.5-32.8%200-45.3s32.8-12.5%2045.3%200c62.5%2062.5%20163.8%2062.5%20226.3%200s62.5-163.8%200-226.3c-62.2-62.2-162.7-62.5-225.3-1L185%20183c6.9%206.9%208.9%2017.2%205.2%2026.2s-12.5%2014.8-22.2%2014.8L48.5%20224z'/%3e%3c/svg%3e", M = {
852
+ addColumnGrey: E2,
853
+ addColumn: A2,
854
+ addRowGrey: I2,
855
+ addRow: _2,
856
+ bgColor: B2,
857
+ blockCode: P2,
858
+ blockquote: V2,
859
+ bold: D2,
860
+ bulletList: O2,
861
+ center: G2,
862
+ color: H2,
863
+ deleteColumnGrey: U2,
864
+ deleteColumn: $2,
865
+ deleteRowGrey: Y2,
866
+ deleteRow: q2,
867
+ deleteTableGrey: W2,
868
+ deleteTable: J2,
869
+ fontFamily: X2,
870
+ href: Z2,
871
+ image: K2,
872
+ indentGrey: Q2,
873
+ indent: e0,
874
+ italic: t0,
875
+ left: o0,
876
+ numberedList: s0,
877
+ outdentGrey: n0,
878
+ outdent: c0,
879
+ redoGrey: l0,
880
+ redo: r0,
881
+ right: a0,
882
+ size: i0,
883
+ strikethrough: d0,
884
+ subscript: m0,
885
+ superscript: g0,
886
+ table: p0,
887
+ underline: h0,
888
+ undoGrey: u0,
889
+ undo: w0
890
+ }, f0 = ({ editor: e, format: o, isActive: t, onMouseDown: s }) => {
891
+ const [n, a] = C(!1), i = (d) => {
892
+ m.toggleBlock(e, o === "bulletList" ? "bullet-list" : "numbered-list", d), a(!1);
893
+ };
894
+ return /* @__PURE__ */ c.jsxs(c.Fragment, { children: [
895
+ /* @__PURE__ */ c.jsxs(
896
+ "button",
897
+ {
898
+ className: `tool tool--${t ? "active" : "inactive"}`,
899
+ children: [
900
+ /* @__PURE__ */ c.jsx(
901
+ "img",
902
+ {
903
+ onMouseDown: (d) => {
904
+ d.preventDefault(), s(o);
905
+ },
906
+ src: M[o],
907
+ alt: o
908
+ }
909
+ ),
910
+ /* @__PURE__ */ c.jsx(
911
+ "div",
912
+ {
913
+ className: "tool tool--arrow",
914
+ onClick: () => a(!n),
915
+ children: n ? "↑" : "↓"
916
+ }
917
+ )
918
+ ]
919
+ }
920
+ ),
921
+ n && (o === "bulletList" ? /* @__PURE__ */ c.jsx(
922
+ N2,
923
+ {
924
+ onChange: i
925
+ }
926
+ ) : /* @__PURE__ */ c.jsx(
927
+ z2,
928
+ {
929
+ onChange: i
930
+ }
931
+ ))
932
+ ] });
933
+ };
934
+ function g2({ disabled: e = !1, elements: o, elementSelected: t, format: s, isOpen: n, setIsOpen: a, onClick: i }) {
935
+ const d = () => {
936
+ a(!n);
937
+ }, g = (h) => {
938
+ i(h), a(!1);
939
+ };
940
+ return /* @__PURE__ */ c.jsxs("div", { className: "dropdown tool", children: [
941
+ /* @__PURE__ */ c.jsx("button", { onClick: d, className: "dropdown-toggle", disabled: e, children: /* @__PURE__ */ c.jsx("img", { src: M[s], alt: s }) }),
942
+ n && /* @__PURE__ */ c.jsx("ul", { className: "dropdown-menu", children: o.map((h, r) => /* @__PURE__ */ c.jsx("li", { className: `${t && h === t ? "tool--active" : ""}`, onClick: () => g(h), children: h }, r)) })
943
+ ] });
276
944
  }
277
- var D;
278
- function oe() {
279
- return D || (D = 1, process.env.NODE_ENV === "production" ? T.exports = te() : T.exports = ne()), T.exports;
945
+ const v0 = ({ disabled: e, sizeSelected: o, onSelectSize: t }) => {
946
+ const [s, n] = C(!1), a = ["10px", "12px", "14px", "16px", "18px", "20px", "24px", "28px", "36px"];
947
+ return /* @__PURE__ */ c.jsx(
948
+ g2,
949
+ {
950
+ disabled: e,
951
+ elements: a,
952
+ elementSelected: o,
953
+ format: "size",
954
+ isOpen: s,
955
+ setIsOpen: n,
956
+ onClick: t
957
+ }
958
+ );
959
+ }, x0 = ({ fontFamilySelected: e, onSelectFontFamily: o }) => {
960
+ const [t, s] = C(!1), n = ["Arial", "Arial Black", "Bookman", "Comic Sans MS", "Courier", "Courier New", "Garamond", "Georgia", "Helvetica", "Impact", "Palatino", "Times", "Times New Roman", "Trebuchet MS", "Verdana"];
961
+ return /* @__PURE__ */ c.jsx(
962
+ g2,
963
+ {
964
+ elements: n,
965
+ elementSelected: e,
966
+ format: "fontFamily",
967
+ isOpen: t,
968
+ setIsOpen: s,
969
+ onClick: o
970
+ }
971
+ );
972
+ }, b0 = ({ activeBlock: e, editor: o, format: t, isActive: s, onMouseDown: n }) => {
973
+ const [a, i] = C(""), d = e === "h1" || e === "h2", g = (r) => {
974
+ m.applyFontSize(o, r);
975
+ }, h = (r) => {
976
+ m.applyFontFamily(o, r), i(r);
977
+ };
978
+ return t === "indent" || t === "outdent" ? /* @__PURE__ */ c.jsx("div", { style: { display: "flex" }, children: /* @__PURE__ */ c.jsx(
979
+ "button",
980
+ {
981
+ className: "tool",
982
+ onClick: () => t === "indent" ? m.handleIndent(o) : m.handleOutdent(o),
983
+ disabled: !s,
984
+ children: /* @__PURE__ */ c.jsx("img", { src: s ? M[t] : M[t + "Grey"], alt: "Indentation" })
985
+ }
986
+ ) }) : t === "fontSize" ? /* @__PURE__ */ c.jsx(v0, { sizeSelected: s, onSelectSize: g, disabled: d }) : t === "fontFamily" ? /* @__PURE__ */ c.jsx(
987
+ x0,
988
+ {
989
+ fontFamilySelected: a,
990
+ onSelectFontFamily: h
991
+ }
992
+ ) : t === "bulletList" || t === "numberedList" ? /* @__PURE__ */ c.jsx("div", { className: "dropdown", style: { display: "flex" }, children: /* @__PURE__ */ c.jsx(
993
+ f0,
994
+ {
995
+ editor: o,
996
+ format: t,
997
+ isActive: s,
998
+ onMouseDown: () => {
999
+ t = t === "bulletList" ? "bullet-list" : "numbered-list", m.toggleBlock(o, t);
1000
+ }
1001
+ }
1002
+ ) }) : /* @__PURE__ */ c.jsx(
1003
+ "button",
1004
+ {
1005
+ onMouseDown: (r) => {
1006
+ r.preventDefault(), n(t);
1007
+ },
1008
+ className: `tool tool--${s ? "active" : "inactive"}`,
1009
+ children: /* @__PURE__ */ c.jsx("img", { src: M[t], alt: t })
1010
+ }
1011
+ );
1012
+ }, k0 = ({ editor: e, onClose: o, initialUrl: t = "", isOpenInNewTab: s }) => {
1013
+ const [n, a] = C(""), [i, d] = C(!1), g = () => {
1014
+ n && (m.updateLink(e, n, i), o());
1015
+ }, h = () => {
1016
+ m.removeLink(e), o();
1017
+ };
1018
+ return e2(() => {
1019
+ a(t), d(s);
1020
+ }, [t, s]), /* @__PURE__ */ c.jsxs("div", { className: "link-form", children: [
1021
+ /* @__PURE__ */ c.jsx(
1022
+ "input",
1023
+ {
1024
+ type: "text",
1025
+ placeholder: "Enter URL",
1026
+ value: n,
1027
+ onChange: (r) => a(r.target.value)
1028
+ }
1029
+ ),
1030
+ /* @__PURE__ */ c.jsxs("label", { children: [
1031
+ /* @__PURE__ */ c.jsx(
1032
+ "input",
1033
+ {
1034
+ type: "checkbox",
1035
+ checked: i,
1036
+ onChange: () => d(!i)
1037
+ }
1038
+ ),
1039
+ "Ouvrir dans un nouvel onglet"
1040
+ ] }),
1041
+ /* @__PURE__ */ c.jsxs("div", { className: "link-form-actions", children: [
1042
+ t ? /* @__PURE__ */ c.jsxs(c.Fragment, { children: [
1043
+ /* @__PURE__ */ c.jsx("button", { onClick: g, children: "Modifier" }),
1044
+ /* @__PURE__ */ c.jsx("button", { onClick: h, children: "Supprimer" })
1045
+ ] }) : /* @__PURE__ */ c.jsx("button", { onClick: g, children: "Valider" }),
1046
+ /* @__PURE__ */ c.jsx("button", { onClick: o, children: "Annuler" })
1047
+ ] })
1048
+ ] });
1049
+ };
1050
+ function C0({ selectedColor: e, onSelectColor: o, onClose: t }) {
1051
+ const [s, n] = C("#ffffff"), a = (g) => {
1052
+ n(g.hex);
1053
+ }, i = () => {
1054
+ s && (o(s), t());
1055
+ }, d = () => {
1056
+ o(""), t();
1057
+ };
1058
+ return e2(() => {
1059
+ e && n(e);
1060
+ }, [e]), /* @__PURE__ */ c.jsxs("div", { className: "color-picker-popup", children: [
1061
+ /* @__PURE__ */ c.jsx(C2, { color: s, onChangeComplete: a }),
1062
+ /* @__PURE__ */ c.jsxs("div", { className: "color-picker-actions", children: [
1063
+ /* @__PURE__ */ c.jsx("button", { onClick: i, disabled: !s, children: "Appliquer" }),
1064
+ /* @__PURE__ */ c.jsx("button", { onClick: d, children: "Annuler" })
1065
+ ] })
1066
+ ] });
280
1067
  }
281
- var ae = oe();
282
- function ue() {
283
- const [c, f] = re("Jhon");
284
- return /* @__PURE__ */ ae.jsxs("div", { children: [
285
- "helloworl ",
286
- c
1068
+ const y0 = ({ activeBlock: e, onChange: o }) => {
1069
+ const t = [
1070
+ {
1071
+ type: "paragraph",
1072
+ name: "Paragraphe"
1073
+ },
1074
+ {
1075
+ type: "h1",
1076
+ name: "Titre"
1077
+ },
1078
+ {
1079
+ type: "h2",
1080
+ name: "Sous-titre"
1081
+ }
1082
+ ], s = (n) => {
1083
+ const a = n.target.value;
1084
+ o(a);
1085
+ };
1086
+ return /* @__PURE__ */ c.jsx("select", { value: e, onChange: s, children: t.map((n) => /* @__PURE__ */ c.jsx("option", { value: n.type, children: n.name }, n.type)) });
1087
+ }, L0 = ({ editor: e, selectedLanguage: o, setSelectedLanguage: t }) => {
1088
+ const [s, n] = C(!1), a = {
1089
+ cs: "C#",
1090
+ cpp: "C++",
1091
+ css: "CSS",
1092
+ diff: "Diff",
1093
+ html: "HTML",
1094
+ java: "Java",
1095
+ javascript: "JavaScript",
1096
+ php: "PHP",
1097
+ python: "Python",
1098
+ ruby: "Ruby",
1099
+ typescript: "TypeScript",
1100
+ xml: "XML"
1101
+ // Ajoutez d'autres langages supportés par highlight.js
1102
+ }, i = () => {
1103
+ n(!s);
1104
+ }, d = (g) => {
1105
+ t(g), m.handleCode(e, g), n(!1);
1106
+ };
1107
+ return /* @__PURE__ */ c.jsxs("div", { className: `dropdown tool ${o && o !== "init" && o !== "" ? "tool--active" : ""}`, children: [
1108
+ /* @__PURE__ */ c.jsx("button", { className: "dropdown-toggle", onClick: i, children: /* @__PURE__ */ c.jsx("img", { src: M.blockCode, alt: "Language Selector" }) }),
1109
+ s && /* @__PURE__ */ c.jsxs("ul", { className: "dropdown-menu", children: [
1110
+ o && /* @__PURE__ */ c.jsx("li", { onClick: () => d("init"), children: "Réinitialiser" }),
1111
+ Object.keys(a).map((g) => /* @__PURE__ */ c.jsx(
1112
+ "li",
1113
+ {
1114
+ onClick: () => d(g),
1115
+ className: `${o && g === o ? "tool--active" : ""}`,
1116
+ style: { cursor: "pointer", padding: "5px 10px" },
1117
+ children: a[g]
1118
+ },
1119
+ g
1120
+ ))
1121
+ ] })
1122
+ ] });
1123
+ }, j0 = ({ editor: e }) => /* @__PURE__ */ c.jsxs("div", { className: "tool image-upload-container", children: [
1124
+ /* @__PURE__ */ c.jsx(
1125
+ "input",
1126
+ {
1127
+ id: "file-input",
1128
+ type: "file",
1129
+ accept: "image/*",
1130
+ onChange: (o) => m.handleFileChange(o, e),
1131
+ className: "hidden-file-input"
1132
+ }
1133
+ ),
1134
+ /* @__PURE__ */ c.jsx("label", { htmlFor: "file-input", className: "image-upload-label", children: /* @__PURE__ */ c.jsx("img", { src: M.image, alt: "Upload" }) })
1135
+ ] }), M0 = ({ editor: e, onClose: o }) => {
1136
+ const [t, s] = C(0), [n, a] = C(0), i = (h, r) => {
1137
+ s(h), a(r);
1138
+ }, d = (h, r) => {
1139
+ m.insertTable(e, h + 1, r + 1), o();
1140
+ }, g = () => {
1141
+ const h = [];
1142
+ for (let r = 0; r < 5; r++)
1143
+ for (let y = 0; y < 5; y++) {
1144
+ const v = r <= t && y <= n;
1145
+ h.push(
1146
+ /* @__PURE__ */ c.jsx(
1147
+ "div",
1148
+ {
1149
+ className: `grid-cell ${v ? "hovered" : ""}`,
1150
+ onMouseEnter: () => i(r, y),
1151
+ onClick: () => d(r, y)
1152
+ },
1153
+ `${r}-${y}`
1154
+ )
1155
+ );
1156
+ }
1157
+ return h;
1158
+ };
1159
+ return /* @__PURE__ */ c.jsxs("div", { className: "dropdown-menu table-grid-form", children: [
1160
+ /* @__PURE__ */ c.jsx("div", { className: "grid-container", children: g() }),
1161
+ /* @__PURE__ */ c.jsxs("div", { className: "table-size-indicator", children: [
1162
+ "Tableau de ",
1163
+ t + 1,
1164
+ " lignes x ",
1165
+ n + 1,
1166
+ " colonnes"
1167
+ ] })
287
1168
  ] });
1169
+ }, F0 = ({ editor: e }) => {
1170
+ const o = m.isSelectionInTable(e), [t, s] = C(!1), n = () => {
1171
+ s(!t);
1172
+ }, a = [
1173
+ { name: "deleteTable", alt: "Supprimer le tableau", onClick: m.deleteTable },
1174
+ { name: "addRow", alt: "Ajouter une ligne", onClick: m.addRow },
1175
+ { name: "addColumn", alt: "Ajouter une colonne", onClick: m.addColumn },
1176
+ { name: "deleteRow", alt: "Supprimer une ligne", onClick: m.deleteRow },
1177
+ { name: "deleteColumn", alt: "Supprimer une colonne", onClick: m.deleteColumn }
1178
+ ];
1179
+ return /* @__PURE__ */ c.jsxs(c.Fragment, { children: [
1180
+ /* @__PURE__ */ c.jsxs("div", { className: "dropdown tool", children: [
1181
+ /* @__PURE__ */ c.jsx("button", { onClick: n, className: "dropdown-toggle", children: /* @__PURE__ */ c.jsx("img", { src: M.blockCode, alt: "Tableau" }) }),
1182
+ t && /* @__PURE__ */ c.jsx(
1183
+ M0,
1184
+ {
1185
+ editor: e,
1186
+ onClose: n
1187
+ }
1188
+ )
1189
+ ] }),
1190
+ a.map((i, d) => /* @__PURE__ */ c.jsx(
1191
+ "button",
1192
+ {
1193
+ className: "tool",
1194
+ onClick: () => i.onClick(e),
1195
+ disabled: !o,
1196
+ children: /* @__PURE__ */ c.jsx("img", { src: o ? M[i.name] : M[i.name + "Grey"], alt: i.name })
1197
+ },
1198
+ d
1199
+ ))
1200
+ ] });
1201
+ };
1202
+ function S0({ editor: e }) {
1203
+ return /* @__PURE__ */ c.jsxs(c.Fragment, { children: [
1204
+ /* @__PURE__ */ c.jsx(
1205
+ "button",
1206
+ {
1207
+ className: "tool",
1208
+ onMouseDown: (o) => {
1209
+ o.preventDefault(), e.undo();
1210
+ },
1211
+ children: /* @__PURE__ */ c.jsx("img", { src: e.history.undos.length === 0 ? M.undoGrey : M.undo, alt: "Annuler" })
1212
+ }
1213
+ ),
1214
+ /* @__PURE__ */ c.jsx(
1215
+ "button",
1216
+ {
1217
+ className: "tool",
1218
+ onMouseDown: (o) => {
1219
+ o.preventDefault(), e.redo();
1220
+ },
1221
+ children: /* @__PURE__ */ c.jsx("img", { src: e.history.redos.length === 0 ? M.redoGrey : M.redo, alt: "Rétablir" })
1222
+ }
1223
+ )
1224
+ ] });
1225
+ }
1226
+ function R0(e) {
1227
+ const [o, t] = C(""), [s, n] = C(""), [a, i] = C(!1), [d, g] = C(""), [h, r] = C(""), [y, v] = C("paragraph"), [x, f] = C(!1), [S, R] = C(""), [E, F] = C(!1), B = () => {
1228
+ F(!E);
1229
+ }, T = () => {
1230
+ f(!x);
1231
+ };
1232
+ return {
1233
+ activeBlock: y,
1234
+ colorMode: s,
1235
+ setColorMode: n,
1236
+ openInNewTab: a,
1237
+ setOpenInNewTab: i,
1238
+ selectedBackgroundColor: h,
1239
+ setSelectedBackgroundColor: r,
1240
+ selectedColor: d,
1241
+ setSelectedColor: g,
1242
+ selectedLanguage: S,
1243
+ setSelectedLanguage: R,
1244
+ selectedLink: o,
1245
+ setSelectedLink: t,
1246
+ showColorPicker: x,
1247
+ showLinkForm: E,
1248
+ setShowLinkForm: F,
1249
+ // Fonctions utiles
1250
+ detectCurrentLanguage: () => {
1251
+ const { selection: b } = e;
1252
+ if (b) {
1253
+ const [N] = w.nodes(e, {
1254
+ match: (I) => I.type === "code"
1255
+ });
1256
+ R(N ? N[0].language : null);
1257
+ }
1258
+ },
1259
+ toggleLinkForm: B,
1260
+ toggleColorPicker: T,
1261
+ handleColorChange: (b) => {
1262
+ m.applyTextColor(e, b), T();
1263
+ },
1264
+ handleBackgroundColorChange: (b) => {
1265
+ m.applyBackgroundTextColor(e, b), T();
1266
+ },
1267
+ handleBlockTypeChange: (b) => {
1268
+ m.toggleBlock(e, b), v(b);
1269
+ }
1270
+ };
288
1271
  }
1272
+ const T0 = ({ editor: e, activeMarks: o }) => {
1273
+ const {
1274
+ activeBlock: t,
1275
+ colorMode: s,
1276
+ setColorMode: n,
1277
+ openInNewTab: a,
1278
+ setOpenInNewTab: i,
1279
+ selectedBackgroundColor: d,
1280
+ setSelectedBackgroundColor: g,
1281
+ selectedColor: h,
1282
+ setSelectedColor: r,
1283
+ selectedLanguage: y,
1284
+ setSelectedLanguage: v,
1285
+ selectedLink: x,
1286
+ setSelectedLink: f,
1287
+ showColorPicker: S,
1288
+ showLinkForm: R,
1289
+ setShowLinkForm: E,
1290
+ detectCurrentLanguage: F,
1291
+ toggleLinkForm: B,
1292
+ toggleColorPicker: T,
1293
+ handleColorChange: H,
1294
+ handleBackgroundColorChange: U,
1295
+ handleBlockTypeChange: $
1296
+ } = R0(e), P = ["left", "center", "right"];
1297
+ return e2(() => {
1298
+ F();
1299
+ const { selection: b } = e;
1300
+ if (b) {
1301
+ const [N] = w.nodes(e, {
1302
+ match: (I) => I.type === "link"
1303
+ });
1304
+ N ? (i(N[0].target === "_blank"), f(N[0].href)) : (i(!1), f(""));
1305
+ }
1306
+ }, [e.selection]), /* @__PURE__ */ c.jsxs("div", { className: "toolbar", children: [
1307
+ /* @__PURE__ */ c.jsx(
1308
+ y0,
1309
+ {
1310
+ activeBlock: t,
1311
+ onChange: $
1312
+ }
1313
+ ),
1314
+ Object.keys(o).map((b, N) => /* @__PURE__ */ c.jsx("div", { style: { display: "flex" }, children: /* @__PURE__ */ c.jsx(
1315
+ b0,
1316
+ {
1317
+ activeBlock: t,
1318
+ editor: e,
1319
+ format: b,
1320
+ isActive: o[b],
1321
+ onMouseDown: () => {
1322
+ P.includes(b) ? m.toggleAlign(e, b) : b === "href" ? B() : b === "color" ? (r(o[b]), n("color"), T()) : b === "bgColor" ? (g(o[b]), n("bgColor"), T()) : m.toggleMark(e, b);
1323
+ }
1324
+ }
1325
+ ) }, N)),
1326
+ /* @__PURE__ */ c.jsx(F0, { editor: e }),
1327
+ /* @__PURE__ */ c.jsx(j0, { editor: e }),
1328
+ /* @__PURE__ */ c.jsx(
1329
+ L0,
1330
+ {
1331
+ editor: e,
1332
+ selectedLanguage: y,
1333
+ setSelectedLanguage: v
1334
+ }
1335
+ ),
1336
+ /* @__PURE__ */ c.jsx(S0, { editor: e }),
1337
+ R && /* @__PURE__ */ c.jsx(
1338
+ k0,
1339
+ {
1340
+ editor: e,
1341
+ onClose: () => E(!1),
1342
+ initialUrl: x,
1343
+ isOpenInNewTab: a
1344
+ }
1345
+ ),
1346
+ S && /* @__PURE__ */ c.jsx(
1347
+ C0,
1348
+ {
1349
+ selectedColor: s === "color" ? h : d,
1350
+ onSelectColor: s === "color" ? H : U,
1351
+ onClose: T
1352
+ }
1353
+ )
1354
+ ] });
1355
+ }, _0 = ({ value: e, setValue: o }) => {
1356
+ const [t] = C(() => k2(v2(f2()))), [s, n] = C({
1357
+ bold: !1,
1358
+ underline: !1,
1359
+ italic: !1,
1360
+ strikethrough: !1,
1361
+ subscript: !1,
1362
+ superscript: !1,
1363
+ blockquote: !1,
1364
+ color: "",
1365
+ bgColor: "",
1366
+ fontSize: "",
1367
+ fontFamily: "",
1368
+ href: "",
1369
+ bulletList: !1,
1370
+ numberedList: !1,
1371
+ left: !1,
1372
+ center: !1,
1373
+ right: !1,
1374
+ indent: !1,
1375
+ outdent: !1
1376
+ }), a = w2(
1377
+ () => JSON.parse(localStorage.getItem("content")) || [
1378
+ {
1379
+ type: "paragraph",
1380
+ children: [{ text: "Un exemple de paragraphe." }]
1381
+ }
1382
+ ],
1383
+ []
1384
+ ), i = K((r) => {
1385
+ switch (r.element.type) {
1386
+ case "code":
1387
+ return /* @__PURE__ */ c.jsx(M2, { ...r });
1388
+ case "bullet-list":
1389
+ case "numbered-list":
1390
+ case "list-item":
1391
+ return /* @__PURE__ */ c.jsx(R2, { ...r });
1392
+ case "h1":
1393
+ return /* @__PURE__ */ c.jsx("h1", { ...r.attributes, children: r.children });
1394
+ case "h2":
1395
+ return /* @__PURE__ */ c.jsx("h2", { ...r.attributes, children: r.children });
1396
+ case "blockquote":
1397
+ return /* @__PURE__ */ c.jsx(T2, { ...r });
1398
+ case "image":
1399
+ return /* @__PURE__ */ c.jsx("img", { src: r.element.url, alt: "", ...r.attributes });
1400
+ case "table":
1401
+ return /* @__PURE__ */ c.jsx("table", { children: /* @__PURE__ */ c.jsx("tbody", { children: r.children }) });
1402
+ case "table-row":
1403
+ return /* @__PURE__ */ c.jsx("tr", { children: r.children });
1404
+ case "table-cell":
1405
+ return /* @__PURE__ */ c.jsx("td", { children: r.children });
1406
+ default:
1407
+ return /* @__PURE__ */ c.jsx(F2, { ...r });
1408
+ }
1409
+ }, []), d = K((r) => /* @__PURE__ */ c.jsx(S2, { ...r }), []), g = K(() => {
1410
+ const r = w.marks(t), y = m.isSelectionInList(t);
1411
+ n((v) => {
1412
+ const x = {};
1413
+ for (const f in v)
1414
+ if (f === "bulletList" || f === "numberedList") {
1415
+ const S = f === "bulletList" ? "bullet-list" : f === "numberedList" ? "numbered-list" : "";
1416
+ x[f] = y && m.isBlockActive(t, S);
1417
+ } else if (f === "left" || f === "center" || f === "right")
1418
+ x[f] = m.isAlignActive(t, f);
1419
+ else if (f === "indent" || f === "outdent")
1420
+ x[f] = m.canIndent(t, f);
1421
+ else if (f === "href") {
1422
+ const S = m.isLinkActive(t);
1423
+ let R = "";
1424
+ if (S) {
1425
+ const E = w.nodes(t, {
1426
+ match: (F) => F.type === "link",
1427
+ mode: "highest"
1428
+ // Utilisez 'highest' pour obtenir le nœud le plus spécifique
1429
+ });
1430
+ for (const [F] of E)
1431
+ if (F && F.href) {
1432
+ R = F.href;
1433
+ break;
1434
+ }
1435
+ R || console.error("No link node with URL property found");
1436
+ }
1437
+ x[f] = R;
1438
+ } else f === "color" ? x[f] = (r == null ? void 0 : r.color) || null : f === "fontSize" ? x[f] = (r == null ? void 0 : r.fontSize) || null : x[f] = (r == null ? void 0 : r[f]) === !0;
1439
+ return x;
1440
+ });
1441
+ }, [t]), h = (r) => {
1442
+ r.shiftKey && m.canIndent(t, "outdent") ? (r.preventDefault(), m.handleOutdent(t)) : m.canIndent(t, "indent") && (r.preventDefault(), m.handleIndent(t));
1443
+ };
1444
+ return /* @__PURE__ */ c.jsx("div", { className: "react-text-forge", children: /* @__PURE__ */ c.jsxs(
1445
+ x2,
1446
+ {
1447
+ editor: t,
1448
+ initialValue: a,
1449
+ value: e,
1450
+ onChange: (r) => {
1451
+ if (g(), t.operations.some(
1452
+ (v) => v.type !== "set_selection"
1453
+ )) {
1454
+ const v = JSON.stringify(r);
1455
+ o(r), localStorage.setItem("content", v);
1456
+ }
1457
+ },
1458
+ children: [
1459
+ /* @__PURE__ */ c.jsx(T0, { editor: t, activeMarks: s }),
1460
+ /* @__PURE__ */ c.jsx(
1461
+ b2,
1462
+ {
1463
+ className: "editor",
1464
+ renderElement: i,
1465
+ renderLeaf: d,
1466
+ onKeyDown: (r) => {
1467
+ if (r.key === "Tab") {
1468
+ h(r);
1469
+ return;
1470
+ }
1471
+ if (r.ctrlKey)
1472
+ switch (r.key) {
1473
+ case "=": {
1474
+ r.preventDefault(), m.toggleBlock(t, "code");
1475
+ break;
1476
+ }
1477
+ case "b": {
1478
+ r.preventDefault(), m.toggleMark(t, "bold");
1479
+ break;
1480
+ }
1481
+ case "i": {
1482
+ r.preventDefault(), m.toggleMark(t, "italic");
1483
+ break;
1484
+ }
1485
+ case "u": {
1486
+ r.preventDefault(), m.toggleMark(t, "underline");
1487
+ break;
1488
+ }
1489
+ case "s": {
1490
+ r.preventDefault(), m.toggleMark(t, "strikethrough");
1491
+ break;
1492
+ }
1493
+ case "sub": {
1494
+ r.preventDefault(), m.toggleMark(t, "subscript");
1495
+ break;
1496
+ }
1497
+ case "sup": {
1498
+ r.preventDefault(), m.toggleMark(t, "superscript");
1499
+ break;
1500
+ }
1501
+ case "l": {
1502
+ r.preventDefault(), m.toggleBlock(t, "bulletList");
1503
+ break;
1504
+ }
1505
+ case "n": {
1506
+ r.preventDefault(), m.toggleBlock(t, "numberedList");
1507
+ break;
1508
+ }
1509
+ case "left": {
1510
+ r.preventDefault(), m.toggleMark(t, "left");
1511
+ break;
1512
+ }
1513
+ case "center": {
1514
+ r.preventDefault(), m.toggleMark(t, "center");
1515
+ break;
1516
+ }
1517
+ case "right": {
1518
+ r.preventDefault(), m.toggleMark(t, "right");
1519
+ break;
1520
+ }
1521
+ }
1522
+ }
1523
+ }
1524
+ )
1525
+ ]
1526
+ }
1527
+ ) });
1528
+ };
289
1529
  export {
290
- ue as default
1530
+ _0 as default
291
1531
  };
292
1532
  //# sourceMappingURL=react-text-forge.js.map