@wair/editor 0.0.1-beta.1 → 0.0.3

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.css CHANGED
@@ -1,449 +1,315 @@
1
- @tailwind base;
2
- @tailwind components;
3
- @tailwind utilities;
4
-
5
- @layer base {
6
- :root {
7
- --background: 0 0% 100%;
8
- --foreground: 0 0% 3.9%;
9
- --card: 0 0% 100%;
10
- --card-foreground: 0 0% 3.9%;
11
- --popover: 0 0% 100%;
12
- --popover-foreground: 0 0% 3.9%;
13
- --primary: 0 0% 9%;
14
- --primary-foreground: 0 0% 98%;
15
- --secondary: 0 0% 96.1%;
16
- --secondary-foreground: 0 0% 9%;
17
- --muted: 0 0% 96.1%;
18
- --muted-foreground: 0 0% 45.1%;
19
- --accent: 0 0% 96.1%;
20
- --accent-foreground: 0 0% 9%;
21
- --destructive: 0 84.2% 60.2%;
22
- --destructive-foreground: 0 0% 98%;
23
- --input: 0 0% 89.8%;
24
- --ring: 0 0% 3.9%;
25
- --chart-1: 12 76% 61%;
26
- --chart-2: 173 58% 39%;
27
- --chart-3: 197 37% 24%;
28
- --chart-4: 43 74% 66%;
29
- --chart-5: 27 87% 67%;
30
- /* 新增变量 */
31
- --brand: 211 100% 49%;
32
- --brand-heavy: 212 100% 27%;
33
- --radius: 8px;
34
- --gray-rgb: 28, 31, 35;
35
- --text-primary: 214 11% 12%;
36
- --text-second: 210 4% 30%;
37
- --text-auxiliary: 210 2% 47%;
38
- --text-disabled: 210 1% 74%;
39
-
40
- --border-default: 214 11% 12% / 0.06;
41
- --border-focus: 211 100% 49%;
42
-
43
- --status-success: 126 50% 47%;
44
- --status-success-heavy: 126 51% 25%;
45
-
46
- --status-warning: 32 100% 49%;
47
- --status-warning-heavy: 32 100% 27%;
48
-
49
- --status-danger: 7 95% 55%;
50
- --status-danger-heavy: 7 77% 30%;
51
-
52
- --cyan: 186 95% 37%;
53
- --cyan-heavy: 186 94% 20%;
54
-
55
- --purple: 291 63% 43%;
56
- --purple-heavy: 291 63% 24%;
57
-
58
- --color-1: 0 100% 63%;
59
- --color-2: 270 100% 63%;
60
- --color-3: 210 100% 63%;
61
- --color-4: 195 100% 63%;
62
- --color-5: 90 100% 63%;
63
- }
64
- .dark {
65
- --background: 0 0% 3.9%;
66
- --foreground: 0 0% 98%;
67
- --card: 0 0% 3.9%;
68
- --card-foreground: 0 0% 98%;
69
- --popover: 0 0% 3.9%;
70
- --popover-foreground: 0 0% 98%;
71
- --primary: 0 0% 98%;
72
- --primary-foreground: 0 0% 9%;
73
- --secondary: 0 0% 14.9%;
74
- --secondary-foreground: 0 0% 98%;
75
- --muted: 0 0% 14.9%;
76
- --muted-foreground: 0 0% 63.9%;
77
- --accent: 0 0% 14.9%;
78
- --accent-foreground: 0 0% 98%;
79
- --destructive: 0 62.8% 30.6%;
80
- --destructive-foreground: 0 0% 98%;
81
- --border: 0 0% 14.9%;
82
- --input: 0 0% 14.9%;
83
- --ring: 0 0% 83.1%;
84
- --chart-1: 220 70% 50%;
85
- --chart-2: 160 60% 45%;
86
- --chart-3: 30 80% 55%;
87
- --chart-4: 280 65% 60%;
88
- --chart-5: 340 75% 55%;
89
- }
90
- }
91
-
92
- .tiptap {
93
- p {
94
- @apply my-3;
95
- }
96
- }
97
-
98
- .tiptap {
99
- @apply relative min-h-[500px] px-20 py-10 focus:outline-none;
100
- outline: none;
101
- }
102
-
103
- /* 标题样式 */
104
- .tiptap h1 {
105
- @apply my-4 text-3xl font-bold tracking-tight;
106
- }
107
-
108
- .tiptap h2 {
109
- @apply my-3 text-2xl font-semibold tracking-tight;
110
- }
111
-
112
- /* 占位符样式 (Placeholder Extension) */
113
- .tiptap p.is-editor-empty:first-child::before {
114
- @apply pointer-events-none float-left h-0 text-muted-foreground;
115
- content: attr(data-placeholder);
116
- }
117
-
118
- .tiptap h1.is-empty::before,
119
- .tiptap h2.is-empty::before,
120
- .tiptap h3.is-empty::before,
121
- .tiptap h4.is-empty::before,
122
- .tiptap h5.is-empty::before,
123
- .tiptap h6.is-empty::before,
124
- .tiptap p.is-empty::before {
125
- color: hsl(var(--muted-foreground) / 0.5);
126
- content: attr(data-placeholder);
127
- float: left;
128
- height: 0;
129
- pointer-events: none;
130
- }
131
- .tiptap pre.is-empty::before {
132
- color: black;
133
- content: attr(data-placeholder);
134
- float: left;
135
- height: 0;
136
- pointer-events: none;
137
- }
138
-
139
- /* 选中文本样式 */
140
- .tiptap *::selection {
141
- @apply bg-blue-100 text-blue-900;
142
- }
143
-
144
- /* 图片样式 */
145
- .tiptap img {
146
- @apply my-4 h-auto max-w-full rounded-lg border shadow-sm transition-all;
147
- }
148
-
149
- .tiptap img.ProseMirror-selectednode {
150
- @apply border-blue-500 outline outline-4 outline-blue-500/30;
151
- }
152
-
153
- /* 列表样式优化 */
154
- .tiptap ul {
155
- @apply ml-6 list-disc space-y-1;
156
- }
157
-
158
- .tiptap ol {
159
- @apply ml-6 list-decimal space-y-1;
160
- }
161
-
162
- /* src/styles/tiptap.css */
163
-
164
- .tiptap ul[data-type="taskList"] {
165
- list-style: none;
166
- padding: 0;
167
- margin-left: 0.5rem;
168
- }
169
-
170
- .tiptap ul[data-type="taskList"] li {
171
- display: flex;
172
- align-items: center;
173
- }
174
-
175
- /* 隐藏原生 checkbox 的默认样式,可以使用 shadcn 风格定制 */
176
- .tiptap ul[data-type="taskList"] li > label {
177
- @apply mr-3 flex-shrink-0 cursor-pointer select-none pt-1;
178
- }
179
-
180
- .tiptap ul[data-type="taskList"] li > label input[type="checkbox"] {
181
- @apply h-4 w-4 cursor-pointer rounded border-muted-foreground/30 accent-primary;
182
- }
183
-
184
- /* 任务内容容器 */
185
- .tiptap ul[data-type="taskList"] li > div {
186
- @apply min-w-0 flex-1;
187
- }
188
-
189
- /* --- 核心功能:勾选后的中划线效果 --- */
190
- .tiptap ul[data-type="taskList"] li[data-checked="true"] > div {
191
- @apply text-muted-foreground;
192
- text-decoration: line-through;
193
- text-decoration-thickness: 2px;
194
- text-decoration-color: hsl(var(--muted-foreground) / 0.5);
195
- transition: all 0.2s ease;
196
- }
197
-
198
- /* 嵌套列表的缩进 */
199
- .tiptap ul[data-type="taskList"] ul[data-type="taskList"] {
200
- margin-left: 1.5rem;
201
- margin-top: 0.25rem;
202
- }
203
-
204
- /* 引用块样式 */
205
- .tiptap blockquote {
206
- @apply border-l-4 border-muted-foreground/30 pl-4 italic text-muted-foreground;
207
- }
208
-
209
- .tiptap code {
210
- @apply rounded-md bg-muted px-1.5 py-0.5 text-sm text-black;
211
- }
212
- .tiptap pre {
213
- @apply my-6 rounded-lg bg-muted p-4 font-mono text-black;
214
- }
215
- .tiptap pre code {
216
- @apply bg-transparent p-0 text-sm;
217
- }
218
-
219
- /* 编辑器基础样式 */
220
- .tiptap {
221
- /* 第一个子元素移除上边距 */
222
- :first-child {
223
- @apply mt-0;
224
- }
225
-
226
- /* 图片样式:块级元素、高度自动、上下边距为0、最大宽度100% */
227
- img {
228
- @apply my-0 block h-auto max-w-full;
229
-
230
- /* 图片被选中时的样式:紫色3px轮廓线 */
231
- &.ProseMirror-selectednode {
232
- @apply outline-[3px] outline-purple-500;
233
- }
234
- }
235
-
236
- /* 调整大小手柄的基础样式 */
237
- [data-resize-handle] {
238
- @apply absolute z-10 rounded-[2px];
239
- @apply border border-white/80 bg-gray-500/10;
240
-
241
- /* 悬停时背景更深 */
242
- &:hover {
243
- @apply bg-black/30;
244
- }
245
-
246
- /* 四个角落的手柄:8x8像素 */
247
- &[data-resize-handle="top-left"],
248
- &[data-resize-handle="top-right"],
249
- &[data-resize-handle="bottom-left"],
250
- &[data-resize-handle="bottom-right"] {
251
- @apply h-2 w-2;
252
- }
253
-
254
- /* 左上角手柄:位置和光标样式 */
255
- &[data-resize-handle="top-left"] {
256
- @apply -left-1 -top-1 cursor-nwse-resize;
257
- }
258
-
259
- /* 右上角手柄:位置和光标样式 */
260
- &[data-resize-handle="top-right"] {
261
- @apply -right-1 -top-1 cursor-nesw-resize;
262
- }
263
-
264
- /* 左下角手柄:位置和光标样式 */
265
- &[data-resize-handle="bottom-left"] {
266
- @apply -bottom-1 -left-1 cursor-nesw-resize;
267
- }
268
-
269
- /* 右下角手柄:位置和光标样式 */
270
- &[data-resize-handle="bottom-right"] {
271
- @apply -bottom-1 -right-1 cursor-nwse-resize;
272
- }
273
-
274
- /* 上下边缘手柄:高度6px,左右各留8px */
275
- &[data-resize-handle="top"],
276
- &[data-resize-handle="bottom"] {
277
- @apply left-2 right-2 h-0.5;
278
- }
279
-
280
- /* 顶部边缘手柄:位置和光标样式 */
281
- &[data-resize-handle="top"] {
282
- @apply -top-[3px] cursor-ns-resize;
283
- }
284
-
285
- /* 底部边缘手柄:位置和光标样式 */
286
- &[data-resize-handle="bottom"] {
287
- @apply -bottom-[3px] cursor-ns-resize;
288
- }
289
-
290
- /* 左右边缘手柄:宽度6px,上下各留8px */
291
- &[data-resize-handle="left"],
292
- &[data-resize-handle="right"] {
293
- @apply bottom-2 top-2 w-0.5;
294
- }
295
-
296
- /* 左侧边缘手柄:位置和光标样式 */
297
- &[data-resize-handle="left"] {
298
- @apply -left-[3px] cursor-ew-resize;
299
- }
300
-
301
- /* 右侧边缘手柄:位置和光标样式 */
302
- &[data-resize-handle="right"] {
303
- @apply -right-[3px] cursor-ew-resize;
304
- }
305
- }
306
-
307
- /* 调整大小状态激活时的包装器样式:1px黑色半透明轮廓 */
308
- [data-resize-state="true"] [data-resize-wrapper] {
309
- @apply rounded-sm outline outline-1 outline-black/25;
310
- }
311
- }
312
-
313
- .tiptap {
314
- .tableWrapper {
315
- @apply my-6 overflow-x-auto overflow-y-hidden pl-3 pt-3;
316
- }
317
-
318
- table {
319
- @apply my-0 box-border w-full border-collapse rounded border-black/10;
320
- @apply dark:border-white/20;
321
-
322
- td,
323
- th {
324
- @apply relative min-w-[20px] border border-black/10 p-2 text-left align-top;
325
- @apply dark:border-white/20;
326
-
327
- &:first-of-type:not(a) {
328
- @apply mt-0;
329
- }
330
-
331
- p {
332
- @apply m-0;
333
-
334
- & + p {
335
- @apply mt-3;
336
- }
337
- }
338
- }
339
-
340
- th {
341
- @apply font-bold;
342
- }
343
-
344
- .column-resize-handle {
345
- @apply pointer-events-none absolute -bottom-0.5 -right-0.5 top-0 w-1 bg-blue-500;
346
- &::before {
347
- @apply ml-2 h-full w-[1px] bg-black/20;
348
- @apply dark:bg-white/20;
349
- content: "";
350
- }
351
- }
352
-
353
- .selectedCell {
354
- @apply border-double border-black/20 bg-black/5;
355
- @apply dark:border-white/20 dark:bg-white/10;
356
- }
357
-
358
- .grip-column,
359
- .grip-row {
360
- @apply absolute flex cursor-pointer items-center justify-center bg-black/5;
361
- @apply dark:bg-white/10;
362
- }
363
- .grip-column {
364
- @apply -top-3 left-0 -ml-[1px] h-3 w-[calc(100%+1px)] border-l border-black/20;
365
- @apply dark:border-white/20;
366
-
367
- &:hover,
368
- &.selected {
369
- &::before {
370
- content: "";
371
- @apply w-2.5;
372
- }
373
- }
374
-
375
- &:hover {
376
- @apply bg-black/10;
377
- @apply dark:bg-white/20;
378
-
379
- &::before {
380
- @apply border-b-2 border-dotted border-black/60;
381
- @apply dark:border-white/60;
382
- }
383
- }
384
-
385
- &.first {
386
- @apply rounded-tl-sm border-transparent;
387
- }
388
-
389
- &.last {
390
- @apply rounded-tr-sm;
391
- }
392
-
393
- &.selected {
394
- @apply border-black/30 bg-black/30 shadow-sm;
395
- @apply dark:border-white/30 dark:bg-white/30;
396
-
397
- &::before {
398
- @apply border-b-2 border-dotted;
399
- }
400
- }
401
- }
402
-
403
- .grip-row {
404
- @apply -left-3 top-0 -mt-[1px] h-[calc(100%+1px)] w-3 border-t border-black/20;
405
- @apply dark:border-white/20;
406
-
407
- &:hover,
408
- &.selected {
409
- &::before {
410
- @apply h-2.5;
411
- content: "";
412
- }
413
- }
414
- &:hover {
415
- @apply bg-black/10;
416
- @apply dark:bg-white/20;
417
-
418
- &::before {
419
- @apply border-l-2 border-dotted border-black/60;
420
- @apply dark:border-white/60;
421
- }
422
- }
423
-
424
- &.first {
425
- @apply rounded-tl-sm border-transparent;
426
- }
427
-
428
- &.last {
429
- @apply rounded-bl-sm;
430
- }
431
-
432
- &.selected {
433
- @apply border-black/30 bg-black/30 shadow-sm;
434
- @apply dark:border-white/30 dark:bg-white/30;
435
-
436
- &::before {
437
- @apply border-l-2 border-dotted;
438
- }
439
- }
440
- }
441
- }
442
-
443
- &.resize-cursor {
444
- @apply cursor-col-resize;
445
- }
446
- }
1
+ .tiptap {
2
+ @apply relative px-8 py-4 focus:outline-none outline-none;
3
+ }
4
+ .not-toolbar .tiptap {
5
+ @apply px-3 py-2 text-sm leading-relaxed;
6
+ }
7
+
8
+ /* 标题样式 */
9
+ .tiptap h1 {
10
+ @apply my-4 text-3xl font-bold tracking-tight;
11
+ }
12
+
13
+ .tiptap h2 {
14
+ @apply my-3 text-2xl font-semibold tracking-tight;
15
+ }
16
+
17
+ /* 占位符样式 (Placeholder Extension) */
18
+ .tiptap p.is-editor-empty:first-child::before {
19
+ @apply pointer-events-none float-left h-0 text-muted-foreground;
20
+ content: attr(data-placeholder);
21
+ }
22
+
23
+ .tiptap h1.is-empty::before,
24
+ .tiptap h2.is-empty::before,
25
+ .tiptap h3.is-empty::before,
26
+ .tiptap h4.is-empty::before,
27
+ .tiptap h5.is-empty::before,
28
+ .tiptap h6.is-empty::before,
29
+ .tiptap p.is-empty::before {
30
+ @apply text-muted-foreground/50;
31
+ content: attr(data-placeholder);
32
+ @apply float-left h-0 pointer-events-none;
33
+ }
34
+
35
+ .tiptap pre.is-empty::before {
36
+ @apply text-black;
37
+ content: attr(data-placeholder);
38
+ @apply float-left h-0 pointer-events-none;
39
+ }
40
+
41
+ /* 选中文本样式 */
42
+ .tiptap *::selection {
43
+ @apply bg-blue-100 text-blue-900;
44
+ }
45
+
46
+ .tiptap img.ProseMirror-selectednode {
47
+ @apply border-blue-500 outline outline-4 outline-blue-500/30;
48
+ }
49
+
50
+ /* 列表样式优化 */
51
+ .tiptap ul {
52
+ @apply ml-6 list-disc space-y-1;
53
+ }
54
+
55
+ .tiptap ol {
56
+ @apply ml-6 list-decimal space-y-1;
57
+ }
58
+
59
+ .tiptap a {
60
+ @apply text-primary underline } .tiptap ul[data-type="taskList"] { @apply list-none p-0 ml-2;
61
+ }
62
+
63
+ .tiptap ul[data-type="taskList"] li {
64
+ @apply flex items-center;
65
+ }
66
+
67
+ /* 隐藏原生 checkbox 的默认样式,可以使用 shadcn 风格定制 */
68
+ .tiptap ul[data-type="taskList"] li > label {
69
+ @apply mr-3 flex-shrink-0 cursor-pointer select-none pt-1;
70
+ }
71
+
72
+ .tiptap ul[data-type="taskList"] li > label input[type="checkbox"] {
73
+ @apply h-4 w-4 cursor-pointer rounded border-muted-foreground/30 accent-primary;
74
+ }
75
+
76
+ /* 任务内容容器 */
77
+ .tiptap ul[data-type="taskList"] li > div {
78
+ @apply min-w-0 flex-1;
79
+ }
80
+
81
+ /* --- 核心功能:勾选后的中划线效果 --- */
82
+ .tiptap ul[data-type="taskList"] li[data-checked="true"] > div {
83
+ @apply text-muted-foreground line-through decoration-2 decoration-muted-foreground/50 transition-all duration-200;
84
+ }
85
+
86
+ /* 嵌套列表的缩进 */
87
+ .tiptap ul[data-type="taskList"] ul[data-type="taskList"] {
88
+ @apply ml-6 mt-1;
89
+ }
90
+
91
+ /* 引用块样式 */
92
+ .tiptap blockquote {
93
+ @apply border-l-4 border-muted-foreground/30 pl-4 italic text-muted-foreground;
94
+ }
95
+
96
+ .tiptap code {
97
+ @apply rounded-md bg-muted px-1.5 py-0.5 text-sm text-black;
98
+ }
99
+ .tiptap pre {
100
+ @apply rounded-lg bg-muted p-4 font-mono text-black;
101
+ }
102
+ .tiptap pre code {
103
+ @apply bg-transparent p-0 text-sm;
104
+ }
105
+
106
+ [data-rmiz-ghost] {
107
+ @apply absolute pointer-events-none;
108
+ }
109
+
110
+ [data-rmiz-btn-zoom],
111
+ [data-rmiz-btn-unzoom] {
112
+ @apply bg-black/70 rounded-full border-0 shadow-[0_0_1px_rgba(255,255,255,0.5)] text-white h-[40px] m-0 outline-offset-2 p-[9px] touch-manipulation w-[40px];
113
+ -webkit-appearance: none;
114
+ -moz-appearance: none;
115
+ appearance: none;
116
+ }
117
+
118
+ [data-rmiz-btn-zoom]:not(:focus):not(:active) {
119
+ @apply absolute overflow-hidden whitespace-nowrap h-[1px] w-[1px] pointer-events-none;
120
+ clip: rect(0 0 0 0);
121
+ clip-path: inset(50%);
122
+ }
123
+
124
+ [data-rmiz-btn-zoom] {
125
+ @apply absolute cursor-zoom-in;
126
+ inset: 10px 10px auto auto;
127
+ }
128
+
129
+ [data-rmiz-btn-unzoom] {
130
+ @apply absolute cursor-zoom-out z-[1];
131
+ inset: 20px 20px auto auto;
132
+ }
133
+
134
+ [data-rmiz-content="found"] img,
135
+ [data-rmiz-content="found"] svg,
136
+ [data-rmiz-content="found"] [role="img"],
137
+ [data-rmiz-content="found"] [data-zoom] {
138
+ cursor: inherit;
139
+ }
140
+
141
+ [data-rmiz-modal]::backdrop {
142
+ @apply hidden;
143
+ }
144
+
145
+ [data-rmiz-modal][open] {
146
+ @apply fixed w-screen h-screen max-w-none max-h-none m-0 p-0 border-0 bg-transparent overflow-hidden;
147
+ }
148
+
149
+ [data-rmiz-modal-overlay] {
150
+ @apply absolute inset-0 transition-colors duration-300;
151
+ }
152
+
153
+ [data-rmiz-modal-overlay="hidden"] {
154
+ @apply bg-white/0;
155
+ }
156
+
157
+ [data-rmiz-modal-overlay="visible"] {
158
+ @apply bg-white;
159
+ }
160
+
161
+ [data-rmiz-modal-content] {
162
+ @apply relative w-full h-full;
163
+ }
164
+
165
+ [data-rmiz-modal-img] {
166
+ position: absolute;
167
+ cursor: zoom-out;
168
+ image-rendering: high-quality;
169
+ transform-origin: top left;
170
+ transition: transform 0.3s;
171
+ }
172
+ @media (prefers-reduced-motion: reduce) {
173
+ [data-rmiz-modal-overlay],
174
+ [data-rmiz-modal-img] {
175
+ transition-duration: 0.01ms !important;
176
+ }
177
+ }
178
+
179
+ .tiptap .tableWrapper {
180
+ @apply my-6 overflow-x-auto overflow-y-hidden pl-3 pt-3;
181
+ }
182
+
183
+ .tiptap table {
184
+ @apply my-0 box-border w-full border-collapse rounded border-black/10;
185
+ @apply dark:border-white/20;
186
+ }
187
+
188
+ .tiptap table td,
189
+ .tiptap table th {
190
+ @apply relative min-w-[20px] border border-black/10 p-2 text-left align-top;
191
+ @apply dark:border-white/20;
192
+ }
193
+
194
+ .tiptap table td:first-of-type:not(a),
195
+ .tiptap table th:first-of-type:not(a) {
196
+ @apply mt-0;
197
+ }
198
+
199
+ .tiptap table td p,
200
+ .tiptap table th p {
201
+ @apply m-0;
202
+ }
203
+
204
+ .tiptap table td p + p,
205
+ .tiptap table th p + p {
206
+ @apply mt-3;
207
+ }
208
+
209
+ .tiptap table th {
210
+ @apply font-bold;
211
+ }
212
+
213
+ .tiptap table .column-resize-handle {
214
+ @apply pointer-events-none absolute -bottom-0.5 -right-0.5 top-0 w-1 bg-blue-500;
215
+ }
216
+
217
+ .tiptap table .column-resize-handle::before {
218
+ @apply ml-2 h-full w-[1px] bg-black/20;
219
+ @apply dark:bg-white/20;
220
+ content: "";
221
+ }
222
+
223
+ .tiptap table .selectedCell {
224
+ @apply border-double border-black/20 bg-black/5;
225
+ @apply dark:border-white/20 dark:bg-white/10;
226
+ }
227
+
228
+ .tiptap table .grip-column,
229
+ .tiptap table .grip-row {
230
+ @apply absolute flex cursor-pointer items-center justify-center bg-black/5;
231
+ @apply dark:bg-white/10;
232
+ }
233
+
234
+ .tiptap table .grip-column {
235
+ @apply -top-3 left-0 -ml-[1px] h-3 w-[calc(100%+1px)] border-l border-black/20;
236
+ @apply dark:border-white/20;
237
+ }
238
+
239
+ .tiptap table .grip-column:hover::before,
240
+ .tiptap table .grip-column.selected::before {
241
+ content: "";
242
+ @apply w-2.5;
243
+ }
244
+
245
+ .tiptap table .grip-column:hover {
246
+ @apply bg-black/10;
247
+ @apply dark:bg-white/20;
248
+ }
249
+
250
+ .tiptap table .grip-column:hover::before {
251
+ @apply border-b-2 border-dotted border-black/60;
252
+ @apply dark:border-white/60;
253
+ }
254
+
255
+ .tiptap table .grip-column.first {
256
+ @apply rounded-tl-sm border-transparent;
257
+ }
258
+
259
+ .tiptap table .grip-column.last {
260
+ @apply rounded-tr-sm;
261
+ }
262
+
263
+ .tiptap table .grip-column.selected {
264
+ @apply border-black/30 bg-black/30 shadow-sm;
265
+ @apply dark:border-white/30 dark:bg-white/30;
266
+ }
267
+
268
+ .tiptap table .grip-column.selected::before {
269
+ @apply border-b-2 border-dotted;
270
+ }
271
+
272
+ .tiptap table .grip-row {
273
+ @apply -left-3 top-0 -mt-[1px] h-[calc(100%+1px)] w-3 border-t border-black/20;
274
+ @apply dark:border-white/20;
275
+ }
276
+
277
+ .tiptap table .grip-row:hover::before,
278
+ .tiptap table .grip-row.selected::before {
279
+ @apply h-2.5;
280
+ content: "";
281
+ }
282
+
283
+ .tiptap table .grip-row:hover {
284
+ @apply bg-black/10;
285
+ @apply dark:bg-white/20;
286
+ }
287
+
288
+ .tiptap table .grip-row:hover::before {
289
+ @apply border-l-2 border-dotted border-black/60;
290
+ @apply dark:border-white/60;
291
+ }
292
+
293
+ .tiptap table .grip-row.first {
294
+ @apply rounded-tl-sm border-transparent;
295
+ }
296
+
297
+ .tiptap table .grip-row.last {
298
+ @apply rounded-bl-sm;
299
+ }
300
+
301
+ .tiptap table .grip-row.selected {
302
+ @apply border-black/30 bg-black/30 shadow-sm;
303
+ @apply dark:border-white/30 dark:bg-white/30;
304
+ }
305
+
306
+ .tiptap table .grip-row.selected::before {
307
+ @apply border-l-2 border-dotted;
308
+ }
309
+
310
+ .tiptap.resize-cursor {
311
+ @apply cursor-col-resize;
312
+ }
447
313
 
448
314
 
449
315
  /*# sourceMappingURL=index.css.map*/