chaeditor 0.1.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 (40) hide show
  1. package/LICENSE.txt +21 -0
  2. package/README.ko.md +250 -0
  3. package/README.md +242 -0
  4. package/dist/core.cjs +1034 -0
  5. package/dist/core.d.mts +347 -0
  6. package/dist/core.d.ts +347 -0
  7. package/dist/core.mjs +988 -0
  8. package/dist/default-host.cjs +243 -0
  9. package/dist/default-host.d.mts +52 -0
  10. package/dist/default-host.d.ts +52 -0
  11. package/dist/default-host.mjs +239 -0
  12. package/dist/default-markdown-primitive-registry-B3PGEkqs.d.mts +12 -0
  13. package/dist/default-markdown-primitive-registry-CqzwhHj2.d.ts +12 -0
  14. package/dist/image-upload-kind-BJqItE_C.d.mts +18 -0
  15. package/dist/image-upload-kind-BJqItE_C.d.ts +18 -0
  16. package/dist/index.cjs +8736 -0
  17. package/dist/index.d.mts +7 -0
  18. package/dist/index.d.ts +7 -0
  19. package/dist/index.mjs +8668 -0
  20. package/dist/markdown-editor-B1qvE40Z.d.mts +460 -0
  21. package/dist/markdown-editor-Ce6DpnQk.d.ts +460 -0
  22. package/dist/markdown-primitive-contract-BXsqbKwY.d.mts +124 -0
  23. package/dist/markdown-primitive-contract-BXsqbKwY.d.ts +124 -0
  24. package/dist/panda-primitives.cjs +1299 -0
  25. package/dist/panda-primitives.d.mts +21127 -0
  26. package/dist/panda-primitives.d.ts +21127 -0
  27. package/dist/panda-primitives.mjs +1285 -0
  28. package/dist/react.cjs +8558 -0
  29. package/dist/react.d.mts +35 -0
  30. package/dist/react.d.ts +35 -0
  31. package/dist/react.mjs +8531 -0
  32. package/dist/toolbar-preset-B9ttTEol.d.ts +236 -0
  33. package/dist/toolbar-preset-DIsQN390.d.mts +236 -0
  34. package/package.json +151 -0
  35. package/recipes/host-presets/README.md +16 -0
  36. package/recipes/host-presets/emotion-host-preset.tsx.template +109 -0
  37. package/recipes/host-presets/styled-components-host-preset.tsx.template +102 -0
  38. package/recipes/host-presets/tailwind-host-preset.tsx.template +116 -0
  39. package/recipes/host-presets/vanilla-extract-host-preset.tsx.template +116 -0
  40. package/styled-system/styles.css +3370 -0
