@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
@@ -1,722 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RichTextStyleScope = RichTextStyleScope;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- const richTextStyles = `
6
- .bayon-rte-stack {
7
- display: flex;
8
- flex-direction: column;
9
- gap: 8px;
10
- }
11
-
12
- .bayon-rte-surface {
13
- background: transparent;
14
- border: 1px solid transparent;
15
- border-radius: 8px;
16
- color: inherit;
17
- min-height: auto;
18
- overflow: hidden;
19
- padding: 6px 0;
20
- }
21
-
22
- .bayon-rte-surface--panel {
23
- background: linear-gradient(180deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.025));
24
- border-color: rgba(223, 194, 255, 0.14);
25
- box-shadow: 0 18px 46px rgba(0, 0, 0, 0.2);
26
- }
27
-
28
- .bayon-rte-surface__inner {
29
- display: flex;
30
- flex-direction: column;
31
- gap: 20px;
32
- margin: 0 auto;
33
- padding: 0 24px 0 18px;
34
- position: relative;
35
- }
36
-
37
- .bayon-rte-title {
38
- background: transparent;
39
- border: 0;
40
- color: inherit;
41
- direction: ltr;
42
- display: block;
43
- font: inherit;
44
- font-size: 1.55rem;
45
- font-weight: 700;
46
- line-height: 1.15;
47
- margin: 0;
48
- outline: 0;
49
- overflow: hidden;
50
- overflow-wrap: anywhere;
51
- padding: 0;
52
- resize: none;
53
- text-align: left;
54
- width: 100%;
55
- }
56
-
57
- .bayon-rte-title-error {
58
- align-self: flex-start;
59
- background: rgba(244, 67, 54, 0.12);
60
- border-left: 3px solid #ff8a80;
61
- border-radius: 6px;
62
- color: #ffcdd2;
63
- font-size: 0.86rem;
64
- line-height: 1.4;
65
- margin-top: 8px;
66
- max-width: 100%;
67
- overflow-wrap: anywhere;
68
- padding: 7px 10px;
69
- text-align: left;
70
- }
71
-
72
- .bayon-rte-title::placeholder,
73
- .bayon-rte-body[contenteditable][data-placeholder]:empty::before {
74
- color: rgba(255, 255, 255, 0.58);
75
- opacity: 1;
76
- }
77
-
78
- .bayon-rte-body-shell {
79
- padding-left: 5px;
80
- position: relative;
81
- }
82
-
83
- .bayon-rte-transcription {
84
- align-items: center;
85
- display: flex;
86
- flex-direction: row-reverse;
87
- gap: 7px;
88
- position: absolute;
89
- right: 0;
90
- top: -24px;
91
- z-index: 7;
92
- }
93
-
94
- .bayon-rte-transcription__button {
95
- background: rgba(41, 41, 41, 0.88);
96
- border: 1px solid rgba(246, 236, 255, 0.2);
97
- border-radius: 999px;
98
- box-shadow: 0 10px 24px rgba(0, 0, 0, 0.22);
99
- color: rgba(246, 236, 255, 0.92);
100
- height: 32px;
101
- transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease, transform 180ms ease;
102
- width: 32px;
103
- }
104
-
105
- .bayon-rte-transcription__button:hover {
106
- background: rgba(52, 37, 66, 0.95);
107
- color: #ffffff;
108
- transform: translateY(-1px);
109
- }
110
-
111
- .bayon-rte-transcription__button:focus-visible {
112
- outline: 2px solid rgba(246, 236, 255, 0.72);
113
- outline-offset: 2px;
114
- }
115
-
116
- .bayon-rte-transcription__button--recording {
117
- background: rgba(198, 40, 40, 0.88);
118
- border-color: rgba(255, 205, 210, 0.56);
119
- color: #ffffff;
120
- }
121
-
122
- .bayon-rte-transcription__status {
123
- align-items: center;
124
- background: rgba(41, 41, 41, 0.92);
125
- border: 1px solid rgba(246, 236, 255, 0.14);
126
- border-radius: 6px;
127
- color: rgba(255, 255, 255, 0.86);
128
- display: inline-flex;
129
- font-size: 0.72rem;
130
- gap: 6px;
131
- line-height: 1.3;
132
- max-width: 180px;
133
- min-height: 24px;
134
- overflow-wrap: anywhere;
135
- padding: 5px 7px;
136
- text-align: right;
137
- }
138
-
139
- .bayon-rte-transcription__dot {
140
- background: rgba(246, 236, 255, 0.72);
141
- border-radius: 999px;
142
- box-shadow: 0 0 0 3px rgba(246, 236, 255, 0.1);
143
- flex: 0 0 auto;
144
- height: 7px;
145
- width: 7px;
146
- }
147
-
148
- .bayon-rte-transcription--ready .bayon-rte-transcription__dot {
149
- background: #8ab4ff;
150
- box-shadow: 0 0 0 3px rgba(138, 180, 255, 0.14);
151
- }
152
-
153
- .bayon-rte-transcription--recording .bayon-rte-transcription__button,
154
- .bayon-rte-transcription--recording .bayon-rte-transcription__dot {
155
- animation: bayon-rte-transcription-pulse 1.35s ease-in-out infinite;
156
- }
157
-
158
- .bayon-rte-transcription--recording .bayon-rte-transcription__dot {
159
- background: #4ea1ff;
160
- box-shadow: 0 0 0 3px rgba(78, 161, 255, 0.18);
161
- }
162
-
163
- .bayon-rte-transcription--success .bayon-rte-transcription__dot {
164
- background: #6ee7a8;
165
- box-shadow: 0 0 0 3px rgba(110, 231, 168, 0.16);
166
- }
167
-
168
- .bayon-rte-transcription--error .bayon-rte-transcription__status {
169
- border-color: rgba(255, 179, 128, 0.34);
170
- color: #ffe0cc;
171
- }
172
-
173
- .bayon-rte-transcription--error .bayon-rte-transcription__dot {
174
- background: #ffb380;
175
- box-shadow: 0 0 0 3px rgba(255, 179, 128, 0.18);
176
- }
177
-
178
- .bayon-rte-transcription--unavailable .bayon-rte-transcription__status {
179
- opacity: 0.72;
180
- }
181
-
182
- .bayon-rte-transcription--unavailable .bayon-rte-transcription__dot {
183
- background: rgba(255, 255, 255, 0.42);
184
- box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.08);
185
- }
186
-
187
- @keyframes bayon-rte-transcription-pulse {
188
- 0%,
189
- 100% {
190
- transform: scale(1);
191
- }
192
-
193
- 50% {
194
- transform: scale(1.08);
195
- }
196
- }
197
-
198
- .bayon-rte-body {
199
- color: inherit;
200
- direction: auto;
201
- font-family: inherit;
202
- font-size: 1rem;
203
- line-height: 1.58;
204
- min-height: 220px;
205
- outline: 0;
206
- text-align: start;
207
- unicode-bidi: plaintext;
208
- white-space: normal;
209
- }
210
-
211
- .bayon-rte-body[contenteditable][data-placeholder]:empty::before {
212
- content: attr(data-placeholder);
213
- pointer-events: none;
214
- }
215
-
216
- .bayon-rte-body blockquote,
217
- .bayon-rte-renderer blockquote {
218
- border-left: 3px solid rgba(246, 236, 255, 0.42);
219
- color: rgba(255, 255, 255, 0.68);
220
- font-size: 1.42rem;
221
- font-style: italic;
222
- margin: 0;
223
- padding: 10px 0 10px 16px;
224
- }
225
-
226
- .bayon-rte-body blockquote[data-placeholder='quote']:empty::before {
227
- color: rgba(255, 255, 255, 0.58);
228
- content: "Quote";
229
- opacity: 1;
230
- pointer-events: none;
231
- }
232
-
233
- .bayon-rte-body figure[data-placeholder='image'] {
234
- border: 1px dashed rgba(246, 236, 255, 0.28);
235
- color: rgba(255, 255, 255, 0.68);
236
- font-family: var(--font-geist-sans), Arial, sans-serif;
237
- font-size: 1rem;
238
- padding: 10px 24px;
239
- text-align: center;
240
- }
241
-
242
- .bayon-rte-body h2,
243
- .bayon-rte-renderer h2 {
244
- font-family: inherit;
245
- font-size: 2.05rem;
246
- font-weight: 700;
247
- line-height: 1.2;
248
- margin: 0;
249
- padding: 10px 0;
250
- }
251
-
252
- .bayon-rte-body p,
253
- .bayon-rte-body div,
254
- .bayon-rte-renderer p {
255
- margin: 0;
256
- padding: 10px 0;
257
- }
258
-
259
- .bayon-rte-body [data-rich-text-checkbox],
260
- .bayon-rte-renderer [data-rich-text-checkbox] {
261
- align-items: flex-start;
262
- display: flex;
263
- gap: 8px;
264
- margin: 0;
265
- padding: 10px 0;
266
- }
267
-
268
- .bayon-rte-body [data-rich-text-checkbox] input,
269
- .bayon-rte-renderer [data-rich-text-checkbox] input {
270
- accent-color: #1a73e8;
271
- block-size: 1.05em;
272
- flex: 0 0 auto;
273
- inline-size: 1.05em;
274
- margin-top: 0.32em;
275
- }
276
-
277
- .bayon-rte-body [data-rich-text-checkbox] span {
278
- min-width: 0;
279
- outline: 0;
280
- }
281
-
282
- .bayon-rte-renderer [data-rich-text-checkbox] span {
283
- min-width: 0;
284
- }
285
-
286
- .bayon-rte-body pre,
287
- .bayon-rte-renderer code {
288
- background-color: rgba(255, 255, 255, 0.06);
289
- border-radius: 8px;
290
- font-family: var(--font-geist-mono), Consolas, monospace;
291
- }
292
-
293
- .bayon-rte-body pre {
294
- font-size: 1rem;
295
- padding: 10px 16px;
296
- white-space: pre-wrap;
297
- }
298
-
299
- .bayon-rte-renderer {
300
- color: inherit;
301
- font-family: inherit;
302
- font-size: 1rem;
303
- line-height: 1.58;
304
- }
305
-
306
- .bayon-rte-renderer code {
307
- padding: 2px 5px;
308
- }
309
-
310
- .bayon-rte-renderer img {
311
- max-width: 100%;
312
- }
313
-
314
- .bayon-rte-renderer li {
315
- margin-bottom: 6px;
316
- }
317
-
318
- .bayon-rte-renderer figure,
319
- .bayon-rte-renderer pre {
320
- margin: 0;
321
- padding: 10px 0;
322
- }
323
-
324
- .bayon-rte-renderer ul,
325
- .bayon-rte-renderer ol {
326
- margin-bottom: 16px;
327
- padding-left: 24px;
328
- }
329
-
330
- .bayon-rte-divider {
331
- border: 0;
332
- border-top: 1px solid currentColor;
333
- height: 0;
334
- margin: 6px 0;
335
- opacity: 0.5;
336
- padding: 0;
337
- }
338
-
339
- .bayon-rte-meta {
340
- color: rgba(255, 255, 255, 0.62);
341
- display: flex;
342
- flex-direction: column;
343
- font-size: 0.75rem;
344
- gap: 8px;
345
- justify-content: space-between;
346
- line-height: 1.66;
347
- }
348
-
349
- .bayon-rte-toolbar {
350
- align-items: center;
351
- background-color: #292929;
352
- border-radius: 8px;
353
- box-shadow: 0 8px 18px rgba(0, 0, 0, 0.24);
354
- display: flex;
355
- left: var(--bayon-rte-toolbar-left);
356
- position: absolute;
357
- top: var(--bayon-rte-toolbar-top);
358
- transform: translateX(-50%);
359
- z-index: 3;
360
- }
361
-
362
- .bayon-rte-toolbar::after {
363
- border-left: 10px solid transparent;
364
- border-right: 10px solid transparent;
365
- border-top: 10px solid #292929;
366
- bottom: -9px;
367
- content: "";
368
- left: 48%;
369
- position: absolute;
370
- }
371
-
372
- .bayon-rte-icon-button {
373
- align-items: center;
374
- background: transparent;
375
- border: 0;
376
- border-radius: 8px;
377
- color: inherit;
378
- cursor: pointer;
379
- display: inline-flex;
380
- justify-content: center;
381
- padding: 0;
382
- }
383
-
384
- .bayon-rte-icon-button:disabled {
385
- cursor: default;
386
- opacity: 0.58;
387
- }
388
-
389
- .bayon-rte-toolbar__button {
390
- border-left: 0;
391
- border-radius: 0;
392
- color: #ffffff;
393
- height: 48px;
394
- width: 44px;
395
- }
396
-
397
- .bayon-rte-toolbar__button--divider {
398
- border-left: 1px solid rgba(255, 255, 255, 0.18);
399
- }
400
-
401
- .bayon-rte-special-tool {
402
- align-items: center;
403
- display: flex;
404
- gap: 16px;
405
- left: 0;
406
- margin-top: 5px;
407
- min-height: 32px;
408
- opacity: 0;
409
- pointer-events: none;
410
- position: absolute;
411
- top: var(--bayon-rte-special-tool-top);
412
- transform: translate(-18px, 8px) scale(0.96);
413
- transition: opacity 720ms ease, transform 860ms cubic-bezier(0.16, 1, 0.3, 1);
414
- z-index: 6;
415
- }
416
-
417
- .bayon-rte-block-tool {
418
- align-items: center;
419
- display: flex;
420
- gap: 6px;
421
- left: 0;
422
- min-height: 34px;
423
- padding: 4px 14px 4px 0;
424
- position: absolute;
425
- top: var(--bayon-rte-block-tool-top);
426
- transform: translate(-28px, 8px);
427
- z-index: 5;
428
- }
429
-
430
- .bayon-rte-block-tool--menu-open {
431
- transform: translate(-28px, 2px);
432
- }
433
-
434
- .bayon-rte-block-hover-zone {
435
- height: var(--bayon-rte-block-hover-zone-height);
436
- left: -54px;
437
- min-height: 34px;
438
- pointer-events: auto;
439
- position: absolute;
440
- top: var(--bayon-rte-block-hover-zone-top);
441
- transform: translateY(8px);
442
- width: 54px;
443
- z-index: 4;
444
- }
445
-
446
- .bayon-rte-block-tool__actions {
447
- background: rgba(41, 41, 41, 0.92);
448
- border-radius: 8px;
449
- display: flex;
450
- gap: 4px;
451
- padding: 4px;
452
- }
453
-
454
- .bayon-rte-block-tool__actions .bayon-rte-special-button {
455
- height: 26px;
456
- width: 26px;
457
- }
458
-
459
- .bayon-rte-block-handle {
460
- background: transparent;
461
- color: rgba(186, 128, 255, 0.86);
462
- cursor: grab;
463
- height: 28px;
464
- touch-action: none;
465
- width: 28px;
466
- }
467
-
468
- .bayon-rte-block-handle:hover {
469
- background: transparent;
470
- color: rgba(246, 236, 255, 0.96);
471
- }
472
-
473
- .bayon-rte-block-handle--dragging {
474
- color: rgba(246, 236, 255, 0.98);
475
- transform: scale(1.08);
476
- }
477
-
478
- .bayon-rte-block-handle--menu-open {
479
- color: rgba(246, 236, 255, 0.98);
480
- cursor: pointer;
481
- }
482
-
483
- .bayon-rte-block-handle:active {
484
- cursor: grabbing;
485
- }
486
-
487
- .bayon-rte-block-handle--menu-open:active {
488
- cursor: pointer;
489
- }
490
-
491
- .bayon-rte-block-drag-indicator {
492
- background: linear-gradient(
493
- 90deg,
494
- rgba(180, 124, 255, 0),
495
- rgba(180, 124, 255, 0.9) 9%,
496
- rgba(180, 124, 255, 0.9) 92%,
497
- rgba(180, 124, 255, 0)
498
- );
499
- border-radius: 999px;
500
- height: 2px;
501
- left: 0;
502
- pointer-events: none;
503
- position: absolute;
504
- right: 0;
505
- top: var(--bayon-rte-block-drag-indicator-top);
506
- transform: translateY(-1px);
507
- z-index: 4;
508
- }
509
-
510
- .bayon-rte-block-drag-indicator::before {
511
- background: rgba(180, 124, 255, 0.95);
512
- border-radius: 999px;
513
- content: "";
514
- height: 8px;
515
- left: -3px;
516
- position: absolute;
517
- top: -3px;
518
- width: 8px;
519
- }
520
-
521
- .bayon-rte-special-tool--visible {
522
- opacity: 1;
523
- pointer-events: auto;
524
- transform: translate(-18px, 2px) scale(1);
525
- }
526
-
527
- .bayon-rte-special-tool__actions {
528
- display: flex;
529
- gap: 6px;
530
- }
531
-
532
- .bayon-rte-special-button {
533
- background-color: #ffffff;
534
- color: #7f38d8;
535
- height: 28px;
536
- width: 28px;
537
- }
538
-
539
- .bayon-rte-special-button:hover {
540
- background-color: #fbf6ff;
541
- }
542
-
543
- .bayon-rte-special-toggle {
544
- border: none;
545
- color: #292929;
546
- height: 22px;
547
- 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);
548
- width: 22px;
549
- }
550
-
551
- .bayon-rte-special-toggle:hover {
552
- background-color: #ffffff;
553
- color: #7f38d8;
554
- transform: scale(1.05) rotate(0deg);
555
- }
556
-
557
- .bayon-rte-unsaved-backdrop {
558
- align-items: center;
559
- background: rgba(0, 0, 0, 0.42);
560
- display: flex;
561
- inset: 0;
562
- justify-content: center;
563
- padding: 24px;
564
- position: fixed;
565
- z-index: 1300;
566
- }
567
-
568
- .bayon-rte-unsaved-dialog {
569
- background: #ffffff;
570
- border-radius: 8px;
571
- box-shadow: 0 18px 46px rgba(0, 0, 0, 0.24);
572
- color: #1f1f1f;
573
- max-width: 480px;
574
- padding: 24px;
575
- width: min(100%, 480px);
576
- }
577
-
578
- .bayon-rte-unsaved-dialog h2 {
579
- font-size: 1.25rem;
580
- line-height: 1.25;
581
- margin: 0 0 12px;
582
- }
583
-
584
- .bayon-rte-unsaved-dialog p {
585
- color: #555;
586
- margin: 0;
587
- }
588
-
589
- .bayon-rte-unsaved-error {
590
- background: #fdecea;
591
- border-radius: 8px;
592
- color: #611a15;
593
- margin-top: 16px;
594
- padding: 10px 12px;
595
- }
596
-
597
- .bayon-rte-unsaved-actions {
598
- display: flex;
599
- flex-wrap: wrap;
600
- gap: 8px;
601
- justify-content: flex-end;
602
- margin-top: 24px;
603
- }
604
-
605
- .bayon-rte-button {
606
- background: transparent;
607
- border: 1px solid transparent;
608
- border-radius: 6px;
609
- color: #7f38d8;
610
- cursor: pointer;
611
- font: inherit;
612
- padding: 8px 12px;
613
- }
614
-
615
- .bayon-rte-button:hover {
616
- background: rgba(127, 56, 216, 0.08);
617
- }
618
-
619
- .bayon-rte-button:disabled {
620
- cursor: default;
621
- opacity: 0.6;
622
- }
623
-
624
- .bayon-rte-button--danger {
625
- color: #c62828;
626
- }
627
-
628
- .bayon-rte-button--primary {
629
- background: #7f38d8;
630
- color: #ffffff;
631
- }
632
-
633
- .bayon-rte-button--primary:hover {
634
- background: #6f2fc4;
635
- }
636
-
637
- @media (min-width: 600px) {
638
- .bayon-rte-surface {
639
- min-height: min(max(550px, 72vh), 820px);
640
- padding: 24px;
641
- }
642
-
643
- .bayon-rte-surface__inner {
644
- padding: 0 50px 0 40px;
645
- }
646
-
647
- .bayon-rte-transcription {
648
- top: -6px;
649
- }
650
-
651
- .bayon-rte-title {
652
- font-size: 2.45rem;
653
- }
654
-
655
- .bayon-rte-body,
656
- .bayon-rte-renderer {
657
- font-size: 1.25rem;
658
- line-height: 1.68;
659
- }
660
-
661
- .bayon-rte-body {
662
- min-height: 360px;
663
- }
664
-
665
- .bayon-rte-meta {
666
- flex-direction: row;
667
- }
668
-
669
- .bayon-rte-special-tool {
670
- gap: 16px;
671
- min-height: 56px;
672
- transform: translate(-49px, -4px) scale(0.96);
673
- }
674
-
675
- .bayon-rte-special-tool--visible {
676
- transform: translate(-49px, -10px) scale(1);
677
- }
678
-
679
- .bayon-rte-block-tool {
680
- min-height: 34px;
681
- transform: translate(-34px, 8px);
682
- }
683
-
684
- .bayon-rte-block-tool--menu-open {
685
- transform: translate(-34px, 2px);
686
- }
687
-
688
- .bayon-rte-block-hover-zone {
689
- left: -58px;
690
- width: 58px;
691
- }
692
-
693
- .bayon-rte-block-tool__actions .bayon-rte-special-button {
694
- height: 34px;
695
- width: 34px;
696
- }
697
-
698
- .bayon-rte-special-tool__actions {
699
- gap: 16px;
700
- }
701
-
702
- .bayon-rte-special-button {
703
- height: 39px;
704
- width: 39px;
705
- }
706
-
707
- .bayon-rte-special-toggle {
708
- height: 34px;
709
- width: 34px;
710
- }
711
- }
712
-
713
- @media (min-width: 900px) {
714
- .bayon-rte-surface {
715
- padding-bottom: 0;
716
- padding-top: 0;
717
- }
718
- }
719
- `;
720
- function RichTextStyleScope() {
721
- return (0, jsx_runtime_1.jsx)("style", { children: richTextStyles });
722
- }
@@ -1,10 +0,0 @@
1
- "use strict";
2
- "use client";
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.SpecialBlockOption = SpecialBlockOption;
5
- const jsx_runtime_1 = require("react/jsx-runtime");
6
- // Renders one selectable special-block action inside the insertion tool.
7
- function SpecialBlockOption({ action, onInsert, }) {
8
- const Icon = action.icon;
9
- return ((0, jsx_runtime_1.jsx)("button", { "aria-label": action.label, className: "bayon-rte-icon-button bayon-rte-special-button", onClick: () => onInsert(action), onMouseDown: (event) => event.preventDefault(), title: action.label, type: "button", children: (0, jsx_runtime_1.jsx)(Icon, { size: 18 }) }));
10
- }