@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.
package/dist/index.d.mts CHANGED
@@ -1,35 +1,100 @@
1
+ import * as react_jsx_runtime9 from "react/jsx-runtime";
1
2
  import * as _tiptap_core0 from "@tiptap/core";
2
- import { Editor, Extension, JSONContent, Mark, Node, NodeConfig as NodeConfig$1, NodeType, ParentConfig } from "@tiptap/core";
3
+ import { Content, Editor, Extension, Extensions, JSONContent, Mark, MarkConfig, MarkType, Node, NodeConfig as NodeConfig$1, NodeType as NodeType$1, ParentConfig, Range } from "@tiptap/core";
4
+ import { UseEditorOptions } from "@tiptap/react";
5
+ import * as React$1 from "react";
6
+ import { ComponentType, ReactNode, Ref } from "react";
7
+ import { StarterKitOptions as StarterKitOptions$1 } from "@tiptap/starter-kit";
8
+ import { BlockquoteOptions } from "@tiptap/extension-blockquote";
9
+ import { BulletListOptions } from "@tiptap/extension-bullet-list";
10
+ import { CodeOptions } from "@tiptap/extension-code";
3
11
  import { CodeBlockOptions } from "@tiptap/extension-code-block";
4
- import * as _tiptap_extension_placeholder0 from "@tiptap/extension-placeholder";
12
+ import { EditorView } from "@tiptap/pm/view";
13
+ import { HorizontalRuleOptions } from "@tiptap/extension-horizontal-rule";
14
+ import { HardBreakOptions } from "@tiptap/extension-hard-break";
15
+ import { HeadingOptions as HeadingOptions$1 } from "@tiptap/extension-heading";
16
+ import { ItalicOptions } from "@tiptap/extension-italic";
17
+ import { LinkOptions as LinkOptions$1 } from "@tiptap/extension-link";
18
+ import { ListItemOptions } from "@tiptap/extension-list-item";
19
+ import { OrderedListOptions } from "@tiptap/extension-ordered-list";
20
+ import { ParagraphOptions } from "@tiptap/extension-paragraph";
21
+ import { PlaceholderOptions as PlaceholderOptions$1 } from "@tiptap/extension-placeholder";
22
+ import { StrikeOptions } from "@tiptap/extension-strike";
5
23
  import { Node as Node$1 } from "@tiptap/pm/model";
6
- import * as React$1 from "react";
7
-
8
- //#region src/utils/types.d.ts
9
24
 
10
- type KnownThemeComponents = 'reset' | 'body' | 'container' | 'h1' | 'h2' | 'h3' | 'paragraph' | 'nestedList' | 'list' | 'listItem' | 'listParagraph' | 'blockquote' | 'codeBlock' | 'inlineCode' | 'codeTag' | 'link' | 'footer' | 'hr' | 'image' | 'button' | 'section';
11
- type CssJs = { [K in KnownThemeComponents]: React$1.CSSProperties & {
12
- align?: 'center' | 'left' | 'right';
13
- } };
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;
14
56
  //#endregion
15
- //#region src/core/email-node.d.ts
57
+ //#region src/core/is-document-visually-empty.d.ts
58
+ declare function isDocumentVisuallyEmpty(doc: Node$1): 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
16
74
  type RendererComponent = (props: {
17
75
  node: JSONContent;
18
- styles: CssJs;
76
+ style: React.CSSProperties;
19
77
  children?: React.ReactNode;
20
78
  }) => React.ReactNode;
21
79
  interface EmailNodeConfig<Options, Storage> extends NodeConfig$1<Options, Storage> {
22
80
  renderToReactEmail: RendererComponent;
23
81
  }
24
- type ConfigParameter<Options, Storage> = Partial<Omit<EmailNodeConfig<Options, Storage>, 'renderToReactEmail'>> & Pick<EmailNodeConfig<Options, Storage>, 'renderToReactEmail'>;
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
+ }>;
25
90
  declare class EmailNode<Options = Record<string, never>, Storage = Record<string, never>> extends Node<Options, Storage> {
26
91
  config: EmailNodeConfig<Options, Storage>;
27
- constructor(config: ConfigParameter<Options, Storage>);
92
+ constructor(config: ConfigParameter$1<Options, Storage>);
28
93
  /**
29
94
  * Create a new Node instance
30
95
  * @param config - Node configuration object or a function that returns a configuration object
31
96
  */
32
- static create<O = Record<string, never>, S = Record<string, never>>(config: ConfigParameter<O, S> | (() => ConfigParameter<O, S>)): EmailNode<O, S>;
97
+ static create<O = Record<string, never>, S = Record<string, never>>(config: ConfigParameter$1<O, S> | (() => ConfigParameter$1<O, S>)): EmailNode<O, S>;
33
98
  static from<O, S>(node: Node<O, S>, renderToReactEmail: RendererComponent): EmailNode<O, S>;
34
99
  configure(options?: Partial<Options>): EmailNode<Options, Storage>;
35
100
  extend<ExtendedOptions = Options, ExtendedStorage = Storage, ExtendedConfig extends NodeConfig$1<ExtendedOptions, ExtendedStorage> = EmailNodeConfig<ExtendedOptions, ExtendedStorage>>(extendedConfig?: (() => Partial<ExtendedConfig>) | (Partial<ExtendedConfig> & ThisType<{
@@ -37,10 +102,48 @@ declare class EmailNode<Options = Record<string, never>, Storage = Record<string
37
102
  options: ExtendedOptions;
38
103
  storage: ExtendedStorage;
39
104
  editor: Editor;
40
- type: NodeType;
105
+ type: NodeType$1;
41
106
  }>)): EmailNode<ExtendedOptions, ExtendedStorage>;
42
107
  }
