tetrons 2.3.44 → 2.3.46

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