@bayonai/rich-text-editor 0.1.2 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/BEHAVIOR.md +396 -0
  2. package/CHANGELOG.md +22 -0
  3. package/README.md +25 -6
  4. package/dist/core/blockTree.d.ts +14 -0
  5. package/dist/core/blockTree.js +126 -0
  6. package/dist/core/blockTypes.d.ts +6 -0
  7. package/dist/core/blockTypes.js +5 -0
  8. package/dist/core/exportImport.d.ts +59 -0
  9. package/dist/core/exportImport.js +51 -0
  10. package/dist/core/features.d.ts +59 -0
  11. package/dist/core/features.js +57 -0
  12. package/dist/core/imageBlockDiagnostics.d.ts +4 -0
  13. package/dist/core/imageBlockDiagnostics.js +19 -0
  14. package/dist/core/proFeatures.d.ts +60 -0
  15. package/dist/core/proFeatures.js +64 -0
  16. package/dist/{richText.d.ts → core/richText.d.ts} +2 -0
  17. package/dist/core/richText.js +566 -0
  18. package/dist/core/types.d.ts +78 -0
  19. package/dist/index.d.ts +14 -8
  20. package/dist/index.js +8 -5
  21. package/dist/react/editor/RichTextBody.d.ts +28 -0
  22. package/dist/react/editor/RichTextBody.js +131 -0
  23. package/dist/react/editor/RichTextEditor.d.ts +138 -0
  24. package/dist/react/editor/RichTextEditor.js +2925 -0
  25. package/dist/react/editor/RichTextRenderedBlock.d.ts +20 -0
  26. package/dist/react/editor/RichTextRenderedBlock.js +162 -0
  27. package/dist/react/editor/RichTextRenderer.d.ts +13 -0
  28. package/dist/react/editor/RichTextRenderer.js +16 -0
  29. package/dist/react/{RichTextTitleInput.d.ts → editor/RichTextTitleInput.d.ts} +11 -1
  30. package/dist/react/{RichTextTitleInput.js → editor/RichTextTitleInput.js} +17 -2
  31. package/dist/react/editor/blockActions.d.ts +48 -0
  32. package/dist/react/editor/blockActions.js +495 -0
  33. package/dist/react/editor/editorHistory.d.ts +55 -0
  34. package/dist/react/editor/editorHistory.js +111 -0
  35. package/dist/react/{editorNavigation.d.ts → editor/editorNavigation.d.ts} +2 -0
  36. package/dist/react/{editorNavigation.js → editor/editorNavigation.js} +16 -0
  37. package/dist/react/editor/editorOperations.d.ts +10 -0
  38. package/dist/react/editor/editorOperations.js +3 -0
  39. package/dist/react/editor/editorSelection.d.ts +3 -0
  40. package/dist/react/editor/editorSelection.js +215 -0
  41. package/dist/react/{editorShortcuts.d.ts → editor/editorShortcuts.d.ts} +10 -0
  42. package/dist/react/{editorShortcuts.js → editor/editorShortcuts.js} +17 -1
  43. package/dist/react/{RichTextIcons.d.ts → icons/RichTextIcons.d.ts} +3 -0
  44. package/dist/react/{RichTextIcons.js → icons/RichTextIcons.js} +9 -0
  45. package/dist/react/index.d.ts +12 -9
  46. package/dist/react/index.js +7 -6
  47. package/dist/react/{EditorSessionProvider.d.ts → session/EditorSessionProvider.d.ts} +2 -2
  48. package/dist/react/{EditorSessionProvider.js → session/EditorSessionProvider.js} +3 -3
  49. package/dist/react/{UnsavedChangesDialog.js → session/UnsavedChangesDialog.js} +1 -1
  50. package/dist/react/styles/RichTextStyles.js +1362 -0
  51. package/dist/react/{BlockActionTool.d.ts → tools/BlockActionTool.d.ts} +1 -1
  52. package/dist/react/{BlockActionTool.js → tools/BlockActionTool.js} +6 -2
  53. package/dist/react/tools/LinkCreationInput.d.ts +9 -0
  54. package/dist/react/tools/LinkCreationInput.js +38 -0
  55. package/dist/react/{SelectionFormatToolbar.d.ts → tools/SelectionFormatToolbar.d.ts} +3 -2
  56. package/dist/react/{SelectionFormatToolbar.js → tools/SelectionFormatToolbar.js} +3 -3
  57. package/dist/react/tools/SpecialBlockOption.d.ts +9 -0
  58. package/dist/react/tools/SpecialBlockOption.js +8 -0
  59. package/dist/react/tools/SpecialBlockTool.d.ts +91 -0
  60. package/dist/react/tools/SpecialBlockTool.js +125 -0
  61. package/dist/react/{TranscriptionControl.d.ts → tools/TranscriptionControl.d.ts} +9 -0
  62. package/dist/react/{TranscriptionControl.js → tools/TranscriptionControl.js} +70 -9
  63. package/dist/react/tools/blockActionToolState.d.ts +41 -0
  64. package/dist/react/tools/blockActionToolState.js +177 -0
  65. package/dist/react/tools/imageBlockDiagnostics.d.ts +2 -0
  66. package/dist/react/tools/imageBlockDiagnostics.js +12 -0
  67. package/dist/{session.d.ts → session/session.d.ts} +1 -1
  68. package/dist-cjs/core/blockTree.js +137 -0
  69. package/dist-cjs/core/blockTypes.js +9 -0
  70. package/dist-cjs/core/exportImport.js +56 -0
  71. package/dist-cjs/core/features.js +62 -0
  72. package/dist-cjs/core/proFeatures.js +70 -0
  73. package/dist-cjs/core/richText.js +578 -0
  74. package/dist-cjs/index.js +22 -6
  75. package/dist-cjs/react/editor/RichTextBody.js +134 -0
  76. package/dist-cjs/react/editor/RichTextEditor.js +2956 -0
  77. package/dist-cjs/react/editor/RichTextRenderedBlock.js +166 -0
  78. package/dist-cjs/react/editor/RichTextRenderer.js +20 -0
  79. package/dist-cjs/react/{RichTextTitleInput.js → editor/RichTextTitleInput.js} +18 -2
  80. package/dist-cjs/react/editor/blockActions.js +518 -0
  81. package/dist-cjs/react/editor/editorHistory.js +120 -0
  82. package/dist-cjs/react/{editorNavigation.js → editor/editorNavigation.js} +17 -0
  83. package/dist-cjs/react/editor/editorOperations.js +6 -0
  84. package/dist-cjs/react/editor/editorSelection.js +219 -0
  85. package/dist-cjs/react/{editorShortcuts.js → editor/editorShortcuts.js} +17 -1
  86. package/dist-cjs/react/{RichTextIcons.js → icons/RichTextIcons.js} +12 -0
  87. package/dist-cjs/react/index.js +9 -7
  88. package/dist-cjs/react/{EditorSessionProvider.js → session/EditorSessionProvider.js} +3 -3
  89. package/dist-cjs/react/{UnsavedChangesDialog.js → session/UnsavedChangesDialog.js} +1 -1
  90. package/dist-cjs/react/styles/RichTextStyles.js +1365 -0
  91. package/dist-cjs/react/{BlockActionTool.js → tools/BlockActionTool.js} +6 -2
  92. package/dist-cjs/react/tools/LinkCreationInput.js +41 -0
  93. package/dist-cjs/react/{SelectionFormatToolbar.js → tools/SelectionFormatToolbar.js} +3 -3
  94. package/dist-cjs/react/tools/SpecialBlockOption.js +11 -0
  95. package/dist-cjs/react/tools/SpecialBlockTool.js +129 -0
  96. package/dist-cjs/react/{TranscriptionControl.js → tools/TranscriptionControl.js} +71 -9
  97. package/dist-cjs/react/tools/blockActionToolState.js +186 -0
  98. package/package.json +3 -2
  99. package/dist/react/RichTextBody.d.ts +0 -18
  100. package/dist/react/RichTextBody.js +0 -66
  101. package/dist/react/RichTextEditor.d.ts +0 -45
  102. package/dist/react/RichTextEditor.js +0 -1096
  103. package/dist/react/RichTextRenderedBlock.d.ts +0 -4
  104. package/dist/react/RichTextRenderedBlock.js +0 -36
  105. package/dist/react/RichTextRenderer.d.ts +0 -4
  106. package/dist/react/RichTextRenderer.js +0 -8
  107. package/dist/react/RichTextStyles.js +0 -719
  108. package/dist/react/SpecialBlockOption.d.ts +0 -7
  109. package/dist/react/SpecialBlockOption.js +0 -7
  110. package/dist/react/SpecialBlockTool.d.ts +0 -42
  111. package/dist/react/SpecialBlockTool.js +0 -50
  112. package/dist/react/blockActionToolState.d.ts +0 -18
  113. package/dist/react/blockActionToolState.js +0 -53
  114. package/dist/react/blockActions.d.ts +0 -8
  115. package/dist/react/blockActions.js +0 -111
  116. package/dist/richText.js +0 -297
  117. package/dist/types.d.ts +0 -34
  118. package/dist-cjs/react/RichTextBody.js +0 -69
  119. package/dist-cjs/react/RichTextEditor.js +0 -1108
  120. package/dist-cjs/react/RichTextRenderedBlock.js +0 -39
  121. package/dist-cjs/react/RichTextRenderer.js +0 -11
  122. package/dist-cjs/react/RichTextStyles.js +0 -722
  123. package/dist-cjs/react/SpecialBlockOption.js +0 -10
  124. package/dist-cjs/react/SpecialBlockTool.js +0 -54
  125. package/dist-cjs/react/blockActionToolState.js +0 -58
  126. package/dist-cjs/react/blockActions.js +0 -119
  127. package/dist-cjs/richText.js +0 -307
  128. /package/dist/{types.js → core/types.js} +0 -0
  129. /package/dist/{writingStats.d.ts → core/writingStats.d.ts} +0 -0
  130. /package/dist/{writingStats.js → core/writingStats.js} +0 -0
  131. /package/dist/react/{RichTextDocumentSurface.d.ts → editor/RichTextDocumentSurface.d.ts} +0 -0
  132. /package/dist/react/{RichTextDocumentSurface.js → editor/RichTextDocumentSurface.js} +0 -0
  133. /package/dist/react/{UnsavedChangesDialog.d.ts → session/UnsavedChangesDialog.d.ts} +0 -0
  134. /package/dist/react/{RichTextStyles.d.ts → styles/RichTextStyles.d.ts} +0 -0
  135. /package/dist/react/{richTextBlockStyles.d.ts → styles/richTextBlockStyles.d.ts} +0 -0
  136. /package/dist/react/{richTextBlockStyles.js → styles/richTextBlockStyles.js} +0 -0
  137. /package/dist/react/{specialBlockStyles.d.ts → styles/specialBlockStyles.d.ts} +0 -0
  138. /package/dist/react/{specialBlockStyles.js → styles/specialBlockStyles.js} +0 -0
  139. /package/dist/{saveControl.d.ts → session/saveControl.d.ts} +0 -0
  140. /package/dist/{saveControl.js → session/saveControl.js} +0 -0
  141. /package/dist/{session.js → session/session.js} +0 -0
  142. /package/dist/{sessionRegistry.d.ts → session/sessionRegistry.d.ts} +0 -0
  143. /package/dist/{sessionRegistry.js → session/sessionRegistry.js} +0 -0
  144. /package/dist-cjs/{types.js → core/types.js} +0 -0
  145. /package/dist-cjs/{writingStats.js → core/writingStats.js} +0 -0
  146. /package/dist-cjs/react/{RichTextDocumentSurface.js → editor/RichTextDocumentSurface.js} +0 -0
  147. /package/dist-cjs/react/{richTextBlockStyles.js → styles/richTextBlockStyles.js} +0 -0
  148. /package/dist-cjs/react/{specialBlockStyles.js → styles/specialBlockStyles.js} +0 -0
  149. /package/dist-cjs/{saveControl.js → session/saveControl.js} +0 -0
  150. /package/dist-cjs/{session.js → session/session.js} +0 -0
  151. /package/dist-cjs/{sessionRegistry.js → session/sessionRegistry.js} +0 -0