@@ -0,0 +1,460 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import React, { ReactNode } from 'react';
3
+ import { E as EditorAttachment, a as EditorContentType } from './image-upload-kind-BJqItE_C.mjs';
4
+ import { U as UploadEditorFile, j as UploadEditorImage, a as HostImageRenderer, k as UploadEditorVideo, M as MarkdownEditorHostAdapters, e as MarkdownToolbarPresetItemKey, h as MarkdownToolbarSectionKey, d as MarkdownSegment, c as MarkdownRendererHostAdapters, i as RichMarkdownRenderArgs } from './toolbar-preset-DIsQN390.mjs';
5
+ import { C as ClosePopover, M as MarkdownPrimitiveRegistry } from './markdown-primitive-contract-BXsqbKwY.mjs';
6
+
7
+ /**
8
+ * Represents the uploaded attachment payload inserted by the file embed helper.
9
+ */
10
+ type FileEmbedApplyPayload = EditorAttachment;
11
+
12
+ type FileEmbedPopoverProps = {
13
+ contentType: EditorContentType;
14
+ onApply: (attachment: FileEmbedApplyPayload, closePopover?: ClosePopover) => void;
15
+ onUploadFile?: UploadEditorFile;
16
+ onTriggerMouseDown?: React.MouseEventHandler<HTMLButtonElement>;
17
+ triggerClassName?: string;
18
+ };
19
+ /**
20
+ * Popover for uploading an attachment and inserting the custom Attachment tag.
21
+ */
22
+ declare const FileEmbedPopover: ({ contentType, onApply, onUploadFile, onTriggerMouseDown, triggerClassName, }: FileEmbedPopoverProps) => react_jsx_runtime.JSX.Element;
23
+
24
+ type ColorStylePopoverLabels = {
25
+ getOptionAriaLabel?: (label: string) => string;
26
+ panelLabel: string;
27
+ triggerAriaLabel: string;
28
+ triggerTooltip: string;
29
+ };
30
+
31
+ type TextBackgroundColorPopoverProps = {
32
+ labels?: Partial<ColorStylePopoverLabels>;
33
+ onApply: (colorHex: string, closePopover?: () => void) => void;
34
+ onTriggerMouseDown?: React.MouseEventHandler<HTMLButtonElement>;
35
+ triggerClassName?: string;
36
+ };
37
+ /**
38
+ * Renders the toolbar popover for background highlight syntax.
39
+ */
40
+ declare const TextBackgroundColorPopover: ({ labels, onApply, onTriggerMouseDown, triggerClassName, }: TextBackgroundColorPopoverProps) => react_jsx_runtime.JSX.Element;
41
+
42
+ type TextColorPopoverProps = {
43
+ labels?: Partial<ColorStylePopoverLabels>;
44
+ onApply: (colorHex: string, closePopover?: () => void) => void;
45
+ onTriggerMouseDown?: React.MouseEventHandler<HTMLButtonElement>;
46
+ triggerClassName?: string;
47
+ };
48
+ /**
49
+ * Renders the toolbar popover for text color syntax.
50
+ */
51
+ declare const TextColorPopover: ({ labels, onApply, onTriggerMouseDown, triggerClassName, }: TextColorPopoverProps) => react_jsx_runtime.JSX.Element;
52
+
53
+ /**
54
+ * Represents a single image item selected for markdown insertion.
55
+ */
56
+ type ImageEmbedItem = {
57
+ altText: string;
58
+ url: string;
59
+ };
60
+ /**
61
+ * Describes the image insertion payload produced by the image embed modal.
62
+ */
63
+ type ImageEmbedApplyPayload = {
64
+ items: ImageEmbedItem[];
65
+ mode: 'gallery' | 'individual';
66
+ };
67
+
68
+ type ImageEmbedModalProps = {
69
+ contentType: EditorContentType;
70
+ onApply: (payload: {
71
+ items: Array<{
72
+ altText: string;
73
+ url: string;
74
+ }>;
75
+ mode: 'gallery' | 'individual';
76
+ }, closePopover?: ClosePopover) => void;
77
+ onUploadImage?: UploadEditorImage;
78
+ renderImage?: HostImageRenderer;
79
+ onTriggerMouseDown?: React.MouseEventHandler<HTMLButtonElement>;
80
+ triggerClassName?: string;
81
+ };
82
+ /**
83
+ * Modal for building individual image or gallery insertion payloads from image rows.
84
+ *
85
+ * @param props Image modal props.
86
+ * @returns The trigger button and modal UI.
87
+ */
88
+ declare const ImageEmbedModal: ({ contentType, onApply, onUploadImage, renderImage, onTriggerMouseDown, triggerClassName, }: ImageEmbedModalProps) => react_jsx_runtime.JSX.Element;
89
+
90
+ /**
91
+ * Supported insertion modes for link helpers.
92
+ */
93
+ type LinkEmbedMode = 'card' | 'link' | 'preview';
94
+ /**
95
+ * Label overrides for the built-in link embed popover.
96
+ */
97
+ type LinkEmbedPopoverLabels = {
98
+ cardButtonLabel: string;
99
+ panelLabel: string;
100
+ previewButtonLabel: string;
101
+ triggerAriaLabel: string;
102
+ triggerTooltip: string;
103
+ urlInputAriaLabel: string;
104
+ urlPlaceholder: string;
105
+ hyperlinkButtonLabel: string;
106
+ };
107
+
108
+ type LinkEmbedPopoverProps = {
109
+ labels?: Partial<LinkEmbedPopoverLabels>;
110
+ onApply: (url: string, mode: LinkEmbedMode, closePopover?: ClosePopover) => void;
111
+ onTriggerMouseDown?: React.MouseEventHandler<HTMLButtonElement>;
112
+ triggerClassName?: string;
113
+ };
114
+ /**
115
+ * Popover for inserting links in plain, preview, or card mode.
116
+ */
117
+ declare const LinkEmbedPopover: ({ labels, onApply, onTriggerMouseDown, triggerClassName, }: LinkEmbedPopoverProps) => react_jsx_runtime.JSX.Element;
118
+
119
+ /**
120
+ * Describes the math insertion payload produced by the math embed popover.
121
+ */
122
+ type MathEmbedApplyPayload = {
123
+ formula: string;
124
+ isBlock: boolean;
125
+ };
126
+
127
+ type ToolbarTokenPopoverLabels = {
128
+ panelLabel: string;
129
+ triggerAriaLabel: string;
130
+ triggerTooltip: string;
131
+ };
132
+ type ToolbarTokenPopoverProps = {
133
+ labels: ToolbarTokenPopoverLabels;
134
+ onTriggerMouseDown?: React.MouseEventHandler<HTMLButtonElement>;
135
+ options: ToolbarTokenOption[];
136
+ triggerClassName?: string;
137
+ triggerToken: string;
138
+ };
139
+ /**
140
+ * Groups step-based toolbar commands behind a compact token trigger.
141
+ */
142
+ declare const ToolbarTokenPopover: ({ labels, onTriggerMouseDown, options, triggerClassName, triggerToken, }: ToolbarTokenPopoverProps) => react_jsx_runtime.JSX.Element;
143
+
144
+ /**
145
+ * Re-exports the video embed helpers from editor-core for backward-compatible imports.
146
+ */
147
+
148
+ type VideoEmbedApplyPayload = {
149
+ provider: 'upload';
150
+ src?: string;
151
+ } | {
152
+ provider: 'youtube';
153
+ videoId?: string;
154
+ };
155
+
156
+ type VideoEmbedModalProps = {
157
+ contentType: EditorContentType;
158
+ onApply: (payload: VideoEmbedApplyPayload, closePopover?: ClosePopover) => void;
159
+ onUploadVideo?: UploadEditorVideo;
160
+ onTriggerMouseDown?: React.MouseEventHandler<HTMLButtonElement>;
161
+ triggerClassName?: string;
162
+ };
163
+ /**
164
+ * Renders the video embed modal used from the markdown toolbar.
165
+ *
166
+ * @param props Trigger, upload, and apply handlers for video insertion.
167
+ * @returns The video insert trigger and modal UI.
168
+ */
169
+ declare const VideoEmbedModal: ({ contentType, onApply, onUploadVideo, onTriggerMouseDown, triggerClassName, }: VideoEmbedModalProps) => react_jsx_runtime.JSX.Element;
170
+
171
+ /**
172
+ * Minimal contract required by the markdown toolbar.
173
+ *
174
+ * @property contentType Current editor content type.
175
+ * @property onChange Callback that applies the next textarea value.
176
+ * @property primitiveRegistry Optional host primitive overrides applied to the toolbar subtree.
177
+ * @property textareaRef Ref for the active textarea element.
178
+ * @property uiRegistry Optional UI registry for labels and primitive overrides.
179
+ */
180
+ type MarkdownToolbarProps = {
181
+ contentType: EditorContentType;
182
+ /**
183
+ * Optional host adapters for uploads and renderer overrides.
184
+ *
185
+ * When omitted, upload-oriented helpers should disable the related action instead of
186
+ * assuming a built-in backend exists.
187
+ */
188
+ adapters?: MarkdownEditorHostAdapters;
189
+ /** Applies the next editor value after a toolbar action finishes. */
190
+ onChange: (value: string) => void;
191
+ /** Optional primitive registry applied to the toolbar subtree. */
192
+ primitiveRegistry?: MarkdownPrimitiveRegistry;
193
+ /** Active textarea ref used by selection-based toolbar commands. */
194
+ textareaRef: React.RefObject<HTMLTextAreaElement | null>;
195
+ /** Optional UI registry for labels and built-in popover replacements. */
196
+ uiRegistry?: MarkdownToolbarUiRegistry;
197
+ };
198
+ /**
199
+ * Label overrides for built-in toolbar popovers.
200
+ */
201
+ type MarkdownToolbarUiLabels = {
202
+ /** Label overrides for the text background color popover. */
203
+ backgroundColorPopover?: Partial<ColorStylePopoverLabels>;
204
+ /** Label overrides for the grouped heading token popover. */
205
+ headingPopover?: Partial<ToolbarTokenPopoverLabels>;
206
+ /** Label overrides for the link embed popover. */
207
+ linkEmbedPopover?: Partial<LinkEmbedPopoverLabels>;
208
+ /** Label overrides for the text color popover. */
209
+ textColorPopover?: Partial<ColorStylePopoverLabels>;
210
+ /** Label overrides for the grouped toggle token popover. */
211
+ togglePopover?: Partial<ToolbarTokenPopoverLabels>;
212
+ };
213
+ /**
214
+ * Render registry for replacing built-in toolbar popovers.
215
+ *
216
+ * Each renderer receives the same contract as the built-in helper so host applications
217
+ * can replace only the UI shell while keeping the existing toolbar behavior.
218
+ */
219
+ type MarkdownToolbarPopoverRegistry = {
220
+ alignPopover?: (props: AlignPopoverRenderProps) => React.ReactNode;
221
+ backgroundColorPopover?: (props: TextColorPopoverRenderProps) => React.ReactNode;
222
+ fileEmbedPopover?: (props: FileEmbedPopoverRenderProps) => React.ReactNode;
223
+ headingPopover?: (props: ToolbarTokenPopoverProps) => React.ReactNode;
224
+ imageEmbedModal?: (props: ImageEmbedModalRenderProps) => React.ReactNode;
225
+ linkEmbedPopover?: (props: LinkEmbedPopoverRenderProps) => React.ReactNode;
226
+ mathEmbedPopover?: (props: MathEmbedPopoverRenderProps) => React.ReactNode;
227
+ textColorPopover?: (props: TextColorPopoverRenderProps) => React.ReactNode;
228
+ togglePopover?: (props: ToolbarTokenPopoverProps) => React.ReactNode;
229
+ videoEmbedModal?: (props: VideoEmbedModalRenderProps) => React.ReactNode;
230
+ };
231
+ /**
232
+ * Toolbar UI customization entry point.
233
+ *
234
+ * Use this registry to override labels only, replace selected popovers, or do both.
235
+ */
236
+ type MarkdownToolbarUiRegistry = {
237
+ labels?: MarkdownToolbarUiLabels;
238
+ popovers?: MarkdownToolbarPopoverRegistry;
239
+ };
240
+ /**
241
+ * Props passed to a custom link embed popover renderer.
242
+ */
243
+ type LinkEmbedPopoverRenderProps = {
244
+ /** Optional label overrides merged into the built-in defaults. */
245
+ labels?: Partial<LinkEmbedPopoverLabels>;
246
+ /** Applies the selected link mode and URL to the active editor selection. */
247
+ onApply: (url: string, mode: LinkEmbedMode, closePopover?: ClosePopover) => void;
248
+ /** Mouse-down hook used to preserve textarea focus before opening the helper. */
249
+ onTriggerMouseDown?: React.MouseEventHandler<HTMLButtonElement>;
250
+ /** Optional class name for the trigger button wrapper. */
251
+ triggerClassName?: string;
252
+ };
253
+ /**
254
+ * Props passed to a custom align popover renderer.
255
+ */
256
+ type AlignPopoverRenderProps = {
257
+ /** Applies the selected block alignment. */
258
+ onApply: (align: 'center' | 'left' | 'right', closePopover?: ClosePopover) => void;
259
+ onTriggerMouseDown?: React.MouseEventHandler<HTMLButtonElement>;
260
+ triggerClassName?: string;
261
+ };
262
+ /**
263
+ * Props passed to a custom math embed popover renderer.
264
+ */
265
+ type MathEmbedPopoverRenderProps = {
266
+ /** Inserts the provided math formula into the editor. */
267
+ onApply: (payload: MathEmbedApplyPayload, closePopover?: ClosePopover) => void;
268
+ onTriggerMouseDown?: React.MouseEventHandler<HTMLButtonElement>;
269
+ triggerClassName?: string;
270
+ };
271
+ /**
272
+ * Props passed to a custom color popover renderer.
273
+ */
274
+ type TextColorPopoverRenderProps = {
275
+ labels?: Partial<ColorStylePopoverLabels>;
276
+ /** Applies the selected color token or hex value. */
277
+ onApply: (colorHex: string, closePopover?: ClosePopover) => void;
278
+ onTriggerMouseDown?: React.MouseEventHandler<HTMLButtonElement>;
279
+ triggerClassName?: string;
280
+ };
281
+ /**
282
+ * Props passed to a custom file embed popover renderer.
283
+ */
284
+ type FileEmbedPopoverRenderProps = {
285
+ /** Current editor content type forwarded to the upload adapter. */
286
+ contentType: EditorContentType;
287
+ /** Inserts the uploaded attachment into the editor. */
288
+ onApply: (attachment: FileEmbedApplyPayload, closePopover?: ClosePopover) => void;
289
+ onTriggerMouseDown?: React.MouseEventHandler<HTMLButtonElement>;
290
+ /** Optional upload adapter. When omitted, upload-specific actions should be disabled. */
291
+ onUploadFile?: MarkdownEditorHostAdapters['uploadFile'];
292
+ triggerClassName?: string;
293
+ };
294
+ /**
295
+ * Props passed to a custom image embed modal renderer.
296
+ */
297
+ type ImageEmbedModalRenderProps = {
298
+ /** Current editor content type forwarded to the upload adapter. */
299
+ contentType: EditorContentType;
300
+ /** Inserts one or more image references into the editor. */
301
+ onApply: (payload: ImageEmbedApplyPayload, closePopover?: ClosePopover) => void;
302
+ onTriggerMouseDown?: React.MouseEventHandler<HTMLButtonElement>;
303
+ /** Optional framework-specific image renderer override for previews. */
304
+ renderImage?: MarkdownEditorHostAdapters['renderImage'];
305
+ /** Optional upload adapter. When omitted, upload-specific actions should be disabled. */
306
+ onUploadImage?: MarkdownEditorHostAdapters['uploadImage'];
307
+ triggerClassName?: string;
308
+ };
309
+ /**
310
+ * Props passed to a custom video embed modal renderer.
311
+ */
312
+ type VideoEmbedModalRenderProps = {
313
+ /** Current editor content type forwarded to the upload adapter. */
314
+ contentType: EditorContentType;
315
+ /** Inserts either an uploaded video or a YouTube reference into the editor. */
316
+ onApply: (payload: VideoEmbedApplyPayload, closePopover?: ClosePopover) => void;
317
+ onTriggerMouseDown?: React.MouseEventHandler<HTMLButtonElement>;
318
+ /** Optional upload adapter. When omitted, upload-specific actions should be disabled. */
319
+ onUploadVideo?: MarkdownEditorHostAdapters['uploadVideo'];
320
+ triggerClassName?: string;
321
+ };
322
+
323
+ type ToolbarActionItem = {
324
+ icon?: React.ReactNode;
325
+ key: string;
326
+ label: string;
327
+ onClick: () => void;
328
+ token?: string;
329
+ };
330
+ type ToolbarTokenOption = {
331
+ key: string;
332
+ label: string;
333
+ onClick: () => void;
334
+ token: string;
335
+ };
336
+ type ToolbarCustomItem = {
337
+ key: MarkdownToolbarPresetItemKey;
338
+ node: React.ReactNode;
339
+ type: 'custom';
340
+ };
341
+ type ToolbarSectionItem = {
342
+ action: ToolbarActionItem;
343
+ key: string;
344
+ type: 'action';
345
+ } | ToolbarCustomItem;
346
+ type ToolbarSection = {
347
+ items: ToolbarSectionItem[];
348
+ key: MarkdownToolbarSectionKey;
349
+ };
350
+
351
+ type ResolvedMarkdownToolbarUiRegistry = {
352
+ renderAlignPopover: (props: AlignPopoverRenderProps) => React.ReactNode;
353
+ renderBackgroundColorPopover: (props: TextColorPopoverRenderProps) => React.ReactNode;
354
+ renderFileEmbedPopover: (props: FileEmbedPopoverRenderProps) => React.ReactNode;
355
+ renderHeadingPopover: (props: React.ComponentProps<typeof ToolbarTokenPopover>) => React.ReactNode;
356
+ renderImageEmbedModal: (props: ImageEmbedModalRenderProps) => React.ReactNode;
357
+ renderLinkEmbedPopover: (props: LinkEmbedPopoverRenderProps) => React.ReactNode;
358
+ renderMathEmbedPopover: (props: MathEmbedPopoverRenderProps) => React.ReactNode;
359
+ renderTextColorPopover: (props: TextColorPopoverRenderProps) => React.ReactNode;
360
+ renderTogglePopover: (props: React.ComponentProps<typeof ToolbarTokenPopover>) => React.ReactNode;
361
+ renderVideoEmbedModal: (props: VideoEmbedModalRenderProps) => React.ReactNode;
362
+ };
363
+ /**
364
+ * Creates the built-in toolbar UI registry used by the editor package.
365
+ */
366
+ declare const createDefaultMarkdownToolbarUiRegistry: () => MarkdownToolbarPopoverRegistry;
367
+ /**
368
+ * Resolves the toolbar UI registry by merging host overrides with built-in implementations.
369
+ */
370
+ declare const resolveMarkdownToolbarUiRegistry: (uiRegistry?: MarkdownToolbarUiRegistry) => ResolvedMarkdownToolbarUiRegistry;
371
+
372
+ /**
373
+ * Renders the markdown formatting toolbar for a textarea editor.
374
+ */
375
+ declare const MarkdownToolbar: ({ adapters, contentType, onChange, primitiveRegistry, textareaRef, uiRegistry, }: MarkdownToolbarProps) => react_jsx_runtime.JSX.Element;
376
+
377
+ type RichMarkdownCustomSegment = Extract<MarkdownSegment, {
378
+ type: 'attachment' | 'gallery' | 'math' | 'video';
379
+ }>;
380
+ type RichMarkdownSegmentRendererArgs<TSegment extends RichMarkdownCustomSegment> = {
381
+ key: string;
382
+ segment: TSegment;
383
+ };
384
+ type RichMarkdownRendererRegistry = {
385
+ attachment: (args: RichMarkdownSegmentRendererArgs<Extract<MarkdownSegment, {
386
+ type: 'attachment';
387
+ }>>) => React.ReactNode;
388
+ gallery: (args: RichMarkdownSegmentRendererArgs<Extract<MarkdownSegment, {
389
+ type: 'gallery';
390
+ }>>) => React.ReactNode;
391
+ math: (args: RichMarkdownSegmentRendererArgs<Extract<MarkdownSegment, {
392
+ type: 'math';
393
+ }>>) => React.ReactNode;
394
+ video: (args: RichMarkdownSegmentRendererArgs<Extract<MarkdownSegment, {
395
+ type: 'video';
396
+ }>>) => React.ReactNode;
397
+ };
398
+ type PartialRichMarkdownRendererRegistry = Partial<RichMarkdownRendererRegistry>;
399
+ /**
400
+ * Returns the default custom segment renderers for rich markdown content.
401
+ *
402
+ * @returns The default renderer registry.
403
+ */
404
+ declare const createDefaultRichMarkdownRendererRegistry: (adapters?: MarkdownRendererHostAdapters) => RichMarkdownRendererRegistry;
405
+ /**
406
+ * Merges the default rich-markdown renderers with host overrides.
407
+ *
408
+ * @param overrides Partial renderer overrides from the host app.
409
+ * @returns The merged renderer registry.
410
+ */
411
+ declare const createRichMarkdownRendererRegistry: (overrides?: PartialRichMarkdownRendererRegistry, adapters?: MarkdownRendererHostAdapters) => RichMarkdownRendererRegistry;
412
+
413
+ type MarkdownFragmentRenderer = (markdown: string, key: string) => ReactNode;
414
+ type RenderRichMarkdownArgs = RichMarkdownRenderArgs & {
415
+ adapters?: MarkdownRendererHostAdapters;
416
+ renderMarkdownFragment: MarkdownFragmentRenderer;
417
+ renderers?: PartialRichMarkdownRendererRegistry;
418
+ };
419
+ /**
420
+ * Converts parsed markdown fragments and custom segments into React nodes.
421
+ *
422
+ * @param markdown Raw markdown string.
423
+ * @param renderMarkdownFragment Renderer for plain markdown fragments.
424
+ * @param adapters Optional host adapters used by segment renderers.
425
+ * @param renderers Optional custom renderer overrides.
426
+ * @returns A list of rendered React nodes.
427
+ */
428
+ declare const renderRichMarkdown: ({ adapters, markdown, renderMarkdownFragment, renderers, }: RenderRichMarkdownArgs) => (string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | react_jsx_runtime.JSX.Element | null | undefined)[];
429
+
430
+ type MarkdownRendererProps = {
431
+ adapters?: MarkdownRendererHostAdapters;
432
+ emptyText?: string;
433
+ locale?: string;
434
+ markdown: string | null;
435
+ renderers?: PartialRichMarkdownRendererRegistry;
436
+ };
437
+ /**
438
+ * Renders a markdown string into SSR-friendly React nodes.
439
+ */
440
+ declare const MarkdownRenderer: ({ adapters, emptyText, locale, markdown, renderers, }: MarkdownRendererProps) => Promise<react_jsx_runtime.JSX.Element | null>;
441
+
442
+ type MarkdownEditorProps = {
443
+ adapters?: MarkdownEditorHostAdapters;
444
+ className?: string;
445
+ contentType: EditorContentType;
446
+ locale?: string;
447
+ onChange: (value: string) => void;
448
+ placeholder?: string;
449
+ previewEmptyText?: string;
450
+ primitiveRegistry?: MarkdownPrimitiveRegistry;
451
+ renderers?: PartialRichMarkdownRendererRegistry;
452
+ uiRegistry?: MarkdownToolbarUiRegistry;
453
+ value: string;
454
+ };
455
+ /**
456
+ * Renders a textarea-based markdown editor with a toolbar and live preview.
457
+ */
458
+ declare const MarkdownEditor: ({ adapters, className, contentType, locale, onChange, placeholder, previewEmptyText, primitiveRegistry, renderers, uiRegistry, value, }: MarkdownEditorProps) => react_jsx_runtime.JSX.Element;
459
+
460
+ export { type AlignPopoverRenderProps as A, FileEmbedPopover as F, ImageEmbedModal as I, LinkEmbedPopover as L, MarkdownEditor as M, type PartialRichMarkdownRendererRegistry as P, type RichMarkdownRendererRegistry as R, TextBackgroundColorPopover as T, VideoEmbedModal as V, type FileEmbedPopoverRenderProps as a, type ImageEmbedModalRenderProps as b, type LinkEmbedPopoverRenderProps as c, type MarkdownEditorProps as d, MarkdownRenderer as e, MarkdownToolbar as f, type MarkdownToolbarPopoverRegistry as g, type MarkdownToolbarProps as h, type MarkdownToolbarUiLabels as i, type MarkdownToolbarUiRegistry as j, type RichMarkdownSegmentRendererArgs as k, TextColorPopover as l, type TextColorPopoverRenderProps as m, type ToolbarActionItem as n, type ToolbarSection as o, type ToolbarSectionItem as p, type ToolbarTokenOption as q, type VideoEmbedModalRenderProps as r, createDefaultMarkdownToolbarUiRegistry as s, createDefaultRichMarkdownRendererRegistry as t, createRichMarkdownRendererRegistry as u, renderRichMarkdown as v, resolveMarkdownToolbarUiRegistry as w, type MathEmbedApplyPayload as x };