tetrons 2.3.44 → 2.3.46
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app/api/ai-action/route.cjs +9 -34
- package/dist/app/api/export/route.cjs +4 -29
- package/dist/app/api/register/route.cjs +14 -76
- package/dist/app/api/register/route.mjs +5 -32
- package/dist/app/api/save/route.cjs +13 -48
- package/dist/app/api/transcribe/route.cjs +12 -38
- package/dist/app/api/validate/route.cjs +14 -79
- package/dist/app/api/validate/route.mjs +5 -34
- package/dist/chunk-37LFEKRW.cjs +36 -0
- package/dist/chunk-M2F2EU6B.mjs +36 -0
- package/dist/index.cjs +441 -470
- package/dist/index.mjs +12 -54
- package/dist/licenseUtils-L7MYHDVW.cjs +24 -0
- package/dist/licenseUtils-NQMXVD6S.mjs +24 -0
- package/package.json +3 -8
- package/dist/server/licenseUtils.js +0 -26
package/dist/index.cjs
CHANGED
|
@@ -1,94 +1,21 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __esm = (fn, res) => function __init() {
|
|
9
|
-
return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
|
|
10
|
-
};
|
|
11
|
-
var __export = (target, all) => {
|
|
12
|
-
for (var name in all)
|
|
13
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
14
|
-
};
|
|
15
|
-
var __copyProps = (to, from2, except, desc) => {
|
|
16
|
-
if (from2 && typeof from2 === "object" || typeof from2 === "function") {
|
|
17
|
-
for (let key of __getOwnPropNames(from2))
|
|
18
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
19
|
-
__defProp(to, key, { get: () => from2[key], enumerable: !(desc = __getOwnPropDesc(from2, key)) || desc.enumerable });
|
|
20
|
-
}
|
|
21
|
-
return to;
|
|
22
|
-
};
|
|
23
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
24
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
25
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
26
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
27
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
28
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
29
|
-
mod
|
|
30
|
-
));
|
|
31
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }// src/components/tetrons/EditorContent.tsx
|
|
2
|
+
var _react = require('react'); var _react2 = _interopRequireDefault(_react);
|
|
32
3
|
|
|
33
|
-
// src/server/licenseUtils.ts
|
|
34
|
-
var licenseUtils_exports = {};
|
|
35
|
-
__export(licenseUtils_exports, {
|
|
36
|
-
getOrCreateInstallDate: () => getOrCreateInstallDate,
|
|
37
|
-
getRemainingDays: () => getRemainingDays
|
|
38
|
-
});
|
|
39
|
-
function getOrCreateInstallDate() {
|
|
40
|
-
if (import_fs.default.existsSync(USAGE_FILE_PATH)) {
|
|
41
|
-
const data = JSON.parse(import_fs.default.readFileSync(USAGE_FILE_PATH, "utf-8"));
|
|
42
|
-
return new Date(data.installedAt);
|
|
43
|
-
}
|
|
44
|
-
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
45
|
-
import_fs.default.writeFileSync(USAGE_FILE_PATH, JSON.stringify({ installedAt: now }));
|
|
46
|
-
return new Date(now);
|
|
47
|
-
}
|
|
48
|
-
function getRemainingDays(installedAt, validityDays) {
|
|
49
|
-
const now = /* @__PURE__ */ new Date();
|
|
50
|
-
const diff = Math.floor(
|
|
51
|
-
(now.getTime() - installedAt.getTime()) / (1e3 * 60 * 60 * 24)
|
|
52
|
-
);
|
|
53
|
-
return validityDays - diff;
|
|
54
|
-
}
|
|
55
|
-
var import_fs, import_path, USAGE_FILE_PATH;
|
|
56
|
-
var init_licenseUtils = __esm({
|
|
57
|
-
"src/server/licenseUtils.ts"() {
|
|
58
|
-
"use strict";
|
|
59
|
-
import_fs = __toESM(require("fs"));
|
|
60
|
-
import_path = __toESM(require("path"));
|
|
61
|
-
USAGE_FILE_PATH = import_path.default.join(process.cwd(), ".tetrons-usage.json");
|
|
62
|
-
}
|
|
63
|
-
});
|
|
64
4
|
|
|
65
|
-
// src/index.ts
|
|
66
|
-
var index_exports = {};
|
|
67
|
-
__export(index_exports, {
|
|
68
|
-
EditorContent: () => EditorContent,
|
|
69
|
-
default: () => index_default,
|
|
70
|
-
getTetronsRemainingDays: () => getTetronsRemainingDays,
|
|
71
|
-
getTetronsVersion: () => getTetronsVersion,
|
|
72
|
-
initializeTetrons: () => initializeTetrons,
|
|
73
|
-
isApiKeyValid: () => isApiKeyValid
|
|
74
|
-
});
|
|
75
|
-
module.exports = __toCommonJS(index_exports);
|
|
76
5
|
|
|
77
|
-
|
|
78
|
-
var import_react20 = __toESM(require("react"));
|
|
79
|
-
var import_react21 = require("@tiptap/react");
|
|
6
|
+
var _react3 = require('@tiptap/react');
|
|
80
7
|
|
|
81
8
|
// node_modules/@tiptap/extension-document/dist/index.js
|
|
82
|
-
var
|
|
83
|
-
var Document =
|
|
9
|
+
var _core = require('@tiptap/core');
|
|
10
|
+
var Document = _core.Node.create({
|
|
84
11
|
name: "doc",
|
|
85
12
|
topNode: true,
|
|
86
13
|
content: "block+"
|
|
87
14
|
});
|
|
88
15
|
|
|
89
16
|
// node_modules/@tiptap/extension-paragraph/dist/index.js
|
|
90
|
-
|
|
91
|
-
var Paragraph =
|
|
17
|
+
|
|
18
|
+
var Paragraph = _core.Node.create({
|
|
92
19
|
name: "paragraph",
|
|
93
20
|
priority: 1e3,
|
|
94
21
|
addOptions() {
|
|
@@ -104,7 +31,7 @@ var Paragraph = import_core2.Node.create({
|
|
|
104
31
|
];
|
|
105
32
|
},
|
|
106
33
|
renderHTML({ HTMLAttributes }) {
|
|
107
|
-
return ["p", (0,
|
|
34
|
+
return ["p", _core.mergeAttributes.call(void 0, this.options.HTMLAttributes, HTMLAttributes), 0];
|
|
108
35
|
},
|
|
109
36
|
addCommands() {
|
|
110
37
|
return {
|
|
@@ -121,14 +48,14 @@ var Paragraph = import_core2.Node.create({
|
|
|
121
48
|
});
|
|
122
49
|
|
|
123
50
|
// node_modules/@tiptap/extension-text/dist/index.js
|
|
124
|
-
|
|
125
|
-
var Text =
|
|
51
|
+
|
|
52
|
+
var Text = _core.Node.create({
|
|
126
53
|
name: "text",
|
|
127
54
|
group: "inline"
|
|
128
55
|
});
|
|
129
56
|
|
|
130
57
|
// node_modules/@tiptap/extension-history/dist/index.js
|
|
131
|
-
|
|
58
|
+
|
|
132
59
|
|
|
133
60
|
// node_modules/rope-sequence/dist/index.js
|
|
134
61
|
var GOOD_LEAF_SIZE = 200;
|
|
@@ -1024,11 +951,11 @@ var ResolvedPos = class _ResolvedPos {
|
|
|
1024
951
|
/**
|
|
1025
952
|
@internal
|
|
1026
953
|
*/
|
|
1027
|
-
constructor(pos,
|
|
954
|
+
constructor(pos, path, parentOffset) {
|
|
1028
955
|
this.pos = pos;
|
|
1029
|
-
this.path =
|
|
956
|
+
this.path = path;
|
|
1030
957
|
this.parentOffset = parentOffset;
|
|
1031
|
-
this.depth =
|
|
958
|
+
this.depth = path.length / 3 - 1;
|
|
1032
959
|
}
|
|
1033
960
|
/**
|
|
1034
961
|
@internal
|
|
@@ -1259,12 +1186,12 @@ var ResolvedPos = class _ResolvedPos {
|
|
|
1259
1186
|
static resolve(doc3, pos) {
|
|
1260
1187
|
if (!(pos >= 0 && pos <= doc3.content.size))
|
|
1261
1188
|
throw new RangeError("Position " + pos + " out of range");
|
|
1262
|
-
let
|
|
1189
|
+
let path = [];
|
|
1263
1190
|
let start = 0, parentOffset = pos;
|
|
1264
1191
|
for (let node = doc3; ; ) {
|
|
1265
1192
|
let { index, offset } = node.content.findIndex(parentOffset);
|
|
1266
1193
|
let rem = parentOffset - offset;
|
|
1267
|
-
|
|
1194
|
+
path.push(node, index, start + offset);
|
|
1268
1195
|
if (!rem)
|
|
1269
1196
|
break;
|
|
1270
1197
|
node = node.child(index);
|
|
@@ -1273,7 +1200,7 @@ var ResolvedPos = class _ResolvedPos {
|
|
|
1273
1200
|
parentOffset = rem - 1;
|
|
1274
1201
|
start += offset + 1;
|
|
1275
1202
|
}
|
|
1276
|
-
return new _ResolvedPos(pos,
|
|
1203
|
+
return new _ResolvedPos(pos, path, parentOffset);
|
|
1277
1204
|
}
|
|
1278
1205
|
/**
|
|
1279
1206
|
@internal
|
|
@@ -5748,7 +5675,7 @@ var undoNoScroll = buildCommand(false, false);
|
|
|
5748
5675
|
var redoNoScroll = buildCommand(true, false);
|
|
5749
5676
|
|
|
5750
5677
|
// node_modules/@tiptap/extension-history/dist/index.js
|
|
5751
|
-
var History =
|
|
5678
|
+
var History = _core.Extension.create({
|
|
5752
5679
|
name: "history",
|
|
5753
5680
|
addOptions() {
|
|
5754
5681
|
return {
|
|
@@ -5784,12 +5711,12 @@ var History = import_core4.Extension.create({
|
|
|
5784
5711
|
});
|
|
5785
5712
|
|
|
5786
5713
|
// node_modules/@tiptap/extension-bold/dist/index.js
|
|
5787
|
-
|
|
5714
|
+
|
|
5788
5715
|
var starInputRegex = /(?:^|\s)(\*\*(?!\s+\*\*)((?:[^*]+))\*\*(?!\s+\*\*))$/;
|
|
5789
5716
|
var starPasteRegex = /(?:^|\s)(\*\*(?!\s+\*\*)((?:[^*]+))\*\*(?!\s+\*\*))/g;
|
|
5790
5717
|
var underscoreInputRegex = /(?:^|\s)(__(?!\s+__)((?:[^_]+))__(?!\s+__))$/;
|
|
5791
5718
|
var underscorePasteRegex = /(?:^|\s)(__(?!\s+__)((?:[^_]+))__(?!\s+__))/g;
|
|
5792
|
-
var Bold =
|
|
5719
|
+
var Bold = _core.Mark.create({
|
|
5793
5720
|
name: "bold",
|
|
5794
5721
|
addOptions() {
|
|
5795
5722
|
return {
|
|
@@ -5816,7 +5743,7 @@ var Bold = import_core5.Mark.create({
|
|
|
5816
5743
|
];
|
|
5817
5744
|
},
|
|
5818
5745
|
renderHTML({ HTMLAttributes }) {
|
|
5819
|
-
return ["strong", (0,
|
|
5746
|
+
return ["strong", _core.mergeAttributes.call(void 0, this.options.HTMLAttributes, HTMLAttributes), 0];
|
|
5820
5747
|
},
|
|
5821
5748
|
addCommands() {
|
|
5822
5749
|
return {
|
|
@@ -5839,11 +5766,11 @@ var Bold = import_core5.Mark.create({
|
|
|
5839
5766
|
},
|
|
5840
5767
|
addInputRules() {
|
|
5841
5768
|
return [
|
|
5842
|
-
(0,
|
|
5769
|
+
_core.markInputRule.call(void 0, {
|
|
5843
5770
|
find: starInputRegex,
|
|
5844
5771
|
type: this.type
|
|
5845
5772
|
}),
|
|
5846
|
-
(0,
|
|
5773
|
+
_core.markInputRule.call(void 0, {
|
|
5847
5774
|
find: underscoreInputRegex,
|
|
5848
5775
|
type: this.type
|
|
5849
5776
|
})
|
|
@@ -5851,11 +5778,11 @@ var Bold = import_core5.Mark.create({
|
|
|
5851
5778
|
},
|
|
5852
5779
|
addPasteRules() {
|
|
5853
5780
|
return [
|
|
5854
|
-
(0,
|
|
5781
|
+
_core.markPasteRule.call(void 0, {
|
|
5855
5782
|
find: starPasteRegex,
|
|
5856
5783
|
type: this.type
|
|
5857
5784
|
}),
|
|
5858
|
-
(0,
|
|
5785
|
+
_core.markPasteRule.call(void 0, {
|
|
5859
5786
|
find: underscorePasteRegex,
|
|
5860
5787
|
type: this.type
|
|
5861
5788
|
})
|
|
@@ -5864,12 +5791,12 @@ var Bold = import_core5.Mark.create({
|
|
|
5864
5791
|
});
|
|
5865
5792
|
|
|
5866
5793
|
// node_modules/@tiptap/extension-italic/dist/index.js
|
|
5867
|
-
|
|
5794
|
+
|
|
5868
5795
|
var starInputRegex2 = /(?:^|\s)(\*(?!\s+\*)((?:[^*]+))\*(?!\s+\*))$/;
|
|
5869
5796
|
var starPasteRegex2 = /(?:^|\s)(\*(?!\s+\*)((?:[^*]+))\*(?!\s+\*))/g;
|
|
5870
5797
|
var underscoreInputRegex2 = /(?:^|\s)(_(?!\s+_)((?:[^_]+))_(?!\s+_))$/;
|
|
5871
5798
|
var underscorePasteRegex2 = /(?:^|\s)(_(?!\s+_)((?:[^_]+))_(?!\s+_))/g;
|
|
5872
|
-
var Italic =
|
|
5799
|
+
var Italic = _core.Mark.create({
|
|
5873
5800
|
name: "italic",
|
|
5874
5801
|
addOptions() {
|
|
5875
5802
|
return {
|
|
@@ -5895,7 +5822,7 @@ var Italic = import_core6.Mark.create({
|
|
|
5895
5822
|
];
|
|
5896
5823
|
},
|
|
5897
5824
|
renderHTML({ HTMLAttributes }) {
|
|
5898
|
-
return ["em", (0,
|
|
5825
|
+
return ["em", _core.mergeAttributes.call(void 0, this.options.HTMLAttributes, HTMLAttributes), 0];
|
|
5899
5826
|
},
|
|
5900
5827
|
addCommands() {
|
|
5901
5828
|
return {
|
|
@@ -5918,11 +5845,11 @@ var Italic = import_core6.Mark.create({
|
|
|
5918
5845
|
},
|
|
5919
5846
|
addInputRules() {
|
|
5920
5847
|
return [
|
|
5921
|
-
(0,
|
|
5848
|
+
_core.markInputRule.call(void 0, {
|
|
5922
5849
|
find: starInputRegex2,
|
|
5923
5850
|
type: this.type
|
|
5924
5851
|
}),
|
|
5925
|
-
(0,
|
|
5852
|
+
_core.markInputRule.call(void 0, {
|
|
5926
5853
|
find: underscoreInputRegex2,
|
|
5927
5854
|
type: this.type
|
|
5928
5855
|
})
|
|
@@ -5930,11 +5857,11 @@ var Italic = import_core6.Mark.create({
|
|
|
5930
5857
|
},
|
|
5931
5858
|
addPasteRules() {
|
|
5932
5859
|
return [
|
|
5933
|
-
(0,
|
|
5860
|
+
_core.markPasteRule.call(void 0, {
|
|
5934
5861
|
find: starPasteRegex2,
|
|
5935
5862
|
type: this.type
|
|
5936
5863
|
}),
|
|
5937
|
-
(0,
|
|
5864
|
+
_core.markPasteRule.call(void 0, {
|
|
5938
5865
|
find: underscorePasteRegex2,
|
|
5939
5866
|
type: this.type
|
|
5940
5867
|
})
|
|
@@ -5943,13 +5870,13 @@ var Italic = import_core6.Mark.create({
|
|
|
5943
5870
|
});
|
|
5944
5871
|
|
|
5945
5872
|
// src/components/tetrons/EditorContent.tsx
|
|
5946
|
-
var
|
|
5873
|
+
var _extensionunderline = require('@tiptap/extension-underline'); var _extensionunderline2 = _interopRequireDefault(_extensionunderline);
|
|
5947
5874
|
|
|
5948
5875
|
// node_modules/@tiptap/extension-strike/dist/index.js
|
|
5949
|
-
|
|
5876
|
+
|
|
5950
5877
|
var inputRegex = /(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))$/;
|
|
5951
5878
|
var pasteRegex = /(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))/g;
|
|
5952
|
-
var Strike =
|
|
5879
|
+
var Strike = _core.Mark.create({
|
|
5953
5880
|
name: "strike",
|
|
5954
5881
|
addOptions() {
|
|
5955
5882
|
return {
|
|
@@ -5975,7 +5902,7 @@ var Strike = import_core7.Mark.create({
|
|
|
5975
5902
|
];
|
|
5976
5903
|
},
|
|
5977
5904
|
renderHTML({ HTMLAttributes }) {
|
|
5978
|
-
return ["s", (0,
|
|
5905
|
+
return ["s", _core.mergeAttributes.call(void 0, this.options.HTMLAttributes, HTMLAttributes), 0];
|
|
5979
5906
|
},
|
|
5980
5907
|
addCommands() {
|
|
5981
5908
|
return {
|
|
@@ -5997,7 +5924,7 @@ var Strike = import_core7.Mark.create({
|
|
|
5997
5924
|
},
|
|
5998
5925
|
addInputRules() {
|
|
5999
5926
|
return [
|
|
6000
|
-
(0,
|
|
5927
|
+
_core.markInputRule.call(void 0, {
|
|
6001
5928
|
find: inputRegex,
|
|
6002
5929
|
type: this.type
|
|
6003
5930
|
})
|
|
@@ -6005,7 +5932,7 @@ var Strike = import_core7.Mark.create({
|
|
|
6005
5932
|
},
|
|
6006
5933
|
addPasteRules() {
|
|
6007
5934
|
return [
|
|
6008
|
-
(0,
|
|
5935
|
+
_core.markPasteRule.call(void 0, {
|
|
6009
5936
|
find: pasteRegex,
|
|
6010
5937
|
type: this.type
|
|
6011
5938
|
})
|
|
@@ -6014,10 +5941,10 @@ var Strike = import_core7.Mark.create({
|
|
|
6014
5941
|
});
|
|
6015
5942
|
|
|
6016
5943
|
// node_modules/@tiptap/extension-code/dist/index.js
|
|
6017
|
-
|
|
5944
|
+
|
|
6018
5945
|
var inputRegex2 = /(^|[^`])`([^`]+)`(?!`)/;
|
|
6019
5946
|
var pasteRegex2 = /(^|[^`])`([^`]+)`(?!`)/g;
|
|
6020
|
-
var Code =
|
|
5947
|
+
var Code = _core.Mark.create({
|
|
6021
5948
|
name: "code",
|
|
6022
5949
|
addOptions() {
|
|
6023
5950
|
return {
|
|
@@ -6033,7 +5960,7 @@ var Code = import_core8.Mark.create({
|
|
|
6033
5960
|
];
|
|
6034
5961
|
},
|
|
6035
5962
|
renderHTML({ HTMLAttributes }) {
|
|
6036
|
-
return ["code", (0,
|
|
5963
|
+
return ["code", _core.mergeAttributes.call(void 0, this.options.HTMLAttributes, HTMLAttributes), 0];
|
|
6037
5964
|
},
|
|
6038
5965
|
addCommands() {
|
|
6039
5966
|
return {
|
|
@@ -6055,7 +5982,7 @@ var Code = import_core8.Mark.create({
|
|
|
6055
5982
|
},
|
|
6056
5983
|
addInputRules() {
|
|
6057
5984
|
return [
|
|
6058
|
-
(0,
|
|
5985
|
+
_core.markInputRule.call(void 0, {
|
|
6059
5986
|
find: inputRegex2,
|
|
6060
5987
|
type: this.type
|
|
6061
5988
|
})
|
|
@@ -6063,7 +5990,7 @@ var Code = import_core8.Mark.create({
|
|
|
6063
5990
|
},
|
|
6064
5991
|
addPasteRules() {
|
|
6065
5992
|
return [
|
|
6066
|
-
(0,
|
|
5993
|
+
_core.markPasteRule.call(void 0, {
|
|
6067
5994
|
find: pasteRegex2,
|
|
6068
5995
|
type: this.type
|
|
6069
5996
|
})
|
|
@@ -6072,9 +5999,9 @@ var Code = import_core8.Mark.create({
|
|
|
6072
5999
|
});
|
|
6073
6000
|
|
|
6074
6001
|
// node_modules/@tiptap/extension-blockquote/dist/index.js
|
|
6075
|
-
|
|
6002
|
+
|
|
6076
6003
|
var inputRegex3 = /^\s*>\s$/;
|
|
6077
|
-
var Blockquote =
|
|
6004
|
+
var Blockquote = _core.Node.create({
|
|
6078
6005
|
name: "blockquote",
|
|
6079
6006
|
addOptions() {
|
|
6080
6007
|
return {
|
|
@@ -6090,7 +6017,7 @@ var Blockquote = import_core9.Node.create({
|
|
|
6090
6017
|
];
|
|
6091
6018
|
},
|
|
6092
6019
|
renderHTML({ HTMLAttributes }) {
|
|
6093
|
-
return ["blockquote", (0,
|
|
6020
|
+
return ["blockquote", _core.mergeAttributes.call(void 0, this.options.HTMLAttributes, HTMLAttributes), 0];
|
|
6094
6021
|
},
|
|
6095
6022
|
addCommands() {
|
|
6096
6023
|
return {
|
|
@@ -6112,7 +6039,7 @@ var Blockquote = import_core9.Node.create({
|
|
|
6112
6039
|
},
|
|
6113
6040
|
addInputRules() {
|
|
6114
6041
|
return [
|
|
6115
|
-
(0,
|
|
6042
|
+
_core.wrappingInputRule.call(void 0, {
|
|
6116
6043
|
find: inputRegex3,
|
|
6117
6044
|
type: this.type
|
|
6118
6045
|
})
|
|
@@ -6121,8 +6048,8 @@ var Blockquote = import_core9.Node.create({
|
|
|
6121
6048
|
});
|
|
6122
6049
|
|
|
6123
6050
|
// node_modules/@tiptap/extension-hard-break/dist/index.js
|
|
6124
|
-
|
|
6125
|
-
var HardBreak =
|
|
6051
|
+
|
|
6052
|
+
var HardBreak = _core.Node.create({
|
|
6126
6053
|
name: "hardBreak",
|
|
6127
6054
|
addOptions() {
|
|
6128
6055
|
return {
|
|
@@ -6140,7 +6067,7 @@ var HardBreak = import_core10.Node.create({
|
|
|
6140
6067
|
];
|
|
6141
6068
|
},
|
|
6142
6069
|
renderHTML({ HTMLAttributes }) {
|
|
6143
|
-
return ["br", (0,
|
|
6070
|
+
return ["br", _core.mergeAttributes.call(void 0, this.options.HTMLAttributes, HTMLAttributes)];
|
|
6144
6071
|
},
|
|
6145
6072
|
renderText() {
|
|
6146
6073
|
return "\n";
|
|
@@ -6179,8 +6106,8 @@ var HardBreak = import_core10.Node.create({
|
|
|
6179
6106
|
});
|
|
6180
6107
|
|
|
6181
6108
|
// node_modules/@tiptap/extension-heading/dist/index.js
|
|
6182
|
-
|
|
6183
|
-
var Heading =
|
|
6109
|
+
|
|
6110
|
+
var Heading = _core.Node.create({
|
|
6184
6111
|
name: "heading",
|
|
6185
6112
|
addOptions() {
|
|
6186
6113
|
return {
|
|
@@ -6208,7 +6135,7 @@ var Heading = import_core11.Node.create({
|
|
|
6208
6135
|
renderHTML({ node, HTMLAttributes }) {
|
|
6209
6136
|
const hasLevel = this.options.levels.includes(node.attrs.level);
|
|
6210
6137
|
const level = hasLevel ? node.attrs.level : this.options.levels[0];
|
|
6211
|
-
return [`h${level}`, (0,
|
|
6138
|
+
return [`h${level}`, _core.mergeAttributes.call(void 0, this.options.HTMLAttributes, HTMLAttributes), 0];
|
|
6212
6139
|
},
|
|
6213
6140
|
addCommands() {
|
|
6214
6141
|
return {
|
|
@@ -6236,7 +6163,7 @@ var Heading = import_core11.Node.create({
|
|
|
6236
6163
|
},
|
|
6237
6164
|
addInputRules() {
|
|
6238
6165
|
return this.options.levels.map((level) => {
|
|
6239
|
-
return (0,
|
|
6166
|
+
return _core.textblockTypeInputRule.call(void 0, {
|
|
6240
6167
|
find: new RegExp(`^(#{${Math.min(...this.options.levels)},${level}})\\s$`),
|
|
6241
6168
|
type: this.type,
|
|
6242
6169
|
getAttributes: {
|
|
@@ -6248,8 +6175,8 @@ var Heading = import_core11.Node.create({
|
|
|
6248
6175
|
});
|
|
6249
6176
|
|
|
6250
6177
|
// node_modules/@tiptap/extension-horizontal-rule/dist/index.js
|
|
6251
|
-
|
|
6252
|
-
var HorizontalRule =
|
|
6178
|
+
|
|
6179
|
+
var HorizontalRule = _core.Node.create({
|
|
6253
6180
|
name: "horizontalRule",
|
|
6254
6181
|
addOptions() {
|
|
6255
6182
|
return {
|
|
@@ -6261,12 +6188,12 @@ var HorizontalRule = import_core12.Node.create({
|
|
|
6261
6188
|
return [{ tag: "hr" }];
|
|
6262
6189
|
},
|
|
6263
6190
|
renderHTML({ HTMLAttributes }) {
|
|
6264
|
-
return ["hr", (0,
|
|
6191
|
+
return ["hr", _core.mergeAttributes.call(void 0, this.options.HTMLAttributes, HTMLAttributes)];
|
|
6265
6192
|
},
|
|
6266
6193
|
addCommands() {
|
|
6267
6194
|
return {
|
|
6268
6195
|
setHorizontalRule: () => ({ chain, state }) => {
|
|
6269
|
-
if (!(0,
|
|
6196
|
+
if (!_core.canInsertNode.call(void 0, state, state.schema.nodes[this.name])) {
|
|
6270
6197
|
return false;
|
|
6271
6198
|
}
|
|
6272
6199
|
const { selection } = state;
|
|
@@ -6279,7 +6206,7 @@ var HorizontalRule = import_core12.Node.create({
|
|
|
6279
6206
|
}, {
|
|
6280
6207
|
type: this.name
|
|
6281
6208
|
});
|
|
6282
|
-
} else if ((0,
|
|
6209
|
+
} else if (_core.isNodeSelection.call(void 0, selection)) {
|
|
6283
6210
|
currentChain.insertContentAt($originTo.pos, {
|
|
6284
6211
|
type: this.name
|
|
6285
6212
|
});
|
|
@@ -6315,7 +6242,7 @@ var HorizontalRule = import_core12.Node.create({
|
|
|
6315
6242
|
},
|
|
6316
6243
|
addInputRules() {
|
|
6317
6244
|
return [
|
|
6318
|
-
(0,
|
|
6245
|
+
_core.nodeInputRule.call(void 0, {
|
|
6319
6246
|
find: /^(?:---|—-|___\s|\*\*\*\s)$/,
|
|
6320
6247
|
type: this.type
|
|
6321
6248
|
})
|
|
@@ -6324,16 +6251,16 @@ var HorizontalRule = import_core12.Node.create({
|
|
|
6324
6251
|
});
|
|
6325
6252
|
|
|
6326
6253
|
// src/components/tetrons/EditorContent.tsx
|
|
6327
|
-
var
|
|
6328
|
-
var
|
|
6329
|
-
var
|
|
6330
|
-
var
|
|
6331
|
-
var
|
|
6332
|
-
var
|
|
6254
|
+
var _extensiontextalign = require('@tiptap/extension-text-align'); var _extensiontextalign2 = _interopRequireDefault(_extensiontextalign);
|
|
6255
|
+
var _extensioncolor = require('@tiptap/extension-color'); var _extensioncolor2 = _interopRequireDefault(_extensioncolor);
|
|
6256
|
+
var _extensionhighlight = require('@tiptap/extension-highlight'); var _extensionhighlight2 = _interopRequireDefault(_extensionhighlight);
|
|
6257
|
+
var _extensionimage = require('@tiptap/extension-image'); var _extensionimage2 = _interopRequireDefault(_extensionimage);
|
|
6258
|
+
var _extensionlink = require('@tiptap/extension-link'); var _extensionlink2 = _interopRequireDefault(_extensionlink);
|
|
6259
|
+
var _extensiontextstyle = require('@tiptap/extension-text-style'); var _extensiontextstyle2 = _interopRequireDefault(_extensiontextstyle);
|
|
6333
6260
|
|
|
6334
6261
|
// node_modules/@tiptap/extension-list-item/dist/index.js
|
|
6335
|
-
|
|
6336
|
-
var ListItem =
|
|
6262
|
+
|
|
6263
|
+
var ListItem = _core.Node.create({
|
|
6337
6264
|
name: "listItem",
|
|
6338
6265
|
addOptions() {
|
|
6339
6266
|
return {
|
|
@@ -6352,7 +6279,7 @@ var ListItem = import_core13.Node.create({
|
|
|
6352
6279
|
];
|
|
6353
6280
|
},
|
|
6354
6281
|
renderHTML({ HTMLAttributes }) {
|
|
6355
|
-
return ["li", (0,
|
|
6282
|
+
return ["li", _core.mergeAttributes.call(void 0, this.options.HTMLAttributes, HTMLAttributes), 0];
|
|
6356
6283
|
},
|
|
6357
6284
|
addKeyboardShortcuts() {
|
|
6358
6285
|
return {
|
|
@@ -6364,11 +6291,11 @@ var ListItem = import_core13.Node.create({
|
|
|
6364
6291
|
});
|
|
6365
6292
|
|
|
6366
6293
|
// node_modules/@tiptap/extension-bullet-list/dist/index.js
|
|
6367
|
-
|
|
6294
|
+
|
|
6368
6295
|
var ListItemName = "listItem";
|
|
6369
6296
|
var TextStyleName = "textStyle";
|
|
6370
6297
|
var inputRegex4 = /^\s*([-+*])\s$/;
|
|
6371
|
-
var BulletList =
|
|
6298
|
+
var BulletList = _core.Node.create({
|
|
6372
6299
|
name: "bulletList",
|
|
6373
6300
|
addOptions() {
|
|
6374
6301
|
return {
|
|
@@ -6388,7 +6315,7 @@ var BulletList = import_core14.Node.create({
|
|
|
6388
6315
|
];
|
|
6389
6316
|
},
|
|
6390
6317
|
renderHTML({ HTMLAttributes }) {
|
|
6391
|
-
return ["ul", (0,
|
|
6318
|
+
return ["ul", _core.mergeAttributes.call(void 0, this.options.HTMLAttributes, HTMLAttributes), 0];
|
|
6392
6319
|
},
|
|
6393
6320
|
addCommands() {
|
|
6394
6321
|
return {
|
|
@@ -6406,12 +6333,12 @@ var BulletList = import_core14.Node.create({
|
|
|
6406
6333
|
};
|
|
6407
6334
|
},
|
|
6408
6335
|
addInputRules() {
|
|
6409
|
-
let inputRule = (0,
|
|
6336
|
+
let inputRule = _core.wrappingInputRule.call(void 0, {
|
|
6410
6337
|
find: inputRegex4,
|
|
6411
6338
|
type: this.type
|
|
6412
6339
|
});
|
|
6413
6340
|
if (this.options.keepMarks || this.options.keepAttributes) {
|
|
6414
|
-
inputRule = (0,
|
|
6341
|
+
inputRule = _core.wrappingInputRule.call(void 0, {
|
|
6415
6342
|
find: inputRegex4,
|
|
6416
6343
|
type: this.type,
|
|
6417
6344
|
keepMarks: this.options.keepMarks,
|
|
@@ -6429,11 +6356,11 @@ var BulletList = import_core14.Node.create({
|
|
|
6429
6356
|
});
|
|
6430
6357
|
|
|
6431
6358
|
// node_modules/@tiptap/extension-ordered-list/dist/index.js
|
|
6432
|
-
|
|
6359
|
+
|
|
6433
6360
|
var ListItemName2 = "listItem";
|
|
6434
6361
|
var TextStyleName2 = "textStyle";
|
|
6435
6362
|
var inputRegex5 = /^(\d+)\.\s$/;
|
|
6436
|
-
var OrderedList =
|
|
6363
|
+
var OrderedList = _core.Node.create({
|
|
6437
6364
|
name: "orderedList",
|
|
6438
6365
|
addOptions() {
|
|
6439
6366
|
return {
|
|
@@ -6470,7 +6397,7 @@ var OrderedList = import_core15.Node.create({
|
|
|
6470
6397
|
},
|
|
6471
6398
|
renderHTML({ HTMLAttributes }) {
|
|
6472
6399
|
const { start, ...attributesWithoutStart } = HTMLAttributes;
|
|
6473
|
-
return start === 1 ? ["ol", (0,
|
|
6400
|
+
return start === 1 ? ["ol", _core.mergeAttributes.call(void 0, this.options.HTMLAttributes, attributesWithoutStart), 0] : ["ol", _core.mergeAttributes.call(void 0, this.options.HTMLAttributes, HTMLAttributes), 0];
|
|
6474
6401
|
},
|
|
6475
6402
|
addCommands() {
|
|
6476
6403
|
return {
|
|
@@ -6488,14 +6415,14 @@ var OrderedList = import_core15.Node.create({
|
|
|
6488
6415
|
};
|
|
6489
6416
|
},
|
|
6490
6417
|
addInputRules() {
|
|
6491
|
-
let inputRule = (0,
|
|
6418
|
+
let inputRule = _core.wrappingInputRule.call(void 0, {
|
|
6492
6419
|
find: inputRegex5,
|
|
6493
6420
|
type: this.type,
|
|
6494
6421
|
getAttributes: (match) => ({ start: +match[1] }),
|
|
6495
6422
|
joinPredicate: (match, node) => node.childCount + node.attrs.start === +match[1]
|
|
6496
6423
|
});
|
|
6497
6424
|
if (this.options.keepMarks || this.options.keepAttributes) {
|
|
6498
|
-
inputRule = (0,
|
|
6425
|
+
inputRule = _core.wrappingInputRule.call(void 0, {
|
|
6499
6426
|
find: inputRegex5,
|
|
6500
6427
|
type: this.type,
|
|
6501
6428
|
keepMarks: this.options.keepMarks,
|
|
@@ -6512,10 +6439,10 @@ var OrderedList = import_core15.Node.create({
|
|
|
6512
6439
|
});
|
|
6513
6440
|
|
|
6514
6441
|
// src/components/tetrons/EditorContent.tsx
|
|
6515
|
-
var
|
|
6516
|
-
var
|
|
6517
|
-
var
|
|
6518
|
-
var
|
|
6442
|
+
var _extensiontablerow = require('@tiptap/extension-table-row'); var _extensiontablerow2 = _interopRequireDefault(_extensiontablerow);
|
|
6443
|
+
var _extensiontablecell = require('@tiptap/extension-table-cell'); var _extensiontablecell2 = _interopRequireDefault(_extensiontablecell);
|
|
6444
|
+
var _extensiontableheader = require('@tiptap/extension-table-header'); var _extensiontableheader2 = _interopRequireDefault(_extensiontableheader);
|
|
6445
|
+
var _extensioncodeblocklowlight = require('@tiptap/extension-code-block-lowlight'); var _extensioncodeblocklowlight2 = _interopRequireDefault(_extensioncodeblocklowlight);
|
|
6519
6446
|
|
|
6520
6447
|
// node_modules/highlight.js/es/languages/javascript.js
|
|
6521
6448
|
var IDENT_RE = "[A-Za-z$_][0-9A-Za-z$_]*";
|
|
@@ -8033,14 +7960,14 @@ function typescript(hljs) {
|
|
|
8033
7960
|
}
|
|
8034
7961
|
|
|
8035
7962
|
// src/components/tetrons/EditorContent.tsx
|
|
8036
|
-
var
|
|
7963
|
+
var _lowlight = require('lowlight');
|
|
8037
7964
|
|
|
8038
7965
|
// src/utils/useTypo.ts
|
|
8039
|
-
|
|
8040
|
-
var
|
|
7966
|
+
|
|
7967
|
+
var _typojs = require('typo-js'); var _typojs2 = _interopRequireDefault(_typojs);
|
|
8041
7968
|
function useTypo() {
|
|
8042
|
-
const [typo, setTypo] = (0,
|
|
8043
|
-
(0,
|
|
7969
|
+
const [typo, setTypo] = _react.useState.call(void 0, null);
|
|
7970
|
+
_react.useEffect.call(void 0, () => {
|
|
8044
7971
|
async function loadDictionary() {
|
|
8045
7972
|
const aff = await fetch("/dictionaries/index.aff").then(
|
|
8046
7973
|
(res) => res.text()
|
|
@@ -8048,7 +7975,7 @@ function useTypo() {
|
|
|
8048
7975
|
const dic = await fetch("/dictionaries/index.dic").then(
|
|
8049
7976
|
(res) => res.text()
|
|
8050
7977
|
);
|
|
8051
|
-
const dictionary = new
|
|
7978
|
+
const dictionary = new (0, _typojs2.default)("en_US", aff, dic, { platform: "any" });
|
|
8052
7979
|
setTypo(dictionary);
|
|
8053
7980
|
}
|
|
8054
7981
|
loadDictionary();
|
|
@@ -8057,9 +7984,9 @@ function useTypo() {
|
|
|
8057
7984
|
}
|
|
8058
7985
|
|
|
8059
7986
|
// src/components/tetrons/extensions/Spellcheck.ts
|
|
8060
|
-
|
|
7987
|
+
|
|
8061
7988
|
var wordMatchRegex = () => /(?:^|\s)([a-zA-Z]{2,})(?=\s|$)/g;
|
|
8062
|
-
var Spellcheck =
|
|
7989
|
+
var Spellcheck = _core.Mark.create({
|
|
8063
7990
|
name: "spellcheck",
|
|
8064
7991
|
addOptions() {
|
|
8065
7992
|
return {
|
|
@@ -8068,7 +7995,7 @@ var Spellcheck = import_core16.Mark.create({
|
|
|
8068
7995
|
},
|
|
8069
7996
|
addInputRules() {
|
|
8070
7997
|
return [
|
|
8071
|
-
(0,
|
|
7998
|
+
_core.markInputRule.call(void 0, {
|
|
8072
7999
|
find: wordMatchRegex(),
|
|
8073
8000
|
type: this.type,
|
|
8074
8001
|
getAttributes: (match) => this.options.spellcheckFn(match[1]) ? false : { "data-spellcheck": "true" }
|
|
@@ -8096,8 +8023,8 @@ var Spellcheck = import_core16.Mark.create({
|
|
|
8096
8023
|
});
|
|
8097
8024
|
|
|
8098
8025
|
// src/components/tetrons/toolbar/extensions/Comment.ts
|
|
8099
|
-
|
|
8100
|
-
var Comment =
|
|
8026
|
+
|
|
8027
|
+
var Comment = _core.Mark.create({
|
|
8101
8028
|
name: "comment",
|
|
8102
8029
|
addOptions() {
|
|
8103
8030
|
return {
|
|
@@ -8121,7 +8048,7 @@ var Comment = import_core17.Mark.create({
|
|
|
8121
8048
|
renderHTML({ HTMLAttributes }) {
|
|
8122
8049
|
return [
|
|
8123
8050
|
"span",
|
|
8124
|
-
(0,
|
|
8051
|
+
_core.mergeAttributes.call(void 0, HTMLAttributes, {
|
|
8125
8052
|
"data-comment": HTMLAttributes.comment,
|
|
8126
8053
|
class: "comment-highlight",
|
|
8127
8054
|
title: HTMLAttributes.comment,
|
|
@@ -8143,8 +8070,8 @@ var Comment = import_core17.Mark.create({
|
|
|
8143
8070
|
});
|
|
8144
8071
|
|
|
8145
8072
|
// src/components/tetrons/toolbar/marks/Subscript.ts
|
|
8146
|
-
|
|
8147
|
-
var Subscript =
|
|
8073
|
+
|
|
8074
|
+
var Subscript = _core.Mark.create({
|
|
8148
8075
|
name: "subscript",
|
|
8149
8076
|
excludes: "superscript",
|
|
8150
8077
|
parseHTML() {
|
|
@@ -8160,7 +8087,7 @@ var Subscript = import_core18.Mark.create({
|
|
|
8160
8087
|
},
|
|
8161
8088
|
addInputRules() {
|
|
8162
8089
|
return [
|
|
8163
|
-
(0,
|
|
8090
|
+
_core.markInputRule.call(void 0, {
|
|
8164
8091
|
find: /~([^~]+)~/,
|
|
8165
8092
|
type: this.type
|
|
8166
8093
|
})
|
|
@@ -8168,7 +8095,7 @@ var Subscript = import_core18.Mark.create({
|
|
|
8168
8095
|
},
|
|
8169
8096
|
addPasteRules() {
|
|
8170
8097
|
return [
|
|
8171
|
-
(0,
|
|
8098
|
+
_core.markPasteRule.call(void 0, {
|
|
8172
8099
|
find: /~([^~]+)~/g,
|
|
8173
8100
|
type: this.type
|
|
8174
8101
|
})
|
|
@@ -8177,8 +8104,8 @@ var Subscript = import_core18.Mark.create({
|
|
|
8177
8104
|
});
|
|
8178
8105
|
|
|
8179
8106
|
// src/components/tetrons/toolbar/marks/Superscript.ts
|
|
8180
|
-
|
|
8181
|
-
var Superscript =
|
|
8107
|
+
|
|
8108
|
+
var Superscript = _core.Mark.create({
|
|
8182
8109
|
name: "superscript",
|
|
8183
8110
|
excludes: "subscript",
|
|
8184
8111
|
parseHTML() {
|
|
@@ -8194,7 +8121,7 @@ var Superscript = import_core19.Mark.create({
|
|
|
8194
8121
|
},
|
|
8195
8122
|
addInputRules() {
|
|
8196
8123
|
return [
|
|
8197
|
-
(0,
|
|
8124
|
+
_core.markInputRule.call(void 0, {
|
|
8198
8125
|
find: /\^([^^]+)\^/,
|
|
8199
8126
|
type: this.type
|
|
8200
8127
|
})
|
|
@@ -8202,7 +8129,7 @@ var Superscript = import_core19.Mark.create({
|
|
|
8202
8129
|
},
|
|
8203
8130
|
addPasteRules() {
|
|
8204
8131
|
return [
|
|
8205
|
-
(0,
|
|
8132
|
+
_core.markPasteRule.call(void 0, {
|
|
8206
8133
|
find: /\^([^^]+)\^/g,
|
|
8207
8134
|
type: this.type
|
|
8208
8135
|
})
|
|
@@ -8211,7 +8138,7 @@ var Superscript = import_core19.Mark.create({
|
|
|
8211
8138
|
});
|
|
8212
8139
|
|
|
8213
8140
|
// src/components/tetrons/toolbar/extensions/ResizableTable.ts
|
|
8214
|
-
var
|
|
8141
|
+
var _extensiontable = require('@tiptap/extension-table');
|
|
8215
8142
|
|
|
8216
8143
|
// node_modules/prosemirror-view/dist/index.js
|
|
8217
8144
|
var domIndex = function(node) {
|
|
@@ -15268,10 +15195,10 @@ function tableEditing({
|
|
|
15268
15195
|
}
|
|
15269
15196
|
|
|
15270
15197
|
// src/components/tetrons/toolbar/extensions/ResizableTable.ts
|
|
15271
|
-
var ResizableTable =
|
|
15198
|
+
var ResizableTable = _extensiontable.Table.extend({
|
|
15272
15199
|
addOptions() {
|
|
15273
15200
|
return {
|
|
15274
|
-
...this.parent
|
|
15201
|
+
..._optionalChain([this, 'access', _3 => _3.parent, 'optionalCall', _4 => _4()]),
|
|
15275
15202
|
resizable: true
|
|
15276
15203
|
};
|
|
15277
15204
|
},
|
|
@@ -15281,8 +15208,8 @@ var ResizableTable = import_extension_table.Table.extend({
|
|
|
15281
15208
|
});
|
|
15282
15209
|
|
|
15283
15210
|
// src/components/tetrons/toolbar/extensions/Embed.ts
|
|
15284
|
-
|
|
15285
|
-
var Embed =
|
|
15211
|
+
|
|
15212
|
+
var Embed = _core.Node.create({
|
|
15286
15213
|
name: "embed",
|
|
15287
15214
|
group: "block",
|
|
15288
15215
|
atom: true,
|
|
@@ -15297,7 +15224,7 @@ var Embed = import_core20.Node.create({
|
|
|
15297
15224
|
return [{ tag: "iframe[src]" }];
|
|
15298
15225
|
},
|
|
15299
15226
|
renderHTML({ HTMLAttributes }) {
|
|
15300
|
-
return ["iframe", (0,
|
|
15227
|
+
return ["iframe", _core.mergeAttributes.call(void 0, HTMLAttributes)];
|
|
15301
15228
|
},
|
|
15302
15229
|
addCommands() {
|
|
15303
15230
|
return {
|
|
@@ -15375,8 +15302,8 @@ var Embed = import_core20.Node.create({
|
|
|
15375
15302
|
});
|
|
15376
15303
|
|
|
15377
15304
|
// src/components/tetrons/toolbar/extensions/FontFamily.ts
|
|
15378
|
-
|
|
15379
|
-
var FontFamily =
|
|
15305
|
+
|
|
15306
|
+
var FontFamily = _core.Mark.create({
|
|
15380
15307
|
name: "fontFamily",
|
|
15381
15308
|
addAttributes() {
|
|
15382
15309
|
return {
|
|
@@ -15394,7 +15321,7 @@ var FontFamily = import_core21.Mark.create({
|
|
|
15394
15321
|
return [{ style: "font-family" }];
|
|
15395
15322
|
},
|
|
15396
15323
|
renderHTML({ HTMLAttributes }) {
|
|
15397
|
-
return ["span", (0,
|
|
15324
|
+
return ["span", _core.mergeAttributes.call(void 0, HTMLAttributes), 0];
|
|
15398
15325
|
},
|
|
15399
15326
|
addCommands() {
|
|
15400
15327
|
return {
|
|
@@ -15404,8 +15331,8 @@ var FontFamily = import_core21.Mark.create({
|
|
|
15404
15331
|
});
|
|
15405
15332
|
|
|
15406
15333
|
// src/components/tetrons/toolbar/extensions/FontSize.ts
|
|
15407
|
-
|
|
15408
|
-
var FontSize =
|
|
15334
|
+
|
|
15335
|
+
var FontSize = _core.Mark.create({
|
|
15409
15336
|
name: "fontSize",
|
|
15410
15337
|
addAttributes() {
|
|
15411
15338
|
return {
|
|
@@ -15423,7 +15350,7 @@ var FontSize = import_core22.Mark.create({
|
|
|
15423
15350
|
return [{ style: "font-size" }];
|
|
15424
15351
|
},
|
|
15425
15352
|
renderHTML({ HTMLAttributes }) {
|
|
15426
|
-
return ["span", (0,
|
|
15353
|
+
return ["span", _core.mergeAttributes.call(void 0, HTMLAttributes), 0];
|
|
15427
15354
|
},
|
|
15428
15355
|
addCommands() {
|
|
15429
15356
|
return {
|
|
@@ -15433,24 +15360,24 @@ var FontSize = import_core22.Mark.create({
|
|
|
15433
15360
|
});
|
|
15434
15361
|
|
|
15435
15362
|
// src/components/tetrons/ResizableImage.ts
|
|
15436
|
-
|
|
15437
|
-
|
|
15363
|
+
|
|
15364
|
+
|
|
15438
15365
|
|
|
15439
15366
|
// src/components/tetrons/ResizableImageComponent.tsx
|
|
15440
|
-
|
|
15441
|
-
|
|
15367
|
+
|
|
15368
|
+
|
|
15442
15369
|
var ResizableImageComponent = ({
|
|
15443
15370
|
node,
|
|
15444
15371
|
updateAttributes,
|
|
15445
15372
|
selected
|
|
15446
15373
|
}) => {
|
|
15447
15374
|
const { src, alt, title, width, height } = node.attrs;
|
|
15448
|
-
const defaultWidth = width
|
|
15449
|
-
const defaultHeight = height
|
|
15375
|
+
const defaultWidth = _nullishCoalesce(width, () => ( 300));
|
|
15376
|
+
const defaultHeight = _nullishCoalesce(height, () => ( 200));
|
|
15450
15377
|
const aspectRatio = defaultHeight > 0 ? defaultWidth / defaultHeight : 4 / 3;
|
|
15451
|
-
const wrapperRef = (0,
|
|
15452
|
-
const [isResizing, setIsResizing] = (0,
|
|
15453
|
-
(0,
|
|
15378
|
+
const wrapperRef = _react.useRef.call(void 0, null);
|
|
15379
|
+
const [isResizing, setIsResizing] = _react.useState.call(void 0, false);
|
|
15380
|
+
_react.useEffect.call(void 0, () => {
|
|
15454
15381
|
const handleMouseMove2 = (e) => {
|
|
15455
15382
|
if (!isResizing || !wrapperRef.current) return;
|
|
15456
15383
|
const rect = wrapperRef.current.getBoundingClientRect();
|
|
@@ -15475,8 +15402,8 @@ var ResizableImageComponent = ({
|
|
|
15475
15402
|
window.removeEventListener("mouseup", handleMouseUp);
|
|
15476
15403
|
};
|
|
15477
15404
|
}, [isResizing, updateAttributes, aspectRatio]);
|
|
15478
|
-
return /* @__PURE__ */
|
|
15479
|
-
|
|
15405
|
+
return /* @__PURE__ */ _react2.default.createElement(
|
|
15406
|
+
_react3.NodeViewWrapper,
|
|
15480
15407
|
{
|
|
15481
15408
|
ref: wrapperRef,
|
|
15482
15409
|
contentEditable: false,
|
|
@@ -15494,12 +15421,12 @@ var ResizableImageComponent = ({
|
|
|
15494
15421
|
padding: 2
|
|
15495
15422
|
}
|
|
15496
15423
|
},
|
|
15497
|
-
/* @__PURE__ */
|
|
15424
|
+
/* @__PURE__ */ _react2.default.createElement(
|
|
15498
15425
|
"img",
|
|
15499
15426
|
{
|
|
15500
15427
|
src,
|
|
15501
|
-
alt: alt
|
|
15502
|
-
title: title
|
|
15428
|
+
alt: _nullishCoalesce(alt, () => ( "")),
|
|
15429
|
+
title: _nullishCoalesce(title, () => ( "")),
|
|
15503
15430
|
loading: "lazy",
|
|
15504
15431
|
style: {
|
|
15505
15432
|
width: "100%",
|
|
@@ -15512,7 +15439,7 @@ var ResizableImageComponent = ({
|
|
|
15512
15439
|
draggable: false
|
|
15513
15440
|
}
|
|
15514
15441
|
),
|
|
15515
|
-
/* @__PURE__ */
|
|
15442
|
+
/* @__PURE__ */ _react2.default.createElement(
|
|
15516
15443
|
"div",
|
|
15517
15444
|
{
|
|
15518
15445
|
onMouseDown: (e) => {
|
|
@@ -15537,11 +15464,11 @@ var ResizableImageComponent = ({
|
|
|
15537
15464
|
var ResizableImageComponent_default = ResizableImageComponent;
|
|
15538
15465
|
|
|
15539
15466
|
// src/components/tetrons/ResizableImage.ts
|
|
15540
|
-
var ResizableImage =
|
|
15467
|
+
var ResizableImage = _extensionimage2.default.extend({
|
|
15541
15468
|
name: "resizableImage",
|
|
15542
15469
|
addAttributes() {
|
|
15543
15470
|
return {
|
|
15544
|
-
...this.parent
|
|
15471
|
+
..._optionalChain([this, 'access', _5 => _5.parent, 'optionalCall', _6 => _6()]),
|
|
15545
15472
|
width: { default: null },
|
|
15546
15473
|
height: { default: null }
|
|
15547
15474
|
};
|
|
@@ -15560,26 +15487,26 @@ var ResizableImage = import_extension_image.default.extend({
|
|
|
15560
15487
|
];
|
|
15561
15488
|
},
|
|
15562
15489
|
addNodeView() {
|
|
15563
|
-
return (0,
|
|
15490
|
+
return _react3.ReactNodeViewRenderer.call(void 0, ResizableImageComponent_default);
|
|
15564
15491
|
}
|
|
15565
15492
|
});
|
|
15566
15493
|
|
|
15567
15494
|
// src/components/tetrons/ResizableVideo.ts
|
|
15568
|
-
|
|
15569
|
-
|
|
15495
|
+
|
|
15496
|
+
|
|
15570
15497
|
|
|
15571
15498
|
// src/components/tetrons/ResizableVideoComponent.tsx
|
|
15572
|
-
|
|
15573
|
-
|
|
15499
|
+
|
|
15500
|
+
|
|
15574
15501
|
var ResizableVideoComponent = ({
|
|
15575
15502
|
node,
|
|
15576
15503
|
updateAttributes,
|
|
15577
15504
|
selected
|
|
15578
15505
|
}) => {
|
|
15579
15506
|
const { src, controls, width, height } = node.attrs;
|
|
15580
|
-
const wrapperRef = (0,
|
|
15581
|
-
const videoRef = (0,
|
|
15582
|
-
(0,
|
|
15507
|
+
const wrapperRef = _react.useRef.call(void 0, null);
|
|
15508
|
+
const videoRef = _react.useRef.call(void 0, null);
|
|
15509
|
+
_react.useEffect.call(void 0, () => {
|
|
15583
15510
|
const video = videoRef.current;
|
|
15584
15511
|
if (!video) return;
|
|
15585
15512
|
const observer = new ResizeObserver(() => {
|
|
@@ -15590,8 +15517,8 @@ var ResizableVideoComponent = ({
|
|
|
15590
15517
|
observer.observe(video);
|
|
15591
15518
|
return () => observer.disconnect();
|
|
15592
15519
|
}, [updateAttributes]);
|
|
15593
|
-
return /* @__PURE__ */
|
|
15594
|
-
|
|
15520
|
+
return /* @__PURE__ */ _react2.default.createElement(
|
|
15521
|
+
_react3.NodeViewWrapper,
|
|
15595
15522
|
{
|
|
15596
15523
|
ref: wrapperRef,
|
|
15597
15524
|
contentEditable: false,
|
|
@@ -15604,7 +15531,7 @@ var ResizableVideoComponent = ({
|
|
|
15604
15531
|
display: "inline-block"
|
|
15605
15532
|
}
|
|
15606
15533
|
},
|
|
15607
|
-
/* @__PURE__ */
|
|
15534
|
+
/* @__PURE__ */ _react2.default.createElement(
|
|
15608
15535
|
"video",
|
|
15609
15536
|
{
|
|
15610
15537
|
ref: videoRef,
|
|
@@ -15621,7 +15548,7 @@ var ResizableVideoComponent = ({
|
|
|
15621
15548
|
var ResizableVideoComponent_default = ResizableVideoComponent;
|
|
15622
15549
|
|
|
15623
15550
|
// src/components/tetrons/ResizableVideo.ts
|
|
15624
|
-
var ResizableVideo =
|
|
15551
|
+
var ResizableVideo = _core.Node.create({
|
|
15625
15552
|
name: "video",
|
|
15626
15553
|
group: "block",
|
|
15627
15554
|
draggable: true,
|
|
@@ -15663,15 +15590,15 @@ var ResizableVideo = import_core23.Node.create({
|
|
|
15663
15590
|
};
|
|
15664
15591
|
},
|
|
15665
15592
|
addNodeView() {
|
|
15666
|
-
return (0,
|
|
15593
|
+
return _react3.ReactNodeViewRenderer.call(void 0, ResizableVideoComponent_default);
|
|
15667
15594
|
}
|
|
15668
15595
|
});
|
|
15669
15596
|
|
|
15670
15597
|
// src/components/tetrons/toolbar/TableContextMenu.tsx
|
|
15671
|
-
|
|
15598
|
+
|
|
15672
15599
|
function TableContextMenu({ editor }) {
|
|
15673
|
-
const [menuPosition, setMenuPosition] = (0,
|
|
15674
|
-
(0,
|
|
15600
|
+
const [menuPosition, setMenuPosition] = _react.useState.call(void 0, null);
|
|
15601
|
+
_react.useEffect.call(void 0, () => {
|
|
15675
15602
|
const handleContextMenu = (event) => {
|
|
15676
15603
|
const target = event.target;
|
|
15677
15604
|
if (target.closest("td") || target.closest("th")) {
|
|
@@ -15696,13 +15623,13 @@ function TableContextMenu({ editor }) {
|
|
|
15696
15623
|
const deleteRow = () => editor.chain().focus().deleteRow().run();
|
|
15697
15624
|
const deleteCol = () => editor.chain().focus().deleteColumn().run();
|
|
15698
15625
|
if (!menuPosition) return null;
|
|
15699
|
-
return /* @__PURE__ */
|
|
15626
|
+
return /* @__PURE__ */ _react2.default.createElement(
|
|
15700
15627
|
"ul",
|
|
15701
15628
|
{
|
|
15702
15629
|
className: "absolute bg-white shadow border rounded text-sm z-50",
|
|
15703
15630
|
style: { top: menuPosition.y, left: menuPosition.x }
|
|
15704
15631
|
},
|
|
15705
|
-
/* @__PURE__ */
|
|
15632
|
+
/* @__PURE__ */ _react2.default.createElement(
|
|
15706
15633
|
"li",
|
|
15707
15634
|
{
|
|
15708
15635
|
className: "px-3 py-1 hover:bg-gray-100 cursor-pointer",
|
|
@@ -15710,7 +15637,7 @@ function TableContextMenu({ editor }) {
|
|
|
15710
15637
|
},
|
|
15711
15638
|
"Insert Row Above"
|
|
15712
15639
|
),
|
|
15713
|
-
/* @__PURE__ */
|
|
15640
|
+
/* @__PURE__ */ _react2.default.createElement(
|
|
15714
15641
|
"li",
|
|
15715
15642
|
{
|
|
15716
15643
|
className: "px-3 py-1 hover:bg-gray-100 cursor-pointer",
|
|
@@ -15718,7 +15645,7 @@ function TableContextMenu({ editor }) {
|
|
|
15718
15645
|
},
|
|
15719
15646
|
"Insert Row Below"
|
|
15720
15647
|
),
|
|
15721
|
-
/* @__PURE__ */
|
|
15648
|
+
/* @__PURE__ */ _react2.default.createElement(
|
|
15722
15649
|
"li",
|
|
15723
15650
|
{
|
|
15724
15651
|
className: "px-3 py-1 hover:bg-gray-100 cursor-pointer",
|
|
@@ -15726,7 +15653,7 @@ function TableContextMenu({ editor }) {
|
|
|
15726
15653
|
},
|
|
15727
15654
|
"Insert Column Left"
|
|
15728
15655
|
),
|
|
15729
|
-
/* @__PURE__ */
|
|
15656
|
+
/* @__PURE__ */ _react2.default.createElement(
|
|
15730
15657
|
"li",
|
|
15731
15658
|
{
|
|
15732
15659
|
className: "px-3 py-1 hover:bg-gray-100 cursor-pointer",
|
|
@@ -15734,7 +15661,7 @@ function TableContextMenu({ editor }) {
|
|
|
15734
15661
|
},
|
|
15735
15662
|
"Insert Column Right"
|
|
15736
15663
|
),
|
|
15737
|
-
/* @__PURE__ */
|
|
15664
|
+
/* @__PURE__ */ _react2.default.createElement(
|
|
15738
15665
|
"li",
|
|
15739
15666
|
{
|
|
15740
15667
|
className: "px-3 py-1 hover:bg-red-100 cursor-pointer",
|
|
@@ -15742,7 +15669,7 @@ function TableContextMenu({ editor }) {
|
|
|
15742
15669
|
},
|
|
15743
15670
|
"Delete Row"
|
|
15744
15671
|
),
|
|
15745
|
-
/* @__PURE__ */
|
|
15672
|
+
/* @__PURE__ */ _react2.default.createElement(
|
|
15746
15673
|
"li",
|
|
15747
15674
|
{
|
|
15748
15675
|
className: "px-3 py-1 hover:bg-red-100 cursor-pointer",
|
|
@@ -15754,28 +15681,34 @@ function TableContextMenu({ editor }) {
|
|
|
15754
15681
|
}
|
|
15755
15682
|
|
|
15756
15683
|
// src/components/tetrons/toolbar/TetronsToolbar.tsx
|
|
15757
|
-
|
|
15684
|
+
|
|
15758
15685
|
|
|
15759
15686
|
// src/components/tetrons/toolbar/ActionGroup.tsx
|
|
15760
|
-
|
|
15761
|
-
|
|
15687
|
+
|
|
15688
|
+
|
|
15689
|
+
|
|
15690
|
+
|
|
15691
|
+
|
|
15692
|
+
|
|
15693
|
+
|
|
15694
|
+
var _md = require('react-icons/md');
|
|
15762
15695
|
|
|
15763
15696
|
// src/components/tetrons/toolbar/ToolbarButton.tsx
|
|
15764
|
-
|
|
15765
|
-
var ToolbarButton =
|
|
15697
|
+
|
|
15698
|
+
var ToolbarButton = _react2.default.forwardRef(
|
|
15766
15699
|
({ icon: Icon, onClick, disabled = false, title, label, isActive = false }, ref) => {
|
|
15767
|
-
return /* @__PURE__ */
|
|
15700
|
+
return /* @__PURE__ */ _react2.default.createElement(
|
|
15768
15701
|
"button",
|
|
15769
15702
|
{
|
|
15770
15703
|
type: "button",
|
|
15771
15704
|
ref,
|
|
15772
15705
|
onClick,
|
|
15773
15706
|
disabled,
|
|
15774
|
-
title: title
|
|
15775
|
-
"aria-label": title
|
|
15707
|
+
title: _nullishCoalesce(title, () => ( label)),
|
|
15708
|
+
"aria-label": _nullishCoalesce(title, () => ( label)),
|
|
15776
15709
|
className: `toolbar-button ${isActive ? "active" : ""}`
|
|
15777
15710
|
},
|
|
15778
|
-
/* @__PURE__ */
|
|
15711
|
+
/* @__PURE__ */ _react2.default.createElement(Icon, { size: 20 })
|
|
15779
15712
|
);
|
|
15780
15713
|
}
|
|
15781
15714
|
);
|
|
@@ -15784,9 +15717,9 @@ var ToolbarButton_default = ToolbarButton;
|
|
|
15784
15717
|
|
|
15785
15718
|
// src/components/tetrons/toolbar/ActionGroup.tsx
|
|
15786
15719
|
function ActionGroup({ editor }) {
|
|
15787
|
-
const [dropdownOpen, setDropdownOpen] = (0,
|
|
15788
|
-
const dropdownRef = (0,
|
|
15789
|
-
(0,
|
|
15720
|
+
const [dropdownOpen, setDropdownOpen] = _react.useState.call(void 0, false);
|
|
15721
|
+
const dropdownRef = _react.useRef.call(void 0, null);
|
|
15722
|
+
_react.useEffect.call(void 0, () => {
|
|
15790
15723
|
const handleClickOutside = (event) => {
|
|
15791
15724
|
if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {
|
|
15792
15725
|
setDropdownOpen(false);
|
|
@@ -15864,7 +15797,7 @@ function ActionGroup({ editor }) {
|
|
|
15864
15797
|
container.classList.add("p-4", "prose");
|
|
15865
15798
|
document.body.appendChild(container);
|
|
15866
15799
|
try {
|
|
15867
|
-
const domToPdf = (await
|
|
15800
|
+
const domToPdf = (await Promise.resolve().then(() => _interopRequireWildcard(require("dom-to-pdf")))).default;
|
|
15868
15801
|
const options = {
|
|
15869
15802
|
filename: "document.pdf",
|
|
15870
15803
|
overrideWidth: 800,
|
|
@@ -15891,7 +15824,7 @@ function ActionGroup({ editor }) {
|
|
|
15891
15824
|
document.body.removeChild(link);
|
|
15892
15825
|
};
|
|
15893
15826
|
const handleDownloadDOCX = async () => {
|
|
15894
|
-
const { Document: Document2, Packer, Paragraph: Paragraph2 } = await
|
|
15827
|
+
const { Document: Document2, Packer, Paragraph: Paragraph2 } = await Promise.resolve().then(() => _interopRequireWildcard(require("docx")));
|
|
15895
15828
|
const text = editor.getText();
|
|
15896
15829
|
const doc3 = new Document2({
|
|
15897
15830
|
sections: [
|
|
@@ -15909,7 +15842,7 @@ function ActionGroup({ editor }) {
|
|
|
15909
15842
|
link.click();
|
|
15910
15843
|
document.body.removeChild(link);
|
|
15911
15844
|
};
|
|
15912
|
-
return /* @__PURE__ */
|
|
15845
|
+
return /* @__PURE__ */ _react2.default.createElement("div", { className: "action-group", role: "group", "aria-label": "Editor actions" }, /* @__PURE__ */ _react2.default.createElement(ToolbarButton_default, { icon: _md.MdZoomIn, onClick: zoomIn, title: "Zoom In" }), /* @__PURE__ */ _react2.default.createElement(ToolbarButton_default, { icon: _md.MdZoomOut, onClick: zoomOut, title: "Zoom Out" }), /* @__PURE__ */ _react2.default.createElement(ToolbarButton_default, { icon: _md.MdPrint, onClick: handlePrint, title: "Print" }), /* @__PURE__ */ _react2.default.createElement(ToolbarButton_default, { icon: _md.MdSave, onClick: handleSave, title: "Save" }), /* @__PURE__ */ _react2.default.createElement("div", { className: "relative", ref: dropdownRef }, /* @__PURE__ */ _react2.default.createElement(
|
|
15913
15846
|
"button",
|
|
15914
15847
|
{
|
|
15915
15848
|
type: "button",
|
|
@@ -15919,9 +15852,9 @@ function ActionGroup({ editor }) {
|
|
|
15919
15852
|
className: "export-button",
|
|
15920
15853
|
title: "Export"
|
|
15921
15854
|
},
|
|
15922
|
-
/* @__PURE__ */
|
|
15923
|
-
/* @__PURE__ */
|
|
15924
|
-
), dropdownOpen && /* @__PURE__ */
|
|
15855
|
+
/* @__PURE__ */ _react2.default.createElement(_md.MdDownload, null),
|
|
15856
|
+
/* @__PURE__ */ _react2.default.createElement("span", { className: "text-sm" })
|
|
15857
|
+
), dropdownOpen && /* @__PURE__ */ _react2.default.createElement("div", { className: "export-dropdown" }, /* @__PURE__ */ _react2.default.createElement(
|
|
15925
15858
|
"button",
|
|
15926
15859
|
{
|
|
15927
15860
|
type: "button",
|
|
@@ -15931,7 +15864,7 @@ function ActionGroup({ editor }) {
|
|
|
15931
15864
|
}
|
|
15932
15865
|
},
|
|
15933
15866
|
"Export as PDF"
|
|
15934
|
-
), /* @__PURE__ */
|
|
15867
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
15935
15868
|
"button",
|
|
15936
15869
|
{
|
|
15937
15870
|
type: "button",
|
|
@@ -15941,7 +15874,7 @@ function ActionGroup({ editor }) {
|
|
|
15941
15874
|
}
|
|
15942
15875
|
},
|
|
15943
15876
|
"Export as HTML"
|
|
15944
|
-
), /* @__PURE__ */
|
|
15877
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
15945
15878
|
"button",
|
|
15946
15879
|
{
|
|
15947
15880
|
type: "button",
|
|
@@ -15955,13 +15888,18 @@ function ActionGroup({ editor }) {
|
|
|
15955
15888
|
}
|
|
15956
15889
|
|
|
15957
15890
|
// src/components/tetrons/toolbar/ClipboardGroup.tsx
|
|
15958
|
-
|
|
15959
|
-
|
|
15891
|
+
|
|
15892
|
+
|
|
15893
|
+
|
|
15894
|
+
|
|
15895
|
+
|
|
15896
|
+
|
|
15897
|
+
|
|
15960
15898
|
function ClipboardGroup({ editor }) {
|
|
15961
|
-
return /* @__PURE__ */
|
|
15899
|
+
return /* @__PURE__ */ _react2.default.createElement("div", { className: "clipboard-group" }, /* @__PURE__ */ _react2.default.createElement(
|
|
15962
15900
|
ToolbarButton_default,
|
|
15963
15901
|
{
|
|
15964
|
-
icon:
|
|
15902
|
+
icon: _md.MdContentPaste,
|
|
15965
15903
|
title: "Paste",
|
|
15966
15904
|
onClick: async () => {
|
|
15967
15905
|
try {
|
|
@@ -15972,10 +15910,10 @@ function ClipboardGroup({ editor }) {
|
|
|
15972
15910
|
}
|
|
15973
15911
|
}
|
|
15974
15912
|
}
|
|
15975
|
-
), /* @__PURE__ */
|
|
15913
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
15976
15914
|
ToolbarButton_default,
|
|
15977
15915
|
{
|
|
15978
|
-
icon:
|
|
15916
|
+
icon: _md.MdContentCut,
|
|
15979
15917
|
title: "Cut",
|
|
15980
15918
|
onClick: () => {
|
|
15981
15919
|
const { from: from2, to } = editor.state.selection;
|
|
@@ -15986,10 +15924,10 @@ function ClipboardGroup({ editor }) {
|
|
|
15986
15924
|
});
|
|
15987
15925
|
}
|
|
15988
15926
|
}
|
|
15989
|
-
), /* @__PURE__ */
|
|
15927
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
15990
15928
|
ToolbarButton_default,
|
|
15991
15929
|
{
|
|
15992
|
-
icon:
|
|
15930
|
+
icon: _md.MdContentCopy,
|
|
15993
15931
|
title: "Copy",
|
|
15994
15932
|
onClick: () => {
|
|
15995
15933
|
const { from: from2, to } = editor.state.selection;
|
|
@@ -15998,10 +15936,10 @@ function ClipboardGroup({ editor }) {
|
|
|
15998
15936
|
navigator.clipboard.writeText(selectedText);
|
|
15999
15937
|
}
|
|
16000
15938
|
}
|
|
16001
|
-
), /* @__PURE__ */
|
|
15939
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16002
15940
|
ToolbarButton_default,
|
|
16003
15941
|
{
|
|
16004
|
-
icon:
|
|
15942
|
+
icon: _md.MdFormatPaint,
|
|
16005
15943
|
title: "Format Painter",
|
|
16006
15944
|
onClick: () => {
|
|
16007
15945
|
const currentMarks = editor.getAttributes("textStyle");
|
|
@@ -16012,25 +15950,34 @@ function ClipboardGroup({ editor }) {
|
|
|
16012
15950
|
}
|
|
16013
15951
|
|
|
16014
15952
|
// src/components/tetrons/toolbar/FontStyleGroup.tsx
|
|
16015
|
-
|
|
16016
|
-
|
|
16017
|
-
|
|
16018
|
-
|
|
15953
|
+
|
|
15954
|
+
|
|
15955
|
+
|
|
15956
|
+
|
|
15957
|
+
|
|
15958
|
+
|
|
15959
|
+
|
|
15960
|
+
|
|
15961
|
+
|
|
15962
|
+
|
|
15963
|
+
var _im = require('react-icons/im');
|
|
15964
|
+
var _bi = require('react-icons/bi');
|
|
15965
|
+
|
|
16019
15966
|
function FontStyleGroup({ editor }) {
|
|
16020
|
-
const [textColor, setTextColor] = (0,
|
|
16021
|
-
const [highlightColor, setHighlightColor] = (0,
|
|
16022
|
-
const [fontFamily, setFontFamily] = (0,
|
|
16023
|
-
const [fontSize, setFontSize] = (0,
|
|
16024
|
-
(0,
|
|
15967
|
+
const [textColor, setTextColor] = _react.useState.call(void 0, "#000000");
|
|
15968
|
+
const [highlightColor, setHighlightColor] = _react.useState.call(void 0, "#ffff00");
|
|
15969
|
+
const [fontFamily, setFontFamily] = _react.useState.call(void 0, "Arial");
|
|
15970
|
+
const [fontSize, setFontSize] = _react.useState.call(void 0, "16px");
|
|
15971
|
+
_react.useEffect.call(void 0, () => {
|
|
16025
15972
|
if (!editor) return;
|
|
16026
15973
|
const updateStates = () => {
|
|
16027
15974
|
const highlight = editor.getAttributes("highlight");
|
|
16028
|
-
setHighlightColor(highlight
|
|
16029
|
-
const color = editor.getAttributes("textStyle")
|
|
15975
|
+
setHighlightColor(_optionalChain([highlight, 'optionalAccess', _7 => _7.color]) || "#ffff00");
|
|
15976
|
+
const color = _optionalChain([editor, 'access', _8 => _8.getAttributes, 'call', _9 => _9("textStyle"), 'optionalAccess', _10 => _10.color]);
|
|
16030
15977
|
setTextColor(color || "#000000");
|
|
16031
|
-
const fontAttr = editor.getAttributes("fontFamily")
|
|
15978
|
+
const fontAttr = _optionalChain([editor, 'access', _11 => _11.getAttributes, 'call', _12 => _12("fontFamily"), 'optionalAccess', _13 => _13.font]) || "Arial";
|
|
16032
15979
|
setFontFamily(fontAttr);
|
|
16033
|
-
const sizeAttr = editor.getAttributes("fontSize")
|
|
15980
|
+
const sizeAttr = _optionalChain([editor, 'access', _14 => _14.getAttributes, 'call', _15 => _15("fontSize"), 'optionalAccess', _16 => _16.size]) || "16px";
|
|
16034
15981
|
setFontSize(sizeAttr);
|
|
16035
15982
|
};
|
|
16036
15983
|
updateStates();
|
|
@@ -16041,7 +15988,7 @@ function FontStyleGroup({ editor }) {
|
|
|
16041
15988
|
editor.off("transaction", updateStates);
|
|
16042
15989
|
};
|
|
16043
15990
|
}, [editor]);
|
|
16044
|
-
return /* @__PURE__ */
|
|
15991
|
+
return /* @__PURE__ */ _react2.default.createElement("div", { className: "font-style-group" }, /* @__PURE__ */ _react2.default.createElement(
|
|
16045
15992
|
"select",
|
|
16046
15993
|
{
|
|
16047
15994
|
title: "Font Family",
|
|
@@ -16052,12 +15999,12 @@ function FontStyleGroup({ editor }) {
|
|
|
16052
15999
|
editor.chain().focus().setFontFamily(value).run();
|
|
16053
16000
|
}
|
|
16054
16001
|
},
|
|
16055
|
-
/* @__PURE__ */
|
|
16056
|
-
/* @__PURE__ */
|
|
16057
|
-
/* @__PURE__ */
|
|
16058
|
-
/* @__PURE__ */
|
|
16059
|
-
/* @__PURE__ */
|
|
16060
|
-
), /* @__PURE__ */
|
|
16002
|
+
/* @__PURE__ */ _react2.default.createElement("option", { value: "Arial" }, "Arial"),
|
|
16003
|
+
/* @__PURE__ */ _react2.default.createElement("option", { value: "Georgia" }, "Georgia"),
|
|
16004
|
+
/* @__PURE__ */ _react2.default.createElement("option", { value: "Times New Roman" }, "Times New Roman"),
|
|
16005
|
+
/* @__PURE__ */ _react2.default.createElement("option", { value: "Courier New" }, "Courier New"),
|
|
16006
|
+
/* @__PURE__ */ _react2.default.createElement("option", { value: "Verdana" }, "Verdana")
|
|
16007
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16061
16008
|
"select",
|
|
16062
16009
|
{
|
|
16063
16010
|
title: "Font Size",
|
|
@@ -16068,64 +16015,64 @@ function FontStyleGroup({ editor }) {
|
|
|
16068
16015
|
editor.chain().focus().setFontSize(value).run();
|
|
16069
16016
|
}
|
|
16070
16017
|
},
|
|
16071
|
-
/* @__PURE__ */
|
|
16072
|
-
/* @__PURE__ */
|
|
16073
|
-
/* @__PURE__ */
|
|
16074
|
-
/* @__PURE__ */
|
|
16075
|
-
/* @__PURE__ */
|
|
16076
|
-
/* @__PURE__ */
|
|
16077
|
-
/* @__PURE__ */
|
|
16078
|
-
/* @__PURE__ */
|
|
16079
|
-
/* @__PURE__ */
|
|
16080
|
-
), /* @__PURE__ */
|
|
16018
|
+
/* @__PURE__ */ _react2.default.createElement("option", { value: "12px" }, "12"),
|
|
16019
|
+
/* @__PURE__ */ _react2.default.createElement("option", { value: "14px" }, "14"),
|
|
16020
|
+
/* @__PURE__ */ _react2.default.createElement("option", { value: "16px" }, "16"),
|
|
16021
|
+
/* @__PURE__ */ _react2.default.createElement("option", { value: "18px" }, "18"),
|
|
16022
|
+
/* @__PURE__ */ _react2.default.createElement("option", { value: "24px" }, "24"),
|
|
16023
|
+
/* @__PURE__ */ _react2.default.createElement("option", { value: "36px" }, "36"),
|
|
16024
|
+
/* @__PURE__ */ _react2.default.createElement("option", { value: "48px" }, "48"),
|
|
16025
|
+
/* @__PURE__ */ _react2.default.createElement("option", { value: "64px" }, "64"),
|
|
16026
|
+
/* @__PURE__ */ _react2.default.createElement("option", { value: "72px" }, "72")
|
|
16027
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16081
16028
|
ToolbarButton_default,
|
|
16082
16029
|
{
|
|
16083
|
-
icon:
|
|
16030
|
+
icon: _md.MdFormatBold,
|
|
16084
16031
|
label: "Bold",
|
|
16085
16032
|
onClick: () => editor.chain().focus().toggleBold().run(),
|
|
16086
16033
|
isActive: editor.isActive("bold")
|
|
16087
16034
|
}
|
|
16088
|
-
), /* @__PURE__ */
|
|
16035
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16089
16036
|
ToolbarButton_default,
|
|
16090
16037
|
{
|
|
16091
|
-
icon:
|
|
16038
|
+
icon: _md.MdFormatItalic,
|
|
16092
16039
|
label: "Italic",
|
|
16093
16040
|
onClick: () => editor.chain().focus().toggleItalic().run(),
|
|
16094
16041
|
isActive: editor.isActive("italic")
|
|
16095
16042
|
}
|
|
16096
|
-
), /* @__PURE__ */
|
|
16043
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16097
16044
|
ToolbarButton_default,
|
|
16098
16045
|
{
|
|
16099
|
-
icon:
|
|
16046
|
+
icon: _md.MdFormatUnderlined,
|
|
16100
16047
|
label: "Underline",
|
|
16101
16048
|
onClick: () => editor.chain().focus().toggleUnderline().run(),
|
|
16102
16049
|
isActive: editor.isActive("underline")
|
|
16103
16050
|
}
|
|
16104
|
-
), /* @__PURE__ */
|
|
16051
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16105
16052
|
ToolbarButton_default,
|
|
16106
16053
|
{
|
|
16107
|
-
icon:
|
|
16054
|
+
icon: _md.MdStrikethroughS,
|
|
16108
16055
|
label: "Strikethrough",
|
|
16109
16056
|
onClick: () => editor.chain().focus().toggleStrike().run(),
|
|
16110
16057
|
isActive: editor.isActive("strike")
|
|
16111
16058
|
}
|
|
16112
|
-
), /* @__PURE__ */
|
|
16059
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16113
16060
|
ToolbarButton_default,
|
|
16114
16061
|
{
|
|
16115
|
-
icon:
|
|
16062
|
+
icon: _md.MdSubscript,
|
|
16116
16063
|
label: "Subscript",
|
|
16117
16064
|
onClick: () => editor.chain().focus().toggleSubscript().run(),
|
|
16118
16065
|
isActive: editor.isActive("subscript")
|
|
16119
16066
|
}
|
|
16120
|
-
), /* @__PURE__ */
|
|
16067
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16121
16068
|
ToolbarButton_default,
|
|
16122
16069
|
{
|
|
16123
|
-
icon:
|
|
16070
|
+
icon: _md.MdSuperscript,
|
|
16124
16071
|
label: "Superscript",
|
|
16125
16072
|
onClick: () => editor.chain().focus().toggleSuperscript().run(),
|
|
16126
16073
|
isActive: editor.isActive("superscript")
|
|
16127
16074
|
}
|
|
16128
|
-
), /* @__PURE__ */
|
|
16075
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16129
16076
|
"label",
|
|
16130
16077
|
{
|
|
16131
16078
|
title: "Font Color",
|
|
@@ -16133,9 +16080,9 @@ function FontStyleGroup({ editor }) {
|
|
|
16133
16080
|
className: "color-label",
|
|
16134
16081
|
style: { "--indicator-color": textColor }
|
|
16135
16082
|
},
|
|
16136
|
-
/* @__PURE__ */
|
|
16137
|
-
/* @__PURE__ */
|
|
16138
|
-
/* @__PURE__ */
|
|
16083
|
+
/* @__PURE__ */ _react2.default.createElement(_im.ImTextColor, { size: 20 }),
|
|
16084
|
+
/* @__PURE__ */ _react2.default.createElement("div", { className: "color-indicator" }),
|
|
16085
|
+
/* @__PURE__ */ _react2.default.createElement(
|
|
16139
16086
|
"input",
|
|
16140
16087
|
{
|
|
16141
16088
|
type: "color",
|
|
@@ -16147,7 +16094,7 @@ function FontStyleGroup({ editor }) {
|
|
|
16147
16094
|
}
|
|
16148
16095
|
}
|
|
16149
16096
|
)
|
|
16150
|
-
), /* @__PURE__ */
|
|
16097
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16151
16098
|
"label",
|
|
16152
16099
|
{
|
|
16153
16100
|
title: "Highlight Color",
|
|
@@ -16155,9 +16102,9 @@ function FontStyleGroup({ editor }) {
|
|
|
16155
16102
|
className: "color-label",
|
|
16156
16103
|
style: { "--indicator-color": highlightColor }
|
|
16157
16104
|
},
|
|
16158
|
-
/* @__PURE__ */
|
|
16159
|
-
/* @__PURE__ */
|
|
16160
|
-
/* @__PURE__ */
|
|
16105
|
+
/* @__PURE__ */ _react2.default.createElement(_bi.BiSolidColorFill, { size: 20 }),
|
|
16106
|
+
/* @__PURE__ */ _react2.default.createElement("div", { className: "color-indicator" }),
|
|
16107
|
+
/* @__PURE__ */ _react2.default.createElement(
|
|
16161
16108
|
"input",
|
|
16162
16109
|
{
|
|
16163
16110
|
type: "color",
|
|
@@ -16169,17 +16116,17 @@ function FontStyleGroup({ editor }) {
|
|
|
16169
16116
|
}
|
|
16170
16117
|
}
|
|
16171
16118
|
)
|
|
16172
|
-
), /* @__PURE__ */
|
|
16119
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16173
16120
|
ToolbarButton_default,
|
|
16174
16121
|
{
|
|
16175
|
-
icon:
|
|
16122
|
+
icon: _md.MdFormatClear,
|
|
16176
16123
|
label: "Clear Formatting",
|
|
16177
16124
|
onClick: () => editor.chain().focus().unsetAllMarks().run()
|
|
16178
16125
|
}
|
|
16179
|
-
), /* @__PURE__ */
|
|
16126
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16180
16127
|
ToolbarButton_default,
|
|
16181
16128
|
{
|
|
16182
|
-
icon:
|
|
16129
|
+
icon: _md.MdFormatPaint,
|
|
16183
16130
|
label: "Apply Painter Format",
|
|
16184
16131
|
onClick: () => {
|
|
16185
16132
|
const format = JSON.parse(
|
|
@@ -16195,16 +16142,25 @@ function FontStyleGroup({ editor }) {
|
|
|
16195
16142
|
}
|
|
16196
16143
|
|
|
16197
16144
|
// src/components/tetrons/toolbar/InsertGroup.tsx
|
|
16198
|
-
|
|
16199
|
-
|
|
16200
|
-
|
|
16145
|
+
|
|
16146
|
+
|
|
16147
|
+
|
|
16148
|
+
|
|
16149
|
+
|
|
16150
|
+
|
|
16151
|
+
|
|
16152
|
+
|
|
16153
|
+
|
|
16154
|
+
|
|
16155
|
+
|
|
16156
|
+
var _react5 = require('@emoji-mart/react'); var _react6 = _interopRequireDefault(_react5);
|
|
16201
16157
|
function InsertGroup({ editor }) {
|
|
16202
|
-
const [showTableGrid, setShowTableGrid] = (0,
|
|
16203
|
-
const [selectedRows, setSelectedRows] = (0,
|
|
16204
|
-
const [selectedCols, setSelectedCols] = (0,
|
|
16205
|
-
const imageInputRef = (0,
|
|
16206
|
-
const videoInputRef = (0,
|
|
16207
|
-
const [showPicker, setShowPicker] = (0,
|
|
16158
|
+
const [showTableGrid, setShowTableGrid] = _react.useState.call(void 0, false);
|
|
16159
|
+
const [selectedRows, setSelectedRows] = _react.useState.call(void 0, 1);
|
|
16160
|
+
const [selectedCols, setSelectedCols] = _react.useState.call(void 0, 1);
|
|
16161
|
+
const imageInputRef = _react.useRef.call(void 0, null);
|
|
16162
|
+
const videoInputRef = _react.useRef.call(void 0, null);
|
|
16163
|
+
const [showPicker, setShowPicker] = _react.useState.call(void 0, false);
|
|
16208
16164
|
const addEmoji = (emoji) => {
|
|
16209
16165
|
editor.chain().focus().insertContent(emoji.native).run();
|
|
16210
16166
|
setShowPicker(false);
|
|
@@ -16224,7 +16180,7 @@ function InsertGroup({ editor }) {
|
|
|
16224
16180
|
setSelectedCols(1);
|
|
16225
16181
|
};
|
|
16226
16182
|
const handleImageUpload = (e) => {
|
|
16227
|
-
const file = e.target.files
|
|
16183
|
+
const file = _optionalChain([e, 'access', _17 => _17.target, 'access', _18 => _18.files, 'optionalAccess', _19 => _19[0]]);
|
|
16228
16184
|
if (file) {
|
|
16229
16185
|
const reader = new FileReader();
|
|
16230
16186
|
reader.onload = () => {
|
|
@@ -16234,7 +16190,7 @@ function InsertGroup({ editor }) {
|
|
|
16234
16190
|
}
|
|
16235
16191
|
};
|
|
16236
16192
|
const handleVideoUpload = (e) => {
|
|
16237
|
-
const file = e.target.files
|
|
16193
|
+
const file = _optionalChain([e, 'access', _20 => _20.target, 'access', _21 => _21.files, 'optionalAccess', _22 => _22[0]]);
|
|
16238
16194
|
if (file) {
|
|
16239
16195
|
const reader = new FileReader();
|
|
16240
16196
|
reader.onload = () => {
|
|
@@ -16269,11 +16225,11 @@ function InsertGroup({ editor }) {
|
|
|
16269
16225
|
return url.replace("/maps/", "/maps/embed/");
|
|
16270
16226
|
}
|
|
16271
16227
|
return url;
|
|
16272
|
-
} catch {
|
|
16228
|
+
} catch (e2) {
|
|
16273
16229
|
return url;
|
|
16274
16230
|
}
|
|
16275
16231
|
}
|
|
16276
|
-
return /* @__PURE__ */
|
|
16232
|
+
return /* @__PURE__ */ _react2.default.createElement("div", { className: "insert-group" }, /* @__PURE__ */ _react2.default.createElement(
|
|
16277
16233
|
"input",
|
|
16278
16234
|
{
|
|
16279
16235
|
type: "file",
|
|
@@ -16284,7 +16240,7 @@ function InsertGroup({ editor }) {
|
|
|
16284
16240
|
"aria-label": "Upload Image",
|
|
16285
16241
|
title: "Upload Image"
|
|
16286
16242
|
}
|
|
16287
|
-
), /* @__PURE__ */
|
|
16243
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16288
16244
|
"input",
|
|
16289
16245
|
{
|
|
16290
16246
|
type: "file",
|
|
@@ -16295,23 +16251,23 @@ function InsertGroup({ editor }) {
|
|
|
16295
16251
|
"aria-label": "Upload Video",
|
|
16296
16252
|
title: "Upload Video"
|
|
16297
16253
|
}
|
|
16298
|
-
), /* @__PURE__ */
|
|
16254
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16299
16255
|
ToolbarButton_default,
|
|
16300
16256
|
{
|
|
16301
|
-
icon:
|
|
16257
|
+
icon: _md.MdTableChart,
|
|
16302
16258
|
label: "Insert Table",
|
|
16303
16259
|
onClick: () => setShowTableGrid(!showTableGrid)
|
|
16304
16260
|
}
|
|
16305
|
-
), showTableGrid && /* @__PURE__ */
|
|
16261
|
+
), showTableGrid && /* @__PURE__ */ _react2.default.createElement(
|
|
16306
16262
|
"div",
|
|
16307
16263
|
{
|
|
16308
16264
|
className: "table-grid-popup",
|
|
16309
16265
|
onMouseLeave: () => setShowTableGrid(false)
|
|
16310
16266
|
},
|
|
16311
|
-
/* @__PURE__ */
|
|
16267
|
+
/* @__PURE__ */ _react2.default.createElement("div", { className: "table-grid" }, [...Array(10)].map(
|
|
16312
16268
|
(_, row) => [...Array(10)].map((_2, col) => {
|
|
16313
16269
|
const isSelected = row < selectedRows && col < selectedCols;
|
|
16314
|
-
return /* @__PURE__ */
|
|
16270
|
+
return /* @__PURE__ */ _react2.default.createElement(
|
|
16315
16271
|
"div",
|
|
16316
16272
|
{
|
|
16317
16273
|
key: `${row}-${col}`,
|
|
@@ -16322,25 +16278,25 @@ function InsertGroup({ editor }) {
|
|
|
16322
16278
|
);
|
|
16323
16279
|
})
|
|
16324
16280
|
)),
|
|
16325
|
-
/* @__PURE__ */
|
|
16326
|
-
), /* @__PURE__ */
|
|
16281
|
+
/* @__PURE__ */ _react2.default.createElement("div", { className: "table-grid-label" }, selectedRows, " x ", selectedCols)
|
|
16282
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16327
16283
|
ToolbarButton_default,
|
|
16328
16284
|
{
|
|
16329
|
-
icon:
|
|
16285
|
+
icon: _md.MdInsertPhoto,
|
|
16330
16286
|
label: "Insert Image",
|
|
16331
|
-
onClick: () => imageInputRef.current
|
|
16287
|
+
onClick: () => _optionalChain([imageInputRef, 'access', _23 => _23.current, 'optionalAccess', _24 => _24.click, 'call', _25 => _25()])
|
|
16332
16288
|
}
|
|
16333
|
-
), /* @__PURE__ */
|
|
16289
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16334
16290
|
ToolbarButton_default,
|
|
16335
16291
|
{
|
|
16336
|
-
icon:
|
|
16292
|
+
icon: _md.MdVideoLibrary,
|
|
16337
16293
|
label: "Insert Video",
|
|
16338
|
-
onClick: () => videoInputRef.current
|
|
16294
|
+
onClick: () => _optionalChain([videoInputRef, 'access', _26 => _26.current, 'optionalAccess', _27 => _27.click, 'call', _28 => _28()])
|
|
16339
16295
|
}
|
|
16340
|
-
), /* @__PURE__ */
|
|
16296
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16341
16297
|
ToolbarButton_default,
|
|
16342
16298
|
{
|
|
16343
|
-
icon:
|
|
16299
|
+
icon: _md.MdInsertLink,
|
|
16344
16300
|
label: "Insert Link",
|
|
16345
16301
|
onClick: () => {
|
|
16346
16302
|
const url = prompt("Enter URL");
|
|
@@ -16349,10 +16305,10 @@ function InsertGroup({ editor }) {
|
|
|
16349
16305
|
}
|
|
16350
16306
|
}
|
|
16351
16307
|
}
|
|
16352
|
-
), /* @__PURE__ */
|
|
16308
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16353
16309
|
ToolbarButton_default,
|
|
16354
16310
|
{
|
|
16355
|
-
icon:
|
|
16311
|
+
icon: _md.MdInsertComment,
|
|
16356
16312
|
label: "Insert Comment",
|
|
16357
16313
|
onClick: () => {
|
|
16358
16314
|
const comment = prompt("Enter your comment");
|
|
@@ -16363,15 +16319,15 @@ function InsertGroup({ editor }) {
|
|
|
16363
16319
|
}
|
|
16364
16320
|
}
|
|
16365
16321
|
}
|
|
16366
|
-
), /* @__PURE__ */
|
|
16322
|
+
), /* @__PURE__ */ _react2.default.createElement("div", { className: "relative" }, /* @__PURE__ */ _react2.default.createElement(
|
|
16367
16323
|
ToolbarButton_default,
|
|
16368
16324
|
{
|
|
16369
|
-
icon:
|
|
16325
|
+
icon: _md.MdInsertEmoticon,
|
|
16370
16326
|
label: "Emoji",
|
|
16371
16327
|
onClick: () => setShowPicker(!showPicker)
|
|
16372
16328
|
}
|
|
16373
|
-
), showPicker && /* @__PURE__ */
|
|
16374
|
-
|
|
16329
|
+
), showPicker && /* @__PURE__ */ _react2.default.createElement("div", { className: "emoji-picker" }, /* @__PURE__ */ _react2.default.createElement(
|
|
16330
|
+
_react6.default,
|
|
16375
16331
|
{
|
|
16376
16332
|
onEmojiSelect: addEmoji,
|
|
16377
16333
|
theme: "auto",
|
|
@@ -16380,17 +16336,17 @@ function InsertGroup({ editor }) {
|
|
|
16380
16336
|
showSkinTones: true,
|
|
16381
16337
|
emojiTooltip: true
|
|
16382
16338
|
}
|
|
16383
|
-
))), /* @__PURE__ */
|
|
16339
|
+
))), /* @__PURE__ */ _react2.default.createElement(
|
|
16384
16340
|
ToolbarButton_default,
|
|
16385
16341
|
{
|
|
16386
|
-
icon:
|
|
16342
|
+
icon: _md.MdHorizontalRule,
|
|
16387
16343
|
label: "Horizontal Line",
|
|
16388
16344
|
onClick: () => editor.chain().focus().setHorizontalRule().run()
|
|
16389
16345
|
}
|
|
16390
|
-
), /* @__PURE__ */
|
|
16346
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16391
16347
|
ToolbarButton_default,
|
|
16392
16348
|
{
|
|
16393
|
-
icon:
|
|
16349
|
+
icon: _md.MdOutlineOndemandVideo,
|
|
16394
16350
|
label: "Embed",
|
|
16395
16351
|
onClick: () => {
|
|
16396
16352
|
const url = prompt(
|
|
@@ -16411,69 +16367,78 @@ function InsertGroup({ editor }) {
|
|
|
16411
16367
|
}
|
|
16412
16368
|
|
|
16413
16369
|
// src/components/tetrons/toolbar/ListAlignGroup.tsx
|
|
16414
|
-
|
|
16415
|
-
|
|
16370
|
+
|
|
16371
|
+
|
|
16372
|
+
|
|
16373
|
+
|
|
16374
|
+
|
|
16375
|
+
|
|
16376
|
+
|
|
16377
|
+
|
|
16378
|
+
|
|
16379
|
+
|
|
16380
|
+
|
|
16416
16381
|
function ListAlignGroup({ editor }) {
|
|
16417
|
-
return /* @__PURE__ */
|
|
16382
|
+
return /* @__PURE__ */ _react2.default.createElement("div", { className: "list-align-group" }, /* @__PURE__ */ _react2.default.createElement(
|
|
16418
16383
|
ToolbarButton_default,
|
|
16419
16384
|
{
|
|
16420
|
-
icon:
|
|
16385
|
+
icon: _md.MdFormatListBulleted,
|
|
16421
16386
|
title: "Bulleted List",
|
|
16422
16387
|
onClick: () => editor.chain().focus().toggleBulletList().run(),
|
|
16423
16388
|
disabled: !editor.can().toggleBulletList()
|
|
16424
16389
|
}
|
|
16425
|
-
), /* @__PURE__ */
|
|
16390
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16426
16391
|
ToolbarButton_default,
|
|
16427
16392
|
{
|
|
16428
|
-
icon:
|
|
16393
|
+
icon: _md.MdFormatListNumbered,
|
|
16429
16394
|
title: "Numbered List",
|
|
16430
16395
|
onClick: () => editor.chain().focus().toggleOrderedList().run(),
|
|
16431
16396
|
disabled: !editor.can().toggleOrderedList()
|
|
16432
16397
|
}
|
|
16433
|
-
), /* @__PURE__ */
|
|
16398
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16434
16399
|
ToolbarButton_default,
|
|
16435
16400
|
{
|
|
16436
|
-
icon:
|
|
16401
|
+
icon: _md.MdFormatIndentIncrease,
|
|
16437
16402
|
title: "Increase Indent",
|
|
16438
16403
|
onClick: () => editor.chain().focus().sinkListItem("listItem").run(),
|
|
16439
16404
|
disabled: !editor.can().sinkListItem("listItem")
|
|
16440
16405
|
}
|
|
16441
|
-
), /* @__PURE__ */
|
|
16406
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16442
16407
|
ToolbarButton_default,
|
|
16443
16408
|
{
|
|
16444
|
-
icon:
|
|
16409
|
+
icon: _md.MdFormatIndentDecrease,
|
|
16445
16410
|
title: "Decrease Indent",
|
|
16446
16411
|
onClick: () => editor.chain().focus().liftListItem("listItem").run(),
|
|
16447
16412
|
disabled: !editor.can().liftListItem("listItem")
|
|
16448
16413
|
}
|
|
16449
|
-
), /* @__PURE__ */
|
|
16414
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16450
16415
|
ToolbarButton_default,
|
|
16451
16416
|
{
|
|
16452
|
-
icon:
|
|
16417
|
+
icon: _md.MdFormatAlignLeft,
|
|
16453
16418
|
title: "Align Left",
|
|
16454
16419
|
onClick: () => editor.chain().focus().setTextAlign("left").run(),
|
|
16455
16420
|
disabled: !editor.can().setTextAlign("left")
|
|
16456
16421
|
}
|
|
16457
|
-
), /* @__PURE__ */
|
|
16422
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16458
16423
|
ToolbarButton_default,
|
|
16459
16424
|
{
|
|
16460
|
-
icon:
|
|
16425
|
+
icon: _md.MdFormatAlignCenter,
|
|
16461
16426
|
title: "Align Center",
|
|
16462
16427
|
onClick: () => editor.chain().focus().setTextAlign("center").run(),
|
|
16463
16428
|
disabled: !editor.can().setTextAlign("center")
|
|
16464
16429
|
}
|
|
16465
|
-
), /* @__PURE__ */
|
|
16430
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16466
16431
|
ToolbarButton_default,
|
|
16467
16432
|
{
|
|
16468
|
-
icon:
|
|
16433
|
+
icon: _md.MdFormatAlignRight,
|
|
16469
16434
|
title: "Align Right",
|
|
16470
16435
|
onClick: () => editor.chain().focus().setTextAlign("right").run(),
|
|
16471
16436
|
disabled: !editor.can().setTextAlign("right")
|
|
16472
16437
|
}
|
|
16473
|
-
), /* @__PURE__ */
|
|
16438
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16474
16439
|
ToolbarButton_default,
|
|
16475
16440
|
{
|
|
16476
|
-
icon:
|
|
16441
|
+
icon: _md.MdFormatAlignJustify,
|
|
16477
16442
|
title: "Justify",
|
|
16478
16443
|
onClick: () => editor.chain().focus().setTextAlign("justify").run(),
|
|
16479
16444
|
disabled: !editor.can().setTextAlign("justify")
|
|
@@ -16482,8 +16447,15 @@ function ListAlignGroup({ editor }) {
|
|
|
16482
16447
|
}
|
|
16483
16448
|
|
|
16484
16449
|
// src/components/tetrons/toolbar/MiscGroup.tsx
|
|
16485
|
-
|
|
16486
|
-
|
|
16450
|
+
|
|
16451
|
+
|
|
16452
|
+
|
|
16453
|
+
|
|
16454
|
+
|
|
16455
|
+
|
|
16456
|
+
|
|
16457
|
+
|
|
16458
|
+
|
|
16487
16459
|
|
|
16488
16460
|
// src/utils/checkGrammar.ts
|
|
16489
16461
|
async function checkGrammar(text) {
|
|
@@ -16548,48 +16520,48 @@ Reason: ${issue.message}
|
|
|
16548
16520
|
alert("\u274C Failed to check grammar. Please try again later.");
|
|
16549
16521
|
}
|
|
16550
16522
|
};
|
|
16551
|
-
return /* @__PURE__ */
|
|
16523
|
+
return /* @__PURE__ */ _react2.default.createElement("div", { className: "misc-group" }, /* @__PURE__ */ _react2.default.createElement(
|
|
16552
16524
|
ToolbarButton_default,
|
|
16553
16525
|
{
|
|
16554
|
-
icon:
|
|
16526
|
+
icon: _md.MdUndo,
|
|
16555
16527
|
label: "Undo",
|
|
16556
16528
|
onClick: () => editor.chain().focus().undo().run(),
|
|
16557
16529
|
disabled: !editor.can().undo()
|
|
16558
16530
|
}
|
|
16559
|
-
), /* @__PURE__ */
|
|
16531
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16560
16532
|
ToolbarButton_default,
|
|
16561
16533
|
{
|
|
16562
|
-
icon:
|
|
16534
|
+
icon: _md.MdRedo,
|
|
16563
16535
|
label: "Redo",
|
|
16564
16536
|
onClick: () => editor.chain().focus().redo().run(),
|
|
16565
16537
|
disabled: !editor.can().redo()
|
|
16566
16538
|
}
|
|
16567
|
-
), /* @__PURE__ */
|
|
16539
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16568
16540
|
ToolbarButton_default,
|
|
16569
16541
|
{
|
|
16570
|
-
icon:
|
|
16542
|
+
icon: _md.MdRefresh,
|
|
16571
16543
|
label: "Reset Formatting",
|
|
16572
16544
|
onClick: () => editor.chain().focus().unsetAllMarks().clearNodes().run()
|
|
16573
16545
|
}
|
|
16574
|
-
), /* @__PURE__ */
|
|
16546
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16575
16547
|
ToolbarButton_default,
|
|
16576
16548
|
{
|
|
16577
|
-
icon:
|
|
16549
|
+
icon: _md.MdCode,
|
|
16578
16550
|
label: "Toggle Code Block",
|
|
16579
16551
|
onClick: () => editor.chain().focus().toggleCodeBlock().run(),
|
|
16580
16552
|
isActive: editor.isActive("codeBlock")
|
|
16581
16553
|
}
|
|
16582
|
-
), /* @__PURE__ */
|
|
16554
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16583
16555
|
ToolbarButton_default,
|
|
16584
16556
|
{
|
|
16585
|
-
icon:
|
|
16557
|
+
icon: _md.MdVisibility,
|
|
16586
16558
|
label: "Preview",
|
|
16587
16559
|
onClick: handlePreview
|
|
16588
16560
|
}
|
|
16589
|
-
), /* @__PURE__ */
|
|
16561
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16590
16562
|
ToolbarButton_default,
|
|
16591
16563
|
{
|
|
16592
|
-
icon:
|
|
16564
|
+
icon: _md.MdSpellcheck,
|
|
16593
16565
|
label: "Check Grammar",
|
|
16594
16566
|
onClick: handleGrammarCheck
|
|
16595
16567
|
}
|
|
@@ -16597,11 +16569,11 @@ Reason: ${issue.message}
|
|
|
16597
16569
|
}
|
|
16598
16570
|
|
|
16599
16571
|
// src/components/tetrons/toolbar/FileGroup.tsx
|
|
16600
|
-
var
|
|
16601
|
-
var
|
|
16602
|
-
|
|
16572
|
+
var _fa = require('react-icons/fa');
|
|
16573
|
+
var _vsc = require('react-icons/vsc');
|
|
16574
|
+
|
|
16603
16575
|
function FileGroup({ editor }) {
|
|
16604
|
-
const fileInputRef = (0,
|
|
16576
|
+
const fileInputRef = _react.useRef.call(void 0, null);
|
|
16605
16577
|
const handleNew = () => {
|
|
16606
16578
|
if (confirm(
|
|
16607
16579
|
"Are you sure you want to create a new document? Unsaved changes will be lost."
|
|
@@ -16610,10 +16582,10 @@ function FileGroup({ editor }) {
|
|
|
16610
16582
|
}
|
|
16611
16583
|
};
|
|
16612
16584
|
const handleOpen = () => {
|
|
16613
|
-
fileInputRef.current
|
|
16585
|
+
_optionalChain([fileInputRef, 'access', _29 => _29.current, 'optionalAccess', _30 => _30.click, 'call', _31 => _31()]);
|
|
16614
16586
|
};
|
|
16615
16587
|
const handleFileChange = async (e) => {
|
|
16616
|
-
const file = e.target.files
|
|
16588
|
+
const file = _optionalChain([e, 'access', _32 => _32.target, 'access', _33 => _33.files, 'optionalAccess', _34 => _34[0]]);
|
|
16617
16589
|
if (!file) return;
|
|
16618
16590
|
try {
|
|
16619
16591
|
const text = await file.text();
|
|
@@ -16628,7 +16600,7 @@ function FileGroup({ editor }) {
|
|
|
16628
16600
|
e.target.value = "";
|
|
16629
16601
|
}
|
|
16630
16602
|
};
|
|
16631
|
-
return /* @__PURE__ */
|
|
16603
|
+
return /* @__PURE__ */ _react2.default.createElement("div", { className: "file-group", role: "group", "aria-label": "File actions" }, /* @__PURE__ */ _react2.default.createElement(
|
|
16632
16604
|
"input",
|
|
16633
16605
|
{
|
|
16634
16606
|
type: "file",
|
|
@@ -16638,10 +16610,10 @@ function FileGroup({ editor }) {
|
|
|
16638
16610
|
className: "hidden",
|
|
16639
16611
|
"aria-label": "Open JSON file"
|
|
16640
16612
|
}
|
|
16641
|
-
), /* @__PURE__ */
|
|
16613
|
+
), /* @__PURE__ */ _react2.default.createElement(ToolbarButton_default, { icon: _vsc.VscNewFile, onClick: handleNew, title: "New" }), /* @__PURE__ */ _react2.default.createElement(
|
|
16642
16614
|
ToolbarButton_default,
|
|
16643
16615
|
{
|
|
16644
|
-
icon:
|
|
16616
|
+
icon: _fa.FaRegFolderOpen,
|
|
16645
16617
|
onClick: handleOpen,
|
|
16646
16618
|
title: "Open File"
|
|
16647
16619
|
}
|
|
@@ -16649,21 +16621,21 @@ function FileGroup({ editor }) {
|
|
|
16649
16621
|
}
|
|
16650
16622
|
|
|
16651
16623
|
// src/components/tetrons/toolbar/AIGroup.tsx
|
|
16652
|
-
|
|
16653
|
-
|
|
16654
|
-
var
|
|
16655
|
-
var
|
|
16624
|
+
|
|
16625
|
+
|
|
16626
|
+
var _loaders = require('@uiball/loaders');
|
|
16627
|
+
var _framermotion = require('framer-motion');
|
|
16656
16628
|
function AiGroup({ editor }) {
|
|
16657
|
-
const [isRecording, setIsRecording] = (0,
|
|
16658
|
-
const [audioBlob, setAudioBlob] = (0,
|
|
16659
|
-
const [isTranscribing, setIsTranscribing] = (0,
|
|
16660
|
-
const [transcriptionError, setTranscriptionError] = (0,
|
|
16661
|
-
const [showPromptInput, setShowPromptInput] = (0,
|
|
16662
|
-
const [prompt2, setPrompt] = (0,
|
|
16663
|
-
const [isLoadingAI, setIsLoadingAI] = (0,
|
|
16664
|
-
const [aiError, setAiError] = (0,
|
|
16665
|
-
const mediaRecorderRef = (0,
|
|
16666
|
-
const chunksRef = (0,
|
|
16629
|
+
const [isRecording, setIsRecording] = _react.useState.call(void 0, false);
|
|
16630
|
+
const [audioBlob, setAudioBlob] = _react.useState.call(void 0, null);
|
|
16631
|
+
const [isTranscribing, setIsTranscribing] = _react.useState.call(void 0, false);
|
|
16632
|
+
const [transcriptionError, setTranscriptionError] = _react.useState.call(void 0, "");
|
|
16633
|
+
const [showPromptInput, setShowPromptInput] = _react.useState.call(void 0, false);
|
|
16634
|
+
const [prompt2, setPrompt] = _react.useState.call(void 0, "");
|
|
16635
|
+
const [isLoadingAI, setIsLoadingAI] = _react.useState.call(void 0, false);
|
|
16636
|
+
const [aiError, setAiError] = _react.useState.call(void 0, "");
|
|
16637
|
+
const mediaRecorderRef = _react.useRef.call(void 0, null);
|
|
16638
|
+
const chunksRef = _react.useRef.call(void 0, []);
|
|
16667
16639
|
const startRecording = async () => {
|
|
16668
16640
|
setTranscriptionError("");
|
|
16669
16641
|
setAudioBlob(null);
|
|
@@ -16683,7 +16655,7 @@ function AiGroup({ editor }) {
|
|
|
16683
16655
|
setIsRecording(true);
|
|
16684
16656
|
};
|
|
16685
16657
|
const stopRecording = () => {
|
|
16686
|
-
mediaRecorderRef.current
|
|
16658
|
+
_optionalChain([mediaRecorderRef, 'access', _35 => _35.current, 'optionalAccess', _36 => _36.stop, 'call', _37 => _37()]);
|
|
16687
16659
|
setIsRecording(false);
|
|
16688
16660
|
};
|
|
16689
16661
|
const transcribeAudio = async (blob) => {
|
|
@@ -16736,7 +16708,7 @@ function AiGroup({ editor }) {
|
|
|
16736
16708
|
setIsLoadingAI(false);
|
|
16737
16709
|
}
|
|
16738
16710
|
};
|
|
16739
|
-
return /* @__PURE__ */
|
|
16711
|
+
return /* @__PURE__ */ _react2.default.createElement("div", { className: "group relative space-y-3" }, /* @__PURE__ */ _react2.default.createElement("div", { className: "flex gap-2 items-center" }, !isRecording ? /* @__PURE__ */ _react2.default.createElement(
|
|
16740
16712
|
"button",
|
|
16741
16713
|
{
|
|
16742
16714
|
type: "button",
|
|
@@ -16744,8 +16716,8 @@ function AiGroup({ editor }) {
|
|
|
16744
16716
|
className: "icon-btn",
|
|
16745
16717
|
title: "Start Voice Input"
|
|
16746
16718
|
},
|
|
16747
|
-
/* @__PURE__ */
|
|
16748
|
-
) : /* @__PURE__ */
|
|
16719
|
+
/* @__PURE__ */ _react2.default.createElement(_fa.FaMicrophone, { size: 18 })
|
|
16720
|
+
) : /* @__PURE__ */ _react2.default.createElement(
|
|
16749
16721
|
"button",
|
|
16750
16722
|
{
|
|
16751
16723
|
type: "button",
|
|
@@ -16753,8 +16725,8 @@ function AiGroup({ editor }) {
|
|
|
16753
16725
|
className: "icon-btn stop-btn",
|
|
16754
16726
|
title: "Stop Recording"
|
|
16755
16727
|
},
|
|
16756
|
-
/* @__PURE__ */
|
|
16757
|
-
), /* @__PURE__ */
|
|
16728
|
+
/* @__PURE__ */ _react2.default.createElement(_fa.FaStop, { size: 18 })
|
|
16729
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16758
16730
|
"button",
|
|
16759
16731
|
{
|
|
16760
16732
|
type: "button",
|
|
@@ -16763,24 +16735,24 @@ function AiGroup({ editor }) {
|
|
|
16763
16735
|
title: "AI Assist"
|
|
16764
16736
|
},
|
|
16765
16737
|
"AI"
|
|
16766
|
-
)), isRecording && /* @__PURE__ */
|
|
16767
|
-
|
|
16738
|
+
)), isRecording && /* @__PURE__ */ _react2.default.createElement("div", { className: "flex flex-col items-center" }, /* @__PURE__ */ _react2.default.createElement(_loaders.Waveform, { size: 30, lineWeight: 3.5, speed: 1, color: "#4F46E5" }), /* @__PURE__ */ _react2.default.createElement("p", { className: "text-sm mt-1 text-gray-600" }, "Recording...")), isTranscribing && /* @__PURE__ */ _react2.default.createElement("p", { className: "text-sm text-gray-500" }, "Transcribing..."), transcriptionError && /* @__PURE__ */ _react2.default.createElement("p", { className: "text-sm text-red-600" }, transcriptionError), audioBlob && /* @__PURE__ */ _react2.default.createElement("div", { className: "mt-2" }, /* @__PURE__ */ _react2.default.createElement("audio", { controls: true, src: URL.createObjectURL(audioBlob) })), /* @__PURE__ */ _react2.default.createElement(_framermotion.AnimatePresence, null, showPromptInput && /* @__PURE__ */ _react2.default.createElement(
|
|
16739
|
+
_framermotion.motion.div,
|
|
16768
16740
|
{
|
|
16769
16741
|
className: "ai-modal-backdrop",
|
|
16770
16742
|
initial: { opacity: 0 },
|
|
16771
16743
|
animate: { opacity: 1 },
|
|
16772
16744
|
exit: { opacity: 0 }
|
|
16773
16745
|
},
|
|
16774
|
-
/* @__PURE__ */
|
|
16775
|
-
|
|
16746
|
+
/* @__PURE__ */ _react2.default.createElement(
|
|
16747
|
+
_framermotion.motion.div,
|
|
16776
16748
|
{
|
|
16777
16749
|
className: "ai-modal-content",
|
|
16778
16750
|
initial: { scale: 0.9, opacity: 0 },
|
|
16779
16751
|
animate: { scale: 1, opacity: 1 },
|
|
16780
16752
|
exit: { scale: 0.9, opacity: 0 }
|
|
16781
16753
|
},
|
|
16782
|
-
/* @__PURE__ */
|
|
16783
|
-
/* @__PURE__ */
|
|
16754
|
+
/* @__PURE__ */ _react2.default.createElement("h2", { className: "ai-modal-title" }, "AI Prompt"),
|
|
16755
|
+
/* @__PURE__ */ _react2.default.createElement(
|
|
16784
16756
|
"textarea",
|
|
16785
16757
|
{
|
|
16786
16758
|
className: "ai-modal-textarea",
|
|
@@ -16789,15 +16761,15 @@ function AiGroup({ editor }) {
|
|
|
16789
16761
|
placeholder: "Enter your prompt here..."
|
|
16790
16762
|
}
|
|
16791
16763
|
),
|
|
16792
|
-
aiError && /* @__PURE__ */
|
|
16793
|
-
/* @__PURE__ */
|
|
16764
|
+
aiError && /* @__PURE__ */ _react2.default.createElement("p", { className: "ai-modal-error" }, aiError),
|
|
16765
|
+
/* @__PURE__ */ _react2.default.createElement("div", { className: "ai-modal-actions" }, /* @__PURE__ */ _react2.default.createElement(
|
|
16794
16766
|
"button",
|
|
16795
16767
|
{
|
|
16796
16768
|
onClick: () => setShowPromptInput(false),
|
|
16797
16769
|
className: "ai-cancel-btn"
|
|
16798
16770
|
},
|
|
16799
16771
|
"Cancel"
|
|
16800
|
-
), /* @__PURE__ */
|
|
16772
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16801
16773
|
"button",
|
|
16802
16774
|
{
|
|
16803
16775
|
onClick: handlePromptSubmit,
|
|
@@ -16815,8 +16787,8 @@ function TetronsToolbar({
|
|
|
16815
16787
|
editor,
|
|
16816
16788
|
version
|
|
16817
16789
|
}) {
|
|
16818
|
-
const [autoSave, setAutoSave] = (0,
|
|
16819
|
-
(0,
|
|
16790
|
+
const [autoSave, setAutoSave] = _react.useState.call(void 0, false);
|
|
16791
|
+
_react.useEffect.call(void 0, () => {
|
|
16820
16792
|
if (!editor) return;
|
|
16821
16793
|
const handleUpdate = () => {
|
|
16822
16794
|
if (!autoSave) return;
|
|
@@ -16832,7 +16804,7 @@ function TetronsToolbar({
|
|
|
16832
16804
|
editor.off("update", handleUpdate);
|
|
16833
16805
|
};
|
|
16834
16806
|
}, [autoSave, editor]);
|
|
16835
|
-
return /* @__PURE__ */
|
|
16807
|
+
return /* @__PURE__ */ _react2.default.createElement("div", { className: "tetrons-toolbar" }, version !== "free" && /* @__PURE__ */ _react2.default.createElement("div", { className: "group" }, /* @__PURE__ */ _react2.default.createElement(
|
|
16836
16808
|
"input",
|
|
16837
16809
|
{
|
|
16838
16810
|
type: "checkbox",
|
|
@@ -16840,35 +16812,34 @@ function TetronsToolbar({
|
|
|
16840
16812
|
checked: autoSave,
|
|
16841
16813
|
onChange: (e) => setAutoSave(e.target.checked)
|
|
16842
16814
|
}
|
|
16843
|
-
), /* @__PURE__ */
|
|
16815
|
+
), /* @__PURE__ */ _react2.default.createElement("label", { htmlFor: "autoSave" }, "Auto Save")), ["pro", "premium", "platinum"].includes(version) && /* @__PURE__ */ _react2.default.createElement(FileGroup, { editor }), /* @__PURE__ */ _react2.default.createElement(ClipboardGroup, { editor }), /* @__PURE__ */ _react2.default.createElement(FontStyleGroup, { editor }), /* @__PURE__ */ _react2.default.createElement(ListAlignGroup, { editor }), ["premium", "platinum"].includes(version) && /* @__PURE__ */ _react2.default.createElement(_react2.default.Fragment, null, /* @__PURE__ */ _react2.default.createElement(InsertGroup, { editor }), /* @__PURE__ */ _react2.default.createElement(ActionGroup, { editor })), version === "platinum" && /* @__PURE__ */ _react2.default.createElement(_react2.default.Fragment, null, /* @__PURE__ */ _react2.default.createElement(MiscGroup, { editor }), /* @__PURE__ */ _react2.default.createElement(AiGroup, { editor })));
|
|
16844
16816
|
}
|
|
16845
16817
|
|
|
16846
16818
|
// src/components/tetrons/EditorContent.tsx
|
|
16847
|
-
var
|
|
16848
|
-
var lowlight = (0, import_lowlight.createLowlight)();
|
|
16819
|
+
var lowlight = _lowlight.createLowlight.call(void 0, );
|
|
16849
16820
|
lowlight.register("js", javascript);
|
|
16850
16821
|
lowlight.register("ts", typescript);
|
|
16851
16822
|
function EditorContent({ apiKey }) {
|
|
16852
16823
|
const typo = useTypo();
|
|
16853
|
-
const [isValid, setIsValid] = (0,
|
|
16854
|
-
const [error, setError] = (0,
|
|
16855
|
-
const [versions, setVersions] = (0,
|
|
16856
|
-
const [userVersion, setUserVersion] = (0,
|
|
16857
|
-
const [currentVersionIndex, setCurrentVersionIndex] = (0,
|
|
16824
|
+
const [isValid, setIsValid] = _react.useState.call(void 0, null);
|
|
16825
|
+
const [error, setError] = _react.useState.call(void 0, null);
|
|
16826
|
+
const [versions, setVersions] = _react.useState.call(void 0, []);
|
|
16827
|
+
const [userVersion, setUserVersion] = _react.useState.call(void 0, null);
|
|
16828
|
+
const [currentVersionIndex, setCurrentVersionIndex] = _react.useState.call(void 0,
|
|
16858
16829
|
null
|
|
16859
16830
|
);
|
|
16860
|
-
const wrapperRef = (0,
|
|
16831
|
+
const wrapperRef = _react.useRef.call(void 0, null);
|
|
16861
16832
|
function getApiBaseUrl() {
|
|
16862
|
-
if (typeof
|
|
16863
|
-
return
|
|
16833
|
+
if (typeof import.meta !== "undefined" && _optionalChain([import.meta, 'access', _38 => _38.env, 'optionalAccess', _39 => _39.VITE_TETRONS_API_URL])) {
|
|
16834
|
+
return import.meta.env.VITE_TETRONS_API_URL;
|
|
16864
16835
|
}
|
|
16865
|
-
if (typeof process !== "undefined" && process.env
|
|
16836
|
+
if (typeof process !== "undefined" && _optionalChain([process, 'access', _40 => _40.env, 'optionalAccess', _41 => _41.NEXT_PUBLIC_TETRONS_API_URL])) {
|
|
16866
16837
|
return process.env.NEXT_PUBLIC_TETRONS_API_URL;
|
|
16867
16838
|
}
|
|
16868
16839
|
return "https://staging.tetrons.com";
|
|
16869
16840
|
}
|
|
16870
16841
|
const API_BASE_URL = getApiBaseUrl();
|
|
16871
|
-
(0,
|
|
16842
|
+
_react.useEffect.call(void 0, () => {
|
|
16872
16843
|
const validateKey = async () => {
|
|
16873
16844
|
try {
|
|
16874
16845
|
const res = await fetch(`${API_BASE_URL}/api/validate`, {
|
|
@@ -16889,7 +16860,7 @@ function EditorContent({ apiKey }) {
|
|
|
16889
16860
|
};
|
|
16890
16861
|
validateKey();
|
|
16891
16862
|
}, [apiKey, API_BASE_URL]);
|
|
16892
|
-
const editor = (0,
|
|
16863
|
+
const editor = _react3.useEditor.call(void 0, {
|
|
16893
16864
|
extensions: [
|
|
16894
16865
|
Document,
|
|
16895
16866
|
Paragraph,
|
|
@@ -16897,39 +16868,39 @@ function EditorContent({ apiKey }) {
|
|
|
16897
16868
|
History,
|
|
16898
16869
|
Bold,
|
|
16899
16870
|
Italic,
|
|
16900
|
-
|
|
16871
|
+
_extensionunderline2.default,
|
|
16901
16872
|
Strike,
|
|
16902
16873
|
Code,
|
|
16903
16874
|
Blockquote,
|
|
16904
16875
|
HardBreak,
|
|
16905
16876
|
Heading.configure({ levels: [1, 2, 3, 4, 5, 6] }),
|
|
16906
16877
|
HorizontalRule,
|
|
16907
|
-
|
|
16908
|
-
|
|
16909
|
-
|
|
16878
|
+
_extensiontextstyle2.default,
|
|
16879
|
+
_extensioncolor2.default,
|
|
16880
|
+
_extensionhighlight2.default.configure({ multicolor: true }),
|
|
16910
16881
|
FontFamily,
|
|
16911
16882
|
FontSize,
|
|
16912
|
-
|
|
16883
|
+
_extensiontextalign2.default.configure({ types: ["heading", "paragraph"] }),
|
|
16913
16884
|
ListItem,
|
|
16914
16885
|
BulletList,
|
|
16915
16886
|
OrderedList,
|
|
16916
16887
|
Subscript,
|
|
16917
16888
|
Superscript,
|
|
16918
|
-
|
|
16919
|
-
|
|
16889
|
+
_extensionimage2.default,
|
|
16890
|
+
_extensionlink2.default.configure({
|
|
16920
16891
|
openOnClick: false,
|
|
16921
16892
|
autolink: true,
|
|
16922
16893
|
linkOnPaste: true
|
|
16923
16894
|
}),
|
|
16924
16895
|
ResizableTable.configure({ resizable: true }),
|
|
16925
|
-
|
|
16926
|
-
|
|
16927
|
-
|
|
16896
|
+
_extensiontablerow2.default,
|
|
16897
|
+
_extensiontablecell2.default,
|
|
16898
|
+
_extensiontableheader2.default,
|
|
16928
16899
|
Embed,
|
|
16929
16900
|
ResizableImage,
|
|
16930
16901
|
ResizableVideo,
|
|
16931
16902
|
Comment,
|
|
16932
|
-
|
|
16903
|
+
_extensioncodeblocklowlight2.default.configure({
|
|
16933
16904
|
lowlight,
|
|
16934
16905
|
HTMLAttributes: {
|
|
16935
16906
|
class: "bg-gray-100 p-2 rounded font-mono text-sm overflow-auto"
|
|
@@ -16950,9 +16921,9 @@ function EditorContent({ apiKey }) {
|
|
|
16950
16921
|
},
|
|
16951
16922
|
immediatelyRender: false
|
|
16952
16923
|
});
|
|
16953
|
-
(0,
|
|
16924
|
+
_react.useEffect.call(void 0, () => {
|
|
16954
16925
|
return () => {
|
|
16955
|
-
editor
|
|
16926
|
+
_optionalChain([editor, 'optionalAccess', _42 => _42.destroy, 'call', _43 => _43()]);
|
|
16956
16927
|
};
|
|
16957
16928
|
}, [editor]);
|
|
16958
16929
|
const handleEditorClick = () => {
|
|
@@ -16975,15 +16946,15 @@ function EditorContent({ apiKey }) {
|
|
|
16975
16946
|
}
|
|
16976
16947
|
};
|
|
16977
16948
|
if (isValid === false) {
|
|
16978
|
-
return /* @__PURE__ */
|
|
16949
|
+
return /* @__PURE__ */ _react2.default.createElement("div", { className: "editor-error" }, "\u26A0\uFE0F ", error);
|
|
16979
16950
|
}
|
|
16980
16951
|
if (isValid === null) {
|
|
16981
|
-
return /* @__PURE__ */
|
|
16952
|
+
return /* @__PURE__ */ _react2.default.createElement("div", { className: "editor-loading" }, "\u{1F50D} Validating license...");
|
|
16982
16953
|
}
|
|
16983
16954
|
if (!typo) {
|
|
16984
|
-
return /* @__PURE__ */
|
|
16955
|
+
return /* @__PURE__ */ _react2.default.createElement("div", { className: "editor-loading" }, "\u{1F4D6} Loading dictionary...");
|
|
16985
16956
|
}
|
|
16986
|
-
return /* @__PURE__ */
|
|
16957
|
+
return /* @__PURE__ */ _react2.default.createElement("div", { className: "editor-container" }, userVersion !== "free" && /* @__PURE__ */ _react2.default.createElement("div", { className: "editor-toolbar" }, /* @__PURE__ */ _react2.default.createElement(
|
|
16987
16958
|
"button",
|
|
16988
16959
|
{
|
|
16989
16960
|
type: "button",
|
|
@@ -16992,7 +16963,7 @@ function EditorContent({ apiKey }) {
|
|
|
16992
16963
|
className: "editor-save-btn"
|
|
16993
16964
|
},
|
|
16994
16965
|
"Save Version"
|
|
16995
|
-
), /* @__PURE__ */
|
|
16966
|
+
), /* @__PURE__ */ _react2.default.createElement("div", { className: "editor-versions-wrapper" }, versions.length === 0 ? /* @__PURE__ */ _react2.default.createElement("span", { className: "editor-no-versions" }, "No saved versions") : versions.map((_, idx) => /* @__PURE__ */ _react2.default.createElement(
|
|
16996
16967
|
"button",
|
|
16997
16968
|
{
|
|
16998
16969
|
key: idx,
|
|
@@ -17002,14 +16973,14 @@ function EditorContent({ apiKey }) {
|
|
|
17002
16973
|
title: `Restore Version ${idx + 1}`
|
|
17003
16974
|
},
|
|
17004
16975
|
`V${idx + 1}`
|
|
17005
|
-
)))), editor && userVersion && /* @__PURE__ */
|
|
16976
|
+
)))), editor && userVersion && /* @__PURE__ */ _react2.default.createElement(TetronsToolbar, { editor, version: userVersion }), /* @__PURE__ */ _react2.default.createElement(
|
|
17006
16977
|
"div",
|
|
17007
16978
|
{
|
|
17008
16979
|
ref: wrapperRef,
|
|
17009
16980
|
className: "editor-content-wrapper",
|
|
17010
16981
|
onClick: handleEditorClick
|
|
17011
16982
|
},
|
|
17012
|
-
editor ? /* @__PURE__ */
|
|
16983
|
+
editor ? /* @__PURE__ */ _react2.default.createElement(_react2.default.Fragment, null, /* @__PURE__ */ _react2.default.createElement(_react3.EditorContent, { editor }), /* @__PURE__ */ _react2.default.createElement(TableContextMenu, { editor })) : /* @__PURE__ */ _react2.default.createElement("div", { className: "editor-loading" }, "Loading editor...")
|
|
17013
16984
|
));
|
|
17014
16985
|
}
|
|
17015
16986
|
|
|
@@ -17037,10 +17008,10 @@ async function initializeTetrons(apiKey) {
|
|
|
17037
17008
|
if (!API_VALID) {
|
|
17038
17009
|
throw new Error("API Key is not valid.");
|
|
17039
17010
|
}
|
|
17040
|
-
const { getOrCreateInstallDate
|
|
17011
|
+
const { getOrCreateInstallDate, getRemainingDays } = await Promise.resolve().then(() => _interopRequireWildcard(require("./licenseUtils-L7MYHDVW.cjs")));
|
|
17041
17012
|
const validityDays = API_VERSION === "free" ? 14 : 30;
|
|
17042
|
-
const installedAt =
|
|
17043
|
-
const remainingDays =
|
|
17013
|
+
const installedAt = getOrCreateInstallDate();
|
|
17014
|
+
const remainingDays = getRemainingDays(installedAt, validityDays);
|
|
17044
17015
|
if (remainingDays <= 0) {
|
|
17045
17016
|
throw new Error(`Your ${API_VERSION} license has expired.`);
|
|
17046
17017
|
}
|
|
@@ -17051,10 +17022,10 @@ async function initializeTetrons(apiKey) {
|
|
|
17051
17022
|
async function getTetronsRemainingDays() {
|
|
17052
17023
|
if (!API_VALID || !API_VERSION) return null;
|
|
17053
17024
|
if (typeof window !== "undefined") return null;
|
|
17054
|
-
const { getOrCreateInstallDate
|
|
17025
|
+
const { getOrCreateInstallDate, getRemainingDays } = await Promise.resolve().then(() => _interopRequireWildcard(require("./licenseUtils-L7MYHDVW.cjs")));
|
|
17055
17026
|
const validityDays = API_VERSION === "free" ? 14 : 30;
|
|
17056
|
-
const installedAt =
|
|
17057
|
-
return
|
|
17027
|
+
const installedAt = getOrCreateInstallDate();
|
|
17028
|
+
return getRemainingDays(installedAt, validityDays);
|
|
17058
17029
|
}
|
|
17059
17030
|
function getTetronsVersion() {
|
|
17060
17031
|
return API_VERSION;
|
|
@@ -17063,11 +17034,11 @@ function isApiKeyValid() {
|
|
|
17063
17034
|
return API_VALID;
|
|
17064
17035
|
}
|
|
17065
17036
|
var index_default = EditorContent;
|
|
17066
|
-
|
|
17067
|
-
|
|
17068
|
-
|
|
17069
|
-
|
|
17070
|
-
|
|
17071
|
-
|
|
17072
|
-
|
|
17073
|
-
|
|
17037
|
+
|
|
17038
|
+
|
|
17039
|
+
|
|
17040
|
+
|
|
17041
|
+
|
|
17042
|
+
|
|
17043
|
+
|
|
17044
|
+
exports.EditorContent = EditorContent; exports.default = index_default; exports.getTetronsRemainingDays = getTetronsRemainingDays; exports.getTetronsVersion = getTetronsVersion; exports.initializeTetrons = initializeTetrons; exports.isApiKeyValid = isApiKeyValid;
|