@react-email/editor 0.0.0-experimental.2 → 0.0.0-experimental.20

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.
@@ -0,0 +1,1196 @@
1
+ import { Node } from "@tiptap/pm/model";
2
+ import * as _tiptap_core0 from "@tiptap/core";
3
+ import { Content, Editor, Extension, Extensions, JSONContent, Mark, MarkConfig, MarkType, Node as Node$1, NodeConfig as NodeConfig$1, NodeType as NodeType$1, ParentConfig, Range } from "@tiptap/core";
4
+ import { UseEditorOptions } from "@tiptap/react";
5
+ import { EditorView } from "@tiptap/pm/view";
6
+ import { BlockquoteOptions } from "@tiptap/extension-blockquote";
7
+ import { BulletListOptions } from "@tiptap/extension-bullet-list";
8
+ import { CodeOptions } from "@tiptap/extension-code";
9
+ import { HardBreakOptions } from "@tiptap/extension-hard-break";
10
+ import { ItalicOptions } from "@tiptap/extension-italic";
11
+ import { ListItemOptions } from "@tiptap/extension-list-item";
12
+ import { OrderedListOptions } from "@tiptap/extension-ordered-list";
13
+ import { ParagraphOptions } from "@tiptap/extension-paragraph";
14
+ import { StrikeOptions } from "@tiptap/extension-strike";
15
+ import { StarterKitOptions as StarterKitOptions$1 } from "@tiptap/starter-kit";
16
+ import { CodeBlockOptions } from "@tiptap/extension-code-block";
17
+ import { HorizontalRuleOptions } from "@tiptap/extension-horizontal-rule";
18
+ import { HeadingOptions as HeadingOptions$1 } from "@tiptap/extension-heading";
19
+ import { LinkOptions as LinkOptions$1 } from "@tiptap/extension-link";
20
+ import { PlaceholderOptions as PlaceholderOptions$1 } from "@tiptap/extension-placeholder";
21
+ import * as react_jsx_runtime6 from "react/jsx-runtime";
22
+ import * as React$1 from "react";
23
+ import { ComponentType, ReactNode, Ref } from "react";
24
+
25
+ //#region src/core/event-bus.d.ts
26
+ /**
27
+ * Base event map interface for the editor event bus.
28
+ *
29
+ * Components extend this via TypeScript module augmentation:
30
+ * ```ts
31
+ * declare module '@react-email/editor' {
32
+ * interface EditorEventMap {
33
+ * 'my-component:custom-event': { data: string };
34
+ * }
35
+ * }
36
+ * ```
37
+ */
38
+ interface EditorEventMap {
39
+ 'bubble-menu:add-link': undefined;
40
+ }
41
+ type EditorEventName = keyof EditorEventMap;
42
+ type EditorEventHandler<T extends EditorEventName> = (payload: EditorEventMap[T]) => void | Promise<void>;
43
+ interface EditorEventSubscription {
44
+ unsubscribe: () => void;
45
+ }
46
+ declare class EditorEventBus {
47
+ private prefixEventName;
48
+ dispatch<T extends EditorEventName>(eventName: T, payload: EditorEventMap[T], options?: {
49
+ target?: EventTarget;
50
+ }): void;
51
+ on<T extends EditorEventName>(eventName: T, handler: EditorEventHandler<T>, options?: AddEventListenerOptions & {
52
+ target?: EventTarget;
53
+ }): EditorEventSubscription;
54
+ }
55
+ declare const editorEventBus: EditorEventBus;
56
+ //#endregion
57
+ //#region src/core/is-document-visually-empty.d.ts
58
+ declare function isDocumentVisuallyEmpty(doc: Node): boolean;
59
+ //#endregion
60
+ //#region src/core/serializer/compose-react-email.d.ts
61
+ interface ComposeReactEmailResult {
62
+ html: string;
63
+ text: string;
64
+ }
65
+ declare const composeReactEmail: ({
66
+ editor,
67
+ preview
68
+ }: {
69
+ editor: Editor;
70
+ preview: string | null;
71
+ }) => Promise<ComposeReactEmailResult>;
72
+ //#endregion
73
+ //#region src/core/serializer/email-node.d.ts
74
+ type RendererComponent = (props: {
75
+ node: JSONContent;
76
+ style: React.CSSProperties;
77
+ children?: React.ReactNode;
78
+ }) => React.ReactNode;
79
+ interface EmailNodeConfig<Options, Storage> extends NodeConfig$1<Options, Storage> {
80
+ renderToReactEmail: RendererComponent;
81
+ }
82
+ type ConfigParameter$1<Options, Storage> = Partial<Omit<EmailNodeConfig<Options, Storage>, 'renderToReactEmail'>> & Pick<EmailNodeConfig<Options, Storage>, 'renderToReactEmail'> & ThisType<{
83
+ name: string;
84
+ options: Options;
85
+ storage: Storage;
86
+ editor: Editor;
87
+ type: NodeType$1;
88
+ parent: (...args: any[]) => any;
89
+ }>;
90
+ declare class EmailNode<Options = Record<string, never>, Storage = Record<string, never>> extends Node$1<Options, Storage> {
91
+ config: EmailNodeConfig<Options, Storage>;
92
+ constructor(config: ConfigParameter$1<Options, Storage>);
93
+ /**
94
+ * Create a new Node instance
95
+ * @param config - Node configuration object or a function that returns a configuration object
96
+ */
97
+ static create<O = Record<string, never>, S = Record<string, never>>(config: ConfigParameter$1<O, S> | (() => ConfigParameter$1<O, S>)): EmailNode<O, S>;
98
+ static from<O, S>(node: Node$1<O, S>, renderToReactEmail: RendererComponent): EmailNode<O, S>;
99
+ configure(options?: Partial<Options>): EmailNode<Options, Storage>;
100
+ extend<ExtendedOptions = Options, ExtendedStorage = Storage, ExtendedConfig extends NodeConfig$1<ExtendedOptions, ExtendedStorage> = EmailNodeConfig<ExtendedOptions, ExtendedStorage>>(extendedConfig?: (() => Partial<ExtendedConfig>) | (Partial<ExtendedConfig> & ThisType<{
101
+ name: string;
102
+ options: ExtendedOptions;
103
+ storage: ExtendedStorage;
104
+ editor: Editor;
105
+ type: NodeType$1;
106
+ }>)): EmailNode<ExtendedOptions, ExtendedStorage>;
107
+ }
108
+ //#endregion
109
+ //#region src/core/create-paste-handler.d.ts
110
+ type PasteHandler = (payload: string | File, view: EditorView) => boolean;
111
+ type UploadImageHandler = (file: File, view: EditorView, pos: number, preserveAttributes?: {
112
+ width?: string;
113
+ height?: string;
114
+ alignment?: string;
115
+ href?: string;
116
+ }) => void | Promise<void>;
117
+ //#endregion
118
+ //#region src/core/use-editor.d.ts
119
+ type Merge<A, B> = A & Omit<B, keyof A>;
120
+ declare function useEditor({
121
+ content,
122
+ extensions,
123
+ onUpdate,
124
+ onPaste,
125
+ onUploadImage,
126
+ onReady,
127
+ editable,
128
+ ...rest
129
+ }: Merge<{
130
+ content: Content;
131
+ extensions?: Extensions;
132
+ onUpdate?: (editor: Editor, transaction: {
133
+ getMeta: (key: string) => unknown;
134
+ }) => void;
135
+ onPaste?: PasteHandler;
136
+ onUploadImage?: UploadImageHandler;
137
+ onReady?: (editor: Editor | null) => void;
138
+ editable?: boolean;
139
+ }, UseEditorOptions>): {
140
+ editor: Editor;
141
+ isEditorEmpty: boolean;
142
+ extensions: Extensions;
143
+ contentError: Error | null;
144
+ isCollaborative: boolean;
145
+ };
146
+ //#endregion
147
+ //#region src/extensions/alignment-attribute.d.ts
148
+ interface AlignmentOptions {
149
+ types: string[];
150
+ alignments: string[];
151
+ }
152
+ declare module '@tiptap/core' {
153
+ interface Commands<ReturnType> {
154
+ alignment: {
155
+ /**
156
+ * Set the text align attribute
157
+ */
158
+ setAlignment: (alignment: string) => ReturnType;
159
+ };
160
+ }
161
+ }
162
+ declare const AlignmentAttribute: Extension<AlignmentOptions, any>;
163
+ //#endregion
164
+ //#region src/extensions/body.d.ts
165
+ interface BodyOptions {
166
+ HTMLAttributes: Record<string, unknown>;
167
+ }
168
+ declare const Body: EmailNode<BodyOptions, Record<string, never>>;
169
+ //#endregion
170
+ //#region src/core/serializer/email-mark.d.ts
171
+ type SerializedMark = NonNullable<JSONContent['marks']>[number];
172
+ type RendererComponent$1 = (props: {
173
+ mark: SerializedMark;
174
+ node: JSONContent;
175
+ style: React.CSSProperties;
176
+ children?: React.ReactNode;
177
+ }) => React.ReactNode;
178
+ interface EmailMarkConfig<Options, Storage> extends MarkConfig<Options, Storage> {
179
+ renderToReactEmail: RendererComponent$1;
180
+ }
181
+ type ConfigParameter<Options, Storage> = Partial<Omit<EmailMarkConfig<Options, Storage>, 'renderToReactEmail'>> & Pick<EmailMarkConfig<Options, Storage>, 'renderToReactEmail'> & ThisType<{
182
+ name: string;
183
+ options: Options;
184
+ storage: Storage;
185
+ editor: Editor;
186
+ type: MarkType;
187
+ parent: (...args: any[]) => any;
188
+ }>;
189
+ declare class EmailMark<Options = Record<string, never>, Storage = Record<string, never>> extends Mark<Options, Storage> {
190
+ config: EmailMarkConfig<Options, Storage>;
191
+ constructor(config: ConfigParameter<Options, Storage>);
192
+ /**
193
+ * Create a new Mark instance
194
+ * @param config - Mark configuration object or a function that returns a configuration object
195
+ */
196
+ static create<O = Record<string, never>, S = Record<string, never>>(config: ConfigParameter<O, S> | (() => ConfigParameter<O, S>)): EmailMark<O, S>;
197
+ static from<O, S>(mark: Mark<O, S>, renderToReactEmail: RendererComponent$1): EmailMark<O, S>;
198
+ configure(options?: Partial<Options>): EmailMark<Options, Storage>;
199
+ extend<ExtendedOptions = Options, ExtendedStorage = Storage, ExtendedConfig extends MarkConfig<ExtendedOptions, ExtendedStorage> = EmailMarkConfig<ExtendedOptions, ExtendedStorage>>(extendedConfig?: (() => Partial<ExtendedConfig>) | (Partial<ExtendedConfig> & ThisType<{
200
+ name: string;
201
+ options: ExtendedOptions;
202
+ storage: ExtendedStorage;
203
+ editor: Editor;
204
+ type: MarkType;
205
+ }>)): EmailMark<ExtendedOptions, ExtendedStorage>;
206
+ }
207
+ //#endregion
208
+ //#region src/extensions/bold.d.ts
209
+ interface BoldOptions {
210
+ /**
211
+ * HTML attributes to add to the bold element.
212
+ * @default {}
213
+ * @example { class: 'foo' }
214
+ */
215
+ HTMLAttributes: Record<string, unknown>;
216
+ }
217
+ declare module '@tiptap/core' {
218
+ interface Commands<ReturnType> {
219
+ bold: {
220
+ /**
221
+ * Set a bold mark
222
+ */
223
+ setBold: () => ReturnType;
224
+ /**
225
+ * Toggle a bold mark
226
+ */
227
+ toggleBold: () => ReturnType;
228
+ /**
229
+ * Unset a bold mark
230
+ */
231
+ unsetBold: () => ReturnType;
232
+ };
233
+ }
234
+ }
235
+ /**
236
+ * This extension allows you to mark text as bold.
237
+ * @see https://tiptap.dev/api/marks/bold
238
+ */
239
+ declare const Bold: EmailMark<BoldOptions, Record<string, never>>;
240
+ //#endregion
241
+ //#region src/extensions/button.d.ts
242
+ interface EditorButtonOptions {
243
+ HTMLAttributes: Record<string, unknown>;
244
+ [key: string]: unknown;
245
+ }
246
+ declare module '@tiptap/core' {
247
+ interface Commands<ReturnType> {
248
+ button: {
249
+ setButton: () => ReturnType;
250
+ updateButton: (attributes: Record<string, unknown>) => ReturnType;
251
+ };
252
+ }
253
+ }
254
+ declare const Button: EmailNode<EditorButtonOptions, Record<string, never>>;
255
+ //#endregion
256
+ //#region src/extensions/class-attribute.d.ts
257
+ interface ClassAttributeOptions {
258
+ types: string[];
259
+ class: string[];
260
+ }
261
+ declare module '@tiptap/core' {
262
+ interface Commands<ReturnType> {
263
+ class: {
264
+ /**
265
+ * Set the class attribute
266
+ */
267
+ setClass: (classList: string) => ReturnType;
268
+ /**
269
+ * Unset the class attribute
270
+ */
271
+ unsetClass: () => ReturnType;
272
+ };
273
+ }
274
+ }
275
+ declare const ClassAttribute: Extension<ClassAttributeOptions, any>;
276
+ //#endregion
277
+ //#region src/extensions/code-block.d.ts
278
+ interface CodeBlockPrismOptions extends CodeBlockOptions {
279
+ defaultLanguage: string;
280
+ defaultTheme: string;
281
+ }
282
+ declare const CodeBlockPrism: EmailNode<CodeBlockPrismOptions, any>;
283
+ //#endregion
284
+ //#region src/extensions/div.d.ts
285
+ interface DivOptions {
286
+ HTMLAttributes: Record<string, unknown>;
287
+ }
288
+ declare const Div: EmailNode<DivOptions, Record<string, never>>;
289
+ //#endregion
290
+ //#region src/extensions/divider.d.ts
291
+ type DividerOptions = HorizontalRuleOptions;
292
+ declare const Divider: EmailNode<HorizontalRuleOptions, any>;
293
+ //#endregion
294
+ //#region src/extensions/global-content.d.ts
295
+ interface GlobalContentOptions {
296
+ key: string;
297
+ data: Record<string, unknown>;
298
+ }
299
+ declare module '@tiptap/core' {
300
+ interface GlobalContent<ReturnType> {
301
+ setGlobalContent: (key: string, value: unknown) => ReturnType;
302
+ }
303
+ interface Commands<ReturnType> {
304
+ globalContent: GlobalContent<ReturnType>;
305
+ }
306
+ }
307
+ declare function getGlobalContent(key: string, editor: Editor): unknown | null;
308
+ declare const GlobalContent: Node$1<GlobalContentOptions, any>;
309
+ //#endregion
310
+ //#region src/extensions/heading.d.ts
311
+ type HeadingOptions = HeadingOptions$1;
312
+ declare const Heading: EmailNode<HeadingOptions$1, any>;
313
+ //#endregion
314
+ //#region src/extensions/link.d.ts
315
+ type LinkOptions = LinkOptions$1;
316
+ declare const Link: EmailMark<LinkOptions$1, any>;
317
+ //#endregion
318
+ //#region src/extensions/max-nesting.d.ts
319
+ interface MaxNestingOptions {
320
+ maxDepth: number;
321
+ nodeTypes?: string[];
322
+ }
323
+ declare const MaxNesting: Extension<MaxNestingOptions, any>;
324
+ //#endregion
325
+ //#region src/extensions/placeholder.d.ts
326
+ interface PlaceholderOptions {
327
+ placeholder?: string | ((props: {
328
+ node: Node;
329
+ }) => string);
330
+ includeChildren?: boolean;
331
+ }
332
+ declare const Placeholder: Extension<PlaceholderOptions$1, any>;
333
+ //#endregion
334
+ //#region src/extensions/preview-text.d.ts
335
+ interface PreviewTextOptions {
336
+ HTMLAttributes: Record<string, unknown>;
337
+ }
338
+ declare const PreviewText: Node$1<PreviewTextOptions, any>;
339
+ //#endregion
340
+ //#region src/extensions/section.d.ts
341
+ interface SectionOptions {
342
+ HTMLAttributes: Record<string, unknown>;
343
+ [key: string]: unknown;
344
+ }
345
+ declare module '@tiptap/core' {
346
+ interface Commands<ReturnType> {
347
+ section: {
348
+ insertSection: () => ReturnType;
349
+ };
350
+ }
351
+ }
352
+ declare const Section: EmailNode<SectionOptions, Record<string, never>>;
353
+ //#endregion
354
+ //#region src/extensions/style-attribute.d.ts
355
+ interface StyleAttributeOptions {
356
+ types: string[];
357
+ style: string[];
358
+ }
359
+ declare module '@tiptap/core' {
360
+ interface Commands<ReturnType> {
361
+ textAlign: {
362
+ /**
363
+ * Set the style attribute
364
+ */
365
+ setStyle: (style: string) => ReturnType;
366
+ /**
367
+ * Unset the style attribute
368
+ */
369
+ unsetStyle: () => ReturnType;
370
+ };
371
+ }
372
+ }
373
+ declare const StyleAttribute: Extension<StyleAttributeOptions, any>;
374
+ //#endregion
375
+ //#region src/extensions/sup.d.ts
376
+ interface SupOptions {
377
+ /**
378
+ * HTML attributes to add to the sup element.
379
+ * @default {}
380
+ * @example { class: 'foo' }
381
+ */
382
+ HTMLAttributes: Record<string, unknown>;
383
+ }
384
+ declare module '@tiptap/core' {
385
+ interface Commands<ReturnType> {
386
+ sup: {
387
+ /**
388
+ * Set a superscript mark
389
+ */
390
+ setSup: () => ReturnType;
391
+ /**
392
+ * Toggle a superscript mark
393
+ */
394
+ toggleSup: () => ReturnType;
395
+ /**
396
+ * Unset a superscript mark
397
+ */
398
+ unsetSup: () => ReturnType;
399
+ };
400
+ }
401
+ }
402
+ /**
403
+ * This extension allows you to mark text as superscript.
404
+ * @see https://tiptap.dev/api/marks/superscript
405
+ */
406
+ declare const Sup: EmailMark<SupOptions, Record<string, never>>;
407
+ //#endregion
408
+ //#region src/extensions/table.d.ts
409
+ declare module '@tiptap/core' {
410
+ interface NodeConfig<Options, Storage> {
411
+ /**
412
+ * A string or function to determine the role of the table.
413
+ * @default 'table'
414
+ * @example () => 'table'
415
+ */
416
+ tableRole?: string | ((this: {
417
+ name: string;
418
+ options: Options;
419
+ storage: Storage;
420
+ parent: ParentConfig<NodeConfig<Options>>['tableRole'];
421
+ }) => string);
422
+ }
423
+ }
424
+ interface TableOptions {
425
+ HTMLAttributes: Record<string, unknown>;
426
+ }
427
+ declare const Table: EmailNode<TableOptions, Record<string, never>>;
428
+ interface TableRowOptions extends Record<string, unknown> {
429
+ HTMLAttributes?: Record<string, unknown>;
430
+ }
431
+ declare const TableRow: EmailNode<TableRowOptions, Record<string, never>>;
432
+ interface TableCellOptions extends Record<string, unknown> {
433
+ HTMLAttributes?: Record<string, unknown>;
434
+ }
435
+ declare const TableCell: EmailNode<TableCellOptions, Record<string, never>>;
436
+ declare const TableHeader: Node$1<any, any>;
437
+ //#endregion
438
+ //#region src/extensions/uppercase.d.ts
439
+ interface UppercaseOptions {
440
+ HTMLAttributes: Record<string, unknown>;
441
+ }
442
+ declare module '@tiptap/core' {
443
+ interface Commands<ReturnType> {
444
+ uppercase: {
445
+ setUppercase: () => ReturnType;
446
+ toggleUppercase: () => ReturnType;
447
+ unsetUppercase: () => ReturnType;
448
+ };
449
+ }
450
+ }
451
+ declare const Uppercase: EmailMark<UppercaseOptions, Record<string, never>>;
452
+ //#endregion
453
+ //#region src/extensions/blockquote.d.ts
454
+ declare const Blockquote: EmailNode<BlockquoteOptions, any>;
455
+ //#endregion
456
+ //#region src/extensions/bullet-list.d.ts
457
+ declare const BulletList: EmailNode<BulletListOptions, any>;
458
+ //#endregion
459
+ //#region src/extensions/code.d.ts
460
+ declare const Code: EmailMark<CodeOptions, any>;
461
+ //#endregion
462
+ //#region src/extensions/columns.d.ts
463
+ declare module '@tiptap/core' {
464
+ interface Commands<ReturnType> {
465
+ columns: {
466
+ insertColumns: (count: 2 | 3 | 4) => ReturnType;
467
+ };
468
+ }
469
+ }
470
+ declare const COLUMN_PARENT_TYPES: readonly ["twoColumns", "threeColumns", "fourColumns"];
471
+ declare const MAX_COLUMNS_DEPTH = 3;
472
+ declare function getColumnsDepth(doc: Node, from: number): number;
473
+ declare const TwoColumns: EmailNode<Record<string, never>, Record<string, never>>;
474
+ declare const ThreeColumns: EmailNode<Record<string, never>, Record<string, never>>;
475
+ declare const FourColumns: EmailNode<Record<string, never>, Record<string, never>>;
476
+ declare const ColumnsColumn: EmailNode<Record<string, never>, Record<string, never>>;
477
+ //#endregion
478
+ //#region src/extensions/hard-break.d.ts
479
+ declare const HardBreak: EmailNode<HardBreakOptions, any>;
480
+ //#endregion
481
+ //#region src/extensions/italic.d.ts
482
+ declare const Italic: EmailMark<ItalicOptions, any>;
483
+ //#endregion
484
+ //#region src/extensions/list-item.d.ts
485
+ declare const ListItem: EmailNode<ListItemOptions, any>;
486
+ //#endregion
487
+ //#region src/extensions/ordered-list.d.ts
488
+ declare const OrderedList: EmailNode<OrderedListOptions, any>;
489
+ //#endregion
490
+ //#region src/extensions/paragraph.d.ts
491
+ declare const Paragraph: EmailNode<ParagraphOptions, any>;
492
+ //#endregion
493
+ //#region src/extensions/preserved-style.d.ts
494
+ declare const PreservedStyle: EmailMark<Record<string, never>, Record<string, never>>;
495
+ /**
496
+ * Processes styles when unlinking:
497
+ * - Has background (button-like): preserve all styles
498
+ * - No background: strip link-indicator styles (color, text-decoration), keep the rest
499
+ */
500
+ declare function processStylesForUnlink(styleString: string | null | undefined): string | null;
501
+ //#endregion
502
+ //#region src/extensions/strike.d.ts
503
+ declare const Strike: EmailMark<StrikeOptions, any>;
504
+ //#endregion
505
+ //#region src/extensions/index.d.ts
506
+ type StarterKitOptions = {
507
+ CodeBlockPrism: Partial<CodeBlockPrismOptions> | false;
508
+ Code: Partial<CodeOptions> | false;
509
+ Paragraph: Partial<ParagraphOptions> | false;
510
+ BulletList: Partial<BulletListOptions> | false;
511
+ OrderedList: Partial<OrderedListOptions> | false;
512
+ Blockquote: Partial<BlockquoteOptions> | false;
513
+ ListItem: Partial<ListItemOptions> | false;
514
+ HardBreak: Partial<HardBreakOptions> | false;
515
+ Italic: Partial<ItalicOptions> | false;
516
+ Placeholder: Partial<PlaceholderOptions> | false;
517
+ PreviewText: Partial<PreviewTextOptions> | false;
518
+ Bold: Partial<BoldOptions> | false;
519
+ Strike: Partial<StrikeOptions> | false;
520
+ Heading: Partial<HeadingOptions> | false;
521
+ Divider: Partial<DividerOptions> | false;
522
+ Link: Partial<LinkOptions> | false;
523
+ Sup: Partial<SupOptions> | false;
524
+ Uppercase: Partial<UppercaseOptions> | false;
525
+ PreservedStyle: Partial<Record<string, never>> | false;
526
+ Table: Partial<TableOptions> | false;
527
+ TableRow: Partial<TableRowOptions> | false;
528
+ TableCell: Partial<TableCellOptions> | false;
529
+ TableHeader: Partial<Record<string, any>> | false;
530
+ Body: Partial<BodyOptions> | false;
531
+ Div: Partial<DivOptions> | false;
532
+ Button: Partial<EditorButtonOptions> | false;
533
+ Section: Partial<SectionOptions> | false;
534
+ GlobalContent: Partial<GlobalContentOptions> | false;
535
+ AlignmentAttribute: Partial<AlignmentOptions> | false;
536
+ StyleAttribute: Partial<StyleAttributeOptions> | false;
537
+ ClassAttribute: Partial<ClassAttributeOptions> | false;
538
+ MaxNesting: Partial<MaxNestingOptions> | false;
539
+ TiptapStarterKit: Partial<StarterKitOptions$1> | false;
540
+ };
541
+ declare const StarterKit: Extension<StarterKitOptions, any>;
542
+ //#endregion
543
+ //#region src/ui/bubble-menu/create-mark-bubble-item.d.ts
544
+ interface PreWiredItemProps {
545
+ className?: string;
546
+ /** Override the default icon */
547
+ children?: React$1.ReactNode;
548
+ }
549
+ //#endregion
550
+ //#region src/ui/bubble-menu/align-center.d.ts
551
+ declare function BubbleMenuAlignCenter({
552
+ className,
553
+ children
554
+ }: PreWiredItemProps): react_jsx_runtime6.JSX.Element;
555
+ //#endregion
556
+ //#region src/ui/bubble-menu/align-left.d.ts
557
+ declare function BubbleMenuAlignLeft({
558
+ className,
559
+ children
560
+ }: PreWiredItemProps): react_jsx_runtime6.JSX.Element;
561
+ //#endregion
562
+ //#region src/ui/bubble-menu/align-right.d.ts
563
+ declare function BubbleMenuAlignRight({
564
+ className,
565
+ children
566
+ }: PreWiredItemProps): react_jsx_runtime6.JSX.Element;
567
+ //#endregion
568
+ //#region src/ui/bubble-menu/default.d.ts
569
+ type ExcludableItem$3 = 'bold' | 'italic' | 'underline' | 'strike' | 'code' | 'uppercase' | 'align-left' | 'align-center' | 'align-right' | 'node-selector' | 'link-selector';
570
+ interface BubbleMenuDefaultProps {
571
+ /** Items to exclude from the default layout */
572
+ excludeItems?: ExcludableItem$3[];
573
+ /** Node types that should NOT trigger the bubble menu (forwarded to Root) */
574
+ excludeNodes?: string[];
575
+ /** Placement relative to selection (forwarded to Root, default: 'bottom') */
576
+ placement?: 'top' | 'bottom';
577
+ /** Offset from selection in px (forwarded to Root, default: 8) */
578
+ offset?: number;
579
+ /** Called when the bubble menu hides (forwarded to Root) */
580
+ onHide?: () => void;
581
+ /** className applied to the Root wrapper */
582
+ className?: string;
583
+ }
584
+ declare function BubbleMenuDefault({
585
+ excludeItems,
586
+ excludeNodes,
587
+ placement,
588
+ offset,
589
+ onHide,
590
+ className
591
+ }: BubbleMenuDefaultProps): react_jsx_runtime6.JSX.Element;
592
+ //#endregion
593
+ //#region src/ui/bubble-menu/group.d.ts
594
+ interface BubbleMenuItemGroupProps {
595
+ className?: string;
596
+ children: React$1.ReactNode;
597
+ }
598
+ declare function BubbleMenuItemGroup({
599
+ className,
600
+ children
601
+ }: BubbleMenuItemGroupProps): react_jsx_runtime6.JSX.Element;
602
+ //#endregion
603
+ //#region src/ui/bubble-menu/item.d.ts
604
+ interface BubbleMenuItemProps extends React$1.ComponentProps<'button'> {
605
+ /** Used for aria-label and data-item attribute */
606
+ name: string;
607
+ /** Whether this item is currently active */
608
+ isActive: boolean;
609
+ /** Called when clicked */
610
+ onCommand: () => void;
611
+ }
612
+ declare function BubbleMenuItem({
613
+ name,
614
+ isActive,
615
+ onCommand,
616
+ className,
617
+ children,
618
+ ...rest
619
+ }: BubbleMenuItemProps): react_jsx_runtime6.JSX.Element;
620
+ //#endregion
621
+ //#region src/ui/bubble-menu/link-selector.d.ts
622
+ interface BubbleMenuLinkSelectorProps {
623
+ className?: string;
624
+ /** Whether to show the link icon toggle button (default: true) */
625
+ showToggle?: boolean;
626
+ /** Custom URL validator. Return the valid URL string or null. */
627
+ validateUrl?: (value: string) => string | null;
628
+ /** Called after link is applied */
629
+ onLinkApply?: (href: string) => void;
630
+ /** Called after link is removed */
631
+ onLinkRemove?: () => void;
632
+ /** Plugin slot: extra actions rendered inside the link input form */
633
+ children?: React$1.ReactNode;
634
+ /** Controlled open state */
635
+ open?: boolean;
636
+ /** Called when open state changes */
637
+ onOpenChange?: (open: boolean) => void;
638
+ }
639
+ declare function BubbleMenuLinkSelector({
640
+ className,
641
+ showToggle,
642
+ validateUrl,
643
+ onLinkApply,
644
+ onLinkRemove,
645
+ children,
646
+ open: controlledOpen,
647
+ onOpenChange
648
+ }: BubbleMenuLinkSelectorProps): react_jsx_runtime6.JSX.Element | null;
649
+ //#endregion
650
+ //#region src/ui/bubble-menu/node-selector.d.ts
651
+ type NodeType = 'Text' | 'Title' | 'Subtitle' | 'Heading' | 'Bullet List' | 'Numbered List' | 'Quote' | 'Code';
652
+ interface NodeSelectorItem {
653
+ name: NodeType;
654
+ icon: React$1.ComponentType<React$1.SVGAttributes<SVGSVGElement>>;
655
+ command: () => void;
656
+ isActive: boolean;
657
+ }
658
+ interface NodeSelectorRootProps {
659
+ /** Block types to exclude */
660
+ omit?: string[];
661
+ /** Controlled open state */
662
+ open?: boolean;
663
+ /** Called when open state changes */
664
+ onOpenChange?: (open: boolean) => void;
665
+ className?: string;
666
+ children: React$1.ReactNode;
667
+ }
668
+ declare function NodeSelectorRoot({
669
+ omit,
670
+ open: controlledOpen,
671
+ onOpenChange,
672
+ className,
673
+ children
674
+ }: NodeSelectorRootProps): react_jsx_runtime6.JSX.Element | null;
675
+ interface NodeSelectorTriggerProps {
676
+ className?: string;
677
+ children?: React$1.ReactNode;
678
+ }
679
+ declare function NodeSelectorTrigger({
680
+ className,
681
+ children
682
+ }: NodeSelectorTriggerProps): react_jsx_runtime6.JSX.Element;
683
+ interface NodeSelectorContentProps {
684
+ className?: string;
685
+ /** Popover alignment (default: "start") */
686
+ align?: 'start' | 'center' | 'end';
687
+ /** Render-prop for full control over item rendering.
688
+ * Receives the filtered items and a `close` function to dismiss the popover. */
689
+ children?: (items: NodeSelectorItem[], close: () => void) => React$1.ReactNode;
690
+ }
691
+ declare function NodeSelectorContent({
692
+ className,
693
+ align,
694
+ children
695
+ }: NodeSelectorContentProps): react_jsx_runtime6.JSX.Element;
696
+ interface BubbleMenuNodeSelectorProps {
697
+ /** Block types to exclude */
698
+ omit?: string[];
699
+ className?: string;
700
+ /** Override the trigger content (default: active item name + chevron icon) */
701
+ triggerContent?: React$1.ReactNode;
702
+ /** Controlled open state */
703
+ open?: boolean;
704
+ /** Called when open state changes */
705
+ onOpenChange?: (open: boolean) => void;
706
+ }
707
+ declare function BubbleMenuNodeSelector({
708
+ omit,
709
+ className,
710
+ triggerContent,
711
+ open,
712
+ onOpenChange
713
+ }: BubbleMenuNodeSelectorProps): react_jsx_runtime6.JSX.Element;
714
+ //#endregion
715
+ //#region src/ui/bubble-menu/root.d.ts
716
+ interface BubbleMenuRootProps {
717
+ /** Node types that should NOT trigger the bubble menu */
718
+ excludeNodes?: string[];
719
+ /** Placement relative to selection */
720
+ placement?: 'top' | 'bottom';
721
+ /** Offset from selection in px */
722
+ offset?: number;
723
+ /** Called when the bubble menu is hidden (e.g., click outside, selection cleared) */
724
+ onHide?: () => void;
725
+ /** Additional className on the outer wrapper */
726
+ className?: string;
727
+ children: React$1.ReactNode;
728
+ }
729
+ declare function BubbleMenuRoot({
730
+ excludeNodes,
731
+ placement,
732
+ offset,
733
+ onHide,
734
+ className,
735
+ children
736
+ }: BubbleMenuRootProps): react_jsx_runtime6.JSX.Element | null;
737
+ //#endregion
738
+ //#region src/ui/bubble-menu/separator.d.ts
739
+ interface BubbleMenuSeparatorProps {
740
+ className?: string;
741
+ }
742
+ declare function BubbleMenuSeparator({
743
+ className
744
+ }: BubbleMenuSeparatorProps): react_jsx_runtime6.JSX.Element;
745
+ //#endregion
746
+ //#region src/ui/bubble-menu/bold.d.ts
747
+ declare const BubbleMenuBold: {
748
+ ({
749
+ className,
750
+ children
751
+ }: PreWiredItemProps): react_jsx_runtime6.JSX.Element;
752
+ displayName: string;
753
+ };
754
+ //#endregion
755
+ //#region src/ui/bubble-menu/code.d.ts
756
+ declare const BubbleMenuCode: {
757
+ ({
758
+ className,
759
+ children
760
+ }: PreWiredItemProps): react_jsx_runtime6.JSX.Element;
761
+ displayName: string;
762
+ };
763
+ //#endregion
764
+ //#region src/ui/bubble-menu/italic.d.ts
765
+ declare const BubbleMenuItalic: {
766
+ ({
767
+ className,
768
+ children
769
+ }: PreWiredItemProps): react_jsx_runtime6.JSX.Element;
770
+ displayName: string;
771
+ };
772
+ //#endregion
773
+ //#region src/ui/bubble-menu/strike.d.ts
774
+ declare const BubbleMenuStrike: {
775
+ ({
776
+ className,
777
+ children
778
+ }: PreWiredItemProps): react_jsx_runtime6.JSX.Element;
779
+ displayName: string;
780
+ };
781
+ //#endregion
782
+ //#region src/ui/bubble-menu/underline.d.ts
783
+ declare const BubbleMenuUnderline: {
784
+ ({
785
+ className,
786
+ children
787
+ }: PreWiredItemProps): react_jsx_runtime6.JSX.Element;
788
+ displayName: string;
789
+ };
790
+ //#endregion
791
+ //#region src/ui/bubble-menu/uppercase.d.ts
792
+ declare const BubbleMenuUppercase: {
793
+ ({
794
+ className,
795
+ children
796
+ }: PreWiredItemProps): react_jsx_runtime6.JSX.Element;
797
+ displayName: string;
798
+ };
799
+ //#endregion
800
+ //#region src/ui/bubble-menu/index.d.ts
801
+ declare const BubbleMenu: {
802
+ readonly Root: typeof BubbleMenuRoot;
803
+ readonly ItemGroup: typeof BubbleMenuItemGroup;
804
+ readonly Separator: typeof BubbleMenuSeparator;
805
+ readonly Item: typeof BubbleMenuItem;
806
+ readonly Bold: {
807
+ ({
808
+ className,
809
+ children
810
+ }: PreWiredItemProps): react_jsx_runtime6.JSX.Element;
811
+ displayName: string;
812
+ };
813
+ readonly Italic: {
814
+ ({
815
+ className,
816
+ children
817
+ }: PreWiredItemProps): react_jsx_runtime6.JSX.Element;
818
+ displayName: string;
819
+ };
820
+ readonly Underline: {
821
+ ({
822
+ className,
823
+ children
824
+ }: PreWiredItemProps): react_jsx_runtime6.JSX.Element;
825
+ displayName: string;
826
+ };
827
+ readonly Strike: {
828
+ ({
829
+ className,
830
+ children
831
+ }: PreWiredItemProps): react_jsx_runtime6.JSX.Element;
832
+ displayName: string;
833
+ };
834
+ readonly Code: {
835
+ ({
836
+ className,
837
+ children
838
+ }: PreWiredItemProps): react_jsx_runtime6.JSX.Element;
839
+ displayName: string;
840
+ };
841
+ readonly Uppercase: {
842
+ ({
843
+ className,
844
+ children
845
+ }: PreWiredItemProps): react_jsx_runtime6.JSX.Element;
846
+ displayName: string;
847
+ };
848
+ readonly AlignLeft: typeof BubbleMenuAlignLeft;
849
+ readonly AlignCenter: typeof BubbleMenuAlignCenter;
850
+ readonly AlignRight: typeof BubbleMenuAlignRight;
851
+ readonly NodeSelector: typeof BubbleMenuNodeSelector & {
852
+ Root: typeof NodeSelectorRoot;
853
+ Trigger: typeof NodeSelectorTrigger;
854
+ Content: typeof NodeSelectorContent;
855
+ };
856
+ readonly LinkSelector: typeof BubbleMenuLinkSelector;
857
+ readonly Default: typeof BubbleMenuDefault;
858
+ };
859
+ //#endregion
860
+ //#region src/ui/button-bubble-menu/default.d.ts
861
+ type ExcludableItem$2 = 'edit-link';
862
+ interface ButtonBubbleMenuDefaultProps {
863
+ excludeItems?: ExcludableItem$2[];
864
+ placement?: 'top' | 'bottom';
865
+ offset?: number;
866
+ onHide?: () => void;
867
+ className?: string;
868
+ }
869
+ declare function ButtonBubbleMenuDefault({
870
+ excludeItems,
871
+ placement,
872
+ offset,
873
+ onHide,
874
+ className
875
+ }: ButtonBubbleMenuDefaultProps): react_jsx_runtime6.JSX.Element;
876
+ //#endregion
877
+ //#region src/ui/button-bubble-menu/edit-link.d.ts
878
+ interface ButtonBubbleMenuEditLinkProps extends Omit<React$1.ComponentProps<'button'>, 'type'> {}
879
+ declare function ButtonBubbleMenuEditLink({
880
+ className,
881
+ children,
882
+ onClick,
883
+ onMouseDown,
884
+ ...rest
885
+ }: ButtonBubbleMenuEditLinkProps): react_jsx_runtime6.JSX.Element;
886
+ //#endregion
887
+ //#region src/ui/button-bubble-menu/root.d.ts
888
+ interface ButtonBubbleMenuRootProps {
889
+ /** Called when the bubble menu hides */
890
+ onHide?: () => void;
891
+ /** Placement relative to cursor (default: 'top') */
892
+ placement?: 'top' | 'bottom';
893
+ /** Offset from cursor in px (default: 8) */
894
+ offset?: number;
895
+ /** className on the outer wrapper */
896
+ className?: string;
897
+ children: React$1.ReactNode;
898
+ }
899
+ declare function ButtonBubbleMenuRoot({
900
+ onHide,
901
+ placement,
902
+ offset,
903
+ className,
904
+ children
905
+ }: ButtonBubbleMenuRootProps): react_jsx_runtime6.JSX.Element | null;
906
+ //#endregion
907
+ //#region src/ui/button-bubble-menu/toolbar.d.ts
908
+ interface ButtonBubbleMenuToolbarProps extends React$1.ComponentProps<'div'> {}
909
+ declare function ButtonBubbleMenuToolbar({
910
+ children,
911
+ ...rest
912
+ }: ButtonBubbleMenuToolbarProps): react_jsx_runtime6.JSX.Element | null;
913
+ //#endregion
914
+ //#region src/ui/button-bubble-menu/context.d.ts
915
+ interface ButtonBubbleMenuContextValue {
916
+ editor: Editor;
917
+ isEditing: boolean;
918
+ setIsEditing: (value: boolean) => void;
919
+ }
920
+ declare function useButtonBubbleMenuContext(): ButtonBubbleMenuContextValue;
921
+ //#endregion
922
+ //#region src/ui/button-bubble-menu/index.d.ts
923
+ declare const ButtonBubbleMenu: {
924
+ readonly Root: typeof ButtonBubbleMenuRoot;
925
+ readonly Toolbar: typeof ButtonBubbleMenuToolbar;
926
+ readonly EditLink: typeof ButtonBubbleMenuEditLink;
927
+ readonly Default: typeof ButtonBubbleMenuDefault;
928
+ };
929
+ //#endregion
930
+ //#region src/ui/image-bubble-menu/default.d.ts
931
+ type ExcludableItem$1 = 'edit-link';
932
+ interface ImageBubbleMenuDefaultProps {
933
+ excludeItems?: ExcludableItem$1[];
934
+ placement?: 'top' | 'bottom';
935
+ offset?: number;
936
+ onHide?: () => void;
937
+ className?: string;
938
+ }
939
+ declare function ImageBubbleMenuDefault({
940
+ excludeItems,
941
+ placement,
942
+ offset,
943
+ onHide,
944
+ className
945
+ }: ImageBubbleMenuDefaultProps): react_jsx_runtime6.JSX.Element;
946
+ //#endregion
947
+ //#region src/ui/image-bubble-menu/edit-link.d.ts
948
+ interface ImageBubbleMenuEditLinkProps extends Omit<React$1.ComponentProps<'button'>, 'type'> {}
949
+ declare function ImageBubbleMenuEditLink({
950
+ className,
951
+ children,
952
+ onClick,
953
+ onMouseDown,
954
+ ...rest
955
+ }: ImageBubbleMenuEditLinkProps): react_jsx_runtime6.JSX.Element;
956
+ //#endregion
957
+ //#region src/ui/image-bubble-menu/root.d.ts
958
+ interface ImageBubbleMenuRootProps {
959
+ /** Called when the bubble menu hides */
960
+ onHide?: () => void;
961
+ /** Placement relative to cursor (default: 'top') */
962
+ placement?: 'top' | 'bottom';
963
+ /** Offset from cursor in px (default: 8) */
964
+ offset?: number;
965
+ /** className on the outer wrapper */
966
+ className?: string;
967
+ children: React$1.ReactNode;
968
+ }
969
+ declare function ImageBubbleMenuRoot({
970
+ onHide,
971
+ placement,
972
+ offset,
973
+ className,
974
+ children
975
+ }: ImageBubbleMenuRootProps): react_jsx_runtime6.JSX.Element | null;
976
+ //#endregion
977
+ //#region src/ui/image-bubble-menu/toolbar.d.ts
978
+ interface ImageBubbleMenuToolbarProps extends React$1.ComponentProps<'div'> {}
979
+ declare function ImageBubbleMenuToolbar({
980
+ children,
981
+ ...rest
982
+ }: ImageBubbleMenuToolbarProps): react_jsx_runtime6.JSX.Element | null;
983
+ //#endregion
984
+ //#region src/ui/image-bubble-menu/context.d.ts
985
+ interface ImageBubbleMenuContextValue {
986
+ editor: Editor;
987
+ isEditing: boolean;
988
+ setIsEditing: (value: boolean) => void;
989
+ }
990
+ declare function useImageBubbleMenuContext(): ImageBubbleMenuContextValue;
991
+ //#endregion
992
+ //#region src/ui/image-bubble-menu/index.d.ts
993
+ declare const ImageBubbleMenu: {
994
+ readonly Root: typeof ImageBubbleMenuRoot;
995
+ readonly Toolbar: typeof ImageBubbleMenuToolbar;
996
+ readonly EditLink: typeof ImageBubbleMenuEditLink;
997
+ readonly Default: typeof ImageBubbleMenuDefault;
998
+ };
999
+ //#endregion
1000
+ //#region src/ui/link-bubble-menu/default.d.ts
1001
+ type ExcludableItem = 'edit-link' | 'open-link' | 'unlink';
1002
+ interface LinkBubbleMenuDefaultProps {
1003
+ excludeItems?: ExcludableItem[];
1004
+ placement?: 'top' | 'bottom';
1005
+ offset?: number;
1006
+ onHide?: () => void;
1007
+ className?: string;
1008
+ validateUrl?: (value: string) => string | null;
1009
+ onLinkApply?: (href: string) => void;
1010
+ onLinkRemove?: () => void;
1011
+ }
1012
+ declare function LinkBubbleMenuDefault({
1013
+ excludeItems,
1014
+ placement,
1015
+ offset,
1016
+ onHide,
1017
+ className,
1018
+ validateUrl,
1019
+ onLinkApply,
1020
+ onLinkRemove
1021
+ }: LinkBubbleMenuDefaultProps): react_jsx_runtime6.JSX.Element;
1022
+ //#endregion
1023
+ //#region src/ui/link-bubble-menu/edit-link.d.ts
1024
+ interface LinkBubbleMenuEditLinkProps extends Omit<React$1.ComponentProps<'button'>, 'type'> {}
1025
+ declare function LinkBubbleMenuEditLink({
1026
+ className,
1027
+ children,
1028
+ onClick,
1029
+ onMouseDown,
1030
+ ...rest
1031
+ }: LinkBubbleMenuEditLinkProps): react_jsx_runtime6.JSX.Element;
1032
+ //#endregion
1033
+ //#region src/ui/link-bubble-menu/form.d.ts
1034
+ interface LinkBubbleMenuFormProps {
1035
+ className?: string;
1036
+ /** Custom URL validator (default: getUrlFromString) */
1037
+ validateUrl?: (value: string) => string | null;
1038
+ /** Called after link is applied */
1039
+ onLinkApply?: (href: string) => void;
1040
+ /** Called after link is removed */
1041
+ onLinkRemove?: () => void;
1042
+ /** Extra content inside the form (e.g. a variables dropdown slot) */
1043
+ children?: React$1.ReactNode;
1044
+ }
1045
+ declare function LinkBubbleMenuForm({
1046
+ className,
1047
+ validateUrl,
1048
+ onLinkApply,
1049
+ onLinkRemove,
1050
+ children
1051
+ }: LinkBubbleMenuFormProps): react_jsx_runtime6.JSX.Element | null;
1052
+ //#endregion
1053
+ //#region src/ui/link-bubble-menu/open-link.d.ts
1054
+ interface LinkBubbleMenuOpenLinkProps extends Omit<React$1.ComponentProps<'a'>, 'href' | 'target' | 'rel'> {}
1055
+ declare function LinkBubbleMenuOpenLink({
1056
+ className,
1057
+ children,
1058
+ ...rest
1059
+ }: LinkBubbleMenuOpenLinkProps): react_jsx_runtime6.JSX.Element;
1060
+ //#endregion
1061
+ //#region src/ui/link-bubble-menu/root.d.ts
1062
+ interface LinkBubbleMenuRootProps {
1063
+ /** Called when the bubble menu hides */
1064
+ onHide?: () => void;
1065
+ /** Placement relative to cursor (default: 'top') */
1066
+ placement?: 'top' | 'bottom';
1067
+ /** Offset from cursor in px (default: 8) */
1068
+ offset?: number;
1069
+ /** className on the outer wrapper */
1070
+ className?: string;
1071
+ children: React$1.ReactNode;
1072
+ }
1073
+ declare function LinkBubbleMenuRoot({
1074
+ onHide,
1075
+ placement,
1076
+ offset,
1077
+ className,
1078
+ children
1079
+ }: LinkBubbleMenuRootProps): react_jsx_runtime6.JSX.Element | null;
1080
+ //#endregion
1081
+ //#region src/ui/link-bubble-menu/toolbar.d.ts
1082
+ interface LinkBubbleMenuToolbarProps extends React$1.ComponentProps<'div'> {}
1083
+ declare function LinkBubbleMenuToolbar({
1084
+ children,
1085
+ ...rest
1086
+ }: LinkBubbleMenuToolbarProps): react_jsx_runtime6.JSX.Element | null;
1087
+ //#endregion
1088
+ //#region src/ui/link-bubble-menu/unlink.d.ts
1089
+ interface LinkBubbleMenuUnlinkProps extends Omit<React$1.ComponentProps<'button'>, 'type'> {}
1090
+ declare function LinkBubbleMenuUnlink({
1091
+ className,
1092
+ children,
1093
+ onClick,
1094
+ onMouseDown,
1095
+ ...rest
1096
+ }: LinkBubbleMenuUnlinkProps): react_jsx_runtime6.JSX.Element;
1097
+ //#endregion
1098
+ //#region src/ui/link-bubble-menu/context.d.ts
1099
+ interface LinkBubbleMenuContextValue {
1100
+ editor: Editor;
1101
+ linkHref: string;
1102
+ isEditing: boolean;
1103
+ setIsEditing: (value: boolean) => void;
1104
+ }
1105
+ declare function useLinkBubbleMenuContext(): LinkBubbleMenuContextValue;
1106
+ //#endregion
1107
+ //#region src/ui/link-bubble-menu/index.d.ts
1108
+ declare const LinkBubbleMenu: {
1109
+ readonly Root: typeof LinkBubbleMenuRoot;
1110
+ readonly Toolbar: typeof LinkBubbleMenuToolbar;
1111
+ readonly Form: typeof LinkBubbleMenuForm;
1112
+ readonly EditLink: typeof LinkBubbleMenuEditLink;
1113
+ readonly Unlink: typeof LinkBubbleMenuUnlink;
1114
+ readonly OpenLink: typeof LinkBubbleMenuOpenLink;
1115
+ readonly Default: typeof LinkBubbleMenuDefault;
1116
+ };
1117
+ //#endregion
1118
+ //#region src/ui/slash-command/types.d.ts
1119
+ type SlashCommandCategory = string;
1120
+ interface SearchableItem {
1121
+ title: string;
1122
+ description: string;
1123
+ searchTerms?: string[];
1124
+ }
1125
+ interface SlashCommandItem extends SearchableItem {
1126
+ icon: ReactNode;
1127
+ category: SlashCommandCategory;
1128
+ command: (props: SlashCommandProps) => void;
1129
+ }
1130
+ interface SlashCommandProps {
1131
+ editor: Editor;
1132
+ range: Range;
1133
+ }
1134
+ interface CommandListRef {
1135
+ onKeyDown: (props: {
1136
+ event: KeyboardEvent;
1137
+ }) => boolean;
1138
+ }
1139
+ interface CommandListProps {
1140
+ items: SlashCommandItem[];
1141
+ command: (item: SlashCommandItem) => void;
1142
+ editor: SlashCommandProps['editor'];
1143
+ range: SlashCommandProps['range'];
1144
+ query: string;
1145
+ ref: Ref<CommandListRef>;
1146
+ }
1147
+ type CommandListComponent = ComponentType<CommandListProps>;
1148
+ //#endregion
1149
+ //#region src/ui/slash-command/command-list.d.ts
1150
+ declare function CommandList({
1151
+ items,
1152
+ command,
1153
+ query,
1154
+ ref
1155
+ }: CommandListProps): react_jsx_runtime6.JSX.Element;
1156
+ //#endregion
1157
+ //#region src/ui/slash-command/commands.d.ts
1158
+ declare const TEXT: SlashCommandItem;
1159
+ declare const H1: SlashCommandItem;
1160
+ declare const H2: SlashCommandItem;
1161
+ declare const H3: SlashCommandItem;
1162
+ declare const BULLET_LIST: SlashCommandItem;
1163
+ declare const NUMBERED_LIST: SlashCommandItem;
1164
+ declare const QUOTE: SlashCommandItem;
1165
+ declare const CODE: SlashCommandItem;
1166
+ declare const BUTTON: SlashCommandItem;
1167
+ declare const DIVIDER: SlashCommandItem;
1168
+ declare const SECTION: SlashCommandItem;
1169
+ declare const TWO_COLUMNS: SlashCommandItem;
1170
+ declare const THREE_COLUMNS: SlashCommandItem;
1171
+ declare const FOUR_COLUMNS: SlashCommandItem;
1172
+ declare const defaultSlashCommands: SlashCommandItem[];
1173
+ //#endregion
1174
+ //#region src/ui/slash-command/create-slash-command.d.ts
1175
+ declare function createSlashCommand(options?: {
1176
+ items?: SlashCommandItem[];
1177
+ filterItems?: (items: SlashCommandItem[], query: string, editor: Editor) => SlashCommandItem[];
1178
+ component?: CommandListComponent;
1179
+ }): _tiptap_core0.Extension<any, any>;
1180
+ //#endregion
1181
+ //#region src/ui/slash-command/search.d.ts
1182
+ declare function scoreItem(item: SearchableItem, query: string): number;
1183
+ declare function filterAndRankItems<T extends SearchableItem>(items: T[], query: string): T[];
1184
+ //#endregion
1185
+ //#region src/ui/slash-command/utils.d.ts
1186
+ declare function isInsideNode(editor: Editor, type: string): boolean;
1187
+ declare function isAtMaxColumnsDepth(editor: Editor): boolean;
1188
+ //#endregion
1189
+ //#region src/ui/slash-command/index.d.ts
1190
+ declare const SlashCommand: _tiptap_core0.Extension<any, any>;
1191
+ //#endregion
1192
+ //#region src/utils/set-text-alignment.d.ts
1193
+ declare function setTextAlignment(editor: Editor, alignment: string): void;
1194
+ //#endregion
1195
+ export { AlignmentAttribute, AlignmentOptions, BULLET_LIST, BUTTON, Blockquote, Body, BodyOptions, Bold, BoldOptions, BubbleMenu, BubbleMenuAlignCenter, BubbleMenuAlignLeft, BubbleMenuAlignRight, BubbleMenuBold, BubbleMenuCode, BubbleMenuDefault, type BubbleMenuDefaultProps, BubbleMenuItalic, BubbleMenuItem, BubbleMenuItemGroup, type BubbleMenuItemGroupProps, type BubbleMenuItemProps, BubbleMenuLinkSelector, type BubbleMenuLinkSelectorProps, BubbleMenuNodeSelector, type BubbleMenuNodeSelectorProps, BubbleMenuRoot, type BubbleMenuRootProps, BubbleMenuSeparator, type BubbleMenuSeparatorProps, BubbleMenuStrike, BubbleMenuUnderline, BubbleMenuUppercase, BulletList, Button, ButtonBubbleMenu, ButtonBubbleMenuDefault, type ButtonBubbleMenuDefaultProps, ButtonBubbleMenuEditLink, type ButtonBubbleMenuEditLinkProps, ButtonBubbleMenuRoot, type ButtonBubbleMenuRootProps, ButtonBubbleMenuToolbar, type ButtonBubbleMenuToolbarProps, CODE, COLUMN_PARENT_TYPES, ClassAttribute, ClassAttributeOptions, Code, CodeBlockPrism, CodeBlockPrismOptions, ColumnsColumn, CommandList, type CommandListComponent, type CommandListProps, type CommandListRef, DIVIDER, Div, DivOptions, Divider, DividerOptions, EditorButtonOptions, EditorEventHandler, EditorEventMap, EditorEventName, EditorEventSubscription, EmailNode, EmailNodeConfig, FOUR_COLUMNS, FourColumns, GlobalContent, GlobalContentOptions, H1, H2, H3, HardBreak, Heading, HeadingOptions, ImageBubbleMenu, ImageBubbleMenuDefault, type ImageBubbleMenuDefaultProps, ImageBubbleMenuEditLink, type ImageBubbleMenuEditLinkProps, ImageBubbleMenuRoot, type ImageBubbleMenuRootProps, ImageBubbleMenuToolbar, type ImageBubbleMenuToolbarProps, Italic, Link, LinkBubbleMenu, LinkBubbleMenuDefault, type LinkBubbleMenuDefaultProps, LinkBubbleMenuEditLink, type LinkBubbleMenuEditLinkProps, LinkBubbleMenuForm, type LinkBubbleMenuFormProps, LinkBubbleMenuOpenLink, type LinkBubbleMenuOpenLinkProps, LinkBubbleMenuRoot, type LinkBubbleMenuRootProps, LinkBubbleMenuToolbar, type LinkBubbleMenuToolbarProps, LinkBubbleMenuUnlink, type LinkBubbleMenuUnlinkProps, LinkOptions, ListItem, MAX_COLUMNS_DEPTH, MaxNesting, MaxNestingOptions, NUMBERED_LIST, NodeSelectorContent, type NodeSelectorContentProps, type NodeSelectorItem, NodeSelectorRoot, type NodeSelectorRootProps, NodeSelectorTrigger, type NodeSelectorTriggerProps, type NodeType, OrderedList, Paragraph, Placeholder, PlaceholderOptions, type PreWiredItemProps, PreservedStyle, PreviewText, PreviewTextOptions, QUOTE, RendererComponent, SECTION, type SearchableItem, Section, SectionOptions, SlashCommand, type SlashCommandItem, type SlashCommandProps, StarterKit, StarterKitOptions, Strike, StyleAttribute, StyleAttributeOptions, Sup, SupOptions, TEXT, THREE_COLUMNS, TWO_COLUMNS, Table, TableCell, TableCellOptions, TableHeader, TableOptions, TableRow, TableRowOptions, ThreeColumns, TwoColumns, Uppercase, UppercaseOptions, composeReactEmail, createSlashCommand, defaultSlashCommands, editorEventBus, filterAndRankItems, getColumnsDepth, getGlobalContent, isAtMaxColumnsDepth, isDocumentVisuallyEmpty, isInsideNode, processStylesForUnlink, scoreItem, setTextAlignment, useButtonBubbleMenuContext, useEditor, useImageBubbleMenuContext, useLinkBubbleMenuContext };
1196
+ //# sourceMappingURL=index.d.cts.map