tetrons 2.3.72 → 2.3.73
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/ai-action/route.d.mts +9 -0
- package/dist/app/api/ai-action/route.d.ts +9 -0
- package/dist/app/api/export/route.cjs +4 -29
- package/dist/app/api/export/route.d.mts +3 -0
- package/dist/app/api/export/route.d.ts +3 -0
- package/dist/app/api/register/route.cjs +14 -76
- package/dist/app/api/register/route.d.mts +10 -0
- package/dist/app/api/register/route.d.ts +10 -0
- package/dist/app/api/register/route.mjs +5 -32
- package/dist/app/api/save/route.cjs +13 -48
- package/dist/app/api/save/route.d.mts +9 -0
- package/dist/app/api/save/route.d.ts +9 -0
- package/dist/app/api/transcribe/route.cjs +12 -38
- package/dist/app/api/transcribe/route.d.mts +10 -0
- package/dist/app/api/transcribe/route.d.ts +10 -0
- package/dist/app/api/validate/route.cjs +14 -79
- package/dist/app/api/validate/route.d.mts +13 -0
- package/dist/app/api/validate/route.d.ts +13 -0
- 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/components/tetrons/EditorContent.tsx +17 -5
- package/dist/{browser.browser.js → index.cjs} +525 -440
- package/dist/index.d.mts +13 -0
- package/dist/index.d.ts +13 -0
- package/dist/{node.node.mjs → index.mjs} +51 -68
- package/package.json +9 -19
- package/dist/browser.d.mts +0 -8
- package/dist/node.node.cjs +0 -17090
|
@@ -1,29 +1,21 @@
|
|
|
1
|
-
// src/components/tetrons/EditorContent.tsx
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
useEditor,
|
|
5
|
-
EditorContent as TiptapEditorContent
|
|
6
|
-
} from "@tiptap/react";
|
|
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);
|
|
3
|
+
|
|
7
4
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
if (typeof process !== "undefined") {
|
|
11
|
-
return process.env[key] || fallback;
|
|
12
|
-
}
|
|
13
|
-
return fallback;
|
|
14
|
-
}
|
|
5
|
+
|
|
6
|
+
var _react3 = require('@tiptap/react');
|
|
15
7
|
|
|
16
8
|
// node_modules/@tiptap/extension-document/dist/index.js
|
|
17
|
-
|
|
18
|
-
var Document = Node.create({
|
|
9
|
+
var _core = require('@tiptap/core');
|
|
10
|
+
var Document = _core.Node.create({
|
|
19
11
|
name: "doc",
|
|
20
12
|
topNode: true,
|
|
21
13
|
content: "block+"
|
|
22
14
|
});
|
|
23
15
|
|
|
24
16
|
// node_modules/@tiptap/extension-paragraph/dist/index.js
|
|
25
|
-
|
|
26
|
-
var Paragraph =
|
|
17
|
+
|
|
18
|
+
var Paragraph = _core.Node.create({
|
|
27
19
|
name: "paragraph",
|
|
28
20
|
priority: 1e3,
|
|
29
21
|
addOptions() {
|
|
@@ -39,7 +31,7 @@ var Paragraph = Node2.create({
|
|
|
39
31
|
];
|
|
40
32
|
},
|
|
41
33
|
renderHTML({ HTMLAttributes }) {
|
|
42
|
-
return ["p", mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];
|
|
34
|
+
return ["p", _core.mergeAttributes.call(void 0, this.options.HTMLAttributes, HTMLAttributes), 0];
|
|
43
35
|
},
|
|
44
36
|
addCommands() {
|
|
45
37
|
return {
|
|
@@ -56,14 +48,14 @@ var Paragraph = Node2.create({
|
|
|
56
48
|
});
|
|
57
49
|
|
|
58
50
|
// node_modules/@tiptap/extension-text/dist/index.js
|
|
59
|
-
|
|
60
|
-
var Text =
|
|
51
|
+
|
|
52
|
+
var Text = _core.Node.create({
|
|
61
53
|
name: "text",
|
|
62
54
|
group: "inline"
|
|
63
55
|
});
|
|
64
56
|
|
|
65
57
|
// node_modules/@tiptap/extension-history/dist/index.js
|
|
66
|
-
|
|
58
|
+
|
|
67
59
|
|
|
68
60
|
// node_modules/rope-sequence/dist/index.js
|
|
69
61
|
var GOOD_LEAF_SIZE = 200;
|
|
@@ -5683,7 +5675,7 @@ var undoNoScroll = buildCommand(false, false);
|
|
|
5683
5675
|
var redoNoScroll = buildCommand(true, false);
|
|
5684
5676
|
|
|
5685
5677
|
// node_modules/@tiptap/extension-history/dist/index.js
|
|
5686
|
-
var History = Extension.create({
|
|
5678
|
+
var History = _core.Extension.create({
|
|
5687
5679
|
name: "history",
|
|
5688
5680
|
addOptions() {
|
|
5689
5681
|
return {
|
|
@@ -5719,12 +5711,12 @@ var History = Extension.create({
|
|
|
5719
5711
|
});
|
|
5720
5712
|
|
|
5721
5713
|
// node_modules/@tiptap/extension-bold/dist/index.js
|
|
5722
|
-
|
|
5714
|
+
|
|
5723
5715
|
var starInputRegex = /(?:^|\s)(\*\*(?!\s+\*\*)((?:[^*]+))\*\*(?!\s+\*\*))$/;
|
|
5724
5716
|
var starPasteRegex = /(?:^|\s)(\*\*(?!\s+\*\*)((?:[^*]+))\*\*(?!\s+\*\*))/g;
|
|
5725
5717
|
var underscoreInputRegex = /(?:^|\s)(__(?!\s+__)((?:[^_]+))__(?!\s+__))$/;
|
|
5726
5718
|
var underscorePasteRegex = /(?:^|\s)(__(?!\s+__)((?:[^_]+))__(?!\s+__))/g;
|
|
5727
|
-
var Bold =
|
|
5719
|
+
var Bold = _core.Mark.create({
|
|
5728
5720
|
name: "bold",
|
|
5729
5721
|
addOptions() {
|
|
5730
5722
|
return {
|
|
@@ -5751,7 +5743,7 @@ var Bold = Mark2.create({
|
|
|
5751
5743
|
];
|
|
5752
5744
|
},
|
|
5753
5745
|
renderHTML({ HTMLAttributes }) {
|
|
5754
|
-
return ["strong",
|
|
5746
|
+
return ["strong", _core.mergeAttributes.call(void 0, this.options.HTMLAttributes, HTMLAttributes), 0];
|
|
5755
5747
|
},
|
|
5756
5748
|
addCommands() {
|
|
5757
5749
|
return {
|
|
@@ -5774,11 +5766,11 @@ var Bold = Mark2.create({
|
|
|
5774
5766
|
},
|
|
5775
5767
|
addInputRules() {
|
|
5776
5768
|
return [
|
|
5777
|
-
markInputRule({
|
|
5769
|
+
_core.markInputRule.call(void 0, {
|
|
5778
5770
|
find: starInputRegex,
|
|
5779
5771
|
type: this.type
|
|
5780
5772
|
}),
|
|
5781
|
-
markInputRule({
|
|
5773
|
+
_core.markInputRule.call(void 0, {
|
|
5782
5774
|
find: underscoreInputRegex,
|
|
5783
5775
|
type: this.type
|
|
5784
5776
|
})
|
|
@@ -5786,11 +5778,11 @@ var Bold = Mark2.create({
|
|
|
5786
5778
|
},
|
|
5787
5779
|
addPasteRules() {
|
|
5788
5780
|
return [
|
|
5789
|
-
markPasteRule({
|
|
5781
|
+
_core.markPasteRule.call(void 0, {
|
|
5790
5782
|
find: starPasteRegex,
|
|
5791
5783
|
type: this.type
|
|
5792
5784
|
}),
|
|
5793
|
-
markPasteRule({
|
|
5785
|
+
_core.markPasteRule.call(void 0, {
|
|
5794
5786
|
find: underscorePasteRegex,
|
|
5795
5787
|
type: this.type
|
|
5796
5788
|
})
|
|
@@ -5799,12 +5791,12 @@ var Bold = Mark2.create({
|
|
|
5799
5791
|
});
|
|
5800
5792
|
|
|
5801
5793
|
// node_modules/@tiptap/extension-italic/dist/index.js
|
|
5802
|
-
|
|
5794
|
+
|
|
5803
5795
|
var starInputRegex2 = /(?:^|\s)(\*(?!\s+\*)((?:[^*]+))\*(?!\s+\*))$/;
|
|
5804
5796
|
var starPasteRegex2 = /(?:^|\s)(\*(?!\s+\*)((?:[^*]+))\*(?!\s+\*))/g;
|
|
5805
5797
|
var underscoreInputRegex2 = /(?:^|\s)(_(?!\s+_)((?:[^_]+))_(?!\s+_))$/;
|
|
5806
5798
|
var underscorePasteRegex2 = /(?:^|\s)(_(?!\s+_)((?:[^_]+))_(?!\s+_))/g;
|
|
5807
|
-
var Italic =
|
|
5799
|
+
var Italic = _core.Mark.create({
|
|
5808
5800
|
name: "italic",
|
|
5809
5801
|
addOptions() {
|
|
5810
5802
|
return {
|
|
@@ -5830,7 +5822,7 @@ var Italic = Mark3.create({
|
|
|
5830
5822
|
];
|
|
5831
5823
|
},
|
|
5832
5824
|
renderHTML({ HTMLAttributes }) {
|
|
5833
|
-
return ["em",
|
|
5825
|
+
return ["em", _core.mergeAttributes.call(void 0, this.options.HTMLAttributes, HTMLAttributes), 0];
|
|
5834
5826
|
},
|
|
5835
5827
|
addCommands() {
|
|
5836
5828
|
return {
|
|
@@ -5853,11 +5845,11 @@ var Italic = Mark3.create({
|
|
|
5853
5845
|
},
|
|
5854
5846
|
addInputRules() {
|
|
5855
5847
|
return [
|
|
5856
|
-
|
|
5848
|
+
_core.markInputRule.call(void 0, {
|
|
5857
5849
|
find: starInputRegex2,
|
|
5858
5850
|
type: this.type
|
|
5859
5851
|
}),
|
|
5860
|
-
|
|
5852
|
+
_core.markInputRule.call(void 0, {
|
|
5861
5853
|
find: underscoreInputRegex2,
|
|
5862
5854
|
type: this.type
|
|
5863
5855
|
})
|
|
@@ -5865,11 +5857,11 @@ var Italic = Mark3.create({
|
|
|
5865
5857
|
},
|
|
5866
5858
|
addPasteRules() {
|
|
5867
5859
|
return [
|
|
5868
|
-
|
|
5860
|
+
_core.markPasteRule.call(void 0, {
|
|
5869
5861
|
find: starPasteRegex2,
|
|
5870
5862
|
type: this.type
|
|
5871
5863
|
}),
|
|
5872
|
-
|
|
5864
|
+
_core.markPasteRule.call(void 0, {
|
|
5873
5865
|
find: underscorePasteRegex2,
|
|
5874
5866
|
type: this.type
|
|
5875
5867
|
})
|
|
@@ -5878,13 +5870,13 @@ var Italic = Mark3.create({
|
|
|
5878
5870
|
});
|
|
5879
5871
|
|
|
5880
5872
|
// src/components/tetrons/EditorContent.tsx
|
|
5881
|
-
|
|
5873
|
+
var _extensionunderline = require('@tiptap/extension-underline'); var _extensionunderline2 = _interopRequireDefault(_extensionunderline);
|
|
5882
5874
|
|
|
5883
5875
|
// node_modules/@tiptap/extension-strike/dist/index.js
|
|
5884
|
-
|
|
5876
|
+
|
|
5885
5877
|
var inputRegex = /(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))$/;
|
|
5886
5878
|
var pasteRegex = /(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))/g;
|
|
5887
|
-
var Strike =
|
|
5879
|
+
var Strike = _core.Mark.create({
|
|
5888
5880
|
name: "strike",
|
|
5889
5881
|
addOptions() {
|
|
5890
5882
|
return {
|
|
@@ -5910,7 +5902,7 @@ var Strike = Mark4.create({
|
|
|
5910
5902
|
];
|
|
5911
5903
|
},
|
|
5912
5904
|
renderHTML({ HTMLAttributes }) {
|
|
5913
|
-
return ["s",
|
|
5905
|
+
return ["s", _core.mergeAttributes.call(void 0, this.options.HTMLAttributes, HTMLAttributes), 0];
|
|
5914
5906
|
},
|
|
5915
5907
|
addCommands() {
|
|
5916
5908
|
return {
|
|
@@ -5932,7 +5924,7 @@ var Strike = Mark4.create({
|
|
|
5932
5924
|
},
|
|
5933
5925
|
addInputRules() {
|
|
5934
5926
|
return [
|
|
5935
|
-
|
|
5927
|
+
_core.markInputRule.call(void 0, {
|
|
5936
5928
|
find: inputRegex,
|
|
5937
5929
|
type: this.type
|
|
5938
5930
|
})
|
|
@@ -5940,7 +5932,7 @@ var Strike = Mark4.create({
|
|
|
5940
5932
|
},
|
|
5941
5933
|
addPasteRules() {
|
|
5942
5934
|
return [
|
|
5943
|
-
|
|
5935
|
+
_core.markPasteRule.call(void 0, {
|
|
5944
5936
|
find: pasteRegex,
|
|
5945
5937
|
type: this.type
|
|
5946
5938
|
})
|
|
@@ -5949,10 +5941,10 @@ var Strike = Mark4.create({
|
|
|
5949
5941
|
});
|
|
5950
5942
|
|
|
5951
5943
|
// node_modules/@tiptap/extension-code/dist/index.js
|
|
5952
|
-
|
|
5944
|
+
|
|
5953
5945
|
var inputRegex2 = /(^|[^`])`([^`]+)`(?!`)/;
|
|
5954
5946
|
var pasteRegex2 = /(^|[^`])`([^`]+)`(?!`)/g;
|
|
5955
|
-
var Code =
|
|
5947
|
+
var Code = _core.Mark.create({
|
|
5956
5948
|
name: "code",
|
|
5957
5949
|
addOptions() {
|
|
5958
5950
|
return {
|
|
@@ -5968,7 +5960,7 @@ var Code = Mark5.create({
|
|
|
5968
5960
|
];
|
|
5969
5961
|
},
|
|
5970
5962
|
renderHTML({ HTMLAttributes }) {
|
|
5971
|
-
return ["code",
|
|
5963
|
+
return ["code", _core.mergeAttributes.call(void 0, this.options.HTMLAttributes, HTMLAttributes), 0];
|
|
5972
5964
|
},
|
|
5973
5965
|
addCommands() {
|
|
5974
5966
|
return {
|
|
@@ -5990,7 +5982,7 @@ var Code = Mark5.create({
|
|
|
5990
5982
|
},
|
|
5991
5983
|
addInputRules() {
|
|
5992
5984
|
return [
|
|
5993
|
-
|
|
5985
|
+
_core.markInputRule.call(void 0, {
|
|
5994
5986
|
find: inputRegex2,
|
|
5995
5987
|
type: this.type
|
|
5996
5988
|
})
|
|
@@ -5998,7 +5990,7 @@ var Code = Mark5.create({
|
|
|
5998
5990
|
},
|
|
5999
5991
|
addPasteRules() {
|
|
6000
5992
|
return [
|
|
6001
|
-
|
|
5993
|
+
_core.markPasteRule.call(void 0, {
|
|
6002
5994
|
find: pasteRegex2,
|
|
6003
5995
|
type: this.type
|
|
6004
5996
|
})
|
|
@@ -6007,9 +5999,9 @@ var Code = Mark5.create({
|
|
|
6007
5999
|
});
|
|
6008
6000
|
|
|
6009
6001
|
// node_modules/@tiptap/extension-blockquote/dist/index.js
|
|
6010
|
-
|
|
6002
|
+
|
|
6011
6003
|
var inputRegex3 = /^\s*>\s$/;
|
|
6012
|
-
var Blockquote =
|
|
6004
|
+
var Blockquote = _core.Node.create({
|
|
6013
6005
|
name: "blockquote",
|
|
6014
6006
|
addOptions() {
|
|
6015
6007
|
return {
|
|
@@ -6025,7 +6017,7 @@ var Blockquote = Node5.create({
|
|
|
6025
6017
|
];
|
|
6026
6018
|
},
|
|
6027
6019
|
renderHTML({ HTMLAttributes }) {
|
|
6028
|
-
return ["blockquote",
|
|
6020
|
+
return ["blockquote", _core.mergeAttributes.call(void 0, this.options.HTMLAttributes, HTMLAttributes), 0];
|
|
6029
6021
|
},
|
|
6030
6022
|
addCommands() {
|
|
6031
6023
|
return {
|
|
@@ -6047,7 +6039,7 @@ var Blockquote = Node5.create({
|
|
|
6047
6039
|
},
|
|
6048
6040
|
addInputRules() {
|
|
6049
6041
|
return [
|
|
6050
|
-
wrappingInputRule({
|
|
6042
|
+
_core.wrappingInputRule.call(void 0, {
|
|
6051
6043
|
find: inputRegex3,
|
|
6052
6044
|
type: this.type
|
|
6053
6045
|
})
|
|
@@ -6056,8 +6048,8 @@ var Blockquote = Node5.create({
|
|
|
6056
6048
|
});
|
|
6057
6049
|
|
|
6058
6050
|
// node_modules/@tiptap/extension-hard-break/dist/index.js
|
|
6059
|
-
|
|
6060
|
-
var HardBreak =
|
|
6051
|
+
|
|
6052
|
+
var HardBreak = _core.Node.create({
|
|
6061
6053
|
name: "hardBreak",
|
|
6062
6054
|
addOptions() {
|
|
6063
6055
|
return {
|
|
@@ -6075,7 +6067,7 @@ var HardBreak = Node6.create({
|
|
|
6075
6067
|
];
|
|
6076
6068
|
},
|
|
6077
6069
|
renderHTML({ HTMLAttributes }) {
|
|
6078
|
-
return ["br",
|
|
6070
|
+
return ["br", _core.mergeAttributes.call(void 0, this.options.HTMLAttributes, HTMLAttributes)];
|
|
6079
6071
|
},
|
|
6080
6072
|
renderText() {
|
|
6081
6073
|
return "\n";
|
|
@@ -6114,8 +6106,8 @@ var HardBreak = Node6.create({
|
|
|
6114
6106
|
});
|
|
6115
6107
|
|
|
6116
6108
|
// node_modules/@tiptap/extension-heading/dist/index.js
|
|
6117
|
-
|
|
6118
|
-
var Heading =
|
|
6109
|
+
|
|
6110
|
+
var Heading = _core.Node.create({
|
|
6119
6111
|
name: "heading",
|
|
6120
6112
|
addOptions() {
|
|
6121
6113
|
return {
|
|
@@ -6143,7 +6135,7 @@ var Heading = Node7.create({
|
|
|
6143
6135
|
renderHTML({ node, HTMLAttributes }) {
|
|
6144
6136
|
const hasLevel = this.options.levels.includes(node.attrs.level);
|
|
6145
6137
|
const level = hasLevel ? node.attrs.level : this.options.levels[0];
|
|
6146
|
-
return [`h${level}`,
|
|
6138
|
+
return [`h${level}`, _core.mergeAttributes.call(void 0, this.options.HTMLAttributes, HTMLAttributes), 0];
|
|
6147
6139
|
},
|
|
6148
6140
|
addCommands() {
|
|
6149
6141
|
return {
|
|
@@ -6171,7 +6163,7 @@ var Heading = Node7.create({
|
|
|
6171
6163
|
},
|
|
6172
6164
|
addInputRules() {
|
|
6173
6165
|
return this.options.levels.map((level) => {
|
|
6174
|
-
return textblockTypeInputRule({
|
|
6166
|
+
return _core.textblockTypeInputRule.call(void 0, {
|
|
6175
6167
|
find: new RegExp(`^(#{${Math.min(...this.options.levels)},${level}})\\s$`),
|
|
6176
6168
|
type: this.type,
|
|
6177
6169
|
getAttributes: {
|
|
@@ -6183,8 +6175,8 @@ var Heading = Node7.create({
|
|
|
6183
6175
|
});
|
|
6184
6176
|
|
|
6185
6177
|
// node_modules/@tiptap/extension-horizontal-rule/dist/index.js
|
|
6186
|
-
|
|
6187
|
-
var HorizontalRule =
|
|
6178
|
+
|
|
6179
|
+
var HorizontalRule = _core.Node.create({
|
|
6188
6180
|
name: "horizontalRule",
|
|
6189
6181
|
addOptions() {
|
|
6190
6182
|
return {
|
|
@@ -6196,12 +6188,12 @@ var HorizontalRule = Node8.create({
|
|
|
6196
6188
|
return [{ tag: "hr" }];
|
|
6197
6189
|
},
|
|
6198
6190
|
renderHTML({ HTMLAttributes }) {
|
|
6199
|
-
return ["hr",
|
|
6191
|
+
return ["hr", _core.mergeAttributes.call(void 0, this.options.HTMLAttributes, HTMLAttributes)];
|
|
6200
6192
|
},
|
|
6201
6193
|
addCommands() {
|
|
6202
6194
|
return {
|
|
6203
6195
|
setHorizontalRule: () => ({ chain, state }) => {
|
|
6204
|
-
if (!canInsertNode(state, state.schema.nodes[this.name])) {
|
|
6196
|
+
if (!_core.canInsertNode.call(void 0, state, state.schema.nodes[this.name])) {
|
|
6205
6197
|
return false;
|
|
6206
6198
|
}
|
|
6207
6199
|
const { selection } = state;
|
|
@@ -6214,7 +6206,7 @@ var HorizontalRule = Node8.create({
|
|
|
6214
6206
|
}, {
|
|
6215
6207
|
type: this.name
|
|
6216
6208
|
});
|
|
6217
|
-
} else if (isNodeSelection(selection)) {
|
|
6209
|
+
} else if (_core.isNodeSelection.call(void 0, selection)) {
|
|
6218
6210
|
currentChain.insertContentAt($originTo.pos, {
|
|
6219
6211
|
type: this.name
|
|
6220
6212
|
});
|
|
@@ -6250,7 +6242,7 @@ var HorizontalRule = Node8.create({
|
|
|
6250
6242
|
},
|
|
6251
6243
|
addInputRules() {
|
|
6252
6244
|
return [
|
|
6253
|
-
nodeInputRule({
|
|
6245
|
+
_core.nodeInputRule.call(void 0, {
|
|
6254
6246
|
find: /^(?:---|—-|___\s|\*\*\*\s)$/,
|
|
6255
6247
|
type: this.type
|
|
6256
6248
|
})
|
|
@@ -6259,16 +6251,16 @@ var HorizontalRule = Node8.create({
|
|
|
6259
6251
|
});
|
|
6260
6252
|
|
|
6261
6253
|
// src/components/tetrons/EditorContent.tsx
|
|
6262
|
-
|
|
6263
|
-
|
|
6264
|
-
|
|
6265
|
-
|
|
6266
|
-
|
|
6267
|
-
|
|
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);
|
|
6268
6260
|
|
|
6269
6261
|
// node_modules/@tiptap/extension-list-item/dist/index.js
|
|
6270
|
-
|
|
6271
|
-
var ListItem =
|
|
6262
|
+
|
|
6263
|
+
var ListItem = _core.Node.create({
|
|
6272
6264
|
name: "listItem",
|
|
6273
6265
|
addOptions() {
|
|
6274
6266
|
return {
|
|
@@ -6287,7 +6279,7 @@ var ListItem = Node9.create({
|
|
|
6287
6279
|
];
|
|
6288
6280
|
},
|
|
6289
6281
|
renderHTML({ HTMLAttributes }) {
|
|
6290
|
-
return ["li",
|
|
6282
|
+
return ["li", _core.mergeAttributes.call(void 0, this.options.HTMLAttributes, HTMLAttributes), 0];
|
|
6291
6283
|
},
|
|
6292
6284
|
addKeyboardShortcuts() {
|
|
6293
6285
|
return {
|
|
@@ -6299,11 +6291,11 @@ var ListItem = Node9.create({
|
|
|
6299
6291
|
});
|
|
6300
6292
|
|
|
6301
6293
|
// node_modules/@tiptap/extension-bullet-list/dist/index.js
|
|
6302
|
-
|
|
6294
|
+
|
|
6303
6295
|
var ListItemName = "listItem";
|
|
6304
6296
|
var TextStyleName = "textStyle";
|
|
6305
6297
|
var inputRegex4 = /^\s*([-+*])\s$/;
|
|
6306
|
-
var BulletList =
|
|
6298
|
+
var BulletList = _core.Node.create({
|
|
6307
6299
|
name: "bulletList",
|
|
6308
6300
|
addOptions() {
|
|
6309
6301
|
return {
|
|
@@ -6323,7 +6315,7 @@ var BulletList = Node10.create({
|
|
|
6323
6315
|
];
|
|
6324
6316
|
},
|
|
6325
6317
|
renderHTML({ HTMLAttributes }) {
|
|
6326
|
-
return ["ul",
|
|
6318
|
+
return ["ul", _core.mergeAttributes.call(void 0, this.options.HTMLAttributes, HTMLAttributes), 0];
|
|
6327
6319
|
},
|
|
6328
6320
|
addCommands() {
|
|
6329
6321
|
return {
|
|
@@ -6341,12 +6333,12 @@ var BulletList = Node10.create({
|
|
|
6341
6333
|
};
|
|
6342
6334
|
},
|
|
6343
6335
|
addInputRules() {
|
|
6344
|
-
let inputRule =
|
|
6336
|
+
let inputRule = _core.wrappingInputRule.call(void 0, {
|
|
6345
6337
|
find: inputRegex4,
|
|
6346
6338
|
type: this.type
|
|
6347
6339
|
});
|
|
6348
6340
|
if (this.options.keepMarks || this.options.keepAttributes) {
|
|
6349
|
-
inputRule =
|
|
6341
|
+
inputRule = _core.wrappingInputRule.call(void 0, {
|
|
6350
6342
|
find: inputRegex4,
|
|
6351
6343
|
type: this.type,
|
|
6352
6344
|
keepMarks: this.options.keepMarks,
|
|
@@ -6364,11 +6356,11 @@ var BulletList = Node10.create({
|
|
|
6364
6356
|
});
|
|
6365
6357
|
|
|
6366
6358
|
// node_modules/@tiptap/extension-ordered-list/dist/index.js
|
|
6367
|
-
|
|
6359
|
+
|
|
6368
6360
|
var ListItemName2 = "listItem";
|
|
6369
6361
|
var TextStyleName2 = "textStyle";
|
|
6370
6362
|
var inputRegex5 = /^(\d+)\.\s$/;
|
|
6371
|
-
var OrderedList =
|
|
6363
|
+
var OrderedList = _core.Node.create({
|
|
6372
6364
|
name: "orderedList",
|
|
6373
6365
|
addOptions() {
|
|
6374
6366
|
return {
|
|
@@ -6405,7 +6397,7 @@ var OrderedList = Node11.create({
|
|
|
6405
6397
|
},
|
|
6406
6398
|
renderHTML({ HTMLAttributes }) {
|
|
6407
6399
|
const { start, ...attributesWithoutStart } = HTMLAttributes;
|
|
6408
|
-
return start === 1 ? ["ol",
|
|
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];
|
|
6409
6401
|
},
|
|
6410
6402
|
addCommands() {
|
|
6411
6403
|
return {
|
|
@@ -6423,14 +6415,14 @@ var OrderedList = Node11.create({
|
|
|
6423
6415
|
};
|
|
6424
6416
|
},
|
|
6425
6417
|
addInputRules() {
|
|
6426
|
-
let inputRule =
|
|
6418
|
+
let inputRule = _core.wrappingInputRule.call(void 0, {
|
|
6427
6419
|
find: inputRegex5,
|
|
6428
6420
|
type: this.type,
|
|
6429
6421
|
getAttributes: (match) => ({ start: +match[1] }),
|
|
6430
6422
|
joinPredicate: (match, node) => node.childCount + node.attrs.start === +match[1]
|
|
6431
6423
|
});
|
|
6432
6424
|
if (this.options.keepMarks || this.options.keepAttributes) {
|
|
6433
|
-
inputRule =
|
|
6425
|
+
inputRule = _core.wrappingInputRule.call(void 0, {
|
|
6434
6426
|
find: inputRegex5,
|
|
6435
6427
|
type: this.type,
|
|
6436
6428
|
keepMarks: this.options.keepMarks,
|
|
@@ -6447,10 +6439,10 @@ var OrderedList = Node11.create({
|
|
|
6447
6439
|
});
|
|
6448
6440
|
|
|
6449
6441
|
// src/components/tetrons/EditorContent.tsx
|
|
6450
|
-
|
|
6451
|
-
|
|
6452
|
-
|
|
6453
|
-
|
|
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);
|
|
6454
6446
|
|
|
6455
6447
|
// node_modules/highlight.js/es/languages/javascript.js
|
|
6456
6448
|
var IDENT_RE = "[A-Za-z$_][0-9A-Za-z$_]*";
|
|
@@ -7968,14 +7960,14 @@ function typescript(hljs) {
|
|
|
7968
7960
|
}
|
|
7969
7961
|
|
|
7970
7962
|
// src/components/tetrons/EditorContent.tsx
|
|
7971
|
-
|
|
7963
|
+
var _lowlight = require('lowlight');
|
|
7972
7964
|
|
|
7973
7965
|
// src/utils/useTypo.ts
|
|
7974
|
-
|
|
7975
|
-
|
|
7966
|
+
|
|
7967
|
+
var _typojs = require('typo-js'); var _typojs2 = _interopRequireDefault(_typojs);
|
|
7976
7968
|
function useTypo() {
|
|
7977
|
-
const [typo, setTypo] = useState(null);
|
|
7978
|
-
useEffect(() => {
|
|
7969
|
+
const [typo, setTypo] = _react.useState.call(void 0, null);
|
|
7970
|
+
_react.useEffect.call(void 0, () => {
|
|
7979
7971
|
async function loadDictionary() {
|
|
7980
7972
|
const aff = await fetch("/dictionaries/index.aff").then(
|
|
7981
7973
|
(res) => res.text()
|
|
@@ -7983,7 +7975,7 @@ function useTypo() {
|
|
|
7983
7975
|
const dic = await fetch("/dictionaries/index.dic").then(
|
|
7984
7976
|
(res) => res.text()
|
|
7985
7977
|
);
|
|
7986
|
-
const dictionary = new
|
|
7978
|
+
const dictionary = new (0, _typojs2.default)("en_US", aff, dic, { platform: "any" });
|
|
7987
7979
|
setTypo(dictionary);
|
|
7988
7980
|
}
|
|
7989
7981
|
loadDictionary();
|
|
@@ -7992,9 +7984,9 @@ function useTypo() {
|
|
|
7992
7984
|
}
|
|
7993
7985
|
|
|
7994
7986
|
// src/components/tetrons/extensions/Spellcheck.ts
|
|
7995
|
-
|
|
7987
|
+
|
|
7996
7988
|
var wordMatchRegex = () => /(?:^|\s)([a-zA-Z]{2,})(?=\s|$)/g;
|
|
7997
|
-
var Spellcheck =
|
|
7989
|
+
var Spellcheck = _core.Mark.create({
|
|
7998
7990
|
name: "spellcheck",
|
|
7999
7991
|
addOptions() {
|
|
8000
7992
|
return {
|
|
@@ -8003,7 +7995,7 @@ var Spellcheck = Mark6.create({
|
|
|
8003
7995
|
},
|
|
8004
7996
|
addInputRules() {
|
|
8005
7997
|
return [
|
|
8006
|
-
|
|
7998
|
+
_core.markInputRule.call(void 0, {
|
|
8007
7999
|
find: wordMatchRegex(),
|
|
8008
8000
|
type: this.type,
|
|
8009
8001
|
getAttributes: (match) => this.options.spellcheckFn(match[1]) ? false : { "data-spellcheck": "true" }
|
|
@@ -8031,8 +8023,8 @@ var Spellcheck = Mark6.create({
|
|
|
8031
8023
|
});
|
|
8032
8024
|
|
|
8033
8025
|
// src/components/tetrons/toolbar/extensions/Comment.ts
|
|
8034
|
-
|
|
8035
|
-
var Comment =
|
|
8026
|
+
|
|
8027
|
+
var Comment = _core.Mark.create({
|
|
8036
8028
|
name: "comment",
|
|
8037
8029
|
addOptions() {
|
|
8038
8030
|
return {
|
|
@@ -8056,7 +8048,7 @@ var Comment = Mark7.create({
|
|
|
8056
8048
|
renderHTML({ HTMLAttributes }) {
|
|
8057
8049
|
return [
|
|
8058
8050
|
"span",
|
|
8059
|
-
|
|
8051
|
+
_core.mergeAttributes.call(void 0, HTMLAttributes, {
|
|
8060
8052
|
"data-comment": HTMLAttributes.comment,
|
|
8061
8053
|
class: "comment-highlight",
|
|
8062
8054
|
title: HTMLAttributes.comment,
|
|
@@ -8078,8 +8070,8 @@ var Comment = Mark7.create({
|
|
|
8078
8070
|
});
|
|
8079
8071
|
|
|
8080
8072
|
// src/components/tetrons/toolbar/marks/Subscript.ts
|
|
8081
|
-
|
|
8082
|
-
var Subscript =
|
|
8073
|
+
|
|
8074
|
+
var Subscript = _core.Mark.create({
|
|
8083
8075
|
name: "subscript",
|
|
8084
8076
|
excludes: "superscript",
|
|
8085
8077
|
parseHTML() {
|
|
@@ -8095,7 +8087,7 @@ var Subscript = Mark8.create({
|
|
|
8095
8087
|
},
|
|
8096
8088
|
addInputRules() {
|
|
8097
8089
|
return [
|
|
8098
|
-
|
|
8090
|
+
_core.markInputRule.call(void 0, {
|
|
8099
8091
|
find: /~([^~]+)~/,
|
|
8100
8092
|
type: this.type
|
|
8101
8093
|
})
|
|
@@ -8103,7 +8095,7 @@ var Subscript = Mark8.create({
|
|
|
8103
8095
|
},
|
|
8104
8096
|
addPasteRules() {
|
|
8105
8097
|
return [
|
|
8106
|
-
|
|
8098
|
+
_core.markPasteRule.call(void 0, {
|
|
8107
8099
|
find: /~([^~]+)~/g,
|
|
8108
8100
|
type: this.type
|
|
8109
8101
|
})
|
|
@@ -8112,8 +8104,8 @@ var Subscript = Mark8.create({
|
|
|
8112
8104
|
});
|
|
8113
8105
|
|
|
8114
8106
|
// src/components/tetrons/toolbar/marks/Superscript.ts
|
|
8115
|
-
|
|
8116
|
-
var Superscript =
|
|
8107
|
+
|
|
8108
|
+
var Superscript = _core.Mark.create({
|
|
8117
8109
|
name: "superscript",
|
|
8118
8110
|
excludes: "subscript",
|
|
8119
8111
|
parseHTML() {
|
|
@@ -8129,7 +8121,7 @@ var Superscript = Mark9.create({
|
|
|
8129
8121
|
},
|
|
8130
8122
|
addInputRules() {
|
|
8131
8123
|
return [
|
|
8132
|
-
|
|
8124
|
+
_core.markInputRule.call(void 0, {
|
|
8133
8125
|
find: /\^([^^]+)\^/,
|
|
8134
8126
|
type: this.type
|
|
8135
8127
|
})
|
|
@@ -8137,7 +8129,7 @@ var Superscript = Mark9.create({
|
|
|
8137
8129
|
},
|
|
8138
8130
|
addPasteRules() {
|
|
8139
8131
|
return [
|
|
8140
|
-
|
|
8132
|
+
_core.markPasteRule.call(void 0, {
|
|
8141
8133
|
find: /\^([^^]+)\^/g,
|
|
8142
8134
|
type: this.type
|
|
8143
8135
|
})
|
|
@@ -8146,7 +8138,7 @@ var Superscript = Mark9.create({
|
|
|
8146
8138
|
});
|
|
8147
8139
|
|
|
8148
8140
|
// src/components/tetrons/toolbar/extensions/ResizableTable.ts
|
|
8149
|
-
|
|
8141
|
+
var _extensiontable = require('@tiptap/extension-table');
|
|
8150
8142
|
|
|
8151
8143
|
// node_modules/prosemirror-view/dist/index.js
|
|
8152
8144
|
var domIndex = function(node) {
|
|
@@ -11512,16 +11504,16 @@ editHandlers.drop = (view, _event) => {
|
|
|
11512
11504
|
tr.deleteSelection();
|
|
11513
11505
|
}
|
|
11514
11506
|
let pos = tr.mapping.map(insertPos);
|
|
11515
|
-
let
|
|
11507
|
+
let isNode2 = slice2.openStart == 0 && slice2.openEnd == 0 && slice2.content.childCount == 1;
|
|
11516
11508
|
let beforeInsert = tr.doc;
|
|
11517
|
-
if (
|
|
11509
|
+
if (isNode2)
|
|
11518
11510
|
tr.replaceRangeWith(pos, pos, slice2.content.firstChild);
|
|
11519
11511
|
else
|
|
11520
11512
|
tr.replaceRange(pos, pos, slice2);
|
|
11521
11513
|
if (tr.doc.eq(beforeInsert))
|
|
11522
11514
|
return;
|
|
11523
11515
|
let $pos = tr.doc.resolve(pos);
|
|
11524
|
-
if (
|
|
11516
|
+
if (isNode2 && NodeSelection.isSelectable(slice2.content.firstChild) && $pos.nodeAfter && $pos.nodeAfter.sameMarkup(slice2.content.firstChild)) {
|
|
11525
11517
|
tr.setSelection(new NodeSelection($pos));
|
|
11526
11518
|
} else {
|
|
11527
11519
|
let end = tr.mapping.map(insertPos);
|
|
@@ -15203,10 +15195,10 @@ function tableEditing({
|
|
|
15203
15195
|
}
|
|
15204
15196
|
|
|
15205
15197
|
// src/components/tetrons/toolbar/extensions/ResizableTable.ts
|
|
15206
|
-
var ResizableTable = Table.extend({
|
|
15198
|
+
var ResizableTable = _extensiontable.Table.extend({
|
|
15207
15199
|
addOptions() {
|
|
15208
15200
|
return {
|
|
15209
|
-
...this.parent
|
|
15201
|
+
..._optionalChain([this, 'access', _3 => _3.parent, 'optionalCall', _4 => _4()]),
|
|
15210
15202
|
resizable: true
|
|
15211
15203
|
};
|
|
15212
15204
|
},
|
|
@@ -15216,8 +15208,8 @@ var ResizableTable = Table.extend({
|
|
|
15216
15208
|
});
|
|
15217
15209
|
|
|
15218
15210
|
// src/components/tetrons/toolbar/extensions/Embed.ts
|
|
15219
|
-
|
|
15220
|
-
var Embed =
|
|
15211
|
+
|
|
15212
|
+
var Embed = _core.Node.create({
|
|
15221
15213
|
name: "embed",
|
|
15222
15214
|
group: "block",
|
|
15223
15215
|
atom: true,
|
|
@@ -15232,7 +15224,7 @@ var Embed = Node12.create({
|
|
|
15232
15224
|
return [{ tag: "iframe[src]" }];
|
|
15233
15225
|
},
|
|
15234
15226
|
renderHTML({ HTMLAttributes }) {
|
|
15235
|
-
return ["iframe",
|
|
15227
|
+
return ["iframe", _core.mergeAttributes.call(void 0, HTMLAttributes)];
|
|
15236
15228
|
},
|
|
15237
15229
|
addCommands() {
|
|
15238
15230
|
return {
|
|
@@ -15310,8 +15302,8 @@ var Embed = Node12.create({
|
|
|
15310
15302
|
});
|
|
15311
15303
|
|
|
15312
15304
|
// src/components/tetrons/toolbar/extensions/FontFamily.ts
|
|
15313
|
-
|
|
15314
|
-
var FontFamily =
|
|
15305
|
+
|
|
15306
|
+
var FontFamily = _core.Mark.create({
|
|
15315
15307
|
name: "fontFamily",
|
|
15316
15308
|
addAttributes() {
|
|
15317
15309
|
return {
|
|
@@ -15329,7 +15321,7 @@ var FontFamily = Mark10.create({
|
|
|
15329
15321
|
return [{ style: "font-family" }];
|
|
15330
15322
|
},
|
|
15331
15323
|
renderHTML({ HTMLAttributes }) {
|
|
15332
|
-
return ["span",
|
|
15324
|
+
return ["span", _core.mergeAttributes.call(void 0, HTMLAttributes), 0];
|
|
15333
15325
|
},
|
|
15334
15326
|
addCommands() {
|
|
15335
15327
|
return {
|
|
@@ -15339,8 +15331,8 @@ var FontFamily = Mark10.create({
|
|
|
15339
15331
|
});
|
|
15340
15332
|
|
|
15341
15333
|
// src/components/tetrons/toolbar/extensions/FontSize.ts
|
|
15342
|
-
|
|
15343
|
-
var FontSize =
|
|
15334
|
+
|
|
15335
|
+
var FontSize = _core.Mark.create({
|
|
15344
15336
|
name: "fontSize",
|
|
15345
15337
|
addAttributes() {
|
|
15346
15338
|
return {
|
|
@@ -15358,7 +15350,7 @@ var FontSize = Mark11.create({
|
|
|
15358
15350
|
return [{ style: "font-size" }];
|
|
15359
15351
|
},
|
|
15360
15352
|
renderHTML({ HTMLAttributes }) {
|
|
15361
|
-
return ["span",
|
|
15353
|
+
return ["span", _core.mergeAttributes.call(void 0, HTMLAttributes), 0];
|
|
15362
15354
|
},
|
|
15363
15355
|
addCommands() {
|
|
15364
15356
|
return {
|
|
@@ -15368,24 +15360,24 @@ var FontSize = Mark11.create({
|
|
|
15368
15360
|
});
|
|
15369
15361
|
|
|
15370
15362
|
// src/components/tetrons/ResizableImage.ts
|
|
15371
|
-
|
|
15372
|
-
|
|
15363
|
+
|
|
15364
|
+
|
|
15373
15365
|
|
|
15374
15366
|
// src/components/tetrons/ResizableImageComponent.tsx
|
|
15375
|
-
|
|
15376
|
-
|
|
15367
|
+
|
|
15368
|
+
|
|
15377
15369
|
var ResizableImageComponent = ({
|
|
15378
15370
|
node,
|
|
15379
15371
|
updateAttributes,
|
|
15380
15372
|
selected
|
|
15381
15373
|
}) => {
|
|
15382
15374
|
const { src, alt, title, width, height } = node.attrs;
|
|
15383
|
-
const defaultWidth = width
|
|
15384
|
-
const defaultHeight = height
|
|
15375
|
+
const defaultWidth = _nullishCoalesce(width, () => ( 300));
|
|
15376
|
+
const defaultHeight = _nullishCoalesce(height, () => ( 200));
|
|
15385
15377
|
const aspectRatio = defaultHeight > 0 ? defaultWidth / defaultHeight : 4 / 3;
|
|
15386
|
-
const wrapperRef = useRef(null);
|
|
15387
|
-
const [isResizing, setIsResizing] =
|
|
15388
|
-
|
|
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, () => {
|
|
15389
15381
|
const handleMouseMove2 = (e) => {
|
|
15390
15382
|
if (!isResizing || !wrapperRef.current) return;
|
|
15391
15383
|
const rect = wrapperRef.current.getBoundingClientRect();
|
|
@@ -15410,8 +15402,8 @@ var ResizableImageComponent = ({
|
|
|
15410
15402
|
window.removeEventListener("mouseup", handleMouseUp);
|
|
15411
15403
|
};
|
|
15412
15404
|
}, [isResizing, updateAttributes, aspectRatio]);
|
|
15413
|
-
return /* @__PURE__ */
|
|
15414
|
-
NodeViewWrapper,
|
|
15405
|
+
return /* @__PURE__ */ _react2.default.createElement(
|
|
15406
|
+
_react3.NodeViewWrapper,
|
|
15415
15407
|
{
|
|
15416
15408
|
ref: wrapperRef,
|
|
15417
15409
|
contentEditable: false,
|
|
@@ -15429,12 +15421,12 @@ var ResizableImageComponent = ({
|
|
|
15429
15421
|
padding: 2
|
|
15430
15422
|
}
|
|
15431
15423
|
},
|
|
15432
|
-
/* @__PURE__ */
|
|
15424
|
+
/* @__PURE__ */ _react2.default.createElement(
|
|
15433
15425
|
"img",
|
|
15434
15426
|
{
|
|
15435
15427
|
src,
|
|
15436
|
-
alt: alt
|
|
15437
|
-
title: title
|
|
15428
|
+
alt: _nullishCoalesce(alt, () => ( "")),
|
|
15429
|
+
title: _nullishCoalesce(title, () => ( "")),
|
|
15438
15430
|
loading: "lazy",
|
|
15439
15431
|
style: {
|
|
15440
15432
|
width: "100%",
|
|
@@ -15447,7 +15439,7 @@ var ResizableImageComponent = ({
|
|
|
15447
15439
|
draggable: false
|
|
15448
15440
|
}
|
|
15449
15441
|
),
|
|
15450
|
-
/* @__PURE__ */
|
|
15442
|
+
/* @__PURE__ */ _react2.default.createElement(
|
|
15451
15443
|
"div",
|
|
15452
15444
|
{
|
|
15453
15445
|
onMouseDown: (e) => {
|
|
@@ -15472,11 +15464,11 @@ var ResizableImageComponent = ({
|
|
|
15472
15464
|
var ResizableImageComponent_default = ResizableImageComponent;
|
|
15473
15465
|
|
|
15474
15466
|
// src/components/tetrons/ResizableImage.ts
|
|
15475
|
-
var ResizableImage =
|
|
15467
|
+
var ResizableImage = _extensionimage2.default.extend({
|
|
15476
15468
|
name: "resizableImage",
|
|
15477
15469
|
addAttributes() {
|
|
15478
15470
|
return {
|
|
15479
|
-
...this.parent
|
|
15471
|
+
..._optionalChain([this, 'access', _5 => _5.parent, 'optionalCall', _6 => _6()]),
|
|
15480
15472
|
width: { default: null },
|
|
15481
15473
|
height: { default: null }
|
|
15482
15474
|
};
|
|
@@ -15495,26 +15487,26 @@ var ResizableImage = Image.extend({
|
|
|
15495
15487
|
];
|
|
15496
15488
|
},
|
|
15497
15489
|
addNodeView() {
|
|
15498
|
-
return ReactNodeViewRenderer(ResizableImageComponent_default);
|
|
15490
|
+
return _react3.ReactNodeViewRenderer.call(void 0, ResizableImageComponent_default);
|
|
15499
15491
|
}
|
|
15500
15492
|
});
|
|
15501
15493
|
|
|
15502
15494
|
// src/components/tetrons/ResizableVideo.ts
|
|
15503
|
-
|
|
15504
|
-
|
|
15495
|
+
|
|
15496
|
+
|
|
15505
15497
|
|
|
15506
15498
|
// src/components/tetrons/ResizableVideoComponent.tsx
|
|
15507
|
-
|
|
15508
|
-
|
|
15499
|
+
|
|
15500
|
+
|
|
15509
15501
|
var ResizableVideoComponent = ({
|
|
15510
15502
|
node,
|
|
15511
15503
|
updateAttributes,
|
|
15512
15504
|
selected
|
|
15513
15505
|
}) => {
|
|
15514
15506
|
const { src, controls, width, height } = node.attrs;
|
|
15515
|
-
const wrapperRef =
|
|
15516
|
-
const videoRef =
|
|
15517
|
-
|
|
15507
|
+
const wrapperRef = _react.useRef.call(void 0, null);
|
|
15508
|
+
const videoRef = _react.useRef.call(void 0, null);
|
|
15509
|
+
_react.useEffect.call(void 0, () => {
|
|
15518
15510
|
const video = videoRef.current;
|
|
15519
15511
|
if (!video) return;
|
|
15520
15512
|
const observer = new ResizeObserver(() => {
|
|
@@ -15525,8 +15517,8 @@ var ResizableVideoComponent = ({
|
|
|
15525
15517
|
observer.observe(video);
|
|
15526
15518
|
return () => observer.disconnect();
|
|
15527
15519
|
}, [updateAttributes]);
|
|
15528
|
-
return /* @__PURE__ */
|
|
15529
|
-
|
|
15520
|
+
return /* @__PURE__ */ _react2.default.createElement(
|
|
15521
|
+
_react3.NodeViewWrapper,
|
|
15530
15522
|
{
|
|
15531
15523
|
ref: wrapperRef,
|
|
15532
15524
|
contentEditable: false,
|
|
@@ -15539,7 +15531,7 @@ var ResizableVideoComponent = ({
|
|
|
15539
15531
|
display: "inline-block"
|
|
15540
15532
|
}
|
|
15541
15533
|
},
|
|
15542
|
-
/* @__PURE__ */
|
|
15534
|
+
/* @__PURE__ */ _react2.default.createElement(
|
|
15543
15535
|
"video",
|
|
15544
15536
|
{
|
|
15545
15537
|
ref: videoRef,
|
|
@@ -15556,7 +15548,7 @@ var ResizableVideoComponent = ({
|
|
|
15556
15548
|
var ResizableVideoComponent_default = ResizableVideoComponent;
|
|
15557
15549
|
|
|
15558
15550
|
// src/components/tetrons/ResizableVideo.ts
|
|
15559
|
-
var ResizableVideo =
|
|
15551
|
+
var ResizableVideo = _core.Node.create({
|
|
15560
15552
|
name: "video",
|
|
15561
15553
|
group: "block",
|
|
15562
15554
|
draggable: true,
|
|
@@ -15598,15 +15590,15 @@ var ResizableVideo = Node13.create({
|
|
|
15598
15590
|
};
|
|
15599
15591
|
},
|
|
15600
15592
|
addNodeView() {
|
|
15601
|
-
return
|
|
15593
|
+
return _react3.ReactNodeViewRenderer.call(void 0, ResizableVideoComponent_default);
|
|
15602
15594
|
}
|
|
15603
15595
|
});
|
|
15604
15596
|
|
|
15605
15597
|
// src/components/tetrons/toolbar/TableContextMenu.tsx
|
|
15606
|
-
|
|
15598
|
+
|
|
15607
15599
|
function TableContextMenu({ editor }) {
|
|
15608
|
-
const [menuPosition, setMenuPosition] =
|
|
15609
|
-
|
|
15600
|
+
const [menuPosition, setMenuPosition] = _react.useState.call(void 0, null);
|
|
15601
|
+
_react.useEffect.call(void 0, () => {
|
|
15610
15602
|
const handleContextMenu = (event) => {
|
|
15611
15603
|
const target = event.target;
|
|
15612
15604
|
if (target.closest("td") || target.closest("th")) {
|
|
@@ -15631,13 +15623,13 @@ function TableContextMenu({ editor }) {
|
|
|
15631
15623
|
const deleteRow = () => editor.chain().focus().deleteRow().run();
|
|
15632
15624
|
const deleteCol = () => editor.chain().focus().deleteColumn().run();
|
|
15633
15625
|
if (!menuPosition) return null;
|
|
15634
|
-
return /* @__PURE__ */
|
|
15626
|
+
return /* @__PURE__ */ _react2.default.createElement(
|
|
15635
15627
|
"ul",
|
|
15636
15628
|
{
|
|
15637
15629
|
className: "absolute bg-white shadow border rounded text-sm z-50",
|
|
15638
15630
|
style: { top: menuPosition.y, left: menuPosition.x }
|
|
15639
15631
|
},
|
|
15640
|
-
/* @__PURE__ */
|
|
15632
|
+
/* @__PURE__ */ _react2.default.createElement(
|
|
15641
15633
|
"li",
|
|
15642
15634
|
{
|
|
15643
15635
|
className: "px-3 py-1 hover:bg-gray-100 cursor-pointer",
|
|
@@ -15645,7 +15637,7 @@ function TableContextMenu({ editor }) {
|
|
|
15645
15637
|
},
|
|
15646
15638
|
"Insert Row Above"
|
|
15647
15639
|
),
|
|
15648
|
-
/* @__PURE__ */
|
|
15640
|
+
/* @__PURE__ */ _react2.default.createElement(
|
|
15649
15641
|
"li",
|
|
15650
15642
|
{
|
|
15651
15643
|
className: "px-3 py-1 hover:bg-gray-100 cursor-pointer",
|
|
@@ -15653,7 +15645,7 @@ function TableContextMenu({ editor }) {
|
|
|
15653
15645
|
},
|
|
15654
15646
|
"Insert Row Below"
|
|
15655
15647
|
),
|
|
15656
|
-
/* @__PURE__ */
|
|
15648
|
+
/* @__PURE__ */ _react2.default.createElement(
|
|
15657
15649
|
"li",
|
|
15658
15650
|
{
|
|
15659
15651
|
className: "px-3 py-1 hover:bg-gray-100 cursor-pointer",
|
|
@@ -15661,7 +15653,7 @@ function TableContextMenu({ editor }) {
|
|
|
15661
15653
|
},
|
|
15662
15654
|
"Insert Column Left"
|
|
15663
15655
|
),
|
|
15664
|
-
/* @__PURE__ */
|
|
15656
|
+
/* @__PURE__ */ _react2.default.createElement(
|
|
15665
15657
|
"li",
|
|
15666
15658
|
{
|
|
15667
15659
|
className: "px-3 py-1 hover:bg-gray-100 cursor-pointer",
|
|
@@ -15669,7 +15661,7 @@ function TableContextMenu({ editor }) {
|
|
|
15669
15661
|
},
|
|
15670
15662
|
"Insert Column Right"
|
|
15671
15663
|
),
|
|
15672
|
-
/* @__PURE__ */
|
|
15664
|
+
/* @__PURE__ */ _react2.default.createElement(
|
|
15673
15665
|
"li",
|
|
15674
15666
|
{
|
|
15675
15667
|
className: "px-3 py-1 hover:bg-red-100 cursor-pointer",
|
|
@@ -15677,7 +15669,7 @@ function TableContextMenu({ editor }) {
|
|
|
15677
15669
|
},
|
|
15678
15670
|
"Delete Row"
|
|
15679
15671
|
),
|
|
15680
|
-
/* @__PURE__ */
|
|
15672
|
+
/* @__PURE__ */ _react2.default.createElement(
|
|
15681
15673
|
"li",
|
|
15682
15674
|
{
|
|
15683
15675
|
className: "px-3 py-1 hover:bg-red-100 cursor-pointer",
|
|
@@ -15689,34 +15681,34 @@ function TableContextMenu({ editor }) {
|
|
|
15689
15681
|
}
|
|
15690
15682
|
|
|
15691
15683
|
// src/components/tetrons/toolbar/TetronsToolbar.tsx
|
|
15692
|
-
|
|
15684
|
+
|
|
15693
15685
|
|
|
15694
15686
|
// src/components/tetrons/toolbar/ActionGroup.tsx
|
|
15695
|
-
|
|
15696
|
-
|
|
15697
|
-
|
|
15698
|
-
|
|
15699
|
-
|
|
15700
|
-
|
|
15701
|
-
|
|
15702
|
-
|
|
15687
|
+
|
|
15688
|
+
|
|
15689
|
+
|
|
15690
|
+
|
|
15691
|
+
|
|
15692
|
+
|
|
15693
|
+
|
|
15694
|
+
var _md = require('react-icons/md');
|
|
15703
15695
|
|
|
15704
15696
|
// src/components/tetrons/toolbar/ToolbarButton.tsx
|
|
15705
|
-
|
|
15706
|
-
var ToolbarButton =
|
|
15697
|
+
|
|
15698
|
+
var ToolbarButton = _react2.default.forwardRef(
|
|
15707
15699
|
({ icon: Icon, onClick, disabled = false, title, label, isActive = false }, ref) => {
|
|
15708
|
-
return /* @__PURE__ */
|
|
15700
|
+
return /* @__PURE__ */ _react2.default.createElement(
|
|
15709
15701
|
"button",
|
|
15710
15702
|
{
|
|
15711
15703
|
type: "button",
|
|
15712
15704
|
ref,
|
|
15713
15705
|
onClick,
|
|
15714
15706
|
disabled,
|
|
15715
|
-
title: title
|
|
15716
|
-
"aria-label": title
|
|
15707
|
+
title: _nullishCoalesce(title, () => ( label)),
|
|
15708
|
+
"aria-label": _nullishCoalesce(title, () => ( label)),
|
|
15717
15709
|
className: `toolbar-button ${isActive ? "active" : ""}`
|
|
15718
15710
|
},
|
|
15719
|
-
/* @__PURE__ */
|
|
15711
|
+
/* @__PURE__ */ _react2.default.createElement(Icon, { size: 20 })
|
|
15720
15712
|
);
|
|
15721
15713
|
}
|
|
15722
15714
|
);
|
|
@@ -15725,9 +15717,9 @@ var ToolbarButton_default = ToolbarButton;
|
|
|
15725
15717
|
|
|
15726
15718
|
// src/components/tetrons/toolbar/ActionGroup.tsx
|
|
15727
15719
|
function ActionGroup({ editor }) {
|
|
15728
|
-
const [dropdownOpen, setDropdownOpen] =
|
|
15729
|
-
const dropdownRef =
|
|
15730
|
-
|
|
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, () => {
|
|
15731
15723
|
const handleClickOutside = (event) => {
|
|
15732
15724
|
if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {
|
|
15733
15725
|
setDropdownOpen(false);
|
|
@@ -15805,7 +15797,7 @@ function ActionGroup({ editor }) {
|
|
|
15805
15797
|
container.classList.add("p-4", "prose");
|
|
15806
15798
|
document.body.appendChild(container);
|
|
15807
15799
|
try {
|
|
15808
|
-
const domToPdf = (await
|
|
15800
|
+
const domToPdf = (await Promise.resolve().then(() => _interopRequireWildcard(require("dom-to-pdf")))).default;
|
|
15809
15801
|
const options = {
|
|
15810
15802
|
filename: "document.pdf",
|
|
15811
15803
|
overrideWidth: 800,
|
|
@@ -15832,7 +15824,7 @@ function ActionGroup({ editor }) {
|
|
|
15832
15824
|
document.body.removeChild(link);
|
|
15833
15825
|
};
|
|
15834
15826
|
const handleDownloadDOCX = async () => {
|
|
15835
|
-
const { Document: Document2, Packer, Paragraph: Paragraph2 } = await
|
|
15827
|
+
const { Document: Document2, Packer, Paragraph: Paragraph2 } = await Promise.resolve().then(() => _interopRequireWildcard(require("docx")));
|
|
15836
15828
|
const text = editor.getText();
|
|
15837
15829
|
const doc3 = new Document2({
|
|
15838
15830
|
sections: [
|
|
@@ -15850,7 +15842,7 @@ function ActionGroup({ editor }) {
|
|
|
15850
15842
|
link.click();
|
|
15851
15843
|
document.body.removeChild(link);
|
|
15852
15844
|
};
|
|
15853
|
-
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(
|
|
15854
15846
|
"button",
|
|
15855
15847
|
{
|
|
15856
15848
|
type: "button",
|
|
@@ -15860,9 +15852,9 @@ function ActionGroup({ editor }) {
|
|
|
15860
15852
|
className: "export-button",
|
|
15861
15853
|
title: "Export"
|
|
15862
15854
|
},
|
|
15863
|
-
/* @__PURE__ */
|
|
15864
|
-
/* @__PURE__ */
|
|
15865
|
-
), 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(
|
|
15866
15858
|
"button",
|
|
15867
15859
|
{
|
|
15868
15860
|
type: "button",
|
|
@@ -15872,7 +15864,7 @@ function ActionGroup({ editor }) {
|
|
|
15872
15864
|
}
|
|
15873
15865
|
},
|
|
15874
15866
|
"Export as PDF"
|
|
15875
|
-
), /* @__PURE__ */
|
|
15867
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
15876
15868
|
"button",
|
|
15877
15869
|
{
|
|
15878
15870
|
type: "button",
|
|
@@ -15882,7 +15874,7 @@ function ActionGroup({ editor }) {
|
|
|
15882
15874
|
}
|
|
15883
15875
|
},
|
|
15884
15876
|
"Export as HTML"
|
|
15885
|
-
), /* @__PURE__ */
|
|
15877
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
15886
15878
|
"button",
|
|
15887
15879
|
{
|
|
15888
15880
|
type: "button",
|
|
@@ -15896,18 +15888,18 @@ function ActionGroup({ editor }) {
|
|
|
15896
15888
|
}
|
|
15897
15889
|
|
|
15898
15890
|
// src/components/tetrons/toolbar/ClipboardGroup.tsx
|
|
15899
|
-
|
|
15900
|
-
|
|
15901
|
-
|
|
15902
|
-
|
|
15903
|
-
|
|
15904
|
-
|
|
15905
|
-
|
|
15891
|
+
|
|
15892
|
+
|
|
15893
|
+
|
|
15894
|
+
|
|
15895
|
+
|
|
15896
|
+
|
|
15897
|
+
|
|
15906
15898
|
function ClipboardGroup({ editor }) {
|
|
15907
|
-
return /* @__PURE__ */
|
|
15899
|
+
return /* @__PURE__ */ _react2.default.createElement("div", { className: "clipboard-group" }, /* @__PURE__ */ _react2.default.createElement(
|
|
15908
15900
|
ToolbarButton_default,
|
|
15909
15901
|
{
|
|
15910
|
-
icon: MdContentPaste,
|
|
15902
|
+
icon: _md.MdContentPaste,
|
|
15911
15903
|
title: "Paste",
|
|
15912
15904
|
onClick: async () => {
|
|
15913
15905
|
try {
|
|
@@ -15918,10 +15910,10 @@ function ClipboardGroup({ editor }) {
|
|
|
15918
15910
|
}
|
|
15919
15911
|
}
|
|
15920
15912
|
}
|
|
15921
|
-
), /* @__PURE__ */
|
|
15913
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
15922
15914
|
ToolbarButton_default,
|
|
15923
15915
|
{
|
|
15924
|
-
icon: MdContentCut,
|
|
15916
|
+
icon: _md.MdContentCut,
|
|
15925
15917
|
title: "Cut",
|
|
15926
15918
|
onClick: () => {
|
|
15927
15919
|
const { from: from2, to } = editor.state.selection;
|
|
@@ -15932,10 +15924,10 @@ function ClipboardGroup({ editor }) {
|
|
|
15932
15924
|
});
|
|
15933
15925
|
}
|
|
15934
15926
|
}
|
|
15935
|
-
), /* @__PURE__ */
|
|
15927
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
15936
15928
|
ToolbarButton_default,
|
|
15937
15929
|
{
|
|
15938
|
-
icon: MdContentCopy,
|
|
15930
|
+
icon: _md.MdContentCopy,
|
|
15939
15931
|
title: "Copy",
|
|
15940
15932
|
onClick: () => {
|
|
15941
15933
|
const { from: from2, to } = editor.state.selection;
|
|
@@ -15944,10 +15936,10 @@ function ClipboardGroup({ editor }) {
|
|
|
15944
15936
|
navigator.clipboard.writeText(selectedText);
|
|
15945
15937
|
}
|
|
15946
15938
|
}
|
|
15947
|
-
), /* @__PURE__ */
|
|
15939
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
15948
15940
|
ToolbarButton_default,
|
|
15949
15941
|
{
|
|
15950
|
-
icon: MdFormatPaint,
|
|
15942
|
+
icon: _md.MdFormatPaint,
|
|
15951
15943
|
title: "Format Painter",
|
|
15952
15944
|
onClick: () => {
|
|
15953
15945
|
const currentMarks = editor.getAttributes("textStyle");
|
|
@@ -15958,34 +15950,34 @@ function ClipboardGroup({ editor }) {
|
|
|
15958
15950
|
}
|
|
15959
15951
|
|
|
15960
15952
|
// src/components/tetrons/toolbar/FontStyleGroup.tsx
|
|
15961
|
-
|
|
15962
|
-
|
|
15963
|
-
|
|
15964
|
-
|
|
15965
|
-
|
|
15966
|
-
|
|
15967
|
-
|
|
15968
|
-
|
|
15969
|
-
|
|
15970
|
-
|
|
15971
|
-
|
|
15972
|
-
|
|
15973
|
-
|
|
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
|
+
|
|
15974
15966
|
function FontStyleGroup({ editor }) {
|
|
15975
|
-
const [textColor, setTextColor] =
|
|
15976
|
-
const [highlightColor, setHighlightColor] =
|
|
15977
|
-
const [fontFamily, setFontFamily] =
|
|
15978
|
-
const [fontSize, setFontSize] =
|
|
15979
|
-
|
|
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, () => {
|
|
15980
15972
|
if (!editor) return;
|
|
15981
15973
|
const updateStates = () => {
|
|
15982
15974
|
const highlight = editor.getAttributes("highlight");
|
|
15983
|
-
setHighlightColor(highlight
|
|
15984
|
-
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]);
|
|
15985
15977
|
setTextColor(color || "#000000");
|
|
15986
|
-
const fontAttr = editor.getAttributes("fontFamily")
|
|
15978
|
+
const fontAttr = _optionalChain([editor, 'access', _11 => _11.getAttributes, 'call', _12 => _12("fontFamily"), 'optionalAccess', _13 => _13.font]) || "Arial";
|
|
15987
15979
|
setFontFamily(fontAttr);
|
|
15988
|
-
const sizeAttr = editor.getAttributes("fontSize")
|
|
15980
|
+
const sizeAttr = _optionalChain([editor, 'access', _14 => _14.getAttributes, 'call', _15 => _15("fontSize"), 'optionalAccess', _16 => _16.size]) || "16px";
|
|
15989
15981
|
setFontSize(sizeAttr);
|
|
15990
15982
|
};
|
|
15991
15983
|
updateStates();
|
|
@@ -15996,7 +15988,7 @@ function FontStyleGroup({ editor }) {
|
|
|
15996
15988
|
editor.off("transaction", updateStates);
|
|
15997
15989
|
};
|
|
15998
15990
|
}, [editor]);
|
|
15999
|
-
return /* @__PURE__ */
|
|
15991
|
+
return /* @__PURE__ */ _react2.default.createElement("div", { className: "font-style-group" }, /* @__PURE__ */ _react2.default.createElement(
|
|
16000
15992
|
"select",
|
|
16001
15993
|
{
|
|
16002
15994
|
title: "Font Family",
|
|
@@ -16007,12 +15999,12 @@ function FontStyleGroup({ editor }) {
|
|
|
16007
15999
|
editor.chain().focus().setFontFamily(value).run();
|
|
16008
16000
|
}
|
|
16009
16001
|
},
|
|
16010
|
-
/* @__PURE__ */
|
|
16011
|
-
/* @__PURE__ */
|
|
16012
|
-
/* @__PURE__ */
|
|
16013
|
-
/* @__PURE__ */
|
|
16014
|
-
/* @__PURE__ */
|
|
16015
|
-
), /* @__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(
|
|
16016
16008
|
"select",
|
|
16017
16009
|
{
|
|
16018
16010
|
title: "Font Size",
|
|
@@ -16023,64 +16015,64 @@ function FontStyleGroup({ editor }) {
|
|
|
16023
16015
|
editor.chain().focus().setFontSize(value).run();
|
|
16024
16016
|
}
|
|
16025
16017
|
},
|
|
16026
|
-
/* @__PURE__ */
|
|
16027
|
-
/* @__PURE__ */
|
|
16028
|
-
/* @__PURE__ */
|
|
16029
|
-
/* @__PURE__ */
|
|
16030
|
-
/* @__PURE__ */
|
|
16031
|
-
/* @__PURE__ */
|
|
16032
|
-
/* @__PURE__ */
|
|
16033
|
-
/* @__PURE__ */
|
|
16034
|
-
/* @__PURE__ */
|
|
16035
|
-
), /* @__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(
|
|
16036
16028
|
ToolbarButton_default,
|
|
16037
16029
|
{
|
|
16038
|
-
icon: MdFormatBold,
|
|
16030
|
+
icon: _md.MdFormatBold,
|
|
16039
16031
|
label: "Bold",
|
|
16040
16032
|
onClick: () => editor.chain().focus().toggleBold().run(),
|
|
16041
16033
|
isActive: editor.isActive("bold")
|
|
16042
16034
|
}
|
|
16043
|
-
), /* @__PURE__ */
|
|
16035
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16044
16036
|
ToolbarButton_default,
|
|
16045
16037
|
{
|
|
16046
|
-
icon: MdFormatItalic,
|
|
16038
|
+
icon: _md.MdFormatItalic,
|
|
16047
16039
|
label: "Italic",
|
|
16048
16040
|
onClick: () => editor.chain().focus().toggleItalic().run(),
|
|
16049
16041
|
isActive: editor.isActive("italic")
|
|
16050
16042
|
}
|
|
16051
|
-
), /* @__PURE__ */
|
|
16043
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16052
16044
|
ToolbarButton_default,
|
|
16053
16045
|
{
|
|
16054
|
-
icon: MdFormatUnderlined,
|
|
16046
|
+
icon: _md.MdFormatUnderlined,
|
|
16055
16047
|
label: "Underline",
|
|
16056
16048
|
onClick: () => editor.chain().focus().toggleUnderline().run(),
|
|
16057
16049
|
isActive: editor.isActive("underline")
|
|
16058
16050
|
}
|
|
16059
|
-
), /* @__PURE__ */
|
|
16051
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16060
16052
|
ToolbarButton_default,
|
|
16061
16053
|
{
|
|
16062
|
-
icon: MdStrikethroughS,
|
|
16054
|
+
icon: _md.MdStrikethroughS,
|
|
16063
16055
|
label: "Strikethrough",
|
|
16064
16056
|
onClick: () => editor.chain().focus().toggleStrike().run(),
|
|
16065
16057
|
isActive: editor.isActive("strike")
|
|
16066
16058
|
}
|
|
16067
|
-
), /* @__PURE__ */
|
|
16059
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16068
16060
|
ToolbarButton_default,
|
|
16069
16061
|
{
|
|
16070
|
-
icon: MdSubscript,
|
|
16062
|
+
icon: _md.MdSubscript,
|
|
16071
16063
|
label: "Subscript",
|
|
16072
16064
|
onClick: () => editor.chain().focus().toggleSubscript().run(),
|
|
16073
16065
|
isActive: editor.isActive("subscript")
|
|
16074
16066
|
}
|
|
16075
|
-
), /* @__PURE__ */
|
|
16067
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16076
16068
|
ToolbarButton_default,
|
|
16077
16069
|
{
|
|
16078
|
-
icon: MdSuperscript,
|
|
16070
|
+
icon: _md.MdSuperscript,
|
|
16079
16071
|
label: "Superscript",
|
|
16080
16072
|
onClick: () => editor.chain().focus().toggleSuperscript().run(),
|
|
16081
16073
|
isActive: editor.isActive("superscript")
|
|
16082
16074
|
}
|
|
16083
|
-
), /* @__PURE__ */
|
|
16075
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16084
16076
|
"label",
|
|
16085
16077
|
{
|
|
16086
16078
|
title: "Font Color",
|
|
@@ -16088,9 +16080,9 @@ function FontStyleGroup({ editor }) {
|
|
|
16088
16080
|
className: "color-label",
|
|
16089
16081
|
style: { "--indicator-color": textColor }
|
|
16090
16082
|
},
|
|
16091
|
-
/* @__PURE__ */
|
|
16092
|
-
/* @__PURE__ */
|
|
16093
|
-
/* @__PURE__ */
|
|
16083
|
+
/* @__PURE__ */ _react2.default.createElement(_im.ImTextColor, { size: 20 }),
|
|
16084
|
+
/* @__PURE__ */ _react2.default.createElement("div", { className: "color-indicator" }),
|
|
16085
|
+
/* @__PURE__ */ _react2.default.createElement(
|
|
16094
16086
|
"input",
|
|
16095
16087
|
{
|
|
16096
16088
|
type: "color",
|
|
@@ -16102,7 +16094,7 @@ function FontStyleGroup({ editor }) {
|
|
|
16102
16094
|
}
|
|
16103
16095
|
}
|
|
16104
16096
|
)
|
|
16105
|
-
), /* @__PURE__ */
|
|
16097
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16106
16098
|
"label",
|
|
16107
16099
|
{
|
|
16108
16100
|
title: "Highlight Color",
|
|
@@ -16110,9 +16102,9 @@ function FontStyleGroup({ editor }) {
|
|
|
16110
16102
|
className: "color-label",
|
|
16111
16103
|
style: { "--indicator-color": highlightColor }
|
|
16112
16104
|
},
|
|
16113
|
-
/* @__PURE__ */
|
|
16114
|
-
/* @__PURE__ */
|
|
16115
|
-
/* @__PURE__ */
|
|
16105
|
+
/* @__PURE__ */ _react2.default.createElement(_bi.BiSolidColorFill, { size: 20 }),
|
|
16106
|
+
/* @__PURE__ */ _react2.default.createElement("div", { className: "color-indicator" }),
|
|
16107
|
+
/* @__PURE__ */ _react2.default.createElement(
|
|
16116
16108
|
"input",
|
|
16117
16109
|
{
|
|
16118
16110
|
type: "color",
|
|
@@ -16124,17 +16116,17 @@ function FontStyleGroup({ editor }) {
|
|
|
16124
16116
|
}
|
|
16125
16117
|
}
|
|
16126
16118
|
)
|
|
16127
|
-
), /* @__PURE__ */
|
|
16119
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16128
16120
|
ToolbarButton_default,
|
|
16129
16121
|
{
|
|
16130
|
-
icon: MdFormatClear,
|
|
16122
|
+
icon: _md.MdFormatClear,
|
|
16131
16123
|
label: "Clear Formatting",
|
|
16132
16124
|
onClick: () => editor.chain().focus().unsetAllMarks().run()
|
|
16133
16125
|
}
|
|
16134
|
-
), /* @__PURE__ */
|
|
16126
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16135
16127
|
ToolbarButton_default,
|
|
16136
16128
|
{
|
|
16137
|
-
icon:
|
|
16129
|
+
icon: _md.MdFormatPaint,
|
|
16138
16130
|
label: "Apply Painter Format",
|
|
16139
16131
|
onClick: () => {
|
|
16140
16132
|
const format = JSON.parse(
|
|
@@ -16150,25 +16142,25 @@ function FontStyleGroup({ editor }) {
|
|
|
16150
16142
|
}
|
|
16151
16143
|
|
|
16152
16144
|
// src/components/tetrons/toolbar/InsertGroup.tsx
|
|
16153
|
-
|
|
16154
|
-
|
|
16155
|
-
|
|
16156
|
-
|
|
16157
|
-
|
|
16158
|
-
|
|
16159
|
-
|
|
16160
|
-
|
|
16161
|
-
|
|
16162
|
-
|
|
16163
|
-
|
|
16164
|
-
|
|
16145
|
+
|
|
16146
|
+
|
|
16147
|
+
|
|
16148
|
+
|
|
16149
|
+
|
|
16150
|
+
|
|
16151
|
+
|
|
16152
|
+
|
|
16153
|
+
|
|
16154
|
+
|
|
16155
|
+
|
|
16156
|
+
var _react5 = require('@emoji-mart/react'); var _react6 = _interopRequireDefault(_react5);
|
|
16165
16157
|
function InsertGroup({ editor }) {
|
|
16166
|
-
const [showTableGrid, setShowTableGrid] =
|
|
16167
|
-
const [selectedRows, setSelectedRows] =
|
|
16168
|
-
const [selectedCols, setSelectedCols] =
|
|
16169
|
-
const imageInputRef =
|
|
16170
|
-
const videoInputRef =
|
|
16171
|
-
const [showPicker, setShowPicker] =
|
|
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);
|
|
16172
16164
|
const addEmoji = (emoji) => {
|
|
16173
16165
|
editor.chain().focus().insertContent(emoji.native).run();
|
|
16174
16166
|
setShowPicker(false);
|
|
@@ -16188,7 +16180,7 @@ function InsertGroup({ editor }) {
|
|
|
16188
16180
|
setSelectedCols(1);
|
|
16189
16181
|
};
|
|
16190
16182
|
const handleImageUpload = (e) => {
|
|
16191
|
-
const file = e.target.files
|
|
16183
|
+
const file = _optionalChain([e, 'access', _17 => _17.target, 'access', _18 => _18.files, 'optionalAccess', _19 => _19[0]]);
|
|
16192
16184
|
if (file) {
|
|
16193
16185
|
const reader = new FileReader();
|
|
16194
16186
|
reader.onload = () => {
|
|
@@ -16198,7 +16190,7 @@ function InsertGroup({ editor }) {
|
|
|
16198
16190
|
}
|
|
16199
16191
|
};
|
|
16200
16192
|
const handleVideoUpload = (e) => {
|
|
16201
|
-
const file = e.target.files
|
|
16193
|
+
const file = _optionalChain([e, 'access', _20 => _20.target, 'access', _21 => _21.files, 'optionalAccess', _22 => _22[0]]);
|
|
16202
16194
|
if (file) {
|
|
16203
16195
|
const reader = new FileReader();
|
|
16204
16196
|
reader.onload = () => {
|
|
@@ -16233,11 +16225,11 @@ function InsertGroup({ editor }) {
|
|
|
16233
16225
|
return url.replace("/maps/", "/maps/embed/");
|
|
16234
16226
|
}
|
|
16235
16227
|
return url;
|
|
16236
|
-
} catch {
|
|
16228
|
+
} catch (e2) {
|
|
16237
16229
|
return url;
|
|
16238
16230
|
}
|
|
16239
16231
|
}
|
|
16240
|
-
return /* @__PURE__ */
|
|
16232
|
+
return /* @__PURE__ */ _react2.default.createElement("div", { className: "insert-group" }, /* @__PURE__ */ _react2.default.createElement(
|
|
16241
16233
|
"input",
|
|
16242
16234
|
{
|
|
16243
16235
|
type: "file",
|
|
@@ -16248,7 +16240,7 @@ function InsertGroup({ editor }) {
|
|
|
16248
16240
|
"aria-label": "Upload Image",
|
|
16249
16241
|
title: "Upload Image"
|
|
16250
16242
|
}
|
|
16251
|
-
), /* @__PURE__ */
|
|
16243
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16252
16244
|
"input",
|
|
16253
16245
|
{
|
|
16254
16246
|
type: "file",
|
|
@@ -16259,23 +16251,23 @@ function InsertGroup({ editor }) {
|
|
|
16259
16251
|
"aria-label": "Upload Video",
|
|
16260
16252
|
title: "Upload Video"
|
|
16261
16253
|
}
|
|
16262
|
-
), /* @__PURE__ */
|
|
16254
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16263
16255
|
ToolbarButton_default,
|
|
16264
16256
|
{
|
|
16265
|
-
icon: MdTableChart,
|
|
16257
|
+
icon: _md.MdTableChart,
|
|
16266
16258
|
label: "Insert Table",
|
|
16267
16259
|
onClick: () => setShowTableGrid(!showTableGrid)
|
|
16268
16260
|
}
|
|
16269
|
-
), showTableGrid && /* @__PURE__ */
|
|
16261
|
+
), showTableGrid && /* @__PURE__ */ _react2.default.createElement(
|
|
16270
16262
|
"div",
|
|
16271
16263
|
{
|
|
16272
16264
|
className: "table-grid-popup",
|
|
16273
16265
|
onMouseLeave: () => setShowTableGrid(false)
|
|
16274
16266
|
},
|
|
16275
|
-
/* @__PURE__ */
|
|
16267
|
+
/* @__PURE__ */ _react2.default.createElement("div", { className: "table-grid" }, [...Array(10)].map(
|
|
16276
16268
|
(_, row) => [...Array(10)].map((_2, col) => {
|
|
16277
16269
|
const isSelected = row < selectedRows && col < selectedCols;
|
|
16278
|
-
return /* @__PURE__ */
|
|
16270
|
+
return /* @__PURE__ */ _react2.default.createElement(
|
|
16279
16271
|
"div",
|
|
16280
16272
|
{
|
|
16281
16273
|
key: `${row}-${col}`,
|
|
@@ -16286,25 +16278,25 @@ function InsertGroup({ editor }) {
|
|
|
16286
16278
|
);
|
|
16287
16279
|
})
|
|
16288
16280
|
)),
|
|
16289
|
-
/* @__PURE__ */
|
|
16290
|
-
), /* @__PURE__ */
|
|
16281
|
+
/* @__PURE__ */ _react2.default.createElement("div", { className: "table-grid-label" }, selectedRows, " x ", selectedCols)
|
|
16282
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16291
16283
|
ToolbarButton_default,
|
|
16292
16284
|
{
|
|
16293
|
-
icon: MdInsertPhoto,
|
|
16285
|
+
icon: _md.MdInsertPhoto,
|
|
16294
16286
|
label: "Insert Image",
|
|
16295
|
-
onClick: () => imageInputRef.current
|
|
16287
|
+
onClick: () => _optionalChain([imageInputRef, 'access', _23 => _23.current, 'optionalAccess', _24 => _24.click, 'call', _25 => _25()])
|
|
16296
16288
|
}
|
|
16297
|
-
), /* @__PURE__ */
|
|
16289
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16298
16290
|
ToolbarButton_default,
|
|
16299
16291
|
{
|
|
16300
|
-
icon: MdVideoLibrary,
|
|
16292
|
+
icon: _md.MdVideoLibrary,
|
|
16301
16293
|
label: "Insert Video",
|
|
16302
|
-
onClick: () => videoInputRef.current
|
|
16294
|
+
onClick: () => _optionalChain([videoInputRef, 'access', _26 => _26.current, 'optionalAccess', _27 => _27.click, 'call', _28 => _28()])
|
|
16303
16295
|
}
|
|
16304
|
-
), /* @__PURE__ */
|
|
16296
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16305
16297
|
ToolbarButton_default,
|
|
16306
16298
|
{
|
|
16307
|
-
icon: MdInsertLink,
|
|
16299
|
+
icon: _md.MdInsertLink,
|
|
16308
16300
|
label: "Insert Link",
|
|
16309
16301
|
onClick: () => {
|
|
16310
16302
|
const url = prompt("Enter URL");
|
|
@@ -16313,10 +16305,10 @@ function InsertGroup({ editor }) {
|
|
|
16313
16305
|
}
|
|
16314
16306
|
}
|
|
16315
16307
|
}
|
|
16316
|
-
), /* @__PURE__ */
|
|
16308
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16317
16309
|
ToolbarButton_default,
|
|
16318
16310
|
{
|
|
16319
|
-
icon: MdInsertComment,
|
|
16311
|
+
icon: _md.MdInsertComment,
|
|
16320
16312
|
label: "Insert Comment",
|
|
16321
16313
|
onClick: () => {
|
|
16322
16314
|
const comment = prompt("Enter your comment");
|
|
@@ -16327,15 +16319,15 @@ function InsertGroup({ editor }) {
|
|
|
16327
16319
|
}
|
|
16328
16320
|
}
|
|
16329
16321
|
}
|
|
16330
|
-
), /* @__PURE__ */
|
|
16322
|
+
), /* @__PURE__ */ _react2.default.createElement("div", { className: "relative" }, /* @__PURE__ */ _react2.default.createElement(
|
|
16331
16323
|
ToolbarButton_default,
|
|
16332
16324
|
{
|
|
16333
|
-
icon: MdInsertEmoticon,
|
|
16325
|
+
icon: _md.MdInsertEmoticon,
|
|
16334
16326
|
label: "Emoji",
|
|
16335
16327
|
onClick: () => setShowPicker(!showPicker)
|
|
16336
16328
|
}
|
|
16337
|
-
), showPicker && /* @__PURE__ */
|
|
16338
|
-
|
|
16329
|
+
), showPicker && /* @__PURE__ */ _react2.default.createElement("div", { className: "emoji-picker" }, /* @__PURE__ */ _react2.default.createElement(
|
|
16330
|
+
_react6.default,
|
|
16339
16331
|
{
|
|
16340
16332
|
onEmojiSelect: addEmoji,
|
|
16341
16333
|
theme: "auto",
|
|
@@ -16344,17 +16336,17 @@ function InsertGroup({ editor }) {
|
|
|
16344
16336
|
showSkinTones: true,
|
|
16345
16337
|
emojiTooltip: true
|
|
16346
16338
|
}
|
|
16347
|
-
))), /* @__PURE__ */
|
|
16339
|
+
))), /* @__PURE__ */ _react2.default.createElement(
|
|
16348
16340
|
ToolbarButton_default,
|
|
16349
16341
|
{
|
|
16350
|
-
icon: MdHorizontalRule,
|
|
16342
|
+
icon: _md.MdHorizontalRule,
|
|
16351
16343
|
label: "Horizontal Line",
|
|
16352
16344
|
onClick: () => editor.chain().focus().setHorizontalRule().run()
|
|
16353
16345
|
}
|
|
16354
|
-
), /* @__PURE__ */
|
|
16346
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16355
16347
|
ToolbarButton_default,
|
|
16356
16348
|
{
|
|
16357
|
-
icon: MdOutlineOndemandVideo,
|
|
16349
|
+
icon: _md.MdOutlineOndemandVideo,
|
|
16358
16350
|
label: "Embed",
|
|
16359
16351
|
onClick: () => {
|
|
16360
16352
|
const url = prompt(
|
|
@@ -16375,78 +16367,78 @@ function InsertGroup({ editor }) {
|
|
|
16375
16367
|
}
|
|
16376
16368
|
|
|
16377
16369
|
// src/components/tetrons/toolbar/ListAlignGroup.tsx
|
|
16378
|
-
|
|
16379
|
-
|
|
16380
|
-
|
|
16381
|
-
|
|
16382
|
-
|
|
16383
|
-
|
|
16384
|
-
|
|
16385
|
-
|
|
16386
|
-
|
|
16387
|
-
|
|
16388
|
-
|
|
16370
|
+
|
|
16371
|
+
|
|
16372
|
+
|
|
16373
|
+
|
|
16374
|
+
|
|
16375
|
+
|
|
16376
|
+
|
|
16377
|
+
|
|
16378
|
+
|
|
16379
|
+
|
|
16380
|
+
|
|
16389
16381
|
function ListAlignGroup({ editor }) {
|
|
16390
|
-
return /* @__PURE__ */
|
|
16382
|
+
return /* @__PURE__ */ _react2.default.createElement("div", { className: "list-align-group" }, /* @__PURE__ */ _react2.default.createElement(
|
|
16391
16383
|
ToolbarButton_default,
|
|
16392
16384
|
{
|
|
16393
|
-
icon: MdFormatListBulleted,
|
|
16385
|
+
icon: _md.MdFormatListBulleted,
|
|
16394
16386
|
title: "Bulleted List",
|
|
16395
16387
|
onClick: () => editor.chain().focus().toggleBulletList().run(),
|
|
16396
16388
|
disabled: !editor.can().toggleBulletList()
|
|
16397
16389
|
}
|
|
16398
|
-
), /* @__PURE__ */
|
|
16390
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16399
16391
|
ToolbarButton_default,
|
|
16400
16392
|
{
|
|
16401
|
-
icon: MdFormatListNumbered,
|
|
16393
|
+
icon: _md.MdFormatListNumbered,
|
|
16402
16394
|
title: "Numbered List",
|
|
16403
16395
|
onClick: () => editor.chain().focus().toggleOrderedList().run(),
|
|
16404
16396
|
disabled: !editor.can().toggleOrderedList()
|
|
16405
16397
|
}
|
|
16406
|
-
), /* @__PURE__ */
|
|
16398
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16407
16399
|
ToolbarButton_default,
|
|
16408
16400
|
{
|
|
16409
|
-
icon: MdFormatIndentIncrease,
|
|
16401
|
+
icon: _md.MdFormatIndentIncrease,
|
|
16410
16402
|
title: "Increase Indent",
|
|
16411
16403
|
onClick: () => editor.chain().focus().sinkListItem("listItem").run(),
|
|
16412
16404
|
disabled: !editor.can().sinkListItem("listItem")
|
|
16413
16405
|
}
|
|
16414
|
-
), /* @__PURE__ */
|
|
16406
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16415
16407
|
ToolbarButton_default,
|
|
16416
16408
|
{
|
|
16417
|
-
icon: MdFormatIndentDecrease,
|
|
16409
|
+
icon: _md.MdFormatIndentDecrease,
|
|
16418
16410
|
title: "Decrease Indent",
|
|
16419
16411
|
onClick: () => editor.chain().focus().liftListItem("listItem").run(),
|
|
16420
16412
|
disabled: !editor.can().liftListItem("listItem")
|
|
16421
16413
|
}
|
|
16422
|
-
), /* @__PURE__ */
|
|
16414
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16423
16415
|
ToolbarButton_default,
|
|
16424
16416
|
{
|
|
16425
|
-
icon: MdFormatAlignLeft,
|
|
16417
|
+
icon: _md.MdFormatAlignLeft,
|
|
16426
16418
|
title: "Align Left",
|
|
16427
16419
|
onClick: () => editor.chain().focus().setTextAlign("left").run(),
|
|
16428
16420
|
disabled: !editor.can().setTextAlign("left")
|
|
16429
16421
|
}
|
|
16430
|
-
), /* @__PURE__ */
|
|
16422
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16431
16423
|
ToolbarButton_default,
|
|
16432
16424
|
{
|
|
16433
|
-
icon: MdFormatAlignCenter,
|
|
16425
|
+
icon: _md.MdFormatAlignCenter,
|
|
16434
16426
|
title: "Align Center",
|
|
16435
16427
|
onClick: () => editor.chain().focus().setTextAlign("center").run(),
|
|
16436
16428
|
disabled: !editor.can().setTextAlign("center")
|
|
16437
16429
|
}
|
|
16438
|
-
), /* @__PURE__ */
|
|
16430
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16439
16431
|
ToolbarButton_default,
|
|
16440
16432
|
{
|
|
16441
|
-
icon: MdFormatAlignRight,
|
|
16433
|
+
icon: _md.MdFormatAlignRight,
|
|
16442
16434
|
title: "Align Right",
|
|
16443
16435
|
onClick: () => editor.chain().focus().setTextAlign("right").run(),
|
|
16444
16436
|
disabled: !editor.can().setTextAlign("right")
|
|
16445
16437
|
}
|
|
16446
|
-
), /* @__PURE__ */
|
|
16438
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16447
16439
|
ToolbarButton_default,
|
|
16448
16440
|
{
|
|
16449
|
-
icon: MdFormatAlignJustify,
|
|
16441
|
+
icon: _md.MdFormatAlignJustify,
|
|
16450
16442
|
title: "Justify",
|
|
16451
16443
|
onClick: () => editor.chain().focus().setTextAlign("justify").run(),
|
|
16452
16444
|
disabled: !editor.can().setTextAlign("justify")
|
|
@@ -16455,15 +16447,15 @@ function ListAlignGroup({ editor }) {
|
|
|
16455
16447
|
}
|
|
16456
16448
|
|
|
16457
16449
|
// src/components/tetrons/toolbar/MiscGroup.tsx
|
|
16458
|
-
|
|
16459
|
-
|
|
16460
|
-
|
|
16461
|
-
|
|
16462
|
-
|
|
16463
|
-
|
|
16464
|
-
|
|
16465
|
-
|
|
16466
|
-
|
|
16450
|
+
|
|
16451
|
+
|
|
16452
|
+
|
|
16453
|
+
|
|
16454
|
+
|
|
16455
|
+
|
|
16456
|
+
|
|
16457
|
+
|
|
16458
|
+
|
|
16467
16459
|
|
|
16468
16460
|
// src/utils/checkGrammar.ts
|
|
16469
16461
|
async function checkGrammar(text) {
|
|
@@ -16528,48 +16520,48 @@ Reason: ${issue.message}
|
|
|
16528
16520
|
alert("\u274C Failed to check grammar. Please try again later.");
|
|
16529
16521
|
}
|
|
16530
16522
|
};
|
|
16531
|
-
return /* @__PURE__ */
|
|
16523
|
+
return /* @__PURE__ */ _react2.default.createElement("div", { className: "misc-group" }, /* @__PURE__ */ _react2.default.createElement(
|
|
16532
16524
|
ToolbarButton_default,
|
|
16533
16525
|
{
|
|
16534
|
-
icon: MdUndo,
|
|
16526
|
+
icon: _md.MdUndo,
|
|
16535
16527
|
label: "Undo",
|
|
16536
16528
|
onClick: () => editor.chain().focus().undo().run(),
|
|
16537
16529
|
disabled: !editor.can().undo()
|
|
16538
16530
|
}
|
|
16539
|
-
), /* @__PURE__ */
|
|
16531
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16540
16532
|
ToolbarButton_default,
|
|
16541
16533
|
{
|
|
16542
|
-
icon: MdRedo,
|
|
16534
|
+
icon: _md.MdRedo,
|
|
16543
16535
|
label: "Redo",
|
|
16544
16536
|
onClick: () => editor.chain().focus().redo().run(),
|
|
16545
16537
|
disabled: !editor.can().redo()
|
|
16546
16538
|
}
|
|
16547
|
-
), /* @__PURE__ */
|
|
16539
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16548
16540
|
ToolbarButton_default,
|
|
16549
16541
|
{
|
|
16550
|
-
icon: MdRefresh,
|
|
16542
|
+
icon: _md.MdRefresh,
|
|
16551
16543
|
label: "Reset Formatting",
|
|
16552
16544
|
onClick: () => editor.chain().focus().unsetAllMarks().clearNodes().run()
|
|
16553
16545
|
}
|
|
16554
|
-
), /* @__PURE__ */
|
|
16546
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16555
16547
|
ToolbarButton_default,
|
|
16556
16548
|
{
|
|
16557
|
-
icon: MdCode,
|
|
16549
|
+
icon: _md.MdCode,
|
|
16558
16550
|
label: "Toggle Code Block",
|
|
16559
16551
|
onClick: () => editor.chain().focus().toggleCodeBlock().run(),
|
|
16560
16552
|
isActive: editor.isActive("codeBlock")
|
|
16561
16553
|
}
|
|
16562
|
-
), /* @__PURE__ */
|
|
16554
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16563
16555
|
ToolbarButton_default,
|
|
16564
16556
|
{
|
|
16565
|
-
icon: MdVisibility,
|
|
16557
|
+
icon: _md.MdVisibility,
|
|
16566
16558
|
label: "Preview",
|
|
16567
16559
|
onClick: handlePreview
|
|
16568
16560
|
}
|
|
16569
|
-
), /* @__PURE__ */
|
|
16561
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16570
16562
|
ToolbarButton_default,
|
|
16571
16563
|
{
|
|
16572
|
-
icon: MdSpellcheck,
|
|
16564
|
+
icon: _md.MdSpellcheck,
|
|
16573
16565
|
label: "Check Grammar",
|
|
16574
16566
|
onClick: handleGrammarCheck
|
|
16575
16567
|
}
|
|
@@ -16577,11 +16569,11 @@ Reason: ${issue.message}
|
|
|
16577
16569
|
}
|
|
16578
16570
|
|
|
16579
16571
|
// src/components/tetrons/toolbar/FileGroup.tsx
|
|
16580
|
-
|
|
16581
|
-
|
|
16582
|
-
|
|
16572
|
+
var _fa = require('react-icons/fa');
|
|
16573
|
+
var _vsc = require('react-icons/vsc');
|
|
16574
|
+
|
|
16583
16575
|
function FileGroup({ editor }) {
|
|
16584
|
-
const fileInputRef =
|
|
16576
|
+
const fileInputRef = _react.useRef.call(void 0, null);
|
|
16585
16577
|
const handleNew = () => {
|
|
16586
16578
|
if (confirm(
|
|
16587
16579
|
"Are you sure you want to create a new document? Unsaved changes will be lost."
|
|
@@ -16590,10 +16582,10 @@ function FileGroup({ editor }) {
|
|
|
16590
16582
|
}
|
|
16591
16583
|
};
|
|
16592
16584
|
const handleOpen = () => {
|
|
16593
|
-
fileInputRef.current
|
|
16585
|
+
_optionalChain([fileInputRef, 'access', _29 => _29.current, 'optionalAccess', _30 => _30.click, 'call', _31 => _31()]);
|
|
16594
16586
|
};
|
|
16595
16587
|
const handleFileChange = async (e) => {
|
|
16596
|
-
const file = e.target.files
|
|
16588
|
+
const file = _optionalChain([e, 'access', _32 => _32.target, 'access', _33 => _33.files, 'optionalAccess', _34 => _34[0]]);
|
|
16597
16589
|
if (!file) return;
|
|
16598
16590
|
try {
|
|
16599
16591
|
const text = await file.text();
|
|
@@ -16608,7 +16600,7 @@ function FileGroup({ editor }) {
|
|
|
16608
16600
|
e.target.value = "";
|
|
16609
16601
|
}
|
|
16610
16602
|
};
|
|
16611
|
-
return /* @__PURE__ */
|
|
16603
|
+
return /* @__PURE__ */ _react2.default.createElement("div", { className: "file-group", role: "group", "aria-label": "File actions" }, /* @__PURE__ */ _react2.default.createElement(
|
|
16612
16604
|
"input",
|
|
16613
16605
|
{
|
|
16614
16606
|
type: "file",
|
|
@@ -16618,10 +16610,10 @@ function FileGroup({ editor }) {
|
|
|
16618
16610
|
className: "hidden",
|
|
16619
16611
|
"aria-label": "Open JSON file"
|
|
16620
16612
|
}
|
|
16621
|
-
), /* @__PURE__ */
|
|
16613
|
+
), /* @__PURE__ */ _react2.default.createElement(ToolbarButton_default, { icon: _vsc.VscNewFile, onClick: handleNew, title: "New" }), /* @__PURE__ */ _react2.default.createElement(
|
|
16622
16614
|
ToolbarButton_default,
|
|
16623
16615
|
{
|
|
16624
|
-
icon: FaRegFolderOpen,
|
|
16616
|
+
icon: _fa.FaRegFolderOpen,
|
|
16625
16617
|
onClick: handleOpen,
|
|
16626
16618
|
title: "Open File"
|
|
16627
16619
|
}
|
|
@@ -16629,21 +16621,21 @@ function FileGroup({ editor }) {
|
|
|
16629
16621
|
}
|
|
16630
16622
|
|
|
16631
16623
|
// src/components/tetrons/toolbar/AIGroup.tsx
|
|
16632
|
-
|
|
16633
|
-
|
|
16634
|
-
|
|
16635
|
-
|
|
16624
|
+
|
|
16625
|
+
|
|
16626
|
+
var _loaders = require('@uiball/loaders');
|
|
16627
|
+
var _framermotion = require('framer-motion');
|
|
16636
16628
|
function AiGroup({ editor }) {
|
|
16637
|
-
const [isRecording, setIsRecording] =
|
|
16638
|
-
const [audioBlob, setAudioBlob] =
|
|
16639
|
-
const [isTranscribing, setIsTranscribing] =
|
|
16640
|
-
const [transcriptionError, setTranscriptionError] =
|
|
16641
|
-
const [showPromptInput, setShowPromptInput] =
|
|
16642
|
-
const [prompt2, setPrompt] =
|
|
16643
|
-
const [isLoadingAI, setIsLoadingAI] =
|
|
16644
|
-
const [aiError, setAiError] =
|
|
16645
|
-
const mediaRecorderRef =
|
|
16646
|
-
const chunksRef =
|
|
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, []);
|
|
16647
16639
|
const startRecording = async () => {
|
|
16648
16640
|
setTranscriptionError("");
|
|
16649
16641
|
setAudioBlob(null);
|
|
@@ -16663,7 +16655,7 @@ function AiGroup({ editor }) {
|
|
|
16663
16655
|
setIsRecording(true);
|
|
16664
16656
|
};
|
|
16665
16657
|
const stopRecording = () => {
|
|
16666
|
-
mediaRecorderRef.current
|
|
16658
|
+
_optionalChain([mediaRecorderRef, 'access', _35 => _35.current, 'optionalAccess', _36 => _36.stop, 'call', _37 => _37()]);
|
|
16667
16659
|
setIsRecording(false);
|
|
16668
16660
|
};
|
|
16669
16661
|
const transcribeAudio = async (blob) => {
|
|
@@ -16716,7 +16708,7 @@ function AiGroup({ editor }) {
|
|
|
16716
16708
|
setIsLoadingAI(false);
|
|
16717
16709
|
}
|
|
16718
16710
|
};
|
|
16719
|
-
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(
|
|
16720
16712
|
"button",
|
|
16721
16713
|
{
|
|
16722
16714
|
type: "button",
|
|
@@ -16724,8 +16716,8 @@ function AiGroup({ editor }) {
|
|
|
16724
16716
|
className: "icon-btn",
|
|
16725
16717
|
title: "Start Voice Input"
|
|
16726
16718
|
},
|
|
16727
|
-
/* @__PURE__ */
|
|
16728
|
-
) : /* @__PURE__ */
|
|
16719
|
+
/* @__PURE__ */ _react2.default.createElement(_fa.FaMicrophone, { size: 18 })
|
|
16720
|
+
) : /* @__PURE__ */ _react2.default.createElement(
|
|
16729
16721
|
"button",
|
|
16730
16722
|
{
|
|
16731
16723
|
type: "button",
|
|
@@ -16733,8 +16725,8 @@ function AiGroup({ editor }) {
|
|
|
16733
16725
|
className: "icon-btn stop-btn",
|
|
16734
16726
|
title: "Stop Recording"
|
|
16735
16727
|
},
|
|
16736
|
-
/* @__PURE__ */
|
|
16737
|
-
), /* @__PURE__ */
|
|
16728
|
+
/* @__PURE__ */ _react2.default.createElement(_fa.FaStop, { size: 18 })
|
|
16729
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16738
16730
|
"button",
|
|
16739
16731
|
{
|
|
16740
16732
|
type: "button",
|
|
@@ -16743,24 +16735,24 @@ function AiGroup({ editor }) {
|
|
|
16743
16735
|
title: "AI Assist"
|
|
16744
16736
|
},
|
|
16745
16737
|
"AI"
|
|
16746
|
-
)), isRecording && /* @__PURE__ */
|
|
16747
|
-
motion.div,
|
|
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,
|
|
16748
16740
|
{
|
|
16749
16741
|
className: "ai-modal-backdrop",
|
|
16750
16742
|
initial: { opacity: 0 },
|
|
16751
16743
|
animate: { opacity: 1 },
|
|
16752
16744
|
exit: { opacity: 0 }
|
|
16753
16745
|
},
|
|
16754
|
-
/* @__PURE__ */
|
|
16755
|
-
motion.div,
|
|
16746
|
+
/* @__PURE__ */ _react2.default.createElement(
|
|
16747
|
+
_framermotion.motion.div,
|
|
16756
16748
|
{
|
|
16757
16749
|
className: "ai-modal-content",
|
|
16758
16750
|
initial: { scale: 0.9, opacity: 0 },
|
|
16759
16751
|
animate: { scale: 1, opacity: 1 },
|
|
16760
16752
|
exit: { scale: 0.9, opacity: 0 }
|
|
16761
16753
|
},
|
|
16762
|
-
/* @__PURE__ */
|
|
16763
|
-
/* @__PURE__ */
|
|
16754
|
+
/* @__PURE__ */ _react2.default.createElement("h2", { className: "ai-modal-title" }, "AI Prompt"),
|
|
16755
|
+
/* @__PURE__ */ _react2.default.createElement(
|
|
16764
16756
|
"textarea",
|
|
16765
16757
|
{
|
|
16766
16758
|
className: "ai-modal-textarea",
|
|
@@ -16769,15 +16761,15 @@ function AiGroup({ editor }) {
|
|
|
16769
16761
|
placeholder: "Enter your prompt here..."
|
|
16770
16762
|
}
|
|
16771
16763
|
),
|
|
16772
|
-
aiError && /* @__PURE__ */
|
|
16773
|
-
/* @__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(
|
|
16774
16766
|
"button",
|
|
16775
16767
|
{
|
|
16776
16768
|
onClick: () => setShowPromptInput(false),
|
|
16777
16769
|
className: "ai-cancel-btn"
|
|
16778
16770
|
},
|
|
16779
16771
|
"Cancel"
|
|
16780
|
-
), /* @__PURE__ */
|
|
16772
|
+
), /* @__PURE__ */ _react2.default.createElement(
|
|
16781
16773
|
"button",
|
|
16782
16774
|
{
|
|
16783
16775
|
onClick: handlePromptSubmit,
|
|
@@ -16795,8 +16787,8 @@ function TetronsToolbar({
|
|
|
16795
16787
|
editor,
|
|
16796
16788
|
version
|
|
16797
16789
|
}) {
|
|
16798
|
-
const [autoSave, setAutoSave] =
|
|
16799
|
-
|
|
16790
|
+
const [autoSave, setAutoSave] = _react.useState.call(void 0, false);
|
|
16791
|
+
_react.useEffect.call(void 0, () => {
|
|
16800
16792
|
if (!editor) return;
|
|
16801
16793
|
const handleUpdate = () => {
|
|
16802
16794
|
if (!autoSave) return;
|
|
@@ -16812,7 +16804,7 @@ function TetronsToolbar({
|
|
|
16812
16804
|
editor.off("update", handleUpdate);
|
|
16813
16805
|
};
|
|
16814
16806
|
}, [autoSave, editor]);
|
|
16815
|
-
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(
|
|
16816
16808
|
"input",
|
|
16817
16809
|
{
|
|
16818
16810
|
type: "checkbox",
|
|
@@ -16820,28 +16812,34 @@ function TetronsToolbar({
|
|
|
16820
16812
|
checked: autoSave,
|
|
16821
16813
|
onChange: (e) => setAutoSave(e.target.checked)
|
|
16822
16814
|
}
|
|
16823
|
-
), /* @__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 })));
|
|
16824
16816
|
}
|
|
16825
16817
|
|
|
16826
16818
|
// src/components/tetrons/EditorContent.tsx
|
|
16827
|
-
var lowlight = createLowlight();
|
|
16819
|
+
var lowlight = _lowlight.createLowlight.call(void 0, );
|
|
16828
16820
|
lowlight.register("js", javascript);
|
|
16829
16821
|
lowlight.register("ts", typescript);
|
|
16830
16822
|
function EditorContent({ apiKey }) {
|
|
16831
16823
|
const typo = useTypo();
|
|
16832
|
-
const [isValid, setIsValid] =
|
|
16833
|
-
const [error, setError] =
|
|
16834
|
-
const [versions, setVersions] =
|
|
16835
|
-
const [userVersion, setUserVersion] =
|
|
16836
|
-
const [currentVersionIndex, setCurrentVersionIndex] =
|
|
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,
|
|
16837
16829
|
null
|
|
16838
16830
|
);
|
|
16839
|
-
const wrapperRef =
|
|
16840
|
-
|
|
16841
|
-
"
|
|
16842
|
-
|
|
16843
|
-
|
|
16844
|
-
|
|
16831
|
+
const wrapperRef = _react.useRef.call(void 0, null);
|
|
16832
|
+
function getApiBaseUrl() {
|
|
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;
|
|
16835
|
+
}
|
|
16836
|
+
if (typeof process !== "undefined" && _optionalChain([process, 'access', _40 => _40.env, 'optionalAccess', _41 => _41.NEXT_PUBLIC_TETRONS_API_URL])) {
|
|
16837
|
+
return process.env.NEXT_PUBLIC_TETRONS_API_URL;
|
|
16838
|
+
}
|
|
16839
|
+
return "https://staging.tetrons.com";
|
|
16840
|
+
}
|
|
16841
|
+
const API_BASE_URL = getApiBaseUrl();
|
|
16842
|
+
_react.useEffect.call(void 0, () => {
|
|
16845
16843
|
const validateKey = async () => {
|
|
16846
16844
|
try {
|
|
16847
16845
|
const res = await fetch(`${API_BASE_URL}/api/validate`, {
|
|
@@ -16862,7 +16860,7 @@ function EditorContent({ apiKey }) {
|
|
|
16862
16860
|
};
|
|
16863
16861
|
validateKey();
|
|
16864
16862
|
}, [apiKey, API_BASE_URL]);
|
|
16865
|
-
const editor = useEditor({
|
|
16863
|
+
const editor = _react3.useEditor.call(void 0, {
|
|
16866
16864
|
extensions: [
|
|
16867
16865
|
Document,
|
|
16868
16866
|
Paragraph,
|
|
@@ -16870,39 +16868,39 @@ function EditorContent({ apiKey }) {
|
|
|
16870
16868
|
History,
|
|
16871
16869
|
Bold,
|
|
16872
16870
|
Italic,
|
|
16873
|
-
|
|
16871
|
+
_extensionunderline2.default,
|
|
16874
16872
|
Strike,
|
|
16875
16873
|
Code,
|
|
16876
16874
|
Blockquote,
|
|
16877
16875
|
HardBreak,
|
|
16878
16876
|
Heading.configure({ levels: [1, 2, 3, 4, 5, 6] }),
|
|
16879
16877
|
HorizontalRule,
|
|
16880
|
-
|
|
16881
|
-
|
|
16882
|
-
|
|
16878
|
+
_extensiontextstyle2.default,
|
|
16879
|
+
_extensioncolor2.default,
|
|
16880
|
+
_extensionhighlight2.default.configure({ multicolor: true }),
|
|
16883
16881
|
FontFamily,
|
|
16884
16882
|
FontSize,
|
|
16885
|
-
|
|
16883
|
+
_extensiontextalign2.default.configure({ types: ["heading", "paragraph"] }),
|
|
16886
16884
|
ListItem,
|
|
16887
16885
|
BulletList,
|
|
16888
16886
|
OrderedList,
|
|
16889
16887
|
Subscript,
|
|
16890
16888
|
Superscript,
|
|
16891
|
-
|
|
16892
|
-
|
|
16889
|
+
_extensionimage2.default,
|
|
16890
|
+
_extensionlink2.default.configure({
|
|
16893
16891
|
openOnClick: false,
|
|
16894
16892
|
autolink: true,
|
|
16895
16893
|
linkOnPaste: true
|
|
16896
16894
|
}),
|
|
16897
16895
|
ResizableTable.configure({ resizable: true }),
|
|
16898
|
-
|
|
16899
|
-
|
|
16900
|
-
|
|
16896
|
+
_extensiontablerow2.default,
|
|
16897
|
+
_extensiontablecell2.default,
|
|
16898
|
+
_extensiontableheader2.default,
|
|
16901
16899
|
Embed,
|
|
16902
16900
|
ResizableImage,
|
|
16903
16901
|
ResizableVideo,
|
|
16904
16902
|
Comment,
|
|
16905
|
-
|
|
16903
|
+
_extensioncodeblocklowlight2.default.configure({
|
|
16906
16904
|
lowlight,
|
|
16907
16905
|
HTMLAttributes: {
|
|
16908
16906
|
class: "bg-gray-100 p-2 rounded font-mono text-sm overflow-auto"
|
|
@@ -16923,9 +16921,9 @@ function EditorContent({ apiKey }) {
|
|
|
16923
16921
|
},
|
|
16924
16922
|
immediatelyRender: false
|
|
16925
16923
|
});
|
|
16926
|
-
|
|
16924
|
+
_react.useEffect.call(void 0, () => {
|
|
16927
16925
|
return () => {
|
|
16928
|
-
editor
|
|
16926
|
+
_optionalChain([editor, 'optionalAccess', _42 => _42.destroy, 'call', _43 => _43()]);
|
|
16929
16927
|
};
|
|
16930
16928
|
}, [editor]);
|
|
16931
16929
|
const handleEditorClick = () => {
|
|
@@ -16948,15 +16946,15 @@ function EditorContent({ apiKey }) {
|
|
|
16948
16946
|
}
|
|
16949
16947
|
};
|
|
16950
16948
|
if (isValid === false) {
|
|
16951
|
-
return /* @__PURE__ */
|
|
16949
|
+
return /* @__PURE__ */ _react2.default.createElement("div", { className: "editor-error" }, "\u26A0\uFE0F ", error);
|
|
16952
16950
|
}
|
|
16953
16951
|
if (isValid === null) {
|
|
16954
|
-
return /* @__PURE__ */
|
|
16952
|
+
return /* @__PURE__ */ _react2.default.createElement("div", { className: "editor-loading" }, "\u{1F50D} Validating license...");
|
|
16955
16953
|
}
|
|
16956
16954
|
if (!typo) {
|
|
16957
|
-
return /* @__PURE__ */
|
|
16955
|
+
return /* @__PURE__ */ _react2.default.createElement("div", { className: "editor-loading" }, "\u{1F4D6} Loading dictionary...");
|
|
16958
16956
|
}
|
|
16959
|
-
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(
|
|
16960
16958
|
"button",
|
|
16961
16959
|
{
|
|
16962
16960
|
type: "button",
|
|
@@ -16965,7 +16963,7 @@ function EditorContent({ apiKey }) {
|
|
|
16965
16963
|
className: "editor-save-btn"
|
|
16966
16964
|
},
|
|
16967
16965
|
"Save Version"
|
|
16968
|
-
), /* @__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(
|
|
16969
16967
|
"button",
|
|
16970
16968
|
{
|
|
16971
16969
|
key: idx,
|
|
@@ -16975,20 +16973,107 @@ function EditorContent({ apiKey }) {
|
|
|
16975
16973
|
title: `Restore Version ${idx + 1}`
|
|
16976
16974
|
},
|
|
16977
16975
|
`V${idx + 1}`
|
|
16978
|
-
)))), editor && userVersion && /* @__PURE__ */
|
|
16976
|
+
)))), editor && userVersion && /* @__PURE__ */ _react2.default.createElement(TetronsToolbar, { editor, version: userVersion }), /* @__PURE__ */ _react2.default.createElement(
|
|
16979
16977
|
"div",
|
|
16980
16978
|
{
|
|
16981
16979
|
ref: wrapperRef,
|
|
16982
16980
|
className: "editor-content-wrapper",
|
|
16983
16981
|
onClick: handleEditorClick
|
|
16984
16982
|
},
|
|
16985
|
-
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...")
|
|
16986
16984
|
));
|
|
16987
16985
|
}
|
|
16988
16986
|
|
|
16989
|
-
// src/
|
|
16990
|
-
var
|
|
16991
|
-
|
|
16992
|
-
|
|
16993
|
-
|
|
16987
|
+
// src/index.ts
|
|
16988
|
+
var API_VALID = false;
|
|
16989
|
+
var API_VERSION = "";
|
|
16990
|
+
var isNode = typeof window === "undefined";
|
|
16991
|
+
var validityMap = {
|
|
16992
|
+
free: 14,
|
|
16993
|
+
pro: 30,
|
|
16994
|
+
premium: 30,
|
|
16995
|
+
platinum: 30
|
|
16994
16996
|
};
|
|
16997
|
+
function getInstallDateKey() {
|
|
16998
|
+
return "tetrons_installed_at";
|
|
16999
|
+
}
|
|
17000
|
+
async function getOrCreateInstallDate() {
|
|
17001
|
+
const key = getInstallDateKey();
|
|
17002
|
+
if (isNode) {
|
|
17003
|
+
const fs = await Promise.resolve().then(() => _interopRequireWildcard(require("fs")));
|
|
17004
|
+
const path = await Promise.resolve().then(() => _interopRequireWildcard(require("path")));
|
|
17005
|
+
const usagePath = path.join(process.cwd(), ".tetrons-usage.json");
|
|
17006
|
+
if (fs.existsSync(usagePath)) {
|
|
17007
|
+
const data = JSON.parse(fs.readFileSync(usagePath, "utf-8"));
|
|
17008
|
+
return new Date(data.installedAt);
|
|
17009
|
+
}
|
|
17010
|
+
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
17011
|
+
fs.writeFileSync(usagePath, JSON.stringify({ installedAt: now }));
|
|
17012
|
+
return new Date(now);
|
|
17013
|
+
} else {
|
|
17014
|
+
const saved = localStorage.getItem(key);
|
|
17015
|
+
if (saved) return new Date(saved);
|
|
17016
|
+
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
17017
|
+
localStorage.setItem(key, now);
|
|
17018
|
+
return new Date(now);
|
|
17019
|
+
}
|
|
17020
|
+
}
|
|
17021
|
+
function getRemainingDays(installedAt, validityDays) {
|
|
17022
|
+
const now = /* @__PURE__ */ new Date();
|
|
17023
|
+
const diff = Math.floor(
|
|
17024
|
+
(now.getTime() - installedAt.getTime()) / (1e3 * 60 * 60 * 24)
|
|
17025
|
+
);
|
|
17026
|
+
return validityDays - diff;
|
|
17027
|
+
}
|
|
17028
|
+
async function initializeTetrons(apiKey) {
|
|
17029
|
+
const res = await fetch("https://staging.tetrons.com/api/validate", {
|
|
17030
|
+
method: "POST",
|
|
17031
|
+
headers: {
|
|
17032
|
+
"Content-Type": "application/json"
|
|
17033
|
+
},
|
|
17034
|
+
body: JSON.stringify({ apiKey })
|
|
17035
|
+
});
|
|
17036
|
+
if (!res.ok) {
|
|
17037
|
+
const error = await res.json();
|
|
17038
|
+
throw new Error(`API Key validation failed: ${error.error}`);
|
|
17039
|
+
}
|
|
17040
|
+
const data = await res.json();
|
|
17041
|
+
API_VALID = data.valid;
|
|
17042
|
+
API_VERSION = data.version;
|
|
17043
|
+
if (!API_VALID) {
|
|
17044
|
+
throw new Error("API Key is not valid.");
|
|
17045
|
+
}
|
|
17046
|
+
if (API_VERSION === "") {
|
|
17047
|
+
throw new Error("No license version provided.");
|
|
17048
|
+
}
|
|
17049
|
+
const validityDays = validityMap[API_VERSION];
|
|
17050
|
+
const installedAt = await getOrCreateInstallDate();
|
|
17051
|
+
const remainingDays = getRemainingDays(installedAt, validityDays);
|
|
17052
|
+
if (remainingDays <= 0) {
|
|
17053
|
+
throw new Error(`Your ${API_VERSION} license has expired.`);
|
|
17054
|
+
}
|
|
17055
|
+
console.log(
|
|
17056
|
+
`[TETRONS] Initialized: ${API_VERSION} | Remaining days: ${remainingDays}`
|
|
17057
|
+
);
|
|
17058
|
+
}
|
|
17059
|
+
function getTetronsVersion() {
|
|
17060
|
+
return API_VERSION;
|
|
17061
|
+
}
|
|
17062
|
+
function isApiKeyValid() {
|
|
17063
|
+
return API_VALID;
|
|
17064
|
+
}
|
|
17065
|
+
async function getTetronsRemainingDays() {
|
|
17066
|
+
if (!API_VALID || API_VERSION === "") return null;
|
|
17067
|
+
const validityDays = validityMap[API_VERSION];
|
|
17068
|
+
const installedAt = await getOrCreateInstallDate();
|
|
17069
|
+
return getRemainingDays(installedAt, validityDays);
|
|
17070
|
+
}
|
|
17071
|
+
var index_default = EditorContent;
|
|
17072
|
+
|
|
17073
|
+
|
|
17074
|
+
|
|
17075
|
+
|
|
17076
|
+
|
|
17077
|
+
|
|
17078
|
+
|
|
17079
|
+
exports.EditorContent = EditorContent; exports.default = index_default; exports.getTetronsRemainingDays = getTetronsRemainingDays; exports.getTetronsVersion = getTetronsVersion; exports.initializeTetrons = initializeTetrons; exports.isApiKeyValid = isApiKeyValid;
|