43
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
44
147
  //#region src/extensions/alignment-attribute.d.ts
45
148
  interface AlignmentOptions {
46
149
  types: string[];
@@ -64,6 +167,44 @@ interface BodyOptions {
64
167
  }
65
168
  declare const Body: EmailNode<BodyOptions, Record<string, never>>;
66
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
67
208
  //#region src/extensions/bold.d.ts
68
209
  interface BoldOptions {
69
210
  /**
@@ -95,7 +236,7 @@ declare module '@tiptap/core' {
95
236
  * This extension allows you to mark text as bold.
96
237
  * @see https://tiptap.dev/api/marks/bold
97
238
  */
98
- declare const Bold: Mark<BoldOptions, any>;
239
+ declare const Bold: EmailMark<BoldOptions, Record<string, never>>;
99
240
  //#endregion
100
241
  //#region src/extensions/button.d.ts
101
242
  interface EditorButtonOptions {
@@ -146,6 +287,34 @@ interface DivOptions {
146
287
  }
147
288
  declare const Div: EmailNode<DivOptions, Record<string, never>>;
148
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<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
149
318
  //#region src/extensions/max-nesting.d.ts
150
319
  interface MaxNestingOptions {
151
320
  maxDepth: number;
@@ -160,17 +329,13 @@ interface PlaceholderOptions {
160
329
  }) => string);
161
330
  includeChildren?: boolean;
162
331
  }
163
- declare const createPlaceholderExtension: (options?: Partial<PlaceholderOptions>) => _tiptap_core0.Extension<_tiptap_extension_placeholder0.PlaceholderOptions, any>;
164
- declare const placeholder: _tiptap_core0.Extension<_tiptap_extension_placeholder0.PlaceholderOptions, any>;
332
+ declare const Placeholder: Extension<PlaceholderOptions$1, any>;
165
333
  //#endregion
166
- //#region src/extensions/preserved-style.d.ts
167
- declare const PreservedStyle: Mark<any, any>;
168
- /**
169
- * Processes styles when unlinking:
170
- * - Has background (button-like): preserve all styles
171
- * - No background: strip link-indicator styles (color, text-decoration), keep the rest
172
- */
173
- declare function processStylesForUnlink(styleString: string | null | undefined): string | null;
334
+ //#region src/extensions/preview-text.d.ts
335
+ interface PreviewTextOptions {
336
+ HTMLAttributes: Record<string, unknown>;
337
+ }
338
+ declare const PreviewText: Node<PreviewTextOptions, any>;
174
339
  //#endregion
175
340
  //#region src/extensions/section.d.ts
176
341
  interface SectionOptions {
@@ -238,7 +403,7 @@ declare module '@tiptap/core' {
238
403
  * This extension allows you to mark text as superscript.
239
404
  * @see https://tiptap.dev/api/marks/superscript
240
405
  */
241
- declare const Sup: Mark<SupOptions, any>;
406
+ declare const Sup: EmailMark<SupOptions, Record<string, never>>;
242
407
  //#endregion
243
408
  //#region src/extensions/table.d.ts
244
409
  declare module '@tiptap/core' {
@@ -270,5 +435,762 @@ interface TableCellOptions extends Record<string, unknown> {
270
435
  declare const TableCell: EmailNode<TableCellOptions, Record<string, never>>;
271
436
  declare const TableHeader: Node<any, any>;
272
437
  //#endregion
273
- export { AlignmentAttribute, Body, BodyOptions, Bold, BoldOptions, Button, ClassAttribute, CodeBlockPrism, CodeBlockPrismOptions, Div, DivOptions, EmailNode, EmailNodeConfig, MaxNesting, PlaceholderOptions, PreservedStyle, RendererComponent, Section, StyleAttribute, Sup, SupOptions, Table, TableCell, TableHeader, TableOptions, TableRow, createPlaceholderExtension, placeholder, processStylesForUnlink };
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$1, 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_runtime9.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_runtime9.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_runtime9.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_runtime9.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_runtime9.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_runtime9.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_runtime9.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_runtime9.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_runtime9.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_runtime9.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_runtime9.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_runtime9.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_runtime9.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_runtime9.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_runtime9.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_runtime9.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_runtime9.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_runtime9.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_runtime9.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_runtime9.JSX.Element;
811
+ displayName: string;
812
+ };
813
+ readonly Italic: {
814
+ ({
815
+ className,
816
+ children
817
+ }: PreWiredItemProps): react_jsx_runtime9.JSX.Element;
818
+ displayName: string;
819
+ };
820
+ readonly Underline: {
821
+ ({
822
+ className,
823
+ children
824
+ }: PreWiredItemProps): react_jsx_runtime9.JSX.Element;
825
+ displayName: string;
826
+ };
827
+ readonly Strike: {
828
+ ({
829
+ className,
830
+ children
831
+ }: PreWiredItemProps): react_jsx_runtime9.JSX.Element;
832
+ displayName: string;
833
+ };
834
+ readonly Code: {
835
+ ({
836
+ className,
837
+ children
838
+ }: PreWiredItemProps): react_jsx_runtime9.JSX.Element;
839
+ displayName: string;
840
+ };
841
+ readonly Uppercase: {
842
+ ({
843
+ className,
844
+ children
845
+ }: PreWiredItemProps): react_jsx_runtime9.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_runtime9.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_runtime9.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_runtime9.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_runtime9.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_runtime9.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_runtime9.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_runtime9.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_runtime9.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_runtime9.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_runtime9.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_runtime9.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_runtime9.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_runtime9.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_runtime9.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_runtime9.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_runtime9.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 };
274
1196
  //# sourceMappingURL=index.d.mts.map