@thangph2146/lexical-editor 0.0.1

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.
Files changed (183) hide show
  1. package/dist/editor-x/editor.cjs +33121 -0
  2. package/dist/editor-x/editor.cjs.map +1 -0
  3. package/dist/editor-x/editor.css +2854 -0
  4. package/dist/editor-x/editor.css.map +1 -0
  5. package/dist/editor-x/editor.d.cts +12 -0
  6. package/dist/editor-x/editor.d.ts +12 -0
  7. package/dist/editor-x/editor.js +33095 -0
  8. package/dist/editor-x/editor.js.map +1 -0
  9. package/dist/index.cjs +33210 -0
  10. package/dist/index.cjs.map +1 -0
  11. package/dist/index.css +2854 -0
  12. package/dist/index.css.map +1 -0
  13. package/dist/index.d.cts +15 -0
  14. package/dist/index.d.ts +15 -0
  15. package/dist/index.js +33183 -0
  16. package/dist/index.js.map +1 -0
  17. package/package.json +84 -0
  18. package/src/components/lexical-editor.tsx +123 -0
  19. package/src/context/editor-container-context.tsx +29 -0
  20. package/src/context/priority-image-context.tsx +7 -0
  21. package/src/context/toolbar-context.tsx +60 -0
  22. package/src/context/uploads-context.tsx +53 -0
  23. package/src/editor-hooks/use-debounce.ts +80 -0
  24. package/src/editor-hooks/use-modal.tsx +64 -0
  25. package/src/editor-hooks/use-report.ts +57 -0
  26. package/src/editor-hooks/use-update-toolbar.ts +41 -0
  27. package/src/editor-ui/broken-image.tsx +18 -0
  28. package/src/editor-ui/caption-composer.tsx +45 -0
  29. package/src/editor-ui/code-button.tsx +75 -0
  30. package/src/editor-ui/color-picker.tsx +2010 -0
  31. package/src/editor-ui/content-editable.tsx +37 -0
  32. package/src/editor-ui/hooks/use-image-caption-controls.ts +118 -0
  33. package/src/editor-ui/hooks/use-image-node-interactions.ts +245 -0
  34. package/src/editor-ui/hooks/use-responsive-image-dimensions.ts +202 -0
  35. package/src/editor-ui/image-component.tsx +321 -0
  36. package/src/editor-ui/image-placeholder.tsx +57 -0
  37. package/src/editor-ui/image-resizer.tsx +499 -0
  38. package/src/editor-ui/image-sizing.ts +120 -0
  39. package/src/editor-ui/lazy-image.tsx +136 -0
  40. package/src/editor-x/editor.tsx +117 -0
  41. package/src/editor-x/nodes.ts +79 -0
  42. package/src/editor-x/plugins.tsx +380 -0
  43. package/src/hooks/use-click-outside.ts +27 -0
  44. package/src/hooks/use-element-size.ts +54 -0
  45. package/src/hooks/use-header-height.ts +95 -0
  46. package/src/hooks/use-isomorphic-layout-effect.ts +4 -0
  47. package/src/index.ts +4 -0
  48. package/src/lib/logger.ts +6 -0
  49. package/src/lib/utils.ts +19 -0
  50. package/src/nodes/autocomplete-node.tsx +94 -0
  51. package/src/nodes/embeds/tweet-node.tsx +224 -0
  52. package/src/nodes/embeds/youtube-node.tsx +519 -0
  53. package/src/nodes/emoji-node.tsx +83 -0
  54. package/src/nodes/image-node.tsx +328 -0
  55. package/src/nodes/keyword-node.tsx +58 -0
  56. package/src/nodes/layout-container-node.tsx +128 -0
  57. package/src/nodes/layout-item-node.tsx +118 -0
  58. package/src/nodes/list-with-color-node.tsx +160 -0
  59. package/src/nodes/mention-node.ts +122 -0
  60. package/src/plugins/actions/actions-plugin.tsx +3 -0
  61. package/src/plugins/actions/character-limit-plugin.tsx +27 -0
  62. package/src/plugins/actions/clear-editor-plugin.tsx +70 -0
  63. package/src/plugins/actions/counter-character-plugin.tsx +80 -0
  64. package/src/plugins/actions/edit-mode-toggle-plugin.tsx +49 -0
  65. package/src/plugins/actions/import-export-plugin.tsx +61 -0
  66. package/src/plugins/actions/markdown-toggle-plugin.tsx +78 -0
  67. package/src/plugins/actions/max-length-plugin.tsx +59 -0
  68. package/src/plugins/actions/share-content-plugin.tsx +72 -0
  69. package/src/plugins/actions/speech-to-text-plugin.tsx +159 -0
  70. package/src/plugins/actions/tree-view-plugin.tsx +63 -0
  71. package/src/plugins/align-plugin.tsx +86 -0
  72. package/src/plugins/auto-link-plugin.tsx +34 -0
  73. package/src/plugins/autocomplete-plugin.tsx +2574 -0
  74. package/src/plugins/code-action-menu-plugin.tsx +240 -0
  75. package/src/plugins/code-highlight-plugin.tsx +22 -0
  76. package/src/plugins/component-picker-menu-plugin.tsx +427 -0
  77. package/src/plugins/context-menu-plugin.tsx +311 -0
  78. package/src/plugins/drag-drop-paste-plugin.tsx +52 -0
  79. package/src/plugins/draggable-block-plugin.tsx +50 -0
  80. package/src/plugins/embeds/auto-embed-plugin.tsx +324 -0
  81. package/src/plugins/embeds/twitter-plugin.tsx +45 -0
  82. package/src/plugins/embeds/youtube-plugin.tsx +84 -0
  83. package/src/plugins/emoji-picker-plugin.tsx +206 -0
  84. package/src/plugins/emojis-plugin.tsx +84 -0
  85. package/src/plugins/floating-link-editor-plugin.tsx +791 -0
  86. package/src/plugins/floating-text-format-plugin.tsx +710 -0
  87. package/src/plugins/images-plugin.tsx +671 -0
  88. package/src/plugins/keywords-plugin.tsx +59 -0
  89. package/src/plugins/layout-plugin.tsx +658 -0
  90. package/src/plugins/link-plugin.tsx +18 -0
  91. package/src/plugins/list-color-plugin.tsx +178 -0
  92. package/src/plugins/list-max-indent-level-plugin.tsx +85 -0
  93. package/src/plugins/mentions-plugin.tsx +714 -0
  94. package/src/plugins/picker/alignment-picker-plugin.tsx +40 -0
  95. package/src/plugins/picker/bulleted-list-picker-plugin.tsx +14 -0
  96. package/src/plugins/picker/check-list-picker-plugin.tsx +14 -0
  97. package/src/plugins/picker/code-picker-plugin.tsx +30 -0
  98. package/src/plugins/picker/columns-layout-picker-plugin.tsx +16 -0
  99. package/src/plugins/picker/component-picker-option.tsx +47 -0
  100. package/src/plugins/picker/divider-picker-plugin.tsx +14 -0
  101. package/src/plugins/picker/embeds-picker-plugin.tsx +24 -0
  102. package/src/plugins/picker/heading-picker-plugin.tsx +32 -0
  103. package/src/plugins/picker/image-picker-plugin.tsx +16 -0
  104. package/src/plugins/picker/numbered-list-picker-plugin.tsx +14 -0
  105. package/src/plugins/picker/paragraph-picker-plugin.tsx +20 -0
  106. package/src/plugins/picker/quote-picker-plugin.tsx +21 -0
  107. package/src/plugins/picker/table-picker-plugin.tsx +56 -0
  108. package/src/plugins/tab-focus-plugin.tsx +66 -0
  109. package/src/plugins/table-column-resizer-plugin.tsx +309 -0
  110. package/src/plugins/table-plugin.tsx +299 -0
  111. package/src/plugins/toolbar/block-format/block-format-data.tsx +69 -0
  112. package/src/plugins/toolbar/block-format/format-bulleted-list.tsx +40 -0
  113. package/src/plugins/toolbar/block-format/format-check-list.tsx +40 -0
  114. package/src/plugins/toolbar/block-format/format-code-block.tsx +45 -0
  115. package/src/plugins/toolbar/block-format/format-heading.tsx +34 -0
  116. package/src/plugins/toolbar/block-format/format-list-with-marker.tsx +74 -0
  117. package/src/plugins/toolbar/block-format/format-numbered-list.tsx +40 -0
  118. package/src/plugins/toolbar/block-format/format-paragraph.tsx +31 -0
  119. package/src/plugins/toolbar/block-format/format-quote.tsx +32 -0
  120. package/src/plugins/toolbar/block-format-toolbar-plugin.tsx +117 -0
  121. package/src/plugins/toolbar/block-insert/insert-columns-layout.tsx +32 -0
  122. package/src/plugins/toolbar/block-insert/insert-embeds.tsx +31 -0
  123. package/src/plugins/toolbar/block-insert/insert-horizontal-rule.tsx +30 -0
  124. package/src/plugins/toolbar/block-insert/insert-image.tsx +32 -0
  125. package/src/plugins/toolbar/block-insert/insert-table.tsx +32 -0
  126. package/src/plugins/toolbar/block-insert-plugin.tsx +30 -0
  127. package/src/plugins/toolbar/clear-formatting-toolbar-plugin.tsx +92 -0
  128. package/src/plugins/toolbar/code-language-toolbar-plugin.tsx +121 -0
  129. package/src/plugins/toolbar/element-format-toolbar-plugin.tsx +251 -0
  130. package/src/plugins/toolbar/font-background-toolbar-plugin.tsx +179 -0
  131. package/src/plugins/toolbar/font-color-toolbar-plugin.tsx +101 -0
  132. package/src/plugins/toolbar/font-family-toolbar-plugin.tsx +91 -0
  133. package/src/plugins/toolbar/font-format-toolbar-plugin.tsx +85 -0
  134. package/src/plugins/toolbar/font-size-toolbar-plugin.tsx +177 -0
  135. package/src/plugins/toolbar/history-toolbar-plugin.tsx +87 -0
  136. package/src/plugins/toolbar/link-toolbar-plugin.tsx +90 -0
  137. package/src/plugins/toolbar/subsuper-toolbar-plugin.tsx +69 -0
  138. package/src/plugins/toolbar/toolbar-plugin.tsx +66 -0
  139. package/src/plugins/typing-pref-plugin.tsx +118 -0
  140. package/src/shared/can-use-dom.ts +4 -0
  141. package/src/shared/environment.ts +47 -0
  142. package/src/shared/invariant.ts +16 -0
  143. package/src/shared/use-layout-effect.ts +12 -0
  144. package/src/themes/_mixins.scss +107 -0
  145. package/src/themes/_variables.scss +33 -0
  146. package/src/themes/editor-theme.scss +622 -0
  147. package/src/themes/editor-theme.ts +118 -0
  148. package/src/themes/plugins.scss +1180 -0
  149. package/src/themes/ui-components.scss +936 -0
  150. package/src/transformers/markdown-emoji-transformer.ts +20 -0
  151. package/src/transformers/markdown-hr-transformer.ts +28 -0
  152. package/src/transformers/markdown-image-transformer.ts +31 -0
  153. package/src/transformers/markdown-list-transformer.ts +51 -0
  154. package/src/transformers/markdown-table-transformer.ts +200 -0
  155. package/src/transformers/markdown-tweet-transformer.ts +26 -0
  156. package/src/ui/button-group.tsx +10 -0
  157. package/src/ui/button.tsx +29 -0
  158. package/src/ui/collapsible.tsx +67 -0
  159. package/src/ui/command.tsx +48 -0
  160. package/src/ui/dialog.tsx +146 -0
  161. package/src/ui/flex.tsx +38 -0
  162. package/src/ui/input.tsx +20 -0
  163. package/src/ui/label.tsx +20 -0
  164. package/src/ui/popover.tsx +128 -0
  165. package/src/ui/scroll-area.tsx +17 -0
  166. package/src/ui/select.tsx +171 -0
  167. package/src/ui/separator.tsx +20 -0
  168. package/src/ui/slider.tsx +14 -0
  169. package/src/ui/slot.tsx +3 -0
  170. package/src/ui/tabs.tsx +87 -0
  171. package/src/ui/toggle-group.tsx +109 -0
  172. package/src/ui/toggle.tsx +28 -0
  173. package/src/ui/tooltip.tsx +28 -0
  174. package/src/ui/typography.tsx +44 -0
  175. package/src/utils/doc-serialization.ts +68 -0
  176. package/src/utils/emoji-list.ts +16604 -0
  177. package/src/utils/get-dom-range-rect.ts +20 -0
  178. package/src/utils/get-selected-node.ts +20 -0
  179. package/src/utils/is-mobile-width.ts +0 -0
  180. package/src/utils/set-floating-elem-position-for-link-editor.ts +39 -0
  181. package/src/utils/set-floating-elem-position.ts +44 -0
  182. package/src/utils/swipe.ts +119 -0
  183. package/src/utils/url.ts +32 -0
