@projectfive/v-richtext-vue2 0.0.0-stage → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/Readme.md +69 -0
  2. package/dist/style.css +1 -0
  3. package/dist/types/richtext-vue/src/components/input-richtext/CharacterCount.vue.d.ts +19 -0
  4. package/dist/types/richtext-vue/src/components/input-richtext/InputRichtext.vue.d.ts +135 -0
  5. package/dist/types/richtext-vue/src/components/input-richtext/MediaControls.vue.d.ts +3 -0
  6. package/dist/types/richtext-vue/src/components/input-richtext/MentionMenu.vue.d.ts +21 -0
  7. package/dist/types/richtext-vue/src/components/input-richtext/TableMenu.vue.d.ts +19 -0
  8. package/dist/types/richtext-vue/src/components/input-richtext/TableOfContents.vue.d.ts +3 -0
  9. package/dist/types/richtext-vue/src/components/input-richtext/TemplatesMenu.vue.d.ts +18 -0
  10. package/dist/types/richtext-vue/src/components/input-richtext/UploadPopover.vue.d.ts +24 -0
  11. package/dist/types/richtext-vue/src/components/input-richtext/VisibilityConditionsMenu.vue.d.ts +20 -0
  12. package/dist/types/richtext-vue/src/components/input-richtext/YoutubePopover.vue.d.ts +4 -0
  13. package/dist/types/richtext-vue/src/components/input-richtext/extensions/file-drop.d.ts +22 -0
  14. package/dist/types/richtext-vue/src/components/input-richtext/extensions/file-node.d.ts +18 -0
  15. package/dist/types/richtext-vue/src/components/input-richtext/extensions/heading-id.d.ts +14 -0
  16. package/dist/types/richtext-vue/src/components/input-richtext/extensions/index.d.ts +36 -0
  17. package/dist/types/richtext-vue/src/components/input-richtext/extensions/link.d.ts +8 -0
  18. package/dist/types/richtext-vue/src/components/input-richtext/extensions/media-attributes.d.ts +8 -0
  19. package/dist/types/richtext-vue/src/components/input-richtext/extensions/mention-menu.d.ts +62 -0
  20. package/dist/types/richtext-vue/src/components/input-richtext/extensions/mention.d.ts +16 -0
  21. package/dist/types/richtext-vue/src/components/input-richtext/extensions/previews.d.ts +8 -0
  22. package/dist/types/richtext-vue/src/components/input-richtext/extensions/task-item.d.ts +8 -0
  23. package/dist/types/richtext-vue/src/components/input-richtext/extensions/visibility-conditions.d.ts +32 -0
  24. package/dist/types/richtext-vue/src/components/input-richtext/liquid.d.ts +11 -0
  25. package/dist/types/richtext-vue/src/components/input-richtext/types.d.ts +122 -0
  26. package/dist/types/richtext-vue/src/components/tiptap-icons/Icon.vue.d.ts +15 -0
  27. package/dist/types/richtext-vue/src/components/tiptap-icons/index.d.ts +40 -0
  28. package/dist/types/richtext-vue/src/components/tiptap-ui/CommandButton.vue.d.ts +36 -0
  29. package/dist/types/richtext-vue/src/components/tiptap-ui/blockquote-button/index.d.ts +1 -0
  30. package/dist/types/richtext-vue/src/components/tiptap-ui/blockquote-button/use-blockquote.d.ts +12 -0
  31. package/dist/types/richtext-vue/src/components/tiptap-ui/code-block-button/index.d.ts +1 -0
  32. package/dist/types/richtext-vue/src/components/tiptap-ui/code-block-button/use-code-block.d.ts +12 -0
  33. package/dist/types/richtext-vue/src/components/tiptap-ui/color-highlight-button/index.d.ts +1 -0
  34. package/dist/types/richtext-vue/src/components/tiptap-ui/color-highlight-button/use-color-highlight.d.ts +125 -0
  35. package/dist/types/richtext-vue/src/components/tiptap-ui/color-highlight-popover/ColorHighlightPopover.vue.d.ts +3 -0
  36. package/dist/types/richtext-vue/src/components/tiptap-ui/color-highlight-popover/ColorHighlightPopoverButton.vue.d.ts +17 -0
  37. package/dist/types/richtext-vue/src/components/tiptap-ui/color-highlight-popover/ColorHighlightPopoverContent.vue.d.ts +183 -0
  38. package/dist/types/richtext-vue/src/components/tiptap-ui/color-highlight-popover/index.d.ts +3 -0
  39. package/dist/types/richtext-vue/src/components/tiptap-ui/command.d.ts +26 -0
  40. package/dist/types/richtext-vue/src/components/tiptap-ui/heading-button/index.d.ts +1 -0
  41. package/dist/types/richtext-vue/src/components/tiptap-ui/heading-button/use-heading.d.ts +25 -0
  42. package/dist/types/richtext-vue/src/components/tiptap-ui/heading-dropdown-menu/HeadingDropdownMenu.vue.d.ts +32 -0
  43. package/dist/types/richtext-vue/src/components/tiptap-ui/heading-dropdown-menu/index.d.ts +2 -0
  44. package/dist/types/richtext-vue/src/components/tiptap-ui/heading-dropdown-menu/use-heading-dropdown-menu.d.ts +6 -0
  45. package/dist/types/richtext-vue/src/components/tiptap-ui/link-popover/LinkButton.vue.d.ts +17 -0
  46. package/dist/types/richtext-vue/src/components/tiptap-ui/link-popover/LinkContent.vue.d.ts +18 -0
  47. package/dist/types/richtext-vue/src/components/tiptap-ui/link-popover/LinkMain.vue.d.ts +28 -0
  48. package/dist/types/richtext-vue/src/components/tiptap-ui/link-popover/LinkPopover.vue.d.ts +62 -0
  49. package/dist/types/richtext-vue/src/components/tiptap-ui/link-popover/index.d.ts +4 -0
  50. package/dist/types/richtext-vue/src/components/tiptap-ui/link-popover/use-link-popover.d.ts +96 -0
  51. package/dist/types/richtext-vue/src/components/tiptap-ui/list-button/index.d.ts +1 -0
  52. package/dist/types/richtext-vue/src/components/tiptap-ui/list-button/use-list.d.ts +22 -0
  53. package/dist/types/richtext-vue/src/components/tiptap-ui/list-dropdown-menu/ListDropdownMenu.vue.d.ts +32 -0
  54. package/dist/types/richtext-vue/src/components/tiptap-ui/list-dropdown-menu/index.d.ts +2 -0
  55. package/dist/types/richtext-vue/src/components/tiptap-ui/list-dropdown-menu/use-list-dropdown-menu.d.ts +15 -0
  56. package/dist/types/richtext-vue/src/components/tiptap-ui/mark-button/index.d.ts +1 -0
  57. package/dist/types/richtext-vue/src/components/tiptap-ui/mark-button/use-mark.d.ts +29 -0
  58. package/dist/types/richtext-vue/src/components/tiptap-ui/text-align-button/index.d.ts +1 -0
  59. package/dist/types/richtext-vue/src/components/tiptap-ui/text-align-button/use-text-align.d.ts +27 -0
  60. package/dist/types/richtext-vue/src/components/tiptap-ui/undo-redo-button/index.d.ts +1 -0
  61. package/dist/types/richtext-vue/src/components/tiptap-ui/undo-redo-button/use-undo-redo.d.ts +17 -0
  62. package/dist/types/richtext-vue/src/components/tiptap-ui-primitive/button/Button.vue.d.ts +53 -0
  63. package/dist/types/richtext-vue/src/components/tiptap-ui-primitive/button/index.d.ts +1 -0
  64. package/dist/types/richtext-vue/src/components/tiptap-ui-primitive/button-group/ButtonGroup.vue.d.ts +43 -0
  65. package/dist/types/richtext-vue/src/components/tiptap-ui-primitive/button-group/index.d.ts +1 -0
  66. package/dist/types/richtext-vue/src/components/tiptap-ui-primitive/card/Card.vue.d.ts +16 -0
  67. package/dist/types/richtext-vue/src/components/tiptap-ui-primitive/card/CardBody.vue.d.ts +15 -0
  68. package/dist/types/richtext-vue/src/components/tiptap-ui-primitive/card/CardItemGroup.vue.d.ts +42 -0
  69. package/dist/types/richtext-vue/src/components/tiptap-ui-primitive/card/index.d.ts +3 -0
  70. package/dist/types/richtext-vue/src/components/tiptap-ui-primitive/dropdown-menu/DropdownMenu.vue.d.ts +66 -0
  71. package/dist/types/richtext-vue/src/components/tiptap-ui-primitive/dropdown-menu/index.d.ts +1 -0
  72. package/dist/types/richtext-vue/src/components/tiptap-ui-primitive/input/Input.vue.d.ts +20 -0
  73. package/dist/types/richtext-vue/src/components/tiptap-ui-primitive/input/index.d.ts +1 -0
  74. package/dist/types/richtext-vue/src/components/tiptap-ui-primitive/popover/Popover.vue.d.ts +65 -0
  75. package/dist/types/richtext-vue/src/components/tiptap-ui-primitive/popover/index.d.ts +1 -0
  76. package/dist/types/richtext-vue/src/components/tiptap-ui-primitive/separator/Separator.vue.d.ts +35 -0
  77. package/dist/types/richtext-vue/src/components/tiptap-ui-primitive/separator/index.d.ts +1 -0
  78. package/dist/types/richtext-vue/src/components/tiptap-ui-primitive/spacer/Spacer.vue.d.ts +31 -0
  79. package/dist/types/richtext-vue/src/components/tiptap-ui-primitive/spacer/index.d.ts +1 -0
  80. package/dist/types/richtext-vue/src/components/tiptap-ui-primitive/toolbar/Toolbar.vue.d.ts +45 -0
  81. package/dist/types/richtext-vue/src/components/tiptap-ui-primitive/toolbar/ToolbarGroup.vue.d.ts +15 -0
  82. package/dist/types/richtext-vue/src/components/tiptap-ui-primitive/toolbar/ToolbarSeparator.vue.d.ts +3 -0
  83. package/dist/types/richtext-vue/src/components/tiptap-ui-primitive/toolbar/index.d.ts +3 -0
  84. package/dist/types/richtext-vue/src/composables/use-editor-state.d.ts +32 -0
  85. package/dist/types/richtext-vue/src/composables/use-is-breakpoint.d.ts +10 -0
  86. package/dist/types/richtext-vue/src/composables/use-menu-navigation.d.ts +55 -0
  87. package/dist/types/richtext-vue/src/composables/use-popover.d.ts +45 -0
  88. package/dist/types/richtext-vue/src/composables/use-tiptap-editor.d.ts +16 -0
  89. package/dist/types/richtext-vue/src/composables/use-top-layer.d.ts +9 -0
  90. package/dist/types/richtext-vue/src/composables/use-translations.d.ts +7 -0
  91. package/dist/types/richtext-vue/src/composables/utils.d.ts +21 -0
  92. package/dist/types/richtext-vue/src/index.d.ts +14 -0
  93. package/dist/types/richtext-vue/src/lib/pointer.d.ts +6 -0
  94. package/dist/types/richtext-vue/src/lib/resize-image.d.ts +6 -0
  95. package/dist/types/richtext-vue/src/lib/shortcuts.d.ts +24 -0
  96. package/dist/types/richtext-vue/src/lib/throttle.d.ts +10 -0
  97. package/dist/types/richtext-vue/src/lib/tiptap-utils.d.ts +109 -0
  98. package/dist/types/richtext-vue/src/locales/en.d.ts +140 -0
  99. package/dist/types/richtext-vue/src/locales/index.d.ts +5 -0
  100. package/dist/types/richtext-vue/src/locales/nl.d.ts +2 -0
  101. package/dist/types/richtext-vue2/src/components/tiptap-ui-primitive/portal/Portal.vue.d.ts +15 -0
  102. package/dist/types/richtext-vue2/src/lib/tiptap-vue.d.ts +9 -0
  103. package/dist/v-richtext.js +3318 -0
  104. package/dist/v-richtext.js.map +1 -0
  105. package/package.json +64 -6
  106. package/README.md +0 -3
