@domternal/vue 0.6.1 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -10
- package/dist/Domternal.d.ts +34 -0
- package/dist/Domternal.d.ts.map +1 -0
- package/dist/DomternalEditor.d.ts +224 -0
- package/dist/DomternalEditor.d.ts.map +1 -0
- package/dist/DomternalFloatingMenu.d.ts +94 -0
- package/dist/DomternalFloatingMenu.d.ts.map +1 -0
- package/dist/EditorContent.d.ts +44 -0
- package/dist/EditorContent.d.ts.map +1 -0
- package/dist/EditorContext.d.ts +38 -0
- package/dist/EditorContext.d.ts.map +1 -0
- package/dist/bubble-menu/DomternalBubbleMenu.d.ts +87 -0
- package/dist/bubble-menu/DomternalBubbleMenu.d.ts.map +1 -0
- package/dist/bubble-menu/useBubbleMenu.d.ts +56 -0
- package/dist/bubble-menu/useBubbleMenu.d.ts.map +1 -0
- package/dist/emoji-picker/DomternalEmojiPicker.d.ts +31 -0
- package/dist/emoji-picker/DomternalEmojiPicker.d.ts.map +1 -0
- package/dist/emoji-picker/useEmojiPicker.d.ts +24 -0
- package/dist/emoji-picker/useEmojiPicker.d.ts.map +1 -0
- package/dist/index.d.ts +152 -40
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1178 -302
- package/dist/index.js.map +1 -1
- package/dist/node-views/NodeViewContent.d.ts +30 -0
- package/dist/node-views/NodeViewContent.d.ts.map +1 -0
- package/dist/node-views/NodeViewWrapper.d.ts +29 -0
- package/dist/node-views/NodeViewWrapper.d.ts.map +1 -0
- package/dist/node-views/VueNodeViewContext.d.ts +27 -0
- package/dist/node-views/VueNodeViewContext.d.ts.map +1 -0
- package/dist/node-views/VueNodeViewRenderer.d.ts +88 -0
- package/dist/node-views/VueNodeViewRenderer.d.ts.map +1 -0
- package/dist/notion-color-picker/DomternalNotionColorPicker.d.ts +22 -0
- package/dist/notion-color-picker/DomternalNotionColorPicker.d.ts.map +1 -0
- package/dist/notion-color-picker/index.d.ts +5 -0
- package/dist/notion-color-picker/index.d.ts.map +1 -0
- package/dist/notion-color-picker/useNotionColorPicker.d.ts +35 -0
- package/dist/notion-color-picker/useNotionColorPicker.d.ts.map +1 -0
- package/dist/toolbar/DomternalToolbar.d.ts +41 -0
- package/dist/toolbar/DomternalToolbar.d.ts.map +1 -0
- package/dist/toolbar/ToolbarButton.d.ts +72 -0
- package/dist/toolbar/ToolbarButton.d.ts.map +1 -0
- package/dist/toolbar/ToolbarDropdown.d.ts +76 -0
- package/dist/toolbar/ToolbarDropdown.d.ts.map +1 -0
- package/dist/toolbar/ToolbarDropdownPanel.d.ts +34 -0
- package/dist/toolbar/ToolbarDropdownPanel.d.ts.map +1 -0
- package/dist/toolbar/useComputedStyle.d.ts +12 -0
- package/dist/toolbar/useComputedStyle.d.ts.map +1 -0
- package/dist/toolbar/useKeyboardNav.d.ts +9 -0
- package/dist/toolbar/useKeyboardNav.d.ts.map +1 -0
- package/dist/toolbar/useToolbarController.d.ts +24 -0
- package/dist/toolbar/useToolbarController.d.ts.map +1 -0
- package/dist/toolbar/useToolbarIcons.d.ts +12 -0
- package/dist/toolbar/useToolbarIcons.d.ts.map +1 -0
- package/dist/toolbar/useTooltip.d.ts +5 -0
- package/dist/toolbar/useTooltip.d.ts.map +1 -0
- package/dist/useEditor.d.ts +63 -0
- package/dist/useEditor.d.ts.map +1 -0
- package/dist/useEditorState.d.ts +28 -0
- package/dist/useEditorState.d.ts.map +1 -0
- package/dist/utils.d.ts +39 -0
- package/dist/utils.d.ts.map +1 -0
- package/package.json +4 -2
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { PropType } from 'vue';
|
|
2
|
+
import type { Editor } from '@domternal/core';
|
|
3
|
+
import { type EmojiPickerItem } from './useEmojiPicker.js';
|
|
4
|
+
export interface DomternalEmojiPickerProps {
|
|
5
|
+
editor?: Editor;
|
|
6
|
+
emojis: EmojiPickerItem[];
|
|
7
|
+
}
|
|
8
|
+
export declare const DomternalEmojiPicker: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
9
|
+
editor: {
|
|
10
|
+
type: PropType<Editor>;
|
|
11
|
+
default: undefined;
|
|
12
|
+
};
|
|
13
|
+
emojis: {
|
|
14
|
+
type: PropType<EmojiPickerItem[]>;
|
|
15
|
+
required: true;
|
|
16
|
+
};
|
|
17
|
+
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
18
|
+
[key: string]: any;
|
|
19
|
+
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
20
|
+
editor: {
|
|
21
|
+
type: PropType<Editor>;
|
|
22
|
+
default: undefined;
|
|
23
|
+
};
|
|
24
|
+
emojis: {
|
|
25
|
+
type: PropType<EmojiPickerItem[]>;
|
|
26
|
+
required: true;
|
|
27
|
+
};
|
|
28
|
+
}>> & Readonly<{}>, {
|
|
29
|
+
editor: Editor;
|
|
30
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
31
|
+
//# sourceMappingURL=DomternalEmojiPicker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DomternalEmojiPicker.d.ts","sourceRoot":"","sources":["../../src/emoji-picker/DomternalEmojiPicker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAc,MAAM,KAAK,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAsB3E,MAAM,WAAW,yBAAyB;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,eAAe,EAAE,CAAC;CAC3B;AAED,eAAO,MAAM,oBAAoB;;cAGH,QAAQ,CAAC,MAAM,CAAC;;;;cACjB,QAAQ,CAAC,eAAe,EAAE,CAAC;;;;;;;cAD1B,QAAQ,CAAC,MAAM,CAAC;;;;cACjB,QAAQ,CAAC,eAAe,EAAE,CAAC;;;;;4EAkItD,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { ComputedRef, Ref, ShallowRef } from 'vue';
|
|
2
|
+
import type { Editor } from '@domternal/core';
|
|
3
|
+
export interface EmojiPickerItem {
|
|
4
|
+
emoji: string;
|
|
5
|
+
name: string;
|
|
6
|
+
group: string;
|
|
7
|
+
}
|
|
8
|
+
export interface UseEmojiPickerResult {
|
|
9
|
+
isOpen: Ref<boolean>;
|
|
10
|
+
searchQuery: Ref<string>;
|
|
11
|
+
activeCategory: Ref<string>;
|
|
12
|
+
categories: ComputedRef<Map<string, EmojiPickerItem[]>>;
|
|
13
|
+
categoryNames: ComputedRef<string[]>;
|
|
14
|
+
filteredEmojis: ComputedRef<EmojiPickerItem[]>;
|
|
15
|
+
frequentlyUsed: ComputedRef<EmojiPickerItem[]>;
|
|
16
|
+
pickerRef: Ref<HTMLDivElement | undefined>;
|
|
17
|
+
selectEmoji: (item: EmojiPickerItem) => void;
|
|
18
|
+
onSearch: (event: Event) => void;
|
|
19
|
+
scrollToCategory: (cat: string) => void;
|
|
20
|
+
onGridScroll: () => void;
|
|
21
|
+
close: () => void;
|
|
22
|
+
}
|
|
23
|
+
export declare function useEmojiPicker(editor: ShallowRef<Editor | null>, emojis: EmojiPickerItem[]): UseEmojiPickerResult;
|
|
24
|
+
//# sourceMappingURL=useEmojiPicker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useEmojiPicker.d.ts","sourceRoot":"","sources":["../../src/emoji-picker/useEmojiPicker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAExD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAQD,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IACrB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;IACxD,aAAa,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IACrC,cAAc,EAAE,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC;IAC/C,cAAc,EAAE,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC;IAC/C,SAAS,EAAE,GAAG,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IAC3C,WAAW,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IAC7C,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,gBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,oBAAoB,CAsNjH"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import * as vue from 'vue';
|
|
2
|
-
import { ShallowRef, Ref, ComputedRef, InjectionKey,
|
|
3
|
-
import
|
|
4
|
-
import { AnyExtension, Content, FocusPosition, Editor, JSONContent, IconSet, ToolbarLayoutEntry, BubbleMenuOptions, FloatingMenuOptions } from '@domternal/core';
|
|
2
|
+
import { ShallowRef, Ref, ComputedRef, InjectionKey, Component, PropType, VNode, AppContext } from 'vue';
|
|
3
|
+
import { AnyExtension, Content, FocusPosition, Editor, JSONContent, IconSet, ToolbarLayoutEntry, BubbleMenuOptions, FloatingMenuItemsOverride } from '@domternal/core';
|
|
5
4
|
export { AnyExtension, Content, Editor, FocusPosition, GenerateHTMLOptions, GenerateJSONOptions, GenerateTextOptions, JSONContent, generateHTML, generateJSON, generateText } from '@domternal/core';
|
|
6
5
|
import * as prosemirror_state from 'prosemirror-state';
|
|
7
6
|
import * as prosemirror_view from 'prosemirror-view';
|
|
7
|
+
import { FloatingMenuOptions, FloatingMenuKeymap } from '@domternal/extension-block-menu';
|
|
8
8
|
|
|
9
9
|
declare const DEFAULT_EXTENSIONS: AnyExtension[];
|
|
10
10
|
interface UseEditorOptions {
|
|
@@ -151,13 +151,13 @@ interface DomternalProps extends UseEditorOptions {
|
|
|
151
151
|
* </template>
|
|
152
152
|
* ```
|
|
153
153
|
*/
|
|
154
|
-
declare const Domternal:
|
|
155
|
-
Content:
|
|
156
|
-
Loading:
|
|
157
|
-
Toolbar:
|
|
158
|
-
BubbleMenu:
|
|
159
|
-
FloatingMenu:
|
|
160
|
-
EmojiPicker:
|
|
154
|
+
declare const Domternal: Component & {
|
|
155
|
+
Content: Component;
|
|
156
|
+
Loading: Component;
|
|
157
|
+
Toolbar: Component;
|
|
158
|
+
BubbleMenu: Component;
|
|
159
|
+
FloatingMenu: Component;
|
|
160
|
+
EmojiPicker: Component;
|
|
161
161
|
};
|
|
162
162
|
|
|
163
163
|
interface DomternalEditorProps {
|
|
@@ -169,19 +169,19 @@ interface DomternalEditorProps {
|
|
|
169
169
|
outputFormat?: 'html' | 'json';
|
|
170
170
|
modelValue?: Content;
|
|
171
171
|
class?: string;
|
|
172
|
-
onCreate?: (editor:
|
|
172
|
+
onCreate?: (editor: Editor) => void;
|
|
173
173
|
onUpdate?: (props: {
|
|
174
|
-
editor:
|
|
174
|
+
editor: Editor;
|
|
175
175
|
}) => void;
|
|
176
176
|
onSelectionChange?: (props: {
|
|
177
|
-
editor:
|
|
177
|
+
editor: Editor;
|
|
178
178
|
}) => void;
|
|
179
179
|
onFocus?: (props: {
|
|
180
|
-
editor:
|
|
180
|
+
editor: Editor;
|
|
181
181
|
event: FocusEvent;
|
|
182
182
|
}) => void;
|
|
183
183
|
onBlur?: (props: {
|
|
184
|
-
editor:
|
|
184
|
+
editor: Editor;
|
|
185
185
|
event: FocusEvent;
|
|
186
186
|
}) => void;
|
|
187
187
|
onDestroy?: () => void;
|
|
@@ -247,31 +247,31 @@ declare const DomternalEditor: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
247
247
|
default: undefined;
|
|
248
248
|
};
|
|
249
249
|
onCreate: {
|
|
250
|
-
type: PropType<(editor:
|
|
250
|
+
type: PropType<(editor: Editor) => void>;
|
|
251
251
|
default: undefined;
|
|
252
252
|
};
|
|
253
253
|
onUpdate: {
|
|
254
254
|
type: PropType<(props: {
|
|
255
|
-
editor:
|
|
255
|
+
editor: Editor;
|
|
256
256
|
}) => void>;
|
|
257
257
|
default: undefined;
|
|
258
258
|
};
|
|
259
259
|
onSelectionChange: {
|
|
260
260
|
type: PropType<(props: {
|
|
261
|
-
editor:
|
|
261
|
+
editor: Editor;
|
|
262
262
|
}) => void>;
|
|
263
263
|
default: undefined;
|
|
264
264
|
};
|
|
265
265
|
onFocus: {
|
|
266
266
|
type: PropType<(props: {
|
|
267
|
-
editor:
|
|
267
|
+
editor: Editor;
|
|
268
268
|
event: FocusEvent;
|
|
269
269
|
}) => void>;
|
|
270
270
|
default: undefined;
|
|
271
271
|
};
|
|
272
272
|
onBlur: {
|
|
273
273
|
type: PropType<(props: {
|
|
274
|
-
editor:
|
|
274
|
+
editor: Editor;
|
|
275
275
|
event: FocusEvent;
|
|
276
276
|
}) => void>;
|
|
277
277
|
default: undefined;
|
|
@@ -320,31 +320,31 @@ declare const DomternalEditor: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
320
320
|
default: undefined;
|
|
321
321
|
};
|
|
322
322
|
onCreate: {
|
|
323
|
-
type: PropType<(editor:
|
|
323
|
+
type: PropType<(editor: Editor) => void>;
|
|
324
324
|
default: undefined;
|
|
325
325
|
};
|
|
326
326
|
onUpdate: {
|
|
327
327
|
type: PropType<(props: {
|
|
328
|
-
editor:
|
|
328
|
+
editor: Editor;
|
|
329
329
|
}) => void>;
|
|
330
330
|
default: undefined;
|
|
331
331
|
};
|
|
332
332
|
onSelectionChange: {
|
|
333
333
|
type: PropType<(props: {
|
|
334
|
-
editor:
|
|
334
|
+
editor: Editor;
|
|
335
335
|
}) => void>;
|
|
336
336
|
default: undefined;
|
|
337
337
|
};
|
|
338
338
|
onFocus: {
|
|
339
339
|
type: PropType<(props: {
|
|
340
|
-
editor:
|
|
340
|
+
editor: Editor;
|
|
341
341
|
event: FocusEvent;
|
|
342
342
|
}) => void>;
|
|
343
343
|
default: undefined;
|
|
344
344
|
};
|
|
345
345
|
onBlur: {
|
|
346
346
|
type: PropType<(props: {
|
|
347
|
-
editor:
|
|
347
|
+
editor: Editor;
|
|
348
348
|
event: FocusEvent;
|
|
349
349
|
}) => void>;
|
|
350
350
|
default: undefined;
|
|
@@ -356,23 +356,23 @@ declare const DomternalEditor: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
356
356
|
}>> & Readonly<{
|
|
357
357
|
"onUpdate:modelValue"?: (_value: Content) => any;
|
|
358
358
|
}>, {
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
359
|
+
onCreate: (editor: Editor) => void;
|
|
360
|
+
onUpdate: (props: {
|
|
361
|
+
editor: Editor;
|
|
362
362
|
}) => void;
|
|
363
363
|
onFocus: (props: {
|
|
364
|
-
editor:
|
|
364
|
+
editor: Editor;
|
|
365
365
|
event: FocusEvent;
|
|
366
366
|
}) => void;
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
editor: _domternal_core.Editor;
|
|
367
|
+
onBlur: (props: {
|
|
368
|
+
editor: Editor;
|
|
369
|
+
event: FocusEvent;
|
|
371
370
|
}) => void;
|
|
372
371
|
onDestroy: () => void;
|
|
373
372
|
content: Content;
|
|
373
|
+
class: string;
|
|
374
374
|
onSelectionChange: (props: {
|
|
375
|
-
editor:
|
|
375
|
+
editor: Editor;
|
|
376
376
|
}) => void;
|
|
377
377
|
extensions: AnyExtension[];
|
|
378
378
|
editable: boolean;
|
|
@@ -459,8 +459,8 @@ declare const DomternalToolbar: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
459
459
|
};
|
|
460
460
|
}>> & Readonly<{}>, {
|
|
461
461
|
editor: Editor;
|
|
462
|
-
icons: IconSet;
|
|
463
462
|
layout: ToolbarLayoutEntry[];
|
|
463
|
+
icons: IconSet;
|
|
464
464
|
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
|
|
465
465
|
|
|
466
466
|
interface DomternalBubbleMenuProps {
|
|
@@ -471,6 +471,8 @@ interface DomternalBubbleMenuProps {
|
|
|
471
471
|
updateDelay?: number;
|
|
472
472
|
items?: string[];
|
|
473
473
|
contexts?: Record<string, string[] | true | null>;
|
|
474
|
+
/** Custom icon overrides. Falls back to default Phosphor icons for unmapped keys. */
|
|
475
|
+
icons?: IconSet;
|
|
474
476
|
}
|
|
475
477
|
declare const DomternalBubbleMenu: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
476
478
|
editor: {
|
|
@@ -501,7 +503,11 @@ declare const DomternalBubbleMenu: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
501
503
|
type: PropType<Record<string, string[] | true | null>>;
|
|
502
504
|
default: undefined;
|
|
503
505
|
};
|
|
504
|
-
|
|
506
|
+
icons: {
|
|
507
|
+
type: PropType<IconSet>;
|
|
508
|
+
default: undefined;
|
|
509
|
+
};
|
|
510
|
+
}>, () => VNode<vue.RendererNode, vue.RendererElement, {
|
|
505
511
|
[key: string]: any;
|
|
506
512
|
}>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
|
|
507
513
|
editor: {
|
|
@@ -532,8 +538,14 @@ declare const DomternalBubbleMenu: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
532
538
|
type: PropType<Record<string, string[] | true | null>>;
|
|
533
539
|
default: undefined;
|
|
534
540
|
};
|
|
541
|
+
icons: {
|
|
542
|
+
type: PropType<IconSet>;
|
|
543
|
+
default: undefined;
|
|
544
|
+
};
|
|
535
545
|
}>> & Readonly<{}>, {
|
|
536
546
|
editor: Editor;
|
|
547
|
+
placement: "top" | "bottom";
|
|
548
|
+
items: string[];
|
|
537
549
|
shouldShow: (props: {
|
|
538
550
|
editor: Editor;
|
|
539
551
|
view: prosemirror_view.EditorView;
|
|
@@ -541,10 +553,9 @@ declare const DomternalBubbleMenu: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
541
553
|
from: number;
|
|
542
554
|
to: number;
|
|
543
555
|
}) => boolean;
|
|
544
|
-
placement: "top" | "bottom";
|
|
545
556
|
offset: number;
|
|
546
557
|
updateDelay: number;
|
|
547
|
-
|
|
558
|
+
icons: IconSet;
|
|
548
559
|
contexts: Record<string, true | string[] | null>;
|
|
549
560
|
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
|
|
550
561
|
|
|
@@ -552,6 +563,18 @@ interface DomternalFloatingMenuProps {
|
|
|
552
563
|
editor?: Editor;
|
|
553
564
|
shouldShow?: FloatingMenuOptions['shouldShow'];
|
|
554
565
|
offset?: number;
|
|
566
|
+
items?: FloatingMenuItemsOverride;
|
|
567
|
+
keymap?: FloatingMenuKeymap;
|
|
568
|
+
icons?: IconSet;
|
|
569
|
+
/**
|
|
570
|
+
* When true, the menu does NOT auto-show on every empty paragraph;
|
|
571
|
+
* it only opens when the BlockHandle `+` button (or any caller of
|
|
572
|
+
* `showFloatingMenu`) explicitly triggers it. Notion-style behaviour
|
|
573
|
+
* - empty rows show a placeholder, the slash menu is the keyboard
|
|
574
|
+
* trigger, the `+` button is the gutter trigger.
|
|
575
|
+
* @default false
|
|
576
|
+
*/
|
|
577
|
+
requireExplicitTrigger?: boolean;
|
|
555
578
|
}
|
|
556
579
|
declare const DomternalFloatingMenu: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
557
580
|
editor: {
|
|
@@ -566,6 +589,22 @@ declare const DomternalFloatingMenu: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
566
589
|
type: NumberConstructor;
|
|
567
590
|
default: number;
|
|
568
591
|
};
|
|
592
|
+
items: {
|
|
593
|
+
type: PropType<FloatingMenuItemsOverride>;
|
|
594
|
+
default: undefined;
|
|
595
|
+
};
|
|
596
|
+
keymap: {
|
|
597
|
+
type: PropType<FloatingMenuKeymap>;
|
|
598
|
+
default: undefined;
|
|
599
|
+
};
|
|
600
|
+
icons: {
|
|
601
|
+
type: PropType<IconSet>;
|
|
602
|
+
default: undefined;
|
|
603
|
+
};
|
|
604
|
+
requireExplicitTrigger: {
|
|
605
|
+
type: BooleanConstructor;
|
|
606
|
+
default: boolean;
|
|
607
|
+
};
|
|
569
608
|
}>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
570
609
|
[key: string]: any;
|
|
571
610
|
}>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
|
|
@@ -581,14 +620,34 @@ declare const DomternalFloatingMenu: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
581
620
|
type: NumberConstructor;
|
|
582
621
|
default: number;
|
|
583
622
|
};
|
|
623
|
+
items: {
|
|
624
|
+
type: PropType<FloatingMenuItemsOverride>;
|
|
625
|
+
default: undefined;
|
|
626
|
+
};
|
|
627
|
+
keymap: {
|
|
628
|
+
type: PropType<FloatingMenuKeymap>;
|
|
629
|
+
default: undefined;
|
|
630
|
+
};
|
|
631
|
+
icons: {
|
|
632
|
+
type: PropType<IconSet>;
|
|
633
|
+
default: undefined;
|
|
634
|
+
};
|
|
635
|
+
requireExplicitTrigger: {
|
|
636
|
+
type: BooleanConstructor;
|
|
637
|
+
default: boolean;
|
|
638
|
+
};
|
|
584
639
|
}>> & Readonly<{}>, {
|
|
585
640
|
editor: Editor;
|
|
641
|
+
items: FloatingMenuItemsOverride;
|
|
586
642
|
shouldShow: (props: {
|
|
587
643
|
editor: Editor;
|
|
588
644
|
view: prosemirror_view.EditorView;
|
|
589
645
|
state: prosemirror_state.EditorState;
|
|
590
646
|
}) => boolean;
|
|
591
647
|
offset: number;
|
|
648
|
+
icons: IconSet;
|
|
649
|
+
keymap: FloatingMenuKeymap;
|
|
650
|
+
requireExplicitTrigger: boolean;
|
|
592
651
|
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
|
|
593
652
|
|
|
594
653
|
interface EmojiPickerItem {
|
|
@@ -625,6 +684,59 @@ declare const DomternalEmojiPicker: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
625
684
|
editor: Editor;
|
|
626
685
|
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
|
|
627
686
|
|
|
687
|
+
interface DomternalNotionColorPickerProps {
|
|
688
|
+
/** The editor instance. If omitted, uses provideEditor context. */
|
|
689
|
+
editor?: Editor;
|
|
690
|
+
}
|
|
691
|
+
declare const DomternalNotionColorPicker: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
692
|
+
editor: {
|
|
693
|
+
type: PropType<Editor>;
|
|
694
|
+
default: undefined;
|
|
695
|
+
};
|
|
696
|
+
}>, () => VNode<vue.RendererNode, vue.RendererElement, {
|
|
697
|
+
[key: string]: any;
|
|
698
|
+
}> | null, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
|
|
699
|
+
editor: {
|
|
700
|
+
type: PropType<Editor>;
|
|
701
|
+
default: undefined;
|
|
702
|
+
};
|
|
703
|
+
}>> & Readonly<{}>, {
|
|
704
|
+
editor: Editor;
|
|
705
|
+
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
|
|
706
|
+
|
|
707
|
+
interface UseNotionColorPickerOptions {
|
|
708
|
+
editor: ShallowRef<Editor | null>;
|
|
709
|
+
}
|
|
710
|
+
interface UseNotionColorPickerResult {
|
|
711
|
+
/** Whether the picker panel is currently open. */
|
|
712
|
+
isOpen: Ref<boolean>;
|
|
713
|
+
/** Editor host element (`.dm-editor`) used as the Teleport target. Null until the editor is ready. */
|
|
714
|
+
hostEl: ShallowRef<HTMLElement | null>;
|
|
715
|
+
/** Anchor element the picker positions against (the bubble-menu "A" trigger button). */
|
|
716
|
+
anchorEl: ShallowRef<HTMLElement | null>;
|
|
717
|
+
/** Ref to the panel root, used by the picker UI for positioning + focus management. */
|
|
718
|
+
panelRef: Ref<HTMLDivElement | undefined>;
|
|
719
|
+
/** Currently applied text token at the cursor, or null when default. */
|
|
720
|
+
currentTextToken: Ref<string | null>;
|
|
721
|
+
/** Currently applied background token at the cursor, or null when default. */
|
|
722
|
+
currentBgToken: Ref<string | null>;
|
|
723
|
+
/** Named-token palette (read from the NotionColorPicker extension options). */
|
|
724
|
+
palette: ShallowRef<readonly string[]>;
|
|
725
|
+
/** Apply a text color token to the current selection. Picker stays open. */
|
|
726
|
+
applyText: (token: string | null) => void;
|
|
727
|
+
/** Apply a background color token to the current selection. Picker stays open. */
|
|
728
|
+
applyBg: (token: string | null) => void;
|
|
729
|
+
/** Close the picker. When `refocus` is true, returns focus to the editor view. */
|
|
730
|
+
close: (opts?: {
|
|
731
|
+
refocus?: boolean;
|
|
732
|
+
}) => void;
|
|
733
|
+
/** Display label for a palette token (defaults to title-case fallback). */
|
|
734
|
+
tokenLabel: (token: string) => string;
|
|
735
|
+
/** Arrow / Home / End keyboard navigation across the 5-column swatch grid. */
|
|
736
|
+
onPanelKeydown: (event: KeyboardEvent) => void;
|
|
737
|
+
}
|
|
738
|
+
declare function useNotionColorPicker(options: UseNotionColorPickerOptions): UseNotionColorPickerResult;
|
|
739
|
+
|
|
628
740
|
/** ProseMirror node shape passed to node views. */
|
|
629
741
|
interface PMNode {
|
|
630
742
|
type: {
|
|
@@ -677,7 +789,7 @@ interface VueNodeViewRendererOptions {
|
|
|
677
789
|
* });
|
|
678
790
|
* ```
|
|
679
791
|
*/
|
|
680
|
-
declare function VueNodeViewRenderer(component: Component, options?: VueNodeViewRendererOptions): (node: PMNode,
|
|
792
|
+
declare function VueNodeViewRenderer(component: Component, options?: VueNodeViewRendererOptions): (node: PMNode, view: unknown, getPos: () => number | undefined, decorations: readonly unknown[]) => VueNodeView | {
|
|
681
793
|
dom: HTMLElement;
|
|
682
794
|
update: () => boolean;
|
|
683
795
|
destroy: () => void;
|
|
@@ -783,4 +895,4 @@ declare function useVueNodeView(): {
|
|
|
783
895
|
nodeViewContentRef: ((el: HTMLElement | null) => void) | undefined;
|
|
784
896
|
};
|
|
785
897
|
|
|
786
|
-
export { DEFAULT_EXTENSIONS, Domternal, DomternalBubbleMenu, type DomternalBubbleMenuProps, DomternalEditor, type DomternalEditorProps, DomternalEmojiPicker, type DomternalEmojiPickerProps, DomternalFloatingMenu, type DomternalFloatingMenuProps, type DomternalProps, DomternalToolbar, type DomternalToolbarProps, EDITOR_KEY, EditorContent, type EditorState, type EmojiPickerItem, NodeViewContent, NodeViewWrapper, type UseEditorOptions, type VueNodeViewProps, VueNodeViewRenderer, type VueNodeViewRendererOptions, provideEditor, useCurrentEditor, useEditor, useEditorState, useVueNodeView };
|
|
898
|
+
export { DEFAULT_EXTENSIONS, Domternal, DomternalBubbleMenu, type DomternalBubbleMenuProps, DomternalEditor, type DomternalEditorProps, DomternalEmojiPicker, type DomternalEmojiPickerProps, DomternalFloatingMenu, type DomternalFloatingMenuProps, DomternalNotionColorPicker, type DomternalNotionColorPickerProps, type DomternalProps, DomternalToolbar, type DomternalToolbarProps, EDITOR_KEY, EditorContent, type EditorState, type EmojiPickerItem, NodeViewContent, NodeViewWrapper, type UseEditorOptions, type UseNotionColorPickerOptions, type UseNotionColorPickerResult, type VueNodeViewProps, VueNodeViewRenderer, type VueNodeViewRendererOptions, provideEditor, useCurrentEditor, useEditor, useEditorState, useNotionColorPicker, useVueNodeView };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAC/D,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGjF,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,YAAY,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,YAAY,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AACrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,YAAY,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAC9E,YAAY,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AACxF,YAAY,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAClG,YAAY,EACV,+BAA+B,EAC/B,2BAA2B,EAC3B,0BAA0B,GAC3B,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,YAAY,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACxG,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAGpE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGzF,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC3E,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC"}
|