@@ -0,0 +1,2854 @@
1
+ /* src/themes/editor-theme.scss */
2
+ @keyframes spin {
3
+ from {
4
+ transform: rotate(0deg);
5
+ }
6
+ to {
7
+ transform: rotate(360deg);
8
+ }
9
+ }
10
+ @keyframes editor-fade-in {
11
+ from {
12
+ opacity: 0;
13
+ transform: translateY(-10px);
14
+ }
15
+ to {
16
+ opacity: 1;
17
+ transform: translateY(0);
18
+ }
19
+ }
20
+ .editor-tabs-trigger {
21
+ display: inline-flex;
22
+ align-items: center;
23
+ justify-content: center;
24
+ white-space: nowrap;
25
+ border-radius: calc(var(--radius) - 2px);
26
+ padding: 0.375rem 0.75rem;
27
+ font-size: 0.875rem;
28
+ font-weight: 500;
29
+ transition: all 0.2s;
30
+ cursor: pointer;
31
+ border: none;
32
+ background: transparent;
33
+ color: var(--muted-foreground);
34
+ }
35
+ .editor-tabs-trigger:focus-visible {
36
+ outline: none;
37
+ box-shadow: 0 0 0 2px var(--ring), 0 0 0 4px var(--background, transparent);
38
+ }
39
+ .editor-tabs-trigger:disabled {
40
+ pointer-events: none;
41
+ opacity: 0.5;
42
+ }
43
+ .editor-tabs-trigger[data-state=active] {
44
+ background-color: var(--background);
45
+ color: var(--foreground);
46
+ box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
47
+ }
48
+ .editor-tabs-list {
49
+ display: inline-flex;
50
+ height: 2.5rem;
51
+ align-items: center;
52
+ justify-content: center;
53
+ border-radius: var(--radius);
54
+ background-color: var(--muted);
55
+ padding: 0.25rem;
56
+ color: var(--muted-foreground);
57
+ }
58
+ .editor-tabs-content {
59
+ margin-top: 0.5rem;
60
+ }
61
+ .editor-tabs-content:focus-visible {
62
+ outline: none;
63
+ box-shadow: 0 0 0 2px var(--ring), 0 0 0 4px var(--background, transparent);
64
+ }
65
+ .editor-flex {
66
+ display: flex;
67
+ }
68
+ .editor-flex--items-start {
69
+ align-items: flex-start;
70
+ }
71
+ .editor-flex--items-center {
72
+ align-items: center;
73
+ }
74
+ .editor-flex--items-end {
75
+ align-items: flex-end;
76
+ }
77
+ .editor-flex--items-baseline {
78
+ align-items: baseline;
79
+ }
80
+ .editor-flex--items-stretch {
81
+ align-items: stretch;
82
+ }
83
+ .editor-flex--justify-start {
84
+ justify-content: flex-start;
85
+ }
86
+ .editor-flex--justify-center {
87
+ justify-content: center;
88
+ }
89
+ .editor-flex--justify-end {
90
+ justify-content: flex-end;
91
+ }
92
+ .editor-flex--justify-between {
93
+ justify-content: space-between;
94
+ }
95
+ .editor-flex--justify-around {
96
+ justify-content: space-around;
97
+ }
98
+ .editor-flex--justify-evenly {
99
+ justify-content: space-evenly;
100
+ }
101
+ .editor-flex--flex-row {
102
+ flex-direction: row;
103
+ }
104
+ .editor-flex--flex-col {
105
+ flex-direction: column;
106
+ }
107
+ .editor-flex--flex-column {
108
+ flex-direction: column;
109
+ }
110
+ .editor-flex--flex-row-reverse {
111
+ flex-direction: row-reverse;
112
+ }
113
+ .editor-flex--flex-col-reverse {
114
+ flex-direction: column-reverse;
115
+ }
116
+ .editor-flex--flex-column-reverse {
117
+ flex-direction: column-reverse;
118
+ }
119
+ .editor-flex--flex-nowrap {
120
+ flex-wrap: nowrap;
121
+ }
122
+ .editor-flex--flex-wrap {
123
+ flex-wrap: wrap;
124
+ }
125
+ .editor-flex--flex-wrap-reverse {
126
+ flex-wrap: wrap-reverse;
127
+ }
128
+ .editor-flex-1 {
129
+ flex: 1 1 0%;
130
+ }
131
+ .editor-w-full {
132
+ width: 100%;
133
+ }
134
+ .editor-w-14 {
135
+ width: 3.5rem;
136
+ }
137
+ .editor-w-48 {
138
+ width: 12rem;
139
+ }
140
+ .editor-w-\[200px\] {
141
+ width: 200px;
142
+ }
143
+ .editor-h-full {
144
+ height: 100%;
145
+ }
146
+ .editor-h-4 {
147
+ height: 1rem;
148
+ }
149
+ .editor-overflow-hidden {
150
+ overflow: hidden;
151
+ }
152
+ .editor-fixed {
153
+ position: fixed;
154
+ }
155
+ .editor-absolute {
156
+ position: absolute;
157
+ }
158
+ .editor-absolute-full {
159
+ position: absolute;
160
+ inset: 0;
161
+ }
162
+ .editor-relative {
163
+ position: relative;
164
+ }
165
+ .editor-relative-full {
166
+ position: relative;
167
+ width: 100%;
168
+ height: 100%;
169
+ }
170
+ .editor-inline-block {
171
+ display: inline-block;
172
+ }
173
+ .editor-block {
174
+ display: block;
175
+ }
176
+ .editor-inset-0 {
177
+ inset: 0;
178
+ }
179
+ .editor-pointer-events-none {
180
+ pointer-events: none;
181
+ }
182
+ .editor-select-none {
183
+ user-select: none;
184
+ }
185
+ .editor-text-ellipsis {
186
+ text-overflow: ellipsis;
187
+ white-space: nowrap;
188
+ overflow: hidden;
189
+ }
190
+ .editor-z-10 {
191
+ z-index: 10;
192
+ }
193
+ .editor-rounded-sm {
194
+ border-radius: calc(var(--radius) - 4px);
195
+ }
196
+ .editor-rounded-md {
197
+ border-radius: calc(var(--radius) - 2px);
198
+ }
199
+ .editor-rounded-lg {
200
+ border-radius: var(--radius);
201
+ }
202
+ .editor-rounded-full {
203
+ border-radius: 9999px;
204
+ }
205
+ .editor-shadow-sm {
206
+ box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
207
+ }
208
+ .editor-shadow-md {
209
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
210
+ }
211
+ .editor-shadow-lg {
212
+ box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
213
+ }
214
+ .editor-bg-background {
215
+ background-color: var(--background);
216
+ }
217
+ .editor-bg-primary {
218
+ background-color: var(--primary, #3b82f6);
219
+ }
220
+ .editor-bg-muted {
221
+ background-color: var(--muted);
222
+ }
223
+ .editor-bg-accent {
224
+ background-color: var(--accent, #f1f5f9);
225
+ }
226
+ .editor-bg-transparent {
227
+ background-color: transparent;
228
+ }
229
+ .editor-bg-none {
230
+ background: none;
231
+ }
232
+ .editor-mb-2 {
233
+ margin-bottom: 0.5rem;
234
+ }
235
+ .editor-mb-3 {
236
+ margin-bottom: 0.75rem;
237
+ }
238
+ .editor-mt-1 {
239
+ margin-top: 0.25rem;
240
+ }
241
+ .editor-ml-auto {
242
+ margin-left: auto;
243
+ }
244
+ .editor-ml-4 {
245
+ margin-left: 1rem;
246
+ }
247
+ .editor-px-1 {
248
+ padding-left: 0.25rem;
249
+ padding-right: 0.25rem;
250
+ }
251
+ .editor-px-8 {
252
+ padding-left: 2rem;
253
+ padding-right: 2rem;
254
+ }
255
+ .editor-py-18 {
256
+ padding-top: 18px;
257
+ padding-bottom: 18px;
258
+ }
259
+ .editor-h-2 {
260
+ height: 0.5rem;
261
+ }
262
+ .editor-w-2 {
263
+ width: 0.5rem;
264
+ }
265
+ .editor--top-2-5 {
266
+ top: -0.625rem;
267
+ }
268
+ .editor--right-2-5 {
269
+ right: -0.625rem;
270
+ }
271
+ .editor--bottom-2-5 {
272
+ bottom: -0.625rem;
273
+ }
274
+ .editor--left-2-5 {
275
+ left: -0.625rem;
276
+ }
277
+ .editor-top-1-2 {
278
+ top: 50%;
279
+ }
280
+ .editor-left-1-2 {
281
+ left: 50%;
282
+ }
283
+ .editor-translate-x-1-2 {
284
+ transform: translateX(-50%);
285
+ }
286
+ .editor-translate-y-1-2 {
287
+ transform: translateY(-50%);
288
+ }
289
+ .editor-cursor-ns-resize {
290
+ cursor: ns-resize;
291
+ }
292
+ .editor-cursor-ew-resize {
293
+ cursor: ew-resize;
294
+ }
295
+ .editor-cursor-nesw-resize {
296
+ cursor: nesw-resize;
297
+ }
298
+ .editor-cursor-nwse-resize {
299
+ cursor: nwse-resize;
300
+ }
301
+ .editor-text-muted-xs {
302
+ font-size: 0.75rem;
303
+ color: var(--muted-foreground);
304
+ }
305
+ .editor-text-sm {
306
+ font-size: 0.875rem;
307
+ }
308
+ .editor-font-medium {
309
+ font-weight: 500;
310
+ }
311
+ .editor-text-muted-foreground {
312
+ color: var(--muted-foreground);
313
+ }
314
+ .editor-block {
315
+ display: block;
316
+ }
317
+ .editor-inline {
318
+ display: inline;
319
+ }
320
+ .editor-inline-block {
321
+ display: inline-block;
322
+ }
323
+ .editor-min-h-5 {
324
+ min-height: 1.25rem;
325
+ }
326
+ .editor-resize-none {
327
+ resize: none;
328
+ }
329
+ .editor-border-0 {
330
+ border-width: 0;
331
+ }
332
+ .editor-bg-transparent {
333
+ background-color: transparent;
334
+ }
335
+ .editor-px-2\.5 {
336
+ padding-left: 0.625rem;
337
+ padding-right: 0.625rem;
338
+ }
339
+ .editor-py-2 {
340
+ padding-top: 0.5rem;
341
+ padding-bottom: 0.5rem;
342
+ }
343
+ .editor-whitespace-pre-wrap {
344
+ white-space: pre-wrap;
345
+ }
346
+ .editor-outline-none {
347
+ outline: 2px solid transparent;
348
+ outline-offset: 2px;
349
+ }
350
+ .editor-word-break-break-word {
351
+ word-break: break-word;
352
+ }
353
+ .editor-box-border {
354
+ box-sizing: border-box;
355
+ }
356
+ .editor-cursor-text {
357
+ cursor: text;
358
+ }
359
+ .editor-caret-primary {
360
+ caret-color: var(--primary);
361
+ }
362
+ .editor-user-select-text {
363
+ user-select: text;
364
+ }
365
+ .editor-cursor-default {
366
+ cursor: default;
367
+ }
368
+ .editor-select-text {
369
+ user-select: text;
370
+ }
371
+ .editor-top-0 {
372
+ top: 0;
373
+ }
374
+ .editor-left-0 {
375
+ left: 0;
376
+ }
377
+ .editor-text-ellipsis {
378
+ overflow: hidden;
379
+ text-overflow: ellipsis;
380
+ white-space: nowrap;
381
+ }
382
+ .editor-opacity-30 {
383
+ opacity: 0.3;
384
+ }
385
+ .editor-p-1 {
386
+ padding: 0.25rem;
387
+ }
388
+ .editor-p-2 {
389
+ padding: 0.5rem;
390
+ }
391
+ .editor-px-1 {
392
+ padding-left: 0.25rem;
393
+ padding-right: 0.25rem;
394
+ }
395
+ .editor-px-0 {
396
+ padding-left: 0;
397
+ padding-right: 0;
398
+ }
399
+ .editor-rotate-90 {
400
+ transform: rotate(90deg);
401
+ }
402
+ .editor-transition-transform {
403
+ transition-property: transform;
404
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
405
+ transition-duration: 150ms;
406
+ }
407
+ .editor-shrink-0 {
408
+ flex-shrink: 0;
409
+ }
410
+ .editor-flex-grow {
411
+ flex-grow: 1;
412
+ }
413
+ .editor-flex-end {
414
+ display: flex;
415
+ justify-content: flex-end;
416
+ align-items: center;
417
+ }
418
+ .editor-ml-auto {
419
+ margin-left: auto;
420
+ }
421
+ .editor-ml-4 {
422
+ margin-left: 1rem;
423
+ }
424
+ .editor-mr-1-5 {
425
+ margin-right: 0.375rem;
426
+ }
427
+ .editor-mt-1 {
428
+ margin-top: 0.25rem;
429
+ }
430
+ .editor-mt-2 {
431
+ margin-top: 0.5rem;
432
+ }
433
+ .editor-mb-2 {
434
+ margin-bottom: 0.5rem;
435
+ }
436
+ .editor-mb-3 {
437
+ margin-bottom: 0.75rem;
438
+ }
439
+ .editor-gap-1 {
440
+ gap: 0.25rem;
441
+ }
442
+ .editor-gap-2 {
443
+ gap: 0.5rem;
444
+ }
445
+ .editor-items-center {
446
+ align-items: center;
447
+ }
448
+ .editor-justify-center {
449
+ justify-content: center;
450
+ }
451
+ .editor-flex-col {
452
+ flex-direction: column;
453
+ }
454
+ .editor-flex-wrap {
455
+ flex-wrap: wrap;
456
+ }
457
+ .editor-cursor-pointer {
458
+ cursor: pointer;
459
+ }
460
+ .editor-border {
461
+ border: 1px solid var(--border);
462
+ }
463
+ .editor-border-transparent {
464
+ border-color: transparent;
465
+ }
466
+ .editor-uppercase {
467
+ text-transform: uppercase;
468
+ }
469
+ .editor-transition-colors {
470
+ transition-property:
471
+ color,
472
+ background-color,
473
+ border-color,
474
+ text-decoration-color,
475
+ fill,
476
+ stroke;
477
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
478
+ transition-duration: 150ms;
479
+ }
480
+ .editor-animate-pulse {
481
+ animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
482
+ }
483
+ .editor-whitespace-nowrap {
484
+ white-space: nowrap;
485
+ }
486
+ .editor-text-foreground-50 {
487
+ color: color-mix(in srgb, var(--foreground), transparent 50%);
488
+ }
489
+ @keyframes pulse {
490
+ 0%, 100% {
491
+ opacity: 1;
492
+ }
493
+ 50% {
494
+ opacity: 0.5;
495
+ }
496
+ }
497
+ .editor-flex-center-justify-py-8 {
498
+ display: flex;
499
+ align-items: center;
500
+ justify-content: center;
501
+ padding-top: 2rem;
502
+ padding-bottom: 2rem;
503
+ }
504
+ .editor-object-cover {
505
+ object-fit: cover;
506
+ }
507
+ .editor-sr-only {
508
+ position: absolute;
509
+ width: 1px;
510
+ height: 1px;
511
+ padding: 0;
512
+ margin: -1px;
513
+ overflow: hidden;
514
+ clip: rect(0, 0, 0, 0);
515
+ white-space: nowrap;
516
+ border-width: 0;
517
+ }
518
+ .editor-icon-xs {
519
+ width: 0.75rem;
520
+ height: 0.75rem;
521
+ }
522
+ .editor-icon-sm {
523
+ width: 1rem;
524
+ height: 1rem;
525
+ }
526
+ .editor-icon-md {
527
+ width: 1.25rem;
528
+ height: 1.25rem;
529
+ }
530
+ .editor-icon-lg {
531
+ width: 1.5rem;
532
+ height: 1.5rem;
533
+ }
534
+ .editor-icon-xl {
535
+ width: 2rem;
536
+ height: 2rem;
537
+ }
538
+ .editor-typography-p {
539
+ line-height: 1.75rem;
540
+ }
541
+ .editor-typography-p:not(:first-child) {
542
+ margin-top: 1.5rem;
543
+ }
544
+ .editor-typography-p-small {
545
+ font-size: 0.875rem;
546
+ font-weight: 500;
547
+ line-height: 1;
548
+ }
549
+ .editor-typography-span-small-muted {
550
+ font-size: 0.875rem;
551
+ color: var(--muted-foreground);
552
+ }
553
+ .editor-toggle-group {
554
+ display: flex;
555
+ flex-wrap: wrap;
556
+ align-items: center;
557
+ justify-content: center;
558
+ gap: 0.25rem;
559
+ }
560
+ .editor-toggle-group-item {
561
+ display: inline-flex;
562
+ align-items: center;
563
+ justify-content: center;
564
+ border-radius: var(--radius);
565
+ font-size: 0.875rem;
566
+ font-weight: 500;
567
+ background-color: transparent;
568
+ color: var(--foreground);
569
+ transition: all 0.2s;
570
+ cursor: pointer;
571
+ border: 1px solid transparent;
572
+ padding: 0.5rem;
573
+ line-height: 1;
574
+ }
575
+ .editor-toggle-group-item:hover {
576
+ background-color: var(--muted);
577
+ color: var(--muted-foreground);
578
+ }
579
+ .editor-toggle-group-item[data-state=on] {
580
+ background-color: var(--accent, #f1f5f9);
581
+ color: var(--accent-foreground, #0f172a) !important;
582
+ }
583
+ .editor-toggle-group-item--size-sm {
584
+ padding: 0.25rem;
585
+ font-size: 0.75rem;
586
+ }
587
+ .editor-toggle-group-item--size-lg {
588
+ padding: 0.75rem;
589
+ font-size: 1rem;
590
+ }
591
+ .editor-toggle-group-item--outline {
592
+ border-color: var(--border);
593
+ }
594
+ .editor-toggle-group-item--outline:hover {
595
+ background-color: var(--accent, #f1f5f9);
596
+ border-color: var(--accent, #f1f5f9);
597
+ }
598
+ .editor-toggle-group-item:disabled {
599
+ pointer-events: none;
600
+ opacity: 0.5;
601
+ }
602
+ .editor-btn {
603
+ display: flex;
604
+ align-items: center;
605
+ justify-content: center;
606
+ white-space: nowrap;
607
+ border-radius: var(--radius);
608
+ font-weight: 500;
609
+ transition-property:
610
+ color,
611
+ background-color,
612
+ border-color,
613
+ text-decoration-color,
614
+ fill,
615
+ stroke;
616
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
617
+ transition-duration: 150ms;
618
+ font-size: 14px;
619
+ line-height: 20px;
620
+ }
621
+ .editor-btn:focus-visible {
622
+ outline: none;
623
+ box-shadow: 0 0 0 2px var(--ring), 0 0 0 4px var(--background, transparent);
624
+ }
625
+ .editor-btn {
626
+ border: 1px solid var(--input);
627
+ cursor: pointer;
628
+ }
629
+ .editor-btn:disabled {
630
+ pointer-events: none;
631
+ opacity: 0.5;
632
+ }
633
+ .editor-btn[data-state=on] {
634
+ background-color: var(--accent, #f1f5f9);
635
+ color: var(--accent-foreground, #0f172a) !important;
636
+ border-color: var(--accent, #f1f5f9);
637
+ }
638
+ .editor-btn--default {
639
+ background-color: var(--primary);
640
+ color: var(--primary-foreground);
641
+ border-color: var(--primary);
642
+ }
643
+ .editor-btn--default:hover {
644
+ background-color: color-mix(in srgb, var(--primary), black 10%);
645
+ }
646
+ .editor-btn--destructive {
647
+ background-color: var(--destructive);
648
+ color: var(--destructive-foreground);
649
+ border-color: var(--destructive);
650
+ }
651
+ .editor-btn--destructive:hover {
652
+ background-color: color-mix(in srgb, var(--destructive), black 10%);
653
+ }
654
+ .editor-btn--outline {
655
+ border-color: var(--input);
656
+ background-color: var(--background);
657
+ }
658
+ .editor-btn--outline:hover {
659
+ background-color: var(--accent, #f1f5f9);
660
+ color: var(--accent-foreground, #0f172a);
661
+ }
662
+ .editor-btn--secondary {
663
+ background-color: var(--secondary);
664
+ color: var(--secondary-foreground);
665
+ border-color: transparent;
666
+ }
667
+ .editor-btn--secondary:hover {
668
+ background-color: color-mix(in srgb, var(--secondary), black 10%);
669
+ }
670
+ .editor-btn--ghost {
671
+ background-color: transparent;
672
+ border-color: transparent;
673
+ }
674
+ .editor-btn--ghost:hover {
675
+ background-color: var(--accent, #f1f5f9);
676
+ color: var(--accent-foreground, #0f172a);
677
+ }
678
+ .editor-btn--link {
679
+ color: var(--primary);
680
+ text-decoration-line: underline;
681
+ text-underline-offset: 4px;
682
+ background-color: transparent;
683
+ }
684
+ .editor-btn--link:hover {
685
+ text-decoration-line: underline;
686
+ }
687
+ .editor-btn {
688
+ }
689
+ .editor-btn--size-default {
690
+ height: 2.25rem;
691
+ padding-left: 1rem;
692
+ padding-right: 1rem;
693
+ }
694
+ .editor-btn--size-sm {
695
+ height: 2rem;
696
+ border-radius: calc(var(--radius) - 2px);
697
+ padding-left: 0.75rem;
698
+ padding-right: 0.75rem;
699
+ font-size: 0.75rem;
700
+ }
701
+ .editor-btn--size-md {
702
+ height: 2.25rem;
703
+ width: 2.25rem;
704
+ padding: 0;
705
+ }
706
+ .editor-btn--size-lg {
707
+ height: 2.5rem;
708
+ border-radius: calc(var(--radius) + 2px);
709
+ padding-left: 2rem;
710
+ padding-right: 2rem;
711
+ }
712
+ .editor-btn--size-icon {
713
+ height: 2.25rem;
714
+ width: 2.25rem;
715
+ padding: 0;
716
+ }
717
+ .editor-button-group {
718
+ display: flex;
719
+ flex-wrap: wrap;
720
+ align-items: center;
721
+ gap: 0.25rem;
722
+ }
723
+ .editor-separator {
724
+ background-color: var(--border);
725
+ flex-shrink: 0;
726
+ }
727
+ .editor-separator--horizontal {
728
+ height: 1px;
729
+ width: 100%;
730
+ }
731
+ .editor-separator--vertical {
732
+ width: 1px;
733
+ height: 100%;
734
+ min-height: 1.5rem;
735
+ }
736
+ .editor-input {
737
+ display: flex;
738
+ height: 2.25rem;
739
+ width: 100%;
740
+ border-radius: var(--radius);
741
+ border: 1px solid var(--input);
742
+ background-color: var(--background);
743
+ padding-left: 0.75rem;
744
+ padding-right: 0.75rem;
745
+ padding-top: 0.5rem;
746
+ padding-bottom: 0.5rem;
747
+ font-size: 14px;
748
+ line-height: 20px;
749
+ }
750
+ .editor-input::file-selector-button {
751
+ border: 0;
752
+ background-color: transparent;
753
+ font-size: 0.875rem;
754
+ font-weight: 500;
755
+ }
756
+ .editor-input::placeholder {
757
+ color: var(--muted-foreground);
758
+ }
759
+ .editor-input:focus {
760
+ border-color: var(--primary);
761
+ box-shadow: 0 0 0 2px var(--ring);
762
+ outline: none;
763
+ }
764
+ .editor-input:focus-visible {
765
+ outline: none;
766
+ box-shadow: 0 0 0 2px var(--ring), 0 0 0 4px var(--background);
767
+ }
768
+ .editor-input:disabled {
769
+ cursor: not-allowed;
770
+ opacity: 0.5;
771
+ }
772
+ .editor-input:hover:not(:disabled):not([readonly]) {
773
+ background-color: color-mix(in srgb, var(--background), black 3%);
774
+ color: black !important;
775
+ border-color: var(--accent, #f1f5f9);
776
+ transform: translateY(-1px);
777
+ box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.1);
778
+ }
779
+ .editor-input {
780
+ }
781
+ .editor-input::-webkit-outer-spin-button,
782
+ .editor-input::-webkit-inner-spin-button {
783
+ -webkit-appearance: none;
784
+ margin: 0;
785
+ }
786
+ .editor-input[type=number] {
787
+ -moz-appearance: textfield;
788
+ }
789
+ .editor-input-group-item--first {
790
+ border-top-right-radius: 0;
791
+ border-bottom-right-radius: 0;
792
+ }
793
+ .editor-input-group-item--middle {
794
+ border-radius: 0;
795
+ border-left-width: 0;
796
+ }
797
+ .editor-input-group-item--last {
798
+ border-top-left-radius: 0;
799
+ border-bottom-left-radius: 0;
800
+ border-left-width: 0;
801
+ }
802
+ .editor-label {
803
+ font-size: 14px;
804
+ line-height: 20px;
805
+ font-weight: 500;
806
+ line-height: 1;
807
+ }
808
+ .editor-label--disabled {
809
+ cursor: not-allowed;
810
+ opacity: 0.7;
811
+ }
812
+ @keyframes editor-dialog-zoom-in {
813
+ from {
814
+ opacity: 0;
815
+ transform: translate(-50%, -48%) scale(0.95);
816
+ }
817
+ to {
818
+ opacity: 1;
819
+ transform: translate(-50%, -50%) scale(1);
820
+ }
821
+ }
822
+ @keyframes editor-fade-in {
823
+ from {
824
+ opacity: 0;
825
+ }
826
+ to {
827
+ opacity: 1;
828
+ }
829
+ }
830
+ @keyframes editor-popover-zoom-in {
831
+ from {
832
+ opacity: 0;
833
+ transform: scale(0.95);
834
+ }
835
+ to {
836
+ opacity: 1;
837
+ transform: scale(1);
838
+ }
839
+ }
840
+ .editor-dialog-overlay {
841
+ position: fixed;
842
+ inset: 0;
843
+ z-index: 50;
844
+ background-color: rgba(0, 0, 0, 0.4);
845
+ backdrop-filter: blur(4px);
846
+ animation: editor-fade-in 0.2s ease-out;
847
+ }
848
+ .editor-dialog-overlay[data-state=open] {
849
+ animation: editor-fade-in 0.2s ease-out;
850
+ }
851
+ .editor-dialog-content {
852
+ position: fixed;
853
+ left: 50%;
854
+ top: 50%;
855
+ z-index: 51;
856
+ display: grid;
857
+ width: 100%;
858
+ max-width: 32rem;
859
+ transform: translate(-50%, -50%);
860
+ gap: 1.5rem;
861
+ border: 1px solid var(--border);
862
+ background-color: var(--background);
863
+ padding: 1.5rem;
864
+ box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
865
+ border-radius: calc(var(--radius) + 4px);
866
+ animation: editor-dialog-zoom-in 0.2s cubic-bezier(0.16, 1, 0.3, 1);
867
+ }
868
+ .editor-dialog-content--lg {
869
+ max-width: 50rem;
870
+ }
871
+ .editor-dialog-content__close {
872
+ position: absolute;
873
+ right: 1rem;
874
+ top: 1rem;
875
+ border-radius: var(--radius);
876
+ opacity: 0.7;
877
+ background: transparent;
878
+ border: none;
879
+ cursor: pointer;
880
+ transition: opacity 0.2s;
881
+ }
882
+ .editor-dialog-content__close:hover {
883
+ opacity: 1;
884
+ }
885
+ .editor-dialog-content__close:focus-visible {
886
+ outline: none;
887
+ box-shadow: 0 0 0 2px var(--ring), 0 0 0 4px var(--background, transparent);
888
+ }
889
+ .editor-dialog-header {
890
+ display: flex;
891
+ flex-direction: column;
892
+ gap: 0.375rem;
893
+ text-align: center;
894
+ }
895
+ @media (min-width: 640px) {
896
+ .editor-dialog-header {
897
+ text-align: left;
898
+ }
899
+ }
900
+ .editor-dialog-header__title {
901
+ font-size: 1.125rem;
902
+ font-weight: 600;
903
+ line-height: 1;
904
+ margin: 0;
905
+ }
906
+ .editor-dialog-header__description {
907
+ font-size: 14px;
908
+ line-height: 20px;
909
+ color: var(--muted-foreground);
910
+ margin: 0;
911
+ }
912
+ .editor-dialog-footer {
913
+ display: flex;
914
+ flex-direction: column-reverse;
915
+ gap: 0.5rem;
916
+ }
917
+ @media (min-width: 640px) {
918
+ .editor-dialog-footer {
919
+ flex-direction: row;
920
+ justify-content: flex-end;
921
+ }
922
+ }
923
+ .editor-popover-content {
924
+ z-index: 50;
925
+ width: 18rem;
926
+ border-radius: var(--radius);
927
+ border: 1px solid var(--border);
928
+ background-color: var(--popover);
929
+ color: var(--popover-foreground);
930
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
931
+ padding: 1rem;
932
+ outline: none;
933
+ animation: editor-popover-zoom-in 0.1s ease-out;
934
+ }
935
+ .editor-select {
936
+ display: flex;
937
+ height: 2.25rem;
938
+ width: 100%;
939
+ align-items: center;
940
+ justify-content: space-between;
941
+ border-radius: var(--radius);
942
+ border: 1px solid var(--input);
943
+ background-color: var(--background);
944
+ padding-left: 0.75rem;
945
+ padding-right: 0.75rem;
946
+ font-size: 14px;
947
+ line-height: 20px;
948
+ }
949
+ .editor-select:focus {
950
+ outline: none;
951
+ box-shadow: 0 0 0 2px var(--ring), 0 0 0 4px var(--background);
952
+ }
953
+ .editor-select:disabled {
954
+ cursor: not-allowed;
955
+ opacity: 0.5;
956
+ }
957
+ .editor-select {
958
+ }
959
+ .editor-select--size-default {
960
+ height: 2.25rem;
961
+ padding-left: 0.75rem;
962
+ padding-right: 0.75rem;
963
+ }
964
+ .editor-select--size-sm {
965
+ height: 2rem;
966
+ padding-left: 0.5rem;
967
+ padding-right: 0.5rem;
968
+ font-size: 0.75rem;
969
+ }
970
+ .editor-select--size-lg {
971
+ height: 2.5rem;
972
+ padding-left: 1rem;
973
+ padding-right: 1rem;
974
+ }
975
+ .editor-select--size-icon {
976
+ height: 2.25rem;
977
+ width: 2.25rem;
978
+ padding: 0;
979
+ justify-content: center;
980
+ }
981
+ .editor-select--size-icon .editor-select-icon {
982
+ display: none;
983
+ }
984
+ .editor-select--w-auto {
985
+ width: auto;
986
+ padding-left: 0.75rem;
987
+ padding-right: 0.75rem;
988
+ min-width: 7rem;
989
+ justify-content: space-between;
990
+ }
991
+ .editor-select--gap-sm {
992
+ gap: 0.5rem;
993
+ }
994
+ .editor-select-item {
995
+ position: relative;
996
+ display: flex;
997
+ width: 100%;
998
+ cursor: pointer;
999
+ user-select: none;
1000
+ align-items: center;
1001
+ gap: 0.5rem;
1002
+ border-radius: 0.125rem;
1003
+ padding: 0.375rem 0.5rem 0.375rem 2rem;
1004
+ font-size: 0.875rem;
1005
+ outline: none;
1006
+ }
1007
+ .editor-select-item:hover {
1008
+ background-color: var(--accent, #f1f5f9);
1009
+ color: var(--accent-foreground, #0f172a);
1010
+ }
1011
+ .editor-select-item[data-selected=true] {
1012
+ background-color: var(--accent, #f1f5f9);
1013
+ color: var(--accent-foreground, #0f172a);
1014
+ }
1015
+ .editor-select-item__check {
1016
+ position: absolute;
1017
+ left: 0.5rem;
1018
+ display: flex;
1019
+ height: 0.875rem;
1020
+ width: 0.875rem;
1021
+ align-items: center;
1022
+ justify-content: center;
1023
+ }
1024
+ .editor-select-label {
1025
+ padding: 0.375rem 0.5rem 0.375rem 2rem;
1026
+ font-size: 0.875rem;
1027
+ font-weight: 600;
1028
+ }
1029
+ .editor-block-format-label {
1030
+ max-width: 80px;
1031
+ overflow: hidden;
1032
+ text-overflow: ellipsis;
1033
+ white-space: nowrap;
1034
+ }
1035
+ .editor-toggle {
1036
+ display: inline-flex;
1037
+ align-items: center;
1038
+ justify-content: center;
1039
+ border-radius: calc(var(--radius) - 2px);
1040
+ font-size: 0.875rem;
1041
+ font-weight: 500;
1042
+ transition-property:
1043
+ color,
1044
+ background-color,
1045
+ border-color;
1046
+ transition-duration: 150ms;
1047
+ background-color: transparent;
1048
+ border: 1px solid transparent;
1049
+ cursor: pointer;
1050
+ }
1051
+ .editor-toggle:hover {
1052
+ background-color: var(--accent, #f1f5f9);
1053
+ color: var(--accent-foreground, #0f172a);
1054
+ }
1055
+ .editor-toggle:focus-visible {
1056
+ outline: none;
1057
+ box-shadow: 0 0 0 2px var(--ring), 0 0 0 4px var(--background);
1058
+ }
1059
+ .editor-toggle:disabled {
1060
+ pointer-events: none;
1061
+ opacity: 0.5;
1062
+ }
1063
+ .editor-toggle[data-state=on] {
1064
+ background-color: var(--accent, #f1f5f9);
1065
+ color: var(--accent-foreground, #0f172a) !important;
1066
+ }
1067
+ .editor-toggle--outline {
1068
+ border-color: var(--input);
1069
+ box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
1070
+ }
1071
+ .editor-toggle--outline:hover {
1072
+ background-color: color-mix(in srgb, var(--accent, #f1f5f9), black 50%);
1073
+ color: var(--accent-foreground, #0f172a);
1074
+ }
1075
+ .editor-toggle--ghost:hover {
1076
+ background-color: color-mix(in srgb, var(--accent, #f1f5f9), black 50%);
1077
+ color: var(--accent-foreground, #0f172a);
1078
+ }
1079
+ .editor-toggle--size-default {
1080
+ height: 2.25rem;
1081
+ padding-left: 0.75rem;
1082
+ padding-right: 0.75rem;
1083
+ }
1084
+ .editor-toggle--size-sm {
1085
+ height: 2rem;
1086
+ padding-left: 0.5rem;
1087
+ padding-right: 0.5rem;
1088
+ font-size: 0.75rem;
1089
+ }
1090
+ .editor-toggle--size-lg {
1091
+ height: 2.5rem;
1092
+ padding-left: 0.75rem;
1093
+ padding-right: 0.75rem;
1094
+ }
1095
+ .editor-icon-sm {
1096
+ width: 15px;
1097
+ height: 15px;
1098
+ }
1099
+ .editor-icon-xs {
1100
+ width: 14px;
1101
+ height: 14px;
1102
+ }
1103
+ .editor-loader {
1104
+ width: 24px;
1105
+ height: 24px;
1106
+ animation: spin 1s linear infinite;
1107
+ color: var(--muted-foreground);
1108
+ }
1109
+ .editor-checkbox {
1110
+ height: 16px;
1111
+ width: 16px;
1112
+ border-radius: calc(var(--radius, 8px) - 2px);
1113
+ border: 1px solid var(--input);
1114
+ cursor: pointer;
1115
+ }
1116
+ .editor-checkbox:checked {
1117
+ background-color: var(--primary);
1118
+ border-color: var(--primary);
1119
+ }
1120
+ .editor-label--normal {
1121
+ font-weight: 400;
1122
+ cursor: pointer;
1123
+ }
1124
+ .editor-shrink-0 {
1125
+ flex-shrink: 0;
1126
+ }
1127
+ .editor-flex-grow {
1128
+ flex-grow: 1;
1129
+ }
1130
+ .editor-flex-1 {
1131
+ flex: 1 1 0%;
1132
+ }
1133
+ .editor-flex-end {
1134
+ display: flex;
1135
+ justify-content: flex-end;
1136
+ align-items: center;
1137
+ gap: 4px;
1138
+ flex-wrap: nowrap;
1139
+ flex-shrink: 0;
1140
+ }
1141
+ .editor-flex-row-center {
1142
+ display: flex;
1143
+ align-items: center;
1144
+ gap: 8px;
1145
+ }
1146
+ .editor-flex-row-center--pointer {
1147
+ cursor: pointer;
1148
+ }
1149
+ .editor-flex-center-justify-py-8 {
1150
+ display: flex;
1151
+ align-items: center;
1152
+ justify-content: center;
1153
+ padding-top: 32px;
1154
+ padding-bottom: 32px;
1155
+ }
1156
+ .editor-flex-col-gap-2 {
1157
+ display: flex;
1158
+ flex-direction: column;
1159
+ gap: 8px;
1160
+ }
1161
+ .editor-flex-col-gap-4 {
1162
+ display: flex;
1163
+ flex-direction: column;
1164
+ gap: 16px;
1165
+ }
1166
+ .editor-absolute-full {
1167
+ position: absolute;
1168
+ top: 0;
1169
+ right: 0;
1170
+ bottom: 0;
1171
+ left: 0;
1172
+ }
1173
+ .editor-truncate {
1174
+ overflow: hidden;
1175
+ text-overflow: ellipsis;
1176
+ white-space: nowrap;
1177
+ }
1178
+ .editor-object-cover {
1179
+ object-fit: cover;
1180
+ }
1181
+ .editor-transition-transform {
1182
+ transition-property: transform;
1183
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1184
+ transition-duration: 150ms;
1185
+ }
1186
+ .editor-rotate-90 {
1187
+ transform: rotate(90deg);
1188
+ }
1189
+ .editor-rounded-sm {
1190
+ border-radius: calc(var(--radius) - 2px);
1191
+ }
1192
+ .editor-font-mono {
1193
+ font-family:
1194
+ ui-monospace,
1195
+ SFMono-Regular,
1196
+ Menlo,
1197
+ Monaco,
1198
+ Consolas,
1199
+ "Liberation Mono",
1200
+ "Courier New",
1201
+ monospace;
1202
+ }
1203
+ .editor-mb-2 {
1204
+ margin-bottom: 8px;
1205
+ }
1206
+ .editor-mb-3 {
1207
+ margin-bottom: 12px;
1208
+ }
1209
+ .editor-mt-1 {
1210
+ margin-top: 4px;
1211
+ }
1212
+ .editor-ml-auto {
1213
+ margin-left: auto;
1214
+ }
1215
+ .editor-ml-4 {
1216
+ margin-left: 16px;
1217
+ }
1218
+ .editor-w-14 {
1219
+ width: 56px;
1220
+ }
1221
+ .editor-w-full {
1222
+ width: 100%;
1223
+ }
1224
+ .editor-h-full {
1225
+ height: 100%;
1226
+ }
1227
+ .editor-toolbar {
1228
+ position: sticky;
1229
+ top: 0;
1230
+ z-index: 20;
1231
+ display: flex;
1232
+ flex-wrap: wrap;
1233
+ align-items: center;
1234
+ gap: 4px;
1235
+ border-bottom: 1px solid var(--border);
1236
+ border-top-left-radius: var(--radius);
1237
+ border-top-right-radius: var(--radius);
1238
+ background-color: white;
1239
+ padding: 4px;
1240
+ box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
1241
+ width: 100%;
1242
+ overflow-x: visible;
1243
+ overflow-y: visible;
1244
+ white-space: normal;
1245
+ }
1246
+ @supports (backdrop-filter: blur(4px)) {
1247
+ .editor-toolbar {
1248
+ background-color: rgba(255, 255, 255, 0.8);
1249
+ backdrop-filter: blur(4px);
1250
+ }
1251
+ }
1252
+ .editor-toolbar-group {
1253
+ display: flex;
1254
+ flex-wrap: wrap;
1255
+ align-items: center;
1256
+ gap: 4px;
1257
+ padding: 4px;
1258
+ border-radius: var(--radius);
1259
+ }
1260
+ .editor-toolbar-item {
1261
+ height: 36px;
1262
+ width: 36px;
1263
+ padding: 0;
1264
+ border: 1px solid var(--border);
1265
+ border-radius: var(--radius);
1266
+ background-color: var(--background);
1267
+ transition: all 0.2s;
1268
+ }
1269
+ .editor-toolbar-item:hover:not(:disabled):not([data-state=on]) {
1270
+ background-color: var(--accent, #f1f5f9);
1271
+ color: var(--accent-foreground, #0f172a);
1272
+ border-color: var(--accent, #f1f5f9);
1273
+ transform: translateY(-1px);
1274
+ box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.1);
1275
+ }
1276
+ .editor-toolbar-item:active:not(:disabled) {
1277
+ transform: translateY(0);
1278
+ box-shadow: none;
1279
+ }
1280
+ .editor-toolbar-item[data-state=on] {
1281
+ background-color: var(--accent, #f1f5f9);
1282
+ color: var(--accent-foreground, #0f172a) !important;
1283
+ border-color: var(--accent, #f1f5f9);
1284
+ }
1285
+ .editor-toolbar-item--lg {
1286
+ height: 40px !important;
1287
+ width: 40px !important;
1288
+ }
1289
+ .editor-toolbar-item--w-fit {
1290
+ width: fit-content;
1291
+ }
1292
+ .editor-toolbar-item--w-auto {
1293
+ width: auto;
1294
+ padding-left: 8px;
1295
+ padding-right: 8px;
1296
+ }
1297
+ .editor-toolbar-item--gap-sm {
1298
+ gap: 4px;
1299
+ }
1300
+ .editor-toolbar-item--bg-background {
1301
+ background-color: var(--background);
1302
+ }
1303
+ .editor-toolbar-item--text-center {
1304
+ text-align: center;
1305
+ }
1306
+ .editor-toolbar-separator {
1307
+ height: 24px !important;
1308
+ margin-left: 4px;
1309
+ margin-right: 4px;
1310
+ }
1311
+ .editor-toolbar-select-trigger {
1312
+ height: 36px;
1313
+ width: auto;
1314
+ gap: 8px;
1315
+ padding-left: 8px;
1316
+ padding-right: 8px;
1317
+ font-size: 12px;
1318
+ font-weight: 500;
1319
+ border: 1px solid var(--border);
1320
+ border-radius: var(--radius);
1321
+ transition: all 0.2s;
1322
+ }
1323
+ .editor-toolbar-select-trigger:hover:not(:disabled) {
1324
+ background-color: var(--accent, #f1f5f9);
1325
+ color: var(--accent-foreground, #0f172a);
1326
+ border-color: var(--accent, #f1f5f9);
1327
+ transform: translateY(-1px);
1328
+ box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.1);
1329
+ }
1330
+ .editor-toolbar-select-trigger:active:not(:disabled) {
1331
+ transform: translateY(0);
1332
+ box-shadow: none;
1333
+ }
1334
+ .editor-toolbar-select-trigger:focus {
1335
+ box-shadow: 0 0 0 2px var(--ring);
1336
+ outline: none;
1337
+ }
1338
+ .editor-toolbar-select-trigger--w-md {
1339
+ width: 160px;
1340
+ }
1341
+ .editor-toolbar-select-icon {
1342
+ height: 16px;
1343
+ width: 16px;
1344
+ display: flex;
1345
+ align-items: center;
1346
+ justify-content: center;
1347
+ margin-right: 8px;
1348
+ }
1349
+ .editor-format-select-trigger {
1350
+ width: 72px !important;
1351
+ min-width: 72px !important;
1352
+ flex-shrink: 0;
1353
+ }
1354
+ @keyframes editor-floating-zoom-in {
1355
+ from {
1356
+ opacity: 0;
1357
+ transform: scale(0.95) translateY(4px);
1358
+ }
1359
+ to {
1360
+ opacity: 1;
1361
+ transform: scale(1) translateY(0);
1362
+ }
1363
+ }
1364
+ .editor-floating-toolbar {
1365
+ background-color: rgba(var(--background-rgb, 255, 255, 255), 0.85);
1366
+ backdrop-filter: blur(8px);
1367
+ position: absolute;
1368
+ top: 0;
1369
+ left: 0;
1370
+ display: flex;
1371
+ max-width: 560px;
1372
+ flex-wrap: wrap;
1373
+ align-items: center;
1374
+ gap: 4px;
1375
+ border-radius: var(--radius, 8px);
1376
+ border: 1px solid var(--border);
1377
+ padding: 4px;
1378
+ opacity: 0;
1379
+ box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
1380
+ transition: opacity 200ms ease, transform 200ms ease;
1381
+ will-change: transform;
1382
+ z-index: 50;
1383
+ }
1384
+ .editor-floating-toolbar--visible {
1385
+ opacity: 1;
1386
+ animation: editor-floating-zoom-in 0.2s cubic-bezier(0.16, 1, 0.3, 1);
1387
+ }
1388
+ .editor-floating-text-format {
1389
+ background-color: var(--background);
1390
+ position: absolute;
1391
+ top: 0;
1392
+ left: 0;
1393
+ display: flex;
1394
+ align-items: center;
1395
+ gap: 4px;
1396
+ border-radius: var(--radius, 8px);
1397
+ border: 1px solid var(--border);
1398
+ padding: 4px;
1399
+ opacity: 0;
1400
+ box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
1401
+ transition: opacity 200ms ease, transform 200ms ease;
1402
+ will-change: transform;
1403
+ z-index: 50;
1404
+ }
1405
+ @supports (backdrop-filter: blur(4px)) {
1406
+ .editor-floating-text-format {
1407
+ background-color: rgba(var(--background-rgb, 255, 255, 255), 0.8);
1408
+ backdrop-filter: blur(8px);
1409
+ }
1410
+ }
1411
+ @supports (backdrop-filter: blur(4px)) {
1412
+ .dark .editor-floating-text-format {
1413
+ background-color: rgba(var(--background-rgb, 15, 15, 15), 0.8);
1414
+ }
1415
+ }
1416
+ .editor-floating-text-format:hover {
1417
+ box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
1418
+ }
1419
+ .editor-floating-text-format--visible {
1420
+ opacity: 1;
1421
+ animation: editor-floating-zoom-in 0.2s cubic-bezier(0.16, 1, 0.3, 1);
1422
+ }
1423
+ .editor-floating-text-format .editor-separator--vertical {
1424
+ height: 20px;
1425
+ width: 1px;
1426
+ margin: 0 4px;
1427
+ background-color: var(--border);
1428
+ }
1429
+ .editor-floating-text-format .editor-toggle-group-item,
1430
+ .editor-floating-text-format .editor-btn,
1431
+ .editor-floating-text-format .editor-toolbar-item {
1432
+ border: none;
1433
+ border-radius: calc(var(--radius, 8px) - 4px);
1434
+ height: 30px;
1435
+ width: 30px;
1436
+ padding: 0;
1437
+ background-color: transparent;
1438
+ transition: all 0.2s;
1439
+ display: flex;
1440
+ align-items: center;
1441
+ justify-content: center;
1442
+ }
1443
+ .editor-floating-text-format .editor-toggle-group-item:hover,
1444
+ .editor-floating-text-format .editor-btn:hover,
1445
+ .editor-floating-text-format .editor-toolbar-item:hover {
1446
+ background-color: var(--accent, #f1f5f9);
1447
+ color: var(--accent-foreground, #0f172a);
1448
+ }
1449
+ .editor-floating-text-format .editor-toggle-group-item[data-state=on],
1450
+ .editor-floating-text-format .editor-btn[data-state=on],
1451
+ .editor-floating-text-format .editor-toolbar-item[data-state=on] {
1452
+ background-color: var(--accent, #f1f5f9);
1453
+ color: var(--accent-foreground, #0f172a) !important;
1454
+ font-weight: bold;
1455
+ }
1456
+ .editor-floating-text-format .editor-toggle-group-item--active,
1457
+ .editor-floating-text-format .editor-btn--active,
1458
+ .editor-floating-text-format .editor-toolbar-item--active {
1459
+ background-color: var(--accent, #f1f5f9);
1460
+ color: var(--accent-foreground, #0f172a) !important;
1461
+ }
1462
+ .editor-floating-text-format .editor-floating-group,
1463
+ .editor-floating-text-format .editor-floating-group--lg {
1464
+ display: flex;
1465
+ align-items: center;
1466
+ gap: 2px;
1467
+ padding: 2px;
1468
+ border-radius: calc(var(--radius, 8px) - 2px);
1469
+ border: none;
1470
+ background-color: transparent;
1471
+ }
1472
+ .editor-list-color-dialog {
1473
+ padding: 8px 0;
1474
+ animation: editor-fade-in 0.3s ease-out;
1475
+ }
1476
+ .editor-list-color-trigger {
1477
+ height: 44px;
1478
+ width: 100%;
1479
+ display: flex;
1480
+ align-items: center;
1481
+ justify-content: flex-start;
1482
+ gap: 12px;
1483
+ border-radius: var(--radius, 8px);
1484
+ border: 1px solid var(--input);
1485
+ padding: 0 16px;
1486
+ background-color: var(--background);
1487
+ transition: all 0.2s;
1488
+ box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
1489
+ }
1490
+ .editor-list-color-trigger:hover:not(:disabled):not([data-state=on]) {
1491
+ background-color: var(--accent, #f1f5f9);
1492
+ color: var(--accent-foreground, #0f172a);
1493
+ border-color: var(--accent, #f1f5f9);
1494
+ transform: translateY(-1px);
1495
+ box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.1);
1496
+ }
1497
+ .editor-list-color-trigger:active:not(:disabled) {
1498
+ transform: translateY(0);
1499
+ box-shadow: none;
1500
+ }
1501
+ .editor-color-picker-content {
1502
+ display: flex;
1503
+ flex-direction: column;
1504
+ gap: 16px;
1505
+ padding: 16px;
1506
+ }
1507
+ .editor-color-picker-area {
1508
+ position: relative;
1509
+ height: 160px;
1510
+ width: 100%;
1511
+ cursor: crosshair;
1512
+ touch-action: none;
1513
+ border-radius: calc(var(--radius, 8px) - 2px);
1514
+ border: 1px solid var(--border);
1515
+ overflow: hidden;
1516
+ }
1517
+ .editor-color-picker-area[data-disabled=true] {
1518
+ pointer-events: none;
1519
+ opacity: 0.5;
1520
+ }
1521
+ .editor-slider-root {
1522
+ position: relative;
1523
+ display: flex;
1524
+ width: 100%;
1525
+ touch-action: none;
1526
+ align-items: center;
1527
+ user-select: none;
1528
+ }
1529
+ .editor-slider-root[data-disabled] {
1530
+ opacity: 0.5;
1531
+ pointer-events: none;
1532
+ }
1533
+ .editor-slider-track {
1534
+ position: relative;
1535
+ height: 12px;
1536
+ width: 100%;
1537
+ flex-grow: 1;
1538
+ overflow: hidden;
1539
+ border-radius: 9999px;
1540
+ }
1541
+ .editor-slider-thumb {
1542
+ display: block;
1543
+ height: 16px;
1544
+ width: 16px;
1545
+ border-radius: 9999px;
1546
+ border: 1px solid var(--border);
1547
+ background-color: var(--background);
1548
+ box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
1549
+ transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out;
1550
+ }
1551
+ .editor-slider-thumb:focus-visible {
1552
+ outline: none;
1553
+ box-shadow: 0 0 0 2px var(--ring);
1554
+ }
1555
+ .editor-color-swatch {
1556
+ box-sizing: border-box;
1557
+ height: 32px;
1558
+ width: 32px;
1559
+ border-radius: calc(var(--radius, 8px) - 2px);
1560
+ border: 1px solid var(--border);
1561
+ box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
1562
+ }
1563
+ .editor-color-swatch--disabled {
1564
+ opacity: 0.5;
1565
+ }
1566
+ .editor-color-presets {
1567
+ display: flex;
1568
+ align-items: center;
1569
+ gap: 8px;
1570
+ width: 100%;
1571
+ }
1572
+ .editor-color-preset-item {
1573
+ height: 32px;
1574
+ padding-left: 8px;
1575
+ padding-right: 8px;
1576
+ flex: 1;
1577
+ }
1578
+ .editor-color-preset-item__preview {
1579
+ height: 12px;
1580
+ width: 12px;
1581
+ border-radius: 9999px;
1582
+ border: 1px solid var(--border);
1583
+ }
1584
+ .editor-color-preset-item__label {
1585
+ font-family: monospace;
1586
+ font-size: 12px;
1587
+ }
1588
+ .editor-color-value-text {
1589
+ color: var(--muted-foreground);
1590
+ font-family: monospace;
1591
+ font-size: 12px;
1592
+ font-variant-numeric: tabular-nums;
1593
+ }
1594
+ .editor-table-dialog {
1595
+ display: grid;
1596
+ gap: 20px;
1597
+ padding: 8px 0;
1598
+ animation: editor-fade-in 0.3s ease-out;
1599
+ }
1600
+ .editor-table-dialog__group {
1601
+ display: flex;
1602
+ flex-direction: column;
1603
+ gap: 8px;
1604
+ }
1605
+ .editor-table-dialog__checkbox-group {
1606
+ display: flex;
1607
+ align-items: center;
1608
+ gap: 12px;
1609
+ margin-top: 8px;
1610
+ }
1611
+ .editor-form-grid {
1612
+ display: grid;
1613
+ gap: 16px;
1614
+ padding-top: 16px;
1615
+ padding-bottom: 16px;
1616
+ }
1617
+ .editor-form-item {
1618
+ display: grid;
1619
+ gap: 8px;
1620
+ }
1621
+ .editor-image-grid {
1622
+ display: grid;
1623
+ grid-template-columns: repeat(4, 1fr);
1624
+ gap: 8px;
1625
+ margin-bottom: 12px;
1626
+ }
1627
+ .editor-image-btn {
1628
+ position: relative;
1629
+ aspect-ratio: 1/1;
1630
+ border-radius: calc(var(--radius, 8px) - 2px);
1631
+ overflow: hidden;
1632
+ border: 2px solid transparent;
1633
+ transition: all 0.2s;
1634
+ cursor: pointer;
1635
+ padding: 0;
1636
+ }
1637
+ .editor-image-btn--selected {
1638
+ border-color: var(--primary);
1639
+ box-shadow: 0 0 0 2px var(--primary), 0 0 0 4px var(--background);
1640
+ }
1641
+ .editor-image-btn:hover:not(.editor-image-btn--selected) {
1642
+ border-color: color-mix(in srgb, var(--primary), transparent 50%);
1643
+ }
1644
+ .editor-folder-tree-trigger {
1645
+ display: flex;
1646
+ align-items: center;
1647
+ gap: 8px;
1648
+ width: 100%;
1649
+ padding: 6px 8px;
1650
+ border-radius: calc(var(--radius, 8px) - 2px);
1651
+ transition: background-color 0.2s;
1652
+ text-align: left;
1653
+ border: none;
1654
+ background: transparent;
1655
+ }
1656
+ .editor-folder-tree-trigger:hover {
1657
+ background-color: var(--accent, #f1f5f9);
1658
+ color: var(--accent-foreground, #0f172a);
1659
+ }
1660
+ .editor-tree-content {
1661
+ margin-left: 16px;
1662
+ margin-top: 4px;
1663
+ }
1664
+ .editor-empty-state {
1665
+ text-align: center;
1666
+ padding-top: 32px;
1667
+ padding-bottom: 32px;
1668
+ }
1669
+ .editor-scroll-area {
1670
+ max-height: 350px;
1671
+ overflow-y: auto;
1672
+ padding: 8px;
1673
+ border: 1px solid var(--border);
1674
+ border-radius: calc(var(--radius, 8px) - 2px);
1675
+ }
1676
+ .editor-tabs-list {
1677
+ width: 100%;
1678
+ display: flex;
1679
+ }
1680
+ .editor-tabs-trigger {
1681
+ flex: 1;
1682
+ }
1683
+ .editor-image-resizer-handle {
1684
+ position: absolute;
1685
+ width: 10px;
1686
+ height: 10px;
1687
+ background-color: var(--primary, #3b82f6);
1688
+ border: 1px solid var(--background, transparent);
1689
+ z-index: 50;
1690
+ transition: background-color 0.2s;
1691
+ }
1692
+ .editor-image-resizer-handle:hover {
1693
+ background-color: var(--accent, #f1f5f9);
1694
+ }
1695
+ .editor-image-resizer-handle--n {
1696
+ top: -5px;
1697
+ left: 50%;
1698
+ transform: translateX(-50%);
1699
+ cursor: ns-resize;
1700
+ }
1701
+ .editor-image-resizer-handle--ne {
1702
+ top: -5px;
1703
+ right: -5px;
1704
+ cursor: nesw-resize;
1705
+ }
1706
+ .editor-image-resizer-handle--e {
1707
+ top: 50%;
1708
+ right: -5px;
1709
+ transform: translateY(-50%);
1710
+ cursor: ew-resize;
1711
+ }
1712
+ .editor-image-resizer-handle--se {
1713
+ bottom: -5px;
1714
+ right: -5px;
1715
+ cursor: nwse-resize;
1716
+ }
1717
+ .editor-image-resizer-handle--s {
1718
+ bottom: -5px;
1719
+ left: 50%;
1720
+ transform: translateX(-50%);
1721
+ cursor: ns-resize;
1722
+ }
1723
+ .editor-image-resizer-handle--sw {
1724
+ bottom: -5px;
1725
+ left: -5px;
1726
+ cursor: nesw-resize;
1727
+ }
1728
+ .editor-image-resizer-handle--w {
1729
+ top: 50%;
1730
+ left: -5px;
1731
+ transform: translateY(-50%);
1732
+ cursor: ew-resize;
1733
+ }
1734
+ .editor-image-resizer-handle--nw {
1735
+ top: -5px;
1736
+ left: -5px;
1737
+ cursor: nwse-resize;
1738
+ }
1739
+ .editor-layout-dialog-grid {
1740
+ display: grid;
1741
+ grid-template-columns: repeat(1, minmax(0, 1fr));
1742
+ gap: 0.75rem;
1743
+ }
1744
+ @media (min-width: 768px) {
1745
+ .editor-layout-dialog-grid {
1746
+ grid-template-columns: repeat(3, minmax(0, 1fr));
1747
+ }
1748
+ }
1749
+ .editor-layout-dialog-group {
1750
+ display: flex;
1751
+ flex-direction: column;
1752
+ gap: 0.375rem;
1753
+ }
1754
+ .editor-layout-color-trigger {
1755
+ height: 2.75rem;
1756
+ width: 100%;
1757
+ justify-content: flex-start;
1758
+ gap: 0.5rem;
1759
+ padding-left: 0.5rem;
1760
+ padding-right: 0.5rem;
1761
+ font-size: 0.75rem;
1762
+ transition: all 0.2s;
1763
+ }
1764
+ .editor-layout-color-trigger:hover:not(:disabled):hover:not(:disabled):not([data-state=on]) {
1765
+ background-color: var(--accent, #f1f5f9);
1766
+ color: var(--accent-foreground, #0f172a);
1767
+ border-color: var(--accent, #f1f5f9);
1768
+ transform: translateY(-1px);
1769
+ box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.1);
1770
+ }
1771
+ .editor-layout-color-trigger:hover:not(:disabled):active:not(:disabled) {
1772
+ transform: translateY(0);
1773
+ box-shadow: none;
1774
+ }
1775
+ .editor-layout-color-preview {
1776
+ width: 1rem;
1777
+ height: 1rem;
1778
+ flex-shrink: 0;
1779
+ border-radius: calc(var(--radius, 8px) - 2px);
1780
+ border: 1px solid var(--border);
1781
+ }
1782
+ .editor-mentions-popover {
1783
+ position: fixed;
1784
+ z-index: 10;
1785
+ width: 200px;
1786
+ border-radius: var(--radius, 8px);
1787
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
1788
+ }
1789
+ .editor-mentions-item {
1790
+ display: flex;
1791
+ align-items: center;
1792
+ gap: 0.5rem;
1793
+ }
1794
+ .editor-mentions-item:hover,
1795
+ .editor-mentions-item:focus,
1796
+ .editor-mentions-item--selected,
1797
+ .editor-mentions-item[aria-selected=true],
1798
+ .editor-mentions-item[data-selected=true] {
1799
+ background-color: var(--accent, #f1f5f9);
1800
+ color: var(--accent-foreground, #0f172a);
1801
+ border-color: var(--border, #d1d5db);
1802
+ }
1803
+ .editor-mentions-item:active {
1804
+ transform: translateY(0);
1805
+ box-shadow: none;
1806
+ }
1807
+ .editor-mentions-item[data-selected=true] {
1808
+ background-color: var(--accent, #f1f5f9);
1809
+ color: var(--accent-foreground, #0f172a);
1810
+ }
1811
+ .editor-mentions-item--transparent {
1812
+ background-color: transparent !important;
1813
+ }
1814
+ .editor-tree-view-scroll-area {
1815
+ background-color: var(--foreground);
1816
+ color: var(--background);
1817
+ height: 24rem;
1818
+ overflow: hidden;
1819
+ border-radius: var(--radius);
1820
+ padding: 0.5rem;
1821
+ }
1822
+ .editor-draggable-line {
1823
+ background-color: var(--secondary-foreground);
1824
+ pointer-events: none;
1825
+ position: absolute;
1826
+ top: 0;
1827
+ left: 0;
1828
+ height: 0.25rem;
1829
+ opacity: 0;
1830
+ will-change: transform;
1831
+ }
1832
+ .editor-draggable-menu {
1833
+ position: absolute;
1834
+ top: 0;
1835
+ left: 0;
1836
+ cursor: grab;
1837
+ border-radius: calc(var(--radius, 8px) - 2px);
1838
+ padding: 0.125rem 0.25rem;
1839
+ opacity: 0;
1840
+ will-change: transform;
1841
+ }
1842
+ .editor-draggable-menu:hover {
1843
+ background-color: #f3f4f6;
1844
+ }
1845
+ .editor-draggable-menu:active {
1846
+ cursor: grabbing;
1847
+ }
1848
+ .editor-auto-embed-menu {
1849
+ width: 200px;
1850
+ padding: 0;
1851
+ }
1852
+ .editor-auto-embed-wrapper {
1853
+ transform: translateY(-100%);
1854
+ }
1855
+ .editor-floating-link-editor {
1856
+ display: flex;
1857
+ position: absolute;
1858
+ top: 0;
1859
+ left: 0;
1860
+ z-index: 50;
1861
+ max-width: 400px;
1862
+ width: 100%;
1863
+ opacity: 0;
1864
+ background-color: var(--background);
1865
+ border-radius: var(--radius, 8px);
1866
+ border: 1px solid var(--border);
1867
+ box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
1868
+ transition: opacity 0.2s;
1869
+ will-change: transform;
1870
+ }
1871
+ .editor-floating-link-editor__input-container {
1872
+ display: flex;
1873
+ align-items: center;
1874
+ gap: 0.25rem;
1875
+ padding: 0.25rem;
1876
+ width: 100%;
1877
+ }
1878
+ .editor-floating-link-editor__view-container {
1879
+ display: flex;
1880
+ align-items: center;
1881
+ justify-content: space-between;
1882
+ gap: 0.5rem;
1883
+ padding: 0.25rem 0.25rem 0.25rem 0.75rem;
1884
+ width: 100%;
1885
+ }
1886
+ .editor-floating-link-editor__link {
1887
+ display: block;
1888
+ flex-grow: 1;
1889
+ overflow: hidden;
1890
+ text-overflow: ellipsis;
1891
+ white-space: nowrap;
1892
+ color: var(--primary);
1893
+ font-size: 0.875rem;
1894
+ text-decoration: none;
1895
+ }
1896
+ .editor-floating-link-editor__link:hover {
1897
+ text-decoration: underline;
1898
+ }
1899
+ .editor-component-picker-menu {
1900
+ position: fixed;
1901
+ z-index: 100;
1902
+ width: 250px;
1903
+ border-radius: var(--radius, 8px);
1904
+ border: 1px solid var(--border);
1905
+ background-color: var(--popover);
1906
+ color: var(--popover-foreground);
1907
+ box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
1908
+ overflow: hidden;
1909
+ visibility: visible;
1910
+ opacity: 1;
1911
+ max-height: 300px;
1912
+ }
1913
+ .editor-command {
1914
+ display: flex;
1915
+ height: 100%;
1916
+ width: 100%;
1917
+ flex-direction: column;
1918
+ overflow: hidden;
1919
+ border-radius: inherit;
1920
+ }
1921
+ .editor-command-list {
1922
+ max-height: 300px;
1923
+ overflow-y: auto;
1924
+ overflow-x: hidden;
1925
+ padding: 0.25rem;
1926
+ }
1927
+ .editor-command-group {
1928
+ overflow: hidden;
1929
+ color: var(--foreground);
1930
+ }
1931
+ .editor-command-group > [cmdk-group-heading] {
1932
+ padding: 0.5rem 0.5rem 0.2rem;
1933
+ font-size: 0.75rem;
1934
+ font-weight: 500;
1935
+ color: var(--muted-foreground);
1936
+ }
1937
+ .editor-command-item {
1938
+ position: relative;
1939
+ display: flex;
1940
+ cursor: pointer;
1941
+ user-select: none;
1942
+ align-items: center;
1943
+ border-radius: 0.125rem;
1944
+ padding: 0.375rem 0.5rem;
1945
+ border: 1px solid transparent;
1946
+ font-size: 0.875rem;
1947
+ outline: none;
1948
+ gap: 0.5rem;
1949
+ }
1950
+ .editor-command-item:hover,
1951
+ .editor-command-item:focus,
1952
+ .editor-command-item--selected,
1953
+ .editor-command-item[aria-selected=true],
1954
+ .editor-command-item[data-selected=true] {
1955
+ background-color: var(--accent, #f1f5f9);
1956
+ color: var(--accent-foreground, #0f172a);
1957
+ border-color: var(--border, #d1d5db);
1958
+ }
1959
+ .editor-command-item:active {
1960
+ transform: translateY(0);
1961
+ box-shadow: none;
1962
+ }
1963
+ .editor-command-item[data-disabled=true] {
1964
+ pointer-events: none;
1965
+ opacity: 0.5;
1966
+ }
1967
+ .editor-command-item svg {
1968
+ width: 1rem;
1969
+ height: 1rem;
1970
+ flex-shrink: 0;
1971
+ }
1972
+ .editor-context-menu {
1973
+ background-color: var(--popover);
1974
+ color: var(--popover-foreground);
1975
+ z-index: 50 !important;
1976
+ overflow: hidden;
1977
+ border-radius: var(--radius, 8px);
1978
+ border: 1px solid var(--border);
1979
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
1980
+ outline: none;
1981
+ }
1982
+ .editor-context-menu:has(*) {
1983
+ z-index: 10 !important;
1984
+ }
1985
+ .editor-context-menu-item {
1986
+ position: relative;
1987
+ width: 100%;
1988
+ display: flex;
1989
+ cursor: default;
1990
+ align-items: center;
1991
+ gap: 0.5rem;
1992
+ border-radius: calc(var(--radius) - 2px);
1993
+ padding: 0.375rem 0.5rem;
1994
+ border: 1px solid transparent;
1995
+ font-size: 0.875rem;
1996
+ outline: none;
1997
+ user-select: none;
1998
+ }
1999
+ .editor-context-menu-item:hover,
2000
+ .editor-context-menu-item:focus,
2001
+ .editor-context-menu-item--selected,
2002
+ .editor-context-menu-item[aria-selected=true],
2003
+ .editor-context-menu-item[data-selected=true] {
2004
+ background-color: var(--accent, #f1f5f9);
2005
+ color: var(--accent-foreground, #0f172a);
2006
+ border-color: var(--border, #d1d5db);
2007
+ }
2008
+ .editor-context-menu-item:active {
2009
+ transform: translateY(0);
2010
+ box-shadow: none;
2011
+ }
2012
+ .editor-context-menu-item[data-disabled=true] {
2013
+ pointer-events: none;
2014
+ opacity: 0.5;
2015
+ }
2016
+ .editor-context-menu-separator {
2017
+ background-color: var(--border);
2018
+ margin-left: -0.25rem;
2019
+ margin-right: -0.25rem;
2020
+ height: 1px;
2021
+ }
2022
+ .editor-actions-bar {
2023
+ clear: both;
2024
+ display: flex;
2025
+ width: 100%;
2026
+ align-items: center;
2027
+ justify-content: space-between;
2028
+ gap: 0.75rem;
2029
+ overflow-x: auto;
2030
+ flex-wrap: nowrap;
2031
+ border-top: 1px solid var(--border);
2032
+ padding: 0.375rem 0.75rem;
2033
+ background-color: color-mix(in srgb, var(--background), transparent 50%);
2034
+ backdrop-filter: blur(8px);
2035
+ }
2036
+ .editor-actions-bar::-webkit-scrollbar {
2037
+ display: none;
2038
+ }
2039
+ .editor-actions-bar {
2040
+ -ms-overflow-style: none;
2041
+ scrollbar-width: none;
2042
+ }
2043
+ .editor-actions-bar .editor-tooltip-content {
2044
+ display: none !important;
2045
+ }
2046
+ .editor-actions-bar .editor-tooltip-group:hover .editor-tooltip-content {
2047
+ display: block !important;
2048
+ position: absolute;
2049
+ bottom: 100%;
2050
+ left: 50%;
2051
+ transform: translateX(-50%);
2052
+ margin-bottom: 0.5rem;
2053
+ background: var(--popover);
2054
+ color: var(--popover-foreground);
2055
+ padding: 0.25rem 0.5rem;
2056
+ border-radius: 0.25rem;
2057
+ font-size: 0.75rem;
2058
+ white-space: nowrap;
2059
+ border: 1px solid var(--border);
2060
+ box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1);
2061
+ z-index: 50;
2062
+ pointer-events: none;
2063
+ }
2064
+ .editor-input:hover:not(:disabled):not([readonly]) {
2065
+ background-color: var(--accent, #f1f5f9);
2066
+ color: var(--accent-foreground, #0f172a);
2067
+ border-color: var(--accent, #f1f5f9);
2068
+ transform: translateY(-1px);
2069
+ box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.1);
2070
+ background-color: color-mix(in srgb, var(--background), black 3%);
2071
+ }
2072
+ .editor-input:focus {
2073
+ border-color: var(--primary);
2074
+ box-shadow: 0 0 0 2px var(--ring);
2075
+ outline: none;
2076
+ }
2077
+ .editor-input-lg {
2078
+ height: 2.75rem;
2079
+ width: 100%;
2080
+ }
2081
+ .editor-input-wrapper {
2082
+ display: flex;
2083
+ align-items: center;
2084
+ }
2085
+ .editor-input-group-item {
2086
+ height: 2rem;
2087
+ }
2088
+ .editor-input-group-item::-webkit-inner-spin-button,
2089
+ .editor-input-group-item::-webkit-outer-spin-button {
2090
+ -webkit-appearance: none;
2091
+ margin: 0;
2092
+ }
2093
+ .editor-input-group-item {
2094
+ -moz-appearance: textfield;
2095
+ }
2096
+ .editor-input-group-item--first {
2097
+ border-top-right-radius: 0;
2098
+ border-bottom-right-radius: 0;
2099
+ }
2100
+ .editor-input-group-item--middle {
2101
+ border-radius: 0;
2102
+ border-left: 0;
2103
+ margin-inline-start: -1px;
2104
+ }
2105
+ .editor-input-group-item--last {
2106
+ border-top-left-radius: 0;
2107
+ border-bottom-left-radius: 0;
2108
+ border-left: 0;
2109
+ margin-inline-start: -1px;
2110
+ }
2111
+ .editor-btn:hover:not(:disabled):not([data-state=on]) {
2112
+ background-color: var(--accent, #f1f5f9);
2113
+ color: var(--accent-foreground, #0f172a);
2114
+ border-color: var(--accent, #f1f5f9);
2115
+ transform: translateY(-1px);
2116
+ box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.1);
2117
+ }
2118
+ .editor-btn:active:not(:disabled) {
2119
+ transform: translateY(0);
2120
+ box-shadow: none;
2121
+ }
2122
+ .editor-btn--ghost:hover:not(:disabled):not([data-state=on]),
2123
+ .editor-btn--outline:hover:not(:disabled):not([data-state=on]) {
2124
+ background-color: var(--accent, #f1f5f9);
2125
+ color: var(--accent-foreground, #0f172a);
2126
+ border-color: var(--accent, #f1f5f9);
2127
+ transform: translateY(-1px);
2128
+ box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.1);
2129
+ }
2130
+ .editor-btn--ghost:active:not(:disabled),
2131
+ .editor-btn--outline:active:not(:disabled) {
2132
+ transform: translateY(0);
2133
+ box-shadow: none;
2134
+ }
2135
+ .editor-btn-icon-lg {
2136
+ height: 2.5rem !important;
2137
+ min-height: 2.5rem !important;
2138
+ width: 2.5rem !important;
2139
+ }
2140
+ .editor-btn-icon-md {
2141
+ height: 2.25rem;
2142
+ width: 2.25rem;
2143
+ }
2144
+ .editor-toggle-group-item:hover:not(:disabled):not([data-state=on]) {
2145
+ background-color: var(--accent, #f1f5f9);
2146
+ color: var(--accent-foreground, #0f172a);
2147
+ border-color: var(--accent, #f1f5f9);
2148
+ transform: translateY(-1px);
2149
+ box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.1);
2150
+ }
2151
+ .editor-toggle-group-item:active:not(:disabled) {
2152
+ transform: translateY(0);
2153
+ box-shadow: none;
2154
+ }
2155
+ .editor-toggle-group-item[data-state=on]:hover {
2156
+ background-color: var(--accent, #f1f5f9);
2157
+ color: var(--accent-foreground, #0f172a);
2158
+ border-color: var(--accent, #f1f5f9);
2159
+ transform: translateY(-1px);
2160
+ box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.1);
2161
+ background-color: color-mix(in srgb, var(--accent, #f1f5f9), black 10%);
2162
+ border-color: var(--accent, #f1f5f9);
2163
+ }
2164
+ .editor-toggle:hover:not(:disabled):not([data-state=on]) {
2165
+ background-color: var(--accent, #f1f5f9);
2166
+ color: var(--accent-foreground, #0f172a);
2167
+ border-color: var(--accent, #f1f5f9);
2168
+ transform: translateY(-1px);
2169
+ box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.1);
2170
+ }
2171
+ .editor-toggle:active:not(:disabled) {
2172
+ transform: translateY(0);
2173
+ box-shadow: none;
2174
+ }
2175
+ .editor-toggle[data-state=on]:hover {
2176
+ background-color: var(--accent, #f1f5f9);
2177
+ color: var(--accent-foreground, #0f172a);
2178
+ border-color: var(--accent, #f1f5f9);
2179
+ transform: translateY(-1px);
2180
+ box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.1);
2181
+ background-color: color-mix(in srgb, var(--accent, #f1f5f9), black 10%);
2182
+ border-color: var(--accent, #f1f5f9);
2183
+ }
2184
+ .editor-root-container {
2185
+ border-radius: var(--radius, 8px);
2186
+ transition: all 0.2s ease-in-out;
2187
+ }
2188
+ .editor-root-container.editor-root-container--shadow:focus-within {
2189
+ box-shadow: 0 0 0 1px var(--border, #d1d5db), 0 0 0 3px var(--ring, rgba(59, 130, 246, 0.5));
2190
+ }
2191
+ .lexical-editor-root {
2192
+ font-family:
2193
+ var(--font-inter),
2194
+ "Inter",
2195
+ ui-sans-serif,
2196
+ system-ui,
2197
+ -apple-system,
2198
+ BlinkMacSystemFont,
2199
+ "Segoe UI",
2200
+ Roboto,
2201
+ "Helvetica Neue",
2202
+ Arial,
2203
+ sans-serif !important;
2204
+ font-size: 16px;
2205
+ color: var(--foreground, #1f2937) !important;
2206
+ background-color: var(--background, transparent) !important;
2207
+ position: relative !important;
2208
+ width: 100% !important;
2209
+ margin: 0 !important;
2210
+ padding: 0 !important;
2211
+ text-align: left !important;
2212
+ box-sizing: border-box !important;
2213
+ }
2214
+ .lexical-editor-root *,
2215
+ .lexical-editor-root *::before,
2216
+ .lexical-editor-root *::after {
2217
+ box-sizing: border-box;
2218
+ }
2219
+ .lexical-editor-root p,
2220
+ .lexical-editor-root ul,
2221
+ .lexical-editor-root ol,
2222
+ .lexical-editor-root li,
2223
+ .lexical-editor-root span,
2224
+ .lexical-editor-root strong,
2225
+ .lexical-editor-root em,
2226
+ .lexical-editor-root b,
2227
+ .lexical-editor-root i,
2228
+ .lexical-editor-root blockquote,
2229
+ .lexical-editor-root h1,
2230
+ .lexical-editor-root h2,
2231
+ .lexical-editor-root h3,
2232
+ .lexical-editor-root h4,
2233
+ .lexical-editor-root h5,
2234
+ .lexical-editor-root h6 {
2235
+ margin: 0 !important;
2236
+ padding: 0 !important;
2237
+ border: 0 !important;
2238
+ font-size: 100%;
2239
+ vertical-align: baseline !important;
2240
+ -webkit-font-smoothing: antialiased !important;
2241
+ -moz-osx-font-smoothing: grayscale !important;
2242
+ letter-spacing: normal !important;
2243
+ word-spacing: normal !important;
2244
+ text-indent: 0 !important;
2245
+ text-transform: none !important;
2246
+ text-decoration: none !important;
2247
+ line-height: inherit;
2248
+ text-align: inherit;
2249
+ white-space: inherit !important;
2250
+ word-break: normal !important;
2251
+ word-wrap: normal !important;
2252
+ overflow-wrap: normal !important;
2253
+ margin-inline-start: 0 !important;
2254
+ margin-inline-end: 0 !important;
2255
+ padding-inline-start: 0 !important;
2256
+ padding-inline-end: 0 !important;
2257
+ margin-block-start: 0 !important;
2258
+ margin-block-end: 0 !important;
2259
+ -webkit-tap-highlight-color: transparent !important;
2260
+ }
2261
+ .lexical-editor-root ul,
2262
+ .lexical-editor-root ol {
2263
+ list-style-position: outside !important;
2264
+ list-style-type: none !important;
2265
+ }
2266
+ .lexical-editor-root li {
2267
+ margin: 0;
2268
+ padding: 0;
2269
+ }
2270
+ .lexical-editor-root span[data-lexical-text=true] {
2271
+ display: inline !important;
2272
+ white-space: pre-wrap !important;
2273
+ word-break: break-word !important;
2274
+ margin: 0 !important;
2275
+ padding: 0 !important;
2276
+ }
2277
+ .lexical-editor-root .editor-paragraph {
2278
+ font-size: 16px !important;
2279
+ line-height: 1.75 !important;
2280
+ margin-top: 12px !important;
2281
+ margin-bottom: 12px !important;
2282
+ }
2283
+ .lexical-editor-root .editor-paragraph:first-child {
2284
+ margin-top: 0 !important;
2285
+ }
2286
+ .lexical-editor-root .editor-h1 {
2287
+ font-size: 36px;
2288
+ line-height: 40px !important;
2289
+ font-weight: 700 !important;
2290
+ letter-spacing: -0.025em;
2291
+ margin-top: 32px !important;
2292
+ margin-bottom: 16px !important;
2293
+ }
2294
+ .lexical-editor-root .editor-h2 {
2295
+ font-size: 30px;
2296
+ line-height: 36px !important;
2297
+ font-weight: 600 !important;
2298
+ letter-spacing: -0.025em;
2299
+ margin-top: 24px !important;
2300
+ margin-bottom: 12px !important;
2301
+ border-bottom: 1px solid var(--border, #d1d5db);
2302
+ padding-bottom: 5px;
2303
+ }
2304
+ .lexical-editor-root .editor-h3 {
2305
+ font-size: 24px;
2306
+ line-height: 32px !important;
2307
+ font-weight: 600 !important;
2308
+ letter-spacing: -0.025em;
2309
+ margin-top: 24px !important;
2310
+ margin-bottom: 12px !important;
2311
+ }
2312
+ .lexical-editor-root .editor-h4 {
2313
+ font-size: 20px;
2314
+ line-height: 28px !important;
2315
+ font-weight: 600 !important;
2316
+ margin-top: 20px !important;
2317
+ margin-bottom: 8px !important;
2318
+ }
2319
+ .lexical-editor-root .editor-h5 {
2320
+ font-size: 18px;
2321
+ line-height: 28px !important;
2322
+ font-weight: 600 !important;
2323
+ margin-top: 20px !important;
2324
+ margin-bottom: 8px !important;
2325
+ }
2326
+ .lexical-editor-root .editor-h6 {
2327
+ font-size: 16px;
2328
+ line-height: 24px !important;
2329
+ font-weight: 600 !important;
2330
+ margin-top: 20px !important;
2331
+ margin-bottom: 8px !important;
2332
+ }
2333
+ .lexical-editor-root .editor-quote {
2334
+ margin: 24px 0 !important;
2335
+ padding-left: 16px !important;
2336
+ border-left: 4px solid var(--input, #e5e7eb) !important;
2337
+ font-style: italic !important;
2338
+ color: #64748b !important;
2339
+ }
2340
+ .lexical-editor-root .editor-ol {
2341
+ list-style-type: decimal !important;
2342
+ padding-left: 24px !important;
2343
+ margin-top: 8px !important;
2344
+ margin-bottom: 8px !important;
2345
+ }
2346
+ .lexical-editor-root .editor-ol[data-list-marker=alpha] {
2347
+ list-style-type: lower-alpha !important;
2348
+ }
2349
+ .lexical-editor-root .editor-ol[data-list-color] li::marker {
2350
+ color: var(--list-marker-color, currentColor) !important;
2351
+ }
2352
+ .lexical-editor-root .editor-ul:not(.editor-checklist) {
2353
+ padding-left: 24px !important;
2354
+ margin-top: 8px !important;
2355
+ margin-bottom: 8px !important;
2356
+ }
2357
+ .lexical-editor-root .editor-ul:not(.editor-checklist):not([data-list-marker]) {
2358
+ list-style-type: disc !important;
2359
+ }
2360
+ .lexical-editor-root .editor-ul:not(.editor-checklist)[data-list-marker="-"] {
2361
+ list-style-type: none !important;
2362
+ }
2363
+ .lexical-editor-root .editor-ul:not(.editor-checklist)[data-list-marker="-"] > li::marker {
2364
+ content: "- " !important;
2365
+ }
2366
+ .lexical-editor-root .editor-ul:not(.editor-checklist)[data-list-marker="+"] {
2367
+ list-style-type: none !important;
2368
+ }
2369
+ .lexical-editor-root .editor-ul:not(.editor-checklist)[data-list-marker="+"] > li::marker {
2370
+ content: "+ " !important;
2371
+ }
2372
+ .lexical-editor-root .editor-ul:not(.editor-checklist)[data-list-color] li::marker {
2373
+ color: var(--list-marker-color, currentColor) !important;
2374
+ }
2375
+ .lexical-editor-root .editor-listitem {
2376
+ margin-bottom: 4px !important;
2377
+ line-height: 1.6 !important;
2378
+ }
2379
+ .lexical-editor-root .editor-checklist {
2380
+ list-style: none !important;
2381
+ padding: 0 !important;
2382
+ margin-top: 8px !important;
2383
+ margin-bottom: 8px !important;
2384
+ margin-left: 0 !important;
2385
+ margin-right: 0 !important;
2386
+ outline: none !important;
2387
+ box-shadow: none !important;
2388
+ }
2389
+ .lexical-editor-root .editor-checklist .editor-listitem-checked,
2390
+ .lexical-editor-root .editor-checklist .editor-listitem-unchecked {
2391
+ display: flex;
2392
+ align-items: flex-start;
2393
+ margin-left: 0;
2394
+ padding: 4px 0;
2395
+ list-style: none;
2396
+ outline: none;
2397
+ gap: 12px;
2398
+ }
2399
+ .lexical-editor-root .editor-checklist .editor-listitem-checked::before,
2400
+ .lexical-editor-root .editor-checklist .editor-listitem-unchecked::before {
2401
+ content: "";
2402
+ width: 18px;
2403
+ height: 18px;
2404
+ flex-shrink: 0;
2405
+ margin-top: 3px;
2406
+ cursor: pointer;
2407
+ display: block;
2408
+ border: 2px solid var(--list-marker-color, #3b82f6) !important;
2409
+ border-radius: 4px;
2410
+ box-sizing: border-box;
2411
+ transition: all 0.1s ease-in-out;
2412
+ background-position: center;
2413
+ background-repeat: no-repeat;
2414
+ background-size: 12px;
2415
+ }
2416
+ .lexical-editor-root .editor-checklist .editor-listitem-checked {
2417
+ text-decoration: line-through;
2418
+ color: #64748b;
2419
+ }
2420
+ .lexical-editor-root .editor-checklist .editor-listitem-checked::before {
2421
+ background-color: var(--list-marker-color, #3b82f6) !important;
2422
+ border-color: var(--list-marker-color, #3b82f6) !important;
2423
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M3 7.5L5.5 10L11 4.5'/%3E%3C/svg%3E");
2424
+ }
2425
+ .lexical-editor-root .editor-checklist .editor-listitem-checked::after {
2426
+ display: none;
2427
+ }
2428
+ .lexical-editor-root .editor-nested-listitem {
2429
+ list-style: none;
2430
+ }
2431
+ .lexical-editor-root .editor-nested-listitem::before,
2432
+ .lexical-editor-root .editor-nested-listitem::after {
2433
+ display: none;
2434
+ }
2435
+ .lexical-editor-root .editor-ol-depth-1 {
2436
+ list-style-type: decimal !important;
2437
+ }
2438
+ .lexical-editor-root .editor-ul-depth-1:not(.editor-checklist)[data-list-marker="-"] {
2439
+ list-style-type: none !important;
2440
+ }
2441
+ .lexical-editor-root .editor-ul-depth-1:not(.editor-checklist)[data-list-marker="-"] li::marker {
2442
+ content: "- " !important;
2443
+ }
2444
+ .lexical-editor-root .editor-ul-depth-1:not(.editor-checklist)[data-list-marker="+"] {
2445
+ list-style-type: none !important;
2446
+ }
2447
+ .lexical-editor-root .editor-ul-depth-1:not(.editor-checklist)[data-list-marker="+"] li::marker {
2448
+ content: "+ " !important;
2449
+ }
2450
+ .lexical-editor-root .editor-ul-depth-1:not(.editor-checklist):not([data-list-marker]) {
2451
+ list-style-type: disc !important;
2452
+ }
2453
+ .lexical-editor-root .editor-ol-depth-2 {
2454
+ list-style-type: upper-roman !important;
2455
+ }
2456
+ .lexical-editor-root .editor-ul-depth-2:not(.editor-checklist)[data-list-marker="-"] {
2457
+ list-style-type: none !important;
2458
+ }
2459
+ .lexical-editor-root .editor-ul-depth-2:not(.editor-checklist)[data-list-marker="-"] li::marker {
2460
+ content: "- " !important;
2461
+ }
2462
+ .lexical-editor-root .editor-ul-depth-2:not(.editor-checklist)[data-list-marker="+"] {
2463
+ list-style-type: none !important;
2464
+ }
2465
+ .lexical-editor-root .editor-ul-depth-2:not(.editor-checklist)[data-list-marker="+"] li::marker {
2466
+ content: "+ " !important;
2467
+ }
2468
+ .lexical-editor-root .editor-ul-depth-2:not(.editor-checklist):not([data-list-marker]) {
2469
+ list-style-type: disc !important;
2470
+ }
2471
+ .lexical-editor-root .editor-ol-depth-3 {
2472
+ list-style-type: lower-roman !important;
2473
+ }
2474
+ .lexical-editor-root .editor-ul-depth-3:not(.editor-checklist)[data-list-marker="-"] {
2475
+ list-style-type: none !important;
2476
+ }
2477
+ .lexical-editor-root .editor-ul-depth-3:not(.editor-checklist)[data-list-marker="-"] li::marker {
2478
+ content: "- " !important;
2479
+ }
2480
+ .lexical-editor-root .editor-ul-depth-3:not(.editor-checklist)[data-list-marker="+"] {
2481
+ list-style-type: none !important;
2482
+ }
2483
+ .lexical-editor-root .editor-ul-depth-3:not(.editor-checklist)[data-list-marker="+"] li::marker {
2484
+ content: "+ " !important;
2485
+ }
2486
+ .lexical-editor-root .editor-ul-depth-3:not(.editor-checklist):not([data-list-marker]) {
2487
+ list-style-type: disc !important;
2488
+ }
2489
+ .lexical-editor-root .editor-ol-depth-4 {
2490
+ list-style-type: upper-alpha !important;
2491
+ }
2492
+ .lexical-editor-root .editor-ul-depth-4:not(.editor-checklist)[data-list-marker="-"] {
2493
+ list-style-type: none !important;
2494
+ }
2495
+ .lexical-editor-root .editor-ul-depth-4:not(.editor-checklist)[data-list-marker="-"] li::marker {
2496
+ content: "- " !important;
2497
+ }
2498
+ .lexical-editor-root .editor-ul-depth-4:not(.editor-checklist)[data-list-marker="+"] {
2499
+ list-style-type: none !important;
2500
+ }
2501
+ .lexical-editor-root .editor-ul-depth-4:not(.editor-checklist)[data-list-marker="+"] li::marker {
2502
+ content: "+ " !important;
2503
+ }
2504
+ .lexical-editor-root .editor-ul-depth-4:not(.editor-checklist):not([data-list-marker]) {
2505
+ list-style-type: disc !important;
2506
+ }
2507
+ .lexical-editor-root .editor-ol-depth-5 {
2508
+ list-style-type: lower-alpha !important;
2509
+ }
2510
+ .lexical-editor-root .editor-ul-depth-5:not(.editor-checklist)[data-list-marker="-"] {
2511
+ list-style-type: none !important;
2512
+ }
2513
+ .lexical-editor-root .editor-ul-depth-5:not(.editor-checklist)[data-list-marker="-"] li::marker {
2514
+ content: "- " !important;
2515
+ }
2516
+ .lexical-editor-root .editor-ul-depth-5:not(.editor-checklist)[data-list-marker="+"] {
2517
+ list-style-type: none !important;
2518
+ }
2519
+ .lexical-editor-root .editor-ul-depth-5:not(.editor-checklist)[data-list-marker="+"] li::marker {
2520
+ content: "+ " !important;
2521
+ }
2522
+ .lexical-editor-root .editor-ul-depth-5:not(.editor-checklist):not([data-list-marker]) {
2523
+ list-style-type: disc !important;
2524
+ }
2525
+ .lexical-editor-root .editor-code {
2526
+ background-color: #fcfcfc;
2527
+ color: #1a1a1a;
2528
+ font-family:
2529
+ "JetBrains Mono",
2530
+ ui-monospace,
2531
+ SFMono-Regular,
2532
+ Menlo,
2533
+ Monaco,
2534
+ Consolas,
2535
+ "Liberation Mono",
2536
+ "Courier New",
2537
+ monospace;
2538
+ display: block;
2539
+ padding: 16px 16px 16px 64px;
2540
+ line-height: 1.6;
2541
+ font-size: 14px;
2542
+ margin: 24px 0 !important;
2543
+ overflow-x: auto;
2544
+ border: 1px solid #e2e8f0;
2545
+ position: relative;
2546
+ border-radius: 8px;
2547
+ tab-size: 2;
2548
+ box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.05);
2549
+ }
2550
+ .lexical-editor-root .editor-code:before {
2551
+ content: attr(data-gutter);
2552
+ position: absolute;
2553
+ background-color: #f8fafc;
2554
+ border-right: 1px solid #e2e8f0;
2555
+ left: 0;
2556
+ top: 0;
2557
+ bottom: 0;
2558
+ padding: 16px 12px;
2559
+ color: #94a3b8;
2560
+ white-space: pre-wrap;
2561
+ text-align: right;
2562
+ min-width: 56px;
2563
+ font-variant-numeric: tabular-nums;
2564
+ user-select: none;
2565
+ font-size: 12px;
2566
+ }
2567
+ .lexical-editor-root .editor-hashtag {
2568
+ background-color: rgba(var(--primary, #3b82f6), 0.1);
2569
+ color: var(--primary, #3b82f6);
2570
+ border-bottom: 1px solid var(--primary, #3b82f6);
2571
+ padding: 0 2px;
2572
+ }
2573
+ .lexical-editor-root .editor-table {
2574
+ border-collapse: collapse;
2575
+ border-spacing: 0;
2576
+ width: 100%;
2577
+ table-layout: fixed;
2578
+ margin: 16px 0;
2579
+ border-radius: var(--radius, 8px);
2580
+ border: 1px solid var(--border, #d1d5db);
2581
+ }
2582
+ .lexical-editor-root .editor-table .editor-table-cell,
2583
+ .lexical-editor-root .editor-table .editor-table-cell-header {
2584
+ min-width: 0 !important;
2585
+ border: 1px solid var(--border, #d1d5db);
2586
+ padding: 8px 6px;
2587
+ position: relative;
2588
+ text-align: left;
2589
+ vertical-align: top;
2590
+ }
2591
+ .lexical-editor-root .editor-table .editor-table-cell-header {
2592
+ background-color: var(--muted, #f9fafb);
2593
+ font-weight: 600;
2594
+ color: var(--foreground, #1f2937);
2595
+ }
2596
+ .lexical-editor-root .editor-table .editor-table-cell-selected {
2597
+ background-color: rgba(var(--primary, #3b82f6), 0.05);
2598
+ }
2599
+ .lexical-editor-root .editor-table .editor-table-cell-resizer {
2600
+ position: absolute;
2601
+ right: -4px;
2602
+ height: 100%;
2603
+ width: 8px;
2604
+ cursor: ew-resize;
2605
+ z-index: 10;
2606
+ top: 0;
2607
+ }
2608
+ .lexical-editor-root .editor-table .editor-table-cell-resize-ruler {
2609
+ display: block;
2610
+ position: absolute;
2611
+ width: 1px;
2612
+ height: 100%;
2613
+ background-color: var(--primary, #3b82f6);
2614
+ top: 0;
2615
+ }
2616
+ .lexical-editor-root .editor-table .editor-table-cell-action-button-container {
2617
+ display: block;
2618
+ right: 4px;
2619
+ top: 6px;
2620
+ position: absolute;
2621
+ z-index: 10;
2622
+ width: 20px;
2623
+ height: 20px;
2624
+ }
2625
+ .lexical-editor-root .editor-table .editor-table-cell-action-button {
2626
+ background-color: #eee;
2627
+ display: block;
2628
+ border: 0;
2629
+ border-radius: 20px;
2630
+ width: 20px;
2631
+ height: 20px;
2632
+ color: #222;
2633
+ cursor: pointer;
2634
+ }
2635
+ .lexical-editor-root .editor-table .editor-table-cell-action-button:hover {
2636
+ background-color: #ddd;
2637
+ }
2638
+ .lexical-editor-root .editor-table .editor-table-cell-editing {
2639
+ box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
2640
+ border-radius: 2px;
2641
+ }
2642
+ .lexical-editor-root .editor-table .editor-table-cell-primary-selected {
2643
+ border: 2px solid var(--primary, #3b82f6);
2644
+ display: block;
2645
+ height: calc(100% - 2px);
2646
+ width: calc(100% - 2px);
2647
+ position: absolute;
2648
+ left: -1px;
2649
+ top: -1px;
2650
+ z-index: 10;
2651
+ }
2652
+ .lexical-editor-root .editor-table .editor-table-cell-sorted-indicator {
2653
+ display: block;
2654
+ opacity: 0.5;
2655
+ position: absolute;
2656
+ bottom: 0;
2657
+ left: 0;
2658
+ width: 100%;
2659
+ height: 4px;
2660
+ background-color: var(--muted, #f3f4f6);
2661
+ }
2662
+ .lexical-editor-root .editor-table .editor-table-row-striping {
2663
+ margin: 0;
2664
+ border-top: 1px solid var(--border, #d1d5db);
2665
+ padding: 0;
2666
+ }
2667
+ .lexical-editor-root .editor-table .editor-table-row-striping:nth-child(even) {
2668
+ background-color: var(--muted, #f3f4f6);
2669
+ }
2670
+ .lexical-editor-root .editor-table .editor-table-selected {
2671
+ outline: 2px solid var(--primary, #3b82f6);
2672
+ }
2673
+ .lexical-editor-root .editor-table .editor-table-selection {
2674
+ background-color: transparent;
2675
+ }
2676
+ .lexical-editor-root .editor-link {
2677
+ color: #3b82f6;
2678
+ text-decoration: none;
2679
+ }
2680
+ .lexical-editor-root .editor-link:hover {
2681
+ text-decoration: underline;
2682
+ cursor: pointer;
2683
+ }
2684
+ .lexical-editor-root .editor-text-bold {
2685
+ font-weight: 700 !important;
2686
+ }
2687
+ .lexical-editor-root .editor-text-italic {
2688
+ font-style: italic !important;
2689
+ }
2690
+ .lexical-editor-root .editor-text-underline {
2691
+ text-decoration: underline !important;
2692
+ }
2693
+ .lexical-editor-root .editor-text-strikethrough {
2694
+ text-decoration: line-through !important;
2695
+ }
2696
+ .lexical-editor-root .editor-text-underline-strikethrough {
2697
+ text-decoration: underline line-through !important;
2698
+ }
2699
+ .lexical-editor-root .editor-text-subscript {
2700
+ vertical-align: sub !important;
2701
+ font-size: 0.8em !important;
2702
+ }
2703
+ .lexical-editor-root .editor-text-superscript {
2704
+ vertical-align: super !important;
2705
+ font-size: 0.8em !important;
2706
+ }
2707
+ .lexical-editor-root .editor-text-code {
2708
+ background-color: #f1f5f9;
2709
+ color: #0f172a;
2710
+ padding: 2px 6px;
2711
+ font-family:
2712
+ "JetBrains Mono",
2713
+ ui-monospace,
2714
+ SFMono-Regular,
2715
+ Menlo,
2716
+ Monaco,
2717
+ Consolas,
2718
+ "Liberation Mono",
2719
+ "Courier New",
2720
+ monospace;
2721
+ font-size: 14px;
2722
+ border-radius: 6px;
2723
+ border: 1px solid #e2e8f0;
2724
+ font-weight: 500;
2725
+ }
2726
+ .lexical-editor-root .editor-text-align-left {
2727
+ text-align: left !important;
2728
+ }
2729
+ .lexical-editor-root .editor-text-align-center {
2730
+ text-align: center !important;
2731
+ }
2732
+ .lexical-editor-root .editor-text-align-right {
2733
+ text-align: right !important;
2734
+ }
2735
+ .lexical-editor-root .editor-text-align-justify {
2736
+ text-align: justify !important;
2737
+ }
2738
+ .lexical-editor-root .editor-image {
2739
+ display: inline-block;
2740
+ position: relative;
2741
+ cursor: default;
2742
+ user-select: none;
2743
+ }
2744
+ .lexical-editor-root .editor-image img {
2745
+ max-width: 100%;
2746
+ height: auto;
2747
+ }
2748
+ .lexical-editor-root .editor-inline-image {
2749
+ display: inline-block;
2750
+ position: relative;
2751
+ z-index: 1;
2752
+ }
2753
+ .lexical-editor-root .editor-inline-image img {
2754
+ max-width: 100%;
2755
+ height: auto;
2756
+ }
2757
+ .lexical-editor-root .editor-image-focused {
2758
+ outline: 2px solid var(--primary, #3b82f6);
2759
+ outline-offset: 2px;
2760
+ }
2761
+ .lexical-editor-root .editor-image-draggable {
2762
+ cursor: grab;
2763
+ }
2764
+ .lexical-editor-root .editor-image-draggable:active {
2765
+ cursor: grabbing;
2766
+ }
2767
+ .lexical-editor-root .editor-image-caption {
2768
+ display: block;
2769
+ min-width: 100px;
2770
+ overflow: hidden;
2771
+ padding: 0;
2772
+ margin-top: 8px;
2773
+ }
2774
+ .lexical-editor-root .editor-image-caption.editable {
2775
+ border: 1px solid var(--border, #d1d5db);
2776
+ border-radius: var(--radius, 8px);
2777
+ background-color: rgba(255, 255, 255, 0.9);
2778
+ }
2779
+ .lexical-editor-root .editor-image-caption.readonly {
2780
+ border: 0;
2781
+ background-color: transparent;
2782
+ }
2783
+ .lexical-editor-root .editor-lazy-image-wrapper {
2784
+ display: inline-block;
2785
+ }
2786
+ .lexical-editor-root .editor-lazy-image-wrapper.full-width {
2787
+ width: 100%;
2788
+ }
2789
+ .lexical-editor-root .editor-broken-image-container {
2790
+ display: inline-block;
2791
+ width: 200px;
2792
+ height: 200px;
2793
+ }
2794
+ .lexical-editor-root .editor-broken-image-container img {
2795
+ opacity: 0.2;
2796
+ object-fit: contain;
2797
+ }
2798
+ .lexical-editor-root .editor-tweet-container {
2799
+ display: block;
2800
+ width: 100%;
2801
+ max-width: 550px;
2802
+ }
2803
+ .lexical-editor-root .editor-hr {
2804
+ padding: 2px;
2805
+ border: none;
2806
+ margin: 1em 0;
2807
+ cursor: pointer;
2808
+ }
2809
+ .lexical-editor-root .editor-hr:after {
2810
+ content: "";
2811
+ display: block;
2812
+ height: 2px;
2813
+ background-color: var(--border, #d1d5db);
2814
+ line-height: 2px;
2815
+ }
2816
+ .lexical-editor-root .editor-hr.selected {
2817
+ outline: 2px solid var(--primary, #3b82f6);
2818
+ user-select: none;
2819
+ }
2820
+ .lexical-editor-root .editor-embed-block {
2821
+ user-select: none;
2822
+ }
2823
+ .lexical-editor-root .editor-embed-block-focused {
2824
+ outline: 2px solid var(--primary, #3b82f6);
2825
+ }
2826
+ .lexical-editor-root .editor-autocomplete {
2827
+ color: #9ca3af;
2828
+ }
2829
+ .editor-content-editable {
2830
+ position: relative !important;
2831
+ display: block !important;
2832
+ min-height: 288px !important;
2833
+ padding: 16px 32px !important;
2834
+ outline: none !important;
2835
+ }
2836
+ .editor-content-editable:focus {
2837
+ outline: none !important;
2838
+ }
2839
+ .editor-content-editable--readonly {
2840
+ cursor: default !important;
2841
+ user-select: text !important;
2842
+ }
2843
+ .editor-placeholder {
2844
+ color: var(--muted-foreground) !important;
2845
+ pointer-events: none !important;
2846
+ position: absolute !important;
2847
+ top: 0 !important;
2848
+ left: 0 !important;
2849
+ overflow: hidden !important;
2850
+ padding: 18px 32px !important;
2851
+ text-overflow: ellipsis !important;
2852
+ user-select: none !important;
2853
+ }
2854
+ /*# sourceMappingURL=editor.css.map */