@@ -0,0 +1,183 @@
1
+ import { type HighlightColor } from "@/components/tiptap-ui/color-highlight-button";
2
+ import "@/components/tiptap-ui/color-highlight-button/color-highlight-button.scss";
3
+ type __VLS_Props = {
4
+ /** Colors to offer. Defaults to a predefined set. */
5
+ colors?: HighlightColor[];
6
+ };
7
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToOption<__VLS_Props>, {
8
+ colors: () => ({
9
+ readonly name: "default";
10
+ readonly value: "var(--tt-bg-color)";
11
+ readonly colorValue: "#ffffff";
12
+ readonly border: "var(--tt-bg-color-contrast)";
13
+ } | {
14
+ readonly name: "gray";
15
+ readonly value: "var(--tt-color-highlight-gray)";
16
+ readonly colorValue: "#f8f8f7";
17
+ readonly border: "var(--tt-color-highlight-gray-contrast)";
18
+ } | {
19
+ readonly name: "brown";
20
+ readonly value: "var(--tt-color-highlight-brown)";
21
+ readonly colorValue: "#f4eeee";
22
+ readonly border: "var(--tt-color-highlight-brown-contrast)";
23
+ } | {
24
+ readonly name: "orange";
25
+ readonly value: "var(--tt-color-highlight-orange)";
26
+ readonly colorValue: "#fbecdd";
27
+ readonly border: "var(--tt-color-highlight-orange-contrast)";
28
+ } | {
29
+ readonly name: "yellow";
30
+ readonly value: "var(--tt-color-highlight-yellow)";
31
+ readonly colorValue: "#fef9c3";
32
+ readonly border: "var(--tt-color-highlight-yellow-contrast)";
33
+ } | {
34
+ readonly name: "green";
35
+ readonly value: "var(--tt-color-highlight-green)";
36
+ readonly colorValue: "#dcfce7";
37
+ readonly border: "var(--tt-color-highlight-green-contrast)";
38
+ } | {
39
+ readonly name: "blue";
40
+ readonly value: "var(--tt-color-highlight-blue)";
41
+ readonly colorValue: "#e0f2fe";
42
+ readonly border: "var(--tt-color-highlight-blue-contrast)";
43
+ } | {
44
+ readonly name: "purple";
45
+ readonly value: "var(--tt-color-highlight-purple)";
46
+ readonly colorValue: "#f3e8ff";
47
+ readonly border: "var(--tt-color-highlight-purple-contrast)";
48
+ } | {
49
+ readonly name: "pink";
50
+ readonly value: "var(--tt-color-highlight-pink)";
51
+ readonly colorValue: "#fcf1f6";
52
+ readonly border: "var(--tt-color-highlight-pink-contrast)";
53
+ } | {
54
+ readonly name: "red";
55
+ readonly value: "var(--tt-color-highlight-red)";
56
+ readonly colorValue: "#ffe4e6";
57
+ readonly border: "var(--tt-color-highlight-red-contrast)";
58
+ })[];
59
+ }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<__VLS_Props>, {
60
+ colors: () => ({
61
+ readonly name: "default";
62
+ readonly value: "var(--tt-bg-color)";
63
+ readonly colorValue: "#ffffff";
64
+ readonly border: "var(--tt-bg-color-contrast)";
65
+ } | {
66
+ readonly name: "gray";
67
+ readonly value: "var(--tt-color-highlight-gray)";
68
+ readonly colorValue: "#f8f8f7";
69
+ readonly border: "var(--tt-color-highlight-gray-contrast)";
70
+ } | {
71
+ readonly name: "brown";
72
+ readonly value: "var(--tt-color-highlight-brown)";
73
+ readonly colorValue: "#f4eeee";
74
+ readonly border: "var(--tt-color-highlight-brown-contrast)";
75
+ } | {
76
+ readonly name: "orange";
77
+ readonly value: "var(--tt-color-highlight-orange)";
78
+ readonly colorValue: "#fbecdd";
79
+ readonly border: "var(--tt-color-highlight-orange-contrast)";
80
+ } | {
81
+ readonly name: "yellow";
82
+ readonly value: "var(--tt-color-highlight-yellow)";
83
+ readonly colorValue: "#fef9c3";
84
+ readonly border: "var(--tt-color-highlight-yellow-contrast)";
85
+ } | {
86
+ readonly name: "green";
87
+ readonly value: "var(--tt-color-highlight-green)";
88
+ readonly colorValue: "#dcfce7";
89
+ readonly border: "var(--tt-color-highlight-green-contrast)";
90
+ } | {
91
+ readonly name: "blue";
92
+ readonly value: "var(--tt-color-highlight-blue)";
93
+ readonly colorValue: "#e0f2fe";
94
+ readonly border: "var(--tt-color-highlight-blue-contrast)";
95
+ } | {
96
+ readonly name: "purple";
97
+ readonly value: "var(--tt-color-highlight-purple)";
98
+ readonly colorValue: "#f3e8ff";
99
+ readonly border: "var(--tt-color-highlight-purple-contrast)";
100
+ } | {
101
+ readonly name: "pink";
102
+ readonly value: "var(--tt-color-highlight-pink)";
103
+ readonly colorValue: "#fcf1f6";
104
+ readonly border: "var(--tt-color-highlight-pink-contrast)";
105
+ } | {
106
+ readonly name: "red";
107
+ readonly value: "var(--tt-color-highlight-red)";
108
+ readonly colorValue: "#ffe4e6";
109
+ readonly border: "var(--tt-color-highlight-red-contrast)";
110
+ })[];
111
+ }>>>, {
112
+ colors: ({
113
+ readonly name: "default";
114
+ readonly value: "var(--tt-bg-color)";
115
+ readonly colorValue: "#ffffff";
116
+ readonly border: "var(--tt-bg-color-contrast)";
117
+ } | {
118
+ readonly name: "gray";
119
+ readonly value: "var(--tt-color-highlight-gray)";
120
+ readonly colorValue: "#f8f8f7";
121
+ readonly border: "var(--tt-color-highlight-gray-contrast)";
122
+ } | {
123
+ readonly name: "brown";
124
+ readonly value: "var(--tt-color-highlight-brown)";
125
+ readonly colorValue: "#f4eeee";
126
+ readonly border: "var(--tt-color-highlight-brown-contrast)";
127
+ } | {
128
+ readonly name: "orange";
129
+ readonly value: "var(--tt-color-highlight-orange)";
130
+ readonly colorValue: "#fbecdd";
131
+ readonly border: "var(--tt-color-highlight-orange-contrast)";
132
+ } | {
133
+ readonly name: "yellow";
134
+ readonly value: "var(--tt-color-highlight-yellow)";
135
+ readonly colorValue: "#fef9c3";
136
+ readonly border: "var(--tt-color-highlight-yellow-contrast)";
137
+ } | {
138
+ readonly name: "green";
139
+ readonly value: "var(--tt-color-highlight-green)";
140
+ readonly colorValue: "#dcfce7";
141
+ readonly border: "var(--tt-color-highlight-green-contrast)";
142
+ } | {
143
+ readonly name: "blue";
144
+ readonly value: "var(--tt-color-highlight-blue)";
145
+ readonly colorValue: "#e0f2fe";
146
+ readonly border: "var(--tt-color-highlight-blue-contrast)";
147
+ } | {
148
+ readonly name: "purple";
149
+ readonly value: "var(--tt-color-highlight-purple)";
150
+ readonly colorValue: "#f3e8ff";
151
+ readonly border: "var(--tt-color-highlight-purple-contrast)";
152
+ } | {
153
+ readonly name: "pink";
154
+ readonly value: "var(--tt-color-highlight-pink)";
155
+ readonly colorValue: "#fcf1f6";
156
+ readonly border: "var(--tt-color-highlight-pink-contrast)";
157
+ } | {
158
+ readonly name: "red";
159
+ readonly value: "var(--tt-color-highlight-red)";
160
+ readonly colorValue: "#ffe4e6";
161
+ readonly border: "var(--tt-color-highlight-red-contrast)";
162
+ })[];
163
+ }>;
164
+ declare const _default: typeof __VLS_export;
165
+ export default _default;
166
+ type __VLS_TypePropsToOption<T> = {
167
+ [K in keyof T & string]-?: {} extends Pick<T, K> ? {
168
+ type: import('vue').PropType<Required<T>[K]>;
169
+ } : {
170
+ type: import('vue').PropType<T[K]>;
171
+ required: true;
172
+ };
173
+ };
174
+ type __VLS_WithDefaults<P, D> = {
175
+ [K in keyof P & string]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
176
+ default: D[K];
177
+ }> : P[K];
178
+ };
179
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
180
+ [K in keyof T]: T[K];
181
+ } : {
182
+ [K in keyof T as K]: T[K];
183
+ }) & {};
@@ -0,0 +1,3 @@
1
+ export { default as ColorHighlightPopover } from "./ColorHighlightPopover.vue";
2
+ export { default as ColorHighlightPopoverButton } from "./ColorHighlightPopoverButton.vue";
3
+ export { default as ColorHighlightPopoverContent } from "./ColorHighlightPopoverContent.vue";
@@ -0,0 +1,26 @@
1
+ import type { Editor } from "@tiptap/core";
2
+ import type { IconName } from "@/components/tiptap-icons";
3
+ import type { RichtextMessages } from "@/locales";
4
+ /**
5
+ * p5: a toolbar action, built from the template's framework-free helpers
6
+ * (canToggleMark, toggleHeading, …) and rendered by CommandButton.vue.
7
+ *
8
+ * Replaces the template's per-button component + hook pairs (MarkButton +
9
+ * useMark, HeadingButton + useHeading, …); see UPSTREAM.md.
10
+ */
11
+ export interface EditorCommand {
12
+ /** Tooltip and aria-label, in the editor's locale */
13
+ label: (t: RichtextMessages) => string;
14
+ icon: IconName;
15
+ /** Shown in the tooltip. The shortcut itself is Tiptap's own keymap. */
16
+ shortcutKeys?: string;
17
+ /** Omitted for actions without an on/off state, like undo */
18
+ isActive?: (editor: Editor | null) => boolean;
19
+ canRun: (editor: Editor | null) => boolean;
20
+ run: (editor: Editor | null) => boolean;
21
+ }
22
+ /**
23
+ * Commands never change, so each is created once. That keeps the `command`
24
+ * prop stable, so buttons don't recompute their state on every render.
25
+ */
26
+ export declare function defineCommand(key: string, create: () => EditorCommand): EditorCommand;
@@ -0,0 +1 @@
1
+ export * from "./use-heading";
@@ -0,0 +1,25 @@
1
+ import { type Editor } from "@tiptap/core";
2
+ export type Level = 1 | 2 | 3 | 4 | 5 | 6;
3
+ export declare const headingIcons: {
4
+ 1: "heading-one";
5
+ 2: "heading-two";
6
+ 3: "heading-three";
7
+ 4: "heading-four";
8
+ 5: "heading-five";
9
+ 6: "heading-six";
10
+ };
11
+ export declare const HEADING_SHORTCUT_KEYS: Record<Level, string>;
12
+ /**
13
+ * Checks if heading can be toggled in the current editor state
14
+ */
15
+ export declare function canToggle(editor: Editor | null, level?: Level, turnInto?: boolean): boolean;
16
+ /**
17
+ * Checks if heading is currently active
18
+ */
19
+ export declare function isHeadingActive(editor: Editor | null, level?: Level | Level[]): boolean;
20
+ /**
21
+ * Toggles heading in the editor
22
+ */
23
+ export declare function toggleHeading(editor: Editor | null, level: Level | Level[]): boolean;
24
+ /** p5: toolbar command, rendered by CommandButton (see ../command.ts) */
25
+ export declare const headingCommand: (level: Level) => import("@/components/tiptap-ui/command").EditorCommand;
@@ -0,0 +1,32 @@
1
+ import { type Level } from "@/components/tiptap-ui/heading-button";
2
+ /** Dropdown menu for choosing a heading level; the trigger shows the active one */
3
+ type __VLS_Props = {
4
+ levels?: Level[];
5
+ };
6
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToOption<__VLS_Props>, {
7
+ levels: () => number[];
8
+ }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<__VLS_Props>, {
9
+ levels: () => number[];
10
+ }>>>, {
11
+ levels: Level[];
12
+ }>;
13
+ declare const _default: typeof __VLS_export;
14
+ export default _default;
15
+ type __VLS_TypePropsToOption<T> = {
16
+ [K in keyof T & string]-?: {} extends Pick<T, K> ? {
17
+ type: import('vue').PropType<Required<T>[K]>;
18
+ } : {
19
+ type: import('vue').PropType<T[K]>;
20
+ required: true;
21
+ };
22
+ };
23
+ type __VLS_WithDefaults<P, D> = {
24
+ [K in keyof P & string]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
25
+ default: D[K];
26
+ }> : P[K];
27
+ };
28
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
29
+ [K in keyof T]: T[K];
30
+ } : {
31
+ [K in keyof T as K]: T[K];
32
+ }) & {};
@@ -0,0 +1,2 @@
1
+ export { default as HeadingDropdownMenu } from "./HeadingDropdownMenu.vue";
2
+ export * from "./use-heading-dropdown-menu";
@@ -0,0 +1,6 @@
1
+ import type { Editor } from "@tiptap/core";
2
+ import { type Level } from "@/components/tiptap-ui/heading-button";
3
+ /**
4
+ * Gets the currently active heading level from the available levels
5
+ */
6
+ export declare function getActiveHeadingLevel(editor: Editor | null, levels?: Level[]): Level | undefined;
@@ -0,0 +1,17 @@
1
+ declare const __VLS_template: () => {
2
+ __VLS_Slots: {
3
+ default?: (props: {}) => any;
4
+ };
5
+ };
6
+ type __VLS_Slots = ReturnType<typeof __VLS_template>['__VLS_Slots'];
7
+ declare const __VLS_base: import("vue").DefineComponent<{}, unknown, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
8
+ click: (event: MouseEvent) => void;
9
+ }, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
10
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
11
+ declare const _default: typeof __VLS_export;
12
+ export default _default;
13
+ type __VLS_WithSlots<T, S> = T & {
14
+ new (): {
15
+ $slots: S;
16
+ };
17
+ };
@@ -0,0 +1,18 @@
1
+ import type { Editor } from "@tiptap/core";
2
+ /**
3
+ * Link editing content for standalone use, e.g. in the mobile toolbar.
4
+ */
5
+ type __VLS_Props = {
6
+ editor?: Editor | null;
7
+ };
8
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_TypePropsToOption<__VLS_Props>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToOption<__VLS_Props>>>, {}>;
9
+ declare const _default: typeof __VLS_export;
10
+ export default _default;
11
+ type __VLS_TypePropsToOption<T> = {
12
+ [K in keyof T & string]-?: {} extends Pick<T, K> ? {
13
+ type: import('vue').PropType<Required<T>[K]>;
14
+ } : {
15
+ type: import('vue').PropType<T[K]>;
16
+ required: true;
17
+ };
18
+ };
@@ -0,0 +1,28 @@
1
+ import "@/components/tiptap-ui/link-popover/link-popover.scss";
2
+ /**
3
+ * The URL input and actions shown in the link popover (or mobile toolbar).
4
+ */
5
+ type __VLS_Props = {
6
+ url: string;
7
+ /** Whether the cursor is currently in a link */
8
+ isActive: boolean;
9
+ /** p5: whether the link opens in a new tab */
10
+ openInNewTab: boolean;
11
+ };
12
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_TypePropsToOption<__VLS_Props>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
13
+ "update:url": (value: string) => void;
14
+ "set-link": () => void;
15
+ "remove-link": () => void;
16
+ "open-link": () => void;
17
+ "toggle-new-tab": () => void;
18
+ }, string, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToOption<__VLS_Props>>>, {}>;
19
+ declare const _default: typeof __VLS_export;
20
+ export default _default;
21
+ type __VLS_TypePropsToOption<T> = {
22
+ [K in keyof T & string]-?: {} extends Pick<T, K> ? {
23
+ type: import('vue').PropType<Required<T>[K]>;
24
+ } : {
25
+ type: import('vue').PropType<T[K]>;
26
+ required: true;
27
+ };
28
+ };
@@ -0,0 +1,62 @@
1
+ import type { Editor } from "@tiptap/core";
2
+ /**
3
+ * Link button with a popover for editing the link.
4
+ * For custom popovers, use the `useLinkPopover` composable.
5
+ *
6
+ * The trigger toggles the popover natively (popovertarget), so unlike the
7
+ * React template there's no click handler that flips `isOpen`.
8
+ *
9
+ * p5: Ctrl+K / ⌘K opens it (InputRichtext clicks triggers with `data-rt-shortcut`)
10
+ * and closes it again from inside the popover.
11
+ */
12
+ type __VLS_Props = {
13
+ editor?: Editor | null;
14
+ hideWhenUnavailable?: boolean;
15
+ /** Open the popover when the cursor moves into a link */
16
+ autoOpenOnLinkActive?: boolean;
17
+ };
18
+ declare const __VLS_template: () => {
19
+ __VLS_Slots: {
20
+ default?: (props: {}) => any;
21
+ };
22
+ };
23
+ type __VLS_Slots = ReturnType<typeof __VLS_template>['__VLS_Slots'];
24
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToOption<__VLS_Props>, {
25
+ hideWhenUnavailable: boolean;
26
+ autoOpenOnLinkActive: boolean;
27
+ }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
28
+ "set-link": () => void;
29
+ "open-change": (isOpen: boolean) => void;
30
+ }, string, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<__VLS_Props>, {
31
+ hideWhenUnavailable: boolean;
32
+ autoOpenOnLinkActive: boolean;
33
+ }>>>, {
34
+ hideWhenUnavailable: boolean;
35
+ autoOpenOnLinkActive: boolean;
36
+ }>;
37
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
38
+ declare const _default: typeof __VLS_export;
39
+ export default _default;
40
+ type __VLS_TypePropsToOption<T> = {
41
+ [K in keyof T & string]-?: {} extends Pick<T, K> ? {
42
+ type: import('vue').PropType<Required<T>[K]>;
43
+ } : {
44
+ type: import('vue').PropType<T[K]>;
45
+ required: true;
46
+ };
47
+ };
48
+ type __VLS_WithDefaults<P, D> = {
49
+ [K in keyof P & string]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
50
+ default: D[K];
51
+ }> : P[K];
52
+ };
53
+ type __VLS_WithSlots<T, S> = T & {
54
+ new (): {
55
+ $slots: S;
56
+ };
57
+ };
58
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
59
+ [K in keyof T]: T[K];
60
+ } : {
61
+ [K in keyof T as K]: T[K];
62
+ }) & {};
@@ -0,0 +1,4 @@
1
+ export { default as LinkPopover } from "./LinkPopover.vue";
2
+ export { default as LinkButton } from "./LinkButton.vue";
3
+ export { default as LinkContent } from "./LinkContent.vue";
4
+ export * from "./use-link-popover";
@@ -0,0 +1,96 @@
1
+ import { type MaybeGetters } from "@/composables/utils";
2
+ import { type Ref } from "vue";
3
+ import type { Editor } from "@tiptap/core";
4
+ export declare const LINK_SHORTCUT_KEY = "mod+k";
5
+ /**
6
+ * Configuration for the link popover functionality
7
+ */
8
+ export interface UseLinkPopoverConfig {
9
+ /**
10
+ * The Tiptap editor instance.
11
+ */
12
+ editor?: Editor | null;
13
+ /**
14
+ * Whether to hide the link popover when not available.
15
+ * @default false
16
+ */
17
+ hideWhenUnavailable?: boolean;
18
+ /**
19
+ * Callback function called when the link is set.
20
+ */
21
+ onSetLink?: () => void;
22
+ }
23
+ /**
24
+ * Configuration for the link handler functionality
25
+ */
26
+ export interface LinkHandlerProps {
27
+ /**
28
+ * The Tiptap editor instance.
29
+ */
30
+ editor: Editor | null;
31
+ /**
32
+ * Callback function called when the link is set.
33
+ */
34
+ onSetLink?: () => void;
35
+ }
36
+ /**
37
+ * Checks if a link can be set in the current editor state
38
+ */
39
+ export declare function canSetLink(editor: Editor | null): boolean;
40
+ /**
41
+ * Checks if a link is currently active in the editor
42
+ */
43
+ export declare function isLinkActive(editor: Editor | null): boolean;
44
+ /**
45
+ * Determines if the link button should be shown
46
+ */
47
+ export declare function shouldShowLinkButton(props: {
48
+ editor: Editor | null;
49
+ hideWhenUnavailable: boolean;
50
+ }): boolean;
51
+ /**
52
+ * URL state and link actions. The URL follows the link under the cursor.
53
+ */
54
+ export declare function useLinkHandler(props: {
55
+ editor: Ref<Editor | null>;
56
+ onSetLink?: () => void;
57
+ }): {
58
+ /** Writable, so it can be used with v-model */
59
+ url: import("vue").WritableComputedRef<string>;
60
+ openInNewTab: import("vue").ComputedRef<boolean>;
61
+ toggleNewTab: () => void;
62
+ setLink: () => void;
63
+ removeLink: () => void;
64
+ openLink: (target?: string, features?: string) => void;
65
+ };
66
+ /**
67
+ * Link button state, plus whether the popover should open by itself because
68
+ * the cursor moved into a link while the editor has focus.
69
+ */
70
+ export declare function useLinkState(props: {
71
+ editor: Ref<Editor | null>;
72
+ hideWhenUnavailable: () => boolean;
73
+ }): {
74
+ isVisible: import("vue").ComputedRef<boolean>;
75
+ canSet: import("vue").ComputedRef<boolean>;
76
+ isActive: import("vue").ComputedRef<boolean>;
77
+ isFocused: import("vue").ComputedRef<boolean>;
78
+ };
79
+ /**
80
+ * Link popover state and actions.
81
+ */
82
+ export declare function useLinkPopover(config?: MaybeGetters<UseLinkPopoverConfig>): {
83
+ /** Writable, so it can be used with v-model */
84
+ url: import("vue").WritableComputedRef<string>;
85
+ openInNewTab: import("vue").ComputedRef<boolean>;
86
+ toggleNewTab: () => void;
87
+ setLink: () => void;
88
+ removeLink: () => void;
89
+ openLink: (target?: string, features?: string) => void;
90
+ shortcutKeys: string;
91
+ icon: "link";
92
+ isVisible: import("vue").ComputedRef<boolean>;
93
+ canSet: import("vue").ComputedRef<boolean>;
94
+ isActive: import("vue").ComputedRef<boolean>;
95
+ isFocused: import("vue").ComputedRef<boolean>;
96
+ };
@@ -0,0 +1 @@
1
+ export * from "./use-list";
@@ -0,0 +1,22 @@
1
+ import { type Editor } from "@tiptap/core";
2
+ export type ListType = "bulletList" | "orderedList" | "taskList";
3
+ export declare const listIcons: {
4
+ bulletList: "list";
5
+ orderedList: "list-ordered";
6
+ taskList: "list-todo";
7
+ };
8
+ export declare const LIST_SHORTCUT_KEYS: Record<ListType, string>;
9
+ /**
10
+ * Checks if a list can be toggled in the current editor state
11
+ */
12
+ export declare function canToggleList(editor: Editor | null, type: ListType, turnInto?: boolean): boolean;
13
+ /**
14
+ * Checks if list is currently active
15
+ */
16
+ export declare function isListActive(editor: Editor | null, type: ListType): boolean;
17
+ /**
18
+ * Toggles list in the editor
19
+ */
20
+ export declare function toggleList(editor: Editor | null, type: ListType): boolean;
21
+ /** p5: toolbar command, rendered by CommandButton (see ../command.ts) */
22
+ export declare const listCommand: (type: ListType) => import("@/components/tiptap-ui/command").EditorCommand;
@@ -0,0 +1,32 @@
1
+ import { type ListType } from "@/components/tiptap-ui/list-button";
2
+ /** Dropdown menu for choosing a list type; the trigger shows the active one */
3
+ type __VLS_Props = {
4
+ types?: ListType[];
5
+ };
6
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToOption<__VLS_Props>, {
7
+ types: () => string[];
8
+ }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<__VLS_Props>, {
9
+ types: () => string[];
10
+ }>>>, {
11
+ types: ListType[];
12
+ }>;
13
+ declare const _default: typeof __VLS_export;
14
+ export default _default;
15
+ type __VLS_TypePropsToOption<T> = {
16
+ [K in keyof T & string]-?: {} extends Pick<T, K> ? {
17
+ type: import('vue').PropType<Required<T>[K]>;
18
+ } : {
19
+ type: import('vue').PropType<T[K]>;
20
+ required: true;
21
+ };
22
+ };
23
+ type __VLS_WithDefaults<P, D> = {
24
+ [K in keyof P & string]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
25
+ default: D[K];
26
+ }> : P[K];
27
+ };
28
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
29
+ [K in keyof T]: T[K];
30
+ } : {
31
+ [K in keyof T as K]: T[K];
32
+ }) & {};
@@ -0,0 +1,2 @@
1
+ export { default as ListDropdownMenu } from "./ListDropdownMenu.vue";
2
+ export * from "./use-list-dropdown-menu";
@@ -0,0 +1,15 @@
1
+ import type { Editor } from "@tiptap/core";
2
+ import type { IconName } from "@/components/tiptap-icons";
3
+ import { type ListType } from "@/components/tiptap-ui/list-button";
4
+ export interface ListOption {
5
+ type: ListType;
6
+ icon: IconName;
7
+ }
8
+ export declare const listOptions: ListOption[];
9
+ export declare function canToggleAnyList(editor: Editor | null, listTypes: ListType[]): boolean;
10
+ export declare function isAnyListActive(editor: Editor | null, listTypes: ListType[]): boolean;
11
+ export declare function getFilteredListOptions(availableTypes: ListType[]): typeof listOptions;
12
+ /**
13
+ * Gets the currently active list type from the available types
14
+ */
15
+ export declare function getActiveListType(editor: Editor | null, availableTypes: ListType[]): ListType | undefined;
@@ -0,0 +1 @@
1
+ export * from "./use-mark";
@@ -0,0 +1,29 @@
1
+ import type { Editor } from "@tiptap/core";
2
+ export type Mark = "bold" | "italic" | "strike" | "code" | "underline" | "superscript" | "subscript";
3
+ export declare const markIcons: {
4
+ bold: "bold";
5
+ italic: "italic";
6
+ underline: "underline";
7
+ strike: "strike";
8
+ code: "code2";
9
+ superscript: "superscript";
10
+ subscript: "subscript";
11
+ };
12
+ export declare const MARK_SHORTCUT_KEYS: Record<Mark, string>;
13
+ /**
14
+ * Checks if a mark can be toggled in the current editor state
15
+ */
16
+ export declare function canToggleMark(editor: Editor | null, type: Mark): boolean;
17
+ /**
18
+ * Checks if a mark is currently active
19
+ */
20
+ export declare function isMarkActive(editor: Editor | null, type: Mark): boolean;
21
+ /**
22
+ * Toggles a mark in the editor
23
+ */
24
+ export declare function toggleMark(editor: Editor | null, type: Mark): boolean;
25
+ /**
26
+ * Gets the formatted mark name
27
+ */
28
+ /** p5: toolbar command, rendered by CommandButton (see ../command.ts) */
29
+ export declare const markCommand: (type: Mark) => import("@/components/tiptap-ui/command").EditorCommand;
@@ -0,0 +1 @@
1
+ export * from "./use-text-align";