@pilotiq/tiptap 3.0.0 → 3.1.1
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/extensions/AiSuggestionExtension.d.ts +114 -0
- package/dist/extensions/AiSuggestionExtension.d.ts.map +1 -0
- package/dist/extensions/AiSuggestionExtension.js +302 -0
- package/dist/extensions/AiSuggestionExtension.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/react/TiptapEditor.d.ts.map +1 -1
- package/dist/react/TiptapEditor.js +10 -0
- package/dist/react/TiptapEditor.js.map +1 -1
- package/dist/react/useAiSuggestionBridge.d.ts +27 -0
- package/dist/react/useAiSuggestionBridge.d.ts.map +1 -0
- package/dist/react/useAiSuggestionBridge.js +110 -0
- package/dist/react/useAiSuggestionBridge.js.map +1 -0
- package/package.json +4 -4
- package/src/extensions/AiSuggestionExtension.test.ts +141 -0
- package/src/extensions/AiSuggestionExtension.ts +415 -0
- package/src/index.ts +13 -0
- package/src/react/TiptapEditor.tsx +11 -0
- package/src/react/useAiSuggestionBridge.ts +119 -0
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { Extension } from '@tiptap/core';
|
|
2
|
+
import { PluginKey } from '@tiptap/pm/state';
|
|
3
|
+
/**
|
|
4
|
+
* One AI-suggested replacement of `[from, to)` with `replacement`.
|
|
5
|
+
*
|
|
6
|
+
* `from === to` represents a pure insertion at that position. v1 carries
|
|
7
|
+
* plain-text replacement only — marks and structure round-trip through the
|
|
8
|
+
* editor as-is when the suggestion is approved (the original range's marks
|
|
9
|
+
* are preserved on the inserted text node by ProseMirror).
|
|
10
|
+
*/
|
|
11
|
+
export interface AiSuggestion {
|
|
12
|
+
/** Stable id; consumer-provided. Re-adding with the same id replaces the prior entry. */
|
|
13
|
+
id: string;
|
|
14
|
+
/** Inclusive document position the original range starts at. */
|
|
15
|
+
from: number;
|
|
16
|
+
/** Exclusive document position the original range ends at. */
|
|
17
|
+
to: number;
|
|
18
|
+
/** Plain-text replacement. Empty string = pure deletion. */
|
|
19
|
+
replacement: string;
|
|
20
|
+
/** Optional attribution surfaced on the chip widget. */
|
|
21
|
+
source?: {
|
|
22
|
+
agentSlug?: string;
|
|
23
|
+
agentLabel?: string;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export interface AiSuggestionExtensionOptions {
|
|
27
|
+
/**
|
|
28
|
+
* Class prefix for both decoration spans and chip widgets. The package
|
|
29
|
+
* stays CSS-free — consumers ship the matching styles. Default
|
|
30
|
+
* `'pilotiq-ai-suggestion'` produces classes:
|
|
31
|
+
* - `pilotiq-ai-suggestion-original` (strikethrough on the original range)
|
|
32
|
+
* - `pilotiq-ai-suggestion-chip` (root of the inline widget)
|
|
33
|
+
* - `pilotiq-ai-suggestion-replacement` (the suggested-text preview span)
|
|
34
|
+
* - `pilotiq-ai-suggestion-accept` (Approve button)
|
|
35
|
+
* - `pilotiq-ai-suggestion-reject` (Reject button)
|
|
36
|
+
*/
|
|
37
|
+
classPrefix: string;
|
|
38
|
+
/**
|
|
39
|
+
* Fired whenever the suggestion list changes — after `add*`, `approve*`,
|
|
40
|
+
* `reject*`, `clear*`, or after a doc edit collapses a range. Lets the host
|
|
41
|
+
* mirror state into a React context (e.g. `PendingSuggestionsApi`).
|
|
42
|
+
*/
|
|
43
|
+
onChange?: (suggestions: AiSuggestion[]) => void;
|
|
44
|
+
}
|
|
45
|
+
declare module '@tiptap/core' {
|
|
46
|
+
interface Commands<ReturnType> {
|
|
47
|
+
aiSuggestion: {
|
|
48
|
+
/** Add or replace a suggestion (matched by id). */
|
|
49
|
+
addAiSuggestion: (suggestion: AiSuggestion) => ReturnType;
|
|
50
|
+
/** Add or replace many suggestions in one transaction. */
|
|
51
|
+
addAiSuggestions: (suggestions: AiSuggestion[]) => ReturnType;
|
|
52
|
+
/** Apply the replacement to the doc and drop the suggestion. */
|
|
53
|
+
approveAiSuggestion: (id: string) => ReturnType;
|
|
54
|
+
/** Drop the suggestion without touching the doc. */
|
|
55
|
+
rejectAiSuggestion: (id: string) => ReturnType;
|
|
56
|
+
/** Apply every replacement in highest-`from`-first order. */
|
|
57
|
+
approveAllAiSuggestions: () => ReturnType;
|
|
58
|
+
/** Drop every suggestion. */
|
|
59
|
+
rejectAllAiSuggestions: () => ReturnType;
|
|
60
|
+
/** Alias for `rejectAllAiSuggestions`. */
|
|
61
|
+
clearAiSuggestions: () => ReturnType;
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
interface PluginState {
|
|
66
|
+
suggestions: readonly AiSuggestion[];
|
|
67
|
+
}
|
|
68
|
+
export declare const aiSuggestionPluginKey: PluginKey<PluginState>;
|
|
69
|
+
/**
|
|
70
|
+
* Append or replace by id. Pure — exported for tests and so the same dedupe
|
|
71
|
+
* shape can drive consumer-side mirror state.
|
|
72
|
+
*/
|
|
73
|
+
export declare function upsertSuggestion(current: readonly AiSuggestion[], next: AiSuggestion): AiSuggestion[];
|
|
74
|
+
/** Append or replace many — semantically equivalent to a fold over `upsertSuggestion`. */
|
|
75
|
+
export declare function upsertSuggestions(current: readonly AiSuggestion[], nexts: readonly AiSuggestion[]): AiSuggestion[];
|
|
76
|
+
/** Remove by id. */
|
|
77
|
+
export declare function removeSuggestion(current: readonly AiSuggestion[], id: string): AiSuggestion[];
|
|
78
|
+
/**
|
|
79
|
+
* Remap survivors through a PM mapping; drop ranges that collapsed past
|
|
80
|
+
* each other (`to < from` after remap). Pure — exported for tests.
|
|
81
|
+
*/
|
|
82
|
+
export declare function remapSuggestions(suggestions: readonly AiSuggestion[], map: (pos: number, side: -1 | 1) => number): AiSuggestion[];
|
|
83
|
+
/**
|
|
84
|
+
* Order suggestions for `approveAll` so the highest-`from` runs first;
|
|
85
|
+
* earlier-in-doc replacements then can't shift positions of later ones.
|
|
86
|
+
* Pure — exported for tests.
|
|
87
|
+
*/
|
|
88
|
+
export declare function sortForApproveAll(suggestions: readonly AiSuggestion[]): AiSuggestion[];
|
|
89
|
+
/**
|
|
90
|
+
* Editor extension that tracks AI-suggested edits as inline decorations with
|
|
91
|
+
* per-hunk Approve/Reject chips. The package is CSS-free — consumers wire
|
|
92
|
+
* styles against the documented class names.
|
|
93
|
+
*
|
|
94
|
+
* Usage:
|
|
95
|
+
* ```ts
|
|
96
|
+
* editor.commands.addAiSuggestion({
|
|
97
|
+
* id: 'seo-1',
|
|
98
|
+
* from: 12,
|
|
99
|
+
* to: 18,
|
|
100
|
+
* replacement: 'better',
|
|
101
|
+
* source: { agentLabel: 'SEO' },
|
|
102
|
+
* })
|
|
103
|
+
* // …user clicks ✓ on the chip, or:
|
|
104
|
+
* editor.commands.approveAiSuggestion('seo-1')
|
|
105
|
+
* ```
|
|
106
|
+
*
|
|
107
|
+
* Mounted by default inside `TiptapEditor`; consumer code reaches it through
|
|
108
|
+
* the editor's command surface.
|
|
109
|
+
*/
|
|
110
|
+
export declare const AiSuggestionExtension: Extension<AiSuggestionExtensionOptions, any>;
|
|
111
|
+
/** Bound `pos` into `[0, max]`; non-finite or negative input collapses to 0. */
|
|
112
|
+
export declare function clampPos(pos: number, max: number): number;
|
|
113
|
+
export {};
|
|
114
|
+
//# sourceMappingURL=AiSuggestionExtension.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AiSuggestionExtension.d.ts","sourceRoot":"","sources":["../../src/extensions/AiSuggestionExtension.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAe,MAAM,cAAc,CAAA;AACrD,OAAO,EAAU,SAAS,EAAsC,MAAM,kBAAkB,CAAA;AAGxF;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAC3B,yFAAyF;IACzF,EAAE,EAAY,MAAM,CAAA;IACpB,gEAAgE;IAChE,IAAI,EAAU,MAAM,CAAA;IACpB,8DAA8D;IAC9D,EAAE,EAAY,MAAM,CAAA;IACpB,4DAA4D;IAC5D,WAAW,EAAG,MAAM,CAAA;IACpB,wDAAwD;IACxD,MAAM,CAAC,EAAE;QACP,SAAS,CAAC,EAAG,MAAM,CAAA;QACnB,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,CAAA;CACF;AAED,MAAM,WAAW,4BAA4B;IAC3C;;;;;;;;;OASG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,KAAK,IAAI,CAAA;CACjD;AAED,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAU,QAAQ,CAAC,UAAU;QAC3B,YAAY,EAAE;YACZ,mDAAmD;YACnD,eAAe,EAAU,CAAC,UAAU,EAAE,YAAY,KAAK,UAAU,CAAA;YACjE,0DAA0D;YAC1D,gBAAgB,EAAS,CAAC,WAAW,EAAE,YAAY,EAAE,KAAK,UAAU,CAAA;YACpE,gEAAgE;YAChE,mBAAmB,EAAM,CAAC,EAAE,EAAE,MAAM,KAAK,UAAU,CAAA;YACnD,oDAAoD;YACpD,kBAAkB,EAAO,CAAC,EAAE,EAAE,MAAM,KAAK,UAAU,CAAA;YACnD,6DAA6D;YAC7D,uBAAuB,EAAE,MAAM,UAAU,CAAA;YACzC,6BAA6B;YAC7B,sBAAsB,EAAG,MAAM,UAAU,CAAA;YACzC,0CAA0C;YAC1C,kBAAkB,EAAO,MAAM,UAAU,CAAA;SAC1C,CAAA;KACF;CACF;AAED,UAAU,WAAW;IACnB,WAAW,EAAE,SAAS,YAAY,EAAE,CAAA;CACrC;AAOD,eAAO,MAAM,qBAAqB,wBAAoD,CAAA;AAEtF;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,SAAS,YAAY,EAAE,EAChC,IAAI,EAAK,YAAY,GACpB,YAAY,EAAE,CAMhB;AAED,0FAA0F;AAC1F,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,SAAS,YAAY,EAAE,EAChC,KAAK,EAAI,SAAS,YAAY,EAAE,GAC/B,YAAY,EAAE,CAIhB;AAED,oBAAoB;AACpB,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,SAAS,YAAY,EAAE,EAChC,EAAE,EAAO,MAAM,GACd,YAAY,EAAE,CAEhB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,SAAS,YAAY,EAAE,EACpC,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,MAAM,GACzC,YAAY,EAAE,CAShB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,SAAS,YAAY,EAAE,GACnC,YAAY,EAAE,CAEhB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,qBAAqB,8CA8IhC,CAAA;AAiDF,gFAAgF;AAChF,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAKzD"}
|
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
import { Extension } from '@tiptap/core';
|
|
2
|
+
import { Plugin, PluginKey } from '@tiptap/pm/state';
|
|
3
|
+
import { Decoration, DecorationSet } from '@tiptap/pm/view';
|
|
4
|
+
export const aiSuggestionPluginKey = new PluginKey('pilotiqAiSuggestion');
|
|
5
|
+
/**
|
|
6
|
+
* Append or replace by id. Pure — exported for tests and so the same dedupe
|
|
7
|
+
* shape can drive consumer-side mirror state.
|
|
8
|
+
*/
|
|
9
|
+
export function upsertSuggestion(current, next) {
|
|
10
|
+
const idx = current.findIndex(s => s.id === next.id);
|
|
11
|
+
if (idx === -1)
|
|
12
|
+
return [...current, next];
|
|
13
|
+
const copy = current.slice();
|
|
14
|
+
copy[idx] = next;
|
|
15
|
+
return copy;
|
|
16
|
+
}
|
|
17
|
+
/** Append or replace many — semantically equivalent to a fold over `upsertSuggestion`. */
|
|
18
|
+
export function upsertSuggestions(current, nexts) {
|
|
19
|
+
let acc = current.slice();
|
|
20
|
+
for (const n of nexts)
|
|
21
|
+
acc = upsertSuggestion(acc, n);
|
|
22
|
+
return acc;
|
|
23
|
+
}
|
|
24
|
+
/** Remove by id. */
|
|
25
|
+
export function removeSuggestion(current, id) {
|
|
26
|
+
return current.filter(s => s.id !== id);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Remap survivors through a PM mapping; drop ranges that collapsed past
|
|
30
|
+
* each other (`to < from` after remap). Pure — exported for tests.
|
|
31
|
+
*/
|
|
32
|
+
export function remapSuggestions(suggestions, map) {
|
|
33
|
+
const out = [];
|
|
34
|
+
for (const s of suggestions) {
|
|
35
|
+
const from = map(s.from, -1);
|
|
36
|
+
const to = map(s.to, 1);
|
|
37
|
+
if (to < from)
|
|
38
|
+
continue;
|
|
39
|
+
out.push({ ...s, from, to });
|
|
40
|
+
}
|
|
41
|
+
return out;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Order suggestions for `approveAll` so the highest-`from` runs first;
|
|
45
|
+
* earlier-in-doc replacements then can't shift positions of later ones.
|
|
46
|
+
* Pure — exported for tests.
|
|
47
|
+
*/
|
|
48
|
+
export function sortForApproveAll(suggestions) {
|
|
49
|
+
return suggestions.slice().sort((a, b) => b.from - a.from);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Editor extension that tracks AI-suggested edits as inline decorations with
|
|
53
|
+
* per-hunk Approve/Reject chips. The package is CSS-free — consumers wire
|
|
54
|
+
* styles against the documented class names.
|
|
55
|
+
*
|
|
56
|
+
* Usage:
|
|
57
|
+
* ```ts
|
|
58
|
+
* editor.commands.addAiSuggestion({
|
|
59
|
+
* id: 'seo-1',
|
|
60
|
+
* from: 12,
|
|
61
|
+
* to: 18,
|
|
62
|
+
* replacement: 'better',
|
|
63
|
+
* source: { agentLabel: 'SEO' },
|
|
64
|
+
* })
|
|
65
|
+
* // …user clicks ✓ on the chip, or:
|
|
66
|
+
* editor.commands.approveAiSuggestion('seo-1')
|
|
67
|
+
* ```
|
|
68
|
+
*
|
|
69
|
+
* Mounted by default inside `TiptapEditor`; consumer code reaches it through
|
|
70
|
+
* the editor's command surface.
|
|
71
|
+
*/
|
|
72
|
+
export const AiSuggestionExtension = Extension.create({
|
|
73
|
+
name: 'pilotiqAiSuggestion',
|
|
74
|
+
addOptions() {
|
|
75
|
+
return {
|
|
76
|
+
classPrefix: 'pilotiq-ai-suggestion',
|
|
77
|
+
};
|
|
78
|
+
},
|
|
79
|
+
addCommands() {
|
|
80
|
+
return {
|
|
81
|
+
addAiSuggestion: (suggestion) => ({ tr, state, dispatch }) => {
|
|
82
|
+
const current = aiSuggestionPluginKey.getState(state)?.suggestions ?? [];
|
|
83
|
+
const next = upsertSuggestion(current, suggestion);
|
|
84
|
+
if (dispatch) {
|
|
85
|
+
tr.setMeta(aiSuggestionPluginKey, { type: 'set', next });
|
|
86
|
+
dispatch(tr);
|
|
87
|
+
}
|
|
88
|
+
return true;
|
|
89
|
+
},
|
|
90
|
+
addAiSuggestions: (suggestions) => ({ tr, state, dispatch }) => {
|
|
91
|
+
const current = aiSuggestionPluginKey.getState(state)?.suggestions ?? [];
|
|
92
|
+
const next = upsertSuggestions(current, suggestions);
|
|
93
|
+
if (dispatch) {
|
|
94
|
+
tr.setMeta(aiSuggestionPluginKey, { type: 'set', next });
|
|
95
|
+
dispatch(tr);
|
|
96
|
+
}
|
|
97
|
+
return true;
|
|
98
|
+
},
|
|
99
|
+
approveAiSuggestion: (id) => ({ tr, state, dispatch }) => {
|
|
100
|
+
const current = aiSuggestionPluginKey.getState(state)?.suggestions ?? [];
|
|
101
|
+
const target = current.find(s => s.id === id);
|
|
102
|
+
if (!target)
|
|
103
|
+
return false;
|
|
104
|
+
if (dispatch) {
|
|
105
|
+
applyApprove(tr, state, target);
|
|
106
|
+
tr.setMeta(aiSuggestionPluginKey, {
|
|
107
|
+
type: 'set',
|
|
108
|
+
next: removeSuggestion(current, id),
|
|
109
|
+
});
|
|
110
|
+
dispatch(tr);
|
|
111
|
+
}
|
|
112
|
+
return true;
|
|
113
|
+
},
|
|
114
|
+
rejectAiSuggestion: (id) => ({ tr, state, dispatch }) => {
|
|
115
|
+
const current = aiSuggestionPluginKey.getState(state)?.suggestions ?? [];
|
|
116
|
+
const target = current.find(s => s.id === id);
|
|
117
|
+
if (!target)
|
|
118
|
+
return false;
|
|
119
|
+
if (dispatch) {
|
|
120
|
+
tr.setMeta(aiSuggestionPluginKey, {
|
|
121
|
+
type: 'set',
|
|
122
|
+
next: removeSuggestion(current, id),
|
|
123
|
+
});
|
|
124
|
+
dispatch(tr);
|
|
125
|
+
}
|
|
126
|
+
return true;
|
|
127
|
+
},
|
|
128
|
+
approveAllAiSuggestions: () => ({ tr, state, dispatch }) => {
|
|
129
|
+
const current = aiSuggestionPluginKey.getState(state)?.suggestions ?? [];
|
|
130
|
+
if (current.length === 0)
|
|
131
|
+
return false;
|
|
132
|
+
if (dispatch) {
|
|
133
|
+
for (const s of sortForApproveAll(current))
|
|
134
|
+
applyApprove(tr, state, s);
|
|
135
|
+
tr.setMeta(aiSuggestionPluginKey, {
|
|
136
|
+
type: 'set',
|
|
137
|
+
next: [],
|
|
138
|
+
});
|
|
139
|
+
dispatch(tr);
|
|
140
|
+
}
|
|
141
|
+
return true;
|
|
142
|
+
},
|
|
143
|
+
rejectAllAiSuggestions: () => ({ tr, state, dispatch }) => {
|
|
144
|
+
const current = aiSuggestionPluginKey.getState(state)?.suggestions ?? [];
|
|
145
|
+
if (current.length === 0)
|
|
146
|
+
return false;
|
|
147
|
+
if (dispatch) {
|
|
148
|
+
tr.setMeta(aiSuggestionPluginKey, {
|
|
149
|
+
type: 'set',
|
|
150
|
+
next: [],
|
|
151
|
+
});
|
|
152
|
+
dispatch(tr);
|
|
153
|
+
}
|
|
154
|
+
return true;
|
|
155
|
+
},
|
|
156
|
+
clearAiSuggestions: () => ({ tr, state, dispatch }) => {
|
|
157
|
+
const current = aiSuggestionPluginKey.getState(state)?.suggestions ?? [];
|
|
158
|
+
if (current.length === 0)
|
|
159
|
+
return false;
|
|
160
|
+
if (dispatch) {
|
|
161
|
+
tr.setMeta(aiSuggestionPluginKey, {
|
|
162
|
+
type: 'set',
|
|
163
|
+
next: [],
|
|
164
|
+
});
|
|
165
|
+
dispatch(tr);
|
|
166
|
+
}
|
|
167
|
+
return true;
|
|
168
|
+
},
|
|
169
|
+
};
|
|
170
|
+
},
|
|
171
|
+
addProseMirrorPlugins() {
|
|
172
|
+
const ext = this;
|
|
173
|
+
return [
|
|
174
|
+
new Plugin({
|
|
175
|
+
key: aiSuggestionPluginKey,
|
|
176
|
+
state: {
|
|
177
|
+
init: () => ({ suggestions: [] }),
|
|
178
|
+
apply(tr, prev) {
|
|
179
|
+
const meta = tr.getMeta(aiSuggestionPluginKey);
|
|
180
|
+
const base = meta?.type === 'set' ? meta.next : prev.suggestions;
|
|
181
|
+
if (!tr.docChanged)
|
|
182
|
+
return { suggestions: base };
|
|
183
|
+
return {
|
|
184
|
+
suggestions: remapSuggestions(base, (pos, side) => tr.mapping.map(pos, side)),
|
|
185
|
+
};
|
|
186
|
+
},
|
|
187
|
+
},
|
|
188
|
+
props: {
|
|
189
|
+
decorations(state) {
|
|
190
|
+
const ps = aiSuggestionPluginKey.getState(state);
|
|
191
|
+
if (!ps || ps.suggestions.length === 0)
|
|
192
|
+
return DecorationSet.empty;
|
|
193
|
+
return buildDecorations(state, ps.suggestions, ext.options.classPrefix, ext.editor);
|
|
194
|
+
},
|
|
195
|
+
},
|
|
196
|
+
view(view) {
|
|
197
|
+
let last = aiSuggestionPluginKey.getState(view.state)?.suggestions;
|
|
198
|
+
return {
|
|
199
|
+
update(updated) {
|
|
200
|
+
const next = aiSuggestionPluginKey.getState(updated.state)?.suggestions;
|
|
201
|
+
if (next === last)
|
|
202
|
+
return;
|
|
203
|
+
last = next;
|
|
204
|
+
const cb = ext.options.onChange;
|
|
205
|
+
if (cb)
|
|
206
|
+
cb(next ? [...next] : []);
|
|
207
|
+
},
|
|
208
|
+
destroy() { },
|
|
209
|
+
};
|
|
210
|
+
},
|
|
211
|
+
}),
|
|
212
|
+
];
|
|
213
|
+
},
|
|
214
|
+
});
|
|
215
|
+
function applyApprove(tr, state, target) {
|
|
216
|
+
const docSize = state.doc.content.size;
|
|
217
|
+
const from = clampPos(target.from, docSize);
|
|
218
|
+
const to = clampPos(target.to, docSize);
|
|
219
|
+
if (from > to)
|
|
220
|
+
return;
|
|
221
|
+
if (target.replacement.length > 0) {
|
|
222
|
+
tr.replaceWith(from, to, state.schema.text(target.replacement));
|
|
223
|
+
}
|
|
224
|
+
else if (from < to) {
|
|
225
|
+
tr.delete(from, to);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
function buildDecorations(state, suggestions, prefix, editor) {
|
|
229
|
+
const docSize = state.doc.content.size;
|
|
230
|
+
const decos = [];
|
|
231
|
+
for (const s of suggestions) {
|
|
232
|
+
const from = clampPos(s.from, docSize);
|
|
233
|
+
const to = clampPos(s.to, docSize);
|
|
234
|
+
if (from > to)
|
|
235
|
+
continue;
|
|
236
|
+
if (from < to) {
|
|
237
|
+
decos.push(Decoration.inline(from, to, {
|
|
238
|
+
class: `${prefix}-original`,
|
|
239
|
+
'data-pilotiq-ai-suggestion-id': s.id,
|
|
240
|
+
}));
|
|
241
|
+
}
|
|
242
|
+
decos.push(Decoration.widget(to, () => buildChip(s, prefix, editor), {
|
|
243
|
+
side: 1,
|
|
244
|
+
ignoreSelection: true,
|
|
245
|
+
key: `pilotiq-ai-suggestion:${s.id}`,
|
|
246
|
+
}));
|
|
247
|
+
}
|
|
248
|
+
return DecorationSet.create(state.doc, decos);
|
|
249
|
+
}
|
|
250
|
+
/** Bound `pos` into `[0, max]`; non-finite or negative input collapses to 0. */
|
|
251
|
+
export function clampPos(pos, max) {
|
|
252
|
+
if (!Number.isFinite(pos))
|
|
253
|
+
return 0;
|
|
254
|
+
if (pos < 0)
|
|
255
|
+
return 0;
|
|
256
|
+
if (pos > max)
|
|
257
|
+
return max;
|
|
258
|
+
return Math.trunc(pos);
|
|
259
|
+
}
|
|
260
|
+
function buildChip(s, prefix, editor) {
|
|
261
|
+
const root = document.createElement('span');
|
|
262
|
+
root.className = `${prefix}-chip`;
|
|
263
|
+
root.setAttribute('data-pilotiq-ai-suggestion-id', s.id);
|
|
264
|
+
root.contentEditable = 'false';
|
|
265
|
+
if (s.replacement.length > 0) {
|
|
266
|
+
const insert = document.createElement('span');
|
|
267
|
+
insert.className = `${prefix}-replacement`;
|
|
268
|
+
insert.textContent = s.replacement;
|
|
269
|
+
root.appendChild(insert);
|
|
270
|
+
}
|
|
271
|
+
if (s.source?.agentLabel) {
|
|
272
|
+
root.setAttribute('data-pilotiq-ai-suggestion-source', s.source.agentLabel);
|
|
273
|
+
}
|
|
274
|
+
if (s.source?.agentSlug) {
|
|
275
|
+
root.setAttribute('data-pilotiq-ai-suggestion-source-slug', s.source.agentSlug);
|
|
276
|
+
}
|
|
277
|
+
root.appendChild(buildButton(prefix, 'accept', '✓', 'Accept suggestion', () => {
|
|
278
|
+
editor.chain().focus().approveAiSuggestion(s.id).run();
|
|
279
|
+
}));
|
|
280
|
+
root.appendChild(buildButton(prefix, 'reject', '✕', 'Reject suggestion', () => {
|
|
281
|
+
editor.chain().focus().rejectAiSuggestion(s.id).run();
|
|
282
|
+
}));
|
|
283
|
+
return root;
|
|
284
|
+
}
|
|
285
|
+
function buildButton(prefix, variant, glyph, title, onClick) {
|
|
286
|
+
const btn = document.createElement('button');
|
|
287
|
+
btn.type = 'button';
|
|
288
|
+
btn.className = `${prefix}-${variant}`;
|
|
289
|
+
btn.title = title;
|
|
290
|
+
btn.textContent = glyph;
|
|
291
|
+
// Don't steal the editor selection on press — the click handler runs on
|
|
292
|
+
// mouseup, but mousedown is what flips focus to the button. Cancelling it
|
|
293
|
+
// keeps the cursor in the editor so `editor.chain().focus()` lands cleanly.
|
|
294
|
+
btn.addEventListener('mousedown', (e) => e.preventDefault());
|
|
295
|
+
btn.addEventListener('click', (e) => {
|
|
296
|
+
e.preventDefault();
|
|
297
|
+
e.stopPropagation();
|
|
298
|
+
onClick();
|
|
299
|
+
});
|
|
300
|
+
return btn;
|
|
301
|
+
}
|
|
302
|
+
//# sourceMappingURL=AiSuggestionExtension.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AiSuggestionExtension.js","sourceRoot":"","sources":["../../src/extensions/AiSuggestionExtension.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,5 +4,7 @@ export { MentionProvider, type MentionItem, type MentionProviderMeta, } from './
|
|
|
4
4
|
export { registerTiptap } from './register.js';
|
|
5
5
|
export { tiptap } from './plugin.js';
|
|
6
6
|
export { TiptapEditor } from './react/TiptapEditor.js';
|
|
7
|
+
export { AiSuggestionExtension, aiSuggestionPluginKey, upsertSuggestion, upsertSuggestions, removeSuggestion, remapSuggestions, sortForApproveAll, clampPos, type AiSuggestion, type AiSuggestionExtensionOptions, } from './extensions/AiSuggestionExtension.js';
|
|
8
|
+
export { useAiSuggestionBridge } from './react/useAiSuggestionBridge.js';
|
|
7
9
|
export { renderRichTextToHtml, isRichTextValue, type RenderRichTextOptions, type TiptapNode, type TiptapMark, } from './render.js';
|
|
8
10
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,mBAAmB,EACnB,wBAAwB,EACxB,KAAK,WAAW,EAChB,KAAK,4BAA4B,EACjC,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,aAAa,GACnB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,KAAK,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAA;AAClD,OAAO,EACL,eAAe,EACf,KAAK,WAAW,EAChB,KAAK,mBAAmB,GACzB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,KAAK,qBAAqB,EAC1B,KAAK,UAAU,EACf,KAAK,UAAU,GAChB,MAAM,aAAa,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,mBAAmB,EACnB,wBAAwB,EACxB,KAAK,WAAW,EAChB,KAAK,4BAA4B,EACjC,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,aAAa,GACnB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,KAAK,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAA;AAClD,OAAO,EACL,eAAe,EACf,KAAK,WAAW,EAChB,KAAK,mBAAmB,GACzB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EACR,KAAK,YAAY,EACjB,KAAK,4BAA4B,GAClC,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AACxE,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,KAAK,qBAAqB,EAC1B,KAAK,UAAU,EACf,KAAK,UAAU,GAChB,MAAM,aAAa,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -4,5 +4,7 @@ export { MentionProvider, } from './MentionProvider.js';
|
|
|
4
4
|
export { registerTiptap } from './register.js';
|
|
5
5
|
export { tiptap } from './plugin.js';
|
|
6
6
|
export { TiptapEditor } from './react/TiptapEditor.js';
|
|
7
|
+
export { AiSuggestionExtension, aiSuggestionPluginKey, upsertSuggestion, upsertSuggestions, removeSuggestion, remapSuggestions, sortForApproveAll, clampPos, } from './extensions/AiSuggestionExtension.js';
|
|
8
|
+
export { useAiSuggestionBridge } from './react/useAiSuggestionBridge.js';
|
|
7
9
|
export { renderRichTextToHtml, isRichTextValue, } from './render.js';
|
|
8
10
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,mBAAmB,EACnB,wBAAwB,GAOzB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,KAAK,EAAkB,MAAM,YAAY,CAAA;AAClD,OAAO,EACL,eAAe,GAGhB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EACL,oBAAoB,EACpB,eAAe,GAIhB,MAAM,aAAa,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,mBAAmB,EACnB,wBAAwB,GAOzB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,KAAK,EAAkB,MAAM,YAAY,CAAA;AAClD,OAAO,EACL,eAAe,GAGhB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,GAGT,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AACxE,OAAO,EACL,oBAAoB,EACpB,eAAe,GAIhB,MAAM,aAAa,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TiptapEditor.d.ts","sourceRoot":"","sources":["../../src/react/TiptapEditor.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"TiptapEditor.d.ts","sourceRoot":"","sources":["../../src/react/TiptapEditor.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAyBhE;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,kBAAkB,2CAqBrD"}
|
|
@@ -14,11 +14,13 @@ import { Table, TableRow, TableCell, TableHeader } from '@tiptap/extension-table
|
|
|
14
14
|
import { Details, DetailsSummary, DetailsContent } from '@tiptap/extension-details';
|
|
15
15
|
import { Grid, GridColumn } from '../extensions/GridExtension.js';
|
|
16
16
|
import { Popover } from '@base-ui/react/popover';
|
|
17
|
+
import { useAiSuggestionBridge } from './useAiSuggestionBridge.js';
|
|
17
18
|
import { BlockNodeExtension } from '../extensions/BlockNodeExtension.js';
|
|
18
19
|
import { SlashCommandExtension, } from '../extensions/SlashCommandExtension.js';
|
|
19
20
|
import { DragHandleExtension } from '../extensions/DragHandleExtension.js';
|
|
20
21
|
import { MergeTagExtension } from '../extensions/MergeTagExtension.js';
|
|
21
22
|
import { LeadMarkExtension, SmallMarkExtension } from '../extensions/TextSizeMarks.js';
|
|
23
|
+
import { AiSuggestionExtension } from '../extensions/AiSuggestionExtension.js';
|
|
22
24
|
import { MentionExtension, } from '../extensions/MentionExtension.js';
|
|
23
25
|
import { SlashMenu } from './SlashMenu.js';
|
|
24
26
|
import { MentionMenu } from './MentionMenu.js';
|
|
@@ -220,6 +222,10 @@ function ClientEditor(props) {
|
|
|
220
222
|
fieldName: name,
|
|
221
223
|
})] : [MentionExtension]),
|
|
222
224
|
DragHandleExtension,
|
|
225
|
+
// AI suggestions — always-on extension that tracks suggested edits as
|
|
226
|
+
// inline strikethrough + Approve/Reject chip widgets. Idle until the
|
|
227
|
+
// host calls `editor.commands.addAiSuggestion(...)`.
|
|
228
|
+
AiSuggestionExtension,
|
|
223
229
|
],
|
|
224
230
|
content: initialContent ?? '',
|
|
225
231
|
onUpdate: ({ editor: ed }) => {
|
|
@@ -303,6 +309,10 @@ function ClientEditor(props) {
|
|
|
303
309
|
// every render. Re-creation would force the editor to rebuild from
|
|
304
310
|
// scratch on every keystroke.
|
|
305
311
|
useEffect(() => { editorRef.current = editor ?? null; }, [editor]);
|
|
312
|
+
// Cross-package suggestion bridge — sync the host's
|
|
313
|
+
// `<PendingSuggestionsContext>` queue with the editor's `AiSuggestion`
|
|
314
|
+
// extension. No-op when no provider is mounted (default no-op context).
|
|
315
|
+
useAiSuggestionBridge(editor ?? null, name);
|
|
306
316
|
// Re-render the toolbar when the selection / marks change so active-state
|
|
307
317
|
// booleans stay fresh.
|
|
308
318
|
const tick = useEditorTick(editor);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TiptapEditor.js","sourceRoot":"","sources":["../../src/react/TiptapEditor.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TiptapEditor.js","sourceRoot":"","sources":["../../src/react/TiptapEditor.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { Editor } from '@tiptap/core';
|
|
2
|
+
import { type PendingSuggestion } from '@pilotiq/pilotiq/react';
|
|
3
|
+
/**
|
|
4
|
+
* Two-way sync between the cross-package `<PendingSuggestionsContext>`
|
|
5
|
+
* queue and this editor's `AiSuggestionExtension` state.
|
|
6
|
+
*
|
|
7
|
+
* - **Context → editor**: every entry whose `meta.editorRange = { from, to }`
|
|
8
|
+
* is present and whose `suggestedValue` is a string gets pushed into the
|
|
9
|
+
* editor as an inline-diff hunk via `addAiSuggestion`. Entries leaving the
|
|
10
|
+
* queue are removed from the editor via `rejectAiSuggestion` (no doc edit).
|
|
11
|
+
*
|
|
12
|
+
* - **Editor → context**: when a chip's Approve / Reject button removes a
|
|
13
|
+
* hunk from the editor's plugin state, the matching id is dismissed from
|
|
14
|
+
* the queue (`dismiss(id)`) so other surfaces (e.g. the chat-sidebar pill,
|
|
15
|
+
* a future FieldShell overlay) clear in lock-step. The doc mutation
|
|
16
|
+
* itself happens inside the editor — context is just a notification.
|
|
17
|
+
*
|
|
18
|
+
* Cycle protection: the hook tracks which ids it has personally pushed to
|
|
19
|
+
* the editor (`pushed`). The Context→editor pass never re-pushes an id that's
|
|
20
|
+
* already there, and the Editor→context pass only dismisses ids that this
|
|
21
|
+
* hook had previously pushed (so an id added directly by host code via
|
|
22
|
+
* `editor.commands.addAiSuggestion(...)` doesn't get reflected back through
|
|
23
|
+
* a context that never knew about it).
|
|
24
|
+
*/
|
|
25
|
+
export declare function useAiSuggestionBridge(editor: Editor | null, fieldName: string): void;
|
|
26
|
+
export type { PendingSuggestion };
|
|
27
|
+
//# sourceMappingURL=useAiSuggestionBridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAiSuggestionBridge.d.ts","sourceRoot":"","sources":["../../src/react/useAiSuggestionBridge.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAGL,KAAK,iBAAiB,EAEvB,MAAM,wBAAwB,CAAA;AAG/B;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAiFpF;AAKD,YAAY,EAAE,iBAAiB,EAAE,CAAA"}
|