@@ -0,0 +1,1362 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ const richTextStyles = `
3
+ .bayon-rte-stack {
4
+ display: flex;
5
+ flex-direction: column;
6
+ gap: 8px;
7
+ }
8
+
9
+ .bayon-rte-surface {
10
+ background: transparent;
11
+ border: 1px solid transparent;
12
+ border-radius: 8px;
13
+ color: inherit;
14
+ min-height: auto;
15
+ overflow: hidden;
16
+ padding: 6px 0;
17
+ }
18
+
19
+ .bayon-rte-surface--panel {
20
+ background: linear-gradient(180deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.025));
21
+ border-color: rgba(223, 194, 255, 0.14);
22
+ box-shadow: 0 18px 46px rgba(0, 0, 0, 0.2);
23
+ }
24
+
25
+ .bayon-rte-surface__inner {
26
+ display: flex;
27
+ flex-direction: column;
28
+ gap: 20px;
29
+ margin: 0 auto;
30
+ padding: 0 24px 0 18px;
31
+ position: relative;
32
+ }
33
+
34
+ .bayon-rte-title {
35
+ background: transparent;
36
+ border: 0;
37
+ color: inherit;
38
+ direction: ltr;
39
+ display: block;
40
+ font: inherit;
41
+ font-size: 1.55rem;
42
+ font-weight: 700;
43
+ line-height: 1.15;
44
+ margin: 0;
45
+ outline: 0;
46
+ overflow: hidden;
47
+ overflow-wrap: anywhere;
48
+ padding: 0;
49
+ resize: none;
50
+ text-align: left;
51
+ width: 100%;
52
+ }
53
+
54
+ .bayon-rte-title-error {
55
+ align-self: flex-start;
56
+ background: rgba(244, 67, 54, 0.12);
57
+ border-left: 3px solid #ff8a80;
58
+ border-radius: 6px;
59
+ color: #ffcdd2;
60
+ font-size: 0.86rem;
61
+ line-height: 1.4;
62
+ margin-top: 8px;
63
+ max-width: 100%;
64
+ overflow-wrap: anywhere;
65
+ padding: 7px 10px;
66
+ text-align: left;
67
+ }
68
+
69
+ .bayon-rte-title::placeholder,
70
+ .bayon-rte-body[contenteditable][data-placeholder]:empty::before {
71
+ color: rgba(255, 255, 255, 0.58);
72
+ opacity: 1;
73
+ }
74
+
75
+ .bayon-rte-body-shell {
76
+ padding: 0 10px;
77
+ position: relative;
78
+ }
79
+
80
+ .bayon-rte-transcription {
81
+ align-items: center;
82
+ display: flex;
83
+ flex-direction: row-reverse;
84
+ gap: 7px;
85
+ position: absolute;
86
+ right: 0;
87
+ top: -24px;
88
+ z-index: 7;
89
+ }
90
+
91
+ .bayon-rte-transcription__button {
92
+ background: rgba(41, 41, 41, 0.88);
93
+ border: 1px solid rgba(246, 236, 255, 0.2);
94
+ border-radius: 999px;
95
+ box-shadow: 0 10px 24px rgba(0, 0, 0, 0.22);
96
+ color: rgba(246, 236, 255, 0.92);
97
+ height: 32px;
98
+ transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease, transform 180ms ease;
99
+ width: 32px;
100
+ }
101
+
102
+ .bayon-rte-transcription__button:hover {
103
+ background: rgba(52, 37, 66, 0.95);
104
+ color: #ffffff;
105
+ transform: translateY(-1px);
106
+ }
107
+
108
+ .bayon-rte-transcription__button:focus-visible {
109
+ outline: 2px solid rgba(246, 236, 255, 0.72);
110
+ outline-offset: 2px;
111
+ }
112
+
113
+ .bayon-rte-transcription__button--recording {
114
+ background: rgba(198, 40, 40, 0.88);
115
+ border-color: rgba(255, 205, 210, 0.56);
116
+ color: #ffffff;
117
+ }
118
+
119
+ .bayon-rte-transcription__status {
120
+ align-items: center;
121
+ background: rgba(41, 41, 41, 0.92);
122
+ border: 1px solid rgba(246, 236, 255, 0.14);
123
+ border-radius: 6px;
124
+ color: rgba(255, 255, 255, 0.86);
125
+ display: inline-flex;
126
+ font-size: 0.72rem;
127
+ gap: 6px;
128
+ line-height: 1.3;
129
+ max-width: 180px;
130
+ min-height: 24px;
131
+ overflow-wrap: anywhere;
132
+ padding: 5px 7px;
133
+ text-align: right;
134
+ }
135
+
136
+ .bayon-rte-transcription__dot {
137
+ background: rgba(246, 236, 255, 0.72);
138
+ border-radius: 999px;
139
+ box-shadow: 0 0 0 3px rgba(246, 236, 255, 0.1);
140
+ flex: 0 0 auto;
141
+ height: 7px;
142
+ width: 7px;
143
+ }
144
+
145
+ .bayon-rte-transcription--ready .bayon-rte-transcription__dot {
146
+ background: #8ab4ff;
147
+ box-shadow: 0 0 0 3px rgba(138, 180, 255, 0.14);
148
+ }
149
+
150
+ .bayon-rte-transcription--recording .bayon-rte-transcription__button,
151
+ .bayon-rte-transcription--recording .bayon-rte-transcription__dot {
152
+ animation: bayon-rte-transcription-pulse 1.35s ease-in-out infinite;
153
+ }
154
+
155
+ .bayon-rte-transcription--recording .bayon-rte-transcription__dot {
156
+ background: #4ea1ff;
157
+ box-shadow: 0 0 0 3px rgba(78, 161, 255, 0.18);
158
+ }
159
+
160
+ .bayon-rte-transcription--success .bayon-rte-transcription__dot {
161
+ background: #6ee7a8;
162
+ box-shadow: 0 0 0 3px rgba(110, 231, 168, 0.16);
163
+ }
164
+
165
+ .bayon-rte-transcription--error .bayon-rte-transcription__status {
166
+ border-color: rgba(255, 179, 128, 0.34);
167
+ color: #ffe0cc;
168
+ }
169
+
170
+ .bayon-rte-transcription--error .bayon-rte-transcription__dot {
171
+ background: #ffb380;
172
+ box-shadow: 0 0 0 3px rgba(255, 179, 128, 0.18);
173
+ }
174
+
175
+ .bayon-rte-transcription--unavailable .bayon-rte-transcription__status {
176
+ opacity: 0.72;
177
+ }
178
+
179
+ .bayon-rte-transcription--unavailable .bayon-rte-transcription__dot {
180
+ background: rgba(255, 255, 255, 0.42);
181
+ box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.08);
182
+ }
183
+
184
+ @keyframes bayon-rte-transcription-pulse {
185
+ 0%,
186
+ 100% {
187
+ transform: scale(1);
188
+ }
189
+
190
+ 50% {
191
+ transform: scale(1.08);
192
+ }
193
+ }
194
+
195
+ .bayon-rte-body {
196
+ color: inherit;
197
+ direction: auto;
198
+ font-family: inherit;
199
+ font-size: 1rem;
200
+ line-height: 1.58;
201
+ min-height: 220px;
202
+ outline: 0;
203
+ text-align: start;
204
+ unicode-bidi: plaintext;
205
+ white-space: break-spaces;
206
+ }
207
+
208
+ .bayon-rte-visually-hidden {
209
+ block-size: 1px;
210
+ border: 0;
211
+ clip: rect(0 0 0 0);
212
+ clip-path: inset(50%);
213
+ inline-size: 1px;
214
+ margin: -1px;
215
+ overflow: hidden;
216
+ padding: 0;
217
+ position: absolute;
218
+ white-space: nowrap;
219
+ }
220
+
221
+ .bayon-rte-body[contenteditable][data-placeholder]:empty::before {
222
+ content: attr(data-placeholder);
223
+ pointer-events: none;
224
+ }
225
+
226
+ .bayon-rte-body a,
227
+ .bayon-rte-renderer a {
228
+ color: #b987ff;
229
+ font-weight: 600;
230
+ text-decoration: none;
231
+ }
232
+
233
+ .bayon-rte-body a:hover,
234
+ .bayon-rte-renderer a:hover {
235
+ color: rgb(94, 63, 144);
236
+ }
237
+
238
+ .bayon-rte-body blockquote,
239
+ .bayon-rte-renderer blockquote {
240
+ border-left: 3px solid rgba(246, 236, 255, 0.42);
241
+ color: rgba(255, 255, 255, 0.68);
242
+ font-size: 1.42rem;
243
+ font-style: italic;
244
+ margin: 0;
245
+ padding: 10px 0 10px 16px;
246
+ }
247
+
248
+ .bayon-rte-body blockquote[data-placeholder='quote']:empty::before {
249
+ color: rgba(255, 255, 255, 0.58);
250
+ content: "Quote";
251
+ opacity: 1;
252
+ pointer-events: none;
253
+ }
254
+
255
+ .bayon-rte-body figure[data-rich-text-image],
256
+ .bayon-rte-renderer figure[data-rich-text-image] {
257
+ background: rgba(255, 255, 255, 0.035);
258
+ border: 1px solid rgba(246, 236, 255, 0.16);
259
+ border-radius: 8px;
260
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
261
+ margin: 16px 0;
262
+ max-width: 100%;
263
+ position: relative;
264
+ transform: translateZ(0);
265
+ transition:
266
+ border-color 180ms ease,
267
+ box-shadow 180ms ease,
268
+ transform 220ms cubic-bezier(0.22, 1, 0.36, 1);
269
+ width: fit-content;
270
+ will-change: transform;
271
+ }
272
+
273
+ .bayon-rte-body figure[data-rich-text-image] img,
274
+ .bayon-rte-renderer figure[data-rich-text-image] img {
275
+ border-radius: 6px;
276
+ display: block;
277
+ max-width: 100%;
278
+ }
279
+
280
+ .bayon-rte-body figure[data-rich-text-image][data-image-size='small'],
281
+ .bayon-rte-renderer figure[data-rich-text-image][data-image-size='small'] {
282
+ width: min(100%, 240px);
283
+ }
284
+
285
+ .bayon-rte-body figure[data-rich-text-image][data-image-size='medium'],
286
+ .bayon-rte-renderer figure[data-rich-text-image][data-image-size='medium'] {
287
+ width: min(100%, 420px);
288
+ }
289
+
290
+ .bayon-rte-body figure[data-rich-text-image][data-image-size='full'],
291
+ .bayon-rte-renderer figure[data-rich-text-image][data-image-size='full'] {
292
+ width: 100%;
293
+ }
294
+
295
+ .bayon-rte-body figure[data-rich-text-image][data-image-size='custom'],
296
+ .bayon-rte-renderer figure[data-rich-text-image][data-image-size='custom'] {
297
+ width: min(100%, var(--bayon-rte-image-custom-width, 420px));
298
+ }
299
+
300
+ .bayon-rte-body figure[data-rich-text-image][data-image-size] img,
301
+ .bayon-rte-renderer figure[data-rich-text-image][data-image-size] img {
302
+ height: auto;
303
+ width: 100%;
304
+ }
305
+
306
+ .bayon-rte-body figure[data-image-align='center'],
307
+ .bayon-rte-renderer figure[data-image-align='center'] {
308
+ margin-left: auto;
309
+ margin-right: auto;
310
+ text-align: center;
311
+ }
312
+
313
+ .bayon-rte-body figure[data-image-align='center'] img,
314
+ .bayon-rte-renderer figure[data-image-align='center'] img {
315
+ margin: 0;
316
+ }
317
+
318
+ .bayon-rte-body figure[data-image-align='left'],
319
+ .bayon-rte-renderer figure[data-image-align='left'] {
320
+ margin-left: 0;
321
+ margin-right: auto;
322
+ text-align: left;
323
+ }
324
+
325
+ .bayon-rte-body figure[data-image-align='left'] img,
326
+ .bayon-rte-renderer figure[data-image-align='left'] img {
327
+ margin: 0;
328
+ }
329
+
330
+ .bayon-rte-body figure[data-image-align='right'],
331
+ .bayon-rte-renderer figure[data-image-align='right'] {
332
+ margin-left: auto;
333
+ margin-right: 0;
334
+ text-align: right;
335
+ }
336
+
337
+ .bayon-rte-body figure[data-image-align='right'] img,
338
+ .bayon-rte-renderer figure[data-image-align='right'] img {
339
+ margin: 0;
340
+ }
341
+
342
+ .bayon-rte-body figure[data-placeholder='image']:not(:has(img)) {
343
+ color: rgba(246, 236, 255, 0.78);
344
+ font-family: var(--font-geist-sans), Arial, sans-serif;
345
+ font-size: 0.9rem;
346
+ line-height: 1.45;
347
+ overflow-wrap: anywhere;
348
+ padding: 14px 18px;
349
+ text-align: left;
350
+ }
351
+
352
+ .bayon-rte-body figure[data-image-upload-progress] {
353
+ background: linear-gradient(135deg, rgba(246, 236, 255, 0.1), rgba(138, 180, 255, 0.06));
354
+ border-color: rgba(246, 236, 255, 0.24);
355
+ }
356
+
357
+ .bayon-rte-body figure[data-image-upload-progress] p {
358
+ align-items: center;
359
+ display: inline-flex;
360
+ gap: 9px;
361
+ margin: 0;
362
+ }
363
+
364
+ .bayon-rte-body figure[data-image-upload-progress] p::before {
365
+ background: linear-gradient(135deg, #b987ff, #8ab4ff);
366
+ border-radius: 999px;
367
+ box-shadow: 0 0 0 4px rgba(185, 135, 255, 0.12);
368
+ content: "";
369
+ flex: 0 0 auto;
370
+ height: 8px;
371
+ width: 8px;
372
+ }
373
+
374
+ .bayon-rte-image-align-tool {
375
+ align-items: center;
376
+ background: rgba(41, 41, 41, 0.92);
377
+ border: 1px solid rgba(246, 236, 255, 0.12);
378
+ border-radius: 8px;
379
+ box-shadow: 0 10px 24px rgba(0, 0, 0, 0.2);
380
+ display: inline-flex;
381
+ gap: 3px;
382
+ opacity: 0;
383
+ padding: 3px;
384
+ pointer-events: none;
385
+ position: absolute;
386
+ right: 8px;
387
+ top: 8px;
388
+ transform: translateY(-2px);
389
+ transition: opacity 160ms ease, transform 160ms ease;
390
+ z-index: 3;
391
+ }
392
+
393
+ .bayon-rte-body figure[data-rich-text-image]:hover .bayon-rte-image-align-tool,
394
+ .bayon-rte-body figure[data-rich-text-image]:focus-within .bayon-rte-image-align-tool {
395
+ opacity: 1;
396
+ pointer-events: auto;
397
+ transform: translateY(0);
398
+ }
399
+
400
+ .bayon-rte-image-align-button {
401
+ align-items: center;
402
+ background: transparent;
403
+ border: 0;
404
+ border-radius: 6px;
405
+ color: rgba(186, 128, 255, 0.86);
406
+ cursor: pointer;
407
+ display: inline-flex;
408
+ height: 26px;
409
+ justify-content: center;
410
+ padding: 0;
411
+ width: 26px;
412
+ }
413
+
414
+ .bayon-rte-image-align-button:hover,
415
+ .bayon-rte-image-align-button[data-image-align-active='true'] {
416
+ background: rgba(127, 56, 216, 0.12);
417
+ color: rgba(246, 236, 255, 0.96);
418
+ }
419
+
420
+ .bayon-rte-image-align-icon {
421
+ display: inline-flex;
422
+ flex-direction: column;
423
+ gap: 2px;
424
+ width: 13px;
425
+ }
426
+
427
+ .bayon-rte-image-align-icon span {
428
+ background: currentColor;
429
+ border-radius: 999px;
430
+ display: block;
431
+ height: 2px;
432
+ }
433
+
434
+ .bayon-rte-image-align-icon span:nth-child(1) {
435
+ width: 13px;
436
+ }
437
+
438
+ .bayon-rte-image-align-icon span:nth-child(2) {
439
+ width: 9px;
440
+ }
441
+
442
+ .bayon-rte-image-align-icon span:nth-child(3) {
443
+ width: 11px;
444
+ }
445
+
446
+ .bayon-rte-image-align-icon--center {
447
+ align-items: center;
448
+ }
449
+
450
+ .bayon-rte-image-align-icon--right {
451
+ align-items: flex-end;
452
+ }
453
+
454
+ .bayon-rte-image-toolbar-divider {
455
+ background: rgba(246, 236, 255, 0.14);
456
+ height: 18px;
457
+ width: 1px;
458
+ }
459
+
460
+ .bayon-rte-image-size-button span {
461
+ font-size: 0.68rem;
462
+ font-weight: 700;
463
+ line-height: 1;
464
+ }
465
+
466
+ .bayon-rte-image-size-button:hover,
467
+ .bayon-rte-image-size-button[data-image-size-active='true'] {
468
+ background: rgba(127, 56, 216, 0.12);
469
+ color: rgba(246, 236, 255, 0.96);
470
+ }
471
+
472
+ .bayon-rte-image-custom-width-input {
473
+ background: rgba(255, 255, 255, 0.08);
474
+ border: 1px solid rgba(246, 236, 255, 0.14);
475
+ border-radius: 6px;
476
+ color: rgba(246, 236, 255, 0.96);
477
+ font: inherit;
478
+ font-size: 0.68rem;
479
+ height: 24px;
480
+ padding: 0 4px;
481
+ width: 52px;
482
+ }
483
+
484
+ .bayon-rte-body h2,
485
+ .bayon-rte-renderer h2 {
486
+ font-family: inherit;
487
+ font-size: 2.05rem;
488
+ font-weight: 700;
489
+ line-height: 1.2;
490
+ margin: 0;
491
+ padding: 10px 0;
492
+ }
493
+
494
+ .bayon-rte-body > p,
495
+ .bayon-rte-body > div,
496
+ .bayon-rte-renderer p {
497
+ margin: 0;
498
+ padding: 10px 0;
499
+ }
500
+
501
+ .bayon-rte-renderer [data-rich-text-comment-target='active'] {
502
+ background: rgba(255, 221, 128, 0.1);
503
+ border-radius: 6px;
504
+ box-shadow:
505
+ inset 3px 0 0 rgba(255, 199, 87, 0.72),
506
+ 0 0 0 1px rgba(255, 221, 128, 0.12);
507
+ scroll-margin-block: 96px;
508
+ }
509
+
510
+ .bayon-rte-comment-highlight {
511
+ background: rgba(255, 221, 128, 0.34);
512
+ border-radius: 3px;
513
+ box-shadow: 0 0 0 2px rgba(255, 221, 128, 0.14);
514
+ color: inherit;
515
+ }
516
+
517
+ .bayon-rte-body [data-rich-text-message],
518
+ .bayon-rte-renderer [data-rich-text-message] {
519
+ background: rgba(144, 202, 249, 0.16);
520
+ border: 1px solid rgba(144, 202, 249, 0.22);
521
+ border-radius: 8px;
522
+ margin: 4px 0 4px auto;
523
+ max-width: min(88%, 34rem);
524
+ overflow-wrap: anywhere;
525
+ padding: 8px 10px;
526
+ width: fit-content;
527
+ }
528
+
529
+ .bayon-rte-body [data-rich-text-tool],
530
+ .bayon-rte-renderer [data-rich-text-tool] {
531
+ background: rgba(246, 236, 255, 0.07);
532
+ border: 1px solid rgba(246, 236, 255, 0.14);
533
+ border-radius: 8px;
534
+ margin: 8px 0;
535
+ overflow-wrap: anywhere;
536
+ padding: 10px 12px;
537
+ }
538
+
539
+ .bayon-rte-body [data-tool-header],
540
+ .bayon-rte-renderer [data-tool-header] {
541
+ align-items: center;
542
+ display: flex;
543
+ gap: 8px;
544
+ justify-content: space-between;
545
+ }
546
+
547
+ .bayon-rte-body [data-tool-title],
548
+ .bayon-rte-renderer [data-tool-title] {
549
+ font-weight: 680;
550
+ }
551
+
552
+ .bayon-rte-body [data-tool-status-label],
553
+ .bayon-rte-renderer [data-tool-status-label] {
554
+ color: rgba(255, 255, 255, 0.62);
555
+ font-size: 0.75em;
556
+ text-transform: uppercase;
557
+ }
558
+
559
+ .bayon-rte-body [data-tool-markdown],
560
+ .bayon-rte-renderer [data-tool-markdown] {
561
+ margin: 8px 0 0;
562
+ padding: 0;
563
+ }
564
+
565
+ .bayon-rte-body [data-rich-text-children],
566
+ .bayon-rte-renderer [data-rich-text-children] {
567
+ border-left: 0;
568
+ counter-reset: bayon-rte-list;
569
+ list-style: none;
570
+ margin: 0 0 0 14px;
571
+ padding: 0 0 0 18px;
572
+ }
573
+
574
+ .bayon-rte-body > [data-rich-text-children],
575
+ .bayon-rte-renderer > [data-rich-text-children] {
576
+ margin-left: 0;
577
+ padding-left: 0;
578
+ }
579
+
580
+ .bayon-rte-body [data-rich-text-checkbox],
581
+ .bayon-rte-renderer [data-rich-text-checkbox],
582
+ .bayon-rte-body [data-rich-text-bullet],
583
+ .bayon-rte-renderer [data-rich-text-bullet],
584
+ .bayon-rte-body [data-rich-text-ordered],
585
+ .bayon-rte-renderer [data-rich-text-ordered],
586
+ .bayon-rte-body [data-rich-text-toggle],
587
+ .bayon-rte-renderer [data-rich-text-toggle] {
588
+ display: block;
589
+ list-style: none;
590
+ margin: 0;
591
+ padding: 0;
592
+ }
593
+
594
+ .bayon-rte-body [data-rich-text-row],
595
+ .bayon-rte-renderer [data-rich-text-row] {
596
+ align-items: flex-start;
597
+ display: flex;
598
+ gap: 8px;
599
+ margin: 0;
600
+ padding: 5px 0;
601
+ }
602
+
603
+ .bayon-rte-body [data-bullet-marker],
604
+ .bayon-rte-renderer [data-bullet-marker],
605
+ .bayon-rte-body [data-rich-text-bullet] > [data-rich-text-row] > span:first-child,
606
+ .bayon-rte-renderer [data-rich-text-bullet] > [data-rich-text-row] > span:first-child {
607
+ flex: 0 0 auto;
608
+ line-height: inherit;
609
+ margin-top: 0;
610
+ }
611
+
612
+ .bayon-rte-body [data-bullet-marker]::before,
613
+ .bayon-rte-renderer [data-bullet-marker]::before {
614
+ content: "\\2022";
615
+ }
616
+
617
+ .bayon-rte-body [data-rich-text-ordered],
618
+ .bayon-rte-renderer [data-rich-text-ordered] {
619
+ counter-increment: bayon-rte-list;
620
+ }
621
+
622
+ .bayon-rte-body [data-ordered-marker]::before,
623
+ .bayon-rte-renderer [data-ordered-marker]::before {
624
+ content: counters(bayon-rte-list, ".") ".";
625
+ }
626
+
627
+ .bayon-rte-body [data-ordered-marker],
628
+ .bayon-rte-renderer [data-ordered-marker] {
629
+ flex: 0 0 auto;
630
+ min-width: 1.4em;
631
+ }
632
+
633
+ .bayon-rte-body [data-placeholder]:empty::before {
634
+ color: rgba(255, 255, 255, 0.46);
635
+ content: attr(data-placeholder);
636
+ pointer-events: none;
637
+ }
638
+
639
+ .bayon-rte-body [data-rich-text-toggle] summary,
640
+ .bayon-rte-renderer [data-rich-text-toggle] summary {
641
+ cursor: pointer;
642
+ font-weight: 600;
643
+ list-style-position: outside;
644
+ padding: 10px 0;
645
+ }
646
+
647
+ .bayon-rte-body [data-rich-text-toggle] > [data-rich-text-row] > [data-toggle-label] {
648
+ flex: 1 1 0;
649
+ min-width: 0;
650
+ outline: 0;
651
+ }
652
+
653
+ .bayon-rte-body [data-bullet-label],
654
+ .bayon-rte-body [data-ordered-label],
655
+ .bayon-rte-body [data-checkbox-label],
656
+ .bayon-rte-body [data-toggle-label] {
657
+ cursor: text;
658
+ display: block;
659
+ flex: 1 1 0;
660
+ line-height: inherit;
661
+ min-height: 1.4em;
662
+ min-inline-size: 2.5em;
663
+ margin-inline-start: -2px;
664
+ min-width: 0;
665
+ outline: 0;
666
+ padding-inline-start: 2px;
667
+ }
668
+
669
+ .bayon-rte-body [data-toggle-content],
670
+ .bayon-rte-renderer [data-toggle-content] {
671
+ background: rgba(246, 236, 255, 0.06);
672
+ border: 1px solid rgba(246, 236, 255, 0.1);
673
+ border-radius: 8px;
674
+ margin-left: 36px;
675
+ min-height: 44px;
676
+ padding: 8px 12px;
677
+ }
678
+
679
+ .bayon-rte-body [data-toggle-content] > [data-rich-text-children],
680
+ .bayon-rte-renderer [data-toggle-content] > [data-rich-text-children] {
681
+ margin-left: 0;
682
+ padding-left: 0;
683
+ }
684
+
685
+ .bayon-rte-body [data-toggle-content] > p,
686
+ .bayon-rte-renderer [data-toggle-content] > p {
687
+ margin: 0;
688
+ padding: 6px 0;
689
+ }
690
+
691
+ .bayon-rte-body [data-toggle-content] > [data-toggle-content-placeholder-block] {
692
+ min-height: 1.4em;
693
+ outline: 0;
694
+ padding: 0;
695
+ }
696
+
697
+ .bayon-rte-body [data-toggle-content-placeholder-block][data-placeholder]:empty::before {
698
+ color: rgba(255, 255, 255, 0.46);
699
+ content: attr(data-placeholder);
700
+ pointer-events: none;
701
+ }
702
+
703
+ .bayon-rte-body [data-rich-text-toggle][data-toggle-collapsed="true"] > [data-toggle-content],
704
+ .bayon-rte-body [data-rich-text-toggle][data-toggle-collapsed="true"] > [data-rich-text-children],
705
+ .bayon-rte-renderer [data-rich-text-toggle][data-toggle-collapsed="true"] > [data-toggle-content],
706
+ .bayon-rte-renderer [data-rich-text-toggle][data-toggle-collapsed="true"] > [data-rich-text-children] {
707
+ display: none;
708
+ }
709
+
710
+ .bayon-rte-toggle-button {
711
+ align-items: center;
712
+ background: transparent;
713
+ border: 0;
714
+ border-radius: 6px;
715
+ color: inherit;
716
+ cursor: pointer;
717
+ display: inline-flex;
718
+ flex: 0 0 auto;
719
+ font: inherit;
720
+ height: 28px;
721
+ justify-content: center;
722
+ line-height: 1;
723
+ margin: 0;
724
+ padding: 0;
725
+ width: 28px;
726
+ }
727
+
728
+ .bayon-rte-toggle-button:hover {
729
+ background: rgba(127, 56, 216, 0.1);
730
+ }
731
+
732
+ .bayon-rte-toggle-caret {
733
+ border-bottom: 1.8px solid currentColor;
734
+ border-right: 1.8px solid currentColor;
735
+ display: inline-block;
736
+ height: 7px;
737
+ transform: rotate(45deg) translate(-1px, -1px);
738
+ transition: transform 160ms ease;
739
+ width: 7px;
740
+ }
741
+
742
+ .bayon-rte-body [data-rich-text-toggle][data-toggle-collapsed="true"] .bayon-rte-toggle-caret,
743
+ .bayon-rte-renderer [data-rich-text-toggle][data-toggle-collapsed="true"] .bayon-rte-toggle-caret {
744
+ transform: rotate(-45deg) translate(1px, 0);
745
+ }
746
+
747
+ .bayon-rte-body [data-rich-text-checkbox] input,
748
+ .bayon-rte-renderer [data-rich-text-checkbox] input {
749
+ accent-color: #1a73e8;
750
+ appearance: none;
751
+ background: rgba(0,0,0,0.2);
752
+ border: 1.8px solid #bbb;
753
+ border-radius: 4px;
754
+ block-size: 1.05em;
755
+ flex: 0 0 auto;
756
+ inline-size: 1.05em;
757
+ margin-top: 0.32em;
758
+ position: relative;
759
+ }
760
+
761
+ .bayon-rte-body [data-rich-text-checkbox] input:checked,
762
+ .bayon-rte-renderer [data-rich-text-checkbox] input:checked {
763
+ background: #1a73e8;
764
+ border-color: #1a73e8;
765
+ }
766
+
767
+ .bayon-rte-body [data-rich-text-checkbox] input:checked::after,
768
+ .bayon-rte-renderer [data-rich-text-checkbox] input:checked::after {
769
+ border-bottom: 1.5px solid #ffffff;
770
+ border-right: 1.5px solid #ffffff;
771
+ content: "";
772
+ display: block;
773
+ height: 0.48em;
774
+ margin: 0.12em auto 0;
775
+ transform: rotate(45deg);
776
+ width: 0.26em;
777
+ }
778
+
779
+ .bayon-rte-body [data-rich-text-checkbox] span {
780
+ min-width: 0;
781
+ outline: 0;
782
+ }
783
+
784
+ .bayon-rte-renderer [data-rich-text-checkbox] span {
785
+ min-width: 0;
786
+ }
787
+
788
+ .bayon-rte-body pre,
789
+ .bayon-rte-renderer code {
790
+ background-color: rgba(255, 255, 255, 0.06);
791
+ border-radius: 8px;
792
+ font-family: var(--font-geist-mono), Consolas, monospace;
793
+ }
794
+
795
+ .bayon-rte-body pre {
796
+ font-size: 1rem;
797
+ padding: 10px 16px;
798
+ white-space: pre-wrap;
799
+ }
800
+
801
+ .bayon-rte-renderer {
802
+ color: inherit;
803
+ font-family: inherit;
804
+ font-size: 1rem;
805
+ line-height: 1.58;
806
+ white-space: break-spaces;
807
+ }
808
+
809
+ .bayon-rte-renderer code {
810
+ padding: 2px 5px;
811
+ }
812
+
813
+ .bayon-rte-renderer img {
814
+ max-width: 100%;
815
+ }
816
+
817
+ .bayon-rte-renderer li {
818
+ margin-bottom: 6px;
819
+ }
820
+
821
+ .bayon-rte-renderer figure:not([data-rich-text-image]),
822
+ .bayon-rte-renderer pre {
823
+ margin: 0;
824
+ padding: 10px 0;
825
+ }
826
+
827
+ .bayon-rte-renderer ul,
828
+ .bayon-rte-renderer ol {
829
+ margin-bottom: 16px;
830
+ padding-left: 24px;
831
+ }
832
+
833
+ .bayon-rte-divider {
834
+ border: 0;
835
+ border-top: 1px solid currentColor;
836
+ height: 0;
837
+ margin: 6px 0;
838
+ opacity: 0.5;
839
+ padding: 0;
840
+ }
841
+
842
+ .bayon-rte-meta {
843
+ color: rgba(255, 255, 255, 0.62);
844
+ display: flex;
845
+ flex-direction: column;
846
+ font-size: 0.75rem;
847
+ gap: 8px;
848
+ justify-content: space-between;
849
+ line-height: 1.66;
850
+ }
851
+
852
+ .bayon-rte-toolbar {
853
+ align-items: center;
854
+ background: rgba(41, 41, 41, 0.92);
855
+ border: 1px solid rgba(246, 236, 255, 0.12);
856
+ border-radius: 8px;
857
+ box-shadow: 0 10px 24px rgba(0, 0, 0, 0.2);
858
+ display: flex;
859
+ gap: 4px;
860
+ left: var(--bayon-rte-toolbar-left);
861
+ padding: 4px;
862
+ position: absolute;
863
+ top: var(--bayon-rte-toolbar-top);
864
+ transform: translateX(-50%);
865
+ z-index: 8;
866
+ }
867
+
868
+ .bayon-rte-toolbar--above::after {
869
+ border-left: 10px solid transparent;
870
+ border-right: 10px solid transparent;
871
+ border-top: 10px solid rgba(41, 41, 41, 0.92);
872
+ bottom: -9px;
873
+ content: "";
874
+ left: 48%;
875
+ position: absolute;
876
+ }
877
+
878
+ .bayon-rte-toolbar--below::before {
879
+ border-bottom: 10px solid rgba(41, 41, 41, 0.92);
880
+ border-left: 10px solid transparent;
881
+ border-right: 10px solid transparent;
882
+ content: "";
883
+ left: 48%;
884
+ position: absolute;
885
+ top: -9px;
886
+ }
887
+
888
+ .bayon-rte-link-input {
889
+ align-items: center;
890
+ background: rgba(41, 41, 41, 0.92);
891
+ border: 1px solid rgba(246, 236, 255, 0.12);
892
+ border-radius: 8px;
893
+ box-shadow: 0 10px 24px rgba(0, 0, 0, 0.2);
894
+ display: flex;
895
+ gap: 4px;
896
+ left: var(--bayon-rte-link-input-left);
897
+ padding: 4px;
898
+ position: absolute;
899
+ top: var(--bayon-rte-link-input-top);
900
+ transform: translateX(-50%);
901
+ width: min(320px, calc(100vw - 32px));
902
+ z-index: 9;
903
+ }
904
+
905
+ .bayon-rte-link-input--above::after {
906
+ border-left: 10px solid transparent;
907
+ border-right: 10px solid transparent;
908
+ border-top: 10px solid rgba(41, 41, 41, 0.92);
909
+ bottom: -9px;
910
+ content: "";
911
+ left: 48%;
912
+ position: absolute;
913
+ }
914
+
915
+ .bayon-rte-link-input--below::before {
916
+ border-bottom: 10px solid rgba(41, 41, 41, 0.92);
917
+ border-left: 10px solid transparent;
918
+ border-right: 10px solid transparent;
919
+ content: "";
920
+ left: 48%;
921
+ position: absolute;
922
+ top: -9px;
923
+ }
924
+
925
+ .bayon-rte-link-input__field {
926
+ background: rgba(255, 255, 255, 0.08);
927
+ border: 1px solid rgba(246, 236, 255, 0.14);
928
+ border-radius: 6px;
929
+ color: rgba(246, 236, 255, 0.96);
930
+ flex: 1 1 auto;
931
+ font: inherit;
932
+ font-size: 0.86rem;
933
+ height: 28px;
934
+ min-width: 0;
935
+ outline: 0;
936
+ padding: 0 8px;
937
+ }
938
+
939
+ .bayon-rte-link-input__field::placeholder {
940
+ color: rgba(246, 236, 255, 0.48);
941
+ }
942
+
943
+ .bayon-rte-link-input__field:focus {
944
+ border-color: rgba(186, 128, 255, 0.64);
945
+ }
946
+
947
+ .bayon-rte-link-input__action {
948
+ border-radius: 6px;
949
+ color: rgba(186, 128, 255, 0.86);
950
+ flex: 0 0 auto;
951
+ height: 28px;
952
+ width: 28px;
953
+ }
954
+
955
+ .bayon-rte-link-input__action:hover {
956
+ background: rgba(127, 56, 216, 0.12);
957
+ color: rgba(246, 236, 255, 0.96);
958
+ }
959
+
960
+ .bayon-rte-icon-button {
961
+ align-items: center;
962
+ background: transparent;
963
+ border: 0;
964
+ border-radius: 8px;
965
+ color: inherit;
966
+ cursor: pointer;
967
+ display: inline-flex;
968
+ justify-content: center;
969
+ padding: 0;
970
+ }
971
+
972
+ .bayon-rte-icon-button:disabled {
973
+ cursor: default;
974
+ opacity: 0.58;
975
+ }
976
+
977
+ .bayon-rte-toolbar__button {
978
+ border-left: 0;
979
+ border-radius: 6px;
980
+ color: rgba(186, 128, 255, 0.86);
981
+ height: 28px;
982
+ width: 28px;
983
+ }
984
+
985
+ .bayon-rte-toolbar__button--divider {
986
+ box-shadow: -6px 0 0 -5px rgba(246, 236, 255, 0.12);
987
+ margin-left: 4px;
988
+ }
989
+
990
+ .bayon-rte-toolbar__button:hover {
991
+ background: rgba(127, 56, 216, 0.12);
992
+ color: rgba(246, 236, 255, 0.96);
993
+ }
994
+
995
+ .bayon-rte-special-tool {
996
+ align-items: center;
997
+ display: flex;
998
+ gap: 8px;
999
+ left: 0;
1000
+ margin-top: 0;
1001
+ min-height: 28px;
1002
+ opacity: 0;
1003
+ pointer-events: none;
1004
+ position: absolute;
1005
+ top: var(--bayon-rte-special-tool-top);
1006
+ transform: translate(-58px, 8px) scale(0.96);
1007
+ transition: opacity 720ms ease, transform 860ms cubic-bezier(0.16, 1, 0.3, 1);
1008
+ z-index: 6;
1009
+ margin-top: 6px;
1010
+ }
1011
+
1012
+ .bayon-rte-block-tool {
1013
+ align-items: center;
1014
+ display: flex;
1015
+ gap: 6px;
1016
+ left: var(--bayon-rte-block-tool-left);
1017
+ min-height: 34px;
1018
+ padding: 4px 14px 4px 0;
1019
+ position: absolute;
1020
+ top: var(--bayon-rte-block-tool-top);
1021
+ transform: translate(-28px, 8px);
1022
+ z-index: 5;
1023
+ }
1024
+
1025
+ .bayon-rte-block-tool--menu-open {
1026
+ transform: translate(-28px, 2px);
1027
+ }
1028
+
1029
+ .bayon-rte-block-tool--image {
1030
+ transform: translate(-36px, 8px);
1031
+ }
1032
+
1033
+ .bayon-rte-block-tool--image.bayon-rte-block-tool--menu-open {
1034
+ transform: translate(-36px, 2px);
1035
+ }
1036
+
1037
+ .bayon-rte-block-hover-zone {
1038
+ height: var(--bayon-rte-block-hover-zone-height);
1039
+ left: var(--bayon-rte-block-hover-zone-left);
1040
+ min-height: 34px;
1041
+ pointer-events: auto;
1042
+ position: absolute;
1043
+ top: var(--bayon-rte-block-hover-zone-top);
1044
+ transform: translate(-72px, 8px);
1045
+ width: 70px;
1046
+ z-index: 4;
1047
+ }
1048
+
1049
+ .bayon-rte-block-hover-zone--image {
1050
+ transform: translate(-44px, 8px);
1051
+ width: 44px;
1052
+ }
1053
+
1054
+ .bayon-rte-block-handle {
1055
+ background: transparent;
1056
+ color: rgba(186, 128, 255, 0.86);
1057
+ cursor: grab;
1058
+ height: 28px;
1059
+ touch-action: none;
1060
+ width: 28px;
1061
+ }
1062
+
1063
+ .bayon-rte-block-handle:hover {
1064
+ background: transparent;
1065
+ color: rgba(246, 236, 255, 0.96);
1066
+ }
1067
+
1068
+ .bayon-rte-block-handle--dragging {
1069
+ color: rgba(246, 236, 255, 0.98);
1070
+ transform: scale(1.08);
1071
+ }
1072
+
1073
+ .bayon-rte-block-handle--menu-open {
1074
+ color: rgba(246, 236, 255, 0.98);
1075
+ cursor: pointer;
1076
+ }
1077
+
1078
+ .bayon-rte-block-handle:active {
1079
+ cursor: grabbing;
1080
+ }
1081
+
1082
+ .bayon-rte-block-handle--menu-open:active {
1083
+ cursor: pointer;
1084
+ }
1085
+
1086
+ .bayon-rte-block-drag-indicator {
1087
+ background: linear-gradient(
1088
+ 90deg,
1089
+ rgba(180, 124, 255, 0),
1090
+ rgba(180, 124, 255, 0.9) 9%,
1091
+ rgba(180, 124, 255, 0.9) 92%,
1092
+ rgba(180, 124, 255, 0)
1093
+ );
1094
+ border-radius: 999px;
1095
+ height: 2px;
1096
+ left: var(--bayon-rte-block-drag-indicator-left);
1097
+ pointer-events: none;
1098
+ position: absolute;
1099
+ right: 0;
1100
+ top: var(--bayon-rte-block-drag-indicator-top);
1101
+ transform: translateY(-1px);
1102
+ z-index: 4;
1103
+ }
1104
+
1105
+ .bayon-rte-block-drag-indicator::before {
1106
+ background: rgba(180, 124, 255, 0.95);
1107
+ border-radius: 999px;
1108
+ content: "";
1109
+ height: 8px;
1110
+ left: -3px;
1111
+ position: absolute;
1112
+ top: -3px;
1113
+ width: 8px;
1114
+ }
1115
+
1116
+ .bayon-rte-block-drag-indicator--invalid {
1117
+ background: linear-gradient(
1118
+ 90deg,
1119
+ rgba(255, 92, 92, 0),
1120
+ rgba(255, 92, 92, 0.9) 9%,
1121
+ rgba(255, 92, 92, 0.9) 92%,
1122
+ rgba(255, 92, 92, 0)
1123
+ );
1124
+ }
1125
+
1126
+ .bayon-rte-block-drag-indicator--invalid::before {
1127
+ align-items: center;
1128
+ background: rgba(255, 92, 92, 0.95);
1129
+ color: #ffffff;
1130
+ content: "x";
1131
+ display: inline-flex;
1132
+ font-size: 9px;
1133
+ font-weight: 700;
1134
+ height: 12px;
1135
+ justify-content: center;
1136
+ left: -6px;
1137
+ line-height: 1;
1138
+ top: -5px;
1139
+ width: 12px;
1140
+ }
1141
+
1142
+ .bayon-rte-special-tool--visible {
1143
+ opacity: 1;
1144
+ pointer-events: auto;
1145
+ transform: translate(-58px, 6px) scale(1);
1146
+ }
1147
+
1148
+ .bayon-rte-special-tool__actions,
1149
+ .bayon-rte-block-tool__actions {
1150
+ background: rgba(41, 41, 41, 0.92);
1151
+ border: 1px solid rgba(246, 236, 255, 0.12);
1152
+ border-radius: 8px;
1153
+ box-shadow: 0 10px 24px rgba(0, 0, 0, 0.2);
1154
+ display: flex;
1155
+ gap: 4px;
1156
+ padding: 4px;
1157
+ }
1158
+
1159
+ .bayon-rte-special-button {
1160
+ background-color: #ffffff;
1161
+ color: #7f38d8;
1162
+ height: 28px;
1163
+ width: 28px;
1164
+ }
1165
+
1166
+ .bayon-rte-special-button:hover {
1167
+ background-color: #fbf6ff;
1168
+ }
1169
+
1170
+ .bayon-rte-special-tool__actions .bayon-rte-special-button,
1171
+ .bayon-rte-block-tool__actions .bayon-rte-special-button {
1172
+ background: transparent;
1173
+ color: rgba(186, 128, 255, 0.86);
1174
+ height: 26px;
1175
+ width: 26px;
1176
+ }
1177
+
1178
+ .bayon-rte-special-tool__actions .bayon-rte-special-button:hover,
1179
+ .bayon-rte-block-tool__actions .bayon-rte-special-button:hover {
1180
+ background: rgba(127, 56, 216, 0.12);
1181
+ color: rgba(246, 236, 255, 0.96);
1182
+ }
1183
+
1184
+ .bayon-rte-special-toggle {
1185
+ background: transparent;
1186
+ border: 0;
1187
+ border-radius: 6px;
1188
+ color: rgba(186, 128, 255, 0.86);
1189
+ height: 20px;
1190
+ transition: background-color 260ms ease, border-color 260ms ease, color 260ms ease, opacity 720ms ease, transform 860ms cubic-bezier(0.16, 1, 0.3, 1);
1191
+ width: 20px;
1192
+ }
1193
+
1194
+ .bayon-rte-special-toggle:hover {
1195
+ background: rgba(127, 56, 216, 0.12);
1196
+ color: rgba(246, 236, 255, 0.96);
1197
+ transform: scale(1.05) rotate(0deg);
1198
+ }
1199
+
1200
+ .bayon-rte-unsaved-backdrop {
1201
+ align-items: center;
1202
+ background: rgba(0, 0, 0, 0.42);
1203
+ display: flex;
1204
+ inset: 0;
1205
+ justify-content: center;
1206
+ padding: 24px;
1207
+ position: fixed;
1208
+ z-index: 1300;
1209
+ }
1210
+
1211
+ .bayon-rte-unsaved-dialog {
1212
+ background: #ffffff;
1213
+ border-radius: 8px;
1214
+ box-shadow: 0 18px 46px rgba(0, 0, 0, 0.24);
1215
+ color: #1f1f1f;
1216
+ max-width: 480px;
1217
+ padding: 24px;
1218
+ width: min(100%, 480px);
1219
+ }
1220
+
1221
+ .bayon-rte-unsaved-dialog h2 {
1222
+ font-size: 1.25rem;
1223
+ line-height: 1.25;
1224
+ margin: 0 0 12px;
1225
+ }
1226
+
1227
+ .bayon-rte-unsaved-dialog p {
1228
+ color: #555;
1229
+ margin: 0;
1230
+ }
1231
+
1232
+ .bayon-rte-unsaved-error {
1233
+ background: #fdecea;
1234
+ border-radius: 8px;
1235
+ color: #611a15;
1236
+ margin-top: 16px;
1237
+ padding: 10px 12px;
1238
+ }
1239
+
1240
+ .bayon-rte-unsaved-actions {
1241
+ display: flex;
1242
+ flex-wrap: wrap;
1243
+ gap: 8px;
1244
+ justify-content: flex-end;
1245
+ margin-top: 24px;
1246
+ }
1247
+
1248
+ .bayon-rte-button {
1249
+ background: transparent;
1250
+ border: 1px solid transparent;
1251
+ border-radius: 6px;
1252
+ color: #7f38d8;
1253
+ cursor: pointer;
1254
+ font: inherit;
1255
+ padding: 8px 12px;
1256
+ }
1257
+
1258
+ .bayon-rte-button:hover {
1259
+ background: rgba(127, 56, 216, 0.08);
1260
+ }
1261
+
1262
+ .bayon-rte-button:disabled {
1263
+ cursor: default;
1264
+ opacity: 0.6;
1265
+ }
1266
+
1267
+ .bayon-rte-button--danger {
1268
+ color: #c62828;
1269
+ }
1270
+
1271
+ .bayon-rte-button--primary {
1272
+ background: #7f38d8;
1273
+ color: #ffffff;
1274
+ }
1275
+
1276
+ .bayon-rte-button--primary:hover {
1277
+ background: #6f2fc4;
1278
+ }
1279
+
1280
+ @media (min-width: 600px) {
1281
+ .bayon-rte-surface {
1282
+ min-height: min(max(550px, 72vh), 820px);
1283
+ padding: 24px;
1284
+ }
1285
+
1286
+ .bayon-rte-surface__inner {
1287
+ padding: 0 50px 0 40px;
1288
+ }
1289
+
1290
+ .bayon-rte-transcription {
1291
+ top: -6px;
1292
+ }
1293
+
1294
+ .bayon-rte-title {
1295
+ font-size: 2.45rem;
1296
+ }
1297
+
1298
+ .bayon-rte-body,
1299
+ .bayon-rte-renderer {
1300
+ font-size: 1.25rem;
1301
+ line-height: 1.68;
1302
+ }
1303
+
1304
+ .bayon-rte-body {
1305
+ min-height: 360px;
1306
+ }
1307
+
1308
+ .bayon-rte-meta {
1309
+ flex-direction: row;
1310
+ }
1311
+
1312
+ .bayon-rte-special-tool {
1313
+ gap: 8px;
1314
+ min-height: 28px;
1315
+ transform: translate(-58px, 8px) scale(0.96);
1316
+ }
1317
+
1318
+ .bayon-rte-special-tool--visible {
1319
+ transform: translate(-58px, 6px) scale(1);
1320
+ }
1321
+
1322
+ .bayon-rte-block-tool {
1323
+ min-height: 34px;
1324
+ transform: translate(-34px, 8px);
1325
+ }
1326
+
1327
+ .bayon-rte-block-tool--menu-open {
1328
+ transform: translate(-34px, 2px);
1329
+ }
1330
+
1331
+ .bayon-rte-block-hover-zone {
1332
+ transform: translate(-72px, 8px);
1333
+ width: 70px;
1334
+ }
1335
+
1336
+ .bayon-rte-special-tool__actions,
1337
+ .bayon-rte-block-tool__actions {
1338
+ gap: 4px;
1339
+ }
1340
+
1341
+ .bayon-rte-special-tool__actions .bayon-rte-special-button,
1342
+ .bayon-rte-block-tool__actions .bayon-rte-special-button {
1343
+ height: 28px;
1344
+ width: 28px;
1345
+ }
1346
+
1347
+ .bayon-rte-special-toggle {
1348
+ height: 20px;
1349
+ width: 20px;
1350
+ }
1351
+ }
1352
+
1353
+ @media (min-width: 900px) {
1354
+ .bayon-rte-surface {
1355
+ padding-bottom: 0;
1356
+ padding-top: 0;
1357
+ }
1358
+ }
1359
+ `;
1360
+ export function RichTextStyleScope() {
1361
+ return _jsx("style", { children: richTextStyles });
1362
+ }