tiptap-markdown-react 0.10.3 → 0.11.0

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/style.css CHANGED
@@ -1,12 +1,35 @@
1
1
  /* 规范正文样式(编辑器 / 只读预览 / SSR 阅读三处共用同一个类,保证所见即所得、
2
2
  发布后一致)。配色/字体全部走可被消费方覆盖的 CSS 变量(--tmr-*,带默认值)。 */
3
3
 
4
- ._editorScroll_1rmvx_4 {
4
+ /* 编辑器最外层:查找替换浮动条的粘性范围就是它(超出编辑器范围后浮动条随之离场)。
5
+ 正文的滚动容器仍是 .editorScroll(宿主传的 className 依然落在它身上,契约不变)。 */
6
+ ._editorHost_teucm_6 {
7
+ position: relative;
8
+ }
9
+
10
+ /* 浮动条的粘性锚点:高度 0,不占布局、不推挤正文;sticky 让浮动条在「最近的滚动容器」
11
+ 里粘住(宿主的外层滚动容器或页面本身),正文滚动时不会把条子卷上去。
12
+ 注意:锚点必须在 DOM 里排在正文之前——排在后面的话它的自然位置在正文底部,粘性范围就错了。 */
13
+ ._findBarAnchor_teucm_13 {
14
+ position: sticky;
15
+ top: 4px;
16
+ height: 0;
17
+ z-index: 7;
18
+ }
19
+
20
+ /* 浮动条本体:相对锚点绝对定位,浮在正文右上角 */
21
+ ._findBar_teucm_13 {
22
+ position: absolute;
23
+ top: 0;
24
+ right: 4px;
25
+ }
26
+
27
+ ._editorScroll_teucm_5 {
5
28
  margin-top: 24px;
6
29
  position: relative;
7
30
  }
8
31
 
9
- ._editorContent_1rmvx_9 {
32
+ ._editorContent_teucm_32 {
10
33
  outline: none;
11
34
  padding: 0;
12
35
  font-family: var(
@@ -29,7 +52,7 @@
29
52
  }
30
53
 
31
54
  /* placeholder:空文档第一段显示占位符 */
32
- ._editorContent_1rmvx_9 p.is-editor-empty:first-child::before {
55
+ ._editorContent_teucm_32 p.is-editor-empty:first-child::before {
33
56
  content: attr(data-placeholder);
34
57
  float: left;
35
58
  height: 0;
@@ -37,7 +60,7 @@
37
60
  pointer-events: none;
38
61
  }
39
62
 
40
- ._editorContent_1rmvx_9 h1 {
63
+ ._editorContent_teucm_32 h1 {
41
64
  font-family: inherit;
42
65
  font-size: 1.55em;
43
66
  font-weight: 700;
@@ -45,7 +68,7 @@
45
68
  line-height: 1.3;
46
69
  }
47
70
 
48
- ._editorContent_1rmvx_9 h2 {
71
+ ._editorContent_teucm_32 h2 {
49
72
  font-family: inherit;
50
73
  font-size: 1.3em;
51
74
  font-weight: 700;
@@ -53,7 +76,7 @@
53
76
  line-height: 1.3;
54
77
  }
55
78
 
56
- ._editorContent_1rmvx_9 h3 {
79
+ ._editorContent_teucm_32 h3 {
57
80
  font-family: inherit;
58
81
  font-size: 1.12em;
59
82
  font-weight: 600;
@@ -61,21 +84,21 @@
61
84
  }
62
85
 
63
86
  /* h4-h6:延续 h1-h3 尺寸梯度递减;字号差变小后靠字重保持标题感,h6 字色稍弱。 */
64
- ._editorContent_1rmvx_9 h4 {
87
+ ._editorContent_teucm_32 h4 {
65
88
  font-family: inherit;
66
89
  font-size: 1.05em;
67
90
  font-weight: 600;
68
91
  margin: 0.7em 0 0.3em;
69
92
  }
70
93
 
71
- ._editorContent_1rmvx_9 h5 {
94
+ ._editorContent_teucm_32 h5 {
72
95
  font-family: inherit;
73
96
  font-size: 0.95em;
74
97
  font-weight: 600;
75
98
  margin: 0.7em 0 0.3em;
76
99
  }
77
100
 
78
- ._editorContent_1rmvx_9 h6 {
101
+ ._editorContent_teucm_32 h6 {
79
102
  font-family: inherit;
80
103
  font-size: 0.88em;
81
104
  font-weight: 600;
@@ -83,25 +106,25 @@
83
106
  color: var(--tmr-muted, #777777);
84
107
  }
85
108
 
86
- ._editorContent_1rmvx_9 p {
109
+ ._editorContent_teucm_32 p {
87
110
  margin: 0.7em 0;
88
111
  }
89
112
 
90
- ._editorContent_1rmvx_9 ul,
91
- ._editorContent_1rmvx_9 ol {
113
+ ._editorContent_teucm_32 ul,
114
+ ._editorContent_teucm_32 ol {
92
115
  padding-left: 1.5em;
93
116
  margin: 0.7em 0;
94
117
  }
95
118
 
96
- ._editorContent_1rmvx_9 ul {
119
+ ._editorContent_teucm_32 ul {
97
120
  list-style: disc;
98
121
  }
99
122
 
100
- ._editorContent_1rmvx_9 ol {
123
+ ._editorContent_teucm_32 ol {
101
124
  list-style: decimal;
102
125
  }
103
126
 
104
- ._editorContent_1rmvx_9 blockquote {
127
+ ._editorContent_teucm_32 blockquote {
105
128
  border-left: 3px solid var(--tmr-accent, #ff6719);
106
129
  padding-left: 1em;
107
130
  margin: 0.9em 0;
@@ -109,13 +132,13 @@
109
132
  font-style: italic;
110
133
  }
111
134
 
112
- ._editorContent_1rmvx_9 a {
135
+ ._editorContent_teucm_32 a {
113
136
  color: var(--tmr-accent, #ff6719);
114
137
  text-decoration: underline;
115
138
  }
116
139
 
117
140
  /* 仅行内代码加灰底;代码块内的 <code>(在 pre 内)由 NodeView 自管,排除掉 */
118
- ._editorContent_1rmvx_9 code:not(pre code) {
141
+ ._editorContent_teucm_32 code:not(pre code) {
119
142
  background: var(--tmr-code-bg, #f4f4f4);
120
143
  padding: 0.15em 0.4em;
121
144
  border-radius: 4px;
@@ -130,13 +153,13 @@
130
153
  );
131
154
  }
132
155
 
133
- ._editorContent_1rmvx_9 hr {
156
+ ._editorContent_teucm_32 hr {
134
157
  border: none;
135
158
  border-top: 1px solid var(--tmr-border, #e6e6e6);
136
159
  margin: 1.5em 0;
137
160
  }
138
161
 
139
- ._editorContent_1rmvx_9 img {
162
+ ._editorContent_teucm_32 img {
140
163
  max-width: 100%;
141
164
  height: auto;
142
165
  border-radius: 6px;
@@ -145,21 +168,21 @@
145
168
  }
146
169
 
147
170
  /* 选中的图片高亮 */
148
- ._editorContent_1rmvx_9 img.ProseMirror-selectednode {
171
+ ._editorContent_teucm_32 img.ProseMirror-selectednode {
149
172
  outline: 2px solid var(--tmr-accent, #ff6719);
150
173
  }
151
174
 
152
175
  /* 表格:细边框、表头浅灰;外包 .tableWrapper(编辑器 NodeView + SSR renderWrapper)
153
176
  * 桌面:width:100% + 允许换行,整表落在阅读列内(与改前一致)
154
177
  * 窄屏:max-content + nowrap,避免列被挤扁,wrapper 内横滑 */
155
- ._editorContent_1rmvx_9 .tableWrapper {
178
+ ._editorContent_teucm_32 .tableWrapper {
156
179
  max-width: 100%;
157
180
  overflow-x: auto;
158
181
  -webkit-overflow-scrolling: touch;
159
182
  margin: 1em 0;
160
183
  }
161
184
 
162
- ._editorContent_1rmvx_9 table {
185
+ ._editorContent_teucm_32 table {
163
186
  border-collapse: collapse;
164
187
  table-layout: auto;
165
188
  width: 100%;
@@ -169,12 +192,12 @@
169
192
  }
170
193
 
171
194
  /* 无 wrapper 的遗留 HTML(旧缓存)仍给一点外边距 */
172
- ._editorContent_1rmvx_9 :not(.tableWrapper) > table {
195
+ ._editorContent_teucm_32 :not(.tableWrapper) > table {
173
196
  margin: 1em 0;
174
197
  }
175
198
 
176
- ._editorContent_1rmvx_9 table td,
177
- ._editorContent_1rmvx_9 table th {
199
+ ._editorContent_teucm_32 table td,
200
+ ._editorContent_teucm_32 table th {
178
201
  border: 1px solid var(--tmr-border, #e6e6e6);
179
202
  padding: 8px 12px;
180
203
  vertical-align: top;
@@ -185,27 +208,27 @@
185
208
  word-break: break-word;
186
209
  }
187
210
 
188
- ._editorContent_1rmvx_9 table th {
211
+ ._editorContent_teucm_32 table th {
189
212
  background: var(--tmr-table-header-bg, #f7f7f7);
190
213
  font-weight: 600;
191
214
  }
192
215
 
193
216
  @media (max-width: 640px) {
194
- ._editorContent_1rmvx_9 table {
217
+ ._editorContent_teucm_32 table {
195
218
  width: max-content;
196
219
  min-width: 100%;
197
220
  max-width: none;
198
221
  }
199
222
 
200
- ._editorContent_1rmvx_9 table td,
201
- ._editorContent_1rmvx_9 table th {
223
+ ._editorContent_teucm_32 table td,
224
+ ._editorContent_teucm_32 table th {
202
225
  white-space: nowrap;
203
226
  word-break: normal;
204
227
  }
205
228
  }
206
229
 
207
230
  /* 选中的单元格高亮 */
208
- ._editorContent_1rmvx_9 table .selectedCell::after {
231
+ ._editorContent_teucm_32 table .selectedCell::after {
209
232
  content: '';
210
233
  position: absolute;
211
234
  inset: 0;
@@ -214,7 +237,7 @@
214
237
  }
215
238
 
216
239
  /* 列宽拖拽手柄 */
217
- ._editorContent_1rmvx_9 table .column-resize-handle {
240
+ ._editorContent_teucm_32 table .column-resize-handle {
218
241
  position: absolute;
219
242
  right: -2px;
220
243
  top: 0;
@@ -224,35 +247,52 @@
224
247
  cursor: col-resize;
225
248
  }
226
249
 
227
- /* 任务清单 */
228
- ._editorContent_1rmvx_9 ul[data-type='taskList'] {
250
+ /* 任务清单:复选框与首行文字在同一行高内垂直居中。
251
+ li 是 flex 容器,项内段落的外边距不会塌到 li 外(不像普通 ul/ol),只会把正文往下推,
252
+ 所以项内段落清零外边距,项间距改由 li 按 ul/ol 的 0.7em 承担。 */
253
+ ._editorContent_teucm_32 ul[data-type='taskList'] {
229
254
  list-style: none;
230
255
  padding-left: 0.2em;
231
256
  }
232
257
 
233
- ._editorContent_1rmvx_9 ul[data-type='taskList'] li {
258
+ ._editorContent_teucm_32 ul[data-type='taskList'] li {
234
259
  display: flex;
235
260
  align-items: flex-start;
236
261
  gap: 0.5em;
237
- margin: 0.3em 0;
262
+ margin: 0.7em 0;
263
+ }
264
+
265
+ ._editorContent_teucm_32 ul[data-type='taskList'] li > div > p {
266
+ margin: 0;
238
267
  }
239
268
 
240
- ._editorContent_1rmvx_9 ul[data-type='taskList'] li > label {
269
+ /* 项内第二段起保留半档间距,避免多段任务项的段落粘成一片(首段仍不带外边距) */
270
+ ._editorContent_teucm_32 ul[data-type='taskList'] li > div > p + p {
241
271
  margin-top: 0.35em;
272
+ }
273
+
274
+ /* label 撑满一行行高并居中,框心落在首行文字中线上;
275
+ 1lh 即该元素当前行高,随 --tmr-line-height(数字或长度写法)一起变,不靠手调偏移。 */
276
+ ._editorContent_teucm_32 ul[data-type='taskList'] li > label {
277
+ display: flex;
278
+ align-items: center;
279
+ flex: 0 0 auto;
280
+ height: 1lh;
242
281
  user-select: none;
243
282
  }
244
283
 
245
- ._editorContent_1rmvx_9 ul[data-type='taskList'] li > div {
284
+ ._editorContent_teucm_32 ul[data-type='taskList'] li > div {
246
285
  flex: 1;
247
286
  }
248
287
 
249
- ._editorContent_1rmvx_9 ul[data-type='taskList'] input[type='checkbox'] {
288
+ ._editorContent_teucm_32 ul[data-type='taskList'] input[type='checkbox'] {
289
+ margin: 0;
250
290
  accent-color: var(--tmr-accent, #ff6719);
251
291
  cursor: pointer;
252
292
  }
253
293
 
254
294
  /* 脚注/引文圆标:与正文字垂直居中;配色对齐工具栏 active(浅橙底 + accent 字) */
255
- ._editorContent_1rmvx_9 span.citation-ref {
295
+ ._editorContent_teucm_32 span.citation-ref {
256
296
  display: inline-flex;
257
297
  align-items: center;
258
298
  justify-content: center;
@@ -289,7 +329,7 @@
289
329
  border-color 0.15s ease;
290
330
  }
291
331
 
292
- ._editorContent_1rmvx_9 span.citation-ref a {
332
+ ._editorContent_teucm_32 span.citation-ref a {
293
333
  color: inherit;
294
334
  text-decoration: none;
295
335
  display: flex;
@@ -301,26 +341,26 @@
301
341
  pointer-events: none;
302
342
  }
303
343
 
304
- ._editorContent_1rmvx_9 span.citation-ref:hover,
305
- ._editorContent_1rmvx_9 span.citation-ref:focus-within,
306
- ._editorContent_1rmvx_9 span.citation-ref[data-tmr-citation-active] {
344
+ ._editorContent_teucm_32 span.citation-ref:hover,
345
+ ._editorContent_teucm_32 span.citation-ref:focus-within,
346
+ ._editorContent_teucm_32 span.citation-ref[data-tmr-citation-active] {
307
347
  background: var(--tmr-citation-bg-hover, var(--tmr-accent, #ff6719));
308
348
  border-color: var(--tmr-citation-bg-hover, var(--tmr-accent, #ff6719));
309
349
  color: var(--tmr-citation-fg-hover, #ffffff);
310
350
  }
311
351
 
312
- ._editorContent_1rmvx_9 .tiptap-mathematics-render[data-type='inline-math'] {
352
+ ._editorContent_teucm_32 .tiptap-mathematics-render[data-type='inline-math'] {
313
353
  display: inline;
314
354
  }
315
355
 
316
- ._editorContent_1rmvx_9 .tiptap-mathematics-render[data-type='block-math'] {
356
+ ._editorContent_teucm_32 .tiptap-mathematics-render[data-type='block-math'] {
317
357
  margin: 0.9em 0;
318
358
  overflow-x: auto;
319
359
  text-align: center;
320
360
  }
321
361
 
322
362
  /* 导入占位:进度写在光标处,不进 Markdown */
323
- ._editorContent_1rmvx_9 .tmr-import-placeholder {
363
+ ._editorContent_teucm_32 .tmr-import-placeholder {
324
364
  display: flex;
325
365
  align-items: center;
326
366
  gap: 0.5em;
@@ -330,16 +370,16 @@
330
370
  user-select: none;
331
371
  }
332
372
 
333
- ._editorContent_1rmvx_9 .tmr-import-placeholder-spin {
373
+ ._editorContent_teucm_32 .tmr-import-placeholder-spin {
334
374
  width: 0.7em;
335
375
  height: 0.7em;
336
376
  border: 1.5px solid var(--tmr-border, #e6e6e6);
337
377
  border-top-color: var(--tmr-accent, #ff6719);
338
378
  border-radius: 50%;
339
- animation: _tmr-import-spin_1rmvx_1 0.7s linear infinite;
379
+ animation: _tmr-import-spin_teucm_1 0.7s linear infinite;
340
380
  }
341
381
 
342
- @keyframes _tmr-import-spin_1rmvx_1 {
382
+ @keyframes _tmr-import-spin_teucm_1 {
343
383
  to {
344
384
  transform: rotate(360deg);
345
385
  }
@@ -547,6 +587,141 @@
547
587
  background: #fff3ec;
548
588
  border-radius: 4px;
549
589
  }
590
+ /* 查找替换浮动条。配色走 --tmr-* 变量(与工具栏/评论同一套),宿主可覆盖。 */
591
+
592
+ ._bar_fzqxj_3 {
593
+ --fb-accent: var(--tmr-accent, #ff6719);
594
+ --fb-text: var(--tmr-text, #363737);
595
+ --fb-muted: var(--tmr-toolbar-muted, #6b6b6b);
596
+ --fb-border: var(--tmr-toolbar-border, #ececec);
597
+
598
+ display: flex;
599
+ flex-direction: column;
600
+ gap: 6px;
601
+ width: max-content;
602
+ max-width: 100%;
603
+ padding: 8px;
604
+ box-sizing: border-box;
605
+ background: #fff;
606
+ border: 1px solid var(--fb-border);
607
+ border-radius: 10px;
608
+ box-shadow: 0 6px 24px rgb(0 0 0 / 14%);
609
+ color: var(--fb-text);
610
+ font-size: 14px;
611
+ line-height: 1.3;
612
+ }
613
+
614
+ ._row_fzqxj_25 {
615
+ display: flex;
616
+ align-items: center;
617
+ gap: 4px;
618
+ /* 窄屏(手机)允许折行,浮动条不会横向溢出 */
619
+ flex-wrap: wrap;
620
+ }
621
+
622
+ ._field_fzqxj_33 {
623
+ display: inline-flex;
624
+ align-items: center;
625
+ gap: 6px;
626
+ height: 30px;
627
+ padding: 0 8px;
628
+ box-sizing: border-box;
629
+ border: 1px solid var(--fb-border);
630
+ border-radius: 6px;
631
+ background: #fff;
632
+ }
633
+
634
+ ._field_fzqxj_33:focus-within {
635
+ border-color: var(--fb-accent);
636
+ }
637
+
638
+ ._fieldIcon_fzqxj_49 {
639
+ flex: none;
640
+ color: var(--fb-muted);
641
+ }
642
+
643
+ ._input_fzqxj_54 {
644
+ width: 190px;
645
+ min-width: 0;
646
+ border: none;
647
+ outline: none;
648
+ background: transparent;
649
+ color: inherit;
650
+ font: inherit;
651
+ }
652
+
653
+ /* 计数:等宽数字,避免 1 / 9 → 1 / 10 时宽度跳动 */
654
+ ._counter_fzqxj_65 {
655
+ flex: none;
656
+ min-width: 46px;
657
+ padding: 0 2px;
658
+ color: var(--fb-muted);
659
+ font-variant-numeric: tabular-nums;
660
+ text-align: right;
661
+ }
662
+
663
+ ._counterInvalid_fzqxj_74 {
664
+ color: var(--tmr-danger, #d4380d);
665
+ }
666
+
667
+ ._btn_fzqxj_78 {
668
+ display: inline-flex;
669
+ align-items: center;
670
+ justify-content: center;
671
+ flex: none;
672
+ height: 30px;
673
+ min-width: 30px;
674
+ padding: 0 8px;
675
+ border: none;
676
+ border-radius: 6px;
677
+ background: transparent;
678
+ color: var(--fb-muted);
679
+ font: inherit;
680
+ cursor: pointer;
681
+ transition: background 0.15s, color 0.15s;
682
+ }
683
+
684
+ ._btn_fzqxj_78:hover:not(:disabled) {
685
+ background: #f3f3f3;
686
+ color: var(--fb-text);
687
+ }
688
+
689
+ ._btn_fzqxj_78:disabled {
690
+ opacity: 0.3;
691
+ cursor: not-allowed;
692
+ }
693
+
694
+ /* 三个开关用短标记(Aa / ab / .*),省宽度且不依赖文案 */
695
+ ._toggle_fzqxj_106 {
696
+ font-family: var(--tmr-mono-font, ui-monospace, SFMono-Regular, Menlo, monospace);
697
+ font-size: 13px;
698
+ }
699
+
700
+ ._toggleOn_fzqxj_111 {
701
+ color: var(--fb-accent);
702
+ background: #fff3ec;
703
+ }
704
+
705
+ ._toggleOn_fzqxj_111:hover:not(:disabled) {
706
+ color: var(--fb-accent);
707
+ background: #ffe8da;
708
+ }
709
+
710
+ ._textBtn_fzqxj_121 {
711
+ padding: 0 10px;
712
+ color: var(--fb-text);
713
+ }
714
+
715
+ ._spacer_fzqxj_126 {
716
+ flex: 1 1 auto;
717
+ min-width: 0;
718
+ }
719
+
720
+ ._readOnly_fzqxj_131 {
721
+ color: var(--fb-muted);
722
+ font-size: 13px;
723
+ white-space: nowrap;
724
+ }
550
725
  /* 「这段正在被 AI 改写」的高亮(decoration,只存在于编辑会话里、不进 markdown)。
551
726
  普通 CSS(不是 *.module.css):模块写法在这种「只做副作用的 import」下会被库构建丢掉
552
727
  —— 与 chart.css 同一种写法,保证能进 dist/style.css。色值走 --tmr-* 变量,宿主可覆盖。 */
@@ -566,6 +741,24 @@ li.tmr-pending-anchor,
566
741
  table.tmr-pending-anchor {
567
742
  box-shadow: inset 3px 0 0 0 var(--tmr-pending-bar, rgba(22, 119, 255, 0.45));
568
743
  }
744
+ /* 查找替换命中(decoration,只存在于编辑会话里、不进 markdown、不进 undo 历史)。
745
+ 普通 CSS(不是 *.module.css):类名由 @tiptap/extension-find-and-replace 输出,必须保持全局,
746
+ 与 chart.css / pending.css 同一种写法,保证能进 dist/style.css。色值走 --tmr-* 变量,宿主可覆盖。 */
747
+
748
+ /* 全部命中:淡黄底 + 轻微圆角(跨行的命中靠 box-decoration-break 保持断行处也有底色) */
749
+ .find-and-replace-result {
750
+ background: var(--tmr-find-bg, rgba(255, 196, 0, 0.32));
751
+ border-radius: 2px;
752
+ box-decoration-break: clone;
753
+ -webkit-box-decoration-break: clone;
754
+ }
755
+
756
+ /* 当前命中:官方在同一个元素上同时挂 result 与 result-current 两个类,所以这条规则必须写在上面
757
+ 那条之后——同优先级下后来者胜出。 */
758
+ .find-and-replace-result-current {
759
+ background: var(--tmr-find-active-bg, rgba(255, 145, 0, 0.5));
760
+ box-shadow: 0 0 0 1px var(--tmr-find-active-ring, rgba(230, 122, 0, 0.7));
761
+ }
569
762
  /* 代码块 NodeView:白底、细边框、顶部 header 放语言选择(Radix 下拉)+ 删除。 */
570
763
  ._wrapper_5i2vi_2 {
571
764
  position: relative;
@@ -0,0 +1 @@
1
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tiptap-markdown-react",
3
- "version": "0.10.3",
3
+ "version": "0.11.0",
4
4
  "description": "A batteries-included, self-styled Markdown WYSIWYG editor and reader suite built on Tiptap v3. Markdown in/out, SSR/static rendering, table of contents, themeable via CSS variables, zero Ant Design.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -67,26 +67,27 @@
67
67
  "dependencies": {
68
68
  "@radix-ui/react-dropdown-menu": "^2.1.16",
69
69
  "@radix-ui/react-popover": "^1.1.15",
70
- "@tiptap/core": "3.27.1",
71
- "@tiptap/extension-code": "3.27.1",
72
- "@tiptap/extension-code-block-lowlight": "3.27.1",
73
- "@tiptap/extension-file-handler": "3.27.1",
74
- "@tiptap/extension-highlight": "3.27.1",
75
- "@tiptap/extension-image": "3.27.1",
76
- "@tiptap/extension-mathematics": "3.27.1",
77
- "@tiptap/extension-subscript": "3.27.1",
78
- "@tiptap/extension-superscript": "3.27.1",
79
- "@tiptap/extension-table": "3.27.1",
80
- "@tiptap/extension-table-of-contents": "3.27.1",
81
- "@tiptap/extension-task-item": "3.27.1",
82
- "@tiptap/extension-task-list": "3.27.1",
83
- "@tiptap/extension-text-style": "3.27.1",
84
- "@tiptap/extensions": "3.27.1",
85
- "@tiptap/markdown": "3.27.1",
86
- "@tiptap/pm": "3.27.1",
87
- "@tiptap/react": "3.27.1",
88
- "@tiptap/starter-kit": "3.27.1",
89
- "@tiptap/static-renderer": "3.27.1",
70
+ "@tiptap/core": "3.31.3",
71
+ "@tiptap/extension-code": "3.31.3",
72
+ "@tiptap/extension-code-block-lowlight": "3.31.3",
73
+ "@tiptap/extension-file-handler": "3.31.3",
74
+ "@tiptap/extension-find-and-replace": "3.31.3",
75
+ "@tiptap/extension-highlight": "3.31.3",
76
+ "@tiptap/extension-image": "3.31.3",
77
+ "@tiptap/extension-mathematics": "3.31.3",
78
+ "@tiptap/extension-subscript": "3.31.3",
79
+ "@tiptap/extension-superscript": "3.31.3",
80
+ "@tiptap/extension-table": "3.31.3",
81
+ "@tiptap/extension-table-of-contents": "3.31.3",
82
+ "@tiptap/extension-task-item": "3.31.3",
83
+ "@tiptap/extension-task-list": "3.31.3",
84
+ "@tiptap/extension-text-style": "3.31.3",
85
+ "@tiptap/extensions": "3.31.3",
86
+ "@tiptap/markdown": "3.31.3",
87
+ "@tiptap/pm": "3.31.3",
88
+ "@tiptap/react": "3.31.3",
89
+ "@tiptap/starter-kit": "3.31.3",
90
+ "@tiptap/static-renderer": "3.31.3",
90
91
  "chart.js": "^4.5.1",
91
92
  "katex": "^0.16.47",
92
93
  "lowlight": "3.3.0"
@@ -105,13 +106,13 @@
105
106
  "vitest": "^3.2.4"
106
107
  },
107
108
  "overrides": {
108
- "@tiptap/core": "3.27.1",
109
- "@tiptap/pm": "3.27.1",
110
- "@tiptap/extension-list": "3.27.1",
111
- "@tiptap/extensions": "3.27.1",
112
- "@tiptap/extension-code-block": "3.27.1",
113
- "@tiptap/extension-file-handler": "3.27.1",
114
- "@tiptap/extension-bubble-menu": "3.27.1",
115
- "@tiptap/extension-floating-menu": "3.27.1"
109
+ "@tiptap/core": "3.31.3",
110
+ "@tiptap/pm": "3.31.3",
111
+ "@tiptap/extension-list": "3.31.3",
112
+ "@tiptap/extensions": "3.31.3",
113
+ "@tiptap/extension-code-block": "3.31.3",
114
+ "@tiptap/extension-file-handler": "3.31.3",
115
+ "@tiptap/extension-bubble-menu": "3.31.3",
116
+ "@tiptap/extension-floating-menu": "3.31.3"
116
117
  }
117
118
  }